From 1f94bc69a92767136044840fe2b7b1febfda12ff Mon Sep 17 00:00:00 2001 From: Thomas Baigneres Date: Fri, 2 Feb 2024 14:23:02 +0100 Subject: [PATCH] v1.3.1 (719) --- .package.resolved | 23 + .tuist-version | 2 +- CHANGELOG.en.md | 64 + CHANGELOG.fr.md | 66 +- Engine/JWS/JWS/JWSUtil.swift | 68 +- .../ObvBackupManager/CoreData/Backup.swift | 2 +- .../ObvBackupManager/CoreData/BackupKey.swift | 2 +- .../ObvBackupDelegateManager.swift | 2 - .../ObvBackupManagerImplementation.swift | 56 +- .../ChannelTypes/ObvChannel.swift | 4 +- .../ChannelTypes/ObvLocalChannel.swift | 14 +- .../ChannelTypes/ObvServerChannel.swift | 31 +- .../ObvUserInterfaceChannel.swift | 6 +- .../NetworkReceivedMessageDecryptor.swift | 8 +- .../ObliviousChannelLifeManager.swift | 13 + .../Core Data/ObvObliviousChannel.swift | 203 +- ...workReceivedMessageDecryptorDelegate.swift | 4 +- .../ObliviousChannelLifeDelegate.swift | 2 + .../ObvChannelReceivedMessage.swift | 4 +- ...rkReceivedMessageDecrypted+Extension.swift | 3 +- .../ObvChannelManagerImplementation.swift | 24 +- .../ObvChannelMessageToSendWrapper.swift | 4 +- .../ObvChannelSendChannelTypeExtension.swift | 1 + .../ObvCrypto/ObvCryptoIdentity.swift | 25 +- .../ObvCrypto/ObvCrypto/ObvCryptoSuite.swift | 12 - .../ObvCrypto/ObvOwnedCryptoIdentity.swift | 34 +- .../ObvCrypto/ObvCrypto/PRNG/BackupSeed.swift | 4 +- .../ProofOfWork/ProofOfWorkColumn.swift | 75 - .../ProofOfWork/ProofOfWorkEngine.swift | 95 - .../ProofOfWork/ProofOfWorkMatrix.swift | 39 - .../PrivateKeyForPublicKeyEncryption.swift | 7 + .../PrivateKeyForAuthentication.swift | 7 + .../ObvCrypto/SymmetricPrimitives/Hash.swift | 4 + .../SymmetricPrimitives/MAC/MACKey.swift | 7 + Engine/ObvCrypto/ObvCrypto/UID.swift | 11 + .../DataMigrationManagerForObvEngine.swift | 8 +- ...boxAttachmentMigrationPolicyV21ToV23.swift | 2 +- ...boxAttachmentMigrationPolicyV24ToV25.swift | 17 +- .../MigrationEngineDatabase_v48_to_v49.md | 56 + .../xcmapping.xml | 2139 ++ ...ntactIdentityMigrationPolicyV48ToV49.swift | 99 + ...eycloakServerMigrationPolicyV48ToV49.swift | 139 + .../MigrationEngineDatabase_v49_to_v50.md | 36 + .../xcmapping.xml | 2154 ++ ...ngServerQueryMigrationPolicyV49ToV50.swift | 101 + .../ObvDatabaseManager.swift | 27 + .../ObvEngine.xcdatamodeld/.xccurrentversion | 2 +- .../ObvEngine-v49.xcdatamodel/contents | 599 + .../ObvEngine-v50.xcdatamodel/contents | 600 + .../Type extensions/Date+ObvCodable.swift | 8 +- .../Type extensions/String+ObvCodable.swift | 2 +- .../Constants/ObvEngineConstants.swift | 24 +- .../{ => Coordinator}/EngineCoordinator.swift | 834 +- .../ActivateOwnedIdentityOperation.swift | 85 + .../DeactivateOwnedIdentityAndMore.swift | 107 + ...ppropriateDeviceDiscoveriesOperation.swift | 189 + ...WhereContactIsPendingMemberOperation.swift | 75 + .../ObvEngine/NotificationSender.swift | 740 +- Engine/ObvEngine/ObvEngine/ObvEngine.swift | 3048 ++- .../ObvEngine/ObvEngineNotificationNew.swift | 526 +- .../ObvEngine/ObvEngineNotificationNew.yml | 258 - .../ObvEngine/ObvEngine/ProtocolWaiter.swift | 147 + .../ReturnReceiptSender.swift | 9 +- .../Types/Identities/ObvContactIdentity.swift | 7 +- .../Types/Identities/ObvOwnedIdentity.swift | 2 +- .../ObvEngine/Types/ObvContactDevice.swift | 36 +- .../ObvEngine/Types/ObvContactGroup.swift | 4 + .../ObvEngine/Types/ObvCurrentDevice.swift | 55 - .../ObvEngine/Types/ObvMessage.swift | 124 - .../ObvEngine/Types/ObvOwnedDevice.swift | 61 + .../Types/ObvRemoteOwnedDevice.swift | 26 +- .../BackgroundTaskCoordinator.swift | 14 +- .../RemoteNotificationCoordinator.swift | 2 +- .../ObvFlowManager/Expectation.swift | 22 +- .../BackgroundTaskDelegate.swift | 10 +- .../RemoteNotificationDelegate.swift | 2 +- .../ObvFlowManager/ObvFlowManager.swift | 14 +- .../CoreData/ContactDevice.swift | 55 +- .../CoreData/ContactGroup.swift | 326 +- .../CoreData/ContactGroupDetails.swift | 243 +- .../CoreData/ContactGroupDetailsLatest.swift | 10 +- .../ContactGroupDetailsPublished.swift | 10 +- .../CoreData/ContactGroupDetailsTrusted.swift | 9 +- .../CoreData/ContactGroupJoined.swift | 143 +- .../CoreData/ContactGroupOwned.swift | 132 +- .../CoreData/ContactGroupV2.swift | 494 +- .../CoreData/ContactGroupV2Details.swift | 198 +- .../CoreData/ContactGroupV2Member.swift | 93 +- .../ContactGroupV2PendingMember.swift | 162 +- .../CoreData/ContactIdentity.swift | 416 +- .../CoreData/ContactIdentityDetails.swift | 33 +- .../ContactIdentityDetailsPublished.swift | 154 +- .../ContactIdentityDetailsTrusted.swift | 144 +- .../CoreData/KeycloakServer.swift | 160 +- .../CoreData/OwnedDevice.swift | 192 +- .../CoreData/OwnedIdentity.swift | 605 +- .../OwnedIdentityDetailsPublished.swift | 225 +- .../CoreData/OwnedIdentityMaskingUID.swift | 25 +- .../CoreData/PendingGroupMember.swift | 94 +- .../CoreData/PersistedTrustOrigin.swift | 116 + .../CoreData/ServerUserData.swift | 5 +- .../ObvIdentityManagerImplementation.swift | 885 +- .../ObvIdentityManagerSyncSnapshotNode.swift | 89 + ...napshotNodeManagedObjectAssociations.swift | 74 + .../ObvMetaManager/CommonTypes/Chunk.swift | 21 +- .../CommonTypes/DeviceNameUtils.swift | 57 + ...edIdentityTransferRelayMessageResult.swift | 69 + .../OwnedIdentityTransferWaitResult.swift | 69 + .../SourceGetSessionNumberResult.swift | 70 + .../SourceWaitForTargetConnectionResult.swift | 70 + .../TargetSendEphemeralIdentityResult.swift | 77 + .../CommonTypes/TurnCredentials.swift | 15 - .../ObvFlowDelegate.swift | 12 +- .../ObvBackupNotification.yml | 23 - .../ObvChannelApplicationMessageToSend.swift | 8 +- .../ObvChannelDialogMessageToSend.swift | 10 +- .../ObvChannelServerQueryMessageToSend.swift | 12 + ...bvChannelServerResponseMessageToSend.swift | 22 +- .../ObvChannel/ObvChannelDelegate.swift | 4 +- .../ObvChannel/ObvChannelNotification.swift | 12 +- .../ObvChannel/ObvChannelNotification.yml | 31 - .../ObvChannelSendChannelType.swift | 15 +- .../ObvCreateContextDelegate.swift | 11 + .../ObvIdentity/ObvIdentityDelegate.swift | 85 +- .../ObvIdentityDelegateExtension.swift | 8 +- .../ObvIdentityManagerError.swift | 62 +- .../ObvIdentityNotificationNew.swift | 89 +- .../ObvIdentityNotificationNew.yml | 139 - .../ObvIdentity/TrustOrigin.swift | 2 +- .../Types/GroupDetailsElements.swift | 7 +- .../Types/GroupV2+Structures.swift | 62 +- .../Types/IdentityDetailsElements.swift | 9 +- .../Types/OwnedDeviceDiscoveryResult.swift | 167 + .../ObvNetworkFetchDelegate.swift | 45 +- .../ObvNetworkFetchError.swift | 54 + .../ObvNetworkFetchNotification.swift | 4 +- .../ObvNetworkFetchNotificationNew.swift | 344 +- .../ObvNetworkFetchNotificationNew.yml | 162 - .../ObvNetworkFetchReceivedAttachment.swift | 4 +- .../ObvNetworkReceivedMessageDecrypted.swift | 6 +- .../ObvNetworkReceivedMessageEncrypted.swift | 4 +- .../ObvNetworkMessageToSend.swift | 4 +- .../ObvNetworkPostDelegate.swift | 6 +- .../ObvNetworkPostNotification.swift | 44 +- .../ObvNetworkPostNotification.yml | 48 - .../ObvNetworkPostDelegate/ServerQuery.swift | 141 +- .../ServerResponse.swift | 65 +- .../ObvOwnedDeviceManagementRequest.swift | 80 + .../ObvProtocol/ObvProtocolDelegate.swift | 57 +- .../ObvProtocol/ObvProtocolNotification.swift | 95 +- .../ObvProtocol/ObvProtocolNotification.yml | 30 - .../ObvProtocolReceivedMessage.swift | 4 +- .../ObvProtocolReceptionChannelInfo.swift | 19 +- .../ObvSolveChallengeDelegate.swift | 2 +- .../ObvSyncSnapshotDelegate.swift | 44 + .../ObvMetaManager/ObvConstants.swift | 24 +- .../ObvEngineDelegateType.swift | 1 + .../ObvMetaManager/ObvMetaManager.swift | 30 +- .../ObvAttachment+Initializer.swift | 80 + .../ObvMessage+Initializer.swift | 59 + .../ObvOwnedAttachment+Initializer.swift | 45 + .../ObvOwnedMessage+Initializer.swift | 57 + ...ask+SerializedInfosInTaskDescription.swift | 97 + .../BootstrapWorker.swift | 63 +- ...eAndAttachmentsFromServerCoordinator.swift | 71 +- .../DownloadAttachmentChunksCoordinator.swift | 359 +- ...CleanExistingInboxAttachmentSessions.swift | 6 +- ...legateForAttachmentDownloadOperation.swift | 4 +- ...umeDownloadsOfMissingChunksOperation.swift | 6 +- ...reviousAttachmentSignedURLsOperation.swift | 4 +- ...GettingAttachmentSignedURLsOperation.swift | 6 +- ...AttachmentAsPausedOrResumedOperation.swift | 10 +- ...nloadAttachmentChunksSessionDelegate.swift | 12 +- .../GetSignedURLsSessionDelegate.swift | 6 +- .../FreeTrialQueryCoordinator.swift | 404 +- .../GetAndSolveChallengeCoordinator.swift | 342 - .../Coordinators/GetTokenCoordinator.swift | 328 - .../GetTurnCredentialsCoordinator.swift | 390 +- .../GetTurnCredentialsOperation.swift | 134 - ...GetTurnCredentialsURLSessionDelegate.swift | 169 - .../Coordinators/MessagesCoordinator.swift | 148 +- .../NetworkFetchFlowCoordinator.swift | 774 +- ...sBatchOfUnprocessedMessagesOperation.swift | 109 +- ...uiredServerPushNotificationOperation.swift | 83 - ...shNotificationsAsToRegisterOperation.swift | 58 - ...RegisteringPushNotificationOperation.swift | 108 - ...rPushNotificationToRegisterOperation.swift | 164 - ...gisteredPushNotificationsCoordinator.swift | 414 - .../QueryApiKeyStatusCoordinator.swift | 222 - .../ServerPushNotificationsCoordinator.swift | 197 + .../Coordinators/ServerQueryCoordinator.swift | 822 +- .../ServerQueryWebSocketCoordinator.swift | 854 + .../DeleteServerSessionOperation.swift | 71 + ...ssionTokenAndAPIKeyElementsOperation.swift | 78 + ...CorrespondingToInvalidTokenOperation.swift | 81 + ...ssionTokenAndAPIKeyElementsOperation.swift | 79 + .../ServerSessionCoordinator.swift | 625 + .../ServerUserDataCoordinator.swift | 77 +- .../Operations/VerifyReceiptOperation.swift | 275 +- .../Operations/VerifyReceiptResult.swift | 172 +- .../VerifyReceiptCoordinator.swift | 558 +- .../WebSocketCoordinator.swift | 147 +- .../WellKnownCoordinator.swift | 4 +- .../CoreData/InboxAttachment.swift | 186 +- .../CoreData/InboxAttachmentChunk.swift | 13 +- .../CoreData/InboxMessage.swift | 40 +- .../CoreData/PendingDeleteFromServer.swift | 10 +- .../CoreData/PendingServerQuery.swift | 186 +- .../CoreData/ServerPushNotification.swift | 308 - .../CoreData/ServerSession.swift | 209 +- .../FailedAttemptsCounter.swift | 20 +- .../FetchRetryManager.swift | 63 +- ...sageAndAttachmentsFromServerDelegate.swift | 2 +- .../DownloadAttachmentChunksDelegate.swift | 10 +- ...sForAttachmentChunksDownloadDelegate.swift | 2 +- .../FreeTrialQueryDelegate.swift | 9 +- .../InternalDelegates/MessagesDelegate.swift | 4 +- .../NetworkFetchFlowDelegate.swift | 63 +- ...sRegisteredPushNotificationsDelegate.swift | 30 - ... => ServerPushNotificationsDelegate.swift} | 6 +- .../ServerQueryDelegate.swift | 2 + .../ServerQueryWebSocketDelegate.swift | 30 + ...gate.swift => ServerSessionDelegate.swift} | 12 +- .../VerifyReceiptDelegate.swift | 7 +- .../ObvNetworkFetchDelegateManager.swift | 32 +- ...ObvNetworkFetchManagerImplementation.swift | 304 +- ...tworkFetchManagerImplementationDummy.swift | 71 +- .../BootstrapWorker.swift | 20 +- .../NetworkSendFlowCoordinator.swift | 63 +- ...leteMessageAndAttachmentsCoordinator.swift | 20 +- ...leteOutboxAttachmentSessionOperation.swift | 4 +- .../MarkAttachmentAsCancelledOperation.swift | 4 +- ...leteOutboxAttachmentSessionOperation.swift | 4 +- ...reviousAttachmentSignedURLsOperation.swift | 4 +- ...GettingAttachmentSignedURLsOperation.swift | 6 +- ...gressesSentByShareExtensionOperation.swift | 36 +- .../EncryptAttachmentChunkOperation.swift | 27 +- ...PostAttachmentUploadRequestOperation.swift | 6 +- ...DelegateForAttachmentUploadOperation.swift | 4 +- .../GetSignedURLsSessionDelegate.swift | 6 +- ...ploadAttachmentChunksSessionDelegate.swift | 10 +- .../UploadAttachmentChunksCoordinator.swift | 48 +- .../UploadMessageAndGetUidsCoordinator.swift | 20 +- .../CoreData/DeletedOutboxMessage.swift | 14 +- .../CoreData/MessageHeader.swift | 4 +- .../CoreData/OutboxAttachment.swift | 12 +- .../CoreData/OutboxAttachmentChunk.swift | 8 +- .../CoreData/OutboxMessage.swift | 14 +- .../FailedFetchAttemptsCounterManager.swift | 8 +- ...RLsForAttachmentChunksUploadDelegate.swift | 2 +- .../NetworkSendFlowDelegate.swift | 20 +- ...oDeleteMessageAndAttachmentsDelegate.swift | 2 +- .../UploadAttachmentChunksDelegate.swift | 8 +- .../UploadMessageAndGetUidDelegate.swift | 4 +- .../ObvNetworkSendManagerImplementation.swift | 6 +- ...etworkSendManagerImplementationDummy.swift | 6 +- .../Operations/ObvOperation.swift | 8 +- .../ObvOperationWithPriorityWrapper.swift | 4 +- .../Operations/ObvOperationWrapper.swift | 6 +- .../Queue/ObvOperationNoDuplicateQueue.swift | 4 +- .../ContactTrustLevelWatcher.swift | 4 +- .../ProtocolStarterCoordinator.swift | 939 +- .../ReceivedMessageCoordinator.swift | 77 +- ...ionWithContactDeviceProtocolInstance.swift | 14 +- ...ationWithOwnedDeviceProtocolInstance.swift | 153 + .../CoreData/ProtocolInstance.swift | 37 +- .../CoreData/ReceivedMessage.swift | 76 +- .../GenericProtocolMessages.swift | 9 +- .../ProtocolStarterDelegate.swift | 70 +- .../ReceivedMessageDelegate.swift | 7 +- .../ObvProtocolDelegateManager.swift | 31 +- .../ObvProtocolManager.swift | 200 +- .../ObvProtocolManagerDummy.swift | 148 +- ...eteObsoleteReceivedMessagesOperation.swift | 60 +- ...tyTransferProtocolInstancesOperation.swift | 36 + ...tocolInstancesInAFinalStateOperation.swift | 21 +- ...nedIdentityTransferProtocolOperation.swift | 36 + .../Operations/ProtocolOperation.swift | 8 +- .../Operations/ProtocolStep.swift | 25 + ...nelCreationWithContactDeviceProtocol.swift | 20 +- ...ionWithContactDeviceProtocolMessages.swift | 44 +- ...ationWithContactDeviceProtocolStates.swift | 48 +- ...eationWithContactDeviceProtocolSteps.swift | 229 +- ...annelCreationWithOwnedDeviceProtocol.swift | 66 + ...ationWithOwnedDeviceProtocolMessages.swift | 294 + ...reationWithOwnedDeviceProtocolStates.swift | 233 + ...CreationWithOwnedDeviceProtocolSteps.swift | 975 + .../ContactManagementProtocol.swift | 6 +- .../ContactManagementProtocolMessages.swift | 60 +- .../ContactManagementProtocolStates.swift | 18 +- .../ContactManagementProtocolSteps.swift | 91 +- .../ContactMutualIntroductionProtocol.swift | 26 +- ...ctMutualIntroductionProtocolMessages.swift | 121 +- ...tactMutualIntroductionProtocolStates.swift | 50 +- ...ntactMutualIntroductionProtocolSteps.swift | 202 +- .../Protocols/CryptoProtocolId.swift | 130 +- .../DeviceCapabilitiesDiscoveryProtocol.swift | 15 +- ...apabilitiesDiscoveryProtocolMessages.swift | 32 +- ...eCapabilitiesDiscoveryProtocolStates.swift | 18 +- ...ceCapabilitiesDiscoveryProtocolSteps.swift | 40 +- ...ceDiscoveryForRemoteIdentityProtocol.swift | 497 - .../ContactDeviceDiscoveryProtocol.swift | 66 + ...ntactDeviceDiscoveryProtocolMessages.swift | 98 + ...ContactDeviceDiscoveryProtocolStates.swift | 98 + ...ContactDeviceDiscoveryProtocolSteps.swift} | 202 +- ...ceDiscoveryForRemoteIdentityProtocol.swift | 69 + ...eryForRemoteIdentityProtocolMessages.swift | 109 + ...overyForRemoteIdentityProtocolStates.swift | 100 + ...coveryForRemoteIdentityProtocolSteps.swift | 121 + .../OwnedDeviceDiscoveryProtocol.swift | 65 + ...OwnedDeviceDiscoveryProtocolMessages.swift | 124 + .../OwnedDeviceDiscoveryProtocolStates.swift | 93 + .../OwnedDeviceDiscoveryProtocolSteps.swift | 198 + .../DownloadIdentityPhotoChildProtocol.swift | 7 +- ...adIdentityPhotoChildProtocolMessages.swift | 2 +- ...loadIdentityPhotoChildProtocolStates.swift | 24 +- ...nloadIdentityPhotoChildProtocolSteps.swift | 12 +- .../FullRatchetProtocol.swift | 21 +- .../FullRatchetProtocolMessages.swift | 32 +- .../FullRatchetProtocolStates.swift | 36 +- .../FullRatchetProtocolSteps.swift | 50 +- .../DownloadGroupPhotoChildProtocol.swift | 6 +- ...nloadGroupPhotoChildProtocolMessages.swift | 2 +- ...ownloadGroupPhotoChildProtocolStates.swift | 24 +- ...DownloadGroupPhotoChildProtocolSteps.swift | 27 +- .../GroupInvitationProtocol.swift | 12 +- .../GroupInvitationProtocolMessages.swift | 38 +- .../GroupInvitationProtocolStates.swift | 36 +- .../GroupInvitationProtocolSteps.swift | 72 +- .../GroupManagementProtocol.swift | 8 +- .../GroupManagementProtocolMessages.swift | 257 +- .../GroupManagementProtocolStates.swift | 18 +- .../GroupManagementProtocolSteps.swift | 664 +- .../DownloadGroupV2PhotoProtocol.swift | 4 +- .../DownloadGroupV2PhotoProtocolSteps.swift | 2 +- .../GroupV2Protocol/GroupV2Protocol.swift | 4 +- .../GroupV2ProtocolMessages.swift | 43 +- .../GroupV2ProtocolStates.swift | 110 +- .../GroupV2ProtocolSteps.swift | 444 +- .../IdentityDetailsPublicationProtocol.swift | 2 +- ...tyDetailsPublicationProtocolMessages.swift | 51 +- ...ntityDetailsPublicationProtocolSteps.swift | 102 +- .../KeycloakBindingAndUnbindingProtocol.swift | 73 + ...kBindingAndUnbindingProtocolMessages.swift | 191 + ...oakBindingAndUnbindingProtocolStates.swift | 37 +- ...loakBindingAndUnbindingProtocolSteps.swift | 310 + .../KeycloakContactAdditionProtocol.swift | 17 +- ...cloakContactAdditionProtocolMessages.swift | 38 +- ...eycloakContactAdditionProtocolStates.swift | 30 +- ...KeycloakContactAdditionProtocolSteps.swift | 61 +- .../OneToOneContactInvitationProtocol.swift | 6 +- ...OneContactInvitationProtocolMessages.swift | 80 +- ...ToOneContactInvitationProtocolStates.swift | 30 +- ...eToOneContactInvitationProtocolSteps.swift | 125 +- .../OwnedDeviceManagementProtocol.swift | 65 + ...wnedDeviceManagementProtocolMessages.swift | 167 + .../OwnedDeviceManagementProtocolStates.swift | 93 + .../OwnedDeviceManagementProtocolSteps.swift | 295 + .../OwnedIdentityDeletionProtocol.swift | 2 +- ...wnedIdentityDeletionProtocolMessages.swift | 169 +- .../OwnedIdentityDeletionProtocolStates.swift | 116 +- .../OwnedIdentityDeletionProtocolSteps.swift | 603 +- .../OwnedIdentityTransferProtocol.swift | 62 + ...wnedIdentityTransferProtocolMessages.swift | 512 + ...dentityTransferProtocolNotifications.swift | 444 + .../OwnedIdentityTransferProtocolStates.swift | 311 + .../OwnedIdentityTransferProtocolSteps.swift | 1530 ++ .../SynchronizationProtocol.swift | 87 + .../SynchronizationProtocolMessages.swift | 264 + .../SynchronizationProtocolStates.swift | 116 + .../SynchronizationProtocolSteps.swift | 654 + ...tEstablishmentWithMutualScanProtocol.swift | 17 +- ...shmentWithMutualScanProtocolMessages.swift | 33 +- ...tWithMutualScanProtocolMessagesSteps.swift | 46 +- ...lishmentWithMutualScanProtocolStates.swift | 24 +- .../TrustEstablishmentWithSASProtocol.swift | 22 +- ...EstablishmentWithSASProtocolMessages.swift | 81 +- ...stEstablishmentWithSASProtocolStates.swift | 54 +- ...ustEstablishmentWithSASProtocolSteps.swift | 122 +- .../ObvS3DownloadAttachmentChunkMethod.swift | 4 +- .../ObvS3UploadAttachmentChunkMethod.swift | 4 +- .../ObvServerInterfaceConstants.swift | 2 +- ...verDeleteMessageAndAttachmentsMethod.swift | 4 +- ...DownloadMessageExtendedPayloadMethod.swift | 4 +- .../Fetch/ObvServerGetTokenMethod.swift | 65 +- ...ServerRegisterPushNotificationMethod.swift | 86 +- .../ObvServerRequestChallengeMethod.swift | 54 +- .../Fetch/QueryApiKeyStatusServerMethod.swift | 54 +- ...InboxAttachmentSignedUrlServerMethod.swift | 4 +- ....swift => VerifyReceiptServerMethod.swift} | 55 +- .../GetAttachmentUploadProgressMethod.swift | 4 +- .../Send/ObvRegisterAPIKeyServerMethod.swift | 82 + .../Send/ObvServerDeviceDiscoveryMethod.swift | 4 +- .../Send/ObvServerGetPoWChallengeMethod.swift | 91 - .../ObvServerOwnedDeviceDiscoveryMethod.swift | 104 + ...vServerUploadMessageAndGetUidsMethod.swift | 1 + .../OwnedDeviceManagementServerMethod.swift | 118 + .../ObvServerMethod/ObvServerMethod.swift | 48 +- ...ObvSyncSnapshotManagerImplementation.swift | 144 + Engine/ObvTypes/ObvTypes/APIKeyStatus.swift | 47 +- .../ObvTypes/ObvTypes/GroupV1Identifier.swift | 78 + .../ObvTypes/ObvTypes/GroupV2Identifier.swift | 5 +- .../ObvTypes/ObvAppStoreReceipt.swift | 47 + .../ObvTypes/ObvAttachmentIdentifier.swift} | 45 +- .../ObvTypes/ObvContactIdentifier.swift | 74 + .../ObvTypes}/ObvDialog.swift | 153 +- .../ObvEncryptedPushNotification.swift} | 14 +- .../ObvTypes}/ObvGenericIdentity.swift | 11 +- .../ObvTypes/ObvGroupCoreDetails.swift | 10 +- Engine/ObvTypes/ObvTypes/ObvGroupV2.swift | 7 +- .../ObvTypes}/ObvIdentity.swift | 5 +- .../ObvTypes/ObvIdentityCoreDetails.swift | 46 + .../ObvTypes/ObvIdentityDetails.swift | 7 +- .../ObvTypes/ObvTypes/ObvKeycloakState.swift | 73 +- .../ObvTypes/ObvMessageIdentifier.swift} | 91 +- .../ObvOwnedDeviceDiscoveryResult.swift | 53 + .../ObvTypes/ObvPushNotificationType.swift | 363 +- .../ObvTypes/ObvRegisterApiKeyResult.swift | 8 +- Engine/ObvTypes/ObvTypes/ObvSyncAtom.swift | 517 + .../ObvTypes}/ObvTurnCredentials.swift | 0 .../ObvTypes}/ObvURLIdentity.swift | 5 +- .../ObvAttachment.swift | 93 +- .../ObvMessage.swift | 103 + .../ObvOwnedAttachment.swift | 75 + .../ObvOwnedMessage.swift | 72 + .../SyncSnapshots/ObvSnapshotable.swift | 39 + .../ObvTypes/SyncSnapshots/ObvSyncDiff.swift | 7 +- .../SyncSnapshots/ObvSyncSnapshot.swift | 138 + .../SyncSnapshots/ObvSyncSnapshotNode.swift | 60 + .../ObvOwnedIdentityTransferSas.swift | 59 + ...bvOwnedIdentityTransferSessionNumber.swift | 71 + Engine/Project.swift | 105 +- .../Project.swift | 3 +- .../TextInputShortcutsResultView.swift | 12 +- .../TextShortcutItem.swift | 2 +- .../CoreDataStack/CoreDataStack.swift | 19 + .../CoreDataStack/DataMigrationManager.swift | 14 +- .../AttachmentsDropView.swift | 361 - .../_AttachmentsTargetDropZoneView.swift | 171 - .../_DroppedItemProvider.swift | 149 - .../en.lproj/Localizable.strings | 3 - .../fr.lproj/Localizable.strings | 3 - Modules/Discussions/Project.swift | 17 +- .../ScrollToBottomButton.swift | 24 +- .../IdentityColorStyle.swift | 0 .../ObvDesignSystem}/AppTheme/AppTheme.swift | 8 +- .../CallBarColor.colorset/Contents.json | 0 .../Colors/Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Colors/EdmondGreen.colorset/Contents.json | 0 .../EdmondPrimary300.colorset/Contents.json | 0 .../EdmondPrimary400.colorset/Contents.json | 0 .../EdmondPrimary700.colorset/Contents.json | 0 .../EdmondPrimary800.colorset/Contents.json | 0 .../EdmondPrimary900.colorset/Contents.json | 0 .../EdmondSecondary600.colorset/Contents.json | 0 .../EdmondSecondary700.colorset/Contents.json | 0 .../EdmondSecondary800.colorset/Contents.json | 0 .../EdmondSecondary900.colorset/Contents.json | 0 .../EdmondSurfaceDark.colorset/Contents.json | 0 .../EdmondSurfaceLight.colorset/Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Colors/OlvidDark.colorset/Contents.json | 0 .../Colors/OlvidLight.colorset/Contents.json | 0 .../Colors/OlvidPurple.colorset/Contents.json | 0 .../Colors/OlvidRed.colorset/Contents.json | 0 .../Contents.json | 0 .../AppThemeAssets.xcassets}/Contents.json | 0 .../AppTheme/AppThemeColorScheme.swift | 1 - .../AppTheme/AppThemeIcons.swift | 1 - .../AppTheme/AppThemeImages.swift | 1 - Modules/ObvSettings/Localizable.xcstrings | 233 + ...LocalizableClassForObvSettingsBundle.swift | 45 + .../ObvMessengerSettings.swift | 146 +- .../ObvMessengerSettingsNotifications.swift | 24 +- .../ObvUICoreDataConstants.swift | 31 +- .../Types/AuthenticationMethod.swift | 8 +- .../ObvSettings/Types/ContactsSortOrder.swift | 10 +- .../Types/DurationOption.swift | 0 .../Types/LocalAuthenticationPolicy.swift | 2 +- .../Types/MentionNotificationMode.swift | 0 .../Types/NewComposeMessageViewAction.swift | 0 .../Types}/NotificationSound.swift | 7 + .../UserDefaults+Extension.swift | 0 .../Elements/Buttons/ObvImageButton.swift | 8 +- .../CircledInitialsConfiguration+Utils.swift | 75 +- .../CircledInitials/CircledInitialsView.swift | 7 +- .../NewCircledInitialsView.swift | 74 +- .../Elements}/HUD/SwiftUI/BlurView.swift | 10 +- .../ObvUI/Elements}/HUD/SwiftUI/HUDView.swift | 26 +- .../Elements}/HUD/UIKit/HUDs/ObvHUDView.swift | 2 +- .../Elements}/HUD/UIKit/HUDs/ObvIconHUD.swift | 3 +- .../HUD/UIKit/HUDs/ObvLoadingHUD.swift | 0 .../Elements}/HUD/UIKit/HUDs/ObvTextHUD.swift | 2 +- .../Elements}/HUD/UIKit/ObvCanShowHUD.swift | 2 +- .../Elements}/HUD/UIKit/ObvHUDType.swift | 3 +- .../UIViewController+ObvCanShowHUD.swift | 14 +- .../OlvidUI/ObvUI/ObvUI/Localizable.xcstrings | 1777 ++ .../LocalizableClassForObvUIBundle.swift | 44 + .../DiscussionsSelectionViewController.swift | 2 +- ...scussionsSelectionViewControllerCell.swift | 2 + ...SelectionViewControllerCellViewModel.swift | 5 +- ...izontalListOfSelectedDiscussionsCell.swift | 4 +- ...stOfSelectedDiscussionsCellViewModel.swift | 10 +- ...OfSelectedDiscussionsPlaceholderCell.swift | 5 +- .../ObvUI/Utils/DurationOption+Utils.swift | 1 + .../ObvUI/Utils/DurationOptionAlt+Utils.swift | 1 + .../NewComposeMessageViewAction+Utils.swift | 2 + .../ObvUI/Utils/NotificationSound+Utils.swift | 181 +- .../ObvUI/Utils/ObvCryptoId+Colors.swift | 3 + .../ObvUI/Utils/ObvUTIUtils+Extensions.swift | 68 +- .../Utils/PersistedDiscussion+Utils.swift | 1 + .../Enums/RequesterOfMessageDeletion.swift | 28 - .../GlobalSettingsBackupItem+Utils.swift} | 18 +- .../ObvUICoreData/Localizable.xcstrings | 1459 ++ ...calizableClassForObvUICoreDataBundle.swift | 34 + .../Localization/CommonString.swift | 18 +- .../PersistedMessageSystem+Strings.swift | 30 +- .../PersistedContactGroup.swift | 439 +- .../PersistedContactGroupJoined.swift | 60 +- .../ContactGroupV2/PersistedGroupV2.swift | 768 +- .../ContactGroup/DisplayedContactGroup.swift | 7 +- .../Devices}/PersistedObvContactDevice.swift | 144 +- .../Devices/PersistedObvOwnedDevice.swift | 290 + .../Models/DraftFyleJoin/FyleJoin.swift | 4 +- .../PersistedDraftFyleJoin.swift | 16 +- .../ObvUICoreData/Models/Fyle.swift | 75 +- .../Models/FyleMessageJoinWithStatus.swift | 52 +- .../PersistedObvContactIdentity+Backup.swift | 6 +- .../PersistedObvContactIdentity.swift | 913 +- .../PersistedObvOwnedIdentity+Backup.swift | 2 +- .../PersistedObvOwnedIdentity.swift | 1943 +- ...dDiscussionLocalConfiguration+Backup.swift | 2 +- ...ersistedDiscussionLocalConfiguration.swift | 48 +- ...rsistedDiscussionSharedConfiguration.swift | 321 +- .../PersistedDiscussion.swift | 1568 +- .../PersistedGroupDiscussion.swift | 50 +- .../PersistedGroupV2Discussion.swift | 40 +- .../PersistedOneToOneDiscussion.swift | 386 +- .../PersistedInvitation.swift | 14 +- .../CallLog/PersistedCallLogContact.swift | 11 +- .../CallLog/PersistedCallLogItem.swift | 49 +- ...rReceivedMessageWithLimitedExistence.swift | 2 +- ...ReceivedMessageWithLimitedVisibility.swift | 2 +- ...onForSentMessageWithLimitedExistence.swift | 2 +- ...nForSentMessageWithLimitedVisibility.swift | 2 +- .../PendingMessageReaction.swift | 180 - .../PersistedMessage+Utils.swift | 76 +- .../PersistedMessage/PersistedMessage.swift | 750 +- .../PersistedMessageReaction.swift | 21 +- .../PersistedMessageReceived.swift | 568 +- .../PersistedMessageSent+Utils.swift | 39 +- .../PersistedMessageSent.swift | 730 +- .../PersistedMessageSentRecipientInfos.swift | 29 +- .../PersistedMessageSystem.swift | 185 +- .../RemoteDeleteAndEditRequest.swift | 288 - .../RemoteRequestSavedForLater.swift | 518 + ...stedContactGroup+ThreadSafeStructure.swift | 1 + ...nLocalConfiguration+ThreadSafeStruct.swift | 1 + ...PersistedGroupV2+ThreadSafeStructure.swift | 1 + ...PersistedMessage+ThreadSafeStructure.swift | 3 + ...vContactIdentity+ThreadSafeStructure.swift | 1 + ...ObvOwnedIdentity+ThreadSafeStructure.swift | 1 + .../ReceivedFyleMessageJoinWithStatus.swift | 198 +- .../SentFyleMessageJoinWithStatus.swift | 271 +- .../ObvMessengerCoreDataNotification.swift | 135 +- .../ObvMessengerCoreDataNotification.yml | 182 - .../ObvUICoreData/ObvUICoreDataHelper.swift | 36 + ...edFyleMessageJoinWithStatusOperation.swift | 29 +- ...llOrphanedPersistedMessagesOperation.swift | 40 + ...RemoteRequestsSavedForLaterOperation.swift | 21 +- .../DeleteOrphanedExpirationsOperation.swift | 21 +- .../ObvUICoreData/Protocols/FyleElement.swift | 4 +- .../Mentions/MentionableIdentity.swift | 2 +- .../ObvMessengerSettingsNotifications.yml | 11 - .../ObvUICoreData/Types/AppBackupItem.swift | 15 +- .../Types/AppSyncSnapshotNode.swift | 98 + .../Types/DiscussionIdentifier.swift | 102 + ...eElementForFyleMessageJoinWithStatus.swift | 36 +- ...FyleElementForPersistedDraftFyleJoin.swift | 28 +- .../ObvUICoreData/Types/FyleMetadata.swift | 27 +- .../ObvUICoreData/Types/GroupIdentifier.swift | 4 +- .../Types/GroupV2CoreDetails.swift | 4 +- .../Types/MessageIdentifier.swift | 73 + .../Types/ObvUICoreDataError.swift | 116 + .../Types/PersistedMessageJSON.swift | 952 +- ...er.swift => ContactsSortOrder+Utils.swift} | 7 +- .../Utils/ObvDisplayNameStyle.swift | 55 - .../ObvUICoreData/Utils/ObvUTIUtils.swift | 143 - .../Utils/UTType+Extension.swift | 47 + .../JSON Messages/WebRTCMessageJSON.swift | 6 +- .../en.lproj/Localizable.strings | 188 - .../en.lproj/Localizable.stringsdict | 60 - .../fr.lproj/Localizable.strings | 188 - .../fr.lproj/Localizable.stringsdict | 340 - ...Context+PerformAndWaitWithReturnType.swift | 54 - .../NSPredicate+Initializers.swift | 8 + .../OlvidUtils/CoreDataUtils/ObvContext.swift | 6 - ...OperationWithSpecificReasonForCancel.swift | 60 + ...ompositionOfFiveContextualOperations.swift | 1 - ...ompositionOfFourContextualOperations.swift | 1 - .../CompositionOfOneContextualOperation.swift | 17 +- ...mpositionOfThreeContextualOperations.swift | 1 - ...CompositionOfTwoContextualOperations.swift | 1 - ...OperationWithSpecificReasonForCancel.swift | 27 +- .../OperationQueue+addAndAwaitOperation.swift | 45 + ...OperationWithSpecificReasonForCancel.swift | 7 +- .../OlvidUtils/SwiftUI}/SwiftUIUtils.swift | 84 +- .../Dictionary+MapKeysAndValues.swift | 65 + .../TypeExtensions/Operation+Utils.swift | 33 + .../UIDevice+CurrentDeviceName.swift | 165 + .../UIViewController+AsyncAwaitSuspend.swift | 63 + .../TypeExtensions/URLSession+Async.swift | 52 - .../OlvidUtils/Types/ObvBackupable.swift | 1 + Modules/Project.swift | 76 +- .../CircledInitialsConfiguration.swift | 89 - .../CircledInitialsConfiguration.swift | 202 + .../CircledInitialsIcon.swift} | 16 +- .../InitialCircleViewNew.swift | 105 + .../.gitignore | 1 + .../project.pbxproj | 371 + .../AppDelegate.swift | 48 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 13 + .../Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 46 + .../Base.lproj/Main.storyboard | 67 + .../Info.plist | 27 + .../SceneDelegate.swift | 64 + .../SimpleImageViewerViewController.swift | 58 + .../ViewController.swift | 129 + .../ObvImageEditorViewController.swift | 593 + ...ageEditorViewControllerRepresentable.swift | 72 + .../UI/ObvPhotoButton/Localizable.xcstrings | 54 + ...alizableClassForObvPhotoButtonBundle.swift | 58 + .../ObvPhotoButton/ObvPhotoButtonView.swift | 92 + Modules/UI/Project.swift | 94 +- Modules/UI/SystemIcon/SystemIcon.swift | 137 +- .../SystemIcon_SwiftUI/Label+SystemIcon.swift | 6 +- ...BUNDLE_IDENTIFIER_from_all_project_pbxproj | 8 + .../ObvMessenger/AppDelegate.swift | 20 +- .../Assets.xcassets/I.colorset/Contents.json | 38 + .../NewColors/Blue01.colorset/Contents.json | 38 + .../Assets.xcassets/NewColors/Contents.json | 6 + .../Contents.json | 38 + .../Contents.json | 38 + .../Cells/FyleCollectionViewCell.swift | 1 + .../Constants/ObvMessengerConstants.swift | 26 +- .../Coordinators/AppCoordinatorsHolder.swift | 148 +- .../AppSyncSnapshotableCoordinator.swift | 206 + ...baseWithAppSyncSnapshotNodeOperation.swift | 52 + .../BoostrapCoordinator.swift | 88 +- ...ndingGroupInvitesIfPossibleOperation.swift | 124 +- .../DeleteOldPendingRepliedToOperation.swift | 22 +- ...ttachmentSentRecipientInfosOperation.swift | 22 +- ...ionTheCannotBeParsedAnymoreOperation.swift | 31 +- .../SendUnsentDraftsOperation.swift | 29 +- ...edContactGroupsV2WithEngineOperation.swift | 126 +- ...stedContactGroupsWithEngineOperation.swift | 212 +- ...sistedInvitationsWithEngineOperation.swift | 66 +- ...ObvContactDevicesWithEngineOperation.swift | 71 + ...ContactIdentitiesWithEngineOperation.swift | 240 +- ...edObvOwnedDevicesWithEngineOperation.swift | 110 + ...bvOwnedIdentitiesWithEngineOperation.swift | 167 +- .../ContactGroupCoordinator.swift | 57 +- ...ateOrUpdatePersistedGroupV2Operation.swift | 58 +- .../DeletePersistedGroupV2Operation.swift | 26 +- ...ishedDetailsOfGroupV2AsSeenOperation.swift | 23 +- .../ProcessContactGroupDeletedOperation.swift | 48 +- ...ndingMembersAndGroupMembersOperation.swift | 71 +- ...pHasUpdatedPublishedDetailsOperation.swift | 56 +- ...nedHasUpdatedTrustedDetailsOperation.swift | 48 +- ...OwnedDiscardedLatestDetailsOperation.swift | 44 +- ...wnedHasUpdatedLatestDetailsOperation.swift | 44 +- .../ProcessNewContactGroupOperation.swift | 34 +- ...ngGroupMemberDeclinedStatusOperation.swift | 54 +- ...actGroupOwnedHasBeenUpdatedOperation.swift | 40 +- ...ctGroupJoinedHasBeenUpdatedOperation.swift | 40 +- ...eUpdateInProgressForGroupV2Operation.swift | 25 +- ...etCustomNameOfJoinedGroupV1Operation.swift | 102 + ...teCustomNameAndGroupV2PhotoOperation.swift | 121 +- .../Operations/UpdateGroupV2Operation.swift | 56 +- ...UpdatePersonalNoteOnGroupV1Operation.swift | 101 + ...UpdatePersonalNoteOnGroupV2Operation.swift | 101 + .../ContactIdentityCoordinator.swift | 92 +- .../ProcessContactWasDeletedOperation.swift | 27 +- ...ousChannelWithContactDeviceOperation.swift | 61 - ...ousChannelWithContactDeviceOperation.swift | 72 +- ...ssNewTrustedContactIdentityOperation.swift | 56 +- ...ntactIdentityHasBeenUpdatedOperation.swift | 24 +- ...tityDetailsStatusWithEngineOperation.swift | 112 - ...ctIdentityDevicesWithEngineOperation.swift | 93 +- .../UpdateContactsSortOrderOperation.swift | 53 +- ...icknameAndPictureForContactOperation.swift | 76 +- ...tactsCertifiedByOwnKeycloakOperation.swift | 38 +- ...ityStatusWithInfoFromEngineOperation.swift | 69 +- ...ntityWithObvContactIdentityOperation.swift | 33 +- ...UpdatePersonalNoteOnContactOperation.swift | 98 + ...erDidSeeNewDetailsOfContactOperation.swift | 37 +- .../ObvSyncAtomRequestDelegate.swift | 29 + .../MessagesKeptForLaterManager.swift | 104 + .../ObvOwnedIdentityCoordinator.swift | 170 +- .../DeleteOwnedIdentityOperation.swift | 76 +- .../HideOwnedIdentityOperation.swift | 34 +- ...AllPersistedInvitationAsOldOperation.swift | 28 +- ...tDeviceWithoutSpecifiedNameOperation.swift | 66 + ...CountsForAllOwnedIdentitiesOperation.swift | 44 +- .../UnhideOwnedIdentityOperation.swift | 22 +- ...dPermissionsOfOwnedIdentityOperation.swift | 21 +- ...pdateOwnedCustomDisplayNameOperation.swift | 46 +- ...dIdentityAsItWasDeactivatedOperation.swift | 20 +- ...dIdentityAsItWasReactivatedOperation.swift | 20 +- .../UpdateOwnedIdentityOperation.swift | 20 +- ...ofilePictureOfOwnedIdentityOperation.swift | 18 +- ...tedToDeletedContactIdentityOperation.swift | 2 +- ...ewMessagesForAllDiscussionsOperation.swift | 36 +- ...cussionsIllustrativeMessageOperation.swift | 36 +- ...lesThatHaveNoAssociatedFyleOperation.swift | 2 +- .../CleanCallLogContactsOperation.swift | 2 +- .../CallLog/ReportCallEventOperation.swift | 10 +- .../CallLog/ReportEndCallOperation.swift | 3 +- ...iredMuteNotficationEndDatesOperation.swift | 18 +- .../CreateRandomDraftDebugOperation.swift | 35 +- ...eRandomMessageReceivedDebugOperation.swift | 422 +- ...SentMessageAsDeliveredDebugOperation.swift | 60 +- .../ArchiveDiscussionOperation.swift | 43 +- ...DownloadOfPersistedMessagesOperation.swift | 157 +- ...teAllEmptyLockedDiscussionsOperation.swift | 20 +- ...tedMessagesWithinDiscussionOperation.swift | 217 - ...nMessageSavedByNotificationExtension.swift | 3 +- .../DeletePersistedDiscussionOperation.swift | 88 + .../DeletePersistedMessagesOperation.swift | 118 +- ...dMoveAssociatedFilesToTrashOperation.swift | 38 +- ...RemoteWipeDiscussionRequestOperation.swift | 141 + ...ssRemoteWipeMessagesRequestOperation.swift | 161 + ...dGlobalDeleteDiscussionJSONOperation.swift | 106 +- ...endGlobalDeleteMessagesJSONOperation.swift | 8 +- ...ibilityMessagesAfterLockOutOperation.swift | 174 +- .../WipeExpiredMessagesOperation.swift | 116 +- ...eFyleMessageJoinsWithStatusOperation.swift | 157 +- .../WipeMessagesOperation.swift | 237 - ...ipeOrDeleteReadOnceMessagesOperation.swift | 112 +- ...eDiscussionForReportingCallOperation.swift | 89 +- .../Drafts/AddReplyToOnDraftOperation.swift | 41 +- ...leteAllDraftFyleJoinOfDraftOperation.swift | 24 +- .../Drafts/DeleteDraftFyleJoin.swift | 2 +- ...eateDraftFyleJoinsCompositeOperation.swift | 11 +- ...omLoadedFileRepresentationsOperation.swift | 208 +- .../RemoveReplyToOnDraftOperation.swift | 22 +- .../RequestedSendingOfDraftOperation.swift | 28 +- ...AndMentionsOfPersistedDraftOperation.swift | 25 +- .../UpdateDraftBodyAndMentionsOperation.swift | 28 +- ...itTextBodyOfReceivedMessageOperation.swift | 249 +- .../EditTextBodyOfSentMessageOperation.swift | 125 +- .../SendUpdateMessageJSONOperation.swift | 176 +- ...ostDiscussionReadJSONEngineOperation.swift | 108 + ...lityMessageOpenedJSONEngineOperation.swift | 111 + .../SendOwnedWebRTCMessageOperation.swift | 96 + .../SendWebRTCMessageOperation.swift | 69 +- ...AppropriateActiveDiscussionOperation.swift | 179 - ...eIfCurrentDiscussionIsEmptyOperation.swift | 26 +- ...MessageSystemIntoDiscussionOperation.swift | 175 +- ...aredExpirationConfigurationOperation.swift | 241 +- ...espondToQuerySharedSettingsOperation.swift | 160 +- ...redConfigurationIfAllowedToOperation.swift | 186 +- ...aredExpirationConfigurationOperation.swift | 93 +- ...ageJoinWithStatusAsCancelledByServer.swift | 53 +- ...gesAsNotNewWithinDiscussionOperation.swift | 185 +- .../Operations/MarkAsOpenedOperation.swift | 32 +- ...hExpiredCountBasedRetentionOperation.swift | 2 +- ...thExpiredTimeBasedRetentionOperation.swift | 2 +- ...ceivedThatRequireUserActionOperation.swift | 118 - ...ceivedThatRequireUserActionOperation.swift | 273 +- ...ssagesThatRequireUserActionOperation.swift | 183 + .../ProcessObvReturnReceiptOperation.swift | 114 +- ...edMessagesAsTheyTurnsNotNewOperation.swift | 108 +- ...AssociatedToContactIdentityOperation.swift | 2 +- ...tIntroductionInvitationSentOperation.swift | 86 + .../ProcessObvDialogOperation.swift | 341 +- ...actionOnMessageLocalRequestOperation.swift | 101 + ...etOrUpdateReactionOnMessageOperation.swift | 150 + ...gRemoteDeleteAndEditRequestOperation.swift | 211 - .../ApplyPendingReactionsOperation.swift | 190 - ...dMessageTimestampedMetadataOperation.swift | 23 +- ...eivedFromReceivedObvMessageOperation.swift | 177 + ...FromReceivedObvOwnedMessageOperation.swift | 164 + ...dOrOrphanedPendingReactionsOperation.swift | 49 - ...RemoteDeleteAndEditRequestsOperation.swift | 49 - ...ractReceivedExtendedPayloadOperation.swift | 40 +- .../MarkAsReadReceivedMessageOperation.swift | 118 +- ...ceivedJoinAsResumedOrPausedOperation.swift | 60 +- ...edSentJoinAsResumedOrPausedOperation.swift | 74 + ...rogressesReceivedFromEngineOperation.swift | 2 +- ...ivingMessageAndAttachmentsOperations.swift | 613 - ...meOrPauseAttachmentDownloadOperation.swift | 66 +- ...auseOwnedAttachmentDownloadOperation.swift | 92 + ...SaveReceivedExtendedPayloadOperation.swift | 105 +- ...edFromReceivedObvAttachmentOperation.swift | 124 + ...mReceivedObvOwnedAttachmentOperation.swift | 112 + .../ReorderDiscussionsOperation.swift | 100 +- .../SendReactionJSONOperation.swift | 116 +- .../ComputeExtendedPayloadOperation.swift | 148 +- ...istedMessageSentFromMessageOperation.swift | 89 +- ...ersistedMessageSentFromBodyOperation.swift | 50 +- ...ssageSentFromPersistedDraftOperation.swift | 111 +- ...ersistedMessageSentFromBodyOperation.swift | 81 +- ...eToOneDiscussionWithContactOperation.swift | 148 +- ...ntInfosCanNowBeSentByEngineOperation.swift | 10 +- ...ageJoinWithStatusAsCompleteOperation.swift | 72 +- ...ageAsCouldNotBeSentToServerOperation.swift | 46 +- ...ssagesWereCapturedByContactOperation.swift | 115 - ...WereCapturedByOwnedIdentityOperation.swift | 115 +- ...nsitiveMessagesWereCapturedOperation.swift | 137 + ...rogressesReceivedFromEngineOperation.swift | 2 +- ...ocessedPersistedMessageSentOperation.swift | 479 +- ...edMessageSentRecipientInfosOperation.swift | 40 +- ...OfPersistedMessageSentRecipientInfos.swift | 40 +- ...TitlesWithContactNameOperation.swift.swift | 36 +- ...iscussionLocalConfigurationOperation.swift | 199 +- .../UpdateDraftConfigurationOperation.swift | 34 +- ...chKeyOnPersistedDiscussionsOperation.swift | 19 +- .../UpdateReactionsOfMessageOperation.swift | 234 - ...rsistedDiscussionsUpdatesCoordinator.swift | 1937 +- .../DataMigrationManagerForObvMessenger.swift | 6 +- .../MentionableIdentity+Extensions.swift | 4 +- .../NeutralToneCategory+Utils.swift | 4 +- ...GroupToDisplayedContactGroupV49ToV50.swift | 2 +- .../MigrationAppDatabase_v66_to_v67.md | 107 + .../xcmapping.xml | 2511 ++ ...geSentToPersistedMessageSentV66ToV67.swift | 77 + ...eJoinWithStatusMigrationPolicyV6ToV7.swift | 54 +- ...eJoinWithStatusMigrationPolicyV6ToV7.swift | 55 +- .../.xccurrentversion | 2 +- .../ObvMessenger 67.xcdatamodel/contents | 507 + .../ObvMessengerPersistentContainer.swift | 2 + .../FileSystemService/FileSystemService.swift | 2 + .../ObvMessenger/InfoPlist.xcstrings | 192 + .../InitializerViewController.swift | 5 +- .../Invitation Flow/AddContactFlow.swift | 591 +- .../BetaConfigurationActivationView.swift | 2 + .../ConfirmAddContactView.swift | 1 + .../ConfirmAddingKeycloakContactView.swift | 2 + .../BindingShowIdentityView.swift | 77 +- .../BindingUseIdentityProviderView.swift | 1 + .../Invitation Flow/KeycloakSearchView.swift | 1 + .../LicenseActivationView.swift | 260 - .../LicenseActivationView.swift | 428 + ...nViewModelOwnedIdentityModelProtocol.swift | 12 +- .../Invitation Flow/ScannerView.swift | 16 +- .../SendInviteOrShowSecondQRCodeView.swift | 6 +- .../SubViews/CircleAndTitlesView.swift | 178 +- .../SubViews/CircledCameraButtonView.swift | 192 +- .../SubViews/IdentityCardContentView.swift | 361 +- .../SubViews/OlvidButton.swift | 31 +- .../SubViews/ProfilePictureView.swift | 111 +- .../Invitation Flow/SubViews/TextView.swift | 60 +- .../ObvMessenger/LaunchScreen.storyboard | 10 +- .../LocalAuthenticationViewController.swift | 22 +- .../ObvMessenger/Localizable.xcstrings | 19991 ++++++++++++++++ .../Localization/CommonString.swift | 2 +- ...cumentPickerAdapterWithDraft+Strings.swift | 33 - ...iscussionsFlowViewController+Strings.swift | 4 +- ...sSettingsTableViewController+Strings.swift | 35 - .../MetaFlowController+Strings.swift | 2 + ...ngleDiscussionViewController+Strings.swift | 72 - .../UserNotificationCreator+Strings.swift | 14 - .../ObvMessenger/Main/CallBannerView.swift | 2 + .../AllContactsViewController.swift | 46 +- .../OlvidCardView/OlvidCardView.swift | 5 +- .../ContactDetailedInfosView.swift | 101 +- ...leContactDetailedInfosViewController.swift | 160 - ...ontactIdentityNicknameNavigationView.swift | 46 - ...ditSingleContactIdentityNicknameView.swift | 147 - .../ContactDeviceView.swift | 211 + .../ContactDevicesListView.swift | 190 + .../ListOfContactDevicesViewController.swift | 93 + ...vice+ContactDeviceViewModelProtocol.swift} | 20 +- ...+ContactDevicesListViewModelProtocol.swift | 21 +- .../ListOfTrustOriginsView.swift | 64 + .../ListOfTrustOriginsViewController.swift} | 28 +- .../TrustOriginCellView.swift} | 76 +- .../SwiftUI/SingleContactIdentityView.swift | 323 +- ...ContactIdentityViewHostingController.swift | 178 +- .../AvailableSubscriptionPlansView.swift | 524 - ...iceToReactivateHostingViewController.swift | 169 + .../ChooseDeviceToReactivateView.swift | 597 + ...ditSingleOwnedIdentityNavigationView.swift | 1 + .../EditSingleOwnedIdentityView.swift | 2 + .../IdentityHeaderView.swift | 25 +- .../ListOfOwnedDevices/OwnedDeviceView.swift | 414 + .../OwnedDevicesListView.swift | 202 + ...dDevice+OwnedDeviceViewModelProtocol.swift | 34 + ...ty+OwnedDevicesListViewModelProtocol.swift | 34 + .../OwnedIdentityDetailedInfosView.swift | 96 +- ...eviceExpirationHostingViewController.swift | 55 + .../PermuteDeviceExpirationView.swift | 156 + ...ingleOwnedIdentityFlowViewController.swift | 611 +- .../SingleOwnedIdentityView.swift | 349 +- .../SubscriptionPlansView.swift | 734 + .../UserTriesToAccessPaidFeatureView.swift | 3 +- .../DebugLogStringViewerViewController.swift | 8 +- .../OlvidMenuProvider.swift | 21 +- ...WithEllipsisCircleRightBarButtonItem.swift | 27 - .../DiscussionsFlowViewController.swift | 14 +- .../BodyEditViewController.swift | 1 + .../Compose/NewComposeMessageView.swift | 89 +- .../Subviews/AutoGrowingTextView.swift | 29 +- .../Subviews/UITextInput+Shortcuts.swift | 80 +- .../DiscussionCacheManager.swift | 19 +- .../DiscussionGalleryViewController.swift | 19 +- .../ObvCollectionViewLayoutSectionInfos.swift | 4 +- ...tionViewLayoutSupplementaryViewInfos.swift | 0 ...vedMessageInfosHostingViewController.swift | 9 +- ...entMessageInfosHostingViewController.swift | 9 +- ...DateInfosOfSentMessageToManyContacts.swift | 10 +- ...ateInfosOfSentMessageToSingleContact.swift | 0 .../HorizontalTitleAndSubtitle.swift | 1 + .../MessageMetadatasSectionView.swift | 5 +- .../MessageRetentionInfoSectionView.swift | 7 +- .../ReceivedAttachementInfosView.swift | 8 +- .../ReceivedMessageStatusView.swift | 1 + .../SentAttachementInfosView.swift | 11 +- .../SwiftUIViews/SentMessageStatusView.swift | 5 + .../MessageReactionsView.swift | 122 +- .../NewSingleDiscussionViewController.swift | 305 +- ...cussionSettingsHostingViewController.swift | 99 +- .../DraftExpirationSettings.swift | 9 +- .../SingleDiscussionTitleView.swift | 6 +- ...ngleDiscussionViewControllerDelegate.swift | 0 .../SomeSingleDiscussionViewController.swift | 2 +- .../cells}/CellWithMessage.swift | 12 +- .../CommonCellSubviews/AttachmentsView.swift | 19 +- .../CommonCellSubviews/AudioPlayerView.swift | 30 +- .../MissedMessageBubbleView.swift | 2 + .../MultipleImagesView.swift | 18 + .../MultipleReactionsView.swift | 1 + .../ReplyToBubbleView.swift | 12 +- .../SentMessageStatusAndDateView.swift | 1 + .../CommonCellSubviews/SingleGifView.swift | 19 +- .../CommonCellSubviews/SingleImageView.swift | 29 +- .../cells/CommonCellSubviews/TextBubble.swift | 1 - .../Protocols/DiscussionCacheDelegate.swift | 6 +- .../cells/ReceivedMessageCell.swift | 101 +- .../cells/SentMessageCell.swift | 116 +- .../cells/SystemMessageCell.swift | 12 +- .../cells/utils/FyleProgressView.swift | 19 +- .../cells/utils/TappedStuffForCell.swift | 3 + .../cells/utils/UIImageViewForHardLink.swift | 12 +- .../RecentDiscussionsViewController.swift | 33 +- .../Cells/CollectionOfFylesView.swift | 439 - .../Cells/LinkViewPlaceHolderView.swift | 89 - .../Cells/MessageCollectionViewCell.swift | 910 - .../MessageCollectionViewCellDelegate.swift | 25 - .../MessageReceivedCollectionViewCell.swift | 245 - .../Cells/MessageSentCollectionViewCell.swift | 248 - .../MessageSystemCollectionViewCell.swift | 336 - .../ComposeMessageDataSource.swift | 42 - .../ComposeMessageDataSourceWithDraft.swift | 241 - .../ComposeMessage/ComposeMessageView.swift | 346 - .../ComposeMessage/ComposeMessageView.xib | 224 - ...geViewDocumentPickerAdapterWithDraft.swift | 425 - ...oseMessageViewDocumentPickerDelegate.swift | 28 - ...ssageViewSendMessageAdapterWithDraft.swift | 105 - ...omposeMessageViewSendMessageDelegate.swift | 24 - .../TextFieldBackgroundView.swift | 47 - .../ObvCollectionViewLayoutItemInfos.swift | 37 - .../Layout/ObvCollectionView.swift | 87 - .../Layout/ObvCollectionViewLayout.swift | 968 - .../ObvCollectionViewLayoutDelegate.swift | 25 - .../SingleDiscussionViewController.swift | 2034 -- .../DateCollectionReusableView.swift | 110 - .../NoChannelCollectionReusableView.swift | 86 - .../NewAllGroupsViewController.swift | 36 +- ...roupEditionFlowViewHostingController.swift | 16 +- .../GroupEditionFlowViewController.swift | 45 +- .../Groups/GroupsFlowViewController.swift | 1 + .../SingleGroupViewController.swift | 224 +- .../SingleGroup/SingleGroupViewController.xib | 28 +- .../SingleGroupV2ViewController.swift | 629 +- .../AllInvitationsHostingController.swift | 89 + .../AllInvitationsViewController.swift | 119 + .../AcceptGroupInviteCollectionViewCell.swift | 130 - .../AcceptGroupInviteCollectionViewCell.xib | 71 - .../Base.lproj/HelpCardCollectionViewCell.xib | 70 - .../Cells/ButtonsCardCollectionViewCell.swift | 100 - .../Cells/ButtonsCardCollectionViewCell.xib | 64 - .../Cells/HelpCardCollectionViewCell.swift | 69 - .../MultipleButtonsCollectionViewCell.swift | 144 - .../MultipleButtonsCollectionViewCell.xib | 63 - .../SasAcceptedCardCollectionViewCell.swift | 109 - .../SasAcceptedCardCollectionViewCell.xib | 70 - .../Cells/SasCardCollectionViewCell.swift | 107 - .../Cells/SasCardCollectionViewCell.xib | 64 - .../Cells/TitledCardCollectionViewCell.swift | 98 - .../Cells/TitledCardCollectionViewCell.xib | 64 - .../HelpCardCollectionViewCell.strings | Bin 976 -> 0 bytes .../HelpCardCollectionViewCell.strings | 6 - .../InvitationsCollectionViewController.swift | 1351 -- .../InvitationsCollectionViewController.xib | 44 - ...ionsCollectionViewControllerDelegate.swift | 30 - .../Protocols/CellContainingHeaderView.swift | 59 - .../CellContainingOneButtonView.swift | 50 - .../CellContainingOneColumnView.swift | 38 - .../Protocols/CellContainingSasView.swift | 62 - .../CellContainingTwoButtonsView.swift | 56 - .../CellContainingTwoColumnsView.swift | 47 - .../Protocols/InvitationCollectionCell.swift | 30 - .../Base.lproj/SasAcceptedView.xib | 77 - .../ViewsForCells/Base.lproj/SasView.xib | 103 - .../ViewsForCells/CellHeaderView.swift | 149 - .../ViewsForCells/CellHeaderView.xib | 86 - .../ViewsForCells/OneButtonView.swift | 69 - .../ViewsForCells/OneButtonView.xib | 52 - .../ViewsForCells/OneColumnView.swift | 76 - .../ViewsForCells/OneColumnView.xib | 57 - .../ViewsForCells/SasAcceptedView.swift | 91 - .../ViewsForCells/SasView.swift | 201 - .../ViewsForCells/TwoButtonsView.swift | 63 - .../ViewsForCells/TwoButtonsView.xib | 66 - .../ViewsForCells/TwoColumnsView.swift | 98 - .../ViewsForCells/TwoColumnsView.xib | 84 - .../en.lproj/SasAcceptedView.strings | Bin 802 -> 0 bytes .../ViewsForCells/en.lproj/SasView.strings | Bin 1274 -> 0 bytes .../fr.lproj/SasAcceptedView.strings | 12 - .../ViewsForCells/fr.lproj/SasView.strings | 18 - .../InvitationsFlowViewController.swift | 147 - .../NewInvitationsFlowViewController.swift | 123 + .../SwiftUI/AllInvitationsView.swift | 153 + .../SwiftUI/Cells/InvitationView.swift | 686 + ...vitation+InvitationViewModelProtocol.swift | 411 + ...tity+AllInvitationsViewModelProtocol.swift | 31 + .../Main/MainFlowViewController.swift | 731 +- .../Main/MetaFlowController.swift | 663 +- .../Main/ObvSubTabBarController.swift | 17 +- .../AboutSettingsTableViewController.swift | 77 +- .../ExternalLibrariesViewController.swift | 2 + .../Backup/BackupKeyAllTextFields.swift | 4 +- .../Backup/BackupKeyVerifierView.swift | 3 +- .../Backup/BackupTableViewController.swift | 29 +- .../Backup/ICloudBackupListView.swift | 47 +- ...AndGroupsSettingsTableViewController.swift | 74 +- ...AutoAcceptGroupInvitesViewController.swift | 44 +- .../AdvancedSettingsViewController.swift | 115 +- .../Debug/DiskUsageViewController.swift | 4 +- ...DisplayableLogsHostingViewController.swift | 25 +- .../SingleDisplayableLogView.swift | 2 + ...nternalStorageExplorerViewController.swift | 300 + ...DefaultSettingsHostingViewController.swift | 73 +- .../SwiftUI/NotificationSoundPicker.swift | 9 +- ...scussionsSettingsTableViewController.swift | 118 - ...LsMetadataChooserTableViewController.swift | 23 +- ...utomaticDownloadsTableViewController.swift | 2 + ...DownloadsSettingsTableViewController.swift | 2 + ...MessageViewActionOrderViewController.swift | 3 +- ...sSortOrderChooserTableViewController.swift | 2 + ...ColorStyleChooserTableViewController.swift | 3 + ...InterfaceSettingsTableViewController.swift | 82 +- .../CreatePasscodeViewController.swift | 33 +- ...acePeriodsChooserTableViewController.swift | 2 + ...fileClosePolicyChooserViewController.swift | 2 + ...ivacyStyleChooserTableViewController.swift | 2 + .../Privacy/PrivacyTableViewController.swift | 179 +- .../VerifyPasscodeViewController.swift | 4 +- ...ageBitrateChooserTableViewController.swift | 2 + .../VoIPSettingsTableViewController.swift | 222 +- .../Settings/ObvMessengerSettings+Utils.swift | 1 + .../Settings/SettingsFlowViewController.swift | 17 +- .../AppBackupManager/AppBackupManager.swift | 12 +- .../Managers/AppMainManager.swift | 55 +- .../Managers/AppManagersHolder.swift | 35 +- .../HardLinksToFylesManager.swift | 81 +- .../IntentManager/IntentManager.swift | 2 +- .../IntentManager/IntentManagerUtils.swift | 3 + .../KeycloakManager/KeycloakManager.swift | 285 +- .../LocalAuthenticationManager.swift | 35 +- .../ProfilePictureManager.swift | 6 +- .../OlvidSnackBarCategory.swift | 17 + .../SnackBarManager/SnackBarManager.swift | 38 +- .../ProcessPurchasedOperation.swift | 76 - .../SubscriptionManager.swift | 414 +- .../ThumbnailManager/ThumbnailManager.swift | 23 +- .../NotificationSoundPlayer.swift | 2 +- .../ObvUserNotificationIdentifier.swift | 14 +- .../OptionalNotificationSound.swift | 2 +- .../UserNotificationAction.swift | 16 +- .../UserNotificationCenterDelegate.swift | 48 +- .../UserNotificationCreator.swift | 85 +- .../UserNotificationsManager.swift | 18 +- .../UserNotificationsScheduler.swift | 1 + .../WebSocketManager/WebSocketManager.swift | 6 +- .../BadConfigurationViewController.swift | 4 +- .../InitializationFailureViewController.swift | 2 + ...nedIdentityIsNotActiveViewController.swift | 82 - ...OwnedIdentityIsNotActiveViewController.xib | 86 - .../HardLinksToFylesNotifications.yml | 12 - .../MessengerInternalNotification.swift | 32 +- .../NewSingleDiscussionNotification.swift | 30 + .../NewSingleDiscussionNotification.yml | 65 - .../ObvMessengerInternalNotification.swift | 519 +- .../ObvMessengerInternalNotification.yml | 464 - .../SubscriptionNotification.swift | 200 - .../SubscriptionNotification.yml | 19 - .../ObvMessenger/ObvMessenger.entitlements | 8 +- .../AddProfile/AddProfileView.swift | 61 + .../AddProfile/AddProfileViewController.swift | 110 + ...torisationRequesterHostingController.swift | 134 - ...onRequesterHostingControllerDelegate.swift | 28 - .../ChooseBackupFileView.swift | 443 + .../ChooseBackupFileViewController.swift | 201 + .../01ChooseBackupFile/NewBackupInfo.swift | 106 + .../02EnterBackupKey/EnterBackupKeyView.swift | 508 + .../EnterBackupKeyViewController.swift | 85 + .../WaitingForBackupRestoreView.swift | 326 + ...aitingForBackupRestoreViewController.swift | 120 + .../BackupRestore/BackupRestoreView.swift | 674 - ...RestoringWaitingScreenViewController.swift | 263 - .../BackupRestore/CloudFailureReason.swift | 28 - ...eenBackupRestoreAndAddThisDeviceView.swift | 92 + ...estoreAndAddThisDeviceViewController.swift | 102 + .../CommonViews/NewOnboardingHeaderView.swift | 61 + .../CommonViews/SingleDigitTextField.swift | 104 + .../CurrentDeviceNameChooserView.swift | 152 + ...rrentDeviceNameChooserViewController.swift | 110 + .../DisplayNameChooserView.swift | 112 - ...oviderManualConfigurationHostingView.swift | 207 - ...viderValidationHostingViewController.swift | 404 - .../IdentityProviderValidationView.swift | 225 + ...tityProviderValidationViewController.swift | 133 + .../NewKeycloakConfigurationDetailsView.swift | 97 + .../ManagedDetailsViewerView.swift | 312 + .../ManagedDetailsViewerViewController.swift | 91 + .../NewAutorisationRequesterView.swift | 166 + ...wAutorisationRequesterViewController.swift | 87 + ...ntityProviderManualConfigurationView.swift | 204 + ...derManualConfigurationViewController.swift | 65 + .../NewOnboardingFlowViewController.swift | 1271 + .../NewOnboardingInternalState.swift | 186 + .../NewOwnedIdentityGeneratedView.swift | 101 + ...OwnedIdentityGeneratedViewController.swift | 81 + .../NewUnmanagedDetailsChooserView.swift | 257 + ...nmanagedDetailsChooserViewController.swift | 313 + .../NewWelcomeScreenView.swift | 130 + .../NewWelcomeScreenViewController.swift | 111 + .../Contents.json | 6 + .../badge.imageset/Contents.json | 15 + .../badge.imageset/badge.pdf | Bin 0 -> 6551 bytes .../OnboardingFlowViewController.swift | 839 - ...OnboardingFlowViewControllerDelegate.swift | 26 - .../Onboarding/OnboardingInternalState.swift | 88 - .../OwnedIdentityGeneratedView.swift | 106 - .../OwnedIdentityTransferFailureView.swift | 163 + ...dentityTransferFailureViewController.swift | 123 + ...sfertProtocolSourceCodeDisplayerView.swift | 183 + ...colSourceCodeDisplayerViewController.swift | 158 + .../InputSASOnSourceView.swift | 157 + .../InputSASOnSourceViewController.swift | 105 + .../ChooseDeviceToKeepActiveView.swift | 476 + ...ooseDeviceToKeepActiveViewController.swift | 187 + .../OwnedIdentityTransferSummaryView.swift | 372 + ...dentityTransferSummaryViewController.swift | 108 + .../TransfertProtocolTargetCodeFormView.swift | 379 + ...ProtocolTargetCodeFormViewController.swift | 101 + .../TransferProtocolTargetShowSasView.swift | 156 + ...rProtocolTargetShowSasViewController.swift | 120 + .../SuccessfulTransferConfirmationView.swift | 244 + ...ulTransferConfirmationViewController.swift | 87 + .../TransferProtocolViewsNotifications.swift | 97 + .../WelcomeScreenHostingController.swift | 254 - .../LatestCurrentOwnedIdentityStorage.swift | 2 +- .../OwnedIdentityChooserViewController.swift | 27 +- .../Preview Assets.xcassets/Contents.json | 6 + .../Photos/Contents.json | 6 + .../Photos/DevPhoto01.imageset/Contents.json | 12 + .../Photos/DevPhoto01.imageset/DevPhoto01.jpg | Bin 0 -> 2682233 bytes .../Photos/DevPhoto02.imageset/Contents.json | 12 + .../Photos/DevPhoto02.imageset/DevPhoto02.jpg | Bin 0 -> 1213447 bytes .../ObvMessenger/RootViewController.swift | 866 + .../ObvMessenger/SceneDelegate.swift | 637 +- .../ObvMessenger/Singletons/AppTheme.swift | 1 + .../Singletons/NetworkStatus.swift | 3 +- .../Singletons/ObvDisplayableLogs.swift | 24 +- .../ObvPushNotificationManager.swift | 105 +- .../ObvUserActivitySingleton.swift | 2 +- .../ContactsTableViewController.swift | 1 + .../FloatingActionButton.swift | 7 +- ...ContactChooserViewControllerDelegate.swift | 2 +- ...ultipleContactsHostingViewController.swift | 106 +- ...ontactsHostingViewControllerDelegate.swift | 2 +- .../Subviews/ContactCellView.swift | 194 + .../Subviews/SpinnerViewForContactCell.swift | 51 + ...tity+ContactCellViewNewModelProtocol.swift | 38 + ...dentity+ContactTextViewModelProtocol.swift | 26 + ...ty+InitialCircleViewNewModelProtocol.swift | 28 + ...innerViewForContactCellModelProtocol.swift | 30 + .../DiscussionsTableViewController.swift | 9 +- .../NewDiscussionsViewControllerCell.swift | 2 + ...scussionsViewControllerCellViewModel.swift | 5 +- .../NewDiscussionsViewController.swift | 109 +- ...ndingGroupMembersTableViewController.swift | 1 + .../ObvSubtitleTableViewCell.swift | 4 +- .../ObvTitleAndSwitchTableViewCell.swift | 10 +- .../ObvTitleTableViewCell.swift | 2 + .../Types/ObvFlowController.swift | 161 +- .../ObvMessenger/Types/OlvidURL.swift | 57 +- .../ObvMessenger/Types/OlvidUserId.swift | 33 +- ...llScaleMultipleActivityIndicatorView.swift | 2 + ...ircleStrokeSpinActivityIndicatorView.swift | 2 + .../DotsActivityIndicatorView.swift | 2 + .../UIElements/Buttons/ObvButton.swift | 3 +- .../Buttons/ObvButtonBorderless.swift | 2 + .../Buttons/ObvFloatingButton.swift | 4 +- .../UIElements/Buttons/ObvRoundedButton.swift | 4 +- .../Buttons/ObvRoundedButtonBorderless.swift | 4 +- .../EditNicknameAndCustomPictureView.swift | 302 + ...cknameAndCustomPictureViewController.swift | 252 + .../UIElements/EmojiPickerView.swift | 15 + .../UIElements/FileViewer/FilesViewer.swift | 1 + .../SwiftUI/ObvActivityIndicatorView.swift | 43 - .../ObvMessenger/UIElements/ImageEditor.swift | 397 - .../UIElements/InitialCircleView.swift | 193 +- .../ObvAutoGrowingTextView.swift | 3 +- .../ObvMessenger/UIElements/ObvCardView.swift | 1 + .../ObvMessenger/UIElements/ObvChevron.swift | 5 +- .../UIElements/ObvChipLabel.swift | 2 + .../UIElements/ObvSimpleListItemView.swift | 15 +- .../UIElements/ObvTextField.swift | 2 + .../UIElements/OlvidAlertViewController.swift | 5 +- .../UIElements/OlvidSnackBarView.swift | 15 +- .../UIElements/PasscodeUtils.swift | 32 +- .../PersonalNoteEditorHostingController.swift | 42 + .../PersonalNoteEditorView.swift | 128 + .../PersonalNoteViewer/PersonalNoteView.swift | 71 + ...roupV2+PersonalNoteViewModelProtocol.swift | 16 +- ...entity+PersonalNoteViewModelProtocol.swift | 30 + .../UIElements/ReorderableForEach.swift | 1 + .../ObvDocumentPickerViewController.swift | 2 + .../PrivacyViewController.swift | 2 + ...wOwnedIdentityButtonUIViewController.swift | 14 +- .../UIElements/SubscriptionStatusView.swift | 228 +- .../ObvMessenger/Utils/CloudKitUtils.swift | 21 +- .../Utils/LPMetadataProviderUtils.swift | 1 + .../LoadItemProviderOperation.swift | 172 +- .../Utils/NSItemProvider+Utils.swift | 64 + .../ObvMessenger/Utils/ObvDeepLink.swift | 9 + .../ObvMessenger/Utils/SoundsPlayer.swift | 34 +- .../ObvMessenger/Utils/ThumbnailWorker.swift | 5 +- .../ObvMessenger/Utils/TimeUtils.swift | 23 +- .../ObvMessenger/Utils/UIView+AppTheme.swift | 5 +- .../UIViewController+ContentController.swift | 3 +- .../ObvMessenger/Utils/URL+MoveToTrash.swift | 3 +- .../ObvMessenger/VoIP/Call/Call.swift | 1558 -- .../ObvMessenger/VoIP/Call/CallDelegate.swift | 50 - .../ObvMessenger/VoIP/Call/GenericCall.swift | 118 - ...allController+CallControllerProtocol.swift | 24 + .../CallController/CallControllerHolder.swift | 38 + .../CallControllerProtocol.swift | 30 + .../CallController/NCXCallController.swift | 76 + .../ObvMessenger/VoIP/CallKitSupport.swift | 424 - .../ObvMessenger/VoIP/CallManager.swift | 1347 -- .../CallParticipant/CallParticipant.swift | 193 - .../CallParticipantDelegate.swift | 55 - .../CallParticipant/CallParticipantImpl.swift | 598 - .../CallParticipantUpdateKind.swift | 30 - .../CXProvider+CallProviderProtocol.swift | 24 + .../CallProvider/CallProviderHolder.swift | 245 + .../CallProvider/CallProviderProtocol.swift | 34 + .../VoIP/CallProvider/NCXProvider.swift | 113 + .../VoIP/CallProviderDelegate.swift | 951 + .../ObvMessenger/VoIP/CallSupport.swift | 233 - ...udioSessionPortDescription+isSpeaker.swift | 30 + .../VoIP/{ => Helpers}/CallReport.swift | 42 +- .../VoIP/Helpers/CallSounds.swift | 64 - .../VoIP/Helpers/DataChannelWorker.swift | 115 - .../VoIP/Helpers/OlvidCallAudioPlayer.swift | 160 + ...ChannelState+CustomStringConvertible.swift | 38 + .../Sounds/connect.mp3 | Bin .../Sounds/disconnect.mp3 | Bin .../VoIP/Helpers/Sounds/reconnecting.mp3 | Bin 0 -> 7968 bytes .../Sounds/ringing.mp3 | Bin .../WebRTCDataChannelMessageJSON.swift | 19 +- .../WebRTCInnerMessageJSON.swift | 31 +- .../ObvMessenger/VoIP/NonCallKitSupport.swift | 445 - .../VoIP/ObvAudioSessionUtils.swift | 193 - .../ObvPeerConnection.swift | 148 +- .../VoIP/OlvidCall/OlvidCall.swift | 1674 ++ .../VoIP/OlvidCall/OlvidCallAudioOption.swift | 129 + .../VoIP/OlvidCall/OlvidCallParticipant.swift | 853 + .../OlvidCall/OlvidCallParticipantInfo.swift | 27 + ...dCallParticipantPeerConnectionHolder.swift | 744 + .../Operations/AddIceCandidateOperation.swift | 138 + .../ClosePeerConnectionOperation.swift | 68 + .../ConfigureAudioSessionOperation.swift | 88 + ...calDescriptionIfAppropriateOperation.swift | 584 + .../CreatePeerConnectionOperation.swift | 122 + .../HandleReceivedRestartSdpOperation.swift | 143 + .../RemoveIceCandidateOperation.swift | 55 + .../RestartIceIfRequiredOperation.swift | 96 + ...ndDataThroughPeerConnectionOperation.swift | 71 + .../SetRemoteDescriptionOperation.swift | 107 + .../ObvMessenger/VoIP/OlvidCallManager.swift | 632 + .../WebrtcPeerConnectionHolder.swift | 928 - .../WebrtcPeerConnectionHolderDelegate.swift | 37 - .../PushKitNotificationSynchronizer.swift | 113 + ...ngPolicy+RTCContinualGatheringPolicy.swift | 33 + .../OlvidCallGatheringPolicy.swift} | 19 +- .../SupportingTypes/TurnCredentials.swift | 56 + .../VoIP/UI/OlvidCallParticipantView.swift | 162 + .../ObvMessenger/VoIP/UI/OlvidCallView.swift | 804 + .../VoIP/UI/OlvidCallViewController.swift | 120 + ...OlvidCall+OlvidCallViewModelProtocol.swift | 51 + ...Manager+OlvidCallViewActionsProtocol.swift | 27 + ...lvidCallParticipantViewModelProtocol.swift | 69 + .../CallAnswerAndRejectButtonsView.swift | 109 - .../SwiftUI/CallButtonsViews.swift | 254 - .../SwiftUI/CallView.swift | 757 - .../SwiftUI/MutedBadgeView.swift | 49 - .../SwiftUI/RoundedButtonView.swift | 202 - .../VoIPNotification/VoIPNotification.swift | 174 +- .../VoIPNotification/VoIPNotification.yml | 47 - .../ObvMessenger/en.lproj/Localizable.strings | 2764 --- .../en.lproj/Localizable.stringsdict | 340 - .../ObvMessenger/fr.lproj/InfoPlist.strings | 18 - .../ObvMessenger/fr.lproj/Localizable.strings | 2796 --- .../fr.lproj/Localizable.stringsdict | 340 - .../ObvMessengerIntentsExtension.entitlements | 8 + .../NotificationService.swift | 29 +- ...rNotificationServiceExtension.entitlements | 4 +- .../DiscussionsView.swift | 70 +- ...omLoadedFileRepresentationsOperation.swift | 139 +- ...PersistedMessageSentFromFylesStrings.swift | 58 +- .../Operations/SaveContextOperation.swift | 26 +- .../ShareExtensionErrorViewController.swift | 5 +- .../ShareView.swift | 36 +- .../ShareViewController.swift | 33 +- .../ShareViewModel.swift | 21 +- iOSClient/ObvMessenger/Project.swift | 215 +- .../ObvMessenger/TestConfiguration.storekit | 54 - tuist/Config.swift | 7 +- tuist/Dependencies.swift | 2 +- .../Dependencies/Lockfiles/Cartfile.resolved | 1 - tuist/Dependencies/Lockfiles/Package.resolved | 23 - tuist/GMPSPM/GMP.xcframework/Info.plist | 17 + .../GMP.xcframework/ios-arm64/Headers/gmp.h | 2 +- .../GMPSPM/GMP.xcframework/ios-arm64/libgmp.a | 4 +- .../Headers/gmp.h | 2336 ++ .../Headers/module.modulemap | 4 + .../ios-arm64_x86_64-maccatalyst/libgmp.a | 3 + .../ios-arm64_x86_64-simulator/Headers/gmp.h | 2 +- .../ios-arm64_x86_64-simulator/libgmp.a | 4 +- tuist/GMPSPM/Package.swift | 3 +- .../ProjectDescriptionHelpers/Constants.swift | 17 +- .../Project+Templates.swift | 23 +- .../Settings+Templates.swift | 103 +- .../Target+Templates.swift | 15 +- .../TargetDependency+Carthage+Templates.swift | 32 +- .../TargetDependency+InternalModules.swift | 27 +- .../TargetDependency+SPM+Templates.swift | 24 +- .../TargetDependency+XCFrameworks.swift | 2 +- .../WebRTC.xcframework/Info.plist | 16 +- .../WebRTC.xcframework/LICENSE.md | 4 +- .../Headers/RTCAudioSession.h | 8 +- .../Headers/RTCAudioSessionConfiguration.h | 2 - .../Headers/RTCCallbackLogger.h | 2 +- .../WebRTC.framework/Headers/RTCFieldTrials.h | 10 +- .../WebRTC.framework/Headers/RTCLogging.h | 21 +- .../WebRTC.framework/Headers/RTCMacros.h | 5 +- .../Headers/RTCPeerConnection.h | 5 +- .../WebRTC.framework/Headers/RTCRtpSender.h | 4 +- .../Headers/RTCVideoDecoder.h | 1 + .../Headers/RTCVideoEncoder.h | 2 +- .../WebRTC.framework/Headers/RTCVideoFrame.h | 2 +- .../Headers/UIDevice+RTCDevice.h | 96 +- .../ios-arm64/WebRTC.framework/Info.plist | Bin 758 -> 761 bytes .../ios-arm64/WebRTC.framework/WebRTC | 4 +- .../Versions/A/Headers/RTCAudioSession.h | 8 +- .../A/Headers/RTCAudioSessionConfiguration.h | 2 - .../Versions/A/Headers/RTCCallbackLogger.h | 2 +- .../Versions/A/Headers/RTCFieldTrials.h | 10 +- .../Versions/A/Headers/RTCLogging.h | 21 +- .../Versions/A/Headers/RTCMacros.h | 5 +- .../Versions/A/Headers/RTCPeerConnection.h | 5 +- .../Versions/A/Headers/RTCRtpSender.h | 4 +- .../Versions/A/Headers/RTCVideoDecoder.h | 1 + .../Versions/A/Headers/RTCVideoEncoder.h | 2 +- .../Versions/A/Headers/RTCVideoFrame.h | 2 +- .../Versions/A/Headers/UIDevice+RTCDevice.h | 96 +- .../Versions/A/Resources/Info.plist | Bin 752 -> 748 bytes .../WebRTC.framework/Versions/A/WebRTC | 4 +- .../Headers/RTCAudioSession.h | 8 +- .../Headers/RTCAudioSessionConfiguration.h | 2 - .../Headers/RTCCallbackLogger.h | 2 +- .../WebRTC.framework/Headers/RTCFieldTrials.h | 10 +- .../WebRTC.framework/Headers/RTCLogging.h | 21 +- .../WebRTC.framework/Headers/RTCMacros.h | 5 +- .../Headers/RTCPeerConnection.h | 5 +- .../WebRTC.framework/Headers/RTCRtpSender.h | 4 +- .../Headers/RTCVideoDecoder.h | 1 + .../Headers/RTCVideoEncoder.h | 2 +- .../WebRTC.framework/Headers/RTCVideoFrame.h | 2 +- .../Headers/UIDevice+RTCDevice.h | 96 +- .../WebRTC.framework/Info.plist | Bin 785 -> 788 bytes .../WebRTC.framework/WebRTC | 4 +- 1414 files changed, 125654 insertions(+), 63197 deletions(-) create mode 100644 .package.resolved delete mode 100644 Engine/ObvCrypto/ObvCrypto/ProofOfWork/ProofOfWorkColumn.swift delete mode 100644 Engine/ObvCrypto/ObvCrypto/ProofOfWork/ProofOfWorkEngine.swift delete mode 100644 Engine/ObvCrypto/ObvCrypto/ProofOfWork/ProofOfWorkMatrix.swift create mode 100644 Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationEngineDatabase_v48_to_v49.md create mode 100644 Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationEngineDatabase_v48_to_v49.xcmappingmodel/xcmapping.xml create mode 100644 Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationPolicies/ContactIdentityToContactIdentityMigrationPolicyV48ToV49.swift create mode 100644 Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationPolicies/KeycloakServerToKeycloakServerMigrationPolicyV48ToV49.swift create mode 100644 Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v49_to_v50/MigrationEngineDatabase_v49_to_v50.md create mode 100644 Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v49_to_v50/MigrationEngineDatabase_v49_to_v50.xcmappingmodel/xcmapping.xml create mode 100644 Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v49_to_v50/MigrationPolicies/PendingServerQueryToPendingServerQueryMigrationPolicyV49ToV50.swift create mode 100644 Engine/ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/ObvEngine-v49.xcdatamodel/contents create mode 100644 Engine/ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/ObvEngine-v50.xcdatamodel/contents rename Engine/ObvEngine/ObvEngine/{ => Coordinator}/EngineCoordinator.swift (54%) create mode 100644 Engine/ObvEngine/ObvEngine/Coordinator/Operations/ActivateOwnedIdentityOperation.swift create mode 100644 Engine/ObvEngine/ObvEngine/Coordinator/Operations/DeactivateOwnedIdentityAndMore.swift create mode 100644 Engine/ObvEngine/ObvEngine/Coordinator/Operations/DeleteContactDevicesWithNoChannelAndNoChannelCreationThenPerformAppropriateDeviceDiscoveriesOperation.swift create mode 100644 Engine/ObvEngine/ObvEngine/Coordinator/Operations/SendTargetedPingMessageForKeycloakGroupV2ProtocolWhereContactIsPendingMemberOperation.swift delete mode 100644 Engine/ObvEngine/ObvEngine/ObvEngineNotificationNew.yml create mode 100644 Engine/ObvEngine/ObvEngine/ProtocolWaiter.swift delete mode 100644 Engine/ObvEngine/ObvEngine/Types/ObvCurrentDevice.swift delete mode 100644 Engine/ObvEngine/ObvEngine/Types/ObvMessage.swift create mode 100644 Engine/ObvEngine/ObvEngine/Types/ObvOwnedDevice.swift create mode 100644 Engine/ObvIdentityManager/ObvIdentityManager/OtherTypes/ObvIdentityManagerSyncSnapshotNode.swift create mode 100644 Engine/ObvIdentityManager/ObvIdentityManager/OtherTypes/SnapshotNodeManagedObjectAssociations.swift create mode 100644 Engine/ObvMetaManager/ObvMetaManager/CommonTypes/DeviceNameUtils.swift create mode 100644 Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/OwnedIdentityTransferRelayMessageResult.swift create mode 100644 Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/OwnedIdentityTransferWaitResult.swift create mode 100644 Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/SourceGetSessionNumberResult.swift create mode 100644 Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/SourceWaitForTargetConnectionResult.swift create mode 100644 Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/TargetSendEphemeralIdentityResult.swift delete mode 100644 Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvBackupDelegate/ObvBackupNotification.yml delete mode 100644 Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelNotification.yml rename Engine/{ObvIdentityManager/ObvIdentityManager => ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity}/ObvIdentityManagerError.swift (68%) delete mode 100644 Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityNotificationNew.yml create mode 100644 Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/OwnedDeviceDiscoveryResult.swift create mode 100644 Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchError.swift delete mode 100644 Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchNotificationNew.yml delete mode 100644 Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkPostNotification.yml create mode 100644 Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvOwnedDeviceManagementRequest.swift delete mode 100644 Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolNotification.yml create mode 100644 Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvSyncSnapshotDelegate/ObvSyncSnapshotDelegate.swift create mode 100644 Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvAttachment+Initializer.swift create mode 100644 Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvMessage+Initializer.swift create mode 100644 Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvOwnedAttachment+Initializer.swift create mode 100644 Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvOwnedMessage+Initializer.swift create mode 100644 Engine/ObvMetaManager/ObvMetaManager/Utils/URLSessionTask+SerializedInfosInTaskDescription.swift delete mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetAndSolveChallengeCoordinator.swift delete mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTokenCoordinator.swift delete mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTurnCredentials/GetTurnCredentialsOperation.swift delete mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTurnCredentials/GetTurnCredentialsURLSessionDelegate.swift delete mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/CreateOrUpdateIfRequiredServerPushNotificationOperation.swift delete mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/MarkAllServerPushNotificationsAsToRegisterOperation.swift delete mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/ProcessCompletionOfURLSessionTaskForRegisteringPushNotificationOperation.swift delete mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/RegisterPushNotificationToRegisterOperation.swift delete mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/ProcessRegisteredPushNotificationsCoordinator.swift delete mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/QueryApiKeyStatusCoordinator.swift create mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerPushNotificationsCoordinator/ServerPushNotificationsCoordinator.swift create mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerQueryWebSocketCoordinator.swift create mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/Operations/DeleteServerSessionOperation.swift create mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/Operations/GetLocalServerSessionTokenAndAPIKeyElementsOperation.swift create mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/Operations/ResetServerSessionCorrespondingToInvalidTokenOperation.swift create mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/Operations/SaveServerSessionTokenAndAPIKeyElementsOperation.swift create mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/ServerSessionCoordinator.swift delete mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/ServerPushNotification.swift delete mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ProcessRegisteredPushNotificationsDelegate.swift rename Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/{GetTokenDelegate.swift => ServerPushNotificationsDelegate.swift} (82%) create mode 100644 Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerQueryWebSocketDelegate.swift rename Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/{GetAndSolveChallengeDelegate.swift => ServerSessionDelegate.swift} (65%) create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ChannelCreationWithOwnedDeviceProtocolInstance.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteOwnedIdentityTransferProtocolInstancesOperation.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteReceivedMessagesConcerningAnOwnedIdentityTransferProtocolOperation.swift rename Engine/ObvProtocolManager/ObvProtocolManager/Protocols/{ => ChannelCreation}/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocol.swift (74%) rename Engine/ObvProtocolManager/ObvProtocolManager/Protocols/{ => ChannelCreation}/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolMessages.swift (90%) rename Engine/ObvProtocolManager/ObvProtocolManager/Protocols/{ => ChannelCreation}/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolStates.swift (84%) rename Engine/ObvProtocolManager/ObvProtocolManager/Protocols/{ => ChannelCreation}/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolSteps.swift (74%) create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocol.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocolMessages.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocolStates.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocolSteps.swift delete mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryForRemoteIdentityProtocol.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocol.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocolMessages.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocolStates.swift rename Engine/ObvProtocolManager/ObvProtocolManager/Protocols/{DeviceDiscoveryForContactIdentityProtocol.swift => DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocolSteps.swift} (56%) create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocol.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocolMessages.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocolStates.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocolSteps.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocol.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocolMessages.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocolStates.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocolSteps.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocol.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocolMessages.swift rename iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/CallHelper.swift => Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocolStates.swift (50%) create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocolSteps.swift rename Engine/ObvProtocolManager/ObvProtocolManager/Protocols/{ => KeycloakProtocols}/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocol.swift (83%) rename Engine/ObvProtocolManager/ObvProtocolManager/Protocols/{ => KeycloakProtocols}/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolMessages.swift (90%) rename Engine/ObvProtocolManager/ObvProtocolManager/Protocols/{ => KeycloakProtocols}/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolStates.swift (87%) rename Engine/ObvProtocolManager/ObvProtocolManager/Protocols/{ => KeycloakProtocols}/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolSteps.swift (90%) create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocol.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocolMessages.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocolStates.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocolSteps.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocol.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolMessages.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolNotifications.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolStates.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolSteps.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocol.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocolMessages.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocolStates.swift create mode 100644 Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocolSteps.swift rename Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/{VerifyReceiptMethod.swift => VerifyReceiptServerMethod.swift} (63%) create mode 100644 Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvRegisterAPIKeyServerMethod.swift delete mode 100644 Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerGetPoWChallengeMethod.swift create mode 100644 Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerOwnedDeviceDiscoveryMethod.swift create mode 100644 Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/OwnedDeviceManagementServerMethod.swift create mode 100644 Engine/ObvSyncSnapshotManager/ObvSyncSnapshotManager/ObvSyncSnapshotManagerImplementation.swift create mode 100644 Engine/ObvTypes/ObvTypes/GroupV1Identifier.swift rename Modules/OlvidUI/ObvUI/ObvUI/fr.lproj/Localizable.strings => Engine/ObvTypes/ObvTypes/GroupV2Identifier.swift (81%) create mode 100644 Engine/ObvTypes/ObvTypes/ObvAppStoreReceipt.swift rename Engine/{ObvMetaManager/ObvMetaManager/CommonTypes/AttachmentIdentifier.swift => ObvTypes/ObvTypes/ObvAttachmentIdentifier.swift} (51%) create mode 100644 Engine/ObvTypes/ObvTypes/ObvContactIdentifier.swift rename Engine/{ObvEngine/ObvEngine/Types => ObvTypes/ObvTypes}/ObvDialog.swift (83%) rename Engine/{ObvEngine/ObvEngine/Types/EncryptedPushNotification.swift => ObvTypes/ObvTypes/ObvEncryptedPushNotification.swift} (89%) rename Engine/{ObvEngine/ObvEngine/Types/Identities => ObvTypes/ObvTypes}/ObvGenericIdentity.swift (89%) rename Engine/{ObvEngine/ObvEngine/Types/Identities => ObvTypes/ObvTypes}/ObvIdentity.swift (96%) rename Engine/{ObvMetaManager/ObvMetaManager/CommonTypes/MessageIdentifier.swift => ObvTypes/ObvTypes/ObvMessageIdentifier.swift} (52%) create mode 100644 Engine/ObvTypes/ObvTypes/ObvOwnedDeviceDiscoveryResult.swift rename Modules/OlvidUI/ObvUI/ObvUI/en.lproj/Localizable.strings => Engine/ObvTypes/ObvTypes/ObvRegisterApiKeyResult.swift (83%) create mode 100644 Engine/ObvTypes/ObvTypes/ObvSyncAtom.swift rename Engine/{ObvEngine/ObvEngine/Types => ObvTypes/ObvTypes}/ObvTurnCredentials.swift (100%) rename Engine/{ObvEngine/ObvEngine/Types/Identities => ObvTypes/ObvTypes}/ObvURLIdentity.swift (96%) rename Engine/{ObvEngine/ObvEngine/Types => ObvTypes/ObvTypes/ReceivedMessagesAndAttachments}/ObvAttachment.swift (52%) create mode 100644 Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvMessage.swift create mode 100644 Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvOwnedAttachment.swift create mode 100644 Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvOwnedMessage.swift create mode 100644 Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSnapshotable.swift rename Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Protocols/Sound.swift => Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSyncDiff.swift (80%) create mode 100644 Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSyncSnapshot.swift create mode 100644 Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSyncSnapshotNode.swift create mode 100644 Engine/ObvTypes/ObvTypes/TypesForOwnedIdentityTransfer/ObvOwnedIdentityTransferSas.swift create mode 100644 Engine/ObvTypes/ObvTypes/TypesForOwnedIdentityTransfer/ObvOwnedIdentityTransferSessionNumber.swift delete mode 100644 Modules/Discussions/AttachmentsDropView/AttachmentsDropView.swift delete mode 100644 Modules/Discussions/AttachmentsDropView/_AttachmentsTargetDropZoneView.swift delete mode 100644 Modules/Discussions/AttachmentsDropView/_DroppedItemProvider.swift delete mode 100644 Modules/Discussions/AttachmentsDropView/en.lproj/Localizable.strings delete mode 100644 Modules/Discussions/AttachmentsDropView/fr.lproj/Localizable.strings rename Modules/{OlvidUI/ObvUICoreData/ObvUICoreData/Types => ObvDesignSystem}/IdentityColorStyle.swift (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/Elements => ObvDesignSystem/ObvDesignSystem}/AppTheme/AppTheme.swift (91%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/CallBarColor.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondBlackTextDisabled.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondBlackTextHighEmphasis.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondBlackTextMediumEmphasis.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondGreen.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondPrimary300.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondPrimary400.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondPrimary700.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondPrimary800.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondPrimary900.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondSecondary600.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondSecondary700.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondSecondary800.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondSecondary900.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondSurfaceDark.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondSurfaceLight.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondSurfaceMedium.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondTextOnPrimaryDisabled.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondTextOnPrimaryHighEmphasis.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondTextOnPrimaryMediumEmphasis.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondTextOnSecondaryDisabled.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondTextOnSecondaryHighEmphasis.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondTextOnSecondaryMediumEmphasis.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondWhiteTextDisabled.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondWhiteTextHighEmphasis.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/EdmondWhiteTextMediumEmphasis.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/OldSentCellBackground.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/OlvidDark.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/OlvidLight.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/OlvidPurple.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/OlvidRed.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Colors/QRCodeScannerTransparentBackground.colorset/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets => ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets}/Contents.json (100%) rename Modules/{OlvidUI/ObvUI/ObvUI/Elements => ObvDesignSystem/ObvDesignSystem}/AppTheme/AppThemeColorScheme.swift (99%) rename Modules/{OlvidUI/ObvUI/ObvUI/Elements => ObvDesignSystem/ObvDesignSystem}/AppTheme/AppThemeIcons.swift (98%) rename Modules/{OlvidUI/ObvUI/ObvUI/Elements => ObvDesignSystem/ObvDesignSystem}/AppTheme/AppThemeImages.swift (97%) create mode 100644 Modules/ObvSettings/Localizable.xcstrings create mode 100644 Modules/ObvSettings/LocalizableClassForObvSettingsBundle.swift rename Modules/{OlvidUI/ObvUICoreData/ObvUICoreData/Settings => ObvSettings}/ObvMessengerSettings.swift (84%) rename Modules/{OlvidUI/ObvUICoreData/ObvUICoreData/Settings => ObvSettings}/ObvMessengerSettingsNotifications.swift (91%) rename Modules/{OlvidUI/ObvUICoreData/ObvUICoreData => ObvSettings}/ObvUICoreDataConstants.swift (87%) rename Modules/{OlvidUI/ObvUICoreData/ObvUICoreData/Settings => ObvSettings}/Types/AuthenticationMethod.swift (92%) rename iOSClient/ObvMessenger/ObvMessenger/VoIP/VoIPNotification/CallUpdateKind.swift => Modules/ObvSettings/Types/ContactsSortOrder.swift (82%) rename Modules/{OlvidUI/ObvUICoreData/ObvUICoreData/Settings => ObvSettings}/Types/DurationOption.swift (100%) rename Modules/{OlvidUI/ObvUICoreData/ObvUICoreData/Settings => ObvSettings}/Types/LocalAuthenticationPolicy.swift (97%) rename Modules/{OlvidUI/ObvUICoreData/ObvUICoreData/Settings => ObvSettings}/Types/MentionNotificationMode.swift (100%) rename Modules/{OlvidUI/ObvUICoreData/ObvUICoreData/Settings => ObvSettings}/Types/NewComposeMessageViewAction.swift (100%) rename Modules/{OlvidUI/ObvUICoreData/ObvUICoreData/Enums => ObvSettings/Types}/NotificationSound.swift (97%) rename Modules/{OlvidUI/ObvUICoreData/ObvUICoreData/Settings => ObvSettings}/UserDefaults+Extension.swift (100%) rename {iOSClient/ObvMessenger/ObvMessenger/UIElements => Modules/OlvidUI/ObvUI/ObvUI/Elements}/HUD/SwiftUI/BlurView.swift (76%) rename {iOSClient/ObvMessenger/ObvMessenger/UIElements => Modules/OlvidUI/ObvUI/ObvUI/Elements}/HUD/SwiftUI/HUDView.swift (81%) rename {iOSClient/ObvMessenger/ObvMessenger/UIElements => Modules/OlvidUI/ObvUI/ObvUI/Elements}/HUD/UIKit/HUDs/ObvHUDView.swift (96%) rename {iOSClient/ObvMessenger/ObvMessenger/UIElements => Modules/OlvidUI/ObvUI/ObvUI/Elements}/HUD/UIKit/HUDs/ObvIconHUD.swift (95%) rename {iOSClient/ObvMessenger/ObvMessenger/UIElements => Modules/OlvidUI/ObvUI/ObvUI/Elements}/HUD/UIKit/HUDs/ObvLoadingHUD.swift (100%) rename {iOSClient/ObvMessenger/ObvMessenger/UIElements => Modules/OlvidUI/ObvUI/ObvUI/Elements}/HUD/UIKit/HUDs/ObvTextHUD.swift (96%) rename {iOSClient/ObvMessenger/ObvMessenger/UIElements => Modules/OlvidUI/ObvUI/ObvUI/Elements}/HUD/UIKit/ObvCanShowHUD.swift (96%) rename {iOSClient/ObvMessenger/ObvMessenger/UIElements => Modules/OlvidUI/ObvUI/ObvUI/Elements}/HUD/UIKit/ObvHUDType.swift (96%) rename {iOSClient/ObvMessenger/ObvMessenger/UIElements => Modules/OlvidUI/ObvUI/ObvUI/Elements}/HUD/UIKit/UIViewController+ObvCanShowHUD.swift (90%) create mode 100644 Modules/OlvidUI/ObvUI/ObvUI/Localizable.xcstrings create mode 100644 Modules/OlvidUI/ObvUI/ObvUI/LocalizableClassForObvUIBundle.swift delete mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Enums/RequesterOfMessageDeletion.swift rename Modules/OlvidUI/ObvUICoreData/ObvUICoreData/{Settings/ObvMessengerSettingsBackup.swift => Extensions/GlobalSettingsBackupItem+Utils.swift} (89%) create mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Localizable.xcstrings create mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/LocalizableClassForObvUICoreDataBundle.swift rename Modules/OlvidUI/ObvUICoreData/ObvUICoreData/{ => Models/Devices}/PersistedObvContactDevice.swift (55%) create mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Devices/PersistedObvOwnedDevice.swift delete mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PendingMessageReaction.swift delete mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/RemoteDeleteAndEditRequest.swift create mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/RemoteRequestSavedForLater.swift delete mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Notification/ObvMessengerCoreDataNotification.yml create mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelper.swift rename {iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions => Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations}/DeleteAllOrphanedFyleMessageJoinWithStatusOperation.swift (53%) create mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteAllOrphanedPersistedMessagesOperation.swift rename iOSClient/ObvMessenger/ObvMessenger/Localization/MessageCollectionViewCell+Strings.swift => Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteOldRemoteRequestsSavedForLaterOperation.swift (51%) rename {iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Message Retention => Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations}/DeleteOrphanedExpirationsOperation.swift (74%) delete mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/ObvMessengerSettingsNotifications.yml create mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/AppSyncSnapshotNode.swift create mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/DiscussionIdentifier.swift create mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/MessageIdentifier.swift create mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/ObvUICoreDataError.swift rename Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/{ContactsSortOrder.swift => ContactsSortOrder+Utils.swift} (93%) delete mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ObvDisplayNameStyle.swift delete mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ObvUTIUtils.swift create mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/UTType+Extension.swift delete mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/en.lproj/Localizable.strings delete mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/en.lproj/Localizable.stringsdict delete mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/fr.lproj/Localizable.strings delete mode 100644 Modules/OlvidUI/ObvUICoreData/ObvUICoreData/fr.lproj/Localizable.stringsdict delete mode 100644 Modules/OlvidUtils/OlvidUtils/CoreDataUtils/NSManagedObjectContext+PerformAndWaitWithReturnType.swift create mode 100644 Modules/OlvidUtils/OlvidUtils/Operations/AsyncOperationWithSpecificReasonForCancel.swift create mode 100644 Modules/OlvidUtils/OlvidUtils/Operations/OperationQueue+addAndAwaitOperation.swift rename {iOSClient/ObvMessenger/ObvMessenger/UIElements => Modules/OlvidUtils/OlvidUtils/SwiftUI}/SwiftUIUtils.swift (56%) create mode 100644 Modules/OlvidUtils/OlvidUtils/TypeExtensions/Dictionary+MapKeysAndValues.swift create mode 100644 Modules/OlvidUtils/OlvidUtils/TypeExtensions/Operation+Utils.swift create mode 100644 Modules/OlvidUtils/OlvidUtils/TypeExtensions/UIDevice+CurrentDeviceName.swift create mode 100644 Modules/OlvidUtils/OlvidUtils/TypeExtensions/UIViewController+AsyncAwaitSuspend.swift delete mode 100644 Modules/OlvidUtils/OlvidUtils/TypeExtensions/URLSession+Async.swift delete mode 100644 Modules/UI/CircledInitialsView/CircledInitialsConfiguration/CircledInitialsConfiguration.swift create mode 100644 Modules/UI/ObvCircledInitials/CircledInitialsConfiguration.swift rename Modules/{OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/CircledInitialsIcon+Utils.swift => UI/ObvCircledInitials/CircledInitialsIcon.swift} (84%) create mode 100644 Modules/UI/ObvCircledInitials/InitialCircleViewNew.swift create mode 100644 Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/.gitignore create mode 100644 Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample.xcodeproj/project.pbxproj create mode 100644 Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/AppDelegate.swift create mode 100644 Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Assets.xcassets/Contents.json create mode 100644 Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Base.lproj/LaunchScreen.storyboard create mode 100644 Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Base.lproj/Main.storyboard create mode 100644 Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Info.plist create mode 100644 Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/SceneDelegate.swift create mode 100644 Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/SimpleImageViewerViewController.swift create mode 100644 Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/ViewController.swift create mode 100644 Modules/UI/ObvImageEditor/Sources/ObvImageEditorViewController.swift create mode 100644 Modules/UI/ObvImageEditor/Sources/ObvImageEditorViewControllerRepresentable.swift create mode 100644 Modules/UI/ObvPhotoButton/Localizable.xcstrings create mode 100644 Modules/UI/ObvPhotoButton/LocalizableClassForObvPhotoButtonBundle.swift create mode 100644 Modules/UI/ObvPhotoButton/ObvPhotoButtonView.swift create mode 100755 delete_DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER_from_all_project_pbxproj create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/I.colorset/Contents.json create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/Blue01.colorset/Contents.json create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/Contents.json create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/OnboardingBackgroundColor.colorset/Contents.json create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/TextFieldBackgroundColor.colorset/Contents.json create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/AppSyncSnapshotableCoordinator/AppSyncSnapshotableCoordinator.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/AppSyncSnapshotableCoordinator/Operations/UpdateAppDatabaseWithAppSyncSnapshotNodeOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvContactDevicesWithEngineOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvOwnedDevicesWithEngineOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/SetCustomNameOfJoinedGroupV1Operation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdatePersonalNoteOnGroupV1Operation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdatePersonalNoteOnGroupV2Operation.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessDeletedObliviousChannelWithContactDeviceOperation.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ResyncContactIdentityDetailsStatusWithEngineOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdatePersonalNoteOnContactOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/CoordinatorsDelegates/ObvSyncAtomRequestDelegate.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/MessagesKeptForLaterManager.swift rename Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/DeleteAllServerPushNotificationsOnOwnedIdentityDeletionOperation.swift => iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/MarkAllPersistedInvitationAsOldOperation.swift (54%) create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/NameCurrentDeviceWithoutSpecifiedNameOperation.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllPersistedMessagesWithinDiscussionOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeletePersistedDiscussionOperation.swift rename iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/{ => DeletingOrphanedItems}/DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation.swift (68%) create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/ProcessRemoteWipeDiscussionRequestOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/ProcessRemoteWipeMessagesRequestOperation.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeMessagesOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/PostDiscussionReadJSONEngineOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/PostLimitedVisibilityMessageOpenedJSONEngineOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/SendOwnedWebRTCMessageOperation.swift rename iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/{ => EngineOperations}/SendWebRTCMessageOperation.swift (58%) delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/GetAppropriateActiveDiscussionOperation.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MessagesThatRequireUserAction/AllowReadingOfAllMessagesReceivedThatRequireUserActionOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MessagesThatRequireUserAction/TryToAutoReadDiscussionsReceivedMessagesThatRequireUserActionOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Processing Engine Notifications/ProcessContactIntroductionInvitationSentOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Reactions/ProcessSetOrUpdateReactionOnMessageLocalRequestOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Reactions/ProcessSetOrUpdateReactionOnMessageOperation.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ApplyExistingRemoteDeleteAndEditRequestOperation.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ApplyPendingReactionsOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/CreatePersistedMessageReceivedFromReceivedObvMessageOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/CreatePersistedMessageSentFromReceivedObvOwnedMessageOperation.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/DeleteOldOrOrphanedPendingReactionsOperation.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/DeleteOldOrOrphanedRemoteDeleteAndEditRequestsOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/MarkReceivedSentJoinAsResumedOrPausedOperation.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ReceivingMessageAndAttachmentsOperations.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ResumeOrPauseOwnedAttachmentDownloadOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/UpdatePersistedMessageReceivedFromReceivedObvAttachmentOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/UpdatePersistedMessageSentFromReceivedObvOwnedAttachmentOperation.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessDetectionThatSensitiveMessagesWereCapturedByContactOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessDetectionThatSensitiveMessagesWereCapturedOperation.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateReactionsOfMessageOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v66_to_v67/MigrationAppDatabase_v66_to_v67.md create mode 100644 iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v66_to_v67/MigrationAppDatabase_v66_to_v67.xcmappingmodel/xcmapping.xml create mode 100644 iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v66_to_v67/MigrationPolicies/PersistedMessageSentToPersistedMessageSentV66ToV67.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/CoreData/ObvMessenger.xcdatamodeld/ObvMessenger 67.xcdatamodel/contents create mode 100644 iOSClient/ObvMessenger/ObvMessenger/InfoPlist.xcstrings delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/LicenseActivationView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/LicenseActivationView/LicenseActivationView.swift rename Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/QueryApiKeyStatusDelegate.swift => iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/LicenseActivationView/ViewModelsForCoreDataEntities/PersistedObvOwnedIdentity+LicenseActivationViewModelOwnedIdentityModelProtocol.swift (74%) create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Localizable.xcstrings delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Localization/ComposeMessageViewDocumentPickerAdapterWithDraft+Strings.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Localization/DiscussionsSettingsTableViewController+Strings.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Localization/SingleDiscussionViewController+Strings.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SingleContactDetailedInfos/SingleContactDetailedInfosViewController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/EditSingleContactIdentityNicknameNavigationView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/EditSingleContactIdentityNicknameView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ContactDeviceView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ContactDevicesListView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ListOfContactDevicesViewController.swift rename iOSClient/ObvMessenger/ObvMessenger/Main/{Invitations/InvitationsCollection/Protocols/CellContainingSasAcceptedView.swift => Contacts/SingleContact/SwiftUI/ListOfContactDevices/ViewModelsForCoreDataEntities/PersistedObvContactDevice+ContactDeviceViewModelProtocol.swift} (70%) rename Modules/Discussions/AttachmentsDropView/UIDropInteraction+AttachmentsDropView.swift => iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+ContactDevicesListViewModelProtocol.swift (66%) create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfTrustOrigins/ListOfTrustOriginsView.swift rename iOSClient/ObvMessenger/ObvMessenger/{VoIP/ViewsAndViewControllers/SwiftUI/CallViewHostingController.swift => Main/Contacts/SingleContact/SwiftUI/ListOfTrustOrigins/ListOfTrustOriginsViewController.swift} (61%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/{TrustOriginsView.swift => ListOfTrustOrigins/TrustOriginCellView.swift} (62%) delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/AvailableSubscriptionPlansView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ChooseDeviceToReactivate/ChooseDeviceToReactivateHostingViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ChooseDeviceToReactivate/ChooseDeviceToReactivateView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/OwnedDeviceView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/OwnedDevicesListView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/ViewModelsForCoreDataEntities/PersistedObvOwnedDevice+OwnedDeviceViewModelProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/ViewModelsForCoreDataEntities/PersistedObvOwnedIdentity+OwnedDevicesListViewModelProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/PermuteDeviceExpiration/PermuteDeviceExpirationHostingViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/PermuteDeviceExpiration/PermuteDeviceExpirationView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/SubscriptionPlansView.swift rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/BodyEditViewController.swift (99%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/Layout/ElementInfos/ObvCollectionViewLayoutSectionInfos.swift (98%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/Layout/ElementInfos/ObvCollectionViewLayoutSupplementaryViewInfos.swift (100%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/MessageDetails/HostingViewControllers/ReceivedMessageInfosHostingViewController.swift (96%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/MessageDetails/HostingViewControllers/SentMessageInfosHostingViewController.swift (97%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/MessageDetails/SwiftUIViews/DateInfosOfSentMessageToManyContacts.swift (89%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/MessageDetails/SwiftUIViews/DateInfosOfSentMessageToSingleContact.swift (100%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/MessageDetails/SwiftUIViews/HorizontalTitleAndSubtitle.swift (98%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/MessageDetails/SwiftUIViews/MessageMetadatasSectionView.swift (90%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/MessageDetails/SwiftUIViews/MessageRetentionInfoSectionView.swift (89%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/MessageDetails/SwiftUIViews/ReceivedAttachementInfosView.swift (96%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/MessageDetails/SwiftUIViews/ReceivedMessageStatusView.swift (98%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/MessageDetails/SwiftUIViews/SentAttachementInfosView.swift (94%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/MessageDetails/SwiftUIViews/SentMessageStatusView.swift (94%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/SingleDiscussionSettings/DiscussionSettingsHostingViewController.swift (92%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/SingleDiscussionSettings/DraftExpirationSettings.swift (97%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion => NewSingleDiscussion}/SingleDiscussionViewControllerDelegate.swift (100%) rename iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/{SingleDiscussion/Cells => NewSingleDiscussion/cells}/CellWithMessage.swift (77%) delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/CollectionOfFylesView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/LinkViewPlaceHolderView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageCollectionViewCell.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageCollectionViewCellDelegate.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageReceivedCollectionViewCell.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageSentCollectionViewCell.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageSystemCollectionViewCell.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageDataSource/ComposeMessageDataSource.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageDataSource/ComposeMessageDataSourceWithDraft.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageView.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageViewDocumentPickerAdapterWithDraft.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageViewDocumentPickerDelegate.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageViewSendMessageAdapterWithDraft.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageViewSendMessageDelegate.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/TextFieldBackgroundView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutItemInfos.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ObvCollectionView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ObvCollectionViewLayout.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ObvCollectionViewLayoutDelegate.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SingleDiscussionViewController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SupplementaryViews/DateCollectionReusableView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SupplementaryViews/NoChannelCollectionReusableView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/AllInvitationsHostingController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/AllInvitationsViewController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/AcceptGroupInviteCollectionViewCell.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/AcceptGroupInviteCollectionViewCell.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/Base.lproj/HelpCardCollectionViewCell.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/ButtonsCardCollectionViewCell.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/ButtonsCardCollectionViewCell.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/HelpCardCollectionViewCell.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/MultipleButtonsCollectionViewCell.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/MultipleButtonsCollectionViewCell.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasAcceptedCardCollectionViewCell.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasAcceptedCardCollectionViewCell.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasCardCollectionViewCell.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasCardCollectionViewCell.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/TitledCardCollectionViewCell.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/TitledCardCollectionViewCell.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/en.lproj/HelpCardCollectionViewCell.strings delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/fr.lproj/HelpCardCollectionViewCell.strings delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/InvitationsCollectionViewController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/InvitationsCollectionViewController.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/InvitationsCollectionViewControllerDelegate.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingHeaderView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingOneButtonView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingOneColumnView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingSasView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingTwoButtonsView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingTwoColumnsView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/InvitationCollectionCell.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/Base.lproj/SasAcceptedView.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/Base.lproj/SasView.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/CellHeaderView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/CellHeaderView.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneButtonView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneButtonView.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneColumnView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneColumnView.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/SasAcceptedView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/SasView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoButtonsView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoButtonsView.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoColumnsView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoColumnsView.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/en.lproj/SasAcceptedView.strings delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/en.lproj/SasView.strings delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/fr.lproj/SasAcceptedView.strings delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/fr.lproj/SasView.strings delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsFlowViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/NewInvitationsFlowViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/AllInvitationsView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/Cells/InvitationView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/ViewModelsFromCoreDataEntities/PersistedInvitation+InvitationViewModelProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/ViewModelsFromCoreDataEntities/PersistedObvOwnedIdentity+AllInvitationsViewModelProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/InternalStorageExplorerViewController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/UIKit/DiscussionsSettingsTableViewController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Managers/SubscriptionManager/Operations/ProcessPurchasedOperation.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/OwnedIdentityIsNotActive/OwnedIdentityIsNotActiveViewController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/OwnedIdentityIsNotActive/OwnedIdentityIsNotActiveViewController.xib delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Notifications/HardLinksToFylesNotifications.yml delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Notifications/NewSingleDiscussionNotification.yml delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Notifications/ObvMessengerInternalNotification.yml delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Notifications/SubscriptionNotification.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Notifications/SubscriptionNotification.yml create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/AddProfile/AddProfileView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/AddProfile/AddProfileViewController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/AutorisationRequesterHostingController/AutorisationRequesterHostingController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/AutorisationRequesterHostingController/AutorisationRequesterHostingControllerDelegate.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/01ChooseBackupFile/ChooseBackupFileView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/01ChooseBackupFile/ChooseBackupFileViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/01ChooseBackupFile/NewBackupInfo.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/02EnterBackupKey/EnterBackupKeyView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/02EnterBackupKey/EnterBackupKeyViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/03WaitingForBackupRestore/WaitingForBackupRestoreView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/03WaitingForBackupRestore/WaitingForBackupRestoreViewController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/BackupRestoreView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/BackupRestoringWaitingScreenViewController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/CloudFailureReason.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/ChooseBetweenBackupRestoreAndAddThisDevice/ChooseBetweenBackupRestoreAndAddThisDeviceView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/ChooseBetweenBackupRestoreAndAddThisDevice/ChooseBetweenBackupRestoreAndAddThisDeviceViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/CommonViews/NewOnboardingHeaderView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/CommonViews/SingleDigitTextField.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/CurrentDeviceNameChooser/CurrentDeviceNameChooserView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/CurrentDeviceNameChooser/CurrentDeviceNameChooserViewController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/DisplayNameChooserViewController/DisplayNameChooserView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderManualConfiguration/IdentityProviderManualConfigurationHostingView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/IdentityProviderValidationHostingViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/IdentityProviderValidationView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/IdentityProviderValidationViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/NewKeycloakConfigurationDetailsView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/ManagedDetailsViewer/ManagedDetailsViewerView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/ManagedDetailsViewer/ManagedDetailsViewerViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewAutorisationRequester/NewAutorisationRequesterView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewAutorisationRequester/NewAutorisationRequesterViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewIdentityProviderManualConfiguration/NewIdentityProviderManualConfigurationView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewIdentityProviderManualConfiguration/NewIdentityProviderManualConfigurationViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOnboardingFlowViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOnboardingInternalState.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOwnedIdentityGenerated/NewOwnedIdentityGeneratedView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOwnedIdentityGenerated/NewOwnedIdentityGeneratedViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewUnmanagedDetailsChooser/NewUnmanagedDetailsChooserView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewUnmanagedDetailsChooser/NewUnmanagedDetailsChooserViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewWelcomeScreen/NewWelcomeScreenView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewWelcomeScreen/NewWelcomeScreenViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/ObvOnboardingAssets.xcassets/Contents.json create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/ObvOnboardingAssets.xcassets/badge.imageset/Contents.json create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/ObvOnboardingAssets.xcassets/badge.imageset/badge.pdf delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/OnboardingFlowViewController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/OnboardingFlowViewControllerDelegate.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/OnboardingInternalState.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/OwnedIdentityGeneratedViewController/OwnedIdentityGeneratedView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnBoth/OwnedIdentityTransferFailure/OwnedIdentityTransferFailureView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnBoth/OwnedIdentityTransferFailure/OwnedIdentityTransferFailureViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/01TransfertProtocolSourceCodeDisplayer/TransfertProtocolSourceCodeDisplayerView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/01TransfertProtocolSourceCodeDisplayer/TransfertProtocolSourceCodeDisplayerViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/02InputSASOnSource/InputSASOnSourceView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/02InputSASOnSource/InputSASOnSourceViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/03ChooseDeviceToKeepActive/ChooseDeviceToKeepActiveView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/03ChooseDeviceToKeepActive/ChooseDeviceToKeepActiveViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/04OwnedIdentityTransferSummary/OwnedIdentityTransferSummaryView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/04OwnedIdentityTransferSummary/OwnedIdentityTransferSummaryViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/01TransfertProtocolTargetCodeForm/TransfertProtocolTargetCodeFormView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/01TransfertProtocolTargetCodeForm/TransfertProtocolTargetCodeFormViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/02TransferProtocolTargetShowSas/TransferProtocolTargetShowSasView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/02TransferProtocolTargetShowSas/TransferProtocolTargetShowSasViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/03SuccessfulTransferConfirmation/SuccessfulTransferConfirmationView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/03SuccessfulTransferConfirmation/SuccessfulTransferConfirmationViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/TransferProtocolViewsNotifications.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/Onboarding/WelcomeScreen/WelcomeScreenHostingController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/Contents.json create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto01.imageset/Contents.json create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto01.imageset/DevPhoto01.jpg create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto02.imageset/Contents.json create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto02.imageset/DevPhoto02.jpg create mode 100644 iOSClient/ObvMessenger/ObvMessenger/RootViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ContactCellView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/SpinnerViewForContactCell.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+ContactCellViewNewModelProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+ContactTextViewModelProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+InitialCircleViewNewModelProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+SpinnerViewForContactCellModelProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/UIElements/EditNicknameAndCustomPicture/EditNicknameAndCustomPictureView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/UIElements/EditNicknameAndCustomPicture/EditNicknameAndCustomPictureViewController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/SwiftUI/ObvActivityIndicatorView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/UIElements/ImageEditor.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteEditor/PersonalNoteEditorHostingController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteEditor/PersonalNoteEditorView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteViewer/PersonalNoteView.swift rename Modules/UI/CircledInitialsView/CircledInitialsConfiguration/CircledInitialsIcon.swift => iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteViewer/ViewModelsForCoreDataEntities/PersistedGroupV2+PersonalNoteViewModelProtocol.swift (78%) create mode 100644 iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteViewer/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+PersonalNoteViewModelProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/Utils/NSItemProvider+Utils.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/Call/Call.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/Call/CallDelegate.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/Call/GenericCall.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/CXCallController+CallControllerProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/CallControllerHolder.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/CallControllerProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/NCXCallController.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallKitSupport.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallManager.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipant.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipantDelegate.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipantImpl.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipantUpdateKind.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/CXProvider+CallProviderProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/CallProviderHolder.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/CallProviderProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/NCXProvider.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProviderDelegate.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/CallSupport.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/AVAudioSessionPortDescription+isSpeaker.swift rename iOSClient/ObvMessenger/ObvMessenger/VoIP/{ => Helpers}/CallReport.swift (66%) delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/CallSounds.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/DataChannelWorker.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/OlvidCallAudioPlayer.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/RTCDataChannelState+CustomStringConvertible.swift rename iOSClient/ObvMessenger/ObvMessenger/VoIP/{ViewsAndViewControllers => Helpers}/Sounds/connect.mp3 (100%) rename iOSClient/ObvMessenger/ObvMessenger/VoIP/{ViewsAndViewControllers => Helpers}/Sounds/disconnect.mp3 (100%) create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/Sounds/reconnecting.mp3 rename iOSClient/ObvMessenger/ObvMessenger/VoIP/{ViewsAndViewControllers => Helpers}/Sounds/ringing.mp3 (100%) delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/NonCallKitSupport.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/ObvAudioSessionUtils.swift rename iOSClient/ObvMessenger/ObvMessenger/VoIP/{PeerConnection => OlvidCall}/ObvPeerConnection.swift (71%) create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCall.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallAudioOption.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallParticipant.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallParticipantInfo.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallParticipantPeerConnectionHolder.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/AddIceCandidateOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/ClosePeerConnectionOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/ConfigureAudioSessionOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/CreateAndSetLocalDescriptionIfAppropriateOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/CreatePeerConnectionOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/HandleReceivedRestartSdpOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/RemoveIceCandidateOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/RestartIceIfRequiredOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/SendDataThroughPeerConnectionOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/SetRemoteDescriptionOperation.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCallManager.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/PeerConnection/WebrtcPeerConnectionHolder.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/PeerConnection/WebrtcPeerConnectionHolderDelegate.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/PushKitNotificationSynchronizer.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/SupportingTypes/OlvidCallGatheringPolicy+RTCContinualGatheringPolicy.swift rename iOSClient/ObvMessenger/ObvMessenger/{Localization/ComposeMessageView+Strings.swift => VoIP/SupportingTypes/OlvidCallGatheringPolicy.swift} (69%) create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/SupportingTypes/TurnCredentials.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/OlvidCallParticipantView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/OlvidCallView.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/OlvidCallViewController.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/ViewModelsImplementation/OlvidCall+OlvidCallViewModelProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/ViewModelsImplementation/OlvidCallManager+OlvidCallViewActionsProtocol.swift create mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/ViewModelsImplementation/OlvidCallParticipant+OlvidCallParticipantViewModelProtocol.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallAnswerAndRejectButtonsView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallButtonsViews.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/MutedBadgeView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/RoundedButtonView.swift delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/VoIP/VoIPNotification/VoIPNotification.yml delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/en.lproj/Localizable.strings delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/en.lproj/Localizable.stringsdict delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/fr.lproj/InfoPlist.strings delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/fr.lproj/Localizable.strings delete mode 100644 iOSClient/ObvMessenger/ObvMessenger/fr.lproj/Localizable.stringsdict create mode 100644 iOSClient/ObvMessenger/ObvMessengerIntentsExtension/ObvMessengerIntentsExtension.entitlements delete mode 100644 iOSClient/ObvMessenger/TestConfiguration.storekit delete mode 100644 tuist/Dependencies/Lockfiles/Cartfile.resolved delete mode 100644 tuist/Dependencies/Lockfiles/Package.resolved create mode 100644 tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-maccatalyst/Headers/gmp.h create mode 100644 tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-maccatalyst/Headers/module.modulemap create mode 100644 tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-maccatalyst/libgmp.a diff --git a/.package.resolved b/.package.resolved new file mode 100644 index 00000000..8e4f0285 --- /dev/null +++ b/.package.resolved @@ -0,0 +1,23 @@ +{ + "pins" : [ + { + "identity" : "appauth-ios-for-olvid", + "kind" : "remoteSourceControl", + "location" : "https://github.com/olvid-io/AppAuth-iOS-for-Olvid", + "state" : { + "branch" : "targetfix", + "revision" : "0d90e24667c4a1fd9a84edb27ce966cc395f1314" + } + }, + { + "identity" : "joseswift-for-olvid", + "kind" : "remoteSourceControl", + "location" : "https://github.com/olvid-io/JOSESwift-for-Olvid", + "state" : { + "branch" : "targetfix", + "revision" : "a1cd4c990da61c86e5bb4cd7605e2d372cc10c72" + } + } + ], + "version" : 2 +} diff --git a/.tuist-version b/.tuist-version index c5b45eb7..594f7183 100644 --- a/.tuist-version +++ b/.tuist-version @@ -1 +1 @@ -3.18.0 +3.33.4 diff --git a/CHANGELOG.en.md b/CHANGELOG.en.md index 8074e242..c2dda683 100644 --- a/CHANGELOG.en.md +++ b/CHANGELOG.en.md @@ -1,5 +1,69 @@ # Changelog +## [1.3.1 (719)] - 2023-12-11 + +- Bugfix release + +## [1.3 (716)] - 2023-12-08 + +- Secure calls are now available on macOS! +- The secure calls feature has a fresh new aesthetic, designed to enhance visual appeal across all devices and orientations. +- Introducing a revamped interface for editing the nickname and custom photo of contacts or groups. +- Enjoy the convenience of inviting all group members simultaneously with the new "Invite All" option. +- Resolves an issue on macOS related to file imports using AirDrop. +- Addresses various bugs concerning keycloak-managed users when the keycloak server is inaccessible. +- Resolves a crash that occurred on certain iPhones when rotating the screen during an active discussion. +- Fixes a bug that hindered secure calls from functioning when the device's local time was incorrect. +- Various other minor bug fixes. + +## [1.2 (709)] - 2023-10-25 + +- It is now possible to subscribe to the multi-device while adding a new device. +- Fixes localization issues. +- Fixes a bug sometimes provoking a crash in the background. +- Fixes a few issues concerning groups (including enterprise managed groups). +- Several fixes improving the multi-device experience. + +## [1.1 (705)] - 2023-10-15 + +- Fully redesigned invitation tab! +- Improves the onboarding process. +- Fixes the authorization screen request access to the microphone. +- Fixes an issue sometimes preventing to receive a code during an invitation process. + +## [1.0 (703)] - 2023-10-10 + +- This is a major update! Welcome to Olvid v1.0 ;-) +- You can now use the same profile on multiple devices simultaneously! +- Start a conversation on your iPhone, continue it on your Mac, finish it on your iPad. +- All your contacts, groups, and settings stay synchronized across all your devices. +- Add a new contact on the go thanks to your iPhone, discuss with them from any device. +- All your conversations stay end-to-end secured (end-to-end encrypted and end-to-end authenticated) across all your devices and those of your contacts. +- Adding a new device to your list of devices is done in seconds thanks to a new, completely redesigned, secure, onboarding process! +- Changing phone is now also done in seconds if you still have your old device at hand. + +## [0.12.12 (694)] - 2023-09-15 + +- Ready for iOS 17! +- You can drag and drop files from (and to) the discussion screen under iPadOS. +- Fixes various typos in French. +- Fixes an issue sometimes preventing a backup to be restored. +- Fixes an issue sometimes preventing the finalization of the download of certain attachments. +- Fixes a bug preventing copy/paste of text in the compose view. +- Fixes an issue preventing a profile from taking advantage of another profile's permission to emit secure calls. +- The list of trust origins is now displayed on a separate screen. +- Adds an advanced setting allowing you to download missing profile pictures for contacts, groups, and personal profiles. + +## [0.12.11 (669)] - 2023-07-19 + +- Fixes a bug preventing certain copy/paste in the composition field. +- Updates the UI of the contact sheet. + +## [0.12.10 (666)] - 2023-07-11 + +- Fixes a bug preventing the download of attachments under iOS 17 beta 3. +- Other minor bugfixes + ## [0.12.9 (661)] - 2023-05-22 - Improves the new group protocol to prevent situations were group pending members would never become full members. Basically, Olvid works even better than before. diff --git a/CHANGELOG.fr.md b/CHANGELOG.fr.md index 06a7fb8b..523ac9fc 100644 --- a/CHANGELOG.fr.md +++ b/CHANGELOG.fr.md @@ -1,5 +1,69 @@ # Changelog +## [1.3.1 (719)] - 2023-12-11 + +- Bugfix + +## [1.3 (716)] - 2023-12-08 + +- Les appels sécurisés sont désormais disponibles sur macOS ! +- Les interfaces des appels sécurisés ont été repensées pour s'adapter à tous les écrans et orientations. +- Introduction d'une nouvelle interface permettant de modifier le surnom et la photo personnalisée d'un contact ou d'un groupe. +- Il est désormais possible d'inviter tous les membres d'un groupe en une seule fois pour des discussions privées individuelles. +- Correction d'une erreur sous macOS lors de l'importation d'un fichier via AirDrop. +- Résolution de plusieurs bugs liés aux utilisateurs gérés par Keycloak lorsque le serveur Keycloak n'est pas accessible. +- Correction d'un crash sur certains iPhone lors de la rotation de l'écran. +- Correction d'un bug empêchant les appels sécurisés de fonctionner lorsque l'heure locale de l'appareil est incorrecte. +- Diverses autres corrections mineures. + +## [1.2 (709)] - 2023-10-25 + +- Il est possible de souscrire un abonnement au moment de l'ajout d'un nouvel appareil. +- Corrige des erreurs de traduction. +- Corrige une erreur pouvant provoquer un crash de l'app en arrière plan. +- Corrige un certain nombre de bug concernant les groupes (y compris les groupes administrés par annuaire). +- Plusieurs corrections afin d'améliorer l'expérience en multi-appareils. + +## [1.1 (705)] - 2023-10-15 + +- Nouveau tab d'invitations ! +- Améliore le processus d'onboarding. +- Corrige l'écran d'autorisation à l'occasion de la demande de micro. +- Corrige un bug empêchant parfois d'arriver au terme d'une invitation. + +## [1.0 (703)] - 2023-10-10 + +- Mise à jour majeure ! Bienvenue à Olvid v1.0 ;-) +- Vous pouvez maintenant utiliser votre profil sur plusieurs appareils simultanément ! +- Commencez une discussion sur votre iPhone, continuez-la sur votre Mac, terminez-la sur votre iPad. +- Tous vos contacts, groupes et paramètres restent synchronisés entre tous vos appareils. +- Ajoutez un nouveau contact depuis votre iPhone, discutez ensuite depuis n’importe lequel de vos appareils. +- Vos conversations restent sécurisées de bout en bout (chiffrées de bout en bout et authentifiées de bout en bout) entre tous vos appareils et ceux de vos contacts. +- Ajouter un nouvel appareil à votre liste d’appareils ne demande que quelques secondes grâce à un nouveau processus « d’onboarding » sécurisé complètement revu ! +- Changer de téléphone ne demande que quelques secondes si vous avez encore votre ancien appareil sous la main. + +## [0.12.12 (694)] - 2023-09-15 + +- Tout est prêt pour iOS 17 ! +- Il est possible de faire un glisser-déposer depuis (et vers) la vue de discussion sur iPadOS. +- Corrige de nombreuses erreurs dans les textes français. +- Corrige un bug empêchant parfois une sauvegarde d'être restaurée. +- Corrige un bug empêchant parfois l'accès à une pièce jointe après son téléchargement. +- Corrige un bug empêchant le copier/coller de certains liens dans la zone de composition. +- Corrige un bug empêchant un profil de profiter du droit d'appeler d'un autre profil. +- La liste des origines de confiance est maintenant affichée sur un écran séparé. +- Un paramètre avancé permet de télécharger les photos de profil manquantes pour les contacts, groupes et profils personnels. + +## [0.12.11 (669)] - 2023-07-19 + +- Corrige un bug empêchant le copier/coller de certains liens dans la zone de composition. +- Amélioration de l'interface de la fiche contact. + +## [0.12.10 (666)] - 2023-07-11 + +- Corrige un bug empêchant le téléchargement de pièces jointes sous iOS 17 beta 3 +- Autres corrections de bug mineurs + ## [0.12.9 (661)] - 2023-05-22 - Améliore le protocole concernant les nouveaux groupes afin de limiter les situations où des membres en attente de deviennent jamais membre à part entière. Bref, ça marche encore mieux qu'avant. @@ -136,7 +200,7 @@ - Corrige un problème rencontré sous iOS 16 concernant les autorisations systématiques demandées au moment de faire un copier/coller. - Corrige un bug empêchant l'affichage de certaines notifications d'appel manqué. - Le démarrage d'Olvid est encore plus rapide qu'avant. -- Afin de ne jamais rater un appel sécurisé, vous avez maintenant la possibilité d'accorder l'accès au micro pendant l'onboarding. +- Afin de ne jamais raté un appel sécurisé, vous avez maintenant la possibilité d'accorder l'accès au micro pendant l'onboarding. ## [0.11.1 (564)] - 2022-09-22 diff --git a/Engine/JWS/JWS/JWSUtil.swift b/Engine/JWS/JWS/JWSUtil.swift index c30be269..a7004f33 100644 --- a/Engine/JWS/JWS/JWSUtil.swift +++ b/Engine/JWS/JWS/JWSUtil.swift @@ -19,9 +19,13 @@ import Foundation import JOSESwift +import ObvEncoder +import OlvidUtils -public struct ObvJWKSet { - +public struct ObvJWKSet: ObvErrorMaker { + + public static let errorDomain = "ObvJWKSet" + fileprivate let jWKSet: JWKSet public init(data: Data) throws { @@ -38,6 +42,37 @@ public struct ObvJWKSet { } +/// We make `ObvJWKSet` conform to `ObvCodable` since this type is used within the engine's protocol messages. +extension ObvJWKSet: ObvFailableCodable { + + public func obvEncode() throws -> ObvEncoder.ObvEncoded { + guard let obvJWKSetAsJSONData = self.jsonData() else { + assertionFailure() + throw Self.makeError(message: "Could not encode ObvJWKSet") + } + return obvJWKSetAsJSONData.obvEncode() + } + + + public init?(_ obvEncoded: ObvEncoded) { + + guard let obvJWKSetAsJSONData = Data(obvEncoded) else { + assertionFailure() + return nil + } + + do { + try self.init(data: obvJWKSetAsJSONData) + } catch { + assertionFailure(error.localizedDescription) + return nil + } + + } + +} + + public struct ObvJWK: Equatable { private static let errorDomain = "ObvJWK" @@ -84,6 +119,35 @@ public struct ObvJWK: Equatable { } +/// We make `ObvJWK` conform to `ObvCodable` since this type is used within the engine's protocol messages. +extension ObvJWK: ObvFailableCodable { + + public func obvEncode() throws -> ObvEncoder.ObvEncoded { + let jsonData = try self.jsonEncode() + return jsonData.obvEncode() + } + + + public init?(_ obvEncoded: ObvEncoded) { + + guard let jsonData = Data(obvEncoded) else { + assertionFailure() + return nil + } + + guard let obvJWK = try? Self.jsonDecode(rawObvJWK: jsonData) else { + assertionFailure() + return nil + } + + self = obvJWK + + } + +} + + + public final class JWSUtil { private static let errorDomain = "JWSUtil" diff --git a/Engine/ObvBackupManager/ObvBackupManager/CoreData/Backup.swift b/Engine/ObvBackupManager/ObvBackupManager/CoreData/Backup.swift index 05aabd12..6583b1d6 100644 --- a/Engine/ObvBackupManager/ObvBackupManager/CoreData/Backup.swift +++ b/Engine/ObvBackupManager/ObvBackupManager/CoreData/Backup.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/Engine/ObvBackupManager/ObvBackupManager/CoreData/BackupKey.swift b/Engine/ObvBackupManager/ObvBackupManager/CoreData/BackupKey.swift index c8e9987f..9aef311b 100644 --- a/Engine/ObvBackupManager/ObvBackupManager/CoreData/BackupKey.swift +++ b/Engine/ObvBackupManager/ObvBackupManager/CoreData/BackupKey.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/Engine/ObvBackupManager/ObvBackupManager/ObvBackupDelegateManager.swift b/Engine/ObvBackupManager/ObvBackupManager/ObvBackupDelegateManager.swift index 6c9e7efa..fb899e92 100644 --- a/Engine/ObvBackupManager/ObvBackupManager/ObvBackupDelegateManager.swift +++ b/Engine/ObvBackupManager/ObvBackupManager/ObvBackupDelegateManager.swift @@ -33,6 +33,4 @@ final class ObvBackupDelegateManager { weak var contextCreator: ObvCreateContextDelegate! weak var notificationDelegate: ObvNotificationDelegate! - - } diff --git a/Engine/ObvBackupManager/ObvBackupManager/ObvBackupManagerImplementation.swift b/Engine/ObvBackupManager/ObvBackupManager/ObvBackupManagerImplementation.swift index 1ba09d74..27f6f481 100644 --- a/Engine/ObvBackupManager/ObvBackupManager/ObvBackupManagerImplementation.swift +++ b/Engine/ObvBackupManager/ObvBackupManager/ObvBackupManagerImplementation.swift @@ -269,13 +269,13 @@ extension ObvBackupManagerImplementation: ObvBackupDelegate { let fullBackup = try FullBackup(allInternalJsonAndIdentifier: allInternalDataForBackup) - // Create and compress the full backup + // Create the full backup - let possiblyCompressedFullBackupData = try fullBackup.computeData(flowId: backupRequestIdentifier, doCompressData: ObvConstants.compressBackupedData, log: log) + let fullBackupData = try fullBackup.computeData(flowId: backupRequestIdentifier, log: log) - os_log("The compressed full backup is made of %d bytes within flow %{public}@", log: log, type: .info, possiblyCompressedFullBackupData.count, backupRequestIdentifier.description) + os_log("The full backup is made of %d bytes within flow %{public}@", log: log, type: .info, fullBackupData.count, backupRequestIdentifier.description) - return try await createPersistedBackup(forExport: forExport, backupRequestIdentifier: backupRequestIdentifier, possiblyCompressedFullBackupData: possiblyCompressedFullBackupData) + return try await createPersistedBackup(forExport: forExport, backupRequestIdentifier: backupRequestIdentifier, fullBackupData: fullBackupData) } @@ -436,7 +436,7 @@ extension ObvBackupManagerImplementation: ObvBackupDelegate { throw BackupRestoreError.backupDataDecryptionFailed } - os_log("The backup data was successfully decrypted for backup request identified by %{public}@. We can decompress this data.", log: log, type: .info, backupRequestIdentifier.description) + os_log("The backup data was successfully decrypted for backup request identified by %{public}@", log: log, type: .info, backupRequestIdentifier.description) let fullBackup: FullBackup do { @@ -579,7 +579,7 @@ extension ObvBackupManagerImplementation: ObvBackupDelegate { extension ObvBackupManagerImplementation { - private func createPersistedBackup(forExport: Bool, backupRequestIdentifier: FlowIdentifier, possiblyCompressedFullBackupData: Data) async throws -> (backupKeyUid: UID, version: Int, encryptedContent: Data) { + private func createPersistedBackup(forExport: Bool, backupRequestIdentifier: FlowIdentifier, fullBackupData: Data) async throws -> (backupKeyUid: UID, version: Int, encryptedContent: Data) { assert(!Thread.isMainThread) @@ -605,11 +605,11 @@ extension ObvBackupManagerImplementation { throw Self.makeError(message: "Could not find any backup key for ongoing backup") } - // At this point we have a compressed backup and the appropriate keys. We can encrypt the backup. + // At this point we have a backup and the appropriate keys. We can encrypt the backup. - os_log("Encrypting the compressed full backup for backupRequestIdentifier %{public}@", log: log, type: .info, backupRequestIdentifier.description) + os_log("Encrypting the full backup for backupRequestIdentifier %{public}@", log: log, type: .info, backupRequestIdentifier.description) - let encryptedBackup = PublicKeyEncryption.encrypt(possiblyCompressedFullBackupData, using: derivedKeysForBackup.publicKeyForEncryption, and: prng) + let encryptedBackup = PublicKeyEncryption.encrypt(fullBackupData, using: derivedKeysForBackup.publicKeyForEncryption, and: prng) let macOfEncryptedBackup = try MAC.compute(forData: encryptedBackup, withKey: derivedKeysForBackup.macKey) let authenticatedEncryptedBackup = EncryptedData(data: encryptedBackup.raw + macOfEncryptedBackup) @@ -922,7 +922,7 @@ fileprivate struct FullBackup: Codable { return result } - func computeData(flowId: FlowIdentifier, doCompressData: Bool, log: OSLog) throws -> Data { + func computeData(flowId: FlowIdentifier, log: OSLog) throws -> Data { // Create the full backup content @@ -931,42 +931,10 @@ fileprivate struct FullBackup: Codable { let jsonEncoder = JSONEncoder() let fullBackupData = try jsonEncoder.encode(self) - if doCompressData { - - // Compress the full backup content - - os_log("Compressing the %d bytes full backup content within flow %{public}@", log: log, type: .info, fullBackupData.count, flowId.description) - - let compressedFullBackupData = try compressFullBackupContent(fullBackupData) - - return compressedFullBackupData - - } else { - - return fullBackupData - - } - - } - - - private func compressFullBackupContent(_ fullBackupContent: Data) throws -> Data { - - // See https://developer.apple.com/documentation/accelerate/compressing_and_decompressing_data_with_buffer_compression - // We use a method working under iOS 11+. Under iOS 13+, we could use simpler APIs. - - var sourceBuffer = [UInt8](fullBackupContent) - let destinationBuffer = UnsafeMutablePointer.allocate(capacity: fullBackupContent.count) - let algorithm = COMPRESSION_ZLIB - let compressedSize = compression_encode_buffer(destinationBuffer, fullBackupContent.count, &sourceBuffer, fullBackupContent.count, nil, algorithm) - guard compressedSize > 0 else { - throw ObvBackupManagerImplementation.makeError(message: "Compression failed") - } - let compressedFullBackupData = Data(bytes: destinationBuffer, count: compressedSize) - return compressedFullBackupData + return fullBackupData } - + private static func decompressCompressedBackupContent(_ compressedFullBackupData: Data) async throws -> Data { diff --git a/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvChannel.swift b/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvChannel.swift index 4e493604..f046d067 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvChannel.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvChannel.swift @@ -30,7 +30,7 @@ protocol ObvChannel { var cryptoSuiteVersion: SuiteVersion { get } /// The returned set contains all the crypto identities to which the `message` was successfully posted. - static func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> [MessageIdentifier: Set] + static func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> [ObvMessageIdentifier: Set] static func acceptableChannelsForPosting(_ message: ObvChannelMessageToSend, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> [ObvChannel] @@ -84,7 +84,7 @@ extension ObvNetworkChannel { } - static func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> [MessageIdentifier: Set] { + static func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> [ObvMessageIdentifier: Set] { let log = OSLog(subsystem: delegateManager.logSubsystem, category: "ObvNetworkChannel") diff --git a/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvLocalChannel.swift b/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvLocalChannel.swift index 31d1fe31..e56bccbd 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvLocalChannel.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvLocalChannel.swift @@ -43,7 +43,7 @@ final class ObvLocalChannel: ObvChannel { self.ownedIdentity = ownedIdentity } - private func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> MessageIdentifier { + private func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> ObvMessageIdentifier { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ObvLocalChannel.logCategory) @@ -75,7 +75,7 @@ final class ObvLocalChannel: ObvChannel { } let randomUid = UID.gen(with: prng) - let messageId = MessageIdentifier(ownedCryptoIdentity: ownedIdentity, uid: randomUid) // For a local message, to toIdentity is also the from (owned) identity + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: ownedIdentity, uid: randomUid) // For a local message, to toIdentity is also the from (owned) identity let receivedMessage = ObvProtocolReceivedMessage(messageId: messageId, timestamp: message.timestamp, @@ -117,7 +117,7 @@ final class ObvLocalChannel: ObvChannel { try protocolDelegate.process(receivedMessage, within: obvContext) let randomUid = UID.gen(with: prng) - let messageId = MessageIdentifier(ownedCryptoIdentity: ownedIdentity, uid: randomUid) // For a local message, to toIdentity is also the from (owned) identity + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: ownedIdentity, uid: randomUid) // For a local message, to toIdentity is also the from (owned) identity return messageId @@ -138,7 +138,7 @@ final class ObvLocalChannel: ObvChannel { try protocolDelegate.process(receivedMessage, within: obvContext) let randomUid = UID.gen(with: prng) - let messageId = MessageIdentifier(ownedCryptoIdentity: ownedIdentity, uid: randomUid) // For a local message, to toIdentity is also the from (owned) identity + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: ownedIdentity, uid: randomUid) // For a local message, to toIdentity is also the from (owned) identity return messageId @@ -168,7 +168,9 @@ extension ObvLocalChannel { throw ObvLocalChannel.makeError(message: "Wrong message type") } - guard try identityDelegate.isOwned(ownedIdentity, within: obvContext) else { + // We check that the identity is owned, or that its server is the fake server used for ephemeral identities during the owned identity transfer protocol + + guard try identityDelegate.isOwned(ownedIdentity, within: obvContext) || ownedIdentity.serverURL == ObvConstants.ephemeralIdentityServerURL else { os_log("Cannot send local message to an identity that is not owned", log: log, type: .error) throw ObvLocalChannel.makeError(message: "Cannot send local message to an identity that is not owned") } @@ -183,7 +185,7 @@ extension ObvLocalChannel { return acceptableChannels } - static func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> [MessageIdentifier: Set] { + static func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> [ObvMessageIdentifier: Set] { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ObvLocalChannel.logCategory) diff --git a/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvServerChannel.swift b/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvServerChannel.swift index 98b00b61..a6de2ecf 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvServerChannel.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvServerChannel.swift @@ -47,7 +47,7 @@ final class ObvServerChannel: ObvChannel { // MARK: - Implementing ObvChannel extension ObvServerChannel { - private func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> MessageIdentifier { + private func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> ObvMessageIdentifier { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ObvServerChannel.logCategory) @@ -91,6 +91,26 @@ extension ObvServerChannel { serverQueryType = .updateGroupBlob(groupIdentifier: groupIdentifier, encodedServerAdminPublicKey: encodedServerAdminPublicKey, encryptedBlob: encryptedBlob, lockNonce: lockNonce, signature: signature) case .getKeycloakData(serverURL: let serverURL, serverLabel: let serverLabel): serverQueryType = .getKeycloakData(serverURL: serverURL, serverLabel: serverLabel) + case .ownedDeviceDiscovery: + serverQueryType = .ownedDeviceDiscovery + case .setOwnedDeviceName(ownedDeviceUID: let ownedDeviceUID, encryptedOwnedDeviceName: let encryptedOwnedDeviceName, isCurrentDevice: let isCurrentDevice): + serverQueryType = .setOwnedDeviceName(ownedDeviceUID: ownedDeviceUID, encryptedOwnedDeviceName: encryptedOwnedDeviceName, isCurrentDevice: isCurrentDevice) + case .deactivateOwnedDevice(ownedDeviceUID: let ownedDeviceUID, isCurrentDevice: let isCurrentDevice): + serverQueryType = .deactivateOwnedDevice(ownedDeviceUID: ownedDeviceUID, isCurrentDevice: isCurrentDevice) + case .setUnexpiringOwnedDevice(ownedDeviceUID: let ownedDeviceUID): + serverQueryType = .setUnexpiringOwnedDevice(ownedDeviceUID: ownedDeviceUID) + case .sourceGetSessionNumber(protocolInstanceUID: let protocolInstanceUID): + serverQueryType = .sourceGetSessionNumber(protocolInstanceUID: protocolInstanceUID) + case .sourceWaitForTargetConnection(protocolInstanceUID: let protocolInstanceUID): + serverQueryType = .sourceWaitForTargetConnection(protocolInstanceUID: protocolInstanceUID) + case .targetSendEphemeralIdentity(protocolInstanceUID: let protocolInstanceUID, transferSessionNumber: let transferSessionNumber, payload: let payload): + serverQueryType = .targetSendEphemeralIdentity(protocolInstanceUID: protocolInstanceUID, transferSessionNumber: transferSessionNumber, payload: payload) + case .transferRelay(protocolInstanceUID: let protocolInstanceUID, connectionIdentifier: let connectionIdentifier, payload: let payload, thenCloseWebSocket: let thenCloseWebSocket): + serverQueryType = .transferRelay(protocolInstanceUID: protocolInstanceUID, connectionIdentifier: connectionIdentifier, payload: payload, thenCloseWebSocket: thenCloseWebSocket) + case .transferWait(protocolInstanceUID: let protocolInstanceUID, connectionIdentifier: let connectionIdentifier): + serverQueryType = .transferWait(protocolInstanceUID: protocolInstanceUID, connectionIdentifier: connectionIdentifier) + case .closeWebsocketConnection(protocolInstanceUID: let protocolInstanceUID): + serverQueryType = .closeWebsocketConnection(protocolInstanceUID: protocolInstanceUID) } let serverQuery = ServerQuery(ownedIdentity: ownedIdentity, queryType: serverQueryType, encodedElements: message.encodedElements) @@ -98,7 +118,7 @@ extension ObvServerChannel { networkFetchDelegate.postServerQuery(serverQuery, within: obvContext) let randomUid = UID.gen(with: prng) - let messageId = MessageIdentifier(ownedCryptoIdentity: ownedIdentity, uid: randomUid) + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: ownedIdentity, uid: randomUid) return messageId @@ -127,8 +147,9 @@ extension ObvServerChannel { guard message.messageType == .ServerQuery else { throw ObvServerChannel.makeError(message: "Wrong message type") } - - if try identityDelegate.isOwned(ownedIdentity, within: obvContext) { + + /// We check that the identity is owned. On some occasions (like in the owned identity transfer protocol), we can use ephemeral owned identities + if try identityDelegate.isOwned(ownedIdentity, within: obvContext) || message.channelType.fromOwnedIdentity.serverURL == ObvConstants.ephemeralIdentityServerURL { acceptableChannels = [ObvServerChannel(ownedIdentity: ownedIdentity)] } else { assertionFailure() @@ -145,7 +166,7 @@ extension ObvServerChannel { } - static func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> [MessageIdentifier: Set] { + static func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> [ObvMessageIdentifier: Set] { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ObvServerChannel.logCategory) diff --git a/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvUserInterfaceChannel.swift b/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvUserInterfaceChannel.swift index 72214e07..0aaedeb8 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvUserInterfaceChannel.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/ChannelTypes/ObvUserInterfaceChannel.swift @@ -44,7 +44,7 @@ final class ObvUserInterfaceChannel: ObvChannel { self.toOwnedIdentity = toOwnedIdentity } - private func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> MessageIdentifier { + private func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> ObvMessageIdentifier { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ObvUserInterfaceChannel.logCategory) @@ -67,7 +67,7 @@ final class ObvUserInterfaceChannel: ObvChannel { try obvUserInterfaceChannelDelegate.newUserDialogToPresent(obvChannelDialogMessageToSend: message, within: obvContext) let randomUid = UID.gen(with: prng) - let messageId = MessageIdentifier(ownedCryptoIdentity: toOwnedIdentity, uid: randomUid) + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: toOwnedIdentity, uid: randomUid) return messageId @@ -121,7 +121,7 @@ extension ObvUserInterfaceChannel { } - static func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> [MessageIdentifier: Set] { + static func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, delegateManager: ObvChannelDelegateManager, within obvContext: ObvContext) throws -> [ObvMessageIdentifier: Set] { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ObvUserInterfaceChannel.logCategory) diff --git a/Engine/ObvChannelManager/ObvChannelManager/Coordinators/NetworkReceivedMessageDecryptor.swift b/Engine/ObvChannelManager/ObvChannelManager/Coordinators/NetworkReceivedMessageDecryptor.swift index 425e61b5..fdfde72f 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/Coordinators/NetworkReceivedMessageDecryptor.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/Coordinators/NetworkReceivedMessageDecryptor.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -38,7 +38,9 @@ final class NetworkReceivedMessageDecryptor: NetworkReceivedMessageDecryptorDele } + // MARK: Implementing ObvNetworkReceivedMessageDecryptorDelegate + extension NetworkReceivedMessageDecryptor { // This method only succeeds if the ObvNetworkReceivedMessageEncrypted actually is an Application message. It is typically used when decrypting Application's User Notifications sent through APNS. @@ -67,7 +69,7 @@ extension NetworkReceivedMessageDecryptor { /// This method is called on each new received message. - func decryptAndProcess(_ receivedMessage: ObvNetworkReceivedMessageEncrypted, within obvContext: ObvContext) throws { + func decryptAndProcessNetworkReceivedMessageEncrypted(_ receivedMessage: ObvNetworkReceivedMessageEncrypted, within obvContext: ObvContext) throws { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvChannelDelegateManager.defaultLogSubsystem, category: NetworkReceivedMessageDecryptor.logCategory) @@ -99,7 +101,7 @@ extension NetworkReceivedMessageDecryptor { os_log("🔑 A received wrapped key was decrypted using an Asymmetric Channel", log: log, type: .debug) decryptAndProcess(receivedMessage, with: messageKey, channelType: channelInfo, within: obvContext) } else { - os_log("🔑 The received message %@ could not be decrypted", log: log, type: .error, receivedMessage.messageId.debugDescription) + os_log("🔑 The received message %@ could not be decrypted", log: log, type: .fault, receivedMessage.messageId.debugDescription) networkFetchDelegate.deleteMessageAndAttachments(messageId: receivedMessage.messageId, within: obvContext) } diff --git a/Engine/ObvChannelManager/ObvChannelManager/Coordinators/ObliviousChannelLifeManager.swift b/Engine/ObvChannelManager/ObvChannelManager/Coordinators/ObliviousChannelLifeManager.swift index eb8227c8..a0e9e436 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/Coordinators/ObliviousChannelLifeManager.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/Coordinators/ObliviousChannelLifeManager.swift @@ -240,6 +240,19 @@ extension ObliviousChannelLifeManager { } + + public func anObliviousChannelExistsBetweenCurrentDeviceUid(_ currentDeviceUid: UID, andRemoteDeviceUid remoteDeviceUid: UID, of remoteIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool { + + let channel = try ObvObliviousChannel.get(currentDeviceUid: currentDeviceUid, + remoteCryptoIdentity: remoteIdentity, + remoteDeviceUid: remoteDeviceUid, + necessarilyConfirmed: false, + within: obvContext) + return channel != nil + + } + + public func aConfirmedObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ObvCryptoIdentity, andRemoteIdentity remoteIdentity: ObvCryptoIdentity, withRemoteDeviceUid remoteDeviceUid: UID, within obvContext: ObvContext) throws -> Bool { guard let delegateManager = delegateManager else { diff --git a/Engine/ObvChannelManager/ObvChannelManager/Core Data/ObvObliviousChannel.swift b/Engine/ObvChannelManager/ObvChannelManager/Core Data/ObvObliviousChannel.swift index c25f885f..dcf87f64 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/Core Data/ObvObliviousChannel.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/Core Data/ObvObliviousChannel.swift @@ -51,7 +51,7 @@ final class ObvObliviousChannel: NSManagedObject, ObvManagedObject, ObvNetworkCh // MARK: General Attributes and Properties @NSManaged private(set) var currentDeviceUid: UID // Part of primary key - @NSManaged private(set) var remoteCryptoIdentity: ObvCryptoIdentity // Part of primary key + @NSManaged private(set) var remoteCryptoIdentity: ObvCryptoIdentity // Part of primary key (may be an owned identity) @NSManaged private(set) var remoteDeviceUid: UID // Part of primary key private(set) var isConfirmed: Bool { @@ -368,31 +368,54 @@ final class ObvObliviousChannel: NSManagedObject, ObvManagedObject, ObvNetworkCh // MARK: - Convenience DB getters extension ObvObliviousChannel { + struct Predicate { + enum Key: String { + case currentDeviceUid = "currentDeviceUid" + case remoteCryptoIdentity = "remoteCryptoIdentity" + case remoteDeviceUid = "remoteDeviceUid" + case isConfirmed = "isConfirmed" + } + static func withCurrentDeviceUid(_ currentDeviceUid: UID) -> NSPredicate { + NSPredicate(format: "%K == %@", Key.currentDeviceUid.rawValue, currentDeviceUid) + } + static func withRemoteCryptoIdentity(_ remoteCryptoIdentity: ObvCryptoIdentity) -> NSPredicate { + NSPredicate(format: "%K == %@", Key.remoteCryptoIdentity.rawValue, remoteCryptoIdentity) + } + static func withRemoteDeviceUid(_ remoteDeviceUid: UID) -> NSPredicate { + NSPredicate(format: "%K == %@", Key.remoteDeviceUid.rawValue, remoteDeviceUid) + } + static func withRemoteDeviceUid(in remoteDeviceUids: [UID]) -> NSPredicate { + NSPredicate(format: "%K IN %@", Key.remoteDeviceUid.rawValue, remoteDeviceUids) + } + static func whereIsConfirmed(is isConfirmed: Bool) -> NSPredicate { + NSPredicate(Key.isConfirmed, is: isConfirmed) + } + } + @nonobjc class func fetchRequest() -> NSFetchRequest { return NSFetchRequest(entityName: ObvObliviousChannel.entityName) } + /// This method returns an ObvObliviousChannel if one is found. static func get(currentDeviceUid: UID, remoteCryptoIdentity: ObvCryptoIdentity, remoteDeviceUid: UID, necessarilyConfirmed: Bool, within obvContext: ObvContext) throws -> ObvObliviousChannel? { let request: NSFetchRequest = ObvObliviousChannel.fetchRequest() + var allPredicates: [NSPredicate] = [ + Predicate.withCurrentDeviceUid(currentDeviceUid), + Predicate.withRemoteCryptoIdentity(remoteCryptoIdentity), + Predicate.withRemoteDeviceUid(remoteDeviceUid) + ] if necessarilyConfirmed { - request.predicate = NSPredicate(format: "%K == %@ AND %K == %@ AND %K == %@ AND %K == %@", - currentDeviceUidKey, currentDeviceUid, - remoteCryptoIdentityKey, remoteCryptoIdentity, - remoteDeviceUidKey, remoteDeviceUid, - isConfirmedKey, NSNumber(value: true)) - } else { - request.predicate = NSPredicate(format: "%K == %@ AND %K == %@ AND %K == %@", - currentDeviceUidKey, currentDeviceUid, - remoteCryptoIdentityKey, remoteCryptoIdentity, - remoteDeviceUidKey, remoteDeviceUid) + allPredicates.append(Predicate.whereIsConfirmed(is: true)) } + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: allPredicates) request.fetchLimit = 1 let item = (try obvContext.fetch(request)).first item?.obvContext = obvContext return item } + static func get(objectID: NSManagedObjectID, within obvContext: ObvContext) throws -> ObvObliviousChannel? { let request: NSFetchRequest = ObvObliviousChannel.fetchRequest() request.predicate = NSPredicate(format: "self == %@", objectID) @@ -402,21 +425,21 @@ extension ObvObliviousChannel { return item } + /// This method returns an array of ObvObliviousChannels. static func get(currentDeviceUid: UID, remoteCryptoIdentity: ObvCryptoIdentity, remoteDeviceUids: [UID], necessarilyConfirmed: Bool, within obvContext: ObvContext) throws -> [ObvObliviousChannel] { let request: NSFetchRequest = ObvObliviousChannel.fetchRequest() + + var allPredicates: [NSPredicate] = [ + Predicate.withCurrentDeviceUid(currentDeviceUid), + Predicate.withRemoteCryptoIdentity(remoteCryptoIdentity), + Predicate.withRemoteDeviceUid(in: remoteDeviceUids), + ] if necessarilyConfirmed { - request.predicate = NSPredicate(format: "%K == %@ AND %K == %@ AND %K IN %@ AND %K == %@", - currentDeviceUidKey, currentDeviceUid, - remoteCryptoIdentityKey, remoteCryptoIdentity, - remoteDeviceUidKey, remoteDeviceUids, - isConfirmedKey, NSNumber(value: true)) - } else { - request.predicate = NSPredicate(format: "%K == %@ AND %K == %@ AND %K IN %@", - currentDeviceUidKey, currentDeviceUid, - remoteCryptoIdentityKey, remoteCryptoIdentity, - remoteDeviceUidKey, remoteDeviceUids) + allPredicates.append(Predicate.whereIsConfirmed(is: true)) } + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: allPredicates) + request.fetchLimit = remoteDeviceUids.count let items = try obvContext.fetch(request) return items.map { $0.obvContext = obvContext; return $0 } } @@ -425,10 +448,12 @@ extension ObvObliviousChannel { /// This method returns an array of ObvObliviousChannels. static func getAllConfirmedChannels(currentDeviceUid: UID, remoteCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> [ObvObliviousChannel] { let request: NSFetchRequest = ObvObliviousChannel.fetchRequest() - request.predicate = NSPredicate(format: "%K == %@ AND %K == %@ AND %K == %@", - currentDeviceUidKey, currentDeviceUid, - remoteCryptoIdentityKey, remoteCryptoIdentity, - isConfirmedKey, NSNumber(value: true)) + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withCurrentDeviceUid(currentDeviceUid), + Predicate.withRemoteCryptoIdentity(remoteCryptoIdentity), + Predicate.whereIsConfirmed(is: true), + ]) + request.fetchBatchSize = 1_000 let items = try obvContext.fetch(request) return items.map { $0.obvContext = obvContext; return $0 } } @@ -443,9 +468,10 @@ extension ObvObliviousChannel { static func delete(currentDeviceUid: UID, remoteCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { let request: NSFetchRequest = ObvObliviousChannel.fetchRequest() - request.predicate = NSPredicate(format: "%K == %@ AND %K == %@", - currentDeviceUidKey, currentDeviceUid, - remoteCryptoIdentityKey, remoteCryptoIdentity) + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withCurrentDeviceUid(currentDeviceUid), + Predicate.withRemoteCryptoIdentity(remoteCryptoIdentity), + ]) let channels = try obvContext.fetch(request) for channel in channels { channel.obvContext = obvContext @@ -456,10 +482,11 @@ extension ObvObliviousChannel { static func delete(currentDeviceUid: UID, remoteDeviceUid: UID, remoteIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { let request: NSFetchRequest = ObvObliviousChannel.fetchRequest() - request.predicate = NSPredicate(format: "%K == %@ AND %K == %@ AND %K == %@", - currentDeviceUidKey, currentDeviceUid, - remoteDeviceUidKey, remoteDeviceUid, - remoteCryptoIdentityKey, remoteIdentity) + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withCurrentDeviceUid(currentDeviceUid), + Predicate.withRemoteDeviceUid(remoteDeviceUid), + Predicate.withRemoteCryptoIdentity(remoteIdentity), + ]) let channels = try obvContext.fetch(request) for channel in channels { channel.obvContext = obvContext @@ -468,19 +495,6 @@ extension ObvObliviousChannel { } - static func getContactCryptoIdentitiesOfEstablishedChannels(withTheCurrentDeviceUid currentDeviceUid: UID, ofTheOwnedIdentity ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) -> Set? { - let request: NSFetchRequest = ObvObliviousChannel.fetchRequest() - request.predicate = NSPredicate(format: "%K == %@ AND %K != %@ AND %K == %@", - currentDeviceUidKey, currentDeviceUid, - remoteCryptoIdentityKey, ownedIdentity, - isConfirmedKey, NSNumber(value: true)) - guard let items = try? obvContext.fetch(request) else { return nil } - _ = items.map { $0.obvContext = obvContext } - let identities = items.map { $0.remoteCryptoIdentity } - return Set(identities) - } - - static func getAllKnownRemoteDeviceUids(within obvContext: ObvContext) throws -> Set { let request: NSFetchRequest = ObvObliviousChannel.fetchRequest() let items = try obvContext.fetch(request) @@ -493,7 +507,7 @@ extension ObvObliviousChannel { static func deleteAllObliviousChannelsForCurrentDeviceUid(_ currentDeviceUid: UID, within obvContext: ObvContext) throws { let request: NSFetchRequest = ObvObliviousChannel.fetchRequest() request.fetchBatchSize = 500 - request.predicate = NSPredicate(format: "%K == %@", currentDeviceUidKey, currentDeviceUid) + request.predicate = Predicate.withCurrentDeviceUid(currentDeviceUid) request.propertiesToFetch = [] let channels = try obvContext.fetch(request) for channel in channels { @@ -563,36 +577,41 @@ extension ObvObliviousChannel { case .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: let contactIdentities, fromOwnedIdentity: let ownedIdentity): - let channels: [[ObvObliviousChannel]] = try contactIdentities.compactMap { (contactIdentity) in - guard let remoteDeviceUids = try? identityDelegate.getDeviceUidsOfContactIdentity(contactIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) else { - os_log("Could not determine the device uids of one of the recipient (4)", log: log, type: .error) - return nil - } - let channels = try ObvObliviousChannel.getAcceptableObliviousChannels(from: ownedIdentity, - to: contactIdentity, - remoteDeviceUids: Array(remoteDeviceUids), - necessarilyConfirmed: true, - within: obvContext) - return channels - } - acceptableChannels = channels.reduce([ObvObliviousChannel]()) { (array, channels) in - return array + channels - } + let acceptableChannelsWithContacts = try Self.getAcceptableChannelsWithContacts( + contactIdentities: contactIdentities, + identityDelegate: identityDelegate, + ownedIdentity: ownedIdentity, + log: log, + within: obvContext) + + acceptableChannels = acceptableChannelsWithContacts case .AllConfirmedObliviousChannelsWithOtherDevicesOfOwnedIdentity(ownedIdentity: let ownedIdentity): - guard try identityDelegate.isOwned(ownedIdentity, within: obvContext) else { - throw ObvObliviousChannel.makeError(message: "Identity is not owned") - } - let remoteDeviceUids = try identityDelegate.getDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) - let channels = try ObvObliviousChannel.getAcceptableObliviousChannels(from: ownedIdentity, - to: ownedIdentity, - remoteDeviceUids: Array(remoteDeviceUids), - necessarilyConfirmed: true, - within: obvContext) - acceptableChannels = channels + + let acceptableChannelsWithOtherOwnedDevices = try Self.getAcceptableChannelsWithOtherOwnedDevices( + ownedIdentity: ownedIdentity, + identityDelegate: identityDelegate, + within: obvContext) + + acceptableChannels = acceptableChannelsWithOtherOwnedDevices + case .AllConfirmedObliviousChannelsWithContactIdentitiesAndWithOtherDevicesOfOwnedIdentity(contactIdentities: let contactIdentities, fromOwnedIdentity: let ownedIdentity): + let acceptableChannelsWithContacts = try Self.getAcceptableChannelsWithContacts( + contactIdentities: contactIdentities, + identityDelegate: identityDelegate, + ownedIdentity: ownedIdentity, + log: log, + within: obvContext) + + let acceptableChannelsWithOtherOwnedDevices = try Self.getAcceptableChannelsWithOtherOwnedDevices( + ownedIdentity: ownedIdentity, + identityDelegate: identityDelegate, + within: obvContext) + + acceptableChannels = acceptableChannelsWithContacts + acceptableChannelsWithOtherOwnedDevices + case .AsymmetricChannel, .AsymmetricChannelBroadcast, .Local, @@ -605,6 +624,48 @@ extension ObvObliviousChannel { return acceptableChannels } + + + /// Helper methods for ``static ObvObliviousChannel.acceptableChannelsForPosting(_:delegateManager:within:)`` + private static func getAcceptableChannelsWithContacts(contactIdentities: Set, identityDelegate: ObvIdentityDelegate, ownedIdentity: ObvCryptoIdentity, log: OSLog, within obvContext: ObvContext) throws -> [ObvObliviousChannel] { + + let channelsWithContacts: [[ObvObliviousChannel]] = try contactIdentities.compactMap { (contactIdentity) in + guard let remoteDeviceUids = try? identityDelegate.getDeviceUidsOfContactIdentity(contactIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) else { + os_log("Could not determine the device uids of one of the recipient", log: log, type: .fault) + return nil + } + let channels = try ObvObliviousChannel.getAcceptableObliviousChannels(from: ownedIdentity, + to: contactIdentity, + remoteDeviceUids: Array(remoteDeviceUids), + necessarilyConfirmed: true, + within: obvContext) + return channels + } + let acceptableChannelsWithContacts = channelsWithContacts.reduce([ObvObliviousChannel]()) { (array, channels) in + return array + channels + } + + return acceptableChannelsWithContacts + + } + + + /// Helper methods for ``static ObvObliviousChannel.acceptableChannelsForPosting(_:delegateManager:within:)`` + private static func getAcceptableChannelsWithOtherOwnedDevices(ownedIdentity: ObvCryptoIdentity, identityDelegate: ObvIdentityDelegate, within obvContext: ObvContext) throws -> [ObvObliviousChannel] { + + guard try identityDelegate.isOwned(ownedIdentity, within: obvContext) else { + throw ObvObliviousChannel.makeError(message: "Identity is not owned") + } + let remoteDeviceUids = try identityDelegate.getDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) + let acceptableChannelsWithOtherOwnedDevices = try ObvObliviousChannel.getAcceptableObliviousChannels(from: ownedIdentity, + to: ownedIdentity, + remoteDeviceUids: Array(remoteDeviceUids), + necessarilyConfirmed: true, + within: obvContext) + + return acceptableChannelsWithOtherOwnedDevices + + } private static func getAcceptableObliviousChannels(from ownedIdentity: ObvCryptoIdentity, to remoteCryptoIdentity: ObvCryptoIdentity, remoteDeviceUids: [UID], necessarilyConfirmed: Bool, within obvContext: ObvContext) throws -> [ObvObliviousChannel] { diff --git a/Engine/ObvChannelManager/ObvChannelManager/Internal Delegates/NetworkReceivedMessageDecryptorDelegate.swift b/Engine/ObvChannelManager/ObvChannelManager/Internal Delegates/NetworkReceivedMessageDecryptorDelegate.swift index 2a4f8436..7181de65 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/Internal Delegates/NetworkReceivedMessageDecryptorDelegate.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/Internal Delegates/NetworkReceivedMessageDecryptorDelegate.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,6 @@ import ObvTypes import OlvidUtils protocol NetworkReceivedMessageDecryptorDelegate { - func decryptAndProcess(_ receivedMessage: ObvNetworkReceivedMessageEncrypted, within obvContext: ObvContext) throws + func decryptAndProcessNetworkReceivedMessageEncrypted(_ receivedMessage: ObvNetworkReceivedMessageEncrypted, within obvContext: ObvContext) throws func decrypt(_ receivedMessage: ObvNetworkReceivedMessageEncrypted, within obvContext: ObvContext) throws -> ReceivedApplicationMessage } diff --git a/Engine/ObvChannelManager/ObvChannelManager/Internal Delegates/ObliviousChannelLifeDelegate.swift b/Engine/ObvChannelManager/ObvChannelManager/Internal Delegates/ObliviousChannelLifeDelegate.swift index dfc87a49..3f2d6ff5 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/Internal Delegates/ObliviousChannelLifeDelegate.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/Internal Delegates/ObliviousChannelLifeDelegate.swift @@ -43,6 +43,8 @@ protocol ObliviousChannelLifeDelegate { func anObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ObvCryptoIdentity, andRemoteIdentity: ObvCryptoIdentity, withRemoteDeviceUid: UID, within: ObvContext) throws -> Bool + func anObliviousChannelExistsBetweenCurrentDeviceUid(_ currentDeviceUid: UID, andRemoteDeviceUid remoteDeviceUid: UID, of remoteIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool + func aConfirmedObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ObvCryptoIdentity, andRemoteIdentity: ObvCryptoIdentity, withRemoteDeviceUid: UID, within: ObvContext) throws -> Bool func aConfirmedObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ObvCryptoIdentity, andRemoteIdentity: ObvCryptoIdentity, within: ObvContext) throws -> Bool diff --git a/Engine/ObvChannelManager/ObvChannelManager/MessageTypes/ObvChannelReceivedMessage.swift b/Engine/ObvChannelManager/ObvChannelManager/MessageTypes/ObvChannelReceivedMessage.swift index 0a109e3e..a6f3c011 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/MessageTypes/ObvChannelReceivedMessage.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/MessageTypes/ObvChannelReceivedMessage.swift @@ -32,7 +32,7 @@ struct ReceivedMessage { let extendedMessagePayload: Data? // Available only when the message was received in a notification. Not available during a "normal" reception as the extended payload is downloaded asynchronously private let message: ObvNetworkReceivedMessageEncrypted - var messageId: MessageIdentifier { return message.messageId } + var messageId: ObvMessageIdentifier { return message.messageId } var knownAttachmentCount: Int? { return message.knownAttachmentCount } var messageUploadTimestampFromServer: Date { return message.messageUploadTimestampFromServer } @@ -92,7 +92,7 @@ struct ReceivedApplicationMessage { let messagePayload: Data let attachmentsInfos: [ObvNetworkFetchAttachmentInfos] - var messageId: MessageIdentifier { return message.messageId } + var messageId: ObvMessageIdentifier { return message.messageId } var extendedMessagePayloadKey: AuthenticatedEncryptionKey? { message.extendedMessagePayloadKey } var extendedMessagePayload: Data? { message.extendedMessagePayload } diff --git a/Engine/ObvChannelManager/ObvChannelManager/MessageTypes/ObvNetworkReceivedMessageDecrypted+Extension.swift b/Engine/ObvChannelManager/ObvChannelManager/MessageTypes/ObvNetworkReceivedMessageDecrypted+Extension.swift index 4d6c9ba9..4f8cb850 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/MessageTypes/ObvNetworkReceivedMessageDecrypted+Extension.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/MessageTypes/ObvNetworkReceivedMessageDecrypted+Extension.swift @@ -18,6 +18,7 @@ */ import Foundation +import ObvTypes import ObvMetaManager @@ -26,7 +27,7 @@ extension ObvNetworkReceivedMessageDecrypted { init(with message: ReceivedApplicationMessage, messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, localDownloadTimestamp: Date) { let attachmentIds = message.attachmentsInfos.enumerated().map { - AttachmentIdentifier(messageId: message.messageId, attachmentNumber: $0.offset) + ObvAttachmentIdentifier(messageId: message.messageId, attachmentNumber: $0.offset) } self = ObvNetworkReceivedMessageDecrypted(messageId: message.messageId, attachmentIds: attachmentIds, diff --git a/Engine/ObvChannelManager/ObvChannelManager/ObvChannelManagerImplementation.swift b/Engine/ObvChannelManager/ObvChannelManager/ObvChannelManagerImplementation.swift index 83ff8066..65f6e246 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/ObvChannelManagerImplementation.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/ObvChannelManagerImplementation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -193,7 +193,7 @@ extension ObvChannelManagerImplementation { for encryptedMessage in messages { do { - try delegateManager.networkReceivedMessageDecryptorDelegate.decryptAndProcess(encryptedMessage, within: obvContext) + try delegateManager.networkReceivedMessageDecryptorDelegate.decryptAndProcessNetworkReceivedMessageEncrypted(encryptedMessage, within: obvContext) } catch { os_log("Failed to decrypt and process an encrypted message", log: log, type: .fault) assertionFailure() @@ -220,11 +220,11 @@ extension ObvChannelManagerImplementation { // MARK: - ObvChannelDelegate extension ObvChannelManagerImplementation { - + // MARK: Posting a message - public func post(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, within obvContext: ObvContext) throws -> [MessageIdentifier: Set] { + public func postChannelMessage(_ message: ObvChannelMessageToSend, randomizedWith prng: PRNGService, within obvContext: ObvContext) throws -> [ObvMessageIdentifier: Set] { assert(!Thread.isMainThread) os_log("Posting a message within obvContext: %{public}@", log: log, type: .info, obvContext.name) debugPrint("🚨 Posting a message within obvContext: \(obvContext.name)") @@ -238,7 +238,7 @@ extension ObvChannelManagerImplementation { // MARK: Decrypting a message - + // This method only succeeds if the ObvNetworkReceivedMessageEncrypted actually is an Application message. It is typically used when decrypting Application's User Notifications sent through APNS. public func decrypt(_ receivedMessage: ObvNetworkReceivedMessageEncrypted, within flowId: FlowIdentifier) throws -> ObvNetworkReceivedMessageDecrypted { guard let contextCreator = self.contextCreator else { @@ -262,7 +262,7 @@ extension ObvChannelManagerImplementation { downloadTimestampFromServer: receivedMessage.downloadTimestampFromServer, localDownloadTimestamp: receivedMessage.localDownloadTimestamp) } - + // MARK: Oblivious Channels management @@ -271,7 +271,7 @@ extension ObvChannelManagerImplementation { try gateKeeper.waitUntilSlotIsAvailableForObvContext(obvContext) try delegateManager.obliviousChannelLifeDelegate.deleteObliviousChannelBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, andTheRemoteDeviceWithUid: remoteDeviceUid, ofRemoteIdentity: remoteIdentity, within: obvContext) } - + public func deleteObliviousChannelBetweenCurentDeviceWithUid(currentDeviceUid: UID, andTheRemoteDeviceWithUid remoteDeviceUid: UID, ofRemoteIdentity remoteIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { os_log("🚗 deleteObliviousChannelBetweenCurentDeviceWithUid", log: log, type: .info) @@ -285,7 +285,7 @@ extension ObvChannelManagerImplementation { try gateKeeper.waitUntilSlotIsAvailableForObvContext(obvContext) try delegateManager.obliviousChannelLifeDelegate.deleteAllObliviousChannelsBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, andTheDevicesOfContactIdentity: contactIdentity, within: obvContext) } - + public func createObliviousChannelBetweenTheCurrentDeviceOf(ownedIdentity: ObvCryptoIdentity, andRemoteIdentity remoteCryptoIdentity: ObvCryptoIdentity, withRemoteDeviceUid remoteDeviceUid: UID, with seed: Seed, cryptoSuiteVersion: Int, within obvContext: ObvContext) throws { try gateKeeper.waitUntilSlotIsAvailableForObvContext(obvContext) @@ -315,7 +315,7 @@ extension ObvChannelManagerImplementation { try gateKeeper.waitUntilSlotIsAvailableForObvContext(obvContext) return try delegateManager.obliviousChannelLifeDelegate.aConfirmedObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, andRemoteIdentity: remoteIdentity, withRemoteDeviceUid: remoteDeviceUid, within: obvContext) } - + public func anObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ObvCryptoIdentity, andRemoteIdentity remoteIdentity: ObvCryptoIdentity, withRemoteDeviceUid remoteDeviceUid: UID, within obvContext: ObvContext) throws -> Bool { try gateKeeper.waitUntilSlotIsAvailableForObvContext(obvContext) @@ -323,6 +323,12 @@ extension ObvChannelManagerImplementation { } + public func anObliviousChannelExistsBetweenCurrentDeviceUid(_ currentDeviceUid: UID, andRemoteDeviceUid remoteDeviceUid: UID, of remoteIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool { + try gateKeeper.waitUntilSlotIsAvailableForObvContext(obvContext) + return try delegateManager.obliviousChannelLifeDelegate.anObliviousChannelExistsBetweenCurrentDeviceUid(currentDeviceUid, andRemoteDeviceUid: remoteDeviceUid, of: remoteIdentity, within: obvContext) + } + + public func aConfirmedObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ObvCryptoIdentity, andRemoteIdentity remoteIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool { try gateKeeper.waitUntilSlotIsAvailableForObvContext(obvContext) return try delegateManager.obliviousChannelLifeDelegate.aConfirmedObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, andRemoteIdentity: remoteIdentity, within: obvContext) diff --git a/Engine/ObvChannelManager/ObvChannelManager/ObvChannelMessageToSendWrapper.swift b/Engine/ObvChannelManager/ObvChannelManager/ObvChannelMessageToSendWrapper.swift index 55ee27db..815d5be1 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/ObvChannelMessageToSendWrapper.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/ObvChannelMessageToSendWrapper.swift @@ -107,7 +107,7 @@ struct ObvChannelProtocolMessageToSendWrapper: ObvChannelMessageToSendWrapper { let messagesToSend: [ObvNetworkMessageToSend] = headersForServer.map { (serverURL, headersForThisServer) in let uid = UID.gen(with: prng) let ownedCryptoIdentity = self.protocolMessage.channelType.fromOwnedIdentity - let messageId = MessageIdentifier(ownedCryptoIdentity: ownedCryptoIdentity, uid: uid) + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: ownedCryptoIdentity, uid: uid) return ObvNetworkMessageToSend(messageId: messageId, encryptedContent: encryptedContent.encryptedMessagePayload, encryptedExtendedMessagePayload: encryptedContent.encryptedExtendedMessagePayload, @@ -193,7 +193,7 @@ struct ObvChannelApplicationMessageToSendWrapper: ObvChannelMessageToSendWrapper let messagesToSend: [ObvNetworkMessageToSend] = headersForServer.map { (serverURL, headersForThisServer) in let uid = UID.gen(with: prng) let ownedCryptoIdentity = self.applicationMessage.channelType.fromOwnedIdentity - let messageId = MessageIdentifier(ownedCryptoIdentity: ownedCryptoIdentity, uid: uid) + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: ownedCryptoIdentity, uid: uid) return ObvNetworkMessageToSend(messageId: messageId, encryptedContent: encryptedContent.encryptedMessagePayload, encryptedExtendedMessagePayload: encryptedContent.encryptedExtendedMessagePayload, diff --git a/Engine/ObvChannelManager/ObvChannelManager/ObvChannelSendChannelTypeExtension.swift b/Engine/ObvChannelManager/ObvChannelManager/ObvChannelSendChannelTypeExtension.swift index 20dc2c98..96d835c6 100644 --- a/Engine/ObvChannelManager/ObvChannelManager/ObvChannelSendChannelTypeExtension.swift +++ b/Engine/ObvChannelManager/ObvChannelManager/ObvChannelSendChannelTypeExtension.swift @@ -27,6 +27,7 @@ extension ObvChannelSendChannelType { switch self { case .AllConfirmedObliviousChannelsWithContactIdentities, .AllConfirmedObliviousChannelsWithOtherDevicesOfOwnedIdentity, + .AllConfirmedObliviousChannelsWithContactIdentitiesAndWithOtherDevicesOfOwnedIdentity, .ObliviousChannel: return ObvObliviousChannel.self case .AsymmetricChannel, diff --git a/Engine/ObvCrypto/ObvCrypto/ObvCryptoIdentity.swift b/Engine/ObvCrypto/ObvCrypto/ObvCryptoIdentity.swift index 53e99882..f948f789 100644 --- a/Engine/ObvCrypto/ObvCrypto/ObvCryptoIdentity.swift +++ b/Engine/ObvCrypto/ObvCrypto/ObvCryptoIdentity.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -98,23 +98,10 @@ extension ObvCryptoIdentity { } -/// Creating an UID describing an identity, computed from the public keys. This UID should not be used -/// as a long term identifier. It is typically used as an UID in operations. -extension ObvCryptoIdentity { - public var transientUid: UID { - var hash = ObvCryptoSuite.sharedInstance.hashFunction() - if hash.outputLength < UID.length { - hash = SHA256.self - } - var dataFromKeys = Data() - dataFromKeys.append(publicKeyForAuthentication.getCompactKey()) - dataFromKeys.append(publicKeyForPublicKeyEncryption.getCompactKey()) - let hashedKeys = hash.hash(dataFromKeys) - return UID(uid: hashedKeys[hashedKeys.startIndex.. Bool { guard lhs.publicKeyForAuthentication.isEqualTo(other: rhs.publicKeyForAuthentication) else { return false } @@ -133,7 +120,9 @@ extension ObvCryptoIdentity { } } -// Implementing NSCopying (this solves a bug we encoutered while using `ObvCryptoIdentity`s with Core Data) +// MARK: Implementing NSCopying + +/// This solves a bug we encoutered while using `ObvCryptoIdentity`s with Core Data extension ObvCryptoIdentity { public func copy(with zone: NSZone? = nil) -> Any { return ObvCryptoIdentity(serverURL: serverURL, diff --git a/Engine/ObvCrypto/ObvCrypto/ObvCryptoSuite.swift b/Engine/ObvCrypto/ObvCrypto/ObvCryptoSuite.swift index 951bb236..9c060b9f 100644 --- a/Engine/ObvCrypto/ObvCrypto/ObvCryptoSuite.swift +++ b/Engine/ObvCrypto/ObvCrypto/ObvCryptoSuite.swift @@ -33,7 +33,6 @@ public class ObvCryptoSuite { private let prngServices: [SuiteVersion: PRNGService.Type] private let authenticatedEncryptionPrimitives: [SuiteVersion: AuthenticatedEncryptionConcrete.Type] private let kdfPrimitives: [SuiteVersion: KDF.Type] - private let proofOfWorkEngines: [SuiteVersion: ProofOfWorkEngine.Type] private let authentications: [SuiteVersion: AuthenticationConcrete.Type] private let hashFunctions: [SuiteVersion: HashFunction.Type] private let commitmentSchemes: [SuiteVersion: Commitment.Type] @@ -49,7 +48,6 @@ public class ObvCryptoSuite { prngServices = [0: PRNGServiceWithHMACWithSHA256.self] authenticatedEncryptionPrimitives = [0: AuthenticatedEncryptionWithAES256CTRThenHMACWithSHA256.self] kdfPrimitives = [0: KDFFromPRNGWithHMACWithSHA256.self] - proofOfWorkEngines = [0: ProofOfWorkEngineSyndromeBased.self] authentications = [0: AuthenticationFromSignatureOnMDC.self] hashFunctions = [0: SHA256.self] commitmentSchemes = [0: CommitmentWithSHA256.self] @@ -98,16 +96,6 @@ public class ObvCryptoSuite { return kdf(forSuiteVersion: latestVersion)! } - // Proof of Work - - func proofOfWorkEngine(forSuiteVersion version: SuiteVersion) -> ProofOfWorkEngine.Type? { - return proofOfWorkEngines[version] - } - - public func proofOfWorkEngine() -> ProofOfWorkEngine.Type { - return proofOfWorkEngine(forSuiteVersion: latestVersion)! - } - // Authentication func authentication(forSuiteVersion version: SuiteVersion) -> AuthenticationConcrete.Type? { diff --git a/Engine/ObvCrypto/ObvCrypto/ObvOwnedCryptoIdentity.swift b/Engine/ObvCrypto/ObvCrypto/ObvOwnedCryptoIdentity.swift index 2274552c..d98ecaff 100644 --- a/Engine/ObvCrypto/ObvCrypto/ObvOwnedCryptoIdentity.swift +++ b/Engine/ObvCrypto/ObvCrypto/ObvOwnedCryptoIdentity.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -59,22 +59,16 @@ public final class ObvOwnedCryptoIdentity: NSObject, NSCopying { } } -// MARK: Create an ObvIdentity from an ObvOwnedCryptoIdentity +// MARK: Create an ObvCryptoIdentity from an ObvOwnedCryptoIdentity extension ObvOwnedCryptoIdentity { public func getObvCryptoIdentity() -> ObvCryptoIdentity { return ObvCryptoIdentity(serverURL: serverURL, publicKeyForAuthentication: publicKeyForAuthentication, publicKeyForPublicKeyEncryption: publicKeyForPublicKeyEncryption) } } -// MARK: Leverage ObvIdentity to create a UID describing an identity, computed from the public keys. This UID should not be used -/// as a long term identifier. It is typically used as an UID in operations. -extension ObvOwnedCryptoIdentity { - public var transientUid: UID { - return getObvCryptoIdentity().transientUid - } -} +// MARK: Implementing Equatable -// Implementing Equatable (replacing the NSObject default implementation) +/// Replacing the NSObject default implementation extension ObvOwnedCryptoIdentity { static func == (lhs: ObvOwnedCryptoIdentity, rhs: ObvOwnedCryptoIdentity) -> Bool { guard lhs.publicKeyForAuthentication.isEqualTo(other: rhs.publicKeyForAuthentication) else { return false } @@ -95,7 +89,9 @@ extension ObvOwnedCryptoIdentity { } } -// Implementing NSCopying (this solves a bug we encoutered while using `ObvCryptoIdentity`s with Core Data) +// MARK: Implementing NSCopying + +/// This solves a bug we encoutered while using `ObvCryptoIdentity`s with Core Data extension ObvOwnedCryptoIdentity { public func copy(with zone: NSZone? = nil) -> Any { return ObvOwnedCryptoIdentity(serverURL: serverURL, @@ -235,3 +231,19 @@ public struct ObvOwnedCryptoIdentityPrivateBackupItem: Codable, Hashable { } + + +extension ObvOwnedCryptoIdentity { + + public var snapshotItem: ObvOwnedCryptoIdentityPrivateSnapshotItem { + return ObvOwnedCryptoIdentityPrivateSnapshotItem(obvOwnedCryptoIdentity: self) + } + +} + + +/// For now, there is no difference between a `ObvOwnedCryptoIdentityPrivateSnapshotItem` and a `ObvOwnedCryptoIdentityPrivateBackupItem`. +/// If, in the future, we decide to modify a `ObvOwnedCryptoIdentityPrivateSnapshotItem`, we should *not* modify the `ObvOwnedCryptoIdentityPrivateBackupItem` struct. +/// Instead, we should copy/paste the `ObvOwnedCryptoIdentityPrivateBackupItem` implementation to define `ObvOwnedCryptoIdentityPrivateSnapshotItem` and update +/// the pasted code. +public typealias ObvOwnedCryptoIdentityPrivateSnapshotItem = ObvOwnedCryptoIdentityPrivateBackupItem diff --git a/Engine/ObvCrypto/ObvCrypto/PRNG/BackupSeed.swift b/Engine/ObvCrypto/ObvCrypto/PRNG/BackupSeed.swift index 54507c1e..5f144887 100644 --- a/Engine/ObvCrypto/ObvCrypto/PRNG/BackupSeed.swift +++ b/Engine/ObvCrypto/ObvCrypto/PRNG/BackupSeed.swift @@ -168,7 +168,7 @@ public struct BackupSeed: LosslessStringConvertible, CustomStringConvertible, Eq public struct DerivedKeysForBackup: Equatable { // Warning: Adding a local var requires updating the method required in order to implement Equatable - public let backupKeyUid: UID + public let backupKeyUid: UID // Not used for testing equality (due to a bug in the Android version of the app) public let publicKeyForEncryption: PublicKeyForPublicKeyEncryption public let privateKeyForEncryption: PrivateKeyForPublicKeyEncryption? public let macKey: MACKey @@ -195,7 +195,7 @@ public struct DerivedKeysForBackup: Equatable { } public static func == (lhs: DerivedKeysForBackup, rhs: DerivedKeysForBackup) -> Bool { - guard lhs.backupKeyUid == rhs.backupKeyUid else { return false } + // We do *not* test the equality of the backupKeyUid (due to a bug in the Android version of the app) guard lhs.publicKeyForEncryption.getCompactKey() == rhs.publicKeyForEncryption.getCompactKey() else { return false } guard lhs.macKey.data == rhs.macKey.data else { return false } return true diff --git a/Engine/ObvCrypto/ObvCrypto/ProofOfWork/ProofOfWorkColumn.swift b/Engine/ObvCrypto/ObvCrypto/ProofOfWork/ProofOfWorkColumn.swift deleted file mode 100644 index e240735d..00000000 --- a/Engine/ObvCrypto/ObvCrypto/ProofOfWork/ProofOfWorkColumn.swift +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import ObvEncoder - -struct Column { - - let indexes: [Int] // List of the matrix indexes used to compute this column - let val: [UInt64] - - init?(indexes: [Int], val: [UInt64]) { - guard val.count == ProofOfWorkEngineSyndromeBasedConstants.numberOfUInt64PerColumn else { return nil } - self.indexes = indexes - self.val = val - } - - init?(indexes: [Int], bytes: Data) { - guard bytes.count == ProofOfWorkEngineSyndromeBasedConstants.numberOfBytesPerColumn else { return nil } - self.indexes = indexes - var val = [UInt64]() - // By stride, 8 bytes at a time (i.e., 64 bits at a time) - for i in stride(from: bytes.startIndex, to: bytes.endIndex, by: 8) { - var valElement = UInt64(0) - for j in 0..<8 { - valElement ^= UInt64(bytes[i+j]) << (j*8) - } - val.append(valElement) - } - self.val = val - } - - func xor(_ other: Column) -> Column { - var xorVal = [UInt64].init(repeating: 0, count: ProofOfWorkEngineSyndromeBasedConstants.numberOfUInt64PerColumn) - for i in 0.. Bool { - return lhs.val == rhs.val - } - -} diff --git a/Engine/ObvCrypto/ObvCrypto/ProofOfWork/ProofOfWorkEngine.swift b/Engine/ObvCrypto/ObvCrypto/ProofOfWork/ProofOfWorkEngine.swift deleted file mode 100644 index a0659dd3..00000000 --- a/Engine/ObvCrypto/ObvCrypto/ProofOfWork/ProofOfWorkEngine.swift +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import ObvEncoder -import BigInt - -public protocol ProofOfWorkEngine { - static func solve(_: ObvEncoded) -> ObvEncoded? -} - -struct ProofOfWorkEngineSyndromeBasedConstants { - static let numberOfLines = 128 // Must be a multiple of 64 - static let numberOfColumns = 256 - - static var numberOfUInt64PerColumn: Int { - return numberOfLines / 64 - } - - static var numberOfBytesPerColumn: Int { - return numberOfLines / 8 - } - - static var numberOfBytesPerMatrix: Int { - return numberOfLines*numberOfColumns / 8 - } -} - -final class ProofOfWorkEngineSyndromeBased: ProofOfWorkEngine { - - static func solve(_ challenge: ObvEncoded) -> ObvEncoded? { - guard let (H, S) = decode(challenge) else { return nil } - var (setHalf, setHalfS) = computeAllPairwiseColumnsXor(of: H, alsoXoring: S) - // Removes from setHalf the columns (of this set) that aren’t also in setHalfS - setHalf.formIntersection(setHalfS) - // At this point, each column in setHalf contains two indices that are part of a solution made of 4 indices. - // We consider a arbitrary column of setHalf, and look for a column with identical value in setHalfS. - // Once found, we will deduce the 4 indices (i.e., the final solution). - guard let columnFromSetHalf = setHalf.first else { return nil } - let columnFromSetHalfS = setHalfS[setHalfS.firstIndex(of: columnFromSetHalf)!] - let indexes = (columnFromSetHalf.indexes + columnFromSetHalfS.indexes).sorted() - return encode(indexes) - } - - private static func computeAllPairwiseColumnsXor(of H: Matrix, alsoXoring S: Column) -> (Set, Set) { - let expectedNumberOfColumns = H.columns.count * (H.columns.count+1) / 2 - var pairwiseColumnXors = Set.init(minimumCapacity: expectedNumberOfColumns) - var pairwiseColumnXorsWithS = Set.init(minimumCapacity: expectedNumberOfColumns) - for i in 1.. (H: Matrix, S: Column)? { - guard let listOfEncodedElements = [ObvEncoded](challenge) else { return nil } - guard listOfEncodedElements.count == 2 else { return nil } - // Decode H - guard let seed = Seed(listOfEncodedElements[0]) else { return nil } - guard let H = Matrix(from: seed) else { return nil } - // Decode S - guard let bytesForColumnS = Data(listOfEncodedElements[1]) else { return nil } - guard let S = Column.init(indexes: [Int](), bytes: bytesForColumnS) else { return nil } - // Return - return (H, S) - } - - private static func encode(_ indexes: [Int]) -> ObvEncoded? { - let listOfEncodedIndexes = indexes.map() { $0.obvEncode() } - return listOfEncodedIndexes.obvEncode() - } - -} diff --git a/Engine/ObvCrypto/ObvCrypto/ProofOfWork/ProofOfWorkMatrix.swift b/Engine/ObvCrypto/ObvCrypto/ProofOfWork/ProofOfWorkMatrix.swift deleted file mode 100644 index 15bdb686..00000000 --- a/Engine/ObvCrypto/ObvCrypto/ProofOfWork/ProofOfWorkMatrix.swift +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation - -struct Matrix { - - let columns: [Column] - - init?(from seed: Seed) { - let PRNGType = ObvCryptoSuite.sharedInstance.concretePRNG() - let prng = PRNGType.init(with: seed) - let bytes = prng.genBytes(count: ProofOfWorkEngineSyndromeBasedConstants.numberOfBytesPerMatrix) - var columns = [Column].init() - var columnIndex = 0 - for i in stride(from: bytes.startIndex, to: bytes.endIndex, by: ProofOfWorkEngineSyndromeBasedConstants.numberOfBytesPerColumn) { - let localBytes = bytes[i.. PrivateKeyForPublicKeyEncryption { + guard let key = Self.obvDecode(encodedKey) else { assertionFailure(); throw ObvError.decodingFailed} + return key + } + enum ObvError: Error { + case decodingFailed + } } struct PrivateKeyForPublicKeyEncryptionOnEdwardsCurve: PrivateKeyForPublicKeyEncryption, PrivateKeyFromEdwardsCurveScalar { diff --git a/Engine/ObvCrypto/ObvCrypto/PublicKeyPrimitives/ServerAuthentication/PrivateKeyForAuthentication.swift b/Engine/ObvCrypto/ObvCrypto/PublicKeyPrimitives/ServerAuthentication/PrivateKeyForAuthentication.swift index 10206e07..1690926c 100644 --- a/Engine/ObvCrypto/ObvCrypto/PublicKeyPrimitives/ServerAuthentication/PrivateKeyForAuthentication.swift +++ b/Engine/ObvCrypto/ObvCrypto/PublicKeyPrimitives/ServerAuthentication/PrivateKeyForAuthentication.swift @@ -47,6 +47,13 @@ public final class PrivateKeyForAuthenticationDecoder: ObvDecoder { return PrivateKeyForAuthenticationFromSignatureOnEdwardsCurve(obvDictionary: obvDic, curveByteId: .Curve25519ByteId) } } + public static func obvDecodeOrThrow(_ encodedKey: ObvEncoded) throws -> PrivateKeyForAuthentication { + guard let key = Self.obvDecode(encodedKey) else { assertionFailure(); throw ObvError.decodingFailed} + return key + } + enum ObvError: Error { + case decodingFailed + } } struct PrivateKeyForAuthenticationFromSignatureOnEdwardsCurve: PrivateKeyForAuthentication, PrivateKeyFromEdwardsCurveScalar { diff --git a/Engine/ObvCrypto/ObvCrypto/SymmetricPrimitives/Hash.swift b/Engine/ObvCrypto/ObvCrypto/SymmetricPrimitives/Hash.swift index 192f2fd1..e1bea493 100644 --- a/Engine/ObvCrypto/ObvCrypto/SymmetricPrimitives/Hash.swift +++ b/Engine/ObvCrypto/ObvCrypto/SymmetricPrimitives/Hash.swift @@ -59,6 +59,10 @@ extension HashFunction where Self: HashFunctionBasedOnCommonCrypto { static func hash(fileAtUrl url: URL) throws -> Data { + guard FileManager.default.fileExists(atPath: url.path) else { + throw Self.makeError(message: "Hash computation failed as there is no file at the specified URL") + } + let hashFunction = Self() guard let fileStream = InputStream(fileAtPath: url.path) else { diff --git a/Engine/ObvCrypto/ObvCrypto/SymmetricPrimitives/MAC/MACKey.swift b/Engine/ObvCrypto/ObvCrypto/SymmetricPrimitives/MAC/MACKey.swift index 4266a7a9..32b658de 100644 --- a/Engine/ObvCrypto/ObvCrypto/SymmetricPrimitives/MAC/MACKey.swift +++ b/Engine/ObvCrypto/ObvCrypto/SymmetricPrimitives/MAC/MACKey.swift @@ -47,6 +47,13 @@ public final class MACKeyDecoder { return HMACWithSHA256Key(obvDictionaryOfInternalElements: obvDic) } } + public static func obvDecodeOrThrow(_ encodedKey: ObvEncoded) throws -> MACKey { + guard let key = Self.decode(encodedKey) else { assertionFailure(); throw ObvError.decodingFailed} + return key + } + enum ObvError: Error { + case decodingFailed + } } struct HMACWithSHA256Key: MACKey, Equatable { diff --git a/Engine/ObvCrypto/ObvCrypto/UID.swift b/Engine/ObvCrypto/ObvCrypto/UID.swift index 8fc7d1f2..254066f5 100644 --- a/Engine/ObvCrypto/ObvCrypto/UID.swift +++ b/Engine/ObvCrypto/ObvCrypto/UID.swift @@ -57,6 +57,17 @@ public final class UID: NSObject, NSCopying, Comparable { } +// Deterministic UUID from an UID. Should *NOT* be used for long term storage as this implementation might change anytime + +extension UID { + + public var deterministicUUID: UUID { + let bytes = [UInt8](raw) + return .init(uuid: (bytes[0], bytes[1], bytes[2], bytes[3], bytes[4], bytes[5], bytes[6], bytes[7], bytes[8], bytes[9], bytes[10], bytes[11], bytes[12], bytes[13], bytes[14], bytes[15])) + } + +} + // Implementing Comparable extension UID { diff --git a/Engine/ObvDatabaseManager/ObvDatabaseManager/DataMigrationManagerForObvEngine.swift b/Engine/ObvDatabaseManager/ObvDatabaseManager/DataMigrationManagerForObvEngine.swift index daaa4a6e..2c502807 100644 --- a/Engine/ObvDatabaseManager/ObvDatabaseManager/DataMigrationManagerForObvEngine.swift +++ b/Engine/ObvDatabaseManager/ObvDatabaseManager/DataMigrationManagerForObvEngine.swift @@ -84,9 +84,11 @@ final class DataMigrationManagerForObvEngine: DataMigrationManager URL { - let sha256 = ObvCryptoSuite.sharedInstance.hashFunctionSha256() - let directoryName = sha256.hash(messageId.rawValue).hexString() + private static func getAttachmentDirectory(withinInbox inbox: URL, messageId: ObvMessageIdentifier) -> URL { + let directoryName = messageId.directoryNameForMessageAttachments return inbox.appendingPathComponent(directoryName, isDirectory: true) } - private static func getAttachmentURL(withinInbox inbox: URL, attachmentId: AttachmentIdentifier) -> URL { + private static func getAttachmentURL(withinInbox inbox: URL, attachmentId: ObvAttachmentIdentifier) -> URL { let attachmentFileName = "\(attachmentId.attachmentNumber)" let url = InboxAttachmentToInboxAttachmentMigrationPolicyV24ToV25.getAttachmentDirectory(withinInbox: inbox, messageId: attachmentId.messageId).appendingPathComponent(attachmentFileName) return url } - private static func createAttachmentsDirectoryIfRequired(withinInbox inbox: URL, messageId: MessageIdentifier) throws { + private static func createAttachmentsDirectoryIfRequired(withinInbox inbox: URL, messageId: ObvMessageIdentifier) throws { let attachmentsDirectory = getAttachmentDirectory(withinInbox: inbox, messageId: messageId) guard !FileManager.default.fileExists(atPath: attachmentsDirectory.path) else { return } try FileManager.default.createDirectory(at: attachmentsDirectory, withIntermediateDirectories: false) } - private func createEmptyFileForWritingChunks(withinInbox inbox: URL, cleartextLength: Int, attachmentId: AttachmentIdentifier) throws { + private func createEmptyFileForWritingChunks(withinInbox inbox: URL, cleartextLength: Int, attachmentId: ObvAttachmentIdentifier) throws { let url = InboxAttachmentToInboxAttachmentMigrationPolicyV24ToV25.getAttachmentURL(withinInbox: inbox, attachmentId: attachmentId) diff --git a/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationEngineDatabase_v48_to_v49.md b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationEngineDatabase_v48_to_v49.md new file mode 100644 index 00000000..918aad78 --- /dev/null +++ b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationEngineDatabase_v48_to_v49.md @@ -0,0 +1,56 @@ +# Engine database migration from v48 to v49 + + +## ChannelCreationWithOwnedDeviceProtocolInstance - New entity + +This does not prevent lightweight migration. + + +## ContactIdentity - Modified entity + +- ++ ++ + +👉 This requires a heavyweight migration to transform the old cryptoIdentity attribute into the rawIdentity attribute. +The rawDateOfLastBootstrappedContactDeviceDiscovery is optional and requires no work. + + +## OwnedIdentity - Modified entity + +- + +👉 If set, this attribute should be copied into the ownAPIKey attribute of the associated KeycloakServer, if any. + + +## KeycloakServer - Modified entity + ++ + +👉 Although the attribute is optional, we should set it with the value found in the associated owned identity, from the (deleted) apiKey attribute. + + +## OwnedDevice - Modified entity + ++ ++ ++ + +All attributes are optional and do not prevent lightweight migration. + + +## ProtocolInstance - Modified entity + ++ + +Nothing to do here. + + +## ServerPushNotification - Deleted entity + +Nothing to do here. We drop the entries, they are now kept in memory. + + +## ServerSession - Modified entity + +We can simply drop all entries. diff --git a/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationEngineDatabase_v48_to_v49.xcmappingmodel/xcmapping.xml b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationEngineDatabase_v48_to_v49.xcmappingmodel/xcmapping.xml new file mode 100644 index 00000000..108b0480 --- /dev/null +++ b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationEngineDatabase_v48_to_v49.xcmappingmodel/xcmapping.xml @@ -0,0 +1,2139 @@ + + + + + + 134481920 + 1B4ECD1F-3D05-477B-824E-446938183FC2 + 519 + + + + NSPersistenceFrameworkVersion + 1251 + NSStoreModelVersionHashes + + XDDevAttributeMapping + + 0plcXXRN7XHKl5CcF+fwriFmUpON3ZtcI/AfK748aWc= + + XDDevEntityMapping + + qeN1Ym3TkWN1G6dU9RfX6Kd2ccEvcDVWHpd3LpLgboI= + + XDDevMappingModel + + EqtMzvRnVZWkXwBHu4VeVGy8UyoOe+bi67KC79kphlQ= + + XDDevPropertyMapping + + XN33V44TTGY4JETlMoOB5yyTKxB+u4slvDIinv0rtGA= + + XDDevRelationshipMapping + + akYY9LhehVA/mCb4ATLWuI9XGLcjpm14wWL1oEBtIcs= + + + NSStoreModelVersionHashesDigest + +Hmc2uYZK6og+Pvx5GUJ7oW75UG4V/ksQanTjfTKUnxyGWJRMtB5tIRgVwGsrd7lz/QR57++wbvWsr6nxwyS0A== + NSStoreModelVersionHashesVersion + 3 + NSStoreModelVersionIdentifiers + + + + + + + + + OutboxMessage + Undefined + 32 + OutboxMessage + 1 + + + + + + rawBackupKeyUid + + + + isActive + + + + expirationDate + + + + ownedCryptoIdentity + + + + 1 + provision + + + + rawAcknowledgerAppType + + + + 1 + publishedDetails + + + + latestGroupUpdateTimestamp + + + + extendedMessagePayload + + + + 1 + backups + + + + ContactOwnedIdentityDeletionSignatureReceived + Undefined + 18 + ContactOwnedIdentityDeletionSignatureReceived + 1 + + + + + + ContactGroupDetailsLatest + Undefined + 4 + ContactGroupDetailsLatest + 1 + + + + + + rawOwnedIdentity + + + + version + + + + 1 + trustedIdentityDetails + + + + 1 + contactIdentity + + + + 1 + obliviousChannel + + + + rawGroupUID + + + + wellKnownData + + + + 1 + ownedIdentity + + + + rawPhotoServerLabel + + + + 1 + attachment + + + + GroupV2ServerUserData + Undefined + 3 + GroupV2ServerUserData + 1 + + + + + + Provision + Undefined + 36 + Provision + 1 + + + + + + currentStateRawId + + + + isAppMessageWithUserContent + + + + photoFilename + + + + remoteCryptoIdentity + + + + expectedChunkLength + + + + rawMessageIdUid + + + + contactDeviceUid + + + + 1 + revokedIdentities + + + + fileURL + + + + token + + + + ObvObliviousChannel + Undefined + 35 + ObvObliviousChannel + 1 + + + + + + ContactGroupV2 + Undefined + 21 + ContactGroupV2 + 1 + + + + + + statusChangeTimestamp + + + + 1 + trustedDetails + + + + isDeletionInProgress + + + + latestRegistrationDate + + + + isCertifiedByOwnKeycloak + + + + 1 + protocolInstance + + + + rawMessageIdOwnedIdentity + + + + latestRevocationListTimetamp + + + + 1 + rawPendingMembers + + + + fromCryptoIdentity + + + + ContactGroupDetailsTrusted + Undefined + 6 + ContactGroupDetailsTrusted + 1 + + + + + + photoFilename + + + + 1 + contactGroup + + + + photoFilename + + + + 1 + unsortedAttachments + + + + groupMembersVersion + + + + childProtocolInstanceUid + + + + ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/ObvEngine-v48.xcdatamodel + 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WAAAc2gAAHOkAABz4AAAc+QAAHQcAAB0IAAAdCQAAHQoAAB0LAAAdDAAAHSEAAB0iAAAdKgAAHTYAAB1KAAAdWQAAHWgAAB13AAAdewAAHYoAAB2ZAAAdqAAAHbcAAB3GAAAd0gAAHeQAAB3zAAAeAgAAHhEAAB4gAAAeLwAAHj4AAB5NAAAeYgAAHmMAAB5rAAAedwAAHosAAB6aAAAeqQAAHrgAAB68AAAeywAAHtoAAB7pAAAe+AAAHwcAAB8TAAAfJQAAHzQAAB9DAAAfUgAAH2EAAB9iAAAfcQAAH4AAAB+PAAAfpAAAH6UAAB+tAAAfuQAAH80AAB/cAAAf6wAAH/oAAB/+AAAgDQAAIBwAACArAAAgOgAAIEkAACBVAAAgZwAAIHYAACCFAAAglAAAIKMAACCyAAAgwQAAINAAACDlAAAg5gAAIO4AACD6AAAhDgAAIR0AACEsAAAhOwAAIT8AACFOAAAhXQAAIWwAACF7AAAhigAAIZYAACGoAAAhtwAAIcYAACHVAAAh5AAAIfMAACICAAAiEQAAIiYAACInAAAiLwAAIjsAACJPAAAiXgAAIm0AACJ8AAAigAAAIo8AACKeAAAirQAAIrwAACLLAAAi1wAAIukAACL4AAAjBwAAIxYAACMlAAAjNAAAI0MAACNSAAAjUwAAI1YAACNfAAAjbgAAI30AACOMAAAjoQAAI6IAACOqAAAjtgAAI8oAACPZAAAj6AAAI/cAACP7AAAkCgAAJBkAACQoAAAkNwAAJEYAACRSAAAkZAAAJHMAACSCAAAkkQAAJKAAACSvAAAkvgAAJM0AACTQAAAk3wAAJO4AACT9AAAlAAAAJRoAACUbAAAlIQAAJS0AACVDAAAlUgAAJVUAACVkAAAlcwAAJXcAACV8AAAlfQAAJX4AACWNAAAlnAAAJZ8AACWuAAAlvQAAJcEAACXQAAAl3wAAJeAAACYAAAAmAQAAJgIAACYDAAAmBAAAJgUAACYGAAAmBwAAJggAACYJAAAmCgAAJgsAACYMAAAmDQAAJg4AACYjAAAmJAAAJiwAACY4AAAmTAAAJlsAACZqAAAmeQAAJn0AACaMAAAmmwAAJqoAACa5AAAmyAAAJtQAACbmAAAm9QAAJwQAACcTAAAnIgAAJzEAACdAAAAnQQAAJ1AAACdlAAAnZgAAJ24AACd6AAAnjgAAJ50AACesAAAnuwAAJ78AACfOAAAn3QAAJ+wAACf7AAAoCgAAKBYAACgoAAAoNwAAKEYAAChVAAAoZAAAKH4AACh/AAAohQAAKJEAACinAAAotgAAKLkAACjIAAAo1wAAKNsAACjhAAAo4gAAKOMAACjkAAAo8wAAKQIAACkFAAApFAAAKSMAACknAAApNgAAKUUAAClGAAApYAAAKWEAACliAAApYwAAKWQAACllAAApZgAAKWcAACloAAApaQAAKWoAAClrAAApgAAAKYEAACmJAAAplQAAKakAACm4AAApxwAAKdYAACnaAAAp6QAAKfgAACoHAAAqFgAAKiUAACoxAAAqQwAAKlIAACphAAAqcAAAKn8AACqOAAAqnQAAKqwAACrBAAAqwgAAKsoAACrWAAAq6gAAKvkAACsIAAArFwAAKxsAACsqAAArOQAAK0gAACtXAAArZgAAK3IAACuEAAArkwAAK6IAACuxAAArwAAAK88AACveAAAr7QAALAIAACwDAAAsCwAALBcAACwrAAAsOgAALEkAACxYAAAsXAAALGsAACx6AAAsiQAALJgAACynAAAsswAALMUAACzUAAAs4wAALPIAAC0BAAAtEAAALR8AAC0uAAAtQwAALUQAAC1MAAAtWAAALWwAAC17AAAtigAALZkAAC2dAAAtrAAALbsAAC3KAAAt2QAALegAAC30AAAuBgAALhUAAC4kAAAuMwAALkIAAC5cAAAuXQAALmMAAC5vAAAuhQAALpQAAC6XAAAupgAALrUAAC65AAAuwAAALsEAAC7CAAAuwwAALsQAAC7TAAAu4gAALuUAAC70AAAvAwAALwcAAC8WAAAvJQAALyYAAC9AAAAvQQAAL0IAAC9DAAAvRAAAL0UAAC9GAAAvRwAAL0gAAC9JAAAvSgAAL0sAAC9gAAAvYQAAL2kAAC91AAAviQAAL5gAAC+nAAAvtgAAL7oAAC/JAAAv2AAAL+cAAC/2AAAwBQAAMBEAADAjAAAwMgAAMEEAADBQAAAwXwAAMG4AADB9AAAwjAAAMKEAADCiAAAwqgAAMLYAADDKAAAw2QAAMOgAADD3AAAw+wAAMQoAADEZAAAxKAAAMTcAADFGAAAxUgAAMWQAADFzAAAxggAAMZEAADGgAAAxrwAAMb4AADHNAAAx4gAAMeMAADHrAAAx9wAAMgsAADIaAAAyKQAAMjgAADI8AAAySwAAMloAADJpAAAyeAAAMocAADKTAAAypQAAMrQAADLDAAAy0gAAMuEAADLiAAAy8QAAMwAAADMPAAAzJAAAMyUAADMtAAAzOQAAM00AADNcAAAzawAAM3oAADN+AAAzjQAAM5wAADOrAAAzugAAM8kAADPVAAAz5wAAM/YAADQFAAA0FAAANCMAADQyAAA0QQAANFAAADRlAAA0ZgAANG4AADR6AAA0jgAANJ0AADSsAAA0uwAANL8AADTOAAA03QAANOwAADT7AAA1CgAANRYAADUoAAA1NwAANUYAADVVAAA1ZAAANXMAADWCAAA1kQAANaYAADWnAAA1rwAANbsAADXPAAA13gAANe0AADX8AAA2AAAANg8AADYeAAA2LQAANjwAADZLAAA2VwAANmkAADZ4AAA2hwAANpYAADalAAA2tAAANsMAADbSAAA25wAANugAADbwAAA2/AAANxAAADcfAAA3LgAANz0AADdBAAA3UAAAN18AADduAAA3fQAAN4wAADeYAAA3qgAAN7kAADfIAAA31wAAN+YAADf1AAA4BAAAOBMAADgoAAA4KQAAODEAADg9AAA4UQAAOGAAADhvAAA4fgAAOIIAADiRAAA4oAAAOK8AADi+AAA4zQAAONkAADjrAAA4+gAAOQkAADkYAAA5JwAAOTYAADlFAAA5VAAAOWkAADlqAAA5cgAAOX4AADmSAAA5oQAAObAAADm/AAA5wwAAOdIAADnhAAA58AAAOf8AADoOAAA6GgAAOiwAADo7AAA6SgAAOlkAADpoAAA6dwAAOoYAADqVAAA6qgAAOqsAADqzAAA6vwAAOtMAADriAAA68QAAOwAAADsEAAA7EwAAOyIAADsxAAA7QAAAO08AADtbAAA7bQAAO3wAADuLAAA7mgAAO6kAADu4AAA7xwAAO9YAADvrAAA77AAAO/QAADwAAAA8FAAAPCMAADwyAAA8QQAAPEUAADxUAAA8YwAAPHIAADyBAAA8kAAAPJwAADyuAAA8vQAAPMwAADzbAAA86gAAPPkAAD0IAAA9FwAAPRoAAD0pAAA9OAAAPUcAAD1cAAA9XQAAPWUAAD1xAAA9hQAAPZQAAD2jAAA9sgAAPbYAAD3FAAA91AAAPeMAAD3yAAA+AQAAPg0AAD4fAAA+LgAAPj0AAD5MAAA+WwAAPmoAAD55AAA+iAAAPp0AAD6eAAA+pgAAPrIAAD7GAAA+1QAAPuQAAD7zAAA+9wAAPwYAAD8VAAA/JAAAPzMAAD9CAAA/TgAAP2AAAD9vAAA/fgAAP40AAD+cAAA/qwAAP7oAAD/JAAA/3gAAP98AAD/nAAA/8wAAQAcAAEAWAABAJQAAQDQAAEA4AABARwAAQFYAAEBlAABAdAAAQIMAAECPAABAoQAAQLAAAEC/AABAzgAAQN0AAED3AABA+AAAQP4AAEEKAABBIAAAQS8AAEEyAABBQQAAQVAAAEFUAABBWAAAQVkAAEFoAABBdwAAQXoAAEGJAABBmAAAQZwAAEGrAABBugAAQbsAAEHFAABBxgAAQccAAEHcAABB3QAAQeUAAEHxAABCBQAAQhQAAEIjAABCMgAAQjYAAEJFAABCVAAAQmMAAEJyAABCgQAAQo0AAEKfAABCrgAAQr0AAELMAABC2wAAQuoAAEL5AABDCAAAQx0AAEMeAABDJgAAQzIAAENGAABDVQAAQ2QAAENzAABDdwAAQ4YAAEOVAABDpAAAQ7MAAEPCAABDzgAAQ+AAAEPvAABD/gAARA0AAEQcAABEHQAARCwAAEQ7AABESgAARF8AAERgAABEaAAARHQAAESIAABElwAARKYAAES1AABEuQAARMgAAETXAABE5gAARPUAAEUEAABFEAAARSIAAEUxAABFQAAARU8AAEVeAABFbQAARXwAAEWLAABFjgAARZ0AAEWsAABFuwAARdAAAEXRAABF2QAAReUAAEX5AABGCAAARhcAAEYmAABGKgAARjkAAEZIAABGVwAARmYAAEZ1AABGgQAARpMAAEaiAABGsQAARsAAAEbPAABG3gAARu0AAEb8AABHEQAARxIAAEcaAABHJgAARzoAAEdJAABHWAAAR2cAAEdrAABHegAAR4kAAEeYAABHpwAAR7YAAEfCAABH1AAAR+MAAEfyAABIAQAASBAAAEgfAABILgAASD0AAEhSAABIUwAASFsAAEhnAABIewAASIoAAEiZAABIqAAASKwAAEi7AABIygAASNkAAEjoAABI9wAASQMAAEkVAABJJAAASTMAAElCAABJUQAASWAAAElvAABJfgAASZMAAEmUAABJnAAASagAAEm8AABJywAASdoAAEnpAABJ7QAASfwAAEoLAABKGgAASikAAEo4AABKRAAASlYAAEplAABKdAAASoMAAEqSAABKoQAASrAAAEq/AABKwgAAStEAAErgAABK7wAASwQAAEsFAABLDQAASxkAAEstAABLPAAAS0sAAEtaAABLXgAAS20AAEt8AABLiwAAS5oAAEupAABLtQAAS8cAAEvWAABL5QAAS/QAAEwDAABMEgAATCEAAEwwAABMRQAATEYAAExOAABMWgAATG4AAEx9AABMjAAATJsAAEyfAABMrgAATL0AAEzMAABM2wAATOoAAEz2AABNCAAATRcAAE0mAABNNQAATUQAAE1TAABNYgAATXEAAE2GAABNhwAATY8AAE2bAABNrwAATb4AAE3NAABN3AAATeAAAE3vAABN/gAATg0AAE4cAABOKwAATjcAAE5JAABOWAAATmcAAE52AABOhQAATpQAAE6jAABOsgAATscAAE7IAABO0AAATtwAAE7wAABO/wAATw4AAE8dAABPIQAATzAAAE8/AABPTgAAT10AAE9sAABPeAAAT4oAAE+ZAABPqAAAT7cAAE/GAABP1QAAT+QAAE/zAABQCAAAUAkAAFARAABQHQAAUDEAAFBAAABQTwAAUF4AAFBiAABQcQAAUIAAAFCPAABQngAAUK0AAFC5AABQywAAUNoAAFDpAABQ+AAAUQcAAFEWAABRJQAAUSYAAFE1AABRSgAAUUsAAFFTAABRXwAAUXMAAFGCAABRkQAAUaAAAFGkAABRswAAUcIAAFHRAABR4AAAUe8AAFH7AABSDQAAUhwAAFIrAABSOgAAUkkAAFJYAABSZwAAUmgAAFJ3AABSjAAAUo0AAFKVAABSoQAAUrUAAFLEAABS0wAAUuIAAFLmAABS9QAAUwQAAFMTAABTIgAAUzEAAFM9AABTTwAAU14AAFNtAABTfAAAU4sAAFOaAABTqQAAU7gAAFPNAABTzgAAU9YAAFPiAABT9gAAVAUAAFQUAABUIwAAVCcAAFQ2AABURQAAVFQAAFRjAABUcgAAVH4AAFSQAABUnwAAVK4AAFS9AABUzAAAVNsAAFTqAABU6wAAVPoAAFUPAABVEAAAVRgAAFUkAABVOAAAVUcAAFVWAABVZQAAVWkAAFV4AABVhwAAVZYAAFWlAABVtAAAVcAAAFXSAABV4QAAVfAAAFX/AABWDgAAVh0AAFYsAABWOwAAVlAAAFZRAABWWQAAVmUAAFZ5AABWiAAAVpcAAFamAABWqgAAVrkAAFbIAABW1wAAVuYAAFb1AABXAQAAVxMAAFciAABXMQAAV0AAAFdPAABXXgAAV20AAFd8AABXkQAAV5IAAFeaAABXpgAAV7oAAFfJAABX2AAAV+cAAFfrAABX+gAAWAkAAFgYAABYJwAAWDYAAFhCAABYVAAAWGMAAFhyAABYgQAAWJAAAFifAABYrgAAWK8AAFi+AABY0wAAWNQAAFjcAABY6AAAWPwAAFkLAABZGgAAWSkAAFktAABZPAAAWUsAAFlaAABZaQAAWXgAAFmEAABZlgAAWaUAAFm0AABZwwAAWdIAAFnhAABZ8AAAWf8AAFoCAABaHAAAWh0AAFojAABaLwAAWkUAAFpUAABaVwAAWmYAAFp1AABaeAAAWocAAFqWAABamQAAWqgAAFq3AABauwAAWsoAAFrZAABa2gAAWuQAAFrlAABa5gAAWucAAFr8AABa/QAAWwUAAFsRAABbJQAAWzQAAFtDAABbUgAAW1YAAFtlAABbdAAAW4MAAFuSAABboQAAW60AAFu/AABbzgAAW90AAFvsAABb+wAAXAoAAFwZAABcGgAAXCkAAFw+AABcPwAAXEcAAFxTAABcZwAAXHYAAFyFAABclAAAXJgAAFynAABctgAAXMUAAFzUAABc4wAAXO8AAF0BAABdEAAAXR8AAF0uAABdPQAAXVcAAF1YAABdXgAAXWoAAF2AAABdjwAAXZIAAF2hAABdsAAAXbMAAF3CAABd0QAAXdQAAF3jAABd8gAAXfYAAF4FAABeFAAAXhUAAF43AABeOAAAXjkAAF46AABeOwAAXjwAAF49AABePgAAXj8AAF5AAABeQQAAXkIAAF5DAABeRAAAXkUAAF5GAABeWwAAXlwAAF5kAABecAAAXoQAAF6TAABeogAAXrEAAF61AABexAAAXtMAAF7iAABe8QAAXwAAAF8MAABfHgAAXy0AAF88AABfSwAAX1oAAF9bAABfagAAX3kAAF+IAABfnQAAX54AAF+mAABfsgAAX8YAAF/VAABf5AAAX/MAAF/3AABgBgAAYBUAAGAkAABgMwAAYEIAAGBOAABgYAAAYG8AAGB+AABgjQAAYJwAAGCrAABgugAAYMkAAGD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DAACC0gAAguEAAILlAACC9AAAgwMAAIMSAACDIQAAgzAAAIM8AACDTgAAg10AAINsAACDewAAg4oAAIOZAACDqAAAg7cAAIPMAACDzQAAg9UAAIPhAACD9QAAhAQAAIQTAACEIgAAhCYAAIQ1AACERAAAhFMAAIRiAACEcQAAhH0AAISPAACEngAAhK0AAIS8AACEywAAhNoAAITpAACE+AAAhQ0AAIUOAACFFgAAhSIAAIU2AACFRQAAhVQAAIVjAACFZwAAhXYAAIWFAACFlAAAhaMAAIWyAACFvgAAhdAAAIXfAACF7gAAhf0AAIYMAACGGwAAhioAAIY5AACGTgAAhk8AAIZXAACGYwAAhncAAIaGAACGlQAAhqQAAIaoAACGtwAAhsYAAIbVAACG5AAAhvMAAIb/AACHEQAAhyAAAIcvAACHPgAAh00AAIdcAACHawAAh3oAAIePAACHkAAAh5gAAIekAACHuAAAh8cAAIfWAACH5QAAh+kAAIf4AACIBwAAiBYAAIglAACINAAAiEAAAIhSAACIYQAAiHAAAIh/AACIjgAAiJ0AAIisAACIuwAAiNAAAIjRAACI2QAAiOUAAIj5AACJCAAAiRcAAIkmAACJKgAAiTkAAIlIAACJVwAAiWYAAIl1AACJgQAAiZMAAImiAACJsQAAicAAAInPAACJ3gAAie0AAIn8AACKEQAAihIAAIoaAACKJgAAijoAAIpJAACKWAAAimcAAIprAACKegAAiokAAIqYAACKpwAAirYAAIrCAACK1AAAiuMAAIryAACLAQAAixAAAIsfAACLLgAAiz0AAItSAACLUwAAi1sAAItnAACLewAAi4oAAIuZAACLqAAAi6wAAIu7AACLygAAi9kAAIvoAACL9wAAjAMAAIwVAACMJAAAjDMAAIxCAACMUQAAjGAAAIxvAACMfgAAjJMAAIyUAACMnAAAjKgAAIy8AACMywAAjNoAAIzpAACM7QAAjPwAAI0LAACNGgAAjSkAAI04AACNRAAAjVYAAI1lAACNdAAAjYMAAI2SAACNrAAAja0AAI2zAACNvwAAjdUAAI3kAACN5wAAjfYAAI4FAACOCAAAjhcAAI4mAACOKQAAjjgAAI5HAACOSwAAjloAAI5pAACOagAAjogAAI6JAACOigAAjosAAI6MAACOjQAAjo4AAI6PAACOkAAAjpEAAI6SAACOkwAAjpQAAI6VAACOqgAAjqsAAI6zAACOvwAAjtMAAI7iAACO8QAAjwAAAI8EAACPEwAAjyIAAI8xAACPQAAAj08AAI9bAACPbQAAj3wAAI+LAACPmgAAj6kAAI/LAACPzAAAj9IAAI/eAACP9AAAkAMAAJAGAACQFQAAkCQAAJAnAACQNgAAkEUAAJBIAACQVwAAkGYAAJBqAACQeQAAkIgAAJCJAACQmQAAkJoAAJCbAACQnAAAkJ0AAJCeAACQnwAAkLQAAJC1AACQvQAAkMkAAJDdAACQ7AAAkPsAAJEKAACRDgAAkR0AAJEsAACROwAAkUoAAJFZAACRZQAAkXcAAJGGAACRlQAAkaQAAJGzAACRwgAAkdEAAJHgAACR9QAAkfYAAJH+AACSCgAAkh4AAJItAACSPAAAkksAAJJPAACSXgAAkm0AAJJ8AACSiwAAkpoAAJKmAACSuAAAkscAAJLWAACS5QAAkvQAAJMDAACTEgAAkyEAAJM2AACTNwAAkz8AAJNLAACTXwAAk24AAJN9AACTjAAAk5AAAJOfAACTrgAAk70AAJPMAACT2wAAk+cAAJP5AACUCAAAlBcAAJQmAACUNQAAlEQAAJRTAACUVAAAlGMAAJR4AACUeQAAlIEAAJSNAACUoQAAlLAAAJS/AACUzgAAlNIAAJThAACU8AAAlP8AAJUOAACVHQAAlSkAAJU7AACVSgAAlVkAAJVoAACVdwAAlYYAAJWVAACVpAAAlbkAAJW6AACVwgAAlc4AAJXiAACV8QAAlgAAAJYPAACWEwAAliIAAJYxAACWQAAAlk8AAJZeAACWagAAlnwAAJaLAACWmgAAlqkAAJa4AACWxwAAltYAAJblAACW+gAAlvsAAJcDAACXDwAAlyMAAJcyAACXQQAAl1AAAJdUAACXYwAAl3IAAJeBAACXkAAAl58AAJerAACXvQAAl8wAAJfbAACX6gAAl/kAAJgTAACYFAAAmBoAAJgmAACYPAAAmEsAAJhOAACYXQAAmGwAAJhvAACYfgAAmI0AAJiQAACYnwAAmK4AAJiyAACYwQAAmNAAAJjRAACY3QAAmN4AAJjfAACY4AAAmOEAAJj2AACY9wAAmP8AAJkLAACZHwAAmS4AAJk9AACZTAAAmVAAAJlfAACZbgAAmX0AAJmMAACZmwAAmacAAJm5AACZyAAAmdcAAJnmAACZ9QAAmgQAAJoTAACaIgAAmjcAAJo4AACaQAAAmkwAAJpgAACabwAAmn4AAJqNAACakQAAmqAAAJqvAACavgAAms0AAJrcAACa6AAAmvoAAJsJAACbGAAAmycAAJs2AACbRQAAm1QAAJtjAACbeAAAm3kAAJuBAACbjQAAm6EAAJuwAACbvwAAm84AAJvSAACb4QAAm/AAAJv/AACcDgAAnB0AAJwpAACcOwAAnEoAAJxZAACcaAAAnHcAAJyGAACclQAAnJYAAJylAACcugAAnLsAAJzDAACczwAAnOMAAJzyAACdAQAAnRAAAJ0UAACdIwAAnTIAAJ1BAACdUAAAnV8AAJ1rAACdfQAAnYwAAJ2bAACdqgAAnbkAAJ3IAACd1wAAneYAAJ3pAACd+AAAngcAAJ4WAACeKwAAniwAAJ40AACeQAAAnlQAAJ5jAACecgAAnoEAAJ6FAACelAAAnqMAAJ6yAACewQAAntAAAJ7cAACe7gAAnv0AAJ8MAACfGwAAnyoAAJ9EAACfRQAAn0sAAJ9XAACfbQAAn3wAAJ9/AACfjgAAn50AAJ+gAACfrwAAn74AAJ/BAACf0AAAn98AAJ/jAACf8gAAoAEAAKACAACgCAAAoAkAAKAeAACgHwAAoCcAAKAzAACgRwAAoFYAAKBlAACgdAAAoHgAAKCHAACglgAAoKUAAKC0AACgwwAAoM8AAKDhAACg8AAAoP8AAKEOAAChHQAAoSwAAKE7AAChSgAAoU4AAKFXAAChWAAAoXoAAKF7AAChgQAAoY0AAKGjAAChsgAAobUAAKHEAACh0wAAodYAAKHlAACh9AAAofcAAKIGAACiFQAAohkAAKIoAACiNwAAojgAAKJGAACiRwAAokgAAKJJAACiSgAAoksAAKJgAACiYQAAomkAAKJ1AACiiQAAopgAAKKnAACitgAAoroAAKLJAACi2AAAoucAAKL2AACjBQAAoxEAAKMjAACjMgAAo0EAAKNQAACjXwAAo24AAKN9AACjjAAAo6EAAKOiAACjqgAAo7YAAKPKAACj2QAAo+gAAKP3AACj+wAApAoAAKQZAACkKAAApDcAAKRGAACkUgAApGQAAKRzAACkggAApJEAAKSgAACkrwAApL4AAKTNAACk4gAApOMAAKTrAACk9wAApQsAAKUaAAClKQAApTgAAKU8AAClSwAApVoAAKVpAACleAAApYcAAKWTAAClpQAApbQAAKXDAACl0gAApeEAAKXwAACl/wAApg4AAKYjAACmJAAApiwAAKY4AACmTAAAplsAAKZqAACmeQAApn0AAKaMAACmmwAApqoAAKa5AACmyAAAptQAAKbmAACm9QAApwQAAKcTAACnIgAApzEAAKdAAACnTwAAp2QAAKdlAACnbQAAp3kAAKeNAACnnAAAp6sAAKe6AACnvgAAp80AAKfcAACn6wAAp/oAAKgJAACoFQAAqCcAAKg2AACoRQAAqFQAAKhVAACoZAAAqHMAAKiCAACokQAAqJQAAKiaAACooQAAqLsAAKi8AACowgAAqM4AAKjkAACo8wAAqPYAAKkFAACpFAAAqRcAAKkmAACpNQAAqTgAAKlHAACpVgAAqVoAAKlpAACpeAAAqXkAAKl/AACpgAAAqZUAAKmWAACpngAAqaoAAKm+AACpzQAAqdwAAKnrAACp7wAAqf4AAKoNAACqHAAAqisAAKo6AACqRgAAqlgAAKpnAACqdgAAqoUAAKqUAACqrgAAqq8AAKq1AACqwQAAqtcAAKrmAACq6QAAqvgAAKsHAACrCgAAqxkAAKsoAACrKwAAqzoAAKtJAACrTQAAq1wAAKtrAACrbAAAq3IAAKtzAACriAAAq4kAAKuRAACrnQAAq7EAAKvAAACrzwAAq94AAKviAACr8QAArAAAAKwPAACsHgAArC0AAKw5AACsSwAArFoAAKxpAACseAAArIcAAKyWAACspQAArLQAAKy4AACsvwAArMAAAKzGAACs1QAArOQAAKzzAACs9wAArPgAAKz/AACtGQAArRoAAK0gAACtLAAArUIAAK1RAACtVAAArWMAAK1yAACtdQAArYQAAK2TAACtlgAAraUAAK20AACtuAAArccAAK3WAACt1wAArd0AAK3eAACt8wAArfQAAK38AACuCAAArhwAAK4rAACuOgAArkkAAK5NAACuXAAArmsAAK56AACuiQAArpgAAK6kAACutgAArsUAAK7UAACu4wAArvIAAK8MAACvDQAArxMAAK8fAACvNQAAr0QAAK9HAACvVgAAr2UAAK9oAACvdwAAr4YAAK+JAACvmAAAr6cAAK+rAACvugAAr8kAAK/KAACv0gAAr9MAAK/UAACv6QAAr+oAAK/yAACv/gAAsBIAALAhAACwMAAAsD8AALBDAACwUgAAsGEAALBwAACwfwAAsI4AALCaAACwrAAAsLsAALDKAACw2QAAsOgAALD3AACxBgAAsRUAALEqAACxKwAAsTMAALE/AACxUwAAsWIAALFxAACxgAAAsYQAALGTAACxogAAsbEAALHAAACxzwAAsdsAALHtAACx/AAAsgsAALIMAACyGwAAsioAALI5AACySAAAslcAALJsAACybQAAsnUAALKBAACylQAAsqQAALKzAACywgAAssYAALLVAACy5AAAsvMAALMCAACzEQAAsx0AALMvAACzPgAAs00AALNcAACzawAAs3oAALOJAACzmAAAs5wAALOjAACzpAAAs7MAALPCAACz0QAAs9UAALPWAACz5QAAs/QAALQDAAC0BgAAtAsAALQaAAC0KQAAtDgAALRNAAC0TgAAtFYAALRiAAC0dgAAtIUAALSUAAC0owAAtKcAALS2AAC0xQAAtNQAALTjAAC08gAAtP4AALUQAAC1HwAAtS4AALU9AAC1TAAAtWYAALVnAAC1bQAAtXkAALWPAAC1ngAAtaEAALWwAAC1vwAAtcIAALXRAAC14AAAteMAALXyAAC2AQAAtgUAALYUAAC2IwAAtiQAALY0AAC2NQAAtjYAALY3AAC2OAAAtjkAALZOAAC2TwAAtlcAALZjAAC2dwAAtoYAALaVAAC2pAAAtqgAALa3AAC2xgAAttUAALbkAAC28wAAtv8AALcRAAC3IAAAty8AALc+AAC3TQAAt1wAALdrAAC3egAAt48AALeQAAC3mAAAt6QAALe4AAC3xwAAt9YAALflAAC36QAAt/gAALgHAAC4FgAAuCUAALg0AAC4QAAAuFIAALhhAAC4cAAAuH8AALiOAAC4nQAAuKwAALi7AAC40AAAuNEAALjZAAC45QAAuPkAALkIAAC5FwAAuSYAALkqAAC5OQAAuUgAALlXAAC5ZgAAuXUAALmBAAC5kwAAuaIAALmxAAC5wAAAuc8AALneAAC57QAAufwAALoRAAC6EgAAuhoAALomAAC6OgAAukkAALpYAAC6ZwAAumsAALp6AAC6iQAAupgAALqnAAC6tgAAusIAALrUAAC64wAAuvIAALsBAAC7EAAAux8AALsuAAC7PQAAu1IAALtTAAC7WwAAu2cAALt7AAC7igAAu5kAALuoAAC7rAAAu7sAALvKAAC72QAAu+gAALv3AAC8AwAAvBUAALwkAAC8MwAAvEIAALxRAAC8YAAAvG8AALx+AAC8kwAAvJQAALycAAC8qAAAvLwAALzLAAC82gAAvOkAALztAAC8/AAAvQsAAL0aAAC9KQAAvTgAAL1EAAC9VgAAvWUAAL10AAC9gwAAvZIAAL2hAAC9sAAAvb8AAL3CAAC90QAAveAAAL3vAAC+BAAAvgUAAL4NAAC+GQAAvi0AAL48AAC+SwAAvloAAL5eAAC+bQAAvnwAAL6LAAC+mgAAvqkAAL61AAC+xwAAvtYAAL7lAAC+9AAAvwMAAL8SAAC/IQAAvzAAAL9FAAC/RgAAv04AAL9aAAC/bgAAv30AAL+MAAC/mwAAv58AAL+uAAC/vQAAv8wAAL/bAAC/6gAAv/YAAMAIAADAFwAAwCYAAMA1AADARAAAwFMAAMBiAADAcQAAwIYAAMCHAADAjwAAwJsAAMCvAADAvgAAwM0AAMDcAADA4AAAwO8AAMD+AADBDQAAwRwAAMErAADBNwAAwUkAAMFYAADBZwAAwXYAAMGFAADBlAAAwaMAAMGkAADBswAAwcgAAMHJAADB0QAAwd0AAMHxAADCAAAAwg8AAMIeAADCIgAAwjEAAMJAAADCTwAAwl4AAMJtAADCeQAAwosAAMKaAADCqQAAwrgAAMLHAADC4QAAwuIAAMLoAADC9AAAwwoAAMMZAADDHAAAwysAAMM6AADDPQAAw0wAAMNbAADDXgAAw20AAMN8AADDgAAAw48AAMOeAADDnwAAw6sAAMOsAADDrQAAw64AAMPDAADDxAAAw8wAAMPYAADD7AAAw/sAAMQKAADEGQAAxB0AAMQsAADEOwAAxEoAAMRZAADEaAAAxHQAAMSGAADElQAAxKQAAMSzAADEwgAAxNEAAMTgAADE7wAAxQQAAMUFAADFDQAAxRkAAMUtAADFPAAAxUsAAMVaAADFXgAAxW0AAMV8AADFiwAAxZoAAMWpAADFtQAAxccAAMXWAADF5QAAxfQAAMYDAADGEgAAxiEAAMYiAADGMQAAxkYAAMZHAADGTwAAxlsAAMZvAADGfgAAxo0AAMacAADGoAAAxq8AAMa+AADGzQAAxtwAAMbrAADG9wAAxwkAAMcYAADHJwAAxzYAAMdFAADHVAAAx2MAAMdyAADHhwAAx4gAAMeQAADHnAAAx7AAAMe/AADHzgAAx90AAMfhAADH8AAAx/8AAMgOAADIHQAAyCwAAMg4AADISgAAyFkAAMhoAADIdwAAyIYAAMiVAADIpAAAyLMAAMjIAADIyQAAyNEAAMjdAADI8QAAyQAAAMkPAADJHgAAySIAAMkxAADJQAAAyU8AAMleAADJbQAAyXkAAMmLAADJmgAAyakAAMm4AADJxwAAydYAAMnlAADJ9AAAyfcAAMoGAADKFQAAyiQAAMo5AADKOgAAykIAAMpOAADKYgAAynEAAMqAAADKjwAAypMAAMqiAADKsQAAysAAAMrPAADK3gAAyuoAAMr8AADLCwAAyxoAAMspAADLOAAAy0cAAMtWAADLVwAAy2YAAMt7AADLfAAAy4QAAMuQAADLpAAAy7MAAMvCAADL0QAAy9UAAMvkAADL8wAAzAIAAMwRAADMIAAAzCwAAMw+AADMTQAAzFwAAMxrAADMegAAzIkAAMyYAADMpwAAzLwAAMy9AADMxQAAzNEAAMzlAADM9AAAzQMAAM0SAADNFgAAzSUAAM00AADNQwAAzVIAAM1hAADNbQAAzX8AAM2OAADNnQAAzawAAM27AADNygAAzdkAAM3oAADN/QAAzf4AAM4GAADOEgAAziYAAM41AADORAAAzlMAAM5XAADOZgAAznUAAM6EAADOkwAAzqIAAM6uAADOwAAAzs8AAM7eAADO7QAAzvwAAM8LAADPGgAAzykAAM8+AADPPwAAz0cAAM9TAADPZwAAz3YAAM+FAADPlAAAz5gAAM+nAADPtgAAz8UAAM/UAADP4wAAz+8AANABAADQEAAA0B8AANAuAADQPQAA0FcAANBYAADQXgAA0GoAANCAAADQjwAA0JIAANChAADQsAAA0LMAANDCAADQ0QAA0NQAANDjAADQ8gAA0PYAANEFAADRFAAA0RUAANEdAADRHgAA0R8AANE0AADRNQAA0T0AANFJAADRXQAA0WwAANF7AADRigAA0Y4AANGdAADRrAAA0bsAANHKAADR2QAA0eUAANH3AADSBgAA0hUAANIkAADSMwAA0kIAANJRAADSUgAA0mEAANJ2AADSdwAA0n8AANKLAADSnwAA0q4AANK9AADSzAAA0tAAANLfAADS7gAA0v0AANMMAADTGwAA0ycAANM5AADTSAAA01cAANNmAADTdQAA04QAANOTAADTogAA06UAANO0AADTwwAA09IAANPnAADT6AAA0/AAANP8AADUEAAA1B8AANQuAADUPQAA1EEAANRQAADUXwAA1G4AANR9AADUjAAA1JgAANSqAADUuQAA1MgAANTXAADU5gAA1QAAANUBAADVBwAA1RMAANUpAADVOAAA1TsAANVKAADVWQAA1V0AANViAADVYwAA1WQAANVzAADVggAA1YUAANWUAADVowAA1acAANW2AADVxQAA1cYAANXmAADV5wAA1egAANXpAADV6gAA1esAANXsAADV7QAA1e4AANXvAADV8AAA1fEAANXyAADV8wAA1ggAANYJAADWEQAA1h0AANYxAADWQAAA1k8AANZeAADWYgAA1nEAANaAAADWjwAA1p4AANatAADWuQAA1ssAANbaAADW6QAA1vgAANcHAADXFgAA1yUAANc0AADXSQAA10oAANdSAADXXgAA13IAANeBAADXkAAA158AANejAADXsgAA18EAANfQAADX3wAA1+4AANf6AADYDAAA2BsAANgqAADYOQAA2EgAANhXAADYZgAA2HUAANiKAADYiwAA2JMAANifAADYswAA2MIAANjRAADY4AAA2OQAANjzAADZAgAA2REAANkgAADZLwAA2TsAANlNAADZXAAA2WsAANl6AADZiQAA2ZgAANmnAADZtgAA2csAANnMAADZ1AAA2eAAANn0AADaAwAA2hIAANohAADaJQAA2jQAANpDAADaUgAA2mEAANpwAADafAAA2o4AANqdAADarAAA2rsAANrKAADa2QAA2ugAANr3AADbDAAA2w0AANsVAADbIQAA2zUAANtEAADbUwAA22IAANtmAADbdQAA24QAANuTAADbogAA27EAANu9AADbzwAA294AANvtAADb/AAA3AsAANwaAADcKQAA3DgAANxNAADcTgAA3FYAANxiAADcdgAA3IUAANyUAADcowAA3KcAANy2AADcxQAA3NQAANzjAADc8gAA3P4AAN0QAADdHwAA3S4AAN09AADdTAAA3VsAAN1qAADdeQAA3Y4AAN2PAADdlwAA3aMAAN23AADdxgAA3dUAAN3kAADd6AAA3fcAAN4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SAAEM3gABDPAAAQz/AAENDgABDR0AAQ0sAAENOwABDUoAAQ1ZAAENbgABDW8AAQ13AAENgwABDZcAAQ2mAAENtQABDcQAAQ3IAAEN1wABDeYAAQ31AAEOBAABDhMAAQ4fAAEOMQABDkAAAQ5PAAEOXgABDm0AAQ58AAEOiwABDpoAAQ6vAAEOsAABDrgAAQ7EAAEO2AABDucAAQ72AAEPBQABDwkAAQ8YAAEPJwABDzYAAQ9FAAEPVAABD2AAAQ9yAAEPgQABD5AAAQ+fAAEPrgABD70AAQ/MAAEPzQABD9wAAQ/fAAEP7gABD/0AARAMAAEQIQABECIAARAqAAEQNgABEEoAARBZAAEQaAABEHcAARB7AAEQigABEJkAARCoAAEQtwABEMYAARDSAAEQ5AABEPMAARECAAEREQABESAAAREvAAERPgABEU0AARFiAAERYwABEWsAARF3AAERiwABEZoAARGpAAERuAABEbwAARHLAAER2gABEekAARH4AAESBwABEhMAARIlAAESNAABEkMAARJSAAESYQABEnAAARJ/AAESgAABEo8AARKkAAESpQABEq0AARK5AAESzQABEtwAARLrAAES+gABEv4AARMNAAETHAABEysAARM6AAETSQABE1UAARNnAAETdgABE4UAAROUAAETowABE7IAARPBAAET0AABE+UAARPmAAET7gABE/oAARQOAAEUHQABFCwAARQ7AAEUPwABFE4AARRdAAEUbAABFHsAARSKAAEUlgABFKgAARS3AAEUxgABFNUAARTkAAEU8wABFQIAARURAAEVFAABFSMAARUyAAEVQQABFVYAARVXAAEVXwABFWsAARV/AAEVjgABFZ0AARWsAAEVsAABFb8AARXOAAEV3QABFewAARX7AAEWBwABFhkAARYoAAEWNwABFkYAARZVAAEWZAABFnMAARaCAAEWhQABFp8AARagAAEWpgABFrIAARbIAAEW1wABFtoAARbpAAEW+AABFvsAARcKAAEXGQABFxwAARcrAAEXOgABFz4AARdNAAEXXAABF10AARdhAAEXZQABF2wAARdtAAEXjwABF5AAAReWAAEXogABF7gAARfHAAEXygABF9kAARfoAAEX6wABF/oAARgJAAEYDAABGBsAARgqAAEYLgABGD0AARhMAAEYTQABGFcAARhYAAEYWQABGFoAARhvAAEYcAABGHgAARiEAAEYmAABGKcAARi2AAEYxQABGMkAARjYAAEY5wABGPYAARkFAAEZFAABGSAAARkyAAEZQQABGVAAARlfAAEZbgABGX0AARmMAAEZmwABGbAAARmxAAEZuQABGcUAARnZAAEZ6AABGfcAARoGAAEaCgABGhkAARooAAEaNwABGkYAARpVAAEaYQABGnMAARqCAAEakQABGqAAARqvAAEavgABGs0AARrcAAEa8QABGvIAARr6AAEbBgABGxoAARspAAEbOAABG0cAARtLAAEbWgABG2kAARt4AAEbhwABG5YAARuiAAEbtAABG8MAARvSAAEb4QABG/AAARv/AAEcDgABHB0AARwgAAEcJgABHC0AARxHAAEcSAABHE4AARxaAAEccAABHH8AARyCAAEckQABHKAAARyjAAEcsgABHMEAARzEAAEc0wABHOIAARzmAAEc9QABHQQAAR0FAAEdCwABHQwAAR0hAAEdIgABHSoAAR02AAEdSgABHVkAAR1oAAEddwABHXsAAR2KAAEdmQABHagAAR23AAEdxgABHdIAAR3kAAEd8wABHgIAAR4RAAEeIAABHi8AAR4+AAEeTQABHlEAAR5SAAEeWQABHnMAAR50AAEeegABHoYAAR6cAAEeqwABHq4AAR69AAEezAABHs8AAR7eAAEe7QABHvAAAR7/AAEfDgABHxIAAR8hAAEfMAABHzEAAR87AAEfPAABHz0AAR8+AAEfUwABH1QAAR9cAAEfaAABH3wAAR+LAAEfmgABH6kAAR+tAAEfvAABH8sAAR/aAAEf6QABH/gAASAEAAEgFgABICUAASA0AAEgQwABIFIAASBhAAEgcAABIH8AASCUAAEglQABIJ0AASCpAAEgvQABIMwAASDbAAEg6gABIO4AASD9AAEhDAABIRsAASEqAAEhOQABIUUAASFXAAEhZgABIXUAASGEAAEhkwABIaIAASGxAAEhwAABIdUAASHWAAEh3gABIeoAASH+AAEiDQABIhwAASIrAAEiLwABIj4AASJNAAEiXAABImsAASJ6AAEihgABIpgAASKnAAEitgABIsUAASLUAAEi4wABIvIAASMBAAEjBQABIwYAASMgAAEjIQABIycAASMzAAEjSQABI1gAASNbAAEjagABI3kAASN9AAEjhAABI4UAASOGAAEjhwABI4gAASOXAAEjpgABI6kAASO4AAEjxwABI8sAASPaAAEj6QABI+oAASQGAAEkBwABJAgAASQJAAEkCgABJAsAASQMAAEkDQABJA4AASQPAAEkEAABJCUAASQmAAEkLgABJDoAASROAAEkXQABJGwAASR7AAEkfwABJI4AASSdAAEkrAABJLsAASTKAAEk1gABJOgAAST3AAElBgABJRUAASUkAAElMwABJUIAASVRAAElZgABJWcAASVvAAElewABJY8AASWeAAElrQABJbwAASXAAAElzwABJd4AASXtAAEl/AABJgsAASYXAAEmKQABJjgAASZHAAEmVgABJmUAASZ0AAEmgwABJpIAASanAAEmqAABJrAAASa8AAEm0AABJt8AASbuAAEm/QABJwEAAScQAAEnHwABJy4AASc9AAEnTAABJ1gAASdqAAEneQABJ4gAASeXAAEnpgABJ7UAASfEAAEn0wABJ+gAASfpAAEn8QABJ/0AASgRAAEoIAABKC8AASg+AAEoQgABKFEAAShgAAEobwABKH4AASiNAAEomQABKKsAASi6AAEoyQABKNgAASjnAAEo9gABKQUAASkUAAEpKQABKSoAASkyAAEpPgABKVIAASlhAAEpcAABKX8AASmDAAEpkgABKaEAASmwAAEpvwABKc4AASnaAAEp7AABKfsAASoKAAEqGQABKigAASo3AAEqRgABKlUAASpqAAEqawABKnMAASp/AAEqkwABKqIAASqxAAEqwAABKsQAASrTAAEq4gABKvEAASsAAAErDwABKxsAASstAAErPAABK0sAAStaAAEraQABK3gAASuHAAErlgABK6sAASusAAErtAABK8AAASvUAAEr4wABK/IAASwBAAEsBQABLBQAASwjAAEsMgABLEEAASxQAAEsXAABLG4AASx9AAEsjAABLJsAASyqAAEsuQABLMgAASzXAAEs7AABLO0AASz1AAEtAQABLRUAAS0kAAEtMwABLUIAAS1GAAEtVQABLWQAAS1zAAEtggABLZEAAS2dAAEtrwABLb4AAS3NAAEt3AABLesAAS36AAEuCQABLhgAAS4tAAEuLgABLjYAAS5CAAEuVgABLmUAAS50AAEugwABLocAAS6WAAEupQABLrQAAS7DAAEu0gABLt4AAS7wAAEu/wABLw4AAS8dAAEvLAABL0YAAS9HAAEvTQABL1kAAS9vAAEvfgABL4EAAS+QAAEvnwABL6MAAS+pAAEvqgABL6sAAS+sAAEvuwABL8oAAS/NAAEv3AABL+sAAS/vAAEv/gABMA0AATAOAAEwKAABMCkAATAqAAEwKwABMCwAATAtAAEwLgABMC8AATAwAAEwRQABMEYAATBOAAEwWgABMG4AATB9AAEwjAABMJsAATCfAAEwrgABML0AATDMAAEw2wABMOoAATD2AAExCAABMRcAATEmAAExNQABMUQAATFTAAExYgABMXEAATGGAAExhwABMY8AATGbAAExrwABMb4AATHNAAEx3AABMeAAATHvAAEx/gABMg0AATIcAAEyKwABMjcAATJJAAEyWAABMmcAATJ2AAEyhQABMpQAATKjAAEysgABMscAATLIAAEy0AABMtwAATLwAAEy/wABMw4AATMdAAEzIQABMzAAATM/AAEzTgABM10AATNsAAEzeAABM4oAATOZAAEzqAABM7cAATPGAAEz1QABM+QAATPzAAE0CAABNAkAATQRAAE0HQABNDEAATRAAAE0TwABNF4AATRiAAE0cQABNIAAATSPAAE0ngABNK0AATS5AAE0ywABNNoAATTpAAE0+AABNQcAATUWAAE1JQABNTQAATVJAAE1SgABNVIAATVeAAE1cgABNYEAATWQAAE1nwABNaMAATWyAAE1wQABNdAAATXfAAE17gABNfoAATYMAAE2GwABNioAATY5AAE2SAABNmIAATZjAAE2aQABNnUAATaLAAE2mgABNp0AATasAAE2uwABNr8AATbDAAE2xAABNtMAATbiAAE25QABNvQAATcDAAE3BwABNxYAATclAAE3JgABNzIAATczAAE3NAABN0kAATdKAAE3UgABN14AATdyAAE3gQABN5AAATefAAE3owABN7IAATfBAAE30AABN98AATfuAAE3+gABOAwAATgbAAE4KgABODkAAThIAAE4VwABOGYAATh1AAE4igABOIsAATiTAAE4nwABOLMAATjCAAE40QABOOAAATjkAAE48wABOQIAATkRAAE5IAABOS8AATk7AAE5TQABOVwAATlrAAE5egABOYkAATmYAAE5pwABObYAATnLAAE5zAABOdQAATngAAE59AABOgMAAToSAAE6IQABOiUAATo0AAE6QwABOlIAATphAAE6cAABOnwAATqOAAE6nQABOqwAATq7AAE6ygABOtkAATroAAE69wABOwwAATsNAAE7FQABOyEAATs1AAE7RAABO1MAATtiAAE7ZgABO3UAATuEAAE7kwABO6IAATuxAAE7vQABO88AATveAAE77QABO/wAATwLAAE8GgABPCkAATw4AAE8OwABPEoAATxZAAE8aAABPH0AATx+AAE8hgABPJIAATymAAE8tQABPMQAATzTAAE81wABPOYAATz1AAE9BAABPRMAAT0iAAE9LgABPUAAAT1PAAE9XgABPW0AAT18AAE9lgABPZcAAT2dAAE9qQABPb8AAT3OAAE90QABPeAAAT3vAAE98wABPfgAAT35AAE9+gABPgkAAT4YAAE+GwABPioAAT45AAE+PQABPkwAAT5bAAE+XAABPn4AAT5/AAE+gAABPoEAAT6CAAE+gwABPoQAAT6FAAE+hgABPocAAT6IAAE+iQABPooAAT6LAAE+jAABPqEAAT6iAAE+qgABPrYAAT7KAAE+2QABPugAAT73AAE++wABPwoAAT8ZAAE/KAABPzcAAT9GAAE/UgABP2QAAT9zAAE/ggABP5EAAT+gAAE/rwABP74AAT/NAAE/4gABP+MAAT/rAAE/9wABQAsAAUAaAAFAKQABQDgAAUA8AAFASwABQFoAAUBpAAFAeAABQIcAAUCTAAFApQABQLQAAUDDAAFA0gABQOEAAUDwAAFA/wABQQAAAUEPAAFBJAABQSUAAUEtAAFBOQABQU0AAUFcAAFBawABQXoAAUF+AAFBjQABQZwAAUGrAAFBugABQckAAUHVAAFB5wABQfYAAUIFAAFCFAABQiMAAUIyAAFCQQABQlAAAUJlAAFCZgABQm4AAUJ6AAFCjgABQp0AAUKsAAFCuwABQr8AAULOAAFC3QABQuwAAUL7AAFDCgABQxYAAUMoAAFDNwABQ0YAAUNVAAFDZAABQ3MAAUOCAAFDgwABQ5IAAUOnAAFDqAABQ7AAAUO8AAFD0AABQ98AAUPuAAFD/QABRAEAAUQQAAFEHwABRC4AAUQ9AAFETAABRFgAAURqAAFEeQABRIgAAUSXAAFEpgABRLUAAUTEAAFE0wABROgAAUTpAAFE8QABRP0AAUURAAFFIAABRS8AAUU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hAAFc8AABXP8AAV0DAAFdEgABXSEAAV0wAAFdPwABXU4AAV1aAAFdbAABXXsAAV2KAAFdmQABXagAAV23AAFdxgABXdUAAV3qAAFd6wABXfMAAV3/AAFeEwABXiIAAV4xAAFeQAABXkQAAV5TAAFeYgABXnEAAV6AAAFejwABXpsAAV6tAAFevAABXssAAV7aAAFe6QABXvgAAV8HAAFfFgABXysAAV8sAAFfNAABX0AAAV9UAAFfYwABX3IAAV+BAAFfhQABX5QAAV+jAAFfsgABX8EAAV/QAAFf3AABX+4AAV/9AAFgDAABYBsAAWAqAAFgOQABYEgAAWBXAAFgWgABYGkAAWB4AAFghwABYJwAAWCdAAFgpQABYLEAAWDFAAFg1AABYOMAAWDyAAFg9gABYQUAAWEUAAFhIwABYTIAAWFBAAFhTQABYV8AAWFuAAFhfQABYYwAAWGbAAFhqgABYbkAAWHIAAFh3QABYd4AAWHmAAFh8gABYgYAAWIVAAFiJAABYjMAAWI3AAFiRgABYlUAAWJkAAFicwABYoIAAWKOAAFioAABYq8AAWK+AAFizQABYtwAAWLrAAFi+gABYwkAAWMeAAFjHwABYycAAWMzAAFjRwABY1YAAWNlAAFjdAABY3gAAWOHAAFjlgABY6UAAWO0AAFjwwABY88AAWPhAAFj8AABY/8AAWQOAAFkHQABZCwAAWQ7AAFkSgABZE0AAWRnAAFkaAABZG4AAWR6AAFkkAABZJ8AAWSiAAFksQABZMAAAWTEAAFkyQABZMoAAWTLAAFk2gABZOkAAWTsAAFk+wABZQoAAWUOAAFlHQABZSwAAWUtAAFlNQABZTYAAWU3AAFlTAABZU0AAWVVAAFlYQABZXUAAWWEAAFlkwABZaIAAWWmAAFltQABZcQAAWXTAAFl4gABZfEAAWX9AAFmDwABZh4AAWYtAAFmPAABZksAAWZaAAFmaQABZmoAAWZ5AAFmjgABZo8AAWaXAAFmowABZrcAAWbGAAFm1QABZuQAAWboAAFm9wABZwYAAWcVAAFnJAABZzMAAWc/AAFnUQABZ2AAAWdvAAFnfgABZ40AAWecAAFnqwABZ7oAAWe9AAFn1wABZ9gAAWfeAAFn6gABaAAAAWgPAAFoEgABaCEAAWgwAAFoNAABaDkAAWg6AAFoSQABaFgAAWhbAAFoagABaHkAAWh9AAFojAABaJsAAWivAAFosAABaLEAAWiyAAFoswABaLQAAWi1AAFotgABaMsAAWjMAAFo1AABaOAAAWj0AAFpAwABaRIAAWkhAAFpJQABaTQAAWlDAAFpUgABaWEAAWlwAAFpfAABaY4AAWmdAAFprAABabsAAWnKAAFp2QABaegAAWn3AAFqDAABag0AAWoVAAFqIQABajUAAWpEAAFqUwABamIAAWpmAAFqdQABaoQAAWqTAAFqogABarEAAWq9AAFqzwABat4AAWrtAAFq/AABawsAAWslAAFrJgABaywAAWs4AAFrTgABa10AAWtgAAFrbwABa34AAWuCAAFrhgABa4cAAWuWAAFrpQABa6gAAWu3AAFrxgABa8oAAWvZAAFr6AABa/wAAWv9AAFr/gABa/8AAWwAAAFsAQABbAIAAWwDAAFsGAABbBkAAWwhAAFsLQABbEEAAWxQAAFsXwABbG4AAWxyAAFsgQABbJAAAWyfAAFsrgABbL0AAWzJAAFs2wABbOoAAWz5AAFtCAABbRcAAW0mAAFtNQABbUQAAW1ZAAFtWgABbWIAAW1uAAFtggABbZEAAW2gAAFtrwABbbMAAW3CAAFt0QABbeAAAW3vAAFt/gABbgoAAW4cAAFuKwABbjoAAW5JAAFuWAABbmcAAW52AAFuhQABbpoAAW6bAAFuowABbq8AAW7DAAFu0gABbuEAAW7wAAFu9AABbwMAAW8SAAFvIQABbzAAAW8/AAFvSwABb10AAW9sAAFvewABb4oAAW+ZAAFvqAABb7cAAW/GAAFv2wABb9wAAW/kAAFv8AABcAQAAXATAAFwIgABcDEAAXA1AAFwRAABcFMAAXBiAAFwcQABcIAAAXCMAAFwngABcK0AAXC8AAFwywABcNoAAXDpAAFw+AABcQcAAXEcAAFxHQABcSUAAXExAAFxRQABcVQAAXFjAAFxcgABcXYAAXGFAAFxlAABcaMAAXGyAAFxwQABcc0AAXHfAAFx7gABcf0AAXIMAAFyGwABcioAAXI5AAFySAABcl0AAXJeAAFyZgABcnIAAXKGAAFylQABcqQAAXKzAAFytwABcsYAAXLVAAFy5AABcvMAAXMCAAFzDgABcyAAAXMvAAFzPgABc00AAXNcAAFzawABc3oAAXOJAAFzngABc58AAXOnAAFzswABc8cAAXPWAAFz5QABc/QAAXP4AAF0BwABdBYAAXQlAAF0NAABdEMAAXRPAAF0YQABdHAAAXR/AAF0jgABdJ0AAXSsAAF0uwABdMoAAXTfAAF04AABdOgAAXT0AAF1CAABdRcAAXUmAAF1NQABdTkAAXVIAAF1VwABdWYAAXV1AAF1hAABdZAAAXWiAAF1sQABdcAAAXXPAAF13gABde0AAXX8AAF2CwABdg4AAXYdAAF2LAABdjsAAXZQAAF2UQABdlkAAXZlAAF2eQABdogAAXaXAAF2pgABdqoAAXa5AAF2yAABdtcAAXbmAAF29QABdwEAAXcTAAF3IgABdzEAAXdAAAF3TwABd14AAXdtAAF3fAABd5EAAXeSAAF3mgABd6YAAXe6AAF3yQABd9gAAXfnAAF36wABd/oAAXgJAAF4GAABeCcAAXg2AAF4QgABeFQAAXhjAAF4cgABeIEAAXiQAAF4nwABeK4AAXi9AAF40gABeNMAAXjbAAF45wABePsAAXkKAAF5GQABeSgAAXksAAF5OwABeUoAAXlZAAF5aAABeXcAAXmDAAF5lQABeaQAAXmzAAF5wgABedEAAXngAAF57wABef4AAXoTAAF6FAABehwAAXooAAF6PAABeksAAXpaAAF6aQABem0AAXp8AAF6iwABepoAAXqpAAF6uAABesQAAXrWAAF65QABevQAAXsDAAF7EgABeyEAAXswAAF7PwABe1QAAXtVAAF7XQABe2kAAXt9AAF7jAABe5sAAXuqAAF7rgABe70AAXvMAAF72wABe+oAAXv5AAF8BQABfBcAAXwmAAF8NQABfEQAAXxTAAF8YgABfHEAAXyAAAF8lQABfJYAAXyeAAF8qgABfL4AAXzNAAF83AABfOsAAXzvAAF8/gABfQ0AAX0cAAF9KwABfToAAX1GAAF9WAABfWcAAX12AAF9hQABfZQAAX2jAAF9sgABfcEAAX3EAAF93gABfd8AAX3lAAF98QABfgcAAX4WAAF+GQABfigAAX43AAF+OgABfkkAAX5YAAF+WwABfmoAAX55AAF+fQABfowAAX6bAAF+nAABfrgAAX65AAF+ugABfrsAAX68AAF+vQABfr4AAX6/AAF+wAABfsEAAX7CAAF+wwABftgAAX7ZAAF+4QABfu0AAX8BAAF/EAABfx8AAX8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tAAGWvAABlssAAZbaAAGW6QABlvgAAZb5AAGXCAABlx0AAZceAAGXJgABlzIAAZdGAAGXVQABl2QAAZdzAAGXdwABl4YAAZeVAAGXpAABl7MAAZfCAAGXzgABl+AAAZfvAAGX/gABmA0AAZgcAAGYKwABmDoAAZg7AAGYSgABmF8AAZhgAAGYaAABmHQAAZiIAAGYlwABmKYAAZi1AAGYuQABmMgAAZjXAAGY5gABmPUAAZkEAAGZEAABmSIAAZkxAAGZQAABmU8AAZleAAGZeAABmXkAAZl/AAGZiwABmaEAAZmwAAGZswABmcIAAZnRAAGZ1AABmeMAAZnyAAGZ9QABmgQAAZoTAAGaFwABmiYAAZo1AAGaNgABmkAAAZpBAAGaQgABmkMAAZpYAAGaWQABmmEAAZptAAGagQABmpAAAZqfAAGargABmrIAAZrBAAGa0AABmt8AAZruAAGa/QABmwkAAZsbAAGbKgABmzkAAZtIAAGbVwABm2YAAZt1AAGbdgABm4UAAZuaAAGbmwABm6MAAZuvAAGbwwABm9IAAZvhAAGb8AABm/QAAZwDAAGcEgABnCEAAZwwAAGcPwABnEsAAZxdAAGcbAABnHsAAZyKAAGcmQABnKgAAZy3AAGcuAABnMcAAZzcAAGc3QABnOUAAZzxAAGdBQABnRQAAZ0jAAGdMgABnTYAAZ1FAAGdVAABnWMAAZ1yAAGdgQABnY0AAZ2fAAGdrgABnb0AAZ3MAAGd2wABneoAAZ35AAGeCAABngsAAZ4aAAGeKQABnjgAAZ5NAAGeTgABnlYAAZ5iAAGedgABnoUAAZ6UAAGeowABnqcAAZ62AAGexQABntQAAZ7jAAGe8gABnv4AAZ8QAAGfHwABny4AAZ89AAGfTAABn2YAAZ9nAAGfbQABn3kAAZ+PAAGfngABn6EAAZ+wAAGfsQABn8AAAZ/DAAGf0gABn+EAAZ/kAAGf8wABoAIAAaAGAAGgFQABoCQAAaAlAAGgMQABoDIAAaAzAAGgNAABoDUAAaBKAAGgSwABoFMAAaBfAAGgcwABoIIAAaCRAAGgoAABoKQAAaCzAAGgwgABoNEAAaDgAAGg7wABoPsAAaENAAGhHAABoSsAAaE6AAGhSQABoVgAAaFnAAGhaAABoXcAAaGMAAGhjQABoZUAAaGhAAGhtQABocQAAaHTAAGh4gABoeYAAaH1AAGiBAABohMAAaIiAAGiMQABoj0AAaJPAAGiXgABom0AAaJ8AAGiiwABopoAAaKpAAGiqgABorkAAaLOAAGizwABotcAAaLjAAGi9wABowYAAaMVAAGjJAABoygAAaM3AAGjRgABo1UAAaNkAAGjcwABo38AAaORAAGjoAABo68AAaO+AAGjzQABo9wAAaPrAAGj7AABo/sAAaQQAAGkEQABpBkAAaQlAAGkOQABpEgAAaRXAAGkZgABpGoAAaR5AAGkiAABpJcAAaSmAAGktQABpMEAAaTTAAGk4gABpPEAAaUAAAGlDwABpR4AAaUtAAGlPAABpT8AAaVOAAGlXQABpWwAAaWBAAGlggABpYoAAaWWAAGlqgABpbkAAaXIAAGl1wABpdsAAaXqAAGl+QABpggAAaYXAAGmJgABpjIAAaZEAAGmUwABpmIAAaZxAAGmgAABpo8AAaaeAAGmrQABpsIAAabDAAGmywABptcAAabrAAGm+gABpwkAAacYAAGnHAABpysAAac6AAGnSQABp1gAAadnAAGncwABp4UAAaeUAAGnowABp7IAAafBAAGn0AABp98AAafuAAGoAwABqAQAAagMAAGoGAABqCwAAag7AAGoSgABqFkAAahdAAGobAABqHsAAaiKAAGomQABqKgAAai0AAGoxgABqNUAAajkAAGo8wABqQIAAakRAAGpIAABqSEAAakwAAGpMwABqUIAAalRAAGpYAABqWMAAal9AAGpfgABqYQAAamQAAGppgABqbUAAam4AAGpxwABqdYAAanaAAGp3wABqeAAAanhAAGp8AABqf8AAaoCAAGqEQABqiAAAaokAAGqMwABqkIAAapDAAGqSwABqkwAAaphAAGqYgABqmoAAap2AAGqigABqpkAAaqoAAGqtwABqrsAAarKAAGq2QABqugAAar3AAGrBgABqxIAAaskAAGrMwABq0IAAatRAAGrYAABq28AAat+AAGrjQABq6IAAaujAAGrqwABq7cAAavLAAGr2gABq+kAAav4AAGr/AABrAsAAawaAAGsKQABrDgAAaxHAAGsUwABrGUAAax0AAGsgwABrJIAAayhAAGssAABrL8AAazOAAGs0QABrOsAAazsAAGs8gABrP4AAa0UAAGtIwABrSYAAa01AAGtRAABrUgAAa1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AAJEAAACSAAAAkwAAAJQAAACVAAAAlgAAAJcAAACYAAAAmQAAAJoAAACbAAAAnAAAAJ0AAACeAAAAnwAAAKAAAAChAAAAogAAAKMAAACkAAAApQAAAKYAAACnAAAAqAAAAKkAAACqAAAAqwAAAKwAAACtAAAArgAAAK8AAACwAAAAsQAAALIAAACzgEGBAzOBB0OBFb2BFsCBG7iBAoSBHAGBHauBFISBDBmBEemBHt+BFmKBDKaBDY6BDe2BIQSBIUuBH1GBEMuBCc+BIcOBDcSBFCiBIgiBIkyBBWiBIsKBD26BFdSBH8eBB4aBFjOBC3eBGMuBCC+BGXmBIx+BCAOBF6+BCLaBI2aBID2BE2uBI9yBAfiBBACBGD+BE5qBDm2BJCKBDNWBHEiBEG6BJSyBC0KBA4SBDWWAY18QE09idk9ibGl2aW91c0NoYW5uZWxcSW5ib3hNZXNzYWdlXUNvbnRhY3REZXZpY2VfEBZJZGVudGl0eVNlcnZlclVzZXJEYXRhXxAVT3V0Ym94QXR0YWNobWVudENodW5rXxAXUGVuZGluZ0RlbGV0ZUZyb21TZXJ2ZXJbS2V5TWF0ZXJpYWxWQmFja3VwXxAWU2VydmVyUHVzaE5vdGlmaWNhdGlvbl8QFFBlcnNpc3RlZFRydXN0T3JpZ2luXxASUGVuZGluZ0dyb3VwTWVtYmVyXxAXS2V5Y2xvYWtSZXZva2VkSWRlbnRpdHlfEBxMaW5rQmV0d2VlblByb3RvY29sSW5zdGFuY2VzXxAVR3JvdXBWMlNlcnZlclVzZXJEYXRhXxAcQ29udGFjdEdyb3VwRGV0YWlsc1B1Ymxpc2hlZF8QEUNvbnRhY3RHcm91cE93bmVkXxASQ29udGFjdEdyb3VwSm9pbmVkXxAkVHJ1c3RFc3RhYmxpc2htZW50Q29tbWl0bWVudFJlY2VpdmVkXxAURGVsZXRlZE91dGJveE1lc3NhZ2VfEBBQcm90b2NvbEluc3RhbmNlXktleWNsb2FrU2VydmVyXxAbQ29udGFjdEdyb3VwVjJQZW5kaW5nTWVtYmVyXxAtQ29udGFjdE93bmVkSWRlbnRpdHlEZWxldGlvblNpZ25hdHVyZVJlY2VpdmVkXxAaQ29udGFjdEdyb3VwRGV0YWlsc1RydXN0ZWRfEB1Db250YWN0SWRlbnRpdHlEZXRhaWxzVHJ1c3RlZF8QGEdyb3VwVjJTaWduYXR1cmVSZWNlaXZlZF8QElBlbmRpbmdTZXJ2ZXJRdWVyeV8QFkluYm94QXR0YWNobWVudFNlc3Npb25fEA9DYWNoZWRXZWxsS25vd25bT3duZWREZXZpY2VeU2VydmVyVXNlckRhdGFfEDBDaGFubmVsQ3JlYXRpb25XaXRoQ29udGFjdERldmljZVByb3RvY29sSW5zdGFuY2VfEA9Db250YWN0SWRlbnRpdHlfEBNHcm91cFNlcnZlclVzZXJEYXRhXENvbnRhY3RHcm91cF1PdXRib3hNZXNzYWdlXkNvbnRhY3RHcm91cFYyXU1lc3NhZ2VIZWFkZXJfEBVQZXJzaXN0ZWRFbmdpbmVEaWFsb2dfEBRDb250YWN0R3JvdXBWMk1lbWJlcl8QEE91dGJveEF0dGFjaG1lbnRfEBVDb250YWN0R3JvdXBWMkRldGFpbHNdU2VydmVyU2Vzc2lvbl8QMlByb3RvY29sSW5zdGFuY2VXYWl0aW5nRm9yQ29udGFjdFVwZ3JhZGVUb09uZVRvT25lXxAfQ29udGFjdElkZW50aXR5RGV0YWlsc1B1Ymxpc2hlZF8QG011dHVhbFNjYW5TaWduYXR1cmVSZWNlaXZlZFlQcm92aXNpb25fEBRJbmJveEF0dGFjaG1lbnRDaHVua18QF091dGJveEF0dGFjaG1lbnRTZXNzaW9uXxAWQ29udGFjdElkZW50aXR5RGV0YWlsc18QHU93bmVkSWRlbnRpdHlEZXRhaWxzUHVibGlzaGVkXxAPUmVjZWl2ZWRNZXNzYWdlXxATQ29udGFjdEdyb3VwRGV0YWlsc1lCYWNrdXBLZXlfEBdPd25lZElkZW50aXR5TWFza2luZ1VJRF8QJENoYW5uZWxDcmVhdGlvblBpbmdTaWduYXR1cmVSZWNlaXZlZF1Pd25lZElkZW50aXR5XxAPSW5ib3hBdHRhY2htZW50XxAZQ29udGFjdEdyb3VwRGV0YWlsc0xhdGVzdN8QEAAAAPEAAADyAAAA8wAAAPQAAAAhAAAA9QAAAPYAAAAjAAAA9wAAAPgAAAAOAAAAJQAAAPkAAAD6AAAAKAAAAPsAAAD8AAAA/QAAACkAAAApAAAAFAAAAQEAAAECAAAAMQAAACkAAAD8AAABBQAAAD0AAAD8AAABCAAAAQkAAAEKXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlW19pc0Fic3RyYWN0gEOAa4AEgASAAoBEgQMRgASAQ4EDE4AGgEOBAzKAQggSLKBkD1dvcmRlcmVk0wAAADoAAAA7AAAADgAAAQ4AAAEQAAAAtKEAAAEPgEWhAAABEYBGgGNeWERfUFN0ZXJlb3R5cGXZAAAAIQAAACUAAAEVAAAADgAAACgAAAEWAAAAIwAAAPsAAAEXAAAAeQAAAQ8AAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAAEfXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgEGARYBDgGqAAIAECIBH0wAAADoAAAA7AAAADgAAASEAAAErAAAAtKkAAAEiAAABIwAAASQAAAElAAABJgAAAScAAAEoAAABKQAAASqASIBJgEqAS4BMgE2AToBPgFCpAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAABMgAAATMAAAE0gFGAVYBWgFyAXYBfgGGAZIBogGNfEBNYRFBNQ29tcG91bmRJbmRleGVzXxAQWERfUFNLX2VsZW1lbnRJRF8QGVhEUE1VbmlxdWVuZXNzQ29uc3RyYWl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QOG51bWJlck9mRGVjcnlwdGVkTWVzc2FnZXNTaW5jZUxhc3RGdWxsUmF0Y2hldFNlbnRNZXNzYWdlXxA2bnVtYmVyT2ZFbmNyeXB0ZWRNZXNzYWdlc0F0VGhlVGltZU9mVGhlTGFzdEZ1bGxSYXRjaGV0XxAlYUZ1bGxSYXRjaGV0T2ZUaGVTZW5kU2VlZElzSW5Qcm9ncmVzc18QJXRpbWVzdGFtcE9mTGFzdEZ1bGxSYXRjaGV0U2VudE1lc3NhZ2VfEBRyZW1vdGVDcnlwdG9JZGVudGl0eV8QEGN1cnJlbnREZXZpY2VVaWRfEBJjcnlwdG9TdWl0ZVZlcnNpb25fECJmdWxsUmF0Y2hldGluZ0NvdW50T2ZMYXN0UHJvdmlzaW9uXxAadGltZXN0YW1wT2ZMYXN0RnVsbFJhdGNoZXRbaXNDb25maXJtZWRfEBludW1iZXJPZkVuY3J5cHRlZE1lc3NhZ2VzXxA4bnVtYmVyT2ZFbmNyeXB0ZWRNZXNzYWdlc1NpbmNlTGFzdEZ1bGxSYXRjaGV0U2VudE1lc3NhZ2VacHJvdmlzaW9uc98QEgAAAUAAAAFBAAABQgAAAkQAAAAhAAABRAAAAUUAAAJFAAAAIwAAAUMAAAJGAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAAB5AAABCgAAAQoAAAJOAAAAMQAAAQoAAAD8AAABCgAAAlIAAAIUAAABCgAAAQoAAAJWAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgEEICIB9CIBDCIClgGwICIB8CBJ1soEP0wAAADoAAAA7AAAADgAAAloAAAJdAAAAtKIAAAJbAAACXIB+gH+iAAACXgAAAl+AgICTgGNfEBJYRF9QUHJvcFN0ZXJlb3R5cGVfEBJYRF9QQXR0X1N0ZXJlb3R5cGXZAAAAIQAAACUAAAJkAAAADgAAACgAAAJlAAAAIwAAAPsAAAJmAAACJAAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAAJuXxAhWERCdWNrZXRGb3JPd25lZEF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BCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwAAAAQoAAAEKAAAAFwAAAQqAAIEB84AAgQtxCAgICIBUgQHtCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAmwAAABcAAI6xAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwQAAAQoAAAEKAAAAFwAAAQqAAIELd4AAgQtxCAgICIBUgQHuCAiAAAjfEBQAAAD7AACPqgAAj6sAAI+sAACPrQAAj64AAI+vAAAAIQAAAA4AAI+wAAAAJQAAj7EAAAAoAACPsgAAj7MAAI+0AACPtQAAj7YAAI+3AAAAIwAABCwAAAD8AAAA/AAAj7sAAAApAAABAgAAAPwAAAAUAAABBQAAACkAAABfAACPwwAAj8QAAAApAAAAKQAAAPwAAI/IAACPyQAAAQIAAAAxXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNvcmRlcmVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNzdG9yYWdlXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNkdXBsaWNhdGVzCYBDgEOBC3mABIEDEYB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AJQAAAUcAAAFIAAAAKAAAAUkAAAAXAACQlwAAABcAAKAlAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUxAAAAQoAAAEKAAAAFwAAAQqAAIEMkoAAgQzJCAgICIBUgQHxCAiAAAjSAAAAOwAAAA4AAKFLAAABWqEAAKFMgQzTgFPXAAAADgAAACUAAKFPAAAAIQAAACgAAKFQAAAAIwAAoVEAAAAXAAAAhwAAAIcAAKFVAAAArQAAADFZX3NwZWNpZmljWF9nZW5lcmFsgQ29gACBDKaBDKaBDNSBDNUSpStD4d8QFAAAAPsAAKFZAAChWgAAoVsAAKFcAAChXQAAoV4AAAAhAAAADgAAoV8AAAAlAAChYAAAACgAAKFhAAChYgAAoWMAAKFkAAChZQAAoWYAAAAjAAAELAAAAPwAAAD8AAChagAAACkAAAECAAAA/AAAABQAAAEFAAAAKQAAAHEAAKFyAAChcwAAACkAAAApAAAA/AAAoXcAAKF4AAABAgAAADFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc29yZGVyZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3N0b3JhZ2VfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc2R1cGxpY2F0ZXM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A+wAA47UAAACEAAABDwAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgAA471fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEemARYBDgGqAAIAECIER7dMAAAA6AAAAOwAAAA4AAOO/AADjyQAAALSpAAABIgAAASMAAAEkAAABJQAAASYAAAEnAAABKAAAASkAAAEqgEiASYBKgEuATIBNgE6AT4BQqQAA48oAAOPLAADjzAAA480AAOPOAADjzwAA49AAAOPRAADj0oER7oER8IER8YER84ER9IER9oER94ER+YER+oBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA49YAAAAXAADjsAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASIAAAEKAAABCgAAABcAAAEKgACBEe+AAIER7AgICAiAVIBICAiAAAjSAAAAOwAAAA4AAOPkAAABWqCAU98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA47AAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEjAAABCgAAAQoAAAAXAAABCoAAgACAAIER7AgICAiAVIBJCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAADj9wAAABcAAOOwAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABJAAAAQoAAAEKAAAAFwAAAQqAAIER8oAAgRHsCAgICIBUgEoICIAACNIAAAA7AAAADgAA5AUAAAFaoIBT3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADjsAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASUAAAEKAAABCgAAABcAAAEKgACAAIAAgRHsCAgICIBUgEsICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAOQYAAAAFwAA47AAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEmAAABCgAAAQoAAAAXAAABCoAAgRH1gACBEewICAgIgFSATAgIgAAI0gAAADsAAAAOAADkJgAAAVqggFPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAOOwAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABJwAAAQoAAAEKAAAAFwAAAQqAAIBggACBEewICAgIgFSATQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA5DkAAAAXAADjsAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASgAAAEKAAABCgAAABcAAAEKgACBEfiAAIER7AgICAiAVIBOCAiAAAjTAAAAOgAAADsAAAAOAADkRwAA5EgAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAHdAAAAFwAA47AAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEpAAABCgAAAQoAAAAXAAABCoAAgGWAAIER7AgICAiAVIBPCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAADkWwAAABcAAOOwAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABKgAAAQoAAAEKAAAAFwAAAQqAAIER+4AAgRHsCAgICIBUgFAICIAACF8QF0tleWNsb2FrUmV2b2tlZElkZW50aXR50wAAADoAAAA7AAAADgAA5GoAAORvAAAAtKQAAORrAADkbAAA5G0AAORugRH9gRH+gRH/gRIApAAA5HAAAORxAADkcgAA5HOBEgGBEhiBEi+BEkaAY15rZXljbG9ha1NlcnZlcl8QEXJhd1Jldm9jYXRpb25UeXBlW3Jhd0lkZW50aXR5XxATcmV2b2NhdGlvblRpbWVzdGFtcN8QEgAAAUAAAAFBAAABQgAA5HoAAAAhAAABRAAAAUUAAOR7AAAAIwAAAUMAAOR8AAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACEAAABCgAAAQoAAOSEAAAAMQAAAQoAAAD8AAABCgAAFAQAAORrAAABCgAAAQoAAOSMAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRHpCAiBEgMIgEMIgQJvgRH9CAiBEgIIEvVr56DTAAAAOgAAADsAAAAOAADkkAAA5JMAAAC0ogAAAlsAABQOgH6BAd2iAADklAAA5JWBEgSBEg+AY9kAAAAhAAAAJQAA5JgAAAAOAAAAKAAA5JkAAAAjAAAA+wAA5JoAAORwAAACWwAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgAA5KJfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEgGAfoBDgGqAAIAECIESBdMAAAA6AAAAOwAAAA4AAOSkAADkrQAAALSoAAACcQAAAnIAAAJzAAACdAAAAnUAAAJ2AAACdwAAAniAgoCDgISAhYCGgIeAiICJqAAA5K4AAOSvAADksAAA5LEAAOSyAADkswAA5LQAAOS1gRIGgRIHgRIIgRIKgRILgRIMgRINgRIOgGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAOSUAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcQAAAQoAAAEKAAAAFwAAAQqAAIBggACBEgQICAgIgFSAgggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADklAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnIAAAEKAAABCgAAABcAAAEKgACAAIAAgRIECAgICIBUgIMICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAOTXAAAAFwAA5JQAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJzAAABCgAAAQoAAAAXAAABCoAAgRIJgACBEgQICAgIgFSAhAgIgAAI0wAAADoAAAA7AAAADgAA5OUAAOTmAAAAtKCggGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAOSUAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdAAAAQoAAAEKAAAAFwAAAQqAAIBggACBEgQICAgIgFSAhQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABB8AAAAXAADklAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnUAAAEKAAABCgAAABcAAAEKgACAsYAAgRIECAgICIBUgIYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA5JQAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ2AAABCgAAAQoAAAAXAAABCoAAgGCAAIESBAgICAiAVICHCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOSUAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEgQICAgIgFSAiAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADklAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAngAAAEKAAABCgAAABcAAAEKgACAYIAAgRIECAgICIBUgIkICIAACNkAAAAhAAAAJQAA5TQAAAAOAAAAKAAA5TUAAAAjAAAA+wAA5TYAAORwAAAUDgAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgAA5T5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEgGBAd2AQ4BqgACABAiBEhDTAAAAOgAAADsAAAAOAADlQAAA5UgAAAC0pwAAFL4AABS/AAAUwAAAFMEAABTCAAAUwwAAFMSBAeuBAeyBAe2BAe6BAe+BAfCBAfGnAADlSQAA5UoAAOVLAADlTAAA5U0AAOVOAADlT4ESEYESEoESE4ESFIESFYESFoESF4Bj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAFNcAAAAXAADklQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFL4AAAEKAAABCgAAABcAAAEKgACBAfOAAIESDwgICAiAVIEB6wgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAGqwAAAAXAADklQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFL8AAAEKAAABCgAAABcAAAEKgACBAmmAAIESDwgICAiAVIEB7AgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAGqwAAAAXAADklQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMAAAAEKAAABCgAAABcAAAEKgACBAmmAAIESDwgICAiAVIEB7QgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAI0AAAAXAADklQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMEAAAEKAAABCgAAABcAAAEKgACBEMuAAIESDwgICAiAVIEB7ggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADklQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMIAAAEKAAABCgAAABcAAAEKgACAYIAAgRIPCAgICIBUgQHvCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAOSVAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwwAAAQoAAAEKAAAAFwAAAQqAAIBggACBEg8ICAgIgFSBAfAICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAANXhAAAAFwAA5JUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTEAAABCgAAAQoAAAAXAAABCoAAgRHVgACBEg8ICAgIgFSBAfEICIAACN8QEgAAAUAAAAFBAAABQgAA5bsAAAAhAAABRAAAAUUAAOW8AAAAIwAAAUMAAOW9AAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACEAAABCgAAAQoAAOXFAAAAMQAAAQoAAAD8AAABCgAAAlIAAORsAAABCgAAAQoAAOXNAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRHpCAiBEhoIgEMIgKWBEf4ICIESGQgTAAAAAQNnP/fTAAAAOgAAADsAAAAOAADl0QAA5dQAAAC0ogAAAlsAAAJcgH6Af6IAAOXVAADl1oESG4ESJoBj2QAAACEAAAAlAADl2QAAAA4AAAAoAADl2gAAACMAAAD7AADl2wAA5HEAAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAADl418QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESGIB+gEOAaoAAgAQIgRIc0wAAADoAAAA7AAAADgAA5eUAAOXuAAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAADl7wAA5fAAAOXxAADl8gAA5fMAAOX0AADl9QAA5faBEh2BEh6BEh+BEiGBEiKBEiOBEiSBEiWAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA5dUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIESGwgICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOXVAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEhsICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA5hgAAAAXAADl1QAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBEiCAAIESGwgICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAADmJgAA5icAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA5dUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIESGwgICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAOXVAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAIBggACBEhsICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADl1QAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRIbCAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA5dUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIESGwgICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAOXVAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBEhsICAgIgFSAiQgIgAAI2QAAACEAAAAlAADmdQAAAA4AAAAoAADmdgAAACMAAAD7AADmdwAA5HEAAAJcAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAADmf18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESGIB/gEOAaoAAgAQIgRIn0wAAADoAAAA7AAAADgAA5oEAAOaJAAAAtKcAAAMVAAADFgAAAxcAAAMYAAADGQAAAxoAAAMbgJWAloCXgJiAmYCagJunAADmigAA5osAAOaMAADmjQAA5o4AAOaPAADmkIESKIESKYESKoESK4ESLIESLYESLoBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABbwAAAAXAADl1gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxUAAAEKAAABCgAAABcAAAEKgACA0IAAgRImCAgICIBUgJUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA5dYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMWAAABCgAAAQoAAAAXAAABCoAAgGCAAIESJggICAiAVICWCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOXWAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEiYICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABeoAAAAXAADl1gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACA1IAAgRImCAgICIBUgJgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA5dYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMZAAABCgAAAQoAAAAXAAABCoAAgACAAIESJggICAiAVICZCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOXWAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEiYICAgIgFSAmggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADl1gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxsAAAEKAAABCgAAABcAAAEKgACAAIAAgRImCAgICIBUgJsICIAACN8QEgAAAUAAAAFBAAABQgAA5vwAAAAhAAABRAAAAUUAAOb9AAAAIwAAAUMAAOb+AAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACEAAABCgAAAQoAAOcGAAAAMQAAAQoAAAD8AAABCgAAAlIAAORtAAABCgAAAQoAAOcOAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRHpCAiBEjEIgEMIgKWBEf8ICIESMAgS0H/4WNMAAAA6AAAAOwAAAA4AAOcSAADnFQAAALSiAAACWwAAAlyAfoB/ogAA5xYAAOcXgRIygRI9gGPZAAAAIQAAACUAAOcaAAAADgAAACgAAOcbAAAAIwAAAPsAAOccAADkcgAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAOckXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRIvgH6AQ4BqgACABAiBEjPTAAAAOgAAADsAAAAOAADnJgAA5y8AAAC0qAAAAnEAAAJyAAACcwAAAnQAAAJ1AAACdgAAAncAAAJ4gIKAg4CEgIWAhoCHgIiAiagAAOcwAADnMQAA5zIAAOczAADnNAAA5zUAAOc2AADnN4ESNIESNYESNoESOIESOYESOoESO4ESPIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADnFgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnEAAAEKAAABCgAAABcAAAEKgACAYIAAgRIyCAgICIBUgIIICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA5xYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJyAAABCgAAAQoAAAAXAAABCoAAgACAAIESMggICAiAVICDCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAADnWQAAABcAAOcWAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcwAAAQoAAAEKAAAAFwAAAQqAAIESN4AAgRIyCAgICIBUgIQICIAACNMAAAA6AAAAOwAAAA4AAOdnAADnaAAAALSgoIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADnFgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnQAAAEKAAABCgAAABcAAAEKgACAYIAAgRIyCAgICIBUgIUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA5xYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ1AAABCgAAAQoAAAAXAAABCoAAgGCAAIESMggICAiAVICGCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAOcWAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdgAAAQoAAAEKAAAAFwAAAQqAAIBggACBEjIICAgIgFSAhwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADnFgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAncAAAEKAAABCgAAABcAAAEKgACAAIAAgRIyCAgICIBUgIgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA5xYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ4AAABCgAAAQoAAAAXAAABCoAAgGCAAIESMggICAiAVICJCAiAAAjZAAAAIQAAACUAAOe2AAAADgAAACgAAOe3AAAAIwAAAPsAAOe4AADkcgAAAlwAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAOfAXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRIvgH+AQ4BqgACABAiBEj7TAAAAOgAAADsAAAAOAADnwgAA58oAAAC0pwAAAxUAAAMWAAADFwAAAxgAAAMZAAADGgAAAxuAlYCWgJeAmICZgJqAm6cAAOfLAADnzAAA580AAOfOAADnzwAA59AAAOfRgRI/gRJAgRJBgRJCgRJDgRJEgRJFgGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOcXAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEj0ICAgIgFSAlQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADnFwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxYAAAEKAAABCgAAABcAAAEKgACAYIAAgRI9CAgICIBUgJYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA5xcAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMXAAABCgAAAQoAAAAXAAABCoAAgACAAIESPQgICAiAVICXCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAfVAAAABcAAOcXAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGAAAAQoAAAEKAAAAFwAAAQqAAIECyIAAgRI9CAgICIBUgJgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA5xcAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMZAAABCgAAAQoAAAAXAAABCoAAgACAAIESPQgICAiAVICZCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOcXAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEj0ICAgIgFSAmggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADnFwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxsAAAEKAAABCgAAABcAAAEKgACAAIAAgRI9CAgICIBUgJsICIAACN8QEgAAAUAAAAFBAAABQgAA6D0AAAAhAAABRAAAAUUAAOg+AAAAIwAAAUMAAOg/AAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACEAAABCgAAAQoAAOhHAAAAMQAAAQoAAAD8AAABCgAAAlIAAORuAAABCgAAAQoAAOhPAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRHpCAiBEkgIgEMIgKWBEgAICIESRwgS5FUMEdMAAAA6AAAAOwAAAA4AAOhTAADoVgAAALSiAAACWwAAAlyAfoB/ogAA6FcAAOhYgRJJgRJUgGPZAAAAIQAAACUAAOhbAAAADgAAACgAAOhcAAAAIwAAAPsAAOhdAADkcwAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAOhlXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRJGgH6AQ4BqgACABAiBEkrTAAAAOgAAADsAAAAOAADoZwAA6HAAAAC0qAAAAnEAAAJyAAACcwAAAnQAAAJ1AAACdgAAAncAAAJ4gIKAg4CEgIWAhoCHgIiAiagAAOhxAADocgAA6HMAAOh0AADodQAA6HYAAOh3AADoeIESS4ESTIESTYEST4ESUIESUYESUoESU4Bj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADoVwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnEAAAEKAAABCgAAABcAAAEKgACAYIAAgRJJCAgICIBUgIIICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA6FcAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJyAAABCgAAAQoAAAAXAAABCoAAgACAAIESSQgICAiAVICDCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAADomgAAABcAAOhXAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcwAAAQoAAAEKAAAAFwAAAQqAAIESToAAgRJJCAgICIBUgIQICIAACNMAAAA6AAAAOwAAAA4AAOioAADoqQAAALSgoIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADoVwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnQAAAEKAAABCgAAABcAAAEKgACAYIAAgRJJCAgICIBUgIUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA6FcAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ1AAABCgAAAQoAAAAXAAABCoAAgGCAAIESSQgICAiAVICGCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAOhXAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdgAAAQoAAAEKAAAAFwAAAQqAAIBggACBEkkICAgIgFSAhwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADoVwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAncAAAEKAAABCgAAABcAAAEKgACAAIAAgRJJCAgICIBUgIgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA6FcAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ4AAABCgAAAQoAAAAXAAABCoAAgGCAAIESSQgICAiAVICJCAiAAAjZAAAAIQAAACUAAOj3AAAADgAAACgAAOj4AAAAIwAAAPsAAOj5AADkcwAAAlwAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAOkBXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRJGgH+AQ4BqgACABAiBElXTAAAAOgAAADsAAAAOAADpAwAA6QsAAAC0pwAAAxUAAAMWAAADFwAAAxgAAAMZAAADGgAAAxuAlYCWgJeAmICZgJqAm6cAAOkMAADpDQAA6Q4AAOkPAADpEAAA6REAAOkSgRJWgRJXgRJYgRJZgRJagRJbgRJcgGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOhYAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBElQICAgIgFSAlQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADoWAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxYAAAEKAAABCgAAABcAAAEKgACAYIAAgRJUCAgICIBUgJYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA6FgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMXAAABCgAAAQoAAAAXAAABCoAAgACAAIESVAgICAiAVICXCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAJsAAAABcAAOhYAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGAAAAQoAAAEKAAAAFwAAAQqAAIEBHIAAgRJUCAgICIBUgJgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA6FgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMZAAABCgAAAQoAAAAXAAABCoAAgACAAIESVAgICAiAVICZCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOhYAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBElQICAgIgFSAmggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADoWAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxsAAAEKAAABCgAAABcAAAEKgACAAIAAgRJUCAgICIBUgJsICIAACNIAAAA7AAAADgAA6X4AAAFaoIBT3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABB8AAAAXAADimQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMIAAAEKAAABCgAAABcAAAEKgACAsYAAgRHjCAgICIBUgQHvCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAOKZAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwwAAAQoAAAEKAAAAFwAAAQqAAIBggACBEeMICAgIgFSBAfAICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAORwAAAAFwAA4pkAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTEAAABCgAAAQoAAAAXAAABCoAAgRIBgACBEeMICAgIgFSBAfEICIAACN8QEgAAAUAAAAFBAAABQgAA6a4AAAAhAAABRAAAAUUAAOmvAAAAIwAAAUMAAOmwAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACNAAABCgAAAQoAAOm4AAAAMQAAAQoAAAD8AAABCgAAAlIAANXTAAABCgAAAQoAAOnAAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRDLCAiBEmMIgEMIgKWBEOwICIESYggTAAAAASbkWuvTAAAAOgAAADsAAAAOAADpxAAA6ccAAAC0ogAAAlsAAAJcgH6Af6IAAOnIAADpyYESZIESb4Bj2QAAACEAAAAlAADpzAAAAA4AAAAoAADpzQAAACMAAAD7AADpzgAA1eIAAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAADp1l8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESYYB+gEOAaoAAgAQIgRJl0wAAADoAAAA7AAAADgAA6dgAAOnhAAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAADp4gAA6eMAAOnkAADp5QAA6eYAAOnnAADp6AAA6emBEmaBEmeBEmiBEmqBEmuBEmyBEm2BEm6AY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA6cgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIESZAgICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOnIAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEmQICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA6gsAAAAXAADpyAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBEmmAAIESZAgICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAADqGQAA6hoAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA6cgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIESZAgICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAOnIAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAIBggACBEmQICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADpyAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRJkCAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA6cgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIESZAgICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAOnIAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBEmQICAgIgFSAiQgIgAAI2QAAACEAAAAlAADqaAAAAA4AAAAoAADqaQAAACMAAAD7AADqagAA1eIAAAJcAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAADqcl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESYYB/gEOAaoAAgAQIgRJw0wAAADoAAAA7AAAADgAA6nQAAOp8AAAAtKcAAAMVAAADFgAAAxcAAAMYAAADGQAAAxoAAAMbgJWAloCXgJiAmYCagJunAADqfQAA6n4AAOp/AADqgAAA6oEAAOqCAADqg4EScYEScoESc4ESdIESdYESdoESd4Bj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADpyQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxUAAAEKAAABCgAAABcAAAEKgACAAIAAgRJvCAgICIBUgJUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA6ckAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMWAAABCgAAAQoAAAAXAAABCoAAgGCAAIESbwgICAiAVICWCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOnJAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEm8ICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAH1QAAAAXAADpyQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACBAsiAAIESbwgICAiAVICYCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOnJAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEm8ICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADpyQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgRJvCAgICIBUgJoICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA6ckAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMbAAABCgAAAQoAAAAXAAABCoAAgACAAIESbwgICAiAVICbCAiAAAjfEBIAAAFAAAABQQAAAUIAAOrvAAAAIQAAAUQAAAFFAADq8AAAACMAAAFDAADq8QAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAjQAAAQoAAAEKAADq+QAAADEAAAEKAAAA/AAAAQoAAAJSAADV1AAAAQoAAAEKAADrAQAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEQywgIgRJ6CIBDCIClgRDtCAiBEnkIElbRLg/TAAAAOgAAADsAAAAOAADrBQAA6wgAAAC0ogAAAlsAAAJcgH6Af6IAAOsJAADrCoESe4EShoBj2QAAACEAAAAlAADrDQAAAA4AAAAoAADrDgAAACMAAAD7AADrDwAA1eMAAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAADrF18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESeIB+gEOAaoAAgAQIgRJ80wAAADoAAAA7AAAADgAA6xkAAOsiAAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAADrIwAA6yQAAOslAADrJgAA6ycAAOsoAADrKQAA6yqBEn2BEn6BEn+BEoGBEoKBEoOBEoSBEoWAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA6wkAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIESewgICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOsJAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEnsICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA60wAAAAXAADrCQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBEoCAAIESewgICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAADrWgAA61sAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA6wkAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIESewgICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAEHwAAABcAAOsJAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAICxgACBEnsICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADrCQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRJ7CAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA6wkAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIESewgICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAOsJAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBEnsICAgIgFSAiQgIgAAI2QAAACEAAAAlAADrqQAAAA4AAAAoAADrqgAAACMAAAD7AADrqwAA1eMAAAJcAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAADrs18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESeIB/gEOAaoAAgAQIgRKH0wAAADoAAAA7AAAADgAA67UAAOu9AAAAtKcAAAMVAAADFgAAAxcAAAMYAAADGQAAAxoAAAMbgJWAloCXgJiAmYCagJunAADrvgAA678AAOvAAADrwQAA68IAAOvDAADrxIESiIESiYESioESi4ESjIESjYESjoBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADrCgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxUAAAEKAAABCgAAABcAAAEKgACAAIAAgRKGCAgICIBUgJUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA6woAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMWAAABCgAAAQoAAAAXAAABCoAAgGCAAIEShggICAiAVICWCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOsKAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEoYICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAX00AAAAXAADrCgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACBB72AAIEShggICAiAVICYCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAOsKAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEoYICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADrCgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgRKGCAgICIBUgJoICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA6woAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMbAAABCgAAAQoAAAAXAAABCoAAgACAAIEShggICAiAVICbCAiAAAjfEBIAAAFAAAABQQAAAUIAAOwwAAAAIQAAAUQAAAFFAADsMQAAACMAAAFDAADsMgAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAjQAAAQoAAAEKAADsOgAAADEAAAEKAAAA/AAAAQoAABQEAADV1QAAAQoAAAEKAADsQgAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEQywgIgRKRCIBDCIECb4EQ7ggIgRKQCBKRgFt60wAAADoAAAA7AAAADgAA7EYAAOxJAAAAtKIAAAJbAAAUDoB+gQHdogAA7EoAAOxLgRKSgRKdgGPZAAAAIQAAACUAAOxOAAAADgAAACgAAOxPAAAAIwAAAPsAAOxQAADV5AAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAOxYXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRKPgH6AQ4BqgACABAiBEpPTAAAAOgAAADsAAAAOAADsWgAA7GMAAAC0qAAAAnEAAAJyAAACcwAAAnQAAAJ1AAACdgAAAncAAAJ4gIKAg4CEgIWAhoCHgIiAiagAAOxkAADsZQAA7GYAAOxnAADsaAAA7GkAAOxqAADsa4ESlIESlYESloESmIESmYESmoESm4ESnIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADsSgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnEAAAEKAAABCgAAABcAAAEKgACAYIAAgRKSCAgICIBUgIIICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA7EoAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJyAAABCgAAAQoAAAAXAAABCoAAgACAAIESkggICAiAVICDCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAADsjQAAABcAAOxKAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcwAAAQoAAAEKAAAAFwAAAQqAAIESl4AAgRKSCAgICIBUgIQICIAACNMAAAA6AAAAOwAAAA4AAOybAADsnAAAALSgoIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADsSgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnQAAAEKAAABCgAAABcAAAEKgACAYIAAgRKSCAgICIBUgIUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA7EoAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ1AAABCgAAAQoAAAAXAAABCoAAgGCAAIESkggICAiAVICGCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAOxKAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdgAAAQoAAAEKAAAAFwAAAQqAAIBggACBEpIICAgIgFSAhwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADsSgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAncAAAEKAAABCgAAABcAAAEKgACAAIAAgRKSCAgICIBUgIgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA7EoAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ4AAABCgAAAQoAAAAXAAABCoAAgGCAAIESkggICAiAVICJCAiAAAjZAAAAIQAAACUAAOzqAAAADgAAACgAAOzrAAAAIwAAAPsAAOzsAADV5AAAFA4AAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAOz0XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRKPgQHdgEOAaoAAgAQIgRKe0wAAADoAAAA7AAAADgAA7PYAAOz+AAAAtKcAABS+AAAUvwAAFMAAABTBAAAUwgAAFMMAABTEgQHrgQHsgQHtgQHugQHvgQHwgQHxpwAA7P8AAO0AAADtAQAA7QIAAO0DAADtBAAA7QWBEp+BEqCBEqGBEqKBEqOBEqSBEqWAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABTXAAAAFwAA7EsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABS+AAABCgAAAQoAAAAXAAABCoAAgQHzgACBEp0ICAgIgFSBAesICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABqsAAAAFwAA7EsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABS/AAABCgAAAQoAAAAXAAABCoAAgQJpgACBEp0ICAgIgFSBAewICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABqsAAAAFwAA7EsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTAAAABCgAAAQoAAAAXAAABCoAAgQJpgACBEp0ICAgIgFSBAe0ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAACxAAAAFwAA7EsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTBAAABCgAAAQoAAAAXAAABCoAAgQtCgACBEp0ICAgIgFSBAe4ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA7EsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTCAAABCgAAAQoAAAAXAAABCoAAgGCAAIESnQgICAiAVIEB7wgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADsSwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMMAAAEKAAABCgAAABcAAAEKgACAYIAAgRKdCAgICIBUgQHwCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAACOhQAAABcAAOxLAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUxAAAAQoAAAEKAAAAFwAAAQqAAIEQt4AAgRKdCAgICIBUgQHxCAiAAAjSAAAAOwAAAA4AAO1xAAABWqCAU98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA0+4AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTCAAABCgAAAQoAAAAXAAABCoAAgGCAAIEQxQgICAiAVIEB7wgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADT7gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMMAAAEKAAABCgAAABcAAAEKgACAYIAAgRDFCAgICIBUgQHwCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAADV5AAAABcAANPuAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUxAAAAQoAAAEKAAAAFwAAAQqAAIESj4AAgRDFCAgICIBUgQHxCAiAAAjfEBIAAAFAAAABQQAAAUIAAO2hAAAAIQAAAUQAAAFFAADtogAAACMAAAFDAADtowAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAsQAAAQoAAAEKAADtqwAAADEAAAEKAAAA/AAAAQoAAAJSAACOeAAAAQoAAAEKAADtswAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIELQggIgRKsCIBDCIClgQtiCAiBEqsIEuSA6RDTAAAAOgAAADsAAAAOAADttwAA7boAAAC0ogAAAlsAAAJcgH6Af6IAAO27AADtvIESrYESuIBj2QAAACEAAAAlAADtvwAAAA4AAAAoAADtwAAAACMAAAD7AADtwQAAjoYAAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAADtyV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESqoB+gEOAaoAAgAQIgRKu0wAAADoAAAA7AAAADgAA7csAAO3UAAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAADt1QAA7dYAAO3XAADt2AAA7dkAAO3aAADt2wAA7dyBEq+BErCBErGBErOBErSBErWBEraBEreAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA7bsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIESrQgICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAO27AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEq0ICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA7f4AAAAXAADtuwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBErKAAIESrQgICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAADuDAAA7g0AAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA7bsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIESrQgICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAO27AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAIBggACBEq0ICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADtuwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRKtCAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA7bsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIESrQgICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAO27AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBEq0ICAgIgFSAiQgIgAAI2QAAACEAAAAlAADuWwAAAA4AAAAoAADuXAAAACMAAAD7AADuXQAAjoYAAAJcAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAADuZV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESqoB/gEOAaoAAgAQIgRK50wAAADoAAAA7AAAADgAA7mcAAO5vAAAAtKcAAAMVAAADFgAAAxcAAAMYAAADGQAAAxoAAAMbgJWAloCXgJiAmYCagJunAADucAAA7nEAAO5yAADucwAA7nQAAO51AADudoESuoESu4ESvIESvYESvoESv4ESwIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAaZoAAAAXAADtvAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxUAAAEKAAABCgAAABcAAAEKgACBCJuAAIESuAgICAiAVICVCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAO28AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFgAAAQoAAAEKAAAAFwAAAQqAAIBggACBErgICAgIgFSAlggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADtvAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxcAAAEKAAABCgAAABcAAAEKgACAAIAAgRK4CAgICIBUgJcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAhuAAAAFwAA7bwAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMYAAABCgAAAQoAAAAXAAABCoAAgQEEgACBErgICAgIgFSAmAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADtvAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxkAAAEKAAABCgAAABcAAAEKgACAAIAAgRK4CAgICIBUgJkICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA7bwAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMaAAABCgAAAQoAAAAXAAABCoAAgACAAIESuAgICAiAVICaCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAO28AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBErgICAgIgFSAmwgIgAAI0gAAADsAAAAOAADu4gAAAVqggFPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAIyaAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwgAAAQoAAAEKAAAAFwAAAQqAAIBggACBCzwICAgIgFSBAe8ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAAjJoAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTDAAABCgAAAQoAAAAXAAABCoAAgGCAAIELPAgICAiAVIEB8AgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAjnwAAAAXAACMmgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMQAAAEKAAABCgAAABcAAAEKgACBDxSAAIELPAgICAiAVIEB8QgIgAAI3xASAAABQAAAAUEAAAFCAADvEgAAACEAAAFEAAABRQAA7xMAAAAjAAABQwAA7xQAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAAKQAAAJ0AAAEKAAABCgAA7xwAAAAxAAABCgAAAPwAAAEKAAACUgAAZhEAAAEKAAABCgAA7yQAAAEKXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBCC8ICIESxwiAQwiApYEIWQgIgRLGCBJVtrCJ0wAAADoAAAA7AAAADgAA7ygAAO8rAAAAtKIAAAJbAAACXIB+gH+iAADvLAAA7y2BEsiBEtOAY9kAAAAhAAAAJQAA7zAAAAAOAAAAKAAA7zEAAAAjAAAA+wAA7zIAAGYmAAACWwAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgAA7zpfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEsWAfoBDgGqAAIAECIESydMAAAA6AAAAOwAAAA4AAO88AADvRQAAALSoAAACcQAAAnIAAAJzAAACdAAAAnUAAAJ2AAACdwAAAniAgoCDgISAhYCGgIeAiICJqAAA70YAAO9HAADvSAAA70kAAO9KAADvSwAA70wAAO9NgRLKgRLLgRLMgRLOgRLPgRLQgRLRgRLSgGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAO8sAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcQAAAQoAAAEKAAAAFwAAAQqAAIBggACBEsgICAgIgFSAgggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADvLAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnIAAAEKAAABCgAAABcAAAEKgACAAIAAgRLICAgICIBUgIMICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAO9vAAAAFwAA7ywAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJzAAABCgAAAQoAAAAXAAABCoAAgRLNgACBEsgICAgIgFSAhAgIgAAI0wAAADoAAAA7AAAADgAA730AAO9+AAAAtKCggGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAO8sAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdAAAAQoAAAEKAAAAFwAAAQqAAIBggACBEsgICAgIgFSAhQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADvLAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnUAAAEKAAABCgAAABcAAAEKgACAYIAAgRLICAgICIBUgIYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA7ywAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ2AAABCgAAAQoAAAAXAAABCoAAgGCAAIESyAgICAiAVICHCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAO8sAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEsgICAgIgFSAiAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADvLAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAngAAAEKAAABCgAAABcAAAEKgACAYIAAgRLICAgICIBUgIkICIAACNkAAAAhAAAAJQAA78wAAAAOAAAAKAAA780AAAAjAAAA+wAA784AAGYmAAACXAAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgAA79ZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEsWAf4BDgGqAAIAECIES1NMAAAA6AAAAOwAAAA4AAO/YAADv4AAAALSnAAADFQAAAxYAAAMXAAADGAAAAxkAAAMaAAADG4CVgJaAl4CYgJmAmoCbpwAA7+EAAO/iAADv4wAA7+QAAO/lAADv5gAA7+eBEtWBEtaBEteBEtiBEtmBEtqBEtuAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAW8AAAAFwAA7y0AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMVAAABCgAAAQoAAAAXAAABCoAAgNCAAIES0wgICAiAVICVCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAO8tAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFgAAAQoAAAEKAAAAFwAAAQqAAIBggACBEtMICAgIgFSAlggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADvLQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxcAAAEKAAABCgAAABcAAAEKgACAAIAAgRLTCAgICIBUgJcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAXqAAAAFwAA7y0AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMYAAABCgAAAQoAAAAXAAABCoAAgNSAAIES0wgICAiAVICYCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAO8tAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEtMICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADvLQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgRLTCAgICIBUgJoICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA7y0AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMbAAABCgAAAQoAAAAXAAABCoAAgACAAIES0wgICAiAVICbCAiAAAjfEBIAAAFAAAABQQAAAUIAAPBTAAAAIQAAAUQAAAFFAADwVAAAACMAAAFDAADwVQAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAnQAAAQoAAAEKAADwXQAAADEAAAEKAAAA/AAAAQoAAAJSAABmEwAAAQoAAAEKAADwZQAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEILwgIgRLeCIBDCIClgQhbCAiBEt0IEnAmm6bTAAAAOgAAADsAAAAOAADwaQAA8GwAAAC0ogAAAlsAAAJcgH6Af6IAAPBtAADwboES34ES6oBj2QAAACEAAAAlAADwcQAAAA4AAAAoAADwcgAAACMAAAD7AADwcwAAZigAAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAADwe18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYES3IB+gEOAaoAAgAQIgRLg0wAAADoAAAA7AAAADgAA8H0AAPCGAAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAADwhwAA8IgAAPCJAADwigAA8IsAAPCMAADwjQAA8I6BEuGBEuKBEuOBEuWBEuaBEueBEuiBEumAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA8G0AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIES3wgICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPBtAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEt8ICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA8LAAAAAXAADwbQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBEuSAAIES3wgICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAADwvgAA8L8AAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA8G0AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIES3wgICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPBtAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAIBggACBEt8ICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADwbQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRLfCAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA8G0AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIES3wgICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPBtAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBEt8ICAgIgFSAiQgIgAAI2QAAACEAAAAlAADxDQAAAA4AAAAoAADxDgAAACMAAAD7AADxDwAAZigAAAJcAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAADxF18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYES3IB/gEOAaoAAgAQIgRLr0wAAADoAAAA7AAAADgAA8RkAAPEhAAAAtKcAAAMVAAADFgAAAxcAAAMYAAADGQAAAxoAAAMbgJWAloCXgJiAmYCagJunAADxIgAA8SMAAPEkAADxJQAA8SYAAPEnAADxKIES7IES7YES7oES74ES8IES8YES8oBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADwbgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxUAAAEKAAABCgAAABcAAAEKgACAAIAAgRLqCAgICIBUgJUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA8G4AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMWAAABCgAAAQoAAAAXAAABCoAAgGCAAIES6ggICAiAVICWCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPBuAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEuoICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAH1QAAAAXAADwbgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACBAsiAAIES6ggICAiAVICYCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPBuAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEuoICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADwbgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgRLqCAgICIBUgJoICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA8G4AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMbAAABCgAAAQoAAAAXAAABCoAAgACAAIES6ggICAiAVICbCAiAAAjSAAAAOwAAAA4AAPGUAAABWqCAU98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAAZCIAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTCAAABCgAAAQoAAAAXAAABCoAAgGCAAIEIKQgICAiAVIEB7wgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAABkIgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMMAAAEKAAABCgAAABcAAAEKgACAYIAAgQgpCAgICIBUgQHwCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAABmFQAAABcAAGQiAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUxAAAAQoAAAEKAAAAFwAAAQqAAIEIXIAAgQgpCAgICIBUgQHxCAiAAAjfEBIAAAFAAAABQQAAAUIAAPHEAAAAIQAAAUQAAAFFAADxxQAAACMAAAFDAADxxgAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAoAAAAQoAAAEKAADxzgAAADEAAAEKAAAA/AAAAQoAAAJSAABj+QAAAQoAAAEKAADx1gAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEIAwgIgRL5CIBDCIClgQgYCAiBEvgIEwAAAAEZSIKD0wAAADoAAAA7AAAADgAA8doAAPHdAAAAtKIAAAJbAAACXIB+gH+iAADx3gAA8d+BEvqBEwWAY9kAAAAhAAAAJQAA8eIAAAAOAAAAKAAA8eMAAAAjAAAA+wAA8eQAAGP+AAACWwAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgAA8exfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEveAfoBDgGqAAIAECIES+9MAAAA6AAAAOwAAAA4AAPHuAADx9wAAALSoAAACcQAAAnIAAAJzAAACdAAAAnUAAAJ2AAACdwAAAniAgoCDgISAhYCGgIeAiICJqAAA8fgAAPH5AADx+gAA8fsAAPH8AADx/QAA8f4AAPH/gRL8gRL9gRL+gRMAgRMBgRMCgRMDgRMEgGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPHeAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcQAAAQoAAAEKAAAAFwAAAQqAAIBggACBEvoICAgIgFSAgggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADx3gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnIAAAEKAAABCgAAABcAAAEKgACAAIAAgRL6CAgICIBUgIMICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAPIhAAAAFwAA8d4AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJzAAABCgAAAQoAAAAXAAABCoAAgRL/gACBEvoICAgIgFSAhAgIgAAI0wAAADoAAAA7AAAADgAA8i8AAPIwAAAAtKCggGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPHeAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdAAAAQoAAAEKAAAAFwAAAQqAAIBggACBEvoICAgIgFSAhQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADx3gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnUAAAEKAAABCgAAABcAAAEKgACAYIAAgRL6CAgICIBUgIYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA8d4AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ2AAABCgAAAQoAAAAXAAABCoAAgGCAAIES+ggICAiAVICHCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPHeAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEvoICAgIgFSAiAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADx3gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAngAAAEKAAABCgAAABcAAAEKgACAYIAAgRL6CAgICIBUgIkICIAACNkAAAAhAAAAJQAA8n4AAAAOAAAAKAAA8n8AAAAjAAAA+wAA8oAAAGP+AAACXAAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgAA8ohfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEveAf4BDgGqAAIAECIETBtMAAAA6AAAAOwAAAA4AAPKKAADykgAAALSnAAADFQAAAxYAAAMXAAADGAAAAxkAAAMaAAADG4CVgJaAl4CYgJmAmoCbpwAA8pMAAPKUAADylQAA8pYAAPKXAADymAAA8pmBEweBEwiBEwmBEwqBEwuBEwyBEw2AY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA8d8AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMVAAABCgAAAQoAAAAXAAABCoAAgACAAIETBQgICAiAVICVCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPHfAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFgAAAQoAAAEKAAAAFwAAAQqAAIBggACBEwUICAgIgFSAlggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADx3wAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxcAAAEKAAABCgAAABcAAAEKgACAAIAAgRMFCAgICIBUgJcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAF9NAAAAFwAA8d8AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMYAAABCgAAAQoAAAAXAAABCoAAgQe9gACBEwUICAgIgFSAmAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADx3wAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxkAAAEKAAABCgAAABcAAAEKgACAAIAAgRMFCAgICIBUgJkICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA8d8AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMaAAABCgAAAQoAAAAXAAABCoAAgACAAIETBQgICAiAVICaCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPHfAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEwUICAgIgFSAmwgIgAAI3xASAAABQAAAAUEAAAFCAADzBQAAACEAAAFEAAABRQAA8wYAAAAjAAABQwAA8wcAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAAKQAAAKAAAAEKAAABCgAA8w8AAAAxAAABCgAAAPwAAAEKAAAUBAAAY/oAAAEKAAABCgAA8xcAAAEKXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBCAMICIETEAiAQwiBAm+BCBkICIETDwgSbsRYvdMAAAA6AAAAOwAAAA4AAPMbAADzHgAAALSiAAACWwAAFA6AfoEB3aIAAPMfAADzIIETEYETHIBj2QAAACEAAAAlAADzIwAAAA4AAAAoAADzJAAAACMAAAD7AADzJQAAY/8AAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAADzLV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYETDoB+gEOAaoAAgAQIgRMS0wAAADoAAAA7AAAADgAA8y8AAPM4AAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAADzOQAA8zoAAPM7AADzPAAA8z0AAPM+AADzPwAA80CBExOBExSBExWBExeBExiBExmBExqBExuAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA8x8AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIETEQgICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPMfAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBExEICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA82IAAAAXAADzHwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBExaAAIETEQgICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAADzcAAA83EAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA8x8AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIETEQgICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAEHwAAABcAAPMfAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAICxgACBExEICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADzHwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRMRCAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA8x8AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIETEQgICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPMfAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBExEICAgIgFSAiQgIgAAI2QAAACEAAAAlAADzvwAAAA4AAAAoAADzwAAAACMAAAD7AADzwQAAY/8AABQOAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAADzyV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYETDoEB3YBDgGqAAIAECIETHdMAAAA6AAAAOwAAAA4AAPPLAADz0wAAALSnAAAUvgAAFL8AABTAAAAUwQAAFMIAABTDAAAUxIEB64EB7IEB7YEB7oEB74EB8IEB8acAAPPUAADz1QAA89YAAPPXAADz2AAA89kAAPPagRMegRMfgRMggRMhgRMigRMjgRMkgGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAU1wAAABcAAPMgAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUvgAAAQoAAAEKAAAAFwAAAQqAAIEB84AAgRMcCAgICIBUgQHrCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAarAAAABcAAPMgAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUvwAAAQoAAAEKAAAAFwAAAQqAAIECaYAAgRMcCAgICIBUgQHsCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAarAAAABcAAPMgAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwAAAAQoAAAEKAAAAFwAAAQqAAIECaYAAgRMcCAgICIBUgQHtCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAmQAAABcAAPMgAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwQAAAQoAAAEKAAAAFwAAAQqAAIEHhoAAgRMcCAgICIBUgQHuCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPMgAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwgAAAQoAAAEKAAAAFwAAAQqAAIBggACBExwICAgIgFSBAe8ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA8yAAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTDAAABCgAAAQoAAAAXAAABCoAAgGCAAIETHAgICAiAVIEB8AgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAXioAAAAXAADzIAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMQAAAEKAAABCgAAABcAAAEKgACBB++AAIETHAgICAiAVIEB8QgIgAAI3xASAAABQAAAAUEAAAFCAAD0RgAAACEAAAFEAAABRQAA9EcAAAAjAAABQwAA9EgAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAAKQAAAKAAAAEKAAABCgAA9FAAAAAxAAABCgAAAPwAAAEKAAACUgAAY/sAAAEKAAABCgAA9FgAAAEKXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBCAMICIETJwiAQwiApYEIGggIgRMmCBMAAAABFTpRwdMAAAA6AAAAOwAAAA4AAPRcAAD0XwAAALSiAAACWwAAAlyAfoB/ogAA9GAAAPRhgRMogRMzgGPZAAAAIQAAACUAAPRkAAAADgAAACgAAPRlAAAAIwAAAPsAAPRmAABkAAAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAPRuXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRMlgH6AQ4BqgACABAiBEynTAAAAOgAAADsAAAAOAAD0cAAA9HkAAAC0qAAAAnEAAAJyAAACcwAAAnQAAAJ1AAACdgAAAncAAAJ4gIKAg4CEgIWAhoCHgIiAiagAAPR6AAD0ewAA9HwAAPR9AAD0fgAA9H8AAPSAAAD0gYETKoETK4ETLIETLoETL4ETMIETMYETMoBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAD0YAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnEAAAEKAAABCgAAABcAAAEKgACAYIAAgRMoCAgICIBUgIIICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA9GAAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJyAAABCgAAAQoAAAAXAAABCoAAgACAAIETKAgICAiAVICDCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAD0owAAABcAAPRgAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcwAAAQoAAAEKAAAAFwAAAQqAAIETLYAAgRMoCAgICIBUgIQICIAACNMAAAA6AAAAOwAAAA4AAPSxAAD0sgAAALSgoIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAD0YAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnQAAAEKAAABCgAAABcAAAEKgACAYIAAgRMoCAgICIBUgIUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA9GAAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ1AAABCgAAAQoAAAAXAAABCoAAgGCAAIETKAgICAiAVICGCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPRgAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdgAAAQoAAAEKAAAAFwAAAQqAAIBggACBEygICAgIgFSAhwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAD0YAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAncAAAEKAAABCgAAABcAAAEKgACAAIAAgRMoCAgICIBUgIgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA9GAAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ4AAABCgAAAQoAAAAXAAABCoAAgGCAAIETKAgICAiAVICJCAiAAAjZAAAAIQAAACUAAPUAAAAADgAAACgAAPUBAAAAIwAAAPsAAPUCAABkAAAAAlwAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAPUKXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRMlgH+AQ4BqgACABAiBEzTTAAAAOgAAADsAAAAOAAD1DAAA9RQAAAC0pwAAAxUAAAMWAAADFwAAAxgAAAMZAAADGgAAAxuAlYCWgJeAmICZgJqAm6cAAPUVAAD1FgAA9RcAAPUYAAD1GQAA9RoAAPUbgRM1gRM2gRM3gRM4gRM5gRM6gRM7gGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPRhAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEzMICAgIgFSAlQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAD0YQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxYAAAEKAAABCgAAABcAAAEKgACAYIAAgRMzCAgICIBUgJYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA9GEAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMXAAABCgAAAQoAAAAXAAABCoAAgACAAIETMwgICAiAVICXCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAfVAAAABcAAPRhAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGAAAAQoAAAEKAAAAFwAAAQqAAIECyIAAgRMzCAgICIBUgJgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA9GEAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMZAAABCgAAAQoAAAAXAAABCoAAgACAAIETMwgICAiAVICZCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPRhAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBEzMICAgIgFSAmggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAD0YQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxsAAAEKAAABCgAAABcAAAEKgACAAIAAgRMzCAgICIBUgJsICIAACNIAAAA7AAAADgAA9YcAAAFaoIBT3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABB8AAAAXAABiJgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMIAAAEKAAABCgAAABcAAAEKgACAsYAAgQf9CAgICIBUgQHvCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAGImAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwwAAAQoAAAEKAAAAFwAAAQqAAIBggACBB/0ICAgIgFSBAfAICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAGP/AAAAFwAAYiYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTEAAABCgAAAQoAAAAXAAABCoAAgRMOgACBB/0ICAgIgFSBAfEICIAACN8QEgAAAUAAAAFBAAABQgAA9bcAAAAhAAABRAAAAUUAAPW4AAAAIwAAAUMAAPW5AAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACZAAABCgAAAQoAAPXBAAAAMQAAAQoAAAD8AAABCgAAFAQAAF4bAAABCgAAAQoAAPXJAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQeGCAiBE0IIgEMIgQJvgQeeCAiBE0EIEvAh3yXTAAAAOgAAADsAAAAOAAD1zQAA9dAAAAC0ogAAAlsAABQOgH6BAd2iAAD10QAA9dKBE0OBE06AY9kAAAAhAAAAJQAA9dUAAAAOAAAAKAAA9dYAAAAjAAAA+wAA9dcAAF4rAAACWwAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgAA9d9fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBE0CAfoBDgGqAAIAECIETRNMAAAA6AAAAOwAAAA4AAPXhAAD16gAAALSoAAACcQAAAnIAAAJzAAACdAAAAnUAAAJ2AAACdwAAAniAgoCDgISAhYCGgIeAiICJqAAA9esAAPXsAAD17QAA9e4AAPXvAAD18AAA9fEAAPXygRNFgRNGgRNHgRNJgRNKgRNLgRNMgRNNgGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPXRAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcQAAAQoAAAEKAAAAFwAAAQqAAIBggACBE0MICAgIgFSAgggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAD10QAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnIAAAEKAAABCgAAABcAAAEKgACAAIAAgRNDCAgICIBUgIMICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAPYUAAAAFwAA9dEAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJzAAABCgAAAQoAAAAXAAABCoAAgRNIgACBE0MICAgIgFSAhAgIgAAI0wAAADoAAAA7AAAADgAA9iIAAPYjAAAAtKCggGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPXRAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdAAAAQoAAAEKAAAAFwAAAQqAAIBggACBE0MICAgIgFSAhQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAD10QAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnUAAAEKAAABCgAAABcAAAEKgACAYIAAgRNDCAgICIBUgIYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA9dEAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ2AAABCgAAAQoAAAAXAAABCoAAgGCAAIETQwgICAiAVICHCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPXRAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBE0MICAgIgFSAiAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAD10QAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAngAAAEKAAABCgAAABcAAAEKgACAYIAAgRNDCAgICIBUgIkICIAACNkAAAAhAAAAJQAA9nEAAAAOAAAAKAAA9nIAAAAjAAAA+wAA9nMAAF4rAAAUDgAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgAA9ntfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBE0CBAd2AQ4BqgACABAiBE0/TAAAAOgAAADsAAAAOAAD2fQAA9oUAAAC0pwAAFL4AABS/AAAUwAAAFMEAABTCAAAUwwAAFMSBAeuBAeyBAe2BAe6BAe+BAfCBAfGnAAD2hgAA9ocAAPaIAAD2iQAA9ooAAPaLAAD2jIETUIETUYETUoETU4ETVIETVYETVoBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAFNcAAAAXAAD10gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFL4AAAEKAAABCgAAABcAAAEKgACBAfOAAIETTggICAiAVIEB6wgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAFOYAAAAXAAD10gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFL8AAAEKAAABCgAAABcAAAEKgACBAfWAAIETTggICAiAVIEB7AgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAFNcAAAAXAAD10gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMAAAAEKAAABCgAAABcAAAEKgACBAfOAAIETTggICAiAVIEB7QgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAHsAAAAXAAD10gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMEAAAEKAAABCgAAABcAAAEKgACBB0OAAIETTggICAiAVIEB7ggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABB8AAAAXAAD10gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMIAAAEKAAABCgAAABcAAAEKgACAsYAAgRNOCAgICIBUgQHvCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPXSAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwwAAAQoAAAEKAAAAFwAAAQqAAIBggACBE04ICAgIgFSBAfAICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAFrhAAAAFwAA9dIAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTEAAABCgAAAQoAAAAXAAABCoAAgQdygACBE04ICAgIgFSBAfEICIAACN8QEgAAAUAAAAFBAAABQgAA9vgAAAAhAAABRAAAAUUAAPb5AAAAIwAAAUMAAPb6AAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACZAAABCgAAAQoAAPcCAAAAMQAAAQoAAAD8AAABCgAAFAQAAF4dAAABCgAAAQoAAPcKAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQeGCAiBE1kIgEMIgQJvgQegCAiBE1gIEwAAAAEH6X5v0wAAADoAAAA7AAAADgAA9w4AAPcRAAAAtKIAAAJbAAAUDoB+gQHdogAA9xIAAPcTgRNagRNlgGPZAAAAIQAAACUAAPcWAAAADgAAACgAAPcXAAAAIwAAAPsAAPcYAABeLQAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAPcgXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRNXgH6AQ4BqgACABAiBE1vTAAAAOgAAADsAAAAOAAD3IgAA9ysAAAC0qAAAAnEAAAJyAAACcwAAAnQAAAJ1AAACdgAAAncAAAJ4gIKAg4CEgIWAhoCHgIiAiagAAPcsAAD3LQAA9y4AAPcvAAD3MAAA9zEAAPcyAAD3M4ETXIETXYETXoETYIETYYETYoETY4ETZIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAD3EgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnEAAAEKAAABCgAAABcAAAEKgACAYIAAgRNaCAgICIBUgIIICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA9xIAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJyAAABCgAAAQoAAAAXAAABCoAAgACAAIETWggICAiAVICDCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAD3VQAAABcAAPcSAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcwAAAQoAAAEKAAAAFwAAAQqAAIETX4AAgRNaCAgICIBUgIQICIAACNMAAAA6AAAAOwAAAA4AAPdjAAD3ZAAAALSgoIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAD3EgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnQAAAEKAAABCgAAABcAAAEKgACAYIAAgRNaCAgICIBUgIUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAQfAAAAFwAA9xIAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ1AAABCgAAAQoAAAAXAAABCoAAgLGAAIETWggICAiAVICGCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPcSAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdgAAAQoAAAEKAAAAFwAAAQqAAIBggACBE1oICAgIgFSAhwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAD3EgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAncAAAEKAAABCgAAABcAAAEKgACAAIAAgRNaCAgICIBUgIgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA9xIAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ4AAABCgAAAQoAAAAXAAABCoAAgGCAAIETWggICAiAVICJCAiAAAjZAAAAIQAAACUAAPeyAAAADgAAACgAAPezAAAAIwAAAPsAAPe0AABeLQAAFA4AAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAPe8XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRNXgQHdgEOAaoAAgAQIgRNm0wAAADoAAAA7AAAADgAA974AAPfGAAAAtKcAABS+AAAUvwAAFMAAABTBAAAUwgAAFMMAABTEgQHrgQHsgQHtgQHugQHvgQHwgQHxpwAA98cAAPfIAAD3yQAA98oAAPfLAAD3zAAA982BE2eBE2iBE2mBE2qBFG2BFG6BFG+AY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABTXAAAAFwAA9xMAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABS+AAABCgAAAQoAAAAXAAABCoAAgQHzgACBE2UICAgIgFSBAesICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABTmAAAAFwAA9xMAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABS/AAABCgAAAQoAAAAXAAABCoAAgQH1gACBE2UICAgIgFSBAewICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABqsAAAAFwAA9xMAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTAAAABCgAAAQoAAAAXAAABCoAAgQJpgACBE2UICAgIgFSBAe0ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAClAAAAFwAA9xMAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTBAAABCgAAAQoAAAAXAAABCoAAgRNrgACBE2UICAgIgFSBAe4ICIAACN8QEAAA+AwAAPgNAAD4DgAA+A8AAAAhAAD4EAAA+BEAAAAjAAD4EgAA+BMAAAAOAAAAJQAA+BQAAPgVAAAAKAAAAPsAAAD8AAD4FwAAACkAAAApAAAAFAAA+BsAAAECAAAAMQAAACkAAAD8AAABBQAAAGkAAAD8AAD4IgAA+CMAAAEKXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlgEOBE36ABIAEgAKBE22BAxGABIBDgQMTgDKAQ4ETl4ETbAgSw6JRltMAAAA6AAAAOwAAAA4AAPgnAAD4KQAAALShAAABD4BFoQAA+CqBE26AY9kAAAAhAAAAJQAA+C0AAAAOAAAAKAAA+C4AAAAjAAAA+wAA+C8AAAClAAABDwAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgAA+DdfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBE2uARYBDgGqAAIAECIETb9MAAAA6AAAAOwAAAA4AAPg5AAD4QwAAALSpAAABIgAAASMAAAEkAAABJQAAASYAAAEnAAABKAAAASkAAAEqgEiASYBKgEuATIBNgE6AT4BQqQAA+EQAAPhFAAD4RgAA+EcAAPhIAAD4SQAA+EoAAPhLAAD4TIETcIETcoETc4ETdYETdoETeIETeYETe4ETfIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA+FAAAAAXAAD4KgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASIAAAEKAAABCgAAABcAAAEKgACBE3GAAIETbggICAiAVIBICAiAAAjSAAAAOwAAAA4AAPheAAABWqCAU98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA+CoAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEjAAABCgAAAQoAAAAXAAABCoAAgACAAIETbggICAiAVIBJCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAD4cQAAABcAAPgqAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABJAAAAQoAAAEKAAAAFwAAAQqAAIETdIAAgRNuCAgICIBUgEoICIAACNIAAAA7AAAADgAA+H8AAAFaoIBT3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAD4KgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASUAAAEKAAABCgAAABcAAAEKgACAAIAAgRNuCAgICIBUgEsICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAPiSAAAAFwAA+CoAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEmAAABCgAAAQoAAAAXAAABCoAAgRN3gACBE24ICAgIgFSATAgIgAAI0gAAADsAAAAOAAD4oAAAAVqggFPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPgqAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABJwAAAQoAAAEKAAAAFwAAAQqAAIBggACBE24ICAgIgFSATQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA+LMAAAAXAAD4KgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASgAAAEKAAABCgAAABcAAAEKgACBE3qAAIETbggICAiAVIBOCAiAAAjTAAAAOgAAADsAAAAOAAD4wQAA+MIAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAHdAAAAFwAA+CoAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEpAAABCgAAAQoAAAAXAAABCoAAgGWAAIETbggICAiAVIBPCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAD41QAAABcAAPgqAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABKgAAAQoAAAEKAAAAFwAAAQqAAIETfYAAgRNuCAgICIBUgFAICIAACF8QH0NvbnRhY3RJZGVudGl0eURldGFpbHNQdWJsaXNoZWTTAAAAOgAAADsAAAAOAAD45AAA+OYAAAC0oQAA+OWBE3+hAAD454ETgIBjXxAPY29udGFjdElkZW50aXR53xASAAABQAAAAUEAAAFCAAD46wAAACEAAAFEAAABRQAA+OwAAAAjAAABQwAA+O0AAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAAKQAAAKUAAAEKAAABCgAA+PUAAAAxAAABCgAAAPwAAAEKAAAUBAAA+OUAAAEKAAABCgAA+P0AAAEKXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBE2sICIETggiAQwiBAm+BE38ICIETgQgSVTLvudMAAAA6AAAAOwAAAA4AAPkBAAD5BAAAALSiAAACWwAAFA6AfoEB3aIAAPkFAAD5BoETg4ETjoBj2QAAACEAAAAlAAD5CQAAAA4AAAAoAAD5CgAAACMAAAD7AAD5CwAA+OcAAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAD5E18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYETgIB+gEOAaoAAgAQIgROE0wAAADoAAAA7AAAADgAA+RUAAPkeAAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAAD5HwAA+SAAAPkhAAD5IgAA+SMAAPkkAAD5JQAA+SaBE4WBE4aBE4eBE4mBE4qBE4uBE4yBE42AY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA+QUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIETgwgICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPkFAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBE4MICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA+UgAAAAXAAD5BQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBE4iAAIETgwgICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAAD5VgAA+VcAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA+QUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIETgwgICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPkFAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAIBggACBE4MICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAD5BQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRODCAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA+QUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIETgwgICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPkFAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBE4MICAgIgFSAiQgIgAAI2QAAACEAAAAlAAD5pQAAAA4AAAAoAAD5pgAAACMAAAD7AAD5pwAA+OcAABQOAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAD5r18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYETgIEB3YBDgGqAAIAECIETj9MAAAA6AAAAOwAAAA4AAPmxAAD5uQAAALSnAAAUvgAAFL8AABTAAAAUwQAAFMIAABTDAAAUxIEB64EB7IEB7YEB7oEB74EB8IEB8acAAPm6AAD5uwAA+bwAAPm9AAD5vgAA+b8AAPnAgROQgRORgROSgROTgROUgROVgROWgGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAU1wAAABcAAPkGAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUvgAAAQoAAAEKAAAAFwAAAQqAAIEB84AAgROOCAgICIBUgQHrCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAarAAAABcAAPkGAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUvwAAAQoAAAEKAAAAFwAAAQqAAIECaYAAgROOCAgICIBUgQHsCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAarAAAABcAAPkGAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwAAAAQoAAAEKAAAAFwAAAQqAAIECaYAAgROOCAgICIBUgQHtCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAmQAAABcAAPkGAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwQAAAQoAAAEKAAAAFwAAAQqAAIEHhoAAgROOCAgICIBUgQHuCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPkGAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwgAAAQoAAAEKAAAAFwAAAQqAAIBggACBE44ICAgIgFSBAe8ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA+QYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTDAAABCgAAAQoAAAAXAAABCoAAgGCAAIETjggICAiAVIEB8AgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAXi0AAAAXAAD5BgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMQAAAEKAAABCgAAABcAAAEKgACBE1eAAIETjggICAiAVIEB8QgIgAAI0gAAADsAAAAOAAD6LAAAAVqhAAD6LYETmIBT1wAAAA4AAAAlAAChTwAAACEAAAAoAAChUAAAACMAAKFRAAAAFwAAAKUAAAClAAD6NAAAAKoAAAAxgQ29gACBE2uBE2uBE5mBE5oTAAAAAQEV5YDfEBQAAAD7AAD6OAAA+jkAAPo6AAD6OwAA+jwAAPo9AAAAIQAAAA4AAPo+AAAAJQAA+j8AAAAoAAD6QAAA+kEAAPpCAAD6QwAA+kQAAPpFAAAAIwAABCwAAAD8AAAA/AAA+kkAAAApAAABAgAAAPwAAAAUAAABBQAAACkAAABuAAD6UQAA+lIAAAApAAAAKQAAAPwAAPpWAAD6VwAAAQIAAAAxXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNvcmRlcmVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNzdG9yYWdlXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNkdXBsaWNhdGVzCYBDgEOBE5yABIEDEYBDgAKBAxOABIA3gRQlgRObgASABIBDgROtgRQmgQMREjpxl3PTAAAAOgAAADsAAAAOAAD6WwAA+l0AAAC0oQAAAQ+ARaEAAPpegROdgGPZAAAAIQAAACUAAPphAAAADgAAACgAAPpiAAAAIwAAAPsAAPpjAAAAqgAAAQ8AAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAPprXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgROagEWAQ4BqgACABAiBE57TAAAAOgAAADsAAAAOAAD6bQAA+ncAAAC0qQAAASIAAAEjAAABJAAAASUAAAEmAAABJwAAASgAAAEpAAABKoBIgEmASoBLgEyATYBOgE+AUKkAAPp4AAD6eQAA+noAAPp7AAD6fAAA+n0AAPp+AAD6fwAA+oCBE5+BE6GBE6KBE6SBE6WBE6eBE6iBE6qBE6uAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAPqEAAAAFwAA+l4AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEiAAABCgAAAQoAAAAXAAABCoAAgROggACBE50ICAgIgFSASAgIgAAI0gAAADsAAAAOAAD6kgAAAVqggFPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPpeAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABIwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBE50ICAgIgFSASQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA+qUAAAAXAAD6XgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASQAAAEKAAABCgAAABcAAAEKgACBE6OAAIETnQgICAiAVIBKCAiAAAjSAAAAOwAAAA4AAPqzAAABWqCAU98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA+l4AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAElAAABCgAAAQoAAAAXAAABCoAAgACAAIETnQgICAiAVIBLCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAD6xgAAABcAAPpeAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABJgAAAQoAAAEKAAAAFwAAAQqAAIETpoAAgROdCAgICIBUgEwICIAACNIAAAA7AAAADgAA+tQAAAFaoIBT3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABB8AAAAXAAD6XgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAScAAAEKAAABCgAAABcAAAEKgACAsYAAgROdCAgICIBUgE0ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAPrnAAAAFwAA+l4AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEoAAABCgAAAQoAAAAXAAABCoAAgROpgACBE50ICAgIgFSATggIgAAI0wAAADoAAAA7AAAADgAA+vUAAPr2AAAAtKCggGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAB3QAAABcAAPpeAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABKQAAAQoAAAEKAAAAFwAAAQqAAIBlgACBE50ICAgIgFSATwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA+wkAAAAXAAD6XgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASoAAAEKAAABCgAAABcAAAEKgACBE6yAAIETnQgICAiAVIBQCAiAAAhfEBZDb250YWN0SWRlbnRpdHlEZXRhaWxz0wAAADoAAAA7AAAADgAA+xgAAPseAAAAtKUAAKI+AAD7GgAA+xsAAPscAAD7HYEM7YETroETr4ETsIETsaUAAPsfAAD7IAAA+yEAAPsiAAD7I4ETsoETyYET4IET94EUDoBjXXBob3RvRmlsZW5hbWVfEBVwaG90b1NlcnZlcktleUVuY29kZWRfEBNyYXdQaG90b1NlcnZlckxhYmVsXxAdc2VyaWFsaXplZElkZW50aXR5Q29yZURldGFpbHPfEBIAAAFAAAABQQAAAUIAAPsqAAAAIQAAAUQAAAFFAAD7KwAAACMAAAFDAAD7LAAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAqgAAAQoAAAEKAAD7NAAAADEAAAEKAAAA/AAAAQoAAAJSAACiPgAAAQoAAAEKAAD7PAAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIETmggIgRO0CIBDCIClgQztCAiBE7MIEjNHF8zTAAAAOgAAADsAAAAOAAD7QAAA+0MAAAC0ogAAAlsAAAJcgH6Af6IAAPtEAAD7RYETtYETwIBj2QAAACEAAAAlAAD7SAAAAA4AAAAoAAD7SQAAACMAAAD7AAD7SgAA+x8AAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAD7Ul8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYETsoB+gEOAaoAAgAQIgRO20wAAADoAAAA7AAAADgAA+1QAAPtdAAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAAD7XgAA+18AAPtgAAD7YQAA+2IAAPtjAAD7ZAAA+2WBE7eBE7iBE7mBE7uBE7yBE72BE76BE7+AY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA+0QAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIETtQgICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPtEAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBE7UICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA+4cAAAAXAAD7RAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBE7qAAIETtQgICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAAD7lQAA+5YAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA+0QAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIETtQgICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPtEAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAIBggACBE7UICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAD7RAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRO1CAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA+0QAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIETtQgICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPtEAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBE7UICAgIgFSAiQgIgAAI2QAAACEAAAAlAAD75AAAAA4AAAAoAAD75QAAACMAAAD7AAD75gAA+x8AAAJcAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAD77l8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYETsoB/gEOAaoAAgAQIgRPB0wAAADoAAAA7AAAADgAA+/AAAPv4AAAAtKcAAAMVAAADFgAAAxcAAAMYAAADGQAAAxoAAAMbgJWAloCXgJiAmYCagJunAAD7+QAA+/oAAPv7AAD7/AAA+/0AAPv+AAD7/4ETwoETw4ETxIETxYETxoETx4ETyIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAD7RQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxUAAAEKAAABCgAAABcAAAEKgACAAIAAgRPACAgICIBUgJUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA+0UAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMWAAABCgAAAQoAAAAXAAABCoAAgGCAAIETwAgICAiAVICWCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPtFAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBE8AICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABeoAAAAXAAD7RQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACA1IAAgRPACAgICIBUgJgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA+0UAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMZAAABCgAAAQoAAAAXAAABCoAAgACAAIETwAgICAiAVICZCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPtFAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBE8AICAgIgFSAmggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAD7RQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxsAAAEKAAABCgAAABcAAAEKgACAAIAAgRPACAgICIBUgJsICIAACN8QEgAAAUAAAAFBAAABQgAA/GsAAAAhAAABRAAAAUUAAPxsAAAAIwAAAUMAAPxtAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACqAAABCgAAAQoAAPx1AAAAMQAAAQoAAAD8AAABCgAAAlIAAPsaAAABCgAAAQoAAPx9AAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgROaCAiBE8sIgEMIgKWBE64ICIETyggTAAAAAQ6Gf8DTAAAAOgAAADsAAAAOAAD8gQAA/IQAAAC0ogAAAlsAAAJcgH6Af6IAAPyFAAD8hoETzIET14Bj2QAAACEAAAAlAAD8iQAAAA4AAAAoAAD8igAAACMAAAD7AAD8iwAA+yAAAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAD8k18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYETyYB+gEOAaoAAgAQIgRPN0wAAADoAAAA7AAAADgAA/JUAAPyeAAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAAD8nwAA/KAAAPyhAAD8ogAA/KMAAPykAAD8pQAA/KaBE86BE8+BE9CBE9KBE9OBE9SBE9WBE9aAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA/IUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIETzAgICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPyFAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBE8wICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA/MgAAAAXAAD8hQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBE9GAAIETzAgICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAAD81gAA/NcAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA/IUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIETzAgICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAEHwAAABcAAPyFAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAICxgACBE8wICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAD8hQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRPMCAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA/IUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIETzAgICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAPyFAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBE8wICAgIgFSAiQgIgAAI2QAAACEAAAAlAAD9JQAAAA4AAAAoAAD9JgAAACMAAAD7AAD9JwAA+yAAAAJcAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAD9L18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYETyYB/gEOAaoAAgAQIgRPY0wAAADoAAAA7AAAADgAA/TEAAP05AAAAtKcAAAMVAAADFgAAAxcAAAMYAAADGQAAAxoAAAMbgJWAloCXgJiAmYCagJunAAD9OgAA/TsAAP08AAD9PQAA/T4AAP0/AAD9QIET2YET2oET24ET3IET3YET3oET34Bj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAD8hgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxUAAAEKAAABCgAAABcAAAEKgACAAIAAgRPXCAgICIBUgJUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA/IYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMWAAABCgAAAQoAAAAXAAABCoAAgGCAAIET1wgICAiAVICWCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPyGAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBE9cICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAX00AAAAXAAD8hgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACBB72AAIET1wgICAiAVICYCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAPyGAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBE9cICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAD8hgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgRPXCAgICIBUgJoICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA/IYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMbAAABCgAAAQoAAAAXAAABCoAAgACAAIET1wgICAiAVICbCAiAAAjfEBIAAAFAAAABQQAAAUIAAP2sAAAAIQAAAUQAAAFFAAD9rQAAACMAAAFDAAD9rgAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAqgAAAQoAAAEKAAD9tgAAADEAAAEKAAAA/AAAAQoAAAJSAAD7GwAAAQoAAAEKAAD9vgAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIETmggIgRPiCIBDCIClgROvCAiBE+EIEmpu6EHTAAAAOgAAADsAAAAOAAD9wgAA/cUAAAC0ogAAAlsAAAJcgH6Af6IAAP3GAAD9x4ET44ET7oBj2QAAACEAAAAlAAD9ygAAAA4AAAAoAAD9ywAAACMAAAD7AAD9zAAA+yEAAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAD91F8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYET4IB+gEOAaoAAgAQIgRPk0wAAADoAAAA7AAAADgAA/dYAAP3fAAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAAD94AAA/eEAAP3iAAD94wAA/eQAAP3lAAD95gAA/eeBE+WBE+aBE+eBE+mBE+qBE+uBE+yBE+2AY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA/cYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIET4wgICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAP3GAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBE+MICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA/gkAAAAXAAD9xgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBE+iAAIET4wgICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAAD+FwAA/hgAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA/cYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIET4wgICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAEHwAAABcAAP3GAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAICxgACBE+MICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAD9xgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRPjCAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA/cYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIET4wgICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAP3GAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBE+MICAgIgFSAiQgIgAAI2QAAACEAAAAlAAD+ZgAAAA4AAAAoAAD+ZwAAACMAAAD7AAD+aAAA+yEAAAJcAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAD+cF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYET4IB/gEOAaoAAgAQIgRPv0wAAADoAAAA7AAAADgAA/nIAAP56AAAAtKcAAAMVAAADFgAAAxcAAAMYAAADGQAAAxoAAAMbgJWAloCXgJiAmYCagJunAAD+ewAA/nwAAP59AAD+fgAA/n8AAP6AAAD+gYET8IET8YET8oET84ET9IET9YET9oBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAD9xwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxUAAAEKAAABCgAAABcAAAEKgACAAIAAgRPuCAgICIBUgJUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA/ccAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMWAAABCgAAAQoAAAAXAAABCoAAgGCAAIET7ggICAiAVICWCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAP3HAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBE+4ICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAH1QAAAAXAAD9xwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACBAsiAAIET7ggICAiAVICYCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAP3HAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBE+4ICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAD9xwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgRPuCAgICIBUgJoICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA/ccAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMbAAABCgAAAQoAAAAXAAABCoAAgACAAIET7ggICAiAVICbCAiAAAjfEBIAAAFAAAABQQAAAUIAAP7tAAAAIQAAAUQAAAFFAAD+7gAAACMAAAFDAAD+7wAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAqgAAAQoAAAEKAAD+9wAAADEAAAEKAAAA/AAAAQoAAAJSAAD7HAAAAQoAAAEKAAD+/wAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIETmggIgRP5CIBDCIClgROwCAiBE/gIEvRjJCDTAAAAOgAAADsAAAAOAAD/AwAA/wYAAAC0ogAAAlsAAAJcgH6Af6IAAP8HAAD/CIET+oEUBYBj2QAAACEAAAAlAAD/CwAAAA4AAAAoAAD/DAAAACMAAAD7AAD/DQAA+yIAAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAD/FV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYET94B+gEOAaoAAgAQIgRP70wAAADoAAAA7AAAADgAA/xcAAP8gAAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAAD/IQAA/yIAAP8jAAD/JAAA/yUAAP8mAAD/JwAA/yiBE/yBE/2BE/6BFACBFAGBFAKBFAOBFASAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA/wcAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIET+ggICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAP8HAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBE/oICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA/0oAAAAXAAD/BwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBE/+AAIET+ggICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAAD/WAAA/1kAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA/wcAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIET+ggICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAEHwAAABcAAP8HAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAICxgACBE/oICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAD/BwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRP6CAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA/wcAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIET+ggICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAP8HAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBE/oICAgIgFSAiQgIgAAI2QAAACEAAAAlAAD/pwAAAA4AAAAoAAD/qAAAACMAAAD7AAD/qQAA+yIAAAJcAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAD/sV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYET94B/gEOAaoAAgAQIgRQG0wAAADoAAAA7AAAADgAA/7MAAP+7AAAAtKcAAAMVAAADFgAAAxcAAAMYAAADGQAAAxoAAAMbgJWAloCXgJiAmYCagJunAAD/vAAA/70AAP++AAD/vwAA/8AAAP/BAAD/woEUB4EUCIEUCYEUCoEUC4EUDIEUDYBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAD/CAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxUAAAEKAAABCgAAABcAAAEKgACAAIAAgRQFCAgICIBUgJUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA/wgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMWAAABCgAAAQoAAAAXAAABCoAAgGCAAIEUBQgICAiAVICWCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAP8IAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFAUICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAH1QAAAAXAAD/CAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACBAsiAAIEUBQgICAiAVICYCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAP8IAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFAUICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAD/CAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgRQFCAgICIBUgJoICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAA/wgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMbAAABCgAAAQoAAAAXAAABCoAAgACAAIEUBQgICAiAVICbCAiAAAjfEBIAAAFAAAABQQAAAUIAAQAuAAAAIQAAAUQAAAFFAAEALwAAACMAAAFDAAEAMAAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAqgAAAQoAAAEKAAEAOAAAADEAAAEKAAAA/AAAAQoAAAJSAAD7HQAAAQoAAAEKAAEAQAAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIETmggIgRQQCIBDCIClgROxCAiBFA8IEpA5xUPTAAAAOgAAADsAAAAOAAEARAABAEcAAAC0ogAAAlsAAAJcgH6Af6IAAQBIAAEASYEUEYEUHIBj2QAAACEAAAAlAAEATAAAAA4AAAAoAAEATQAAACMAAAD7AAEATgAA+yMAAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAEAVl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEUDoB+gEOAaoAAgAQIgRQS0wAAADoAAAA7AAAADgABAFgAAQBhAAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAAEAYgABAGMAAQBkAAEAZQABAGYAAQBnAAEAaAABAGmBFBOBFBSBFBWBFBeBFBiBFBmBFBqBFBuAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABAEgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIEUEQgICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQBIAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFBEICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwABAIsAAAAXAAEASAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBFBaAAIEUEQgICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAAEAmQABAJoAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABAEgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIEUEQgICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQBIAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAIBggACBFBEICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEASAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRQRCAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABAEgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIEUEQgICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQBIAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBFBEICAgIgFSAiQgIgAAI2QAAACEAAAAlAAEA6AAAAA4AAAAoAAEA6QAAACMAAAD7AAEA6gAA+yMAAAJcAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAEA8l8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEUDoB/gEOAaoAAgAQIgRQd0wAAADoAAAA7AAAADgABAPQAAQD8AAAAtKcAAAMVAAADFgAAAxcAAAMYAAADGQAAAxoAAAMbgJWAloCXgJiAmYCagJunAAEA/QABAP4AAQD/AAEBAAABAQEAAQECAAEBA4EUHoEUH4EUIIEUIYEUIoEUI4EUJIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEASQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxUAAAEKAAABCgAAABcAAAEKgACAAIAAgRQcCAgICIBUgJUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABAEkAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMWAAABCgAAAQoAAAAXAAABCoAAgGCAAIEUHAgICAiAVICWCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQBJAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFBwICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAH1QAAAAXAAEASQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACBAsiAAIEUHAgICAiAVICYCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQBJAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFBwICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEASQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgRQcCAgICIBUgJoICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABAEkAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMbAAABCgAAAQoAAAAXAAABCoAAgACAAIEUHAgICAiAVICbCAiAAAjSAAAAOwAAAA4AAQFvAAABWqCAU9IAAAA7AAAADgABAXIAAAFaogAA+i0AAQF0gROYgRQngFPXAAAADgAAACUAAKFPAAAAIQAAACgAAKFQAAAAIwAAoVEAAAAXAAAAkQAAAJEAAQF7AAAAqgAAADGBDb2AAIEUKIEUKIEUbIETmt8QEAABAX4AAQF/AAEBgAABAYEAAAAhAAEBggABAYMAAAAjAAEBhAABAYUAAAAOAAAAJQABAYYAAQGHAAAAKAAAAPsAAAD8AAEBiQAAACkAAAApAAAAFAABAY0AAAECAAAAMQAAACkAAAD8AAABBQAAAFUAAAD8AAEBlAABAZUAAAEKXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlgEOBFDuABIAEgAKBFCqBAxGABIBDgQMTgB6AQ4EUa4EUKQgSXbSU0dMAAAA6AAAAOwAAAA4AAQGZAAEBmwAAALShAAABD4BFoQABAZyBFCuAY9kAAAAhAAAAJQABAZ8AAAAOAAAAKAABAaAAAAAjAAAA+wABAaEAAACRAAABDwAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgABAalfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFCiARYBDgGqAAIAECIEULNMAAAA6AAAAOwAAAA4AAQGrAAEBtQAAALSpAAABIgAAASMAAAEkAAABJQAAASYAAAEnAAABKAAAASkAAAEqgEiASYBKgEuATIBNgE6AT4BQqQABAbYAAQG3AAEBuAABAbkAAQG6AAEBuwABAbwAAQG9AAEBvoEULYEUL4EUMIEUMoEUM4EUNYEUNoEUOIEUOYBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwABAcIAAAAXAAEBnAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASIAAAEKAAABCgAAABcAAAEKgACBFC6AAIEUKwgICAiAVIBICAiAAAjSAAAAOwAAAA4AAQHQAAABWqCAU98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABAZwAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEjAAABCgAAAQoAAAAXAAABCoAAgACAAIEUKwgICAiAVIBJCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAEB4wAAABcAAQGcAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABJAAAAQoAAAEKAAAAFwAAAQqAAIEUMYAAgRQrCAgICIBUgEoICIAACNIAAAA7AAAADgABAfEAAAFaoIBT3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEBnAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASUAAAEKAAABCgAAABcAAAEKgACAAIAAgRQrCAgICIBUgEsICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAQIEAAAAFwABAZwAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEmAAABCgAAAQoAAAAXAAABCoAAgRQ0gACBFCsICAgIgFSATAgIgAAI0gAAADsAAAAOAAECEgAAAVqggFPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQGcAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABJwAAAQoAAAEKAAAAFwAAAQqAAIBggACBFCsICAgIgFSATQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwABAiUAAAAXAAEBnAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASgAAAEKAAABCgAAABcAAAEKgACBFDeAAIEUKwgICAiAVIBOCAiAAAjTAAAAOgAAADsAAAAOAAECMwABAjQAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAHdAAAAFwABAZwAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEpAAABCgAAAQoAAAAXAAABCoAAgGWAAIEUKwgICAiAVIBPCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAECRwAAABcAAQGcAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABKgAAAQoAAAEKAAAAFwAAAQqAAIEUOoAAgRQrCAgICIBUgFAICIAACF8QHUNvbnRhY3RJZGVudGl0eURldGFpbHNUcnVzdGVk0wAAADoAAAA7AAAADgABAlYAAQJYAAAAtKEAAQJXgRQ8oQABAlmBFD2AY18QD2NvbnRhY3RJZGVudGl0ed8QEgAAAUAAAAFBAAABQgABAl0AAAAhAAABRAAAAUUAAQJeAAAAIwAAAUMAAQJfAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACRAAABCgAAAQoAAQJnAAAAMQAAAQoAAAD8AAABCgAAFAQAAQJXAAABCgAAAQoAAQJvAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRQoCAiBFD8IgEMIgQJvgRQ8CAiBFD4IEwAAAAEg5z390wAAADoAAAA7AAAADgABAnMAAQJ2AAAAtKIAAAJbAAAUDoB+gQHdogABAncAAQJ4gRRAgRRLgGPZAAAAIQAAACUAAQJ7AAAADgAAACgAAQJ8AAAAIwAAAPsAAQJ9AAECWQAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAQKFXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRQ9gH6AQ4BqgACABAiBFEHTAAAAOgAAADsAAAAOAAEChwABApAAAAC0qAAAAnEAAAJyAAACcwAAAnQAAAJ1AAACdgAAAncAAAJ4gIKAg4CEgIWAhoCHgIiAiagAAQKRAAECkgABApMAAQKUAAEClQABApYAAQKXAAECmIEUQoEUQ4EURIEURoEUR4EUSIEUSYEUSoBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAECdwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnEAAAEKAAABCgAAABcAAAEKgACAYIAAgRRACAgICIBUgIIICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABAncAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJyAAABCgAAAQoAAAAXAAABCoAAgACAAIEUQAgICAiAVICDCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAECugAAABcAAQJ3AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcwAAAQoAAAEKAAAAFwAAAQqAAIEURYAAgRRACAgICIBUgIQICIAACNMAAAA6AAAAOwAAAA4AAQLIAAECyQAAALSgoIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAECdwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnQAAAEKAAABCgAAABcAAAEKgACAYIAAgRRACAgICIBUgIUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABAncAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ1AAABCgAAAQoAAAAXAAABCoAAgGCAAIEUQAgICAiAVICGCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQJ3AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdgAAAQoAAAEKAAAAFwAAAQqAAIBggACBFEAICAgIgFSAhwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAECdwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAncAAAEKAAABCgAAABcAAAEKgACAAIAAgRRACAgICIBUgIgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABAncAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ4AAABCgAAAQoAAAAXAAABCoAAgGCAAIEUQAgICAiAVICJCAiAAAjZAAAAIQAAACUAAQMXAAAADgAAACgAAQMYAAAAIwAAAPsAAQMZAAECWQAAFA4AAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAQMhXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRQ9gQHdgEOAaoAAgAQIgRRM0wAAADoAAAA7AAAADgABAyMAAQMrAAAAtKcAABS+AAAUvwAAFMAAABTBAAAUwgAAFMMAABTEgQHrgQHsgQHtgQHugQHvgQHwgQHxpwABAywAAQMtAAEDLgABAy8AAQMwAAEDMQABAzKBFE2BFE6BFE+BFFCBFFGBFFKBFFOAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABTXAAAAFwABAngAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABS+AAABCgAAAQoAAAAXAAABCoAAgQHzgACBFEsICAgIgFSBAesICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABqsAAAAFwABAngAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABS/AAABCgAAAQoAAAAXAAABCoAAgQJpgACBFEsICAgIgFSBAewICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABqsAAAAFwABAngAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTAAAABCgAAAQoAAAAXAAABCoAAgQJpgACBFEsICAgIgFSBAe0ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAACZAAAAFwABAngAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTBAAABCgAAAQoAAAAXAAABCoAAgQeGgACBFEsICAgIgFSBAe4ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABAngAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTCAAABCgAAAQoAAAAXAAABCoAAgGCAAIEUSwgICAiAVIEB7wgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAECeAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMMAAAEKAAABCgAAABcAAAEKgACAYIAAgRRLCAgICIBUgQHwCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAABeMwAAABcAAQJ4AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUxAAAAQoAAAEKAAAAFwAAAQqAAIEUVIAAgRRLCAgICIBUgQHxCAiAAAjfEBIAAAFAAAABQQAAAUIAAQOeAAAAIQAAAUQAAAFFAAEDnwAAACMAAAFDAAEDoAAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAmQAAAQoAAAEKAAEDqAAAADEAAAEKAAAA/AAAAQoAABQEAABeIwAAAQoAAAEKAAEDsAAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEHhggIgRRWCIBDCIECb4EHpggIgRRVCBIt5uU30wAAADoAAAA7AAAADgABA7QAAQO3AAAAtKIAAAJbAAAUDoB+gQHdogABA7gAAQO5gRRXgRRigGPZAAAAIQAAACUAAQO8AAAADgAAACgAAQO9AAAAIwAAAPsAAQO+AABeMwAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAQPGXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRRUgH6AQ4BqgACABAiBFFjTAAAAOgAAADsAAAAOAAEDyAABA9EAAAC0qAAAAnEAAAJyAAACcwAAAnQAAAJ1AAACdgAAAncAAAJ4gIKAg4CEgIWAhoCHgIiAiagAAQPSAAED0wABA9QAAQPVAAED1gABA9cAAQPYAAED2YEUWYEUWoEUW4EUXYEUXoEUX4EUYIEUYYBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEDuAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnEAAAEKAAABCgAAABcAAAEKgACAYIAAgRRXCAgICIBUgIIICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABA7gAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJyAAABCgAAAQoAAAAXAAABCoAAgACAAIEUVwgICAiAVICDCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAED+wAAABcAAQO4AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcwAAAQoAAAEKAAAAFwAAAQqAAIEUXIAAgRRXCAgICIBUgIQICIAACNMAAAA6AAAAOwAAAA4AAQQJAAEECgAAALSgoIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEDuAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnQAAAEKAAABCgAAABcAAAEKgACAYIAAgRRXCAgICIBUgIUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABA7gAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ1AAABCgAAAQoAAAAXAAABCoAAgGCAAIEUVwgICAiAVICGCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQO4AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdgAAAQoAAAEKAAAAFwAAAQqAAIBggACBFFcICAgIgFSAhwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEDuAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAncAAAEKAAABCgAAABcAAAEKgACAAIAAgRRXCAgICIBUgIgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABA7gAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ4AAABCgAAAQoAAAAXAAABCoAAgGCAAIEUVwgICAiAVICJCAiAAAjZAAAAIQAAACUAAQRYAAAADgAAACgAAQRZAAAAIwAAAPsAAQRaAABeMwAAFA4AAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAQRiXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRRUgQHdgEOAaoAAgAQIgRRj0wAAADoAAAA7AAAADgABBGQAAQRsAAAAtKcAABS+AAAUvwAAFMAAABTBAAAUwgAAFMMAABTEgQHrgQHsgQHtgQHugQHvgQHwgQHxpwABBG0AAQRuAAEEbwABBHAAAQRxAAEEcgABBHOBFGSBFGWBFGaBFGeBFGiBFGmBFGqAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABTXAAAAFwABA7kAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABS+AAABCgAAAQoAAAAXAAABCoAAgQHzgACBFGIICAgIgFSBAesICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABTmAAAAFwABA7kAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABS/AAABCgAAAQoAAAAXAAABCoAAgQH1gACBFGIICAgIgFSBAewICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABqsAAAAFwABA7kAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTAAAABCgAAAQoAAAAXAAABCoAAgQJpgACBFGIICAgIgFSBAe0ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAACRAAAAFwABA7kAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTBAAABCgAAAQoAAAAXAAABCoAAgRQogACBFGIICAgIgFSBAe4ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABA7kAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTCAAABCgAAAQoAAAAXAAABCoAAgGCAAIEUYggICAiAVIEB7wgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEDuQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMMAAAEKAAABCgAAABcAAAEKgACAYIAAgRRiCAgICIBUgQHwCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAECWQAAABcAAQO5AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUxAAAAQoAAAEKAAAAFwAAAQqAAIEUPYAAgRRiCAgICIBUgQHxCAiAAAjSAAAAOwAAAA4AAQTfAAABWqEAAQF0gRQngFMSPbxbid8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA9xMAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTCAAABCgAAAQoAAAAXAAABCoAAgGCAAIETZQgICAiAVIEB7wgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAD3EwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMMAAAEKAAABCgAAABcAAAEKgACAYIAAgRNlCAgICIBUgQHwCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAD45wAAABcAAPcTAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUxAAAAQoAAAEKAAAAFwAAAQqAAIETgIAAgRNlCAgICIBUgQHxCAiAAAjfEBIAAAFAAAABQQAAAUIAAQURAAAAIQAAAUQAAAFFAAEFEgAAACMAAAFDAAEFEwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAmQAAAQoAAAEKAAEFGwAAADEAAAEKAAAA/AAAAQoAABQEAABeHgAAAQoAAAEKAAEFIwAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEHhggIgRRyCIBDCIECb4EHoQgIgRRxCBMAAAABAXUlV9MAAAA6AAAAOwAAAA4AAQUnAAEFKgAAALSiAAACWwAAFA6AfoEB3aIAAQUrAAEFLIEUc4EUfoBj2QAAACEAAAAlAAEFLwAAAA4AAAAoAAEFMAAAACMAAAD7AAEFMQAAXi4AAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAEFOV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEUcIB+gEOAaoAAgAQIgRR00wAAADoAAAA7AAAADgABBTsAAQVEAAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAAEFRQABBUYAAQVHAAEFSAABBUkAAQVKAAEFSwABBUyBFHWBFHaBFHeBFHmBFHqBFHuBFHyBFH2AY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABBSsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIEUcwgICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQUrAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFHMICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwABBW4AAAAXAAEFKwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBFHiAAIEUcwgICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAAEFfAABBX0AAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABBSsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIEUcwgICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQUrAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAIBggACBFHMICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEFKwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRRzCAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABBSsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIEUcwgICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQUrAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBFHMICAgIgFSAiQgIgAAI2QAAACEAAAAlAAEFywAAAA4AAAAoAAEFzAAAACMAAAD7AAEFzQAAXi4AABQOAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAEF1V8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEUcIEB3YBDgGqAAIAECIEUf9MAAAA6AAAAOwAAAA4AAQXXAAEF3wAAALSnAAAUvgAAFL8AABTAAAAUwQAAFMIAABTDAAAUxIEB64EB7IEB7YEB7oEB74EB8IEB8acAAQXgAAEF4QABBeIAAQXjAAEF5AABBeUAAQXmgRSAgRSBgRSCgRSDgRVBgRVCgRVDgGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAU1wAAABcAAQUsAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUvgAAAQoAAAEKAAAAFwAAAQqAAIEB84AAgRR+CAgICIBUgQHrCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAU5gAAABcAAQUsAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUvwAAAQoAAAEKAAAAFwAAAQqAAIEB9YAAgRR+CAgICIBUgQHsCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAU1wAAABcAAQUsAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwAAAAQoAAAEKAAAAFwAAAQqAAIEB84AAgRR+CAgICIBUgQHtCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAggAAABcAAQUsAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwQAAAQoAAAEKAAAAFwAAAQqAAIEUhIAAgRR+CAgICIBUgQHuCAiAAAjfEBAAAQYlAAEGJgABBicAAQYoAAAAIQABBikAAQYqAAAAIwABBisAAQYsAAAADgAAACUAAQYtAAEGLgAAACgAAAD7AAAA/AABBjAAAAApAAAAKQAAABQAAQY0AAABAgAAADEAAAApAAAA/AAAAQUAAABGAAAA/AABBjsAAQY8AAABCl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zb3JkZXJlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZYBDgRSXgASABIACgRSGgQMRgASAQ4EDE4APgEOBFUCBFIUIEtD6tcvTAAAAOgAAADsAAAAOAAEGQAABBkIAAAC0oQAAAQ+ARaEAAQZDgRSHgGPZAAAAIQAAACUAAQZGAAAADgAAACgAAQZHAAAAIwAAAPsAAQZIAAAAggAAAQ8AAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAQZQXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRSEgEWAQ4BqgACABAiBFIjTAAAAOgAAADsAAAAOAAEGUgABBlwAAAC0qQAAASIAAAEjAAABJAAAASUAAAEmAAABJwAAASgAAAEpAAABKoBIgEmASoBLgEyATYBOgE+AUKkAAQZdAAEGXgABBl8AAQZgAAEGYQABBmIAAQZjAAEGZAABBmWBFImBFIuBFIyBFI6BFI+BFJGBFJKBFJSBFJWAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAQZpAAAAFwABBkMAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEiAAABCgAAAQoAAAAXAAABCoAAgRSKgACBFIcICAgIgFSASAgIgAAI0gAAADsAAAAOAAEGdwAAAVqggFPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQZDAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABIwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFIcICAgIgFSASQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwABBooAAAAXAAEGQwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASQAAAEKAAABCgAAABcAAAEKgACBFI2AAIEUhwgICAiAVIBKCAiAAAjSAAAAOwAAAA4AAQaYAAABWqCAU98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABBkMAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAElAAABCgAAAQoAAAAXAAABCoAAgACAAIEUhwgICAiAVIBLCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAEGqwAAABcAAQZDAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABJgAAAQoAAAEKAAAAFwAAAQqAAIEUkIAAgRSHCAgICIBUgEwICIAACNIAAAA7AAAADgABBrkAAAFaoIBT3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEGQwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAScAAAEKAAABCgAAABcAAAEKgACAYIAAgRSHCAgICIBUgE0ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAQbMAAAAFwABBkMAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEoAAABCgAAAQoAAAAXAAABCoAAgRSTgACBFIcICAgIgFSATggIgAAI0wAAADoAAAA7AAAADgABBtoAAQbbAAAAtKCggGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAB3QAAABcAAQZDAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABKQAAAQoAAAEKAAAAFwAAAQqAAIBlgACBFIcICAgIgFSATwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwABBu4AAAAXAAEGQwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASoAAAEKAAABCgAAABcAAAEKgACBFJaAAIEUhwgICAiAVIBQCAiAAAhfEBRQZXJzaXN0ZWRUcnVzdE9yaWdpbtMAAAA6AAAAOwAAAA4AAQb9AAEHBQAAALSnAAEG/gABBv8AAQcAAAEHAQABBwIAAEG/AAEHBIEUmIEUmYEUmoEUm4EUnIEFf4EUnacAAQcGAAEHBwABBwgAAQcJAAEHCgABBwsAAQcMgRSegRS1gRTMgRTjgRT6gRURgRUogGNcdHJ1c3RUeXBlUmF3XxAXcmF3T2J2R3JvdXBWMklkZW50aWZpZXJXY29udGFjdF5pZGVudGl0eVNlcnZlcl8QI21lZGlhdG9yT3JHcm91cE93bmVyVHJ1c3RMZXZlbE1ham9yXxAibWVkaWF0b3JPckdyb3VwT3duZXJDcnlwdG9JZGVudGl0ed8QEgAAAUAAAAFBAAABQgABBxUAAAAhAAABRAAAAUUAAQcWAAAAIwAAAUMAAQcXAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACCAAABCgAAAQoAAQcfAAAAMQAAAQoAAAD8AAABCgAAAlIAAQb+AAABCgAAAQoAAQcnAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRSECAiBFKAIgEMIgKWBFJgICIEUnwgSx25uodMAAAA6AAAAOwAAAA4AAQcrAAEHLgAAALSiAAACWwAAAlyAfoB/ogABBy8AAQcwgRShgRSsgGPZAAAAIQAAACUAAQczAAAADgAAACgAAQc0AAAAIwAAAPsAAQc1AAEHBgAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAQc9XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRSegH6AQ4BqgACABAiBFKLTAAAAOgAAADsAAAAOAAEHPwABB0gAAAC0qAAAAnEAAAJyAAACcwAAAnQAAAJ1AAACdgAAAncAAAJ4gIKAg4CEgIWAhoCHgIiAiagAAQdJAAEHSgABB0sAAQdMAAEHTQABB04AAQdPAAEHUIEUo4EUpIEUpYEUp4EUqIEUqYEUqoEUq4Bj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEHLwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnEAAAEKAAABCgAAABcAAAEKgACAYIAAgRShCAgICIBUgIIICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABBy8AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJyAAABCgAAAQoAAAAXAAABCoAAgACAAIEUoQgICAiAVICDCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAEHcgAAABcAAQcvAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcwAAAQoAAAEKAAAAFwAAAQqAAIEUpoAAgRShCAgICIBUgIQICIAACNMAAAA6AAAAOwAAAA4AAQeAAAEHgQAAALSgoIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEHLwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnQAAAEKAAABCgAAABcAAAEKgACAYIAAgRShCAgICIBUgIUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABBy8AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ1AAABCgAAAQoAAAAXAAABCoAAgGCAAIEUoQgICAiAVICGCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQcvAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdgAAAQoAAAEKAAAAFwAAAQqAAIBggACBFKEICAgIgFSAhwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEHLwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAncAAAEKAAABCgAAABcAAAEKgACAAIAAgRShCAgICIBUgIgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABBy8AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ4AAABCgAAAQoAAAAXAAABCoAAgGCAAIEUoQgICAiAVICJCAiAAAjZAAAAIQAAACUAAQfPAAAADgAAACgAAQfQAAAAIwAAAPsAAQfRAAEHBgAAAlwAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAQfZXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRSegH+AQ4BqgACABAiBFK3TAAAAOgAAADsAAAAOAAEH2wABB+MAAAC0pwAAAxUAAAMWAAADFwAAAxgAAAMZAAADGgAAAxuAlYCWgJeAmICZgJqAm6cAAQfkAAEH5QABB+YAAQfnAAEH6AABB+kAAQfqgRSugRSvgRSwgRSxgRSygRSzgRS0gGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQcwAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFKwICAgIgFSAlQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEHMAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxYAAAEKAAABCgAAABcAAAEKgACAYIAAgRSsCAgICIBUgJYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABBzAAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMXAAABCgAAAQoAAAAXAAABCoAAgACAAIEUrAgICAiAVICXCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAF6gAAABcAAQcwAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGAAAAQoAAAEKAAAAFwAAAQqAAIDUgACBFKwICAgIgFSAmAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEHMAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxkAAAEKAAABCgAAABcAAAEKgACAAIAAgRSsCAgICIBUgJkICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABBzAAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMaAAABCgAAAQoAAAAXAAABCoAAgACAAIEUrAgICAiAVICaCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQcwAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFKwICAgIgFSAmwgIgAAI3xASAAABQAAAAUEAAAFCAAEIVgAAACEAAAFEAAABRQABCFcAAAAjAAABQwABCFgAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAAKQAAAIIAAAEKAAABCgABCGAAAAAxAAABCgAAAPwAAAEKAAACUgABBv8AAAEKAAABCgABCGgAAAEKXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBFIQICIEUtwiAQwiApYEUmQgIgRS2CBMAAAABHrx5vNMAAAA6AAAAOwAAAA4AAQhsAAEIbwAAALSiAAACWwAAAlyAfoB/ogABCHAAAQhxgRS4gRTDgGPZAAAAIQAAACUAAQh0AAAADgAAACgAAQh1AAAAIwAAAPsAAQh2AAEHBwAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAQh+XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRS1gH6AQ4BqgACABAiBFLnTAAAAOgAAADsAAAAOAAEIgAABCIkAAAC0qAAAAnEAAAJyAAACcwAAAnQAAAJ1AAACdgAAAncAAAJ4gIKAg4CEgIWAhoCHgIiAiagAAQiKAAEIiwABCIwAAQiNAAEIjgABCI8AAQiQAAEIkYEUuoEUu4EUvIEUvoEUv4EUwIEUwYEUwoBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEIcAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnEAAAEKAAABCgAAABcAAAEKgACAYIAAgRS4CAgICIBUgIIICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABCHAAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJyAAABCgAAAQoAAAAXAAABCoAAgACAAIEUuAgICAiAVICDCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAEIswAAABcAAQhwAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcwAAAQoAAAEKAAAAFwAAAQqAAIEUvYAAgRS4CAgICIBUgIQICIAACNMAAAA6AAAAOwAAAA4AAQjBAAEIwgAAALSgoIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEIcAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnQAAAEKAAABCgAAABcAAAEKgACAYIAAgRS4CAgICIBUgIUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAQfAAAAFwABCHAAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ1AAABCgAAAQoAAAAXAAABCoAAgLGAAIEUuAgICAiAVICGCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQhwAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdgAAAQoAAAEKAAAAFwAAAQqAAIBggACBFLgICAgIgFSAhwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEIcAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAncAAAEKAAABCgAAABcAAAEKgACAAIAAgRS4CAgICIBUgIgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABCHAAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ4AAABCgAAAQoAAAAXAAABCoAAgGCAAIEUuAgICAiAVICJCAiAAAjZAAAAIQAAACUAAQkQAAAADgAAACgAAQkRAAAAIwAAAPsAAQkSAAEHBwAAAlwAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAQkaXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRS1gH+AQ4BqgACABAiBFMTTAAAAOgAAADsAAAAOAAEJHAABCSQAAAC0pwAAAxUAAAMWAAADFwAAAxgAAAMZAAADGgAAAxuAlYCWgJeAmICZgJqAm6cAAQklAAEJJgABCScAAQkoAAEJKQABCSoAAQkrgRTFgRTGgRTHgRTIgRTJgRTKgRTLgGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQhxAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFMMICAgIgFSAlQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEIcQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxYAAAEKAAABCgAAABcAAAEKgACAYIAAgRTDCAgICIBUgJYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABCHEAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMXAAABCgAAAQoAAAAXAAABCoAAgACAAIEUwwgICAiAVICXCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAfVAAAABcAAQhxAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGAAAAQoAAAEKAAAAFwAAAQqAAIECyIAAgRTDCAgICIBUgJgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABCHEAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMZAAABCgAAAQoAAAAXAAABCoAAgACAAIEUwwgICAiAVICZCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQhxAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFMMICAgIgFSAmggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEIcQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxsAAAEKAAABCgAAABcAAAEKgACAAIAAgRTDCAgICIBUgJsICIAACN8QEgAAAUAAAAFBAAABQgABCZcAAAAhAAABRAAAAUUAAQmYAAAAIwAAAUMAAQmZAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACCAAABCgAAAQoAAQmhAAAAMQAAAQoAAAD8AAABCgAAFAQAAQcAAAABCgAAAQoAAQmpAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRSECAiBFM4IgEMIgQJvgRSaCAiBFM0IEriyJtXTAAAAOgAAADsAAAAOAAEJrQABCbAAAAC0ogAAAlsAABQOgH6BAd2iAAEJsQABCbKBFM+BFNqAY9kAAAAhAAAAJQABCbUAAAAOAAAAKAABCbYAAAAjAAAA+wABCbcAAQcIAAACWwAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgABCb9fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFMyAfoBDgGqAAIAECIEU0NMAAAA6AAAAOwAAAA4AAQnBAAEJygAAALSoAAACcQAAAnIAAAJzAAACdAAAAnUAAAJ2AAACdwAAAniAgoCDgISAhYCGgIeAiICJqAABCcsAAQnMAAEJzQABCc4AAQnPAAEJ0AABCdEAAQnSgRTRgRTSgRTTgRTVgRTWgRTXgRTYgRTZgGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQmxAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcQAAAQoAAAEKAAAAFwAAAQqAAIBggACBFM8ICAgIgFSAgggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEJsQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnIAAAEKAAABCgAAABcAAAEKgACAAIAAgRTPCAgICIBUgIMICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAQn0AAAAFwABCbEAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJzAAABCgAAAQoAAAAXAAABCoAAgRTUgACBFM8ICAgIgFSAhAgIgAAI0wAAADoAAAA7AAAADgABCgIAAQoDAAAAtKCggGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQmxAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdAAAAQoAAAEKAAAAFwAAAQqAAIBggACBFM8ICAgIgFSAhQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEJsQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnUAAAEKAAABCgAAABcAAAEKgACAYIAAgRTPCAgICIBUgIYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABCbEAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ2AAABCgAAAQoAAAAXAAABCoAAgGCAAIEUzwgICAiAVICHCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQmxAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFM8ICAgIgFSAiAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEJsQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAngAAAEKAAABCgAAABcAAAEKgACAYIAAgRTPCAgICIBUgIkICIAACNkAAAAhAAAAJQABClEAAAAOAAAAKAABClIAAAAjAAAA+wABClMAAQcIAAAUDgAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgABCltfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFMyBAd2AQ4BqgACABAiBFNvTAAAAOgAAADsAAAAOAAEKXQABCmUAAAC0pwAAFL4AABS/AAAUwAAAFMEAABTCAAAUwwAAFMSBAeuBAeyBAe2BAe6BAe+BAfCBAfGnAAEKZgABCmcAAQpoAAEKaQABCmoAAQprAAEKbIEU3IEU3YEU3oEU34EU4IEU4YEU4oBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAFNcAAAAXAAEJsgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFL4AAAEKAAABCgAAABcAAAEKgACBAfOAAIEU2ggICAiAVIEB6wgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAGqwAAAAXAAEJsgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFL8AAAEKAAABCgAAABcAAAEKgACBAmmAAIEU2ggICAiAVIEB7AgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAGqwAAAAXAAEJsgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMAAAAEKAAABCgAAABcAAAEKgACBAmmAAIEU2ggICAiAVIEB7QgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAJkAAAAXAAEJsgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMEAAAEKAAABCgAAABcAAAEKgACBB4aAAIEU2ggICAiAVIEB7ggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEJsgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMIAAAEKAAABCgAAABcAAAEKgACAYIAAgRTaCAgICIBUgQHvCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQmyAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwwAAAQoAAAEKAAAAFwAAAQqAAIBggACBFNoICAgIgFSBAfAICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAF4uAAAAFwABCbIAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTEAAABCgAAAQoAAAAXAAABCoAAgRRwgACBFNoICAgIgFSBAfEICIAACN8QEgAAAUAAAAFBAAABQgABCtgAAAAhAAABRAAAAUUAAQrZAAAAIwAAAUMAAQraAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACCAAABCgAAAQoAAQriAAAAMQAAAQoAAAD8AAABCgAAAlIAAQcBAAABCgAAAQoAAQrqAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRSECAiBFOUIgEMIgKWBFJsICIEU5AgSp2J179MAAAA6AAAAOwAAAA4AAQruAAEK8QAAALSiAAACWwAAAlyAfoB/ogABCvIAAQrzgRTmgRTxgGPZAAAAIQAAACUAAQr2AAAADgAAACgAAQr3AAAAIwAAAPsAAQr4AAEHCQAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAQsAXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRTjgH6AQ4BqgACABAiBFOfTAAAAOgAAADsAAAAOAAELAgABCwsAAAC0qAAAAnEAAAJyAAACcwAAAnQAAAJ1AAACdgAAAncAAAJ4gIKAg4CEgIWAhoCHgIiAiagAAQsMAAELDQABCw4AAQsPAAELEAABCxEAAQsSAAELE4EU6IEU6YEU6oEU7IEU7YEU7oEU74EU8IBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEK8gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnEAAAEKAAABCgAAABcAAAEKgACAYIAAgRTmCAgICIBUgIIICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABCvIAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJyAAABCgAAAQoAAAAXAAABCoAAgACAAIEU5ggICAiAVICDCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAELNQAAABcAAQryAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcwAAAQoAAAEKAAAAFwAAAQqAAIEU64AAgRTmCAgICIBUgIQICIAACNMAAAA6AAAAOwAAAA4AAQtDAAELRAAAALSgoIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEK8gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnQAAAEKAAABCgAAABcAAAEKgACAYIAAgRTmCAgICIBUgIUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAQfAAAAFwABCvIAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ1AAABCgAAAQoAAAAXAAABCoAAgLGAAIEU5ggICAiAVICGCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQryAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdgAAAQoAAAEKAAAAFwAAAQqAAIBggACBFOYICAgIgFSAhwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEK8gAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAncAAAEKAAABCgAAABcAAAEKgACAAIAAgRTmCAgICIBUgIgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABCvIAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ4AAABCgAAAQoAAAAXAAABCoAAgGCAAIEU5ggICAiAVICJCAiAAAjZAAAAIQAAACUAAQuSAAAADgAAACgAAQuTAAAAIwAAAPsAAQuUAAEHCQAAAlwAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAQucXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRTjgH+AQ4BqgACABAiBFPLTAAAAOgAAADsAAAAOAAELngABC6YAAAC0pwAAAxUAAAMWAAADFwAAAxgAAAMZAAADGgAAAxuAlYCWgJeAmICZgJqAm6cAAQunAAELqAABC6kAAQuqAAELqwABC6wAAQutgRTzgRT0gRT1gRT2gRT3gRT4gRT5gGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQrzAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFPEICAgIgFSAlQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEK8wAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxYAAAEKAAABCgAAABcAAAEKgACAYIAAgRTxCAgICIBUgJYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABCvMAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMXAAABCgAAAQoAAAAXAAABCoAAgACAAIEU8QgICAiAVICXCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAy1AAAABcAAQrzAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGAAAAQoAAAEKAAAAFwAAAQqAAIEEZoAAgRTxCAgICIBUgJgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABCvMAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMZAAABCgAAAQoAAAAXAAABCoAAgACAAIEU8QgICAiAVICZCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQrzAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFPEICAgIgFSAmggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEK8wAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxsAAAEKAAABCgAAABcAAAEKgACAAIAAgRTxCAgICIBUgJsICIAACN8QEgAAAUAAAAFBAAABQgABDBkAAAAhAAABRAAAAUUAAQwaAAAAIwAAAUMAAQwbAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACCAAABCgAAAQoAAQwjAAAAMQAAAQoAAAD8AAABCgAAAlIAAQcCAAABCgAAAQoAAQwrAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRSECAiBFPwIgEMIgKWBFJwICIEU+wgSWCto+NMAAAA6AAAAOwAAAA4AAQwvAAEMMgAAALSiAAACWwAAAlyAfoB/ogABDDMAAQw0gRT9gRUIgGPZAAAAIQAAACUAAQw3AAAADgAAACgAAQw4AAAAIwAAAPsAAQw5AAEHCgAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAQxBXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRT6gH6AQ4BqgACABAiBFP7TAAAAOgAAADsAAAAOAAEMQwABDEwAAAC0qAAAAnEAAAJyAAACcwAAAnQAAAJ1AAACdgAAAncAAAJ4gIKAg4CEgIWAhoCHgIiAiagAAQxNAAEMTgABDE8AAQxQAAEMUQABDFIAAQxTAAEMVIEU/4EVAIEVAYEVA4EVBIEVBYEVBoEVB4Bj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEMMwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnEAAAEKAAABCgAAABcAAAEKgACAYIAAgRT9CAgICIBUgIIICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABDDMAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJyAAABCgAAAQoAAAAXAAABCoAAgACAAIEU/QgICAiAVICDCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAEMdgAAABcAAQwzAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcwAAAQoAAAEKAAAAFwAAAQqAAIEVAoAAgRT9CAgICIBUgIQICIAACNMAAAA6AAAAOwAAAA4AAQyEAAEMhQAAALSgoIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEMMwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnQAAAEKAAABCgAAABcAAAEKgACAYIAAgRT9CAgICIBUgIUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAQfAAAAFwABDDMAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ1AAABCgAAAQoAAAAXAAABCoAAgLGAAIEU/QgICAiAVICGCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQwzAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdgAAAQoAAAEKAAAAFwAAAQqAAIBggACBFP0ICAgIgFSAhwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEMMwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAncAAAEKAAABCgAAABcAAAEKgACAAIAAgRT9CAgICIBUgIgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABDDMAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ4AAABCgAAAQoAAAAXAAABCoAAgGCAAIEU/QgICAiAVICJCAiAAAjZAAAAIQAAACUAAQzTAAAADgAAACgAAQzUAAAAIwAAAPsAAQzVAAEHCgAAAlwAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAQzdXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRT6gH+AQ4BqgACABAiBFQnTAAAAOgAAADsAAAAOAAEM3wABDOcAAAC0pwAAAxUAAAMWAAADFwAAAxgAAAMZAAADGgAAAxuAlYCWgJeAmICZgJqAm6cAAQzoAAEM6QABDOoAAQzrAAEM7AABDO0AAQzugRUKgRULgRUMgRUNgRUOgRUPgRUQgGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQw0AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFQgICAgIgFSAlQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEMNAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxYAAAEKAAABCgAAABcAAAEKgACAYIAAgRUICAgICIBUgJYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABDDQAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMXAAABCgAAAQoAAAAXAAABCoAAgACAAIEVCAgICAiAVICXCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAF6gAAABcAAQw0AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGAAAAQoAAAEKAAAAFwAAAQqAAIDUgACBFQgICAgIgFSAmAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEMNAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxkAAAEKAAABCgAAABcAAAEKgACAAIAAgRUICAgICIBUgJkICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABDDQAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMaAAABCgAAAQoAAAAXAAABCoAAgACAAIEVCAgICAiAVICaCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQw0AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFQgICAgIgFSAmwgIgAAI3xASAAABQAAAAUEAAAFCAAENWgAAACEAAAFEAAABRQABDVsAAAAjAAABQwABDVwAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAAKQAAAIIAAAEKAAABCgABDWQAAAAxAAABCgAAAPwAAAEKAAACUgAAQb8AAAEKAAABCgABDWwAAAEKXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBFIQICIEVEwiAQwiApYEFfwgIgRUSCBLecDRi0wAAADoAAAA7AAAADgABDXAAAQ1zAAAAtKIAAAJbAAACXIB+gH+iAAENdAABDXWBFRSBFR+AY9kAAAAhAAAAJQABDXgAAAAOAAAAKAABDXkAAAAjAAAA+wABDXoAAQcLAAACWwAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgABDYJfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFRGAfoBDgGqAAIAECIEVFdMAAAA6AAAAOwAAAA4AAQ2EAAENjQAAALSoAAACcQAAAnIAAAJzAAACdAAAAnUAAAJ2AAACdwAAAniAgoCDgISAhYCGgIeAiICJqAABDY4AAQ2PAAENkAABDZEAAQ2SAAENkwABDZQAAQ2VgRUWgRUXgRUYgRUagRUbgRUcgRUdgRUegGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQ10AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcQAAAQoAAAEKAAAAFwAAAQqAAIBggACBFRQICAgIgFSAgggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAENdAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnIAAAEKAAABCgAAABcAAAEKgACAAIAAgRUUCAgICIBUgIMICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAQ23AAAAFwABDXQAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJzAAABCgAAAQoAAAAXAAABCoAAgRUZgACBFRQICAgIgFSAhAgIgAAI0wAAADoAAAA7AAAADgABDcUAAQ3GAAAAtKCggGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQ10AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdAAAAQoAAAEKAAAAFwAAAQqAAIBggACBFRQICAgIgFSAhQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAENdAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnUAAAEKAAABCgAAABcAAAEKgACAYIAAgRUUCAgICIBUgIYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABDXQAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ2AAABCgAAAQoAAAAXAAABCoAAgGCAAIEVFAgICAiAVICHCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQ10AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFRQICAgIgFSAiAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAENdAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAngAAAEKAAABCgAAABcAAAEKgACAYIAAgRUUCAgICIBUgIkICIAACNkAAAAhAAAAJQABDhQAAAAOAAAAKAABDhUAAAAjAAAA+wABDhYAAQcLAAACXAAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgABDh5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFRGAf4BDgGqAAIAECIEVINMAAAA6AAAAOwAAAA4AAQ4gAAEOKAAAALSnAAADFQAAAxYAAAMXAAADGAAAAxkAAAMaAAADG4CVgJaAl4CYgJmAmoCbpwABDikAAQ4qAAEOKwABDiwAAQ4tAAEOLgABDi+BFSGBFSKBFSOBFSSBFSWBFSaBFSeAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABDXUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMVAAABCgAAAQoAAAAXAAABCoAAgACAAIEVHwgICAiAVICVCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQ11AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFgAAAQoAAAEKAAAAFwAAAQqAAIBggACBFR8ICAgIgFSAlggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAENdQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxcAAAEKAAABCgAAABcAAAEKgACAAIAAgRUfCAgICIBUgJcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAmwAAAAFwABDXUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMYAAABCgAAAQoAAAAXAAABCoAAgQEcgACBFR8ICAgIgFSAmAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAENdQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxkAAAEKAAABCgAAABcAAAEKgACAAIAAgRUfCAgICIBUgJkICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABDXUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMaAAABCgAAAQoAAAAXAAABCoAAgACAAIEVHwgICAiAVICaCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQ11AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFR8ICAgIgFSAmwgIgAAI3xASAAABQAAAAUEAAAFCAAEOmwAAACEAAAFEAAABRQABDpwAAAAjAAABQwABDp0AAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAAKQAAAIIAAAEKAAABCgABDqUAAAAxAAABCgAAAPwAAAEKAAACUgABBwQAAAEKAAABCgABDq0AAAEKXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBFIQICIEVKgiAQwiApYEUnQgIgRUpCBJWHSVh0wAAADoAAAA7AAAADgABDrEAAQ60AAAAtKIAAAJbAAACXIB+gH+iAAEOtQABDraBFSuBFTaAY9kAAAAhAAAAJQABDrkAAAAOAAAAKAABDroAAAAjAAAA+wABDrsAAQcMAAACWwAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgABDsNfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFSiAfoBDgGqAAIAECIEVLNMAAAA6AAAAOwAAAA4AAQ7FAAEOzgAAALSoAAACcQAAAnIAAAJzAAACdAAAAnUAAAJ2AAACdwAAAniAgoCDgISAhYCGgIeAiICJqAABDs8AAQ7QAAEO0QABDtIAAQ7TAAEO1AABDtUAAQ7WgRUtgRUugRUvgRUxgRUygRUzgRU0gRU1gGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQ61AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcQAAAQoAAAEKAAAAFwAAAQqAAIBggACBFSsICAgIgFSAgggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEOtQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnIAAAEKAAABCgAAABcAAAEKgACAAIAAgRUrCAgICIBUgIMICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAQ74AAAAFwABDrUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJzAAABCgAAAQoAAAAXAAABCoAAgRUwgACBFSsICAgIgFSAhAgIgAAI0wAAADoAAAA7AAAADgABDwYAAQ8HAAAAtKCggGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQ61AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdAAAAQoAAAEKAAAAFwAAAQqAAIBggACBFSsICAgIgFSAhQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABB8AAAAXAAEOtQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnUAAAEKAAABCgAAABcAAAEKgACAsYAAgRUrCAgICIBUgIYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABDrUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ2AAABCgAAAQoAAAAXAAABCoAAgGCAAIEVKwgICAiAVICHCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQ61AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFSsICAgIgFSAiAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEOtQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAngAAAEKAAABCgAAABcAAAEKgACAYIAAgRUrCAgICIBUgIkICIAACNkAAAAhAAAAJQABD1UAAAAOAAAAKAABD1YAAAAjAAAA+wABD1cAAQcMAAACXAAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgABD19fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFSiAf4BDgGqAAIAECIEVN9MAAAA6AAAAOwAAAA4AAQ9hAAEPaQAAALSnAAADFQAAAxYAAAMXAAADGAAAAxkAAAMaAAADG4CVgJaAl4CYgJmAmoCbpwABD2oAAQ9rAAEPbAABD20AAQ9uAAEPbwABD3CBFTiBFTmBFTqBFTuBFTyBFT2BFT+AY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABDrYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMVAAABCgAAAQoAAAAXAAABCoAAgACAAIEVNggICAiAVICVCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQ62AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFgAAAQoAAAEKAAAAFwAAAQqAAIBggACBFTYICAgIgFSAlggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEOtgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxcAAAEKAAABCgAAABcAAAEKgACAAIAAgRU2CAgICIBUgJcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAANbAAAAFwABDrYAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMYAAABCgAAAQoAAAAXAAABCoAAgKCAAIEVNggICAiAVICYCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAQ62AAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFTYICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwABD78AAAAXAAEOtgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACBFT6AAIEVNggICAiAVICaCAiAAAhfEBxPYnZDcnlwdG9JZGVudGl0eVRyYW5zZm9ybWVy3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEOtgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxsAAAEKAAABCgAAABcAAAEKgACAAIAAgRU2CAgICIBUgJsICIAACNIAAAA7AAAADgABD90AAAFaoIBT3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABB8AAAAXAAEFLAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMIAAAEKAAABCgAAABcAAAEKgACAsYAAgRR+CAgICIBUgQHvCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAAQUsAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwwAAAQoAAAEKAAAAFwAAAQqAAIBggACBFH4ICAgIgFSBAfAICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAQcIAAAAFwABBSwAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTEAAABCgAAAQoAAAAXAAABCoAAgRTMgACBFH4ICAgIgFSBAfEICIAACN8QEgAAAUAAAAFBAAABQgABEA0AAAAhAAABRAAAAUUAARAOAAAAIwAAAUMAARAPAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACZAAABCgAAAQoAARAXAAAAMQAAAQoAAAD8AAABCgAAAlIAAF4fAAABCgAAAQoAARAfAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQeGCAiBFUYIgEMIgKWBB6IICIEVRQgSlpG26dMAAAA6AAAAOwAAAA4AARAjAAEQJgAAALSiAAACWwAAAlyAfoB/ogABECcAARAogRVHgRVSgGPZAAAAIQAAACUAARArAAAADgAAACgAARAsAAAAIwAAAPsAARAtAABeLwAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAARA1XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRVEgH6AQ4BqgACABAiBFUjTAAAAOgAAADsAAAAOAAEQNwABEEAAAAC0qAAAAnEAAAJyAAACcwAAAnQAAAJ1AAACdgAAAncAAAJ4gIKAg4CEgIWAhoCHgIiAiagAARBBAAEQQgABEEMAARBEAAEQRQABEEYAARBHAAEQSIEVSYEVSoEVS4EVTYEVToEVT4EVUIEVUYBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEQJwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnEAAAEKAAABCgAAABcAAAEKgACAYIAAgRVHCAgICIBUgIIICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABECcAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJyAAABCgAAAQoAAAAXAAABCoAAgACAAIEVRwgICAiAVICDCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAEQagAAABcAARAnAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcwAAAQoAAAEKAAAAFwAAAQqAAIEVTIAAgRVHCAgICIBUgIQICIAACNMAAAA6AAAAOwAAAA4AARB4AAEQeQAAALSgoIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEQJwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnQAAAEKAAABCgAAABcAAAEKgACAYIAAgRVHCAgICIBUgIUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABECcAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ1AAABCgAAAQoAAAAXAAABCoAAgGCAAIEVRwgICAiAVICGCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAARAnAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdgAAAQoAAAEKAAAAFwAAAQqAAIBggACBFUcICAgIgFSAhwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEQJwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAncAAAEKAAABCgAAABcAAAEKgACAAIAAgRVHCAgICIBUgIgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABECcAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ4AAABCgAAAQoAAAAXAAABCoAAgGCAAIEVRwgICAiAVICJCAiAAAjZAAAAIQAAACUAARDHAAAADgAAACgAARDIAAAAIwAAAPsAARDJAABeLwAAAlwAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAARDRXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRVEgH+AQ4BqgACABAiBFVPTAAAAOgAAADsAAAAOAAEQ0wABENsAAAC0pwAAAxUAAAMWAAADFwAAAxgAAAMZAAADGgAAAxuAlYCWgJeAmICZgJqAm6cAARDcAAEQ3QABEN4AARDfAAEQ4AABEOEAARDigRVUgRVVgRVWgRVXgRVYgRVZgRVagGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAIQAAAABcAARAoAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFQAAAQoAAAEKAAAAFwAAAQqAAIEBAIAAgRVSCAgICIBUgJUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABECgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMWAAABCgAAAQoAAAAXAAABCoAAgGCAAIEVUggICAiAVICWCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAARAoAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFVIICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAACG4AAAAXAAEQKAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACBAQSAAIEVUggICAiAVICYCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAARAoAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFVIICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEQKAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgRVSCAgICIBUgJoICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABECgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMbAAABCgAAAQoAAAAXAAABCoAAgACAAIEVUggICAiAVICbCAiAAAjfEBIAAAFAAAABQQAAAUIAARFOAAAAIQAAAUQAAAFFAAERTwAAACMAAAFDAAERUAAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAmQAAAQoAAAEKAAERWAAAADEAAAEKAAAA/AAAAQoAAAJSAABeIAAAAQoAAAEKAAERYAAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEHhggIgRVdCIBDCIClgQejCAiBFVwIEnTdnWHTAAAAOgAAADsAAAAOAAERZAABEWcAAAC0ogAAAlsAAAJcgH6Af6IAARFoAAERaYEVXoEVaYBj2QAAACEAAAAlAAERbAAAAA4AAAAoAAERbQAAACMAAAD7AAERbgAAXjAAAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAERdl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEVW4B+gEOAaoAAgAQIgRVf0wAAADoAAAA7AAAADgABEXgAARGBAAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAAERggABEYMAARGEAAERhQABEYYAARGHAAERiAABEYmBFWCBFWGBFWKBFWSBFWWBFWaBFWeBFWiAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABEWgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIEVXggICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAARFoAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFV4ICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwABEasAAAAXAAERaAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBFWOAAIEVXggICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAAERuQABEboAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABEWgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIEVXggICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAARFoAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAIBggACBFV4ICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAERaAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRVeCAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABEWgAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIEVXggICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAARFoAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBFV4ICAgIgFSAiQgIgAAI2QAAACEAAAAlAAESCAAAAA4AAAAoAAESCQAAACMAAAD7AAESCgAAXjAAAAJcAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAESEl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEVW4B/gEOAaoAAgAQIgRVq0wAAADoAAAA7AAAADgABEhQAARIcAAAAtKcAAAMVAAADFgAAAxcAAAMYAAADGQAAAxoAAAMbgJWAloCXgJiAmYCagJunAAESHQABEh4AARIfAAESIAABEiEAARIiAAESI4EVa4EVbIEVbYEVboEVb4EVcIEVcoBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAERaQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxUAAAEKAAABCgAAABcAAAEKgACAAIAAgRVpCAgICIBUgJUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABEWkAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMWAAABCgAAAQoAAAAXAAABCoAAgGCAAIEVaQgICAiAVICWCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAARFpAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFWkICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAA1sAAAAXAAERaQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACAoIAAgRVpCAgICIBUgJgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABEWkAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMZAAABCgAAAQoAAAAXAAABCoAAgACAAIEVaQgICAiAVICZCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAEScgAAABcAARFpAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGgAAAQoAAAEKAAAAFwAAAQqAAIEVcYAAgRVpCAgICIBUgJoICIAACF8QHE9idkNyeXB0b0lkZW50aXR5VHJhbnNmb3JtZXLfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAARFpAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFWkICAgIgFSAmwgIgAAI3xASAAABQAAAAUEAAAFCAAESkAAAACEAAAFEAAABRQABEpEAAAAjAAABQwABEpIAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAAKQAAAJkAAAEKAAABCgABEpoAAAAxAAABCgAAAPwAAAEKAAACUgAAXiEAAAEKAAABCgABEqIAAAEKXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBB4YICIEVdQiAQwiApYEHpAgIgRV0CBLKXGxE0wAAADoAAAA7AAAADgABEqYAARKpAAAAtKIAAAJbAAACXIB+gH+iAAESqgABEquBFXaBFYGAY9kAAAAhAAAAJQABEq4AAAAOAAAAKAABEq8AAAAjAAAA+wABErAAAF4xAAACWwAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgABErhfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFXOAfoBDgGqAAIAECIEVd9MAAAA6AAAAOwAAAA4AARK6AAESwwAAALSoAAACcQAAAnIAAAJzAAACdAAAAnUAAAJ2AAACdwAAAniAgoCDgISAhYCGgIeAiICJqAABEsQAARLFAAESxgABEscAARLIAAESyQABEsoAARLLgRV4gRV5gRV6gRV8gRV9gRV+gRV/gRWAgGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAARKqAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcQAAAQoAAAEKAAAAFwAAAQqAAIBggACBFXYICAgIgFSAgggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAESqgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnIAAAEKAAABCgAAABcAAAEKgACAAIAAgRV2CAgICIBUgIMICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAARLtAAAAFwABEqoAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJzAAABCgAAAQoAAAAXAAABCoAAgRV7gACBFXYICAgIgFSAhAgIgAAI0wAAADoAAAA7AAAADgABEvsAARL8AAAAtKCggGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAARKqAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdAAAAQoAAAEKAAAAFwAAAQqAAIBggACBFXYICAgIgFSAhQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAESqgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnUAAAEKAAABCgAAABcAAAEKgACAYIAAgRV2CAgICIBUgIYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABEqoAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ2AAABCgAAAQoAAAAXAAABCoAAgGCAAIEVdggICAiAVICHCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAARKqAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFXYICAgIgFSAiAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAESqgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAngAAAEKAAABCgAAABcAAAEKgACAYIAAgRV2CAgICIBUgIkICIAACNkAAAAhAAAAJQABE0oAAAAOAAAAKAABE0sAAAAjAAAA+wABE0wAAF4xAAACXAAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgABE1RfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFXOAf4BDgGqAAIAECIEVgtMAAAA6AAAAOwAAAA4AARNWAAETXgAAALSnAAADFQAAAxYAAAMXAAADGAAAAxkAAAMaAAADG4CVgJaAl4CYgJmAmoCbpwABE18AARNgAAETYQABE2IAARNjAAETZAABE2WBFYOBFYSBFYWBFYaBFYeBFYiBFYmAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAhAAAAAFwABEqsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMVAAABCgAAAQoAAAAXAAABCoAAgQEAgACBFYEICAgIgFSAlQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAESqwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxYAAAEKAAABCgAAABcAAAEKgACAYIAAgRWBCAgICIBUgJYICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABEqsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMXAAABCgAAAQoAAAAXAAABCoAAgACAAIEVgQgICAiAVICXCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAIbgAAABcAARKrAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGAAAAQoAAAEKAAAAFwAAAQqAAIEBBIAAgRWBCAgICIBUgJgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABEqsAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMZAAABCgAAAQoAAAAXAAABCoAAgACAAIEVgQgICAiAVICZCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAARKrAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFYEICAgIgFSAmggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAESqwAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxsAAAEKAAABCgAAABcAAAEKgACAAIAAgRWBCAgICIBUgJsICIAACN8QEgAAAUAAAAFBAAABQgABE9EAAAAhAAABRAAAAUUAARPSAAAAIwAAAUMAARPTAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACZAAABCgAAAQoAARPbAAAAMQAAAQoAAAD8AAABCgAAAlIAAF4kAAABCgAAAQoAARPjAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQeGCAiBFYwIgEMIgKWBB6cICIEViwgSg+jVOtMAAAA6AAAAOwAAAA4AARPnAAET6gAAALSiAAACWwAAAlyAfoB/ogABE+sAARPsgRWNgRWYgGPZAAAAIQAAACUAARPvAAAADgAAACgAARPwAAAAIwAAAPsAARPxAABeNAAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAARP5XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRWKgH6AQ4BqgACABAiBFY7TAAAAOgAAADsAAAAOAAET+wABFAQAAAC0qAAAAnEAAAJyAAACcwAAAnQAAAJ1AAACdgAAAncAAAJ4gIKAg4CEgIWAhoCHgIiAiagAARQFAAEUBgABFAcAARQIAAEUCQABFAoAARQLAAEUDIEVj4EVkIEVkYEVk4EVlIEVlYEVloEVl4Bj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAET6wAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnEAAAEKAAABCgAAABcAAAEKgACAYIAAgRWNCAgICIBUgIIICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABE+sAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJyAAABCgAAAQoAAAAXAAABCoAAgACAAIEVjQgICAiAVICDCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAEULgAAABcAARPrAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcwAAAQoAAAEKAAAAFwAAAQqAAIEVkoAAgRWNCAgICIBUgIQICIAACNMAAAA6AAAAOwAAAA4AARQ8AAEUPQAAALSgoIBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAET6wAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnQAAAEKAAABCgAAABcAAAEKgACAYIAAgRWNCAgICIBUgIUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABE+sAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ1AAABCgAAAQoAAAAXAAABCoAAgGCAAIEVjQgICAiAVICGCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAARPrAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdgAAAQoAAAEKAAAAFwAAAQqAAIBggACBFY0ICAgIgFSAhwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAET6wAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAncAAAEKAAABCgAAABcAAAEKgACAAIAAgRWNCAgICIBUgIgICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABE+sAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ4AAABCgAAAQoAAAAXAAABCoAAgGCAAIEVjQgICAiAVICJCAiAAAjZAAAAIQAAACUAARSLAAAADgAAACgAARSMAAAAIwAAAPsAARSNAABeNAAAAlwAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAARSVXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRWKgH+AQ4BqgACABAiBFZnTAAAAOgAAADsAAAAOAAEUlwABFJ8AAAC0pwAAAxUAAAMWAAADFwAAAxgAAAMZAAADGgAAAxuAlYCWgJeAmICZgJqAm6cAARSgAAEUoQABFKIAARSjAAEUpAABFKUAARSmgRWagRWbgRWcgRWdgRWegRWfgRWggGPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAIQAAAABcAARPsAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFQAAAQoAAAEKAAAAFwAAAQqAAIEBAIAAgRWYCAgICIBUgJUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABE+wAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMWAAABCgAAAQoAAAAXAAABCoAAgGCAAIEVmAgICAiAVICWCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAARPsAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFZgICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAACG4AAAAXAAET7AAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACBAQSAAIEVmAgICAiAVICYCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAARPsAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFZgICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAET7AAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgRWYCAgICIBUgJoICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABE+wAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMbAAABCgAAAQoAAAAXAAABCoAAgACAAIEVmAgICAiAVICbCAiAAAjSAAAAOwAAAA4AARUSAAABWqCAU98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAAXEUAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTCAAABCgAAAQoAAAAXAAABCoAAgGCAAIEHgAgICAiAVIEB7wgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAABcRQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMMAAAEKAAABCgAAABcAAAEKgACAYIAAgQeACAgICIBUgQHwCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAABeKwAAABcAAFxFAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUxAAAAQoAAAEKAAAAFwAAAQqAAIETQIAAgQeACAgICIBUgQHxCAiAAAjfEBIAAAFAAAABQQAAAUIAARVCAAAAIQAAAUQAAAFFAAEVQwAAACMAAAFDAAEVRAAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAewAAAQoAAAEKAAEVTAAAADEAAAEKAAAA/AAAAQoAAAJSAABa3gAAAQoAAAEKAAEVVAAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEHQwgIgRWnCIBDCIClgQdZCAiBFaYIEsd5kArTAAAAOgAAADsAAAAOAAEVWAABFVsAAAC0ogAAAlsAAAJcgH6Af6IAARVcAAEVXYEVqIEVs4Bj2QAAACEAAAAlAAEVYAAAAA4AAAAoAAEVYQAAACMAAAD7AAEVYgAAWuIAAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAEVal8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEVpYB+gEOAaoAAgAQIgRWp0wAAADoAAAA7AAAADgABFWwAARV1AAAAtKgAAAJxAAACcgAAAnMAAAJ0AAACdQAAAnYAAAJ3AAACeICCgIOAhICFgIaAh4CIgImoAAEVdgABFXcAARV4AAEVeQABFXoAARV7AAEVfAABFX2BFaqBFauBFayBFa6BFa+BFbCBFbGBFbKAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABFVwAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJxAAABCgAAAQoAAAAXAAABCoAAgGCAAIEVqAgICAiAVICCCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAARVcAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACcgAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFagICAgIgFSAgwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwABFZ8AAAAXAAEVXAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnMAAAEKAAABCgAAABcAAAEKgACBFa2AAIEVqAgICAiAVICECAiAAAjTAAAAOgAAADsAAAAOAAEVrQABFa4AAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABFVwAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ0AAABCgAAAQoAAAAXAAABCoAAgGCAAIEVqAgICAiAVICFCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAEHwAAABcAARVcAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACdQAAAQoAAAEKAAAAFwAAAQqAAICxgACBFagICAgIgFSAhggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAEVXAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAnYAAAEKAAABCgAAABcAAAEKgACAYIAAgRWoCAgICIBUgIcICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABFVwAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAJ3AAABCgAAAQoAAAAXAAABCoAAgACAAIEVqAgICAiAVICICAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAARVcAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAACeAAAAQoAAAEKAAAAFwAAAQqAAIBggACBFagICAgIgFSAiQgIgAAI2QAAACEAAAAlAAEV/AAAAA4AAAAoAAEV/QAAACMAAAD7AAEV/gAAWuIAAAJcAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAEWBl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEVpYB/gEOAaoAAgAQIgRW00wAAADoAAAA7AAAADgABFggAARYQAAAAtKcAAAMVAAADFgAAAxcAAAMYAAADGQAAAxoAAAMbgJWAloCXgJiAmYCagJunAAEWEQABFhIAARYTAAEWFAABFhUAARYWAAEWF4EVtYEVtoEVt4EVuIEVuYEVuoEVu4Bj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEVXQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxUAAAEKAAABCgAAABcAAAEKgACAAIAAgRWzCAgICIBUgJUICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwABFV0AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMWAAABCgAAAQoAAAAXAAABCoAAgGCAAIEVswgICAiAVICWCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAARVdAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADFwAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFbMICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAX00AAAAXAAEVXQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACBB72AAIEVswgICAiAVICYCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAARVdAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAADGQAAAQoAAAEKAAAAFwAAAQqAAIAAgACBFbMICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEVXQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgRWzCAgICIBUgJoICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABFV0AAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAMbAAABCgAAAQoAAAAXAAABCoAAgACAAIEVswgICAiAVICbCAiAAAjSAAAAOwAAAA4AARaDAAABWqCAU98QEAABFoYAARaHAAEWiAABFokAAAAhAAEWigABFosAAAAjAAEWjAABFo0AAAAOAAAAJQABFo4AARaPAAAAKAAAAPsAAAD8AAEWkQAAACkAAAApAAAAFAABFpUAAAECAAAAMQAAACkAAAD8AAABBQAAAEAAAAD8AAEWnAABFp0AAAEKXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlgEOBFdCABIAEgAKBFb+BAxGABIBDgQMTgAmAQ4EV0YEVvggSQUXbWdMAAAA6AAAAOwAAAA4AARahAAEWowAAALShAAABD4BFoQABFqSBFcCAY9kAAAAhAAAAJQABFqcAAAAOAAAAKAABFqgAAAAjAAAA+wABFqkAAAB8AAABDwAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgABFrFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFb2ARYBDgGqAAIAECIEVwdMAAAA6AAAAOwAAAA4AARazAAEWvQAAALSpAAABIgAAASMAAAEkAAABJQAAASYAAAEnAAABKAAAASkAAAEqgEiASYBKgEuATIBNgE6AT4BQqQABFr4AARa/AAEWwAABFsEAARbCAAEWwwABFsQAARbFAAEWxoEVwoEVxIEVxYEVx4EVyIEVyoEVy4EVzYEVzoBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwABFsoAAAAXAAEWpAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASIAAAEKAAABCgAAABcAAAEKgACBFcOAAIEVwAgICAiAVIBICAiAAAjSAAAAOwAAAA4AARbYAAABWqCAU98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwABFqQAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEjAAABCgAAAQoAAAAXAAABCoAAgACAAIEVwAgICAiAVIBJCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAEW6wAAABcAARakAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABJAAAAQoAAAEKAAAAFwAAAQqAAIEVxoAAgRXACAgICIBUgEoICIAACNIAAAA7AAAADgABFvkAAAFaoIBT3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAEWpAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASUAAAEKAAABCgAAABcAAAEKgACAAIAAgRXACAgICIBUgEsICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAARcMAAAAFwABFqQAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEmAAABCgAAAQoAAAAXAAABCoAAgRXJgACBFcAICAgIgFSATAgIgAAI0gAAADsAAAAOAAEXGgAAAVqggFPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAARakAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABJwAAAQoAAAEKAAAAFwAAAQqAAIBggACBFcAICAgIgFSATQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwABFy0AAAAXAAEWpAAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASgAAAEKAAABCgAAABcAAAEKgACBFcyAAIEVwAgICAiAVIBOCAiAAAjTAAAAOgAAADsAAAAOAAEXOwABFzwAAAC0oKCAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAHdAAAAFwABFqQAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEpAAABCgAAAQoAAAAXAAABCoAAgGWAAIEVwAgICAiAVIBPCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAEXTwAAABcAARakAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABKgAAAQoAAAEKAAAAFwAAAQqAAIEVz4AAgRXACAgICIBUgFAICIAACF8QFklkZW50aXR5U2VydmVyVXNlckRhdGHTAAAAOgAAADsAAAAOAAEXXgABF18AAAC0oKCAY9IAAAA7AAAADgABF2IAAAFaoQABF2OBFdKAU9cAAAAOAAAAJQAAoU8AAAAhAAAAKAAAoVAAAAAjAAChUQAAABcAAAB8AAAAfAABF2oAAACXAAAAMYENvYAAgRW9gRW9gRXTgRXUEl0IRgXfEBQAAAD7AAEXbgABF28AARdwAAEXcQABF3IAARdzAAAAIQAAAA4AARd0AAAAJQABF3UAAAAoAAEXdgABF3cAARd4AAEXeQABF3oAARd7AAAAIwAABCwAAAD8AAAA/AABF38AAAApAAABAgAAAPwAAAAUAAABBQAAACkAAABbAAEXhwABF4gAAAApAAAAKQAAAPwAAReMAAEXjQAAAQIAAAAxXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNvcmRlcmVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNzdG9yYWdlXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNkdXBsaWNhdGVzCYBDgEOBFdaABIEDEYBDgAKBAxOABIAkgRYwgRXVgASABIBDgRXngRYxgQMREwAAAAEMMVKx0wAAADoAAAA7AAAADgABF5EAAReTAAAAtKEAAAEPgEWhAAEXlIEV14Bj2QAAACEAAAAlAAEXlwAAAA4AAAAoAAEXmAAAACMAAAD7AAEXmQAAAJcAAAEPAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAEXoV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEV1IBFgEOAaoAAgAQIgRXY0wAAADoAAAA7AAAADgABF6MAARetAAAAtKkAAAEiAAABIwAAASQAAAElAAABJgAAAScAAAEoAAABKQAAASqASIBJgEqAS4BMgE2AToBPgFCpAAEXrgABF68AARewAAEXsQA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yAAE+cwABPnQAAT51AAE+dgABPncAAT54AAE+eQABPnoAAT57AAE+fIEY8IEZB4EZH4EZNoEZToEZZYEaJ4EaPoEaVYEabYEahIEam4EasoEayYEa4IBjXxATdGltZXN0YW1wRnJvbVNlcnZlcl8QGXJhd01lc3NhZ2VJZE93bmVkSWRlbnRpdHlfEBtpc0FwcE1lc3NhZ2VXaXRoVXNlckNvbnRlbnRfEBdyYXdNZXNzYWdlVWlkRnJvbVNlcnZlcl8QInJhd0VuY3J5cHRlZEV4dGVuZGVkTWVzc2FnZVBheWxvYWRXaGVhZGVyc18QD25vbmNlRnJvbVNlcnZlcl8QEGVuY3J5cHRlZENvbnRlbnRfEBN1bnNvcnRlZEF0dGFjaG1lbnRzWHVwbG9hZGVkXxAZY2FuY2VsRXh0ZXJuYWxseVJlcXVlc3RlZF8QD3Jhd01lc3NhZ2VJZFVpZFxjcmVhdGlvbkRhdGVdaXNWb2lwTWVzc2FnZd8QEgAAAUAAAAFBAAABQgABPo0AAAAhAAABRAAAAUUAAT6OAAAAIwAAAUMAAT6PAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAAXAAAAFwAAACkAAACcAAABCgAAAQoAAT6XAAAAMQAAAQoAAAD8AAABCgAAAlIAAT5eAAABCgAAAQoAAT6fAAABCl8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRjLCAiBGPIIgEMIgKWBGOIICIEY8QgSt4BsS9MAAAA6AAAAOwAAAA4AAT6jAAE+pgAAALSiAAACWwAAAlyAfoB/ogABPqcAAT6ogRjzgRj+gGPZAAAAIQAAACUAAT6rAAAADgAAACgAAT6sAAAAIwAAAPsAAT6tAAE+bgAAAlsAAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAT61XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWd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AAKTtAACk7wAApPEAAKTzAACk9QAApPcAAKT5AAClHgAApSAAAKUiAAClJAAApSYAAKUoAAClKgAApSwAAKUuAAClMAAApTIAAKVIAAClWwAApXcAAKWUAAClsAAApcQAAKXWAACl7AAApgUAAKaAAACmhgAApo8AAKacAACmqAAAprIAAKa8AACmxwAAptIAAKbfAACm5wAApukAAKbrAACm7QAApu8AAKbwAACm8QAApvIAAKbzAACm9QAApvcAAKb4AACm+QAApvsAAKb8AACnDQAApw4AAKcQAACnIQAApywAAKc1AACnRAAAp1EAAKdZAACnYgAAp3MAAKeGAACnlwAAp6oAAKfBAACn0wAAqE4AAKhQAACoUgAAqFQAAKhWAACoVwAAqFgAAKhZAACoWgAAqFwAAKheAACoXwAAqGAAAKhiAACoYwAAqN4AAKjgAACo4gAAqOQAAKjmAACo5wAAqOgAAKjpAACo6gAAqOwAAKjuAACo7wAAqPAAAKjyAACo8wAAqQQAAKkJAACpCwAAqQ0AAKkeAACpKwAAqS0AAKkvAACpMQAAqTMAAKlGAACpXQAAqW8AAKnqAACp7AAAqe4AAKnwAACp8gAAqfMAAKn0AACp9QAAqfYAAKn4AACp+gAAqfsAAKn8AACp/gAAqf8AAKp6AACqfAAAqn4AAKqAAACqggAAqoMAAKqEAACqhQAAqoYAAKqIAACqigAAqosAAKqMAACqjgAAqo8AAKqgAACqoQAAqqMAAKseAACrIAAAqyIAAKskAACrJgAAqycAAKsoAACrKQAAqyoAAKssAACrLgAAqy8AAKswAACrMgAAqzMAAKs0AACrrwAAq7EAAKuzAACrtQAAq7cAAKu4AACruQAAq7oAAKu7AACrvQAAq78AAKvAAACrwQAAq8MAAKvEAACr3QAAq94AAKvfAACr4QAAq/IAAKwIAACsFQAArCIAAKydAACsnwAArKEAAKyjAACspQAArKYAAKynAACsqAAArKkAAKyrAACsrQAArK4AAKyvAACssQAArLIAAKzjAACs5QAArOcAAKzpAACs6gAArOwAAK0DAACtFAAArSIAAK07AACtSQAArV4AAK1yAACtiQAArZsAAK4WAACuGAAArhoAAK4cAACuHgAArh8AAK4gAACuIQAAriIAAK4kAACuJgAAricAAK4oAACuKgAArisAAK5BAACuUgAArmcAAK6EAACumQAArqcAAK68AACu0AAArucAAK75AACvEgAAr1EAAK9TAACvVQAAr1cAAK9ZAACvWwAAr10AAK9fAACvYQAAr2MAAK9lAACvZwAAr2kAAK9rAACvbQAAr28AAK+uAACvsAAAr7IAAK+0AACvtgAAr7gAAK+7AACvvgAAr8EAAK/EAACvxwAAr8oAAK/NAACv0AAAr9MAAK/WAACv2AAAr+oAAK//AACwOgAAsHMAALCbAACwwwAAsNoAALDtAACxAgAAsScAALFEAACxUAAAsWwAALGnAACxsgAAskUAALJoAACyiAAAsqgAALKqAACyrAAAsq4AALKwAACysgAAsrMAALK0AACytgAAsrcAALK5AACyugAAsrwAALK+AACyvwAAssAAALLCAACywwAAssgAALLhAACy6gAAsuwAALLuAACy9wAAsvkAALL7AACy/QAAsxIAALMnAACzcAAAs5QAALO7AACz3wAAs+EAALPjAACz5QAAs+cAALPpAACz6wAAs+wAALPuAAC0BwAAtCgAALQqAAC0LAAAtC4AALQwAAC0MgAAtDQAALQ2AAC0OAAAtFkAALRbAAC0XQAAtF8AALRhAAC0YwAAtGUAALRnAAC0aQAAtGsAALSJAAC0pwAAtLoAALTOAAC04wAAtQAAALUUAAC1KgAAtaUAALWnAAC1qQAAtasAALWtAAC1rgAAta8AALWwAAC1sQAAtbMAALW1AAC1tgAAtbcAALW5AAC1ugAAtjUAALY3AAC2OQAAtjsAALY9AAC2PgAAtj8AALZAAAC2QQAAtkMAALZFAAC2RgAAtkcAALZJAAC2SgAAtsUAALbHAAC2yQAAtssAALbNAAC2zgAAts8AALbQAAC20QAAttMAALbVAAC21gAAttcAALbZAAC22gAAtvMAALb0AAC29QAAtvcAALdyAAC3dAAAt3YAALd4AAC3egAAt3sAALd8AAC3fQAAt34AALeAAAC3ggAAt4MAALeEAAC3hgAAt4cAALgCAAC4BAAAuAYAALgIAAC4CgAAuAsAALgMAAC4DQAAuA4AALgQAAC4EgAAuBMAALgUAAC4FgAAuBcAALiSAAC4lAAAuJYAALiYAAC4mgAAuJsAALicAAC4nQAAuJ4AALigAAC4ogAAuKMAALikAAC4pgAAuKcAALkiAAC5JAAAuSYAALkoAAC5KgAAuSsAALksAAC5LQAAuS4AALkwAAC5MgAAuTMAALk0AAC5NgAAuTcAALmyAAC5tAAAubYAALm4AAC5ugAAubsAALm8AAC5vQAAub4AALnAAAC5wgAAucMAALnEAAC5xgAAuccAALoQAAC6NAAAulsAALp/AAC6gQAAuoMAALqFAAC6hwAAuokAALqLAAC6jAAAuo4AALqnAAC6xAAAusYAALrIAAC6ygAAuswAALrOAAC60AAAutIAALrvAAC68QAAuvMAALr1AAC69wAAuvkAALr7AAC6/QAAuv8AALsfAAC7SgAAu2QAALt9AAC7lwAAu7cAALvaAAC8VQAAvFcAALxZAAC8WwAAvF0AALxeAAC8XwAAvGAAALxhAAC8YwAAvGUAALxmAAC8ZwAAvGkAALxqAAC85QAAvOcAALzpAAC86wAAvO0AALzuAAC87wAAvPAAALzxAAC88wAAvPUAALz2AAC89wAAvPkAALz6AAC9dQAAvXcAAL15AAC9ewAAvX0AAL1+AAC9fwAAvYAAAL2BAAC9gwAAvYUAAL2GAAC9hwAAvYkAAL2KAAC+BQAAvgcAAL4JAAC+CwAAvg0AAL4OAAC+DwAAvhAAAL4RAAC+EwAAvhUAAL4WAAC+FwAAvhkAAL4aAAC+HQAAvpgAAL6aAAC+nAAAvp4AAL6gAAC+oQAAvqIAAL6jAAC+pAAAvqYAAL6oAAC+qQAAvqoAAL6sAAC+rQAAvygAAL8qAAC/LAAAvy4AAL8wAAC/MQAAvzIAAL8zAAC/NAAAvzYAAL84AAC/OQAAvzoAAL88AAC/PQAAv0wAAL/HAAC/yQAAv8sAAL/NAAC/zwAAv9AAAL/RAAC/0gAAv9MAAL/VAAC/1wAAv9gAAL/ZAAC/2wAAv9wAAL/tAAC/+wAAwBQAAMAiAADALwAAwEIAAMBZAADAawAAwP4AAMEhAADBQQAAwWEAAMFjAADBZQAAwWcAAMFpAADBawAAwWwAAMFtAADBbwAAwXAAAMFyAADBcwAAwXUAAMF3AADBeAAAwXkAAMF7AADBfAAAwYEAAMGaAADBowAAwaUAAMGnAADBsAAAwbIAAMG0AADBtgAAwf8AAMIjAADCSgAAwm4AAMJwAADCcgAAwnQAAMJ2AADCeAAAwnoAAMJ7AADCfQAAwpYAAMK3AADCuQAAwrsAAMK9AADCvwAAwsEAAMLDAADCxQAAwscAAMLoAADC6gAAwuwAAMLuAADC8AAAwvIAAML0AADC9gAAwvgAAML6AADDdQAAw3cAAMN5AADDewAAw30AAMN+AADDfwAAw4AAAMOBAADDgwAAw4UAAMOGAADDhwAAw4kAAMOKAADEBQAAxAcAAMQJAADECwAAxA0AAMQOAADEDwAAxBAAAMQRAADEEwAAxBUAAMQWAADEFwAAxBkAAMQaAADElQAAxJcAAMSZAADEmwAAxJ0AAMSeAADEnwAAxKAAAMShAADEowAAxKUAAMSmAADEpwAAxKkAAMSqAADEwwAAxMQAAMTFAADExwAAxUIAAMVEAADFRgAAxUgAAMVKAADFSwAAxUwAAMVNAADFTgAAxVAAAMVSAADFUwAAxVQAAMVWAADFVwAAxdIAAMXUAADF1gAAxdgAAMXaAADF2wAAxdwAAMXdAADF3gAAxeAAAMXiAADF4wAAxeQAAMXmAADF5wAAxegAAMZjAADGZQAAxmcAAMZpAADGawAAxmwAAMZtAADGbgAAxm8AAMZxAADGcwAAxnQAAMZ1AADGdwAAxngAAMbzAADG9QAAxvcAAMb5AADG+wAAxvwAAMb9AADG/gAAxv8AAMcBAADHAwAAxwQAAMcFAADHBwAAxwgAAMeDAADHhQAAx4cAAMeJAADHiwAAx4wAAMeNAADHjgAAx48AAMeRAADHkwAAx5QAAMeVAADHlwAAx5gAAMfhAADIBQAAyCwAAMhQAADIUgAAyFQAAMhWAADIWAAAyFoAAMhcAADIXQAAyF8AAMh4AADIlQAAyJcAAMiZAADImwAAyJ0AAMifAADIoQAAyKMAAMjAAADIwgAAyMQAAMjGAADIyAAAyMoAAMjMAADIzgAAyNAAAMlLAADJTQAAyU8AAMlRAADJUwAAyVQAAMlVAADJVgAAyVcAAMlZAADJWwAAyVwAAMldAADJXwAAyWAAAMnbAADJ3QAAyd8AAMnhAADJ4wAAyeQAAMnlAADJ5gAAyecAAMnpAADJ6wAAyewAAMntAADJ7wAAyfAAAMprAADKbQAAym8AAMpxAADKcwAAynQAAMp1AADKdgAAyncAAMp5AADKewAAynwAAMp9AADKfwAAyoAAAMr7AADK/QAAyv8AAMsBAADLAwAAywQAAMsFAADLBgAAywcAAMsJAADLCwAAywwAAMsNAADLDwAAyxAAAMuLAADLjQAAy48AAMuRAADLkwAAy5QAAMuVAADLlgAAy5cAAMuZAADLmwAAy5wAAMudAADLnwAAy6AAAMwbAADMHQAAzB8AAMwhAADMIwAAzCQAAMwlAADMJgAAzCcAAMwpAADMKwAAzCwAAMwtAADMLwAAzDAAAMxCAADMvQAAzL8AAMzBAADMwwAAzMUAAMzGAADMxwAAzMgAAMzJAADMywAAzM0AAMzOAADMzwAAzNEAAMzSAADNZQAAzYgAAM2oAADNyAAAzcoAAM3MAADNzgAAzdAAAM3SAADN0wAAzdQAAM3WAADN1wAAzdkAAM3aAADN3AAAzd4AAM3fAADN4AAAzeIAAM3jAADN6AAAzgEAAM4KAADODAAAzg4AAM4XAADOGQAAzhsAAM4dAADOZgAAzooAAM6xAADO1QAAztcAAM7ZAADO2wAAzt0AAM7fAADO4QAAzuIAAM7kAADO/QAAzx4AAM8gAADPIgAAzyQAAM8mAADPKAAAzyoAAM8sAADPLgAAz08AAM9RAADPUwAAz1UAAM9XAADPWQAAz1sAAM9dAADPXwAAz2EAAM/cAADP3gAAz+AAAM/iAADP5AAAz+UAAM/mAADP5wAAz+gAAM/qAADP7AAAz+0AAM/uAADP8AAAz/EAANBsAADQbgAA0HAAANByAADQdAAA0HUAANB2AADQdwAA0HgAANB6AADQfAAA0H0AANB+AADQgAAA0IEAAND8AADQ/gAA0QAAANECAADRBAAA0QUAANEGAADRBwAA0QgAANEKAADRDAAA0Q0AANEOAADREAAA0REAANEqAADRKwAA0SwAANEuAADRqQAA0asAANGtAADRrwAA0bEAANGyAADRswAA0bQAANG1AADRtwAA0bkAANG6AADRuwAA0b0AANG+AADSOQAA0jsAANI9AADSPwAA0kEAANJCAADSQwAA0kQAANJFAADSRwAA0kkAANJKAADSSwAA0k0AANJOAADSyQAA0ssAANLNAADSzwAA0tEAANLSAADS0wAA0tQAANLVAADS1wAA0tkAANLaAADS2wAA0t0AANLeAADTWQAA01sAANNdAADTXwAA02EAANNiAADTYwAA02QAANNlAADTZwAA02kAANNqAADTawAA020AANNuAADT6QAA0+sAANPtAADT7wAA0/EAANPyAADT8wAA0/QAANP1AADT9wAA0/kAANP6AADT+wAA0/0AANP+AADURwAA1GsAANSSAADUtgAA1LgAANS6AADUvAAA1L4AANTAAADUwgAA1MMAANTFAADU3gAA1PsAANT9AADU/wAA1QEAANUDAADVBQAA1QcAANUJAADVJgAA1SgAANUqAADVLAAA1S4AANUwAADVMgAA1TQAANU2AADVsQAA1bMAANW1AADVtwAA1bkAANW6AADVuwAA1bwAANW9AADVvwAA1cEAANXCAADVwwAA1cUAANXGAADVyAAA1kMAANZFAADWRwAA1kkAANZLAADWTAAA1k0AANZOAADWTwAA1lEAANZTAADWVAAA1lUAANZXAADWWAAA1tMAANbVAADW1wAA1tkAANbbAADW3AAA1t0AANbeAADW3wAA1uEAANbjAADW5AAA1uUAANbnAADW6AAA12MAANdlAADXZwAA12kAANdrAADXbAAA120AANduAADXbwAA13EAANdzAADXdAAA13UAANd3AADXeAAA13sAANf2AADX+AAA1/oAANf8AADX/gAA1/8AANgAAADYAQAA2AIAANgEAADYBgAA2AcAANgIAADYCgAA2AsAANiGAADYiAAA2IoAANiMAADYjgAA2I8AANiQAADYkQAA2JIAANiUAADYlgAA2JcAANiYAADYmgAA2JsAANkWAADZGAAA2RoAANkcAADZHgAA2R8AANkgAADZIQAA2SIAANkkAADZJgAA2ScAANkoAADZKgAA2SsAANm+AADZ4QAA2gEAANohAADaIwAA2iUAANonAADaKQAA2isAANosAADaLQAA2i8AANowAADaMgAA2jMAANo1AADaNwAA2jgAANo5AADaOwAA2jwAANpBAADaWgAA2mMAANplAADaZwAA2nAAANpyAADadAAA2nYAANq/AADa4wAA2woAANsuAADbMAAA2zIAANs0AADbNgAA2zgAANs6AADbOwAA2z0AANtWAADbdwAA23kAANt7AADbfQAA238AANuBAADbgwAA24UAANuHAADbqAAA26oAANusAADbrgAA27AAANuyAADbtAAA27YAANu4AADbugAA3DUAANw3AADcOQAA3DsAANw9AADcPgAA3D8AANxAAADcQQAA3EMAANxFAADcRgAA3EcAANxJAADcSgAA3MUAANzHAADcyQAA3MsAANzNAADczgAA3M8AANzQAADc0QAA3NMAANzVAADc1gAA3NcAANzZAADc2gAA3VUAAN1XAADdWQAA3VsAAN1dAADdXgAA3V8AAN1gAADdYQAA3WMAAN1lAADdZgAA3WcAAN1pAADdagAA3YMAAN2EAADdhQAA3YcAAN4CAADeBAAA3gYAAN4IAADeCgAA3gsAAN4MAADeDQAA3g4AAN4QAADeEgAA3hMAAN4UAADeFgAA3hcAAN6SAADelAAA3pYAAN6YAADemgAA3psAAN6cAADenQAA3p4AAN6gAADeogAA3qMAAN6kAADepgAA3qcAAN8iAADfJAAA3yYAAN8oAADfKgAA3ysAAN8sAADfLQAA3y4AAN8wAADfMgAA3zMAAN80AADfNgAA3zcAAN+yAADftAAA37YAAN+4AADfugAA37sAAN+8AADfvQAA374AAN/AAADfwgAA38MAAN/EAADfxgAA38cAAOBCAADgRAAA4EYAAOBIAADgSgAA4EsAAOBMAADgTQAA4E4AAOBQAADgUgAA4FMAAOBUAADgVgAA4FcAAOCgAADgxAAA4OsAAOEPAADhEQAA4RMAAOEVAADhFwAA4RkAAOEbAADhHAAA4R4AAOE3AADhVAAA4VYAAOFYAADhWgAA4VwAAOFeAADhYAAA4WIAAOF/AADhgQAA4YMAAOGFAADhhwAA4YkAAOGLAADhjQAA4Y8AAOIKAADiDAAA4g4AAOIQAADiEgAA4hMAAOIUAADiFQAA4hYAAOIYAADiGgAA4hsAAOIcAADiHgAA4h8AAOKaAADinAAA4p4AAOKgAADiogAA4qMAAOKkAADipQAA4qYAAOKoAADiqgAA4qsAAOKsAADirgAA4q8AAOMqAADjLAAA4y4AAOMwAADjMgAA4zMAAOM0AADjNQAA4zYAAOM4AADjOgAA4zsAAOM8AADjPgAA4z8AAOO6AADjvAAA474AAOPAAADjwgAA48MAAOPEAADjxQAA48YAAOPIAADjygAA48sAAOPMAADjzgAA488AAORKAADkTAAA5E4AAORQAADkUgAA5FMAAORUAADkVQAA5FYAAORYAADkWgAA5FsAAORcAADkXgAA5F8AAOTaAADk3AAA5N4AAOTgAADk4gAA5OMAAOTkAADk5QAA5OYAAOToAADk6gAA5OsAAOTsAADk7gAA5O8AAOVqAADlbAAA5W4AAOVwAADlcgAA5XMAAOV0AADldQAA5XYAAOV4AADlegAA5XsAAOV8AADlfgAA5X8AAOYSAADmNQAA5lUAAOZ1AADmdwAA5nkAAOZ7AADmfQAA5n8AAOaAAADmgQAA5oMAAOaEAADmhgAA5ocAAOaJAADmiwAA5owAAOaNAADmjwAA5pAAAOaVAADmrgAA5rcAAOa5AADmuwAA5sQAAObGAADmyAAA5soAAOcTAADnNwAA514AAOeCAADnhAAA54YAAOeIAADnigAA54wAAOeOAADnjwAA55EAAOeqAADnywAA580AAOfPAADn0QAA59MAAOfVAADn1wAA59kAAOfbAADn/AAA5/4AAOgAAADoAgAA6AQAAOgGAADoCAAA6AoAAOgMAADoDgAA6IkAAOiLAADojQAA6I8AAOiRAADokgAA6JMAAOiUAADolQAA6JcAAOiZAADomgAA6JsAAOidAADongAA6RkAAOkbAADpHQAA6R8AAOkhAADpIgAA6SMAAOkkAADpJQAA6ScAAOkpAADpKgAA6SsAAOktAADpLgAA6akAAOmrAADprQAA6a8AAOmxAADpsgAA6bMAAOm0AADptQAA6bcAAOm5AADpugAA6bsAAOm9AADpvgAA6dcAAOnYAADp2QAA6dsAAOpWAADqWAAA6loAAOpcAADqXgAA6l8AAOpgAADqYQAA6mIAAOpkAADqZgAA6mcAAOpoAADqagAA6msAAOrmAADq6AAA6uoAAOrsAADq7gAA6u8AAOrwAADq8QAA6vIAAOr0AADq9gAA6vcAAOr4AADq+gAA6vsAAOt2AADreAAA63oAAOt8AADrfgAA638AAOuAAADrgQAA64IAAOuEAADrhgAA64cAAOuIAADrigAA64sAAOwGAADsCAAA7AoAAOwMAADsDgAA7A8AAOwQAADsEQAA7BIAAOwUAADsFgAA7BcAAOwYAADsGgAA7BsAAOyWAADsmAAA7JoAAOycAADsngAA7J8AAOygAADsoQAA7KIAAOykAADspgAA7KcAAOyoAADsqgAA7KsAAOz0AADtGAAA7T8AAO1jAADtZQAA7WcAAO1pAADtawAA7W0AAO1vAADtcAAA7XI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AAQdyAAEHdAABB3UAAQfwAAEH8gABB/QAAQf2AAEH+QABB/oAAQf7AAEH/AABB/0AAQf/AAEIAQABCAIAAQgDAAEIBQABCAYAAQiBAAEIgwABCIUAAQiHAAEIigABCIsAAQiMAAEIjQABCI4AAQiQAAEIkgABCJMAAQiUAAEIlgABCJcAAQkSAAEJFAABCRYAAQkYAAEJGwABCRwAAQkdAAEJHgABCR8AAQkhAAEJIwABCSQAAQklAAEJJwABCSgAAQmjAAEJpQABCacAAQmpAAEJrAABCa0AAQmuAAEJrwABCbAAAQmyAAEJtAABCbUAAQm2AAEJuAABCbkAAQo0AAEKNgABCjkAAQo7AAEKPgABCj8AAQpAAAEKQQABCkIAAQpEAAEKRgABCkcAAQpIAAEKSgABCksAAQpqAAEK5QABCucAAQrpAAEK6wABCu4AAQrvAAEK8AABCvEAAQryAAEK9AABCvYAAQr3AAEK+AABCvoAAQr7AAELjgABC7EAAQvRAAEL8QABC/MAAQv1AAEL9wABC/kAAQv7AAEL/AABC/0AAQwAAAEMAQABDAMAAQwEAAEMBgABDAgAAQwJAAEMCgABDA0AAQwOAAEMEwABDCwAAQw1AAEMNwABDDkAAQxCAAEMRQABDEgAAQxKAAEMkwABDLcAAQzeAAENAgABDQUAAQ0HAAENCQABDQsAAQ0NAAENDwABDRAAAQ0TAAENLAABDU0AAQ1PAAENUQABDVMAAQ1VAAENVwABDVkAAQ1bAAENXQABDX4AAQ2BAAENhAABDYcAAQ2KAAENjQABDZAAAQ2TAAENlgABDZgAAQ4TAAEOFQABDhcAAQ4ZAAEOHAABDh0AAQ4eAAEOHwABDiAAAQ4iAAEOJAABDiUAAQ4mAAEOKAABDikAAQ6kAAEOpgABDqgAAQ6qAAEOrQABDq4AAQ6vAAEOsAABDrEAAQ6zAAEOtQABDrYAAQ63AAEOuQABDroAAQ81AAEPNwABDzoAAQ88AAEPPwABD0AAAQ9BAAEPQgABD0MAAQ9FAAEPRwABD0gAAQ9JAAEPSwABD0wAAQ9lAAEPZgABD2cAAQ9pAAEP5AABD+YAAQ/oAAEP6gABD+0AAQ/uAAEP7wABD/AAAQ/xAAEP8wABD/UAAQ/2AAEP9wABD/kAAQ/6AAEQdQABEHcAARB5AAEQewABEH4AARB/AAEQgAABEIEAARCCAAEQhAABEIYAARCHAAEQiAABEIoAARCLAAERBgABEQgAAREKAAERDAABEQ8AAREQAAEREQABERIAARETAAERFQABERcAAREYAAERGQABERsAAREcAAERlwABEZkAARGbAAERnQABEaAAARGhAAERogABEaMAARGkAAERpgABEagAARGpAAERqgABEawAARGtAAESKAABEioAARIsAAESLgABEjEAARIyAAESMwABEjQAARI1AAESNwABEjkAARI6AAESOwABEj0AARI+AAEShwABEqsAARLSAAES9gABEvkAARL7AAES/QABEv8AARMBAAETAwABEwQAARMHAAETIAABEz0AARM/AAETQQABE0MAARNFAAETRwABE0kAARNLAAETaAABE2sAARNuAAETcQABE3QAARN3AAETegABE30AARN/AAET+gABE/wAARP+AAEUAAABFAMAARQEAAEUBQABFAYAARQHAAEUCQABFAsAARQMAAEUDQABFA8AARQQAAEUiwABFI0AARSPAAEUkQABFJQAARSVAAEUlgABFJcAARSYAAEUmgABFJwAARSdAAEUngABFKAAARShAAEVHAABFR4AARUgAAEVIgABFSUAARUmAAEVJwABFSgAARUpAAEVKwABFS0AARUuAAEVLwABFTEAARUyAAEVrQABFa8AARWxAAEVswABFbYAARW3AAEVuAABFbkAARW6AAEVvAABFb4AARW/AAEVwAABFcIAARXDAAEWPgABFkAAARZCAAEWRAABFkcAARZIAAEWSQABFkoAARZLAAEWTQABFk8AARZQAAEWUQABFlMAARZUAAEWzwABFtEAARbUAAEW1gABFtkAARbaAAEW2wABFtwAARbdAAEW3wABFuEAARbiAAEW4wABFuUAARbmAAEW9QABF3AAARdyAAEXdAABF3YAARd5AAEXegABF3sAARd8AAEXfQABF38AAReBAAEXggABF4MAAReFAAEXhgABGBkAARg8AAEYXAABGHwAARh+AAEYgAABGIIAARiEAAEYhgABGIcAARiIAAEYiwABGIwAARiOAAEYjwABGJEAARiTAAEYlAABGJUAARiYAAEYmQABGJ4AARi3AAEYwAABGMIAARjEAAEYzQABGNAAARjTAAEY1QABGR4AARlCAAEZaQABGY0AARmQAAEZkgABGZQAARmWAAEZmAABGZoAARmbAAEZngABGbcAARnYAAEZ2gABGdwAARneAAEZ4AABGeIAARnkAAEZ5gABGegAARoJAAEaDAABGg8AARoSAAEaFQABGhgAARobAAEaHgABGiEAARojAAEangABGqAAARqiAAEapAABGqcAARqoAAEaqQABGqoAARqrAAEarQABGq8AARqwAAEasQABGrMAARq0AAEbLwABGzEAARszAAEbNQABGzgAARs5AAEbOgABGzsAARs8AAEbPgABG0AAARtBAAEbQgABG0QAARtFAAEbwAABG8IAARvFAAEbxwABG8oAARvLAAEbzAABG80AARvOAAEb0AABG9IAARvTAAEb1AABG9YAARvXAAEb8AABG/EAARvyAAEb9AABHG8AARxxAAEccwABHHUAARx4AAEceQABHHoAARx7AAEcfAABHH4AARyAAAEcgQABHIIAARyEAAEchQABHQAAAR0CAAEdBAABHQYAAR0JAAEdCgABHQsAAR0MAAEdDQABHQ8AAR0RAAEdEgABHRMAAR0VAAEdFgABHZEAAR2TAAEdlQABHZcAAR2aAAEdmwABHZwAAR2dAAEdngABHaAAAR2iAAEdowABHaQAAR2mAAEdpwABHiIAAR4kAAEeJgABHigAAR4rAAEeLAABHi0AAR4uAAEeLwABHjEAAR4zAAEeNAABHjUAAR43AAEeOAABHrMAAR61AAEetwABHrkAAR68AAEevQABHr4AAR6/AAEewAABHsIAAR7EAAEexQABHsYAAR7IAAEeyQABHxIAAR82AAEfXQABH4EAAR+EAAEfhgABH4gAAR+KAAEfjAABH44AAR+PAAEfkgABH6sAAR/IAAEfygABH8wAAR/OAAEf0AABH9IAAR/UAAEf1gABH/MAAR/2AAEf+QABH/wAAR//AAEgAgABIAUAASAIAAEgCgABIIUAASCHAAEgiQABIIsAASCOAAEgjwABIJAAASCRAAEgkgABIJQAASCWAAEglwABIJgAASCaAAEgmwABIRYAASEYAAEhGgABIRwAASEfAAEhIAABISEAASEiAAEhIwABISUAASEnAAEhKAABISkAASErAAEhLAABIacAASGpAAEhqwABIa0AASGwAAEhsQABIbIAASGzAAEhtAABIbYAASG4AAEhuQABIboAASG8AAEhvQABIjgAASI6AAEiPAABIj4AASJBAAEiQgABIkMAASJEAAEiRQABIkcAASJJAAEiSgABIksAASJNAAEiTgABIskAASLLAAEizQABIs8AASLSAAEi0wABItQAASLVAAEi1gABItgAASLaAAEi2wABItwAASLeAAEi3wABI1oAASNcAAEjXgABI2AAASNjAAEjZAABI2UAASNmAAEjZwABI2kAASNrAAEjbAABI20AASNvAAEjcAABI+sAASPtAAEj7wABI/EAASP0AAEj9QABI/YAASP3AAEj+AABI/oAASP8AAEj/QABI/4AASQAAAEkAQABJJQAASS3AAEk1wABJPcAAST5AAEk+wABJP0AAST/AAElAQABJQIAASUDAAElBgABJQcAASUJAAElCgABJQwAASUOAAElDwABJRAAASUTAAElFAABJRkAASUyAAElOwABJT0AASU/AAElSAABJUsAASVOAAElUAABJZkAASW9AAEl5AABJggAASYLAAEmDQABJg8AASYRAAEmEwABJhUAASYWAAEmGQABJjIAASZTAAEmVQABJlcAASZZAAEmWwABJl0AASZfAAEmYQABJmMAASaEAAEmhwABJooAASaNAAEmkAABJpMAASaWAAEmmQABJpwAASaeAAEnGQABJxsAAScdAAEnHwABJyIAAScjAAEnJAABJyUAAScmAAEnKAABJyoAAScrAAEnLAABJy4AAScvAAEnqgABJ6wAASeuAAEnsAABJ7MAASe0AAEntQABJ7YAASe3AAEnuQABJ7sAASe8AAEnvQABJ78AASfAAAEoOwABKD0AAShAAAEoQgABKEUAAShGAAEoRwABKEgAAShJAAEoSwABKE0AAShOAAEoTwABKFEAAShSAAEoawABKGwAAShtAAEobwABKOoAASjsAAEo7gABKPAAASjzAAEo9AABKPUAASj2AAEo9wABKPkAASj7AAEo/AABKP0AASj/AAEpAAABKXsAASl9AAEpfwABKYEAASmEAAEphQABKYYAASmHAAEpiAABKYoAASmMAAEpjQABKY4AASmQAAEpkQABKgwAASoOAAEqEAABKhIAASoVAAEqFgABKhcAASoYAAEqGQABKhsAASodAAEqHgABKh8AASohAAEqIgABKp0AASqfAAEqoQABKqMAASqmAAEqpwABKqgAASqpAAEqqgABKqwAASquAAEqrwABKrAAASqyAAEqswABKy4AASswAAErMgABKzQAASs3AAErOAABKzkAASs6AAErOwABKz0AASs/AAErQAABK0EAAStDAAErRAABK40AASuxAAEr2AABK/wAASv/AAEsAQABLAMAASwFAAEsBwABLAkAASwKAAEsDQABLCYAASxDAAEsRQABLEcAASxJAAEsSwABLE0AASxPAAEsUQABLG4AASxxAAEsdAABLHcAASx6AAEsfQABLIAAASyDAAEshQABLQAAAS0CAAEtBAABLQYAAS0JAAEtCgABLQsAAS0MAAEtDQABLQ8AAS0RAAEtEgABLRMAAS0VAAEtFgABLZEAAS2TAAEtlQABLZcAAS2aAAEtmwABLZwAAS2dAAEtngABLaAAAS2iAAEtowABLaQAAS2mAAEtpwABLiIAAS4kAAEuJgABLigAAS4rAAEuLAABLi0AAS4uAAEuLwABLjEAAS4zAAEuNAABLjUAAS43AAEuOAABLrMAAS61AAEutwABLrkAAS68AAEuvQABLr4AAS6/AAEuwAABLsIAAS7EAAEuxQABLsYAAS7IAAEuyQABL0QAAS9GAAEvSAABL0oAAS9NAAEvTgABL08AAS9QAAEvUQABL1MAAS9VAAEvVgABL1cAAS9ZAAEvWgABL9UAAS/XAAEv2QABL9sAAS/eAAEv3wABL+AAAS/hAAEv4gABL+QAAS/mAAEv5wABL+gAAS/qAAEv6wABMGYAATBoAAEwagABMGwAATBvAAEwcAABMHEAATByAAEwcwABMHUAATB3AAEweAABMHkAATB7AAEwfAABMQ8AATEyAAExUgABMXIAATF0AAExdgABMXgAATF6AAExfAABMX0AATF+AAExgQABMYIAATGEAAExhQABMYcAATGJAAExigABMYsAATGOAAExjwABMZQAATGtAAExtgABMbgAATG6AAExwwABMcYAATHJAAExywABMhQAATI4AAEyXwABMoMAATKGAAEyiAABMooAATKMAAEyjgABMpAAATKRAAEylAABMq0AATLOAAEy0AABMtIAATLUAAEy1gABMtgAATLaAAEy3AABMt4AATL/AAEzAgABMwUAATMIAAEzCwABMw4AATMRAAEzFAABMxcAATMZAAEzlAABM5YAATOYAAEzmgABM50AATOeAAEznwABM6AAATOhAAEzowABM6UAATOmAAEzpwABM6kAATOqAAE0JQABNCcAATQpAAE0KwABNC4AATQvAAE0MAABNDEAATQyAAE0NAABNDYAATQ3AAE0OAABNDoAATQ7AAE0tgABNLgAATS7AAE0vQABNMAAATTBAAE0wgABNMMAATTEAAE0xgABNMgAATTJAAE0ygABNMwAATTNAAE05gABNOcAATToAAE06gABNWUAATVnAAE1aQABNWsAATVuAAE1bwABNXAAATVxAAE1cgABNXQAATV2AAE1dwABNXgAATV6AAE1ewABNfYAATX4AAE1+gABNfwAATX/AAE2AAABNgEAATYCAAE2AwABNgUAATYHAAE2CAABNgkAATYLAAE2DAABNocAATaJAAE2iwABNo0AATaQAAE2kQABNpIAATaTAAE2lAABNpYAATaYAAE2mQABNpoAATacAAE2nQABNxgAATcaAAE3HAABNx4AATchAAE3IgABNyMAATckAAE3JQABNycAATcpAAE3KgABNysAATctAAE3LgABN6kAATerAAE3rQABN68AATeyAAE3swABN7QAATe1AAE3tgABN7gAATe6AAE3uwABN7wAATe+AAE3vwABOAgAATgsAAE4UwABOHcAATh6AAE4fAABOH4AATiAAAE4ggABOIQAATiFAAE4iAABOKEAATi+AAE4wAABOMIAATjEAAE4xgABOMgAATjKAAE4zAABOOkAATjsAAE47wABOPIAATj1AAE4+AABOPsAATj+AAE5AAABOXsAATl9AAE5fwABOYEAATmEAAE5hQABOYYAATmHAAE5iAABOYoAATmMAAE5jQABOY4AATmQAAE5kQABOgwAAToOAAE6EAABOhIAAToVAAE6FgABOhcAAToYAAE6GQABOhsAATodAAE6HgABOh8AATohAAE6IgABOp0AATqfAAE6oQABOqMAATqmAAE6pwABOqgAATqpAAE6qgABOqwAATquAAE6rwABOrAAATqyAAE6swABOy4AATswAAE7MwABOzUAATs4AAE7OQABOzoAATs7AAE7PAABOz4AATtAAAE7QQABO0IAATtEAAE7RQABO8AAATvCAAE7xAABO8YAATvJAAE7ygABO8sAATvMAAE7zQABO88AATvRAAE70gABO9MAATvVAAE71gABPFE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AAU3BAAFNwwABTcUAAU3GAAFNxwABTckAAU3KAAFN4wABTeQAAU3lAAFN5wABTmIAAU5kAAFOZgABTmgAAU5rAAFObAABTm0AAU5uAAFObwABTnEAAU5zAAFOdAABTnUAAU53AAFOeAABTvMAAU71AAFO9wABTvkAAU78AAFO/QABTv4AAU7/AAFPAAABTwIAAU8EAAFPBQABTwYAAU8IAAFPCQABT4QAAU+GAAFPiAABT4oAAU+NAAFPjgABT48AAU+QAAFPkQABT5MAAU+VAAFPlgABT5cAAU+ZAAFPmgABUBUAAVAXAAFQGQABUBsAAVAeAAFQHwABUCAAAVAhAAFQIgABUCQAAVAmAAFQJwABUCgAAVAqAAFQKwABUKYAAVCoAAFQqgABUKwAAVCvAAFQsAABULEAAVCyAAFQswABULUAAVC3AAFQuAABULkAAVC7AAFQvAABUQUAAVEpAAFRUAABUXQAAVF3AAFReQABUXsAAVF9AAFRfwABUYEAAVGCAAFRhQABUZ4AAVG7AAFRvQABUb8AAVHBAAFRwwABUcUAAVHHAAFRyQABUeYAAVHpAAFR7AABUe8AAVHyAAFR9QABUfgAAVH7AAFR/QABUngAAVJ6AAFSfAABUn4AAVKBAAFSggABUoMAAVKEAAFShQABUocAAVKJAAFSigABUosAAVKNAAFSjgABUwkAAVMLAAFTDQABUw8AAVMSAAFTEwABUxQAAVMVAAFTFgABUxgAAVMaAAFTGwABUxwAAVMeAAFTHwABU5oAAVOcAAFTngABU6AAAVOjAAFTpAABU6UAAVOmAAFTpwABU6kAAVOrAAFTrAABU60AAVOvAAFTsAABVCsAAVQtAAFULwABVDEAAVQ0AAFUNQABVDYAAVQ3AAFUOAABVDoAAVQ8AAFUPQABVD4AAVRAAAFUQQABVLwAAVS+AAFUwAABVMIAAVTFAAFUxgABVMcAAVTIAAFUyQABVMsAAVTNAAFUzgABVM8AAVTRAAFU0gABVU0AAVVPAAFVUQABVVMAAVVWAAFVVwABVVgAAVVZAAFVWgABVVwAAVVeAAFVXwABVWAAAVViAAFVYwABVd4AAVXgAAFV4gABVeQAAVXnAAFV6AABVekAAVXqAAFV6wABVe0AAVXvAAFV8AABVfEAAVXzAAFV9AABVocAAVaqAAFWygABVuoAAVbsAAFW7gABVvAAAVbyAAFW9AABVvUAAVb2AAFW+QABVvoAAVb8AAFW/QABVv8AAVcBAAFXAgABVwMAAVcGAAFXBwABVwwAAVclAAFXLgABVzAAAVcyAAFXOwABVz4AAVdBAAFXQwABV4wAAVewAAFX1wABV/sAAVf+AAFYAAABWAIAAVgEAAFYBgABWAgAAVgJAAFYDAABWCUAAVhGAAFYSAABWEoAAVhMAAFYTgABWFAAAVhSAAFYVAABWFYAAVh3AAFYegABWH0AAViAAAFYgwABWIYAAViJAAFYjAABWI8AAViRAAFZDAABWQ4AAVkQAAFZEgABWRUAAVkWAAFZFwABWRgAAVkZAAFZGwABWR0AAVkeAAFZHwABWSEAAVkiAAFZnQABWZ8AAVmhAAFZowABWaYAAVmnAAFZqAABWakAAVmqAAFZrAABWa4AAVmvAAFZsAABWbIAAVmzAAFaLgABWjAAAVozAAFaNQABWjgAAVo5AAFaOgABWjsAAVo8AAFaPgABWkAAAVpBAAFaQgABWkQAAVpFAAFaXgABWl8AAVpgAAFaYgABWt0AAVrfAAFa4QABWuMAAVrmAAFa5wABWugAAVrpAAFa6gABWuwAAVruAAFa7wABWvAAAVryAAFa8wABW24AAVtwAAFbcgABW3QAAVt3AAFbeAABW3kAAVt6AAFbewABW30AAVt/AAFbgAABW4EAAVuDAAFbhAABW/8AAVwBAAFcAwABXAUAAVwIAAFcCQABXAoAAVwLAAFcDAABXA4AAVwQAAFcEQABXBIAAVwUAAFcFQABXJAAAVySAAFclAABXJYAAVyZAAFcmgABXJsAAVycAAFcnQABXJ8AAVyhAAFcogABXKMAAVylAAFcpgABXSEAAV0jAAFdJQABXScAAV0qAAFdKwABXSwAAV0tAAFdLgABXTAAAV0yAAFdMwABXTQAAV02AAFdNwABXYAAAV2kAAFdywABXe8AAV3yAAFd9AABXfYAAV34AAFd+gABXfwAAV39AAFeAAABXhkAAV42AAFeOAABXjoAAV48AAFePgABXkAAAV5CAAFeRAABXmEAAV5kAAFeZwABXmoAAV5tAAFecAABXnMAAV52AAFeeAABXvMAAV71AAFe9wABXvkAAV78AAFe/QABXv4AAV7/AAFfAAABXwIAAV8EAAFfBQABXwYAAV8IAAFfCQABX4QAAV+GAAFfiAABX4oAAV+NAAFfjgABX48AAV+QAAFfkQABX5MAAV+VAAFflgABX5cAAV+ZAAFfmgABYBUAAWAXAAFgGQABYBsAAWAeAAFgHwABYCAAAWAhAAFgIgABYCQAAWAmAAFgJwABYCgAAWAqAAFgKwABYKYAAWCoAAFgqgABYKwAAWCvAAFgsAABYLEAAWCyAAFgswABYLUAAWC3AAFguAABYLkAAWC7AAFgvAABYTcAAWE5AAFhOwABYT0AAWFAAAFhQQABYUIAAWFDAAFhRAABYUYAAWFIAAFhSQABYUoAAWFMAAFhTQABYcgAAWHKAAFhzAABYc4AAWHRAAFh0gABYdMAAWHUAAFh1QABYdcAAWHZAAFh2gABYdsAAWHdAAFh3gABYlkAAWJbAAFiXQABYl8AAWJiAAFiYwABYmQAAWJlAAFiZgABYmgAAWJqAAFiawABYmwAAWJuAAFibwABYwIAAWMlAAFjRQABY2UAAWNnAAFjaQABY2sAAWNtAAFjbwABY3AAAWNxAAFjdAABY3UAAWN3AAFjeAABY3sAAWN9AAFjfgABY38AAWOCAAFjgwABY4gAAWOhAAFjqgABY6wAAWOvAAFjuAABY7sAAWO+AAFjwAABY9MAAWQcAAFkQAABZGcAAWSLAAFkjgABZJAAAWSSAAFklAABZJYAAWSYAAFkmQABZJwAAWS1AAFk1gABZNgAAWTaAAFk3AABZN4AAWTgAAFk4gABZOQAAWTmAAFlBwABZQoAAWUNAAFlEAABZRMAAWUWAAFlGQABZRwAAWUfAAFlIQABZZwAAWWeAAFloAABZaIAAWWlAAFlpgABZacAAWWoAAFlqQABZasAAWWtAAFlrgABZa8AAWWxAAFlsgABZi0AAWYvAAFmMQABZjMAAWY2AAFmNwABZjgAAWY5AAFmOgABZjwAAWY+AAFmPwABZkAAAWZCAAFmQwABZr4AAWbAAAFmwwABZsUAAWbIAAFmyQABZsoAAWbLAAFmzAABZs4AAWbQAAFm0QABZtIAAWbUAAFm1QABZu4AAWbvAAFm8AABZvIAAWdtAAFnbwABZ3EAAWdzAAFndgABZ3cAAWd4AAFneQABZ3oAAWd8AAFnfgABZ38AAWeAAAFnggABZ4MAAWf+AAFoAAABaAIAAWgEAAFoBwABaAgAAWgJAAFoCgABaAsAAWgNAAFoDwABaBAAAWgRAAFoEwABaBQAAWiPAAFokQABaJMAAWiVAAFomAABaJkAAWiaAAFomwABaJwAAWieAAFooAABaKEAAWiiAAFopAABaKUAAWkgAAFpIgABaSQAAWkmAAFpKQABaSoAAWkrAAFpLAABaS0AAWkvAAFpMQABaTIAAWkzAAFpNQABaTYAAWmxAAFpswABabUAAWm3AAFpugABabsAAWm8AAFpvQABab4AAWnAAAFpwgABacMAAWnEAAFpxgABaccAAWoQAAFqNAABalsAAWp/AAFqggABaoUAAWqHAAFqiQABaosAAWqNAAFqjgABapEAAWqqAAFqxwABasoAAWrNAAFq0AABatMAAWrWAAFq2QABatwAAWr5AAFq/AABav8AAWsCAAFrBQABawgAAWsLAAFrDgABaxAAAWsiAAFrNgABa0gAAWtdAAFrbwABa34AAWubAAFsFgABbBgAAWwbAAFsHQABbCAAAWwhAAFsIgABbCMAAWwkAAFsJgABbCkAAWwqAAFsKwABbC0AAWwuAAFsqQABbKsAAWyuAAFssAABbLMAAWy0AAFstQABbLYAAWy3AAFsuQABbLwAAWy9AAFsvgABbMAAAWzBAAFswwABbT4AAW1AAAFtQwABbUUAAW1IAAFtSQABbUoAAW1LAAFtTAABbU4AAW1RAAFtUgABbVMAAW1VAAFtVgABbdEAAW3TAAFt1gABbdgAAW3bAAFt3AABbd0AAW3eAAFt3wABbeEAAW3kAAFt5QABbeYAAW3oAAFt6QABbmwAAW6QAAFutAABbtcAAW7+AAFvHgABb0UAAW9sAAFvjAABb7AAAW/UAAFv1gABb9kAAW/bAAFv3QABb98AAW/iAAFv5QABb+cAAW/pAAFv7AABb+4AAW/wAAFv8wABb/YAAW/3AAFv/AABcBUAAXAaAAFwHAABcCEAAXAkAAFwJgABcG8AAXCTAAFwugABcN4AAXDhAAFw4wABcOUAAXDnAAFw6QABcOsAAXDsAAFw7wABcQgAAXEtAAFxLwABcTEAAXEzAAFxNQABcTcAAXE5AAFxOwABcT0AAXE/AAFxZAABcWcAAXFqAAFxbQABcXAAAXFzAAFxdgABcXkAAXF8AAFxfwABcYEAAXH8AAFx/gABcgEAAXIDAAFyBgABcgcAAXIIAAFyCQABcgoAAXIMAAFyDgABcg8AAXIQAAFyEgABchMAAXIkAAFyJQABcicAAXKiAAFypAABcqYAAXKoAAFyqwABcqwAAXKtAAFyrgABcq8AAXKxAAFyswABcrQAAXK1AAFytwABcrgAAXMzAAFzNQABczgAAXM6AAFzPQABcz4AAXM/AAFzQAABc0EAAXNDAAFzRQABc0YAAXNHAAFzSQABc0oAAXNbAAFzXAABc14AAXPZAAFz2wABc90AAXPfAAFz4gABc+MAAXPkAAFz5QABc+YAAXPoAAFz6gABc+sAAXPsAAFz7gABc+8AAXRqAAF0bAABdG8AAXRxAAF0dAABdHUAAXR2AAF0dwABdHgAAXR6AAF0fAABdH0AAXR+AAF0gAABdIEAAXSSAAF0kwABdJUAAXUQAAF1EgABdRQAAXUWAAF1GQABdRoAAXUbAAF1HAABdR0AAXUfAAF1IQABdSIAAXUjAAF1JQABdSYAAXWhAAF1owABdaYAAXWoAAF1qwABdawAAXWtAAF1rgABda8AAXWxAAF1swABdbQAAXW1AAF1twABdbgAAXXRAAF10gABddMAAXXVAAF2UAABdlIAAXZUAAF2VgABdlkAAXZaAAF2WwABdlwAAXZdAAF2XwABdmEAAXZiAAF2YwABdmUAAXZmAAF24QABduMAAXblAAF25wABduoAAXbrAAF27AABdu0AAXbuAAF28AABdvIAAXbzAAF29AABdvYAAXb3AAF3EAABdykAAXcsAAF3LwABdzIAAXc1AAF3OAABdzsAAXdUAAF3VwABd1oAAXddAAF3YAABd2MAAXdmAAF3aAABd30AAXegAAF3tgABd8kAAXfVAAF36wABeH4AAXihAAF4wQABeOEAAXjjAAF45QABeOcAAXjpAAF47AABeO0AAXjuAAF48QABePIAAXj0AAF49QABePcAAXj6AAF4+wABePwAAXj/AAF5AAABeQUAAXkeAAF5JwABeSkAAXkrAAF5NAABeTcAAXk6AAF5PAABeYUAAXmpAAF50AABefQAAXn3AAF5+QABefsAAXn9AAF5/wABegEAAXoCAAF6BQABeh4AAXo/AAF6QQABekMAAXpFAAF6RwABekkAAXpLAAF6TQABek8AAXpwAAF6cwABenYAAXp5AAF6fAABen8AAXqCAAF6hQABeogAAXqKAAF7BQABewcAAXsJAAF7CwABew4AAXsPAAF7EAABexEAAXsSAAF7FAABexYAAXsXAAF7GAABexoAAXsbAAF7lgABe5gAAXuaAAF7nAABe58AAXugAAF7oQABe6IAAXujAAF7pQABe6cAAXuoAAF7qQABe6sAAXusAAF8JwABfCkAAXwsAAF8LgABfDEAAXwyAAF8MwABfDQAAXw1AAF8NwABfDkAAXw6AAF8OwABfD0AAXw+AAF8VwABfFgAAXxZAAF8WwABfNYAAXzYAAF82gABfNwAAXzfAAF84AABfOEAAXziAAF84wABfOUAAXznAAF86AABfOkAAXzrAAF87AABfWcAAX1pAAF9awABfW0AAX1wAAF9cQABfXIAAX1zAAF9dAABfXYAAX14AAF9eQABfXoAAX18AAF9fQABffgAAX36AAF9/AABff4AAX4BAAF+AgABfgMAAX4EAAF+BQABfgcAAX4JAAF+CgABfgsAAX4NAAF+DgABfokAAX6LAAF+jQABfo8AAX6SAAF+kwABfpQAAX6VAAF+lgABfpgAAX6aAAF+mwABfpwAAX6eAAF+nwABfxoAAX8cAAF/HgABfyAAAX8jAAF/JAABfyUAAX8mAAF/JwABfykAAX8rAAF/LAABfy0AAX8vAAF/MAABf3kAAX+dAAF/xAABf+gAAX/rAAF/7QABf+8AAX/xAAF/8wABf/UAAX/2AAF/+QABgBIAAYAvAAGAMQABgDMAAYA1AAGANwABgDkAAYA7AAGAPQABgFoAAYBdAAGAYAABgGMAAYBmAAGAaQABgGwAAYBvAAGAcQABgOwAAYDuAAGA8AABgPIAAYD1AAGA9gABgPcAAYD4AAGA+QABgPsAAYD9AAGA/gABgP8AAYEBAAGBAgABgX0AAYF/AAGBgQABgYMAAYGGAAGBhwABgYgAAYGJAAGBigABgYwAAYGOAAGBjwABgZAAAYGSAAGBkwABgg4AAYIQAAGCEgABghQAAYIXAAGCGAABghkAAYIaAAGCGwABgh0AAYIfAAGCIAABgiEAAYIjAAGCJAABgp8AAYKhAAGCowABgqUAAYKoAAGCqQABgqoAAYKrAAGCrAABgq4AAYKwAAGCsQABgrIAAYK0AAGCtQABgzAAAYMyAAGDNAABgzYAAYM5AAGDOgABgzsAAYM8AAGDPQABgz8AAYNBAAGDQgABg0MAAYNFAAGDRgABg8EAAYPDAAGDxQABg8cAAYPKAAGDywABg8wAAYPNAAGDzgABg9AAAYPSAAGD0wABg9QAAYPWAAGD1wABhFIAAYRUAAGEVgABhFgAAYRbAAGEXAABhF0AAYReAAGEXwABhGEAAYRjAAGEZAABhGUAAYRnAAGEaAABhPsAAYUeAAGFPgABhV4AAYVgAAGFYgABhWQAAYVmAAGFaQABhWoAAYVrAAGFbgABhW8AAYVxAAGFcgABhXQAAYV3AAGFeAABhXkAAYV8AAGFfQABhYIAAYWbAAGFpAABhaYAAYWoAAGFsQABhbQAAYW3AAGFuQABhgIAAYYmAAGGTQABhnEAAYZ0AAGGdgABhngAAYZ6AAGGfAABhn4AAYZ/AAGGggABhpsAAYa8AAGGvgABhsAAAYbCAAGGxAABhsYAAYbIAAGGygABhswAAYbtAAGG8AABhvMAAYb2AAGG+QABhvwAAYb/AAGHAgABhwUAAYcHAAGHggABh4QAAYeGAAGHiAABh4sAAYeMAAGHjQABh44AAYePAAGHkQABh5MAAYeUAAGHlQABh5cAAYeYAAGIEwABiBUAAYgXAAGIGQABiBwAAYgdAAGIHgABiB8AAYggAAGIIgABiCQAAYglAAGIJgABiCgAAYgpAAGIpAABiKYAAYipAAGIqwABiK4AAYivAAGIsAABiLEAAYiyAAGItAABiLYAAYi3AAGIuAABiLoAAYi7AAGI1AABiNUAAYjWAAGI2AABiVMAAYlVAAGJVwABiVkAAYlcAAGJXQABiV4AAYlfAAGJYAABiWIAAYlkAAGJZQABiWYAAYloAAGJaQABieQAAYnmAAGJ6AABieoAAYntAAGJ7gABie8AAYnwAAGJ8QABifMAAYn1AAGJ9gABifcAAYn5AAGJ+gABinUAAYp3AAGKeQABinsAAYp+AAGKfwABioAAAYqBAAGKggABioQAAYqGAAGKhwABiogAAYqKAAGKiwABiwYAAYsIAAGLCgABiwwAAYsPAAGLEAABixEAAYsSAAGLEwABixUAAYsXAAGLGAABixkAAYsbAAGLHAABi5cAAYuZAAGLmwABi50AAYugAAGLoQABi6IAAYujAAGLpAABi6YAAYuoAAGLqQABi6oAAYusAAGLrQABi/YAAYwaAAGMQQABjGUAAYxoAAGMagABjGwAAYxuAAGMcAABjHIAAYxzAAGMdgABjI8AAYysAAGMrgABjLAAAYyyAAGMtAABjLYAAYy4AAGMugABjNcAAYzaAAGM3QABjOAAAYzjAAGM5gABjOkAAYzsAAGM7gABjWkAAY1rAAGNbQABjW8AAY1yAAGNcwABjXQAAY11AAGNdgABjXgAAY16AAGNewABjXwAAY1+AAGNfwABjfoAAY38AAGN/gABjgAAAY4DAAGOBAABjgUAAY4GAAGOBwABjgkAAY4LAAGODAABjg0AAY4PAAGOEAABjosAAY6NAAGOjwABjpEAAY6UAAGOlQABjpYAAY6XAAGOmAABjpoAAY6cAAGOnQABjp4AAY6gAAGOoQABjxwAAY8eAAGPIAABjyIAAY8lAAGPJgABjycAAY8oAAGPKQABjysAAY8tAAGPLgABjy8AAY8xAAGPMgABj60AAY+vAAGPsQABj7MAAY+2AAGPtwABj7gAAY+5AAGPugABj7wAAY++AAGPvwABj8AAAY/CAAGPwwABkD4AAZBAAAGQQwABkEUAAZBIAAGQSQABkEoAAZBLAAGQTAABkE4AAZBQAAGQUQABkFIAAZBUAAGQVQABkGcAAZDiAAGQ5AABkOYAAZDoAAGQ6wABkOwAAZDtAAGQ7gABkO8AAZDxAAGQ8wABkPQAAZD1AAGQ9wABkPgAAZGLAAGRrgABkc4AAZHuAAGR8AABkfIAAZH0AAGR9gABkfkAAZH6AAGR+wABkf4AAZH/AAGSAQABkgIAAZIEAAGSBwABkggAAZIJAAGSDAABkg0AAZISAAGSKwABkjQAAZI2AAGSOAABkkEAAZJEAAGSRwABkkkAAZKSAAGStgABkt0AAZMBAAGTBAABkwYAAZMIAAGTCgABkwwAAZMOAAGTDwABkxIAAZMrAAGTTAABk04AAZNQAAGTUgABk1QAAZNWAAGTWAABk1oAAZNcAAGTfQABk4AAAZODAAGThgABk4kAAZOMAAGTjwABk5IAAZOVAAGTlwABlBIAAZQUAAGUFgABlBgAAZQbAAGUHAABlB0AAZQeAAGUHwABlCEAAZQjAAGUJAABlCUAAZQnAAGUKAABlKMAAZSlAAGUpwABlKkAAZSsAAGUrQABlK4AAZSvAAGUsAABlLIAAZS0AAGUtQABlLYAAZS4AAGUuQABlTQAAZU2AAGVOQABlTsAAZU+AAGVPwABlUAAAZVBAAGVQgABlUQAAZVGAAGVRwABlUgAAZVKAAGVSwABlWQAAZVlAAGVZgABlWgAAZXjAAGV5QABlecAAZXpAAGV7AABle0AAZXuAAGV7wABlfAAAZXyAAGV9AABlfUAAZX2AAGV+AABlfkAAZZ0AAGWdgABlngAAZZ6AAGWfQABln4AAZZ/AAGWgAABloEAAZaDAAGWhQABloYAAZaHAAGWiQABlooAAZcFAAGXBwABlwkAAZcLAAGXDgABlw8AAZcQAAGXEQABlxIAAZcUAAGXFgABlxcAAZcYAAGXGgABlxsAAZeWAAGXmAABl5oAAZecAAGXnwABl6AAAZehAAGXogABl6MAAZelAAGXpwABl6gAAZepAAGXqwABl6wAAZgnAAGYKQABmCsAAZgtAAGYMAABmDEAAZgyAAGYMwABmDQAAZg2AAGYOAABmDkAAZg6AAGYPAABmD0AAZiGAAGYqgABmNEAAZj1AAGY+AABmPoAAZj8AAGY/gABmQAAAZkCAAGZAwABmQYAAZkfAAGZPAABmT4AAZlAAAGZQgABmUQAAZlGAAGZSAABmUoAAZlnAAGZagABmW0AAZlwAAGZcwABmXYAAZl5AAGZfAABmX4AAZn5AAGZ+wABmf0AAZn/AAGaAgABmgMAAZoEAAGaBQABmgYAAZoIAAGaCgABmgsAAZoMAAGaDgABmg8AAZqKAAGajAABmo4AAZqQAAGakwABmpQAAZqVAAGalgABmpcAAZqZAAGamwABmpwAAZqdAAGanwABmqAAAZsbAAGbHQABmx8AAZshAAGbJAABmyUAAZsmAAGbJwABmygAAZsqAAGbLAABmy0AAZsuAAGbMAABmzEAAZusAAGbrgABm7AAAZuyAAGbtQABm7YAAZu3AAGbuAABm7kAAZu7AAGbvQABm74AAZu/AAGbwQABm8IAAZw9AAGcPwABnEEAAZxDAAGcRgABnEcAAZxIAAGcSQABnEoAAZxMAAGcTgABnE8AAZxQAAGcUgABnFMAAZzOAAGc0AABnNIAAZzUAAGc1wABnNgAAZzZAAGc2gABnNsAAZzdAAGc3wABnOAAAZzhAAGc4wABnOQAAZ1fAAGdYQABnWMAAZ1lAAGdaAABnWkAAZ1qAAGdawABnWwAAZ1uAAGdcAABnXEAAZ1yAAGddAABnXUAAZ4IAAGeKwABnksAAZ5rAAGebQABnm8AAZ5xAAGecwABnnYAAZ53AAGeeAABnnsAAZ58AAGefgABnn8AAZ6CAAGehQABnoYAAZ6HAAGeigABnosAAZ6QAAGeqQABnrIAAZ60AAGetwABnsAAAZ7DAAGexgABnsgAAZ8RAAGfNQABn1wAAZ+AAAGfgwABn4UAAZ+HAAGfiQABn4sAAZ+NAAGfjgABn5EAAZ+qAAGfywABn80AAZ/PAAGf0QABn9MAAZ/VAAGf1wABn9kAAZ/bAAGf/AABn/8AAaACAAGgBQABoAgAAaALAAGgDgABoBEAAaAUAAGgFgABoJEAAaCTAAGglQABoJcAAaCaAAGgmwABoJwAAaCdAAGgngABoKAAAaCiAAGgowABoKQAAaCmAAGgpwABoSIAAaEkAAGhJgABoSgAAaErAAGhLAABoS0AAaEuAAGhLwABoTEAAaEzAAGhNAABoTUAAaE3AAGhOAABobMAAaG1AAGhuAABoboAAaG9AAGhvgABob8AAaHAAAGhwQABocMAAaHFAAGhxgABoccAAaHJAAGhygABoeMAAaHkAAGh5QABoecAAaJiAAGiZAABomYAAaJoAAGiawABomwAAaJtAAGibgABom8AAaJxAAGicwABonQAAaJ1AAGidwABongAAaLzAAGi9QABovcAAaL5AAGi/AABov0AAaL+AAGi/wABowAAAaMCAAGjBAABowUAAaMGAAGjCAABowkAAaOEAAGjhgABo4gAAaOKAAGjjQABo44AAaOPAAGjkAABo5EAAaOTAAGjlQABo5YAAaOXAAGjmQABo5oAAaQVAAGkFwABpBkAAaQbAAGkHgABpB8AAaQgAAGkIQABpCIAAaQkAAGkJgABpCcAAaQoAAGkKgABpCsAAaSmAAGkqAABpKoAAaSsAAGkrwABpLAAAaSxAAGksgABpLMAAaS1AAGktwABpLgAAaS5AAGkuwABpLwAAaUFAAGlKQABpVAAAaV0AAGldwABpXoAAaV8AAGlfgABpYAAAaWCAAGlgwABpYYAAaWfAAGlvAABpb8AAaXCAAGlxQABpcgAAaXLAAGlzgABpdEAAaXuAAGl8QABpfQAAaX3AAGl+gABpf0AAaYAAAGmAwABpgUAAaaAAAGmggABpoUAAaaHAAGmigABposAAaaMAAGmjQABpo4AAaaQAAGmkwABppQAAaaVAAGmlwABppgAAacTAAGnFQABpxgAAacaAAGnHQABpx4AAacfAAGnIAABpyEAAacjAAGnJgABpycAAacoAAGnKgABpysAAactAAGnqAABp6oAAaetAAGnrwABp7IAAaezAAGntAABp7UAAae2AAGnuAABp7sAAae8AAGnvQABp78AAafAAAGoOwABqD0AAag/AAGoQQABqEQAAahFAAGoRgABqEcAAahIAAGoSgABqE0AAahOAAGoTwABqFEAAahSAAGozQABqM8AAajRAAGo0wABqNYAAajXAAGo2AABqNkAAajaAAGo3AABqN8AAajgAAGo4QABqOMAAajkAAGpXwABqWEAAaljAAGpZQABqWgAAalpAAGpagABqWsAAalsAAGpbgABqXEAAalyAAGpcwABqXUAAal2AAGp8QABqfMAAan2AAGp+AABqfsAAan8AAGp/QABqf4AAan/AAGqAQABqgQAAaoFAAGqBgABqggAAaoJAAGqGgABqi0AAapGAAGqWQABqmYAAap5AAGqkAABqqIAAas1AAGrWAABq3gAAauYAAGrmgABq5wAAaueAAGroAABq6MAAaukAAGrpQABq6gAAaupAAGrqwABq6wAAauvAAGrsgABq7MAAau0AAGrtwABq7gAAavBAAGr2gABq+MAAavlAAGr6AABq/EAAav0AAGr9wABq/kAAaxCAAGsZgABrI0AAayxAAGstAABrLYAAay4AAGsugABrLwAAay+AAGsvwABrMIAAazbAAGs/AABrP4AAa0AAAGtAgABrQQAAa0GAAGtCAABrQoAAa0MAAGtLQABrTAAAa0zAAGtNgABrTkAAa08AAGtPwABrUIAAa1FAAGtRwABrcIAAa3EAAGtxgABrcgAAa3LAAGtzAABrc0AAa3OAAGtzwABrdEAAa3TAAGt1AABrdUAAa3XAAGt2AABrlMAAa5VAAGuVwABrlkAAa5cAAGuXQABrl4AAa5fAAGuYAABrmIAAa5kAAGuZQABrmYAAa5oAAGuaQABruQAAa7mAAGu6QABrusAAa7uAAGu7wABrvAAAa7xAAGu8gABrvQAAa72AAGu9wABrvgAAa76AAGu+wABrxQAAa8VAAGvFgABrxgAAa+TAAGvlQABr5cAAa+ZAAGvnAABr50AAa+eAAGvnwABr6AAAa+iAAGvpAABr6UAAa+mAAGvqAABr6kAAbAkAAGwJgABsCgAAbAqAAGwLQABsC4AAbAvAAGwMAABsDEAAbAzAAGwNQABsDYAAbA3AAGwOQABsDoAAbC1AAGwtwABsLkAAbC7AAGwvgABsL8AAbDAAAGwwQABsMIAAbDEAAGwxgABsMcAAbDIAAGwygABsMsAAbFGAAGxSAABsUoAAbFMAAGxTwABsVAAAbFRAAGxUgABsVMAAbFVAAGxVwABsVgAAbFZAAGxWwABsVwAAbHXAAGx2QABsdsAAbHdAAGx4AABseEAAbHiAAGx4wABseQAAbHmAAGx6AABsekAAbHqAAGx7AABse0AAbI2AAGyWgABsoEAAbKlAAGyqAABsqsAAbKtAAGyrwABsrEAAbKzAAGytAABsrcAAbLQAAGy7QABsvAAAbLzAAGy9gABsvkAAbL8AAGy/wABswIAAbMfAAGzIgABsyUAAbMoAAGzKwABsy4AAbMxAAGzNAABszYAAbOxAAGzswABs7YAAbO4AAGzuwABs7wAAbO9AAGzvgABs78AAbPBAAGzxAABs8UAAbPGAAGzyAABs8kAAbREAAG0RgABtEkAAbRLAAG0TgABtE8AAbRQAAG0UQABtFIAAbRUAAG0VwABtFgAAbRZAAG0WwABtFwAAbTXAAG02QABtNwAAbTeAAG04QABtOIAAbTjAAG05AABtOUAAbTnAAG06gABtOsAAbTsAAG07gABtO8AAbVqAAG1bAABtW8AAbVxAAG1dAABtXUAAbV2AAG1dwABtXgAAbV6AAG1fQABtX4AAbV/AAG1gQABtYIAAbYFAAG2KQABtk0AAbZwAAG2lwABtrcAAbbeAAG3BQABtyUAAbdJAAG3bQABt28AAbdyAAG3dAABt3YAAbd4AAG3ewABt34AAbeAAAG3ggABt4UAAbeHAAG3iQABt4wAAbePAAG3kAABt5UAAbeuAAG3swABt7UAAbe6AAG3vQABt78AAbgIAAG4LAABuFMAAbh3AAG4egABuHwAAbh+AAG4gAABuIIAAbiEAAG4hQABuIgAAbihAAG4xgABuMgAAbjKAAG4zAABuM4AAbjQAAG40gABuNQAAbjWAAG42AABuP0AAbkAAAG5AwABuQYAAbkJAAG5DAABuQ8AAbkSAAG5FQABuRgAAbkaAAG5lQABuZcAAbmaAAG5nAABuZ8AAbmgAAG5oQABuaIAAbmjAAG5pQABuacAAbmoAAG5qQABuasAAbmsAAG5vQABub4AAbnAAAG6OwABuj0AAbo/AAG6QQABukQAAbpFAAG6RgABukcAAbpIAAG6SgABukwAAbpNAAG6TgABulAAAbpRAAG6zAABus4AAbrRAAG60wAButYAAbrXAAG62AAButkAAbraAAG63AABut4AAbrfAAG64AABuuIAAbrjAAG69AABuvUAAbr3AAG7cgABu3QAAbt2AAG7eAABu3sAAbt8AAG7fQABu34AAbt/AAG7gQABu4MAAbuEAAG7hQABu4cAAbuIAAG8AwABvAUAAbwIAAG8CgABvA0AAbwOAAG8DwABvBAAAbwRAAG8EwABvBUAAbwWAAG8FwABvBkAAbwaAAG8KwABvCwAAbwuAAG8qQABvKsAAbytAAG8rwABvLIAAbyzAAG8tAABvLUAAby2AAG8uAABvLoAAby7AAG8vAABvL4AAby/AAG9OgABvTwAAb0/AAG9QQABvUQAAb1FAAG9RgABvUcAAb1IAAG9SgABvUwAAb1NAAG9TgABvVAAAb1RAAG9agABvWsAAb1sAAG9bgABvekAAb3rAAG97QABve8AAb3yAAG98wABvfQAAb31AAG99gABvfgAAb36AAG9+wABvfwAAb3+AAG9/wABvnoAAb58AAG+fwABvoEAAb6EAAG+hQABvoYAAb6HAAG+iAABvooAAb6MAAG+jQABvo4AAb6QAAG+kQABvp0AAb62AAG+ywABvs4AAb7RAAG+1AABvtcAAb7aAAG+7wABvvIAAb71AAG++AABvvsAAb7+AAG/AAABvxYAAb8hAAG/LQABv0MAAb9NAAG/4AABwAMAAcAjAAHAQwABwEUAAcBHAAHASQABwEsAAcBOAAHATwABwFAAAcBTAAHAVAABwFYAAcBXAAHAWQABwFwAAcBdAAHAXgABwGEAAcBiAAHAZwABwIAAAcCJAAHAiwABwI0AAcCWAAHAmQABwJwAAcCeAAHA5wABwQsAAcEyAAHBVgABwVkAAcFbAAHBXQABwV8AAcFhAAHBYwABwWQAAcFnAAHBgAABwaEAAcGjAAHBpQABwacAAcGpAAHBqwABwa0AAcGvAAHBsQABwdIAAcHVAAHB2AABwdsAAcHeAAHB4QABweQAAcHnAAHB6gABwewAAcJnAAHCaQABwmsAAcJtAAHCcAABwnEAAcJyAAHCcwABwnQAAcJ2AAHCeAABwnkAAcJ6AAHCfAABwn0AAcL4AAHC+gABwvwAAcL+AAHDAQABwwIAAcMDAAHDBAABwwUAAcMHAAHDCQABwwoAAcMLAAHDDQABww4AAcOJAAHDiwABw44AAcOQAAHDkwABw5QAAcOVAAHDlgABw5cAAcOZAAHDmwABw5wAAcOdAAHDnwABw6AAAcO5AAHDugABw7sAAcO9AAHEOAABxDoAAcQ8AAHEPgABxEEAAcRCAAHEQwABxEQAAcRFAAHERwABxEkAAcRKAAHESwABxE0AAcROAAHEyQABxMsAAcTNAAHEzwABxNIAAcTTAAHE1AABxNUAAcTWAAHE2AABxNoAAcTbAAHE3AABxN4AAcTfAAHFWgABxVwAAcVeAAHFYAABxWMAAcVkAAHFZQABxWYAAcVnAAHFaQABxWsAAcVsAAHFbQABxW8AAcVwAAHF6wABxe0AAcXvAAHF8QABxfQAAcX1AAHF9gABxfcAAcX4AAHF+gABxfwAAcX9AAHF/gABxgAAAcYBAAHGfAABxn4AAcaAAAHGggABxoUAAcaGAAHGhwABxogAAcaJAAHGiwABxo0AAcaOAAHGjwABxpEAAcaSAAHG2wABxv8AAccmAAHHSgABx00AAcdPAAHHUQABx1MAAcdVAAHHVwABx1gAAcdbAAHHdAABx5EAAceTAAHHlQABx5cAAceZAAHHmwABx50AAcefAAHHvAABx78AAcfCAAHHxQABx8gAAcfLAAHHzgABx9EAAcfTAAHITgAByFAAAchSAAHIVAAByFcAAchYAAHIWQAByFoAAchbAAHIXQAByF8AAchgAAHIYQAByGMAAchkAAHI3wAByOEAAcjjAAHI5QAByOgAAcjpAAHI6gAByOsAAcjsAAHI7gAByPAAAcjxAAHI8gAByPQAAcj1AAHJcAAByXIAAcl0AAHJdgAByXkAAcl6AAHJewAByXwAAcl9AAHJfwAByYEAAcmCAAHJgwAByYUAAcmGAAHKAQABygMAAcoGAAHKCAABygsAAcoMAAHKDQAByg4AAcoPAAHKEQAByhMAAcoUAAHKFQAByhcAAcoYAAHKkwABypUAAcqXAAHKmQABypwAAcqdAAHKngAByp8AAcqgAAHKogAByqQAAcqlAAHKpgAByqgAAcqpAAHLJAAByyYAAcsoAAHLKgAByy0AAcsuAAHLLwAByzAAAcsxAAHLMwAByzUAAcs2AAHLNwAByzkAAcs6AAHLtQABy7cAAcu5AAHLuwABy74AAcu/AAHLwAABy8EAAcvCAAHLxAABy8YAAcvHAAHLyAABy8oAAcvLAAHMXgABzIEAAcyhAAHMwQABzMMAAczFAAHMxwABzMkAAczMAAHMzQABzM4AAczRAAHM0gABzNQAAczVAAHM1wABzNoAAczbAAHM3AABzN8AAczgAAHM5QABzP4AAc0HAAHNCQABzQsAAc0UAAHNFwABzRoAAc0cAAHNZQABzYkAAc2wAAHN1AABzdcAAc3ZAAHN2wABzd0AAc3fAAHN4QABzeIAAc3lAAHN/gABzh8AAc4hAAHOIwABziUAAc4nAAHOKQABzisAAc4tAAHOLwABzlAAAc5TAAHOVgABzlkAAc5cAAHOXwABzmIAAc5lAAHOaAABzmoAAc7lAAHO5wABzukAAc7rAAHO7gABzu8AAc7wAAHO8QABzvIAAc70AAHO9gABzvcAAc74AAHO+gABzvsAAc92AAHPeAABz3oAAc98AAHPfwABz4AAAc+BAAHPggABz4MAAc+FAAHPhwABz4gAAc+JAAHPiwABz4wAAdAHAAHQCQAB0AwAAdAOAAHQEQAB0BIAAdATAAHQFAAB0BUAAdAXAAHQGQAB0BoAAdAbAAHQHQAB0B4AAdA3AAHQOAAB0DkAAdA7AAHQtgAB0LgAAdC6AAHQvAAB0L8AAdDAAAHQwQAB0MIAAdDDAAHQxQAB0McAAdDIAAHQyQAB0MsAAdDMAAHRRwAB0UkAAdFLAAHRTQAB0VAAAdFRAAHRUgAB0VMAAdFUAAHRVgAB0VgAAdFZAAHRWgAB0VwAAdFdAAHR2AAB0doAAdHcAAHR3gAB0eEAAdHiAAHR4wAB0eQAAdHlAAHR5wAB0ekAAdHqAAHR6wAB0e0AAdHuAAHSaQAB0msAAdJtAAHSbwAB0nIAAdJzAAHSdAAB0nUAAdJ2AAHSeAAB0noAAdJ7AAHSfAAB0n4AAdJ/AAHS+gAB0vwAAdL+AAHTAAAB0wMAAdMEAAHTBQAB0wYAAdMHAAHTCQAB0wsAAdMMAAHTDQAB0w8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AAf8sAAH/LgAB/y8AAf+qAAH/rAAB/64AAf+wAAH/swAB/7QAAf+1AAH/tgAB/7cAAf+5AAH/vAAB/70AAf++AAH/wAAB/8EAAgA8AAIAPgACAEEAAgBDAAIARgACAEcAAgBIAAIASQACAEoAAgBMAAIATwACAFAAAgBRAAIAUwACAFQAAgDnAAIBCgACASoAAgFKAAIBTAACAU4AAgFQAAIBUgACAVUAAgFWAAIBVwACAVoAAgFbAAIBXQACAV4AAgFgAAIBYwACAWQAAgFlAAIBaAACAWkAAgFuAAIBhwACAZAAAgGSAAIBlAACAZ0AAgGgAAIBowACAaUAAgHuAAICEgACAjkAAgJdAAICYAACAmIAAgJkAAICZgACAmgAAgJqAAICawACAm4AAgKHAAICqAACAqoAAgKsAAICrgACArAAAgKyAAICtAACArYAAgK4AAIC2QACAtwAAgLfAAIC4gACAuUAAgLoAAIC6wACAu4AAgLxAAIC8wACA24AAgNwAAIDcgACA3QAAgN3AAIDeAACA3kAAgN6AAIDewACA30AAgN/AAIDgAACA4EAAgODAAIDhAACA/8AAgQBAAIEAwACBAUAAgQIAAIECQACBAoAAgQLAAIEDAACBA4AAgQQAAIEEQACBBIAAgQUAAIEFQACBJAAAgSSAAIElQACBJcAAgSaAAIEmwACBJwAAgSdAAIEngACBKAAAgSiAAIEowACBKQAAgSmAAIEpwACBMAAAgTBAAIEwgACBMQAAgU/AAIFQQACBUMAAgVFAAIFSAACBUkAAgVKAAIFSwACBUwAAgVOAAIFUAACBVEAAgVSAAIFVAACBVUAAgXQAAIF0gACBdQAAgXWAAIF2QACBdoAAgXbAAIF3AACBd0AAgXfAAIF4QACBeIAAgXjAAIF5QACBeYAAgZhAAIGYwACBmUAAgZnAAIGagACBmsAAgZsAAIGbQACBm4AAgZwAAIGcgACBnMAAgZ0AAIGdgACBncAAgbyAAIG9AACBvYAAgb4AAIG+wACBvwAAgb9AAIG/gACBv8AAgcBAAIHAwACBwQAAgcFAAIHBwACBwgAAgeDAAIHhQACB4cAAgeJAAIHjAACB40AAgeOAAIHjwACB5AAAgeSAAIHlAACB5UAAgeWAAIHmAACB5kAAgfiAAIIBgACCC0AAghRAAIIVAACCFYAAghYAAIIWgACCFwAAgheAAIIXwACCGIAAgh7AAIImAACCJoAAgicAAIIngACCKAAAgiiAAIIpAACCKYAAgjDAAIIxgACCMkAAgjMAAIIzwACCNIAAgjVAAII2AACCNoAAglVAAIJVwACCVkAAglbAAIJXgACCV8AAglgAAIJYQACCWIAAglkAAIJZgACCWcAAgloAAIJagACCWsAAgnmAAIJ6AACCeoAAgnsAAIJ7wACCfAAAgnxAAIJ8gACCfMAAgn1AAIJ9wACCfgAAgn5AAIJ+wACCfwAAgp3AAIKeQACCnsAAgp9AAIKgAACCoEAAgqCAAIKgwACCoQAAgqGAAIKiAACCokAAgqKAAIKjAACCo0AAgsIAAILCgACCwwAAgsOAAILEQACCxIAAgsTAAILFAACCxUAAgsXAAILGQACCxoAAgsbAAILHQACCx4AAguZAAILmwACC50AAgufAAILogACC6MAAgukAAILpQACC6YAAguoAAILqgACC6sAAgusAAILrgACC68AAgwqAAIMLAACDC4AAgwwAAIMMwACDDQAAgw1AAIMNgACDDcAAgw5AAIMOwACDDwAAgw9AAIMPwACDEAAAgy7AAIMvQACDL8AAgzBAAIMxAACDMUAAgzGAAIMxwACDMgAAgzKAAIMzAACDM0AAgzOAAIM0AACDNEAAgziAAIM4wACDOUAAg1gAAINYgACDWQAAg1mAAINaQACDWoAAg1rAAINbAACDW0AAg1vAAINcgACDXMAAg10AAINdgACDXcAAg3yAAIN9AACDfYAAg34AAIN+wACDfwAAg39AAIN/gACDf8AAg4BAAIOBAACDgUAAg4GAAIOCAACDgkAAg6EAAIOhgACDokAAg6LAAIOjgACDo8AAg6QAAIOkQACDpIAAg6UAAIOlwACDpgAAg6ZAAIOmwACDpwAAg6tAAIOrgACDrAAAg8zAAIPVwACD3sAAg+eAAIPxQACD+UAAhAMAAIQMwACEFMAAhB3AAIQmwACEJ0AAhCgAAIQogACEKQAAhCmAAIQqQACEKwAAhCuAAIQsAACELMAAhC1AAIQtwACELoAAhC9AAIQvgACEMcAAhDgAAIQ5QACEOcAAhDsAAIQ7wACEPEAAhE6AAIRXgACEYUAAhGpAAIRrAACEa4AAhGwAAIRsgACEbQAAhG2AAIRtwACEbo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AAiNhAAIjYwACI2QAAiNlAAIjZwACI2gAAiPjAAIj5QACI+cAAiPpAAIj7AACI+0AAiPuAAIj7wACI/AAAiPyAAIj9AACI/UAAiP2AAIj+AACI/kAAiR0AAIkdgACJHgAAiR6AAIkfQACJH4AAiR/AAIkgAACJIEAAiSDAAIkhQACJIYAAiSHAAIkiQACJIoAAiUFAAIlBwACJQoAAiUMAAIlDwACJRAAAiURAAIlEgACJRMAAiUVAAIlFwACJRgAAiUZAAIlGwACJRwAAiWXAAIlmQACJZsAAiWdAAIloAACJaEAAiWiAAIlowACJaQAAiWmAAIlqAACJakAAiWqAAIlrAACJa0AAiYoAAImKgACJi0AAiYvAAImMgACJjMAAiY0AAImNQACJjYAAiY4AAImOgACJjsAAiY8AAImPgACJj8AAiZOAAImyQACJssAAibNAAImzwACJtIAAibTAAIm1AACJtUAAibWAAIm2AACJtoAAibbAAIm3AACJt4AAibfAAIncgACJ5UAAie1AAIn1QACJ9cAAifZAAIn2wACJ90AAifgAAIn4QACJ+IAAiflAAIn5gACJ+gAAifpAAIn7AACJ+8AAifwAAIn8QACJ/QAAif1AAIn+gACKBMAAigcAAIoHgACKCEAAigqAAIoLQACKDAAAigyAAIoewACKJ8AAijGAAIo6gACKO0AAijvAAIo8QACKPMAAij1AAIo9wACKPgAAij7AAIpFAACKTUAAik3AAIpOQACKTsAAik9AAIpPwACKUEAAilDAAIpRQACKWYAAilpAAIpbAACKW8AAilyAAIpdQACKXgAAil7AAIpfgACKYAAAin7AAIp/QACKf8AAioBAAIqBAACKgUAAioGAAIqBwACKggAAioKAAIqDAACKg0AAioOAAIqEAACKhEAAiqMAAIqjgACKpAAAiqSAAIqlQACKpYAAiqXAAIqmAACKpkAAiqbAAIqnQACKp4AAiqfAAIqoQACKqIAAisdAAIrHwACKyIAAiskAAIrJwACKygAAispAAIrKgACKysAAistAAIrLwACKzAAAisxAAIrMwACKzQAAitNAAIrTgACK08AAitRAAIrzAACK84AAivQAAIr0gACK9UAAivWAAIr1wACK9gAAivZAAIr2wACK90AAiveAAIr3wACK+EAAiviAAIsXQACLF8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AAk/5AAJP+wACT/wAAlB3AAJQeQACUHsAAlB9AAJQgAACUIEAAlCCAAJQgwACUIQAAlCGAAJQiAACUIkAAlCKAAJQjAACUI0AAlDWAAJQ+gACUSEAAlFFAAJRSAACUUoAAlFMAAJRTgACUVAAAlFSAAJRUwACUVYAAlFvAAJRjAACUY4AAlGQAAJRkgACUZQAAlGWAAJRmAACUZoAAlG3AAJRugACUb0AAlHAAAJRwwACUcYAAlHJAAJRzAACUc4AAlJJAAJSSwACUk0AAlJPAAJSUgACUlMAAlJUAAJSVQACUlYAAlJYAAJSWgACUlsAAlJcAAJSXgACUl8AAlLaAAJS3AACUt4AAlLgAAJS4wACUuQAAlLlAAJS5gACUucAAlLpAAJS6wACUuwAAlLtAAJS7wACUvAAAlNrAAJTbQACU28AAlNxAAJTdAACU3UAAlN2AAJTdwACU3gAAlN6AAJTfAACU30AAlN+AAJTgAACU4EAAlP8AAJT/gACVAEAAlQDAAJUBgACVAcAAlQIAAJUCQACVAoAAlQMAAJUDgACVA8AAlQQAAJUEgACVBMAAlSOAAJUkAACVJIAAlSUAAJUlwACVJgAAlSZAAJUmgACVJsAAlSdAAJUnwACVKAAAlShAAJUowACVKQAAlUfAAJVIQACVSMAAlUlAAJVKAACVSkAAlUqAAJVKwACVSwAAlUuAAJVMAACVTEAAlUyAAJVNAACVTUAAlWwAAJVsgACVbQAAlW2AAJVuQACVboAAlW7AAJVvAACVb0AAlW/AAJVwQACVcIAAlXDAAJVxQACVcYAAlZZAAJWfAACVpwAAla8AAJWvgACVsAAAlbCAAJWxAACVscAAlbIAAJWyQACVswAAlbNAAJWzwACVtAAAlbSAAJW1QACVtYAAlbXAAJW2gACVtsAAlbgAAJW+QACVwIAAlcEAAJXBgACVw8AAlcSAAJXFQACVxcAAldgAAJXhAACV6sAAlfPAAJX0gACV9QAAlfWAAJX2AACV9oAAlfcAAJX3QACV+AAAlf5AAJYGgACWBwAAlgeAAJYIAACWCIAAlgkAAJYJgACWCgAAlgqAAJYSwACWE4AAlhRAAJYVAACWFcAAlhaAAJYXQACWGAAAlhjAAJYZQACWOAAAljiAAJY5AACWOYAAljpAAJY6gACWOsAAljsAAJY7QACWO8AAljxAAJY8gACWPMAAlj1AAJY9gACWXEAAllzAAJZdQACWXcAAll6AAJZewACWXwAAll9AAJZfgACWYAAAlmCAAJZgwACWYQAAlmGAAJZhwACWgIAAloEAAJaBwACWgkAAloMAAJaDQACWg4AAloPAAJaEAACWhIAAloUAAJaFQACWhYAAloYAAJaGQACWjIAAlozAAJaNAACWjYAAlqxAAJaswACWrUAAlq3AAJaugACWrsAAlq8AAJavQACWr4AAlrAAAJawgACWsMAAlrEAAJaxgACWscAAltCAAJbRAACW0YAAltIAAJbSwACW0wAAltNAAJbTgACW08AAltRAAJbUwACW1QAAltVAAJbVwACW1gAAlvTAAJb1QACW9cAAlvZAAJb3AACW90AAlveAAJb3wACW+AAAlviAAJb5AACW+UAAlvmAAJb6AACW+kAAlxkAAJcZgACXGgAAlxqAAJcbQACXG4AAlxvAAJccAACXHEAAlxzAAJcdQACXHYAAlx3AAJceQACXHoAAlz1AAJc9wACXPkAAlz7AAJc/gACXP8AAl0AAAJdAQACXQIAAl0EAAJdBgACXQcAAl0IAAJdCgACXQsAAl1UAAJdeAACXZ8AAl3DAAJdxgACXcgAAl3KAAJdzAACXc4AAl3QAAJd0QACXdQAAl3tAAJeCgACXgwAAl4OAAJeEAACXhIAAl4UAAJeFgACXhgAAl41AAJeOAACXjsAAl4+AAJeQQACXkQAAl5HAAJeSgACXkwAAl7HAAJeyQACXssAAl7NAAJe0AACXtEAAl7SAAJe0wACXtQAAl7WAAJe2AACXtkAAl7aAAJe3AACXt0AAl9YAAJfWgACX1wAAl9eAAJfYQACX2IAAl9jAAJfZAACX2UAAl9nAAJfaQACX2oAAl9rAAJfbQACX24AAl/pAAJf6wACX+0AAl/vAAJf8gACX/MAAl/0AAJf9QACX/YAAl/4AAJf+gACX/sAAl/8AAJf/gACX/8AAmB6AAJgfAACYH4AAmCAAAJggwACYIQAAmCFAAJghgACYIcAAmCJAAJgiwACYIwAAmCNAAJgjwACYJAAAmELAAJhDQACYQ8AAmERAAJhFAACYRUAAmEWAAJhFwACYRgAAmEaAAJhHAACYR0AAmEeAAJhIAACYSEAAmGcAAJhngACYaAAAmGiAAJhpQACYaYAAmGnAAJhqAACYakAAmGrAAJhrQACYa4AAmGvAAJhsQACYbIAAmItAAJiLwACYjEAAmIzAAJiNgACYjcAAmI4AAJiOQACYjoAAmI8AAJiPgACYj8AAmJAAAJiQgACYkMAAmLWAAJi+QACYxkAAmM5AAJjOwACYz0AAmM/AAJjQQACY0QAAmNFAAJjRgACY0kAAmNKAAJjTAACY00AAmNQAAJjUwACY1QAAmNVAAJjWAACY1kAAmNeAAJjdwACY4AAAmOCAAJjhQACY44AAmORAAJjlAACY5YAAmPfAAJkAwACZCoAAmROAAJkUQACZFMAAmRVAAJkVwACZFkAAmRbAAJkXAACZF8AAmR4AAJkmQACZJsAAmSdAAJknwACZKEAAmSjAAJkpQACZKcAAmSpAAJkygACZM0AAmTQAAJk0wACZNYAAmTZAAJk3AACZN8AAmTiAAJk5AACZV8AAmVhAAJlYwACZWUAAmVoAAJlaQACZWoAAmVrAAJlbAACZW4AAmVwAAJlcQACZXIAAmV0AAJldQACZfAAAmXyAAJl9AACZfYAAmX5AAJl+gACZfsAAmX8AAJl/QACZf8AAmYBAAJmAgACZgMAAmYFAAJmBgACZoEAAmaDAAJmhgACZogAAmaLAAJmjAACZo0AAmaOAAJmjwACZpEAAmaTAAJmlAACZpUAAmaXAAJmmAACZrEAAmayAAJmswACZrUAAmcwAAJnMgACZzQAAmc2AAJnOQACZzoAAmc7AAJnPAACZz0AAmc/AAJnQQACZ0IAAmdDAAJnRQACZ0YAAmfBAAJnwwACZ8UAAmfHAAJnygACZ8sAAmfMAAJnzQACZ84AAmfQAAJn0gACZ9MAAmfUAAJn1gACZ9cAAmhSAAJoVAACaFYAAmhYAAJoWwACaFwAAmhdAAJoXgACaF8AAmhhAAJoYwACaGQAAmhlAAJoZwACaGgAAmjjAAJo5QACaOcAAmjpAAJo7AACaO0AAmjuAAJo7wACaPAAAmjyAAJo9AACaPUAAmj2AAJo+AACaPkAAml0AAJpdgACaXgAAml6AAJpfQACaX4AAml/AAJpgAACaYEAAmmDAAJphQACaYYAAmmHAAJpiQACaYoAAmnTAAJp9wACah4AAmpCAAJqRQACakgAAmpKAAJqTAACak4AAmpQAAJqUQACalQAAmptAAJqigACao0AAmqQAAJqkwACapYAAmqZAAJqnAACap8AAmq8AAJqvwACasIAAmrFAAJqyAACassAAmrOAAJq0QACatMAAmtOAAJrUAACa1MAAmtVAAJrWAACa1kAAmtaAAJrWwACa1wAAmteAAJrYQACa2IAAmtjAAJrZQACa2YAAmvhAAJr4wACa+YAAmvoAAJr6wACa+wAAmvtAAJr7gACa+8AAmvxAAJr9AACa/UAAmv2AAJr+AACa/kAAmx0AAJsdgACbHkAAmx7AAJsfgACbH8AAmyAAAJsgQACbIIAAmyEAAJshwACbIgAAmyJAAJsiwACbIwAAm0HAAJtCQACbQwAAm0OAAJtEQACbRIAAm0TAAJtFAACbRUAAm0XAAJtGgACbRsAAm0cAAJtHgACbR8AAm2iAAJtxgACbeoAAm4NAAJuNAACblQAAm57AAJuogACbsIAAm7mAAJvCgACbwwAAm8PAAJvEQACbxMAAm8VAAJvGAACbxsAAm8dAAJvHwACbyIAAm8kAAJvJgACbykAAm8sAAJvLQACbzYAAm9PAAJvVAACb1YAAm9bAAJvXgACb2AAAm+pAAJvzQACb/QAAnAYAAJwGwACcB0AAnAfAAJwIQACcCMAAnAlAAJwJgACcCkAAnBCAAJwZwACcGkAAnBrAAJwbQACcG8AAnBxAAJwcwACcHUAAnB3AAJweQACcJ4AAnChAAJwpAACcKcAAnCqAAJwrQACcLAAAnCzAAJwtgACcLkAAnC7AAJxNgACcTgAAnE7AAJxPQACcUAAAnFBAAJxQgACcUMAAnFEAAJxRgACcUgAAnFJAAJxSgACcUwAAnFNAAJxXgACcV8AAnFhAAJx3AACcd4AAnHgAAJx4gACceUAAnHmAAJx5wACcegAAnHpAAJx6wACce0AAnHuAAJx7wACcfEAAnHyAAJybQACcm8AAnJyAAJydAACcncAAnJ4AAJyeQACcnoAAnJ7AAJyfQACcn8AAnKAAAJygQACcoMAAnKEAAJylQACcpoAAnKdAAJynwACcrAAAnLBAAJyxAACcscAAnLKAAJyzQACcs8AAnLrAAJy/QACcxAAAnMcAAJzlwACc5kAAnObAAJznQACc6AAAnOhAAJzogACc6MAAnOkAAJzpgACc6gAAnOpAAJzqgACc6wAAnOtAAJ0KAACdCoAAnQtAAJ0LwACdDIAAnQzAAJ0NAACdDUAAnQ2AAJ0OAACdDoAAnQ7AAJ0PAACdD4AAnQ/AAJ0UAACdFEAAnRTAAJ0zgACdNAAAnTSAAJ01AACdNcAAnTYAAJ02QACdNoAAnTbAAJ03QACdN8AAnTgAAJ04QACdOMAAnTkAAJ1XwACdWEAAnVkAAJ1ZgACdWkAAnVqAAJ1awACdWwAAnVtAAJ1bwACdXEAAnVyAAJ1cwACdXUAAnV2AAJ1jwACdZAAAnWRAAJ1kwACdg4AAnYQAAJ2EgACdhQAAnYXAAJ2GAACdhkAAnYaAAJ2GwACdh0AAnYfAAJ2IAACdiEAAnYjAAJ2JAACdp8AAnahAAJ2pAACdqYAAnapAAJ2qgACdqsAAnasAAJ2rQACdq8AAnaxAAJ2sgACdrMAAna1AAJ2tgACds0AAnbmAAJ3EwACdxYAAncZAAJ3HAACdx8AAnciAAJ3JQACdygAAncrAAJ3LgACdzEAAnc0AAJ3YQACd2QAAndnAAJ3agACd20AAndwAAJ3cwACd3YAAnd5AAJ3fAACd38AAneCAAJ3hAACd5YAAneuAAJ3wgACd+0AAnf5AAJ4EwACeCkAAngzAAJ4PgACeFoAAnhtAAJ5AAACeSMAAnlDAAJ5YwACeWUAAnlnAAJ5aQACeWsAAnluAAJ5bwACeXAAAnlzAAJ5dAACeXYAAnl3AAJ5eQACeXwAAnl9AAJ5fgACeYEAAnmCAAJ5iwACeaQAAnmtAAJ5rwACebEAAnm6AAJ5vQACecAAAnnCAAJ6CwACei8AAnpWAAJ6egACen0AAnp/AAJ6gQACeoMAAnqFAAJ6hwACeogAAnqLAAJ6pAACesUAAnrHAAJ6yQACessAAnrNAAJ6zwACetEAAnrTAAJ61QACevYAAnr5AAJ6/AACev8AAnsCAAJ7BQACewgAAnsLAAJ7DgACexAAAnuLAAJ7jQACe48AAnuRAAJ7lAACe5UAAnuWAAJ7lwACe5gAAnuaAAJ7nAACe50AAnueAAJ7oAACe6EAAnwcAAJ8HgACfCAAAnwiAAJ8JQACfCYAAnwnAAJ8KAACfCkAAnwrAAJ8LQACfC4AAnwvAAJ8MQACfDIAAnytAAJ8rwACfLIAAny0AAJ8twACfLgAAny5AAJ8ugACfLsAAny9AAJ8vwACfMAAAnzBAAJ8wwACfMQAAnzdAAJ83gACfN8AAnzhAAJ9XAACfV4AAn1gAAJ9YgACfWUAAn1mAAJ9ZwACfWgAAn1pAAJ9awACfW0AAn1uAAJ9bwACfXEAAn1yAAJ97QACfe8AAn3xAAJ98wACffYAAn33AAJ9+AACffkAAn36AAJ9/AACff4AAn3/AAJ+AAACfgIAAn4DAAJ+fgACfoAAAn6CAAJ+hAACfocAAn6IAAJ+iQACfooAAn6LAAJ+jQACfo8AAn6QAAJ+kQACfpMAAn6UAAJ/DwACfxEAAn8TAAJ/FQACfxgAAn8ZAAJ/GgACfxsAAn8cAAJ/HgACfyAAAn8hAAJ/IgACfyQAAn8lAAJ/oAACf6IAAn+kAAJ/pgACf6kAAn+qAAJ/qwACf6wAAn+tAAJ/rwACf7EAAn+yAAJ/swACf7UAAn+2AAJ//wACgCMAAoBKAAKAbgACgHEAAoBzAAKAdQACgHcAAoB5AAKAewACgHwAAoB/AAKAmAACgLUAAoC3AAKAuQACgLsAAoC9AAKAvwACgMEAAoDDAAKA4AACgOMAAoDmAAKA6QACgOwAAoDvAAKA8gACgPUAAoD3AAKBcgACgXQAAoF2AAKBeAACgXsAAoF8AAKBfQACgX4AAoF/AAKBgQACgYMAAoGEAAKBhQACgYcAAoGIAAKCAwACggUAAoIHAAKCCQACggwAAoINAAKCDgACgg8AAoIQAAKCEgACghQAAoIVAAKCFgACghgAAoIZAAKClAACgpYAAoKYAAKCmgACgp0AAoKeAAKCnwACgqAAAoKhAAKCowACgqUAAoKmAAKCpwACgqkAAoKqAAKDJQACgycAAoMqAAKDLAACgy8AAoMwAAKDMQACgzIAAoMzAAKDNQACgzcAAoM4AAKDOQACgzsAAoM8AAKDtwACg7kAAoO7AAKDvQACg8AAAoPBAAKDwgACg8MAAoPEAAKDxgACg8gAAoPJAAKDygACg8wAAoPNAAKESAAChEoAAoRMAAKETgAChFEAAoRSAAKEUwAChFQAAoRVAAKEVwAChFkAAoRaAAKEWwAChF0AAoReAAKE2QAChNsAAoTdAAKE3wAChOIAAoTjAAKE5AAChOUAAoTmAAKE6AAChOoAAoTrAAKE7AAChO4AAoTvAAKFggAChaUAAoXFAAKF5QAChecAAoXpAAKF6wAChe0AAoXwAAKF8QAChfIAAoX1AAKF9gAChfgAAoX5AAKF+wAChf4AAoX/AAKGAAAChgMAAoYEAAKGCQAChiIAAoYrAAKGLQAChi8AAoY4AAKGOwAChj4AAoZAAAKGiQAChq0AAobUAAKG+AAChvsAAob9AAKG/wAChwEAAocDAAKHBQAChwYAAocJAAKHIgACh0MAAodFAAKHRwACh0kAAodLAAKHTQACh08AAodRAAKHUwACh3QAAod3AAKHegACh30AAoeAAAKHgwACh4YAAoeJAAKHjAACh44AAogJAAKICwACiA0AAogPAAKIEgACiBMAAogUAAKIFQACiBYAAogYAAKIGgACiBsAAogcAAKIHgACiB8AAoiaAAKInAACiJ4AAoigAAKIowACiKQAAoilAAKIpgACiKcAAoipAAKIqwACiKwAAoitAAKIrwACiLAAAokrAAKJLQACiTAAAokyAAKJNQACiTYAAok3AAKJOAACiTkAAok7AAKJPQACiT4AAok/AAKJQQACiUIAAolbAAKJXAACiV0AAolfAAKJ2gACidwAAoneAAKJ4AACieMAAonkAAKJ5QACieYAAonnAAKJ6QACiesAAonsAAKJ7QACie8AAonwAAKKawACim0AAopvAAKKcQACinQAAop1AAKKdgACincAAop4AAKKegACinwAAop9AAKKfgACioAAAoqBAAKK/AACiv4AAosAAAKLAgACiwUAAosGAAKLBwACiwgAAosJAAKLCwACiw0AAosOAAKLDwACixEAAosSAAKLjQACi48AAouRAAKLkwACi5YAAouXAAKLmAACi5kAAouaAAKLnAACi54AAoufAAKLoAACi6IAAoujAAKMHgACjCAAAowiAAKMJAACjCcAAowoAAKMKQACjCoAAowrAAKMLQACjC8AAowwAAKMMQACjDMAAow0AAKMfQACjKEAAozIAAKM7AACjO8AAozxAAKM8wACjPUAAoz3AAKM+QACjPoAAoz9AAKNFgACjTMAAo01AAKNNwACjTkAAo07AAKNPQACjT8AAo1BAAKNXgACjWEAAo1kAAKNZwACjWoAAo1tAAKNcAACjXMAAo11AAKN8AACjfIAAo30AAKN9gACjfkAAo36AAKN+wACjfwAAo39AAKN/wACjgEAAo4CAAKOAwACjgUAAo4GAAKOgQACjoMAAo6FAAKOhwACjooAAo6LAAKOjAACjo0AAo6OAAKOkAACjpIAAo6TAAKOlAACjpYAAo6XAAKPEgACjxQAAo8WAAKPGAACjxsAAo8cAAKPHQACjx4AAo8fAAKPIQACjyMAAo8kAAKPJQACjycAAo8oAAKPowACj6UAAo+nAAKPqQACj6wAAo+tAAKPrgACj68AAo+wAAKPsgACj7QAAo+1AAKPtgACj7gAAo+5AAKQNAACkDYAApA4AAKQOgACkD0AApA+AAKQPwACkEAAApBBAAKQQwACkEUAApBGAAKQRwACkEkAApBKAAKQxQACkMcAApDJAAKQywACkM4AApDPAAKQ0AACkNEAApDSAAKQ1AACkNYAApDXAAKQ2AACkNoAApDbAAKRVgACkVgAApFaAAKRXAACkV8AApFgAAKRYQACkWIAApFjAAKRZQACkWcAApFoAAKRaQACkWsAApFsAAKR/wACkiIAApJCAAKSYgACkmQAApJmAAKSaAACkmoAApJtAAKSbgACkm8AApJyAAKScwACknUAApJ2AAKSeAACknsAApJ8AAKSfQACkoAAApKBAAKShgACkp8AApKoAAKSqgACkqwAApK1AAKSuAACkrsAApK9AAKTBgACkyoAApNRAAKTdQACk3gAApN6AAKTfAACk34AApOAAAKTggACk4MAApOGAAKTnwACk8AAApPCAAKTxAACk8YAApPIAAKTygACk8wAApPOAAKT0AACk/EAApP0AAKT9wACk/oAApP9AAKUAAAClAMAApQGAAKUCQAClAsAApSGAAKUiAAClIoAApSMAAKUjwAClJAAApSRAAKUkgAClJMAApSVAAKUlwAClJgAApSZAAKUmwAClJwAApUXAAKVGQAClRsAApUdAAKVIAAClSEAApUiAAKVIwAClSQAApUmAAKVKAAClSkAApUqAAKVLAAClS0AApWoAAKVqgACla0AApWvAAKVsgAClbMAApW0AAKVtQAClbYAApW4AAKVugAClbsAApW8AAKVvgAClb8AApXYAAKV2QACldoAApXcAAKWVwACllkAApZbAAKWXQAClmAAApZhAAKWYgAClmMAApZkAAKWZgAClmgAApZpAAKWagAClmwAApZtAAKW6AACluoAApbsAAKW7gAClvEAApbyAAKW8wAClvQAApb1AAKW9wAClvkAApb6AAKW+wAClv0AApb+AAKXeQACl3sAApd9AAKXfwACl4IAApeDAAKXhAACl4UAApeGAAKXiAACl4oAApeLAAKXjAACl44AApePAAKYCgACmAwAApgOAAKYEAACmBMAApgUAAKYFQACmBYAApgXAAKYGQACmBsAApgcAAKYHQACmB8AApggAAKYmwACmJ0AApifAAKYoQACmKQAApilAAKYpgACmKcAApioAAKYqgACmKwAApitAAKYrgACmLAAApixAAKY+gACmR4AAplFAAKZaQACmWwAApluAAKZcAACmXIAApl0AAKZdgACmXcAApl6AAKZkwACmbAAApmyAAKZtAACmbYAApm4AAKZugACmbwAApm+AAKZ2wACmd4AApnhAAKZ5AACmecAApnqAAKZ7QACmfAAApnyAAKabQACmm8AAppxAAKacwACmnYAApp3AAKaeAACmnkAApp6AAKafAACmn4AApp/AAKagAACmoIAApqDAAKa/gACmwAAApsCAAKbBAACmwcAApsIAAKbCQACmwoAApsLAAKbDQACmw8AApsQAAKbEQACmxMAApsUAAKbjwACm5EAApuTAAKblQACm5gAApuZAAKbmgACm5sAApucAAKbngACm6AAApuhAAKbogACm6QAApulAAKcIAACnCIAApwlAAKcJwACnCoAApwrAAKcLAACnC0AApwuAAKcMAACnDIAApwzAAKcNAACnDYAApw3AAKcOgACnLUAApy3AAKcuQACnLsAApy+AAKcvwACnMAAApzBAAKcwgACnMQAApzGAAKcxwACnMgAApzKAAKcywACnUYAAp1IAAKdSgACnUwAAp1PAAKdUAACnVEAAp1SAAKdUwACnVUAAp1XAAKdWAACnVkAAp1bAAKdXAACndcAAp3ZAAKd2wACnd0AAp3gAAKd4QACneIAAp3jAAKd5AACneYAAp3oAAKd6QACneoAAp3sAAKd7QACnoAAAp6jAAKewwACnuMAAp7lAAKe5wACnukAAp7rAAKe7gACnu8AAp7wAAKe8wACnvQAAp72AAKe9wACnvkAAp78AAKe/QACnv4AAp8BAAKfAgACnwcAAp8gAAKfKQACnysAAp8tAAKfNgACnzkAAp88AAKfPgACn4cAAp+rAAKf0gACn/YAAp/5AAKf+wACn/0AAp//AAKgAQACoAMAAqAEAAKgBwACoCAAAqBBAAKgQwACoEUAAqBHAAKgSQACoEsAAqBNAAKgTwACoFEAAqByAAKgdQACoHgAAqB7AAKgfgACoIEAAqCEAAKghwACoIoAAqCMAAKhBwACoQkAAqELAAKhDQACoRAAAqERAAKhEgACoRMAAqEUAAKhFgACoRgAAqEZAAKhGgACoRwAAqEdAAKhmAACoZoAAqGcAAKhngACoaEAAqGiAAKhowACoaQAAqGlAAKhpwACoakAAqGqAAKhqwACoa0AAqGuAAKiKQACoisAAqIuAAKiMAACojMAAqI0AAKiNQACojYAAqI3AAKiOQACojsAAqI8AAKiPQACoj8AAqJAAAKiWQAColoAAqJbAAKiXQACotgAAqLaAAKi3AACot4AAqLhAAKi4gACouMAAqLkAAKi5QACoucAAqLpAAKi6gACousAAqLtAAKi7gACo2kAAqNrAAKjbQACo28AAqNyAAKjcwACo3QAAqN1AAKjdgACo3gAAqN6AAKjewACo3wAAqN+AAKjfwACo/oAAqP8AAKj/gACpAAAAqQDAAKkBAACpAUAAqQGAAKkBwACpAkAAqQLAAKkDAACpA0AAqQPAAKkEAACpIsAAqSNAAKkjwACpJEAAqSUAAKklQACpJYAAqSXAAKkmAACpJoAAqScAAKknQACpJ4AAqSgAAKkoQACpRwAAqUeAAKlIAACpSIAAqUlAAKlJgACpScAAqUoAAKlKQACpSsAAqUtAAKlLgACpS8AAqUxAAKlMgACpXsAAqWfAAKlxgACpeoAAqXtAAKl7wACpfEAAqXzAAKl9QACpfcAAqX4AAKl+wACphQAAqYxAAKmMwACpjUAAqY3AAKmOQACpjsAAqY9AAKmPwACplwAAqZfAAKmYgACpmUAAqZoAAKmawACpm4AAqZxAAKmcwACpu4AAqbwAAKm8wACpvUAAqb4AAKm+QACpvoAAqb7AAKm/AACpv4AAqcAAAKnAQACpwIAAqcEAAKnBQACp4AAAqeCAAKnhAACp4YAAqeJAAKnigACp4sAAqeMAAKnjQACp48AAqeRAAKnkgACp5MAAqeVAAKnlgACqBEAAqgTAAKoFQACqBcAAqgaAAKoGwACqBwAAqgdAAKoHgACqCAAAqgiAAKoIwACqCQAAqgmAAKoJwACqKIAAqikAAKopwACqKkAAqisAAKorQACqK4AAqivAAKosAACqLIAAqi0AAKotQACqLYAAqi4AAKouQACqTQAAqk2AAKpOAACqToAAqk9AAKpPgACqT8AAqlAAAKpQQACqUMAAqlFAAKpRgACqUcAAqlJAAKpSgACqcUAAqnHAAKpyQACqcsAAqnOAAKpzwACqdAAAqnRAAKp0gACqdQAAqnWAAKp1wACqdgAAqnaAAKp2wACqlYAAqpYAAKqWgACqlwAAqpfAAKqYAACqmEAAqpiAAKqYwACqmUAAqpnAAKqaAACqmkAAqprAAKqbAACqv8AAqsiAAKrQgACq2IAAqtkAAKrZgACq2gAAqtqAAKrbQACq24AAqtvAAKrcgACq3MAAqt1AAKrdgACq3gAAqt7AAKrfAACq30AAquAAAKrgQACq4YAAqufAAKrqAACq6oAAqusAAKrtQACq7gAAqu7AAKrvQACrAYAAqwqAAKsUQACrHUAAqx4AAKsegACrHwAAqx+AAKsgAACrIIAAqyDAAKshgACrJ8AAqzAAAKswgACrMQAAqzGAAKsyAACrMoAAqzMAAKszgACrNAAAqzxAAKs9AACrPcAAqz6AAKs/QACrQAAAq0DAAKtBgACrQkAAq0LAAKthgACrYgAAq2KAAKtjAACrY8AAq2QAAKtkQACrZIAAq2TAAKtlQACrZcAAq2YAAKtmQACrZsAAq2cAAKuFwACrhkAAq4bAAKuHQACriAAAq4hAAKuIgACriMAAq4kAAKuJgACrigAAq4pAAKuKgACriwAAq4tAAKuqAACrqoAAq6tAAKurwACrrIAAq6zAAKutAACrrUAAq62AAKuuAACrroAAq67AAKuvAACrr4AAq6/AAKu2AACrtkAAq7aAAKu3AACr1cAAq9ZAAKvWwACr10AAq9gAAKvYQACr2IAAq9jAAKvZAACr2YAAq9oAAKvaQACr2oAAq9sAAKvbQACr+gAAq/qAAKv7AACr+4AAq/xAAKv8gACr/MAAq/0AAKv9QACr/cAAq/5AAKv+gACr/sAAq/9AAKv/gACsHkAArB7AAKwfQACsH8AArCCAAKwgwACsIQAArCFAAKwhgACsIgAArCKAAKwiwACsIwAArCOAAKwjwACsQoAArEMAAKxDgACsRAAArETAAKxFAACsRUAArEWAAKxFwACsRkAArEbAAKxHAACsR0AArEfAAKxIAACsZsAArGdAAKxnwACsaEAArGkAAKxpQACsaYAArGnAAKxqAACsaoAArGsAAKxrQACsa4AArGwAAKxsQACsfoAArIeAAKyRQACsmkAArJsAAKybgACsnAAArJyAAKydAACsnYAArJ3AAKyegACspMAArKwAAKysgACsrQAArK2AAKyuAACsroAArK8AAKyvgACstsAArLeAAKy4QACsuQAArLnAAKy6gACsu0AArLwAAKy8gACs20AArNvAAKzcQACs3MAArN2AAKzdwACs3gAArN5AAKzegACs3wAArN+AAKzfwACs4AAArOCAAKzgwACs/4AArQAAAK0AgACtAQAArQHAAK0CAACtAkAArQKAAK0CwACtA0AArQPAAK0EAACtBEAArQTAAK0FAACtI8AArSRAAK0kwACtJUAArSYAAK0mQACtJoAArSbAAK0nAACtJ4AArSgAAK0oQACtKIAArSkAAK0pQACtSAAArUiAAK1JAACtSYAArUpAAK1KgACtSsAArUsAAK1LQACtS8AArUxAAK1MgACtTMAArU1AAK1NgACtbEAArWzAAK1tQACtbcAArW6AAK1uwACtbwAArW9AAK1vgACtcAAArXCAAK1wwACtcQAArXGAAK1xwACtkIAArZEAAK2RgACtkgAArZLAAK2TAACtk0AArZOAAK2TwACtlEAArZTAAK2VAACtlUAArZXAAK2WAACttMAArbVAAK21wACttkAArbcAAK23QACtt4AArbfAAK24AACtuIAArbkAAK25QACtuYAArboAAK26QACt3wAArefAAK3vwACt98AArfhAAK34wACt+UAArfnAAK36gACt+sAArfsAAK37wACt/AAArfyAAK38wACt/UAArf4AAK3+QACt/oAArf9AAK3/gACuAMAArgcAAK4JQACuCcAArgpAAK4MgACuDUAArg4AAK4OgACuIMAArinAAK4zgACuPIAArj1AAK49wACuPkAArj7AAK4/QACuP8AArkAAAK5AwACuRwAArk9AAK5PwACuUEAArlDAAK5RQACuUcAArlJAAK5SwACuU0AArluAAK5cQACuXQAArl3AAK5egACuX0AArmAAAK5gwACuYYAArmIAAK6AwACugUAAroHAAK6CQACugwAAroNAAK6DgACug8AAroQAAK6EgACuhQAAroVAAK6FgACuhgAAroZAAK6lAACupYAArqYAAK6mgACup0AArqeAAK6nwACuqAAArqhAAK6owACuqUAArqmAAK6pwACuqkAArqqAAK7JQACuycAArsqAAK7LAACuy8AArswAAK7MQACuzIAArszAAK7NQACuzcAArs4AAK7OQACuzsAArs8AAK7VQACu1YAArtXAAK7WQACu9QAArvWAAK72AACu9oAArvdAAK73gACu98AArvgAAK74QACu+MAArvlAAK75gACu+cAArvpAAK76gACvGUAArxnAAK8aQACvGsAArxuAAK8bwACvHAAArxxAAK8cgACvHQAArx2AAK8dwACvHgAArx6AAK8ewACvPYAArz4AAK8+gACvPwAArz/AAK9AAACvQEAAr0CAAK9AwACvQUAAr0HAAK9CAACvQkAAr0LAAK9DAACvYcAAr2JAAK9iwACvY0AAr2QAAK9kQACvZIAAr2TAAK9lAACvZYAAr2YAAK9mQACvZoAAr2cAAK9nQACvhgAAr4aAAK+HAACvh4AAr4hAAK+IgACviMAAr4kAAK+JQACvicAAr4pAAK+KgACvisAAr4tAAK+LgACvncAAr6bAAK+wgACvuYAAr7pAAK+6wACvu0AAr7vAAK+8QACvvMAAr70AAK+9wACvxAAAr8tAAK/LwACvzEAAr8zAAK/NQACvzcAAr85AAK/OwACv1gAAr9bAAK/XgACv2EAAr9kAAK/ZwACv2oAAr9tAAK/bwACv+oAAr/sAAK/7gACv/AAAr/zAAK/9AACv/UAAr/2AAK/9wACv/kAAr/7AAK//AACv/0AAr//AALAAAACwHsAAsB9AALAfwACwIEAAsCEAALAhQACwIYAAsCHAALAiAACwIoAAsCMAALAjQACwI4AAsCQAALAkQACwQwAAsEOAALBEAACwRIAAsEVAALBFgACwRcAAsEYAALBGQACwRsAAsEdAALBHgACwR8AAsEhAALBIgACwZ0AAsGfAALBoQACwaMAAsGmAALBpwACwagAAsGpAALBqgACwawAAsGuAALBrwACwbAAAsGyAALBswACwi4AAsIwAALCMgACwjQAAsI3AALCOAACwjkAAsI6AALCOwACwj0AAsI/AALCQAACwkEAAsJDAALCRAACwr8AAsLBAALCwwACwsUAAsLIAALCyQACwsoAAsLLAALCzAACws4AAsLQAALC0QACwtIAAsLUAALC1QACw1AAAsNSAALDVAACw1YAAsNZAALDWgACw1sAAsNcAALDXQACw18AAsNhAALDYgACw2MAAsNlAALDZgACw/kAAsQcAALEPAACxFwAAsReAALEYAACxGIAAsRkAALEZwACxGgAAsRpAALEbAACxG0AAsRvAALEcAACxHIAAsR1AALEdgACxHcAAsR6AALEewACxIQAAsSdAALEpgACxKgAAsSqAALEswACxLYAAsS5AALEuwACxQQAAsUoAALFTwACxXMAAsV2AALFeAACxXoAAsV8AALFfgACxYAAAsWBAALFhAACxZ0AAsW+AALFwAACxcIAAsXEAALFxgACxcgAAsXKAALFzAACxc4AAsXvAALF8gACxfUAAsX4AALF+wACxf4AAsYBAALGBAACxgcAAsYJAALGhAACxoYAAsaIAALGigACxo0AAsaOAALGjwACxpAAAsaRAALGkwACxpUAAsaWAALGlwACxpkAAsaaAALHFQACxxcAAscZAALHGwACxx4AAscfAALHIAACxyEAAsciAALHJAACxyYAAscnAALHKAACxyoAAscrAALHpgACx6gAAserAALHrQACx7AAAsexAALHsgACx7MAAse0AALHtgACx7gAAse5AALHugACx7wAAse9AALH1gACx9cAAsfYAALH2gACyFUAAshXAALIWQACyFsAAsheAALIXwACyGAAAshhAALIYgACyGQAAshmAALIZwACyGgAAshqAALIawACyOYAAsjoAALI6gACyOwAAsjvAALI8AACyPEAAsjyAALI8wACyPUAAsj3AALI+AACyPkAAsj7AALI/AACyXcAAsl5AALJewACyX0AAsmAAALJgQACyYIAAsmDAALJhAACyYYAAsmIAALJiQACyYoAAsmMAALJjQACyggAAsoKAALKDAACyg4AAsoRAALKEgACyhMAAsoUAALKFQACyhcAAsoZAALKGgACyhsAAsodAALKHgACypkAAsqbAALKnQACyp8AAsqiAALKowACyqQAAsqlAALKpgACyqgAAsqqAALKqwACyqwAAsquAALKrwACyvgAAsscAALLQwACy2cAAstqAALLbAACy24AAstwAALLcgACy3QAAst1AALLeAACy5EAAsuuAALLsAACy7IAAsu0AALLtgACy7gAAsu6AALLvAACy9kAAsvcAALL3wACy+IAAsvlAALL6AACy+sAAsvuAALL8AACzGsAAsxtAALMbwACzHEAAsx0AALMdQACzHYAAsx3AALMeAACzHoAAsx8AALMfQACzH4AAsyAAALMgQACzPwAAsz+AALNAAACzQIAAs0FAALNBgACzQcAAs0IAALNCQACzQsAAs0NAALNDgACzQ8AAs0RAALNEgACzY0AAs2PAALNkQACzZMAAs2WAALNlwACzZgAAs2ZAALNmgACzZwAAs2eAALNnwACzaAAAs2iAALNowACzh4AAs4gAALOIwACziUAAs4oAALOKQACzioAAs4rAALOLAACzi4AAs4wAALOMQACzjIAAs40AALONQACzrAAAs6yAALOtAACzrYAAs65AALOugACzrsAAs68AALOvQACzr8AAs7BAALOwgACzsMAAs7FAALOxgACz0EAAs9DAALPRQACz0cAAs9KAALPSwACz0wAAs9NAALPTgACz1AAAs9SAALPUwACz1QAAs9WAALPVwACz9IAAs/UAALP1gACz9gAAs/bAALP3AACz90AAs/eAALP3wACz+EAAs/jAALP5AACz+UAAs/nAALP6AAC0HsAAtCeAALQvgAC0N4AAtDgAALQ4gAC0OQAAtDmAALQ6QAC0OoAAtDrAALQ7gAC0O8AAtDxAALQ8gAC0PQAAtD3AALQ+AAC0PkAAtD8AALQ/QAC0QIAAtEbAALRJAAC0SYAAtEoAALRMQAC0TQAAtE3AALROQAC0YIAAtGmAALRzQAC0fEAAtH0AALR9gAC0fgAAtH6AALR/AAC0f4AAtH/AALSAgAC0hsAAtI8AALSPgAC0kAAAtJCAALSRAAC0kYAAtJIAALSSgAC0kwAAtJtAALScAAC0nMAAtJ2AALSeQAC0nwAAtJ/AALSggAC0oUAAtKHAALTAgAC0wQAAtMGAALTCAAC0wsAAtMMAALTDQAC0w4AAtMPAALTEQAC0xMAAtMUAALTFQAC0xcAAtMYAALTkwAC05UAAtOXAALTmQAC05wAAtOdAALTngAC058AAtOgAALTogAC06QAAtOlAALTpgAC06gAAtOpAALUJAAC1CYAAtQpAALUKwAC1C4AAtQvAALUMAAC1DEAAtQyAALUNAAC1DYAAtQ3AALUOAAC1DoAAtQ7AALUVAAC1FUAAtRWAALUWAAC1NMAAtTVAALU1wAC1NkAAtTcAALU3QAC1N4AAtTfAALU4AAC1OIAAtTkAALU5QAC1OYAAtToAALU6QAC1WQAAtVmAALVaAAC1WoAAtVtAALVbgAC1W8AAtVwAALVcQAC1XMAAtV1AALVdgAC1XcAAtV5AALVegAC1fUAAtX3AALV+QAC1fsAAtX+AALV/wAC1gAAAtYBAALWAgAC1gQAAtYGAALWBwAC1ggAAtYKAALWCwAC1oYAAtaIAALWigAC1owAAtaPAALWkAAC1pEAAtaSAALWkwAC1pUAAtaXAALWmAAC1pkAAtabAALWnAAC1xcAAtcZAALXGwAC1x0AAtcgAALXIQAC1yIAAtcjAALXJAAC1yYAAtcoAALXKQAC1yoAAtcsAALXLQAC13YAAteaAALXwQAC1+UAAtfoAALX6gAC1+wAAtfuAALX8AAC1/IAAtfzAALX9gAC2A8AAtgsAALYLgAC2DAAAtgyAALYNAAC2DYAAtg4AALYOgAC2FcAAthaAALYXQAC2GAAAthjAALYZgAC2GkAAthsAALYbgAC2OkAAtjrAALY7QAC2O8AAtjyAALY8wAC2PQAAtj1AALY9gAC2PgAAtj6AALY+wAC2PwAAtj+AALY/wAC2XoAAtl8AALZfgAC2YAAAtmDAALZhAAC2YUAAtmGAALZhwAC2YkAAtmLAALZjAAC2Y0AAtmPAALZkAAC2gsAAtoNAALaDwAC2hEAAtoUAALaFQAC2hYAAtoXAALaGAAC2hoAAtocAALaHQAC2h4AAtogAALaIQAC2pwAAtqeAALaoQAC2qMAAtqmAALapwAC2qgAAtqpAALaqgAC2qwAAtquAALarwAC2rAAAtqyAALaswAC2y4AAtswAALbMgAC2zQAAts3AALbOAAC2zkAAts6AALbOwAC2z0AAts/AALbQAAC20EAAttDAALbRAAC278AAtvBAALbwwAC28UAAtvIAALbyQAC28oAAtvLAALbzAAC284AAtvQAALb0QAC29IAAtvUAALb1QAC3FAAAtxSAALcVAAC3FYAAtxZAALcWgAC3FsAAtxcAALcXQAC3F8AAtxhAALcYgAC3GMAAtxlAALcZgAC3PkAAt0cAALdPAAC3VwAAt1eAALdYAAC3WIAAt1kAALdZwAC3WgAAt1pAALdbAAC3W0AAt1vAALdcAAC3XMAAt12AALddwAC3XgAAt17AALdfAAC3YEAAt2aAALdowAC3aUAAt2oAALdsQAC3bQAAt23AALduQAC3gIAAt4mAALeTQAC3nEAAt50AALedgAC3ngAAt56AALefAAC3n4AAt5/AALeggAC3psAAt68AALevgAC3sAAAt7CAALexAAC3sYAAt7IAALeygAC3swAAt7tAALe8AAC3vMAAt72AALe+QAC3vwAAt7/AALfAgAC3wUAAt8HAALfggAC34QAAt+GAALfiAAC34sAAt+MAALfjQAC344AAt+PAALfkQAC35MAAt+UAALflQAC35cAAt+YAALgEwAC4BUAAuAXAALgGQAC4BwAAuAdAALgHgAC4B8AAuAgAALgIgAC4CQAAuAlAALgJgAC4CgAAuApAALgpAAC4KYAAuCpAALgqwAC4K4AAuCvAALgsAAC4LEAAuCyAALgtAAC4LYAAuC3AALguAAC4LoAAuC7AALg1AAC4NUAAuDWAALg2AAC4VMAAuFVAALhVwAC4VkAAuFcAALhXQAC4V4AAuFfAALhYAAC4WIAAuFkAALhZQAC4WYAAuFoAALhaQAC4eQAAuHmAALh6AAC4eoAAuHtAALh7gAC4e8AAuHwAALh8QAC4fMAAuH1AALh9gAC4fcAAuH5AALh+gAC4nUAAuJ3AALieQAC4nsAAuJ+AALifwAC4oAAAuKBAALiggAC4oQAAuKGAALihwAC4ogAAuKKAALiiwAC4wYAAuMIAALjCgAC4wwAAuMPAALjEAAC4xEAAuMSAALjEwAC4xUAAuMXAALjGAAC4xkAAuMbAALjHAAC45cAAuOZAALjmwAC450AAuOgAALjoQAC46IAAuOjAALjpAAC46YAAuOoAALjqQAC46oAAuOsAALjrQAC4/YAAuQaAALkQQAC5GUAAuRoAALkawAC5G0AAuRvAALkcQAC5HMAAuR0AALkdwAC5JAAAuStAALksAAC5LMAAuS2AALkuQAC5LwAAuS/AALkwgAC5N8AAuTiAALk5QAC5OgAAuTrAALk7gAC5PEAAuT0AALk9gAC5XEAAuVzAALldgAC5XgAAuV7AALlfAAC5X0AAuV+AALlfwAC5YEAAuWEAALlhQAC5YYAAuWIAALliQAC5gQAAuYGAALmCQAC5gsAAuYOAALmDwAC5hAAAuYRAALmEgAC5hQAAuYXAALmGAAC5hkAAuYbAALmHAAC5pcAAuaZAALmnAAC5p4AAuahAALmogAC5qMAAuakAALmpQAC5qcAAuaqAALmqwAC5qwAAuauAALmrwAC5yoAAucsAALnLwAC5zEAAuc0AALnNQAC5zYAAuc3AALnOAAC5zoAAuc9AALnPgAC5z8AAudBAALnQgAC570AAue/AALnwQAC58MAAufGAALnxwAC58gAAufJAALnygAC58wAAufPAALn0AAC59EAAufTAALn1AAC6E8AAuhRAALoUwAC6FUAAuhYAALoWQAC6FoAAuhbAALoXAAC6F4AAuhhAALoYgAC6GMAAuhlAALoZgAC6OEAAujjAALo5gAC6OgAAujrAALo7AAC6O0AAujuAALo7wAC6PEAAuj0AALo9QAC6PYAAuj4AALo+QAC6YwAAumvAALpzwAC6e8AAunxAALp8wAC6fUAAun3AALp+gAC6fsAAun8AALp/wAC6gAAAuoCAALqAwAC6gUAAuoIAALqCQAC6goAAuoNAALqDgAC6hMAAuosAALqNQAC6jcAAuo5AALqQgAC6kUAAupIAALqSgAC6pMAAuq3AALq3gAC6wIAAusFAALrBwAC6wkAAusLAALrDQAC6w8AAusQAALrEwAC6ywAAutNAALrTwAC61EAAutTAALrVQAC61cAAutZAALrWwAC610AAut+AALrgQAC64QAAuuHAALrigAC640AAuuQAALrkwAC65YAAuuYAALsEwAC7BUAAuwXAALsGQAC7BwAAuwdAALsHgAC7B8AAuwgAALsIgAC7CQAAuwlAALsJgAC7CgAAuwpAALspAAC7KYAAuyoAALsqgAC7K0AAuyuAALsrwAC7LAAAuyxAALsswAC7LUAAuy2AALstwAC7LkAAuy6AALtNQAC7TcAAu06AALtPAAC7T8AAu1AAALtQQAC7UIAAu1DAALtRQAC7UcAAu1IAALtSQAC7UsAAu1MAALtZQAC7WYAAu1nAALtaQAC7eQAAu3mAALt6AAC7eoAAu3tAALt7gAC7e8AAu3wAALt8QAC7fMAAu31AALt9gAC7fcAAu35AALt+gAC7nUAAu53AALueQAC7nsAAu5+AALufwAC7oAAAu6BAALuggAC7oQAAu6GAALuhwAC7ogAAu6KAALuiwAC7wYAAu8IAALvCgAC7ww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AAzW0AAM1tQADNbcAAzW4AAM10QADNdIAAzXTAAM11QADNlAAAzZSAAM2VAADNlYAAzZZAAM2WgADNlsAAzZcAAM2XQADNl8AAzZhAAM2YgADNmMAAzZlAAM2ZgADNuEAAzbjAAM25QADNucAAzbqAAM26wADNuwAAzbtAAM27gADNvAAAzbyAAM28wADNvQAAzb2AAM29wADN3IAAzd0AAM3dgADN3gAAzd7AAM3fAADN30AAzd+AAM3fwADN4EAAzeDAAM3hAADN4UAAzeHAAM3iAADOAMAAzgFAAM4BwADOAkAAzgMAAM4DQADOA4AAzgPAAM4EAADOBIAAzgUAAM4FQADOBYAAzgYAAM4GQADOJQAAziWAAM4mAADOJoAAzidAAM4ngADOJ8AAzigAAM4oQADOKMAAzilAAM4pgADOKcAAzipAAM4qgADOPMAAzkXAAM5PgADOWIAAzllAAM5aAADOWoAAzlsAAM5bgADOXAAAzlxAAM5dAADOY0AAzmqAAM5rQADObAAAzmzAAM5tgADObkAAzm8AAM5vwADOdwAAznfAAM54gADOeUAAznoAAM56wADOe4AAznxAAM58wADOm4AAzpwAAM6cwADOnUAAzp4AAM6eQADOnoAAzp7AAM6fAADOn4AAzqBAAM6ggADOoMAAzqFAAM6hgADOwEAAzsDAAM7BgADOwgAAzsLAAM7DAADOw0AAzsOAAM7DwADOxEAAzsUAAM7FQADOxYAAzsYAAM7GQADO5QAAzuWAAM7mQADO5sAAzueAAM7nwADO6AAAzuhAAM7ogADO6QAAzunAAM7qAADO6kAAzurAAM7rAADPCcAAzwpAAM8LAADPC4AAzwxAAM8MgADPDMAAzw0AAM8NQADPDcAAzw6AAM8OwADPDwAAzw+AAM8PwADPLoAAzy8AAM8vgADPMAAAzzDAAM8xAADPMUAAzzGAAM8xwADPMkAAzzMAAM8zQADPM4AAzzQAAM80QADPUwAAz1OAAM9UAADPVIAAz1VAAM9VgADPVcAAz1YAAM9WQADPVsAAz1eAAM9XwADPWAAAz1iAAM9YwADPd4AAz3gAAM94wADPeUAAz3oAAM96QADPeoAAz3rAAM97AADPe4AAz3xAAM98gADPfMAAz31AAM99gADPokAAz6sAAM+zAADPuwAAz7uAAM+8AADPvIAAz70AAM+9wADPvgAAz75AAM+/AADPv0AAz7/AAM/AAADPwIAAz8FAAM/BgADPwcAAz8KAAM/CwADPxQAAz8tAAM/NgADPzgAAz86AAM/QwADP0YAAz9JAAM/SwADP5QAAz+4AAM/3wADQAMAA0AGAANACAADQAoAA0AMAANADgADQBAAA0ARAANAFAADQC0AA0BOAANAUAADQFIAA0BUAANAVgADQFgAA0BaAANAXAADQF4AA0B/AANAggADQIUAA0CIAANAiwADQI4AA0CRAANAlAADQJcAA0CZAANBFAADQRYAA0EYAANBGgADQR0AA0EeAANBHwADQSAAA0EhAANBIwADQSUAA0EmAANBJwADQSkAA0EqAANBpQADQacAA0GpAANBqwADQa4AA0GvAANBsAADQbEAA0GyAANBtAADQbYAA0G3AANBuAADQboAA0G7AANCNgADQjgAA0I7AANCPQADQkAAA0JBAANCQgADQkMAA0JEAANCRgADQkgAA0JJAANCSgADQkwAA0JNAANCZgADQmcAA0JoAANCagADQuUAA0LnAANC6QADQusAA0LuAANC7wADQvAAA0LxAANC8gADQvQAA0L2AANC9wADQvgAA0L6AANC+wADQ3YAA0N4AANDegADQ3wAA0N/AANDgAADQ4EAA0OCAANDgwADQ4UAA0OHAANDiAADQ4kAA0OLAANDjAADRAcAA0QJAANECwADRA0AA0QQAANEEQADRBIAA0QTAANEFAADRBYAA0QYAANEGQADRBoAA0QcAANEHQADRJgAA0SaAANEnAADRJ4AA0ShAANEogADRKMAA0SkAANEpQADRKcAA0SpAANEqgADRKsAA0StAANErgADRSkAA0UrAANFLQADRS8AA0UyAANFMwADRTQAA0U1AANFNgADRTgAA0U6AANFOwADRTwAA0U+AANFPwADRYgAA0WsAANF0wADRfcAA0X6AANF/AADRf4AA0YAAANGAgADRgQAA0YFAANGCAADRiEAA0Y+AANGQAADRkIAA0ZEAANGRgADRkgAA0ZKAANGTAADRmkAA0ZsAANGbwADRnIAA0Z1AANGeAADRnsAA0Z+AANGgAADRvsAA0b9AANG/wADRwEAA0cEAANHBQADRwYAA0cHAANHCAADRwoAA0cMAANHDQADRw4AA0cQAANHEQADR4wAA0eOAANHkAADR5IAA0eVAANHlgADR5cAA0eYAANHmQADR5sAA0edAANHngADR58AA0ehAANHogADSB0AA0gfAANIIQADSCMAA0gmAANIJwADSCgAA0gpAANIKgADSCwAA0guAANILwADSDAAA0gyAANIMwADSK4AA0iwAANIswADSLUAA0i4AANIuQADSLoAA0i7AANIvAADSL4AA0jAAANIwQADSMIAA0jEAANIxQADSMgAA0lDAANJRQADSUcAA0lJAANJTAADSU0AA0lOAANJTwADSVAAA0lSAANJVAADSVUAA0lWAANJWAADSVkAA0nUAANJ1gADSdgAA0naAANJ3QADSd4AA0nfAANJ4AADSeEAA0njAANJ5QADSeYAA0nnAANJ6QADSeoAA0plAANKZwADSmkAA0prAANKbgADSm8AA0pwAANKcQADSnIAA0p0AANKdgADSncAA0p4AANKegADSnsAA0sOAANLMQADS1EAA0txAANLcwADS3UAA0t3AANLeQADS3wAA0t9AANLfgADS4EAA0uCAANLhAADS4UAA0uHAANLigADS4sAA0uMAANLjwADS5AAA0uZAANLsgADS7sAA0u9AANLvwADS8gAA0vLAANLzgADS9AAA0wZAANMPQADTGQAA0yIAANMiwADTI0AA0yPAANMkQADTJMAA0yVAANMlgADTJkAA0yyAANM0wADTNUAA0zXAANM2QADTNsAA0zdAANM3wADTOEAA0zjAANNBAADTQcAA00KAANNDQADTRAAA00TAANNFgADTRkAA00cAANNHgADTZkAA02bAANNnQADTZ8AA02iAANNowADTaQAA02lAANNpgADTagAA02qAANNqwADTawAA02uAANNrwADTioAA04sAANOLgADTjAAA04zAANONAADTjUAA042AANONwADTjkAA047AANOPAADTj0AA04/AANOQAADTrsAA069AANOwAADTsIAA07FAANOxgADTscAA07IAANOyQADTssAA07NAANOzgADTs8AA07RAANO0gADTusAA07sAANO7QADTu8AA09qAANPbAADT24AA09wAANPcwADT3QAA091AANPdgADT3cAA095AANPewADT3wAA099AANPfwADT4AAA0/7AANP/QADT/8AA1ABAANQBAADUAUAA1AGAANQBwADUAgAA1AKAANQDAADUA0AA1AOAANQEAADUBEAA1CMAANQjgADUJAAA1CSAANQlQADUJYAA1CXAANQmAADUJkAA1CbAANQnQADUJ4AA1CfAANQoQADUKIAA1EdAANRHwADUSEAA1EjAANRJgADUScAA1EoAANRKQADUSoAA1EsAANRLgADUS8AA1EwAANRMgADUTMAA1GuAANRsAADUbIAA1G0AANRtwADUbgAA1G5AANRugADUbsAA1G9AANRvwADUcAAA1HBAANRwwADUcQAA1INAANSMQADUlgAA1J8AANSfwADUoEAA1KDAANShQADUocAA1KJAANSigADUo0AA1KmAANSwwADUsUAA1LHAANSyQADUssAA1LNAANSzwADUtEAA1LuAANS8QADUvQAA1L3AANS+gADUv0AA1MAAANTAwADUwUAA1OAAANTggADU4QAA1OGAANTiQADU4oAA1OLAANTjAADU40AA1OPAANTkQADU5IAA1OTAANTlQADU5YAA1QRAANUEwADVBUAA1QXAANUGgADVBsAA1QcAANUHQADVB4AA1QgAANUIgADVCMAA1QkAANUJgADVCcAA1SiAANUpAADVKYAA1SoAANUqwADVKwAA1StAANUrgADVK8AA1SxAANUswADVLQAA1S1AANUtwADVLgAA1UzAANVNQADVTgAA1U6AANVPQADVT4AA1U/AANVQAADVUEAA1VDAANVRQADVUYAA1VHAANVSQADVUoAA1XFAANVxwADVckAA1XLAANVzgADVc8AA1XQAANV0QADVdIAA1XUAANV1gADVdcAA1XYAANV2gADVdsAA1ZWAANWWAADVloAA1ZcAANWXwADVmAAA1ZhAANWYgADVmMAA1ZlAANWZwADVmgAA1ZpAANWawADVmwAA1bnAANW6QADVusAA1btAANW8AADVvEAA1byAANW8wADVvQAA1b2AANW+AADVvkAA1b6AANW/AADVv0AA1cOAANXDwADVxEAA1eMAANXjgADV5AAA1eSAANXlQADV5YAA1eXAANXmAADV5kAA1ebAANXngADV58AA1egAANXogADV6MAA1geAANYIAADWCIAA1gkAANYJwADWCgAA1gpAANYKgADWCsAA1gtAANYMAADWDEAA1gyAANYNAADWDUAA1iwAANYsgADWLUAA1i3AANYugADWLsAA1i8AANYvQADWL4AA1jAAANYwwADWMQAA1jFAANYxwADWMgAA1lbAANZfgADWZ4AA1m+AANZwAADWcIAA1nEAANZxgADWckAA1nKAANZywADWc4AA1nPAANZ0QADWdIAA1nUAANZ1wADWdgAA1nZAANZ3AADWd0AA1niAANZ+wADWgQAA1oGAANaCAADWhEAA1oUAANaFwADWhkAA1piAANahgADWq0AA1rRAANa1AADWtYAA1rYAANa2gADWtwAA1reAANa3wADWuIAA1r7AANbHAADWx4AA1sgAANbIgADWyQAA1smAANbKAADWyoAA1ssAANbTQADW1AAA1tTAANbVgADW1kAA1tcAANbXwADW2IAA1tlAANbZwADW+IAA1vkAANb5gADW+gAA1vrAANb7AADW+0AA1vuAANb7wADW/EAA1vzAANb9AADW/UAA1v3AANb+AADXHMAA1x1AANcdwADXHkAA1x8AANcfQADXH4AA1x/AANcgAADXIIAA1yEAANchQADXIYAA1yIAANciQADXQQAA10GAANdCQADXQsAA10OAANdDwADXRAAA10RAANdEgADXRQAA10WAANdFwADXRgAA10aAANdGwADXTQAA101AANdNgADXTgAA12zAANdtQADXbcAA125AANdvAADXb0AA12+AANdvwADXcAAA13CAANdxAADXcUAA13GAANdyAADXckAA15EAANeRgADXkgAA15KAANeTQADXk4AA15PAANeUAADXlEAA15TAANeVQADXlYAA15XAANeWQADXloAA17VAANe1wADXtkAA17bAANe3gADXt8AA17gAANe4QADXuIAA17kAANe5gADXucAA17oAANe6gADXusAA19mAANfaAADX2oAA19sAANfbwADX3AAA19xAANfcgADX3MAA191AANfdwADX3gAA195AANfewADX3wAA1/3AANf+QADX/sAA1/9AANgAAADYAEAA2ACAANgAwADYAQAA2AGAANgCAADYAkAA2AKAANgDAADYA0AA2BWAANgegADYKEAA2DFAANgyAADYMoAA2DMAANgzgADYNAAA2DSAANg0wADYNYAA2DvAANhDAADYQ4AA2EQAANhEgADYRQAA2EWAANhGAADYRoAA2E3AANhOgADYT0AA2FAAANhQwADYUYAA2FJAANhTAADYU4AA2HJAANhywADYc0AA2HPAANh0gADYdMAA2HUAANh1QADYdYAA2HYAANh2gADYdsAA2HcAANh3gADYd8AA2JaAANiXAADYl4AA2JgAANiYwADYmQAA2JlAANiZgADYmcAA2JpAANiawADYmwAA2JtAANibwADYnAAA2LrAANi7QADYu8AA2LxAANi9AADYvUAA2L2AANi9wADYvgAA2L6AANi/AADYv0AA2L+AANjAAADYwEAA2N8AANjfgADY4AAA2OCAANjhQADY4YAA2OHAANjiAADY4kAA2OLAANjjQADY44AA2OPAANjkQADY5IAA2QNAANkDwADZBEAA2QTAANkFgADZBcAA2QYAANkGQADZBoAA2QcAANkHgADZB8AA2QgAANkIgADZCMAA2SeAANkoAADZKIAA2SkAANkpwADZKgAA2SpAANkqgADZKsAA2StAANkrwADZLAAA2SxAANkswADZLQAA2UvAANlMQADZTMAA2U1AANlOAADZTkAA2U6AANlOwADZTwAA2U+AANlQAADZUEAA2VCAANlRAADZUUAA2XYAANl+wADZhsAA2Y7AANmPQADZj8AA2ZBAANmQwADZkYAA2ZHAANmSAADZksAA2ZMAANmTgADZk8AA2ZRAANmVAADZlUAA2ZWAANmWQADZloAA2ZfAANmeAADZoEAA2aDAANmhQADZo4AA2aRAANmlAADZpYAA2bfAANnAwADZyoAA2dOAANnUQADZ1MAA2dVAANnVwADZ1kAA2dbAANnXAADZ18AA2d4AANnmQADZ5sAA2edAANnnwADZ6EAA2ejAANnpQADZ6cAA2epAANnygADZ80AA2fQAANn0wADZ9YAA2fZAANn3AADZ98AA2fiAANn5AADaF8AA2hhAANoYwADaGUAA2hoAANoaQADaGoAA2hrAANobAADaG4AA2hwAANocQADaHIAA2h0AANodQADaPAAA2jyAANo9AADaPYAA2j5AANo+gADaPsAA2j8AANo/QADaP8AA2kBAANpAgADaQMAA2kFAANpBgADaYEAA2mDAANphgADaYgAA2mLAANpjAADaY0AA2mOAANpjwADaZEAA2mTAANplAADaZUAA2mXAANpmAADabEAA2myAANpswADabUAA2owAANqMgADajQAA2o2AANqOQADajoAA2o7AANqPAADaj0AA2o/AANqQQADakIAA2pDAANqRQADakYAA2rBAANqwwADasUAA2rHAANqygADassAA2rMAANqzQADas4AA2rQAANq0gADatMAA2rUAANq1gADatcAA2tSAANrVAADa1YAA2tYAANrWwADa1wAA2tdAANrXgADa18AA2thAANrYwADa2QAA2tlAANrZwADa2gAA2vjAANr5QADa+cAA2vpAANr7AADa+0AA2vuAANr7wADa/AAA2vyAANr9AADa/UAA2v2AANr+AADa/kAA2x0AANsdgADbHgAA2x6AANsfQADbH4AA2x/AANsgAADbIEAA2yDAANshQADbIYAA2yHAANsiQADbIoAA2zTAANs9wADbR4AA21CAANtRQADbUcAA21JAANtSwADbU0AA21PAANtUAADbVMAA21sAANtiQADbYsAA22NAANtjwADbZEAA22TAANtlQADbZcAA220AANttwADbboAA229AANtwAADbcMAA23GAANtyQADbcsAA25GAANuSAADbkoAA25MAANuTwADblAAA25RAANuUgADblMAA25VAANuVwADblgAA25ZAANuWwADblwAA27XAANu2QADbtsAA27dAANu4AADbuEAA27iAANu4wADbuQAA27mAANu6AADbukAA27qAANu7AADbu0AA29oAANvagADb2wAA29uAANvcQADb3IAA29zAANvdAADb3UAA293AANveQADb3oAA297AANvfQADb34AA2/5AANv+wADb/0AA2//AANwAgADcAMAA3AEAANwBQADcAYAA3AIAANwCgADcAsAA3AMAANwDgADcA8AA3CKAANwjAADcI4AA3CQAANwkwADcJQAA3CVAANwlgADcJcAA3CZAANwmwADcJwAA3CdAANwnwADcKAAA3EbAANxHQADcR8AA3EhAANxJAADcSUAA3EmAANxJwADcSgAA3EqAANxLAADcS0AA3EuAANxMAADcTEAA3GsAANxrgADcbAAA3GyAANxtQADcbYAA3G3AANxuAADcbkAA3G7AANxvQADcb4AA3G/AANxwQADccIAA3JVAANyeAADcpgAA3K4AANyugADcrwAA3K+AANywAADcsMAA3LEAANyxQADcsgAA3LJAANyywADcswAA3LOAANy0QADctIAA3LTAANy1gADctcAA3LgAANy+QADcwIAA3MEAANzBgADcw8AA3MSAANzFQADcxcAA3NgAANzhAADc6sAA3PPAANz0gADc9QAA3PWAANz2AADc9oAA3PcAANz3QADc+AAA3P5AAN0GgADdBwAA3QeAAN0IAADdCIAA3QkAAN0JgADdCgAA3QqAAN0SwADdE4AA3RRAAN0VAADdFcAA3RaAAN0XQADdGAAA3RjAAN0ZQADdOAAA3TiAAN05AADdOYAA3TpAAN06gADdOsAA3TsAAN07QADdO8AA3TxAAN08gADdPMAA3T1AAN09gADdXEAA3VzAAN1dQADdXcAA3V6AAN1ewADdXwAA3V9AAN1fgADdYAAA3WCAAN1gwADdYQAA3WGAAN1hwADdgIAA3YEAAN2BwADdgkAA3YMAAN2DQADdg4AA3YPAAN2EAADdhIAA3YUAAN2FQADdhYAA3YYAAN2GQADdjIAA3YzAAN2NAADdjYAA3axAAN2swADdrUAA3a3AAN2ugADdrsAA3a8AAN2vQADdr4AA3bAAAN2wgADdsMAA3bEAAN2xgADdscAA3dCAAN3RAADd0YAA3dIAAN3SwADd0wAA3dNAAN3TgADd08AA3dRAAN3UwADd1QAA3dVAAN3VwADd1gAA3fTAAN31QADd9cAA3fZAAN33AADd90AA3feAAN33wADd+AAA3fiAAN35AADd+UAA3fmAAN36AADd+kAA3hkAAN4ZgADeGgAA3hqAAN4bQADeG4AA3hvAAN4cAADeHEAA3hzAAN4dQADeHYAA3h3AAN4eQADeHoAA3j1AAN49wADePkAA3j7AAN4/gADeP8AA3kAAAN5AQADeQIAA3kEAAN5BgADeQcAA3kIAAN5CgADeQsAA3lUAAN5eAADeZ8AA3nDAAN5xgADecgAA3nKAAN5zAADec4AA3nQAAN50QADedQAA3ntAAN6CgADegwAA3oOAAN6EAADehIAA3oUAAN6FgADehgAA3o1AAN6OAADejsAA3o+AAN6QQADekQAA3pHAAN6SgADekwAA3rHAAN6yQADessAA3rNAAN60AADetEAA3rSAAN60wADetQAA3rWAAN62AADetkAA3raAAN63AADet0AA3tYAAN7WgADe1wAA3teAAN7YQADe2IAA3tjAAN7ZAADe2UAA3tnAAN7aQADe2oAA3trAAN7bQADe24AA3vpAAN76wADe+0AA3vvAAN78gADe/MAA3v0AAN79QADe/YAA3v4AAN7+gADe/sAA3v8AAN7/gADe/8AA3x6AAN8fAADfH8AA3yBAAN8hAADfIUAA3yGAAN8hwADfIgAA3yKAAN8jAADfI0AA3yOAAN8kAADfJEAA30MAAN9DgADfRAAA30SAAN9FQADfRYAA30XAAN9GAADfRkAA30bAAN9HQADfR4AA30fAAN9IQADfSIAA32dAAN9nwADfaEAA32jAAN9pgADfacAA32oAAN9qQADfaoAA32sAAN9rgADfa8AA32wAAN9sgADfbMAA34uAAN+MAADfjIAA340AAN+NwADfjgAA345AAN+OgADfjsAA349AAN+PwADfkAAA35BAAN+QwADfkQAA37XAAN++gADfxoAA386AAN/PAADfz4AA39AAAN/QgADf0UAA39GAAN/RwADf0oAA39LAAN/TQADf04AA39QAAN/UwADf1QAA39VAAN/WAADf1kAA39iAAN/ewADf4QAA3+GAAN/iAADf5EAA3+UAAN/lwADf5kAA3/iAAOABgADgC0AA4BRAAOAVAADgFYAA4BYAAOAWgADgFwAA4BeAAOAXwADgGIAA4B7AAOAnAADgJ4AA4CgAAOAogADgKQAA4CmAAOAqAADgKoAA4CsAAOAzQADgNAAA4DTAAOA1gADgNkAA4DcAAOA3wADgOIAA4DlAAOA5wADgWIAA4FkAAOBZgADgWgAA4FrAAOBbAADgW0AA4FuAAOBbwADgXEAA4FzAAOBdAADgXUAA4F3AAOBeAADgfMAA4H1AAOB9wADgfkAA4H8AAOB/QADgf4AA4H/AAOCAAADggIAA4IEAAOCBQADggYAA4IIAAOCCQADgoQAA4KGAAOCiQADgosAA4KOAAOCjwADgpAAA4KRAAOCkgADgpQAA4KWAAOClwADgpgAA4KaAAOCmwADgrQAA4K1AAOCtgADgrgAA4MzAAODNQADgzcAA4M5AAODPAADgz0AA4M+AAODPwADg0AAA4NCAAODRAADg0UAA4NGAAODSAADg0kAA4PEAAODxgADg8gAA4PKAAODzQADg84AA4PPAAOD0AADg9EAA4PTAAOD1QADg9YAA4PXAAOD2QADg9oAA4RVAAOEVwADhFkAA4RbAAOEXgADhF8AA4RgAAOEYQADhGIAA4RkAAOEZgADhGcAA4RoAAOEagADhGsAA4TmAAOE6AADhOoAA4TsAAOE7wADhPAAA4TxAAOE8gADhPMAA4T1AAOE9wADhPgAA4T5AAOE+wADhPwAA4V3AAOFeQADhXsAA4V9AAOFgAADhYEAA4WCAAOFgwADhYQAA4WGAAOFiAADhYkAA4WKAAOFjAADhY0AA4XWAAOF+gADhiEAA4ZFAAOGSAADhkoAA4ZMAAOGTgADhlAAA4ZSAAOGUwADhlYAA4ZvAAOGjAADho4AA4aQAAOGkgADhpQAA4aWAAOGmAADhpoAA4a3AAOGugADhr0AA4bAAAOGwwADhsYAA4bJAAOGzAADhs4AA4dJAAOHSwADh00AA4dPAAOHUgADh1MAA4dUAAOHVQADh1YAA4dYAAOHWgADh1sAA4dcAAOHXgADh18AA4faAAOH3AADh94AA4fgAAOH4wADh+QAA4flAAOH5gADh+cAA4fpAAOH6wADh+wAA4ftAAOH7wADh/AAA4hrAAOIbQADiG8AA4hxAAOIdAADiHUAA4h2AAOIdwADiHgAA4h6AAOIfAADiH0AA4h+AAOIgAADiIEAA4j8AAOI/gADiQAAA4kCAAOJBQADiQYAA4kHAAOJCAADiQkAA4kLAAOJDQADiQ4AA4kPAAOJEQADiRIAA4mNAAOJjwADiZEAA4mTAAOJlgADiZcAA4mYAAOJmQADiZoAA4mcAAOJngADiZ8AA4mgAAOJogADiaMAA4oeAAOKIAADiiIAA4okAAOKJwADiigAA4opAAOKKgADiisAA4otAAOKLwADijAAA4oxAAOKMwADijQAA4qvAAOKsQADirMAA4q1AAOKuAADirkAA4q6AAOKuwADirwAA4q+AAOKwAADisEAA4rCAAOKxAADisUAA4rWAAOK1wADitkAA4tUAAOLVgADi1gAA4taAAOLXQADi14AA4tfAAOLYAADi2EAA4tjAAOLZgADi2cAA4toAAOLagADi2sAA4vmAAOL6AADi+oAA4vsAAOL7wADi/AAA4vxAAOL8gADi/MAA4v1AAOL+AADi/kAA4v6AAOL/AADi/0AA4x4AAOMegADjH0AA4x/AAOMggADjIMAA4yEAAOMhQADjIYAA4yIAAOMiwADjIwAA4yNAAOMjwADjJAAA40jAAONRgADjWYAA42GAAONiAADjYoAA42MAAONjgADjZEAA42SAAONkwADjZYAA42XAAONmQADjZoAA42cAAONnwADjaAAA42hAAONpAADjaUAA42qAAONwwADjcwAA43OAAON0AADjdkAA43cAAON3wADjeEAA44qAAOOTgADjnUAA46ZAAOOnAADjp4AA46gAAOOogADjqQAA46mAAOOpwADjqoAA47DAAOO5AADjuYAA47oAAOO6gADjuwAA47uAAOO8AADjvIAA470AAOPFQADjxgAA48bAAOPHgADjyEAA48kAAOPJwADjyoAA48tAAOPLwADj6oAA4+sAAOPrgADj7AAA4+zAAOPtAADj7UAA4+2AAOPtwADj7kAA4+7AAOPvAADj70AA4+/AAOPwAADkDsAA5A9AAOQPwADkEEAA5BEAAOQRQADkEYAA5BHAAOQSAADkEoAA5BMAAOQTQADkE4AA5BQAAOQUQADkMwAA5DOAAOQ0QADkNMAA5DWAAOQ1wADkNgAA5DZAAOQ2gADkNwAA5DeAAOQ3wADkOAAA5DiAAOQ4wADkPwAA5D9AAOQ/gADkQAAA5F7AAORfQADkX8AA5GBAAORhAADkYUAA5GGAAORhwADkYgAA5GKAAORjAADkY0AA5GOAAORkAADkZEAA5IMAAOSDgADkhAAA5ISAAOSFQADkhYAA5IXAAOSGAADkhkAA5IbAAOSHQADkh4AA5IfAAOSIQADkiIAA5KdAAOSnwADkqEAA5KjAAOSpgADkqcAA5KoAAOSqQADkqoAA5KsAAOSrgADkq8AA5KwAAOSsgADkrMAA5MuAAOTMAADkzIAA5M0AAOTNwADkzgAA5M5AAOTOgADkzsAA5M9AAOTPwADk0AAA5NBAAOTQwADk0QAA5O/AAOTwQADk8MAA5PFAAOTyAADk8kAA5PKAAOTywADk8wAA5POAAOT0AADk9EAA5PSAAOT1AADk9UAA5QeAAOUQgADlGkAA5SNAAOUkAADlJIAA5SUAAOUlgADlJgAA5SaAAOUmwADlJ4AA5S3AAOU1AADlNYAA5TYAAOU2gADlNwAA5TeAAOU4AADlOIAA5T/AAOVAgADlQUAA5UIAAOVCwADlQ4AA5URAAOVFAADlRYAA5WRAAOVkwADlZUAA5WXAAOVmgADlZsAA5WcAAOVnQADlZ4AA5WgAAOVogADlaMAA5WkAAOVpgADlacAA5YiAAOWJAADliYAA5YoAAOWKwADliwAA5YtAAOWLgADli8AA5YxAAOWMwADljQAA5Y1AAOWNwADljgAA5azAAOWtQADlrcAA5a5AAOWvAADlr0AA5a+AAOWvwADlsAAA5bCAAOWxAADlsUAA5bGAAOWyAADlskAA5dEAAOXRgADl0kAA5dLAAOXTgADl08AA5dQAAOXUQADl1IAA5dUAAOXVgADl1cAA5dYAAOXWgADl1sAA5fWAAOX2AADl9oAA5fcAAOX3wADl+AAA5fhAAOX4gADl+MAA5flAAOX5wADl+gAA5fpAAOX6wADl+wAA5hnAAOYaQADmGsAA5htAAOYcAADmHEAA5hyAAOYcwADmHQAA5h2AAOYeAADmHkAA5h6AAOYfAADmH0AA5j4AAOY+gADmPwAA5j+AAOZAQADmQIAA5kDAAOZBAADmQUAA5kHAAOZCQADmQoAA5kLAAOZDQADmQ4AA5mhAAOZxAADmeQAA5oEAAOaBgADmggAA5oKAAOaDAADmg8AA5oQAAOaEQADmhQAA5oVAAOaFwADmhgAA5oaAAOaHQADmh4AA5ofAAOaIgADmiMAA5ooAAOaQQADmkoAA5pMAAOaTgADmlcAA5paAAOaXQADml8AA5qoAAOazAADmvMAA5sXAAObGgADmxwAA5seAAObIAADmyIAA5skAAObJQADmygAA5tBAAObYgADm2QAA5tmAAObaAADm2oAA5tsAAObbgADm3AAA5tyAAObkwADm5YAA5uZAAObnAADm58AA5uiAAObpQADm6gAA5urAAObrQADnCgAA5wqAAOcLAADnC4AA5wxAAOcMgADnDMAA5w0AAOcNQADnDcAA5w5AAOcOgADnDsAA5w9AAOcPgADnLkAA5y7AAOcvQADnL8AA5zCAAOcwwADnMQAA5zFAAOcxgADnMgAA5zKAAOcywADnMwAA5zOAAOczwADnUoAA51MAAOdTwADnVEAA51UAAOdVQADnVYAA51XAAOdWAADnVoAA51cAAOdXQADnV4AA51gAAOdYQADnXoAA517AAOdfAADnX4AA535AAOd+wADnf0AA53/AAOeAgADngMAA54EAAOeBQADngYAA54IAAOeCgADngsAA54MAAOeDgADng8AA56KAAOejAADno4AA56QAAOekwADnpQAA56VAAOelgADnpcAA56ZAAOemwADnpwAA56dAAOenwADnqAAA58bAAOfHQADnx8AA58hAAOfJAADnyUAA58mAAOfJwADnygAA58qAAOfLAADny0AA58uAAOfMAADnzEAA5+sAAOfrgADn7AAA5+yAAOftQADn7YAA5+3AAOfuAADn7kAA5+7AAOfvQADn74AA5+/AAOfwQADn8IAA6A9AAOgPwADoEEAA6BDAAOgRgADoEcAA6BIAAOgSQADoEoAA6BMAAOgTgADoE8AA6BQAAOgUgADoFMAA6CcAAOgwAADoOcAA6ELAAOhDgADoRAAA6ESAAOhFAADoRYAA6EYAAOhGQADoRwAA6E1AAOhUgADoVQAA6FWAAOhWAADoVoAA6FcAAOhXgADoWAAA6F9AAOhgAADoYMAA6GGAAOhiQADoYwAA6GPAAOhkgADoZQAA6IPAAOiEQADohMAA6IVAAOiGAADohkAA6IaAAOiGwADohwAA6IeAAOiIAADoiEAA6IiAAOiJAADoiUAA6KgAAOiogADoqQAA6KmAAOiqQADoqoAA6KrAAOirAADoq0AA6KvAAOisQADorIAA6KzAAOitQADorYAA6MxAAOjMwADozUAA6M3AAOjOgADozsAA6M8AAOjPQADoz4AA6NAAAOjQgADo0MAA6NEAAOjRgADo0cAA6PCAAOjxAADo8cAA6PJAAOjzAADo80AA6POAAOjzwADo9AAA6PSAAOj1AADo9UAA6PWAAOj2AADo9kAA6RUAAOkVgADpFgAA6RaAAOkXQADpF4AA6RfAAOkYAADpGEAA6RjAAOkZQADpGYAA6RnAAOkaQADpGoAA6TlAAOk5wADpOkAA6TrAAOk7gADpO8AA6TwAAOk8QADpPIAA6T0AAOk9gADpPcAA6T4AAOk+gADpPsAA6V2AAOleAADpXoAA6V8AAOlfwADpYAAA6WBAAOlggADpYMAA6WFAAOlhwADpYgAA6WJAAOliwADpYwAA6YfAAOmQgADpmIAA6aCAAOmhAADpoYAA6aIAAOmigADpo0AA6aOAAOmjwADppIAA6aTAAOmlQADppYAA6aYAAOmmwADppwAA6adAAOmoAADpqEAA6amAAOmvwADpsgAA6bKAAOmzAADptUAA6bYAAOm2wADpt0AA6cmAAOnSgADp3EAA6eVAAOnmAADp5oAA6ecAAOnngADp6AAA6eiAAOnowADp6YAA6e/AAOn4AADp+IAA6fkAAOn5gADp+gAA6fqAAOn7AADp+4AA6fwAAOoEQADqBQAA6gXAAOoGgADqB0AA6ggAAOoIwADqCYAA6gpAAOoKwADqKYAA6ioAAOoqgADqKwAA6ivAAOosAADqLEAA6iyAAOoswADqLUAA6i3AAOouAADqLkAA6i7AAOovAADqTcAA6k5AAOpOwADqT0AA6lAAAOpQQADqUIAA6lDAAOpRAADqUYAA6lIAAOpSQADqUoAA6lMAAOpTQADqcgAA6nKAAOpzQADqc8AA6nSAAOp0wADqdQAA6nVAAOp1gADqdgAA6naAAOp2wADqdwAA6neAAOp3wADqfgAA6n5AAOp+gADqfwAA6p3AAOqeQADqnsAA6p9AAOqgAADqoEAA6qCAAOqgwADqoQAA6qGAAOqiAADqokAA6qKAAOqjAADqo0AA6sIAAOrCgADqwwAA6sOAAOrEQADqxIAA6sTAAOrFAADqxUAA6sXAAOrGQADqxoAA6sbAAOrHQADqx4AA6uZAAOrmwADq50AA6ufAAOrogADq6MAA6ukAAOrpQADq6YAA6uoAAOrqgADq6sAA6usAAOrrgADq68AA6wqAAOsLAADrC4AA6wwAAOsMwADrDQAA6w1AAOsNgADrDcAA6w5AAOsOwADrDwAA6w9AAOsPwADrEAAA6y7AAOsvQADrL8AA6zBAAOsxAADrMUAA6zGAAOsxwADrMgAA6zKAAOszAADrM0AA6zOAAOs0AADrNEAA60aAAOtPgADrWUAA62JAAOtjAADrY4AA62QAAOtkgADrZQAA62WAAOtlwADrZoAA62zAAOt0AADrdIAA63UAAOt1gADrdgAA63aAAOt3AADrd4AA637AAOt/gADrgEAA64EAAOuBwADrgoAA64NAAOuEAADrhIAA66NAAOujwADrpEAA66TAAOulgADrpcAA66YAAOumQADrpoAA66cAAOungADrp8AA66gAAOuogADrqMAA68eAAOvIAADryIAA68kAAOvJwADrygAA68pAAOvKgADrysAA68tAAOvLwADrzAAA68xAAOvMwADrzQAA6+vAAOvsQADr7MAA6+1AAOvuAADr7kAA6+6AAOvuwADr7wAA6++AAOvwAADr8EAA6/CAAOvxAADr8UAA7BAAAOwQgADsEUAA7BHAAOwSgADsEsAA7BMAAOwTQADsE4AA7BQAAOwUgADsFMAA7BUAAOwVgADsFcAA7DSAAOw1AADsNYAA7DYAAOw2wADsNwAA7DdAAOw3gADsN8AA7DhAAOw4wADsOQAA7DlAAOw5wADsOgAA7FjAAOxZQADsWcAA7FpAAOxbAADsW0AA7FuAAOxbwADsXAAA7FyAAOxdAADsXUAA7F2AAOxeAADsXkAA7H0AAOx9gADsfgAA7H6AAOx/QADsf4AA7H/AAOyAAADsgEAA7IDAAOyBQADsgYAA7IHAAOyCQADsgoAA7KdAAOywAADsuAAA7MAAAOzAgADswQAA7MGAAOzCAADswsAA7MMAAOzDQADsxAAA7MRAAOzEwADsxQAA7MWAAOzGQADsxoAA7MbAAOzHgADsx8AA7MkAAOzPQADs0YAA7NIAAOzSgADs1MAA7NWAAOzWQADs1sAA7OkAAOzyAADs+8AA7QTAAO0FgADtBgAA7QaAAO0HAADtB4AA7QgAAO0IQADtCQAA7Q9AAO0XgADtGAAA7RiAAO0ZAADtGYAA7RoAAO0agADtGwAA7RuAAO0jwADtJIAA7SVAAO0mAADtJsAA7SeAAO0oQADtKQAA7SnAAO0qQADtSQAA7UmAAO1KAADtSoAA7UtAAO1LgADtS8AA7UwAAO1MQADtTMAA7U1AAO1NgADtTcAA7U5AAO1OgADtbUAA7W3AAO1uQADtbsAA7W+AAO1vwADtcAAA7XBAAO1wgADtcQAA7XGAAO1xwADtcgAA7XKAAO1ywADtkYAA7ZIAAO2SwADtk0AA7ZQAAO2UQADtlIAA7ZTAAO2VAADtlYAA7ZYAAO2WQADtloAA7ZcAAO2XQADtnYAA7Z3AAO2eAADtnoAA7b1AAO29wADtvkAA7b7AAO2/gADtv8AA7cAAAO3AQADtwIAA7cEAAO3BgADtwcAA7cIAAO3CgADtwsAA7eGAAO3iAADt4oAA7eMAAO3jwADt5AAA7eRAAO3kgADt5MAA7eVAAO3lwADt5gAA7eZAAO3mwADt5wAA7gXAAO4GQADuBsAA7gdAAO4IAADuCEAA7giAAO4IwADuCQAA7gmAAO4KAADuCkAA7gqAAO4LAADuC0AA7ioAAO4qgADuKwAA7iuAAO4sQADuLIAA7izAAO4tAADuLUAA7i3AAO4uQADuLoAA7i7AAO4vQADuL4AA7k5AAO5OwADuT0AA7k/AAO5QgADuUMAA7lEAAO5RQADuUYAA7lIAAO5SgADuUsAA7lMAAO5TgADuU8AA7mYAAO5vAADueMAA7oHAAO6CgADugwAA7oOAAO6EAADuhIAA7oUAAO6FQADuhgAA7oxAAO6TgADulAAA7pSAAO6VAADulYAA7pYAAO6WgADulwAA7p5AAO6fAADun8AA7qCAAO6hQADuogAA7qLAAO6jgADupAAA7sLAAO7DQADuxAAA7sSAAO7FQADuxYAA7sXAAO7GAADuxkAA7sbAAO7HQADux4AA7sfAAO7IQADuyIAA7udAAO7nwADu6EAA7ujAAO7pgADu6cAA7uoAAO7qQADu6oAA7usAAO7rgADu68AA7uwAAO7sgADu7MAA7wuAAO8MAADvDIAA7w0AAO8NwADvDgAA7w5AAO8OgADvDsAA7w9AAO8PwADvEAAA7xBAAO8QwADvEQAA7y/AAO8wQADvMQAA7zGAAO8yQADvMoAA7zLAAO8zAADvM0AA7zPAAO80QADvNIAA7zTAAO81QADvNYAA71RAAO9UwADvVUAA71XAAO9WgADvVsAA71cAAO9XQADvV4AA71gAAO9YgADvWMAA71kAAO9ZgADvWcAA73iAAO95AADveYAA73oAAO96wADvewAA73tAAO97gADve8AA73xAAO98wADvfQAA731AAO99wADvfgAA75zAAO+dQADvncAA755AAO+fAADvn0AA75+AAO+fwADvoAAA76CAAO+hAADvoUAA76GAAO+iAADvokAA78cAAO/PwADv18AA79/AAO/gQADv4MAA7+FAAO/hwADv4oAA7+LAAO/jAADv48AA7+QAAO/kgADv5MAA7+VAAO/mAADv5kAA7+aAAO/nQADv54AA7+jAAO/vAADv8UAA7/HAAO/yQADv9IAA7/VAAO/2AADv9oAA8AjAAPARwADwG4AA8CSAAPAlQADwJcAA8CZAAPAmwADwJ0AA8CfAAPAoAADwKMAA8C8AAPA3QADwN8AA8DhAAPA4wADwOUAA8DnAAPA6QADwOsAA8DtAAPBDgADwREAA8EUAAPBFwADwRoAA8EdAAPBIAADwSMAA8EmAAPBKAADwaMAA8GlAAPBpwADwakAA8GsAAPBrQADwa4AA8GvAAPBsAADwbIAA8G0AAPBtQADwbYAA8G4AAPBuQADwjQAA8I2AAPCOAADwjoAA8I9AAPCPgADwj8AA8JAAAPCQQADwkMAA8JFAAPCRgADwkcAA8JJAAPCSgADwsUAA8LHAAPCygADwswAA8LPAAPC0AADwtEAA8LSAAPC0wADwtUAA8LXAAPC2AADwtkAA8LbAAPC3AADwvUAA8L2AAPC9wADwvkAA8N0AAPDdgADw3gAA8N6AAPDfQADw34AA8N/AAPDgAADw4EAA8ODAAPDhQADw4YAA8OHAAPDiQADw4oAA8QFAAPEBwADxAkAA8QLAAPEDgADxA8AA8QQAAPEEQADxBIAA8QUAAPEFgADxBcAA8QYAAPEGgADxBsAA8SWAAPEmAADxJoAA8ScAAPEnwADxKAAA8ShAAPEogADxKMAA8SlAAPEpwADxKgAA8SpAAPEqwADxKwAA8UnAAPFKQADxSsAA8UtAAPFMAADxTEAA8UyAAPFMwADxTQAA8U2AAPFOAADxTkAA8U6AAPFPAADxT0AA8W4AAPFugADxbwAA8W+AAPFwQADxcIAA8XDAAPFxAADxcUAA8XHAAPFyQADxcoAA8XLAAPFzQADxc4AA8YXAAPGOwADxmIAA8aGAAPGiQADxosAA8aNAAPGjwADxpEAA8aTAAPGlAADxpcAA8awAAPGzQADxs8AA8bRAAPG0wADxtUAA8bXAAPG2QADxtsAA8b4AAPG+wADxv4AA8cBAAPHBAADxwcAA8cKAAPHDQADxw8AA8eKAAPHjAADx44AA8eQAAPHkwADx5QAA8eVAAPHlgADx5cAA8eZAAPHmwADx5wAA8edAAPHnwADx6AAA8gbAAPIHQADyB8AA8ghAAPIJAADyCUAA8gmAAPIJwADyCgAA8gqAAPILAADyC0AA8guAAPIMAADyDEAA8isAAPIrgADyLAAA8iyAAPItQADyLYAA8i3AAPIuAADyLkAA8i7AAPIvQADyL4AA8i/AAPIwQADyMIAA8k9AAPJPwADyUEAA8lDAAPJRgADyUcAA8lIAAPJSQADyUoAA8lMAAPJTgADyU8AA8lQAAPJUgADyVMAA8nOAAPJ0AADydIAA8nUAAPJ1wADydgAA8nZAAPJ2gADydsAA8ndAAPJ3wADyeAAA8nhAAPJ4wADyeQAA8pfAAPKYQADymQAA8pmAAPKaQADymoAA8prAAPKbAADym0AA8pvAAPKcQADynIAA8pzAAPKdQADynYAA8qVAAPLEAADyxIAA8sUAAPLFgADyxkAA8saAAPLGwADyxwAA8sdAAPLHwADyyEAA8siAAPLIwADyyUAA8smAAPLuQADy9wAA8v8AAPMHAADzB4AA8wgAAPMIgADzCQAA8wnAAPMKAADzCkAA8wsAAPMLQADzC8AA8wwAAPMMgADzDUAA8w2AAPMNwADzDoAA8w7AAPMQAADzFkAA8xiAAPMZAADzGYAA8xvAAPMcgADzHUAA8x3AAPMwAADzOQAA80LAAPNLwADzTIAA800AAPNNgADzTgAA806AAPNPAADzT0AA81AAAPNWQADzXoAA818AAPNfgADzYAAA82CAAPNhAADzYYAA82IAAPNigADzasAA82uAAPNsQADzbQAA823AAPNugADzb0AA83AAAPNwwADzcUAA85AAAPOQgADzkQAA85GAAPOSQADzkoAA85LAAPOTAADzk0AA85PAAPOUQADzlIAA85TAAPOVQADzlYAA87RAAPO0wADztUAA87XAAPO2gADztsAA87cAAPO3QADzt4AA87gAAPO4gADzuMAA87kAAPO5gADzucAA89iAAPPZAADz2cAA89pAAPPbAADz20AA89uAAPPbwADz3AAA89yAAPPdAADz3UAA892AAPPeAADz3kAA8+SAAPPkwADz5QAA8+WAAPQEQAD0BMAA9AVAAPQFwAD0BoAA9AbAAPQHAAD0B0AA9AeAAPQIAAD0CIAA9AjAAPQJAAD0CYAA9AnAAPQogAD0KQAA9CmAAPQqAAD0KsAA9CsAAPQrQAD0K4AA9CvAAPQsQAD0LMAA9C0AAPQtQAD0LcAA9C4AAPRMwAD0TUAA9E3AAPROQAD0TwAA9E9AAPRPgAD0T8AA9FAAAPRQgAD0UQAA9FFAAPRRgAD0UgAA9FJAAPRxAAD0cYAA9HIAAPRygAD0c0AA9HOAAPRzwAD0dAAA9HRAAPR0wAD0dUAA9HWAAPR1wAD0dkAA9HaAAPSVQAD0lcAA9JZAAPSWwAD0l4AA9JfAAPSYAAD0mEAA9JiAAPSZAAD0mYAA9JnAAPSaAAD0moAA9JrAAPStAAD0tgAA9L/AAPTIwAD0yYAA9MoAAPTKgAD0ywAA9MuAAPTMAAD0zEAA9M0AAPTTQAD02oAA9NsAAPTbgAD03A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AA+VAAAPlQwAD5UQAA+VGAAPlRwAD5UkAA+VMAAPlTQAD5U4AA+VRAAPlUgAD5VcAA+VwAAPleQAD5XsAA+V9AAPlhgAD5YkAA+WMAAPljgAD5dcAA+X7AAPmIgAD5kYAA+ZJAAPmSwAD5k0AA+ZPAAPmUQAD5lMAA+ZUAAPmVwAD5nAAA+aRAAPmkwAD5pUAA+aXAAPmmQAD5psAA+adAAPmnwAD5qEAA+bCAAPmxQAD5sgAA+bLAAPmzgAD5tEAA+bUAAPm1wAD5toAA+bcAAPnVwAD51kAA+dbAAPnXQAD52AAA+dhAAPnYgAD52MAA+dkAAPnZgAD52gAA+dpAAPnagAD52wAA+dtAAPn6AAD5+oAA+fsAAPn7gAD5/EAA+fyAAPn8wAD5/QAA+f1AAPn9wAD5/kAA+f6AAPn+wAD5/0AA+f+AAPoeQAD6HsAA+h+AAPogAAD6IMAA+iEAAPohQAD6IYAA+iHAAPoiQAD6IsAA+iMAAPojQAD6I8AA+iQAAPoqQAD6KoAA+irAAPorQAD6SgAA+kqAAPpLAAD6S4AA+kxAAPpMgAD6TMAA+k0AAPpNQAD6TcAA+k5AAPpOgAD6TsAA+k9AAPpPgAD6bkAA+m7AAPpvQAD6b8AA+nCAAPpwwAD6cQAA+nFAAPpxgAD6cgAA+nKAAPpywAD6cwAA+nOAAPpzwAD6koAA+pMAAPqTgAD6lAAA+pTAAPqVAAD6lUAA+pWAAPqVwAD6lkAA+pbAAPqXAAD6l0AA+pfAAPqYAAD6tsAA+rdAAPq3wAD6uEAA+rkAAPq5QAD6uYAA+rnAAPq6AAD6uoAA+rsAAPq7QAD6u4AA+rwAAPq8QAD62wAA+tuAAPrcAAD63IAA+t1AAPrdgAD63cAA+t4AAPreQAD63sAA+t9AAPrfgAD638AA+uBAAPrggAD68sAA+vvAAPsFgAD7DoAA+w9AAPsPwAD7EEAA+xDAAPsRQAD7EcAA+xIAAPsSwAD7GQAA+yBAAPsgwAD7IUAA+yHAAPsiQAD7IsAA+yNAAPsjwAD7KwAA+yvAAPssgAD7LUAA+y4AAPsuwAD7L4AA+zBAAPswwAD7T4AA+1AAAPtQgAD7UQAA+1HAAPtSAAD7UkAA+1KAAPtSwAD7U0AA+1PAAPtUAAD7VEAA+1TAAPtVAAD7c8AA+3RAAPt0wAD7dU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AA/+IAAP/qQAD/6sAA/+tAAP/rwAD/7EAA/+zAAP/tQAD/7cAA/+5AAP/2gAD/90AA//gAAP/4wAD/+YAA//pAAP/7AAD/+8AA//yAAP/9AAEAG8ABABxAAQAcwAEAHUABAB4AAQAeQAEAHoABAB7AAQAfAAEAH4ABACAAAQAgQAEAIIABACEAAQAhQAEAQAABAECAAQBBAAEAQYABAEJAAQBCgAEAQsABAEMAAQBDQAEAQ8ABAERAAQBEgAEARMABAEVAAQBFgAEAZEABAGTAAQBlgAEAZgABAGbAAQBnAAEAZ0ABAGeAAQBnwAEAaEABAGjAAQBpAAEAaUABAGnAAQBqAAEAcEABAHCAAQBwwAEAcUABAJAAAQCQgAEAkQABAJGAAQCSQAEAkoABAJLAAQCTAAEAk0ABAJPAAQCUQAEAlIABAJTAAQCVQAEAlYABALRAAQC0wAEAtUABALXAAQC2gAEAtsABALcAAQC3QAEAt4ABALgAAQC4gAEAuMABALkAAQC5gAEAucABANiAAQDZAAEA2YABANoAAQDawAEA2wABANtAAQDbgAEA28ABANxAAQDcwAEA3QABAN1AAQDdwAEA3gABAPzAAQD9QAEA/cABAP5AAQD/AAEA/0ABAP+AAQD/wAEBAAABAQCAAQEBAAEBAUABAQGAAQECAAEBAkABASEAAQEhgAEBIgABASKAAQEjQAEBI4ABASPAAQEkAAEBJEABASTAAQElQAEBJYABASXAAQEmQAEBJoABATjAAQFBwAEBS4ABAVSAAQFVQAEBVcABAVZAAQFWwAEBV0ABAVfAAQFYAAEBWMABAV8AAQFmQAEBZsABAWdAAQFnwAEBaEABAWjAAQFpQAEBacABAXEAAQFxwAEBcoABAXNAAQF0AAEBdMABAXWAAQF2QAEBdsABAZWAAQGWAAEBloABAZcAAQGXwAEBmAABAZhAAQGYgAEBmMABAZlAAQGZwAEBmgABAZpAAQGawAEBmwABAbnAAQG6QAEBusABAbtAAQG8AAEBvEABAbyAAQG8wAEBvQABAb2AAQG+AAEBvkABAb6AAQG/AAEBv0ABAd4AAQHegAEB3wABAd+AAQHgQAEB4IABAeDAAQHhAAEB4UABAeHAAQHiQAEB4oABAeLAAQHjQAEB44ABAgJAAQICwAECA4ABAgQAAQIEwAECBQABAgVAAQIFgAECBcABAgZAAQIGwAECBwABAgdAAQIHwAECCAABAibAAQInQAECJ8ABAihAAQIpAAECKUABAimAAQIpwAECKgABAiqAAQIrAAECK0ABAiuAAQIsAAECLEABAksAAQJLgAECTAABAkyAAQJNQAECTYABAk3AAQJOAAECTkABAk7AAQJPQAECT4ABAk/AAQJQQAECUIABAm9AAQJvwAECcEABAnDAAQJxgAECccABAnIAAQJyQAECcoABAnMAAQJzgAECc8ABAnQAAQJ0gAECdMABApmAAQKiQAECqkABArJAAQKywAECs0ABArPAAQK0QAECtQABArVAAQK1gAECtkABAraAAQK3AAECt0ABArfAAQK4gAECuMABArkAAQK5wAECugABArtAAQLBgAECw8ABAsRAAQLEwAECxwABAsfAAQLIgAECyQABAttAAQLkQAEC7gABAvcAAQL3wAEC+EABAvjAAQL5QAEC+cABAvpAAQL6gAEC+0ABAwGAAQMJwAEDCkABAwrAAQMLQAEDC8ABAwxAAQMMwAEDDUABAw3AAQMWAAEDFsABAxeAAQMYQAEDGQABAxnAAQMagAEDG0ABAxwAAQMcgAEDO0ABAzvAAQM8QAEDPMABAz2AAQM9wAEDPgABAz5AAQM+gAEDPwABAz+AAQM/wAEDQAABA0CAAQNAwAEDX4ABA2AAAQNggAEDYQABA2HAAQNiAAEDYkABA2KAAQNiwAEDY0ABA2PAAQNkAAEDZEABA2TAAQNlAAEDg8ABA4RAAQOFAAEDhYABA4ZAAQOGgAEDhsABA4cAAQOHQAEDh8ABA4hAAQOIgAEDiMABA4lAAQOJgAEDj8ABA5AAAQOQQAEDkMABA6+AAQOwAAEDsIABA7EAAQOxwAEDsgABA7JAAQOygAEDssABA7NAAQOzwAEDtAABA7RAAQO0wAEDtQABA9PAAQPUQAED1MABA9VAAQPWAAED1kABA9aAAQPWwAED1wABA9eAAQPYAAED2EABA9iAAQPZAAED2UABA/gAAQP4gAED+QABA/mAAQP6QAED+oABA/rAAQP7AAED+0ABA/vAAQP8QAED/IABA/zAAQP9QAED/YABBBxAAQQcwAEEHUABBB3AAQQegAEEHsABBB8AAQQfQAEEH4ABBCAAAQQggAEEIMABBCEAAQQhgAEEIc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ABDSaAAQ0nQAENLYABDTTAAQ01QAENNcABDTZAAQ02wAENN0ABDTfAAQ04QAENP4ABDUBAAQ1BAAENQcABDUKAAQ1DQAENRAABDUTAAQ1FQAENZAABDWSAAQ1lAAENZYABDWZAAQ1mgAENZsABDWcAAQ1nQAENZ8ABDWhAAQ1ogAENaMABDWlAAQ1pgAENiEABDYjAAQ2JQAENicABDYqAAQ2KwAENiwABDYtAAQ2LgAENjAABDYyAAQ2MwAENjQABDY2AAQ2NwAENrIABDa0AAQ2tgAENrgABDa7AAQ2vAAENr0ABDa+AAQ2vwAENsEABDbDAAQ2xAAENsUABDbHAAQ2yAAEN0MABDdFAAQ3RwAEN0kABDdMAAQ3TQAEN04ABDdPAAQ3UAAEN1IABDdUAAQ3VQAEN1YABDdYAAQ3WQAEN9QABDfWAAQ32AAEN9oABDfdAAQ33gAEN98ABDfgAAQ34QAEN+MABDflAAQ35gAEN+cABDfpAAQ36gAEOGUABDhnAAQ4agAEOGwABDhvAAQ4cAAEOHEABDhyAAQ4cwAEOHUABDh3AAQ4eAAEOHkABDh7AAQ4fAAEOIsABDkGAAQ5CAAEOQoABDkMAAQ5DwAEORAABDkRAAQ5EgAEORMABDkVAAQ5FwAEORgABDkZAAQ5GwAEORwABDmvAAQ50gAEOfIABDoSAAQ6FAAEOhYABDoYAAQ6GgAEOh0ABDoeAAQ6HwAEOiIABDojAAQ6JQAEOiYABDopAAQ6LAAEOi0ABDouAAQ6MQAEOjIABDo7AAQ6VAAEOl0ABDpfAAQ6YgAEOmsABDpuAAQ6cQAEOnMABDq8AAQ64AAEOwcABDsrAAQ7LgAEOzAABDsyAAQ7NAAEOzYABDs4AAQ7OQAEOzwABDtVAAQ7dgAEO3gABDt6AAQ7fAAEO34ABDuAAAQ7ggAEO4QABDuGAAQ7pwAEO6oABDutAAQ7sAAEO7MABDu2AAQ7uQAEO7wABDu/AAQ7wQAEPDwABDw+AAQ8QAAEPEIABDxFAAQ8RgAEPEcABDxIAAQ8SQAEPEsABDxNAAQ8TgAEPE8ABDxRAAQ8UgAEPM0ABDzPAAQ80QAEPNMABDzWAAQ81wAEPNgABDzZAAQ82gAEPNwABDzeAAQ83wAEPOAABDziAAQ84wAEPV4ABD1gAAQ9YwAEPWUABD1oAAQ9aQAEPWoABD1rAAQ9bAAEPW4ABD1wAAQ9cQAEPXIABD10AAQ9dQAEPY4ABD2PAAQ9kAAEPZIABD4NAAQ+DwAEPhEABD4TAAQ+FgAEPhcABD4YAAQ+GQAEPhoABD4cAAQ+HgAEPh8ABD4gAAQ+IgAEPiMABD6eAAQ+oAAEPqIABD6kAAQ+pwAEPqgABD6pAAQ+qgAEPqsABD6tAAQ+rwAEPrAABD6xAAQ+swAEPrQABD8vAAQ/MQAEPzMABD81AAQ/OAAEPzkABD86AAQ/OwAEPzwABD8+AAQ/QAAEP0EABD9CAAQ/RAAEP0UABD/AAAQ/wgAEP8QABD/GAAQ/yQAEP8oABD/LAAQ/zAAEP80ABD/PAAQ/0QAEP9IABD/TAAQ/1QAEP9YABEBRAARAUwAEQFUABEBXAARAWgAEQFsABEBcAARAXQAEQF4ABEBgAARAYgAEQGMABEBkAARAZgAEQGcABECwAARA1AAEQPsABEEfAARBIgAEQSUABEEnAARBKQAEQSsABEEtAARBLgAEQTEABEFKAARBZwAEQWoABEFtAARBcAAEQXMABEF2AARBeQAEQXwABEGZAARBnAAEQZ8ABEGiAARBpQAEQagABEGrAARBrgAEQbAABEIrAARCLQAEQjAABEIyAARCNQAEQjYABEI3AARCOAAEQjkABEI7AARCPgAEQj8ABEJAAARCQgAEQkMABEK+AARCwAAEQsMABELFAARCyAAEQskABELKAARCywAEQswABELOAARC0QAEQtIABELTAARC1QAEQtYABENRAARDUwAEQ1YABENYAARDWwAEQ1wABENdAARDXgAEQ18ABENhAARDZAAEQ2UABENmAARDaAAEQ2kABEPkAARD5gAEQ+kABEPrAARD7gAEQ+8ABEPwAARD8QAEQ/IABEP0AARD9wAEQ/gABEP5AARD+wAEQ/wABER/AAREowAERMcABETqAARFEQAERTEABEVYAARFfwAERZ8ABEXDAARF5wAERekABEXsAARF7gAERfAABEXyAARF9QAERfgABEX6AARF/AAERf8ABEYBAARGAwAERgYABEYJAARGCgAERg8ABEYoAARGLQAERi8ABEY0AARGNwAERjkABEaCAARGpgAERs0ABEbxAARG9AAERvYABEb4AARG+gAERvwABEb+AARG/wAERwIABEcbAARHQAAER0IABEdEAARHRgAER0gABEdKAARHTAAER04ABEdQAARHUgAER3cABEd6AARHfQAER4AABEeDAARHhgAER4kABEeMAARHjwAER5IABEeUAARIDwAESBEABEgUAARIFgAESBkABEgaAARIGwAESBwABEgdAARIHwAESCEABEgiAARIIwAESCUABEgmAARINwAESDgABEg6AARItQAESLcABEi5AARIuwAESL4ABEi/AARIwAAESMEABEjCAARIxAAESMYABEjHAARIyAAESMoABEjLAARJRgAESUgABElLAARJTQAESVAABElRAARJUgAESVMABElUAARJVgAESVgABElZAARJWgAESVwABEldAARJbgAESW8ABElxAARJ7AAESe4ABEnwAARJ8gAESfUABEn2AARJ9wAESfgABEn5AARJ+wAESf0ABEn+AARJ/wAESgEABEoCAARKfQAESn8ABEqCAARKhAAESocABEqIAARKiQAESooABEqLAARKjQAESo8ABEqQAARKkQAESpMABEqUAARKpQAESqYABEqoAARLIwAESyUABEsnAARLKQAESywABEstAARLLgAESy8ABEswAARLMgAESzQABEs1AARLNgAESzgABEs5AARLtAAES7YABEu5AARLuwAES74ABEu/AARLwAAES8EABEvCAARLxAAES8YABEvHAARLyAAES8oABEvLAARL5AAES+UABEvmAARL6AAETGMABExlAARMZwAETGkABExsAARMbQAETG4ABExvAARMcAAETHIABEx0AARMdQAETHYABEx4AARMeQAETPQABEz2AARM+QAETPsABEz+AARM/wAETQAABE0BAARNAgAETQQABE0GAARNBwAETQgABE0KAARNCwAETR0ABE02AARNdQAETXgABE17AARNfgAETYEABE2EAARNhwAETYoABE2NAARNkAAETZMABE2WAARNmQAETZwABE2fAARNogAETeEABE3kAARN5wAETeoABE3tAARN8AAETfMABE32AARN+QAETfwABE3/AAROAgAETgUABE4IAAROCwAETg4ABE4QAAROHgAETjoABE5SAAROZQAETm0ABE57AAROlgAETq4ABE65AAROyAAETuMABE74AARPEQAETyoABE84AARPywAET+4ABFAOAARQLgAEUDAABFAyAARQNAAEUDYABFA5AARQOgAEUDsABFA+AARQPwAEUEEABFBCAARQRAAEUEcABFBIAARQSQAEUEwABFBNAARQUgAEUGsABFB0AARQdgAEUHgABFCBAARQhAAEUIcABFCJAARQ0gAEUPYABFEdAARRQQAEUUQABFFGAARRSAAEUUoABFFMAARRTgAEUU8ABFFSAARRawAEUYwABFGOAARRkAAEUZIABFGUAARRlgAEUZgABFGaAARRnAAEUb0ABFHAAARRwwAEUcYABFHJAARRzAAEUc8ABFHSAARR1QAEUdcABFJSAARSVAAEUlYABFJYAARSWwAEUlwABFJdAARSXgAEUl8ABFJhAARSYwAEUmQABFJlAARSZwAEUmgABFLjAARS5QAEUucABFLpAARS7AAEUu0ABFLuAARS7wAEUvAABFLyAARS9AAEUvUABFL2AARS+AAEUvkABFN0AARTdgAEU3kABFN7AARTfgAEU38ABFOAAARTgQAEU4IABFOEAARThgAEU4cABFOIAARTigAEU4sABFOkAARTpQAEU6YABFOoAARUIwAEVCUABFQnAARUKQAEVCwABFQtAARULgAEVC8ABFQwAARUMgAEVDQABFQ1AARUNgAEVDgABFQ5AARUtAAEVLYABFS4AARUugAEVL0ABFS+AARUvwAEVMAABFTBAARUwwAEVMUABFTGAARUxwAEVMkABFTKAARVRQAEVUcABFVJAARVSwAEVU4ABFVPAARVUAAEVVEABFVSAARVVAAEVVYABFVXAARVWAAEVVoABFVbAARV1gAEVdgABFXaAARV3AAEVd8ABFXgAARV4QAEVeIABFXjAARV5QAEVecABFXoAARV6QAEVesABFXsAARWZwAEVmkABFZrAARWbQAEVnAABFZxAARWcgAEVnMABFZ0AARWdgAEVngABFZ5AARWegAEVnwABFZ9AARWxgAEVuoABFcRAARXNQAEVzgABFc6AARXPAAEVz4ABFdAAARXQgAEV0MABFdGAARXXwAEV3wABFd+AARXgAAEV4IABFeEAARXhgAEV4gABFeKAARXpwAEV6oABFetAARXsAAEV7MABFe2AARXuQAEV7wABFe+AARYOQAEWDsABFg9AARYPwAEWEIABFhDAARYRAAEWEUABFhGAARYSAAEWEoABFhLAARYTAAEWE4ABFhPAARYygAEWMwABFjOAARY0AAEWNMABFjUAARY1QAEWNYABFjXAARY2QAEWNsABFjcAARY3QAEWN8ABFjgAARZWwAEWV0ABFlfAARZYQAEWWQABFllAARZZgAEWWcABFloAARZagAEWWwABFltAARZbgAEWXAABFlxAARZ7AAEWe4ABFnxAARZ8wAEWfYABFn3AARZ+AAEWfkABFn6AARZ/AAEWf4ABFn/AARaAAAEWgIABFoDAARaBgAEWoEABFqDAARahQAEWocABFqKAARaiwAEWowABFqNAARajgAEWpAABFqSAARakwAEWpQABFqWAARalwAEWxIABFsUAARbFgAEWxgABFsbAARbHAAEWx0ABFseAARbHwAEWyEABFsjAARbJAAEWyUABFsnAARbKAAEW6MABFulAARbpwAEW6kABFusAARbrQAEW64ABFuvAARbsAAEW7IABFu0AARbtQAEW7YABFu4AARbuQAEXEwABFxvAARcjwAEXK8ABFyxAARcswAEXLUABFy3AARcugAEXLsABFy8AARcvwAEXMAABFzCAARcwwAEXMUABFzIAARcyQAEXMoABFzNAARczgAEXNcABFzwAARc+QAEXPsABFz9AARdBgAEXQkABF0MAARdDgAEXVcABF17AARdogAEXcYABF3JAARdywAEXc0ABF3PAARd0QAEXdMABF3UAARd1wAEXfAABF4RAAReEwAEXhUABF4XAAReGQAEXhsABF4dAAReHwAEXiEABF5CAAReRQAEXkgABF5LAAReTgAEXlEABF5UAAReVwAEXloABF5cAARe1wAEXtkABF7bAARe3QAEXuAABF7hAARe4gAEXuMABF7kAARe5gAEXugABF7pAARe6gAEXuwABF7tAARfaAAEX2oABF9sAARfbgAEX3EABF9yAARfcwAEX3QABF91AARfdwAEX3kABF96AARfewAEX30ABF9+AARf+QAEX/sABF/+AARgAAAEYAMABGAEAARgBQAEYAYABGAHAARgCQAEYAsABGAMAARgDQAEYA8ABGAQAARgKQAEYCoABGArAARgLQAEYKgABGCqAARgrAAEYK4ABGCxAARgsgAEYLMABGC0AARgtQAEYLcABGC5AARgugAEYLsABGC9AARgvgAEYTkABGE7AARhPQAEYT8ABGFCAARhQwAEYUQABGFFAARhRgAEYUgABGFKAARhSwAEYUwABGFOAARhTwAEYcoABGHMAARhzgAEYdAABGHTAARh1AAEYdUABGHWAARh1wAEYdkABGHbAARh3AAEYd0ABGHfAARh4AAEYlsABGJdAARiXwAEYmEABGJkAARiZQAEYmYABGJnAARiaAAEYmoABGJsAARibQAEYm4ABGJwAARicQAEYuwABGLuAARi8AAEYvIABGL1AARi9gAEYvcABGL4AARi+QAEYvsABGL9AARi/gAEYv8ABGMBAARjAgAEY0sABGNvAARjlgAEY7oABGO9AARjvwAEY8EABGPDAARjxQAEY8cABGPIAARjywAEY+QABGQBAARkAwAEZAUABGQHAARkCQAEZAsABGQNAARkDwAEZCwABGQvAARkMgAEZDUABGQ4AARkOwAEZD4ABGRBAARkQwAEZL4ABGTAAARkwwAEZMUABGTIAARkyQAEZMoABGTLAARkzAAEZM4ABGTQAARk0QAEZNIABGTUAARk1QAEZVAABGVSAARlVAAEZVYABGVZAARlWgAEZVsABGVcAARlXQAEZV8ABGVhAARlYgAEZWMABGVlAARlZgAEZeEABGXjAARl5QAEZecABGXqAARl6wAEZewABGXtAARl7gAEZfAABGXyAARl8wAEZfQABGX2AARl9wAEZnIABGZ0AARmdwAEZnkABGZ8AARmfQAEZn4ABGZ/AARmgAAEZoIABGaEAARmhQAEZoYABGaIAARmiQAEZwQABGcGAARnCAAEZwoABGcNAARnDgAEZw8ABGcQAARnEQAEZxMABGcVAARnFgAEZxcABGcZAARnGgAEZ5UABGeXAARnmQAEZ5sABGeeAARnnwAEZ6AABGehAARnogAEZ6QABGemAARnpwAEZ6gABGeqAARnqwAEaCYABGgoAARoKgAEaCwABGgvAARoMAAEaDEABGgyAARoMwAEaDUABGg3AARoOAAEaDkABGg7AARoPAAEaM8ABGjyAARpEgAEaTIABGk0AARpNgAEaTgABGk6AARpPQAEaT4ABGk/AARpQgAEaUMABGlFAARpRgAEaUgABGlLAARpTAAEaU0ABGlQAARpUQAEaVYABGlvAARpeAAEaXoABGl8AARphQAEaYgABGmLAARpjQAEadYABGn6AARqIQAEakUABGpIAARqSgAEakwABGpOAARqUAAEalIABGpTAARqVgAEam8ABGqQAARqkgAEapQABGqWAARqmAAEapoABGqcAARqngAEaqAABGrBAARqxAAEascABGrKAARqzQAEatAABGrTAARq1gAEatkABGrbAARrVgAEa1gABGtaAARrXAAEa18ABGtgAARrYQAEa2IABGtjAARrZQAEa2cABGtoAARraQAEa2sABGtsAARr5wAEa+kABGvrAARr7QAEa/AABGvxAARr8gAEa/MABGv0AARr9gAEa/gABGv5AARr+gAEa/wABGv9AARseAAEbHoABGx9AARsfwAEbIIABGyDAARshAAEbIUABGyGAARsiAAEbIoABGyLAARsjAAEbI4ABGyPAARsqAAEbKkABGyqAARsrAAEbScABG0pAARtKwAEbS0ABG0wAARtMQAEbTIABG0zAARtNAAEbTYABG04AARtOQAEbToABG08AARtPQAEbbgABG26AARtvAAEbb4ABG3BAARtwgAEbcMABG3EAARtxQAEbccABG3JAARtygAEbcsABG3NAARtzgAEbkkABG5LAARuTQAEbk8ABG5SAARuUwAEblQABG5VAARuVgAEblgABG5aAARuWwAEblwABG5eAARuXwAEbtoABG7cAARu3gAEbuAABG7jAARu5AAEbuUABG7mAARu5wAEbukABG7rAARu7AAEbu0ABG7vAARu8AAEb2sABG9tAARvbwAEb3EABG90AARvdQAEb3YABG93AARveAAEb3oABG98AARvfQAEb34ABG+AAARvgQAEb8oABG/uAARwFQAEcDkABHA8AARwPgAEcEAABHBCAARwRAAEcEYABHBHAARwSgAEcGMABHCAAARwggAEcIQABHCGAARwiAAEcIoABHCMAARwjgAEcKsABHCuAARwsQAEcLQABHC3AARwugAEcL0ABHDAAARwwgAEcT0ABHE/AARxQQAEcUMABHFGAARxRwAEcUgABHFJAARxSgAEcUwABHFOAARxTwAEcVAABHFSAARxUwAEcc4ABHHQAARx0gAEcdQABHHXAARx2AAEcdkABHHaAARx2wAEcd0ABHHfAARx4AAEceEABHHjAARx5AAEcl8ABHJhAARyYwAEcmUABHJoAARyaQAEcmoABHJrAARybAAEcm4ABHJwAARycQAEcnIABHJ0AARydQAEcvAABHLyAARy9QAEcvcABHL6AARy+wAEcvwABHL9AARy/gAEcwAABHMCAARzAwAEcwQABHMGAARzBwAEc4IABHOEAARzhgAEc4gABHOLAARzjAAEc40ABHOOAARzjwAEc5EABHOTAARzlAAEc5UABHOXAARzmAAEdBMABHQVAAR0FwAEdBkABHQcAAR0HQAEdB4ABHQfAAR0IAAEdCIABHQkAAR0JQAEdCYABHQoAAR0KQAEdKQABHSmAAR0qAAEdKoABHStAAR0rgAEdK8ABHSwAAR0sQAEdLMABHS1AAR0tgAEdLcABHS5AAR0ugAEdU0ABHVwAAR1kAAEdbAABHWyAAR1tAAEdbYABHW4AAR1uwAEdbwABHW9AAR1wAAEdcEABHXDAAR1xAAEdccABHXKAAR1ywAEdcwABHXPAAR10AAEddkABHXyAAR1+wAEdf0ABHYAAAR2CQAEdgwABHYPAAR2EQAEdloABHZ+AAR2pQAEdskABHbMAAR2zgAEdtAABHbSAAR21AAEdtYABHbXAAR22gAEdvMABHcUAAR3FgAEdxgABHcaAAR3HAAEdx4ABHcgAAR3IgAEdyQABHdFAAR3SAAEd0sABHdOAAR3UQAEd1QABHdXAAR3WgAEd10ABHdfAAR32gAEd9wABHfeAAR34AAEd+MABHfkAAR35QAEd+YABHfnAAR36QAEd+sABHfsAAR37QAEd+8ABHfwAAR4awAEeG0ABHhvAAR4cQAEeHQABHh1AAR4dgAEeHcABHh4AAR4egAEeHwABHh9AAR4fgAEeIAABHiBAAR4/AAEeP4ABHkBAAR5AwAEeQYABHkHAAR5CAAEeQkABHkKAAR5DAAEeQ4ABHkPAAR5EAAEeRIABHkTAAR5LAAEeS0ABHkuAAR5MAAEeasABHmtAAR5rwAEebEABHm0AAR5tQAEebYABHm3AAR5uAAEeboABHm8AAR5vQAEeb4ABHnAAAR5wQAEejwABHo+AAR6QAAEekIABHpFAAR6RgAEekcABHpIAAR6SQAEeksABHpNAAR6TgAEek8ABHpRAAR6UgAEes0ABHrPAAR60QAEetMABHrWAAR61wAEetgABHrZAAR62gAEetwABHreAAR63wAEeuAABHriAAR64wAEe14ABHtgAAR7YgAEe2QABHtnAAR7aAAEe2kABHtqAAR7awAEe20ABHtvAAR7cAAEe3EABHtzAAR7dAAEe+8ABHvxAAR78wAEe/UABHv4AAR7+QAEe/oABHv7AAR7/AAEe/4ABHwAAAR8AQAEfAIABHwEAAR8BQAEfE4ABHxyAAR8mQAEfL0ABHzAAAR8wwAEfMUABHzHAAR8yQAEfMsABHzMAAR8zwAEfOgABH0FAAR9CAAEfQsABH0OAAR9EQAEfRQABH0XAAR9GgAEfTcABH06AAR9PQAEfUAABH1DAAR9RgAEfUkABH1MAAR9TgAEfckABH3LAAR9zgAEfdAABH3TAAR91AAEfdUABH3WAAR91wAEfdkABH3cAAR93QAEfd4ABH3gAAR94QAEflwABH5eAAR+YQAEfmMABH5mAAR+ZwAEfmgABH5pAAR+agAEfmwABH5vAAR+cAAEfnEABH5zAAR+dAAEfu8ABH7xAAR+9AAEfvYABH75AAR++gAEfvsABH78AAR+/QAEfv8ABH8CAAR/AwAEfwQABH8GAAR/BwAEf4IABH+EAAR/hwAEf4kABH+MAAR/jQAEf44ABH+PAAR/kAAEf5IABH+VAAR/lgAEf5cABH+ZAAR/mgAEgB0ABIBBAASAZQAEgIgABICvAASAzwAEgPYABIEdAASBPQAEgWEABIGFAASBhwAEgYoABIGMAASBjgAEgZAABIGTAASBlgAEgZgABIGaAASBnQAEgZ8ABIGhAASBpAAEgacABIGoAASBrQAEgcYABIHLAASBzQAEgdIABIHVAASB1wAEgiAABIJEAASCawAEgo8ABIKSAASClAAEgpYABIKYAASCmgAEgpwABIKdAASCoAAEgrkABILeAASC4AAEguIABILkAASC5gAEgugABILqAASC7AAEgu4ABILwAASDFQAEgxgABIMbAASDHgAEgyEABIMkAASDJwAEgyoABIMtAASDMAAEgzIABIOtAASDrwAEg7IABIO0AASDtwAEg7gABIO5AASDugAEg7sABIO9AASDvwAEg8AABIPBAASDwwAEg8QABIPVAASD1gAEg9gABIRTAASEVQAEhFcABIRZAASEXAAEhF0ABIReAASEXwAEhGAABIRiAASEZAAEhGUABIRmAASEaAAEhGkABITkAASE5gAEhOkABITrAASE7gAEhO8ABITwAASE8QAEhPIABIT0AASE9gAEhPcABIT4AASE+gAEhPsABIUMAASFDQAEhQ8ABIWKAASFjAAEhY4ABIWQAASFkwAEhZQABIWVAASFlgAEhZcABIWZAASFmwAEhZwABIWdAASFnwAEhaAABIYbAASGHQAEhiAABIYiAASGJQAEhiYABIYnAASGKAAEhikABIYrAASGLQAEhi4ABIYvAASGMQAEhjIABIZDAASGRAAEhkYABIbBAASGwwAEhsUABIbHAASGygAEhssABIbMAASGzQAEhs4ABIbQAASG0gAEhtMABIbUAASG1gAEhtcABIdSAASHVAAEh1cABIdZAASHXAAEh10ABIdeAASHXwAEh2AABIdiAASHZAAEh2UABIdmAASHaAAEh2kABIeCAASHgwAEh4QABIeGAASIAQAEiAMABIgFAASIBwAEiAoABIgLAASIDAAEiA0ABIgOAASIEAAEiBIABIgTAASIFAAEiBYABIgXAASIkgAEiJQABIiXAASImQAEiJwABIidAASIngAEiJ8ABIigAASIogAEiKQABIilAASIpgAEiKgABIipAASIwAAEiNkABIjqAASI7QAEiPAABIjzAASI9gAEiQcABIkKAASJDQAEiRAABIkTAASJFQAEiScABIk2AASJSwAEiWIABIn1AASKGAAEijgABIpYAASKWgAEilwABIpeAASKYAAEimMABIpkAASKZQAEimgABIppAASKawAEimwABIpvAASKcgAEinMABIp0AASKdwAEingABIp9AASKlgAEip8ABIqhAASKpAAEiq0ABIqwAASKswAEirUABIr+AASLIgAEi0kABIttAASLcAAEi3IABIt0AASLdgAEi3gABIt6AASLewAEi34ABIuXAASLuAAEi7oABIu8AASLvgAEi8AABIvCAASLxAAEi8YABIvIAASL6QAEi+wABIvvAASL8gAEi/UABIv4AASL+wAEi/4ABIwBAASMAwAEjH4ABIyAAASMggAEjIQABIyHAASMiAAEjIkABIyKAASMiwAEjI0ABIyPAASMkAAEjJEABIyTAASMlAAEjQ8ABI0RAASNEwAEjRUABI0YAASNGQAEjRoABI0bAASNHAAEjR4ABI0gAASNIQAEjSIABI0kAASNJQAEjaAABI2iAASNpQAEjacABI2qAASNqwAEjawABI2tAASNrgAEjbAABI2yAASNswAEjbQABI22AASNtwAEjdAABI3RAASN0gAEjdQABI5PAASOUQAEjlMABI5VAASOWAAEjlkABI5aAASOWwAEjlwABI5eAASOYAAEjmEABI5iAASOZAAEjmUABI7gAASO4gAEjuQABI7mAASO6QAEjuoABI7rAASO7AAEju0ABI7vAASO8QAEjvIABI7zAASO9QAEjvYABI9xAASPcwAEj3UABI93AASPegAEj3sABI98AASPfQAEj34ABI+AAASPggAEj4MABI+EAASPhgAEj4cABJACAASQBAAEkAYABJAIAASQCwAEkAwABJANAASQDgAEkA8ABJARAASQEwAEkBQABJAVAASQFwAEkBgABJCTAASQlQAEkJcABJCZAASQnAAEkJ0ABJCeAASQnwAEkKAABJCiAASQpAAEkKUABJCmAASQqAAEkKkABJDyAASRFgAEkT0ABJFhAASRZAAEkWcABJFpAASRawAEkW0ABJFvAASRcAAEkXMABJGMAASRqQAEkawABJGvAASRsgAEkbUABJG4AASRuwAEkb4ABJHbAASR3gAEkeEABJHkAASR5wAEkeoABJHtAASR8AAEkfIABJJtAASSbwAEknIABJJ0AASSdwAEkngABJJ5AASSegAEknsABJJ9AASSgAAEkoEABJKCAASShAAEkoUABJMAAASTAgAEkwUABJMHAASTCgAEkwsABJMMAASTDQAEkw4ABJMQAASTEwAEkxQABJMVAASTFwAEkxgABJOTAASTlQAEk5gABJOaAASTnQAEk54ABJOfAASToAAEk6EABJOjAASTpgAEk6cABJOoAASTqgAEk6sABJQmAASUKAAElCsABJQtAASUMAAElDEABJQyAASUMwAElDQABJQ2AASUOQAElDoABJQ7AASUPQAElD4ABJTBAASU5QAElQkABJUsAASVUwAElXMABJWaAASVwQAEleEABJYFAASWKQAElisABJYuAASWMAAEljIABJY0AASWNwAEljoABJY8AASWPgAElkEABJZDAASWRQAElkgABJZLAASWTAAEllEABJZqAASWbwAElnEABJZ2AASWeQAElnsABJbEAASW6AAElw8ABJczAASXNgAElzgABJc6AASXPAAElz4ABJdAAASXQQAEl0QABJddAASXggAEl4QABJeGAASXiAAEl4oABJeMAASXjgAEl5AABJeSAASXlAAEl7kABJe8AASXvwAEl8IABJfFAASXyAAEl8sABJfOAASX0QAEl9QABJfWAASYUQAEmFMABJhWAASYWAAEmFsABJhcAASYXQAEmF4ABJhfAASYYQAEmGMABJhkAASYZQAEmGcABJhoAASYeQAEmHoABJh8AASY9wAEmPkABJj7AASY/QAEmQAABJkBAASZAgAEmQMABJkEAASZBgAEmQgABJkJAASZCgAEmQwABJkNAASZiAAEmYoABJmNAASZjwAEmZIABJmTAASZlAAEmZUABJmWAASZmAAEmZoABJmbAASZnAAEmZ4ABJmfAASZsAAEmbUABJm4AASZugAEmcsABJncAASZ3wAEmeIABJnlAASZ6AAEmeoABJoFAASaEQAEmh0ABJoqAASapQAEmqcABJqpAASaqwAEmq4ABJqvAASasAAEmrEABJqyAASatAAEmrYABJq3AASauAAEmroABJq7AASbNgAEmzgABJs7AASbPQAEm0AABJtBAASbQgAEm0MABJtEAASbRgAEm0gABJtJAASbSgAEm0wABJtNAASbXgAEm18ABJthAASb3AAEm94ABJvgAASb4gAEm+UABJvmAASb5wAEm+gABJvpAASb6wAEm+0ABJvuAASb7wAEm/EABJvyAAScbQAEnG8ABJxyAAScdAAEnHcABJx4AASceQAEnHoABJx7AAScfQAEnH8ABJyAAAScgQAEnIMABJyEAAScnQAEnJ4ABJyfAAScoQAEnRwABJ0eAASdIAAEnSIABJ0lAASdJgAEnScABJ0oAASdKQAEnSsABJ0tAASdLgAEnS8ABJ0xAASdMgAEna0ABJ2vAASdsgAEnbQABJ23AASduAAEnbkABJ26AASduwAEnb0ABJ2/AASdwAAEncEABJ3DAASdxAAEndMABJ3sAASePwAEnkIABJ5FAASeSAAEnksABJ5OAASeUQAEnlQABJ5XAASeWgAEnl0ABJ5gAASeYwAEnmYABJ5pAASebAAEnm8ABJ5yAASedQAEnngABJ57AASezgAEntEABJ7UAASe1wAEntoABJ7dAASe4AAEnuMABJ7mAASe6QAEnuwABJ7vAASe8gAEnvUABJ74AASe+wAEnv4ABJ8BAASfBAAEnwcABJ8KAASfDAAEnx4ABJ8zAASfOgAEn04ABJ9vAASfgwAEn5cABJ+2AASfwwAEn9UABJ/hAASgDwAEoBwABKA3AASgUgAEoF8ABKByAASgfgAEoJQABKCuAAShQQAEoWQABKGEAAShpAAEoaYABKGoAAShqgAEoawABKGvAAShsAAEobEABKG0AAShtQAEobcABKG4AAShuwAEob4ABKG/AAShwAAEocMABKHEAAShyQAEoeIABKHrAASh7QAEofAABKH5AASh/AAEof8ABKIBAASiSgAEom4ABKKVAASiuQAEorwABKK+AASiwAAEosIABKLEAASixgAEoscABKLKAASi4wAEowQABKMGAASjCAAEowoABKMMAASjDgAEoxAABKMSAASjFAAEozUABKM4AASjOwAEoz4ABKNBAASjRAAEo0cABKNKAASjTQAEo08ABKPKAASjzAAEo84ABKPQAASj0wAEo9QABKPVAASj1gAEo9cABKPZAASj2wAEo9wABKPdAASj3wAEo+AABKRbAASkXQAEpF8ABKRhAASkZAAEpGUABKRmAASkZwAEpGgABKRqAASkbAAEpG0ABKRuAASkcAAEpHEABKTsAASk7gAEpPEABKTzAASk9gAEpPcABKT4AASk+QAEpPoABKT8AASk/gAEpP8ABKUAAASlAgAEpQMABKUcAASlHQAEpR4ABKUgAASlmwAEpZ0ABKWfAASloQAEpaQABKWlAASlpgAEpacABKWoAASlqgAEpawABKWtAASlrgAEpbAABKWxAASmLAAEpi4ABKYwAASmMgAEpjUABKY2AASmNwAEpjgABKY5AASmOwAEpj0ABKY+AASmPwAEpkEABKZCAASmvQAEpr8ABKbBAASmwwAEpsYABKbHAASmyAAEpskABKbKAASmzAAEps4ABKbPAASm0AAEptIABKbTAASnTgAEp1AABKdSAASnVAAEp1cABKdYAASnWQAEp1oABKdbAASnXQAEp18ABKdgAASnYQAEp2MABKdkAASn3wAEp+EABKfjAASn5QAEp+gABKfpAASn6gAEp+sABKfsAASn7gAEp/AABKfxAASn8gAEp/QABKf1AASoPgAEqGIABKiJAASorQAEqLAABKizAASotQAEqLcABKi5AASouwAEqLwABKi/AASo2AAEqPUABKj4AASo+wAEqP4ABKkBAASpBAAEqQcABKkKAASpJwAEqSoABKktAASpMAAEqTMABKk2AASpOQAEqTwABKk+AASpuQAEqbsABKm+AASpwAAEqcMABKnEAASpxQAEqcYABKnHAASpyQAEqcwABKnNAASpzgAEqdAABKnRAASqTAAEqk4ABKpRAASqUwAEqlYABKpXAASqWAAEqlkABKpaAASqXAAEql8ABKpgAASqYQAEqmMABKpkAASq3wAEquEABKrkAASq5gAEqukABKrqAASq6wAEquwABKrtAASq7wAEqvIABKrzAASq9AAEqvYABKr3AASrcgAEq3QABKt3AASreQAEq3wABKt9AASrfgAEq38ABKuAAASrggAEq4UABKuGAASrhwAEq4kABKuKAASsBQAErAcABKwJAASsCwAErA4ABKwPAASsEAAErBEABKwSAASsFAAErBcABKwYAASsGQAErBsABKwcAASslwAErJkABKybAASsnQAErKAABKyhAASsogAErKMABKykAASspgAErKkABKyqAASsqwAErK0ABKyuAAStKQAErSsABK0uAAStMAAErTMABK00AAStNQAErTYABK03AAStOQAErTwABK09AAStPgAErUAABK1BAASt1AAErfcABK4XAASuNwAErjkABK47AASuPQAErj8ABK5CAASuQwAErkQABK5HAASuSAAErkoABK5LAASuTQAErlAABK5RAASuUgAErlUABK5WAASuWwAErnQABK59AASufwAEroEABK6KAASujQAErpAABK6SAASu2wAErv8ABK8mAASvSgAEr00ABK9PAASvUQAEr1MABK9VAASvVwAEr1gABK9bAASvdAAEr5UABK+XAASvmQAEr5sABK+dAASvnwAEr6EABK+jAASvpQAEr8YABK/JAASvzAAEr88ABK/SAASv1QAEr9gABK/bAASv3gAEr+AABLBbAASwXQAEsF8ABLBhAASwZAAEsGUABLBmAASwZwAEsGgABLBqAASwbAAEsG0ABLBuAASwcAAEsHEABLDsAASw7gAEsPAABLDyAASw9QAEsPYABLD3AASw+AAEsPkABLD7AASw/QAEsP4ABLD/AASxAQAEsQIABLF9AASxfwAEsYIABLGEAASxhwAEsYgABLGJAASxigAEsYsABLGNAASxjwAEsZAABLGRAASxkwAEsZQABLGtAASxrgAEsa8ABLGxAASyLAAEsi4ABLIwAASyMgAEsjUABLI2AASyNwAEsjgABLI5AASyOwAEsj0ABLI+AASyPwAEskEABLJCAASyvQAEsr8ABLLBAASywwAEssYABLLHAASyyAAEsskABLLKAASyzAAEss4ABLLPAASy0AAEstIABLLTAASzTgAEs1AABLNSAASzVAAEs1cABLNYAASzWQAEs1oABLNbAASzXQAEs18ABLNgAASzYQAEs2MABLNkAASz3wAEs+EABLPjAASz5QAEs+gABLPpAASz6gAEs+sABLPsAASz7gAEs/AABLPxAASz8gAEs/QABLP1AAS0cAAEtHIABLR0AAS0dgAEtHkABLR6AAS0ewAEtHwABLR9AAS0fwAEtIEABLSCAAS0gwAEtIUABLSGAAS0zwAEtPMABLUaAAS1PgAEtUEABLVDAAS1RQAEtUcABLVJAAS1SwAEtUwABLVPAAS1aAAEtYUABLWHAAS1iQAEtYsABLWNAAS1jwAEtZEABLWTAAS1sAAEtbMABLW2AAS1uQAEtbwABLW/AAS1wgAEtcUABLXHAAS2QgAEtkQABLZGAAS2SAAEtksABLZMAAS2TQAEtk4ABLZPAAS2UQAEtlMABLZUAAS2VQAEtlcABLZYAAS20wAEttUABLbXAAS22QAEttwABLbdAAS23gAEtt8ABLbgAAS24gAEtuQABLblAAS25gAEtugABLbpAAS3ZAAEt2YABLdoAAS3agAEt20ABLduAAS3bwAEt3AABLdxAAS3cwAEt3UABLd2AAS3dwAEt3kABLd6AAS39QAEt/cABLf6AAS3/AAEt/8ABLgAAAS4AQAEuAIABLgDAAS4BQAEuAcABLgIAAS4CQAEuAsABLgMAAS4hwAEuIkABLiLAAS4jQAEuJAABLiRAAS4kgAEuJMABLiUAAS4lgAEuJgABLiZAAS4mgAEuJwABLidAAS5GAAEuRoABLkcAAS5HgAEuSEABLkiAAS5IwAEuSQABLklAAS5JwAEuSkABLkqAAS5KwAEuS0ABLkuAAS5qQAEuasABLmtAAS5rwAEubIABLmzAAS5tAAEubUABLm2AAS5uAAEuboABLm7AAS5vAAEub4ABLm/AAS6UgAEunUABLqVAAS6tQAEurcABLq5AAS6uwAEur0ABLrAAAS6wQAEusIABLrFAAS6xgAEusgABLrJAAS6ywAEus4ABLrPAAS60AAEutMABLrUAAS62QAEuvIABLr7AAS6/QAEuv8ABLsIAAS7CwAEuw4ABLsQAAS7WQAEu30ABLukAAS7yAAEu8sABLvNAAS7zwAEu9EABLvTAAS71QAEu9YABLvZAAS78gAEvBMABLwVAAS8FwAEvBkABLwbAAS8HQAEvB8ABLwhAAS8IwAEvEQABLxHAAS8SgAEvE0ABLxQAAS8UwAEvFYABLxZAAS8XAAEvF4ABLzZAAS82wAEvN0ABLzfAAS84gAEvOMABLzkAAS85QAEvOYABLzoAAS86gAEvOsABLzsAAS87gAEvO8ABL1qAAS9bAAEvW4ABL1wAAS9cwAEvXQABL11AAS9dgAEvXcABL15AAS9ewAEvXwABL19AAS9fwAEvYAABL37AAS9/QAEvgAABL4CAAS+BQAEvgYABL4HAAS+CAAEvgkABL4LAAS+DQAEvg4ABL4PAAS+EQAEvhIABL4rAAS+LAAEvi0ABL4vAAS+qgAEvqwABL6uAAS+sAAEvrMABL60AAS+tQAEvrYABL63AAS+uQAEvrsABL68AAS+vQAEvr8ABL7AAAS/OwAEvz0ABL8/AAS/QQAEv0QABL9FAAS/RgAEv0cABL9IAAS/SgAEv0wABL9NAAS/TgAEv1AABL9RAAS/zAAEv84ABL/QAAS/0gAEv9UABL/WAAS/1wAEv9gABL/ZAAS/2wAEv90ABL/eAAS/3wAEv+EABL/iAATAXQAEwF8ABMBhAATAYwAEwGYABMBnAATAaAAEwGkABMBqAATAbAAEwG4ABMBvAATAcAAEwHIABMBzAATA7gAEwPAABMDyAATA9AAEwPcABMD4AATA+QAEwPoABMD7AATA/QAEwP8ABMEAAATBAQAEwQMABMEEAATBTQAEwXEABMGYAATBvAAEwb8ABMHBAATBwwAEwcUABMHHAATByQAEwcoABMHNAATB5gAEwgMABMIFAATCBwAEwgkABMILAATCDQAEwg8ABMIRAATCLgAEwjEABMI0AATCNwAEwjoABMI9AATCQAAEwkMABMJFAATCwAAEwsIABMLFAATCxwAEwsoABMLLAATCzAAEws0ABMLOAATC0AAEwtIABMLTAATC1AAEwtYABMLXAATC2wAEw1YABMNYAATDWgAEw1wABMNfAATDYAAEw2EABMNiAATDYwAEw2UABMNnAATDaAAEw2kABMNrAATDbAAEw+cABMPpAATD6wAEw+0ABMPwAATD8QAEw/IABMPzAATD9AAEw/YABMP4AATD+QAEw/oABMP8AATD/QAExHgABMR6AATEfQAExH8ABMSCAATEgwAExIQABMSFAATEhgAExIgABMSKAATEiwAExIwABMSOAATEjwAExQoABMUMAATFDgAExRAABMUTAATFFAAExRUABMUWAATFFwAExRkABMUbAATFHAAExR0ABMUfAATFIAAExZsABMWdAATFnwAExaEABMWkAATFpQAExaYABMWnAATFqAAExaoABMWsAATFrQAExa4ABMWwAATFsQAExiwABMYuAATGMAAExjIABMY1AATGNgAExjcABMY4AATGOQAExjsABMY9AATGPgAExj8ABMZBAATGQgAExtUABMb4AATHGAAExzgABMc6AATHPAAExz4ABMdAAATHQwAEx0QABMdFAATHSAAEx0kABMdLAATHTAAEx08ABMdSAATHUwAEx1QABMdXAATHWAAEx2EABMd6AATHgwAEx4UABMeIAATHkQAEx5QABMeXAATHmQAEx+IABMgGAATILQAEyFEABMhUAATIVgAEyFgABMhaAATIXAAEyF4ABMhfAATIYgAEyHsABMicAATIngAEyKAABMiiAATIpAAEyKYABMioAATIqgAEyKwABMjNAATI0AAEyNMABMjWAATI2QAEyNwABMjfAATI4gAEyOUABMjnAATJYgAEyWQABMlmAATJaAAEyWsABMlsAATJbQAEyW4ABMlvAATJcQAEyXMABMl0AATJdQAEyXcABMl4AATJ8wAEyfUABMn3AATJ+QAEyfwABMn9AATJ/gAEyf8ABMoAAATKAgAEygQABMoFAATKBgAEyggABMoJAATKhAAEyoYABMqJAATKiwAEyo4ABMqPAATKkAAEypEABMqSAATKlAAEypYABMqXAATKmAAEypoABMqbAATKtAAEyrUABMq2AATKuAAEyzMABMs1AATLNwAEyzkABMs8AATLPQAEyz4ABMs/AATLQAAEy0IABMtEAATLRQAEy0YABMtIAATLSQAEy8QABMvGAATLyAAEy8oABMvNAATLzgAEy88ABMvQAATL0QAEy9MABMvVAATL1gAEy9cABMvZAATL2gAEzFUABMxXAATMWQAEzFsABMxeAATMXwAEzGAABMxhAATMYgAEzGQABMxmAATMZwAEzGgABMxqAATMawAEzOYABMzoAATM6gAEzOwABMzvAATM8AAEzPEABMzyAATM8wAEzPUABMz3AATM+AAEzPkABMz7AATM/AAEzXcABM15AATNewAEzX0ABM2AAATNgQAEzYIABM2DAATNhAAEzYYABM2IAATNiQAEzYoABM2MAATNjQAEzdYABM36AATOIQAEzkUABM5IAATOSwAEzk0ABM5PAATOUQAEzlMABM5UAATOVwAEznAABM6NAATOkAAEzpMABM6WAATOmQAEzpwABM6fAATOogAEzr8ABM7CAATOxQAEzsgABM7LAATOzgAEztEABM7UAATO1gAEz1EABM9TAATPVgAEz1gABM9bAATPXAAEz10ABM9eAATPXwAEz2EABM9kAATPZQAEz2YABM9oAATPaQAEz+QABM/mAATP6QAEz+sABM/uAATP7wAEz/AABM/xAATP8gAEz/QABM/3AATP+AAEz/kABM/7AATP/AAE0HcABNB5AATQfAAE0H4ABNCBAATQggAE0IMABNCEAATQhQAE0IcABNCKAATQiwAE0IwABNCOAATQjwAE0QoABNEMAATRDwAE0REABNEUAATRFQAE0RYABNEXAATRGAAE0RoABNEdAATRHgAE0R8ABNEhAATRIgAE0aUABNHJAATR7QAE0hAABNI3AATSVwAE0n4ABNKlAATSxQAE0ukABNMNAATTDwAE0xIABNMUAATTFgAE0xgABNMbAATTHgAE0yAABNMiAATTJQAE0ycABNMpAATTLAAE0y8ABNMwAATTNQAE004ABNNTAATTVQAE01oABNNdAATTXwAE06gABNPMAATT8wAE1BcABNQaAATUHAAE1B4ABNQgAATUIgAE1CQABNQlAATUKAAE1EEABNRmAATUaAAE1GoABNRsAATUbgAE1HAABNRyAATUdAAE1HYABNR4AATUnQAE1KAABNSjAATUpgAE1KkABNSsAATUrwAE1LIABNS1AATUuAAE1LoABNU1AATVNwAE1ToABNU8AATVPwAE1UAABNVBAATVQgAE1UMABNVFAATVRwAE1UgABNVJAATVSwAE1UwABNVdAATVXgAE1WAABNXbAATV3QAE1d8ABNXhAATV5AAE1eUABNXmAATV5wAE1egABNXqAATV7AAE1e0ABNXuAATV8AAE1fEABNZsAATWbgAE1nEABNZzAATWdgAE1ncABNZ4AATWeQAE1noABNZ8AATWfgAE1n8ABNaAAATWggAE1oMABNaUAATWlQAE1pcABNcSAATXFAAE1xYABNcYAATXGwAE1xwABNcdAATXHgAE1x8ABNchAATXIwAE1yQABNclAATXJwAE1ygABNejAATXpQAE16gABNeqAATXrQAE164ABNevAATXsAAE17EABNezAATXtQAE17YABNe3AATXuQAE17oABNfLAATXzAAE184ABNhJAATYSwAE2E0ABNhPAATYUgAE2FMABNhUAATYVQAE2FYABNhYAATYWgAE2FsABNhcAATYXgAE2F8ABNjaAATY3AAE2N8ABNjhAATY5AAE2OUABNjmAATY5wAE2OgABNjqAATY7AAE2O0ABNjuAATY8AAE2PEABNkKAATZCwAE2QwABNkOAATZiQAE2YsABNmNAATZjwAE2ZIABNmTAATZlAAE2ZUABNmWAATZmAAE2ZoABNmbAATZnAAE2Z4ABNmfAATaGgAE2hwABNofAATaIQAE2iQABNolAATaJgAE2icABNooAATaKgAE2iwABNotAATaLgAE2jAABNoxAATaSQAE2mIABNp/AATaggAE2oUABNqIAATaiwAE2o4ABNqRAATalAAE2rEABNq0AATatwAE2roABNq9AATawAAE2sMABNrGAATayAAE2uMABNsOAATbJAAE2z0ABNtmAATbfgAE24wABNwfAATcQgAE3GIABNyCAATchAAE3IYABNyIAATcigAE3I0ABNyOAATcjwAE3JIABNyTAATclQAE3JYABNyYAATcmwAE3JwABNydAATcoAAE3KEABNyqAATcwwAE3MwABNzOAATc0AAE3NkABNzcAATc3wAE3OEABN0qAATdTgAE3XUABN2ZAATdnAAE3Z4ABN2gAATdogAE3aQABN2mAATdpwAE3aoABN3DAATd5AAE3eYABN3oAATd6gAE3ewABN3uAATd8AAE3fIABN30AATeFQAE3hgABN4bAATeHgAE3iEABN4kAATeJwAE3ioABN4tAATeLwAE3qoABN6sAATergAE3rAABN6zAATetAAE3rUABN62AATetwAE3rkABN67AATevAAE3r0ABN6/AATewAAE3zsABN89AATfPwAE30EABN9EAATfRQAE30YABN9HAATfSAAE30oABN9MAATfTQAE304ABN9QAATfUQAE38wABN/OAATf0QAE39MABN/WAATf1wAE39gABN/ZAATf2gAE39wABN/eAATf3wAE3+AABN/iAATf4wAE3/wABN/9AATf/gAE4AAABOB7AATgfQAE4H8ABOCBAATghAAE4IUABOCGAATghwAE4IgABOCKAATgjAAE4I0ABOCOAATgkAAE4JEABOEMAAThDgAE4RAABOESAAThFQAE4RYABOEXAAThGAAE4RkABOEbAAThHQAE4R4ABOEfAAThIQAE4SIABOGdAAThnwAE4aEABOGjAAThpgAE4acABOGoAAThqQAE4aoABOGsAAThrgAE4a8ABOGwAAThsgAE4bMABOIuAATiMAAE4jIABOI0AATiNwAE4jgABOI5AATiOgAE4jsABOI9AATiPwAE4kAABOJBAATiQwAE4kQABOK/AATiwQAE4sMABOLFAATiyAAE4skABOLKAATiywAE4swABOLOAATi0AAE4tEABOLSAATi1AAE4tUABOMeAATjQgAE42kABOONAATjkAAE45IABOOUAATjlgAE45gABOOaAATjmwAE454ABOO3AATj1AAE49YABOPYAATj2gAE49wABOPeAATj4AAE4+IABOP/AATkAgAE5AUABOQIAATkCwAE5A4ABOQRAATkFAAE5BYABOSRAATkkwAE5JUABOSXAATkmgAE5JsABOScAATknQAE5J4ABOSgAATkogAE5KMABOSkAATkpgAE5KcABOUiAATlJAAE5SYABOUoAATlKwAE5SwABOUtAATlLgAE5S8ABOUxAATlMwAE5TQABOU1AATlNwAE5TgABOWzAATltQAE5bcABOW5AATlvAAE5b0ABOW+AATlvwAE5cAABOXCAATlxAAE5cUABOXGAATlyAAE5ckABOZEAATmRgAE5kkABOZLAATmTgAE5k8ABOZQAATmUQAE5lIABOZUAATmVgAE5lcABOZYAATmWgAE5lsABObWAATm2AAE5toABObcAATm3wAE5uAABObhAATm4gAE5uMABOblAATm5wAE5ugABObpAATm6wAE5uwABOdnAATnaQAE52sABOdtAATncAAE53EABOdyAATncwAE53QABOd2AATneAAE53kABOd6AATnfAAE530ABOf4AATn+gAE5/wABOf+AAToAQAE6AIABOgDAAToBAAE6AUABOgHAAToCQAE6AoABOgLAAToDQAE6A4ABOihAAToxAAE6OQABOkEAATpBgAE6QgABOkKAATpDAAE6Q8ABOkQAATpEQAE6RQABOkVAATpFwAE6RgABOkbAATpHgAE6R8ABOkgAATpIwAE6SQABOkpAATpQgAE6UsABOlNAATpUAAE6VkABOlcAATpXwAE6WEABOmqAATpzgAE6fUABOoZAATqHAAE6h4ABOogAATqIgAE6iQABOomAATqJwAE6ioABOpDAATqZAAE6mYABOpoAATqagAE6mwABOpuAATqcAAE6nIABOp0AATqlQAE6pgABOqbAATqngAE6qEABOqkAATqpwAE6qoABOqtAATqrwAE6yoABOssAATrLgAE6zAABOszAATrNAAE6zUABOs2AATrNwAE6zkABOs7AATrPAAE6z0ABOs/AATrQAAE67sABOu9AATrvwAE68EABOvEAATrxQAE68YABOvHAATryAAE68oABOvMAATrzQAE684ABOvQAATr0QAE7EwABOxOAATsUQAE7FMABOxWAATsVwAE7FgABOxZAATsWgAE7FwABOxeAATsXwAE7GAABOxiAATsYwAE7HwABOx9AATsfgAE7IAABOz7AATs/QAE7P8ABO0BAATtBAAE7QUABO0GAATtBwAE7QgABO0KAATtDAAE7Q0ABO0OAATtEAAE7REABO2MAATtjgAE7ZAABO2SAATtlQAE7ZYABO2XAATtmAAE7ZkABO2bAATtnQAE7Z4ABO2fAATtoQAE7aIABO4dAATuHwAE7iEABO4jAATuJgAE7icABO4oAATuKQAE7ioABO4sAATuLgAE7i8ABO4wAATuMgAE7jMABO6uAATusAAE7rIABO60AATutwAE7rgABO65AATuugAE7rsABO69AATuvwAE7sAABO7BAATuwwAE7sQABO8/AATvQQAE70MABO9FAATvSAAE70kABO9KAATvSwAE70wABO9OAATvUAAE71EABO9SAATvVAAE71UABO+eAATvwgAE7+kABPANAATwEAAE8BMABPAVAATwFwAE8BkABPAbAATwHAAE8B8ABPA4AATwVQAE8FgABPBbAATwXgAE8GEABPBkAATwZwAE8GoABPCHAATwigAE8I0ABPCQAATwkwAE8JYABPCZAATwnAAE8J4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ABQJ2AAUCeAAFAoEABQKEAAUChwAFAokABQLSAAUC9gAFAx0ABQNBAAUDRAAFA0YABQNIAAUDSgAFA0wABQNOAAUDTwAFA1IABQNrAAUDjAAFA44ABQOQAAUDkgAFA5QABQOWAAUDmAAFA5oABQOcAAUDvQAFA8AABQPDAAUDxgAFA8kABQPMAAUDzwAFA9IABQPVAAUD1wAFBFIABQRUAAUEVgAFBFgABQRbAAUEXAAFBF0ABQReAAUEXwAFBGEABQRjAAUEZAAFBGUABQRnAAUEaAAFBOMABQTlAAUE5wAFBOkABQTsAAUE7QAFBO4ABQTvAAUE8AAFBPIABQT0AAUE9QAFBPYABQT4AAUE+QAFBXQABQV2AAUFeQAFBXsABQV+AAUFfwAFBYAABQWBAAUFggAFBYQABQWGAAUFhwAFBYgABQWKAAUFiwAFBaQABQWlAAUFpgAFBagABQYjAAUGJQAFBicABQYpAAUGLAAFBi0ABQYuAAUGLwAFBjAABQYyAAUGNAAFBjUABQY2AAUGOAAFBjkABQa0AAUGtgAFBrgABQa6AAUGvQAFBr4ABQa/AAUGwAAFBsEABQbDAAUGxQAFBsYABQbHAAUGyQAFBsoABQdFAAUHRwAFB0kABQdLAAUHTgAFB08ABQdQAAUHUQAFB1IABQdUAAUHVgAFB1cABQdYAAUHWgAFB1sABQfWAAUH2AAFB9oABQfcAAUH3wAFB+AABQfhAAUH4gAFB+MABQflAAUH5wAFB+gABQfpAAUH6wAFB+wABQhnAAUIaQAFCGsABQhtAAUIcAAFCHEABQhyAAUIcwAFCHQABQh2AAUIeAAFCHkABQh6AAUIfAAFCH0ABQjGAAUI6gAFCREABQk1AAUJOAAFCToABQk8AAUJPgAFCUAABQlCAAUJQwAFCUYABQlfAAUJfAAFCX4ABQmAAAUJggAFCYQABQmGAAUJiAAFCYoABQmnAAUJqgAFCa0ABQmwAAUJswAFCbYABQm5AAUJvAAFCb4ABQo5AAUKOwAFCj0ABQo/AAUKQgAFCkMABQpEAAUKRQAFCkYABQpIAAUKSgAFCksABQpMAAUKTgAFCk8ABQrKAAUKzAAFCs4ABQrQAAUK0wAFCtQABQrVAAUK1gAFCtcABQrZAAUK2wAFCtwABQrdAAUK3wAFCuAABQtbAAULXQAFC18ABQthAAULZAAFC2UABQtmAAULZwAFC2gABQtqAAULbAAFC20ABQtuAAULcAAFC3EABQvsAAUL7gAFC/EABQvzAAUL9gAFC/cABQv4AAUL+QAFC/oABQv8AAUL/gAFC/8ABQwAAAUMAgAFDAMABQx+AAUMgAAFDIIABQyEAAUMhwAFDIgABQyJAAUMigAFDIsABQyNAAUMjwAFDJAABQyRAAUMkwAFDJQABQ0PAAUNEQAFDRMABQ0VAAUNGAAFDRkABQ0aAAUNGwAFDRwABQ0eAAUNIAAFDSEABQ0iAAUNJAAFDSUABQ2gAAUNogAFDaQABQ2mAAUNqQAFDaoABQ2rAAUNrAAFDa0ABQ2vAAUNsQAFDbIABQ2zAAUNtQAFDbYABQ5JAAUObAAFDowABQ6sAAUOrgAFDrAABQ6yAAUOtAAFDrcABQ64AAUOuQAFDrwABQ69AAUOvwAFDsAABQ7CAAUOxQAFDsYABQ7HAAUOygAFDssABQ7QAAUO6QAFDvIABQ70AAUO9gAFDv8ABQ8CAAUPBQAFDwcABQ9QAAUPdAAFD5sABQ+/AAUPwgAFD8QABQ/GAAUPyAAFD8oABQ/MAAUPzQAFD9AABQ/pAAUQCgAFEAwABRAOAAUQEAAFEBIABRAUAAUQFgAFEBgABRAaAAUQOwAFED4ABRBBAAUQRAAFEEcABRBKAAUQTQAFEFAABRBTAAUQVQAFENAABRDSAAUQ1AAFENYABRDZAAUQ2gAFENsABRDcAAUQ3QAFEN8ABRDhAAUQ4gAFEOMABRDlAAUQ5gAFEWEABRFjAAURZQAFEWcABRFqAAURawAFEWwABRFtAAURbgAFEXAABRFyAAURcwAFEXQABRF2AAURdwAFEfIABRH0AAUR9wAFEfkABRH8AAUR/QAFEf4ABRH/AAUSAAAFEgIABRIEAAUSBQAFEgYABRIIAAUSCQAFEiIABRIjAAUSJAAFEiYABRKhAAUSowAFEqUABRKnAAUSqgAFEqsABRKsAAUSrQAFEq4ABRKwAAUSsgAFErMABRK0AAUStgAFErcABRMyAAUTNAAFEzYABRM4AAUTOwAFEzwABRM9AAUTPgAFEz8ABRNBAAUTQwAFE0QABRNFAAUTRwAFE0gABRPDAAUTxQAFE8cABRPJAAUTzAAFE80ABRPOAAUTzwAFE9AABRPSAAUT1AAFE9UABRPWAAUT2AAFE9kABRRUAAUUVgAFFFgABRRaAAUUXQAFFF4ABRRfAAUUYAAFFGEABRRjAAUUZQAFFGYABRRnAAUUaQAFFGoABRTlAAUU5wAFFOkABRTrAAUU7gAFFO8ABRTwAAUU8QAFFPIABRT0AAUU9gAFFPcABRT4AAUU+gAFFPsABRVEAAUVaAAFFY8ABRWzAAUVtgAFFbgABRW6AAUVvAAFFb4ABRXAAAUVwQAFFcQABRXdAAUV+gAFFfwABRX+AAUWAAAFFgIABRYEAAUWBgAFFggABRYlAAUWKAAFFisABRYuAAUWMQAFFjQABRY3AAUWOgAFFjwABRa3AAUWuQAFFrsABRa9AAUWwAAFFsEABRbCAAUWwwAFFsQABRbGAAUWyAAFFskABRbKAAUWzAAFFs0ABRdIAAUXSgAFF0wABRdOAAUXUQAFF1IABRdTAAUXVAAFF1UABRdXAAUXWQAFF1oABRdbAAUXXQAFF14ABRfZAAUX2wAFF90ABRffAAUX4gAFF+MABRfkAAUX5QAFF+YABRfoAAUX6gAFF+sABRfsAAUX7gAFF+8ABRhqAAUYbAAFGG8ABRhxAAUYdAAFGHUABRh2AAUYdwAFGHgABRh6AAUYfAAFGH0ABRh+AAUYgAAFGIEABRj8AAUY/gAFGQAABRkCAAUZBQAFGQYABRkHAAUZCAAFGQkABRkLAAUZDQAFGQ4ABRkPAAUZEQAFGRIABRmNAAUZjwAFGZEABRmTAAUZlgAFGZcABRmYAAUZmQAFGZoABRmcAAUZngAFGZ8ABRmgAAUZogAFGaMABRoeAAUaIAAFGiIABRokAAUaJwAFGigABRopAAUaKgAFGisABRotAAUaLwAFGjAABRoxAAUaMwAFGjQABRrHAAUa6gAFGwoABRsqAAUbLAAFGy4ABRswAAUbMgAFGzUABRs2AAUbNwAFGzoABRs7AAUbPQAFGz4ABRtBAAUbRAAFG0UABRtGAAUbSQAFG0oABRtPAAUbaAAFG3EABRtzAAUbdgAFG38ABRuCAAUbhQAFG4cABRvQAAUb9AAFHBsABRw/AAUcQgAFHEQABRxGAAUcSAAFHEoABRxMAAUcTQAFHFAABRxpAAUcigAFHIwABRyOAAUckAAFHJIABRyUAAUclgAFHJgABRyaAAUcuwAFHL4ABRzBAAUcxAAFHMcABRzKAAUczQAFHNAABRzTAAUc1QAFHVAABR1SAAUdVAAFHVYABR1ZAAUdWgAFHVsABR1cAAUdXQAFHV8ABR1hAAUdYgAFHWMABR1lAAUdZgAFHeEABR3jAAUd5QAFHecABR3qAAUd6wAFHewABR3tAAUd7gAFHfAABR3yAAUd8wAFHfQABR32AAUd9wAFHnIABR50AAUedwAFHnkABR58AAUefQAFHn4ABR5/AAUegAAFHoIABR6EAAUehQAFHoYABR6IAAUeiQAFHqIABR6jAAUepAAFHqYABR8hAAUfIwAFHyUABR8nAAUfKgAFHysABR8sAAUfLQAFHy4ABR8wAAUfMgAFHzMABR80AAUfNgAFHzcABR+yAAUftAAFH7YABR+4AAUfuwAFH7wABR+9AAUfvgAFH78ABR/BAAUfwwAFH8QABR/FAAUfxwAFH8gABSBDAAUgRQAFIEcABSBJAAUgTAAFIE0ABSBOAAUgTwAFIFAABSBSAAUgVAAFIFUABSBWAAUgWAAFIFkABSDUAAUg1gAFINgABSDaAAUg3QAFIN4ABSDfAAUg4AAFIOEABSDjAAUg5QAFIOYABSDnAAUg6QAFIOoABSFlAAUhZwAFIWkABSFrAAUhbgAFIW8ABSFwAAUhcQAFIXIABSF0AAUhdgAFIXcABSF4AAUhegAFIXsABSHEAAUh6AAFIg8ABSIzAAUiNgAFIjkABSI7AAUiPQAFIj8ABSJBAAUiQgAFIkUABSJeAAUiewAFIn4ABSKBAAUihAAFIocABSKKAAUijQAFIpAABSKtAAUisAAFIrMABSK2AAUiuQAFIrwABSK/AAUiwgAFIsQABSM/AAUjQQAFI0QABSNGAAUjSQAFI0oABSNLAAUjTAAFI00ABSNPAAUjUgAFI1MABSNUAAUjVgAFI1cABSPSAAUj1AAFI9cABSPZAAUj3AAFI90ABSPeAAUj3wAFI+AABSPiAAUj5QAFI+YABSPnAAUj6QAFI+oABSRlAAUkZwAFJGoABSRsAAUkbwAFJHAABSRxAAUkcgAFJHMABSR1AAUkeAAFJHkABSR6AAUkfAAFJH0ABST4AAUk+gAFJP0ABST/AAUlAgAFJQMABSUEAAUlBQAFJQYABSUIAAUlCwAFJQwABSUNAAUlDwAFJRAABSWLAAUljQAFJY8ABSWRAAUllAAFJZUABSWWAAUllwAFJZgABSWaAAUlnQAFJZ4ABSWfAAUloQAFJaIABSYdAAUmHwAFJiEABSYjAAUmJgAFJicABSYoAAUmKQAFJioABSYsAAUmLwAFJjAABSYxAAUmMwAFJjQABSavAAUmsQAFJrQABSa2AAUmuQAFJroABSa7AAUmvAAFJr0ABSa/AAUmwgAFJsMABSbEAAUmxgAFJscABSdaAAUnfQAFJ50ABSe9AAUnvwAFJ8EABSfDAAUnxQAFJ8gABSfJAAUnygAFJ80ABSfOAAUn0AAFJ9EABSfTAAUn1gAFJ9cABSfYAAUn2wAFJ9wABSfhAAUn+gAFKAMABSgFAAUoBwAFKBAABSgTAAUoFgAFKBgABShhAAUohQAFKKwABSjQAAUo0wAFKNUABSjXAAUo2QAFKNsABSjdAAUo3gAFKOEABSj6AAUpGwAFKR0ABSkfAAUpIQAFKSMABSklAAUpJwAFKSkABSkrAAUpTAAFKU8ABSlSAAUpVQAFKVgABSlbAAUpXgAFKWEABSlkAAUpZgAFKeEABSnjAAUp5QAFKecABSnqAAUp6wAFKewABSntAAUp7gAFKfAABSnyAAUp8wAFKfQABSn2AAUp9wAFKnIABSp0AAUqdgAFKngABSp7AAUqfAAFKn0ABSp+AAUqfwAFKoEABSqDAAUqhAAFKoUABSqHAAUqiAAFKwMABSsFAAUrCAAFKwoABSsNAAUrDgAFKw8ABSsQAAUrEQAFKxMABSsVAAUrFgAFKxcABSsZAAUrGgAFKzMABSs0AAUrNQAFKzcABSuyAAUrtAAFK7YABSu4AAUruwAFK7wABSu9AAUrvgAFK78ABSvBAAUrwwAFK8QABSvFAAUrxwAFK8gABSxDAAUsRQAFLEcABSxJAAUsTAAFLE0ABSxOAAUsTwAFLFAABSxSAAUsVAAFLFUABSxWAAUsWAAFLFkABSzUAAUs1gAFLNgABSzaAAUs3QAFLN4ABSzfAAUs4AAFLOEABSzjAAUs5QAFLOYABSznAAUs6QAFLOoABS1lAAUtZwAFLWkABS1rAAUtbgAFLW8ABS1wAAUtcQAFLXIABS10AAUtdgAFLXcABS14AAUtegAFLXsABS32AAUt+AAFLfoABS38AAUt/wAFLgAABS4BAAUuAgAFLgMABS4FAAUuBwAFLggABS4JAAUuCwAFLgw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ABVE7AAVRPAAFUbcABVG5AAVRuwAFUb0ABVHAAAVRwQAFUcIABVHDAAVRxAAFUcYABVHIAAVRyQAFUcoABVHMAAVRzQAFUkgABVJKAAVSTQAFUk8ABVJSAAVSUwAFUlQABVJVAAVSVgAFUlgABVJaAAVSWwAFUlwABVJeAAVSXwAFUngABVJ5AAVSegAFUnwABVL3AAVS+QAFUvsABVL9AAVTAAAFUwEABVMCAAVTAwAFUwQABVMGAAVTCAAFUwkABVMKAAVTDAAFUw0ABVOIAAVTigAFU4wABVOOAAVTkQAFU5IABVOTAAVTlAAFU5UABVOXAAVTmQAFU5oABVObAAVTnQAFU54ABVQZAAVUGwAFVB0ABVQfAAVUIgAFVCMABVQkAAVUJQAFVCYABVQoAAVUKgAFVCsABVQsAAVULgAFVC8ABVSqAAVUrAAFVK4ABVSwAAVUswAFVLQABVS1AAVUtgAFVLcABVS5AAVUuwAFVLwABVS9AAVUvwAFVMAABVU7AAVVPQAFVT8ABVVBAAVVRAAFVUUABVVGAAVVRwAFVUgABVVKAAVVTAAFVU0ABVVOAAVVUAAFVVEABVWaAAVVvgAFVeUABVYJAAVWDAAFVg4ABVYQAAVWEgAFVhQABVYWAAVWFwAFVhoABVYzAAVWUAAFVlIABVZUAAVWVgAFVlgABVZaAAVWXAAFVl4ABVZ7AAVWfgAFVoEABVaEAAVWhwAFVooABVaNAAVWkAAFVpIABVcNAAVXDwAFVxEABVcTAAVXFgAFVxcABVcYAAVXGQAFVxoABVccAAVXHgAFVx8ABVcgAAVXIgAFVyMABVeeAAVXoAAFV6IABVekAAVXpwAFV6gABVepAAVXqgAFV6sABVetAAVXrwAFV7AABVexAAVXswAFV7QABVgvAAVYMQAFWDMABVg1AAVYOAAFWDkABVg6AAVYOwAFWDwABVg+AAVYQAAFWEEABVhCAAVYRAAFWEUABVjAAAVYwgAFWMUABVjHAAVYygAFWMsABVjMAAVYzQAFWM4ABVjQAAVY0gAFWNMABVjUAAVY1gAFWNcABVlSAAVZVAAFWVYABVlYAAVZWwAFWVwABVldAAVZXgAFWV8ABVlhAAVZYwAFWWQABVllAAVZZwAFWWgABVnjAAVZ5QAFWecABVnpAAVZ7AAFWe0ABVnuAAVZ7wAFWfAABVnyAAVZ9AAFWfUABVn2AAVZ+AAFWfkABVp0AAVadgAFWngABVp6AAVafQAFWn4ABVp/AAVagAAFWoEABVqDAAVahQAFWoYABVqHAAVaiQAFWooABVsdAAVbQAAFW2AABVuAAAVbggAFW4QABVuGAAVbiAAFW4sABVuMAAVbjQAFW5AABVuRAAVbkwAFW5QABVuXAAVbmgAFW5sABVucAAVbnwAFW6AABVulAAVbvgAFW8cABVvJAAVbzAAFW9UABVvYAAVb2wAFW90ABVwmAAVcSgAFXHEABVyVAAVcmAAFXJoABVycAAVcngAFXKAABVyiAAVcowAFXKYABVy/AAVc4AAFXOIABVzkAAVc5gAFXOgABVzqAAVc7AAFXO4ABVzwAAVdEQAFXRQABV0XAAVdGgAFXR0ABV0gAAVdIwAFXSYABV0pAAVdKwAFXaYABV2oAAVdqgAFXawABV2vAAVdsAAFXbEABV2yAAVdswAFXbUABV23AAVduAAFXbkABV27AAVdvAAFXjcABV45AAVeOwAFXj0ABV5AAAVeQQAFXkIABV5DAAVeRAAFXkYABV5IAAVeSQAFXkoABV5MAAVeTQAFXsgABV7KAAVezQAFXs8ABV7SAAVe0wAFXtQABV7VAAVe1gAFXtgABV7aAAVe2wAFXtwABV7eAAVe3wAFXvgABV75AAVe+gAFXvwABV93AAVfeQAFX3sABV99AAVfgAAFX4EABV+CAAVfgwAFX4QABV+GAAVfiAAFX4kABV+KAAVfjAAFX40ABWAIAAVgCgAFYAwABWAOAAVgEQAFYBIABWATAAVgFAAFYBUABWAXAAVgGQAFYBoABWAbAAVgHQAFYB4ABWCZAAVgmwAFYJ0ABWCfAAVgogAFYKMABWCkAAVgpQAFYKYABWCoAAVgqgAFYKsABWCsAAVgrgAFYK8ABWEqAAVhLAAFYS4ABWEwAAVhMwAFYTQABWE1AAVhNgAFYTcABWE5AAVhOwAFYTwABWE9AAVhPwAFYUAABWG7AAVhvQAFYb8ABWHBAAVhxAAFYcUABWHGAAVhxwAFYcgABWHKAAVhzAAFYc0ABWHOAAVh0AAFYdEABWIaAAViPgAFYmUABWKJAAVijAAFYo8ABWKRAAVikwAFYpUABWKXAAVimAAFYpsABWK0AAVi0QAFYtQABWLXAAVi2gAFYt0ABWLgAAVi4wAFYuYABWMDAAVjBgAFYwkABWMMAAVjDwAFYxIABWMVAAVjGAAFYxoABWOVAAVjlwAFY5oABWOcAAVjnwAFY6AABWOhAAVjogAFY6MABWOlAAVjqAAFY6kABWOqAAVjrAAFY60ABWQoAAVkKgAFZC0ABWQvAAVkMgAFZDMABWQ0AAVkNQAFZDYABWQ4AAVkOwAFZDwABWQ9AAVkPwAFZEAABWS7AAVkvQAFZMAABWTCAAVkxQAFZMYABWTHAAVkyAAFZMkABWTLAAVkzgAFZM8ABWTQAAVk0gAFZNMABWVOAAVlUAAFZVMABWVVAAVlWAAFZVkABWVaAAVlWwAFZVwABWVeAAVlYQAFZWIABWVjAAVlZQAFZWYABWXpAAVmDQAFZjEABWZUAAVmewAFZpsABWbCAAVm6QAFZwkABWctAAVnUQAFZ1MABWdWAAVnWAAFZ1oABWdcAAVnXwAFZ2IABWdkAAVnZgAFZ2kABWdrAAVnbQAFZ3AABWdzAAVndAAFZ3kABWeSAAVnlwAFZ5kABWeeAAVnoQAFZ6MABWfsAAVoEAAFaDcABWhbAAVoXgAFaGAABWhiAAVoZAAFaGYABWhoAAVoaQAFaGwABWiFAAVoqgAFaKwABWiuAAVosAAFaLIABWi0AAVotgAFaLgABWi6AAVovAAFaOEABWjkAAVo5wAFaOoABWjtAAVo8AAFaPMABWj2AAVo+QAFaPwABWj+AAVpeQAFaXsABWl+AAVpgAAFaYMABWmEAAVphQAFaYYABWmHAAVpiQAFaYsABWmMAAVpjQAFaY8ABWmQAAVpoQAFaaIABWmkAAVqHwAFaiEABWojAAVqJQAFaigABWopAAVqKgAFaisABWosAAVqLgAFajAABWoxAAVqMgAFajQABWo1AAVqsAAFarIABWq1AAVqtwAFaroABWq7AAVqvAAFar0ABWq+AAVqwAAFasIABWrDAAVqxAAFasYABWrHAAVq2AAFatkABWrbAAVrVgAFa1gABWtaAAVrXAAFa18ABWtgAAVrYQAFa2IABWtjAAVrZQAFa2cABWtoAAVraQAFa2sABWtsAAVr5wAFa+kABWvsAAVr7gAFa/EABWvyAAVr8wAFa/QABWv1AAVr9wAFa/kABWv6AAVr+wAFa/0ABWv+AAVsDwAFbBAABWwSAAVsjQAFbI8ABWyRAAVskwAFbJYABWyXAAVsmAAFbJkABWyaAAVsnAAFbJ4ABWyfAAVsoAAFbKIABWyjAAVtHgAFbSAABW0jAAVtJQAFbSgABW0pAAVtKgAFbSsABW0sAAVtLgAFbTAABW0xAAVtMgAFbTQABW01AAVtTgAFbU8ABW1QAAVtUgAFbc0ABW3PAAVt0QAFbdMABW3WAAVt1wAFbdgABW3ZAAVt2gAFbdwABW3eAAVt3wAFbeAABW3iAAVt4wAFbl4ABW5gAAVuYwAFbmUABW5oAAVuaQAFbmoABW5rAAVubAAFbm4ABW5wAAVucQAFbnIABW50AAVudQAFbpMABW6sAAVuwQAFbsQABW7HAAVuygAFbs0ABW7QAAVu5QAFbugABW7rAAVu7gAFbvEABW70AAVu9gAFbxYABW8lAAVvNwAFb0MABW9aAAVv7QAFcBAABXAwAAVwUAAFcFIABXBUAAVwVgAFcFgABXBbAAVwXAAFcF0ABXBgAAVwYQAFcGMABXBkAAVwZgAFcGkABXBqAAVwawAFcG4ABXBvAAVwdAAFcI0ABXCWAAVwmAAFcJoABXCjAAVwpgAFcKkABXCrAAVw9AAFcRgABXE/AAVxYwAFcWYABXFoAAVxagAFcWwABXFuAAVxcAAFcXEABXF0AAVxjQAFca4ABXGwAAVxsgAFcbQABXG2AAVxuAAFcboABXG8AAVxvgAFcd8ABXHiAAVx5QAFcegABXHrAAVx7gAFcfEABXH0AAVx9wAFcfkABXJ0AAVydgAFcngABXJ6AAVyfQAFcn4ABXJ/AAVygAAFcoEABXKDAAVyhQAFcoYABXKHAAVyiQAFcooABXMFAAVzBwAFcwkABXMLAAVzDgAFcw8ABXMQAAVzEQAFcxIABXMUAAVzFgAFcxcABXMYAAVzGgAFcxsABXOWAAVzmAAFc5sABXOdAAVzoAAFc6EABXOiAAVzowAFc6QABXOmAAVzqAAFc6kABXOqAAVzrAAFc60ABXPGAAVzxwAFc8gABXPKAAV0RQAFdEcABXRJAAV0SwAFdE4ABXRPAAV0UAAFdFEABXRSAAV0VAAFdFYABXRXAAV0WAAFdFoABXRbAAV01gAFdNgABXTaAAV03AAFdN8ABXTgAAV04QAFdOIABXTjAAV05QAFdOcABXToAAV06QAFdOsABXTsAAV1ZwAFdWkABXVrAAV1bQAFdXAABXVxAAV1cgAFdXMABXV0AAV1dgAFdXgABXV5AAV1egAFdXwABXV9AAV1+AAFdfoABXX8AAV1/gAFdgEABXYCAAV2AwAFdgQABXYFAAV2BwAFdgkABXYKAAV2CwAFdg0ABXYOAAV2iQAFdosABXaNAAV2jwAFdpIABXaTAAV2lAAFdpUABXaWAAV2mAAFdpoABXabAAV2nAAFdp4ABXafAAV26AAFdwwABXczAAV3VwAFd1oABXdcAAV3XgAFd2AABXdiAAV3ZAAFd2UABXdoAAV3gQAFd54ABXegAAV3ogAFd6QABXemAAV3qAAFd6oABXesAAV3yQAFd8wABXfPAAV30gAFd9UABXfYAAV32wAFd94ABXfgAAV4WwAFeF0ABXhfAAV4YQAFeGQABXhlAAV4ZgAFeGcABXhoAAV4agAFeGwABXhtAAV4bgAFeHAABXhxAAV47AAFeO4ABXjwAAV48gAFePUABXj2AAV49wAFePgABXj5AAV4+wAFeP0ABXj+AAV4/wAFeQEABXkCAAV5fQAFeX8ABXmBAAV5gwAFeYYABXmHAAV5iAAFeYkABXmKAAV5jAAFeY4ABXmPAAV5kAAFeZIABXmTAAV6DgAFehAABXoTAAV6FQAFehgABXoZAAV6GgAFehsABXocAAV6HgAFeiAABXohAAV6IgAFeiQABXolAAV6oAAFeqIABXqkAAV6pgAFeqkABXqqAAV6qwAFeqwABXqtAAV6rwAFerEABXqyAAV6swAFerUABXq2AAV7MQAFezMABXs1AAV7NwAFezoABXs7AAV7PAAFez0ABXs+AAV7QAAFe0IABXtDAAV7RAAFe0YABXtHAAV7wgAFe8QABXvGAAV7yAAFe8sABXvMAAV7zQAFe84ABXvPAAV70QAFe9MABXvUAAV71QAFe9cABXvYAAV8awAFfI4ABXyuAAV8zgAFfNAABXzSAAV81AAFfNYABXzZAAV82gAFfNsABXzeAAV83wAFfOEABXziAAV85AAFfOcABXzoAAV86QAFfOwABXztAAV89gAFfQ8ABX0YAAV9GgAFfRwABX0lAAV9KAAFfSsABX0tAAV9dgAFfZoABX3BAAV95QAFfegABX3qAAV97AAFfe4ABX3wAAV98gAFffMABX32AAV+DwAFfjAABX4yAAV+NAAFfjYABX44AAV+OgAFfjwABX4+AAV+QAAFfmEABX5kAAV+ZwAFfmoABX5tAAV+cAAFfnMABX52AAV+eQAFfnsABX72AAV++AAFfvoABX78AAV+/wAFfwAABX8BAAV/AgAFfwMABX8FAAV/BwAFfwgABX8JAAV/CwAFfwwABX+HAAV/iQAFf4sABX+NAAV/kAAFf5EABX+SAAV/kwAFf5QABX+WAAV/mAAFf5kABX+aAAV/nAAFf50ABYAYAAWAGgAFgB0ABYAfAAWAIgAFgCMABYAkAAWAJQAFgCYABYAoAAWAKgAFgCsABYAsAAWALgAFgC8ABYBIAAWASQAFgEoABYBMAAWAxwAFgMkABYDLAAWAzQAFgNAABYDRAAWA0gAFgNMABYDUAAWA1gAFgNgABYDZAAWA2gAFgNwABYDdAAWBWAAFgVoABYFcAAWBXgAFgWEABYFiAAWBYwAFgWQABYFlAAWBZwAFgWkABYFqAAWBawAFgW0ABYFuAAWB6QAFgesABYHtAAWB7wAFgfIABYHzAAWB9AAFgfUABYH2AAWB+AAFgfoABYH7AAWB/AAFgf4ABYH/AAWCegAFgnwABYJ+AAWCgAAFgoMABYKEAAWChQAFgoYABYKHAAWCiQAFgosABYKMAAWCjQAFgo8ABYKQAAWDCwAFgw0ABYMPAAWDEQAFgxQABYMVAAWDFgAFgxcABYMYAAWDGgAFgxwABYMdAAWDHgAFgyAABYMhAAWDagAFg44ABYO1AAWD2QAFg9wABYPeAAWD4AAFg+IABYPkAAWD5gAFg+cABYPqAAWEAwAFhCAABYQiAAWEJAAFhCYABYQoAAWEKgAFhCwABYQuAAWESwAFhE4ABYRRAAWEVAAFhFcABYRaAAWEXQAFhGAABYRiAAWE3QAFhN8ABYThAAWE4wAFhOYABYTnAAWE6AAFhOkABYTqAAWE7AAFhO4ABYTvAAWE8AAFhPIABYTzAAWFbgAFhXAABYVyAAWFdAAFhXcABYV4AAWFeQAFhXoABYV7AAWFfQAFhX8ABYWAAAWFgQAFhYMABYWEAAWF/wAFhgEABYYDAAWGBQAFhggABYYJAAWGCgAFhgsABYYMAAWGDgAFhhAABYYRAAWGEgAFhhQABYYVAAWGkAAFhpIABYaVAAWGlwAFhpoABYabAAWGnAAFhp0ABYaeAAWGoAAFhqIABYajAAWGpAAFhqYABYanAAWHIgAFhyQABYcmAAWHKAAFhysABYcsAAWHLQAFhy4ABYcvAAWHMQAFhzMABYc0AAWHNQAFhzcABYc4AAWHswAFh7UABYe3AAWHuQAFh7wABYe9AAWHvgAFh78ABYfAAAWHwgAFh8QABYfFAAWHxgAFh8gABYfJAAWIRAAFiEYABYhIAAWISgAFiE0ABYhOAAWITwAFiFAABYhRAAWIUwAFiFUABYhWAAWIVwAFiFkABYhaAAWI7QAFiRAABYkwAAWJUAAFiVIABYlUAAWJVgAFiVgABYlbAAWJXAAFiV0ABYlgAAWJYQAFiWMABYlkAAWJZwAFiWoABYlrAAWJbAAFiW8ABYlwAAWJdQAFiY4ABYmXAAWJmQAFiZwABYmlAAWJqAAFiasABYmtAAWJ9gAFihoABYpBAAWKZQAFimgABYpqAAWKbAAFim4ABYpwAAWKcgAFinMABYp2AAWKjwAFirAABYqyAAWKtAAFirYABYq4AAWKugAFirwABYq+AAWKwAAFiuEABYrkAAWK5wAFiuoABYrtAAWK8AAFivMABYr2AAWK+QAFivsABYt2AAWLeAAFi3oABYt8AAWLfwAFi4AABYuBAAWLggAFi4MABYuFAAWLhwAFi4gABYuJAAWLiwAFi4wABYwHAAWMCQAFjAsABYwNAAWMEAAFjBEABYwSAAWMEwAFjBQABYwWAAWMGAAFjBkABYwaAAWMHAAFjB0ABYyYAAWMmgAFjJ0ABYyfAAWMogAFjKMABYykAAWMpQAFjKYABYyoAAWMqgAFjKsABYysAAWMrgAFjK8ABYzIAAWMyQAFjMoABYzMAAWNRwAFjUkABY1LAAWNTQAFjVAABY1RAAWNUgAFjVMABY1UAAWNVgAFjVgABY1ZAAWNWgAFjVwABY1dAAWN2AAFjdoABY3cAAWN3gAFjeEABY3iAAWN4wAFjeQABY3lAAWN5wAFjekABY3qAAWN6wAFje0ABY3uAAWOaQAFjmsABY5tAAWObwAFjnIABY5zAAWOdAAFjnUABY52AAWOeAAFjnoABY57AAWOfAAFjn4ABY5/AAWO+gAFjvwABY7+AAWPAAAFjwMABY8EAAWPBQAFjwYABY8HAAWPCQAFjwsABY8MAAWPDQAFjw8ABY8QAAWPiwAFj40ABY+PAAWPkQAFj5QABY+VAAWPlgAFj5cABY+YAAWPmgAFj5wABY+dAAWPngAFj6AABY+hAAWP6gAFkA4ABZA1AAWQWQAFkFwABZBfAAWQYQAFkGMABZBlAAWQZwAFkGgABZBrAAWQhAAFkKEABZCkAAWQpwAFkKoABZCtAAWQsAAFkLMABZC2AAWQ0wAFkNYABZDZAAWQ3AAFkN8ABZDiAAWQ5QAFkOgABZDqAAWRZQAFkWcABZFqAAWRbAAFkW8ABZFwAAWRcQAFkXIABZFzAAWRdQAFkXgABZF5AAWRegAFkXwABZF9AAWR+AAFkfoABZH9AAWR/wAFkgIABZIDAAWSBAAFkgUABZIGAAWSCAAFkgsABZIMAAWSDQAFkg8ABZIQAAWSiwAFko0ABZKQAAWSkgAFkpUABZKWAAWSlwAFkpgABZKZAAWSmwAFkp4ABZKfAAWSoAAFkqIABZKjAAWTHgAFkyAABZMjAAWTJQAFkygABZMpAAWTKgAFkysABZMsAAWTLgAFkzEABZMyAAWTMwAFkzUABZM2AAWTsQAFk7MABZO1AAWTtwAFk7oABZO7AAWTvAAFk70ABZO+AAWTwAAFk8MABZPEAAWTxQAFk8cABZPIAAWUQwAFlEUABZRHAAWUSQAFlEwABZRNAAWUTgAFlE8ABZRQAAWUUgAFlFUABZRWAAWUVwAFlFkABZRaAAWU1QAFlNcABZTaAAWU3AAFlN8ABZTgAAWU4QAFlOIABZTjAAWU5QAFlOgABZTpAAWU6gAFlOwABZTtAAWVgAAFlaMABZXDAAWV4wAFleUABZXnAAWV6QAFlesABZXuAAWV7wAFlfAABZXzAAWV9AAFlfYABZX3AAWV+QAFlfwABZX9AAWV/gAFlgEABZYCAAWWCwAFliQABZYtAAWWLwAFljEABZY6AAWWPQAFlkAABZZCAAWWiwAFlq8ABZbWAAWW+gAFlv0ABZb/AAWXAQAFlwMABZcFAAWXBwAFlwgABZcLAAWXJAAFl0UABZdHAAWXSQAFl0sABZdNAAWXTwAFl1EABZdTAAWXVQAFl3YABZd5AAWXfAAFl38ABZeCAAWXhQAFl4gABZeLAAWXjgAFl5AABZgLAAWYDQAFmA8ABZgRAAWYFAAFmBUABZgWAAWYFwAFmBgABZgaAAWYHAAFmB0ABZgeAAWYIAAFmCEABZicAAWYngAFmKA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ABankAAWp5wAFqeoABantAAWp8AAFqfMABan1AAWqcAAFqnIABap0AAWqdgAFqnkABap6AAWqewAFqnwABap9AAWqfwAFqoEABaqCAAWqgwAFqoUABaqGAAWrAQAFqwMABasFAAWrBwAFqwoABasLAAWrDAAFqw0ABasOAAWrEAAFqxIABasTAAWrFAAFqxYABasXAAWrkgAFq5QABauWAAWrmAAFq5sABaucAAWrnQAFq54ABaufAAWroQAFq6MABaukAAWrpQAFq6cABauoAAWsIwAFrCUABawoAAWsKgAFrC0ABawuAAWsLwAFrDAABawxAAWsMwAFrDUABaw2AAWsNwAFrDkABaw6AAWstQAFrLcABay5AAWsuwAFrL4ABay/AAWswAAFrMEABazCAAWsxAAFrMYABazHAAWsyAAFrMoABazLAAWtRgAFrUgABa1KAAWtTAAFrU8ABa1QAAWtUQAFrVIABa1TAAWtVQAFrVcABa1YAAWtWQAFrVsABa1cAAWt1wAFrdkABa3bAAWt3QAFreAABa3hAAWt4gAFreMABa3kAAWt5gAFregABa3pAAWt6gAFrewABa3tAAWt/gAFrf8ABa4BAAWufAAFrn4ABa6AAAWuggAFroUABa6GAAWuhwAFrogABa6JAAWuiwAFro4ABa6PAAWukAAFrpIABa6TAAWvDgAFrxAABa8SAAWvFAAFrxcABa8YAAWvGQAFrxoABa8bAAWvHQAFryAABa8hAAWvIgAFryQABa8lAAWvoAAFr6IABa+lAAWvpwAFr6oABa+rAAWvrAAFr60ABa+uAAWvsAAFr7MABa+0AAWvtQAFr7cABa+4AAWwSwAFsG4ABbCOAAWwrgAFsLAABbCyAAWwtAAFsLYABbC5AAWwugAFsLsABbC+AAWwvwAFsMEABbDCAAWwxAAFsMcABbDIAAWwyQAFsMwABbDNAAWw0gAFsOsABbD0AAWw9gAFsPgABbEBAAWxBAAFsQcABbEJAAWxUgAFsXYABbGdAAWxwQAFscQABbHGAAWxyAAFscoABbHMAAWxzgAFsc8ABbHSAAWx6wAFsgwABbIOAAWyEAAFshIABbIUAAWyFgAFshgABbIaAAWyHAAFsj0ABbJAAAWyQwAFskYABbJJAAWyTAAFsk8ABbJSAAWyVQAFslcABbLSAAWy1AAFstYABbLYAAWy2wAFstwABbLdAAWy3gAFst8ABbLhAAWy4wAFsuQABbLlAAWy5wAFsugABbNjAAWzZQAFs2cABbNpAAWzbAAFs20ABbNuAAWzbwAFs3AABbNyAAWzdAAFs3UABbN2AAWzeAAFs3kABbP0AAWz9gAFs/kABbP7AAWz/gAFs/8ABbQAAAW0AQAFtAIABbQEAAW0BgAFtAcABbQIAAW0CgAFtAsABbQkAAW0JQAFtCYABbQoAAW0owAFtKUABbSnAAW0qQAFtKwABbStAAW0rgAFtK8ABbSwAAW0sgAFtLQABbS1AAW0tgAFtLgABbS5AAW1NAAFtTYABbU4AAW1OgAFtT0ABbU+AAW1PwAFtUAABbVBAAW1QwAFtUUABbVGAAW1RwAFtUkABbVKAAW1xQAFtccABbXJAAW1ywAFtc4ABbXPAAW10AAFtdEABbXSAAW11AAFtdYABbXXAAW12AAFtdoABbXbAAW2VgAFtlgABbZaAAW2XAAFtl8ABbZgAAW2YQAFtmIABbZjAAW2ZQAFtmcABbZoAAW2aQAFtmsABbZsAAW25wAFtukABbbrAAW27QAFtvAABbbxAAW28gAFtvMABbb0AAW29gAFtvgABbb5AAW2+gAFtvwABbb9AAW3RgAFt2oABbeRAAW3tQAFt7gABbe6AAW3vAAFt74ABbfAAAW3wgAFt8MABbfGAAW33wAFt/wABbf+AAW4AAAFuAIABbgEAAW4BgAFuAgABbgKAAW4JwAFuCoABbgtAAW4MAAFuDMABbg2AAW4OQAFuDwABbg+AAW4uQAFuLsABbi9AAW4vwAFuMIABbjDAAW4xAAFuMUABbjGAAW4yAAFuMoABbjLAAW4zAAFuM4ABbjPAAW5SgAFuUwABblOAAW5UAAFuVMABblUAAW5VQAFuVYABblXAAW5WQAFuVsABblcAAW5XQAFuV8ABblgAAW52wAFud0ABbnfAAW54QAFueQABbnlAAW55gAFuecABbnoAAW56gAFuewABbntAAW57gAFufAABbnxAAW6bAAFum4ABbpxAAW6cwAFunYABbp3AAW6eAAFunkABbp6AAW6fAAFun4ABbp/AAW6gAAFuoIABbqDAAW6/gAFuwAABbsCAAW7BAAFuwcABbsIAAW7CQAFuwoABbsLAAW7DQAFuw8ABbsQAAW7EQAFuxMABbsUAAW7jwAFu5EABbuTAAW7lQAFu5gABbuZAAW7mgAFu5sABbucAAW7ngAFu6AABbuhAAW7ogAFu6QABbulAAW8IAAFvCIABbwkAAW8JgAFvCkABbwqAAW8KwAFvCwABbwtAAW8LwAFvDEABbwyAAW8MwAFvDUABbw2AAW8yQAFvOwABb0MAAW9LAAFvS4ABb0wAAW9MgAFvTQABb03AAW9OAAFvTkABb08AAW9PQAFvT8ABb1AAAW9QgAFvUUABb1GAAW9RwAFvUoABb1LAAW9UAAFvWkABb1yAAW9dAAFvXYABb1/AAW9ggAFvYUABb2HAAW90AAFvfQABb4bAAW+PwAFvkIABb5EAAW+RgAFvkgABb5KAAW+TAAFvk0ABb5QAAW+aQAFvooABb6MAAW+jgAFvpAABb6SAAW+lAAFvpYABb6YAAW+mgAFvrsABb6+AAW+wQAFvsQABb7HAAW+ygAFvs0ABb7QAAW+0wAFvtUABb9QAAW/UgAFv1QABb9WAAW/WQAFv1oABb9bAAW/XAAFv10ABb9fAAW/YQAFv2IABb9jAAW/ZQAFv2YABb/hAAW/4wAFv+UABb/nAAW/6gAFv+sABb/sAAW/7QAFv+4ABb/wAAW/8gAFv/MABb/0AAW/9gAFv/cABcByAAXAdAAFwHcABcB5AAXAfAAFwH0ABcB+AAXAfwAFwIAABcCCAAXAhAAFwIUABcCGAAXAiAAFwIkABcCiAAXAowAFwKQABcCmAAXBIQAFwSMABcElAAXBJwAFwSoABcErAAXBLAAFwS0ABcEuAAXBMAAFwTIABcEzAAXBNAAFwTYABcE3AAXBsgAFwbQABcG2AAXBuAAFwbsABcG8AAXBvQAFwb4ABcG/AAXBwQAFwcMABcHEAAXBxQAFwccABcHIAAXCQwAFwkUABcJHAAXCSQAFwkwABcJNAAXCTgAFwk8ABcJQAAXCUgAFwlQABcJVAAXCVgAFwlgABcJZAAXC1AAFwtYABcLYAAXC2gAFwt0ABcLeAAXC3wAFwuAABcLhAAXC4wAFwuUABcLmAAXC5wAFwukABcLqAAXDZQAFw2cABcNpAAXDawAFw24ABcNvAAXDcAAFw3EABcNyAAXDdAAFw3YABcN3AAXDeAAFw3oABcN7AAXDxAAFw+gABcQPAAXEMwAFxDYABcQ4AAXEOgAFxDwABcQ+AAXEQAAFxEEABcREAAXEXQAFxHoABcR8AAXEfgAFxIAABcSCAAXEhAAFxIYABcSIAAXEpQAFxKgABcSrAAXErgAFxLEABcS0AAXEtwAFxLoABcS8AAXFNwAFxTkABcU7AAXFPQAFxUAABcVBAAXFQgAFxUMABcVEAAXFRgAFxUgABcVJAAXFSgAFxUwABcVNAAXFyAAFxcoABcXMAAXFzgAFxdEABcXSAAXF0wAFxdQABcXVAAXF1wAFxdkABcXaAAXF2wAFxd0ABcXeAAXGWQAFxlsABcZdAAXGXwAFxmIABcZjAAXGZAAFxmUABcZmAAXGaAAFxmoABcZrAAXGbAAFxm4ABcZvAAXG6gAFxuwABcbuAAXG8AAFxvMABcb0AAXG9QAFxvYABcb3AAXG+QAFxvsABcb8AAXG/QAFxv8ABccAAAXHewAFx30ABcd/AAXHgQAFx4QABceFAAXHhgAFx4cABceIAAXHigAFx4wABceNAAXHjgAFx5AABceRAAXIDAAFyA4ABcgQAAXIEgAFyBUABcgWAAXIFwAFyBgABcgZAAXIGwAFyB0ABcgeAAXIHwAFyCEABcgiAAXInQAFyJ8ABcihAAXIowAFyKYABcinAAXIqAAFyKkABciqAAXIrAAFyK4ABcivAAXIsAAFyLIABcizAAXJRgAFyWkABcmJAAXJqQAFyasABcmtAAXJrwAFybEABcm0AAXJtQAFybYABcm5AAXJugAFybwABcm9AAXJvwAFycIABcnDAAXJxAAFyccABcnIAAXJ0QAFyeoABcnzAAXJ9QAFyfcABcoAAAXKAwAFygYABcoIAAXKUQAFynUABcqcAAXKwAAFysMABcrFAAXKxwAFyskABcrLAAXKzQAFys4ABcrRAAXK6gAFywsABcsNAAXLDwAFyxEABcsTAAXLFQAFyxcABcsZAAXLGwAFyzwABcs/AAXLQgAFy0UABctIAAXLSwAFy04ABctRAAXLVAAFy1YABcvRAAXL0wAFy9UABcvXAAXL2gAFy9sABcvcAAXL3QAFy94ABcvgAAXL4gAFy+MABcvkAAXL5gAFy+cABcxiAAXMZAAFzGYABcxoAAXMawAFzGwABcxtAAXMbgAFzG8ABcxxAAXMcwAFzHQABcx1AAXMdwAFzHgABczzAAXM9QAFzPgABcz6AAXM/QAFzP4ABcz/AAXNAAAFzQEABc0DAAXNBQAFzQYABc0HAAXNCQAFzQoABc0jAAXNJAAFzSUABc0nAAXNogAFzaQABc2mAAXNqAAFzasABc2sAAXNrQAFza4ABc2vAAXNsQAFzbMABc20AAXNtQAFzbcABc24AAXOMwAFzjUABc43AAXOOQAFzjwABc49AAXOPgAFzj8ABc5AAAXOQgAFzkQABc5FAAXORgAFzkgABc5JAAXOxAAFzsYABc7IAAXOygAFzs0ABc7OAAXOzwAFztAABc7RAAXO0wAFztUABc7WAAXO1wAFztkABc7aAAXPVQAFz1cABc9ZAAXPWwAFz14ABc9fAAXPYAAFz2EABc9iAAXPZAAFz2YABc9nAAXPaAAFz2oABc9rAAXP5gAFz+gABc/qAAXP7AAFz+8ABc/wAAXP8QAFz/IABc/zAAXP9QAFz/cABc/4AAXP+QAFz/sABc/8AAXQRQAF0GkABdCQAAXQtAAF0LcABdC5AAXQuwAF0L0ABdC/AAXQwQAF0MIABdDFAAXQ3gAF0PsABdD9AAXQ/wAF0QEABdEDAAXRBQAF0QcABdEJAAXRJgAF0SkABdEsAAXRLwAF0TIABdE1AAXROAAF0TsABdE9AAXRuAAF0boABdG8AAXRvgAF0cEABdHCAAXRwwAF0cQABdHFAAXRxwAF0ckABdHKAAXRywAF0c0ABdHOAAXSSQAF0ksABdJNAAXSTwAF0lIABdJTAAXSVAAF0lUABdJWAAXSWAAF0loABdJbAAXSXAAF0l4ABdJfAAXS2gAF0twABdLeAAXS4AAF0uMABdLkAAXS5QAF0uYABdLnAAXS6QAF0usABdLsAAXS7QAF0u8ABdLwAAXTawAF020ABdNwAAXTcgAF03UABdN2AAXTdwAF03gABdN5AAXTewAF030ABdN+AAXTfwAF04EABdOCAAXT/QAF0/8ABdQBAAXUAwAF1AYABdQHAAXUCAAF1AkABdQKAAXUDAAF1A4ABdQPAAXUEAAF1BIABdQTAAXUjgAF1JAABdSSAAXUlAAF1JcABdSYAAXUmQAF1JoABdSbAAXUnQAF1J8ABdSgAAXUoQAF1KMABdSkAAXVHwAF1SEABdUjAAXVJQAF1SgABdUpAAXVKgAF1SsABdUsAAXVLgAF1TAABdUxAAXVMgAF1TQABdU1AAXVyAAF1es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ABec5AAXnOgAF5zsABec8AAXnPgAF50AABedBAAXnQgAF50QABedFAAXnwAAF58IABefEAAXnxgAF58kABefKAAXnywAF58wABefNAAXnzwAF59EABefSAAXn0wAF59UABefWAAXoUQAF6FMABehVAAXoVwAF6FoABehbAAXoXAAF6F0ABeheAAXoYAAF6GIABehjAAXoZAAF6GYABehnAAXo4gAF6OQABejmAAXo6AAF6OsABejsAAXo7QAF6O4ABejvAAXo8QAF6PMABej0AAXo9QAF6PcABej4AAXpQQAF6WUABemMAAXpsAAF6bMABem1AAXptwAF6bkABem7AAXpvQAF6b4ABenBAAXp2gAF6fcABen5AAXp+wAF6f0ABen/AAXqAQAF6gMABeoFAAXqIgAF6iUABeooAAXqKwAF6i4ABeoxAAXqNAAF6jcABeo5AAXqtAAF6rYABeq4AAXqugAF6r0ABeq+AAXqvwAF6sAABerBAAXqwwAF6sUABerGAAXqxwAF6skABerKAAXrRQAF60cABetJAAXrSwAF604ABetPAAXrUAAF61EABetSAAXrVAAF61YABetXAAXrWAAF61oABetbAAXr1gAF69gABevaAAXr3AAF698ABevgAAXr4QAF6+IABevjAAXr5QAF6+cABevoAAXr6QAF6+sABevsAAXsZwAF7GkABexsAAXsbgAF7HEABexyAAXscwAF7HQABex1AAXsdwAF7HkABex6AAXsewAF7H0ABex+AAXs+QAF7PsABez9AAXs/wAF7QIABe0DAAXtBAAF7QUABe0GAAXtCAAF7QoABe0LAAXtDAAF7Q4ABe0PAAXtigAF7YwABe2OAAXtkAAF7ZMABe2UAAXtlQAF7ZYABe2XAAXtmQAF7ZsABe2cAAXtnQAF7Z8ABe2gAAXuGwAF7h0ABe4fAAXuIQAF7iQABe4lAAXuJgAF7icABe4oAAXuKgAF7iwABe4tAAXuLgAF7jAABe4xAAXuxAAF7ucABe8HAAXvJwAF7ykABe8rAAXvLQAF7y8ABe8yAAXvMwAF7zQABe83AAXvOAAF7zoABe87AAXvPQAF70AABe9BAAXvQgAF70UABe9GAAXvSwAF72QABe9tAAXvbwAF73EABe96AAXvfQAF74AABe+CAAXvywAF7+8ABfAWAAXwOgAF8D0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ABgFaAAYBXAAGAV4ABgFfAAYBYAAGAWIABgFjAAYB3gAGAeAABgHiAAYB5AAGAecABgHoAAYB6QAGAeoABgHrAAYB7QAGAe8ABgHwAAYB8QAGAfMABgH0AAYCPQAGAmEABgKIAAYCrAAGAq8ABgKxAAYCswAGArUABgK3AAYCuQAGAroABgK9AAYC1gAGAvMABgL1AAYC9wAGAvkABgL7AAYC/QAGAv8ABgMBAAYDHgAGAyEABgMkAAYDJwAGAyoABgMtAAYDMAAGAzMABgM1AAYDsAAGA7IABgO0AAYDtgAGA7kABgO6AAYDuwAGA7wABgO9AAYDvwAGA8EABgPCAAYDwwAGA8UABgPGAAYEQQAGBEMABgRFAAYERwAGBEoABgRLAAYETAAGBE0ABgROAAYEUAAGBFIABgRTAAYEVAAGBFYABgRXAAYE0gAGBNQABgTWAAYE2AAGBNsABgTcAAYE3QAGBN4ABgTfAAYE4QAGBOMABgTkAAYE5QAGBOcABgToAAYFYwAGBWUABgVoAAYFagAGBW0ABgVuAAYFbwAGBXAABgVxAAYFcwAGBXUABgV2AAYFdwAGBXkABgV6AAYF9QAGBfcABgX5AAYF+wAGBf4ABgX/AAYGAAAGBgEABgYCAAYGBAAGBgYABgYHAAYGCAAGBgoABgYLAAYGhgAGBogABgaKAAYGjAAGBo8ABgaQAAYGkQAGBpIABgaTAAYGlQAGBpcABgaYAAYGmQAGBpsABgacAAYHFwAGBxkABgcbAAYHHQAGByAABgchAAYHIgAGByMABgckAAYHJgAGBygABgcpAAYHKgAGBywABgctAAYHwAAGB+MABggDAAYIIwAGCCUABggnAAYIKQAGCCsABgguAAYILwAGCDAABggzAAYINAAGCDYABgg3AAYIOQAGCDwABgg9AAYIPgAGCEEABghCAAYIRwAGCGAABghpAAYIawAGCG0ABgh2AAYIeQAGCHwABgh+AAYIxwAGCOsABgkSAAYJNgAGCTkABgk7AAYJPQAGCT8ABglBAAYJQwAGCUQABglHAAYJYAAGCYEABgmDAAYJhQAGCYcABgmJAAYJiwAGCY0ABgmPAAYJkQAGCbIABgm1AAYJuAAGCbsABgm+AAYJwQAGCcQABgnHAAYJygAGCcwABgpHAAYKSQAGCksABgpNAAYKUAAGClE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ABiR/AAYkgQAGJIIABiSDAAYkhQAGJIYABiSfAAYkoAAGJKEABiSjAAYlHgAGJSAABiUiAAYlJAAGJScABiUoAAYlKQAGJSoABiUrAAYlLQAGJS8ABiUwAAYlMQAGJTMABiU0AAYlrwAGJbEABiWzAAYltQAGJbgABiW5AAYlugAGJbsABiW8AAYlvgAGJcAABiXBAAYlwgAGJcQABiXFAAYmQAAGJkIABiZEAAYmRgAGJkkABiZKAAYmSwAGJkwABiZNAAYmTwAGJlEABiZSAAYmUwAGJlUABiZWAAYm0QAGJtMABibVAAYm1wAGJtoABibbAAYm3AAGJt0ABibeAAYm4AAGJuIABibjAAYm5AAGJuYABibnAAYnYgAGJ2QABidmAAYnaAAGJ2sABidsAAYnbQAGJ24ABidvAAYncQAGJ3MABid0AAYndQAGJ3cABid4AAYnwQAGJ+UABigMAAYoMAAGKDMABig2AAYoOAAGKDoABig8AAYoPgAGKD8ABihCAAYoWwAGKHgABih7AAYofgAGKIEABiiEAAYohwAGKIoABiiNAAYoqgAGKK0ABiiwAAYoswAGKLYABii5AAYovAAGKL8ABijBAAYpPAAGKT4ABilBAAYpQwAGKUYABilHAAYpSAAGKUkABilKAAYpTAAGKU8ABilQAAYpUQAGKVMABilUAAYpzwAGKdEABinUAAYp1gAGKdkABinaAAYp2wAGKdwABindAAYp3wAGKeIABinjAAYp5AAGKeYABinnAAYqYgAGKmQABipnAAYqaQAGKmwABiptAAYqbgAGKm8ABipwAAYqcgAGKnUABip2AAYqdwAGKnkABip6AAYq9QAGKvcABir6AAYq/AAGKv8ABisAAAYrAQAGKwIABisDAAYrBQAGKwgABisJAAYrCgAGKwwABisNAAYrkAAGK7QABivYAAYr+wAGLCIABixCAAYsaQAGLJAABiywAAYs1AAGLPgABiz6AAYs/QAGLP8ABi0BAAYtAwAGLQYABi0JAAYtCwAGLQ0ABi0QAAYtEgAGLRQABi0XAAYtGgAGLRsABi0gAAYtOQAGLT4ABi1AAAYtRQAGLUgABi1KAAYtkwAGLbcABi3eAAYuAgAGLgUABi4HAAYuCQAGLgsABi4NAAYuDwAGLhAABi4TAAYuLAAGLlEABi5TAAYuVQAGLlc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ABlIOAAZSDwAGUooABlKMAAZSjgAGUpAABlKTAAZSlAAGUpUABlKWAAZSlwAGUpkABlKbAAZSnAAGUp0ABlKfAAZSoAAGUukABlMNAAZTNAAGU1gABlNbAAZTXgAGU2AABlNiAAZTZAAGU2YABlNnAAZTagAGU4MABlOgAAZTowAGU6YABlOpAAZTrAAGU68ABlOyAAZTtQAGU9IABlPVAAZT2AAGU9sABlPeAAZT4QAGU+QABlPnAAZT6QAGVGQABlRmAAZUaQAGVGsABlRuAAZUbwAGVHAABlRxAAZUcgAGVHQABlR3AAZUeAAGVHkABlR7AAZUfAAGVPcABlT5AAZU/AAGVP4ABlUBAAZVAgAGVQMABlUEAAZVBQAGVQcABlUKAAZVCwAGVQwABlUOAAZVDwAGVYoABlWMAAZVjwAGVZEABlWUAAZVlQAGVZYABlWXAAZVmAAGVZoABlWdAAZVngAGVZ8ABlWhAAZVogAGVh0ABlYfAAZWIgAGViQABlYnAAZWKAAGVikABlYqAAZWKwAGVi0ABlYwAAZWMQAGVjIABlY0AAZWNQAGVrAABlayAAZWtAAGVrYABla5AAZWugAGVrsABla8AAZWvQAGVr8ABlbCAAZWwwAGVsQABlbGAAZWxwAGV0IABldEAAZXRgAGV0gABldLAAZXTAAGV00ABldOAAZXTwAGV1EABldUAAZXVQAGV1YABldYAAZXWQAGV9QABlfWAAZX2QAGV9sABlfeAAZX3wAGV+AABlfhAAZX4gAGV+QABlfnAAZX6AAGV+kABlfrAAZX7AAGWH8ABliiAAZYwgAGWOIABljkAAZY5gAGWOgABljqAAZY7QAGWO4ABljvAAZY8gAGWPMABlj1AAZY9gAGWPgABlj7AAZY/AAGWP0ABlkAAAZZAQAGWQYABlkfAAZZKAAGWSoABlksAAZZNQAGWTgABlk7AAZZPQAGWYYABlmqAAZZ0QAGWfUABln4AAZZ+gAGWfwABln+AAZaAAAGWgIABloDAAZaBgAGWh8ABlpAAAZaQgAGWkQABlpGAAZaSAAGWkoABlpMAAZaTgAGWlAABlpxAAZadAAGWncABlp6AAZafQAGWoAABlqDAAZahgAGWokABlqLAAZbBgAGWwgABlsKAAZbDAAGWw8ABlsQAAZbEQAGWxIABlsTAAZbFQAGWxcABlsYAAZbGQAGWxsABlscAAZblwAGW5kABlubAAZbnQAGW6AABluhAAZbogAGW6MABlukAAZbpgAGW6gABlupAAZbqgAGW6wABlutAAZcKAAGXCoABlwtAAZcLwAGXDIABlwzAAZcNAAGXDUABlw2AAZcOAAGXDoABlw7AAZcPAAGXD4ABlw/AAZcWAAGXFkABlxaAAZcXAAGXNcABlzZAAZc2wAGXN0ABlzgAAZc4QAGXOIABlzjAAZc5AAGXOYABlzoAAZc6QAGXOoABlzsAAZc7QAGXWgABl1qAAZdbAAGXW4ABl1xAAZdcgAGXXMABl10AAZddQAGXXcABl15AAZdegAGXXsABl19AAZdfgAGXfkABl37AAZd/QAGXf8ABl4CAAZeAwAGXgQABl4FAAZeBgAGXggABl4KAAZeCwAGXgwABl4OAAZeDwAGXooABl6MAAZejgAGXpAABl6TAAZelAAGXpUABl6WAAZelwAGXpkABl6bAAZenAAGXp0ABl6fAAZeoAAGXxsABl8dAAZfHwAGXyEABl8kAAZfJQAGXyYABl8nAAZfKAAGXyoABl8sAAZfLQAGXy4ABl8wAAZfMQAGX3oABl+eAAZfxQAGX+kABl/sAAZf7gAGX/AABl/yAAZf9AAGX/YABl/3AAZf+gAGYBMABmAwAAZgMgAGYDQABmA2AAZgOAAGYDoABmA8AAZgPgAGYFsABmBeAAZgYQAGYGQABmBnAAZgagAGYG0ABmBwAAZgcgAGYO0ABmDvAAZg8QAGYPMABmD2AAZg9wAGYPgABmD5AAZg+gAGYPwABmD+AAZg/wAGYQAABmECAAZhAwAGYX4ABmGAAAZhggAGYYQABmGHAAZhiAAGYYkABmGKAAZhiwAGYY0ABmGPAAZhkAAGYZEABmGTAAZhlAAGYg8ABmIRAAZiEwAGYhUABmIYAAZiGQAGYhoABmIbAAZiHAAGYh4ABmIgAAZiIQAGYiIABmIkAAZiJQAGYqAABmKiAAZipAAGYqYABmKpAAZiqgAGYqsABmKsAAZirQAGYq8ABmKxAAZisgAGYrMABmK1AAZitgAGYzEABmMzAAZjNQAGYzcABmM6AAZjOwAGYzwABmM9AAZjPgAGY0AABmNCAAZjQwAGY0QABmNGAAZjRwAGY8IABmPEAAZjxgAGY8gABmPLAAZjzAAGY80ABmPOAAZjzwAGY9EABmPTAAZj1AAGY9UABmPXAAZj2AAGZFMABmRVAAZkVwAGZFkABmRcAAZkXQAGZF4ABmRfAAZkYAAGZGIABmRkAAZkZQAGZGYABmRoAAZkaQAGZPwABmUfAAZlPwAGZV8ABmVhAAZlYwAGZWUABmVnAAZlagAGZWsABmVsAAZlbwAGZXAABmVyAAZlcwAGZXUABmV4AAZleQAGZXoABmV9AAZlfgAGZYMABmWcAAZlpQAGZacABmWpAAZlsgAGZbUABmW4AAZlugAGZgMABmYnAAZmTgAGZnIABmZ1AAZmdwAGZnkABmZ7AAZmfQAGZn8ABmaAAAZmgwAGZpwABma9AAZmvwAGZsEABmbDAAZmxQAGZscABmbJAAZmywAGZs0ABmbuAAZm8QAGZvQABmb3AAZm+gAGZv0ABmcAAAZnAwAGZwYABmcIAAZngwAGZ4UABmeHAAZniQAGZ4wABmeNAAZnjgAGZ48ABmeQAAZnkgAGZ5QABmeVAAZnlgAGZ5gABmeZAAZoFAAGaBYABmgYAAZoGgAGaB0ABmgeAAZoHwAGaCAABmghAAZoIwAGaCUABmgmAAZoJwAGaCkABmgqAAZopQAGaKcABmiqAAZorAAGaK8ABmiwAAZosQAGaLIABmizAAZotQAGaLcABmi4AAZouQAGaLsABmi8AAZo1QAGaNYABmjXAAZo2QAGaVQABmlWAAZpWAAGaVoABmldAAZpXgAGaV8ABmlgAAZpYQAGaWMABmllAAZpZgAGaWcABmlpAAZpagAGaeUABmnnAAZp6QAGaesABmnuAAZp7wAGafAABmnxAAZp8gAGafQABmn2AAZp9wAGafgABmn6AAZp+wAGanYABmp4AAZqegAGanwABmp/AAZqgAAGaoEABmqCAAZqgwAGaoUABmqHAAZqiAAGaokABmqLAAZqjAAGawcABmsJAAZrCwAGaw0ABmsQAAZrEQAGaxIABmsTAAZrFAAGaxYABmsYAAZrGQAGaxoABmscAAZrHQAGa5gABmuaAAZrnAAGa54ABmuhAAZrogAGa6MABmukAAZrpQAGa6cABmupAAZrqgAGa6sABmutAAZrrgAGa/cABmwbAAZsQgAGbGYABmxpAAZsawAGbG0ABmxvAAZscQAGbHMABmx0AAZsdwAGbJAABmytAAZsrwAGbLEABmyzAAZstQAGbLcABmy5AAZsuwAGbNgABmzbAAZs3gAGbOEABmzkAAZs5wAGbOoABmztAAZs7wAGbWoABm1sAAZtbgAGbXAABm1zAAZtdAAGbXUABm12AAZtdwAGbXkABm17AAZtfAAGbX0ABm1/AAZtgAAGbfsABm39AAZt/wAGbgEABm4EAAZuBQAGbgYABm4HAAZuCAAGbgoABm4MAAZuDQAGbg4ABm4QAAZuEQAGbowABm6OAAZukAAGbpIABm6VAAZulgAGbpcABm6YAAZumQAGbpsABm6dAAZungAGbp8ABm6hAAZuogAGbx0ABm8fAAZvIQAGbyMABm8mAAZvJwAGbygABm8pAAZvKgAGbywABm8uAAZvLwAGbzAABm8yAAZvMwAGb64ABm+wAAZvsgAGb7QABm+3AAZvuAAGb7kABm+6AAZvuwAGb70ABm+/AAZvwAAGb8EABm/DAAZvxAAGcD8ABnBBAAZwRAAGcEYABnBJAAZwSgAGcEsABnBMAAZwTQAGcE8ABnBRAAZwUgAGcFMABnBVAAZwVgAGcGUABnDgAAZw4gAGcOQABnDmAAZw6QAGcOoABnDrAAZw7AAGcO0ABnDvAAZw8QAGcPIABnDzAAZw9QAGcPYABnGJAAZxrAAGccwABnHsAAZx7gAGcfAABnHyAAZx9AAGcfcABnH4AAZx+QAGcfwABnH9AAZx/wAGcgAABnIDAAZyBgAGcgcABnIIAAZyCwAGcgwABnIRAAZyKgAGcjMABnI1AAZyOAAGckEABnJEAAZyRwAGckkABnKSAAZytgAGct0ABnMBAAZzBAAGcwYABnMIAAZzCgAGcwwABnMOAAZzDwAGcxIABnMrAAZzTAAGc04ABnNQAAZzUgAGc1QABnNWAAZzWAAGc1oABnNcAAZzfQAGc4AABnODAAZzhgAGc4kABnOMAAZzjwAGc5IABnOVAAZzlwAGdBIABnQUAAZ0FgAGdBgABnQbAAZ0HAAGdB0ABnQeAAZ0HwAGdCEABnQjAAZ0JAAGdCUABnQnAAZ0KAAGdKMABnSlAAZ0pwAGdKkABnSsAAZ0rQAGdK4ABnSvAAZ0sAAGdLIABnS0AAZ0tQAGdLYABnS4AAZ0uQAGdTQABnU2AAZ1OQAGdTsABnU+AAZ1PwAGdUAABnVBAAZ1QgAGdUQABnVGAAZ1RwAGdUgABnVKAAZ1SwAGdWQABnVlAAZ1ZgAGdWgABnXjAAZ15QAGdecABnXpAAZ17AAGde0ABnXuAAZ17wAGdfAABnXyAAZ19AAGdfUABnX2AAZ1+AAGdfkABnZ0AAZ2dgAGdngABnZ6AAZ2fQAGdn4ABnZ/AAZ2gAAGdoEABnaDAAZ2hQAGdoYABnaHAAZ2iQAGdooABncFAAZ3BwAGdwkABncLAAZ3DgAGdw8ABncQAAZ3EQAGdxIABncUAAZ3FgAGdxcABncYAAZ3GgAGdxsABneWAAZ3mAAGd5oABnecAAZ3nwAGd6AABnehAAZ3ogAGd6MABnelAAZ3pwAGd6gABnepAAZ3qwAGd6wABngnAAZ4KQAGeCsABngtAAZ4MAAGeDEABngyAAZ4MwAGeDQABng2AAZ4OAAGeDkABng6AAZ4PAAGeD0ABniGAAZ4qgAGeNEABnj1AAZ4+AAGePsABnj9AAZ4/wAGeQEABnkDAAZ5BAAGeQcABnkgAAZ5PQAGeUAABnlDAAZ5RgAGeUkABnlMAAZ5TwAGeVIABnlvAAZ5cgAGeXUABnl4AAZ5ewAGeX4ABnmBAAZ5hAAGeYYABnoBAAZ6AwAGegYABnoIAAZ6CwAGegwABnoNAAZ6DgAGeg8ABnoRAAZ6FAAGehUABnoWAAZ6GAAGehkABnqUAAZ6lgAGepkABnqbAAZ6ngAGep8ABnqgAAZ6oQAGeqIABnqkAAZ6pwAGeqgABnqpAAZ6qwAGeqwABnsnAAZ7KQAGeywABnsuAAZ7MQAGezIABnszAAZ7NAAGezUABns3AAZ7OgAGezsABns8AAZ7PgAGez8ABnu6AAZ7vAAGe78ABnvBAAZ7xAAGe8UABnvGAAZ7xwAGe8gABnvKAAZ7zQAGe84ABnvPAAZ70QAGe9IABnxNAAZ8TwAGfFEABnxTAAZ8VgAGfFcABnxYAAZ8WQAGfFoABnxcAAZ8XwAGfGAABnxhAAZ8YwAGfGQABnzfAAZ84QAGfOMABnzlAAZ86AAGfOkABnzqAAZ86wAGfOwABnzuAAZ88QAGfPIABnzzAAZ89QAGfPYABn1xAAZ9cwAGfXYABn14AAZ9ewAGfXwABn19AAZ9fgAGfX8ABn2BAAZ9hAAGfYUABn2GAAZ9iAAGfYkABn4cAAZ+PwAGfl8ABn5/AAZ+gQAGfoMABn6FAAZ+hwAGfooABn6LAAZ+jAAGfo8ABn6QAAZ+kgAGfpMABn6WAAZ+mQAGfpoABn6bAAZ+ngAGfp8ABn6kAAZ+vQAGfsYABn7IAAZ+ywAGftQABn7XAAZ+2gAGftwABn8lAAZ/SQAGf3AABn+UAAZ/lwAGf5kABn+bAAZ/nQAGf58ABn+hAAZ/ogAGf6UABn++AAZ/3wAGf+EABn/jAAZ/5QAGf+cABn/pAAZ/6wAGf+0ABn/vAAaAEAAGgBMABoAWAAaAGQAGgBwABoAfAAaAIgAGgCUABoAoAAaAKgAGgKUABoCnAAaAqQAGgKsABoCuAAaArwAGgLAABoCxAAaAsgAGgLQABoC2AAaAtwAGgLgABoC6AAaAuwAGgTYABoE4AAaBOgAGgTwABoE/AAaBQAAGgUEABoFCAAaBQwAGgUUABoFHAAaBSAAGgUkABoFLAAaBTAAGgccABoHJAAaBzAAGgc4ABoHRAAaB0gAGgdMABoHUAAaB1QAGgdcABoHZAAaB2gAGgdsABoHdAAaB3gAGgfcABoH4AAaB+QAGgfsABoJ2AAaCeAAGgnoABoJ8AAaCfwAGgoAABoKBAAaCggAGgoMABoKFAAaChwAGgogABoKJAAaCiwAGgowABoMHAAaDCQAGgwsABoMNAAaDEAAGgxEABoMSAAaDEwAGgxQABoMWAAaDGAAGgxkABoMaAAaDHAAGgx0ABoOYAAaDmgAGg5wABoOeAAaDoQAGg6IABoOjAAaDpAAGg6UABoOnAAaDqQAGg6oABoOrAAaDrQAGg64ABoQpAAaEKwAGhC0ABoQvAAaEMgAGhDMABoQ0AAaENQAGhDYABoQ4AAaEOgAGhDsABoQ8AAaEPgAGhD8ABoS6AAaEvAAGhL4ABoTAAAaEwwAGhMQABoTFAAaExgAGhMcABoTJAAaEywAGhMwABoTNAAaEzwAGhNAABoUZAAaFPQAGhWQABoWIAAaFiwAGhY4ABoWQAAaFkgAGhZQABoWWAAaFlwAGhZoABoWzAAaF0AAGhdMABoXWAAaF2QAGhdwABoXfAAaF4gAGheUABoYCAAaGBQAGhggABoYLAAaGDgAGhhEABoYUAAaGFwAGhhkABoaUAAaGlgAGhpkABoabAAaGngAGhp8ABoagAAaGoQAGhqIABoakAAaGpwAGhqgABoapAAaGqwAGhqwABocnAAaHKQAGhywABocuAAaHMQAGhzIABoczAAaHNAAGhzUABoc3AAaHOgAGhzsABoc8AAaHPgAGhz8ABoe6AAaHvAAGh78ABofBAAaHxAAGh8UABofGAAaHxwAGh8gABofKAAaHzQAGh84ABofPAAaH0QAGh9IABohNAAaITwAGiFIABohUAAaIVwAGiFgABohZAAaIWgAGiFsABohdAAaIYAAGiGEABohiAAaIZAAGiGUABojgAAaI4gAGiOQABojmAAaI6QAGiOoABojrAAaI7AAGiO0ABojvAAaI8gAGiPMABoj0AAaI9gAGiPcABolyAAaJdAAGiXYABol4AAaJewAGiXwABol9AAaJfgAGiX8ABomBAAaJhAAGiYUABomGAAaJiAAGiYkABooEAAaKBgAGigkABooLAAaKDgAGig8ABooQAAaKEQAGihIABooUAAaKFwAGihgABooZAAaKGwAGihwABoqvAAaK0gAGivIABosSAAaLFAAGixYABosYAAaLGgAGix0ABoseAAaLHwAGiyIABosjAAaLJQAGiyYABospAAaLLAAGiy0ABosuAAaLMQAGizIABos3AAaLUAAGi1kABotbAAaLXgAGi2cABotqAAaLbQAGi28ABou4AAaL3AAGjAMABownAAaMKgAGjCwABowuAAaMMAAGjDIABow0AAaMNQAGjDgABoxRAAaMcgAGjHQABox2AAaMeAAGjHoABox8AAaMfgAGjIAABoyCAAaMowAGjKYABoypAAaMrAAGjK8ABoyyAAaMtQAGjLgABoy7AAaMvQAGjTgABo06AAaNPAAGjT4ABo1BAAaNQgAGjUMABo1EAAaNRQAGjUcABo1JAAaNSgAGjUsABo1NAAaNTgAGjckABo3LAAaNzQAGjc8ABo3SAAaN0wAGjdQABo3VAAaN1gAGjdgABo3aAAaN2wAGjdwABo3eAAaN3wAGjloABo5cAAaOXwAGjmEABo5kAAaOZQAGjmYABo5nAAaOaAAGjmoABo5sAAaObQAGjm4ABo5wAAaOcQAGjooABo6LAAaOjAAGjo4ABo8JAAaPCwAGjw0ABo8PAAaPEgAGjxMABo8UAAaPFQAGjxYABo8YAAaPGgAGjxsABo8cAAaPHgAGjx8ABo+aAAaPnAAGj54ABo+gAAaPowAGj6QABo+lAAaPpgAGj6cABo+pAAaPqwAGj6wABo+tAAaPrwAGj7AABpArAAaQLQAGkC8ABpAxAAaQNAAGkDUABpA2AAaQNwAGkDgABpA6AAaQPAAGkD0ABpA+AAaQQAAGkEEABpC8AAaQvgAGkMAABpDCAAaQxQAGkMYABpDHAAaQyAAGkMkABpDLAAaQzQAGkM4ABpDPAAaQ0QAGkNIABpFNAAaRTwAGkVEABpFTAAaRVgAGkVcABpFYAAaRWQAGkVoABpFcAAaRXgAGkV8ABpFgAAaRYgAGkWMABpGsAAaR0AAGkfcABpIbAAaSHgAGkiEABpIjAAaSJQAGkicABpIpAAaSKgAGki0ABpJGAAaSYwAGkmYABpJpAAaSbAAGkm8ABpJyAAaSdQAGkngABpKVAAaSmAAGkpsABpKeAAaSoQAGkqQABpKnAAaSqgAGkqwABpMnAAaTKQAGkywABpMuAAaTMQAGkzIABpMzAAaTNAAGkzUABpM3AAaTOgAGkzsABpM8AAaTPgAGkz8ABpO6AAaTvAAGk78ABpPBAAaTxAAGk8UABpPGAAaTxwAGk8gABpPKAAaTzQAGk84ABpPPAAaT0QAGk9IABpRNAAaUTwAGlFIABpRUAAaUVwAGlFgABpRZAAaUWgAGlFsABpRdAAaUYAAGlGEABpRiAAaUZAAGlGUABpTgAAaU4gAGlOUABpTnAAaU6gAGlOsABpTsAAaU7QAGlO4ABpTwAAaU8wAGlPQABpT1AAaU9wAGlPgABpV7AAaVnwAGlcMABpXmAAaWDQAGli0ABpZUAAaWewAGlpsABpa/AAaW4wAGluUABpboAAaW6gAGluwABpbuAAaW8QAGlvQABpb2AAaW+AAGlvsABpb9AAaW/wAGlwIABpcFAAaXBgAGlwsABpckAAaXKQAGlysABpcwAAaXMwAGlzUABpd+AAaXogAGl8kABpftAAaX8AAGl/IABpf0AAaX9gAGl/gABpf6AAaX+wAGl/4ABpgXAAaYPAAGmD4ABphAAAaYQgAGmEQABphGAAaYSAAGmEoABphMAAaYTgAGmHMABph2AAaYeQAGmHwABph/AAaYggAGmIUABpiIAAaYiwAGmI4ABpiQAAaZCwAGmQ0ABpkQAAaZEgAGmRUABpkWAAaZFwAGmRgABpkZAAaZGwAGmR0ABpkeAAaZHwAGmSEABpkiAAaZMwAGmTQABpk2AAaZsQAGmbMABpm1AAaZtwAGmboABpm7AAaZvAAGmb0ABpm+AAaZwAAGmcIABpnDAAaZxAAGmcYABpnHAAaaQgAGmkQABppHAAaaSQAGmkwABppNAAaaTgAGmk8ABppQAAaaUgAGmlQABppVAAaaVgAGmlgABppZAAaaagAGmmsABpptAAaa6AAGmuoABprsAAaa7gAGmvEABpryAAaa8wAGmvQABpr1AAaa9wAGmvkABpr6AAaa+wAGmv0ABpr+AAabeQAGm3sABpt+AAabgAAGm4MABpuEAAabhQAGm4YABpuHAAabiQAGm4sABpuMAAabjQAGm48ABpuQAAaboQAGm6IABpukAAacHwAGnCEABpwjAAacJQAGnCgABpwpAAacKgAGnCsABpwsAAacLgAGnDAABpwxAAacMgAGnDQABpw1AAacsAAGnLIABpy1AAactwAGnLoABpy7AAacvAAGnL0ABpy+AAacwAAGnMIABpzDAAacxAAGnMYABpzHAAac4AAGnOEABpziAAac5AAGnV8ABp1hAAadYwAGnWUABp1oAAadaQAGnWoABp1rAAadbAAGnW4ABp1wAAadcQAGnXIABp10AAaddQAGnfAABp3yAAad9QAGnfcABp36AAad+wAGnfwABp39AAad/gAGngAABp4CAAaeAwAGngQABp4GAAaeBwAGnhwABp41AAaeRgAGnkkABp5MAAaeTwAGnlIABp5jAAaeZgAGnmkABp5sAAaebwAGnnEABp56AAaehwAGnpYABp62AAafSQAGn2wABp+MAAafrAAGn64ABp+wAAafsgAGn7QABp+3AAafuAAGn7kABp+8AAafvQAGn78ABp/AAAafwgAGn8UABp/GAAafxwAGn8oABp/LAAaf0AAGn+kABp/yAAaf9AAGn/YABp//AAagAgAGoAUABqAHAAagUAAGoHQABqCbAAagvwAGoMIABqDEAAagxgAGoMgABqDKAAagzAAGoM0ABqDQAAag6QAGoQoABqEMAAahDgAGoRAABqESAAahFAAGoRYABqEYAAahGgAGoTsABqE+AAahQQAGoUQABqFHAAahSgAGoU0ABqFQAAahUwAGoVUABqHQAAah0gAGodQABqHWAAah2QAGodoABqHbAAah3AAGod0ABqHfAAah4QAGoeIABqHjAAah5QAGoeYABqJhAAaiYwAGomUABqJnAAaiagAGomsABqJsAAaibQAGom4ABqJwAAaicgAGonMABqJ0AAaidgAGoncABqLyAAai9AAGovcABqL5AAai/AAGov0ABqL+AAai/wAGowAABqMCAAajBAAGowUABqMGAAajCAAGowkABqMiAAajIwAGoyQABqMmAAajoQAGo6MABqOlAAajpwAGo6oABqOrAAajrAAGo60ABqOuAAajsAAGo7IABqOzAAajtAAGo7YABqO3AAakMgAGpDQABqQ2AAakOAAGpDsABqQ8AAakPQAGpD4ABqQ/AAakQQAGpEMABqREAAakRQAGpEcABqRIAAakwwAGpMUABqTHAAakyQAGpMwABqTNAAakzgAGpM8ABqTQAAak0gAGpNQABqTVAAak1gAGpNgABqTZAAalVAAGpVYABqVYAAalWgAGpV0ABqVeAAalXwAGpWAABqVhAAalYwAGpWUABqVmAAalZwAGpWkABqVqAAal5QAGpecABqXpAAal6wAGpe4ABqXvAAal8AAGpfEABqXyAAal9AAGpfYABqX3AAal+AAGpfoABqX7AAamRAAGpmgABqaPAAamswAGprYABqa4AAamugAGprwABqa+AAamwAAGpsEABqbEAAam3QAGpvoABqb8AAam/gAGpwAABqcCAAanBAAGpwYABqcIAAanJQAGpygABqcrAAanLgAGpzEABqc0AAanNwAGpzoABqc8AAantwAGp7kABqe7AAanvQAGp8AABqfBAAanwgAGp8MABqfEAAanxgAGp8gABqfJAAanygAGp8wABqfNAAaoSAAGqEoABqhMAAaoTgAGqFEABqhSAAaoUwAGqFQABqhVAAaoVwAGqFkABqhaAAaoWwAGqF0ABqheAAao2QAGqNsABqjdAAao3wAGqOIABqjjAAao5AAGqOUABqjmAAao6AAGqOoABqjrAAao7AAGqO4ABqjvAAapagAGqWwABqlvAAapcQAGqXQABql1AAapdgAGqXcABql4AAapegAGqXwABql9AAapfgAGqYAABqmBAAap/AAGqf4ABqoAAAaqAgAGqgUABqoGAAaqBwAGqggABqoJAAaqCwAGqg0ABqoOAAaqDwAGqhEABqoSAAaqjQAGqo8ABqqRAAaqkwAGqpYABqqXAAaqmAAGqpkABqqaAAaqnAAGqp4ABqqfAAaqoAAGqqIABqqjAAarHgAGqyAABqsiAAarJAAGqycABqsoAAarKQAGqyoABqsrAAarLQAGqy8ABqswAAarMQAGqzMABqs0AAarxwAGq+oABqwKAAasKgAGrCwABqwuAAasMAAGrDIABqw1AAasNgAGrDcABqw6AAasOwAGrD0ABqw+AAasQQAGrEQABqxFAAasRgAGrEkABqxKAAasTwAGrGgABqxxAAascwAGrHYABqx/AAasggAGrIUABqyHAAas0AAGrPQABq0bAAatPwAGrUIABq1EAAatRgAGrUgABq1KAAatTAAGrU0ABq1QAAataQAGrYoABq2MAAatjgAGrZAABq2SAAatlAAGrZYABq2YAAatmgAGrbsABq2+AAatwQAGrcQABq3HAAatygAGrc0ABq3QAAat0wAGrdUABq5QAAauUgAGrlQABq5WAAauWQAGrloABq5bAAauXAAGrl0ABq5fAAauYQAGrmIABq5jAAauZQAGrmYABq7hAAau4wAGruUABq7nAAau6gAGrusABq7sAAau7QAGru4ABq7wAAau8gAGrvMABq70AAau9gAGrvcABq9yAAavdAAGr3cABq95AAavfAAGr30ABq9+AAavfwAGr4AABq+CAAavhAAGr4UABq+GAAaviAAGr4kABq+iAAavowAGr6QABq+mAAawIQAGsCMABrAlAAawJwAGsCoABrArAAawLAAGsC0ABrAuAAawMAAGsDIABrAzAAawNAAGsDYABrA3AAawsgAGsLQABrC2AAawuAAGsLsABrC8AAawvQAGsL4ABrC/AAawwQAGsMMABrDEAAawxQAGsMcABrDIAAaxQwAGsUUABrFHAAaxSQAGsUwABrFNAAaxTgAGsU8ABrFQAAaxUgAGsVQABrFVAAaxVgAGsVgABrFZAAax1AAGsdYABrHYAAax2gAGsd0ABrHeAAax3wAGseAABrHhAAax4wAGseUABrHmAAax5wAGsekABrHqAAayZQAGsmcABrJpAAayawAGsm4ABrJvAAaycAAGsnEABrJyAAaydAAGsnYABrJ3AAayeAAGsnoABrJ7AAayxAAGsugABrMPAAazMwAGszYABrM5AAazOwAGsz0ABrM/AAazQQAGs0IABrNFAAazXgAGs3sABrN+AAazgQAGs4QABrOHAAazigAGs40ABrOQAAazrQAGs7AABrOzAAaztgAGs7kABrO8AAazvwAGs8IABrPEAAa0PwAGtEEABrREAAa0RgAGtEkABrRKAAa0SwAGtEwABrRNAAa0TwAGtFIABrRTAAa0VAAGtFYABrRXAAa00gAGtNQABrTXAAa02QAGtNwABrTdAAa03gAGtN8ABrTgAAa04gAGtOUABrTmAAa05wAGtOkABrTqAAa1ZQAGtWcABrVqAAa1bAAGtW8ABrVwAAa1cQAGtXIABrVzAAa1dQAGtXgABrV5AAa1egAGtXwABrV9AAa1+AAGtfoABrX9AAa1/wAGtgIABrYDAAa2BAAGtgUABrYGAAa2CAAGtgsABrYMAAa2DQAGtg8ABrYQAAa2iwAGto0ABraPAAa2kQAGtpQABraVAAa2lgAGtpcABraYAAa2mgAGtp0ABraeAAa2nwAGtqEABraiAAa3HQAGtx8ABrchAAa3IwAGtyYABrcnAAa3KAAGtykABrcqAAa3LAAGty8ABrcwAAa3MQAGtzMABrc0AAa3rwAGt7EABre0AAa3tgAGt7kABre6AAa3uwAGt7wABre9AAa3vwAGt8IABrfDAAa3xAAGt8YABrfHAAa4WgAGuH0ABridAAa4vQAGuL8ABrjBAAa4wwAGuMUABrjIAAa4yQAGuMoABrjNAAa4zgAGuNAABrjRAAa40wAGuNYABrjXAAa42AAGuNsABrjcAAa45QAGuP4ABrkHAAa5CQAGuQsABrkUAAa5FwAGuRoABrkcAAa5ZQAGuYkABrmwAAa51AAGudcABrnZAAa52wAGud0ABrnfAAa54QAGueIABrnlAAa5/gAGuh8ABrohAAa6IwAGuiUABronAAa6KQAGuisABrotAAa6LwAGulAABrpTAAa6VgAGulkABrpcAAa6XwAGumIABrplAAa6aAAGumoABrrlAAa65wAGuukABrrrAAa67gAGuu8ABrrwAAa68QAGuvIABrr0AAa69gAGuvcABrr4AAa6+gAGuvsABrt2AAa7eAAGu3oABrt8AAa7fwAGu4AABruBAAa7ggAGu4MABruFAAa7hwAGu4gABruJAAa7iwAGu4wABrwHAAa8CQAGvAwABrwOAAa8EQAGvBIABrwTAAa8FAAGvBUABrwXAAa8GQAGvBoABrwbAAa8HQAGvB4ABrw3AAa8OAAGvDkABrw7AAa8tgAGvLgABry6AAa8vAAGvL8ABrzAAAa8wQAGvMIABrzDAAa8xQAGvMcABrzIAAa8yQAGvMsABrzMAAa9RwAGvUkABr1LAAa9TQAGvVAABr1RAAa9UgAGvVMABr1UAAa9VgAGvVgABr1ZAAa9WgAGvVwABr1dAAa92AAGvdoABr3cAAa93gAGveEABr3iAAa94wAGveQABr3lAAa95wAGvekABr3qAAa96wAGve0ABr3uAAa+aQAGvmsABr5tAAa+bwAGvnIABr5zAAa+dAAGvnUABr52AAa+eAAGvnoABr57AAa+fAAGvn4ABr5/AAa++gAGvvwABr7+AAa/AAAGvwMABr8EAAa/BQAGvwYABr8HAAa/CQAGvwsABr8MAAa/DQAGvw8ABr8QAAa/WQAGv30ABr+kAAa/yAAGv8sABr/NAAa/zwAGv9EABr/TAAa/1QAGv9YABr/ZAAa/8gAGwA8ABsARAAbAEwAGwBUABsAXAAbAGQAGwBsABsAdAAbAOgAGwD0ABsBAAAbAQwAGwEYABsBJAAbATAAGwE8ABsBRAAbAzAAGwM4ABsDQAAbA0gAGwNUABsDWAAbA1wAGwNgABsDZAAbA2wAGwN0ABsDeAAbA3wAGwOEABsDiAAbBXQAGwV8ABsFhAAbBYwAGwWYABsFnAAbBaAAGwWkABsFqAAbBbAAGwW4ABsFvAAbBcAAGwXIABsFzAAbB7gAGwfAABsHyAAbB9AAGwfcABsH4AAbB+QAGwfoABsH7AAbB/QAGwf8ABsIAAAbCAQAGwgMABsIEAAbCfwAGwoEABsKDAAbChQAGwogABsKJAAbCigAGwosABsKMAAbCjgAGwpAABsKRAAbCkgAGwpQABsKVAAbDEAAGwxIABsMUAAbDFgAGwxkABsMaAAbDGwAGwxwABsMdAAbDHwAGwyEABsMiAAbDIwAGwyUABsMmAAbDoQAGw6MABsOmAAbDqAAGw6sABsOsAAbDrQAGw64ABsOvAAbDsQAGw7MABsO0AAbDtQAGw7cABsO4AAbD1wAGxFIABsRUAAbEVgAGxFgABsRbAAbEXAAGxF0ABsReAAbEXwAGxGEABsRjAAbEZAAGxGUABsRnAAbEaAAGxPsABsUeAAbFPgAGxV4ABsVgAAbFYgAGxWQABsVmAAbFaQAGxWoABsVrAAbFbgAGxW8ABsVxAAbFcgAGxXQABsV3AAbFeAAGxXkABsV8AAbFfQAGxYIABsWbAAbFpAAGxaYABsWoAAbFsQAGxbQABsW3AAbFuQAGxgIABsYmAAbGTQAGxnEABsZ0AAbGdgAGxngABsZ6AAbGfAAGxn4ABsZ/AAbGggAGxpsABsa8AAbGvgAGxsAABsbCAAbGxAAGxsYABsbIAAbGygAGxswABsbtAAbG8AAGxvMABsb2AAbG+QAGxvwABsb/AAbHAgAGxwUABscHAAbHggAGx4QABseGAAbHiAAGx4sABseMAAbHjQAGx44ABsePAAbHkQAGx5MABseUAAbHlQAGx5cABseYAAbIEwAGyBUABsgXAAbIGQAGyBwABsgdAAbIHgAGyB8ABsggAAbIIgAGyCQABsglAAbIJgAGyCgABsgpAAbIpAAGyKYABsipAAbIqwAGyK4ABsivAAbIsAAGyLEABsiyAAbItAAGyLYABsi3AAbIuAAGyLoABsi7AAbI1AAGyNUABsjWAAbI2AAGyVMABslVAAbJVwAGyVkABslcAAbJXQAGyV4ABslfAAbJYAAGyWIABslkAAbJZQAGyWYABsloAAbJaQAGyeQABsnmAAbJ6AAGyeoABsntAAbJ7gAGye8ABsnwAAbJ8QAGyfMABsn1AAbJ9gAGyfcABsn5AAbJ+gAGynUABsp3AAbKeQAGynsABsp+AAbKfwAGyoAABsqBAAbKggAGyoQABsqGAAbKhwAGyogABsqKAAbKiwAGywYABssIAAbLCgAGywwABssPAAbLEAAGyxEABssSAAbLEwAGyxUABssXAAbLGAAGyxkABssbAAbLHAAGy5cABsuZAAbLmwAGy50ABsugAAbLoQAGy6IABsujAAbLpAAGy6YABsuoAAbLqQAGy6oABsusAAbLrQAGy/YABswaAAbMQQAGzGUABsxoAAbMagAGzGwABsxuAAbMcAAGzHIABsxzAAbMdgAGzI8ABsysAAbMrgAGzLAABsyyAAbMtAAGzLYABsy4AAbMugAGzNcABszaAAbM3QAGzOAABszjAAbM5gAGzOkABszsAAbM7gAGzWkABs1rAAbNbQAGzW8ABs1yAAbNcwAGzXQABs11AAbNdgAGzXgABs16AAbNewAGzXwABs1+AAbNfwAGzfoABs38AAbN/gAGzgAABs4DAAbOBAAGzgUABs4GAAbOBwAGzgkABs4LAAbODAAGzg0ABs4PAAbOEAAGzosABs6NAAbOjwAGzpEABs6UAAbOlQAGzpYABs6XAAbOmAAGzpoABs6cAAbOnQAGzp4ABs6gAAbOoQAGzxwABs8eAAbPIQAGzyMABs8mAAbPJwAGzygABs8pAAbPKgAGzywABs8uAAbPLwAGzzAABs8yAAbPMwAGz64ABs+wAAbPsgAGz7QABs+3AAbPuAAGz7kABs+6AAbPuwAGz70ABs+/AAbPwAAGz8EABs/DAAbPxAAG0D8ABtBBAAbQQwAG0EUABtBIAAbQSQAG0EoABtBLAAbQTAAG0E4ABtBQAAbQUQAG0FIABtBUAAbQVQAG0NAABtDSAAbQ1AAG0NYABtDZAAbQ2gAG0NsABtDcAAbQ3QAG0N8ABtDhAAbQ4gAG0OMABtDlAAbQ5gAG0PcABtD4AAbQ+gAG0XUABtF3AAbReQAG0XsABtF+AAbRfwAG0YAABtGBAAbRggAG0YQABtGHAAbRiAAG0YkABtGLAAbRjAAG0gcABtIJAAbSCwAG0g0ABtIQAAbSEQAG0hIABtITAAbSFAAG0hYABtIZAAbSGgAG0hsABtIdAAbSHgAG0pkABtKbAAbSngAG0qAABtKjAAbSpAAG0qUABtKmAAbSpwAG0qkABtKsAAbSrQAG0q4ABtKwAAbSsQAG00QABtNnAAbThwAG06cABtOpAAbTqwAG060ABtOvAAbTsgAG07MABtO0AAbTtwAG07gABtO6AAbTuwAG074ABtPBAAbTwgAG08MABtPGAAbTxwAG08wABtPlAAbT7gAG0/AABtPzAAbT/AAG0/8ABtQCAAbUBAAG1E0ABtRxAAbUmAAG1LwABtS/AAbUwQAG1MMABtTFAAbUxwAG1MkABtTKAAbUzQAG1OYABtUHAAbVCQAG1QsABtUNAAbVDwAG1REABtUTAAbVFQAG1RcABtU4AAbVOwAG1T4ABtVBAAbVRAAG1UcABtVKAAbVTQAG1VAABtVSAAbVzQAG1c8ABtXRAAbV0wAG1dYABtXXAAbV2AAG1dkABtXaAAbV3AAG1d4ABtXfAAbV4AAG1eIABtXjAAbWXgAG1mAABtZiAAbWZAAG1mcABtZoAAbWaQAG1moABtZrAAbWbQAG1m8ABtZwAAbWcQAG1nMABtZ0AAbW7wAG1vEABtb0AAbW9gAG1vk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ABwS9AAcEvgAHBL8ABwTAAAcEwQAHBMMABwTFAAcExgAHBMcABwTJAAcEygAHBUUABwVHAAcFSQAHBUsABwVOAAcFTwAHBVAABwVRAAcFUgAHBVQABwVWAAcFVwAHBVgABwVaAAcFWwAHBdYABwXYAAcF2gAHBdwABwXfAAcF4AAHBeEABwXiAAcF4wAHBeUABwXnAAcF6AAHBekABwXrAAcF7AAHBjUABwZZAAcGgAAHBqQABwanAAcGqQAHBqsABwatAAcGrwAHBrEABwayAAcGtQAHBs4ABwbrAAcG7QAHBu8ABwbxAAcG8wAHBvUABwb3AAcG+QAHBxYABwcZAAcHHAAHBx8ABwciAAcHJQAHBygABwcrAAcHLQAHB6gABweqAAcHrAAHB64ABwexAAcHsgAHB7MABwe0AAcHtQAHB7cABwe5AAcHugAHB7sABwe9AAcHvgAHCDkABwg7AAcIPQAHCD8ABwhCAAcIQwAHCEQABwhFAAcIRgAHCEgABwhKAAcISwAHCEwABwhOAAcITwAHCMoABwjMAAcIzgAHCNAABwjTAAcI1AAHCNUABwjWAAcI1wAHCNkABwjbAAcI3AAHCN0ABwjfAAcI4AAHCVsABwldAAcJYAAHCWIABwllAAcJZgAHCWcABwloAAcJaQAHCWsABwltAAcJbgAHCW8ABwlxAAcJcgAHCe0ABwnvAAcJ8QAHCfMABwn2AAcJ9wAHCfgABwn5AAcJ+gAHCfwABwn+AAcJ/wAHCgAABwoCAAcKAwAHCn4ABwqAAAcKggAHCoQABwqHAAcKiAAHCokABwqKAAcKiwAHCo0ABwqPAAcKkAAHCpEABwqTAAcKlAAHCw8ABwsRAAcLEwAHCxUABwsYAAcLGQAHCxoABwsbAAcLHAAHCx4ABwsgAAcLIQAHCyIABwskAAcLJQAHC7gABwvbAAcL+wAHDBsABwwdAAcMHwAHDCEABwwjAAcMJgAHDCcABwwoAAcMKwAHDCwABwwuAAcMLwAHDDEABww0AAcMNQAHDDYABww5AAcMOgAHDD8ABwxYAAcMYQAHDGMABwxlAAcMbgAHDHEABwx0AAcMdgAHDL8ABwzjAAcNCgAHDS4ABw0xAAcNMwAHDTUABw03AAcNOQAHDTsABw08AAcNPwAHDVgABw15AAcNewAHDX0ABw1/AAcNgQAHDYM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ABx7eAAce3wAHHuEABx7jAAce5AAHHuUABx7nAAce6AAHHzEABx9VAAcffAAHH6AABx+jAAcfpQAHH6cABx+pAAcfqwAHH60ABx+uAAcfsQAHH8oABx/nAAcf6QAHH+sABx/tAAcf7wAHH/EABx/zAAcf9QAHIBIAByAVAAcgGAAHIBsAByAeAAcgIQAHICQAByAnAAcgKQAHIKQAByCmAAcgqAAHIKoAByCtAAcgrgAHIK8AByCwAAcgsQAHILMAByC1AAcgtgAHILcAByC5AAcgugAHITUAByE3AAchOQAHITsAByE+AAchPwAHIUAAByFBAAchQgAHIUQAByFGAAchRwAHIUgAByFKAAchSwAHIcYAByHIAAchygAHIcwAByHPAAch0AAHIdEAByHSAAch0wAHIdUAByHXAAch2AAHIdkAByHbAAch3AAHIlcAByJZAAciXAAHIl4AByJhAAciYgAHImMAByJkAAciZQAHImcAByJpAAciagAHImsAByJtAAcibgAHIukAByLrAAci7QAHIu8AByLyAAci8wAHIvQAByL1AAci9gAHIvgAByL6AAci+wAHIvwAByL+AAci/wAHI3oAByN8AAcjfgAHI4AAByODAAcjhAAHI4UAByOGAAcjhwAHI4kAByOLAAcjjAAHI40AByOPAAcjkAAHJAsAByQNAAckDwAHJBEAByQUAAckFQAHJBYAByQXAAckGAAHJBoAByQcAAckHQAHJB4AByQgAAckIQAHJLQAByTXAAck9wAHJRcAByUZAAclGwAHJR0AByUfAAclIgAHJSMAByUkAAclJwAHJSgAByUqAAclKwAHJS0AByUwAAclMQAHJTIAByU1AAclNgAHJTsAByVUAAclXQAHJV8AByVhAAclagAHJW0AByVwAAclcgAHJbsAByXfAAcmBgAHJioAByYtAAcmLwAHJjEAByYzAAcmNQAHJjcAByY4AAcmOwAHJlQAByZ1AAcmdwAHJnkAByZ7AAcmfQAHJn8AByaBAAcmgwAHJoUAByamAAcmqQAHJqwAByavAAcmsgAHJrUABya4AAcmuwAHJr4ABybAAAcnOwAHJz0AByc/AAcnQQAHJ0QABydFAAcnRgAHJ0cABydIAAcnSgAHJ0wABydNAAcnTgAHJ1AABydRAAcnzAAHJ84AByfQAAcn0gAHJ9UAByfWAAcn1wAHJ9gAByfZAAcn2wAHJ90AByfeAAcn3wAHJ+EAByfiAAcoXQAHKF8AByhiAAcoZAAHKGcAByhoAAcoaQAHKGoAByhrAAcobQAHKG8AByhwAAcocQAHKHMAByh0AAcojQAHKI4AByiPAAcokQAHKQwABykOAAcpEAAHKRIABykVAAcpFgAHKRcABykYAAcpGQAHKRsABykdAAcpHgAHKR8ABykhAAcpIgAHKZ0ABymfAAcpoQAHKaMABymmAAcppwAHKagABympAAcpqgAHKawABymuAAcprwAHKbAABymyAAcpswAHKi4AByowAAcqMgAHKjQAByo3AAcqOAAHKjkAByo6AAcqOwAHKj0AByo/AAcqQAAHKkEABypDAAcqRAAHKr8AByrBAAcqwwAHKsUAByrIAAcqyQAHKsoAByrLAAcqzAAHKs4AByrQAAcq0QAHKtIAByrUAAcq1QAHK1AABytSAAcrVAAHK1YABytZAAcrWgAHK1sABytcAAcrXQAHK18ABythAAcrYgAHK2MABytlAAcrZgAHK68AByvTAAcr+gAHLB4ABywhAAcsIwAHLCUABywnAAcsKQAHLCsABywsAAcsLwAHLEgAByxlAAcsZwAHLGkAByxrAAcsbQAHLG8AByxxAAcscwAHLJAAByyTAAcslgAHLJkAByycAAcsnwAHLKIAByylAAcspwAHLSIABy0kAActJgAHLSgABy0rAActLAAHLS0ABy0uAActLwAHLTEABy0zAActNAAHLTUABy03AActOAAHLbMABy21AActtwAHLbkABy28AActvQAHLb4ABy2/AActwAAHLcIABy3EAActxQAHLcYABy3IAActyQAHLkQABy5GAAcuSAAHLkoABy5NAAcuTgAHLk8ABy5QAAcuUQAHLlMABy5VAAcuVgAHLlcABy5ZAAcuWgAHLtUABy7XAAcu2gAHLtwABy7fAAcu4AAHLuEABy7iAAcu4wAHLuUABy7nAAcu6AAHLukABy7rAAcu7AAHL2cABy9pAAcvawAHL20ABy9wAAcvcQAHL3IABy9zAAcvdAAHL3YABy94AAcveQAHL3oABy98AAcvfQAHL/gABy/6AAcv/AAHL/4ABzABAAcwAgAHMAMABzAEAAcwBQAHMAcABzAJAAcwCgAHMAsABzANAAcwDgAHMIk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AB1U7AAdVPQAHVT8AB1VBAAdVQwAHVUUAB1VHAAdVbAAHVW8AB1VyAAdVdQAHVXgAB1V7AAdVfgAHVYEAB1WEAAdVhwAHVYkAB1YEAAdWBgAHVgkAB1YLAAdWDgAHVg8AB1YQAAdWEQAHVhIAB1YUAAdWFgAHVhcAB1YYAAdWGgAHVhsAB1YsAAdWLQAHVi8AB1aqAAdWrAAHVq4AB1awAAdWswAHVrQAB1a1AAdWtgAHVrcAB1a5AAdWuwAHVrwAB1a9AAdWvwAHVsAAB1c7AAdXPQAHV0AAB1dCAAdXRQAHV0YAB1dHAAdXSAAHV0kAB1dLAAdXTQAHV04AB1dPAAdXUQAHV1IAB1djAAdXZAAHV2YAB1fhAAdX4wAHV+UAB1fnAAdX6gAHV+sAB1fsAAdX7QAHV+4AB1fwAAdX8gAHV/MAB1f0AAdX9gAHV/cAB1hyAAdYdAAHWHcAB1h5AAdYfAAHWH0AB1h+AAdYfwAHWIAAB1iCAAdYhAAHWIUAB1iGAAdYiAAHWIkAB1iaAAdYmwAHWJ0AB1kYAAdZGgAHWRwAB1keAAdZIQAHWSIAB1kjAAdZJAAHWSUAB1knAAdZKQAHWSoAB1krAAdZLQAHWS4AB1mpAAdZqwAHWa4AB1mwAAdZswAHWbQAB1m1AAdZtgAHWbcAB1m5AAdZuwAHWbwAB1m9AAdZvwAHWcAAB1nZAAdZ2gAHWdsAB1ndAAdaWAAHWloAB1pcAAdaXgAHWmEAB1piAAdaYwAHWmQAB1plAAdaZwAHWmkAB1pqAAdaawAHWm0AB1puAAda6QAHWusAB1ruAAda8AAHWvMAB1r0AAda9QAHWvYAB1r3AAda+QAHWvsAB1r8AAda/QAHWv8AB1sAAAdbFAAHWy0AB1syAAdbNQAHWzoAB1s9AAdbPwAHW00AB1vgAAdcAwAHXCMAB1xDAAdcRQAHXEcAB1xJAAdcSwAHXE4AB1xPAAdcUAAHXFMAB1xUAAdcVgAHXFcAB1xaAAdcXQAHXF4AB1xfAAdcYgAHXGMAB1xoAAdcgQAHXIoAB1yMAAdcjwAHXJgAB1ybAAdcngAHXKAAB1zpAAddDQAHXTQAB11YAAddWwAHXV0AB11fAAddYQAHXWMAB11lAAddZgAHXWkAB12CAAddowAHXaUAB12nAAddqQAHXasAB12tAAddrwAHXbEAB12zAAdd1AAHXdcAB13aAAdd3QAHXeAAB13jAAdd5gAHXekAB13sAAdd7gAHXmkAB15rAAdebQAHXm8AB15yAAdecwAHXnQAB151AAdedgAHXngAB156AAdeewAHXnwAB15+AAdefwAHXvoAB178AAde/gAHXwAAB18DAAdfBAAHXwUAB18GAAdfBwAHXwkAB18LAAdfDAAHXw0AB18PAAdfEAAHX4sAB1+NAAdfkAAHX5IAB1+VAAdflgAHX5cAB1+YAAdfmQAHX5sAB1+dAAdfngAHX58AB1+hAAdfogAHX7sAB1+8AAdfvQAHX78AB2A6AAdgPAAHYD4AB2BAAAdgQwAHYEQAB2BFAAdgRgAHYEcAB2BJAAdgSwAHYEwAB2BNAAdgTwAHYFAAB2DLAAdgzQAHYM8AB2DRAAdg1AAHYNUAB2DWAAdg1wAHYNgAB2DaAAdg3AAHYN0AB2DeAAdg4AAHYOEAB2FcAAdhXgAHYWAAB2FiAAdhZQAHYWYAB2FnAAdhaAAHYWkAB2FrAAdhbQAHYW4AB2FvAAdhcQAHYXIAB2HtAAdh7wAHYfEAB2HzAAdh9gAHYfcAB2H4AAdh+QAHYfoAB2H8AAdh/gAHYf8AB2IAAAdiAgAHYgMAB2J+AAdigAAHYoIAB2KEAAdihwAHYogAB2KJAAdiigAHYosAB2KNAAdijwAHYpAAB2KRAAdikwAHYpQAB2LdAAdjAQAHYygAB2NMAAdjTwAHY1IAB2NUAAdjVgAHY1gAB2NaAAdjWwAHY14AB2N3AAdjlAAHY5cAB2OaAAdjnQAHY6AAB2OjAAdjpgAHY6kAB2PGAAdjyQAHY8wAB2PPAAdj0gAHY9UAB2PYAAdj2wAHY90AB2RYAAdkWgAHZF0AB2RfAAdkYgAHZGMAB2RkAAdkZQAHZGYAB2RoAAdkawAHZGwAB2RtAAdkbwAHZHAAB2TrAAdk7QAHZPAAB2TyAAdk9QAHZPYAB2T3AAdk+AAHZPkAB2T7AAdk/gAHZP8AB2UAAAdlAgAHZQMAB2V+AAdlgAAHZYMAB2WFAAdliAAHZYkAB2WKAAdliwAHZYwAB2WOAAdlkQAHZZIAB2WTAAdllQAHZZYAB2YRAAdmEwAHZhYAB2YYAAdmGwAHZhwAB2YdAAdmHgAHZh8AB2YhAAdmJAAHZiUAB2YmAAdmKAAHZikAB2akAAdmpgAHZqgAB2aqAAdmrQAHZq4AB2avAAdmsAAHZrEAB2azAAdmtgAHZrcAB2a4AAdmugAHZrsAB2c2AAdnOAAHZzoAB2c8AAdnPwAHZ0AAB2dBAAdnQgAHZ0MAB2dFAAdnSAAHZ0kAB2dKAAdnTAAHZ00AB2fIAAdnygAHZ80AB2fPAAdn0gAHZ9MAB2fUAAdn1QAHZ9YAB2fYAAdn2wAHZ9wAB2fdAAdn3wAHZ+AAB2fxAAdn9gAHZ/kAB2f7AAdoNAAHaDcAB2g5AAdoPAAHaD8AB2hCAAdoRQAHaEoAB2hbAAdodAAHaIUAB2ieAAdotQAHaMcAB2lCAAdpRAAHaUYAB2lIAAdpSwAHaUwAB2lNAAdpTgAHaU8AB2lRAAdpVAAHaVUAB2lWAAdpWAAHaVkAB2nUAAdp1gAHadgAB2naAAdp3QAHad4AB2nfAAdp4AAHaeEAB2njAAdp5gAHaecAB2noAAdp6gAHaesAB2pmAAdqaAAHamsAB2ptAAdqcAAHanEAB2pyAAdqcwAHanQAB2p2AAdqeQAHanoAB2p7AAdqfQAHan4AB2qPAAdqlAAHapcAB2qZAAdqngAHatcAB2raAAdq3AAHat8AB2riAAdq5QAHaugAB2trAAdrjwAHa7MAB2vWAAdr/QAHbB0AB2xEAAdsawAHbIsAB2yvAAds0wAHbNUAB2zYAAds2gAHbNwAB2zeAAds4QAHbOQAB2zmAAds6AAHbOsAB2ztAAds7wAHbPIAB2z1AAds9gAHbPsAB20UAAdtGQAHbRsAB20gAAdtIwAHbSUAB21uAAdtkgAHbbkAB23dAAdt4AAHbeIAB23kAAdt5gAHbegAB23qAAdt6wAHbe4AB24HAAduLAAHbi4AB24wAAduMgAHbjQAB242AAduOAAHbjoAB248AAduPgAHbmMAB25mAAduaQAHbmwAB25vAAducgAHbnUAB254AAduewAHbn4AB26AAAdu+wAHbv0AB28AAAdvAgAHbwUAB28GAAdvBwAHbwgAB28JAAdvCwAHbw0AB28OAAdvDwAHbxEAB28SAAdvIwAHbyQAB28mAAdvoQAHb6MAB2+lAAdvpwAHb6oAB2+rAAdvrAAHb60AB2+uAAdvsAAHb7IAB2+zAAdvtAAHb7YAB2+3AAdwMgAHcDQAB3A3AAdwOQAHcDwAB3A9AAdwPgAHcD8AB3BAAAdwQgAHcEQAB3BFAAdwRgAHcEgAB3BJAAdwWgAHcFsAB3BdAAdw2AAHcNoAB3DcAAdw3gAHcOEAB3DiAAdw4wAHcOQAB3DlAAdw5wAHcOkAB3DqAAdw6wAHcO0AB3DuAAdxaQAHcWsAB3FuAAdxcAAHcXMAB3F0AAdxdQAHcXYAB3F3AAdxeQAHcXsAB3F8AAdxfQAHcX8AB3GAAAdxkQAHcZIAB3GUAAdyDwAHchEAB3ITAAdyFQAHchgAB3IZAAdyGgAHchsAB3IcAAdyHgAHciAAB3IhAAdyIgAHciQAB3IlAAdyoAAHcqIAB3KlAAdypwAHcqoAB3KrAAdyrAAHcq0AB3KuAAdysAAHcrIAB3KzAAdytAAHcrYAB3K3AAdy0AAHctEAB3LSAAdy1AAHc08AB3NRAAdzUwAHc1UAB3NYAAdzWQAHc1oAB3NbAAdzXAAHc14AB3NgAAdzYQAHc2IAB3NkAAdzZQAHc+AAB3PiAAdz5QAHc+cAB3PqAAdz6wAHc+wAB3PtAAdz7gAHc/AAB3PyAAdz8wAHc/QAB3P2AAdz9wAHdBQAB3QtAAd0MgAHdDUAB3Q6AAd0PQAHdD8AB3RUAAd05wAHdQoAB3UqAAd1SgAHdUwAB3VOAAd1UAAHdVIAB3VVAAd1VgAHdVcAB3VaAAd1WwAHdV0AB3VeAAd1YQAHdWQAB3VlAAd1ZgAHdWkAB3VqAAd1bwAHdYgAB3WRAAd1kwAHdZYAB3WfAAd1ogAHdaUAB3WnAAd18AAHdhQAB3Y7AAd2XwAHdmIAB3ZkAAd2ZgAHdmgAB3ZqAAd2bAAHdm0AB3ZwAAd2iQAHdqoAB3asAAd2rgAHdrAAB3ayAAd2tAAHdrYAB3a4AAd2ugAHdtsAB3beAAd24QAHduQAB3bnAAd26gAHdu0AB3bwAAd28wAHdvUAB3dwAAd3cgAHd3QAB3d2AAd3eQAHd3oAB3d7AAd3fAAHd30AB3d/AAd3gQAHd4IAB3eDAAd3hQAHd4YAB3gBAAd4AwAHeAUAB3gHAAd4CgAHeAsAB3gMAAd4DQAHeA4AB3gQAAd4EgAHeBMAB3gUAAd4FgAHeBcAB3iSAAd4lAAHeJcAB3iZAAd4nAAHeJ0AB3ieAAd4nwAHeKAAB3iiAAd4pAAHeKUAB3imAAd4qAAHeKkAB3jCAAd4wwAHeMQAB3jGAAd5QQAHeUMAB3lFAAd5RwAHeUoAB3lLAAd5TAAHeU0AB3lOAAd5UAAHeVIAB3lTAAd5VAAHeVYAB3lXAAd50gAHedQAB3nWAAd52AAHedsAB3ncAAd53QAHed4AB3nfAAd54QAHeeMAB3nkAAd55QAHeecAB3noAAd6YwAHemUAB3pnAAd6aQAHemwAB3ptAAd6bgAHem8AB3pwAAd6cgAHenQAB3p1AAd6dgAHengAB3p5AAd69AAHevYAB3r4AAd6+gAHev0AB3r+AAd6/wAHewAAB3sBAAd7AwAHewUAB3sGAAd7BwAHewkAB3sKAAd7hQAHe4cAB3uJAAd7iwAHe44AB3uPAAd7kAAHe5EAB3uSAAd7lAAHe5YAB3uXAAd7mAAHe5oAB3ubAAd75AAHfAgAB3wvAAd8UwAHfFYAB3xZAAd8WwAHfF0AB3xfAAd8YQAHfGIAB3xlAAd8fgAHfJsAB3yeAAd8oQAHfKQAB3ynAAd8qgAHfK0AB3ywAAd8zQAHfNAAB3zTAAd81gAHfNkAB3zcAAd83wAHfOIAB3zkAAd9XwAHfWEAB31kAAd9ZgAHfWkAB31qAAd9awAHfWwAB31tAAd9bwAHfXIAB31zAAd9dAAHfXYAB313AAd98gAHffQAB333AAd9+QAHffwAB339AAd9/gAHff8AB34AAAd+AgAHfgUAB34GAAd+BwAHfgkAB34KAAd+hQAHfocAB36KAAd+jAAHfo8AB36QAAd+kQAHfpIAB36TAAd+lQAHfpgAB36ZAAd+mgAHfpwAB36dAAd/GAAHfxoAB38dAAd/HwAHfyIAB38jAAd/JAAHfyUAB38mAAd/KAAHfysAB38sAAd/LQAHfy8AB38wAAd/swAHf9cAB3/7AAeAHgAHgEUAB4BlAAeAjAAHgLMAB4DTAAeA9wAHgRsAB4EdAAeBIAAHgSIAB4EkAAeBJgAHgSkAB4EsAAeBLgAHgTAAB4EzAAeBNQAHgTcAB4E6AAeBPQAHgT4AB4FDAAeBXAAHgWEAB4FjAAeBaAAHgWsAB4FtAAeBtgAHgdoAB4IBAAeCJQAHgigAB4IqAAeCLAAHgi4AB4IwAAeCMgAHgjMAB4I2AAeCTwAHgnQAB4J2AAeCeAAHgnoAB4J8AAeCfgAHgoAAB4KCAAeChAAHgoYAB4KrAAeCrgAHgrEAB4K0AAeCtwAHgroAB4K9AAeCwAAHgsMAB4LGAAeCyAAHg0MAB4NFAAeDSAAHg0oAB4NNAAeDTgAHg08AB4NQAAeDUQAHg1MAB4NVAAeDVgAHg1cAB4NZAAeDWgAHg2sAB4NsAAeDbgAHg+kAB4PrAAeD7QAHg+8AB4PyAAeD8wAHg/QAB4P1AAeD9gAHg/gAB4P6AAeD+wAHg/wAB4P+AAeD/wAHhHoAB4R8AAeEfwAHhIEAB4SEAAeEhQAHhIYAB4SHAAeEiAAHhIoAB4SMAAeEjQAHhI4AB4SQAAeEkQAHhKIAB4SjAAeEpQAHhSAAB4UiAAeFJAAHhSYAB4UpAAeFKgAHhSsAB4UsAAeFLQAHhS8AB4UxAAeFMgAHhTMAB4U1AAeFNgAHhbEAB4WzAAeFtgAHhbgAB4W7AAeFvAAHhb0AB4W+AAeFvwAHhcEAB4XDAAeFxAAHhcUAB4XHAAeFyAAHhdkAB4XaAAeF3AAHhlcAB4ZZAAeGWwAHhl0AB4ZgAAeGYQAHhmIAB4ZjAAeGZAAHhmYAB4ZoAAeGaQAHhmoAB4ZsAAeGbQAHhugAB4bqAAeG7QAHhu8AB4byAAeG8wAHhvQAB4b1AAeG9gAHhvgAB4b6AAeG+wAHhvwAB4b+AAeG/wAHhxgAB4cZAAeHGgAHhxwAB4eXAAeHmQAHh5sAB4edAAeHoAAHh6EAB4eiAAeHowAHh6QAB4emAAeHqAAHh6kAB4eqAAeHrAAHh60AB4goAAeIKgAHiC0AB4gvAAeIMgAHiDMAB4g0AAeINQAHiDYAB4g4AAeIOgAHiDsAB4g8AAeIPgAHiD8AB4hUAAeIbQAHiHYAB4h5AAeIfAAHiIUAB4iIAAeIiwAHiI0AB4iYAAeIpwAHiToAB4ldAAeJfQAHiZ0AB4mfAAeJoQAHiaMAB4mlAAeJqAAHiakAB4mqAAeJrQAHia4AB4mwAAeJsQAHibQAB4m3AAeJuAAHibkAB4m8AAeJvQAHicIAB4nbAAeJ5AAHieYAB4npAAeJ8gAHifUAB4n4AAeJ+gAHikMAB4pnAAeKjgAHirIAB4q1AAeKtwAHirkAB4q7AAeKvQAHir8AB4rAAAeKwwAHitwAB4r9AAeK/wAHiwEAB4sDAAeLBQAHiwcAB4sJAAeLCwAHiw0AB4suAAeLMQAHizQAB4s3AAeLOgAHiz0AB4tAAAeLQwAHi0YAB4tIAAeLwwAHi8UAB4vHAAeLyQAHi8wAB4vNAAeLzgAHi88AB4vQAAeL0gAHi9QAB4vVAAeL1gAHi9gAB4vZAAeMVAAHjFYAB4xYAAeMWgAHjF0AB4xeAAeMXwAHjGAAB4xhAAeMYwAHjGUAB4xmAAeMZwAHjGkAB4xqAAeM5QAHjOcAB4zqAAeM7AAHjO8AB4zwAAeM8QAHjPIAB4zzAAeM9QAHjPcAB4z4AAeM+QAHjPsAB4z8AAeNFQAHjRYAB40XAAeNGQAHjZQAB42WAAeNmAAHjZoAB42dAAeNngAHjZ8AB42gAAeNoQAHjaMAB42lAAeNpgAHjacAB42pAAeNqgAHjiUAB44nAAeOKQAHjisAB44uAAeOLwAHjjAAB44xAAeOMgAHjjQAB442AAeONwAHjjgAB446AAeOOwAHjrYAB464AAeOugAHjrwAB46/AAeOwAAHjsEAB47CAAeOwwAHjsUAB47HAAeOyAAHjskAB47LAAeOzAAHj0cAB49JAAePSwAHj00AB49QAAePUQAHj1IAB49TAAePVAAHj1YAB49YAAePWQAHj1oAB49cAAePXQAHj9gAB4/aAAeP3AAHj94AB4/hAAeP4gAHj+MAB4/kAAeP5QAHj+cAB4/pAAeP6gAHj+sAB4/tAAeP7gAHkDcAB5BbAAeQggAHkKYAB5CpAAeQrAAHkK4AB5CwAAeQsgAHkLQAB5C1AAeQuAAHkNEAB5DuAAeQ8QAHkPQAB5D3AAeQ+gAHkP0AB5EAAAeRAwAHkSAAB5EjAAeRJgAHkSkAB5EsAAeRLwAHkTIAB5E1AAeRNwAHkbIAB5G0AAeRtwAHkbkAB5G8AAeRvQAHkb4AB5G/AAeRwAAHkcIAB5HFAAeRxgAHkccAB5HJAAeRygAHkkUAB5JHAAeSSgAHkkwAB5JPAAeSUAAHklEAB5JSAAeSUwAHklUAB5JYAAeSWQAHkloAB5JcAAeSXQAHktgAB5LaAAeS3QAHkt8AB5LiAAeS4wAHkuQAB5LlAAeS5gAHkugAB5LrAAeS7AAHku0AB5LvAAeS8AAHk2sAB5NtAAeTcAAHk3IAB5N1AAeTdgAHk3cAB5N4AAeTeQAHk3sAB5N+AAeTfwAHk4AAB5OCAAeTgwAHk/4AB5QAAAeUAgAHlAQAB5QHAAeUCAAHlAkAB5QKAAeUCwAHlA0AB5QQAAeUEQAHlBIAB5QUAAeUFQAHlJAAB5SSAAeUlAAHlJYAB5SZAAeUmgAHlJsAB5ScAAeUnQAHlJ8AB5SiAAeUowAHlKQAB5SmAAeUpwAHlSIAB5UkAAeVJwAHlSkAB5UsAAeVLQAHlS4AB5UvAAeVMAAHlTIAB5U1AAeVNgAHlTcAB5U5AAeVOgAHlc0AB5XwAAeWEAAHljAAB5YyAAeWNAAHljYAB5Y4AAeWOwAHljwAB5Y9AAeWQAAHlkEAB5ZDAAeWRAAHlkcAB5ZKAAeWSwAHlkwAB5ZPAAeWUAAHllUAB5ZuAAeWdwAHlnkAB5Z8AAeWhQAHlogAB5aLAAeWjQAHltYAB5b6AAeXIQAHl0UAB5dIAAeXSgAHl0wAB5dOAAeXUAAHl1IAB5dTAAeXVgAHl28AB5eQAAeXkgAHl5QAB5eWAAeXmAAHl5oAB5ecAAeXngAHl6AAB5fBAAeXxAAHl8cAB5fKAAeXzQAHl9AAB5fTAAeX1gAHl9kAB5fbAAeYVgAHmFgAB5haAAeYXAAHmF8AB5hgAAeYYQAHmGIAB5hjAAeYZQAHmGcAB5hoAAeYaQAHmGsAB5hsAAeY5wAHmOkAB5jrAAeY7QAHmPAAB5jxAAeY8gAHmPMAB5j0AAeY9gAHmPgAB5j5AAeY+gAHmPwAB5j9AAeZeAAHmXoAB5l9AAeZfwAHmYIAB5mDAAeZhAAHmYUAB5mGAAeZiAAHmYoAB5mLAAeZjAAHmY4AB5mPAAeZqAAHmakAB5mqAAeZrAAHmicAB5opAAeaKwAHmi0AB5owAAeaMQAHmjIAB5ozAAeaNAAHmjYAB5o4AAeaOQAHmjoAB5o8AAeaPQAHmrgAB5q6AAeavAAHmr4AB5rBAAeawgAHmsMAB5rEAAeaxQAHmscAB5rJAAeaygAHmssAB5rNAAeazgAHm0kAB5tLAAebTQAHm08AB5tSAAebUwAHm1QAB5tVAAebVgAHm1gAB5taAAebWwAHm1wAB5teAAebXwAHm9oAB5vcAAeb3gAHm+AAB5vjAAeb5AAHm+UAB5vmAAeb5wAHm+kAB5vrAAeb7AAHm+0AB5vvAAeb8AAHnGsAB5xtAAecbwAHnHEAB5x0AAecdQAHnHYAB5x3AAeceAAHnHoAB5x8AAecfQAHnH4AB5yAAAecgQAHnMoAB5zuAAedFQAHnTkAB508AAedPwAHnUEAB51DAAedRQAHnUcAB51IAAedSwAHnWQAB52BAAedhAAHnYcAB52KAAedjQAHnZAAB52TAAedlgAHnbMAB522AAeduQAHnbwAB52/AAedwgAHncUAB53IAAedygAHnkUAB55HAAeeSgAHnkwAB55PAAeeUAAHnlEAB55SAAeeUwAHnlUAB55YAAeeWQAHnloAB55cAAeeXQAHntgAB57aAAee3QAHnt8AB57iAAee4wAHnuQAB57lAAee5gAHnugAB57rAAee7AAHnu0AB57vAAee8AAHnvIAB59tAAefbwAHn3IAB590AAefdwAHn3gAB595AAefegAHn3sAB599AAefgAAHn4EAB5+CAAefhAAHn4UAB6AAAAegAgAHoAUAB6AHAAegCgAHoAsAB6AMAAegDQAHoA4AB6AQAAegEwAHoBQAB6AVAAegFwAHoBgAB6CTAAeglQAHoJcAB6CZAAegnAAHoJ0AB6CeAAegnwAHoKAAB6CiAAegpQAHoKYAB6CnAAegqQAHoKoAB6ElAAehJwAHoSkAB6ErAAehLgAHoS8AB6EwAAehMQAHoTIAB6E0AAehNwAHoTgAB6E5AAehOwAHoTwAB6G3AAehuQAHobwAB6G+AAehwQAHocIAB6HDAAehxAAHocUAB6HHAAehygAHocsAB6HMAAehzgAHoc8AB6JiAAeihQAHoqUAB6LFAAeixwAHoskAB6LLAAeizQAHotAAB6LRAAei0gAHotUAB6LWAAei2AAHotkAB6LcAAei3wAHouAAB6LhAAei5AAHouUAB6LqAAejAwAHowwAB6MOAAejEQAHoxoAB6MdAAejIAAHoyIAB6NrAAejjwAHo7YAB6PaAAej3QAHo98AB6PhAAej4wAHo+UAB6PnAAej6AAHo+sAB6QEAAekJQAHpCcAB6QpAAekKwAHpC0AB6QvAAekMQAHpDMAB6Q1AAekVgAHpFkAB6RcAAekXwAHpGIAB6RlAAekaAAHpGsAB6RuAAekcAAHpOsAB6TtAAek7wAHpPEAB6T0AAek9QAHpPYAB6T3AAek+AAHpPoAB6T8AAek/QAHpP4AB6UAAAelAQAHpXwAB6V+AAelgAAHpYIAB6WFAAelhgAHpYcAB6WIAAeliQAHpYsAB6WNAAeljgAHpY8AB6WRAAelkgAHpg0AB6YPAAemEgAHphQAB6YXAAemGAAHphkAB6YaAAemGwAHph0AB6YfAAemIAAHpiEAB6YjAAemJAAHpj0AB6Y+AAemPwAHpkEAB6a8AAemvgAHpsAAB6bCAAemxQAHpsYAB6bHAAemyAAHpskAB6bLAAemzQAHps4AB6bPAAem0QAHptIAB6dNAAenTwAHp1EAB6dTAAenVgAHp1cAB6dYAAenWQAHp1oAB6dcAAenXgAHp18AB6dgAAenYgAHp2MAB6feAAen4AAHp+IAB6fkAAen5wAHp+gAB6fpAAen6gAHp+sAB6ftAAen7wAHp/AAB6fxAAen8wAHp/QAB6hvAAeocQAHqHMAB6h1AAeoeAAHqHkAB6h6AAeoewAHqHwAB6h+AAeogAAHqIEAB6iCAAeohAAHqIUAB6kAAAepAgAHqQQAB6kGAAepCQAHqQoAB6kLAAepDAAHqQ0AB6kPAAepEQAHqRIAB6kTAAepFQAHqRYAB6lfAAepgwAHqaoAB6nOAAep0QAHqdQAB6nWAAep2AAHqdoAB6ncAAep3QAHqeAAB6n5AAeqFgAHqhkAB6ocAAeqHwAHqiIAB6olAAeqKAAHqisAB6pIAAeqSwAHqk4AB6pRAAeqVAAHqlcAB6paAAeqXQAHql8AB6raAAeq3AAHqt8AB6rhAAeq5AAHquUAB6rmAAeq5wAHqugAB6rqAAeq7QAHqu4AB6rvAAeq8QAHqvIAB6ttAAerbwAHq3IAB6t0AAerdwAHq3gAB6t5AAeregAHq3sAB6t9AAergAAHq4EAB6uCAAerhAAHq4UAB6wAAAesAgAHrAUAB6wHAAesCgAHrAsAB6wMAAesDQAHrA4AB6wQAAesEwAHrBQAB6wVAAesFwAHrBgAB6yTAAeslQAHrJgAB6yaAAesnQAHrJ4AB6yfAAesoAAHrKEAB6yjAAespgAHrKcAB6yoAAesqgAHrKsAB60mAAetKAAHrSoAB60sAAetLwAHrTAAB60xAAetMgAHrTMAB601AAetOAAHrTkAB606AAetPAAHrT0AB624AAetugAHrbwAB62+AAetwQAHrcIAB63DAAetxAAHrcUAB63HAAetygAHrcsAB63MAAetzgAHrc8AB65KAAeuTAAHrk8AB65RAAeuVAAHrlUAB65WAAeuVwAHrlgAB65aAAeuXQAHrl4AB65fAAeuYQAHrmIAB65zAAeueAAHrnsAB659AAeutgAHrrkAB667AAeuvgAHrsEAB67EAAeuxwAHrswAB69HAAevSQAHr0sAB69NAAevUAAHr1EAB69SAAevUwAHr1QAB69WAAevWQAHr1oAB69bAAevXQAHr14AB6/ZAAev2wAHr90AB6/fAAev4gAHr+MAB6/kAAev5QAHr+YAB6/oAAev6wAHr+wAB6/tAAev7wAHr/AAB7BrAAewbQAHsHAAB7ByAAewdQAHsHYAB7B3AAeweAAHsHkAB7B7AAewfgAHsH8AB7CAAAewggAHsIMAB7CUAAewmQAHsJwAB7CeAAewpwAHsSIAB7EkAAexJgAHsSgAB7ErAAexLAAHsS0AB7EuAAexLwAHsTEAB7E0AAexNQAHsTYAB7E4AAexOQAHsbQAB7G2AAexuAAHsboAB7G9AAexvgAHsb8AB7HAAAexwQAHscMAB7HGAAexxwAHscgAB7HKAAexywAHskYAB7JIAAeySwAHsk0AB7JQAAeyUQAHslIAB7JTAAeyVAAHslYAB7JZAAeyWgAHslsAB7JdAAeyXgAHsm8AB7JwAAeycgAHsoMAB7KMAAeyjwAHspIAB7KUAAezDwAHsxEAB7MTAAezFQAHsxgAB7MZAAezGgAHsxsAB7McAAezHgAHsyEAB7MiAAezIwAHsyUAB7MmAAezoQAHs6MAB7OlAAezpwAHs6oAB7OrAAezrAAHs60AB7OuAAezsAAHs7MAB7O0AAeztQAHs7cAB7O4AAe0MwAHtDUAB7Q4AAe0OgAHtD0AB7Q+AAe0PwAHtEAAB7RBAAe0QwAHtEYAB7RHAAe0SAAHtEoAB7RLAAe03gAHtQEAB7UhAAe1QQAHtUMAB7VFAAe1RwAHtUkAB7VMAAe1TQAHtU4AB7VRAAe1UgAHtVQAB7VVAAe1WAAHtVsAB7VcAAe1XQAHtWAAB7VhAAe1ZgAHtX8AB7WIAAe1igAHtY0AB7WWAAe1mQAHtZwAB7WeAAe15wAHtgsAB7YyAAe2VgAHtlkAB7ZbAAe2XQAHtl8AB7ZhAAe2YwAHtmQAB7ZnAAe2gAAHtqEAB7ajAAe2pQAHtqcAB7apAAe2qwAHtq0AB7avAAe2sQAHttIAB7bVAAe22AAHttsAB7beAAe24QAHtuQAB7bnAAe26gAHtuwAB7dnAAe3aQAHt2sAB7dtAAe3cAAHt3EAB7dyAAe3cwAHt3QAB7d2AAe3eAAHt3kAB7d6AAe3fAAHt30AB7f4AAe3+gAHt/wAB7f+AAe4AQAHuAIAB7gDAAe4BAAHuAUAB7gHAAe4CQAHuAoAB7gLAAe4DQAHuA4AB7iJAAe4iwAHuI4AB7iQAAe4kwAHuJQAB7iVAAe4lgAHuJcAB7iZAAe4mwAHuJwAB7idAAe4nwAHuKAAB7i5AAe4ugAHuLsAB7i9AAe5OAAHuToAB7k8AAe5PgAHuUEAB7lCAAe5QwAHuUQAB7lFAAe5RwAHuUkAB7lKAAe5SwAHuU0AB7lOAAe5yQAHucsAB7nNAAe5zwAHudIAB7nTAAe51AAHudUAB7nWAAe52AAHudoAB7nbAAe53AAHud4AB7nfAAe6WgAHulwAB7peAAe6YAAHumMAB7pkAAe6ZQAHumYAB7pnAAe6aQAHumsAB7psAAe6bQAHum8AB7pwAAe66wAHuu0AB7rvAAe68QAHuvQAB7r1AAe69gAHuvcAB7r4AAe6+gAHuvwAB7r9AAe6/gAHuwAAB7sBAAe7fAAHu34AB7uAAAe7ggAHu4UAB7uGAAe7hwAHu4gAB7uJAAe7iwAHu40AB7uOAAe7jwAHu5EAB7uSAAe72wAHu/8AB7wmAAe8SgAHvE0AB7xQAAe8UgAHvFQAB7xWAAe8WAAHvFkAB7xcAAe8dQAHvJIAB7yVAAe8mAAHvJsAB7yeAAe8oQAHvKQAB7ynAAe8xAAHvMcAB7zKAAe8zQAHvNAAB7zTAAe81gAHvNkAB7zbAAe9VgAHvVgAB71bAAe9XQAHvWAAB71hAAe9YgAHvWMAB71kAAe9ZgAHvWkAB71qAAe9awAHvW0AB71uAAe96QAHvesAB73uAAe98AAHvfMAB730AAe99QAHvfYAB733AAe9+QAHvfwAB739AAe9/gAHvgAAB74BAAe+fAAHvn4AB76BAAe+gwAHvoYAB76HAAe+iAAHvokAB76KAAe+jAAHvo8AB76QAAe+kQAHvpMAB76UAAe/DwAHvxEAB78UAAe/FgAHvxkAB78aAAe/GwAHvxwAB78dAAe/HwAHvyIAB78jAAe/JAAHvyYAB78nAAe/qgAHv84AB7/yAAfAFQAHwDwAB8BcAAfAgwAHwKoAB8DKAAfA7gAHwRIAB8EUAAfBFwAHwRkAB8EbAAfBHQAHwSAAB8EjAAfBJQAHwScAB8EqAAfBLAAHwS4AB8ExAAfBNAAHwTUAB8E6AAfBUwAHwVgAB8FaAAfBXwAHwWIAB8FkAAfBrQAHwdEAB8H4AAfCHAAHwh8AB8IhAAfCIwAHwiUAB8InAAfCKQAHwioAB8ItAAfCRgAHwmsAB8JtAAfCbwAHwnEAB8JzAAfCdQAHwncAB8J5AAfCewAHwn0AB8KiAAfCpQAHwqgAB8KrAAfCrgAHwrEAB8K0AAfCtwAHwroAB8K9AAfCvwAHwzoAB8M8AAfDPwAHw0EAB8NEAAfDRQAHw0YAB8NHAAfDSAAHw0oAB8NMAAfDTQAHw04AB8NQAAfDUQAHw2IAB8NjAAfDZQAHw+AAB8PiAAfD5AAHw+YAB8PpAAfD6gAHw+sAB8PsAAfD7QAHw+8AB8PxAAfD8gAHw/MAB8P1AAfD9gAHxHEAB8RzAAfEdgAHxHgAB8R7AAfEfAAHxH0AB8R+AAfEfwAHxIEAB8SDAAfEhAAHxIUAB8SHAAfEiAAHxJkAB8SaAAfEnAAHxRcAB8UZAAfFGwAHxR0AB8UgAAfFIQAHxSIAB8UjAAfFJAAHxSYAB8UoAAfFKQAHxSoAB8UsAAfFLQAHxagAB8WqAAfFrQAHxa8AB8WyAAfFswAHxbQAB8W1AAfFtgAHxbgAB8W6AAfFuwAHxbwAB8W+AAfFvwAHxdAAB8XRAAfF0wAHxk4AB8ZQAAfGUgAHxlQAB8ZXAAfGWAAHxlkAB8ZaAAfGWwAHxl0AB8ZfAAfGYAAHxmEAB8ZjAAfGZAAHxt8AB8bhAAfG5AAHxuYAB8bpAAfG6gAHxusAB8bsAAfG7QAHxu8AB8bxAAfG8gAHxvMAB8b1AAfG9gAHxw8AB8cQAAfHEQAHxxMAB8eOAAfHkAAHx5IAB8eUAAfHlwAHx5gAB8eZAAfHmgAHx5sAB8edAAfHnwAHx6AAB8ehAAfHowAHx6QAB8gfAAfIIQAHyCQAB8gmAAfIKQAHyCoAB8grAAfILAAHyC0AB8gvAAfIMQAHyDIAB8gzAAfINQAHyDYAB8hWAAfIbwAHyIgAB8iLAAfIjgAHyJEAB8iUAAfIlwAHyJoAB8izAAfItgAHyLkAB8i8AAfIvwAHyMIAB8jFAAfIxwAHyNUAB8jjAAfI+wAHyREAB8kxAAfJxAAHyecAB8oHAAfKJwAHyikAB8orAAfKLQAHyi8AB8oyAAfKMwAHyjQAB8o3AAfKOAAHyjoAB8o7AAfKPQAHykAAB8pBAAfKQgAHykUAB8pGAAfKSwAHymQAB8ptAAfKbwAHynEAB8p6AAfKfQAHyoAAB8qCAAfKywAHyu8AB8sWAAfLOgAHyz0AB8s/AAfLQQAHy0MAB8tFAAfLRwAHy0gAB8tLAAfLZAAHy4UAB8uHAAfLiQAHy4sAB8uNAAfLjwAHy5EAB8uTAAfLlQAHy7YAB8u5AAfLvAAHy78AB8vCAAfLxQAHy8gAB8vLAAfLzgAHy9AAB8xLAAfMTQAHzE8AB8xRAAfMVAAHzFUAB8xWAAfMVwAHzFgAB8xaAAfMXAAHzF0AB8xeAAfMYAAHzGEAB8zcAAfM3gAHzOAAB8ziAAfM5QAHzOYAB8znAAfM6AAHzOkAB8zrAAfM7QAHzO4AB8zvAAfM8QAHzPIAB81tAAfNbwAHzXIAB810AAfNdwAHzXgAB815AAfNegAHzXsAB819AAfNfwAHzYAAB82BAAfNgwAHzYQAB82dAAfNngAHzZ8AB82hAAfOHAAHzh4AB84gAAfOIgAHziUAB84mAAfOJwAHzigAB84pAAfOKwAHzi0AB84uAAfOLwAHzjEAB84yAAfOrQAHzq8AB86xAAfOswAHzrYAB863AAfOuAAHzrkAB866AAfOvAAHzr4AB86/AAfOwAAHzsIAB87DAAfPPgAHz0AAB89CAAfPRAAHz0cAB89IAAfPSQAHz0oAB89LAAfPTQAHz08AB89QAAfPUQAHz1MAB89UAAfPzwAHz9EAB8/TAAfP1QAHz9gAB8/ZAAfP2gAHz9sAB8/cAAfP3gAHz+AAB8/hAAfP4gAHz+QAB8/lAAfQYAAH0GIAB9BkAAfQZgAH0GkAB9BqAAfQawAH0GwAB9BtAAfQbwAH0HEAB9ByAAfQcwAH0HUAB9B2AAfQvwAH0OMAB9EKAAfRLgAH0TEAB9EzAAfRNQAH0TcAB9E5AAfROwAH0TwAB9E/AAfRWAAH0XUAB9F3AAfReQAH0XsAB9F9AAfRfwAH0YEAB9GDAAfRoAAH0aMAB9GmAAfRqQAH0awAB9GvAAfRsgAH0bUAB9G3AAfSMgAH0jQ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ACAaQAAgGkgAIBpQACAaVAAgGlgAIBpgACAaZAAgHFAAIBxYACAcYAAgHGgAIBx0ACAceAAgHHwAIByAACAchAAgHIwAIByUACAcmAAgHJwAIBykACAcqAAgHpQAIB6cACAepAAgHqwAIB64ACAevAAgHsAAIB7EACAeyAAgHtAAIB7YACAe3AAgHuAAIB7oACAe7AAgITgAICHEACAiRAAgIsQAICLMACAi1AAgItwAICLkACAi8AAgIvQAICL4ACAjBAAgIwgAICMQACAjFAAgIxwAICMoACAjLAAgIzAAICM8ACAjQAAgI1QAICO4ACAj3AAgI+QAICPsACAkEAAgJBwAICQoACAkMAAgJVQAICXkACAmgAAgJxAAICccACAnJAAgJywAICc0ACAnPAAgJ0QAICdIACAnVAAgJ7gAICg8ACAoRAAgKEwAIChUACAoXAAgKGQAIChsACAodAAgKHwAICkAACApDAAgKRgAICkkACApMAAgKTwAIClIACApVAAgKWAAICloACArVAAgK1wAICtkACArbAAgK3gAICt8ACArgAAgK4QAICuIACArkAAgK5gAICucACAroAAgK6gAICusACAtmAAgLaAAIC2oACAtsAAgLbwAIC3AACAtxAAgLcgAIC3MACAt1AAgLdwAIC3gACAt5AAgLewAIC3wACAv3AAgL+QAIC/wACAv+AAgMAQAIDAIACAwDAAgMBAAIDAUACAwHAAgMCQAIDAoACAwLAAgMDQAIDA4ACAwnAAgMKAAIDCkACAwrAAgMpgAIDKgACAyqAAgMrAAIDK8ACAywAAgMsQAIDLIACAyzAAgMtQAIDLcACAy4AAgMuQAIDLsACAy8AAgNNwAIDTkACA07AAgNPQAIDUAACA1BAAgNQgAIDUMACA1EAAgNRgAIDUgACA1JAAgNSgAIDUwACA1NAAgNyAAIDcoACA3MAAgNzgAIDdEACA3SAAgN0wAIDdQACA3VAAgN1wAIDdkACA3aAAgN2wAIDd0ACA3eAAgOWQAIDlsACA5dAAgOXwAIDmIACA5jAAgOZAAIDmUACA5mAAgOaAAIDmoACA5rAAgObAAIDm4ACA5vAAgO6gAIDuwACA7uAAgO8AAIDvMACA70AAgO9QAIDvYACA73AAgO+QAIDvsACA78AAgO/QAIDv8ACA8AAAgPSQAID20ACA+UAAgPuAAID7sACA+9AAgPvwAID8EACA/DAAgPxQAID8YACA/JAAgP4gAID/8ACBABAAgQAwAIEAUACBAHAAgQCQAIEAsACBANAAgQKgAIEC0ACBAwAAgQMwAIEDYACBA5AAgQPAAIED8ACBBBAAgQvAAIEL4ACBDAAAgQwgAIEMUACBDGAAgQxwAIEMgACBDJAAgQywAIEM0ACBDOAAgQzwAIENEACBDSAAgRTQAIEU8ACBFRAAgRUwAIEVYACBFXAAgRWAAIEVkACBFaAAgRXAAIEV4ACBFfAAgRYAAIEWIACBFjAAgR3gAIEeAACBHiAAgR5AAIEecACBHoAAgR6QAIEeoACBHrAAgR7QAIEe8ACBHwAAgR8QAIEfMACBH0AAgSbwAIEnEACBJ0AAgSdgAIEnkACBJ6AAgSewAIEnwACBJ9AAgSfwAIEoEACBKCAAgSgwAIEoUACBKGAAgTAQAIEwMACBMFAAgTBwAIEwoACBMLAAgTDAAIEw0ACBMOAAgTEAAIExIACBMTAAgTFAAIExYACBMXAAgTkgAIE5QACBOWAAgTmAAIE5sACBOcAAgTnQAIE54ACBOfAAgToQAIE6MACBOkAAgTpQAIE6cACBOoAAgUIwAIFCUACBQnAAgUKQAIFCwACBQtAAgULgAIFC8ACBQwAAgUMgAIFDQACBQ1AAgUNgAIFDgACBQ5AAgUSgAIFEsACBRNAAgUyAAIFMoACBTMAAgUzgAIFNEACBTSAAgU0wAIFNQACBTVAAgU1wAIFNoACBTbAAgU3AAIFN4ACBTfAAgVWgAIFVwACBVeAAgVYAAIFWMACBVkAAgVZQAIFWYACBVnAAgVaQAIFWwACBVtAAgVbgAIFXAACBVxAAgV7AAIFe4ACBXxAAgV8wAIFfYACBX3AAgV+AAIFfkACBX6AAgV/AAIFf8ACBYAAAgWAQAIFgMACBYEAAgWlwAIFroACBbaAAgW+gAIFvwACBb+AAgXAAAIFwIACBcFAAgXBgAIFwcACBcKAAgXCwAIFw0ACBcOAAgXEQAIFxQACBcVAAgXFgAIFxkACBcaAAgXHwAIFzgACBdBAAgXQwAIF0YACBdPAAgXUgAIF1UACBdXAAgXoAAIF8QACBfrAAgYDwAIGBIACBgUAAgYFgAIGBgACBgaAAgYHAAIGB0ACBggAAgYOQAIGFoACBhcAAgYXgAIGGAACBhiAAgYZAAIGGYACBhoAAgYagAIGIsACBiOAAgYkQAIGJQACBiXAAgYmgAIGJ0ACBigAAgYowAIGKUACBkgAAgZIgAIGSQACBkmAAgZKQAIGSoACBkrAAgZLAAIGS0ACBkvAAgZMQAIGTIACBkzAAgZNQAIGTYACBmxAAgZswAIGbUACBm3AAgZugAIGbsACBm8AAgZvQAIGb4ACBnAAAgZwgAIGcMACBnEAAgZxgAIGccACBpCAAgaRAAIGkcACBpJAAgaTAAIGk0ACBpOAAgaTwAIGlAACBpSAAgaVAAIGlUACBpWAAgaWAAIGlkACBpyAAgacwAIGnQACBp2AAga8QAIGvMACBr1AAga9wAIGvoACBr7AAga/AAIGv0ACBr+AAgbAAAIGwIACBsDAAgbBAAIGwYACBsHAAgbggAIG4QACBuGAAgbiAAIG4sACBuMAAgbjQAIG44ACBuPAAgbkQAIG5MACBuUAAgblQAIG5cACBuYAAgcEwAIHBUACBwXAAgcGQAIHBwACBwdAAgcHgAIHB8ACBwgAAgcIgAIHCQACBwlAAgcJgAIHCgACBwpAAgcpAAIHKYACByoAAgcqgAIHK0ACByuAAgcrwAIHLAACByxAAgcswAIHLUACBy2AAgctwAIHLkACBy6AAgdNQAIHTcACB05AAgdOwAIHT4ACB0/AAgdQAAIHUEACB1CAAgdRAAIHUYACB1HAAgdSAAIHUoACB1LAAgdlAAIHbgACB3fAAgeAwAIHgYACB4JAAgeCwAIHg0ACB4PAAgeEQAIHhIACB4VAAgeLgAIHksACB5OAAgeUQAIHlQACB5XAAgeWgAIHl0ACB5gAAgefQAIHoAACB6DAAgehgAIHokACB6MAAgejwAIHpIACB6UAAgfDwAIHxEACB8UAAgfFgAIHxkACB8aAAgfGwAIHxwACB8dAAgfHwAIHyIACB8jAAgfJAAIHyYACB8nAAgfogAIH6QACB+nAAgfqQAIH6wACB+tAAgfrgAIH68ACB+wAAgfsgAIH7UACB+2AAgftwAIH7kACB+6AAggNQAIIDcACCA6AAggPAAIID8ACCBAAAggQQAIIEIACCBDAAggRQAIIEgACCBJAAggSgAIIEwACCBNAAggyAAIIMoACCDNAAggzwAIINIACCDTAAgg1AAIINUACCDWAAgg2AAIINsACCDcAAgg3QAIIN8ACCDgAAghWwAIIV0ACCFfAAghYQAIIWQACCFlAAghZgAIIWcACCFoAAghagAIIW0ACCFuAAghbwAIIXEACCFyAAgh7QAIIe8ACCHxAAgh8wAIIfYACCH3AAgh+AAIIfkACCH6AAgh/AAIIf8ACCIAAAgiAQAIIgMACCIEAAgifwAIIoEACCKEAAgihgAIIokACCKKAAgiiwAIIowACCKNAAgijwAIIpIACCKTAAgilAAIIpYACCKXAAgjKgAII00ACCNtAAgjjQAII48ACCORAAgjkwAII5UACCOYAAgjmQAII5oACCOdAAgjngAII6AACCOhAAgjowAII6YACCOnAAgjqAAII6sACCOsAAgjsQAII8oACCPTAAgj1QAII9cACCPgAAgj4wAII+YACCPoAAgkMQAIJFUACCR8AAgkoAAIJKMACCSlAAgkpwAIJKkACCSrAAgkrQAIJK4ACCSxAAgkygAIJOsACCTtAAgk7wAIJPEACCTzAAgk9QAIJPcACCT5AAgk+wAIJRwACCUfAAglIgAIJSUACCUoAAglKwAIJS4ACCUxAAglNAAIJTYACCWxAAglswAIJbUACCW3AAglugAIJbsACCW8AAglvQAIJb4ACCXAAAglwgAIJcMACCXEAAglxgAIJccACCZCAAgmRAAIJkYACCZIAAgmSwAIJkwACCZNAAgmTgAIJk8ACCZRAAgmUwAIJlQACCZVAAgmVwAIJlgACCbTAAgm1QAIJtgACCbaAAgm3QAIJt4ACCbfAAgm4AAIJuEACCbjAAgm5QAIJuYACCbnAAgm6QAIJuoACCcDAAgnBAAIJwUACCcHAAgnggAIJ4QACCeGAAgniAAIJ4sACCeMAAgnjQAIJ44ACCePAAgnkQAIJ5MACCeUAAgnlQAIJ5cACCeYAAgoEwAIKBUACCgXAAgoGQAIKBwACCgdAAgoHgAIKB8ACCggAAgoIgAIKCQACCglAAgoJgAIKCgACCgpAAgopAAIKKYACCioAAgoqgAIKK0ACCiuAAgorwAIKLAACCixAAgoswAIKLUACCi2AAgotwAIKLkACCi6AAgpNQAIKTcACCk5AAgpOwAIKT4ACCk/AAgpQAAIKUEACClCAAgpRAAIKUYACClHAAgpSAAIKUoACClLAAgpxgAIKcgACCnKAAgpzAAIKc8ACCnQAAgp0QAIKdIACCnTAAgp1QAIKdcACCnYAAgp2QAIKdsACCncAAgqJQAIKkkACCpwAAgqlAAIKpcACCqZAAgqmwAIKp0ACCqfAAgqoQAIKqIACCqlAAgqvgAIKtsACCrdAAgq3wAIKuEACCrjAAgq5QAIKucACCrpAAgrBgAIKwkACCsMAAgrDwAIKxIACCsVAAgrGAAIKxsACCsdAAgrmAAIK5oACCudAAgrnwAIK6IACCujAAgrpAAIK6UACCumAAgrqAAIK6oACCurAAgrrAAIK64ACCuvAAgsKgAILCwACCwuAAgsMAAILDMACCw0AAgsNQAILDYACCw3AAgsOQAILDsACCw8AAgsPQAILD8ACCxAAAgsuwAILL0ACCy/AAgswQAILMQACCzFAAgsxgAILMcACCzIAAgsygAILMwACCzNAAgszgAILNAACCzRAAgtTAAILU4ACC1RAAgtUwAILVYACC1XAAgtWAAILVkACC1aAAgtXAAILV4ACC1fAAgtYAAILWIACC1jAAgt3gAILeAACC3iAAgt5AAILecACC3oAAgt6QAILeoACC3rAAgt7QAILe8ACC3wAAgt8QAILfMACC30AAgubwAILnEACC5zAAgudQAILngACC55AAguegAILnsACC58AAgufgAILoAACC6BAAguggAILoQACC6FAAgvAAAILwIACC8EAAgvBgAILwkACC8KAAgvCwAILwwACC8NAAgvDwAILxEACC8SAAgvEwAILxUACC8WAAgvqQAIL8wACC/sAAgwDAAIMA4ACDAQAAgwEgAIMBQACDAXAAgwGAAIMBkACDAcAAgwHQAIMB8ACDAgAAgwIgAIMCUACDAmAAgwJwAIMCoACDArAAgwMAAIMEkACDBSAAgwVAAIMFYACDBfAAgwYgAIMGUACDBnAAgwsAAIMNQACDD7AAgxHwAIMSIACDEkAAgxJgAIMSgACDEqAAgxLAAIMS0ACDEwAAgxSQAIMWoACDFsAAgxbgAIMXAACDFyAAgxdAAIMXYACDF4AAgxegAIMZsACDGeAAgxoQAIMaQACDGnAAgxqgAIMa0ACDGwAAgxswAIMbUACDIwAAgyMgAIMjQACDI2AAgyOQAIMjoACDI7AAgyPAAIMj0ACDI/AAgyQQAIMkIACDJDAAgyRQAIMkYACDLBAAgywwAIMsUACDLHAAgyygAIMssACDLMAAgyzQAIMs4ACDLQAAgy0gAIMtMACDLUAAgy1gAIMtcACDNSAAgzVAAIM1cACDNZAAgzXAAIM10ACDNeAAgzXwAIM2AACDNiAAgzZAAIM2UACDNmAAgzaAAIM2kACDOCAAgzgwAIM4QACDOGAAg0AQAINAMACDQFAAg0BwAINAoACDQLAAg0DAAINA0ACDQOAAg0EAAINBIACDQTAAg0FAAINBYACDQXAAg0kgAINJQACDSWAAg0mAAINJsACDScAAg0nQAINJ4ACDSfAAg0oQAINKMACDSkAAg0pQAINKcACDSoAAg1IwAINSUACDUnAAg1KQAINSwACDUtAAg1LgAINS8ACDUwAAg1MgAINTQACDU1AAg1NgAINTgACDU5AAg1tAAINbYACDW4AAg1ugAINb0ACDW+AAg1vwAINcAACDXBAAg1wwAINcUACDXGAAg1xwAINckACDXKAAg2RQAINkcACDZJAAg2SwAINk4ACDZPAAg2UAAINlEACDZSAAg2VAAINlYACDZXAAg2WAAINloACDZbAAg2pAAINsgACDbvAAg3EwAINxYACDcYAAg3GgAINxwACDceAAg3IAAINyEACDckAAg3PQAIN1oACDdcAAg3XgAIN2AACDdiAAg3ZAAIN2YACDdoAAg3hQAIN4gACDeLAAg3jgAIN5EACDeUAAg3lwAIN5oACDecAAg4FwAIOBkACDgbAAg4HQAIOCAACDghAAg4IgAIOCMACDgkAAg4JgAIOCgACDgpAAg4KgAIOCwACDgtAAg4qAAIOKoACDisAAg4rgAIOLEACDiyAAg4swAIOLQACDi1AAg4twAIOLkACDi6AAg4uwAIOL0ACDi+AAg5OQAIOTsACDk9AAg5PwAIOUIACDlDAAg5RAAIOUUACDlGAAg5SAAIOUoACDlLAAg5TAAIOU4ACDlPAAg5ygAIOcwACDnOAAg50AAIOdMACDnUAAg51QAIOdYACDnXAAg52QAIOdsACDncAAg53QAIOd8ACDngAAg6WwAIOl0ACDpfAAg6YQAIOmQACDplAAg6ZgAIOmcACDpoAAg6agAIOmwACDptAAg6bgAIOnAACDpxAAg67AAIOu4ACDrxAAg68wAIOvYACDr3AAg6+AAIOvkACDr6AAg6/AAIOv4ACDr/AAg7AAAIOwIACDsDAAg7JwAIO6IACDukAAg7pgAIO6gACDurAAg7rAAIO60ACDuuAAg7rwAIO7EACDuzAAg7tAAIO7UACDu3AAg7uAAIPEsACDxuAAg8jgAIPK4ACDywAAg8sgAIPLQACDy2AAg8uQAIPLoACDy7AAg8vgAIPL8ACDzBAAg8wgAIPMUACDzIAAg8yQAIPMoACDzNAAg8zgAIPNMACDzsAAg89QAIPPcACDz6AAg9AwAIPQYACD0JAAg9CwAIPVQACD14AAg9nwAIPcMACD3GAAg9yAAIPcoACD3MAAg9zgAIPdAACD3RAAg91AAIPe0ACD4OAAg+EAAIPhIACD4UAAg+FgAIPhgACD4aAAg+HAAIPh4ACD4/AAg+QgAIPkUACD5IAAg+SwAIPk4ACD5RAAg+VAAIPlcACD5ZAAg+1AAIPtYACD7YAAg+2gAIPt0ACD7eAAg+3wAIPuAACD7hAAg+4wAIPuUACD7mAAg+5wAIPukACD7qAAg/ZQAIP2cACD9pAAg/awAIP24ACD9vAAg/cAAIP3EACD9yAAg/dAAIP3YACD93AAg/eAAIP3oACD97AAg/9gAIP/gACD/7AAg//QAIQAAACEABAAhAAgAIQAMACEAEAAhABgAIQAgACEAJAAhACgAIQAwACEANAAhAJgAIQCcACEAoAAhAKgAIQKUACECnAAhAqQAIQKsACECuAAhArwAIQLAACECxAAhAsgAIQLQACEC2AAhAtwAIQLgACEC6AAhAuwAIQTYACEE4AAhBOgAIQTwACEE/AAhBQAAIQUEACEFCAAhBQwAIQUUACEFHAAhBSAAIQUkACEFLAAhBTAAIQccACEHJAAhBywAIQc0ACEHQAAhB0QAIQdIACEHTAAhB1AAIQdYACEHYAAhB2QAIQdoACEHcAAhB3QAIQlgACEJaAAhCXAAIQl4ACEJhAAhCYgAIQmMACEJkAAhCZQAIQmcACEJpAAhCagAIQmsACEJtAAhCbgAIQukACELrAAhC7QAIQu8ACELyAAhC8wAIQvQACEL1AAhC9gAIQvgACEL6AAhC+wAIQvwACEL+AAhC/wAIQ0gACENsAAhDkwAIQ7cACEO6AAhDvQAIQ78ACEPBAAhDwwAIQ8UACEPGAAhDyQAIQ+IACEP/AAhEAgAIRAUACEQIAAhECwAIRA4ACEQRAAhEFAAIRDEACEQ0AAhENwAIRDoACEQ9AAhEQAAIREMACERGAAhESAAIRMMACETFAAhEyAAIRMoACETNAAhEzgAIRM8ACETQAAhE0QAIRNMACETWAAhE1wAIRNgACETaAAhE2wAIRVYACEVYAAhFWwAIRV0ACEVgAAhFYQAIRWIACEVjAAhFZAAIRWYACEVpAAhFagAIRWsACEVtAAhFbgAIRekACEXrAAhF7gAIRfAACEXzAAhF9AAIRfUACEX2AAhF9wAIRfkACEX8AAhF/QAIRf4ACEYAAAhGAQAIRnwACEZ+AAhGgQAIRoMACEaGAAhGhwAIRogACEaJAAhGigAIRowACEaPAAhGkAAIRpEACEaTAAhGlAAIRxcACEc7AAhHXwAIR4IACEepAAhHyQAIR/AACEgXAAhINwAISFsACEh/AAhIgQAISIQACEiGAAhIiAAISIoACEiNAAhIkAAISJIACEiUAAhIlwAISJkACEibAAhIngAISKEACEiiAAhIpwAISMAACEjFAAhIxwAISMwACEjPAAhI0QAISRoACEk+AAhJZQAISYkACEmMAAhJjgAISZAACEmSAAhJlAAISZYACEmXAAhJmgAISbMACEnYAAhJ2gAISdwACEneAAhJ4AAISeIACEnkAAhJ5gAISegACEnqAAhKDwAIShIACEoVAAhKGAAIShsACEoeAAhKIQAISiQACEonAAhKKgAISiwACEqnAAhKqQAISqwACEquAAhKsQAISrIACEqzAAhKtAAISrUACEq3AAhKuQAISroACEq7AAhKvQAISr4ACErPAAhK0AAIStIACEtNAAhLTwAIS1EACEtTAAhLVgAIS1cACEtYAAhLWQAIS1oACEtcAAhLXgAIS18ACEtgAAhLYgAIS2MACEveAAhL4AAIS+MACEvlAAhL6AAIS+kACEvqAAhL6wAIS+wACEvuAAhL8AAIS/EACEvyAAhL9AAIS/UACEwGAAhMBwAITAkACEyEAAhMhgAITIgACEyKAAhMjQAITI4ACEyPAAhMkAAITJEACEyTAAhMlQAITJYACEyXAAhMmQAITJoACE0VAAhNFwAITRoACE0cAAhNHwAITSAACE0hAAhNIgAITSMACE0lAAhNJwAITSgACE0pAAhNKwAITSwACE09AAhNPgAITUAACE27AAhNvQAITb8ACE3BAAhNxAAITcUACE3GAAhNxwAITcgACE3KAAhNzAAITc0ACE3OAAhN0AAITdEACE5MAAhOTgAITlEACE5TAAhOVgAITlcACE5YAAhOWQAITloACE5cAAhOXgAITl8ACE5gAAhOYgAITmMACE58AAhOfQAITn4ACE6AAAhO+wAITv0ACE7/AAhPAQAITwQACE8FAAhPBgAITwcACE8IAAhPCgAITwwACE8NAAhPDgAITxAACE8RAAhPjAAIT44ACE+RAAhPkwAIT5YACE+XAAhPmAAIT5kACE+aAAhPnAAIT54ACE+fAAhPoAAIT6IACE+jAAhPrwAIT8gACE/ZAAhP3AAIT98ACE/iAAhP5QAIT/YACE/5AAhP/AAIT/8ACFACAAhQBAAIUBwACFAuAAhQRQAIUNgACFD7AAhRGwAIUTsACFE9AAhRPwAIUUEACFFDAAhRRgAIUUcACFFIAAhRSwAIUUwACFFOAAhRTwAIUVIACFFVAAhRVgAIUVcACFFaAAhRWwAIUWAACFF5AAhRggAIUYQACFGHAAhRkAAIUZMACFGWAAhRmAAIUeEACFIFAAhSLAAIUlAACFJTAAhSVQAIUlcACFJZAAhSWwAIUl0ACFJeAAhSYQAIUnoACFKbAAhSnQAIUp8ACFKhAAhSowAIUqUACFKnAAhSqQAIUqsACFLMAAhSzwAIUtIACFLVAAhS2AAIUtsACFLeAAhS4QAIUuQACFLmAAhTYQAIU2MACFNlAAhTZwAIU2oACFNrAAhTbAAIU20ACFNuAAhTcAAIU3IACFNzAAhTdAAIU3YACFN3AAhT8gAIU/QACFP2AAhT+AAIU/sACFP8AAhT/QAIU/4ACFP/AAhUAQAIVAMACFQEAAhUBQAIVAcACFQIAAhUgwAIVIUACFSIAAhUigAIVI0ACFSOAAhUjwAIVJAACFSRAAhUkwAIVJUACFSWAAhUlwAIVJkACFSaAAhUswAIVLQACFS1AAhUtwAIVTIACFU0AAhVNgAIVTgACFU7AAhVPAAIVT0ACFU+AAhVPwAIVUEACFVDAAhVRAAIVUUACFVHAAhVSAAIVcMACFXFAAhVxwAIVckACFXMAAhVzQAIVc4ACFXPAAhV0AAIVdIACFXUAAhV1QAIVdYACFXYAAhV2QAIVlQACFZWAAhWWAAIVloACFZdAAhWXgAIVl8ACFZgAAhWYQAIVmMACFZlAAhWZgAIVmcACFZpAAhWagAIVuUACFbnAAhW6QAIVusACFbuAAhW7wAIVvAACFbxAAhW8gAIVvQACFb2AAhW9wAIVvgACFb6AAhW+wAIV3YACFd4AAhXegAIV3wACFd/AAhXgAAIV4EACFeCAAhXgwAIV4UACFeHAAhXiAAIV4kACFeLAAhXjAAIV9UACFf5AAhYIAAIWEQACFhHAAhYSgAIWEwACFhOAAhYUAAIWFIACFhTAAhYVgAIWG8ACFiMAAhYjwAIWJIACFiVAAhYmAAIWJsACFieAAhYoQAIWL4ACFjBAAhYxAAIWMcACFjKAAhYzQAIWNAACFjTAAhY1QAIWVAACFlSAAhZVQAIWVcACFlaAAhZWwAIWVwACFldAAhZXgAIWWAACFljAAhZZAAIWWUACFlnAAhZaAAIWeMACFnlAAhZ6AAIWeoACFntAAhZ7gAIWe8ACFnwAAhZ8QAIWfMACFn2AAhZ9wAIWfgACFn6AAhZ+wAIWnYACFp4AAhaewAIWn0ACFqAAAhagQAIWoIACFqDAAhahAAIWoYACFqJAAhaigAIWosACFqNAAhajgAIWwkACFsLAAhbDgAIWxAACFsTAAhbFAAIWxUACFsWAAhbFwAIWxkACFscAAhbHQAIWx4ACFsgAAhbIQAIW5wACFueAAhboAAIW6IACFulAAhbpgAIW6cACFuoAAhbqQAIW6sACFuuAAhbrwAIW7AACFuyAAhbswAIXC4ACFwwAAhcMgAIXDQACFw3AAhcOAAIXDkACFw6AAhcOwAIXD0ACFxAAAhcQQAIXEIACFxEAAhcRQAIXMAACFzCAAhcxQAIXMcACFzKAAhcywAIXMwACFzNAAhczgAIXNAACFzTAAhc1AAIXNUACFzXAAhc2AAIXWsACF2OAAhdrgAIXc4ACF3QAAhd0gAIXdQACF3WAAhd2QAIXdoACF3bAAhd3gAIXd8ACF3hAAhd4gAIXeQACF3nAAhd6AAIXekACF3sAAhd7QAIXfIACF4LAAheFAAIXhYACF4YAAheIQAIXiQACF4nAAheKQAIXnIACF6WAAhevQAIXuEACF7kAAhe5gAIXugACF7qAAhe7AAIXu4ACF7vAAhe8gAIXwsACF8sAAhfLgAIXzAACF8yAAhfNAAIXzYACF84AAhfOgAIXzwACF9dAAhfYAAIX2MACF9mAAhfaQAIX2wACF9vAAhfcgAIX3UACF93AAhf8gAIX/QACF/2AAhf+AAIX/sACF/8AAhf/QAIX/4ACF//AAhgAQAIYAMACGAEAAhgBQAIYAcACGAIAAhggwAIYIUACGCHAAhgiQAIYIwACGCNAAhgjgAIYI8ACGCQAAhgkgAIYJQACGCVAAhglgAIYJgACGCZAAhhFAAIYRYACGEZAAhhGwAIYR4ACGEfAAhhIAAIYSEACGEiAAhhJAAIYSYACGEnAAhhKAAIYSoACGErAAhhRAAIYUUACGFGAAhhSAAIYcMACGHFAAhhxwAIYckACGHMAAhhzQAIYc4ACGHPAAhh0AAIYdIACGHUAAhh1QAIYdYACGHYAAhh2QAIYlQACGJWAAhiWAAIYloACGJdAAhiXgAIYl8ACGJgAAhiYQAIYmMACGJlAAhiZgAIYmcACGJpAAhiagAIYuUACGLnAAhi6QAIYusACGLuAAhi7wAIYvAACGLxAAhi8gAIYvQACGL2AAhi9wAIYvgACGL6AAhi+wAIY3YACGN4AAhjegAIY3wACGN/AAhjgAAIY4EACGOCAAhjgwAIY4UACGOHAAhjiAAIY4kACGOLAAhjjAAIZAcACGQJAAhkCwAIZA0ACGQQAAhkEQAIZBIACGQTAAhkFAAIZBYACGQYAAhkGQAIZBoACGQcAAhkHQAIZGYACGSKAAhksQAIZNUACGTYAAhk2gAIZNwACGTeAAhk4AAIZOIACGTjAAhk5gAIZP8ACGUcAAhlHgAIZSAACGUiAAhlJAAIZSYACGUoAAhlKgAIZUcACGVKAAhlTQAIZVAACGVTAAhlVgAIZVkACGVcAAhlXgAIZdkACGXbAAhl3QAIZd8ACGXiAAhl4wAIZeQACGXlAAhl5gAIZegACGXqAAhl6wAIZewACGXuAAhl7wAIZmoACGZsAAhmbgAIZnAACGZzAAhmdAAIZnUACGZ2AAhmdwAIZnkACGZ7AAhmfAAIZn0ACGZ/AAhmgAAIZvsACGb9AAhm/wAIZwEACGcEAAhnBQAIZwYACGcHAAhnCAAIZwoACGcMAAhnDQAIZw4ACGcQAAhnEQAIZ4wACGeOAAhnkAAIZ5IACGeVAAhnlgAIZ5cACGeYAAhnmQAIZ5sACGedAAhnngAIZ58ACGehAAhnogAIaB0ACGgfAAhoIQAIaCMACGgmAAhoJwAIaCgACGgpAAhoKgAIaCwACGguAAhoLwAIaDAACGgyAAhoMwAIaK4ACGiwAAhoswAIaLUACGi4AAhouQAIaLoACGi7AAhovAAIaL4ACGjAAAhowQAIaMIACGjEAAhoxQAIaNQACGlPAAhpUQAIaVMACGlVAAhpWAAIaVkACGlaAAhpWwAIaVwACGleAAhpYAAIaWEACGliAAhpZAAIaWUACGn4AAhqGwAIajsACGpbAAhqXQAIal8ACGphAAhqYwAIamYACGpnAAhqaAAIamsACGpsAAhqbgAIam8ACGpxAAhqdAAIanUACGp2AAhqeQAIanoACGqDAAhqnAAIaqUACGqnAAhqqQAIarIACGq1AAhquAAIaroACGsDAAhrJwAIa04ACGtyAAhrdQAIa3cACGt5AAhrewAIa30ACGt/AAhrgAAIa4MACGucAAhrvQAIa78ACGvBAAhrwwAIa8UACGvHAAhryQAIa8sACGvNAAhr7gAIa/EACGv0AAhr9wAIa/oACGv9AAhsAAAIbAMACGwGAAhsCAAIbIMACGyFAAhshwAIbIkACGyMAAhsjQAIbI4ACGyPAAhskAAIbJIACGyUAAhslQAIbJYACGyYAAhsmQAIbRQACG0WAAhtGAAIbRoACG0dAAhtHgAIbR8ACG0gAAhtIQAIbSMACG0lAAhtJgAIbScACG0pAAhtKgAIbaUACG2nAAhtqgAIbawACG2vAAhtsAAIbbEACG2yAAhtswAIbbUACG23AAhtuAAIbbkACG27AAhtvAAIbdUACG3WAAht1wAIbdkACG5UAAhuVgAIblgACG5aAAhuXQAIbl4ACG5fAAhuYAAIbmEACG5jAAhuZQAIbmYACG5nAAhuaQAIbmoACG7lAAhu5wAIbukACG7rAAhu7gAIbu8ACG7wAAhu8QAIbvIACG70AAhu9gAIbvcACG74AAhu+gAIbvsACG92AAhveAAIb3oACG98AAhvfwAIb4AACG+BAAhvggAIb4MACG+FAAhvhwAIb4gACG+JAAhviwAIb4wACHAHAAhwCQAIcAsACHANAAhwEAAIcBEACHASAAhwEwAIcBQACHAWAAhwGAAIcBkACHAaAAhwHAAIcB0ACHCYAAhwmgAIcJwACHCeAAhwoQAIcKIACHCjAAhwpAAIcKUACHCnAAhwqQAIcKoACHCrAAhwrQAIcK4ACHD3AAhxGwAIcUIACHFmAAhxaQAIcWsACHFtAAhxbwAIcXEACHFzAAhxdAAIcXcACHGQAAhxrQAIca8ACHGxAAhxswAIcbUACHG3AAhxuQAIcbsACHHYAAhx2wAIcd4ACHHhAAhx5AAIcecACHHqAAhx7QAIce8ACHJqAAhybAAIcm4ACHJwAAhycwAIcnQACHJ1AAhydgAIcncACHJ5AAhyewAIcnwACHJ9AAhyfwAIcoAACHL7AAhy/QAIcv8ACHMBAAhzBAAIcwUACHMGAAhzBwAIcwgACHMKAAhzDAAIcw0ACHMOAAhzEAAIcxEACHOMAAhzjgAIc5AACHOSAAhzlQAIc5YACHOXAAhzmAAIc5kACHObAAhznQAIc54ACHOfAAhzoQAIc6IACHQdAAh0HwAIdCIACHQkAAh0JwAIdCgACHQpAAh0KgAIdCsACHQtAAh0LwAIdDAACHQxAAh0MwAIdDQACHSvAAh0sQAIdLMACHS1AAh0uAAIdLkACHS6AAh0uwAIdLwACHS+AAh0wAAIdMEACHTCAAh0xAAIdMUACHVAAAh1QgAIdUQACHVGAAh1SQAIdUoACHVLAAh1TAAIdU0ACHVPAAh1UQAIdVIACHVTAAh1VQAIdVYACHXRAAh10wAIddUACHXXAAh12gAIddsACHXcAAh13QAIdd4ACHXgAAh14gAIdeMACHXkAAh15gAIdecACHZ6AAh2nQAIdr0ACHbdAAh23wAIduEACHbjAAh25QAIdugACHbpAAh26gAIdu0ACHbuAAh28AAIdvEACHb0AAh29wAIdvgACHb5AAh2/AAIdv0ACHcCAAh3GwAIdyQACHcmAAh3KQAIdzIACHc1AAh3OAAIdzoACHeDAAh3pwAId84ACHfyAAh39QAId/cACHf5AAh3+wAId/0ACHf/AAh4AAAIeAMACHgcAAh4PQAIeD8ACHhBAAh4QwAIeEUACHhHAAh4SQAIeEsACHhNAAh4bgAIeHEACHh0AAh4dwAIeHoACHh9AAh4gAAIeIMACHiGAAh4iAAIeQMACHkFAAh5BwAIeQkACHkMAAh5DQAIeQ4ACHkPAAh5EAAIeRIACHkUAAh5FQAIeRYACHkYAAh5GQAIeZQACHmWAAh5mAAIeZoACHmdAAh5ngAIeZ8ACHmgAAh5oQAIeaMACHmlAAh5pgAIeacACHmpAAh5qgAIeiUACHonAAh6KgAIeiwACHovAAh6MAAIejEACHoyAAh6MwAIejUACHo3AAh6OAAIejkACHo7AAh6PAAIelUACHpWAAh6VwAIelkACHrUAAh61gAIetgACHraAAh63QAIet4ACHrfAAh64AAIeuEACHrjAAh65QAIeuYACHrnAAh66QAIeuoACHtlAAh7ZwAIe2kACHtrAAh7bgAIe28ACHtwAAh7cQAIe3IACHt0AAh7dgAIe3cACHt4AAh7egAIe3sACHv2AAh7+AAIe/oACHv8AAh7/wAIfAAACHwBAAh8AgAIfAMACHwFAAh8BwAIfAgACHwJAAh8CwAIfAwACHyHAAh8iQAIfIsACHyNAAh8kAAIfJEACHySAAh8kwAIfJQACHyWAAh8mAAIfJkACHyaAAh8nAAIfJ0ACH0YAAh9GgAIfRwACH0eAAh9IQAIfSIACH0jAAh9JAAIfSUACH0nAAh9KQAIfSoACH0rAAh9LQAIfS4ACH13AAh9mwAIfcIACH3mAAh96QAIfewACH3uAAh98AAIffIACH30AAh99QAIffgACH4RAAh+LgAIfjEACH40AAh+NwAIfjoACH49AAh+QAAIfkMACH5gAAh+YwAIfmYACH5pAAh+bAAIfm8ACH5yAAh+dQAIfncACH7yAAh+9AAIfvcACH75AAh+/AAIfv0ACH7+AAh+/wAIfwAACH8CAAh/BQAIfwYACH8HAAh/CQAIfwoACH+FAAh/hwAIf4oACH+MAAh/jwAIf5AACH+RAAh/kgAIf5MACH+VAAh/mAAIf5kACH+aAAh/nAAIf50ACIAYAAiAGgAIgB0ACIAfAAiAIgAIgCMACIAkAAiAJQAIgCYACIAoAAiAKwAIgCwACIAtAAiALwAIgDAACICrAAiArQAIgLAACICyAAiAtQAIgLYACIC3AAiAuAAIgLkACIC7AAiAvgAIgL8ACIDAAAiAwgAIgMMACIE+AAiBQAAIgUIACIFEAAiBRwAIgUgACIFJAAiBSgAIgUsACIFNAAiBUAAIgVEACIFSAAiBVAAIgVUACIHQAAiB0gAIgdQACIHWAAiB2QAIgdoACIHbAAiB3AAIgd0ACIHfAAiB4gAIgeMACIHkAAiB5gAIgecACIJiAAiCZAAIgmcACIJpAAiCbAAIgm0ACIJuAAiCbwAIgnAACIJyAAiCdQAIgnYACIJ3AAiCeQAIgnoACIMNAAiDMAAIg1AACINwAAiDcgAIg3QACIN2AAiDeAAIg3sACIN8AAiDfQAIg4AACIOBAAiDgwAIg4QACIOHAAiDigAIg4sACIOMAAiDjwAIg5AACIOVAAiDrgAIg7cACIO5AAiDvAAIg8UACIPIAAiDywAIg80ACIQWAAiEOgAIhGEACISFAAiEiAAIhIoACISMAAiEjgAIhJAACISSAAiEkwAIhJYACISvAAiE0AAIhNIACITUAAiE1gAIhNgACITaAAiE3AAIhN4ACITgAAiFAQAIhQQACIUHAAiFCgAIhQ0ACIUQAAiFEwAIhRYACIUZAAiFGwAIhZYACIWYAAiFmgAIhZwACIWfAAiFoAAIhaEACIWiAAiFowAIhaUACIWnAAiFqAAIhakACIWrAAiFrAAIhicACIYpAAiGKwAIhi0ACIYwAAiGMQAIhjIACIYzAAiGNAAIhjYACIY4AAiGOQAIhjoACIY8AAiGPQAIhrgACIa6AAiGvQAIhr8ACIbCAAiGwwAIhsQACIbFAAiGxgAIhsgACIbKAAiGywAIhswACIbOAAiGzwAIhugACIbpAAiG6gAIhuwACIdnAAiHaQAIh2sACIdtAAiHcAAIh3EACIdyAAiHcwAIh3QACId2AAiHeAAIh3kACId6AAiHfAAIh30ACIf4AAiH+gAIh/wACIf+AAiIAQAIiAIACIgDAAiIBAAIiAUACIgHAAiICQAIiAoACIgLAAiIDQAIiA4ACIiJAAiIiwAIiI0ACIiPAAiIkgAIiJMACIiUAAiIlQAIiJYACIiYAAiImgAIiJsACIicAAiIngAIiJ8ACIkaAAiJHAAIiR4ACIkgAAiJIwAIiSQACIklAAiJJgAIiScACIkpAAiJKwAIiSwACIktAAiJLwAIiTAACImrAAiJrQAIia8ACImxAAiJtAAIibUACIm2AAiJtwAIibgACIm6AAiJvAAIib0ACIm+AAiJwAAIicEACIoKAAiKLgAIilUACIp5AAiKfAAIin8ACIqBAAiKgwAIioUACIqHAAiKiAAIiosACIqkAAiKwQAIisQACIrHAAiKygAIis0ACIrQAAiK0wAIitYACIrzAAiK9gAIivkACIr8AAiK/wAIiwIACIsFAAiLCAAIiwoACIuFAAiLhwAIi4oACIuMAAiLjwAIi5AACIuRAAiLkgAIi5MACIuVAAiLmAAIi5kACIuaAAiLnAAIi50ACIwYAAiMGgAIjB0ACIwfAAiMIgAIjCMACIwkAAiMJQAIjCYACIwoAAiMKwAIjCwACIwtAAiMLwAIjDAACIyrAAiMrQAIjLAACIyyAAiMtQAIjLYACIy3AAiMuAAIjLkACIy7AAiMvgAIjL8ACIzAAAiMwgAIjMMACI0+AAiNQAAIjUMACI1FAAiNSAAIjUkACI1KAAiNSwAIjUwACI1OAAiNUQAIjVIACI1TAAiNVQAIjVYACI3RAAiN0wAIjdUACI3XAAiN2gAIjdsACI3cAAiN3QAIjd4ACI3gAAiN4wAIjeQACI3lAAiN5wAIjegACI5jAAiOZQAIjmcACI5pAAiObAAIjm0ACI5uAAiObwAIjnAACI5yAAiOdQAIjnYACI53AAiOeQAIjnoACI71AAiO9wAIjvoACI78AAiO/wAIjwAACI8BAAiPAgAIjwMACI8FAAiPCAAIjwkACI8KAAiPDAAIjw0ACI8eAAiPHwAIjyEACI+cAAiPngAIj6AACI+iAAiPpQAIj6YACI+nAAiPqAAIj6kACI+rAAiPrgAIj68ACI+wAAiPsgAIj7MACJAuAAiQMAAIkDIACJA0AAiQNwAIkDgACJA5AAiQOgAIkDsACJA9AAiQQAAIkEEACJBCAAiQRAAIkEUACJDAAAiQwgAIkMUACJDHAAiQygAIkMsACJDMAAiQzQAIkM4ACJDQAAiQ0wAIkNQACJDVAAiQ1wAIkNgACJFrAAiRjgAIka4ACJHOAAiR0AAIkdIACJHUAAiR1gAIkdkACJHaAAiR2wAIkd4ACJHfAAiR4QAIkeIACJHkAAiR5wAIkegACJHpAAiR7AAIke0ACJHyAAiSCwAIkhQACJIWAAiSGAAIkiEACJIkAAiSJwAIkikACJJyAAiSlgAIkr0ACJLhAAiS5AAIkuYACJLoAAiS6gAIkuwACJLuAAiS7wAIkvIACJMLAAiTLAAIky4ACJMwAAiTMgAIkzQACJM2AAiTOAAIkzoACJM8AAiTXQAIk2AACJNjAAiTZgAIk2kACJNsAAiTbwAIk3IACJN1AAiTdwAIk/IACJP0AAiT9gAIk/gACJP7AAiT/AAIk/0ACJP+AAiT/wAIlAEACJQDAAiUBAAIlAUACJQHAAiUCAAIlIMACJSFAAiUhwAIlIkACJSMAAiUjQAIlI4ACJSPAAiUkAAIlJIACJSUAAiUlQAIlJYACJSYAAiUmQAIlRQACJUWAAiVGQAIlRsACJUeAAiVHwAIlSAACJUhAAiVIgAIlSQACJUmAAiVJwAIlSgACJUqAAiVKwAIlUQACJVFAAiVRgAIlUgACJXDAAiVxQAIlccACJXJAAiVzAAIlc0ACJXOAAiVzwAIldAACJXSAAiV1AAIldUACJXWAAiV2AAIldkACJZUAAiWVgAIllgACJZaAAiWXQAIll4ACJZfAAiWYAAIlmEACJZjAAiWZQAIlmYACJZnAAiWaQAIlmoACJblAAiW5wAIlukACJbrAAiW7gAIlu8ACJbwAAiW8QAIlvIACJb0AAiW9gAIlvcACJb4AAiW+gAIlvsACJd2AAiXeAAIl3oACJd8AAiXfwAIl4AACJeBAAiXggAIl4MACJeFAAiXhwAIl4gACJeJAAiXiwAIl4wACJgHAAiYCQAImAsACJgNAAiYEAAImBEACJgSAAiYEwAImBQACJgWAAiYGAAImBkACJgaAAiYHAAImB0ACJhmAAiYigAImLEACJjVAAiY2AAImNoACJjcAAiY3gAImOAACJjiAAiY4wAImOYACJj/AAiZHAAImR4ACJkgAAiZIgAImSQACJkmAAiZKAAImSoACJlHAAiZSgAImU0ACJlQAAiZUwAImVYACJlZAAiZXAAImV4ACJnZAAiZ2wAImd0ACJnfAAiZ4gAImeMACJnkAAiZ5QAImeYACJnoAAiZ6gAImesACJnsAAiZ7gAIme8ACJpqAAiabAAImm4ACJpwAAiacwAImnQACJp1AAiadgAImncACJp5AAiaewAImnwACJp9AAiafwAImoAACJr7AAia/QAImv8ACJsBAAibBAAImwUACJsGAAibBwAImwgACJsKAAibDAAImw0ACJsOAAibEAAImxEACJuMAAibjgAIm5AACJuSAAiblQAIm5YACJuXAAibmAAIm5kACJubAAibnQAIm54ACJufAAiboQAIm6IACJwdAAicHwAInCEACJwjAAicJgAInCcACJwoAAicKQAInCoACJwsAAicLgAInC8ACJwwAAicMgAInDMACJyuAAicsAAInLMACJy1AAicuAAInLkACJy6AAicuwAInLwACJy+AAicwAAInMEACJzCAAicxAAInMUACJzkAAidXwAInWEACJ1jAAidZQAInWgACJ1pAAidagAInWsACJ1sAAidbgAInXAACJ1xAAidcgAInXQACJ11AAieCAAInisACJ5LAAieawAInm0ACJ5vAAiecQAInnMACJ52AAiedwAInngACJ57AAiefAAInn4ACJ5/AAieggAInoUACJ6GAAiehwAInooACJ6LAAielAAInq0ACJ62AAieuAAInrsACJ7EAAiexwAInsoACJ7MAAifFQAInzkACJ9gAAifhAAIn4cACJ+JAAifiwAIn40ACJ+PAAifkQAIn5IACJ+VAAifrgAIn88ACJ/RAAif0wAIn9UACJ/XAAif2QAIn9sACJ/dAAif3wAIoAAACKADAAigBgAIoAkACKAMAAigDwAIoBIACKAVAAigGAAIoBoACKCVAAiglwAIoJkACKCbAAigngAIoJ8ACKCgAAigoQAIoKIACKCkAAigpgAIoKcACKCoAAigqgAIoKsACKEmAAihKAAIoSoACKEsAAihLwAIoTAACKExAAihMgAIoTMACKE1AAihNwAIoTgACKE5AAihOwAIoTwACKG3AAihuQAIobwACKG+AAihwQAIocIACKHDAAihxAAIocUACKHHAAihyQAIocoACKHLAAihzQAIoc4ACKHnAAih6AAIoekACKHrAAiiZgAIomgACKJqAAiibAAIom8ACKJwAAiicQAIonIACKJzAAiidQAIoncACKJ4AAiieQAIonsACKJ8AAii9wAIovkACKL7AAii/QAIowAACKMBAAijAgAIowMACKMEAAijBgAIowgACKMJAAijCgAIowwACKMNAAijiAAIo4oACKOMAAijjgAIo5EACKOSAAijkwAIo5QACKOVAAijlwAIo5kACKOaAAijmwAIo50ACKOeAAikGQAIpBsACKQdAAikHwAIpCIACKQjAAikJAAIpCUACKQmAAikKAAIpCoACKQrAAikLAAIpC4ACKQvAAikqgAIpKwACKSuAAiksAAIpLMACKS0AAiktQAIpLYACKS3AAikuQAIpLsACKS8AAikvQAIpL8ACKTAAAilCQAIpS0ACKVUAAileAAIpXsACKV+AAilgAAIpYIACKWEAAilhgAIpYcACKWKAAilowAIpcAACKXDAAilxgAIpckACKXMAAilzwAIpdIACKXVAAil8gAIpfUACKX4AAil+wAIpf4ACKYBAAimBAAIpgcACKYJAAimhAAIpoYACKaJAAimiwAIpo4ACKaPAAimkAAIppEACKaSAAimlAAIppcACKaYAAimmQAIppsACKacAAinFwAIpxkACKccAAinHgAIpyEACKciAAinIwAIpyQACKclAAinJwAIpyoACKcrAAinLAAIpy4ACKcvAAinqgAIp6wACKevAAinsQAIp7QACKe1AAintgAIp7cACKe4AAinugAIp70ACKe+AAinvwAIp8EACKfCAAioPQAIqD8ACKhCAAioRAAIqEcACKhIAAioSQAIqEoACKhLAAioTQAIqFAACKhRAAioUgAIqFQACKhVAAio0AAIqNIACKjUAAio1gAIqNkACKjaAAio2wAIqNwACKjdAAio3wAIqOIACKjjAAio5AAIqOYACKjnAAipYgAIqWQACKlmAAipaAAIqWsACKlsAAipbQAIqW4ACKlvAAipcQAIqXQACKl1AAipdgAIqXgACKl5AAip9AAIqfYACKn5AAip+wAIqf4ACKn/AAiqAAAIqgEACKoCAAiqBAAIqgcACKoIAAiqCQAIqgsACKoMAAiqnwAIqsIACKriAAirAgAIqwQACKsGAAirCAAIqwoACKsNAAirDgAIqw8ACKsSAAirEwAIqxUACKsWAAirGQAIqxwACKsdAAirHgAIqyEACKsiAAirJwAIq0AACKtJAAirSwAIq04ACKtXAAirWgAIq10ACKtfAAirqAAIq8wACKvzAAisFwAIrBoACKwcAAisHgAIrCAACKwiAAisJAAIrCUACKwoAAisQQAIrGIACKxkAAisZgAIrGgACKxqAAisbAAIrG4ACKxwAAiscgAIrJMACKyWAAismQAIrJwACKyfAAisogAIrKUACKyoAAisqwAIrK0ACK0oAAitKgAIrSwACK0uAAitMQAIrTIACK0zAAitNAAIrTUACK03AAitOQAIrToACK07AAitPQAIrT4ACK25AAituwAIrb0ACK2/AAitwgAIrcMACK3EAAitxQAIrcYACK3IAAitygAIrcsACK3MAAitzgAIrc8ACK5KAAiuTAAIrk8ACK5RAAiuVAAIrlUACK5WAAiuVwAIrlgACK5aAAiuXAAIrl0ACK5eAAiuYAAIrmEACK56AAiuewAIrnwACK5+AAiu+QAIrvsACK79AAiu/wAIrwIACK8DAAivBAAIrwUACK8GAAivCAAIrwoACK8LAAivDAAIrw4ACK8PAAivigAIr4wACK+OAAivkAAIr5MACK+UAAivlQAIr5YACK+XAAivmQAIr5sACK+cAAivnQAIr58ACK+gAAiwGwAIsB0ACLAfAAiwIQAIsCQACLAlAAiwJgAIsCcACLAoAAiwKgAIsCwACLAtAAiwLgAIsDAACLAxAAiwrAAIsK4ACLCwAAiwsgAIsLUACLC2AAiwtwAIsLgACLC5AAiwuwAIsL0ACLC+AAiwvwAIsMEACLDCAAixPQAIsT8ACLFBAAixQwAIsUYACLFHAAixSAAIsUkACLFKAAixTAAIsU4ACLFPAAixUAAIsVIACLFTAAixnAAIscAACLHnAAiyCwAIsg4ACLIRAAiyEwAIshUACLIXAAiyGQAIshoACLIdAAiyNgAIslMACLJWAAiyWQAIslwACLJfAAiyYgAIsmUACLJoAAiyhQAIsogACLKLAAiyjgAIspEACLKUAAiylwAIspoACLKcAAizFwAIsxkACLMcAAizHgAIsyEACLMiAAizIwAIsyQACLMlAAizJwAIsyoACLMrAAizLAAIsy4ACLMvAAizqgAIs6wACLOvAAizsQAIs7QACLO1AAiztgAIs7cACLO4AAizugAIs70ACLO+AAizvwAIs8EACLPCAAi0PQAItD8ACLRCAAi0RAAItEcACLRIAAi0SQAItEoACLRLAAi0TQAItFAACLRRAAi0UgAItFQACLRVAAi00AAItNIACLTVAAi01wAItNoACLTbAAi03AAItN0ACLTeAAi04AAItOMACLTkAAi05QAItOcACLToAAi1YwAItWUACLVnAAi1aQAItWwACLVtAAi1bgAItW8ACLVwAAi1cgAItXUACLV2AAi1dwAItXkACLV6AAi19QAItfcACLX5AAi1+wAItf4ACLX/AAi2AAAItgEACLYCAAi2BAAItgcACLYIAAi2CQAItgsACLYMAAi2hwAItokACLaMAAi2jgAItpEACLaSAAi2kwAItpQACLaVAAi2lwAItpoACLabAAi2nAAItp4ACLafAAi3MgAIt1UACLd1AAi3lQAIt5cACLeZAAi3mwAIt50ACLegAAi3oQAIt6IACLelAAi3pgAIt6gACLepAAi3qwAIt64ACLevAAi3sAAIt7MACLe0AAi3uQAIt9IACLfbAAi33QAIt98ACLfoAAi36wAIt+4ACLfwAAi4OQAIuF0ACLiEAAi4qAAIuKsACLitAAi4rwAIuLEACLizAAi4tQAIuLYACLi5AAi40gAIuPMACLj1AAi49wAIuPkACLj7AAi4/QAIuP8ACLkBAAi5AwAIuSQACLknAAi5KgAIuS0ACLkwAAi5MwAIuTYACLk5AAi5PAAIuT4ACLm5AAi5uwAIub0ACLm/AAi5wgAIucMACLnEAAi5xQAIucYACLnIAAi5ygAIucsACLnMAAi5zgAIuc8ACLpKAAi6TAAIuk4ACLpQAAi6UwAIulQACLpVAAi6VgAIulcACLpZAAi6WwAIulwACLpdAAi6XwAIumAACLrbAAi63QAIuuAACLriAAi65QAIuuYACLrnAAi66AAIuukACLrrAAi67QAIuu4ACLrvAAi68QAIuvIACLsLAAi7DAAIuw0ACLsPAAi7igAIu4wACLuOAAi7kAAIu5MACLuUAAi7lQAIu5YACLuXAAi7mQAIu5sACLucAAi7nQAIu58ACLugAAi8GwAIvB0ACLwfAAi8IQAIvCQACLwlAAi8JgAIvCcACLwoAAi8KgAIvCwACLwtAAi8LgAIvDAACLwxAAi8rAAIvK4ACLywAAi8sgAIvLUACLy2AAi8twAIvLgACLy5AAi8uwAIvL0ACLy+AAi8vwAIvMEACLzCAAi9PQAIvT8ACL1BAAi9QwAIvUYACL1HAAi9SAAIvUkACL1KAAi9TAAIvU4ACL1PAAi9UAAIvVIACL1TAAi9zgAIvdAACL3SAAi91AAIvdcACL3YAAi92QAIvdoACL3bAAi93QAIvd8ACL3gAAi94QAIveMACL3kAAi+LQAIvlEACL54AAi+nAAIvp8ACL6hAAi+owAIvqUACL6nAAi+qQAIvqoACL6tAAi+xgAIvuMACL7lAAi+5wAIvukACL7rAAi+7QAIvu8ACL7xAAi/DgAIvxEACL8UAAi/FwAIvxoACL8dAAi/IAAIvyMACL8lAAi/oAAIv6IACL+kAAi/pgAIv6kACL+qAAi/qwAIv6wACL+tAAi/rwAIv7EACL+yAAi/swAIv7UACL+2AAjAMQAIwDMACMA1AAjANwAIwDoACMA7AAjAPAAIwD0ACMA+AAjAQAAIwEIACMBDAAjARAAIwEYACMBHAAjAwgAIwMQACMDGAAjAyAAIwMsACMDMAAjAzQAIwM4ACMDPAAjA0QAIwNMACMDUAAjA1QAIwNcACMDYAAjBUwAIwVUACMFYAAjBWgAIwV0ACMFeAAjBXwAIwWAACMFhAAjBYwAIwWUACMFmAAjBZwAIwWkACMFqAAjB5QAIwecACMHpAAjB6wAIwe4ACMHvAAjB8AAIwfEACMHyAAjB9AAIwfYACMH3AAjB+AAIwfoACMH7AAjCdgAIwngACMJ6AAjCfAAIwn8ACMKAAAjCgQAIwoIACMKDAAjChQAIwocACMKIAAjCiQAIwosACMKMAAjDBwAIwwkACMMLAAjDDQAIwxAACMMRAAjDEgAIwxMACMMUAAjDFgAIwxgACMMZAAjDGgAIwxwACMMdAAjDsAAIw9MACMPzAAjEEwAIxBUACMQXAAjEGQAIxBsACMQeAAjEHwAIxCAACMQjAAjEJAAIxCYACMQnAAjEKgAIxC0ACMQuAAjELwAIxDIACMQzAAjEPAAIxFUACMReAAjEYAAIxGMACMRsAAjEbwAIxHIACMR0AAjEvQAIxOEACMUIAAjFLAAIxS8ACMUxAAjFMwAIxTUACMU3AAjFOQAIxToACMU9AAjFVgAIxXcACMV5AAjFewAIxX0ACMV/AAjFgQAIxYMACMWFAAjFhwAIxagACMWrAAjFrgAIxbEACMW0AAjFtwAIxboACMW9AAjFwAAIxcIACMY9AAjGPwAIxkEACMZDAAjGRgAIxkcACMZIAAjGSQAIxkoACMZMAAjGTgAIxk8ACMZQAAjGUgAIxlMACMbOAAjG0AAIxtIACMbUAAjG1wAIxtgACMbZAAjG2gAIxtsACMbdAAjG3wAIxuAACMbhAAjG4wAIxuQACMdfAAjHYQAIx2QACMdmAAjHaQAIx2oACMdrAAjHbAAIx20ACMdvAAjHcQAIx3IACMdzAAjHdQAIx3YACMePAAjHkAAIx5EACMeTAAjIDgAIyBAACMgSAAjIFAAIyBcACMgYAAjIGQAIyBoACMgbAAjIHQAIyB8ACMggAAjIIQAIyCMACMgkAAjInwAIyKEACMijAAjIpQAIyKgACMipAAjIqgAIyKsACMisAAjIrgAIyLAACMixAAjIsgAIyLQACMi1AAjJMAAIyTIACMk0AAjJNgAIyTkACMk6AAjJOwAIyTwACMk9AAjJPwAIyUEACMlCAAjJQwAIyUUACMlGAAjJwQAIycMACMnFAAjJxwAIycoACMnLAAjJzAAIyc0ACMnOAAjJ0AAIydIACMnTAAjJ1AAIydYACMnXAAjKUgAIylQACMpWAAjKWAAIylsACMpcAAjKXQAIyl4ACMpfAAjKYQAIymMACMpkAAjKZQAIymcACMpoAAjKsQAIytUACMr8AAjLIAAIyyMACMsmAAjLKAAIyyoACMssAAjLLgAIyy8ACMsyAAjLSwAIy2gACMtrAAjLbgAIy3EACMt0AAjLdwAIy3oACMt9AAjLmgAIy50ACMugAAjLowAIy6YACMupAAjLrAAIy68ACMuxAAjMLAAIzC4ACMwxAAjMMwAIzDYACMw3AAjMOAAIzDkACMw6AAjMPAAIzD8ACMxAAAjMQQAIzEMACMxEAAjMvwAIzMEACMzEAAjMxgAIzMkACMzKAAjMywAIzMwACMzNAAjMzwAIzNIACMzTAAjM1AAIzNYACMzXAAjNUgAIzVQACM1XAAjNWQAIzVwACM1dAAjNXgAIzV8ACM1gAAjNYgAIzWUACM1mAAjNZwAIzWkACM1qAAjN5QAIzecACM3qAAjN7AAIze8ACM3wAAjN8QAIzfIACM3zAAjN9QAIzfgACM35AAjN+gAIzfwACM39AAjOgAAIzqQACM7IAAjO6wAIzxIACM8yAAjPWQAIz4AACM+gAAjPxAAIz+gACM/qAAjP7QAIz+8ACM/xAAjP8wAIz/YACM/5AAjP+wAIz/0ACNAAAAjQAgAI0AQACNAHAAjQCgAI0AsACNAQAAjQKQAI0C4ACNAwAAjQNQAI0DgACNA6AAjQgwAI0KcACNDOAAjQ8gAI0PUACND3AAjQ+QAI0PsACND9AAjQ/wAI0QAACNEDAAjRHAAI0UEACNFDAAjRRQAI0UcACNFJAAjRSwAI0U0ACNFPAAjRUQAI0VMACNF4AAjRewAI0X4ACNGBAAjRhAAI0YcACNGKAAjRjQAI0ZAACNGTAAjRlQAI0hAACNISAAjSFQAI0hcACNIaAAjSGwAI0hwACNIdAAjSHgAI0iAACNIiAAjSIwAI0iQACNImAAjSJwAI0jgACNI5AAjSOwAI0rYACNK4AAjSugAI0rwACNK/AAjSwAAI0sEACNLCAAjSwwAI0sUACNLHAAjSyAAI0skACNLLAAjSzAAI00cACNNJAAjTTAAI004ACNNRAAjTUgAI01MACNNUAAjTVQAI01cACNNZAAjTWgAI01sACNNdAAjTXgAI028ACNNwAAjTcgAI0+0ACNPvAAjT8QAI0/MACNP2AAjT9wAI0/gACNP5AAjT+gAI0/wACNP+AAjT/wAI1AAACNQCAAjUAwAI1H4ACNSAAAjUgwAI1IUACNSIAAjUiQAI1IoACNSLAAjUjAAI1I4ACNSQAAjUkQAI1JIACNSUAAjUlQAI1KYACNSnAAjUqQAI1SQACNUmAAjVKAAI1SoACNUtAAjVLgAI1S8ACNUwAAjVMQAI1TMACNU1AAjVNgAI1TcACNU5AAjVOgAI1bUACNW3AAjVugAI1bwACNW/AAjVwAAI1cEACNXCAAjVwwAI1cUACNXHAAjVyAAI1ckACNXLAAjVzAAI1eUACNXmAAjV5wAI1ekACNZkAAjWZgAI1mgACNZqAAjWbQAI1m4ACNZvAAjWcAAI1nEACNZzAAjWdQAI1nYACNZ3AAjWeQAI1noACNb1AAjW9wAI1voACNb8AAjW/wAI1wAACNcBAAjXAgAI1wMACNcFAAjXBwAI1wgACNcJAAjXCwAI1wwACNcmAAjXPwAI10gACNdLAAjXTgAI11cACNdaAAjXXQAI118ACNdqAAjXeAAI2AsACNguAAjYTgAI2G4ACNhwAAjYcgAI2HQACNh2AAjYeQAI2HoACNh7AAjYfgAI2H8ACNiBAAjYggAI2IQACNiHAAjYiAAI2IkACNiMAAjYjQAI2JIACNirAAjYtAAI2LYACNi4AAjYwQAI2MQACNjHAAjYyQAI2RIACNk2AAjZXQAI2YEACNmEAAjZhgAI2YgACNmKAAjZjAAI2Y4ACNmPAAjZkgAI2asACNnMAAjZzgAI2dAACNnSAAjZ1AAI2dYACNnYAAjZ2gAI2dwACNn9AAjaAAAI2gMACNoGAAjaCQAI2gwACNoPAAjaEgAI2hUACNoXAAjakgAI2pQACNqWAAjamAAI2psACNqcAAjanQAI2p4ACNqfAAjaoQAI2qMACNqkAAjapQAI2qcACNqoAAjbIwAI2yUACNsnAAjbKQAI2ywACNstAAjbLgAI2y8ACNswAAjbMgAI2zQACNs1AAjbNgAI2zgACNs5AAjbtAAI27YACNu5AAjbuwAI274ACNu/AAjbwAAI28EACNvCAAjbxAAI28YACNvHAAjbyAAI28oACNvLAAjb5AAI2+UACNvmAAjb6AAI3GMACNxlAAjcZwAI3GkACNxsAAjcbQAI3G4ACNxvAAjccAAI3HIACNx0AAjcdQAI3HYACNx4AAjceQAI3PQACNz2AAjc+AAI3PoACNz9AAjc/gAI3P8ACN0AAAjdAQAI3QMACN0FAAjdBgAI3QcACN0JAAjdCgAI3YUACN2HAAjdiQAI3YsACN2OAAjdjwAI3ZAACN2RAAjdkgAI3ZQACN2WAAjdlwAI3ZgACN2aAAjdmwAI3hYACN4YAAjeGgAI3hwACN4fAAjeIAAI3iEACN4iAAjeIwAI3iUACN4nAAjeKAAI3ikACN4rAAjeLAAI3qcACN6pAAjeqwAI3q0ACN6wAAjesQAI3rIACN6zAAjetAAI3rYACN64AAjeuQAI3roACN68AAjevQAI3wYACN8qAAjfUQAI33UACN94AAjfegAI33wACN9+AAjfgAAI34IACN+DAAjfhgAI358ACN+8AAjfvgAI38AACN/CAAjfxAAI38YACN/IAAjfygAI3+cACN/qAAjf7QAI3/AACN/zAAjf9gAI3/kACN/8AAjf/gAI4HkACOB7AAjgfQAI4H8ACOCCAAjggwAI4IQACOCFAAjghgAI4IgACOCKAAjgiwAI4IwACOCOAAjgjwAI4QoACOEMAAjhDgAI4RAACOETAAjhFAAI4RUACOEWAAjhFwAI4RkACOEbAAjhHAAI4R0ACOEfAAjhIAAI4ZsACOGdAAjhnwAI4aEACOGkAAjhpQAI4aYACOGnAAjhqAAI4aoACOGsAAjhrQAI4a4ACOGwAAjhsQAI4iwACOIuAAjiMAAI4jIACOI1AAjiNgAI4jcACOI4AAjiOQAI4jsACOI9AAjiPgAI4j8ACOJBAAjiQgAI4r0ACOK/AAjiwQAI4sMACOLGAAjixwAI4sgACOLJAAjiygAI4swACOLOAAjizwAI4tAACOLSAAji0wAI404ACONQAAjjUwAI41UACONYAAjjWQAI41oACONbAAjjXAAI414ACONgAAjjYQAI42IACONkAAjjZQAI43QACOPvAAjj8QAI4/MACOP1AAjj+AAI4/kACOP6AAjj+wAI4/wACOP+AAjkAAAI5AEACOQCAAjkBAAI5AUACOSYAAjkuwAI5NsACOT7AAjk/QAI5P8ACOUBAAjlAwAI5QYACOUHAAjlCAAI5QsACOUMAAjlDgAI5Q8ACOUSAAjlFQAI5RYACOUXAAjlGgAI5RsACOUgAAjlOQAI5UIACOVEAAjlRwAI5VAACOVTAAjlVgAI5VgACOWhAAjlxQAI5ewACOYQAAjmEwAI5hUACOYXAAjmGQAI5hsACOYdAAjmHgAI5iEACOY6AAjmWwAI5l0ACOZfAAjmYQAI5mMACOZlAAjmZwAI5mkACOZrAAjmjAAI5o8ACOaSAAjmlQAI5pgACOabAAjmngAI5qEACOakAAjmpgAI5yEACOcjAAjnJQAI5ycACOcqAAjnKwAI5ywACOctAAjnLgAI5zAACOcyAAjnMwAI5zQACOc2AAjnNwAI57IACOe0AAjntgAI57gACOe7AAjnvAAI570ACOe+AAjnvwAI58EACOfDAAjnxAAI58UACOfHAAjnyAAI6EMACOhFAAjoSAAI6EoACOhNAAjoTgAI6E8ACOhQAAjoUQAI6FMACOhVAAjoVgAI6FcACOhZAAjoWgAI6HMACOh0AAjodQAI6HcACOjyAAjo9AAI6PYACOj4AAjo+wAI6PwACOj9AAjo/gAI6P8ACOkBAAjpAwAI6QQACOkFAAjpBwAI6QgACOmDAAjphQAI6YcACOmJAAjpjAAI6Y0ACOmOAAjpjwAI6ZAACOmSAAjplAAI6ZUACOmWAAjpmAAI6ZkACOoUAAjqFgAI6hgACOoaAAjqHQAI6h4ACOofAAjqIAAI6iEACOojAAjqJQAI6iYACOonAAjqKQAI6ioACOqlAAjqpwAI6qkACOqrAAjqrgAI6q8ACOqwAAjqsQAI6rIACOq0AAjqtgAI6rcACOq4AAjqugAI6rsACOs2AAjrOAAI6zoACOs8AAjrPwAI60AACOtBAAjrQgAI60MACOtFAAjrRwAI60gACOtJAAjrSwAI60wACOuVAAjruQAI6+AACOwEAAjsBwAI7AoACOwMAAjsDgAI7BAACOwSAAjsEwAI7BYACOwvAAjsTAAI7E8ACOxSAAjsVQAI7FgACOxbAAjsXgAI7GEACOx+AAjsgQAI7IQACOyHAAjsigAI7I0ACOyQAAjskwAI7JUACO0QAAjtEgAI7RUACO0XAAjtGgAI7RsACO0cAAjtHQAI7R4ACO0gAAjtIwAI7SQACO0lAAjtJwAI7SgACO2jAAjtpQAI7agACO2qAAjtrQAI7a4ACO2vAAjtsAAI7bEACO2zAAjttgAI7bcACO24AAjtugAI7bsACO42AAjuOAAI7jsACO49AAjuQAAI7kEACO5CAAjuQwAI7kQACO5GAAjuSQAI7koACO5LAAjuTQAI7k4ACO7JAAjuywAI7s4ACO7QAAju0wAI7tQACO7VAAju1gAI7tcACO7ZAAju3AAI7t0ACO7eAAju4AAI7uEACO9cAAjvXgAI72AACO9iAAjvZQAI72YACO9nAAjvaAAI72kACO9rAAjvbgAI728ACO9wAAjvcgAI73MACO/uAAjv8AAI7/IACO/0AAjv9wAI7/gACO/5AAjv+gAI7/sACO/9AAjwAAAI8AEACPACAAjwBAAI8AUACPCAAAjwggAI8IUACPCHAAjwigAI8IsACPCMAAjwjQAI8I4ACPCQAAjwkwAI8JQACPCVAAjwlwAI8JgACPCpAAjwqgAI8KwACPEnAAjxKQAI8SsACPEtAAjxMAAI8TEACPEyAAjxMwAI8TQACPE2AAjxOQAI8ToACPE7AAjxPQAI8T4ACPG5AAjxuwAI8b0ACPG/AAjxwgAI8cMACPHEAAjxxQAI8cYACPHIAAjxywAI8cwACPHNAAjxzwAI8dAACPJLAAjyTQAI8lAACPJSAAjyVQAI8lYACPJXAAjyWAAI8lkACPJbAAjyXgAI8l8ACPJgAAjyYgAI8mMACPL2AAjzGQAI8zkACPNZAAjzWwAI810ACPNfAAjzYQAI82QACPNlAAjzZgAI82kACPNqAAjzbAAI820ACPNwAAjzcwAI83QACPN1AAjzeAAI83kACPN+AAjzlwAI86AACPOiAAjzpQAI864ACPOxAAjztAAI87YACPP/AAj0IwAI9EoACPRuAAj0cQAI9HMACPR1AAj0dwAI9HkACPR7AAj0fAAI9H8ACPSYAAj0uQAI9LsACPS9AAj0vwAI9MEACPTDAAj0xQAI9McACPTJAAj06gAI9O0ACPTwAAj08wAI9PYACPT5AAj0/AAI9P8ACPUCAAj1BAAI9X8ACPWBAAj1gwAI9YUACPWIAAj1iQAI9YoACPWLAAj1jAAI9Y4ACPWQAAj1kQAI9ZIACPWUAAj1lQAI9hAACPYSAAj2FAAI9hYACPYZAAj2GgAI9hsACPYcAAj2HQAI9h8ACPYhAAj2IgAI9iMACPYlAAj2JgAI9qEACPajAAj2pgAI9qgACParAAj2rAAI9q0ACPauAAj2rwAI9rEACPazAAj2tAAI9rUACPa3AAj2uAAI9tEACPbSAAj20wAI9tUACPdQAAj3UgAI91QACPdWAAj3WQAI91oACPdbAAj3XAAI910ACPdfAAj3YQAI92IACPdjAAj3ZQAI92YACPfhAAj34wAI9+UACPfnAAj36gAI9+sACPfsAAj37QAI9+4ACPfwAAj38gAI9/MACPf0AAj39gAI9/cACPhyAAj4dAAI+HYACPh4AAj4ewAI+HwACPh9AAj4fgAI+H8ACPiBAAj4gwAI+IQACPiFAAj4hwAI+IgACPkDAAj5BQAI+QcACPkJAAj5DAAI+Q0ACPkOAAj5DwAI+RAACPkSAAj5FAAI+RUACPkWAAj5GAAI+RkACPmUAAj5lgAI+ZgACPmaAAj5nQAI+Z4ACPmfAAj5oAAI+aEACPmjAAj5pQAI+aYACPmnAAj5qQAI+aoACPnzAAj6FwAI+j4ACPpiAAj6ZQAI+mgACPpqAAj6bAAI+m4ACPpwAAj6cQAI+nQACPqNAAj6qgAI+q0ACPqwAAj6swAI+rYACPq5AAj6vAAI+r8ACPrcAAj63wAI+uIACPrlAAj66AAI+usACPruAAj68QAI+vMACPtuAAj7cAAI+3MACPt1AAj7eAAI+3kACPt6AAj7ewAI+3wACPt+AAj7gQAI+4IACPuDAAj7hQAI+4YACPwBAAj8AwAI/AYACPwIAAj8CwAI/AwACPwNAAj8DgAI/A8ACPwRAAj8FAAI/BUACPwWAAj8GAAI/BkACPyUAAj8lgAI/JkACPybAAj8ngAI/J8ACPygAAj8oQAI/KIACPykAAj8pwAI/KgACPypAAj8qwAI/KwACP0nAAj9KQAI/SwACP0uAAj9MQAI/TIACP0zAAj9NAAI/TUACP03AAj9OgAI/TsACP08AAj9PgAI/T8ACP3CAAj95gAI/goACP4tAAj+VAAI/nQACP6bAAj+wgAI/uIACP8GAAj/KgAI/ywACP8vAAj/MQAI/zMACP81AAj/OAAI/zsACP89AAj/PwAI/0IACP9EAAj/RgAI/0kACP9MAAj/TQAI/1IACP9rAAj/cAAI/3IACP93AAj/egAI/3wACP/FAAj/6QAJABAACQA0AAkANwAJADkACQA7AAkAPQAJAD8ACQBBAAkAQgAJAEUACQBeAAkAgwAJAIUACQCHAAkAiQAJAIsACQCNAAkAjwAJAJEACQCTAAkAlQAJALoACQC9AAkAwAAJAMMACQDGAAkAyQAJAMwACQDPAAkA0gAJANUACQDXAAkBUgAJAVQACQFXAAkBWQAJAVwACQFdAAkBXgAJAV8ACQFgAAkBYgAJAWQACQFlAAkBZgAJAWgACQFpAAkBegAJAXsACQF9AAkB+AAJAfoACQH8AAkB/gAJAgEACQICAAkCAwAJAgQACQIFAAkCBwAJAgkACQIKAAkCCwAJAg0ACQIOAAkCiQAJAosACQKOAAkCkAAJApMACQKUAAkClQAJApYACQKXAAkCmQAJApsACQKcAAkCnQAJAp8ACQKgAAkCsQAJArYACQK5AAkCuwAJAswACQLVAAkC2AAJAtsACQLdAAkC8AAJAvoACQN1AAkDdwAJA3kACQN7AAkDfgAJA38ACQOAAAkDgQAJA4IACQOEAAkDhgAJA4cACQOIAAkDigAJA4sACQQGAAkECAAJBAsACQQNAAkEEAAJBBEACQQSAAkEEwAJBBQACQQWAAkEGAAJBBkACQQaAAkEHAAJBB0ACQQuAAkELwAJBDEACQSsAAkErgAJBLAACQSyAAkEtQAJBLYACQS3AAkEuAAJBLkACQS7AAkEvQAJBL4ACQS/AAkEwQAJBMIACQU9AAkFPwAJBUIACQVEAAkFRwAJBUgACQVJAAkFSgAJBUsACQVNAAkFTwAJBVAACQVRAAkFUwAJBVQACQVtAAkFbgAJBW8ACQVxAAkF7AAJBe4ACQXwAAkF8gAJBfUACQX2AAkF9wAJBfgACQX5AAkF+wAJBf0ACQX+AAkF/wAJBgEACQYCAAkGfQAJBn8ACQaCAAkGhAAJBocACQaIAAkGiQAJBooACQaLAAkGjQAJBo8ACQaQAAkGkQAJBpMACQaUAAkGowAJBrwACQb1AAkG+AAJBvsACQb+AAkHAQAJBwQACQcHAAkHCgAJBw0ACQcQAAkHEwAJBxYACQcZAAkHHAAJBx8ACQdYAAkHWwAJB14ACQdhAAkHZAAJB2cACQdqAAkHbQAJB3AACQdzAAkHdgAJB3kACQd8AAkHfwAJB4IACQeEAAkHkQAJB7AACQe5AAkH0wAJB+YACQf+AAkIDAAJCBkACQg2AAkISgAJCFIACQhhAAkIeAAJCQsACQkuAAkJTgAJCW4ACQlwAAkJcgAJCXQACQl2AAkJeQAJCXoACQl7AAkJfgAJCX8ACQmBAAkJggAJCYQACQmHAAkJiAAJCYkACQmMAAkJjQAJCZIACQmrAAkJtAAJCbYACQm4AAkJwQAJCcQACQnHAAkJyQAJChIACQo2AAkKXQAJCoEACQqEAAkKhgAJCogACQqKAAkKjAAJCo4ACQqPAAkKkgAJCqsACQrMAAkKzgAJCtAACQrSAAkK1AAJCtYACQrYAAkK2gAJCtwACQr9AAkLAAAJCwMACQsGAAkLCQAJCwwACQsPAAkLEgAJCxUACQsXAAkLkgAJC5QACQuWAAkLmAAJC5sACQucAAkLnQAJC54ACQufAAkLoQAJC6MACQukAAkLpQAJC6cACQuoAAkMIwAJDCUACQwnAAkMKQAJDCwACQwtAAkMLgAJDC8ACQwwAAkMMgAJDDQACQw1AAkMNgAJDDgACQw5AAkMtAAJDLYACQy5AAkMuwAJDL4ACQy/AAkMwAAJDMEACQzCAAkMxAAJDMYACQzHAAkMyAAJDMoACQzLAAkM5AAJDOUACQzmAAkM6AAJDWMACQ1lAAkNZwAJDWkACQ1sAAkNbQAJDW4ACQ1vAAkNcAAJDXIACQ10AAkNdQAJDXYACQ14AAkNeQAJDfQACQ32AAkN+AAJDfoACQ39AAkN/gAJDf8ACQ4AAAkOAQAJDgMACQ4FAAkOBgAJDgcACQ4JAAkOCgAJDoUACQ6HAAkOiQAJDosACQ6OAAkOjwAJDpAACQ6RAAkOkgAJDpQACQ6WAAkOlwAJDpgACQ6aAAkOmwAJDxYACQ8YAAkPGgAJDxwACQ8fAAkPIAAJDyEACQ8iAAkPIwAJDyUACQ8nAAkPKAAJDykACQ8rAAkPLAAJD6cACQ+pAAkPqwAJD60ACQ+wAAkPsQAJD7IACQ+zAAkPtAAJD7YACQ+4AAkPuQAJD7oACQ+8AAkPvQAJEAYACRAqAAkQUQAJEHUACRB4AAkQegAJEHwACRB+AAkQgAAJEIIACRCDAAkQhgAJEJ8ACRC8AAkQvgAJEMAACRDCAAkQxAAJEMYACRDIAAkQygAJEOcACRDqAAkQ7QAJEPAACRDzAAkQ9gAJEPkACRD8AAkQ/gAJEXkACRF7AAkRfQAJEX8ACRGCAAkRgwAJEYQACRGFAAkRhgAJEYgACRGKAAkRiwAJEYwACRGOAAkRjwAJEgoACRIMAAkSDgAJEhAACRITAAkSFAAJEhUACRIWAAkSFwAJEhkACRIbAAkSHAAJEh0ACRIfAAkSIAAJEpsACRKdAAkSnwAJEqEACRKkAAkSpQAJEqYACRKnAAkSqAAJEqoACRKsAAkSrQAJEq4ACRKwAAkSsQAJEywACRMuAAkTMQAJEzMACRM2AAkTNwAJEzgACRM5AAkTOgAJEzwACRM+AAkTPwAJE0AACRNCAAkTQwAJE74ACRPAAAkTwgAJE8QACRPHAAkTyAAJE8kACRPKAAkTywAJE80ACRPPAAkT0AAJE9EACRPTAAkT1AAJFE8ACRRRAAkUUwAJFFUACRRYAAkUWQAJFFoACRRbAAkUXAAJFF4ACRRgAAkUYQAJFGIACRRkAAkUZQAJFOAACRTiAAkU5AAJFOYACRTpAAkU6gAJFOsACRTsAAkU7QAJFO8ACRTxAAkU8gAJFPMACRT1AAkU9gAJFYkACRWsAAkVzAAJFewACRXuAAkV8AAJFfIACRX0AAkV9wAJFfgACRX5AAkV/AAJFf0ACRX/AAkWAAAJFgIACRYFAAkWBgAJFgcACRYKAAkWCwAJFhAACRYpAAkWMgAJFjQACRY2AAkWPwAJFkIACRZFAAkWRwAJFpAACRa0AAkW2wAJFv8ACRcCAAkXBAAJFwYACRcIAAkXCgAJFwwACRcNAAkXEAAJFykACRdKAAkXTAAJF04ACRdQAAkXUgAJF1QACRdWAAkXWAAJF1oACRd7AAkXfgAJF4EACReEAAkXhwAJF4oACReNAAkXkAAJF5MACReVAAkYEAAJGBIACRgUAAkYFgAJGBkACRgaAAkYGwAJGBwACRgdAAkYHwAJGCEACRgiAAkYIwAJGCUACRgmAAkYoQAJGKMACRilAAkYpwAJGKoACRirAAkYrAAJGK0ACRiuAAkYsAAJGLIACRizAAkYtAAJGLYACRi3AAkZMgAJGTQACRk3AAkZOQAJGTwACRk9AAkZPgAJGT8ACRlAAAkZQgAJGUQACRlFAAkZRgAJGUgACRlJAAkZYgAJGWMACRlkAAkZZgAJGeEACRnjAAkZ5QAJGecACRnqAAkZ6wAJGewACRntAAkZ7gAJGfAACRnyAAkZ8wAJGfQACRn2AAkZ9wAJGnIACRp0AAkadgAJGngACRp7AAkafAAJGn0ACRp+AAkafwAJGoEACRqDAAkahAAJGoUACRqHAAkaiAAJGwMACRsFAAkbBwAJGwkACRsMAAkbDQAJGw4ACRsPAAkbEAAJGxIACRsUAAkbFQAJGxYACRsYAAkbGQAJG5QACRuWAAkbmAAJG5oACRudAAkbngAJG58ACRugAAkboQAJG6MACRulAAkbpgAJG6cACRupAAkbqgAJHCUACRwnAAkcKQAJHCsACRwuAAkcLwAJHDAACRwxAAkcMgAJHDQACRw2AAkcNwAJHDgACRw6AAkcOwAJHIQACRyoAAkczwAJHPMACRz2AAkc+AAJHPoACRz8AAkc/gAJHQAACR0BAAkdBAAJHR0ACR06AAkdPAAJHT4ACR1AAAkdQgAJHUQACR1GAAkdSAAJHWUACR1oAAkdawAJHW4ACR1xAAkddAAJHXcACR16AAkdfAAJHfcACR35AAkd+wAJHf0ACR4AAAkeAQAJHgIACR4DAAkeBAAJHgYACR4IAAkeCQAJHgoACR4MAAkeDQAJHogACR6KAAkejAAJHo4ACR6RAAkekgAJHpMACR6UAAkelQAJHpcACR6ZAAkemgAJHpsACR6dAAkengAJHxkACR8bAAkfHQAJHx8ACR8iAAkfIwAJHyQACR8lAAkfJgAJHygACR8qAAkfKwAJHywACR8uAAkfLwAJH6oACR+sAAkfrwAJH7EACR+0AAkftQAJH7YACR+3AAkfuAAJH7oACR+8AAkfvQAJH74ACR/AAAkfwQAJIDwACSA+AAkgQAAJIEIACSBFAAkgRgAJIEcACSBIAAkgSQAJIEsACSBNAAkgTgAJIE8ACSBRAAkgUgAJIM0ACSDPAAkg0QAJINMACSDWAAkg1wAJINgACSDZAAkg2gAJINwACSDeAAkg3wAJIOAACSDiAAkg4wAJIV4ACSFgAAkhYgAJIWQACSFnAAkhaAAJIWkACSFqAAkhawAJIW0ACSFvAAkhcAAJIXEACSFzAAkhdAAJIgcACSIqAAkiSgAJImoACSJsAAkibgAJInAACSJyAAkidQAJInYACSJ3AAkiegAJInsACSJ9AAkifgAJIoAACSKDAAkihAAJIoUACSKIAAkiiQAJIo4ACSKnAAkisAAJIrIACSK0AAkivQAJIsAACSLDAAkixQAJIw4ACSMyAAkjWQAJI30ACSOAAAkjggAJI4QACSOGAAkjiAAJI4oACSOLAAkjjgAJI6cACSPIAAkjygAJI8wACSPOAAkj0AAJI9IACSPUAAkj1gAJI9gACSP5AAkj/AAJI/8ACSQCAAkkBQAJJAgACSQLAAkkDgAJJBEACSQTAAkkjgAJJJAACSSSAAkklAAJJJcACSSYAAkkmQAJJJoACSSbAAkknQAJJJ8ACSSgAAkkoQAJJKMACSSkAAklHwAJJSEACSUjAAklJQAJJSgACSUpAAklKgAJJSsACSUsAAklLgAJJTAACSUxAAklMgAJJTQACSU1AAklsAAJJbIACSW1AAkltwAJJboACSW7AAklvAAJJb0ACSW+AAklwAAJJcIACSXDAAklxAAJJcYACSXHAAkl4AAJJeEACSXiAAkl5AAJJl8ACSZhAAkmYwAJJmUACSZoAAkmaQAJJmoACSZrAAkmbAAJJm4ACSZwAAkmcQAJJnIACSZ0AAkmdQAJJvAACSbyAAkm9AAJJvYACSb5AAkm+gAJJvsACSb8AAkm/QAJJv8ACScBAAknAgAJJwMACScFAAknBgAJJ4EACSeDAAknhQAJJ4cACSeKAAkniwAJJ4wACSeNAAknjgAJJ5AACSeSAAknkwAJJ5QACSeWAAknlwAJKBIACSgUAAkoFgAJKBgACSgbAAkoHAAJKB0ACSgeAAkoHwAJKCEACSgjAAkoJAAJKCUACSgnAAkoKAAJKKMACSilAAkopwAJKKkACSisAAkorQAJKK4ACSivAAkosAAJKLIACSi0AAkotQAJKLYACSi4AAkouQAJKQIACSkmAAkpTQAJKXEACSl0AAkpdgAJKXgACSl6AAkpfAAJKX4ACSl/AAkpggAJKZsACSm4AAkpugAJKbwACSm+AAkpwAAJKcIACSnEAAkpxgAJKeMACSnmAAkp6QAJKewACSnvAAkp8gAJKfUACSn4AAkp+gAJKnUACSp3AAkqeQAJKnsACSp+AAkqfwAJKoAACSqBAAkqggAJKoQACSqGAAkqhwAJKogACSqKAAkqiwAJKwYACSsIAAkrCgAJKwwACSsPAAkrEAAJKxEACSsSAAkrEwAJKxUACSsXAAkrGAAJKxkACSsbAAkrHAAJK5cACSuZAAkrmwAJK50ACSugAAkroQAJK6IACSujAAkrpAAJK6YACSuoAAkrqQAJK6oACSusAAkrrQAJLCgACSwqAAksLQAJLC8ACSwyAAksMwAJLDQACSw1AAksNgAJLDgACSw6AAksOwAJLDwACSw+AAksPwAJLLoACSy8AAksvgAJLMAACSzDAAksxAAJLMUACSzGAAksxwAJLMkACSzLAAkszAAJLM0ACSzPAAks0AAJLUsACS1NAAktTwAJLVEACS1UAAktVQAJLVYACS1XAAktWAAJLVoACS1cAAktXQAJLV4ACS1gAAktYQAJLdwACS3eAAkt4AAJLeIACS3lAAkt5gAJLecACS3oAAkt6QAJLesACS3tAAkt7gAJLe8ACS3xAAkt8gAJLoUACS6oAAkuyAAJLugACS7qAAku7AAJLu4ACS7wAAku8wAJLvQACS71AAku+AAJLvkACS77AAku/AAJLv4ACS8BAAkvAgAJLwMACS8GAAkvBwAJLwwACS8lAAkvLgAJLzAACS8yAAkvOwAJLz4ACS9BAAkvQwAJL4wACS+wAAkv1wAJL/sACS/+AAkwAAAJMAIACTAEAAkwBgAJMAgACTAJAAkwDAAJMCUACTBGAAkwSAAJMEoACTBMAAkwTgAJMFAACTBSAAkwVAAJMFYACTB3AAkwegAJMH0ACTCAAAkwgwAJMIYACTCJAAkwjAAJMI8ACTCRAAkxDAAJMQ4ACTEQAAkxEgAJMRUACTEWAAkxFwAJMRgACTEZAAkxGwAJMR0ACTEeAAkxHwAJMSEACTEiAAkxnQAJMZ8ACTGhAAkxowAJMaYACTGnAAkxqAAJMakACTGqAAkxrAAJMa4ACTGvAAkxsAAJMbIACTGzAAkyLgAJMjAACTIzAAkyNQAJMjgACTI5AAkyOgAJMjsACTI8AAkyPgAJMkAACTJBAAkyQgAJMkQACTJFAAkyXgAJMl8ACTJgAAkyYgAJMt0ACTLfAAky4QAJMuMACTLmAAky5wAJMugACTLpAAky6gAJMuwACTLuAAky7wAJMvAACTLyAAky8wAJM24ACTNwAAkzcgAJM3QACTN3AAkzeAAJM3k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ACUUmAAlFKQAJRSsACUUuAAlFLwAJRTAACUUxAAlFMgAJRTQACUU2AAlFNwAJRTgACUU6AAlFOwAJRbYACUW4AAlFugAJRbwACUW/AAlFwAAJRcEACUXCAAlFwwAJRcUACUXHAAlFyAAJRckACUXLAAlFzAAJRkcACUZJAAlGSwAJRk0ACUZQAAlGUQAJRlIACUZTAAlGVAAJRlYACUZYAAlGWQAJRloACUZcAAlGXQAJRtgACUbaAAlG3AAJRt4ACUbhAAlG4gAJRuMACUbkAAlG5QAJRucACUbpAAlG6gAJRusACUbtAAlG7gAJR4EACUekAAlHxAAJR+QACUfmAAlH6AAJR+oACUfsAAlH7wAJR/AACUfxAAlH9AAJR/UACUf3AAlH+AAJR/oACUf9AAlH/gAJR/8ACUgCAAlIAwAJSAgACUghAAlIKgAJSCwACUguAAlINwAJSDoACUg9AAlIPwAJSIgACUisAAlI0wAJSPcACUj6AAlI/AAJSP4ACUkAAAlJAgAJSQQACUkFAAlJCAAJSSEACUlCAAlJRAAJSUYACUlIAAlJSgAJSUwACUlOAAlJUAAJSVIACUlzAAlJdgAJSXkACUl8AAlJfwAJSYIACUmFAAlJiAAJSYsACUmNAAlKCAAJSgoACUoMAAlKDgAJShEACUoSAAlKEwAJShQACUoVAAlKFwAJShkACUoaAAlKGwAJSh0ACUoeAAlKmQAJSpsACUqdAAlKnwAJSqIACUqjAAlKpAAJSqUACUqmAAlKqAAJSqoACUqrAAlKrAAJSq4ACUqvAAlLKgAJSywACUsvAAlLMQAJSzQACUs1AAlLNgAJSzcACUs4AAlLOgAJSzwACUs9AAlLPgAJS0AACUtBAAlLWgAJS1sACUtcAAlLXgAJS9kACUvbAAlL3QAJS98ACUviAAlL4wAJS+QACUvlAAlL5gAJS+gACUvqAAlL6wAJS+wACUvuAAlL7wAJTGoACUxsAAlMbgAJTHAACUxzAAlMdAAJTHUACUx2AAlMdwAJTHkACUx7AAlMfAAJTH0ACUx/AAlMgAAJTPsACUz9AAlM/wAJTQEACU0EAAlNBQAJTQYACU0HAAlNCAAJTQoACU0MAAlNDQAJTQ4ACU0QAAlNEQAJTYwACU2OAAlNkAAJTZIACU2VAAlNlgAJTZcACU2YAAlNmQAJTZsACU2dAAlNngAJTZ8ACU2hAAlNogAJTh0ACU4fAAlOIQAJTiMACU4mAAlOJwAJTigACU4pAAlOKgAJTiwACU4uAAlOLwAJTjAACU4yAAlOMwAJTnwACU6gAAlOxwAJTusACU7uAAlO8AAJTvIACU70AAlO9gAJTvgACU75AAlO/AAJTxUACU8yAAlPNAAJTzYACU84AAlPOgAJTzwACU8+AAlPQAAJT10ACU9gAAlPYwAJT2YACU9pAAlPbAAJT28ACU9yAAlPdAAJT+8ACU/xAAlP8wAJT/UACU/4AAlP+QAJT/oACU/7AAlP/AAJT/4ACVAAAAlQAQAJUAIACVAEAAlQBQAJUIAACVCCAAlQhAAJUIYACVCJAAlQigAJUIsACVCMAAlQjQAJUI8ACVCRAAlQkgAJUJMACVCVAAlQlgAJUREACVETAAlRFQAJURcACVEaAAlRGwAJURwACVEdAAlRHgAJUSAACVEiAAlRIwAJUSQACVEmAAlRJwAJUaIACVGkAAlRpwAJUakACVGsAAlRrQAJUa4ACVGvAAlRsAAJUbIACVG0AAlRtQAJUbYACVG4AAlRuQAJUjQACVI2AAlSOAAJUjoACVI9AAlSPgAJUj8ACVJAAAlSQQAJUkMACVJFAAlSRgAJUkcACVJJAAlSSgAJUsUACVLHAAlSyQAJUssACVLOAAlSzwAJUtAACVLRAAlS0gAJUtQACVLWAAlS1wAJUtgACVLaAAlS2wAJU1YACVNYAAlTWgAJU1wACVNfAAlTYAAJU2EACVNiAAlTYwAJU2UACVNnAAlTaAAJU2kACVNrAAlTbAAJU/8ACVQiAAlUQgAJVGIACVRkAAlUZgAJVGgACVRqAAlUbQAJVG4ACVRvAAlUcgAJVHMACVR1AAlUdgAJVHgACVR7AAlUfAAJVH0ACVSAAAlUgQAJVIYACVSfAAlUqAAJVKoACVSsAAlUtQAJVLgACVS7AAlUvQAJVQYACVUqAAlVUQAJVXUACVV4AAlVegAJVXwACVV+AAlVgAAJVYIACVWDAAlVhgAJVZ8ACVXAAAlVwgAJVcQACVXGAAlVyAAJVcoACVXMAAlVzgAJVdAACVXxAAlV9AAJVfcACVX6AAlV/QAJVgAACVYDAAlWBgAJVgkACVYLAAlWhgAJVogACVaKAAlWjAAJVo8ACVaQAAlWkQAJVpIACVaTAAlWlQAJVpcACVaYAAlWmQAJVpsACVacAAlXFwAJVxkACVcbAAlXHQAJVyAACVchAAlXIgAJVyMACVckAAlXJgAJVygACVcpAAlXKgAJVywACVctAAlXqAAJV6oACVetAAlXrwAJV7IACVezAAlXtAAJV7UACVe2AAlXuAAJV7oACVe7AAlXvAAJV74ACVe/AAlX2AAJV9kACVfaAAlX3AAJWFcACVhZAAlYWwAJWF0ACVhgAAlYYQAJWGIACVhjAAlYZAAJWGYACVhoAAlYaQAJWGoACVhsAAlYbQAJWOgACVjqAAlY7AAJWO4ACVjxAAlY8gAJWPMACVj0AAlY9QAJWPcACVj5AAlY+gAJWPsACVj9AAlY/gAJWXkACVl7AAlZfQAJWX8ACVmCAAlZgwAJWYQACVmFAAlZhgAJWYgACVmKAAlZiwAJWYwACVmOAAlZjwAJWgoACVoMAAlaDgAJWhAACVoTAAlaFAAJWhUACVoWAAlaFwAJWhkACVobAAlaHAAJWh0ACVofAAlaIAAJWpsACVqdAAlanwAJWqEACVqkAAlapQAJWqYACVqnAAlaqAAJWqoACVqsAAlarQAJWq4ACVqwAAlasQAJWvoACVseAAlbRQAJW2kACVtsAAlbbgAJW3AACVtyAAlbdAAJW3YACVt3AAlbegAJW5MACVuwAAlbsgAJW7QACVu2AAlbuAAJW7oACVu8AAlbvgAJW9sACVveAAlb4QAJW+QACVvnAAlb6gAJW+0ACVvwAAlb8gAJXG0ACVxvAAlccQAJXHMACVx2AAlcdwAJXHgACVx5AAlcegAJXHwACVx+AAlcfwAJXIAACVyCAAlcgwAJXP4ACV0AAAldAgAJXQQACV0HAAldCAAJXQkACV0KAAldCwAJXQ0ACV0PAAldEAAJXREACV0TAAldFAAJXY8ACV2RAAldkwAJXZUACV2YAAldmQAJXZoACV2bAAldnAAJXZ4ACV2gAAldoQAJXaIACV2kAAldpQAJXiAACV4iAAleJQAJXicACV4qAAleKwAJXiwACV4tAAleLgAJXjAACV4yAAleMwAJXjQACV42AAleNwAJXrIACV60AAletgAJXrgACV67AAlevAAJXr0ACV6+AAlevwAJXsEACV7DAAlexAAJXsUACV7HAAleyAAJX0MACV9FAAlfRwAJX0kACV9MAAlfTQAJX04ACV9PAAlfUAAJX1IACV9UAAlfVQAJX1YACV9YAAlfWQAJX9QACV/WAAlf2AAJX9oACV/dAAlf3gAJX98ACV/gAAlf4QAJX+MACV/lAAlf5gAJX+cACV/pAAlf6gAJYH0ACWCgAAlgwAAJYOAACWDiAAlg5AAJYOYACWDoAAlg6wAJYOwACWDtAAlg8AAJYPEACWDzAAlg9AAJYPYACWD5AAlg+gAJYPsACWD+AAlg/wAJYQQACWEdAAlhJgAJYSgACWEqAAlhMwAJYTYACWE5AAlhOwAJYYQACWGoAAlhzwAJYfMACWH2AAlh+AAJYfoACWH8AAlh/gAJYgAACWIBAAliBAAJYh0ACWI+AAliQAAJYkIACWJEAAliRgAJYkgACWJKAAliTAAJYk4ACWJvAAlicgAJYnUACWJ4AAliewAJYn4ACWKBAAlihAAJYocACWKJAAljBAAJYwYACWMIAAljCgAJYw0ACWMOAAljDwAJYxAACWMRAAljEwAJYxUACWMWAAljFwAJYxkACWMaAAljlQAJY5cACWOZAAljmwAJY54ACWOfAAljoAAJY6EACWOiAAljpAAJY6YACWOnAAljqAAJY6oACWOrAAlkJgAJZCgACWQrAAlkLQAJZDAACWQxAAlkMgAJZDMACWQ0AAlkNgAJZDgACWQ5AAlkOgAJZDwACWQ9AAlkVgAJZFcACWRYAAlkWgAJZNUACWTXAAlk2QAJZNsACWTeAAlk3wAJZOAACWThAAlk4gAJZOQACWTmAAlk5wAJZOgACWTqAAlk6wAJZWYACWVoAAllagAJZWwACWVvAAllcAAJZXEACWVyAAllcwAJZXUACWV3AAlleAAJZXkACWV7AAllfAAJZfcACWX5AAll+wAJZf0ACWYAAAlmAQAJZgIACWYDAAlmBAAJZgYACWYIAAlmCQAJZgoACWYMAAlmDQAJZogACWaKAAlmjAAJZo4ACWaRAAlmkgAJZpMACWaUAAlmlQAJZpcACWaZAAlmmgAJZpsACWadAAlmngAJZxkACWcbAAlnHQAJZx8ACWciAAlnIwAJZyQACWclAAlnJgAJZygACWcqAAlnKwAJZywACWcuAAlnLwAJZ3gACWecAAlnwwAJZ+cACWfqAAln7AAJZ+4ACWfwAAln8gAJZ/QACWf1AAln+AAJaBEACWguAAloMAAJaDIACWg0AAloNgAJaDgACWg6AAloPAAJaFkACWhcAAloXwAJaGIACWhlAAloaAAJaGsACWhuAAlocAAJaOsACWjtAAlo7wAJaPEACWj0AAlo9QAJaPYACWj3AAlo+AAJaPoACWj8AAlo/QAJaP4ACWkAAAlpAQAJaXwACWl+AAlpgAAJaYIACWmFAAlphgAJaYcACWmIAAlpiQAJaYsACWmNAAlpjgAJaY8ACWmRAAlpkgAJag0ACWoPAAlqEQAJahMACWoWAAlqFwAJahgACWoZAAlqGgAJahwACWoeAAlqHwAJaiAACWoiAAlqIwAJap4ACWqgAAlqowAJaqUACWqoAAlqqQAJaqoACWqrAAlqrAAJaq4ACWqwAAlqsQAJarIACWq0AAlqtQAJazAACWsyAAlrNAAJazYACWs5AAlrOgAJazsACWs8AAlrPQAJaz8ACWtBAAlrQgAJa0MACWtFAAlrRgAJa8EACWvDAAlrxQAJa8cACWvKAAlrywAJa8wACWvNAAlrzgAJa9AACWvSAAlr0wAJa9QACWvWAAlr1wAJbFIACWxUAAlsVgAJbFgACWxbAAlsXAAJbF0ACWxeAAlsXwAJbGEACWxjAAlsZAAJbGUACWxnAAlsaAAJbPsACW0eAAltPgAJbV4ACW1gAAltYgAJbWQACW1mAAltaQAJbWoACW1rAAltbgAJbW8ACW1xAAltcgAJbXQACW13AAlteAAJbXkACW18AAltfQAJbYIACW2bAAltpAAJbaYACW2oAAltsQAJbbQACW23AAltuQAJbgIACW4mAAluTQAJbnEACW50AAludgAJbngACW56AAlufAAJbn4ACW5/AAluggAJbpsACW68AAluvgAJbsAACW7CAAluxAAJbsYACW7IAAluygAJbswACW7tAAlu8AAJbvMACW72AAlu+QAJbvwACW7/AAlvAgAJbwUACW8HAAlvggAJb4QACW+GAAlviAAJb4sACW+MAAlvjQAJb44ACW+PAAlvkQAJb5MACW+UAAlvlQAJb5cACW+YAAlwEwAJcBUACXAXAAlwGQAJcBwACXAdAAlwHgAJcB8ACXAgAAlwIgAJcCQACXAlAAlwJgAJcCgACXApAAlwpAAJcKYACXCpAAlwqwAJcK4ACXCvAAlwsAAJcLEACXCyAAlwtAAJcLYACXC3AAlwuAAJcLoACXC7AAlw1AAJcNUACXDWAAlw2AAJcVMACXFVAAlxVwAJcVkACXFcAAlxXQAJcV4ACXFfAAlxYAAJcWIACXFkAAlxZQAJcWYACXFoAAlxaQAJceQACXHmAAlx6AAJceoACXHtAAlx7gAJce8ACXHwAAlx8QAJcfMACXH1AAlx9gAJcfcACXH5AAlx+gAJcnUACXJ3AAlyeQAJcnsACXJ+AAlyfwAJcoAACXKBAAlyggAJcoQACXKGAAlyhwAJcogACXKKAAlyiwAJcwYACXMIAAlzCgAJcwwACXMPAAlzEAAJcxEACXMSAAlzEwAJcxUACXMXAAlzGAAJcxkACXMbAAlzHAAJc5cACXOZAAlzmwAJc50ACXOgAAlzoQAJc6IACXOjAAlzpAAJc6YACXOoAAlzqQAJc6oACXOsAAlzrQAJc/YACXQaAAl0QQAJdGUACXRoAAl0agAJdGwACXRuAAl0cAAJdHIACXRzAAl0dgAJdI8ACXSsAAl0rgAJdLAACXSyAAl0tAAJdLYACXS4AAl0ugAJdNcACXTaAAl03QAJdOAACXTjAAl05gAJdOkACXTsAAl07gAJdWkACXVrAAl1bQAJdW8ACXVyAAl1cwAJdXQACXV1AAl1dgAJdXgACXV6AAl1ewAJdXwACXV+AAl1fwAJdfoACXX8AAl1/gAJdgAACXYDAAl2BAAJdgUACXYGAAl2BwAJdgkACXYLAAl2DAAJdg0ACXYPAAl2EAAJdosACXaNAAl2jwAJdpEACXaUAAl2lQAJdpYACXaXAAl2mAAJdpoACXacAAl2nQAJdp4ACXagAAl2oQAJdxwACXceAAl3IQAJdyMACXcmAAl3JwAJdygACXcpAAl3KgAJdywACXcuAAl3LwAJdzAACXcyAAl3MwAJd64ACXewAAl3sgAJd7QACXe3AAl3uAAJd7kACXe6AAl3uwAJd70ACXe/AAl3wAAJd8EACXfDAAl3xAAJeD8ACXhBAAl4QwAJeEUACXhIAAl4SQAJeEoACXhLAAl4TAAJeE4ACXhQAAl4UQAJeFIACXhUAAl4VQAJeNAACXjSAAl41AAJeNYACXjZAAl42gAJeNsACXjcAAl43QAJeN8ACXjhAAl44gAJeOMACXjlAAl45gAJeXkACXmcAAl5vAAJedwACXneAAl54AAJeeIACXnkAAl55wAJeegACXnpAAl57AAJee0ACXnvAAl58AAJefIACXn1AAl59gAJefcACXn6AAl5+wAJegAACXoZAAl6IgAJeiQACXomAAl6LwAJejIACXo1AAl6NwAJeoAACXqkAAl6ywAJeu8ACXryAAl69AAJevYACXr4AAl6+gAJevwACXr9AAl7AAAJexkACXs6AAl7PAAJez4ACXtAAAl7QgAJe0QACXtGAAl7SAAJe0oACXtrAAl7bgAJe3EACXt0AAl7dwAJe3oACXt9AAl7gAAJe4MACXuFAAl8AAAJfAIACXwEAAl8BgAJfAkACXwKAAl8CwAJfAwACXwNAAl8DwAJfBEACXwSAAl8EwAJfBUACXwWAAl8kQAJfJMACXyVAAl8lwAJfJoACXybAAl8nAAJfJ0ACXyeAAl8oAAJfKIACXyjAAl8pAAJfKYACXynAAl9IgAJfSQACX0nAAl9KQAJfSwACX0tAAl9LgAJfS8ACX0wAAl9MgAJfTQACX01AAl9NgAJfTgACX05AAl9UgAJfVMACX1UAAl9VgAJfdEACX3TAAl91QAJfdcACX3aAAl92wAJfdwACX3dAAl93gAJfeAACX3iAAl94wAJfeQACX3mAAl95wAJfmIACX5kAAl+ZgAJfmgACX5rAAl+bAAJfm0ACX5uAAl+bwAJfnEACX5zAAl+dAAJfnUACX53AAl+eAAJfvMACX71AAl+9wAJfvkACX78AAl+/QAJfv4ACX7/AAl/AAAJfwIACX8EAAl/BQAJfwYACX8IAAl/CQAJf4QACX+GAAl/iAAJf4oACX+NAAl/jgAJf48ACX+QAAl/kQAJf5MACX+VAAl/lgAJf5cACX+ZAAl/mgAJgBUACYAXAAmAGQAJgBsACYAeAAmAHwAJgCAACYAhAAmAIgAJgCQACYAmAAmAJwAJgCgACYAqAAmAKwAJgHQACYCYAAmAvwAJgOMACYDmAAmA6AAJgOoACYDsAAmA7gAJgPAACYDxAAmA9AAJgQ0ACYEqAAmBLAAJgS4ACYEwAAmBMgAJgTQACYE2AAmBOAAJgVUACYFYAAmBWwAJgV4ACYFhAAmBZAAJgWcACYFqAAmBbAAJgecACYHpAAmB6wAJge0ACYHwAAmB8QAJgfIACYHzAAmB9AAJgfYACYH4AAmB+QAJgfoACYH8AAmB/QAJgngACYJ6AAmCfAAJgn4ACYKBAAmCggAJgoMACYKEAAmChQAJgocACYKJAAmCigAJgosACYKNAAmCjgAJgwkACYMLAAmDDQAJgw8ACYMSAAmDEwAJgxQACYMVAAmDFgAJgxgACYMaAAmDGwAJgxwACYMeAAmDHwAJg5oACYOcAAmDnwAJg6EACYOkAAmDpQAJg6YACYOnAAmDqAAJg6oACYOsAAmDrQAJg64ACYOwAAmDsQAJhCwACYQuAAmEMAAJhDIACYQ1AAmENgAJhDcACYQ4AAmEOQAJhDsACYQ9AAmEPgAJhD8ACYRBAAmEQgAJhL0ACYS/AAmEwQAJhMMACYTGAAmExwAJhMgACYTJAAmEygAJhMwACYTOAAmEzwAJhNAACYTSAAmE0wAJhU4ACYVQAAmFUgAJhVQACYVXAAmFWAAJhVkACYVaAAmFWwAJhV0ACYVfAAmFYAAJhWEACYVjAAmFZAAJhfcACYYaAAmGOgAJhloACYZcAAmGXgAJhmAACYZiAAmGZQAJhmYACYZnAAmGagAJhmsACYZtAAmGbgAJhnEACYZ0AAmGdQAJhnYACYZ5AAmGegAJhn8ACYaYAAmGoQAJhqMACYamAAmGrwAJhrIACYa1AAmGtwAJhwAACYckAAmHSwAJh28ACYdyAAmHdAAJh3YACYd4AAmHegAJh3wACYd9AAmHgAAJh5kACYe6AAmHvAAJh74ACYfAAAmHwgAJh8QACYfGAAmHyAAJh8oACYfrAAmH7gAJh/EACYf0AAmH9wAJh/oACYf9AAmIAAAJiAMACYgFAAmIgAAJiIIACYiEAAmIhgAJiIkACYiKAAmIiwAJiIwACYiNAAmIjwAJiJEACYiSAAmIkwAJiJUACYiWAAmJEQAJiRMACYkVAAmJFwAJiRoACYkbAAmJHAAJiR0ACYkeAAmJIAAJiSIACYkjAAmJJAAJiSYACYknAAmJogAJiaQACYmnAAmJqQAJiawACYmtAAmJrgAJia8ACYmwAAmJsgAJibQACYm1AAmJtgAJibgACYm5AAmJ0gAJidMACYnUAAmJ1gAJilEACYpTAAmKVQAJilcACYpaAAmKWwAJilwACYpdAAmKXgAJimAACYpiAAmKYwAJimQACYpmAAmKZwAJiuIACYrkAAmK5gAJiugACYrrAAmK7AAJiu0ACYruAAmK7wAJivEACYrzAAmK9AAJivUACYr3AAmK+AAJi3MACYt1AAmLdwAJi3kACYt8AAmLfQAJi34ACYt/AAmLgAAJi4IACYuEAAmLhQAJi4YACYuIAAmLiQAJjAQACYwGAAmMCAAJjAoACYwNAAmMDgAJjA8ACYwQAAmMEQAJjBMACYwVAAmMFgAJjBcACYwZAAmMGgAJjJUACYyXAAmMmQAJjJsACYyeAAmMnwAJjKAACYyhAAmMogAJjKQACYymAAmMpwAJjKgACYyqAAmMqwAJjPQACY0YAAmNPwAJjWMACY1mAAmNaQAJjWsACY1tAAmNbwAJjXEACY1yAAmNdQAJjY4ACY2rAAmNrgAJjbEACY20AAmNtwAJjboACY29AAmNwAAJjd0ACY3gAAmN4wAJjeYACY3pAAmN7AAJje8ACY3yAAmN9AAJjm8ACY5xAAmOdAAJjnYACY55AAmOegAJjnsACY58AAmOfQAJjn8ACY6CAAmOgwAJjoQACY6GAAmOhwAJjwIACY8EAAmPBwAJjwkACY8MAAmPDQAJjw4ACY8PAAmPEAAJjxIACY8VAAmPFgAJjxcACY8ZAAmPGgAJj5UACY+XAAmPmgAJj5wACY+fAAmPoAAJj6EACY+iAAmPowAJj6UACY+oAAmPqQAJj6oACY+sAAmPrQAJkCgACZAqAAmQLQAJkC8ACZAyAAmQMwAJkDQACZA1AAmQNgAJkDgACZA7AAmQPAAJkD0ACZA/AAmQQAAJkMMACZDnAAmRCwAJkS4ACZFVAAmRdQAJkZwACZHDAAmR4wAJkgcACZIrAAmSLQAJkjAACZIyAAmSNAAJkjYACZI5AAmSPAAJkj4ACZJAAAmSQwAJkkUACZJHAAmSSgAJkk0ACZJOAAmSUwAJkmwACZJxAAmScwAJkngACZJ7AAmSfQAJksYACZLqAAmTEQAJkzUACZM4AAmTOgAJkzwACZM+AAmTQAAJk0IACZNDAAmTRgAJk18ACZOEAAmThgAJk4gACZOKAAmTjAAJk44ACZOQAAmTkgAJk5QACZOWAAmTuwAJk74ACZPBAAmTxAAJk8cACZPKAAmTzQAJk9AACZPTAAmT1gAJk9gACZRTAAmUVQAJlFgACZRaAAmUXQAJlF4ACZRfAAmUYAAJlGEACZRjAAmUZQAJlGYACZRnAAmUaQAJlGoACZR7AAmUfAAJlH4ACZT5AAmU+wAJlP0ACZT/AAmVAgAJlQMACZUEAAmVBQAJlQYACZUIAAmVCgAJlQsACZUMAAmVDgAJlQ8ACZWKAAmVjAAJlY8ACZWRAAmVlAAJlZUACZWWAAmVlwAJlZgACZWaAAmVnAAJlZ0ACZWeAAmVoAAJlaEACZWyAAmVswAJlbUACZYwAAmWMgAJljQACZY2AAmWOQAJljoACZY7AAmWPAAJlj0ACZY/AAmWQQAJlkIACZZDAAmWRQAJlkYACZbBAAmWwwAJlsYACZbIAAmWywAJlswACZbNAAmWzgAJls8ACZbRAAmW0wAJltQACZbVAAmW1wAJltgACZbpAAmW6gAJluwACZdnAAmXaQAJl2sACZdtAAmXcAAJl3EACZdyAAmXcwAJl3QACZd2AAmXeAAJl3kACZd6AAmXfAAJl30ACZf4AAmX+gAJl/0ACZf/AAmYAgAJmAMACZgEAAmYBQAJmAYACZgIAAmYCgAJmAsACZgMAAmYDgAJmA8ACZgoAAmYKQAJmCoACZgsAAmYpwAJmKkACZirAAmYrQAJmLAACZixAAmYsgAJmLMACZi0AAmYtgAJmLgACZi5AAmYugAJmLwACZi9AAmZOAAJmToACZk9AAmZPwAJmUIACZlDAAmZRAAJmUUACZlGAAmZSAAJmUoACZlLAAmZTAAJmU4ACZlPAAmZaQAJmYIACZmTAAmZlgAJmZkACZmcAAmZnwAJmbAACZmzAAmZtgAJmbkACZm8AAmZvgAJmc0ACZnhAAmZ7QAJmgMACZqWAAmauQAJmtkACZr5AAma+wAJmv0ACZr/AAmbAQAJmwQACZsFAAmbBgAJmwkACZsKAAmbDAAJmw0ACZsQAAmbEwAJmxQACZsVAAmbGAAJmxkACZseAAmbNwAJm0AACZtCAAmbRQAJm04ACZtRAAmbVAAJm1YACZufAAmbwwAJm+oACZwOAAmcEQAJnBMACZwVAAmcFwAJnBkACZwbAAmcHAAJnB8ACZw4AAmcWQAJnFsACZxdAAmcXwAJnGEACZxjAAmcZQAJnGcACZxpAAmcigAJnI0ACZyQAAmckwAJnJYACZyZAAmcnAAJnJ8ACZyiAAmcpAAJnR8ACZ0hAAmdIwAJnSUACZ0oAAmdKQAJnSoACZ0rAAmdLAAJnS4ACZ0wAAmdMQAJnTIACZ00AAmdNQAJnbAACZ2yAAmdtAAJnbYACZ25AAmdugAJnbsACZ28AAmdvQAJnb8ACZ3BAAmdwgAJncMACZ3FAAmdxgAJnkEACZ5DAAmeRgAJnkgACZ5LAAmeTAAJnk0ACZ5OAAmeTwAJnlEACZ5TAAmeVAAJnlUACZ5XAAmeWAAJnnEACZ5yAAmecwAJnnUACZ7wAAme8gAJnvQACZ72AAme+QAJnvoACZ77AAme/AAJnv0ACZ7/AAmfAQAJnwIACZ8DAAmfBQAJnwYACZ+BAAmfgwAJn4UACZ+HAAmfigAJn4sACZ+MAAmfjQAJn44ACZ+QAAmfkgAJn5MACZ+UAAmflgAJn5cACaASAAmgFAAJoBYACaAYAAmgGwAJoBwACaAdAAmgHgAJoB8ACaAhAAmgIwAJoCQACaAlAAmgJwAJoCgACaCjAAmgpQAJoKcACaCpAAmgrAAJoK0ACaCuAAmgrwAJoLAACaCyAAmgtAAJoLUACaC2AAmguAAJoLkACaE0AAmhNgAJoTgACaE6AAmhPQAJoT4ACaE/AAmhQAAJoUEACaFDAAmhRQAJoUYACaFHAAmhSQAJoUoACaGTAAmhtwAJod4ACaICAAmiBQAJoggACaIKAAmiDAAJog4ACaIQAAmiEQAJohQACaItAAmiSgAJok0ACaJQAAmiUwAJolYACaJZAAmiXAAJol8ACaJ8AAmifwAJooIACaKFAAmiiAAJoosACaKOAAmikQAJopMACaMOAAmjEAAJoxMACaMVAAmjGAAJoxkACaMaAAmjGwAJoxwACaMeAAmjIQAJoyIACaMjAAmjJQAJoyYACaOhAAmjowAJo6YACaOoAAmjqwAJo6wACaOtAAmjrgAJo68ACaOxAAmjtAAJo7UACaO2AAmjuAAJo7kACaQ0AAmkNgAJpDkACaQ7AAmkPgAJpD8ACaRAAAmkQQAJpEIACaREAAmkRwAJpEgACaRJAAmkSwAJpEwACaTHAAmkyQAJpMwACaTOAAmk0QAJpNIACaTTAAmk1AAJpNUACaTXAAmk2gAJpNsACaTcAAmk3gAJpN8ACaVaAAmlXAAJpV4ACaVgAAmlYwAJpWQACaVlAAmlZgAJpWcACaVpAAmlbAAJpW0ACaVuAAmlcAAJpXEACaXsAAml7gAJpfAACaXyAAml9QAJpfYACaX3AAml+AAJpfkACaX7AAml/gAJpf8ACaYAAAmmAgAJpgMACaZ+AAmmgAAJpoMACaaFAAmmiAAJpokACaaKAAmmiwAJpowACaaOAAmmkQAJppIACaaTAAmmlQAJppYACacpAAmnTAAJp2wACaeMAAmnjgAJp5AACaeSAAmnlAAJp5cACaeYAAmnmQAJp5wACaedAAmnnwAJp6AACaeiAAmnpQAJp6YACaenAAmnqgAJp6sACae0AAmnzQAJp9YACafYAAmn2gAJp+MACafmAAmn6QAJp+sACag0AAmoWAAJqH8ACaijAAmopgAJqKgACaiqAAmorAAJqK4ACaiwAAmosQAJqLQACajNAAmo7gAJqPAACajyAAmo9AAJqPYACaj4AAmo+gAJqPwACaj+AAmpHwAJqSIACaklAAmpKAAJqSsACakuAAmpMQAJqTQACak3AAmpOQAJqbQACam2AAmpuAAJqboACam9AAmpvgAJqb8ACanAAAmpwQAJqcMACanFAAmpxgAJqccACanJAAmpygAJqkUACapHAAmqSQAJqksACapOAAmqTwAJqlAACapRAAmqUgAJqlQACapWAAmqVwAJqlgACapaAAmqWwAJqtYACarYAAmq2wAJqt0ACargAAmq4QAJquIACarjAAmq5AAJquYACaroAAmq6QAJquoACarsAAmq7QAJqwYACasHAAmrCAAJqwoACauFAAmrhwAJq4kACauLAAmrjgAJq48ACauQAAmrkQAJq5IACauUAAmrlgAJq5cACauYAAmrmgAJq5sACawWAAmsGAAJrBoACawcAAmsHwAJrCAACawhAAmsIgAJrCMACawlAAmsJwAJrCgACawpAAmsKwAJrCwACaynAAmsqQAJrKsACaytAAmssAAJrLEACayyAAmsswAJrLQACay2AAmsuAAJrLkACay6AAmsvAAJrL0ACa04AAmtOgAJrTwACa0+AAmtQQAJrUIACa1DAAmtRAAJrUUACa1HAAmtSQAJrUoACa1LAAmtTQAJrU4ACa3JAAmtywAJrc0ACa3PAAmt0gAJrdMACa3UAAmt1QAJrdYACa3YAAmt2gAJrdsACa3cAAmt3gAJrd8ACa4oAAmuTAAJrnMACa6XAAmumgAJrpwACa6eAAmuoAAJrqIACa6kAAmupQAJrqgACa7BAAmu3gAJruAACa7iAAmu5AAJruYACa7oAAmu6gAJruwACa8JAAmvDAAJrw8ACa8SAAmvFQAJrxgACa8bAAmvHgAJryAACa+bAAmvnQAJr58ACa+hAAmvpAAJr6UACa+mAAmvpwAJr6gACa+qAAmvrAAJr60ACa+uAAmvsAAJr7EACbAsAAmwLgAJsDAACbAyAAmwNQAJsDYACbA3AAmwOAAJsDkACbA7AAmwPQAJsD4ACbA/AAmwQQAJsEIACbC9AAmwvwAJsMEACbDDAAmwxgAJsMcACbDIAAmwyQAJsMoACbDMAAmwzgAJsM8ACbDQAAmw0gAJsNMACbFOAAmxUAAJsVIACbFUAAmxVwAJsVgACbFZAAmxWgAJsVsACbFdAAmxXwAJsWAACbFhAAmxYwAJsWQACbHfAAmx4QAJseMACbHlAAmx6AAJsekACbHqAAmx6wAJsewACbHuAAmx8AAJsfEACbHyAAmx9AAJsfUACbJwAAmycgAJsnQACbJ2AAmyeQAJsnoACbJ7AAmyfAAJsn0ACbJ/AAmygQAJsoIACbKDAAmyhQAJsoYACbMBAAmzAwAJswUACbMHAAmzCgAJswsACbMMAAmzDQAJsw4ACbMQAAmzEgAJsxMACbMUAAmzFgAJsxcACbOqAAmzzQAJs+0ACbQNAAm0DwAJtBEACbQTAAm0FQAJtBgACbQZAAm0GgAJtB0ACbQeAAm0IAAJtCEACbQjAAm0JgAJtCcACbQoAAm0KwAJtCwACbQxAAm0SgAJtFMACbRVAAm0VwAJtGAACbRjAAm0ZgAJtGgACbSxAAm01QAJtPwACbUgAAm1IwAJtSUACbUnAAm1KQAJtSsACbUtAAm1LgAJtTEACbVKAAm1awAJtW0ACbVvAAm1cQAJtXMACbV1AAm1dwAJtXkACbV7AAm1nAAJtZ8ACbWiAAm1pQAJtagACbWrAAm1rgAJtbEACbW0AAm1tgAJtjEACbYzAAm2NQAJtjcACbY6AAm2OwAJtjwACbY9AAm2PgAJtkAACbZCAAm2QwAJtkQACbZGAAm2RwAJtsIACbbEAAm2xgAJtsgACbbLAAm2zAAJts0ACbbOAAm2zwAJttEACbbTAAm21AAJttUACbbXAAm22AAJt1MACbdVAAm3WAAJt1oACbddAAm3XgAJt18ACbdgAAm3YQAJt2MACbdlAAm3ZgAJt2cACbdpAAm3agAJt4MACbeEAAm3hQAJt4cACbgCAAm4BAAJuAYACbgIAAm4CwAJuAwACbgNAAm4DgAJuA8ACbgRAAm4EwAJuBQACbgVAAm4FwAJuBgACbiTAAm4lQAJuJcACbiZAAm4nAAJuJ0ACbieAAm4nwAJuKAACbiiAAm4pAAJuKUACbimAAm4qAAJuKkACbkkAAm5JgAJuSgACbkqAAm5LQAJuS4ACbkvAAm5MAAJuTEACbkzAAm5NQAJuTYACbk3AAm5OQAJuToACbm1AAm5twAJubkACbm7AAm5vgAJub8ACbnAAAm5wQAJucIACbnEAAm5xgAJuccACbnIAAm5ygAJucsACbpGAAm6SAAJukoACbpMAAm6TwAJulAACbpRAAm6UgAJulMACbpVAAm6VwAJulgACbpZAAm6WwAJulwACbqlAAm6yQAJuvAACbsUAAm7FwAJuxkACbsbAAm7HQAJux8ACbshAAm7IgAJuyUACbs+AAm7WwAJu10ACbtfAAm7YQAJu2MACbtlAAm7ZwAJu2kACbuGAAm7iQAJu4wACbuPAAm7kgAJu5UACbuYAAm7mwAJu50ACbwYAAm8GgAJvBwACbweAAm8IQAJvCIACbwjAAm8JAAJvCUACbwnAAm8KQAJvCoACbwrAAm8LQAJvC4ACbypAAm8qwAJvK0ACbyvAAm8sgAJvLMACby0AAm8tQAJvLYACby4AAm8ugAJvLsACby8AAm8vgAJvL8ACb06AAm9PAAJvT4ACb1AAAm9QwAJvUQACb1FAAm9RgAJvUcACb1JAAm9SwAJvUwACb1NAAm9TwAJvVAACb3LAAm9zQAJvdAACb3SAAm91QAJvdYACb3XAAm92AAJvdkACb3bAAm93QAJvd4ACb3fAAm94QAJveIACb5dAAm+XwAJvmEACb5jAAm+ZgAJvmcACb5oAAm+aQAJvmoACb5sAAm+bgAJvm8ACb5wAAm+cgAJvnMACb7uAAm+8AAJvvIACb70AAm+9wAJvvgACb75AAm++gAJvvsACb79AAm+/wAJvwAACb8BAAm/AwAJvwQACb9/AAm/gQAJv4MACb+FAAm/iAAJv4kACb+KAAm/iwAJv4wACb+OAAm/kAAJv5EACb+SAAm/lAAJv5UACcAoAAnASwAJwGsACcCLAAnAjQAJwI8ACcCRAAnAkwAJwJYACcCXAAnAmAAJwJsACcCcAAnAngAJwJ8ACcChAAnApAAJwKUACcCmAAnAqQAJwKoACcCvAAnAyAAJwNEACcDTAAnA1QAJwN4ACcDhAAnA5AAJwOYACcEvAAnBUwAJwXoACcGeAAnBoQAJwaMACcGlAAnBpwAJwakACcGrAAnBrAAJwa8ACcHIAAnB6QAJwesACcHtAAnB7wAJwfEACcHzAAnB9QAJwfcACcH5AAnCGgAJwh0ACcIgAAnCIwAJwiYACcIpAAnCLAAJwi8ACcIyAAnCNAAJwq8ACcKxAAnCswAJwrUACcK4AAnCuQAJwroACcK7AAnCvAAJwr4ACcLAAAnCwQAJwsIACcLEAAnCxQAJw0AACcNCAAnDRAAJw0YACcNJAAnDSgAJw0sACcNMAAnDTQAJw08ACcNRAAnDUgAJw1MACcNVAAnDVgAJw9EACcPTAAnD1gAJw9gACcPbAAnD3AAJw90ACcPeAAnD3wAJw+EACcPjAAnD5AAJw+UACcPnAAnD6AAJxAEACcQCAAnEAwAJxAUACcSAAAnEggAJxIQACcSGAAnEiQAJxIoACcSLAAnEjAAJxI0ACcSPAAnEkQAJxJIACcSTAAnElQAJxJYACcURAAnFEwAJxRUACcUXAAnFGgAJxRsACcUcAAnFHQAJxR4ACcUgAAnFIgAJxSMACcUkAAnFJgAJxScACcWiAAnFpAAJxaYACcWoAAnFqwAJxawACcWtAAnFrgAJxa8ACcWxAAnFswAJxbQACcW1AAnFtwAJxbgACcYzAAnGNQAJxjcACcY5AAnGPAAJxj0ACcY+AAnGPwAJxkAACcZCAAnGRAAJxkUACcZGAAnGSAAJxkkACcbEAAnGxgAJxsgACcbKAAnGzQAJxs4ACcbPAAnG0AAJxtEACcbTAAnG1QAJxtYACcbXAAnG2QAJxtoACccjAAnHRwAJx24ACceSAAnHlQAJx5cACceZAAnHmwAJx50ACcefAAnHoAAJx6MACce8AAnH2QAJx9sACcfdAAnH3wAJx+EACcfjAAnH5QAJx+cACcgEAAnIBwAJyAoACcgNAAnIEAAJyBMACcgWAAnIGQAJyBsACciWAAnImAAJyJoACcicAAnInwAJyKAACcihAAnIogAJyKMACcilAAnIpwAJyKgACcipAAnIqwAJyKwACcknAAnJKQAJySsACcktAAnJMAAJyTEACckyAAnJMwAJyTQACck2AAnJOAAJyTkACck6AAnJPAAJyT0ACcm4AAnJugAJybwACcm+AAnJwQAJycIACcnDAAnJxAAJycUACcnHAAnJyQAJycoACcnLAAnJzQAJyc4ACcpJAAnKSwAJyk4ACcpQAAnKUwAJylQACcpVAAnKVgAJylcACcpZAAnKWwAJylwACcpdAAnKXwAJymAACcrbAAnK3QAJyt8ACcrhAAnK5AAJyuUACcrmAAnK5wAJyugACcrqAAnK7AAJyu0ACcruAAnK8AAJyvEACctsAAnLbgAJy3AACctyAAnLdQAJy3YACct3AAnLeAAJy3kACct7AAnLfQAJy34ACct/AAnLgQAJy4IACcv9AAnL/wAJzAEACcwDAAnMBgAJzAcACcwIAAnMCQAJzAoACcwMAAnMDgAJzA8ACcwQAAnMEgAJzBMACcwkAAnMJQAJzCcACcyiAAnMpAAJzKYACcyoAAnMqwAJzKwACcytAAnMrgAJzK8ACcyxAAnMtAAJzLUACcy2AAnMuAAJzLkACc00AAnNNgAJzTgACc06AAnNPQAJzT4ACc0/AAnNQAAJzUEACc1DAAnNRgAJzUcACc1IAAnNSgAJzUsACc3GAAnNyAAJzcsACc3NAAnN0AAJzdEACc3SAAnN0wAJzdQACc3WAAnN2QAJzdoACc3bAAnN3QAJzd4ACc5xAAnOlAAJzrQACc7UAAnO1gAJztgACc7aAAnO3AAJzt8ACc7gAAnO4QAJzuQACc7lAAnO5wAJzugACc7qAAnO7QAJzu4ACc7vAAnO8gAJzvMACc78AAnPFQAJzx4ACc8gAAnPIgAJzysACc8uAAnPMQAJzzMACc98AAnPoAAJz8cACc/rAAnP7gAJz/AACc/yAAnP9AAJz/YACc/4AAnP+QAJz/wACdAVAAnQNgAJ0DgACdA6AAnQPAAJ0D4ACdBAAAnQQgAJ0EQACdBGAAnQZwAJ0GoACdBtAAnQcAAJ0HMACdB2AAnQeQAJ0HwACdB/AAnQgQAJ0PwACdD+AAnRAAAJ0QIACdEFAAnRBgAJ0QcACdEIAAnRCQAJ0QsACdENAAnRDgAJ0Q8ACdERAAnREgAJ0Y0ACdGPAAnRkQAJ0ZMACdGWAAnRlwAJ0ZgACdGZAAnRmgAJ0ZwACdGeAAnRnwAJ0aAACdGiAAnRowAJ0h4ACdIgAAnSIwAJ0iUACdIoAAnSKQAJ0ioACdIrAAnSLAAJ0i4ACdIwAAnSMQAJ0jIACdI0AAnSNQAJ0k4ACdJPAAnSUAAJ0lIACdLNAAnSzwAJ0tEACdLTAAnS1gAJ0tcACdLYAAnS2QAJ0toACdLcAAnS3gAJ0t8ACdLgAAnS4gAJ0uMACdNeAAnTYAAJ02IACdNkAAnTZwAJ02gACdNpAAnTagAJ02sACdNtAAnTbwAJ03AACdNxAAnTcwAJ03QACdPvAAnT8QAJ0/MACdP1AAnT+AAJ0/kACdP6AAnT+wAJ0/wACdP+AAnUAAAJ1AEACdQCAAnUBAAJ1AUACdSAAAnUggAJ1IQACdSGAAnUiQAJ1IoACdSLAAnUjAAJ1I0ACdSPAAnUkQAJ1JIACdSTAAnUlQAJ1JYACdURAAnVEwAJ1RUACdUXAAnVGgAJ1RsACdUcAAnVHQAJ1R4ACdUgAAnVIgAJ1SMACdUkAAnVJgAJ1ScACdVwAAnVlAAJ1bsACdXfAAnV4gAJ1eQACdXmAAnV6AAJ1eoACdXsAAnV7QAJ1fAACdYJAAnWJgAJ1igACdYqAAnWLAAJ1i4ACdYwAAnWMgAJ1jQACdZRAAnWVAAJ1lcACdZaAAnWXQAJ1mAACdZjAAnWZgAJ1mgACdbjAAnW5QAJ1ucACdbpAAnW7AAJ1u0ACdbuAAnW7wAJ1vAACdbyAAnW9AAJ1vUACdb2AAnW+AAJ1vkACdd0AAnXdgAJ13gACdd6AAnXfQAJ134ACdd/AAnXgAAJ14EACdeDAAnXhQAJ14YACdeHAAnXiQAJ14oACdgFAAnYBwAJ2AkACdgLAAnYDgAJ2A8ACdgQAAnYEQAJ2BIACdgUAAnYFgAJ2BcACdgYAAnYGgAJ2BsACdiWAAnYmAAJ2JsACdidAAnYoAAJ2KEACdiiAAnYowAJ2KQACdimAAnYqAAJ2KkACdiqAAnYrAAJ2K0ACdkoAAnZKgAJ2SwACdkuAAnZMQAJ2TIACdkzAAnZNAAJ2TUACdk3AAnZOQAJ2ToACdk7AAnZPQAJ2T4ACdm5AAnZuwAJ2b0ACdm/AAnZwgAJ2cMACdnEAAnZxQAJ2cYACdnIAAnZygAJ2csACdnMAAnZzgAJ2c8ACdpKAAnaTAAJ2k4ACdpQAAnaUwAJ2lQACdpVAAnaVgAJ2lcACdpZAAnaWwAJ2lwACdpdAAnaXwAJ2mAACdrzAAnbFgAJ2zYACdtWAAnbWAAJ21oACdtcAAnbXgAJ22EACdtiAAnbYwAJ22YACdtnAAnbaQAJ22oACdtsAAnbbwAJ23AACdtxAAnbdAAJ23UACdt6AAnbkwAJ25wACdueAAnboAAJ26kACdusAAnbrwAJ27EACdv6AAncHgAJ3EUACdxpAAncbAAJ3G4ACdxwAAnccgAJ3HQACdx2AAncdwAJ3HoACdyTAAnctAAJ3LYACdy4AAncugAJ3LwACdy+AAncwAAJ3MIACdzEAAnc5QAJ3OgACdzrAAnc7gAJ3PEACdz0AAnc9wAJ3PoACdz9AAnc/wAJ3XoACd18AAndfgAJ3YAACd2DAAndhAAJ3YUACd2GAAndhwAJ3YkACd2LAAndjAAJ3Y0ACd2PAAndkAAJ3gsACd4NAAneDwAJ3hEACd4UAAneFQAJ3hYACd4XAAneGAAJ3hoACd4cAAneHQAJ3h4ACd4gAAneIQAJ3pwACd6eAAneoQAJ3qMACd6mAAnepwAJ3qgACd6pAAneqgAJ3qwACd6uAAnerwAJ3rAACd6yAAneswAJ3swACd7NAAnezgAJ3tAACd9LAAnfTQAJ308ACd9RAAnfVAAJ31UACd9WAAnfVwAJ31gACd9aAAnfXAAJ310ACd9eAAnfYAAJ32EACd/cAAnf3gAJ3+AACd/iAAnf5QAJ3+YACd/nAAnf6AAJ3+kACd/rAAnf7QAJ3+4ACd/vAAnf8QAJ3/IACeBtAAngbwAJ4HEACeBzAAngdgAJ4HcACeB4AAngeQAJ4HoACeB8AAngfgAJ4H8ACeCAAAngggAJ4IMACeD+AAnhAAAJ4QIACeEEAAnhBwAJ4QgACeEJAAnhCgAJ4QsACeENAAnhDwAJ4RAACeERAAnhEwAJ4RQACeGPAAnhkQAJ4ZMACeGVAAnhmAAJ4ZkACeGaAAnhmwAJ4ZwACeGeAAnhoAAJ4aEACeGiAAnhpAAJ4aUACeHuAAniEgAJ4jkACeJdAAniYAAJ4mIACeJkAAniZgAJ4mgACeJqAAniawAJ4m4ACeKHAAnipAAJ4qYACeKoAAniqgAJ4qwACeKuAAnisAAJ4rIACeLPAAni0gAJ4tUACeLYAAni2wAJ4t4ACeLhAAni5AAJ4uYACeNhAAnjYwAJ42UACeNnAAnjagAJ42sACeNsAAnjbQAJ424ACeNwAAnjcgAJ43MACeN0AAnjdgAJ43cACePyAAnj9AAJ4/YACeP4AAnj+wAJ4/wACeP9AAnj/gAJ4/8ACeQBAAnkAwAJ5AQACeQFAAnkBwAJ5AgACeSDAAnkhQAJ5IcACeSJAAnkjAAJ5I0ACeSOAAnkjwAJ5JAACeSSAAnklAAJ5JUACeSWAAnkmAAJ5JkACeUUAAnlFgAJ5RkACeUbAAnlHgAJ5R8ACeUgAAnlIQAJ5SIACeUkAAnlJgAJ5ScACeUoAAnlKgAJ5SsACeWmAAnlqAAJ5aoACeWsAAnlrwAJ5bAACeWxAAnlsgAJ5bMACeW1AAnltwAJ5bgACeW5AAnluwAJ5bwACeY3AAnmOQAJ5jsACeY9AAnmQAAJ5kEACeZCAAnmQwAJ5kQACeZGAAnmSAAJ5kkACeZKAAnmTAAJ5k0ACebIAAnmygAJ5swACebOAAnm0QAJ5tIACebTAAnm1AAJ5tUACebXAAnm2QAJ5toACebbAAnm3QAJ5t4ACedxAAnnlAAJ57QACefUAAnn1gAJ59gACefaAAnn3AAJ598ACefgAAnn4QAJ5+QACeflAAnn5wAJ5+gACefrAAnn7gAJ5+8ACefwAAnn8wAJ5/QACef5AAnoEgAJ6BsACegdAAnoIAAJ6CkACegsAAnoLwAJ6DEACeh6AAnongAJ6MUACejpAAno7AAJ6O4ACejwAAno8gAJ6PQACej2AAno9wAJ6PoACekTAAnpNAAJ6TYACek4AAnpOgAJ6TwACek+AAnpQAAJ6UIACelEAAnpZQAJ6WgACelrAAnpbgAJ6XEACel0AAnpdwAJ6XoACel9AAnpfwAJ6foACen8AAnp/gAJ6gAACeoDAAnqBAAJ6gUACeoGAAnqBwAJ6gkACeoLAAnqDAAJ6g0ACeoPAAnqEAAJ6osACeqNAAnqjwAJ6pEACeqUAAnqlQAJ6pYACeqXAAnqmAAJ6poACeqcAAnqnQAJ6p4ACeqgAAnqoQAJ6xwACeseAAnrIQAJ6yMACesmAAnrJwAJ6ygACespAAnrKgAJ6ywACesuAAnrLwAJ6zAACesyAAnrMwAJ60wACetNAAnrTgAJ61AACevLAAnrzQAJ688ACevRAAnr1AAJ69UACevWAAnr1wAJ69gACevaAAnr3AAJ690ACeveAAnr4AAJ6+EACexcAAnsXgAJ7GAACexiAAnsZQAJ7GYACexnAAnsaAAJ7GkACexrAAnsbQAJ7G4ACexvAAnscQAJ7HIACeztAAns7wAJ7PEACezzAAns9gAJ7PcACez4AAns+QAJ7PoACez8AAns/gAJ7P8ACe0AAAntAgAJ7QMACe1+AAntgAAJ7YIACe2EAAnthwAJ7YgACe2JAAntigAJ7YsACe2NAAntjwAJ7ZAACe2RAAntkwAJ7ZQACe4PAAnuEQAJ7hMACe4VAAnuGAAJ7hkACe4aAAnuGwAJ7hwACe4eAAnuIAAJ7iEACe4iAAnuJAAJ7iUACe5uAAnukgAJ7rkACe7dAAnu4AAJ7uMACe7lAAnu5wAJ7ukACe7rAAnu7AAJ7u8ACe8IAAnvJQAJ7ygACe8rAAnvLgAJ7zEACe80AAnvNwAJ7zoACe9XAAnvWgAJ710ACe9gAAnvYwAJ72YACe9pAAnvbAAJ724ACe/pAAnv6wAJ7+4ACe/wAAnv8wAJ7/QACe/1AAnv9gAJ7/cACe/5AAnv/AAJ7/0ACe/+AAnwAAAJ8AEACfB8AAnwfgAJ8IEACfCDAAnwhgAJ8IcACfCIAAnwiQAJ8IoACfCMAAnwjwAJ8JAACfCRAAnwkwAJ8JQACfEPAAnxEQAJ8RQACfEWAAnxGQAJ8RoACfEbAAnxHAAJ8R0ACfEfAAnxIgAJ8SMACfEkAAnxJgAJ8ScACfGiAAnxpAAJ8acACfGpAAnxrAAJ8a0ACfGuAAnxrwAJ8bAACfGyAAnxtQAJ8bYACfG3AAnxuQAJ8boACfI1AAnyNwAJ8jkACfI7AAnyPgAJ8j8ACfJAAAnyQQAJ8kIACfJEAAnyRwAJ8kgACfJJAAnySwAJ8kwACfLHAAnyyQAJ8ssACfLNAAny0AAJ8tEACfLSAAny0wAJ8tQACfLWAAny2QAJ8toACfLbAAny3QAJ8t4ACfNZAAnzWwAJ814ACfNgAAnzYwAJ82QACfNlAAnzZgAJ82cACfNpAAnzbAAJ820ACfNuAAnzcAAJ83EACfOCAAnzgwAJ84UACfQAAAn0AgAJ9AQACfQGAAn0CQAJ9AoACfQLAAn0DAAJ9A0ACfQPAAn0EgAJ9BMACfQUAAn0FgAJ9BcACfSSAAn0lAAJ9JYACfSYAAn0mwAJ9JwACfSdAAn0ngAJ9J8ACfShAAn0pAAJ9KUACfSmAAn0qAAJ9KkACfUkAAn1JgAJ9SkACfUrAAn1LgAJ9S8ACfUwAAn1MQAJ9TIACfU0AAn1NwAJ9TgACfU5AAn1OwAJ9TwACfXPAAn18gAJ9hIACfYyAAn2NAAJ9jYACfY4AAn2OgAJ9j0ACfY+AAn2PwAJ9kIACfZDAAn2RQAJ9kYACfZIAAn2SwAJ9kwACfZNAAn2UAAJ9lEACfZWAAn2bwAJ9ngACfZ6AAn2fAAJ9oUACfaIAAn2iwAJ9o0ACfbWAAn2+gAJ9yEACfdFAAn3SAAJ90oACfdMAAn3TgAJ91AACfdSAAn3UwAJ91YACfdvAAn3kAAJ95IACfeUAAn3lgAJ95gACfeaAAn3nAAJ954ACfegAAn3wQAJ98QACffHAAn3ygAJ980ACffQAAn30wAJ99YACffZAAn32wAJ+FYACfhYAAn4WgAJ+FwACfhfAAn4YAAJ+GEACfhiAAn4YwAJ+GUACfhnAAn4aAAJ+GkACfhrAAn4bAAJ+OcACfjpAAn46wAJ+O0ACfjwAAn48QAJ+PIACfjzAAn49AAJ+PYACfj4AAn4+QAJ+PoACfj8AAn4/QAJ+XgACfl6AAn5fQAJ+X8ACfmCAAn5gwAJ+YQACfmFAAn5hgAJ+YgACfmKAAn5iwAJ+YwACfmOAAn5jwAJ+agACfmpAAn5qgAJ+awACfonAAn6KQAJ+isACfotAAn6MAAJ+jEACfoyAAn6MwAJ+jQACfo2AAn6OAAJ+jkACfo6AAn6PAAJ+j0ACfq4AAn6ugAJ+rwACfq+AAn6wQAJ+sIACfrDAAn6xAAJ+sUACfrHAAn6yQAJ+soACfrLAAn6zQAJ+s4ACftJAAn7SwAJ+00ACftPAAn7UgAJ+1MACftUAAn7VQAJ+1YACftYAAn7WgAJ+1sACftcAAn7XgAJ+18ACfvaAAn73AAJ+94ACfvgAAn74wAJ++QACfvlAAn75gAJ++cACfvpAAn76wAJ++wACfvtAAn77wAJ+/AACfxrAAn8bQAJ/G8ACfxxAAn8dAAJ/HUACfx2AAn8dwAJ/HgACfx6AAn8fAAJ/H0ACfx+AAn8gAAJ/IEACfzKAAn87gAJ/RUACf05AAn9PAAJ/T4ACf1AAAn9QgAJ/UQACf1GAAn9RwAJ/UoACf1jAAn9gAAJ/YIACf2EAAn9hgAJ/YgACf2KAAn9jAAJ/Y4ACf2rAAn9rgAJ/bEACf20AAn9twAJ/boACf29AAn9wAAJ/cIACf49AAn+PwAJ/kIACf5EAAn+RwAJ/kgACf5JAAn+SgAJ/ksACf5NAAn+TwAJ/lAACf5RAAn+UwAJ/lQACf7PAAn+0QAJ/tMACf7VAAn+2AAJ/tkACf7aAAn+2wAJ/twACf7eAAn+4AAJ/uEACf7iAAn+5AAJ/uUACf9gAAn/YgAJ/2QACf9mAAn/aQAJ/2oACf9rAAn/bAAJ/20ACf9vAAn/cQAJ/3IACf9zAAn/dQAJ/3YACf/xAAn/8wAJ//YACf/4AAn/+wAJ//wACf/9AAn//gAJ//8ACgABAAoAAwAKAAQACgAFAAoABwAKAAgACgCDAAoAhQAKAIcACgCJAAoAjAAKAI0ACgCOAAoAjwAKAJAACgCSAAoAlAAKAJUACgCWAAoAmAAKAJkACgEUAAoBFgAKARgACgEaAAoBHQAKAR4ACgEfAAoBIAAKASEACgEjAAoBJQAKASYACgEnAAoBKQAKASoACgGlAAoBpwAKAakACgGrAAoBrgAKAa8ACgGwAAoBsQAKAbIACgG0AAoBtgAKAbcACgG4AAoBugAKAbsACgHMAAoBzQAKAc8ACgJKAAoCTAAKAk4ACgJQAAoCUwAKAlQACgJVAAoCVgAKAlcACgJZAAoCXAAKAl0ACgJeAAoCYAAKAmEACgLcAAoC3gAKAuAACgLiAAoC5QAKAuYACgLnAAoC6AAKAukACgLrAAoC7gAKAu8ACgLwAAoC8gAKAvMACgNuAAoDcAAKA3MACgN1AAoDeAAKA3kACgN6AAoDewAKA3wACgN+AAoDgQAKA4IACgODAAoDhQAKA4YACgQZAAoEPAAKBFwACgR8AAoEfgAKBIAACgSCAAoEhAAKBIcACgSIAAoEiQAKBIwACgSNAAoEjwAKBJAACgSSAAoElQAKBJYACgSXAAoEmgAKBJsACgSgAAoEuQAKBMIACgTEAAoExgAKBM8ACgTSAAoE1QAKBNcACgUgAAoFRAAKBWsACgWPAAoFkgAKBZQACgWWAAoFmAAKBZoACgWcAAoFnQAKBaAACgW5AAoF2gAKBdwACgXeAAoF4AAKBeIACgXkAAoF5gAKBegACgXqAAoGCwAKBg4ACgYRAAoGFAAKBhcACgYaAAoGHQAKBiAACgYjAAoGJQAKBqAACgaiAAoGpAAKBqYACgapAAoGqgAKBqsACgasAAoGrQAKBq8ACgaxAAoGsgAKBrMACga1AAoGtgAKBzEACgczAAoHNQAKBzcACgc6AAoHOwAKBzwACgc9AAoHPgAKB0AACgdCAAoHQwAKB0QACgdGAAoHRwAKB8IACgfEAAoHxwAKB8kACgfMAAoHzQAKB84ACgfPAAoH0AAKB9IACgfUAAoH1QAKB9YACgfYAAoH2QAKB/IACgfzAAoH9AAKB/YACghxAAoIcwAKCHUACgh3AAoIegAKCHsACgh8AAoIfQAKCH4ACgiAAAoIggAKCIMACgiEAAoIhgAKCIcACgkCAAoJBAAKCQYACgkIAAoJCwAKCQwACgkNAAoJDgAKCQ8ACgkRAAoJEwAKCRQACgkVAAoJFwAKCRgACgmTAAoJlQAKCZcACgmZAAoJnAAKCZ0ACgmeAAoJnwAKCaAACgmiAAoJpAAKCaUACgmmAAoJqAAKCakACgokAAoKJgAKCigACgoqAAoKLQAKCi4ACgovAAoKMAAKCjEACgozAAoKNQAKCjYACgo3AAoKOQAKCjoACgq1AAoKtwAKCrkACgq7AAoKvgAKCr8ACgrAAAoKwQAKCsIACgrEAAoKxgAKCscACgrIAAoKygAKCssACgsUAAoLOAAKC18ACguDAAoLhgAKC4gACguKAAoLjAAKC44ACguQAAoLkQAKC5QACgutAAoLygAKC8wACgvOAAoL0AAKC9IACgvUAAoL1gAKC9gACgv1AAoL+AAKC/sACgv+AAoMAQAKDAQACgwHAAoMCgAKDAwACgyHAAoMiQAKDIsACgyNAAoMkAAKDJEACgySAAoMkwAKDJQACgyWAAoMmAAKDJkACgyaAAoMnAAKDJ0ACg0YAAoNGgAKDRwACg0eAAoNIQAKDSIACg0jAAoNJAAKDSUACg0nAAoNKQAKDSoACg0rAAoNLQAKDS4ACg2pAAoNqwAKDa0ACg2vAAoNsgAKDbMACg20AAoNtQAKDbYACg24AAoNugAKDbsACg28AAoNvgAKDb8ACg46AAoOPAAKDj4ACg5AAAoOQwAKDkQACg5FAAoORgAKDkcACg5JAAoOSwAKDkwACg5NAAoOTwAKDlAACg7LAAoOzQAKDs8ACg7RAAoO1AAKDtUACg7WAAoO1wAKDtgACg7aAAoO3AAKDt0ACg7eAAoO4AAKDuEACg9cAAoPXgAKD2AACg9iAAoPZQAKD2YACg9nAAoPaAAKD2kACg9rAAoPbQAKD24ACg9vAAoPcQAKD3IACg/tAAoP7wAKD/EACg/zAAoP9gAKD/cACg/4AAoP+QAKD/oACg/8AAoP/gAKD/8AChAAAAoQAgAKEAMAChCWAAoQuQAKENkAChD5AAoQ+wAKEP0AChD/AAoRAQAKEQQAChEFAAoRBgAKEQkAChEKAAoRDAAKEQ0AChEPAAoREgAKERMAChEUAAoRFwAKERgAChEdAAoRNgAKET8AChFBAAoRQwAKEUwAChFPAAoRUgAKEVQAChGdAAoRwQAKEegAChIMAAoSDwAKEhEAChITAAoSFQAKEhcAChIZAAoSGgAKEh0AChI2AAoSVwAKElkAChJbAAoSXQAKEl8AChJhAAoSYwAKEmUAChJnAAoSiAAKEosAChKOAAoSkQAKEpQAChKXAAoSmgAKEp0AChKgAAoSogAKEx0AChMfAAoTIQAKEyMAChMmAAoTJwAKEygAChMpAAoTKgAKEywAChMuAAoTLwAKEzAAChMyAAoTMwAKE64AChOwAAoTsgAKE7QAChO3AAoTuAAKE7kAChO6AAoTuwAKE70AChO/AAoTwAAKE8EAChPDAAoTxAAKFD8AChRBAAoURAAKFEYAChRJAAoUSgAKFEsAChRMAAoUTQAKFE8AChRRAAoUUgAKFFMAChRVAAoUVgAKFG8AChRwAAoUcQAKFHMAChTuAAoU8AAKFPIAChT0AAoU9wAKFPgAChT5AAoU+gAKFPsAChT9AAoU/wAKFQAAChUBAAoVAwAKFQQAChV/AAoVgQAKFYMAChWFAAoViAAKFYkAChWKAAoViwAKFYwAChWOAAoVkAAKFZEAChWSAAoVlAAKFZUAChYQAAoWEgAKFhQAChYWAAoWGQAKFhoAChYbAAoWHAAKFh0AChYfAAoWIQAKFiIAChYjAAoWJQAKFiYAChahAAoWowAKFqUAChanAAoWqgAKFqsAChasAAoWrQAKFq4AChawAAoWsgAKFrMACha0AAoWtgAKFrcAChcyAAoXNAAKFzYAChc4AAoXOwAKFzwAChc9AAoXPgAKFz8AChdBAAoXQwAKF0QAChdFAAoXRwAKF0gACheRAAoXtQAKF9wAChgAAAoYAwAKGAUAChgHAAoYCQAKGAsAChgNAAoYDgAKGBEAChgqAAoYRwAKGEkAChhLAAoYTQAKGE8AChhRAAoYUwAKGFUAChhyAAoYdQAKGHgAChh7AAoYfgAKGIEAChiEAAoYhwAKGIkAChkEAAoZBgAKGQgAChkKAAoZDQAKGQ4AChkPAAoZEAAKGREAChkTAAoZFQAKGRYAChkXAAoZGQAKGRoAChmVAAoZlwAKGZkAChmbAAoZngAKGZ8AChmgAAoZoQAKGaIAChmkAAoZpgAKGacAChmoAAoZqgAKGasAChomAAoaKAAKGioAChosAAoaLwAKGjAAChoxAAoaMgAKGjMACho1AAoaNwAKGjgACho5AAoaOwAKGjwAChq3AAoauQAKGrwAChq+AAoawQAKGsIAChrDAAoaxAAKGsUAChrHAAoayQAKGsoAChrLAAoazQAKGs4AChtJAAobSwAKG00AChtPAAobUgAKG1MAChtUAAobVQAKG1YAChtYAAobWgAKG1sAChtcAAobXgAKG18AChvaAAob3AAKG94AChvgAAob4wAKG+QAChvlAAob5gAKG+cAChvpAAob6wAKG+wAChvtAAob7wAKG/AAChxrAAocbQAKHG8AChxxAAocdAAKHHUAChx2AAocdwAKHHgAChx6AAocfAAKHH0AChx+AAocgAAKHIEAChySAAockwAKHJUACh0QAAodEgAKHRQACh0WAAodGQAKHRoACh0bAAodHAAKHR0ACh0fAAodIgAKHSMACh0kAAodJgAKHScACh2iAAodpAAKHaYACh2oAAodqwAKHawACh2tAAodrgAKHa8ACh2xAAodtAAKHbUACh22AAoduAAKHbkACh40AAoeNgAKHjkACh47AAoePgAKHj8ACh5AAAoeQQAKHkIACh5EAAoeRwAKHkgACh5JAAoeSwAKHkwACh7fAAofAgAKHyIACh9CAAofRAAKH0YACh9IAAofSgAKH00ACh9OAAofTwAKH1IACh9TAAofVQAKH1YACh9YAAofWwAKH1wACh9dAAofYAAKH2EACh9qAAofgwAKH4wACh+OAAofkAAKH5kACh+cAAofnwAKH6EACh/qAAogDgAKIDUACiBZAAogXAAKIF4ACiBgAAogYgAKIGQACiBmAAogZwAKIGoACiCDAAogpAAKIKYACiCoAAogqgAKIKwACiCuAAogsAAKILIACiC0AAog1QAKINgACiDbAAog3gAKIOEACiDkAAog5wAKIOoACiDtAAog7wAKIWoACiFsAAohbgAKIXAACiFzAAohdAAKIXUACiF2AAohdwAKIXkACiF7AAohfAAKIX0ACiF/AAohgAAKIfsACiH9AAoh/wAKIgEACiIEAAoiBQAKIgYACiIHAAoiCAAKIgoACiIMAAoiDQAKIg4ACiIQAAoiEQAKIowACiKOAAoikQAKIpMACiKWAAoilwAKIpgACiKZAAoimgAKIpwACiKeAAoinwAKIqAACiKiAAoiowAKIrwACiK9AAoivgAKIsAACiM7AAojPQAKIz8ACiNBAAojRAAKI0UACiNGAAojRwAKI0gACiNKAAojTAAKI00ACiNOAAojUAAKI1EACiPMAAojzgAKI9AACiPSAAoj1QAKI9YACiPXAAoj2AAKI9kACiPbAAoj3QAKI94ACiPfAAoj4QAKI+IACiRdAAokXwAKJGEACiRjAAokZgAKJGcACiRoAAokaQAKJGoACiRsAAokbgAKJG8ACiRwAAokcgAKJHMACiTuAAok8AAKJPIACiT0AAok9wAKJPgACiT5AAok+gAKJPsACiT9AAok/wAKJQAACiUBAAolAwAKJQQACiV/AAolgQAKJYMACiWFAAoliAAKJYkACiWKAAoliwAKJYwACiWOAAolkAAKJZEACiWSAAollAAKJZUACiXeAAomAgAKJikACiZNAAomUAAKJlIACiZUAAomVgAKJlgACiZaAAomWwAKJl4ACiZ3AAomlAAKJpYACiaYAAommgAKJpwACiaeAAomoAAKJqIACia/AAomwgAKJsUACibIAAomywAKJs4ACibRAAom1AAKJtYACidRAAonUwAKJ1UACidXAAonWgAKJ1sACidcAAonXQAKJ14ACidgAAonYgAKJ2MACidkAAonZgAKJ2cACifiAAon5AAKJ+YACifoAAon6wAKJ+wACiftAAon7gAKJ+8ACifxAAon8wAKJ/QACif1AAon9wAKJ/gACihzAAoodQAKKHcACih5AAoofAAKKH0ACih+AAoofwAKKIAACiiCAAoohAAKKIUACiiGAAooiAAKKIkACikEAAopBgAKKQkACikLAAopDgAKKQ8ACikQAAopEQAKKRIACikUAAopFgAKKRcACikYAAopGgAKKRsACimWAAopmAAKKZoACimcAAopnwAKKaAACimhAAopogAKKaMACimlAAoppwAKKagACimpAAopqwAKKawACionAAoqKQAKKisACiotAAoqMAAKKjEACioyAAoqMwAKKjQACio2AAoqOAAKKjkACio6AAoqPAAKKj0ACiq4AAoqugAKKrwACiq+AAoqwQAKKsIACirDAAoqxAAKKsUACirHAAoqyQAKKsoACirLAAoqzQAKKs4ACithAAorhAAKK6QACivEAAorxgAKK8gACivKAAorzAAKK88ACivQAAor0QAKK9QACivVAAor1wAKK9gACivbAAor3gAKK98ACivgAAor4wAKK+QACivpAAosAgAKLAsACiwNAAosEAAKLBkACiwcAAosHwAKLCEACixqAAosjgAKLLUACizZAAos3AAKLN4ACizgAAos4gAKLOQACizmAAos5wAKLOoACi0DAAotJAAKLSYACi0oAAotKgAKLSwACi0uAAotMAAKLTIACi00AAotVQAKLVgACi1bAAotXgAKLWEACi1kAAotZwAKLWoACi1tAAotbwAKLeoACi3sAAot7gAKLfAACi3zAAot9AAKLfUACi32AAot9wAKLfkACi37AAot/AAKLf0ACi3/AAouAAAKLnsACi59AAoufwAKLoEACi6EAAouhQAKLoYACi6HAAouiAAKLooACi6MAAoujQAKLo4ACi6QAAoukQAKLwwACi8OAAovEQAKLxMACi8WAAovFwAKLxgACi8ZAAovGgAKLxwACi8eAAovHwAKLyAACi8iAAovIwAKLzwACi89AAovPgAKL0AACi+7AAovvQAKL78ACi/BAAovxAAKL8UACi/GAAovxwAKL8gACi/KAAovzAAKL80ACi/OAAov0AAKL9EACjBMAAowTgAKMFAACjBSAAowVQAKMFYACjBXAAowWAAKMFkACjBbAAowXQAKMF4ACjBfAAowYQAKMGIACjDdAAow3wAKMOEACjDjAAow5gAKMOcACjDoAAow6QAKMOoACjDsAAow7gAKMO8ACjDwAAow8gAKMPMACjFuAAoxcAAKMXIACjF0AAoxdwAKMXgACjF5AAoxegAKMXsACjF9AAoxfwAKMYAACjGBAAoxgwAKMYQACjH/AAoyAQAKMgMACjIFAAoyCAAKMgkACjIKAAoyCwAKMgw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ACkPTAApD1gAKQ9cACkPYAApD2QAKQ9oACkPcAApD3gAKQ98ACkPgAApD4gAKQ+MACkP0AApD9QAKQ/cACkRyAApEdAAKRHYACkR4AApEewAKRHwACkR9AApEfgAKRH8ACkSBAApEhAAKRIUACkSGAApEiAAKRIkACkUEAApFBgAKRQgACkUKAApFDQAKRQ4ACkUPAApFEAAKRREACkUTAApFFgAKRRcACkUYAApFGgAKRRsACkWWAApFmAAKRZsACkWdAApFoAAKRaEACkWiAApFowAKRaQACkWmAApFqQAKRaoACkWrAApFrQAKRa4ACkZBAApGZAAKRoQACkakAApGpgAKRqgACkaqAApGrAAKRq8ACkawAApGsQAKRrQACka1AApGtwAKRrgACka7AApGvgAKRr8ACkbAAApGwwAKRsQACkbJAApG4gAKRusACkbtAApG8AAKRvkACkb8AApG/wAKRwEACkdKAApHbgAKR5UACke5AApHvAAKR74ACkfAAApHwgAKR8QACkfGAApHxwAKR8oACkfjAApIBAAKSAYACkgIAApICgAKSAwACkgOAApIEAAKSBIACkgUAApINQAKSDgACkg7AApIPgAKSEEACkhEAApIRwAKSEoACkhNAApITwAKSMoACkjMAApIzgAKSNAACkjTAApI1AAKSNUACkjWAApI1wAKSNkACkjbAApI3AAKSN0ACkjfAApI4AAKSVsACkldAApJXwAKSWEACklkAApJZQAKSWYACklnAApJaAAKSWoACklsAApJbQAKSW4ACklwAApJcQAKSewACknuAApJ8QAKSfMACkn2AApJ9wAKSfgACkn5AApJ+gAKSfwACkn+AApJ/wAKSgAACkoCAApKAwAKShwACkodAApKHgAKSiAACkqbAApKnQAKSp8ACkqhAApKpAAKSqUACkqmAApKpwAKSqgACkqqAApKrAAKSq0ACkquAApKsAAKSrEACkssAApLLgAKSzAACksyAApLNQAKSzYACks3AApLOAAKSzkACks7AApLPQAKSz4ACks/AApLQQAKS0IACku9AApLvwAKS8EACkvDAApLxgAKS8cACkvIAApLyQAKS8oACkvMAApLzgAKS88ACkvQAApL0gAKS9MACkxOAApMUAAKTFIACkxUAApMVwAKTFgACkxZAApMWgAKTFsACkxdAApMXwAKTGAACkxhAApMYwAKTGQACkzfAApM4QAKTOMACkzlAApM6AAKTOkACkzqAApM6wAKTOwACkzuAApM8AAKTPEACkzyAApM9AAKTPUACk0+AApNYgAKTYkACk2tAApNsAAKTbMACk21AApNtwAKTbkACk27AApNvAAKTb8ACk3YAApN9QAKTfgACk37AApN/gAKTgEACk4EAApOBwAKTgoACk4nAApOKgAKTi0ACk4wAApOMwAKTjYACk45AApOPAAKTj4ACk65AApOuwAKTr4ACk7AAApOwwAKTsQACk7FAApOxgAKTscACk7JAApOzAAKTs0ACk7OAApO0AAKTtEACk9MAApPTgAKT1EACk9TAApPVgAKT1cACk9YAApPWQAKT1oACk9cAApPXwAKT2AACk9hAApPYwAKT2QACk/fAApP4QAKT+QACk/mAApP6QAKT+oACk/rAApP7AAKT+0ACk/vAApP8gAKT/MACk/0AApP9gAKT/cAClByAApQdAAKUHcAClB5AApQfAAKUH0AClB+AApQfwAKUIAAClCCAApQhQAKUIYAClCHAApQiQAKUIoAClEFAApRBwAKUQkAClELAApRDgAKUQ8AClEQAApREQAKURIAClEUAApRFwAKURgAClEZAApRGwAKURwAClGXAApRmQAKUZsAClGdAApRoAAKUaEAClGiAApRowAKUaQAClGmAApRqQAKUaoAClGrAApRrQAKUa4AClIpAApSKwAKUi4AClIwAApSMwAKUjQAClI1AApSNgAKUjcAClI5AApSPAAKUj0AClI+AApSQAAKUkEAClLUAApS9wAKUxcAClM3AApTOQAKUzsAClM9AApTPwAKU0IAClNDAApTRAAKU0cAClNIAApTSgAKU0sAClNOAApTUQAKU1IAClNTAApTVgAKU1cAClNgAApTeQAKU4IAClOEAApThwAKU5AAClOTAApTlgAKU5gAClPhAApUBQAKVCwAClRQAApUUwAKVFUAClRXAApUWQAKVFsAClRdAApUXgAKVGEAClR6AApUmwAKVJ0AClSfAApUoQAKVKMAClSlAApUpwAKVKkAClSrAApUzAAKVM8AClTSAApU1QAKVNgAClTbAApU3gAKVOEAClTkAApU5gAKVWEAClVjAApVZQAKVWcAClVqAApVawAKVWwAClVtAApVbgAKVXAAClVyAApVcwAKVXQAClV2AApVdwAKVfIAClX0AApV9gAKVfgAClX7AApV/AAKVf0AClX+AApV/wAKVgEAClYDAApWBAAKVgUAClYHAApWCAAKVoMAClaFAApWiAAKVooAClaNAApWjgAKVo8AClaQAApWkQAKVpMAClaVAApWlgAKVpcAClaZAApWmgAKVrMACla0AApWtQAKVrcAClcyAApXNAAKVzYAClc4AApXOwAKVzwAClc9AApXPgAKVz8ACldBAApXQwAKV0QACldFAApXRwAKV0gAClfDAApXxQAKV8cAClfJAApXzAAKV80AClfOAApXzwAKV9AAClfSAApX1AAKV9UAClfWAApX2AAKV9kAClhUAApYVgAKWFgAClhaAApYXQAKWF4AClhfAApYYAAKWGEAClhjAApYZQAKWGYAClhnAApYaQAKWGoACljlAApY5wAKWOkACljrAApY7gAKWO8ACljwAApY8QAKWPIAClj0AApY9gAKWPcAClj4AApY+gAKWPsACll2AApZeAAKWXoACll8AApZfwAKWYAAClmBAApZggAKWYMAClmFAApZhwAKWYgAClmJAApZiwAKWYwAClnVAApZ+QAKWiAAClpEAApaRwAKWkoAClpMAApaTgAKWlAAClpSAApaUwAKWlYAClpvAApajAAKWo8AClqSAApalQAKWpgAClqbAApangAKWqEAClq+AApawQAKWsQAClrHAApaygAKWs0AClrQAApa0wAKWtUACltQAApbUgAKW1UACltXAApbWgAKW1sACltcAApbXQAKW14ACltgAApbYwAKW2QACltlAApbZwAKW2gAClvjAApb5QAKW+gAClvqAApb7QAKW+4AClvvAApb8AAKW/EAClvzAApb9gAKW/cAClv4AApb+gAKW/sAClx2AApceAAKXHsAClx9AApcgAAKXIEAClyCAApcgwAKXIQAClyGAApciQAKXIoAClyLAApcjQAKXI4ACl0JAApdCwAKXQ4ACl0QAApdEwAKXRQACl0VAApdFgAKXRcACl0ZAApdHAAKXR0ACl0eAApdIAAKXSEACl2kAApdyAAKXewACl4PAApeNgAKXlYACl59AApepAAKXsQACl7oAApfDAAKXw4ACl8RAApfEwAKXxUACl8XAApfGgAKXx0ACl8fAApfIQAKXyQACl8mAApfKAAKXysACl8uAApfLwAKXzQACl9NAApfUgAKX1QACl9ZAApfXAAKX14ACl+nAApfywAKX/IACmAWAApgGQAKYBsACmAdAApgHwAKYCEACmAjAApgJAAKYCcACmBAAApgZQAKYGcACmBpAApgawAKYG0ACmBvAApgcQAKYHMACmB1AApgdwAKYJwACmCfAApgogAKYKUACmCoAApgqwAKYK4ACmCxAApgtAAKYLcACmC5AAphNAAKYTYACmE5AAphOwAKYT4ACmE/AAphQAAKYUEACmFCAAphRAAKYUYACmFHAAphSAAKYUoACmFLAAphXAAKYV0ACmFfAAph2gAKYdwACmHeAAph4AAKYeMACmHkAAph5QAKYeYACmHnAAph6QAKYesACmHsAAph7QAKYe8ACmHwAApiawAKYm0ACmJwAApicgAKYnUACmJ2AApidwAKYngACmJ5AApiewAKYn0ACmJ+AApifwAKYoEACmKCAApikwAKYpQACmKWAApjEQAKYxMACmMVAApjFwAKYxoACmMbAApjHAAKYx0ACmMeAApjIAAKYyIACmMjAApjJAAKYyYACmMnAApjogAKY6QACmOnAApjqQAKY6wACmOtAApjrgAKY68ACmOwAApjsgAKY7QACmO1AApjtgAKY7gACmO5AApjygAKY8sACmPNAApkSAAKZEoACmRMAApkTgAKZFEACmRSAApkUwAKZFQACmRVAApkVwAKZFkACmRaAApkWwAKZF0ACmReAApk2QAKZNsACmTeAApk4AAKZOMACmTkAApk5QAKZOYACmTnAApk6QAKZOsACmTsAApk7QAKZO8ACmTwAAplCQAKZQoACmULAAplDQAKZYgACmWKAApljAAKZY4ACmWRAAplkgAKZZMACmWUAApllQAKZZcACmWZAAplmgAKZZsACmWdAAplngAKZhkACmYbAApmHgAKZiAACmYjAApmJAAKZiUACmYmAApmJwAKZikACmYrAApmLAAKZi0ACmYvAApmMAAKZlIACmZrAApmcAAKZnMACmZ4AApmewAKZn0ACmaPAApnIgAKZ0UACmdlAApnhQAKZ4cACmeJAApniwAKZ40ACmeQAApnkQAKZ5IACmeVAApnlgAKZ5gACmeZAApnnAAKZ58ACmegAApnoQAKZ6QACmelAApnqgAKZ8MACmfMAApnzgAKZ9EACmfaAApn3QAKZ+AACmfiAApoKwAKaE8ACmh2AApomgAKaJ0ACmifAApooQAKaKMACmilAApopwAKaKgACmirAApoxAAKaOUACmjnAApo6QAKaOsACmjtAApo7wAKaPEACmjzAApo9QAKaRYACmkZAAppHAAKaR8ACmkiAAppJQAKaSgACmkrAAppLgAKaTAACmmrAApprQAKaa8ACmmxAApptAAKabUACmm2AApptwAKabgACmm6AAppvAAKab0ACmm+AAppwAAKacEACmo8AApqPgAKakAACmpCAApqRQAKakYACmpHAApqSAAKakkACmpLAApqTQAKak4ACmpPAApqUQAKalIACmrNAApqzwAKatIACmrUAApq1wAKatgACmrZAApq2gAKatsACmrdAApq3wAKauAACmrhAApq4wAKauQACmr9AApq/gAKav8ACmsBAAprfAAKa34ACmuAAAprggAKa4UACmuGAAprhwAKa4gACmuJAApriwAKa40ACmuOAAprjwAKa5EACmuSAApsDQAKbA8ACmwRAApsEwAKbBYACmwXAApsGAAKbBkACmwaAApsHAAKbB4ACmwfAApsIAAKbCIACmwjAApsngAKbKAACmyiAApspAAKbKcACmyoAApsqQAKbKoACmyrAApsrQAKbK8ACmywAApssQAKbLMACmy0AAptLwAKbTEACm0zAAptNQAKbTgACm05AAptOgAKbTsACm08AAptPgAKbUAACm1BAAptQgAKbUQACm1FAAptwAAKbcIACm3EAAptxgAKbckACm3KAAptywAKbcwACm3NAAptzwAKbdEACm3SAApt0wAKbdUACm3WAApuHwAKbkMACm5qAApujgAKbpEACm6UAApulgAKbpgACm6aAApunAAKbp0ACm6gAApuuQAKbtYACm7ZAApu3AAKbt8ACm7iAApu5QAKbugACm7rAApvCAAKbwsACm8OAApvEQAKbxQACm8XAApvGgAKbx0ACm8fAApvmgAKb5wACm+fAApvoQAKb6QACm+lAApvpgAKb6cACm+oAApvqgAKb60ACm+uAApvrwAKb7EACm+yAApwLQAKcC8ACnAyAApwNAAKcDcACnA4AApwOQAKcDoACnA7AApwPQAKcEAACnBBAApwQgAKcEQACnBFAApwwAAKcMIACnDFAApwxwAKcMoACnDLAApwzAAKcM0ACnDOAApw0AAKcNMACnDUAApw1QAKcNcACnDYAApxUwAKcVUACnFYAApxWgAKcV0ACnFeAApxXwAKcWAACnFhAApxYwAKcWYACnFnAApxaAAKcWoACnFrAApx5gAKcegACnHqAApx7AAKce8ACnHwAApx8QAKcfIACnHzAApx9QAKcfgACnH5AApx+gAKcfwACnH9AApyeAAKcnoACnJ8AApyfgAKcoEACnKCAApygwAKcoQACnKFAApyhwAKcooACnKLAApyjAAKco4ACnKPAApzCgAKcwwACnMPAApzEQAKcxQACnMVAApzFgAKcxcACnMYAApzGgAKcx0ACnMeAApzHwAKcyEACnMiAApzMwAKczgACnM7AApzPQAKc3YACnN5AApzewAKc34ACnOBAApzhAAKc4cACnOQAAp0MwAKdFcACnR7AAp0mwAKdMIACnTpAAp1CQAKdTAACnVUAAp1dwAKdZ4ACnXCAAp15gAKdgoACnYxAAp2MgAKdjQACnY2AAp2OQAKdjsACnY+AAp2QAAKdkIACnZFAAp2RwAKdkkACnZMAAp2TwAKdlEACnZTAAp2VQAKdlgACnZbAAp2XgAKdmMACnZ8AAp2gQAKdoMACnaIAAp2iwAKdo0ACnbWAAp2+gAKdyEACndFAAp3SAAKd0oACndMAAp3TgAKd1AACndSAAp3UwAKd1YACndvAAp3lAAKd5YACneYAAp3mgAKd5wACneeAAp3oAAKd6IACnekAAp3pgAKd8sACnfOAAp30QAKd9QACnfXAAp32gAKd90ACnfgAAp34wAKd+YACnfoAAp4YwAKeGUACnhoAAp4agAKeG0ACnhuAAp4bwAKeHAACnhxAAp4cwAKeHUACnh2AAp4dwAKeHkACnh6AAp4iwAKeIwACniOAAp5CQAKeQsACnkNAAp5DwAKeRIACnkTAAp5FAAKeRUACnkWAAp5GAAKeRoACnkbAAp5HAAKeR4ACnkfAAp5mgAKeZwACnmfAAp5oQAKeaQACnmlAAp5pgAKeacACnmoAAp5qgAKeawACnmtAAp5rgAKebAACnmxAAp5wgAKecMACnnFAAp6QAAKekIACnpEAAp6RgAKekkACnpKAAp6SwAKekwACnpNAAp6TwAKelEACnpSAAp6UwAKelUACnpWAAp60QAKetMACnrWAAp62AAKetsACnrcAAp63QAKet4ACnrfAAp64QAKeuMACnrkAAp65QAKeucACnroAAp6+QAKevoACnr8AAp7dwAKe3kACnt7AAp7fQAKe4AACnuBAAp7ggAKe4MACnuEAAp7hgAKe4gACnuJAAp7igAKe4wACnuNAAp8CAAKfAoACnwNAAp8DwAKfBIACnwTAAp8FAAKfBUACnwWAAp8GAAKfBoACnwbAAp8HAAKfB4ACnwfAAp8OAAKfDkACnw6AAp8PAAKfLcACny5AAp8uwAKfL0ACnzAAAp8wQAKfMIACnzDAAp8xAAKfMYACnzIAAp8yQAKfMoACnzMAAp8zQAKfUgACn1KAAp9TQAKfU8ACn1SAAp9UwAKfVQACn1VAAp9VgAKfVgACn1aAAp9WwAKfVwACn1eAAp9XwAKfXgACn2RAAp9pgAKfakACn2sAAp9rwAKfbIACn21AAp9ygAKfc0ACn3QAAp90wAKfdYACn3ZAAp92wAKfekACn4BAAp+FwAKfjcACn7KAAp+7QAKfw0ACn8tAAp/LwAKfzEACn8zAAp/NQAKfzgACn85AAp/OgAKfz0ACn8+AAp/QAAKf0EACn9DAAp/RgAKf0cACn9IAAp/SwAKf0wACn9RAAp/agAKf3MACn91AAp/dwAKf4AACn+DAAp/hgAKf4gACn/RAAp/9QAKgBwACoBAAAqAQwAKgEUACoBHAAqASQAKgEsACoBNAAqATgAKgFEACoBqAAqAiwAKgI0ACoCPAAqAkQAKgJMACoCVAAqAlwAKgJkACoCbAAqAvAAKgL8ACoDCAAqAxQAKgMgACoDLAAqAzgAKgNEACoDUAAqA1gAKgVEACoFTAAqBVQAKgVcACoFaAAqBWwAKgVwACoFdAAqBXgAKgWAACoFiAAqBYwAKgWQACoFmAAqBZwAKgeIACoHkAAqB5gAKgegACoHrAAqB7AAKge0ACoHuAAqB7wAKgfEACoHzAAqB9AAKgfUACoH3AAqB+AAKgnMACoJ1AAqCeAAKgnoACoJ9AAqCfgAKgn8ACoKAAAqCgQAKgoMACoKFAAqChgAKgocACoKJAAqCigAKgqMACoKkAAqCpQAKgqcACoMiAAqDJAAKgyYACoMoAAqDKwAKgywACoMtAAqDLgAKgy8ACoMxAAqDMwAKgzQACoM1AAqDNwAKgzgACoOzAAqDtQAKg7cACoO5AAqDvAAKg70ACoO+AAqDvwAKg8AACoPCAAqDxAAKg8UACoPGAAqDyAAKg8kACoREAAqERgAKhEgACoRKAAqETQAKhE4ACoRPAAqEUAAKhFEACoRTAAqEVQAKhFYACoRXAAqEWQAKhFoACoTVAAqE1wAKhNkACoTbAAqE3gAKhN8ACoTgAAqE4QAKhOIACoTkAAqE5gAKhOcACoToAAqE6gAKhOsACoVmAAqFaAAKhWoACoVsAAqFbwAKhXAACoVxAAqFcgAKhXMACoV1AAqFdwAKhXgACoV5AAqFewAKhXwACoXFAAqF6QAKhhAACoY0AAqGNwAKhjkACoY7AAqGPQAKhj8ACoZBAAqGQgAKhkUACoZeAAqGewAKhn0ACoZ/AAqGgQAKhoMACoaFAAqGhwAKhokACoamAAqGqQAKhqwACoavAAqGsgAKhrUACoa4AAqGuwAKhr0ACoc4AAqHOgAKhzwACoc+AAqHQQAKh0IACodDAAqHRAAKh0UACodHAAqHSQAKh0oACodLAAqHTQAKh04ACofJAAqHywAKh80ACofPAAqH0gAKh9MACofUAAqH1QAKh9YACofYAAqH2gAKh9sACofcAAqH3gAKh98ACohaAAqIXAAKiF4ACohgAAqIYwAKiGQACohlAAqIZgAKiGcACohpAAqIawAKiGwACohtAAqIbwAKiHAACojrAAqI7QAKiO8ACojxAAqI9AAKiPUACoj2AAqI9wAKiPgACoj6AAqI/AAKiP0ACoj+AAqJAAAKiQEACol8AAqJfgAKiYAAComCAAqJhQAKiYYAComHAAqJiAAKiYkAComLAAqJjQAKiY4AComPAAqJkQAKiZIACooNAAqKDwAKihEACooTAAqKFgAKihcACooYAAqKGQAKihoACoocAAqKHgAKih8ACoogAAqKIgAKiiMACoqeAAqKoAAKiqIACoqkAAqKpwAKiqgACoqpAAqKqgAKiqsACoqtAAqKrwAKirAACoqxAAqKswAKirQACotHAAqLagAKi4oACouqAAqLrAAKi64ACouwAAqLsgAKi7UACou2AAqLtwAKi7oACou7AAqLvQAKi74ACovAAAqLwwAKi8QACovFAAqLyAAKi8kACovSAAqL6wAKi/QACov2AAqL+AAKjAEACowEAAqMBwAKjAkACoxSAAqMdgAKjJ0ACozBAAqMxAAKjMYACozIAAqMygAKjMwACozOAAqMzwAKjNIACozrAAqNDAAKjQ4ACo0QAAqNEgAKjRQACo0WAAqNGAAKjRoACo0cAAqNPQAKjUAACo1DAAqNRgAKjUkACo1MAAqNTwAKjVIACo1VAAqNVwAKjdIACo3UAAqN1gAKjdgACo3bAAqN3AAKjd0ACo3eAAqN3wAKjeEACo3jAAqN5AAKjeUACo3nAAqN6AAKjmMACo5lAAqOZwAKjmkACo5sAAqObQAKjm4ACo5vAAqOcAAKjnIACo50AAqOdQAKjnYACo54AAqOeQAKjvQACo72AAqO+QAKjvsACo7+AAqO/wAKjwAACo8BAAqPAgAKjwQACo8GAAqPBwAKjwgACo8KAAqPCwAKjyQACo8lAAqPJgAKjygACo+jAAqPpQAKj6cACo+pAAqPrAAKj60ACo+uAAqPrwAKj7AACo+yAAqPtAAKj7UACo+2AAqPuAAKj7kACpA0AAqQNgAKkDgACpA6AAqQPQAKkD4ACpA/AAqQQAAKkEEACpBDAAqQRQAKkEYACpBHAAqQSQAKkEoACpDFAAqQxwAKkMkACpDLAAqQzgAKkM8ACpDQAAqQ0QAKkNIACpDUAAqQ1gAKkNcACpDYAAqQ2gAKkNsACpFWAAqRWAAKkVoACpFcAAqRXwAKkWAACpFhAAqRYgAKkWMACpFlAAqRZwAKkWgACpFpAAqRawAKkWwACpHnAAqR6QAKkesACpHtAAqR8AAKkfEACpHyAAqR8wAKkfQACpH2AAqR+AAKkfkACpH6AAqR/AAKkf0ACpJGAAqSagAKkpEACpK1AAqSuAAKkroACpK8AAqSvgAKksAACpLCAAqSwwAKksYACpLfAAqS/AAKkv4ACpMAAAqTAgAKkwQACpMGAAqTCAAKkwoACpMnAAqTKgAKky0ACpMwAAqTMwAKkzYACpM5AAqTPAAKkz4ACpO5AAqTuwAKk70ACpO/AAqTwgAKk8MACpPEAAqTxQAKk8YACpPIAAqTygAKk8sACpPMAAqTzgAKk88ACpRKAAqUTAAKlE4ACpRQAAqUUwAKlFQACpRVAAqUVgAKlFcACpRZAAqUWwAKlFwACpRdAAqUXwAKlGAACpTbAAqU3QAKlN8ACpThAAqU5AAKlOUACpTmAAqU5wAKlOgACpTqAAqU7AAKlO0ACpTuAAqU8AAKlPEACpVsAAqVbgAKlXEACpVzAAqVdgAKlXcACpV4AAqVeQAKlXoACpV8AAqVfgAKlX8ACpWAAAqVggAKlYMACpX+AAqWAAAKlgIACpYEAAqWBwAKlggACpYJAAqWCgAKlgsACpYNAAqWDwAKlhAACpYRAAqWEwAKlhQACpaPAAqWkQAKlpMACpaVAAqWmAAKlpkACpaaAAqWmwAKlpwACpaeAAqWoAAKlqEACpaiAAqWpAAKlqUACpcgAAqXIgAKlyQACpcmAAqXKQAKlyoACpcrAAqXLAAKly0ACpcvAAqXMQAKlzIACpczAAqXNQAKlzYACpfJAAqX7AAKmAwACpgsAAqYLgAKmDAACpgyAAqYNAAKmDcACpg4AAqYOQAKmDwACpg9AAqYPwAKmEAACphCAAqYRQAKmEYACphHAAqYSgAKmEsACphQAAqYaQAKmHIACph0AAqYdgAKmH8ACpiCAAqYhQAKmIcACpjQAAqY9AAKmRsACpk/AAqZQgAKmUQACplGAAqZSAAKmUoACplMAAqZTQAKmVAACplpAAqZigAKmYwACpmOAAqZkAAKmZIACpmUAAqZlgAKmZgACpmaAAqZuwAKmb4ACpnBAAqZxAAKmccACpnKAAqZzQAKmdAACpnTAAqZ1QAKmlAACppSAAqaVAAKmlYACppZAAqaWgAKmlsACppcAAqaXQAKml8ACpphAAqaYgAKmmMACpplAAqaZgAKmuEACprjAAqa5QAKmucACprqAAqa6wAKmuwACprtAAqa7gAKmvAACpryAAqa8wAKmvQACpr2AAqa9wAKm3IACpt0AAqbdwAKm3kACpt8AAqbfQAKm34ACpt/AAqbgAAKm4IACpuEAAqbhQAKm4YACpuIAAqbiQAKm6IACpujAAqbpAAKm6YACpwhAAqcIwAKnCUACpwnAAqcKgAKnCsACpwsAAqcLQAKnC4ACpwwAAqcMgAKnDMACpw0AAqcNgAKnDcACpyyAAqctAAKnLYACpy4AAqcuwAKnLwACpy9AAqcvgAKnL8ACpzBAAqcwwAKnMQACpzFAAqcxwAKnMgACp1DAAqdRQAKnUcACp1JAAqdTAAKnU0ACp1OAAqdTwAKnVAACp1SAAqdVAAKnVUACp1WAAqdWAAKnVkACp3UAAqd1gAKndgACp3aAAqd3QAKnd4ACp3fAAqd4AAKneEACp3jAAqd5QAKneYACp3nAAqd6QAKneoACp5lAAqeZwAKnmkACp5rAAqebgAKnm8ACp5wAAqecQAKnnIACp50AAqedgAKnncACp54AAqeegAKnnsACp7EAAqe6AAKnw8ACp8zAAqfNgAKnzgACp86AAqfPAAKnz4ACp9AAAqfQQAKn0QACp9dAAqfegAKn3wACp9+AAqfgAAKn4IACp+EAAqfhgAKn4gACp+lAAqfqAAKn6sACp+uAAqfsQAKn7QACp+3AAqfugAKn7wACqA3AAqgOQAKoDsACqA9AAqgQAAKoEEACqBCAAqgQwAKoEQACqBGAAqgSAAKoEkACqBKAAqgTAAKoE0ACqDIAAqgygAKoMwACqDOAAqg0QAKoNIACqDTAAqg1AAKoNUACqDXAAqg2QAKoNoACqDbAAqg3QAKoN4ACqFZAAqhWwAKoV0ACqFfAAqhYgAKoWMACqFkAAqhZQAKoWYACqFoAAqhagAKoWsACqFsAAqhbgAKoW8ACqHqAAqh7AAKoe8ACqHxAAqh9AAKofUACqH2AAqh9wAKofgACqH6AAqh/AAKof0ACqH+AAqiAAAKogEACqJ8AAqifgAKooAACqKCAAqihQAKooYACqKHAAqiiAAKookACqKLAAqijQAKoo4ACqKPAAqikQAKopIACqMNAAqjDwAKoxEACqMTAAqjFgAKoxcACqMYAAqjGQAKoxoACqMcAAqjHgAKox8ACqMgAAqjIgAKoyMACqOeAAqjoAAKo6IACqOkAAqjpwAKo6gACqOpAAqjqgAKo6sACqOtAAqjrwAKo7AACqOxAAqjswAKo7QACqRHAAqkagAKpIoACqSqAAqkrAAKpK4ACqSwAAqksgAKpLUACqS2AAqktwAKpLoACqS7AAqkvQAKpL4ACqTAAAqkwwAKpMQACqTFAAqkyAAKpMkACqTOAAqk5wAKpPAACqTyAAqk9AAKpP0ACqUAAAqlAwAKpQUACqVOAAqlcgAKpZkACqW9AAqlwAAKpcIACqXEAAqlxgAKpcgACqXKAAqlywAKpc4ACqXnAAqmCAAKpgoACqYMAAqmDgAKphAACqYSAAqmFAAKphYACqYYAAqmOQAKpjwACqY/AAqmQgAKpkUACqZIAAqmSwAKpk4ACqZRAAqmUwAKps4ACqbQAAqm0gAKptQACqbXAAqm2AAKptkACqbaAAqm2wAKpt0ACqbfAAqm4AAKpuEACqbjAAqm5AAKp18ACqdhAAqnYwAKp2UACqdoAAqnaQAKp2oACqdrAAqnbAAKp24ACqdwAAqncQAKp3IACqd0AAqndQAKp/AACqfyAAqn9QAKp/cACqf6AAqn+wAKp/wACqf9AAqn/gAKqAAACqgCAAqoAwAKqAQACqgGAAqoBwAKqCAACqghAAqoIgAKqCQACqifAAqooQAKqKMACqilAAqoqAAKqKkACqiqAAqoqwAKqKwACqiuAAqosAAKqLEACqiyAAqotAAKqLUACqkwAAqpMgAKqTQACqk2AAqpOQAKqToACqk7AAqpPAAKqT0ACqk/AAqpQQAKqUIACqlDAAqpRQAKqUYACqnBAAqpwwAKqcUACqnHAAqpygAKqcsACqnMAAqpzQAKqc4ACqnQAAqp0gAKqdMACqnUAAqp1gAKqdcACqpSAAqqVAAKqlYACqpYAAqqWwAKqlwACqpdAAqqXgAKql8ACqphAAqqYwAKqmQACqplAAqqZwAKqmgACqrjAAqq5QAKqucACqrpAAqq7AAKqu0ACqruAAqq7wAKqvAACqryAAqq9AAKqvUACqr2AAqq+AAKqvkACqtCAAqrZgAKq40ACquxAAqrtAAKq7YACqu4AAqrugAKq7wACqu+AAqrvwAKq8IACqvbAAqr+AAKq/oACqv8AAqr/gAKrAAACqwCAAqsBAAKrAYACqwjAAqsJgAKrCkACqwsAAqsLwAKrDIACqw1AAqsOAAKrDoACqy1AAqstwAKrLkACqy7AAqsvgAKrL8ACqzAAAqswQAKrMIACqzEAAqsxgAKrMcACqzIAAqsygAKrMsACq1GAAqtSAAKrUoACq1MAAqtTwAKrVAACq1RAAqtUgAKrVMACq1VAAqtVwAKrVgACq1ZAAqtWwAKrVwACq3XAAqt2QAKrdsACq3dAAqt4AAKreEACq3iAAqt4wAKreQACq3mAAqt6AAKrekACq3qAAqt7AAKre0ACq5oAAquagAKrm0ACq5vAAqucgAKrnMACq50AAqudQAKrnYACq54AAquegAKrnsACq58AAqufgAKrn8ACq76AAqu/AAKrv4ACq8AAAqvAwAKrwQACq8FAAqvBgAKrwcACq8JAAqvCwAKrwwACq8NAAqvDwAKrxAACq+LAAqvjQAKr48ACq+RAAqvlAAKr5UACq+WAAqvlwAKr5gACq+aAAqvnAAKr50ACq+eAAqvoAAKr6EACrAcAAqwHgAKsCAACrAiAAqwJQAKsCYACrAnAAqwKAAKsCkACrArAAqwLQAKsC4ACrAvAAqwMQAKsDIACrDFAAqw6AAKsQgACrEoAAqxKgAKsSwACrEuAAqxMAAKsTMACrE0AAqxNQAKsTgACrE5AAqxOwAKsTwACrE+AAqxQQAKsUIACrFDAAqxRgAKsUcACrFMAAqxZQAKsW4ACrFwAAqxcgAKsXsACrF+AAqxgQAKsYMACrHMAAqx8AAKshcACrI7AAqyPgAKskAACrJCAAqyRAAKskYACrJIAAqySQAKskwACrJlAAqyhgAKsogACrKKAAqyjAAKso4ACrKQAAqykgAKspQACrKWAAqytwAKsroACrK9AAqywAAKssMACrLGAAqyyQAKsswACrLPAAqy0QAKs0wACrNOAAqzUAAKs1IACrNVAAqzVgAKs1cACrNYAAqzWQAKs1sACrNdAAqzXgAKs18ACrNhAAqzYgAKs90ACrPfAAqz4QAKs+MACrPmAAqz5wAKs+gACrPpAAqz6gAKs+wACrPuAAqz7wAKs/AACrPyAAqz8wAKtG4ACrRwAAq0cwAKtHUACrR4AAq0eQAKtHoACrR7AAq0fAAKtH4ACrSAAAq0gQAKtIIACrSEAAq0hQAKtJ4ACrSfAAq0oAAKtKIACrUdAAq1HwAKtSEACrUjAAq1JgAKtScACrUoAAq1KQAKtSoACrUsAAq1LgAKtS8ACrUwAAq1MgAKtTMACrWuAAq1sAAKtbIACrW0AAq1twAKtbgACrW5AAq1ugAKtbsACrW9AAq1vwAKtcAACrXBAAq1wwAKtcQACrY/AAq2QQAKtkMACrZFAAq2SAAKtkkACrZKAAq2SwAKtkwACrZOAAq2UAAKtlEACrZSAAq2VAAKtlUACrbQAAq20gAKttQACrbWAAq22QAKttoACrbbAAq23AAKtt0ACrbfAAq24QAKtuIACrbjAAq25QAKtuYACrdhAAq3YwAKt2UACrdnAAq3agAKt2sACrdsAAq3bQAKt24ACrdwAAq3cgAKt3MACrd0AAq3dgAKt3cACrfAAAq35AAKuAsACrgvAAq4MgAKuDQACrg2AAq4OAAKuDoACrg8AAq4PQAKuEAACrhZAAq4dgAKuHgACrh6AAq4fAAKuH4ACriAAAq4ggAKuIQACrihAAq4pAAKuKcACriqAAq4rQAKuLAACrizAAq4tgAKuLgACrkzAAq5NQAKuTcACrk5AAq5PAAKuT0ACrk+AAq5PwAKuUAACrlCAAq5RAAKuUUACrlGAAq5SAAKuUkACrnEAAq5xgAKucgACrnKAAq5zQAKuc4ACrnPAAq50AAKudEACrnTAAq51QAKudYACrnXAAq52QAKudoACrpVAAq6VwAKulkACrpbAAq6XgAKul8ACrpgAAq6YQAKumIACrpkAAq6ZgAKumcACrpoAAq6agAKumsACrrmAAq66AAKuusACrrtAAq68AAKuvEACrryAAq68wAKuvQACrr2AAq6+AAKuvkACrr6AAq6/AAKuv0ACrt4AAq7egAKu3wACrt+AAq7gQAKu4IACruDAAq7hAAKu4UACruHAAq7iQAKu4oACruLAAq7jQAKu44ACrwJAAq8CwAKvA0ACrwPAAq8EgAKvBMACrwUAAq8FQAKvBYACrwYAAq8GgAKvBsACrwcAAq8HgAKvB8ACryaAAq8nAAKvJ4ACrygAAq8owAKvKQACrylAAq8pgAKvKcACrypAAq8qwAKvKwACrytAAq8rwAKvLAACrzBAAq8wgAKvMQACrzVAAq83gAKvOEACrzkAAq85gAKvR8ACr0iAAq9JAAKvScACr0qAAq9LQAKvTAACr2zAAq91wAKvfsACr4eAAq+RQAKvmUACr6MAAq+swAKvtMACr73AAq/GwAKvx0ACr8gAAq/IgAKvyQACr8mAAq/KQAKvywACr8uAAq/MAAKvzMACr81AAq/NwAKvzoACr89AAq/PgAKv0MACr9cAAq/YQAKv2MACr9oAAq/awAKv20ACr+2AAq/2gAKwAEACsAlAArAKAAKwCoACsAsAArALgAKwDAACsAyAArAMwAKwDYACsBPAArAdAAKwHYACsB4AArAegAKwHwACsB+AArAgAAKwIIACsCEAArAhgAKwKsACsCuAArAsQAKwLQACsC3AArAugAKwL0ACsDAAArAwwAKwMYACsDIAArBQwAKwUUACsFIAArBSgAKwU0ACsFOAArBTwAKwVAACsFRAArBUwAKwVUACsFWAArBVwAKwVkACsFaAArBawAKwWwACsFuAArB6QAKwesACsHtAArB7wAKwfIACsHzAArB9AAKwfUACsH2AArB+AAKwfoACsH7AArB/AAKwf4ACsH/AArCegAKwnwACsJ/AArCgQAKwoQACsKFAArChgAKwocACsKIAArCigAKwowACsKNAArCjgAKwpAACsKRAArCogAKwqMACsKlAArDIAAKwyIACsMkAArDJgAKwykACsMqAArDKwAKwywACsMtAArDLwAKwzEACsMyAArDMwAKwzUACsM2AArDsQAKw7MACsO2AArDuAAKw7sACsO8AArDvQAKw74ACsO/AArDwQAKw8MACsPEAArDxQAKw8cACsPIAArD2QAKw9oACsPcAArEVwAKxFkACsRbAArEXQAKxGAACsRhAArEYgAKxGMACsRkAArEZgAKxGgACsRpAArEagAKxGwACsRtAArE6AAKxOoACsTtAArE7wAKxPIACsTzAArE9AAKxPUACsT2AArE+AAKxPoACsT7AArE/AAKxP4ACsT/AArFGAAKxRkACsUaAArFHAAKxZcACsWZAArFmwAKxZ0ACsWgAArFoQAKxaIACsWjAArFpAAKxaYACsWoAArFqQAKxaoACsWsAArFrQAKxigACsYqAArGLQAKxi8ACsYyAArGMwAKxjQACsY1AArGNgAKxjgACsY6AArGOwAKxjwACsY+AArGPwAKxl8ACsZ4AArGfQAKxoAACsaFAArGiAAKxooACsacAArHLwAKx1IACsdyAArHkgAKx5QACseWAArHmAAKx5oACsedAArHngAKx58ACseiAArHowAKx6UACsemAArHqQAKx6wACsetAArHrgAKx7EACseyAArHuwAKx9QACsfdAArH3wAKx+IACsfrAArH7gAKx/EACsfzAArIPAAKyGAACsiHAArIqwAKyK4ACsiwAArIsgAKyLQACsi2AArIuAAKyLkACsi8AArI1QAKyPYACsj4AArI+gAKyPwACsj+AArJAAAKyQIACskEAArJBgAKyScACskqAArJLQAKyTAACskzAArJNgAKyTkACsk8AArJPwAKyUEACsm8AArJvgAKycAACsnCAArJxQAKycYACsnHAArJyAAKyckACsnLAArJzQAKyc4ACsnPAArJ0QAKydIACspNAArKTwAKylEACspTAArKVgAKylcACspYAArKWQAKyloACspcAArKXgAKyl8ACspgAArKYgAKymMACsreAArK4AAKyuMACsrlAArK6AAKyukACsrqAArK6wAKyuwACsruAArK8AAKyvEACsryAArK9AAKyvUACssOAArLDwAKyxAACssSAArLjQAKy48ACsuRAArLkwAKy5YACsuXAArLmAAKy5kACsuaAArLnAAKy54ACsufAArLoAAKy6IACsujAArMHgAKzCAACswiAArMJAAKzCcACswoAArMKQAKzCoACswrAArMLQAKzC8ACswwAArMMQAKzDMACsw0AArMrwAKzLEACsyzAArMtQAKzLgACsy5AArMugAKzLsACsy8AArMvgAKzMAACszBAArMwgAKzMQACszFAArNQAAKzUIACs1EAArNRgAKzUkACs1KAArNSwAKzUwACs1NAArNTwAKzVEACs1SAArNUwAKzVUACs1WAArN0QAKzdMACs3VAArN1wAKzdoACs3bAArN3AAKzd0ACs3eAArN4AAKzeIACs3jAArN5AAKzeYACs3nAArOMAAKzlQACs57AArOnwAKzqIACs6lAArOpwAKzqkACs6rAArOrQAKzq4ACs6xAArOygAKzucACs7qAArO7QAKzvAACs7zAArO9gAKzvkACs78AArPGQAKzxwACs8fAArPIgAKzyUACs8oAArPKwAKzy4ACs8wAArPqwAKz60ACs+wAArPsgAKz7UACs+2AArPtwAKz7gACs+5AArPuwAKz74ACs+/AArPwAAKz8IACs/DAArQPgAK0EAACtBDAArQRQAK0EgACtBJAArQSgAK0EsACtBMAArQTgAK0FEACtBSAArQUwAK0FUACtBWAArQ0QAK0NMACtDWAArQ2AAK0NsACtDcAArQ3QAK0N4ACtDfAArQ4QAK0OQACtDlAArQ5gAK0OgACtDpAArRZAAK0WYACtFpAArRawAK0W4ACtFvAArRcAAK0XEACtFyAArRdAAK0XcACtF4AArReQAK0XsACtF8AArR9wAK0fkACtH7AArR/QAK0gAACtIBAArSAgAK0gMACtIEAArSBgAK0gkACtIKAArSCwAK0g0ACtIOAArSiQAK0osACtKNAArSjwAK0pIACtKTAArSlAAK0pUACtKWAArSmAAK0psACtKcAArSnQAK0p8ACtKgAArTGwAK0x0ACtMgAArTIgAK0yUACtMmAArTJwAK0ygACtMpAArTKwAK0y4ACtMvAArTMAAK0zIACtMzAArTxgAK0+kACtQJAArUKQAK1CsACtQtAArULwAK1DEACtQ0AArUNQAK1DYACtQ5AArUOgAK1DwACtQ9AArUQAAK1EMACtREAArURQAK1EgACtRJAArUTgAK1GcACtRwAArUcgAK1HUACtR+AArUgQAK1IQACtSGAArUzwAK1PMACtUaAArVPgAK1UEACtVDAArVRQAK1UcACtVJAArVSwAK1UwACtVPAArVaAAK1YkACtWLAArVjQAK1Y8ACtWRAArVkwAK1ZUACtWXAArVmQAK1boACtW9AArVwAAK1cMACtXGAArVyQAK1cwACtXPAArV0gAK1dQACtZPAArWUQAK1lMACtZVAArWWAAK1lkACtZaAArWWwAK1lwACtZeAArWYAAK1mEACtZiAArWZAAK1mUACtbgAArW4gAK1uQACtbmAArW6QAK1uoACtbrAArW7AAK1u0ACtbvAArW8QAK1vIACtbzAArW9QAK1vYACtdxAArXcwAK13YACtd4AArXewAK13wACtd9AArXfgAK138ACteBAArXgwAK14QACteFAArXhwAK14gACtehAArXogAK16MACtelAArYIAAK2CIACtgkAArYJgAK2CkACtgqAArYKwAK2CwACtgtAArYLwAK2DEACtgyAArYMwAK2DUACtg2AArYsQAK2LMACti1AArYtwAK2LoACti7AArYvAAK2L0ACti+AArYwAAK2MIACtjDAArYxAAK2MYACtjHAArZQgAK2UQACtlGAArZSAAK2UsACtlMAArZTQAK2U4ACtlPAArZUQAK2VMACtlUAArZVQAK2VcACtlYAArZ0wAK2dUACtnXAArZ2QAK2dwACtndAArZ3gAK2d8ACtngAArZ4gAK2eQACtnlAArZ5gAK2egACtnpAAraZAAK2mYACtpoAAraagAK2m0ACtpuAArabwAK2nAACtpxAAracwAK2nUACtp2AAradwAK2nkACtp6AArawwAK2ucACtsOAArbMgAK2zUACts4AArbOgAK2zwACts+AArbQAAK20EACttEAArbXQAK23oACtt9AArbgAAK24MACtuGAArbiQAK24wACtuPAArbrAAK268ACtuyAArbtQAK27gACtu7AArbvgAK28EACtvDAArcPgAK3EAACtxDAArcRQAK3EgACtxJAArcSgAK3EsACtxMAArcTgAK3FEACtxSAArcUwAK3FUACtxWAArc0QAK3NMACtzWAArc2AAK3NsACtzcAArc3QAK3N4ACtzfAArc4QAK3OQACtzlAArc5gAK3OgACtzpAArdZAAK3WYACt1pAArdawAK3W4ACt1vAArdcAAK3XEACt1yAArddAAK3XcACt14AArdeQAK3XsACt18AArd9wAK3fkACt38AArd/gAK3gEACt4CAAreAwAK3gQACt4FAAreBwAK3goACt4LAAreDAAK3g4ACt4PAAreigAK3owACt6OAArekAAK3pMACt6UAArelQAK3pYACt6XAAremQAK3pwACt6dAArengAK3qAACt6hAArfHAAK3x4ACt8gAArfIgAK3yUACt8mAArfJwAK3ygACt8pAArfKwAK3y4ACt8vAArfMAAK3zIACt8zAArfrgAK37AACt+zAArftQAK37gACt+5AArfugAK37sACt+8AArfvgAK38EACt/CAArfwwAK38UACt/GAArf1wAK39wACt/fAArf4QAK3+YACuBhAArgYwAK4GUACuBnAArgagAK4GsACuBsAArgbQAK4G4ACuBwAArgcwAK4HQACuB1AArgdwAK4HgACuDzAArg9QAK4PcACuD5AArg/AAK4P0ACuD+AArg/wAK4QAACuECAArhBQAK4QYACuEHAArhCQAK4QoACuGFAArhhwAK4YoACuGMAArhjwAK4ZAACuGRAArhkgAK4ZMACuGVAArhmAAK4ZkACuGaAArhnAAK4Z0ACuIwAAriUwAK4nMACuKTAArilQAK4pcACuKZAArimwAK4p4ACuKfAArioAAK4qMACuKkAAripgAK4qcACuKqAArirQAK4q4ACuKvAArisgAK4rMACuK8AAri1QAK4t4ACuLgAAri4wAK4uwACuLvAAri8gAK4vQACuM9AArjYQAK44gACuOsAArjrwAK47EACuOzAArjtQAK47cACuO5AArjugAK470ACuPWAArj9wAK4/kACuP7AArj/QAK4/8ACuQBAArkAwAK5AUACuQHAArkKAAK5CsACuQuAArkMQAK5DQACuQ3AArkOgAK5D0ACuRAAArkQgAK5L0ACuS/AArkwQAK5MMACuTGAArkxwAK5MgACuTJAArkygAK5MwACuTOAArkzwAK5NAACuTSAArk0wAK5U4ACuVQAArlUgAK5VQACuVXAArlWAAK5VkACuVaAArlWwAK5V0ACuVfAArlYAAK5WEACuVjAArlZAAK5d8ACuXhAArl5AAK5eYACuXpAArl6gAK5esACuXsAArl7QAK5e8ACuXxAArl8gAK5fMACuX1AArl9gAK5g8ACuYQAArmEQAK5hMACuaOAArmkAAK5pIACuaUAArmlwAK5pgACuaZAArmmgAK5psACuadAArmnwAK5qAACuahAArmowAK5qQACucfAArnIQAK5yMACuclAArnKAAK5ykACucqAArnKwAK5ywACucuAArnMAAK5zEACucyAArnNAAK5zUACuewAArnsgAK57QACue2AArnuQAK57oACue7AArnvAAK570ACue/AArnwQAK58IACufDAArnxQAK58YACuhBAAroQwAK6EUACuhHAAroSgAK6EsACuhMAAroTQAK6E4ACuhQAAroUgAK6FMACuhUAAroVgAK6FcACujSAAro1AAK6NYACujYAAro2wAK6NwACujdAAro3gAK6N8ACujhAAro4wAK6OQACujlAAro5wAK6OgACukxAArpVQAK6XwACumgAArpowAK6aYACumoAArpqgAK6awACumuAArprwAK6bIACunLAArp6AAK6esACunuAArp8QAK6fQACun3AArp+gAK6f0ACuoaAArqHQAK6iAACuojAArqJgAK6ikACuosAArqLwAK6jEACuqsAArqrgAK6rEACuqzAArqtgAK6rcACuq4AArquQAK6roACuq8AArqvwAK6sAACurBAArqwwAK6sQACus/AArrQQAK60QACutGAArrSQAK60oACutLAArrTAAK600ACutPAArrUgAK61MACutUAArrVgAK61cACuvSAArr1AAK69cACuvZAArr3AAK690ACuveAArr3wAK6+AACuviAArr5QAK6+YACuvnAArr6QAK6+oACuxlAArsZwAK7GoACuxsAArsbwAK7HAACuxxAArscgAK7HMACux1AArseAAK7HkACux6AArsfAAK7H0ACu0AAArtJAAK7UgACu1rAArtkgAK7bIACu3ZAAruAAAK7iAACu5EAAruaAAK7moACu5tAArubwAK7nEACu5zAArudgAK7nkACu57AArufQAK7oAACu6CAAruhAAK7ocACu6KAAruiwAK7pAACu6pAArurgAK7rAACu61AAruuAAK7roACu8DAArvJwAK704ACu9yAArvdQAK73cACu95AArvewAK730ACu9/AArvgAAK74MACu+cAArvwQAK78MACu/FAArvxwAK78kACu/LAArvzQAK788ACu/RAArv0wAK7/gACu/7AArv/gAK8AEACvAEAArwBwAK8AoACvANAArwEAAK8BMACvAVAArwkAAK8JIACvCVAArwlwAK8JoACvCbAArwnAAK8J0ACvCeAArwoAAK8KIACvCjAArwpAAK8KYACvCnAArwuAAK8LkACvC7AArxNgAK8TgACvE6AArxPAAK8T8ACvFAAArxQQAK8UIACvFDAArxRQAK8UcACvFIAArxSQAK8UsACvFMAArxxwAK8ckACvHMAArxzgAK8dEACvHSAArx0wAK8dQACvHVAArx1wAK8dkACvHaAArx2wAK8d0ACvHeAArx7wAK8fAACvHyAArybQAK8m8ACvJxAArycwAK8nYACvJ3AAryeAAK8nkACvJ6AAryfAAK8n4ACvJ/AArygAAK8oIACvKDAAry/gAK8wAACvMDAArzBQAK8wgACvMJAArzCgAK8wsACvMMAArzDgAK8xAACvMRAArzEgAK8xQACvMVAArzJgAK8ycACvMpAArzpAAK86YACvOoAArzqgAK860ACvOuAArzrwAK87AACvOxAArzswAK87UACvO2AArztwAK87kACvO6AAr0NQAK9DcACvQ6AAr0PAAK9D8ACvRAAAr0QQAK9EIACvRDAAr0RQAK9EcACvRIAAr0SQAK9EsACvRMAAr0ZQAK9GYACvRnAAr0aQAK9OQACvTmAAr06AAK9OoACvTtAAr07gAK9O8ACvTwAAr08QAK9PMACvT1AAr09gAK9PcACvT5AAr0+gAK9XUACvV3AAr1egAK9XwACvV/AAr1gAAK9YEACvWCAAr1gwAK9YUACvWHAAr1iAAK9YkACvWLAAr1jAAK9aMACvW8AAr12QAK9dwACvXfAAr14gAK9eUACvXoAAr16wAK9e4ACvYLAAr2DgAK9hEACvYUAAr2FwAK9hoACvYdAAr2IAAK9iIACvYvAAr2SQAK9lEACvZgAAr2hgAK9qsACvc+AAr3YQAK94EACvehAAr3owAK96UACvenAAr3qQAK96wACvetAAr3rgAK97EACveyAAr3tAAK97UACve3AAr3ugAK97sACve8AAr3vwAK98AACvfFAAr33gAK9+cACvfpAAr36wAK9/QACvf3AAr3+gAK9/wACvhFAAr4aQAK+JAACvi0AAr4twAK+LkACvi7AAr4vQAK+L8ACvjBAAr4wgAK+MUACvjeAAr4/wAK+QEACvkDAAr5BQAK+QcACvkJAAr5CwAK+Q0ACvkPAAr5MAAK+TMACvk2AAr5OQAK+TwACvk/AAr5QgAK+UUACvlIAAr5SgAK+cUACvnHAAr5yQAK+csACvnOAAr5zwAK+dAACvnRAAr50gAK+dQACvnWAAr51wAK+dgACvnaAAr52wAK+lYACvpYAAr6WgAK+lwACvpfAAr6YAAK+mEACvpiAAr6YwAK+mUACvpnAAr6aAAK+mkACvprAAr6bAAK+ucACvrpAAr67AAK+u4ACvrxAAr68gAK+vMACvr0AAr69QAK+vcACvr5AAr6+gAK+vsACvr9AAr6/gAK+xcACvsYAAr7GQAK+xsACvuWAAr7mAAK+5oACvucAAr7nwAK+6AACvuhAAr7ogAK+6MACvulAAr7pwAK+6gACvupAAr7qwAK+6wACvwnAAr8KQAK/CsACvwtAAr8MAAK/DEACvwyAAr8MwAK/DQACvw2AAr8OAAK/DkACvw6AAr8PAAK/D0ACvy4AAr8ugAK/LwACvy+AAr8wQAK/MIACvzDAAr8xAAK/MUACvzHAAr8yQAK/MoACvzLAAr8zQAK/M4ACv1JAAr9SwAK/U0ACv1PAAr9UgAK/VMACv1UAAr9VQAK/VYACv1YAAr9WgAK/VsACv1cAAr9XgAK/V8ACv3aAAr93AAK/d4ACv3gAAr94wAK/eQACv3lAAr95gAK/ecACv3pAAr96wAK/ewACv3tAAr97wAK/fAACv45AAr+XQAK/oQACv6oAAr+qwAK/q0ACv6vAAr+sQAK/rMACv61AAr+tgAK/rkACv7SAAr+7wAK/vEACv7zAAr+9QAK/vcACv75AAr++wAK/v0ACv8aAAr/HQAK/yAACv8jAAr/JgAK/ykACv8sAAr/LwAK/zEACv+sAAr/rgAK/7AACv+yAAr/tQAK/7YACv+3AAr/uAAK/7kACv+7AAr/vQAK/74ACv+/AAr/wQAK/8IACwA9AAsAPwALAEEACwBDAAsARgALAEcACwBIAAsASQALAEoACwBMAAsATgALAE8ACwBQAAsAUgALAFMACwDOAAsA0AALANIACwDUAAsA1wALANgACwDZAAsA2gALANsACwDdAAsA3wALAOAACwDhAAsA4wALAOQACwFfAAsBYQALAWMACwFlAAsBaAALAWkACwFqAAsBawALAWwACwFuAAsBcAALAXEACwFyAAsBdAALAXUACwHwAAsB8gALAfQACwH2AAsB+QALAfoACwH7AAsB/AALAf0ACwH/AAsCAQALAgIACwIDAAsCBQALAgYACwKBAAsCgwALAoUACwKHAAsCigALAosACwKMAAsCjQALAo4ACwKQAAsCkgALApMACwKUAAsClgALApcACwMSAAsDFAALAxYACwMYAAsDGwALAxwACwMdAAsDHgALAx8ACwMhAAsDIwALAyQACwMlAAsDJwALAygACwO7AAsD3gALA/4ACwQeAAsEIAALBCIACwQkAAsEJgALBCkACwQqAAsEKwALBC4ACwQvAAsEMQALBDIACwQ0AAsENwALBDgACwQ5AAsEPAALBD0ACwRGAAsEXwALBGgACwRqAAsEbAALBHUACwR4AAsEewALBH0ACwTGAAsE6gALBREACwU1AAsFOAALBToACwU8AAsFPgALBUAACwVCAAsFQwALBUYACwVfAAsFgAALBYIACwWEAAsFhgALBYgACwWKAAsFjAALBY4ACwWQAAsFsQALBbQACwW3AAsFugALBb0ACwXAAAsFwwALBcYACwXJAAsFywALBkYACwZIAAsGSgALBkwACwZPAAsGUAALBlEACwZSAAsGUwALBlUACwZXAAsGWAALBlkACwZbAAsGXAALBtcACwbZAAsG2wALBt0ACwbgAAsG4QALBuIACwbjAAsG5AALBuYACwboAAsG6QALBuoACwbsAAsG7QALB2gACwdqAAsHbQALB28ACwdyAAsHcwALB3QACwd1AAsHdgALB3gACwd6AAsHewALB3wACwd+AAsHfwALB5gACweZAAsHmgALB5wACwgXAAsIGQALCBsACwgdAAsIIAALCCEACwgiAAsIIwALCCQACwgmAAsIKAALCCkACwgqAAsILAALCC0ACwioAAsIqgALCKwACwiuAAsIsQALCLIACwizAAsItAALCLUACwi3AAsIuQALCLoACwi7AAsIvQALCL4ACwk5AAsJOwALCT0ACwk/AAsJQgALCUMACwlEAAsJRQALCUYACwlIAAsJSgALCUsACwlMAAsJTgALCU8ACwnKAAsJzAALCc4ACwnQAAsJ0wALCdQACwnVAAsJ1gALCdcACwnZAAsJ2wALCdwACwndAAsJ3wALCeAACwpbAAsKXQALCl8ACwphAAsKZAALCmUACwpmAAsKZwALCmgACwpqAAsKbAALCm0ACwpuAAsKcAALCnEACwq6AAsK3gALCwUACwspAAsLLAALCy4ACwswAAsLMgALCzQACws2AAsLNwALCzoACwtTAAsLcAALC3IACwt0AAsLdgALC3gACwt6AAsLfAALC34ACwubAAsLngALC6EACwukAAsLpwALC6oACwutAAsLsAALC7IACwwtAAsMLwALDDEACwwzAAsMNgALDDcACww4AAsMOQALDDoACww8AAsMPgALDD8ACwxAAAsMQgALDEMACwy+AAsMwAALDMIACwzEAAsMxwALDMgACwzJAAsMygALDMsACwzNAAsMzwALDNAACwzRAAsM0wALDNQACw1PAAsNUQALDVMACw1VAAsNWAALDVkACw1aAAsNWwALDVwACw1eAAsNYAALDWEACw1iAAsNZAALDWUACw3gAAsN4gALDeUACw3nAAsN6gALDesACw3sAAsN7QALDe4ACw3wAAsN8gALDfMACw30AAsN9gALDfcACw5yAAsOdAALDnYACw54AAsOewALDnwACw59AAsOfgALDn8ACw6BAAsOgwALDoQACw6FAAsOhwALDogACw8DAAsPBQALDwcACw8JAAsPDAALDw0ACw8OAAsPDwALDxAACw8SAAsPFAALDxUACw8WAAsPGAALDxkACw+UAAsPlgALD5gACw+aAAsPnQALD54ACw+fAAsPoAALD6EACw+jAAsPpQALD6YACw+nAAsPqQALD6oACxA9AAsQYAALEIAACxCgAAsQogALEKQACxCmAAsQqAALEKsACxCsAAsQrQALELAACxCxAAsQswALELQACxC3AAsQugALELsACxC8AAsQvwALEMAACxDFAAsQ3gALEOcACxDpAAsQ7AALEPUACxD4AAsQ+wALEP0ACxFGAAsRagALEZEACxG1AAsRuAALEboACxG8AAsRvgALEcAACxHCAAsRwwALEcYACxHfAAsSAAALEgIACxIEAAsSBgALEggACxIKAAsSDAALEg4ACxIQAAsSMQALEjQACxI3AAsSOgALEj0ACxJAAAsSQwALEkYACxJJAAsSSwALEsYACxLIAAsSygALEswACxLPAAsS0AALEtEACxLSAAsS0wALEtUACxLXAAsS2AALEtkACxLbAAsS3AALE1cACxNZAAsTWwALE10ACxNgAAsTYQALE2IACxNjAAsTZAALE2YACxNoAAsTaQALE2oACxNsAAsTbQALE+gACxPqAAsT7QALE+8ACxPyAAsT8wALE/QACxP1AAsT9gALE/gACxP6AAsT+wALE/wACxP+AAsT/wALFBgACxQZAAsUGgALFBwACxSXAAsUmQALFJsACxSdAAsUoAALFKEACxSiAAsUowALFKQACxSmAAsUqAALFKkACxSqAAsUrAALFK0ACxUoAAsVKgALFSwACxUuAAsVMQALFTIACxUzAAsVNAALFTUACxU3AAsVOQALFToACxU7AAsVPQALFT4ACxW5AAsVuwALFb0ACxW/AAsVwgALFcMACxXEAAsVxQALFcYACxXIAAsVygALFcsACxXMAAsVzgALFc8ACxZKAAsWTAALFk4ACxZQAAsWUwALFlQACxZVAAsWVgALFlcACxZZAAsWWwALFlwACxZdAAsWXwALFmAACxbbAAsW3QALFt8ACxbhAAsW5AALFuUACxbmAAsW5wALFugACxbqAAsW7AALFu0ACxbuAAsW8AALFvEACxc6AAsXXgALF4UACxepAAsXrAALF68ACxexAAsXswALF7UACxe3AAsXuAALF7sACxfUAAsX8QALF/QACxf3AAsX+gALF/0ACxgAAAsYAwALGAYACxgjAAsYJgALGCkACxgsAAsYLwALGDIACxg1AAsYOAALGDoACxi1AAsYtwALGLoACxi8AAsYvwALGMAACxjBAAsYwgALGMMACxjFAAsYyAALGMkACxjKAAsYzAALGM0ACxlIAAsZSgALGU0ACxlPAAsZUgALGVMACxlUAAsZVQALGVYACxlYAAsZWwALGVwACxldAAsZXwALGWAACxnbAAsZ3QALGeAACxniAAsZ5QALGeYACxnnAAsZ6AALGekACxnrAAsZ7gALGe8ACxnwAAsZ8gALGfMACxpuAAsacAALGnMACxp1AAsaeAALGnkACxp6AAsaewALGnwACxp+AAsagQALGoIACxqDAAsahQALGoYACxsBAAsbAwALGwUACxsHAAsbCgALGwsACxsMAAsbDQALGw4ACxsQAAsbEwALGxQACxsVAAsbFwALGxgACxuTAAsblQALG5cACxuZAAsbnAALG50ACxueAAsbnwALG6AACxuiAAsbpQALG6YACxunAAsbqQALG6oACxwlAAscJwALHCoACxwsAAscLwALHDAACxwxAAscMgALHDMACxw1AAscOAALHDkACxw6AAscPAALHD0ACxzQAAsc8wALHRMACx0zAAsdNQALHTcACx05AAsdOwALHT4ACx0/AAsdQAALHUMACx1EAAsdRgALHUcACx1JAAsdTAALHU0ACx1OAAsdUQALHVIACx1XAAsdcAALHXkACx17AAsdfQALHYYACx2JAAsdjAALHY4ACx3XAAsd+wALHiIACx5GAAseSQALHksACx5NAAseTwALHlEACx5TAAseVAALHlcACx5wAAsekQALHpMACx6VAAselwALHpkACx6bAAsenQALHp8ACx6hAAsewgALHsUACx7IAAseywALHs4ACx7RAAse1AALHtcACx7aAAse3AALH1cACx9ZAAsfWwALH10ACx9gAAsfYQALH2IACx9jAAsfZAALH2YACx9oAAsfaQALH2oACx9sAAsfbQALH+gACx/qAAsf7AALH+4ACx/xAAsf8gALH/MACx/0AAsf9QALH/cACx/5AAsf+gALH/sACx/9AAsf/gALIHkACyB7AAsgfgALIIAACyCDAAsghAALIIUACyCGAAsghwALIIkACyCLAAsgjAALII0ACyCPAAsgkAALIKkACyCqAAsgqwALIK0ACyEoAAshKgALISwACyEuAAshMQALITIACyEzAAshNAALITUACyE3AAshOQALIToACyE7AAshPQALIT4ACyG5AAshuwALIb0ACyG/AAshwgALIcMACyHEAAshxQALIcYACyHIAAshygALIcsACyHMAAshzgALIc8ACyJKAAsiTAALIk4ACyJQAAsiUwALIlQACyJVAAsiVgALIlcACyJZAAsiWwALIlwACyJdAAsiXwALImAACyLbAAsi3QALIt8ACyLhAAsi5AALIuUACyLmAAsi5wALIugACyLqAAsi7AALIu0ACyLuAAsi8AALIvEACyNsAAsjbgALI3AACyNyAAsjdQALI3YACyN3AAsjeAALI3kACyN7AAsjfQALI34ACyN/AAsjgQALI4IACyPLAAsj7wALJBYACyQ6AAskPQALJD8ACyRBAAskQwALJEUACyRHAAskSAALJEsACyRkAAskgQALJIMACySFAAskhwALJIkACySLAAskjQALJI8ACySsAAskrwALJLIACyS1AAskuAALJLsACyS+AAskwQALJMMACyU+AAslQAALJUIACyVEAAslRwALJUgACyVJAAslSgALJUsACyVNAAslTwALJVAACyVRAAslUwALJVQACyXPAAsl0QALJdMACyXVAAsl2AALJdkACyXaAAsl2wALJdwACyXeAAsl4AALJeEACyXiAAsl5AALJeUACyZgAAsmYgALJmQACyZmAAsmaQALJmoACyZrAAsmbAALJm0ACyZvAAsmcQALJnIACyZzAAsmdQALJnYACybxAAsm8wALJvYACyb4AAsm+wALJvwACyb9AAsm/gALJv8ACycBAAsnAwALJwQACycFAAsnBwALJwgACyeDAAsnhQALJ4cACyeJAAsnjAALJ40ACyeOAAsnjwALJ5AACyeSAAsnlAALJ5UACyeWAAsnmAALJ5kACygUAAsoFgALKBgACygaAAsoHQALKB4ACygfAAsoIAALKCEACygjAAsoJQALKCYACygnAAsoKQALKCoACyilAAsopwALKKkACyirAAsorgALKK8ACyiwAAsosQALKLIACyi0AAsotgALKLcACyi4AAsougALKLsACylOAAspcQALKZEACymxAAspswALKbUACym3AAspuQALKbwACym9AAspvgALKcEACynCAAspxAALKcUACynHAAspygALKcsACynMAAspzwALKdAACynVAAsp7gALKfcACyn5AAsp+wALKgQACyoHAAsqCgALKgwACypVAAsqeQALKqAACyrEAAsqxwALKskACyrLAAsqzQALKs8ACyrRAAsq0gALKtUACyruAAsrDwALKxEACysTAAsrFQALKxcACysZAAsrGwALKx0ACysfAAsrQAALK0MACytGAAsrSQALK0wACytPAAsrUgALK1UACytYAAsrWgALK9UACyvXAAsr2QALK9sACyveAAsr3wALK+AACyvhAAsr4gALK+QACyvmAAsr5wALK+gACyvqAAsr6wALLGYACyxoAAssagALLGwACyxvAAsscAALLHEACyxyAAsscwALLHUACyx3AAsseAALLHkACyx7AAssfAALLPcACyz5AAss/AALLP4ACy0BAAstAgALLQMACy0EAAstBQALLQcACy0JAAstCgALLQsACy0NAAstDgALLScACy0oAAstKQALLSsACy2mAAstqAALLaoACy2sAAstrwALLbAACy2xAAstsgALLbMACy21AAsttwALLbgACy25AAstuwALLbwACy43AAsuOQALLjsACy49AAsuQAALLkEACy5CAAsuQwALLkQACy5GAAsuSAALLkkACy5KAAsuTAALLk0ACy7IAAsuygALLswACy7OAAsu0QALLtIACy7TAAsu1AALLtUACy7XAAsu2QALLtoACy7bAAsu3QALLt4ACy9ZAAsvWwALL10ACy9fAAsvYgALL2MACy9kAAsvZQALL2YACy9oAAsvagALL2sACy9sAAsvbgALL28ACy/qAAsv7AALL+4ACy/wAAsv8wALL/QACy/1AAsv9gALL/cACy/5AAsv+wALL/wACy/9AAsv/wALMAAACzBJAAswbQALMJQACzC4AAswuwALML0ACzC/AAswwQALMMMACzDFAAswxgALMMkACzDiAAsw/wALMQEACzEDAAsxBQALMQcACzEJAAsxCwALMQ0ACzEqAAsxLQALMTAACzEzAAsxNgALMTkACzE8AAsxPwALMUEACzG8AAsxvgALMcAACzHCAAsxxQALMcYACzHHAAsxyAALMckACzHLAAsxzQALMc4ACzHPAAsx0QALMdIACzJNAAsyTwALMlEACzJTAAsyVgALMlcACzJYAAsyWQALMloACzJcAAsyXgALMl8ACzJgAAsyYgALMmMACzLeAAsy4AALMuIACzLkAAsy5wALMugACzLpAAsy6gALMusACzLtAAsy7wALMvAACzLxAAsy8wALMvQACzNvAAszcQALM3MACzN1AAszeAALM3kACzN6AAszewALM3wACzN+AAszgAALM4EACzOCAAszhAALM4UACzQAAAs0AgALNAQACzQGAAs0CQALNAoACzQLAAs0DAALNA0ACzQPAAs0EQALNBIACzQTAAs0FQALNBYACzSRAAs0kwALNJUACzSXAAs0mgALNJsACzScAAs0nQALNJ4ACzSgAAs0ogALNKMACzSkAAs0pgALNKcACzUiAAs1JAALNSYACzUoAAs1KwALNSwACzUtAAs1LgALNS8ACzUxAAs1MwALNTQACzU1AAs1NwALNTgACzXLAAs17gALNg4ACzYuAAs2MAALNjIACzY0AAs2NgALNjkACzY6AAs2OwALNj4ACzY/AAs2QQALNkIACzZEAAs2RwALNkgACzZJAAs2TAALNk0ACzZSAAs2awALNnQACzZ2AAs2eAALNoEACzaEAAs2hwALNokACzbSAAs29gALNx0ACzdBAAs3RAALN0YACzdIAAs3SgALN0wACzdOAAs3TwALN1IACzdrAAs3jAALN44ACzeQAAs3kgALN5QACzeWAAs3mAALN5oACzecAAs3vQALN8AACzfDAAs3xgALN8kACzfMAAs3zwALN9IACzfVAAs31wALOFIACzhUAAs4VgALOFgACzhbAAs4XAALOF0ACzheAAs4XwALOGEACzhjAAs4ZAALOGUACzhnAAs4aAALOOMACzjlAAs45wALOOkACzjsAAs47QALOO4ACzjvAAs48AALOPIACzj0AAs49QALOPYACzj4AAs4+QALOXQACzl2AAs5eQALOXsACzl+AAs5fwALOYAACzmBAAs5ggALOYQACzmGAAs5hwALOYgACzmKAAs5iwALOaQACzmlAAs5pgALOagACzojAAs6JQALOicACzopAAs6LAALOi0ACzouAAs6LwALOjAACzoyAAs6NAALOjUACzo2AAs6OAALOjkACzq0AAs6tgALOrgACzq6AAs6vQALOr4ACzq/AAs6wAALOsEACzrDAAs6xQALOsYACzrHAAs6yQALOsoACztFAAs7RwALO0kACztLAAs7TgALO08ACztQAAs7UQALO1IACztUAAs7VgALO1cACztYAAs7WgALO1sACzvWAAs72AALO9oACzvcAAs73wALO+AACzvhAAs74gALO+MACzvlAAs75wALO+gACzvpAAs76wALO+wACzxnAAs8aQALPGsACzxtAAs8cAALPHEACzxyAAs8cwALPHQACzx2AAs8eAALPHkACzx6AAs8fAALPH0ACzzGAAs86gALPRE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AC05PAAtOUAALTlIAC05TAAtOZAALTmUAC05nAAtO4gALTuQAC07mAAtO6AALTusAC07sAAtO7QALTu4AC07vAAtO8QALTvQAC071AAtO9gALTvgAC075AAtPdAALT3YAC094AAtPegALT30AC09+AAtPfwALT4AAC0+BAAtPgwALT4YAC0+HAAtPiAALT4oAC0+LAAtQBgALUAgAC1ALAAtQDQALUBAAC1ARAAtQEgALUBMAC1AUAAtQFgALUBkAC1AaAAtQGwALUB0AC1AeAAtQsQALUNQAC1D0AAtRFAALURYAC1EYAAtRGgALURwAC1EfAAtRIAALUSEAC1EkAAtRJQALUScAC1EoAAtRKgALUS0AC1EuAAtRLwALUTIAC1EzAAtROAALUVEAC1FaAAtRXAALUV4AC1FnAAtRagALUW0AC1FvAAtRuAALUdwAC1IDAAtSJwALUioAC1IsAAtSLgALUjAAC1IyAAtSNAALUjUAC1I4AAtSUQALUnIAC1J0AAtSdgALUngAC1J6AAtSfAALUn4AC1KAAAtSggALUqMAC1KmAAtSqQALUqwAC1KvAAtSsgALUrUAC1K4AAtSuwALUr0AC1M4AAtTOgALUzwAC1M+AAtTQQALU0IAC1NDAAtTRAALU0UAC1NHAAtTSQALU0oAC1NLAAtTTQALU04AC1PJAAtTywALU80AC1PPAAtT0gALU9MAC1PUAAtT1QALU9YAC1PYAAtT2gALU9sAC1PcAAtT3gALU98AC1RaAAtUXAALVF8AC1RhAAtUZAALVGUAC1RmAAtUZwALVGgAC1RqAAtUbAALVG0AC1RuAAtUcAALVHEAC1SKAAtUiwALVIwAC1SOAAtVCQALVQsAC1UNAAtVDwALVRIAC1UTAAtVFAALVRUAC1UWAAtVGAALVRoAC1UbAAtVHAALVR4AC1UfAAtVmgALVZwAC1WeAAtVoAALVaMAC1WkAAtVpQALVaYAC1WnAAtVqQALVasAC1WsAAtVrQALVa8AC1WwAAtWKwALVi0AC1YvAAtWMQALVjQAC1Y1AAtWNgALVjcAC1Y4AAtWOgALVjwAC1Y9AAtWPgALVkAAC1ZBAAtWvAALVr4AC1bAAAtWwgALVsUAC1bGAAtWxwALVsgAC1bJAAtWywALVs0AC1bOAAtWzwALVtEAC1bSAAtXTQALV08AC1dRAAtXUwALV1YAC1dXAAtXWAALV1kAC1daAAtXXAALV14AC1dfAAtXYAALV2IAC1djAAtXrAALV9AAC1f3AAtYGwALWB4AC1ggAAtYIgALWCQAC1gmAAtYKAALWCkAC1gsAAtYRQALWGIAC1hkAAtYZgALWGgAC1hqAAtYbAALWG4AC1hwAAtYjQALWJAAC1iTAAtYlgALWJkAC1icAAtYnwALWKIAC1ikAAtZHwALWSEAC1kkAAtZJgALWSkAC1kqAAtZKwALWSwAC1ktAAtZLwALWTEAC1kyAAtZMwALWTUAC1k2AAtZsQALWbMAC1m1AAtZtwALWboAC1m7AAtZvAALWb0AC1m+AAtZwAALWcIAC1nDAAtZxAALWcYAC1nHAAtaQgALWkQAC1pGAAtaSAALWksAC1pMAAtaTQALWk4AC1pPAAtaUQALWlMAC1pUAAtaVQALWlcAC1pYAAta0wALWtUAC1rYAAta2gALWt0AC1reAAta3wALWuAAC1rhAAta4wALWuUAC1rmAAta5wALWukAC1rqAAtbZQALW2cAC1tpAAtbawALW24AC1tvAAtbcAALW3EAC1tyAAtbdAALW3YAC1t3AAtbeAALW3oAC1t7AAtb9gALW/gAC1v6AAtb/AALW/8AC1wAAAtcAQALXAIAC1wDAAtcBQALXAcAC1wIAAtcCQALXAsAC1wMAAtchwALXIkAC1yLAAtcjQALXJAAC1yRAAtckgALXJMAC1yUAAtclgALXJgAC1yZAAtcmgALXJwAC1ydAAtdMAALXVMAC11zAAtdkwALXZUAC12XAAtdmQALXZsAC12eAAtdnwALXaAAC12jAAtdpAALXaYAC12nAAtdqQALXawAC12tAAtdrgALXbEAC12yAAtdtwALXdAAC13ZAAtd2wALXd0AC13mAAtd6QALXewAC13uAAteNwALXlsAC16CAAtepgALXqkAC16rAAterQALXq8AC16xAAteswALXrQAC163AAte0AALXvEAC17zAAte9QALXvcAC175AAte+wALXv0AC17/AAtfAQALXyIAC18lAAtfKAALXysAC18uAAtfMQALXzQAC183AAtfOgALXzwAC1+3AAtfuQALX7sAC1+9AAtfwAALX8EAC1/CAAtfwwALX8QAC1/GAAtfyAALX8kAC1/KAAtfzAALX80AC2BIAAtgSgALYEwAC2BOAAtgUQALYFIAC2BTAAtgVAALYFUAC2BXAAtgWQALYFoAC2BbAAtgXQALYF4AC2DZAAtg2wALYN4AC2DgAAtg4wALYOQAC2DlAAtg5gALYOcAC2DpAAtg6wALYOwAC2DtAAtg7wALYPAAC2EJAAthCgALYQsAC2ENAAthiAALYYoAC2GMAAthjgALYZEAC2GSAAthkwALYZQAC2GVAAthlwALYZkAC2GaAAthmwALYZ0AC2GeAAtiGQALYhsAC2IdAAtiHwALYiIAC2IjAAtiJAALYiUAC2ImAAtiKAALYioAC2IrAAtiLAALYi4AC2IvAAtiqgALYqwAC2KuAAtisAALYrMAC2K0AAtitQALYrYAC2K3AAtiuQALYrsAC2K8AAtivQALYr8AC2LAAAtjOwALYz0AC2M/AAtjQQALY0QAC2NFAAtjRgALY0cAC2NIAAtjSgALY0wAC2NNAAtjTgALY1AAC2NRAAtjzAALY84AC2PQAAtj0gALY9UAC2PWAAtj1wALY9gAC2PZAAtj2wALY90AC2PeAAtj3wALY+EAC2PiAAtkKwALZE8AC2R2AAtkmgALZJ0AC2SfAAtkoQALZKMAC2SlAAtkpwALZKgAC2SrAAtkxAALZOEAC2TjAAtk5QALZOcAC2TpAAtk6wALZO0AC2TvAAtlDAALZQ8AC2USAAtlFQALZRgAC2UbAAtlHgALZSEAC2UjAAtlngALZaAAC2WiAAtlpAALZacAC2WoAAtlqQALZaoAC2WrAAtlrQALZa8AC2WwAAtlsQALZbMAC2W0AAtmLwALZjEAC2YzAAtmNQALZjgAC2Y5AAtmOgALZjsAC2Y8AAtmPgALZkAAC2ZBAAtmQgALZkQAC2ZFAAtmwAALZsIAC2bEAAtmxgALZskAC2bKAAtmywALZswAC2bNAAtmzwALZtEAC2bSAAtm0wALZtUAC2bWAAtnUQALZ1MAC2dVAAtnVwALZ1oAC2dbAAtnXAALZ10AC2deAAtnYAALZ2IAC2djAAtnZAALZ2YAC2dnAAtn4gALZ+QAC2fmAAtn6AALZ+sAC2fsAAtn7QALZ+4AC2fvAAtn8QALZ/MAC2f0AAtn9QALZ/cAC2f4AAtocwALaHUAC2h4AAtoegALaH0AC2h+AAtofwALaIAAC2iBAAtogwALaIUAC2iGAAtohwALaIkAC2iKAAtoqQALaSQAC2kmAAtpKAALaSoAC2ktAAtpLgALaS8AC2kwAAtpMQALaTMAC2k1AAtpNgALaTcAC2k5AAtpOgALac0AC2nwAAtqEAALajAAC2oyAAtqNAALajYAC2o4AAtqOwALajwAC2o9AAtqQAALakEAC2pDAAtqRAALakYAC2pJAAtqSgALaksAC2pOAAtqTwALalQAC2ptAAtqdgALangAC2p6AAtqgwALaoYAC2qJAAtqiwALatQAC2r4AAtrHwALa0MAC2tGAAtrSAALa0oAC2tMAAtrTgALa1AAC2tRAAtrVAALa20AC2uOAAtrkAALa5IAC2uUAAtrlgALa5gAC2uaAAtrnAALa54AC2u/AAtrwgALa8UAC2vIAAtrywALa84AC2vRAAtr1AALa9cAC2vZAAtsVAALbFYAC2xYAAtsWgALbF0AC2xeAAtsXwALbGAAC2xhAAtsYwALbGUAC2xmAAtsZwALbGkAC2xqAAts5QALbOcAC2zpAAts6wALbO4AC2zvAAts8AALbPEAC2zyAAts9AALbPYAC2z3AAts+AALbPoAC2z7AAttdgALbXgAC217AAttfQALbYAAC22BAAttggALbYMAC22EAAtthgALbYgAC22JAAttigALbYwAC22NAAttpgALbacAC22oAAttqgALbiUAC24nAAtuKQALbisAC24uAAtuLwALbjAAC24xAAtuMgALbjQAC242AAtuNwALbjgAC246AAtuOwALbrYAC264AAtuugALbrwAC26/AAtuwAALbsEAC27CAAtuwwALbsUAC27HAAtuyAALbskAC27LAAtuzAALb0cAC29JAAtvSwALb00AC29QAAtvUQALb1IAC29TAAtvVAALb1YAC29YAAtvWQALb1oAC29cAAtvXQALb9gAC2/aAAtv3AALb94AC2/hAAtv4gALb+MAC2/kAAtv5QALb+cAC2/pAAtv6gALb+sAC2/tAAtv7gALcGkAC3BrAAtwbQALcG8AC3ByAAtwcwALcHQAC3B1AAtwdgALcHgAC3B6AAtwewALcHwAC3B+AAtwfwALcMgAC3DsAAtxEwALcTcAC3E6AAtxPAALcT4AC3FAAAtxQgALcUQAC3FFAAtxSAALcWEAC3F+AAtxgAALcYIAC3GEAAtxhgALcYgAC3GKAAtxjAALcakAC3GsAAtxrwALcbIAC3G1AAtxuAALcbsAC3G+AAtxwAALcjsAC3I9AAtyQAALckIAC3JFAAtyRgALckcAC3JIAAtySQALcksAC3JNAAtyTgALck8AC3JRAAtyUgALcs0AC3LPAAty0QALctMAC3LWAAty1wALctgAC3LZAAty2gALctwAC3LeAAty3wALcuAAC3LiAAty4wALc14AC3NgAAtzYgALc2QAC3NnAAtzaAALc2kAC3NqAAtzawALc20AC3NvAAtzcAALc3EAC3NzAAtzdAALc+8AC3PxAAtz9AALc/YAC3P5AAtz+gALc/sAC3P8AAtz/QALc/8AC3QBAAt0AgALdAMAC3QFAAt0BgALdIEAC3SDAAt0hQALdIcAC3SKAAt0iwALdIwAC3SNAAt0jgALdJAAC3SSAAt0kwALdJQAC3SWAAt0lwALdRIAC3UUAAt1FgALdRgAC3UbAAt1HAALdR0AC3UeAAt1HwALdSEAC3UjAAt1JAALdSUAC3UnAAt1KAALdaMAC3WlAAt1pwALdakAC3WsAAt1rQALda4AC3WvAAt1sAALdbIAC3W0AAt1tQALdbYAC3W4AAt1uQALdkwAC3ZvAAt2jwALdq8AC3axAAt2swALdrUAC3a3AAt2ugALdrsAC3a8AAt2vwALdsAAC3bCAAt2wwALdsUAC3bIAAt2yQALdsoAC3bNAAt2zgALdtMAC3bsAAt29QALdvcAC3b5AAt3AgALdwUAC3cIAAt3CgALd1MAC3d3AAt3ngALd8IAC3fFAAt3xwALd8kAC3fLAAt3zQALd88AC3fQAAt30wALd+wAC3gNAAt4DwALeBEAC3gTAAt4FQALeBcAC3gZAAt4GwALeB0AC3g+AAt4QQALeEQAC3hHAAt4SgALeE0AC3hQAAt4UwALeFYAC3hYAAt40wALeNUAC3jXAAt42QALeNwAC3jdAAt43gALeN8AC3jgAAt44gALeOQAC3jlAAt45gALeOgAC3jpAAt5ZAALeWYAC3loAAt5agALeW0AC3luAAt5bwALeXAAC3lxAAt5cwALeXUAC3l2AAt5dwALeXkAC3l6AAt59QALefcAC3n6AAt5/AALef8AC3oAAAt6AQALegIAC3oDAAt6BQALegcAC3oIAAt6CQALegsAC3oMAAt6JQALeiYAC3onAAt6KQALeqQAC3qmAAt6qAALeqoAC3qtAAt6rgALeq8AC3qwAAt6sQALerMAC3q1AAt6tgALercAC3q5AAt6ugALezUAC3s3AAt7OQALezsAC3s+AAt7PwALe0AAC3tBAAt7QgALe0QAC3tGAAt7RwALe0gAC3tKAAt7SwALe8YAC3vIAAt7ygALe8wAC3vPAAt70AALe9EAC3vSAAt70wALe9UAC3vXAAt72AALe9kAC3vbAAt73AALfFcAC3xZAAt8WwALfF0AC3xgAAt8YQALfGIAC3xjAAt8ZAALfGYAC3xoAAt8aQALfGoAC3xsAAt8bQALfOgAC3zqAAt87AALfO4AC3zxAAt88gALfPMAC3z0AAt89QALfPcAC3z5AAt8+gALfPsAC3z9AAt8/gALfUcAC31rAAt9kgALfbYAC325AAt9uwALfb0AC32/AAt9wQALfcMAC33EAAt9xwALfeAAC339AAt9/wALfgEAC34DAAt+BQALfgcAC34JAAt+CwALfigAC34rAAt+LgALfjEAC340AAt+NwALfjoAC349AAt+PwALfroAC368AAt+vwALfsEAC37EAAt+xQALfsYAC37HAAt+yAALfsoAC37MAAt+zQALfs4AC37QAAt+0QALf0wAC39OAAt/UAALf1IAC39VAAt/VgALf1cAC39YAAt/WQALf1sAC39dAAt/XgALf18AC39hAAt/YgALf90AC3/fAAt/4QALf+MAC3/mAAt/5wALf+gAC3/pAAt/6gALf+wAC3/uAAt/7wALf/AAC3/yAAt/8wALgG4AC4BwAAuAcwALgHUAC4B4AAuAeQALgHoAC4B7AAuAfAALgH4AC4CAAAuAgQALgIIAC4CEAAuAhQALgQAAC4ECAAuBBAALgQYAC4EJAAuBCgALgQsAC4EMAAuBDQALgQ8AC4ERAAuBEgALgRMAC4EVAAuBFgALgZEAC4GTAAuBlQALgZcAC4GaAAuBmwALgZwAC4GdAAuBngALgaAAC4GiAAuBowALgaQAC4GmAAuBpwALgiIAC4IkAAuCJgALgigAC4IrAAuCLAALgi0AC4IuAAuCLwALgjEAC4IzAAuCNAALgjUAC4I3AAuCOAALgkkAC4JKAAuCTAALgscAC4LJAAuCywALgs0AC4LQAAuC0QALgtIAC4LTAAuC1AALgtYAC4LZAAuC2gALgtsAC4LdAAuC3gALg1kAC4NbAAuDXQALg18AC4NiAAuDYwALg2QAC4NlAAuDZgALg2gAC4NrAAuDbAALg20AC4NvAAuDcAALg+sAC4PtAAuD8AALg/IAC4P1AAuD9gALg/cAC4P4AAuD+QALg/sAC4P+AAuD/wALhAAAC4QCAAuEAwALhJYAC4S5AAuE2QALhPkAC4T7AAuE/QALhP8AC4UBAAuFBAALhQUAC4UGAAuFCQALhQoAC4UMAAuFDQALhQ8AC4USAAuFEwALhRQAC4UXAAuFGAALhR0AC4U2AAuFPwALhUEAC4VDAAuFTAALhU8AC4VSAAuFVAALhZ0AC4XBAAuF6AALhgwAC4YPAAuGEQALhhMAC4YVAAuGFwALhhkAC4YaAAuGHQALhjYAC4ZXAAuGWQALhlsAC4ZdAAuGXwALhmEAC4ZjAAuGZQALhmcAC4aIAAuGiwALho4AC4aRAAuGlAALhpcAC4aaAAuGnQALhqAAC4aiAAuHHQALhx8AC4chAAuHIwALhyYAC4cnAAuHKAALhykAC4cqAAuHLAALhy4AC4cvAAuHMAALhzIAC4czAAuHrgALh7AAC4eyAAuHtAALh7cAC4e4AAuHuQALh7oAC4e7AAuHvQALh78AC4fAAAuHwQALh8MAC4fEAAuIPwALiEEAC4hEAAuIRgALiEkAC4hKAAuISwALiEwAC4hNAAuITwALiFEAC4hSAAuIUwALiFUAC4hWAAuIbwALiHAAC4hxAAuIcwALiO4AC4jwAAuI8gALiPQAC4j3AAuI+AALiPkAC4j6AAuI+wALiP0AC4j/AAuJAAALiQEAC4kDAAuJBAALiX8AC4mBAAuJgwALiYUAC4mIAAuJiQALiYoAC4mLAAuJjAALiY4AC4mQAAuJkQALiZIAC4mUAAuJlQALihAAC4oSAAuKFAALihYAC4oZAAuKGgALihsAC4ocAAuKHQALih8AC4ohAAuKIgALiiMAC4olAAuKJgALiqEAC4qjAAuKpQALiqcAC4qqAAuKqwALiqwAC4qtAAuKrgALirAAC4qyAAuKswALirQAC4q2AAuKtwALizIAC4s0AAuLNgALizgAC4s7AAuLPAALiz0AC4s+AAuLPwALi0EAC4tDAAuLRAALi0UAC4tHAAuLSAALi5EAC4u1AAuL3AALjAAAC4wDAAuMBQALjAcAC4wJAAuMCwALjA0AC4wOAAuMEQALjCoAC4xHAAuMSQALjEsAC4xNAAuMTwALjFEAC4xTAAuMVQALjHIAC4x1AAuMeAALjHsAC4x+AAuMgQALjIQAC4yHAAuMiQALjQQAC40GAAuNCAALjQoAC40NAAuNDgALjQ8AC40QAAuNEQALjRMAC40VAAuNFgALjRcAC40ZAAuNGgALjZUAC42XAAuNmQALjZsAC42eAAuNnwALjaAAC42hAAuNogALjaQAC42mAAuNpwALjagAC42qAAuNqwALjiYAC44oAAuOKgALjiwAC44vAAuOMAALjjEAC44yAAuOMwALjjUAC443AAuOOAALjjkAC447AAuOPAALjrcAC465AAuOvAALjr4AC47BAAuOwgALjsMAC47EAAuOxQALjscAC47JAAuOygALjssAC47NAAuOzgALj0kAC49LAAuPTQALj08AC49SAAuPUwALj1QAC49VAAuPVgALj1gAC49aAAuPWwALj1wAC49eAAuPXwALj9oAC4/cAAuP3gALj+AAC4/jAAuP5AALj+UAC4/mAAuP5wALj+kAC4/rAAuP7AALj+0AC4/vAAuP8AALkGsAC5BtAAuQbwALkHEAC5B0AAuQdQALkHYAC5B3AAuQeAALkHoAC5B8AAuQfQALkH4AC5CAAAuQgQALkJIAC5CTAAuQlQALkRgAC5E8AAuRYAALkYMAC5GqAAuRygALkfEAC5IYAAuSOAALklwAC5KAAAuSggALkoUAC5KHAAuSiQALkosAC5KOAAuSkQALkpMAC5KVAAuSmAALkpoAC5KcAAuSnwALkqIAC5KjAAuSqAALksEAC5LGAAuSyAALks0AC5LQAAuS0gALkxsAC5M/AAuTZgALk4oAC5ONAAuTjwALk5EAC5OTAAuTlQALk5cAC5OYAAuTmwALk7QAC5PZAAuT2wALk90AC5PfAAuT4QALk+MAC5PlAAuT5wALk+kAC5PrAAuUEAALlBMAC5QWAAuUGQALlBwAC5QfAAuUIgALlCUAC5QoAAuUKwALlC0AC5SoAAuUqgALlK0AC5SvAAuUsgALlLMAC5S0AAuUtQALlLYAC5S4AAuUugALlLsAC5S8AAuUvgALlL8AC5TQAAuU0QALlNMAC5VOAAuVUAALlVIAC5VUAAuVVwALlVgAC5VZAAuVWgALlVsAC5VdAAuVXwALlWAAC5VhAAuVYwALlWQAC5XfAAuV4QALleQAC5XmAAuV6QALleoAC5XrAAuV7AALle0AC5XvAAuV8QALlfIAC5XzAAuV9QALlfYAC5YHAAuWCAALlgoAC5aFAAuWhwALlokAC5aLAAuWjgALlo8AC5aQAAuWkQALlpIAC5aUAAuWlgALlpcAC5aYAAuWmgALlpsAC5cWAAuXGAALlxsAC5cdAAuXIAALlyEAC5ciAAuXIwALlyQAC5cmAAuXKAALlykAC5cqAAuXLAALly0AC5c+AAuXPwALl0EAC5e8AAuXvgALl8AAC5fCAAuXxQALl8YAC5fHAAuXyAALl8kAC5fLAAuXzQALl84AC5fPAAuX0QALl9IAC5hNAAuYTwALmFIAC5hUAAuYVwALmFgAC5hZAAuYWgALmFsAC5hdAAuYXwALmGAAC5hhAAuYYwALmGQAC5h9AAuYfgALmH8AC5iBAAuY/AALmP4AC5kAAAuZAgALmQUAC5kGAAuZBwALmQgAC5kJAAuZCwALmQ0AC5kOAAuZDwALmREAC5kSAAuZjQALmY8AC5mSAAuZlAALmZcAC5mYAAuZmQALmZoAC5mbAAuZnQALmZ8AC5mgAAuZoQALmaMAC5mkAAuZvQALmdYAC5nXAAuZ2AALmdoAC5nrAAuZ8AALmfMAC5n1AAuaLgALmjEAC5ozAAuaNgALmjkAC5o8AAuaPwALmkQAC5rnAAubCwALmy8AC5tPAAubdgALm50AC5u9AAub5AALnAgAC5wrAAucUgALnHYAC5yaAAucvgALnOUAC5zmAAuc6AALnOoAC5ztAAuc7wALnPIAC5z0AAuc9gALnPkAC5z7AAuc/QALnQAAC50DAAudBQALnQcAC50JAAudDAALnQ8AC50SAAudGwALnTQAC505AAudOwALnUAAC51DAAudRQALnY4AC52yAAud2QALnf0AC54AAAueAgALngQAC54GAAueCAALngoAC54LAAueDgALnicAC55MAAueTgALnlAAC55SAAueVAALnlYAC55YAAueWgALnlwAC55eAAuegwALnoYAC56JAAuejAALno8AC56SAAuelQALnpgAC56bAAuengALnqAAC58bAAufHQALnyAAC58iAAufJQALnyYAC58nAAufKAALnykAC58rAAufLQALny4AC58vAAufMQALnzIAC59DAAufRAALn0YAC5/BAAufwwALn8UAC5/HAAufygALn8sAC5/MAAufzQALn84AC5/QAAuf0gALn9MAC5/UAAuf1gALn9cAC6BSAAugVAALoFcAC6BZAAugXAALoF0AC6BeAAugXwALoGAAC6BiAAugZAALoGUAC6BmAAugaAALoGkAC6B6AAugewALoH0AC6D4AAug+gALoPwAC6D+AAuhAQALoQIAC6EDAAuhBAALoQUAC6EHAAuhCQALoQoAC6ELAAuhDQALoQ4AC6GJAAuhiwALoY4AC6GQAAuhkwALoZQAC6GVAAuhlgALoZcAC6GZAAuhmwALoZwAC6GdAAuhnwALoaAAC6GxAAuhsgALobQAC6IvAAuiMQALojMAC6I1AAuiOAALojkAC6I6AAuiOwALojwAC6I+AAuiQAALokEAC6JCAAuiRAALokUAC6LAAAuiwgALosUAC6LHAAuiygALossAC6LMAAuizQALos4AC6LQAAui0gALotMAC6LUAAui1gALotcAC6LwAAui8QALovIAC6L0AAujbwALo3EAC6NzAAujdQALo3gAC6N5AAujegALo3sAC6N8AAujfgALo4AAC6OBAAujggALo4QAC6OFAAukAAALpAIAC6QFAAukBwALpAoAC6QLAAukDAALpA0AC6QOAAukEAALpBIAC6QTAAukFAALpBYAC6QXAAukJgALpD8AC6RMAAukTwALpFIAC6RVAAukYgALpGUAC6RoAAukawALpG0AC6SEAAuklwALpKAAC6UzAAulVgALpXYAC6WWAAulmAALpZoAC6WcAAulngALpaEAC6WiAAulowALpaYAC6WnAAulqQALpaoAC6WsAAulrwALpbAAC6WxAAultAALpbUAC6W6AAul0wALpdwAC6XeAAul4AALpekAC6XsAAul7wALpfEAC6Y6AAumXgALpoUAC6apAAumrAALpq4AC6awAAumsgALprQAC6a2AAumtwALproAC6bTAAum9AALpvYAC6b4AAum+gALpvwAC6b+AAunAAALpwIAC6cEAAunJQALpygAC6crAAunLgALpzEAC6c0AAunNwALpzoAC6c9AAunPwALp7oAC6e8AAunvgALp8AAC6fDAAunxAALp8UAC6fGAAunxwALp8kAC6fLAAunzAALp80AC6fPAAun0AALqEsAC6hNAAuoTwALqFEAC6hUAAuoVQALqFYAC6hXAAuoWAALqFoAC6hcAAuoXQALqF4AC6hgAAuoYQALqNwAC6jeAAuo4QALqOMAC6jmAAuo5wALqOgAC6jpAAuo6gALqOwAC6juAAuo7wALqPAAC6jyAAuo8wALqQwAC6kNAAupDgALqRAAC6mLAAupjQALqY8AC6mRAAuplAALqZUAC6mWAAuplwALqZgAC6maAAupnAALqZ0AC6meAAupoAALqaEAC6ocAAuqHgALqiAAC6oiAAuqJQALqiYAC6onAAuqKAALqikAC6orAAuqLQALqi4AC6ovAAuqMQALqjIAC6qtAAuqrwALqrEAC6qzAAuqtgALqrcAC6q4AAuquQALqroAC6q8AAuqvgALqr8AC6rAAAuqwgALqsMAC6s+AAurQAALq0IAC6tEAAurRwALq0gAC6tJAAurSgALq0sAC6tNAAurTwALq1AAC6tRAAurUwALq1QAC6vPAAur0QALq9MAC6vVAAur2AALq9kAC6vaAAur2wALq9wAC6veAAur4AALq+EAC6viAAur5AALq+UAC6wuAAusUgALrHkAC6ydAAusoAALrKIAC6ykAAuspgALrKgAC6yqAAusqwALrK4AC6zHAAus5AALrOYAC6zoAAus6gALrOwAC6zuAAus8AALrPIAC60PAAutEgALrRUAC60YAAutGwALrR4AC60hAAutJAALrSYAC62hAAutowALraUAC62nAAutqgALrasAC62sAAutrQALra4AC62wAAutsgALrbMAC620AAuttgALrbcAC64yAAuuNAALrjYAC644AAuuOwALrjwAC649AAuuPgALrj8AC65BAAuuQwALrkQAC65FAAuuRwALrkgAC67DAAuuxQALrscAC67JAAuuzAALrs0AC67OAAuuzwALrtAAC67SAAuu1AALrtUAC67WAAuu2AALrtkAC69UAAuvVgALr1kAC69bAAuvXgALr18AC69gAAuvYQALr2IAC69kAAuvZgALr2cAC69oAAuvagALr2sAC6/mAAuv6AALr+oAC6/sAAuv7wALr/AAC6/xAAuv8gALr/MAC6/1AAuv9wALr/gAC6/5AAuv+wALr/wAC7B3AAuweQALsHsAC7B9AAuwgAALsIEAC7CCAAuwgwALsIQAC7CGAAuwiAALsIkAC7CKAAuwjAALsI0AC7EIAAuxCgALsQwAC7EOAAuxEQALsRIAC7ETAAuxFAALsRUAC7EXAAuxGQALsRoAC7EbAAuxHQALsR4AC7GxAAux1AALsfQAC7IUAAuyFgALshgAC7IaAAuyHAALsh8AC7IgAAuyIQALsiQAC7IlAAuyJwALsigAC7IqAAuyLQALsi4AC7IvAAuyMgALsjMAC7I4AAuyUQALsloAC7JcAAuyXgALsmcAC7JqAAuybQALsm8AC7K4AAuy3AALswMAC7MnAAuzKgALsywAC7MuAAuzMAALszIAC7M0AAuzNQALszgAC7NRAAuzcgALs3QAC7N2AAuzeAALs3oAC7N8AAuzfgALs4AAC7OCAAuzowALs6YAC7OpAAuzrAALs68AC7OyAAuztQALs7gAC7O7AAuzvQALtDgAC7Q6AAu0PAALtD4AC7RBAAu0QgALtEMAC7REAAu0RQALtEcAC7RJAAu0SgALtEsAC7RNAAu0TgALtMkAC7TLAAu0zQALtM8AC7TSAAu00wALtNQAC7TVAAu01gALtNgAC7TaAAu02wALtNwAC7TeAAu03wALtVoAC7VcAAu1XwALtWEAC7VkAAu1ZQALtWYAC7VnAAu1aAALtWoAC7VsAAu1bQALtW4AC7VwAAu1cQALtYoAC7WLAAu1jAALtY4AC7YJAAu2CwALtg0AC7YPAAu2EgALthMAC7YUAAu2FQALthYAC7YYAAu2GgALthsAC7YcAAu2HgALth8AC7aaAAu2nAALtp4AC7agAAu2owALtqQAC7alAAu2pgALtqcAC7apAAu2qwALtqwAC7atAAu2rwALtrAAC7crAAu3LQALty8AC7cxAAu3NAALtzUAC7c2AAu3NwALtzgAC7c6AAu3PAALtz0AC7c+AAu3QAALt0EAC7e8AAu3vgALt8AAC7fCAAu3xQALt8YAC7fHAAu3yAALt8kAC7fLAAu3zQALt84AC7fPAAu30QALt9IAC7hNAAu4TwALuFEAC7hTAAu4VgALuFcAC7hYAAu4WQALuFoAC7hcAAu4XgALuF8AC7hgAAu4YgALuGMAC7isAAu40AALuPcAC7kbAAu5HgALuSAAC7kiAAu5JAALuSYAC7koAAu5KQALuSwAC7lFAAu5YgALuWQAC7lmAAu5aAALuWoAC7lsAAu5bgALuXAAC7mNAAu5kAALuZMAC7mWAAu5mQALuZwAC7mfAAu5ogALuaQAC7ofAAu6IQALuiMAC7olAAu6KAALuikAC7oqAAu6KwALuiwAC7ouAAu6MAALujEAC7oyAAu6NAALujUAC7qwAAu6sgALurQAC7q2AAu6uQALuroAC7q7AAu6vAALur0AC7q/AAu6wQALusIAC7rDAAu6xQALusYAC7tBAAu7QwALu0UAC7tHAAu7SgALu0sAC7tMAAu7TQALu04AC7tQAAu7UgALu1MAC7tUAAu7VgALu1cAC7vSAAu71AALu9cAC7vZAAu73AALu90AC7veAAu73wALu+AAC7viAAu75AALu+UAC7vmAAu76AALu+kAC7xkAAu8ZgALvGgAC7xqAAu8bQALvG4AC7xvAAu8cAALvHEAC7xzAAu8dQALvHYAC7x3AAu8eQALvHoAC7z1AAu89wALvPkAC7z7AAu8/gALvP8AC70AAAu9AQALvQIAC70EAAu9BgALvQcAC70IAAu9CgALvQsAC72GAAu9iAALvYoAC72MAAu9jwALvZAAC72RAAu9kgALvZMAC72VAAu9lwALvZgAC72ZAAu9mwALvZwAC74vAAu+UgALvnIAC76SAAu+lAALvpYAC76YAAu+mgALvp0AC76eAAu+nwALvqIAC76jAAu+pQALvqYAC76oAAu+qwALvqwAC76tAAu+sAALvrEAC762AAu+zwALvtgAC77aAAu+3AALvuUAC77oAAu+6wALvu0AC782AAu/WgALv4EAC7+lAAu/qAALv6oAC7+sAAu/rgALv7AAC7+yAAu/swALv7YAC7/PAAu/8AALv/IAC7/0AAu/9gALv/gAC7/6AAu//AALv/4AC8AAAAvAIQALwCQAC8AnAAvAKgALwC0AC8AwAAvAMwALwDYAC8A5AAvAOwALwLYAC8C4AAvAugALwLwAC8C/AAvAwAALwMEAC8DCAAvAwwALwMUAC8DHAAvAyAALwMkAC8DLAAvAzAALwUcAC8FJAAvBSwALwU0AC8FQAAvBUQALwVIAC8FTAAvBVAALwVYAC8FYAAvBWQALwVoAC8FcAAvBXQALwdgAC8HaAAvB3QALwd8AC8HiAAvB4wALweQAC8HlAAvB5gALwegAC8HqAAvB6wALwewAC8HuAAvB7wALwggAC8IJAAvCCgALwgwAC8KHAAvCiQALwosAC8KNAAvCkAALwpEAC8KSAAvCkwALwpQAC8KWAAvCmAALwpkAC8KaAAvCnAALwp0AC8MYAAvDGgALwxwAC8MeAAvDIQALwyIAC8MjAAvDJAALwyUAC8MnAAvDKQALwyoAC8MrAAvDLQALwy4AC8OpAAvDqwALw60AC8OvAAvDsgALw7MAC8O0AAvDtQALw7YAC8O4AAvDugALw7sAC8O8AAvDvgALw78AC8Q6AAvEPAALxD4AC8RAAAvEQwALxEQAC8RFAAvERgALxEcAC8RJAAvESwALxEwAC8RNAAvETwALxFAAC8TLAAvEzQALxM8AC8TRAAvE1AALxNUAC8TWAAvE1wALxNgAC8TaAAvE3AALxN0AC8TeAAvE4AALxOEAC8UqAAvFTgALxXUAC8WZAAvFnAALxZ4AC8WgAAvFogALxaQAC8WmAAvFpwALxaoAC8XDAAvF4AALxeIAC8XkAAvF5gALxegAC8XqAAvF7AALxe4AC8YLAAvGDgALxhEAC8YUAAvGFwALxhoAC8YdAAvGIAALxiIAC8adAAvGnwALxqEAC8ajAAvGpgALxqcAC8aoAAvGqQALxqoAC8asAAvGrgALxq8AC8awAAvGsgALxrMAC8cuAAvHMAALxzIAC8c0AAvHNwALxzgAC8c5AAvHOgALxzsAC8c9AAvHPwALx0AAC8dBAAvHQwALx0QAC8e/AAvHwQALx8MAC8fFAAvHyAALx8kAC8fKAAvHywALx8wAC8fOAAvH0AALx9EAC8fSAAvH1AALx9UAC8hQAAvIUgALyFUAC8hXAAvIWgALyFsAC8hcAAvIXQALyF4AC8hgAAvIYgALyGMAC8hkAAvIZgALyGcAC8jiAAvI5AALyOYAC8joAAvI6wALyOwAC8jtAAvI7gALyO8AC8jxAAvI8wALyPQAC8j1AAvI9wALyPgAC8lzAAvJdQALyXcAC8l5AAvJfAALyX0AC8l+AAvJfwALyYAAC8mCAAvJhAALyYUAC8mGAAvJiAALyYkAC8oEAAvKBgALyggAC8oKAAvKDQALyg4AC8oPAAvKEAALyhEAC8oTAAvKFQALyhYAC8oXAAvKGQALyhoAC8orAAvKLAALyi4AC8o/AAvKTAALyk8AC8pSAAvKVQALylcAC8qQAAvKkwALypUAC8qYAAvKmwALyp4AC8qhAAvLJAALy0gAC8tsAAvLjwALy7YAC8vWAAvL/QALzCQAC8xEAAvMaAALzIwAC8yOAAvMkQALzJMAC8yVAAvMlwALzJoAC8ydAAvMnwALzKEAC8ykAAvMpgALzKgAC8yrAAvMrgALzK8AC8y0AAvMzQALzNIAC8zUAAvM2QALzNwAC8zeAAvNJwALzUsAC81yAAvNlgALzZkAC82bAAvNnQALzZ8AC82hAAvNowALzaQAC82nAAvNwAALzeUAC83nAAvN6QALzesAC83tAAvN7wALzfEAC83zAAvN9QALzfcAC84cAAvOHwALziIAC84lAAvOKAALzisAC84uAAvOMQALzjQAC843AAvOOQALzrQAC862AAvOuQALzrsAC86+AAvOvwALzsAAC87BAAvOwgALzsQAC87GAAvOxwALzsgAC87KAAvOywALztwAC87dAAvO3wALz1oAC89cAAvPXgALz2AAC89jAAvPZAALz2UAC89mAAvPZwALz2kAC89rAAvPbAALz20AC89vAAvPcAALz+sAC8/tAAvP8AALz/IAC8/1AAvP9gALz/cAC8/4AAvP+QALz/sAC8/9AAvP/gALz/8AC9ABAAvQAgAL0BMAC9AUAAvQFgAL0JEAC9CTAAvQlQAL0JcAC9CaAAvQmwAL0JwAC9CdAAvQngAL0KAAC9CiAAvQowAL0KQAC9CmAAvQpwAL0SIAC9EkAAvRJwAL0SkAC9EsAAvRLQAL0S4AC9EvAAvRMAAL0TIAC9E0AAvRNQAL0TYAC9E4AAvROQAL0UoAC9FLAAvRTQAL0cgAC9HKAAvRzAAL0c4AC9HRAAvR0gAL0dMAC9HUAAvR1QAL0dcAC9HZAAvR2gAL0dsAC9HdAAvR3gAL0lkAC9JbAAvSXgAL0mAAC9JjAAvSZAAL0mUAC9JmAAvSZwAL0mkAC9JrAAvSbAAL0m0AC9JvAAvScAAL0okAC9KKAAvSiwAL0o0AC9MIAAvTCgAL0wwAC9MOAAvTEQAL0xIAC9MTAAvTFAAL0xUAC9MXAAvTGQAL0xoAC9MbAAvTHQAL0x4AC9OZAAvTmwAL054AC9OgAAvTowAL06QAC9OlAAvTpgAL06cAC9OpAAvTqwAL06wAC9OtAAvTrwAL07AAC9PGAAvT3wAL0+QAC9PnAAvT7AAL0+8AC9PxAAvT/QAL1JAAC9SzAAvU0wAL1PMAC9T1AAvU9wAL1PkAC9T7AAvU/gAL1P8AC9UAAAvVAwAL1QQAC9UGAAvVBwAL1QkAC9UMAAvVDQAL1Q4AC9URAAvVEgAL1RcAC9UwAAvVOQAL1TsAC9U9AAvVRgAL1UkAC9VMAAvVTgAL1ZcAC9W7AAvV4gAL1gYAC9YJAAvWCwAL1g0AC9YPAAvWEQAL1hMAC9YUAAvWFwAL1jAAC9ZRAAvWUwAL1lUAC9ZXAAvWWQAL1lsAC9ZdAAvWXwAL1mEAC9aCAAvWhQAL1ogAC9aLAAvWjgAL1pEAC9aUAAvWlwAL1poAC9acAAvXFwAL1xkAC9cbAAvXHQAL1yAAC9chAAvXIgAL1yMAC9ckAAvXJgAL1ygAC9cpAAvXKgAL1ywAC9ctAAvXqAAL16oAC9esAAvXrgAL17EAC9eyAAvXswAL17QAC9e1AAvXtwAL17kAC9e6AAvXuwAL170AC9e+AAvYOQAL2DsAC9g+AAvYQAAL2EMAC9hEAAvYRQAL2EYAC9hHAAvYSQAL2EsAC9hMAAvYTQAL2E8AC9hQAAvYaQAL2GoAC9hrAAvYbQAL2OgAC9jqAAvY7AAL2O4AC9jxAAvY8gAL2PMAC9j0AAvY9QAL2PcAC9j5AAvY+gAL2PsAC9j9AAvY/gAL2XkAC9l7AAvZfQAL2X8AC9mCAAvZgwAL2YQAC9mFAAvZhgAL2YgAC9mKAAvZiwAL2YwAC9mOAAvZjwAL2goAC9oMAAvaDgAL2hAAC9oTAAvaFAAL2hUAC9oWAAvaFwAL2hkAC9obAAvaHAAL2h0AC9ofAAvaIAAL2psAC9qdAAvanwAL2qEAC9qkAAvapQAL2qYAC9qnAAvaqAAL2qoAC9qsAAvarQAL2q4AC9qwAAvasQAL2ywAC9suAAvbMAAL2zIAC9s1AAvbNgAL2zcAC9s4AAvbOQAL2zsAC9s9AAvbPgAL2z8AC9tBAAvbQgAL24sAC9uvAAvb1gAL2/oAC9v9AAvb/wAL3AEAC9wDAAvcBQAL3AcAC9wIAAvcCwAL3CQAC9xBAAvcQwAL3EUAC9xHAAvcSQAL3EsAC9xNAAvcTwAL3GwAC9xvAAvccgAL3HUAC9x4AAvcewAL3H4AC9yBAAvcgwAL3P4AC90AAAvdAgAL3QQAC90HAAvdCAAL3QkAC90KAAvdCwAL3Q0AC90PAAvdEAAL3REAC90TAAvdFAAL3Y8AC92RAAvdkwAL3ZUAC92YAAvdmQAL3ZoAC92bAAvdnAAL3Z4AC92gAAvdoQAL3aIAC92kAAvdpQAL3iAAC94iAAveJAAL3iYAC94pAAveKgAL3isAC94sAAveLQAL3i8AC94xAAveMgAL3jMAC941AAveNgAL3rEAC96zAAvetgAL3rgAC967AAvevAAL3r0AC96+AAvevwAL3sEAC97DAAvexAAL3sUAC97HAAveyAAL30MAC99FAAvfRwAL30kAC99MAAvfTQAL304AC99PAAvfUAAL31IAC99UAAvfVQAL31YAC99YAAvfWQAL39QAC9/WAAvf2AAL39oAC9/dAAvf3gAL398AC9/gAAvf4QAL3+MAC9/lAAvf5gAL3+cAC9/pAAvf6gAL4GUAC+BnAAvgaQAL4GsAC+BuAAvgbwAL4HAAC+BxAAvgcgAL4HQAC+B2AAvgdwAL4HgAC+B6AAvgewAL4IwAC+CRAAvglAAL4JYAC+CbAAvg1AAL4NcAC+DZAAvg3AAL4N8AC+DiAAvg5QAL4WgAC+GMAAvhsAAL4dMAC+H6AAviGgAL4kEAC+JoAAviiAAL4qwAC+LQAAvi0gAL4tUAC+LXAAvi2QAL4tsAC+LeAAvi4QAL4uMAC+LlAAvi6AAL4uoAC+LsAAvi7wAL4vIAC+LzAAvi+AAL4xEAC+MWAAvjGAAL4x0AC+MgAAvjIgAL42sAC+OPAAvjtgAL49oAC+PdAAvj3wAL4+EAC+PjAAvj5QAL4+cAC+PoAAvj6wAL5AQAC+QpAAvkKwAL5C0AC+QvAAvkMQAL5DMAC+Q1AAvkNwAL5DkAC+Q7AAvkYAAL5GMAC+RmAAvkaQAL5GwAC+RvAAvkcgAL5HUAC+R4AAvkewAL5H0AC+T4AAvk+gAL5P0AC+T/AAvlAgAL5QMAC+UEAAvlBQAL5QYAC+UIAAvlCgAL5QsAC+UMAAvlDgAL5Q8AC+UgAAvlIQAL5SMAC+WeAAvloAAL5aIAC+WkAAvlpwAL5agAC+WpAAvlqgAL5asAC+WtAAvlrwAL5bAAC+WxAAvlswAL5bQAC+YvAAvmMQAL5jQAC+Y2AAvmOQAL5joAC+Y7AAvmPAAL5j0AC+Y/AAvmQQAL5kIAC+ZDAAvmRQAL5kYAC+ZXAAvmWAAL5loAC+bVAAvm1wAL5tkAC+bbAAvm3gAL5t8AC+bgAAvm4QAL5uIAC+bkAAvm5gAL5ucAC+boAAvm6gAL5usAC+dmAAvnaAAL52sAC+dtAAvncAAL53EAC+dyAAvncwAL53QAC+d2AAvneAAL53kAC+d6AAvnfAAL530AC+eOAAvnjwAL55EAC+gMAAvoDgAL6BAAC+gSAAvoFQAL6BYAC+gXAAvoGAAL6BkAC+gbAAvoHQAL6B4AC+gfAAvoIQAL6CIAC+idAAvonwAL6KIAC+ikAAvopwAL6KgAC+ipAAvoqgAL6KsAC+itAAvorwAL6LAAC+ixAAvoswAL6LQAC+jNAAvozgAL6M8AC+jRAAvpTAAL6U4AC+lQAAvpUgAL6VUAC+lWAAvpVwAL6VgAC+lZAAvpWwAL6V0AC+leAAvpXwAL6WEAC+liAAvp3QAL6d8AC+niAAvp5AAL6ecAC+noAAvp6QAL6eoAC+nrAAvp7QAL6e8AC+nwAAvp8QAL6fMAC+n0AAvqDAAL6iUAC+oyAAvqNQAL6jgAC+o7AAvqSAAL6ksAC+pOAAvqUQAL6lMAC+pfAAvqawAL6ngAC+sLAAvrLgAL604AC+tuAAvrcAAL63IAC+t0AAvrdgAL63kAC+t6AAvrewAL634AC+t/AAvrgQAL64IAC+uEAAvrhwAL64gAC+uJAAvrjAAL640AC+uSAAvrqwAL67QAC+u2AAvruAAL68EAC+vEAAvrxwAL68kAC+wSAAvsNgAL7F0AC+yBAAvshAAL7IYAC+yIAAvsigAL7IwAC+yOAAvsjwAL7JIAC+yrAAvszAAL7M4AC+zQAAvs0gAL7NQAC+zWAAvs2AAL7NoAC+zcAAvs/QAL7QAAC+0DAAvtBgAL7QkAC+0MAAvtDwAL7RIAC+0VAAvtFwAL7ZIAC+2UAAvtlgAL7ZgAC+2bAAvtnAAL7Z0AC+2eAAvtnwAL7aEAC+2jAAvtpAAL7aUAC+2nAAvtqAAL7iMAC+4lAAvuJwAL7ikAC+4sAAvuLQAL7i4AC+4vAAvuMAAL7jIAC+40AAvuNQAL7jYAC+44AAvuOQAL7rQAC+62AAvuuQAL7rsAC+6+AAvuvwAL7sAAC+7BAAvuwgAL7sQAC+7GAAvuxwAL7sgAC+7KAAvuywAL7uQAC+7lAAvu5gAL7ugAC+9jAAvvZQAL72cAC+9pAAvvbAAL720AC+9uAAvvbwAL73AAC+9yAAvvdAAL73UAC+92AAvveAAL73kAC+/0AAvv9gAL7/gAC+/6AAvv/QAL7/4AC+//AAvwAAAL8AEAC/ADAAvwBQAL8AYAC/AHAAvwCQAL8AoAC/CFAAvwhwAL8IkAC/CLAAvwjgAL8I8AC/CQAAvwkQAL8JIAC/CUAAvwlgAL8JcAC/CYAAvwmgAL8JsAC/EWAAvxGAAL8RoAC/EcAAvxHwAL8SAAC/EhAAvxIgAL8SMAC/ElAAvxJwAL8SgAC/EpAAvxKwAL8SwAC/GnAAvxqQAL8asAC/GtAAvxsAAL8bEAC/GyAAvxswAL8bQAC/G2AAvxuAAL8bkAC/G6AAvxvAAL8b0AC/IGAAvyKgAL8lEAC/J1AAvyeAAL8noAC/J8AAvyfgAL8oAAC/KCAAvygwAL8oYAC/KfAAvyvAAL8r4AC/LAAAvywgAL8sQAC/LGAAvyyAAL8soAC/LnAAvy6gAL8u0AC/LwAAvy8wAL8vYAC/L5AAvy/AAL8v4AC/N5AAvzewAL830AC/N/AAvzggAL84MAC/OEAAvzhQAL84YAC/OIAAvzigAL84sAC/OMAAvzjgAL848AC/QKAAv0DAAL9A4AC/QQAAv0EwAL9BQAC/QVAAv0FgAL9BcAC/QZAAv0GwAL9BwAC/QdAAv0HwAL9CAAC/SbAAv0nQAL9J8AC/ShAAv0pAAL9KUAC/SmAAv0pwAL9KgAC/SqAAv0rAAL9K0AC/SuAAv0sAAL9LEAC/UsAAv1LgAL9TEAC/UzAAv1NgAL9TcAC/U4AAv1OQAL9ToAC/U8AAv1PgAL9T8AC/VAAAv1QgAL9UMAC/W+AAv1wAAL9cIAC/XEAAv1xwAL9cgAC/XJAAv1ygAL9csAC/XNAAv1zwAL9dAAC/XRAAv10wAL9dQAC/ZPAAv2UQAL9lMAC/ZVAAv2WAAL9lkAC/ZaAAv2WwAL9lwAC/ZeAAv2YAAL9mEAC/ZiAAv2ZAAL9mUAC/bgAAv24gAL9uQAC/bmAAv26QAL9uoAC/brAAv27AAL9u0AC/bvAAv28QAL9vIAC/bzAAv29QAL9vYAC/eJAAv3rAAL98wAC/fsAAv37gAL9/AAC/fyAAv39AAL9/cAC/f4AAv3+QAL9/wAC/f9AAv3/wAL+AAAC/gCAAv4BQAL+AYAC/gHAAv4CgAL+AsAC/gQAAv4KQAL+DIAC/g0AAv4NgAL+D8AC/hCAAv4RQAL+EcAC/iQAAv4tAAL+NsAC/j/AAv5AgAL+QQAC/kGAAv5CAAL+QoAC/kMAAv5DQAL+RAAC/kpAAv5SgAL+UwAC/lOAAv5UAAL+VIAC/lUAAv5VgAL+VgAC/laAAv5ewAL+X4AC/mBAAv5hAAL+YcAC/mKAAv5jQAL+ZAAC/mTAAv5lQAL+hAAC/oSAAv6FAAL+hYAC/oZAAv6GgAL+hsAC/ocAAv6HQAL+h8AC/ohAAv6IgAL+iMAC/olAAv6JgAL+qEAC/qjAAv6pQAL+qcAC/qqAAv6qwAL+qwAC/qtAAv6rgAL+rAAC/qyAAv6swAL+rQAC/q2AAv6twAL+zIAC/s0AAv7NwAL+zkAC/s8AAv7PQAL+z4AC/s/AAv7QAAL+0IAC/tEAAv7RQAL+0YAC/tIAAv7SQAL+2IAC/tjAAv7ZAAL+2YAC/vhAAv74wAL++UAC/vnAAv76gAL++sAC/vsAAv77QAL++4AC/vwAAv78gAL+/MAC/v0AAv79gAL+/cAC/xyAAv8dAAL/HYAC/x4AAv8ewAL/HwAC/x9AAv8fgAL/H8AC/yBAAv8gwAL/IQAC/yFAAv8hwAL/IgAC/0DAAv9BQAL/QcAC/0JAAv9DAAL/Q0AC/0OAAv9DwAL/RAAC/0SAAv9FAAL/RUAC/0WAAv9GAAL/RkAC/2UAAv9lgAL/ZgAC/2aAAv9nQAL/Z4AC/2fAAv9oAAL/aEAC/2jAAv9pQAL/aYAC/2nAAv9qQAL/aoAC/4lAAv+JwAL/ikAC/4rAAv+LgAL/i8AC/4wAAv+MQAL/jIAC/40AAv+NgAL/jcAC/44AAv+OgAL/jsAC/6EAAv+qAAL/s8AC/7zAAv+9gAL/vgAC/76AAv+/AAL/v4AC/8AAAv/AQAL/wQAC/8dAAv/OgAL/zwAC/8+AAv/QAAL/0IAC/9EAAv/RgAL/0gAC/9lAAv/aAAL/2sAC/9uAAv/cQAL/3QAC/93AAv/egAL/3wAC//3AAv/+QAL//sAC//9AAwAAAAMAAEADAACAAwAAwAMAAQADAAGAAwACAAMAAkADAAKAAwADAAMAA0ADACIAAwAigAMAIwADACOAAwAkQAMAJIADACTAAwAlAAMAJUADACXAAwAmQAMAJoADACbAAwAnQAMAJ4ADAEZAAwBGwAMAR0ADAEfAAwBIgAMASMADAEkAAwBJQAMASYADAEoAAwBKgAMASsADAEsAAwBLgAMAS8ADAGqAAwBrAAMAa4ADAGwAAwBswAMAbQADAG1AAwBtgAMAbcADAG5AAwBuwAMAbwADAG9AAwBvwAMAcAADAI7AAwCPQAMAj8ADAJBAAwCRAAMAkUADAJGAAwCRwAMAkgADAJKAAwCTAAMAk0ADAJOAAwCUAAMAlEADALMAAwCzgAMAtAADALSAAwC1QAMAtYADALXAAwC2AAMAtkADALbAAwC3QAMAt4ADALfAAwC4QAMAuIADANdAAwDXwAMA2EADANjAAwDZgAMA2cADANoAAwDaQAMA2oADANsAAwDbgAMA28ADANwAAwDcgAMA3MADAQGAAwEKQAMBEkADARpAAwEawAMBG0ADARvAAwEcQAMBHQADAR1AAwEdgAMBHkADAR6AAwEfAAMBH0ADAR/AAwEggAMBIMADASEAAwEhwAMBIgADASRAAwEqgAMBLMADAS1AAwEtwAMBMAADATDAAwExgAMBMgADAURAAwFNQAMBVwADAWAAAwFgwAMBYUADAWHAAwFiQAMBYsADAWNAAwFjgAMBZEADAWqAAwFywAMBc0ADAXPAAwF0QAMBdMADAXVAAwF1wAMBdkADAXbAAwF/AAMBf8ADAYCAAwGBQAMBggADAYLAAwGDgAMBhEADAYUAAwGFgAMBpEADAaTAAwGlQAMBpcADAaaAAwGmwAMBpwADAadAAwGngAMBqAADAaiAAwGowAMBqQADAamAAwGpwAMByIADAckAAwHJgAMBygADAcrAAwHLAAMBy0ADAcuAAwHLwAMBzEADAczAAwHNAAMBzUADAc3AAwHOAAMB7MADAe1AAwHuAAMB7oADAe9AAwHvgAMB78ADAfAAAwHwQAMB8MADAfFAAwHxgAMB8cADAfJAAwHygAMB+MADAfkAAwH5QAMB+cADAhiAAwIZAAMCGYADAhoAAwIawAMCGwADAhtAAwIbgAMCG8ADAhxAAwIcwAMCHQADAh1AAwIdwAMCHgADAjzAAwI9QAMCPcADAj5AAwI/AAMCP0ADAj+AAwI/wAMCQAADAkCAAwJBAAMCQUADAkGAAwJCAAMCQkADAmEAAwJhgAMCYgADAmKAAwJjQAMCY4ADAmPAAwJkAAMCZEADAmTAAwJlQAMCZYADAmXAAwJmQAMCZoADAoVAAwKFwAMChkADAobAAwKHgAMCh8ADAogAAwKIQAMCiIADAokAAwKJgAMCicADAooAAwKKgAMCisADAqmAAwKqAAMCqoADAqsAAwKrwAMCrAADAqxAAwKsgAMCrMADAq1AAwKtwAMCrgADAq5AAwKuwAMCrwADAsFAAwLKQAMC1AADAt0AAwLdwAMC3kADAt7AAwLfQAMC38ADAuBAAwLggAMC4UADAueAAwLuwAMC70ADAu/AAwLwQAMC8MADAvFAAwLxwAMC8kADAvmAAwL6QAMC+wADAvvAAwL8gAMC/UADAv4AAwL+wAMC/0ADAx4AAwMegAMDHwADAx+AAwMgQAMDIIADAyDAAwMhAAMDIUADAyHAAwMiQAMDIoADAyLAAwMjQAMDI4ADA0JAAwNCwAMDQ0ADA0PAAwNEgAMDRMADA0UAAwNFQAMDRYADA0YAAwNGgAMDRsADA0cAAwNHgAMDR8ADA2aAAwNnAAMDZ4ADA2gAAwNowAMDaQADA2lAAwNpgAMDacADA2pAAwNqwAMDawADA2tAAwNrwAMDbAADA4rAAwOLQAMDjAADA4yAAwONQAMDjYADA43AAwOOAAMDjkADA47AAwOPQAMDj4ADA4/AAwOQQAMDkIADA69AAwOvwAMDsEADA7DAAwOxgAMDscADA7IAAwOyQAMDsoADA7MAAwOzgAMDs8ADA7QAAwO0gAMDtMADA9OAAwPUAAMD1IADA9UAAwPVwAMD1gADA9ZAAwPWgAMD1sADA9dAAwPXwAMD2AADA9hAAwPYwAMD2QADA/fAAwP4QAMD+MADA/lAAwP6AAMD+kADA/qAAwP6wAMD+wADA/uAAwP8AAMD/EADA/yAAwP9AAMD/UADBAGAAwQCwAMEA4ADBAQAAwQGQAMEJwADBDAAAwQ5AAMEQcADBEuAAwRTgAMEXUADBGcAAwRvAAMEeAADBIEAAwSBgAMEgkADBILAAwSDQAMEg8ADBISAAwSFQAMEhcADBIZAAwSHAAMEh4ADBIgAAwSIwAMEiYADBInAAwSLAAMEkUADBJKAAwSTAAMElEADBJUAAwSVgAMEp8ADBLDAAwS6gAMEw4ADBMRAAwTEwAMExUADBMXAAwTGQAMExsADBMcAAwTHwAMEzgADBNdAAwTXwAME2EADBNjAAwTZQAME2cADBNpAAwTawAME20ADBNvAAwTlAAME5cADBOaAAwTnQAME6AADBOjAAwTpgAME6kADBOsAAwTrwAME7EADBQsAAwULgAMFDEADBQzAAwUNgAMFDcADBQ4AAwUOQAMFDoADBQ8AAwUPgAMFD8ADBRAAAwUQgAMFEMADBRUAAwUVQAMFFcADBTSAAwU1AAMFNYADBTYAAwU2wAMFNwADBTdAAwU3gAMFN8ADBThAAwU4wAMFOQADBTlAAwU5wAMFOgADBVjAAwVZQAMFWgADBVqAAwVbQAMFW4ADBVvAAwVcAAMFXEADBVzAAwVdQAMFXYADBV3AAwVeQAMFXoADBWLAAwVkAAMFZMADBWVAAwVpgAMFbcADBW6AAwVvQAMFcAADBXDAAwVxQAMFeEADBXzAAwWBgAMFhIADBaNAAwWjwAMFpEADBaTAAwWlgAMFpcADBaYAAwWmQAMFpoADBacAAwWngAMFp8ADBagAAwWogAMFqMADBceAAwXIAAMFyMADBclAAwXKAAMFykADBcqAAwXKwAMFywADBcuAAwXMAAMFzEADBcyAAwXNAAMFzUADBdGAAwXRwAMF0kADBfEAAwXxgAMF8gADBfKAAwXzQAMF84ADBfPAAwX0AAMF9EADBfTAAwX1QAMF9YADBfXAAwX2QAMF9oADBhVAAwYVwAMGFoADBhcAAwYXwAMGGAADBhhAAwYYgAMGGMADBhlAAwYZwAMGGgADBhpAAwYawAMGGwADBiFAAwYhgAMGIcADBiJAAwZBAAMGQYADBkIAAwZCgAMGQ0ADBkOAAwZDwAMGRAADBkRAAwZEwAMGRUADBkWAAwZFwAMGRkADBkaAAwZlQAMGZcADBmaAAwZnAAMGZ8ADBmgAAwZoQAMGaIADBmjAAwZpQAMGacADBmoAAwZqQAMGasADBmsAAwZxAAMGd0ADBoOAAwaEQAMGhQADBoXAAwaGgAMGh0ADBogAAwaIwAMGiYADBopAAwaLAAMGi8ADBoyAAwaYwAMGmYADBppAAwabAAMGm8ADBpyAAwadQAMGngADBp7AAwafgAMGoEADBqEAAwahwAMGokADBqlAAwauQAMGtIADBrpAAwa/AAMGxQADBssAAwbSAAMG1oADBtmAAwb+QAMHBwADBw8AAwcXAAMHF4ADBxgAAwcYgAMHGQADBxnAAwcaAAMHGkADBxsAAwcbQAMHG8ADBxwAAwccgAMHHUADBx2AAwcdwAMHHoADBx7AAwcgAAMHJkADByiAAwcpAAMHKYADByvAAwcsgAMHLUADBy3AAwdAAAMHSQADB1LAAwdbwAMHXIADB10AAwddgAMHXgADB16AAwdfAAMHX0ADB2AAAwdmQAMHboADB28AAwdvgAMHcAADB3CAAwdxAAMHcYADB3IAAwdygAMHesADB3uAAwd8QAMHfQADB33AAwd+gAMHf0ADB4AAAweAwAMHgUADB6AAAweggAMHoQADB6GAAweiQAMHooADB6LAAwejAAMHo0ADB6PAAwekQAMHpIADB6TAAwelQAMHpYADB8RAAwfEwAMHxUADB8XAAwfGgAMHxsADB8cAAwfHQAMHx4ADB8gAAwfIgAMHyMADB8kAAwfJgAMHycADB+iAAwfpAAMH6cADB+pAAwfrAAMH60ADB+uAAwfrwAMH7AADB+yAAwftAAMH7UADB+2AAwfuAAMH7kADB/SAAwf0wAMH9QADB/WAAwgUQAMIFMADCBVAAwgVwAMIFoADCBbAAwgXAAMIF0ADCBeAAwgYAAMIGIADCBjAAwgZAAMIGYADCBnAAwg4gAMIOQADCDmAAwg6AAMIOsADCDsAAwg7QAMIO4ADCDvAAwg8QAMIPMADCD0AAwg9QAMIPcADCD4AAwhcwAMIXUADCF3AAwheQAMIXwADCF9AAwhfgAMIX8ADCGAAAwhggAMIYQADCGFAAwhhgAMIYgADCGJAAwiBAAMIgYADCIIAAwiCgAMIg0ADCIOAAwiDwAMIhAADCIRAAwiEwAMIhUADCIWAAwiFwAMIhkADCIaAAwilQAMIpcADCKZAAwimwAMIp4ADCKfAAwioAAMIqEADCKiAAwipAAMIqYADCKnAAwiqAAMIqoADCKrAAwi9AAMIxgADCM/AAwjYwAMI2YADCNoAAwjagAMI2wADCNuAAwjcAAMI3EADCN0AAwjjQAMI6oADCOsAAwjrgAMI7AADCOyAAwjtAAMI7YADCO4AAwj1QAMI9gADCPbAAwj3gAMI+EADCPkAAwj5wAMI+oADCPsAAwkZwAMJGkADCRrAAwkbQAMJHAADCRxAAwkcgAMJHMADCR0AAwkdgAMJHgADCR5AAwkegAMJHwADCR9AAwk+AAMJPoADCT8AAwk/gAMJQEADCUCAAwlAwAMJQQADCUFAAwlBwAMJQkADCUKAAwlCwAMJQ0ADCUOAAwliQAMJYsADCWNAAwljwAMJZIADCWTAAwllAAMJZUADCWWAAwlmAAMJZoADCWbAAwlnAAMJZ4ADCWfAAwmGgAMJhwADCYfAAwmIQAMJiQADCYlAAwmJgAMJicADCYoAAwmKgAMJiwADCYtAAwmLgAMJjAADCYxAAwmrAAMJq4ADCawAAwmsgAMJrUADCa2AAwmtwAMJrgADCa5AAwmuwAMJr0ADCa+AAwmvwAMJsEADCbCAAwnPQAMJz8ADCdBAAwnQwAMJ0YADCdHAAwnSAAMJ0kADCdKAAwnTAAMJ04ADCdPAAwnUAAMJ1IADCdTAAwnzgAMJ9AADCfSAAwn1AAMJ9cADCfYAAwn2QAMJ9oADCfbAAwn3QAMJ98ADCfgAAwn4QAMJ+MADCfkAAwodwAMKJoADCi6AAwo2gAMKNwADCjeAAwo4AAMKOIADCjlAAwo5gAMKOcADCjqAAwo6wAMKO0ADCjuAAwo8AAMKPMADCj0AAwo9QAMKPgADCj5AAwo/gAMKRcADCkgAAwpIgAMKSQADCktAAwpMAAMKTMADCk1AAwpfgAMKaIADCnJAAwp7QAMKfAADCnyAAwp9AAMKfYADCn4AAwp+gAMKfsADCn+AAwqFwAMKjgADCo6AAwqPAAMKj4ADCpAAAwqQgAMKkQADCpGAAwqSAAMKmkADCpsAAwqbwAMKnIADCp1AAwqeAAMKnsADCp+AAwqgQAMKoMADCr+AAwrAAAMKwIADCsEAAwrBwAMKwgADCsJAAwrCgAMKwsADCsNAAwrDwAMKxAADCsRAAwrEwAMKxQADCuPAAwrkQAMK5MADCuVAAwrmAAMK5kADCuaAAwrmwAMK5wADCueAAwroAAMK6EADCuiAAwrpAAMK6UADCwgAAwsIgAMLCUADCwnAAwsKgAMLCsADCwsAAwsLQAMLC4ADCwwAAwsMgAMLDMADCw0AAwsNgAMLDcADCxQAAwsUQAMLFIADCxUAAwszwAMLNEADCzTAAws1QAMLNgADCzZAAws2gAMLNsADCzcAAws3gAMLOAADCzhAAws4gAMLOQADCzlAAwtYAAMLWIADC1kAAwtZgAMLWkADC1qAAwtawAMLWwADC1tAAwtbwAMLXEADC1yAAwtcwAMLXUADC12AAwt8QAMLfMADC31AAwt9wAMLfoADC37AAwt/AAMLf0ADC3+AAwuAAAMLgIADC4DAAwuBAAMLgYADC4HAAwuggAMLoQADC6GAAwuiAAMLosADC6MAAwujQAMLo4ADC6PAAwukQAMLpMADC6UAAwulQAMLpcADC6YAAwvEwAMLxUADC8XAAwvGQAMLxwADC8dAAwvHgAMLx8ADC8gAAwvIgAMLyQADC8lAAwvJgAMLygADC8pAAwvcgAML5YADC+9AAwv4QAML+QADC/mAAwv6AAML+oADC/sAAwv7gAML+8ADC/yAAwwCwAMMCgADDAqAAwwLAAMMC4ADDAwAAwwMgAMMDQADDA2AAwwUwAMMFYADDBZAAwwXAAMMF8ADDBiAAwwZQAMMGgADDBqAAww5QAMMOcADDDpAAww6wAMMO4ADDDvAAww8AAMMPEADDDyAAww9AAMMPYADDD3AAww+AAMMPoADDD7AAwxdgAMMXgADDF6AAwxfAAMMX8ADDGAAAwxgQAMMYIADDGDAAwxhQAMMYcADDGIAAwxiQAMMYsADDGMAAwyBwAMMgkADDILAAwyDQAMMhAADDIRAAwyEgAMMhMADDIUAAwyFgAMMhgADDIZAAwyGgAMMhwADDIdAAwymAAMMpoADDKdAAwynwAMMqIADDKjAAwypAAMMqUADDKmAAwyqAAMMqoADDKrAAwyrAAMMq4ADDKvAAwzKgAMMywADDMuAAwzMAAMMzMADDM0AAwzNQAMMzYADDM3AAwzOQAMMzsADDM8AAwzPQAMMz8ADDNAAAwzuwAMM70ADDO/AAwzwQAMM8QADDPFAAwzxgAMM8cADDPIAAwzygAMM8wADDPNAAwzzgAMM9AADDPRAAw0TAAMNE4ADDRQAAw0UgAMNFUADDRWAAw0VwAMNFgADDRZAAw0WwAMNF0ADDReAAw0XwAMNGEADDRiAAw09QAMNRgADDU4AAw1WAAMNVoADDVcAAw1XgAMNWAADDVjAAw1ZAAMNWUADDVoAAw1aQAMNWsADDVsAAw1bgAMNXEADDVyAAw1cwAMNXYADDV3AAw1fAAMNZUADDWeAAw1oAAMNaIADDWrAAw1rgAMNbEADDWzAAw1/AAMNiAADDZHAAw2awAMNm4ADDZwAAw2cgAMNnQADDZ2AAw2eAAMNnkADDZ8AAw2lQAMNrYADDa4AAw2ugAMNrwADDa+AAw2wAAMNsIADDbEAAw2xgAMNucADDbqAAw27QAMNvAADDbzAAw29gAMNvkADDb8AAw2/wAMNwEADDd8AAw3fgAMN4AADDeCAAw3hQAMN4YADDeHAAw3iAAMN4kADDeLAAw3jQAMN44ADDePAAw3kQAMN5IADDgNAAw4DwAMOBEADDgTAAw4FgAMOBcADDgYAAw4GQAMOBoADDgcAAw4HgAMOB8ADDggAAw4IgAMOCMADDieAAw4oAAMOKMADDilAAw4qAAMOKkADDiqAAw4qwAMOKwADDiuAAw4sAAMOLEADDiyAAw4tAAMOLUADDjOAAw4zwAMONAADDjSAAw5TQAMOU8ADDlRAAw5UwAMOVYADDlXAAw5WAAMOVkADDlaAAw5XAAMOV4ADDlfAAw5YAAMOWIADDljAAw53gAMOeAADDniAAw55AAMOecADDnoAAw56QAMOeoADDnrAAw57QAMOe8ADDnwAAw58QAMOfMADDn0AAw6bwAMOnEADDpzAAw6dQAMOngADDp5AAw6egAMOnsADDp8AAw6fgAMOoAADDqBAAw6ggAMOoQADDqFAAw7AAAMOwIADDsEAAw7BgAMOwkADDsKAAw7CwAMOwwADDsNAAw7DwAMOxEADDsSAAw7EwAMOxUADDsWAAw7kQAMO5MADDuVAAw7lwAMO5oADDubAAw7nAAMO50ADDueAAw7oAAMO6IADDujAAw7pAAMO6YADDunAAw78AAMPBQADDw7AAw8XwAMPGIADDxkAAw8ZgAMPGgADDxqAAw8bAAMPG0ADDxwAAw8iQAMPKYADDyoAAw8qgAMPKwADDyuAAw8sAAMPLIADDy0AAw80QAMPNQADDzXAAw82gAMPN0ADDzgAAw84wAMPOYADDzoAAw9YwAMPWUADD1nAAw9aQAMPWwADD1tAAw9bgAMPW8ADD1wAAw9cgAMPXQADD11AAw9dgAMPXgADD15AAw99AAMPfYADD34AAw9+gAMPf0ADD3+AAw9/wAMPgAADD4BAAw+AwAMPgUADD4GAAw+BwAMPgkADD4KAAw+hQAMPocADD6JAAw+iwAMPo4ADD6PAAw+kAAMPpEADD6SAAw+lAAMPpY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ADFCBAAxQhAAMUIUADFCGAAxQhwAMUIgADFCKAAxQjAAMUI0ADFCOAAxQkAAMUJEADFEMAAxRDgAMURAADFESAAxRFQAMURYADFEXAAxRGAAMURkADFEbAAxRHQAMUR4ADFEfAAxRIQAMUSIADFGdAAxRnwAMUaIADFGkAAxRpwAMUagADFGpAAxRqgAMUasADFGtAAxRrwAMUbAADFGxAAxRswAMUbQADFHNAAxRzgAMUc8ADFHRAAxSTAAMUk4ADFJQAAxSUgAMUlUADFJWAAxSVwAMUlgADFJZAAxSWwAMUl0ADFJeAAxSXwAMUmEADFJiAAxS3QAMUt8ADFLhAAxS4wAMUuYADFLnAAxS6AAMUukADFLqAAxS7AAMUu4ADFLvAAxS8AAMUvIADFLzAAxTbgAMU3AADFNyAAxTdAAMU3cADFN4AAxTeQAMU3oADFN7AAxTfQAMU38ADFOAAAxTgQAMU4MADFOEAAxT/wAMVAEADFQDAAxUBQAMVAgADFQJAAxUCgAMVAsADFQMAAxUDgAMVBAADFQRAAxUEgAMVBQADFQVAAxUkAAMVJIADFSUAAxUlgAMVJkADFSaAAxUmwAMVJwADFSdAAxUnwAMVKEADFSiAAxUowAMVKUADFSmAAxU7wAMVRMADFU6AAxVXgAMVWEADFVjAAxVZQAMVWcADFVpAAxVawAMVWwADFVvAAxViAAMVaUADFWnAAxVqQAMVasADFWtAAxVrwAMVbEADFWzAAxV0AAMVdMADFXWAAxV2QAMVdwADFXfAAxV4gAMVeUADFXnAAxWYgAMVmQADFZmAAxWaAAMVmsADFZsAAxWbQAMVm4ADFZvAAxWcQAMVnMADFZ0AAxWdQAMVncADFZ4AAxW8wAMVvUADFb3AAxW+QAMVvwADFb9AAxW/gAMVv8ADFcAAAxXAgAMVwQADFcFAAxXBgAMVwgADFcJAAxXhAAMV4YADFeIAAxXigAMV40ADFeOAAxXjwAMV5AADFeRAAxXkwAMV5UADFeWAAxXlwAMV5kADFeaAAxYFQAMWBcADFgZAAxYGwAMWB4ADFgfAAxYIAAMWCEADFgiAAxYJAAMWCYADFgnAAxYKAAMWCoADFgrAAxYpgAMWKgADFiqAAxYrAAMWK8ADFiwAAxYsQAMWLIADFizAAxYtQAMWLcADFi4AAxYuQAMWLsADFi8AAxZNwAMWTkADFk7AAxZPQAMWUAADFlBAAxZQgAMWUMADFlEAAxZRgAMWUgADFlJAAxZSgAMWUwADFlNAAxZyAAMWcoADFnMAAxZzgAMWdEADFnSAAxZ0wAMWdQADFnVAAxZ1wAMWdkADFnaAAxZ2wAMWd0ADFneAAxacQAMWpQADFq0AAxa1AAMWtYADFrYAAxa2gAMWtwADFrfAAxa4AAMWuEADFrkAAxa5QAMWucADFroAAxa6gAMWu0ADFruAAxa7wAMWvIADFrzAAxa+AAMWxEADFsaAAxbHAAMWx4ADFsnAAxbKgAMWy0ADFsvAAxbeAAMW5wADFvDAAxb5wAMW+oADFvsAAxb7gAMW/AADFvyAAxb9AAMW/UADFv4AAxcEQAMXDIADFw0AAxcNgAMXDgADFw6AAxcPAAMXD4ADFxAAAxcQgAMXGMADFxmAAxcaQAMXGwADFxvAAxccgAMXHUADFx4AAxcewAMXH0ADFz4AAxc+gAMXPwADFz+AAxdAQAMXQIADF0DAAxdBAAMXQUADF0HAAxdCQAMXQoADF0LAAxdDQAMXQ4ADF2JAAxdiwAMXY0ADF2PAAxdkgAMXZMADF2UAAxdlQAMXZYADF2YAAxdmgAMXZsADF2cAAxdngAMXZ8ADF4aAAxeHAAMXh8ADF4hAAxeJAAMXiUADF4mAAxeJwAMXigADF4qAAxeLAAMXi0ADF4uAAxeMAAMXjEADF5KAAxeSwAMXkwADF5OAAxeyQAMXssADF7NAAxezwAMXtIADF7TAAxe1AAMXtUADF7WAAxe2AAMXtoADF7bAAxe3AAMXt4ADF7fAAxfWgAMX1wADF9eAAxfYAAMX2MADF9kAAxfZQAMX2YADF9nAAxfaQAMX2sADF9sAAxfbQAMX28ADF9wAAxf6wAMX+0ADF/vAAxf8QAMX/QADF/1AAxf9gAMX/cADF/4AAxf+gAMX/wADF/9AAxf/gAMYAAADGABAAxgfAAMYH4ADGCAAAxgggAMYIUADGCGAAxghwAMYIgADGCJAAxgiwAMYI0ADGCOAAxgjwAMYJEADGCSAAxhDQAMYQ8ADGERAAxhEwAMYRYADGEXAAxhGAAMYRkADGEaAAxhHAAMYR4ADGEfAAxhIAAMYSIADGEjAAxhbAAMYZAADGG3AAxh2wAMYd4ADGHgAAxh4gAMYeQADGHmAAxh6AAMYekADGHsAAxiBQAMYiIADGIkAAxiJgAMYigADGIqAAxiLAAMYi4ADGIwAAxiTQAMYlAADGJTAAxiVgAMYlkADGJcAAxiXwAMYmIADGJkAAxi3wAMYuEADGLjAAxi5QAMYugADGLpAAxi6gAMYusADGLsAAxi7gAMYvAADGLxAAxi8gAMYvQADGL1AAxjcAAMY3IADGN0AAxjdgAMY3kADGN6AAxjewAMY3wADGN9AAxjfwAMY4EADGOCAAxjgwAMY4UADGOGAAxkAQAMZAMADGQFAAxkBwAMZAoADGQLAAxkDAAMZA0ADGQOAAxkEAAMZBIADGQTAAxkFAAMZBYADGQXAAxkkgAMZJQADGSWAAxkmAAMZJsADGScAAxknQAMZJ4ADGSfAAxkoQAMZKMADGSkAAxkpQAMZKcADGSoAAxlIwAMZSUADGUnAAxlKQAMZSwADGUtAAxlLgAMZS8ADGUwAAxlMgAMZTQADGU1AAxlNgAMZTgADGU5AAxltAAMZbYADGW4AAxlugAMZb0ADGW+AAxlvwAMZcAADGXBAAxlwwAMZcUADGXGAAxlxwAMZckADGXKAAxmRQAMZkcADGZJAAxmSwAMZk4ADGZPAAxmUAAMZlEADGZSAAxmVAAMZlYADGZXAAxmWAAMZloADGZbAAxm7gAMZxEADGcxAAxnUQAMZ1MADGdVAAxnVwAMZ1kADGdcAAxnXQAMZ14ADGdhAAxnYgAMZ2QADGdlAAxnZwAMZ2oADGdrAAxnbAAMZ28ADGdwAAxndQAMZ44ADGeXAAxnmQAMZ5sADGekAAxnpwAMZ6oADGesAAxn9QAMaBkADGhAAAxoZAAMaGcADGhpAAxoawAMaG0ADGhvAAxocQAMaHIADGh1AAxojgAMaK8ADGixAAxoswAMaLUADGi3AAxouQAMaLsADGi9AAxovwAMaOAADGjjAAxo5gAMaOkADGjsAAxo7wAMaPIADGj1AAxo+AAMaPoADGl1AAxpdwAMaXkADGl7AAxpfgAMaX8ADGmAAAxpgQAMaYIADGmEAAxphgAMaYcADGmIAAxpigAMaYsADGoGAAxqCAAMagoADGoMAAxqDwAMahAADGoRAAxqEgAMahMADGoVAAxqFwAMahgADGoZAAxqGwAMahwADGqXAAxqmQAMapwADGqeAAxqoQAMaqIADGqjAAxqpAAMaqUADGqnAAxqqQAMaqoADGqrAAxqrQAMaq4ADGrHAAxqyAAMaskADGrLAAxrRgAMa0gADGtKAAxrTAAMa08ADGtQAAxrUQAMa1IADGtTAAxrVQAMa1cADGtYAAxrWQAMa1sADGtcAAxr1wAMa9kADGvbAAxr3QAMa+AADGvhAAxr4gAMa+MADGvkAAxr5gAMa+gADGvpAAxr6gAMa+wADGvtAAxsaAAMbGoADGxsAAxsbgAMbHEADGxyAAxscwAMbHQADGx1AAxsdwAMbHkADGx6AAxsewAMbH0ADGx+AAxs+QAMbPsADGz9AAxs/wAMbQIADG0DAAxtBAAMbQUADG0GAAxtCAAMbQoADG0LAAxtDAAMbQ4ADG0PAAxtigAMbYwADG2OAAxtkAAMbZMADG2UAAxtlQAMbZYADG2XAAxtmQAMbZsADG2cAAxtnQAMbZ8ADG2gAAxt6QAMbg0ADG40AAxuWAAMblsADG5dAAxuXwAMbmEADG5jAAxuZQAMbmYADG5pAAxuggAMbp8ADG6hAAxuowAMbqUADG6nAAxuqQAMbqsADG6tAAxuygAMbs0ADG7QAAxu0wAMbtYADG7ZAAxu3AAMbt8ADG7hAAxvXAAMb14ADG9gAAxvYgAMb2UADG9mAAxvZwAMb2gADG9pAAxvawAMb20ADG9uAAxvbwAMb3EADG9yAAxv7QAMb+8ADG/xAAxv8wAMb/YADG/3AAxv+AAMb/kADG/6AAxv/AAMb/4ADG//AAxwAAAMcAIADHADAAxwfgAMcIAADHCCAAxwhAAMcIcADHCIAAxwiQAMcIoADHCLAAxwjQAMcI8ADHCQAAxwkQAMcJMADHCUAAxxDwAMcREADHETAAxxFQAMcRgADHEZAAxxGgAMcRsADHEcAAxxHgAMcSAADHEhAAxxIgAMcSQADHElAAxxoAAMcaIADHGkAAxxpgAMcakADHGqAAxxqwAMcawADHGtAAxxrwAMcbEADHGyAAxxswAMcbUADHG2AAxyMQAMcjMADHI1AAxyNwAMcjoADHI7AAxyPAAMcj0ADHI+AAxyQAAMckIADHJDAAxyRAAMckYADHJHAAxywgAMcsQADHLGAAxyyAAMcssADHLMAAxyzQAMcs4ADHLPAAxy0QAMctMADHLUAAxy1QAMctcADHLYAAxzawAMc44ADHOuAAxzzgAMc9AADHPSAAxz1AAMc9YADHPZAAxz2gAMc9sADHPeAAxz3wAMc+EADHPiAAxz5AAMc+cADHPoAAxz6QAMc+wADHPtAAxz8gAMdAsADHQUAAx0FgAMdBgADHQhAAx0JAAMdCcADHQpAAx0cgAMdJYADHS9AAx04QAMdOQADHTmAAx06AAMdOoADHTsAAx07gAMdO8ADHTyAAx1CwAMdSwADHUuAAx1MAAMdTIADHU0AAx1NgAMdTgADHU6AAx1PAAMdV0ADHVgAAx1YwAMdWYADHVpAAx1bAAMdW8ADHVyAAx1dQAMdXcADHXyAAx19AAMdfYADHX4AAx1+wAMdfwADHX9AAx1/gAMdf8ADHYBAAx2AwAMdgQADHYFAAx2BwAMdggADHaDAAx2hQAMdocADHaJAAx2jAAMdo0ADHaOAAx2jwAMdpAADHaSAAx2lAAMdpUADHaWAAx2mAAMdpkADHcUAAx3FgAMdxkADHcbAAx3HgAMdx8ADHcgAAx3IQAMdyIADHckAAx3JgAMdycADHcoAAx3KgAMdysADHdEAAx3RQAMd0YADHdIAAx3wwAMd8UADHfHAAx3yQAMd8wADHfNAAx3zgAMd88ADHfQAAx30gAMd9QADHfVAAx31gAMd9gADHfZAAx4VAAMeFYADHhYAAx4WgAMeF0ADHheAAx4XwAMeGAADHhhAAx4YwAMeGUADHhmAAx4ZwAMeGkADHhqAAx45QAMeOcADHjpAAx46wAMeO4ADHjvAAx48AAMePEADHjyAAx49AAMePYADHj3AAx4+AAMePoADHj7AAx5dgAMeXgADHl6AAx5fAAMeX8ADHmAAAx5gQAMeYIADHmDAAx5hQAMeYcADHmIAAx5iQAMeYsADHmMAAx6BwAMegkADHoLAAx6DQAMehAADHoRAAx6EgAMehMADHoUAAx6FgAMehgADHoZAAx6GgAMehwADHodAAx6ZgAMeooADHqxAAx61QAMetgADHraAAx63AAMet4ADHrgAAx64gAMeuMADHrmAAx6/wAMexwADHseAAx7IAAMeyIADHskAAx7JgAMeygADHsqAAx7RwAMe0oADHtNAAx7UAAMe1MADHtWAAx7WQAMe1wADHteAAx72QAMe9sADHvdAAx73wAMe+IADHvjAAx75AAMe+UADHvmAAx76AAMe+oADHvrAAx77AAMe+4ADHvvAAx8agAMfGwADHxuAAx8cAAMfHMADHx0AAx8dQAMfHYADHx3AAx8eQAMfHsADHx8AAx8fQAMfH8ADHyAAAx8+wAMfP0ADHz/AAx9AQAMfQQADH0FAAx9BgAMfQcADH0IAAx9CgAMfQwADH0NAAx9DgAMfRAADH0RAAx9jAAMfY4ADH2RAAx9kwAMfZYADH2XAAx9mAAMfZkADH2aAAx9nAAMfZ4ADH2fAAx9oAAMfaIADH2jAAx+HgAMfiAADH4iAAx+JAAMficADH4oAAx+KQAMfioADH4rAAx+LQAMfi8ADH4wAAx+MQAMfjMADH40AAx+rwAMfrEADH6zAAx+tQAMfrgADH65AAx+ugAMfrsADH68AAx+vgAMfsAADH7BAAx+wgAMfsQADH7FAAx/QAAMf0IADH9EAAx/RgAMf0kADH9KAAx/SwAMf0wADH9NAAx/TwAMf1EADH9SAAx/UwAMf1UADH9WAAx/6QAMgAwADIAsAAyATAAMgE4ADIBQAAyAUgAMgFQADIBXAAyAWAAMgFkADIBcAAyAXQAMgF8ADIBgAAyAYwAMgGYADIBnAAyAaAAMgGsADIBsAAyAcQAMgIoADICTAAyAlQAMgJgADIChAAyApAAMgKcADICpAAyA8gAMgRYADIE9AAyBYQAMgWQADIFmAAyBaAAMgWoADIFsAAyBbgAMgW8ADIFyAAyBiwAMgawADIGuAAyBsAAMgbIADIG0AAyBtgAMgbgADIG6AAyBvAAMgd0ADIHgAAyB4wAMgeYADIHpAAyB7AAMge8ADIHyAAyB9QAMgfcADIJyAAyCdAAMgnYADIJ4AAyCewAMgnwADIJ9AAyCfgAMgn8ADIKBAAyCgwAMgoQADIKFAAyChwAMgogADIMDAAyDBQAMgwcADIMJAAyDDAAMgw0ADIMOAAyDDwAMgxAADIMSAAyDFAAMgxUADIMWAAyDGAAMgxkADIOUAAyDlgAMg5kADIObAAyDngAMg58ADIOgAAyDoQAMg6IADIOkAAyDpgAMg6cADIOoAAyDqgAMg6sADIPEAAyDxQAMg8YADIPIAAyEQwAMhEUADIRHAAyESQAMhEwADIRNAAyETgAMhE8ADIRQAAyEUgAMhFQADIRVAAyEVgAMhFgADIRZAAyE1AAMhNYADITYAAyE2gAMhN0ADITeAAyE3wAMhOAADIThAAyE4wAMhOUADITmAAyE5wAMhOkADITqAAyFZQAMhWcADIVpAAyFawAMhW4ADIVvAAyFcAAMhXEADIVyAAyFdAAMhXYADIV3AAyFeAAMhXoADIV7AAyF9gAMhfgADIX6AAyF/AAMhf8ADIYAAAyGAQAMhgIADIYDAAyGBQAMhgcADIYIAAyGCQAMhgsADIYMAAyGhwAMhokADIaLAAyGjQAMhpAADIaRAAyGkgAMhpMADIaUAAyGlgAMhpgADIaZAAyGmgAMhpwADIadAAyG5gAMhwoADIcxAAyHVQAMh1gADIdbAAyHXQAMh18ADIdhAAyHYwAMh2QADIdnAAyHgAAMh50ADIegAAyHowAMh6YADIepAAyHrAAMh68ADIeyAAyHzwAMh9IADIfVAAyH2AAMh9sADIfeAAyH4QAMh+QADIfmAAyIYQAMiGMADIhmAAyIaAAMiGsADIhsAAyIbQAMiG4ADIhvAAyIcQAMiHQADIh1AAyIdgAMiHgADIh5AAyI9AAMiPYADIj5AAyI+wAMiP4ADIj/AAyJAAAMiQEADIkCAAyJBAAMiQcADIkIAAyJCQAMiQsADIkMAAyJhwAMiYkADImMAAyJjgAMiZEADImSAAyJkwAMiZQADImVAAyJlwAMiZoADImbAAyJnAAMiZ4ADImfAAyKGgAMihwADIofAAyKIQAMiiQADIolAAyKJgAMiicADIooAAyKKgAMii0ADIouAAyKLwAMijEADIoyAAyKtQAMitkADIr9AAyLIAAMi0cADItnAAyLjgAMi7UADIvVAAyL+QAMjB0ADIwfAAyMIgAMjCQADIwmAAyMKAAMjCsADIwuAAyMMAAMjDIADIw1AAyMNwAMjDkADIw8AAyMPwAMjEAADIxJAAyMYgAMjGcADIxpAAyMbgAMjHEADIxzAAyMvAAMjOAADI0HAAyNKwAMjS4ADI0wAAyNMgAMjTQADI02AAyNOAAMjTkADI08AAyNVQAMjXoADI18AAyNfgAMjYAADI2CAAyNhAAMjYYADI2IAAyNigAMjYwADI2xAAyNtAAMjbcADI26AAyNvQAMjcAADI3DAAyNxgAMjckADI3MAAyNzgAMjkkADI5LAAyOTgAMjlAADI5TAAyOVAAMjlUADI5WAAyOVwAMjlkADI5bAAyOXAAMjl0ADI5fAAyOYAAMjnEADI5yAAyOdAAMju8ADI7xAAyO8wAMjvUADI74AAyO+QAMjvoADI77AAyO/AAMjv4ADI8AAAyPAQAMjwIADI8EAAyPBQAMj4AADI+CAAyPhQAMj4cADI+KAAyPiwAMj4wADI+NAAyPjgAMj5AADI+SAAyPkwAMj5QADI+WAAyPlwAMj6gADI+tAAyPsAAMj7IADI/DAAyP0AAMj9MADI/WAAyP2QAMj9sADI/3AAyQCQAMkBwADJCXAAyQmQAMkJsADJCdAAyQoAAMkKEADJCiAAyQowAMkKQADJCmAAyQqAAMkKkADJCqAAyQrAAMkK0ADJEoAAyRKgAMkS0ADJEvAAyRMgAMkTMADJE0AAyRNQAMkTYADJE4AAyROgAMkTsADJE8AAyRPgAMkT8ADJFQAAyRUQAMkVMADJHOAAyR0AAMkdIADJHUAAyR1wAMkdgADJHZAAyR2gAMkdsADJHdAAyR3wAMkeAADJHhAAyR4wAMkeQADJJfAAySYQAMkmQADJJmAAySaQAMkmoADJJrAAySbAAMkm0ADJJvAAyScQAMknIADJJzAAySdQAMknYADJKPAAySkAAMkpEADJKTAAyTDgAMkxAADJMSAAyTFAAMkxcADJMYAAyTGQAMkxoADJMbAAyTHQAMkx8ADJMgAAyTIQAMkyMADJMkAAyTnwAMk6EADJOkAAyTpgAMk6kADJOqAAyTqwAMk6wADJOtAAyTrwAMk7EADJOyAAyTswAMk7UADJO2AAyTyQAMk+IADJQPAAyUEgAMlBUADJQYAAyUGwAMlB4ADJQhAAyUJAAMlCcADJQqAAyULQAMlDAADJRdAAyUYAAMlGMADJRmAAyUaQAMlGwADJRvAAyUcgAMlHUADJR4AAyUewAMlH4ADJSAAAyUnAAMlK8ADJTBAAyU0wAMlNsADJT/AAyVGwAMlS4ADJXBAAyV5AAMlgQADJYkAAyWJgAMligADJYqAAyWLAAMli8ADJYwAAyWMQAMljQADJY1AAyWNwAMljgADJY6AAyWPQAMlj4ADJY/AAyWQgAMlkMADJZIAAyWYQAMlmoADJZsAAyWbgAMlncADJZ6AAyWfQAMln8ADJbIAAyW7AAMlxMADJc3AAyXOgAMlzwADJc+AAyXQAAMl0IADJdEAAyXRQAMl0gADJdhAAyXggAMl4QADJeGAAyXiAAMl4oADJeMAAyXjgAMl5AADJeSAAyXswAMl7YADJe5AAyXvAAMl78ADJfCAAyXxQAMl8gADJfLAAyXzQAMmEgADJhKAAyYTAAMmE4ADJhRAAyYUgAMmFMADJhUAAyYVQAMmFcADJhZAAyYWgAMmFsADJhdAAyYXgAMmNkADJjbAAyY3QAMmN8ADJjiAAyY4wAMmOQADJjlAAyY5gAMmOgADJjqAAyY6wAMmOwADJjuAAyY7wAMmWoADJlsAAyZbwAMmXEADJl0AAyZdQAMmXYADJl3AAyZeAAMmXoADJl8AAyZfQAMmX4ADJmAAAyZgQAMmZoADJmbAAyZnAAMmZ4ADJoZAAyaGwAMmh0ADJofAAyaIgAMmiMADJokAAyaJQAMmiYADJooAAyaKgAMmisADJosAAyaLgAMmi8ADJqqAAyarAAMmq4ADJqwAAyaswAMmrQADJq1AAyatgAMmrcADJq5AAyauwAMmrwADJq9AAyavwAMmsAADJs7AAybPQAMmz8ADJtBAAybRAAMm0UADJtGAAybRwAMm0gADJtKAAybTAAMm00ADJtOAAybUAAMm1EADJvMAAybzgAMm9AADJvSAAyb1QAMm9YADJvXAAyb2AAMm9kADJvbAAyb3QAMm94ADJvfAAyb4QAMm+IADJxdAAycXwAMnGEADJxjAAycZgAMnGcADJxoAAycaQAMnGoADJxsAAycbgAMnG8ADJxwAAyccgAMnHMADJy8AAyc4AAMnQcADJ0rAAydLgAMnTAADJ0yAAydNAAMnTYADJ04AAydOQAMnTwADJ1VAAydcgAMnXQADJ12AAydeAAMnXoADJ18AAydfgAMnYAADJ2dAAydoAAMnaMADJ2mAAydqQAMnawADJ2vAAydsgAMnbQADJ4vAAyeMQAMnjQADJ42AAyeOQAMnjoADJ47AAyePAAMnj0ADJ4/AAyeQQAMnkIADJ5DAAyeRQAMnkYADJ7BAAyewwAMnsUADJ7HAAyeygAMnssADJ7MAAyezQAMns4ADJ7QAAye0gAMntMADJ7UAAye1gAMntcADJ9SAAyfVAAMn1YADJ9YAAyfWwAMn1wADJ9dAAyfXgAMn18ADJ9hAAyfYwAMn2QADJ9lAAyfZwAMn2gADJ/jAAyf5QAMn+gADJ/qAAyf7QAMn+4ADJ/vAAyf8AAMn/EADJ/zAAyf9QAMn/YADJ/3AAyf+QAMn/oADKB1AAygdwAMoHkADKB7AAygfgAMoH8ADKCAAAyggQAMoIIADKCEAAyghgAMoIcADKCIAAygigAMoIsADKEGAAyhCAAMoQoADKEMAAyhDwAMoRAADKERAAyhEgAMoRMADKEVAAyhFwAMoRgADKEZAAyhGwAMoRwADKGXAAyhmQAMoZsADKGdAAyhoAAMoaEADKGiAAyhowAMoaQADKGmAAyhqAAMoakADKGqAAyhrAAMoa0ADKJAAAyiYwAMooMADKKjAAyipQAMoqcADKKpAAyiqwAMoq4ADKKvAAyisAAMorMADKK0AAyitgAMorcADKK5AAyivAAMor0ADKK+AAyiwQAMosIADKLLAAyi5AAMou0ADKLvAAyi8QAMovoADKL9AAyjAAAMowIADKNLAAyjbwAMo5YADKO6AAyjvQAMo78ADKPBAAyjwwAMo8UADKPHAAyjyAAMo8sADKPkAAykBQAMpAcADKQJAAykCwAMpA0ADKQPAAykEQAMpBMADKQVAAykNgAMpDkADKQ8AAykPwAMpEIADKRFAAykSAAMpEsADKROAAykUAAMpMsADKTNAAykzwAMpNEADKTUAAyk1QAMpNYADKTXAAyk2AAMpNoADKTcAAyk3QAMpN4ADKTgAAyk4QAMpVwADKVeAAylYAAMpWIADKVlAAylZgAMpWcADKVoAAylaQAMpWsADKVtAAylbgAMpW8ADKVxAAylcgAMpe0ADKXvAAyl8gAMpfQADKX3AAyl+AAMpfkADKX6AAyl+wAMpf0ADKX/AAymAAAMpgEADKYDAAymBAAMph0ADKYeAAymHwAMpiEADKacAAymngAMpqAADKaiAAympQAMpqYADKanAAymqAAMpqkADKarAAymrQAMpq4ADKavAAymsQAMprIADKctAAynLwAMpzEADKczAAynNgAMpzcADKc4AAynOQAMpzoADKc8AAynPgAMpz8ADKdAAAynQgAMp0MADKe+AAynwAAMp8IADKfEAAynxwAMp8gADKfJAAynygAMp8sADKfNAAynzwAMp9AADKfRAAyn0wAMp9QADKhPAAyoUQAMqFMADKhVAAyoWAAMqFkADKhaAAyoWwAMqFwADKheAAyoYAAMqGEADKhiAAyoZAAMqGUADKjgAAyo4gAMqOQADKjmAAyo6QAMqOoADKjrAAyo7AAMqO0ADKjvAAyo8QAMqPIADKjzAAyo9QAMqPYADKk/AAypYwAMqYoADKmuAAypsQAMqbMADKm1AAyptwAMqbkADKm7AAypvAAMqb8ADKnYAAyp9QAMqfcADKn5AAyp+wAMqf0ADKn/AAyqAQAMqgMADKogAAyqIwAMqiYADKopAAyqLAAMqi8ADKoyAAyqNQAMqjcADKqyAAyqtAAMqrYADKq4AAyquwAMqrwADKq9AAyqvgAMqr8ADKrBAAyqwwAMqsQADKrFAAyqxwAMqsgADKtDAAyrRQAMq0cADKtJAAyrTAAMq00ADKtOAAyrTwAMq1AADKtSAAyrVAAMq1UADKtWAAyrWAAMq1kADKvUAAyr1gAMq9gADKvaAAyr3QAMq94ADKvfAAyr4AAMq+EADKvjAAyr5QAMq+YADKvnAAyr6QAMq+oADKxlAAysZwAMrGkADKxrAAysbgAMrG8ADKxwAAyscQAMrHIADKx0AAysdgAMrHcADKx4AAysegAMrHsADKz2AAys+AAMrPoADKz8AAys/wAMrQAADK0BAAytAgAMrQMADK0FAAytBwAMrQgADK0JAAytCwAMrQwADK2HAAytiQAMrYsADK2NAAytkAAMrZEADK2SAAytkwAMrZQADK2WAAytmAAMrZkADK2aAAytnAAMrZ0ADK4YAAyuGgAMrhwADK4eAAyuIQAMriIADK4jAAyuJAAMriUADK4nAAyuKQAMrioADK4rAAyuLQAMri4ADK7BAAyu5AAMrwQADK8kAAyvJgAMrygADK8qAAyvLAAMry8ADK8wAAyvMQAMrzQADK81AAyvNwAMrzgADK86AAyvPQAMrz4ADK8/AAyvQgAMr0MADK9IAAyvYQAMr2oADK9sAAyvbgAMr3cADK96AAyvfQAMr38ADK/IAAyv7AAMsBMADLA3AAywOgAMsDwADLA+AAywQAAMsEIADLBEAAywRQAMsEgADLBhAAywggAMsIQADLCGAAywiAAMsIoADLCMAAywjgAMsJAADLCSAAywswAMsLYADLC5AAywvAAMsL8ADLDCAAywxQAMsMgADLDLAAywzQAMsUgADLFKAAyxTAAMsU4ADLFRAAyxUgAMsVMADLFUAAyxVQAMsVcADLFZAAyxWgAMsVsADLFdAAyxXgAMsdkADLHbAAyx3QAMsd8ADLHiAAyx4wAMseQADLHlAAyx5gAMsegADLHqAAyx6wAMsewADLHuAAyx7wAMsmoADLJsAAyybwAMsnEADLJ0AAyydQAMsnYADLJ3AAyyeAAMsnoADLJ8AAyyfQAMsn4ADLKAAAyygQAMspoADLKbAAyynAAMsp4ADLMZAAyzGwAMsx0ADLMfAAyzIgAMsyMADLMkAAyzJQAMsyYADLMoAAyzKgAMsysADLMsAAyzLgAMsy8ADLOqAAyzrAAMs64ADLOwAAyzswAMs7QADLO1AAyztgAMs7cADLO5AAyzuwAMs7wADLO9AAyzvwAMs8AADLQ7AAy0PQAMtD8ADLRBAAy0RAAMtEUADLRGAAy0RwAMtEgADLRKAAy0TAAMtE0ADLROAAy0UAAMtFEADLTMAAy0zgAMtNAADLTSAAy01QAMtNYADLTXAAy02AAMtNkADLTbAAy03QAMtN4ADLTfAAy04QAMtOIADLVdAAy1XwAMtWEADLVjAAy1ZgAMtWcADLVoAAy1aQAMtWoADLVsAAy1bgAMtW8ADLVwAAy1cgAMtXMADLW8AAy14AAMtgcADLYrAAy2LgAMtjAADLYyAAy2NAAMtjYADLY4AAy2OQAMtjwADLZVAAy2cgAMtnQADLZ2AAy2eAAMtnoADLZ8AAy2fgAMtoAADLadAAy2oAAMtqMADLamAAy2qQAMtqwADLavAAy2sgAMtrQADLcvAAy3MQAMtzMADLc1AAy3OAAMtzkADLc6AAy3OwAMtzwADLc+AAy3QAAMt0EADLdCAAy3RAAMt0UADLfAAAy3wgAMt8QADLfGAAy3yQAMt8oADLfLAAy3zAAMt80ADLfPAAy30QAMt9IADLfTAAy31QAMt9YADLhRAAy4UwAMuFUADLhXAAy4WgAMuFsADLhcAAy4XQAMuF4ADLhgAAy4YgAMuGMADLhkAAy4ZgAMuGcADLjiAAy45AAMuOcADLjpAAy47AAMuO0ADLjuAAy47wAMuPAADLjyAAy49AAMuPUADLj2AAy4+AAMuPkADLl0AAy5dgAMuXgADLl6AAy5fQAMuX4ADLl/AAy5gAAMuYEADLmDAAy5hQAMuYYADLmHAAy5iQAMuYoADLoFAAy6BwAMugkADLoLAAy6DgAMug8ADLoQAAy6EQAMuhIADLoUAAy6FgAMuhcADLoYAAy6GgAMuhsADLqWAAy6mAAMupoADLqcAAy6nwAMuqAADLqhAAy6ogAMuqMADLqlAAy6pwAMuqgADLqpAAy6qwAMuqwADLs/AAy7YgAMu4IADLuiAAy7pAAMu6YADLuoAAy7qgAMu60ADLuuAAy7rwAMu7IADLuzAAy7tQAMu7YADLu5AAy7vAAMu70ADLu+AAy7wQAMu8IADLvHAAy74AAMu+kADLvrAAy77gAMu/cADLv6AAy7/QAMu/8ADLxIAAy8bAAMvJMADLy3AAy8ugAMvLwADLy+AAy8wAAMvMIADLzEAAy8xQAMvMgADLzhAAy9AgAMvQQADL0GAAy9CAAMvQoADL0MAAy9DgAMvRAADL0SAAy9MwAMvTYADL05AAy9PAAMvT8ADL1CAAy9RQAMvUgADL1LAAy9TQAMvcgADL3KAAy9zAAMvc4ADL3RAAy90gAMvdMADL3UAAy91QAMvdcADL3ZAAy92gAMvdsADL3dAAy93gAMvlkADL5bAAy+XQAMvl8ADL5iAAy+YwAMvmQADL5lAAy+ZgAMvmgADL5qAAy+awAMvmwADL5uAAy+bwAMvuoADL7sAAy+7wAMvvEADL70AAy+9QAMvvYADL73AAy++AAMvvoADL78AAy+/QAMvv4ADL8AAAy/AQAMvxoADL8bAAy/HAAMvx4ADL+ZAAy/mwAMv50ADL+fAAy/ogAMv6MADL+kAAy/pQAMv6YADL+oAAy/qgAMv6sADL+sAAy/rgAMv68ADMAqAAzALAAMwC4ADMAwAAzAMwAMwDQADMA1AAzANgAMwDcADMA5AAzAOwAMwDwADMA9AAzAPwAMwEAADMC7AAzAvQAMwL8ADMDBAAzAxAAMwMUADMDGAAzAxwAMwMgADMDKAAzAzAAMwM0ADMDOAAzA0AAMwNEADMFMAAzBTgAMwVAADMFSAAzBVQAMwVYADMFXAAzBWAAMwVkADMFbAAzBXQAMwV4ADMFfAAzBYQAMwWIADMHdAAzB3wAMweEADMHjAAzB5gAMwecADMHoAAzB6QAMweoADMHsAAzB7gAMwe8ADMHwAAzB8gAMwfMADMI8AAzCYAAMwocADMKrAAzCrgAMwrEADMKzAAzCtQAMwrcADMK5AAzCugAMwr0ADMLWAAzC8wAMwvYADML5AAzC/AAMwv8ADMMCAAzDBQAMwwgADMMlAAzDKAAMwysADMMuAAzDMQAMwzQADMM3AAzDOgAMwzwADMO3AAzDuQAMw7wADMO+AAzDwQAMw8IADMPDAAzDxAAMw8UADMPHAAzDygAMw8sADMPMAAzDzgAMw88ADMRKAAzETAAMxE8ADMRRAAzEVAAMxFUADMRWAAzEVwAMxFgADMRaAAzEXQAMxF4ADMRfAAzEYQAMxGIADMTdAAzE3wAMxOIADMTkAAzE5wAMxOgADMTpAAzE6gAMxOsADMTtAAzE8AAMxPEADMTyAAzE9AAMxPUADMVwAAzFcgAMxXUADMV3AAzFegAMxXsADMV8AAzFfQAMxX4ADMWAAAzFgwAMxYQADMWFAAzFhwAMxYgADMYDAAzGBQAMxgcADMYJAAzGDAAMxg0ADMYOAAzGDwAMxhAADMYSAAzGFQAMxhYADMYXAAzGGQAMxhoADMaVAAzGlwAMxpkADMabAAzGngAMxp8ADMagAAzGoQAMxqIADMakAAzGpwAMxqgADMapAAzGqwAMxqwADMcnAAzHKQAMxywADMcuAAzHMQAMxzIADMczAAzHNAAMxzUADMc3AAzHOgAMxzsADMc8AAzHPgAMxz8ADMfSAAzH9QAMyBUADMg1AAzINwAMyDkADMg7AAzIPQAMyEAADMhBAAzIQgAMyEUADMhGAAzISAAMyEkADMhMAAzITwAMyFAADMhRAAzIVAAMyFUADMheAAzIdwAMyIAADMiCAAzIhQAMyI4ADMiRAAzIlAAMyJYADMjfAAzJAwAMySoADMlOAAzJUQAMyVMADMlVAAzJVwAMyVkADMlbAAzJXAAMyV8ADMl4AAzJmQAMyZsADMmdAAzJnwAMyaEADMmjAAzJpQAMyacADMmpAAzJygAMyc0ADMnQAAzJ0wAMydYADMnZAAzJ3AAMyd8ADMniAAzJ5AAMyl8ADMphAAzKYwAMymUADMpoAAzKaQAMymoADMprAAzKbAAMym4ADMpwAAzKcQAMynIADMp0AAzKdQAMyvAADMryAAzK9AAMyvYADMr5AAzK+gAMyvsADMr8AAzK/QAMyv8ADMsBAAzLAgAMywMADMsFAAzLBgAMy4EADMuDAAzLhgAMy4gADMuLAAzLjAAMy40ADMuOAAzLjwAMy5EADMuTAAzLlAAMy5UADMuXAAzLmAAMy7EADMuyAAzLswAMy7UADMwwAAzMMgAMzDQADMw2AAzMOQAMzDoADMw7AAzMPAAMzD0ADMw/AAzMQQAMzEIADMxDAAzMRQAMzEYADMzBAAzMwwAMzMUADMzHAAzMygAMzMsADMzMAAzMzQAMzM4ADMzQAAzM0gAMzNMADMzUAAzM1gAMzNcADM1SAAzNVAAMzVYADM1YAAzNWwAMzVwADM1dAAzNXgAMzV8ADM1hAAzNYwAMzWQADM1lAAzNZwAMzWgADM3jAAzN5QAMzecADM3pAAzN7AAMze0ADM3uAAzN7wAMzfAADM3yAAzN9AAMzfUADM32AAzN+AAMzfkADM50AAzOdgAMzngADM56AAzOfQAMzn4ADM5/AAzOgAAMzoEADM6DAAzOhQAMzoYADM6HAAzOiQAMzooADM7TAAzO9wAMzx4ADM9CAAzPRQAMz0gADM9KAAzPTAAMz04ADM9QAAzPUQAMz1QADM9tAAzPigAMz40ADM+QAAzPkwAMz5YADM+ZAAzPnAAMz58ADM+8AAzPvwAMz8IADM/FAAzPyAAMz8sADM/OAAzP0QAMz9MADNBOAAzQUAAM0FMADNBVAAzQWAAM0FkADNBaAAzQWwAM0FwADNBeAAzQYQAM0GIADNBjAAzQZQAM0GYADNDhAAzQ4wAM0OYADNDoAAzQ6wAM0OwADNDtAAzQ7gAM0O8ADNDxAAzQ9AAM0PUADND2AAzQ+AAM0PkADNF0AAzRdgAM0XkADNF7AAzRfgAM0X8ADNGAAAzRgQAM0YIADNGEAAzRhwAM0YgADNGJAAzRiwAM0YwADNIHAAzSCQAM0gwADNIOAAzSEQAM0hIADNITAAzSFAAM0hUADNIXAAzSGgAM0hsADNIcAAzSHgAM0h8ADNKiAAzSxgAM0uoADNMNAAzTNAAM01QADNN7AAzTogAM08IADNPmAAzUCgAM1AwADNQPAAzUEQAM1BMADNQVAAzUGAAM1BsADNQdAAzUHwAM1CIADNQkAAzUJgAM1CkADNQsAAzULQAM1DYADNRPAAzUVAAM1FYADNRbAAzUXgAM1GAADNSpAAzUzQAM1PQADNUYAAzVGwAM1R0ADNUfAAzVIQAM1SMADNUlAAzVJgAM1SkADNVCAAzVZwAM1WkADNVrAAzVbQAM1W8ADNVxAAzVcwAM1XUADNV3AAzVeQAM1Z4ADNWhAAzVpAAM1acADNWqAAzVrQAM1bAADNWzAAzVtgAM1bkADNW7AAzWNgAM1jgADNY7AAzWPQAM1kAADNZBAAzWQgAM1kMADNZEAAzWRgAM1kgADNZJAAzWSgAM1kwADNZNAAzWXgAM1l8ADNZhAAzW3AAM1t4ADNbgAAzW4gAM1uUADNbmAAzW5wAM1ugADNbpAAzW6wAM1u0ADNbuAAzW7wAM1vEADNbyAAzXbQAM128ADNdyAAzXdAAM13cADNd4AAzXeQAM13oADNd7AAzXfQAM138ADNeAAAzXgQAM14MADNeEAAzXlQAM15oADNedAAzXnwAM17AADNe1AAzXuAAM17oADNfIAAzYQwAM2EUADNhHAAzYSQAM2EwADNhNAAzYTgAM2E8ADNhQAAzYUgAM2FQADNhVAAzYVgAM2FgADNhZAAzY1AAM2NYADNjZAAzY2wAM2N4ADNjfAAzY4AAM2OEADNjiAAzY5AAM2OYADNjnAAzY6AAM2OoADNjrAAzY/AAM2P0ADNj/AAzZegAM2XwADNl+AAzZgAAM2YMADNmEAAzZhQAM2YYADNmHAAzZiQAM2YsADNmMAAzZjQAM2Y8ADNmQAAzaCwAM2g0ADNoQAAzaEgAM2hUADNoWAAzaFwAM2hgADNoZAAzaGwAM2h0ADNoeAAzaHwAM2iEADNoiAAzaOwAM2jwADNo9AAzaPwAM2roADNq8AAzavgAM2sAADNrDAAzaxAAM2sUADNrGAAzaxwAM2skADNrLAAzazAAM2s0ADNrPAAza0AAM20sADNtNAAzbUAAM21IADNtVAAzbVgAM21cADNtYAAzbWQAM21sADNtdAAzbXgAM218ADNthAAzbYgAM23wADNuVAAzbpgAM26kADNusAAzbrwAM27IADNvDAAzbxgAM28kADNvMAAzbzwAM29EADNvcAAzb6gAM3H0ADNygAAzcwAAM3OAADNziAAzc5AAM3OYADNzoAAzc6wAM3OwADNztAAzc8AAM3PEADNzzAAzc9AAM3PcADNz6AAzc+wAM3PwADNz/AAzdAAAM3QUADN0eAAzdJwAM3SkADN0sAAzdNQAM3TgADN07AAzdPQAM3YYADN2qAAzd0QAM3fUADN34AAzd+gAM3fwADN3+AAzeAAAM3gIADN4DAAzeBgAM3h8ADN5AAAzeQgAM3kQADN5GAAzeSAAM3koADN5MAAzeTgAM3lAADN5xAAzedAAM3ncADN56AAzefQAM3oAADN6DAAzehgAM3okADN6LAAzfBgAM3wgADN8KAAzfDAAM3w8ADN8QAAzfEQAM3xIADN8TAAzfFQAM3xcADN8YAAzfGQAM3xsADN8cAAzflwAM35kADN+bAAzfnQAM36AADN+hAAzfogAM36MADN+kAAzfpgAM36gADN+pAAzfqgAM36wADN+tAAzgKAAM4CoADOAtAAzgLwAM4DIADOAzAAzgNAAM4DUADOA2AAzgOAAM4DoADOA7AAzgPAAM4D4ADOA/AAzgWAAM4FkADOBaAAzgXAAM4NcADODZAAzg2wAM4N0ADODgAAzg4QAM4OIADODjAAzg5AAM4OYADODoAAzg6QAM4OoADODsAAzg7QAM4WgADOFqAAzhbAAM4W4ADOFxAAzhcgAM4XMADOF0AAzhdQAM4XcADOF5AAzhegAM4XsADOF9AAzhfgAM4fkADOH7AAzh/QAM4f8ADOICAAziAwAM4gQADOIFAAziBgAM4ggADOIKAAziCwAM4gwADOIOAAziDwAM4ooADOKMAAzijgAM4pAADOKTAAzilAAM4pUADOKWAAzilwAM4pkADOKbAAzinAAM4p0ADOKfAAzioAAM4xsADOMdAAzjHwAM4yEADOMkAAzjJQAM4yYADOMnAAzjKAAM4yoADOMsAAzjLQAM4y4ADOMwAAzjMQAM43oADOOeAAzjxQAM4+kADOPsAAzj7wAM4/EADOPzAAzj9QAM4/cADOP4AAzj+wAM5BQADOQxAAzkNAAM5DcADOQ6AAzkPQAM5EAADORDAAzkRgAM5GMADORmAAzkaQAM5GwADORvAAzkcgAM5HUADOR4AAzkegAM5PUADOT3AAzk+gAM5PwADOT/AAzlAAAM5QEADOUCAAzlAwAM5QUADOUIAAzlCQAM5QoADOUMAAzlDQAM5YgADOWKAAzljQAM5Y8ADOWSAAzlkwAM5ZQADOWVAAzllgAM5ZgADOWbAAzlnAAM5Z0ADOWfAAzloAAM5hsADOYdAAzmIAAM5iIADOYlAAzmJgAM5icADOYoAAzmKQAM5isADOYuAAzmLwAM5jAADOYyAAzmMwAM5q4ADOawAAzmswAM5rUADOa4AAzmuQAM5roADOa7AAzmvAAM5r4ADObBAAzmwgAM5sMADObFAAzmxgAM50EADOdDAAznRQAM50cADOdKAAznSwAM50wADOdNAAznTgAM51AADOdTAAznVAAM51UADOdXAAznWAAM59MADOfVAAzn1wAM59kADOfcAAzn3QAM594ADOffAAzn4AAM5+IADOflAAzn5gAM5+cADOfpAAzn6gAM6GUADOhnAAzoagAM6GwADOhvAAzocAAM6HEADOhyAAzocwAM6HUADOh4AAzoeQAM6HoADOh8AAzofQAM6RAADOkzAAzpUwAM6XMADOl1AAzpdwAM6XkADOl7AAzpfgAM6X8ADOmAAAzpgwAM6YQADOmGAAzphwAM6YkADOmMAAzpjQAM6Y4ADOmRAAzpkgAM6ZcADOmwAAzpuQAM6bsADOm9AAzpxgAM6ckADOnMAAzpzgAM6hcADOo7AAzqYgAM6oYADOqJAAzqiwAM6o0ADOqPAAzqkQAM6pMADOqUAAzqlwAM6rAADOrRAAzq0wAM6tUADOrXAAzq2QAM6tsADOrdAAzq3wAM6uEADOsCAAzrBQAM6wgADOsLAAzrDgAM6xEADOsUAAzrFwAM6xoADOscAAzrlwAM65kADOubAAzrnQAM66AADOuhAAzrogAM66MADOukAAzrpgAM66gADOupAAzrqgAM66wADOutAAzsKAAM7CoADOwsAAzsLgAM7DEADOwyAAzsMwAM7DQADOw1AAzsNwAM7DkADOw6AAzsOwAM7D0ADOw+AAzsuQAM7LsADOy+AAzswAAM7MMADOzEAAzsxQAM7MYADOzHAAzsyQAM7MsADOzMAAzszQAM7M8ADOzQAAzs6QAM7OoADOzrAAzs7QAM7WgADO1qAAztbAAM7W4ADO1xAAztcgAM7XMADO10AAztdQAM7XcADO15AAztegAM7XsADO19AAztfgAM7fkADO37AAzt/QAM7f8ADO4CAAzuAwAM7gQADO4FAAzuBgAM7ggADO4KAAzuCwAM7gwADO4OAAzuDwAM7ooADO6MAAzujgAM7pAADO6TAAzulAAM7pUADO6WAAzulwAM7pkADO6bAAzunAAM7p0ADO6fAAzuoAAM7xsADO8dAAzvHwAM7yEADO8kAAzvJQAM7yYADO8nAAzvKAAM7yoADO8sAAzvLQAM7y4ADO8wAAzvMQAM76wADO+uAAzvsAAM77IADO+1AAzvtgAM77c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ADQFkAA0BZgANAWgADQFrAA0BbAANAW0ADQFuAA0BbwANAXEADQFzAA0BdAANAXUADQF3AA0BeAANAgsADQIuAA0CTgANAm4ADQJwAA0CcgANAnQADQJ2AA0CeQANAnoADQJ7AA0CfgANAn8ADQKBAA0CggANAoQADQKHAA0CiAANAokADQKMAA0CjQANApIADQKrAA0CtAANArYADQK4AA0CwQANAsQADQLHAA0CyQANAxIADQM2AA0DXQANA4EADQOEAA0DhgANA4gADQOKAA0DjAANA44ADQOPAA0DkgANA6sADQPMAA0DzgANA9AADQPSAA0D1AANA9YADQPYAA0D2gANA9wADQP9AA0EAAANBAMADQQGAA0ECQANBAwADQQPAA0EEgANBBUADQQXAA0EkgANBJQADQSWAA0EmAANBJsADQScAA0EnQANBJ4ADQSfAA0EoQANBKMADQSkAA0EpQANBKcADQSoAA0FIwANBSUADQUnAA0FKQANBSwADQUtAA0FLgANBS8ADQUwAA0FMgANBTQADQU1AA0FNgANBTgADQU5AA0FtAANBbYADQW5AA0FuwANBb4ADQW/AA0FwAANBcEADQXCAA0FxAANBcYADQXHAA0FyAANBcoADQXLAA0F5AANBeUADQXmAA0F6AANBmMADQZlAA0GZwANBmkADQZsAA0GbQANBm4ADQZvAA0GcAANBnIADQZ0AA0GdQANBnYADQZ4AA0GeQANBvQADQb2AA0G+AANBvoADQb9AA0G/gANBv8ADQcAAA0HAQANBwMADQcFAA0HBgANBwcADQcJAA0HCgANB4UADQeHAA0HiQANB4sADQeOAA0HjwANB5AADQeRAA0HkgANB5QADQeWAA0HlwANB5gADQeaAA0HmwANCBYADQgYAA0IGgANCBwADQgfAA0IIAANCCEADQgiAA0IIwANCCUADQgnAA0IKAANCCkADQgrAA0ILAANCKcADQipAA0IqwANCK0ADQiwAA0IsQANCLIADQizAA0ItAANCLYADQi4AA0IuQANCLoADQi8AA0IvQANCQYADQkqAA0JUQANCXUADQl4AA0JegANCXwADQl+AA0JgAANCYIADQmDAA0JhgANCZ8ADQm8AA0JvgANCcAADQnCAA0JxAANCcYADQnIAA0JygANCecADQnqAA0J7QANCfAADQnzAA0J9gANCfkADQn8AA0J/gANCnkADQp7AA0KfQANCn8ADQqCAA0KgwANCoQADQqFAA0KhgANCogADQqKAA0KiwANCowADQqOAA0KjwANCwoADQsMAA0LDgANCxAADQsTAA0LFAANCxUADQsWAA0LFwANCxkADQsbAA0LHAANCx0ADQsfAA0LIAANC5sADQudAA0LnwANC6EADQukAA0LpQANC6YADQunAA0LqAANC6oADQusAA0LrQANC64ADQuwAA0LsQANDCwADQwuAA0MMQANDDMADQw2AA0MNwANDDgADQw5AA0MOgANDDwADQw+AA0MPwANDEAADQxCAA0MQwANDL4ADQzAAA0MwgANDMQADQzHAA0MyAANDMkADQzKAA0MywANDM0ADQzPAA0M0AANDNEADQzTAA0M1AANDU8ADQ1RAA0NUwANDVUADQ1YAA0NWQANDVoADQ1bAA0NXAANDV4ADQ1gAA0NYQANDWIADQ1kAA0NZQANDeAADQ3iAA0N5AANDeYADQ3pAA0N6gANDesADQ3sAA0N7QANDe8ADQ3xAA0N8gANDfMADQ31AA0N9gANDgcADQ4IAA0OCgANDoUADQ6HAA0OiQANDosADQ6OAA0OjwANDpAADQ6RAA0OkgANDpQADQ6XAA0OmAANDpkADQ6bAA0OnAANDxcADQ8ZAA0PGwANDx0ADQ8gAA0PIQANDyIADQ8jAA0PJAANDyYADQ8pAA0PKgANDysADQ8tAA0PLgAND6kADQ+rAA0PrgAND7AADQ+zAA0PtAAND7UADQ+2AA0PtwAND7kADQ+8AA0PvQAND74ADQ/AAA0PwQANEFQADRB3AA0QlwANELcADRC5AA0QuwANEL0ADRC/AA0QwgANEMMADRDEAA0QxwANEMgADRDKAA0QywANEM4ADRDRAA0Q0gANENMADRDWAA0Q1wANENwADRD1AA0Q/gANEQAADREDAA0RDAANEQ8ADRESAA0RFAANEV0ADRGBAA0RqAANEcwADRHPAA0R0QANEdMADRHVAA0R1wANEdkADRHaAA0R3QANEfYADRIXAA0SGQANEhsADRIdAA0SHwANEiEADRIjAA0SJQANEicADRJIAA0SSwANEk4ADRJRAA0SVAANElcADRJaAA0SXQANEmAADRJiAA0S3QANEt8ADRLhAA0S4wANEuYADRLnAA0S6AANEukADRLqAA0S7AANEu4ADRLvAA0S8AANEvIADRLzAA0TbgANE3AADRNyAA0TdAANE3cADRN4AA0TeQANE3oADRN7AA0TfQANE38ADROAAA0TgQANE4MADROEAA0T/wANFAEADRQEAA0UBgANFAkADRQKAA0UCwANFAwADRQNAA0UDwANFBEADRQSAA0UEwANFBUADRQWAA0ULwANFDAADRQxAA0UMwANFK4ADRSwAA0UsgANFLQADRS3AA0UuAANFLkADRS6AA0UuwANFL0ADRS/AA0UwAANFMEADRTDAA0UxAANFT8ADRVBAA0VQwANFUUADRVIAA0VSQANFUoADRVLAA0VTAANFU4ADRVQAA0VUQANFVIADRVUAA0VVQANFdAADRXSAA0V1AANFdYADRXZAA0V2gANFdsADRXcAA0V3QANFd8ADRXhAA0V4gANFeMADRXlAA0V5gANFmEADRZjAA0WZQANFmcADRZqAA0WawANFmwADRZtAA0WbgANFnAADRZyAA0WcwANFnQADRZ2AA0WdwANFvIADRb0AA0W9gANFvgADRb7AA0W/AANFv0ADRb+AA0W/wANFwEADRcDAA0XBAANFwUADRcHAA0XCAANF1EADRd1AA0XnAANF8AADRfDAA0XxgANF8gADRfKAA0XzAANF84ADRfPAA0X0gANF+sADRgIAA0YCwANGA4ADRgRAA0YFAANGBcADRgaAA0YHQANGDoADRg9AA0YQAANGEMADRhGAA0YSQANGEwADRhPAA0YUQANGMwADRjOAA0Y0QANGNMADRjWAA0Y1wANGNgADRjZAA0Y2gANGNwADRjfAA0Y4AANGOEADRjjAA0Y5AANGV8ADRlhAA0ZZAANGWYADRlpAA0ZagANGWsADRlsAA0ZbQANGW8ADRlyAA0ZcwANGXQADRl2AA0ZdwANGfIADRn0AA0Z9wANGfkADRn8AA0Z/QANGf4ADRn/AA0aAAANGgIADRoFAA0aBgANGgcADRoJAA0aCgANGoUADRqHAA0aigANGowADRqPAA0akAANGpEADRqSAA0akwANGpUADRqYAA0amQANGpoADRqcAA0anQANGyAADRtEAA0baAANG4sADRuyAA0b0gANG/kADRwgAA0cQAANHGQADRyIAA0cigANHI0ADRyPAA0ckQANHJMADRyWAA0cmQANHJsADRydAA0coAANHKIADRykAA0cpwANHKoADRyrAA0csAANHMkADRzOAA0c0AANHNUADRzYAA0c2gANHSMADR1HAA0dbgANHZIADR2VAA0dlwANHZkADR2bAA0dnQANHZ8ADR2gAA0dowANHbwADR3hAA0d4wANHeUADR3nAA0d6QANHesADR3tAA0d7wANHfEADR3zAA0eGAANHhsADR4eAA0eIQANHiQADR4nAA0eKgANHi0ADR4wAA0eMwANHjUADR6wAA0esgANHrUADR63AA0eugANHrsADR68AA0evQANHr4ADR7AAA0ewgANHsMADR7EAA0exgANHscADR7YAA0e2QANHtsADR9WAA0fWAANH1oADR9cAA0fXwANH2AADR9hAA0fYgANH2MADR9lAA0fZwANH2gADR9pAA0fawANH2wADR/nAA0f6QANH+wADR/uAA0f8QANH/IADR/zAA0f9AANH/UADR/3AA0f+QANH/oADR/7AA0f/QANH/4ADSAPAA0gFAANIBcADSAZAA0gKgANIDMADSA2AA0gOQANIDsADSBXAA0gaQANIOQADSDmAA0g6AANIOoADSDtAA0g7gANIO8ADSDwAA0g8QANIPMADSD1AA0g9gANIPcADSD5AA0g+gANIXUADSF3AA0hegANIXwADSF/AA0hgAANIYEADSGCAA0hgwANIYUADSGHAA0hiAANIYkADSGLAA0hjAANIZ0ADSGeAA0hoAANIhsADSIdAA0iHwANIiEADSIkAA0iJQANIiYADSInAA0iKAANIioADSIsAA0iLQANIi4ADSIwAA0iMQANIqwADSKuAA0isQANIrMADSK2AA0itwANIrgADSK5AA0iugANIrwADSK+AA0ivwANIsAADSLCAA0iwwANItwADSLdAA0i3gANIuAADSNbAA0jXQANI18ADSNhAA0jZAANI2UADSNmAA0jZwANI2gADSNqAA0jbAANI20ADSNuAA0jcAANI3EADSPsAA0j7gANI/EADSPzAA0j9gANI/cADSP4AA0j+QANI/oADSP8AA0j/gANI/8ADSQAAA0kAgANJAMADSQRAA0kKgANJGkADSRsAA0kbwANJHIADSR1AA0keAANJHsADSR+AA0kgQANJIQADSSHAA0kigANJI0ADSSQAA0kkwANJJYADSTVAA0k2AANJNsADSTeAA0k4QANJOQADSTnAA0k6gANJO0ADSTwAA0k8wANJPYADST5AA0k/AANJP8ADSUCAA0lBAANJRoADSU2AA0lVAANJW4ADSWTAA0lmwANJa0ADSXAAA0l1gANJd8ADSX7AA0mDQANJhoADSYoAA0muwANJt4ADSb+AA0nHgANJyAADSciAA0nJAANJyYADScpAA0nKgANJysADScuAA0nLwANJzEADScyAA0nNAANJzcADSc4AA0nOQANJzwADSc9AA0nQgANJ1sADSdkAA0nZgANJ2gADSdxAA0ndAANJ3cADSd5AA0nwgANJ+YADSgNAA0oMQANKDQADSg2AA0oOAANKDoADSg8AA0oPgANKD8ADShCAA0oWwANKHwADSh+AA0ogAANKIIADSiEAA0ohgANKIgADSiKAA0ojAANKK0ADSiwAA0oswANKLYADSi5AA0ovAANKL8ADSjCAA0oxQANKMcADSlCAA0pRAANKUYADSlIAA0pSwANKUwADSlNAA0pTgANKU8ADSlRAA0pUwANKVQADSlVAA0pVwANKVgADSnTAA0p1QANKdcADSnZAA0p3AANKd0ADSneAA0p3wANKeAADSniAA0p5AANKeUADSnmAA0p6AANKekADSpkAA0qZgANKmkADSprAA0qbgANKm8ADSpwAA0qcQANKnIADSp0AA0qdgANKncADSp4AA0qegANKnsADSqUAA0qlQANKpYADSqYAA0rEwANKxUADSsXAA0rGQANKxwADSsdAA0rHgANKx8ADSsgAA0rIgANKyQADSslAA0rJgANKygADSspAA0rpAANK6YADSuoAA0rqgANK60ADSuuAA0rrwANK7AADSuxAA0rswANK7UADSu2AA0rtwANK7kADSu6AA0sNQANLDcADSw5AA0sOwANLD4ADSw/AA0sQAANLEEADSxCAA0sRAANLEYADSxHAA0sSAANLEoADSxLAA0sxgANLMgADSzKAA0szAANLM8ADSzQAA0s0QANLNIADSzTAA0s1QANLNcADSzYAA0s2QANLNsADSzcAA0tVwANLVkADS1bAA0tXQANLWAADS1hAA0tYgANLWMADS1kAA0tZgANLWgADS1pAA0tagANLWwADS1tAA0ttgANLdoADS4BAA0uJQANLigADS4qAA0uLAANLi4ADS4wAA0uMgANLjMADS42AA0uTwANLmwADS5uAA0ucAANLnIADS50AA0udgANLngADS56AA0ulwANLpoADS6dAA0uoAANLqMADS6mAA0uqQANLqwADS6uAA0vKQANLysADS8tAA0vLwANLzIADS8zAA0vNAANLzUADS82AA0vOAANLzoADS87AA0vPAANLz4ADS8/AA0vugANL7wADS++AA0vwAANL8MADS/EAA0vxQANL8YADS/HAA0vyQANL8sADS/MAA0vzQANL88ADS/QAA0wSwANME0ADTBPAA0wUQANMFQADTBVAA0wVgANMFcADTBYAA0wWgANMFwADTBdAA0wXgANMGAADTBhAA0w3AANMN4ADTDhAA0w4wANMOYADTDnAA0w6AANMOkADTDqAA0w7AANMO4ADTDvAA0w8AANMPIADTDzAA0xbgANMXAADTFyAA0xdAANMXcADTF4AA0xeQANMXoADTF7AA0xfQANMX8ADTGAAA0xgQANMYMADTGEAA0x/wANMgEADTIDAA0yBQANMggADTIJAA0yCgANMgsADTIMAA0yDgANMhAADTIRAA0yEgANMhQADTIVAA0ykAANMpIADTKUAA0ylgANMpkADTKaAA0ymwANMpwADTKdAA0ynwANMqEADTKiAA0yowANMqUADTKmAA0zOQANM1wADTN8AA0znAANM54ADTOgAA0zogANM6QADTOnAA0zqAANM6kADTOsAA0zrQANM68ADTOwAA0zsgANM7UADTO2AA0ztwANM7oADTO7AA0zwAANM9kADTPiAA0z5AANM+YADTPvAA0z8gANM/UADTP3AA00QAANNGQADTSLAA00rwANNLIADTS0AA00tgANNLgADTS6AA00vAANNL0ADTTAAA002QANNPoADTT8AA00/gANNQAADTUCAA01BAANNQYADTUIAA01CgANNSsADTUuAA01MQANNTQADTU3AA01OgANNT0ADTVAAA01QwANNUUADTXAAA01wgANNcQADTXGAA01yQANNcoADTXLAA01zAANNc0ADTXPAA010QANNdIADTXTAA011QANNdYADTZRAA02UwANNlUADTZXAA02WgANNlsADTZcAA02XQANNl4ADTZgAA02YgANNmMADTZkAA02ZgANNmcADTbiAA025AANNucADTbpAA027AANNu0ADTbuAA027wANNvAADTbyAA029AANNvUADTb2AA02+AANNvkADTcSAA03EwANNxQADTcWAA03kQANN5MADTeVAA03lwANN5oADTebAA03nAANN50ADTeeAA03oAANN6IADTejAA03pAANN6YADTenAA04IgANOCQADTgmAA04KAANOCsADTgsAA04LQANOC4ADTgvAA04MQANODMADTg0AA04NQANODcADTg4AA04swANOLUADTi3AA04uQANOLwADTi9AA04vgANOL8ADTjAAA04wgANOMQADTjFAA04xgANOMgADTjJAA05RAANOUYADTlIAA05SgANOU0ADTlOAA05TwANOVAADTlRAA05UwANOVUADTlWAA05VwANOVkADTlaAA051QANOdcADTnZAA052wANOd4ADTnfAA054AANOeEADTniAA055AANOeYADTnnAA056AANOeoADTnrAA06NAANOlgADTp/AA06owANOqYADTqoAA06qgANOqwADTquAA06sAANOrEADTq0AA06zQANOuoADTrsAA067gANOvAADTryAA069AANOvYADTr4AA07FQANOxgADTsbAA07HgANOyEADTskAA07JwANOyoADTssAA07pwANO6kADTurAA07rQANO7AADTuxAA07sgANO7MADTu0AA07tgANO7gADTu5AA07ugANO7wADTu9AA08OAANPDoADTw8AA08PgANPEEADTxCAA08QwANPEQADTxFAA08RwANPEkADTxKAA08SwANPE0ADTxOAA08yQANPMsADTzNAA08zwANPNIADTzTAA081AANPNUADTzWAA082AANPNoADTzbAA083AANPN4ADTzfAA09WgANPVwADT1fAA09YQANPWQADT1lAA09ZgANPWcADT1oAA09agANPWwADT1tAA09bgANPXAADT1xAA097AANPe4ADT3wAA098gANPfUADT32AA099wANPfgADT35AA09+wANPf0ADT3+AA09/wANPgEADT4CAA0+fQANPn8ADT6CAA0+hAANPocADT6IAA0+iQANPooADT6LAA0+jQANPo8ADT6QAA0+kQANPpMADT6UAA0+owANPx4ADT8gAA0/IgANPyQADT8nAA0/KAANPykADT8qAA0/KwANPy0ADT8vAA0/MAANPzEADT8zAA0/NAANP8cADT/qAA1ACgANQCoADUAsAA1ALgANQDAADUAyAA1ANQANQDYADUA3AA1AOgANQDsADUA9AA1APgANQEAADUBDAA1ARAANQEUADUBIAA1ASQANQE4ADUBnAA1AcAANQHIADUB0AA1AfQANQIAADUCDAA1AhQANQM4ADUDyAA1BGQANQT0ADUFAAA1BQgANQUQADUFGAA1BSAANQUoADUFLAA1BTgANQWcADUGIAA1BigANQYwADUGOAA1BkAANQZIADUGUAA1BlgANQZgADUG5AA1BvAANQb8ADUHCAA1BxQANQcgADUHLAA1BzgANQdEADUHTAA1CTgANQlAADUJSAA1CVAANQlcADUJYAA1CWQANQloADUJbAA1CXQANQl8ADUJgAA1CYQANQmMADUJkAA1C3wANQuEADULjAA1C5QANQugADULpAA1C6gANQusADULsAA1C7gANQvAADULxAA1C8gANQvQADUL1AA1DcAANQ3IADUN1AA1DdwANQ3oADUN7AA1DfAANQ30ADUN+AA1DgAANQ4IADUODAA1DhAANQ4YADUOHAA1DoAANQ6EADUOiAA1DpAANRB8ADUQhAA1EIwANRCUADUQoAA1EKQANRCoADUQrAA1ELAANRC4ADUQwAA1EMQANRDIADUQ0AA1ENQANRLAADUSyAA1EtAANRLYADUS5AA1EugANRLsADUS8AA1EvQANRL8ADUTBAA1EwgANRMMADUTFAA1ExgANRUEADUVDAA1FRQANRUcADUVKAA1FSwANRUwADUVNAA1FTgANRVAADUVSAA1FUwANRVQADUVWAA1FVwANRdIADUXUAA1F1gANRdgADUXbAA1F3AANRd0ADUXeAA1F3wANReEADUXjAA1F5AANReUADUXnAA1F6AANRmMADUZlAA1GZwANRmkADUZsAA1GbQANRm4ADUZvAA1GcAANRnIADUZ0AA1GdQANRnYADUZ4AA1GeQANRsIADUbmAA1HDQANRzEADUc0AA1HNgANRzgADUc6AA1HPAANRz4ADUc/AA1HQgANR1sADUd4AA1HegANR3wADUd+AA1HgAANR4IADUeEAA1HhgANR6MADUemAA1HqQANR6wADUevAA1HsgANR7UADUe4AA1HugANSDUADUg3AA1IOQANSDsADUg+AA1IPwANSEAADUhBAA1IQgANSEQADUhGAA1IRwANSEgADUhKAA1ISwANSMYADUjIAA1IygANSMwADUjPAA1I0AANSNEADUjSAA1I0wANSNUADUjXAA1I2AANSNkADUjbAA1I3AANSVcADUlZAA1JWwANSV0ADUlgAA1JYQANSWIADUljAA1JZAANSWYADUloAA1JaQANSWoADUlsAA1JbQANSegADUnqAA1J7QANSe8ADUnyAA1J8wANSfQADUn1AA1J9gANSfgADUn6AA1J+wANSfwADUn+AA1J/wANSnoADUp8AA1KfgANSoAADUqDAA1KhAANSoUADUqGAA1KhwANSokADUqLAA1KjAANSo0ADUqPAA1KkAANSwsADUsNAA1LDwANSxEADUsUAA1LFQANSxYADUsXAA1LGAANSxoADUscAA1LHQANSx4ADUsgAA1LIQANS5wADUueAA1LoAANS6IADUulAA1LpgANS6cADUuoAA1LqQANS6sADUutAA1LrgANS68ADUuxAA1LsgANTEUADUxoAA1MiAANTKgADUyqAA1MrAANTK4ADUywAA1MswANTLQADUy1AA1MuAANTLkADUy7AA1MvAANTL4ADUzBAA1MwgANTMMADUzGAA1MxwANTMwADUzlAA1M7gANTPAADUzyAA1M+wANTP4ADU0BAA1NAwANTUwADU1wAA1NlwANTbsADU2+AA1NwAANTcIADU3EAA1NxgANTcgADU3JAA1NzAANTeUADU4GAA1OCAANTgoADU4MAA1ODgANThAADU4SAA1OFAANThYADU43AA1OOgANTj0ADU5AAA1OQwANTkYADU5JAA1OTAANTk8ADU5RAA1OzAANTs4ADU7QAA1O0gANTtUADU7WAA1O1wANTtgADU7ZAA1O2wANTt0ADU7eAA1O3wANTuEADU7iAA1PXQANT18ADU9hAA1PYwANT2YADU9nAA1PaAANT2kADU9qAA1PbAANT24ADU9vAA1PcAANT3IADU9zAA1P7gANT/AADU/zAA1P9QANT/gADU/5AA1P+gANT/sADU/8AA1P/gANUAAADVABAA1QAgANUAQADVAFAA1QHgANUB8ADVAgAA1QIgANUJ0ADVCfAA1QoQANUKMADVCmAA1QpwANUKgADVCpAA1QqgANUKwADVCuAA1QrwANULAADVCyAA1QswANUS4ADVEwAA1RMgANUTQADVE3AA1ROAANUTkADVE6AA1ROwANUT0ADVE/AA1RQAANUUEADVFDAA1RRAANUb8ADVHBAA1RwwANUcUADVHIAA1RyQANUcoADVHLAA1RzAANUc4ADVHQAA1R0QANUdIADVHUAA1R1QANUlAADVJSAA1SVAANUlYADVJZAA1SWgANUlsADVJcAA1SXQANUl8ADVJhAA1SYgANUmMADVJlAA1SZgANUuEADVLjAA1S5QANUucADVLqAA1S6wANUuwADVLtAA1S7gANUvAADVLyAA1S8wANUvQADVL2AA1S9wANU0AADVNkAA1TiwANU68ADVOyAA1TtAANU7YADVO4AA1TugANU7wADVO9AA1TwAANU9kADVP2AA1T+AANU/oADVP8AA1T/gANVAAADVQCAA1UBAANVCEADVQkAA1UJwANVCoADVQtAA1UMAANVDMADVQ2AA1UOAANVLMADVS1AA1UtwANVLkADVS8AA1UvQANVL4ADVS/AA1UwAANVMIADVTEAA1UxQANVMYADVTIAA1UyQANVUQADVVGAA1VSAANVUoADVVNAA1VTgANVU8ADVVQAA1VUQANVVMADVVVAA1VVgANVVcADVVZAA1VWgANVdUADVXXAA1V2QANVdsADVXeAA1V3wANVeAADVXhAA1V4gANVeQADVXmAA1V5wANVegADVXqAA1V6wANVmYADVZoAA1WawANVm0ADVZwAA1WcQANVnIADVZzAA1WdAANVnYADVZ4AA1WeQANVnoADVZ8AA1WfQANVvgADVb6AA1W/AANVv4ADVcBAA1XAgANVwMADVcEAA1XBQANVwcADVcJAA1XCgANVwsADVcNAA1XDgANV4kADVeLAA1XjgANV5AADVeTAA1XlAANV5UADVeWAA1XlwANV5kADVebAA1XnAANV50ADVefAA1XoAANV68ADVgqAA1YLAANWC4ADVgwAA1YMwANWDQADVg1AA1YNgANWDcADVg5AA1YOwANWDwADVg9AA1YPwANWEAADVjTAA1Y9gANWRYADVk2AA1ZOAANWToADVk8AA1ZPgANWUEADVlCAA1ZQwANWUYADVlHAA1ZSQANWUoADVlMAA1ZTwANWVAADVlRAA1ZVAANWVUADVlaAA1ZcwANWXwADVl+AA1ZgAANWYkADVmMAA1ZjwANWZEADVnaAA1Z/gANWiUADVpJAA1aTAANWk4ADVpQAA1aUgANWlQADVpWAA1aVwANWloADVpzAA1alAANWpYADVqYAA1amgANWpwADVqeAA1aoAANWqIADVqkAA1axQANWsgADVrLAA1azgANWtEADVrUAA1a1wANWtoADVrdAA1a3wANW1oADVtcAA1bXgANW2AADVtjAA1bZAANW2UADVtmAA1bZwANW2kADVtrAA1bbAANW20ADVtvAA1bcAANW+sADVvtAA1b7wANW/EADVv0AA1b9QANW/YADVv3AA1b+AANW/oADVv8AA1b/QANW/4ADVwAAA1cAQANXHwADVx+AA1cgQANXIMADVyGAA1chwANXIgADVyJAA1cigANXIwADVyOAA1cjwANXJAADVySAA1ckwANXKwADVytAA1crgANXLAADV0rAA1dLQANXS8ADV0xAA1dNAANXTUADV02AA1dNwANXTgADV06AA1dPAANXT0ADV0+AA1dQAANXUEADV28AA1dvgANXcAADV3CAA1dxQANXcYADV3HAA1dyAANXckADV3LAA1dzQANXc4ADV3PAA1d0QANXdIADV5NAA1eTwANXlEADV5TAA1eVgANXlcADV5YAA1eWQANXloADV5cAA1eXgANXl8ADV5gAA1eYgANXmMADV7eAA1e4AANXuIADV7kAA1e5wANXugADV7pAA1e6gANXusADV7tAA1e7wANXvAADV7xAA1e8wANXvQADV9vAA1fcQANX3MADV91AA1feAANX3kADV96AA1fewANX3wADV9+AA1fgAANX4EADV+CAA1fhAANX4UADV/OAA1f8gANYBkADWA9AA1gQAANYEIADWBEAA1gRgANYEgADWBKAA1gSwANYE4ADWBnAA1ghAANYIYADWCIAA1gigANYIwADWCOAA1gkAANYJIADWCvAA1gsgANYLUADWC4AA1guwANYL4ADWDBAA1gxAANYMYADWFBAA1hQwANYUUADWFHAA1hSgANYUsADWFMAA1hTQANYU4ADWFQAA1hUgANYVMADWFUAA1hVgANYVcADWHSAA1h1AANYdYADWHYAA1h2wANYdwADWHdAA1h3gANYd8ADWHhAA1h4wANYeQADWHlAA1h5wANYegADWJjAA1iZQANYmcADWJpAA1ibAANYm0ADWJuAA1ibwANYnAADWJyAA1idAANYnUADWJ2AA1ieAANYnkADWL0AA1i9gANYvkADWL7AA1i/gANYv8ADWMAAA1jAQANYwIADWMEAA1jBgANYwcADWMIAA1jCgANYwsADWOGAA1jiAANY4oADWOMAA1jjwANY5AADWORAA1jkgANY5MADWOVAA1jlwANY5gADWOZAA1jmwANY5wADWQXAA1kGQANZBsADWQdAA1kIAANZCEADWQiAA1kIwANZCQADWQmAA1kKAANZCkADWQqAA1kLAANZC0ADWSoAA1kqgANZKwADWSuAA1ksQANZLIADWSzAA1ktAANZLUADWS3AA1kuQANZLoADWS7AA1kvQANZL4ADWVRAA1ldAANZZQADWW0AA1ltgANZbgADWW6AA1lvAANZb8ADWXAAA1lwQANZcQADWXFAA1lxwANZcgADWXLAA1lzgANZc8ADWXQAA1l0wANZdQADWXZAA1l8gANZfsADWX9AA1mAAANZgkADWYMAA1mDwANZhEADWZaAA1mfgANZqUADWbJAA1mzAANZs4ADWbQAA1m0gANZtQADWbWAA1m1wANZtoADWbzAA1nFAANZxYADWcYAA1nGgANZxwADWceAA1nIAANZyIADWckAA1nRQANZ0gADWdLAA1nTgANZ1EADWdUAA1nVwANZ1oADWddAA1nXwANZ9oADWfcAA1n3gANZ+AADWfjAA1n5AANZ+UADWfmAA1n5wANZ+kADWfrAA1n7AANZ+0ADWfvAA1n8AANaGsADWhtAA1obwANaHEADWh0AA1odQANaHYADWh3AA1oeAANaHoADWh8AA1ofQANaH4ADWiAAA1ogQANaPwADWj+AA1pAQANaQMADWkGAA1pBwANaQgADWkJAA1pCgANaQwADWkOAA1pDwANaRAADWkSAA1pEwANaSwADWktAA1pLgANaTAADWmrAA1prQANaa8ADWmxAA1ptAANabUADWm2AA1ptwANabgADWm6AA1pvAANab0ADWm+AA1pwAANacEADWo8AA1qPgANakAADWpCAA1qRQANakYADWpHAA1qSAANakkADWpLAA1qTQANak4ADWpPAA1qUQANalIADWrNAA1qzwANatEADWrTAA1q1gANatcADWrYAA1q2QANatoADWrcAA1q3gANat8ADWrgAA1q4gANauMADWteAA1rYAANa2IADWtkAA1rZwANa2gADWtpAA1ragANa2sADWttAA1rbwANa3AADWtxAA1rcwANa3QADWvvAA1r8QANa/MADWv1AA1r+AANa/kADWv6AA1r+wANa/wADWv+AA1sAAANbAEADWwCAA1sBAANbAUADWxOAA1scgANbJkADWy9AA1swAANbMMADWzFAA1sxwANbMkADWzLAA1szAANbM8ADWzoAA1tBQANbQgADW0LAA1tDgANbREADW0UAA1tFwANbRoADW03AA1tOgANbT0ADW1AAA1tQwANbUYADW1JAA1tTAANbU4ADW3JAA1tywANbc4ADW3QAA1t0wANbdQADW3VAA1t1gANbdcADW3ZAA1t3AANbd0ADW3eAA1t4AANbeEADW5cAA1uXgANbmEADW5jAA1uZgANbmcADW5oAA1uaQANbmoADW5sAA1ubwANbnAADW5xAA1ucwANbnQADW7vAA1u8QANbvQADW72AA1u+QANbvoADW77AA1u/AANbv0ADW7/AA1vAgANbwMADW8EAA1vBgANbwcADW+CAA1vhAANb4cADW+JAA1vjAANb40ADW+OAA1vjwANb5AADW+SAA1vlQANb5YADW+XAA1vmQANb5oADXAdAA1wQQANcGUADXCIAA1wrwANcM8ADXD2AA1xHQANcT0ADXFhAA1xhQANcYcADXGKAA1xjAANcY4ADXGQAA1xkwANcZYADXGYAA1xmgANcZ0ADXGfAA1xoQANcaQADXGnAA1xqAANca0ADXHGAA1xywANcc0ADXHSAA1x1QANcdcADXIgAA1yRAANcmsADXKPAA1ykgANcpQADXKWAA1ymAANcpoADXKcAA1ynQANcqAADXK5AA1y3gANcuAADXLiAA1y5AANcuYADXLoAA1y6gANcuwADXLuAA1y8AANcxUADXMYAA1zGwANcx4ADXMhAA1zJAANcycADXMqAA1zLQANczAADXMyAA1zrQANc68ADXOyAA1ztAANc7cADXO4AA1zuQANc7oADXO7AA1zvQANc78ADXPAAA1zwQANc8MADXPEAA1z1QANc9YADXPYAA10UwANdFUADXRXAA10WQANdFwADXRdAA10XgANdF8ADXRgAA10YgANdGQADXRlAA10ZgANdGgADXRpAA105AANdOYADXTpAA106wANdO4ADXTvAA108AANdPEADXTyAA109AANdPYADXT3AA10+AANdPoADXT7AA11DAANdREADXUUAA11FgANdScADXU4AA11OwANdT4ADXVBAA11RAANdUYADXViAA11dAANdX4ADXWRAA12DAANdg4ADXYQAA12EgANdhUADXYWAA12FwANdhgADXYZAA12GwANdh0ADXYeAA12HwANdiEADXYiAA12nQANdp8ADXaiAA12pAANdqcADXaoAA12qQANdqoADXarAA12rQANdq8ADXawAA12sQANdrMADXa0AA12xQANdsYADXbIAA13QwANd0UADXdHAA13SQANd0wADXdNAA13TgANd08ADXdQAA13UgANd1QADXdVAA13VgANd1gADXdZAA131AANd9YADXfZAA132wANd94ADXffAA134AANd+EADXfiAA135AANd+YADXfnAA136AANd+oADXfrAA14BAANeAUADXgGAA14CAANeIMADXiFAA14hwANeIkADXiMAA14jQANeI4ADXiPAA14kAANeJIADXiUAA14lQANeJYADXiYAA14mQANeRQADXkWAA15GQANeRsADXkeAA15HwANeSAADXkhAA15IgANeSQADXkmAA15JwANeSgADXkqAA15KwANeTkADXlSAA15awANeW4ADXlxAA15dAANeXcADXl6AA15fQANeZYADXmZAA15nAANeZ8ADXmiAA15pQANeagADXmqAA15xgANedgADXnrAA159gANeokADXqsAA16zAANeuwADXruAA168AANevIADXr0AA169wANevgADXr5AA16/AANev0ADXr/AA17AAANewIADXsFAA17BgANewcADXsKAA17CwANexAADXspAA17MgANezQADXs2AA17PwANe0IADXtFAA17RwANe5AADXu0AA172wANe/8ADXwCAA18BAANfAYADXwIAA18CgANfAwADXwNAA18EAANfCkADXxKAA18TAANfE4ADXxQAA18UgANfFQADXxWAA18WAANfFoADXx7AA18fgANfIEADXyEAA18hwANfIoADXyNAA18kAANfJMADXyVAA19EAANfRIADX0UAA19FgANfRkADX0aAA19GwANfRwADX0dAA19HwANfSEADX0iAA19IwANfSUADX0mAA19oQANfaMADX2lAA19pwANfaoADX2rAA19rAANfa0ADX2uAA19sAANfbIADX2zAA19tAANfbYADX23AA1+MgANfjQADX43AA1+OQANfjwADX49AA1+PgANfj8ADX5AAA1+QgANfkQADX5FAA1+RgANfkgADX5JAA1+YgANfmMADX5kAA1+ZgANfuEADX7jAA1+5QANfucADX7qAA1+6wANfuwADX7tAA1+7gANfvAADX7yAA1+8wANfvQADX72AA1+9wANf3IADX90AA1/dgANf3gADX97AA1/fAANf30ADX9+AA1/fwANf4EADX+DAA1/hAANf4UADX+HAA1/iAANgAMADYAFAA2ABwANgAkADYAMAA2ADQANgA4ADYAPAA2AEAANgBIADYAUAA2AFQANgBYADYAYAA2AGQANgJQADYCWAA2AmAANgJoADYCdAA2AngANgJ8ADYCgAA2AoQANgKMADYClAA2ApgANgKcADYCpAA2AqgANgSUADYEnAA2BKQANgSsADYEuAA2BLwANgTAADYExAA2BMgANgTQADYE2AA2BNwANgTgADYE6AA2BOwANgYQADYGoAA2BzwANgfMADYH2AA2B+AANgfoADYH8AA2B/gANggAADYIBAA2CBAANgh0ADYI6AA2CPAANgj4ADYJAAA2CQgANgkQADYJGAA2CSAANgmUADYJoAA2CawANgm4ADYJxAA2CdAANgncADYJ6AA2CfAANgvcADYL5AA2C+wANgv0ADYMAAA2DAQANgwIADYMDAA2DBAANgwYADYMIAA2DCQANgwoADYMMAA2DDQANg4gADYOKAA2DjAANg44ADYORAA2DkgANg5MADYOUAA2DlQANg5cADYOZAA2DmgANg5sADYOdAA2DngANhBkADYQbAA2EHQANhB8ADYQiAA2EIwANhCQADYQlAA2EJgANhCgADYQqAA2EKwANhCwADYQuAA2ELwANhKoADYSsAA2ErgANhLAADYSzAA2EtAANhLUADYS2AA2EtwANhLkADYS7AA2EvAANhL0ADYS/AA2EwAANhTsADYU9AA2FPwANhUEADYVEAA2FRQANhUYADYVHAA2FSAANhUoADYVMAA2FTQANhU4ADYVQAA2FUQANhcwADYXOAA2F0QANhdMADYXWAA2F1wANhdgADYXZAA2F2gANhdwADYXeAA2F3wANheAADYXiAA2F4wANhfIADYZtAA2GbwANhnEADYZzAA2GdgANhncADYZ4AA2GeQANhnoADYZ8AA2GfgANhn8ADYaAAA2GggANhoMADYcWAA2HOQANh1kADYd5AA2HewANh30ADYd/AA2HgQANh4QADYeFAA2HhgANh4kADYeKAA2HjAANh40ADYeQAA2HkwANh5QADYeVAA2HmAANh5kADYeeAA2HtwANh8AADYfCAA2HxQANh84ADYfRAA2H1AANh9YADYgfAA2IQwANiGoADYiOAA2IkQANiJMADYiVAA2IlwANiJkADYibAA2InAANiJ8ADYi4AA2I2QANiNsADYjdAA2I3wANiOEADYjjAA2I5QANiOcADYjpAA2JCgANiQ0ADYkQAA2JEwANiRYADYkZAA2JHAANiR8ADYkiAA2JJAANiZ8ADYmhAA2JowANiaUADYmoAA2JqQANiaoADYmrAA2JrAANia4ADYmwAA2JsQANibIADYm0AA2JtQANijAADYoyAA2KNAANijYADYo5AA2KOgANijsADYo8AA2KPQANij8ADYpBAA2KQgANikMADYpFAA2KRgANisEADYrDAA2KxgANisgADYrLAA2KzAANis0ADYrOAA2KzwANitEADYrTAA2K1AANitUADYrXAA2K2AANivEADYryAA2K8wANivUADYtwAA2LcgANi3QADYt2AA2LeQANi3oADYt7AA2LfAANi30ADYt/AA2LgQANi4IADYuDAA2LhQANi4YADYwBAA2MAwANjAUADYwHAA2MCgANjAsADYwMAA2MDQANjA4ADYwQAA2MEgANjBMADYwUAA2MFgANjBcADYySAA2MlAANjJYADYyYAA2MmwANjJwADYydAA2MngANjJ8ADYyhAA2MowANjKQADYylAA2MpwANjKgADY0jAA2NJQANjScADY0pAA2NLAANjS0ADY0uAA2NLwANjTAADY0yAA2NNAANjTUADY02AA2NOAANjTkADY20AA2NtgANjbgADY26AA2NvQANjb4ADY2/AA2NwAANjcEADY3DAA2NxQANjcYADY3HAA2NyQANjcoADY4TAA2ONwANjl4ADY6CAA2OhQANjogADY6KAA2OjAANjo4ADY6QAA2OkQANjpQADY6tAA2OygANjs0ADY7QAA2O0wANjtYADY7ZAA2O3AANjt8ADY78AA2O/wANjwIADY8FAA2PCAANjwsADY8OAA2PEQANjxMADY+OAA2PkAANj5MADY+VAA2PmAANj5kADY+aAA2PmwANj5wADY+eAA2PoQANj6IADY+jAA2PpQANj6YADZAhAA2QIwANkCYADZAoAA2QKwANkCwADZAtAA2QLgANkC8ADZAxAA2QNAANkDUADZA2AA2QOAANkDkADZC0AA2QtgANkLkADZC7AA2QvgANkL8ADZDAAA2QwQANkMIADZDEAA2QxwANkMgADZDJAA2QywANkMwADZFHAA2RSQANkUwADZFOAA2RUQANkVIADZFTAA2RVAANkVUADZFXAA2RWgANkVsADZFcAA2RXgANkV8ADZHaAA2R3AANkd4ADZHgAA2R4wANkeQADZHlAA2R5gANkecADZHpAA2R7AANke0ADZHuAA2R8AANkfEADZJsAA2SbgANknAADZJyAA2SdQANknYADZJ3AA2SeAANknkADZJ7AA2SfgANkn8ADZKAAA2SggANkoMADZL+AA2TAAANkwMADZMFAA2TCAANkwkADZMKAA2TCwANkwwADZMOAA2TEQANkxIADZMTAA2TFQANkxYADZOpAA2TzAANk+wADZQMAA2UDgANlBAADZQSAA2UFAANlBcADZQYAA2UGQANlBwADZQdAA2UHwANlCAADZQiAA2UJQANlCYADZQnAA2UKgANlCsADZQwAA2USQANlFIADZRUAA2UVgANlF8ADZRiAA2UZQANlGcADZSwAA2U1AANlPsADZUfAA2VIgANlSQADZUmAA2VKAANlSoADZUsAA2VLQANlTAADZVJAA2VagANlWwADZVuAA2VcAANlXIADZV0AA2VdgANlXgADZV6AA2VmwANlZ4ADZWhAA2VpAANlacADZWqAA2VrQANlbAADZWzAA2VtQANljAADZYyAA2WNAANljYADZY5AA2WOgANljsADZY8AA2WPQANlj8ADZZBAA2WQgANlkMADZZFAA2WRgANlsEADZbDAA2WxQANlscADZbKAA2WywANlswADZbNAA2WzgANltAADZbSAA2W0wANltQADZbWAA2W1wANl1IADZdUAA2XVwANl1kADZdcAA2XXQANl14ADZdfAA2XYAANl2IADZdkAA2XZQANl2YADZdoAA2XaQANl4IADZeDAA2XhAANl4YADZgBAA2YAwANmAUADZgHAA2YCgANmAsADZgMAA2YDQANmA4ADZgQAA2YEgANmBMADZgUAA2YFgANmBcADZiSAA2YlAANmJYADZiYAA2YmwANmJwADZidAA2YngANmJ8ADZihAA2YowANmKQADZilAA2YpwANmKgADZkjAA2ZJQANmScADZkpAA2ZLAANmS0ADZkuAA2ZLwANmTAADZkyAA2ZNAANmTUADZk2AA2ZOAANmTkADZm0AA2ZtgANmbgADZm6AA2ZvQANmb4ADZm/AA2ZwAANmcEADZnDAA2ZxQANmcYADZnHAA2ZyQANmcoADZpFAA2aRwANmkkADZpLAA2aTgANmk8ADZpQAA2aUQANmlIADZpUAA2aVgANmlcADZpYAA2aWgANmlsADZqkAA2ayAANmu8ADZsTAA2bFgANmxgADZsaAA2bHAANmx4ADZsgAA2bIQANmyQADZs9AA2bWgANm1wADZteAA2bYAANm2IADZtkAA2bZgANm2gADZuFAA2biAANm4sADZuOAA2bkQANm5QADZuXAA2bmgANm5wADZwXAA2cGQANnBsADZwdAA2cIAANnCEADZwiAA2cIwANnCQADZwmAA2cKAANnCkADZwqAA2cLAANnC0ADZyoAA2cqgANnKwADZyuAA2csQANnLIADZyzAA2ctAANnLUADZy3AA2cuQANnLoADZy7AA2cvQANnL4ADZ05AA2dOwANnT0ADZ0/AA2dQgANnUMADZ1EAA2dRQANnUYADZ1IAA2dSgANnUsADZ1MAA2dTgANnU8ADZ3KAA2dzAANnc8ADZ3RAA2d1AANndUADZ3WAA2d1wANndgADZ3aAA2d3AANnd0ADZ3eAA2d4AANneEADZ5cAA2eXgANnmAADZ5iAA2eZQANnmYADZ5nAA2eaAANnmkADZ5rAA2ebQANnm4ADZ5vAA2ecQANnnIADZ7tAA2e7wANnvEADZ7zAA2e9gANnvcADZ74AA2e+QANnvoADZ78AA2e/gANnv8ADZ8AAA2fAgANnwMADZ9+AA2fgAANn4IADZ+EAA2fhwANn4gADZ+JAA2figANn4sADZ+NAA2fjwANn5AADZ+RAA2fkwANn5QADaAnAA2gSgANoGoADaCKAA2gjAANoI4ADaCQAA2gkgANoJUADaCWAA2glwANoJoADaCbAA2gnQANoJ4ADaCgAA2gowANoKQADaClAA2gqAANoKkADaCyAA2gywANoNQADaDWAA2g2AANoOEADaDkAA2g5wANoOkADaEyAA2hVgANoX0ADaGhAA2hpAANoaYADaGoAA2hqgANoawADaGuAA2hrwANobIADaHLAA2h7AANoe4ADaHwAA2h8gANofQADaH2AA2h+AANofoADaH8AA2iHQANoiAADaIjAA2iJgANoikADaIsAA2iLwANojIADaI1AA2iNwANorIADaK0AA2itgANorgADaK7AA2ivAANor0ADaK+AA2ivwANosEADaLDAA2ixAANosUADaLHAA2iyAANo0MADaNFAA2jRwANo0kADaNMAA2jTQANo04ADaNPAA2jUAANo1IADaNUAA2jVQANo1YADaNYAA2jWQANo9QADaPWAA2j2QANo9sADaPeAA2j3wANo+AADaPhAA2j4gANo+QADaPmAA2j5wANo+gADaPqAA2j6wANpAQADaQFAA2kBgANpAgADaSDAA2khQANpIcADaSJAA2kjAANpI0ADaSOAA2kjwANpJAADaSSAA2klAANpJUADaSWAA2kmAANpJkADaUUAA2lFgANpRgADaUaAA2lHQANpR4ADaUfAA2lIAANpSEADaUjAA2lJQANpSYADaUnAA2lKQANpSoADaWlAA2lpwANpakADaWrAA2lrgANpa8ADaWwAA2lsQANpbIADaW0AA2ltgANpbcADaW4AA2lugANpbsADaY2AA2mOAANpjoADaY8AA2mPwANpkAADaZBAA2mQgANpkMADaZFAA2mRwANpkgADaZJAA2mSwANpkwADabHAA2myQANpssADabNAA2m0AANptEADabSAA2m0wANptQADabWAA2m2AANptkADabaAA2m3AANpt0ADacmAA2nSgANp3EADaeVAA2nmAANp5oADaecAA2nngANp6AADaeiAA2nowANp6YADae/AA2n3AANp94ADafgAA2n4gANp+QADafmAA2n6AANp+oADagHAA2oCgANqA0ADagQAA2oEwANqBYADagZAA2oHAANqB4ADaiZAA2omwANqJ0ADaifAA2oogANqKMADaikAA2opQANqKYADaioAA2oqgANqKsADaisAA2orgANqK8ADakqAA2pLAANqS4ADakwAA2pMwANqTQADak1AA2pNgANqTcADak5AA2pOwANqTwADak9AA2pPwANqUAADam7AA2pvQANqb8ADanBAA2pxAANqcUADanGAA2pxwANqcgADanKAA2pzAANqc0ADanOAA2p0AANqdEADapMAA2qTgANqlEADapTAA2qVgANqlcADapYAA2qWQANqloADapcAA2qXgANql8ADapgAA2qYgANqmMADareAA2q4AANquIADarkAA2q5wANqugADarpAA2q6gANqusADartAA2q7wANqvAADarxAA2q8wANqvQADatvAA2rcQANq3MADat1AA2reAANq3kADat6AA2rewANq3wADat+AA2rgAANq4EADauCAA2rhAANq4UADawAAA2sAgANrAQADawGAA2sCQANrAoADawLAA2sDAANrA0ADawPAA2sEQANrBIADawTAA2sFQANrBYADaypAA2szAANrOwADa0MAA2tDgANrRAADa0SAA2tFAANrRcADa0YAA2tGQANrRwADa0dAA2tHwANrSAADa0iAA2tJQANrSYADa0nAA2tKgANrSsADa0wAA2tSQANrVIADa1UAA2tVgANrV8ADa1iAA2tZQANrWcADa2wAA2t1AANrfsADa4fAA2uIgANriQADa4mAA2uKAANrioADa4sAA2uLQANrjAADa5JAA2uagANrmwADa5uAA2ucAANrnIADa50AA2udgANrngADa56AA2umwANrp4ADa6hAA2upAANrqcADa6qAA2urQANrrAADa6zAA2utQANrzAADa8yAA2vNAANrzYADa85AA2vOgANrzsADa88AA2vPQANrz8ADa9BAA2vQgANr0MADa9FAA2vRgANr8EADa/DAA2vxQANr8cADa/KAA2vywANr8wADa/NAA2vzgANr9AADa/SAA2v0wANr9QADa/WAA2v1wANsFIADbBUAA2wVwANsFkADbBcAA2wXQANsF4ADbBfAA2wYAANsGIADbBkAA2wZQANsGYADbBoAA2waQANsIIADbCDAA2whAANsIYADbEBAA2xAwANsQUADbEHAA2xCgANsQsADbEMAA2xDQANsQ4ADbEQAA2xEgANsRMADbEUAA2xFgANsRcADbGSAA2xlAANsZYADbGYAA2xmwANsZwADbGdAA2xngANsZ8ADbGhAA2xowANsaQADbGlAA2xpwANsagADbIjAA2yJQANsicADbIpAA2yLAANsi0ADbIuAA2yLwANsjAADbIyAA2yNAANsjUADbI2AA2yOAANsjkADbK0AA2ytgANsrgADbK6AA2yvQANsr4ADbK/AA2ywAANssEADbLDAA2yxQANssYADbLHAA2yyQANssoADbNFAA2zRwANs0kADbNLAA2zTgANs08ADbNQAA2zUQANs1IADbNUAA2zVgANs1cADbNYAA2zWgANs1sADbOkAA2zyAANs+8ADbQTAA20FgANtBgADbQaAA20HAANtB4ADbQgAA20IQANtCQADbQ9AA20WgANtFwADbReAA20YAANtGIADbRkAA20ZgANtGgADbSFAA20iAANtIsADbSOAA20kQANtJQADbSXAA20mgANtJwADbUXAA21GQANtRsADbUdAA21IAANtSEADbUiAA21IwANtSQADbUmAA21KAANtSkADbUqAA21LAANtS0ADbWoAA21qgANtawADbWuAA21sQANtbIADbWzAA21tAANtbUADbW3AA21uQANtboADbW7AA21vQANtb4ADbY5AA22OwANtj0ADbY/AA22QgANtkMADbZEAA22RQANtkYADbZIAA22SgANtksADbZMAA22TgANtk8ADbbKAA22zAANts4ADbbQAA220wANttQADbbVAA221gANttcADbbZAA222wANttwADbbdAA223wANtuAADbdbAA23XQANt18ADbdhAA23ZAANt2UADbdmAA23ZwANt2gADbdqAA23bAANt20ADbduAA23cAANt3EADbfsAA237gANt/EADbfzAA239gANt/cADbf4AA23+QANt/oADbf8AA23/gANt/8ADbgAAA24AgANuAMADbgiAA24nQANuJ8ADbihAA24owANuKYADbinAA24qAANuKkADbiqAA24rAANuK4ADbivAA24sAANuLIADbizAA25RgANuWkADbmJAA25qQANuasADbmtAA25rwANubEADbm0AA25tQANubYADbm5AA25ugANubwADbm9AA25vwANucIADbnDAA25xAANuccADbnIAA25zQANueYADbnvAA258QANufMADbn8AA25/wANugIADboEAA26TQANunEADbqYAA26vAANur8ADbrBAA26wwANusUADbrHAA26yQANusoADbrNAA265gANuwcADbsJAA27CwANuw0ADbsPAA27EQANuxMADbsVAA27FwANuzgADbs7AA27PgANu0EADbtEAA27RwANu0oADbtNAA27UAANu1IADbvNAA27zwANu9EADbvTAA271gANu9cADbvYAA272QANu9oADbvcAA273gANu98ADbvgAA274gANu+MADbxeAA28YAANvGIADbxkAA28ZwANvGgADbxpAA28agANvGsADbxtAA28bwANvHAADbxxAA28cwANvHQADbzvAA288QANvPQADbz2AA28+QANvPoADbz7AA28/AANvP0ADbz/AA29AQANvQIADb0DAA29BQANvQYADb0fAA29IAANvSEADb0jAA29ngANvaAADb2iAA29pAANvacADb2oAA29qQANvaoADb2rAA29rQANva8ADb2wAA29sQANvbMADb20AA2+LwANvjEADb4zAA2+NQANvjgADb45AA2+OgANvjsADb48AA2+PgANvkAADb5BAA2+QgANvkQADb5FAA2+wAANvsIADb7EAA2+xgANvskADb7KAA2+ywANvswADb7NAA2+zwANvtEADb7SAA2+0wANvtUADb7WAA2/UQANv1MADb9VAA2/VwANv1oADb9bAA2/XAANv10ADb9eAA2/YAANv2IADb9jAA2/ZAANv2YADb9nAA2/4gANv+QADb/mAA2/6AANv+sADb/sAA2/7QANv+4ADb/vAA2/8QANv/MADb/0AA2/9QANv/cADb/4AA3AQQANwGUADcCMAA3AsAANwLMADcC1AA3AtwANwLkADcC7AA3AvQANwL4ADcDBAA3A2gANwPcADcD5AA3A+wANwP0ADcD/AA3BAQANwQMADcEFAA3BIgANwSUADcEoAA3BKwANwS4ADcExAA3BNAANwTcADcE5AA3BtAANwbYADcG4AA3BugANwb0ADcG+AA3BvwANwcAADcHBAA3BwwANwcUADcHGAA3BxwANwckADcHKAA3CRQANwkcADcJJAA3CSwANwk4ADcJPAA3CUAANwlEADcJSAA3CVAANwlYADcJXAA3CWAANwloADcJbAA3C1gANwtgADcLaAA3C3AANwt8ADcLgAA3C4QANwuIADcLjAA3C5QANwucADcLoAA3C6QANwusADcLsAA3DZwANw2kADcNrAA3DbQANw3AADcNxAA3DcgANw3MADcN0AA3DdgANw3gADcN5AA3DegANw3wADcN9AA3D+AANw/oADcP8AA3D/gANxAEADcQCAA3EAwANxAQADcQFAA3EBwANxAkADcQKAA3ECwANxA0ADcQOAA3EiQANxIsADcSOAA3EkAANxJMADcSUAA3ElQANxJYADcSXAA3EmQANxJsADcScAA3EnQANxJ8ADcSgAA3EuwANxTYADcU4AA3FOgANxTwADcU/AA3FQAANxUEADcVCAA3FQwANxUUADcVHAA3FSAANxUkADcVLAA3FTAANxV0ADcVeAA3FYAANxdsADcXdAA3F3wANxeEADcXkAA3F5QANxeYADcXnAA3F6AANxeoADcXtAA3F7gANxe8ADcXxAA3F8gANxm0ADcZvAA3GcQANxnMADcZ2AA3GdwANxngADcZ5AA3GegANxnwADcZ/AA3GgAANxoEADcaDAA3GhAANxv8ADccBAA3HBAANxwYADccJAA3HCgANxwsADccMAA3HDQANxw8ADccSAA3HEwANxxQADccWAA3HFwANx6oADcfNAA3H7QANyA0ADcgPAA3IEQANyBMADcgVAA3IGAANyBkADcgaAA3IHQANyB4ADcggAA3IIQANyCMADcgmAA3IJwANyCgADcgrAA3ILAANyDEADchKAA3IUwANyFUADchXAA3IYAANyGMADchmAA3IaAANyLEADcjVAA3I/AANySAADckjAA3JJQANyScADckpAA3JKwANyS0ADckuAA3JMQANyUoADclrAA3JbQANyW8ADclxAA3JcwANyXUADcl3AA3JeQANyXsADcmcAA3JnwANyaIADcmlAA3JqAANyasADcmuAA3JsQANybQADcm2AA3KMQANyjMADco1AA3KNwANyjoADco7AA3KPAANyj0ADco+AA3KQAANykIADcpDAA3KRAANykYADcpHAA3KwgANysQADcrGAA3KyAANyssADcrMAA3KzQANys4ADcrPAA3K0QANytMADcrUAA3K1QANytcADcrYAA3LUwANy1UADctYAA3LWgANy10ADcteAA3LXwANy2AADcthAA3LYwANy2UADctmAA3LZwANy2kADctqAA3LgwANy4QADcuFAA3LhwANzAIADcwEAA3MBgANzAgADcwLAA3MDAANzA0ADcwOAA3MDwANzBEADcwTAA3MFAANzBUADcwXAA3MGAANzJMADcyVAA3MlwANzJkADcycAA3MnQANzJ4ADcyfAA3MoAANzKIADcykAA3MpQANzKYADcyoAA3MqQANzSQADc0mAA3NKAANzSoADc0tAA3NLgANzS8ADc0wAA3NMQANzTMADc01AA3NNgANzTcADc05AA3NOgANzbUADc23AA3NuQANzbsADc2+AA3NvwANzcAADc3BAA3NwgANzcQADc3GAA3NxwANzcgADc3KAA3NywANzkYADc5IAA3OSgANzkwADc5PAA3OUAANzlEADc5SAA3OUwANzlUADc5XAA3OWAANzlkADc5bAA3OXAANzqUADc7JAA3O8AANzxQADc8XAA3PGQANzxsADc8dAA3PHwANzyEADc8iAA3PJQANzz4ADc9bAA3PXQANz18ADc9hAA3PYwANz2UADc9nAA3PaQANz4YADc+JAA3PjAANz48ADc+SAA3PlQANz5gADc+bAA3PnQAN0BgADdAaAA3QHAAN0B4ADdAhAA3QIgAN0CMADdAkAA3QJQAN0CcADdApAA3QKgAN0CsADdAtAA3QLgAN0KkADdCrAA3QrQAN0K8ADdCyAA3QswAN0LQADdC1AA3QtgAN0LgADdC6AA3QuwAN0LwADdC+AA3QvwAN0ToADdE8AA3RPgAN0UAADdFDAA3RRAAN0UUADdFGAA3RRwAN0UkADdFLAA3RTAAN0U0ADdFPAA3RUAAN0csADdHNAA3R0AAN0dIADdHVAA3R1gAN0dcADdHYAA3R2QAN0dsADdHdAA3R3gAN0d8ADdHhAA3R4gAN0l0ADdJfAA3SYQAN0mMADdJmAA3SZwAN0mgADdJpAA3SagAN0mwADdJuAA3SbwAN0nAADdJyAA3ScwAN0u4ADdLwAA3S8gAN0vQADdL3AA3S+AAN0vkADdL6AA3S+wAN0v0ADdL/AA3TAAAN0wEADdMDAA3TBAAN038ADdOBAA3TgwAN04UADdOIAA3TiQAN04oADdOLAA3TjAAN044ADdOQAA3TkQAN05IADdOUAA3TlQAN1CgADdRLAA3UawAN1IsADdSNAA3UjwAN1JEADdSTAA3UlgAN1JcADdSYAA3UmwAN1JwADdSeAA3UnwAN1KEADdSkAA3UpQAN1KYADdSpAA3UqgAN1K8ADdTIAA3U0QAN1NMADdTVAA3U3gAN1OEADdTkAA3U5gAN1S8ADdVTAA3VegAN1Z4ADdWhAA3VowAN1aUADdWnAA3VqQAN1asADdWsAA3VrwAN1cgADdXpAA3V6wAN1e0ADdXvAA3V8QAN1fMADdX1AA3V9wAN1fkADdYaAA3WHQAN1iAADdYjAA3WJgAN1ikADdYsAA3WLwAN1jIADdY0AA3WrwAN1rEADdazAA3WtQAN1rgADda5AA3WugAN1rsADda8AA3WvgAN1sAADdbBAA3WwgAN1sQADdbFAA3XQAAN10IADddEAA3XRgAN10kADddKAA3XSwAN10wADddNAA3XTwAN11EADddSAA3XUwAN11UADddWAA3X0QAN19MADdfWAA3X2AAN19sADdfcAA3X3QAN194ADdffAA3X4QAN1+MADdfkAA3X5QAN1+cADdfoAA3YAQAN2AIADdgDAA3YBQAN2IAADdiCAA3YhAAN2IYADdiJAA3YigAN2IsADdiMAA3YjQAN2I8ADdiRAA3YkgAN2JMADdiVAA3YlgAN2READdkTAA3ZFQAN2RcADdkaAA3ZGwAN2RwADdkdAA3ZHgAN2SAADdkiAA3ZIwAN2SQADdkmAA3ZJwAN2aIADdmkAA3ZpgAN2agADdmrAA3ZrAAN2a0ADdmuAA3ZrwAN2bEADdmzAA3ZtAAN2bUADdm3AA3ZuAAN2jMADdo1AA3aNwAN2jkADdo8AA3aPQAN2j4ADdo/AA3aQAAN2kIADdpEAA3aRQAN2kYADdpIAA3aSQAN2sQADdrGAA3ayAAN2soADdrNAA3azgAN2s8ADdrQAA3a0QAN2tMADdrVAA3a1gAN2tcADdrZAA3a2gAN2yMADdtHAA3bbgAN25IADduVAA3blwAN25kADdubAA3bnQAN258ADdugAA3bowAN27wADdvZAA3b2wAN290ADdvfAA3b4QAN2+MADdvlAA3b5wAN3AQADdwHAA3cCgAN3A0ADdwQAA3cEwAN3BYADdwZAA3cGwAN3JYADdyYAA3cmgAN3JwADdyfAA3coAAN3KEADdyiAA3cowAN3KUADdynAA3cqAAN3KkADdyrAA3crAAN3ScADd0pAA3dKwAN3S0ADd0wAA3dMQAN3TIADd0zAA3dNAAN3TYADd04AA3dOQAN3ToADd08AA3dPQAN3bgADd26AA3dvAAN3b4ADd3BAA3dwgAN3cMADd3EAA3dxQAN3ccADd3JAA3dygAN3csADd3NAA3dzgAN3kkADd5LAA3eTgAN3lAADd5TAA3eVAAN3lUADd5WAA3eVwAN3lkADd5bAA3eXAAN3l0ADd5fAA3eYAAN3tsADd7dAA3e3wAN3uEADd7kAA3e5QAN3uYADd7nAA3e6AAN3uoADd7sAA3e7QAN3u4ADd7wAA3e8QAN32wADd9uAA3fcAAN33IADd91AA3fdgAN33cADd94AA3feQAN33sADd99AA3ffgAN338ADd+BAA3fggAN3/0ADd//AA3gAQAN4AMADeAGAA3gBwAN4AgADeAJAA3gCgAN4AwADeAOAA3gDwAN4BAADeASAA3gEwAN4KYADeDJAA3g6QAN4QkADeELAA3hDQAN4Q8ADeERAA3hFAAN4RUADeEWAA3hGQAN4RoADeEcAA3hHQAN4R8ADeEiAA3hIwAN4SQADeEnAA3hKAAN4S0ADeFGAA3hTwAN4VEADeFTAA3hXAAN4V8ADeFiAA3hZAAN4a0ADeHRAA3h+AAN4hwADeIfAA3iIQAN4iMADeIlAA3iJwAN4ikADeIqAA3iLQAN4kYADeJnAA3iaQAN4msADeJtAA3ibwAN4nEADeJzAA3idQAN4ncADeKYAA3imwAN4p4ADeKhAA3ipAAN4qcADeKqAA3irQAN4rAADeKyAA3jLQAN4y8ADeMxAA3jMwAN4zYADeM3AA3jOAAN4zkADeM6AA3jPAAN4z4ADeM/AA3jQAAN40IADeNDAA3jvgAN48AADePCAA3jxAAN48cADePIAA3jyQAN48oADePLAA3jzQAN488ADePQAA3j0QAN49MADePUAA3kTwAN5FEADeRUAA3kVgAN5FkADeRaAA3kWwAN5FwADeRdAA3kXwAN5GEADeRiAA3kYwAN5GUADeRmAA3kfwAN5IAADeSBAA3kgwAN5P4ADeUAAA3lAgAN5QQADeUHAA3lCAAN5QkADeUKAA3lCwAN5Q0ADeUPAA3lEAAN5READeUTAA3lFAAN5Y8ADeWRAA3lkwAN5ZUADeWYAA3lmQAN5ZoADeWbAA3lnAAN5Z4ADeWgAA3loQAN5aIADeWkAA3lpQAN5iAADeYiAA3mJAAN5iYADeYpAA3mKgAN5isADeYsAA3mLQAN5i8ADeYxAA3mMgAN5jMADeY1AA3mNgAN5rEADeazAA3mtQAN5rcADea6AA3muwAN5rwADea9AA3mvgAN5sAADebCAA3mwwAN5sQADebGAA3mxwAN50IADedEAA3nRgAN50gADedLAA3nTAAN500ADedOAA3nTwAN51EADedTAA3nVAAN51UADedXAA3nWAAN56EADefFAA3n7AAN6BAADegTAA3oFQAN6BcADegZAA3oGwAN6B0ADegeAA3oIQAN6DoADehXAA3oWQAN6FsADehdAA3oXwAN6GEADehjAA3oZQAN6IIADeiFAA3oiAAN6IsADeiOAA3okQAN6JQADeiXAA3omQAN6RQADekWAA3pGAAN6RoADekdAA3pHgAN6R8ADekgAA3pIQAN6SMADeklAA3pJgAN6ScADekpAA3pKgAN6aUADemnAA3pqQAN6asADemuAA3prwAN6bAADemxAA3psgAN6bQADem2AA3ptwAN6bgADem6AA3puwAN6jYADeo4AA3qOgAN6jwADeo/AA3qQAAN6kEADepCAA3qQwAN6kUADepHAA3qSAAN6kkADepLAA3qTAAN6scADerJAA3qywAN6s0ADerQAA3q0QAN6tIADerTAA3q1AAN6tYADerYAA3q2QAN6toADercAA3q3QAN61gADetaAA3rXAAN614ADethAA3rYgAN62MADetkAA3rZQAN62cADetpAA3ragAN62sADettAA3rbgAN6+kADevrAA3r7gAN6/AADevzAA3r9AAN6/UADev2AA3r9wAN6/kADev7AA3r/AAN6/0ADev/AA3sAAAN7BsADeyWAA3smAAN7JoADeycAA3snwAN7KAADeyhAA3sogAN7KMADeylAA3spwAN7KgADeypAA3sqwAN7KwADe0/AA3tYgAN7YIADe2iAA3tpAAN7aYADe2oAA3tqgAN7a0ADe2uAA3trwAN7bIADe2zAA3ttQAN7bYADe25AA3tvAAN7b0ADe2+AA3twQAN7cIADe3HAA3t4AAN7ekADe3rAA3t7gAN7fcADe36AA3t/QAN7f8ADe5IAA3ubAAN7pMADe63AA3uugAN7rwADe6+AA3uwAAN7sIADe7EAA3uxQAN7sgADe7hAA3vAgAN7wQADe8GAA3vCAAN7woADe8MAA3vDgAN7xAADe8SAA3vMwAN7zYADe85AA3vPAAN7z8ADe9CAA3vRQAN70gADe9LAA3vTQAN78gADe/KAA3vzAAN784ADe/RAA3v0gAN79MADe/UAA3v1QAN79cADe/ZAA3v2gAN79sADe/dAA3v3gAN8FkADfBbAA3wXQAN8F8ADfBiAA3wYwAN8GQADfBlAA3wZgAN8GgADfBqAA3wawAN8GwADfBuAA3wbwAN8OoADfDsAA3w7wAN8PEADfD0AA3w9QAN8PYADfD3AA3w+AAN8PoADfD8AA3w/QAN8P4ADfEAAA3xAQAN8RoADfEbAA3xHAAN8R4ADfGZAA3xmwAN8Z0ADfGfAA3xogAN8aMADfGkAA3xpQAN8aYADfGoAA3xqgAN8asADfGsAA3xrgAN8a8ADfIqAA3yLAAN8i4ADfIwAA3yMwAN8jQADfI1AA3yNgAN8jcADfI5AA3yOwAN8jwADfI9AA3yPwAN8kAADfK7AA3yvQAN8r8ADfLBAA3yxAAN8sUADfLGAA3yxwAN8sgADfLKAA3yzAAN8s0ADfLOAA3y0AAN8tEADfNMAA3zTgAN81AADfNSAA3zVQAN81YADfNXAA3zWAAN81kADfNbAA3zXQAN814ADfNfAA3zYQAN82IADfPdAA3z3wAN8+EADfPjAA3z5gAN8+cADfPoAA3z6QAN8+oADfPsAA3z7gAN8+8ADfPwAA3z8gAN8/MADfQ8AA30YAAN9IcADfSrAA30rgAN9LEADfSzAA30tQAN9LcADfS5AA30ugAN9L0ADfTWAA308wAN9PYADfT5AA30/AAN9P8ADfUCAA31BQAN9QgADfUlAA31KAAN9SsADfUuAA31MQAN9TQADfU3AA31OgAN9TwADfW3AA31uQAN9bwADfW+AA31wQAN9cIADfXDAA31xAAN9cUADfXHAA31ygAN9csADfXMAA31zgAN9c8ADfZKAA32TAAN9k8ADfZRAA32VAAN9lUADfZWAA32VwAN9lgADfZaAA32XQAN9l4ADfZfAA32YQAN9mIADfbdAA323wAN9uIADfbkAA325wAN9ugADfbpAA326gAN9usADfbtAA328AAN9vEADfbyAA329AAN9vUADfdwAA33cgAN93UADfd3AA33egAN93sADfd8AA33fQAN934ADfeAAA33gwAN94QADfeFAA33hwAN94gADfgDAA34BQAN+AcADfgJAA34DAAN+A0ADfgOAA34DwAN+BAADfgSAA34FQAN+BYADfgXAA34GQAN+BoADfiVAA34lwAN+JkADfibAA34ngAN+J8ADfigAA34oQAN+KIADfikAA34pwAN+KgADfipAA34qwAN+KwADfknAA35KQAN+SwADfkuAA35MQAN+TIADfkzAA35NAAN+TUADfk3AA35OgAN+TsADfk8AA35PgAN+T8ADfnSAA359QAN+hUADfo1AA36NwAN+jkADfo7AA36PQAN+kAADfpBAA36QgAN+kUADfpGAA36SAAN+kkADfpLAA36TgAN+k8ADfpQAA36UwAN+lQADfpZAA36cgAN+nsADfp9AA36fwAN+ogADfqLAA36jgAN+pAADfrZAA36/QAN+yQADftIAA37SwAN+00ADftPAA37UQAN+1MADftVAA37VgAN+1kADftyAA37kwAN+5UADfuXAA37mQAN+5sADfudAA37nwAN+6EADfujAA37xAAN+8cADfvKAA37zQAN+9AADfvTAA371gAN+9kADfvcAA373gAN/FkADfxbAA38XQAN/F8ADfxiAA38YwAN/GQADfxlAA38ZgAN/GgADfxqAA38awAN/GwADfxuAA38bwAN/OoADfzsAA387gAN/PAADfzzAA389AAN/PUADfz2AA389wAN/PkADfz7AA38/AAN/P0ADfz/AA39AAAN/XsADf19AA39gAAN/YIADf2FAA39hgAN/YcADf2IAA39iQAN/YsADf2NAA39jgAN/Y8ADf2RAA39kgAN/asADf2sAA39rQAN/a8ADf4qAA3+LAAN/i4ADf4wAA3+MwAN/jQADf41AA3+NgAN/jcADf45AA3+OwAN/jwADf49AA3+PwAN/kAADf67AA3+vQAN/r8ADf7BAA3+xAAN/sUADf7GAA3+xwAN/sgADf7KAA3+zAAN/s0ADf7OAA3+0AAN/tEADf9MAA3/TgAN/1AADf9SAA3/VQAN/1YADf9XAA3/WAAN/1kADf9bAA3/XQAN/14ADf9fAA3/YQAN/2IADf/dAA3/3wAN/+EADf/jAA3/5gAN/+cADf/oAA3/6QAN/+oADf/sAA3/7gAN/+8ADf/wAA3/8gAN//MADgBuAA4AcAAOAHIADgB0AA4AdwAOAHgADgB5AA4AegAOAHsADgB9AA4AfwAOAIAADgCBAA4AgwAOAIQADgDNAA4A8QAOARgADgE8AA4BPwAOAUEADgFDAA4BRQAOAUcADgFJAA4BSgAOAU0ADgFmAA4BgwAOAYUADgGHAA4BiQAOAYsADgGNAA4BjwAOAZEADgGuAA4BsQAOAbQADgG3AA4BugAOAb0ADgHAAA4BwwAOAcUADgJAAA4CQgAOAkUADgJHAA4CSgAOAksADgJMAA4CTQAOAk4ADgJQAA4CUgAOAlMADgJUAA4CVgAOAlcADgLSAA4C1AAOAtYADgLYAA4C2wAOAtwADgLdAA4C3gAOAt8ADgLhAA4C4wAOAuQADgLlAA4C5wAOAugADgNjAA4DZQAOA2cADgNpAA4DbAAOA20ADgNuAA4DbwAOA3AADgNyAA4DdAAOA3UADgN2AA4DeAAOA3kADgP0AA4D9gAOA/kADgP7AA4D/gAOA/8ADgQAAA4EAQAOBAIADgQEAA4EBgAOBAcADgQIAA4ECgAOBAsADgSGAA4EiAAOBIoADgSMAA4EjwAOBJAADgSRAA4EkgAOBJMADgSVAA4ElwAOBJgADgSZAA4EmwAOBJwADgUXAA4FGQAOBRsADgUdAA4FIAAOBSEADgUiAA4FIwAOBSQADgUmAA4FKAAOBSkADgUqAA4FLAAOBS0ADgWoAA4FqgAOBawADgWuAA4FsQAOBbIADgWzAA4FtAAOBbUADgW3AA4FuQAOBboADgW7AA4FvQAOBb4ADgZRAA4GdAAOBpQADga0AA4GtgAOBrgADga6AA4GvAAOBr8ADgbAAA4GwQAOBsQADgbFAA4GxwAOBsgADgbKAA4GzQAOBs4ADgbPAA4G0gAOBtMADgbYAA4G8QAOBvoADgb8AA4G/gAOBwcADgcKAA4HDQAOBw8ADgdYAA4HfAAOB6MADgfHAA4HygAOB8wADgfOAA4H0AAOB9IADgfUAA4H1QAOB9gADgfxAA4IEgAOCBQADggWAA4IGAAOCBoADggcAA4IHgAOCCAADggiAA4IQwAOCEYADghJAA4ITAAOCE8ADghSAA4IVQAOCFgADghbAA4IXQAOCNgADgjaAA4I3AAOCN4ADgjhAA4I4gAOCOMADgjkAA4I5QAOCOcADgjpAA4I6gAOCOsADgjtAA4I7gAOCWkADglrAA4JbQAOCW8ADglyAA4JcwAOCXQADgl1AA4JdgAOCXgADgl6AA4JewAOCXwADgl+AA4JfwAOCfoADgn8AA4J/wAOCgEADgoEAA4KBQAOCgYADgoHAA4KCAAOCgoADgoMAA4KDQAOCg4ADgoQAA4KEQAOCioADgorAA4KLAAOCi4ADgqpAA4KqwAOCq0ADgqvAA4KsgAOCrMADgq0AA4KtQAOCrYADgq4AA4KugAOCrsADgq8AA4KvgAOCr8ADgs6AA4LPAAOCz4ADgtAAA4LQwAOC0QADgtFAA4LRgAOC0cADgtJAA4LSwAOC0wADgtNAA4LTwAOC1AADgvLAA4LzQAOC88ADgvRAA4L1AAOC9UADgvWAA4L1wAOC9gADgvaAA4L3AAOC90ADgveAA4L4AAOC+EADgxcAA4MXgAODGAADgxiAA4MZQAODGYADgxnAA4MaAAODGkADgxrAA4MbQAODG4ADgxvAA4McQAODHIADgztAA4M7wAODPEADgzzAA4M9gAODPcADgz4AA4M+QAODPoADgz8AA4M/gAODP8ADg0AAA4NAgAODQMADg1MAA4NcAAODZcADg27AA4NvgAODcAADg3CAA4NxAAODcYADg3IAA4NyQAODcwADg3lAA4OAgAODgQADg4GAA4OCAAODgoADg4MAA4ODgAODhAADg4tAA4OMAAODjMADg42AA4OOQAODjwADg4/AA4OQgAODkQADg6/AA4OwQAODsQADg7GAA4OyQAODsoADg7LAA4OzAAODs0ADg7PAA4O0QAODtIADg7TAA4O1QAODtYADg9RAA4PUwAOD1UADg9XAA4PWgAOD1sADg9cAA4PXQAOD14ADg9gAA4PYgAOD2MADg9kAA4PZgAOD2cADg/iAA4P5AAOD+YADg/oAA4P6wAOD+wADg/tAA4P7gAOD+8ADg/xAA4P8wAOD/QADg/1AA4P9wAOD/gADhBzAA4QdQAOEHgADhB6AA4QfQAOEH4ADhB/AA4QgAAOEIEADhCDAA4QhQAOEIYADhCHAA4QiQAOEIoADhEFAA4RBwAOEQkADhELAA4RDgAOEQ8ADhEQAA4REQAOERIADhEUAA4RFgAOERcADhEYAA4RGgAOERsADhGWAA4RmAAOEZoADhGcAA4RnwAOEaAADhGhAA4RogAOEaMADhGlAA4RpwAOEagADhGpAA4RqwAOEawADhInAA4SKQAOEisADhItAA4SMAAOEjEADhIyAA4SMwAOEjQADhI2AA4SOAAOEjkADhI6AA4SPAAOEj0ADhLQAA4S8wAOExMADhMzAA4TNQAOEzcADhM5AA4TOwAOEz4ADhM/AA4TQAAOE0MADhNEAA4TRgAOE0cADhNJAA4TTAAOE00ADhNOAA4TUQAOE1IADhNXAA4TcAAOE3kADhN7AA4TfQAOE4YADhOJAA4TjAAOE44ADhPXAA4T+wAOFCIADhRGAA4USQAOFEsADhRNAA4UTwAOFFEADhRTAA4UVAAOFFcADhRwAA4UkQAOFJMADhSVAA4UlwAOFJkADhSbAA4UnQAOFJ8ADhShAA4UwgAOFMUADhTIAA4UywAOFM4ADhTRAA4U1AAOFNcADhTaAA4U3AAOFVcADhVZAA4VWwAOFV0ADhVgAA4VYQAOFWIADhVjAA4VZAAOFWYADhVoAA4VaQAOFWoADhVsAA4VbQAOFegADhXqAA4V7AAOFe4ADhXxAA4V8gAOFfMADhX0AA4V9QAOFfcADhX5AA4V+gAOFfsADhX9AA4V/gAOFnkADhZ7AA4WfgAOFoAADhaDAA4WhAAOFoUADhaGAA4WhwAOFokADhaLAA4WjAAOFo0ADhaPAA4WkAAOFqkADhaqAA4WqwAOFq0ADhcoAA4XKgAOFywADhcuAA4XMQAOFzIADhczAA4XNAAOFzUADhc3AA4XOQAOFzoADhc7AA4XPQAOFz4ADhe5AA4XuwAOF70ADhe/AA4XwgAOF8MADhfEAA4XxQAOF8YADhfIAA4XygAOF8sADhfMAA4XzgAOF88ADhhKAA4YTAAOGE4ADhhQAA4YUwAOGFQADhhVAA4YVgAOGFcADhhZAA4YWwAOGFwADhhdAA4YXwAOGGAADhjbAA4Y3QAOGN8ADhjhAA4Y5AAOGOUADhjmAA4Y5wAOGOgADhjqAA4Y7AAOGO0ADhjuAA4Y8AAOGPEADhlsAA4ZbgAOGXAADhlyAA4ZdQAOGXYADhl3AA4ZeAAOGXkADhl7AA4ZfQAOGX4ADhl/AA4ZgQAOGYIADhnLAA4Z7wAOGhYADho6AA4aPQAOGj8ADhpBAA4aQwAOGkUADhpHAA4aSAAOGksADhpkAA4agQAOGoMADhqFAA4ahwAOGokADhqLAA4ajQAOGo8ADhqsAA4arwAOGrIADhq1AA4auAAOGrsADhq+AA4awQAOGsMADhs+AA4bQAAOG0IADhtEAA4bRwAOG0gADhtJAA4bSgAOG0sADhtNAA4bTwAOG1AADhtRAA4bUwAOG1QADhvPAA4b0QAOG9MADhvVAA4b2AAOG9kADhvaAA4b2wAOG9wADhveAA4b4AAOG+EADhviAA4b5AAOG+UADhxgAA4cYgAOHGQADhxmAA4caQAOHGoADhxrAA4cbAAOHG0ADhxvAA4ccQAOHHIADhxzAA4cdQAOHHYADhzxAA4c8wAOHPYADhz4AA4c+wAOHPwADhz9AA4c/gAOHP8ADh0BAA4dAwAOHQQADh0FAA4dBwAOHQgADh2DAA4dhQAOHYcADh2JAA4djAAOHY0ADh2OAA4djwAOHZAADh2SAA4dlAAOHZUADh2WAA4dmAAOHZkADh4UAA4eFgAOHhgADh4aAA4eHQAOHh4ADh4fAA4eIAAOHiEADh4jAA4eJQAOHiYADh4nAA4eKQAOHioADh6lAA4epwAOHqkADh6rAA4ergAOHq8ADh6wAA4esQAOHrIADh60AA4etgAOHrcADh64AA4eugAOHrsADh9OAA4fcQAOH5EADh+xAA4fswAOH7UADh+3AA4fuQAOH7wADh+9AA4fvgAOH8EADh/CAA4fxAAOH8UADh/HAA4fygAOH8sADh/MAA4fzwAOH9AADh/VAA4f7gAOH/cADh/5AA4f+wAOIAQADiAHAA4gCgAOIAwADiBVAA4geQAOIKAADiDEAA4gxwAOIMkADiDLAA4gzQAOIM8ADiDRAA4g0gAOINUADiDuAA4hDwAOIREADiETAA4hFQAOIRcADiEZAA4hGwAOIR0ADiEfAA4hQAAOIUMADiFGAA4hSQAOIUwADiFPAA4hUgAOIVUADiFYAA4hWgAOIdUADiHXAA4h2QAOIdsADiHeAA4h3wAOIeAADiHhAA4h4gAOIeQADiHmAA4h5wAOIegADiHqAA4h6wAOImYADiJoAA4iagAOImwADiJvAA4icAAOInEADiJyAA4icwAOInUADiJ3AA4ieAAOInkADiJ7AA4ifAAOIvcADiL5AA4i/AAOIv4ADiMBAA4jAgAOIwMADiMEAA4jBQAOIwcADiMJAA4jCgAOIwsADiMNAA4jDgAOIycADiMoAA4jKQAOIysADiOmAA4jqAAOI6oADiOsAA4jrwAOI7AADiOxAA4jsgAOI7MADiO1AA4jtwAOI7gADiO5AA4juwAOI7wADiQ3AA4kOQAOJDsADiQ9AA4kQAAOJEEADiRCAA4kQwAOJEQADiRGAA4kSAAOJEkADiRKAA4kTAAOJE0ADiTIAA4kygAOJMwADiTOAA4k0QAOJNIADiTTAA4k1AAOJNUADiTXAA4k2QAOJNoADiTbAA4k3QAOJN4ADiVZAA4lWwAOJV0ADiVfAA4lYgAOJWMADiVkAA4lZQAOJWYADiVoAA4lagAOJWsADiVsAA4lbgAOJW8ADiXqAA4l7AAOJe4ADiXwAA4l8wAOJfQADiX1AA4l9gAOJfcADiX5AA4l+wAOJfwADiX9AA4l/wAOJgAADiZJAA4mbQAOJpQADia4AA4muwAOJr0ADia/AA4mwQAOJsMADibFAA4mxgAOJskADibiAA4m/wAOJwEADicDAA4nBQAOJwcADicJAA4nCwAOJw0ADicqAA4nLQAOJzAADiczAA4nNgAOJzkADic8AA4nPwAOJ0EADie8AA4nvgAOJ8AADifCAA4nxQAOJ8YADifHAA4nyAAOJ8kADifLAA4nzQAOJ84ADifPAA4n0QAOJ9IADihNAA4oTwAOKFEADihTAA4oVgAOKFcADihYAA4oWQAOKFoADihcAA4oXgAOKF8ADihgAA4oYgAOKGMADijeAA4o4AAOKOIADijkAA4o5wAOKOgADijpAA4o6gAOKOsADijtAA4o7wAOKPAADijxAA4o8wAOKPQADilvAA4pcQAOKXQADil2AA4peQAOKXoADil7AA4pfAAOKX0ADil/AA4pgQAOKYIADimDAA4phQAOKYYADioBAA4qAwAOKgUADioHAA4qCgAOKgsADioMAA4qDQAOKg4ADioQAA4qEgAOKhMADioUAA4qFgAOKhcADiqSAA4qlAAOKpYADiqYAA4qmwAOKpwADiqdAA4qngAOKp8ADiqhAA4qowAOKqQADiqlAA4qpwAOKqgADisjAA4rJQAOKycADispAA4rLAAOKy0ADisuAA4rLwAOKzAADisyAA4rNAAOKzUADis2AA4rOAAOKzkADivMAA4r7wAOLA8ADiwvAA4sMQAOLDMADiw1AA4sNwAOLDoADiw7AA4sPAAOLD8ADixAAA4sQgAOLEMADixFAA4sSAAOLEkADixKAA4sTQAOLE4ADixTAA4sbAAOLHUADix3AA4seQAOLIIADiyFAA4siAAOLIoADizTAA4s9wAOLR4ADi1CAA4tRQAOLUcADi1JAA4tSwAOLU0ADi1PAA4tUAAOLVMADi1sAA4tjQAOLY8ADi2RAA4tkwAOLZUADi2XAA4tmQAOLZsADi2dAA4tvgAOLcEADi3EAA4txwAOLcoADi3NAA4t0AAOLdMADi3WAA4t2AAOLlMADi5VAA4uVwAOLlkADi5cAA4uXQAOLl4ADi5fAA4uYAAOLmIADi5kAA4uZQAOLmYADi5oAA4uaQAOLuQADi7mAA4u6AAOLuoADi7tAA4u7gAOLu8ADi7wAA4u8QAOLvMADi71AA4u9gAOLvcADi75AA4u+gAOL3UADi93AA4vegAOL3wADi9/AA4vgAAOL4EADi+CAA4vgwAOL4UADi+HAA4viAAOL4kADi+LAA4vjAAOL6UADi+mAA4vpwAOL6kADjAkAA4wJgAOMCgADjAqAA4wLQAOMC4ADjAvAA4wMAAOMDEADjAzAA4wNQAOMDYADjA3AA4wOQAOMDoADjC1AA4wtwAOMLkADjC7AA4wvgAOML8ADjDAAA4wwQAOMMIADjDEAA4wxgAOMMcADjDIAA4wygAOMMsADjFGAA4xSAAOMUoADjFMAA4xTwAOMVAADjFRAA4xUgAOMVMADjFVAA4xVwAOMVgADjFZAA4xWwAOMVwADjHXAA4x2QAOMdsADjHdAA4x4AAOMeEADjHiAA4x4wAOMeQADjHmAA4x6AAOMekADjHqAA4x7AAOMe0ADjJoAA4yagAOMmwADjJuAA4ycQAOMnIADjJzAA4ydAAOMnUADjJ3AA4yeQAOMnoADjJ7AA4yfQAOMn4ADjLHAA4y6wAOMxIADjM2AA4zOQAOMzsADjM9AA4zPwAOM0EADjNDAA4zRAAOM0cADjNgAA4zfQAOM38ADjOBAA4zgwAOM4UADjOHAA4ziQAOM4sADjOoAA4zqwAOM64ADjOxAA4ztAAOM7cADjO6AA4zvQAOM78ADjQ6AA40PAAOND8ADjRBAA40RAAONEUADjRGAA40RwAONEgADjRKAA40TAAONE0ADjROAA40UAAONFEADjTMAA40zgAONNAADjTSAA401QAONNYADjTXAA402AAONNkADjTbAA403QAONN4ADjTfAA404QAONOIADjVdAA41XwAONWEADjVjAA41ZgAONWcADjVoAA41aQAONWoADjVsAA41bgAONW8ADjVwAA41cgAONXMADjXuAA418AAONfMADjX1AA41+AAONfkADjX6AA41+wAONfwADjX+AA42AAAONgEADjYCAA42BAAONgUADjaAAA42ggAONoQADjaGAA42iQAONooADjaLAA42jAAONo0ADjaPAA42kQAONpIADjaTAA42lQAONpYADjcRAA43EwAONxUADjcXAA43GgAONxsADjccAA43HQAONx4ADjcgAA43IgAONyMADjckAA43JgAONycADjeiAA43pAAON6YADjeoAA43qwAON6wADjetAA43rgAON68ADjexAA43swAON7QADje1AA43twAON7gADjfJAA43ygAON8wADjhHAA44SQAOOEsADjhNAA44UAAOOFEADjhSAA44UwAOOFQADjhWAA44WQAOOFoADjhbAA44XQAOOF4ADjjZAA442wAOON0ADjjfAA444gAOOOMADjjkAA445QAOOOYADjjoAA446wAOOOwADjjtAA447wAOOPAADjlrAA45bQAOOXAADjlyAA45dQAOOXYADjl3AA45eAAOOXkADjl7AA45fgAOOX8ADjmAAA45ggAOOYMADjoWAA46OQAOOlkADjp5AA46ewAOOn0ADjp/AA46gQAOOoQADjqFAA46hgAOOokADjqKAA46jAAOOo0ADjqPAA46kgAOOpMADjqUAA46lwAOOpgADjqhAA46ugAOOsMADjrFAA46xwAOOtAADjrTAA461gAOOtgADjshAA47RQAOO2wADjuQAA47kwAOO5UADjuXAA47mQAOO5sADjudAA47ngAOO6EADju6AA472wAOO90ADjvfAA474QAOO+MADjvlAA475wAOO+kADjvrAA48DAAOPA8ADjwSAA48FQAOPBgADjwbAA48HgAOPCEADjwkAA48JgAOPKEADjyjAA48pQAOPKcADjyqAA48qwAOPKwADjytAA48rgAOPLAADjyyAA48swAOPLQADjy2AA48twAOPTIADj00AA49NgAOPTgADj07AA49PAAOPT0ADj0+AA49PwAOPUEADj1DAA49RAAOPUUADj1HAA49SAAOPcMADj3FAA49yAAOPcoADj3NAA49zgAOPc8ADj3QAA490QAOPdMADj3VAA491gAOPdcADj3ZAA492gAOPfMADj30AA499QAOPfcADj5yAA4+dAAOPnYADj54AA4+ewAOPnwADj59AA4+fgAOPn8ADj6BAA4+gwAOPoQ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ADlAzAA5QNAAOUDUADlA3AA5QOQAOUDoADlA7AA5QPQAOUD4ADlC5AA5QuwAOUL4ADlDAAA5QwwAOUMQADlDFAA5QxgAOUMcADlDJAA5QywAOUMwADlDNAA5QzwAOUNAADlFLAA5RTQAOUU8ADlFRAA5RVAAOUVUADlFWAA5RVwAOUVgADlFaAA5RXAAOUV0ADlFeAA5RYAAOUWEADlHcAA5R3gAOUeAADlHiAA5R5QAOUeYADlHnAA5R6AAOUekADlHrAA5R7QAOUe4ADlHvAA5R8QAOUfIADlJtAA5SbwAOUnEADlJzAA5SdgAOUncADlJ4AA5SeQAOUnoADlJ8AA5SfgAOUn8ADlKAAA5SggAOUoMADlMWAA5TOQAOU1kADlN5AA5TewAOU30ADlN/AA5TgQAOU4QADlOFAA5ThgAOU4kADlOKAA5TjAAOU40ADlOPAA5TkgAOU5MADlOUAA5TlwAOU5gADlOdAA5TtgAOU78ADlPBAA5TwwAOU8wADlPPAA5T0gAOU9QADlQdAA5UQQAOVGgADlSMAA5UjwAOVJEADlSTAA5UlQAOVJcADlSZAA5UmgAOVJ0ADlS2AA5U1wAOVNkADlTbAA5U3QAOVN8ADlThAA5U4wAOVOUADlTnAA5VCAAOVQsADlUOAA5VEQAOVRQADlUXAA5VGgAOVR0ADlUgAA5VIgAOVZ0ADlWfAA5VoQAOVaMADlWmAA5VpwAOVagADlWpAA5VqgAOVawADlWuAA5VrwAOVbAADlWyAA5VswAOVi4ADlYwAA5WMgAOVjQADlY3AA5WOAAOVjkADlY6AA5WOwAOVj0ADlY/AA5WQAAOVkEADlZDAA5WRAAOVr8ADlbBAA5WxAAOVsYADlbJAA5WygAOVssADlbMAA5WzQAOVs8ADlbRAA5W0gAOVtMADlbVAA5W1gAOVu8ADlbwAA5W8QAOVvMADlduAA5XcAAOV3IADld0AA5XdwAOV3gADld5AA5XegAOV3sADld9AA5XfwAOV4AADleBAA5XgwAOV4QADlf/AA5YAQAOWAMADlgFAA5YCAAOWAkADlgKAA5YCwAOWAwADlgOAA5YEAAOWBEADlgSAA5YFAAOWBUADliQAA5YkgAOWJQADliWAA5YmQAOWJoADlibAA5YnAAOWJ0ADlifAA5YoQAOWKIADlijAA5YpQAOWKYADlkhAA5ZIwAOWSUADlknAA5ZKgAOWSsADlksAA5ZLQAOWS4ADlkwAA5ZMgAOWTMADlk0AA5ZNgAOWTcADlmyAA5ZtAAOWbYADlm4AA5ZuwAOWbwADlm9AA5ZvgAOWb8ADlnBAA5ZwwAOWcQADlnFAA5ZxwAOWcgADloRAA5aNQAOWlwADlqAAA5agwAOWoUADlqHAA5aiQAOWosADlqNAA5ajgAOWpEADlqqAA5axwAOWskADlrLAA5azQAOWs8ADlrRAA5a0wAOWtUADlryAA5a9QAOWvgADlr7AA5a/gAOWwEADlsEAA5bBwAOWwkADluEAA5bhgAOW4gADluKAA5bjQAOW44ADluPAA5bkAAOW5EADluTAA5blQAOW5YADluXAA5bmQAOW5oADlwVAA5cFwAOXBkADlwbAA5cHgAOXB8ADlwgAA5cIQAOXCIADlwkAA5cJgAOXCcADlwoAA5cKgAOXCsADlymAA5cqAAOXKoADlysAA5crwAOXLAADlyxAA5csgAOXLMADly1AA5ctwAOXLgADly5AA5cuwAOXLwADl03AA5dOQAOXTwADl0+AA5dQQAOXUIADl1DAA5dRAAOXUUADl1HAA5dSQAOXUoADl1LAA5dTQAOXU4ADl3JAA5dywAOXc0ADl3PAA5d0gAOXdMADl3UAA5d1QAOXdYADl3YAA5d2gAOXdsADl3cAA5d3gAOXd8ADl5aAA5eXAAOXl4ADl5gAA5eYwAOXmQADl5lAA5eZgAOXmcADl5pAA5eawAOXmwADl5tAA5ebwAOXnAADl7rAA5e7QAOXu8ADl7xAA5e9AAOXvUADl72AA5e9wAOXvgADl76AA5e/AAOXv0ADl7+AA5fAAAOXwEADl+UAA5ftwAOX9cADl/3AA5f+QAOX/sADl/9AA5f/wAOYAIADmADAA5gBAAOYAcADmAIAA5gCgAOYAsADmANAA5gEAAOYBEADmASAA5gFQAOYBYADmAbAA5gNAAOYD0ADmA/AA5gQQAOYEoADmBNAA5gUAAOYFIADmCbAA5gvwAOYOYADmEKAA5hDQAOYQ8ADmERAA5hEwAOYRUADmEXAA5hGAAOYRsADmE0AA5hVQAOYVcADmFZAA5hWwAOYV0ADmFfAA5hYQAOYWMADmFlAA5hhgAOYYkADmGMAA5hjwAOYZIADmGVAA5hmAAOYZsADmGeAA5hoAAOYhsADmIdAA5iHwAOYiEADmIkAA5iJQAOYiYADmInAA5iKAAOYioADmIsAA5iLQAOYi4ADmIwAA5iMQAOYqwADmKuAA5isAAOYrIADmK1AA5itgAOYrcADmK4AA5iuQAOYrsADmK9AA5ivgAOYr8ADmLBAA5iwgAOYz0ADmM/AA5jQgAOY0QADmNHAA5jSAAOY0kADmNKAA5jSwAOY00ADmNPAA5jUAAOY1EADmNTAA5jVAAOY20ADmNuAA5jbwAOY3EADmPsAA5j7gAOY/AADmPyAA5j9QAOY/YADmP3AA5j+AAOY/kADmP7AA5j/QAOY/4ADmP/AA5kAQAOZAIADmR9AA5kfwAOZIEADmSDAA5khgAOZIcADmSIAA5kiQAOZIoADmSMAA5kjgAOZI8ADmSQAA5kkgAOZJMADmUOAA5lEAAOZRIADmUUAA5lFwAOZRgADmUZAA5lGgAOZRsADmUdAA5lHwAOZSAADmUhAA5lIwAOZSQADmWfAA5loQAOZaMADmWlAA5lqAAOZakADmWqAA5lqwAOZawADmWuAA5lsAAOZbEADmWyAA5ltAAOZbUADmYwAA5mMgAOZjQADmY2AA5mOQAOZjoADmY7AA5mPAAOZj0ADmY/AA5mQQAOZkIADmZDAA5mRQAOZkYADmaPAA5mswAOZtoADmb+AA5nAQAOZwMADmcFAA5nBwAOZwkADmcLAA5nDAAOZw8ADmcoAA5nRQAOZ0cADmdJAA5nSwAOZ00ADmdPAA5nUQAOZ1MADmdwAA5ncwAOZ3YADmd5AA5nfAAOZ38ADmeCAA5nhQAOZ4cADmgCAA5oBAAOaAYADmgIAA5oCwAOaAwADmgNAA5oDgAOaA8ADmgRAA5oEwAOaBQADmgVAA5oFwAOaBgADmiTAA5olQAOaJcADmiZAA5onAAOaJ0ADmieAA5onwAOaKAADmiiAA5opAAOaKUADmimAA5oqAAOaKkADmkkAA5pJgAOaSgADmkqAA5pLQAOaS4ADmkvAA5pMAAOaTEADmkzAA5pNQAOaTYADmk3AA5pOQAOaToADmm1AA5ptwAOaboADmm8AA5pvwAOacAADmnBAA5pwgAOacMADmnFAA5pxwAOacgADmnJAA5pywAOacwADmpHAA5qSQAOaksADmpNAA5qUAAOalEADmpSAA5qUwAOalQADmpWAA5qWAAOalkADmpaAA5qXAAOal0ADmrYAA5q2gAOatwADmreAA5q4QAOauIADmrjAA5q5AAOauUADmrnAA5q6QAOauoADmrrAA5q7QAOau4ADmtpAA5rawAOa20ADmtvAA5rcgAOa3MADmt0AA5rdQAOa3YADmt4AA5regAOa3sADmt8AA5rfgAOa38ADmwSAA5sNQAObFUADmx1AA5sdwAObHkADmx7AA5sfQAObIAADmyBAA5sggAObIUADmyGAA5siAAObIkADmyLAA5sjgAObI8ADmyQAA5skwAObJQADmyZAA5ssgAObLsADmy9AA5svwAObMgADmzLAA5szgAObNAADm0ZAA5tPQAObWQADm2IAA5tiwAObY0ADm2PAA5tkQAObZMADm2VAA5tlgAObZkADm2yAA5t0wAObdUADm3XAA5t2QAObdsADm3dAA5t3wAObeEADm3jAA5uBAAObgcADm4KAA5uDQAObhAADm4TAA5uFgAObhkADm4cAA5uHgAObpkADm6bAA5unQAObp8ADm6iAA5uowAObqQADm6lAA5upgAObqgADm6qAA5uqwAObqwADm6uAA5urwAObyoADm8sAA5vLgAObzAADm8zAA5vNAAObzUADm82AA5vNwAObzkADm87AA5vPAAObz0ADm8/AA5vQAAOb7sADm+9AA5vwAAOb8IADm/FAA5vxgAOb8cADm/IAA5vyQAOb8sADm/NAA5vzgAOb88ADm/RAA5v0gAOb+sADm/sAA5v7QAOb+8ADnBqAA5wbAAOcG4ADnBwAA5wcwAOcHQADnB1AA5wdgAOcHcADnB5AA5wewAOcHwADnB9AA5wfwAOcIAADnD7AA5w/QAOcP8ADnEBAA5xBAAOcQUADnEGAA5xBwAOcQgADnEKAA5xDAAOcQ0ADnEOAA5xEAAOcREADnGMAA5xjgAOcZAADnGSAA5xlQAOcZYADnGXAA5xmAAOcZkADnGbAA5xnQAOcZ4ADnGfAA5xoQAOcaIADnIdAA5yHwAOciEADnIjAA5yJgAOcicADnIoAA5yKQAOcioADnIsAA5yLgAOci8ADnIwAA5yMgAOcjMADnKuAA5ysAAOcrIADnK0AA5ytwAOcrgADnK5AA5yugAOcrsADnK9AA5yvwAOcsAADnLBAA5ywwAOcsQADnMNAA5zMQAOc1gADnN8AA5zfwAOc4EADnODAA5zhQAOc4cADnOJAA5zigAOc40ADnOmAA5zwwAOc8UADnPHAA5zyQAOc8sADnPNAA5zzwAOc9EADnPuAA5z8QAOc/QADnP3AA5z+gAOc/0ADnQAAA50AwAOdAUADnSAAA50ggAOdIQADnSGAA50iQAOdIoADnSLAA50jAAOdI0ADnSPAA50kQAOdJIADnSTAA50lQAOdJYADnURAA51EwAOdRUADnUXAA51GgAOdRsADnUcAA51HQAOdR4ADnUgAA51IgAOdSMADnUkAA51JgAOdScADnWiAA51pAAOdaYADnWoAA51qwAOdawADnWtAA51rgAOda8ADnWxAA51swAOdbQADnW1AA51twAOdbgADnYzAA52NQAOdjcADnY5AA52PAAOdj0ADnY+AA52PwAOdkAADnZCAA52RAAOdkUADnZGAA52SAAOdkkADnbEAA52xgAOdsgADnbKAA52zQAOds4ADnbPAA520AAOdtEADnbTAA521QAOdtYADnbXAA522QAOdtoADndVAA53VwAOd1kADndbAA53XgAOd18ADndgAA53YQAOd2IADndkAA53ZgAOd2cADndoAA53agAOd2sADnfmAA536AAOd+oADnfsAA537wAOd/AADnfxAA538gAOd/MADnf1AA539wAOd/gADnf5AA53+wAOd/wADngNAA54DgAOeBAADniLAA54jQAOeI8ADniRAA54lAAOeJUADniWAA54lwAOeJgADniaAA54nQAOeJ4ADnifAA54oQAOeKIADnkdAA55HwAOeSEADnkjAA55JgAOeScADnkoAA55KQAOeSoADnksAA55LwAOeTAADnkxAA55MwAOeTQADnmvAA55sQAOebQADnm2AA55uQAOeboADnm7AA55vAAOeb0ADnm/AA55wgAOecMADnnEAA55xgAOeccADnpaAA56fQAOep0ADnq9AA56vwAOesEADnrDAA56xQAOesgADnrJAA56ygAOes0ADnrOAA560AAOetEADnrTAA561gAOetcADnrYAA562wAOetwADnrhAA56+gAOewMADnsFAA57BwAOexAADnsTAA57FgAOexgADnthAA57hQAOe6wADnvQAA570wAOe9UADnvXAA572QAOe9sADnvdAA573gAOe+EADnv6AA58GwAOfB0ADnwfAA58IQAOfCMADnwlAA58JwAOfCkADnwrAA58TAAOfE8ADnxSAA58VQAOfFgADnxbAA58XgAOfGEADnxkAA58ZgAOfOEADnzjAA585QAOfOcADnzqAA586wAOfOwADnztAA587gAOfPAADnzyAA588wAOfPQADnz2AA589wAOfXIADn10AA59dgAOfXgADn17AA59fAAOfX0ADn1+AA59fwAOfYEADn2DAA59hAAOfYUADn2HAA59iAAOfgMADn4FAA5+CAAOfgoADn4NAA5+DgAOfg8ADn4QAA5+EQAOfhMADn4VAA5+FgAOfhcADn4ZAA5+GgAOfjMADn40AA5+NQAOfjcADn6yAA5+tAAOfrYADn64AA5+uwAOfrwADn69AA5+vgAOfr8ADn7BAA5+wwAOfsQADn7FAA5+xwAOfsgADn9DAA5/RQAOf0cADn9JAA5/TAAOf00ADn9OAA5/TwAOf1AADn9SAA5/VAAOf1UADn9WAA5/WAAOf1kADn/UAA5/1gAOf9gADn/aAA5/3QAOf94ADn/fAA5/4AAOf+EADn/jAA5/5QAOf+YADn/nAA5/6QAOf+oADoBlAA6AZwAOgGkADoBrAA6AbgAOgG8ADoBwAA6AcQAOgHIADoB0AA6AdgAOgHcADoB4AA6AegAOgHsADoD2AA6A+AAOgPoADoD8AA6A/wAOgQAADoEBAA6BAgAOgQMADoEFAA6BBwAOgQgADoEJAA6BCwAOgQwADoFVAA6BeQAOgaAADoHEAA6BxwAOgckADoHLAA6BzQAOgc8ADoHRAA6B0gAOgdUADoHuAA6CCwAOgg0ADoIPAA6CEQAOghMADoIVAA6CFwAOghkADoI2AA6COQAOgjwADoI/AA6CQgAOgkUADoJIAA6CSwAOgk0ADoLIAA6CygAOgs0ADoLPAA6C0gAOgtMADoLUAA6C1QAOgtYADoLYAA6C2gAOgtsADoLcAA6C3gAOgt8ADoNaAA6DXAAOg14ADoNgAA6DYwAOg2QADoNlAA6DZgAOg2cADoNpAA6DawAOg2wADoNtAA6DbwAOg3AADoPrAA6D7QAOg+8ADoPxAA6D9AAOg/UADoP2AA6D9wAOg/gADoP6AA6D/AAOg/0ADoP+AA6EAAAOhAEADoR8AA6EfgAOhIEADoSDAA6EhgAOhIcADoSIAA6EiQAOhIoADoSMAA6EjgAOhI8ADoSQAA6EkgAOhJMADoUOAA6FEAAOhRIADoUUAA6FFwAOhRgADoUZAA6FGgAOhRsADoUdAA6FHwAOhSAADoUhAA6FIwAOhSQADoWfAA6FoQAOhaMADoWlAA6FqAAOhakADoWqAA6FqwAOhawADoWuAA6FsAAOhbEADoWyAA6FtAAOhbUADoYwAA6GMgAOhjQADoY2AA6GOQAOhjoADoY7AA6GPAAOhj0ADoY/AA6GQQAOhkIADoZDAA6GRQAOhkYADobZAA6G/AAOhxwADoc8AA6HPgAOh0AADodCAA6HRAAOh0cADodIAA6HSQAOh0wADodNAA6HTwAOh1AADodSAA6HVQAOh1YADodXAA6HWgAOh1sADodgAA6HeQAOh4IADoeEAA6HhgAOh48ADoeSAA6HlQAOh5cADofgAA6IBAAOiCsADohPAA6IUgAOiFQADohWAA6IWAAOiFoADohcAA6IXQAOiGAADoh5AA6ImgAOiJwADoieAA6IoAAOiKIADoikAA6IpgAOiKgADoiqAA6IywAOiM4ADojRAA6I1AAOiNcADojaAA6I3QAOiOAADojjAA6I5QAOiWAADoliAA6JZAAOiWYADolpAA6JagAOiWsADolsAA6JbQAOiW8ADolxAA6JcgAOiXMADol1AA6JdgAOifEADonzAA6J9QAOifcADon6AA6J+wAOifwADon9AA6J/gAOigAADooCAA6KAwAOigQADooGAA6KBwAOioIADoqEAA6KhwAOiokADoqMAA6KjQAOio4ADoqPAA6KkAAOipIADoqUAA6KlQAOipYADoqYAA6KmQAOirIADoqzAA6KtAAOirYADosxAA6LMwAOizUADos3AA6LOgAOizsADos8AA6LPQAOiz4ADotAAA6LQgAOi0MADotEAA6LRgAOi0cADovCAA6LxAAOi8YADovIAA6LywAOi8wADovNAA6LzgAOi88ADovRAA6L0wAOi9QADovVAA6L1wAOi9gADoxTAA6MVQAOjFcADoxZAA6MXAAOjF0ADoxeAA6MXwAOjGAADoxiAA6MZAAOjGUADoxmAA6MaAAOjGkADozkAA6M5gAOjOgADozqAA6M7QAOjO4ADozvAA6M8AAOjPEADozzAA6M9QAOjPYADoz3AA6M+QAOjPoADo11AA6NdwAOjXkADo17AA6NfgAOjX8ADo2AAA6NgQAOjYIADo2EAA6NhgAOjYcADo2IAA6NigAOjYsADo3UAA6N+AAOjh8ADo5DAA6ORgAOjkgADo5KAA6OTAAOjk4ADo5QAA6OUQAOjlQADo5tAA6OigAOjowADo6OAA6OkAAOjpIADo6UAA6OlgAOjpgADo61AA6OuAAOjrsADo6+AA6OwQAOjsQADo7HAA6OygAOjswADo9HAA6PSQAOj0sADo9NAA6PUAAOj1EADo9SAA6PUwAOj1QADo9WAA6PWAAOj1kADo9aAA6PXAAOj10ADo/YAA6P2gAOj9wADo/eAA6P4QAOj+IADo/jAA6P5AAOj+UADo/nAA6P6QAOj+oADo/rAA6P7QAOj+4ADpBpAA6QawAOkG0ADpBvAA6QcgAOkHMADpB0AA6QdQAOkHYADpB4AA6QegAOkHsADpB8AA6QfgAOkH8ADpD6AA6Q/AAOkP8ADpEBAA6RBAAOkQUADpEGAA6RBwAOkQgADpEKAA6RDAAOkQ0ADpEOAA6REAAOkREADpGMAA6RjgAOkZAADpGSAA6RlQAOkZYADpGXAA6RmAAOkZkADpGbAA6RnQAOkZ4ADpGfAA6RoQAOkaIADpIdAA6SHwAOkiEADpIjAA6SJgAOkicADpIoAA6SKQAOkioADpIsAA6SLgAOki8ADpIwAA6SMgAOkjMADpKuAA6SsAAOkrIADpK0AA6StwAOkrgADpK5AA6SugAOkrsADpK9AA6SvwAOksAADpLBAA6SwwAOksQADpNXAA6TegAOk5oADpO6AA6TvAAOk74ADpPAAA6TwgAOk8UADpPGAA6TxwAOk8oADpPLAA6TzQAOk84ADpPQAA6T0wAOk9QADpPVAA6T2AAOk9kADpPeAA6T9wAOlAAADpQCAA6UBAAOlA0ADpQQAA6UEwAOlBUADpReAA6UggAOlKkADpTNAA6U0AAOlNIADpTUAA6U1gAOlNgADpTaAA6U2wAOlN4ADpT3AA6VGAAOlRoADpUcAA6VHgAOlSAADpUiAA6VJAAOlSYADpUoAA6VSQAOlUwADpVPAA6VUgAOlVUADpVYAA6VWwAOlV4ADpVhAA6VYwAOld4ADpXgAA6V4gAOleQADpXnAA6V6AAOlekADpXqAA6V6wAOle0ADpXvAA6V8AAOlfEADpXzAA6V9AAOlm8ADpZxAA6WcwAOlnUADpZ4AA6WeQAOlnoADpZ7AA6WfAAOln4ADpaAAA6WgQAOloIADpaEAA6WhQAOlwAADpcCAA6XBQAOlwcADpcKAA6XCwAOlwwADpcNAA6XDgAOlxAADpcSAA6XEwAOlxQADpcWAA6XFwAOlzAADpcxAA6XMgAOlzQADpevAA6XsQAOl7MADpe1AA6XuAAOl7kADpe6AA6XuwAOl7wADpe+AA6XwAAOl8EADpfCAA6XxAAOl8UADphAAA6YQgAOmEQADphGAA6YSQAOmEoADphLAA6YTAAOmE0ADphPAA6YUQAOmFIADphTAA6YVQAOmFYADpjRAA6Y0wAOmNUADpjXAA6Y2gAOmNsADpjcAA6Y3QAOmN4ADpjgAA6Y4gAOmOMADpjkAA6Y5gAOmOcADpliAA6ZZAAOmWYADploAA6ZawAOmWwADpltAA6ZbgAOmW8ADplxAA6ZcwAOmXQADpl1AA6ZdwAOmXgADpnzAA6Z9QAOmfcADpn5AA6Z/AAOmf0ADpn+AA6Z/wAOmgAADpoCAA6aBAAOmgUADpoGAA6aCAAOmgkADppSAA6adgAOmp0ADprBAA6axAAOmsYADprIAA6aygAOmswADprOAA6azwAOmtIADprrAA6bCAAOmwoADpsMAA6bDgAOmxAADpsSAA6bFAAOmxYADpszAA6bNgAOmzkADps8AA6bPwAOm0IADptFAA6bSAAOm0oADpvFAA6bxwAOm8kADpvLAA6bzgAOm88ADpvQAA6b0QAOm9IADpvUAA6b1gAOm9cADpvYAA6b2gAOm9sADpxWAA6cWAAOnFoADpxcAA6cXwAOnGAADpxhAA6cYgAOnGMADpxlAA6cZwAOnGgADpxpAA6cawAOnGwADpznAA6c6QAOnOsADpztAA6c8AAOnPEADpzyAA6c8wAOnPQADpz2AA6c+AAOnPkADpz6AA6c/AAOnP0ADp14AA6degAOnXwADp1+AA6dgQAOnYIADp2DAA6dhAAOnYUADp2HAA6diQAOnYoADp2LAA6djQAOnY4ADp4JAA6eCwAOng0ADp4PAA6eEgAOnhMADp4UAA6eFQAOnhYADp4YAA6eGgAOnhsADp4cAA6eHgAOnh8ADp6aAA6enAAOnp4ADp6gAA6eowAOnqQADp6lAA6epgAOnqcADp6pAA6eqwAOnqwADp6tAA6erwAOnrAADp8rAA6fLQAOny8ADp8xAA6fNAAOnzUADp82AA6fNwAOnzgADp86AA6fPAAOnz0ADp8+AA6fQAAOn0EADp9SAA6fUwAOn1UADp/YAA6f/AAOoCAADqBDAA6gagAOoIoADqCxAA6g2AAOoPgADqEcAA6hQAAOoUIADqFFAA6hRwAOoUkADqFLAA6hTgAOoVEADqFTAA6hVQAOoVgADqFaAA6hXAAOoV8ADqFiAA6hYwAOoWgADqGBAA6hhgAOoYgADqGNAA6hkAAOoZIADqHbAA6h/wAOoiYADqJKAA6iTQAOok8ADqJRAA6iUwAOolUADqJXAA6iWAAOolsADqJ0AA6imQAOopsADqKdAA6inwAOoqEADqKjAA6ipQAOoqcADqKpAA6iqwAOotAADqLTAA6i1gAOotkADqLcAA6i3wAOouIADqLlAA6i6AAOousADqLtAA6jaAAOo2oADqNtAA6jbwAOo3IADqNzAA6jdAAOo3UADqN2AA6jeAAOo3oADqN7AA6jfAAOo34ADqN/AA6jkAAOo5EADqOTAA6kDgAOpBAADqQSAA6kFAAOpBcADqQYAA6kGQAOpBoADqQbAA6kHQAOpB8ADqQgAA6kIQAOpCMADqQkAA6knwAOpKEADqSkAA6kpgAOpKkADqSqAA6kqwAOpKwADqStAA6krwAOpLEADqSyAA6kswAOpLUADqS2AA6kxwAOpMwADqTPAA6k0QAOpOIADqTrAA6k7gAOpPEADqTzAA6lDwAOpSEADqWcAA6lngAOpaAADqWiAA6lpQAOpaYADqWnAA6lqAAOpakADqWrAA6lrQAOpa4ADqWvAA6lsQAOpbIADqYtAA6mLwAOpjIADqY0AA6mNwAOpjgADqY5AA6mOgAOpjsADqY9AA6mPwAOpkAADqZBAA6mQwAOpkQADqZVAA6mVgAOplgADqbTAA6m1QAOptcADqbZAA6m3AAOpt0ADqbeAA6m3wAOpuAADqbiAA6m5AAOpuUADqbmAA6m6AAOpukADqdkAA6nZgAOp2kADqdrAA6nbgAOp28ADqdwAA6ncQAOp3IADqd0AA6ndgAOp3cADqd4AA6negAOp3sADqeUAA6nlQAOp5YADqeYAA6oEwAOqBUADqgXAA6oGQAOqBwADqgdAA6oHgAOqB8ADqggAA6oIgAOqCQADqglAA6oJgAOqCgADqgpAA6opAAOqKYADqipAA6oqwAOqK4ADqivAA6osAAOqLEADqiyAA6otAAOqLYADqi3AA6ouAAOqLoADqi7AA6o1QAOqO4ADqj3AA6o+gAOqP0ADqkGAA6pCQAOqQwADqkOAA6pIAAOqTwADqnPAA6p8gAOqhIADqoyAA6qNAAOqjYADqo4AA6qOgAOqj0ADqo+AA6qPwAOqkIADqpDAA6qRQAOqkYADqpIAA6qSwAOqkwADqpNAA6qUAAOqlEADqpaAA6qcwAOqnwADqp+AA6qgAAOqokADqqMAA6qjwAOqpEADqraAA6q/gAOqyUADqtJAA6rTAAOq04ADqtQAA6rUgAOq1QADqtWAA6rVwAOq1oADqtzAA6rlAAOq5YADquYAA6rmgAOq5wADqueAA6roAAOq6IADqukAA6rxQAOq8gADqvLAA6rzgAOq9EADqvUAA6r1wAOq9oADqvdAA6r3wAOrFoADqxcAA6sXgAOrGAADqxjAA6sZAAOrGUADqxmAA6sZwAOrGkADqxrAA6sbAAOrG0ADqxvAA6scAAOrOsADqztAA6s7wAOrPEADqz0AA6s9QAOrPYADqz3AA6s+AAOrPoADqz8AA6s/QAOrP4ADq0AAA6tAQAOrXwADq1+AA6tgQAOrYMADq2GAA6thwAOrYgADq2JAA6tigAOrYwADq2OAA6tjwAOrZAADq2SAA6tkwAOrawADq2tAA6trgAOrbAADq4rAA6uLQAOri8ADq4xAA6uNAAOrjUADq42AA6uNwAOrjgADq46AA6uPAAOrj0ADq4+AA6uQAAOrkEADq68AA6uvgAOrsAADq7CAA6uxQAOrsYADq7HAA6uyAAOrskADq7LAA6uzQAOrs4ADq7PAA6u0QAOrtIADq9NAA6vTwAOr1EADq9TAA6vVgAOr1cADq9YAA6vWQAOr1oADq9cAA6vXgAOr18ADq9gAA6vYgAOr2MADq/eAA6v4AAOr+IADq/kAA6v5wAOr+gADq/pAA6v6gAOr+sADq/tAA6v7wAOr/AADq/xAA6v8wAOr/QADrBvAA6wcQAOsHMADrB1AA6weAAOsHkADrB6AA6wewAOsHwADrB+AA6wgAAOsIEADrCCAA6whAAOsIUADrDOAA6w8gAOsRkADrE9AA6xQAAOsUIADrFEAA6xRgAOsUgADrFKAA6xSwAOsU4ADrFnAA6xhAAOsYYADrGIAA6xigAOsYwADrGOAA6xkAAOsZIADrGvAA6xsgAOsbUADrG4AA6xuwAOsb4ADrHBAA6xxAAOscYADrJBAA6yQwAOskUADrJHAA6ySgAOsksADrJMAA6yTQAOsk4ADrJQAA6yUgAOslMADrJUAA6yVgAOslcADrLSAA6y1AAOstYADrLYAA6y2wAOstwADrLdAA6y3gAOst8ADrLhAA6y4wAOsuQADrLlAA6y5wAOsugADrNjAA6zZQAOs2cADrNpAA6zbAAOs20ADrNuAA6zbwAOs3AADrNyAA6zdAAOs3UADrN2AA6zeAAOs3kADrP0AA6z9gAOs/kADrP7AA6z/gAOs/8ADrQAAA60AQAOtAIADrQEAA60BgAOtAcADrQIAA60CgAOtAsADrSGAA60iAAOtIoADrSMAA60jwAOtJAADrSRAA60kgAOtJMADrSVAA60lwAOtJgADrSZAA60mwAOtJwADrUXAA61GQAOtRwADrUeAA61IQAOtSIADrUjAA61JAAOtSUADrUnAA61KQAOtSoADrUrAA61LQAOtS4ADrU9AA61uAAOtboADrW8AA61vgAOtcEADrXCAA61wwAOtcQADrXFAA61xwAOtckADrXKAA61ywAOtc0ADrXOAA62YQAOtoQADrakAA62xAAOtsYADrbIAA62ygAOtswADrbPAA620AAOttEADrbUAA621QAOttcADrbYAA622gAOtt0ADrbeAA623wAOtuIADrbjAA626AAOtwEADrcKAA63DAAOtw4ADrcXAA63GgAOtx0ADrcfAA63aAAOt4wADrezAA631wAOt9oADrfcAA633gAOt+AADrfiAA635AAOt+UADrfoAA64AQAOuCIADrgkAA64JgAOuCgADrgqAA64LAAOuC4ADrgwAA64MgAOuFMADrhWAA64WQAOuFwADrhfAA64YgAOuGUADrhoAA64awAOuG0ADrjoAA646gAOuOwADrjuAA648QAOuPIADrjzAA649AAOuPUADrj3AA64+QAOuPoADrj7AA64/QAOuP4ADrl5AA65ewAOuX0ADrl/AA65ggAOuYMADrmEAA65hQAOuYYADrmIAA65igAOuYsADrmMAA65jgAOuY8ADroKAA66DAAOug8ADroRAA66FAAOuhUADroWAA66FwAOuhgADroaAA66HAAOuh0ADroeAA66IAAOuiEADro6AA66OwAOujwADro+AA66uQAOursADrq9AA66vwAOusIADrrDAA66xAAOusUADrrGAA66yAAOusoADrrLAA66zAAOus4ADrrPAA67SgAOu0wADrtOAA67UAAOu1MADrtUAA67VQAOu1YADrtXAA67WQAOu1sADrtcAA67XQAOu18ADrtgAA672wAOu90ADrvfAA674QAOu+QADrvlAA675gAOu+cADrvoAA676gAOu+wADrvtAA677gAOu/AADrvxAA68bAAOvG4ADrxwAA68cgAOvHUADrx2AA68dwAOvHgADrx5AA68ewAOvH0ADrx+AA68fwAOvIEADryCAA68/QAOvP8ADr0BAA69AwAOvQYADr0HAA69CAAOvQkADr0KAA69DAAOvQ4ADr0PAA69EAAOvRIADr0TAA69XAAOvYAADr2nAA69ywAOvc4ADr3QAA690gAOvdQADr3WAA692AAOvdkADr3cAA699QAOvhIADr4UAA6+FgAOvhgADr4aAA6+HAAOvh4ADr4gAA6+PQAOvkAADr5DAA6+RgAOvkkADr5MAA6+TwAOvlIADr5UAA6+zwAOvtEADr7TAA6+1QAOvtgADr7ZAA6+2gAOvtsADr7cAA6+3gAOvuAADr7hAA6+4gAOvuQADr7lAA6/YAAOv2IADr9kAA6/ZgAOv2kADr9qAA6/awAOv2wADr9tAA6/bwAOv3EADr9yAA6/cwAOv3UADr92AA6/8QAOv/MADr/1AA6/9wAOv/oADr/7AA6//AAOv/0ADr/+AA7AAAAOwAIADsADAA7ABAAOwAYADsAHAA7AggAOwIQADsCHAA7AiQAOwIwADsCNAA7AjgAOwI8ADsCQAA7AkgAOwJQADsCVAA7AlgAOwJgADsCZAA7BFAAOwRYADsEYAA7BGgAOwR0ADsEeAA7BHwAOwSAADsEhAA7BIwAOwSUADsEmAA7BJwAOwSkADsEqAA7BpQAOwacADsGpAA7BqwAOwa4ADsGvAA7BsAAOwbEADsGyAA7BtAAOwbYADsG3AA7BuAAOwboADsG7AA7CNgAOwjgADsI6AA7CPAAOwj8ADsJAAA7CQQAOwkIADsJDAA7CRQAOwkcADsJIAA7CSQAOwksADsJMAA7CXQAOwl4ADsJgAA7C4wAOwwcADsMrAA7DTgAOw3UADsOVAA7DvAAOw+MADsQDAA7EJwAOxEsADsRNAA7EUAAOxFIADsRUAA7EVgAOxFkADsRcAA7EXgAOxGAADsRjAA7EZQAOxGcADsRqAA7EbQAOxG4ADsRzAA7EjAAOxJEADsSTAA7EmAAOxJsADsSdAA7E5gAOxQoADsUxAA7FVQAOxVgADsVaAA7FXAAOxV4ADsVgAA7FYgAOxWMADsVmAA7FfwAOxaQADsWmAA7FqAAOxaoADsWsAA7FrgAOxbAADsWyAA7FtAAOxbYADsXbAA7F3gAOxeEADsXkAA7F5wAOxeoADsXtAA7F8AAOxfMADsX2AA7F+AAOxnMADsZ1AA7GeAAOxnoADsZ9AA7GfgAOxn8ADsaAAA7GgQAOxoMADsaFAA7GhgAOxocADsaJAA7GigAOxpsADsacAA7GngAOxxkADscbAA7HHQAOxx8ADsciAA7HIwAOxyQADsclAA7HJgAOxygADscqAA7HKwAOxywADscuAA7HLwAOx6oADsesAA7HrwAOx7EADse0AA7HtQAOx7YADse3AA7HuAAOx7oADse8AA7HvQAOx74ADsfAAA7HwQAOx9IADsfXAA7H2gAOx9wADsftAA7H9gAOx/kADsf8AA7H/gAOyBAADsiLAA7IjQAOyI8ADsiRAA7IlAAOyJUADsiWAA7IlwAOyJgADsiaAA7InAAOyJ0ADsieAA7IoAAOyKEADskcAA7JHgAOySEADskjAA7JJgAOyScADskoAA7JKQAOySoADsksAA7JLgAOyS8ADskwAA7JMgAOyTMADslEAA7JRQAOyUcADsnCAA7JxAAOycYADsnIAA7JywAOycwADsnNAA7JzgAOyc8ADsnRAA7J0wAOydQADsnVAA7J1wAOydgADspTAA7KVQAOylgADspaAA7KXQAOyl4ADspfAA7KYAAOymEADspjAA7KZQAOymYADspnAA7KaQAOymoADsqDAA7KhAAOyoUADsqHAA7LAgAOywQADssGAA7LCAAOywsADssMAA7LDQAOyw4ADssPAA7LEQAOyxMADssUAA7LFQAOyxcADssYAA7LkwAOy5UADsuXAA7LmQAOy5wADsudAA7LngAOy58ADsugAA7LogAOy6QADsulAA7LpgAOy6gADsupAA7LwgAOy+MADsvmAA7L6QAOy+wADsvvAA7L8gAOy/UADsv4AA7L+wAOzBwADswfAA7MIgAOzCUADswoAA7MKwAOzC4ADswxAA7MNAAOzDYADsxMAA7MWQAOzHEADsyDAA7MjQAOzKEADsyrAA7NPgAOzWEADs2BAA7NoQAOzaMADs2lAA7NpwAOzakADs2sAA7NrQAOza4ADs2xAA7NsgAOzbQADs21AA7NtwAOzboADs27AA7NvAAOzb8ADs3AAA7NxQAOzd4ADs3nAA7N6QAOzesADs30AA7N9wAOzfoADs38AA7ORQAOzmkADs6QAA7OtAAOzrcADs65AA7OuwAOzr0ADs6/AA7OwQAOzsIADs7FAA7O3gAOzv8ADs8BAA7PAwAOzwUADs8HAA7PCQAOzwsADs8NAA7PDwAOzzAADs8zAA7PNgAOzzkADs88AA7PPwAOz0IADs9FAA7PSAAOz0oADs/FAA7PxwAOz8kADs/LAA7PzgAOz88ADs/QAA7P0QAOz9IADs/UAA7P1gAOz9cADs/YAA7P2gAOz9sADtBWAA7QWAAO0FoADtBcAA7QXwAO0GAADtBhAA7QYgAO0GMADtBlAA7QZwAO0GgADtBpAA7QawAO0GwADtDnAA7Q6QAO0OwADtDuAA7Q8QAO0PIADtDzAA7Q9AAO0PUADtD3AA7Q+QAO0PoADtD7AA7Q/QAO0P4ADtEXAA7RGAAO0RkADtEbAA7RlgAO0ZgADtGaAA7RnAAO0Z8ADtGgAA7RoQAO0aIADtGjAA7RpQAO0acADtGoAA7RqQAO0asADtGsAA7SJwAO0ikADtIrAA7SLQAO0jAADtIxAA7SMgAO0jMADtI0AA7SNgAO0jgADtI5AA7SOgAO0jwADtI9AA7SuAAO0roADtK8AA7SvgAO0sEADtLCAA7SwwAO0sQADtLFAA7SxwAO0skADtLKAA7SywAO0s0ADtLOAA7TSQAO00sADtNNAA7TTwAO01IADtNTAA7TVAAO01UADtNWAA7TWAAO01oADtNbAA7TXAAO014ADtNfAA7T2gAO09wADtPeAA7T4AAO0+MADtPkAA7T5QAO0+YADtPnAA7T6QAO0+sADtPsAA7T7QAO0+8ADtPwAA7UOQAO1F0ADtSEAA7UqAAO1KsADtStAA7UrwAO1LEADtSzAA7UtQAO1LYADtS5AA7U0gAO1O8ADtTxAA7U8wAO1PUADtT3AA7U+QAO1PsADtT9AA7VGgAO1R0ADtUgAA7VIwAO1SYADtUpAA7VLAAO1S8ADtUxAA7VrAAO1a4ADtWwAA7VsgAO1bUADtW2AA7VtwAO1bgADtW5AA7VuwAO1b0ADtW+AA7VvwAO1cEADtXCAA7WPQAO1j8ADtZBAA7WQwAO1kYADtZHAA7WSAAO1kkADtZKAA7WTAAO1k4ADtZPAA7WUAAO1lIADtZTAA7WzgAO1tAADtbSAA7W1AAO1tcADtbYAA7W2QAO1toADtbbAA7W3QAO1t8ADtbgAA7W4QAO1uMADtbkAA7XXwAO12EADtdkAA7XZgAO12kADtdqAA7XawAO12wADtdtAA7XbwAO13EADtdyAA7XcwAO13UADtd2AA7X8QAO1/MADtf1AA7X9wAO1/oADtf7AA7X/AAO1/0ADtf+AA7YAAAO2AIADtgDAA7YBAAO2AYADtgHAA7YggAO2IQADtiGAA7YiAAO2IsADtiMAA7YjQAO2I4ADtiPAA7YkQAO2JMADtiUAA7YlQAO2JcADtiYAA7ZEwAO2RUADtkXAA7ZGQAO2RwADtkdAA7ZHgAO2R8ADtkgAA7ZIgAO2SQADtklAA7ZJgAO2SgADtkpAA7ZvAAO2d8ADtn/AA7aHwAO2iEADtojAA7aJQAO2icADtoqAA7aKwAO2iwADtovAA7aMAAO2jIADtozAA7aNgAO2jkADto6AA7aOwAO2j4ADto/AA7aRAAO2l0ADtpmAA7aaAAO2msADtp0AA7adwAO2noADtp8AA7axQAO2ukADtsQAA7bNAAO2zcADts5AA7bOwAO2z0ADts/AA7bQQAO20IADttFAA7bXgAO238ADtuBAA7bgwAO24UADtuHAA7biQAO24sADtuNAA7bjwAO27AADtuzAA7btgAO27kADtu8AA7bvwAO28IADtvFAA7byAAO28oADtxFAA7cRwAO3EkADtxLAA7cTgAO3E8ADtxQAA7cUQAO3FIADtxUAA7cVgAO3FcADtxYAA7cWgAO3FsADtzWAA7c2AAO3NoADtzcAA7c3wAO3OAADtzhAA7c4gAO3OMADtzlAA7c5wAO3OgADtzpAA7c6wAO3OwADt1nAA7daQAO3WwADt1uAA7dcQAO3XIADt1zAA7ddAAO3XUADt13AA7deQAO3XoADt17AA7dfQAO3X4ADt2XAA7dmAAO3ZkADt2bAA7eFgAO3hgADt4aAA7eHAAO3h8ADt4gAA7eIQAO3iIADt4jAA7eJQAO3icADt4oAA7eKQAO3isADt4sAA7epwAO3qkADt6rAA7erQAO3rAADt6xAA7esgAO3rMADt60AA7etgAO3rgADt65AA7eugAO3rwADt69AA7fOAAO3zoADt88AA7fPgAO30EADt9CAA7fQwAO30QADt9FAA7fRwAO30kADt9KAA7fSwAO300ADt9OAA7fyQAO38sADt/NAA7fzwAO39IADt/TAA7f1AAO39UADt/WAA7f2AAO39oADt/bAA7f3AAO394ADt/fAA7gWgAO4FwADuBeAA7gYAAO4GMADuBkAA7gZQAO4GYADuBnAA7gaQAO4GsADuBsAA7gbQAO4G8ADuBwAA7guQAO4N0ADuEEAA7hKAAO4SsADuEuAA7hMAAO4TIADuE0AA7hNgAO4TcADuE6AA7hUwAO4XAADuFzAA7hdgAO4XkADuF8AA7hfwAO4YIADuGFAA7hogAO4aUADuGoAA7hqwAO4a4ADuGxAA7htAAO4bcADuG5AA7iNAAO4jYADuI5AA7iOwAO4j4ADuI/AA7iQAAO4kEADuJCAA7iRAAO4kcADuJIAA7iSQAO4ksADuJMAA7ixwAO4skADuLMAA7izgAO4tEADuLSAA7i0wAO4tQADuLVAA7i1wAO4toADuLbAA7i3AAO4t4ADuLfAA7jWgAO41wADuNfAA7jYQAO42QADuNlAA7jZgAO42cADuNoAA7jagAO420ADuNuAA7jbwAO43EADuNyAA7j7QAO4+8ADuPyAA7j9AAO4/cADuP4AA7j+QAO4/oADuP7AA7j/QAO5AAADuQBAA7kAgAO5AQADuQFAA7kiAAO5KwADuTQAA7k8wAO5RoADuU6AA7lYQAO5YgADuWoAA7lzAAO5fAADuXyAA7l9QAO5fcADuX5AA7l+wAO5f4ADuYBAA7mAwAO5gUADuYIAA7mCgAO5gwADuYPAA7mEgAO5hMADuYcAA7mNQAO5joADuY8AA7mQQAO5kQADuZGAA7mjwAO5rMADubaAA7m/gAO5wEADucDAA7nBQAO5wcADucJAA7nCwAO5wwADucPAA7nKAAO500ADudPAA7nUQAO51MADudVAA7nVwAO51kADudbAA7nXQAO518ADueEAA7nhwAO54oADueNAA7nkAAO55MADueWAA7nmQAO55wADuefAA7noQAO6BwADugeAA7oIQAO6CMADugmAA7oJwAO6CgADugpAA7oKgAO6CwADuguAA7oLwAO6DAADugyAA7oMwAO6EQADuhFAA7oRwAO6MIADujEAA7oxgAO6MgADujLAA7ozAAO6M0ADujOAA7ozwAO6NEADujTAA7o1AAO6NUADujXAA7o2AAO6VMADulVAA7pWAAO6VoADuldAA7pXgAO6V8ADulgAA7pYQAO6WMADullAA7pZgAO6WcADulpAA7pagAO6XsADumAAA7pgwAO6YUADumWAA7pmwAO6Z4ADumgAA7ppwAO6iIADuokAA7qJgAO6igADuorAA7qLAAO6i0ADuouAA7qLwAO6jEADuozAA7qNAAO6jUADuo3AA7qOAAO6rMADuq1AA7quAAO6roADuq9AA7qvgAO6r8ADurAAA7qwQAO6sMADurFAA7qxgAO6scADurJAA7qygAO6tsADurcAA7q3gAO61kADutbAA7rXQAO618ADutiAA7rYwAO62QADutlAA7rZgAO62gADutqAA7rawAO62wADutuAA7rbwAO6+oADuvsAA7r7wAO6/EADuv0AA7r9QAO6/YADuv3AA7r+AAO6/oADuv8AA7r/QAO6/4ADuwAAA7sAQAO7BoADuwbAA7sHAAO7B4ADuyZAA7smwAO7J0ADuyfAA7sogAO7KMADuykAA7spQAO7KYADuyoAA7sqgAO7KsADuysAA7srgAO7K8ADu0qAA7tLAAO7S4ADu0wAA7tMwAO7TQADu01AA7tNgAO7TcADu05AA7tOwAO7TwADu09AA7tPwAO7UAADu1ZAA7tegAO7X0ADu2AAA7tgwAO7YYADu2JAA7tjAAO7Y8ADu2SAA7tswAO7bYADu25AA7tvAAO7b8ADu3CAA7txQAO7cgADu3LAA7tzQAO7fIADu4LAA7uJAAO7i4ADu5MAA7udQAO7n0ADu8QAA7vMwAO71MADu9zAA7vdQAO73cADu95AA7vewAO734ADu9/AA7vgAAO74MADu+EAA7vhgAO74cADu+JAA7vjAAO740ADu+OAA7vkQAO75IADu+bAA7vtAAO770ADu+/AA7vwQAO78oADu/NAA7v0AAO79IADvAbAA7wPwAO8GYADvCKAA7wjQAO8I8ADvCRAA7wkwAO8JUADvCXAA7wmAAO8JsADvC0AA7w1QAO8NcADvDZAA7w2wAO8N0ADvDfAA7w4QAO8OMADvDlAA7xBgAO8QkADvEMAA7xDwAO8RIADvEVAA7xGAAO8RsADvEeAA7xIAAO8ZsADvGdAA7xnwAO8aEADvGkAA7xpQAO8aYADvGnAA7xqAAO8aoADvGsAA7xrQAO8a4ADvGwAA7xsQAO8iwADvIuAA7yMAAO8jIADvI1AA7yNgAO8jcADvI4AA7yOQAO8jsADvI9AA7yPgAO8j8ADvJBAA7yQgAO8r0ADvK/AA7ywgAO8sQADvLHAA7yyAAO8skADvLKAA7yywAO8s0ADvLPAA7y0AAO8tEADvLTAA7y1AAO8u0ADvLuAA7y7wAO8vEADvNsAA7zbgAO83AADvNyAA7zdQAO83YADvN3AA7zeAAO83kADvN7AA7zfQAO834ADvN/AA7zgQAO84IADvP9AA7z/wAO9AEADvQDAA70BgAO9AcADvQIAA70CQAO9AoADvQMAA70DgAO9A8ADvQQAA70EgAO9BMADvSOAA70kAAO9JIADvSUAA70lwAO9JgADvSZAA70mgAO9JsADvSdAA70nwAO9KAADvShAA70owAO9KQADvUfAA71IQAO9SMADvUlAA71KAAO9SkADvUqAA71KwAO9SwADvUuAA71MAAO9TEADvUyAA71NAAO9TUADvWwAA71sgAO9bQADvW2AA71uQAO9boADvW7AA71vAAO9b0ADvW/AA71wQAO9cIADvXDAA71xQAO9cYADvYPAA72MwAO9loADvZ+AA72gQAO9oMADvaFAA72hwAO9okADvaLAA72jAAO9o8ADvaoAA72xQAO9scADvbJAA72ywAO9s0ADvbPAA720QAO9tMADvbwAA728wAO9vYADvb5AA72/AAO9v8ADvcCAA73BQAO9wcADveCAA73hAAO94YADveIAA73iwAO94wADveNAA73jgAO948ADveRAA73kwAO95QADveVAA73lwAO95gADvgTAA74FQAO+BcADvgZAA74HAAO+B0ADvgeAA74HwAO+CAADvgiAA74JAAO+CUADvgmAA74KAAO+CkADvikAA74pgAO+KgADviqAA74rQAO+K4ADvivAA74sAAO+LEADvizAA74tQAO+LYADvi3AA74uQAO+LoADvk1AA75NwAO+ToADvk8AA75PwAO+UAADvlBAA75QgAO+UMADvlFAA75RwAO+UgADvlJAA75SwAO+UwADvnHAA75yQAO+csADvnNAA750AAO+dEADvnSAA750wAO+dQADvnWAA752AAO+dkADvnaAA753AAO+d0ADvpYAA76WgAO+lwADvpeAA76YQAO+mIADvpjAA76ZAAO+mUADvpnAA76aQAO+moADvprAA76bQAO+m4ADvrpAA766wAO+u0ADvrvAA768gAO+vMADvr0AA769QAO+vYADvr4AA76+gAO+vsADvr8AA76/gAO+v8ADvuSAA77tQAO+9UADvv1AA779wAO+/kADvv7AA77/QAO/AAADvwBAA78AgAO/AUADvwGAA78CAAO/AkADvwLAA78DgAO/A8ADvwQAA78EwAO/BQADvwZAA78MgAO/DsADvw9AA78PwAO/EgADvxLAA78TgAO/FAADvyZAA78vQAO/OQADv0IAA79CwAO/Q0ADv0PAA79EQAO/RMADv0VAA79FgAO/RkADv0yAA79UwAO/VUADv1XAA79WQAO/VsADv1dAA79XwAO/WEADv1jAA79hAAO/YcADv2KAA79jQAO/ZAADv2TAA79lgAO/ZkADv2cAA79ngAO/hkADv4bAA7+HQAO/h8ADv4iAA7+IwAO/iQADv4lAA7+JgAO/igADv4qAA7+KwAO/iwADv4uAA7+LwAO/qoADv6sAA7+rgAO/rAADv6zAA7+tAAO/rUADv62AA7+twAO/rkADv67AA7+vAAO/r0ADv6/AA7+wAAO/zsADv89AA7/QAAO/0IADv9FAA7/RgAO/0cADv9IAA7/SQAO/0sADv9NAA7/TgAO/08ADv9RAA7/UgAO/2sADv9sAA7/bQAO/28ADv/qAA7/7AAO/+4ADv/wAA7/8wAO//QADv/1AA7/9gAO//cADv/5AA7/+wAO//wADv/9AA7//wAPAAAADwB7AA8AfQAPAH8ADwCBAA8AhAAPAIUADwCGAA8AhwAPAIgADwCKAA8AjAAPAI0ADwCOAA8AkAAPAJEADwEMAA8BDgAPARAADwESAA8BFQAPARYADwEXAA8BGAAPARkADwEbAA8BHQAPAR4ADwEfAA8BIQAPASIADwGdAA8BnwAPAaEADwGjAA8BpgAPAacADwGoAA8BqQAPAaoADwGsAA8BrgAPAa8ADwGwAA8BsgAPAbMADwIuAA8CMAAPAjIADwI0AA8CNwAPAjgADwI5AA8COgAPAjsADwI9AA8CPwAPAkAADwJBAA8CQwAPAkQADwKNAA8CsQAPAtgADwL8AA8C/wAPAwEADwMDAA8DBQAPAwcADwMJAA8DCgAPAw0ADwMmAA8DQwAPA0UADwNHAA8DSQAPA0sADwNNAA8DTwAPA1EADwNuAA8DcQAPA3QADwN3AA8DegAPA30ADwOAAA8DgwAPA4UADwQAAA8EAgAPBAQADwQGAA8ECQAPBAoADwQLAA8EDAAPBA0ADwQPAA8EEQAPBBIADwQTAA8EFQAPBBYADwSRAA8EkwAPBJUADwSXAA8EmgAPBJsADwScAA8EnQAPBJ4ADwSgAA8EogAPBKMADwSkAA8EpgAPBKcADwUiAA8FJAAPBSYADwUoAA8FKwAPBSwADwUtAA8FLgAPBS8ADwUxAA8FMwAPBTQADwU1AA8FNwAPBTgADwWzAA8FtQAPBbgADwW6AA8FvQAPBb4ADwW/AA8FwAAPBcEADwXDAA8FxQAPBcYADwXHAA8FyQAPBcoADwZFAA8GRwAPBkkADwZLAA8GTgAPBk8ADwZQAA8GUQAPBlIADwZUAA8GVgAPBlcADwZYAA8GWgAPBlsADwbWAA8G2AAPBtoADwbcAA8G3wAPBuAADwbhAA8G4gAPBuMADwblAA8G5wAPBugADwbpAA8G6wAPBuwADwdnAA8HaQAPB2sADwdtAA8HcAAPB3EADwdyAA8HcwAPB3QADwd2AA8HeAAPB3kADwd6AA8HfAAPB30ADwgQAA8IMwAPCFMADwhzAA8IdQAPCHcADwh5AA8IewAPCH4ADwh/AA8IgAAPCIMADwiEAA8IhgAPCIcADwiJAA8IjAAPCI0ADwiOAA8IkQAPCJIADwiXAA8IsAAPCLkADwi7AA8IvQAPCMYADwjJAA8IzAAPCM4ADwkXAA8JOwAPCWIADwmGAA8JiQAPCYsADwmNAA8JjwAPCZEADwmTAA8JlAAPCZcADwmwAA8J0QAPCdMADwnVAA8J1wAPCdkADwnbAA8J3QAPCd8ADwnhAA8KAgAPCgUADwoIAA8KCwAPCg4ADwoRAA8KFAAPChcADwoaAA8KHAAPCpcADwqZAA8KmwAPCp0ADwqgAA8KoQAPCqIADwqjAA8KpAAPCqYADwqoAA8KqQAPCqoADwqsAA8KrQAPCygADwsqAA8LLAAPCy4ADwsxAA8LMgAPCzMADws0AA8LNQAPCzcADws5AA8LOgAPCzsADws9AA8LPgAPC7kADwu7AA8LvgAPC8AADwvDAA8LxAAPC8UADwvGAA8LxwAPC8kADwvLAA8LzAAPC80ADwvPAA8L0AAPC+kADwvqAA8L6wAPC+0ADwxoAA8MagAPDGwADwxuAA8McQAPDHIADwxzAA8MdAAPDHUADwx3AA8MeQAPDHoADwx7AA8MfQAPDH4ADwz5AA8M+wAPDP0ADwz/AA8NAgAPDQMADw0EAA8NBQAPDQYADw0IAA8NCgAPDQsADw0MAA8NDgAPDQ8ADw2KAA8NjAAPDY4ADw2QAA8NkwAPDZQADw2VAA8NlgAPDZcADw2ZAA8NmwAPDZwADw2dAA8NnwAPDaAADw4bAA8OHQAPDh8ADw4hAA8OJAAPDiUADw4mAA8OJwAPDigADw4qAA8OLAAPDi0ADw4uAA8OMAAPDjEADw6sAA8OrgAPDrAADw6yAA8OtQAPDrYADw63AA8OuAAPDrkADw67AA8OvQAPDr4ADw6/AA8OwQAPDsIADw8LAA8PLwAPD1YADw96AA8PfQAPD38ADw+BAA8PgwAPD4UADw+HAA8PiAAPD4sADw+kAA8PwQAPD8MADw/FAA8PxwAPD8kADw/LAA8PzQAPD88ADw/sAA8P7wAPD/IADw/1AA8P+AAPD/sADw/+AA8QAQAPEAMADxB+AA8QgAAPEIIADxCEAA8QhwAPEIgADxCJAA8QigAPEIsADxCNAA8QjwAPEJAADxCRAA8QkwAPEJQADxEPAA8REQAPERMADxEVAA8RGAAPERkADxEaAA8RGwAPERwADxEeAA8RIAAPESEADxEiAA8RJAAPESUADxGgAA8RogAPEaQADxGmAA8RqQAPEaoADxGrAA8RrAAPEa0ADxGvAA8RsQAPEbIADxGzAA8RtQAPEbYADxIxAA8SMwAPEjYADxI4AA8SOwAPEjwADxI9AA8SPgAPEj8ADxJBAA8SQwAPEkQADxJFAA8SRwAPEkgADxLDAA8SxQAPEscADxLJAA8SzAAPEs0ADxLOAA8SzwAPEtAADxLSAA8S1AAPEtUADxLWAA8S2AAPEtkADxNUAA8TVgAPE1gADxNaAA8TXQAPE14ADxNfAA8TYAAPE2EADxNjAA8TZQAPE2YADxNnAA8TaQAPE2oADxPlAA8T5wAPE+kADxPrAA8T7gAPE+8ADxPwAA8T8QAPE/IADxP0AA8T9gAPE/cADxP4AA8T+gAPE/sADxSOAA8UsQAPFNEADxTxAA8U8wAPFPUADxT3AA8U+QAPFPwADxT9AA8U/gAPFQEADxUCAA8VBAAPFQUADxUHAA8VCgAPFQsADxUMAA8VDwAPFRAADxUVAA8VLgAPFTcADxU5AA8VOwAPFUQADxVHAA8VSgAPFUwADxWVAA8VuQAPFeAADxYEAA8WBwAPFgkADxYLAA8WDQAPFg8ADxYRAA8WEgAPFhUADxYuAA8WTwAPFlEADxZTAA8WVQAPFlcADxZZAA8WWwAPFl0ADxZfAA8WgAAPFoMADxaGAA8WiQAPFowADxaPAA8WkgAPFpUADxaYAA8WmgAPFxUADxcXAA8XGQAPFxsADxceAA8XHwAPFyAADxchAA8XIgAPFyQADxcmAA8XJwAPFygADxcqAA8XKwAPF6YADxeoAA8XqgAPF6wADxevAA8XsAAPF7EADxeyAA8XswAPF7UADxe3AA8XuAAPF7kADxe7AA8XvAAPGDcADxg5AA8YPAAPGD4ADxhBAA8YQgAPGEMADxhEAA8YRQAPGEcADxhJAA8YSgAPGEsADxhNAA8YTgAPGGcADxhoAA8YaQAPGGsADxjmAA8Y6AAPGOoADxjsAA8Y7wAPGPAADxjxAA8Y8gAPGPMADxj1AA8Y9wAPGPgADxj5AA8Y+wAPGPwADxl3AA8ZeQAPGXsADxl9AA8ZgAAPGYEADxmCAA8ZgwAPGYQADxmGAA8ZiAAPGYkADxmKAA8ZjAAPGY0ADxoIAA8aCgAPGgwADxoOAA8aEQAPGhIADxoTAA8aFAAPGhUADxoXAA8aGQAPGhoADxobAA8aHQAPGh4ADxqZAA8amwAPGp0ADxqfAA8aogAPGqMADxqkAA8apQAPGqYADxqoAA8aqgAPGqsADxqsAA8argAPGq8ADxsqAA8bLAAPGy4ADxswAA8bMwAPGzQADxs1AA8bNgAPGzcADxs5AA8bOwAPGzwADxs9AA8bPwAPG0AADxuJAA8brQAPG9QADxv4AA8b+wAPG/0ADxv/AA8cAQAPHAMADxwFAA8cBgAPHAkADxwiAA8cPwAPHEEADxxDAA8cRQAPHEcADxxJAA8cSwAPHE0ADxxqAA8cbQAPHHAADxxzAA8cdgAPHHkADxx8AA8cfwAPHIEADxz8AA8c/gAPHQAADx0CAA8dBQAPHQYADx0HAA8dCAAPHQkADx0LAA8dDQAPHQ4ADx0PAA8dEQAPHRIADx2NAA8djwAPHZEADx2TAA8dlgAPHZcADx2YAA8dmQAPHZoADx2cAA8dngAPHZ8ADx2gAA8dogAPHaMADx4eAA8eIAAPHiIADx4kAA8eJwAPHigADx4pAA8eKgAPHisADx4tAA8eLwAPHjAADx4xAA8eMwAPHjQADx6vAA8esQAPHrQADx62AA8euQAPHroADx67AA8evAAPHr0ADx6/AA8ewQAPHsIADx7DAA8exQAPHsYADx9BAA8fQwAPH0UADx9HAA8fSgAPH0sADx9MAA8fTQAPH04ADx9QAA8fUgAPH1MADx9UAA8fVgAPH1cADx/SAA8f1AAPH9YADx/YAA8f2wAPH9wADx/dAA8f3gAPH98ADx/hAA8f4wAPH+QADx/lAA8f5wAPH+gADyBjAA8gZQAPIGcADyBpAA8gbAAPIG0ADyBuAA8gbwAPIHAADyByAA8gdAAPIHUADyB2AA8geAAPIHkADyEMAA8hLwAPIU8ADyFvAA8hcQAPIXMADyF1AA8hdwAPIXoADyF7AA8hfAAPIX8ADyGAAA8hggAPIYMADyGFAA8hiAAPIYkADyGKAA8hjQAPIY4ADyGTAA8hrAAPIbUADyG3AA8huQAPIcIADyHFAA8hyAAPIcoADyITAA8iNwAPIl4ADyKCAA8ihQAPIocADyKJAA8iiwAPIo0ADyKPAA8ikAAPIpMADyKsAA8izQAPIs8ADyLRAA8i0wAPItUADyLXAA8i2QAPItsADyLdAA8i/gAPIwEADyMEAA8jBwAPIwoADyMNAA8jEAAPIxMADyMWAA8jGAAPI5MADyOVAA8jlwAPI5kADyOcAA8jnQAPI54ADyOfAA8joAAPI6IADyOkAA8jpQAPI6YADyOoAA8jqQAPJCQADyQmAA8kKAAPJCoADyQtAA8kLgAPJC8ADyQwAA8kMQAPJDMADyQ1AA8kNgAPJDcADyQ5AA8kOgAPJLUADyS3AA8kugAPJLwADyS/AA8kwAAPJMEADyTCAA8kwwAPJMUADyTHAA8kyAAPJMkADyTLAA8kzAAPJOUADyTmAA8k5wAPJOkADyVkAA8lZgAPJWgADyVqAA8lbQAPJW4ADyVvAA8lcAAPJXEADyVzAA8ldQAPJXYADyV3AA8leQAPJXoADyX1AA8l9wAPJfkADyX7AA8l/gAPJf8ADyYAAA8mAQAPJgIADyYEAA8mBgAPJgcADyYIAA8mCgAPJgsADyaGAA8miAAPJooADyaMAA8mjwAPJpAADyaRAA8mkgAPJpMADyaVAA8mlwAPJpgADyaZAA8mmwAPJpwADycXAA8nGQAPJxsADycdAA8nIAAPJyEADyciAA8nIwAPJyQADycmAA8nKAAPJykADycqAA8nLAAPJy0ADyeoAA8nqgAPJ6wADyeuAA8nsQAPJ7IADyezAA8ntAAPJ7UADye3AA8nuQAPJ7oADye7AA8nvQAPJ74ADygHAA8oKwAPKFIADyh2AA8oeQAPKHsADyh9AA8ofwAPKIEADyiDAA8ohAAPKIcADyigAA8ovQAPKL8ADyjBAA8owwAPKMUADyjHAA8oyQAPKMsADyjoAA8o6wAPKO4ADyjxAA8o9AAPKPcADyj6AA8o/QAPKP8ADyl6AA8pfAAPKX4ADymAAA8pgwAPKYQADymFAA8phgAPKYcADymJAA8piwAPKYwADymNAA8pjwAPKZAADyoLAA8qDQAPKg8ADyoRAA8qFAAPKhUADyoWAA8qFwAPKhgADyoaAA8qHAAPKh0ADyoeAA8qIAAPKiEADyqcAA8qngAPKqAADyqiAA8qpQAPKqYADyqnAA8qqAAPKqkADyqrAA8qrQAPKq4ADyqvAA8qsQAPKrIADystAA8rLwAPKzIADys0AA8rNwAPKzgADys5AA8rOgAPKzsADys9AA8rPwAPK0AADytBAA8rQwAPK0QADyu/AA8rwQAPK8MADyvFAA8ryAAPK8kADyvKAA8rywAPK8wADyvOAA8r0AAPK9EADyvSAA8r1AAPK9UADyxQAA8sUgAPLFQADyxWAA8sWQAPLFoADyxbAA8sXAAPLF0ADyxfAA8sYQAPLGIADyxjAA8sZQAPLGYADyzhAA8s4wAPLOUADyznAA8s6gAPLOsADyzsAA8s7QAPLO4ADyzwAA8s8gAPLPMADyz0AA8s9gAPLPcADy2KAA8trQAPLc0ADy3tAA8t7wAPLfEADy3zAA8t9QAPLfgADy35AA8t+gAPLf0ADy3+AA8uAAAPLgEADy4DAA8uBgAPLgcADy4IAA8uCwAPLgwADy4RAA8uKgAPLjMADy41AA8uNwAPLkAADy5DAA8uRgAPLkgADy6RAA8utQAPLtwADy8AAA8vAwAPLwUADy8HAA8vCQAPLwsADy8NAA8vDgAPLxEADy8qAA8vSwAPL00ADy9PAA8vUQAPL1MADy9VAA8vVwAPL1kADy9bAA8vfAAPL38ADy+CAA8vhQAPL4gADy+LAA8vjgAPL5EADy+UAA8vlgAPMBEADzATAA8wFQAPMBcADzAaAA8wGwAPMBwADzAdAA8wHgAPMCAADzAiAA8wIwAPMCQADzAmAA8wJwAPMKIADzCkAA8wpgAPMKgADzCrAA8wrAAPMK0ADzCuAA8wrwAPMLEADzCzAA8wtAAPMLUADzC3AA8wuAAPMTMADzE1AA8xOAAPMToADzE9AA8xPgAPMT8ADzFAAA8xQQAPMUMADzFFAA8xRgAPMUcADzFJAA8xSgAPMWMADzFkAA8xZQAPMWcADzHiAA8x5AAPMeYADzHoAA8x6wAPMewADzHtAA8x7gAPMe8ADzHxAA8x8wAPMfQADzH1AA8x9wAPMfgADzJzAA8ydQAPMncADzJ5AA8yfAAPMn0ADzJ+AA8yfwAPMoAADzKCAA8yhAAPMoUADzKGAA8yiAAPMokADzMEAA8zBgAPMwgADzMKAA8zDQAPMw4ADzMPAA8zEAAPMxEADzMTAA8zFQAPMxYADzMXAA8zGQAPMxoADzOVAA8zlwAPM5kADzObAA8zngAPM58ADzOgAA8zoQAPM6IADzOkAA8zpgAPM6cADzOoAA8zqgAPM6sADzQmAA80KAAPNCoADzQsAA80LwAPNDAADzQxAA80MgAPNDMADzQ1AA80NwAPNDgADzQ5AA80OwAPNDwADzSFAA80qQAPNNAADzT0AA809wAPNPkADzT7AA80/QAPNP8ADzUBAA81AgAPNQUADzUeAA81OwAPNT0ADzU/AA81QQAPNUMADzVFAA81RwAPNUkADzVmAA81aQAPNWwADzVvAA81cgAPNXUADzV4AA81ewAPNX0ADzX4AA81+gAPNfwADzX+AA82AQAPNgIADzYDAA82BAAPNgUADzYHAA82CQAPNgoADzYLAA82DQAPNg4ADzaJAA82iwAPNo0ADzaPAA82kgAPNpMADzaUAA82lQAPNpYADzaYAA82mgAPNpsADzacAA82ngAPNp8ADzcaAA83HAAPNx4ADzcgAA83IwAPNyQADzclAA83JgAPNycADzcpAA83KwAPNywADzctAA83LwAPNzAADzerAA83rQAPN68ADzexAA83tAAPN7UADze2AA83twAPN7gADze6AA83vAAPN70ADze+AA83wAAPN8EADzg8AA84PgAPOEAADzhCAA84RQAPOEYADzhHAA84SAAPOEkADzhLAA84TQAPOE4ADzhPAA84UQAPOFIADzjNAA84zwAPONEADzjTAA841gAPONcADzjYAA842QAPONoADzjcAA843gAPON8ADzjgAA844gAPOOMADzleAA85YAAPOWIADzlkAA85ZwAPOWgADzlpAA85agAPOWsADzltAA85bwAPOXAADzlxAA85cwAPOXQADzoHAA86KgAPOkoADzpqAA86bAAPOm4ADzpwAA86cgAPOnUADzp2AA86dwAPOnoADzp7AA86fQAPOn4ADzqAAA86gwAPOoQADzqFAA86iAAPOokADzqOAA86pwAPOrAADzqyAA86tAAPOr0ADzrAAA86wwAPOsUADzsOAA87MgAPO1kADzt9AA87gAAPO4IADzuEAA87hgAPO4gADzuKAA87iwAPO44ADzunAA87yAAPO8oADzvMAA87zgAPO9AADzvSAA871AAPO9YADzvYAA87+QAPO/wADzv/AA88AgAPPAUADzwIAA88CwAPPA4ADzwRAA88EwAPPI4ADzyQAA88kgAPPJQADzyXAA88mAAPPJkADzyaAA88mwAPPJ0ADzyfAA88oAAPPKEADzyjAA88pAAPPR8ADz0hAA89IwAPPSUADz0oAA89KQAPPSoADz0rAA89LAAPPS4ADz0wAA89MQAPPTIADz00AA89NQAPPbAADz2yAA89tQAPPbcADz26AA89uwAPPbwADz29AA89vgAPPcAADz3CAA89wwAPPcQADz3GAA89xwAPPeAADz3hAA894gAPPeQADz5fAA8+YQAPPmMADz5lAA8+aAAPPmkADz5qAA8+awAPPmwADz5uAA8+cAAPPnEADz5yAA8+dAAPPnUADz7wAA8+8gAPPvQ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AD1A4AA9QOgAPUDsAD1C2AA9QuAAPULsAD1C9AA9QwAAPUMEAD1DCAA9QwwAPUMQAD1DGAA9QyQAPUMoAD1DLAA9QzQAPUM4AD1FJAA9RSwAPUU0AD1FPAA9RUgAPUVMAD1FUAA9RVQAPUVYAD1FYAA9RWwAPUVwAD1FdAA9RXwAPUWAAD1HbAA9R3QAPUd8AD1HhAA9R5AAPUeUAD1HmAA9R5wAPUegAD1HqAA9R7QAPUe4AD1HvAA9R8QAPUfIAD1JtAA9SbwAPUnIAD1J0AA9SdwAPUngAD1J5AA9SegAPUnsAD1J9AA9SgAAPUoEAD1KCAA9ShAAPUoUAD1KWAA9SlwAPUpkAD1MUAA9TFgAPUxgAD1MaAA9THQAPUx4AD1MfAA9TIAAPUyEAD1MjAA9TJgAPUycAD1MoAA9TKgAPUysAD1OmAA9TqAAPU6oAD1OsAA9TrwAPU7AAD1OxAA9TsgAPU7MAD1O1AA9TuAAPU7kAD1O6AA9TvAAPU70AD1Q4AA9UOgAPVD0AD1Q/AA9UQgAPVEMAD1REAA9URQAPVEYAD1RIAA9USwAPVEwAD1RNAA9UTwAPVFAAD1TjAA9VBgAPVSYAD1VGAA9VSAAPVUoAD1VMAA9VTgAPVVEAD1VSAA9VUwAPVVYAD1VXAA9VWQAPVVoAD1VcAA9VXwAPVWAAD1VhAA9VZAAPVWUAD1VqAA9VgwAPVYwAD1WOAA9VkAAPVZkAD1WcAA9VnwAPVaEAD1XqAA9WDgAPVjUAD1ZZAA9WXAAPVl4AD1ZgAA9WYgAPVmQAD1ZmAA9WZwAPVmoAD1aDAA9WpAAPVqYAD1aoAA9WqgAPVqwAD1auAA9WsAAPVrIAD1a0AA9W1QAPVtgAD1bbAA9W3gAPVuEAD1bkAA9W5wAPVuoAD1btAA9W7wAPV2oAD1dsAA9XbgAPV3AAD1dzAA9XdAAPV3UAD1d2AA9XdwAPV3kAD1d7AA9XfAAPV30AD1d/AA9XgAAPV/sAD1f9AA9X/wAPWAEAD1gEAA9YBQAPWAYAD1gHAA9YCAAPWAoAD1gMAA9YDQAPWA4AD1gQAA9YEQAPWIwAD1iOAA9YkQAPWJMAD1iWAA9YlwAPWJgAD1iZAA9YmgAPWJwAD1ieAA9YnwAPWKAAD1iiAA9YowAPWLwAD1i9AA9YvgAPWMAAD1k7AA9ZPQAPWT8AD1lBAA9ZRAAPWUUAD1lGAA9ZRwAPWUgAD1lKAA9ZTAAPWU0AD1lOAA9ZUAAPWVEAD1nMAA9ZzgAPWdAAD1nSAA9Z1QAPWdYAD1nXAA9Z2AAPWdkAD1nbAA9Z3QAPWd4AD1nfAA9Z4QAPWeIAD1pdAA9aXwAPWmEAD1pjAA9aZgAPWmcAD1poAA9aaQAPWmoAD1psAA9abgAPWm8AD1pwAA9acgAPWnMAD1ruAA9a8AAPWvIAD1r0AA9a9wAPWvgAD1r5AA9a+gAPWvsAD1r9AA9a/wAPWwAAD1sBAA9bAwAPWwQAD1t/AA9bgQAPW4MAD1uFAA9biAAPW4kAD1uKAA9biwAPW4wAD1uOAA9bkAAPW5EAD1uSAA9blAAPW5UAD1veAA9cAgAPXCkAD1xNAA9cUAAPXFIAD1xUAA9cVgAPXFgAD1xaAA9cWwAPXF4AD1x3AA9clAAPXJYAD1yYAA9cmgAPXJwAD1yeAA9coAAPXKIAD1y/AA9cwgAPXMUAD1zIAA9cywAPXM4AD1zRAA9c1AAPXNYAD11RAA9dUwAPXVUAD11XAA9dWgAPXVsAD11cAA9dXQAPXV4AD11gAA9dYgAPXWMAD11kAA9dZgAPXWcAD13iAA9d5AAPXeYAD13oAA9d6wAPXewAD13tAA9d7gAPXe8AD13xAA9d8wAPXfQAD131AA9d9wAPXfgAD15zAA9edQAPXncAD155AA9efAAPXn0AD15+AA9efwAPXoAAD16CAA9ehAAPXoUAD16GAA9eiAAPXokAD18EAA9fBgAPXwkAD18LAA9fDgAPXw8AD18QAA9fEQAPXxIAD18UAA9fFgAPXxcAD18YAA9fGgAPXxsAD1+WAA9fmAAPX5oAD1+cAA9fnwAPX6AAD1+hAA9fogAPX6MAD1+lAA9fpwAPX6gAD1+pAA9fqwAPX6wAD2AnAA9gKQAPYCsAD2AtAA9gMAAPYDEAD2AyAA9gMwAPYDQAD2A2AA9gOAAPYDkAD2A6AA9gPAAPYD0AD2C4AA9gugAPYLwAD2C+AA9gwQAPYMIAD2DDAA9gxAAPYMUAD2DHAA9gyQAPYMoAD2DLAA9gzQAPYM4AD2FhAA9hhAAPYaQAD2HEAA9hxgAPYcgAD2HKAA9hzAAPYc8AD2HQAA9h0QAPYdQAD2HVAA9h1wAPYdgAD2HaAA9h3QAPYd4AD2HfAA9h4gAPYeMAD2HoAA9iAQAPYgoAD2IMAA9iDgAPYhcAD2IaAA9iHQAPYh8AD2JoAA9ijAAPYrMAD2LXAA9i2gAPYtwAD2LeAA9i4AAPYuIAD2LkAA9i5QAPYugAD2MBAA9jIgAPYyQAD2MmAA9jKAAPYyoAD2MsAA9jLgAPYzAAD2MyAA9jUwAPY1YAD2NZAA9jXAAPY18AD2NiAA9jZQAPY2gAD2NrAA9jbQAPY+gAD2PqAA9j7AAPY+4AD2PxAA9j8gAPY/MAD2P0AA9j9QAPY/cAD2P5AA9j+gAPY/sAD2P9AA9j/gAPZHkAD2R7AA9kfQAPZH8AD2SCAA9kgwAPZIQAD2SFAA9khgAPZIgAD2SKAA9kiwAPZIwAD2SOAA9kjwAPZQoAD2UMAA9lDwAPZREAD2UUAA9lFQAPZRYAD2UXAA9lGAAPZRoAD2UcAA9lHQAPZR4AD2UgAA9lIQAPZToAD2U7AA9lPAAPZT4AD2W5AA9luwAPZb0AD2W/AA9lwgAPZcMAD2XEAA9lxQAPZcYAD2XIAA9lygAPZcsAD2XMAA9lzgAPZc8AD2ZKAA9mTAAPZk4AD2ZQAA9mUwAPZlQAD2ZVAA9mVgAPZlcAD2ZZAA9mWwAPZlwAD2ZdAA9mXwAPZmAAD2bbAA9m3QAPZt8AD2bhAA9m5AAPZuUAD2bmAA9m5wAPZugAD2bqAA9m7AAPZu0AD2buAA9m8AAPZvEAD2dsAA9nbgAPZ3AAD2dyAA9ndQAPZ3YAD2d3AA9neAAPZ3kAD2d7AA9nfQAPZ34AD2d/AA9ngQAPZ4IAD2f9AA9n/wAPaAEAD2gDAA9oBgAPaAcAD2gIAA9oCQAPaAoAD2gMAA9oDgAPaA8AD2gQAA9oEgAPaBMAD2hcAA9ogAAPaKcAD2jLAA9ozgAPaNAAD2jSAA9o1AAPaNYAD2jYAA9o2QAPaNwAD2j1AA9pEgAPaRQAD2kWAA9pGAAPaRoAD2kcAA9pHgAPaSAAD2k9AA9pQAAPaUMAD2lGAA9pSQAPaUwAD2lPAA9pUgAPaVQAD2nPAA9p0QAPadMAD2nVAA9p2AAPadkAD2naAA9p2wAPadwAD2neAA9p4AAPaeEAD2niAA9p5AAPaeUAD2pgAA9qYgAPamQAD2pmAA9qaQAPamoAD2prAA9qbAAPam0AD2pvAA9qcQAPanIAD2pzAA9qdQAPanYAD2rxAA9q8wAPavUAD2r3AA9q+gAPavsAD2r8AA9q/QAPav4AD2sAAA9rAgAPawMAD2sEAA9rBgAPawcAD2uCAA9rhAAPa4cAD2uJAA9rjAAPa40AD2uOAA9rjwAPa5AAD2uSAA9rlAAPa5UAD2uWAA9rmAAPa5kAD2wUAA9sFgAPbBgAD2waAA9sHQAPbB4AD2wfAA9sIAAPbCEAD2wjAA9sJQAPbCYAD2wnAA9sKQAPbCoAD2ylAA9spwAPbKkAD2yrAA9srgAPbK8AD2ywAA9ssQAPbLIAD2y0AA9stgAPbLcAD2y4AA9sugAPbLsAD202AA9tOAAPbToAD208AA9tPwAPbUAAD21BAA9tQgAPbUMAD21FAA9tRwAPbUgAD21JAA9tSwAPbUwAD23fAA9uAgAPbiIAD25CAA9uRAAPbkYAD25IAA9uSgAPbk0AD25OAA9uTwAPblIAD25TAA9uVQAPblYAD25YAA9uWwAPblwAD25dAA9uYAAPbmEAD25mAA9ufwAPbogAD26KAA9ujAAPbpUAD26YAA9umwAPbp0AD27mAA9vCgAPbzEAD29VAA9vWAAPb1oAD29cAA9vXgAPb2AAD29iAA9vYwAPb2YAD29/AA9voAAPb6IAD2+kAA9vpgAPb6gAD2+qAA9vrAAPb64AD2+wAA9v0QAPb9QAD2/XAA9v2gAPb90AD2/gAA9v4wAPb+YAD2/pAA9v6wAPcGYAD3BoAA9wagAPcGwAD3BvAA9wcAAPcHEAD3ByAA9wcwAPcHUAD3B3AA9weAAPcHkAD3B7AA9wfAAPcPcAD3D5AA9w+wAPcP0AD3EAAA9xAQAPcQIAD3EDAA9xBAAPcQYAD3EIAA9xCQAPcQoAD3EMAA9xDQAPcYgAD3GKAA9xjQAPcY8AD3GSAA9xkwAPcZQAD3GVAA9xlgAPcZgAD3GaAA9xmwAPcZwAD3GeAA9xnwAPcbgAD3G5AA9xugAPcbwAD3I3AA9yOQAPcjsAD3I9AA9yQAAPckEAD3JCAA9yQwAPckQAD3JGAA9ySAAPckkAD3JKAA9yTAAPck0AD3LIAA9yygAPcswAD3LOAA9y0QAPctIAD3LTAA9y1AAPctUAD3LXAA9y2QAPctoAD3LbAA9y3QAPct4AD3NZAA9zWwAPc10AD3NfAA9zYgAPc2MAD3NkAA9zZQAPc2YAD3NoAA9zagAPc2sAD3NsAA9zbgAPc28AD3PqAA9z7AAPc+4AD3PwAA9z8wAPc/QAD3P1AA9z9gAPc/cAD3P5AA9z+wAPc/wAD3P9AA9z/wAPdAAAD3R7AA90fQAPdH8AD3SBAA90hAAPdIUAD3SGAA90hwAPdIgAD3SKAA90jAAPdI0AD3SOAA90kAAPdJEAD3TaAA90/gAPdSUAD3VJAA91TAAPdU4AD3VQAA91UgAPdVQAD3VWAA91VwAPdVoAD3VzAA91kAAPdZIAD3WUAA91lgAPdZgAD3WaAA91nAAPdZ4AD3W7AA91vgAPdcEAD3XEAA91xwAPdcoAD3XNAA910AAPddIAD3ZNAA92TwAPdlEAD3ZTAA92VgAPdlcAD3ZYAA92WQAPdloAD3ZcAA92XgAPdl8AD3ZgAA92YgAPdmMAD3beAA924AAPduIAD3bkAA925wAPdugAD3bpAA926gAPdusAD3btAA927wAPdvAAD3bxAA928wAPdvQAD3dvAA93cQAPd3MAD3d1AA93eAAPd3kAD3d6AA93ewAPd3wAD3d+AA93gAAPd4EAD3eCAA93hAAPd4UAD3gAAA94AgAPeAQAD3gGAA94CQAPeAoAD3gLAA94DAAPeA0AD3gPAA94EQAPeBIAD3gTAA94FQAPeBYAD3iRAA94kwAPeJUAD3iXAA94mgAPeJsAD3icAA94nQAPeJ4AD3igAA94ogAPeKMAD3ikAA94pgAPeKcAD3kiAA95JAAPeSYAD3koAA95KwAPeSwAD3ktAA95LgAPeS8AD3kxAA95MwAPeTQAD3k1AA95NwAPeTgAD3mzAA95tQAPebcAD3m5AA95vAAPeb0AD3m+AA95vwAPecAAD3nCAA95xAAPecUAD3nGAA95yAAPeckAD3pcAA96fwAPep8AD3q/AA96wQAPesMAD3rFAA96xwAPesoAD3rLAA96zAAPes8AD3rQAA960gAPetMAD3rVAA962AAPetkAD3raAA963QAPet4AD3rjAA96/AAPewUAD3sHAA97CQAPexIAD3sVAA97GAAPexoAD3tjAA97hwAPe64AD3vSAA971QAPe9cAD3vZAA972wAPe90AD3vfAA974AAPe+MAD3v8AA98HQAPfB8AD3whAA98IwAPfCUAD3wnAA98KQAPfCsAD3wtAA98TgAPfFEAD3xUAA98VwAPfFoAD3xdAA98YAAPfGMAD3xmAA98aAAPfOMAD3zlAA985wAPfOkAD3zsAA987QAPfO4AD3zvAA988AAPfPIAD3z0AA989QAPfPYAD3z4AA98+QAPfXQAD312AA99eAAPfXoAD319AA99fgAPfX8AD32AAA99gQAPfYMAD32FAA99hgAPfYcAD32JAA99igAPfgUAD34HAA9+CgAPfgwAD34PAA9+EAAPfhEAD34SAA9+EwAPfhUAD34XAA9+GAAPfhkAD34bAA9+HAAPfjUAD342AA9+NwAPfjkAD360AA9+tgAPfrgAD366AA9+vQAPfr4AD36/AA9+wAAPfsEAD37DAA9+xQAPfsYAD37HAA9+yQAPfsoAD39FAA9/RwAPf0kAD39LAA9/TgAPf08AD39QAA9/UQAPf1IAD39UAA9/VgAPf1cAD39YAA9/WgAPf1sAD3/WAA9/2AAPf9oAD3/cAA9/3wAPf+AAD3/hAA9/4gAPf+MAD3/lAA9/5wAPf+gAD3/pAA9/6wAPf+wAD4BnAA+AaQAPgGsAD4BtAA+AcAAPgHEAD4ByAA+AcwAPgHQAD4B2AA+AeAAPgHkAD4B6AA+AfAAPgH0AD4D4AA+A+gAPgPwAD4D+AA+BAQAPgQIAD4EDAA+BBAAPgQUAD4EHAA+BCQAPgQoAD4ELAA+BDQAPgQ4AD4FXAA+BewAPgaIAD4HGAA+ByQAPgcsAD4HNAA+BzwAPgdEAD4HTAA+B1AAPgdcAD4HwAA+CDQAPgg8AD4IRAA+CEwAPghUAD4IXAA+CGQAPghsAD4I4AA+COwAPgj4AD4JBAA+CRAAPgkcAD4JKAA+CTQAPgk8AD4LKAA+CzAAPgs4AD4LQAA+C0wAPgtQAD4LVAA+C1gAPgtcAD4LZAA+C2wAPgtwAD4LdAA+C3wAPguAAD4NbAA+DXQAPg18AD4NhAA+DZAAPg2UAD4NmAA+DZwAPg2gAD4NqAA+DbAAPg20AD4NuAA+DcAAPg3EAD4PsAA+D7gAPg/AAD4PyAA+D9QAPg/YAD4P3AA+D+AAPg/kAD4P7AA+D/QAPg/4AD4P/AA+EAQAPhAIAD4R9AA+EfwAPhIIAD4SEAA+EhwAPhIgAD4SJAA+EigAPhIsAD4SNAA+EjwAPhJAAD4SRAA+EkwAPhJQAD4UPAA+FEQAPhRMAD4UVAA+FGAAPhRkAD4UaAA+FGwAPhRwAD4UeAA+FIAAPhSEAD4UiAA+FJAAPhSUAD4WgAA+FogAPhaQAD4WmAA+FqQAPhaoAD4WrAA+FrAAPha0AD4WvAA+FsQAPhbIAD4WzAA+FtQAPhbYAD4YxAA+GMwAPhjUAD4Y3AA+GOgAPhjsAD4Y8AA+GPQAPhj4AD4ZAAA+GQgAPhkMAD4ZEAA+GRgAPhkcAD4baAA+G/QAPhx0AD4c9AA+HPwAPh0EAD4dDAA+HRQAPh0gAD4dJAA+HSgAPh00AD4dOAA+HUAAPh1EAD4dTAA+HVgAPh1cAD4dYAA+HWwAPh1wAD4dhAA+HegAPh4MAD4eFAA+HhwAPh5AAD4eTAA+HlgAPh5gAD4fhAA+IBQAPiCwAD4hQAA+IUwAPiFUAD4hXAA+IWQAPiFsAD4hdAA+IXgAPiGEAD4h6AA+ImwAPiJ0AD4ifAA+IoQAPiKMAD4ilAA+IpwAPiKkAD4irAA+IzAAPiM8AD4jSAA+I1QAPiNgAD4jbAA+I3gAPiOEAD4jkAA+I5gAPiWEAD4ljAA+JZQAPiWcAD4lqAA+JawAPiWwAD4ltAA+JbgAPiXAAD4lyAA+JcwAPiXQAD4l2AA+JdwAPifIAD4n0AA+J9gAPifgAD4n7AA+J/AAPif0AD4n+AA+J/wAPigEAD4oDAA+KBAAPigUAD4oHAA+KCAAPioMAD4qFAA+KiAAPiooAD4qNAA+KjgAPio8AD4qQAA+KkQAPipMAD4qVAA+KlgAPipcAD4qZAA+KmgAPirMAD4q0AA+KtQAPircAD4syAA+LNAAPizYAD4s4AA+LOwAPizwAD4s9AA+LPgAPiz8AD4tBAA+LQwAPi0QAD4tFAA+LRwAPi0gAD4vDAA+LxQAPi8cAD4vJAA+LzAAPi80AD4vOAA+LzwAPi9AAD4vSAA+L1AAPi9UAD4vWAA+L2AAPi9kAD4xUAA+MVgAPjFgAD4xaAA+MXQAPjF4AD4xfAA+MYAAPjGEAD4xjAA+MZQAPjGYAD4xnAA+MaQAPjGoAD4zlAA+M5wAPjOkAD4zrAA+M7gAPjO8AD4zwAA+M8QAPjPIAD4z0AA+M9gAPjPcAD4z4AA+M+gAPjPsAD412AA+NeAAPjXoAD418AA+NfwAPjYAAD42BAA+NggAPjYMAD42FAA+NhwAPjYgAD42JAA+NiwAPjYwAD43VAA+N+QAPjiAAD45EAA+ORwAPjkkAD45LAA+OTQAPjk8AD45RAA+OUgAPjlUAD45uAA+OiwAPjo0AD46PAA+OkQAPjpMAD46VAA+OlwAPjpkAD462AA+OuQAPjrwAD46/AA+OwgAPjsUAD47IAA+OywAPjs0AD49IAA+PSgAPj0wAD49OAA+PUQAPj1IAD49TAA+PVAAPj1UAD49XAA+PWQAPj1oAD49bAA+PXQAPj14AD4/ZAA+P2wAPj90AD4/fAA+P4gAPj+MAD4/kAA+P5QAPj+YAD4/oAA+P6gAPj+sAD4/sAA+P7gAPj+8AD5BqAA+QbAAPkG4AD5BwAA+QcwAPkHQAD5B1AA+QdgAPkHcAD5B5AA+QewAPkHwAD5B9AA+QfwAPkIAAD5D7AA+Q/QAPkP8AD5EBAA+RBAAPkQUAD5EGAA+RBwAPkQgAD5EKAA+RDAAPkQ0AD5EOAA+REAAPkREAD5GMAA+RjgAPkZAAD5GSAA+RlQAPkZYAD5GXAA+RmAAPkZkAD5GbAA+RnQAPkZ4AD5GfAA+RoQAPkaIAD5IdAA+SHwAPkiEAD5IjAA+SJgAPkicAD5IoAA+SKQAPkioAD5IsAA+SLgAPki8AD5IwAA+SMgAPkjMAD5KuAA+SsAAPkrIAD5K0AA+StwAPkrgAD5K5AA+SugAPkrsAD5K9AA+SvwAPksAAD5LBAA+SwwAPksQAD5NXAA+TegAPk5oAD5O6AA+TvAAPk74AD5PAAA+TwgAPk8UAD5PGAA+TxwAPk8oAD5PLAA+TzQAPk84AD5PQAA+T0wAPk9QAD5PVAA+T2AAPk9kAD5PeAA+T9wAPlAAAD5QCAA+UBAAPlA0AD5QQAA+UEwAPlBUAD5ReAA+UggAPlKkAD5TNAA+U0AAPlNIAD5TUAA+U1gAPlNgAD5TaAA+U2wAPlN4AD5T3AA+VGAAPlRoAD5UcAA+VHgAPlSAAD5UiAA+VJAAPlSYAD5UoAA+VSQAPlUwAD5VPAA+VUgAPlVUAD5VYAA+VWwAPlV4AD5VhAA+VYwAPld4AD5XgAA+V4gAPleQAD5XnAA+V6AAPlekAD5XqAA+V6wAPle0AD5XvAA+V8AAPlfEAD5XzAA+V9AAPlm8AD5ZxAA+WcwAPlnUAD5Z4AA+WeQAPlnoAD5Z7AA+WfAAPln4AD5aAAA+WgQAPloIAD5aEAA+WhQAPlwAAD5cCAA+XBQAPlwcAD5cKAA+XCwAPlwwAD5cNAA+XDgAPlxAAD5cSAA+XEwAPlxQAD5cWAA+XFwAPlzAAD5cxAA+XMgAPlzQAD5evAA+XsQAPl7MAD5e1AA+XuAAPl7kAD5e6AA+XuwAPl7wAD5e+AA+XwAAPl8EAD5fCAA+XxAAPl8UAD5hAAA+YQgAPmEQAD5hGAA+YSQAPmEoAD5hLAA+YTAAPmE0AD5hPAA+YUQAPmFIAD5hTAA+YVQAPmFYAD5jRAA+Y0wAPmNUAD5jXAA+Y2gAPmNsAD5jcAA+Y3QAPmN4AD5jgAA+Y4gAPmOMAD5jkAA+Y5gAPmOcAD5liAA+ZZAAPmWYAD5loAA+ZawAPmWwAD5ltAA+ZbgAPmW8AD5lxAA+ZcwAPmXQAD5l1AA+ZdwAPmXgAD5nzAA+Z9QAPmfcAD5n5AA+Z/AAPmf0AD5n+AA+Z/wAPmgAAD5oCAA+aBAAPmgUAD5oGAA+aCAAPmgkAD5pSAA+adgAPmp0AD5rBAA+axAAPmsYAD5rIAA+aygAPmswAD5rOAA+azwAPmtIAD5rrAA+bCAAPmwoAD5sMAA+bDgAPmxAAD5sSAA+bFAAPmxYAD5szAA+bNgAPmzkAD5s8AA+bPwAPm0IAD5tFAA+bSAAPm0oAD5vFAA+bxwAPm8kAD5vLAA+bzgAPm88AD5vQAA+b0QAPm9IAD5vUAA+b1gAPm9cAD5vYAA+b2gAPm9sAD5xWAA+cWAAPnFoAD5xcAA+cXwAPnGAAD5xhAA+cYgAPnGMAD5xlAA+cZwAPnGgAD5xpAA+cawAPnGwAD5znAA+c6QAPnOsAD5ztAA+c8AAPnPEAD5zyAA+c8wAPnPQAD5z2AA+c+AAPnPkAD5z6AA+c/AAPnP0AD514AA+degAPnXwAD51+AA+dgQAPnYIAD52DAA+dhAAPnYUAD52HAA+diQAPnYoAD52LAA+djQAPnY4AD54JAA+eCwAPng0AD54PAA+eEgAPnhMAD54UAA+eFQAPnhYAD54YAA+eGgAPnhsAD54cAA+eHgAPnh8AD56aAA+enAAPnp4AD56gAA+eowAPnqQAD56lAA+epgAPnqcAD56pAA+eqwAPnqwAD56tAA+erwAPnrAAD58rAA+fLQAPny8AD58xAA+fNAAPnzUAD582AA+fNwAPnzgAD586AA+fPAAPnz0AD58+AA+fQAAPn0EAD59SAA+fUwAPn1UAD5/YAA+f/AAPoCAAD6BDAA+gagAPoIoAD6CxAA+g2AAPoPgAD6EcAA+hQAAPoUIAD6FFAA+hRwAPoUkAD6FLAA+hTgAPoVEAD6FTAA+hVQAPoVgAD6FaAA+hXAAPoV8AD6FiAA+hYwAPoWwAD6GFAA+higAPoYwAD6GRAA+hlAAPoZYAD6HfAA+iAwAPoioAD6JOAA+iUQAPolMAD6JVAA+iVwAPolkAD6JbAA+iXAAPol8AD6J4AA+inQAPop8AD6KhAA+iowAPoqUAD6KnAA+iqQAPoqsAD6KtAA+irwAPotQAD6LXAA+i2gAPot0AD6LgAA+i4wAPouYAD6LpAA+i7AAPou8AD6LxAA+jbAAPo24AD6NxAA+jcwAPo3YAD6N3AA+jeAAPo3kAD6N6AA+jfAAPo34AD6N/AA+jgAAPo4IAD6ODAA+jlAAPo5UAD6OXAA+kEgAPpBQAD6QWAA+kGAAPpBsAD6QcAA+kHQAPpB4AD6QfAA+kIQAPpCMAD6QkAA+kJQAPpCcAD6QoAA+kowAPpKUAD6SoAA+kqgAPpK0AD6SuAA+krwAPpLAAD6SxAA+kswAPpLUAD6S2AA+ktwAPpLkAD6S6AA+kywAPpMwAD6TOAA+lSQAPpUsAD6VNAA+lTwAPpVIAD6VTAA+lVAAPpVUAD6VWAA+lWAAPpVoAD6VbAA+lXAAPpV4AD6VfAA+l2gAPpdwAD6XfAA+l4QAPpeQAD6XlAA+l5gAPpecAD6XoAA+l6gAPpewAD6XtAA+l7gAPpfAAD6XxAA+mAgAPpgMAD6YFAA+mgAAPpoIAD6aEAA+mhgAPpokAD6aKAA+miwAPpowAD6aNAA+mjwAPppEAD6aSAA+mkwAPppUAD6aWAA+nEQAPpxMAD6cWAA+nGAAPpxsAD6ccAA+nHQAPpx4AD6cfAA+nIQAPpyMAD6ckAA+nJQAPpycAD6coAA+nQQAPp0IAD6dDAA+nRQAPp8AAD6fCAA+nxAAPp8YAD6fJAA+nygAPp8sAD6fMAA+nzQAPp88AD6fRAA+n0gAPp9MAD6fVAA+n1gAPqFEAD6hTAA+oVgAPqFgAD6hbAA+oXAAPqF0AD6heAA+oXwAPqGEAD6hjAA+oZAAPqGUAD6hnAA+oaAAPqIEAD6iaAA+oywAPqM4AD6jRAA+o1AAPqNcAD6jaAA+o3QAPqOAAD6jjAA+o5gAPqOkAD6jsAA+o7wAPqSAAD6kjAA+pJgAPqSkAD6ksAA+pLwAPqTIAD6k1AA+pOAAPqTsAD6k+AA+pQQAPqUQAD6lGAA+pVQAPqWMAD6l5AA+plQAPqagAD6myAA+pygAPqegAD6n7AA+qGQAPqiMAD6q2AA+q2QAPqvkAD6sZAA+rGwAPqx0AD6sfAA+rIQAPqyQAD6slAA+rJgAPqykAD6sqAA+rLAAPqy0AD6svAA+rMgAPqzMAD6s0AA+rNwAPqzgAD6s9AA+rVgAPq18AD6thAA+rYwAPq2wAD6tvAA+rcgAPq3QAD6u9AA+r4QAPrAgAD6wsAA+sLwAPrDEAD6wzAA+sNQAPrDcAD6w5AA+sOgAPrD0AD6xWAA+sdwAPrHkAD6x7AA+sfQAPrH8AD6yBAA+sgwAPrIUAD6yHAA+sqAAPrKsAD6yuAA+ssQAPrLQAD6y3AA+sugAPrL0AD6zAAA+swgAPrT0AD60/AA+tQQAPrUMAD61GAA+tRwAPrUgAD61JAA+tSgAPrUwAD61OAA+tTwAPrVAAD61SAA+tUwAPrc4AD63QAA+t0gAPrdQAD63XAA+t2AAPrdkAD63aAA+t2wAPrd0AD63fAA+t4AAPreEAD63jAA+t5AAPrl8AD65hAA+uZAAPrmYAD65pAA+uagAPrmsAD65sAA+ubQAPrm8AD65xAA+ucgAPrnMAD651AA+udgAPro8AD66QAA+ukQAPrpMAD68OAA+vEAAPrxIAD68UAA+vFwAPrxgAD68ZAA+vGgAPrxsAD68dAA+vHwAPryAAD68hAA+vIwAPryQAD6+fAA+voQAPr6MAD6+lAA+vqAAPr6kAD6+qAA+vqwAPr6wAD6+uAA+vsAAPr7EAD6+yAA+vtAAPr7UAD7AwAA+wMgAPsDQAD7A2AA+wOQAPsDoAD7A7AA+wPAAPsD0AD7A/AA+wQQAPsEIAD7BDAA+wRQAPsEYAD7DBAA+wwwAPsMUAD7DHAA+wygAPsMsAD7DMAA+wzQAPsM4AD7DQAA+w0gAPsNMAD7DUAA+w1gAPsNcAD7FSAA+xVAAPsVYAD7FYAA+xWwAPsVwAD7FdAA+xXgAPsV8AD7FhAA+xYwAPsWQAD7FlAA+xZwAPsWgAD7GxAA+x1QAPsfwAD7IgAA+yIwAPsiUAD7InAA+yKQAPsisAD7ItAA+yLgAPsjEAD7JKAA+yZwAPsmkAD7JrAA+ybQAPsm8AD7JxAA+ycwAPsnUAD7KSAA+ylQAPspgAD7KbAA+yngAPsqEAD7KkAA+ypwAPsqkAD7MkAA+zJgAPsykAD7MrAA+zLgAPsy8AD7MwAA+zMQAPszIAD7M0AA+zNgAPszcAD7M4AA+zOgAPszsAD7O2AA+zuAAPs7oAD7O8AA+zvwAPs8AAD7PBAA+zwgAPs8MAD7PFAA+zxwAPs8gAD7PJAA+zywAPs8wAD7RHAA+0SQAPtEsAD7RNAA+0UAAPtFEAD7RSAA+0UwAPtFQAD7RWAA+0WAAPtFkAD7RaAA+0XAAPtF0AD7TYAA+02gAPtN0AD7TfAA+04gAPtOMAD7TkAA+05QAPtOYAD7ToAA+06gAPtOsAD7TsAA+07gAPtO8AD7VqAA+1bAAPtW4AD7VwAA+1cwAPtXQAD7V1AA+1dgAPtXcAD7V5AA+1ewAPtXwAD7V9AA+1fwAPtYAAD7X7AA+1/QAPtf8AD7YBAA+2BAAPtgUAD7YGAA+2BwAPtggAD7YKAA+2DAAPtg0AD7YOAA+2EAAPthEAD7aMAA+2jgAPtpAAD7aSAA+2lQAPtpYAD7aXAA+2mAAPtpkAD7abAA+2nQAPtp4AD7afAA+2oQAPtqIAD7c1AA+3WAAPt3gAD7eYAA+3mgAPt5wAD7eeAA+3oAAPt6MAD7ekAA+3pQAPt6gAD7epAA+3qwAPt6wAD7euAA+3sQAPt7IAD7ezAA+3tgAPt7cAD7e8AA+31QAPt94AD7fgAA+34gAPt+sAD7fuAA+38QAPt/MAD7g8AA+4YAAPuIcAD7irAA+4rgAPuLAAD7iyAA+4tAAPuLYAD7i4AA+4uQAPuLwAD7jVAA+49gAPuPgAD7j6AA+4/AAPuP4AD7kAAA+5AgAPuQQAD7kGAA+5JwAPuSoAD7ktAA+5MAAPuTMAD7k2AA+5OQAPuTwAD7k/AA+5QQAPubwAD7m+AA+5wAAPucIAD7nFAA+5xgAPuccAD7nIAA+5yQAPucsAD7nNAA+5zgAPuc8AD7nRAA+50gAPuk0AD7pPAA+6UQAPulMAD7pWAA+6VwAPulgAD7pZAA+6WgAPulwAD7peAA+6XwAPumAAD7piAA+6YwAPut4AD7rgAA+64wAPuuUAD7roAA+66QAPuuoAD7rrAA+67AAPuu4AD7rwAA+68QAPuvIAD7r0AA+69QAPuw4AD7sPAA+7EAAPuxIAD7uNAA+7jwAPu5EAD7uTAA+7lgAPu5cAD7uYAA+7mQAPu5oAD7ucAA+7ngAPu58AD7ugAA+7ogAPu6MAD7weAA+8IAAPvCIAD7wkAA+8JwAPvCgAD7wpAA+8KgAPvCsAD7wtAA+8LwAPvDAAD7wxAA+8MwAPvDQAD7yvAA+8sQAPvLMAD7y1AA+8uAAPvLkAD7y6AA+8uwAPvLwAD7y+AA+8wAAPvMEAD7zCAA+8xAAPvMUAD71AAA+9QgAPvUQAD71GAA+9SQAPvUoAD71LAA+9TAAPvU0AD71PAA+9UQAPvVIAD71TAA+9VQAPvVYAD73RAA+90wAPvdUAD73XAA+92gAPvdsAD73cAA+93QAPvd4AD73gAA+94gAPveMAD73kAA+95gAPvecAD74wAA++VAAPvnsAD76fAA++ogAPvqQAD76mAA++qAAPvqoAD76sAA++rQAPvrAAD77JAA++5gAPvugAD77qAA++7AAPvu4AD77wAA++8gAPvvQAD78RAA+/FAAPvxcAD78aAA+/HQAPvyAAD78jAA+/JgAPvygAD7+jAA+/pQAPv6cAD7+pAA+/rAAPv60AD7+uAA+/rwAPv7AAD7+yAA+/tAAPv7UAD7+2AA+/uAAPv7kAD8A0AA/ANgAPwDgAD8A6AA/APQAPwD4AD8A/AA/AQAAPwEEAD8BDAA/ARQAPwEYAD8BHAA/ASQAPwEoAD8DFAA/AxwAPwMkAD8DLAA/AzgAPwM8AD8DQAA/A0QAPwNIAD8DUAA/A1gAPwNcAD8DYAA/A2gAPwNsAD8FWAA/BWAAPwVsAD8FdAA/BYAAPwWEAD8FiAA/BYwAPwWQAD8FmAA/BaAAPwWkAD8FqAA/BbAAPwW0AD8HoAA/B6gAPwewAD8HuAA/B8QAPwfIAD8HzAA/B9AAPwfUAD8H3AA/B+QAPwfoAD8H7AA/B/QAPwf4AD8J5AA/CewAPwn0AD8J/AA/CggAPwoMAD8KEAA/ChQAPwoYAD8KIAA/CigAPwosAD8KMAA/CjgAPwo8AD8MKAA/DDAAPww4AD8MQAA/DEwAPwxQAD8MVAA/DFgAPwxcAD8MZAA/DGwAPwxwAD8MdAA/DHwAPwyAAD8OzAA/D1gAPw/YAD8QWAA/EGAAPxBoAD8QcAA/EHgAPxCEAD8QiAA/EIwAPxCYAD8QnAA/EKQAPxCoAD8QsAA/ELwAPxDAAD8QxAA/ENAAPxDUAD8Q+AA/EVwAPxGAAD8RiAA/EZAAPxG0AD8RwAA/EcwAPxHUAD8S+AA/E4gAPxQkAD8UtAA/FMAAPxTIAD8U0AA/FNgAPxTgAD8U6AA/FOwAPxT4AD8VXAA/FeAAPxXoAD8V8AA/FfgAPxYAAD8WCAA/FhAAPxYYAD8WIAA/FqQAPxawAD8WvAA/FsgAPxbUAD8W4AA/FuwAPxb4AD8XBAA/FwwAPxj4AD8ZAAA/GQgAPxkQAD8ZHAA/GSAAPxkkAD8ZKAA/GSwAPxk0AD8ZPAA/GUAAPxlEAD8ZTAA/GVAAPxs8AD8bRAA/G0wAPxtUAD8bYAA/G2QAPxtoAD8bbAA/G3AAPxt4AD8bgAA/G4QAPxuIAD8bkAA/G5QAPx2AAD8diAA/HZQAPx2cAD8dqAA/HawAPx2wAD8dtAA/HbgAPx3AAD8dyAA/HcwAPx3QAD8d2AA/HdwAPx5AAD8eRAA/HkgAPx5QAD8gPAA/IEQAPyBMAD8gVAA/IGAAPyBkAD8gaAA/IGwAPyBwAD8geAA/IIAAPyCEAD8giAA/IJAAPyCUAD8igAA/IogAPyKQAD8imAA/IqQAPyKoAD8irAA/IrAAPyK0AD8ivAA/IsQAPyLIAD8izAA/ItQAPyLYAD8kxAA/JMwAPyTUAD8k3AA/JOgAPyTsAD8k8AA/JPQAPyT4AD8lAAA/JQgAPyUMAD8lEAA/JRgAPyUcAD8nCAA/JxAAPycYAD8nIAA/JywAPycwAD8nNAA/JzgAPyc8AD8nRAA/J0wAPydQAD8nVAA/J1wAPydgAD8pTAA/KVQAPylcAD8pZAA/KXAAPyl0AD8peAA/KXwAPymAAD8piAA/KZAAPymUAD8pmAA/KaAAPymkAD8qyAA/K1gAPyv0AD8shAA/LJAAPyyYAD8soAA/LKgAPyywAD8suAA/LLwAPyzIAD8tLAA/LaAAPy2oAD8tsAA/LbgAPy3AAD8tyAA/LdAAPy3YAD8uTAA/LlgAPy5kAD8ucAA/LnwAPy6IAD8ulAA/LqAAPy6oAD8wlAA/MJwAPzCkAD8wrAA/MLgAPzC8AD8wwAA/MMQAPzDIAD8w0AA/MNgAPzDcAD8w4AA/MOgAPzDsAD8y2AA/MuAAPzLoAD8y8AA/MvwAPzMAAD8zBAA/MwgAPzMMAD8zFAA/MxwAPzMgAD8zJAA/MywAPzMwAD81HAA/NSQAPzUsAD81NAA/NUAAPzVEAD81SAA/NUwAPzVQAD81WAA/NWAAPzVkAD81aAA/NXAAPzV0AD83YAA/N2gAPzd0AD83fAA/N4gAPzeMAD83kAA/N5QAPzeYAD83oAA/N6gAPzesAD83sAA/N7gAPze8AD85qAA/ObAAPzm4AD85wAA/OcwAPznQAD851AA/OdgAPzncAD855AA/OewAPznwAD859AA/OfwAPzoAAD877AA/O/QAPzv8AD88BAA/PBAAPzwUAD88GAA/PBwAPzwgAD88KAA/PDAAPzw0AD88OAA/PEAAPzxEAD8+MAA/PjgAPz5AAD8+SAA/PlQAPz5YAD8+XAA/PmAAPz5kAD8+bAA/PnQAPz54AD8+fAA/PoQAPz6IAD9A1AA/QWAAP0HgAD9CYAA/QmgAP0JwAD9CeAA/QoAAP0KMAD9CkAA/QpQAP0KgAD9CpAA/QqwAP0KwAD9CuAA/QsQAP0LIAD9CzAA/QtgAP0LcAD9C8AA/Q1QAP0N4AD9DgAA/Q4gAP0OsAD9DuAA/Q8QAP0PMAD9E8AA/RYAAP0YcAD9GrAA/RrgAP0bAAD9GyAA/RtAAP0bYAD9G4AA/RuQAP0bwAD9HVAA/R9gAP0fgAD9H6AA/R/AAP0f4AD9IAAA/SAgAP0gQAD9IGAA/SJwAP0ioAD9ItAA/SMAAP0jMAD9I2AA/SOQAP0jwAD9I/AA/SQQAP0rwAD9K+AA/SwAAP0sIAD9LFAA/SxgAP0scAD9LIAA/SyQAP0ssAD9LNAA/SzgAP0s8AD9LRAA/S0gAP000AD9NPAA/TUQAP01MAD9NWAA/TVwAP01gAD9NZAA/TWgAP01wAD9NeAA/TXwAP02AAD9NiAA/TYwAP094AD9PgAA/T4wAP0+UAD9PoAA/T6QAP0+oAD9PrAA/T7AAP0+4AD9PwAA/T8QAP0/IAD9P0AA/T9QAP1A4AD9QPAA/UEAAP1BIAD9SNAA/UjwAP1JEAD9STAA/UlgAP1JcAD9SYAA/UmQAP1JoAD9ScAA/UngAP1J8AD9SgAA/UogAP1KMAD9UeAA/VIAAP1SIAD9UkAA/VJwAP1SgAD9UpAA/VKgAP1SsAD9UtAA/VLwAP1TAAD9UxAA/VMwAP1TQAD9WvAA/VsQAP1bMAD9W1AA/VuAAP1bkAD9W6AA/VuwAP1bwAD9W+AA/VwAAP1cEAD9XCAA/VxAAP1cUAD9ZAAA/WQgAP1kQAD9ZGAA/WSQAP1koAD9ZLAA/WTAAP1k0AD9ZPAA/WUQAP1lIAD9ZTAA/WVQAP1lYAD9bRAA/W0wAP1tUAD9bXAA/W2gAP1tsAD9bcAA/W3QAP1t4AD9bgAA/W4gAP1uMAD9bkAA/W5gAP1ucAD9cwAA/XVAAP13sAD9efAA/XogAP16QAD9emAA/XqAAP16oAD9esAA/XrQAP17AAD9fJAA/X5gAP1+gAD9fqAA/X7AAP1+4AD9fwAA/X8gAP1/QAD9gRAA/YFAAP2BcAD9gaAA/YHQAP2CAAD9gjAA/YJgAP2CgAD9ijAA/YpQAP2KcAD9ipAA/YrAAP2K0AD9iuAA/YrwAP2LAAD9iyAA/YtAAP2LUAD9i2AA/YuAAP2LkAD9k0AA/ZNgAP2TgAD9k6AA/ZPQAP2T4AD9k/AA/ZQAAP2UEAD9lDAA/ZRQAP2UYAD9lHAA/ZSQAP2UoAD9nFAA/ZxwAP2ckAD9nLAA/ZzgAP2c8AD9nQAA/Z0QAP2dIAD9nUAA/Z1gAP2dcAD9nYAA/Z2gAP2dsAD9pWAA/aWAAP2loAD9pcAA/aXwAP2mAAD9phAA/aYgAP2mMAD9plAA/aZwAP2mgAD9ppAA/aawAP2mwAD9rnAA/a6QAP2usAD9rtAA/a8AAP2vEAD9ryAA/a8wAP2vQAD9r2AA/a+AAP2vkAD9r6AA/a/AAP2v0AD9t4AA/begAP23wAD9t+AA/bgQAP24IAD9uDAA/bhAAP24UAD9uHAA/biQAP24oAD9uLAA/bjQAP244AD9wJAA/cCwAP3A0AD9wPAA/cEgAP3BMAD9wUAA/cFQAP3BYAD9wYAA/cGgAP3BsAD9wcAA/cHgAP3B8AD9yyAA/c1QAP3PUAD90VAA/dFwAP3RkAD90bAA/dHQAP3SAAD90hAA/dIgAP3SUAD90mAA/dKAAP3SkAD90rAA/dLgAP3S8AD90wAA/dMwAP3TQAD905AA/dUgAP3VsAD91dAA/dXwAP3WgAD91rAA/dbgAP3XAAD925AA/d3QAP3gQAD94oAA/eKwAP3i0AD94vAA/eMQAP3jMAD941AA/eNgAP3jkAD95SAA/ecwAP3nUAD953AA/eeQAP3nsAD959AA/efwAP3oEAD96DAA/epAAP3qcAD96qAA/erQAP3rAAD96zAA/etgAP3rkAD968AA/evgAP3zkAD987AA/fPQAP3z8AD99CAA/fQwAP30QAD99FAA/fRgAP30gAD99KAA/fSwAP30wAD99OAA/fTwAP38oAD9/MAA/fzgAP39AAD9/TAA/f1AAP39UAD9/WAA/f1wAP39kAD9/bAA/f3AAP390AD9/fAA/f4AAP4FsAD+BdAA/gYAAP4GIAD+BlAA/gZgAP4GcAD+BoAA/gaQAP4GsAD+BtAA/gbgAP4G8AD+BxAA/gcgAP4IsAD+CMAA/gjQAP4I8AD+EKAA/hDAAP4Q4AD+EQAA/hEwAP4RQAD+EVAA/hFgAP4RcAD+EZAA/hGwAP4RwAD+EdAA/hHwAP4SAAD+GbAA/hnQAP4Z8AD+GhAA/hpAAP4aUAD+GmAA/hpwAP4agAD+GqAA/hrAAP4a0AD+GuAA/hsAAP4bEAD+IsAA/iLgAP4jAAD+IyAA/iNQAP4jYAD+I3AA/iOAAP4jkAD+I7AA/iPQAP4j4AD+I/AA/iQQAP4kIAD+K9AA/ivwAP4sEAD+LDAA/ixgAP4scAD+LIAA/iyQAP4soAD+LMAA/izgAP4s8AD+LQAA/i0gAP4tMAD+NOAA/jUAAP41IAD+NUAA/jVwAP41gAD+NZAA/jWgAP41sAD+NdAA/jXwAP42AAD+NhAA/jYwAP42QAD+OtAA/j0QAP4/gAD+QcAA/kHwAP5CEAD+QjAA/kJQAP5CcAD+QpAA/kKgAP5C0AD+RGAA/kYwAP5GUAD+RnAA/kaQAP5GsAD+RtAA/kbwAP5HEAD+SOAA/kkQAP5JQAD+SXAA/kmgAP5J0AD+SgAA/kowAP5KUAD+UgAA/lIgAP5SUAD+UnAA/lKgAP5SsAD+UsAA/lLQAP5S4AD+UwAA/lMgAP5TMAD+U0AA/lNgAP5TcAD+WyAA/ltAAP5bYAD+W4AA/luwAP5bwAD+W9AA/lvgAP5b8AD+XBAA/lwwAP5cQAD+XFAA/lxwAP5cg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AEABsABAAbwAQAHAAEABxABAAcgAQAHMAEAB1ABAAdwAQAHgAEAB5ABAAewAQAHwAEAD3ABAA+QAQAPsAEAD9ABABAAAQAQEAEAECABABAwAQAQQAEAEGABABCAAQAQkAEAEKABABDAAQAQ0AEAGIABABigAQAYwAEAGOABABkQAQAZIAEAGTABABlAAQAZUAEAGXABABmQAQAZoAEAGbABABnQAQAZ4AEAIxABACVAAQAnQAEAKUABAClgAQApgAEAKaABACnAAQAp8AEAKgABACoQAQAqQAEAKlABACpwAQAqgAEAKqABACrQAQAq4AEAKvABACsgAQArMAEAK4ABAC0QAQAtoAEALcABAC3gAQAucAEALqABAC7QAQAu8AEAM4ABADXAAQA4MAEAOnABADqgAQA6wAEAOuABADsAAQA7IAEAO0ABADtQAQA7gAEAPRABAD8gAQA/QAEAP2ABAD+AAQA/oAEAP8ABAD/gAQBAAAEAQCABAEIwAQBCYAEAQpABAELAAQBC8AEAQyABAENQAQBDgAEAQ7ABAEPQAQBLgAEAS6ABAEvAAQBL4AEATBABAEwgAQBMMAEATEABAExQAQBMcAEATJABAEygAQBMsAEATNABAEzgAQBUkAEAVLABAFTQAQBU8AEAVSABAFUwAQBVQAEAVVABAFVgAQBVgAEAVaABAFWwAQBVwAEAVeABAFXwAQBdoAEAXcABAF3wAQBeEAEAXkABAF5QAQBeYAEAXnABAF6AAQBeoAEAXsABAF7QAQBe4AEAXwABAF8QAQBgoAEAYLABAGDAAQBg4AEAaJABAGiwAQBo0AEAaPABAGkgAQBpMAEAaUABAGlQAQBpYAEAaYABAGmgAQBpsAEAacABAGngAQBp8AEAcaABAHHAAQBx4AEAcgABAHIwAQByQAEAclABAHJgAQBycAEAcpABAHKwAQBywAEActABAHLwAQBzAAEAerABAHrQAQB68AEAexABAHtAAQB7UAEAe2ABAHtwAQB7gAEAe6ABAHvAAQB70AEAe+ABAHwAAQB8EAEAg8ABAIPgAQCEAAEAhCABAIRQAQCEYAEAhHABAISAAQCEkAEAhLABAITQAQCE4AEAhPABAIUQAQCFIAEAjNABAIzwAQCNEAEAjTABAI1gAQCNcAEAjYABAI2QAQCNoAEAjcABAI3gAQCN8AEAjgABAI4gAQCOMAEAksABAJUAAQCXcAEAmbABAJngAQCaAAEAmiABAJpAAQCaYAEAmoABAJqQAQCawAEAnFABAJ4gAQCeQAEAnmABAJ6AAQCeoAEAnsABAJ7gAQCfAAEAoNABAKEAAQChMAEAoWABAKGQAQChwAEAofABAKIgAQCiQAEAqfABAKoQAQCqMAEAqlABAKqAAQCqkAEAqqABAKqwAQCqwAEAquABAKsAAQCrEAEAqyABAKtAAQCrUAEAswABALMgAQCzQAEAs2ABALOQAQCzoAEAs7ABALPAAQCz0AEAs/ABALQQAQC0IAEAtDABALRQAQC0YAEAvBABALwwAQC8UAEAvHABALygAQC8sAEAvMABALzQAQC84AEAvQABAL0gAQC9MAEAvUABAL1gAQC9cAEAxSABAMVAAQDFYAEAxYABAMWwAQDFwAEAxdABAMXgAQDF8AEAxhABAMYwAQDGQAEAxlABAMZwAQDGgAEAzjABAM5QAQDOcAEAzpABAM7AAQDO0AEAzuABAM7wAQDPAAEAzyABAM9AAQDPUAEAz2ABAM+AAQDPkAEA10ABANdgAQDXgAEA16ABANfQAQDX4AEA1/ABANgAAQDYEAEA2DABANhQAQDYYAEA2HABANiQAQDYoAEA4FABAOBwAQDgkAEA4LABAODgAQDg8AEA4QABAOEQAQDhIAEA4UABAOFgAQDhcAEA4YABAOGgAQDhsAEA6uABAO0QAQDvEAEA8RABAPEwAQDxUAEA8XABAPGQAQDxwAEA8dABAPHgAQDyEAEA8iABAPJAAQDyUAEA8nABAPKgAQDysAEA8sABAPLwAQDzAAEA85ABAPUgAQD1sAEA9dABAPXwAQD2gAEA9rABAPbgAQD3AAEA+5ABAP3QAQEAQAEBAoABAQKwAQEC0AEBAvABAQMQAQEDMAEBA1ABAQNgAQEDkAEBBSABAQcwAQEHUAEBB3ABAQeQAQEHsAEBB9ABAQfwAQEIEAEBCDABAQpAAQEKcAEBCqABAQrQAQELAAEBCzABAQtgAQELkAEBC8ABAQvgAQETkAEBE7ABARPQAQET8AEBFCABARQwAQEUQAEBFFABARRgAQEUgAEBFKABARSwAQEUwAEBFOABARTwAQEcoAEBHMABARzgAQEdAAEBHTABAR1AAQEdUAEBHWABAR1wAQEdkAEBHbABAR3AAQEd0AEBHfABAR4AAQElsAEBJdABASYAAQEmIAEBJlABASZgAQEmcAEBJoABASaQAQEmsAEBJtABASbgAQEm8AEBJxABAScgAQEosAEBKMABASjQAQEo8AEBMKABATDAAQEw4AEBMQABATEwAQExQAEBMVABATFgAQExcAEBMZABATGwAQExwAEBMdABATHwAQEyAAEBObABATnQAQE58AEBOhABATpAAQE6UAEBOmABATpwAQE6gAEBOqABATrAAQE60AEBOuABATsAAQE7EAEBQsABAULgAQFDAAEBQyABAUNQAQFDYAEBQ3ABAUOAAQFDkAEBQ7ABAUPQAQFD4AEBQ/ABAUQQAQFEIAEBS9ABAUvwAQFMEAEBTDABAUxgAQFMcAEBTIABAUyQAQFMoAEBTMABAUzgAQFM8AEBTQABAU0gAQFNMAEBVOABAVUAAQFVIAEBVUABAVVwAQFVgAEBVZABAVWgAQFVsAEBVdABAVXwAQFWAAEBVhABAVYwAQFWQAEBWtABAV0QAQFfgAEBYcABAWHwAQFiEAEBYjABAWJQAQFicAEBYpABAWKgAQFi0AEBZGABAWYwAQFmUAEBZnABAWaQAQFmsAEBZtABAWbwAQFnEAEBaOABAWkQAQFpQAEBaXABAWmgAQFp0AEBagABAWowAQFqUAEBcgABAXIgAQFyQAEBcmABAXKQAQFyoAEBcrABAXLAAQFy0AEBcvABAXMQAQFzIAEBczABAXNQAQFzYAEBexABAXswAQF7UAEBe3ABAXugAQF7sAEBe8ABAXvQAQF74AEBfAABAXwgAQF8MAEBfEABAXxgAQF8cAEBhCABAYRAAQGEYAEBhIABAYSwAQGEwAEBhNABAYTgAQGE8AEBhRABAYUwAQGFQAEBhVABAYVwAQGFgAEBjTABAY1QAQGNgAEBjaABAY3QAQGN4AEBjfABAY4AAQGOEAEBjjABAY5QAQGOYAEBjnABAY6QAQGOoAEBllABAZZwAQGWkAEBlrABAZbgAQGW8AEBlwABAZcQAQGXIAEBl0ABAZdgAQGXcAEBl4ABAZegAQGXsAEBn2ABAZ+AAQGfoAEBn8ABAZ/wAQGgAAEBoBABAaAgAQGgMAEBoFABAaBwAQGggAEBoJABAaCwAQGgwAEBqHABAaiQAQGosAEBqNABAakAAQGpEAEBqSABAakwAQGpQAEBqWABAamAAQGpkAEBqaABAanAAQGp0AEBswABAbUwAQG3MAEBuTABAblQAQG5cAEBuZABAbmwAQG54AEBufABAboAAQG6MAEBukABAbpgAQG6cAEBupABAbrAAQG60AEBuuABAbsQAQG7IAEBu3ABAb0AAQG9kAEBvbABAb3QAQG+YAEBvpABAb7AAQG+4AEBw3ABAcWwAQHIIAEBymABAcqQAQHKsAEBytABAcrwAQHLEAEByzABActAAQHLcAEBzQABAc8QAQHPMAEBz1ABAc9wAQHPkAEBz7ABAc/QAQHP8AEB0BABAdIgAQHSUAEB0oABAdKwAQHS4AEB0xABAdNAAQHTcAEB06ABAdPAAQHbcAEB25ABAduwAQHb0AEB3AABAdwQAQHcIAEB3DABAdxAAQHcYAEB3IABAdyQAQHcoAEB3MABAdzQAQHkgAEB5KABAeTAAQHk4AEB5RABAeUgAQHlMAEB5UABAeVQAQHlcAEB5ZABAeWgAQHlsAEB5dABAeXgAQHtkAEB7bABAe3gAQHuAAEB7jABAe5AAQHuUAEB7mABAe5wAQHukAEB7rABAe7AAQHu0AEB7vABAe8AAQHwkAEB8KABAfCwAQHw0AEB+IABAfigAQH4wAEB+OABAfkQAQH5IAEB+TABAflAAQH5UAEB+XABAfmQAQH5oAEB+bABAfnQAQH54AECAZABAgGwAQIB0AECAfABAgIgAQICMAECAkABAgJQAQICYAECAoABAgKgAQICsAECAsABAgLgAQIC8AECCqABAgrAAQIK4AECCwABAgswAQILQAECC1ABAgtgAQILcAECC5ABAguwAQILwAECC9ABAgvwAQIMAAECE7ABAhPQAQIT8AECFBABAhRAAQIUUAECFGABAhRwAQIUgAECFKABAhTAAQIU0AECFOABAhUAAQIVEAECHMABAhzgAQIdAAECHSABAh1QAQIdYAECHXABAh2AAQIdkAECHbABAh3QAQId4AECHfABAh4QAQIeIAECIrABAiTwAQInYAECKaABAinQAQIp8AECKhABAiowAQIqUAECKnABAiqAAQIqsAECLEABAi4QAQIuMAECLlABAi5wAQIukAECLrABAi7QAQIu8AECMMABAjDwAQIxIAECMVABAjGAAQIxsAECMeABAjIQAQIyMAECOeABAjoAAQI6MAECOlABAjqAAQI6kAECOqABAjqwAQI6wAECOuABAjsAAQI7EAECOyABAjtAAQI7UAECQwABAkMgAQJDQAECQ2ABAkOQAQJDoAECQ7ABAkPAAQJD0AECQ/ABAkQQAQJEIAECRDABAkRQAQJEYAECTBABAkwwAQJMUAECTHABAkygAQJMsAECTMABAkzQAQJM4AECTQABAk0gAQJNMAECTUABAk1gAQJNcAECVSABAlVAAQJVYAECVYABAlWwAQJVwAECVdABAlXgAQJV8AECVhABAlYwAQJWQAECVlABAlZwAQJWgAECXjABAl5QAQJecAECXpABAl7AAQJe0AECXuABAl7wAQJfAAECXyABAl9AAQJfUAECX2ABAl+AAQJfkAECZ0ABAmdgAQJngAECZ6ABAmfQAQJn4AECZ/ABAmgAAQJoEAECaDABAmhQAQJoYAECaHABAmiQAQJooAECcFABAnBwAQJwkAECcLABAnDgAQJw8AECcQABAnEQAQJxIAECcUABAnFgAQJxcAECcYABAnGgAQJxsAECeuABAn0QAQJ/EAECgRABAoEwAQKBUAECgXABAoGQAQKBwAECgdABAoHgAQKCEAECgiABAoJAAQKCUAECgnABAoKgAQKCsAECgsABAoLwAQKDAAECg1ABAoTgAQKFcAEChZABAoWwAQKGQAEChnABAoagAQKGwAECi1ABAo2QAQKQAAECkkABApJwAQKSkAECkrABApLQAQKS8AECkxABApMgAQKTUAEClOABApbwAQKXEAEClzABApdQAQKXcAECl5ABApewAQKX0AECl/ABApoAAQKaMAECmmABApqQAQKawAECmvABApsgAQKbUAECm4ABApugAQKjUAECo3ABAqOQAQKjsAECo+ABAqPwAQKkAAECpBABAqQgAQKkQAECpGABAqRwAQKkgAECpKABAqSwAQKsYAECrIABAqygAQKswAECrPABAq0AAQKtEAECrSABAq0wAQKtUAECrXABAq2AAQKtkAECrbABAq3AAQK1cAECtZABArXAAQK14AECthABArYgAQK2MAECtkABArZQAQK2cAECtpABAragAQK2sAECttABArbgAQK4cAECuIABAriQAQK4sAECwGABAsCAAQLAoAECwMABAsDwAQLBAAECwRABAsEgAQLBMAECwVABAsFwAQLBgAECwZABAsGwAQLBwAECyXABAsmQAQLJsAECydABAsoAAQLKEAECyiABAsowAQLKQAECymABAsqAAQLKkAECyqABAsrAAQLK0AEC0oABAtKgAQLSwAEC0uABAtMQAQLTIAEC0zABAtNAAQLTUAEC03ABAtOQAQLToAEC07ABAtPQAQLT4AEC25ABAtuwAQLb0AEC2/ABAtwgAQLcMAEC3EABAtxQAQLcYAEC3IABAtygAQLcsAEC3MABAtzgAQLc8AEC5KABAuTAAQLk4AEC5QABAuUwAQLlQAEC5VABAuVgAQLlcAEC5ZABAuWwAQLlwAEC5dABAuXwAQLmAAEC6pABAuzQAQLvQAEC8YABAvGwAQLx0AEC8fABAvIQAQLyMAEC8lABAvJgAQLykAEC9CABAvXwAQL2EAEC9jABAvZQAQL2cAEC9pABAvawAQL20AEC+KABAvjQAQL5AAEC+TABAvlgAQL5kAEC+cABAvnwAQL6EAEDAcABAwHgAQMCAAEDAiABAwJQAQMCYAEDAnABAwKAAQMCkAEDArABAwLQAQMC4AEDAvABAwMQAQMDIAEDCtABAwrwAQMLEAEDCzABAwtgAQMLcAEDC4ABAwuQAQMLoAEDC8ABAwvgAQML8AEDDAABAwwgAQMMMAEDE+ABAxQAAQMUIAEDFEABAxRwAQMUgAEDFJABAxSgAQMUsAEDFNABAxTwAQMVAAEDFRABAxUwAQMVQAEDHPABAx0QAQMdQAEDHWABAx2QAQMdoAEDHbABAx3AAQMd0AEDHfABAx4QAQMeIAEDHjABAx5QAQMeYAEDJhABAyYwAQMmUAEDJnABAyagAQMmsAEDJsABAybQAQMm4AEDJwABAycgAQMnMAEDJ0ABAydgAQMncAEDLyABAy9AAQMvYAEDL4ABAy+wAQMvwAEDL9ABAy/gAQMv8AEDMBABAzAwAQMwQAEDMFABAzBwAQMwgAEDODABAzhQAQM4cAEDOJABAzjAAQM40AEDOOABAzjwAQM5AAEDOSABAzlAAQM5UAEDOWABAzmAAQM5kAEDQsABA0TwAQNG8AEDSPABA0kQAQNJMAEDSVABA0lwAQNJoAEDSbABA0nAAQNJ8AEDSgABA0ogAQNKMAEDSlABA0qAAQNKkAEDSqABA0rQAQNK4AEDSzABA0zAAQNNUAEDTXABA02QAQNOIAEDTlABA06AAQNOoAEDUzABA1VwAQNX4AEDWiABA1pQAQNacAEDWpABA1qwAQNa0AEDWvABA1sAAQNbMAEDXMABA17QAQNe8AEDXxABA18wAQNfUAEDX3ABA1+QAQNfsAEDX9ABA2HgAQNiEAEDYkABA2JwAQNioAEDYtABA2MAAQNjMAEDY2ABA2OAAQNrMAEDa1ABA2twAQNrkAEDa8ABA2vQAQNr4AEDa/ABA2wAAQNsIAEDbEABA2xQAQNsYAEDbIABA2yQAQN0QAEDdGABA3SAAQN0oAEDdNABA3TgAQN08AEDdQABA3UQAQN1MAEDdVABA3VgAQN1cAEDdZABA3WgAQN9UAEDfXABA32gAQN9wAEDffABA34AAQN+EAEDfiABA34wAQN+UAEDfnABA36AAQN+kAEDfrABA37AAQOAUAEDgGABA4BwAQOAkAEDiEABA4hgAQOIgAEDiKABA4jQAQOI4AEDiPABA4kAAQOJEAEDiTABA4lQAQOJYAEDiXABA4mQAQOJoAEDkVABA5FwAQORkAEDkbABA5HgAQOR8AEDkgABA5IQAQOSIAEDkkABA5JgAQOScAEDkoABA5KgAQOSsAEDmmABA5qAAQOaoAEDmsABA5rwAQObAAEDmxABA5sgAQObMAEDm1ABA5twAQObgAEDm5ABA5uwAQObwAEDo3ABA6OQAQOjsAEDo9ABA6QAAQOkEAEDpCABA6QwAQOkQAEDpGABA6SAAQOkkAEDpKABA6TAAQOk0AEDrIABA6ygAQOswAEDrOABA60QAQOtIAEDrTABA61AAQOtUAEDrXABA62QAQOtoAEDrbABA63QAQOt4AEDsnABA7SwAQO3IAEDuWABA7mQAQO5sAEDudABA7nwAQO6EAEDujABA7pAAQO6cAEDvAABA73QAQO98AEDvhABA74wAQO+UAEDvnABA76QAQO+sAEDwIABA8CwAQPA4AEDwRABA8FAAQPBcAEDwaABA8HQAQPB8AEDyaABA8nAAQPJ4AEDygABA8owAQPKQAEDylABA8pgAQPKcAEDypABA8qwAQPKwAEDytABA8rwAQPLAAED0rABA9LQAQPS8AED0xABA9NAAQPTUAED02ABA9NwAQPTgAED06ABA9PAAQPT0AED0+ABA9QAAQPUEAED28ABA9vgAQPcA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AEFAiABBQJAAQUCcAEFAoABBQKQAQUCoAEFArABBQLQAQUC8AEFAwABBQMQAQUDMAEFA0ABBQrwAQULEAEFCzABBQtQAQULgAEFC5ABBQugAQULsAEFC8ABBQvgAQUMAAEFDBABBQwgAQUMQAEFDFABBRQAAQUUIAEFFEABBRRgAQUUkAEFFKABBRSwAQUUwAEFFNABBRTwAQUVEAEFFSABBRUwAQUVUAEFFWABBRnwAQUcMAEFHqABBSDgAQUhEAEFITABBSFQAQUhcAEFIZABBSGwAQUhwAEFIfABBSOAAQUlUAEFJXABBSWQAQUlsAEFJdABBSXwAQUmEAEFJjABBSgAAQUoMAEFKGABBSiQAQUowAEFKPABBSkgAQUpUAEFKXABBTEgAQUxQAEFMWABBTGAAQUxsAEFMcABBTHQAQUx4AEFMfABBTIQAQUyMAEFMkABBTJQAQUycAEFMoABBTowAQU6UAEFOnABBTqQAQU6wAEFOtABBTrgAQU68AEFOwABBTsgAQU7QAEFO1ABBTtgAQU7gAEFO5ABBUNAAQVDYAEFQ4ABBUOgAQVD0AEFQ+ABBUPwAQVEAAEFRBABBUQwAQVEUAEFRGABBURwAQVEkAEFRKABBUxQAQVMcAEFTJABBUywAQVM4AEFTPABBU0AAQVNEAEFTSABBU1AAQVNYAEFTXABBU2AAQVNoAEFTbABBVVgAQVVgAEFVaABBVXAAQVV8AEFVgABBVYQAQVWIAEFVjABBVZQAQVWcAEFVoABBVaQAQVWsAEFVsABBV5wAQVekAEFXrABBV7QAQVfAAEFXxABBV8gAQVfMAEFX0ABBV9gAQVfgAEFX5ABBV+gAQVfwAEFX9ABBWeAAQVnoAEFZ8ABBWfgAQVoEAEFaCABBWgwAQVoQAEFaFABBWhwAQVokAEFaKABBWiwAQVo0AEFaOABBXIQAQV0QAEFdkABBXhAAQV4YAEFeIABBXigAQV4wAEFePABBXkAAQV5EAEFeUABBXlQAQV5cAEFeYABBXmgAQV50AEFeeABBXnwAQV6IAEFejABBXqAAQV8EAEFfKABBXzAAQV84AEFfXABBX2gAQV90AEFffABBYKAAQWEwAEFhzABBYlwAQWJoAEFicABBYngAQWKAAEFiiABBYpAAQWKUAEFioABBYwQAQWOIAEFjkABBY5gAQWOgAEFjqABBY7AAQWO4AEFjwABBY8gAQWRMAEFkWABBZGQAQWRwAEFkfABBZIgAQWSUAEFkoABBZKwAQWS0AEFmoABBZqgAQWawAEFmuABBZsQAQWbIAEFmzABBZtAAQWbUAEFm3ABBZuQAQWboAEFm7ABBZvQAQWb4AEFo5ABBaOwAQWj0AEFo/ABBaQgAQWkMAEFpEABBaRQAQWkYAEFpIABBaSgAQWksAEFpMABBaTgAQWk8AEFrKABBazAAQWs8AEFrRABBa1AAQWtUAEFrWABBa1wAQWtgAEFraABBa3AAQWt0AEFreABBa4AAQWuEAEFr6ABBa+wAQWvwAEFr+ABBbeQAQW3sAEFt9ABBbfwAQW4IAEFuDABBbhAAQW4UAEFuGABBbiAAQW4oAEFuLABBbjAAQW44AEFuPABBcCgAQXAwAEFwOABBcEAAQXBMAEFwUABBcFQAQXBYAEFwXABBcGQAQXBsAEFwcABBcHQAQXB8AEFwgABBcmwAQXJ0AEFyfABBcoQAQXKQAEFylABBcpgAQXKcAEFyoABBcqgAQXKwAEFytABBcrgAQXLAAEFyxABBdLAAQXS4AEF0wABBdMgAQXTUAEF02ABBdNwAQXTgAEF05ABBdOwAQXT0AEF0+ABBdPwAQXUEAEF1CABBdvQAQXb8AEF3BABBdwwAQXcYAEF3HABBdyAAQXckAEF3KABBdzAAQXc4AEF3PABBd0AAQXdIAEF3TABBeHAAQXkAAEF5nABBeiwAQXo4AEF6QABBekgAQXpQAEF6WABBemAAQXpkAEF6cABBetQAQXtIAEF7UABBe1gAQXtgAEF7aABBe3AAQXt4AEF7gABBe/QAQXwAAEF8DABBfBgAQXwkAEF8MABBfDwAQXxIAEF8UABBfjwAQX5EAEF+TABBflQAQX5gAEF+ZABBfmgAQX5sAEF+cABBfngAQX6AAEF+hABBfogAQX6QAEF+lABBgIAAQYCIAEGAkABBgJgAQYCkAEGAqABBgKwAQYCwAEGAtABBgLwAQYDEAEGAyABBgMwAQYDUAEGA2ABBgsQAQYLMAEGC1ABBgtwAQYLoAEGC7ABBgvAAQYL0AEGC+ABBgwAAQYMIAEGDDABBgxAAQYMYAEGDHABBhQgAQYUQAEGFGABBhSAAQYUsAEGFMABBhTQAQYU4AEGFPABBhUQAQYVMAEGFUABBhVQAQYVcAEGFYABBh0wAQYdUAEGHXABBh2QAQYdwAEGHdABBh3gAQYd8AEGHgABBh4gAQYeQAEGHlABBh5gAQYegAEGHpABBiZAAQYmYAEGJoABBiagAQYm0AEGJuABBibwAQYnAAEGJxABBicwAQYnUAEGJ2ABBidwAQYnkAEGJ6ABBi9QAQYvcAEGL5ABBi+wAQYv4AEGL/ABBjAAAQYwEAEGMCABBjBAAQYwYAEGMHABBjCAAQYwoAEGMLABBjngAQY8EAEGPhABBkAQAQZAMAEGQFABBkBwAQZAkAEGQMABBkDQAQZA4AEGQRABBkEgAQZBQAEGQVABBkFwAQZBoAEGQbABBkHAAQZB8AEGQgABBkJQAQZD4AEGRHABBkSQAQZEsAEGRUABBkVwAQZFoAEGRcABBkpQAQZMkAEGTwABBlFAAQZRcAEGUZABBlGwAQZR0AEGUfABBlIQAQZSIAEGUlABBlPgAQZV8AEGVhABBlYwAQZWUAEGVnABBlaQAQZWsAEGVtABBlbwAQZZAAEGWTABBllgAQZZkAEGWcABBlnwAQZaIAEGWlABBlqAAQZaoAEGYlABBmJwAQZikAEGYrABBmLgAQZi8AEGYwABBmMQAQZjIAEGY0ABBmNgAQZjcAEGY4ABBmOgAQZjsAEGa2ABBmuAAQZroAEGa8ABBmvwAQZsAAEGbBABBmwgAQZsMAEGbFABBmxwAQZsgAEGbJABBmywAQZswAEGdHABBnSQAQZ0wAEGdOABBnUQAQZ1IAEGdTABBnVAAQZ1UAEGdXABBnWQAQZ1oAEGdbABBnXQAQZ14AEGd3ABBneAAQZ3kAEGd7ABBn9gAQZ/gAEGf6ABBn/AAQZ/8AEGgAABBoAQAQaAIAEGgDABBoBQAQaAcAEGgIABBoCQAQaAsAEGgMABBohwAQaIkAEGiLABBojQAQaJAAEGiRABBokgAQaJMAEGiUABBolgAQaJgAEGiZABBomgAQaJwAEGidABBpGAAQaRoAEGkcABBpHgAQaSEAEGkiABBpIwAQaSQAEGklABBpJwAQaSkAEGkqABBpKwAQaS0AEGkuABBpqQAQaasAEGmtABBprwAQabIAEGmzABBptAAQabUAEGm2ABBpuAAQaboAEGm7ABBpvAAQab4AEGm/ABBqOgAQajwAEGo+ABBqQAAQakMAEGpEABBqRQAQakYAEGpHABBqSQAQaksAEGpMABBqTQAQak8AEGpQABBqmQAQar0AEGrkABBrCAAQawsAEGsNABBrDwAQaxEAEGsTABBrFQAQaxYAEGsZABBrMgAQa08AEGtRABBrUwAQa1UAEGtXABBrWQAQa1sAEGtdABBregAQa30AEGuAABBrgwAQa4YAEGuJABBrjAAQa48AEGuRABBsDAAQbA4AEGwQABBsEgAQbBUAEGwWABBsFwAQbBgAEGwZABBsGwAQbB0AEGweABBsHwAQbCEAEGwiABBsnQAQbJ8AEGyhABBsowAQbKYAEGynABBsqAAQbKkAEGyqABBsrAAQbK4AEGyvABBssAAQbLIAEGyzABBtLgAQbTAAEG0yABBtNAAQbTcAEG04ABBtOQAQbToAEG07ABBtPQAQbT8AEG1AABBtQQAQbUMAEG1EABBtvwAQbcEAEG3DABBtxQAQbcgAEG3JABBtygAQbcsAEG3MABBtzgAQbdAAEG3RABBt0gAQbdQAEG3VABBuUAAQblIAEG5UABBuVgAQblkAEG5aABBuWwAQblwAEG5dABBuXwAQbmEAEG5iABBuYwAQbmUAEG5mABBu4QAQbuMAEG7mABBu6AAQbusAEG7sABBu7QAQbu4AEG7vABBu8QAQbvMAEG70ABBu9QAQbvcAEG74ABBvBwAQb4IAEG+EABBvhgAQb4gAEG+LABBvjAAQb40AEG+OABBvjwAQb5EAEG+TABBvlAAQb5UAEG+XABBvmAAQcCsAEHBOABBwbgAQcI4AEHCQABBwkgAQcJQAEHCWABBwmQAQcJoAEHCbABBwngAQcJ8AEHChABBwogAQcKUAEHCoABBwqQAQcKoAEHCtABBwrgAQcLMAEHDMABBw1QAQcNcAEHDaABBw4wAQcOYAEHDpABBw6wAQcTQAEHFYABBxfwAQcaMAEHGmABBxqAAQcaoAEHGsABBxrgAQcbAAEHGxABBxtAAQcc0AEHHuABBx8AAQcfIAEHH0ABBx9gAQcfgAEHH6ABBx/AAQcf4AEHIfABByIgAQciUAEHIoABByKwAQci4AEHIxABByNAAQcjcAEHI5ABBytAAQcrYAEHK4ABByugAQcr0AEHK+ABByvwAQcsAAEHLBABBywwAQcsUAEHLGABByxwAQcskAEHLKABBzRQAQc0cAEHNJABBzSwAQc04AEHNPABBzUAAQc1EAEHNSABBzVAAQc1YAEHNXABBzWAAQc1oAEHNbABBz1gAQc9gAEHPbABBz3QAQc+AAEHPhABBz4gAQc+MAEHPkABBz5gAQc+gAEHPpABBz6gAQc+wAEHPtABB0BgAQdAcAEHQIABB0CgAQdIUAEHSHABB0iQAQdIsAEHSOABB0jwAQdJAAEHSRABB0kgAQdJQAEHSWABB0lwAQdJgAEHSaABB0mwAQdRYAEHUYABB1GgAQdRwAEHUfABB1IAAQdSEAEHUiABB1IwAQdSUAEHUnABB1KAAQdSkAEHUrABB1LAAQdacAEHWpABB1qwAQda0AEHWwABB1sQAQdbIAEHWzABB1tAAQdbYAEHW4ABB1uQAQdboAEHW8ABB1vQAQdjgAEHY6ABB2PAAQdj4AEHZBABB2QgAQdkMAEHZEABB2RQAQdkcAEHZJABB2SgAQdksAEHZNABB2TgAQdskAEHbLABB2zQAQds8AEHbSABB20wAQdtQAEHbVABB21gAQdtgAEHbaABB22wAQdtwAEHbeABB23wAQdygAEHdMABB3cwAQd5cAEHeaABB3nQAQd58AEHehABB3owAQd6UAEHemABB3qQAQd8IAEHffABB34gAQd+UAEHfoABB36wAQd+4AEHfxABB39AAQeBEAEHgUABB4FwAQeBoAEHgdABB4IAAQeCMAEHgmABB4KAAQeKMAEHilABB4qAAQeKoAEHitABB4rgAQeK8AEHiwABB4sQAQeLMAEHi2ABB4twAQeLgAEHi6ABB4uwAQeTYAEHk4ABB5OwAQeT0AEHlAABB5QQAQeUIAEHlDABB5RAAQeUYAEHlJABB5SgAQeUsAEHlNABB5TgAQeckAEHnLABB5zgAQedAAEHnTABB51AAQedUAEHnWABB51wAQedkAEHncABB53QAQed4AEHngABB54QAQelwAEHpeABB6YQAQemMAEHpmABB6ZwAQemgAEHppABB6agAQemwAEHpvABB6cAAQenEAEHpzABB6dAAQevcAEHsbABB7PwAQe2IAEHuJABB7qQAQe9AAEHv3ABB8FwAQfDsAEHxfABB8YQAQfGQAEHxmABB8aAAQfGoAEHxtABB8cAAQfHIAEHx0ABB8dwAQfHkAEHx7ABB8fgAQfIEAEHyCABB8hwAQfKAAEHylABB8pwAQfKwAEHyvABB8sQAQfPoAEH0eABB9RQAQfWkAEH1sABB9bgAQfXAAEH1yABB9dAAQfXYAEH13ABB9egAQfZMAEH24ABB9ugAQfbwAEH2+ABB9wAAQfcIAEH3EABB9xgAQfcgAEH3KABB97wAQffIAEH31ABB9+AAQffsAEH3+ABB+AQAQfgQAEH4HABB+CgAQfgwAEH6HABB+iQAQfowAEH6OABB+kQAQfpIAEH6TABB+lAAQfpUAEH6XABB+mQAQfpoAEH6bABB+nQAQfp4AEH6vABB+sAAQfrIAEH8tABB/LwAQfzEAEH8zABB/NgAQfzcAEH84ABB/OQAQfzoAEH88ABB/PgAQfz8AEH9AABB/QgAQf0MAEH++ABB/wAAQf8MAEH/FABB/yAAQf8kAEH/KABB/ywAQf8wAEH/OABB/0AAQf9EAEH/SABB/1AAQf9UAEH/mABB/5wAQf+kAEIBkABCAZgAQgGgAEIBqABCAbQAQgG4AEIBvABCAcAAQgHEAEIBzABCAdQAQgHYAEIB3ABCAeQAQgHoAEID1ABCA9wAQgPoAEID8ABCA/wAQgQAAEIEBABCBAgAQgQMAEIEFABCBBwAQgQgAEIEJABCBCwAQgQwAEIEdABCBHgAQgSAAEIGbABCBnQAQgZ8AEIGhABCBpAAQgaUAEIGmABCBpwAQgagAEIGqABCBrAAQga0AEIGuABCBsAAQgbEAEIIsABCCLgAQgjEAEIIzABCCNgAQgjcAEII4ABCCOQAQgjoAEII8ABCCPgAQgj8AEIJAABCCQgAQgkMAEIJcABCCXQAQgl4AEIJgABCC2wAQgt0AEILfABCC4QAQguQAEILlABCC5gAQgucAEILoABCC6gAQguwAEILtABCC7gAQgvAAEILxABCDbAAQg24AEINxABCDcwAQg3YAEIN3ABCDeAAQg3kAEIN6ABCDfAAQg34AEIN/ABCDgAAQg4IAEIODABCDlgAQg68AEIPQABCD0wAQg9YAEIPZABCD3AAQg98AEIPiABCD5QAQg+gAEIQJABCEDAAQhA8AEIQSABCEFQAQhBgAEIQbABCEHgAQhCEAEIQjABCEOQAQhE8AEIR/ABCEngAQhLwAEITQABCE5gAQhXkAEIWcABCFvAAQhdwAEIXeABCF4AAQheIAEIXkABCF5wAQhegAEIXpABCF7AAQhe0AEIXvABCF8AAQhfIAEIX1ABCF9gAQhfcAEIX6ABCF+wAQhgAAEIYZABCGIgAQhiQAEIYmABCGLwAQhjIAEIY1ABCGNwAQhoAAEIakABCGywAQhu8AEIbyABCG9AAQhvYAEIb4ABCG+gAQhvwAEIb9ABCHAAAQhxkAEIc6ABCHPAAQhz4AEIdAABCHQgAQh0QAEIdGABCHSAAQh0oAEIdrABCHbgAQh3EAEId0ABCHdwAQh3oAEId9ABCHgAAQh4MAEIeFABCIAAAQiAIAEIgEABCIBgAQiAkAEIgKABCICwAQiAwAEIgNABCIDwAQiBEAEIgSABCIEwAQiBUAEIgWABCIkQAQiJMAEIiVABCIlwAQiJoAEIibABCInAAQiJ0AEIieABCIoAAQiKIAEIijABCIpAAQiKYAEIinABCJIgAQiSQAEIknABCJKQAQiSwAEIktABCJLgAQiS8AEIkwABCJMgAQiTQAEIk1ABCJNgAQiTgAEIk5ABCJUgAQiVMAEIlUABCJVgAQidEAEInTABCJ1QAQidcAEInaABCJ2wAQidwAEIndABCJ3gAQieAAEIniABCJ4wAQieQAEInmABCJ5wAQimIAEIpkABCKZgAQimgAEIprABCKbAAQim0AEIpuABCKbwAQinEAEIpzABCKdAAQinUAEIp3ABCKeAAQivMAEIr1ABCK9wAQivkAEIr8ABCK/QAQiv4AEIr/ABCLAAAQiwIAEIsEABCLBQAQiwYAEIsIABCLCQAQi4QAEIuGABCLiAAQi4oAEIuNABCLjgAQi48AEIuQABCLkQAQi5MAEIuVABCLlgAQi5cAEIuZABCLmgAQjBUAEIwXABCMGQAQjBsAEIweABCMHwAQjCAAEIwhABCMIgAQjCQAEIwmABCMJwAQjCgAEIwqABCMKwAQjHQAEIyYABCMvwAQjOMAEIzmABCM6AAQjOoAEIzsABCM7gAQjPAAEIzxABCM9AAQjQ0AEI0qABCNLAAQjS4AEI0wABCNMgAQjTQAEI02ABCNOAAQjVUAEI1YABCNWwAQjV4AEI1hABCNZAAQjWcAEI1qABCNbAAQjecAEI3pABCN6wAQje0AEI3wABCN8QAQjfIAEI3zABCN9AAQjfYAEI34ABCN+QAQjfoAEI38ABCN/QAQjngAEI56ABCOfAAQjn4AEI6BABCOggAQjoMAEI6EABCOhQAQjocAEI6JABCOigAQjosAEI6NABCOjgAQjwkAEI8LABCPDQAQjw8AEI8SABCPEwAQjxQAEI8VABCPFgAQjxgAEI8aABCPGwAQjxwAEI8eABCPHwAQj5oAEI+cABCPngAQj6AAEI+jABCPpAAQj6UAEI+mABCPpwAQj6kAEI+rABCPrAAQj60AEI+vABCPsAAQkCsAEJAtABCQLwAQkDEAEJA0ABCQNQAQkDYAEJA3ABCQOAAQkDoAEJA8ABCQPQAQkD4AEJBAABCQQQAQkLwAEJC+ABCQwAAQkMIAEJDFABCQxgAQkMcAEJDIABCQyQAQkMsAEJDNABCQzgAQkM8AEJDRABCQ0gAQkU0AEJFPABCRUQAQkVMAEJFWABCRVwAQkVgAEJFZABCRWgAQkVwAEJFeABCRXwAQkWAAEJFiABCRYwAQkfYAEJIZABCSOQAQklkAEJJbABCSXQAQkl8AEJJhABCSZAAQkmUAEJJmABCSaQAQkmoAEJJsABCSbQAQkm8AEJJyABCScwAQknQAEJJ3ABCSeAAQkn0AEJKWABCSnwAQkqEAEJKjABCSrAAQkq8AEJKyABCStAAQkv0AEJMhABCTSAAQk2wAEJNvABCTcQAQk3MAEJN1ABCTdwAQk3kAEJN6ABCTfQAQk5YAEJO3ABCTuQAQk7sAEJO9ABCTvwAQk8EAEJPDABCTxQAQk8cAEJPoABCT6wAQk+4AEJPxABCT9AAQk/cAEJP6ABCT/QAQlAAAEJQCABCUfQAQlH8AEJSBABCUgwAQlIYAEJSHABCUiAAQlIkAEJSKABCUjAAQlI4AEJSPABCUkAAQlJIAEJSTABCVDgAQlRAAEJUSABCVFAAQlRcAEJUYABCVGQAQlRoAEJUbABCVHQAQlR8AEJUgABCVIQAQlSMAEJUkABCVnwAQlaEAEJWkABCVpgAQlakAEJWqABCVqwAQlawAEJWtABCVrwAQlbEAEJWyABCVswAQlbUAEJW2ABCVzwAQldAAEJXRABCV0wAQlk4AEJZQABCWUgAQllQAEJZXABCWWAAQllkAEJZaABCWWwAQll0AEJZfABCWYAAQlmEAEJZjABCWZAAQlt8AEJbhABCW4wAQluUAEJboABCW6QAQluoAEJbrABCW7AAQlu4AEJbwABCW8QAQlvIAEJb0ABCW9QAQl3AAEJdyABCXdAAQl3YAEJd5ABCXegAQl3sAEJd8ABCXfQAQl38AEJeBABCXggAQl4MAEJeFABCXhgAQmAEAEJgDABCYBQAQmAcAEJgKABCYCwAQmAwAEJgNABCYDgAQmBAAEJgSABCYEwAQmBQAEJgWABCYFwAQmJIAEJiUABCYlgAQmJgAEJibABCYnAAQmJ0AEJieABCYnwAQmKEAEJijABCYpAAQmKUAEJinABCYqAAQmPEAEJkVABCZPAAQmWAAEJljABCZZQAQmWcAEJlpABCZawAQmW0AEJluABCZcQAQmYoAEJmnABCZqQAQmasAEJmtABCZrwAQmbEAEJmzABCZtQAQmdIAEJnVABCZ2AAQmdsAEJneABCZ4QAQmeQAEJnnABCZ6QAQmmQAEJpmABCaaAAQmmoAEJptABCabgAQmm8AEJpwABCacQAQmnMAEJp1ABCadgAQmncAEJp5ABCaegAQmvUAEJr3ABCa+QAQmvsAEJr+ABCa/wAQmwAAEJsBABCbAgAQmwQAEJsGABCbBwAQmwgAEJsKABCbCwAQm4YAEJuIABCbigAQm4wAEJuPABCbkAAQm5EAEJuSABCbkwAQm5UAEJuXABCbmAAQm5kAEJubABCbnAAQnBcAEJwZABCcGwAQnB0AEJwgABCcIQAQnCIAEJwjABCcJAAQnCYAEJwoABCcKQAQnCoAEJwsABCcLQAQnKgAEJyqABCcrAAQnK4AEJyxABCcsgAQnLMAEJy0ABCctQAQnLcAEJy5ABCcugAQnLsAEJy9ABCcvgAQnTkAEJ07ABCdPgAQnUAAEJ1DABCdRAAQnUUAEJ1GABCdRwAQnUkAEJ1LABCdTAAQnU0AEJ1PABCdUAAQnV8AEJ3aABCd3AAQnd4AEJ3gABCd4wAQneQAEJ3lABCd5gAQnecAEJ3pABCd6wAQnewAEJ3tABCd7wAQnfAAEJ6DABCepgAQnsYAEJ7mABCe6AAQnuoAEJ7sABCe7gAQnvEAEJ7yABCe8wAQnvYAEJ73ABCe+QAQnvoAEJ78ABCe/wAQnwAAEJ8BABCfBAAQnwUAEJ8KABCfIwAQnywAEJ8uABCfMAAQnzkAEJ88ABCfPwAQn0EAEJ+KABCfrgAQn9UAEJ/5ABCf/AAQn/4AEKAAABCgAgAQoAQAEKAGABCgBwAQoAoAEKAjABCgRAAQoEYAEKBIABCgSgAQoEwAEKBOABCgUAAQoFIAEKBUABCgdQAQoHgAEKB7ABCgfgAQoIEAEKCEABCghwAQoIoAEKCNABCgjwAQoQoAEKEMABChDgAQoRAAEKETABChFAAQoRUAEKEWABChFwAQoRkAEKEbABChHAAQoR0AEKEfABChIAAQoZsAEKGdABChnwAQoaEAEKGkABChpQAQoaYAEKGnABChqAAQoaoAEKGsABChrQAQoa4AEKGwABChsQAQoiwAEKIuABCiMQAQojMAEKI2ABCiNwAQojgAEKI5ABCiOgAQojwAEKI+ABCiPwAQokAAEKJCABCiQwAQolwAEKJdABCiXgAQomAAEKLbABCi3QAQot8AEKLhABCi5AAQouUAEKLmABCi5wAQougAEKLqABCi7AAQou0AEKLuABCi8AAQovEAEKNsABCjbgAQo3AAEKNyABCjdQAQo3YAEKN3ABCjeAAQo3kAEKN7ABCjfQAQo34AEKN/ABCjgQAQo4IAEKP9ABCj/wAQpAEAEKQDABCkBgAQpAcAEKQIABCkCQAQpAoAEKQMABCkDgAQpA8AEKQQABCkEgAQpBMAEKSOABCkkAAQpJIAEKSUABCklwAQpJgAEKSZABCkmgAQpJsAEKSdABCknwAQpKAAEKShABCkowAQpKQAEKUfABClIQAQpSMAEKUlABClKAAQpSkAEKUqABClKwAQpSwAEKUuABClMAAQpTEAEKUyABClNAAQpTUAEKV+ABClogAQpckAEKXtABCl8AAQpfIAEKX0ABCl9gAQpfgAEKX6ABCl+wAQpf4AEKYXABCmNAAQpjYAEKY4ABCmOgAQpjwAEKY+ABCmQAAQpkIAEKZfABCmYgAQpmUAEKZoABCmawAQpm4AEKZxABCmdAAQpnYAEKbxABCm8wAQpvUAEKb3ABCm+gAQpvsAEKb8ABCm/QAQpv4AEKcAABCnAgAQpwMAEKcEABCnBgAQpwcAEKeCABCnhAAQp4YAEKeIABCniwAQp4wAEKeNABCnjgAQp48AEKeRABCnkwAQp5QAEKeVABCnlwAQp5gAEKgTABCoFQAQqBcAEKgZABCoHAAQqB0AEKgeABCoHwAQqCAAEKgiABCoJAAQqCUAEKgmABCoKAAQqCkAEKikABCopgAQqKgAEKiqABCorQAQqK4AEKivABCosAAQqLEAEKizABCotQAQqLYAEKi3ABCouQAQqLoAEKk1ABCpNwAQqTkAEKk7ABCpPgAQqT8AEKlAABCpQQAQqUIAEKlEABCpRgAQqUcAEKlIABCpSgAQqUsAEKnGABCpyAAQqcsAEKnNABCp0AAQqdEAEKnSABCp0wAQqdQAEKnWABCp2AAQqdkAEKnaABCp3AAQqd0AEKn1ABCqcAAQqnIAEKp0ABCqdgAQqnkAEKp6ABCqewAQqnwAEKp9ABCqfwAQqoEAEKqCABCqgwAQqoUAEKqGABCrGQAQqzwAEKtcABCrfAAQq34AEKuAABCrggAQq4QAEKuHABCriAAQq4kAEKuMABCrjQAQq48AEKuQABCrkwAQq5YAEKuXABCrmAAQq5sAEKucABCroQAQq7oAEKvDABCrxQAQq8gAEKvRABCr1AAQq9cAEKvZABCsIgAQrEYAEKxtABCskQAQrJQAEKyWABCsmAAQrJoAEKycABCsngAQrJ8AEKyiABCsuwAQrNwAEKzeABCs4AAQrOIAEKzkABCs5gAQrOgAEKzqABCs7AAQrQ0AEK0QABCtEwAQrRYAEK0ZABCtHAAQrR8AEK0iABCtJQAQrScAEK2iABCtpAAQraYAEK2oABCtqwAQrawAEK2tABCtrgAQra8AEK2xABCtswAQrbQAEK21ABCttwAQrbgAEK4zABCuNQAQrjcAEK45ABCuPAAQrj0AEK4+ABCuPwAQrkAAEK5CABCuRAAQrkUAEK5GABCuSAAQrkkAEK7EABCuxgAQrskAEK7LABCuzgAQrs8AEK7QABCu0QAQrtIAEK7UABCu1gAQrtcAEK7YABCu2gAQrtsAEK70ABCu9QAQrvYAEK74ABCvcwAQr3UAEK93ABCveQAQr3wAEK99ABCvfgAQr38AEK+AABCvggAQr4QAEK+FABCvhgAQr4gAEK+JABCwBAAQsAYAELAIABCwCgAQsA0AELAOABCwDwAQsBAAELARABCwEwAQsBUAELAWABCwFwAQsBkAELAaABCwlQAQsJcAELCZABCwmwAQsJ4AELCfABCwoAAQsKEAELCiABCwpAAQsKYAELCnABCwqAAQsKoAELCrABCxJgAQsSgAELEqABCxLAAQsS8AELEwABCxMQAQsTIAELEzABCxNQAQsTcAELE4ABCxOQAQsTsAELE8ABCxtwAQsbkAELG7ABCxvQAQscAAELHBABCxwgAQscMAELHEABCxxgAQscgAELHJABCxygAQscwAELHNABCyFgAQsjoAELJhABCyhQAQsogAELKLABCyjQAQso8AELKRABCykwAQspQAELKXABCysAAQss0AELLQABCy0wAQstYAELLZABCy3AAQst8AELLiABCy/wAQswIAELMFABCzCAAQswsAELMOABCzEQAQsxQAELMWABCzkQAQs5MAELOWABCzmAAQs5sAELOcABCznQAQs54AELOfABCzoQAQs6QAELOlABCzpgAQs6gAELOpABC0JAAQtCYAELQpABC0KwAQtC4AELQvABC0MAAQtDEAELQyABC0NAAQtDcAELQ4ABC0OQAQtDsAELQ8ABC0twAQtLkAELS8ABC0vgAQtMEAELTCABC0wwAQtMQAELTFABC0xwAQtMoAELTLABC0zAAQtM4AELTPABC1SgAQtUwAELVPABC1UQAQtVQAELVVABC1VgAQtVcAELVYABC1WgAQtV0AELVeABC1XwAQtWEAELViABC15QAQtgkAELYtABC2UAAQtncAELaXABC2vgAQtuUAELcFABC3KQAQt00AELdPABC3UgAQt1QAELdWABC3WAAQt1sAELdeABC3YAAQt2IAELdlABC3ZwAQt2kAELdsABC3bwAQt3AAELd1ABC3jgAQt5MAELeVABC3mgAQt50AELefABC36AAQuAwAELgzABC4VwAQuFoAELhcABC4XgAQuGAAELhiABC4ZAAQuGUAELhoABC4gQAQuKYAELioABC4qgAQuKwAELiuABC4sAAQuLIAELi0ABC4tgAQuLgAELjdABC44AAQuOMAELjmABC46QAQuOwAELjvABC48gAQuPUAELj4ABC4+gAQuXUAELl3ABC5egAQuXwAELl/ABC5gAAQuYEAELmCABC5gwAQuYUAELmHABC5iAAQuYkAELmLABC5jAAQuZ0AELmeABC5oAAQuhsAELodABC6HwAQuiEAELokABC6JQAQuiYAELonABC6KAAQuioAELosABC6LQAQui4AELowABC6MQAQuqwAELquABC6sQAQurMAELq2ABC6twAQurgAELq5ABC6ugAQurwAELq+ABC6vwAQusAAELrCABC6wwAQutQAELrVABC61wAQu1IAELtUABC7VgAQu1gAELtbABC7XAAQu10AELteABC7XwAQu2EAELtjABC7ZAAQu2UAELtnABC7aAAQu+MAELvlABC76AAQu+oAELvtABC77gAQu+8AELvwABC78QAQu/MAELv1ABC79gAQu/cAELv5ABC7+gAQvAsAELwMABC8DgAQvIkAELyLABC8jQAQvI8AELySABC8kwAQvJQAELyVABC8lgAQvJgAELyaABC8mwAQvJwAELyeABC8nwAQvRoAEL0cABC9HwAQvSEAEL0kABC9JQAQvSYAEL0nABC9KAAQvSoAEL0sABC9LQAQvS4AEL0wABC9MQAQvUoAEL1LABC9TAAQvU4AEL3JABC9ywAQvc0AEL3PABC90gAQvdMAEL3UABC91QAQvdYAEL3YABC92gAQvdsAEL3cABC93gAQvd8AEL5aABC+XAAQvl8AEL5hABC+ZAAQvmUAEL5mABC+ZwAQvmgAEL5qABC+bAAQvm0AEL5uABC+cAAQvnEAEL6kABC+vQAQvsoAEL7NABC+0AAQvtMAEL7gABC+4wAQvuYAEL7pABC+6wAQvv4AEL8QABC/IwAQv7YAEL/ZABC/+QAQwBkAEMAbABDAHQAQwB8AEMAhABDAJAAQwCUAEMAmABDAKQAQwCoAEMAsABDALQAQwC8AEMAyABDAMwAQwDQAEMA3ABDAOAAQwD0AEMBWABDAXwAQwGEAEMBjABDAbAAQwG8AEMByABDAdAAQwL0AEMDhABDBCAAQwSwAEMEvABDBMQAQwTMAEME1ABDBNwAQwTkAEME6ABDBPQAQwVYAEMF3ABDBeQAQwXsAEMF9ABDBfwAQwYEAEMGDABDBhQAQwYcAEMGoABDBqwAQwa4AEMGxABDBtAAQwbcAEMG6ABDBvQAQwcAAEMHCABDCPQAQwj8AEMJBABDCQwAQwkYAEMJHABDCSAAQwkkAEMJKABDCTAAQwk4AEMJPABDCUAAQwlIAEMJTABDCzgAQwtAAEMLSABDC1AAQwtcAEMLYABDC2QAQwtoAEMLbABDC3QAQwt8AEMLgABDC4QAQwuMAEMLkABDDXwAQw2EAEMNkABDDZgAQw2kAEMNqABDDawAQw2wAEMNtABDDbwAQw3EAEMNyABDDcwAQw3UAEMN2ABDDjwAQw5AAEMORABDDkwAQxA4AEMQQABDEEgAQxBQAEMQXABDEGAAQxBkAEMQaABDEGwAQxB0AEMQfABDEIAAQxCEAEMQjABDEJAAQxJ8AEMShABDEowAQxKUAEMSoABDEqQAQxKoAEMSrABDErAAQxK4AEMSwABDEsQAQxLIAEMS0ABDEtQAQxTAAEMUyABDFNAAQxTYAEMU5ABDFOgAQxTsAEMU8ABDFPQAQxT8AEMVBABDFQgAQxUMAEMVFABDFRgAQxcEAEMXDABDFxQAQxccAEMXKABDFywAQxcwAEMXNABDFzgAQxdAAEMXSABDF0wAQxdQAEMXWABDF1wAQxlIAEMZUABDGVgAQxlgAEMZbABDGXAAQxl0AEMZeABDGXwAQxmEAEMZjABDGZAAQxmUAEMZnABDGaAAQxrEAEMbVABDG/AAQxyAAEMcjABDHJQAQxycAEMcpABDHKwAQxy0AEMcuABDHMQAQx0oAEMdnABDHaQAQx2sAEMdtABDHbwAQx3EAEMdzABDHdQAQx5IAEMeVABDHmAAQx5sAEMeeABDHoQAQx6QAEMenABDHqQAQyCQAEMgmABDIKAAQyCoAEMgtABDILgAQyC8AEMgwABDIMQAQyDMAEMg1ABDINgAQyDcAEMg5ABDIOgAQyLUAEMi3ABDIuQAQyLsAEMi+ABDIvwAQyMAAEMjBABDIwgAQyMQAEMjGABDIxwAQyMgAEMjKABDIywAQyUYAEMlIABDJSgAQyUwAEMlPABDJUAAQyVEAEMlSABDJUwAQyVUAEMlXABDJWAAQyVkAEMlbABDJXAAQydcAEMnZABDJ2wAQyd0AEMngABDJ4QAQyeIAEMnjABDJ5AAQyeYAEMnoABDJ6QAQyeoAEMnsABDJ7QAQymgAEMpqABDKbAAQym4AEMpxABDKcgAQynMAEMp0ABDKdQAQyncAEMp5ABDKegAQynsAEMp9ABDKfgAQyvkAEMr7ABDK/gAQywAAEMsDABDLBAAQywUAEMsGABDLBwAQywkAEMsLABDLDAAQyw0AEMsPABDLEAAQyx8AEMuaABDLnAAQy54AEMugABDLowAQy6QAEMulABDLpgAQy6cAEMupABDLqwAQy6wAEMutABDLrwAQy7AAEMxDABDMZgAQzIYAEMymABDMqAAQzKoAEMysABDMrgAQzLEAEMyyABDMswAQzLYAEMy3ABDMuQAQzLoAEMy8ABDMvwAQzMAAEMzBABDMxAAQzMUAEMzKABDM4wAQzOwAEMzuABDM8AAQzPkAEMz8ABDM/wAQzQEAEM1KABDNbgAQzZUAEM25ABDNvAAQzb4AEM3AABDNwgAQzcQAEM3GABDNxwAQzcoAEM3jABDOBAAQzgYAEM4IABDOCgAQzgwAEM4OABDOEAAQzhIAEM4UABDONQAQzjgAEM47ABDOPgAQzkEAEM5EABDORwAQzkoAEM5NABDOTwAQzsoAEM7MABDOzgAQztAAEM7TABDO1AAQztUAEM7WABDO1wAQztkAEM7bABDO3AAQzt0AEM7fABDO4AAQz1sAEM9dABDPXwAQz2EAEM9kABDPZQAQz2YAEM9nABDPaAAQz2oAEM9sABDPbQAQz24AEM9wABDPcQAQz+wAEM/uABDP8QAQz/MAEM/2ABDP9wAQz/gAEM/5ABDP+gAQz/wAEM/+ABDP/wAQ0AAAENACABDQAwAQ0BwAENAdABDQHgAQ0CAAENCbABDQnQAQ0J8AENChABDQpAAQ0KUAENCmABDQpwAQ0KgAENCqABDQrAAQ0K0AENCuABDQsAAQ0LEAENEsABDRLgAQ0TAAENEyABDRNQAQ0TYAENE3ABDROAAQ0TkAENE7ABDRPQAQ0T4AENE/ABDRQQAQ0UIAENG9ABDRvwAQ0cEAENHDABDRxgAQ0ccAENHIABDRyQAQ0coAENHMABDRzgAQ0c8AENHQABDR0gAQ0dMAENJOABDSUAAQ0lIAENJUABDSVwAQ0lgAENJZABDSWgAQ0lsAENJdABDSXwAQ0mAAENJhABDSYwAQ0mQAENLfABDS4QAQ0uMAENLlABDS6AAQ0ukAENLqABDS6wAQ0uwAENLuABDS8AAQ0vEAENLyABDS9AAQ0vUAENM+ABDTYgAQ04kAENOtABDTsAAQ07IAENO0ABDTtgAQ07gAENO6ABDTuwAQ074AENPXABDT9AAQ0/YAENP4ABDT+gAQ0/wAENP+ABDUAAAQ1AIAENQfABDUIgAQ1CUAENQoABDUKwAQ1C4AENQxABDUNAAQ1DYAENSxABDUswAQ1LUAENS3ABDUugAQ1LsAENS8ABDUvQAQ1L4AENTAABDUwgAQ1MMAENTEABDUxgAQ1McAENVCABDVRAAQ1UYAENVIABDVSwAQ1UwAENVNABDVTgAQ1U8AENVRABDVUwAQ1VQAENVVABDVVwAQ1VgAENXTABDV1QAQ1dcAENXZABDV3AAQ1d0AENXeABDV3wAQ1eAAENXiABDV5AAQ1eUAENXmABDV6AAQ1ekAENZkABDWZgAQ1mgAENZqABDWbQAQ1m4AENZvABDWcAAQ1nEAENZzABDWdQAQ1nYAENZ3ABDWeQAQ1noAENb1ABDW9wAQ1vkAENb7ABDW/gAQ1v8AENcAABDXAQAQ1wIAENcEABDXBgAQ1wcAENcIABDXCgAQ1wsAENeGABDXiAAQ14sAENeNABDXkAAQ15EAENeSABDXkwAQ15QAENeWABDXmAAQ15kAENeaABDXnAAQ150AENe8ABDYNwAQ2DkAENg7ABDYPQAQ2EAAENhBABDYQgAQ2EMAENhEABDYRgAQ2EgAENhJABDYSgAQ2EwAENhNABDY4AAQ2QMAENkjABDZQwAQ2UUAENlHABDZSQAQ2UsAENlOABDZTwAQ2VAAENlTABDZVAAQ2VYAENlXABDZWgAQ2V0AENleABDZXwAQ2WIAENljABDZaAAQ2YEAENmKABDZjAAQ2Y8AENmYABDZmwAQ2Z4AENmgABDZ6QAQ2g0AENo0ABDaWAAQ2lsAENpdABDaXwAQ2mEAENpjABDaZQAQ2mYAENppABDaggAQ2qMAENqlABDapwAQ2qkAENqrABDarQAQ2q8AENqxABDaswAQ2tQAENrXABDa2gAQ2t0AENrgABDa4wAQ2uYAENrpABDa7AAQ2u4AENtpABDbawAQ220AENtvABDbcgAQ23MAENt0ABDbdQAQ23YAENt4ABDbegAQ23sAENt8ABDbfgAQ238AENv6ABDb/AAQ2/4AENwAABDcAwAQ3AQAENwFABDcBgAQ3AcAENwJABDcCwAQ3AwAENwNABDcDwAQ3BAAENyLABDcjQAQ3JAAENySABDclQAQ3JYAENyXABDcmAAQ3JkAENybABDcnQAQ3J4AENyfABDcoQAQ3KIAENy7ABDcvAAQ3L0AENy/ABDdOgAQ3TwAEN0+ABDdQAAQ3UMAEN1EABDdRQAQ3UYAEN1HABDdSQAQ3UsAEN1MABDdTQAQ3U8AEN1QABDdywAQ3c0AEN3PABDd0QAQ3dQAEN3VABDd1gAQ3dcAEN3YABDd2gAQ3dwAEN3dABDd3gAQ3eAAEN3hABDeXAAQ3l4AEN5gABDeYgAQ3mUAEN5mABDeZwAQ3mgAEN5pABDeawAQ3m0AEN5uABDebwAQ3nEAEN5yABDe7QAQ3u8AEN7xABDe8wAQ3vYAEN73ABDe+AAQ3vkAEN76ABDe/AAQ3v4AEN7/ABDfAAAQ3wIAEN8DABDffgAQ34AAEN+CABDfhAAQ34cAEN+IABDfiQAQ34oAEN+LABDfjQAQ348AEN+QABDfkQAQ35MAEN+UABDf3QAQ4AEAEOAoABDgTAAQ4E8AEOBSABDgVAAQ4FYAEOBYABDgWgAQ4FsAEOBeABDgdwAQ4JQAEOCXABDgmgAQ4J0AEOCgABDgowAQ4KYAEOCpABDgxgAQ4MkAEODMABDgzwAQ4NIAEODVABDg2AAQ4NsAEODdABDhWAAQ4VoAEOFdABDhXwAQ4WIAEOFjABDhZAAQ4WUAEOFmABDhaAAQ4WsAEOFsABDhbQAQ4W8AEOFwABDh6wAQ4e0AEOHwABDh8gAQ4fUAEOH2ABDh9wAQ4fgAEOH5ABDh+wAQ4f4AEOH/ABDiAAAQ4gIAEOIDABDifgAQ4oAAEOKDABDihQAQ4ogAEOKJABDiigAQ4osAEOKMABDijgAQ4pEAEOKSABDikwAQ4pUAEOKWABDjEQAQ4xMAEOMWABDjGAAQ4xsAEOMcABDjHQAQ4x4AEOMfABDjIQAQ4yQAEOMlABDjJgAQ4ygAEOMpABDjpAAQ46YAEOOoABDjqgAQ460AEOOuABDjrwAQ47AAEOOxABDjswAQ47YAEOO3ABDjuAAQ47oAEOO7ABDkNgAQ5DgAEOQ6ABDkPAAQ5D8AEORAABDkQQAQ5EIAEORDABDkRQAQ5EgAEORJABDkSgAQ5EwAEORNABDkyAAQ5MoAEOTNABDkzwAQ5NIAEOTTABDk1AAQ5NUAEOTWABDk2AAQ5NsAEOTcABDk3QAQ5N8AEOTgABDk8QAQ5PIAEOT0ABDlbwAQ5XEAEOVzABDldQAQ5XgAEOV5ABDlegAQ5XsAEOV8ABDlfgAQ5YEAEOWCABDlgwAQ5YUAEOWGABDmAQAQ5gMAEOYFABDmBwAQ5goAEOYLABDmDAAQ5g0AEOYOABDmEAAQ5hMAEOYUABDmFQAQ5hcAEOYYABDmkwAQ5pUAEOaYABDmmgAQ5p0AEOaeABDmnwAQ5qAAEOahABDmowAQ5qYAEOanABDmqAAQ5qoAEOarABDnPgAQ52E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AEQJXABECWQARAloAEQLVABEC1wARAtkAEQLbABEC3gARAt8AEQLgABEC4QARAuIAEQLkABEC5gARAucAEQLoABEC6gARAusAEQM0ABEDWAARA38AEQOjABEDpgARA6gAEQOqABEDrAARA64AEQOwABEDsQARA7QAEQPNABED6gARA+wAEQPuABED8AARA/IAEQP0ABED9gARA/gAEQQVABEEGAARBBsAEQQeABEEIQARBCQAEQQnABEEKgARBCwAEQSnABEEqQARBKsAEQStABEEsAARBLEAEQSyABEEswARBLQAEQS2ABEEuAARBLkAEQS6ABEEvAARBL0AEQU4ABEFOgARBTwAEQU+ABEFQQARBUIAEQVDABEFRAARBUUAEQVHABEFSQARBUoAEQVLABEFTQARBU4AEQXJABEFywARBc0AEQXPABEF0gARBdMAEQXUABEF1QARBdYAEQXYABEF2gARBdsAEQXcABEF3gARBd8AEQZaABEGXAARBl4AEQZgABEGYwARBmQAEQZlABEGZgARBmcAEQZpABEGawARBmwAEQZtABEGbwARBnAAEQbrABEG7QARBu8AEQbxABEG9AARBvUAEQb2ABEG9wARBvgAEQb6ABEG/AARBv0AEQb+ABEHAAARBwEAEQd8ABEHfgARB4EAEQeDABEHhgARB4cAEQeIABEHiQARB4oAEQeMABEHjgARB48AEQeQABEHkgARB5MAEQeiABEIHQARCB8AEQghABEIIwARCCYAEQgnABEIKAARCCkAEQgqABEILAARCC4AEQgvABEIMAARCDIAEQgzABEIxgARCOkAEQkJABEJKQARCSsAEQktABEJLwARCTEAEQk0ABEJNQARCTYAEQk5ABEJOgARCTwAEQk9ABEJPwARCUIAEQlDABEJRAARCUcAEQlIABEJTQARCWYAEQlvABEJcQARCXMAEQl8ABEJfwARCYIAEQmEABEJzQARCfEAEQoYABEKPAARCj8AEQpBABEKQwARCkUAEQpHABEKSQARCkoAEQpNABEKZgARCocAEQqJABEKiwARCo0AEQqPABEKkQARCpMAEQqVABEKlwARCrgAEQq7ABEKvgARCsEAEQrEABEKxwARCsoAEQrNABEK0AARCtIAEQtNABELTwARC1EAEQtTABELVgARC1cAEQtYABELWQARC1oAEQtcABELXgARC18AEQtgABELYgARC2MAEQveABEL4AARC+IAEQvkABEL5wARC+gAEQvpABEL6gARC+sAEQvtABEL7wARC/AAEQvxABEL8wARC/QAEQxvABEMcQARDHQAEQx2ABEMeQARDHoAEQx7ABEMfAARDH0AEQx/ABEMgQARDIIAEQyDABEMhQARDIYAEQyfABEMoAARDKEAEQyjABENHgARDSAAEQ0iABENJAARDScAEQ0oABENKQARDSoAEQ0rABENLQARDS8AEQ0wABENMQARDTMAEQ00ABENrwARDbEAEQ2zABENtQARDbgAEQ25ABENugARDbsAEQ28ABENvgARDcAAEQ3BABENwgARDcQAEQ3FABEOQAARDkIAEQ5EABEORgARDkkAEQ5KABEOSwARDkwAEQ5NABEOTwARDlEAEQ5SABEOUwARDlUAEQ5WABEO0QARDtMAEQ7VABEO1wARDtoAEQ7bABEO3AARDt0AEQ7eABEO4AARDuIAEQ7jABEO5AARDuYAEQ7nABEPYgARD2QAEQ9mABEPaAARD2sAEQ9sABEPbQARD24AEQ9vABEPcQARD3MAEQ90ABEPdQARD3cAEQ94ABEPwQARD+UAERAMABEQMAAREDMAERA1ABEQNwAREDkAERA7ABEQPQARED4AERBBABEQWgAREHcAERB5ABEQewAREH0AERB/ABEQgQAREIMAERCFABEQogAREKUAERCoABEQqwAREK4AERCxABEQtAARELcAERC5ABERNAARETYAERE4ABEROgARET0AERE+ABERPwAREUAAERFBABERQwAREUUAERFGABERRwAREUkAERFKABERxQAREccAERHJABERywAREc4AERHPABER0AAREdEAERHSABER1AAREdYAERHXABER2AAREdoAERHbABESVgARElgAERJaABESXAAREl8AERJgABESYQAREmIAERJjABESZQAREmcAERJoABESaQAREmsAERJsABES5wAREukAERLrABES7QAREvAAERLxABES8gAREvMAERL0ABES9gAREvgAERL5ABES+gAREvwAERL9ABETeAARE3oAERN8ABETfgARE4EAEROCABETgwARE4QAEROFABEThwARE4kAEROKABETiwARE40AEROOABEUCQARFAsAERQOABEUEAARFBMAERQUABEUFQARFBYAERQXABEUGQARFBsAERQcABEUHQARFB8AERQgABEUPwARFLoAERS8ABEUvgARFMAAERTDABEUxAARFMUAERTGABEUxwARFMkAERTLABEUzAARFM0AERTPABEU0AARFWMAERWGABEVpgARFcYAERXIABEVygARFcwAERXOABEV0QARFdIAERXTABEV1gARFdcAERXZABEV2gARFdwAERXfABEV4AARFeEAERXkABEV5QARFeoAERYDABEWDAARFg4AERYQABEWGQARFhwAERYfABEWIQARFmoAERaOABEWtQARFtkAERbcABEW3gARFuAAERbiABEW5AARFuYAERbnABEW6gARFwMAERckABEXJgARFygAERcqABEXLAARFy4AERcwABEXMgARFzQAERdVABEXWAARF1sAERdeABEXYQARF2QAERdnABEXagARF20AERdvABEX6gARF+wAERfuABEX8AARF/MAERf0ABEX9QARF/YAERf3ABEX+QARF/sAERf8ABEX/QARF/8AERgAABEYewARGH0AERh/ABEYgQARGIQAERiFABEYhgARGIcAERiIABEYigARGIwAERiNABEYjgARGJAAERiRABEZDAARGQ4AERkRABEZEwARGRYAERkXABEZGAARGRkAERkaABEZHAARGR4AERkfABEZIAARGSIAERkjABEZPAARGT0AERk+ABEZQAARGbsAERm9ABEZvwARGcEAERnEABEZxQARGcYAERnHABEZyAARGcoAERnMABEZzQARGc4AERnQABEZ0QARGkwAERpOABEaUAARGlIAERpVABEaVgARGlcAERpYABEaWQARGlsAERpdABEaXgARGl8AERphABEaYgARGt0AERrfABEa4QARGuMAERrmABEa5wARGugAERrpABEa6gARGuwAERruABEa7wARGvAAERryABEa8wARG24AERtwABEbcgARG3QAERt3ABEbeAARG3kAERt6ABEbewARG30AERt/ABEbgAARG4EAERuDABEbhAARG/8AERwBABEcAwARHAUAERwIABEcCQARHAoAERwLABEcDAARHA4AERwQABEcEQARHBIAERwUABEcFQARHF4AERyCABEcqQARHM0AERzQABEc0gARHNQAERzWABEc2AARHNoAERzbABEc3gARHPcAER0UABEdFgARHRgAER0aABEdHAARHR4AER0gABEdIgARHT8AER1CABEdRQARHUgAER1LABEdTgARHVEAER1UABEdVgARHdEAER3TABEd1QARHdcAER3aABEd2wARHdwAER3dABEd3gARHeAAER3iABEd4wARHeQAER3mABEd5wARHmIAER5kABEeZgARHmgAER5rABEebAARHm0AER5uABEebwARHnEAER5zABEedAARHnUAER53ABEeeAARHvMAER71ABEe9wARHvkAER78ABEe/QARHv4AER7/ABEfAAARHwIAER8EABEfBQARHwYAER8IABEfCQARH4QAER+GABEfiAARH4oAER+NABEfjgARH48AER+QABEfkQARH5MAER+VABEflgARH5cAER+ZABEfmgARIBUAESAXABEgGQARIBsAESAeABEgHwARICAAESAhABEgIgARICQAESAmABEgJwARICgAESAqABEgKwARIKYAESCoABEgqwARIK0AESCwABEgsQARILIAESCzABEgtAARILYAESC4ABEguQARILoAESC8ABEgvQARINwAESFXABEhWQARIVsAESFdABEhYAARIWEAESFiABEhYwARIWQAESFmABEhaAARIWkAESFqABEhbAARIW0AESIAABEiIwARIkMAESJjABEiZQARImcAESJpABEiawARIm4AESJvABEicAARInMAESJ0ABEidgARIncAESJ6ABEifQARIn4AESJ/ABEiggARIoMAESKIABEioQARIqoAESKsABEirwARIrgAESK7ABEivgARIsAAESMJABEjLQARI1QAESN4ABEjewARI30AESN/ABEjgQARI4MAESOFABEjhgARI4kAESOiABEjwwARI8UAESPHABEjyQARI8sAESPNABEjzwARI9EAESPTABEj9AARI/cAESP6ABEj/QARJAAAESQDABEkBgARJAkAESQMABEkDgARJIkAESSLABEkjQARJI8AESSSABEkkwARJJQAESSVABEklgARJJgAESSaABEkmwARJJwAESSeABEknwARJRoAESUcABElHgARJSAAESUjABElJAARJSUAESUmABElJwARJSkAESUrABElLAARJS0AESUvABElMAARJasAESWtABElsAARJbIAESW1ABEltgARJbcAESW4ABEluQARJbsAESW9ABElvgARJb8AESXBABElwgARJdsAESXcABEl3QARJd8AESZaABEmXAARJl4AESZgABEmYwARJmQAESZlABEmZgARJmcAESZpABEmawARJmwAESZtABEmbwARJnAAESbrABEm7QARJu8AESbxABEm9AARJvUAESb2ABEm9wARJvgAESb6ABEm/AARJv0AESb+ABEnAAARJwEAESd8ABEnfgARJ4AAESeCABEnhQARJ4YAESeHABEniAARJ4kAESeLABEnjQARJ44AESePABEnkQARJ5IAESgNABEoDwARKBEAESgTABEoFgARKBcAESgYABEoGQARKBoAESgcABEoHgARKB8AESggABEoIgARKCMAESieABEooAARKKIAESikABEopwARKKgAESipABEoqgARKKsAESitABEorwARKLAAESixABEoswARKLQAESj9ABEpIQARKUgAESlsABEpbwARKXIAESl0ABEpdgARKXgAESl6ABEpewARKX4AESmXABEptAARKbcAESm6ABEpvQARKcAAESnDABEpxgARKckAESnmABEp6QARKewAESnvABEp8gARKfUAESn4ABEp+wARKf0AESp4ABEqegARKn0AESp/ABEqggARKoMAESqEABEqhQARKoYAESqIABEqiwARKowAESqNABEqjwARKpAAESsLABErDQARKxAAESsSABErFQARKxYAESsXABErGAARKxkAESsbABErHgARKx8AESsgABErIgARKyMAESueABEroAARK6MAESulABErqAARK6kAESuqABErqwARK6wAESuuABErsQARK7IAESuzABErtQARK7YAESwxABEsMwARLDYAESw4ABEsOwARLDwAESw9ABEsPgARLD8AESxBABEsRAARLEUAESxGABEsSAARLEkAESzEABEsxgARLMgAESzKABEszQARLM4AESzPABEs0AARLNEAESzTABEs1gARLNcAESzYABEs2gARLNsAES1WABEtWAARLVoAES1cABEtXwARLWAAES1hABEtYgARLWMAES1lABEtaAARLWkAES1qABEtbAARLW0AES3oABEt6gARLe0AES3vABEt8gARLfMAES30ABEt9QARLfYAES34ABEt+wARLfwAES39ABEt/wARLgAAES4RABEuEgARLhQAES6PABEukQARLpMAES6VABEumAARLpkAES6aABEumwARLpwAES6eABEuoQARLqIAES6jABEupQARLqYAES8hABEvIwARLyUAES8nABEvKgARLysAES8sABEvLQARLy4AES8wABEvMwARLzQAES81ABEvNwARLzgAES+zABEvtQARL7gAES+6ABEvvQARL74AES+/ABEvwAARL8EAES/DABEvxgARL8cAES/IABEvygARL8sAETBeABEwgQARMKEAETDBABEwwwARMMUAETDHABEwyQARMMwAETDNABEwzgARMNEAETDSABEw1AARMNUAETDYABEw2wARMNwAETDdABEw4AARMOEAETDmABEw/wARMQgAETEKABExDQARMRYAETEZABExHAARMR4AETFnABExiwARMbIAETHWABEx2QARMdsAETHdABEx3wARMeEAETHjABEx5AARMecAETIAABEyIQARMiMAETIlABEyJwARMikAETIrABEyLQARMi8AETIxABEyUgARMlUAETJYABEyWwARMl4AETJhABEyZAARMmcAETJqABEybAARMucAETLpABEy6wARMu0AETLwABEy8QARMvIAETLzABEy9AARMvYAETL4ABEy+QARMvoAETL8ABEy/QARM3gAETN6ABEzfAARM34AETOBABEzggARM4MAETOEABEzhQARM4cAETOJABEzigARM4sAETONABEzjgARNAkAETQLABE0DgARNBAAETQTABE0FAARNBUAETQWABE0FwARNBkAETQbABE0HAARNB0AETQfABE0IAARNDkAETQ6ABE0OwARND0AETS4ABE0ugARNLwAETS+ABE0wQARNMIAETTDABE0xAARNMUAETTHABE0yQARNMoAETTLABE0zQARNM4AETVJABE1SwARNU0AETVPABE1UgARNVMAETVUABE1VQARNVYAETVYABE1WgARNVsAETVcABE1XgARNV8AETXaABE13AARNd4AETXgABE14wARNeQAETXlABE15gARNecAETXpABE16wARNewAETXtABE17wARNfAAETZrABE2bQARNm8AETZxABE2dAARNnUAETZ2ABE2dwARNngAETZ6ABE2fAARNn0AETZ+ABE2gAARNoEAETb8ABE2/gARNwAAETcCABE3BQARNwYAETcHABE3CAARNwkAETcLABE3DQARNw4AETcPABE3EQARNxIAETdbABE3fwARN6YAETfKABE3zQARN9AAETfSABE31AARN9YAETfYABE32QARN9wAETf1ABE4EgAROBUAETgYABE4GwAROB4AETghABE4JAAROCcAEThEABE4RwAROEoAEThNABE4UAAROFMAEThWABE4WQAROFsAETjWABE42AARONsAETjdABE44AAROOEAETjiABE44wAROOQAETjmABE46QAROOoAETjrABE47QAROO4AETlpABE5awAROW4AETlwABE5cwAROXQAETl1ABE5dgAROXcAETl5ABE5fAAROX0AETl+ABE5gAAROYEAETn8ABE5/gAROgEAEToDABE6BgAROgcAEToIABE6CQAROgoAEToMABE6DwAROhAAEToRABE6EwAROhQAETqPABE6kQAROpQAETqWABE6mQAROpoAETqbABE6nAAROp0AETqfABE6ogAROqMAETqkABE6pgAROqcAETsiABE7JAAROyYAETsoABE7KwAROywAETstABE7LgAROy8AETsxABE7NAAROzUAETs2ABE7OAAROzkAETu0ABE7tgARO7gAETu6ABE7vQARO74AETu/ABE7wAARO8EAETvDABE7xgARO8cAETvIABE7ygARO8sAETxGABE8SAARPEsAETxNABE8UAARPFEAETxSABE8UwARPFQAETxWABE8WQARPFoAETxbABE8XQARPF4AETzxABE9FAARPTQAET1UABE9VgARPVgAET1aABE9XAARPV8AET1gABE9YQARPWQAET1lABE9ZwARPWgAET1qABE9bQARPW4AET1vABE9cgARPXMAET18ABE9lQARPZ4AET2gABE9ogARPasAET2uABE9sQARPbMAET38ABE+IAARPkcAET5rABE+bgARPnAAET5yABE+dAARPnYAET54ABE+eQARPnwAET6VABE+tgARPrgAET66ABE+vAARPr4AET7AABE+wgARPsQAET7GABE+5wARPuoAET7tABE+8AARPvMAET72ABE++QARPvwAET7/ABE/AQARP3wAET9+ABE/gAARP4IAET+FABE/hgARP4cAET+IABE/iQARP4sAET+NABE/jgARP48AET+RABE/kgARQA0AEUAPABFAEQARQBMAEUAWABFAFwARQBgAEUAZABFAGgARQBwAEUAeABFAHwARQCAAEUAiABFAIwARQJ4AEUCgABFAowARQKUAEUCoABFAqQARQKoAEUCrABFArAARQK4AEUCwABFAsQARQLIAEUC0ABFAtQARQM4AEUDPABFA0AARQNIAEUFNABFBTwARQVEAEUFTABFBVgARQVcAEUFYABFBWQARQVoAEUFcABFBXgARQV8AEUFgABFBYgARQWMAEUHeABFB4AARQeIAEUHkABFB5wARQegAEUHpABFB6gARQesAEUHtABFB7wARQfAAEUHxABFB8wARQfQAEUJvABFCcQARQnMAEUJ1ABFCeAARQnkAEUJ6ABFCewARQnwAEUJ+ABFCgAARQoEAEUKCABFChAARQoUAEUMAABFDAgARQwQAEUMGABFDCQARQwoAEUMLABFDDAARQw0AEUMPABFDEQARQxIAEUMTABFDFQARQxYAEUORABFDkwARQ5UAEUOXABFDmgARQ5sAEUOcABFDnQARQ54AEUOgABFDogARQ6MAEUOkABFDpgARQ6cAEUPwABFEFAARRDsAEURfABFEYgARRGQAEURmABFEaAARRGoAEURsABFEbQARRHAAEUSJABFEpgARRKgAEUSqABFErAARRK4AEUSwABFEsgARRLQAEUTRABFE1AARRNcAEUTaABFE3QARROAAEUTjABFE5gARROgAEUVjABFFZQARRWcAEUVpABFFbAARRW0AEUVuABFFbwARRXAAEUVyABFFdAARRXUAEUV2ABFFeAARRXkAEUX0ABFF9gARRfgAEUX6ABFF/QARRf4AEUX/ABFGAAARRgEAEUYDABFGBQARRgYAEUYHABFGCQARRgoAEUaFABFGhwARRokAEUaLABFGjgARRo8AEUaQABFGkQARRpIAEUaUABFGlgARRpcAEUaYABFGmgARRpsAEUcWABFHGAARRxoAEUccABFHHwARRyAAEUchABFHIgARRyMAEUclABFHJwARRygAEUcpABFHKwARRywAEUenABFHqQARR6sAEUetABFHsAARR7EAEUeyABFHswARR7QAEUe2ABFHuAARR7kAEUe6ABFHvAARR70AEUg4ABFIOgARSDwAEUg+ABFIQQARSEIAEUhDABFIRAARSEUAEUhHABFISQARSEoAEUhLABFITQARSE4AEUjJABFIywARSM0AEUjPABFI0gARSNMAEUjUABFI1QARSNYAEUjYABFI2gARSNsAEUjcABFI3gARSN8AEUlyABFJlQARSbUAEUnVABFJ1wARSdkAEUnbABFJ3QARSeAAEUnhABFJ4gARSeUAEUnmABFJ6AARSekAEUnrABFJ7gARSe8AEUnwABFJ8wARSfQAEUn5ABFKEgARShsAEUodABFKHwARSigAEUorABFKLgARSjAAEUp5ABFKnQARSsQAEUroABFK6wARSu0AEUrvABFK8QARSvMAEUr1ABFK9gARSvkAEUsSABFLMwARSzUAEUs3ABFLOQARSzsAEUs9ABFLPwARS0EAEUtDABFLZAARS2cAEUtqABFLbQARS3AAEUtzABFLdgARS3kAEUt8ABFLfgARS/kAEUv7ABFL/QARS/8AEUwCABFMAwARTAQAEUwFABFMBgARTAgAEUwKABFMCwARTAwAEUwOABFMDwARTIoAEUyMABFMjgARTJAAEUyTABFMlAARTJUAEUyWABFMlwARTJkAEUybABFMnAARTJ0AEUyfABFMoAARTRsAEU0dABFNIAARTSIAEU0lABFNJgARTScAEU0oABFNKQARTSsAEU0tABFNLgARTS8AEU0xABFNMgARTUsAEU1MABFNTQARTU8AEU3KABFNzAARTc4AEU3QABFN0wARTdQAEU3VABFN1gARTdcAEU3ZABFN2wARTdwAEU3dABFN3wARTeAAEU5bABFOXQARTl8AEU5hABFOZAARTmUAEU5mABFOZwARTmgAEU5qABFObAARTm0AEU5uABFOcAARTnEAEU7sABFO7gARTvAAEU7yABFO9QARTvYAEU73ABFO+AARTvkAEU77ABFO/QARTv4AEU7/ABFPAQARTwIAEU99ABFPfwART4EAEU+DABFPhgART4cAEU+IABFPiQART4oAEU+MABFPjgART48AEU+QABFPkgART5MAEVAOABFQEAARUBIAEVAUABFQFwARUBgAEVAZABFQGgARUBsAEVAdABFQHwARUCAAEVAhABFQIwARUCQAEVBtABFQkQARULgAEVDcABFQ3wARUOEAEVDjABFQ5QARUOcAEVDpABFQ6gARUO0AEVEGABFRIwARUSUAEVEnABFRKQARUSsAEVEtABFRLwARUTEAEVFOABFRUQARUVQAEVFXABFRWgARUV0AEVFgABFRYwARUWUAEVHgABFR4gARUeQAEVHmABFR6QARUeoAEVHrABFR7AARUe0AEVHvABFR8QARUfIAEVHzABFR9QARUfYAEVJxABFScwARUnUAEVJ3ABFSegARUnsAEVJ8ABFSfQARUn4AEVKAABFSggARUoMAEVKEABFShgARUocAEVMCABFTBAARUwYAEVMIABFTCwARUwwAEVMNABFTDgARUw8AEVMRABFTEwARUxQAEVMVABFTFwARUxgAEVOTABFTlQARU5cAEVOZABFTnAARU50AEVOeABFTnwARU6AAEVOiABFTpAARU6UAEVOmABFTqAARU6kAEVQkABFUJgARVCgAEVQqABFULQARVC4AEVQvABFUMAARVDEAEVQzABFUNQARVDYAEVQ3ABFUOQARVDoAEVS1ABFUtwARVLoAEVS8ABFUvwARVMAAEVTBABFUwgARVMMAEVTFABFUxwARVMgAEVTJABFUywARVMwAEVTrABFVZgARVWgAEVVqABFVbAARVW8AEVVwABFVcQARVXIAEVVzABFVdQARVXcAEVV4ABFVeQARVXsAEVV8ABFVjQARVY4AEVWQABFWCwARVg0AEVYPABFWEQARVhQAEVYVABFWFgARVhcAEVYYABFWGgARVh0AEVYeABFWHwARViEAEVYiABFWnQARVp8AEVahABFWowARVqYAEVanABFWqAARVqkAEVaqABFWrAARVq8AEVawABFWsQARVrMAEVa0ABFXLwARVzEAEVc0ABFXNgARVzkAEVc6ABFXOwARVzwAEVc9ABFXPwARV0IAEVdDABFXRAARV0YAEVdHABFXWAARV1kAEVdbABFX3gARWAIAEVgmABFYSQARWHAAEViQABFYtwARWN4AEVj+ABFZIgARWUYAEVlIABFZSwARWU0AEVlPABFZUQARWVQAEVlXABFZWQARWVsAEVleABFZYAARWWIAEVllABFZaAARWWkAEVluABFZhwARWYwAEVmOABFZkwARWZYAEVmYABFZ4QARWgUAEVosABFaUAARWlMAEVpVABFaVwARWlkAEVpbABFaXQARWl4AEVphABFaegARWp8AEVqhABFaowARWqUAEVqnABFaqQARWqsAEVqtABFarwARWrEAEVrWABFa2QARWtwAEVrfABFa4gARWuUAEVroABFa6wARWu4AEVrxABFa8wARW24AEVtwABFbcwARW3UAEVt4ABFbeQARW3oAEVt7ABFbfAARW34AEVuAABFbgQARW4IAEVuEABFbhQARW5YAEVuXABFbmQARXBQAEVwWABFcGAARXBoAEVwdABFcHgARXB8AEVwgABFcIQARXCMAEVwlABFcJgARXCcAEVwpABFcKgARXKUAEVynABFcqgARXKwAEVyvABFcsAARXLEAEVyyABFcswARXLUAEVy3ABFcuAARXLkAEVy7ABFcvAARXM0AEVzSABFc1QARXNcAEVzoABFc8QARXPQAEVz3ABFc+QARXQwAEV0XABFdkgARXZQAEV2WABFdmAARXZsAEV2cABFdnQARXZ4AEV2fABFdoQARXaMAEV2kABFdpQARXacAEV2oABFeIwARXiUAEV4oABFeKgARXi0AEV4uABFeLwARXjAAEV4xABFeMwARXjUAEV42ABFeNwARXjkAEV46ABFeSwARXkwAEV5OABFeyQARXssAEV7NABFezwARXtIAEV7TABFe1AARXtUAEV7WABFe2AARXtoAEV7bABFe3AARXt4AEV7fABFfWgARX1wAEV9fABFfYQARX2QAEV9lABFfZgARX2cAEV9oABFfagARX2wAEV9tABFfbgARX3AAEV9xABFfigARX4sAEV+MABFfjgARYAkAEWALABFgDQARYA8AEWASABFgEwARYBQAEWAVABFgFgARYBgAEWAaABFgGwARYBwAEWAeABFgHwARYJoAEWCcABFgnwARYKEAEWCkABFgpQARYKYAEWCnABFgqAARYKoAEWCsABFgrQARYK4AEWCwABFgsQARYNgAEWDxABFg+gARYP0AEWEAABFhCQARYQwAEWEPABFhEQARYSQAEWG3ABFh2gARYfoAEWIaABFiHAARYh4AEWIgABFiIgARYiUAEWImABFiJwARYioAEWIrABFiLQARYi4AEWIwABFiMwARYjQAEWI1ABFiOAARYjkAEWI+ABFiVwARYmAAEWJiABFiZAARYm0AEWJwABFicwARYnUAEWK+ABFi4gARYwkAEWMtABFjMAARYzIAEWM0ABFjNgARYzgAEWM6ABFjOwARYz4AEWNXABFjeAARY3oAEWN8ABFjfgARY4AAEWOCABFjhAARY4YAEWOIABFjqQARY6wAEWOvABFjsgARY7UAEWO4ABFjuwARY74AEWPBABFjwwARZD4AEWRAABFkQgARZEQAEWRHABFkSAARZEkAEWRKABFkSwARZE0AEWRPABFkUAARZFEAEWRTABFkVAARZM8AEWTRABFk0wARZNUAEWTYABFk2QARZNoAEWTbABFk3AARZN4AEWTgABFk4QARZOIAEWTkABFk5QARZWAAEWViABFlZQARZWcAEWVqABFlawARZWwAEWVtABFlbgARZXAAEWVyABFlcwARZXQAEWV2ABFldwARZZAAEWWRABFlkgARZZQAEWYPABFmEQARZhMAEWYVABFmGAARZhkAEWYaABFmGwARZhwAEWYeABFmIAARZiEAEWYiABFmJAARZiUAEWagABFmogARZqQAEWamABFmqQARZqoAEWarABFmrAARZq0AEWavABFmsQARZrIAEWazABFmtQARZrYAEWcxABFnMwARZzUAEWc3ABFnOgARZzsAEWc8ABFnPQARZz4AEWdAABFnQgARZ0MAEWdEABFnRgARZ0cAEWfCABFnxAARZ8YAEWfIABFnywARZ8wAEWfNABFnzgARZ88AEWfRABFn0wARZ9QAEWfVABFn1wARZ9gAEWhTABFoVQARaFcAEWhZABFoXAARaF0AEWheABFoXwARaGAAEWhiABFoZAARaGUAEWhmABFoaAARaGkAEWiyABFo1gARaP0AEWkhABFpJAARaSYAEWkoABFpKgARaSwAEWkuABFpLwARaTIAEWlLABFpaAARaWoAEWlsABFpbgARaXAAEWlyABFpdAARaXYAEWmTABFplgARaZkAEWmcABFpnwARaaIAEWmlABFpqAARaaoAEWolABFqJwARaikAEWorABFqLgARai8AEWowABFqMQARajIAEWo0ABFqNgARajcAEWo4ABFqOgARajsAEWq2ABFquAARaroAEWq8ABFqvwARasAAEWrBABFqwgARasMAEWrFABFqxwARasgAEWrJABFqywARaswAEWtHABFrSQARa0sAEWtNABFrUAARa1EAEWtSABFrUwARa1QAEWtWABFrWAARa1kAEWtaABFrXAARa10AEWvYABFr2gARa90AEWvfABFr4gARa+MAEWvkABFr5QARa+YAEWvoABFr6gARa+sAEWvsABFr7gARa+8AEWxqABFsbAARbG4AEWxwABFscwARbHQAEWx1ABFsdgARbHcAEWx5ABFsewARbHwAEWx9ABFsfwARbIAAEWz7ABFs/QARbP8AEW0BABFtBAARbQUAEW0GABFtBwARbQgAEW0KABFtDAARbQ0AEW0OABFtEAARbREAEW2MABFtjgARbZAAEW2SABFtlQARbZYAEW2XABFtmAARbZkAEW2bABFtnQARbZ4AEW2fABFtoQARbaIAEW41ABFuWAARbngAEW6YABFumgARbpwAEW6eABFuoAARbqMAEW6kABFupQARbqgAEW6pABFuqwARbqwAEW6uABFusQARbrIAEW6zABFutgARbrcAEW68ABFu1QARbt4AEW7gABFu4gARbusAEW7uABFu8QARbvMAEW88ABFvYAARb4cAEW+rABFvrgARb7AAEW+yABFvtAARb7YAEW+4ABFvuQARb7wAEW/VABFv9gARb/gAEW/6ABFv/AARb/4AEXAAABFwAgARcAQAEXAGABFwJwARcCoAEXAtABFwMAARcDMAEXA2ABFwOQARcDwAEXA/ABFwQQARcLwAEXC+ABFwwAARcMIAEXDFABFwxgARcMcAEXDIABFwyQARcMsAEXDNABFwzgARcM8AEXDRABFw0gARcU0AEXFPABFxUQARcVMAEXFWABFxVwARcVgAEXFZABFxWgARcVwAEXFeABFxXwARcWAAEXFiABFxYwARcd4AEXHgABFx4wARceUAEXHoABFx6QARceoAEXHrABFx7AARce4AEXHwABFx8QARcfIAEXH0ABFx9QARcg4AEXIPABFyEAARchIAEXKNABFyjwARcpEAEXKTABFylgARcpcAEXKYABFymQARcpoAEXKcABFyngARcp8AEXKgABFyogARcqMAEXMeABFzIAARcyIAEXMkABFzJwARcygAEXMpABFzKgARcysAEXMtABFzLwARczAAEXMxABFzMwARczQAEXOvABFzsQARc7MAEXO1ABFzuAARc7kAEXO6ABFzuwARc7wAEXO+ABFzwAARc8EAEXPCABFzxAARc8UAEXRAABF0QgARdEQAEXRGABF0SQARdEoAEXRLABF0TAARdE0AEXRPABF0UQARdFIAEXRTABF0VQARdFYAEXTRABF00wARdNUAEXTXABF02gARdNsAEXTcABF03QARdN4AEXTgABF04gARdOMAEXTkABF05gARdOcAEXUwABF1VAARdXsAEXWfABF1ogARdaQAEXWmABF1qAARdaoAEXWsABF1rQARdbAAEXXJABF15gARdegAEXXqABF17AARde4AEXXwABF18gARdfQAEXYRABF2FAARdhcAEXYaABF2HQARdiAAEXYjABF2JgARdigAEXajABF2pQARdqcAEXapABF2rAARdq0AEXauABF2rwARdrAAEXayABF2tAARdrUAEXa2ABF2uAARdrkAEXc0ABF3NgARdzgAEXc6ABF3PQARdz4AEXc/ABF3QAARd0EAEXdDABF3RQARd0YAEXdHABF3SQARd0oAEXfFABF3xwARd8kAEXfLABF3zgARd88AEXfQABF30QARd9IAEXfUABF31gARd9cAEXfYABF32gARd9sAEXhWABF4WAAReFsAEXhdABF4YAAReGEAEXhiABF4YwAReGQAEXhmABF4aAAReGkAEXhqABF4bAAReG0AEXjoABF46gAReOwAEXjuABF48QARePIAEXjzABF49AARePUAEXj3ABF4+QARePoAEXj7ABF4/QAReP4AEXl5ABF5ewAReX0AEXl/ABF5ggAReYMAEXmEABF5hQAReYYAEXmIABF5igAReYsAEXmMABF5jgAReY8AEXoKABF6DAAReg4AEXoQABF6EwARehQAEXoVABF6FgARehcAEXoZABF6GwARehwAEXodABF6HwAReiAAEXoxABF6MgARejQAEXq3ABF62wARev8AEXsiABF7SQARe2kAEXuQABF7twARe9cAEXv7ABF8HwARfCEAEXwkABF8JgARfCgAEXwqABF8LQARfDAAEXwyABF8NAARfDcAEXw5ABF8OwARfD4AEXxBABF8QgARfEcAEXxgABF8ZQARfGcAEXxsABF8bwARfHEAEXy6ABF83gARfQUAEX0pABF9LAARfS4AEX0wABF9MgARfTQAEX02ABF9NwARfToAEX1TABF9eAARfXoAEX18ABF9fgARfYAAEX2CABF9hAARfYYAEX2IABF9igARfa8AEX2yABF9tQARfbgAEX27ABF9vgARfcEAEX3EABF9xwARfcoAEX3MABF+RwARfkkAEX5MABF+TgARflEAEX5SABF+UwARflQAEX5VABF+VwARflkAEX5aABF+WwARfl0AEX5eABF+bwARfnAAEX5yABF+7QARfu8AEX7xABF+8wARfvYAEX73ABF++AARfvkAEX76ABF+/AARfv4AEX7/ABF/AAARfwIAEX8DABF/fgARf4AAEX+DABF/hQARf4gAEX+JABF/igARf4sAEX+MABF/jgARf5AAEX+RABF/kgARf5QAEX+VABF/pgARf6sAEX+uABF/sAARf8EAEX/KABF/zQARf9AAEX/SABF/7gARgAAAEYB7ABGAfQARgH8AEYCBABGAhAARgIUAEYCGABGAhwARgIgAEYCKABGAjAARgI0AEYCOABGAkAARgJEAEYEMABGBDgARgREAEYETABGBFgARgRcAEYEYABGBGQARgRoAEYEcABGBHgARgR8AEYEgABGBIgARgSMAEYE0ABGBNQARgTcAEYGyABGBtAARgbYAEYG4ABGBuwARgbwAEYG9ABGBvgARgb8AEYHBABGBwwARgcQAEYHFABGBxwARgcgAEYJDABGCRQARgkgAEYJKABGCTQARgk4AEYJPABGCUAARglEAEYJTABGCVQARglYAEYJXABGCWQARgloAEYJzABGCdAARgnUAEYJ3ABGC8gARgvQAEYL2ABGC+AARgvsAEYL8ABGC/QARgv4AEYL/ABGDAQARgwMAEYMEABGDBQARgwcAEYMIABGDgwARg4UAEYOIABGDigARg40AEYOOABGDjwARg5AAEYORABGDkwARg5UAEYOWABGDlwARg5kAEYOaABGDsQARg8oAEYPbABGD3gARg+EAEYPkABGD5wARg/gAEYP7ABGD/gARhAEAEYQEABGEBgARhBwAEYQ4ABGESgARhFgAEYTrABGFDgARhS4AEYVOABGFUAARhVIAEYVUABGFVgARhVkAEYVaABGFWwARhV4AEYVfABGFYQARhWIAEYVkABGFZwARhWgAEYVpABGFbAARhW0AEYVyABGFiwARhZQAEYWWABGFmAARhaEAEYWkABGFpwARhakAEYXyABGGFgARhj0AEYZhABGGZAARhmYAEYZoABGGagARhmwAEYZuABGGbwARhnIAEYaLABGGrAARhq4AEYawABGGsgARhrQAEYa2ABGGuAARhroAEYa8ABGG3QARhuAAEYbjABGG5gARhukAEYbsABGG7wARhvIAEYb1ABGG9wARh3IAEYd0ABGHdgARh3gAEYd7ABGHfAARh30AEYd+ABGHfwARh4EAEYeDABGHhAARh4UAEYeHABGHiAARiAMAEYgFABGIBwARiAkAEYgMABGIDQARiA4AEYgPABGIEAARiBIAEYgUABGIFQARiBYAEYgYABGIGQARiJQAEYiWABGImQARiJsAEYieABGInwARiKAAEYihABGIogARiKQAEYimABGIpwARiKgAEYiqABGIqwARiMQAEYjFABGIxgARiMgAEYlDABGJRQARiUcAEYlJABGJTAARiU0AEYlOABGJTwARiVAAEYlSABGJVAARiVUAEYlWABGJWAARiVkAEYnUABGJ1gARidgAEYnaABGJ3QARid4AEYnfABGJ4AARieEAEYnjABGJ5QARieYAEYnnABGJ6QARieoAEYplABGKZwARimkAEYprABGKbgARim8AEYpwABGKcQARinIAEYp0ABGKdgARincAEYp4ABGKegARinsAEYr2ABGK+AARivoAEYr8ABGK/wARiwAAEYsBABGLAgARiwMAEYsFABGLBwARiwgAEYsJABGLCwARiwwAEYuHABGLiQARi4sAEYuNABGLkAARi5EAEYuSABGLkwARi5QAEYuWABGLmAARi5kAEYuaABGLnAARi50AEYvmABGMCgARjDEAEYxVABGMWAARjFoAEYxcABGMXgARjGAAEYxiABGMYwARjGYAEYx/ABGMnAARjJ4AEYygABGMogARjKQAEYymABGMqAARjKoAEYzHABGMygARjM0AEYzQABGM0wARjNYAEYzZABGM3AARjN4AEY1ZABGNWwARjV0AEY1fABGNYgARjWMAEY1kABGNZQARjWYAEY1oABGNagARjWsAEY1sABGNbgARjW8AEY3qABGN7AARje4AEY3wABGN8wARjfQAEY31ABGN9gARjfcAEY35ABGN+wARjfwAEY39ABGN/wARjgAAEY57ABGOfQARjn8AEY6BABGOhAARjoUAEY6GABGOhwARjogAEY6KABGOjAARjo0AEY6OABGOkAARjpEAEY8MABGPDgARjxEAEY8TABGPFgARjxcAEY8YABGPGQARjxoAEY8cABGPHgARjx8AEY8gABGPIgARjyMAEY+eABGPoAARj6IAEY+kABGPpwARj6gAEY+pABGPqgARj6sAEY+tABGPrwARj7AAEY+xABGPswARj7QAEZAvABGQMQARkDMAEZA1ABGQOAARkDkAEZA6ABGQOwARkDwAEZA+ABGQQAARkEEAEZBCABGQRAARkEUAEZDAABGQwgARkMQAEZDGABGQyQARkMoAEZDLABGQzAARkM0AEZDPABGQ0QARkNIAEZDTABGQ1QARkNYAEZFpABGRjAARkawAEZHMABGRzgARkdAAEZHSABGR1AARkdcAEZHYABGR2QARkdwAEZHdABGR3wARkeAAEZHiABGR5QARkeYAEZHnABGR6gARkesAEZHwABGSCQARkhIAEZIUABGSFgARkh8AEZIiABGSJQARkicAEZJwABGSlAARkrsAEZLfABGS4gARkuQAEZLmABGS6AARkuoAEZLsABGS7QARkvAAEZMJABGTKgARkywAEZMuABGTMAARkzIAEZM0ABGTNgARkzgAEZM6ABGTWwARk14AEZNhABGTZAARk2cAEZNqABGTbQARk3AAEZNzABGTdQARk/AAEZPyABGT9AARk/YAEZP5ABGT+gARk/sAEZP8ABGT/QARk/8AEZQBABGUAgARlAMAEZQFABGUBgARlIEAEZSDABGUhQARlIcAEZSKABGUiwARlIwAEZSNABGUjgARlJAAEZSSABGUkwARlJQAEZSWABGUlwARlRIAEZUUABGVFwARlRkAEZUcABGVHQARlR4AEZUfABGVIAARlSIAEZUkABGVJQARlSYAEZUoABGVKQARlUIAEZVDABGVRAARlUYAEZXBABGVwwARlcUAEZXHABGVygARlcsAEZXMABGVzQARlc4AEZXQABGV0gARldMAEZXUABGV1gARldcAEZZSABGWVAARllYAEZZYABGWWwARllwAEZZdABGWXgARll8AEZZhABGWYwARlmQAEZZlABGWZwARlmgAEZbjABGW5QARlucAEZbpABGW7AARlu0AEZbuABGW7wARlvAAEZbyABGW9AARlvUAEZb2ABGW+AARlvkAEZd0ABGXdgARl3gAEZd6ABGXfQARl34AEZd/ABGXgAARl4EAEZeDABGXhQARl4YAEZeHABGXiQARl4oAEZgFABGYBwARmAkAEZgLABGYDgARmA8AEZgQABGYEQARmBIAEZgUABGYFgARmBcAEZgYABGYGgARmBsAEZhkABGYiAARmK8AEZjTABGY1gARmNgAEZjaABGY3AARmN4AEZjgABGY4QARmOQAEZj9ABGZGgARmRwAEZkeABGZIAARmSIAEZkkABGZJgARmSgAEZlFABGZSAARmUsAEZlOABGZUQARmVQAEZlXABGZWgARmVwAEZnXABGZ2QARmdsAEZndABGZ4AARmeEAEZniABGZ4wARmeQAEZnmABGZ6AARmekAEZnqABGZ7AARme0AEZpoABGaagARmmwAEZpuABGacQARmnIAEZpzABGadAARmnUAEZp3ABGaeQARmnoAEZp7ABGafQARmn4AEZr5ABGa+wARmv0AEZr/ABGbAgARmwMAEZsEABGbBQARmwYAEZsIABGbCgARmwsAEZsMABGbDgARmw8AEZuKABGbjAARm48AEZuRABGblAARm5UAEZuWABGblwARm5gAEZuaABGbnAARm50AEZueABGboAARm6EAEZwcABGcHgARnCAAEZwiABGcJQARnCYAEZwnABGcKAARnCkAEZwrABGcLQARnC4AEZwvABGcMQARnDIAEZytABGcrwARnLEAEZyzABGctgARnLcAEZy4ABGcuQARnLoAEZy8ABGcvgARnL8AEZzAABGcwgARnMMAEZ0+ABGdQAARnUIAEZ1EABGdRwARnUgAEZ1JABGdSgARnUsAEZ1NABGdTwARnVAAEZ1RABGdUwARnVQAEZ3nABGeCgARnioAEZ5KABGeTAARnk4AEZ5QABGeUgARnlUAEZ5WABGeVwARnloAEZ5bABGeXQARnl4AEZ5gABGeYwARnmQAEZ5lABGeaAARnmkAEZ5uABGehwARnpAAEZ6SABGelAARnp0AEZ6gABGeowARnqUAEZ7uABGfEgARnzkAEZ9dABGfYAARn2IAEZ9kABGfZgARn2gAEZ9qABGfawARn24AEZ+HABGfqAARn6oAEZ+sABGfrgARn7AAEZ+yABGftAARn7YAEZ+4ABGf2QARn9wAEZ/fABGf4gARn+UAEZ/oABGf6wARn+4AEZ/xABGf8wARoG4AEaBwABGgcgARoHQAEaB3ABGgeAARoHkAEaB6ABGgewARoH0AEaB/ABGggAARoIEAEaCDABGghAARoP8AEaEBABGhAwARoQUAEaEIABGhCQARoQoAEaELABGhDAARoQ4AEaEQABGhEQARoRIAEaEUABGhFQARoZAAEaGSABGhlQARoZcAEaGaABGhmwARoZwAEaGdABGhngARoaAAEaGiABGhowARoaQAEaGmABGhpwARocAAEaHBABGhwgARocQAEaI/ABGiQQARokMAEaJFABGiSAARokkAEaJKABGiSwARokwAEaJOABGiUAARolEAEaJSABGiVAARolUAEaLQABGi0gARotQAEaLWABGi2QARotoAEaLbABGi3AARot0AEaLfABGi4QARouIAEaLjABGi5QARouYAEaNhABGjYwARo2UAEaNnABGjagARo2sAEaNsABGjbQARo24AEaNwABGjcgARo3MAEaN0ABGjdgARo3cAEaPyABGj9AARo/YAEaP4ABGj+wARo/wAEaP9ABGj/gARo/8AEaQBABGkAwARpAQAEaQFABGkBwARpAgAEaSDABGkhQARpIcAEaSJABGkjAARpI0AEaSOABGkjwARpJAAEaSSABGklAARpJUAEaSWABGkmAARpJkAEaTiABGlBgARpS0AEaVRABGlVAARpVYAEaVYABGlWgARpVwAEaVeABGlXwARpWIAEaV7ABGlmAARpZoAEaWcABGlngARpaAAEaWiABGlpAARpaYAEaXDABGlxgARpckAEaXMABGlzwARpdIAEaXVABGl2AARpdoAEaZVABGmVwARplkAEaZbABGmXgARpl8AEaZgABGmYQARpmIAEaZkABGmZgARpmcAEaZoABGmagARpmsAEabmABGm6AARpuoAEabsABGm7wARpvAAEabxABGm8gARpvMAEab1ABGm9wARpvgAEab5ABGm+wARpvwAEad3ABGneQARp3sAEad9ABGngAARp4EAEaeCABGngwARp4QAEaeGABGniAARp4kAEaeKABGnjAARp40AEagIABGoCgARqA0AEagPABGoEgARqBMAEagUABGoFQARqBYAEagYABGoGgARqBsAEagcABGoHgARqB8AEaiaABGonAARqJ4AEaigABGoowARqKQAEailABGopgARqKcAEaipABGoqwARqKwAEaitABGorwARqLAAEakrABGpLQARqS8AEakxABGpNAARqTUAEak2ABGpNwARqTgAEak6ABGpPAARqT0AEak+ABGpQAARqUEAEam8ABGpvgARqcAAEanCABGpxQARqcYAEanHABGpyAARqckAEanLABGpzQARqc4AEanPABGp0QARqdIAEaplABGqiAARqqgAEarIABGqygARqswAEarOABGq0AARqtMAEarUABGq1QARqtgAEarZABGq2wARqtwAEareABGq4QARquIAEarjABGq5gARqucAEarsABGrBQARqw4AEasQABGrEgARqxsAEaseABGrIQARqyMAEatsABGrkAARq7cAEavbABGr3gARq+AAEaviABGr5AARq+YAEavoABGr6QARq+wAEawFABGsJgARrCgAEawqABGsLAARrC4AEawwABGsMgARrDQAEaw2ABGsVwARrFoAEaxdABGsYAARrGMAEaxmABGsaQARrGwAEaxvABGscQARrOwAEazuABGs8AARrPIAEaz1ABGs9gARrPcAEaz4ABGs+QARrPsAEaz9ABGs/gARrP8AEa0BABGtAgARrX0AEa1/ABGtgQARrYMAEa2GABGthwARrYgAEa2JABGtigARrYwAEa2OABGtjwARrZAAEa2SABGtkwARrg4AEa4QABGuEwARrhUAEa4YABGuGQARrhoAEa4bABGuHAARrh4AEa4gABGuIQARriIAEa4kABGuJQARrj4AEa4/ABGuQAARrkIAEa69ABGuvwARrsEAEa7DABGuxgARrscAEa7IABGuyQARrsoAEa7MABGuzgARrs8AEa7QABGu0gARrtMAEa9OABGvUAARr1IAEa9UABGvVwARr1gAEa9ZABGvWgARr1sAEa9dABGvXwARr2AAEa9hABGvYwARr2QAEa/fABGv4QARr+MAEa/lABGv6AARr+kAEa/qABGv6wARr+wAEa/uABGv8AARr/EAEa/yABGv9AARr/UAEbBwABGwcgARsHQAEbB2ABGweQARsHoAEbB7ABGwfAARsH0AEbB/ABGwgQARsIIAEbCDABGwhQARsIYAEbEBABGxAwARsQUAEbEHABGxCgARsQsAEbEMABGxDQARsQ4AEbEQABGxEgARsRMAEbEUABGxFgARsRcAEbFgABGxhAARsasAEbHPABGx0gARsdQAEbHWABGx2AARsdoAEbHcABGx3QARseAAEbH5ABGyFgARshgAEbIaABGyHAARsh4AEbIgABGyIgARsiQAEbJBABGyRAARskcAEbJKABGyTQARslAAEbJTABGyVgARslgAEbLTABGy1QARstcAEbLZABGy3AARst0AEbLeABGy3wARsuAAEbLiABGy5AARsuUAEbLmABGy6AARsukAEbNkABGzZgARs2gAEbNqABGzbQARs24AEbNvABGzcAARs3EAEbNzABGzdQARs3YAEbN3ABGzeQARs3oAEbP1ABGz9wARs/kAEbP7ABGz/gARs/8AEbQAABG0AQARtAIAEbQEABG0BgARtAcAEbQIABG0CgARtAsAEbSGABG0iAARtIsAEbSNABG0kAARtJEAEbSSABG0kwARtJQAEbSWABG0mAARtJkAEbSaABG0nAARtJ0AEbUYABG1GgARtRwAEbUeABG1IQARtSIAEbUjABG1JAARtSUAEbUnABG1KQARtSoAEbUrABG1LQARtS4AEbWpABG1qwARta0AEbWvABG1sgARtbMAEbW0ABG1tQARtbYAEbW4ABG1ugARtbsAEbW8ABG1vgARtb8AEbY6ABG2PAARtj4AEbZAABG2QwARtkQAEbZFABG2RgARtkcAEbZJABG2SwARtkwAEbZNABG2TwARtlAAEbZhABG2YgARtmQAEbbnABG3CwARty8AEbdSABG3eQARt5kAEbfAABG35wARuAcAEbgrABG4TwARuFEAEbhUABG4VgARuFgAEbhaABG4XQARuGAAEbhiABG4ZAARuGcAEbhpABG4awARuG4AEbhxABG4cgARuHcAEbiQABG4lQARuJcAEbicABG4nwARuKEAEbjqABG5DgARuTUAEblZABG5XAARuV4AEblgABG5YgARuWQAEblmABG5ZwARuWoAEbmDABG5qAARuaoAEbmsABG5rgARubAAEbmyABG5tAARubYAEbm4ABG5ugARud8AEbniABG55QARuegAEbnrABG57gARufEAEbn0ABG59wARufoAEbn8ABG6dwARunkAEbp8ABG6fgARuoEAEbqCABG6gwARuoQAEbqFABG6hwARuokAEbqKABG6iwARuo0AEbqOABG6nwARuqAAEbqiABG7HQARux8AEbshABG7IwARuyYAEbsnABG7KAARuykAEbsqABG7LAARuy4AEbsvABG7MAARuzIAEbszABG7rgARu7AAEbuzABG7tQARu7gAEbu5ABG7ugARu7sAEbu8ABG7vgARu8AAEbvBABG7wgARu8QAEbvFABG71gARu9cAEbvZABG8VAARvFYAEbxYABG8WgARvF0AEbxeABG8XwARvGAAEbxhABG8YwARvGUAEbxmABG8ZwARvGkAEbxqABG85QARvOcAEbzqABG87AARvO8AEbzwABG88QARvPIAEbzzABG89QARvPcAEbz4ABG8+QARvPsAEbz8ABG9DQARvQ4AEb0QABG9iwARvY0AEb2PABG9kQARvZQAEb2VABG9lgARvZcAEb2YABG9mgARvZwAEb2dABG9ngARvaAAEb2hABG+HAARvh4AEb4hABG+IwARviYAEb4nABG+KAARvikAEb4qABG+LAARvi4AEb4vABG+MAARvjIAEb4zABG+TAARvk0AEb5OABG+UAARvssAEb7NABG+zwARvtEAEb7UABG+1QARvtYAEb7XABG+2AARvtoAEb7cABG+3QARvt4AEb7gABG+4QARv1wAEb9eABG/YQARv2MAEb9mABG/ZwARv2gAEb9pABG/agARv2wAEb9uABG/bwARv3AAEb9yABG/cwARv6MAEb+8ABG/xQARv8gAEb/LABG/1AARv9cAEb/aABG/3AARv+8AEb/5ABHAjAARwK8AEcDPABHA7wARwPEAEcDzABHA9QARwPcAEcD6ABHA+wARwPwAEcD/ABHBAAARwQIAEcEDABHBBQARwQgAEcEJABHBCgARwQ0AEcEOABHBEwARwSwAEcE1ABHBNwARwTkAEcFCABHBRQARwUgAEcFKABHBkwARwbcAEcHeABHCAgARwgUAEcIHABHCCQARwgsAEcINABHCDwARwhAAEcITABHCLAARwk0AEcJPABHCUQARwlMAEcJVABHCVwARwlkAEcJbABHCXQARwn4AEcKBABHChAARwocAEcKKABHCjQARwpAAEcKTABHClgARwpgAEcMTABHDFQARwxcAEcMZABHDHAARwx0AEcMeABHDHwARwyAAEcMiABHDJAARwyUAEcMmABHDKAARwykAEcOkABHDpgARw6gAEcOqABHDrQARw64AEcOvABHDsAARw7EAEcOzABHDtQARw7YAEcO3ABHDuQARw7oAEcQ1ABHENwARxDoAEcQ8ABHEPwARxEAAEcRBABHEQgARxEMAEcRFABHERwARxEgAEcRJABHESwARxEwAEcRlABHEZgARxGcAEcRpABHE5AARxOYAEcToABHE6gARxO0AEcTuABHE7wARxPAAEcTxABHE8wARxPUAEcT2ABHE9wARxPkAEcT6ABHFdQARxXcAEcV5ABHFewARxX4AEcV/ABHFgAARxYEAEcWCABHFhAARxYYAEcWHABHFiAARxYoAEcWLABHGBgARxggAEcYKABHGDAARxg8AEcYQABHGEQARxhIAEcYTABHGFQARxhcAEcYYABHGGQARxhsAEcYcABHGlwARxpkAEcabABHGnQARxqAAEcahABHGogARxqMAEcakABHGpgARxqgAEcapABHGqgARxqwAEcatABHHKAARxyoAEccsABHHLgARxzEAEccyABHHMwARxzQAEcc1ABHHNwARxzkAEcc6ABHHOwARxz0AEcc+ABHHhwARx6sAEcfSABHH9gARx/kAEcf7ABHH/QARx/8AEcgBABHIAwARyAQAEcgHABHIIAARyD0AEcg/ABHIQQARyEMAEchFABHIRwARyEkAEchLABHIaAARyGsAEchuABHIcQARyHQAEch3ABHIegARyH0AEch/ABHI+gARyPwAEcj+ABHJAAARyQMAEckEABHJBQARyQYAEckHABHJCQARyQsAEckMABHJDQARyQ8AEckQABHJiwARyY0AEcmPABHJkQARyZQAEcmVABHJlgARyZcAEcmYABHJmgARyZwAEcmdABHJngARyaAAEcmhABHKHAARyh4AEcogABHKIgARyiUAEcomABHKJwARyigAEcopABHKKwARyi0AEcouABHKLwARyjEAEcoyABHKrQARyq8AEcqyABHKtAARyrcAEcq4ABHKuQARyroAEcq7ABHKvQARyr8AEcrAABHKwQARysMAEcrEABHLPwARy0EAEctDABHLRQARy0gAEctJABHLSgARy0sAEctMABHLTgARy1AAEctRABHLUgARy1QAEctVABHL0AARy9IAEcvUABHL1gARy9kAEcvaABHL2wARy9wAEcvdABHL3wARy+EAEcviABHL4wARy+UAEcvmABHMYQARzGMAEcxlABHMZwARzGoAEcxrABHMbAARzG0AEcxuABHMcAARzHIAEcxzABHMdAARzHYAEcx3ABHNCgARzS0AEc1NABHNbQARzW8AEc1xABHNcwARzXUAEc14ABHNeQARzXoAEc19ABHNfgARzYAAEc2BABHNgwARzYYAEc2HABHNiAARzYsAEc2MABHNkQARzaoAEc2zABHNtQARzbcAEc3AABHNwwARzcYAEc3IABHOEQARzjUAEc5cABHOgAARzoMAEc6FABHOhwARzokAEc6LABHOjQARzo4AEc6RABHOqgARzssAEc7NABHOzwARztEAEc7TABHO1QARztcAEc7ZABHO2wARzvwAEc7/ABHPAgARzwUAEc8IABHPCwARzw4AEc8RABHPFAARzxYAEc+RABHPkwARz5UAEc+XABHPmgARz5sAEc+cABHPnQARz54AEc+gABHPogARz6MAEc+kABHPpgARz6cAEdAiABHQJAAR0CYAEdAoABHQKwAR0CwAEdAtABHQLgAR0C8AEdAxABHQMwAR0DQAEdA1ABHQNwAR0DgAEdCzABHQtQAR0LgAEdC6ABHQvQAR0L4AEdC/ABHQwAAR0MEAEdDDABHQxQAR0MYAEdDHABHQyQAR0MoAEdDjABHQ5AAR0OUAEdDnABHRYgAR0WQAEdFmABHRaAAR0WsAEdFsABHRbQAR0W4AEdFvABHRcQAR0XMAEdF0ABHRdQAR0XcAEdF4ABHR8wAR0fUAEdH3ABHR+QAR0fwAEdH9ABHR/gAR0f8AEdIAABHSAgAR0gQAEdIFABHSBgAR0ggAEdIJABHShAAR0oYAEdKIABHSigAR0o0AEdKOABHSjwAR0pAAEdKRABHSkwAR0pUAEdKWABHSlwAR0pkAEdKaABHTFQAR0xcAEdMZABHTGwAR0x4AEdMfABHTIAAR0yEAEdMiABHTJAAR0yYAEdMnABHTKAAR0yoAEdMrABHTpgAR06gAEdOqABHTrAAR068AEdOwABHTsQAR07IAEdOzABHTtQAR07cAEdO4ABHTuQAR07sAEdO8ABHUBQAR1CkAEdRQABHUdAAR1HcAEdR5ABHUewAR1H0AEdR/ABHUgQAR1IIAEdSFABHUngAR1LsAEdS9ABHUvwAR1MEAEdTDABHUxQAR1McAEdTJABHU5gAR1OkAEdTsABHU7wAR1PIAEdT1ABHU+AAR1PsAEdT9ABHVeAAR1XoAEdV8ABHVfgAR1YEAEdWCABHVgwAR1YQAEdWFABHVhwAR1YkAEdWKABHViwAR1Y0AEdWOABHWCQAR1gsAEdYNABHWDwAR1hIAEdYTABHWFAAR1hUAEdYWABHWGAAR1hoAEdYbABHWHAAR1h4AEdYfABHWmgAR1pwAEdaeABHWoAAR1qMAEdakABHWpQAR1qYAEdanABHWqQAR1qsAEdasABHWrQAR1q8AEdawABHXKwAR1y0AEdcwABHXMgAR1zUAEdc2ABHXNwAR1zgAEdc5ABHXOwAR1z0AEdc+ABHXPwAR10EAEddCABHXvQAR178AEdfBABHXwwAR18YAEdfHABHXyAAR18kAEdfKABHXzAAR184AEdfPABHX0AAR19IAEdfTABHYTgAR2FAAEdhSABHYVAAR2FcAEdhYABHYWQAR2FoAEdhbABHYXQAR2F8AEdhgABHYYQAR2GMAEdhkABHY3wAR2OEAEdjjABHY5QAR2OgAEdjpABHY6gAR2OsAEdjsABHY7gAR2PAAEdjxABHY8gAR2PQAEdj1ABHZBgAR2QcAEdkJABHZjAAR2bAAEdnUABHZ9wAR2h4AEdo+ABHaZQAR2owAEdqsABHa0AAR2vQAEdr2ABHa+QAR2vsAEdr9ABHa/wAR2wIAEdsFABHbBwAR2wkAEdsMABHbDgAR2xAAEdsTABHbFgAR2xcAEdscABHbNQAR2zoAEds8ABHbQQAR20QAEdtGABHbjwAR27MAEdvaABHb/gAR3AEAEdwDABHcBQAR3AcAEdwJABHcCwAR3AwAEdwPABHcKAAR3E0AEdxPABHcUQAR3FMAEdxVABHcVwAR3FkAEdxbABHcXQAR3F8AEdyEABHchwAR3IoAEdyNABHckAAR3JMAEdyWABHcmQAR3JwAEdyfABHcoQAR3RwAEd0eABHdIQAR3SMAEd0mABHdJwAR3SgAEd0pABHdKgAR3SwAEd0uABHdLwAR3TAAEd0yABHdMwAR3UQAEd1FABHdRwAR3cIAEd3EABHdxgAR3cgAEd3LABHdzAAR3c0AEd3OABHdzwAR3dEAEd3TABHd1AAR3dUAEd3XABHd2AAR3lMAEd5VABHeWAAR3loAEd5dABHeXgAR3l8AEd5gABHeYQAR3mMAEd5lABHeZgAR3mcAEd5pABHeagAR3nsAEd58ABHefgAR3vkAEd77ABHe/QAR3v8AEd8CABHfAwAR3wQAEd8FABHfBgAR3wgAEd8KABHfCwAR3wwAEd8OABHfDwAR34oAEd+MABHfjwAR35EAEd+UABHflQAR35YAEd+XABHfmAAR35oAEd+cABHfnQAR354AEd+gABHfoQAR37IAEd+zABHftQAR4DAAEeAyABHgNAAR4DYAEeA5ABHgOgAR4DsAEeA8ABHgPQAR4D8AEeBBABHgQgAR4EMAEeBFABHgRgAR4MEAEeDDABHgxgAR4MgAEeDLABHgzAAR4M0AEeDOABHgzwAR4NEAEeDTABHg1AAR4NUAEeDXABHg2AAR4PEAEeDyABHg8wAR4PUAEeFwABHhcgAR4XQAEeF2ABHheQAR4XoAEeF7ABHhfAAR4X0AEeF/ABHhgQAR4YIAEeGDABHhhQAR4YYAEeIBABHiAwAR4gYAEeIIABHiCwAR4gwAEeINABHiDgAR4g8AEeIRABHiEwAR4hQAEeIVABHiFwAR4hgAEeIzABHiTAAR4lUAEeJYABHiWwAR4mQAEeJnABHiagAR4mwAEeJ/ABHjEgAR4zUAEeNVABHjdQAR43cAEeN5ABHjewAR430AEeOAABHjgQAR44IAEeOFABHjhgAR44gAEeOJABHjiwAR444AEeOPABHjkAAR45MAEeOUABHjmQAR47IAEeO7ABHjvQAR478AEePIABHjywAR484AEePQABHkGQAR5D0AEeRkABHkiAAR5IsAEeSNABHkjwAR5JEAEeSTABHklQAR5JYAEeSZABHksgAR5NMAEeTVABHk1wAR5NkAEeTbABHk3QAR5N8AEeThABHk4wAR5QQAEeUHABHlCgAR5Q0AEeUQABHlEwAR5RYAEeUZABHlHAAR5R4AEeWZABHlmwAR5Z0AEeWfABHlogAR5aMAEeWkABHlpQAR5aYAEeWoABHlqgAR5asAEeWsABHlrgAR5a8AEeYqABHmLAAR5i4AEeYwABHmMwAR5jQAEeY1ABHmNgAR5jcAEeY5ABHmOwAR5jwAEeY9ABHmPwAR5kAAEea7ABHmvQAR5sAAEebCABHmxQAR5sYAEebHABHmyAAR5skAEebLABHmzQAR5s4AEebPABHm0QAR5tIAEebrABHm7AAR5u0AEebvABHnagAR52wAEeduABHncAAR53MAEed0ABHndQAR53YAEed3ABHneQAR53sAEed8ABHnfQAR538AEeeAABHn+wAR5/0AEef/ABHoAQAR6AQAEegFABHoBgAR6AcAEegIABHoCgAR6AwAEegNABHoDgAR6BAAEegRABHojAAR6I4AEeiQABHokgAR6JUAEeiWABHolwAR6JgAEeiZABHomwAR6J0AEeieABHonwAR6KEAEeiiABHpHQAR6R8AEekhABHpIwAR6SYAEeknABHpKAAR6SkAEekqABHpLAAR6S4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AEfreABH63wAR+uAAEfrhABH64wAR+uUAEfrmABH65wAR+ukAEfrqABH7ZQAR+2cAEftpABH7awAR+24AEftvABH7cAAR+3EAEftyABH7dAAR+3YAEft3ABH7eAAR+3oAEft7ABH7jAAR+40AEfuPABH8EgAR/DYAEfxaABH8fQAR/KQAEfzEABH86wAR/RIAEf0yABH9VgAR/XoAEf18ABH9fwAR/YEAEf2DABH9hQAR/YgAEf2LABH9jQAR/Y8AEf2SABH9lAAR/ZYAEf2ZABH9nAAR/Z0AEf2iABH9uwAR/cAAEf3CABH9xwAR/coAEf3MABH+FQAR/jkAEf5gABH+hAAR/ocAEf6JABH+iwAR/o0AEf6PABH+kQAR/pIAEf6VABH+rgAR/tMAEf7VABH+1wAR/tkAEf7bABH+3QAR/t8AEf7hABH+4wAR/uUAEf8KABH/DQAR/xAAEf8TABH/FgAR/xkAEf8cABH/HwAR/yIAEf8lABH/JwAR/6IAEf+kABH/pwAR/6kAEf+sABH/rQAR/64AEf+vABH/sAAR/7IAEf+0ABH/tQAR/7YAEf+4ABH/uQAR/8oAEf/LABH/zQASAEgAEgBKABIATAASAE4AEgBRABIAUgASAFMAEgBUABIAVQASAFcAEgBZABIAWgASAFsAEgBdABIAXgASANkAEgDbABIA3gASAOAAEgDjABIA5AASAOUAEgDmABIA5wASAOkAEgDrABIA7AASAO0AEgDvABIA8AASAQEAEgECABIBBAASAX8AEgGBABIBgwASAYUAEgGIABIBiQASAYoAEgGLABIBjAASAY4AEgGQABIBkQASAZIAEgGUABIBlQASAhAAEgISABICFQASAhcAEgIaABICGwASAhwAEgIdABICHgASAiAAEgIiABICIwASAiQAEgImABICJwASAjgAEgI5ABICOwASArYAEgK4ABICugASArwAEgK/ABICwAASAsEAEgLCABICwwASAsUAEgLHABICyAASAskAEgLLABICzAASA0cAEgNJABIDTAASA04AEgNRABIDUgASA1MAEgNUABIDVQASA1cAEgNZABIDWgASA1sAEgNdABIDXgASA3cAEgN4ABIDeQASA3sAEgP2ABID+AASA/oAEgP8ABID/wASBAAAEgQBABIEAgASBAMAEgQFABIEBwASBAgAEgQJABIECwASBAwAEgSHABIEiQASBIwAEgSOABIEkQASBJIAEgSTABIElAASBJUAEgSXABIEmQASBJoAEgSbABIEnQASBJ4AEgSzABIEzAASBN0AEgTgABIE4wASBOYAEgTpABIE+gASBP0AEgUAABIFAwASBQYAEgUIABIFHgASBSwAEgU/ABIFUQASBeQAEgYHABIGJwASBkcAEgZJABIGSwASBk0AEgZPABIGUgASBlMAEgZUABIGVwASBlgAEgZaABIGWwASBl0AEgZgABIGYQASBmIAEgZlABIGZgASBmsAEgaEABIGjQASBo8AEgaRABIGmgASBp0AEgagABIGogASBusAEgcPABIHNgASB1oAEgddABIHXwASB2EAEgdjABIHZQASB2cAEgdoABIHawASB4QAEgelABIHpwASB6kAEgerABIHrQASB68AEgexABIHswASB7UAEgfWABIH2QASB9wAEgffABIH4gASB+UAEgfoABIH6wASB+4AEgfwABIIawASCG0AEghvABIIcQASCHQAEgh1ABIIdgASCHcAEgh4ABIIegASCHwAEgh9ABIIfgASCIAAEgiBABII/AASCP4AEgkAABIJAgASCQUAEgkGABIJBwASCQgAEgkJABIJCwASCQ0AEgkOABIJDwASCREAEgkSABIJjQASCY8AEgmSABIJlAASCZcAEgmYABIJmQASCZoAEgmbABIJnQASCZ8AEgmgABIJoQASCaMAEgmkABIJvQASCb4AEgm/ABIJwQASCjwAEgo+ABIKQAASCkIAEgpFABIKRgASCkcAEgpIABIKSQASCksAEgpNABIKTgASCk8AEgpRABIKUgASCs0AEgrPABIK0QASCtMAEgrWABIK1wASCtgAEgrZABIK2gASCtwAEgreABIK3wASCuAAEgriABIK4wASC14AEgtgABILYgASC2QAEgtnABILaAASC2kAEgtqABILawASC20AEgtvABILcAASC3EAEgtzABILdAASC+8AEgvxABIL8wASC/UAEgv4ABIL+QASC/oAEgv7ABIL/AASC/4AEgwAABIMAQASDAIAEgwEABIMBQASDIAAEgyCABIMhAASDIYAEgyJABIMigASDIsAEgyMABIMjQASDI8AEgyRABIMkgASDJMAEgyVABIMlgASDN8AEg0DABINKgASDU4AEg1RABINUwASDVUAEg1XABINWQASDVsAEg1cABINXwASDXgAEg2VABINlwASDZkAEg2bABINnQASDZ8AEg2hABINowASDcAAEg3DABINxgASDckAEg3MABINzwASDdIAEg3VABIN1wASDlIAEg5UABIOVgASDlgAEg5bABIOXAASDl0AEg5eABIOXwASDmEAEg5jABIOZAASDmUAEg5nABIOaAASDuMAEg7lABIO5wASDukAEg7sABIO7QASDu4AEg7vABIO8AASDvIAEg70ABIO9QASDvYAEg74ABIO+QASD3QAEg92ABIPeAASD3oAEg99ABIPfgASD38AEg+AABIPgQASD4MAEg+FABIPhgASD4cAEg+JABIPigASEAUAEhAHABIQCgASEAwAEhAPABIQEAASEBEAEhASABIQEwASEBUAEhAXABIQGAASEBkAEhAbABIQHAASEJcAEhCZABIQmwASEJ0AEhCgABIQoQASEKIAEhCjABIQpAASEKYAEhCoABIQqQASEKoAEhCsABIQrQASESgAEhEqABIRLAASES4AEhExABIRMgASETMAEhE0ABIRNQASETcAEhE5ABIROgASETsAEhE9ABIRPgASEbkAEhG7ABIRvQASEb8AEhHCABIRwwASEcQAEhHFABIRxgASEcgAEhHKABIRywASEcwAEhHOABIRzwASEmIAEhKFABISpQASEsUAEhLHABISyQASEssAEhLNABIS0AASEtEAEhLSABIS1QASEtYAEhLYABIS2QASEtsAEhLeABIS3wASEuAAEhLjABIS5AASEu0AEhMGABITDwASExEAEhMTABITHAASEx8AEhMiABITJAASE20AEhORABITuAASE9wAEhPfABIT4QASE+MAEhPlABIT5wASE+kAEhPqABIT7QASFAYAEhQnABIUKQASFCsAEhQtABIULwASFDEAEhQzABIUNQASFDcAEhRYABIUWwASFF4AEhRhABIUZAASFGcAEhRqABIUbQASFHAAEhRyABIU7QASFO8AEhTxABIU8wASFPYAEhT3ABIU+AASFPkAEhT6ABIU/AASFP4AEhT/ABIVAAASFQIAEhUDABIVfgASFYAAEhWCABIVhAASFYcAEhWIABIViQASFYoAEhWLABIVjQASFY8AEhWQABIVkQASFZMAEhWUABIWDwASFhEAEhYUABIWFgASFhkAEhYaABIWGwASFhwAEhYdABIWHwASFiEAEhYiABIWIwASFiUAEhYmABIWPwASFkAAEhZBABIWQwASFr4AEhbAABIWwgASFsQAEhbHABIWyAASFskAEhbKABIWywASFs0AEhbPABIW0AASFtEAEhbTABIW1AASF08AEhdRABIXUwASF1UAEhdYABIXWQASF1oAEhdbABIXXAASF14AEhdgABIXYQASF2IAEhdkABIXZQASF+AAEhfiABIX5AASF+YAEhfpABIX6gASF+sAEhfsABIX7QASF+8AEhfxABIX8gASF/MAEhf1ABIX9gASGHEAEhhzABIYdQASGHcAEhh6ABIYewASGHwAEhh9ABIYfgASGIAAEhiCABIYgwASGIQAEhiGABIYhwASGQIAEhkEABIZBgASGQgAEhkLABIZDAASGQ0AEhkOABIZDwASGREAEhkTABIZFAASGRUAEhkXABIZGAASGWEAEhmFABIZrAASGdAAEhnTABIZ1QASGdcAEhnZABIZ2wASGd0AEhneABIZ4QASGfoAEhoXABIaGQASGhsAEhodABIaHwASGiEAEhojABIaJQASGkIAEhpFABIaSAASGksAEhpOABIaUQASGlQAEhpXABIaWQASGtQAEhrWABIa2AASGtoAEhrdABIa3gASGt8AEhrgABIa4QASGuMAEhrlABIa5gASGucAEhrpABIa6gASG2UAEhtnABIbaQASG2sAEhtuABIbbwASG3AAEhtxABIbcgASG3QAEht2ABIbdwASG3gAEht6ABIbewASG/YAEhv4ABIb+gASG/wAEhv/ABIcAAASHAEAEhwCABIcAwASHAUAEhwHABIcCAASHAkAEhwLABIcDAASHIcAEhyJABIciwASHI0AEhyQABIckQASHJIAEhyTABIclAASHJYAEhyYABIcmQASHJoAEhycABIcnQASHRgAEh0aABIdHAASHR4AEh0hABIdIgASHSMAEh0kABIdJQASHScAEh0pABIdKgASHSsAEh0tABIdLgASHakAEh2rABIdrgASHbAAEh2zABIdtAASHbUAEh22ABIdtwASHbkAEh27ABIdvAASHb0AEh2/ABIdwAASHd8AEh5aABIeXAASHl4AEh5gABIeYwASHmQAEh5lABIeZgASHmcAEh5pABIeawASHmwAEh5tABIebwASHnAAEh8DABIfJgASH0YAEh9mABIfaAASH2oAEh9sABIfbgASH3EAEh9yABIfcwASH3YAEh93ABIfeQASH3oAEh98ABIffwASH4AAEh+BABIfhAASH4UAEh+KABIfowASH6wAEh+uABIfsAASH7kAEh+8ABIfvwASH8EAEiAKABIgLgASIFUAEiB5ABIgfAASIH4AEiCAABIgggASIIQAEiCGABIghwASIIoAEiCjABIgxAASIMYAEiDIABIgygASIMwAEiDOABIg0AASINIAEiDUABIg9QASIPgAEiD7ABIg/gASIQEAEiEEABIhBwASIQoAEiENABIhDwASIYoAEiGMABIhjgASIZAAEiGTABIhlAASIZUAEiGWABIhlwASIZkAEiGbABIhnAASIZ0AEiGfABIhoAASIhsAEiIdABIiHwASIiEAEiIkABIiJQASIiYAEiInABIiKAASIioAEiIsABIiLQASIi4AEiIwABIiMQASIqwAEiKuABIisQASIrMAEiK2ABIitwASIrgAEiK5ABIiugASIrwAEiK+ABIivwASIsAAEiLCABIiwwASItwAEiLdABIi3gASIuAAEiNbABIjXQASI18AEiNhABIjZAASI2UAEiNmABIjZwASI2gAEiNqABIjbAASI20AEiNuABIjcAASI3EAEiPsABIj7gASI/AAEiPyABIj9QASI/YAEiP3ABIj+AASI/kAEiP7ABIj/QASI/4AEiP/ABIkAQASJAIAEiR9ABIkfwASJIEAEiSDABIkhgASJIcAEiSIABIkiQASJIoAEiSMABIkjgASJI8AEiSQABIkkgASJJMAEiUOABIlEAASJRIAEiUUABIlFwASJRgAEiUZABIlGgASJRsAEiUdABIlHwASJSAAEiUhABIlIwASJSQAEiWfABIloQASJaMAEiWlABIlqAASJakAEiWqABIlqwASJawAEiWuABIlsAASJbEAEiWyABIltAASJbUAEiX+ABImIgASJkkAEiZtABImcAASJnIAEiZ0ABImdgASJngAEiZ6ABImewASJn4AEiaXABImtAASJrYAEia4ABImugASJrwAEia+ABImwAASJsIAEibfABIm4gASJuUAEiboABIm6wASJu4AEibxABIm9AASJvYAEidxABIncwASJ3UAEid3ABInegASJ3sAEid8ABInfQASJ34AEieAABInggASJ4MAEieEABInhgASJ4cAEigCABIoBAASKAYAEigIABIoCwASKAwAEigNABIoDgASKA8AEigRABIoEwASKBQAEigVABIoFwASKBgAEiiTABIolQASKJcAEiiZABIonAASKJ0AEiieABIonwASKKAAEiiiABIopAASKKUAEiimABIoqAASKKkAEikkABIpJgASKSkAEikrABIpLgASKS8AEikwABIpMQASKTIAEik0ABIpNgASKTcAEik4ABIpOgASKTsAEim2ABIpuAASKboAEim8ABIpvwASKcAAEinBABIpwgASKcMAEinFABIpxwASKcgAEinJABIpywASKcwAEipHABIqSQASKksAEipNABIqUAASKlEAEipSABIqUwASKlQAEipWABIqWAASKlkAEipaABIqXAASKl0AEirYABIq2gASKtwAEireABIq4QASKuIAEirjABIq5AASKuUAEirnABIq6QASKuoAEirrABIq7QASKu4AEiuBABIrpAASK8QAEivkABIr5gASK+gAEivqABIr7AASK+8AEivwABIr8QASK/QAEiv1ABIr9wASK/gAEiv6ABIr/QASK/4AEiv/ABIsAgASLAMAEiwIABIsIQASLCoAEiwsABIsLgASLDcAEiw6ABIsPQASLD8AEiyIABIsrAASLNMAEiz3ABIs+gASLPwAEiz+ABItAAASLQIAEi0EABItBQASLQgAEi0hABItQgASLUQAEi1GABItSAASLUoAEi1MABItTgASLVAAEi1SABItcwASLXYAEi15ABItfAASLX8AEi2CABIthQASLYgAEi2LABItjQASLggAEi4KABIuDAASLg4AEi4RABIuEgASLhMAEi4UABIuFQASLhcAEi4ZABIuGgASLhsAEi4dABIuHgASLpkAEi6bABIunQASLp8AEi6iABIuowASLqQAEi6lABIupgASLqgAEi6qABIuqwASLqwAEi6uABIurwASLyoAEi8sABIvLwASLzEAEi80ABIvNQASLzYAEi83ABIvOAASLzoAEi88ABIvPQASLz4AEi9AABIvQQASL1oAEi9bABIvXAASL14AEi/ZABIv2wASL90AEi/fABIv4gASL+MAEi/kABIv5QASL+YAEi/oABIv6gASL+sAEi/sABIv7gASL+8AEjBqABIwbAASMG4AEjBwABIwcwASMHQAEjB1ABIwdgASMHcAEjB5ABIwewASMHwAEjB9ABIwfwASMIAAEjD7ABIw/QASMP8AEjEBABIxBAASMQUAEjEGABIxBwASMQgAEjEKABIxDAASMQ0AEjEOABIxEAASMREAEjGMABIxjgASMZAAEjGSABIxlQASMZYAEjGXABIxmAASMZkAEjGbABIxnQASMZ4AEjGfABIxoQASMaIAEjIdABIyHwASMiEAEjIjABIyJgASMicAEjIoABIyKQASMioAEjIsABIyLgASMi8AEjIwABIyMgASMjMAEjJ8ABIyoAASMscAEjLrABIy7gASMvAAEjLyABIy9AASMvYAEjL4ABIy+QASMvwAEjMVABIzMgASMzQAEjM2ABIzOAASMzoAEjM8ABIzPgASM0AAEjNdABIzYAASM2MAEjNmABIzaQASM2wAEjNvABIzcgASM3QAEjPvABIz8QASM/MAEjP1ABIz+AASM/kAEjP6ABIz+wASM/wAEjP+ABI0AAASNAEAEjQCABI0BAASNAUAEjSAABI0ggASNIQAEjSGABI0iQASNIoAEjSLABI0jAASNI0AEjSPABI0kQASNJIAEjSTABI0lQASNJYAEjURABI1EwASNRUAEjUXABI1GgASNRsAEjUcABI1HQASNR4AEjUgABI1IgASNSMAEjUkABI1JgASNScAEjWiABI1pAASNacAEjWpABI1rAASNa0AEjWuABI1rwASNbAAEjWyABI1tAASNbUAEjW2ABI1uAASNbkAEjY0ABI2NgASNjgAEjY6ABI2PQASNj4AEjY/ABI2QAASNkEAEjZDABI2RQASNkYAEjZHABI2SQASNkoAEjbFABI2xwASNskAEjbLABI2zgASNs8AEjbQABI20QASNtIAEjbUABI21gASNtcAEjbYABI22gASNtsAEjdWABI3WAASN1oAEjdcABI3XwASN2AAEjdhABI3YgASN2MAEjdlABI3ZwASN2gAEjdpABI3awASN2wAEjd9ABI3fgASN4AAEjgDABI4JwASOEsAEjhuABI4lQASOLUAEjjcABI5AwASOSMAEjlHABI5awASOW0AEjlwABI5cgASOXQAEjl2ABI5eQASOXwAEjl+ABI5gAASOYMAEjmFABI5hwASOYoAEjmNABI5jgASOZMAEjmsABI5sQASObMAEjm4ABI5uwASOb0AEjoGABI6KgASOlEAEjp1ABI6eAASOnoAEjp8ABI6fgASOoAAEjqCABI6gwASOoYAEjqfABI6xAASOsYAEjrIABI6ygASOswAEjrOABI60AASOtIAEjrUABI61gASOvsAEjr+ABI7AQASOwQAEjsHABI7CgASOw0AEjsQABI7EwASOxYAEjsYABI7kwASO5UAEjuYABI7mgASO50AEjueABI7nwASO6AAEjuhABI7owASO6UAEjumABI7pwASO6kAEjuqABI7uwASO7wAEju+ABI8OQASPDsAEjw9ABI8PwASPEIAEjxDABI8RAASPEUAEjxGABI8SAASPEoAEjxLABI8TAASPE4AEjxPABI8ygASPMwAEjzPABI80QASPNQAEjzVABI81gASPNcAEjzYABI82gASPNwAEjzdABI83gASPOAAEjzhABI88gASPPcAEjz6ABI8/AASPQ0AEj0SABI9FQASPRcAEj2SABI9lAASPZYAEj2YABI9mwASPZwAEj2dABI9ngASPZ8AEj2hABI9owASPaQAEj2lABI9pwASPagAEj4jABI+JQASPigAEj4qABI+LQASPi4AEj4vABI+MAASPjEAEj4zABI+NQASPjYAEj43ABI+OQASPjoAEj5LABI+TAASPk4AEj7JABI+ywASPs0AEj7PABI+0gASPtMAEj7UABI+1QASPtYAEj7YABI+2gASPtsAEj7cABI+3gASPt8AEj9aABI/XAASP18AEj9hABI/ZAASP2UAEj9mABI/ZwASP2gAEj9qABI/bAASP20AEj9uABI/cAASP3EAEj+KABI/iwASP4wAEj+OABJACQASQAsAEkANABJADwASQBIAEkATABJAFAASQBUAEkAWABJAGAASQBoAEkAbABJAHAASQB4AEkAfABJAmgASQJwAEkCfABJAoQASQKQAEkClABJApgASQKcAEkCoABJAqgASQKwAEkCtABJArgASQLAAEkCxABJAwwASQNwAEkDpABJA7AASQO8AEkDyABJA/wASQQIAEkEFABJBCAASQQoAEkEeABJBLAASQb8AEkHiABJCAgASQiIAEkIkABJCJgASQigAEkIqABJCLQASQi4AEkIvABJCMgASQjMAEkI1ABJCNgASQjgAEkI7ABJCPAASQj0AEkJAABJCQQASQkYAEkJfABJCaAASQmoAEkJsABJCdQASQngAEkJ7ABJCfQASQsYAEkLqABJDEQASQzUAEkM4ABJDOgASQzwAEkM+ABJDQAASQ0IAEkNDABJDRgASQ18AEkOAABJDggASQ4QAEkOGABJDiAASQ4oAEkOMABJDjgASQ5AAEkOxABJDtAASQ7cAEkO6ABJDvQASQ8AAEkPDABJDxgASQ8kAEkPLABJERgASREgAEkRKABJETAASRE8AEkRQABJEUQASRFIAEkRTABJEVQASRFcAEkRYABJEWQASRFsAEkRcABJE1wASRNkAEkTbABJE3QASROAAEkThABJE4gASROMAEkTkABJE5gASROgAEkTpABJE6gASROwAEkTtABJFaAASRWoAEkVtABJFbwASRXIAEkVzABJFdAASRXUAEkV2ABJFeAASRXoAEkV7ABJFfAASRX4AEkV/ABJFmAASRZkAEkWaABJFnAASRhcAEkYZABJGGwASRh0AEkYgABJGIQASRiIAEkYjABJGJAASRiYAEkYoABJGKQASRioAEkYsABJGLQASRqgAEkaqABJGrAASRq4AEkaxABJGsgASRrMAEka0ABJGtQASRrcAEka5ABJGugASRrsAEka9ABJGvgASRzkAEkc7ABJHPQASRz8AEkdCABJHQwASR0QAEkdFABJHRgASR0gAEkdKABJHSwASR0wAEkdOABJHTwASR8oAEkfMABJHzgASR9AAEkfTABJH1AASR9UAEkfWABJH1wASR9kAEkfbABJH3AASR90AEkffABJH4AASSFsAEkhdABJIXwASSGEAEkhkABJIZQASSGYAEkhnABJIaAASSGoAEkhsABJIbQASSG4AEkhwABJIcQASSLoAEkjeABJJBQASSSkAEkksABJJLgASSTAAEkkyABJJNAASSTYAEkk3ABJJOgASSVMAEklwABJJcgASSXQAEkl2ABJJeAASSXoAEkl8ABJJfgASSZsAEkmeABJJoQASSaQAEkmnABJJqgASSa0AEkmwABJJsgASSi0AEkovABJKMQASSjMAEko2ABJKNwASSjgAEko5ABJKOgASSjwAEko+ABJKPwASSkAAEkpCABJKQwASSr4AEkrAABJKwgASSsQAEkrHABJKyAASSskAEkrKABJKywASSs0AEkrPABJK0AASStEAEkrTABJK1AASS08AEktRABJLUwASS1UAEktYABJLWQASS1oAEktbABJLXAASS14AEktgABJLYQASS2IAEktkABJLZQASS+AAEkviABJL5QASS+cAEkvqABJL6wASS+wAEkvtABJL7gASS/AAEkvyABJL8wASS/QAEkv2ABJL9wASTHIAEkx0ABJMdgASTHgAEkx7ABJMfAASTH0AEkx+ABJMfwASTIEAEkyDABJMhAASTIUAEkyHABJMiAASTQMAEk0FABJNBwASTQkAEk0MABJNDQASTQ4AEk0PABJNEAASTRIAEk0UABJNFQASTRYAEk0YABJNGQASTZQAEk2WABJNmAASTZoAEk2dABJNngASTZ8AEk2gABJNoQASTaMAEk2lABJNpgASTacAEk2pABJNqgASTj0AEk5gABJOgAASTqAAEk6iABJOpAASTqYAEk6oABJOqwASTqwAEk6tABJOsAASTrEAEk6zABJOtAASTrYAEk65ABJOugASTrsAEk6+ABJOvwASTsgAEk7hABJO6gASTuwAEk7uABJO9wASTvoAEk79ABJO/wAST0gAEk9sABJPkwAST7cAEk+6ABJPvAAST74AEk/AABJPwgAST8QAEk/FABJPyAAST+EAElACABJQBAASUAYAElAIABJQCgASUAwAElAOABJQEAASUBIAElAzABJQNgASUDkAElA8ABJQPwASUEIAElBFABJQSAASUEsAElBNABJQyAASUMoAElDMABJQzgASUNEAElDSABJQ0wASUNQAElDVABJQ1wASUNkAElDaABJQ2wASUN0AElDeABJRWQASUVsAElFdABJRXwASUWIAElFjABJRZAASUWUAElFmABJRaAASUWoAElFrABJRbAASUW4AElFvABJR6gASUewAElHvABJR8QASUfQAElH1ABJR9gASUfcAElH4ABJR+gASUfwAElH9ABJR/gASUgAAElIBABJSGgASUhsAElIcABJSHgASUpkAElKbABJSnQASUp8AElKiABJSowASUqQAElKlABJSpgASUqgAElKqABJSqwASUqwAElKuABJSrwASUyoAElMsABJTLgASUzAAElMzABJTNAASUzUAElM2ABJTNwASUzkAElM7ABJTPAASUz0AElM/ABJTQAASU7sAElO9ABJTvwASU8EAElPEABJTxQASU8YAElPHABJTyAASU8oAElPMABJTzQASU84AElPQABJT0QASVEwAElROABJUUAASVFIAElRVABJUVgASVFcAElRYABJUWQASVFsAElRdABJUXgASVF8AElRhABJUYgASVN0AElTfABJU4QASVOMAElTmABJU5wASVOgAElTpABJU6gASVOwAElTuABJU7wASVPAAElTyABJU8wASVTwAElVgABJVhwASVasAElWuABJVsAASVbIAElW0ABJVtgASVbgAElW5ABJVvAASVdUAElXyABJV9AASVfYAElX4ABJV+gASVfwAElX+ABJWAAASVh0AElYgABJWIwASViYAElYpABJWLAASVi8AElYyABJWNAASVq8AElaxABJWswASVrUAEla4ABJWuQASVroAEla7ABJWvAASVr4AElbAABJWwQASVsIAElbEABJWxQASV0AAEldCABJXRAASV0YAEldJABJXSgASV0sAEldMABJXTQASV08AEldRABJXUgASV1MAEldVABJXVgASV9EAElfTABJX1QASV9cAElfaABJX2wASV9wAElfdABJX3gASV+AAElfiABJX4wASV+QAElfmABJX5wASWGIAElhkABJYZwASWGkAElhsABJYbQASWG4AElhvABJYcAASWHIAElh0ABJYdQASWHYAElh4ABJYeQASWPQAElj2ABJY+AASWPoAElj9ABJY/gASWP8AElkAABJZAQASWQMAElkFABJZBgASWQcAElkJABJZCgASWYUAElmHABJZiQASWYsAElmOABJZjwASWZAAElmRABJZkgASWZQAElmWABJZlwASWZgAElmaABJZmwASWhYAEloYABJaGgASWhwAElofABJaIAASWiEAEloiABJaIwASWiUAElonABJaKAASWikAElorABJaLAASWr8AElriABJbAgASWyIAElskABJbJgASWygAElsqABJbLQASWy4AElsvABJbMgASWzMAEls1ABJbNgASWzgAEls7ABJbPAASWz0AEltAABJbQQASW0YAEltfABJbaAASW2oAEltsABJbdQASW3gAElt7ABJbfQASW8YAElvqABJcEQASXDUAElw4ABJcOgASXDwAElw+ABJcQAASXEIAElxDABJcRgASXF8AElyAABJcggASXIQAElyGABJciAASXIoAElyMABJcjgASXJAAElyxABJctAASXLcAEly6ABJcvQASXMAAElzDABJcxgASXMkAElzLABJdRgASXUgAEl1KABJdTAASXU8AEl1QABJdUQASXVIAEl1TABJdVQASXVcAEl1YABJdWQASXVsAEl1cABJd1wASXdkAEl3bABJd3QASXeAAEl3hABJd4gASXeMAEl3kABJd5gASXegAEl3pABJd6gASXewAEl3tABJeaAASXmoAEl5tABJebwASXnIAEl5zABJedAASXnUAEl52ABJeeAASXnoAEl57ABJefAASXn4AEl5/ABJemAASXpkAEl6aABJenAASXxcAEl8ZABJfGwASXx0AEl8gABJfIQASXyIAEl8jABJfJAASXyYAEl8oABJfKQASXyoAEl8sABJfLQASX6gAEl+qABJfrAASX64AEl+xABJfsgASX7MAEl+0ABJftQASX7cAEl+5ABJfugASX7sAEl+9ABJfvgASYDkAEmA7ABJgPQASYD8AEmBCABJgQwASYEQAEmBFABJgRgASYEgAEmBKABJgSwASYEwAEmBOABJgTwASYMoAEmDMABJgzgASYNAAEmDTABJg1AASYNUAEmDWABJg1wASYNkAEmDbABJg3AASYN0AEmDfABJg4AASYVsAEmFdABJhXwASYWEAEmFkABJhZQASYWYAEmFnABJhaAASYWoAEmFsABJhbQASYW4AEmFwABJhcQASYboAEmHeABJiBQASYikAEmIsABJiLgASYjAAEmIyABJiNAASYjYAEmI3ABJiOgASYlMAEmJwABJicgASYnQAEmJ2ABJieAASYnoAEmJ8ABJifgASYpsAEmKeABJioQASYqQAEmKnABJiqgASYq0AEmKwABJisgASYy0AEmMvABJjMQASYzMAEmM2ABJjNwASYzgAEmM5ABJjOgASYzwAEmM+ABJjPwASY0AAEmNCABJjQwASY74AEmPAABJjwgASY8QAEmPHABJjyAASY8kAEmPKABJjywASY80AEmPPABJj0AASY9EAEmPTABJj1AASZE8AEmRRABJkUwASZFUAEmRYABJkWQASZFoAEmRbABJkXAASZF4AEmRgABJkYQASZGIAEmRkABJkZQASZOAAEmTiABJk5QASZOcAEmTqABJk6wASZOwAEmTtABJk7gASZPAAEmTyABJk8wASZPQAEmT2ABJk9wASZXIAEmV0ABJldgASZXgAEmV7ABJlfAASZX0AEmV+ABJlfwASZYEAEmWDABJlhAASZYUAEmWHABJliAASZgMAEmYFABJmBwASZgkAEmYMABJmDQASZg4AEmYPABJmEAASZhIAEmYUABJmFQASZhYAEmYYABJmGQASZpQAEmaWABJmmAASZpoAEmadABJmngASZp8AEmagABJmoQASZqMAEmalABJmpgASZqcAEmapABJmqgASZrsAEma8ABJmvgASZ0EAEmdlABJniQASZ6wAEmfTABJn8wASaBoAEmhBABJoYQASaIUAEmipABJoqwASaK4AEmiwABJosgASaLQAEmi3ABJougASaLwAEmi+ABJowQASaMMAEmjFABJoyAASaMsAEmjMABJo0QASaOoAEmjvABJo8QASaPYAEmj5ABJo+wASaUQAEmloABJpjwASabMAEmm2ABJpuAASaboAEmm8ABJpvgASacAAEmnBABJpxAASad0AEmoCABJqBAASagYAEmoIABJqCgASagwAEmoOABJqEAASahIAEmoUABJqOQASajwAEmo/ABJqQgASakUAEmpIABJqSwASak4AEmpRABJqVAASalYAEmrRABJq0wASatYAEmrYABJq2wASatwAEmrdABJq3gASat8AEmrhABJq4wASauQAEmrlABJq5wASaugAEmr5ABJq+gASavwAEmt3ABJreQASa3sAEmt9ABJrgAASa4EAEmuCABJrgwASa4QAEmuGABJriAASa4kAEmuKABJrjAASa40AEmwIABJsCgASbA0AEmwPABJsEgASbBMAEmwUABJsFQASbBYAEmwYABJsGgASbBsAEmwcABJsHgASbB8AEmwwABJsNQASbDgAEmw6ABJsSwASbFAAEmxTABJsVQASbFoAEmzVABJs1wASbNkAEmzbABJs3gASbN8AEmzgABJs4QASbOIAEmzkABJs5gASbOcAEmzoABJs6gASbOsAEm1mABJtaAASbWsAEm1tABJtcAASbXEAEm1yABJtcwASbXQAEm12ABJteAASbXkAEm16ABJtfAASbX0AEm2OABJtjwASbZEAEm4MABJuDgASbhAAEm4SABJuFQASbhYAEm4XABJuGAASbhkAEm4bABJuHQASbh4AEm4fABJuIQASbiIAEm6dABJunwASbqIAEm6kABJupwASbqgAEm6pABJuqgASbqsAEm6tABJurwASbrAAEm6xABJuswASbrQAEm7NABJuzgASbs8AEm7RABJvTAASb04AEm9QABJvUgASb1UAEm9WABJvVwASb1gAEm9ZABJvWwASb10AEm9eABJvXwASb2EAEm9iABJv3QASb98AEm/iABJv5AASb+cAEm/oABJv6QASb+oAEm/rABJv7QASb+8AEm/wABJv8QASb/MAEm/0ABJwDAAScCUAEnAuABJwMQAScDQAEnA9ABJwQAAScEMAEnBFABJwWAAScOsAEnEOABJxLgAScU4AEnFQABJxUgAScVQAEnFWABJxWQAScVoAEnFbABJxXgAScV8AEnFhABJxYgAScWQAEnFnABJxaAAScWkAEnFsABJxbQAScXIAEnGLABJxlAAScZYAEnGYABJxoQAScaQAEnGnABJxqQAScfIAEnIWABJyPQAScmEAEnJkABJyZgAScmgAEnJqABJybAAScm4AEnJvABJycgAScosAEnKsABJyrgAScrAAEnKyABJytAAScrYAEnK4ABJyugAScrwAEnLdABJy4AAScuMAEnLmABJy6QAScuwAEnLvABJy8gAScvUAEnL3ABJzcgASc3QAEnN2ABJzeAASc3sAEnN8ABJzfQASc34AEnN/ABJzgQASc4MAEnOEABJzhQASc4cAEnOIABJ0AwASdAUAEnQHABJ0CQASdAwAEnQNABJ0DgASdA8AEnQQABJ0EgASdBQAEnQVABJ0FgASdBgAEnQZABJ0lAASdJYAEnSZABJ0mwASdJ4AEnSfABJ0oAASdKEAEnSiABJ0pAASdKYAEnSnABJ0qAASdKoAEnSrABJ0xAASdMUAEnTGABJ0yAASdUMAEnVFABJ1RwASdUkAEnVMABJ1TQASdU4AEnVPABJ1UAASdVIAEnVUABJ1VQASdVYAEnVYABJ1WQASddQAEnXWABJ12AASddoAEnXdABJ13gASdd8AEnXgABJ14QASdeMAEnXlABJ15gASdecAEnXpABJ16gASdmUAEnZnABJ2aQASdmsAEnZuABJ2bwASdnAAEnZxABJ2cgASdnQAEnZ2ABJ2dwASdngAEnZ6ABJ2ewASdvYAEnb4ABJ2+gASdvwAEnb/ABJ3AAASdwEAEncCABJ3AwASdwUAEncHABJ3CAASdwkAEncLABJ3DAASd4cAEneJABJ3iwASd40AEneQABJ3kQASd5IAEneTABJ3lAASd5YAEneYABJ3mQASd5oAEnecABJ3nQASd+YAEngKABJ4MQASeFUAEnhYABJ4WgASeFwAEnheABJ4YAASeGIAEnhjABJ4ZgASeH8AEnicABJ4ngASeKAAEniiABJ4pAASeKYAEnioABJ4qgASeMcAEnjKABJ4zQASeNAAEnjTABJ41gASeNkAEnjcABJ43gASeVkAEnlbABJ5XQASeV8AEnliABJ5YwASeWQAEnllABJ5ZgASeWgAEnlqABJ5awASeWwAEnluABJ5bwASeeoAEnnsABJ57gASefAAEnnzABJ59AASefUAEnn2ABJ59wASefkAEnn7ABJ5/AASef0AEnn/ABJ6AAASensAEnp9ABJ6fwASeoEAEnqEABJ6hQASeoYAEnqHABJ6iAASeooAEnqMABJ6jQASeo4AEnqQABJ6kQASewwAEnsOABJ7EAASexIAEnsVABJ7FgASexcAEnsYABJ7GQASexsAEnsdABJ7HgASex8AEnshABJ7IgASe50AEnufABJ7oQASe6MAEnumABJ7pwASe6gAEnupABJ7qgASe6wAEnuuABJ7rwASe7AAEnuyABJ7swASfC4AEnwwABJ8MwASfDUAEnw4ABJ8OQASfDoAEnw7ABJ8PAASfD4AEnxAABJ8QQASfEIAEnxEABJ8RQASfF0AEnzYABJ82gASfNwAEnzeABJ84QASfOIAEnzjABJ85AASfOUAEnznABJ86QASfOoAEnzrABJ87QASfO4AEn2BABJ9pAASfcQAEn3kABJ95gASfegAEn3qABJ97AASfe8AEn3wABJ98QASffQAEn31ABJ99wASffgAEn36ABJ9/QASff4AEn3/ABJ+AgASfgMAEn4MABJ+JQASfi4AEn4wABJ+MgASfjsAEn4+ABJ+QQASfkMAEn6MABJ+sAASftcAEn77ABJ+/gASfwAAEn8CABJ/BAASfwYAEn8IABJ/CQASfwwAEn8lABJ/RgASf0gAEn9KABJ/TAASf04AEn9QABJ/UgASf1QAEn9WABJ/dwASf3oAEn99ABJ/gAASf4MAEn+GABJ/iQASf4wAEn+PABJ/kQASgAwAEoAOABKAEAASgBIAEoAVABKAFgASgBcAEoAYABKAGQASgBsAEoAdABKAHgASgB8AEoAhABKAIgASgJ0AEoCfABKAoQASgKMAEoCmABKApwASgKgAEoCpABKAqgASgKwAEoCuABKArwASgLAAEoCyABKAswASgS4AEoEwABKBMwASgTUAEoE4ABKBOQASgToAEoE7ABKBPAASgT4AEoFAABKBQQASgUIAEoFEABKBRQASgV4AEoFfABKBYAASgWIAEoHdABKB3wASgeEAEoHjABKB5gASgecAEoHoABKB6QASgeoAEoHsABKB7gASge8AEoHwABKB8gASgfMAEoJuABKCcAASgnIAEoJ0ABKCdwASgngAEoJ5ABKCegASgnsAEoJ9ABKCfwASgoAAEoKBABKCgwASgoQAEoL/ABKDAQASgwMAEoMFABKDCAASgwkAEoMKABKDCwASgwwAEoMOABKDEAASgxEAEoMSABKDFAASgxUAEoOQABKDkgASg5QAEoOWABKDmQASg5oAEoObABKDnAASg50AEoOfABKDoQASg6IAEoOjABKDpQASg6YAEoQhABKEIwAShCUAEoQnABKEKgAShCsAEoQsABKELQAShC4AEoQwABKEMgAShDMAEoQ0ABKENgAShDcAEoSAABKEpAAShMsAEoTvABKE8gAShPQAEoT2ABKE+AAShPoAEoT8ABKE/QAShQAAEoUZABKFNgAShTgAEoU6ABKFPAAShT4AEoVAABKFQgAShUQAEoVhABKFZAAShWcAEoVqABKFbQAShXAAEoVzABKFdgAShXgAEoXzABKF9QAShfcAEoX5ABKF/AAShf0AEoX+ABKF/wAShgAAEoYCABKGBAAShgUAEoYGABKGCAAShgkAEoaEABKGhgAShogAEoaKABKGjQASho4AEoaPABKGkAAShpEAEoaTABKGlQAShpYAEoaXABKGmQAShpoAEocVABKHFwAShxkAEocbABKHHgAShx8AEocgABKHIQAShyIAEockABKHJgAShycAEocoABKHKgAShysAEoemABKHqAASh6sAEoetABKHsAASh7EAEoeyABKHswASh7QAEoe2ABKHuAASh7kAEoe6ABKHvAASh70AEog4ABKIOgASiDwAEog+ABKIQQASiEIAEohDABKIRAASiEUAEohHABKISQASiEoAEohLABKITQASiE4AEojJABKIywASiM0AEojPABKI0gASiNMAEojUABKI1QASiNYAEojYABKI2gASiNsAEojcABKI3gASiN8AEolaABKJXAASiV4AEolgABKJYwASiWQAEollABKJZgASiWcAEolpABKJawASiWwAEoltABKJbwASiXAAEomBABKJggASiYQAEooHABKKKwASik8AEopyABKKmQASirkAEorgABKLBwASiycAEotLABKLbwASi3EAEot0ABKLdgASi3gAEot6ABKLfQASi4AAEouCABKLhAASi4cAEouJABKLiwASi44AEouRABKLkgASi5cAEouwABKLtQASi7cAEou8ABKLvwASi8EAEowKABKMLgASjFUAEox5ABKMfAASjH4AEoyAABKMggASjIQAEoyGABKMhwASjIoAEoyjABKMyAASjMoAEozMABKMzgASjNAAEozSABKM1AASjNYAEozYABKM2gASjP8AEo0CABKNBQASjQgAEo0LABKNDgASjREAEo0UABKNFwASjRoAEo0cABKNlwASjZkAEo2cABKNngASjaEAEo2iABKNowASjaQAEo2lABKNpwASjakAEo2qABKNqwASja0AEo2uABKNvwASjcAAEo3CABKOPQASjj8AEo5BABKOQwASjkYAEo5HABKOSAASjkkAEo5KABKOTAASjk4AEo5PABKOUAASjlIAEo5TABKOzgASjtAAEo7TABKO1QASjtgAEo7ZABKO2gASjtsAEo7cABKO3gASjuAAEo7hABKO4gASjuQAEo7lABKO9gASjvcAEo75ABKPdAASj3YAEo94ABKPegASj30AEo9+ABKPfwASj4AAEo+BABKPgwASj4UAEo+GABKPhwASj4kAEo+KABKQBQASkAcAEpAKABKQDAASkA8AEpAQABKQEQASkBIAEpATABKQFQASkBcAEpAYABKQGQASkBsAEpAcABKQLQASkC4AEpAwABKQqwASkK0AEpCvABKQsQASkLQAEpC1ABKQtgASkLcAEpC4ABKQugASkLwAEpC9ABKQvgASkMAAEpDBABKRPAASkT4AEpFBABKRQwASkUYAEpFHABKRSAASkUkAEpFKABKRTAASkU4AEpFPABKRUAASkVIAEpFTABKRbAASkW0AEpFuABKRcAASkesAEpHtABKR7wASkfEAEpH0ABKR9QASkfYAEpH3ABKR+AASkfoAEpH8ABKR/QASkf4AEpIAABKSAQASknwAEpJ+ABKSgQASkoMAEpKGABKShwASkogAEpKJABKSigASkowAEpKOABKSjwASkpAAEpKSABKSkwASkqEAEpK6ABKSywASks4AEpLRABKS1AASktcAEpLoABKS6wASku4AEpLxABKS9AASkvYAEpL8ABKTBQASkxQAEpMaABKTrQASk9AAEpPwABKUEAASlBIAEpQUABKUFgASlBgAEpQbABKUHAASlB0AEpQgABKUIQASlCMAEpQkABKUJgASlCkAEpQqABKUKwASlC4AEpQvABKUNAASlE0AEpRWABKUWAASlFoAEpRjABKUZgASlGkAEpRrABKUtAASlNgAEpT/ABKVIwASlSYAEpUoABKVKgASlSwAEpUuABKVMAASlTEAEpU0ABKVTQASlW4AEpVwABKVcgASlXQAEpV2ABKVeAASlXoAEpV8ABKVfgASlZ8AEpWiABKVpQASlagAEpWrABKVrgASlbEAEpW0ABKVtwASlbkAEpY0ABKWNgASljgAEpY6ABKWPQASlj4AEpY/ABKWQAASlkEAEpZDABKWRQASlkYAEpZHABKWSQASlkoAEpbFABKWxwASlskAEpbLABKWzgASls8AEpbQABKW0QASltIAEpbUABKW1gASltcAEpbYABKW2gASltsAEpdWABKXWAASl1sAEpddABKXYAASl2EAEpdiABKXYwASl2QAEpdmABKXaAASl2kAEpdqABKXbAASl20AEpeGABKXhwASl4gAEpeKABKYBQASmAcAEpgJABKYCwASmA4AEpgPABKYEAASmBEAEpgSABKYFAASmBYAEpgXABKYGAASmBoAEpgbABKYlgASmJgAEpiaABKYnAASmJ8AEpigABKYoQASmKIAEpijABKYpQASmKcAEpioABKYqQASmKsAEpisABKZJwASmSkAEpkrABKZLQASmTAAEpkxABKZMgASmTMAEpk0ABKZNgASmTgAEpk5ABKZOgASmTwAEpk9ABKZuAASmboAEpm8ABKZvgASmcEAEpnCABKZwwASmcQAEpnFABKZxwASmckAEpnKABKZywASmc0AEpnOABKaSQASmksAEppNABKaTwASmlIAEppTABKaVAASmlUAEppWABKaWAASmloAEppbABKaXAASml4AEppfABKaqAASmswAEprzABKbFwASmxoAEpscABKbHgASmyAAEpsiABKbJAASmyUAEpsoABKbQQASm14AEptgABKbYgASm2QAEptmABKbaAASm2oAEptsABKbiQASm4wAEpuPABKbkgASm5UAEpuYABKbmwASm54AEpugABKcGwASnB0AEpwfABKcIQASnCQAEpwlABKcJgASnCcAEpwoABKcKgASnCwAEpwtABKcLgASnDAAEpwxABKcrAASnK4AEpywABKcsgASnLUAEpy2ABKctwASnLgAEpy5ABKcuwASnL0AEpy+ABKcvwASnMEAEpzCABKdPQASnT8AEp1BABKdQwASnUYAEp1HABKdSAASnUkAEp1KABKdTAASnU4AEp1PABKdUAASnVIAEp1TABKdzgASndAAEp3TABKd1QASndgAEp3ZABKd2gASndsAEp3cABKd3gASneAAEp3hABKd4gASneQAEp3lABKeYAASnmIAEp5kABKeZgASnmkAEp5qABKeawASnmwAEp5tABKebwASnnEAEp5yABKecwASnnUAEp52ABKe8QASnvMAEp71ABKe9wASnvoAEp77ABKe/AASnv0AEp7+ABKfAAASnwIAEp8DABKfBAASnwYAEp8HABKfggASn4QAEp+GABKfiAASn4sAEp+MABKfjQASn44AEp+PABKfkQASn5MAEp+UABKflQASn5cAEp+YABKgKwASoE4AEqBuABKgjgASoJAAEqCSABKglAASoJYAEqCZABKgmgASoJsAEqCeABKgnwASoKEAEqCiABKgpAASoKcAEqCoABKgqQASoKwAEqCtABKgsgASoMsAEqDUABKg1gASoNgAEqDhABKg5AASoOcAEqDpABKhMgASoVYAEqF9ABKhoQASoaQAEqGmABKhqAASoaoAEqGsABKhrgASoa8AEqGyABKhywASoewAEqHuABKh8AASofIAEqH0ABKh9gASofgAEqH6ABKh/AASoh0AEqIgABKiIwASoiYAEqIpABKiLAASoi8AEqIyABKiNQASojcAEqKyABKitAASorYAEqK4ABKiuwASorwAEqK9ABKivgASor8AEqLBABKiwwASosQAEqLFABKixwASosgAEqNDABKjRQASo0cAEqNJABKjTAASo00AEqNOABKjTwASo1AAEqNSABKjVAASo1UAEqNWABKjWAASo1kAEqPUABKj1gASo9kAEqPbABKj3gASo98AEqPgABKj4QASo+IAEqPkABKj5gASo+cAEqPoABKj6gASo+sAEqQEABKkBQASpAYAEqQIABKkgwASpIUAEqSHABKkiQASpIwAEqSNABKkjgASpI8AEqSQABKkkgASpJQAEqSVABKklgASpJgAEqSZABKlFAASpRYAEqUYABKlGgASpR0AEqUeABKlHwASpSAAEqUhABKlIwASpSUAEqUmABKlJwASpSkAEqUqABKlpQASpacAEqWpABKlqwASpa4AEqWvABKlsAASpbEAEqWyABKltAASpbYAEqW3ABKluAASpboAEqW7ABKmNgASpjgAEqY6ABKmPAASpj8AEqZAABKmQQASpkIAEqZDABKmRQASpkcAEqZIABKmSQASpksAEqZMABKmxwASpskAEqbLABKmzQASptAAEqbRABKm0gASptMAEqbUABKm1gASptgAEqbZABKm2gASptwAEqbdABKnJgASp0oAEqdxABKnlQASp5gAEqeaABKnnAASp54AEqegABKnogASp6MAEqemABKnvwASp9wAEqfeABKn4AASp+IAEqfkABKn5gASp+gAEqfqABKoBwASqAoAEqgNABKoEAASqBMAEqgWABKoGQASqBwAEqgeABKomQASqJsAEqidABKonwASqKIAEqijABKopAASqKUAEqimABKoqAASqKoAEqirABKorAASqK4AEqivABKpKgASqSwAEqkuABKpMAASqTMAEqk0ABKpNQASqTYAEqk3ABKpOQASqTsAEqk8ABKpPQASqT8AEqlAABKpuwASqb0AEqm/ABKpwQASqcQAEqnFABKpxgASqccAEqnIABKpygASqcwAEqnNABKpzgASqdAAEqnRABKqTAASqk4AEqpRABKqUwASqlYAEqpXABKqWAASqlkAEqpaABKqXAASql4AEqpfABKqYAASqmIAEqpjABKq3gASquAAEqriABKq5AASqucAEqroABKq6QASquoAEqrrABKq7QASqu8AEqrwABKq8QASqvMAEqr0ABKrbwASq3EAEqtzABKrdQASq3gAEqt5ABKregASq3sAEqt8ABKrfgASq4AAEquBABKrggASq4QAEquFABKsAAASrAIAEqwEABKsBgASrAkAEqwKABKsCwASrAwAEqwNABKsDwASrBEAEqwSABKsEwASrBUAEqwWABKsqQASrMwAEqzsABKtDAASrQ4AEq0QABKtEgASrRQAEq0XABKtGAASrRkAEq0cABKtHQASrR8AEq0gABKtIgASrSUAEq0mABKtJwASrSoAEq0rABKtMAASrUkAEq1SABKtVAASrVYAEq1fABKtYgASrWUAEq1nABKtsAASrdQAEq37ABKuHwASriIAEq4kABKuJgASrigAEq4qABKuLAASri0AEq4wABKuSQASrmoAEq5sABKubgASrnAAEq5yABKudAASrnYAEq54ABKuegASrpsAEq6eABKuoQASrqQAEq6nABKuqgASrq0AEq6wABKuswASrrUAEq8wABKvMgASrzQAEq82ABKvOQASrzoAEq87ABKvPAASrz0AEq8/ABKvQQASr0IAEq9DABKvRQASr0YAEq/BABKvwwASr8UAEq/HABKvygASr8sAEq/MABKvzQASr84AEq/QABKv0gASr9MAEq/UABKv1gASr9cAErBSABKwVAASsFcAErBZABKwXAASsF0AErBeABKwXwASsGAAErBiABKwZAASsGUAErBmABKwaAASsGkAErCCABKwgwASsIQAErCGABKxAQASsQMAErEFABKxBwASsQoAErELABKxDAASsQ0AErEOABKxEAASsRIAErETABKxFAASsRYAErEXABKxkgASsZQAErGWABKxmAASsZsAErGcABKxnQASsZ4AErGfABKxoQASsaMAErGkABKxpQASsacAErGoABKyIwASsiUAErInABKyKQASsiwAErItABKyLgASsi8AErIwABKyMgASsjQAErI1ABKyNgASsjgAErI5ABKytAASsrYAErK4ABKyugASsr0AErK+ABKyvwASssAAErLBABKywwASssUAErLGABKyxwASsskAErLKABKzRQASs0cAErNJABKzSwASs04AErNPABKzUAASs1EAErNSABKzVAASs1YAErNXABKzWAASs1oAErNbABKzpAASs8gAErPvABK0EwAStBYAErQYABK0GgAStBwAErQeABK0IAAStCEAErQkABK0PQAStFoAErRcABK0XgAStGAAErRiABK0ZAAStGYAErRoABK0hQAStIgAErSLABK0jgAStJEAErSUABK0lwAStJoAErScABK1FwAStRkAErUbABK1HQAStSAAErUhABK1IgAStSMAErUkABK1JgAStSgAErUpABK1KgAStSwAErUtABK1qAAStaoAErWsABK1rgAStbEAErWyABK1swAStbQAErW1ABK1twAStbkAErW6ABK1uwAStb0AErW+ABK2OQAStjsAErY9ABK2PwAStkIAErZDABK2RAAStkUAErZGABK2SAAStkoAErZLABK2TAAStk4AErZPABK2ygAStswAErbOABK20AASttMAErbUABK21QASttYAErbXABK22QASttsAErbcABK23QAStt8AErbgABK3WwASt10AErdfABK3YQASt2QAErdlABK3ZgASt2cAErdoABK3agASt2wAErdtABK3bgASt3AAErdxABK37AASt+4AErfxABK38wASt/YAErf3ABK3+AASt/kAErf6ABK3/AASt/4AErf/ABK4AAASuAIAErgDABK4IgASuJ0AErifABK4oQASuKMAErimABK4pwASuKgAEripABK4qgASuKwAEriuABK4rwASuLAAEriyABK4swASuUYAErlpABK5iQASuakAErmrABK5rQASua8AErmxABK5tAASubUAErm2ABK5uQASuboAErm8ABK5vQASub8AErnCABK5wwASucQAErnHABK5yAASudEAErnqABK58wASufUAErn3ABK6AAASugMAEroGABK6CAASulEAErp1ABK6nAASusAAErrDABK6xQASuscAErrJABK6ywASus0AErrOABK60QASuuoAErsLABK7DQASuw8AErsRABK7EwASuxUAErsXABK7GQASuxsAErs8ABK7PwASu0IAErtFABK7SAASu0sAErtOABK7UQASu1QAErtWABK70QASu9MAErvVABK71wASu9oAErvbABK73AASu90AErveABK74AASu+IAErvjABK75AASu+YAErvnABK8YgASvGQAErxmABK8aAASvGsAErxsABK8bQASvG4AErxvABK8cQASvHMAErx0ABK8dQASvHcAErx4ABK88wASvPUAErz4ABK8+gASvP0AErz+ABK8/wASvQAAEr0BABK9AwASvQUAEr0GABK9BwASvQkAEr0KABK9IwASvSQAEr0lABK9JwASvaIAEr2kABK9pgASvagAEr2rABK9rAASva0AEr2uABK9rwASvbEAEr2zABK9tAASvbUAEr23ABK9uAASvjMAEr41ABK+NwASvjkAEr48ABK+PQASvj4AEr4/ABK+QAASvkIAEr5EABK+RQASvkYAEr5IABK+SQASvsQAEr7GABK+yAASvsoAEr7NABK+zgASvs8AEr7QABK+0QASvtMAEr7VABK+1gASvtcAEr7ZABK+2gASv1UAEr9XABK/WQASv1sAEr9eABK/XwASv2AAEr9hABK/YgASv2QAEr9mABK/ZwASv2gAEr9qABK/awASv+YAEr/oABK/6gASv+wAEr/vABK/8AASv/EAEr/yABK/8wASv/UAEr/3ABK/+AASv/kAEr/7ABK//AASwEUAEsBpABLAkAASwLQAEsC3ABLAuQASwLsAEsC9ABLAvwASwMEAEsDCABLAxQASwN4AEsD7ABLA/QASwP8AEsEBABLBAwASwQUAEsEHABLBCQASwSYAEsEpABLBLAASwS8AEsEyABLBNQASwTgAEsE7ABLBPQASwbgAEsG6ABLBvAASwb4AEsHBABLBwgASwcMAEsHEABLBxQASwccAEsHJABLBygASwcsAEsHNABLBzgASwkkAEsJLABLCTQASwk8AEsJSABLCUwASwlQAEsJVABLCVgASwlgAEsJaABLCWwASwlwAEsJeABLCXwASwtoAEsLcABLC3gASwuAAEsLjABLC5AASwuUAEsLmABLC5wASwukAEsLrABLC7AASwu0AEsLvABLC8AASw2sAEsNtABLDcAASw3IAEsN1ABLDdgASw3cAEsN4ABLDeQASw3sAEsN9ABLDfgASw38AEsOBABLDggASw/0AEsP/ABLEAQASxAMAEsQGABLEBwASxAgAEsQJABLECgASxAwAEsQOABLEDwASxBAAEsQSABLEEwASxI4AEsSQABLEkgASxJQAEsSXABLEmAASxJkAEsSaABLEmwASxJ0AEsSfABLEoAASxKEAEsSjABLEpAASxR8AEsUhABLFIwASxSUAEsUoABLFKQASxSoAEsUrABLFLAASxS4AEsUwABLFMQASxTIAEsU0ABLFNQASxUYAEsVHABLFSQASxcwAEsXwABLGFAASxjcAEsZeABLGfgASxqUAEsbMABLG7AASxxAAEsc0ABLHNgASxzkAEsc7ABLHPQASxz8AEsdCABLHRQASx0cAEsdJABLHTAASx04AEsdQABLHUwASx1YAEsdXABLHYAASx3kAEsd+ABLHgAASx4UAEseIABLHigASx9MAEsf3ABLIHgASyEIAEshFABLIRwASyEkAEshLABLITQASyE8AEshQABLIUwASyGwAEsiRABLIkwASyJUAEsiXABLImQASyJsAEsidABLInwASyKEAEsijABLIyAASyMsAEsjOABLI0QASyNQAEsjXABLI2gASyN0AEsjgABLI4wASyOUAEslgABLJYgASyWUAEslnABLJagASyWsAEslsABLJbQASyW4AEslwABLJcgASyXMAEsl0ABLJdgASyXcAEsmIABLJiQASyYsAEsoGABLKCAASygoAEsoMABLKDwASyhAAEsoRABLKEgASyhMAEsoVABLKFwASyhgAEsoZABLKGwASyhwAEsqXABLKmQASypwAEsqeABLKoQASyqIAEsqjABLKpAASyqUAEsqnABLKqQASyqoAEsqrABLKrQASyq4AEsq/ABLKxAASyscAEsrJABLK2gASyuMAEsrmABLK6QASyusAEsr+ABLLeQASy3sAEst9ABLLfwASy4IAEsuDABLLhAASy4UAEsuGABLLiAASy4oAEsuLABLLjAASy44AEsuPABLMCgASzAwAEswPABLMEQASzBQAEswVABLMFgASzBcAEswYABLMGgASzBwAEswdABLMHgASzCAAEswhABLMMgASzDMAEsw1ABLMsAASzLIAEsy0ABLMtgASzLkAEsy6ABLMuwASzLwAEsy9ABLMvwASzMEAEszCABLMwwASzMUAEszGABLNQQASzUMAEs1GABLNSAASzUsAEs1MABLNTQASzU4AEs1PABLNUQASzVMAEs1UABLNVQASzVcAEs1YABLNcQASzXIAEs1zABLNdQASzfAAEs3yABLN9AASzfYAEs35ABLN+gASzfsAEs38ABLN/QASzf8AEs4BABLOAgASzgMAEs4FABLOBgASzoEAEs6DABLOhgASzogAEs6LABLOjAASzo0AEs6OABLOjwASzpEAEs6TABLOlAASzpUAEs6XABLOmAASzrYAEs7PABLO2AASztsAEs7eABLO5wASzuoAEs7tABLO7wASzwIAEs+VABLPuAASz9gAEs/4ABLP+gASz/wAEs/+ABLQAAAS0AMAEtAEABLQBQAS0AgAEtAJABLQCwAS0AwAEtAOABLQEQAS0BIAEtATABLQFgAS0BcAEtAcABLQNQAS0D4AEtBAABLQQgAS0EsAEtBOABLQUQAS0FMAEtCcABLQwAAS0OcAEtELABLRDgAS0RAAEtESABLRFAAS0RYAEtEYABLRGQAS0RwAEtE1ABLRVgAS0VgAEtFaABLRXAAS0V4AEtFgABLRYgAS0WQAEtFmABLRhwAS0YoAEtGNABLRkAAS0ZMAEtGWABLRmQAS0ZwAEtGfABLRoQAS0hwAEtIeABLSIAAS0iIAEtIlABLSJgAS0icAEtIoABLSKQAS0isAEtItABLSLgAS0i8AEtIxABLSMgAS0q0AEtKvABLSsQAS0rMAEtK2ABLStwAS0rgAEtK5ABLSugAS0rwAEtK+ABLSvwAS0sAAEtLCABLSwwAS0z4AEtNAABLTQwAS00UAEtNIABLTSQAS00oAEtNLABLTTAAS004AEtNQABLTUQAS01IAEtNUABLTVQAS024AEtNvABLTcAAS03IAEtPtABLT7wAS0/EAEtPzABLT9gAS0/cAEtP4ABLT+QAS0/oAEtP8ABLT/gAS0/8AEtQAABLUAgAS1AMAEtR+ABLUgAAS1IIAEtSEABLUhwAS1IgAEtSJABLUigAS1IsAEtSNABLUjwAS1JAAEtSRABLUkwAS1JQAEtUPABLVEQAS1RMAEtUVABLVGAAS1RkAEtUaABLVGwAS1RwAEtUeABLVIAAS1SEAEtUiABLVJAAS1SUAEtWgABLVogAS1aQAEtWmABLVqQAS1aoAEtWrABLVrAAS1a0AEtWvABLVsQAS1bIAEtWzABLVtQAS1bYAEtYxABLWMwAS1jUAEtY3ABLWOgAS1jsAEtY8ABLWPQAS1j4AEtZAABLWQgAS1kMAEtZEABLWRgAS1kcAEtaQABLWtAAS1tsAEtb/ABLXAgAS1wQAEtcGABLXCAAS1woAEtcMABLXDQAS1xAAEtcpABLXRgAS10gAEtdKABLXTAAS104AEtdQABLXUgAS11QAEtdxABLXdAAS13cAEtd6ABLXfQAS14AAEteDABLXhgAS14gAEtgDABLYBQAS2AcAEtgJABLYDAAS2A0AEtgOABLYDwAS2BAAEtgSABLYFAAS2BUAEtgWABLYGAAS2BkAEtiUABLYlgAS2JgAEtiaABLYnQAS2J4AEtifABLYoAAS2KEAEtijABLYpQAS2KYAEtinABLYqQAS2KoAEtklABLZJwAS2SkAEtkrABLZLgAS2S8AEtkwABLZMQAS2TIAEtk0ABLZNgAS2TcAEtk4ABLZOgAS2TsAEtm2ABLZuAAS2bsAEtm9ABLZwAAS2cEAEtnCABLZwwAS2cQAEtnGABLZyAAS2ckAEtnKABLZzAAS2c0AEtpIABLaSgAS2kwAEtpOABLaUQAS2lIAEtpTABLaVAAS2lUAEtpXABLaWQAS2loAEtpbABLaXQAS2l4AEtrZABLa2wAS2t0AEtrfABLa4gAS2uMAEtrkABLa5QAS2uYAEtroABLa6gAS2usAEtrsABLa7gAS2u8AEttqABLbbAAS224AEttwABLbcwAS23QAEtt1ABLbdgAS23cAEtt5ABLbewAS23wAEtt9ABLbfwAS24AAEtwTABLcNgAS3FYAEtx2ABLceAAS3HoAEtx8ABLcfgAS3IEAEtyCABLcgwAS3IYAEtyHABLciQAS3IoAEtyMABLcjwAS3JAAEtyRABLclAAS3JUAEtyeABLctwAS3MAAEtzCABLcxAAS3M0AEtzQABLc0wAS3NUAEt0eABLdQgAS3WkAEt2NABLdkAAS3ZIAEt2UABLdlgAS3ZgAEt2aABLdmwAS3Z4AEt23ABLd2AAS3doAEt3cABLd3gAS3eAAEt3iABLd5AAS3eYAEt3oABLeCQAS3gwAEt4PABLeEgAS3hUAEt4YABLeGwAS3h4AEt4hABLeIwAS3p4AEt6gABLeogAS3qQAEt6nABLeqAAS3qkAEt6qABLeqwAS3q0AEt6vABLesAAS3rEAEt6zABLetAAS3y8AEt8xABLfMwAS3zUAEt84ABLfOQAS3zoAEt87ABLfPAAS3z4AEt9AABLfQQAS30IAEt9EABLfRQAS38AAEt/CABLfxQAS38cAEt/KABLfywAS38wAEt/NABLfzgAS39AAEt/SABLf0wAS39QAEt/WABLf1wAS3/AAEt/xABLf8gAS3/QAEuBvABLgcQAS4HMAEuB1ABLgeAAS4HkAEuB6ABLgewAS4HwAEuB+ABLggAAS4IEAEuCCABLghAAS4IUAEuEAABLhAgAS4QQAEuEGABLhCQAS4QoAEuELABLhDAAS4Q0AEuEPABLhEQAS4RIAEuETABLhFQAS4RYAEuGRABLhkwAS4ZUAEuGXABLhmgAS4ZsAEuGcABLhnQAS4Z4AEuGgABLhogAS4aMAEuGkABLhpgAS4acAEuIiABLiJAAS4iYAEuIoABLiKwAS4iwAEuItABLiLgAS4i8AEuIxABLiMwAS4jQAEuI1ABLiNwAS4jgAEuKzABLitQAS4rcAEuK5ABLivAAS4r0AEuK+ABLivwAS4sAAEuLCABLixAAS4sUAEuLGABLiyAAS4skAEuMSABLjNgAS410AEuOBABLjhAAS44YAEuOIABLjigAS44wAEuOOABLjjwAS45IAEuOrABLjyAAS48oAEuPMABLjzgAS49AAEuPSABLj1AAS49YAEuPzABLj9gAS4/kAEuP8ABLj/wAS5AIAEuQFABLkCAAS5AoAEuSFABLkhwAS5IkAEuSLABLkjgAS5I8AEuSQABLkkQAS5JIAEuSUABLklgAS5JcAEuSYABLkmgAS5JsAEuUWABLlGAAS5RoAEuUcABLlHwAS5SAAEuUhABLlIgAS5SMAEuUlABLlJwAS5SgAEuUpABLlKwAS5SwAEuWnABLlqQAS5asAEuWtABLlsAAS5bEAEuWyABLlswAS5bQAEuW2ABLluAAS5bkAEuW6ABLlvAAS5b0AEuY4ABLmOgAS5j0AEuY/ABLmQgAS5kMAEuZEABLmRQAS5kYAEuZIABLmSgAS5ksAEuZMABLmTgAS5k8AEubKABLmzAAS5s4AEubQABLm0wAS5tQAEubVABLm1gAS5tcAEubZABLm2wAS5twAEubdABLm3wAS5uAAEudbABLnXQAS518AEudhABLnZAAS52UAEudmABLnZwAS52gAEudqABLnbAAS520AEuduABLncAAS53EAEufsABLn7gAS5/AAEufyABLn9QAS5/YAEuf3ABLn+AAS5/kAEuf7ABLn/QAS5/4AEuf/ABLoAQAS6AIAEugTABLoFAAS6BYAEuiZABLovQAS6OEAEukEABLpKwAS6UsAEulyABLpmQAS6bkAEundABLqAQAS6gMAEuoGABLqCAAS6goAEuoMABLqDwAS6hIAEuoUABLqFgAS6hkAEuobABLqHQAS6iAAEuojABLqJAAS6ikAEupCABLqRwAS6kkAEupOABLqUQAS6lMAEuqcABLqwAAS6ucAEusLABLrDgAS6xAAEusSABLrFAAS6xYAEusYABLrGQAS6xwAEus1ABLrWgAS61wAEuteABLrYAAS62IAEutkABLrZgAS62gAEutqABLrbAAS65EAEuuUABLrlwAS65oAEuudABLroAAS66MAEuumABLrqQAS66wAEuuuABLsKQAS7CsAEuwuABLsMAAS7DMAEuw0ABLsNQAS7DYAEuw3ABLsOQAS7DsAEuw8ABLsPQAS7D8AEuxAABLsUQAS7FIAEuxUABLszwAS7NEAEuzTABLs1QAS7NgAEuzZABLs2gAS7NsAEuzcABLs3gAS7OAAEuzhABLs4gAS7OQAEuzlABLtYAAS7WIAEu1lABLtZwAS7WoAEu1rABLtbAAS7W0AEu1uABLtcAAS7XIAEu1zABLtdAAS7XYAEu13ABLtiAAS7Y0AEu2QABLtkgAS7aMAEu2sABLtrwAS7bIAEu20ABLt0AAS7eIAEu5dABLuXwAS7mEAEu5jABLuZgAS7mcAEu5oABLuaQAS7moAEu5sABLubgAS7m8AEu5wABLucgAS7nMAEu7uABLu8AAS7vMAEu71ABLu+AAS7vkAEu76ABLu+wAS7vwAEu7+ABLvAAAS7wEAEu8CABLvBAAS7wUAEu8WABLvFwAS7xkAEu+UABLvlgAS75gAEu+aABLvnQAS754AEu+fABLvoAAS76EAEu+jABLvpQAS76YAEu+nABLvqQAS76oAEvAlABLwJwAS8CoAEvAsABLwLwAS8DAAEvAxABLwMgAS8DMAEvA1ABLwNwAS8DgAEvA5ABLwOwAS8DwAEvBVABLwVgAS8FcAEvBZABLw1AAS8NYAEvDYABLw2gAS8N0AEvDeABLw3wAS8OAAEvDhABLw4wAS8OUAEvDmABLw5wAS8OkAEvDqABLxZQAS8WcAEvFqABLxbAAS8W8AEvFwABLxcQAS8XIAEvFzABLxdQAS8XcAEvF4ABLxeQAS8XsAEvF8ABLxjgAS8acAEvHQABLx0wAS8dYAEvHZABLx3AAS8d8AEvHiABLx5QAS8egAEvHrABLx7gAS8hcAEvIaABLyHQAS8iAAEvIjABLyJgAS8ikAEvIsABLyLwAS8jIAEvI1ABLyNwAS8kYAEvJiABLyeAAS8o8AEvKmABLyvQAS8ssAEvLnABLy+QAS84wAEvOvABLzzwAS8+8AEvPxABLz8wAS8/UAEvP3ABLz+gAS8/sAEvP8ABLz/wAS9AAAEvQCABL0AwAS9AUAEvQIABL0CQAS9AoAEvQNABL0DgAS9BMAEvQsABL0NQAS9DcAEvQ5ABL0QgAS9EUAEvRIABL0SgAS9JMAEvS3ABL03gAS9QIAEvUFABL1BwAS9QkAEvULABL1DQAS9Q8AEvUQABL1EwAS9SwAEvVNABL1TwAS9VEAEvVTABL1VQAS9VcAEvVZABL1WwAS9V0AEvV+ABL1gQAS9YQAEvWHABL1igAS9Y0AEvWQABL1kwAS9ZYAEvWYABL2EwAS9hUAEvYXABL2GQAS9hwAEvYdABL2HgAS9h8AEvYgABL2IgAS9iQAEvYlABL2JgAS9igAEvYpABL2pAAS9qYAEvaoABL2qgAS9q0AEvauABL2rwAS9rAAEvaxABL2swAS9rUAEva2ABL2twAS9rkAEva6ABL3NQAS9zcAEvc6ABL3PAAS9z8AEvdAABL3QQAS90IAEvdDABL3RQAS90cAEvdIABL3SQAS90sAEvdMABL3ZQAS92YAEvdnABL3aQAS9+QAEvfmABL36AAS9+oAEvftABL37gAS9+8AEvfwABL38QAS9/MAEvf1ABL39gAS9/cAEvf5ABL3+gAS+HUAEvh3ABL4eQAS+HsAEvh+ABL4fwAS+IAAEviBABL4ggAS+IQAEviGABL4hwAS+IgAEviKABL4iwAS+QYAEvkIABL5CgAS+QwAEvkPABL5EAAS+REAEvkSABL5EwAS+RUAEvkXABL5GAAS+RkAEvkbABL5HAAS+ZcAEvmZABL5mwAS+Z0AEvmgABL5oQAS+aIAEvmjABL5pAAS+aYAEvmoABL5qQAS+aoAEvmsABL5rQAS+igAEvoqABL6LAAS+i4AEvoxABL6MgAS+jMAEvo0ABL6NQAS+jcAEvo5ABL6OgAS+jsAEvo9ABL6PgAS+ocAEvqrABL60gAS+vYAEvr5ABL6+wAS+v0AEvr/ABL7AQAS+wMAEvsEABL7BwAS+yAAEvs9ABL7PwAS+0EAEvtDABL7RQAS+0cAEvtJABL7SwAS+2gAEvtrABL7bgAS+3EAEvt0ABL7dwAS+3oAEvt9ABL7fwAS+/oAEvv8ABL7/gAS/AAAEvwDABL8BAAS/AUAEvwGABL8BwAS/AkAEvwLABL8DAAS/A0AEvwPABL8EAAS/IsAEvyNABL8jwAS/JEAEvyUABL8lQAS/JYAEvyXABL8mAAS/JoAEvycABL8nQAS/J4AEvygABL8oQAS/RwAEv0eABL9IAAS/SIAEv0lABL9JgAS/ScAEv0oABL9KQAS/SsAEv0tABL9LgAS/S8AEv0xABL9MgAS/a0AEv2vABL9sgAS/bQAEv23ABL9uAAS/bkAEv26ABL9uwAS/b0AEv2/ABL9wAAS/cEAEv3DABL9xAAS/j8AEv5BABL+QwAS/kUAEv5IABL+SQAS/koAEv5LABL+TAAS/k4AEv5QABL+UQAS/lIAEv5UABL+VQAS/tAAEv7SABL+1AAS/tYAEv7ZABL+2gAS/tsAEv7cABL+3QAS/t8AEv7hABL+4gAS/uMAEv7lABL+5gAS/2EAEv9jABL/ZQAS/2cAEv9qABL/awAS/2wAEv9tABL/bgAS/3AAEv9yABL/cwAS/3QAEv92ABL/dwATAAoAEwAtABMATQATAG0AEwBvABMAcQATAHMAEwB1ABMAeAATAHkAEwB6ABMAfQATAH4AEwCAABMAgQATAIMAEwCGABMAhwATAIgAEwCLABMAjAATAJUAEwCuABMAtwATALkAEwC7ABMAxAATAMcAEwDKABMAzAATARUAEwE5ABMBYAATAYQAEwGHABMBiQATAYsAEwGNABMBjwATAZEAEwGSABMBlQATAa4AEwHPABMB0QATAdMAEwHVABMB1wATAdkAEwHbABMB3QATAd8AEwIAABMCAwATAgYAEwIJABMCDAATAg8AEwISABMCFQATAhgAEwIaABMClQATApcAEwKZABMCmwATAp4AEwKfABMCoAATAqEAEwKiABMCpAATAqYAEwKnABMCqAATAqoAEwKrABMDJgATAygAEwMqABMDLAATAy8AEwMwABMDMQATAzIAEwMzABMDNQATAzcAEwM4ABMDOQATAzsAEwM8ABMDtwATA7kAEwO8ABMDvgATA8EAEwPCABMDwwATA8QAEwPFABMDxwATA8kAEwPKABMDywATA80AEwPOABMD5wATA+gAEwPpABMD6wATBGYAEwRoABMEagATBGwAEwRvABMEcAATBHEAEwRyABMEcwATBHUAEwR3ABMEeAATBHkAEwR7ABMEfAATBPcAEwT5ABME+wATBP0AEwUAABMFAQATBQIAEwUDABMFBAATBQYAEwUIABMFCQATBQoAEwUMABMFDQATBYgAEwWKABMFjAATBY4AEwWRABMFkgATBZMAEwWUABMFlQATBZcAEwWZABMFmgATBZsAEwWdABMFngATBhkAEwYbABMGHQATBh8AEwYiABMGIwATBiQAEwYlABMGJgATBigAEwYqABMGKwATBiwAEwYuABMGLwATBqoAEwasABMGrgATBrAAEwazABMGtAATBrUAEwa2ABMGtwATBrkAEwa7ABMGvAATBr0AEwa/ABMGwAATBwkAEwctABMHVAATB3gAEwd7ABMHfQATB38AEweBABMHgwATB4UAEweGABMHiQATB6IAEwe/ABMHwQATB8MAEwfFABMHxwATB8kAEwfLABMHzQATB+oAEwftABMH8AATB/MAEwf2ABMH+QATB/wAEwf/ABMIAQATCHwAEwh+ABMIgAATCIIAEwiFABMIhgATCIcAEwiIABMIiQATCIsAEwiNABMIjgATCI8AEwiRABMIkgATCQ0AEwkPABMJEQATCRMAEwkWABMJFwATCRgAEwkZABMJGgATCRwAEwkeABMJHwATCSAAEwkiABMJIwATCZ4AEwmgABMJogATCaQAEwmnABMJqAATCakAEwmqABMJqwATCa0AEwmvABMJsAATCbEAEwmzABMJtAATCi8AEwoxABMKMwATCjUAEwo4ABMKOQATCjoAEwo7ABMKPAATCj4AEwpAABMKQQATCkIAEwpEABMKRQATCsAAEwrCABMKxAATCsYAEwrJABMKygATCssAEwrMABMKzQATCs8AEwrRABMK0gATCtMAEwrVABMK1gATC1EAEwtTABMLVgATC1gAEwtbABMLXAATC10AEwteABMLXwATC2EAEwtjABMLZAATC2UAEwtnABMLaAATC4AAEwv7ABML/QATC/8AEwwBABMMBAATDAUAEwwGABMMBwATDAgAEwwKABMMDAATDA0AEwwOABMMEAATDBEAEwykABMMxwATDOcAEw0HABMNCQATDQsAEw0NABMNDwATDRIAEw0TABMNFAATDRcAEw0YABMNGgATDRsAEw0dABMNIAATDSEAEw0iABMNJQATDSYAEw0rABMNRAATDU0AEw1PABMNUQATDVoAEw1dABMNYAATDWIAEw2rABMNzwATDfYAEw4aABMOHQATDh8AEw4hABMOIwATDiUAEw4nABMOKAATDisAEw5EABMOZQATDmcAEw5pABMOawATDm0AEw5vABMOcQATDnMAEw51ABMOlgATDpkAEw6cABMOnwATDqIAEw6lABMOqAATDqsAEw6uABMOsAATDysAEw8tABMPLwATDzEAEw80ABMPNQATDzYAEw83ABMPOAATDzoAEw88ABMPPQATDz4AEw9AABMPQQATD7wAEw++ABMPwAATD8IAEw/FABMPxgATD8cAEw/IABMPyQATD8sAEw/NABMPzgATD88AEw/RABMP0gATEE0AExBPABMQUgATEFQAExBXABMQWAATEFkAExBaABMQWwATEF0AExBfABMQYAATEGEAExBjABMQZAATEH0AExB+ABMQfwATEIEAExD8ABMQ/gATEQAAExECABMRBQATEQYAExEHABMRCAATEQkAExELABMRDQATEQ4AExEPABMREQATERIAExGNABMRjwATEZEAExGTABMRlgATEZcAExGYABMRmQATEZoAExGcABMRngATEZ8AExGgABMRogATEaMAExIeABMSIAATEiIAExIkABMSJwATEigAExIpABMSKgATEisAExItABMSLwATEjAAExIxABMSMwATEjQAExKvABMSsQATErMAExK1ABMSuAATErkAExK6ABMSuwATErwAExK+ABMSwAATEsEAExLCABMSxAATEsUAExNAABMTQgATE0QAExNGABMTSQATE0oAExNLABMTTAATE00AExNPABMTUQATE1IAExNTABMTVQATE1YAExOfABMTwwATE+oAExQOABMUEQATFBMAExQVABMUFwATFBkAExQbABMUHAATFB8AExQ4ABMUVQATFFcAExRZABMUWwATFF0AExRfABMUYQATFGMAExSAABMUgwATFIYAExSJABMUjAATFI8AExSSABMUlQATFJcAExUSABMVFAATFRYAExUYABMVGwATFRwAExUdABMVHgATFR8AExUhABMVIwATFSQAExUlABMVJwATFSgAExWjABMVpQATFacAExWpABMVrAATFa0AExWuABMVrwATFbAAExWyABMVtAATFbUAExW2ABMVuAATFbkAExY0ABMWNgATFjgAExY6ABMWPQATFj4AExY/ABMWQAATFkEAExZDABMWRQATFkYAExZHABMWSQATFkoAExbFABMWxwATFskAExbLABMWzgATFs8AExbQABMW0QATFtIAExbUABMW1gATFtcAExbYABMW2gATFtsAExdWABMXWAATF1oAExdcABMXXwATF2AAExdhABMXYgATF2MAExdlABMXZwATF2gAExdpABMXawATF2wAExfnABMX6QATF+wAExfuABMX8QATF/IAExfzABMX9AATF/UAExf3ABMX+QATF/oAExf7ABMX/QATF/4AExgNABMYiAATGIoAExiMABMYjgATGJEAExiSABMYkwATGJQAExiVABMYlwATGJkAExiaABMYmwATGJ0AExieABMZMQATGVQAExl0ABMZlAATGZYAExmYABMZmgATGZwAExmfABMZoAATGaEAExmkABMZpQATGacAExmoABMZqgATGa0AExmuABMZrwATGbIAExmzABMZuAATGdEAExnaABMZ3AATGd4AExnnABMZ6gATGe0AExnvABMaOAATGlwAExqDABMapwATGqoAExqsABMargATGrAAExqyABMatAATGrUAExq4ABMa0QATGvIAExr0ABMa9gATGvgAExr6ABMa/AATGv4AExsAABMbAgATGyMAExsmABMbKQATGywAExsvABMbMgATGzUAExs4ABMbOwATGz0AExu4ABMbugATG7wAExu+ABMbwQATG8IAExvDABMbxAATG8UAExvHABMbyQATG8oAExvLABMbzQATG84AExxJABMcSwATHE0AExxPABMcUgATHFMAExxUABMcVQATHFYAExxYABMcWgATHFsAExxcABMcXgATHF8AExzaABMc3AATHN8AExzhABMc5AATHOUAExzmABMc5wATHOgAExzqABMc7AATHO0AExzuABMc8AATHPEAEx0KABMdCwATHQwAEx0OABMdiQATHYsAEx2NABMdjwATHZIAEx2TABMdlAATHZUAEx2WABMdmAATHZoAEx2bABMdnAATHZ4AEx2fABMeGgATHhwAEx4eABMeIAATHiMAEx4kABMeJQATHiYAEx4nABMeKQATHisAEx4sABMeLQATHi8AEx4wABMeqwATHq0AEx6vABMesQATHrQAEx61ABMetgATHrcAEx64ABMeugATHrwAEx69ABMevgATHsAAEx7BABMfPAATHz4AEx9AABMfQgATH0UAEx9GABMfRwATH0gAEx9JABMfSwATH00AEx9OABMfTwATH1EAEx9SABMfzQATH88AEx/RABMf0wATH9YAEx/XABMf2AATH9kAEx/aABMf3AATH94AEx/fABMf4AATH+IAEx/jABMgLAATIFAAEyB3ABMgmwATIJ4AEyCgABMgogATIKQAEyCmABMgqAATIKkAEyCsABMgxQATIOIAEyDkABMg5gATIOgAEyDqABMg7AATIO4AEyDwABMhDQATIRAAEyETABMhFgATIRkAEyEcABMhHwATISIAEyEkABMhnwATIaEAEyGjABMhpQATIagAEyGpABMhqgATIasAEyGsABMhrgATIbAAEyGxABMhsgATIbQAEyG1ABMiMAATIjIAEyI0ABMiNgATIjkAEyI6ABMiOwATIjwAEyI9ABMiPwATIkEAEyJCABMiQwATIkUAEyJGABMiwQATIsMAEyLFABMixwATIsoAEyLLABMizAATIs0AEyLOABMi0AATItIAEyLTABMi1AATItYAEyLXABMjUgATI1QAEyNXABMjWQATI1wAEyNdABMjXgATI18AEyNgABMjYgATI2QAEyNlABMjZgATI2gAEyNpABMj5AATI+YAEyPoABMj6gATI+0AEyPuABMj7wATI/AAEyPxABMj8wATI/UAEyP2ABMj9wATI/kAEyP6ABMkdQATJHcAEyR5ABMkewATJH4AEyR/ABMkgAATJIEAEySCABMkhAATJIYAEySHABMkiAATJIoAEySLABMlBgATJQgAEyUKABMlDAATJQ8AEyUQABMlEQATJRIAEyUTABMlFQATJRcAEyUYABMlGQATJRsAEyUcABMlrwATJdIAEyXyABMmEgATJhQAEyYWABMmGAATJhoAEyYdABMmHgATJh8AEyYiABMmIwATJiUAEyYmABMmKAATJisAEyYsABMmLQATJjAAEyYxABMmNgATJk8AEyZYABMmWgATJlwAEyZlABMmaAATJmsAEyZtABMmtgATJtoAEycBABMnJQATJygAEycqABMnLAATJy4AEycwABMnMgATJzMAEyc2ABMnTwATJ3AAEydyABMndAATJ3YAEyd4ABMnegATJ3wAEyd+ABMngAATJ6EAEyekABMnpwATJ6oAEyetABMnsAATJ7MAEye2ABMnuQATJ7sAEyg2ABMoOAATKDoAEyg8ABMoPwATKEAAEyhBABMoQgATKEMAEyhFABMoRwATKEgAEyhJABMoSwATKEwAEyjHABMoyQATKMsAEyjNABMo0AATKNEAEyjSABMo0wATKNQAEyjWABMo2AATKNkAEyjaABMo3AATKN0AEylYABMpWgATKV0AEylfABMpYgATKWMAEylkABMpZQATKWYAEyloABMpagATKWsAEylsABMpbgATKW8AEymIABMpiQATKYoAEymMABMqBwATKgkAEyoLABMqDQATKhAAEyoRABMqEgATKhMAEyoUABMqFgATKhgAEyoZABMqGgATKhwAEyodABMqmAATKpoAEyqcABMqngATKqEAEyqiABMqowATKqQAEyqlABMqpwATKqkAEyqqABMqqwATKq0AEyquABMrKQATKysAEystABMrLwATKzIAEyszABMrNAATKzUAEys2ABMrOAATKzoAEys7ABMrPAATKz4AEys/ABMrugATK7wAEyu+ABMrwAATK8MAEyvEABMrxQATK8YAEyvHABMryQATK8sAEyvMABMrzQATK88AEyvQABMsSwATLE0AEyxPABMsUQATLFQAEyxVABMsVgATLFcAEyxYABMsWgATLFwAEyxdABMsXgATLGAAEyxhABMsqgATLM4AEyz1ABMtGQATLRwAEy0eABMtIAATLSIAEy0kABMtJgATLScAEy0qABMtQwATLWAAEy1iABMtZAATLWYAEy1oABMtagATLWwAEy1uABMtiwATLY4AEy2RABMtlAATLZcAEy2aABMtnQATLaAAEy2iABMuHQATLh8AEy4hABMuIwATLiYAEy4nABMuKAATLikAEy4qABMuLAATLi4AEy4vABMuMAATLjIAEy4zABMurgATLrAAEy6yABMutAATLrcAEy64ABMuuQATLroAEy67ABMuvQATLr8AEy7AABMuwQATLsMAEy7EABMvPwATL0EAEy9DABMvRQATL0gAEy9JABMvSgATL0sAEy9MABMvTgATL1AAEy9RABMvUgATL1QAEy9VABMv0AATL9IAEy/UABMv1gATL9kAEy/aABMv2wATL9wAEy/dABMv3wATL+EAEy/iABMv4wATL+UAEy/mABMwYQATMGMAEzBlABMwZwATMGoAEzBrABMwbAATMG0AEzBuABMwcAATMHIAEzBzABMwdAATMHYAEzB3ABMw8gATMPQAEzD3ABMw+QATMPwAEzD9ABMw/gATMP8AEzEAABMxAgATMQQAEzEFABMxBgATMQgAEzEJABMxIQATMZwAEzGeABMxoAATMaIAEzGlABMxpgATMacAEzGoABMxqQATMasAEzGtABMxrgATMa8AEzGxABMxsgATMkUAEzJoABMyiAATMqgAEzKqABMyrAATMq4AEzKwABMyswATMrQAEzK1ABMyuAATMrkAEzK7ABMyvAATMr4AEzLBABMywgATMsMAEzLGABMyxwATMswAEzLlABMy7gATMvAAEzLyABMy+wATMv4AEzMBABMzAwATM0wAEzNwABMzlwATM7sAEzO+ABMzwAATM8IAEzPEABMzxgATM8gAEzPJABMzzAATM+UAEzQGABM0CAATNAoAEzQMABM0DgATNBAAEzQSABM0FAATNBYAEzQ3ABM0OgATND0AEzRAABM0QwATNEYAEzRJABM0TAATNE8AEzRRABM0zAATNM4AEzTQABM00gATNNUAEzTWABM01wATNNgAEzTZABM02wATNN0AEzTeABM03wATNOEAEzTiABM1XQATNV8AEzVhABM1YwATNWYAEzVnABM1aAATNWkAEzVqABM1bAATNW4AEzVvABM1cAATNXIAEzVzABM17gATNfAAEzXzABM19QATNfgAEzX5ABM1+gATNfsAEzX8ABM1/gATNgAAEzYBABM2AgATNgQAEzYFABM2HgATNh8AEzYgABM2IgATNp0AEzafABM2oQATNqMAEzamABM2pwATNqgAEzapABM2qgATNqwAEzauABM2rwATNrAAEzayABM2swATNy4AEzcwABM3MgATNzQAEzc3ABM3OAATNzkAEzc6ABM3OwATNz0AEzc/ABM3QAATN0EAEzdDABM3RAATN78AEzfBABM3wwATN8UAEzfIABM3yQATN8oAEzfLABM3zAATN84AEzfQABM30QATN9IAEzfUABM31QATOFAAEzhSABM4VAATOFYAEzhZABM4WgATOFsAEzhcABM4XQATOF8AEzhhABM4YgATOGMAEzhlABM4ZgATOOEAEzjjABM45QATOOcAEzjqABM46wATOOwAEzjtABM47gATOPAAEzjyABM48wATOPQAEzj2ABM49wATOUAAEzlkABM5iwATOa8AEzmyABM5tAATObYAEzm4ABM5ugATObwAEzm9ABM5wAATOdkAEzn2ABM5+AATOfoAEzn8ABM5/gATOgAAEzoCABM6BAATOiEAEzokABM6JwATOioAEzotABM6MAATOjMAEzo2ABM6OAATOrMAEzq1ABM6twATOrkAEzq8ABM6vQATOr4AEzq/ABM6wAATOsIAEzrEABM6xQATOsYAEzrIABM6yQATO0QAEztGABM7SAATO0oAEztNABM7TgATO08AEztQABM7UQATO1MAEztVABM7VgATO1cAEztZABM7WgATO9UAEzvXABM72QATO9sAEzveABM73wATO+AAEzvhABM74gATO+QAEzvmABM75wATO+gAEzvqABM76wATPGYAEzxoABM8agATPGwAEzxvABM8cAATPHEAEzxyABM8cwATPHUAEzx3ABM8eAATPHkAEzx7ABM8fAATPPcAEzz5ABM8+wATPP0AEz0AABM9AQATPQIAEz0DABM9BAATPQYAEz0IABM9CQATPQoAEz0MABM9DQATPYgAEz2KABM9jAATPY4AEz2RABM9kgATPZMAEz2UABM9lQATPZcAEz2ZABM9mgATPZsAEz2dABM9ngATPhkAEz4bABM+HQATPh8AEz4iABM+IwATPiQAEz4lABM+JgATPigAEz4qABM+KwATPiwAEz4uABM+LwATPsIAEz7lABM/BQATPyUAEz8nABM/KQATPysAEz8tABM/MAATPzEAEz8yABM/NQATPzYAEz84ABM/OQATPzsAEz8+ABM/PwATP0AAEz9DABM/RAATP00AEz9mABM/bwATP3EAEz9zABM/fAATP38AEz+CABM/hAATP80AEz/xABNAGAATQDwAE0A/ABNAQQATQEMAE0BFABNARwATQEkAE0BKABNATQATQGYAE0CHABNAiQATQIsAE0CNABNAjwATQJEAE0CTABNAlQATQJcAE0C4ABNAuwATQL4AE0DBABNAxAATQMcAE0DKABNAzQATQNAAE0DSABNBTQATQU8AE0FRABNBUwATQVYAE0FXABNBWAATQVkAE0FaABNBXAATQV4AE0FfABNBYAATQWIAE0FjABNB3gATQeAAE0HiABNB5AATQecAE0HoABNB6QATQeoAE0HrABNB7QATQe8AE0HwABNB8QATQfMAE0H0ABNCbwATQnEAE0J0ABNCdgATQnkAE0J6ABNCewATQnwAE0J9ABNCfwATQoEAE0KCABNCgwATQoUAE0KGABNCnwATQqAAE0KhABNCowATQx4AE0MgABNDIgATQyQAE0MnABNDKAATQykAE0MqABNDKwATQy0AE0MvABNDMAATQzEAE0MzABNDNAATQ68AE0OxABNDswATQ7UAE0O4ABNDuQATQ7oAE0O7ABNDvAATQ74AE0PAABNDwQATQ8IAE0PEABNDxQATREAAE0RCABNERAATREYAE0RJABNESgATREsAE0RMABNETQATRE8AE0RRABNEUgATRFMAE0RVABNEVgATRNEAE0TTABNE1QATRNcAE0TaABNE2wATRNwAE0TdABNE3gATROAAE0TiABNE4wATROQAE0TmABNE5wATRWIAE0VkABNFZgATRWgAE0VrABNFbAATRW0AE0VuABNFbwATRXEAE0VzABNFdAATRXUAE0V3ABNFeAATRcEAE0XlABNGDAATRjAAE0YzABNGNQATRjcAE0Y5ABNGOwATRj0AE0Y+ABNGQQATRloAE0Z3ABNGeQATRnsAE0Z9ABNGfwATRoEAE0aDABNGhQATRqIAE0alABNGqAATRqsAE0auABNGsQATRrQAE0a3ABNGuQATRzQAE0c2ABNHOAATRzoAE0c9ABNHPgATRz8AE0dAABNHQQATR0MAE0dFABNHRgATR0cAE0dJABNHSgATR8UAE0fHABNHyQATR8sAE0fOABNHzwATR9AAE0fRABNH0gATR9QAE0fWABNH1wATR9gAE0faABNH2wATSFYAE0hYABNIWgATSFwAE0hfABNIYAATSGEAE0hiABNIYwATSGUAE0hnABNIaAATSGkAE0hrABNIbAATSOcAE0jpABNI6wATSO0AE0jwABNI8QATSPIAE0jzABNI9AATSPYAE0j4ABNI+QATSPoAE0j8ABNI/QATSXgAE0l6ABNJfAATSX4AE0mBABNJggATSYMAE0mEABNJhQATSYcAE0mJABNJigATSYsAE0mNABNJjgATSgkAE0oLABNKDQATSg8AE0oSABNKEwATShQAE0oVABNKFgATShgAE0oaABNKGwATShwAE0oeABNKHwATSpoAE0qcABNKngATSqAAE0qjABNKpAATSqUAE0qmABNKpwATSqkAE0qrABNKrAATSq0AE0qvABNKsAATS0MAE0tmABNLhgATS6YAE0uoABNLqgATS6wAE0uuABNLsQATS7IAE0uzABNLtgATS7cAE0u5ABNLugATS7wAE0u/ABNLwAATS8EAE0vEABNLxQATS8oAE0vjABNL7AATS+4AE0vwABNL+QATS/wAE0v/ABNMAQATTEoAE0xuABNMlQATTLkAE0y8ABNMvgATTMAAE0zCABNMxAATTMYAE0zHABNMygATTOMAE00EABNNBgATTQgAE00KABNNDAATTQ4AE00QABNNEgATTRQAE001ABNNOAATTTsAE00+ABNNQQATTUQAE01HABNNSgATTU0AE01PABNNygATTcwAE03OABNN0AATTdMAE03UABNN1QATTdYAE03XABNN2QATTdsAE03cABNN3QATTd8AE03gABNOWwATTl0AE05fABNOYQATTmQAE05lABNOZgATTmcAE05oABNOagATTmwAE05tABNObgATTnAAE05xABNO7AATTu4AE07xABNO8wATTvYAE073ABNO+AATTvkAE076ABNO/AATTv4AE07/ABNPAAATTwIAE08DABNPHAATTx0AE08eABNPIAATT5sAE0+dABNPnwATT6EAE0+kABNPpQATT6YAE0+nABNPqAATT6oAE0+sABNPrQATT64AE0+wABNPsQATUCwAE1AuABNQMAATUDIAE1A1ABNQNgATUDcAE1A4ABNQOQATUDsAE1A9ABNQPgATUD8AE1BBABNQQgATUL0AE1C/ABNQwQATUMMAE1DGABNQxwATUMgAE1DJABNQygATUMwAE1DOABNQzwATUNAAE1DSABNQ0wATUU4AE1FQABNRUgATUVQAE1FXABNRWAATUVkAE1FaABNRWwATUV0AE1FfABNRYAATUWEAE1FjABNRZAATUd8AE1HhABNR4wATUeUAE1HoABNR6QATUeoAE1HrABNR7AATUe4AE1HwABNR8QATUfIAE1H0ABNR9QATUj4AE1JiABNSiQATUq0AE1KwABNSsgATUrQAE1K2ABNSuAATUroAE1K7ABNSvgATUtcAE1L0ABNS9gATUvgAE1L6ABNS/AATUv4AE1MAABNTAgATUx8AE1MiABNTJQATUygAE1MrABNTLgATUzEAE1M0ABNTNgATU7EAE1OzABNTtQATU7cAE1O6ABNTuwATU7wAE1O9ABNTvgATU8AAE1PCABNTwwATU8QAE1PGABNTxwATVEIAE1REABNURgATVEgAE1RLABNUTAATVE0AE1ROABNUTwATVFEAE1RTABNUVAATVFUAE1RXABNUWAATVNMAE1TVABNU1wATVNkAE1TcABNU3QATVN4AE1TfABNU4AATVOIAE1TkABNU5QATVOYAE1ToABNU6QATVWQAE1VmABNVaQATVWsAE1VuABNVbwATVXAAE1VxABNVcgATVXQAE1V2ABNVdwATVXgAE1V6ABNVewATVfYAE1X4ABNV+gATVfwAE1X/ABNWAAATVgEAE1YCABNWAwATVgUAE1YHABNWCAATVgkAE1YLABNWDAATVocAE1aJABNWiwATVo0AE1aQABNWkQATVpIAE1aTABNWlAATVpYAE1aYABNWmQATVpoAE1acABNWnQATVxgAE1caABNXHAATVx4AE1chABNXIgATVyMAE1ckABNXJQATVycAE1cpABNXKgATVysAE1ctABNXLgATV8EAE1fkABNYBAATWCQAE1gmABNYKAATWCoAE1gsABNYLwATWDAAE1gxABNYNAATWDUAE1g3ABNYOAATWDoAE1g9ABNYPgATWD8AE1hCABNYQwATWEgAE1hhABNYagATWGwAE1huABNYdwATWHoAE1h9ABNYfwATWMgAE1jsABNZEwATWTcAE1k6ABNZPAATWT4AE1lAABNZQgATWUQAE1lFABNZSAATWWEAE1mCABNZhAATWYYAE1mIABNZigATWYwAE1mOABNZkAATWZIAE1mzABNZtgATWbkAE1m8ABNZvwATWcIAE1nFABNZyAATWcsAE1nNABNaSAATWkoAE1pMABNaTgATWlEAE1pSABNaUwATWlQAE1pVABNaVwATWlkAE1paABNaWwATWl0AE1peABNa2QATWtsAE1rdABNa3wATWuIAE1rjABNa5AATWuUAE1rmABNa6AATWuoAE1rrABNa7AATWu4AE1rvABNbagATW2wAE1tvABNbcQATW3QAE1t1ABNbdgATW3cAE1t4ABNbegATW3wAE1t9ABNbfgATW4AAE1uBABNbmgATW5sAE1ucABNbngATXBkAE1wbABNcHQATXB8AE1wiABNcIwATXCQAE1wlABNcJgATXCgAE1wqABNcKwATXCwAE1wuABNcLwATXKoAE1ysABNcrgATXLAAE1yzABNctAATXLUAE1y2ABNctwATXLkAE1y7ABNcvAATXL0AE1y/ABNcwAATXTsAE109ABNdPwATXUEAE11EABNdRQATXUYAE11HABNdSAATXUoAE11MABNdTQATXU4AE11QABNdUQATXcwAE13OABNd0AATXdIAE13VABNd1gATXdcAE13YABNd2QATXdsAE13dABNd3gATXd8AE13hABNd4gATXl0AE15fABNeYQATXmMAE15mABNeZwATXmgAE15pABNeagATXmwAE15uABNebwATXnAAE15yABNecwATXrwAE17gABNfBwATXysAE18uABNfMAATXzIAE180ABNfNgATXzgAE185ABNfPAATX1UAE19yABNfdAATX3YAE194ABNfegATX3wAE19+ABNfgAATX50AE1+gABNfowATX6YAE1+pABNfrAATX68AE1+yABNftAATYC8AE2AxABNgMwATYDUAE2A4ABNgOQATYDoAE2A7ABNgPAATYD4AE2BAABNgQQATYEIAE2BEABNgRQATYMAAE2DCABNgxAATYMYAE2DJABNgygATYMsAE2DMABNgzQATYM8AE2DRABNg0gATYNMAE2DVABNg1gATYVEAE2FTABNhVQATYVcAE2FaABNhWwATYVwAE2FdABNhXgATYWAAE2FiABNhYwATYWQAE2FmABNhZwATYeIAE2HkABNh5wATYekAE2HsABNh7QATYe4AE2HvABNh8AATYfIAE2H0ABNh9QATYfYAE2H4ABNh+QATYnQAE2J2ABNieAATYnoAE2J9ABNifgATYn8AE2KAABNigQATYoMAE2KFABNihgATYocAE2KJABNiigATYwUAE2MHABNjCQATYwsAE2MOABNjDwATYxAAE2MRABNjEgATYxQAE2MWABNjFwATYxgAE2MaABNjGwATY5YAE2OYABNjmgATY5wAE2OfABNjoAATY6EAE2OiABNjowATY6UAE2OnABNjqAATY6kAE2OrABNjrAATZD8AE2RiABNkggATZKIAE2SkABNkpgATZKgAE2SqABNkrQATZK4AE2SvABNksgATZLMAE2S1ABNktgATZLgAE2S7ABNkvAATZL0AE2TAABNkwQATZMYAE2TfABNk6AATZOoAE2TsABNk9QATZPgAE2T7ABNk/QATZUYAE2VqABNlkQATZbUAE2W4ABNlugATZbwAE2W+ABNlwAATZcIAE2XDABNlxgATZd8AE2YAABNmAgATZgQAE2YGABNmCAATZgoAE2YMABNmDgATZhAAE2YxABNmNAATZjcAE2Y6ABNmPQATZkAAE2ZDABNmRgATZkkAE2ZLABNmxgATZsgAE2bKABNmzAATZs8AE2bQABNm0QATZtIAE2bTABNm1QATZtcAE2bYABNm2QATZtsAE2bcABNnVwATZ1kAE2dbABNnXQATZ2AAE2dhABNnYgATZ2MAE2dkABNnZgATZ2gAE2dpABNnagATZ2wAE2dtABNn6AATZ+oAE2ftABNn7wATZ/IAE2fzABNn9AATZ/UAE2f2ABNn+AATZ/oAE2f7ABNn/AATZ/4AE2f/ABNoGAATaBkAE2gaABNoHAATaJcAE2iZABNomwATaJ0AE2igABNooQATaKIAE2ijABNopAATaKYAE2ioABNoqQATaKoAE2isABNorQATaSgAE2kqABNpLAATaS4AE2kxABNpMgATaTMAE2k0ABNpNQATaTcAE2k5ABNpOgATaTsAE2k9ABNpPgATabkAE2m7ABNpvQATab8AE2nCABNpwwATacQAE2nFABNpxgATacgAE2nKABNpywATacwAE2nOABNpzwATakoAE2pMABNqTgATalAAE2pTABNqVAATalUAE2pWABNqVwATalkAE2pbABNqXAATal0AE2pfABNqYAATatsAE2rdABNq3wATauEAE2rkABNq5QATauYAE2rnABNq6AATauoAE2rsABNq7QATau4AE2rwABNq8QATazoAE2teABNrhQATa6kAE2usABNrrgATa7AAE2uyABNrtAATa7YAE2u3ABNrugATa9MAE2vwABNr8gATa/QAE2v2ABNr+AATa/oAE2v8ABNr/gATbBsAE2weABNsIQATbCQAE2wnABNsKgATbC0AE2wwABNsMgATbK0AE2yvABNssQATbLMAE2y2ABNstwATbLgAE2y5ABNsugATbLwAE2y+ABNsvwATbMAAE2zCABNswwATbT4AE21AABNtQgATbUQAE21HABNtSAATbUkAE21KABNtSwATbU0AE21PABNtUAATbVEAE21TABNtVAATbc8AE23RABNt0wATbdUAE23YABNt2QATbdoAE23bABNt3AATbd4AE23gABNt4QATbeIAE23kABNt5QATbmAAE25iABNuZQATbmcAE25qABNuawATbmwAE25tABNubgATbnAAE25yABNucwATbnQAE252ABNudwATbvIAE270ABNu9gATbvgAE277ABNu/AATbv0AE27+ABNu/wATbwEAE28DABNvBAATbwUAE28HABNvCAATb4MAE2+FABNvhwATb4kAE2+MABNvjQATb44AE2+PABNvkAATb5IAE2+UABNvlQATb5YAE2+YABNvmQATcBQAE3AWABNwGAATcBoAE3AdABNwHgATcB8AE3AgABNwIQATcCMAE3AlABNwJgATcCcAE3ApABNwKgATcDsAE3A8ABNwPgATcMEAE3DlABNxCQATcSwAE3FTABNxcwATcZoAE3HBABNx4QATcgUAE3IpABNyKwATci4AE3IwABNyMgATcjQAE3I3ABNyOgATcjwAE3I+ABNyQQATckMAE3JFABNySAATcksAE3JMABNyUQATcmoAE3JvABNycQATcnYAE3J5ABNyewATcsQAE3LoABNzDwATczMAE3M2ABNzOAATczoAE3M8ABNzPgATc0AAE3NBABNzRAATc10AE3OCABNzhAATc4YAE3OIABNzigATc4wAE3OOABNzkAATc5IAE3OUABNzuQATc7wAE3O/ABNzwgATc8UAE3PIABNzywATc84AE3PRABNz1AATc9YAE3RRABN0UwATdFYAE3RYABN0WwATdFwAE3RdABN0XgATdF8AE3RhABN0YwATdGQAE3RlABN0ZwATdGgAE3R5ABN0egATdHwAE3T3ABN0+QATdPsAE3T9ABN1AAATdQEAE3UCABN1AwATdQQAE3UGABN1CAATdQkAE3UKABN1DAATdQ0AE3WIABN1igATdY0AE3WPABN1kgATdZMAE3WUABN1lQATdZYAE3WYABN1mgATdZsAE3WcABN1ngATdZ8AE3WwABN1tQATdbgAE3W6ABN1ywATddQAE3XXABN12gATddwAE3XvABN2agATdmwAE3ZuABN2cAATdnMAE3Z0ABN2dQATdnYAE3Z3ABN2eQATdnsAE3Z8ABN2fQATdn8AE3aAABN2+wATdv0AE3cAABN3AgATdwUAE3cGABN3BwATdwgAE3cJABN3CwATdw0AE3cOABN3DwATdxEAE3cSABN3IwATdyQAE3cmABN3oQATd6MAE3elABN3pwATd6oAE3erABN3rAATd60AE3euABN3sAATd7IAE3ezABN3tAATd7YAE3e3ABN4MgATeDQAE3g3ABN4OQATeDwAE3g9ABN4PgATeD8AE3hAABN4QgATeEQAE3hFABN4RgATeEgAE3hJABN4YgATeGMAE3hkABN4ZgATeOEAE3jjABN45QATeOcAE3jqABN46wATeOwAE3jtABN47gATePAAE3jyABN48wATePQAE3j2ABN49wATeXIAE3l0ABN5dwATeXkAE3l8ABN5fQATeX4AE3l/ABN5gAATeYIAE3mEABN5hQATeYYAE3mIABN5iQATebAAE3nJABN50gATedUAE3nYABN54QATeeQAE3nnABN56QATefwAE3qPABN6sgATetIAE3ryABN69AATevYAE3r4ABN6+gATev0AE3r+ABN6/wATewIAE3sDABN7BQATewYAE3sIABN7CwATewwAE3sNABN7EAATexEAE3sWABN7LwATezgAE3s6ABN7PAATe0UAE3tIABN7SwATe00AE3uWABN7ugATe+EAE3wFABN8CAATfAoAE3wMABN8DgATfBAAE3wSABN8EwATfBYAE3wvABN8UAATfFIAE3xUABN8VgATfFgAE3xaABN8XAATfF4AE3xgABN8gQATfIQAE3yHABN8igATfI0AE3yQABN8kwATfJYAE3yZABN8mwATfRYAE30YABN9GgATfRwAE30fABN9IAATfSEAE30iABN9IwATfSUAE30nABN9KAATfSkAE30rABN9LAATfacAE32pABN9qwATfa0AE32wABN9sQATfbIAE32zABN9tAATfbYAE324ABN9uQATfboAE328ABN9vQATfjgAE346ABN+PQATfj8AE35CABN+QwATfkQAE35FABN+RgATfkgAE35KABN+SwATfkwAE35OABN+TwATfmgAE35pABN+agATfmwAE37nABN+6QATfusAE37tABN+8AATfvEAE37yABN+8wATfvQAE372ABN++AATfvkAE376ABN+/AATfv0AE394ABN/egATf3wAE39+ABN/gQATf4IAE3+DABN/hAATf4UAE3+HABN/iQATf4oAE3+LABN/jQATf44AE4AJABOACwATgA0AE4APABOAEgATgBMAE4AUABOAFQATgBYAE4AYABOAGgATgBsAE4AcABOAHgATgB8AE4CaABOAnAATgJ4AE4CgABOAowATgKQAE4ClABOApgATgKcAE4CpABOAqwATgKwAE4CtABOArwATgLAAE4ErABOBLQATgS8AE4ExABOBNAATgTUAE4E2ABOBNwATgTgAE4E6ABOBPAATgT0AE4E+ABOBQAATgUEAE4GKABOBrgATgdUAE4H5ABOB/AATgf4AE4IAABOCAgATggQAE4IGABOCBwATggoAE4IjABOCQAATgkIAE4JEABOCRgATgkgAE4JKABOCTAATgk4AE4JrABOCbgATgnEAE4J0ABOCdwATgnoAE4J9ABOCgAATgoIAE4L9ABOC/wATgwEAE4MDABODBgATgwcAE4MIABODCQATgwoAE4MMABODDgATgw8AE4MQABODEgATgxMAE4OOABODkAATg5IAE4OUABODlwATg5gAE4OZABODmgATg5sAE4OdABODnwATg6AAE4OhABODowATg6QAE4QfABOEIQAThCMAE4QlABOEKAAThCkAE4QqABOEKwAThCwAE4QuABOEMAAThDEAE4QyABOENAAThDUAE4SwABOEsgAThLUAE4S3ABOEugAThLsAE4S8ABOEvQAThL4AE4TAABOEwgAThMMAE4TEABOExgAThMcAE4VCABOFRAAThUYAE4VIABOFSwAThUwAE4VNABOFTgAThU8AE4VRABOFUwAThVQAE4VVABOFVwAThVgAE4XTABOF1QAThdcAE4XZABOF3AAThd0AE4XeABOF3wATheAAE4XiABOF5AATheUAE4XmABOF6AAThekAE4ZkABOGZgAThmgAE4ZqABOGbQAThm4AE4ZvABOGcAAThnEAE4ZzABOGdQAThnYAE4Z3ABOGeQAThnoAE4cNABOHMAATh1AAE4dwABOHcgATh3QAE4d2ABOHeAATh3sAE4d8ABOHfQATh4AAE4eBABOHgwATh4QAE4eGABOHiQATh4oAE4eLABOHjgATh48AE4eUABOHrQATh7YAE4e4ABOHugATh8MAE4fGABOHyQATh8sAE4gUABOIOAATiF8AE4iDABOIhgATiIgAE4iKABOIjAATiI4AE4iQABOIkQATiJQAE4itABOIzgATiNAAE4jSABOI1AATiNYAE4jYABOI2gATiNwAE4jeABOI/wATiQIAE4kFABOJCAATiQsAE4kOABOJEQATiRQAE4kXABOJGQATiZQAE4mWABOJmAATiZoAE4mdABOJngATiZ8AE4mgABOJoQATiaMAE4mlABOJpgATiacAE4mpABOJqgATiiUAE4onABOKKQATiisAE4ouABOKLwATijAAE4oxABOKMgATijQAE4o2ABOKNwATijgAE4o6ABOKOwATirYAE4q4ABOKuwATir0AE4rAABOKwQATisIAE4rDABOKxAATisYAE4rIABOKyQATisoAE4rMABOKzQATiuYAE4rnABOK6AATiuoAE4tlABOLZwATi2kAE4trABOLbgATi28AE4twABOLcQATi3IAE4t0ABOLdgATi3cAE4t4ABOLegATi3sAE4v2ABOL+AATi/oAE4v8ABOL/wATjAAAE4wBABOMAgATjAMAE4wFABOMBwATjAgAE4wJABOMCwATjAwAE4yHABOMiQATjIsAE4yNABOMkAATjJEAE4ySABOMkwATjJQAE4yWABOMmAATjJkAE4yaABOMnAATjJ0AE40YABONGgATjRwAE40eABONIQATjSIAE40jABONJAATjSUAE40nABONKQATjSoAE40rABONLQATjS4AE42pABONqwATja0AE42vABONsgATjbMAE420ABONtQATjbYAE424ABONugATjbsAE428ABONvgATjb8AE44IABOOLAATjlMAE453ABOOegATjnwAE45+ABOOgAATjoIAE46EABOOhQATjogAE46hABOOvgATjsAAE47CABOOxAATjsYAE47IABOOygATjswAE47pABOO7AATju8AE47yABOO9QATjvgAE477ABOO/gATjwAAE497ABOPfQATj38AE4+BABOPhAATj4UAE4+GABOPhwATj4gAE4+KABOPjAATj40AE4+OABOPkAATj5EAE5AMABOQDgATkBAAE5ASABOQFQATkBYAE5AXABOQGAATkBkAE5AbABOQHQATkB4AE5AfABOQIQATkCIAE5CdABOQnwATkKEAE5CjABOQpgATkKcAE5CoABOQqQATkKoAE5CsABOQrgATkK8AE5CwABOQsgATkLMAE5EuABORMAATkTMAE5E1ABOROAATkTkAE5E6ABOROwATkTwAE5E+ABORQAATkUEAE5FCABORRAATkUUAE5HAABORwgATkcQAE5HGABORyQATkcoAE5HLABORzAATkc0AE5HPABOR0QATkdIAE5HTABOR1QATkdYAE5JRABOSUwATklUAE5JXABOSWgATklsAE5JcABOSXQATkl4AE5JgABOSYgATkmMAE5JkABOSZgATkmcAE5LiABOS5AATkuYAE5LoABOS6wATkuwAE5LtABOS7gATku8AE5LxABOS8wATkvQAE5L1ABOS9wATkvgAE5MJABOTCgATkwwAE5MlABOTJgATkycAE5MpABOTQgATk0MAE5NEABOTRgATk18AE5NgABOTYQATk2MAE5N0ABOTgwATk5wAE5OrABOTvQATk9EAE5PoABOT+gATlAsAE5QMABOUDgATlCcAE5QoABOUKQATlCsAE5RAABOUUQATlFsAE5RoAAAAAAAABAQAAAAAAAHiHAAAAAAAAAAAAAAAAAATlHA= + + ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/ObvEngine-v49.xcdatamodel + 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WAAAc2gAAHOkAABz4AAAc+QAAHQcAAB0IAAAdCQAAHQoAAB0LAAAdDAAAHSEAAB0iAAAdKgAAHTYAAB1KAAAdWQAAHWgAAB13AAAdewAAHYoAAB2ZAAAdqAAAHbcAAB3GAAAd0gAAHeQAAB3zAAAeAgAAHhEAAB4gAAAeLwAAHj4AAB5NAAAeYgAAHmMAAB5rAAAedwAAHosAAB6aAAAeqQAAHrgAAB68AAAeywAAHtoAAB7pAAAe+AAAHwcAAB8TAAAfJQAAHzQAAB9DAAAfUgAAH2EAAB9iAAAfcQAAH4AAAB+PAAAfpAAAH6UAAB+tAAAfuQAAH80AAB/cAAAf6wAAH/oAAB/+AAAgDQAAIBwAACArAAAgOgAAIEkAACBVAAAgZwAAIHYAACCFAAAglAAAIKMAACCyAAAgwQAAINAAACDlAAAg5gAAIO4AACD6AAAhDgAAIR0AACEsAAAhOwAAIT8AACFOAAAhXQAAIWwAACF7AAAhigAAIZYAACGoAAAhtwAAIcYAACHVAAAh5AAAIfMAACICAAAiEQAAIiYAACInAAAiLwAAIjsAACJPAAAiXgAAIm0AACJ8AAAigAAAIo8AACKeAAAirQAAIrwAACLLAAAi1wAAIukAACL4AAAjBwAAIxYAACMlAAAjNAAAI0MAACNSAAAjUwAAI1YAACNfAAAjbgAAI30AACOMAAAjoQAAI6IAACOqAAAjtgAAI8oAACPZAAAj6AAAI/cAACP7AAAkCgAAJBkAACQoAAAkNwAAJEYAACRSAAAkZAAAJHMAACSCAAAkkQAAJKAAACSvAAAkvgAAJM0AACTQAAAk3wAAJO4AACT9AAAlAAAAJRoAACUbAAAlIQAAJS0AACVDAAAlUgAAJVUAACVkAAAlcwAAJXcAACV8AAAlfQAAJX4AACWNAAAlnAAAJZ8AACWuAAAlvQAAJcEAACXQAAAl3wAAJeAAACYAAAAmAQAAJgIAACYDAAAmBAAAJgUAACYGAAAmBwAAJggAACYJAAAmCgAAJgsAACYMAAAmDQAAJg4AACYjAAAmJAAAJiwAACY4AAAmTAAAJlsAACZqAAAmeQAAJn0AACaMAAAmmwAAJqoAACa5AAAmyAAAJtQAACbmAAAm9QAAJwQAACcTAAAnIgAAJzEAACdAAAAnQQAAJ1AAACdlAAAnZgAAJ24AACd6AAAnjgAAJ50AACesAAAnuwAAJ78AACfOAAAn3QAAJ+wAACf7AAAoCgAAKBYAACgoAAAoNwAAKEYAAChVAAAoZAAAKH4AACh/AAAohQAAKJEAACinAAAotgAAKLkAACjIAAAo1wAAKNsAACjhAAAo4gAAKOMAACjkAAAo8wAAKQIAACkFAAApFAAAKSMAACknAAApNgAAKUUAAClGAAApYAAAKWEAACliAAApYwAAKWQAACllAAApZgAAKWcAACloAAApaQAAKWoAAClrAAApgAAAKYEAACmJAAAplQAAKakAACm4AAApxwAAKdYAACnaAAAp6QAAKfgAACoHAAAqFgAAKiUAACoxAAAqQwAAKlIAACphAAAqcAAAKn8AACqOAAAqnQAAKqwAACrBAAAqwgAAKsoAACrWAAAq6gAAKvkAACsIAAArFwAAKxsAACsqAAArOQAAK0gAACtXAAArZgAAK3IAACuEAAArkwAAK6IAACuxAAArwAAAK88AACveAAAr7QAALAIAACwDAAAsCwAALBcAACwrAAAsOgAALEkAACxYAAAsXAAALGsAACx6AAAsiQAALJgAACynAAAsswAALMUAACzUAAAs4wAALPIAAC0BAAAtEAAALR8AAC0uAAAtQwAALUQAAC1MAAAtWAAALWwAAC17AAAtigAALZkAAC2dAAAtrAAALbsAAC3KAAAt2QAALegAAC30AAAuBgAALhUAAC4kAAAuMwAALkIAAC5cAAAuXQAALmMAAC5vAAAuhQAALpQAAC6XAAAupgAALrUAAC65AAAuwAAALsEAAC7CAAAuwwAALsQAAC7TAAAu4gAALuUAAC70AAAvAwAALwcAAC8WAAAvJQAALyYAAC9AAAAvQQAAL0IAAC9DAAAvRAAAL0UAAC9GAAAvRwAAL0gAAC9JAAAvSgAAL0sAAC9gAAAvYQAAL2kAAC91AAAviQAAL5gAAC+nAAAvtgAAL7oAAC/JAAAv2AAAL+cAAC/2AAAwBQAAMBEAADAjAAAwMgAAMEEAADBQAAAwXwAAMG4AADB9AAAwjAAAMKEAADCiAAAwqgAAMLYAADDKAAAw2QAAMOgAADD3AAAw+wAAMQoAADEZAAAxKAAAMTcAADFGAAAxUgAAMWQAADFzAAAxggAAMZEAADGgAAAxrwAAMb4AADHNAAAx4gAAMeMAADHrAAAx9wAAMgsAADIaAAAyKQAAMjgAADI8AAAySwAAMloAADJpAAAyeAAAMocAADKTAAAypQAAMrQAADLDAAAy0gAAMuEAADLiAAAy8QAAMwAAADMPAAAzJAAAMyUAADMtAAAzOQAAM00AADNcAAAzawAAM3oAADN+AAAzjQAAM5wAADOrAAAzugAAM8kAADPVAAAz5wAAM/YAADQFAAA0FAAANCMAADQyAAA0QQAANFAAADRlAAA0ZgAANG4AADR6AAA0jgAANJ0AADSsAAA0uwAANL8AADTOAAA03QAANOwAADT7AAA1CgAANRYAADUoAAA1NwAANUYAADVVAAA1ZAAANXMAADWCAAA1kQAANaYAADWnAAA1rwAANbsAADXPAAA13gAANe0AADX8AAA2AAAANg8AADYeAAA2LQAANjwAADZLAAA2VwAANmkAADZ4AAA2hwAANpYAADalAAA2tAAANsMAADbSAAA25wAANugAADbwAAA2/AAANxAAADcfAAA3LgAANz0AADdBAAA3UAAAN18AADduAAA3fQAAN4wAADeYAAA3qgAAN7kAADfIAAA31wAAN+YAADf1AAA4BAAAOBMAADgoAAA4KQAAODEAADg9AAA4UQAAOGAAADhvAAA4fgAAOIIAADiRAAA4oAAAOK8AADi+AAA4zQAAONkAADjrAAA4+gAAOQkAADkYAAA5JwAAOTYAADlFAAA5VAAAOWkAADlqAAA5cgAAOX4AADmSAAA5oQAAObAAADm/AAA5wwAAOdIAADnhAAA58AAAOf8AADoOAAA6GgAAOiwAADo7AAA6SgAAOlkAADpoAAA6dwAAOoYAADqVAAA6qgAAOqsAADqzAAA6vwAAOtMAADriAAA68QAAOwAAADsEAAA7EwAAOyIAADsxAAA7QAAAO08AADtbAAA7bQAAO3wAADuLAAA7mgAAO6kAADu4AAA7xwAAO9YAADvrAAA77AAAO/QAADwAAAA8FAAAPCMAADwyAAA8QQAAPEUAADxUAAA8YwAAPHIAADyBAAA8kAAAPJwAADyuAAA8vQAAPMwAADzbAAA86gAAPPkAAD0IAAA9FwAAPRoAAD0pAAA9OAAAPUcAAD1cAAA9XQAAPWUAAD1xAAA9hQAAPZQAAD2jAAA9sgAAPbYAAD3FAAA91AAAPeMAAD3yAAA+AQAAPg0AAD4fAAA+LgAAPj0AAD5MAAA+WwAAPmoAAD55AAA+iAAAPp0AAD6eAAA+pgAAPrIAAD7GAAA+1QAAPuQAAD7zAAA+9wAAPwYAAD8VAAA/JAAAPzMAAD9CAAA/TgAAP2AAAD9vAAA/fgAAP40AAD+cAAA/qwAAP7oAAD/JAAA/3gAAP98AAD/nAAA/8wAAQAcAAEAWAABAJQAAQDQAAEA4AABARwAAQFYAAEBlAABAdAAAQIMAAECPAABAoQAAQLAAAEC/AABAzgAAQN0AAED3AABA+AAAQP4AAEEKAABBIAAAQS8AAEEyAABBQQAAQVAAAEFUAABBWAAAQVkAAEFoAABBdwAAQXoAAEGJAABBmAAAQZwAAEGrAABBugAAQbsAAEHFAABBxgAAQccAAEHcAABB3QAAQeUAAEHxAABCBQAAQhQAAEIjAABCMgAAQjYAAEJFAABCVAAAQmMAAEJyAABCgQAAQo0AAEKfAABCrgAAQr0AAELMAABC2wAAQuoAAEL5AABDCAAAQx0AAEMeAABDJgAAQzIAAENGAABDVQAAQ2QAAENzAABDdwAAQ4YAAEOVAABDpAAAQ7MAAEPCAABDzgAAQ+AAAEPvAABD/gAARA0AAEQcAABEHQAARCwAAEQ7AABESgAARF8AAERgAABEaAAARHQAAESIAABElwAARKYAAES1AABEuQAARMgAAETXAABE5gAARPUAAEUEAABFEAAARSIAAEUxAABFQAAARU8AAEVeAABFbQAARXwAAEWLAABFjgAARZ0AAEWsAABFuwAARdAAAEXRAABF2QAAReUAAEX5AABGCAAARhcAAEYmAABGKgAARjkAAEZIAABGVwAARmYAAEZ1AABGgQAARpMAAEaiAABGsQAARsAAAEbPAABG3gAARu0AAEb8AABHEQAARxIAAEcaAABHJgAARzoAAEdJAABHWAAAR2cAAEdrAABHegAAR4kAAEeYAABHpwAAR7YAAEfCAABH1AAAR+MAAEfyAABIAQAASBAAAEgfAABILgAASD0AAEhSAABIUwAASFsAAEhnAABIewAASIoAAEiZAABIqAAASKwAAEi7AABIygAASNkAAEjoAABI9wAASQMAAEkVAABJJAAASTMAAElCAABJUQAASWAAAElvAABJfgAASZMAAEmUAABJnAAASagAAEm8AABJywAASdoAAEnpAABJ7QAASfwAAEoLAABKGgAASikAAEo4AABKRAAASlYAAEplAABKdAAASoMAAEqSAABKoQAASrAAAEq/AABKwgAAStEAAErgAABK7wAASwQAAEsFAABLDQAASxkAAEstAABLPAAAS0sAAEtaAABLXgAAS20AAEt8AABLiwAAS5oAAEupAABLtQAAS8cAAEvWAABL5QAAS/QAAEwDAABMEgAATCEAAEwwAABMRQAATEYAAExOAABMWgAATG4AAEx9AABMjAAATJsAAEyfAABMrgAATL0AAEzMAABM2wAATOoAAEz2AABNCAAATRcAAE0mAABNNQAATUQAAE1TAABNYgAATXEAAE2GAABNhwAATY8AAE2bAABNrwAATb4AAE3NAABN3AAATeAAAE3vAABN/gAATg0AAE4cAABOKwAATjcAAE5JAABOWAAATmcAAE52AABOhQAATpQAAE6jAABOsgAATscAAE7IAABO0AAATtwAAE7wAABO/wAATw4AAE8dAABPIQAATzAAAE8/AABPTgAAT10AAE9sAABPeAAAT4oAAE+ZAABPqAAAT7cAAE/GAABP1QAAT+QAAE/zAABQCAAAUAkAAFARAABQHQAAUDEAAFBAAABQTwAAUF4AAFBiAABQcQAAUIAAAFCPAABQngAAUK0AAFC5AABQywAAUNoAAFDpAABQ+AAAUQcAAFEWAABRJQAAUSYAAFE1AABRSgAAUUsAAFFTAABRXwAAUXMAAFGCAABRkQAAUaAAAFGkAABRswAAUcIAAFHRAABR4AAAUe8AAFH7AABSDQAAUhwAAFIrAABSOgAAUkkAAFJYAABSZwAAUmgAAFJ3AABSjAAAUo0AAFKVAABSoQAAUrUAAFLEAABS0wAAUuIAAFLmAABS9QAAUwQAAFMTAABTIgAAUzEAAFM9AABTTwAAU14AAFNtAABTfAAAU4sAAFOaAABTqQAAU7gAAFPNAABTzgAAU9YAAFPiAABT9gAAVAUAAFQUAABUIwAAVCcAAFQ2AABURQAAVFQAAFRjAABUcgAAVH4AAFSQAABUnwAAVK4AAFS9AABUzAAAVNsAAFTqAABU6wAAVPoAAFUPAABVEAAAVRgAAFUkAABVOAAAVUcAAFVWAABVZQAAVWkAAFV4AABVhwAAVZYAAFWlAABVtAAAVcAAAFXSAABV4QAAVfAAAFX/AABWDgAAVh0AAFYsAABWOwAAVlAAAFZRAABWWQAAVmUAAFZ5AABWiAAAVpcAAFamAABWqgAAVrkAAFbIAABW1wAAVuYAAFb1AABXAQAAVxMAAFciAABXMQAAV0AAAFdPAABXXgAAV20AAFd8AABXkQAAV5IAAFeaAABXpgAAV7oAAFfJAABX2AAAV+cAAFfrAABX+gAAWAkAAFgYAABYJwAAWDYAAFhCAABYVAAAWGMAAFhyAABYgQAAWJAAAFifAABYrgAAWK8AAFi+AABY0wAAWNQAAFjcAABY6AAAWPwAAFkLAABZGgAAWSkAAFktAABZPAAAWUsAAFlaAABZaQAAWXgAAFmEAABZlgAAWaUAAFm0AABZwwAAWdIAAFnhAABZ8AAAWf8AAFoCAABaHAAAWh0AAFojAABaLwAAWkUAAFpUAABaVwAAWmYAAFp1AABaeAAAWocAAFqWAABamQAAWqgAAFq3AABauwAAWsoAAFrZAABa2gAAWuQAAFrlAABa5gAAWucAAFr8AABa/QAAWwUAAFsRAABbJQAAWzQAAFtDAABbUgAAW1YAAFtlAABbdAAAW4MAAFuSAABboQAAW60AAFu/AABbzgAAW90AAFvsAABb+wAAXAoAAFwZAABcGgAAXCkAAFw+AABcPwAAXEcAAFxTAABcZwAAXHYAAFyFAABclAAAXJgAAFynAABctgAAXMUAAFzUAABc4wAAXO8AAF0BAABdEAAAXR8AAF0uAABdPQAAXVcAAF1YAABdXgAAXWoAAF2AAABdjwAAXZIAAF2hAABdsAAAXbMAAF3CAABd0QAAXdQAAF3jAABd8gAAXfYAAF4FAABeFAAAXhUAAF45AABeOgAAXjsAAF48AABePQAAXj4AAF4/AABeQAAAXkEAAF5CAABeQwAAXkQAAF5FAABeRgAAXkcAAF5IAABeSQAAXl4AAF5fAABeZwAAXnMAAF6HAABelgAAXqUAAF60AABeuAAAXscAAF7WAABe5QAAXvQAAF8DAABfDwAAXyEAAF8wAABfPwAAX04AAF9dAABfbAAAX3sAAF+KAABfnwAAX6AAAF+oAABftAAAX8gAAF/XAABf5gAAX/UAAF/5AABgCAAAYBcAAGAmAABgNQAAYEQAAGBQAABgYgAAYHEAAGCAAABgjwAAYJ4AAGCtAABgvAAAYMsAAGDgAABg4QAAYOkAAGD1AABhCQAAYRgAAGEnAABhNgAAYToAAGFJAABhWAAAYWcAAGF2AABhhQAAYZEAAGGjAABhsgAAYcEAAGHQAABh3wAAYe4AAGH9AABiDAAAYiEAAGIiAABiKgAAYjYAAGJKAABiWQAAYmgAAGJ3AABiewAAYooAAGKZAABiqAAAYrcAAGLGAABi0gAAYuQAAGLzAABjAgAAYxEAAGMgAABjIQAAYzAAAGM/AABjTgAAY2MAAGNkAABjbAAAY3gAAGOMAABjmwAAY6oAAGO5AABjvQAAY8wAAGPbAABj6gAAY/kAAGQIAABkFAAAZCYAAGQ1AABkRAAAZFMAAGRiAABkcQAAZIAAAGSPAABkpAAAZKUAAGStAABkuQAAZM0AAGTcAABk6wAAZPoAAGT+AABlDQAAZRwAAGUrAABlOgAAZUkAAGVVAABlZwAAZXYAAGWFAABllAAAZaMAAGW9AABlvgAAZcQAAGXQAABl5gAAZfUAAGX4AABmBwAAZhYAAGYZAABmKAAAZjcAAGY6AABmSQAAZlgAAGZcAABmawAAZnoAAGZ7AABmhwAAZogAAGaJAABmigAAZosAAGagAABmoQAAZqkAAGa1AABmyQAAZtgAAGbnAABm9gAAZvoAAGcJAABnGAAAZycAAGc2AABnRQAAZ1EAAGdjAABncgAAZ4EAAGeQAABnnwAAZ7kAAGe6AABnwAAAZ8wAAGfiAABn8QAAZ/QAAGgDAABoEgAAaBYAAGgdAABoHgAAaB8AAGggAABoIQAAaDAAAGg/AABoQgAAaFEAAGhgAABoZAAAaHMAAGiCAABogwAAaK8AAGiwAABosQAAaLIAAGizAABotAAAaLUAAGi2AABotwAAaLgAAGi5AABougAAaLsAAGi8AABovQAAaL4AAGi/AABowAAAaMEAAGjCAABowwAAaNgAAGjZAABo4QAAaO0AAGkBAABpEAAAaR8AAGkuAABpMgAAaUEAAGlQAABpXwAAaW4AAGl9AABpiQAAaZsAAGmqAABpuQAAacgAAGnXAABp5gAAafUAAGoEAABqGQAAahoAAGoiAABqLgAAakIAAGpRAABqYAAAam8AAGpzAABqggAAapEAAGqgAABqrwAAar4AAGrKAABq3AAAausAAGr6AABrCQAAaxgAAGsnAABrNgAAa0UAAGtaAABrWwAAa2MAAGtvAABrgwAAa5IAAGuhAABrsAAAa7QAAGvDAABr0gAAa+EAAGvwAABr/wAAbAsAAGwdAABsLAAAbC0AAGw8AABsSwAAbFoAAGxpAABseAAAbIcAAGycAABsnQAAbKUAAGyxAABsxQAAbNQAAGzjAABs8gAAbPYAAG0FAABtFAAAbSMAAG0yAABtQQAAbU0AAG1fAABtbgAAbX0AAG2MAABtmwAAbbUAAG22AABtvAAAbcgAAG3eAABt7QAAbfAAAG3/AABuDgAAbhEAAG4gAABuLwAAbjIAAG5BAABuUAAAblQAAG5jAABucgAAbnMAAG6FAABuhgAAbocAAG6IAABuiQAAbooAAG6LAABujAAAbqEAAG6iAABuqgAAbrYAAG7KAABu2QAAbugAAG73AABu+wAAbwoAAG8ZAABvKAAAbzcAAG9GAABvUgAAb2QAAG9zAABvggAAb5EAAG+gAABvrwAAb74AAG/NAABv4gAAb+MAAG/rAABv9wAAcAsAAHAaAABwKQAAcDgAAHA8AABwSwAAcFoAAHBpAABweAAAcIcAAHCTAABwpQAAcLQAAHDDAABw0gAAcOEAAHDwAABw/wAAcQ4AAHEjAABxJAAAcSwAAHE4AABxTAAAcVsAAHFqAABxeQAAcX0AAHGMAABxmwAAcaoAAHG5AABxyAAAcdQAAHHmAABx9QAAcgQAAHITAAByIgAAcjEAAHJAAAByTwAAcmQAAHJlAABybQAAcnkAAHKNAABynAAAcqsAAHK6AAByvgAAcs0AAHLcAABy6wAAcvoAAHMJAABzFQAAcycAAHM2AABzRQAAc1QAAHNjAABzcgAAc4EAAHOQAABzpQAAc6YAAHOuAABzugAAc84AAHPdAABz7AAAc/sAAHP/AAB0DgAAdB0AAHQsAAB0OwAAdEoAAHRWAAB0aAAAdHcAAHSGAAB0lQAAdKQAAHSzAAB0wgAAdNEAAHTmAAB05wAAdO8AAHT7AAB1DwAAdR4AAHUtAAB1PAAAdUAAAHVPAAB1XgAAdW0AAHV8AAB1iwAAdZcAAHWpAAB1uAAAdccAAHXWAAB15QAAdfQAAHYDAAB2EgAAdicAAHYoAAB2MAAAdjwAAHZQAAB2XwAAdm4AAHZ9AAB2gQAAdpAAAHafAAB2rgAAdr0AAHbMAAB22AAAduoAAHb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0AACaAwAAmhIAAJohAACaLQAAmj8AAJpOAACaXQAAmmwAAJp7AACalQAAmpYAAJqcAACaqAAAmr4AAJrNAACa0AAAmt8AAJruAACa8QAAmwAAAJsPAACbEgAAmyEAAJswAACbNAAAm0MAAJtSAACbUwAAm18AAJtgAACbYQAAm2IAAJtjAACbeAAAm3kAAJuBAACbjQAAm6EAAJuwAACbvwAAm84AAJvSAACb4QAAm/AAAJv/AACcDgAAnB0AAJwpAACcOwAAnEoAAJxZAACcaAAAnHcAAJyGAACclQAAnKQAAJy5AACcugAAnMIAAJzOAACc4gAAnPEAAJ0AAACdDwAAnRMAAJ0iAACdMQAAnUAAAJ1PAACdXgAAnWoAAJ18AACdiwAAnZoAAJ2pAACduAAAnccAAJ3WAACd5QAAnfoAAJ37AACeAwAAng8AAJ4jAACeMgAAnkEAAJ5QAACeVAAAnmMAAJ5yAACegQAAnpAAAJ6fAACeqwAAnr0AAJ7MAACe2wAAnuoAAJ75AACfCAAAnxcAAJ8YAACfJwAAnzwAAJ89AACfRQAAn1EAAJ9lAACfdAAAn4MAAJ+SAACflgAAn6UAAJ+0AACfwwAAn9IAAJ/hAACf7QAAn/8AAKAOAACgHQAAoCwAAKA7AACgSgAAoFkAAKBoAACgawAAoHoAAKCJAACgmAAAoK0AAKCuAACgtgAAoMIAAKDWAACg5QAAoPQAAKEDAAChBwAAoRYAAKElAAChNAAAoUMAAKFSAAChXgAAoXAAAKF/AAChjgAAoZ0AAKGsAAChxgAAoccAAKHNAACh2QAAoe8AAKH+AACiAQAAohAAAKIfAACiIgAAojEAAKJAAACiQwAAolIAAKJhAACiZQAAonQAAKKDAACihAAAoooAAKKLAACioAAAoqEAAKKpAACitQAAoskAAKLYAACi5wAAovYAAKL6AACjCQAAoxgAAKMnAACjNgAAo0UAAKNRAACjYwAAo3IAAKOBAACjkAAAo58AAKOuAACjvQAAo8wAAKPQAACj2QAAo9oAAKP8AACj/QAApAMAAKQPAACkJQAApDQAAKQ3AACkRgAApFUAAKRYAACkZwAApHYAAKR5AACkiAAApJcAAKSbAACkqgAApLkAAKS6AACkyAAApMkAAKTKAACkywAApMwAAKTNAACk4gAApOMAAKTrAACk9wAApQsAAKUaAAClKQAApTgAAKU8AAClSwAApVoAAKVpAACleAAApYcAAKWTAAClpQAApbQAAKXDAACl0gAApeEAAKXwAACl/wAApg4AAKYjAACmJAAApiwAAKY4AACmTAAAplsAAKZqAACmeQAApn0AAKaMAACmmwAApqoAAKa5AACmyAAAptQAAKbmAACm9QAApwQAAKcTAACnIgAApzEAAKdAAACnTwAAp2QAAKdlAACnbQAAp3kAAKeNAACnnAAAp6sAAKe6AACnvgAAp80AAKfcAACn6wAAp/oAAKgJAACoFQAAqCcAAKg2AACoRQAAqFQAAKhjAACocgAAqIEAAKiQAACopQAAqKYAAKiuAACougAAqM4AAKjdAACo7AAAqPsAAKj/AACpDgAAqR0AAKksAACpOwAAqUoAAKlWAACpaAAAqXcAAKmGAACplQAAqaQAAKmzAACpwgAAqdEAAKnmAACp5wAAqe8AAKn7AACqDwAAqh4AAKotAACqPAAAqkAAAKpPAACqXgAAqm0AAKp8AACqiwAAqpcAAKqpAACquAAAqscAAKrWAACq1wAAquYAAKr1AACrBAAAqxMAAKsWAACrHAAAqyMAAKs9AACrPgAAq0QAAKtQAACrZgAAq3UAAKt4AACrhwAAq5YAAKuZAACrqAAAq7cAAKu6AACryQAAq9gAAKvcAACr6wAAq/oAAKv7AACsAQAArAIAAKwXAACsGAAArCAAAKwsAACsQAAArE8AAKxeAACsbQAArHEAAKyAAACsjwAArJ4AAKytAACsvAAArMgAAKzaAACs6QAArPgAAK0HAACtFgAArTAAAK0xAACtNwAArUMAAK1ZAACtaAAArWsAAK16AACtiQAArYwAAK2bAACtqgAAra0AAK28AACtywAArc8AAK3eAACt7QAAre4AAK30AACt9QAArgoAAK4LAACuEwAArh8AAK4zAACuQgAArlEAAK5gAACuZAAArnMAAK6CAACukQAArqAAAK6vAACuuwAArs0AAK7cAACu6wAArvoAAK8JAACvGAAArycAAK82AACvOgAAr0EAAK9CAACvSAAAr1cAAK9mAACvdQAAr3kAAK96AACvgQAAr5sAAK+cAACvogAAr64AAK/EAACv0wAAr9YAAK/lAACv9AAAr/cAALAGAACwFQAAsBgAALAnAACwNgAAsDoAALBJAACwWAAAsFkAALBfAACwYAAAsHUAALB2AACwfgAAsIoAALCeAACwrQAAsLwAALDLAACwzwAAsN4AALDtAACw/AAAsQsAALEaAACxJgAAsTgAALFHAACxVgAAsWUAALF0AACxjgAAsY8AALGVAACxoQAAsbcAALHGAACxyQAAsdgAALHnAACx6gAAsfkAALIIAACyCwAAshoAALIpAACyLQAAsjwAALJLAACyTAAAslQAALJVAACyVgAAsmsAALJsAACydAAAsoAAALKUAACyowAAsrIAALLBAACyxQAAstQAALLjAACy8gAAswEAALMQAACzHAAAsy4AALM9AACzTAAAs1sAALNqAACzeQAAs4gAALOXAACzrAAAs60AALO1AACzwQAAs9UAALPkAACz8wAAtAIAALQGAAC0FQAAtCQAALQzAAC0QgAAtFEAALRdAAC0bwAAtH4AALSNAAC0jgAAtJ0AALSsAAC0uwAAtMoAALTZAAC07gAAtO8AALT3AAC1AwAAtRcAALUmAAC1NQAAtUQAALVIAAC1VwAAtWYAALV1AAC1hAAAtZMAALWfAAC1sQAAtcAAALXPAAC13gAAte0AALX8AAC2CwAAthoAALYeAAC2JQAAtiYAALY1AAC2RAAAtlMAALZXAAC2WAAAtmcAALZ2AAC2hQAAtogAALaNAAC2nAAAtqsAALa6AAC2zwAAttAAALbYAAC25AAAtvgAALcHAAC3FgAAtyUAALcpAAC3OAAAt0cAALdWAAC3ZQAAt3QAALeAAAC3kgAAt6EAALewAAC3vwAAt84AALfoAAC36QAAt+8AALf7AAC4EQAAuCAAALgjAAC4MgAAuEEAALhEAAC4UwAAuGIAALhlAAC4dAAAuIMAALiHAAC4lgAAuKUAALimAAC4tgAAuLcAALi4AAC4uQAAuLoAALi7AAC40AAAuNEAALjZAAC45QAAuPkAALkIAAC5FwAAuSYAALkqAAC5OQAAuUgAALlXAAC5ZgAAuXUAALmBAAC5kwAAuaIAALmxAAC5wAAAuc8AALneAAC57QAAufwAALoRAAC6EgAAuhoAALomAAC6OgAAukkAALpYAAC6ZwAAumsAALp6AAC6iQAAupgAALqnAAC6tgAAusIAALrUAAC64wAAuvIAALsBAAC7EAAAux8AALsuAAC7PQAAu1IAALtTAAC7WwAAu2cAALt7AAC7igAAu5kAALuoAAC7rAAAu7sAALvKAAC72QAAu+gAALv3AAC8AwAAvBUAALwkAAC8MwAAvEIAALxRAAC8YAAAvG8AALx+AAC8kwAAvJQAALycAAC8qAAAvLwAALzLAAC82gAAvOkAALztAAC8/AAAvQsAAL0aAAC9KQAAvTgAAL1EAAC9VgAAvWUAAL10AAC9gwAAvZIAAL2hAAC9sAAAvb8AAL3UAAC91QAAvd0AAL3pAAC9/QAAvgwAAL4bAAC+KgAAvi4AAL49AAC+TAAAvlsAAL5qAAC+eQAAvoUAAL6XAAC+pgAAvrUAAL7EAAC+0wAAvuIAAL7xAAC/AAAAvxUAAL8WAAC/HgAAvyoAAL8+AAC/TQAAv1wAAL9rAAC/bwAAv34AAL+NAAC/nAAAv6sAAL+6AAC/xgAAv9gAAL/nAAC/9gAAwAUAAMAUAADAIwAAwDIAAMBBAADARAAAwFMAAMBiAADAcQAAwIYAAMCHAADAjwAAwJsAAMCvAADAvgAAwM0AAMDcAADA4AAAwO8AAMD+AADBDQAAwRwAAMErAADBNwAAwUkAAMFYAADBZwAAwXYAAMGFAADBlAAAwaMAAMGyAADBxwAAwcgAAMHQAADB3AAAwfAAAMH/AADCDgAAwh0AAMIhAADCMAAAwj8AAMJOAADCXQAAwmwAAMJ4AADCigAAwpkAAMKoAADCtwAAwsYAAMLVAADC5AAAwvMAAMMIAADDCQAAwxEAAMMdAADDMQAAw0AAAMNPAADDXgAAw2IAAMNxAADDgAAAw48AAMOeAADDrQAAw7kAAMPLAADD2gAAw+kAAMP4AADEBwAAxBYAAMQlAADEJgAAxDUAAMRKAADESwAAxFMAAMRfAADEcwAAxIIAAMSRAADEoAAAxKQAAMSzAADEwgAAxNEAAMTgAADE7wAAxPsAAMUNAADFHAAAxSsAAMU6AADFSQAAxWMAAMVkAADFagAAxXYAAMWMAADFmwAAxZ4AAMWtAADFvAAAxb8AAMXOAADF3QAAxeAAAMXvAADF/gAAxgIAAMYRAADGIAAAxiEAAMYzAADGNAAAxjUAAMY2AADGNwAAxjgAAMY5AADGTgAAxk8AAMZXAADGYwAAxncAAMaGAADGlQAAxqQAAMaoAADGtwAAxsYAAMbVAADG5AAAxvMAAMb/AADHEQAAxyAAAMcvAADHPgAAx00AAMdcAADHawAAx3oAAMePAADHkAAAx5gAAMekAADHuAAAx8cAAMfWAADH5QAAx+kAAMf4AADIBwAAyBYAAMglAADINAAAyEAAAMhSAADIYQAAyHAAAMh/AADIjgAAyJ0AAMisAADIrQAAyLwAAMjRAADI0gAAyNoAAMjmAADI+gAAyQkAAMkYAADJJwAAySsAAMk6AADJSQAAyVgAAMlnAADJdgAAyYIAAMmUAADJowAAybIAAMnBAADJ0AAAyd8AAMnuAADJ/QAAyhIAAMoTAADKGwAAyicAAMo7AADKSgAAylkAAMpoAADKbAAAynsAAMqKAADKmQAAyqgAAMq3AADKwwAAytUAAMrkAADK8wAAywIAAMsRAADLIAAAyy8AAMs+AADLUwAAy1QAAMtcAADLaAAAy3wAAMuLAADLmgAAy6kAAMutAADLvAAAy8sAAMvaAADL6QAAy/gAAMwEAADMFgAAzCUAAMw0AADMQwAAzFIAAMxhAADMcAAAzH8AAMyUAADMlQAAzJ0AAMypAADMvQAAzMwAAMzbAADM6gAAzO4AAMz9AADNDAAAzRsAAM0qAADNOQAAzUUAAM1XAADNZgAAzXUAAM2EAADNkwAAzaIAAM2xAADNwAAAzdUAAM3WAADN3gAAzeoAAM3+AADODQAAzhwAAM4rAADOLwAAzj4AAM5NAADOXAAAzmsAAM56AADOhgAAzpgAAM6nAADOtgAAzsUAAM7UAADO4wAAzvIAAM8BAADPFgAAzxcAAM8fAADPKwAAzz8AAM9OAADPXQAAz2wAAM9wAADPfwAAz44AAM+dAADPrAAAz7sAAM/HAADP2QAAz+gAAM/3AADQBgAA0BUAANAkAADQMwAA0EIAANBFAADQVAAA0GMAANByAADQhwAA0IgAANCQAADQnAAA0LAAANC/AADQzgAA0N0AANDhAADQ8AAA0P8AANEOAADRHQAA0SwAANE4AADRSgAA0VkAANFoAADRdwAA0YYAANGVAADRpAAA0aUAANG0AADRyQAA0coAANHSAADR3gAA0fIAANIBAADSEAAA0h8AANIjAADSMgAA0kEAANJQAADSXwAA0m4AANJ6AADSjAAA0psAANKqAADSuQAA0sgAANLXAADS5gAA0vUAANMKAADTCwAA0xMAANMfAADTMwAA00IAANNRAADTYAAA02QAANNzAADTggAA05EAANOgAADTrwAA07sAANPNAADT3AAA0+sAANP6AADUCQAA1BgAANQnAADUNgAA1EsAANRMAADUVAAA1GAAANR0AADUgwAA1JIAANShAADUpQAA1LQAANTDAADU0gAA1OEAANTwAADU/AAA1Q4AANUdAADVLAAA1TsAANVKAADVZAAA1WUAANVrAADVdwAA1Y0AANWcAADVnwAA1a4AANW9AADVwAAA1c8AANXeAADV4QAA1fAAANX/AADWAwAA1hIAANYhAADWIgAA1ioAANYrAADWLAAA1kEAANZCAADWSgAA1lYAANZqAADWeQAA1ogAANaXAADWmwAA1qoAANa5AADWyAAA1tcAANbmAADW8gAA1wQAANcTAADXIgAA1zEAANdAAADXTwAA114AANdfAADXbgAA14MAANeEAADXjAAA15gAANesAADXuwAA18oAANfZAADX3QAA1+wAANf7AADYCgAA2BkAANgoAADYNAAA2EYAANhVAADYZAAA2HMAANiCAADYkQAA2KAAANivAADYsgAA2MEAANjQAADY3wAA2PQAANj1AADY/QAA2QkAANkdAADZLAAA2TsAANlKAADZTgAA2V0AANlsAADZewAA2YoAANmZAADZpQAA2bcAANnGAADZ1QAA2eQAANnzAADaDQAA2g4AANoUAADaIAAA2jYAANpFAADaSAAA2lcAANpmAADaagAA2m8AANpwAADacQAA2oAAANqPAADakgAA2qEAANqwAADatAAA2sMAANrSAADa0wAA2vUAANr2AADa9wAA2vgAANr5AADa+gAA2vsAANr8AADa/QAA2v4AANr/AADbAAAA2wEAANsCAADbAwAA2xgAANsZAADbIQAA2y0AANtBAADbUAAA218AANtuAADbcgAA24EAANuQAADbnwAA264AANu9AADbyQAA29sAANvqAADb+QAA3AgAANwXAADcJgAA3DUAANxEAADcWQAA3FoAANxiAADcbgAA3IIAANyRAADcoAAA3K8AANyzAADcwgAA3NEAANzgAADc7wAA3P4AAN0KAADdHAAA3SsAAN06AADdSQAA3VgAAN1nAADddgAA3YUAAN2aAADdmwAA3aMAAN2vAADdwwAA3dIAAN3hAADd8AAA3fQAAN4DAADeEgAA3iEAAN4wAADePwAA3ksAAN5dAADebAAA3nsAAN6KAADemQAA3qgAAN63AADexgAA3tsAAN7cAADe5AAA3vAAAN8EAADfEwAA3yIAAN8xAADfNQAA30QAAN9TAADfYgAA33EAAN+AAADfjAAA354AAN+tAADfvAAA38sAAN/aAADf6QAA3/gAAOAHAADgHAAA4B0AAOAlAADgMQAA4EUAAOBUAADgYwAA4HIAAOB2AADghQAA4JQAAOCjAADgsgAA4MEAAODNAADg3wAA4O4AAOD9AADhDAAA4RsAAOEqAADhOQAA4UgAAOFdAADhXgAA4WYAAOFyAADhhgAA4ZUAAOGkAADhswAA4bcAAOHGAADh1QAA4eQAAOHzAADiAgAA4g4AAOIgAADiLwAA4j4AAOJNAADiXAAA4msAAOJ6AADiiQAA4p4AAOKfAADipwAA4rMAAOLHAADi1gAA4uUAAOL0AADi+AAA4wcAAOMWAADjJQAA4zQAAONDAADjTwAA42EAAONwAADjfwAA444AAOOdAADjrAAA47sAAOPKAADj3wAA4+AAAOPoAADj9AAA5AgAAOQXAADkJgAA5DUAAOQ5AADkSAAA5FcAAORmAADkdQAA5IQAAOSQAADkogAA5LEAAOTAAADkzwAA5N4AAOTtAADk/AAA5QsAAOUgAADlIQAA5SkAAOU1AADlSQAA5VgAAOVnAADldgAA5XoAAOWJAADlmAAA5acAAOW2AADlxQAA5dEAAOXjAADl8gAA5gEAAOYQAADmHwAA5i4AAOY9AADmTAAA5mEAAOZiAADmagAA5nYAAOaKAADmmQAA5qgAAOa3AADmuwAA5soAAObZAADm6AAA5vcAAOcGAADnEgAA5yQAAOczAADnQgAA51EAAOdgAADnbwAA534AAOeNAADnogAA56MAAOerAADntwAA58sAAOfaAADn6QAA5/gAAOf8AADoCwAA6BoAAOgpAADoOAAA6EcAAOhTAADoZQAA6HQAAOiDAADokgAA6KEAAOi7AADovAAA6MIAAOjOAADo5AAA6PMAAOj2AADpBQAA6RQAAOkXAADpJgAA6TUAAOk4AADpRwAA6VYAAOlaAADpaQAA6XgAAOl5AADphQAA6YYAAOmHAADpiAAA6YkAAOmeAADpnwAA6acAAOmzAADpxwAA6dYAAOnlAADp9AAA6fgAAOoHAADqFgAA6iUAAOo0AADqQwAA6k8AAOphAADqcAAA6n8AAOqOAADqnQAA6qwAAOq7AADqygAA6t8AAOrgAADq6AAA6vQAAOsIAADrFwAA6yYAAOs1AADrOQAA60gAAOtXAADrZgAA63UAAOuEAADrkAAA66IAAOuxAADrwAAA688AAOveAADr7QAA6/wAAOwLAADsIAAA7CEAAOwpAADsNQAA7EkAAOxYAADsZwAA7HYAAOx6AADsiQAA7JgAAOynAADstgAA7MUAAOzRAADs4wAA7PIAAO0BAADtEAAA7R8AAO0uAADtPQAA7UwAAO1hAADtYgAA7WoAAO12AADtigAA7ZkAAO2oAADttwAA7bsAAO3KAADt2QAA7egAAO33AADuBgAA7hIAAO4kAADuMwAA7kIAAO5RAADuYAAA7m8AAO5+AADujQAA7pAAAO6fAADurgAA7r0AAO7SAADu0wAA7tsAAO7nAADu+wAA7woAAO8ZAADvKAAA7ywAAO87AADvSgAA71kAAO9oAADvdwAA74MAAO+VAADvpAAA77MAAO/CAADv0QAA7+AAAO/vAADv/gAA8BMAAPAUAADwHAAA8CgAAPA8AADwSwAA8FoAAPBpAADwbQAA8HwAAPCLAADwmgAA8KkAAPC4AADwxAAA8NYAAPDlAADw9AAA8QMAAPESAADxIQAA8TAAAPE/AADxVAAA8VUAAPFdAADxaQAA8X0AAPGMAADxmwAA8aoAAPGuAADxvQAA8cwAAPHbAADx6gAA8fkAAPIFAADyFwAA8iYAAPI1AADyRAAA8lMAAPJiAADycQAA8oAAAPKVAADylgAA8p4AAPKqAADyvgAA8s0AAPLcAADy6wAA8u8AAPL+AADzDQAA8xwAAPMrAADzOgAA80YAAPNYAADzZwAA83YAAPOFAADzlAAA86MAAPOyAADzwQAA88QAAPPTAADz4gAA8/EAAPQGAAD0BwAA9A8AAPQbAAD0LwAA9D4AAPRNAAD0XAAA9GAAAPRvAAD0fgAA9I0AAPScAAD0qwAA9LcAAPTJAAD02AAA9OcAAPT2AAD1BQAA9RQAAPUjAAD1MgAA9TUAAPVEAAD1UwAA9WIAAPV3AAD1eAAA9YAAAPWMAAD1oAAA9a8AAPW+AAD1zQAA9dEAAPXgAAD17wAA9f4AAPYNAAD2HAAA9igAAPY6AAD2SQAA9lgAAPZnAAD2dgAA9oUAAPaUAAD2owAA9rgAAPa5AAD2wQAA9s0AAPbhAAD28AAA9v8AAPcOAAD3EgAA9yEAAPcwAAD3PwAA904AAPddAAD3aQAA93sAAPeKAAD3mQAA96gAAPe3AAD3xgAA99UAAPfkAAD35wAA9/YAAPgFAAD4FAAA+CkAAPgqAAD4MgAA+D4AAPhSAAD4YQAA+HAAAPh/AAD4gwAA+JIAAPihAAD4sAAA+L8AAPjOAAD42gAA+OwAAPj7AAD5CgAA+RkAAPkoAAD5NwAA+UYAAPlVAAD5agAA+WsAAPlzAAD5fwAA+ZMAAPmiAAD5sQAA+cAAAPnEAAD50wAA+eIAAPnxAAD6AAAA+g8AAPobAAD6LQAA+jwAAPpLAAD6WgAA+mkAAPp4AAD6hwAA+pYAAPqrAAD6rAAA+rQAAPrAAAD61AAA+uMAAPryAAD7AQAA+wUAAPsUAAD7IwAA+zIAAPtBAAD7UAAA+1wAAPtuAAD7fQAA+4wAAPubAAD7qgAA+7kAAPvIAAD71wAA+9oAAPvpAAD7+AAA/AcAAPwcAAD8HQAA/CUAAPwxAAD8RQAA/FQAAPxjAAD8cgAA/HYAAPyFAAD8lAAA/KMAAPyyAAD8wQAA/M0AAPzfAAD87gAA/P0AAP0MAAD9GwAA/TUAAP02AAD9PAAA/UgAAP1eAAD9bQAA/XAAAP1/AAD9jgAA/ZEAAP2gAAD9rwAA/bIAAP3BAAD90AAA/dQAAP3jAAD98gAA/fMAAP35AAD9+gAA/g8AAP4QAAD+GAAA/iQAAP44AAD+RwAA/lYAAP5lAAD+aQAA/ngAAP6HAAD+lgAA/qUAAP60AAD+wAAA/tIAAP7hAAD+8AAA/v8AAP8OAAD/HQAA/ywAAP87AAD/PwAA/0YAAP9HAAD/aQAA/2oAAP9wAAD/fAAA/5IAAP+hAAD/pAAA/7MAAP/CAAD/xQAA/9QAAP/jAAD/5gAA//UAAQAEAAEACAABABcAAQAmAAEAJwABADUAAQA2AAEANwABADgAAQA5AAEATgABAE8AAQBXAAEAYwABAHcAAQCGAAEAlQABAKQAAQCoAAEAtwABAMYAAQDVAAEA5AABAPMAAQD/AAEBEQABASAAAQEvAAEBPgABAU0AAQFcAAEBawABAXoAAQGPAAEBkAABAZgAAQGkAAEBuAABAccAAQHWAAEB5QABAekAAQH4AAECBwABAhYAAQIlAAECNAABAkAAAQJSAAECYQABAnAAAQJ/AAECjgABAp0AAQKsAAECuwABAtAAAQLRAAEC2QABAuUAAQL5AAEDCAABAxcAAQMmAAEDKgABAzkAAQNIAAEDVwABA2YAAQN1AAEDgQABA5MAAQOiAAEDsQABA8AAAQPPAAED3gABA+0AAQP8AAEEEQABBBIAAQQaAAEEJgABBDoAAQRJAAEEWAABBGcAAQRrAAEEegABBIkAAQSYAAEEpwABBLYAAQTCAAEE1AABBOMAAQTyAAEFAQABBRAAAQUfAAEFLgABBT0AAQVSAAEFUwABBVsAAQVnAAEFewABBYoAAQWZAAEFqAABBawAAQW7AAEFygABBdkAAQXoAAEF9wABBgMAAQYVAAEGJAABBjMAAQZCAAEGUQABBmAAAQZvAAEGfgABBoEAAQaGAAEGjQABBqcAAQaoAAEGrgABBroAAQbQAAEG3wABBuIAAQbxAAEHAAABBwMAAQcSAAEHIQABByQAAQczAAEHQgABB0YAAQdVAAEHZAABB2UAAQdrAAEHbAABB4EAAQeCAAEHigABB5YAAQeqAAEHuQABB8gAAQfXAAEH2wABB+oAAQf5AAEICAABCBcAAQgmAAEIMgABCEQAAQhTAAEIYgABCHEAAQiAAAEIjwABCJ4AAQitAAEIwgABCMMAAQjLAAEI1wABCOsAAQj6AAEJCQABCRgAAQkcAAEJKwABCToAAQlJAAEJWAABCWcAAQlzAAEJhQABCZQAAQmjAAEJsgABCcEAAQnQAAEJ3wABCe4AAQnyAAEJ8wABCgIAAQoRAAEKIAABCjUAAQo2AAEKPgABCkoAAQpeAAEKbQABCnwAAQqLAAEKjwABCp4AAQqtAAEKvAABCssAAQraAAEK5gABCvgAAQsHAAELFgABCyUAAQs0AAELTgABC08AAQtVAAELYQABC3cAAQuGAAELiQABC5gAAQunAAELqgABC7kAAQvIAAELywABC9oAAQvpAAEL7QABC/wAAQwLAAEMDAABDB4AAQwfAAEMIAABDCEAAQwiAAEMIwABDCQAAQw5AAEMOgABDEIAAQxOAAEMYgABDHEAAQyAAAEMjwABDJMAAQyiAAEMsQABDMAAAQzPAAEM3gABDOoAAQz8AAENCwABDRoAAQ0pAAENOAABDUcAAQ1WAAENZQABDXoAAQ17AAENgwABDY8AAQ2jAAENsgABDcEAAQ3QAAEN1AABDeMAAQ3yAAEOAQABDhAAAQ4fAAEOKwABDj0AAQ5MAAEOWwABDmoAAQ55AAEOiAABDpcAAQ6mAAEOuwABDrwAAQ7EAAEO0AABDuQAAQ7zAAEPAgABDxEAAQ8VAAEPJAABDzMAAQ9CAAEPUQABD2AAAQ9sAAEPfgABD40AAQ+cAAEPqwABD7oAAQ/JAAEP2AABD+cAAQ/8AAEP/QABEAUAARARAAEQJQABEDQAARBDAAEQUgABEFYAARBlAAEQdAABEIMAARCSAAEQoQABEK0AARC/AAEQzgABEN0AARDsAAEQ+wABEQoAAREZAAERKAABET0AARE+AAERRgABEVIAARFmAAERdQABEYQAARGTAAERlwABEaYAARG1AAERxAABEdMAARHiAAER7gABEgAAARIPAAESHgABEi0AARI8AAESSwABEloAARJpAAESfgABEn8AARKHAAESkwABEqcAARK2AAESxQABEtQAARLYAAES5wABEvYAARMFAAETFAABEyMAARMvAAETQQABE1AAARNfAAETbgABE30AAROMAAETmwABE6oAARO/AAETwAABE8gAARPUAAET6AABE/cAARQGAAEUFQABFBkAARQoAAEUNwABFEYAARRVAAEUZAABFHAAARSCAAEUkQABFKAAARSvAAEUvgABFM0AARTcAAEU3QABFOwAARTvAAEU/gABFQ0AARUcAAEVMQABFTIAARU6AAEVRgABFVoAARVpAAEVeAABFYcAARWLAAEVmgABFakAARW4AAEVxwABFdYAARXiAAEV9AABFgMAARYSAAEWIQABFjAAARY/AAEWTgABFl0AARZyAAEWcwABFnsAARaHAAEWmwABFqoAARa5AAEWyAABFswAARbbAAEW6gABFvkAARcIAAEXFwABFyMAARc1AAEXRAABF1MAARdiAAEXcQABF4AAARePAAEXngABF7MAARe0AAEXvAABF8gAARfcAAEX6wABF/oAARgJAAEYDQABGBwAARgrAAEYOgABGEkAARhYAAEYZAABGHYAARiFAAEYlAABGKMAARiyAAEYwQABGNAAARjfAAEY9AABGPUAARj9AAEZCQABGR0AARksAAEZOwABGUoAARlOAAEZXQABGWwAARl7AAEZigABGZkAARmlAAEZtwABGcYAARnVAAEZ5AABGfMAARoCAAEaEQABGiAAARojAAEaMgABGkEAARpQAAEaZQABGmYAARpuAAEaegABGo4AARqdAAEarAABGrsAARq/AAEazgABGt0AARrsAAEa+wABGwoAARsWAAEbKAABGzcAARtGAAEbVQABG2QAARtzAAEbggABG5EAARuUAAEbrgABG68AARu1AAEbwQABG9cAARvmAAEb6QABG/gAARwHAAEcCwABHBAAARwRAAEcEgABHCEAARwwAAEcMwABHEIAARxRAAEcVQABHGQAARxzAAEcdAABHH4AARx/AAEcgAABHIEAARyWAAEclwABHJ8AARyrAAEcvwABHM4AARzdAAEc7AABHPAAARz/AAEdDgABHR0AAR0sAAEdOwABHUcAAR1ZAAEdaAABHXcAAR2GAAEdlQABHaQAAR2zAAEdwgABHdcAAR3YAAEd4AABHewAAR4AAAEeDwABHh4AAR4tAAEeMQABHkAAAR5PAAEeXgABHm0AAR58AAEeiAABHpoAAR6pAAEeuAABHscAAR7WAAEe5QABHvQAAR8DAAEfGAABHxkAAR8hAAEfLQABH0EAAR9QAAEfXwABH24AAR9yAAEfgQABH5AAAR+fAAEfrgABH70AAR/JAAEf2wABH+oAAR/5AAEgCAABIBcAASAxAAEgMgABIDgAASBEAAEgWgABIGkAASBsAAEgewABIIoAASCNAAEgnAABIKsAASCuAAEgvQABIMwAASDQAAEg3wABIO4AASDvAAEhBQABIQYAASEHAAEhCAABIQkAASEKAAEhCwABIQwAASENAAEhIgABISMAASErAAEhNwABIUsAASFaAAEhaQABIXgAASF8AAEhiwABIZoAASGpAAEhuAABIccAASHTAAEh5QABIfQAASIDAAEiEgABIiEAASIwAAEiPwABIk4AASJjAAEiZAABImwAASJ4AAEijAABIpsAASKqAAEiuQABIr0AASLMAAEi2wABIuoAASL5AAEjCAABIxQAASMmAAEjNQABI0QAASNTAAEjYgABI3EAASOAAAEjgQABI5AAASOlAAEjpgABI64AASO6AAEjzgABI90AASPsAAEj+wABI/8AASQOAAEkHQABJCwAASQ7AAEkSgABJFYAASRoAAEkdwABJIYAASSVAAEkpAABJLMAASTCAAEk0QABJOYAASTnAAEk7wABJPsAASUPAAElHgABJS0AASU8AAElQAABJU8AASVeAAElbQABJXwAASWLAAEllwABJakAASW4AAElxwABJdYAASXlAAEl9AABJgMAASYEAAEmEwABJigAASYpAAEmMQABJj0AASZRAAEmYAABJm8AASZ+AAEmggABJpEAASagAAEmrwABJr4AASbNAAEm2QABJusAASb6AAEnCQABJxgAAScnAAEnQQABJ0IAASdIAAEnVAABJ2oAASd5AAEnfAABJ4sAASeaAAEnnQABJ6wAASe7AAEnvgABJ80AASfcAAEn4AABJ+8AASf+AAEn/wABKAkAASgKAAEoCwABKAwAASghAAEoIgABKCoAASg2AAEoSgABKFkAAShoAAEodwABKHsAASiKAAEomQABKKgAASi3AAEoxgABKNIAASjkAAEo8wABKQIAASkRAAEpIAABKS8AASk+AAEpPwABKU4AASljAAEpZAABKWwAASl4AAEpjAABKZsAASmqAAEpuQABKb0AASnMAAEp2wABKeoAASn5AAEqCAABKhQAASomAAEqNQABKkQAASpTAAEqYgABKnEAASqAAAEqgQABKpAAASqlAAEqpgABKq4AASq6AAEqzgABKt0AASrsAAEq+wABKv8AASsOAAErHQABKywAASs7AAErSgABK1YAAStoAAErdwABK4YAASuVAAErpAABK7MAASvCAAEr0QABK9QAASvjAAEr8gABLAEAASwWAAEsFwABLB8AASwrAAEsPwABLE4AASxdAAEsbAABLHAAASx/AAEsjgABLJ0AASysAAEsuwABLMcAASzZAAEs6AABLPcAAS0GAAEtFQABLS8AAS0wAAEtNgABLUIAAS1YAAEtZwABLWoAAS15AAEtegABLYkAAS2MAAEtmwABLaoAAS2tAAEtvAABLcsAAS3PAAEt3gABLe0AAS3uAAEt+gABLfsAAS38AAEt/QABLf4AAS4TAAEuFAABLhwAAS4oAAEuPAABLksAAS5aAAEuaQABLm0AAS58AAEuiwABLpoAAS6pAAEuuAABLsQAAS7WAAEu5QABLvQAAS8DAAEvEgABLyEAAS8wAAEvMQABL0AAAS9VAAEvVgABL14AAS9qAAEvfgABL40AAS+cAAEvqwABL68AAS++AAEvzQABL9wAAS/rAAEv+gABMAYAATAYAAEwJwABMDYAATBFAAEwVAABMGMAATByAAEwcwABMIIAATCXAAEwmAABMKAAATCsAAEwwAABMM8AATDeAAEw7QABMPEAATEAAAExDwABMR4AATEtAAExPAABMUgAATFaAAExaQABMXgAATGHAAExlgABMaUAATG0AAExtQABMcQAATHZAAEx2gABMeIAATHuAAEyAgABMhEAATIgAAEyLwABMjMAATJCAAEyUQABMmAAATJvAAEyfgABMooAATKcAAEyqwABMroAATLJAAEy2AABMucAATL2AAEzBQABMwgAATMXAAEzJgABMzUAATNKAAEzSwABM1MAATNfAAEzcwABM4IAATORAAEzoAABM6QAATOzAAEzwgABM9EAATPgAAEz7wABM/sAATQNAAE0HAABNCsAATQ6AAE0SQABNFgAATRnAAE0dgABNIsAATSMAAE0lAABNKAAATS0AAE0wwABNNIAATThAAE05QABNPQAATUDAAE1EgABNSEAATUwAAE1PAABNU4AATVdAAE1bAABNXsAATWKAAE1pAABNaUAATWrAAE1twABNc0AATXcAAE13wABNe4AATX9AAE2AAABNg8AATYeAAE2IQABNjAAATY/AAE2QwABNlIAATZhAAE2YgABNm4AATZvAAE2cAABNnEAATZyAAE2hwABNogAATaQAAE2nAABNrAAATa/AAE2zgABNt0AATbhAAE28AABNv8AATcOAAE3HQABNywAATc4AAE3SgABN1kAATdoAAE3dwABN4YAATeVAAE3pAABN7MAATfIAAE3yQABN9EAATfdAAE38QABOAAAATgPAAE4HgABOCIAATgxAAE4QAABOE8AATheAAE4bQABOHkAATiLAAE4mgABOKkAATi4AAE4xwABONYAATjlAAE49AABOQkAATkKAAE5EgABOR4AATkyAAE5QQABOVAAATlfAAE5YwABOXIAATmBAAE5kAABOZ8AATmuAAE5ugABOcwAATnbAAE56gABOfkAAToIAAE6FwABOiYAATonAAE6NgABOksAATpMAAE6VAABOmAAATp0AAE6gwABOpIAATqhAAE6pQABOrQAATr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2AAFcOgABXEkAAVxYAAFcZwABXHYAAVyFAAFckQABXKMAAVyyAAFcwQABXNAAAVzfAAFc+QABXPoAAV0AAAFdDAABXSIAAV0xAAFdNAABXUMAAV1SAAFdVgABXVoAAV1bAAFdagABXXkAAV18AAFdiwABXZoAAV2eAAFdrQABXbwAAV29AAFdyQABXcoAAV3LAAFd4AABXeEAAV3pAAFd9QABXgkAAV4YAAFeJwABXjYAAV46AAFeSQABXlgAAV5nAAFedgABXoUAAV6RAAFeowABXrIAAV7BAAFe0AABXt8AAV7uAAFe/QABXwwAAV8hAAFfIgABXyoAAV82AAFfSgABX1kAAV9oAAFfdwABX3sAAV+KAAFfmQABX6gAAV+3AAFfxgABX9IAAV/kAAFf8wABYAIAAWARAAFgIAABYC8AAWA+AAFgTQABYGIAAWBjAAFgawABYHcAAWCLAAFgmgABYKkAAWC4AAFgvAABYMsAAWDaAAFg6QABYPgAAWEHAAFhEwABYSUAAWE0AAFhQwABYVIAAWFhAAFhcAABYX8AAWGOAAFhowABYaQAAWGsAAFhuAABYcwAAWHbAAFh6gABYfkAAWH9AAFiDAABYhsAAWIqAAFiOQABYkgAAWJUAAFiZgABYnUAAWKEAAFikwABYqIAAWKxAAFiwAABYs8AAWLSAAFi4QABYvAAAWL/AAFjFAABYxUAAWMdAAFjKQABYz0AAWNMAAFjWwABY2oAAWNuAAFjfQABY4wAAWObAAFjqgABY7kAAWPFAAFj1wABY+YAAWP1AAFkBAABZBMAAWQtAAFkLgABZDQAAWRAAAFkVgABZGUAAWRoAAFkdwABZIYAAWSKAAFkjwABZJAAAWSRAAFkoAABZK8AAWSyAAFkwQABZNAAAWTUAAFk4wABZPIAAWTzAAFlFQABZRYAAWUXAAFlGAABZRkAAWUaAAFlGwABZRwAAWUdAAFlHgABZR8AAWUgAAFlIQABZSIAAWUjAAFlOAABZTkAAWVBAAFlTQABZWEAAWVwAAFlfwABZY4AAWWSAAFloQABZbAAAWW/AAFlzgABZd0AAWXpAAFl+wABZgoAAWYZAAFmKAABZjcAAWZGAAFmVQABZmQAAWZ5AAFmegABZoIAAWaOAAFmogABZrEAAWbAAAFmzwABZtMAAWbiAAFm8QABZwAAAWcPAAFnHgABZyoAAWc8AAFnSwABZ1oAAWdpAAFneAABZ4cAAWeWAAFnlwABZ6YAAWe7AAFnvAABZ8QAAWfQAAFn5AABZ/MAAWgCAAFoEQABaBUAAWgkAAFoMwABaEIAAWhRAAFoYAABaGwAAWh+AAFojQABaJwAAWirAAFougABaMkAAWjYAAFo5wABaPwAAWj9AAFpBQABaREAAWklAAFpNAABaUMAAWlSAAFpVgABaWUAAWl0AAFpgwABaZIAAWmhAAFprQABab8AAWnOAAFp3QABaewAAWn7AAFqCgABahkAAWoaAAFqKQABaj4AAWo/AAFqRwABalMAAWpnAAFqdgABaoUAAWqUAAFqmAABaqcAAWq2AAFqxQABatQAAWrjAAFq7wABawEAAWsQAAFrHwABay4AAWs9AAFrTAABa1sAAWtqAAFrfwABa4AAAWuIAAFrlAABa6gAAWu3AAFrxgABa9UAAWvZAAFr6AABa/cAAWwGAAFsFQABbCQAAWwwAAFsQgABbFEAAWxgAAFsbwABbH4AAWyYAAFsmQABbJ8AAWyrAAFswQABbNAAAWzTAAFs4gABbPEAAWz1AAFs/AABbP0AAWz+AAFs/wABbQAAAW0PAAFtHgABbSEAAW0wAAFtPwABbUMAAW1SAAFtYQABbWIAAW1yAAFtcwABbXQAAW11AAFtdgABbYsAAW2MAAFtlAABbaAAAW20AAFtwwABbdIAAW3hAAFt5QABbfQAAW4DAAFuEgABbiEAAW4wAAFuPAABbk4AAW5dAAFubAABbnsAAW6KAAFumQABbqgAAW6pAAFuuAABbs0AAW7OAAFu1gABbuIAAW72AAFvBQABbxQAAW8jAAFvJwABbzYAAW9FAAFvVAABb2MAAW9yAAFvfgABb5AAAW+fAAFvrgABb70AAW/MAAFv2wABb+oAAW/5AAFwDgABcA8AAXAXAAFwIwABcDcAAXBGAAFwVQABcGQAAXBoAAFwdwABcIYAAXCVAAFwpAABcLMAAXC/AAFw0QABcOAAAXDvAAFw/gABcQ0AAXEcAAFxKwABcToAAXFPAAFxUAABcVgAAXFkAAFxeAABcYcAAXGWAAFxpQABcakAAXG4AAFxxwABcdYAAXHlAAFx9AABcgAAAXISAAFyIQABcjAAAXI/AAFyTgABcl0AAXJsAAFyewABcpAAAXKRAAFymQABcqUAAXK5AAFyyAABctcAAXLmAAFy6gABcvkAAXMIAAFzFwABcyYAAXM1AAFzQQABc1MAAXNiAAFzcQABc4AAAXOPAAFzngABc60AAXOuAAFzvQABc9IAAXPTAAFz2wABc+cAAXP7AAF0CgABdBkAAXQoAAF0LAABdDsAAXRKAAF0WQABdGgAAXR3AAF0gwABdJUAAXSkAAF0swABdMIAAXTRAAF04AABdO8AAXTwAAF0/wABdQIAAXURAAF1IAABdS8AAXVEAAF1RQABdU0AAXVZAAF1bQABdXwAAXWLAAF1mgABdZ4AAXWtAAF1vAABdcsAAXXaAAF16QABdfUAAXYHAAF2FgABdiUAAXY0AAF2QwABdlIAAXZhAAF2cAABdoUAAXaGAAF2jgABdpoAAXauAAF2vQABdswAAXbbAAF23wABdu4AAXb9AAF3DAABdxsAAXcqAAF3NgABd0gAAXdXAAF3ZgABd3UAAXeEAAF3kwABd6IAAXexAAF3xgABd8cAAXfPAAF32wABd+8AAXf+AAF4DQABeBwAAXggAAF4LwABeD4AAXhNAAF4XAABeGsAAXh3AAF4iQABeJgAAXinAAF4tgABeMUAAXjUAAF44wABeOQAAXjzAAF5CAABeQkAAXkRAAF5HQABeTEAAXlAAAF5TwABeV4AAXliAAF5cQABeYAAAXmPAAF5ngABea0AAXm5AAF5ywABedoAAXnpAAF5+AABegcAAXoWAAF6JQABejQAAXpJAAF6SgABelIAAXpeAAF6cgABeoEAAXqQAAF6nwABeqMAAXqyAAF6wQABetAAAXrfAAF67gABevoAAXsMAAF7GwABeyoAAXs5AAF7SAABe1cAAXtmAAF7dQABe4oAAXuLAAF7kwABe58AAXuzAAF7wgABe9EAAXvgAAF75AABe/MAAXwCAAF8EQABfCAAAXwvAAF8OwABfE0AAXxcAAF8awABfHoAAXyJAAF8mAABfKcAAXy2AAF8ywABfMwAAXzUAAF84AABfPQAAX0DAAF9EgABfSEAAX0lAAF9NAABfUMAAX1SAAF9YQABfXAAAX18AAF9jgABfZ0AAX2sAAF9uwABfcoAAX3ZAAF96AABffcAAX4MAAF+DQABfhUAAX4hAAF+NQABfkQAAX5TAAF+YgABfmYAAX51AAF+hAABfpMAAX6iAAF+sQABfr0AAX7PAAF+3gABfu0AAX78AAF/CwABfxoAAX8pAAF/OAABf00AAX9OAAF/VgABf2IAAX92AAF/hQABf5QAAX+jAAF/pwABf7YAAX/FAAF/1AABf+MAAX/yAAF//gABgBAAAYAfAAGALgABgD0AAYBMAAGAWwABgGoAAYB5AAGAfAABgIsAAYCaAAGAqQABgL4AAYC/AAGAxwABgNMAAYDnAAGA9gABgQUAAYEUAAGBGAABgScAAYE2AAGBRQABgVQAAYFjAAGBbwABgYEAAYGQAAGBnwABga4AAYG9AAGBzAABgdsAAYHqAAGB/wABggAAAYIIAAGCFAABgigAAYI3AAGCRgABglUAAYJZAAGCaAABgncAAYKGAAGClQABgqQAAYKwAAGCwgABgtEAAYLgAAGC7wABgv4AAYMNAAGDHAABgysAAYNAAAGDQQABg0kAAYNVAAGDaQABg3gAAYOHAAGDlgABg5oAAYOpAAGDuAABg8cAAYPWAAGD5QABg/EAAYQDAAGEEgABhCEAAYQwAAGEPwABhE4AAYRdAAGEbAABhIEAAYSCAAGEigABhJYAAYSqAAGEuQABhMgAAYTXAAGE2wABhOoAAYT5AAGFCAABhRcAAYUmAAGFMgABhUQAAYVTAAGFYgABhXEAAYWAAAGFjwABhZ4AAYWtAAGFwgABhcMAAYXLAAGF1wABhesAAYX6AAGGCQABhhgAAYYcAAGGKwABhjoAAYZJAAGGWAABhmcAAYZzAAGGhQABhpQAAYajAAGGsgABhsEAAYbQAAGG3wABhu4AAYbxAAGHAAABhw8AAYceAAGHMwABhzQAAYc8AAGHSAABh1wAAYdrAAGHegABh4kAAYeNAAGHnAABh6sAAYe6AAGHyQABh9gAAYfkAAGH9gABiAUAAYgUAAGIIwABiDIAAYhBAAGIUAABiF8AAYh0AAGIdQABiH0AAYiJAAGInQABiKwAAYi7AAGIygABiM4AAYjdAAGI7AABiPsAAYkKAAGJGQABiSUAAYk3AAGJRgABiVUAAYlkAAGJcwABiYIAAYmRAAGJoAABibUAAYm2AAGJvgABicoAAYneAAGJ7QABifwAAYoLAAGKDwABih4AAYotAAGKPAABiksAAYpaAAGKZgABingAAYqHAAGKlgABiqUAAYq0AAGKwwABitIAAYrhAAGK5AABiv4AAYr/AAGLBQABixEAAYsnAAGLNgABizkAAYtIAAGLVwABi1sAAYtgAAGLYQABi2IAAYtxAAGLgAABi4MAAYuSAAGLoQABi6UAAYu0AAGLwwABi8QAAYvMAAGLzQABi84AAYvjAAGL5AABi+wAAYv4AAGMDAABjBsAAYwqAAGMOQABjD0AAYxMAAGMWwABjGoAAYx5AAGMiAABjJQAAYymAAGMtQABjMQAAYzTAAGM4gABjPEAAY0AAAGNAQABjRAAAY0lAAGNJgABjS4AAY06AAGNTgABjV0AAY1sAAGNewABjX8AAY2OAAGNnQABjawAAY27AAGNygABjdYAAY3oAAGN9wABjgYAAY4VAAGOJAABjjMAAY5CAAGOUQABjlQAAY5uAAGObwABjnUAAY6BAAGOlwABjqYAAY6pAAGOuAABjscAAY7LAAGO0AABjtEAAY7gAAGO7wABjvIAAY8BAAGPEAABjxQAAY8jAAGPMgABj0YAAY9HAAGPSAABj0kAAY9KAAGPSwABj0wAAY9NAAGPYgABj2MAAY9rAAGPdwABj4sAAY+aAAGPqQABj7gAAY+8AAGPywABj9oAAY/pAAGP+AABkAcAAZATAAGQJQABkDQAAZBDAAGQUgABkGEAAZBwAAGQfwABkI4AAZCjAAGQpAABkKwAAZC4AAGQzAABkNsAAZDqAAGQ+QABkP0AAZEMAAGRGwABkSoAAZE5AAGRSAABkVQAAZFmAAGRdQABkYQAAZGTAAGRogABkbwAAZG9AAGRwwABkc8AAZHlAAGR9AABkfcAAZIGAAGSFQABkhkAAZIdAAGSHgABki0AAZI8AAGSPwABkk4AAZJdAAGSYQABknAAAZJ/AAGSkwABkpQAAZKVAAGSlgABkpcAAZKYAAGSmQABkpoAAZKvAAGSsAABkrgAAZLEAAGS2AABkucAAZL2AAGTBQABkwkAAZMYAAGTJwABkzYAAZNFAAGTVAABk2AAAZNyAAGTgQABk5AAAZOfAAGTrgABk70AAZPMAAGT2wABk/AAAZPxAAGT+QABlAUAAZQZAAGUKAABlDcAAZRGAAGUSgABlFkAAZRoAAGUdwABlIYAAZSVAAGUoQABlLMAAZTCAAGU0QABlOAAAZTvAAGU/gABlQ0AAZUcAAGVMQABlTIAAZU6AAGVRgABlVoAAZVpAAGVeAABlYcAAZWLAAGVmgABlakAAZW4AAGVxwABldYAAZXiAAGV9AABlgMAAZYSAAGWIQABljAAAZY/AAGWTgABll0AAZZyAAGWcwABlnsAAZaHAAGWmwABlqoAAZa5AAGWyAABlswAAZbbAAGW6gABlvkAAZcIAAGXFwABlyMAAZc1AAGXRAABl1MAAZdiAAGXcQABl4AAAZePAAGXngABl7MAAZe0AAGXvAABl8gAAZfcAAGX6wABl/oAAZgJAAGYDQABmBwAAZgrAAGYOgABmEkAAZhYAAGYZAABmHYAAZiFAAGYlAABmKMAAZiyAAGYwQABmNAAAZjfAAGY9AABmPUAAZj9AAGZCQABmR0AAZksAAGZOwABmUoAAZlOAAGZXQABmWwAAZl7AAGZigABmZkAAZmlAAGZtwABmcYAAZnVAAGZ5AABmfMAAZoCAAGaEQABmiAAAZo1AAGaNgABmj4AAZpKAAGaXgABmm0AAZp8AAGaiwABmo8AAZqeAAGarQABmrwAAZrLAAGa2gABmuYAAZr4AAGbBwABmxYAAZslAAGbNAABm0MAAZtSAAGbYQABm3YAAZt3AAGbfwABm4sAAZufAAGbrgABm70AAZvMAAGb0AABm98AAZvuAAGb/QABnAwAAZwbAAGcJwABnDkAAZxIAAGcVwABnGYAAZx1AAGchAABnJMAAZyiAAGcpQABnLQAAZzDAAGc0gABnOcAAZzoAAGc8AABnPwAAZ0QAAGdHwABnS4AAZ09AAGdQQABnVAAAZ1fAAGdbgABnX0AAZ2MAAGdmAABnaoAAZ25AAGdyAABndcAAZ3mAAGd9QABngQAAZ4TAAGeKAABnikAAZ4xAAGePQABnlEAAZ5gAAGebwABnn4AAZ6CAAGekQABnqAAAZ6vAAGevgABns0AAZ7ZAAGe6wABnvoAAZ8JAAGfGAABnycAAZ82AAGfRQABn1QAAZ9pAAGfagABn3IAAZ9+AAGfkgABn6EAAZ+wAAGfvwABn8MAAZ/SAAGf4QABn/AAAZ//AAGgDgABoBoAAaAsAAGgOwABoEoAAaBZAAGgaAABoHcAAaCGAAGglQABoKoAAaCrAAGgswABoL8AAaDTAAGg4gABoPEAAaEAAAGhBAABoRMAAaEiAAGhMQABoUAAAaFPAAGhWwABoW0AAaF8AAGhiwABoZoAAaGpAAGhuAABoccAAaHWAAGh6wABoewAAaH0AAGiAAABohQAAaIjAAGiMgABokEAAaJFAAGiVAABomMAAaJyAAGigQABopAAAaKcAAGirgABor0AAaLMAAGi2wABouoAAaL5AAGjCAABoxcAAaMsAAGjLQABozUAAaNBAAGjVQABo2QAAaNzAAGjggABo4YAAaOVAAGjpAABo7MAAaPCAAGj0QABo90AAaPvAAGj/gABpA0AAaQcAAGkKwABpDoAAaRJAAGkWAABpFsAAaR1AAGkdgABpHwAAaSIAAGkngABpK0AAaSwAAGkvwABpM4AAaTSAAGk1wABpNgAAaTZAAGk6AABpPcAAaT6AAGlCQABpRgAAaUcAAGlKwABpToAAaU7AAGlQwABpUQAAaVZAAGlWgABpWIAAaVuAAGlggABpZEAAaWgAAGlrwABpbMAAaXCAAGl0QABpeAAAaXvAAGl/gABpgoAAaYcAAGmKwABpjoAAaZJAAGmWAABpmcAAaZ2AAGmhQABppoAAaabAAGmowABpq8AAabDAAGm0gABpuEAAabwAAGm9AABpwMAAacSAAGnIQABpzAAAac/AAGnSwABp10AAadsAAGnewABp4oAAaeZAAGnqAABp7cAAafGAAGnyQABp+MAAafkAAGn6gABp/YAAagMAAGoGwABqB4AAagtAAGoPAABqEAAAahFAAGoRgABqEcAAahWAAGoZQABqGgAAah3AAGohgABqIoAAaiZAAGoqAABqKkAAai1AAGotgABqLcAAai4AAGouQABqM4AAajPAAGo1wABqOMAAaj3AAGpBgABqRUAAakkAAGpKAABqTcAAalGAAGpVQABqWQAAalzAAGpfwABqZEAAamgAAGprwABqb4AAanNAAGp3AABqesAAan6AAGqDwABqhAAAaoYAAGqJAABqjgAAapHAAGqVgABqmUAAappAAGqeAABqocAAaqWAAGqpQABqrQAAarAAAGq0gABquEAAarwAAGq/wABqw4AAasdAAGrLAABqzsAAatQAAGrUQABq1kAAatlAAGreQABq4gAAauXAAGrpgABq6oAAau5AAGryAABq9cAAavmAAGr9QABrAEAAawTAAGsIgABrDEAAaxAAAGsTwABrF4AAaxtAAGsfAABrJEAAaySAAGsmgABrKYAAay6AAGsyQABrNgAAaz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OAAHDUgABw2EAAcNwAAHDcQABw38AAcOAAAHDgQABw4IAAcODAAHDhAABw5kAAcOaAAHDogABw64AAcPCAAHD0QABw+AAAcPvAAHD8wABxAIAAcQRAAHEIAABxC8AAcQ+AAHESgABxFwAAcRrAAHEegABxIkAAcSYAAHEpwABxLYAAcTFAAHE2gABxNsAAcTjAAHE7wABxQMAAcUSAAHFIQABxTAAAcU0AAHFQwABxVIAAcVhAAHFcAABxX8AAcWLAAHFnQABxawAAcW7AAHFygABxdkAAcXoAAHF9wABxfgAAcYHAAHGHAABxh0AAcYlAAHGMQABxkUAAcZUAAHGYwABxnIAAcZ2AAHGhQABxpQAAcajAAHGsgABxsEAAcbNAAHG3wABxu4AAcb9AAHHDAABxxsAAccqAAHHOQABx0gAAcddAAHHXgABx2YAAcdyAAHHhgABx5UAAcekAAHHswABx7cAAcfGAAHH1QABx+QAAcfzAAHIAgAByA4AAcggAAHILwAByD4AAchNAAHIXAAByGsAAch6AAHIiQAByJ4AAcifAAHIpwAByLMAAcjHAAHI1gAByOUAAcj0AAHI+AAByQcAAckWAAHJJQAByTQAAclDAAHJTwAByWEAAclwAAHJfwAByY4AAcmdAAHJrAABybsAAcnKAAHJzQAByecAAcnoAAHJ7gAByfoAAcoQAAHKHwAByiIAAcoxAAHKQAABykQAAcpJAAHKSgABylkAAcpoAAHKawABynoAAcqJAAHKjQABypwAAcqrAAHKrAAByrQAAcq1AAHKygAByssAAcrTAAHK3wAByvMAAcsCAAHLEQAByyAAAcskAAHLMwABy0IAActRAAHLYAABy28AAct7AAHLjQABy5wAAcurAAHLugABy8kAAcvYAAHL5wABy/YAAcwLAAHMDAABzBQAAcwgAAHMNAABzEMAAcxSAAHMYQABzGUAAcx0AAHMgwABzJIAAcyhAAHMsAABzLwAAczOAAHM3QABzOwAAcz7AAHNCgABzRkAAc0oAAHNNwABzToAAc1UAAHNVQABzVsAAc1nAAHNfQABzYwAAc2PAAHNngABza0AAc2xAAHNtgABzbcAAc24AAHNxwABzdYAAc3ZAAHN6AABzfcAAc37AAHOCgABzhkAAc4aAAHOMgABzjMAAc40AAHONQABzjYAAc4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BAfiBBACBGzuBE/qBDpuBI92BDQOBH0SBEM2BJOeBC3GBA4SBDZOAY18QE09idk9ibGl2aW91c0NoYW5uZWxcSW5ib3hNZXNzYWdlXUNvbnRhY3REZXZpY2VfEC5DaGFubmVsQ3JlYXRpb25XaXRoT3duZWREZXZpY2VQcm90b2NvbEluc3RhbmNlXxAWSWRlbnRpdHlTZXJ2ZXJVc2VyRGF0YV8QFU91dGJveEF0dGFjaG1lbnRDaHVua18QF1BlbmRpbmdEZWxldGVGcm9tU2VydmVyW0tleU1hdGVyaWFsVkJhY2t1cF8QFFBlcnNpc3RlZFRydXN0T3JpZ2luXxASUGVuZGluZ0dyb3VwTWVtYmVyXxAXS2V5Y2xvYWtSZXZva2VkSWRlbnRpdHlfEBxMaW5rQmV0d2VlblByb3RvY29sSW5zdGFuY2VzXxAVR3JvdXBWMlNlcnZlclVzZXJEYXRhXxAcQ29udGFjdEdyb3VwRGV0YWlsc1B1Ymxpc2hlZF8QEUNvbnRhY3RHcm91cE93bmVkXxASQ29udGFjdEdyb3VwSm9pbmVkXxAkVHJ1c3RFc3RhYmxpc2htZW50Q29tbWl0bWVudFJlY2VpdmVkXxAURGVsZXRlZE91dGJveE1lc3NhZ2VfEBBQcm90b2NvbEluc3RhbmNlXktleWNsb2FrU2VydmVyXxAbQ29udGFjdEdyb3VwVjJQZW5kaW5nTWVtYmVyXxAtQ29udGFjdE93bmVkSWRlbnRpdHlEZWxldGlvblNpZ25hdHVyZVJlY2VpdmVkXxAaQ29udGFjdEdyb3VwRGV0YWlsc1RydXN0ZWRfEB1Db250YWN0SWRlbnRpdHlEZXRhaWxzVHJ1c3RlZF8QGEdyb3VwVjJTaWduYXR1cmVSZWNlaXZlZF8QElBlbmRpbmdTZXJ2ZXJRdWVyeV8QFkluYm94QXR0YWNobWVudFNlc3Npb25fEA9DYWNoZWRXZWxsS25vd25bT3duZWREZXZpY2VeU2VydmVyVXNlckRhdGFfEDBDaGFubmVsQ3JlYXRpb25XaXRoQ29udGFjdERldmljZVByb3RvY29sSW5zdGFuY2VfEA9Db250YWN0SWRlbnRpdHlfEBNHcm91cFNlcnZlclVzZXJEYXRhXENvbnRhY3RHcm91cF1PdXRib3hNZXNzYWdlXkNvbnRhY3RHcm91cFYyXU1lc3NhZ2VIZWFkZXJfEBVQZXJzaXN0ZWRFbmdpbmVEaWFsb2dfEBRDb250YWN0R3JvdXBWMk1lbWJlcl8QEE91dGJveEF0dGFjaG1lbnRfEBVDb250YWN0R3JvdXBWMkRldGFpbHNdU2VydmVyU2Vzc2lvbl8QMlByb3RvY29sSW5zdGFuY2VXYWl0aW5nRm9yQ29udGFjdFVwZ3JhZGVUb09uZVRvT25lXxAfQ29udGFjdElkZW50aXR5RGV0YWlsc1B1Ymxpc2hlZF8QG011dHVhbFNjYW5TaWduYXR1cmVSZWNlaXZlZFlQcm92aXNpb25fEBRJbmJveEF0dGFjaG1lbnRDaHVua18QF091dGJveEF0dGFjaG1lbnRTZXNzaW9uXxAWQ29udGFjdElkZW50aXR5RGV0YWlsc18QHU93bmVkSWRlbnRpdHlEZXRhaWxzUHVibGlzaGVkXxAPUmVjZWl2ZWRNZXNzYWdlXxATQ29udGFjdEdyb3VwRGV0YWlsc1lCYWNrdXBLZXlfEBdPd25lZElkZW50aXR5TWFza2luZ1VJRF8QJENoYW5uZWxDcmVhdGlvblBpbmdTaWduYXR1cmVSZWNlaXZlZF1Pd25lZElkZW50aXR5XxAPSW5ib3hBdHRhY2htZW50XxAZQ29udGFjdEdyb3VwRGV0YWlsc0xhdGVzdN8QEAAAAPEAAADyAAAA8wAAAPQAAAAhAAAA9QAAAPYAAAAjAAAA9wAAAPgAAAAOAAAAJQAAAPkAAAD6AAAAKAAAAPsAAAD8AAAA/QAAACkAAAApAAAAFAAAAQEAAAECAAAAMQAAACkAAAD8AAABBQAAAD0AAAD8AAABCAAAAQkAAAEKXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlW19pc0Fic3RyYWN0gEOAa4AEgASAAoBEgQMRgASAQ4EDE4AGgEOBAzKAQggSxPZTk1dvcmRlcmVk0wAAADoAAAA7AAAADgAAAQ4AAAEQAAAAtKEAAAEPgEWhAAABEYBGgGNeWERfUFN0ZXJlb3R5cGXZAAAAIQAAACUAAAEVAAAADgAAACgAAAEWAAAAIwAAAPsAAAEXAAAAeQAAAQ8AAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAAEfXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgEGARYBDgGqAAIAECIBH0wAAADoAAAA7AAAADgAAASEAAAErAAAAtKkAAAEiAAABIwAAASQAAAElAAABJgAAAScAAAEoAAABKQAAASqASIBJgEqAS4BMgE2AToBPgFCpAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAABMgAAATMAAAE0gFGAVYBWgFyAXYBfgGGAZIBogGNfEBNYRFBNQ29tcG91bmRJbmRleGVzXxAQWERfUFNLX2VsZW1lbnRJRF8QGVhEUE1VbmlxdWVuZXNzQ29uc3RyYWludHNfEBpYRF9QU0tfdmVyc2lvbkhhc2hNb2RpZmllcl8QGVhEX1BTS19mZXRjaFJlcXVlc3RzQXJyYXlfEBFYRF9QU0tfaXNBYnN0cmFjdF8QD1hEX1BTS191c2VySW5mb18QE1hEX1BTS19jbGFzc01hcHBpbmdfEBZYRF9QU0tfZW50aXR5Q2xhc3NOYW1l3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAUsAAAAXAAABEQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASI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AIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxYAAAEKAAABCgAAABcAAAEKgACAYIAAgOYICAgIgFSAlggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABbwAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxcAAAEKAAABCgAAABcAAAEKgACA0IAAgOYICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABeoAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACA1IAAgOYICAgIgFSAmAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxkAAAEKAAABCgAAABcAAAEKgACAAIAAgOYICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgOYICAgIgFSAmggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxsAAAEKAAABCgAAABcAAAEKgACAAIAAgOYICAgIgFSAmwgIgAAI3xASAAABQAAAAUEAAAFCAAAHZwAAACEAAAFEAAABRQAAB2gAAAAjAAABQwAAB2kAAAFGAAA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AAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAmwAAABcAAJEzAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwQAAAQoAAAEKAAAAFwAAAQqAAIELpYAAgQufCAgICIBUgQHuCAiAAAjfEBQAAAD7AACSLAAAki0AAJIuAACSLwAAkjAAAJIxAAAAIQAAAA4AAJIyAAAAJQAAkjMAAAAoAACSNAAAkjUAAJI2AACSNwAAkjgAAJI5AAAAIwAABCwAAAD8AAAA/AAAkj0AAAApAAABAgAAAPwAAAAUAAABBQAAACkAAABfAACSRQAAkkYAAAApAAAAKQAAAPwAAJJKAACSSwAAAQIAAAAxXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNvcmRlcmVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNzdG9yYWdlXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNkdXBsaWNhdGVzCYBDgEOBC6eABIEDEYBDgAKBAxOABIAogQ6CgQumgASABIBDgQu4gQ6DgQMREl5kWJrTAAAAOgAAADsAAAAOAACSTwAAklEAAAC0oQA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AFMQAAAEKAAABCgAAABcAAAEKgACBDMCAAIEM9wgICAiAVIEB8QgIgAAI0gAAADsAAAAOAACjzQAAAVqhAACjzoENAYBT1wAAAA4AAAAlAACj0QAAACEAAAAoAACj0gAAACMAAKPTAAAAFwAAAIcAAACHAACj1wAAAK0AAAAxWV9zcGVjaWZpY1hfZ2VuZXJhbIEN64AAgQzUgQzUgQ0CgQ0DEwAAAAEOsRnt3xAUAAAA+wAAo9sAAKPcAACj3QAAo94AAKPfAACj4AAAACEAAAAOAACj4QAAACUAAKPiAAAAKAAAo+MAAKPkAACj5QAAo+YAAKPnAACj6AAAACMAAAQsAAAA/AAAAPwAAKPsAAAAKQAAAQIAAAD8AAAAFAAAAQUAAAApAAAAcQAAo/QAAKP1AAAAKQAAACkAAAD8AACj+QAAo/oAAAECAAAAMV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QIVhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zb3JkZXJlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNkdXBsaWNhdGVzXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3N0b3JhZ2VfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zb3JkZXJlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZV8QIVhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zc3RvcmFnZV8QJFhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zZHVwbGljYXRlcwmAQ4BDgQ0FgASBAxGAQ4ACgQMTgASAOoENkIENBIAEgASAQ4ENFoENkYEDERJ078zR0wAAADo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AAAEKAAABCgAAABcAAAEKgACAAIAAgREtCAgICIBUgEkICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAANpZAAAAFwAA2hIAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEkAAABCgAAAQoAAAAXAAABCoAAgREzgACBES0ICAgIgFSASggIgAAI0gAAADsAAAAOAADaZwAAAVqhAADaaIERNIBT0gAAADsAAAAOAADaawAAAVqiAADabAAA2m2BETWBETaAU18QEHJhd093bmVkSWRlbnRpdHlZc2VydmVyVVJM3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAADaEgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASUAAAEKAAABCgAAABcAAAEKgACAAIAAgREtCAgICIBUgEsICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAANqCAAAAFwAA2hIAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAAAEmAAABCgAAAQoAAAAXAAABCoAAgRE5gACBES0ICAgIgFSATAgIgAAI0gAAADsAAAAOAADakAAAAVqggFPfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAABtgAAABcAANoSAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAABJwAAAQoAAAEKAAAAFwAAAQqAAIBggACBES0ICAgIgFSATQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAA2qMAAAAXAADaEgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASgAAAEKAAABCgAAABcAAAEKgACBETyAAIERLQgICAiAVIBOCAiAAAjTAAAAOgAAADsAAAAOAADasQAA2rIAAAC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XAAABCoAAgRO3gACBE+4ICAgIgFSBAfEICIAACNIAAAA7AAAADgAA/zwAAAFaoQAA/z2BE/iAU9cAAAAOAAAAJQAAo9EAAAAhAAAAKAAAo9IAAAAjAACj0wAAABcAAAClAAAApQAA/0QAAACqAAAAMYEN64AAgRPLgRPLgRP5gRP6EmlCwrLfEBQAAAD7AAD/SAAA/0kAAP9KAAD/SwAA/0wAAP9NAAAAIQAAAA4AAP9OAAAAJQAA/08AAAAoAAD/UAAA/1EAAP9SAAD/UwAA/1QAAP9VAAAAIwAABCwAAAD8AAAA/AAA/1kAAAApAAABAgAAAPwAAAAUAAABBQAAACkAAABuAAD/YQAA/2IAAAApAAAAKQAAAPwAAP9mAAD/ZwAAAQIAAAAxXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNvcmRlcmVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNzdG9yYWdlXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNkdXBsaWNhdGVzCYBDgEOBE/yABIEDEYBDgAKBAxOABIA3gRSFgRP7gASABIBDgRQNgRSGgQMREqLeCgDTAAAAOgAAADsAAAAOAAD/awAA/20AAAC0oQAAAQ+ARaEAAP9ugRP9gGP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AagAAAG8AAABxAACVSQAAlU8AAJWIAACVmgAAlaEAAJWuAACVwQAAldkAAJXnAACWAQAAlgMAAJYGAACWCQAAlgsAAJYOAACWEAAAlhMAAJaEAACWowAAlsAAAJbfAACW8QAAlxEAAJcYAACXNgAAl0IAAJdeAACXZAAAl4YAAJenAACXugAAl7wAAJe/AACXwgAAl8QAAJfGAACXyAAAl8sAAJfOAACX0AAAl9IAAJfUAACX1gAAl9gAAJfaAACX2wAAl98AAJf4AACYAAAAmAsAAJj6AACY/AAAmP4AAJkAAACZAgAAmQQAAJkGAACZCAAAmQoAAJkMAACZDgAAmRAAAJkSAACZFAAAmRYAAJkYAACZGgAAmRwAAJkeAACZIAAAmSIAAJkkAACZJgAAmSgAAJkqAACZLAAAmS4AAJkwAACZMgAAmTQAAJk2AACZOAAAmToAAJk8AACZPgAAmUAAAJlCAACZRAAAmUYAAJlIAACZSgAAmUwAAJlOAACZUAAAmVIAAJlUAACZVgAAmVgAAJlaAACZXAAAmV4AAJlgAACZYgAAmWQAAJlmAACZaAAAmWoAAJlsAACZbgAAmXAAAJpfAACaYQAAmmQAAJpnAACaagAAmm0AAJpwAACacwAAmnYAAJp5AACafAAAmn8AAJqCAACahQAAmogAAJqLAACajgAAmpEAAJqUAACalwAAmpoAAJqdAACaoAAAmqMAAJqmAACaqQAAmqwAAJqvAACasgAAmrUAAJq4AACauwAAmr4AAJrBAACaxAAAmscAAJrKAACazQAAmtAAAJrTAACa1gAAmtkAAJrcAACa3wAAmuIAAJrlAACa6AAAmusAAJruAACa8QAAmvQAAJr3AACa+gAAmv0AAJsAAACbAwAAmwYAAJsJAACbDAAAmw8AAJsRAACbJwAAmzQAAJtCAACbcwAAm4wAAJukAACbvgAAm8oAAJvRAACb6AAAm/0AAJwXAACcNgAAnE4AAJxtAACcgQAAnJYAAJy9AACc1AAAnOcAAJz2AACdFAAAnUQAAJ1hAACdgQAAnZwAAJ2xAACdygAAndwAAJ3oAACd9wAAnioAAJ48AACeUgAAnl8AAJ5tAACefAAAnooAAJ6iAACeuQAAnswAAJ7kAACe8gAAnycAAJ9JAACfZwAAn3EAAJ+IAACfogAAn7sAAJ/bAACf7QAAoAMAAKANAACgJwAAoE4AAKBcAACgbgAAoIoAAKENAAChMQAAoVUAAKF4AAChnwAAob8AAKHmAACiDQAAoi0AAKJRAACidQAAooEAAKKDAACihQAAoocAAKKJAACiiwAAoo0AAKKQAACikgAAopQAAKKXAACimQAAopsAAKKeAACioAAAoqEAAKKmAACirgAAoscAAKLMAACizgAAotMAAKLVAACi1wAAouYAAKMvAACjUwAAo3oAAKOeAACjoAAAo6IAAKOkAACjpgAAo6gAAKOqAACjqwAAo60AAKPGAACj6wAAo+0AAKPvAACj8QAAo/MAAKP1AACj9wAAo/kAAKP7AACj/QAApCIAAKQkAACkJgAApCgAAKQqAACkLAAApC4AAKQwAACkMgAApDQAAKQ2AACkTAAApF8AAKR7AACkmAAApLQAAKTIAACk2gAApPAAAKUJAAClhAAApYoAAKWTAACloAAApawAAKW2AAClwAAApcsAAKXWAACl4wAApesAAKXtAACl7wAApfEAAKXzAACl9AAApfUAAKX2AACl9wAApfkAAKX7AACl/AAApf0AAKX/AACmAAAAphEAAKYSAACmFAAApiUAAKYwAACmOQAApkgAAKZVAACmXQAApmYAAKZ3AACmigAAppsAAKauAACmxQAAptcAAKdSAACnVAAAp1YAAKdYAACnWgAAp1sAAKdcAACnXQAAp14AAKdgAACnYgAAp2MAAKdkAACnZgAAp2cAAKfiAACn5AAAp+YAAKfoAACn6gAAp+sAAKfsAACn7QAAp+4AAKfwAACn8gAAp/MAAKf0AACn9gAAp/cAAKgIAACoDQAAqA8AAKgRAACoIgAAqC8AAKgxAACoMwAAqDUAAKg3AACoSgAAqGEAAKhzAACo7gAAqPAAAKjyAACo9AAAqPYAAKj3AACo+AAAqPkAAKj6AACo/AAAqP4AAKj/AACpAAAAqQIAAKkDAACpfgAAqYAAAKmCAACphAAAqYYAAKmHAACpiAAAqYkAAKmKAACpjAAAqY4AAKmPAACpkAAAqZIAAKmTAACppAAAqaUAAKmnAACqIgAAqiQAAKomAACqKAAAqioAAKorAACqLAAAqi0AAKouAACqMAAAqjIAAKozAACqNAAAqjYAAKo3AACqOAAAqrMAAKq1AACqtwAAqrkAAKq7AACqvAAAqr0AAKq+AACqvwAAqsEAAKrDAACqxAAAqsUAAKrHAACqyAAAquEAAKriAACq4wAAquUAAKr2AACrDAAAqxkAAKsmAACroQAAq6MAAKulAACrpwAAq6kAAKuqAACrqwAAq6wAAKutAACrrwAAq7EAAKuyAACrswAAq7UAAKu2AACr5wAAq+kAAKvrAACr7QAAq+4AAKvwAACsBwAArBgAAKwmAACsPwAArE0AAKxiAACsdgAArI0AAKyfAACtGgAArRwAAK0eAACtIAAArSIAAK0jAACtJAAArSUAAK0mAACtKAAArSoAAK0rAACtLAAArS4AAK0vAACtRQAArVYAAK1rAACtiAAArZ0AAK2rAACtwAAArdQAAK3rAACt/QAArhYAAK5VAACuVwAArlkAAK5bAACuXQAArl8AAK5hAACuYwAArmUAAK5nAACuaQAArmsAAK5tAACubwAArnEAAK5zAACusgAArrQAAK62AACuuAAArroAAK68AACuvwAArsIAAK7FAACuyAAArssAAK7OAACu0QAArtQAAK7XAACu2gAArtwAAK7uAACvAwAArz4AAK93AACvnwAAr8cAAK/eAACv8QAAsAYAALArAACwSAAAsFQAALBwAACwqwAAsLYAALFJAACxbAAAsYwAALGsAACxrgAAsbAAALGyAACxtAAAsbYAALG3AACxuAAAsboAALG7AACxvQAAsb4AALHAAACxwgAAscMAALHEAACxxgAAsccAALHQAACx6QAAsfIAALH0AACx9gAAsf8AALIBAACyAwAAsgUAALIaAACyLwAAsngAALKcAACywwAAsucAALLpAACy6wAAsu0AALLvAACy8QAAsvMAALL0AACy9gAAsw8AALMwAACzMgAAszQAALM2AACzOAAAszoAALM8AACzPgAAs0AAALNhAACzYwAAs2UAALNnAACzaQAAs2sAALNtAACzbwAAs3EAALNzAACzkQAAs68AALPCAACz1gAAs+sAALQIAAC0HAAAtDIAALStAAC0rwAAtLEAALSzAAC0tQAAtLYAALS3AAC0uAAAtLkAALS7AAC0vQAAtL4AALS/AAC0wQAAtMIAALU9AAC1PwAAtUEAALVDAAC1RQAAtUYAALVHAAC1SAAAtUkAALVLAAC1TQAAtU4AALVPAAC1UQAAtVIAALXNAAC1zwAAtdEAALXTAAC11QAAtdYAALXXAAC12AAAtdkAALXbAAC13QAAtd4AALXfAAC14QAAteIAALX7AAC1/AAAtf0AALX/AAC2egAAtnwAALZ+AAC2gAAAtoIAALaDAAC2hAAAtoUAALaGAAC2iAAAtooAALaLAAC2jAAAto4AALaPAAC3CgAAtwwAALcOAAC3EAAAtxIAALcTAAC3FAAAtxUAALcWAAC3GAAAtxoAALcbAAC3HAAAtx4AALcfAAC3mgAAt5wAALeeAAC3oAAAt6IAALejAAC3pAAAt6UAALemAAC3qAAAt6oAALerAAC3rAAAt64AALevAAC4KgAAuCwAALguAAC4MAAAuDIAALgzAAC4NAAAuDUAALg2AAC4OAAAuDoAALg7AAC4PAAAuD4AALg/AAC4ugAAuLwAALi+AAC4wAAAuMIAALjDAAC4xAAAuMUAALjGAAC4yAAAuMoAALjLAAC4zAAAuM4AALjPAAC5GAAAuTwAALljAAC5hwAAuYkAALmLAAC5jQAAuY8AALmRAAC5kwAAuZQAALmWAAC5rwAAucwAALnOAAC50AAAudIAALnUAAC51gAAudgAALnaAAC59wAAufkAALn7AAC5/QAAuf8AALoBAAC6AwAAugUAALoHAAC6JwAAulIAALpsAAC6hQAAup8AALq/AAC64gAAu10AALtfAAC7YQAAu2MAALtlAAC7ZgAAu2cAALtoAAC7aQAAu2sAALttAAC7bgAAu28AALtxAAC7cgAAu+0AALvvAAC78QAAu/MAALv1AAC79gAAu/cAALv4AAC7+QAAu/sAALv9AAC7/gAAu/8AALwBAAC8AgAAvH0AALx/AAC8gQAAvIMAALyFAAC8hgAAvIcAALyIAAC8iQAAvIsAALyNAAC8jgAAvI8AALyRAAC8kgAAvQ0AAL0PAAC9EQAAvRMAAL0VAAC9FgAAvRcAAL0YAAC9GQAAvRsAAL0dAAC9HgAAvR8AAL0hAAC9IgAAvSUAAL2gAAC9ogAAvaQAAL2mAAC9qAAAvakAAL2qAAC9qwAAvawAAL2uAAC9sAAAvbEAAL2yAAC9tAAAvbUAAL4wAAC+MgAAvjQAAL42AAC+OAAAvjkAAL46AAC+OwAAvjwAAL4+AAC+QAAAvkEAAL5CAAC+RAAAvkUAAL5UAAC+zwAAvtEAAL7TAAC+1QAAvtcAAL7YAAC+2QAAvtoAAL7bAAC+3QAAvt8AAL7gAAC+4QAAvuMAAL7kAAC+9QAAvwMAAL8cAAC/KgAAvzcAAL9KAAC/YQAAv3MAAMAGAADAKQAAwEkAAMBpAADAawAAwG0AAMBvAADAcQAAwHMAAMB0AADAdQAAwHcAAMB4AADAegAAwHsAAMB9AADAfwAAwIAAAMCBAADAgwAAwIQAAMCJAADAogAAwKsAAMCtAADArwAAwLgAAMC6AADAvAAAwL4AAMEHAADBKwAAwVIAAMF2AADBeAAAwXoAAMF8AADBfgAAwYAAAMGCAADBgwAAwYUAAMGeAADBvwAAwcEAAMHDAADBxQAAwccAAMHJAADBywAAwc0AAMHPAADB8AAAwfIAAMH0AADB9gAAwfgAAMH6AADB/AAAwf4AAMIAAADCAgAAwn0AAMJ/AADCgQAAwoMAAMKFAADChgAAwocAAMKIAADCiQAAwosAAMKNAADCjgAAwo8AAMKRAADCkgAAww0AAMMPAADDEQAAwxMAAMMVAADDFgAAwxcAAMMYAADDGQAAwxsAAMMdAADDHgAAwx8AAMMhAADDIgAAw50AAMOfAADDoQAAw6MAAMOlAADDpgAAw6cAAMOoAADDqQAAw6sAAMOtAADDrgAAw68AAMOxAADDsgAAw8sAAMPMAADDzQAAw88AAMRKAADETAAAxE4AAMRQAADEUgAAxFMAAMRUAADEVQAAxFYAAMRYAADEWgAAxFsAAMRcAADEXgAAxF8AAMTaAADE3AAAxN4AAMTgAADE4gAAxOMAAMTkAADE5QAAxOYAAMToAADE6gAAxOsAAMTsAADE7gAAxO8AAMTwAADFawAAxW0AAMVvAADFcQAAxXMAAMV0AADFdQAAxXYAAMV3AADFeQAAxXsAAMV8AADFfQAAxX8AAMWAAADF+wAAxf0AAMX/AADGAQAAxgMAAMYEAADGBQAAxgYAAMYHAADGCQAAxgsAAMYMAADGDQAAxg8AAMYQAADGiwAAxo0AAMaPAADGkQAAxpMAAMaUAADGlQAAxpYAAMaXAADGmQAAxpsAAMacAADGnQAAxp8AAMagAADG6QAAxw0AAMc0AADHWAAAx1oAAMdcAADHXgAAx2AAAMdiAADHZAAAx2UAAMdnAADHgAAAx50AAMefAADHoQAAx6MAAMelAADHpwAAx6kAAMerAADHyAAAx8oAAMfMAADHzgAAx9AAAMfSAADH1AAAx9YAAMfYAADIUwAAyFUAAMhXAADIWQAAyFsAAMhcAADIXQAAyF4AAMhfAADIYQAAyGMAAMhkAADIZQAAyGcAAMhoAADI4wAAyOUAAMjnAADI6QAAyOsAAMjsAADI7QAAyO4AAMjvAADI8QAAyPMAAMj0AADI9QAAyPcAAMj4AADJcwAAyXUAAMl3AADJeQAAyXsAAMl8AADJfQAAyX4AAMl/AADJgQAAyYMAAMmEAADJhQAAyYcAAMmIAADKAwAAygUAAMoHAADKCQAAygsAAMoMAADKDQAAyg4AAMoPAADKEQAAyhMAAMoUAADKFQAAyhcAAMoYAADKkwAAypUAAMqXAADKmQAAypsAAMqcAADKnQAAyp4AAMqfAADKoQAAyqMAAMqkAADKpQAAyqcAAMqoAADLIwAAyyUAAMsnAADLKQAAyysAAMssAADLLQAAyy4AAMsvAADLMQAAyzMAAMs0AADLNQAAyzcAAMs4AADLSgAAy8UAAMvHAADLyQAAy8sAAMvNAADLzgAAy88AAMvQAADL0QAAy9MAAMvVAADL1gAAy9cAAMvZAADL2gAAzG0AAMyQAADMsAAAzNAAAMzSAADM1AAAzNYAAMzYAADM2gAAzNsAAMzcAADM3gAAzN8AAMzhAADM4gAAzOQAAMzmAADM5wAAzOgAAMzqAADM6wAAzPAAAM0JAADNEgAAzRQAAM0WAADNHwAAzSEAAM0jAADNJQAAzW4AAM2SAADNuQAAzd0AAM3fAADN4QAAzeMAAM3lAADN5wAAzekAAM3qAADN7AAAzgUAAM4mAADOKAAAzioAAM4sAADOLgAAzjAAAM4yAADONAAAzjYAAM5XAADOWQAAzlsAAM5dAADOXwAAzmEAAM5jAADOZQAAzmcAAM5pAADO5AAAzuYAAM7oAADO6gAAzuwAAM7tAADO7gAAzu8AAM7wAADO8gAAzvQAAM71AADO9gAAzvgAAM75AADPdAAAz3YAAM94AADPegAAz3wAAM99AADPfgAAz38AAM+AAADPggAAz4QAAM+FAADPhgAAz4gAAM+JAADQBAAA0AYAANAIAADQCgAA0AwAANANAADQDgAA0A8AANAQAADQEgAA0BQAANAVAADQFgAA0BgAANAZAADQMgAA0DMAANA0AADQNgAA0LEAANCzAADQtQAA0LcAANC5AADQugAA0LsAANC8AADQvQAA0L8AANDBAADQwgAA0MMAANDFAADQxgAA0UEAANFDAADRRQAA0UcAANFJAADRSgAA0UsAANFMAADRTQAA0U8AANFRAADRUgAA0VMAANFVAADRVgAA0dEAANHTAADR1QAA0dcAANHZAADR2gAA0dsAANHcAADR3QAA0d8AANHhAADR4gAA0eMAANHlAADR5gAA0mEAANJjAADSZQAA0mcAANJpAADSagAA0msAANJsAADSbQAA0m8AANJxAADScgAA0nMAANJ1AADSdgAA0vEAANLzAADS9QAA0vcAANL5AADS+gAA0vsAANL8AADS/QAA0v8AANMBAADTAgAA0wMAANMFAADTBgAA008AANNzAADTmgAA074AANPAAADTwgAA08QAANPGAADTyAAA08oAANPLAADTzQAA0+YAANQDAADUBQAA1AcAANQJAADUCwAA1A0AANQPAADUEQAA1C4AANQwAADUMgAA1DQAANQ2AADUOAAA1DoAANQ8AADUPgAA1LkAANS7AADUvQAA1L8AANTBAADUwgAA1MMAANTEAADUxQAA1McAANTJAADUygAA1MsAANTNAADUzgAA1NAAANVLAADVTQAA1U8AANVRAADVUwAA1VQAANVVAADVVgAA1VcAANVZAADVWwAA1VwAANVdAADVXwAA1WAAANXbAADV3QAA1d8AANXhAADV4wAA1eQAANXlAADV5gAA1ecAANXpAADV6wAA1ewAANXtAADV7wAA1fAAANZrAADWbQAA1m8AANZxAADWcwAA1nQAANZ1AADWdgAA1ncAANZ5AADWewAA1nwAANZ9AADWfwAA1oAAANaDAADW/gAA1wAAANcCAADXBAAA1wYAANcHAADXCAAA1wkAANcKAADXDAAA1w4AANcPAADXEAAA1xIAANcTAADXjgAA15AAANeSAADXlAAA15YAANeXAADXmAAA15kAANeaAADXnAAA154AANefAADXoAAA16IAANejAADYHgAA2CAAANgiAADYJAAA2CYAANgnAADYKAAA2CkAANgqAADYLAAA2C4AANgvAADYMAAA2DIAANgzAADYxgAA2OkAANkJAADZKQAA2SsAANktAADZLwAA2TEAANkzAADZNAAA2TUAANk3AADZOAAA2ToAANk7AADZPQAA2T8AANlAAADZQQAA2UMAANlEAADZSQAA2WIAANlrAADZbQAA2W8AANl4AADZegAA2XwAANl+AADZxwAA2esAANoSAADaNgAA2jgAANo6AADaPAAA2j4AANpAAADaQgAA2kMAANpFAADaXgAA2n8AANqBAADagwAA2oUAANqHAADaiQAA2osAANqNAADajwAA2rAAANqyAADatAAA2rYAANq4AADaugAA2rwAANq+AADawAAA2sIAANs9AADbPwAA20EAANtDAADbRQAA20YAANtHAADbSAAA20kAANtLAADbTQAA204AANtPAADbUQAA21IAANvNAADbzwAA29EAANvTAADb1QAA29YAANvXAADb2AAA29kAANvbAADb3QAA294AANvfAADb4QAA2+IAANxdAADcXwAA3GEAANxjAADcZQAA3GYAANxnAADcaAAA3GkAANxrAADcbQAA3G4AANxvAADccQAA3HIAANyLAADcjAAA3I0AANyPAADdCgAA3QwAAN0OAADdEAAA3RIAAN0TAADdFAAA3RUAAN0WAADdGAAA3RoAAN0bAADdHAAA3R4AAN0fAADdmgAA3ZwAAN2eAADdoAAA3aIAAN2jAADdpAAA3aUAAN2mAADdqAAA3aoAAN2rAADdrAAA3a4AAN2vAADeKgAA3iwAAN4uAADeMAAA3jIAAN4zAADeNAAA3jUAAN42AADeOAAA3joAAN47AADePAAA3j4AAN4/AADeugAA3rwAAN6+AADewAAA3sIAAN7DAADexAAA3sUAAN7GAADeyAAA3soAAN7LAADezAAA3s4AAN7PAADfSgAA30wAAN9OAADfUAAA31IAAN9TAADfVAAA31UAAN9WAADfWAAA31oAAN9bAADfXAAA314AAN9fAADfqAAA38wAAN/zAADgFwAA4BkAAOAbAADgHQAA4B8AAOAhAADgIwAA4CQAAOAmAADgPwAA4FwAAOBeAADgYAAA4GIAAOBkAADgZgAA4GgAAOBqAADghwAA4IkAAOCLAADgjQAA4I8AAOCRAADgkwAA4JUAAOCXAADhEgAA4RQAAOEWAADhGAAA4RoAAOEbAADhHAAA4R0AAOEeAADhIAAA4SIAAOEjAADhJAAA4SYAAOEnAADhogAA4aQAAOGmAADhqAAA4aoAAOGrAADhrAAA4a0AAOGuAADhsAAA4bIAAOGzAADhtAAA4bYAAOG3AADiMgAA4jQAAOI2AADiOAAA4joAAOI7AADiPAAA4j0AAOI+AADiQAAA4kIAAOJDAADiRAAA4kYAAOJHAADiwgAA4sQAAOLGAADiyAAA4soAAOLLAADizAAA4s0AAOLOAADi0AAA4tIAAOLTAADi1AAA4tYAAOLXAADjUgAA41QAAONWAADjWAAA41oAAONbAADjXAAA410AAONeAADjYAAA42IAAONjAADjZAAA42YAAONnAADj4gAA4+QAAOPmAADj6AAA4+oAAOPrAADj7AAA4+0AAOPuAADj8AAA4/IAAOPzAADj9AAA4/YAAOP3AADkcgAA5HQAAOR2AADkeAAA5HoAAOR7AADkfAAA5H0AAOR+AADkgAAA5IIAAOSDAADkhAAA5IYAAOSHAADlGgAA5T0AAOVdAADlfQAA5X8AAOWBAADlgwAA5YUAAOWHAADliAAA5YkAAOWLAADljAAA5Y4AAOWPAADlkQAA5ZMAAOWUAADllQAA5ZcAAOWYAADlnQAA5bYAAOW/AADlwQAA5cMAAOXMAADlzgAA5dAAAOXSAADmGwAA5j8AAOZmAADmigAA5owAAOaOAADmkAAA5pIAAOaUAADmlgAA5pcAAOaZAADmsgAA5tMAAObVAADm1wAA5tkAAObbAADm3QAA5t8AAObhAADm4wAA5wQAAOcGAADnCAAA5woAAOcMAADnDgAA5xAAAOcSAADnFAAA5xYAAOeRAADnkwAA55UAAOeXAADnmQAA55oAAOebAADnnAAA550AAOefAADnoQAA56IAAOejAADnpQAA56YAAOghAADoIwAA6CUAAOgnAADoKQAA6CoAAOgrAADoLAAA6C0AAOgvAADoMQAA6DIAAOgzAADoNQAA6DYAAOixAADoswAA6LUAAOi3AADouQAA6LoAAOi7AADovAAA6L0AAOi/AADowQAA6MIAAOjDAADoxQAA6MYAAOjfAADo4AAA6OEAAOjjAADpXgAA6WAAAOliAADpZAAA6WYAAOlnAADpaAAA6WkAAOlqAADpbAAA6W4AAOlvAADpcAAA6XIAAOlzAADp7gAA6fAAAOnyAADp9AAA6fYAAOn3AADp+AAA6fkAAOn6AADp/AAA6f4AAOn/AAD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NLgABDTAAAQ0xAAENMgABDTQAAQ01AAENsAABDbIAAQ20AAENtgABDbkAAQ26AAENuwABDbwAAQ29AAENvwABDcEAAQ3CAAENwwABDcUAAQ3GAAEOQQABDkMAAQ5GAAEOSAABDksAAQ5MAAEOTQABDk4AAQ5PAAEOUQABDlMAAQ5UAAEOVQABDlcAAQ5YAAEOcQABDnIAAQ5zAAEOdQABDvAAAQ7yAAEO9AABDvYAAQ75AAEO+gABDvsAAQ78AAEO/QABDv8AAQ8BAAEPAgABDwMAAQ8FAAEPBgABD4EAAQ+DAAEPhQABD4cAAQ+KAAEPiwABD4wAAQ+NAAEPjgABD5AAAQ+SAAEPkwABD5QAAQ+WAAEPlwABEBIAARAUAAEQFgABEBgAARAbAAEQHAABEB0AARAeAAEQHwABECEAARAjAAEQJAABECUAARAnAAEQKAABEKMAARClAAEQpwABEKkAARCsAAEQrQABEK4AARCvAAEQsAABELIAARC0AAEQtQABELYAARC4AAEQuQABETQAARE2AAEROAABEToAARE9AAERPgABET8AARFAAAERQQABEUMAARFFAAERRgABEUcAARFJAAERSgABEZMAARG3AAER3gABEgIAARIFAAESBwABEgkAARILAAESDQABEg8AARIQAAESEwABEiwAARJJAAESSwABEk0AARJPAAESUQABElMAARJVAAESVwABEnQAARJ3AAESegABEn0AARKAAAESgwABEoYAARKJAAESiwABEwYAARMIAAETCgABEwwAARMPAAETEAABExEAARMSAAETEwABExUAARMXAAETGAABExkAARMbAAETHAABE5cAAROZAAETmwABE50AAROgAAEToQABE6IAAROjAAETpAABE6YAAROoAAETqQABE6oAAROsAAETrQABFCgAARQqAAEULAABFC4AARQxAAEUMgABFDMAARQ0AAEUNQABFDcAARQ5AAEUOgABFDsAARQ9AAEUPgABFLkAARS7AAEUvQABFL8AARTCAAEUwwABFMQAARTFAAEUxgABFMgAARTKAAEUywABFMwAARTOAAEUzwABFUoAARVMAAEVTgABFVAAARVTAAEVVAABFVUAARVWAAEVVwABFVkAARVbAAEVXAABFV0AARVfAAEVYAABFdsAARXdAAEV4AABFeIAARXlAAEV5gABFecAARXoAAEV6QABFesAARXtAAEV7gABFe8AARXxAAEV8gABFgEAARZ8AAEWfgABFoAAARaCAAEWhQABFoYAARaHAAEWiAABFokAARaLAAEWjQABFo4AARaPAAEWkQABFpIAARclAAEXSAABF2gAAReIAAEXigABF4wAAReOAAEXkAABF5IAAReTAAEXlAABF5cAAReYAAEXmgABF5sAARedAAEXnwABF6AAARehAAEXpAABF6UAAReqAAEXwwABF8wAARfOAAEX0AABF9kAARfcAAEX3wABF+EAARgqAAEYTgABGHUAARiZAAEYnAABGJ4AARigAAEYogABGKQAARimAAEYpwABGKoAARjDAAEY5AABGOYAARjoAAEY6gABGOwAARjuAAEY8AABGPIAARj0AAEZFQABGRgAARkbAAEZHgABGSEAARkkAAEZJwABGSoAARktAAEZLwABGaoAARmsAAEZrgABGbAAARmzAAEZtAABGbUAARm2AAEZtwABGbkAARm7AAEZvAABGb0AARm/AAEZwAABGjsAARo9AAEaPwABGkEAARpEAAEaRQABGkYAARpHAAEaSAABGkoAARpMAAEaTQABGk4AARpQAAEaUQABGswAARrOAAEa0QABGtMAARrWAAEa1wABGtgAARrZAAEa2gABGtwAARreAAEa3wABGuAAARriAAEa4wABGvwAARr9AAEa/gABGwAAARt7AAEbfQABG38AARuBAAEbhAABG4UAARuGAAEbhwABG4gAARuKAAEbjAABG40AARuOAAEbkAABG5EAARwMAAEcDgABHBAAARwSAAEcFQABHBYAARwXAAEcGAABHBkAARwbAAEcHQABHB4AARwfAAEcIQABHCIAARydAAEcnwABHKEAARyjAAEcpgABHKcAARyoAAEcqQABHKoAARysAAEcrgABHK8AARywAAEcsgABHLMAAR0uAAEdMAABHTIAAR00AAEdNwABHTgAAR05AAEdOgABHTsAAR09AAEdPwABHUAAAR1BAAEdQwABHUQAAR2/AAEdwQABHcMAAR3FAAEdyAABHckAAR3KAAEdywABHcwAAR3OAAEd0AABHdEAAR3SAAEd1AABHdUAAR4eAAEeQgABHmkAAR6NAAEekAABHpIAAR6UAAEelgABHpgAAR6aAAEemwABHp4AAR63AAEe1AABHtYAAR7YAAEe2gABHtwAAR7eAAEe4AABHuIAAR7/AAEfAgABHwUAAR8IAAEfCwABHw4AAR8RAAEfFAABHxYAAR+RAAEfkwABH5UAAR+XAAEfmgABH5sAAR+cAAEfnQABH54AAR+gAAEfogABH6MAAR+kAAEfpgABH6cAASAiAAEgJAABICYAASAoAAEgKwABICwAASAtAAEgLgABIC8AASAxAAEgMwABIDQAASA1AAEgNwABIDgAASCzAAEgtQABILcAASC5AAEgvAABIL0AASC+AAEgvwABIMAAASDCAAEgxAABIMUAASDGAAEgyAABIMkAASFEAAEhRgABIUgAASFKAAEhTQABIU4AASFPAAEhUAABIVEAASFTAAEhVQABIVYAASFXAAEhWQABIVoAASHVAAEh1wABIdkAASHbAAEh3gABId8AASHgAAEh4QABIeIAASHkAAEh5gABIecAASHoAAEh6gABIesAASJmAAEiaAABImoAASJsAAEibwABInAAASJxAAEicgABInMAASJ1AAEidwABIngAASJ5AAEiewABInwAASL3AAEi+QABIvsAASL9AAEjAAABIwEAASMCAAEjAwABIwQAASMGAAEjCAABIwkAASMKAAEjDAABIw0AASOgAAEjwwABI+MAASQDAAEkBQABJAcAASQJAAEkCwABJA0AASQOAAEkDwABJBIAASQTAAEkFQABJBYAASQYAAEkGgABJBsAASQcAAEkHwABJCAAASQlAAEkPgABJEcAASRJAAEkSwABJFQAASRXAAEkWgABJFwAASSlAAEkyQABJPAAASUUAAElFwABJRkAASUbAAElHQABJR8AASUhAAElIgABJSUAASU+AAElXwABJWEAASVjAAElZQABJWcAASVpAAElawABJW0AASVvAAElkAABJZMAASWWAAElmQABJZwAASWfAAElogABJaUAASWoAAElqgABJiUAASYnAAEmKQABJisAASYuAAEmLwABJjAAASYxAAEmMgABJjQAASY2AAEmNwABJjgAASY6AAEmOwABJrYAASa4AAEmugABJrwAASa/AAEmwAABJsEAASbCAAEmwwABJsUAASbHAAEmyAABJskAASbLAAEmzAABJ0cAASdJAAEnTAABJ04AASdRAAEnUgABJ1MAASdUAAEnVQABJ1cAASdZAAEnWgABJ1sAASddAAEnXgABJ3cAASd4AAEneQABJ3sAASf2AAEn+AABJ/oAASf8AAEn/wABKAAAASgBAAEoAgABKAMAASgFAAEoBwABKAgAASgJAAEoCwABKAwAASiHAAEoiQABKIsAASiNAAEokAABKJEAASiSAAEokwABKJQAASiWAAEomAABKJkAASiaAAEonAABKJ0AASkYAAEpGgABKRwAASkeAAEpIQABKSIAASkjAAEpJAABKSUAASknAAEpKQABKSoAASkrAAEpLQABKS4AASmpAAEpqwABKa0AASmvAAEpsgABKbMAASm0AAEptQABKbYAASm4AAEpugABKbsAASm8AAEpvgABKb8AASo6AAEqPAABKj4AASpAAAEqQwABKkQAASpFAAEqRgABKkcAASpJAAEqSwABKkwAASpNAAEqTwABKlAAASqZAAEqvQABKuQAASsIAAErCwABKw0AASsPAAErEQABKxMAASsVAAErFgABKxkAASsyAAErTwABK1EAAStTAAErVQABK1cAAStZAAErWwABK10AASt6AAErfQABK4AAASuDAAErhgABK4kAASuMAAErjwABK5EAASwMAAEsDgABLBAAASwSAAEsFQABLBYAASwXAAEsGAABLBkAASwbAAEsHQABLB4AASwfAAEsIQABLCIAASydAAEsnwABLKEAASyjAAEspgABLKcAASyoAAEsqQABLKoAASysAAEsrgABLK8AASywAAEssgABLLMAAS0uAAEtMAABLTIAAS00AAEtNwABLTgAAS05AAEtOgABLTsAAS09AAEtPwABLUAAAS1BAAEtQwABLUQAAS2/AAEtwQABLcMAAS3FAAEtyAABLckAAS3KAAEtywABLcwAAS3OAAEt0AABLdEAAS3SAAEt1AABLdUAAS5QAAEuUgABLlQAAS5WAAEuWQABLloAAS5bAAEuXAABLl0AAS5fAAEuYQABLmIAAS5jAAEuZQABLmYAAS7hAAEu4wABLuUAAS7nAAEu6gABLusAAS7sAAEu7QABLu4AAS7wAAEu8gABLvMAAS70AAEu9gABLvcAAS9yAAEvdAABL3YAAS94AAEvewABL3wAAS99AAEvfgABL38AAS+BAAEvgwABL4QAAS+FAAEvhwABL4gAATAbAAEwPgABMF4AATB+AAEwgAABMIIAATCEAAEwhgABMIgAATCJAAEwigABMI0AATCOAAEwkAABMJEAATCTAAEwlQABMJYAATCXAAEwmgABMJsAATCgAAEwuQABMMIAATDEAAEwxgABMM8AATDSAAEw1QABMNcAATEgAAExRAABMWsAATGPAAExkgABMZQAATGWAAExmAABMZoAATGcAAExnQABMaAAATG5AAEx2gABMdwAATHeAAEx4AABMeIAATHkAAEx5gABMegAATHqAAEyCwABMg4AATIRAAEyFAABMhcAATIaAAEyHQABMiAAATIjAAEyJQABMqAAATKiAAEypAABMqYAATKpAAEyqgABMqsAATKsAAEyrQABMq8AATKxAAEysgABMrMAATK1AAEytgABMzEAATMzAAEzNQABMzcAATM6AAEzOwABMzwAATM9AAEzPgABM0AAATNCAAEzQwABM0QAATNGAAEzRwABM8IAATPEAAEzxwABM8kAATPMAAEzzQABM84AATPPAAEz0AABM9IAATPUAAEz1QABM9YAATPYAAEz2QABM/IAATPzAAEz9AABM/YAATRxAAE0cwABNHUAATR3AAE0egABNHsAATR8AAE0fQABNH4AATSAAAE0ggABNIMAATSEAAE0hgABNIcAATUCAAE1BAABNQYAATUIAAE1CwABNQwAATUNAAE1DgABNQ8AATURAAE1EwABNRQAATUVAAE1FwABNRgAATWTAAE1lQABNZcAATWZAAE1nAABNZ0AATWeAAE1nwABNaAAATWiAAE1pAABNaUAATWmAAE1qAABNakAATYkAAE2JgABNigAATYqAAE2LQABNi4AATYvAAE2MAABNjEAATYzAAE2NQABNjYAATY3AAE2OQABNjoAATa1AAE2twABNrkAATa7AAE2vgABNr8AATbAAAE2wQABNsIAATbEAAE2xgABNscAATbIAAE2ygABNssAATcUAAE3OAABN18AATeDAAE3hgABN4gAATeKAAE3jAABN44AATeQAAE3kQABN5QAATetAAE3ygABN8wAATfOAAE30AABN9IAATfUAAE31gABN9gAATf1AAE3+AABN/sAATf+AAE4AQABOAQAATgHAAE4CgABOAwAATiHAAE4iQABOIsAATiNAAE4kAABOJEAATiSAAE4kwABOJQAATiWAAE4mAABOJkAATiaAAE4nAABOJ0AATkYAAE5GgABORwAATkeAAE5IQABOSIAATkjAAE5JAABOSUAATknAAE5KQABOSoAATkrAAE5LQABOS4AATmpAAE5qwABOa0AATmvAAE5sgABObMAATm0AAE5tQABObYAATm4AAE5ugABObsAATm8AAE5vgABOb8AATo6AAE6PAABOj8AATpBAAE6RAABOkUAATpGAAE6RwABOkgAATpKAAE6TAABOk0AATpOAAE6UAABOlEAATrMAAE6zgABOtAAATrSAAE61QABOtYAATrXAAE62AABOtkAATrbAAE63QABOt4AATrfAAE64QABOuIAATtdAAE7XwABO2EAATtjAAE7ZgABO2cAATtoAAE7aQABO2oAATtsAAE7bgABO28AATtwAAE7cgABO3MAATvuAAE78AABO/IAATv0AAE79wABO/gAATv5AAE7+gABO/sAATv9AAE7/wABPAAAATwBAAE8AwABPAQAATyXAAE8ugABPNoAATz6AAE8/AABPP4AAT0AAAE9AgABPQQAAT0FAAE9BgABPQkAAT0KAAE9DAABPQ0AAT0PAAE9EQABPRIAAT0TAAE9FgABPRcAAT0cAAE9NQABPT4AAT1AAAE9QgABPUsAAT1OAAE9UQABPVMAAT2cAAE9wAABPecAAT4LAAE+DgABPhAAAT4SAAE+FAABPhYAAT4YAAE+GQABPhwAAT41AAE+VgABPlgAAT5aAAE+XAABPl4AAT5gAAE+YgABPmQAAT5mAAE+hwABPooAAT6NAAE+kAABPpMAAT6WAAE+mQABPpwAAT6fAAE+oQABPxwAAT8eAAE/IAABPyIAAT8lAAE/JgABPycAAT8oAAE/KQABPysAAT8tAAE/LgABPy8AAT8xAAE/MgABP60AAT+vAAE/sQABP7MAAT+2AAE/twABP7gAAT+5AAE/ugABP7wAAT++AAE/vwABP8AAAT/CAAE/wwABQD4AAUBAAAFAQwABQEUAAUBIAAFASQABQEoAAUBLAAFATAABQE4AAUBQAAFAUQABQFIAAUBUAAFAVQABQG4AAUBvAAFAcAABQHIAAUDtAAFA7wABQPEAAUDzAAFA9gABQPcAAUD4AAFA+QABQPoAAUD8AAFA/gABQP8AAUEAAAFBAgABQQMAAUF+AAFBgAABQYIAAUGEAAFBhwABQYgAAUGJAAFBigABQYsAAUGNAAF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TQAABU0EAAVNCAAFTQwABU0QAAVNGAAFTSAABU0kAAVNKAAFTTAABU00AAVPIAAFTygABU8wAAVPOAAFT0QABU9IAAVPTAAFT1AABU9UAAVPXAAFT2QABU9oAAVPbAAFT3QABU94AAVRZAAFUWwABVF0AAVRfAAFUYgABVGMAAVRkAAFUZQABVGYAAVRoAAFUagABVGsAAVRsAAFUbgABVG8AAVTqAAFU7AABVO4AAVTwAAFU8wABVPQAAVT1AAFU9gABVPcAAVT5AAFU+wABVPwAAVT9AAFU/wABVQAAAVWTAAFVtgABVdYAAVX2AAFV+AABVfoAAVX8AAFV/gABVgAAAVYBAAFWAgABVgUAAVYGAAFWCAABVgkAAVYLAAFWDQABVg4AAVYPAAFWEgABVhMAAVYcAAFWNQABVj4AAVZAAAFWQgABVksAAVZOAAFWUQABVlMAAVacAAFWwAABVucAAVcLAAFXDgABVxAAAVcSAAFXFAABVxYAAVcYAAFXGQABVxwAAVc1AAFXVgABV1gAAVdaAAFXXAABV14AAVdgAAFXYgABV2QAAVdmAAFXhwABV4oAAVeNAAFXkAABV5MAAVeWAAFXmQABV5wAAVefAAFXoQABWBwAAVgeAAFYIAABWCIAAVglAAFYJgABWCcAAVgoAAFYKQABWCsAAVgtAAFYLgABWC8AAVgxAAFYMgABWK0AAVivAAFYsQABWLMAAVi2AAFYtwABWLgAAVi5AAFYugABWLwAAVi+AAFYvwABWMAAAVjCAAFYwwABWT4AAVlAAAFZQwABWUUAAVlIAAFZSQABWUoAAVlLAAFZTAABWU4AAVlQAAFZUQABWVIAAVlUAAFZVQABWW4AAVlvAAFZcAABWXIAAVntAAFZ7wABWfEAAVnzAAFZ9gABWfcAAVn4AAFZ+QABWfoAAVn8AAFZ/gABWf8AAVoAAAFaAgABWgMAAVp+AAFagAABWoIAAVqEAAFahwABWogAAVqJAAFaigABWosAAVqNAAFajwABWpAAAVqRAAFakwABWpQAAVsPAAFbEQABWxMAAVsVAAFbGAABWxkAAVsaAAFbGwABWxwAAVseAAFbIAABWyEAAVsiAAFbJAABWyUAAVugAAFbogABW6QAAVumAAFbqQABW6oAAVurAAFbrAABW60AAVuvAAFbsQABW7IAAVuzAAFbtQABW7YAAVwxAAFcMwABXDUAAVw3AAFcOgABXDsAAVw8AAFcPQABXD4AAVxAAAFcQgABXEMAAVxEAAFcRgABXEcAAVyQAAFctAABXNsAAVz/AAFdAgABXQQAAV0GAAFdCAABXQoAAV0MAAFdDQABXRAAAV0pAAFdRgABXUgAAV1KAAFdTAABXU4AAV1QAAFdUgABXVQAAV1xAAFddAABXXcAAV16AAFdfQABXYAAAV2DAAFdhgABXYgAAV4DAAFeBQABXgcAAV4JAAFeDAABXg0AAV4OAAFeDwABXhAAAV4SAAFeFAABXhUAAV4WAAFeGAABXhkAAV6UAAFelgABXpgAAV6aAAFenQABXp4AAV6fAAFeoAABXqEAAV6jAAFepQABXqYAAV6nAAFeqQABXqoAAV8lAAFfJwABXykAAV8rAAFfLgABXy8AAV8wAAFfMQABXzIAAV80AAFfNgABXzcAAV84AAFfOgABXzsAAV+2AAFfuAABX7oAAV+8AAFfvwABX8AAAV/BAAFfwgABX8MAAV/FAAFfxwABX8gAAV/JAAFfywABX8wAAWBHAAFgSQABYEsAAWBNAAFgUAABYFEAAWBSAAFgUwABYFQAAWBWAAFgWAABYFkAAWBaAAFgXAABYF0AAWDYAAFg2gABYNwAAWDeAAFg4QABYOIAAWDjAAFg5AABYOUAAWDnAAFg6QABYOoAAWDrAAFg7QABYO4AAWFpAAFhawABYW0AAWFvAAFhcgABYXMAAWF0AAFhdQABYXYAAWF4AAFhegABYXsAAWF8AAFhfgABYX8AAWISAAFiNQABYlUAAWJ1AAFidwABYnkAAWJ7AAFifQABYn8AAWKAAAFigQABYoQAAWKFAAFihwABYogAAWKLAAFijQABYo4AAWKPAAFikgABYpMAAWKYAAFisQABYroAAWK8AAFivwABYsgAAWLLAAFizgABYtAAAWLjAAFjLAABY1AAAWN3AAFjmwABY54AAWOgAAFjogABY6QAAWOmAAFjqAABY6kAAWOsAAFjxQABY+YAAWPoAAFj6gABY+wAAWPuAAFj8AABY/IAAWP0AAFj9gABZBcAAWQaAAFkHQABZCAAAWQjAAFkJgABZCkAAWQsAAFkLwABZDEAAWSsAAFkrgABZLAAAWSyAAFktQABZLYAAWS3AAFkuAABZLkAAWS7AAFkvQABZL4AAWS/AAFkwQABZMIAAWU9AAFlPwABZUEAAWVDAAFlRgABZUcAAWVIAAFlSQABZUoAAWVMAAFlTgABZU8AAWVQAAFlUgABZVMAAWXOAAFl0AABZdMAAWXVAAFl2AABZdkAAWXaAAFl2wABZdwAAWXeAAFl4AABZeEAAWXiAAFl5AABZeUAAWX+AAFl/wABZgAAAWYCAAFmfQABZn8AAWaBAAFmgwABZoYAAWaHAAFmiAABZokAAWaKAAFmjAABZo4AAWaPAAFmkAABZpIAAWaTAAFnDgABZxAAAWcSAAFnFAABZxcAAWcYAAFnGQABZxoAAWcbAAFnHQABZx8AAWcgAAFnIQABZyMAAWckAAFnnwABZ6EAAWejAAFnpQABZ6gAAWepAAFnqgABZ6sAAWesAAFnrgABZ7AAAWexAAFnsgABZ7QAAWe1AAFoMAABaDIAAWg0AAFoNgABaDkAAWg6AAFoOwABaDwAAWg9AAFoPwABaEEAAWhCAAFoQwABaEUAAWhGAAFowQABaMMAAWjFAAFoxwABaMoAAWjLAAFozAABaM0AAWjOAAFo0AABaNIAAWjTAAFo1AABaNYAAWjXAAFpIAABaUQAAWlrAAFpjwABaZIAAWmVAAFplwABaZkAAWmbAAFpnQABaZ4AAWmhAAFpugABadcAAWnaAAFp3QABaeAAAWnjAAFp5gABaekAAWnsAAFqCQABagwAAWoPAAFqEgABahUAAWoYAAFqGwABah4AAWogAAFqMgABakYAAWpYAAFqbQABan8AAWqOAAFqqwABayYAAWsoAAFrKwABay0AAWswAAFrMQABazIAAWszAAFrNAABazYAAWs5AAFrOgABazsAAWs9AAFrPgABa7kAAWu7AAFrvgABa8AAAWvDAAFrxAABa8UAAWvGAAFrxwABa8kAAWvMAAFrzQABa84AAWvQAAFr0QABa9MAAWxOAAFsUAABbFMAAWxVAAFsWAABbFkAAWxaAAFsWwABbFwAAWxeAAFsYQABbGIAAWxjAAFsZQABbGYAAWzhAAFs4wABbOYAAWzoAAFs6wABbOwAAWztAAFs7gABbO8AAWzxAAFs9AABbPUAAWz2AAFs+AABbPkAAW18AAFtoAABbcQAAW3nAAFuDgABbi4AAW5VAAFufAABbpwAAW7AAAFu5AABbuYAAW7pAAFu6wABbu0AAW7vAAFu8gABbvUAAW73AAFu+QABbvwAAW7+AAFvAAABbwMAAW8GAAFvBwABbwwAAW8lAAFvKgABbywAAW8xAAFvNAABbzYAAW9/AAFvowABb8oAAW/uAAFv8QABb/MAAW/1AAFv9wABb/kAAW/7AAFv/AABb/8AAXAYAAFwPQABcD8AAXBBAAFwQwABcEUAAXBHAAFwSQABcEsAAXBNAAFwTwABcHQAAXB3AAFwegABcH0AAXCAAAFwgwABcIYAAXCJAAFwjAABcI8AAXCRAAFxDAABcQ4AAXERAAFxEwABcRYAAXEXAAFxGAABcRkAAXEaAAFxHAABcR4AAXEfAAFxIAABcSIAAXEjAAFxNAABcTUAAXE3AAFxsgABcbQAAXG2AAFxuAABcbsAAXG8AAFxvQABcb4AAXG/AAFxwQABccMAAXHEAAFxxQABcccAAXHIAAFyQwABckUAAXJIAAFySgABck0AAXJOAAFyTwABclAAAXJRAAFyUwABclUAAXJWAAFyVwABclkAAXJaAAFyawABcmwAAXJuAAFy6QABcusAAXLtAAFy7wABcvIAAXLzAAFy9AABcvUAAXL2AAFy+AABcvoAAXL7AAFy/AABcv4AAXL/AAFzegABc3wAAXN/AAFzgQABc4QAAXOFAAFzhgABc4cAAXOIAAFzigABc4wAAXONAAFzjgABc5AAAXORAAFzogABc6MAAXOlAAF0IAABdCIAAXQkAAF0JgABdCkAAXQqAAF0KwABdCwAAXQtAAF0LwABdDEAAXQyAAF0MwABdDUAAXQ2AAF0sQABdLMAAXS2AAF0uAABdLsAAXS8AAF0vQABdL4AAXS/AAF0wQABdMMAAXTEAAF0xQABdMcAAXTIAAF04QABdOIAAXTjAAF05QABdWAAAXViAAF1ZAABdWYAAXVpAAF1agABdWsAAXVsAAF1bQABdW8AAXVxAAF1cgABdXMAAXV1AAF1dgABdfEAAXXzAAF19QABdfcAAXX6AAF1+wABdfwAAXX9AAF1/gABdgAAAXYCAAF2AwABdgQAAXYGAAF2BwABdiAAAXY5AAF2PAABdj8AAXZCAAF2RQABdkgAAXZLAAF2ZAABdmcAAXZqAAF2bQABdnAAAXZzAAF2dgABdngAAXaNAAF2sAABdsYAAXbZAAF25QABdvsAAXeOAAF3sQABd9EAAXfxAAF38wABd/UAAXf3AAF3+QABd/wAAXf9AAF3/gABeAEAAXgCAAF4BAABeAUAAXgHAAF4CgABeAsAAXgMAAF4DwABeBAAAXgZAAF4MgABeDsAAXg9AAF4PwABeEgAAXhLAAF4TgABeFAAAXiZAAF4vQABeOQAAXkIAAF5CwABeQ0AAXkPAAF5EQABeRMAAXkVAAF5FgABeRkAAXkyAAF5UwABeVUAAXlXAAF5WQABeVsAAXldAAF5XwABeWEAAXljAAF5hAABeYcAAXmKAAF5jQABeZAAAXmTAAF5lgABeZkAAXmcAAF5ngABehkAAXobAAF6HQABeh8AAXoiAAF6IwABeiQAAXolAAF6JgABeigAAXoqAAF6KwABeiwAAXouAAF6LwABeqoAAXqsAAF6rgABerAAAXqzAAF6tAABerUAAXq2AAF6twABerkAAXq7AAF6vAABer0AAXq/AAF6wAABezsAAXs9AAF7QAABe0IAAXtFAAF7RgABe0cAAXtIAAF7SQABe0sAAXtNAAF7TgABe08AAXtRAAF7UgABe2sAAXtsAAF7bQABe28AAXvqAAF77AABe+4AAXvwAAF78wABe/QAAXv1AAF79gABe/cAAXv5AAF7+wABe/wAAXv9AAF7/wABfAAAAXx7AAF8fQABfH8AAXyBAAF8hAABfIUAAXyGAAF8hwABfIgAAXyKAAF8jAABfI0AAXyOAAF8kAABfJEAAX0MAAF9DgABfRAAAX0SAAF9FQABfRYAAX0XAAF9GAABfRkAAX0bAAF9HQABfR4AAX0fAAF9IQABfSIAAX2dAAF9nwABfaEAAX2jAAF9pgABfacAAX2oAAF9qQABfaoAAX2sAAF9rgABfa8AAX2wAAF9sgABfbMAAX4uAAF+MAABfjIAAX40AAF+NwABfjgAAX45AAF+OgABfjsAAX49AAF+PwABfkAAAX5BAAF+QwABfkQAAX6NAAF+sQABftgAAX78AAF+/wABfwEAAX8DAAF/BQABfwcAAX8JAAF/CgABfw0AAX8mAAF/QwABf0UAAX9HAAF/SQABf0sAAX9NAAF/TwABf1EAAX9uAAF/cQABf3QAAX93AAF/egABf30AAX+AAAF/gwABf4UAAYAAAAGAAgABgAQAAYAGAAGACQABgAoAAYALAAGADAABgA0AAYAPAAGAEQABgBIAAYATAAGAFQABgBYAAYCRAAGAkwABgJUAAYCXAAGAmgABgJsAAYCcAAGAnQABgJ4AAYCgAAGAogABgKMAAYCkAAGApgABgKcAAYEiAAGBJAABgSYAAYEoAAGBKwABgSwAAYEtAAGBLgABgS8AAYExAAGBMwABgTQAAYE1AAGBNwABgTgAAYGzAAGBtQABgbcAAYG5AAGBvAABgb0AAYG+AAGBvwABgcAAAYHCAAGBxAABgcUAAYHGAAGByAABgckAAYJEAAGCRgABgkgAAYJKAAGCTQABgk4AAYJPAAGCUAABglEAAYJTAAGCVQABglYAAYJXAAGCWQABgloAAYLVAAGC1wABgtkAAYLbAAGC3gABgt8AAYLgAAGC4QABguIAAYLkAAGC5gABgucAAYLoAAGC6gABgusAAYNmAAGDaAABg2oAAYNsAAGDbwABg3AAAYNxAAGDcgABg3MAAYN1AAGDdwABg3gAAYN5AAGDewABg3wAAYQPAAGEMgABhFIAAYRyAAGEdAABhHYAAYR4AAGEegABhH0AAYR+AAGEfwABhIIAAYSDAAGEhQABhIYAAYSIAAGEiwABhIwAAYSNAAGEkAABhJEAAYSaAAGEswABhLwAAYS+AAGEwAABhMkAAYTMAAGEzwABhNEAAYUaAAGFPgABhWUAAYWJAAGFjAABhY4AAYWQAAGFkgABhZQAAYWWAAGFlwABhZoAAYWzAAGF1AABhdYAAYXYAAGF2gABhdwAAYXeAAGF4AABheIAAYXkAAGGBQABhggAAYYLAAGGDgABhhEAAYYUAAGGFwABhhoAAYYdAAGGHwABhpoAAYacAAGGngABhqAAAYajAAGGpAABhqUAAYamAAGGpwABhqkAAYarAAGGrAABhq0AAYavAAGGsAABhysAAYctAAGHLwABhzEAAYc0AAGHNQABhzYAAYc3AAGHOAABhzoAAYc8AAGHPQABhz4AAYdAAAGHQQABh7wAAYe+AAGHwQABh8MAAYfGAAGHxwABh8gAAYfJAAGHygABh8wAAYfOAAGHzwABh9AAAYfSAAGH0wABh+wAAYftAAGH7gABh/AAAYhrAAGIbQABiG8AAYhxAAGIdAABiHUAAYh2AAGIdwABiHgAAYh6AAGIfAABiH0AAYh+AAGIgAABiIEAAYj8AAGI/gABiQAAAYkCAAGJBQABiQYAAYkHAAGJCAABiQkAAYkLAAGJDQABiQ4AAYkPAAGJEQABiRIAAYmNAAGJjwABiZEAAYmTAAGJlgABiZcAAYmYAAGJmQABiZoAAYmcAAGJngABiZ8AAYmgAAGJogABiaMAAYoeAAGKIAABiiIAAYokAAGKJwABiigAAYopAAGKKgABiisAAYotAAGKLwABijAAAYoxAAGKMwABijQAAYqvAAGKsQABirMAAYq1AAGKuAABirkAAYq6AAGKuwABirwAAYq+AAGKwAABisEAAYrCAAGKxAABisUAAYsOAAGLMgABi1kAAYt9AAGLgAABi4IAAYuEAAGLhgABi4gAAYuKAAGLiwABi44AAYunAAGLxAABi8YAAYvIAAGLygABi8wAAYvOAAGL0AABi9IAAYvvAAGL8gABi/UAAYv4AAGL+wABi/4AAYwBAAGMBAABjAYAAYyBAAGMgwABjIUAAYyHAAGMigABjIsAAYyMAAGMjQABjI4AAYyQAAGMkgABjJMAAYyUAAGMlgABjJcAAY0SAAGNFAABjRYAAY0YAAGNGwABjRwAAY0dAAGNHgABjR8AAY0hAAGNIwABjSQAAY0lAAGNJwABjSgAAY2jAAGNpQABjacAAY2pAAGNrAABja0AAY2uAAGNrwABjbAAAY2yAAGNtAABjbUAAY22AAGNuAABjbkAAY40AAGONgABjjgAAY46AAGOPQABjj4AAY4/AAGOQAABjkEAAY5DAAGORQABjkYAAY5HAAGOSQABjkoAAY7FAAGOxwABjskAAY7LAAGOzgABjs8AAY7QAAGO0QABjtIAAY7UAAGO1gABjtcAAY7YAAGO2gABjtsAAY9WAAGPWAABj1sAAY9dAAGPYAABj2EAAY9iAAGPYwABj2QAAY9mAAGPaAABj2kAAY9qAAGPbAABj20AAY9/AAGP+gABj/wAAY/+AAGQAAABkAMAAZAEAAGQBQABkAYAAZAHAAGQCQABkAsAAZAMAAGQDQABkA8AAZAQAAGQowABkMYAAZDmAAGRBgABkQgAAZEKAAGRDAABkQ4AAZERAAGREgABkRMAAZEWAAGRFwABkRkAAZEaAAGRHAABkR8AAZEgAAGRIQABkSQAAZElAAGRLgABkUcAAZFQAAGRUgABkVQAAZFdAAGRYAABkWMAAZFlAAGRrgABkdIAAZH5AAGSHQABkiAAAZIiAAGSJAABkiYAAZIoAAGSKgABkisAAZIuAAGSRwABkmgAAZJqAAGSbAABkm4AAZJwAAGScgABknQAAZJ2AAGSeAABkpkAAZKcAAGSnwABkqIAAZKlAAGSqAABkqsAAZKuAAGSsQABkrMAAZMuAAGTMAABkzIAAZM0AAGTNwABkzgAAZM5AAGTOgABkzsAAZM9AAGTPwABk0AAAZNBAAGTQwABk0QAAZO/AAGTwQABk8MAAZPFAAGTyAABk8kAAZPKAAGTywABk8wAAZPOAAGT0AABk9EAAZPSAAGT1AABk9UAAZRQAAGUUgABlFUAAZRXAAGUWgABlFsAAZRcAAGUXQABlF4AAZRgAAGUYgABlGMAAZRkAAGUZgABlGcAAZSAAAGUgQABlIIAAZSEAAGU/wABlQEAAZUDAAGVBQABlQgAAZUJAAGVCgABlQsAAZUMAAGVDgABlRAAAZURAAGVEgABlRQAAZUVAAGVkAABlZIAAZWUAAGVlgABlZkAAZWaAAGVmwABlZwAAZWdAAGVnwABlaEAAZWiAAGVowABlaUAAZWmAAGWIQABliMAAZYlAAGWJwABlioAAZYrAAGWLAABli0AAZYuAAGWMAABljIAAZYzAAGWNAABljYAAZY3AAGWsgABlrQAAZa2AAGWuAABlrsAAZa8AAGWvQABlr4AAZa/AAGWwQABlsMAAZbEAAGWxQABlscAAZbIAAGXQwABl0UAAZdHAAGXSQABl0wAAZdNAAGXTgABl08AAZdQAAGXUgABl1QAAZdVAAGXVgABl1gAAZdZAAGXogABl8YAAZftAAGYEQABmBQAAZgWAAGYGAABmBoAAZgcAAGYHgABmB8AAZgiAAGYOwABmFgAAZhaAAGYXAABmF4AAZhgAAGYYgABmGQAAZhmAAGYgwABmIYAAZiJAAGYjAABmI8AAZiSAAGYlQABmJgAAZiaAAGZFQABmRcAAZkZAAGZGwABmR4AAZkfAAGZIAABmSEAAZkiAAGZJAABmSYAAZknAAGZKAABmSoAAZkrAAGZpgABmagAAZmqAAGZrAABma8AAZmwAAGZsQABmbIAAZmzAAGZtQABmbcAAZm4AAGZuQABmbsAAZm8AAGaNwABmjkAAZo7AAGaPQABmkAAAZpBAAGaQgABmkMAAZpEAAGaRgABmkgAAZpJAAGaSgABmkwAAZpNAAGayAABmsoAAZrMAAGazgABmtEAAZrSAAGa0wABmtQAAZrVAAGa1wABmtkAAZraAAGa2wABmt0AAZreAAGbWQABm1sAAZtdAAGbXwABm2IAAZtjAAGbZAABm2UAAZtmAAGbaAABm2oAAZtrAAGbbAABm24AAZtvAAGb6gABm+wAAZvuAAGb8AABm/MAAZv0AAGb9QABm/YAAZv3AAGb+QABm/sAAZv8AAGb/QABm/8AAZwAAAGcewABnH0AAZx/AAGcgQABnIQAAZyFAAGchgABnIcAAZyIAAGcigABnIwAAZyNAAGcjgABnJAAAZyRAAGdJAABnUcAAZ1nAAGdhwABnYkAAZ2LAAGdjQABnY8AAZ2SAAGdkwABnZQAAZ2XAAGdmAABnZoAAZ2bAAGdngABnaEAAZ2iAAGdowABnaYAAZ2nAAGdrAABncUAAZ3OAAGd0AABndMAAZ3cAAGd3wABneIAAZ3kAAGeLQABnlEAAZ54AAGenAABnp8AAZ6hAAGeowABnqUAAZ6nAAGeqQABnqoAAZ6tAAGexgABnucAAZ7pAAGe6wABnu0AAZ7vAAGe8QABnvMAAZ71AAGe9wABnxgAAZ8bAAGfHgABnyEAAZ8kAAGfJwABnyoAAZ8tAAGfMAABnzIAAZ+tAAGfrwABn7EAAZ+zAAGftgABn7cAAZ+4AAGfuQABn7oAAZ+8AAGfvgABn78AAZ/AAAGfwgABn8MAAaA+AAGgQAABoEIAAaBEAAGgRwABoEgAAaBJAAGgSgABoEsAAaBNAAGgTwABoFAAAaBRAAGgUwABoFQAAaDPAAGg0QABoNQAAaDWAAGg2QABoNoAAaDbAAGg3AABoN0AAaDfAAGg4QABoOIAAaDjAAGg5QABoOYAAaD/AAGhAAABoQEAAaEDAAGhfgABoYAAAaGCAAGhhAABoYcAAaGIAAGhiQABoYoAAaGLAAGhjQABoY8AAaGQAAGhkQABoZMAAaGUAAGiDwABohEAAaITAAGiFQABohgAAaIZAAGiGgABohsAAaIcAAGiHgABoiAAAaIhAAGiIgABoiQAAaIlAAGioAABoqIAAaKkAAGipgABoqkAAaKqAAGiqwABoqwAAaKtAAGirwABorEAAaKyAAGiswABorUAAaK2AAGjMQABozMAAaM1AAGjNwABozoAAaM7AAGjPAABoz0AAaM+AAGjQAABo0IAAaNDAAGjRAABo0YAAaNHAAGjwgABo8QAAaPGAAGjyAABo8sAAaPMAAGjzQABo84AAaPPAAGj0QABo9MAAaPUAAGj1QABo9cAAaPYAAGkIQABpEUAAaRsAAGkkAABpJMAAaSWAAGkmAABpJoAAaScAAGkngABpJ8AAaSiAAGkuwABpNgAAaTbAAGk3gABpOEAAaTkAAGk5wABpOoAAaTtAAGlCgABpQ0AAaUQAAGlEwABpRYAAaUZAAGlHAABpR8AAaUhAAGlnAABpZ4AAaWhAAGlowABpaYAAaWnAAGlqAABpakAAaWqAAGlrAABpa8AAaWwAAGlsQABpbMAAaW0AAGmLwABpjEAAaY0AAGmNgABpjkAAaY6AAGmOwABpjwAAaY9AAGmPwABpkIAAaZDAAGmRAABpkYAAaZHAAGmSQABpsQAAabGAAGmyQABpssAAabOAAGmzwABptAAAabRAAGm0gABptQAAabXAAGm2AABptkAAabbAAGm3AABp1cAAadZAAGnWwABp10AAadgAAGnYQABp2IAAadjAAGnZAABp2YAAadpAAGnagABp2sAAadtAAGnbgABp+kAAafrAAGn7QABp+8AAafyAAGn8wABp/QAAaf1AAGn9gABp/gAAaf7AAGn/AABp/0AAaf/AAGoAAABqHsAAah9AAGofwABqIEAAaiEAAGohQABqIYAAaiHAAGoiAABqIoAAaiNAAGojgABqI8AAaiRAAGokgABqQ0AAakPAAGpEgABqRQAAakXAAGpGAABqRkAAakaAAGpGwABqR0AAakgAAGpIQABqSIAAakkAAGpJQABqTYAAalJAAGpYgABqXUAAamCAAGplQABqawAAam+AAGqUQABqnQAAaqUAAGqtAABqrYAAaq4AAGqugABqrwAAaq/AAGqwAABqsEAAarEAAGqxQABqscAAarIAAGqywABqs4AAarPAAGq0AABqtMAAarUAAGq2QABqvIAAar7AAGq/QABqwAAAasJAAGrDAABqw8AAasRAAGrWgABq34AAaulAAGryQABq8wAAavOAAGr0AABq9IAAavUAAGr1gABq9cAAavaAAGr8wABrBQAAawWAAGsGAABrBoAAawcAAGsHgABrCAAAawiAAGsJAABrEUAAaxIAAGsSwABrE4AAaxRAAGsVAABrFcAAaxaAAGsXQABrF8AAazaAAGs3AABrN4AAazgAAGs4wABrOQAAazlAAGs5gABrOcAAazpAAGs6wABrOwAAaztAAGs7wABrPAAAa1rAAGtbQABrW8AAa1xAAGtdAABrXUAAa12AAGtdwABrXgAAa16AAGtfAABrX0AAa1+AAGtgAABrYEAAa38AAGt/gABrgEAAa4DAAGuBgABrgcAAa4IAAGuCQABrgoAAa4MAAGuDgABrg8AAa4QAAGuEgABrhMAAa4sAAGuLQABri4AAa4wAAGuqwABrq0AAa6vAAGusQABrrQAAa61AAGutgABrrcAAa64AAGuugABrrwAAa69AAGuvgABrsAAAa7BAAGvPAABrz4AAa9AAAGvQgABr0UAAa9GAAGvRwABr0gAAa9JAAGvSwABr00AAa9OAAGvTwABr1EAAa9SAAGvzQABr88AAa/RAAGv0wABr9YAAa/XAAGv2AABr9kAAa/aAAGv3AABr94AAa/fAAGv4AABr+IAAa/jAAGwXgABsGAAAbBiAAGwZAABsGcAAbBoAAGwaQABsGoAAbBrAAGwbQABsG8AAbBwAAGwcQABsHMAAbB0AAGw7wABsPEAAbDzAAGw9QABsPgAAbD5AAGw+gABsPsAAbD8AAGw/gABsQAAAbEBAAGxAgABsQQAAbEFAAGxTgABsXIAAbGZAAGxvQABscAAAbHDAAGxxQABsccAAbHJAAGxywABscwAAbHPAAGx6AABsgUAAbIIAAGyCwABsg4AAbIRAAGyFAABshcAAbIaAAGyNwABsjoAAbI9AAGyQAABskMAAbJGAAGySQABskwAAbJOAAGyyQABsssAAbLOAAGy0AABstMAAbLUAAGy1QABstYAAbLXAAGy2QABstwAAbLdAAGy3gABsuAAAbLhAAGzXAABs14AAbNhAAGzYwABs2YAAbNnAAGzaAABs2kAAbNqAAGzbAABs28AAbNwAAGzcQABs3MAAbN0AAGz7wABs/EAAbP0AAGz9gABs/kAAbP6AAGz+wABs/wAAbP9AAGz/wABtAIAAbQDAAG0BAABtAYAAbQHAAG0ggABtIQAAbSHAAG0iQABtIwAAbSNAAG0jgABtI8AAbSQAAG0kgABtJUAAbSWAAG0lwABtJkAAbSaAAG1HQABtUEAAbVlAAG1iAABta8AAbXPAAG19gABth0AAbY9AAG2YQABtoUAAbaHAAG2igABtowAAbaOAAG2kAABtpMAAbaWAAG2mAABtpoAAbadAAG2nwABtqEAAbakAAG2pwABtqgAAbatAAG2xgABtssAAbbNAAG20gABttUAAbbXAAG3IAABt0QAAbdrAAG3jwABt5IAAbeUAAG3lgABt5gAAbeaAAG3nAABt50AAbegAAG3uQABt94AAbfgAAG34gABt+QAAbfmAAG36AABt+oAAbfsAAG37gABt/AAAbgVAAG4GAABuBsAAbgeAAG4IQABuCQAAbgnAAG4KgABuC0AAbgwAAG4MgABuK0AAbivAAG4sgABuLQAAbi3AAG4uAABuLkAAbi6AAG4uwABuL0AAbi/AAG4wAABuMEAAbjDAAG4xAABuNUAAbjWAAG42AABuVMAAblVAAG5VwABuVkAAblcAAG5XQABuV4AAblfAAG5YAABuWIAAblkAAG5ZQABuWYAAbloAAG5aQABueQAAbnmAAG56QABuesAAbnuAAG57wABufAAAbnxAAG58gABufQAAbn2AAG59wABufgAAbn6AAG5+wABugwAAboNAAG6DwABuooAAbqMAAG6jgABupAAAbqTAAG6lAABupUAAbqWAAG6lwABupkAAbqbAAG6nAABup0AAbqfAAG6oAABuxsAAbsdAAG7IAABuyIAAbslAAG7JgABuycAAbsoAAG7KQABuysAAbstAAG7LgABuy8AAbsxAAG7MgABu0MAAbtEAAG7RgABu8EAAbvDAAG7xQABu8cAAbvKAAG7ywABu8wAAbvNAAG7zgABu9AAAbvSAAG70wABu9QAAbvWAAG71wABvFIAAbxUAAG8VwABvFkAAbxcAAG8XQABvF4AAbxfAAG8YAABvGIAAbxkAAG8ZQABvGYAAbxoAAG8aQABvIIAAbyDAAG8hAABvIYAAb0BAAG9AwABvQUAAb0HAAG9CgABvQsAAb0MAAG9DQABvQ4AAb0QAAG9EgABvRMAAb0UAAG9FgABvRcAAb2SAAG9lAABvZcAAb2ZAAG9nAABvZ0AAb2eAAG9nwABvaAAAb2iAAG9pAABvaUAAb2mAAG9qAABvakAAb21AAG9zgABveMAAb3mAAG96QABvewAAb3vAAG98gABvgcAAb4KAAG+DQABvhAAAb4TAAG+FgABvhgAAb4uAAG+OQABvkUAAb5bAAG+ZQABvvgAAb8bAAG/OwABv1sAAb9dAAG/XwABv2EAAb9jAAG/ZgABv2cAAb9oAAG/awABv2wAAb9uAAG/bwABv3EAAb90AAG/dQABv3YAAb95AAG/egABv4MAAb+cAAG/pQABv6cAAb+pAAG/sgABv7UAAb+4AAG/ugABwAMAAcAnAAHATgABwHIAAcB1AAHAdwABwHkAAcB7AAHAfQABwH8AAcCAAAHAgwABwJwAAcC9AAHAvwABwMEAAcDDAAHAxQABwMcAAcDJAAHAywABwM0AAcDuAAHA8QABwPQAAcD3AAHA+gABwP0AAcEAAAHBAwABwQYAAcEIAAHBgwABwYUAAcGHAAHBiQABwYwAAcGNAAHBjgABwY8AAcGQAAHBkgABwZQAAcGVAAHBlgABwZgAAcGZAAHCFAABwhYAAcIYAAHCGgABwh0AAcIeAAHCHwABwiAAAcIhAAHCIwABwiUAAcImAAHCJwABwikAAcIqAAHCpQABwqcAAcKqAAHCrAABwq8AAcKwAAHCsQABwrIAAcKzAAHCtQABwrcAAcK4AAHCuQABwrsAAcK8AAHC1QABwtYAAcLXAAHC2QABw1QAAcNWAAHDWAABw1oAAcNdAAHDXgABw18AAcNgAAHDYQABw2MAAcNlAAHDZgABw2cAAcNpAAHDagABw+UAAcPnAAHD6QABw+sAAcPuAAHD7wABw/AAAcPxAAHD8gABw/QAAcP2AAHD9wABw/gAAcP6AAHD+wABxHYAAcR4AAHEegABxHwAAcR/AAHEgAABxIEAAcSCAAHEgwABxIUAAcSHAAHEiAABxIkAAcSLAAHEjAABxQcAAcUJAAHFCwABxQ0AAcUQAAHFEQABxRIAAcUTAAHFFAABxRYAAcUYAAHFGQABxRoAAcUcAAHFHQABxZgAAcWaAAHFnAABxZ4AAcWhAAHFogABxaMAAcWkAAHFpQABxacAAcWpAAHFqgABxasAAcWtAAHFrgABxfcAAcYbAAHGQgABxmYAAcZpAAHGawABxm0AAcZvAAHGcQABxnMAAcZ0AAHGdwABxpAAAcatAAHGrwABxrEAAcazAAHGtQABxrcAAca5AAHGuwABxtgAAcbbAAHG3gABxuEAAcbkAAHG5wABxuoAAcbtAAHG7wABx2oAAcdsAAHHbgABx3AAAcdzAAHHdAABx3UAAcd2AAHHdwABx3kAAcd7AAHHfAABx30AAcd/AAHHgAABx/sAAcf9AAHH/wAByAEAAcgEAAHIBQAByAYAAcgHAAHICAAByAoAAcgMAAHIDQAByA4AAcgQAAHIEQAByIwAAciOAAHIkAAByJIAAciVAAHIlgAByJcAAciYAAHImQAByJsAAcidAAHIngAByJ8AAcihAAHIogAByR0AAckfAAHJIgABySQAAcknAAHJKAABySkAAckqAAHJKwAByS0AAckvAAHJMAAByTEAAckzAAHJNAABya8AAcmxAAHJswABybUAAcm4AAHJuQAByboAAcm7AAHJvAAByb4AAcnAAAHJwQABycIAAcnEAAHJxQABykAAAcpCAAHKRAABykYAAcpJAAHKSgAByksAAcpMAAHKTQAByk8AAcpRAAHKUgABylMAAcpVAAHKVgABytEAAcrTAAHK1QABytcAAcraAAHK2wABytwAAcrdAAHK3gAByuAAAcriAAHK4wAByuQAAcrmAAHK5wABy3oAAcudAAHLvQABy90AAcvfAAHL4QABy+MAAcvlAAHL6AABy+kAAcvqAAHL7QABy+4AAcvwAAHL8QABy/MAAcv2AAHL9wABy/gAAcv7AAHL/AABzAEAAcwaAAHMIwABzCUAAcwnAAHMMAABzDMAAcw2AAHMOAABzIEAAcylAAHMzAABzPAAAczzAAHM9QABzPcAAcz5AAHM+wABzP0AAcz+AAHNAQABzRoAAc07AAHNPQABzT8AAc1BAAHNQwABzUUAAc1HAAHNSQABzUsAAc1sAAHNbwABzXIAAc11AAHNeAABzXsAAc1+AAHNgQABzYQAAc2GAAHOAQABzgMAAc4FAAHOBwABzgoAAc4LAAHODAABzg0AAc4OAAHOEAABzhIAAc4TAAHOFAABzhYAAc4XAAHOkgABzpQAAc6WAAHOmAABzpsAAc6cAAHOnQABzp4AAc6fAAHOoQABzqMAAc6kAAHOpQABzqcAAc6oAAHPIwABzyUAAc8oAAHPKgABzy0AAc8uAAHPLwABzzAAAc8xAAHPMwABzzUAAc82AAHPNwABzzkAAc86AAHPUwABz1QAAc9VAAHPVwABz9IAAc/UAAHP1gABz9gAAc/bAAHP3AABz90AAc/eAAHP3wABz+EAAc/jAAHP5AABz+UAAc/nAAH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E9wACBPgAAgT5AAIE+wACBP0AAgT+AAIE/wACBQEAAgUCAAIFfQACBX8AAgWBAAIFgwACBYYAAgWHAAIFiAACBYkAAgWKAAIFjAACBY4AAgWPAAIFkAACBZIAAgWTAAIGDgACBhAAAgYSAAIGFAACBhcAAgYYAAIGGQACBhoAAgYbAAIGHQACBh8AAgYgAAIGIQACBiMAAgYkAAIGnwACBqEAAgajAAIGpQACBqgAAgapAAIGqgACBqsAAgasAAIGrgACBrAAAgaxAAIGsgACBrQAAga1AAIG/gACByIAAgdJAAIHbQACB3AAAgdyAAIHdAACB3YAAgd4AAIHegACB3sAAgd+AAIHlwACB7QAAge2AAIHuAACB7oAAge8AAIHvgACB8AAAgfCAAIH3wACB+IAAgflAAIH6AACB+sAAgfuAAIH8QACB/QAAgf2AAIIcQACCHMAAgh1AAIIdwACCHoAAgh7AAIIfAACCH0AAgh+AAIIgAACCIIAAgiDAAIIhAACCIYAAgiHAAIJAgACCQQAAgkGAAIJCAACCQsAAgkMAAIJDQACCQ4AAgkPAAIJEQACCRMAAgkUAAIJFQACCRcAAgkYAAIJkwACCZUAAgmXAAIJmQACCZwAAgmdAAIJngACCZ8AAgmgAAIJogACCaQAAgmlAAIJpgACCagAAgmpAAIKJAACCiYAAgooAAIKKgACCi0AAgouAAIKLwACCjAAAgoxAAIKMwACCjUAAgo2AAIKNwACCjkAAgo6AAIKtQACCrcAAgq5AAIKuwACCr4AAgq/AAIKwAACCsEAAgrCAAIKxAACCsYAAgrHAAIKyAACCsoAAgrLAAILRgACC0gAAgtKAAILTAACC08AAgtQAAILUQACC1IAAgtTAAILVQACC1cAAgtYAAILWQACC1sAAgtcAAIL1wACC9kAAgvbAAIL3QACC+AAAgvhAAIL4gACC+MAAgvkAAIL5gACC+gAAgvpAAIL6gACC+wAAgvtAAIL/gACC/8AAgwBAAIMfAACDH4AAgyAAAIMggACDIUAAgyGAAIMhwACDIgAAgyJAAIMiwACDI4AAgyPAAIMkAACDJIAAgyTAAINDgACDRAAAg0SAAINFAACDRcAAg0YAAINGQACDRoAAg0bAAINHQACDSAAAg0hAAINIgACDSQAAg0lAAINoAACDaIAAg2lAAINpwACDaoAAg2rAAINrAACDa0AAg2uAAINsAACDbMAAg20AAINtQACDbcAAg24AAINyQACDcoAAg3MAAIOTwACDnMAAg6XAAIOugACDuEAAg8BAAIPKAACD08AAg9vAAIPkwACD7cAAg+5AAIPvAACD74AAg/AAAIPwgACD8UAAg/IAAIPygACD8wAAg/PAAIP0QACD9MAAg/WAAIP2QACD9oAAg/jAAIP/AACEAEAAhADAAIQCAACEAsAAhANAAIQVgACEHoAAhChAAIQxQACEMgAAhDKAAIQzAACEM4AAhDQAAIQ0gACENMAAhDWAAIQ7wACERQAAhEWAAIRGAACERoAAhEcAAIRHgACESAAAhEiAAIRJAACESYAAhFLAAIRTgACEVEAAhFUAAIRVwACEVoAAhFdAAIRYAACEWMAAhFmAAIRaAACEeMAAhHlAAIR6AACEeoAAhHtAAIR7gACEe8AAhHwAAIR8QACEfMAAhH1AAIR9gACEfcAAhH5AAIR+gACEgsAAhIMAAISDgACEokAAhKLAAISjQACEo8AAhKSAAISkwACEpQAAhKVAAISlgACEpgAAhKaAAISmwACEpwAAhKeAAISnwACExoAAhMcAAITHwACEyEAAhMkAAITJQACEyYAAhMnAAITKAACEyoAAhMsAAITLQACEy4AAhMwAAITMQACE0IAAhNHAAITSgACE0wAAhNdAAITZgACE2kAAhNsAAITbgACE4oAAhOcAAIUFwACFBkAAhQbAAIUHQACFCAAAhQhAAIUIgACFCMAAhQkAAIUJgACFCgAAhQpAAIUKgACFCwAAhQtAAIUqAACFKoAAhStAAIUrwACFLIAAhSzAAIUtAACFLUAAhS2AAIUuAACFLoAAhS7AAIUvAACFL4AAhS/AAIU0AACFNEAAhTTAAIVTgACFVAAAhVSAAIVVAACFVcAAhVYAAIVWQACFVoAAhVbAAIVXQACFV8AAhVgAAIVYQACFWMAAhVkAAIV3wACFeEAAhXkAAIV5gACFekAAhXqAAIV6wACFewAAhXtAAIV7wACFfEAAhXyAAIV8wACFfUAAhX2AAIWDwACFhAAAhYRAAIWEwACFo4AAhaQAAIWkgACFpQAAhaXAAIWmAACFpkAAhaaAAIWmwACFp0AAhafAAIWoAACFqEAAhajAAIWpAACFx8AAhchAAIXJAACFyYAAhcpAAIXKgACFysAAhcsAAIXLQACFy8AAhcxAAIXMgACFzMAAhc1AAIXNgACF0MAAhdcAAIXlQACF5gAAhebAAIXngACF6EAAhekAAIXpwACF6oAAhetAAIXsAACF7MAAhe2AAIXuQACF7wAAhe/AAIX+AACF/sAAhf+AAIYAQACGAQAAhgHAAIYCgACGA0AAhgQAAIYEwACGBYAAhgZAAIYHAACGB8AAhgiAAIYJAACGEAAAhhOAAIYZwACGHYAAhiZAAIYrQACGMIAAhjNAAIY5gACGPkAAhkeAAIZPAACGU4AAhltAAIaAAACGiMAAhpDAAIaYwACGmUAAhpnAAIaaQACGmsAAhpuAAIabwACGnAAAhpzAAIadAACGnYAAhp3AAIaeQACGnwAAhp9AAIafgACGoEAAhqCAAIahwACGqAAAhqpAAIaqwACGq0AAhq2AAIauQACGrwAAhq+AAIbBwACGysAAhtSAAIbdgACG3kAAht7AAIbfQACG38AAhuBAAIbgwACG4QAAhuHAAIboAACG8EAAhvDAAIbxQACG8cAAhvJAAIbywACG80AAhvPAAIb0QACG/IAAhv1AAIb+AACG/sAAhv+AAIcAQACHAQAAhwHAAIcCgACHAwAAhyHAAIciQACHIsAAhyNAAIckAACHJEAAhySAAIckwACHJQAAhyWAAIcmAACHJkAAhyaAAIcnAACHJ0AAh0YAAIdGgACHRwAAh0eAAIdIQACHSIAAh0jAAIdJAACHSUAAh0nAAIdKQACHSoAAh0rAAIdLQACHS4AAh2pAAIdqwACHa4AAh2wAAIdswACHbQAAh21AAIdtgACHbcAAh25AAIduwACHbwAAh29AAIdvwACHcAAAh3ZAAId2gACHdsAAh3dAAIeWAACHloAAh5cAAIeXgACHmEAAh5iAAIeYwACHmQAAh5lAAIeZwACHmkAAh5qAAIeawACHm0AAh5uAAIe6QACHusAAh7tAAIe7wACHvIAAh7zAAIe9AACHvUAAh72AAIe+AACHvoAAh77AAIe/AACHv4AAh7/AAIfegACH3wAAh9+AAIfgAACH4MAAh+EAAIfhQACH4YAAh+HAAIfiQACH4sAAh+MAAIfjQACH48AAh+QAAIgCwACIA0AAiAPAAIgEQACIBQAAiAVAAIgFgACIBcAAiAYAAIgGgACIBwAAiAdAAIgHgACICAAAiAhAAIgnAACIJ4AAiCgAAIgogACIKUAAiCmAAIgpwACIKgAAiCpAAIgqwACIK0AAiCuAAIgrwACILEAAiCyAAIg+wACIR8AAiFGAAIhagACIW0AAiFvAAIhcQACIXMAAiF1AAIhdwACIXgAAiF7AAIhlAACIbEAAiGzAAIhtQACIbcAAiG5AAIhuwACIb0AAiG/AAIh3AACId8AAiHiAAIh5QACIegAAiHrAAIh7gACIfEAAiHzAAIibgACInAAAiJyAAIidAACIncAAiJ4AAIieQACInoAAiJ7AAIifQACIn8AAiKAAAIigQACIoMAAiKEAAIi/wACIwEAAiMDAAIjBQACIwgAAiMJAAIjCgACIwsAAiMMAAIjDgACIxAAAiMRAAIjEgACIxQAAiMVAAIjkAACI5IAAiOUAAIjlgACI5kAAiOaAAIjmwACI5wAAiOdAAIjnwACI6EAAiOiAAIjowACI6UAAiOmAAIkIQACJCMAAiQmAAIkKAACJCsAAiQsAAIkLQACJC4AAiQvAAIkMQACJDMAAiQ0AAIkNQACJDcAAiQ4AAIkswACJLUAAiS3AAIkuQACJLwAAiS9AAIkvgACJL8AAiTAAAIkwgACJMQAAiTFAAIkxgACJMgAAiTJAAIlRAACJUYAAiVJAAIlSwACJU4AAiVPAAIlUAACJVEAAiVSAAIlVAACJVYAAiVXAAIlWAACJVoAAiVbAAIlagACJeUAAiXnAAIl6QACJesAAiXuAAIl7wACJfAAAiXxAAIl8gACJfQAAiX2AAIl9wACJfgAAiX6AAIl+wACJo4AAiaxAAIm0QACJvEAAibzAAIm9QACJvcAAib5AAIm/AACJv0AAib+AAInAQACJwIAAicEAAInBQACJwgAAicLAAInDAACJw0AAicQAAInEQACJxYAAicvAAInOAACJzoAAic9AAInRgACJ0kAAidMAAInTgACJ5cAAie7AAIn4gACKAYAAigJAAIoCwACKA0AAigPAAIoEQACKBMAAigUAAIoFwACKDAAAihRAAIoUwACKFUAAihXAAIoWQACKFsAAihdAAIoXwACKGEAAiiCAAIohQACKIgAAiiLAAIojgACKJEAAiiUAAIolwACKJoAAiicAAIpFwACKRkAAikbAAIpHQACKSAAAikhAAIpIgACKSMAAikkAAIpJgACKSgAAikpAAIpKgACKSwAAiktAAIpqAACKaoAAimsAAIprgACKbEAAimyAAIpswACKbQAAim1AAIptwACKbkAAim6AAIpuwACKb0AAim+AAIqOQACKjsAAio+AAIqQAACKkMAAipEAAIqRQACKkYAAipHAAIqSQACKksAAipMAAIqTQACKk8AAipQAAIqaQACKmoAAiprAAIqbQACKugAAirqAAIq7AACKu4AAirxAAIq8gACKvMAAir0AAIq9QACKvcAAir5AAIq+gACKvsAAir9AAIq/gACK3kAAit7AAIrfQACK38AAiuCAAIrgwACK4QAAiuFAAIrhgACK4gAAiuKAAIriwACK4wAAiuOAAIrjwACLAoAAiwMAAIsDgACLBAAAiwTAAIsFAACLBUAAiwWAAIsFwACLBkAAiwbAAIsHAACLB0AAiwfAAIsIAACLJsAAiydAAIsnwACLKEAAiykAAIspQACLKYAAiynAAIsqAACLKoAAiysAAIsrQACLK4AAiywAAIssQACLSwAAi0uAAItMAACLTIAAi01AAItNgACLTcAAi04AAItOQACLTsAAi09AAItPgACLT8AAi1BAAItQgACLYsAAi2vAAIt1gACLfoAAi39AAIuAAACLgIAAi4EAAIuBgACLggAAi4JAAIuDAACLiUAAi5CAAIuRQACLkgAAi5LAAIuTgACLlEAAi5UAAIuVwACLnQAAi53AAIuegACLn0AAi6AAAIugwACLoYAAi6JAAIuiwACLwYAAi8IAAIvCwACLw0AAi8QAAIvEQACLxIAAi8TAAIvFAACLxYAAi8ZAAIvGgACLxsAAi8dAAIvHgACL5kAAi+bAAIvngACL6AAAi+jAAIvpAACL6UAAi+mAAIvpwACL6kAAi+sAAIvrQACL64AAi+wAAIvsQACMCwAAjAuAAIwMQACMDMAAjA2AAIwNwACMDgAAjA5AAIwOgACMDwAAjA/AAIwQAACMEEAAjBDAAIwRAACML8AAjDBAAIwxAACMMYAAjDJAAIwygACMMsAAjDMAAIwzQACMM8AAjDSAAIw0wACMNQAAjDWAAIw1wACMVoAAjF+AAIxogACMcUAAjHsAAIyDAACMjMAAjJaAAIyegACMp4AAjLCAAIyxAACMscAAjLJAAIyywACMs0AAjLQAAI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EMAACRDIAAkQ0AAJEUQACRFQAAkRXAAJEWgACRF0AAkRgAAJEYwACRGYAAkRoAAJE4wACROUAAkTnAAJE6QACROwAAkTtAAJE7gACRO8AAkTwAAJE8gACRPQAAkT1AAJE9gACRPgAAkT5AAJFdAACRXYAAkV4AAJFegACRX0AAkV+AAJFfwACRYAAAkWBAAJFgwACRYUAAkWGAAJFhwACRYkAAkWKAAJGBQACRgcAAkYJAAJGCwACRg4AAkYPAAJGEAACRhEAAkYSAAJGFAACRhYAAkYXAAJGGAACRhoAAkYbAAJGlgACRpgAAkabAAJGnQACRqAAAkahAAJGogACRqMAAkakAAJGpgACRqgAAkapAAJGqgACRqwAAkatAAJHKAACRyoAAkcsAAJHLgACRzEAAkcyAAJHMwACRzQAAkc1AAJHNwACRzkAAkc6AAJHOwACRz0AAkc+AAJHuQACR7sAAke9AAJHvwACR8IAAkfDAAJHxAACR8UAAkfGAAJHyAACR8oAAkfLAAJHzAACR84AAkfPAAJISgACSEwAAkhOAAJIUAACSFMAAkhUAAJIVQACSFYAAkhXAAJIWQACSFsAAkhcAAJIXQACSF8AAkhgAAJI8wACSRYAAkk2AAJJVgACSVgAAklaAAJJXAACSV4AAklhAAJJYgACSWMAAklmAAJJZwACSWkAAklqAAJJbAACSW8AAklwAAJJcQACSXQAAkl1AAJJegACSZMAAkmcAAJJngACSaAAAkmpAAJJrAACSa8AAkmxAAJJ+gACSh4AAkpFAAJKaQACSmwAAkpuAAJKcAACSnIAAkp0AAJKdgACSncAAkp6AAJKkwACSrQAAkq2AAJKuAACSroAAkq8AAJKvgACSsAAAkrCAAJKxAACSuUAAkroAAJK6wACSu4AAkrxAAJK9AACSvcAAkr6AAJK/QACSv8AAkt6AAJLfAACS34AAkuAAAJLgwACS4QAAkuFAAJLhgACS4cAAkuJAAJLiwACS4wAAkuNAAJLjwACS5AAAkwLAAJMDQACTA8AAkwRAAJMFAACTBUAAkwWAAJMFwACTBgAAkwaAAJMHAACTB0AAkweAAJMIAACTCEAAkycAAJMngACTKEAAkyjAAJMpgACTKcAAkyoAAJMqQACTKoAAkysAAJMrgACTK8AAkywAAJMsgACTLMAAkzMAAJMzQACTM4AAkzQAAJNSwACTU0AAk1PAAJNUQACTVQAAk1VAAJNVgACTVcAAk1YAAJNWgACTVwAAk1dAAJNXgACTWAAAk1hAAJN3AACTd4AAk3gAAJN4gACTeUAAk3mAAJN5wACTegAAk3pAAJN6wACTe0AAk3uAAJN7wACTfEAAk3yAAJObQACTm8AAk5xAAJOcwACTnYAAk53AAJOeAACTnkAAk56AAJOfAACTn4AAk5/AAJOgAACToIAAk6DAAJO/gACTwAAAk8CAAJPBAACTwcAAk8IAAJPCQACTwoAAk8LAAJPDQACTw8AAk8QAAJPEQACTxMAAk8UAAJPjwACT5EAAk+TAAJPlQACT5gAAk+ZAAJPmgACT5sAAk+cAAJPngACT6AAAk+hAAJPogACT6QAAk+lAAJP7gACUBIAAlA5AAJQXQACUGAAAlBiAAJQZAACUGYAAlBoAAJQagACUGsAAlBuAAJQhwACUKQAAlCmAAJQqAACUKoAAlCsAAJQrgACULAAAlCyAAJQzwACUNIAAlDVAAJQ2AACUNsAAlDeAAJQ4QACUOQAAlDmAAJRYQACUWMAAlFlAAJRZwACUWoAAlFrAAJRbAACUW0AAlFuAAJRcAACUXIAAlFzAAJRdAACUXYAAlF3AAJR8gACUfQAAlH2AAJR+AACUfsAAlH8AAJR/QACUf4AAlH/AAJSAQACUgMAAlIEAAJSBQACUgcAAlIIAAJSgwACUoUAAlKHAAJSiQACUowAAlKNAAJSjgACUo8AAlKQAAJSkgACUpQAAlKVAAJSlgACUpgAAlKZAAJTFAACUxYAAlMZAAJTGwACUx4AAlMfAAJTIAACUyEAAlMiAAJTJAACUyYAAlMnAAJTKAACUyoAAlMrAAJTpgACU6gAAlOqAAJTrAACU68AAlOwAAJTsQACU7IAAlOzAAJTtQACU7cAAlO4AAJTuQACU7sAAlO8AAJUNwACVDkAAlQ7AAJUPQACVEAAAlRBAAJUQgACVEMAAlREAAJURgACVEgAAlRJAAJUSgACVEwAAlRNAAJUyAACVMoAAlTMAAJUzgACVNEAAlTSAAJU0wACVNQAAlTVAAJU1wACVNkAAlTaAAJU2wACVN0AAlTeAAJVcQACVZQAAlW0AAJV1AACVdYAAlXYAAJV2gACVdwAAlXfAAJV4AACVeEAAlXkAAJV5QACVecAAlXoAAJV6gACVe0AAlXuAAJV7wACVfIAAlXzAAJV+AACVhEAAlYaAAJWHAACVh4AAlYnAAJWKgACVi0AAlYvAAJWeAACVpwAAlbDAAJW5wACVuoAAlbsAAJW7gACVvAAAlbyAAJW9AACVvUAAlb4AAJXEQACVzIAAlc0AAJXNgACVzgAAlc6AAJXPAACVz4AAldAAAJXQgACV2MAAldmAAJXaQACV2wAAldvAAJXcgACV3UAAld4AAJXewACV30AAlf4AAJX+gACV/wAAlf+AAJYAQACWAIAAlgDAAJYBAACWAUAAlgHAAJYCQACWAoAAlgLAAJYDQACWA4AAliJAAJYiwACWI0AAliPAAJYkgACWJMAAliUAAJYlQACWJYAAliYAAJYmgACWJsAAlicAAJYngACWJ8AAlkaAAJZHAACWR8AAlkhAAJZJAACWSUAAlkmAAJZJwACWSgAAlkqAAJZLAACWS0AAlkuAAJZMAACWTEAAllKAAJZSwACWUwAAllOAAJZyQACWcsAAlnNAAJZzwACWdIAAlnTAAJZ1AACWdUAAlnWAAJZ2AACWdoAAlnbAAJZ3AACWd4AAlnfAAJaWgACWlwAAlpeAAJaYAACWmMAAlpkAAJaZQACWmYAAlpnAAJaaQACWmsAAlpsAAJabQACWm8AAlpwAAJa6wACWu0AAlrvAAJa8QACWvQAAlr1AAJa9gACWvcAAlr4AAJa+gACWvwAAlr9AAJa/gACWwAAAlsBAAJbfAACW34AAluAAAJbggACW4UAAluGAAJbhwACW4gAAluJAAJbiwACW40AAluOAAJbjwACW5EAAluSAAJcDQACXA8AAlwRAAJcEwACXBYAAlwXAAJcGAACXBkAAlwaAAJcHAACXB4AAlwfAAJcIAACXCIAAlwjAAJcbAACXJAAAly3AAJc2wACXN4AAlzgAAJc4gACXOQAAlzmAAJc6AACXOkAAlzsAAJdBQACXSIAAl0kAAJdJgACXSgAAl0qAAJdLAACXS4AAl0wAAJdTQACXVAAAl1TAAJdVgACXVkAAl1cAAJdXwACXWIAAl1kAAJd3wACXeEAAl3jAAJd5QACXegAAl3pAAJd6gACXesAAl3sAAJd7gACXfAAAl3xAAJd8gACXfQAAl31AAJecAACXnIAAl50AAJedgACXnkAAl56AAJeewACXnwAAl59AAJefwACXoEAAl6CAAJegwACXoUAAl6GAAJfAQACXwMAAl8FAAJfBwACXwoAAl8LAAJfDAACXw0AAl8OAAJfEAACXxIAAl8TAAJfFAACXxYAAl8XAAJfkgACX5QAAl+WAAJfmAACX5sAAl+cAAJfnQACX54AAl+fAAJfoQACX6MAAl+kAAJfpQACX6cAAl+oAAJgIwACYCUAAmAnAAJgKQACYCwAAmAtAAJgLgACYC8AAmAwAAJgMgACYDQAAmA1AAJgNgACYDgAAmA5AAJgtAACYLYAAmC4AAJgugACYL0AAmC+AAJgvwACYMAAAmDBAAJgwwACYMUAAmDGAAJgxwACYMkAAmDKAAJhRQACYUcAAmFJAAJhSwACYU4AAmFPAAJhUAACYVEAAmFSAAJhVAACYVYAAmFXAAJhWAACYVoAAmFbAAJh7gACYhEAAmIxAAJiUQACYlMAAmJVAAJiVwACYlkAAmJcAAJiXQACYl4AAmJhAAJiYgACYmQAAmJlAAJiaAACYmsAAmJsAAJibQACYnAAAmJxAAJidgACYo8AAmKYAAJimgACYp0AAmKmAAJiqQACYqwAAmKuAAJi9wACYxsAAmNCAAJjZgACY2kAAmNrAAJjbQACY28AAmNxAAJjcwACY3QAAmN3AAJjkAACY7EAAmOzAAJjtQACY7cAAmO5AAJjuwACY70AAmO/AAJjwQACY+IAAmPlAAJj6AACY+sAAmPuAAJj8QACY/QAAmP3AAJj+gACY/wAAmR3AAJkeQACZHsAAmR9AAJkgAACZIEAAmSCAAJkgwACZIQAAmSGAAJkiAACZIkAAmSKAAJkjAACZI0AAmUIAAJlCgACZQwAAmUOAAJlEQACZRIAAmUTAAJlFAACZRUAAmUXAAJlGQACZRoAAmUbAAJlHQACZR4AAmWZAAJlmwACZZ4AAmWgAAJlowACZaQAAmWlAAJlpgACZacAAmWpAAJlqwACZawAAmWtAAJlrwACZbAAAmXJAAJlygACZcsAAmXNAAJmSAACZkoAAmZMAAJmTgACZlEAAmZSAAJmUwACZlQAAmZVAAJmVwACZlkAAmZaAAJmWwACZl0AAmZeAAJm2QACZtsAAmbdAAJm3wACZuIAAmbjAAJm5AACZuUAAmbmAAJm6AACZuoAAmbrAAJm7AACZu4AAmbvAAJnagACZ2wAAmduAAJncAACZ3MAAmd0AAJndQACZ3YAAmd3AAJneQACZ3sAAmd8AAJnfQACZ38AAmeAAAJn+wACZ/0AAmf/AAJoAQACaAQAAmgFAAJoBgACaAcAAmgIAAJoCgACaAwAAmgNAAJoDgACaBAAAmgRAAJojAACaI4AAmiQAAJokgACaJUAAmiWAAJolwACaJgAAmiZAAJomwACaJ0AAmieAAJonwACaKEAAmiiAAJo6wACaQ8AAmk2AAJpWgACaV0AAmlgAAJpYgACaWQAAmlmAAJpaAACaWkAAmlsAAJphQACaaIAAmmlAAJpqAACaasAAmmuAAJpsQACabQAAmm3AAJp1AACadcAAmnaAAJp3QACaeAAAmnjAAJp5gACaekAAmnrAAJqZgACamgAAmprAAJqbQACanAAAmpxAAJqcgACanMAAmp0AAJqdgACankAAmp6AAJqewACan0AAmp+AAJq+QACavsAAmr+AAJrAAACawMAAmsEAAJrBQACawYAAmsHAAJrCQACawwAAmsNAAJrDgACaxAAAmsRAAJrjAACa44AAmuRAAJrkwACa5YAAmuXAAJrmAACa5kAAmuaAAJrnAACa58AAmugAAJroQACa6MAAmukAAJsHwACbCEAAmwkAAJsJgACbCkAAmwqAAJsKwACbCwAAmwtAAJsLwACbDIAAmwzAAJsNAACbDYAAmw3AAJsugACbN4AAm0CAAJtJQACbUwAAm1sAAJtkwACbboAAm3aAAJt/gACbiIAAm4kAAJuJwACbikAAm4rAAJuLQACbjAAAm4zAAJuNQACbjcAAm46AAJuPAACbj4AAm5BAAJuRAACbkUAAm5KAAJuYwACbmgAAm5qAAJubwACbnIAAm50AAJuvQACbuEAAm8IAAJvLAACby8AAm8xAAJvMwACbzUAAm83AAJvOQACbzoAAm89AAJvVgACb3sAAm99AAJvfwACb4EAAm+DAAJvhQACb4cAAm+JAAJviwACb40AAm+yAAJvtQACb7gAAm+7AAJvvgACb8EAAm/EAAJvxwACb8oAAm/NAAJvzwACcEoAAnBMAAJwTwACcFEAAnBUAAJwVQACcFYAAnBXAAJwWAACcFoAAnBcAAJwXQACcF4AAnBgAAJwYQACcHIAAnBzAAJwdQACcPAAAnDyAAJw9AACcPYAAnD5AAJw+gACcPsAAnD8AAJw/QACcP8AAnEBAAJxAgACcQMAAnEFAAJxBgACcYEAAnGDAAJxhgACcYgAAnGLAAJxjAACcY0AAnGOAAJxjwACcZEAAnGTAAJxlAACcZUAAnGXAAJxmAACcakAAnGuAAJxsQACcbMAAnHEAAJx1QACcdgAAnHbAAJx3gACceEAAnHjAAJx/wACchEAAnIkAAJyMAACcqsAAnKtAAJyrwACcrEAAnK0AAJytQACcrYAAnK3AAJyuAACcroAAnK8AAJyvQACcr4AAnLAAAJywQACczwAAnM+AAJzQQACc0MAAnNGAAJzRwACc0gAAnNJAAJzSgACc0wAAnNOAAJzTwACc1AAAnNSAAJzUwACc2QAAnNlAAJzZwACc+IAAnPkAAJz5gACc+gAAnPrAAJz7AACc+0AAnPuAAJz7wACc/EAAnPzAAJz9AACc/UAAnP3AAJz+AACdHMAAnR1AAJ0eAACdHoAAnR9AAJ0fgACdH8AAnSAAAJ0gQACdIMAAnSFAAJ0hgACdIcAAnSJAAJ0igACdKMAAnSkAAJ0pQACdKcAAnUiAAJ1JAACdSYAAnUoAAJ1KwACdSwAAnUtAAJ1LgACdS8AAnUxAAJ1MwACdTQAAnU1AAJ1NwACdTgAAnWzAAJ1tQACdbgAAnW6AAJ1vQACdb4AAnW/AAJ1wAACdcEAAnXDAAJ1xQACdcYAAnXHAAJ1yQACdcoAAnXhAAJ1+gACdicAAnYqAAJ2LQACdjAAAnYzAAJ2NgACdjkAAnY8AAJ2PwACdkIAAnZFAAJ2SAACdnUAAnZ4AAJ2ewACdn4AAnaBAAJ2hAACdocAAnaKAAJ2jQACdpAAAnaTAAJ2lgACdpgAAnaqAAJ2wgACdtYAAncBAAJ3DQACdycAAnc9AAJ3RwACd1IAAnduAAJ3gQACeBQAAng3AAJ4VwACeHcAAnh5AAJ4ewACeH0AAnh/AAJ4ggACeIMAAniEAAJ4hwACeIgAAniKAAJ4iwACeI0AAniQAAJ4kQACeJIAAniVAAJ4lgACeJsAAni0AAJ4vQACeL8AAnjBAAJ4ygACeM0AAnjQAAJ40gACeRsAAnk/AAJ5ZgACeYoAAnmNAAJ5jwACeZEAAnmTAAJ5lQACeZcAAnmYAAJ5mwACebQAAnnVAAJ51wACedkAAnnbAAJ53QACed8AAnnhAAJ54wACeeUAAnoGAAJ6CQACegwAAnoPAAJ6EgACehUAAnoYAAJ6GwACeh4AAnogAAJ6mwACep0AAnqfAAJ6oQACeqQAAnqlAAJ6pgACeqcAAnqoAAJ6qgACeqwAAnqtAAJ6rgACerAAAnqxAAJ7LAACey4AAnswAAJ7MgACezUAAns2AAJ7NwACezgAAns5AAJ7OwACez0AAns+AAJ7PwACe0EAAntCAAJ7vQACe78AAnvCAAJ7xAACe8cAAnvIAAJ7yQACe8oAAnvLAAJ7zQACe88AAnvQAAJ70QACe9MAAnvUAAJ77QACe+4AAnvvAAJ78QACfGwAAnxuAAJ8cAACfHIAAnx1AAJ8dgACfHcAAnx4AAJ8eQACfHsAAnx9AAJ8fgACfH8AAnyBAAJ8ggACfP0AAnz/AAJ9AQACfQMAAn0GAAJ9BwACfQgAAn0JAAJ9CgACfQwAAn0OAAJ9DwACfRAAAn0SAAJ9EwACfY4AAn2QAAJ9kgACfZQAAn2XAAJ9mAACfZkAAn2aAAJ9mwACfZ0AAn2fAAJ9oAACfaEAAn2jAAJ9pAACfh8AAn4hAAJ+IwACfiUAAn4oAAJ+KQACfioAAn4rAAJ+LAACfi4AAn4wAAJ+MQACfjIAAn40AAJ+NQACfrAAAn6yAAJ+tAACfrYAAn65AAJ+ugACfrsAAn68AAJ+vQACfr8AAn7BAAJ+wgACfsMAAn7FAAJ+xgACfw8AAn8zAAJ/WgACf34AAn+BAAJ/gwACf4UAAn+HAAJ/iQACf4sAAn+MAAJ/jwACf6gAAn/FAAJ/xwACf8kAAn/LAAJ/zQACf88AAn/RAAJ/0wACf/AAAn/zAAJ/9gACf/kAAn/8AAJ//wACgAIAAoAFAAKABwACgIIAAoCEAAKAhgACgIgAAoCLAAKAjAACgI0AAoCOAAKAjwACgJEAAoCTAAKAlAACgJUAAoCXAAKAmAACgRMAAoEVAAKBFwACgRkAAoEcAAKBHQACgR4AAoEfAAKBIAACgSIAAoEkAAKBJQACgSYAAoEoAAKBKQACgaQAAoGmAAKBqAACgaoAAoGtAAKBrgACga8AAoGwAAKBsQACgbMAAoG1AAKBtgACgbcAAoG5AAKBugACgjUAAoI3AAKCOgACgjwAAoI/AAKCQAACgkEAAoJCAAKCQwACgkUAAoJHAAKCSAACgkkAAoJLAAKCTAACgscAAoLJAAKCywACgs0AAoLQAAKC0QACgtIAAoLTAAKC1AACgtYAAoLYAAKC2QACgtoAAoLcAAKC3QACg1gAAoNaAAKDXAACg14AAoNhAAKDYgACg2MAAoNkAAKDZQACg2cAAoNpAAKDagACg2sAAoNtAAKDbgACg+kAAoPrAAKD7QACg+8AAoPyAAKD8wACg/QAAoP1AAKD9gACg/gAAoP6AAKD+wACg/wAAoP+AAKD/wAChJIAAoS1AAKE1QAChPUAAoT3AAKE+QAChPsAAoT9AAKFAAAChQEAAoUCAAKFBQAChQYAAoUIAAKFCQAChQsAAoUOAAKFDwAChRAAAoUTAAKFFAAChRkAAoUyAAKFOwAChT0AAoU/AAKFSAAChUsAAoVOAAKFUAAChZkAAoW9AAKF5AAChggAAoYLAAKGDQAChg8AAoYRAAKGEwAChhUAAoYWAAKGGQAChjIAAoZTAAKGVQAChlcAAoZZAAKGWwAChl0AAoZfAAKGYQAChmMAAoaEAAKGhwAChooAAoaNAAKGkAAChpMAAoaWAAKGmQAChpwAAoaeAAKHGQAChxsAAocdAAKHHwAChyIAAocjAAKHJAAChyUAAocmAAKHKAAChyoAAocrAAKHLAAChy4AAocvAAKHqgACh6wAAoeuAAKHsAACh7MAAoe0AAKHtQACh7YAAoe3AAKHuQACh7sAAoe8AAKHvQACh78AAofAAAKIOwACiD0AAohAAAKIQgACiEUAAohGAAKIRwACiEgAAohJAAKISwACiE0AAohOAAKITwACiFEAAohSAAKIawACiGwAAohtAAKIbwACiOoAAojsAAKI7gACiPAAAojzAAKI9AACiPUAAoj2AAKI9wACiPkAAoj7AAKI/AACiP0AAoj/AAKJAAACiXsAAol9AAKJfwACiYEAAomEAAKJhQACiYYAAomHAAKJiAACiYoAAomMAAKJjQACiY4AAomQAAKJkQACigwAAooOAAKKEAACihIAAooVAAKKFgACihcAAooYAAKKGQACihsAAoodAAKKHgACih8AAoohAAKKIgACip0AAoqfAAKKoQACiqMAAoqmAAKKpwACiqgAAoqpAAKKqgACiqwAAoquAAKKrwACirAAAoqyAAKKswACiy4AAoswAAKLMgACizQAAos3AAKLOAACizkAAos6AAKLOwACiz0AAos/AAKLQAACi0EAAotDAAKLRAACi40AAouxAAKL2AACi/wAAov/AAKMAQACjAMAAowFAAKMBwACjAkAAowKAAKMDQACjCYAAoxDAAKMRQACjEcAAoxJAAKMSwACjE0AAoxPAAKMUQACjG4AAoxxAAKMdAACjHcAAox6AAKMfQACjIAAAoyDAAKMhQACjQAAAo0CAAKNBAACjQYAAo0JAAKNCgACjQsAAo0MAAKNDQACjQ8AAo0RAAKNEgACjRMAAo0VAAKNFgACjZEAAo2TAAKNlQACjZcAAo2aAAKNmwACjZwAAo2dAAKNngACjaAAAo2iAAKNowACjaQAAo2mAAKNpwACjiIAAo4kAAKOJgACjigAAo4rAAKOLAACji0AAo4uAAKOLwACjjEAAo4zAAKONAACjjUAAo43AAKOOAACjrMAAo61AAKOtwACjrkAAo68AAKOvQACjr4AAo6/AAKOwAACjsIAAo7EAAKOxQACjsYAAo7IAAKOyQACj0QAAo9GAAKPSAACj0oAAo9NAAKPTgACj08AAo9QAAKPUQACj1MAAo9VAAKPVgACj1cAAo9ZAAKPWgACj9UAAo/XAAKP2QACj9sAAo/eAAKP3wACj+AAAo/hAAKP4gACj+QAAo/mAAKP5wACj+gAAo/qAAKP6wACkGYAApBoAAKQagACkGwAApBvAAKQcAACkHEAApByAAKQcwACkHUAApB3AAKQeAACkHkAApB7AAKQfAACkQ8AApEyAAKRUgACkXIAApF0AAKRdgACkXgAApF6AAKRfQACkX4AApF/AAKRggACkYMAApGFAAKRhgACkYgAApGLAAKRjAACkY0AApGQAAKRkQACkZoAApGzAAKRvAACkb4AApHAAAKRyQACkcwAApHPAAKR0QACkhoAApI+AAKSZQACkokAApKMAAKSjgACkpAAApKSAAKSlAACkpYAApKXAAKSmgACkrMAApLUAAKS1gACktgAApLaAAKS3AACkt4AApLgAAKS4gACkuQAApMFAAKTCAACkwsAApMOAAKTEQACkxQAApMXAAKTGgACkx0AApMfAAKTmgACk5wAApOeAAKToAACk6MAApOkAAKTpQACk6YAApOnAAKTqQACk6sAApOsAAKTrQACk68AApOwAAKUKwAClC0AApQvAAKUMQAClDQAApQ1AAKUNgAClDcAApQ4AAKUOgAClDwAApQ9AAKUPgAClEAAApRBAAKUvAAClL4AApTBAAKUwwAClMYAApTHAAKUyAAClMkAApTKAAKUzAAClM4AApTPAAKU0AAClNIAApTTAAKU7AAClO0AApTuAAKU8AAClWsAApVtAAKVbwAClXEAApV0AAKVdQAClXYAApV3AAKVeAAClXoAApV8AAKVfQAClX4AApWAAAKVgQAClfwAApX+AAKWAAAClgIAApYFAAKWBgAClgcAApYIAAKWCQAClgsAApYNAAKWDgAClg8AApYRAAKWEgAClo0AApaPAAKWkQAClpMAApaWAAKWlwAClpgAApaZAAKWmgAClpwAApaeAAKWnwAClqAAApaiAAKWowAClx4AApcgAAKXIgAClyQAApcnAAKXKAAClykAApcqAAKXKwACly0AApcvAAKXMAAClzEAApczAAKXNAACl68AApexAAKXswACl7UAApe4AAKXuQACl7oAApe7AAKXvAACl74AApfAAAKXwQACl8IAApfEAAKXxQACmA4AApgyAAKYWQACmH0AApiAAAKYggACmIQAApiGAAKYiAACmIoAApiLAAKYjgACmKcAApjEAAKYxgACmMgAApjKAAKYzAACmM4AApjQAAKY0gACmO8AApjyAAKY9QACmPgAApj7AAKY/gACmQEAApkEAAKZBgACmYEAApmDAAKZhQACmYcAApmKAAKZiwACmYwAApmNAAKZjgACmZAAApmSAAKZkwACmZQAApmWAAKZlwACmhIAApoUAAKaFgACmhgAApobAAKaHAACmh0AApoeAAKaHwACmiEAApojAAKaJAACmiUAAponAAKaKAACmqMAApqlAAKapwACmqkAApqsAAKarQACmq4AApqvAAKasAACmrIAApq0AAKatQACmrYAApq4AAKauQACmzQAAps2AAKbOQACmzsAAps+AAKbPwACm0AAAptBAAKbQgACm0QAAptGAAKbRwACm0gAAptKAAKbSwACm04AApvJAAKbywACm80AApvPAAKb0gACm9MAApvUAAKb1QACm9YAApvYAAKb2gACm9sAApvcAAKb3gACm98AApxaAAKcXAACnF4AApxgAAKcYwACnGQAApxlAAKcZgACnGcAApxpAAKcawACnGwAApxtAAKcbwACnHAAApzrAAKc7QACnO8AApzxAAKc9AACnPUAApz2AAKc9wACnPgAApz6AAKc/AACnP0AApz+AAKdAAACnQEAAp2UAAKdtwACndcAAp33AAKd+QACnfsAAp39AAKd/wACngIAAp4DAAKeBAACngcAAp4IAAKeCgACngsAAp4NAAKeEAACnhEAAp4SAAKeFQACnhYAAp4bAAKeNAACnj0AAp4/AAKeQQACnkoAAp5NAAKeUAACnlIAAp6bAAKevwACnuYAAp8KAAKfDQACnw8AAp8RAAKfEwACnxUAAp8XAAKfGAACnxsAAp80AAKfVQACn1cAAp9ZAAKfWwACn10AAp9fAAKfYQACn2MAAp9lAAKfhgACn4kAAp+MAAKfjwACn5IAAp+VAAKfmAACn5sAAp+eAAKfoAACoBsAAqAdAAKgHwACoCEAAqAkAAKgJQACoCYAAqAnAAKgKAACoCoAAqAsAAKgLQACoC4AAqAwAAKgMQACoKwAAqCuAAKgsAACoLIAAqC1AAKgtgACoLcAAqC4AAKguQACoLsAAqC9AAKgvgACoL8AAqDBAAKgwgACoT0AAqE/AAKhQgACoUQAAqFHAAKhSAACoUkAAqFKAAKhSwACoU0AAqFPAAKhUAACoVEAAqFTAAKhVAACoW0AAqFuAAKhbwACoXEAAqHsAAKh7gACofAAAqHyAAKh9QACofYAAqH3AAKh+AACofkAAqH7AAKh/QACof4AAqH/AAKiAQACogIAAqJ9AAKifwACooEAAqKDAAKihgACoocAAqKIAAKiiQACoooAAqKMAAKijgACoo8AAqKQAAKikgACopMAAqMOAAKjEAACoxIAAqMUAAKjFwACoxgAAqMZAAKjGgACoxsAAqMdAAKjHwACoyAAAqMhAAKjIwACoyQAAqOfAAKjoQACo6MAAqOlAAKjqAACo6kAAqOqAAKjqwACo6wAAqOuAAKjsAACo7EAAqOyAAKjtAACo7UAAqQwAAKkMgACpDQAAqQ2AAKkOQACpDoAAqQ7AAKkPAACpD0AAqQ/AAKkQQACpEIAAqRDAAKkRQACpEYAAqSPAAKkswACpNoAAqT+AAKlAQACpQMAAqUFAAKlBwACpQkAAqULAAKlDAACpQ8AAqUoAAKlRQACpUcAAqVJAAKlSwACpU0AAqVPAAKlUQACpVMAAqVwAAKlcwACpXYAAqV5AAKlfAACpX8AAqWCAAKlhQACpYcAAqYCAAKmBAACpgcAAqYJAAKmDAACpg0AAqYOAAKmDwACphAAAqYSAAKmFAACphUAAqYWAAKmGAACphkAAqaUAAKmlgACppgAAqaaAAKmnQACpp4AAqafAAKmoAACpqEAAqajAAKmpQACpqYAAqanAAKmqQACpqoAAqclAAKnJwACpykAAqcrAAKnLgACpy8AAqcwAAKnMQACpzIAAqc0AAKnNgACpzcAAqc4AAKnOgACpzsAAqe2AAKnuAACp7sAAqe9AAKnwAACp8EAAqfCAAKnwwACp8QAAqfGAAKnyAACp8kAAqfKAAKnzAACp80AAqhIAAKoSgACqEwAAqhOAAKoUQACqFIAAqhTAAKoVAACqFUAAqhXAAKoWQACqFoAAqhbAAKoXQACqF4AAqjZAAKo2wACqN0AAqjfAAKo4gACqOMAAqjkAAKo5QACqOYAAqjoAAKo6gACqOsAAqjsAAKo7gACqO8AAqlqAAKpbAACqW4AAqlwAAKpcwACqXQAAql1AAKpdgACqXcAAql5AAKpewACqXwAAql9AAKpfwACqYAAAqoTAAKqNgACqlYAAqp2AAKqeAACqnoAAqp8AAKqfgACqoEAAqqCAAKqgwACqoYAAqqHAAKqiQACqooAAqqMAAKqjwACqpAAAqqRAAKqlAACqpUAAqqeAAKqtwACqsAAAqrCAAKqxAACqs0AAqrQAAKq0wACqtUAAqseAAKrQgACq2kAAquNAAKrkAACq5IAAquUAAKrlgACq5gAAquaAAKrmwACq54AAqu3AAKr2AACq9oAAqvcAAKr3gACq+AAAqviAAKr5AACq+YAAqvoAAKsCQACrAwAAqwPAAKsEgACrBUAAqwYAAKsGwACrB4AAqwhAAKsIwACrJ4AAqygAAKsogACrKQAAqynAAKsqAACrKkAAqyqAAKsqwACrK0AAqyvAAKssAACrLEAAqyzAAKstAACrS8AAq0xAAKtMwACrTUAAq04AAKtOQACrToAAq07AAKtPAACrT4AAq1AAAKtQQACrUIAAq1EAAKtRQACrcAAAq3CAAKtxQACrccAAq3KAAKtywACrcwAAq3NAAKtzgACrdAAAq3SAAKt0wACrdQAAq3WAAKt1wACrfAAAq3xAAKt8gACrfQAAq5vAAKucQACrnMAAq51AAKueAACrnkAAq56AAKuewACrnwAAq5+AAKugAACroEAAq6CAAKuhAACroUAAq8AAAKvAgACrwQAAq8GAAKvCQACrwoAAq8LAAKvDAACrw0AAq8PAAKvEQACrxIAAq8TAAKvFQACrxYAAq+RAAKvkwACr5UAAq+XAAKvmgACr5sAAq+cAAKvnQACr54AAq+gAAKvogACr6MAAq+kAAKvpgACr6cAArAiAAKwJAACsCYAArAoAAKwKwACsCwAArAtAAKwLgACsC8AArAxAAKwMwACsDQAArA1AAKwNwACsDgAArCzAAKwtQACsLcAArC5AAKwvAACsL0AArC+AAKwvwACsMAAArDCAAKwxAACsMUAArDGAAKwyAACsMkAArESAAKxNgACsV0AArGBAAKxhAACsYYAArGIAAKxigACsYwAArGOAAKxjwACsZIAArGrAAKxyAACscoAArHMAAKxzgACsdAAArHSAAKx1AACsdYAArHzAAKx9gACsfkAArH8AAKx/wACsgIAArIFAAKyCAACsgoAArKFAAKyhwACsokAArKLAAKyjgACso8AArKQAAKykQACspIAArKUAAKylgACspcAArKYAAKymgACspsAArMWAAKzGAACsxoAArMcAAKzHwACsyAAArMhAAKzIgACsyMAArMlAAKzJwACsygAArMpAAKzKwACsywAArOnAAKzqQACs6sAArOtAAKzsAACs7EAArOyAAKzswACs7QAArO2AAKzuAACs7kAArO6AAKzvAACs70AArQ4AAK0OgACtDwAArQ+AAK0QQACtEIAArRDAAK0RAACtEUAArRHAAK0SQACtEoAArRLAAK0TQACtE4AArTJAAK0ywACtM0AArTPAAK00gACtNMAArTUAAK01QACtNYAArTYAAK02gACtNsAArTcAAK03gACtN8AArVaAAK1XAACtV4AArVgAAK1YwACtWQAArVlAAK1ZgACtWcAArVpAAK1awACtWwAArVtAAK1bwACtXAAArXrAAK17QACte8AArXxAAK19AACtfUAArX2AAK19wACtfgAArX6AAK1/AACtf0AArX+AAK2AAACtgEAAraUAAK2twACttcAArb3AAK2+QACtvsAArb9AAK2/wACtwIAArcDAAK3BAACtwcAArcIAAK3CgACtwsAArcNAAK3EAACtxEAArcSAAK3FQACtxYAArcbAAK3NAACtz0AArc/AAK3QQACt0oAArdNAAK3UAACt1IAArebAAK3vwACt+YAArgKAAK4DQACuA8AArgRAAK4EwACuBUAArgXAAK4GAACuBsAArg0AAK4VQACuFcAArhZAAK4WwACuF0AArhfAAK4YQACuGMAArhlAAK4hgACuIkAAriMAAK4jwACuJIAAriVAAK4mAACuJsAArieAAK4oAACuRsAArkdAAK5HwACuSEAArkkAAK5JQACuSYAArknAAK5KAACuSoAArksAAK5LQACuS4AArkwAAK5MQACuawAArmuAAK5sAACubIAArm1AAK5tgACubcAArm4AAK5uQACubsAArm9AAK5vgACub8AArnBAAK5wgACuj0AAro/AAK6QgACukQAArpHAAK6SAACukkAArpKAAK6SwACuk0AArpPAAK6UAACulEAArpTAAK6VAACum0AArpuAAK6bwACunEAArrsAAK67gACuvAAArryAAK69QACuvYAArr3AAK6+AACuvkAArr7AAK6/QACuv4AArr/AAK7AQACuwIAArt9AAK7fwACu4EAAruDAAK7hgACu4cAAruIAAK7iQACu4oAAruMAAK7jgACu48AAruQAAK7kgACu5MAArwOAAK8EAACvBIAArwUAAK8FwACvBgAArwZAAK8GgACvBsAArwdAAK8HwACvCAAArwhAAK8IwACvCQAAryfAAK8oQACvKMAArylAAK8qAACvKkAAryqAAK8qwACvKwAAryuAAK8sAACvLEAAryyAAK8tAACvLUAAr0wAAK9MgACvTQAAr02AAK9OQACvToAAr07AAK9PAACvT0AAr0/AAK9QQACvUIAAr1DAAK9RQACvUYAAr2PAAK9swACvdoAAr3+AAK+AQACvgMAAr4FAAK+BwACvgkAAr4LAAK+DAACvg8AAr4oAAK+RQACvkcAAr5JAAK+SwACvk0AAr5PAAK+UQACvlMAAr5wAAK+cwACvnYAAr55AAK+fAACvn8AAr6CAAK+hQACvocAAr8CAAK/BAACvwYAAr8IAAK/CwACvwwAAr8NAAK/DgACvw8AAr8RAAK/EwACvxQAAr8VAAK/FwACvxgAAr+TAAK/lQACv5cAAr+ZAAK/nAACv50AAr+eAAK/nwACv6AAAr+iAAK/pAACv6UAAr+mAAK/qAACv6kAAsAkAALAJgACwCgAAsAqAALALQACwC4AAsAvAALAMAACwDEAAsAzAALANQACwDYAAsA3AALAOQACwDoAAsC1AALAtwACwLkAAsC7AALAvgACwL8AAsDAAALAwQACwMIAAsDEAALAxgACwMcAAsDIAALAygACwMsAAsFGAALBSAACwUoAAsFMAALBTwACwVAAAsFRAALBUgACwVMAAsFVAALBVwACwVgAAsFZAALBWwACwVwAAsHXAALB2QACwdsAAsHdAALB4AACweEAAsHiAALB4wACweQAAsHmAALB6AACwekAAsHqAALB7AACwe0AAsJoAALCagACwmwAAsJuAALCcQACwnIAAsJzAALCdAACwnUAAsJ3AALCeQACwnoAAsJ7AALCfQACwn4AAsMRAALDNAACw1QAAsN0AALDdgACw3gAAsN6AALDfAACw38AAsOAAALDgQACw4QAAsOFAALDhwACw4gAAsOKAALDjQACw44AAsOPAALDkgACw5MAAsOYAALDsQACw7oAAsO8AALDvgACw8cAAsPKAALDzQACw88AAsQYAALEPAACxGMAAsSHAALEigACxIwAAsSOAALEkAACxJIAAsSUAALElQACxJgAAsSxAALE0gACxNQAAsTWAALE2AACxNoAAsTcAALE3gACxOAAAsTiAALFAwACxQYAAsUJAALFDAACxQ8AAsUSAALFFQACxRgAAsUbAALFHQACxZgAAsWaAALFnAACxZ4AAsWhAALFogACxaMAAsWkAALFpQACxacAAsWpAALFqgACxasAAsWtAALFrgACxikAAsYrAALGLQACxi8AAsYyAALGMwACxjQAAsY1AALGNgACxjgAAsY6AALGOwACxjwAAsY+AALGPwACxroAAsa8AALGvwACxsEAAsbEAALGxQACxsYAAsbHAALGyAACxsoAAsbMAALGzQACxs4AAsbQAALG0QACxuoAAsbrAALG7AACxu4AAsdpAALHawACx20AAsdvAALHcgACx3MAAsd0AALHdQACx3YAAsd4AALHegACx3sAAsd8AALHfgACx38AAsf6AALH/AACx/4AAsgAAALIAwACyAQAAsgFAALIBgACyAcAAsgJAALICwACyAwAAsgNAALIDwACyBAAAsiLAALIjQACyI8AAsiRAALIlAACyJUAAsiWAALIlwACyJgAAsiaAALInAACyJ0AAsieAALIoAACyKEAAskcAALJHgACySAAAskiAALJJQACySYAAsknAALJKAACySkAAskrAALJLQACyS4AAskvAALJMQACyTIAAsmtAALJrwACybEAAsmzAALJtgACybcAAsm4AALJuQACyboAAsm8AALJvgACyb8AAsnAAALJwgACycMAAsoMAALKMAACylcAAsp7AALKfgACyoAAAsqCAALKhAACyoYAAsqIAALKiQACyowAAsqlAALKwgACysQAAsrGAALKyAACysoAAsrMAALKzgACytAAAsrtAALK8AACyvMAAsr2AALK+QACyvwAAsr/AALLAgACywQAAst/AALLgQACy4MAAsuFAALLiAACy4kAAsuKAALLiwACy4wAAsuOAALLkAACy5EAAsuSAALLlAACy5UAAswQAALMEgACzBQAAswWAALMGQACzBoAAswbAALMHAACzB0AAswfAALMIQACzCIAAswjAALMJQACzCYAAsyhAALMowACzKUAAsynAALMqgACzKsAAsysAALMrQACzK4AAsywAALMsgACzLMAAsy0AALMtgACzLcAAs0yAALNNAACzTcAAs05AALNPAACzT0AAs0+AALNPwACzUAAAs1CAALNRAACzUUAAs1GAALNSAACzUkAAs3EAALNxgACzcgAAs3KAALNzQACzc4AAs3PAALN0AACzdEAAs3TAALN1QACzdYAAs3XAALN2QACzdoAAs5VAALOVwACzlkAAs5bAALOXgACzl8AAs5gAALOYQACzmIAAs5kAALOZgACzmcAAs5oAALOagACzmsAAs7mAALO6AACzuoAAs7sAALO7wACzvAAAs7xAALO8gACzvMAAs71AALO9wACzvgAAs75AALO+wACzvwAAs+PAALPsgACz9IAAs/yAALP9AACz/YAAs/4AALP+gACz/0AAs/+AALP/wAC0AIAAtADAALQBQAC0AYAAtAIAALQCwAC0AwAAtANAALQEAAC0BEAAtAWAALQLwAC0DgAAtA6AALQPAAC0EUAAtBIAALQSwAC0E0AAtCWAALQugAC0OEAAtEFAALRCAAC0QoAAtEMAALRDgAC0RAAAtESAALREwAC0RYAAtEvAALRUAAC0VIAAtFUAALRVgAC0VgAAtFaAALRXAAC0V4AAtFgAAL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ivAAC4r0AAuK+AALiwAAC4sEAAuMKAALjLgAC41UAAuN5AALjfAAC438AAuOBAALjgwAC44UAAuOHAALjiAAC44sAAuOkAALjwQAC48QAAuPHAALjygAC480AAuPQAALj0wAC49YAAuPzAALj9gAC4/kAAuP8AALj/wAC5AIAAuQFAALkCAAC5AoAAuSFAALkhwAC5IoAAuSMAALkjwAC5JAAAuSRAALkkgAC5JMAAuSVAALkmAAC5JkAAuSaAALknAAC5J0AAuUYAALlGgAC5R0AAuUfAALlIgAC5SMAAuUkAALlJQAC5SYAAuUoAALlKwAC5SwAAuUtAALlLwAC5TAAAuWrAALlrQAC5bAAAuWyAALltQAC5bYAAuW3AALluAAC5bkAAuW7AALlvgAC5b8AAuXAAALlwgAC5cMAAuY+AALmQAAC5kMAAuZFAALmSAAC5kkAAuZKAALmSwAC5kwAAuZOAALmUQAC5lIAAuZTAALmVQAC5lYAAubRAALm0wAC5tUAAubXAALm2gAC5tsAAubcAALm3QAC5t4AAubgAALm4wAC5uQAAublAALm5wAC5ugAAudjAALnZQAC52cAAudpAALnbAAC520AAuduAALnbwAC53AAAudyAALndQAC53YAAud3AALneQAC53oAAuf1AALn9wAC5/oAAuf8AALn/wAC6AAAAugBAALoAgAC6AMAAugFAALoCAAC6AkAAugKAALoDAAC6A0AAuigAALowwAC6OMAAukDAALpBQAC6QcAAukJAALpCwAC6Q4AAukPAALpEAAC6RMAAukUAALpFgAC6RcAAukZAALpHAAC6R0AAukeAALpIQAC6SIAAuknAALpQAAC6UkAAulLAALpTQAC6VYAAulZAALpXAAC6V4AAumnAALpywAC6fIAAuoWAALqGQAC6hsAAuodAALqHwAC6iEAAuojAALqJAAC6icAAupAAALqYQAC6mMAAuplAALqZwAC6mkAAuprAALqbQAC6m8AAupxAALqkgAC6pUAAuqYAALqmwAC6p4AAuqhAALqpAAC6qcAAuqqAALqrAAC6ycAAuspAALrKwAC6y0AAuswAALrMQAC6zIAAuszAALrNAAC6zYAAus4AALrOQAC6zoAAus8AALrPQAC67gAAuu6AALrvAAC674AAuvBAALrwgAC68MAAuvEAALrxQAC68cAAuvJAALrygAC68sAAuvNAALrzgAC7EkAAuxLAALsTgAC7FAAAuxTAALsVAAC7FUAAuxWAALsVwAC7FkAAuxbAALsXAAC7F0AAuxfAALsYAAC7HkAAux6AALsewAC7H0AAuz4AALs+gAC7PwAAuz+AALtAQAC7QIAAu0DAALtBAAC7QUAAu0HAALtCQAC7QoAAu0LAALtDQAC7Q4AAu2JAALtiwAC7Y0AAu2PAALtkgAC7ZMAAu2UAALtlQAC7ZYAAu2YAALtmgAC7ZsAAu2cAALtngAC7Z8AAu4aAALuHAAC7h4AAu4gAALuIwAC7iQAAu4lAALuJgAC7icAAu4pAALuKwAC7iwAAu4tAALuLwAC7jAAAu6rAALurQAC7q8AAu6xAALutAAC7rUAAu62AALutwAC7rgAAu66AALuvAAC7r0AAu6+AALuwAAC7sEAAu88AALvPgAC70AAAu9CAALvRQAC70YAAu9HAALvSAAC70kAAu9LAALvTQAC704AAu9PAALvUQAC71IAAu+bAALvvwAC7+YAAvAKAALwDQAC8A8AAvARAALwEwAC8BUAAvAXAALwGAAC8BsAAvA0AALwUQAC8FMAAvBVAALwVwAC8FkAAvBbAALwXQAC8F8AAvB8AALwfwAC8IIAAvCFAALwiAAC8IsAAvCOAALwkQAC8JMAAvEOAALxEAAC8RIAAvEUAALxFwAC8RgAAvEZAALxGgAC8RsAAvEdAALxHwAC8SAAAvEhAALxIwAC8SQAAvGfAALxoQAC8aMAAvGlAALxqAAC8akAAvGqAALxqwAC8awAAvGuAALxsAAC8bEAAvGyAALxtAAC8bUAAvIwAALyMgAC8jQAAvI2AALyOQAC8joAAvI7AALyPAAC8j0AAvI/AALyQQAC8kIAAvJDAALyRQAC8kYAAvLBAALywwAC8sYAAvLIAALyywAC8swAAvLNAALyzgAC8s8AAvLRAALy0wAC8tQAAvLVAALy1wAC8tgAAvNTAALzVQAC81cAAvNZAALzXAAC810AAvNeAALzXwAC82AAAvNiAALzZAAC82UAAvNmAALzaAAC82kAAvPkAALz5gAC8+gAAvPqAALz7QAC8+4AAvPvAALz8AAC8/EAAvPzAALz9QAC8/YAAvP3AALz+QAC8/oAAvR1AAL0dwAC9HkAAvR7AAL0fgAC9H8AAvSAAAL0gQAC9IIAAvSEAAL0hgAC9IcAAvSIAAL0igAC9IsAAvUeAAL1QQAC9WEAAvWBAAL1gwAC9YUAAvWHAAL1iQAC9YwAAvWNAAL1jgAC9ZEAAvWSAAL1lAAC9ZUAAvWXAAL1mgAC9ZsAAvWcAAL1nwAC9aAAAvWpAAL1wgAC9csAAvXNAAL1zwAC9dgAAvXbAAL13gAC9eAAAvYpAAL2TQAC9nQAAvaYAAL2mwAC9p0AAvafAAL2oQAC9qMAAvalAAL2pgAC9qkAAvbCAAL24wAC9uUAAvbnAAL26QAC9usAAvbtAAL27wAC9vEAAvbzAAL3FAAC9xcAAvcaAAL3HQAC9yAAAvcjAAL3JgAC9ykAAvcsAAL3LgAC96kAAverAAL3rQAC968AAveyAAL3swAC97QAAve1AAL3tgAC97gAAve6AAL3uwAC97wAAve+AAL3vwAC+DoAAvg8AAL4PgAC+EAAAvhDAAL4RAAC+EUAAvhGAAL4RwAC+EkAAvhLAAL4TAAC+E0AAvhPAAL4UAAC+MsAAvjNAAL40AAC+NIAAvjVAAL41gAC+NcAAvjYAAL42QAC+NsAAvjdAAL43gAC+N8AAvjhAAL44gAC+PsAAvj8AAL4/QAC+P8AAvl6AAL5fAAC+X4AAvmAAAL5gwAC+YQAAvmFAAL5hgAC+YcAAvmJAAL5iwAC+YwAAvmNAAL5jwAC+ZAAAvoLAAL6DQAC+g8AAvoRAAL6FAAC+hUAAvoWAAL6FwAC+hgAAvoaAAL6HAAC+h0AAvoeAAL6IAAC+iEAAvqcAAL6ngAC+qAAAvqiAAL6pQAC+qYAAvqnAAL6qAAC+qkAAvqrAAL6rQAC+q4AAvqvAAL6sQAC+rIAAvstAAL7LwAC+zEAAvszAAL7NgAC+zcAAvs4AAL7OQAC+zoAAvs8AAL7PgAC+z8AAvtAAAL7QgAC+0MAAvu+AAL7wAAC+8IAAvvEAAL7xwAC+8gAAvvJAAL7ygAC+8sAAvvNAAL7zwAC+9AAAvvRAAL70wAC+9QAAvwdAAL8QQAC/GgAAvyMAAL8jwAC/JEAAvyTAAL8lQAC/JcAAvyZAAL8mgAC/J0AAvy2AAL80wAC/NUAAvzXAAL82QAC/NsAAvzdAAL83wAC/OEAAvz+AAL9AQAC/QQAAv0HAAL9CgAC/Q0AAv0QAAL9EwAC/RUAAv2QAAL9kgAC/ZQAAv2WAAL9mQAC/ZoAAv2bAAL9nAAC/Z0AAv2fAAL9oQAC/aIAAv2jAAL9pQAC/aYAAv4hAAL+IwAC/iUAAv4nAAL+KgAC/isAAv4sAAL+LQAC/i4AAv4wAAL+MgAC/jMAAv40AAL+NgAC/jcAAv6yAAL+tAAC/rYAAv64AAL+uwAC/rwAAv69AAL+vgAC/r8AAv7BAAL+wwAC/sQAAv7FAAL+xwAC/sgAAv9DAAL/RQAC/0cAAv9JAAL/TAAC/00AAv9OAAL/TwAC/1AAAv9SAAL/VAAC/1UAAv9WAAL/WAAC/1kAAv/UAAL/1gAC/9gAAv/aAAL/3QAC/94AAv/fAAL/4AAC/+EAAv/jAAL/5QAC/+YAAv/nAAL/6QAC/+oAAwBlAAMAZwADAGkAAwBrAAMAbgADAG8AAwBwAAMAcQADAHIAAwB0AAMAdgADAHcAAwB4AAMAegADAHsAAwD2AAMA+AADAPoAAwD8AAMA/wADAQAAAwEBAAMBAgADAQMAAwEFAAMBBwADAQgAAwEJAAMBCwADAQwAAwEdAAMBHgADASAAAwGbAAMBnQADAZ8AAwGhAAMBpAADAaUAAwGmAAMBpwADAagAAwGqAAMBrQADAa4AAwGvAAMBsQADAbIAAwItAAMCLwADAjEAAwIzAAMCNgADAjcAAwI4AAMCOQADAjoAAwI8AAMCPwADAkAAAwJBAAMCQwADAkQAAwK/AAMCwQADAsQAAwLGAAMCyQADAsoAAwLLAAMCzAADAs0AAwLPAAMC0gADAtMAAwLUAAMC1gADAtcAAwNqAAMDjQADA60AAwPNAAMDzwADA9EAAwPTAAMD1QADA9gAAwPZAAMD2gADA90AAwPeAAMD4AADA+EAAwPkAAMD5wADA+gAAwPpAAMD7AADA+0AAwPyAAMECwADBBQAAwQWAAMEGQADBCIAAwQlAAMEKAADBCoAAwRzAAMElwADBL4AAwTiAAME5QADBOcAAwTpAAME6wADBO0AAwTvAAME8AADBPMAAwUMAAMFLQADBS8AAwUxAAMFMwADBTUAAwU3AAMFOQADBTsAAwU9AAMFXgADBWEAAwVkAAMFZwADBWoAAwVtAAMFcAADBXMAAwV2AAMFeAADBfMAAwX1AAMF9wADBfkAAwX8AAMF/QADBf4AAwX/AAMGAAADBgIAAwYEAAMGBQADBgYAAwYIAAMGCQADBoQAAwaGAAMGiAADBooAAwaNAAMGjgADBo8AAwaQAAMGkQADBpMAAwaVAAMGlgADBpcAAwaZAAMGmgADBxUAAwcXAAMHGgADBxwAAwcfAAMHIAADByEAAwciAAMHIwADByUAAwcnAAMHKAADBykAAwcrAAMHLAADB0UAAwdGAAMHRwADB0kAAwfEAAMHxgADB8gAAwfKAAMHzQADB84AAwfPAAMH0AADB9EAAwfTAAMH1QADB9YAAwfXAAMH2QADB9oAAwhVAAMIVwADCFkAAwhbAAMIXgADCF8AAwhgAAMIYQADCGIAAwhkAAMIZgADCGcAAwhoAAMIagADCGsAAwjmAAMI6AADCOoAAwjsAAMI7wADCPAAAwjxAAMI8gADCPMAAwj1AAMI9wADCPgAAwj5AAMI+wADCPwAAwl3AAMJeQADCXsAAwl9AAMJgAADCYEAAwmCAAMJgwADCYQAAwmGAAMJiAADCYkAAwmKAAMJjAADCY0AAwoIAAMKCgADCgwAAwoOAAMKEQADChIAAwoTAAMKFAADChUAAwoXAAMKGQADChoAAwobAAMKHQADCh4AAwpnAAMKiwADCrIAAwrWAAMK2QADCtwAAwreAAMK4AADCuIAAwrkAAMK5QADCugAAwsBAAMLHgADCyEAAwskAAMLJwADCyoAAwstAAMLMAADCzMAAwtQAAMLUwADC1YAAwtZAAMLXAADC18AAwtiAAMLZQADC2cAAwviAAML5AADC+cAAwvpAAML7AADC+0AAwvuAAML7wADC/AAAwvyAAML9QADC/YAAwv3AAML+QADC/oAAwx1AAMMdwADDHoAAwx8AAMMfwADDIAAAwyBAAMMggADDIMAAwyFAAMMiAADDIkAAwyKAAMMjAADDI0AAw0IAAMNCgADDQ0AAw0PAAMNEgADDRMAAw0UAAMNFQADDRYAAw0YAAMNGwADDRwAAw0dAAMNHwADDSAAAw2bAAMNnQADDaAAAw2iAAMNpQADDaYAAw2nAAMNqAADDakAAw2rAAMNrgADDa8AAw2wAAMNsgADDbMAAw4uAAMOMAADDjIAAw40AAMONwADDjgAAw45AAMOOgADDjsAAw49AAMOQAADDkEAAw5CAAMORAADDkUAAw7AAAMOwgADDsQAAw7GAAM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7UAADO1EAAztTAAM7VgADO1cAAztYAAM7WgADO1sAAzvWAAM72AADO9oAAzvcAAM73wADO+AAAzvhAAM74gADO+MAAzvlAAM76AADO+kAAzvqAAM77AADO+0AAzxoAAM8agADPGwAAzxuAAM8cQADPHIAAzxzAAM8dAADPHUAAzx3AAM8egADPHsAAzx8AAM8fgADPH8AAzz6AAM8/AADPP8AAz0BAAM9BAADPQUAAz0GAAM9BwADPQgAAz0KAAM9DQADPQ4AAz0PAAM9EQADPRIAAz2lAAM9yAADPegAAz4IAAM+CgADPgwAAz4OAAM+EAADPhMAAz4UAAM+FQADPhgAAz4ZAAM+GwADPhwAAz4eAAM+IQADPiIAAz4jAAM+JgADPicAAz4sAAM+RQADPk4AAz5QAAM+UgADPlsAAz5eAAM+YQADPmMAAz6sAAM+0AADPvcAAz8bAAM/HgADPyAAAz8iAAM/JAADPyYAAz8oAAM/KQADPywAAz9FAAM/ZgADP2gAAz9qAAM/bAADP24AAz9wAAM/cgADP3QAAz92AAM/lwADP5oAAz+dAAM/oAADP6MAAz+mAAM/qQADP6wAAz+vAAM/sQADQCwAA0AuAANAMAADQDIAA0A1AANANgADQDcAA0A4AANAOQADQDsAA0A9AANAPgADQD8AA0BBAANAQgADQL0AA0C/AANAwQADQMMAA0DGAANAxwADQMgAA0DJAANAygADQMwAA0DOAANAzwADQNAAA0DSAANA0wADQU4AA0FQAANBUwADQVUAA0FYAANBWQADQVoAA0FbAANBXAADQV4AA0FgAANBYQADQWIAA0FkAANBZQADQX4AA0F/AANBgAADQYIAA0H9AANB/wADQgEAA0IDAANCBgADQgcAA0IIAANCCQADQgoAA0IMAANCDgADQg8AA0IQAANCEgADQhMAA0KOAANCkAADQpIAA0KUAANClwADQpgAA0KZAANCmgADQpsAA0KdAANCnwADQqAAA0KhAANCowADQqQAA0MfAANDIQADQyMAA0MlAANDKAADQykAA0MqAANDKwADQywAA0MuAANDMAADQzEAA0MyAANDNAADQzUAA0OwAANDsgADQ7QAA0O2AANDuQADQ7oAA0O7AANDvAADQ70AA0O/AANDwQADQ8IAA0PDAANDxQADQ8YAA0RBAANEQwADREUAA0RHAANESgADREsAA0RMAANETQADRE4AA0RQAANEUgADRFMAA0RUAANEVgADRFcAA0SgAANExAADROsAA0UPAANFEgADRRQAA0UWAANFGAADRRoAA0UcAANFHQADRSAAA0U5AANFVgADRVgAA0VaAANFXAADRV4AA0VgAANFYgADRWQAA0WBAANFhAADRYcAA0WKAANFjQADRZAAA0WTAANFlgADRZgAA0YTAANGFQADRhcAA0YZAANGHAADRh0AA0YeAANGHwADRiAAA0YiAANGJAADRiUAA0YmAANGKAADRikAA0akAANGpgADRqgAA0aqAANGrQADRq4AA0avAANGsAADRrEAA0azAANGtQADRrYAA0a3AANGuQADRroAA0c1AANHNwADRzkAA0c7AANHPgADRz8AA0dAAANHQQADR0IAA0dEAANHRgADR0cAA0dIAANHSgADR0sAA0fGAANHyAADR8sAA0fNAANH0AADR9EAA0fSAANH0wADR9QAA0fWAANH2AADR9kAA0faAANH3AADR90AA0fgAANIWwADSF0AA0hfAANIYQADSGQAA0hlAANIZgADSGcAA0hoAANIagADSGwAA0htAANIbgADSHAAA0hxAANI7AADSO4AA0jwAANI8gADSPUAA0j2AANI9wADSPgAA0j5AANI+wADSP0AA0j+AANI/wADSQEAA0kCAANJfQADSX8AA0mBAANJgwADSYYAA0mHAANJiAADSYkAA0mKAANJjAADSY4AA0mPAANJkAADSZIAA0mTAANKJgADSkkAA0ppAANKiQADSosAA0qNAANKjwADSpEAA0qUAANKlQADSpYAA0qZAANKmgADSpwAA0qdAANKnwADSqIAA0qjAANKpAADSqcAA0qoAANKrQADSsYAA0rPAANK0QADStMAA0rcAANK3wADSuIAA0rkAANLLQADS1EAA0t4AANLnAADS58AA0uhAANLowADS6UAA0unAANLqQADS6oAA0utAANLxgADS+cAA0vpAANL6wADS+0AA0vvAANL8QADS/MAA0v1AANL9wADTBgAA0wbAANMHgADTCEAA0wkAANMJwADTCoAA0wtAANMMAADTDIAA0ytAANMrwADTLEAA0yzAANMtgADTLcAA0y4AANMuQADTLoAA0y8AANMvgADTL8AA0zAAANMwgADTMMAA00+AANNQAADTUIAA01EAANNRwADTUgAA01JAANNSgADTUsAA01NAANNTwADTVAAA01RAANNUwADTVQAA03PAANN0QADTdQAA03WAANN2QADTdoAA03bAANN3AADTd0AA03fAANN4QADTeIAA03jAANN5QADTeYAA03/AANOAAADTgEAA04DAANOfgADToAAA06CAANOhAADTocAA06IAANOiQADTooAA06LAANOjQADTo8AA06QAANOkQADTpMAA06UAANPDwADTxEAA08TAANPFQADTxgAA08ZAANPGgADTxsAA08cAANPHgADTyAAA08hAANPIgADTyQAA08lAANPoAADT6IAA0+kAANPpgADT6kAA0+qAANPqwADT6wAA0+tAANPrwADT7EAA0+yAANPswADT7UAA0+2AANQMQADUDMAA1A1AANQNwADUDoAA1A7AANQPAADUD0AA1A+AANQQAADUEIAA1BDAANQRAADUEYAA1BHAANQwgADUMQAA1DGAANQyAADUMsAA1DMAANQzQADUM4AA1DPAANQ0QADUNMAA1DUAANQ1QADUNcAA1DYAANRIQADUUUAA1FsAANRkAADUZMAA1GVAANRlwADUZkAA1GbAANRnQADUZ4AA1GhAANRugADUdcAA1HZAANR2wADUd0AA1HfAANR4QADUeMAA1HlAANSAgADUgUAA1IIAANSCwADUg4AA1IRAANSFAADUhcAA1IZAANSlAADUpYAA1KYAANSmgADUp0AA1KeAANSnwADUqAAA1KhAANSowADUqUAA1KmAANSpwADUqkAA1KqAANTJQADUycAA1MpAANTKwADUy4AA1MvAANTMAADUzEAA1MyAANTNAADUzYAA1M3AANTOAADUzoAA1M7AANTtgADU7gAA1O6AANTvAADU78AA1PAAANTwQADU8IAA1PDAANTxQADU8cAA1PIAANTyQADU8sAA1PMAANURwADVEkAA1RMAANUTgADVFEAA1RSAANUUwADVFQAA1RVAANUVwADVFkAA1RaAANUWwADVF0AA1ReAANU2QADVNsAA1TdAANU3wADVOIAA1TjAANU5AADVOUAA1TmAANU6AADVOoAA1TrAANU7AADVO4AA1TvAANVagADVWwAA1VuAANVcAADVXMAA1V0AANVdQADVXYAA1V3AANVeQADVXsAA1V8AANVfQADVX8AA1WAAANV+wADVf0AA1X/AANWAQADVgQAA1YFAANWBgADVgcAA1YIAANWCgADVgwAA1YNAANWDgADVhAAA1YRAANWIgADViMAA1YlAANWoAADVqIAA1akAANWpgADVqkAA1aqAANWqwADVqwAA1atAANWrwADVrIAA1azAANWtAADVrYAA1a3AANXMgADVzQAA1c2AANXOAADVzsAA1c8AANXPQADVz4AA1c/AANXQQADV0QAA1dFAANXRgADV0gAA1dJAANXxAADV8YAA1fJAANXywADV84AA1fPAANX0AADV9EAA1fSAANX1AADV9cAA1fYAANX2QADV9sAA1fcAANYbwADWJIAA1iyAANY0gADWNQAA1jWAANY2AADWNoAA1jdAANY3gADWN8AA1jiAANY4wADWOUAA1jmAANY6AADWOsAA1jsAANY7QADWPAAA1jxAANY9gADWQ8AA1kYAANZGgADWRwAA1klAANZKAADWSsAA1ktAANZdgADWZoAA1nBAANZ5QADWegAA1nqAANZ7AADWe4AA1nwAANZ8gADWfMAA1n2AANaDwADWjAAA1oyAANaNAADWjYAA1o4AANaOgADWjwAA1o+AANaQAADWmEAA1pkAANaZwADWmoAA1ptAANacAADWnMAA1p2AANaeQADWnsAA1r2AANa+AADWvoAA1r8AANa/wADWwAAA1sBAANbAgADWwMAA1sFAANbBwADWwgAA1sJAANbCwADWwwAA1uHAANbiQADW4sAA1uNAANbkAADW5EAA1uSAANbkwADW5QAA1uWAANbmAADW5kAA1uaAANbnAADW50AA1wYAANcGgADXB0AA1wfAANcIgADXCMAA1wkAANcJQADXCYAA1woAANcKgADXCsAA1wsAANcLgADXC8AA1xIAANcSQADXEoAA1xMAANcxwADXMkAA1zLAANczQADXNAAA1zRAANc0gADXNMAA1zUAANc1gADXNgAA1zZAANc2gADXNwAA1zdAANdWAADXVoAA11cAANdXgADXWEAA11iAANdYwADXWQAA11lAANdZwADXWkAA11qAANdawADXW0AA11uAANd6QADXesAA13tAANd7wADXfIAA13zAANd9AADXfUAA132AANd+AADXfoAA137AANd/AADXf4AA13/AANeegADXnwAA15+AANegAADXoMAA16EAANehQADXoYAA16HAANeiQADXosAA16MAANejQADXo8AA16QAANfCwADXw0AA18PAANfEQADXxQAA18VAANfFgADXxcAA18YAANfGgADXxwAA18dAANfHgADXyAAA18hAANfagADX44AA1+1AANf2QADX9wAA1/eAANf4AADX+IAA1/kAANf5gADX+cAA1/qAANgAwADYCAAA2AiAANgJAADYCYAA2AoAANgKgADYCwAA2AuAANgSwADYE4AA2BRAANgVAADYFcAA2BaAANgXQADYGAAA2BiAANg3QADYN8AA2DhAANg4wADYOYAA2DnAANg6AADYOkAA2DqAANg7AADYO4AA2DvAANg8AADYPIAA2DzAANhbgADYXAAA2FyAANhdAADYXcAA2F4AANheQADYXoAA2F7AANhfQADYX8AA2GAAANhgQADYYMAA2GEAANh/wADYgEAA2IDAANiBQADYggAA2IJAANiCgADYgsAA2IMAANiDgADYhAAA2IRAANiEgADYhQAA2IVAANikAADYpIAA2KUAANilgADYpkAA2KaAANimwADYpwAA2KdAANinwADYqEAA2KiAANiowADYqUAA2KmAANjIQADYyMAA2MlAANjJwADYyoAA2MrAANjLAADYy0AA2MuAANjMAADYzIAA2MzAANjNAADYzYAA2M3AANjsgADY7QAA2O2AANjuAADY7sAA2O8AANjvQADY74AA2O/AANjwQADY8MAA2PEAANjxQADY8cAA2PIAANkQwADZEUAA2RHAANkSQADZEwAA2RNAANkTgADZE8AA2RQAANkUgADZFQAA2RVAANkVgADZFgAA2RZAANk7AADZQ8AA2UvAANlTwADZVEAA2VTAANlVQADZVcAA2VaAANlWwADZVwAA2VfAANlYAADZWIAA2VjAANlZQADZWgAA2VpAANlagADZW0AA2VuAANldwADZZAAA2WZAANlmwADZZ0AA2WmAANlqQADZawAA2WuAANl9wADZhsAA2ZCAANmZgADZmkAA2ZrAANmbQADZm8AA2ZxAANmcwADZnQAA2Z3AANmkAADZrEAA2azAANmtQADZrcAA2a5AANmuwADZr0AA2a/AANmwQADZuIAA2blAANm6AADZusAA2buAANm8QADZvQAA2b3AANm+gADZvwAA2d3AANneQADZ3sAA2d9AANngAADZ4EAA2eCAANngwADZ4QAA2eGAANniAADZ4kAA2eKAANnjAADZ40AA2gIAANoCgADaAwAA2gOAANoEQADaBIAA2gTAANoFAADaBUAA2gXAANoGQADaBoAA2gbAANoHQADaB4AA2iZAANomwADaJ4AA2igAANoowADaKQAA2ilAANopgADaKcAA2ipAANoqwADaKwAA2itAANorwADaLAAA2jJAANoygADaMsAA2jNAANpSAADaUoAA2lMAANpTgADaVEAA2lSAANpUwADaVQAA2lVAANpVwADaVkAA2laAANpWwADaV0AA2leAANp2QADadsAA2ndAANp3wADaeIAA2njAANp5AADaeUAA2nmAANp6AADaeoAA2nrAANp7AADae4AA2nvAANqagADamwAA2puAANqcAADanMAA2p0AANqdQADanYAA2p3AANqeQADansAA2p8AANqfQADan8AA2qAAANq+wADav0AA2r/AANrAQADawQAA2sFAANrBgADawcAA2sIAANrCgADawwAA2sNAANrDgADaxAAA2sRAANrjAADa44AA2uQAANrkgADa5UAA2uWAANrlwADa5gAA2uZAANrmwADa50AA2ueAANrnwADa6EAA2uiAANr6wADbA8AA2w2AANsWgADbF0AA2xfAANsYQADbGMAA2xlAANsZwADbGgAA2xrAANshAADbKEAA2yjAANspQADbKcAA2ypAANsqwADbK0AA2yvAANszAADbM8AA2zSAANs1QADbNgAA2zbAANs3gADbOEAA2zjAANtXgADbWAAA21iAANtZAADbWcAA21oAANtaQADbWoAA21rAANtbQADbW8AA21wAANtcQADbXMAA210AANt7wADbfEAA23zAANt9QADbfgAA235AANt+gADbfsAA238AANt/gADbgAAA24BAANuAgADbgQAA24FAANugAADboIAA26EAANuhgADbokAA26KAANuiwADbowAA26NAANujwADbpEAA26SAANukwADbpUAA26WAANvEQADbxMAA28VAANvFwADbxoAA28bAANvHAADbx0AA28eAANvIAADbyIAA28jAANvJAADbyYAA28nAANvogADb6QAA2+mAANvqAADb6sAA2+sAANvrQADb64AA2+vAANvsQADb7MAA2+0AANvtQADb7cAA2+4AANwMwADcDUAA3A3AANwOQADcDwAA3A9AANwPgADcD8AA3BAAANwQgADcEQAA3BFAANwRgADcEgAA3BJAANwxAADcMYAA3DIAANwygADcM0AA3DOAANwzwADcNAAA3DRAANw0wADcNUAA3DWAANw1wADcNkAA3DaAANxbQADcZAAA3GwAANx0AADcdIAA3HUAANx1gADcdgAA3HbAANx3AADcd0AA3HgAANx4QADceMAA3HkAANx5gADcekAA3HqAANx6wADce4AA3HvAANx+AADchEAA3IaAANyHAADch4AA3InAANyKgADci0AA3IvAANyeAADcpwAA3LDAANy5wADcuoAA3LsAANy7gADcvAAA3LyAANy9AADcvUAA3L4AANzEQADczIAA3M0AANzNgADczgAA3M6AANzPAADcz4AA3NAAANzQgADc2MAA3NmAANzaQADc2wAA3NvAANzcgADc3UAA3N4AANzewADc30AA3P4AANz+gADc/wAA3P+AAN0AQADdAIAA3QDAAN0BAADdAUAA3QHAAN0CQADdAoAA3QLAAN0DQADdA4AA3SJAAN0iwADdI0AA3SPAAN0kgADdJMAA3SUAAN0lQADdJYAA3SYAAN0mgADdJsAA3ScAAN0ngADdJ8AA3UaAAN1HAADdR8AA3UhAAN1JAADdSUAA3UmAAN1JwADdSgAA3UqAAN1LAADdS0AA3UuAAN1MAADdTEAA3VKAAN1SwADdUwAA3VOAAN1yQADdcsAA3XNAAN1zwADddIAA3XTAAN11AADddUAA3XWAAN12AADddoAA3XbAAN13AADdd4AA3XfAAN2WgADdlwAA3ZeAAN2YAADdmMAA3ZkAAN2ZQADdmYAA3ZnAAN2aQADdmsAA3ZsAAN2bQADdm8AA3ZwAAN26wADdu0AA3bvAAN28QADdvQAA3b1AAN29gADdvcAA3b4AAN2+gADdvwAA3b9AAN2/gADdwAAA3cBAAN3fAADd34AA3eAAAN3ggADd4UAA3eGAAN3hwADd4gAA3eJAAN3iwADd40AA3eOAAN3jwADd5EAA3eSAAN4DQADeA8AA3gRAAN4EwADeBYAA3gXAAN4GAADeBkAA3gaAAN4HAADeB4AA3gfAAN4IAADeCIAA3gjAAN4bAADeJAAA3i3AAN42wADeN4AA3jgAAN44gADeOQAA3jmAAN46AADeOkAA3jsAAN5BQADeSIAA3kkAAN5JgADeSgAA3kqAAN5LAADeS4AA3kwAAN5TQADeVAAA3lTAAN5VgADeVkAA3lcAAN5XwADeWIAA3lkAAN53wADeeEAA3njAAN55QADeegAA3npAAN56gADeesAA3nsAAN57gADefAAA3nxAAN58gADefQAA3n1AAN6cAADenIAA3p0AAN6dgADenkAA3p6AAN6ewADenwAA3p9AAN6fwADeoEAA3qCAAN6gwADeoUAA3qGAAN7AQADewMAA3sFAAN7BwADewoAA3sLAAN7DAADew0AA3sOAAN7EAADexIAA3sTAAN7FAADexYAA3sXAAN7kgADe5QAA3uXAAN7mQADe5wAA3udAAN7ngADe58AA3ugAAN7ogADe6QAA3ulAAN7pgADe6gAA3upAAN8JAADfCYAA3woAAN8KgADfC0AA3wuAAN8LwADfDAAA3wxAAN8MwADfDUAA3w2AAN8NwADfDkAA3w6AAN8tQADfLcAA3y5AAN8uwADfL4AA3y/AAN8wAADfMEAA3zCAAN8xAADfMYAA3zHAAN8yAADfMoAA3zLAAN9RgADfUgAA31KAAN9TAADfU8AA31QAAN9UQADfVIAA31TAAN9VQADfVcAA31YAAN9WQADfVsAA31cAAN97wADfhIAA34yAAN+UgADflQAA35WAAN+WAADfloAA35dAAN+XgADfl8AA35iAAN+YwADfmUAA35mAAN+aAADfmsAA35sAAN+bQADfnAAA35xAAN+dgADfo8AA36YAAN+mgADfpwAA36lAAN+qAADfqsAA36tAAN+9gADfxoAA39BAAN/ZQADf2gAA39qAAN/bAADf24AA39wAAN/cgADf3MAA392AAN/jwADf7AAA3+yAAN/tAADf7YAA3+4AAN/ugADf7wAA3++AAN/wAADf+EAA3/kAAN/5wADf+oAA3/tAAN/8AADf/MAA3/2AAN/+QADf/sAA4B2AAOAeAADgHoAA4B8AAOAfwADgIAAA4CBAAOAggADgIMAA4CFAAOAhwADgIgAA4CJAAOAiwADgIwAA4EHAAOBCQADgQsAA4ENAAOBEAADgREAA4ESAAOBEwADgRQAA4EWAAOBGAADgRkAA4EaAAOBHAADgR0AA4GYAAOBmgADgZ0AA4GfAAOBogADgaMAA4GkAAOBpQADgaYAA4GoAAOBqgADgasAA4GsAAOBrgADga8AA4HIAAOByQADgcoAA4HMAAOCRwADgkkAA4JLAAOCTQADglAAA4JRAAOCUgADglMAA4JUAAOCVgADglgAA4JZAAOCWgADglwAA4JdAAOC2AADgtoAA4LcAAOC3gADguEAA4LiAAOC4wADguQAA4LlAAOC5wADgukAA4LqAAOC6wADgu0AA4LuAAODaQADg2sAA4NtAAODbwADg3IAA4NzAAODdAADg3UAA4N2AAODeAADg3oAA4N7AAODfAADg34AA4N/AAOD+gADg/wAA4P+AAOEAAADhAMAA4QEAAOEBQADhAYAA4QHAAOECQADhAsAA4QMAAOEDQADhA8AA4QQAAOEiwADhI0AA4SPAAOEkQADhJQAA4SVAAOElgADhJcAA4SYAAOEmgADhJwAA4SdAAOEngADhKAAA4ShAAOE6gADhQ4AA4U1AAOFWQADhVwAA4VeAAOFYAADhWIAA4VkAAOFZgADhWcAA4VqAAOFgwADhaAAA4WiAAOFpAADhaYAA4WoAAOFqgADhawAA4WuAAOFywADhc4AA4XRAAOF1AADhdcAA4XaAAOF3QADheAAA4XiAAOGXQADhl8AA4ZhAAOGYwADhmYAA4ZnAAOGaAADhmkAA4ZqAAOGbAADhm4AA4ZvAAOGcAADhnIAA4ZzAAOG7gADhvAAA4byAAOG9AADhvcAA4b4AAOG+QADhvoAA4b7AAOG/QADhv8AA4cAAAOHAQADhwMAA4cEAAOHfwADh4EAA4eDAAOHhQADh4gAA4eJAAOHigADh4sAA4eMAAOHjgADh5AAA4eRAAOHkgADh5QAA4eVAAOIEAADiBIAA4gUAAOIFgADiBkAA4gaAAOIGwADiBwAA4gdAAOIHwADiCEAA4giAAOIIwADiCUAA4gmAAOIoQADiKMAA4ilAAOIpwADiKoAA4irAAOIrAADiK0AA4iuAAOIsAADiLIAA4izAAOItAADiLYAA4i3AAOJMgADiTQAA4k2AAOJOAADiTsAA4k8AAOJPQADiT4AA4k/AAOJQQADiUMAA4lEAAOJRQADiUcAA4lIAAOJwwADicUAA4nHAAOJyQADicwAA4nNAAOJzgADic8AA4nQAAOJ0gADidQAA4nVAAOJ1gADidgAA4nZAAOJ6gADiesAA4ntAAOKaAADimoAA4psAAOKbgADinEAA4pyAAOKcwADinQAA4p1AAOKdwADinoAA4p7AAOKfAADin4AA4p/AAOK+gADivwAA4r+AAOLAAADiwMAA4sEAAOLBQADiwYAA4sHAAOLCQADiwwAA4sNAAOLDgADixAAA4sRAAOLjAADi44AA4uRAAOLkwADi5YAA4uXAAOLmAADi5kAA4uaAAOLnAADi58AA4ugAAOLoQADi6MAA4ukAAOMNwADjFoAA4x6AAOMmgADjJwAA4yeAAOMoAADjKIAA4ylAAOMpgADjKcAA4yqAAOMqwADjK0AA4yuAAOMsAADjLMAA4y0AAOMtQADjLgAA4y5AAOMvgADjNcAA4zgAAOM4gADjOQAA4ztAAOM8AADjPMAA4z1AAONPgADjWIAA42JAAONrQADjbAAA42yAAONtAADjbYAA424AAONugADjbsAA42+AAON1wADjfgAA436AAON/AADjf4AA44AAAOOAgADjgQAA44GAAOOCAADjikAA44sAAOOLwADjjIAA441AAOOOAADjjsAA44+AAOOQQADjkMAA46+AAOOwAADjsIAA47EAAOOxwADjsgAA47JAAOOygADjssAA47NAAOOzwADjtAAA47RAAOO0wADjtQAA49PAAOPUQADj1MAA49VAAOPWAADj1kAA49aAAOPWwADj1wAA49eAAOPYAADj2EAA49iAAOPZAADj2UAA4/gAAOP4gADj+UAA4/nAAOP6gADj+sAA4/sAAOP7QADj+4AA4/wAAOP8gADj/MAA4/0AAOP9gADj/cAA5AQAAOQEQADkBIAA5AUAAOQjwADkJEAA5CTAAOQlQADkJgAA5CZAAOQmgADkJsAA5CcAAOQngADkKAAA5ChAAOQogADkKQAA5ClAAORIAADkSIAA5EkAAORJgADkSkAA5EqAAORKwADkSwAA5EtAAORLwADkTEAA5EyAAORMwADkTUAA5E2AAORsQADkbMAA5G1AAORtwADkboAA5G7AAORvAADkb0AA5G+AAORwAADkcIAA5HDAAORxAADkcYAA5HHAAOSQgADkkQAA5JGAAOSSAADkksAA5JMAAOSTQADkk4AA5JPAAOSUQADklMAA5JUAAOSVQADklcAA5JYAAOS0wADktUAA5LXAAOS2QADktwAA5LdAAOS3gADkt8AA5LgAAOS4gADkuQAA5LlAAOS5gADkugAA5LpAAOTMgADk1YAA5N9AAOToQADk6QAA5OmAAOTqAADk6oAA5OsAAOTrgADk68AA5OyAAOTywADk+gAA5PqAAOT7AADk+4AA5PwAAOT8gADk/QAA5P2AAOUEwADlBYAA5QZAAOUHAADlB8AA5QiAAOUJQADlCgAA5QqAAOUpQADlKcAA5SpAAOUqwADlK4AA5SvAAOUsAADlLEAA5SyAAOUtAADlLYAA5S3AAOUuAADlLoAA5S7AAOVNgADlTgAA5U6AAOVPAADlT8AA5VAAAOVQQADlUIAA5VDAAOVRQADlUcAA5VIAAOVSQADlUsAA5VMAAOVxwADlckAA5XLAAOVzQADldAAA5XRAAOV0gADldMAA5XUAAOV1gADldgAA5XZAAOV2gADldwAA5XdAAOWWAADlloAA5ZdAAOWXwADlmIAA5ZjAAOWZAADlmUAA5ZmAAOWaAADlmoAA5ZrAAOWbAADlm4AA5ZvAAOW6gADluwAA5buAAOW8AADlvMAA5b0AAOW9QADlvYAA5b3AAOW+QADlvsAA5b8AAOW/QADlv8AA5cAAAOXewADl30AA5d/AAOXgQADl4QAA5eFAAOXhgADl4cAA5eIAAOXigADl4wAA5eNAAOXjgADl5AAA5eRAAOYDAADmA4AA5gQAAOYEgADmBUAA5gWAAOYFwADmBgAA5gZAAOYGwADmB0AA5geAAOYHwADmCEAA5giAAOYtQADmNgAA5j4AAOZGAADmRoAA5kcAAOZHgADmSAAA5kjAAOZJAADmSUAA5koAAOZKQADmSsAA5ksAAOZLgADmTEAA5kyAAOZMwADmTYAA5k3AAOZPAADmVUAA5leAAOZYAADmWIAA5lrAAOZbgADmXEAA5lzAAOZvAADmeAAA5oHAAOaKwADmi4AA5owAAOaMgADmjQAA5o2AAOaOAADmjkAA5o8AAOaVQADmnYAA5p4AAOaegADmnwAA5p+AAOagAADmoIAA5qEAAOahgADmqcAA5qqAAOarQADmrAAA5qzAAOatgADmrkAA5q8AAOavwADmsEAA5s8AAObPgADm0AAA5tCAAObRQADm0YAA5tHAAObSAADm0kAA5tLAAObTQADm04AA5tPAAObUQADm1IAA5vNAAObzwADm9EAA5vTAAOb1gADm9cAA5vYAAOb2QADm9oAA5vcAAOb3gADm98AA5vgAAOb4gADm+MAA5xeAAOcYAADnGMAA5xlAAOcaAADnGkAA5xqAAOcawADnGwAA5xuAAOccAADnHEAA5xyAAOcdAADnHUAA5yOAAOcjwADnJAAA5ySAAOdDQADnQ8AA50RAAOdEwADnRYAA50XAAOdGAADnRkAA50aAAOdHAADnR4AA50fAAOdIAADnSIAA50jAAOdngADnaAAA52iAAOdpAADnacAA52oAAOdqQADnaoAA52rAAOdrQADna8AA52wAAOdsQADnbMAA520AAOeLwADnjEAA54zAAOeNQADnjgAA545AAOeOgADnjsAA548AAOePgADnkAAA55BAAOeQgADnkQAA55FAAOewAADnsIAA57EAAOexgADnskAA57KAAOeywADnswAA57NAAOezwADntEAA57SAAOe0wADntUAA57WAAOfUQADn1MAA59VAAOfVwADn1oAA59bAAOfXAADn10AA59eAAOfYAADn2IAA59jAAOfZAADn2YAA59nAAOfsAADn9QAA5/7AAOgHwADoCIAA6AkAAOgJgADoCgAA6AqAAOgLAADoC0AA6AwAAOgSQADoGYAA6BoAAOgagADoGwAA6BuAAOgcAADoHIAA6B0AAOgkQADoJQAA6CXAAOgmgADoJ0AA6CgAAOgowADoKYAA6CoAAOhIwADoSUAA6EnAAOhKQADoSwAA6EtAAOhLgADoS8AA6EwAAOhMgADoTQAA6E1AAOhNgADoTgAA6E5AAOhtAADobYAA6G4AAOhugADob0AA6G+AAOhvwADocAAA6HBAAOhwwADocUAA6HGAAOhxwADockAA6HKAAOiRQADokcAA6JJAAOiSwADok4AA6JPAAOiUAADolEAA6JSAAOiVAADolYAA6JXAAOiWAADoloAA6JbAAOi1gADotgAA6LbAAOi3QADouAAA6LhAAOi4gADouMAA6LkAAOi5gADougAA6LpAAOi6gADouwAA6LtAAOjaAADo2oAA6NsAAOjbgADo3EAA6NyAAOjcwADo3QAA6N1AAOjdwADo3kAA6N6AAOjewADo30AA6N+AAOj+QADo/sAA6P9AAOj/wADpAIAA6QDAAOkBAADpAUAA6QGAAOkCAADpAoAA6QLAAOkDAADpA4AA6QPAAOkigADpIwAA6SOAAOkkAADpJMAA6SUAAOklQADpJYAA6SXAAOkmQADpJsAA6ScAAOknQADpJ8AA6SgAAOlMwADpVYAA6V2AAOllgADpZgAA6WaAAOlnAADpZ4AA6WhAAOlogADpaMAA6WmAAOlpwADpakAA6WqAAOlrAADpa8AA6WwAAOlsQADpbQAA6W1AAOlugADpdMAA6XcAAOl3gADpeAAA6XpAAOl7AADpe8AA6XxAAOmOgADpl4AA6aFAAOmqQADpqwAA6auAAOmsAADprIAA6a0AAOmtgADprcAA6a6AAOm0wADpvQAA6b2AAOm+AADpvoAA6b8AAOm/gADpwAAA6cCAAOnBAADpyUAA6coAAOnKwADpy4AA6cxAAOnNAADpzcAA6c6AAOnPQADpz8AA6e6AAOnvAADp74AA6fAAAOnwwADp8QAA6fFAAOnxgADp8cAA6fJAAOnywADp8wAA6fNAAOnzwADp9AAA6hLAAOoTQADqE8AA6hRAAOoVAADqFUAA6hWAAOoVwADqFgAA6haAAOoXAADqF0AA6heAAOoYAADqGEAA6jcAAOo3gADqOEAA6jjAAOo5gADqOcAA6joAAOo6QADqOoAA6jsAAOo7gADqO8AA6jwAAOo8gADqPMAA6kMAAOpDQADqQ4AA6kQAAOpiwADqY0AA6mPAAOpkQADqZQAA6mVAAOplgADqZcAA6mYAAOpmgADqZwAA6mdAAOpngADqaAAA6mhAAOqHAADqh4AA6ogAAOqIgADqiUAA6omAAOqJwADqigAA6opAAOqKwADqi0AA6ouAAOqLwADqjEAA6oyAAOqrQADqq8AA6qxAAOqswADqrYAA6q3AAOquAADqrkAA6q6AAOqvAADqr4AA6q/AAOqwAADqsIAA6rDAAOrPgADq0AAA6tCAAOrRAADq0cAA6tIAAOrSQADq0oAA6tLAAOrTQADq08AA6tQAAOrUQADq1MAA6tUAAOrzwADq9EAA6vTAAOr1QADq9gAA6vZAAOr2gADq9sAA6vcAAOr3gADq+AAA6vhAAOr4gADq+QAA6vlAAOsLgADrFIAA6x5AAOsnQADrKAAA6yiAAOspAADrKYAA6yoAAOsqgADrKsAA6yuAAOsxwADrOQAA6zmAAOs6AADrOoAA6zsAAOs7gADrPAAA6zyAAOtDwADrRIAA60VAAOtGAADrRsAA60eAAOtIQADrSQAA60mAAOtoQADraMAA62lAAOtpwADraoAA62rAAOtrAADra0AA62uAAOtsAADrbIAA62zAAOttAADrbYAA623AAOuMgADrjQAA642AAOuOAADrjsAA648AAOuPQADrj4AA64/AAOuQQADrkMAA65EAAOuRQADrkcAA65IAAOuwwADrsUAA67HAAOuyQADrswAA67NAAOuzgADrs8AA67QAAOu0gADrtQAA67VAAOu1gADrtgAA67ZAAOvVAADr1YAA69ZAAOvWwADr14AA69fAAOvYAADr2EAA69iAAOvZAADr2YAA69nAAOvaAADr2oAA69rAAOv5gADr+gAA6/qAAOv7AADr+8AA6/wAAOv8QADr/IAA6/zAAOv9QADr/cAA6/4AAOv+QADr/sAA6/8AAOwdwADsHkAA7B7AAOwfQADsIAAA7CBAAOwggADsIMAA7CEAAOwhgADsIgAA7CJAAOwigADsIwAA7CNAAOxCAADsQoAA7EMAAOxDgADsREAA7ESAAOxEwADsRQAA7EVAAOxFwADsRkAA7EaAAOxGwADsR0AA7EeAAOxsQADsdQAA7H0AAOyFAADshYAA7IYAAOyGgADshwAA7IfAAOyIAADsiEAA7IkAAOyJQADsicAA7IoAAOyKgADsi0AA7IuAAOyLwADsjIAA7IzAAOyOAADslEAA7JaAAOyXAADsl4AA7JnAAOyagADsm0AA7JvAAOyuAADstwAA7MDAAOzJwADsyoAA7MsAAOzLgADszAAA7MyAAOzNAADszUAA7M4AAOzUQADs3IAA7N0AAOzdgADs3gAA7N6AAOzfAADs34AA7OAAAOzggADs6MAA7OmAAOzqQADs6wAA7OvAAOzsgADs7UAA7O4AAOzuwADs70AA7Q4AAO0OgADtDwAA7Q+AAO0QQADtEIAA7RDAAO0RAADtEUAA7RHAAO0SQADtEoAA7RLAAO0TQADtE4AA7TJAAO0ywADtM0AA7TPAAO00gADtNMAA7TUAAO01QADtNYAA7TYAAO02gADtNsAA7TcAAO03gADtN8AA7VaAAO1XAADtV8AA7VhAAO1ZAADtWUAA7VmAAO1ZwADtWgAA7VqAAO1bAADtW0AA7VuAAO1cAADtXEAA7WKAAO1iwADtYwAA7WOAAO2CQADtgsAA7YNAAO2DwADthIAA7YTAAO2FAADthUAA7YWAAO2GAADthoAA7YbAAO2HAADth4AA7YfAAO2mgADtpwAA7aeAAO2oAADtqMAA7akAAO2pQADtqYAA7anAAO2qQADtqsAA7asAAO2rQADtq8AA7awAAO3KwADty0AA7cvAAO3MQADtzQAA7c1AAO3NgADtzcAA7c4AAO3OgADtzwAA7c9AAO3PgADt0AAA7dBAAO3vAADt74AA7fAAAO3wgADt8UAA7fGAAO3xwADt8gAA7fJAAO3ywADt80AA7fOAAO3zwADt9EAA7fSAAO4TQADuE8AA7hRAAO4UwADuFYAA7hXAAO4WAADuFkAA7haAAO4XAADuF4AA7hfAAO4YAADuGIAA7hjAAO4rAADuNAAA7j3AAO5GwADuR4AA7kgAAO5IgADuSQAA7kmAAO5KAADuSkAA7ksAAO5RQADuWIAA7lkAAO5ZgADuWgAA7lqAAO5bAADuW4AA7lwAAO5jQADuZAAA7mTAAO5lgADuZkAA7mcAAO5nwADuaIAA7mkAAO6HwADuiEAA7okAAO6JgADuikAA7oqAAO6KwADuiwAA7otAAO6LwADujEAA7oyAAO6MwADujUAA7o2AAO6sQADurMAA7q1AAO6twADuroAA7q7AAO6vAADur0AA7q+AAO6wAADusIAA7rDAAO6xAADusYAA7rHAAO7QgADu0QAA7tGAAO7SAADu0sAA7tMAAO7TQADu04AA7tPAAO7UQADu1MAA7tUAAO7VQADu1cAA7tYAAO70wADu9UAA7vYAAO72gADu90AA7veAAO73wADu+AAA7vhAAO74wADu+UAA7vmAAO75wADu+kAA7vqAAO8ZQADvGcAA7xpAAO8awADvG4AA7xvAAO8cAADvHEAA7xyAAO8dAADvHYAA7x3AAO8eAADvHoAA7x7AAO89gADvPgAA7z6AAO8/AADvP8AA70AAAO9AQADvQIAA70DAAO9BQADvQcAA70IAAO9CQADvQsAA70MAAO9hwADvYkAA72LAAO9jQADvZAAA72RAAO9kgADvZMAA72UAAO9lgADvZgAA72ZAAO9mgADvZwAA72dAAO+MAADvlMAA75zAAO+kwADvpUAA76XAAO+mQADvpsAA76eAAO+nwADvqAAA76jAAO+pAADvqYAA76nAAO+qQADvqwAA76tAAO+rgADvrEAA76yAAO+twADvtAAA77ZAAO+2wADvt0AA77mAAO+6QADvuwAA77uAAO/NwADv1sAA7+CAAO/pgADv6kAA7+rAAO/rQADv68AA7+xAAO/swADv7QAA7+3AAO/0AADv/EAA7/zAAO/9QADv/cAA7/5AAO/+wADv/0AA7//AAPAAQADwCIAA8AlAAPAKAADwCsAA8AuAAPAMQADwDQAA8A3AAPAOgADwDwAA8C3AAPAuQADwLsAA8C9AAPAwAADwMEAA8DCAAPAwwADwMQAA8DGAAPAyAADwMkAA8DKAAPAzAADwM0AA8FIAAPBSgADwUwAA8FOAAPBUQADwVIAA8FTAAPBVAADwVUAA8FXAAPBWQADwVoAA8FbAAPBXQADwV4AA8HZAAPB2wADwd4AA8HgAAPB4wADweQAA8HlAAPB5gADwecAA8HpAAPB6wADwewAA8HtAAPB7wADwfAAA8IJAAPCCgADwgsAA8INAAPCiAADwooAA8KMAAPCjgADwpEAA8KSAAPCkwADwpQAA8KVAAPClwADwpkAA8KaAAPCmwADwp0AA8KeAAPDGQADwxsAA8MdAAPDHwADwyIAA8MjAAPDJAADwyUAA8MmAAPDKAADwyoAA8MrAAPDLAADwy4AA8MvAAPDqgADw6wAA8OuAAPDsAADw7MAA8O0AAPDtQADw7YAA8O3AAPDuQADw7sAA8O8AAPDvQADw78AA8PAAAPEOwADxD0AA8Q/AAPEQQADxEQAA8RFAAPERgADxEcAA8RIAAPESgADxEwAA8RNAAPETgADxFAAA8RRAAPEzAADxM4AA8TQAAPE0gADxNUAA8TWAAPE1wADxNgAA8TZAAPE2wADxN0AA8TeAAPE3wADxOEAA8TiAAPFKwADxU8AA8V2AAPFmgADxZ0AA8WfAAPFoQADxaMAA8WlAAPFpwADxagAA8WrAAPFxAADxeEAA8XjAAPF5QADxecAA8XpAAPF6wADxe0AA8XvAAPGDAADxg8AA8YSAAPGFQADxhgAA8YbAAPGHgADxiEAA8YjAAPGngADxqAAA8aiAAPGpAADxqcAA8aoAAPGqQADxqoAA8arAAPGrQADxq8AA8awAAPGsQADxrMAA8a0AAPHLwADxzEAA8czAAPHNQADxzgAA8c5AAPHOgADxzsAA8c8AAPHPgADx0AAA8dBAAPHQgADx0QAA8dFAAPHwAADx8IAA8fEAAPHxgADx8kAA8fKAAPHywADx8wAA8fNAAPHzwADx9EAA8fSAAPH0wADx9UAA8fWAAPIUQADyFMAA8hVAAPIVwADyFoAA8hbAAPIXAADyF0AA8heAAPIYAADyGIAA8hjAAPIZAADyGYAA8hnAAPI4gADyOQAA8jmAAPI6AADyOsAA8jsAAPI7QADyO4AA8jvAAPI8QADyPMAA8j0AAPI9QADyPcAA8j4AAPJcwADyXUAA8l4AAPJegADyX0AA8l+AAPJfwADyYAAA8mBAAPJgwADyYUAA8mGAAPJhwADyYkAA8mKAAPJqQADyiQAA8omAAPKKAADyioAA8otAAPKLgADyi8AA8owAAPKMQADyjMAA8o1AAPKNgADyjcAA8o5AAPKOgADys0AA8rwAAPLEAADyzAAA8syAAPLNAADyzYAA8s4AAPLOwADyzwAA8s9AAPLQAADy0EAA8tDAAPLRAADy0YAA8tJAAPLSgADy0sAA8tOAAPLTwADy1QAA8ttAAPLdgADy3gAA8t6AAPLgwADy4YAA8uJAAPLiwADy9QAA8v4AAPMHwADzEMAA8xGAAPMSAADzEoAA8xMAAPMTgADzFAAA8xRAAPMVAADzG0AA8yOAAPMkAADzJIAA8yUAAPMlgADzJgAA8yaAAPMnAADzJ4AA8y/AAPMwgADzMUAA8zIAAPMywADzM4AA8zRAAPM1AADzNcAA8zZAAPNVAADzVYAA81YAAPNWgADzV0AA81eAAPNXwADzWAAA81hAAPNYwADzWUAA81mAAPNZwADzWkAA81qAAPN5QADzecAA83pAAPN6wADze4AA83vAAPN8AADzfEAA83yAAPN9AADzfYAA833AAPN+AADzfoAA837AAPOdgADzngAA857AAPOfQADzoAAA86BAAPOggADzoMAA86EAAPOhgADzogAA86JAAPOigADzowAA86NAAPOpgADzqcAA86oAAPOqgADzyUAA88nAAPPKQADzysAA88uAAPPLwADzzAAA88xAAPPMgADzzQAA882AAPPNwADzzgAA886AAPPOwADz7YAA8+4AAPPugADz7wAA8+/AAPPwAADz8EAA8/CAAPPwwADz8UAA8/HAAPPyAADz8kAA8/LAAPPzAAD0EcAA9BJAAP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E3AAEBN8ABATiAAQE5QAEBOgABATrAAQE7gAEBPEABATzAAQFbgAEBXAABAVyAAQFdAAEBXcABAV4AAQFeQAEBXoABAV7AAQFfQAEBX8ABAWAAAQFgQAEBYMABAWEAAQF/wAEBgEABAYDAAQGBQAEBggABAYJAAQGCgAEBgsABAYMAAQGDgAEBhAABAYRAAQGEgAEBhQABAYVAAQGkAAEBpIABAaUAAQGlgAEBpkABAaaAAQGmwAEBpwABAadAAQGnwAEBqEABAaiAAQGowAEBqUABAamAAQHIQAEByMABAcmAAQHKAAEBysABAcsAAQHLQAEBy4ABAcvAAQHMQAEBzMABAc0AAQHNQAEBzcABAc4AAQHswAEB7UABAe3AAQHuQAEB7wABAe9AAQHvgAEB78ABAfAAAQHwgAEB8QABAfFAAQHxgAEB8gABAfJAAQIRAAECEYABAhIAAQISgAECE0ABAhOAAQITwAECFAABAhRAAQIUwAECFUABAhWAAQIVwAECFkABAhaAAQI1QAECNcABAjZAAQI2wAECN4ABAjfAAQI4AAECOEABAjiAAQI5AAECOYABAjnAAQI6AAECOoABAjrAAQJfgAECaEABAnBAAQJ4QAECeMABAnlAAQJ5wAECekABAnsAAQJ7QAECe4ABAnxAAQJ8gAECfQABAn1AAQJ9wAECfoABAn7AAQJ/AAECf8ABAoAAAQKBQAECh4ABAonAAQKKQAECisABAo0AAQKNwAECjoABAo8AAQKhQAECqkABArQAAQK9AAECvcABAr5AAQK+wAECv0ABAr/AAQLAQAECwIABAsFAAQLHgAECz8ABAtBAAQLQwAEC0UABAtHAAQLSQAEC0sABAtNAAQLTwAEC3AABAtzAAQLdgAEC3kABAt8AAQLfwAEC4IABAuFAAQLiAAEC4oABAwFAAQMBwAEDAkABAwLAAQMDgAEDA8ABAwQAAQMEQAEDBIABAwUAAQMFgAEDBcABAwYAAQMGgAEDBsABAyWAAQMmAAEDJoABAycAAQMnwAEDKAABAyhAAQMogAEDKMABAylAAQMpwAEDKgABAypAAQMqwAEDKwABA0nAAQNKQAEDSwABA0uAAQNMQAEDTIABA0zAAQNNAAEDTUABA03AAQNOQAEDToABA07AAQNPQAEDT4ABA1XAAQNWAAEDVkABA1bAAQ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oqQAEKKoABCisAAQorgAEKK8ABCiwAAQosgAEKLMABCjEAAQoxQAEKMcABClCAAQpRAAEKUYABClIAAQpSwAEKUwABClNAAQpTgAEKU8ABClRAAQpUwAEKVQABClVAAQpVwAEKVgABCnTAAQp1QAEKdgABCnaAAQp3QAEKd4ABCnfAAQp4AAEKeEABCnjAAQp5QAEKeYABCnnAAQp6QAEKeoABCoDAAQqBAAEKgUABCoHAAQqggAEKoQABCqGAAQqiAAEKosABCqMAAQqjQAEKo4ABCqPAAQqkQAEKpMABCqUAAQqlQAEKpcABCqYAAQrEwAEKxUABCsYAAQrGgAEKx0ABCseAAQrHwAEKyAABCshAAQrIwAEKyUABCsmAAQrJwAEKykABCsqAAQrOAAEK1EABCteAAQrYQAEK2QABCtnAAQrdAAEK3cABCt6AAQrfQAEK38ABCuDAAQrlQAEK6cABCw6AAQsXQAELH0ABCydAAQsnwAELKEABCyjAAQspQAELKgABCypAAQsqgAELK0ABCyuAAQssAAELLEABCyzAAQstgAELLcABCy4AAQsuwAELLwABCzFAAQs3gAELOcABCzpAAQs6wAELPQABCz3AAQs+gAELPwABC1FAAQtaQAELZAABC20AAQttwAELbkABC27AAQtvQAELb8ABC3BAAQtwgAELcUABC3eAAQt/wAELgEABC4DAAQuBQAELgcABC4JAAQuCwAELg0ABC4PAAQuMAAELjMABC42AAQuOQAELjwABC4/AAQuQgAELkUABC5IAAQuSgAELsUABC7HAAQuyQAELssABC7OAAQuzwAELtAABC7RAAQu0gAELtQABC7WAAQu1wAELtgABC7aAAQu2wAEL1YABC9YAAQvWgAEL1wABC9fAAQvYAAEL2EABC9iAAQvYwAEL2UABC9nAAQvaAAEL2kABC9rAAQvbAAEL+cABC/pAAQv7AAEL+4ABC/xAAQv8gAEL/MABC/0AAQv9QAEL/cABC/5AAQv+gAEL/sABC/9AAQv/gAEMBcABDAYAAQwGQAEMBsABDCWAAQwmAAEMJoABDCcAAQwnwAEMKAABDChAAQwogAEMKMABDClAAQwpwAEMKgABDCpAAQwqwAEMKwABDEnAAQxKQAEMSsABDEtAAQxMAAEMTEABDEyAAQxMwAEMTQABDE2AAQ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DBwAEQwoABEMLAARDDAAEQw0ABEMOAARDEAAEQxMABEMUAARDFQAEQxcABEMYAARDmwAEQ78ABEPjAAREBgAERC0ABERNAAREdAAERJsABES7AARE3wAERQMABEUFAARFCAAERQoABEUMAARFDgAERREABEUUAARFFgAERRgABEUbAARFHQAERR8ABEUiAARFJQAERSYABEUrAARFRAAERUkABEVLAARFUAAERVMABEVVAARFngAERcIABEXpAARGDQAERhAABEYSAARGFAAERhYABEYYAARGGgAERhsABEYeAARGNwAERlwABEZeAARGYAAERmIABEZkAARGZgAERmgABEZqAARGbAAERm4ABEaTAARGlgAERpkABEacAARGnwAERqIABEalAARGqAAERqsABEauAARGsAAERysABEctAARHMAAERzIABEc1AARHNgAERzcABEc4AARHOQAERzsABEc9AARHPgAERz8ABEdBAARHQgAER1MABEdUAARHVgAER9EABEfTAARH1QAER9cABEfaAARH2wAER9wABEfdAARH3gAER+AABEfiAARH4wAER+QABEfmAARH5wAESGIABEhkAARIZwAESGkABEhsAARIbQAESG4ABEhvAARIcAAESHIABEh0AARIdQAESHYABEh4AARIeQAESIoABEiLAARIjQAESQgABEkKAARJDAAESQ4ABEkRAARJEgAESRMABEkUAARJFQAESRcABEkZAARJGgAESRsABEkdAARJHgAESZkABEmbAARJngAESaAABEmjAARJpAAESaUABEmmAARJpwAESakABEmrAARJrAAESa0ABEmvAARJsAAEScEABEnCAARJxAAESj8ABEpBAARKQwAESkUABEpIAARKSQAESkoABEpLAARKTAAESk4ABEpQAARKUQAESlIABEpUAARKVQAEStAABErSAARK1QAEStcABEraAARK2wAEStwABErdAARK3gAESuAABEriAARK4wAESuQABErmAARK5wAESwAABEsBAARLAgAESwQABEt/AARLgQAES4MABEuFAARLiAAES4kABEuKAARLiwAES4wABEuOAARLkAAES5EABEuSAARLlAAES5UABEwQAARMEgAETBUABEwXAARMGgAETBsABEwcAARMHQAETB4ABEwgAARMIgAETCMABEwkAARMJgAETCcABEw5AARMUgAETJUABEyYAARMmwAETJ4ABEyhAARMpAAETKcABEyqAARMrQAETLAABEyzAARMtgAETLkABEy8AARMvwAETMIABEzFAARNCAAETQsABE0OAARNEQAETRQABE0XAARNGgAETR0ABE0gAARNIwAETSYABE0pAARNLAAETS8ABE0yAARNNQAETTgABE06AARNbAAETYgABE2gAARNrgAETbYABE3JAARN1wAETfIABE4KAAROFQAETjAABE5FAAROXgAETmoABE6DAAROkQAETyQABE9HAARPZwAET4cABE+JAARPiwAET40ABE+PAARPkgAET5MABE+UAARPlwAET5gABE+aAARPmwAET50ABE+gAARPoQAET6IABE+lAARPpgAET68ABE/IAARP0QAET9MABE/VAARP3gAET+EABE/kAARP5gAEUC8ABFBTAARQegAEUJ4ABFChAARQowAEUKUABFCnAARQqQAEUKsABFCsAARQrwAEUMgABFDpAARQ6wAEUO0ABFDvAARQ8QAEUPMABFD1AARQ9wAEUPkABFEaAARRHQAEUSAABFEjAARRJgAEUSkABFEsAARRLwAEUTIABFE0AARRrwAEUbEABFGzAARRtQAEUbgABFG5AARRugAEUbsABFG8AARRvgAEUcAABFHBAARRwgAEUcQABFHFAARSQAAEUkIABFJEAARSRgAEUkkABFJKAARSSwAEUkwABFJNAARSTwAEUlEABFJSAARSUwAEUlUABFJWAARS0QAEUtMABFLWAARS2AAEUtsABFLcAARS3QAEUt4ABFLfAARS4QAEUuMABFLkAARS5QAEUucABFLoAARTAQAEUwIABFMDAARTBQAEU4AABFOCAARThAAEU4YABFOJAARTigAEU4sABFOMAARTjQAEU48ABFORAARTkgAEU5MABFOVAARTlgAEVBEABFQTAARUFQAEVBcABFQaAARUGwAEVBwABFQdAARUHgAEVCAABFQiAARUIwAEVCQABFQmAARUJwAEVKIABFSkAARUpgAEVKgABFSrAARUrAAEVK0ABFSuAARUrwAEVLEABFSzAARUtAAEVLUABFS3AARUuAAEVTMABFU1AARVNwAEVTkABFU8AARVPQAEVT4ABFU/AARVQAAEVUIABFVEAARVRQAEVUYABFVIAARVSQAEVcQABFXGAARVyAAEVcoABFXNAARVzgAEVc8ABFXQAARV0QAEVdMABFXVAARV1gAEVdcABFXZAARV2gAEViMABFZHAARWbgAEVpIABFaVAARWlwAEVpkABFabAARWnQAEVp8ABFagAARWowAEVrwABFbZAARW2wAEVt0ABFbfAARW4QAEVuMABFblAARW5wAEVwQABFcHAARXCgAEVw0ABFcQAARXEwAEVxYABFcZAARXGwAEV5YABFeYAARXmgAEV5wABFefAARXoAAEV6EABFeiAARXowAEV6UABFenAARXqAAEV6kABFerAARXrAAEWCcABFgpAARYKwAEWC0ABFgwAARYMQAEWDIABFgzAARYNAAEWDYABFg4AARYOQAEWDoABFg8AARYPQAEWLgABFi6AARYvAAEWL4ABFjBAARYwgAEWMMABFjEAARYxQAEWMcABFjJAARYygAEWMsABFjNAARYzgAEWUkABFlLAARZTgAEWVAABFlTAARZVAAEWVUABFlWAARZVwAEWVkABFlbAARZXAAEWV0ABFlfAARZYAAEWdsABFndAARZ3wAEWeEABFnkAARZ5QAEWeYABFnnAARZ6AAEWeoABFnsAARZ7QAEWe4ABFnwAARZ8QAEWmwABFpuAARacAAEWnIABFp1AARadgAEWncABFp4AARaeQAEWnsABFp9AARafgAEWn8ABFqBAARaggAEWv0ABFr/AARbAQAEWwMABFsGAARbBwAEWwgABFsJAARbCgAEWwwABFsOAARbDwAEWxAABFsSAARbEwAEW6YABFvJAARb6QAEXAkABFwLAARcDQAEXA8ABFwRAARcFAAEXBUABFwWAARcGQAEXBoABFwcAARcHQAEXB8ABFwiAARcIwAEXCQABFwnAARcKAAEXDEABFxKAARcUwAEXFUABFxXAARcYAAEXGMABFxmAARcaAAEXLEABFzVAARc/AAEXSAABF0jAARdJQAEXScABF0pAARdKwAEXS0ABF0uAARdMQAEXUoABF1rAARdbQAEXW8ABF1xAARdcwAEXXUABF13AARdeQAEXXsABF2cAARdnwAEXaIABF2lAARdqAAEXasABF2uAARdsQAEXbQABF22AAReMQAEXjMABF41AAReNwAEXjoABF47AARePAAEXj0ABF4+AAReQAAEXkIABF5DAAReRAAEXkYABF5HAARewgAEXsQABF7GAAReyAAEXssABF7MAARezQAEXs4ABF7PAARe0QAEXtMABF7UAARe1QAEXtcABF7YAARfUwAEX1UABF9YAARfWgAEX10ABF9eAARfXwAEX2AABF9hAARfYwAEX2UABF9mAARfZwAEX2kABF9qAARfgwAEX4QABF+FAARfhwAEYAIABGAEAARgBgAEYAgABGALAARgDAAEYA0ABGAOAARgDwAEYBEABGATAARgFAAEYBUABGAXAARgGAAEYJMABGCVAARglwAEYJkABGCcAARgnQAEYJ4ABGCfAARgoAAEYKIABGCkAARgpQAEYKYABGCoAARgqQAEYSQABGEmAARhKAAEYSoABGEtAARhLgAEYS8ABGEwAARhMQAEYTMABGE1AARhNgAEYTcABGE5AARhOgAEYbUABGG3AARhuQAEYbsABGG+AARhvwAEYcAABGHBAARhwgAEYcQABGHGAARhxwAEYcgABGHKAARhywAEYkYABGJIAARiSgAEYkwABGJPAARiUAAEYlEABGJSAARiUwAEYlUABGJXAARiWAAEYlkABGJbAARiXAAEYqUABGLJAARi8AAEYxQABGMXAARjGQAEYxsABGMdAARjHwAEYyEABGMiAARjJQAEYz4ABGNbAARjXQAEY18ABGNhAARjYwAEY2UABGNnAARjaQAEY4YABGOJAARjjAAEY48ABGOSAARjlQAEY5gABGObAARjnQAEZBgABGQaAARkHQAEZB8ABGQiAARkIwAEZCQABGQlAARkJgAEZCgABGQqAARkKwAEZCwABGQuAARkLwAEZKoABGSsAARkrgAEZLAABGSzAARktAAEZLUABGS2AARktwAEZLkABGS7AARkvAAEZL0ABGS/AARkwAAEZTsABGU9AARlPwAEZUEABGVEAARlRQAEZUYABGVHAARlSAAEZUoABGVMAARlTQAEZU4ABGVQAARlUQAEZcwABGXOAARl0QAEZdMABGXWAARl1wAEZdgABGXZAARl2gAEZdwABGXeAARl3wAEZeAABGXiAARl4wAEZl4ABGZgAARmYgAEZmQABGZnAARmaAAEZmkABGZqAARmawAEZm0ABGZvAARmcAAEZnEABGZzAARmdAAEZu8ABGbxAARm8wAEZvUABGb4AARm+QAEZvoABGb7AARm/AAEZv4ABGcAAARnAQAEZwIABGcEAARnBQAEZ4AABGeCAARnhAAEZ4YABGeJAARnigAEZ4sABGeMAARnjQAEZ48ABGeRAARnkgAEZ5MABGeVAARnlgAEaCkABGhMAARobAAEaIwABGiOAARokAAEaJIABGiUAARolwAEaJgABGiZAARonAAEaJ0ABGifAARooAAEaKIABGilAARopgAEaKcABGiqAARoqwAEaLAABGjJAARo0gAEaNQABGjWAARo3wAEaOIABGjlAARo5wAEaTAABGlUAARpewAEaZ8ABGmiAARppAAEaaYABGmoAARpqgAEaawABGmtAARpsAAEackABGnqAARp7AAEae4ABGnwAARp8gAEafQABGn2AARp+AAEafoABGobAARqHgAEaiEABGokAARqJwAEaioABGotAARqMAAEajMABGo1AARqsAAEarIABGq0AARqtgAEarkABGq6AARquwAEarwABGq9AARqvwAEasEABGrCAARqwwAEasUABGrGAARrQQAEa0MABGtFAARrRwAEa0oABGtLAARrTAAEa00ABGtOAARrUAAEa1IABGtTAARrVAAEa1YABGtXAARr0gAEa9QABGvXAARr2QAEa9wABGvdAARr3gAEa98ABGvgAARr4gAEa+QABGvlAARr5gAEa+gABGvpAARsAgAEbAMABGwEAARsBgAEbIEABGyDAARshQAEbIcABGyKAARsiwAEbIwABGyNAARsjgAEbJAABGySAARskwAEbJQABGyWAARslwAEbRIABG0UAARtFgAEbRgABG0bAARtHAAEbR0ABG0eAARtHwAEbSEABG0jAARtJAAEbSUABG0nAARtKAAEbaMABG2lAARtpwAEbakABG2sAARtrQAEba4ABG2vAARtsAAEbbIABG20AARttQAEbbYABG24AARtuQAEbjQABG42AARuOAAEbjoABG49AARuPgAEbj8ABG5AAARuQQAEbkMABG5FAARuRgAEbkcABG5JAARuSgAEbsUABG7HAARuyQAEbssABG7OAARuzwAEbtAABG7RAARu0gAEbtQABG7WAARu1wAEbtgABG7aAARu2wAEbyQABG9IAARvbwAEb5MABG+WAARvmAAEb5oABG+cAARvngAEb6AABG+hAARvpAAEb70ABG/aAARv3AAEb94ABG/gAARv4gAEb+QABG/mAARv6AAEcAUABHAIAARwCwAEcA4ABHARAARwFAAEcBcABHAaAARwHAAEcJcABHCZAARwmwAEcJ0ABHCgAARwoQAEcKIABHCjAARwpAAEcKYABHCoAARwqQAEcKoABHCsAARwrQAEcSgABHEqAARxLAAEcS4ABHExAARxMgAEcTMABHE0AARxNQAEcTcABHE5AARxOgAEcTsABHE9AARxPgAEcbkABHG7AARxvQAEcb8ABHHCAARxwwAEccQABHHFAARxxgAEccgABHHKAARxywAEccwABHHOAARxzwAEckoABHJMAARyTwAEclEABHJUAARyVQAEclYABHJXAARyWAAEcloABHJcAARyXQAEcl4ABHJgAARyYQAEctwABHLeAARy4AAEcuIABHLlAARy5gAEcucABHLoAARy6QAEcusABHLtAARy7gAEcu8ABHLxAARy8gAEc20ABHNvAARzcQAEc3MABHN2AARzdwAEc3gABHN5AARzegAEc3wABHN+AARzfwAEc4AABHOCAARzgwAEc/4ABHQAAAR0AgAEdAQABHQHAAR0CAAEdAkABHQKAAR0CwAEdA0ABHQPAAR0EAAEdBEABHQTAAR0FAAEdKcABHTKAAR06gAEdQoABHUMAAR1DgAEdRAABHUSAAR1FQAEdRYABHUXAAR1GgAEdRsABHUdAAR1HgAEdSAABHUjAAR1JAAEdSUABHUoAAR1KQAEdTIABHVLAAR1VAAEdVYABHVYAAR1YQAEdWQABHVnAAR1aQAEdbIABHXWAAR1/QAEdiEABHYkAAR2JgAEdigABHYqAAR2LAAEdi4ABHYvAAR2MgAEdksABHZsAAR2bgAEdnAABHZyAAR2dAAEdnYABHZ4AAR2egAEdnwABHadAAR2oAAEdqMABHamAAR2qQAEdqwABHavAAR2sgAEdrUABHa3AAR3MgAEdzQABHc2AAR3OAAEdzsABHc8AAR3PQAEdz4ABHc/AAR3QQAEd0MABHdEAAR3RQAEd0cABHdIAAR3wwAEd8UABHfHAAR3yQAEd8wABHfNAAR3zgAEd88ABHfQAAR30gAEd9QABHfVAAR31gAEd9gABHfZAAR4VAAEeFYABHhZAAR4WwAEeF4ABHhfAAR4YAAEeGEABHhiAAR4ZAAEeGYABHhnAAR4aAAEeGoABHhrAAR4hAAEeIUABHiGAAR4iAAEeQMABHkFAAR5BwAEeQkABHkMAAR5DQAEeQ4ABHkPAAR5EAAEeRIABHkUAAR5FQAEeRYABHkYAAR5GQAEeZQABHmWAAR5mAAEeZoABHmdAAR5ngAEeZ8ABHmgAAR5oQAEeaMABHmlAAR5pgAEeacABHmpAAR5qgAEeiUABHonAAR6KQAEeisABHouAAR6LwAEejAABHoxAAR6MgAEejQABHo2AAR6NwAEejgABHo6AAR6OwAEerYABHq4AAR6ugAEerwABHq/AAR6wAAEesEABHrCAAR6wwAEesUABHrHAAR6yAAEeskABHrLAAR6zAAEe0cABHtJAAR7SwAEe00ABHtQAAR7UQAEe1IABHtTAAR7VAAEe1YABHtYAAR7WQAEe1oABHtcAAR7XQAEe6YABHvKAAR78QAEfBUABHwYAAR8GgAEfBwABHweAAR8IAAEfCIABHwjAAR8JgAEfD8ABHxcAAR8XgAEfGAABHxiAAR8ZAAEfGYABHxoAAR8agAEfIcABHyKAAR8jQAEfJAABHyTAAR8lgAEfJkABHycAAR8ngAEfRkABH0bAAR9HQAEfR8ABH0iAAR9IwAEfSQABH0lAAR9JgAEfSgABH0qAAR9KwAEfSwABH0uAAR9LwAEfaoABH2sAAR9rgAEfbAABH2zAAR9tAAEfbUABH22AAR9twAEfbkABH27AAR9vAAEfb0ABH2/AAR9wAAEfjsABH49AAR+PwAEfkEABH5EAAR+RQAEfkYABH5HAAR+SAAEfkoABH5MAAR+TQAEfk4ABH5QAAR+UQAEfswABH7OAAR+0QAEftMABH7WAAR+1wAEftgABH7ZAAR+2gAEftwABH7eAAR+3wAEfuAABH7iAAR+4wAEfuYABH9hAAR/YwAEf2UABH9nAAR/agAEf2sABH9sAAR/bQAEf24ABH9wAAR/cgAEf3MABH90AAR/dgAEf3cABH/yAAR/9AAEf/YABH/4AAR/+wAEf/wABH/9AAR//gAEf/8ABIABAASAAwAEgAQABIAFAASABwAEgAgABICDAASAhQAEgIcABICJAASAjAAEgI0ABICOAASAjwAEgJAABICSAASAlAAEgJUABICWAASAmAAEgJkABIEsAASBTwAEgW8ABIGPAASBkQAEgZMABIGVAASBlwAEgZoABIGbAASBnAAEgZ8ABIGgAASBogAEgaMABIGmAASBqQAEgaoABIGrAASBrgAEga8ABIG4AASB0QAEgdoABIHcAASB3wAEgegABIHrAASB7gAEgfAABII5AASCXQAEgoQABIKoAASCqwAEgq0ABIKvAASCsQAEgrMABIK1AASCtgAEgrkABILSAASC8wAEgvUABIL3AASC+QAEgvsABIL9AASC/wAEgwEABIMDAASDJAAEgycABIMqAASDLQAEgzAABIMzAASDNgAEgzkABIM8AASDPgAEg7kABIO7AASDvQAEg78ABIPCAASDwwAEg8QABIPFAASDxgAEg8gABIPKAASDywAEg8wABIPOAASDzwAEhEoABIRMAASETgAEhFAABIRTAASEVAAEhFUABIRWAASEVwAEhFkABIRbAASEXAAEhF0ABIRfAASEYAAEhNsABITdAASE4AAEhOIABITlAASE5gAEhOcABIToAASE6QAEhOsABITtAASE7gAEhO8ABITxAASE8gAEhQsABIUMAASFDQAEhQ8ABIWKAASFjAAEhY4ABIWQAASFkwAEhZQABIWVAASFlgAEhZcABIWZAASFmwAEhZwABIWdAASFnwAEhaAABIYbAASGHQAEhh8ABIYhAASGJAAEhiUABIYmAASGJwAEhigABIYqAASGLAAEhi0ABIYuAASGMAAEhjEABIasAASGrgAEhrAABIayAASGtQAEhrYABIa3AASGuAAEhrkABIa7AASGvQAEhr4ABIa/AASGwQAEhsIABIc9AASHPwAEh0EABIdDAASHRgAEh0cABIdIAASHSQAEh0oABIdMAASHTgAEh08ABIdQAASHUgAEh1MABIfOAASH0AAEh9IABIfUAASH1wAEh9gABIfZAASH2gAEh9sABIfdAASH3wAEh+AABIfhAASH4wAEh+QABIgtAASIUQAEiHgABIicAASInwAEiKIABIikAASIpgAEiKgABIiqAASIqwAEiK4ABIjHAASI5AAEiOcABIjqAASI7QAEiPAABIjzAASI9gAEiPkABIkWAASJGQAEiRwABIkfAASJIgAEiSUABIkoAASJKwAEiS0ABImoAASJqgAEia0ABImvAASJsgAEibMABIm0AASJtQAEibYABIm4AASJuwAEibwABIm9AASJvwAEicAABIo7AASKPQAEikAABIpCAASKRQAEikYABIpHAASKSAAEikkABIpLAASKTgAEik8ABIpQAASKUgAEilMABIrOAASK0AAEitMABIrVAASK2AAEitkABIraAASK2wAEitwABIreAASK4QAEiuIABIrjAASK5QAEiuYABIthAASLYwAEi2YABItoAASLawAEi2wABIttAASLbgAEi28ABItxAASLdAAEi3UABIt2AASLeAAEi3kABIv0AASL9gAEi/gABIv6AASL/QAEi/4ABIv/AASMAAAEjAEABIwDAASMBgAEjAcABIwIAASMCgAEjAsABIyGAASMiAAEjIoABIyMAASMjwAEjJAABIyRAASMkgAEjJMABIyVAASMmAAEjJkABIyaAASMnAAEjJ0ABI0YAASNGgAEjR0ABI0fAASNIgAEjSMABI0kAASNJQAEjSYABI0oAASNKwAEjSwABI0tAASNLwAEjTAABI3DAASN5gAEjgYABI4mAASOKAAEjioABI4sAASOLgAEjjEABI4yAASOMwAEjjYABI43AASOOQAEjjoABI49AASOQAAEjkEABI5CAASORQAEjkYABI5PAASOaAAEjnEABI5zAASOdgAEjn8ABI6CAASOhQAEjocABI7QAASO9AAEjxsABI8/AASPQgAEj0QABI9GAASPSAAEj0oABI9MAASPTQAEj1AABI9pAASPigAEj4wABI+OAASPkAAEj5IABI+UAASPlgAEj5gABI+aAASPuwAEj74ABI/BAASPxAAEj8cABI/KAASPzQAEj9AABI/TAASP1QAEkFAABJBSAASQVAAEkFYABJBZAASQWgAEkFsABJBcAASQXQAEkF8ABJBhAASQYgAEkGMABJBlAASQZgAEkOEABJDjAASQ5QAEkOcABJDqAASQ6wAEkOwABJDtAASQ7gAEkPAABJDyAASQ8wAEkPQABJD2AASQ9wAEkXIABJF0AASRdwAEkXkABJF8AASRfQAEkX4ABJF/AASRgAAEkYIABJGEAASRhQAEkYYABJGIAASRiQAEkaIABJGjAASRpAAEkaYABJIhAASSIwAEkiUABJInAASSKgAEkisABJIsAASSLQAEki4ABJIwAASSMgAEkjMABJI0AASSNgAEkjcABJKyAASStAAEkrYABJK4AASSuwAEkrwABJK9AASSvgAEkr8ABJLBAASSwwAEksQABJLFAASSxwAEksgABJNDAASTRQAEk0cABJNJAASTTAAEk00ABJNOAASTTwAEk1AABJNSAASTVAAEk1UABJNWAASTWAAEk1kABJPUAAST1gAEk9gABJPaAAST3QAEk94ABJPfAAST4AAEk+EABJPjAAST5QAEk+YABJPnAAST6QAEk+oABJRlAASUZwAElGkABJRrAASUbgAElG8ABJRwAASUcQAElHIABJR0AASUdgAElHcABJR4AASUegAElHsABJTEAASU6AAElQ8ABJUzAASVNgAElTkABJU7AASVPQAElT8ABJVBAASVQgAElUUABJVeAASVewAElX4ABJWBAASVhAAElYcABJWKAASVjQAElZAABJWtAASVsAAElbMABJW2AASVuQAElbwABJW/AASVwgAElcQABJY/AASWQQAElkQABJZGAASWSQAElkoABJZLAASWTAAElk0ABJZPAASWUgAEllMABJZUAASWVgAEllcABJbSAASW1AAEltcABJbZAASW3AAElt0ABJbeAASW3wAEluAABJbiAASW5QAEluYABJbnAASW6QAEluoABJdlAASXZwAEl2oABJdsAASXbwAEl3AABJdxAASXcgAEl3MABJd1AASXeAAEl3kABJd6AASXfAAEl30ABJf4AASX+gAEl/0ABJf/AASYAgAEmAMABJgEAASYBQAEmAYABJgIAASYCwAEmAwABJgNAASYDwAEmBAABJiTAASYtwAEmNsABJj+AASZJQAEmUUABJlsAASZkwAEmbMABJnXAASZ+wAEmf0ABJoAAASaAgAEmgQABJoGAASaCQAEmgwABJoOAASaEAAEmhMABJoVAASaFwAEmhoABJodAASaHgAEmiMABJo8AASaQQAEmkMABJpIAASaSwAEmk0ABJqWAASaugAEmuEABJsFAASbCAAEmwoABJsMAASbDgAEmxAABJsSAASbEwAEmxYABJsvAASbVAAEm1YABJtYAASbWgAEm1wABJteAASbYAAEm2IABJtkAASbZgAEm4sABJuOAASbkQAEm5QABJuXAASbmgAEm50ABJugAASbowAEm6YABJuoAAScIwAEnCUABJwoAAScKgAEnC0ABJwuAAScLwAEnDAABJwxAAScMwAEnDUABJw2AAScNwAEnDkABJw6AAScSwAEnEwABJxOAAScyQAEnMsABJzNAASczwAEnNIABJzTAASc1AAEnNUABJzWAASc2AAEnNoABJzbAASc3AAEnN4ABJzfAASdWgAEnVwABJ1fAASdYQAEnWQABJ1lAASdZgAEnWcABJ1oAASdagAEnWwABJ1tAASdbgAEnXAABJ1xAASdggAEnYMABJ2FAASeAAAEngIABJ4EAASeBgAEngkABJ4KAASeCwAEngwABJ4NAASeDwAEnhEABJ4SAASeEwAEnhUABJ4WAASekQAEnpMABJ6WAASemAAEnpsABJ6cAASenQAEnp4ABJ6fAASeoQAEnqMABJ6kAASepQAEnqcABJ6oAASeuQAEnroABJ68AASfNwAEnzkABJ87AASfPQAEn0AABJ9BAASfQgAEn0MABJ9EAASfRgAEn0gABJ9JAASfSgAEn0wABJ9NAASfyAAEn8oABJ/NAASfzwAEn9IABJ/TAASf1AAEn9UABJ/WAASf2AAEn9oABJ/bAASf3AAEn94ABJ/fAASf+AAEn/kABJ/6AASf/AAEoHcABKB5AASgewAEoH0ABKCAAASggQAEoIIABKCDAASghAAEoIYABKCIAASgiQAEoIoABKCMAASgjQAEoQgABKEKAAShDQAEoQ8ABKESAAShEwAEoRQABKEVAAShFgAEoRgABKEaAAShGwAEoRwABKEeAAShHwAEoTYABKFPAAShYAAEoWMABKFmAAShaQAEoWwABKF9AAShgAAEoYMABKGGAAShiQAEoYsABKGdAAShrAAEocEABKHYAASiawAEoo4ABKKuAASizgAEotAABKLSAASi1AAEotYABKLZAASi2gAEotsABKLeAASi3wAEouEABKLiAASi5QAEougABKLpAASi6gAEou0ABKLuAASi8wAEowwABKMVAASjFwAEoxoABKMjAASjJgAEoykABKMrAASjdAAEo5gABKO/AASj4wAEo+YABKPoAASj6gAEo+wABKPuAASj8AAEo/EABKP0AASkDQAEpC4ABKQwAASkMgAEpDQABKQ2AASkOAAEpDoABKQ8AASkPgAEpF8ABKRiAASkZQAEpGgABKRrAASkbgAEpHEABKR0AASkdwAEpHkABKT0AASk9gAEpPgABKT6AASk/QAEpP4ABKT/AASlAAAEpQEABKUDAASlBQAEpQYABKUHAASlCQAEpQoABKWFAASlhwAEpYkABKWLAASljgAEpY8ABKWQAASlkQAEpZIABKWUAASllgAEpZcABKWYAASlmgAEpZsABKYWAASmGAAEphsABKYdAASmIAAEpiEABKYiAASmIwAEpiQABKYmAASmKAAEpikABKYqAASmLAAEpi0ABKZGAASmRwAEpkgABKZKAASmxQAEpscABKbJAASmywAEps4ABKbPAASm0AAEptEABKbSAASm1AAEptYABKbXAASm2AAEptoABKbbAASnVgAEp1gABKdaAASnXAAEp18ABKdgAASnYQAEp2IABKdjAASnZQAEp2cABKdoAASnaQAEp2sABKdsAASn5wAEp+kABKfrAASn7QAEp/AABKfxAASn8gAEp/MABKf0AASn9gAEp/gABKf5AASn+gAEp/wABKf9AASoeAAEqHoABKh8AASofgAEqIEABKiCAASogwAEqIQABKiFAASohwAEqIkABKiKAASoiwAEqI0ABKiOAASpCQAEqQsABKkNAASpDwAEqRIABKkTAASpFAAEqRUABKkWAASpGAAEqRoABKkbAASpHAAEqR4ABKkfAASpaAAEqYwABKmzAASp1wAEqdoABKndAASp3wAEqeEABKnjAASp5QAEqeYABKnpAASqAgAEqh8ABKoiAASqJQAEqigABKorAASqLgAEqjEABKo0AASqUQAEqlQABKpXAASqWgAEql0ABKpgAASqYwAEqmYABKpoAASq4wAEquUABKroAASq6gAEqu0ABKruAASq7wAEqvAABKrxAASq8wAEqvYABKr3AASq+AAEqvoABKr7AASrdgAEq3gABKt7AASrfQAEq4AABKuBAASrggAEq4MABKuEAASrhgAEq4kABKuKAASriwAEq40ABKuOAASsCQAErAsABKwOAASsEAAErBMABKwUAASsFQAErBYABKwXAASsGQAErBwABKwdAASsHgAErCAABKwhAASsnAAErJ4ABKyhAASsowAErKYABKynAASsqAAErKkABKyqAASsrAAErK8ABKywAASssQAErLMABKy0AAStNwAErVsABK1/AAStogAErckABK3pAASuEAAErjcABK5XAASuewAErp8ABK6hAASupAAErqYABK6oAASuqgAErq0ABK6wAASusgAErrQABK63AASuuQAErrsABK6+AASuwQAErsIABK7HAASu4AAEruUABK7nAASu7AAEru8ABK7xAASvOgAEr14ABK+FAASvqQAEr6wABK+uAASvsAAEr7IABK+0AASvtgAEr7cABK+6AASv0wAEr/gABK/6AASv/AAEr/4ABLAAAASwAgAEsAQABLAGAASwCAAEsAoABLAvAASwMgAEsDUABLA4AASwOwAEsD4ABLBBAASwRAAEsEcABLBKAASwTAAEsMcABLDJAASwzAAEsM4ABLDRAASw0gAEsNMABLDUAASw1QAEsNcABLDZAASw2gAEsNsABLDdAASw3gAEsO8ABLDwAASw8gAEsW0ABLFvAASxcQAEsXMABLF2AASxdwAEsXgABLF5AASxegAEsXwABLF+AASxfwAEsYAABLGCAASxgwAEsf4ABLIAAASyAwAEsgUABLIIAASyCQAEsgoABLILAASyDAAEsg4ABLIQAASyEQAEshIABLIUAASyFQAEsiYABLIrAASyLgAEsjAABLJBAASyUgAEslUABLJYAASyWwAEsl4ABLJgAASyewAEsocABLKTAASyoAAEsxsABLMdAASzHwAEsyEABLMkAASzJQAEsyYABLMnAASzKAAEsyoABLMsAASzLQAEsy4ABLMwAASzMQAEs6wABLOuAASzsQAEs7MABLO2AASztwAEs7gABLO5AASzugAEs7wABLO+AASzvwAEs8AABLPCAASzwwAEs9QABLPVAASz1wAEtFIABLRUAAS0VgAEtFgABLRbAAS0XAAEtF0ABLReAAS0XwAEtGEABLRjAAS0ZAAEtGUABLRnAAS0aAAEtOMABLTlAAS06AAEtOoABLTtAAS07gAEtO8ABLTwAAS08QAEtPMABLT1AAS09gAEtPcABLT5AAS0+gAEtRMABLUUAAS1FQAEtRcABLWSAAS1lAAEtZYABLWYAAS1mwAEtZwABLWdAAS1ngAEtZ8ABLWhAAS1owAEtaQABLWlAAS1pwAEtagABLYjAAS2JQAEtigABLYqAAS2LQAEti4ABLYvAAS2MAAEtjEABLYzAAS2NQAEtjYABLY3AAS2OQAEtjoABLZJAAS2YgAEtrUABLa4AAS2uwAEtr4ABLbBAAS2xAAEtscABLbKAAS2zQAEttAABLbTAAS21gAEttkABLbcAAS23wAEtuIABLblAAS26AAEtusABLbuAAS28QAEt0QABLdHAAS3SgAEt00ABLdQAAS3UwAEt1YABLdZAAS3XAAEt18ABLdiAAS3ZQAEt2gABLdrAAS3bgAEt3EABLd0AAS3dwAEt3oABLd9AAS3gAAEt4IABLeUAAS3qQAEt7AABLfEAAS35QAEt/kABLgNAAS4LAAEuDkABLhLAAS4VwAEuIUABLiSAAS4rQAEuMgABLjVAAS46AAEuPQABLkKAAS5JAAEubcABLnaAAS5+gAEuhoABLocAAS6HgAEuiAABLoiAAS6JQAEuiYABLonAAS6KgAEuisABLotAAS6LgAEujEABLo0AAS6NQAEujYABLo5AAS6OgAEukMABLpcAAS6ZQAEumcABLpqAAS6cwAEunYABLp5AAS6ewAEusQABLroAAS7DwAEuzMABLs2AAS7OAAEuzoABLs8AAS7PgAEu0AABLtBAAS7RAAEu10ABLt+AAS7gAAEu4IABLuEAAS7hgAEu4gABLuKAAS7jAAEu44ABLuvAAS7sgAEu7UABLu4AAS7uwAEu74ABLvBAAS7xAAEu8cABLvJAAS8RAAEvEYABLxIAAS8SgAEvE0ABLxOAAS8TwAEvFAABLxRAAS8UwAEvFUABLxWAAS8VwAEvFkABLxaAAS81QAEvNcABLzZAAS82wAEvN4ABLzfAAS84AAEvOEABLziAAS85AAEvOYABLznAAS86AAEvOoABLzrAAS9ZgAEvWgABL1rAAS9bQAEvXAABL1xAAS9cgAEvXMABL10AAS9dgAEvXgABL15AAS9egAEvXwABL19AAS9lgAEvZcABL2YAAS9mgAEvhUABL4XAAS+GQAEvhsABL4eAAS+HwAEviAABL4hAAS+IgAEviQABL4mAAS+JwAEvigABL4qAAS+KwAEvqYABL6oAAS+qgAEvqwABL6vAAS+sAAEvrEABL6yAAS+swAEvrUABL63AAS+uAAEvrkABL67AAS+vAAEvzcABL85AAS/OwAEvz0ABL9AAAS/QQAEv0IABL9DAAS/RAAEv0YABL9IAAS/SQAEv0oABL9MAAS/TQAEv8gABL/KAAS/zAAEv84ABL/RAAS/0gAEv9MABL/UAAS/1QAEv9cABL/ZAAS/2gAEv9sABL/dAAS/3gAEwFkABMBbAATAXQAEwF8ABMBiAATAYwAEwGQABMBlAATAZgAEwGgABMBqAATAawAEwGwABMBuAATAbwAEwLgABMDcAATBAwAEwScABMEqAATBLQAEwS8ABMExAATBMwAEwTUABME2AATBOQAEwVIABMFvAATBcgAEwXUABMF4AATBewAEwX4ABMGBAATBhAAEwaEABMGkAATBpwAEwaoABMGtAATBsAAEwbMABMG2AATBuAAEwjMABMI1AATCOAAEwjoABMI9AATCPgAEwj8ABMJAAATCQQAEwkMABMJGAATCRwAEwkgABMJKAATCSwAEwsYABMLIAATCywAEws0ABMLQAATC0QAEwtIABMLTAATC1AAEwtYABMLZAATC2gAEwtsABMLdAATC3gAEw1kABMNbAATDXgAEw2AABMNjAATDZAAEw2UABMNmAATDZwAEw2kABMNsAATDbQAEw24ABMNwAATDcQAEw+wABMPuAATD8QAEw/MABMP2AATD9wAEw/gABMP5AATD+gAEw/wABMP/AATEAAAExAEABMQDAATEBAAExH8ABMSBAATEgwAExIUABMSIAATEiQAExIoABMSLAATEjAAExI4ABMSRAATEkgAExJMABMSVAATElgAExREABMUTAATFFQAExRcABMUaAATFGwAExRwABMUdAATFHgAExSAABMUjAATFJAAExSUABMUnAATFKAAExaMABMWlAATFqAAExaoABMWtAATFrgAExa8ABMWwAATFsQAExbMABMW2AATFtwAExbgABMW6AATFuwAExk4ABMZxAATGkQAExrEABMazAATGtQAExrcABMa5AATGvAAExr0ABMa+AATGwQAExsIABMbEAATGxQAExscABMbKAATGywAExswABMbPAATG0AAExtUABMbuAATG9wAExvkABMb7AATHBAAExwcABMcKAATHDAAEx1UABMd5AATHoAAEx8QABMfHAATHyQAEx8sABMfNAATHzwAEx9EABMfSAATH1QAEx+4ABMgPAATIEQAEyBMABMgVAATIFwAEyBkABMgbAATIHQAEyB8ABMhAAATIQwAEyEYABMhJAATITAAEyE8ABMhSAATIVQAEyFgABMhaAATI1QAEyNcABMjZAATI2wAEyN4ABMjfAATI4AAEyOEABMjiAATI5AAEyOYABMjnAATI6AAEyOoABMjrAATJZgAEyWgABMlqAATJbAAEyW8ABMlwAATJcQAEyXIABMlzAATJdQAEyXcABMl4AATJeQAEyXsABMl8AATJ9wAEyfkABMn8AATJ/gAEygEABMoCAATKAwAEygQABMoFAATKBwAEygkABMoKAATKCwAEyg0ABMoOAATKJwAEyigABMopAATKKwAEyqYABMqoAATKqgAEyqwABMqvAATKsAAEyrEABMqyAATKswAEyrUABMq3AATKuAAEyrkABMq7AATKvAAEyzcABMs5AATLOwAEyz0ABMtAAATLQQAEy0IABMtDAATLRAAEy0YABMtIAATLSQAEy0oABMtMAATLTQAEy8gABMvKAATLzAAEy84ABMvRAATL0gAEy9MABMvUAATL1QAEy9cABMvZAATL2gAEy9sABMvdAATL3gAEzFkABMxbAATMXQAEzF8ABMxiAATMYwAEzGQABMxlAATMZgAEzGgABMxqAATMawAEzGwABMxuAATMbwAEzOoABMzsAATM7gAEzPAABMzzAATM9AAEzPUABMz2AATM9wAEzPkABMz7AATM/AAEzP0ABMz/AATNAAAEzUkABM1tAATNlAAEzbgABM27AATNvQAEzb8ABM3BAATNwwAEzcUABM3GAATNyQAEzeIABM3/AATOAQAEzgMABM4FAATOBwAEzgkABM4LAATODQAEzioABM4tAATOMAAEzjMABM42AATOOQAEzjwABM4/AATOQQAEzrwABM6+AATOwAAEzsIABM7FAATOxgAEzscABM7IAATOyQAEzssABM7NAATOzgAEzs8ABM7RAATO0gAEz00ABM9PAATPUQAEz1MABM9WAATPVwAEz1gABM9ZAATPWgAEz1wABM9eAATPXwAEz2AABM9iAATPYwAEz94ABM/gAATP4gAEz+QABM/nAATP6AAEz+kABM/qAATP6wAEz+0ABM/vAATP8AAEz/EABM/zAATP9AAE0G8ABNBxAATQdAAE0HYABNB5AATQegAE0HsABNB8AATQfQAE0H8ABNCBAATQggAE0IMABNCFAATQhgAE0QEABNEDAATRBQAE0QcABNEKAATRCwAE0QwABNENAATRDgAE0RAABNESAATREwAE0RQABNEWAATRFwAE0ZIABNGUAATRlgAE0ZgABNGbAATRnAAE0Z0ABNGeAATRnwAE0aEABNGjAATRpAAE0aUABNGnAATRqAAE0iMABNIlAATSJwAE0ikABNIsAATSLQAE0i4ABNIvAATSMAAE0jIABNI0AATSNQAE0jYABNI4AATSOQAE0swABNLvAATTDwAE0y8ABNMxAATTMwAE0zUABNM3AATTOgAE0zsABNM8AATTPwAE00AABNNCAATTQwAE00UABNNIAATTSQAE00oABNNNAATTTgAE01MABNNsAATTdQAE03cABNN5AATTggAE04UABNOIAATTigAE09MABNP3AATUHgAE1EIABNRFAATURwAE1EkABNRLAATUTQAE1E8ABNRQAATUUwAE1GwABNSNAATUjwAE1JEABNSTAATUlQAE1JcABNSZAATUmwAE1J0ABNS+AATUwQAE1MQABNTHAATUygAE1M0ABNTQAATU0wAE1NYABNTYAATVUwAE1VUABNVXAATVWQAE1VwABNVdAATVXgAE1V8ABNVgAATVYgAE1WQABNVlAATVZgAE1WgABNVpAATV5AAE1eYABNXoAATV6gAE1e0ABNXuAATV7wAE1fAABNXxAATV8wAE1fUABNX2AATV9wAE1fkABNX6AATWdQAE1ncABNZ6AATWfAAE1n8ABNaAAATWgQAE1oIABNaDAATWhQAE1ocABNaIAATWiQAE1osABNaMAATWpQAE1qYABNanAATWqQAE1yQABNcmAATXKAAE1yoABNctAATXLgAE1y8ABNcwAATXMQAE1zMABNc1AATXNgAE1zcABNc5AATXOgAE17UABNe3AATXuQAE17sABNe+AATXvwAE18AABNfBAATXwgAE18QABNfGAATXxwAE18gABNfKAATXywAE2EYABNhIAATYSgAE2EwABNhPAATYUAAE2FEABNhSAATYUwAE2FUABNhXAATYWAAE2FkABNhbAATYXAAE2NcABNjZAATY2wAE2N0ABNjgAATY4QAE2OIABNjjAATY5AAE2OYABNjoAATY6QAE2OoABNjsAATY7QAE2WgABNlqAATZbAAE2W4ABNlxAATZcgAE2XMABNl0AATZdQAE2XcABNl5AATZegAE2XsABNl9AATZfgAE2ccABNnrAATaEgAE2jYABNo5AATaOwAE2j0ABNo/AATaQQAE2kMABNpEAATaRwAE2mAABNp9AATafwAE2oEABNqDAATahQAE2ocABNqJAATaiwAE2qgABNqrAATargAE2rEABNq0AATatwAE2roABNq9AATavwAE2zoABNs8AATbPwAE20EABNtEAATbRQAE20YABNtHAATbSAAE20oABNtMAATbTQAE204ABNtQAATbUQAE21UABNvQAATb0gAE29QABNvWAATb2QAE29oABNvbAATb3AAE290ABNvfAATb4QAE2+IABNvjAATb5QAE2+YABNxhAATcYwAE3GUABNxnAATcagAE3GsABNxsAATcbQAE3G4ABNxwAATccgAE3HMABNx0AATcdgAE3HcABNzyAATc9AAE3PcABNz5AATc/AAE3P0ABNz+AATc/wAE3QAABN0CAATdBAAE3QUABN0GAATdCAAE3QkABN2EAATdhgAE3YgABN2KAATdjQAE3Y4ABN2PAATdkAAE3ZEABN2TAATdlQAE3ZYABN2XAATdmQAE3ZoABN4VAATeFwAE3hkABN4bAATeHgAE3h8ABN4gAATeIQAE3iIABN4kAATeJgAE3icABN4oAATeKgAE3isABN6mAATeqAAE3qoABN6sAATerwAE3rAABN6xAATesgAE3rMABN61AATetwAE3rgABN65AATeuwAE3rwABN9PAATfcgAE35IABN+yAATftAAE37YABN+4AATfugAE370ABN++AATfvwAE38IABN/DAATfxQAE38YABN/JAATfzAAE380ABN/OAATf0QAE39IABN/XAATf8AAE3/kABN/7AATf/gAE4AcABOAKAATgDQAE4A8ABOBYAATgfAAE4KMABODHAATgygAE4MwABODOAATg0AAE4NIABODUAATg1QAE4NgABODxAAThEgAE4RQABOEWAAThGAAE4RoABOEcAAThHgAE4SAABOEiAAThQwAE4UYABOFJAAThTAAE4U8ABOFSAAThVQAE4VgABOFbAAThXQAE4dgABOHaAATh3AAE4d4ABOHhAATh4gAE4eMABOHkAATh5QAE4ecABOHpAATh6gAE4esABOHtAATh7gAE4mkABOJrAATibQAE4m8ABOJyAATicwAE4nQABOJ1AATidgAE4ngABOJ6AATiewAE4nwABOJ+AATifwAE4voABOL8AATi/wAE4wEABOMEAATjBQAE4wYABOMHAATjCAAE4woABOMMAATjDQAE4w4ABOMQAATjEQAE4yoABOMrAATjLAAE4y4ABOOpAATjqwAE460ABOOvAATjsgAE47MABOO0AATjtQAE47YABOO4AATjugAE47sABOO8AATjvgAE478ABOQ6AATkPAAE5D4ABORAAATkQwAE5EQABORFAATkRgAE5EcABORJAATkSwAE5EwABORNAATkTwAE5FAABOTLAATkzQAE5M8ABOTRAATk1AAE5NUABOTWAATk1wAE5NgABOTaAATk3AAE5N0ABOTeAATk4AAE5OEABOVcAATlXgAE5WAABOViAATlZQAE5WYABOVnAATlaAAE5WkABOVrAATlbQAE5W4ABOVvAATlcQAE5XIABOXtAATl7wAE5fEABOXzAATl9gAE5fcABOX4AATl+QAE5foABOX8AATl/gAE5f8ABOYAAATmAgAE5gMABOZMAATmcAAE5pcABOa7AATmvgAE5sEABObDAATmxQAE5scABObJAATmygAE5s0ABObmAATnAwAE5wYABOcJAATnDAAE5w8ABOcSAATnFQAE5xgABOc1AATnOAAE5zsABOc+AATnQQAE50QABOdHAATnSgAE50wABOfHAATnyQAE58wABOfOAATn0QAE59IABOfTAATn1AAE59UABOfXAATn2gAE59sABOfcAATn3gAE598ABOhaAAToXAAE6F8ABOhhAAToZAAE6GUABOhmAAToZwAE6GgABOhqAATobQAE6G4ABOhvAATocQAE6HIABOjtAATo7wAE6PIABOj0AATo9wAE6PgABOj5AATo+gAE6PsABOj9AATpAAAE6QEABOkCAATpBAAE6QUABOmAAATpggAE6YUABOmHAATpigAE6YsABOmMAATpjQAE6Y4ABOmQAATpkwAE6ZQABOmVAATplwAE6ZgABOobAATqPwAE6mMABOqGAATqrQAE6s0ABOr0AATrGwAE6zsABOtfAATrgwAE64UABOuIAATrigAE64wABOuOAATrkQAE65QABOuWAATrmAAE65sABOudAATrnwAE66IABOulAATrpgAE668ABOvIAATrzQAE688ABOvUAATr1wAE69kABOwiAATsRgAE7G0ABOyRAATslAAE7JYABOyYAATsmgAE7JwABOyeAATsnwAE7KIABOy7AATs4AAE7OIABOzkAATs5gAE7OgABOzqAATs7AAE7O4ABOzwAATs8gAE7RcABO0aAATtHQAE7SAABO0jAATtJgAE7SkABO0sAATtLwAE7TIABO00AATtrwAE7bEABO20AATttgAE7bkABO26AATtuwAE7bwABO29AATtvwAE7cEABO3CAATtwwAE7cUABO3GAATt1wAE7dgABO3aAATuVQAE7lcABO5ZAATuWwAE7l4ABO5fAATuYAAE7mEABO5iAATuZAAE7mYABO5nAATuaAAE7moABO5rAATu5gAE7ugABO7rAATu7QAE7vAABO7xAATu8gAE7vMABO70AATu9gAE7vgABO75AATu+gAE7vwABO79AATvDgAE7w8ABO8RAATvjAAE744ABO+QAATvkgAE75UABO+WAATvlwAE75gABO+ZAATvmwAE750ABO+eAATvnwAE76EABO+iAATwHQAE8B8ABPAiAATwJAAE8CcABPAoAATwKQAE8CoABPArAATwLQAE8C8ABPAwAATwMQAE8DMABPA0AATwRQAE8EYABPBIAATwwwAE8MUABPDHAATwyQAE8MwABPDNAATwzgAE8M8ABPDQAATw0gAE8NQABPDVAATw1gAE8NgABPDZAATxVAAE8VYABPFZAATxWwAE8V4ABPFfAATxYAAE8WEABPFiAATxZAAE8WYABPFnAATxaAAE8WoABPFrAATxhAAE8YUABPGGAATxiAAE8gMABPIFAATyBwAE8gkABPIMAATyDQAE8g4ABPIPAATyEAAE8hIABPIUAATyFQAE8hYABPIYAATyGQAE8pQABPKWAATymQAE8psABPKeAATynwAE8qAABPKhAATyogAE8qQABPKmAATypwAE8qgABPKqAATyqwAE8sMABPLcAATy+QAE8vwABPL/AATzAgAE8wUABPMIAATzCwAE8w4ABPMrAATzLgAE8zEABPM0AATzNwAE8zoABPM9AATzQAAE80IABPNdAATziAAE854ABPO3AATz4AAE8/gABPQGAAT0mQAE9LwABPTcAAT0/AAE9P4ABPUAAAT1AgAE9QQABPUHAAT1CAAE9QkABPUMAAT1DQAE9Q8ABPUQAAT1EgAE9RUABPUWAAT1FwAE9RoABPUbAAT1JAAE9T0ABPVGAAT1SAAE9UoABPVTAAT1VgAE9VkABPVbAAT1pAAE9cgABPXvAAT2EwAE9hYABPYYAAT2GgAE9hwABPYeAAT2IAAE9iEABPYkAAT2PQAE9l4ABPZgAAT2YgAE9mQABPZmAAT2aAAE9moABPZsAAT2bgAE9o8ABPaSAAT2lQAE9pgABPabAAT2ngAE9qEABPakAAT2pwAE9qkABPckAAT3JgAE9ygABPcqAAT3LQAE9y4ABPcvAAT3MAAE9zEABPczAAT3NQAE9zYABPc3AAT3OQAE9zoABPe1AAT3twAE97kABPe7AAT3vgAE978ABPfAAAT3wQAE98IABPfEAAT3xgAE98cABPfIAAT3ygAE98sABPhGAAT4SAAE+EsABPhNAAT4UAAE+FEABPhSAAT4UwAE+FQABPhWAAT4WAAE+FkABPhaAAT4XAAE+F0ABPh2AAT4dwAE+HgABPh6AAT49QAE+PcABPj5AAT4+wAE+P4ABPj/AAT5AAAE+QEABPkCAAT5BAAE+QYABPkHAAT5CAAE+QoABPkLAAT5hgAE+YgABPmKAAT5jAAE+Y8ABPmQAAT5kQAE+ZIABPmTAAT5lQAE+ZcABPmYAAT5mQAE+ZsABPmcAAT6FwAE+hkABPobAAT6HQAE+iAABPohAAT6IgAE+iMABPokAAT6JgAE+igABPopAAT6KgAE+iwABPotAAT6qAAE+qoABPqsAAT6rgAE+rEABPqyAAT6swAE+rQABPq1AAT6twAE+rkABPq6AAT6uwAE+r0ABPq+AAT7OQAE+zsABPs9AAT7PwAE+0IABPtDAAT7RAAE+0UABPtGAAT7SAAE+0oABPtLAAT7TAAE+04ABPtPAAT7mAAE+7wABPvjAAT8BwAE/AoABPwMAAT8DgAE/BAABPwSAAT8FAAE/BUABPwYAAT8MQAE/E4ABPxQAAT8UgAE/FQABPxWAAT8WAAE/FoABPxcAAT8eQAE/HwABPx/AAT8ggAE/IUABPyIAAT8iwAE/I4ABPyQAAT9CwAE/Q0ABP0PAAT9EQAE/RQABP0VAAT9FgAE/RcABP0YAAT9GgAE/RwABP0dAAT9HgAE/SAABP0hAAT9nAAE/Z4ABP2gAAT9ogAE/aUABP2mAAT9pwAE/agABP2pAAT9qwAE/a0ABP2uAAT9rwAE/bEABP2yAAT+LQAE/i8ABP4xAAT+MwAE/jYABP43AAT+OAAE/jkABP46AAT+PAAE/j4ABP4/AAT+QAAE/kIABP5DAAT+vgAE/sAABP7DAAT+xQAE/sgABP7JAAT+ygAE/ssABP7MAAT+zgAE/tAABP7RAAT+0gAE/tQABP7VAAT/UAAE/1IABP9UAAT/VgAE/1kABP9aAAT/WwAE/1wABP9dAAT/XwAE/2EABP9iAAT/YwAE/2UABP9mAAT/4QAE/+MABP/lAAT/5wAE/+oABP/rAAT/7AAE/+0ABP/uAAT/8AAE//IABP/zAAT/9AAE//YABP/3AAUAcgAFAHQABQB2AAUAeAAFAHsABQB8AAUAfQAFAH4ABQB/AAUAgQAFAIMABQCEAAUAhQAFAIcABQCIAAUBGwAFAT4ABQFeAAUBfgAFAYAABQGCAAUBhAAFAYYABQGJAAUBigAFAYsABQGOAAUBjwAFAZEABQGSAAUBlQAFAZgABQGZAAUBmgAFAZ0ABQGeAAUBowAFAbwABQHFAAUBxwAFAcoABQHTAAUB1gAFAdkABQHbAAUCJAAFAkgABQJvAAUCkwAFApYABQKYAAUCmgAFApwABQKeAAUCoAAFAqEABQKkAAUCvQAFAt4ABQLgAAUC4gAFAuQABQLmAAUC6AAFAuoABQLsAAUC7gAFAw8ABQMSAAUDFQAFAxgABQMbAAUDHgAFAyEABQMkAAUDJwAFAykABQOkAAUDpgAFA6gABQOqAAUDrQAFA64ABQOvAAUDsAAFA7EABQOzAAUDtQAFA7YABQO3AAUDuQAFA7oABQQ1AAUENwAFBDkABQQ7AAUEPgAFBD8ABQRAAAUEQQAFBEIABQREAAUERgAFBEcABQRIAAUESgAFBEsABQTGAAUEyAAFBMsABQTNAAUE0AAFBNEABQTSAAUE0wAFBNQABQTWAAUE2AAFBNkABQTaAAUE3AAFBN0ABQT2AAUE9wAFBPgABQT6AAUFdQAFBXcABQV5AAUFewAFBX4ABQV/AAUFgAAFBYEABQWCAAUFhAAFBYYABQWHAAUFiAAFBYoABQWLAAUGBgAFBggABQYKAAUGDAAFBg8ABQYQAAUGEQAFBhIABQYTAAUGFQAFBhcABQYYAAUGGQAFBhsABQYcAAUGlwAFBpkABQabAAUGnQAFBqAABQahAAUGogAFBqMABQakAAUGpgAFBqgABQapAAUGqgAFBqwABQatAAUHKAAFByoABQcsAAUHLgAFBzEABQcyAAUHMwAFBzQABQc1AAUHNwAFBzkABQc6AAUHOwAFBz0ABQc+AAUHuQAFB7sABQe9AAUHvwAFB8IABQfDAAUHxAAFB8UABQfGAAUHyAAFB8oABQfLAAUHzAAFB84ABQfPAAU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z/AAFM/8ABTQBAAU0SgAFNG4ABTSVAAU0uQAFNLwABTS+AAU0wAAFNMIABTTEAAU0xgAFNMcABTTKAAU04wAFNQQABTUGAAU1CAAFNQoABTUMAAU1DgAFNRAABTUSAAU1FAAFNTUABTU4AAU1OwAFNT4ABTVBAAU1RAAFNUcABTVKAAU1TQAFNU8ABTXKAAU1zAAFNc4ABTXQAAU10wAFNdQABTXVAAU11gAFNdcABTXZAAU12wAFNdwABTXdAAU13wAFNeAABTZbAAU2XQAFNl8ABTZhAAU2ZAAFNmUABTZmAAU2ZwAFNmgABTZqAAU2bAAFNm0ABTZuAAU2cAAFNnEABTbsAAU27gAFNvEABTbzAAU29gAFNvcABTb4AAU2+QAFNvoABTb8AAU2/gAFNv8ABTcAAAU3AgAFNwMABTccAAU3HQAFNx4ABTcgAAU3mwAFN50ABTefAAU3oQAFN6QABTelAAU3pgAFN6cABTeoAAU3qgAFN6wABTetAAU3rgAFN7AABTexAAU4LAAFOC4ABTgwAAU4MgAFODUABTg2AAU4NwAFODgABTg5AAU4OwAFOD0ABTg+AAU4PwAFOEEABThCAAU4vQAFOL8ABTjBAAU4wwAFOMYABTjHAAU4yAAFOMkABTjKAAU4zAAFOM4ABTjPAAU40AAFONIABTjTAAU5TgAFOVAABTlSAAU5VAAFOVcABTlYAAU5WQAFOVoABTlbAAU5XQAFOV8ABTlgAAU5YQAFOWMABTlkAAU53wAFOeEABTnjAAU55QAFOegABTnpAAU56gAFOesABTnsAAU57gAFOfAABTnxAAU58gAFOfQABTn1AAU6PgAFOmIABTqJAAU6rQAFOrAABTqzAAU6tQAFOrcABTq5AAU6uwAFOrwABTq/AAU62AAFOvUABTr4AAU6+wAFOv4ABTsBAAU7BAAFOwcABTsKAAU7JwAFOyoABTstAAU7MAAFOzMABTs2AAU7OQAFOzwABTs+AAU7uQAFO7sABTu+AAU7wAAFO8MABTvEAAU7xQAFO8YABTvHAAU7yQAFO8wABTvNAAU7zgAFO9AABTvRAAU8TAAFPE4ABTxRAAU8UwAFPFYABTxXAAU8WAAFPFkABTxaAAU8XAAFPF8ABTxgAAU8YQAFPGMABTxkAAU83wAFPOEABTzkAAU85gAFPOkABTzqAAU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OYAAFTmIABU7dAAVO3wAFTuEABU7jAAVO5gAFTucABU7oAAVO6QAFTuoABU7sAAVO7gAFTu8ABU7wAAVO8gAFTvMABU9uAAVPcAAFT3IABU90AAVPdwAFT3gABU95AAVPegAFT3sABU99AAVPfwAFT4AABU+BAAVPgwAFT4QABU//AAVQAQAFUAQABVAGAAVQCQAFUAoABVALAAVQDAAFUA0ABVAPAAVQEQAFUBIABVATAAVQFQAFUBYABVAvAAVQMAAFUDEABVAzAAVQrgAFULAABVCyAAVQtAAFULcABVC4AAVQuQAFULoABVC7AAVQvQAFUL8ABVDAAAVQwQAFUMMABVDEAAVRPwAFUUEABVFDAAVRRQAFUUgABVFJAAVRSgAFUUsABVFMAAVRTgAFUVAABVFRAAVRUgAFUVQABVFVAAVR0AAFUdIABVHUAAVR1gAFUdkABVHaAAVR2wAFUdwABVHdAAVR3wAFUeEABVHiAAVR4wAFUeUABVHmAAVSYQAFUmMABVJlAAVSZwAFUmoABVJrAAVSbAAFUm0ABVJuAAVScAAFUnIABVJzAAVSdAAFUnYABVJ3AAVS8gAFUvQABVL2AAVS+AAFUvsABVL8AAVS/QAFUv4ABVL/AAVTAQAFUwMABVMEAAVTBQAFUwcABVMIAAVTUQAFU3UABVOcAAVTwAAFU8MABVPFAAVTxwAFU8kABVPLAAVTzQAFU84ABVPRAAVT6gAFVAcABVQJAAVUCwAFVA0ABVQPAAVUEQAFVBMABVQVAAVUMgAFVDUABVQ4AAVUOwAFVD4ABVRBAAVURAAFVEcABVRJAAVUxAAFVMYABVTIAAVUygAFVM0ABVTOAAVUzwAFVNAABVTRAAVU0wAFVNUABVTWAAVU1wAFVNkABVTaAAVVVQAFVVcABVVZAAVVWwAFVV4ABVVfAAVVYAAFVWEABVViAAVVZAAFVWYABVVnAAVVaAAFVWoABVVrAAVV5gAFVegABVXqAAVV7AAFVe8ABVXwAAVV8QAFVfIABVXzAAVV9QAFVfcABVX4AAVV+QAFVfsABVX8AAVWdwAFVnkABVZ8AAVWfgAFVoEABVaCAAVWgwAFVoQABVaFAAVWhwAFVokABVaKAAVWiwAFVo0ABVaOAAVXCQAFVwsABVcNAAVXDwAFVxIABVcTAAVXFAAFVxUABVcWAAVXGAAFVxoABVcbAAVXHAAFVx4ABVcfAAVXmgAFV5wABVeeAAVXoAAFV6MABVekAAVXpQAFV6YABVenAAVXqQAFV6sABVesAAVXrQAFV68ABVewAAVYKwAFWC0ABVgvAAVYMQAFWDQABVg1AAVYNgAFWDcABVg4AAVYOgAFWDwABVg9AAVYPgAFWEAABVhBAAVYUgAFWFMABVhVAAVY0AAFWNIABVjUAAVY1gAFWNkABVjaAAVY2wAFWNwABVjdAAVY3wAFWOIABVjjAAVY5AAFWOYABVjnAAVZYgAFWWQABVlmAAVZaAAFWWsABVlsAAVZbQAFWW4ABVlvAAVZcQAFWXQABVl1AAVZdgAFWXgABVl5AAVZ9AAFWfYABVn5AAVZ+wAFWf4ABVn/AAVaAAAFWgEABVoCAAVaBAAFWgcABVoIAAVaCQAFWgsABVoMAAVanwAFWsIABVriAAVbAgAFWwQABVsGAAVbCAAFWwoABVsNAAVbDgAFWw8ABVsSAAVbEwAFWxUABVsWAAVbGAAFWxsABVscAAVbHQAFWyAABVshAAVbJgAFWz8ABVtIAAVbSgAFW0wABVtVAAVbWAAFW1sABVtdAAVbpgAFW8oABVvxAAVcFQAFXBgABVwaAAVcHAAFXB4ABVwgAAVcIgAFXCMABVwmAAVcPwAFXGAABVxiAAVcZAAFXGYABVxoAAVcagAFXGwABVxuAAVccAAFXJEABVyUAAVclwAFXJoABVydAAVcoAAFXKMABVymAAVcqQAFXKsABV0mAAVdKAAFXSoABV0sAAVdLwAFXTAABV0xAAVdMgAFXTMABV01AAVdNwAFXTgABV05AAVdOwAFXTwABV23AAVduQAFXbsABV29AAVdwAAFXcEABV3CAAVdwwAFXcQABV3GAAVdyAAFXckABV3KAAVdzAAFXc0ABV5IAAVeSgAFXk0ABV5PAAVeUgAFXlMABV5UAAVeVQAFXlYABV5YAAVeWgAFXlsABV5cAAVeXgAFXl8ABV54AAVeeQAFXnoABV58AAVe9wAFXvkABV77AAVe/QAFXwAABV8BAAVfAgAFXwMABV8EAAVfBgAFXwgABV8JAAVfCgAFXwwABV8NAAVfiAAFX4oABV+MAAVfjgAFX5EABV+SAAVfkwAFX5QABV+VAAVflwAFX5kABV+aAAVfmwAFX50ABV+eAAVgGQAFYBsABWAdAAVgHwAFYCIABWAjAAVgJAAFYCUABWAmAAVgKAAFYCoABWArAAVgLAAFYC4ABWAvAAVgqgAFYKwABWCuAAVgsAAFYLMABWC0AAVgtQAFYLYABWC3AAVguQAFYLsABWC8AAVgvQAFYL8ABWDAAAVhOwAFYT0ABWE/AAVhQQAFYUQABWFFAAVhRgAFYUcABWFIAAVhSgAFYUwABWFNAAVhTgAFYVAABWFRAAVhmgAFYb4ABWHlAAViCQAFYgwABWIOAAViEAAFYhIABWIUAAViFgAFYhcABWIaAAViMwAFYlAABWJSAAViVAAFYlYABWJYAAViWgAFYlwABWJeAAViewAFYn4ABWKBAAVihAAFYocABWKKAAVijQAFYpAABWKSAAVjDQAFYw8ABWMRAAVjEwAFYxYABWMXAAVjGAAFYxkABWMaAAVjHAAFYx4ABWMfAAVjIAAFYyIABWMjAAVjngAFY6AABWOiAAVjpAAFY6cABWOoAAVjqQAFY6oABWOrAAVjrQAFY68ABWOwAAVjsQAFY7MABWO0AAVkLwAFZDEABWQzAAVkNQAFZDgABWQ5AAVkOgAFZDsABWQ8AAVkPgAFZEAABWRBAAVkQgAFZEQABWRFAAVkwAAFZMIABWTFAAVkxwAFZMoABWTLAAVkzAAFZM0ABWTOAAVk0AAFZNIABWTTAAVk1AAFZNYABWTXAAVlUgAFZVQABWVWAAVlWAAFZVsABWVcAAVlXQAFZV4ABWVfAAVlYQAFZWMABWVkAAVlZQAFZWcABWVoAAVl4wAFZeUABWXnAAVl6QAFZewABWXtAAVl7gAFZe8ABWXwAAVl8gAFZfQABWX1AAVl9gAFZfgABWX5AAVmdAAFZnYABWZ4AAVmegAFZn0ABWZ+AAVmfwAFZoAABWaBAAVmgwAFZoUABWaGAAVmhwAFZokABWaKAAVnHQAFZ0AABWdgAAVngAAFZ4IABWeEAAVnhgAFZ4gABWeLAAVnjAAFZ40ABWeQAAVnkQAFZ5MABWeUAAVnlgAFZ5kABWeaAAVnmwAFZ54ABWefAAVnpAAFZ70ABWfGAAVnyAAFZ8oABWfTAAVn1gAFZ9kABWfbAAVoJAAFaEgABWhvAAVokwAFaJYABWiYAAVomgAFaJwABWieAAVooAAFaKEABWikAAVovQAFaN4ABWjgAAVo4gAFaOQABWjmAAVo6AAFaOoABWjsAAVo7gAFaQ8ABWkSAAVpFQAFaRgABWkbAAVpHgAFaSEABWkkAAVpJwAFaSkABWmkAAVppgAFaagABWmqAAVprQAFaa4ABWmvAAVpsAAFabEABWmzAAVptQAFabYABWm3AAVpuQAFaboABWo1AAVqNwAFajkABWo7AAVqPgAFaj8ABWpAAAVqQQAFakIABWpEAAVqRgAFakcABWpIAAVqSgAFaksABWrGAAVqyAAFassABWrNAAVq0AAFatEABWrSAAVq0wAFatQABWrWAAVq2AAFatkABWraAAVq3AAFat0ABWr2AAVq9wAFavgABWr6AAVrdQAFa3cABWt5AAVrewAFa34ABWt/AAVrgAAFa4EABWuCAAVrhAAFa4YABWuHAAVriAAFa4oABWuLAAVsBgAFbAgABWwKAAVsDAAFbA8ABWwQAAVsEQAFbBIABWwTAAVsFQAFbBcABWwYAAVsGQAFbBsABWwcAAVslwAFbJkABWybAAVsnQAFbKAABWyhAAVsogAFbKMABWykAAVspgAFbKgABWypAAVsqgAFbKwABWytAAVtKAAFbSoABW0sAAVtLgAFbTEABW0yAAVtMwAFbTQABW01AAVtNwAFbTkABW06AAVtOwAFbT0ABW0+AAVtuQAFbbsABW29AAVtvwAFbcIABW3DAAVtxAAFbcUABW3GAAVtyAAFbcoABW3LAAVtzAAFbc4ABW3PAAVuGAAFbjwABW5jAAVuhwAFbooABW6MAAVujgAFbpAABW6SAAVulAAFbpUABW6YAAVusQAFbs4ABW7QAAVu0gAFbtQABW7WAAVu2AAFbtoABW7cAAVu+QAFbvwABW7/AAVvAgAFbwUABW8IAAVvCwAFbw4ABW8QAAVviwAFb40ABW+PAAVvkQAFb5QABW+VAAVvlgAFb5cABW+YAAVvmgAFb5wABW+dAAVvngAFb6AABW+hAAVwHAAFcB4ABXAgAAVwIgAFcCUABXAmAAVwJwAFcCgABXApAAVwKwAFcC0ABXAuAAVwLwAFcDEABXAyAAVwrQAFcK8ABXCxAAVwswAFcLYABXC3AAVwuAAFcLkABXC6AAVwvAAFcL4ABXC/AAVwwAAFcMIABXDDAAVxPgAFcUAABXFDAAVxRQAFcUgABXFJAAVxSgAFcUsABXFMAAVxTgAFcVAABXFRAAVxUgAFcVQABXFVAAVx0AAFcdIABXHUAAVx1gAFcdkABXHaAAVx2wAFcdwABXHdAAVx3wAFceEABXHiAAVx4wAFceUABXHmAAVyYQAFcmMABXJlAAVyZwAFcmoABXJrAAVybAAFcm0ABXJuAAVycAAFcnIABXJzAAVydAAFcnYABXJ3AAVy8gAFcvQABXL2AAVy+AAFcvsABXL8AAVy/QAFcv4ABXL/AAVzAQAFcwMABXMEAAVzBQAFcwcABXMIAAVzmwAFc74ABXPeAAVz/gAFdAAABXQCAAV0BAAFdAYABXQJAAV0CgAFdAsABXQOAAV0DwAFdBEABXQSAAV0FQAFdBgABXQZAAV0GgAFdB0ABXQeAAV0IwAFdDwABXRFAAV0RwAFdEoABXRTAAV0VgAFdFkABXRbAAV0pAAFdMgABXTvAAV1EwAFdRYABXUYAAV1GgAFdRwABXUeAAV1IAAFdSEABXUkAAV1PQAFdV4ABXVgAAV1YgAFdWQABXVmAAV1aAAFdWoABXVsAAV1bgAFdY8ABXWSAAV1lQAFdZgABXWbAAV1ngAFdaEABXWkAAV1pwAFdakABXYkAAV2JgAFdigABXYqAAV2LQAFdi4ABXYvAAV2MAAFdjEABXYzAAV2NQAFdjYABXY3AAV2OQAFdjoABXa1AAV2twAFdrkABXa7AAV2vgAFdr8ABXbAAAV2wQAFdsIABXbEAAV2xgAFdscABXbIAAV2ygAFdssABXdGAAV3SAAFd0sABXdNAAV3UAAFd1EABXdSAAV3UwAFd1QABXdWAAV3WAAFd1kABXdaAAV3XAAFd10ABXd2AAV3dwAFd3gABXd6AAV39QAFd/cABXf5AAV3+wAFd/4ABXf/AAV4AAAFeAEABXgCAAV4BAAFeAYABXgHAAV4CAAFeAoABXgLAAV4hgAFeIgABXiKAAV4jAAFeI8ABXiQAAV4kQAFeJIABXiTAAV4lQAFeJcABXiYAAV4mQAFeJsABXicAAV5FwAFeRkABXkbAAV5HQAFeSAABXkhAAV5IgAFeSMABXkkAAV5JgAFeSgABXkpAAV5KgAFeSwABXktAAV5qAAFeaoABXmsAAV5rgAFebEABXmyAAV5swAFebQABXm1AAV5twAFebkABXm6AAV5uwAFeb0ABXm+AAV6OQAFejsABXo9AAV6PwAFekIABXpDAAV6RAAFekUABXpGAAV6SAAFekoABXpLAAV6TAAFek4ABXpPAAV6mAAFerwABXrjAAV7BwAFewoABXsNAAV7DwAFexEABXsTAAV7FQAFexYABXsZAAV7MgAFe08ABXtSAAV7VQAFe1gABXtbAAV7XgAFe2EABXtkAAV7gQAFe4QABXuHAAV7igAFe40ABXuQAAV7kwAFe5YABXuYAAV8EwAFfBUABXwYAAV8GgAFfB0ABXweAAV8HwAFfCAABXwhAAV8IwAFfCYABXwnAAV8KAAFfCoABXwrAAV8pgAFfKgABXyrAAV8rQAFfLAABXyxAAV8sgAFfLMABXy0AAV8tgAFfLkABXy6AAV8uwAFfL0ABXy+AAV9OQAFfTsABX0+AAV9QAAFfUMABX1EAAV9RQAFfUYABX1HAAV9SQAFfUwABX1NAAV9TgAFfVAABX1RAAV9zAAFfc4ABX3RAAV90wAFfdYABX3XAAV92AAFfdkABX3aAAV93AAFfd8ABX3gAAV94QAFfeMABX3kAAV+ZwAFfosABX6vAAV+0gAFfvkABX8ZAAV/QAAFf2cABX+HAAV/qwAFf88ABX/RAAV/1AAFf9YABX/YAAV/2gAFf90ABX/gAAV/4gAFf+QABX/nAAV/6QAFf+sABX/uAAV/8QAFf/IABX/3AAWAEAAFgBUABYAXAAWAHAAFgB8ABYAhAAWAagAFgI4ABYC1AAWA2QAFgNwABYDeAAWA4AAFgOIABYDkAAWA5gAFgOcABYDqAAWBAwAFgSgABYEqAAWBLAAFgS4ABYEwAAWBMgAFgTQABYE2AAWBOAAFgToABYFfAAWBYgAFgWUABYFoAAWBawAFgW4ABYFxAAWBdAAFgXcABYF6AAWBfAAFgfcABYH5AAWB/AAFgf4ABYIBAAWCAgAFggMABYIEAAWCBQAFggcABYIJAAWCCgAFggsABYINAAWCDgAFgh8ABYIgAAWCIgAFgp0ABYKfAAWCoQAFgqMABYKmAAWCpwAFgqgABYKpAAWCqgAFgqwABYKuAAWCrwAFgrAABYKyAAWCswAFgy4ABYMwAAWDMwAFgzUABYM4AAWDOQAFgzoABYM7AAWDPAAFgz4ABYNAAAWDQQAFg0IABYNEAAWDRQAFg1YABYNXAAWDWQAFg9QABYPWAAWD2AAFg9oABYPdAAWD3gAFg98ABYPgAAWD4QAFg+MABYPlAAWD5gAFg+cABYPpAAWD6gAFhGUABYRnAAWEagAFhGwABYRvAAWEcAAFhHEABYRyAAWEcwAFhHUABYR3AAWEeAAFhHkABYR7AAWEfAAFhI0ABYSOAAWEkAAFhQsABYUNAAWFDwAFhREABYUUAAWFFQAFhRYABYUXAAWFGAAFhRoABYUcAAWFHQAFhR4ABYUgAAWFIQAFhZwABYWeAAWFoQAFhaMABYWmAAWFpwAFhagABYWpAAWFqgAFhawABYWuAAWFrwAFhbAABYWyAAWFswAFhcwABYXNAAWFzgAFhdAABYZLAAWGTQAFhk8ABYZRAAWGVAAFhlUABYZWAAWGVwAFhlgABYZaAAWGXAAFhl0ABYZeAAWGYAAFhmEABYbcAAWG3gAFhuEABYbjAAWG5gAFhucABYboAAWG6QAFhuoABYbsAAWG7gAFhu8ABYbwAAWG8gAFhvMABYcRAAWHKgAFhz8ABYdCAAWHRQAFh0gABYdLAAWHTgAFh2MABYdmAAWHaQAFh2wABYdvAAWHcgAFh3QABYeUAAWHowAFh7UABYfBAAWH2AAFiGsABYiOAAWIrgAFiM4ABYjQAAWI0gAFiNQABYjWAAWI2QAFiNoABYjbAAWI3gAFiN8ABYjhAAWI4gAFiOQABYjnAAWI6AAFiOkABYjsAAWI7QAFiPYABYkPAAWJGAAFiRoABYkcAAWJJQAFiSgABYkrAAWJLQAFiXYABYmaAAWJwQAFieUABYnoAAWJ6gAFiewABYnuAAWJ8AAFifIABYnzAAWJ9gAFig8ABYowAAWKMgAFijQABYo2AAWKOAAFijoABYo8AAWKPgAFikAABYphAAWKZAAFimcABYpqAAWKbQAFinAABYpzAAWKdgAFinkABYp7AAWK9gAFivgABYr6AAWK/AAFiv8ABYsAAAWLAQAFiwIABYsDAAWLBQAFiwcABYsIAAWLCQAFiwsABYsMAAWLhwAFi4kABYuLAAWLjQAFi5AABYuRAAWLkgAFi5MABYuUAAWLlgAFi5gABYuZAAWLmgAFi5wABYudAAWMGAAFjBoABYwdAAWMHwAFjCIABYwjAAWMJAAFjCUABYwmAAWMKAAFjCoABYwrAAWMLAAFjC4ABYwvAAWMSAAFjEkABYxKAAWMTAAFjMcABYzJAAWMywAFjM0ABYzQAAWM0QAFjNIABYzTAAWM1AAFjNYABYzYAAWM2QAFjNoABYzcAAWM3QAFjVgABY1aAAWNXAAFjV4ABY1hAAWNYgAFjWMABY1kAAWNZQAFjWcABY1pAAWNagAFjWsABY1tAAWNbgAFjekABY3rAAWN7QAFje8ABY3yAAWN8wAFjfQABY31AAWN9gAFjfgABY36AAWN+wAFjfwABY3+AAWN/wAFjnoABY58AAWOfgAFjoAABY6DAAWOhAAFjoUABY6GAAWOhwAFjokABY6LAAWOjAAFjo0ABY6PAAWOkAAFjwsABY8NAAWPDwAFjxEABY8UAAWPFQAFjxYABY8XAAWPGAAFjxoABY8cAAWPHQAFjx4ABY8gAAWPIQAFj2oABY+OAAWPtQAFj9kABY/cAAWP3gAFj+AABY/iAAWP5AAFj+YABY/nAAWP6gAFkAMABZAgAAWQIgAFkCQABZAmAAWQKAAFkCoABZAsAAWQLgAFkEsABZBOAAWQUQAFkFQABZBXAAWQWgAFkF0ABZBgAAWQYgAFkN0ABZDfAAWQ4QAFkOMABZDmAAWQ5wAFkOgABZDpAAWQ6gAFkOwABZDuAAWQ7wAFkPAABZDyAAWQ8wAFkW4ABZFwAAWRcgAFkXQABZF3AAWReAAFkXkABZF6AAWRewAFkX0ABZF/AAWRgAAFkYEABZGDAAWRhAAFkf8ABZIBAAWSAwAFkgUABZIIAAWSCQAFkgoABZILAAWSDAAFkg4ABZIQAAWSEQAFkhIABZIUAAWSFQAFkpAABZKSAAWSlQAFkpcABZKaAAWSmwAFkpwABZKdAAWSngAFkqAABZKiAAWSowAFkqQABZKmAAWSpwAFkyIABZMkAAWTJgAFkygABZMrAAWTLAAFky0ABZMuAAWTLwAFkzEABZMzAAWTNAAFkzUABZM3AAWTOAAFk7MABZO1AAWTtwAFk7kABZO8AAWTvQAFk74ABZO/AAWTwAAFk8IABZPEAAWTxQAFk8YABZPIAAWTyQAFlEQABZRGAAWUSAAFlEoABZRNAAWUTgAFlE8ABZRQAAWUUQAFlFMABZRVAAWUVgAFlFcABZRZAAWUWgAFlO0ABZUQAAWVMAAFlVAABZVSAAWVVAAFlVYABZVYAAWVWwAFlVwABZVdAAWVYAAFlWEABZVjAAWVZAAFlWYABZVpAAWVagAFlWsABZVuAAWVbwAFlXQABZWNAAWVlgAFlZgABZWaAAWVowAFlaYABZWpAAWVqwAFlfQABZYYAAWWPwAFlmMABZZmAAWWaAAFlmoABZZsAAWWbgAFlnAABZZxAAWWdAAFlo0ABZauAAWWsAAFlrIABZa0AAWWtgAFlrgABZa6AAWWvAAFlr4ABZbfAAWW4gAFluUABZboAAWW6wAFlu4ABZbxAAWW9AAFlvcABZb5AAWXdAAFl3YABZd4AAWXegAFl30ABZd+AAWXfwAFl4AABZeBAAWXgwAFl4UABZeGAAWXhwAFl4kABZeKAAWYBQAFmAcABZgJAAWYCwAFmA4ABZgPAAWYEAAFmBEABZgSAAWYFAAFmBYABZgXAAWYGAAFmBoABZgbAAWYlgAFmJgABZibAAWYnQAFmKAABZihAAWYogAFmKMABZikAAWYpgAFmKgABZipAAWYqgAFmKwABZitAAWYxgAFmMcABZjIAAWYygAFmUUABZlHAAWZSQAFmUsABZlOAAWZTwAFmVAABZlRAAWZUgAFmVQABZlWAAWZVwAFmVgABZlaAAWZWwAFmdYABZnYAAWZ2gAFmdwABZnfAAWZ4AAFmeEABZniAAWZ4wAFmeUABZnnAAWZ6AAFmekABZnrAAWZ7AAFmmcABZppAAWaawAFmm0ABZpwAAWacQAFmnIABZpzAAWadAAFmnYABZp4AAWaeQAFmnoABZp8AAWafQAFmvgABZr6AAWa/AAFmv4ABZsBAAWbAgAFmwMABZsEAAWbBQAFmwcABZsJAAWbCgAFmwsABZsNAAWbDgAFm4kABZuLAAWbjQAFm48ABZuSAAWbkwAFm5QABZuVAAWblgAFm5gABZuaAAWbmwAFm5wABZueAAWbnwAFm+gABZwMAAWcMwAFnFcABZxaAAWcXAAFnF4ABZxgAAWcYgAFnGQABZxlAAWcaAAFnIEABZyeAAWcoAAFnKIABZykAAWcpgAFnKgABZyqAAWcrAAFnMkABZzMAAWczwAFnNIABZzVAAWc2AAFnNsABZzeAAWc4AAFnVsABZ1dAAWdXwAFnWEABZ1kAAWdZQAFnWYABZ1nAAWdaAAFnWoABZ1sAAWdbQAFnW4ABZ1wAAWdcQAFnewABZ3uAAWd8AAFnfIABZ31AAWd9gAFnfcABZ34AAWd+QAFnfsABZ39AAWd/gAFnf8ABZ4BAAWeAgAFnn0ABZ5/AAWegQAFnoMABZ6GAAWehwAFnogABZ6JAAWeigAFnowABZ6OAAWejwAFnpAABZ6SAAWekwAFnw4ABZ8QAAWfEwAFnxUABZ8YAAWfGQAFnxoABZ8bAAWfHAAFnx4ABZ8gAAWfIQAFnyIABZ8kAAWfJQAFn6AABZ+iAAWfpAAFn6YABZ+pAAWfqgAFn6sABZ+sAAWfrQAFn68ABZ+xAAWfsgAFn7MABZ+1AAWftgAFoDEABaAzAAWgNQAFoDcABaA6AAWgOwAFoDwABaA9AAWgPgAFoEAABaBCAAWgQwAFoEQABaBGAAWgRwAFoMIABaDEAAWgxgAFoMgABaDLAAWgzAAFoM0ABaDOAAWgzwAFoNEABaDTAAWg1AAFoNUABaDXAAWg2AAFoWsABaGOAAWhrgAFoc4ABaHQAAWh0gAFodQABaHWAAWh2QAFodoABaHbAAWh3gAFod8ABaHhAAWh4gAFoeUABaHoAAWh6QAFoeoABaHtAAWh7gAFofMABaIMAAWiFQAFohcABaIaAAWiIwAFoiYABaIpAAWiKwAFonQABaKYAAWivwAFouMABaLmAAWi6AAFouoABaLsAAWi7gAFovAABaLxAAWi9AAFow0ABaMuAAWjMAAFozIABaM0AAWjNgAFozgABaM6AAWjPAAFoz4ABaNfAAWjYgAFo2UABaNoAAWjawAFo24ABaNxAAWjdAAFo3cABaN5AAWj9AAFo/YABaP4AAWj+gAFo/0ABaP+AAWj/wAFpAAABaQBAAWkAwAFpAUABaQGAAWkBwAFpAkABaQKAAWkhQAFpIcABaSJAAWkiwAFpI4ABaSPAAWkkAAFpJEABaSSAAWklAAFpJYABaSXAAWkmAAFpJoABaSbAAWlFgAFpRgABaUbAAWlHQAFpSAABaUhAAWlIgAFpSMABaUkAAWlJgAFpSgABaUpAAWlKgAFpSwABaUtAAWlRgAFpUcABaVIAAWlSgAFpcUABaXHAAWlyQAFpcsABaXOAAWlzwAFpdAABaXRAAWl0gAFpdQABaXWAAWl1wAFpdgABaXaAAWl2wAFplYABaZYAAWmWgAFplwABaZfAAWmYAAFpmEABaZiAAWmYwAFpmUABaZnAAWmaAAFpmkABaZrAAWmbAAFpucABabpAAWm6wAFpu0ABabwAAWm8QAFpvIABabzAAWm9AAFpvYABab4AAWm+QAFpvoABab8AAWm/QAFp3gABad6AAWnfAAFp34ABaeBAAWnggAFp4MABaeEAAWnhQAFp4cABaeJAAWnigAFp4sABaeNAAWnjgAFqAkABagLAAWoDQAFqA8ABagSAAWoEwAFqBQABagVAAWoFgAFqBgABagaAAWoGwAFqBwABageAAWoHwAFqGgABaiMAAWoswAFqNcABajaAAWo3QAFqN8ABajhAAWo4wAFqOUABajmAAWo6QAFqQIABakfAAWpIgAFqSUABakoAAWpKwAFqS4ABakxAAWpNAAFqVEABalUAAWpVwAFqVoABaldAAWpYAAFqWMABalmAAWpaAAFqeMABanlAAWp6AAFqeoABantAAWp7gAFqe8ABanwAAWp8QAFqfMABan2AAWp9wAFqfgABan6AAWp+wAFqnYABap4AAWqewAFqn0ABaqAAAWqgQAFqoIABaqDAAWqhAAFqoYABaqJAAWqigAFqosABaqNAAWqjgAFqwkABasLAAWrDgAFqxAABasTAAWrFAAFqxUABasWAAWrFwAFqxkABascAAWrHQAFqx4ABasgAAWrIQAFq5wABaueAAWroQAFq6MABaumAAWrpwAFq6gABaupAAWrqgAFq6wABauvAAWrsAAFq7EABauzAAWrtAAFrC8ABawxAAWsMwAFrDUABaw4AAWsOQAFrDoABaw7AAWsPAAFrD4ABaxBAAWsQgAFrEMABaxFAAWsRgAFrMEABazDAAWsxQAFrMcABazKAAWsywAFrMwABazNAAWszgAFrNAABazTAAWs1AAFrNUABazXAAWs2AAFrVMABa1VAAWtWAAFrVoABa1dAAWtXgAFrV8ABa1gAAWtYQAFrWMABa1mAAWtZwAFrWgABa1qAAWtawAFrf4ABa4hAAWuQQAFrmEABa5jAAWuZQAFrmcABa5pAAWubAAFrm0ABa5uAAWucQAFrnIABa50AAWudQAFrncABa56AAWuewAFrnwABa5/AAWugAAFroUABa6eAAWupwAFrqkABa6rAAWutAAFrrcABa66AAWuvAAFrwUABa8pAAWvUAAFr3QABa93AAWveQAFr3sABa99AAWvfwAFr4EABa+CAAWvhQAFr54ABa+/AAWvwQAFr8MABa/FAAWvxwAFr8kABa/LAAWvzQAFr88ABa/wAAWv8wAFr/YABa/5AAWv/AAFr/8ABbACAAWwBQAFsAgABbAKAAWwhQAFsIcABbCJAAWwiwAFsI4ABbCPAAWwkAAFsJEABbCSAAWwlAAFsJYABbCXAAWwmAAFsJoABbCbAAWxFgAFsRgABbEaAAWxHAAFsR8ABbEgAAWxIQAFsSIABbEjAAWxJQAFsScABbEoAAWxKQAFsSsABbEsAAWxpwAFsakABbGsAAWxrgAFsbEABbGyAAWxswAFsbQABbG1AAWxtwAFsbkABbG6AAWxuwAFsb0ABbG+AAWx1wAFsdgABbHZAAWx2wAFslYABbJYAAWyWgAFslwABbJfAAWyYAAFsmEABbJiAAWyYwAFsmUABbJnAAWyaAAFsmkABbJrAAWybAAFsucABbLpAAWy6wAFsu0ABbLwAAWy8QAFsvIABbLzAAWy9AAFsvYABbL4AAWy+QAFsvoABbL8AAWy/QAFs3gABbN6AAWzfAAFs34ABbOBAAWzggAFs4MABbOEAAWzhQAFs4cABbOJAAWzigAFs4sABbONAAWzjgAFtAkABbQLAAW0DQAFtA8ABbQSAAW0EwAFtBQABbQVAAW0FgAFtBgABbQaAAW0GwAFtBwABbQeAAW0HwAFtJoABbScAAW0ngAFtKAABbSjAAW0pAAFtKUABbSmAAW0pwAFtKkABbSrAAW0rAAFtK0ABbSvAAW0sAAFtPkABbUdAAW1RAAFtWgABbVrAAW1bQAFtW8ABbVxAAW1cwAFtXUABbV2AAW1eQAFtZIABbWvAAW1sQAFtbMABbW1AAW1twAFtbkABbW7AAW1vQAFtdoABbXdAAW14AAFteMABbXmAAW16QAFtewABbXvAAW18QAFtmwABbZuAAW2cAAFtnIABbZ1AAW2dgAFtncABbZ4AAW2eQAFtnsABbZ9AAW2fgAFtn8ABbaBAAW2ggAFtv0ABbb/AAW3AQAFtwMABbcGAAW3BwAFtwgABbcJAAW3CgAFtwwABbcOAAW3DwAFtxAABbcSAAW3EwAFt44ABbeQAAW3kgAFt5QABbeXAAW3mAAFt5kABbeaAAW3mwAFt50ABbefAAW3oAAFt6EABbejAAW3pAAFuB8ABbghAAW4JAAFuCYABbgpAAW4KgAFuCsABbgsAAW4LQAFuC8ABbgxAAW4MgAFuDMABbg1AAW4NgAFuLEABbizAAW4tQAFuLcABbi6AAW4uwAFuLwABbi9AAW4vgAFuMAABbjCAAW4wwAFuMQABbjGAAW4xwAFuUIABblEAAW5RgAFuUgABblLAAW5TAAFuU0ABblOAAW5TwAFuVEABblTAAW5VAAFuVUABblXAAW5WAAFudMABbnVAAW51wAFudkABbncAAW53QAFud4ABbnfAAW54AAFueIABbnkAAW55QAFueYABbnoAAW56QAFunwABbqfAAW6vwAFut8ABbrhAAW64wAFuuUABbrnAAW66gAFuusABbrsAAW67wAFuvAABbryAAW68wAFuvUABbr4AAW6+QAFuvoABbr9AAW6/gAFuwMABbscAAW7JQAFuycABbspAAW7MgAFuzUABbs4AAW7OgAFu4MABbunAAW7zgAFu/IABbv1AAW79wAFu/kABbv7AAW7/QAFu/8ABbwAAAW8AwAFvBwABbw9AAW8PwAFvEEABbxDAAW8RQAFvEcABbxJAAW8SwAFvE0ABbxuAAW8cQAFvHQABbx3AAW8egAFvH0ABbyAAAW8gwAFvIYABbyIAAW9AwAFvQUABb0HAAW9CQAFvQwABb0NAAW9DgAFvQ8ABb0QAAW9EgAFvRQABb0VAAW9FgAFvRgABb0ZAAW9lAAFvZYABb2YAAW9mgAFvZ0ABb2eAAW9nwAFvaAABb2hAAW9owAFvaUABb2mAAW9pwAFvakABb2qAAW+JQAFvicABb4qAAW+LAAFvi8ABb4wAAW+MQAFvjIABb4zAAW+NQAFvjcABb44AAW+OQAFvjsABb48AAW+VQAFvlYABb5XAAW+WQAFvtQABb7WAAW+2AAFvtoABb7dAAW+3gAFvt8ABb7gAAW+4QAFvuMABb7lAAW+5gAFvucABb7pAAW+6gAFv2UABb9nAAW/aQAFv2sABb9uAAW/bwAFv3AABb9xAAW/cgAFv3QABb92AAW/dwAFv3gABb96AAW/ewAFv/YABb/4AAW/+gAFv/wABb//AAXAAAAFwAEABcACAAXAAwAFwAUABcAHAAXACAAFwAkABcALAAXADAAFwIcABcCJAAXAiwAFwI0ABcCQAAXAkQAFwJIABcCTAAXAlAAFwJYABcCYAAXAmQAFwJoABcCcAAXAnQAFwRgABcEaAAXBHAAFwR4ABcEhAAXBIgAFwSMABcEkAAXBJQAFwScABcEpAAXBKgAFwSsABcEtAAXBLgAFwXcABcGbAAXBwgAFweYABcHpAAXB6wAFwe0ABcHvAAXB8QAFwfMABcH0AAXB9wAFwhAABcItAAXCLwAFwjEABcIzAAXCNQAFwjcABcI5AAXCOwAFwlgABcJbAAXCXgAFwmEABcJkAAXCZwAFwmoABcJtAAXCbwAFwuoABcLsAAXC7gAFwvAABcLzAAXC9AAFwvUABcL2AAXC9wAFwvkABcL7AAXC/AAFwv0ABcL/AAXDAAAFw3sABcN9AAXDfwAFw4EABcOEAAXDhQAFw4YABcOHAAXDiAAFw4oABcOMAAXDjQAFw44ABcOQAAXDkQAFxAwABcQOAAXEEAAFxBIABcQVAAXEFgAFxBcABcQYAAXEGQAFxBsABcQdAAXEHgAFxB8ABcQhAAXEIgAFxJ0ABcSfAAXEogAFxKQABcSnAAXEqAAFxKkABcSqAAXEqwAFxK0ABcSvAAXEsAAFxLEABcSzAAXEtAAFxS8ABcUxAAXFMwAFxTUABcU4AAXFOQAFxToABcU7AAXFPAAFxT4ABcVAAAXFQQAFxUIABcVEAAXFRQAFxcAABcXCAAXFxAAFxcYABcXJAAXFygAFxcsABcXMAAXFzQAFxc8ABcXRAAXF0gAFxdMABcXVAAXF1gAFxlEABcZTAAXGVQAFxlcABcZaAAXGWwAFxlwABcZdAAXGXgAFxmAABcZiAAXGYwAFxmQABcZmAAXGZwAFxngABcZ5AAXGewAFxvYABcb4AAXG+gAFxvwABcb/AAXHAAAFxwEABccCAAXHAwAFxwUABccIAAXHCQAFxwoABccMAAXHDQAFx4gABceKAAXHjAAFx44ABceRAAXHkgAFx5MABceUAAXHlQAFx5cABceaAAXHmwAFx5wABceeAAXHnwAFyBoABcgcAAXIHwAFyCEABcgkAAXIJQAFyCYABcgnAAXIKAAFyCoABcgtAAXILgAFyC8ABcgxAAXIMgAFyMUABcjoAAXJCAAFySgABckqAAXJLAAFyS4ABckwAAXJMwAFyTQABck1AAXJOAAFyTkABck7AAXJPAAFyT4ABclBAAXJQgAFyUMABclGAAXJRwAFyUwABcllAAXJbgAFyXAABclyAAXJewAFyX4ABcmBAAXJgwAFycwABcnwAAXKFwAFyjsABco+AAXKQAAFykIABcpEAAXKRgAFykgABcpJAAXKTAAFymUABcqGAAXKiAAFyooABcqMAAXKjgAFypAABcqSAAXKlAAFypYABcq3AAXKugAFyr0ABcrAAAXKwwAFysYABcrJAAXKzAAFys8ABcrRAAXLTAAFy04ABctQAAXLUgAFy1UABctWAAXLVwAFy1gABctZAAXLWwAFy10ABcteAAXLXwAFy2EABctiAAXL3QAFy98ABcvhAAXL4wAFy+YABcvnAAXL6AAFy+kABcvqAAXL7AAFy+4ABcvvAAXL8AAFy/IABcvzAAXMbgAFzHAABcxzAAXMdQAFzHgABcx5AAXMegAFzHsABcx8AAXMfgAFzIAABcyBAAXMggAFzIQABcyFAAXMngAFzJ8ABcygAAXMogAFzR0ABc0fAAXNIQAFzSMABc0mAAXNJwAFzSgABc0pAAXNKgAFzSwABc0uAAXNLwAFzTAABc0yAAXNMwAFza4ABc2wAAXNsgAFzbQABc23AAXNuAAFzbkABc26AAXNuwAFzb0ABc2/AAXNwAAFzcEABc3DAAXNxAAFzj8ABc5BAAXOQwAFzkUABc5IAAXOSQAFzkoABc5LAAXOTAAFzk4ABc5QAAXOUQAFzlIABc5UAAXOVQAFztAABc7SAAXO1AAFztYABc7ZAAXO2gAFztsABc7cAAXO3QAFzt8ABc7hAAXO4gAFzuMABc7lAAXO5gAFz2EABc9jAAXPZQAFz2cABc9qAAXPawAFz2wABc9tAAXPbgAFz3AABc9yAAXPcwAFz3QABc92AAXPdwAFz8AABc/kAAXQCwAF0C8ABdAyAAXQNAAF0DYABdA4AAXQOgAF0DwABdA9AAXQQAAF0FkABdB2AAXQeAAF0HoABdB8AAXQfgAF0IAABdCCAAXQhAAF0KEABdCkAAXQpwAF0KoABdCtAAXQsAAF0LMABdC2AAXQuAAF0TMABdE1AAXRNwAF0TkABdE8AAXRPQAF0T4ABdE/AAXRQAAF0UIABdFEAAXRRQAF0UYABdFIAAXRSQAF0cQABdHGAAXRyAAF0coABdHNAAXRzgAF0c8ABdHQAAXR0QAF0dMABdHVAAXR1gAF0dcABdHZAAXR2gAF0lUABdJXAAXSWQAF0lsABdJeAAXSXwAF0mAABdJhAAXSYgAF0mQABdJmAAXSZwAF0mgABdJqAAX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kUgAF5FMABeRUAAXkVgAF5FgABeRZAAXkWgAF5FwABeRdAAXk2AAF5NoABeTcAAXk3gAF5OEABeTiAAXk4wAF5OQABeTlAAXk5wAF5OkABeTqAAXk6wAF5O0ABeTuAAXlaQAF5WsABeVuAAXlcAAF5XMABeV0AAXldQAF5XYABeV3AAXleQAF5XsABeV8AAXlfQAF5X8ABeWAAAXlmQAF5ZoABeWbAAXlnQAF5hgABeYaAAXmHAAF5h4ABeYhAAXmIgAF5iMABeYkAAXmJQAF5icABeYpAAXmKgAF5isABeYtAAXmLgAF5qkABearAAXmrQAF5q8ABeayAAXmswAF5rQABea1AAXmtgAF5rgABea6AAXmuwAF5rwABea+AAXmvwAF5zoABec8AAXnPgAF50AABedDAAXnRAAF50UABedGAAXnRwAF50kABedLAAXnTAAF500ABedPAAXnUAAF58sABefNAAXnzwAF59EABefUAAXn1QAF59YABefXAAXn2AAF59oABefcAAXn3QAF594ABefgAAXn4QAF6FwABeheAAXoYAAF6GIABehlAAXoZgAF6GcABehoAAXoaQAF6GsABehtAAXobgAF6G8ABehxAAXocgAF6LsABejfAAXpBgAF6SoABektAAXpLwAF6TEABekzAAXpNQAF6TcABek4AAXpOwAF6VQABelxAAXpcwAF6XUABel3AAXpeQAF6XsABel9AAXpfwAF6ZwABemfAAXpogAF6aUABemoAAXpqwAF6a4ABemxAAXpswAF6i4ABeowAAXqMgAF6jQABeo3AAXqOAAF6jkABeo6AAXqOwAF6j0ABeo/AAXqQAAF6kEABepDAAXqRAAF6r8ABerBAAXqwwAF6sUABerIAAXqyQAF6soABerLAAXqzAAF6s4ABerQAAXq0QAF6tIABerUAAXq1QAF61AABetSAAXrVAAF61YABetZAAXrWgAF61sABetcAAXrXQAF618ABethAAXrYgAF62MABetlAAXrZgAF6+EABevjAAXr5gAF6+gABevrAAXr7AAF6+0ABevuAAXr7wAF6/EABevzAAXr9AAF6/UABev3AAXr+AAF7HMABex1AAXsdwAF7HkABex8AAXsfQAF7H4ABex/AAXsgAAF7IIABeyEAAXshQAF7IYABeyIAAXsiQAF7QQABe0GAAXtCAAF7QoABe0NAAXtDgAF7Q8ABe0QAAXtEQAF7RMABe0VAAXtFgAF7RcABe0ZAAXtGgAF7ZUABe2XAAXtmQAF7ZsABe2eAAXtnwAF7aAABe2hAAXtogAF7aQABe2mAAXtpwAF7agABe2qAAXtqwAF7j4ABe5hAAXugQAF7qEABe6jAAXupQAF7qcABe6pAAXurAAF7q0ABe6uAAXusQAF7rIABe60AAXutQAF7rcABe66AAXuuwAF7rwABe6/AAXuwAAF7sUABe7eAAXu5wAF7ukABe7rAAXu9AAF7vcABe76AAXu/AAF70UABe9pAAXvkAAF77QABe+3AAXvuQAF77sABe+9AAXvvwAF78EABe/CAAXvxQAF794ABe//AAXwAQAF8AMABfAFAAXwBwAF8AkABfALAAXwDQAF8A8ABfAwAAXwMwAF8DYABfA5AAXwPAAF8D8ABfBCAAXwRQAF8EgABfBKAAXwxQAF8McABfDJAAXwywAF8M4ABfDPAAXw0AAF8NEABfDSAAXw1AAF8NYABfDXAAXw2AAF8NoABfDbAAXxVgAF8VgABfFaAAXxXAAF8V8ABfFgAAXxYQAF8WIABfFjAAXxZQAF8WcABfFoAAXxaQAF8WsABfFsAAXx5wAF8ekABfHsAAXx7gAF8fEABfHyAAXx8wAF8fQABfH1AAXx9wAF8fkABfH6AAXx+wAF8f0ABfH+AAXyFwAF8hgABfIZAAXyGwAF8pYABfKYAAXymgAF8pwABfKfAAXyoAAF8qEABfKiAAXyowAF8qUABfKnAAXyqAAF8qkABfKrAAXyrAAF8ycABfMpAAXzKwAF8y0ABfMwAAXzMQAF8zIABfMzAAXzNAAF8zYABfM4AAXzOQAF8zoABfM8AAXzPQAF87gABfO6AAXzvAAF874ABfPBAAXzwgAF88MABfPEAAXzxQAF88cABfPJAAXzygAF88sABfPNAAXzzgAF9EkABfRLAAX0TQAF9E8ABfRSAAX0UwAF9FQABfRVAAX0VgAF9FgABfRaAAX0WwAF9FwABfReAAX0XwAF9NoABfTcAAX03gAF9OAABfTjAAX05AAF9OUABfTmAAX05wAF9OkABfTrAAX07AAF9O0ABfTvAAX08AAF9TkABfVdAAX1hAAF9agABfWrAAX1rQAF9a8ABfWxAAX1swAF9bUABfW2AAX1uQAF9dIABfXvAAX18QAF9fMABfX1AAX19wAF9fkABfX7AAX1/QAF9hoABfYdAAX2IAAF9iMABfYmAAX2KQAF9iwABfYvAAX2MQAF9qwABfauAAX2sAAF9rIABfa1AAX2tgAF9rcABfa4AAX2uQAF9rsABfa9AAX2vgAF9r8ABfbBAAX2wgAF9z0ABfc/AAX3QQAF90MABfdGAAX3RwAF90gABfdJAAX3SgAF90wABfdOAAX3TwAF91AABfdSAAX3UwAF984ABffQAAX30gAF99QABffXAAX32AAF99kABffaAAX32wAF990ABfffAAX34AAF9+EABffjAAX35AAF+F8ABfhhAAX4ZAAF+GYABfhpAAX4agAF+GsABfhsAAX4bQAF+G8ABfhxAAX4cgAF+HMABfh1AAX4dgAF+PEABfjzAAX49QAF+PcABfj6AAX4+wAF+PwABfj9AAX4/gAF+QAABfkCAAX5AwAF+QQABfkGAAX5BwAF+YIABfmEAAX5hgAF+YgABfmLAAX5jAAF+Y0ABfmOAAX5jwAF+ZEABfmTAAX5lAAF+ZUABfmXAAX5mAAF+hMABfoVAAX6FwAF+hkABfocAAX6HQAF+h4ABfofAAX6IAAF+iIABfokAAX6JQAF+iYABfooAAX6KQAF+rwABfrfAAX6/wAF+x8ABfshAAX7IwAF+yUABfsnAAX7KgAF+ysABfssAAX7LwAF+zAABfsyAAX7MwAF+zUABfs4AAX7OQAF+zoABfs9AAX7PgAF+0cABftgAAX7aQAF+2sABfttAAX7dgAF+3kABft8AAX7fgAF+8cABfvrAAX8EgAF/DYABfw5AAX8OwAF/D0ABfw/AAX8QQAF/EMABfxEAAX8RwAF/GAABfyBAAX8gwAF/IUABfyHAAX8iQAF/IsABfyNAAX8jwAF/JEABfyyAAX8tQAF/LgABfy7AAX8vgAF/MEABfzEAAX8xwAF/MoABfzMAAX9RwAF/UkABf1LAAX9TQAF/VAABf1RAAX9UgAF/VMABf1UAAX9VgAF/VgABf1ZAAX9WgAF/VwABf1dAAX92AAF/doABf3cAAX93gAF/eEABf3iAAX94wAF/eQABf3lAAX95wAF/ekABf3qAAX96wAF/e0ABf3uAAX+aQAF/msABf5uAAX+cAAF/nMABf50AAX+dQAF/nYABf53AAX+eQAF/nsABf58AAX+fQAF/n8ABf6AAAX+mQAF/poABf6bAAX+nQAF/xgABf8aAAX/HAAF/x4ABf8hAAX/IgAF/yMABf8kAAX/JQAF/ycABf8pAAX/KgAF/ysABf8tAAX/LgAF/6kABf+rAAX/rQAF/68ABf+yAAX/swAF/7QABf+1AAX/tgAF/7gABf+6AAX/uwAF/7wABf++AAX/vwAGADoABgA8AAYAPgAGAEAABgBDAAYARAAGAEUABgBGAAYARwAGAEkABgBLAAYATAAGAE0ABgBPAAYAUAAGAMsABgDNAAYAzwAGANEABgDUAAYA1QAGANYABgDXAAYA2AAGANoABgDcAAYA3QAGAN4ABgDgAAYA4QAGAVwABgFeAAYBYAAGAWIABgFlAAYBZgAGAWcABgFoAAYBaQAGAWsABgFtAAYBbgAGAW8ABgFxAAYBcgAGAbsABgHfAAYCBgAGAioABgItAAYCLwAGAjEABgIzAAYCNQAGAjcABgI4AAYCOwAGAlQABgJxAAYCcwAGAnUABgJ3AAYCeQAGAnsABgJ9AAYCfwAGApwABgKfAAYCogAGAqUABgKoAAYCqwAGAq4ABgKxAAYCswAGAy4ABgMwAAYDMgAGAzQABgM3AAYDOAAGAzkABgM6AAYDOwAGAz0ABgM/AAYDQAAGA0EABgNDAAYDRAAGA78ABgPBAAYDwwAGA8UABgPIAAYDyQAGA8oABgPLAAYDzAAGA84ABgPQAAYD0QAGA9IABgPUAAYD1QAGBFAABgRSAAYEVAAGBFYABgRZAAYEWgAGBFsABgRcAAYEXQAGBF8ABgRhAAYEYgAGBGMABgRlAAYEZgAGBOEABgTjAAYE5gAGBOgABgTrAAYE7AAGBO0ABgTuAAYE7wAGBPEABgTzAAYE9AAGBPUABgT3AAYE+AAGBXMABgV1AAYFdwAGBXkABgV8AAYFfQAGBX4ABgV/AAYFgAAGBYIABgWEAAYFhQAGBYYABgWIAAYFiQAGBgQABgYGAAYGCAAGBgoABgYNAAYGDgAGBg8ABgYQAAYGEQAGBhMABgYVAAYGFgAGBhcABgYZAAYGGgAGBpUABgaXAAYGmQAGBpsABgaeAAYGnwAGBqAABgahAAYGogAGBqQABgamAAYGpwAGBqgABgaqAAYGqwAGBz4ABgdhAAYHgQAGB6EABgejAAYHpQAGB6cABgepAAYHrAAGB60ABgeuAAYHsQAGB7IABge0AAYHtQAGB7cABge6AAYHuwAGB7wABge/AAYHwAAGB8UABgfeAAYH5wAGB+kABgfrAAYH9AAGB/cABgf6AAYH/AAGCEUABghpAAYIkAAGCLQABgi3AAYIuQAGCLsABgi9AAYIvwAGCMEABgjCAAYIxQAGCN4ABgj/AAYJAQAGCQMABgkFAAYJBwAGCQkABgkLAAYJDQAGCQ8ABgkwAAYJMwAGCTYABgk5AAYJPAAGCT8ABglCAAYJRQAGCUgABglKAAYJxQAGCccABgnJAAYJywAGCc4ABgnPAAYJ0AAGCdEABgnSAAYJ1AAGCdYABgnXAAYJ2AAGCdoABgnbAAYKVgAGClgABgpaAAYKXAAGCl8ABgpgAAYKYQAGCmIABgpjAAYKZQAGCmcABgpoAAYKaQAGCmsABgpsAAYK5wAGCukABgrsAAYK7gAGCvEABgryAAYK8wAGCvQABgr1AAYK9wAGCvkABgr6AAYK+wAGCv0ABgr+AAYLFwAGCxgABgsZAAYLGwAGC5YABguYAAYLmgAGC5wABgufAAYLoAAGC6EABguiAAYLowAGC6UABgunAAYLqAAGC6kABgurAAYLrAAGDCcABgwpAAYMKwAGDC0ABgwwAAYMMQAGDDIABgwzAAYMNAAGDDYABgw4AAYMOQAGDDoABgw8AAYMPQAGDLgABgy6AAYMvAAGDL4ABgzBAAYMwgAGDMMABgzEAAYMxQAGDMcABgzJAAYMygAGDMsABgzNAAYMzgAGDUkABg1LAAYNTQAGDU8ABg1SAAYNUwAGDVQABg1VAAYNVgAGDVgABg1aAAYNWwAGDVwABg1eAAYNXwAGDdoABg3cAAYN3gAGDeAABg3jAAYN5AAGDeUABg3mAAYN5wAGDekABg3rAAYN7AAGDe0ABg3vAAYN8AAGDjkABg5dAAYOhAAGDqgABg6rAAYOrQAGDq8ABg6xAAYOswAGDrUABg62AAYOuQAGDtIABg7vAAYO8QAGDvMABg71AAYO9wAGDvkABg77AAYO/QAGDxoABg8dAAYPIAAGDyMABg8mAAYPKQAGDywABg8vAAYPMQAGD6wABg+uAAYPsAAGD7IABg+1AAYPtgAGD7cABg+4AAYPuQAGD7sABg+9AAYPvgAGD78ABg/BAAY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huwAGIb0ABiG+AAYhwQAGIdoABiH7AAYh/QAGIf8ABiIBAAYiAwAGIgUABiIHAAYiCQAGIgsABiIsAAYiLwAGIjIABiI1AAYiOAAGIjsABiI+AAYiQQAGIkQABiJGAAYiwQAGIsMABiLFAAYixwAGIsoABiLLAAYizAAGIs0ABiLOAAYi0AAGItIABiLTAAYi1AAGItYABiLXAAYjUgAGI1QABiNWAAYjWAAGI1sABiNcAAYjXQAGI14ABiNfAAYjYQAGI2MABiNkAAYjZQAGI2cABiNoAAYj4wAGI+UABiPoAAYj6gAGI+0ABiPuAAYj7wAGI/AABiPxAAYj8wAGI/UABiP2AAYj9wAGI/kABiP6AAYkEwAGJBQABiQVAAYkFwAGJJIABiSUAAYklgAGJJgABiSbAAYknAAGJJ0ABiSeAAYknwAGJKEABiSjAAYkpAAGJKUABiSnAAYkqAAGJSMABiUlAAYlJwAGJSkABiUsAAYlLQAGJS4ABiUvAAYlMAAGJTIABiU0AAYlNQAGJTYABiU4AAYlOQAGJbQABiW2AAYluAAGJboABiW9AAYlvgAGJb8ABiXAAAYlwQAGJcMABiXFAAYlxgAGJccABiXJAAYlygAGJkUABiZHAAYmSQAGJksABiZOAAYmTwAGJlAABiZRAAYmUgAGJlQABiZWAAYmVwAGJlgABiZaAAYmWwAGJtYABibYAAYm2gAGJtwABibfAAYm4AAGJuEABibiAAYm4wAGJuUABibnAAYm6AAGJukABibrAAYm7AAGJzUABidZAAYngAAGJ6QABienAAYnqQAGJ6sABietAAYnrwAGJ7EABieyAAYntQAGJ84ABifrAAYn7QAGJ+8ABifxAAYn8wAGJ/UABif3AAYn+QAGKBYABigZAAYoHAAGKB8ABigiAAYoJQAGKCgABigrAAYoLQAGKKgABiiqAAYorAAGKK4ABiixAAYosgAGKLMABii0AAYotQAGKLcABii5AAYougAGKLsABii9AAYovgAGKTkABik7AAYpPQAGKT8ABilCAAYpQwAGKUQABilFAAYpRgAGKUgABilKAAYpSwAGKUwABilOAAYpTwAGKcoABinMAAYpzgAGKdAABinTAAYp1AAGKdUABinWAAYp1wAGKdkABinbAAYp3AAGKd0ABinfAAYp4AAGKlsABipdAAY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FggAGRYQABkWGAAZFiQAGRYwABkWNAAZFkgAGRasABkWwAAZFsgAGRbcABkW6AAZFvAAGRgUABkYpAAZGUAAGRnQABkZ3AAZGeQAGRnsABkZ9AAZGfwAGRoEABkaCAAZGhQAGRp4ABkbDAAZGxQAGRscABkbJAAZGywAGRs0ABkbPAAZG0QAGRtMABkbVAAZG+gAGRv0ABkcAAAZHAwAGRwYABkcJAAZHDAAGRw8ABkcSAAZHFQAGRxcABkeSAAZHlAAGR5cABkeZAAZHnAAGR50ABkeeAAZHnwAGR6AABkeiAAZHpAAGR6UABkemAAZHqAAGR6kABke6AAZHuwAGR70ABkg4AAZIOgAGSDwABkg+AAZIQQAGSEIABkhDAAZIRAAGSEUABkhHAAZISQAGSEoABkhLAAZITQAGSE4ABkjJAAZIywAGSM4ABkjQAAZI0wAGSNQABkjVAAZI1gAGSNcABkjZAAZI2wAGSNwABkjdAAZI3wAGSOAABkjxAAZI8gAGSPQABklvAAZJcQAGSXMABkl1AAZJeAAGSXkABkl6AAZJewAGSXwABkl+AAZJgAAGSYEABkmCAAZJhAAGSYUABkoAAAZKAgAGSgUABkoHAAZKCgAGSgsABkoMAAZKDQAGSg4ABkoQAAZKEgAGShMABkoUAAZKFgAGShcABkooAAZKKQAGSisABkqmAAZKqAAGSqoABkqsAAZKrwAGSrAABkqxAAZKsgAGSrMABkq1AAZKtwAGSrgABkq5AAZKuwAGSrwABks3AAZLOQAGSzwABks+AAZLQQAGS0IABktDAAZLRAAGS0UABktHAAZLSQAGS0oABktLAAZLTQAGS04ABktnAAZLaAAGS2kABktrAAZL5gAGS+gABkvqAAZL7AAGS+8ABkvwAAZL8QAGS/IABkvzAAZL9QAGS/cABkv4AAZL+QAGS/sABkv8AAZMdwAGTHkABkx8AAZMfgAGTIEABkyCAAZMgwAGTIQABkyFAAZMhwAGTIkABkyKAAZMiwAGTI0ABkyOAAZMnAAGTLUABkzmAAZM6QAGTOwABkzvAAZM8gAGTPUABkz4AAZM+wAGTP4ABk0BAAZNBAAGTQcABk0KAAZNOwAGTT4ABk1BAAZNRAAGTUcABk1KAAZNTQAGTVAABk1TAAZNVgAGTVkABk1cAAZNXwAGTWEABk1vAAZNigAGTZwABk2zAAZNyQAGTdcABk3mAAZN+gAGTgUABk4SAAZOIQAGTioABk69AAZO4AAGTwAABk8gAAZPIgAGTyQABk8mAAZPKAAGTysABk8sAAZPLQAGTzAABk8xAAZPMwAGTzQABk83AAZPOgAGTzsABk88AAZPPwAGT0AABk9FAAZPXgAGT2cABk9pAAZPbAAGT3UABk94AAZPewAGT30ABk/GAAZP6gAGUBEABlA1AAZQOAAGUDoABlA8AAZQPgAGUEAABlBCAAZQQwAGUEYABlBfAAZQgAAGUIIABlCEAAZQhgAGUIgABlCKAAZQjAAGUI4ABlCQAAZQsQAGULQABlC3AAZQugAGUL0ABlDAAAZQwwAGUMYABlDJAAZQywAGUUYABlFIAAZRSgAGUUwABlFPAAZRUAAGUVEABlFSAAZRUwAGUVUABlFXAAZRWAAGUVkABlFbAAZRXAAGUdcABlHZAAZR2wAGUd0ABlHgAAZR4QAGUeIABlHjAAZR5AAGUeYABlHoAAZR6QAGUeoABlHsAAZR7QAGUmgABlJqAAZSbQAGUm8ABlJyAAZScwAGUnQABlJ1AAZSdgAGUngABlJ6AAZSewAGUnwABlJ+AAZSfwAGUpgABlKZAAZSmgAGUpwABlMXAAZTGQAGUxsABlMdAAZTIAAGUyEABlMiAAZTIwAGUyQABlMmAAZTKAAGUykABlMqAAZTLAAGUy0ABlOoAAZTqgAGU6wABlOuAAZTsQAGU7IABlOzAAZTtAAGU7UABlO3AAZTuQAGU7oABlO7AAZTvQAGU74ABlQ5AAZUOwAGVD0ABlQ/AAZUQgAGVEMABlREAAZURQAGVEYABlRIAAZUSgAGVEsABlRMAAZUTgAGVE8ABlTKAAZUzAAGVM4ABlTQAAZU0wAGVNQABlTVAAZU1gAGVNcABlTZAAZU2wAGVNwABlTdAAZU3wAGVOAABlVbAAZVXQAGVV8ABlVhAAZVZAAGVWUABlVmAAZVZwAGVWgABlVqAAZVbAAGVW0ABlVuAAZVcAAGVXEABlW6AAZV3gAGVgUABlYpAAZWLAAGVi8ABlYxAAZWMwAGVjUABlY3AAZWOAAGVjsABlZUAAZWcQAGVnQABlZ3AAZWegAGVn0ABlaAAAZWgwAGVoYABlajAAZWpgAGVqkABlasAAZWrwAGVrIABla1AAZWuAAGVroABlc1AAZXNwAGVzoABlc8AAZXPwAGV0AABldBAAZXQgAGV0MABldFAAZXSAAGV0kABldKAAZXTAAGV00ABlfIAAZXygAGV80ABlfPAAZX0gAGV9MABlfUAAZX1QAGV9YABlfYAAZX2wAGV9wABlfdAAZX3wAGV+AABlhbAAZYXQAGWGAABlhiAAZYZQAGWGYABlhnAAZYaAAGWGkABlhrAAZYbgAGWG8ABlhwAAZYcgAGWHMABljuAAZY8AAGWPMABlj1AAZY+AAGWPkABlj6AAZY+wAGWPwABlj+AAZZAQAGWQIABlkDAAZZBQAGWQYABlmpAAZZzQAGWfEABloRAAZaOAAGWl8ABlp/AAZapgAGWsoABlrtAAZbFAAGWzgABltcAAZbgAAGW6cABluoAAZbqgAGW6wABluvAAZbsQAGW7QABlu2AAZbuAAGW7sABlu9AAZbvwAGW8IABlvFAAZbxwAGW8kABlvLAAZbzgAGW9EABlvUAAZb2QAGW/IABlv3AAZb+QAGW/4ABlwBAAZcAwAGXEwABlxwAAZclwAGXLsABly+AAZcwAAGXMIABlzEAAZcxgAGXMgABlzJAAZczAAGXOUABl0KAAZdDAAGXQ4ABl0QAAZdEgAGXRQABl0WAAZdGAAGXRoABl0cAAZdQQAGXUQABl1HAAZdSgAGXU0ABl1QAAZdUwAGXVYABl1ZAAZdXAAGXV4ABl3ZAAZd2wAGXd4ABl3gAAZd4wAGXeQABl3lAAZd5gAGXecABl3pAAZd6wAGXewABl3tAAZd7wAGXfAABl4BAAZeAgAGXgQABl5/AAZegQAGXoMABl6FAAZeiAAGXokABl6KAAZeiwAGXowABl6OAAZekAAGXpEABl6SAAZelAAGXpUABl8QAAZfEgAGXxUABl8XAAZfGgAGXxsABl8cAAZfHQAGXx4ABl8gAAZfIgAGXyMABl8kAAZfJgAGXycABl84AAZfOQAGXzsABl+2AAZfuAAGX7oABl+8AAZfvwAGX8AABl/BAAZfwgAGX8MABl/FAAZfxwAGX8gABl/JAAZfywAGX8wABmBHAAZgSQAGYEwABmBOAAZgUQAGYFIABmBTAAZgVAAGYFUABmBXAAZgWQAGYFoABmBbAAZgXQAGYF4ABmBvAAZgcAAGYHIABmDtAAZg7wAGYPEABmDzAAZg9gAGYPcABmD4AAZg+QAGYPoABmD8AAZg/gAGYP8ABmEAAAZhAgAGYQMABmF+AAZhgAAGYYMABmGFAAZhiAAGYYkABmGKAAZhiwAGYYwABmGOAAZhkAAGYZEABmGSAAZhlAAGYZUABmGuAAZhrwAGYbAABmGyAAZiLQAGYi8ABmIxAAZiMwAGYjYABmI3AAZiOAAGYjkABmI6AAZiPAAGYj4ABmI/AAZiQAAGYkIABmJDAAZivgAGYsAABmLDAAZixQAGYsgABmLJAAZiygAGYssABmLMAAZizgAGYtAABmLRAAZi0gAGYtQABmLVAAZi4gAGYvsABmMUAAZjFwAGYxoABmMdAAZjIAAGYyMABmMmAAZjPwAGY0IABmNFAAZjSAAGY0sABmNOAAZjUQAGY1MABmNhAAZjdwAGY4AABmONAAZjowAGY7YABmRJAAZkbAAGZIwABmSsAAZkrgAGZLAABmSyAAZktAAGZLcABmS4AAZkuQAGZLwABmS9AAZkvwAGZMAABmTDAAZkxgAGZMcABmTIAAZkywAGZMwABmTRAAZk6gAGZPMABmT1AAZk+AAGZQEABmUEAAZlBwAGZQkABmVSAAZldgAGZZ0ABmXBAAZlxAAGZcYABmXIAAZlygAGZcwABmXOAAZlzwAGZdIABmXrAAZmDAAGZg4ABmYQAAZmEgAGZhQABmYWAAZmGAAGZhoABmYcAAZmPQAGZkAABmZDAAZmRgAGZkkABmZMAAZmTwAGZlIABmZVAAZmVwAGZtIABmbUAAZm1gAGZtgABmbbAAZm3AAGZt0ABmbeAAZm3wAGZuEABmbjAAZm5AAGZuUABmbnAAZm6AAGZ2MABmdlAAZnZwAGZ2kABmdsAAZnbQAGZ24ABmdvAAZncAAGZ3IABmd0AAZndQAGZ3YABmd4AAZneQAGZ/QABmf2AAZn+QAGZ/sABmf+AAZn/wAGaAAABmgBAAZoAgAGaAQABmgGAAZoBwAGaAgABmgKAAZoCwAGaCQABmglAAZoJgAGaCgABmijAAZopQAGaKcABmipAAZorAAGaK0ABmiuAAZorwAGaLAABmiyAAZotAAGaLUABmi2AAZouAAGaLkABmk0AAZpNgAGaTgABmk6AAZpPQAGaT4ABmk/AAZpQAAGaUEABmlDAAZpRQAGaUYABmlHAAZpSQAGaUoABmnFAAZpxwAGackABmnLAAZpzgAGac8ABmnQAAZp0QAGadIABmnUAAZp1gAGadcABmnYAAZp2gAGadsABmpWAAZqWAAGaloABmpcAAZqXwAGamAABmphAAZqYgAGamMABmplAAZqZwAGamgABmppAAZqawAGamwABmrnAAZq6QAGausABmrtAAZq8AAGavEABmryAAZq8wAGavQABmr2AAZq+AAGavkABmr6AAZq/AAGav0ABmtGAAZragAGa5EABmu1AAZruAAGa7sABmu9AAZrvwAGa8EABmvDAAZrxAAGa8cABmvgAAZr/QAGbAAABmwDAAZsBgAGbAkABmwMAAZsDwAGbBIABmwvAAZsMgAGbDUABmw4AAZsOwAGbD4ABmxBAAZsRAAGbEYABmzBAAZswwAGbMYABmzIAAZsywAGbMwABmzNAAZszgAGbM8ABmzRAAZs1AAGbNUABmzWAAZs2AAGbNkABm1UAAZtVgAGbVkABm1bAAZtXgAGbV8ABm1gAAZtYQAGbWIABm1kAAZtZwAGbWgABm1pAAZtawAGbWwABm3nAAZt6QAGbewABm3uAAZt8QAGbfIABm3zAAZt9AAGbfUABm33AAZt+gAGbfsABm38AAZt/gAGbf8ABm56AAZufAAGbn8ABm6BAAZuhAAGboUABm6GAAZuhwAGbogABm6KAAZujQAGbo4ABm6PAAZukQAGbpIABm8NAAZvDwAGbxEABm8TAAZvFgAGbxcABm8YAAZvGQAGbxoABm8cAAZvHwAGbyAABm8hAAZvIwAGbyQABm+fAAZvoQAGb6MABm+lAAZvqAAGb6kABm+qAAZvqwAGb6wABm+uAAZvsQAGb7IABm+zAAZvtQAGb7YABnAxAAZwMwAGcDYABnA4AAZwOwAGcDwABnA9AAZwPgAGcD8ABnBBAAZwRAAGcEUABnBGAAZwSAAGcEkABnDcAAZw/wAGcR8ABnE/AAZxQQAGcUMABnFFAAZxRwAGcUoABnFLAAZxTAAGcU8ABnFQAAZxUgAGcVMABnFVAAZxWAAGcVkABnFaAAZxXQAGcV4ABnFjAAZxfAAGcYUABnGHAAZxiQAGcZIABnGVAAZxmAAGcZoABnHjAAZyBwAGci4ABnJSAAZyVQAGclcABnJZAAZyWwAGcl0ABnJfAAZyYAAGcmMABnJ8AAZynQAGcp8ABnKhAAZyowAGcqUABnKnAAZyqQAGcqsABnKtAAZyzgAGctEABnLUAAZy1wAGctoABnLdAAZy4AAGcuMABnLmAAZy6AAGc2MABnNlAAZzZwAGc2kABnNsAAZzbQAGc24ABnNvAAZzcAAGc3IABnN0AAZzdQAGc3YABnN4AAZzeQAGc/QABnP2AAZz+AAGc/oABnP9AAZz/gAGc/8ABnQAAAZ0AQAGdAMABnQFAAZ0BgAGdAcABnQJAAZ0CgAGdIUABnSHAAZ0igAGdIwABnSPAAZ0kAAGdJEABnSSAAZ0kwAGdJUABnSXAAZ0mAAGdJkABnSbAAZ0nAAGdLUABnS2AAZ0twAGdLkABnU0AAZ1NgAGdTgABnU6AAZ1PQAGdT4ABnU/AAZ1QAAGdUEABnVDAAZ1RQAGdUYABnVHAAZ1SQAGdUoABnXFAAZ1xwAGdckABnXLAAZ1zgAGdc8ABnXQAAZ10QAGddIABnXUAAZ11gAGddcABnXYAAZ12gAGddsABnZWAAZ2WAAGdloABnZcAAZ2XwAGdmAABnZhAAZ2YgAGdmMABnZlAAZ2ZwAGdmgABnZpAAZ2awAGdmwABnbnAAZ26QAGdusABnbtAAZ28AAGdvEABnbyAAZ28wAGdvQABnb2AAZ2+AAGdvkABnb6AAZ2/AAGdv0ABnd4AAZ3egAGd3wABnd+AAZ3gQAGd4IABneDAAZ3hAAGd4UABneHAAZ3iQAGd4oABneLAAZ3jQAGd44ABnfXAAZ3+wAGeCIABnhGAAZ4SQAGeEsABnhNAAZ4TwAGeFEABnhTAAZ4VAAGeFcABnhwAAZ4jQAGeI8ABniRAAZ4kwAGeJUABniXAAZ4mQAGeJsABni4AAZ4uwAGeL4ABnjBAAZ4xAAGeMcABnjKAAZ4zQAGeM8ABnlKAAZ5TAAGeU4ABnlQAAZ5UwAGeVQABnlVAAZ5VgAGeVcABnlZAAZ5WwAGeVwABnldAAZ5XwAGeWAABnnbAAZ53QAGed8ABnnhAAZ55AAGeeUABnnmAAZ55wAGeegABnnqAAZ57AAGee0ABnnuAAZ58AAGefEABnpsAAZ6bgAGenAABnpyAAZ6dQAGenYABnp3AAZ6eAAGenkABnp7AAZ6fQAGen4ABnp/AAZ6gQAGeoIABnr9AAZ6/wAGewEABnsDAAZ7BgAGewcABnsIAAZ7CQAGewoABnsMAAZ7DgAGew8ABnsQAAZ7EgAGexMABnuOAAZ7kAAGe5IABnuUAAZ7lwAGe5gABnuZAAZ7mgAGe5sABnudAAZ7nwAGe6AABnuhAAZ7owAGe6QABnwfAAZ8IQAGfCMABnwlAAZ8KAAGfCkABnwqAAZ8KwAGfCwABnwuAAZ8MAAGfDEABnwyAAZ8NAAGfDUABnywAAZ8sgAGfLQABny2AAZ8uQAGfLoABny7AAZ8vAAGfL0ABny/AAZ8wQAGfMIABnzDAAZ8xQAGfMYABn1ZAAZ9fAAGfZwABn28AAZ9vgAGfcAABn3CAAZ9xAAGfccABn3IAAZ9yQAGfcwABn3NAAZ9zwAGfdAABn3SAAZ91QAGfdYABn3XAAZ92gAGfdsABn3kAAZ9/QAGfgYABn4IAAZ+CgAGfhMABn4WAAZ+GQAGfhsABn5kAAZ+iAAGfq8ABn7TAAZ+1gAGftgABn7aAAZ+3AAGft4ABn7gAAZ+4QAGfuQABn79AAZ/HgAGfyAABn8iAAZ/JAAGfyYABn8oAAZ/KgAGfywABn8uAAZ/TwAGf1IABn9VAAZ/WAAGf1sABn9eAAZ/YQAGf2QABn9nAAZ/aQAGf+QABn/mAAZ/6AAGf+oABn/tAAZ/7gAGf+8ABn/wAAZ/8QAGf/MABn/1AAZ/9gAGf/cABn/5AAZ/+gAGgHUABoB3AAaAeQAGgHsABoB+AAaAfwAGgIAABoCBAAaAggAGgIQABoCGAAaAhwAGgIgABoCKAAaAiwAGgQYABoEIAAaBCwAGgQ0ABoEQAAaBEQAGgRIABoETAAaBFAAGgRYABoEYAAaBGQAGgRoABoEcAAaBHQAGgTYABoE3AAaBOAAGgToABoG1AAaBtwAGgbkABoG7AAaBvgAGgb8ABoHAAAaBwQAGgcIABoHEAAaBxgAGgccABoHIAAaBygAGgcsABoJGAAaCSAAGgkoABoJMAAaCTwAGglAABoJRAAaCUgAGglMABoJVAAaCVwAGglgABoJZAAaCWwAGglwABoLXAAaC2QAGgtsABoLdAAaC4AAGguEABoLiAAaC4wAGguQABoLmAAaC6AAGgukABoLqAAaC7AAGgu0ABoNoAAaDagAGg2wABoNuAAaDcQAGg3IABoNzAAaDdAAGg3UABoN3AAaDeQAGg3oABoN7AAaDfQAGg34ABoP5AAaD+wAGg/0ABoP/AAaEAgAGhAMABoQEAAaEBQAGhAYABoQIAAaECgAGhAsABoQMAAaEDgAGhA8ABoRYAAaEfAAGhKMABoTHAAaEygAGhMwABoTOAAaE0AAGhNIABoTUAAaE1QAGhNgABoTxAAaFDgAGhRAABoUSAAaFFAAGhRYABoUYAAaFGgAGhRwABoU5AAaFPAAGhT8ABoVCAAaFRQAGhUgABoVLAAaFTgAGhVAABoXLAAaFzQAGhc8ABoXRAAaF1AAGhdUABoXWAAaF1wAGhdgABoXaAAaF3AAGhd0ABoXeAAaF4AAGheEABoZcAAaGXgAGhmAABoZiAAaGZQAGhmYABoZnAAaGaAAGhmkABoZrAAaGbQAGhm4ABoZvAAaGcQAGhnIABobtAAaG7wAGhvEABobzAAaG9gAGhvcABob4AAaG+QAGhvoABob8AAaG/gAGhv8ABocAAAaHAgAGhwMABod+AAaHgAAGh4IABoeEAAaHhwAGh4gABoeJAAaHigAGh4sABoeNAAaHjwAGh5AABoeRAAaHkwAGh5QABogPAAaIEQAGiBMABogVAAaIGAAGiBkABogaAAaIGwAGiBwABogeAAaIIAAGiCEABogiAAaIJAAGiCUABoigAAaIogAGiKUABoinAAaIqgAGiKsABoisAAaIrQAGiK4ABoiwAAaIsgAGiLMABoi0AAaItgAGiLcABojGAAaJQQAGiUMABolFAAaJRwAGiUoABolLAAaJTAAGiU0ABolOAAaJUAAGiVIABolTAAaJVAAGiVYABolXAAaJ6gAGig0ABootAAaKTQAGik8ABopRAAaKUwAGilUABopYAAaKWQAGiloABopdAAaKXgAGimAABophAAaKZAAGimcABopoAAaKaQAGimwABoptAAaKcgAGiosABoqUAAaKlgAGipkABoqiAAaKpQAGiqgABoqqAAaK8wAGixcABos+AAaLYgAGi2UABotnAAaLaQAGi2sABottAAaLbwAGi3AABotzAAaLjAAGi60ABouvAAaLsQAGi7MABou1AAaLtwAGi7kABou7AAaLvQAGi94ABovhAAaL5AAGi+cABovqAAaL7QAGi/AABovzAAaL9gAGi/gABoxzAAaMdQAGjHcABox5AAaMfAAGjH0ABox+AAaMfwAGjIAABoyCAAaMhAAGjIUABoyGAAaMiAAGjIkABo0EAAaNBgAGjQgABo0KAAaNDQAGjQ4ABo0PAAaNEAAGjREABo0TAAaNFQAGjRYABo0XAAaNGQAGjRoABo2VAAaNlwAGjZoABo2cAAaNnwAGjaAABo2hAAaNogAGjaMABo2lAAaNpwAGjagABo2pAAaNqwAGjawABo3FAAaNxgAGjccABo3JAAaORAAGjkYABo5IAAaOSgAGjk0ABo5OAAaOTwAGjlAABo5RAAaOUwAGjlUABo5WAAaOVwAGjlkABo5aAAaO1QAGjtcABo7ZAAaO2wAGjt4ABo7fAAaO4AAGjuEABo7iAAaO5AAGjuYABo7nAAaO6AAGjuoABo7rAAaPZgAGj2gABo9qAAaPbAAGj28ABo9wAAaPcQAGj3IABo9zAAaPdQAGj3cABo94AAaPeQAGj3sABo98AAaP9wAGj/kABo/7AAaP/QAGkAAABpABAAaQAgAGkAMABpAEAAaQBgAGkAgABpAJAAaQCgAGkAwABpANAAaQiAAGkIoABpCMAAaQjgAGkJEABpCSAAaQkwAGkJQABpCVAAaQlwAGkJkABpCaAAaQmwAGkJ0ABpCeAAaQ5wAGkQsABpEyAAaRVgAGkVkABpFcAAaRXgAGkWAABpFiAAaRZAAGkWUABpFoAAaRgQAGkZ4ABpGhAAaRpAAGkacABpGqAAaRrQAGkbAABpGzAAaR0AAGkdMABpHWAAaR2QAGkdwABpHfAAaR4gAGkeUABpHnAAaSYgAGkmQABpJnAAaSaQAGkmwABpJtAAaSbgAGkm8ABpJwAAaScgAGknUABpJ2AAaSdwAGknkABpJ6AAaS9QAGkvcABpL6AAaS/AAGkv8ABpMAAAaTAQAGkwIABpMDAAaTBQAGkwgABpMJAAaTCgAGkwwABpMNAAaTiAAGk4oABpONAAaTjwAGk5IABpOTAAaTlAAGk5UABpOWAAaTmAAGk5sABpOcAAaTnQAGk58ABpOgAAaUGwAGlB0ABpQgAAaUIgAGlCUABpQmAAaUJwAGlCgABpQpAAaUKwAGlC4ABpQvAAaUMAAGlDIABpQzAAaUrgAGlLAABpSyAAaUtAAGlLcABpS4AAaUuQAGlLoABpS7AAaUvQAGlMAABpTBAAaUwgAGlMQABpTFAAaVQAAGlUIABpVEAAaVRgAGlUkABpVKAAaVSwAGlUwABpVNAAaVTwAGlVIABpVTAAaVVAAGlVYABpVXAAaV0gAGldQABpXXAAaV2QAGldwABpXdAAaV3gAGld8ABpXgAAaV4gAGleUABpXmAAaV5wAGlekABpXqAAaWfQAGlqAABpbAAAaW4AAGluIABpbkAAaW5gAGlugABpbrAAaW7AAGlu0ABpbwAAaW8QAGlvMABpb0AAaW9wAGlvoABpb7AAaW/AAGlv8ABpcAAAaXCQAGlyIABpcrAAaXLQAGlzAABpc5AAaXPAAGlz8ABpdBAAaXigAGl64ABpfVAAaX+QAGl/wABpf+AAaYAAAGmAIABpgEAAaYBgAGmAcABpgKAAaYIwAGmEQABphGAAaYSAAGmEoABphMAAaYTgAGmFAABphSAAaYVAAGmHUABph4AAaYewAGmH4ABpiBAAaYhAAGmIcABpiKAAaYjQAGmI8ABpkKAAaZDAAGmQ4ABpkQAAaZEwAGmRQABpkVAAaZFgAGmRcABpkZAAaZGwAGmRwABpkdAAaZHwAGmSAABpmbAAaZnQAGmZ8ABpmhAAaZpAAGmaUABpmmAAaZpwAGmagABpmqAAaZrAAGma0ABpmuAAaZsAAGmbEABposAAaaLgAGmjEABpozAAaaNgAGmjcABpo4AAaaOQAGmjoABpo8AAaaPgAGmj8ABppAAAaaQgAGmkMABppcAAaaXQAGml4ABppgAAaa2wAGmt0ABprfAAaa4QAGmuQABprlAAaa5gAGmucABproAAaa6gAGmuwABprtAAaa7gAGmvAABprxAAabbAAGm24ABptwAAabcgAGm3UABpt2AAabdwAGm3gABpt5AAabewAGm30ABpt+AAabfwAGm4EABpuCAAab/QAGm/8ABpwBAAacAwAGnAYABpwHAAacCAAGnAkABpwKAAacDAAGnA4ABpwPAAacEAAGnBIABpwTAAacjgAGnJAABpySAAaclAAGnJcABpyYAAacmQAGnJoABpybAAacnQAGnJ8ABpygAAacoQAGnKMABpykAAadHwAGnSEABp0jAAadJQAGnSgABp0pAAadKgAGnSsABp0sAAadLgAGnTAABp0xAAadMgAGnTQABp01AAadfgAGnaIABp3JAAad7QAGnfAABp3zAAad9QAGnfcABp35AAad+wAGnfwABp3/AAaeGAAGnjUABp44AAaeOwAGnj4ABp5BAAaeRAAGnkcABp5KAAaeZwAGnmoABp5tAAaecAAGnnMABp52AAaeeQAGnnwABp5+AAae+QAGnvsABp7+AAafAAAGnwMABp8EAAafBQAGnwYABp8HAAafCQAGnwwABp8NAAafDgAGnxAABp8RAAafjAAGn44ABp+RAAafkwAGn5YABp+XAAafmAAGn5kABp+aAAafnAAGn58ABp+gAAafoQAGn6MABp+kAAagHwAGoCEABqAkAAagJgAGoCkABqAqAAagKwAGoCwABqAtAAagLwAGoDIABqAzAAagNAAGoDYABqA3AAagsgAGoLQABqC3AAaguQAGoLwABqC9AAagvgAGoL8ABqDAAAagwgAGoMUABqDGAAagxwAGoMkABqDKAAahRQAGoUcABqFJAAahSwAGoU4ABqFPAAahUAAGoVEABqFSAAahVAAGoVcABqFYAAahWQAGoVsABqFcAAah1wAGodkABqHbAAah3QAGoeAABqHhAAah4gAGoeMABqHkAAah5gAGoekABqHqAAah6wAGoe0ABqHuAAaiaQAGomsABqJuAAaicAAGonMABqJ0AAaidQAGonYABqJ3AAaieQAGonwABqJ9AAaifgAGooAABqKBAAajFAAGozcABqNXAAajdwAGo3kABqN7AAajfQAGo38ABqOCAAajgwAGo4QABqOHAAajiAAGo4oABqOLAAajjgAGo5EABqOSAAajkwAGo5YABqOXAAajnAAGo7UABqO+AAajwAAGo8MABqPMAAajzwAGo9IABqPUAAakHQAGpEEABqRoAAakjAAGpI8ABqSRAAakkwAGpJUABqSXAAakmQAGpJoABqSdAAaktgAGpNcABqTZAAak2wAGpN0ABqTfAAak4QAGpOMABqTlAAak5wAGpQgABqULAAalDgAGpREABqUUAAalFwAGpRoABqUdAAalIAAGpSIABqWdAAalnwAGpaEABqWjAAalpgAGpacABqWoAAalqQAGpaoABqWsAAalrgAGpa8ABqWwAAalsgAGpbMABqYuAAamMAAGpjIABqY0AAamNwAGpjgABqY5AAamOgAGpjsABqY9AAamPwAGpkAABqZBAAamQwAGpkQABqa/AAamwQAGpsQABqbGAAamyQAGpsoABqbLAAamzAAGps0ABqbPAAam0QAGptIABqbTAAam1QAGptYABqbvAAam8AAGpvEABqbzAAanbgAGp3AABqdyAAandAAGp3cABqd4AAaneQAGp3oABqd7AAanfQAGp38ABqeAAAangQAGp4MABqeEAAan/wAGqAEABqgDAAaoBQAGqAgABqgJAAaoCgAGqAsABqgMAAaoDgAGqBAABqgRAAaoEgAGqBQABqgVAAaokAAGqJIABqiUAAaolgAGqJkABqiaAAaomwAGqJwABqidAAaonwAGqKEABqiiAAaoowAGqKUABqimAAapIQAGqSMABqklAAapJwAGqSoABqkrAAapLAAGqS0ABqkuAAapMAAGqTIABqkzAAapNAAGqTYABqk3AAapsgAGqbQABqm2AAapuAAGqbsABqm8AAapvQAGqb4ABqm/AAapwQAGqcMABqnEAAapxQAGqccABqnIAAaqEQAGqjUABqpcAAaqgAAGqoMABqqGAAaqiAAGqooABqqMAAaqjgAGqo8ABqqSAAaqqwAGqsgABqrLAAaqzgAGqtEABqrUAAaq1wAGqtoABqrdAAaq+gAGqv0ABqsAAAarAwAGqwYABqsJAAarDAAGqw8ABqsRAAarjAAGq44ABquRAAarkwAGq5YABquXAAarmAAGq5kABquaAAarnAAGq58ABqugAAaroQAGq6MABqukAAasHwAGrCEABqwkAAasJgAGrCkABqwqAAasKwAGrCwABqwtAAasLwAGrDIABqwzAAasNAAGrDYABqw3AAassgAGrLQABqy3AAasuQAGrLwABqy9AAasvgAGrL8ABqzAAAaswgAGrMUABqzGAAasxwAGrMkABqzKAAatRQAGrUcABq1KAAatTAAGrU8ABq1QAAatUQAGrVIABq1TAAatVQAGrVgABq1ZAAatWgAGrVwABq1dAAat4AAGrgQABq4oAAauSwAGrnIABq6SAAauuQAGruAABq8AAAavJAAGr0gABq9KAAavTQAGr08ABq9RAAavUwAGr1YABq9ZAAavWwAGr10ABq9gAAavYgAGr2QABq9nAAavagAGr2sABq9wAAaviQAGr44ABq+QAAavlQAGr5gABq+aAAav4wAGsAcABrAuAAawUgAGsFUABrBXAAawWQAGsFsABrBdAAawXwAGsGAABrBjAAawfAAGsKEABrCjAAawpQAGsKcABrCpAAawqwAGsK0ABrCvAAawsQAGsLMABrDYAAaw2wAGsN4ABrDhAAaw5AAGsOcABrDqAAaw7QAGsPAABrDzAAaw9QAGsXAABrFyAAaxdQAGsXcABrF6AAaxewAGsXwABrF9AAaxfgAGsYAABrGCAAaxgwAGsYQABrGGAAaxhwAGsZgABrGZAAaxmwAGshYABrIYAAayGgAGshwABrIfAAayIAAGsiEABrIiAAayIwAGsiUABrInAAayKAAGsikABrIrAAayLAAGsqcABrKpAAayrAAGsq4ABrKxAAaysgAGsrMABrK0AAaytQAGsrcABrK5AAayugAGsrsABrK9AAayvgAGss8ABrLQAAay0gAGs00ABrNPAAazUQAGs1MABrNWAAazVwAGs1gABrNZAAazWgAGs1wABrNeAAazXwAGs2AABrNiAAazYwAGs94ABrPgAAaz4wAGs+UABrPoAAaz6QAGs+oABrPrAAaz7AAGs+4ABrPwAAaz8QAGs/IABrP0AAaz9QAGtAYABrQHAAa0CQAGtIQABrSGAAa0iAAGtIoABrSNAAa0jgAGtI8ABrSQAAa0kQAGtJMABrSVAAa0lgAGtJcABrSZAAa0mgAGtRUABrUXAAa1GgAGtRwABrUfAAa1IAAGtSEABrUiAAa1IwAGtSUABrUnAAa1KAAGtSkABrUrAAa1LAAGtUUABrVGAAa1RwAGtUkABrXEAAa1xgAGtcgABrXKAAa1zQAGtc4ABrXPAAa10AAGtdEABrXTAAa11QAGtdYABrXXAAa12QAGtdoABrZVAAa2VwAGtloABrZcAAa2XwAGtmAABrZhAAa2YgAGtmMABrZlAAa2ZwAGtmgABrZpAAa2awAGtmwABraBAAa2mgAGtqsABrauAAa2sQAGtrQABra3AAa2yAAGtssABrbOAAa20QAGttQABrbWAAa23wAGtuwABrb7AAa3GwAGt64ABrfRAAa38QAGuBEABrgTAAa4FQAGuBcABrgZAAa4HAAGuB0ABrgeAAa4IQAGuCIABrgkAAa4JQAGuCcABrgqAAa4KwAGuCwABrgvAAa4MAAGuDUABrhOAAa4VwAGuFkABrhbAAa4ZAAGuGcABrhqAAa4bAAGuLUABrjZAAa5AAAGuSQABrknAAa5KQAGuSsABrktAAa5LwAGuTEABrkyAAa5NQAGuU4ABrlvAAa5cQAGuXMABrl1AAa5dwAGuXkABrl7AAa5fQAGuX8ABrmgAAa5owAGuaYABrmpAAa5rAAGua8ABrmyAAa5tQAGubgABrm6AAa6NQAGujcABro5AAa6OwAGuj4ABro/AAa6QAAGukEABrpCAAa6RAAGukYABrpHAAa6SAAGukoABrpLAAa6xgAGusgABrrKAAa6zAAGus8ABrrQAAa60QAGutIABrrTAAa61QAGutcABrrYAAa62QAGutsABrrcAAa7VwAGu1kABrtcAAa7XgAGu2EABrtiAAa7YwAGu2QABrtlAAa7ZwAGu2kABrtqAAa7awAGu20ABrtuAAa7hwAGu4gABruJAAa7iwAGvAYABrwIAAa8CgAGvAwABrwPAAa8EAAGvBEABrwSAAa8EwAGvBUABrwXAAa8GAAGvBkABrwbAAa8HAAGvJcABryZAAa8mwAGvJ0ABrygAAa8oQAGvKIABryjAAa8pAAGvKYABryoAAa8qQAGvKoABrysAAa8rQAGvSgABr0qAAa9LAAGvS4ABr0xAAa9MgAGvTMABr00AAa9NQAGvTcABr05AAa9OgAGvTsABr09AAa9PgAGvbkABr27AAa9vQAGvb8ABr3CAAa9wwAGvcQABr3FAAa9xgAGvcgABr3KAAa9ywAGvcwABr3OAAa9zwAGvkoABr5MAAa+TgAGvlAABr5TAAa+VAAGvlUABr5WAAa+VwAGvlkABr5bAAa+XAAGvl0ABr5fAAa+YAAGvqkABr7NAAa+9AAGvxgABr8bAAa/HQAGvx8ABr8hAAa/IwAGvyUABr8mAAa/KQAGv0IABr9fAAa/YQAGv2MABr9lAAa/ZwAGv2kABr9rAAa/bQAGv4oABr+NAAa/kAAGv5MABr+WAAa/mQAGv5wABr+fAAa/oQAGwBwABsAeAAbAIAAGwCIABsAlAAbAJgAGwCcABsAoAAbAKQAGwCsABsAtAAbALgAGwC8ABsAxAAbAMgAGwK0ABsCvAAbAsQAGwLMABsC2AAbAtwAGwLgABsC5AAbAugAGwLwABsC+AAbAvwAGwMAABsDCAAbAwwAGwT4ABsFAAAbBQgAGwUQABsFHAAbBSAAGwUkABsFKAAbBSwAGwU0ABsFPAAbBUAAGwVEABsFTAAbBVAAGwc8ABsHRAAbB1AAGwdYABsHZAAbB2gAGwdsABsHcAAbB3QAGwd8ABsHhAAbB4gAGweMABsHlAAbB5gAGwmEABsJjAAbCZQAGwmcABsJqAAbCawAGwmwABsJtAAbCbgAGwnAABsJyAAbCcwAGwnQABsJ2AAbCdwAGwvIABsL0AAbC9gAGwvgABsL7AAbC/AAGwv0ABsL+AAbC/wAGwwEABsMDAAbDBAAGwwUABsMHAAbDCAAGw4MABsOFAAbDhwAGw4kABsOMAAbDjQAGw44ABsOPAAbDkAAGw5IABsOUAAbDlQAGw5YABsOYAAbDmQAGxCwABsRPAAbEbwAGxI8ABsSRAAbEkwAGxJUABsSXAAbEmgAGxJsABsScAAbEnwAGxKAABsSiAAbEowAGxKYABsSpAAbEqgAGxKsABsSuAAbErwAGxLQABsTNAAbE1gAGxNgABsTbAAbE5AAGxOcABsTqAAbE7AAGxTUABsVZAAbFgAAGxaQABsWnAAbFqQAGxasABsWtAAbFrwAGxbEABsWyAAbFtQAGxc4ABsXvAAbF8QAGxfMABsX1AAbF9wAGxfkABsX7AAbF/QAGxf8ABsYgAAbGIwAGxiYABsYpAAbGLAAGxi8ABsYyAAbGNQAGxjgABsY6AAbGtQAGxrcABsa5AAbGuwAGxr4ABsa/AAbGwAAGxsEABsbCAAbGxAAGxsYABsbHAAbGyAAGxsoABsbLAAbHRgAGx0gABsdKAAbHTAAGx08ABsdQAAbHUQAGx1IABsdTAAbHVQAGx1cABsdYAAbHWQAGx1sABsdcAAbH1wAGx9kABsfcAAbH3gAGx+EABsfiAAbH4wAGx+QABsflAAbH5wAGx+kABsfqAAbH6wAGx+0ABsfuAAbIBwAGyAgABsgJAAbICwAGyIYABsiIAAbIigAGyIwABsiPAAbIkAAGyJEABsiSAAbIkwAGyJUABsiXAAbImAAGyJkABsibAAbInAAGyRcABskZAAbJGwAGyR0ABskgAAbJIQAGySIABskjAAbJJAAGySYABskoAAbJKQAGySoABsksAAbJLQAGyagABsmqAAbJrAAGya4ABsmxAAbJsgAGybMABsm0AAbJtQAGybcABsm5AAbJugAGybsABsm9AAbJvgAGyjkABso7AAbKPQAGyj8ABspCAAbKQwAGykQABspFAAbKRgAGykgABspKAAbKSwAGykwABspOAAbKTwAGysoABsrMAAbKzgAGytAABsrTAAbK1AAGytUABsrWAAbK1wAGytkABsrbAAbK3AAGyt0ABsrfAAbK4AAGyykABstNAAbLdAAGy5gABsubAAbLngAGy6AABsuiAAbLpAAGy6YABsunAAbLqgAGy8MABsvgAAbL4wAGy+YABsvpAAbL7AAGy+8ABsvyAAbL9QAGzBIABswVAAbMGAAGzBsABsweAAbMIQAGzCQABswnAAbMKQAGzKQABsymAAbMqQAGzKsABsyuAAbMrwAGzLAABsyxAAbMsgAGzLQABsy3AAbMuAAGzLkABsy7AAbMvAAGzTcABs05AAbNPAAGzT4ABs1BAAbNQgAGzUMABs1EAAbNRQAGzUcABs1KAAbNSwAGzUwABs1OAAbNTwAGzcoABs3MAAbNzwAGzdEABs3UAAbN1QAGzdYABs3XAAbN2AAGzdoABs3dAAbN3gAGzd8ABs3hAAbN4gAGzl0ABs5fAAbOYgAGzmQABs5nAAbOaAAGzmkABs5qAAbOawAGzm0ABs5wAAbOcQAGznIABs50AAbOdQAGzvAABs7yAAbO9AAGzvYABs75AAbO+gAGzvsABs78AAbO/QAGzv8ABs8CAAbPAwAGzwQABs8GAAbPBwAGz4IABs+EAAbPhgAGz4gABs+LAAbPjAAGz40ABs+OAAbPjwAGz5EABs+UAAbPlQAGz5YABs+YAAbPmQAG0BQABtAWAAbQGQAG0BsABtAeAAbQHwAG0CAABtAhAAbQIgAG0CQABtAnAAbQKAAG0CkABtArAAbQLAAG0L8ABtDiAAbRAgAG0SIABtEkAAbRJgAG0SgABtEqAAbRLQAG0S4ABtEvAAbRMgAG0TMABtE1AAbRNgAG0TgABtE7AAbRPAAG0T0ABtFAAAbRQQAG0UYABtFfAAbRaAAG0WoABtFsAAbRdQAG0XgABtF7AAbRfQAG0cYABtHqAAbSEQAG0jUABtI4AAbSOgAG0jwABtI+AAbSQAAG0kIABtJDAAbSRgAG0l8ABtKAAAbSggAG0oQABtKGAAbSiAAG0ooABtKMAAbSjgAG0pAABtKxAAbStAAG0rcABtK6AAbSvQAG0sAABtLDAAbSxgAG0skABtLLAAbTRgAG00gABtNKAAbTTAAG008ABtNQAAbTUQAG01IABtNTAAbTVQAG01cABtNYAAbTWQAG01sABtNcAAbT1wAG09kABtPbAAbT3QAG0+AABtPhAAbT4gAG0+MABtPkAAbT5gAG0+gABtPpAAbT6gAG0+wABtPtAAbUaAAG1GoABtRtAAbUbwAG1HIABtRzAAbUdAAG1HUABtR2AAbUeAAG1HoABtR7AAbUfAAG1H4ABtR/AAbUmAAG1JkABtSaAAbUnAAG1RcABtUZAAbVGwAG1R0ABtUgAAbVIQAG1SIABtUjAAbVJAAG1SYABtUoAAbVKQAG1SoABtUsAAbVLQAG1agABtWqAAbVrAAG1a4ABtWxAAbVsgAG1bMABtW0AAbVtQAG1bcABtW5AAbVugAG1bsABtW9AAbVvgAG1jkABtY7AAbWPQAG1j8ABtZCAAbWQwAG1kQABtZFAAbWRgAG1kgABtZKAAbWSwAG1kwABtZOAAbWTwAG1soABtbMAAbWzgAG1tAABtbTAAbW1AAG1tUABtbWAAbW1wAG1tkABtbbAAbW3AAG1t0ABtbfAAbW4AAG11sABtddAAbXXwAG12EABtdkAAbXZQAG12YABtdnAAbXaAAG12oABtdsAAbXbQAG124ABtdwAAbXcQAG17oABtfeAAbYBQAG2CkABtgsAAbYLgAG2DAABtgyAAbYNAAG2DYABtg3AAbYOgAG2FMABthwAAbYcgAG2HQABth2AAbYeAAG2HoABth8AAbYfgAG2JsABtieAAbYoQAG2KQABtinAAbYqgAG2K0ABtiwAAbYsgAG2S0ABtkvAAbZMQAG2TMABtk2AAbZNwAG2TgABtk5AAbZOgAG2TwABtk+AAbZPwAG2UAABtlCAAbZQwAG2b4ABtnAAAbZwgAG2cQABtnHAAbZyAAG2ckABtnKAAbZywAG2c0ABtnPAAbZ0AAG2dEABtnTAAbZ1AAG2k8ABtpRAAbaUwAG2lUABtpYAAbaWQAG2loABtpbAAbaXAAG2l4ABtpgAAbaYQAG2mIABtpkAAbaZQAG2uAABtriAAba5AAG2uYABtrpAAba6gAG2usABtrsAAba7QAG2u8ABtrxAAba8gAG2vMABtr1AAba9gAG23EABttzAAbbdQAG23cABtt6AAbbewAG23wABtt9AAbbfgAG24AABtuCAAbbgwAG24QABtuGAAbbhwAG3AIABtwEAAbcBwAG3AkABtwMAAbcDQAG3A4ABtwPAAbcEAAG3BIABtwUAAbcFQAG3BYABtwYAAbcGQAG3DgABtyzAAbctQAG3LcABty5AAbcvAAG3L0ABty+AAbcvwAG3MAABtzCAAbcxAAG3MUABtzGAAbcyAAG3MkABt1cAAbdfwAG3Z8ABt2/AAbdwQAG3cMABt3FAAbdxwAG3coABt3LAAbdzAAG3c8ABt3QAAbd0gAG3dMABt3VAAbd2AAG3dkABt3aAAbd3QAG3d4ABt3jAAbd/AAG3gUABt4HAAbeCQAG3hIABt4VAAbeGAAG3hoABt5jAAbehwAG3q4ABt7SAAbe1QAG3tcABt7ZAAbe2wAG3t0ABt7fAAbe4AAG3uMABt78AAbfHQAG3x8ABt8hAAbfIwAG3yUABt8nAAbfKQAG3ysABt8tAAbfTgAG31EABt9UAAbfVwAG31oABt9dAAbfYAAG32MABt9mAAbfaAAG3+MABt/lAAbf5wAG3+kABt/sAAbf7QAG3+4ABt/vAAbf8AAG3/IABt/0AAbf9QAG3/YABt/4AAbf+QAG4HQABuB2AAbgeAAG4HoABuB9AAbgfgAG4H8ABuCAAAbggQAG4IMABuCFAAbghgAG4IcABuCJAAbgigAG4QUABuEHAAbhCgAG4QwABuEPAAbhEAAG4REABuESAAbhEwAG4RUABuEXAAbhGAAG4RkABuEbAAbhHAAG4TUABuE2AAbhNwAG4TkABuG0AAbhtgAG4bgABuG6AAbhvQAG4b4ABuG/AAbhwAAG4cEABuHDAAbhxQAG4cYABuHHAAbhyQAG4coABuJFAAbiRwAG4kkABuJLAAbiTgAG4k8ABuJQAAbiUQAG4lIABuJUAAbiVgAG4lcABuJYAAbiWgAG4lsABuLWAAbi2AAG4toABuLcAAbi3wAG4uAABuLhAAbi4gAG4uMABuLlAAbi5wAG4ugABuLpAAbi6wAG4uwABuNnAAbjaQAG42sABuNtAAbjcAAG43EABuNyAAbjcwAG43QABuN2AAbjeAAG43kABuN6AAbjfAAG430ABuP4AAbj+gAG4/wABuP+AAbkAQAG5AIABuQDAAbkBAAG5AUABuQHAAbkCQAG5AoABuQLAAbkDQAG5A4ABuRXAAbkewAG5KIABuTGAAbkyQAG5MsABuTNAAbkzwAG5NEABuTTAAbk1AAG5NcABuTwAAblDQAG5Q8ABuURAAblEwAG5RUABuUXAAblGQAG5RsABuU4AAblOwAG5T4ABuVBAAblRAAG5UcABuVKAAblTQAG5U8ABuXKAAblzAAG5c4ABuXQAAbl0wAG5dQABuXVAAbl1gAG5dcABuXZAAbl2wAG5dwABuXdAAbl3wAG5eAABuZbAAbmXQAG5l8ABuZhAAbmZAAG5mUABuZmAAbmZwAG5mgABuZqAAbmbAAG5m0ABuZuAAbmcAAG5nEABubsAAbm7gAG5vAABubyAAbm9QAG5vYABub3AAbm+AAG5vkABub7AAbm/QAG5v4ABub/AAbnAQAG5wIABud9AAbnfwAG54IABueEAAbnhwAG54gABueJAAbnigAG54sABueNAAbnjwAG55AABueRAAbnkwAG55QABugPAAboEQAG6BMABugVAAboGAAG6BkABugaAAboGwAG6BwABugeAAboIAAG6CEABugiAAboJAAG6CUABuigAAboogAG6KQABuimAAboqQAG6KoABuirAAborAAG6K0ABuivAAbosQAG6LIABuizAAbotQAG6LYABukxAAbpMwAG6TUABuk3AAbpOgAG6TsABuk8AAbpPQAG6T4ABulAAAbpQgAG6UMABulEAAbpRgAG6UcABulYAAbpWQAG6VsABunWAAbp2AAG6doABuncAAbp3wAG6eAABunhAAbp4gAG6eMABunlAAbp6AAG6ekABunqAAbp7AAG6e0ABupoAAbqagAG6mwABupuAAbqcQAG6nIABupzAAbqdAAG6nUABup3AAbqegAG6nsABup8AAbqfgAG6n8ABur6AAbq/AAG6v8ABusBAAbrBAAG6wUABusGAAbrBwAG6wgABusKAAbrDQAG6w4ABusPAAbrEQAG6xIABuulAAbryAAG6+gABuwIAAbsCgAG7AwABuwOAAbsEAAG7BMABuwUAAbsFQAG7BgABuwZAAbsGwAG7BwABuwfAAbsIgAG7CMABuwkAAbsJwAG7CgABuwtAAbsRgAG7E8ABuxRAAbsVAAG7F0ABuxgAAbsYwAG7GUABuyuAAbs0gAG7PkABu0dAAbtIAAG7SIABu0kAAbtJgAG7SgABu0qAAbtKwAG7S4ABu1HAAbtaAAG7WoABu1sAAbtbgAG7XAABu1yAAbtdAAG7XYABu14AAbtmQAG7ZwABu2fAAbtogAG7aUABu2oAAbtqwAG7a4ABu2xAAbtswAG7i4ABu4wAAbuMgAG7jQABu43AAbuOAAG7jkABu46AAb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AbwAHAIgABwCRAAcAkwAHAJYABwCfAAcAogAHAKUABwCnAAcA8AAHARQABwE7AAcBXwAHAWIABwFkAAcBZgAHAWgABwFqAAcBbAAHAW0ABwFwAAcBiQAHAaoABwGsAAcBrgAHAbAABwGyAAcBtAAHAbYABwG4AAcBugAHAdsABwHeAAcB4QAHAeQABwHnAAcB6gAHAe0ABwHwAAcB8wAHAfUABwJwAAcCcgAHAnQABwJ2AAcCeQAHAnoABwJ7AAcCfAAHAn0ABwJ/AAcCgQAHAoIABwKDAAcChQAHAoYABwMBAAcDAwAHAwUABwMHAAcDCgAHAwsABwMMAAcDDQAHAw4ABwMQAAcDEgAHAxMABwMUAAcDFgAHAxcABwOSAAcDlAAHA5cABwOZAAcDnAAHA50ABwOeAAcDnwAHA6AABwOiAAcDpAAHA6UABwOmAAcDqAAHA6kABwPCAAcDwwAHA8QABwPGAAcEQQAHBEMABwRFAAcERwAHBEoABwRLAAcETAAHBE0ABwROAAcEUAAHBFIABwRTAAcEVAAHBFYABwRXAAcE0gAHBNQABwTWAAcE2AAHBNsABwTcAAcE3QAHBN4ABwTfAAcE4QAHBOMABwTkAAcE5QAHBOcABwToAAcFYwAHBWUABwVnAAcFaQAHBWwABwVtAAcFbgAHBW8ABwVwAAcFcgAHBXQABwV1AAcFdgAHBXgABwV5AAcF9AAHBfYABwX4AAcF+gAHBf0ABwX+AAcF/wAHBgAABwYBAAcGAwAHBgUABwYGAAcGBwAHBgkABwYKAAcGhQAHBocABwaJAAcGiwAHBo4ABwaPAAcGkAAHBpEABwaSAAcGlAAHBpYABwaXAAcGmAAHBpoABwabAAcG5AAHBwgABwcvAAcHUwAHB1YABwdZAAcHWwAHB10ABwdfAAcHYQAHB2IABwdlAAcHfgAHB5sABweeAAcHoQAHB6QABwenAAcHqgAHB60ABwewAAcHzQAHB9AABwfTAAcH1gAHB9kABwfcAAcH3wAHB+IABwfkAAcIXwAHCGEABwhkAAcIZgAHCGkABwhqAAcIawAHCGwABwhtAAcIbwAHCHIABwhzAAcIdAAHCHYABwh3AAcI8gAHCPQABwj3AAcI+QAHCPwABwj9AAcI/gAHCP8ABwkAAAcJAgAHCQUABwkGAAcJBwAHCQkABwkKAAc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cAwAHHAQABxwGAAccCAAHHAkABxwKAAccDAAHHA0ABxyIAAccigAHHIwABxyOAAcckQAHHJIABxyTAAcclAAHHJUABxyXAAccmQAHHJoABxybAAccnQAHHJ4ABx0ZAAcdGwAHHR0ABx0fAAcdIgAHHSMABx0kAAcdJQAHHSYABx0oAAcdKgAHHSsABx0sAAcdLgAHHS8ABx2qAAcdrAAHHa4ABx2wAAcdswAHHbQABx21AAcdtgAHHbcABx25AAcduwAHHbwABx29AAcdvwAHHcAABx47AAcePQAHHj8ABx5BAAceRAAHHkUABx5GAAceRwAHHkgABx5KAAceTAAHHk0ABx5OAAceUAAHHlEABx6aAAcevgAHHuUABx8JAAcfDAAHHw4ABx8QAAcfEgAHHxQABx8WAAcfFwAHHxoABx8zAAcfUAAHH1IABx9UAAcfVgAHH1gABx9aAAcfXAAHH14ABx97AAcffgAHH4EABx+EAAcfhwAHH4oABx+NAAcfkAAHH5IAByANAAcgDwAHIBEAByATAAcgFgAHIBcAByAYAAcgGQAHIBoAByAcAAcgHgAHIB8AByAgAAcgIgAHICMAByCeAAcgoAAHIKIAByCkAAcgpwAHIKgAByCpAAcgqgAHIKsAByCtAAcgrwAHILAAByCxAAcgswAHILQAByEvAAchMQAHITMAByE1AAchOAAHITkAByE6AAchOwAHITwAByE+AAchQAAHIUEAByFCAAchRAAHIUUAByHAAAchwgAHIcUAByHHAAchygAHIcsAByHMAAchzQAHIc4AByHQAAch0gAHIdMAByHUAAch1gAHIdcAByJSAAciVAAHIlYAByJYAAciWwAHIlwAByJdAAciXgAHIl8AByJhAAciYwAHImQAByJlAAciZwAHImgAByLjAAci5QAHIucAByLpAAci7AAHIu0AByLuAAci7wAHIvAAByLyAAci9AAHIvUAByL2AAci+AAHIvkAByN0AAcjdgAHI3gAByN6AAcjfQAHI34AByN/AAcjgAAHI4EAByODAAcjhQAHI4YAByOHAAcjiQAHI4oAByQdAAckQAAHJGAABySAAAckggAHJIQABySGAAckiAAHJIsABySMAAckjQAHJJAABySRAAckkwAHJJQABySWAAckmQAHJJoABySbAAckngAHJJ8ABySkAAckvQAHJMYAByTIAAckygAHJNMAByTWAAck2QAHJNsAByUkAAclSAAHJW8AByWTAAcllgAHJZgAByWaAAclnAAHJZ4AByWgAAcloQAHJaQAByW9AAcl3gAHJeAAByXiAAcl5AAHJeYAByXoAAcl6gAHJewAByXuAAcmDwAHJhIAByYVAAcmGAAHJhsAByYeAAcmIQAHJiQAByYnAAcmKQAHJqQAByamAAcmqAAHJqoAByatAAcmrgAHJq8AByawAAcmsQAHJrMABya1AAcmtgAHJrcABya5AAcmugAHJzUAByc3AAcnOQAHJzsAByc+AAcnPwAHJ0AABydBAAcnQgAHJ0QABydGAAcnRwAHJ0gABydKAAcnSwAHJ8YAByfIAAcnywAHJ80AByfQAAcn0QAHJ9IAByfTAAcn1AAHJ9YAByfYAAcn2QAHJ9oAByfcAAcn3QAHJ/YAByf3AAcn+AAHJ/oAByh1AAcodwAHKHkAByh7AAcofgAHKH8AByiAAAcogQAHKIIAByiEAAcohgAHKIcAByiIAAcoigAHKIsABykGAAcpCAAHKQoABykMAAcpDwAHKRAABykRAAcpEgAHKRMABykVAAcpFwAHKRgABykZAAcpGwAHKRwABymXAAcpmQAHKZsABymdAAcpoAAHKaEABymiAAcpowAHKaQABymmAAcpqAAHKakABymqAAcprAAHKa0AByooAAcqKgAHKiwAByouAAcqMQAHKjIAByozAAcqNAAHKjUAByo3AAcqOQAHKjoAByo7AAcqPQAHKj4AByq5AAcquwAHKr0AByq/AAcqwgAHKsMAByrEAAcqxQAHKsYAByrIAAcqygAHKssAByrMAAcqzgAHKs8ABysYAAcrPAAHK2MAByuHAAcrigAHK4wAByuOAAcrkAAHK5IAByuUAAcrlQAHK5gAByuxAAcrzgAHK9AAByvSAAcr1AAHK9YAByvYAAcr2gAHK9wAByv5AAcr/AAHK/8ABywCAAcsBQAHLAgABywLAAcsDgAHLBAAByyLAAcsjQAHLI8AByyRAAcslAAHLJUAByyWAAcslwAHLJgAByyaAAcsnAAHLJ0AByyeAAcsoAAHLKEABy0cAActHgAHLSAABy0iAActJQAHLSYABy0nAActKAAHLSkABy0rAActLQAHLS4ABy0vAActMQAHLTIABy2tAAc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aKQAHWioAB1orAAdaLAAHWi0AB1ovAAdaMQAHWjIAB1ozAAdaNQAHWjYAB1pHAAdaSAAHWkoAB1rFAAdaxwAHWskAB1rLAAdazgAHWs8AB1rQAAda0QAHWtIAB1rUAAda1gAHWtcAB1rYAAda2gAHWtsAB1tWAAdbWAAHW1sAB1tdAAdbYAAHW2EAB1tiAAdbYwAHW2QAB1tmAAdbaAAHW2kAB1tqAAdbbAAHW20AB1t+AAdbfwAHW4EAB1v8AAdb/gAHXAAAB1wCAAdcBQAHXAYAB1wHAAdcCAAHXAkAB1wLAAdcDQAHXA4AB1wPAAdcEQAHXBIAB1yNAAdcjwAHXJIAB1yUAAdclwAHXJgAB1yZAAdcmgAHXJsAB1ydAAdcnwAHXKAAB1yhAAdcowAHXKQAB1y1AAdctgAHXLgAB10zAAddNQAHXTcAB105AAddPAAHXT0AB10+AAddPwAHXUAAB11CAAddRAAHXUUAB11GAAddSAAHXUkAB13EAAddxgAHXckAB13LAAddzgAHXc8AB13QAAdd0QAHXdIAB13UAAdd1gAHXdcAB13YAAdd2gAHXdsAB130AAdd9QAHXfYAB134AAdecwAHXnUAB153AAdeeQAHXnwAB159AAdefgAHXn8AB16AAAdeggAHXoQAB16FAAdehgAHXogAB16JAAdfBAAHXwYAB18JAAdfCwAHXw4AB18PAAdfEAAHXxEAB18SAAdfFAAHXxYAB18XAAdfGAAHXxoAB18bAAdfNwAHX1AAB19VAAdfWAAHX10AB19gAAdfYgAHX3YAB2AJAAdgLAAHYEwAB2BsAAdgbgAHYHAAB2ByAAdgdAAHYHcAB2B4AAdgeQAHYHwAB2B9AAdgfwAHYIAAB2CDAAdghgAHYIcAB2CIAAdgiwAHYIwAB2CRAAdgqgAHYLMAB2C1AAdguAAHYMEAB2DEAAdgxwAHYMkAB2ESAAdhNgAHYV0AB2GBAAdhhAAHYYYAB2GIAAdhigAHYYwAB2GOAAdhjwAHYZIAB2GrAAdhzAAHYc4AB2HQAAdh0gAHYdQAB2HWAAdh2AAHYdoAB2HcAAdh/QAHYgAAB2IDAAdiBgAHYgkAB2IMAAdiDwAHYhIAB2IVAAdiFwAHYpIAB2KUAAdilgAHYpgAB2KbAAdinAAHYp0AB2KeAAdinwAHYqEAB2KjAAdipAAHYqUAB2KnAAdiqAAHYyMAB2MlAAdjJwAHYykAB2MsAAdjLQAHYy4AB2MvAAdjMAAHYzIAB2M0AAdjNQAHYzYAB2M4AAdjOQAHY7QAB2O2AAdjuQAHY7sAB2O+AAdjvwAHY8AAB2PBAAdjwgAHY8QAB2PGAAdjxwAHY8gAB2PKAAdjywAHY+QAB2PlAAdj5gAHY+gAB2RjAAdkZQAHZGcAB2RpAAdkbAAHZG0AB2RuAAdkbwAHZHAAB2RyAAdkdAAHZHUAB2R2AAdkeAAHZHkAB2T0AAdk9gAHZPgAB2T6AAdk/QAHZP4AB2T/AAdlAAAHZQEAB2UDAAdlBQAHZQYAB2UHAAdlCQAHZQoAB2WFAAdlhwAHZYkAB2WLAAdljgAHZY8AB2WQAAdlkQAHZZIAB2WUAAdllgAHZZcAB2WYAAdlmgAHZZsAB2YWAAdmGAAHZhoAB2YcAAdmHwAHZiAAB2YhAAdmIgAHZiMAB2YlAAdmJwAHZigAB2YpAAdmKwAHZiwAB2anAAdmqQAHZqsAB2atAAdmsAAHZrEAB2ayAAdmswAHZrQAB2a2AAdmuAAHZrkAB2a6AAdmvAAHZr0AB2cGAAdnKgAHZ1EAB2d1AAdneAAHZ3sAB2d9AAdnfwAHZ4EAB2eDAAdnhAAHZ4cAB2egAAdnvQAHZ8AAB2fDAAdnxgAHZ8kAB2fMAAdnzwAHZ9IAB2fvAAdn8gAHZ/UAB2f4AAdn+wAHZ/4AB2gBAAdoBAAHaAYAB2iBAAdogwAHaIYAB2iIAAdoiwAHaIwAB2iNAAdojgAHaI8AB2iRAAdolAAHaJUAB2iWAAdomAAHaJkAB2kUAAdpFgAHaRkAB2kbAAdpHgAHaR8AB2kgAAdpIQAHaSIAB2kkAAdpJwAHaSgAB2kpAAdpKwAHaSwAB2mnAAdpqQAHaawAB2muAAdpsQAHabIAB2mzAAdptAAHabUAB2m3AAdpugAHabsAB2m8AAdpvgAHab8AB2o6AAdqPAAHaj8AB2pBAAdqRAAHakUAB2pGAAdqRwAHakgAB2pKAAdqTQAHak4AB2pPAAdqUQAHalIAB2rVAAdq+QAHax0AB2tAAAdrZwAHa4cAB2uuAAdr1QAHa/UAB2wZAAdsPQAHbD8AB2xCAAdsRAAHbEYAB2xIAAdsSwAHbE4AB2xQAAdsUgAHbFUAB2xXAAdsWQAHbFwAB2xfAAdsYAAHbGUAB2x+AAdsgwAHbIUAB2yKAAdsjQAHbI8AB2zYAAds/AAHbSMAB21HAAdtSgAHbUwAB21OAAdtUAAHbVIAB21UAAdtVQAHbVgAB21xAAdtlgAHbZgAB22aAAdtnAAHbZ4AB22gAAdtogAHbaQAB22mAAdtqAAHbc0AB23QAAdt0wAHbdYAB23ZAAdt3AAHbd8AB23iAAdt5QAHbegAB23qAAduZQAHbmcAB25qAAdubAAHbm8AB25wAAducQAHbnIAB25zAAdudQAHbncAB254AAdueQAHbnsAB258AAdujQAHbo4AB26QAAdvCwAHbw0AB28PAAdvEQAHbxQAB28VAAdvFgAHbxcAB28YAAdvGgAHbxwAB28dAAdvHgAHbyAAB28hAAdvnAAHb54AB2+hAAdvowAHb6YAB2+nAAdvqAAHb6kAB2+qAAdvrAAHb64AB2+vAAdvsAAHb7IAB2+zAAdvxAAHb8UAB2/HAAdwQgAHcEQAB3BGAAdwSAAHcEsAB3BMAAdwTQAHcE4AB3BPAAdwUQAHcFMAB3BUAAdwVQAHcFcAB3BYAAdw0wAHcNUAB3DYAAdw2gAHcN0AB3DeAAdw3wAHcOAAB3DhAAdw4wAHcOUAB3DmAAdw5wAHcOkAB3DqAAdw+wAHcPwAB3D+AAdxeQAHcXsAB3F9AAdxfwAHcYIAB3GDAAdxhAAHcYUAB3GGAAdxiAAHcYoAB3GLAAdxjAAHcY4AB3GPAAdyCgAHcgwAB3IPAAdyEQAHchQAB3IVAAdyFgAHchcAB3IYAAdyGgAHchwAB3IdAAdyHgAHciAAB3IhAAdyOgAHcjsAB3I8AAdyPgAHcrkAB3K7AAdyvQAHcr8AB3LCAAdywwAHcsQAB3LFAAdyxgAHcsgAB3LKAAdyywAHcswAB3LOAAdyzwAHc0oAB3NMAAdzTwAHc1EAB3NUAAdzVQAHc1YAB3NXAAdzWAAHc1oAB3NcAAdzXQAHc14AB3NgAAdzYQAHc3UAB3OOAAdzkwAHc5YAB3ObAAdzngAHc6AAB3OuAAd0QQAHdGQAB3SEAAd0pAAHdKYAB3SoAAd0qgAHdKwAB3SvAAd0sAAHdLEAB3S0AAd0tQAHdLcAB3S4AAd0uwAHdL4AB3S/AAd0wAAHdMMAB3TEAAd0yQAHdOIAB3TrAAd07QAHdPAAB3T5AAd0/AAHdP8AB3UBAAd1SgAHdW4AB3WVAAd1uQAHdbwAB3W+AAd1wAAHdcIAB3XEAAd1xgAHdccAB3XKAAd14wAHdgQAB3YGAAd2CAAHdgoAB3YMAAd2DgAHdhAAB3YSAAd2FAAHdjUAB3Y4AAd2OwAHdj4AB3ZBAAd2RAAHdkcAB3ZKAAd2TQAHdk8AB3bKAAd2zAAHds4AB3bQAAd20wAHdtQAB3bVAAd21gAHdtcAB3bZAAd22wAHdtwAB3bdAAd23wAHduAAB3dbAAd3XQAHd18AB3dhAAd3ZAAHd2UAB3dmAAd3ZwAHd2gAB3dqAAd3bAAHd20AB3duAAd3cAAHd3EAB3fsAAd37gAHd/EAB3fzAAd39gAHd/cAB3f4AAd3+QAHd/oAB3f8AAd3/gAHd/8AB3gAAAd4AgAHeAMAB3gcAAd4HQAHeB4AB3ggAAd4mwAHeJ0AB3ifAAd4oQAHeKQAB3ilAAd4pgAHeKcAB3ioAAd4qgAHeKwAB3itAAd4rgAHeLAAB3ixAAd5LAAHeS4AB3kwAAd5MgAHeTUAB3k2AAd5NwAHeTgAB3k5AAd5OwAHeT0AB3k+AAd5PwAHeUEAB3lCAAd5vQAHeb8AB3nBAAd5wwAHecYAB3nHAAd5yAAHeckAB3nKAAd5zAAHec4AB3nPAAd50AAHedIAB3nTAAd6TgAHelAAB3pSAAd6VAAHelcAB3pYAAd6WQAHeloAB3pbAAd6XQAHel8AB3pgAAd6YQAHemMAB3pkAAd63wAHeuEAB3rjAAd65QAHeugAB3rpAAd66gAHeusAB3rsAAd67gAHevAAB3rxAAd68gAHevQAB3r1AAd7PgAHe2IAB3uJAAd7rQAHe7AAB3uzAAd7tQAHe7cAB3u5AAd7uwAHe7wAB3u/AAd72AAHe/UAB3v4AAd7+wAHe/4AB3wBAAd8BAAHfAcAB3wKAAd8JwAHfCoAB3wtAAd8MAAHfDMAB3w2AAd8OQAHfDwAB3w+AAd8uQAHfLsAB3y+AAd8wAAHfMMAB3zEAAd8xQAHfMYAB3zHAAd8yQAHfMwAB3zNAAd8zgAHfNAAB3zRAAd9TAAHfU4AB31RAAd9UwAHfVYAB31XAAd9WAAHfVkAB31aAAd9XAAHfV8AB31gAAd9YQAHfWMAB31kAAd93wAHfeEAB33kAAd95gAHfekAB33qAAd96wAHfewAB33tAAd97wAHffIAB33zAAd99AAHffYAB333AAd+cgAHfnQAB353AAd+eQAHfnwAB359AAd+fgAHfn8AB36AAAd+ggAHfoUAB36GAAd+hwAHfokAB36KAAd/BQAHfwcAB38JAAd/CwAHfw4AB38PAAd/EAAHfxEAB38SAAd/FAAHfxcAB38YAAd/GQAHfxsAB38cAAd/lwAHf5kAB3+bAAd/nQAHf6AAB3+hAAd/ogAHf6MAB3+kAAd/pgAHf6kAB3+qAAd/qwAHf60AB3+uAAeAKQAHgCsAB4AuAAeAMAAHgDMAB4A0AAeANQAHgDYAB4A3AAeAOQAHgDwAB4A9AAeAPgAHgEAAB4BBAAeAUgAHgFcAB4BaAAeAXAAHgJUAB4CYAAeAmgAHgJ0AB4CgAAeAowAHgKYAB4CrAAeAvAAHgNUAB4DmAAeA/wAHgRYAB4EoAAeBowAHgaUAB4GnAAeBqQAHgawAB4GtAAeBrgAHga8AB4GwAAeBsgAHgbUAB4G2AAeBtwAHgbkAB4G6AAeCNQAHgjcAB4I5AAeCOwAHgj4AB4I/AAeCQAAHgkEAB4JCAAeCRAAHgkcAB4JIAAeCSQAHgksAB4JMAAeCxwAHgskAB4LMAAeCzgAHgtEAB4LSAAeC0wAHgtQAB4LVAAeC1wAHgtoAB4LbAAeC3AAHgt4AB4LfAAeC8AAHgvUAB4L4AAeC+gAHgv8AB4M4AAeDOwAHgz0AB4NAAAeDQwAHg0YAB4NJAAeDzAAHg/AAB4QUAAeENwAHhF4AB4R+AAeEpQAHhMwAB4TsAAeFEAAHhTQAB4U2AAeFOQAHhTsAB4U9AAeFPwAHhUIAB4VFAAeFRwAHhUkAB4VMAAeFTgAHhVAAB4VTAAeFVgAHhVcAB4VcAAeFdQAHhXoAB4V8AAeFgQAHhYQAB4WGAAeFzwAHhfMAB4YaAAeGPgAHhkEAB4ZDAAeGRQAHhkcAB4ZJAAeGSwAHhkwAB4ZPAAeGaAAHho0AB4aPAAeGkQAHhpMAB4aVAAeGlwAHhpkAB4abAAeGnQAHhp8AB4bEAAeGxwAHhsoAB4bNAAeG0AAHhtMAB4bWAAeG2QAHhtwAB4bfAAeG4QAHh1wAB4deAAeHYQAHh2MAB4dmAAeHZwAHh2gAB4dpAAeHagAHh2wAB4duAAeHbwAHh3AAB4dyAAeHcwAHh4QAB4eFAAeHhwAHiAIAB4gEAAeIBgAHiAgAB4gLAAeIDAAHiA0AB4gOAAeIDwAHiBEAB4gTAAeIFAAHiBUAB4gXAAeIGAAHiJMAB4iVAAeImAAHiJoAB4idAAeIngAHiJ8AB4igAAeIoQAHiKMAB4ilAAeIpgAHiKcAB4ipAAeIqgAHiLsAB4i8AAeIvgAHiTkAB4k7AAeJPQAHiT8AB4lCAAeJQwAHiUQAB4lFAAeJRgAHiUgAB4lKAAeJSwAHiUwAB4lOAAeJTwAHicoAB4nMAAeJzwAHidEAB4nUAAeJ1QAHidYAB4nXAAeJ2AAHidoAB4ncAAeJ3QAHid4AB4ngAAeJ4QAHifIAB4nzAAeJ9QAHinAAB4pyAAeKdAAHinYAB4p5AAeKegAHinsAB4p8AAeKfQAHin8AB4qBAAeKggAHioMAB4qFAAeKhgAHiwEAB4sDAAeLBgAHiwgAB4sLAAeLDAAHiw0AB4sOAAeLDwAHixEAB4sTAAeLFAAHixUAB4sXAAeLGAAHizEAB4syAAeLMwAHizUAB4uwAAeLsgAHi7QAB4u2AAeLuQAHi7oAB4u7AAeLvAAHi70AB4u/AAeLwQAHi8IAB4vDAAeLxQAHi8YAB4xBAAeMQwAHjEYAB4xIAAeMSwAHjEwAB4xNAAeMTgAHjE8AB4xRAAeMUwAHjFQAB4xVAAeMVwAHjFgAB4x1AAeMjgAHjJMAB4yWAAeMmwAHjJ4AB4ygAAeMtQAHjUgAB41rAAeNiwAHjasAB42tAAeNrwAHjbEAB42zAAeNtgAHjbcAB424AAeNuwAHjbwAB42+AAeNvwAHjcIAB43FAAeNxgAHjccAB43KAAeNywAHjdAAB43pAAeN8gAHjfQAB433AAeOAAAHjgMAB44GAAeOCAAHjlEAB451AAeOnAAHjsAAB47DAAeOxQAHjscAB47JAAeOywAHjs0AB47OAAeO0QAHjuoAB48LAAePDQAHjw8AB48RAAePEwAHjxUAB48XAAePGQAHjxsAB488AAePPwAHj0IAB49FAAePSAAHj0sAB49OAAePUQAHj1QAB49WAAeP0QAHj9MAB4/VAAeP1wAHj9oAB4/bAAeP3AAHj90AB4/eAAeP4AAHj+IAB4/jAAeP5AAHj+YAB4/nAAeQYgAHkGQAB5BmAAeQaAAHkGsAB5BsAAeQbQAHkG4AB5BvAAeQcQAHkHMAB5B0AAeQdQAHkHcAB5B4AAeQ8wAHkPUAB5D4AAeQ+gAHkP0AB5D+AAeQ/wAHkQAAB5EBAAeRAwAHkQUAB5EGAAeRBwAHkQkAB5EKAAeRIwAHkSQAB5ElAAeRJwAHkaIAB5GkAAeRpgAHkagAB5GrAAeRrAAHka0AB5GuAAeRrwAHkbEAB5GzAAeRtAAHkbUAB5G3AAeRuAAHkjMAB5I1AAeSNwAHkjkAB5I8AAeSPQAHkj4AB5I/AAeSQAAHkkIAB5JEAAeSRQAHkkYAB5JIAAeSSQAHksQAB5LGAAeSyAAHksoAB5LNAAeSzgAHks8AB5LQAAeS0QAHktMAB5LVAAeS1gAHktcAB5LZAAeS2gAHk1UAB5NXAAeTWQAHk1sAB5NeAAeTXwAHk2AAB5NhAAeTYgAHk2QAB5NmAAeTZwAHk2gAB5NqAAeTawAHk+YAB5PoAAeT6gAHk+wAB5PvAAeT8AAHk/EAB5PyAAeT8wAHk/UAB5P3AAeT+AAHk/kAB5P7AAeT/AAHlEUAB5RpAAeUkAAHlLQAB5S3AAeUugAHlLwAB5S+AAeUwAAHlMIAB5TDAAeUxgAHlN8AB5T8AAeU/wAHlQIAB5UFAAeVCAAHlQsAB5UOAAeVEQAHlS4AB5UxAAeVNAAHlTcAB5U6AAeVPQAHlUAAB5VDAAeVRQAHlcAAB5XCAAeVxQAHlccAB5XKAAeVywAHlcwAB5XNAAeVzgAHldAAB5XTAAeV1AAHldUAB5XXAAeV2AAHllMAB5ZVAAeWWAAHlloAB5ZdAAeWXgAHll8AB5ZgAAeWYQAHlmMAB5ZmAAeWZwAHlmgAB5ZqAAeWawAHluYAB5boAAeW6wAHlu0AB5bwAAeW8QAHlvIAB5bzAAeW9AAHlvYAB5b5AAeW+gAHlvsAB5b9AAeW/gAHl3kAB5d7AAeXfgAHl4AAB5eDAAeXhAAHl4UAB5eGAAeXhwAHl4kAB5eMAAeXjQAHl44AB5eQAAeXkQAHmBQAB5g4AAeYXAAHmH8AB5imAAeYxgAHmO0AB5kUAAeZNAAHmVgAB5l8AAeZfgAHmYEAB5mDAAeZhQAHmYcAB5mKAAeZjQAHmY8AB5mRAAeZlAAHmZYAB5mYAAeZmwAHmZ4AB5mfAAeZpAAHmb0AB5nCAAe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rSgAHq0sAB6tNAAerUAAHq1EAB6tSAAerVAAHq1UAB6vQAAer0gAHq9UAB6vXAAer2gAHq9sAB6vcAAer3QAHq94AB6vgAAer4wAHq+QAB6vlAAer5wAHq+gAB6xjAAesZQAHrGcAB6xpAAesbAAHrG0AB6xuAAesbwAHrHAAB6xyAAesdQAHrHYAB6x3AAeseQAHrHoAB6z1AAes9wAHrPkAB6z7AAes/gAHrP8AB60AAAetAQAHrQIAB60EAAetBwAHrQgAB60JAAetCwAHrQwAB62HAAetiQAHrYwAB62OAAetkQAHrZIAB62TAAetlAAHrZUAB62XAAetmgAHrZsAB62cAAetngAHrZ8AB64yAAeuVQAHrnUAB66VAAeulwAHrpkAB66bAAeunQAHrqAAB66hAAeuogAHrqUAB66mAAeuqAAHrqkAB66sAAeurwAHrrAAB66xAAeutAAHrrUAB666AAeu0wAHrtwAB67eAAeu4QAHruoAB67tAAeu8AAHrvIAB687AAevXwAHr4YAB6+qAAevrQAHr68AB6+xAAevswAHr7UAB6+3AAevuAAHr7sAB6/UAAev9QAHr/cAB6/5AAev+wAHr/0AB6//AAewAQAHsAMAB7AFAAewJgAHsCkAB7AsAAewLwAHsDIAB7A1AAewOAAHsDsAB7A+AAewQAAHsLsAB7C9AAewvwAHsMEAB7DEAAewxQAHsMYAB7DHAAewyAAHsMoAB7DMAAewzQAHsM4AB7DQAAew0QAHsUwAB7FOAAexUAAHsVIAB7FVAAexVgAHsVcAB7FYAAexWQAHsVsAB7FdAAexXgAHsV8AB7FhAAexYgAHsd0AB7HfAAex4gAHseQAB7HnAAex6AAHsekAB7HqAAex6wAHse0AB7HvAAex8AAHsfEAB7HzAAex9AAHsg0AB7IOAAeyDwAHshEAB7KMAAeyjgAHspAAB7KSAAeylQAHspYAB7KXAAeymAAHspkAB7KbAAeynQAHsp4AB7KfAAeyoQAHsqIAB7MdAAezHwAHsyEAB7MjAAezJgAHsycAB7MoAAezKQAHsyoAB7MsAAezLgAHsy8AB7MwAAezMgAHszMAB7OuAAezsAAHs7IAB7O0AAeztwAHs7gAB7O5AAezugAHs7sAB7O9AAezvwAHs8AAB7PBAAezwwAHs8QAB7Q/AAe0QQAHtEMAB7RFAAe0SAAHtEkAB7RKAAe0SwAHtEwAB7ROAAe0UAAHtFEAB7RSAAe0VAAHtFUAB7TQAAe00gAHtNQAB7TWAAe02QAHtNoAB7TbAAe03AAHtN0AB7TfAAe04QAHtOIAB7TjAAe05QAHtOYAB7UvAAe1UwAHtXoAB7WeAAe1oQAHtaQAB7WmAAe1qAAHtaoAB7WsAAe1rQAHtbAAB7XJAAe15gAHtekAB7XsAAe17wAHtfIAB7X1AAe1+AAHtfsAB7YYAAe2GwAHth4AB7YhAAe2JAAHticAB7YqAAe2LQAHti8AB7aqAAe2rAAHtq8AB7axAAe2tAAHtrUAB7a2AAe2twAHtrgAB7a6AAe2vQAHtr4AB7a/AAe2wQAHtsIAB7c9AAe3PwAHt0IAB7dEAAe3RwAHt0gAB7dJAAe3SgAHt0sAB7dNAAe3UAAHt1EAB7dSAAe3VAAHt1UAB7dXAAe30gAHt9QAB7fXAAe32QAHt9wAB7fdAAe33gAHt98AB7fgAAe34gAHt+UAB7fmAAe35wAHt+kAB7fqAAe4ZQAHuGcAB7hqAAe4bAAHuG8AB7hwAAe4cQAHuHIAB7hzAAe4dQAHuHgAB7h5AAe4egAHuHwAB7h9AAe4+AAHuPoAB7j8AAe4/gAHuQEAB7kCAAe5AwAHuQQAB7kFAAe5BwAHuQoAB7kLAAe5DAAHuQ4AB7kPAAe5igAHuYwAB7mOAAe5kAAHuZMAB7mUAAe5lQAHuZYAB7mXAAe5mQAHuZwAB7mdAAe5ngAHuaAAB7mhAAe6HAAHuh4AB7ohAAe6IwAHuiYAB7onAAe6KAAHuikAB7oqAAe6LAAHui8AB7owAAe6MQAHujMAB7o0AAe6xwAHuuoAB7sKAAe7KgAHuywAB7suAAe7MAAHuzIAB7s1AAe7NgAHuzcAB7s6AAe7OwAHuz0AB7s+AAe7QQAHu0QAB7tFAAe7RgAHu0kAB7tKAAe7TwAHu2gAB7txAAe7cwAHu3YAB7t/AAe7ggAHu4UAB7uHAAe70AAHu/QAB7wbAAe8PwAHvEIAB7xEAAe8RgAHvEgAB7xKAAe8TAAHvE0AB7xQAAe8aQAHvIoAB7yMAAe8jgAHvJAAB7ySAAe8lAAHvJYAB7yYAAe8mgAHvLsAB7y+AAe8wQAHvMQAB7zHAAe8ygAHvM0AB7zQAAe80wAHvNUAB71QAAe9UgAHvVQAB71WAAe9WQAHvVoAB71bAAe9XAAHvV0AB71fAAe9YQAHvWIAB71jAAe9ZQAHvWYAB73hAAe94wAHveUAB73nAAe96gAHvesAB73sAAe97QAHve4AB73wAAe98gAHvfMAB730AAe99gAHvfcAB75yAAe+dAAHvncAB755AAe+fAAHvn0AB75+AAe+fwAHvoAAB76CAAe+hAAHvoUAB76GAAe+iAAHvokAB76iAAe+owAHvqQAB76mAAe/IQAHvyMAB78lAAe/JwAHvyoAB78rAAe/LAAHvy0AB78uAAe/MAAHvzIAB78zAAe/NAAHvzYAB783AAe/sgAHv7QAB7+2AAe/uAAHv7sAB7+8AAe/vQAHv74AB7+/AAe/wQAHv8MAB7/EAAe/xQAHv8cAB7/IAAfAQwAHwEUAB8BHAAfASQAHwEwAB8BNAAfATgAHwE8AB8BQAAfAUgAHwFQAB8BVAAfAVgAHwFgAB8BZAAfA1AAHwNYAB8DYAAfA2gAHwN0AB8DeAAfA3wAHwOAAB8DhAAfA4wAHwOUAB8DmAAfA5wAHwOkAB8DqAAfBZQAHwWcAB8FpAAfBawAHwW4AB8FvAAfBcAAHwXEAB8FyAAfBdAAHwXYAB8F3AAfBeAAHwXoAB8F7AAfBxAAHwegAB8IPAAfCMwAHwjYAB8I5AAfCOwAHwj0AB8I/AAfCQQAHwkIAB8JFAAfCXgAHwnsAB8J+AAfCgQAHwoQAB8KHAAfCigAHwo0AB8KQAAfCrQAHwrAAB8KzAAfCtgAHwrkAB8K8AAfCvwAHwsIAB8LEAAfDPwAHw0EAB8NEAAfDRgAHw0kAB8NKAAfDSwAHw0wAB8NNAAfDTwAHw1IAB8NTAAfDVAAHw1YAB8NXAAfD0gAHw9QAB8PXAAfD2QAHw9wAB8PdAAfD3gAHw98AB8PgAAfD4gAHw+UAB8PmAAfD5wAHw+kAB8PqAAfEZQAHxGcAB8RqAAfEbAAHxG8AB8RwAAfEcQAHxHIAB8RzAAfEdQAHxHgAB8R5AAfEegAHxHwAB8R9AAfE+AAHxPoAB8T9AAfE/wAHxQIAB8UDAAfFBAAHxQUAB8UGAAfFCAAHxQsAB8UMAAfFDQAHxQ8AB8UQAAfFiwAHxY0AB8WPAAfFkQAHxZQAB8WVAAfFlgAHxZcAB8WYAAfFmgAHxZ0AB8WeAAfFnwAHxaEAB8WiAAfGHQAHxh8AB8YhAAfGIwAHxiYAB8YnAAfGKAAHxikAB8YqAAfGLAAHxi8AB8YwAAfGMQAHxjMAB8Y0AAfGrwAHxrEAB8a0AAfGtgAHxrkAB8a6AAfGuwAHxrwAB8a9AAfGvwAHxsIAB8bDAAfGxAAHxsYAB8bHAAfG2AAHxt0AB8bgAAfG4gAHxxsAB8ceAAfHIAAHxyMAB8cmAAfHKQAHxywAB8cxAAfHrAAHx64AB8ewAAfHsgAHx7UAB8e2AAfHtwAHx7gAB8e5AAfHuwAHx74AB8e/AAfHwAAHx8IAB8fDAAfIPgAHyEAAB8hCAAfIRAAHyEcAB8hIAAfISQAHyEoAB8hLAAfITQAHyFAAB8hRAAfIUgAHyFQAB8hVAAfI0AAHyNIAB8jVAAfI1wAHyNoAB8jbAAfI3AAHyN0AB8jeAAfI4AAHyOMAB8jkAAfI5QAHyOcAB8joAAfI+QAHyP4AB8kBAAfJAwAHyQwAB8mHAAfJiQAHyYsAB8mNAAfJkAAHyZEAB8mSAAfJkwAHyZQAB8mWAAfJmQAHyZoAB8mbAAfJnQAHyZ4AB8oZAAfKGwAHyh0AB8ofAAfKIgAHyiMAB8okAAfKJQAHyiYAB8ooAAfKKwAHyiwAB8otAAfKLwAHyjAAB8qrAAfKrQAHyrAAB8qyAAfKtQAHyrYAB8q3AAfKuAAHyrkAB8q7AAfKvgAHyr8AB8rAAAfKwgAHysMAB8rUAAfK1QAHytcAB8roAAfK8QAHyvQAB8r3AAfK+QAHy3QAB8t2AAfLeAAHy3oAB8t9AAfLfgAHy38AB8uAAAfLgQAHy4MAB8uGAAfLhwAHy4gAB8uKAAfLiwAHzAYAB8wIAAfMCgAHzAwAB8wPAAfMEAAHzBEAB8wSAAfMEwAHzBUAB8wYAAfMGQAHzBoAB8wcAAfMHQAHzJgAB8yaAAfMnQAHzJ8AB8yiAAfMowAHzKQAB8ylAAfMpgAHzKgAB8yrAAfMrAAHzK0AB8yvAAfMsAAHzUMAB81mAAfNhgAHzaYAB82oAAfNqgAHzawAB82uAAfNsQAHzbIAB82zAAfNtgAHzbcAB825AAfNugAHzb0AB83AAAfNwQAHzcIAB83FAAfNxgAHzcsAB83kAAfN7QAHze8AB83yAAfN+wAHzf4AB84BAAfOAwAHzkwAB85wAAfOlwAHzrsAB86+AAfOwAAHzsIAB87EAAfOxgAHzsgAB87JAAfOzAAHzuUAB88GAAfPCAAHzwoAB88MAAfPDgAHzxAAB88SAAfPFAAHzxYAB883AAfPOgAHzz0AB89AAAfPQwAHz0YAB89JAAfPTAAHz08AB89RAAfPzAAHz84AB8/QAAfP0gAHz9UAB8/WAAfP1wAHz9gAB8/ZAAfP2wAHz90AB8/eAAfP3wAHz+EAB8/iAAfQXQAH0F8AB9BhAAfQYwAH0GYAB9BnAAfQaAAH0GkAB9BqAAfQbAAH0G4AB9BvAAfQcAAH0HIAB9BzAAfQ7gAH0PAAB9DzAAfQ9QAH0PgAB9D5AAfQ+gAH0PsAB9D8AAfQ/gAH0QAAB9EBAAfRAgAH0QQAB9EFAAfRHgAH0R8AB9EgAAfRIgAH0Z0AB9GfAAfRoQAH0aMAB9GmAAfRpwAH0agAB9GpAAfRqgAH0awAB9GuAAfRrwAH0bAAB9GyAAfRswAH0i4AB9IwAAfSMgAH0jQAB9I3AAfSOAAH0jkAB9I6AAfSOwAH0j0AB9I/AAfSQAAH0kEAB9JDAAfSRAAH0r8AB9LBAAfSwwAH0sUAB9LIAAfSyQAH0soAB9LLAAfSzAAH0s4AB9LQAAfS0QAH0tIAB9LUAAfS1QAH01AAB9NSAAfTVAAH01YAB9NZAAfTWgAH01sAB9NcAAfTXQAH018AB9NhAAfTYgAH02MAB9NlAAfTZgAH0+EAB9PjAAfT5QAH0+cAB9PqAAfT6wAH0+wAB9PtAAfT7gAH0/AAB9PyAAfT8wAH0/QAB9P2AAfT9wAH1EAAB9RkAAfUiwAH1K8AB9SyAAfUtQAH1LcAB9S5AAfUuwAH1L0AB9S+AAfUwQAH1NoAB9T3AAfU+gAH1P0AB9UAAAfVAwAH1QYAB9UJAAfVDAAH1SkAB9UsAAfVLwAH1TIAB9U1AAfVOAAH1TsAB9U+AAfVQAAH1bsAB9W9AAfVwAAH1cIAB9XFAAfVxgAH1ccAB9XIAAfVyQAH1csAB9XOAAfVzwAH1dAAB9XSAAfV0wAH1k4AB9ZQAAfWUwAH1lUAB9ZYAAfWWQAH1loAB9ZbAAfWXAAH1l4AB9ZhAAfWYgAH1mMAB9ZlAAfWZgAH1uEAB9bjAAfW5gAH1ugAB9brAAfW7AAH1u0AB9buAAfW7wAH1vEAB9b0AAfW9QAH1vYAB9b4AAfW+QAH13QAB9d2AAfXeQAH13sAB9d+AAfXfwAH14AAB9eBAAfXggAH14QAB9eHAAfXiAAH14kAB9eLAAfXjAAH2A8AB9gzAAfYVwAH2HoAB9ihAAfYwQAH2OgAB9kPAAfZLwAH2VMAB9l3AAfZeQAH2XwAB9l+AAfZgAAH2YIAB9mFAAfZiAAH2YoAB9mMAAfZjwAH2ZEAB9mTAAfZlgAH2ZkAB9maAAfZnwAH2bgAB9m9AAfZvwAH2cQAB9nHAAfZyQAH2hIAB9o2AAfaXQAH2oEAB9qEAAfahgAH2ogAB9qKAAfajAAH2o4AB9qPAAfakgAH2qsAB9rQAAfa0gAH2tQAB9rWAAfa2AAH2toAB9rcAAfa3gAH2uAAB9riAAfbBwAH2woAB9sNAAfbEAAH2xMAB9sWAAfbGQAH2xwAB9sfAAfbIgAH2yQAB9ufAAfboQAH26QAB9umAAfbqQAH26oAB9urAAfbrAAH260AB9uvAAfbsQAH27IAB9uzAAfbtQAH27YAB9vHAAfbyAAH28oAB9xFAAfcRwAH3EkAB9xLAAfcTgAH3E8AB9xQAAfcUQAH3FIAB9xUAAfcVgAH3FcAB9xYAAfcWgAH3FsAB9zWAAfc2AAH3NsAB9zdAAfc4AAH3OEAB9ziAAfc4wAH3OQAB9zmAAfc6AAH3OkAB9zqAAfc7AAH3O0AB9z+AAfc/wAH3QEAB918AAfdfgAH3YAAB92CAAfdhQAH3YYAB92HAAfdiAAH3YkAB92LAAfdjQAH3Y4AB92PAAfdkQAH3ZIAB94NAAfeDwAH3hIAB94UAAfeFwAH3hgAB94ZAAfeGgAH3hsAB94dAAfeHwAH3iAAB94hAAfeIwAH3iQAB941AAfeNgAH3jgAB96zAAfetQAH3rcAB965AAfevAAH3r0AB96+AAfevwAH3sAAB97CAAfexAAH3sUAB97GAAfeyAAH3skAB99EAAffRgAH30kAB99LAAffTgAH308AB99QAAffUQAH31IAB99UAAffVgAH31cAB99YAAffWgAH31sAB990AAffdQAH33YAB994AAff8wAH3/UAB9/3AAff+QAH3/wAB9/9AAff/gAH3/8AB+AAAAfgAgAH4AQAB+AFAAfgBgAH4AgAB+AJAAfghAAH4IYAB+CJAAfgiwAH4I4AB+CPAAfgkAAH4JEAB+CSAAfglAAH4JYAB+CXAAfgmAAH4JoAB+CbAAfguwAH4NQAB+DtAAfg8AAH4PMAB+D2AAfg+QAH4PwAB+D/AAfhGAAH4RsAB+EeAAfhIQAH4SQAB+EnAAfhKgAH4SwAB+E6AAfhSAAH4WAAB+F2AAfhlgAH4ikAB+JMAAfibAAH4owAB+KOAAfikAAH4pIAB+KUAAfilwAH4pgAB+KZAAfinAAH4p0AB+KfAAfioAAH4qIAB+KlAAfipgAH4qcAB+KqAAfiqwAH4rAAB+LJAAfi0gAH4tQAB+LWAAfi3wAH4uIAB+LlAAfi5wAH4zAAB+NUAAfjewAH458AB+OiAAfjpAAH46YAB+OoAAfjqgAH46wAB+OtAAfjsAAH48kAB+PqAAfj7AAH4+4AB+PwAAfj8gAH4/QAB+P2AAfj+AAH4/oAB+QbAAfkHgAH5CEAB+QkAAfkJwAH5CoAB+QtAAfkMAAH5DMAB+Q1AAfksAAH5LIAB+S0AAfktgAH5LkAB+S6AAfkuwAH5LwAB+S9AAfkvwAH5MEAB+TCAAfkwwAH5MUAB+TGAAflQQAH5UMAB+VFAAflRwAH5UoAB+VLAAflTAAH5U0AB+VOAAflUAAH5VIAB+VTAAflVAAH5VYAB+VXAAfl0gAH5dQAB+XXAAfl2QAH5dwAB+XdAAfl3gAH5d8AB+XgAAfl4gAH5eQAB+XlAAfl5gAH5egAB+XpAAfmAgAH5gMAB+YEAAfmBgAH5oEAB+aDAAfmhQAH5ocAB+aKAAfmiwAH5owAB+aNAAfmjgAH5pAAB+aSAAfmkwAH5pQAB+aWAAfmlwAH5xIAB+cUAAfnFgAH5xgAB+cbAAfnHAAH5x0AB+ceAAfnHwAH5yEAB+cjAAfnJAAH5yUAB+cnAAfnKAAH56MAB+elAAfnpwAH56kAB+esAAfnrQAH564AB+evAAfnsAAH57IAB+e0AAfntQAH57YAB+e4AAfnuQAH6DQAB+g2AAfoOAAH6DoAB+g9AAfoPgAH6D8AB+hAAAfoQQAH6EMAB+hFAAfoRgAH6EcAB+hJAAfoSgAH6MUAB+jHAAfoyQAH6MsAB+jOAAfozwAH6NAAB+jRAAfo0gAH6NQAB+jWAAfo1wAH6NgAB+jaAAfo2wAH6SQAB+lIAAfpbwAH6ZMAB+mWAAfpmAAH6ZoAB+mcAAfpngAH6aAAB+mhAAfppAAH6b0AB+naAAfp3AAH6d4AB+ngAAfp4gAH6eQAB+nmAAfp6AAH6gUAB+oIAAfqCwAH6g4AB+oRAAfqFAAH6hcAB+oaAAfqHAAH6pcAB+qZAAfqmwAH6p0AB+qgAAfqoQAH6qIAB+qjAAfqpAAH6qYAB+qoAAfqqQAH6qoAB+qsAAfqrQAH6ygAB+sqAAfrLAAH6y4AB+sxAAfrMgAH6zMAB+s0AAfrNQAH6zcAB+s5AAfrOgAH6zsAB+s9AAfrPgAH67kAB+u7AAfrvQAH678AB+vCAAfrwwAH68QAB+vFAAfrxgAH68gAB+vKAAfrywAH68wAB+vOAAfrzwAH7EoAB+xMAAfsTgAH7FAAB+xTAAfsVAAH7FUAB+xWAAfsVwAH7FkAB+xbAAfsXAAH7F0AB+xfAAfsYAAH7NsAB+zdAAfs3wAH7OEAB+zkAAfs5QAH7OYAB+znAAfs6AAH7OoAB+zsAAfs7QAH7O4AB+zwAAfs8QAH7WwAB+1uAAftcAAH7XIAB+11AAftdgAH7XcAB+14AAfteQAH7XsAB+19AAftfgAH7X8AB+2BAAftggAH7f0AB+3/AAfuAQAH7gMAB+4GAAfuBwAH7ggAB+4JAAfuCgAH7gwAB+4OAAfuDwAH7hAAB+4SAAfuEwAH7qYAB+7JAAfu6QAH7wkAB+8LAAfvDQAH7w8AB+8RAAfvFAAH7xUAB+8WAAfvGQAH7xoAB+8cAAfvHQAH7yAAB+8jAAfvJAAH7yUAB+8oAAfvKQAH7y4AB+9HAAfvUAAH71IAB+9VAAfvXgAH72EAB+9kAAfvZgAH768AB+/TAAfv+gAH8B4AB/AhAAfwIwAH8CUAB/AnAAfwKQAH8CsAB/AsAAfwLwAH8EgAB/BpAAfwawAH8G0AB/BvAAfwcQAH8HMAB/B1AAfwdwAH8HkAB/CaAAfwnQAH8KAAB/CjAAfwpgAH8KkAB/CsAAfwrwAH8LIAB/C0AAfxLwAH8TEAB/EzAAfxNQAH8TgAB/E5AAfxOgAH8TsAB/E8AAfxPgAH8UAAB/FBAAfxQgAH8UQAB/FFAAfxwAAH8cIAB/HEAAfxxgAH8ckAB/HKAAfxywAH8cwAB/HNAAfxzwAH8dEAB/HSAAfx0wAH8dUAB/HWAAfyUQAH8lMAB/JWAAfyWAAH8lsAB/JcAAfyXQAH8l4AB/JfAAfyYQAH8mMAB/JkAAfyZQAH8mcAB/JoAAfygQAH8oIAB/KDAAfyhQAH8wAAB/MCAAfzBAAH8wYAB/MJAAfzCgAH8wsAB/MMAAfzDQAH8w8AB/MRAAfzEgAH8xMAB/MVAAfzFgAH85EAB/OTAAfzlQAH85cAB/OaAAfzmwAH85wAB/OdAAfzngAH86AAB/OiAAfzowAH86QAB/OmAAfzpwAH9CIAB/QkAAf0JgAH9CgAB/QrAAf0LAAH9C0AB/QuAAf0LwAH9DEAB/QzAAf0NAAH9DUAB/Q3AAf0OAAH9LMAB/S1AAf0twAH9LkAB/S8AAf0vQAH9L4AB/S/AAf0wAAH9MIAB/TEAAf0xQAH9MYAB/TIAAf0yQAH9UQAB/VGAAf1SAAH9UoAB/VNAAf1TgAH9U8AB/VQAAf1UQAH9VMAB/VVAAf1VgAH9VcAB/VZAAf1WgAH9aMAB/XHAAf17gAH9hIAB/YVAAf2GAAH9hoAB/YcAAf2HgAH9iAAB/YhAAf2JAAH9j0AB/ZaAAf2XQAH9mAAB/ZjAAf2ZgAH9mkAB/ZsAAf2bwAH9owAB/aPAAf2kgAH9pUAB/aYAAf2mwAH9p4AB/ahAAf2owAH9x4AB/cgAAf3IwAH9yUAB/coAAf3KQAH9yoAB/crAAf3LAAH9y4AB/cxAAf3MgAH9zMAB/c1AAf3NgAH97EAB/ezAAf3tgAH97gAB/e7AAf3vAAH970AB/e+AAf3vwAH98EAB/fEAAf3xQAH98YAB/fIAAf3yQAH+EQAB/hGAAf4SQAH+EsAB/hOAAf4TwAH+FAAB/hRAAf4UgAH+FQAB/hXAAf4WAAH+FkAB/hbAAf4XAAH+NcAB/jZAAf43AAH+N4AB/jhAAf44gAH+OMAB/jkAAf45QAH+OcAB/jqAAf46wAH+OwAB/juAAf47wAH+WoAB/lsAAf5bgAH+XAAB/lzAAf5dAAH+XUAB/l2AAf5dwAH+XkAB/l8AAf5fQAH+X4AB/mAAAf5gQAH+fwAB/n+AAf6AAAH+gIAB/oFAAf6BgAH+gcAB/oIAAf6CQAH+gsAB/oOAAf6DwAH+hAAB/oSAAf6EwAH+o4AB/qQAAf6kwAH+pUAB/qYAAf6mQAH+poAB/qbAAf6nAAH+p4AB/qhAAf6ogAH+qMAB/qlAAf6pgAH+zkAB/tcAAf7fAAH+5wAB/ueAAf7oAAH+6IAB/ukAAf7pwAH+6gAB/upAAf7rAAH+60AB/uvAAf7sAAH+7IAB/u1AAf7tgAH+7cAB/u6AAf7uwAH+8QAB/vdAAf75gAH++gAB/vqAAf78wAH+/YAB/v5AAf7+wAH/EQAB/xoAAf8jwAH/LMAB/y2AAf8uAAH/LoAB/y8AAf8vgAH/MAAB/zBAAf8xAAH/N0AB/z+AAf9AAAH/QIAB/0EAAf9BgAH/QgAB/0KAAf9DAAH/Q4AB/0vAAf9MgAH/TUAB/04AAf9OwAH/T4AB/1BAAf9RAAH/UcAB/1JAAf9xAAH/cYAB/3IAAf9ygAH/c0AB/3OAAf9zwAH/dAAB/3RAAf90wAH/dUAB/3WAAf91wAH/dkAB/3aAAf+VQAH/lcAB/5ZAAf+WwAH/l4AB/5fAAf+YAAH/mEAB/5iAAf+ZAAH/mYAB/5nAAf+aAAH/moAB/5rAAf+5gAH/ugAB/7rAAf+7QAH/vAAB/7xAAf+8gAH/vMAB/70AAf+9gAH/vgAB/75AAf++gAH/vwAB/79AAf/FgAH/xcAB/8YAAf/GgAH/5UAB/+XAAf/mQAH/5sAB/+eAAf/nwAH/6AAB/+hAAf/ogAH/6QAB/+mAAf/pwAH/6gAB/+qAAf/qwAIACYACAAoAAgAKgAIACwACAAvAAgAMAAIADEACAAyAAgAMwAIADUACAA3AAgAOAAIADkACAA7AAgAPAAIALcACAC5AAgAuwAIAL0ACADAAAgAwQAIAMIACADDAAgAxAAIAMYACADIAAgAyQAIAMoACADMAAgAzQAIAUgACAFKAAgBTAAIAU4ACAFRAAgBUgAIAVMACAFUAAgBVQAIAVcACAFZAAgBWgAIAVsACAFdAAgBXgAIAdkACAHbAAgB3QAIAd8ACAHiAAgB4wAIAeQACAHlAAgB5gAIAegACAHqAAgB6wAIAewACAHuAAgB7wAIAjgACAJcAAgCgwAIAqcACAKqAAgCrAAIAq4ACAKwAAgCsgAIArQACAK1AAgCuAAIAtEACALuAAgC8AAIAvIACAL0AAgC9gAIAvgACAL6AAgC/AAIAxkACAMcAAgDHwAIAyIACAMlAAgDKAAIAysACAMuAAgDMAAIA6sACAOtAAgDrwAIA7EACAO0AAgDtQAIA7YACAO3AAgDuAAIA7oACAO8AAgDvQAIA74ACAPAAAgDwQAIBDwACAQ+AAgEQAAIBEIACARFAAgERgAIBEcACARIAAgESQAIBEsACARNAAgETgAIBE8ACARRAAgEUgAIBM0ACATPAAgE0QAIBNMACATWAAgE1wAIBNgACATZAAgE2gAIBNwACATeAAgE3wAIBOAACATiAAgE4wAIBV4ACAVgAAgFYwAIBWUACAVoAAgFaQAIBWoACAVrAAgFbAAIBW4ACAVwAAgFcQAIBXIACAV0AAgFdQAIBfAACAXyAAgF9AAIBfYACAX5AAgF+gAIBfsACAX8AAgF/QAIBf8ACAYBAAgGAgAIBgMACAYFAAgGBgAIBoEACAaDAAgGhQAIBocACAaKAAgGiwAIBowACAaNAAgGjgAIBpAACAaSAAgGkwAIBpQACAaWAAgGlwAIBxIACAcUAAgHFgAIBxgACAcbAAgHHAAIBx0ACAceAAgHHwAIByEACAcjAAgHJAAIByUACAcnAAgHKAAIB7sACAfeAAgH/gAICB4ACAggAAgIIgAICCQACAgmAAgIKQAICCoACAgrAAgILgAICC8ACAgxAAgIMgAICDQACAg3AAgIOAAICDkACAg8AAgIPQAICEIACAhbAAgIZAAICGYACAhoAAgIcQAICHQACAh3AAgIeQAICMIACAjmAAgJDQAICTEACAk0AAgJNgAICTgACAk6AAgJPAAICT4ACAk/AAgJQgAICVsACAl8AAgJfgAICYAACAmCAAgJhAAICYYACAmIAAgJigAICYwACAmtAAgJsAAICbMACAm2AAgJuQAICbwACAm/AAgJwgAICcUACAnHAAgKQgAICkQACApGAAgKSAAICksACApMAAgKTQAICk4ACApPAAgKUQAIClMACApUAAgKVQAIClcACApYAAgK0wAICtUACArXAAgK2QAICtwACArdAAgK3gAICt8ACArgAAgK4gAICuQACArlAAgK5gAICugACArpAAgLZAAIC2YACAtpAAgLawAIC24ACAtvAAgLcAAIC3EACAtyAAgLdAAIC3YACAt3AAgLeAAIC3oACAt7AAgLlAAIC5UACAuWAAgLmAAIDBMACAwVAAgMFwAIDBkACAwcAAgMHQAIDB4ACAwfAAgMIAAIDCIACAwkAAgMJQAIDCYACAwoAAgMKQAIDKQACAymAAgMqAAIDKoACAytAAgMrgAIDK8ACAywAAgMsQAIDLMACAy1AAgMtgAIDLcACAy5AAgMugAIDTUACA03AAgNOQAIDTsACA0+AAgNPwAIDUAACA1BAAgNQgAIDUQACA1GAAgNRwAIDUgACA1KAAgNSwAIDcYACA3IAAgNygAIDcwACA3PAAgN0AAIDdEACA3SAAgN0wAIDdUACA3XAAgN2AAIDdkACA3bAAgN3AAIDlcACA5ZAAgOWwAIDl0ACA5gAAgOYQAIDmIACA5jAAgOZAAIDmYACA5oAAgOaQAIDmoACA5sAAgObQAIDrYACA7aAAgPAQAIDyUACA8oAAgPKgAIDywACA8uAAgPMAAIDzIACA8zAAgPNgAID08ACA9sAAgPbgAID3AACA9yAAgPdAAID3YACA94AAgPegAID5cACA+aAAgPnQAID6AACA+jAAgPpgAID6kACA+sAAgPrgAIECkACBArAAgQLQAIEC8ACBAyAAgQMwAIEDQACBA1AAgQNgAIEDgACBA6AAgQOwAIEDwACBA+AAgQPwAIELoACBC8AAgQvgAIEMAACBDDAAgQxAAIEMUACBDGAAgQxwAIEMkACBDLAAgQzAAIEM0ACBDPAAgQ0AAIEUsACBFNAAgRTwAIEVEACBFUAAgRVQAIEVYACBFXAAgRWAAIEVoACBFcAAgRXQAIEV4ACBFgAAgRYQAIEdwACBHeAAgR4QAIEeMACBHmAAgR5wAIEegACBHpAAgR6gAIEewACBHuAAgR7wAIEfAACBHyAAgR8wAIEm4ACBJwAAgScgAIEnQACBJ3AAgSeAAIEnkACBJ6AAgSewAIEn0ACBJ/AAgSgAAIEoEACBKDAAgShAAIEv8ACBMBAAgTAwAIEwUACBMIAAgTCQAIEwoACBMLAAgTDAAIEw4ACBMQAAgTEQAIExIACBMUAAgTFQAIE5AACBOSAAgTlAAIE5YACBOZAAgTmgAIE5sACBOcAAgTnQAIE58ACBOhAAgTogAIE6MACBOlAAgTpgAIFDkACBRcAAgUfAAIFJwACBSeAAgUoAAIFKIACBSkAAgUpwAIFKgACBSpAAgUrAAIFK0ACBSvAAgUsAAIFLIACBS1AAgUtgAIFLcACBS6AAgUuwAIFMQACBTdAAgU5gAIFOgACBTqAAgU8wAIFPYACBT5AAgU+wAIFUQACBVoAAgVjwAIFbMACBW2AAgVuAAIFboACBW8AAgVvgAIFcAACBXBAAgVxAAIFd0ACBX+AAgWAAAIFgIACBYEAAgWBgAIFggACBYKAAgWDAAIFg4ACBYvAAgWMgAIFjUACBY4AAgWOwAIFj4ACBZBAAgWRAAIFkcACBZJAAgWxAAIFsYACBbIAAgWygAIFs0ACBbOAAgWzwAIFtAACBbRAAgW0wAIFtUACBbWAAgW1wAIFtkACBbaAAgXVQAIF1cACBdZAAgXWwAIF14ACBdfAAgXYAAIF2EACBdiAAgXZAAIF2YACBdnAAgXaAAIF2oACBdrAAgX5gAIF+gACBfrAAgX7QAIF/AACBfxAAgX8gAIF/MACBf0AAgX9gAIF/gACBf5AAgX+gAIF/wACBf9AAgYFgAIGBcACBgYAAgYGgAIGJUACBiXAAgYmQAIGJsACBieAAgYnwAIGKAACBihAAgYogAIGKQACBimAAgYpwAIGKgACBiqAAgYqwAIGSYACBkoAAgZKgAIGSwACBkvAAgZMAAIGTEACBkyAAgZMwAIGTUACBk3AAgZOAAIGTkACBk7AAgZPAAIGbcACBm5AAgZuwAIGb0ACBnAAAgZwQAIGcIACBnDAAgZxAAIGcYACBnIAAgZyQAIGcoACBnMAAgZzQAIGkgACBpKAAgaTAAIGk4ACBpRAAgaUgAIGlMACBpUAAgaVQAIGlcACBpZAAgaWgAIGlsACBpdAAgaXgAIGtkACBrbAAga3QAIGt8ACBriAAga4wAIGuQACBrlAAga5gAIGugACBrqAAga6wAIGuwACBruAAga7wAIGzgACBtcAAgbgwAIG6cACBuqAAgbrAAIG64ACBuwAAgbsgAIG7QACBu1AAgbuAAIG9EACBvuAAgb8AAIG/IACBv0AAgb9gAIG/gACBv6AAgb/AAIHBkACBwcAAgcHwAIHCIACBwlAAgcKAAIHCsACBwuAAgcMAAIHKsACBytAAgcrwAIHLEACBy0AAgctQAIHLYACBy3AAgcuAAIHLoACBy8AAgcvQAIHL4ACBzAAAgcwQAIHTwACB0+AAgdQAAIHUIACB1FAAgdRgAIHUcACB1IAAgdSQAIHUsACB1NAAgdTgAIHU8ACB1RAAgdUgAIHc0ACB3PAAgd0QAIHdMACB3WAAgd1wAIHdgACB3ZAAgd2gAIHdwACB3eAAgd3wAIHeAACB3iAAgd4wAIHl4ACB5gAAgeYwAIHmUACB5oAAgeaQAIHmoACB5rAAgebAAIHm4ACB5wAAgecQAIHnIACB50AAgedQAIHvAACB7yAAge9AAIHvYACB75AAge+gAIHvsACB78AAge/QAIHv8ACB8BAAgfAgAIHwMACB8FAAgfBgAIH4EACB+DAAgfhQAIH4cACB+KAAgfiwAIH4wACB+NAAgfjgAIH5AACB+SAAgfkwAIH5QACB+WAAgflwAIIBIACCAUAAggFgAIIBgACCAbAAggHAAIIB0ACCAeAAggHwAIICEACCAjAAggJAAIICUACCAnAAggKAAIILsACCDeAAgg/gAIIR4ACCEgAAghIgAIISQACCEmAAghKQAIISoACCErAAghLgAIIS8ACCExAAghMgAIITQACCE3AAghOAAIITkACCE8AAghPQAIIUYACCFfAAghaAAIIWoACCFsAAghdQAIIXgACCF7AAghfQAIIcYACCHqAAgiEQAIIjUACCI4AAgiOgAIIjwACCI+AAgiQAAIIkIACCJDAAgiRgAIIl8ACCKAAAgiggAIIoQACCKGAAgiiAAIIooACCKMAAgijgAIIpAACCKxAAgitAAIIrcACCK6AAgivQAIIsAACCLDAAgixgAIIskACCLLAAgjRgAII0gACCNKAAgjTAAII08ACCNQAAgjUQAII1IACCNTAAgjVQAII1cACCNYAAgjWQAII1sACCNcAAgj1wAII9kACCPbAAgj3QAII+AACCPhAAgj4gAII+MACCPkAAgj5gAII+gACCPpAAgj6gAII+wACCPtAAgkaAAIJGoACCRtAAgkbwAIJHIACCRzAAgkdAAIJHUACCR2AAgkeAAIJHoACCR7AAgkfAAIJH4ACCR/AAgkmAAIJJkACCSaAAgknAAIJRcACCUZAAglGwAIJR0ACCUgAAglIQAIJSIACCUjAAglJAAIJSYACCUoAAglKQAIJSoACCUsAAglLQAIJagACCWqAAglrAAIJa4ACCWxAAglsgAIJbMACCW0AAgltQAIJbcACCW5AAglugAIJbsACCW9AAglvgAIJjkACCY7AAgmPQAIJj8ACCZCAAgmQwAIJkQACCZFAAgmRgAIJkgACCZKAAgmSwAIJkwACCZOAAgmTwAIJsoACCbMAAgmzgAIJtAACCbTAAgm1AAIJtUACCbWAAgm1wAIJtkACCbbAAgm3AAIJt0ACCbfAAgm4AAIJ1sACCddAAgnXwAIJ2EACCdkAAgnZQAIJ2YACCdnAAgnaAAIJ2oACCdsAAgnbQAIJ24ACCdwAAgncQAIJ7oACCfeAAgoBQAIKCkACCgsAAgoLgAIKDAACCgyAAgoNAAIKDYACCg3AAgoOgAIKFMACChwAAgocgAIKHQACCh2AAgoeAAIKHoACCh8AAgofgAIKJsACCieAAgooQAIKKQACCinAAgoqgAIKK0ACCiwAAgosgAIKS0ACCkvAAgpMQAIKTMACCk2AAgpNwAIKTgACCk5AAgpOgAIKTwACCk+AAgpPwAIKUAACClCAAgpQwAIKb4ACCnAAAgpwgAIKcQACCnHAAgpyAAIKckACCnKAAgpywAIKc0ACCnPAAgp0AAIKdEACCnTAAgp1AAIKk8ACCpRAAgqUwAIKlUACCpYAAgqWQAIKloACCpbAAgqXAAIKl4ACCpgAAgqYQAIKmIACCpkAAgqZQAIKuAACCriAAgq5QAIKucACCrqAAgq6wAIKuwACCrtAAgq7gAIKvAACCryAAgq8wAIKvQACCr2AAgq9wAIK3IACCt0AAgrdgAIK3gACCt7AAgrfAAIK30ACCt+AAgrfwAIK4EACCuDAAgrhAAIK4UACCuHAAgriAAILAMACCwFAAgsBwAILAkACCwMAAgsDQAILA4ACCwPAAgsEAAILBIACCwUAAgsFQAILBYACCwYAAgsGQAILJQACCyWAAgsmAAILJoACCydAAgsngAILJ8ACCygAAgsoQAILKMACCylAAgspgAILKcACCypAAgsqgAILLsACCy8AAgsvgAILTkACC07AAgtPQAILT8ACC1CAAgtQwAILUQACC1FAAgtRgAILUgACC1LAAgtTAAILU0ACC1PAAgtUAAILcsACC3NAAgtzwAILdEACC3UAAgt1QAILdYACC3XAAgt2AAILdoACC3dAAgt3gAILd8ACC3hAAgt4gAILl0ACC5fAAguYgAILmQACC5nAAguaAAILmkACC5qAAguawAILm0ACC5wAAgucQAILnIACC50AAgudQAILwgACC8rAAgvSwAIL2sACC9tAAgvbwAIL3EACC9zAAgvdgAIL3cACC94AAgvewAIL3wACC9+AAgvfwAIL4IACC+FAAg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J6QAISesACEoMAAhKDwAIShIACEoVAAhKGAAIShsACEoeAAhKIQAISiQACEomAAhKoQAISqMACEqlAAhKpwAISqoACEqrAAhKrAAISq0ACEquAAhKsAAISrIACEqzAAhKtAAISrYACEq3AAhLMgAISzQACEs2AAhLOAAISzsACEs8AAhLPQAISz4ACEs/AAhLQQAIS0MACEtEAAhLRQAIS0cACEtIAAhLwwAIS8UACEvIAAhLygAIS80ACEvOAAhLzwAIS9AACEvRAAhL0wAIS9UACEvWAAhL1wAIS9kACEvaAAhL8wAIS/QACEv1AAhL9wAITHIACEx0AAhMdgAITHgACEx7AAhMfAAITH0ACEx+AAhMfwAITIEACEyDAAhMhAAITIUACEyHAAhMiAAITQMACE0FAAhNBwAITQkACE0MAAhNDQAITQ4ACE0PAAhNEAAITRIACE0UAAhNFQAITRYACE0YAAhNGQAITZQACE2WAAhNmAAITZoACE2dAAhNngAITZ8ACE2gAAhNoQAITaMACE2lAAhNpgAITacACE2pAAhNqgAITiUACE4nAAhOKQAITisACE4uAAhOLwAITjAACE4xAAhOMgAITjQACE42AAhONwAITjgACE46AAhOOwAITrYACE64AAhOugAITrwACE6/AAhOwAAITsEACE7CAAhOwwAITsUACE7HAAhOyAAITskACE7LAAhOzAAITxUACE85AAhPYAAIT4QACE+HAAhPiQAIT4sACE+NAAhPjwAIT5EACE+SAAhPlQAIT64ACE/LAAhPzQAIT88ACE/RAAhP0wAIT9UACE/XAAhP2QAIT/YACE/5AAhP/AAIT/8ACFACAAhQBQAIUAgACFALAAhQDQAIUIgACFCKAAhQjAAIUI4ACFCRAAhQkgAIUJMACFCUAAhQlQAIUJcACFCZAAhQmgAIUJsACFCdAAhQngAIURkACFEbAAhRHQAIUR8ACFEiAAhRIwAIUSQACFElAAhRJgAIUSgACFEqAAhRKwAIUSwACFEuAAhRLwAIUaoACFGsAAhRrgAIUbAACFGzAAhRtAAIUbUACFG2AAhRtwAIUbkACFG7AAhRvAAIUb0ACFG/AAhRwAAIUjsACFI9AAhSPwAIUkEACFJEAAhSRQAIUkYACFJHAAhSSAAIUkoACFJMAAhSTQAIUk4ACFJQAAhSUQAIUswACFLOAAhS0AAIUtIACFLVAAhS1gAIUtcACFLYAAhS2QAIUtsACFLdAAhS3gAIUt8ACFLhAAhS4gAIU10ACFNfAAhTYgAIU2QACFNnAAhTaAAIU2kACFNqAAhTawAIU20ACFNvAAhTcAAIU3EACFNzAAhTdAAIU5gACFQTAAhUFQAIVBcACFQZAAhUHAAIVB0ACFQeAAhUHwAIVCAACFQiAAhUJAAIVCUACFQmAAhUKAAIVCkACFS8AAhU3wAIVP8ACFUfAAhVIQAIVSMACFUlAAhVJwAIVSoACFUrAAhVLAAIVS8ACFUwAAhVMgAIVTMACFU2AAhVOQAIVToACFU7AAhVPgAIVT8ACFVEAAhVXQAIVWYACFVoAAhVawAIVXQACFV3AAhVegAIVXwACFXFAAhV6QAIVhAACFY0AAhWNwAIVjkACFY7AAhWPQAIVj8ACFZBAAhWQgAIVkUACFZeAAhWfwAIVoEACFaDAAhWhQAIVocACFaJAAhWiwAIVo0ACFaPAAhWsAAIVrMACFa2AAhWuQAIVrwACFa/AAhWwgAIVsUACFbIAAhWygAIV0UACFdHAAhXSQAIV0sACFdOAAhXTwAIV1AACFdRAAhXUgAIV1QACFdWAAhXVwAIV1gACFdaAAhXWwAIV9YACFfYAAhX2gAIV9wACFffAAhX4AAIV+EACFfiAAhX4wAIV+UACFfnAAhX6AAIV+kACFfrAAhX7AAIWGcACFhpAAhYbAAIWG4ACFhxAAhYcgAIWHMACFh0AAhYdQAIWHcACFh5AAhYegAIWHsACFh9AAhYfgAIWJcACFiYAAhYmQAIWJsACFkWAAhZGAAIWRoACFkcAAhZHwAIWSAACFkhAAhZIgAIWSMACFklAAhZJwAIWSgACFkpAAhZKwAIWSwACFmnAAhZqQAIWasACFmtAAhZsAAIWbEACFmyAAhZswAIWbQACFm2AAhZuAAIWbkACFm6AAhZvAAIWb0ACFo4AAhaOgAIWjwACFo+AAhaQQAIWkIACFpDAAhaRAAIWkUACFpHAAhaSQAIWkoACFpLAAhaTQAIWk4ACFrJAAhaywAIWs0ACFrPAAha0gAIWtMACFrUAAha1QAIWtYACFrYAAha2gAIWtsACFrcAAha3gAIWt8ACFtaAAhbXAAIW14ACFtgAAhbYwAIW2QACFtlAAhbZgAIW2cACFtpAAhbawAIW2wACFttAAhbbwAIW3AACFu5AAhb3QAIXAQACFwoAAhcKwAIXC4ACFwwAAhcMgAIXDQACFw2AAhcNwAIXDoACFxTAAhccAAIXHMACFx2AAhceQAIXHwACFx/AAhcggAIXIUACFyiAAhcpQAIXKgACFyrAAhcrgAIXLEACFy0AAhctwAIXLkACF00AAhdNgAIXTkACF07AAhdPgAIXT8ACF1AAAhdQQAIXUIACF1EAAhdRwAIXUgACF1JAAhdSwAIXUwACF3HAAhdyQAIXcwACF3OAAhd0QAIXdIACF3TAAhd1AAIXdUACF3XAAhd2gAIXdsACF3cAAhd3gAIXd8ACF5aAAheXAAIXl8ACF5hAAheZAAIXmUACF5mAAheZwAIXmgACF5qAAhebQAIXm4ACF5vAAhecQAIXnIACF7tAAhe7wAIXvIACF70AAhe9wAIXvgACF75AAhe+gAIXvsACF79AAhfAAAIXwEACF8CAAhfBAAIXwUACF+IAAhfrAAIX9AACF/zAAhgGgAIYDoACGBhAAhgiAAIYKgACGDMAAhg8AAIYPIACGD1AAhg9wAIYPkACGD7AAhg/gAIYQEACGEDAAhhBQAIYQgACGEKAAhhDAAIYQ8ACGESAAhhEwAIYRgACGExAAhhNgAIYTgACGE9AAhhQAAIYUIACGGLAAhhrwAIYdYACGH6AAhh/QAIYf8ACGIBAAhiAwAIYgUACGIHAAhiCAAIYgsACGIkAAhiSQAIYksACGJNAAhiTwAIYlEACGJTAAhiVQAIYlcACGJZAAhiWwAIYoAACGKDAAhihgAIYokACGKMAAhijwAIYpIACGKVAAhimAAIYpsACGKdAAhjGAAIYxoACGMdAAhjHwAIYyIACGMjAAhjJAAIYyUACGMmAAhjKAAIYyoACGMrAAhjLAAIYy4ACGMvAAhjQAAIY0EACGNDAAhjvgAIY8AACGPCAAhjxAAIY8cACGPIAAhjyQAIY8oACGPLAAhjzQAIY88ACGPQAAhj0QAIY9MACGPUAAhkTwAIZFEACGRUAAhkVgAIZFkACGRaAAhkWwAIZFwACGRdAAhkXwAIZGEACGRiAAhkYwAIZGUACGRmAAhkdwAIZHgACGR6AAhk9QAIZPcACGT5AAhk+wAIZP4ACGT/AAhlAAAIZQEACGUCAAhlBAAIZQYACGUHAAhlCAAIZQoACGULAAhlhgAIZYgACGWLAAhljQAIZZAACGWRAAhlkgAIZZMACGWUAAhllgAIZZgACGWZAAhlmgAIZZwACGWdAAhlrgAIZa8ACGWxAAhmLAAIZi4ACGYwAAhmMgAIZjUACGY2AAhmNwAIZjgACGY5AAhmOwAIZj0ACGY+AAhmPwAIZkEACGZCAAhmvQAIZr8ACGbCAAhmxAAIZscACGbIAAhmyQAIZsoACGbLAAhmzQAIZs8ACGbQAAhm0QAIZtMACGbUAAhm7QAIZu4ACGbvAAhm8QAIZ2wACGduAAhncAAIZ3IACGd1AAhndgAIZ3cACGd4AAhneQAIZ3sACGd9AAhnfgAIZ38ACGeBAAhnggAIZ/0ACGf/AAhoAgAIaAQACGgHAAhoCAAIaAkACGgKAAhoCwAIaA0ACGgPAAhoEAAIaBEACGgTAAhoFAAIaCAACGg5AAhoVgAIaFkACGhcAAhoXwAIaGIACGhlAAhoaAAIaGsACGiIAAhoiwAIaI4ACGiRAAholAAIaJcACGiaAAhonQAIaJ8ACGiuAAhowAAIaNgACGjvAAhpCAAIaQ0ACGmgAAhpwwAIaeMACGoDAAhqBQAIagcACGoJAAhqCwAIag4ACGoPAAhqEAAIahMACGoUAAhqFgAIahcACGoZAAhqHAAIah0ACGoeAAhqIQAIaiIACGonAAhqQAAIakkACGpLAAhqTQAIalYACGpZAAhqXAAIal4ACGqnAAhqywAIavIACGsWAAhrGQAIaxsACGsdAAhrHwAIayEACGsjAAhrJAAIaycACGtAAAhrYQAIa2MACGtlAAhrZwAIa2kACGtrAAhrbQAIa28ACGtxAAhrkgAIa5UACGuYAAhrmwAIa54ACGuhAAhrpAAIa6cACGuqAAhrrAAIbCcACGwpAAhsKwAIbC0ACGwwAAhsMQAIbDIACGwzAAhsNAAIbDYACGw4AAhsOQAIbDoACGw8AAhsPQAIbLgACGy6AAhsvAAIbL4ACGzBAAhswgAIbMMACGzEAAhsxQAIbMcACGzJAAhsygAIbMsACGzNAAhszgAIbUkACG1LAAhtTgAIbVAACG1TAAhtVAAIbVUACG1WAAhtVwAIbVkACG1bAAhtXAAIbV0ACG1fAAhtYAAIbXkACG16AAhtewAIbX0ACG34AAht+gAIbfwACG3+AAhuAQAIbgIACG4DAAhuBAAIbgUACG4HAAhuCQAIbgoACG4LAAhuDQAIbg4ACG6JAAhuiwAIbo0ACG6PAAhukgAIbpMACG6UAAhulQAIbpYACG6YAAhumgAIbpsACG6cAAhungAIbp8ACG8aAAhvHAAIbx4ACG8gAAhvIwAIbyQACG8lAAhvJgAIbycACG8pAAhvKwAIbywACG8tAAhvLwAIbzAACG+rAAhvrQAIb68ACG+xAAhvtAAIb7UACG+2AAhvtwAIb7gACG+6AAhvvAAIb70ACG++AAhvwAAIb8EACHA8AAhwPgAIcEAACHBCAAhwRQAIcEYACHBHAAhwSAAIcEkACHBLAAhwTQAIcE4ACHBPAAhwUQAIcFIACHCbAAhwvwAIcOYACHEKAAhxDQAIcQ8ACHERAAhxEwAIcRUACHEXAAhxGAAIcRsACHE0AAhxUQAIcVMACHFVAAhxVwAIcVkACHFbAAhxXQAIcV8ACHF8AAhxfwAIcYIACHGFAAhxiAAIcYsACHGOAAhxkQAIcZMACHIOAAhyEAAIchIACHIUAAhyFwAIchgACHIZAAhyGgAIchsACHIdAAhyHwAIciAACHIhAAhyIwAIciQACHKfAAhyoQAIcqMACHKlAAhyqAAIcqkACHKqAAhyqwAIcqwACHKuAAhysAAIcrEACHKyAAhytAAIcrUACHMwAAhzMgAIczQACHM2AAhzOQAIczoACHM7AAhzPAAIcz0ACHM/AAhzQQAIc0IACHNDAAhzRQAIc0YACHPBAAhzwwAIc8YACHPIAAhzywAIc8wACHPNAAhzzgAIc88ACHPRAAhz0wAIc9QACHPVAAhz1wAIc9gACHRTAAh0VQAIdFcACHRZAAh0XAAIdF0ACHReAAh0XwAIdGAACHRiAAh0ZAAIdGUACHRmAAh0aAAIdGkACHTkAAh05gAIdOgACHTqAAh07QAIdO4ACHTvAAh08AAIdPEACHTzAAh09QAIdPYACHT3AAh0+QAIdPoACHV1AAh1dwAIdXkACHV7AAh1fgAIdX8ACHWAAAh1gQAIdYIACHWEAAh1hgAIdYcACHWIAAh1igAIdYsACHYeAAh2QQAIdmEACHaBAAh2gwAIdoUACHaHAAh2iQAIdowACHaNAAh2jgAIdpEACHaSAAh2lAAIdpUACHaXAAh2mgAIdpsACHacAAh2nwAIdqAACHapAAh2wgAIdssACHbNAAh2zwAIdtgACHbbAAh23gAIduAACHcpAAh3TQAId3QACHeYAAh3mwAId50ACHefAAh3oQAId6MACHelAAh3pgAId6kACHfCAAh34wAId+UACHfnAAh36QAId+sACHftAAh37wAId/EACHfzAAh4FAAIeBcACHgaAAh4HQAIeCAACHgjAAh4JgAIeCkACHgsAAh4LgAIeKkACHirAAh4rQAIeK8ACHiyAAh4swAIeLQACHi1AAh4tgAIeLgACHi6AAh4uwAIeLwACHi+AAh4vwAIeToACHk8AAh5PgAIeUAACHlDAAh5RAAIeUUACHlGAAh5RwAIeUkACHlLAAh5TAAIeU0ACHlPAAh5UAAIecsACHnNAAh50AAIedIACHnVAAh51gAIedcACHnYAAh52QAIedsACHndAAh53gAIed8ACHnhAAh54gAIefsACHn8AAh5/QAIef8ACHp6AAh6fAAIen4ACHqAAAh6gwAIeoQACHqFAAh6hgAIeocACHqJAAh6iwAIeowACHqNAAh6jwAIepAACHsLAAh7DQAIew8ACHsRAAh7FAAIexUACHsWAAh7FwAIexgACHsaAAh7HAAIex0ACHseAAh7IAAIeyEACHucAAh7ngAIe6AACHuiAAh7pQAIe6YACHunAAh7qAAIe6kACHurAAh7rQAIe64ACHuvAAh7sQAIe7IACHwtAAh8LwAIfDEACHwzAAh8NgAIfDcACHw4AAh8OQAIfDoACHw8AAh8PgAIfD8ACHxAAAh8QgAIfEMACHy+AAh8wAAIfMIACHzEAAh8xwAIfMgACHzJAAh8ygAIfMsACHzNAAh8zwAIfNAACHzRAAh80wAIfNQACH0dAAh9QQAIfWgACH2MAAh9jwAIfZEACH2TAAh9lQAIfZcACH2ZAAh9mgAIfZ0ACH22AAh90wAIfdUACH3XAAh92QAIfdsACH3dAAh93wAIfeEACH3+AAh+AQAIfgQACH4HAAh+CgAIfg0ACH4QAAh+EwAIfhUACH6QAAh+kgAIfpQACH6WAAh+mQAIfpoACH6bAAh+nAAIfp0ACH6fAAh+oQAIfqIACH6jAAh+pQAIfqYACH8hAAh/IwAIfyUACH8nAAh/KgAIfysACH8sAAh/LQAIfy4ACH8wAAh/MgAIfzMACH80AAh/NgAIfzcACH+yAAh/tAAIf7YACH+4AAh/uwAIf7wACH+9AAh/vgAIf78ACH/BAAh/wwAIf8QACH/FAAh/xwAIf8gACIBDAAiARQAIgEcACIBJAAiATAAIgE0ACIBOAAiATwAIgFAACIBSAAiAVAAIgFUACIBWAAiAWAAIgFkACIDUAAiA1gAIgNgACIDaAAiA3QAIgN4ACIDfAAiA4AAIgOEACIDjAAiA5QAIgOYACIDnAAiA6QAIgOoACIFlAAiBZwAIgWoACIFsAAiBbwAIgXAACIFxAAiBcgAIgXMACIF1AAiBdwAIgXgACIF5AAiBewAIgXwACIGLAAiCBgAIgggACIIKAAiCDAAIgg8ACIIQAAiCEQAIghIACIITAAiCFQAIghcACIIYAAiCGQAIghsACIIcAAiCrwAIgtIACILyAAiDEgAIgxQACIMWAAiDGAAIgxoACIMdAAiDHgAIgx8ACIMiAAiDIwAIgyUACIMmAAiDKAAIgysACIMsAAiDLQAIgzAACIMxAAiDNgAIg08ACINYAAiDWgAIg1wACINlAAiDaAAIg2sACINtAAiDtgAIg9oACIQBAAiEJQAIhCgACIQqAAiELAAIhC4ACIQwAAiEMgAIhDMACIQ2AAiETwAIhHAACIRyAAiEdAAIhHYACIR4AAiEegAIhHwACIR+AAiEgAAIhKEACISkAAiEpwAIhKoACIStAAiEsAAIhLMACIS2AAiEuQAIhLsACIU2AAiFOAAIhToACIU8AAiFPwAIhUAACIVBAAiFQgAIhUMACIVFAAiFRwAIhUgACIVJAAiFSwAIhUwACIXHAAiFyQAIhcsACIXNAAiF0AAIhdEACIXSAAiF0wAIhdQACIXWAAiF2AAIhdkACIXaAAiF3AAIhd0ACIZYAAiGWgAIhl0ACIZfAAiGYgAIhmMACIZkAAiGZQAIhmYACIZoAAiGagAIhmsACIZsAAiGbgAIhm8ACIaIAAiGiQAIhooACIaMAAiHBwAIhwkACIcLAAiHDQAIhxAACIcRAAiHEgAIhxMACIcUAAiHFgAIhxgACIcZAAiHGgAIhxwACIcdAAiHmAAIh5oACIecAAiHngAIh6EACIeiAAiHowAIh6QACIelAAiHpwAIh6kACIeqAAiHqwAIh60ACIeuAAiIKQAIiCsACIgtAAiILwAIiDIACIgzAAiINAAIiDUACIg2AAiIOAAIiDoACIg7AAiIPAAIiD4ACIg/AAiIugAIiLwACIi+AAiIwAAIiMMACIjEAAiIxQAIiMYACIjHAAiIyQAIiMsACIjMAAiIzQAIiM8ACIjQAAiJSwAIiU0ACIlPAAiJUQAIiVQACIlVAAiJVgAIiVcACIlYAAiJWgAIiVwACIldAAiJXgAIiWAACIlhAAiJqgAIic4ACIn1AAiKGQAIihwACIoeAAiKIAAIiiIACIokAAiKJgAIiicACIoqAAiKQwAIimAACIpiAAiKZAAIimYACIpoAAiKagAIimwACIpuAAiKiwAIio4ACIqRAAiKlAAIipcACIqaAAiKnQAIiqAACIqiAAiLHQAIix8ACIshAAiLIwAIiyYACIsnAAiLKAAIiykACIsqAAiLLAAIiy4ACIsvAAiLMAAIizIACIszAAiLrgAIi7AACIuyAAiLtAAIi7cACIu4AAiLuQAIi7oACIu7AAiLvQAIi78ACIvAAAiLwQAIi8MACIvEAAiMPwAIjEEACIxDAAiMRQAIjEgACIxJAAiMSgAIjEsACIxMAAiMTgAIjFAACIxRAAiMUgAIjFQACIxVAAiM0AAIjNIACIzVAAiM1wAIjNoACIzbAAiM3AAIjN0ACIzeAAiM4AAIjOIACIzjAAiM5AAIjOYACIznAAiNYgAIjWQACI1mAAiNaAAIjWsACI1sAAiNbQAIjW4ACI1vAAiNcQAIjXMACI10AAiNdQAIjXcACI14AAiN8wAIjfUACI33AAiN+QAIjfwACI39AAiN/gAIjf8ACI4AAAiOAgAIjgQACI4FAAiOBgAIjggACI4JAAiOhAAIjoYACI6IAAiOigAIjo0ACI6OAAiOjwAIjpAACI6RAAiOkwAIjpUACI6WAAiOlwAIjpkACI6aAAiPLQAIj1AACI9wAAiPkAAIj5IACI+UAAiPlgAIj5gACI+bAAiPnAAIj50ACI+gAAiPoQAIj6MACI+kAAiPpwAIj6oACI+rAAiPrAAIj68ACI+wAAiPtQAIj84ACI/XAAiP2QAIj9wACI/lAAiP6AAIj+sACI/tAAiQNgAIkFoACJCBAAiQpQAIkKgACJCqAAiQrAAIkK4ACJCwAAiQsgAIkLMACJC2AAiQzwAIkPAACJDyAAiQ9AAIkPYACJD4AAiQ+gAIkPwACJD+AAiRAAAIkSEACJEkAAiRJwAIkSoACJEtAAiRMAAIkTMACJE2AAiROQAIkTsACJG2AAiRuAAIkboACJG8AAiRvwAIkcAACJHBAAiRwgAIkcMACJHFAAiRxwAIkcgACJHJAAiRywAIkcwACJJHAAiSSQAIkksACJJNAAiSUAAIklEACJJSAAiSUwAIklQACJJWAAiSWAAIklkACJJaAAiSXAAIkl0ACJLYAAiS2gAIkt0ACJLfAAiS4gAIkuMACJLkAAiS5QAIkuYACJLoAAiS6gAIkusACJLsAAiS7gAIku8ACJMIAAiTCQAIkwoACJMMAAiThwAIk4kACJOLAAiTjQAIk5AACJORAAiTkgAIk5MACJOUAAiTlgAIk5gACJOZAAiTmgAIk5wACJOdAAiUGAAIlBoACJQcAAiUHgAIlCEACJQiAAiUIwAIlCQACJQlAAiUJwAIlCkACJQqAAiUKwAIlC0ACJQuAAiUqQAIlKsACJStAAiUrwAIlLIACJSzAAiUtAAIlLUACJS2AAiUuAAIlLoACJS7AAiUvAAIlL4ACJS/AAiVOgAIlTwACJU+AAiVQAAIlUMACJVEAAiVRQAIlUYACJVHAAiVSQAIlUsACJVMAAiVTQAIlU8ACJVQAAiVywAIlc0ACJXPAAiV0QAIldQACJXVAAiV1gAIldcACJXYAAiV2gAIldwACJXdAAiV3gAIleAACJXhAAiWKgAIlk4ACJZ1AAiWmQAIlpwACJafAAiWoQAIlqMACJalAAiWpwAIlqgACJarAAiWxAAIluEACJbkAAiW5wAIluoACJbtAAiW8AAIlvMACJb2AAiXEwAIlxYACJcZAAiXHAAIlx8ACJciAAiXJQAIlygACJcqAAiXpQAIl6cACJeqAAiXrAAIl68ACJewAAiXsQAIl7IACJezAAiXtQAIl7gACJe5AAiXugAIl7wACJe9AAiYOAAImDoACJg9AAiYPwAImEIACJhDAAiYRAAImEUACJhGAAiYSAAImEsACJhMAAiYTQAImE8ACJhQAAiYywAImM0ACJjQAAiY0gAImNUACJjWAAiY1wAImNgACJjZAAiY2wAImN4ACJjfAAiY4AAImOIACJjjAAiZXgAImWAACJljAAiZZQAImWgACJlpAAiZagAImWsACJlsAAiZbgAImXEACJlyAAiZcwAImXUACJl2AAiZ8QAImfMACJn1AAiZ9wAImfoACJn7AAiZ/AAImf0ACJn+AAiaAAAImgMACJoEAAiaBQAImgcACJoIAAiagwAImoUACJqHAAiaiQAImowACJqNAAiajgAImo8ACJqQAAiakgAImpUACJqWAAialwAImpkACJqaAAibFQAImxcACJsaAAibHAAImx8ACJsgAAibIQAImyIACJsjAAibJQAImygACJspAAibKgAImywACJstAAibwAAIm+MACJwDAAicIwAInCUACJwnAAicKQAInCsACJwuAAicLwAInDAACJwzAAicNAAInDYACJw3AAicOgAInD0ACJw+AAicPwAInEIACJxDAAicSAAInGEACJxqAAicbAAInG8ACJx4AAicewAInH4ACJyAAAicyQAInO0ACJ0UAAidOAAInTsACJ09AAidPwAInUEACJ1DAAidRQAInUYACJ1JAAidYgAInYMACJ2FAAidhwAInYkACJ2LAAidjQAInY8ACJ2RAAidkwAInbQACJ23AAidugAInb0ACJ3AAAidwwAIncYACJ3JAAidzAAInc4ACJ5JAAieSwAInk0ACJ5PAAieUgAInlMACJ5UAAieVQAInlYACJ5YAAieWgAInlsACJ5cAAieXgAInl8ACJ7aAAie3AAInt4ACJ7gAAie4wAInuQACJ7lAAie5gAInucACJ7pAAie6wAInuwACJ7tAAie7wAInvAACJ9rAAifbQAIn3AACJ9yAAifdQAIn3YACJ93AAifeAAIn3kACJ97AAiffQAIn34ACJ9/AAifgQAIn4IACJ+bAAifnAAIn50ACJ+fAAigGgAIoBwACKAeAAigIAAIoCMACKAkAAigJQAIoCYACKAnAAigKQAIoCsACKAsAAigLQAIoC8ACKAwAAigqwAIoK0ACKCvAAigsQAIoLQACKC1AAigtgAIoLcACKC4AAigugAIoLwACKC9AAigvgAIoMAACKDBAAihPAAIoT4ACKFAAAihQgAIoUUACKFGAAihRwAIoUgACKFJAAihSwAIoU0ACKFOAAihTwAIoVEACKFSAAihzQAIoc8ACKHRAAih0wAIodYACKHXAAih2AAIodkACKHaAAih3AAIod4ACKHfAAih4AAIoeIACKHjAAiiXgAIomAACKJiAAiiZAAIomcACKJoAAiiaQAIomoACKJrAAiibQAIom8ACKJwAAiicQAIonMACKJ0AAiivQAIouEACKMIAAijLAAIoy8ACKMyAAijNAAIozYACKM4AAijOgAIozsACKM+AAijVwAIo3QACKN3AAijegAIo30ACKOAAAijgwAIo4YACKOJAAijpgAIo6kACKOsAAijrwAIo7IACKO1AAijuAAIo7sACKO9AAikOAAIpDoACKQ9AAikPwAIpEIACKRDAAikRAAIpEUACKRGAAikSAAIpEsACKRMAAikTQAIpE8ACKRQAAikywAIpM0ACKTQAAik0gAIpNUACKTWAAik1wAIpNgACKTZAAik2wAIpN4ACKTfAAik4AAIpOIACKTjAAilXgAIpWAACKVjAAilZQAIpWgACKVpAAilagAIpWsACKVsAAilbgAIpXEACKVyAAilcwAIpXUACKV2AAil8QAIpfMACKX2AAil+AAIpfsACKX8AAil/QAIpf4ACKX/AAimAQAIpgQACKYFAAimBgAIpggACKYJAAimhAAIpoYACKaIAAimigAIpo0ACKaOAAimjwAIppAACKaRAAimkwAIppYACKaXAAimmAAIppoACKabAAinFgAIpxgACKcaAAinHAAIpx8ACKcgAAinIQAIpyIACKcjAAinJQAIpygACKcpAAinKgAIpywACKctAAinqAAIp6oACKetAAinrwAIp7IACKezAAintAAIp7UACKe2AAinuAAIp7sACKe8AAinvQAIp78ACKfAAAioUwAIqHYACKiWAAiotgAIqLgACKi6AAiovAAIqL4ACKjBAAiowgAIqMMACKjGAAioxwAIqMkACKjKAAiozQAIqNAACKjRAAio0gAIqNUACKjWAAio2wAIqPQACKj9AAio/wAIqQIACKkLAAipDgAIqREACKkTAAipXAAIqYAACKmnAAipywAIqc4ACKnQAAip0gAIqdQACKnWAAip2AAIqdkACKncAAip9QAIqhYACKoYAAiqGgAIqhwACKoeAAiqIAAIqiIACKokAAiqJgAIqkcACKpKAAiqTQAIqlAACKpTAAiqVgAIqlkACKpcAAiqXwAIqmEACKrcAAiq3gAIquAACKriAAiq5QAIquYACKrnAAiq6AAIqukACKrrAAiq7QAIqu4ACKrvAAiq8QAIqvIACKttAAirbwAIq3EACKtzAAirdgAIq3cACKt4AAireQAIq3oACKt8AAirfgAIq38ACKuAAAirggAIq4MACKv+AAisAAAIrAMACKwFAAisCAAIrAkACKwKAAisCwAIrAwACKwOAAisEAAIrBEACKwSAAisFAAIrBUACKwuAAisLwAIrDAACKwyAAisrQAIrK8ACKyxAAisswAIrLYACKy3AAisuAAIrLkACKy6AAisvAAIrL4ACKy/AAiswAAIrMIACKzDAAitPgAIrUAACK1CAAitRAAIrUcACK1IAAitSQAIrUoACK1LAAitTQAIrU8ACK1QAAitUQAIrVMACK1UAAitzwAIrdEACK3TAAit1QAIrdgACK3ZAAit2gAIrdsACK3cAAit3gAIreAACK3hAAit4gAIreQACK3lAAiuYAAIrmIACK5kAAiuZgAIrmkACK5qAAiuawAIrmwACK5tAAiubwAIrnEACK5yAAiucwAIrnUACK52AAiu8QAIrvMACK71AAiu9wAIrvoACK77AAiu/AAIrv0ACK7+AAivAAAIrwIACK8DAAivBAAIrwYACK8HAAivUAAIr3QACK+bAAivvwAIr8IACK/FAAivxwAIr8kACK/LAAivzQAIr84ACK/RAAiv6gAIsAcACLAKAAiwDQAIsBAACLATAAiwFgAIsBkACLAcAAiwOQAIsDwACLA/AAiwQgAIsEUACLBIAAiwSwAIsE4ACLBQAAiwywAIsM0ACLDQAAiw0gAIsNUACLDWAAiw1wAIsNgACLDZAAiw2wAIsN4ACLDfAAiw4AAIsOIACLDjAAixXgAIsWAACLFjAAixZQAIsWgACLFpAAixagAIsWsACLFsAAixbgAIsXEACLFyAAixcwAIsXUACLF2AAix8QAIsfMACLH2AAix+AAIsfsACLH8AAix/QAIsf4ACLH/AAiyAQAIsgQACLIFAAiyBgAIsggACLIJAAiyhAAIsoYACLKJAAiyiwAIso4ACLKPAAiykAAIspEACLKSAAiylAAIspcACLKYAAiymQAIspsACLKcAAizFwAIsxkACLMbAAizHQAIsyAACLMhAAizIgAIsyMACLMkAAizJgAIsykACLMqAAizKwAIsy0ACLMuAAizqQAIs6sACLOtAAizrwAIs7IACLOzAAiztAAIs7UACLO2AAizuAAIs7sACLO8AAizvQAIs78ACLPAAAi0OwAItD0ACLRAAAi0QgAItEUACLRGAAi0RwAItEgACLRJAAi0SwAItE4ACLRPAAi0UAAItFIACLRTAAi05gAItQkACLUpAAi1SQAItUsACLVNAAi1TwAItVEACLVUAAi1VQAItVYACLVZAAi1WgAItVwACLVdAAi1XwAItWIACLVjAAi1ZAAItWcACLVoAAi1bQAItYYACLWPAAi1kQAItZMACLWcAAi1nwAItaIACLWkAAi17QAIthEACLY4AAi2XAAItl8ACLZhAAi2YwAItmUACLZnAAi2aQAItmoACLZtAAi2hgAItqcACLapAAi2qwAItq0ACLavAAi2sQAItrMACLa1AAi2twAIttgACLbbAAi23gAItuEACLbkAAi25wAItuoACLbtAAi28AAItvIACLdtAAi3bwAIt3EACLdzAAi3dgAIt3cACLd4AAi3eQAIt3oACLd8AAi3fgAIt38ACLeAAAi3ggAIt4MACLf+AAi4AAAIuAIACLgEAAi4BwAIuAgACLgJAAi4CgAIuAsACLgNAAi4DwAIuBAACLgRAAi4EwAIuBQACLiPAAi4kQAIuJQACLiWAAi4mQAIuJoACLibAAi4nAAIuJ0ACLifAAi4oQAIuKIACLijAAi4pQAIuKYACLi/AAi4wAAIuMEACLjDAAi5PgAIuUAACLlCAAi5RAAIuUcACLlIAAi5SQAIuUoACLlLAAi5TQAIuU8ACLlQAAi5UQAIuVMACLlUAAi5zwAIudEACLnTAAi51QAIudgACLnZAAi52gAIudsACLncAAi53gAIueAACLnhAAi54gAIueQACLnlAAi6YAAIumIACLpkAAi6ZgAIumkACLpqAAi6awAIumwACLptAAi6bwAIunEACLpyAAi6cwAIunUACLp2AAi68QAIuvMACLr1AAi69wAIuvoACLr7AAi6/AAIuv0ACLr+AAi7AAAIuwIACLsDAAi7BAAIuwYACLsHAAi7ggAIu4QACLuGAAi7iAAIu4sACLuMAAi7jQAIu44ACLuPAAi7kQAIu5MACLuUAAi7lQAIu5cACLuYAAi74QAIvAUACLwsAAi8UAAIvFMACLxVAAi8VwAIvFkACLxbAAi8XQAIvF4ACLxhAAi8egAIvJcACLyZAAi8mwAIvJ0ACLyfAAi8oQAIvKMACLylAAi8wgAIvMUACLzIAAi8ywAIvM4ACLzRAAi81AAIvNcACLzZAAi9VAAIvVYACL1YAAi9WgAIvV0ACL1eAAi9XwAIvWAACL1hAAi9YwAIvWUACL1mAAi9ZwAIvWkACL1qAAi95QAIvecACL3pAAi96wAIve4ACL3vAAi98AAIvfEACL3yAAi99AAIvfYACL33AAi9+AAIvfoACL37AAi+dgAIvngACL56AAi+fAAIvn8ACL6AAAi+gQAIvoIACL6DAAi+hQAIvocACL6IAAi+iQAIvosACL6MAAi/BwAIvwkACL8MAAi/DgAIvxEACL8SAAi/EwAIvxQACL8VAAi/FwAIvxkACL8aAAi/GwAIvx0ACL8eAAi/mQAIv5sACL+dAAi/nwAIv6IACL+jAAi/pAAIv6UACL+mAAi/qAAIv6oACL+rAAi/rAAIv64ACL+vAAjAKgAIwCwACMAuAAjAMAAIwDMACMA0AAjANQAIwDYACMA3AAjAOQAIwDsACMA8AAjAPQAIwD8ACMBAAAjAuwAIwL0ACMC/AAjAwQAIwMQACMDFAAjAxgAIwMcACMDIAAjAygAIwMwACMDNAAjAzgAIwNAACMDRAAjBZAAIwYcACMGnAAjBxwAIwckACMHLAAjBzQAIwc8ACMHSAAjB0wAIwdQACMHXAAjB2AAIwdoACMHbAAjB3QAIweAACMHhAAjB4gAIweUACMHmAAjB6wAIwgQACMINAAjCDwAIwhEACMIaAAjCHQAIwiAACMIiAAjCawAIwo8ACMK2AAjC2gAIwt0ACMLfAAjC4QAIwuMACMLlAAjC5wAIwugACMLrAAjDBAAIwyUACMMnAAjDKQAIwysACMMtAAjDLwAIwzEACMMzAAjDNQAIw1YACMNZAAjDXAAIw18ACMNiAAjDZQAIw2gACMNrAAjDbgAIw3AACMPrAAjD7QAIw+8ACMPxAAjD9AAIw/UACMP2AAjD9wAIw/gACMP6AAjD/AAIw/0ACMP+AAjEAAAIxAEACMR8AAjEfgAIxIAACMSCAAjEhQAIxIYACMSHAAjEiAAIxIkACMSLAAjEjQAIxI4ACMSPAAjEkQAIxJIACMUNAAjFDwAIxRIACMUUAAjFFwAIxRgACMUZAAjFGgAIxRsACMUdAAjFHwAIxSAACMUhAAjFIwAIxSQACMU9AAjFPgAIxT8ACMVBAAjFvAAIxb4ACMXAAAjFwgAIxcUACMXGAAjFxwAIxcgACMXJAAjFywAIxc0ACMXOAAjFzwAIxdEACMXSAAjGTQAIxk8ACMZRAAjGUwAIxlYACMZXAAjGWAAIxlkACMZaAAjGXAAIxl4ACMZfAAjGYAAIxmIACMZjAAjG3gAIxuAACMbiAAjG5AAIxucACMboAAjG6QAIxuoACMbrAAjG7QAIxu8ACMbwAAjG8QAIxvMACMb0AAjHbwAIx3EACMdzAAjHdQAIx3gACMd5AAjHegAIx3sACMd8AAjHfgAIx4AACMeBAAjHggAIx4QACMeFAAjIAAAIyAIACMgEAAjIBgAIyAkACMgKAAjICwAIyAwACMgNAAjIDwAIyBEACMgSAAjIEwAIyBUACMgWAAjIXwAIyIMACMiqAAjIzgAIyNEACMjTAAjI1QAIyNcACMjZAAjI2wAIyNwACMjfAAjI+AAIyRUACMkXAAjJGQAIyRsACMkdAAjJHwAIySEACMkjAAjJQAAIyUMACMlGAAjJSQAIyUwACMlPAAjJUgAIyVUACMlXAAjJ0gAIydQACMnWAAjJ2AAIydsACMncAAjJ3QAIyd4ACMnfAAjJ4QAIyeMACMnkAAjJ5QAIyecACMnoAAjKYwAIymUACMpnAAjKaQAIymwACMptAAjKbgAIym8ACMpwAAjKcgAIynQACMp1AAjKdgAIyngACMp5AAjK9AAIyvYACMr4AAjK+gAIyv0ACMr+AAjK/wAIywAACMsBAAjLAwAIywUACMsGAAjLBwAIywkACMsKAAjLhQAIy4cACMuKAAjLjAAIy48ACMuQAAjLkQAIy5IACMuTAAjLlQAIy5cACMuYAAjLmQAIy5sACMucAAjMFwAIzBkACMwbAAjMHQAIzCAACMwhAAjMIgAIzCMACMwkAAjMJgAIzCgACMwpAAjMKgAIzCwACMwtAAjMqAAIzKoACMysAAjMrgAIzLEACMyyAAjMswAIzLQACMy1AAjMtwAIzLkACMy6AAjMuwAIzL0ACMy+AAjNOQAIzTsACM09AAjNPwAIzUIACM1DAAjNRAAIzUUACM1GAAjNSAAIzUoACM1LAAjNTAAIzU4ACM1PAAjNYAAIzWEACM1jAAjN3gAIzeAACM3iAAjN5AAIzecACM3oAAjN6QAIzeoACM3rAAjN7QAIzfAACM3xAAjN8gAIzfQACM31AAjOcAAIznIACM50AAjOdgAIznkACM56AAjOewAIznwACM59AAjOfwAIzoIACM6DAAjOhAAIzoYACM6HAAjPAgAIzwQACM8HAAjPCQAIzwwACM8NAAjPDgAIzw8ACM8QAAjPEgAIzxUACM8WAAjPFwAIzxkACM8aAAjPrQAIz9AACM/wAAjQEAAI0BIACNAUAAjQFgAI0BgACNAbAAjQHAAI0B0ACNAgAAjQIQAI0CMACNAkAAjQJgAI0CkACNAqAAjQKwAI0C4ACNAvAAjQNAAI0E0ACNBWAAjQWAAI0FoACNBjAAjQZgAI0GkACNBrAAjQtAAI0NgACND/AAjRIwAI0SYACNEoAAjRKgAI0SwACNEuAAjRMAAI0TEACNE0AAjRTQAI0W4ACNFwAAjRcgAI0XQACNF2AAjReAAI0XoACNF8AAjRfgAI0Z8ACNGiAAjRpQAI0agACNGrAAjRrgAI0bEACNG0AAjRtwAI0bkACNI0AAjSNgAI0jgACNI6AAjSPQAI0j4ACNI/AAjSQAAI0kEACNJDAAjSRQAI0kYACNJHAAjSSQAI0koACNLFAAjSxwAI0skACNLLAAjSzgAI0s8ACNLQAAjS0QAI0tIACNLUAAjS1gAI0tcACNLYAAjS2gAI0tsACNNWAAjTWAAI01sACNNdAAjTYAAI02EACNNiAAjTYwAI02QACNNmAAjTaAAI02kACNNqAAjTbAAI020ACNOGAAjThwAI04gACNOKAAjUBQAI1AcACNQJAAjUCwAI1A4ACNQPAAjUEAAI1BEACNQSAAjUFAAI1BYACNQXAAjUGAAI1BoACNQbAAjUlgAI1JgACNSaAAjUnAAI1J8ACNSgAAjUoQAI1KIACNSjAAjUpQAI1KcACNSoAAjUqQAI1KsACNSsAAjVJwAI1SkACNUrAAjVLQAI1TAACNUxAAjVMgAI1TMACNU0AAjVNgAI1TgACNU5AAjVOgAI1TwACNU9AAjVuAAI1boACNW8AAjVvgAI1cEACNXCAAjVwwAI1cQACNXFAAjVxwAI1ckACNXKAAjVywAI1c0ACNXOAAjWSQAI1ksACNZNAAjWTwAI1lIACNZTAAjWVAAI1lUACNZWAAjWWAAI1loACNZbAAjWXAAI1l4ACNZfAAjWqAAI1swACNbzAAjXFwAI1xoACNccAAjXHgAI1yAACNciAAjXJAAI1yUACNcoAAjXQQAI114ACNdgAAjXYgAI12QACNdmAAjXaAAI12oACNdsAAjXiQAI14wACNePAAjXkgAI15UACNeYAAjXmwAI154ACNegAAjYGwAI2B0ACNgfAAjYIQAI2CQACNglAAjYJgAI2CcACNgoAAjYKgAI2CwACNgtAAjYLgAI2DAACNgxAAjYrAAI2K4ACNiwAAjYsgAI2LUACNi2AAjYtwAI2LgACNi5AAjYuwAI2L0ACNi+AAjYvwAI2MEACNjCAAjZPQAI2T8ACNlBAAjZQwAI2UYACNlHAAjZSAAI2UkACNlKAAjZTAAI2U4ACNlPAAjZUAAI2VIACNlTAAjZzgAI2dAACNnSAAjZ1AAI2dcACNnYAAjZ2QAI2doACNnbAAjZ3QAI2d8ACNngAAjZ4QAI2eMACNnkAAjaXwAI2mEACNpjAAjaZQAI2mgACNppAAjaagAI2msACNpsAAjabgAI2nAACNpxAAjacgAI2nQACNp1AAja8AAI2vIACNr1AAja9wAI2voACNr7AAja/AAI2v0ACNr+AAjbAAAI2wIACNsDAAjbBAAI2wYACNsHAAjbJgAI26EACNujAAjbpQAI26cACNuqAAjbqwAI26wACNutAAjbrgAI27AACNuyAAjbswAI27QACNu2AAjbtwAI3EoACNxtAAjcjQAI3K0ACNyvAAjcsQAI3LMACNy1AAjcuAAI3LkACNy6AAjcvQAI3L4ACNzAAAjcwQAI3MQACNzHAAjcyAAI3MkACNzMAAjczQAI3NIACNzrAAjc9AAI3PYACNz5AAjdAgAI3QUACN0IAAjdCgAI3VMACN13AAjdngAI3cIACN3FAAjdxwAI3ckACN3LAAjdzQAI3c8ACN3QAAjd0wAI3ewACN4NAAjeDwAI3hEACN4TAAjeFQAI3hcACN4ZAAjeGwAI3h0ACN4+AAjeQQAI3kQACN5HAAjeSgAI3k0ACN5QAAjeUwAI3lYACN5YAAje0wAI3tUACN7XAAje2QAI3twACN7dAAje3gAI3t8ACN7gAAje4gAI3uQACN7lAAje5gAI3ugACN7pAAjfZAAI32YACN9oAAjfagAI320ACN9uAAjfbwAI33AACN9xAAjfcwAI33UACN92AAjfdwAI33kACN96AAjf9QAI3/cACN/6AAjf/AAI3/8ACOAAAAjgAQAI4AIACOADAAjgBQAI4AcACOAIAAjgCQAI4AsACOAMAAjgJQAI4CYACOAnAAjgKQAI4KQACOCmAAjgqAAI4KoACOCtAAjgrgAI4K8ACOCwAAjgsQAI4LMACOC1AAjgtgAI4LcACOC5AAjgugAI4TUACOE3AAjhOQAI4TsACOE+AAjhPwAI4UAACOFBAAjhQgAI4UQACOFGAAjhRwAI4UgACOFKAAjhSwAI4cYACOHIAAjhygAI4cwACOHPAAjh0AAI4dEACOHSAAjh0wAI4dUACOHXAAjh2AAI4dkACOHbAAjh3AAI4lcACOJZAAjiWwAI4l0ACOJgAAjiYQAI4mIACOJjAAjiZAAI4mYACOJoAAjiaQAI4moACOJsAAjibQAI4ugACOLqAAji7AAI4u4ACOLxAAji8gAI4vMACOL0AAji9QAI4vcACOL5AAji+gAI4vsACOL9AAji/gAI40cACONrAAjjkgAI47YACOO5AAjjvAAI474ACOPAAAjjwgAI48QACOPFAAjjyAAI4+EACOP+AAjkAQAI5AQACOQHAAjkCgAI5A0ACOQQAAjkEwAI5DAACOQzAAjkNgAI5DkACOQ8AAjkPwAI5EIACORFAAjkRwAI5MIACOTEAAjkxwAI5MkACOTMAAjkzQAI5M4ACOTPAAjk0AAI5NIACOTVAAjk1gAI5NcACOTZAAjk2gAI5VUACOVXAAjlWgAI5VwACOVfAAjlYAAI5WEACOViAAjlYwAI5WUACOVoAAjlaQAI5WoACOVsAAjlbQAI5egACOXqAAjl7QAI5e8ACOXyAAjl8wAI5fQACOX1AAjl9gAI5fgACOX7AAjl/AAI5f0ACOX/AAjmAAAI5nsACOZ9AAjmgAAI5oIACOaFAAjmhgAI5ocACOaIAAjmiQAI5osACOaOAAjmjwAI5pAACOaSAAjmkwAI5w4ACOcQAAjnEgAI5xQACOcXAAjnGAAI5xkACOcaAAjnGwAI5x0ACOcgAAjnIQAI5yIACOckAAjnJQAI56AACOeiAAjnpAAI56YACOepAAjnqgAI56sACOesAAjnrQAI568ACOeyAAjnswAI57QACOe2AAjntwAI6DIACOg0AAjoNwAI6DkACOg8AAjoPQAI6D4ACOg/AAjoQAAI6EIACOhFAAjoRgAI6EcACOhJAAjoSgAI6N0ACOkAAAjpIAAI6UAACOlCAAjpRAAI6UYACOlIAAjpSwAI6UwACOlNAAjpUAAI6VEACOlTAAjpVAAI6VcACOlaAAjpWwAI6VwACOlfAAjpYAAI6WUACOl+AAjphwAI6YkACOmMAAjplQAI6ZgACOmbAAjpnQAI6eYACOoKAAjqMQAI6lUACOpYAAjqWgAI6lwACOpeAAjqYAAI6mIACOpjAAjqZgAI6n8ACOqgAAjqogAI6qQACOqmAAjqqAAI6qoACOqsAAjqrgAI6rAACOrRAAjq1AAI6tcACOraAAjq3QAI6uAACOrjAAjq5gAI6ukACOrrAAjrZgAI62gACOtqAAjrbAAI628ACOtwAAjrcQAI63IACOtzAAjrdQAI63cACOt4AAjreQAI63sACOt8AAjr9wAI6/kACOv7AAjr/QAI7AAACOwBAAjsAgAI7AMACOwEAAjsBgAI7AgACOwJAAjsCgAI7AwACOwNAAjsiAAI7IoACOyNAAjsjwAI7JIACOyTAAjslAAI7JUACOyWAAjsmAAI7JoACOybAAjsnAAI7J4ACOyfAAjsuAAI7LkACOy6AAjsvAAI7TcACO05AAjtOwAI7T0ACO1AAAjtQQAI7UIACO1DAAjtRAAI7UYACO1IAAjtSQAI7UoACO1MAAjtTQAI7cgACO3KAAjtzAAI7c4ACO3RAAjt0gAI7dMACO3UAAjt1QAI7dcACO3ZAAjt2gAI7dsACO3dAAjt3gAI7lkACO5bAAjuXQAI7l8ACO5iAAjuYwAI7mQACO5lAAjuZgAI7mgACO5qAAjuawAI7mwACO5uAAjubwAI7uoACO7sAAju7gAI7vAACO7zAAju9AAI7vUACO72AAju9wAI7vkACO77AAju/AAI7v0ACO7/AAjvAAAI73sACO99AAjvfwAI74EACO+EAAjvhQAI74YACO+HAAjviAAI74oACO+MAAjvjQAI744ACO+QAAjvkQAI79oACO/+AAjwJQAI8EkACPBMAAjwTwAI8FEACPBTAAjwVQAI8FcACPBYAAjwWwAI8HQACPCRAAjwlAAI8JcACPCaAAjwnQAI8KAACPCjAAjwpgAI8MMACPDGAAjwyQAI8MwACPDPAAjw0gAI8NUACPDYAAjw2gAI8VUACPFXAAjxWgAI8VwACPFfAAjxYAAI8WEACPFiAAjxYwAI8WUACPFoAAjxaQAI8WoACPFsAAjxbQAI8egACPHqAAjx7QAI8e8ACPHyAAjx8wAI8fQACPH1AAjx9gAI8fgACPH7AAjx/AAI8f0ACPH/AAjyAAAI8nsACPJ9AAjygAAI8oIACPKFAAjyhgAI8ocACPKIAAjyiQAI8osACPKOAAjyjwAI8pAACPKSAAjykwAI8w4ACPMQAAjzEwAI8xUACPMYAAjzGQAI8xoACPMbAAjzHAAI8x4ACPMhAAjzIgAI8yMACPMlAAjzJgAI86EACPOjAAjzpQAI86cACPOqAAjzqwAI86wACPOtAAjzrgAI87AACPOzAAjztAAI87UACPO3AAjzuAAI9DMACPQ1AAj0NwAI9DkACPQ8AAj0PQAI9D4ACPQ/AAj0QAAI9EIACPRFAAj0RgAI9EcACPRJAAj0SgAI9MUACPTHAAj0ygAI9MwACPTPAAj00AAI9NEACPTSAAj00wAI9NUACPTYAAj02QAI9NoACPTcAAj03QAI9XAACPWTAAj1swAI9dMACPXVAAj11wAI9dkACPXbAAj13gAI9d8ACPXgAAj14wAI9eQACPXmAAj15wAI9eoACPXtAAj17gAI9e8ACPXyAAj18wAI9fgACPYRAAj2GgAI9hwACPYfAAj2KAAI9isACPYuAAj2MAAI9nkACPadAAj2xAAI9ugACPbrAAj27QAI9u8ACPbxAAj28wAI9vUACPb2AAj2+QAI9xIACPczAAj3NQAI9zcACPc5AAj3OwAI9z0ACPc/AAj3QQAI90MACPdkAAj3ZwAI92oACPdtAAj3cAAI93MACPd2AAj3eQAI93wACPd+AAj3+QAI9/sACPf9AAj3/wAI+AIACPgDAAj4BAAI+AUACPgGAAj4CAAI+AoACPgLAAj4DAAI+A4ACPgPAAj4igAI+IwACPiOAAj4kAAI+JMACPiUAAj4lQAI+JYACPiXAAj4mQAI+JsACPicAAj4nQAI+J8ACPigAAj5GwAI+R0ACPkgAAj5IgAI+SUACPkmAAj5JwAI+SgACPkpAAj5KwAI+S0ACPkuAAj5LwAI+TEACPkyAAj5SwAI+UwACPlNAAj5TwAI+coACPnMAAj5zgAI+dAACPnTAAj51AAI+dUACPnWAAj51wAI+dkACPnbAAj53AAI+d0ACPnfAAj54AAI+lsACPpdAAj6XwAI+mEACPpkAAj6ZQAI+mYACPpnAAj6aAAI+moACPpsAAj6bQAI+m4ACPpwAAj6cQAI+uwACPruAAj68AAI+vIACPr1AAj69gAI+vcACPr4AAj6+QAI+vsACPr9AAj6/gAI+v8ACPsBAAj7AgAI+30ACPt/AAj7gQAI+4MACPuGAAj7hwAI+4gACPuJAAj7igAI+4wACPuOAAj7jwAI+5AACPuSAAj7kwAI/A4ACPwQAAj8EgAI/BQACPwXAAj8GAAI/BkACPwaAAj8GwAI/B0ACPwfAAj8IAAI/CEACPwjAAj8JAAI/G0ACPyRAAj8uAAI/NwACPzfAAj84gAI/OQACPzmAAj86AAI/OoACPzrAAj87gAI/QcACP0kAAj9JwAI/SoACP0tAAj9MAAI/TMACP02AAj9OQAI/VYACP1ZAAj9XAAI/V8ACP1iAAj9ZQAI/WgACP1rAAj9bQAI/egACP3qAAj97QAI/e8ACP3yAAj98wAI/fQACP31AAj99gAI/fgACP37AAj9/AAI/f0ACP3/AAj+AAAI/nsACP59AAj+gAAI/oIACP6FAAj+hgAI/ocACP6IAAj+iQAI/osACP6OAAj+jwAI/pAACP6SAAj+kwAI/w4ACP8QAAj/EwAI/xUACP8YAAj/GQAI/xoACP8bAAj/HAAI/x4ACP8hAAj/IgAI/yMACP8lAAj/JgAI/6EACP+jAAj/pgAI/6gACP+rAAj/rAAI/60ACP+uAAj/rwAI/7EACP+0AAj/tQAI/7YACP+4AAj/uQAJADwACQBgAAkAhAAJAKcACQDOAAkA7gAJARUACQE8AAkBXAAJAYAACQGkAAkBpgAJAakACQGrAAkBrQAJAa8ACQGyAAkBtQAJAbcACQG5AAkBvAAJAb4ACQHAAAkBwwAJAcYACQHHAAkBzAAJAeUACQHqAAkB7AAJAfEACQH0AAkB9gAJAj8ACQJjAAkCigAJAq4ACQKxAAkCswAJArUACQK3AAkCuQAJArsACQK8AAkCvwAJAtgACQL9AAkC/wAJAwEACQMDAAkDBQAJAwcACQMJAAkDCwAJAw0ACQMPAAkDNAAJAzcACQM6AAkDPQAJA0AACQNDAAkDRgAJA0kACQNMAAkDTwAJA1EACQPMAAkDzgAJA9EACQPTAAkD1gAJA9cACQPYAAkD2QAJA9oACQPcAAkD3gAJA98ACQPgAAkD4gAJA+MACQP0AAkD9QAJA/cACQRyAAkEdAAJBHYACQR4AAkEewAJBHwACQR9AAkEfgAJBH8ACQSBAAkEgwAJBIQACQSFAAkEhwAJBIgACQUDAAkFBQAJBQgACQUKAAkFDQAJBQ4ACQUPAAkFEAAJBREACQUTAAkFFQAJBRYACQUXAAkFGQAJBRoACQUrAAkFLAAJBS4ACQWpAAkFqwAJBa0ACQWvAAkFsgAJBbMACQW0AAkFtQAJBbYACQW4AAkFugAJBbsACQW8AAkFvgAJBb8ACQY6AAkGPAAJBj8ACQZBAAkGRAAJBkUACQZGAAkGRwAJBkgACQZKAAkGTAAJBk0ACQZOAAkGUAAJBlEACQZiAAkGYwAJBmUACQbgAAkG4gAJBuQACQbmAAkG6QAJBuoACQbrAAkG7AAJBu0ACQbvAAkG8QAJBvIACQbzAAkG9QAJBvYACQdxAAkHcwAJB3YACQd4AAkHewAJB3wACQd9AAkHfgAJB38ACQeBAAkHgwAJB4QACQeFAAkHhwAJB4gACQehAAkHogAJB6MACQelAAkIIAAJCCIACQgkAAkIJgAJCCkACQgqAAkIKwAJCCwACQgtAAkILwAJCDEACQgyAAkIMwAJCDUACQg2AAkIsQAJCLMACQi2AAkIuAAJCLsACQi8AAkIvQAJCL4ACQi/AAkIwQAJCMMACQjEAAkIxQAJCMcACQjIAAkI4gAJCPsACQkEAAkJBwAJCQoACQkTAAkJFgAJCRkACQkbAAkJJgAJCTQACQnHAAkJ6gAJCgoACQoqAAkKLAAJCi4ACQowAAkKMgAJCjUACQo2AAkKNwAJCjoACQo7AAkKPQAJCj4ACQpAAAkKQwAJCkQACQpFAAkKSAAJCkkACQpOAAkKZwAJCnAACQpyAAkKdAAJCn0ACQqAAAkKgwAJCoUACQrOAAkK8gAJCxkACQs9AAkLQAAJC0IACQtEAAkLRgAJC0gACQtKAAkLSwAJC04ACQtnAAkLiAAJC4oACQuMAAkLjgAJC5AACQuSAAkLlAAJC5YACQuYAAkLuQAJC7wACQu/AAkLwgAJC8UACQvIAAkLywAJC84ACQvRAAkL0wAJDE4ACQxQAAkMUgAJDFQACQxXAAkMWAAJDFkACQxaAAkMWwAJDF0ACQxfAAkMYAAJDGEACQxjAAkMZAAJDN8ACQzhAAkM4wAJDOUACQzoAAkM6QAJDOoACQzrAAkM7AAJDO4ACQzwAAkM8QAJDPIACQz0AAkM9QAJDXAACQ1yAAkNdQAJDXcACQ16AAkNewAJDXwACQ19AAkNfgAJDYAACQ2CAAkNgwAJDYQACQ2GAAkNhwAJDaAACQ2hAAkNogAJDaQACQ4fAAkOIQAJDiMACQ4lAAkOKAAJDikACQ4qAAkOKwAJDiwACQ4uAAkOMAAJDjEACQ4yAAkONAAJDjUACQ6wAAkOsgAJDrQACQ62AAkOuQAJDroACQ67AAkOvAAJDr0ACQ6/AAkOwQAJDsIACQ7DAAkOxQAJDsYACQ9BAAkPQwAJD0UACQ9HAAkPSgAJD0sACQ9MAAkPTQAJD04ACQ9QAAkPUgAJD1MACQ9UAAkPVgAJD1cACQ/SAAkP1AAJD9YACQ/YAAkP2wAJD9wACQ/dAAkP3gAJD98ACQ/hAAkP4wAJD+QACQ/lAAkP5wAJD+gACRBjAAkQZQAJEGcACRBpAAkQbAAJEG0ACRBuAAkQbwAJEHAACRByAAkQdAAJEHUACRB2AAkQeAAJEHkACRDCAAkQ5gAJEQ0ACRExAAkRNAAJETYACRE4AAkROgAJETwACRE+AAkRPwAJEUIACRFbAAkReAAJEXoACRF8AAkRfgAJEYAACRGCAAkRhAAJEYYACRGjAAkRpgAJEakACRGsAAkRrwAJEbIACRG1AAkRuAAJEboACRI1AAkSNwAJEjkACRI7AAkSPgAJEj8ACRJAAAkSQQAJEkIACRJEAAkSRgAJEkcACRJIAAkSSgAJEksACRLGAAkSyAAJEsoACRLMAAkSzwAJEtAACRLRAAkS0gAJEtMACRLVAAkS1wAJEtgACRLZAAkS2wAJEtwACRNXAAkTWQAJE1sACRNdAAkTYAAJE2EACRNiAAkTYwAJE2QACRNmAAkTaAAJE2kACRNqAAkTbAAJE20ACRPoAAkT6gAJE+wACRPuAAkT8QAJE/IACRPzAAkT9AAJE/UACRP3AAkT+QAJE/oACRP7AAkT/QAJE/4ACRR5AAkUewAJFH0ACRR/AAkUggAJFIMACRSEAAkUhQAJFIYACRSIAAkUigAJFIsACRSMAAkUjgAJFI8ACRUKAAkVDAAJFQ8ACRURAAkVFAAJFRUACRUWAAkVFwAJFRgACRUaAAkVHAAJFR0ACRUeAAkVIAAJFSEACRUwAAkVqwAJFa0ACRWvAAkVsQAJFbQACRW1AAkVtgAJFbcACRW4AAkVugAJFbwACRW9AAkVvgAJFcAACRXBAAkWVAAJFncACRaXAAkWtwAJFrkACRa7AAkWvQAJFr8ACRbCAAkWwwAJFsQACRbHAAkWyAAJFsoACRbLAAkWzgAJFtEACRbSAAkW0wAJFtYACRbXAAkW4AAJFvkACRcCAAkXBAAJFwcACRcQAAkXEwAJFxYACRcYAAkXYQAJF4UACResAAkX0AAJF9MACRfVAAkX1wAJF9kACRfbAAkX3QAJF94ACRfhAAkX+gAJGBsACRgdAAkYHwAJGCEACRgjAAkYJQAJGCcACRgpAAkYKwAJGEwACRhPAAkYUgAJGFUACRhYAAkYWwAJGF4ACRhhAAkYZAAJGGYACRjhAAkY4wAJGOUACRjnAAkY6gAJGOsACRjsAAkY7QAJGO4ACRjwAAkY8gAJGPMACRj0AAkY9gAJGPcACRlyAAkZdAAJGXYACRl4AAkZewAJGXwACRl9AAkZfgAJGX8ACRmBAAkZgwAJGYQACRmFAAkZhwAJGYgACRoDAAkaBQAJGggACRoKAAkaDQAJGg4ACRoPAAkaEAAJGhEACRoTAAkaFQAJGhYACRoXAAkaGQAJGhoACRozAAkaNAAJGjUACRo3AAkasgAJGrQACRq2AAkauAAJGrsACRq8AAkavQAJGr4ACRq/AAkawQAJGsMACRrEAAkaxQAJGscACRrIAAkbQwAJG0UACRtHAAkbSQAJG0wACRtNAAkbTgAJG08ACRtQAAkbUgAJG1QACRtVAAkbVgAJG1gACRtZAAkb1AAJG9YACRvYAAkb2gAJG90ACRveAAkb3wAJG+AACRvhAAkb4wAJG+UACRvmAAkb5wAJG+kACRvqAAkcZQAJHGcACRxpAAkcawAJHG4ACRxvAAkccAAJHHEACRxyAAkcdAAJHHYACRx3AAkceAAJHHoACRx7AAkc9gAJHPgACRz6AAkc/AAJHP8ACR0AAAkdAQAJHQIACR0DAAkdBQAJHQcACR0IAAkdCQAJHQsACR0MAAkdVQAJHXkACR2gAAkdxAAJHccACR3KAAkdzAAJHc4ACR3QAAkd0gAJHdMACR3WAAkd7wAJHgwACR4PAAkeEgAJHhUACR4YAAkeGwAJHh4ACR4hAAkePgAJHkEACR5EAAkeRwAJHkoACR5NAAkeUAAJHlMACR5VAAke0AAJHtIACR7VAAke1wAJHtoACR7bAAke3AAJHt0ACR7eAAke4AAJHuMACR7kAAke5QAJHucACR7oAAkfYwAJH2UACR9oAAkfagAJH20ACR9uAAkfbwAJH3AACR9xAAkfcwAJH3YACR93AAkfeAAJH3oACR97AAkf9gAJH/gACR/7AAkf/QAJIAAACSABAAkgAgAJIAMACSAEAAkgBgAJIAkACSAKAAkgCwAJIA0ACSAOAAkgiQAJIIsACSCOAAkgkAAJIJMACSCUAAkglQAJIJYACSCXAAkgmQAJIJwACSCdAAkgngAJIKAACSChAAkhHAAJIR4ACSEgAAkhIgAJISUACSEmAAkhJwAJISgACSEpAAkhKwAJIS4ACSEvAAkhMAAJITIACSEzAAkhrgAJIbAACSGyAAkhtAAJIbcACSG4AAkhuQAJIboACSG7AAkhvQAJIcAACSHBAAkhwgAJIcQACSHFAAkiQAAJIkIACSJFAAkiRwAJIkoACSJLAAkiTAAJIk0ACSJOAAkiUAAJIlMACSJUAAkiVQAJIlcACSJYAAkiaQAJImoACSJsAAki5wAJIukACSLrAAki7QAJIvAACSLxAAki8gAJIvMACSL0AAki9gAJIvkACSL6AAki+wAJIv0ACSL+AAkjeQAJI3sACSN9AAkjfwAJI4IACSODAAkjhAAJI4UACSOGAAkjiAAJI4sACSOMAAkjjQAJI48ACSOQAAkkCwAJJA0ACSQQAAkkEgAJJBUACSQWAAkkFwAJJBgACSQZAAkkGwAJJB4ACSQfAAkkIAAJJCIACSQjAAkktgAJJNkACST5AAklGQAJJRsACSUdAAklHwAJJSEACSUkAAklJQAJJSYACSUpAAklKgAJJSwACSUtAAklMAAJJTMACSU0AAklNQAJJTgACSU5AAklQgAJJVsACSVkAAklZgAJJWkACSVyAAkldQAJJXgACSV6AAklwwAJJecACSYOAAkmMgAJJjUACSY3AAkmOQAJJjsACSY9AAkmPwAJJkAACSZDAAkmXAAJJn0ACSZ/AAkmgQAJJoMACSaFAAkmhwAJJokACSaLAAkmjQAJJq4ACSaxAAkmtAAJJrcACSa6AAkmvQAJJsAACSbDAAkmxgAJJsgACSdDAAk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TVwAJU1gACVPrAAlUDgAJVC4ACVROAAlUUAAJVFIACVRUAAlUVgAJVFkACVRaAAlUWwAJVF4ACVRfAAlUYQAJVGIACVRkAAlUZwAJVGgACVRpAAlUbAAJVG0ACVR2AAlUjwAJVJgACVSaAAlUnAAJVKUACVSoAAlUqwAJVK0ACVT2AAlVGgAJVUEACVVlAAlVaAAJVWoACVVsAAlVbgAJVXAACVVyAAlVcwAJVXYACVWPAAlVsAAJVbIACVW0AAlVtgAJVbgACVW6AAlVvAAJVb4ACVXAAAlV4QAJVeQACVXnAAlV6gAJVe0ACVXwAAlV8wAJVfYACVX5AAlV+wAJVnYACVZ4AAlWegAJVnwACVZ/AAlWgAAJVoEACVaCAAlWgwAJVoUACVaHAAlWiAAJVokACVaLAAlWjAAJVwcACVcJAAlXCwAJVw0ACVcQAAlXEQAJVxIACVcTAAlXFAAJVxYACVcYAAlXGQAJVxoACVccAAlXHQAJV5gACVeaAAlXnQAJV58ACVeiAAlXowAJV6QACVelAAlXpgAJV6gACVeqAAlXqwAJV6wACVeuAAlXrwAJV8gACVfJAAlXygAJV8wACVhHAAlYSQAJWEsACVhNAAlYUAAJWFEACVhSAAlYUwAJWFQACVhWAAlYWAAJWFkACVhaAAlYXAAJWF0ACVjYAAlY2gAJWNwACVjeAAlY4QAJWOIACVjjAAlY5AAJWOUACVjnAAlY6QAJWOoACVjrAAlY7QAJWO4ACVlpAAlZawAJWW0ACVlvAAlZcgAJWXMACVl0AAlZdQAJWXYACVl4AAlZegAJWXsACVl8AAlZfgAJWX8ACVn6AAlZ/AAJWf4ACVoAAAlaAwAJWgQACVoFAAlaBgAJWgcACVoJAAlaCwAJWgwACVoNAAlaDwAJWhAACVqLAAlajQAJWo8ACVqRAAlalAAJWpUACVqWAAlalwAJWpgACVqaAAlanAAJWp0ACVqeAAlaoAAJWqEACVrqAAlbDgAJWzUACVtZAAlbXAAJW14ACVtgAAlbYgAJW2QACVtmAAlbZwAJW2oACVuDAAlboAAJW6IACVukAAlbpgAJW6gACVuqAAlbrAAJW64ACVvLAAlbzgAJW9EACVvUAAlb1wAJW9oACVvdAAlb4AAJW+IACVxdAAlcXwAJXGEACVxjAAlcZgAJXGcACVxoAAlcaQAJXGoACVxsAAlcbgAJXG8ACVxwAAlccgAJXHMACVzuAAlc8AAJXPIACVz0AAlc9wAJXPgACVz5AAlc+gAJXPsACVz9AAlc/wAJXQAACV0BAAldAwAJXQQACV1/AAldgQAJXYMACV2FAAldiAAJXYkACV2KAAldiwAJXYwACV2OAAldkAAJXZEACV2SAAldlAAJXZUACV4QAAleEgAJXhUACV4XAAleGgAJXhsACV4cAAleHQAJXh4ACV4gAAleIgAJXiMACV4kAAleJgAJXicACV6iAAlepAAJXqYACV6oAAleqwAJXqwACV6tAAlergAJXq8ACV6xAAleswAJXrQACV61AAletwAJXrgACV8zAAlfNQAJXzcACV85AAlfPAAJXz0ACV8+AAlfPwAJX0AACV9CAAlfRAAJX0UACV9GAAlfSAAJX0kACV/EAAlfxgAJX8gACV/KAAlfzQAJX84ACV/PAAlf0AAJX9EACV/TAAlf1QAJX9YACV/XAAlf2QAJX9oACWBtAAlgkAAJYLAACWDQAAlg0gAJYNQACWDWAAlg2AAJYNsACWDcAAlg3QAJYOAACWDhAAlg4wAJYOQACWDmAAlg6QAJYOoACWDrAAlg7gAJYO8ACWD0AAlhDQAJYRYACWEYAAlhGgAJYSMACWEmAAlhKQAJYSsACWF0AAlhmAAJYb8ACWHjAAlh5gAJYegACWHqAAlh7AAJYe4ACWHwAAlh8QAJYfQACWINAAliLgAJYjAACWIyAAliNAAJYjYACWI4AAliOgAJYjwACWI+AAliXwAJYmIACWJlAAliaAAJYmsACWJuAAlicQAJYnQACWJ3AAlieQAJYvQACWL2AAli+AAJYvoACWL9AAli/gAJYv8ACWMAAAljAQAJYwMACWMFAAljBgAJYwcACWMJAAljCgAJY4UACWOHAAljiQAJY4sACWOOAAljjwAJY5AACWORAAljkgAJY5QACWOWAAljlwAJY5gACWOaAAljmwAJZBYACWQYAAlkGwAJZB0ACWQgAAlkIQAJZCIACWQjAAlkJAAJZCYACWQoAAlkKQAJZCoACWQsAAlkLQAJZEYACWRHAAlkSAAJZEoACWTFAAlkxwAJZMkACWTLAAlkzgAJZM8ACWTQAAlk0QAJZNIACWTUAAlk1gAJZNcACWTYAAlk2gAJZNsACWVWAAllWAAJZVoACWVcAAllXwAJZWAACWVhAAllYgAJZWMACWVlAAllZwAJZWgACWVpAAllawAJZWwACWXnAAll6QAJZesACWXtAAll8AAJZfEACWXyAAll8wAJZfQACWX2AAll+AAJZfkACWX6AAll/AAJZf0ACWZ4AAlmegAJZnwACWZ+AAlmgQAJZoIACWaDAAlmhAAJZoUACWaHAAlmiQAJZooACWaLAAlmjQAJZo4ACWcJAAlnCwAJZw0ACWcPAAlnEgAJZxMACWcUAAlnFQAJZxYACWcYAAlnGgAJZxsACWccAAlnHgAJZx8ACWdoAAlnjAAJZ7MACWfXAAln2gAJZ9wACWfeAAln4AAJZ+IACWfkAAln5QAJZ+gACWgBAAloHgAJaCAACWgiAAloJAAJaCYACWgoAAloKgAJaCwACWhJAAloTAAJaE8ACWhSAAloVQAJaFgACWhbAAloXgAJaGAACWjbAAlo3QAJaN8ACWjhAAlo5AAJaOUACWjmAAlo5wAJaOgACWjqAAlo7AAJaO0ACWjuAAlo8AAJaPEACWlsAAlpbgAJaXAACWlyAAlpdQAJaXYACWl3AAlpeAAJaXkACWl7AAlpfQAJaX4ACWl/AAlpgQAJaYIACWn9AAlp/wAJagEACWoDAAlqBgAJagcACWoIAAlqCQAJagoACWoMAAlqDgAJag8ACWoQAAlqEgAJahMACWqOAAlqkAAJapMACWqVAAlqmAAJapkACWqaAAlqmwAJapwACWqeAAlqoAAJaqEACWqiAAlqpAAJaqUACWsgAAlrIgAJayQACWsmAAlrKQAJayoACWsrAAlrLAAJay0ACWsvAAlrMQAJazIACWszAAlrNQAJazYACWuxAAlrswAJa7UACWu3AAlrugAJa7sACWu8AAlrvQAJa74ACWvAAAlrwgAJa8MACWvEAAlrxgAJa8cACWxCAAlsRAAJbEYACWxIAAlsSwAJbEwACWxNAAlsTgAJbE8ACWxRAAlsUwAJbFQACWxVAAlsVwAJbFgACWzrAAltDgAJbS4ACW1OAAltUAAJbVIACW1UAAltVgAJbVkACW1aAAltWwAJbV4ACW1fAAltYQAJbWIACW1kAAltZwAJbWgACW1pAAltbAAJbW0ACW1yAAltiwAJbZQACW2WAAltmAAJbaEACW2kAAltpwAJbakACW3yAAluFgAJbj0ACW5hAAluZAAJbmYACW5oAAluagAJbmwACW5uAAlubwAJbnIACW6LAAlurAAJbq4ACW6wAAlusgAJbrQACW62AAluuAAJbroACW68AAlu3QAJbuAACW7jAAlu5gAJbukACW7sAAlu7wAJbvIACW71AAlu9wAJb3IACW90AAlvdgAJb3gACW97AAlvfAAJb30ACW9+AAlvfwAJb4EACW+DAAlvhAAJb4UACW+HAAlviAAJcAMACXAFAAlwBwAJcAkACXAMAAlwDQAJcA4ACXAPAAlwEAAJcBIACXAUAAlwFQAJcBYACXAYAAlwGQAJcJQACXCWAAlwmQAJcJsACXCeAAlwnwAJcKAACXChAAlwogAJcKQACXCmAAlwpwAJcKgACXCqAAlwqwAJcMQACXDFAAlwxgAJcMgACXFDAAlxRQAJcUcACXFJAAlxTAAJcU0ACXFOAAlxTwAJcVAACXFSAAlxVAAJcVUACXFWAAlxWAAJcVkACXHUAAlx1gAJcdgACXHaAAlx3QAJcd4ACXHfAAlx4AAJceEACXHjAAlx5QAJceYACXHnAAlx6QAJceoACXJlAAlyZwAJcmkACXJrAAlybgAJcm8ACXJwAAlycQAJcnIACXJ0AAlydgAJcncACXJ4AAlyegAJcnsACXL2AAly+AAJcvoACXL8AAly/wAJcwAACXMBAAlzAgAJcwMACXMFAAlzBwAJcwgACXMJAAlzCwAJcwwACXOHAAlziQAJc4sACXONAAlzkAAJc5EACXOSAAlzkwAJc5QACXOWAAlzmAAJc5kACXOaAAlznAAJc50ACXPmAAl0CgAJdDEACXRVAAl0WAAJdFoACXRcAAl0XgAJdGAACXRiAAl0YwAJdGYACXR/AAl0nAAJdJ4ACXSgAAl0ogAJdKQACXSmAAl0qAAJdKoACXTHAAl0ygAJdM0ACXTQAAl00wAJdNYACXTZAAl03AAJdN4ACXVZAAl1WwAJdV0ACXVfAAl1YgAJdWMACXVkAAl1ZQAJdWYACXVoAAl1agAJdWsACXVsAAl1bgAJdW8ACXXqAAl17AAJde4ACXXwAAl18wAJdfQACXX1AAl19gAJdfcACXX5AAl1+wAJdfwACXX9AAl1/wAJdgAACXZ7AAl2fQAJdn8ACXaBAAl2hAAJdoUACXaGAAl2hwAJdogACXaKAAl2jAAJdo0ACXaOAAl2kAAJdpEACXcMAAl3DgAJdxEACXcTAAl3FgAJdxcACXcYAAl3GQAJdxoACXccAAl3HgAJdx8ACXcgAAl3IgAJdyMACXeeAAl3oAAJd6IACXekAAl3pwAJd6gACXepAAl3qgAJd6sACXetAAl3rwAJd7AACXexAAl3swAJd7QACXgvAAl4MQAJeDMACXg1AAl4OAAJeDkACXg6AAl4OwAJeDwACXg+AAl4QAAJeEEACXhCAAl4RAAJeEUACXjAAAl4wgAJeMQACXjGAAl4yQAJeMoACXjLAAl4zAAJeM0ACXjPAAl40QAJeNIACXjTAAl41QAJeNYACXlpAAl5jAAJeawACXnMAAl5zgAJedAACXnSAAl51AAJedcACXnYAAl52QAJedwACXndAAl53wAJeeAACXniAAl55QAJeeYACXnnAAl56gAJeesACXn0AAl6DQAJehYACXoYAAl6GgAJeiMACXomAAl6KQAJeisACXp0AAl6mAAJer8ACXrjAAl65gAJeugACXrqAAl67AAJeu4ACXrwAAl68QAJevQACXsNAAl7LgAJezAACXsyAAl7NAAJezYACXs4AAl7OgAJezwACXs+AAl7XwAJe2IACXtlAAl7aAAJe2sACXtuAAl7cQAJe3QACXt3AAl7eQAJe/QACXv2AAl7+AAJe/oACXv9AAl7/gAJe/8ACXwAAAl8AQAJfAMACXwFAAl8BgAJfAcACXwJAAl8CgAJfIUACXyHAAl8iQAJfIsACXyOAAl8jwAJfJAACXyRAAl8kgAJfJQACXyWAAl8lwAJfJgACXyaAAl8mwAJfRYACX0YAAl9GwAJfR0ACX0gAAl9IQAJfSIACX0jAAl9JAAJfSYACX0oAAl9KQAJfSoACX0sAAl9LQAJfUYACX1HAAl9SAAJfUoACX3FAAl9xwAJfckACX3LAAl9zgAJfc8ACX3QAAl90QAJfdIACX3UAAl91gAJfdcACX3YAAl92gAJfdsACX5WAAl+WAAJfloACX5cAAl+XwAJfmAACX5hAAl+YgAJfmMACX5lAAl+ZwAJfmgACX5pAAl+awAJfmwACX7nAAl+6QAJfusACX7tAAl+8AAJfvEACX7yAAl+8wAJfvQACX72AAl++AAJfvkACX76AAl+/AAJfv0ACX94AAl/egAJf3wACX9+AAl/gQAJf4IACX+DAAl/hAAJf4UACX+HAAl/iQAJf4oACX+LAAl/jQAJf44ACYAJAAmACwAJgA0ACYAPAAmAEgAJgBMACYAUAAmAFQAJgBYACYAYAAmAGgAJgBsACYAcAAmAHgAJgB8ACYBoAAmAjAAJgLMACYDXAAmA2gAJgNwACYDeAAmA4AAJgOIACYDkAAmA5QAJgOgACYEBAAmBHgAJgSAACYEiAAmBJAAJgSYACYEoAAmBKgAJgSwACYFJAAmBTAAJgU8ACYFSAAmBVQAJgVgACYFbAAmBXgAJgWAACYHbAAmB3QAJgd8ACYHhAAmB5AAJgeUACYHmAAmB5wAJgegACYHqAAmB7AAJge0ACYHuAAmB8AAJgfEACYJsAAmCbgAJgnAACYJyAAmCdQAJgnYACYJ3AAmCeAAJgnkACYJ7AAmCfQAJgn4ACYJ/AAmCgQAJgoIACYL9AAmC/wAJgwEACYMDAAmDBgAJgwcACYMIAAmDCQAJgwoACYMMAAmDDgAJgw8ACYMQAAmDEgAJgxMACYOOAAmDkAAJg5MACYOVAAmDmAAJg5kACYOaAAmDmwAJg5wACYOeAAmDoAAJg6EACYOiAAmDpAAJg6UACYQgAAmEIgAJhCQACYQmAAmEKQAJhCoACYQrAAmELAAJhC0ACYQvAAmEMQAJhDIACYQzAAmENQAJhDYACYSxAAmEswAJhLUACYS3AAmEugAJhLsACYS8AAmEvQAJhL4ACYTAAAmEwgAJhMMACYTEAAmExgAJhMcACYVCAAmFRAAJhUYACYVIAAmFSwAJhUwACYVNAAmFTgAJhU8ACYVRAAmFUwAJhVQACYVVAAmFVwAJhVgACYXrAAmGDgAJhi4ACYZOAAmGUAAJhlIACYZUAAmGVgAJhlkACYZaAAmGWwAJhl4ACYZfAAmGYQAJhmIACYZkAAmGZwAJhmgACYZpAAmGbAAJhm0ACYZyAAmGiwAJhpQACYaWAAmGmAAJhqEACYakAAmGpwAJhqkACYbyAAmHFgAJhz0ACYdhAAmHZAAJh2YACYdoAAmHagAJh2wACYduAAmHbwAJh3IACYeLAAmHrAAJh64ACYewAAmHsgAJh7QACYe2AAmHuAAJh7oACYe8AAmH3QAJh+AACYfjAAmH5gAJh+kACYfsAAmH7wAJh/IACYf1AAmH9wAJiHIACYh0AAmIdgAJiHgACYh7AAmIfAAJiH0ACYh+AAmIfwAJiIEACYiDAAmIhAAJiIUACYiHAAmIiAAJiQMACYkFAAmJBwAJiQkACYkMAAmJDQAJiQ4ACYkPAAmJEAAJiRIACYkUAAmJFQAJiRYACYkYAAmJGQAJiZQACYmWAAmJmQAJiZsACYmeAAmJnwAJiaAACYmhAAmJogAJiaQACYmmAAmJpwAJiagACYmqAAmJqwAJicQACYnFAAmJxgAJicgACYpDAAmKRQAJikcACYpJAAmKTAAJik0ACYpOAAmKTwAJilAACYpSAAmKVAAJilUACYpWAAmKWAAJilkACYrUAAmK1gAJitgACYraAAmK3QAJit4ACYrfAAmK4AAJiuEACYrjAAmK5QAJiuYACYrnAAmK6QAJiuoACYtlAAmLZwAJi2kACYtrAAmLbgAJi28ACYtwAAmLcQAJi3IACYt0AAmLdgAJi3cACYt4AAmLegAJi3sACYv2AAmL+AAJi/oACYv8AAmL/wAJjAAACYwBAAmMAgAJjAMACYwFAAmMBwAJjAgACYwJAAmMCwAJjAwACYyHAAmMiQAJjIsACYyNAAmMkAAJjJEACYySAAmMkwAJjJQACYyWAAmMmAAJjJkACYyaAAmMnAAJjJ0ACYzmAAmNCgAJjTEACY1VAAmNWAAJjVoACY1cAAmNXgAJjWAACY1iAAmNYwAJjWYACY1/AAmNnAAJjZ4ACY2gAAmNogAJjaQACY2mAAmNqAAJjaoACY3HAAmNygAJjc0ACY3QAAmN0wAJjdYACY3ZAAmN3AAJjd4ACY5ZAAmOWwAJjl0ACY5fAAmOYgAJjmMACY5kAAmOZQAJjmYACY5oAAmOagAJjmsACY5sAAmObgAJjm8ACY7qAAmO7AAJju4ACY7wAAmO8wAJjvQACY71AAmO9gAJjvcACY75AAmO+wAJjvwACY79AAmO/wAJjwAACY97AAmPfQAJj38ACY+BAAmPhAAJj4UACY+GAAmPhwAJj4gACY+KAAmPjAAJj40ACY+OAAmPkAAJj5EACZAMAAmQDgAJkBEACZATAAmQFgAJkBcACZAYAAmQGQAJkBoACZAcAAmQHgAJkB8ACZAgAAmQIgAJkCMACZCeAAmQoAAJkKIACZCkAAmQpwAJkKgACZCpAAmQqgAJkKsACZCtAAmQrwAJkLAACZCxAAmQswAJkLQACZEvAAmRMQAJkTMACZE1AAmROAAJkTkACZE6AAmROwAJkTwACZE+AAmRQAAJkUEACZFCAAmRRAAJkUUACZHAAAmRwgAJkcQACZHGAAmRyQAJkcoACZHLAAmRzAAJkc0ACZHPAAmR0QAJkdIACZHTAAmR1QAJkdYACZJpAAmSjAAJkqwACZLMAAmSzgAJktAACZLSAAmS1AAJktcACZLYAAmS2QAJktwACZLdAAmS3wAJkuAACZLiAAmS5QAJkuYACZLnAAmS6gAJkusACZLwAAmTCQAJkxIACZMUAAmTFgAJkx8ACZMiAAmTJQAJkycACZNwAAmTlAAJk7sACZPfAAmT4gAJk+QACZPmAAmT6AAJk+oACZPsAAmT7QAJk/AACZQJAAmUKgAJlCwACZQuAAmUMAAJlDIACZQ0AAmUNgAJlDgACZQ6AAmUWwAJlF4ACZRhAAmUZAAJlGcACZRqAAmUbQAJlHAACZRzAAmUdQAJlPAACZTyAAmU9AAJlPYACZT5AAmU+gAJlPsACZT8AAmU/QAJlP8ACZUBAAmVAgAJlQMACZUFAAmVBgAJlYEACZWDAAmVhQAJlYcACZWKAAmViwAJlYwACZWNAAmVjgAJlZAACZWSAAmVkwAJlZQACZWWAAmVlwAJlhIACZYUAAmWFwAJlhkACZYcAAmWHQAJlh4ACZYfAAmWIAAJliIACZYkAAmWJQAJliYACZYoAAmWKQAJlkIACZZDAAmWRAAJlkYACZbBAAmWwwAJlsUACZbHAAmWygAJlssACZbMAAmWzQAJls4ACZbQAAmW0gAJltMACZbUAAmW1gAJltcACZdSAAmXVAAJl1YACZdYAAmXWwAJl1wACZddAAmXXgAJl18ACZdhAAmXYwAJl2QACZdlAAmXZwAJl2gACZfjAAmX5QAJl+cACZfpAAmX7AAJl+0ACZfuAAmX7wAJl/AACZfyAAmX9AAJl/UACZf2AAmX+AAJl/kACZh0AAmYdgAJmHgACZh6AAmYfQAJmH4ACZh/AAmYgAAJmIEACZiDAAmYhQAJmIYACZiHAAmYiQAJmIoACZkFAAmZBwAJmQkACZkLAAmZDgAJmQ8ACZkQAAmZEQAJmRIACZkUAAmZFgAJmRcACZkYAAmZGgAJmRsACZlkAAmZiAAJma8ACZnTAAmZ1gAJmdgACZnaAAmZ3AAJmd4ACZngAAmZ4QAJmeQACZn9AAmaGgAJmhwACZoeAAmaIAAJmiIACZokAAmaJgAJmigACZpFAAmaSAAJmksACZpOAAmaUQAJmlQACZpXAAmaWgAJmlwACZrXAAma2QAJmtsACZrdAAma4AAJmuEACZriAAma4wAJmuQACZrmAAma6AAJmukACZrqAAma7AAJmu0ACZtoAAmbagAJm2wACZtuAAmbcQAJm3IACZtzAAmbdAAJm3UACZt3AAmbeQAJm3oACZt7AAmbfQAJm34ACZv5AAmb+wAJm/0ACZv/AAmcAgAJnAMACZwEAAmcBQAJnAYACZwIAAmcCgAJnAsACZwMAAmcDgAJnA8ACZyKAAmcjAAJnI8ACZyRAAmclAAJnJUACZyWAAmclwAJnJgACZyaAAmcnAAJnJ0ACZyeAAmcoAAJnKEACZ0cAAmdHgAJnSAACZ0iAAmdJQAJnSYACZ0nAAmdKAAJnSkACZ0rAAmdLQAJnS4ACZ0vAAmdMQAJnTIACZ2tAAmdrwAJnbEACZ2zAAmdtgAJnbcACZ24AAmduQAJnboACZ28AAmdvgAJnb8ACZ3AAAmdwgAJncMACZ4+AAmeQAAJnkIACZ5EAAmeRwAJnkgACZ5JAAmeSgAJnksACZ5NAAmeTwAJnlAACZ5RAAmeUwAJnlQACZ7nAAmfCgAJnyoACZ9KAAmfTAAJn04ACZ9QAAmfUgAJn1UACZ9WAAmfVwAJn1oACZ9bAAmfXQAJn14ACZ9gAAmfYwAJn2QACZ9lAAmfaAAJn2kACZ9uAAmfhwAJn5AACZ+SAAmflAAJn50ACZ+gAAmfowAJn6UACZ/uAAmgEgAJoDkACaBdAAmgYAAJoGIACaBkAAmgZgAJoGgACaBqAAmgawAJoG4ACaCHAAmgqAAJoKoACaCsAAmgrgAJoLAACaCyAAmgtAAJoLYACaC4AAmg2QAJoNwACaDfAAmg4gAJoOUACaDoAAmg6wAJoO4ACaDxAAmg8wAJoW4ACaFwAAmhcgAJoXQACaF3AAmheAAJoXkACaF6AAmhewAJoX0ACaF/AAmhgAAJoYEACaGDAAmhhAAJof8ACaIBAAmiAwAJogUACaIIAAmiCQAJogoACaILAAmiDAAJog4ACaIQAAmiEQAJohIACaIUAAmiFQAJopAACaKSAAmilQAJopcACaKaAAmimwAJopwACaKdAAmingAJoqAACaKiAAmiowAJoqQACaKmAAmipwAJosAACaLBAAmiwgAJosQACaM/AAmjQQAJo0MACaNFAAmjSAAJo0kACaNKAAmjSwAJo0wACaNOAAmjUAAJo1EACaNSAAmjVAAJo1UACaPQAAmj0gAJo9QACaPWAAmj2QAJo9oACaPbAAmj3AAJo90ACaPfAAmj4QAJo+IACaPjAAmj5QAJo+YACaRhAAmkYwAJpGUACaRnAAmkagAJpGsACaRsAAmkbQAJpG4ACaRwAAmkcgAJpHMACaR0AAmkdgAJpHcACaTyAAmk9AAJpPYACaT4AAmk+wAJpPwACaT9AAmk/gAJpP8ACaUBAAmlAwAJpQQACaUFAAmlBwAJpQgACaWDAAmlhQAJpYcACaWJAAmljAAJpY0ACaWOAAmljwAJpZAACaWSAAmllAAJpZUACaWWAAmlmAAJpZkACaXiAAmmBgAJpi0ACaZRAAmmVAAJplYACaZYAAmmWgAJplwACaZeAAmmXwAJpmIACaZ7AAmmmAAJppoACaacAAmmngAJpqAACaaiAAmmpAAJpqYACabDAAmmxgAJpskACabMAAmmzwAJptIACabVAAmm2AAJptoACadVAAmnVwAJp1kACadbAAmnXgAJp18ACadgAAmnYQAJp2IACadkAAmnZgAJp2cACadoAAmnagAJp2sACafmAAmn6AAJp+oACafsAAmn7wAJp/AACafxAAmn8gAJp/MACaf1AAmn9wAJp/gACaf5AAmn+wAJp/wACah3AAmoeQAJqHsACah9AAmogAAJqIEACaiCAAmogwAJqIQACaiGAAmoiAAJqIkACaiKAAmojAAJqI0ACakIAAmpCgAJqQ0ACakPAAmpEgAJqRMACakUAAmpFQAJqRYACakYAAmpGgAJqRsACakcAAmpHgAJqR8ACamaAAmpnAAJqZ4ACamgAAmpowAJqaQACamlAAmppgAJqacACampAAmpqwAJqawACamtAAmprwAJqbAACaorAAmqLQAJqi8ACaoxAAmqNAAJqjUACao2AAmqNwAJqjgACao6AAmqPAAJqj0ACao+AAmqQAAJqkEACaq8AAmqvgAJqsAACarCAAmqxQAJqsYACarHAAmqyAAJqskACarLAAmqzQAJqs4ACarPAAmq0QAJqtIACatlAAmriAAJq6gACavIAAmrygAJq8wACavOAAmr0AAJq9MACavUAAmr1QAJq9gACavZAAmr2wAJq9wACaveAAmr4QAJq+IACavjAAmr5gAJq+cACavsAAmsBQAJrA4ACawQAAmsEgAJrBsACaweAAmsIQAJrCMACaxsAAmskAAJrLcACazbAAms3gAJrOAACaziAAms5AAJrOYACazoAAms6QAJrOwACa0FAAmtJgAJrSgACa0qAAmtLAAJrS4ACa0wAAmtMgAJrTQACa02AAmtVwAJrVoACa1dAAmtYAAJrWMACa1mAAmtaQAJrWwACa1vAAmtcQAJrewACa3uAAmt8AAJrfIACa31AAmt9gAJrfcACa34AAmt+QAJrfsACa39AAmt/gAJrf8ACa4BAAmuAgAJrn0ACa5/AAmugQAJroMACa6GAAmuhwAJrogACa6JAAmuigAJrowACa6OAAmujwAJrpAACa6SAAmukwAJrw4ACa8QAAmvEwAJrxUACa8YAAmvGQAJrxoACa8bAAmvHAAJrx4ACa8gAAmvIQAJryIACa8kAAmvJQAJrz4ACa8/AAmvQAAJr0IACa+9AAmvvwAJr8EACa/DAAmvxgAJr8cACa/IAAmvyQAJr8oACa/MAAmvzgAJr88ACa/QAAmv0gAJr9MACbBOAAmwUAAJsFIACbBUAAmwVwAJsFgACbBZAAmwWgAJsFsACbBdAAmwXwAJsGAACbBhAAmwYwAJsGQACbDfAAmw4QAJsOMACbDlAAmw6AAJsOkACbDqAAmw6wAJsOwACbDuAAmw8AAJsPEACbDyAAmw9AAJsPUACbFwAAmxcgAJsXQACbF2AAmxeQAJsXoACbF7AAmxfAAJsX0ACbF/AAmxgQAJsYIACbGDAAmxhQAJsYYACbIBAAmyAwAJsgUACbIHAAmyCgAJsgsACbIMAAmyDQAJsg4ACbIQAAmyEgAJshMACbIUAAmyFgAJshcACbJgAAmyhAAJsqsACbLPAAmy0gAJstQACbLWAAmy2AAJstoACbLcAAmy3QAJsuAACbL5AAmzFgAJsxgACbMaAAmzHAAJsx4ACbMgAAmzIgAJsyQACbNBAAmzRAAJs0cACbNKAAmzTQAJs1AACbNTAAmzVgAJs1gACbPTAAmz1QAJs9cACbPZAAmz3AAJs90ACbPeAAmz3wAJs+AACbPiAAmz5AAJs+UACbPmAAmz6AAJs+kACbRkAAm0ZgAJtGgACbRqAAm0bQAJtG4ACbRvAAm0cAAJtHEACbRzAAm0dQAJtHYACbR3AAm0eQAJtHoACbT1AAm09wAJtPkACbT7AAm0/gAJtP8ACbUAAAm1AQAJtQIACbUEAAm1BgAJtQcACbUIAAm1CgAJtQsACbWGAAm1iAAJtYsACbWNAAm1kAAJtZEACbWSAAm1kwAJtZQACbWWAAm1mAAJtZkACbWaAAm1nAAJtZ0ACbYYAAm2GgAJthwACbYeAAm2IQAJtiIACbYjAAm2JAAJtiUACbYnAAm2KQAJtioACbYrAAm2LQAJti4ACbapAAm2qwAJtq0ACbavAAm2sgAJtrMACba0AAm2tQAJtrYACba4AAm2ugAJtrsACba8AAm2vgAJtr8ACbc6AAm3PAAJtz4ACbdAAAm3QwAJt0QACbdFAAm3RgAJt0cACbdJAAm3SwAJt0wACbdNAAm3TwAJt1AACbfjAAm4BgAJuCYACbhGAAm4SAAJuEoACbhMAAm4TgAJuFEACbhSAAm4UwAJuFYACbhXAAm4WQAJuFoACbhdAAm4YAAJuGEACbhiAAm4ZQAJuGYACbhrAAm4hAAJuI0ACbiPAAm4kgAJuJsACbieAAm4oQAJuKMACbjsAAm5EAAJuTcACblbAAm5XgAJuWAACbliAAm5ZAAJuWYACbloAAm5aQAJuWwACbmFAAm5pgAJuagACbmqAAm5rAAJua4ACbmwAAm5sgAJubQACbm2AAm51wAJudoACbndAAm54AAJueMACbnmAAm56QAJuewACbnvAAm58QAJumwACbpuAAm6cAAJunIACbp1AAm6dgAJuncACbp4AAm6eQAJunsACbp9AAm6fgAJun8ACbqBAAm6ggAJuv0ACbr/AAm7AQAJuwMACbsGAAm7BwAJuwgACbsJAAm7CgAJuwwACbsOAAm7DwAJuxAACbsSAAm7EwAJu44ACbuQAAm7kwAJu5UACbuYAAm7mQAJu5oACbubAAm7nAAJu54ACbugAAm7oQAJu6IACbukAAm7pQAJu74ACbu/AAm7wAAJu8IACbw9AAm8PwAJvEEACbxDAAm8RgAJvEcACbxIAAm8SQAJvEoACbxMAAm8TgAJvE8ACbxQAAm8UgAJvFMACbzOAAm80AAJvNIACbzUAAm81wAJvNgACbzZAAm82gAJvNsACbzdAAm83wAJvOAACbzhAAm84wAJvOQACb1fAAm9YQAJvWMACb1lAAm9aAAJvWkACb1qAAm9awAJvWwACb1uAAm9cAAJvXEACb1yAAm9dAAJvXUACb3wAAm98gAJvfQACb32AAm9+QAJvfoACb37AAm9/AAJvf0ACb3/AAm+AQAJvgIACb4DAAm+BQAJvgYACb6BAAm+gwAJvoUACb6HAAm+igAJvosACb6MAAm+jQAJvo4ACb6QAAm+kgAJvpMACb6UAAm+lgAJvpcACb7gAAm/BAAJvysACb9PAAm/UgAJv1UACb9XAAm/WQAJv1sACb9dAAm/XgAJv2EACb96AAm/lwAJv5oACb+dAAm/oAAJv6MACb+mAAm/qQAJv6wACb/JAAm/zAAJv88ACb/SAAm/1QAJv9gACb/bAAm/3gAJv+AACcBbAAnAXQAJwGAACcBiAAnAZQAJwGYACcBnAAnAaAAJwGkACcBrAAnAbgAJwG8ACcBwAAnAcgAJwHMACcDuAAnA8AAJwPMACcD1AAnA+AAJwPkACcD6AAnA+wAJwPwACcD+AAnBAQAJwQIACcEDAAnBBQAJwQYACcGBAAnBgwAJwYYACcGIAAnBiwAJwYwACcGNAAnBjgAJwY8ACcGRAAnBlAAJwZUACcGWAAnBmAAJwZkACcIUAAnCFgAJwhkACcIbAAnCHgAJwh8ACcIgAAnCIQAJwiIACcIkAAnCJwAJwigACcIpAAnCKwAJwiwACcKvAAnC0wAJwvcACcMaAAnDQQAJw2EACcOIAAnDrwAJw88ACcPzAAnEFwAJxBkACcQcAAnEHgAJxCAACcQiAAnEJQAJxCgACcQqAAnELAAJxC8ACcQxAAnEMwAJxDYACcQ5AAnEOgAJxD8ACcRYAAnEXQAJxF8ACcRkAAnEZwAJxGkACcSyAAnE1gAJxP0ACcUhAAnFJAAJxSYACcUoAAnFKgAJxSwACcUuAAnFLwAJxTIACcVLAAnFcAAJxXIACcV0AAnFdgAJxXgACcV6AAnFfAAJxX4ACcWAAAnFggAJxacACcWqAAnFrQAJxbAACcWzAAnFtgAJxbkACcW8AAnFvwAJxcIACcXEAAnGPwAJxkEACcZEAAnGRgAJxkkACcZKAAnGSwAJxkwACcZNAAnGTwAJxlEACcZSAAnGUwAJxlUACcZWAAnGZwAJxmgACcZqAAnG5QAJxucACcbpAAnG6wAJxu4ACcbvAAnG8AAJxvEACcbyAAnG9AAJxvYACcb3AAnG+AAJxvoACcb7AAnHdgAJx3gACcd7AAnHfQAJx4AACceBAAnHggAJx4MACceEAAnHhgAJx4gACceJAAnHigAJx4wACceNAAnHngAJx58ACcehAAnIHAAJyB4ACcggAAnIIgAJyCUACcgmAAnIJwAJyCgACcgpAAnIKwAJyC0ACcguAAnILwAJyDEACcgyAAnIrQAJyK8ACciyAAnItAAJyLcACci4AAnIuQAJyLoACci7AAnIvQAJyL8ACcjAAAnIwQAJyMMACcjEAAnI1QAJyNYACcjYAAnJUwAJyVUACclXAAnJWQAJyVwACcldAAnJXgAJyV8ACclgAAnJYgAJyWQACcllAAnJZgAJyWgACclpAAnJ5AAJyeYACcnpAAnJ6wAJye4ACcnvAAnJ8AAJyfEACcnyAAnJ9AAJyfYACcn3AAnJ+AAJyfoACcn7AAnKFAAJyhUACcoWAAnKGAAJypMACcqVAAnKlwAJypkACcqcAAnKnQAJyp4ACcqfAAnKoAAJyqIACcqkAAnKpQAJyqYACcqoAAnKqQAJyyQACcsmAAnLKQAJyysACcsuAAnLLwAJyzAACcsxAAnLMgAJyzQACcs2AAnLNwAJyzgACcs6AAnLOwAJy1UACctuAAnLfwAJy4IACcuFAAnLiAAJy4sACcucAAnLnwAJy6IACculAAnLqAAJy6oACcu5AAnLzQAJy9kACcvvAAnMggAJzKUACczFAAnM5QAJzOcACczpAAnM6wAJzO0ACczwAAnM8QAJzPIACcz1AAnM9gAJzPgACcz5AAnM/AAJzP8ACc0AAAnNAQAJzQQACc0FAAnNCgAJzSMACc0sAAnNLgAJzTEACc06AAnNPQAJzUAACc1CAAnNiwAJza8ACc3WAAnN+gAJzf0ACc3/AAnOAQAJzgMACc4FAAnOBwAJzggACc4LAAnOJAAJzkUACc5HAAnOSQAJzksACc5NAAnOTwAJzlEACc5TAAnOVQAJznYACc55AAnOfAAJzn8ACc6CAAnOhQAJzogACc6LAAnOjgAJzpAACc8LAAnPDQAJzw8ACc8RAAnPFAAJzxUACc8WAAnPFwAJzxgACc8aAAnPHAAJzx0ACc8eAAnPIAAJzyEACc+cAAnPngAJz6AACc+iAAnPpQAJz6YACc+nAAnPqAAJz6kACc+rAAnPrQAJz64ACc+vAAnPsQAJz7IACdAtAAnQLwAJ0DIACdA0AAnQNwAJ0DgACdA5AAnQOgAJ0DsACdA9AAnQPwAJ0EAACdBBAAnQQwAJ0EQACdBdAAnQXgAJ0F8ACdBhAAnQ3AAJ0N4ACdDgAAnQ4gAJ0OUACdDmAAnQ5wAJ0OgACdDpAAnQ6wAJ0O0ACdDuAAnQ7wAJ0PEACdDyAAnRbQAJ0W8ACdFxAAnRcwAJ0XYACdF3AAnReAAJ0XkACdF6AAnRfAAJ0X4ACdF/AAnRgAAJ0YIACdGDAAnR/gAJ0gAACdICAAnSBAAJ0gcACdIIAAnSCQAJ0goACdILAAnSDQAJ0g8ACdIQAAnSEQAJ0hMACdIUAAnSjwAJ0pEACdKTAAnSlQAJ0pgACdKZAAnSmgAJ0psACdKcAAnSngAJ0qAACdKhAAnSogAJ0qQACdKlAAnTIAAJ0yIACdMkAAnTJgAJ0ykACdMqAAnTKwAJ0ywACdMtAAnTLwAJ0zEACdMyAAnTMwAJ0zUACdM2AAnTfwAJ06MACdPKAAnT7gAJ0/EACdP0AAnT9gAJ0/gACdP6AAnT/AAJ0/0ACdQAAAnUGQAJ1DYACdQ5AAnUPAAJ1D8ACdRCAAnURQAJ1EgACdRLAAnUaAAJ1GsACdRuAAnUcQAJ1HQACdR3AAnUegAJ1H0ACdR/AAnU+gAJ1PwACdT/AAnVAQAJ1QQACdUFAAnVBgAJ1QcACdUIAAnVCgAJ1Q0ACdUOAAnVDwAJ1REACdUSAAnVjQAJ1Y8ACdWSAAnVlAAJ1ZcACdWYAAnVmQAJ1ZoACdWbAAnVnQAJ1aAACdWhAAnVogAJ1aQACdWlAAnWIAAJ1iIACdYlAAnWJwAJ1ioACdYrAAnWLAAJ1i0ACdYuAAnWMAAJ1jMACdY0AAnWNQAJ1jcACdY4AAnWswAJ1rUACda4AAnWugAJ1r0ACda+AAnWvwAJ1sAACdbBAAnWwwAJ1sYACdbHAAnWyAAJ1soACdbLAAnXRgAJ10gACddKAAnXTAAJ108ACddQAAnXUQAJ11IACddTAAnXVQAJ11gACddZAAnXWgAJ11wACdddAAnX2AAJ19oACdfcAAnX3gAJ1+EACdfiAAnX4wAJ1+QACdflAAnX5wAJ1+oACdfrAAnX7AAJ1+4ACdfvAAnYagAJ2GwACdhvAAnYcQAJ2HQACdh1AAnYdgAJ2HcACdh4AAnYegAJ2H0ACdh+AAnYfwAJ2IEACdiCAAnZFQAJ2TgACdlYAAnZeAAJ2XoACdl8AAnZfgAJ2YAACdmDAAnZhAAJ2YUACdmIAAnZiQAJ2YsACdmMAAnZjgAJ2ZEACdmSAAnZkwAJ2ZYACdmXAAnZnAAJ2bUACdm+AAnZwAAJ2cIACdnLAAnZzgAJ2dEACdnTAAnaHAAJ2kAACdpnAAnaiwAJ2o4ACdqQAAnakgAJ2pQACdqWAAnamAAJ2pkACdqcAAnatQAJ2tYACdrYAAna2gAJ2twACdreAAna4AAJ2uIACdrkAAna5gAJ2wcACdsKAAnbDQAJ2xAACdsTAAnbFgAJ2xkACdscAAnbHwAJ2yEACducAAnbngAJ26AACduiAAnbpQAJ26YACdunAAnbqAAJ26kACdurAAnbrQAJ264ACduvAAnbsQAJ27IACdwtAAncLwAJ3DEACdwzAAncNgAJ3DcACdw4AAncOQAJ3DoACdw8AAncPgAJ3D8ACdxAAAncQgAJ3EMACdy+AAncwAAJ3MMACdzFAAncyAAJ3MkACdzKAAncywAJ3MwACdzOAAnc0AAJ3NEACdzSAAnc1AAJ3NUACdzuAAnc7wAJ3PAACdzyAAndbQAJ3W8ACd1xAAndcwAJ3XYACd13AAndeAAJ3XkACd16AAndfAAJ3X4ACd1/AAndgAAJ3YIACd2DAAnd/gAJ3gAACd4CAAneBAAJ3gcACd4IAAneCQAJ3goACd4LAAneDQAJ3g8ACd4QAAneEQAJ3hMACd4UAAnejwAJ3pEACd6TAAnelQAJ3pgACd6ZAAnemgAJ3psACd6cAAnengAJ3qAACd6hAAneogAJ3qQACd6lAAnfIAAJ3yIACd8kAAnfJgAJ3ykACd8qAAnfKwAJ3ywACd8tAAnfLwAJ3zEACd8yAAnfMwAJ3zUACd82AAnfsQAJ37MACd+1AAnftwAJ37oACd+7AAnfvAAJ370ACd++AAnfwAAJ38IACd/DAAnfxAAJ38YACd/HAAngEAAJ4DQACeBbAAngfwAJ4IIACeCEAAnghgAJ4IgACeCKAAngjAAJ4I0ACeCQAAngqQAJ4MYACeDIAAngygAJ4MwACeDOAAng0AAJ4NIACeDUAAng8QAJ4PQACeD3AAng+gAJ4P0ACeEAAAnhAwAJ4QYACeEIAAnhgwAJ4YUACeGHAAnhiQAJ4YwACeGNAAnhjgAJ4Y8ACeGQAAnhkgAJ4ZQACeGVAAnhlgAJ4ZgACeGZAAniFAAJ4hYACeIYAAniGgAJ4h0ACeIeAAniHwAJ4iAACeIhAAniIwAJ4iUACeImAAniJwAJ4ikACeIqAAnipQAJ4qcACeKpAAniqwAJ4q4ACeKvAAnisAAJ4rEACeKyAAnitAAJ4rYACeK3AAniuAAJ4roACeK7AAnjNgAJ4zgACeM6AAnjPAAJ4z8ACeNAAAnjQQAJ40IACeNDAAnjRQAJ40cACeNIAAnjSQAJ40sACeNMAAnjxwAJ48kACePLAAnjzQAJ49AACePRAAnj0gAJ49MACePUAAnj1gAJ49gACePZAAnj2gAJ49wACePdAAnkWAAJ5FoACeRcAAnkXgAJ5GEACeRiAAnkYwAJ5GQACeRlAAnkZwAJ5GkACeRqAAnkawAJ5G0ACeRuAAnk6QAJ5OsACeTtAAnk7wAJ5PIACeTzAAnk9AAJ5PUACeT2AAnk+AAJ5PoACeT7AAnk/AAJ5P4ACeT/AAnlkgAJ5bUACeXVAAnl9QAJ5fcACeX5AAnl+wAJ5f0ACeYAAAnmAQAJ5gIACeYFAAnmBgAJ5ggACeYJAAnmCwAJ5g4ACeYPAAnmEAAJ5hMACeYUAAnmHQAJ5jYACeY/AAnmQQAJ5kMACeZMAAnmTwAJ5lIACeZUAAnmnQAJ5sEACeboAAnnDAAJ5w8ACecRAAnnEwAJ5xUACecXAAnnGQAJ5xoACecdAAnnNgAJ51cACedZAAnnWwAJ510ACedfAAnnYQAJ52MACedlAAnnZwAJ54gACeeLAAnnjgAJ55EACeeUAAnnlwAJ55oACeedAAnnoAAJ56IACegdAAnoHwAJ6CEACegjAAnoJgAJ6CcACegoAAnoKQAJ6CoACegsAAnoLgAJ6C8ACegwAAnoMgAJ6DMACeiuAAnosAAJ6LIACei0AAnotwAJ6LgACei5AAnougAJ6LsACei9AAnovwAJ6MAACejBAAnowwAJ6MQACek/AAnpQQAJ6UQACelGAAnpSQAJ6UoACelLAAnpTAAJ6U0ACelPAAnpUQAJ6VIACelTAAnpVQAJ6VYACelvAAnpcAAJ6XEACelzAAnp7gAJ6fAACenyAAnp9AAJ6fcACen4AAnp+QAJ6foACen7AAnp/QAJ6f8ACeoAAAnqAQAJ6gMACeoEAAnqfwAJ6oEACeqDAAnqhQAJ6ogACeqJAAnqigAJ6osACeqMAAnqjgAJ6pAACeqRAAnqkgAJ6pQACeqVAAnrEAAJ6xIACesUAAnrFgAJ6xkACesaAAnrGwAJ6xwACesdAAnrHwAJ6yEACesiAAnrIwAJ6yUACesmAAnroQAJ66MACeulAAnrpwAJ66oACeurAAnrrAAJ660ACeuuAAnrsAAJ67IACeuzAAnrtAAJ67YACeu3AAnsMgAJ7DQACew2AAnsOAAJ7DsACew8AAnsPQAJ7D4ACew/AAnsQQAJ7EMACexEAAnsRQAJ7EcACexIAAnskQAJ7LUACezcAAntAAAJ7QMACe0FAAntBwAJ7QkACe0LAAntDQAJ7Q4ACe0RAAntKgAJ7UcACe1JAAntSwAJ7U0ACe1PAAntUQAJ7VMACe1VAAntcgAJ7XUACe14AAntewAJ7X4ACe2BAAnthAAJ7YcACe2JAAnuBAAJ7gYACe4IAAnuCgAJ7g0ACe4OAAnuDwAJ7hAACe4RAAnuEwAJ7hUACe4WAAnuFwAJ7hkACe4aAAnulQAJ7pcACe6ZAAnumwAJ7p4ACe6fAAnuoAAJ7qEACe6iAAnupAAJ7qYACe6nAAnuqAAJ7qoACe6rAAnvJgAJ7ygACe8qAAnvLAAJ7y8ACe8wAAnvMQAJ7zIACe8zAAnvNQAJ7zcACe84AAnvOQAJ7zsACe88AAnvtwAJ77kACe+8AAnvvgAJ78EACe/CAAnvwwAJ78QACe/FAAnvxwAJ78kACe/KAAnvywAJ780ACe/OAAnwSQAJ8EsACfBNAAnwTwAJ8FIACfBTAAnwVAAJ8FUACfBWAAnwWAAJ8FoACfBbAAnwXAAJ8F4ACfBfAAnw2gAJ8NwACfDeAAnw4AAJ8OMACfDkAAnw5QAJ8OYACfDnAAnw6QAJ8OsACfDsAAnw7QAJ8O8ACfDwAAnxawAJ8W0ACfFvAAnxcQAJ8XQACfF1AAnxdgAJ8XcACfF4AAnxegAJ8XwACfF9AAnxfgAJ8YAACfGBAAnyFAAJ8jcACfJXAAnydwAJ8nkACfJ7AAnyfQAJ8n8ACfKCAAn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DjgAKA48ACgQKAAoEDAAKBA8ACgQRAAoEFAAKBBUACgQWAAoEFwAKBBgACgQaAAoEHAAKBB0ACgQeAAoEIAAKBCEACgQ6AAoEOwAKBDwACgQ+AAoEuQAKBLsACgS9AAoEvwAKBMIACgTDAAoExAAKBMUACgTGAAoEyAAKBMoACgTLAAoEzAAKBM4ACgTPAAoFSgAKBUwACgVOAAoFUAAKBVMACgVUAAoFVQAKBVYACgVXAAoFWQAKBVsACgVcAAoFXQAKBV8ACgVgAAoF2wAKBd0ACgXfAAoF4QAKBeQACgXlAAoF5gAKBecACgXoAAoF6gAKBewACgXtAAoF7gAKBfAACgXxAAoGbAAKBm4ACgZwAAoGcgAKBnUACgZ2AAoGdwAKBngACgZ5AAoGewAKBn0ACgZ+AAoGfwAKBoEACgaCAAoG/QAKBv8ACgcBAAoHAwAKBwYACgcHAAoHCAAKBwkACgcKAAoHDAAKBw4ACgcPAAoHEAAKBxIACgcTAAoHXAAKB4AACgenAAoHywAKB84ACgfQAAoH0gAKB9QACgfWAAoH2AAKB9kACgfcAAoH9QAKCBIACggUAAoIFgAKCBgACggaAAoIHAAKCB4ACgggAAoIPQAKCEAACghDAAoIRgAKCEkACghMAAoITwAKCFIACghUAAoIzwAKCNEACgjTAAoI1QAKCNgACgjZAAoI2gAKCNsACgjcAAoI3gAKCOAACgjhAAoI4gAKCOQACgjlAAoJYAAKCWIACglkAAoJZgAKCWkACglqAAoJawAKCWwACgltAAoJbwAKCXEACglyAAoJcwAKCXUACgl2AAoJ8QAKCfMACgn1AAoJ9wAKCfoACgn7AAoJ/AAKCf0ACgn+AAoKAAAKCgIACgoDAAoKBAAKCgYACgoHAAoKggAKCoQACgqHAAoKiQAKCowACgqNAAoKjgAKCo8ACgqQAAoKkgAKCpQACgqVAAoKlgAKCpgACgqZAAoLFAAKCxYACgsYAAoLGgAKCx0ACgseAAoLHwAKCyAACgshAAoLIwAKCyUACgsmAAoLJwAKCykACgsqAAoLpQAKC6cACgupAAoLqwAKC64ACguvAAoLsAAKC7EACguyAAoLtAAKC7YACgu3AAoLuAAKC7oACgu7AAoMNgAKDDgACgw6AAoMPAAKDD8ACgxAAAoMQQAKDEIACgxDAAoMRQAKDEcACgxIAAoMSQAKDEsACgxMAAoM3wAKDQIACg0iAAoNQgAKDUQACg1GAAoNSAAKDUoACg1NAAoNTgAKDU8ACg1SAAoNUwAKDVUACg1WAAoNWAAKDVsACg1cAAoNXQAKDWAACg1hAAoNZgAKDX8ACg2IAAoNigAKDYwACg2VAAoNmAAKDZsACg2dAAoN5gAKDgoACg4xAAoOVQAKDlgACg5aAAoOXAAKDl4ACg5gAAoOYgAKDmMACg5mAAoOfwAKDqAACg6iAAoOpAAKDqYACg6oAAoOqgAKDqwACg6uAAoOsAAKDtEACg7UAAoO1wAKDtoACg7dAAoO4AAKDuMACg7mAAoO6QAKDusACg9mAAoPaAAKD2oACg9sAAoPbwAKD3AACg9xAAoPcgAKD3MACg91AAoPdwAKD3gACg95AAoPewAKD3wACg/3AAoP+QAKD/sACg/9AAoQAAAKEAEAChACAAoQAwAKEAQAChAGAAoQCAAKEAkAChAKAAoQDAAKEA0AChCIAAoQigAKEI0AChCPAAoQkgAKEJMAChCUAAoQlQAKEJYAChCYAAoQmgAKEJsAChCcAAoQngAKEJ8AChC4AAoQuQAKELoAChC8AAoRNwAKETkAChE7AAoRPQAKEUAAChFBAAoRQgAKEUMAChFEAAoRRgAKEUgAChFJAAoRSgAKEUwAChFNAAoRyAAKEcoAChHMAAoRzgAKEdEAChHSAAoR0wAKEdQAChHVAAoR1wAKEdkAChHaAAoR2wAKEd0AChHeAAoSWQAKElsAChJdAAoSXwAKEmIAChJjAAoSZAAKEmUAChJmAAoSaAAKEmoAChJrAAoSbAAKEm4AChJvAAoS6gAKEuwAChLuAAoS8AAKEvMAChL0AAoS9QAKEvYAChL3AAoS+QAKEvsAChL8AAoS/QAKEv8AChMAAAoTewAKE30AChN/AAoTgQAKE4QAChOFAAoThgAKE4cAChOIAAoTigAKE4wAChONAAoTjgAKE5AAChORAAoT2gAKE/4AChQlAAoUSQAKFEwAChROAAoUUAAKFFIAChRUAAoUVgAKFFcAChRaAAoUcwAKFJAAChSSAAoUlAAKFJYAChSYAAoUmgAKFJwAChSeAAoUuwAKFL4AChTBAAoUxAAKFMcAChTKAAoUzQAKFNAAChTSAAoVTQAKFU8AChVRAAoVUwAKFVYAChVXAAoVWAAKFVkAChVaAAoVXAAKFV4AChVfAAoVYAAKFWIAChVjAAoV3gAKFeAAChXiAAoV5AAKFecAChXoAAoV6QAKFeoAChXrAAoV7QAKFe8AChXwAAoV8QAKFfMAChX0AAoWbwAKFnEAChZzAAoWdQAKFngAChZ5AAoWegAKFnsAChZ8AAoWfgAKFoAAChaBAAoWggAKFoQAChaFAAoXAAAKFwIAChcFAAoXBwAKFwoAChcLAAoXDAAKFw0AChcOAAoXEAAKFxIAChcTAAoXFAAKFxYAChcXAAoXkgAKF5QACheWAAoXmAAKF5sAChecAAoXnQAKF54AChefAAoXoQAKF6MAChekAAoXpQAKF6cACheoAAoYIwAKGCUAChgnAAoYKQAKGCwAChgtAAoYLgAKGC8AChgwAAoYMgAKGDQAChg1AAoYNgAKGDgAChg5AAoYtAAKGLYAChi4AAoYugAKGL0AChi+AAoYvwAKGMAAChjBAAoYwwAKGMUAChjGAAoYxwAKGMkAChjKAAoZXQAKGYAAChmgAAoZwAAKGcIAChnEAAoZxgAKGcgAChnLAAoZzAAKGc0AChnQAAoZ0QAKGdMAChnUAAoZ1gAKGdkAChnaAAoZ2wAKGd4AChnfAAoZ5AAKGf0AChoGAAoaCAAKGgoAChoTAAoaFgAKGhkAChobAAoaZAAKGogAChqvAAoa0wAKGtYAChrYAAoa2gAKGtwAChreAAoa4AAKGuEAChrkAAoa/QAKGx4AChsgAAobIgAKGyQAChsmAAobKAAKGyoAChssAAobLgAKG08AChtSAAobVQAKG1gAChtbAAobXgAKG2EAChtkAAobZwAKG2kAChvkAAob5gAKG+gAChvqAAob7QAKG+4AChvvAAob8AAKG/EAChvzAAob9QAKG/YAChv3AAob+QAKG/oAChx1AAocdwAKHHkAChx7AAocfgAKHH8AChyAAAocgQAKHIIAChyEAAochgAKHIcAChyIAAocigAKHIsACh0GAAodCAAKHQsACh0NAAodEAAKHREACh0SAAodEwAKHRQACh0WAAodGAAKHRkACh0aAAodHAAKHR0ACh02AAodNwAKHTgACh06AAodtQAKHbcACh25AAoduwAKHb4ACh2/AAodwAAKHcEACh3CAAodxAAKHcYACh3HAAodyAAKHcoACh3LAAoeRgAKHkgACh5KAAoeTAAKHk8ACh5QAAoeUQAKHlIACh5TAAoeVQAKHlcACh5YAAoeWQAKHlsACh5cAAoe1wAKHtkACh7bAAoe3QAKHuAACh7hAAoe4gAKHuMACh7kAAoe5gAKHugACh7pAAoe6gAKHuwACh7tAAofaAAKH2oACh9sAAofbgAKH3EACh9yAAofcwAKH3QACh91AAofdwAKH3kACh96AAofewAKH30ACh9+AAof+QAKH/sACh/9AAof/wAKIAIACiADAAogBAAKIAUACiAGAAogCAAKIAoACiALAAogDAAKIA4ACiAPAAogWAAKIHwACiCjAAogxwAKIMoACiDMAAogzgAKINAACiDSAAog1AAKINUACiDYAAog8QAKIQ4ACiEQAAohEgAKIRQACiEWAAohGAAKIRoACiEcAAohOQAKITwACiE/AAohQgAKIUUACiFIAAohSwAKIU4ACiFQAAohywAKIc0ACiHPAAoh0QAKIdQACiHVAAoh1gAKIdcACiHYAAoh2gAKIdwACiHdAAoh3gAKIeAACiHhAAoiXAAKIl4ACiJgAAoiYgAKImUACiJmAAoiZwAKImgACiJpAAoiawAKIm0ACiJuAAoibwAKInEACiJyAAoi7QAKIu8ACiLxAAoi8wAKIvYACiL3AAoi+AAKIvkACiL6AAoi/AAKIv4ACiL/AAojAAAKIwIACiMDAAojfgAKI4AACiODAAojhQAKI4gACiOJAAojigAKI4sACiOMAAojjgAKI5AACiORAAojkgAKI5QACiOVAAokEAAKJBIACiQUAAokFgAKJBkACiQaAAokGwAKJBwACiQdAAokHwAKJCEACiQiAAokIwAKJCUACiQmAAokoQAKJKMACiSlAAokpwAKJKoACiSrAAokrAAKJK0ACiSuAAoksAAKJLIACiSzAAoktAAKJLYACiS3AAolMgAKJTQACiU2AAolOAAKJTsACiU8AAolPQAKJT4ACiU/AAolQQAKJUMACiVEAAolRQAKJUcACiVIAAol2wAKJf4ACiYeAAomPgAKJkAACiZCAAomRAAKJkYACiZJAAomSgAKJksACiZOAAomTwAKJlEACiZSAAomVQAKJlgACiZZAAomWgAKJl0ACiZeAAomYwAKJnwACiaFAAomhwAKJooACiaTAAomlgAKJpkACiabAAom5AAKJwgACicvAAonUwAKJ1YACidYAAonWgAKJ1wACideAAonYAAKJ2EACidkAAonfQAKJ54ACiegAAonogAKJ6QACiemAAonqAAKJ6oACiesAAonrgAKJ88ACifSAAon1QAKJ9gACifbAAon3gAKJ+EACifkAAon5wAKJ+kACihkAAooZgAKKGgACihqAAoobQAKKG4ACihvAAoocAAKKHEACihzAAoodQAKKHYACih3AAooeQAKKHoACij1AAoo9wAKKPkACij7AAoo/gAKKP8ACikAAAopAQAKKQIACikEAAopBgAKKQcACikIAAopCgAKKQsACimGAAopiAAKKYsACimNAAopkAAKKZEACimSAAopkwAKKZQACimWAAopmAAKKZkACimaAAopnAAKKZ0ACim2AAoptwAKKbgACim6AAoqNQAKKjcACio5AAoqOwAKKj4ACio/AAoqQAAKKkEACipCAAoqRAAKKkYACipHAAoqSAAKKkoACipLAAoqxgAKKsgACirKAAoqzAAKKs8ACirQAAoq0QAKKtIACirTAAoq1QAKKtcACirYAAoq2QAKKtsACircAAorVwAKK1kACitbAAorXQAKK2AACithAAorYgAKK2MACitkAAorZgAKK2gACitpAAoragAKK2wACittAAor6AAKK+oACivsAAor7gAKK/EACivyAAor8wAKK/QACiv1AAor9wAKK/kACiv6AAor+wAKK/0ACiv+AAoseQAKLHsACix9AAosfwAKLIIACiyDAAoshAAKLIUACiyGAAosiAAKLIoACiyLAAosjAAKLI4ACiyPAAos2AAKLPwACi0jAAotRwAKLUoACi1NAAotTwAKLVEACi1TAAotVQAKLVYACi1ZAAotcgAKLY8ACi2SAAotlQAKLZgACi2bAAotngAKLaEACi2kAAotwQAKLcQACi3HAAotygAKLc0ACi3QAAot0wAKLdYACi3YAAouUwAKLlUACi5YAAouWgAKLl0ACi5eAAouXwAKLmAACi5hAAouYwAKLmYACi5nAAouaAAKLmoACi5rAAou5gAKLugACi7rAAou7QAKLvAACi7xAAou8gAKLvMACi70AAou9gAKLvkACi76AAou+wAKLv0ACi7+AAoveQAKL3sACi9+AAovgAAKL4MACi+EAAo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AwwAKQMYACkDHAApAyAAKQMoACkDLAApBRgAKQUgACkFKAApBTAAKQU8ACkFQAApBUQAKQVIACkFTAApBVQAKQVgACkFZAApBWgAKQVwACkFdAApB2AAKQdoACkHdAApB3wAKQeIACkHjAApB5AAKQeUACkHmAApB6AAKQesACkHsAApB7QAKQe8ACkHwAApCgwAKQqYACkLGAApC5gAKQugACkLqAApC7AAKQu4ACkLxAApC8gAKQvMACkL2AApC9wAKQvkACkL6AApC/AAKQv8ACkMAAApDAQAKQwQACkMFAApDCgAKQyMACkMsAApDLgAKQzAACkM5AApDPAAKQz8ACkNBAApDigAKQ64ACkPVAApD+QAKQ/wACkP+AApEAAAKRAIACkQEAApEBgAKRAcACkQKAApEIwAKREQACkRGAApESAAKREoACkRMAApETgAKRFAACkRSAApEVAAKRHUACkR4AApEewAKRH4ACkSBAApEhAAKRIcACkSKAApEjQAKRI8ACkUKAApFDAAKRQ4ACkUQAApFEwAKRRQACkUVAApFFgAKRRcACkUZAApFGwAKRRwACkUdAApFHwAKRSAACkWbAApFnQAKRZ8ACkWhAApFpAAKRaUACkWmAApFpwAKRagACkWqAApFrAAKRa0ACkWuAApFsAAKRbEACkYsAApGLgAKRjEACkYzAApGNgAKRjcACkY4AApGOQAKRjoACkY8AApGPgAKRj8ACkZAAApGQgAKRkMACkZcAApGXQAKRl4ACkZgAApG2wAKRt0ACkbfAApG4QAKRuQACkblAApG5gAKRucACkboAApG6gAKRuwACkbtAApG7gAKRvAACkbxAApHbAAKR24ACkdwAApHcgAKR3UACkd2AApHdwAKR3gACkd5AApHewAKR30ACkd+AApHfwAKR4EACkeCAApH/QAKR/8ACkgBAApIAwAKSAYACkgHAApICAAKSAkACkgKAApIDAAKSA4ACkgPAApIEAAKSBIACkgTAApIjgAKSJAACkiSAApIlAAKSJcACkiYAApImQAKSJoACkibAApInQAKSJ8ACkigAApIoQAKSKMACkikAApJHwAKSSEACkkjAApJJQAKSSgACkkpAApJKgAKSSsACkksAApJLgAKSTAACkkxAApJMgAKSTQACkk1AApJfgAKSaIACknJAApJ7QAKSfAACknyAApJ9AAKSfYACkn4AApJ+gAKSfsACkn+AApKFwAKSjQACko2AApKOAAKSjoACko8AApKPgAKSkAACkpCAApKXwAKSmIACkplAApKaAAKSmsACkpuAApKcQAKSnQACkp2AApK8QAKSvMACkr1AApK9wAKSvoACkr7AApK/AAKSv0ACkr+AApLAAAKSwIACksDAApLBAAKSwYACksHAApLggAKS4QACkuGAApLiAAKS4sACkuMAApLjQAKS44ACkuPAApLkQAKS5MACkuUAApLlQAKS5cACkuYAApMEwAKTBUACkwXAApMGQAKTBwACkwdAApMHgAKTB8ACkwgAApMIgAKTCQACkwlAApMJgAKTCgACkwpAApMpAAKTKYACkyoAApMqgAKTK0ACkyuAApMrwAKTLAACkyxAApMswAKTLUACky2AApMtwAKTLkACky6AApNNQAKTTcACk05AApNOwAKTT4ACk0/AApNQAAKTUEACk1CAApNRAAKTUYACk1HAApNSAAKTUoACk1LAApNxgAKTcgACk3KAApNzAAKTc8ACk3QAApN0QAKTdIACk3TAApN1QAKTdcACk3YAApN2QAKTdsACk3cAApOVwAKTlkACk5bAApOXQAKTmAACk5hAApOYgAKTmMACk5kAApOZgAKTmgACk5pAApOagAKTmwACk5tAApPAAAKTyMACk9DAApPYwAKT2UACk9nAApPaQAKT2sACk9uAApPbwAKT3AACk9zAApPdAAKT3YACk93AApPeQAKT3wACk99AApPfgAKT4EACk+CAApPhwAKT6AACk+pAApPqwAKT60ACk+2AApPuQAKT7wACk++AApQBwAKUCsAClBSAApQdgAKUHkAClB7AApQfQAKUH8AClCBAApQgwAKUIQAClCHAApQoAAKUMEAClDDAApQxQAKUMcAClDJAApQywAKUM0AClDPAApQ0QAKUPIAClD1AApQ+AAKUPsAClD+AApRAQAKUQQAClEHAApRCgAKUQwAClGHAApRiQAKUYsAClGNAApRkAAKUZEAClGSAApRkwAKUZQAClGWAApRmAAKUZkAClGaAApRnAAKUZ0AClIYAApSGgAKUhwAClIeAApSIQAKUiIAClIjAApSJAAKUiUAClInAApSKQAKUioAClIrAApSLQAKUi4AClKpAApSqwAKUq4AClKwAApSswAKUrQAClK1AApStgAKUrcAClK5AApSuwAKUrwAClK9AApSvwAKUsAAClLZAApS2gAKUtsAClLdAApTWAAKU1oAClNcAApTXgAKU2EAClNiAApTYwAKU2QAClNlAApTZwAKU2kAClNqAApTawAKU20AClNuAApT6QAKU+sAClPtAApT7wAKU/IAClPzAApT9AAKU/UAClP2AApT+AAKU/oAClP7AApT/AAKU/4AClP/AApUegAKVHwAClR+AApUgAAKVIMAClSEAApUhQAKVIYAClSHAApUiQAKVIsAClSMAApUjQAKVI8AClSQAApVCwAKVQ0AClUPAApVEQAKVRQAClUVAApVFgAKVRcAClUYAApVGgAKVRwAClUdAApVHgAKVSAAClUhAApVnAAKVZ4AClWgAApVogAKVaUAClWmAApVpwAKVagAClWpAApVqwAKVa0AClWuAApVrwAKVbEAClWyAApV+wAKVh8AClZGAApWagAKVm0AClZvAApWcQAKVnMAClZ1AApWdwAKVngAClZ7AApWlAAKVrEAClazAApWtQAKVrcACla5AApWuwAKVr0ACla/AApW3AAKVt8AClbiAApW5QAKVugAClbrAApW7gAKVvEAClbzAApXbgAKV3AACldyAApXdAAKV3cACld4AApXeQAKV3oACld7AApXfQAKV38ACleAAApXgQAKV4MACleEAApX/wAKWAEAClgDAApYBQAKWAgAClgJAApYCgAKWAsAClgMAApYDgAKWBAAClgRAApYEgAKWBQAClgVAApYkAAKWJIACliUAApYlgAKWJkACliaAApYmwAKWJwAClidAApYnwAKWKEACliiAApYowAKWKUAClimAApZIQAKWSMAClkmAApZKAAKWSsAClksAApZLQAKWS4AClkvAApZMQAKWTMAClk0AApZNQAKWTcAClk4AApZswAKWbUAClm3AApZuQAKWbwAClm9AApZvgAKWb8AClnAAApZwgAKWcQAClnFAApZxgAKWcgAClnJAApaRAAKWkYAClpIAApaSgAKWk0AClpOAApaTwAKWlAAClpRAApaUwAKWlUAClpWAApaVwAKWlkAClpaAApa1QAKWtcAClrZAApa2wAKWt4AClrfAApa4AAKWuEAClriAApa5AAKWuYAClrnAApa6AAKWuoAClrrAApa/AAKWv0AClr/AApbegAKW3wAClt+AApbgAAKW4MACluEAApbhQAKW4YACluHAApbiQAKW4wACluNAApbjgAKW5AACluRAApcDAAKXA4AClwQAApcEgAKXBUAClwWAApcFwAKXBgAClwZAApcGwAKXB4AClwfAApcIAAKXCIAClwjAApcngAKXKAAClyjAApcpQAKXKgAClypAApcqgAKXKsAClysAApcrgAKXLEAClyyAApcswAKXLUACly2AApdSQAKXWwACl2MAApdrAAKXa4ACl2wAApdsgAKXbQACl23AApduAAKXbkACl28AApdvQAKXb8ACl3AAApdwgAKXcUACl3GAApdxwAKXcoACl3LAApd0AAKXekACl3yAApd9AAKXfYACl3/AApeAgAKXgUACl4HAApeUAAKXnQACl6bAApevwAKXsIACl7EAApexgAKXsgACl7KAApezAAKXs0ACl7QAApe6QAKXwoACl8MAApfDgAKXxAACl8SAApfFAAKXxYACl8YAApfGgAKXzsACl8+AApfQQAKX0QACl9HAApfSgAKX00ACl9QAApfUwAKX1UACl/QAApf0gAKX9QACl/WAApf2QAKX9oACl/bAApf3AAKX90ACl/fAApf4QAKX+IACl/jAApf5QAKX+YACmBhAApgYwAKYGUACmBnAApgagAKYGsACmBsAApgbQAKYG4ACmBwAApgcgAKYHMACmB0AApgdgAKYHcACmDyAApg9AAKYPcACmD5AApg/AAKYP0ACmD+AApg/wAKYQAACmECAAphBAAKYQUACmEGAAphCAAKYQkACmEiAAphIwAKYSQACmEmAAphoQAKYaMACmGlAAphpwAKYaoACmGrAAphrAAKYa0ACmGuAAphsAAKYbIACmGzAAphtAAKYbYACmG3AApiMgAKYjQACmI2AApiOAAKYjsACmI8AApiPQAKYj4ACmI/AApiQQAKYkMACmJEAApiRQAKYkcACmJIAApiwwAKYsUACmLHAApiyQAKYswACmLNAApizgAKYs8ACmLQAApi0gAKYtQACmLVAApi1gAKYtgACmLZAApjVAAKY1YACmNYAApjWgAKY10ACmNeAApjXwAKY2AACmNhAApjYwAKY2UACmNmAApjZwAKY2kACmNqAApj5QAKY+cACmPpAApj6wAKY+4ACmPvAApj8AAKY/EACmPyAApj9AAKY/YACmP3AApj+AAKY/oACmP7AApkRAAKZGgACmSPAApkswAKZLYACmS4AApkugAKZLwACmS+AApkwAAKZMEACmTEAApk3QAKZPoACmT8AApk/gAKZQAACmUCAAplBAAKZQYACmUIAAplJQAKZSgACmUrAAplLgAKZTEACmU0AAplNwAKZToACmU8AApltwAKZbkACmW7AAplvQAKZcAACmXBAAplwgAKZcMACmXEAAplxgAKZcgACmXJAAplygAKZcwACmXNAApmSAAKZkoACmZMAApmTgAKZlEACmZSAApmUwAKZlQACmZVAApmVwAKZlkACmZaAApmWwAKZl0ACmZeAApm2QAKZtsACmbdAApm3wAKZuIACmbjAApm5AAKZuUACmbmAApm6AAKZuoACmbrAApm7AAKZu4ACmbvAApnagAKZ2wACmdvAApncQAKZ3QACmd1AApndgAKZ3cACmd4AApnegAKZ3wACmd9AApnfgAKZ4AACmeBAApn/AAKZ/4ACmgAAApoAgAKaAUACmgGAApoBwAKaAgACmgJAApoCwAKaA0ACmgOAApoDwAKaBEACmgSAApojQAKaI8ACmiRAApokwAKaJYACmiXAApomAAKaJkACmiaAAponAAKaJ4ACmifAApooAAKaKIACmijAAppHgAKaSAACmkiAAppJAAKaScACmkoAAppKQAKaSoACmkrAAppLQAKaS8ACmkwAAppMQAKaTMACmk0AAppxwAKaeoACmoKAApqKgAKaiwACmouAApqMAAKajIACmo1AApqNgAKajcACmo6AApqOwAKaj0ACmo+AApqQQAKakQACmpFAApqRgAKakkACmpKAApqTwAKamgACmpxAApqcwAKanYACmp/AApqggAKaoUACmqHAApq0AAKavQACmsbAAprPwAKa0IACmtEAAprRgAKa0gACmtKAAprTAAKa00ACmtQAApraQAKa4oACmuMAAprjgAKa5AACmuSAAprlAAKa5YACmuYAAprmgAKa7sACmu+AAprwQAKa8QACmvHAAprygAKa80ACmvQAApr0wAKa9UACmxQAApsUgAKbFQACmxWAApsWQAKbFoACmxbAApsXAAKbF0ACmxfAApsYQAKbGIACmxjAApsZQAKbGYACmzhAAps4wAKbOUACmznAAps6gAKbOsACmzsAAps7QAKbO4ACmzwAAps8gAKbPMACmz0AAps9gAKbPcACm1yAAptdAAKbXcACm15AAptfAAKbX0ACm1+AAptfwAKbYAACm2CAApthAAKbYUACm2GAAptiAAKbYkACm2iAAptowAKbaQACm2mAApuIQAKbiMACm4lAApuJwAKbioACm4rAApuLAAKbi0ACm4uAApuMAAKbjIACm4zAApuNAAKbjYACm43AApusgAKbrQACm62AApuuAAKbrsACm68AApuvQAKbr4ACm6/AApuwQAKbsMACm7EAApuxQAKbscACm7IAApvQwAKb0UACm9HAApvSQAKb0wACm9NAApvTgAKb08ACm9QAApvUgAKb1QACm9VAApvVgAKb1gACm9ZAApv1AAKb9YACm/YAApv2gAKb90ACm/eAApv3wAKb+AACm/hAApv4wAKb+UACm/mAApv5wAKb+kACm/qAApwZQAKcGcACnBpAApwawAKcG4ACnBvAApwcAAKcHEACnByAApwdAAKcHYACnB3AApweAAKcHoACnB7AApwxAAKcOgACnEPAApxMwAKcTYACnE5AApxOwAKcT0ACnE/AApxQQAKcUIACnFFAApxXgAKcXsACnF+AApxgQAKcYQACnGHAApxigAKcY0ACnGQAApxrQAKcbAACnGzAApxtgAKcbkACnG8AApxvwAKccIACnHEAApyPwAKckEACnJEAApyRgAKckkACnJKAApySwAKckwACnJNAApyTwAKclIACnJTAApyVAAKclYACnJXAApy0gAKctQACnLXAApy2QAKctwACnLdAApy3gAKct8ACnLgAApy4gAKcuUACnLmAApy5wAKcukACnLqAApzZQAKc2cACnNqAApzbAAKc28ACnNwAApzcQAKc3IACnNzAApzdQAKc3gACnN5AApzegAKc3wACnN9AApz+AAKc/oACnP9AApz/wAKdAIACnQDAAp0BAAKdAUACnQGAAp0CAAKdAsACnQMAAp0DQAKdA8ACnQQAAp0iwAKdI0ACnSPAAp0kQAKdJQACnSVAAp0lgAKdJcACnSYAAp0mgAKdJ0ACnSeAAp0nwAKdKEACnSiAAp1HQAKdR8ACnUhAAp1IwAKdSYACnUnAAp1KAAKdSkACnUqAAp1LAAKdS8ACnUwAAp1MQAKdTMACnU0AAp1rwAKdbEACnW0AAp1tgAKdbkACnW6AAp1uwAKdbwACnW9AAp1vwAKdcIACnXDAAp1xAAKdcYACnXHAAp2WgAKdn0ACnadAAp2vQAKdr8ACnbBAAp2wwAKdsUACnbIAAp2yQAKdsoACnbNAAp2zgAKdtAACnbRAAp20wAKdtYACnbXAAp22AAKdtsACnbcAAp24QAKdvoACncDAAp3BQAKdwcACncQAAp3EwAKdxYACncYAAp3YQAKd4UACnesAAp30AAKd9MACnfVAAp31wAKd9kACnfbAAp33QAKd94ACnfhAAp3+gAKeBsACngdAAp4HwAKeCEACngjAAp4JQAKeCcACngpAAp4KwAKeEwACnhPAAp4UgAKeFUACnhYAAp4WwAKeF4ACnhhAAp4ZAAKeGYACnjhAAp44wAKeOUACnjnAAp46gAKeOsACnjsAAp47QAKeO4ACnjwAAp48gAKePMACnj0AAp49gAKePcACnlyAAp5dAAKeXYACnl4AAp5ewAKeXwACnl9AAp5fgAKeX8ACnmBAAp5gwAKeYQACnmFAAp5hwAKeYgACnoDAAp6BQAKeggACnoKAAp6DQAKeg4ACnoPAAp6EAAKehEACnoTAAp6FQAKehYACnoXAAp6GQAKehoACnozAAp6NAAKejUACno3AAp6sgAKerQACnq2AAp6uAAKersACnq8AAp6vQAKer4ACnq/AAp6wQAKesMACnrEAAp6xQAKescACnrIAAp7QwAKe0UACntHAAp7SQAKe0wACntNAAp7TgAKe08ACntQAAp7UgAKe1QACntVAAp7VgAKe1gACntZAAp71AAKe9YACnvYAAp72gAKe90ACnveAAp73wAKe+AACnvhAAp74wAKe+UACnvmAAp75wAKe+kACnvqAAp8ZQAKfGcACnxpAAp8awAKfG4ACnxvAAp8cAAKfHEACnxyAAp8dAAKfHYACnx3AAp8eAAKfHoACnx7AAp89gAKfPgACnz6AAp8/AAKfP8ACn0AAAp9AQAKfQIACn0DAAp9BQAKfQcACn0IAAp9CQAKfQsACn0MAAp9VQAKfXkACn2gAAp9xAAKfccACn3JAAp9ywAKfc0ACn3PAAp90QAKfdIACn3VAAp97gAKfgsACn4NAAp+DwAKfhEACn4TAAp+FQAKfhcACn4ZAAp+NgAKfjkACn48AAp+PwAKfkIACn5FAAp+SAAKfksACn5NAAp+yAAKfsoACn7MAAp+zgAKftEACn7SAAp+0wAKftQACn7VAAp+1wAKftkACn7aAAp+2wAKft0ACn7eAAp/WQAKf1sACn9dAAp/XwAKf2IACn9jAAp/ZAAKf2UACn9mAAp/aAAKf2oACn9rAAp/bAAKf24ACn9vAAp/6gAKf+wACn/uAAp/8AAKf/MACn/0AAp/9QAKf/YACn/3AAp/+QAKf/sACn/8AAp//QAKf/8ACoAAAAqAewAKgH0ACoCAAAqAggAKgIUACoCGAAqAhwAKgIgACoCJAAqAiwAKgI0ACoCOAAqAjwAKgJEACoCSAAqBDQAKgQ8ACoERAAqBEwAKgRYACoEXAAqBGAAKgRkACoEaAAqBHAAKgR4ACoEfAAqBIAAKgSIACoEjAAqBngAKgaAACoGiAAqBpAAKgacACoGoAAqBqQAKgaoACoGrAAqBrQAKga8ACoGwAAqBsQAKgbMACoG0AAqCLwAKgjEACoIzAAqCNQAKgjgACoI5AAqCOgAKgjsACoI8AAqCPgAKgkAACoJBAAqCQgAKgkQACoJFAAqCVgAKglcACoJZAAqC1AAKgtYACoLYAAqC2gAKgt0ACoLeAAqC3wAKguAACoLhAAqC4wAKguYACoLnAAqC6AAKguoACoLrAAqDZgAKg2gACoNqAAqDbAAKg28ACoNwAAqDcQAKg3IACoNzAAqDdQAKg3gACoN5AAqDegAKg3wACoN9AAqD+AAKg/oACoP9AAqD/wAKhAIACoQDAAqEBAAKhAUACoQGAAqECAAKhAsACoQMAAqEDQAKhA8ACoQQAAqEowAKhMYACoTmAAqFBgAKhQgACoUKAAqFDAAKhQ4ACoURAAqFEgAKhRMACoUWAAqFFwAKhRkACoUaAAqFHQAKhSAACoUhAAqFIgAKhSUACoUmAAqFKwAKhUQACoVNAAqFTwAKhVIACoVbAAqFXgAKhWEACoVjAAqFrAAKhdAACoX3AAqGGwAKhh4ACoYgAAqGIgAKhiQACoYmAAqGKAAKhikACoYsAAqGRQAKhmYACoZoAAqGagAKhmwACoZuAAqGcAAKhnIACoZ0AAqGdgAKhpcACoaaAAqGnQAKhqAACoajAAqGpgAKhqkACoasAAqGrwAKhrEACocsAAqHLgAKhzAACocyAAqHNQAKhzYACoc3AAqHOAAKhzkACoc7AAqHPQAKhz4ACoc/AAqHQQAKh0IACoe9AAqHvwAKh8EACofDAAqHxgAKh8cACofIAAqHyQAKh8oACofMAAqHzgAKh88ACofQAAqH0gAKh9MACohOAAqIUAAKiFMACohVAAqIWAAKiFkACohaAAqIWwAKiFwACoheAAqIYAAKiGEACohiAAqIZAAKiGUACoh+AAqIfwAKiIAACoiCAAqI/QAKiP8ACokBAAqJAwAKiQYACokHAAqJCAAKiQkACokKAAqJDAAKiQ4ACokPAAqJEAAKiRIACokTAAqJjgAKiZAAComSAAqJlAAKiZcAComYAAqJmQAKiZoACombAAqJnQAKiZ8AComgAAqJoQAKiaMAComkAAqKHwAKiiEACoojAAqKJQAKiigACoopAAqKKgAKiisACoosAAqKLgAKijAACooxAAqKMgAKijQACoo1AAqKsAAKirIACoq0AAqKtgAKirkACoq6AAqKuwAKirwACoq9AAqKvwAKisEACorCAAqKwwAKisUACorGAAqLQQAKi0MACotFAAqLRwAKi0oACotLAAqLTAAKi00ACotOAAqLUAAKi1IACotTAAqLVAAKi1YACotXAAqLoAAKi8QACovrAAqMDwAKjBIACowVAAqMFwAKjBkACowbAAqMHQAKjB4ACowhAAqMOgAKjFcACoxaAAqMXQAKjGAACoxjAAqMZgAKjGkACoxsAAqMiQAKjIwACoyPAAqMkgAKjJUACoyYAAqMmwAKjJ4ACoygAAqNGwAKjR0ACo0gAAqNIgAKjSUACo0mAAqNJwAKjSgACo0pAAqNKwAKjS4ACo0vAAqNMAAKjTIACo0zAAqNrgAKjbAACo2zAAqNtQAKjbgACo25AAqNugAKjbsACo28AAqNvgAKjcEACo3CAAqNwwAKjcUACo3GAAqOQQAKjkMACo5GAAqOSAAKjksACo5MAAqOTQAKjk4ACo5PAAqOUQAKjlQACo5VAAqOVgAKjlgACo5ZAAqO1AAKjtYACo7ZAAqO2wAKjt4ACo7fAAqO4AAKjuEACo7iAAqO5AAKjucACo7oAAqO6QAKjusACo7sAAqPbwAKj5MACo+3AAqP2gAKkAEACpAhAAqQSAAKkG8ACpCPAAqQswAKkNcACpDZAAqQ3AAKkN4ACpDgAAqQ4gAKkOUACpDoAAqQ6gAKkOwACpDvAAqQ8QAKkPMACpD2AAqQ+QAKkPoACpEDAAqRHAAKkSEACpEjAAqRKAAKkSsACpEtAAqRdgAKkZoACpHBAAqR5QAKkegACpHqAAqR7AAKke4ACpHwAAqR8gAKkfMACpH2AAqSDwAKkjQACpI2AAqSOAAKkjoACpI8AAqSPgAKkkAACpJCAAqSRAAKkkYACpJrAAqSbgAKknEACpJ0AAqSdwAKknoACpJ9AAqSgAAKkoMACpKGAAqSiAAKkwMACpMFAAqTCAAKkwoACpMNAAqTDgAKkw8ACpMQAAqTEQAKkxMACpMVAAqTFgAKkxcACpMZAAqTGgAKkysACpMsAAqTLgAKk6kACpOrAAqTrQAKk68ACpOyAAqTswAKk7QACpO1AAqTtgAKk7gACpO6AAqTuwAKk7wACpO+AAqTvwAKlDoACpQ8AAqUPwAKlEEACpREAAqURQAKlEYACpRHAAqUSAAKlEoACpRMAAqUTQAKlE4ACpRQAAqUUQAKlGIACpRjAAqUZQAKlOAACpTiAAqU5AAKlOYACpTpAAqU6gAKlOsACpTsAAqU7QAKlO8ACpTxAAqU8gAKlPMACpT1AAqU9gAKlXEACpVzAAqVdgAKlXgACpV7AAqVfAAKlX0ACpV+AAqVfwAKlYEACpWDAAqVhAAKlYUACpWHAAqViAAKlZkACpWaAAqVnAAKlhcACpYZAAqWGwAKlh0ACpYgAAqWIQAKliIACpYjAAqWJAAKliYACpYoAAqWKQAKlioACpYsAAqWLQAKlqgACpaqAAqWrQAKlq8ACpayAAqWswAKlrQACpa1AAqWtgAKlrgACpa6AAqWuwAKlrwACpa+AAqWvwAKltgACpbZAAqW2gAKltwACpdXAAqXWQAKl1sACpddAAqXYAAKl2EACpdiAAqXYwAKl2QACpdmAAqXaAAKl2kACpdqAAqXbAAKl20ACpfoAAqX6gAKl+0ACpfvAAqX8gAKl/MACpf0AAqX9QAKl/YACpf4AAqX+gAKl/sACpf8AAqX/gAKl/8ACpghAAqYOgAKmD8ACphCAAqYRwAKmEoACphMAAqYXgAKmPEACpkUAAqZNAAKmVQACplWAAqZWAAKmVoACplcAAqZXwAKmWAACplhAAqZZAAKmWUACplnAAqZaAAKmWsACpluAAqZbwAKmXAACplzAAqZdAAKmXkACpmSAAqZmwAKmZ0ACpmgAAqZqQAKmawACpmvAAqZsQAKmfoACpoeAAqaRQAKmmkACppsAAqabgAKmnAACppyAAqadAAKmnYACpp3AAqaegAKmpMACpq0AAqatgAKmrgACpq6AAqavAAKmr4ACprAAAqawgAKmsQACprlAAqa6AAKmusACpruAAqa8QAKmvQACpr3AAqa+gAKmv0ACpr/AAqbegAKm3wACpt+AAqbgAAKm4MACpuEAAqbhQAKm4YACpuHAAqbiQAKm4sACpuMAAqbjQAKm48ACpuQAAqcCwAKnA0ACpwPAAqcEQAKnBQACpwVAAqcFgAKnBcACpwYAAqcGgAKnBwACpwdAAqcHgAKnCAACpwhAAqcnAAKnJ4ACpyhAAqcowAKnKYACpynAAqcqAAKnKkACpyqAAqcrAAKnK4ACpyvAAqcsAAKnLIACpyzAAqczAAKnM0ACpzOAAqc0AAKnUsACp1NAAqdTwAKnVEACp1UAAqdVQAKnVYACp1XAAqdWAAKnVoACp1cAAqdXQAKnV4ACp1gAAqdYQAKndwACp3eAAqd4AAKneIACp3lAAqd5gAKnecACp3oAAqd6QAKnesACp3tAAqd7gAKne8ACp3xAAqd8gAKnm0ACp5vAAqecQAKnnMACp52AAqedwAKnngACp55AAqeegAKnnwACp5+AAqefwAKnoAACp6CAAqegwAKnv4ACp8AAAqfAgAKnwQACp8HAAqfCAAKnwkACp8KAAqfCwAKnw0ACp8PAAqfEAAKnxEACp8TAAqfFAAKn48ACp+RAAqfkwAKn5UACp+YAAqfmQAKn5oACp+bAAqfnAAKn54ACp+gAAqfoQAKn6IACp+kAAqfpQAKn+4ACqASAAqgOQAKoF0ACqBgAAqgYwAKoGUACqBnAAqgaQAKoGsACqBsAAqgbwAKoIgACqClAAqgqAAKoKsACqCuAAqgsQAKoLQACqC3AAqgugAKoNcACqDaAAqg3QAKoOAACqDjAAqg5gAKoOkACqDsAAqg7gAKoWkACqFrAAqhbgAKoXAACqFzAAqhdAAKoXUACqF2AAqhdwAKoXkACqF8AAqhfQAKoX4ACqGAAAqhgQAKofwACqH+AAqiAQAKogMACqIGAAqiBwAKoggACqIJAAqiCgAKogwACqIPAAqiEAAKohEACqITAAqiFAAKoo8ACqKRAAqilAAKopYACqKZAAqimgAKopsACqKcAAqinQAKop8ACqKiAAqiowAKoqQACqKmAAqipwAKoyIACqMkAAqjJwAKoykACqMsAAqjLQAKoy4ACqMvAAqjMAAKozIACqM1AAqjNgAKozcACqM5AAqjOgAKo7UACqO3AAqjuQAKo7sACqO+AAqjvwAKo8AACqPBAAqjwgAKo8QACqPHAAqjyAAKo8kACqPLAAqjzAAKpEcACqRJAAqkSwAKpE0ACqRQAAqkUQAKpFIACqRTAAqkVAAKpFYACqRZAAqkWgAKpFsACqRdAAqkXgAKpNkACqTbAAqk3gAKpOAACqTjAAqk5AAKpOUACqTmAAqk5wAKpOkACqTsAAqk7QAKpO4ACqTwAAqk8QAKpQIACqUHAAqlCgAKpQwACqVFAAqlSAAKpUoACqVNAAqlUAAKpVMACqVWAAqlWwAKpf4ACqYiAAqmRgAKpmYACqaNAAqmtAAKptQACqb7AAqnHwAKp0IACqdpAAqnjQAKp7EACqfVAAqn/AAKp/0ACqf/AAqoAQAKqAQACqgGAAqoCQAKqAsACqgNAAqoEAAKqBIACqgUAAqoFwAKqBoACqgcAAqoHgAKqCAACqgjAAqoJgAKqCkACqguAAqoRwAKqEwACqhOAAqoUwAKqFYACqhYAAqooQAKqMUACqjsAAqpEAAKqRMACqkVAAqpFwAKqRkACqkbAAqpHQAKqR4ACqkhAAqpOgAKqV8ACqlhAAqpYwAKqWUACqlnAAqpaQAKqWsACqltAAqpbwAKqXEACqmWAAqpmQAKqZwACqmfAAqpogAKqaUACqmoAAqpqwAKqa4ACqmxAAqpswAKqi4ACqowAAqqMwAKqjUACqo4AAqqOQAKqjoACqo7AAqqPAAKqj4ACqpAAAqqQQAKqkIACqpEAAqqRQAKqlYACqpXAAqqWQAKqtQACqrWAAqq2AAKqtoACqrdAAqq3gAKqt8ACqrgAAqq4QAKquMACqrlAAqq5gAKqucACqrpAAqq6gAKq2UACqtnAAqragAKq2wACqtvAAqrcAAKq3EACqtyAAqrcwAKq3UACqt3AAqreAAKq3kACqt7AAqrfAAKq40ACquOAAqrkAAKrAsACqwNAAqsDwAKrBEACqwUAAqsFQAKrBYACqwXAAqsGAAKrBoACqwcAAqsHQAKrB4ACqwgAAqsIQAKrJwACqyeAAqsoQAKrKMACqymAAqspwAKrKgACqypAAqsqgAKrKwACqyuAAqsrwAKrLAACqyyAAqsswAKrMQACqzFAAqsxwAKrUIACq1EAAqtRgAKrUgACq1LAAqtTAAKrU0ACq1OAAqtTwAKrVEACq1TAAqtVAAKrVUACq1XAAqtWAAKrdMACq3VAAqt2AAKrdoACq3dAAqt3gAKrd8ACq3gAAqt4QAKreMACq3lAAqt5gAKrecACq3pAAqt6gAKrgMACq4EAAquBQAKrgcACq6CAAquhAAKroYACq6IAAquiwAKrowACq6NAAqujgAKro8ACq6RAAqukwAKrpQACq6VAAqulwAKrpgACq8TAAqvFQAKrxgACq8aAAqvHQAKrx4ACq8fAAqvIAAKryEACq8jAAqvJQAKryYACq8nAAqvKQAKryoACq9DAAqvXAAKr3EACq90AAqvdwAKr3oACq99AAqvgAAKr5UACq+YAAqvmwAKr54ACq+hAAqvpAAKr6YACq+0AAqvzAAKr+IACrACAAqwlQAKsLgACrDYAAqw+AAKsPoACrD8AAqw/gAKsQAACrEDAAqxBAAKsQUACrEIAAqxCQAKsQsACrEMAAqxDgAKsREACrESAAqxEwAKsRYACrEXAAqxHAAKsTUACrE+AAqxQAAKsUIACrFLAAqxTgAKsVEACrFTAAqxnAAKscAACrHnAAqyCwAKsg4ACrIQAAqyEgAKshQACrIWAAqyGAAKshkACrIcAAqyNQAKslYACrJYAAqyWgAKslwACrJeAAqyYAAKsmIACrJkAAqyZgAKsocACrKKAAqyjQAKspAACrKTAAqylgAKspkACrKcAAqynwAKsqEACrMcAAqzHgAKsyAACrMiAAqzJQAKsyYACrMnAAqzKAAKsykACrMrAAqzLQAKsy4ACrMvAAqzMQAKszIACrOtAAqzrwAKs7EACrOzAAqztgAKs7cACrO4AAqzuQAKs7oACrO8AAqzvgAKs78ACrPAAAqzwgAKs8MACrQ+AAq0QAAKtEMACrRFAAq0SAAKtEkACrRKAAq0SwAKtEwACrROAAq0UAAKtFEACrRSAAq0VAAKtFUACrRuAAq0bwAKtHAACrRyAAq07QAKtO8ACrTxAAq08wAKtPYACrT3AAq0+AAKtPkACrT6AAq0/AAKtP4ACrT/AAq1AAAKtQIACrUDAAq1fgAKtYAACrWCAAq1hAAKtYcACrWIAAq1iQAKtYoACrWLAAq1jQAKtY8ACrWQAAq1kQAKtZMACrWUAAq2DwAKthEACrYTAAq2FQAKthgACrYZAAq2GgAKthsACrYcAAq2HgAKtiAACrYhAAq2IgAKtiQACrYlAAq2oAAKtqIACrakAAq2pgAKtqkACraqAAq2qwAKtqwACratAAq2rwAKtrEACrayAAq2swAKtrUACra2AAq3MQAKtzMACrc1AAq3NwAKtzoACrc7AAq3PAAKtz0ACrc+AAq3QAAKt0IACrdDAAq3RAAKt0YACrdHAAq3kAAKt7QACrfbAAq3/wAKuAIACrgEAAq4BgAKuAgACrgKAAq4DAAKuA0ACrgQAAq4KQAKuEYACrhIAAq4SgAKuEwACrhOAAq4UAAKuFIACrhUAAq4cQAKuHQACrh3AAq4egAKuH0ACriAAAq4gwAKuIYACriIAAq5AwAKuQUACrkHAAq5CQAKuQwACrkNAAq5DgAKuQ8ACrkQAAq5EgAKuRQACrkVAAq5FgAKuRgACrkZAAq5lAAKuZYACrmYAAq5mgAKuZ0ACrmeAAq5nwAKuaAACrmhAAq5owAKuaUACrmmAAq5pwAKuakACrmqAAq6JQAKuicACropAAq6KwAKui4ACrovAAq6MAAKujEACroyAAq6NAAKujYACro3AAq6OAAKujoACro7AAq6tgAKurgACrq6AAq6vAAKur8ACrrAAAq6wQAKusIACrrDAAq6xQAKuscACrrIAAq6yQAKussACrrMAAq7RwAKu0kACrtLAAq7TQAKu1AACrtRAAq7UgAKu1MACrtUAAq7VgAKu1gACrtZAAq7WgAKu1wACrtdAAq72AAKu9oACrvcAAq73gAKu+EACrviAAq74wAKu+QACrvlAAq75wAKu+kACrvqAAq76wAKu+0ACrvuAAq8aQAKvGsACrxtAAq8bwAKvHIACrxzAAq8dAAKvHUACrx2AAq8eAAKvHoACrx7AAq8fAAKvH4ACrx/AAq9EgAKvTUACr1VAAq9dQAKvXcACr15AAq9ewAKvX0ACr2AAAq9gQAKvYIACr2FAAq9hgAKvYgACr2JAAq9iwAKvY4ACr2PAAq9kAAKvZMACr2UAAq9mQAKvbIACr27AAq9vQAKvb8ACr3IAAq9ywAKvc4ACr3QAAq+GQAKvj0ACr5kAAq+iAAKvosACr6NAAq+jwAKvpEACr6TAAq+lQAKvpYACr6ZAAq+sgAKvtMACr7VAAq+1wAKvtkACr7bAAq+3QAKvt8ACr7hAAq+4wAKvwQACr8HAAq/CgAKvw0ACr8QAAq/EwAKvxYACr8ZAAq/HAAKvx4ACr+ZAAq/mwAKv50ACr+fAAq/ogAKv6MACr+kAAq/pQAKv6YACr+oAAq/qgAKv6sACr+sAAq/rgAKv68ACsAqAArALAAKwC4ACsAwAArAMwAKwDQACsA1AArANgAKwDcACsA5AArAOwAKwDwACsA9AArAPwAKwEAACsC7AArAvQAKwMAACsDCAArAxQAKwMYACsDHAArAyAAKwMkACsDLAArAzQAKwM4ACsDPAArA0QAKwNIACsDrAArA7AAKwO0ACsDvAArBagAKwWwACsFuAArBcAAKwXMACsF0AArBdQAKwXYACsF3AArBeQAKwXsACsF8AArBfQAKwX8ACsGAAArB+wAKwf0ACsH/AArCAQAKwgQACsIFAArCBgAKwgcACsIIAArCCgAKwgwACsINAArCDgAKwhAACsIRAArCjAAKwo4ACsKQAArCkgAKwpUACsKWAArClwAKwpgACsKZAArCmwAKwp0ACsKeAArCnwAKwqEACsKiAArDHQAKwx8ACsMhAArDIwAKwyYACsMnAArDKAAKwykACsMqAArDLAAKwy4ACsMvAArDMAAKwzIACsMzAArDrgAKw7AACsOyAArDtAAKw7cACsO4AArDuQAKw7oACsO7AArDvQAKw78ACsPAAArDwQAKw8MACsPEAArEDQAKxDEACsRYAArEfAAKxH8ACsSBAArEgwAKxIUACsSHAArEiQAKxIoACsSNAArEpgAKxMMACsTFAArExwAKxMkACsTLAArEzQAKxM8ACsTRAArE7gAKxPEACsT0AArE9wAKxPoACsT9AArFAAAKxQMACsUFAArFgAAKxYIACsWEAArFhgAKxYkACsWKAArFiwAKxYwACsWNAArFjwAKxZEACsWSAArFkwAKxZUACsWWAArGEQAKxhMACsYVAArGFwAKxhoACsYbAArGHAAKxh0ACsYeAArGIAAKxiIACsYjAArGJAAKxiYACsYnAArGogAKxqQACsamAArGqAAKxqsACsasAArGrQAKxq4ACsavAArGsQAKxrMACsa0AArGtQAKxrcACsa4AArHMwAKxzUACsc4AArHOgAKxz0ACsc+AArHPwAKx0AACsdBAArHQwAKx0UACsdGAArHRwAKx0kACsdKAArHxQAKx8cACsfJAArHywAKx84ACsfPAArH0AAKx9EACsfSAArH1AAKx9YACsfXAArH2AAKx9oACsfbAArIVgAKyFgACshaAArIXAAKyF8ACshgAArIYQAKyGIACshjAArIZQAKyGcACshoAArIaQAKyGsACshsAArI5wAKyOkACsjrAArI7QAKyPAACsjxAArI8gAKyPMACsj0AArI9gAKyPgACsj5AArI+gAKyPwACsj9AArJkAAKybMACsnTAArJ8wAKyfUACsn3AArJ+QAKyfsACsn+AArJ/wAKygAACsoDAArKBAAKygYACsoHAArKCQAKygwACsoNAArKDgAKyhEACsoSAArKFwAKyjAACso5AArKOwAKyj0ACspGAArKSQAKykwACspOAArKlwAKyrsACsriAArLBgAKywkACssLAArLDQAKyw8ACssRAArLEwAKyxQACssXAArLMAAKy1EACstTAArLVQAKy1cACstZAArLWwAKy10ACstfAArLYQAKy4IACsuFAArLiAAKy4sACsuOAArLkQAKy5QACsuXAArLmgAKy5wACswXAArMGQAKzBsACswdAArMIAAKzCEACswiAArMIwAKzCQACswmAArMKAAKzCkACswqAArMLAAKzC0ACsyoAArMqgAKzKwACsyuAArMsQAKzLIACsyzAArMtAAKzLUACsy3AArMuQAKzLoACsy7AArMvQAKzL4ACs05AArNOwAKzT4ACs1AAArNQwAKzUQACs1FAArNRgAKzUcACs1JAArNSwAKzUwACs1NAArNTwAKzVAACs1pAArNagAKzWsACs1tAArN6AAKzeoACs3sAArN7gAKzfEACs3yAArN8wAKzfQACs31AArN9wAKzfkACs36AArN+wAKzf0ACs3+AArOeQAKznsACs59AArOfwAKzoIACs6DAArOhAAKzoUACs6GAArOiAAKzooACs6LAArOjAAKzo4ACs6PAArPCgAKzwwACs8OAArPEAAKzxMACs8UAArPFQAKzxYACs8XAArPGQAKzxsACs8cAArPHQAKzx8ACs8gAArPmwAKz50ACs+fAArPoQAKz6QACs+lAArPpgAKz6cACs+oAArPqgAKz6wACs+tAArPrgAKz7AACs+xAArQLAAK0C4ACtAwAArQMgAK0DUACtA2AArQNwAK0DgACtA5AArQOwAK0D0ACtA+AArQPwAK0EEACtBCAArQiwAK0K8ACtDWAArQ+gAK0P0ACtD/AArRAQAK0QMACtEFAArRBwAK0QgACtELAArRJAAK0UEACtFDAArRRQAK0UcACtFJAArRSwAK0U0ACtFPAArRbAAK0W8ACtFyAArRdQAK0XgACtF7AArRfgAK0YEACtGDAArR/gAK0gAACtICAArSBAAK0gcACtIIAArSCQAK0goACtILAArSDQAK0g8ACtIQAArSEQAK0hMACtIUAArSjwAK0pEACtKTAArSlQAK0pgACtKZAArSmgAK0psACtKcAArSngAK0qAACtKhAArSogAK0qQACtKlAArTIAAK0yIACtMkAArTJgAK0ykACtMqAArTKwAK0ywACtMtAArTLwAK0zEACtMyAArTMwAK0zUACtM2AArTsQAK07MACtO2AArTuAAK07sACtO8AArTvQAK074ACtO/AArTwQAK08MACtPEAArTxQAK08cACtPIAArUQwAK1EUACtRHAArUSQAK1EwACtRNAArUTgAK1E8ACtRQAArUUgAK1FQACtRVAArUVgAK1FgACtRZAArU1AAK1NYACtTYAArU2gAK1N0ACtTeAArU3wAK1OAACtThAArU4wAK1OUACtTmAArU5wAK1OkACtTqAArVZQAK1WcACtVpAArVawAK1W4ACtVvAArVcAAK1XEACtVyAArVdAAK1XYACtV3AArVeAAK1XoACtV7AArWDgAK1jEACtZRAArWcQAK1nMACtZ1AArWdwAK1nkACtZ8AArWfQAK1n4ACtaBAArWggAK1oQACtaFAArWhwAK1ooACtaLAArWjAAK1o8ACtaQAArWmQAK1rIACta7AArWvQAK1r8ACtbIAArWywAK1s4ACtbQAArXGQAK1z0ACtdkAArXiAAK14sACteNAArXjwAK15EACteTAArXlQAK15YACteZAArXsgAK19MACtfVAArX1wAK19kACtfbAArX3QAK198ACtfhAArX4wAK2AQACtgHAArYCgAK2A0ACtgQAArYEwAK2BYACtgZAArYHAAK2B4ACtiZAArYmwAK2J0ACtifAArYogAK2KMACtikAArYpQAK2KYACtioAArYqgAK2KsACtisAArYrgAK2K8ACtkqAArZLAAK2S4ACtkwAArZMwAK2TQACtk1AArZNgAK2TcACtk5AArZOwAK2TwACtk9AArZPwAK2UAACtm7AArZvQAK2cAACtnCAArZxQAK2cYACtnHAArZyAAK2ckACtnLAArZzQAK2c4ACtnPAArZ0QAK2dIACtnrAArZ7AAK2e0ACtnvAAraagAK2mwACtpuAAracAAK2nMACtp0AAradQAK2nYACtp3AAraeQAK2nsACtp8AArafQAK2n8ACtqAAAra+wAK2v0ACtr/AArbAQAK2wQACtsFAArbBgAK2wcACtsIAArbCgAK2wwACtsNAArbDgAK2xAACtsRAArbjAAK244ACtuQAArbkgAK25UACtuWAArblwAK25gACtuZAArbmwAK250ACtueAArbnwAK26EACtuiAArcHQAK3B8ACtwhAArcIwAK3CYACtwnAArcKAAK3CkACtwqAArcLAAK3C4ACtwvAArcMAAK3DIACtwzAArcrgAK3LAACtyyAArctAAK3LcACty4AArcuQAK3LoACty7AArcvQAK3L8ACtzAAArcwQAK3MMACtzEAArdDQAK3TEACt1YAArdfAAK3X8ACt2BAArdgwAK3YUACt2HAArdiQAK3YoACt2NAArdpgAK3cMACt3FAArdxwAK3ckACt3LAArdzQAK3c8ACt3RAArd7gAK3fEACt30AArd9wAK3foACt39AAreAAAK3gMACt4FAAregAAK3oIACt6EAArehgAK3okACt6KAAreiwAK3owACt6NAArejwAK3pEACt6SAArekwAK3pUACt6WAArfEQAK3xMACt8VAArfFwAK3xoACt8bAArfHAAK3x0ACt8eAArfIAAK3yIACt8jAArfJAAK3yYACt8nAArfogAK36QACt+mAArfqAAK36sACt+sAArfrQAK364ACt+vAArfsQAK37MACt+0AArftQAK37cACt+4AArgMwAK4DUACuA4AArgOgAK4D0ACuA+AArgPwAK4EAACuBBAArgQwAK4EUACuBGAArgRwAK4EkACuBKAArgxQAK4McACuDJAArgywAK4M4ACuDPAArg0AAK4NEACuDSAArg1AAK4NYACuDXAArg2AAK4NoACuDbAArhVgAK4VgACuFaAArhXAAK4V8ACuFgAArhYQAK4WIACuFjAArhZQAK4WcACuFoAArhaQAK4WsACuFsAArh5wAK4ekACuHrAArh7QAK4fAACuHxAArh8gAK4fMACuH0AArh9gAK4fgACuH5AArh+gAK4fwACuH9AArikAAK4rMACuLTAAri8wAK4vUACuL3AAri+QAK4vsACuL+AAri/wAK4wAACuMDAArjBAAK4wYACuMHAArjCQAK4wwACuMNAArjDgAK4xEACuMSAArjFwAK4zAACuM5AArjOwAK4z0ACuNGAArjSQAK40wACuNOAArjlwAK47sACuPiAArkBgAK5AkACuQLAArkDQAK5A8ACuQRAArkEwAK5BQACuQXAArkMAAK5FEACuRTAArkVQAK5FcACuRZAArkWwAK5F0ACuRfAArkYQAK5IIACuSFAArkiAAK5IsACuSOAArkkQAK5JQACuSXAArkmgAK5JwACuUXAArlGQAK5RsACuUdAArlIAAK5SEACuUiAArlIwAK5SQACuUmAArlKAAK5SkACuUqAArlLAAK5S0ACuWoAArlqgAK5awACuWuAArlsQAK5bIACuWzAArltAAK5bUACuW3AArluQAK5boACuW7AArlvQAK5b4ACuY5AArmOwAK5j4ACuZAAArmQwAK5kQACuZFAArmRgAK5kcACuZJAArmSwAK5kwACuZNAArmTwAK5lAACuZpAArmagAK5msACuZtAArm6AAK5uoACubsAArm7gAK5vEACubyAArm8wAK5vQACub1AArm9wAK5vkACub6AArm+wAK5v0ACub+AArneQAK53sACud9AArnfwAK54IACueDAArnhAAK54UACueGAArniAAK54oACueLAArnjAAK544ACuePAAroCgAK6AwACugOAAroEAAK6BMACugUAAroFQAK6BYACugXAAroGQAK6BsACugcAAroHQAK6B8ACuggAAromwAK6J0ACuifAArooQAK6KQACuilAAropgAK6KcACuioAAroqgAK6KwACuitAArorgAK6LAACuixAArpLAAK6S4ACukwAArpMgAK6TUACuk2AArpNwAK6TgACuk5AArpOwAK6T0ACuk+AArpPwAK6UEACulCAArpiwAK6a8ACunWAArp+gAK6f0ACun/AArqAQAK6gMACuoFAArqBwAK6ggACuoLAArqJAAK6kEACupDAArqRQAK6kcACupJAArqSwAK6k0ACupPAArqbAAK6m8ACupyAArqdQAK6ngACup7AArqfgAK6oEACuqDAArq/gAK6wAACusCAArrBAAK6wcACusIAArrCQAK6woACusLAArrDQAK6w8ACusQAArrEQAK6xMACusUAArrjwAK65EACuuTAArrlQAK65gACuuZAArrmgAK65sACuucAArrngAK66AACuuhAArrogAK66QACuulAArsIAAK7CIACuwkAArsJgAK7CkACuwqAArsKwAK7CwACuwtAArsLwAK7DEACuwyAArsMwAK7DUACuw2AArssQAK7LMACuy2AArsuAAK7LsACuy8AArsvQAK7L4ACuy/AArswQAK7MMACuzEAArsxQAK7McACuzIAArtQwAK7UUACu1HAArtSQAK7UwACu1NAArtTgAK7U8ACu1QAArtUgAK7VQACu1VAArtVgAK7VgACu1ZAArt1AAK7dYACu3YAArt2gAK7d0ACu3eAArt3wAK7eAACu3hAArt4wAK7eUACu3mAArt5wAK7ekACu3qAAruZQAK7mcACu5pAAruawAK7m4ACu5vAArucAAK7nEACu5yAArudAAK7nYACu53AArueAAK7noACu57AArujAAK7o0ACu6PAAruoAAK7qkACu6sAArurwAK7rEACu7qAAru7QAK7u8ACu7yAAru9QAK7vgACu77AArvfgAK76IACu/GAArv6QAK8BAACvAwAArwVwAK8H4ACvCeAArwwgAK8OYACvDoAArw6wAK8O0ACvDvAArw8QAK8PQACvD3AArw+QAK8PsACvD+AArxAAAK8QIACvEFAArxCAAK8QkACvEOAArxJwAK8SwACvEuAArxMwAK8TYACvE4AArxgQAK8aUACvHMAArx8AAK8fMACvH1AArx9wAK8fkACvH7AArx/QAK8f4ACvIBAAryGgAK8j8ACvJBAAryQwAK8kUACvJHAArySQAK8ksACvJNAAryTwAK8lEACvJ2AAryeQAK8nwACvJ/AAryggAK8oUACvKIAAryiwAK8o4ACvKRAArykwAK8w4ACvMQAArzEwAK8xUACvMYAArzGQAK8xoACvMbAArzHAAK8x4ACvMgAArzIQAK8yIACvMkAArzJQAK8zYACvM3AArzOQAK87QACvO2AArzuAAK87oACvO9AArzvgAK878ACvPAAArzwQAK88MACvPFAArzxgAK88cACvPJAArzygAK9EUACvRHAAr0SgAK9EwACvRPAAr0UAAK9FEACvRSAAr0UwAK9FUACvRXAAr0WAAK9FkACvRbAAr0XAAK9G0ACvRuAAr0cAAK9OsACvTtAAr07wAK9PEACvT0AAr09QAK9PYACvT3AAr0+AAK9PoACvT8AAr0/QAK9P4ACvUAAAr1AQAK9XwACvV+AAr1gQAK9YMACvWGAAr1hwAK9YgACvWJAAr1igAK9YwACvWOAAr1jwAK9ZAACvWSAAr1kwAK9aQACvWlAAr1pwAK9iIACvYkAAr2JgAK9igACvYrAAr2LAAK9i0ACvYuAAr2LwAK9jEACvYzAAr2NAAK9jUACvY3AAr2OAAK9rMACva1AAr2uAAK9roACva9AAr2vgAK9r8ACvbAAAr2wQAK9sMACvbFAAr2xgAK9scACvbJAAr2ygAK9uMACvbkAAr25QAK9ucACvdiAAr3ZAAK92YACvdoAAr3awAK92wACvdtAAr3bgAK928ACvdxAAr3cwAK93QACvd1AAr3dwAK93gACvfzAAr39QAK9/gACvf6AAr3/QAK9/4ACvf/AAr4AAAK+AEACvgDAAr4BQAK+AYACvgHAAr4CQAK+AoACvgqAAr4QwAK+EgACvhLAAr4UAAK+FMACvhVAAr4ZwAK+PoACvkdAAr5PQAK+V0ACvlfAAr5YQAK+WMACvllAAr5aAAK+WkACvlqAAr5bQAK+W4ACvlwAAr5cQAK+XQACvl3AAr5eAAK+XkACvl8AAr5fQAK+YIACvmbAAr5pAAK+aYACvmpAAr5sgAK+bUACvm4AAr5ugAK+gMACvonAAr6TgAK+nIACvp1AAr6dwAK+nkACvp7AAr6fQAK+n8ACvqAAAr6gwAK+pwACvq9AAr6vwAK+sEACvrDAAr6xQAK+scACvrJAAr6ywAK+s0ACvruAAr68QAK+vQACvr3AAr6+gAK+v0ACvsAAAr7AwAK+wYACvsIAAr7gwAK+4UACvuHAAr7iQAK+4wACvuNAAr7jgAK+48ACvuQAAr7kgAK+5QACvuVAAr7lgAK+5gACvuZAAr8FAAK/BYACvwYAAr8GgAK/B0ACvweAAr8HwAK/CAACvwhAAr8IwAK/CUACvwmAAr8JwAK/CkACvwqAAr8pQAK/KcACvyqAAr8rAAK/K8ACvywAAr8sQAK/LIACvyzAAr8tQAK/LcACvy4AAr8uQAK/LsACvy8AAr81QAK/NYACvzXAAr82QAK/VQACv1WAAr9WAAK/VoACv1dAAr9XgAK/V8ACv1gAAr9YQAK/WMACv1lAAr9ZgAK/WcACv1pAAr9agAK/eUACv3nAAr96QAK/esACv3uAAr97wAK/fAACv3xAAr98gAK/fQACv32AAr99wAK/fgACv36AAr9+wAK/nYACv54AAr+egAK/nwACv5/AAr+gAAK/oEACv6CAAr+gwAK/oUACv6HAAr+iAAK/okACv6LAAr+jAAK/wcACv8JAAr/CwAK/w0ACv8QAAr/EQAK/xIACv8TAAr/FAAK/xYACv8YAAr/GQAK/xoACv8cAAr/HQAK/5gACv+aAAr/nAAK/54ACv+hAAr/ogAK/6MACv+kAAr/pQAK/6cACv+pAAr/qgAK/6sACv+tAAr/rgAK//cACwAbAAsAQgALAGYACwBpAAsAbAALAG4ACwBwAAsAcgALAHQACwB1AAsAeAALAJEACwCuAAsAsQALALQACwC3AAsAugALAL0ACwDAAAsAwwALAOAACwDjAAsA5gALAOkACwDsAAsA7wALAPIACwD1AAsA9wALAXIACwF0AAsBdwALAXkACwF8AAsBfQALAX4ACwF/AAsBgAALAYIACwGFAAsBhgALAYcACwGJAAsBigALAgUACwIHAAsCCgALAgwACwIPAAsCEAALAhEACwISAAsCEwALAhUACwIYAAsCGQALAhoACwIcAAsCHQALApgACwKaAAsCnQALAp8ACwKiAAsCowALAqQACwKlAAsCpgALAqgACwKrAAsCrAALAq0ACwKvAAsCsAALAysACwMtAAsDMAALAzIACwM1AAsDNgALAzcACwM4AAsDOQALAzsACwM+AAsDPwALA0AACwNCAAsDQwALA74ACwPAAAsDwgALA8QACwPHAAsDyAALA8kACwPKAAsDywALA80ACwPQAAsD0QALA9IACwPUAAsD1QALBFAACwRSAAsEVAALBFYACwRZAAsEWgALBFsACwRcAAsEXQALBF8ACwRiAAsEYwALBGQACwRmAAsEZwALBOIACwTkAAsE5wALBOkACwTsAAsE7QALBO4ACwTvAAsE8AALBPIACwT1AAsE9gALBPcACwT5AAsE+gALBY0ACwWwAAsF0AALBfAACwXyAAsF9AALBfYACwX4AAsF+wALBfwACwX9AAsGAAALBgEACwYDAAsGBAALBgcACwYKAAsGCwALBgwACwYPAAsGEAALBhUACwYuAAsGNwALBjkACwY8AAsGRQALBkgACwZLAAsGTQALBpYACwa6AAsG4QALBwUACwcIAAsHCgALBwwACwcOAAsHEAALBxIACwcTAAsHFgALBy8ACwdQAAsHUgALB1QACwdWAAsHWAALB1oACwdcAAsHXgALB2AACweBAAsHhAALB4cACweKAAsHjQALB5AACweTAAsHlgALB5kACwebAAsIFgALCBgACwgaAAsIHAALCB8ACwggAAsIIQALCCIACwgjAAsIJQALCCcACwgoAAsIKQALCCsACwgsAAsIpwALCKkACwirAAsIrQALCLAACwixAAsIsgALCLMACwi0AAsItgALCLgACwi5AAsIugALCLwACwi9AAsJOAALCToACwk9AAsJPwALCUIACwlDAAsJRAALCUUACwlGAAsJSAALCUoACwlLAAsJTAALCU4ACwlPAAsJaAALCWkACwlqAAsJbAALCecACwnpAAsJ6wALCe0ACwnwAAsJ8QALCfIACwnzAAsJ9AALCfYACwn4AAsJ+QALCfoACwn8AAsJ/QALCngACwp6AAsKfAALCn4ACwqBAAsKggALCoMACwqEAAsKhQALCocACwqJAAsKigALCosACwqNAAsKjgALCwkACwsLAAsLDQALCw8ACwsSAAsLEwALCxQACwsVAAsLFgALCxgACwsaAAsLGwALCxwACwseAAsLHwALC5oACwucAAsLngALC6AACwujAAsLpAALC6UACwumAAsLpwALC6kACwurAAsLrAALC60ACwuvAAsLsAALDCsACwwtAAsMLwALDDEACww0AAsMNQALDDYACww3AAsMOAALDDoACww8AAsMPQALDD4ACwxAAAsMQQALDIoACwyuAAsM1QALDPkACwz8AAsM/wALDQEACw0DAAsNBQALDQcACw0IAAsNCwALDSQACw1BAAsNRAALDUcACw1KAAsNTQALDVAACw1TAAsNVgALDXMACw12AAsNeQALDXwACw1/AAsNggALDYUACw2IAAsNigALDgUACw4HAAsOCgALDgwACw4PAAsOEAALDhEACw4SAAsOEwALDhUACw4YAAsOGQALDhoACw4cAAsOHQALDpgACw6aAAsOnQALDp8ACw6iAAsOowALDqQACw6lAAsOpgALDqgACw6rAAsOrAALDq0ACw6vAAsOsAALDysACw8tAAsPMAALDzIACw81AAsPNgALDzcACw84AAsPOQALDzsACw8+AAsPPwALD0AACw9CAAsPQwALD74ACw/AAAsPwwALD8UACw/IAAsPyQALD8oACw/LAAsPzAALD84ACw/RAAsP0gALD9MACw/VAAsP1gALEFEACxBTAAsQVQALEFcACxBaAAsQWwALEFwACxBdAAsQXgALEGAACxBjAAsQZAALEGUACxBnAAsQaAALEOMACxDlAAsQ5wALEOkACxDsAAsQ7QALEO4ACxDvAAsQ8AALEPIACxD1AAsQ9gALEPcACxD5AAsQ+gALEXUACxF3AAsRegALEXwACxF/AAsRgAALEYEACxGCAAsRgwALEYUACxGIAAsRiQALEYoACxGMAAsRjQALEZ4ACxGjAAsRpgALEagACxGtAAsSKAALEioACxIsAAsSLgALEjEACxIyAAsSMwALEjQACxI1AAsSNwALEjoACxI7AAsSPAALEj4ACxI/AAsSugALErwACxK+AAsSwAALEsMACxLEAAsSxQALEsYACxLHAAsSyQALEswACxLNAAsSzgALEtAACxLRAAsTTAALE04ACxNRAAsTUwALE1YACxNXAAsTWAALE1kACxNaAAsTXAALE18ACxNgAAsTYQALE2MACxNkAAsT9wALFBoACxQ6AAsUWgALFFwACxReAAsUYAALFGIACxRlAAsUZgALFGcACxRqAAsUawALFG0ACxRuAAsUcQALFHQACxR1AAsUdgALFHkACxR6AAsUfwALFJgACxShAAsUowALFKYACxSvAAsUsgALFLUACxS3AAsVAAALFSQACxVLAAsVbwALFXIACxV0AAsVdgALFXgACxV6AAsVfAALFX0ACxWAAAsVmQALFboACxW8AAsVvgALFcAACxXCAAsVxAALFcYACxXIAAsVygALFesACxXuAAsV8QALFfQACxX3AAsV+gALFf0ACxYAAAsWAwALFgUACxaAAAsWggALFoQACxaGAAsWiQALFooACxaLAAsWjAALFo0ACxaPAAsWkQALFpIACxaTAAsWlQALFpYACxcRAAsXEwALFxUACxcXAAsXGgALFxsACxccAAsXHQALFx4ACxcgAAsXIgALFyMACxckAAsXJgALFycACxeiAAsXpAALF6cACxepAAsXrAALF60ACxeuAAsXrwALF7AACxeyAAsXtAALF7UACxe2AAsXuAALF7kACxfSAAsX0wALF9QACxfWAAsYUQALGFMACxhVAAsYVwALGFoACxhbAAsYXAALGF0ACxheAAsYYAALGGIACxhjAAsYZAALGGYACxhnAAsY4gALGOQACxjmAAsY6AALGOsACxjsAAsY7QALGO4ACxjvAAsY8QALGPMACxj0AAsY9QALGPcACxj4AAsZcwALGXUACxl3AAsZeQALGXwACxl9AAsZfgALGX8ACxmAAAsZggALGYQACxmFAAsZhgALGYgACxmJAAsaBAALGgYACxoIAAsaCgALGg0ACxoOAAsaDwALGhAACxoRAAsaEwALGhUACxoWAAsaFwALGhkACxoaAAsalQALGpcACxqZAAsamwALGp4ACxqfAAsaoAALGqEACxqiAAsapAALGqYACxqnAAsaqAALGqoACxqrAAsa9AALGxgACxs/AAsbYwALG2YACxtpAAsbawALG20ACxtvAAsbcQALG3IACxt1AAsbjgALG6sACxuuAAsbsQALG7QACxu3AAsbugALG70ACxvAAAsb3QALG+AACxvjAAsb5gALG+kACxvsAAsb7wALG/IACxv0AAscbwALHHEACxx0AAscdgALHHkACxx6AAscewALHHwACxx9AAscfwALHIIACxyDAAschAALHIYACxyHAAsdAgALHQQACx0HAAsdCQALHQwACx0NAAsdDgALHQ8ACx0QAAsdEgALHRUACx0WAAsdFwALHRkACx0aAAsdlQALHZcACx2aAAsdnAALHZ8ACx2gAAsdoQALHaIACx2jAAsdpQALHagACx2pAAsdqgALHawACx2tAAseKAALHioACx4tAAseLwALHjIACx4zAAseNAALHjUACx42AAseOAALHjsACx48AAsePQALHj8ACx5AAAsewwALHucACx8LAAsfLgALH1UACx91AAsfnAALH8MACx/jAAsgBwALICsACyAtAAsgMAALIDIACyA0AAsgNgALIDkACyA8AAsgPgALIEAACyBDAAsgRQALIEcACyBKAAsgTQALIE4ACyBTAAsgbAALIHEACyBzAAsgeAALIHsACyB9AAsgxgALIOoACyERAAshNQALITgACyE6AAshPAALIT4ACyFAAAshQgALIUMACyFGAAshXwALIYQACyGGAAshiAALIYoACyGMAAshjgALIZAACyGSAAshlAALIZYACyG7AAshvgALIcEACyHEAAshxwALIcoACyHNAAsh0AALIdMACyHWAAsh2AALIlMACyJVAAsiWAALIloACyJdAAsiXgALIl8ACyJgAAsiYQALImMACyJlAAsiZgALImcACyJpAAsiagALInsACyJ8AAsifgALIvkACyL7AAsi/QALIv8ACyMCAAsjAwALIwQACyMFAAsjBgALIwgACyMKAAsjCwALIwwACyMOAAsjDwALI4oACyOMAAsjjwALI5EACyOUAAsjlQALI5YACyOXAAsjmAALI5oACyOcAAsjnQALI54ACyOgAAsjoQALI7IACyOzAAsjtQALJDAACyQyAAskNAALJDYACyQ5AAskOgALJDsACyQ8AAskPQALJD8ACyRBAAskQgALJEMACyRFAAskRgALJMEACyTDAAskxgALJMgACyTLAAskzAALJM0ACyTOAAskzwALJNEACyTTAAsk1AALJNUACyTXAAsk2AALJOkACyTqAAsk7AALJWcACyVpAAslawALJW0ACyVwAAslcQALJXIACyVzAAsldAALJXYACyV4AAsleQALJXoACyV8AAslfQALJfgACyX6AAsl/QALJf8ACyYCAAsmAwALJgQACyYFAAsmBgALJggACyYKAAsmCwALJgwACyYOAAsmDwALJigACyYpAAsmKgALJiwACyanAAsmqQALJqsACyatAAsmsAALJrEACyayAAsmswALJrQACya2AAsmuAALJrkACya6AAsmvAALJr0ACyc4AAsnOgALJz0ACyc/AAsnQgALJ0MACydEAAsnRQALJ0YACydIAAsnSgALJ0sACydMAAsnTgALJ08ACydmAAsnfwALJ5wACyefAAsnogALJ6UACyeoAAsnqwALJ64ACyexAAsnzgALJ9EACyfUAAsn1wALJ9oACyfdAAsn4AALJ+MACyflAAsn8gALKAwACygUAAsoIwALKEkACyhuAAspAQALKSQACylEAAspZAALKWYACyloAAspagALKWwACylvAAspcAALKXEACyl0AAspdQALKXcACyl4AAspegALKX0ACyl+AAspfwALKYIACymDAAspiAALKaEACymqAAsprAALKa4ACym3AAspugALKb0ACym/AAsqCAALKiwACypTAAsqdwALKnoACyp8AAsqfgALKoAACyqCAAsqhAALKoUACyqIAAsqoQALKsIACyrEAAsqxgALKsgACyrKAAsqzAALKs4ACyrQAAsq0gALKvMACyr2AAsq+QALKvwACyr/AAsrAgALKwUACysIAAsrCwALKw0ACyuIAAsrigALK4wACyuOAAsrkQALK5IACyuTAAsrlAALK5UACyuXAAsrmQALK5oACyubAAsrnQALK54ACywZAAssGwALLB0ACywfAAssIgALLCMACywkAAssJQALLCYACywoAAssKgALLCsACywsAAssLgALLC8ACyyqAAssrAALLK8ACyyxAAsstAALLLUACyy2AAsstwALLLgACyy6AAssvAALLL0ACyy+AAsswAALLMEACyzaAAss2wALLNwACyzeAAstWQALLVsACy1dAAstXwALLWIACy1jAAstZAALLWUACy1mAAstaAALLWoACy1rAAstbAALLW4ACy1vAAst6gALLewACy3uAAst8AALLfMACy30AAst9QALLfYACy33AAst+QALLfsACy38AAst/QALLf8ACy4AAAsuewALLn0ACy5/AAsugQALLoQACy6FAAsuhgALLocACy6IAAsuigALLowACy6NAAsujgALLpAACy6RAAsvDAALLw4ACy8QAAsvEgALLxUACy8WAAsvFwALLxgACy8ZAAsvGwALLx0ACy8eAAsvHwALLyEACy8iAAsvnQALL58ACy+hAAsvowALL6YACy+nAAsvqAALL6kACy+qAAsvrAALL64ACy+vAAsvsAALL7IACy+zAAsv/AALMCAACzBHAAswawALMG4ACzBwAAswcgALMHQACzB2AAsweAALMHkACzB8AAswlQALMLIACzC0AAswtgALMLgACzC6AAswvAALML4ACzDAAAsw3QALMOAACzDjAAsw5gALMOkACzDsAAsw7wALMPIACzD0AAsxbwALMXEACzFzAAsxdQALMXgACzF5AAsxegALMXsACzF8AAsxfgALMYAACzGBAAsxggALMYQACzGFAAsyAAALMgIACzIEAAsyBgALMgkACzIKAAsyCwALMgwACzINAAsyDwALMhEACzISAAsyEwALMhUACzIWAAsykQALMpMACzKVAAsylwALMpoACzKbAAsynAALMp0ACzKeAAsyoAALMqIACzKjAAsypAALMqYACzKnAAszIgALMyQACzMmAAszKAALMysACzMsAAszLQALMy4ACzMvAAszMQALMzMACzM0AAszNQALMzcACzM4AAszswALM7UACzO3AAszuQALM7wACzO9AAszvgALM78ACzPAAAszwgALM8QACzPFAAszxgALM8gACzPJAAs0RAALNEYACzRIAAs0SgALNE0ACzROAAs0TwALNFAACzRRAAs0UwALNFUACzRWAAs0VwALNFkACzRaAAs01QALNNcACzTZAAs02wALNN4ACzTfAAs04AALNOEACzTiAAs05AALNOYACzTnAAs06AALNOoACzTrAAs1fgALNaEACzXBAAs14QALNeMACzXlAAs15wALNekACzXsAAs17QALNe4ACzXxAAs18gALNfQACzX1AAs19wALNfoACzX7AAs1/AALNf8ACzYAAAs2CQALNiIACzYrAAs2LQALNi8ACzY4AAs2OwALNj4ACzZAAAs2iQALNq0ACzbUAAs2+AALNvsACzb9AAs2/wALNwEACzcDAAs3BQALNwYACzcJAAs3IgALN0MACzdFAAs3RwALN0kACzdLAAs3TQALN08ACzdRAAs3UwALN3QACzd3AAs3egALN30ACzeAAAs3gwALN4YACzeJAAs3jAALN44ACzgJAAs4CwALOA0ACzgPAAs4EgALOBMACzgUAAs4FQALOBYACzgYAAs4GgALOBsACzgcAAs4HgALOB8ACziaAAs4nAALOJ4ACzigAAs4owALOKQACzilAAs4pgALOKcACzipAAs4qwALOKwACzitAAs4rwALOLAACzkrAAs5LQALOTAACzkyAAs5NQALOTYACzk3AAs5OAALOTkACzk7AAs5PQALOT4ACzk/AAs5QQALOUIACzlbAAs5XAALOV0ACzlfAAs52gALOdwACzneAAs54AALOeMACznkAAs55QALOeYACznnAAs56QALOesACznsAAs57QALOe8ACznwAAs6awALOm0ACzpvAAs6cQALOnQACzp1AAs6dgALOncACzp4AAs6egALOnwACzp9AAs6fgALOoAACzqBAAs6/AALOv4ACzsAAAs7AgALOwUACzsGAAs7BwALOwgACzsJAAs7CwALOw0ACzsOAAs7DwALOxEACzsSAAs7jQALO48ACzuRAAs7kwALO5YACzuXAAs7mAALO5kACzuaAAs7nAALO54ACzufAAs7oAALO6IACzujAAs8HgALPCAACzwiAAs8JAALPCcACzwoAAs8KQALPCoACzwrAAs8LQALPC8ACzwwAAs8MQALPDMACzw0AAs8fQALPKEACzzIAAs87AALPO8ACzzxAAs88wALPPUACzz3AAs8+QALPPoACzz9AAs9FgALPTMACz01AAs9NwALPTkACz07AAs9PQALPT8ACz1BAAs9XgALPWEACz1kAAs9ZwALPWoACz1tAAs9cAALPXMACz11AAs98AALPfIACz30AAs99gALPfkACz36AAs9+wALPfwACz39AAs9/wALPgEACz4CAAs+AwALPgUACz4GAAs+gQALPoMACz6FAAs+hwALPooACz6LAAs+jAALPo0ACz6OAAs+kAALPpIACz6TAAs+lAALPpYACz6XAAs/EgALPxQACz8WAAs/GAALPxsACz8cAAs/HQALPx4ACz8fAAs/IQALPyMACz8kAAs/JQALPycACz8oAAs/owALP6UACz+oAAs/qgALP60ACz+uAAs/rwALP7AACz+xAAs/swALP7UACz+2AAs/twALP7kACz+6AAtANQALQDcAC0A5AAtAOwALQD4AC0A/AAtAQAALQEEAC0BCAAtARAALQEYAC0BHAAtASAALQEoAC0BLAAtAxgALQMgAC0DKAAtAzAALQM8AC0DQAAtA0QALQNIAC0DTAAtA1QALQNcAC0DYAAtA2QALQNsAC0DcAAtBVwALQVkAC0FbAAtBXQALQWAAC0FhAAtBYgALQWMAC0FkAAtBZgALQWgAC0FpAAtBagALQWwAC0FtAAtCAAALQiMAC0JDAAtCYwALQmUAC0JnAAtCaQALQmsAC0JuAAtCbwALQnAAC0JzAAtCdAALQnYAC0J3AAtCegALQn0AC0J+AAtCfwALQoIAC0KDAAtCiAALQqEAC0KqAAtCrAALQq8AC0K4AAtCuwALQr4AC0LAAAtDCQALQy0AC0NUAAtDeAALQ3sAC0N9AAtDfwALQ4EAC0ODAAtDhQALQ4YAC0OJAAtDogALQ8MAC0PFAAtDxwALQ8kAC0PLAAtDzQALQ88AC0PRAAtD0wALQ/QAC0P3AAtD+gALQ/0AC0QAAAtEAwALRAYAC0QJAAtEDAALRA4AC0SJAAtEiwALRI0AC0SPAAtEkgALRJMAC0SUAAtElQALRJYAC0SYAAtEmgALRJsAC0ScAAtEngALRJ8AC0UaAAtFHAALRR4AC0UgAAtFIwALRSQAC0UlAAtFJgALRScAC0UpAAtFKwALRSwAC0UtAAtFLwALRTAAC0WrAAtFrQALRbAAC0WyAAtFtQALRbYAC0W3AAtFuAALRbkAC0W7AAtFvQALRb4AC0W/AAtFwQALRcIAC0XbAAtF3AALRd0AC0XfAAtGWgALRlwAC0ZeAAtGYAALRmMAC0ZkAAtGZQALRmYAC0ZnAAtGaQALRmsAC0ZsAAtGbQALRm8AC0ZwAAtG6wALRu0AC0bvAAtG8QALRvQAC0b1AAtG9gALRvcAC0b4AAtG+gALRvwAC0b9AAtG/gALRwAAC0cBAAtHfAALR34AC0eAAAtHggALR4UAC0eGAAtHhwALR4gAC0eJAAtHiwALR40AC0eOAAtHjwALR5EAC0eSAAtIDQALSA8AC0gRAAtIEwALSBYAC0gXAAtIGAALSBkAC0gaAAtIHAALSB4AC0gfAAtIIAALSCIAC0gjAAtIngALSKAAC0iiAAtIpAALSKcAC0ioAAtIqQALSKoAC0irAAtIrQALSK8AC0iwAAtIsQALSLMAC0i0AAtI/QALSSEAC0lIAAtJbAALSW8AC0lyAAtJdAALSXYAC0l4AAtJegALSXsAC0l+AAtJlwALSbQAC0m3AAtJugALSb0AC0nAAAtJwwALScYAC0nJAAtJ5gALSekAC0nsAAtJ7wALSfIAC0n1AAtJ+AALSfsAC0n9AAtKeAALSnoAC0p9AAtKfwALSoIAC0qDAAtKhAALSoUAC0qGAAtKiAALSosAC0qMAAtKjQALSo8AC0qQAAtLCwALSw0AC0sQAAtLEgALSxUAC0sWAAtLFwALSxgAC0sZAAtLGwALSx4AC0sfAAtLIAALSyIAC0sjAAtLngALS6AAC0ujAAtLpQALS6gAC0upAAtLqgALS6sAC0usAAtLrgALS7EAC0uyAAtLswALS7UAC0u2AAtMMQALTDMAC0w2AAtMOAALTDsAC0w8AAtMPQALTD4AC0w/AAtMQQALTEQAC0xFAAtMRgALTEgAC0xJAAtMxAALTMYAC0zIAAtMygALTM0AC0zOAAtMzwALTNAAC0zRAAtM0wALTNYAC0zXAAtM2AALTNoAC0zbAAtNVgALTVgAC01aAAtNXAALTV8AC01gAAtNYQALTWIAC01jAAtNZQALTWgAC01pAAtNagALTWwAC01tAAtN6AALTeoAC03tAAtN7wALTfIAC03zAAtN9AALTfUAC032AAtN+AALTfsAC038AAtN/QALTf8AC04AAAtOkwALTrYAC07WAAtO9gALTvgAC076AAtO/AALTv4AC08BAAtPAgALTwMAC08GAAtPBwALTwkAC08KAAtPDAALTw8AC08QAAtPEQALTxQAC08VAAtPGgALTzMAC088AAtPPgALT0AAC09JAAtPTAALT08AC09RAAtPmgALT74AC0/lAAtQCQALUAwAC1AOAAtQEAALUBIAC1AUAAtQFgALUBcAC1AaAAtQMwALUFQAC1BWAAtQWAALUFoAC1BcAAtQXgALUGAAC1BiAAtQZAALUIUAC1CIAAtQiwALUI4AC1CRAAtQlAALUJcAC1CaAAtQnQALUJ8AC1EaAAtRHAALUR4AC1EgAAtRIwALUSQAC1ElAAtRJgALUScAC1EpAAtRKwALUSwAC1EtAAtRLwALUTAAC1GrAAtRrQALUa8AC1GxAAtRtAALUbUAC1G2AAtRtwALUbgAC1G6AAtRvAALUb0AC1G+AAtRwAALUcEAC1I8AAtSPgALUkEAC1JDAAtSRgALUkcAC1JIAAtSSQALUkoAC1JMAAtSTgALUk8AC1JQAAtSUgALUlMAC1JsAAtSbQALUm4AC1JwAAtS6wALUu0AC1LvAAtS8QALUvQAC1L1AAtS9gALUvcAC1L4AAtS+gALUvwAC1L9AAtS/gALUwAAC1MBAAtTfAALU34AC1OAAAtTggALU4UAC1OGAAtThwALU4gAC1OJAAtTiwALU40AC1OOAAtTjwALU5EAC1OSAAtUDQALVA8AC1QRAAtUEwALVBYAC1QXAAtUGAALVBkAC1QaAAtUHAALVB4AC1QfAAtUIAALVCIAC1QjAAtUngALVKAAC1SiAAtUpAALVKcAC1SoAAtUqQALVKoAC1SrAAtUrQALVK8AC1SwAAtUsQALVLMAC1S0AAtVLwALVTEAC1UzAAtVNQALVTgAC1U5AAtVOgALVTsAC1U8AAtVPgALVUAAC1VBAAtVQgALVUQAC1VFAAtVjgALVbIAC1XZAAtV/QALVgAAC1YCAAtWBAALVgYAC1YIAAtWCgALVgsAC1YOAAtWJwALVkQAC1ZGAAtWSAALVkoAC1ZMAAtWTgALVlAAC1ZSAAtWbwALVnIAC1Z1AAtWeAALVnsAC1Z+AAtWgQALVoQAC1aGAAtXAQALVwMAC1cFAAtXBwALVwoAC1cLAAtXDAALVw0AC1cOAAtXEAALVxIAC1cTAAtXFAALVxYAC1cXAAtXkgALV5QAC1eWAAtXmAALV5sAC1ecAAtXnQALV54AC1efAAtXoQALV6MAC1ekAAtXpQALV6cAC1eoAAtYIwALWCUAC1gnAAtYKQALWCwAC1gtAAtYLgALWC8AC1gwAAtYMgALWDQAC1g1AAtYNgALWDgAC1g5AAtYtAALWLYAC1i5AAtYuwALWL4AC1i/AAtYwAALWMEAC1jCAAtYxAALWMYAC1jHAAtYyAALWMoAC1jLAAtZRgALWUgAC1lKAAtZTAALWU8AC1lQAAtZUQALWVIAC1lTAAtZVQALWVcAC1lYAAtZWQALWVsAC1lcAAtZ1wALWdkAC1nbAAtZ3QALWeAAC1nhAAtZ4gALWeMAC1nkAAtZ5gALWegAC1npAAtZ6gALWewAC1ntAAtaaAALWmoAC1psAAtabgALWnEAC1pyAAtacwALWnQAC1p1AAtadwALWnkAC1p6AAtaewALWn0AC1p+AAtbEQALWzQAC1tUAAtbdAALW3YAC1t4AAtbegALW3wAC1t/AAtbgAALW4EAC1uEAAtbhQALW4cAC1uIAAtbigALW40AC1uOAAtbjwALW5IAC1uTAAtbmAALW7EAC1u6AAtbvAALW74AC1vHAAtbygALW80AC1vPAAtcGAALXDwAC1xjAAtchwALXIoAC1yMAAtcjgALXJAAC1ySAAtclAALXJUAC1yYAAtcsQALXNIAC1zUAAtc1gALXNgAC1zaAAtc3AALXN4AC1zgAAtc4gALXQMAC10GAAtdCQALXQwAC10PAAtdEgALXRUAC10YAAtdGwALXR0AC12YAAtdmgALXZwAC12eAAtdoQALXaIAC12jAAtdpAALXaUAC12nAAtdqQALXaoAC12rAAtdrQALXa4AC14pAAteKwALXi0AC14vAAteMgALXjMAC140AAteNQALXjYAC144AAteOgALXjsAC148AAtePgALXj8AC166AAtevAALXr8AC17BAAtexAALXsUAC17GAAtexwALXsgAC17KAAtezAALXs0AC17OAAte0AALXtEAC17qAAte6wALXuwAC17uAAtfaQALX2sAC19tAAtfbwALX3IAC19zAAtfdAALX3UAC192AAtfeAALX3oAC197AAtffAALX34AC19/AAtf+gALX/wAC1/+AAtgAAALYAMAC2AEAAtgBQALYAYAC2AHAAtgCQALYAsAC2AMAAtgDQALYA8AC2AQAAtgiwALYI0AC2CPAAtgkQALYJQAC2CVAAtglgALYJcAC2CYAAtgmgALYJwAC2CdAAtgngALYKAAC2ChAAthHAALYR4AC2EgAAthIgALYSUAC2EmAAthJwALYSgAC2EpAAthKwALYS0AC2EuAAthLwALYTEAC2EyAAthrQALYa8AC2GxAAthswALYbYAC2G3AAthuAALYbkAC2G6AAthvAALYb4AC2G/AAthwAALYcIAC2HDAAtiDAALYjAAC2JXAAtiewALYn4AC2KAAAtiggALYoQAC2KGAAtiiAALYokAC2KMAAtipQALYsIAC2LEAAtixgALYsgAC2LKAAtizAALYs4AC2LQAAti7QALYvAAC2LzAAti9gALYvkAC2L8AAti/wALYwIAC2MEAAtjfwALY4EAC2ODAAtjhQALY4gAC2OJAAtjigALY4sAC2OMAAtjjgALY5AAC2ORAAtjkgALY5QAC2OVAAtkEAALZBIAC2QUAAtkFgALZBkAC2QaAAtkGwALZBwAC2QdAAtkHwALZCEAC2QiAAtkIwALZCUAC2QmAAtkoQALZKMAC2SlAAtkpwALZKoAC2SrAAtkrAALZK0AC2SuAAtksAALZLIAC2SzAAtktAALZLYAC2S3AAtlMgALZTQAC2U2AAtlOAALZTsAC2U8AAtlPQALZT4AC2U/AAtlQQALZUMAC2VEAAtlRQALZUcAC2VIAAtlwwALZcUAC2XHAAtlyQALZcwAC2XNAAtlzgALZc8AC2XQAAtl0gALZdQAC2XVAAtl1gALZdgAC2XZAAtmVAALZlYAC2ZYAAtmWgALZl0AC2ZeAAtmXwALZmAAC2ZhAAtmYwALZmUAC2ZmAAtmZwALZmkAC2ZqAAtm5QALZucAC2bpAAtm6wALZu4AC2bvAAtm8AALZvEAC2byAAtm9AALZvYAC2b3AAtm+AALZvoAC2b7AAtnjgALZ7EAC2fRAAtn8QALZ/MAC2f1AAtn9wALZ/kAC2f8AAtn/QALZ/4AC2gBAAtoAgALaAQAC2gFAAtoBwALaAoAC2gLAAtoDAALaA8AC2gQAAtoFQALaC4AC2g3AAtoOQALaDsAC2hEAAtoRwALaEoAC2hMAAtolQALaLkAC2jgAAtpBAALaQcAC2kJAAtpCwALaQ0AC2kPAAtpEQALaRIAC2kVAAtpLgALaU8AC2lRAAtpUwALaVUAC2lXAAtpWQALaVsAC2ldAAtpXwALaYAAC2mDAAtphgALaYkAC2mMAAtpjwALaZIAC2mVAAtpmAALaZoAC2oVAAtqFwALahkAC2obAAtqHgALah8AC2ogAAtqIQALaiIAC2okAAtqJgALaicAC2ooAAtqKgALaisAC2qmAAtqqAALaqoAC2qsAAtqrwALarAAC2qxAAtqsgALarMAC2q1AAtqtwALargAC2q5AAtquwALarwAC2s3AAtrOQALazwAC2s+AAtrQQALa0IAC2tDAAtrRAALa0UAC2tHAAtrSQALa0oAC2tLAAtrTQALa04AC2tnAAtraAALa2kAC2trAAtr5gALa+gAC2vqAAtr7AALa+8AC2vwAAtr8QALa/IAC2vzAAtr9QALa/cAC2v4AAtr+QALa/sAC2v8AAtsdwALbHkAC2x7AAtsfQALbIAAC2yBAAtsggALbIMAC2yEAAtshgALbIgAC2yJAAtsigALbIwAC2yNAAttCAALbQoAC20MAAttDgALbREAC20SAAttEwALbRQAC20VAAttFwALbRkAC20aAAttGwALbR0AC20eAAttmQALbZsAC22dAAttnwALbaIAC22jAAttpAALbaUAC22mAAttqAALbaoAC22rAAttrAALba4AC22vAAtuKgALbiwAC24uAAtuMAALbjMAC240AAtuNQALbjYAC243AAtuOQALbjsAC248AAtuPQALbj8AC25AAAtuiQALbq0AC27UAAtu+AALbvsAC279AAtu/wALbwEAC28DAAtvBQALbwYAC28JAAtvIgALbz8AC29BAAtvQwALb0UAC29HAAtvSQALb0sAC29NAAtvagALb20AC29wAAtvcwALb3YAC295AAtvfAALb38AC2+BAAtv/AALb/4AC3AAAAtwAgALcAUAC3AGAAtwBwALcAgAC3AJAAtwCwALcA0AC3AOAAtwDwALcBEAC3ASAAtwjQALcI8AC3CRAAtwkwALcJYAC3CXAAtwmAALcJkAC3CaAAtwnAALcJ4AC3CfAAtwoAALcKIAC3CjAAtxHgALcSAAC3EiAAtxJAALcScAC3EoAAtxKQALcSoAC3ErAAtxLQALcS8AC3EwAAtxMQALcTMAC3E0AAtxrwALcbEAC3G0AAtxtgALcbkAC3G6AAtxuwALcbwAC3G9AAtxvwALccEAC3HCAAtxwwALccUAC3HGAAtyQQALckMAC3JFAAtyRwALckoAC3JLAAtyTAALck0AC3JOAAtyUAALclIAC3JTAAtyVAALclYAC3JXAAty0gALctQAC3LWAAty2AALctsAC3LcAAty3QALct4AC3LfAAty4QALcuMAC3LkAAty5QALcucAC3LoAAtzYwALc2UAC3NnAAtzaQALc2wAC3NtAAtzbgALc28AC3NwAAtzcgALc3QAC3N1AAtzdgALc3gAC3N5AAt0DAALdC8AC3RPAAt0bwALdHEAC3RzAAt0dQALdHcAC3R6AAt0ewALdHwAC3R/AAt0gAALdIIAC3SDAAt0hQALdIgAC3SJAAt0igALdI0AC3SOAAt0kwALdKwAC3S1AAt0twALdLkAC3TCAAt0xQALdMgAC3TKAAt1EwALdTcAC3VeAAt1ggALdYUAC3WHAAt1iQALdYsAC3WNAAt1jwALdZAAC3WTAAt1rAALdc0AC3XPAAt10QALddMAC3XVAAt11wALddkAC3XbAAt13QALdf4AC3YBAAt2BAALdgcAC3YKAAt2DQALdhAAC3YTAAt2FgALdhgAC3aTAAt2lQALdpcAC3aZAAt2nAALdp0AC3aeAAt2nwALdqAAC3aiAAt2pAALdqUAC3amAAt2qAALdqkAC3ckAAt3JgALdygAC3cqAAt3LQALdy4AC3cvAAt3MAALdzEAC3czAAt3NQALdzYAC3c3AAt3OQALdzoAC3e1AAt3twALd7oAC3e8AAt3vwALd8AAC3fBAAt3wgALd8MAC3fFAAt3xwALd8gAC3fJAAt3ywALd8wAC3flAAt35gALd+cAC3fpAAt4ZAALeGYAC3hoAAt4agALeG0AC3huAAt4bwALeHAAC3hxAAt4cwALeHUAC3h2AAt4dwALeHkAC3h6AAt49QALePcAC3j5AAt4+wALeP4AC3j/AAt5AAALeQEAC3kCAAt5BAALeQYAC3kHAAt5CAALeQoAC3kLAAt5hgALeYgAC3mKAAt5jAALeY8AC3mQAAt5kQALeZIAC3mTAAt5lQALeZcAC3mYAAt5mQALeZsAC3mcAAt6FwALehkAC3obAAt6HQALeiAAC3ohAAt6IgALeiMAC3okAAt6JgALeigAC3opAAt6KgALeiwAC3otAAt6qAALeqoAC3qsAAt6rgALerEAC3qyAAt6swALerQAC3q1AAt6twALerkAC3q6AAt6uwALer0AC3q+AAt7BwALeysAC3tSAAt7dgALe3kAC3t7AAt7fQALe38AC3uBAAt7gwALe4QAC3uHAAt7oAALe70AC3u/AAt7wQALe8MAC3vFAAt7xwALe8kAC3vLAAt76AALe+sAC3vuAAt78QALe/QAC3v3AAt7+gALe/0AC3v/AAt8egALfHwAC3x+AAt8gAALfIMAC3yEAAt8hQALfIYAC3yHAAt8iQALfIsAC3yMAAt8jQALfI8AC3yQAAt9CwALfQ0AC30PAAt9EQALfRQAC30VAAt9FgALfRcAC30YAAt9GgALfRwAC30dAAt9HgALfSAAC30hAAt9nAALfZ4AC32gAAt9ogALfaUAC32mAAt9pwALfagAC32pAAt9qwALfa0AC32uAAt9rwALfbEAC32yAAt+LQALfi8AC34xAAt+MwALfjYAC343AAt+OAALfjkAC346AAt+PAALfj4AC34/AAt+QAALfkIAC35DAAt+vgALfsAAC37CAAt+xAALfscAC37IAAt+yQALfsoAC37LAAt+zQALfs8AC37QAAt+0QALftMAC37UAAt/TwALf1EAC39UAAt/VgALf1kAC39aAAt/WwALf1wAC39dAAt/XwALf2EAC39iAAt/YwALf2UAC39mAAt/hQALgAAAC4ACAAuABAALgAYAC4AJAAuACgALgAsAC4AMAAuADQALgA8AC4ARAAuAEgALgBMAC4AVAAuAFgALgCcAC4AoAAuAKgALgKUAC4CnAAuAqQALgKsAC4CuAAuArwALgLAAC4CxAAuAsgALgLQAC4C3AAuAuAALgLkAC4C7AAuAvAALgTcAC4E5AAuBOwALgT0AC4FAAAuBQQALgUIAC4FDAAuBRAALgUYAC4FJAAuBSgALgUsAC4FNAAuBTgALgckAC4HLAAuBzgALgdAAC4HTAAuB1AALgdUAC4HWAAuB1wALgdkAC4HcAAuB3QALgd4AC4HgAAuB4QALgnQAC4KXAAuCtwALgtcAC4LZAAuC2wALgt0AC4LfAAuC4gALguMAC4LkAAuC5wALgugAC4LqAAuC6wALgu0AC4LwAAuC8QALgvIAC4L1AAuC9gALgvsAC4MUAAuDHQALgx8AC4MhAAuDKgALgy0AC4MwAAuDMgALg3sAC4OfAAuDxgALg+oAC4PtAAuD7wALg/EAC4PzAAuD9QALg/cAC4P4AAuD+wALhBQAC4Q1AAuENwALhDkAC4Q7AAuEPQALhD8AC4RBAAuEQwALhEUAC4RmAAuEaQALhGwAC4RvAAuEcgALhHUAC4R4AAuEewALhH4AC4SAAAuE+wALhP0AC4T/AAuFAQALhQQAC4UFAAuFBgALhQcAC4UIAAuFCgALhQwAC4UNAAuFDgALhRAAC4URAAuFjAALhY4AC4WQAAuFkgALhZUAC4WWAAuFlwALhZgAC4WZAAuFmwALhZ0AC4WeAAuFnwALhaEAC4WiAAuGHQALhh8AC4YiAAuGJAALhicAC4YoAAuGKQALhioAC4YrAAuGLQALhi8AC4YwAAuGMQALhjMAC4Y0AAuGTQALhk4AC4ZPAAuGUQALhswAC4bOAAuG0AALhtIAC4bVAAuG1gALhtcAC4bYAAuG2QALhtsAC4bdAAuG3gALht8AC4bhAAuG4gALh10AC4dfAAuHYQALh2MAC4dmAAuHZwALh2gAC4dpAAuHagALh2wAC4duAAuHbwALh3AAC4dyAAuHcwALh+4AC4fwAAuH8gALh/QAC4f3AAuH+AALh/kAC4f6AAuH+wALh/0AC4f/AAuIAAALiAEAC4gDAAuIBAALiH8AC4iBAAuIgwALiIUAC4iIAAuIiQALiIoAC4iLAAuIjAALiI4AC4iQAAuIkQALiJIAC4iUAAuIlQALiRAAC4kSAAuJFAALiRYAC4kZAAuJGgALiRsAC4kcAAuJHQALiR8AC4khAAuJIgALiSMAC4klAAuJJgALiW8AC4mTAAuJugALid4AC4nhAAuJ4wALieUAC4nnAAuJ6QALiesAC4nsAAuJ7wALiggAC4olAAuKJwALiikAC4orAAuKLQALii8AC4oxAAuKMwALilAAC4pTAAuKVgALilkAC4pcAAuKXwALimIAC4plAAuKZwALiuIAC4rkAAuK5wALiukAC4rsAAuK7QALiu4AC4rvAAuK8AALivIAC4r0AAuK9QALivYAC4r4AAuK+QALi3QAC4t2AAuLeAALi3oAC4t9AAuLfgALi38AC4uAAAuLgQALi4MAC4uFAAuLhgALi4cAC4uJAAuLigALjAUAC4wHAAuMCQALjAsAC4wOAAuMDwALjBAAC4wRAAuMEgALjBQAC4wWAAuMFwALjBgAC4waAAuMGwALjJYAC4yYAAuMmwALjJ0AC4ygAAuMoQALjKIAC4yjAAuMpAALjKYAC4yoAAuMqQALjKoAC4ysAAuMrQALjSgAC40qAAuNLAALjS4AC40xAAuNMgALjTMAC400AAuNNQALjTcAC405AAuNOgALjTsAC409AAuNPgALjbkAC427AAuNvQALjb8AC43CAAuNwwALjcQAC43FAAuNxgALjcgAC43KAAuNywALjcwAC43OAAuNzwALjkoAC45MAAuOTgALjlAAC45TAAuOVAALjlUAC45WAAuOVwALjlkAC45bAAuOXAALjl0AC45fAAuOYAALjvMAC48WAAuPNgALj1YAC49YAAuPWgALj1wAC49eAAuPYQALj2IAC49jAAuPZgALj2cAC49pAAuPagALj2wAC49vAAuPcAALj3EAC490AAuPdQALj34AC4+XAAuPoAALj6IAC4+kAAuPrQALj7AAC4+zAAuPtQALj/4AC5AiAAuQSQALkG0AC5BwAAuQcgALkHQAC5B2AAuQeAALkHoAC5B7AAuQfgALkJcAC5C4AAuQugALkLwAC5C+AAuQwAALkMIAC5DEAAuQxgALkMgAC5DpAAuQ7AALkO8AC5DyAAuQ9QALkPgAC5D7AAuQ/gALkQEAC5EDAAuRfgALkYAAC5GCAAuRhAALkYcAC5GIAAuRiQALkYoAC5GLAAuRjQALkY8AC5GQAAuRkQALkZMAC5GUAAuSDwALkhEAC5ITAAuSFQALkhgAC5IZAAuSGgALkhsAC5IcAAuSHgALkiAAC5IhAAuSIgALkiQAC5IlAAuSoAALkqIAC5KlAAuSpwALkqoAC5KrAAuSrAALkq0AC5KuAAuSsAALkrIAC5KzAAuStAALkrYAC5K3AAuS0AALktEAC5LSAAuS1AALk08AC5NRAAuTUwALk1UAC5NYAAuTWQALk1oAC5NbAAuTXAALk14AC5NgAAuTYQALk2IAC5NkAAuTZQALk+AAC5PiAAuT5AALk+YAC5PpAAuT6gALk+sAC5PsAAuT7QALk+8AC5PxAAuT8gALk/MAC5P1AAuT9gALlHEAC5RzAAuUdQALlHcAC5R6AAuUewALlHwAC5R9AAuUfgALlIAAC5SCAAuUgwALlIQAC5SGAAuUhwALlQIAC5UEAAuVBgALlQgAC5ULAAuVDAALlQ0AC5UOAAuVDwALlREAC5UTAAuVFAALlRUAC5UXAAuVGAALlZMAC5WVAAuVlwALlZkAC5WcAAuVnQALlZ4AC5WfAAuVoAALlaIAC5WkAAuVpQALlaYAC5WoAAuVqQALlfIAC5YWAAuWPQALlmEAC5ZkAAuWZgALlmgAC5ZqAAuWbAALlm4AC5ZvAAuWcgALlosAC5aoAAuWqgALlqwAC5auAAuWsAALlrIAC5a0AAuWtgALltMAC5bWAAuW2QALltwAC5bfAAuW4gALluUAC5boAAuW6gALl2UAC5dnAAuXagALl2wAC5dvAAuXcAALl3EAC5dyAAuXcwALl3UAC5d3AAuXeAALl3kAC5d7AAuXfAALl/cAC5f5AAuX+wALl/0AC5gAAAuYAQALmAIAC5gDAAuYBAALmAYAC5gIAAuYCQALmAoAC5gMAAuYDQALmIgAC5iKAAuYjAALmI4AC5iRAAuYkgALmJMAC5iUAAuYlQALmJcAC5iZAAuYmgALmJsAC5idAAuYngALmRkAC5kbAAuZHgALmSAAC5kjAAuZJAALmSUAC5kmAAuZJwALmSkAC5krAAuZLAALmS0AC5kvAAuZMAALmasAC5mtAAuZrwALmbEAC5m0AAuZtQALmbYAC5m3AAuZuAALmboAC5m8AAuZvQALmb4AC5nAAAuZwQALmjwAC5o+AAuaQAALmkIAC5pFAAuaRgALmkcAC5pIAAuaSQALmksAC5pNAAuaTgALmk8AC5pRAAuaUgALms0AC5rPAAua0QALmtMAC5rWAAua1wALmtgAC5rZAAua2gALmtwAC5reAAua3wALmuAAC5riAAua4wALm3YAC5uZAAubuQALm9kAC5vbAAub3QALm98AC5vhAAub5AALm+UAC5vmAAub6QALm+oAC5vsAAub7QALm+8AC5vyAAub8wALm/QAC5v3AAub+AALnAEAC5waAAucIwALnCUAC5wnAAucMAALnDMAC5w2AAucOAALnIEAC5ylAAuczAALnPAAC5zzAAuc9QALnPcAC5z5AAuc+wALnP0AC5z+AAudAQALnRoAC507AAudPQALnT8AC51BAAudQwALnUUAC51HAAudSQALnUsAC51sAAudbwALnXIAC511AAudeAALnXsAC51+AAudgQALnYQAC52GAAueAQALngMAC54FAAueBwALngoAC54LAAueDAALng0AC54OAAueEAALnhIAC54TAAueFAALnhYAC54XAAuekgALnpQAC56WAAuemAALnpsAC56cAAuenQALnp4AC56fAAueoQALnqMAC56kAAuepQALnqcAC56oAAufIwALnyUAC58oAAufKgALny0AC58uAAufLwALnzAAC58xAAufMwALnzUAC582AAufNwALnzkAC586AAufUwALn1QAC59VAAufVwALn9IAC5/UAAuf1gALn9gAC5/bAAuf3AALn90AC5/eAAuf3wALn+EAC5/jAAuf5AALn+UAC5/nAAuf6AALoGMAC6BlAAugZwALoGkAC6BsAAugbQALoG4AC6BvAAugcAALoHIAC6B0AAugdQALoHYAC6B4AAugeQALoPQAC6D2AAug+AALoPoAC6D9AAug/gALoP8AC6EAAAuhAQALoQMAC6EFAAuhBgALoQcAC6EJAAuhCgALoYUAC6GHAAuhiQALoYsAC6GOAAuhjwALoZAAC6GRAAuhkgALoZQAC6GWAAuhlwALoZgAC6GaAAuhmwALohYAC6IYAAuiGgALohwAC6IfAAuiIAALoiEAC6IiAAuiIwALoiUAC6InAAuiKAALoikAC6IrAAuiLAALonUAC6KZAAuiwAALouQAC6LnAAui6QALousAC6LtAAui7wALovEAC6LyAAui9QALow4AC6MrAAujLQALoy8AC6MxAAujMwALozUAC6M3AAujOQALo1YAC6NZAAujXAALo18AC6NiAAujZQALo2gAC6NrAAujbQALo+gAC6PqAAuj7AALo+4AC6PxAAuj8gALo/MAC6P0AAuj9QALo/cAC6P5AAuj+gALo/sAC6P9AAuj/gALpHkAC6R7AAukfQALpH8AC6SCAAukgwALpIQAC6SFAAukhgALpIgAC6SKAAukiwALpIwAC6SOAAukjwALpQoAC6UMAAulDgALpRAAC6UTAAulFAALpRUAC6UWAAulFwALpRkAC6UbAAulHAALpR0AC6UfAAulIAALpZsAC6WdAAuloAALpaIAC6WlAAulpgALpacAC6WoAAulqQALpasAC6WtAAulrgALpa8AC6WxAAulsgALpi0AC6YvAAumMQALpjMAC6Y2AAumNwALpjgAC6Y5AAumOgALpjwAC6Y+AAumPwALpkAAC6ZCAAumQwALpr4AC6bAAAumwgALpsQAC6bHAAumyAALpskAC6bKAAumywALps0AC6bPAAum0AALptEAC6bTAAum1AALp08AC6dRAAunUwALp1UAC6dYAAunWQALp1oAC6dbAAunXAALp14AC6dgAAunYQALp2IAC6dkAAunZQALp/gAC6gbAAuoOwALqFsAC6hdAAuoXwALqGEAC6hjAAuoZgALqGcAC6hoAAuoawALqGwAC6huAAuobwALqHEAC6h0AAuodQALqHYAC6h5AAuoegALqH8AC6iYAAuooQALqKMAC6ilAAuorgALqLEAC6i0AAuotgALqP8AC6kjAAupSgALqW4AC6lxAAupcwALqXUAC6l3AAupeQALqXsAC6l8AAupfwALqZgAC6m5AAupuwALqb0AC6m/AAupwQALqcMAC6nFAAupxwALqckAC6nqAAup7QALqfAAC6nzAAup9gALqfkAC6n8AAup/wALqgIAC6oEAAuqfwALqoEAC6qDAAuqhQALqogAC6qJAAuqigALqosAC6qMAAuqjgALqpAAC6qRAAuqkgALqpQAC6qVAAurEAALqxIAC6sUAAurFgALqxkAC6saAAurGwALqxwAC6sdAAurHwALqyEAC6siAAurIwALqyUAC6smAAuroQALq6MAC6umAAurqAALq6sAC6usAAurrQALq64AC6uvAAursQALq7MAC6u0AAurtQALq7cAC6u4AAur0QALq9IAC6vTAAur1QALrFAAC6xSAAusVAALrFYAC6xZAAusWgALrFsAC6xcAAusXQALrF8AC6xhAAusYgALrGMAC6xlAAusZgALrOEAC6zjAAus5QALrOcAC6zqAAus6wALrOwAC6ztAAus7gALrPAAC6zyAAus8wALrPQAC6z2AAus9wALrXIAC610AAutdgALrXgAC617AAutfAALrX0AC61+AAutfwALrYEAC62DAAuthAALrYUAC62HAAutiAALrgMAC64FAAuuBwALrgkAC64MAAuuDQALrg4AC64PAAuuEAALrhIAC64UAAuuFQALrhYAC64YAAuuGQALrpQAC66WAAuumAALrpoAC66dAAuungALrp8AC66gAAuuoQALrqMAC66lAAuupgALrqcAC66pAAuuqgALrvMAC68XAAuvPgALr2IAC69lAAuvZwALr2kAC69rAAuvbQALr28AC69wAAuvcwALr4wAC6+pAAuvqwALr60AC6+vAAuvsQALr7MAC6+1AAuvtwALr9QAC6/XAAuv2gALr90AC6/gAAuv4wALr+YAC6/pAAuv6wALsGYAC7BoAAuwawALsG0AC7BwAAuwcQALsHIAC7BzAAuwdAALsHYAC7B4AAuweQALsHoAC7B8AAuwfQALsPgAC7D6AAuw/AALsP4AC7EBAAuxAgALsQMAC7EEAAuxBQALsQcAC7EJAAuxCgALsQsAC7ENAAuxDgALsYkAC7GLAAuxjQALsY8AC7GSAAuxkwALsZQAC7GVAAuxlgALsZgAC7GaAAuxmwALsZwAC7GeAAuxnwALshoAC7IcAAuyHwALsiEAC7IkAAuyJQALsiYAC7InAAuyKAALsioAC7IsAAuyLQALsi4AC7IwAAuyMQALsqwAC7KuAAuysAALsrIAC7K1AAuytgALsrcAC7K4AAuyuQALsrsAC7K9AAuyvgALsr8AC7LBAAuywgALsz0AC7M/AAuzQQALs0MAC7NGAAuzRwALs0gAC7NJAAuzSgALs0wAC7NOAAuzTwALs1AAC7NSAAuzUwALs84AC7PQAAuz0gALs9QAC7PXAAuz2AALs9kAC7PaAAuz2wALs90AC7PfAAuz4AALs+EAC7PjAAuz5AALs/UAC7P2AAuz+AALtHMAC7R1AAu0dwALtHkAC7R8AAu0fQALtH4AC7R/AAu0gAALtIIAC7SFAAu0hgALtIcAC7SJAAu0igALtQUAC7UHAAu1CQALtQsAC7UOAAu1DwALtRAAC7URAAu1EgALtRQAC7UXAAu1GAALtRkAC7UbAAu1HAALtZcAC7WZAAu1nAALtZ4AC7WhAAu1ogALtaMAC7WkAAu1pQALtacAC7WqAAu1qwALtawAC7WuAAu1rwALtkIAC7ZlAAu2hQALtqUAC7anAAu2qQALtqsAC7atAAu2sAALtrEAC7ayAAu2tQALtrYAC7a4AAu2uQALtrsAC7a+AAu2vwALtsAAC7bDAAu2xAALtskAC7biAAu26wALtu0AC7bvAAu2+AALtvsAC7b+AAu3AAALt0kAC7dtAAu3lAALt7gAC7e7AAu3vQALt78AC7fBAAu3wwALt8UAC7fGAAu3yQALt+IAC7gDAAu4BQALuAcAC7gJAAu4CwALuA0AC7gPAAu4EQALuBMAC7g0AAu4NwALuDoAC7g9AAu4QAALuEMAC7hGAAu4SQALuEwAC7hOAAu4yQALuMsAC7jNAAu4zwALuNIAC7jTAAu41AALuNUAC7jWAAu42AALuNoAC7jbAAu43AALuN4AC7jfAAu5WgALuVwAC7leAAu5YAALuWMAC7lkAAu5ZQALuWYAC7lnAAu5aQALuWsAC7lsAAu5bQALuW8AC7lwAAu56wALue0AC7nwAAu58gALufUAC7n2AAu59wALufgAC7n5AAu5+wALuf0AC7n+AAu5/wALugEAC7oCAAu6GwALuhwAC7odAAu6HwALupoAC7qcAAu6ngALuqAAC7qjAAu6pAALuqUAC7qmAAu6pwALuqkAC7qrAAu6rAALuq0AC7qvAAu6sAALuysAC7stAAu7LwALuzEAC7s0AAu7NQALuzYAC7s3AAu7OAALuzoAC7s8AAu7PQALuz4AC7tAAAu7QQALu7wAC7u+AAu7wAALu8IAC7vFAAu7xgALu8cAC7vIAAu7yQALu8sAC7vNAAu7zgALu88AC7vRAAu70gALvE0AC7xPAAu8UQALvFMAC7xWAAu8VwALvFgAC7xZAAu8WgALvFwAC7xeAAu8XwALvGAAC7xiAAu8YwALvN4AC7zgAAu84gALvOQAC7znAAu86AALvOkAC7zqAAu86wALvO0AC7zvAAu88AALvPEAC7zzAAu89AALvT0AC71hAAu9iAALvawAC72vAAu9sQALvbMAC721AAu9twALvbkAC726AAu9vQALvdYAC73zAAu99QALvfcAC735AAu9+wALvf0AC73/AAu+AQALvh4AC74hAAu+JAALvicAC74qAAu+LQALvjAAC74zAAu+NQALvrAAC76yAAu+tAALvrYAC765AAu+ugALvrsAC768AAu+vQALvr8AC77BAAu+wgALvsMAC77FAAu+xgALv0EAC79DAAu/RQALv0cAC79KAAu/SwALv0wAC79NAAu/TgALv1AAC79SAAu/UwALv1QAC79WAAu/VwALv9IAC7/UAAu/1gALv9gAC7/bAAu/3AALv90AC7/eAAu/3wALv+EAC7/jAAu/5AALv+UAC7/nAAu/6AALwGMAC8BlAAvAaAALwGoAC8BtAAvAbgALwG8AC8BwAAvAcQALwHMAC8B1AAvAdgALwHcAC8B5AAvAegALwPUAC8D3AAvA+QALwPsAC8D+AAvA/wALwQAAC8EBAAvBAgALwQQAC8EGAAvBBwALwQgAC8EKAAvBCwALwYYAC8GIAAvBigALwYwAC8GPAAvBkAALwZEAC8GSAAvBkwALwZUAC8GXAAvBmAALwZkAC8GbAAvBnAALwhcAC8IZAAvCGwALwh0AC8IgAAvCIQALwiIAC8IjAAvCJAALwiYAC8IoAAvCKQALwioAC8IsAAvCLQALwj4AC8I/AAvCQQALwsQAC8LoAAvDDAALwy8AC8NWAAvDdgALw50AC8PEAAvD5AALxAgAC8QsAAvELgALxDEAC8QzAAvENQALxDcAC8Q6AAvEPQALxD8AC8RBAAvERAALxEYAC8RIAAvESwALxE4AC8RPAAvEVAALxG0AC8RyAAvEdAALxHkAC8R8AAvEfgALxMcAC8TrAAvFEgALxTYAC8U5AAvFOwALxT0AC8U/AAvFQQALxUMAC8VEAAvFRwALxWAAC8WFAAvFhwALxYkAC8WLAAvFjQALxY8AC8WRAAvFkwALxZUAC8WXAAvFvAALxb8AC8XCAAvFxQALxcgAC8XLAAvFzgALxdEAC8XUAAvF1wALxdkAC8ZUAAvGVgALxlkAC8ZbAAvGXgALxl8AC8ZgAAvGYQALxmIAC8ZkAAvGZgALxmcAC8ZoAAvGagALxmsAC8Z8AAvGfQALxn8AC8b6AAvG/AALxv4AC8cAAAvHAwALxwQAC8cFAAvHBgALxwcAC8cJAAvHCwALxwwAC8cNAAvHDwALxxAAC8eLAAvHjQALx5AAC8eSAAvHlQALx5YAC8eXAAvHmAALx5kAC8ebAAvHnQALx54AC8efAAvHoQALx6IAC8ezAAvHuAALx7sAC8e9AAvHzgALx9cAC8faAAvH3QALx98AC8f6AAvIDwALyIoAC8iMAAvIjgALyJAAC8iTAAvIlAALyJUAC8iWAAvIlwALyJkAC8ibAAvInAALyJ0AC8ifAAvIoAALyRsAC8kdAAvJIAALySIAC8klAAvJJgALyScAC8koAAvJKQALySsAC8ktAAvJLgALyS8AC8kxAAvJMgALyUMAC8lEAAvJRgALycEAC8nDAAvJxQALyccAC8nKAAvJywALycwAC8nNAAvJzgALydAAC8nSAAvJ0wALydQAC8nWAAvJ1wALylIAC8pUAAvKVwALylkAC8pcAAvKXQALyl4AC8pfAAvKYAALymIAC8pkAAvKZQALymYAC8poAAvKaQALyoIAC8qDAAvKhAALyoYAC8sBAAvLAwALywUAC8sHAAvLCgALywsAC8sMAAvLDQALyw4AC8sQAAvLEgALyxMAC8sUAAvLFgALyxcAC8uSAAvLlAALy5cAC8uZAAvLnAALy50AC8ueAAvLnwALy6AAC8uiAAvLpAALy6UAC8umAAvLqAALy6kAC8vaAAvL8wALzAAAC8wDAAvMBgALzAkAC8wWAAvMGQALzBwAC8wfAAvMIQALzDwAC8xRAAvMZAALzPcAC80aAAvNOgALzVoAC81cAAvNXgALzWAAC81iAAvNZQALzWYAC81nAAvNagALzWsAC81tAAvNbgALzXAAC81zAAvNdAALzXUAC814AAvNeQALzX4AC82XAAvNoAALzaIAC82kAAvNrQALzbAAC82zAAvNtQALzf4AC84iAAvOSQALzm0AC85wAAvOcgALznQAC852AAvOeAALznoAC857AAvOfgALzpcAC864AAvOugALzrwAC86+AAvOwAALzsIAC87EAAvOxgALzsgAC87pAAvO7AALzu8AC87yAAvO9QALzvgAC877AAvO/gALzwEAC88DAAvPfgALz4AAC8+CAAvPhAALz4cAC8+IAAvPiQALz4oAC8+LAAvPjQALz48AC8+QAAvPkQALz5MAC8+UAAvQDwAL0BEAC9ATAAvQFQAL0BgAC9AZAAvQGgAL0BsAC9AcAAvQHgAL0CAAC9AhAAvQIgAL0CQAC9AlAAvQoAAL0KIAC9ClAAvQpwAL0KoAC9CrAAvQrAAL0K0AC9CuAAvQsAAL0LIAC9CzAAvQtAAL0LYAC9C3AAvQ0AAL0NEAC9DSAAvQ1AAL0U8AC9FRAAvRUwAL0VUAC9FYAAvRWQAL0VoAC9FbAAvRXAAL0V4AC9FgAAvRYQAL0WIAC9FkAAvRZQAL0eAAC9HiAAvR5AAL0eYAC9HpAAvR6gAL0esAC9HsAAvR7QAL0e8AC9HxAAvR8gAL0fMAC9H1AAvR9gAL0nEAC9JzAAvSdQAL0ncAC9J6AAvSewAL0nwAC9J9AAvSfgAL0oAAC9KCAAvSgwAL0oQAC9KGAAvShwAL0wIAC9MEAAvTBgAL0wgAC9MLAAvTDAAL0w0AC9MOAAvTDwAL0xEAC9MTAAvTFAAL0xUAC9MXAAvTGAAL05MAC9OVAAvTlwAL05kAC9OcAAvTnQAL054AC9OfAAvToAAL06IAC9OkAAvTpQAL06YAC9OoAAvTqQAL0/IAC9QWAAvUPQAL1GEAC9RkAAvUZgAL1GgAC9RqAAvUbAAL1G4AC9RvAAvUcgAL1IsAC9SoAAvUqgAL1KwAC9SuAAvUsAAL1LIAC9S0AAvUtgAL1NMAC9TWAAvU2QAL1NwAC9TfAAvU4gAL1OUAC9ToAAvU6gAL1WUAC9VnAAvVaQAL1WsAC9VuAAvVbwAL1XAAC9VxAAvVcgAL1XQAC9V2AAvVdwAL1XgAC9V6AAvVewAL1fYAC9X4AAvV+gAL1fwAC9X/AAvWAAAL1gEAC9YCAAvWAwAL1gUAC9YHAAvWCAAL1gkAC9YLAAvWDAAL1ocAC9aJAAvWiwAL1o0AC9aQAAvWkQAL1pIAC9aTAAvWlAAL1pYAC9aYAAvWmQAL1poAC9acAAvWnQAL1xgAC9caAAvXHQAL1x8AC9ciAAvXIwAL1yQAC9clAAvXJgAL1ygAC9cqAAvXKwAL1ywAC9cuAAvXLwAL16oAC9esAAvXrgAL17AAC9ezAAvXtAAL17UAC9e2AAvXtwAL17kAC9e7AAvXvAAL170AC9e/AAvXwAAL2DsAC9g9AAvYPwAL2EEAC9hEAAvYRQAL2EYAC9hHAAvYSAAL2EoAC9hMAAvYTQAL2E4AC9hQAAvYUQAL2MwAC9jOAAvY0AAL2NIAC9jVAAvY1gAL2NcAC9jYAAvY2QAL2NsAC9jdAAvY3gAL2N8AC9jhAAvY4gAL2XUAC9mYAAvZuAAL2dgAC9naAAvZ3AAL2d4AC9ngAAvZ4wAL2eQAC9nlAAvZ6AAL2ekAC9nrAAvZ7AAL2e4AC9nxAAvZ8gAL2fMAC9n2AAvZ9wAL2gAAC9oZAAvaIgAL2iQAC9omAAvaLwAL2jIAC9o1AAvaNwAL2oAAC9qkAAvaywAL2u8AC9ryAAva9AAL2vYAC9r4AAva+gAL2vwAC9r9AAvbAAAL2xkAC9s6AAvbPAAL2z4AC9tAAAvbQgAL20QAC9tGAAvbSAAL20oAC9trAAvbbgAL23EAC9t0AAvbdwAL23oAC9t9AAvbgAAL24MAC9uFAAvcAAAL3AIAC9wEAAvcBgAL3AkAC9wKAAvcCwAL3AwAC9wNAAvcDwAL3BEAC9wSAAvcEwAL3BUAC9wWAAvckQAL3JMAC9yVAAvclwAL3JoAC9ybAAvcnAAL3J0AC9yeAAvcoAAL3KIAC9yjAAvcpAAL3KYAC9ynAAvdIgAL3SQAC90nAAvdKQAL3SwAC90tAAvdLgAL3S8AC90wAAvdMgAL3TQAC901AAvdNgAL3TgAC905AAvdUgAL3VMAC91UAAvdVgAL3dEAC93TAAvd1QAL3dcAC93aAAvd2wAL3dwAC93dAAvd3gAL3eAAC93iAAvd4wAL3eQAC93mAAvd5wAL3mIAC95kAAveZgAL3mgAC95rAAvebAAL3m0AC95uAAvebwAL3nEAC95zAAvedAAL3nUAC953AAveeAAL3vMAC971AAve9wAL3vkAC978AAve/QAL3v4AC97/AAvfAAAL3wIAC98EAAvfBQAL3wYAC98IAAvfCQAL34QAC9+GAAvfiAAL34oAC9+NAAvfjgAL348AC9+QAAvfkQAL35MAC9+VAAvflgAL35cAC9+ZAAvfmgAL4BUAC+AXAAvgGQAL4BsAC+AeAAvgHwAL4CAAC+AhAAvgIgAL4CQAC+AmAAvgJwAL4CgAC+AqAAvgKwAL4HQAC+CYAAvgvwAL4OMAC+DmAAvg6AAL4OoAC+DsAAvg7gAL4PAAC+DxAAvg9AAL4Q0AC+EqAAvhLAAL4S4AC+EwAAvhMgAL4TQAC+E2AAvhOAAL4VUAC+FYAAvhWwAL4V4AC+FhAAvhZAAL4WcAC+FqAAvhbAAL4ecAC+HpAAvh6wAL4e0AC+HwAAvh8QAL4fIAC+HzAAvh9AAL4fYAC+H4AAvh+QAL4foAC+H8AAvh/QAL4ngAC+J6AAvifAAL4n4AC+KBAAviggAL4oMAC+KEAAvihQAL4ocAC+KJAAviigAL4osAC+KNAAvijgAL4wkAC+MLAAvjDQAL4w8AC+MSAAvjEwAL4xQAC+MVAAvjFgAL4xgAC+MaAAvjGwAL4xwAC+MeAAvjHwAL45oAC+OcAAvjnwAL46EAC+OkAAvjpQAL46YAC+OnAAvjqAAL46oAC+OsAAvjrQAL464AC+OwAAvjsQAL5CwAC+QuAAvkMAAL5DIAC+Q1AAvkNgAL5DcAC+Q4AAvkOQAL5DsAC+Q9AAvkPgAL5D8AC+RBAAvkQgAL5L0AC+S/AAvkwQAL5MMAC+TGAAvkxwAL5MgAC+TJAAvkygAL5MwAC+TOAAvkzwAL5NAAC+TSAAvk0wAL5U4AC+VQAAvlUgAL5VQAC+VXAAvlWAAL5VkAC+VaAAvlWwAL5V0AC+VfAAvlYAAL5WEAC+VjAAvlZAAL5fcAC+YaAAvmOgAL5loAC+ZcAAvmXgAL5mAAC+ZiAAvmZQAL5mYAC+ZnAAvmagAL5msAC+ZtAAvmbgAL5nEAC+Z0AAvmdQAL5nYAC+Z5AAvmegAL5n8AC+aYAAvmoQAL5qMAC+amAAvmrwAL5rIAC+a1AAvmtwAL5wAAC+ckAAvnSwAL528AC+dyAAvndAAL53YAC+d4AAvnegAL53wAC+d9AAvngAAL55kAC+e6AAvnvAAL574AC+fAAAvnwgAL58QAC+fGAAvnyAAL58oAC+frAAvn7gAL5/EAC+f0AAvn9wAL5/oAC+f9AAvoAAAL6AMAC+gFAAvogAAL6IIAC+iEAAvohgAL6IkAC+iKAAvoiwAL6IwAC+iNAAvojwAL6JEAC+iSAAvokwAL6JUAC+iWAAvpEQAL6RMAC+kVAAvpFwAL6RoAC+kbAAvpHAAL6R0AC+keAAvpIAAL6SIAC+kjAAvpJAAL6SYAC+knAAvpogAL6aQAC+mnAAvpqQAL6awAC+mtAAvprgAL6a8AC+mwAAvpsgAL6bQAC+m1AAvptgAL6bgAC+m5AAvp0gAL6dMAC+nUAAvp1gAL6lEAC+pTAAvqVQAL6lcAC+paAAvqWwAL6lwAC+pdAAvqXgAL6mAAC+piAAvqYwAL6mQAC+pmAAvqZwAL6uIAC+rkAAvq5gAL6ugAC+rrAAvq7AAL6u0AC+ruAAvq7wAL6vEAC+rzAAvq9AAL6vUAC+r3AAvq+AAL63MAC+t1AAvrdwAL63kAC+t8AAvrfQAL634AC+t/AAvrgAAL64IAC+uEAAvrhQAL64YAC+uIAAvriQAL7AQAC+wGAAvsCAAL7AoAC+wNAAvsDgAL7A8AC+wQAAvsEQAL7BMAC+wVAAvsFgAL7BcAC+wZAAvsGgAL7JUAC+yXAAvsmQAL7JsAC+yeAAvsnwAL7KAAC+yhAAvsogAL7KQAC+ymAAvspwAL7KgAC+yqAAvsqwAL7PQAC+0YAAvtPwAL7WMAC+1mAAvtaQAL7WsAC+1tAAvtbwAL7XEAC+1yAAvtdQAL7Y4AC+2rAAvtrgAL7bEAC+20AAvttwAL7boAC+29AAvtwAAL7d0AC+3gAAvt4wAL7eYAC+3pAAvt7AAL7e8AC+3yAAvt9AAL7m8AC+5xAAvudAAL7nYAC+55AAvuegAL7nsAC+58AAvufQAL7n8AC+6CAAvugwAL7oQAC+6GAAvuhwAL7wIAC+8EAAvvBwAL7wkAC+8MAAvvDQAL7w4AC+8PAAvvEAAL7xIAC+8VAAvvFgAL7xcAC+8ZAAvvGgAL75UAC++XAAvvmgAL75wAC++fAAvvoAAL76EAC++iAAvvowAL76UAC++oAAvvqQAL76oAC++sAAvvrQAL8CgAC/AqAAvwLQAL8C8AC/AyAAvwMwAL8DQAC/A1AAvwNgAL8DgAC/A7AAvwPAAL8D0AC/A/AAvwQAAL8MMAC/DnAAvxCwAL8S4AC/FVAAvxdQAL8ZwAC/HDAAvx4wAL8gcAC/IrAAvyLQAL8jAAC/IyAAvyNAAL8jYAC/I5AAvyPAAL8j4AC/JAAAvyQwAL8kUAC/JHAAvySgAL8k0AC/JOAAvyUwAL8mwAC/JxAAvycwAL8ngAC/J7AAvyfQAL8sYAC/LqAAvzEQAL8zUAC/M4AAvzOgAL8zwAC/M+AAvzQAAL80IAC/NDAAvzRgAL818AC/OEAAvzhgAL84gAC/OKAAvzjAAL844AC/OQAAvzkgAL85QAC/OWAAvzuwAL874AC/PBAAvzxAAL88cAC/PKAAvzzQAL89AAC/PTAAvz1gAL89gAC/RTAAv0VQAL9FgAC/RaAAv0XQAL9F4AC/RfAAv0YAAL9GEAC/RjAAv0ZQAL9GYAC/RnAAv0aQAL9GoAC/R7AAv0fAAL9H4AC/T5AAv0+wAL9P0AC/T/AAv1AgAL9QMAC/UEAAv1BQAL9QYAC/UIAAv1CgAL9QsAC/UMAAv1DgAL9Q8AC/WKAAv1jAAL9Y8AC/WRAAv1lAAL9ZUAC/WWAAv1lwAL9ZgAC/WaAAv1nAAL9Z0AC/WeAAv1oAAL9aEAC/WyAAv1swAL9bUAC/YwAAv2MgAL9jQAC/Y2AAv2OQAL9joAC/Y7AAv2PAAL9j0AC/Y/AAv2QQAL9kIAC/ZDAAv2RQAL9kYAC/bBAAv2wwAL9sYAC/bIAAv2ywAL9swAC/bNAAv2zgAL9s8AC/bRAAv20wAL9tQAC/bVAAv21wAL9tgAC/bpAAv26gAL9uwAC/dnAAv3aQAL92sAC/dtAAv3cAAL93EAC/dyAAv3cwAL93QAC/d2AAv3eAAL93kAC/d6AAv3fAAL930AC/f4AAv3+gAL9/0AC/f/AAv4AgAL+AMAC/gEAAv4BQAL+AYAC/gIAAv4CgAL+AsAC/gMAAv4DgAL+A8AC/goAAv4KQAL+CoAC/gsAAv4pwAL+KkAC/irAAv4rQAL+LAAC/ixAAv4sgAL+LMAC/i0AAv4tgAL+LgAC/i5AAv4ugAL+LwAC/i9AAv5OAAL+ToAC/k9AAv5PwAL+UIAC/lDAAv5RAAL+UUAC/lGAAv5SAAL+UoAC/lLAAv5TAAL+U4AC/lPAAv5YgAL+XsAC/mgAAv5owAL+aYAC/mpAAv5rAAL+a8AC/myAAv5tQAL+bgAC/m7AAv54AAL+eMAC/nmAAv56QAL+ewAC/nvAAv58gAL+fUAC/n4AAv5+wAL+f0AC/oTAAv6SAAL+l4AC/qOAAv6rQAL+sEAC/rfAAv69QAL+4gAC/urAAv7ywAL++sAC/vtAAv77wAL+/EAC/vzAAv79gAL+/cAC/v4AAv7+wAL+/wAC/v+AAv7/wAL/AEAC/wEAAv8BQAL/AYAC/wJAAv8CgAL/A8AC/woAAv8MQAL/DMAC/w1AAv8PgAL/EEAC/xEAAv8RgAL/I8AC/yzAAv82gAL/P4AC/0BAAv9AwAL/QUAC/0HAAv9CQAL/QsAC/0MAAv9DwAL/SgAC/1JAAv9SwAL/U0AC/1PAAv9UQAL/VMAC/1VAAv9VwAL/VkAC/16AAv9fQAL/YAAC/2DAAv9hgAL/YkAC/2MAAv9jwAL/ZIAC/2UAAv+DwAL/hEAC/4TAAv+FQAL/hgAC/4ZAAv+GgAL/hsAC/4cAAv+HgAL/iAAC/4hAAv+IgAL/iQAC/4lAAv+oAAL/qIAC/6kAAv+pgAL/qkAC/6qAAv+qwAL/qwAC/6tAAv+rwAL/rEAC/6yAAv+swAL/rUAC/62AAv/MQAL/zMAC/82AAv/OAAL/zsAC/88AAv/PQAL/z4AC/8/AAv/QQAL/0MAC/9EAAv/RQAL/0cAC/9IAAv/YQAL/2IAC/9jAAv/ZQAL/+AAC//iAAv/5AAL/+YAC//pAAv/6gAL/+sAC//sAAv/7QAL/+8AC//xAAv/8gAL//MAC//1AAv/9gAMAHEADABzAAwAdQAMAHcADAB6AAwAewAMAHwADAB9AAwAfgAMAIAADACCAAwAgwAMAIQADACGAAwAhwAMAQIADAEEAAwBBgAMAQgADAELAAwBDAAMAQ0ADAEOAAwBDwAMAREADAETAAwBFAAMARUADAEXAAwBGAAMAZMADAGVAAwBlwAMAZkADAGcAAwBnQAMAZ4ADAGfAAwBoAAMAaIADAGkAAwBpQAMAaYADAGoAAwBqQAMAiQADAImAAwCKAAMAioADAItAAwCLgAMAi8ADAIwAAwCMQAMAjMADAI1AAwCNgAMAjcADAI5AAwCOgAMAoMADAKnAAwCzgAMAvIADAL1AAwC9wAMAvkADAL7AAwC/QAMAv8ADAMAAAwDAwAMAxwADAM5AAwDOwAMAz0ADAM/AAwDQQAMA0MADANFAAwDRwAMA2QADANnAAwDagAMA20ADANwAAwDcwAMA3YADAN5AAwDewAMA/YADAP4AAwD+gAMA/wADAP/AAwEAAAMBAEADAQCAAwEAwAMBAUADAQHAAwECAAMBAkADAQLAAwEDAAMBIcADASJAAwEiwAMBI0ADASQAAwEkQAMBJIADASTAAwElAAMBJYADASYAAwEmQAMBJoADAScAAwEnQAMBRgADAUaAAwFHAAMBR4ADAUhAAwFIgAMBSMADAUkAAwFJQAMBScADAUpAAwFKgAMBSsADAUtAAwFLgAMBakADAWrAAwFrQAMBa8ADAWyAAwFswAMBbQADAW1AAwFtgAMBbgADAW6AAwFuwAMBbwADAW+AAwFvwAMBjoADAY8AAwGPgAMBkAADAZDAAwGRAAMBkUADAZGAAwGRwAMBkkADAZLAAwGTAAMBk0ADAZPAAwGUAAMBssADAbNAAwGzwAMBtEADAbUAAwG1QAMBtYADAbXAAwG2AAMBtoADAbcAAwG3QAMBt4ADAbgAAwG4QAMB1wADAdeAAwHYAAMB2IADAdlAAwHZgAMB2cADAdoAAwHaQAMB2sADAdtAAwHbgAMB28ADAdxAAwHcgAMCAUADAgoAAwISAAMCGgADAhqAAwIbAAMCG4ADAhwAAwIcwAMCHQADAh1AAwIeAAMCHkADAh7AAwIfAAMCH4ADAiBAAwIggAMCIMADAiGAAwIhwAMCIwADAilAAwIrgAMCLAADAiyAAwIuwAMCL4ADAjBAAwIwwAMCQwADAkwAAwJVwAMCXsADAl+AAwJgAAMCYIADAmEAAwJhgAMCYgADAmJAAwJjAAMCaUADAnGAAwJyAAMCcoADAnMAAwJzgAMCdAADAnSAAwJ1AAMCdYADAn3AAwJ+gAMCf0ADAoAAAwKAwAMCgYADAoJAAwKDAAMCg8ADAoRAAwKjAAMCo4ADAqQAAwKkgAMCpUADAqWAAwKlwAMCpgADAqZAAwKmwAMCp0ADAqeAAwKnwAMCqEADAqiAAwLHQAMCx8ADAshAAwLIwAMCyYADAsnAAwLKAAMCykADAsqAAwLLAAMCy4ADAsvAAwLMAAMCzIADAszAAwLrgAMC7AADAuzAAwLtQAMC7gADAu5AAwLugAMC7sADAu8AAwLvgAMC8AADAvBAAwLwgAMC8QADAvFAAwL3gAMC98ADAvgAAwL4gAMDF0ADAxfAAwMYQAMDGMADAxmAAwMZwAMDGgADAxpAAwMagAMDGwADAxuAAwMbwAMDHAADAxyAAwMcwAMDO4ADAzwAAwM8gAMDPQADAz3AAwM+AAMDPkADAz6AAwM+wAMDP0ADAz/AAwNAAAMDQEADA0DAAwNBAAMDX8ADA2BAAwNgwAMDYUADA2IAAwNiQAMDYoADA2LAAwNjAAMDY4ADA2QAAwNkQAMDZIADA2UAAwNlQAMDhAADA4SAAwOFAAMDhYADA4ZAAwOGgAMDhsADA4cAAwOHQAMDh8ADA4hAAwOIgAMDiMADA4lAAwOJgAMDqEADA6jAAwOpQAMDqcADA6qAAwOqwAMDqwADA6tAAwOrgAMDrAADA6yAAwOswAMDrQADA62AAwOtwAMDwAADA8kAAwPSwAMD28ADA9yAAwPdAAMD3YADA94AAwPegAMD3wADA99AAwPgAAMD5kADA+2AAwPuAAMD7oADA+8AAwPvgAMD8AADA/CAAwPxAAMD+EADA/kAAwP5wAMD+oADA/tAAwP8AAMD/MADA/2AAwP+AAMEHMADBB1AAwQdwAMEHkADBB8AAwQfQAMEH4ADBB/AAwQgAAMEIIADBCEAAwQhQAMEIYADBCIAAwQiQAMEQQADBEGAAwRCAAMEQoADBENAAwRDgAMEQ8ADBEQAAwREQAMERMADBEVAAwRFgAMERcADBEZAAwRGgAMEZUADBGXAAwRmQAMEZsADBGeAAwRnwAMEaAADBGhAAwRogAMEaQADBGmAAwRpwAMEagADBGqAAwRqwAMEiYADBIoAAwSKgAMEiwADBIvAAwSMAAMEjEADBIyAAwSMwAMEjUADBI3AAwSOAAMEjkADBI7AAwSPAAMErcADBK5AAwSuwAMEr0ADBLAAAwSwQAMEsIADBLDAAwSxAAMEsYADBLIAAwSyQAMEsoADBLMAAwSzQAME0gADBNKAAwTTQAME08ADBNSAAwTUwAME1QADBNVAAwTVgAME1gADBNaAAwTWwAME1wADBNeAAwTXwAME24ADBPpAAwT6wAME+0ADBPvAAwT8gAME/MADBP0AAwT9QAME/YADBP4AAwT+gAME/sADBP8AAwT/gAME/8ADBSSAAwUtQAMFNUADBT1AAwU9wAMFPkADBT7AAwU/QAMFQAADBUBAAwVAgAMFQUADBUGAAwVCAAMFQkADBUMAAwVDwAMFRAADBURAAwVFAAMFRUADBUaAAwVMwAMFTwADBU+AAwVQQAMFUoADBVNAAwVUAAMFVIADBWbAAwVvwAMFeYADBYKAAwWDQAMFg8ADBYRAAwWEwAMFhUADBYXAAwWGAAMFhsADBY0AAwWVQAMFlcADBZZAAwWWwAMFl0ADBZfAAwWYQAMFmMADBZlAAwWhgAMFokADBaMAAwWjwAMFpIADBaVAAwWmAAMFpsADBaeAAwWoAAMFxsADBcdAAwXHwAMFyEADBckAAwXJQAMFyYADBcnAAwXKAAMFyoADBcsAAwXLQAMFy4ADBcwAAwXMQAMF6wADBeuAAwXsAAMF7IADBe1AAwXtgAMF7cADBe4AAwXuQAMF7sADBe9AAwXvgAMF78ADBfBAAwXwgAMGD0ADBg/AAwYQgAMGEQADBhHAAwYSAAMGEkADBhKAAwYSwAMGE0ADBhPAAwYUAAMGFEADBhTAAwYVAAMGG0ADBhuAAwYbwAMGHEADBjsAAwY7gAMGPAADBjyAAwY9QAMGPYADBj3AAwY+AAMGPkADBj7AAwY/QAMGP4ADBj/AAwZAQAMGQIADBl9AAwZfwAMGYEADBmDAAwZhgAMGYcADBmIAAwZiQAMGYoADBmMAAwZjgAMGY8ADBmQAAwZkgAMGZMADBoOAAwaEAAMGhIADBoUAAwaFwAMGhgADBoZAAwaGgAMGhsADBodAAwaHwAMGiAADBohAAwaIwAMGiQADBqfAAwaoQAMGqMADBqlAAwaqAAMGqkADBqqAAwaqwAMGqwADBquAAwasAAMGrEADBqyAAwatAAMGrUADBswAAwbMgAMGzQADBs2AAwbOQAMGzoADBs7AAwbPAAMGz0ADBs/AAwbQQAMG0IADBtDAAwbRQAMG0YADBuPAAwbswAMG9oADBv+AAwcAQAMHAQADBwGAAwcCAAMHAoADBwMAAwcDQAMHBAADBwpAAwcRgAMHEkADBxMAAwcTwAMHFIADBxVAAwcWAAMHFsADBx4AAwcewAMHH4ADByBAAwchAAMHIcADByKAAwcjQAMHI8ADB0KAAwdDAAMHQ8ADB0RAAwdFAAMHRUADB0WAAwdFwAMHRgADB0aAAwdHQAMHR4ADB0fAAwdIQAMHSIADB2dAAwdnwAMHaIADB2kAAwdpwAMHagADB2pAAwdqgAMHasADB2tAAwdsAAMHbEADB2yAAwdtAAMHbUADB4wAAweMgAMHjUADB43AAweOgAMHjsADB48AAwePQAMHj4ADB5AAAweQwAMHkQADB5FAAweRwAMHkgADB7DAAwexQAMHsgADB7KAAwezQAMHs4ADB7PAAwe0AAMHtEADB7TAAwe1gAMHtcADB7YAAwe2gAMHtsADB9WAAwfWAAMH1oADB9cAAwfXwAMH2AADB9hAAwfYgAMH2MADB9lAAwfaAAMH2kADB9qAAwfbAAMH20ADB/oAAwf6gAMH+wADB/uAAwf8QAMH/IADB/zAAwf9AAMH/UADB/3AAwf+gAMH/sADB/8AAwf/gAMH/8ADCB6AAwgfAAMIH8ADCCBAAwghAAMIIUADCCGAAwghwAMIIgADCCKAAwgjQAMII4ADCCPAAwgkQAMIJIADCElAAwhSAAMIWgADCGIAAwhigAMIYwADCGOAAwhkAAMIZMADCGUAAwhlQAMIZgADCGZAAwhmwAMIZwADCGeAAwhoQAMIaIADCGjAAwhpgAMIacADCGsAAwhxQAMIc4ADCHQAAwh0gAMIdsADCHeAAwh4QAMIeMADCIsAAwiUAAMIncADCKbAAwingAMIqAADCKiAAwipAAMIqYADCKoAAwiqQAMIqwADCLFAAwi5gAMIugADCLqAAwi7AAMIu4ADCLwAAwi8gAMIvQADCL2AAwjFwAMIxoADCMdAAwjIAAMIyMADCMmAAwjKQAMIywADCMvAAwjMQAMI6wADCOuAAwjsAAMI7IADCO1AAwjtgAMI7cADCO4AAwjuQAMI7sADCO9AAwjvgAMI78ADCPBAAwjwgAMJD0ADCQ/AAwkQQAMJEMADCRGAAwkRwAMJEgADCRJAAwkSgAMJEwADCROAAwkTwAMJFAADCRSAAwkUwAMJM4ADCTQAAwk0wAMJNUADCTYAAwk2QAMJNoADCTbAAwk3AAMJN4ADCTgAAwk4QAMJOIADCTkAAwk5QAMJP4ADCT/AAwlAAAMJQIADCV9AAwlfwAMJYEADCWDAAwlhgAMJYcADCWIAAwliQAMJYoADCWMAAwljgAMJY8ADCWQAAwlkgAMJZMADCYOAAwmEAAMJhIADCYUAAwmFwAMJhgADCYZAAwmGgAMJhsADCYdAAwmHwAMJiAADCYhAAwmIwAMJiQADCafAAwmoQAMJqMADCalAAwmqAAMJqkADCaqAAwmqwAMJqwADCauAAwmsAAMJrEADCayAAwmtAAMJrUADCcwAAwnMgAMJzQADCc2AAwnOQAMJzoADCc7AAwnPAAMJz0ADCc/AAwnQQAMJ0IADCdDAAwnRQAMJ0YADCfBAAwnwwAMJ8UADCfHAAwnygAMJ8sADCfMAAwnzQAMJ84ADCfQAAwn0gAMJ9MADCfUAAwn1gAMJ9cADCggAAwoRAAMKGsADCiPAAwokgAMKJQADCiWAAwomAAMKJoADCicAAw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EHwAMRCEADEQjAAxEJQAMRCcADEQpAAxEKwAMRC0ADEROAAxEUQAMRFQADERXAAxEWgAMRF0ADERgAAxEYwAMRGYADERoAAxE4wAMROUADETnAAxE6QAMROwADETtAAxE7gAMRO8ADETwAAxE8gAMRPQADET1AAxE9gAMRPgADET5AAxFdAAMRXYADEV4AAxFegAMRX0ADEV+AAxFfwAMRYAADEWBAAxFgwAMRYUADEWGAAxFhwAMRYkADEWKAAxGBQAMRgcADEYKAAxGDAAMRg8ADEYQAAxGEQAMRhIADEYTAAxGFQAMRhcADEYYAAxGGQAMRhsADEYcAAxGNQAMRjYADEY3AAxGOQAMRrQADEa2AAxGuAAMRroADEa9AAxGvgAMRr8ADEbAAAxGwQAMRsMADEbFAAxGxgAMRscADEbJAAxGygAMR0UADEdHAAxHSQAMR0sADEdOAAxHTwAMR1AADEdRAAxHUgAMR1QADEdWAAxHVwAMR1gADEdaAAxHWwAMR9YADEfYAAxH2gAMR9wADEffAAxH4AAMR+EADEfiAAxH4wAMR+UADEfnAAxH6AAMR+kADEfrAAxH7AAMSGcADEhpAAxIawAMSG0ADEhwAAxIcQAMSHIADEhzAAxIdAAMSHYADEh4AAxIeQAMSHoADEh8AAxIfQAMSPgADEj6AAxI/AAMSP4ADEkBAAxJAgAMSQMADEkEAAxJBQAMSQcADEkJAAxJCgAMSQsADEkNAAxJDgAMSVcADEl7AAxJogAMScYADEnJAAxJywAMSc0ADEnPAAxJ0QAMSdMADEnUAAxJ1wAMSfAADEoNAAxKDwAMShEADEoTAAxKFQAMShcADEoZAAxKGwAMSjgADEo7AAxKPgAMSkEADEpEAAxKRwAMSkoADEpNAAxKTwAMSsoADErMAAxKzgAMStAADErTAAxK1AAMStUADErWAAxK1wAMStkADErbAAxK3AAMSt0ADErfAAxK4AAMS1sADEtdAAxLXwAMS2EADEtkAAxLZQAMS2YADEtnAAxLaAAMS2oADEtsAAxLbQAMS24ADEtwAAxLcQAMS+wADEvuAAxL8AAMS/IADEv1AAxL9gAMS/cADEv4AAxL+QAMS/sADEv9AAxL/gAMS/8ADEwBAAxMAgAMTH0ADEx/AAxMgQAMTIMADEyGAAxMhwAMTIgADEyJAAxMigAMTIwADEyOAAxMjwAMTJAADEySAAxMkwAMTQ4ADE0QAAxNEgAMTRQADE0XAAxNGAAMTRkADE0aAAxNGwAMTR0ADE0fAAxNIAAMTSEADE0jAAxNJAAMTZ8ADE2hAAxNpAAMTaYADE2pAAxNqgAMTasADE2sAAxNrQAMTa8ADE2xAAxNsgAMTbMADE21AAxNtgAMTcUADE5AAAxOQgAMTkQADE5GAAxOSQAMTkoADE5LAAxOTAAMTk0ADE5PAAxOUQAMTlIADE5TAAxOVQAMTlYADE7pAAxPDAAMTywADE9MAAxPTgAMT1AADE9SAAxPVAAMT1cADE9YAAxPWQAMT1wADE9dAAxPXwAMT2AADE9iAAxPZQAMT2YADE9nAAxPagAMT2sADE9wAAxPiQAMT5IADE+UAAxPlgAMT58ADE+iAAxPpQAMT6cADE/wAAxQFAAMUDsADFBfAAxQYgAMUGQADFBmAAxQaAAMUGoADFBsAAxQbQAMUHAADFCJAAxQqgAMUKwADFCuAAxQsAAMULIADFC0AAxQtgAMULgADFC6AAxQ2wAMUN4ADFDhAAxQ5AAMUOcADFDqAAxQ7QAMUPAADFDzAAxQ9QAMUXAADFFyAAxRdAAMUXYADFF5AAxRegAMUXsADFF8AAxRfQAMUX8ADFGBAAxRggAMUYMADFGFAAxRhgAMUgEADFIDAAxSBQAMUgcADFIKAAxSCwAMUgwADFINAAxSDgAMUhAADFISAAxSEwAMUhQADFIWAAxSFwAMUpIADFKUAAxSlwAMUpkADFKcAAxSnQAMUp4ADFKfAAxSoAAMUqIADFKkAAxSpQAMUqYADFKoAAxSqQAMUsIADFLDAAxSxAAMUsYADFNBAAxTQwAMU0UADFNHAAxTSgAMU0sADFNMAAxTTQAMU04ADFNQAAxTUgAMU1MADFNUAAxTVgAMU1cADFPSAAxT1AAMU9YADFPYAAxT2wAMU9wADFPdAAxT3gAMU98ADFPhAAxT4wAMU+QADFPlAAxT5wAMU+gADFRjAAxUZQAMVGcADFRpAAxUbAAMVG0ADFRuAAxUbwAMVHAADFRyAAxUdAAMVHUADFR2AAxUeAAMVHkADFT0AAxU9gAMVPgADFT6AAxU/QAMVP4ADFT/AAxVAAAMVQEADFUDAAxVBQAMVQYADFUHAAxVCQAMVQoADFWFAAxVhwAMVYkADFWLAAxVjgAMVY8ADFWQAAxVkQAMVZIADFWUAAxVlgAMVZcADFWYAAxVmgAMVZsADFXkAAxWCAAMVi8ADFZTAAxWVgAMVlgADFZaAAxWXAAMVl4ADFZgAAxWYQAMVmQADFZ9AAxWmgAMVpwADFaeAAxWoAAMVqIADFakAAxWpgAMVqgADFbFAAxWyAAMVssADFbOAAxW0QAMVtQADFbXAAxW2gAMVtwADFdXAAxXWQAMV1sADFddAAxXYAAMV2EADFdiAAxXYwAMV2QADFdmAAxXaAAMV2kADFdqAAxXbAAMV20ADFfoAAxX6gAMV+wADFfuAAxX8QAMV/IADFfzAAxX9AAMV/UADFf3AAxX+QAMV/oADFf7AAxX/QAMV/4ADFh5AAxYewAMWH0ADFh/AAxYggAMWIMADFiEAAxYhQAMWIYADFiIAAxYigAMWIsADFiMAAxYjgAMWI8ADFkKAAxZDAAMWQ4ADFkQAAxZEwAMWRQADFkVAAxZFgAMWRcADFkZAAxZGwAMWRwADFkdAAxZHwAMWSAADFmbAAxZnQAMWZ8ADFmhAAxZpAAMWaUADFmmAAxZpwAMWagADFmqAAxZrAAMWa0ADFmuAAxZsAAMWbEADFosAAxaLgAMWjEADFozAAxaNgAMWjcADFo4AAxaOQAMWjoADFo8AAxaPgAMWj8ADFpAAAxaQgAMWkMADFpiAAxa3QAMWt8ADFrhAAxa4wAMWuYADFrnAAxa6AAMWukADFrqAAxa7AAMWu4ADFrvAAxa8AAMWvIADFrzAAxbhgAMW6kADFvJAAxb6QAMW+sADFvtAAxb7wAMW/EADFv0AAxb9QAMW/YADFv5AAxb+gAMW/wADFv9AAxcAAAMXAMADFwEAAxcBQAMXAgADFwJAAxcDgAMXCcADFwwAAxcMgAMXDUADFw+AAxcQQAMXEQADFxGAAxcjwAMXLMADFzaAAxc/gAMXQEADF0DAAxdBQAMXQcADF0JAAxdCwAMXQwADF0PAAxdKAAMXUkADF1LAAxdTQAMXU8ADF1RAAxdUwAMXVUADF1XAAxdWQAMXXoADF19AAxdgAAMXYMADF2GAAxdiQAMXYwADF2PAAxdkgAMXZQADF4PAAxeEQAMXhMADF4VAAxeGAAMXhkADF4aAAxeGwAMXhwADF4eAAxeIAAMXiEADF4iAAxeJAAMXiUADF6gAAxeogAMXqQADF6mAAxeqQAMXqoADF6rAAxerAAMXq0ADF6vAAxesQAMXrIADF6zAAxetQAMXrYADF8xAAxfMwAMXzYADF84AAxfOwAMXzwADF89AAxfPgAMXz8ADF9BAAxfQwAMX0QADF9FAAxfRwAMX0gADF9hAAxfYgAMX2MADF9lAAxf4AAMX+IADF/kAAxf5gAMX+kADF/qAAxf6wAMX+wADF/tAAxf7wAMX/EADF/yAAxf8wAMX/UADF/2AAxgcQAMYHMADGB1AAxgdwAMYHoADGB7AAxgfAAMYH0ADGB+AAxggAAMYIIADGCDAAxghAAMYIYADGCHAAxhAgAMYQQADGEGAAxhCAAMYQsADGEMAAxhDQAMYQ4ADGEPAAxhEQAMYRMADGEUAAxhFQAMYRcADGEYAAxhkwAMYZUADGGXAAxhmQAMYZwADGGdAAxhngAMYZ8ADGGgAAxhogAMYaQADGGlAAxhpgAMYagADGGpAAxiJAAMYiYADGIoAAxiKgAMYi0ADGIuAAxiLwAMYjAADGIxAAxiMwAMYjUADGI2AAxiNwAMYjkADGI6AAxigwAMYqcADGLOAAxi8gAMYvUADGL4AAxi+gAMYvwADGL+AAxjAAAMYwEADGMEAAxjHQAMYzoADGM9AAxjQAAMY0MADGNGAAxjSQAMY0wADGNPAAxjbAAMY28ADGNyAAxjdQAMY3gADGN7AAxjfgAMY4EADGODAAxj/gAMZAAADGQDAAxkBQAMZAgADGQJAAxkCgAMZAsADGQMAAxkDgAMZBEADGQSAAxkEwAMZBUADGQWAAxkkQAMZJMADGSWAAxkmAAMZJsADGScAAxknQAMZJ4ADGSfAAxkoQAMZKQADGSlAAxkpgAMZKgADGSpAAxlJAAMZSYADGUpAAxlKwAMZS4ADGUvAAxlMAAMZTEADGUyAAxlNAAMZTcADGU4AAxlOQAMZTsADGU8AAxltwAMZbkADGW8AAxlvgAMZcEADGXCAAxlwwAMZcQADGXFAAxlxwAMZcoADGXLAAxlzAAMZc4ADGXPAAxmSgAMZkwADGZOAAxmUAAMZlMADGZUAAxmVQAMZlYADGZXAAxmWQAMZlwADGZdAAxmXgAMZmAADGZhAAxm3AAMZt4ADGbgAAxm4gAMZuUADGbmAAxm5wAMZugADGbpAAxm6wAMZu4ADGbvAAxm8AAMZvIADGbzAAxnbgAMZ3AADGdzAAxndQAMZ3gADGd5AAxnegAMZ3sADGd8AAxnfgAMZ4EADGeCAAxngwAMZ4UADGeGAAxnlwAMZ5gADGeaAAxoFQAMaBcADGgZAAxoGwAMaB4ADGgfAAxoIAAMaCEADGgiAAxoJAAMaCcADGgoAAxoKQAMaCsADGgsAAxopwAMaKkADGirAAxorQAMaLAADGixAAxosgAMaLMADGi0AAxotgAMaLkADGi6AAxouwAMaL0ADGi+AAxpOQAMaTsADGk+AAxpQAAMaUMADGlEAAxpRQAMaUYADGlHAAxpSQAMaUwADGlNAAxpTgAMaVAADGlRAAxp5AAMagcADGonAAxqRwAMakkADGpLAAxqTQAMak8ADGpSAAxqUwAMalQADGpXAAxqWAAMaloADGpbAAxqXgAMamEADGpiAAxqYwAMamYADGpnAAxqbAAMaoUADGqOAAxqkAAMapMADGqcAAxqnwAMaqIADGqkAAxq7QAMaxEADGs4AAxrXAAMa18ADGthAAxrYwAMa2UADGtnAAxraQAMa2oADGttAAxrhgAMa6cADGupAAxrqwAMa60ADGuvAAxrsQAMa7MADGu1AAxrtwAMa9gADGvbAAxr3gAMa+EADGvkAAxr5wAMa+oADGvtAAxr8AAMa/IADGxtAAxsbwAMbHEADGxzAAxsdgAMbHcADGx4AAxseQAMbHoADGx8AAxsfgAMbH8ADGyAAAxsggAMbIMADGz+AAxtAAAMbQIADG0EAAxtBwAMbQgADG0JAAxtCgAMbQsADG0NAAxtDwAMbRAADG0RAAxtEwAMbRQADG2PAAxtkQAMbZQADG2WAAxtmQAMbZoADG2bAAxtnAAMbZ0ADG2fAAxtoQAMbaIADG2jAAxtpQAMbaYADG2/AAxtwAAMbcEADG3DAAxuPgAMbkAADG5CAAxuRAAMbkcADG5IAAxuSQAMbkoADG5LAAxuTQAMbk8ADG5QAAxuUQAMblMADG5UAAxuzwAMbtEADG7TAAxu1QAMbtgADG7ZAAxu2gAMbtsADG7cAAxu3gAMbuAADG7hAAxu4gAMbuQADG7lAAxvYAAMb2IADG9kAAxvZgAMb2kADG9qAAxvawAMb2wADG9tAAxvbwAMb3EADG9yAAxvcwAMb3UADG92AAxv8QAMb/MADG/1AAxv9wAMb/oADG/7AAxv/AAMb/0ADG/+AAxwAAAMcAIADHADAAxwBAAMcAYADHAHAAxwggAMcIQADHCGAAxwiAAMcIsADHCMAAxwjQAMcI4ADHCPAAxwkQAMcJMADHCUAAxwlQAMcJcADHCYAAxw4QAMcQUADHEsAAxxUAAMcVMADHFWAAxxWAAMcVoADHFcAAxxXgAMcV8ADHFiAAxxewAMcZgADHGbAAxxngAMcaEADHGkAAxxpwAMcaoADHGtAAxxygAMcc0ADHHQAAxx0wAMcdYADHHZAAxx3AAMcd8ADHHhAAxyXAAMcl4ADHJhAAxyYwAMcmYADHJnAAxyaAAMcmkADHJqAAxybAAMcm8ADHJwAAxycQAMcnMADHJ0AAxy7wAMcvEADHL0AAxy9gAMcvkADHL6AAxy+wAMcvwADHL9AAxy/wAMcwIADHMDAAxzBAAMcwYADHMHAAxzggAMc4QADHOHAAxziQAMc4wADHONAAxzjgAMc48ADHOQAAxzkgAMc5UADHOWAAxzlwAMc5kADHOaAAx0FQAMdBcADHQaAAx0HAAMdB8ADHQgAAx0IQAMdCIADHQjAAx0JQAMdCgADHQpAAx0KgAMdCwADHQtAAx0sAAMdNQADHT4AAx1GwAMdUIADHViAAx1iQAMdbAADHXQAAx19AAMdhgADHYaAAx2HQAMdh8ADHYhAAx2IwAMdiYADHYpAAx2KwAMdi0ADHYwAAx2MgAMdjQADHY3AAx2OgAMdjsADHZEAAx2XQAMdmIADHZkAAx2aQAMdmwADHZuAAx2twAMdtsADHcCAAx3JgAMdykADHcrAAx3LQAMdy8ADHcxAAx3MwAMdzQADHc3AAx3UAAMd3UADHd3AAx3eQAMd3sADHd9AAx3fwAMd4EADHeDAAx3hQAMd4cADHesAAx3rwAMd7IADHe1AAx3uAAMd7sADHe+AAx3wQAMd8QADHfHAAx3yQAMeEQADHhGAAx4SQAMeEsADHhOAAx4TwAMeFAADHhRAAx4UgAMeFQADHhWAAx4VwAMeFgADHhaAAx4WwAMeGwADHhtAAx4bwAMeOoADHjsAAx47wAMePEADHj0AAx49QAMePYADHj3AAx4+AAMePoADHj8AAx4/QAMeP4ADHkAAAx5AQAMeTAADHmrAAx5rQAMebAADHmyAAx5tQAMebYADHm3AAx5uAAMebkADHm7AAx5vQAMeb4ADHm/AAx5wQAMecIADHnTAAx51AAMedYADHpRAAx6UwAMelUADHpXAAx6WgAMelsADHpcAAx6XQAMel4ADHpgAAx6YgAMemMADHpkAAx6ZgAMemcADHriAAx65AAMeucADHrpAAx67AAMeu0ADHruAAx67wAMevAADHryAAx69AAMevUADHr2AAx6+AAMevkADHsKAAx7CwAMew0ADHuIAAx7igAMe4wADHuOAAx7kQAMe5IADHuTAAx7lAAMe5UADHuXAAx7mQAMe5oADHubAAx7nQAMe54ADHwZAAx8GwAMfB4ADHwgAAx8IwAMfCQADHwlAAx8JgAMfCcADHwpAAx8KwAMfCwADHwtAAx8LwAMfDAADHxJAAx8SgAMfEsADHxNAAx8yAAMfMoADHzMAAx8zgAMfNEADHzSAAx80wAMfNQADHzVAAx81wAMfNkADHzaAAx82wAMfN0ADHzeAAx9WQAMfVsADH1eAAx9YAAMfWMADH1kAAx9ZQAMfWYADH1nAAx9aQAMfWsADH1sAAx9bQAMfW8ADH1wAAx9pQAMfb4ADH3PAAx90gAMfdUADH3YAAx92wAMfewADH3vAAx98gAMffUADH34AAx9+gAMfg8ADH4nAAx+PQAMflAADH7jAAx/BgAMfyYADH9GAAx/SAAMf0oADH9MAAx/TgAMf1EADH9SAAx/UwAMf1YADH9XAAx/WQAMf1oADH9cAAx/XwAMf2AADH9hAAx/ZAAMf2UADH9qAAx/gwAMf4wADH+OAAx/kAAMf5kADH+cAAx/nwAMf6EADH/qAAyADgAMgDUADIBZAAyAXAAMgF4ADIBgAAyAYgAMgGQADIBmAAyAZwAMgGoADICDAAyApAAMgKYADICoAAyAqgAMgKwADICuAAyAsAAMgLIADIC0AAyA1QAMgNgADIDbAAyA3gAMgOEADIDkAAyA5wAMgOoADIDtAAyA7wAMgWoADIFsAAyBbgAMgXAADIFzAAyBdAAMgXUADIF2AAyBdwAMgXkADIF7AAyBfAAMgX0ADIF/AAyBgAAMgfsADIH9AAyB/wAMggEADIIEAAyCBQAMggYADIIHAAyCCAAMggoADIIMAAyCDQAMgg4ADIIQAAyCEQAMgowADIKOAAyCkQAMgpMADIKWAAyClwAMgpgADIKZAAyCmgAMgpwADIKeAAyCnwAMgqAADIKiAAyCowAMgrwADIK9AAyCvgAMgsAADIM7AAyDPQAMgz8ADINBAAyDRAAMg0UADINGAAyDRwAMg0gADINKAAyDTAAMg00ADINOAAyDUAAMg1EADIPMAAyDzgAMg9AADIPSAAyD1QAMg9YADIPXAAyD2AAMg9kADIPbAAyD3QAMg94ADIPfAAyD4QAMg+IADIRdAAyEXwAMhGEADIRjAAyEZgAMhGcADIRoAAyEaQAMhGoADIRsAAyEbgAMhG8ADIRwAAyEcgAMhHMADITuAAyE8AAMhPIADIT0AAyE9wAMhPgADIT5AAyE+gAMhPsADIT9AAyE/wAMhQAADIUBAAyFAwAMhQQADIV/AAyFgQAMhYMADIWFAAyFiAAMhYkADIWKAAyFiwAMhYwADIWOAAyFkAAMhZEADIWSAAyFlAAMhZUADIXeAAyGAgAMhikADIZNAAyGUAAMhlIADIZUAAyGVgAMhlgADIZaAAyGWwAMhl4ADIZ3AAyGlAAMhpYADIaYAAyGmgAMhpwADIaeAAyGoAAMhqIADIa/AAyGwgAMhsUADIbIAAyGywAMhs4ADIbRAAyG1AAMhtYADIdRAAyHUwAMh1UADIdXAAyHWgAMh1sADIdcAAyHXQAMh14ADIdgAAyHYgAMh2MADIdkAAyHZgAMh2cADIfiAAyH5AAMh+YADIfoAAyH6wAMh+wADIftAAyH7gAMh+8ADIfxAAyH8wAMh/QADIf1AAyH9wAMh/gADIhzAAyIdQAMiHcADIh5AAyIfAAMiH0ADIh+AAyIfwAMiIAADIiCAAyIhAAMiIUADIiGAAyIiAAMiIkADIkEAAyJBgAMiQgADIkKAAyJDQAMiQ4ADIkPAAyJEAAMiREADIkTAAyJFQAMiRYADIkXAAyJGQAMiRoADImVAAyJlwAMiZkADImbAAyJngAMiZ8ADImgAAyJoQAMiaIADImkAAyJpgAMiacADImoAAyJqgAMiasADIomAAyKKAAMiisADIotAAyKMAAMijEADIoyAAyKMwAMijQADIo2AAyKOAAMijkADIo6AAyKPAAMij0ADIpMAAyKxwAMiskADIrLAAyKzQAMitAADIrRAAyK0gAMitMADIrUAAyK1gAMitgADIrZAAyK2gAMitwADIrdAAyLcAAMi5MADIuzAAyL0wAMi9UADIvXAAyL2QAMi9sADIveAAyL3wAMi+AADIvjAAyL5AAMi+YADIvnAAyL6QAMi+wADIvtAAyL7gAMi/EADIvyAAyL9wAMjBAADIwZAAyMGwAMjB0ADIwmAAyMKQAMjCwADIwuAAyMdwAMjJsADIzCAAyM5gAMjOkADIzrAAyM7QAMjO8ADIzxAAyM8wAMjPQADIz3AAyNEAAMjTEADI0zAAyNNQAMjTcADI05AAyNOwAMjT0ADI0/AAyNQQAMjWIADI1lAAyNaAAMjWsADI1uAAyNcQAMjXQADI13AAyNegAMjXwADI33AAyN+QAMjfsADI39AAyOAAAMjgEADI4CAAyOAwAMjgQADI4GAAyOCAAMjgkADI4KAAyODAAMjg0ADI6IAAyOigAMjowADI6OAAyOkQAMjpIADI6TAAyOlAAMjpUADI6XAAyOmQAMjpoADI6bAAyOnQAMjp4ADI8ZAAyPGwAMjx4ADI8gAAyPIwAMjyQADI8lAAyPJgAMjycADI8pAAyPKwAMjywADI8tAAyPLwAMjzAADI9JAAyPSgAMj0sADI9NAAyPyAAMj8oADI/MAAyPzgAMj9EADI/SAAyP0wAMj9QADI/VAAyP1wAMj9kADI/aAAyP2wAMj90ADI/eAAyQWQAMkFsADJBdAAyQXwAMkGIADJBjAAyQZAAMkGUADJBmAAyQaAAMkGoADJBrAAyQbAAMkG4ADJBvAAyQ6gAMkOwADJDuAAyQ8AAMkPMADJD0AAyQ9QAMkPYADJD3AAyQ+QAMkPsADJD8AAyQ/QAMkP8ADJEAAAyRewAMkX0ADJF/AAyRgQAMkYQADJGFAAyRhgAMkYcADJGIAAyRigAMkYwADJGNAAyRjgAMkZAADJGRAAySDAAMkg4ADJIQAAySEgAMkhUADJIWAAySFwAMkhgADJIZAAySGwAMkh0ADJIeAAySHwAMkiEADJIiAAySawAMko8ADJK2AAyS2gAMkt0ADJLfAAyS4QAMkuMADJLlAAyS5wAMkugADJLrAAyTBAAMkyEADJMjAAyTJQAMkycADJMpAAyTKwAMky0ADJMvAAyTTAAMk08ADJNSAAyTVQAMk1gADJNbAAyTXgAMk2EADJNjAAyT3gAMk+AADJPiAAyT5AAMk+cADJPoAAyT6QAMk+oADJPrAAyT7QAMk+8ADJPwAAyT8QAMk/MADJP0AAyUbwAMlHEADJRzAAyUdQAMlHgADJR5AAyUegAMlHsADJR8AAyUfgAMlIAADJSBAAyUggAMlIQADJSFAAyVAAAMlQIADJUEAAyVBgAMlQkADJUKAAyVCwAMlQwADJUNAAyVDwAMlREADJUSAAyVEwAMlRUADJUWAAyVkQAMlZMADJWVAAyVlwAMlZoADJWbAAyVnAAMlZ0ADJWeAAyVoAAMlaIADJWjAAyVpAAMlaYADJWnAAyWIgAMliQADJYmAAyWKAAMlisADJYsAAyWLQAMli4ADJYvAAyWMQAMljMADJY0AAyWNQAMljcADJY4AAyWswAMlrUADJa4AAyWugAMlr0ADJa+AAyWvwAMlsAADJbBAAyWwwAMlsUADJbGAAyWxwAMlskADJbKAAyW6QAMl2QADJdmAAyXaAAMl2oADJdtAAyXbgAMl28ADJdwAAyXcQAMl3MADJd1AAyXdgAMl3cADJd5AAyXegAMmA0ADJgwAAyYUAAMmHAADJhyAAyYdAAMmHYADJh4AAyYewAMmHwADJh9AAyYgAAMmIEADJiDAAyYhAAMmIYADJiJAAyYigAMmIsADJiOAAyYjwAMmJQADJitAAyYtgAMmLgADJi6AAyYwwAMmMYADJjJAAyYywAMmRQADJk4AAyZXwAMmYMADJmGAAyZiAAMmYoADJmMAAyZjgAMmZAADJmRAAyZlAAMma0ADJnOAAyZ0AAMmdIADJnUAAyZ1gAMmdgADJnaAAyZ3AAMmd4ADJn/AAyaAgAMmgUADJoIAAyaCwAMmg4ADJoRAAyaFAAMmhcADJoZAAyalAAMmpYADJqYAAyamgAMmp0ADJqeAAyanwAMmqAADJqhAAyaowAMmqUADJqmAAyapwAMmqkADJqqAAybJQAMmycADJspAAybKwAMmy4ADJsvAAybMAAMmzEADJsyAAybNAAMmzYADJs3AAybOAAMmzoADJs7AAybtgAMm7gADJu7AAybvQAMm8AADJvBAAybwgAMm8MADJvEAAybxgAMm8gADJvJAAybygAMm8wADJvNAAyb5gAMm+cADJvoAAyb6gAMnGUADJxnAAycaQAMnGsADJxuAAycbwAMnHAADJxxAAyccgAMnHQADJx2AAycdwAMnHgADJx6AAycewAMnPYADJz4AAyc+gAMnPwADJz/AAydAAAMnQEADJ0CAAydAwAMnQUADJ0HAAydCAAMnQkADJ0LAAydDAAMnYcADJ2JAAydiwAMnY0ADJ2QAAydkQAMnZIADJ2TAAydlAAMnZYADJ2YAAydmQAMnZoADJ2cAAydnQAMnhgADJ4aAAyeHAAMnh4ADJ4hAAyeIgAMniMADJ4kAAyeJQAMnicADJ4pAAyeKgAMnisADJ4tAAyeLgAMnqkADJ6rAAyerQAMnq8ADJ6yAAyeswAMnrQADJ61AAyetgAMnrgADJ66AAyeuwAMnrwADJ6+AAyevwAMnwgADJ8sAAyfUwAMn3cADJ96AAyffAAMn34ADJ+AAAyfggAMn4QADJ+FAAyfiAAMn6EADJ++AAyfwAAMn8IADJ/EAAyfxgAMn8gADJ/KAAyfzAAMn+kADJ/sAAyf7wAMn/IADJ/1AAyf+AAMn/sADJ/+AAygAAAMoHsADKB9AAygfwAMoIEADKCEAAyghQAMoIYADKCHAAygiAAMoIoADKCMAAygjQAMoI4ADKCQAAygkQAMoQwADKEOAAyhEAAMoRIADKEVAAyhFgAMoRcADKEYAAyhGQAMoRsADKEdAAyhHgAMoR8ADKEhAAyhIgAMoZ0ADKGfAAyhoQAMoaMADKGmAAyhpwAMoagADKGpAAyhqgAMoawADKGuAAyhrwAMobAADKGyAAyhswAMoi4ADKIwAAyiMgAMojQADKI3AAyiOAAMojkADKI6AAyiOwAMoj0ADKI/AAyiQAAMokEADKJDAAyiRAAMor8ADKLBAAyiwwAMosUADKLIAAyiyQAMosoADKLLAAyizAAMos4ADKLQAAyi0QAMotIADKLUAAyi1QAMo1AADKNSAAyjVQAMo1cADKNaAAyjWwAMo1wADKNdAAyjXgAMo2AADKNiAAyjYwAMo2QADKNmAAyjZwAMo4YADKQBAAykAwAMpAUADKQHAAykCgAMpAsADKQMAAykDQAMpA4ADKQQAAykEgAMpBMADKQUAAykFgAMpBcADKSqAAykzQAMpO0ADKUNAAylDwAMpREADKUTAAylFQAMpRgADKUZAAylGgAMpR0ADKUeAAylIAAMpSEADKUkAAylJwAMpSgADKUpAAylLAAMpS0ADKUyAAylSwAMpVQADKVWAAylWQAMpWIADKVlAAylaAAMpWoADKWzAAyl1wAMpf4ADKYiAAymJQAMpicADKYpAAymKwAMpi0ADKYvAAymMAAMpjMADKZMAAymbQAMpm8ADKZxAAymcwAMpnUADKZ3AAymeQAMpnsADKZ9AAymngAMpqEADKakAAympwAMpqoADKatAAymsAAMprMADKa2AAymuAAMpzMADKc1AAynNwAMpzkADKc8AAynPQAMpz4ADKc/AAynQAAMp0IADKdEAAynRQAMp0YADKdIAAynSQAMp8QADKfGAAynyAAMp8oADKfNAAynzgAMp88ADKfQAAyn0QAMp9MADKfVAAyn1gAMp9cADKfZAAyn2gAMqFUADKhXAAyoWgAMqFwADKhfAAyoYAAMqGEADKhiAAyoYwAMqGUADKhnAAyoaAAMqGkADKhrAAyobAAMqIUADKiGAAyohwAMqIkADKkEAAypBgAMqQgADKkKAAypDQAMqQ4ADKkPAAypEAAMqREADKkTAAypFQAMqRYADKkXAAypGQAMqRoADKmVAAyplwAMqZkADKmbAAypngAMqZ8ADKmgAAypoQAMqaIADKmkAAyppgAMqacADKmoAAypqgAMqasADKomAAyqKAAMqioADKosAAyqLwAMqjAADKoxAAyqMgAMqjMADKo1AAyqNwAMqjgADKo5AAyqOwAMqjwADKq3AAyquQAMqrsADKq9AAyqwAAMqsEADKrCAAyqwwAMqsQADKrGAAyqyAAMqskADKrKAAyqzAAMqs0ADKtIAAyrSgAMq0wADKtOAAyrUQAMq1IADKtTAAyrVAAMq1UADKtXAAyrWQAMq1oADKtbAAyrXQAMq14ADKunAAyrywAMq/IADKwWAAysGQAMrBwADKweAAysIAAMrCIADKwkAAysJQAMrCgADKxBAAysXgAMrGEADKxkAAysZwAMrGoADKxtAAyscAAMrHMADKyQAAyskwAMrJYADKyZAAysnAAMrJ8ADKyiAAyspQAMrKcADK0iAAytJAAMrScADK0pAAytLAAMrS0ADK0uAAytLwAMrTAADK0yAAytNQAMrTYADK03AAytOQAMrToADK21AAyttwAMrboADK28AAytvwAMrcAADK3BAAytwgAMrcMADK3FAAytyAAMrckADK3KAAytzAAMrc0ADK5IAAyuSgAMrk0ADK5PAAyuUgAMrlMADK5UAAyuVQAMrlYADK5YAAyuWwAMrlwADK5dAAyuXwAMrmAADK7bAAyu3QAMruAADK7iAAyu5QAMruYADK7nAAyu6AAMrukADK7rAAyu7gAMru8ADK7wAAyu8gAMrvMADK9uAAyvcAAMr3IADK90AAyvdwAMr3gADK95AAyvegAMr3sADK99AAyvgAAMr4EADK+CAAyvhAAMr4UADLAAAAywAgAMsAQADLAGAAywCQAMsAoADLALAAywDAAMsA0ADLAPAAywEgAMsBMADLAUAAywFgAMsBcADLCSAAywlAAMsJcADLCZAAywnAAMsJ0ADLCeAAywnwAMsKAADLCiAAywpQAMsKYADLCnAAywqQAMsKoADLC7AAywvAAMsL4ADLE5AAyxOwAMsT0ADLE/AAyxQgAMsUMADLFEAAyxRQAMsUYADLFIAAyxSwAMsUwADLFNAAyxTwAMsVAADLHLAAyxzQAMsc8ADLHRAAyx1AAMsdUADLHWAAyx1wAMsdgADLHaAAyx3QAMsd4ADLHfAAyx4QAMseIADLJdAAyyXwAMsmIADLJkAAyyZwAMsmgADLJpAAyyagAMsmsADLJtAAyycAAMsnEADLJyAAyydAAMsnUADLMIAAyzKwAMs0sADLNrAAyzbQAMs28ADLNxAAyzcwAMs3YADLN3AAyzeAAMs3sADLN8AAyzfgAMs38ADLOBAAyzhAAMs4UADLOGAAyziQAMs4oADLOPAAyzqAAMs7EADLOzAAyztQAMs74ADLPBAAyzxAAMs8YADLQPAAy0MwAMtFoADLR+AAy0gQAMtIMADLSFAAy0hwAMtIkADLSLAAy0jAAMtI8ADLSoAAy0yQAMtMsADLTNAAy0zwAMtNEADLTTAAy01QAMtNcADLTZAAy0+gAMtP0ADLUAAAy1AwAMtQYADLUJAAy1DAAMtQ8ADLUSAAy1FAAMtY8ADLWRAAy1kwAMtZUADLWYAAy1mQAMtZoADLWbAAy1nAAMtZ4ADLWgAAy1oQAMtaIADLWkAAy1pQAMtiAADLYiAAy2JAAMtiYADLYpAAy2KgAMtisADLYsAAy2LQAMti8ADLYxAAy2MgAMtjMADLY1AAy2NgAMtrEADLazAAy2tgAMtrgADLa7AAy2vAAMtr0ADLa+AAy2vwAMtsEADLbDAAy2xAAMtsUADLbHAAy2yAAMtuEADLbiAAy24wAMtuUADLdgAAy3YgAMt2QADLdmAAy3aQAMt2oADLdrAAy3bAAMt20ADLdvAAy3cQAMt3IADLdzAAy3dQAMt3YADLfxAAy38wAMt/UADLf3AAy3+gAMt/sADLf8AAy3/QAMt/4ADLgAAAy4AgAMuAMADLgEAAy4BgAMuAcADLiCAAy4hAAMuIYADLiIAAy4iwAMuIwADLiNAAy4jgAMuI8ADLiRAAy4kwAMuJQADLiVAAy4lwAMuJgADLkTAAy5FQAMuRcADLkZAAy5HAAMuR0ADLkeAAy5HwAMuSAADLkiAAy5JAAMuSUADLkmAAy5KAAMuSkADLmkAAy5pgAMuagADLmqAAy5rQAMua4ADLmvAAy5sAAMubEADLmzAAy5tQAMubYADLm3AAy5uQAMuboADLoDAAy6JwAMuk4ADLpyAAy6dQAMuncADLp5AAy6ewAMun0ADLp/AAy6gAAMuoMADLqcAAy6uQAMursADLq9AAy6vwAMusEADLrDAAy6xQAMuscADLrkAAy65wAMuuoADLrtAAy68AAMuvMADLr2AAy6+QAMuvsADLt2AAy7eAAMu3oADLt8AAy7fwAMu4AADLuBAAy7ggAMu4MADLuFAAy7hwAMu4gADLuJAAy7iwAMu4wADLwHAAy8CQAMvAsADLwNAAy8EAAMvBEADLwSAAy8EwAMvBQADLwWAAy8GAAMvBkADLwaAAy8HAAMvB0ADLyYAAy8mgAMvJwADLyeAAy8oQAMvKIADLyjAAy8pAAMvKUADLynAAy8qQAMvKoADLyrAAy8rQAMvK4ADL0pAAy9KwAMvS0ADL0vAAy9MgAMvTMADL00AAy9NQAMvTYADL04AAy9OgAMvTsADL08AAy9PgAMvT8ADL26AAy9vAAMvb4ADL3AAAy9wwAMvcQADL3FAAy9xgAMvccADL3JAAy9ywAMvcwADL3NAAy9zwAMvdAADL5LAAy+TQAMvk8ADL5RAAy+VAAMvlUADL5WAAy+VwAMvlgADL5aAAy+XAAMvl0ADL5eAAy+YAAMvmEADL7cAAy+3gAMvuAADL7iAAy+5QAMvuYADL7nAAy+6AAMvukADL7rAAy+7QAMvu4ADL7vAAy+8QAMvvIADL+FAAy/qAAMv8gADL/oAAy/6gAMv+wADL/uAAy/8AAMv/MADL/0AAy/9QAMv/gADL/5AAy/+wAMv/wADL//AAzAAgAMwAMADMAEAAzABwAMwAgADMANAAzAJgAMwC8ADMAxAAzANAAMwD0ADMBAAAzAQwAMwEUADMCOAAzAsgAMwNkADMD9AAzBAAAMwQIADMEEAAzBBgAMwQgADMEKAAzBCwAMwQ4ADMEnAAzBSAAMwUoADMFMAAzBTgAMwVAADMFSAAzBVAAMwVYADMFYAAzBeQAMwXwADMF/AAzBggAMwYUADMGIAAzBiwAMwY4ADMGRAAzBkwAMwg4ADMIQAAzCEgAMwhQADMIXAAzCGAAMwhkADMIaAAzCGwAMwh0ADMIfAAzCIAAMwiEADMIjAAzCJAAMwp8ADMKhAAzCowAMwqUADMKoAAzCqQAMwqoADMKrAAzCrAAMwq4ADMKwAAzCsQAMwrIADMK0AAzCtQAMwzAADMMyAAzDNQAMwzcADMM6AAzDOwAMwzwADMM9AAzDPgAMw0AADMNCAAzDQwAMw0QADMNGAAzDRwAMw2AADMNhAAzDYgAMw2QADMPfAAzD4QAMw+MADMPlAAzD6AAMw+kADMPqAAzD6wAMw+wADMPuAAzD8AAMw/EADMPyAAzD9AAMw/UADMRwAAzEcgAMxHQADMR2AAzEeQAMxHoADMR7AAzEfAAMxH0ADMR/AAzEgQAMxIIADMSDAAzEhQAMxIYADMUBAAzFAwAMxQUADMUHAAzFCgAMxQsADMUMAAzFDQAMxQ4ADMUQAAzFEgAMxRMADMUUAAzFFgAMxRcADMWSAAzFlAAMxZYADMWYAAzFmwAMxZwADMWdAAzFngAMxZ8ADMWhAAzFowAMxaQADMWlAAzFpwAMxagADMYjAAzGJQAMxicADMYpAAzGLAAMxi0ADMYuAAzGLwAMxjAADMYyAAzGNAAMxjUADMY2AAzGOAAMxjkADMaCAAzGpgAMxs0ADMbxAAzG9AAMxvcADMb5AAzG+wAMxv0ADMb/AAzHAAAMxwMADMccAAzHOQAMxzwADMc/AAzHQgAMx0UADMdIAAzHSwAMx04ADMdrAAzHbgAMx3EADMd0AAzHdwAMx3oADMd9AAzHgAAMx4IADMf9AAzH/wAMyAIADMgEAAzIBwAMyAgADMgJAAzICgAMyAsADMgNAAzIEAAMyBEADMgSAAzIFAAMyBUADMiQAAzIkgAMyJUADMiXAAzImgAMyJsADMicAAzInQAMyJ4ADMigAAzIowAMyKQADMilAAzIpwAMyKgADMkjAAzJJQAMySgADMkqAAzJLQAMyS4ADMkvAAzJMAAMyTEADMkzAAzJNgAMyTcADMk4AAzJOgAMyTsADMm2AAzJuAAMybsADMm9AAzJwAAMycEADMnCAAzJwwAMycQADMnGAAzJyQAMycoADMnLAAzJzQAMyc4ADMpRAAzKdQAMypkADMq8AAzK4wAMywMADMsqAAzLUQAMy3EADMuVAAzLuQAMy7sADMu+AAzLwAAMy8IADMvEAAzLxwAMy8oADMvMAAzLzgAMy9EADMvTAAzL1QAMy9gADMvbAAzL3AAMy+EADMv6AAzL/wAMzAEADMwGAAzMCQAMzAsADMxUAAzMeAAMzJ8ADMzDAAzMxgAMzMgADMzKAAzMzAAMzM4ADMzQAAzM0QAMzNQADMztAAzNEgAMzRQADM0WAAzNGAAMzRoADM0cAAzNHgAMzSAADM0iAAzNJAAMzUkADM1MAAzNTwAMzVIADM1VAAzNWAAMzVsADM1eAAzNYQAMzWQADM1mAAzN4QAMzeMADM3mAAzN6AAMzesADM3sAAzN7QAMze4ADM3vAAzN8QAMzfMADM30AAzN9QAMzfcADM34AAzOCQAMzgoADM4MAAzOhwAMzokADM6LAAzOjQAMzpAADM6RAAzOkgAMzpMADM6UAAzOlgAMzpgADM6ZAAzOmgAMzpwADM6dAAzPGAAMzxoADM8dAAzPHwAMzyIADM8jAAzPJAAMzyUADM8mAAzPKAAMzyoADM8rAAzPLAAMzy4ADM8vAAzPQAAMz0EADM9DAAzPvgAMz8AADM/CAAzPxAAMz8cADM/IAAzPyQAMz8oADM/LAAzPzQAMz88ADM/QAAzP0QAMz9MADM/UAAzQTwAM0FEADNBUAAzQVgAM0FkADNBaAAzQWwAM0FwADNBdAAzQXwAM0GEADNBiAAzQYwAM0GUADNBmAAzQdwAM0HgADNB6AAzQ9QAM0PcADND5AAzQ+wAM0P4ADND/AAzRAAAM0QEADNECAAzRBAAM0QYADNEHAAzRCAAM0QoADNELAAzRhgAM0YgADNGLAAzRjQAM0ZAADNGRAAzRkgAM0ZMADNGUAAzRlgAM0ZgADNGZAAzRmgAM0ZwADNGdAAzRtgAM0bcADNG4AAzRugAM0jUADNI3AAzSOQAM0jsADNI+AAzSPwAM0kAADNJBAAzSQgAM0kQADNJGAAzSRwAM0kgADNJKAAzSSwAM0sYADNLIAAzSywAM0s0ADNLQAAzS0QAM0tIADNLTAAzS1AAM0tYADNLYAAzS2QAM0toADNLcAAzS3QAM0vwADNMVAAzTJgAM0ykADNMsAAzTLwAM0zIADNNDAAzTRgAM00kADNNMAAzTTwAM01EADNNmAAzTgAAM05sADNO0AAzURwAM1GoADNSKAAzUqgAM1KwADNSuAAzUsAAM1LIADNS1AAzUtgAM1LcADNS6AAzUuwAM1L0ADNS+AAzUwAAM1MMADNTEAAzUxQAM1MgADNTJAAzUzgAM1OcADNTwAAzU8gAM1PQADNT9AAzVAAAM1QMADNUFAAzVTgAM1XIADNWZAAzVvQAM1cAADNXCAAzVxAAM1cYADNXIAAzVygAM1csADNXOAAzV5wAM1ggADNYKAAzWDAAM1g4ADNYQAAzWEgAM1hQADNYWAAzWGAAM1jkADNY8AAzWPwAM1kIADNZFAAzWSAAM1ksADNZOAAzWUQAM1lMADNbOAAzW0AAM1tIADNbUAAzW1wAM1tgADNbZAAzW2gAM1tsADNbdAAzW3wAM1uAADNbhAAzW4wAM1uQADNdfAAzXYQAM12MADNdlAAzXaAAM12kADNdqAAzXawAM12wADNduAAzXcAAM13EADNdyAAzXdAAM13UADNfwAAzX8gAM1/UADNf3AAzX+gAM1/sADNf8AAzX/QAM1/4ADNgAAAzYAgAM2AMADNgEAAzYBgAM2AcADNggAAzYIQAM2CIADNgkAAzYnwAM2KEADNijAAzYpQAM2KgADNipAAzYqgAM2KsADNisAAzYrgAM2LAADNixAAzYsgAM2LQADNi1AAzZMAAM2TIADNk0AAzZNgAM2TkADNk6AAzZOwAM2TwADNk9AAzZPwAM2UEADNlCAAzZQwAM2UUADNlGAAzZwQAM2cMADNnFAAzZxwAM2coADNnLAAzZzAAM2c0ADNnOAAzZ0AAM2dIADNnTAAzZ1AAM2dYADNnXAAzaUgAM2lQADNpWAAzaWAAM2lsADNpcAAzaXQAM2l4ADNpfAAzaYQAM2mMADNpkAAzaZQAM2mcADNpoAAza4wAM2uUADNrnAAza6QAM2uwADNrtAAza7gAM2u8ADNrwAAza8gAM2vQADNr1AAza9gAM2vgADNr5AAzbQgAM22YADNuNAAzbsQAM27QADNu2AAzbuAAM27oADNu8AAzbvgAM278ADNvCAAzb2wAM2/gADNv6AAzb/AAM2/4ADNwAAAzcAgAM3AQADNwGAAzcIwAM3CYADNwpAAzcLAAM3C8ADNwyAAzcNQAM3DgADNw6AAzctQAM3LcADNy5AAzcuwAM3L4ADNy/AAzcwAAM3MEADNzCAAzcxAAM3MYADNzHAAzcyAAM3MoADNzLAAzdRgAM3UgADN1KAAzdTAAM3U8ADN1QAAzdUQAM3VIADN1TAAzdVQAM3VcADN1YAAzdWQAM3VsADN1cAAzd1wAM3dkADN3bAAzd3QAM3eAADN3hAAzd4gAM3eMADN3kAAzd5gAM3egADN3pAAzd6gAM3ewADN3tAAzeaAAM3moADN5sAAzebgAM3nEADN5yAAzecwAM3nQADN51AAzedwAM3nkADN56AAzeewAM3n0ADN5+AAze+QAM3vsADN79AAze/wAM3wIADN8DAAzfBAAM3wUADN8GAAzfCAAM3woADN8LAAzfDAAM3w4ADN8PAAzfigAM34wADN+OAAzfkAAM35MADN+UAAzflQAM35YADN+XAAzfmQAM35sADN+cAAzfnQAM358ADN+gAAzgGwAM4B0ADOAfAAzgIQAM4CQADOAlAAzgJgAM4CcADOAoAAzgKgAM4CwADOAtAAzgLgAM4DAADOAxAAzgxAAM4OcADOEHAAzhJwAM4SkADOErAAzhLQAM4S8ADOEyAAzhMwAM4TQADOE3AAzhOAAM4ToADOE7AAzhPQAM4UAADOFBAAzhQgAM4UUADOFGAAzhTwAM4WgADOFxAAzhcwAM4XUADOF+AAzhgQAM4YQADOGGAAzhzwAM4fMADOIaAAziPgAM4kEADOJDAAziRQAM4kcADOJJAAziSwAM4kwADOJPAAziaAAM4okADOKLAAzijQAM4o8ADOKRAAzikwAM4pUADOKXAAzimQAM4roADOK9AAziwAAM4sMADOLGAAziyQAM4swADOLPAAzi0gAM4tQADONPAAzjUQAM41MADONVAAzjWAAM41kADONaAAzjWwAM41wADONeAAzjYAAM42EADONiAAzjZAAM42UADOPgAAzj4gAM4+QADOPmAAzj6QAM4+oADOPrAAzj7AAM4+0ADOPvAAzj8QAM4/IADOPzAAzj9QAM4/YADORxAAzkcwAM5HYADOR4AAzkewAM5HwADOR9AAzkfgAM5H8ADOSBAAzkgwAM5IQADOSFAAzkhwAM5IgADOShAAzkogAM5KMADOSlAAzlIAAM5SIADOUkAAzlJgAM5SkADOUqAAzlKwAM5SwADOUtAAzlLwAM5TEADOUyAAzlMwAM5TUADOU2AAzlsQAM5bMADOW1AAzltwAM5boADOW7AAzlvAAM5b0ADOW+AAzlwAAM5cIADOXDAAzlxAAM5cYADOXHAAzmQgAM5kQADOZGAAzmSAAM5ksADOZMAAzmTQAM5k4ADOZPAAzmUQAM5lMADOZUAAzmVQAM5lcADOZYAAzm0wAM5tUADObXAAzm2QAM5twADObdAAzm3gAM5t8ADObgAAzm4gAM5uQADOblAAzm5gAM5ugADObpAAznZAAM52YADOdoAAznagAM520ADOduAAznbwAM53AADOdxAAzncwAM53UADOd2AAzndwAM53kADOd6AAznwwAM5+cADOgOAAzoMgAM6DUADOg3AAzoOQAM6DsADOg9AAzoPwAM6EAADOhDAAzoXAAM6HkADOh7AAzofQAM6H8ADOiBAAzogwAM6IUADOiHAAzopAAM6KcADOiqAAzorQAM6LAADOizAAzotgAM6LkADOi7AAzpNgAM6TgADOk6AAzpPAAM6T8ADOlAAAzpQQAM6UIADOlDAAzpRQAM6UcADOlIAAzpSQAM6UsADOlMAAzpxwAM6ckADOnLAAzpzQAM6dAADOnRAAzp0gAM6dMADOnUAAzp1gAM6dgADOnZAAzp2gAM6dwADOndAAzqWAAM6loADOpcAAzqXgAM6mEADOpiAAzqYwAM6mQADOplAAzqZwAM6mkADOpqAAzqawAM6m0ADOpuAAzq6QAM6usADOrtAAzq7wAM6vIADOrzAAzq9AAM6vUADOr2AAzq+AAM6voADOr7AAzq/AAM6v4ADOr/AAzregAM63wADOt+AAzrgAAM64MADOuEAAzrhQAM64YADOuHAAzriQAM64sADOuMAAzrjQAM648ADOuQAAzsCwAM7A0ADOwPAAzsEQAM7BQADOwVAAzsFgAM7BcADOwYAAzsGgAM7BwADOwdAAzsHgAM7CAADOwhAAzsnAAM7J4ADOygAAzsogAM7KUADOymAAzspwAM7KgADOypAAzsqwAM7K0ADOyuAAzsrwAM7LEADOyyAAztRQAM7WgADO2IAAztqAAM7aoADO2sAAztrgAM7bAADO2zAAzttAAM7bUADO24AAztuQAM7bsADO28AAztvgAM7cEADO3CAAztwwAM7cYADO3HAAztzAAM7eUADO3uAAzt8AAM7fIADO37AAzt/gAM7gEADO4DAAzuTAAM7nAADO6XAAzuuwAM7r4ADO7AAAzuwgAM7sQADO7GAAzuyAAM7skADO7MAAzu5QAM7wYADO8IAAzvCgAM7wwADO8OAAzvEAAM7xIADO8UAAzvFgAM7zcADO86AAzvPQAM70AADO9DAAzvRgAM70kADO9MAAzvTwAM71EADO/MAAzvzgAM79AADO/SAAzv1QAM79YADO/XAAzv2AAM79kADO/bAAzv3QAM794ADO/fAAzv4QAM7+IADPBdAAzwXwAM8GEADPBjAAzwZgAM8GcADPBoAAzwaQAM8GoADPBsAAzwbgAM8G8ADPBwAAzwcgAM8HMADPDuAAzw8AAM8PMADPD1AAzw+AAM8PkADPD6AAzw+wAM8PwADPD+AAzxAAAM8QEADPECAAzxBAAM8QUADPEeAAzxHwAM8SAADPEiAAzxnQAM8Z8ADPGhAAzxowAM8aYADPGnAAzxqAAM8akADPGqAAzxrAAM8a4ADPGvAAzxsAAM8bIADPGzAAzyLgAM8jAADPIyAAzyNAAM8jcADPI4AAzyOQAM8joADPI7AAzyPQAM8j8ADPJAAAzyQQAM8kMADPJEAAzyvwAM8sEADPLDAAzyxQAM8sgADPLJAAzyygAM8ssADPLMAAzyzgAM8tAADPLRAAzy0gAM8tQADPLVAAzzUAAM81IADPNUAAzzVgAM81kADPNaAAzzWwAM81wADPNdAAzzXwAM82EADPNiAAzzYwAM82UADPNmAAzz4QAM8+MADPPlAAzz5wAM8+oADPPrAAzz7AAM8+0ADPPuAAzz8AAM8/IADPPzAAzz9AAM8/YADPP3AAz0QAAM9GQADPSLAAz0rwAM9LIADPS0AAz0tgAM9LgADPS6AAz0vAAM9L0ADPTAAAz02QAM9PYADPT4AAz0+gAM9PwADPT+AAz1AAAM9QIADPUEAAz1IQAM9SQADPUnAAz1KgAM9S0ADPUwAAz1MwAM9TYADPU4AAz1swAM9bUADPW3AAz1uQAM9bwADPW9AAz1vgAM9b8ADPXAAAz1wgAM9cQADPXFAAz1xgAM9cgADPXJAAz2RAAM9kYADPZIAAz2SgAM9k0ADPZOAAz2TwAM9lAADPZRAAz2UwAM9lUADPZWAAz2VwAM9lkADPZaAAz21QAM9tcADPbZAAz22wAM9t4ADPbfAAz24AAM9uEADPbiAAz25AAM9uYADPbnAAz26AAM9uoADPbrAAz3ZgAM92gADPdqAAz3bAAM928ADPdwAAz3cQAM93IADPdzAAz3dQAM93cADPd4AAz3eQAM93sADPd8AAz39wAM9/kADPf7AAz3/QAM+AAADPgBAAz4AgAM+AMADPgEAAz4BgAM+AgADPgJAAz4CgAM+AwADPgNAAz4iAAM+IoADPiNAAz4jwAM+JIADPiTAAz4lAAM+JUADPiWAAz4mAAM+JoADPibAAz4nAAM+J4ADPifAAz4rgAM+SkADPkrAAz5LQAM+S8ADPkyAAz5MwAM+TQADPk1AAz5NgAM+TgADPk6AAz5OwAM+TwADPk+AAz5PwAM+dIADPn1AAz6FQAM+jUADPo3AAz6OQAM+jsADPo9AAz6QAAM+kEADPpCAAz6RQAM+kYADPpIAAz6SQAM+kwADPpPAAz6UAAM+lEADPpUAAz6VQAM+loADPpzAAz6fAAM+n4ADPqBAAz6igAM+o0ADPqQAAz6kgAM+tsADPr/AAz7JgAM+0oADPtNAAz7TwAM+1EADPtTAAz7VQAM+1cADPtYAAz7WwAM+3QADPuVAAz7lwAM+5kADPubAAz7nQAM+58ADPuhAAz7owAM+6UADPvGAAz7yQAM+8wADPvPAAz70gAM+9UADPvYAAz72wAM+94ADPvgAAz8WwAM/F0ADPxfAAz8YQAM/GQADPxlAAz8ZgAM/GcADPxoAAz8agAM/GwADPxtAAz8bgAM/HAADPxxAAz87AAM/O4ADPzwAAz88gAM/PUADPz2AAz89wAM/PgADPz5AAz8+wAM/P0ADPz+AAz8/wAM/QEADP0CAAz9fQAM/X8ADP2CAAz9hAAM/YcADP2IAAz9iQAM/YoADP2LAAz9jQAM/Y8ADP2QAAz9kQAM/ZMADP2UAAz9rQAM/a4ADP2vAAz9sQAM/iwADP4uAAz+MAAM/jIADP41AAz+NgAM/jcADP44AAz+OQAM/jsADP49AAz+PgAM/j8ADP5BAAz+QgAM/r0ADP6/AAz+wQAM/sMADP7GAAz+xwAM/sgADP7JAAz+ygAM/swADP7OAAz+zwAM/tAADP7SAAz+0wAM/04ADP9QAAz/UgAM/1QADP9XAAz/WAAM/1kADP9aAAz/WwAM/10ADP9fAAz/YAAM/2EADP9jAAz/ZAAM/98ADP/hAAz/4wAM/+UADP/oAAz/6QAM/+oADP/rAAz/7AAM/+4ADP/wAAz/8QAM//IADP/0AAz/9QANAHAADQByAA0AdAANAHYADQB5AA0AegANAHsADQB8AA0AfQANAH8ADQCBAA0AggANAIMADQCFAA0AhgANAM8ADQDzAA0BGgANAT4ADQFBAA0BRAANAUYADQFIAA0BSgANAUwADQFNAA0BUAANAWkADQGGAA0BiQANAYwADQGPAA0BkgANAZUADQGYAA0BmwANAbgADQG7AA0BvgANAcEADQHEAA0BxwANAcoADQHNAA0BzwANAkoADQJMAA0CTwANAlEADQJUAA0CVQANAlYADQJXAA0CWAANAloADQJdAA0CXgANAl8ADQJhAA0CYgANAt0ADQLfAA0C4gANAuQADQLnAA0C6AANAukADQLqAA0C6wANAu0ADQLwAA0C8QANAvIADQL0AA0C9QANA3AADQNyAA0DdQANA3cADQN6AA0DewANA3wADQN9AA0DfgANA4AADQODAA0DhAANA4UADQOHAA0DiAANBAMADQQFAA0ECAANBAoADQQNAA0EDgANBA8ADQQQAA0EEQANBBMADQQWAA0EFwANBBgADQQaAA0EGwANBJYADQSYAA0EmgANBJwADQSfAA0EoAANBKEADQSiAA0EowANBKUADQSoAA0EqQANBKoADQSsAA0ErQANBSgADQUqAA0FLAANBS4ADQUxAA0FMgANBTMADQU0AA0FNQANBTcADQU6AA0FOwANBTwADQU+AA0FPwANBboADQW8AA0FvwANBcEADQXEAA0FxQANBcYADQXHAA0FyAANBcoADQXNAA0FzgANBc8ADQXRAA0F0gANBeMADQXkAA0F5gANBmEADQZjAA0GZQANBmcADQZqAA0GawANBmwADQZtAA0GbgANBnAADQZzAA0GdAANBnUADQZ3AA0GeAANBvMADQb1AA0G9wANBvkADQb8AA0G/QANBv4ADQb/AA0HAAANBwIADQcFAA0HBgANBwcADQcJAA0HCgANB4UADQeHAA0HigANB4wADQePAA0HkAANB5EADQeSAA0HkwANB5UADQeYAA0HmQANB5oADQecAA0HnQANCDAADQhTAA0IcwANCJMADQiVAA0IlwANCJkADQibAA0IngANCJ8ADQigAA0IowANCKQADQimAA0IpwANCKkADQisAA0IrQANCK4ADQixAA0IsgANCLcADQjQAA0I2QANCNsADQjdAA0I5gANCOkADQjsAA0I7gANCTcADQlbAA0JggANCaYADQmpAA0JqwANCa0ADQmvAA0JsQANCbMADQm0AA0JtwANCdAADQnxAA0J8wANCfUADQn3AA0J+QANCfsADQn9AA0J/wANCgEADQoiAA0KJQANCigADQorAA0KLgANCjEADQo0AA0KNwANCjoADQo8AA0KtwANCrkADQq7AA0KvQANCsAADQrBAA0KwgANCsMADQrEAA0KxgANCsgADQrJAA0KygANCswADQrNAA0LSAANC0oADQtMAA0LTgANC1EADQtSAA0LUwANC1QADQtVAA0LVwANC1kADQtaAA0LWwANC10ADQteAA0L2QANC9sADQveAA0L4AANC+MADQvkAA0L5QANC+YADQvnAA0L6QANC+sADQvsAA0L7QANC+8ADQvwAA0MCQANDAoADQwLAA0MDQANDIgADQyKAA0MjAANDI4ADQyRAA0MkgANDJMADQyUAA0MlQANDJcADQyZAA0MmgANDJsADQydAA0MngANDRkADQ0bAA0NHQANDR8ADQ0iAA0NIwANDSQADQ0lAA0NJgANDSgADQ0qAA0NKwANDSwADQ0uAA0NLwANDaoADQ2sAA0NrgANDbAADQ2zAA0NtAANDbUADQ22AA0NtwANDbkADQ27AA0NvAANDb0ADQ2/AA0NwAANDjsADQ49AA0OPwANDkEADQ5EAA0ORQANDkYADQ5HAA0OSAANDkoADQ5MAA0OTQANDk4ADQ5QAA0OUQANDswADQ7OAA0O0AANDtIADQ7VAA0O1gANDtcADQ7YAA0O2QANDtsADQ7dAA0O3gANDt8ADQ7hAA0O4gANDysADQ9PAA0PdgAND5oADQ+dAA0PnwAND6EADQ+jAA0PpQAND6cADQ+oAA0PqwAND8QADQ/hAA0P4wAND+UADQ/nAA0P6QAND+sADQ/tAA0P7wANEAwADRAPAA0QEgANEBUADRAYAA0QGwANEB4ADRAhAA0QIwANEJ4ADRCgAA0QogANEKQADRCnAA0QqAANEKkADRCqAA0QqwANEK0ADRCvAA0QsAANELEADRCzAA0QtAANES8ADRExAA0RMwANETUADRE4AA0ROQANEToADRE7AA0RPAANET4ADRFAAA0RQQANEUIADRFEAA0RRQANEcAADRHCAA0RxAANEcYADRHJAA0RygANEcsADRHMAA0RzQANEc8ADRHRAA0R0gANEdMADRHVAA0R1gANElEADRJTAA0SVQANElcADRJaAA0SWwANElwADRJdAA0SXgANEmAADRJiAA0SYwANEmQADRJmAA0SZwANEuIADRLkAA0S5gANEugADRLrAA0S7AANEu0ADRLuAA0S7wANEvEADRLzAA0S9AANEvUADRL3AA0S+AANE3MADRN1AA0TeAANE3oADRN9AA0TfgANE38ADROAAA0TgQANE4MADROFAA0ThgANE4cADROJAA0TigANE6kADRQkAA0UJgANFCgADRQqAA0ULQANFC4ADRQvAA0UMAANFDEADRQzAA0UNQANFDYADRQ3AA0UOQANFDoADRRLAA0UTAANFE4ADRTJAA0UywANFM0ADRTPAA0U0gANFNMADRTUAA0U1QANFNYADRTYAA0U2wANFNwADRTdAA0U3wANFOAADRVbAA0VXQANFV8ADRVhAA0VZAANFWUADRVmAA0VZwANFWgADRVqAA0VbQANFW4ADRVvAA0VcQANFXIADRXtAA0V7wANFfIADRX0AA0V9wANFfgADRX5AA0V+gANFfsADRX9AA0WAAANFgEADRYCAA0WBAANFgUADRYWAA0WFwANFhkADRacAA0WwAANFuQADRcHAA0XLgANF04ADRd1AA0XnAANF7wADRfgAA0YBAANGAYADRgJAA0YCwANGA0ADRgPAA0YEgANGBUADRgXAA0YGQANGBwADRgeAA0YIAANGCMADRgmAA0YJwANGCwADRhFAA0YSgANGEwADRhRAA0YVAANGFYADRifAA0YwwANGOoADRkOAA0ZEQANGRMADRkVAA0ZFwANGRkADRkbAA0ZHAANGR8ADRk4AA0ZXQANGV8ADRlhAA0ZYwANGWUADRlnAA0ZaQANGWsADRltAA0ZbwANGZQADRmXAA0ZmgANGZ0ADRmgAA0ZowANGaYADRmpAA0ZrAANGa8ADRmxAA0aLAANGi4ADRoxAA0aMwANGjYADRo3AA0aOAANGjkADRo6AA0aPAANGj4ADRo/AA0aQAANGkIADRpDAA0aVAANGlUADRpXAA0a0gANGtQADRrWAA0a2AANGtsADRrcAA0a3QANGt4ADRrfAA0a4QANGuMADRrkAA0a5QANGucADRroAA0bYwANG2UADRtoAA0bagANG20ADRtuAA0bbwANG3AADRtxAA0bcwANG3UADRt2AA0bdwANG3kADRt6AA0biwANG4wADRuOAA0cCQANHAsADRwNAA0cDwANHBIADRwTAA0cFAANHBUADRwWAA0cGAANHBoADRwbAA0cHAANHB4ADRwfAA0cmgANHJwADRyfAA0coQANHKQADRylAA0cpgANHKcADRyoAA0cqgANHKwADRytAA0crgANHLAADRyxAA0cwgANHMMADRzFAA0dQAANHUIADR1EAA0dRgANHUkADR1KAA0dSwANHUwADR1NAA0dTwANHVEADR1SAA0dUwANHVUADR1WAA0d0QANHdMADR3WAA0d2AANHdsADR3cAA0d3QANHd4ADR3fAA0d4QANHeMADR3kAA0d5QANHecADR3oAA0eAQANHgIADR4DAA0eBQANHoAADR6CAA0ehAANHoYADR6JAA0eigANHosADR6MAA0ejQANHo8ADR6RAA0ekgANHpMADR6VAA0elgANHxEADR8TAA0fFgANHxgADR8bAA0fHAANHx0ADR8eAA0fHwANHyEADR8jAA0fJAANHyUADR8nAA0fKAANH0EADR9aAA0fWwANH1wADR9eAA0fbwANH3QADR93AA0feQANH7IADR+1AA0ftwANH7oADR+9AA0fwAANH8MADR/IAA0gawANII8ADSCzAA0g0wANIPoADSEhAA0hQQANIWgADSGMAA0hrwANIdYADSH6AA0iHgANIkIADSJpAA0iagANImwADSJuAA0icQANInMADSJ2AA0ieAANInoADSJ9AA0ifwANIoEADSKEAA0ihwANIokADSKLAA0ijQANIpAADSKTAA0ilgANIpsADSK0AA0iuQANIrsADSLAAA0iwwANIsUADSMOAA0jMgANI1kADSN9AA0jgAANI4IADSOEAA0jhgANI4gADSOKAA0jiwANI44ADSOnAA0jzAANI84ADSPQAA0j0gANI9QADSPWAA0j2AANI9oADSPcAA0j3gANJAMADSQGAA0kCQANJAwADSQPAA0kEgANJBUADSQYAA0kGwANJB4ADSQgAA0kmwANJJ0ADSSgAA0kogANJKUADSSmAA0kpwANJKgADSSpAA0kqwANJK0ADSSuAA0krwANJLEADSSyAA0kwwANJMQADSTGAA0lQQANJUMADSVFAA0lRwANJUoADSVLAA0lTAANJU0ADSVOAA0lUAANJVIADSVTAA0lVAANJVYADSVXAA0l0gANJdQADSXXAA0l2QANJdwADSXdAA0l3gANJd8ADSXgAA0l4gANJeQADSXlAA0l5gANJegADSXpAA0l+gANJfsADSX9AA0meAANJnoADSZ8AA0mfgANJoEADSaCAA0mgwANJoQADSaFAA0mhwANJokADSaKAA0miwANJo0ADSaOAA0nCQANJwsADScOAA0nEAANJxMADScUAA0nFQANJxYADScXAA0nGQANJxsADSccAA0nHQANJx8ADScgAA0nMQANJzIADSc0AA0nrwANJ7EADSezAA0ntQANJ7gADSe5AA0nugANJ7sADSe8AA0nvgANJ8AADSfBAA0nwgANJ8QADSfFAA0oQAANKEIADShFAA0oRwANKEoADShLAA0oTAANKE0ADShOAA0oUAANKFIADShTAA0oVAANKFYADShXAA0ocAANKHEADShyAA0odAANKO8ADSjxAA0o8wANKPUADSj4AA0o+QANKPoADSj7AA0o/AANKP4ADSkAAA0pAQANKQIADSkEAA0pBQANKYAADSmCAA0phQANKYcADSmKAA0piwANKYwADSmNAA0pjgANKZAADSmSAA0pkwANKZQADSmWAA0plwANKaYADSm/AA0pzAANKc8ADSnSAA0p1QANKeIADSnlAA0p6AANKesADSntAA0qBAANKhcADSogAA0qswANKtYADSr2AA0rFgANKxgADSsaAA0rHAANKx4ADSshAA0rIgANKyMADSsmAA0rJwANKykADSsqAA0rLAANKy8ADSswAA0rMQANKzQADSs1AA0rOgANK1MADStcAA0rXgANK2AADStpAA0rbAANK28ADStxAA0rugANK94ADSwFAA0sKQANLCwADSwuAA0sMAANLDIADSw0AA0sNgANLDcADSw6AA0sUwANLHQADSx2AA0seAANLHoADSx8AA0sfgANLIAADSyCAA0shAANLKUADSyoAA0sqwANLK4ADSyxAA0stAANLLcADSy6AA0svQANLL8ADS06AA0tPAANLT4ADS1AAA0tQwANLUQADS1FAA0tRgANLUcADS1JAA0tSwANLUwADS1NAA0tTwANLVAADS3LAA0tzQANLc8ADS3RAA0t1AANLdUADS3WAA0t1wANLdgADS3aAA0t3AANLd0ADS3eAA0t4AANLeEADS5cAA0uXgANLmEADS5jAA0uZgANLmcADS5oAA0uaQANLmoADS5sAA0ubgANLm8ADS5wAA0ucgANLnMADS6MAA0ujQANLo4ADS6QAA0vCwANLw0ADS8PAA0vEQANLxQADS8VAA0vFgANLxcADS8YAA0vGgANLxwADS8dAA0vHgANLyAADS8hAA0vnAANL54ADS+gAA0vogANL6UADS+mAA0vpwANL6gADS+pAA0vqwANL60ADS+uAA0vrwANL7EADS+yAA0wLQANMC8ADTAxAA0wMwANMDYADTA3AA0wOAANMDkADTA6AA0wPAANMD4ADTA/AA0wQAANMEIADTBDAA0wvgANMMAADTDCAA0wxAANMMcADTDIAA0wyQANMMoADTDLAA0wzQANMM8ADTDQAA0w0QANMNMADTDUAA0xTwANMVEADTFTAA0xVQANMVgADTFZAA0xWgANMVsADTFcAA0xXgANMWAADTFhAA0xYgANMWQADTFlAA0xrgANMdIADTH5AA0yHQANMiAADTIiAA0yJAANMiYADTIoAA0yKgANMisADTIuAA0yRwANMmQADTJmAA0yaAANMmoADTJsAA0ybgANMnAADTJyAA0yjwANMpIADTKVAA0ymAANMpsADTKeAA0yoQANMqQADTKmAA0zIQANMyMADTMlAA0zJwANMyoADTMrAA0zLAANMy0ADTMuAA0zMAANMzIADTMzAA0zNAANMzYADTM3AA0zsgANM7QADTO2AA0zuAANM7sADTO8AA0zvQANM74ADTO/AA0zwQANM8MADTPEAA0zxQANM8cADTPIAA00QwANNEUADTRHAA00SQANNEwADTRNAA00TgANNE8ADTRQAA00UgANNFQADTRVAA00VgANNFgADTRZAA001AANNNYADTTZAA002wANNN4ADTTfAA004AANNOEADTTiAA005AANNOYADTTnAA006AANNOoADTTrAA01ZgANNWgADTVqAA01bAANNW8ADTVwAA01cQANNXIADTVzAA01dQANNXcADTV4AA01eQANNXsADTV8AA019wANNfkADTX7AA01/QANNgAADTYBAA02AgANNgMADTYEAA02BgANNggADTYJAA02CgANNgwADTYNAA02iAANNooADTaMAA02jgANNpEADTaSAA02kwANNpQADTaVAA02lwANNpkADTaaAA02mwANNp0ADTaeAA03MQANN1QADTd0AA03lAANN5YADTeYAA03mgANN5wADTefAA03oAANN6EADTekAA03pQANN6cADTeoAA03qgANN60ADTeuAA03rwANN7IADTezAA03vAANN9UADTfeAA034AANN+IADTfrAA037gANN/EADTfzAA04PAANOGAADTiHAA04qwANOK4ADTiwAA04sgANOLQADTi2AA04uAANOLkADTi8AA041QANOPYADTj4AA04+gANOPwADTj+AA05AAANOQIADTkEAA05BgANOScADTkqAA05LQANOTAADTkzAA05NgANOTkADTk8AA05PwANOUEADTm8AA05vgANOcAADTnCAA05xQANOcYADTnHAA05yAANOckADTnLAA05zQANOc4ADTnPAA050QANOdIADTpNAA06TwANOlEADTpTAA06VgANOlcADTpYAA06WQANOloADTpcAA06XgANOl8ADTpgAA06YgANOmMADTreAA064AANOuMADTrlAA066AANOukADTrqAA066wANOuwADTruAA068AANOvEADTryAA069AANOvUADTsOAA07DwANOxAADTsSAA07jQANO48ADTuRAA07kwANO5YADTuXAA07mAANO5kADTuaAA07nAANO54ADTufAA07oAANO6IADTujAA08HgANPCAADTwiAA08JAANPCcADTwoAA08KQANPCoADTwrAA08LQANPC8ADTwwAA08MQANPDMADTw0AA08rwANPLEADTyzAA08tQANPLgADTy5AA08ugANPLsADTy8AA08vgANPMAADTzBAA08wgANPMQADTzFAA09QAANPUIADT1EAA09RgANPUkADT1KAA09SwANPUwADT1NAA09TwANPVEADT1SAA09UwANPVUADT1WAA090QANPdMADT3VAA091wANPdoADT3bAA093AANPd0ADT3eAA094AANPeIADT3jAA095AANPeYADT3nAA0+MAANPlQADT57AA0+nwANPqIADT6kAA0+pgANPqgADT6qAA0+rAANPq0ADT6wAA0+yQANPuYADT7oAA0+6gANPuwADT7uAA0+8AANPvIADT70AA0/EQANPxQADT8XAA0/GgANPx0ADT8gAA0/IwANPyYADT8oAA0/owANP6UADT+nAA0/qQANP6wADT+tAA0/rgANP68ADT+wAA0/sgANP7QADT+1AA0/tgANP7gADT+5AA1ANAANQDYADUA4AA1AOgANQD0ADUA+AA1APwANQEAADUBBAA1AQwANQEUADUBGAA1ARwANQEkADUBKAA1AxQANQMcADUDJAA1AywANQM4ADUDPAA1A0AANQNEADUDSAA1A1AANQNYADUDXAA1A2AANQNoADUDbAA1BVgANQVgADUFbAA1BXQANQWAADUFhAA1BYgANQWMADUFkAA1BZgANQWgADUFpAA1BagANQWwADUFtAA1B6AANQeoADUHsAA1B7gANQfEADUHyAA1B8wANQfQADUH1AA1B9wANQfkADUH6AA1B+wANQf0ADUH+AA1CeQANQnsADUJ9AA1CfwANQoIADUKDAA1ChAANQoUADUKGAA1CiAANQooADUKLAA1CjAANQo4ADUKPAA1DCgANQwwADUMOAA1DEAANQxMADUMUAA1DFQANQxYADUMXAA1DGQANQxsADUMcAA1DHQANQx8ADUMgAA1DswANQ9YADUP2AA1EFgANRBgADUQaAA1EHAANRB4ADUQhAA1EIgANRCMADUQmAA1EJwANRCkADUQqAA1ELAANRC8ADUQwAA1EMQANRDQADUQ1AA1EOgANRFMADURcAA1EXgANRGAADURpAA1EbAANRG8ADURxAA1EugANRN4ADUUFAA1FKQANRSwADUUuAA1FMAANRTIADUU0AA1FNgANRTcADUU6AA1FUwANRXQADUV2AA1FeAANRXoADUV8AA1FfgANRYAADUWCAA1FhAANRaUADUWoAA1FqwANRa4ADUWxAA1FtAANRbcADUW6AA1FvQANRb8ADUY6AA1GPAANRj4ADUZAAA1GQwANRkQADUZFAA1GRgANRkcADUZJAA1GSwANRkwADUZNAA1GTwANRlAADUbLAA1GzQANRs8ADUbRAA1G1AANRtUADUbWAA1G1wANRtgADUbaAA1G3AANRt0ADUbeAA1G4AANRuEADUdcAA1HXgANR2EADUdjAA1HZgANR2cADUdoAA1HaQANR2oADUdsAA1HbgANR28ADUdwAA1HcgANR3MADUeMAA1HjQANR44ADUeQAA1ICwANSA0ADUgPAA1IEQANSBQADUgVAA1IFgANSBcADUgYAA1IGgANSBwADUgdAA1IHgANSCAADUghAA1InAANSJ4ADUigAA1IogANSKUADUimAA1IpwANSKgADUipAA1IqwANSK0ADUiuAA1IrwANSLEADUiyAA1JLQANSS8ADUkxAA1JMwANSTYADUk3AA1JOAANSTkADUk6AA1JPAANST4ADUk/AA1JQAANSUIADUlDAA1JvgANScAADUnCAA1JxAANSccADUnIAA1JyQANScoADUnLAA1JzQANSc8ADUnQAA1J0QANSdMADUnUAA1KTwANSlEADUpTAA1KVQANSlgADUpZAA1KWgANSlsADUpcAA1KXgANSmAADUphAA1KYgANSmQADUplAA1KrgANStIADUr5AA1LHQANSyAADUsiAA1LJAANSyYADUsoAA1LKgANSysADUsuAA1LRwANS2QADUtmAA1LaAANS2oADUtsAA1LbgANS3AADUtyAA1LjwANS5IADUuVAA1LmAANS5sADUueAA1LoQANS6QADUumAA1MIQANTCMADUwlAA1MJwANTCoADUwrAA1MLAANTC0ADUwuAA1MMAANTDIADUwzAA1MNAANTDYADUw3AA1MsgANTLQADUy2AA1MuAANTLsADUy8AA1MvQANTL4ADUy/AA1MwQANTMMADUzEAA1MxQANTMcADUzIAA1NQwANTUUADU1HAA1NSQANTUwADU1NAA1NTgANTU8ADU1QAA1NUgANTVQADU1VAA1NVgANTVgADU1ZAA1N1AANTdYADU3ZAA1N2wANTd4ADU3fAA1N4AANTeEADU3iAA1N5AANTeYADU3nAA1N6AANTeoADU3rAA1OZgANTmgADU5qAA1ObAANTm8ADU5wAA1OcQANTnIADU5zAA1OdQANTncADU54AA1OeQANTnsADU58AA1O9wANTvkADU77AA1O/QANTwAADU8BAA1PAgANTwMADU8EAA1PBgANTwgADU8JAA1PCgANTwwADU8NAA1PiAANT4oADU+MAA1PjgANT5EADU+SAA1PkwANT5QADU+VAA1PlwANT5kADU+aAA1PmwANT50ADU+eAA1PrwANT7AADU+yAA1PwwANT9AADU/TAA1P1gANT9kADU/bAA1QFAANUBcADVAZAA1QHAANUB8ADVAiAA1QJQANUKgADVDMAA1Q8AANURMADVE6AA1RWgANUYEADVGoAA1RyAANUewADVIQAA1SEgANUhUADVIXAA1SGQANUhsADVIeAA1SIQANUiMADVIlAA1SKAANUioADVIsAA1SLwANUjIADVIzAA1SOAANUlEADVJWAA1SWAANUl0ADVJgAA1SYgANUqsADVLPAA1S9gANUxoADVMdAA1THwANUyEADVMjAA1TJQANUycADVMoAA1TKwANU0QADVNpAA1TawANU20ADVNvAA1TcQANU3MADVN1AA1TdwANU3kADVN7AA1ToAANU6MADVOmAA1TqQANU6wADVOvAA1TsgANU7UADVO4AA1TuwANU70ADVQ4AA1UOgANVD0ADVQ/AA1UQgANVEMADVREAA1URQANVEYADVRIAA1USgANVEsADVRMAA1UTgANVE8ADVRgAA1UYQANVGMADVTeAA1U4AANVOIADVTkAA1U5wANVOgADVTpAA1U6gANVOsADVTtAA1U7wANVPAADVTxAA1U8wANVPQADVVvAA1VcQANVXQADVV2AA1VeQANVXoADVV7AA1VfAANVX0ADVV/AA1VgQANVYIADVWDAA1VhQANVYYADVWXAA1VmAANVZoADVYVAA1WFwANVhkADVYbAA1WHgANVh8ADVYgAA1WIQANViIADVYkAA1WJgANVicADVYoAA1WKgANVisADVamAA1WqAANVqsADVatAA1WsAANVrEADVayAA1WswANVrQADVa2AA1WuAANVrkADVa6AA1WvAANVr0ADVbOAA1WzwANVtEADVdMAA1XTgANV1AADVdSAA1XVQANV1YADVdXAA1XWAANV1kADVdbAA1XXQANV14ADVdfAA1XYQANV2IADVfdAA1X3wANV+IADVfkAA1X5wANV+gADVfpAA1X6gANV+sADVftAA1X7wANV/AADVfxAA1X8wANV/QADVgNAA1YDgANWA8ADVgRAA1YjAANWI4ADViQAA1YkgANWJUADViWAA1YlwANWJgADViZAA1YmwANWJ0ADVieAA1YnwANWKEADViiAA1ZHQANWR8ADVkiAA1ZJAANWScADVkoAA1ZKQANWSoADVkrAA1ZLQANWS8ADVkwAA1ZMQANWTMADVk0AA1ZSgANWWMADVloAA1ZawANWXAADVlzAA1ZdQANWYEADVoUAA1aNwANWlcADVp3AA1aeQANWnsADVp9AA1afwANWoIADVqDAA1ahAANWocADVqIAA1aigANWosADVqNAA1akAANWpEADVqSAA1alQANWpYADVqbAA1atAANWr0ADVq/AA1awQANWsoADVrNAA1a0AANWtIADVsbAA1bPwANW2YADVuKAA1bjQANW48ADVuRAA1bkwANW5UADVuXAA1bmAANW5sADVu0AA1b1QANW9cADVvZAA1b2wANW90ADVvfAA1b4QANW+MADVvlAA1cBgANXAkADVwMAA1cDwANXBIADVwVAA1cGAANXBsADVweAA1cIAANXJsADVydAA1cnwANXKEADVykAA1cpQANXKYADVynAA1cqAANXKoADVysAA1crQANXK4ADVywAA1csQANXSwADV0uAA1dMAANXTIADV01AA1dNgANXTcADV04AA1dOQANXTsADV09AA1dPgANXT8ADV1BAA1dQgANXb0ADV2/AA1dwgANXcQADV3HAA1dyAANXckADV3KAA1dywANXc0ADV3PAA1d0AANXdEADV3TAA1d1AANXe0ADV3uAA1d7wANXfEADV5sAA1ebgANXnAADV5yAA1edQANXnYADV53AA1eeAANXnkADV57AA1efQANXn4ADV5/AA1egQANXoIADV79AA1e/wANXwEADV8DAA1fBgANXwcADV8IAA1fCQANXwoADV8MAA1fDgANXw8ADV8QAA1fEgANXxMADV+OAA1fkAANX5IADV+UAA1flwANX5gADV+ZAA1fmgANX5sADV+dAA1fnwANX6AADV+hAA1fowANX6QADWAfAA1gIQANYCMADWAlAA1gKAANYCkADWAqAA1gKwANYCwADWAuAA1gMAANYDEADWAyAA1gNAANYDUADWCwAA1gsgANYLQADWC2AA1guQANYLoADWC7AA1gvAANYL0ADWC/AA1gwQANYMIADWDDAA1gxQANYMYADWEPAA1hMwANYVoADWF+AA1hgQANYYMADWGFAA1hhwANYYkADWGLAA1hjAANYY8ADWGoAA1hxQANYccADWHJAA1hywANYc0ADWHPAA1h0QANYdMADWHwAA1h8wANYfYADWH5AA1h/AANYf8ADWICAA1iBQANYgcADWKCAA1ihAANYoYADWKIAA1iiwANYowADWKNAA1ijgANYo8ADWKRAA1ikwANYpQADWKVAA1ilwANYpgADWMTAA1jFQANYxcADWMZAA1jHAANYx0ADWMeAA1jHwANYyAADWMiAA1jJAANYyUADWMmAA1jKAANYykADWOkAA1jpgANY6gADWOqAA1jrQANY64ADWOvAA1jsAANY7EADWOzAA1jtQANY7YADWO3AA1juQANY7oADWQ1AA1kNwANZDoADWQ8AA1kPwANZEAADWRBAA1kQgANZEMADWRFAA1kRwANZEgADWRJAA1kSwANZEwADWTHAA1kyQANZMsADWTNAA1k0AANZNEADWTSAA1k0wANZNQADWTWAA1k2AANZNkADWTaAA1k3AANZN0ADWVYAA1lWgANZVwADWVeAA1lYQANZWIADWVjAA1lZAANZWUADWVnAA1laQANZWoADWVrAA1lbQANZW4ADWXpAA1l6wANZe0ADWXvAA1l8gANZfMADWX0AA1l9QANZfYADWX4AA1l+gANZfsADWX8AA1l/gANZf8ADWYQAA1mFQANZhgADWYaAA1mHwANZlgADWZbAA1mXQANZmAADWZjAA1mZgANZmkADWbsAA1nEAANZzQADWdXAA1nfgANZ54ADWfFAA1n7AANaAwADWgwAA1oVAANaFYADWhZAA1oWwANaF0ADWhfAA1oYgANaGUADWhnAA1oaQANaGwADWhuAA1ocAANaHMADWh2AA1odwANaHwADWiVAA1omgANaJwADWihAA1opAANaKYADWjvAA1pEwANaToADWleAA1pYQANaWMADWllAA1pZwANaWkADWlrAA1pbAANaW8ADWmIAA1prQANaa8ADWmxAA1pswANabUADWm3AA1puQANabsADWm9AA1pvwANaeQADWnnAA1p6gANae0ADWnwAA1p8wANafYADWn5AA1p/AANaf8ADWoBAA1qfAANan4ADWqBAA1qgwANaoYADWqHAA1qiAANaokADWqKAA1qjAANao4ADWqPAA1qkAANapIADWqTAA1qpAANaqUADWqnAA1rIgANayQADWsmAA1rKAANaysADWssAA1rLQANay4ADWsvAA1rMQANazMADWs0AA1rNQANazcADWs4AA1rswANa7UADWu4AA1rugANa70ADWu+AA1rvwANa8AADWvBAA1rwwANa8UADWvGAA1rxwANa8kADWvKAA1r2wANa9wADWveAA1sWQANbFsADWxdAA1sXwANbGIADWxjAA1sZAANbGUADWxmAA1saAANbGoADWxrAA1sbAANbG4ADWxvAA1s6gANbOwADWzvAA1s8QANbPQADWz1AA1s9gANbPcADWz4AA1s+gANbPwADWz9AA1s/gANbQAADW0BAA1tEgANbRMADW0VAA1tkAANbZIADW2UAA1tlgANbZkADW2aAA1tmwANbZwADW2dAA1tnwANbaEADW2iAA1towANbaUADW2mAA1uIQANbiMADW4mAA1uKAANbisADW4sAA1uLQANbi4ADW4vAA1uMQANbjMADW40AA1uNQANbjcADW44AA1uUQANblIADW5TAA1uVQANbtAADW7SAA1u1AANbtYADW7ZAA1u2gANbtsADW7cAA1u3QANbt8ADW7hAA1u4gANbuMADW7lAA1u5gANb2EADW9jAA1vZgANb2gADW9rAA1vbAANb20ADW9uAA1vbwANb3EADW9zAA1vdAANb3UADW93AA1veAANb5AADW+pAA1vtgANb7kADW+8AA1vvwANb8wADW/PAA1v0gANb9UADW/XAA1v4wANb+8ADW/8AA1wjwANcLIADXDSAA1w8gANcPQADXD2AA1w+AANcPoADXD9AA1w/gANcP8ADXECAA1xAwANcQUADXEGAA1xCAANcQsADXEMAA1xDQANcRAADXERAA1xFgANcS8ADXE4AA1xOgANcTwADXFFAA1xSAANcUsADXFNAA1xlgANcboADXHhAA1yBQANcggADXIKAA1yDAANcg4ADXIQAA1yEgANchMADXIWAA1yLwANclAADXJSAA1yVAANclYADXJYAA1yWgANclwADXJeAA1yYAANcoEADXKEAA1yhwANcooADXKNAA1ykAANcpMADXKWAA1ymQANcpsADXMWAA1zGAANcxoADXMcAA1zHwANcyAADXMhAA1zIgANcyMADXMlAA1zJwANcygADXMpAA1zKwANcywADXOnAA1zqQANc6sADXOtAA1zsAANc7EADXOyAA1zswANc7QADXO2AA1zuAANc7kADXO6AA1zvAANc70ADXQ4AA10OgANdD0ADXQ/AA10QgANdEMADXREAA10RQANdEYADXRIAA10SgANdEsADXRMAA10TgANdE8ADXRoAA10aQANdGoADXRsAA105wANdOkADXTrAA107QANdPAADXTxAA108gANdPMADXT0AA109gANdPgADXT5AA10+gANdPwADXT9AA11eAANdXoADXV8AA11fgANdYEADXWCAA11gwANdYQADXWFAA11hwANdYkADXWKAA11iwANdY0ADXWOAA12CQANdgsADXYNAA12DwANdhIADXYTAA12FAANdhUADXYWAA12GAANdhoADXYbAA12HAANdh4ADXYfAA12mgANdpwADXaeAA12oAANdqMADXakAA12pQANdqYADXanAA12qQANdqsADXasAA12rQANdq8ADXawAA13KwANdy0ADXcvAA13MQANdzQADXc1AA13NgANdzcADXc4AA13OgANdzwADXc9AA13PgANd0AADXdBAA13igANd64ADXfVAA13+QANd/wADXf+AA14AAANeAIADXgEAA14BgANeAcADXgKAA14IwANeEAADXhCAA14RAANeEYADXhIAA14SgANeEwADXhOAA14awANeG4ADXhxAA14dAANeHcADXh6AA14fQANeIAADXiCAA14/QANeP8ADXkBAA15AwANeQYADXkHAA15CAANeQkADXkKAA15DAANeQ4ADXkPAA15EAANeRIADXkTAA15jgANeZAADXmSAA15lAANeZcADXmYAA15mQANeZoADXmbAA15nQANeZ8ADXmgAA15oQANeaMADXmkAA16HwANeiEADXojAA16JQANeigADXopAA16KgANeisADXosAA16LgANejAADXoxAA16MgANejQADXo1AA16sAANerIADXq1AA16twANeroADXq7AA16vAANer0ADXq+AA16wAANesIADXrDAA16xAANesYADXrHAA17QgANe0QADXtGAA17SAANe0sADXtMAA17TQANe04ADXtPAA17UQANe1MADXtUAA17VQANe1cADXtYAA170wANe9UADXvXAA172QANe9wADXvdAA173gANe98ADXvgAA174gANe+QADXvlAA175gANe+gADXvpAA18ZAANfGYADXxoAA18agANfG0ADXxuAA18bwANfHAADXxxAA18cwANfHUADXx2AA18dwANfHkADXx6AA19DQANfTAADX1QAA19cAANfXIADX10AA19dgANfXgADX17AA19fAANfX0ADX2AAA19gQANfYMADX2EAA19hgANfYkADX2KAA19iwANfY4ADX2PAA19mAANfbEADX26AA19vAANfb4ADX3HAA19ygANfc0ADX3PAA1+GAANfjwADX5jAA1+hwANfooADX6MAA1+jgANfpAADX6SAA1+lAANfpUADX6YAA1+sQANftIADX7UAA1+1gANftgADX7aAA1+3AANft4ADX7gAA1+4gANfwMADX8GAA1/CQANfwwADX8PAA1/EgANfxUADX8YAA1/GwANfx0ADX+YAA1/mgANf5wADX+eAA1/oQANf6IADX+jAA1/pAANf6UADX+nAA1/qQANf6oADX+rAA1/rQANf64ADYApAA2AKwANgC0ADYAvAA2AMgANgDMADYA0AA2ANQANgDYADYA4AA2AOgANgDsADYA8AA2APgANgD8ADYC6AA2AvAANgL8ADYDBAA2AxAANgMUADYDGAA2AxwANgMgADYDKAA2AzAANgM0ADYDOAA2A0AANgNEADYDqAA2A6wANgOwADYDuAA2BaQANgWsADYFtAA2BbwANgXIADYFzAA2BdAANgXUADYF2AA2BeAANgXoADYF7AA2BfAANgX4ADYF/AA2B+gANgfwADYH+AA2CAAANggMADYIEAA2CBQANggYADYIHAA2CCQANggsADYIMAA2CDQANgg8ADYIQAA2CiwANgo0ADYKPAA2CkQANgpQADYKVAA2ClgANgpcADYKYAA2CmgANgpwADYKdAA2CngANgqAADYKhAA2DHAANgx4ADYMgAA2DIgANgyUADYMmAA2DJwANgygADYMpAA2DKwANgy0ADYMuAA2DLwANgzEADYMyAA2DrQANg68ADYOxAA2DswANg7YADYO3AA2DuAANg7kADYO6AA2DvAANg74ADYO/AA2DwAANg8IADYPDAA2EDAANhDAADYRXAA2EewANhH4ADYSAAA2EggANhIQADYSGAA2EiAANhIkADYSMAA2EpQANhMIADYTEAA2ExgANhMgADYTKAA2EzAANhM4ADYTQAA2E7QANhPAADYTzAA2E9gANhPkADYT8AA2E/wANhQIADYUEAA2FfwANhYEADYWDAA2FhQANhYgADYWJAA2FigANhYsADYWMAA2FjgANhZAADYWRAA2FkgANhZQADYWVAA2GEAANhhIADYYUAA2GFgANhhkADYYaAA2GGwANhhwADYYdAA2GHwANhiEADYYiAA2GIwANhiUADYYmAA2GoQANhqMADYalAA2GpwANhqoADYarAA2GrAANhq0ADYauAA2GsAANhrIADYazAA2GtAANhrYADYa3AA2HMgANhzQADYc2AA2HOAANhzsADYc8AA2HPQANhz4ADYc/AA2HQQANh0MADYdEAA2HRQANh0cADYdIAA2HwwANh8UADYfHAA2HyQANh8wADYfNAA2HzgANh88ADYfQAA2H0gANh9QADYfVAA2H1gANh9gADYfZAA2IVAANiFYADYhYAA2IWgANiF0ADYheAA2IXwANiGAADYhhAA2IYwANiGUADYhmAA2IZwANiGkADYhqAA2I5QANiOcADYjpAA2I6wANiO4ADYjvAA2I8AANiPEADYjyAA2I9AANiPYADYj3AA2I+AANiPoADYj7AA2JjgANibEADYnRAA2J8QANifMADYn1AA2J9wANifkADYn8AA2J/QANif4ADYoBAA2KAgANigQADYoFAA2KBwANigoADYoLAA2KDAANig8ADYoQAA2KFQANii4ADYo3AA2KOQANijsADYpEAA2KRwANikoADYpMAA2KlQANirkADYrgAA2LBAANiwcADYsJAA2LCwANiw0ADYsPAA2LEQANixIADYsVAA2LLgANi08ADYtRAA2LUwANi1UADYtXAA2LWQANi1sADYtdAA2LXwANi4AADYuDAA2LhgANi4kADYuMAA2LjwANi5IADYuVAA2LmAANi5oADYwVAA2MFwANjBkADYwbAA2MHgANjB8ADYwgAA2MIQANjCIADYwkAA2MJgANjCcADYwoAA2MKgANjCsADYymAA2MqAANjKoADYysAA2MrwANjLAADYyxAA2MsgANjLMADYy1AA2MtwANjLgADYy5AA2MuwANjLwADY03AA2NOQANjTwADY0+AA2NQQANjUIADY1DAA2NRAANjUUADY1HAA2NSQANjUoADY1LAA2NTQANjU4ADY1nAA2NaAANjWkADY1rAA2N5gANjegADY3qAA2N7AANje8ADY3wAA2N8QANjfIADY3zAA2N9QANjfcADY34AA2N+QANjfsADY38AA2OdwANjnkADY57AA2OfQANjoAADY6BAA2OggANjoMADY6EAA2OhgANjogADY6JAA2OigANjowADY6NAA2PCAANjwoADY8MAA2PDgANjxEADY8SAA2PEwANjxQADY8VAA2PFwANjxkADY8aAA2PGwANjx0ADY8eAA2PmQANj5sADY+dAA2PnwANj6IADY+jAA2PpAANj6UADY+mAA2PqAANj6oADY+rAA2PrAANj64ADY+vAA2QKgANkCwADZAuAA2QMAANkDMADZA0AA2QNQANkDYADZA3AA2QOQANkDsADZA8AA2QPQANkD8ADZBAAA2QiQANkK0ADZDUAA2Q+AANkPsADZD9AA2Q/wANkQEADZEDAA2RBQANkQYADZEJAA2RIgANkT8ADZFBAA2RQwANkUUADZFHAA2RSQANkUsADZFNAA2RagANkW0ADZFwAA2RcwANkXYADZF5AA2RfAANkX8ADZGBAA2R/AANkf4ADZIAAA2SAgANkgUADZIGAA2SBwANkggADZIJAA2SCwANkg0ADZIOAA2SDwANkhEADZISAA2SjQANko8ADZKRAA2SkwANkpYADZKXAA2SmAANkpkADZKaAA2SnAANkp4ADZKfAA2SoAANkqIADZKjAA2THgANkyAADZMiAA2TJAANkycADZMoAA2TKQANkyoADZMrAA2TLQANky8ADZMwAA2TMQANkzMADZM0AA2TrwANk7EADZO0AA2TtgANk7kADZO6AA2TuwANk7wADZO9AA2TvwANk8EADZPCAA2TwwANk8UADZPGAA2UQQANlEMADZRFAA2URwANlEoADZRLAA2UTAANlE0ADZROAA2UUAANlFIADZRTAA2UVAANlFYADZRXAA2U0gANlNQADZTWAA2U2AANlNsADZTcAA2U3QANlN4ADZTfAA2U4QANlOMADZTkAA2U5QANlOcADZToAA2VYwANlWUADZVnAA2VaQANlWwADZVtAA2VbgANlW8ADZVwAA2VcgANlXQADZV1AA2VdgANlXgADZV5AA2VigANlY8ADZWSAA2VlAANlZkADZYcAA2WQAANlmQADZaHAA2WrgANls4ADZb1AA2XHAANlzwADZdgAA2XhAANl4YADZeJAA2XiwANl40ADZePAA2XkgANl5UADZeXAA2XmQANl5wADZeeAA2XoAANl6MADZemAA2XpwANl6wADZfFAA2XygANl8wADZfRAA2X1AANl9YADZgfAA2YQwANmGoADZiOAA2YkQANmJMADZiVAA2YlwANmJkADZibAA2YnAANmJ8ADZi4AA2Y3QANmN8ADZjhAA2Y4wANmOUADZjnAA2Y6QANmOsADZjtAA2Y7wANmRQADZkXAA2ZGgANmR0ADZkgAA2ZIwANmSYADZkpAA2ZLAANmS8ADZkxAA2ZrAANma4ADZmxAA2ZswANmbYADZm3AA2ZuAANmbkADZm6AA2ZvAANmb4ADZm/AA2ZwAANmcIADZnDAA2Z1AANmdUADZnXAA2aUgANmlQADZpWAA2aWAANmlsADZpcAA2aXQANml4ADZpfAA2aYQANmmMADZpkAA2aZQANmmcADZpoAA2a4wANmuUADZroAA2a6gANmu0ADZruAA2a7wANmvAADZrxAA2a8wANmvUADZr2AA2a9wANmvkADZr6AA2bCwANmxAADZsTAA2bFQANmyYADZs3AA2bOgANmz0ADZtAAA2bQwANm0UADZthAA2bcwANm4YADZuSAA2cDQANnA8ADZwRAA2cEwANnBYADZwXAA2cGAANnBkADZwaAA2cHAANnB4ADZwfAA2cIAANnCIADZwjAA2cngANnKAADZyjAA2cpQANnKgADZypAA2cqgANnKsADZysAA2crgANnLAADZyxAA2csgANnLQADZy1AA2cxgANnMcADZzJAA2dRAANnUYADZ1IAA2dSgANnU0ADZ1OAA2dTwANnVAADZ1RAA2dUwANnVUADZ1WAA2dVwANnVkADZ1aAA2d1QANndcADZ3aAA2d3AANnd8ADZ3gAA2d4QANneIADZ3jAA2d5QANnecADZ3oAA2d6QANnesADZ3sAA2eBQANngYADZ4HAA2eCQANnoQADZ6GAA2eiAANnooADZ6NAA2ejgANno8ADZ6QAA2ekQANnpMADZ6VAA2elgANnpcADZ6ZAA2emgANnxUADZ8XAA2fGgANnxwADZ8fAA2fIAANnyEADZ8iAA2fIwANnyUADZ8nAA2fKAANnykADZ8rAA2fLAANn0QADZ9dAA2fjgANn5EADZ+UAA2flwANn5oADZ+dAA2foAANn6MADZ+mAA2fqQANn6wADZ+vAA2fsgANn+MADZ/mAA2f6QANn+wADZ/vAA2f8gANn/UADZ/4AA2f+wANn/4ADaABAA2gBAANoAcADaAJAA2gJQANoDkADaBSAA2gaQANoHwADaCUAA2grAANoMgADaDaAA2g5gANoXkADaGcAA2hvAANodwADaHeAA2h4AANoeIADaHkAA2h5wANoegADaHpAA2h7AANoe0ADaHvAA2h8AANofIADaH1AA2h9gANofcADaH6AA2h+wANogAADaIZAA2iIgANoiQADaImAA2iLwANojIADaI1AA2iNwANooAADaKkAA2iywANou8ADaLyAA2i9AANovYADaL4AA2i+gANovwADaL9AA2jAAANoxkADaM6AA2jPAANoz4ADaNAAA2jQgANo0QADaNGAA2jSAANo0oADaNrAA2jbgANo3EADaN0AA2jdwANo3oADaN9AA2jgAANo4MADaOFAA2kAAANpAIADaQEAA2kBgANpAkADaQKAA2kCwANpAwADaQNAA2kDwANpBEADaQSAA2kEwANpBUADaQWAA2kkQANpJMADaSVAA2klwANpJoADaSbAA2knAANpJ0ADaSeAA2koAANpKIADaSjAA2kpAANpKYADaSnAA2lIgANpSQADaUnAA2lKQANpSwADaUtAA2lLgANpS8ADaUwAA2lMgANpTQADaU1AA2lNgANpTgADaU5AA2lUgANpVMADaVUAA2lVgANpdEADaXTAA2l1QANpdcADaXaAA2l2wANpdwADaXdAA2l3gANpeAADaXiAA2l4wANpeQADaXmAA2l5wANpmIADaZkAA2mZgANpmgADaZrAA2mbAANpm0ADaZuAA2mbwANpnEADaZzAA2mdAANpnUADaZ3AA2meAANpvMADab1AA2m9wANpvkADab8AA2m/QANpv4ADab/AA2nAAANpwIADacEAA2nBQANpwYADacIAA2nCQANp4QADaeGAA2niAANp4oADaeNAA2njgANp48ADaeQAA2nkQANp5MADaeVAA2nlgANp5cADaeZAA2nmgANqBUADagXAA2oGQANqBsADageAA2oHwANqCAADaghAA2oIgANqCQADagmAA2oJwANqCgADagqAA2oKwANqHQADaiYAA2ovwANqOMADajmAA2o6AANqOoADajsAA2o7gANqPAADajxAA2o9AANqQ0ADakqAA2pLAANqS4ADakwAA2pMgANqTQADak2AA2pOAANqVUADalYAA2pWwANqV4ADalhAA2pZAANqWcADalqAA2pbAANqecADanpAA2p6wANqe0ADanwAA2p8QANqfIADanzAA2p9AANqfYADan4AA2p+QANqfoADan8AA2p/QANqngADap6AA2qfAANqn4ADaqBAA2qggANqoMADaqEAA2qhQANqocADaqJAA2qigANqosADaqNAA2qjgANqwkADasLAA2rDQANqw8ADasSAA2rEwANqxQADasVAA2rFgANqxgADasaAA2rGwANqxwADaseAA2rHwANq5oADaucAA2rnwANq6EADaukAA2rpQANq6YADaunAA2rqAANq6oADausAA2rrQANq64ADauwAA2rsQANrCwADawuAA2sMAANrDIADaw1AA2sNgANrDcADaw4AA2sOQANrDsADaw9AA2sPgANrD8ADaxBAA2sQgANrL0ADay/AA2swQANrMMADazGAA2sxwANrMgADazJAA2sygANrMwADazOAA2szwANrNAADazSAA2s0wANrU4ADa1QAA2tUgANrVQADa1XAA2tWAANrVkADa1aAA2tWwANrV0ADa1fAA2tYAANrWEADa1jAA2tZAANrfcADa4aAA2uOgANrloADa5cAA2uXgANrmAADa5iAA2uZQANrmYADa5nAA2uagANrmsADa5tAA2ubgANrnAADa5zAA2udAANrnUADa54AA2ueQANrn4ADa6XAA2uoAANrqIADa6kAA2urQANrrAADa6zAA2utQANrv4ADa8iAA2vSQANr20ADa9wAA2vcgANr3QADa92AA2veAANr3oADa97AA2vfgANr5cADa+4AA2vugANr7wADa++AA2vwAANr8IADa/EAA2vxgANr8gADa/pAA2v7AANr+8ADa/yAA2v9QANr/gADa/7AA2v/gANsAEADbADAA2wfgANsIAADbCCAA2whAANsIcADbCIAA2wiQANsIoADbCLAA2wjQANsI8ADbCQAA2wkQANsJMADbCUAA2xDwANsREADbETAA2xFQANsRgADbEZAA2xGgANsRsADbEcAA2xHgANsSAADbEhAA2xIgANsSQADbElAA2xoAANsaIADbGlAA2xpwANsaoADbGrAA2xrAANsa0ADbGuAA2xsAANsbIADbGzAA2xtAANsbYADbG3AA2x0AANsdEADbHSAA2x1AANsk8ADbJRAA2yUwANslUADbJYAA2yWQANsloADbJbAA2yXAANsl4ADbJgAA2yYQANsmIADbJkAA2yZQANsuAADbLiAA2y5AANsuYADbLpAA2y6gANsusADbLsAA2y7QANsu8ADbLxAA2y8gANsvMADbL1AA2y9gANs3EADbNzAA2zdQANs3cADbN6AA2zewANs3wADbN9AA2zfgANs4AADbOCAA2zgwANs4QADbOGAA2zhwANtAIADbQEAA20BgANtAgADbQLAA20DAANtA0ADbQOAA20DwANtBEADbQTAA20FAANtBUADbQXAA20GAANtJMADbSVAA20lwANtJkADbScAA20nQANtJ4ADbSfAA20oAANtKIADbSkAA20pQANtKYADbSoAA20qQANtPIADbUWAA21PQANtWEADbVkAA21ZgANtWgADbVqAA21bAANtW4ADbVvAA21cgANtYsADbWoAA21qgANtawADbWuAA21sAANtbIADbW0AA21tgANtdMADbXWAA212QANtdwADbXfAA214gANteUADbXoAA216gANtmUADbZnAA22aQANtmsADbZuAA22bwANtnAADbZxAA22cgANtnQADbZ2AA22dwANtngADbZ6AA22ewANtvYADbb4AA22+gANtvwADbb/AA23AAANtwEADbcCAA23AwANtwUADbcHAA23CAANtwkADbcLAA23DAANt4cADbeJAA23iwANt40ADbeQAA23kQANt5IADbeTAA23lAANt5YADbeYAA23mQANt5oADbecAA23nQANuBgADbgaAA24HQANuB8ADbgiAA24IwANuCQADbglAA24JgANuCgADbgqAA24KwANuCwADbguAA24LwANuKoADbisAA24rgANuLAADbizAA24tAANuLUADbi2AA24twANuLkADbi7AA24vAANuL0ADbi/AA24wAANuTsADbk9AA25PwANuUEADblEAA25RQANuUYADblHAA25SAANuUoADblMAA25TQANuU4ADblQAA25UQANucwADbnOAA250AANudIADbnVAA251gANudcADbnYAA252QANudsADbndAA253gANud8ADbnhAA254gANunUADbqYAA26uAANutgADbraAA263AANut4ADbrgAA264wANuuQADbrlAA266AANuukADbrrAA267AANuu4ADbrxAA268gANuvMADbr2AA269wANuwAADbsZAA27IgANuyQADbsmAA27LwANuzIADbs1AA27NwANu4AADbukAA27ywANu+8ADbvyAA279AANu/YADbv4AA27+gANu/wADbv9AA28AAANvBkADbw6AA28PAANvD4ADbxAAA28QgANvEQADbxGAA28SAANvEoADbxrAA28bgANvHEADbx0AA28dwANvHoADbx9AA28gAANvIMADbyFAA29AAANvQIADb0EAA29BgANvQkADb0KAA29CwANvQwADb0NAA29DwANvREADb0SAA29EwANvRUADb0WAA29kQANvZMADb2VAA29lwANvZoADb2bAA29nAANvZ0ADb2eAA29oAANvaIADb2jAA29pAANvaYADb2nAA2+IgANviQADb4nAA2+KQANviwADb4tAA2+LgANvi8ADb4wAA2+MgANvjQADb41AA2+NgANvjgADb45AA2+UgANvlMADb5UAA2+VgANvtEADb7TAA2+1QANvtcADb7aAA2+2wANvtwADb7dAA2+3gANvuAADb7iAA2+4wANvuQADb7mAA2+5wANv2IADb9kAA2/ZgANv2gADb9rAA2/bAANv20ADb9uAA2/bwANv3EADb9zAA2/dAANv3UADb93AA2/eAANv/MADb/1AA2/9wANv/kADb/8AA2//QANv/4ADb//AA3AAAANwAIADcAEAA3ABQANwAYADcAIAA3ACQANwIQADcCGAA3AiAANwIoADcCNAA3AjgANwI8ADcCQAA3AkQANwJMADcCVAA3AlgANwJcADcCZAA3AmgANwRUADcEXAA3BGQANwRsADcEeAA3BHwANwSAADcEhAA3BIgANwSQADcEmAA3BJwANwSgADcEqAA3BKwANwXQADcGYAA3BvwANweMADcHmAA3B6AANweoADcHsAA3B7gANwfAADcHxAA3B9AANwg0ADcIqAA3CLAANwi4ADcIwAA3CMgANwjQADcI2AA3COAANwlUADcJYAA3CWwANwl4ADcJhAA3CZAANwmcADcJqAA3CbAANwucADcLpAA3C6wANwu0ADcLwAA3C8QANwvIADcLzAA3C9AANwvYADcL4AA3C+QANwvoADcL8AA3C/QANw3gADcN6AA3DfAANw34ADcOBAA3DggANw4MADcOEAA3DhQANw4cADcOJAA3DigANw4sADcONAA3DjgANxAkADcQLAA3EDQANxA8ADcQSAA3EEwANxBQADcQVAA3EFgANxBgADcQaAA3EGwANxBwADcQeAA3EHwANxJoADcScAA3EngANxKAADcSjAA3EpAANxKUADcSmAA3EpwANxKkADcSrAA3ErAANxK0ADcSvAA3EsAANxSsADcUtAA3FLwANxTEADcU0AA3FNQANxTYADcU3AA3FOAANxToADcU8AA3FPQANxT4ADcVAAA3FQQANxbwADcW+AA3FwAANxcIADcXFAA3FxgANxccADcXIAA3FyQANxcsADcXNAA3FzgANxc8ADcXRAA3F0gANxk0ADcZPAA3GUQANxlMADcZWAA3GVwANxlgADcZZAA3GWgANxlwADcZeAA3GXwANxmAADcZiAA3GYwANxvYADccZAA3HOQANx1kADcdbAA3HXQANx18ADcdhAA3HZAANx2UADcdmAA3HaQANx2oADcdsAA3HbQANx28ADcdyAA3HcwANx3QADcd3AA3HeAANx30ADceWAA3HnwANx6EADcejAA3HrAANx68ADceyAA3HtAANx/0ADcghAA3ISAANyGwADchvAA3IcQANyHMADch1AA3IdwANyHkADch6AA3IfQANyJYADci3AA3IuQANyLsADci9AA3IvwANyMEADcjDAA3IxQANyMcADcjoAA3I6wANyO4ADcjxAA3I9AANyPcADcj6AA3I/QANyQAADckCAA3JfQANyX8ADcmBAA3JgwANyYYADcmHAA3JiAANyYkADcmKAA3JjAANyY4ADcmPAA3JkAANyZIADcmTAA3KDgANyhAADcoSAA3KFAANyhcADcoYAA3KGQANyhoADcobAA3KHQANyh8ADcogAA3KIQANyiMADcokAA3KnwANyqEADcqkAA3KpgANyqkADcqqAA3KqwANyqwADcqtAA3KrwANyrEADcqyAA3KswANyrUADcq2AA3KzwANytAADcrRAA3K0wANy04ADctQAA3LUgANy1QADctXAA3LWAANy1kADctaAA3LWwANy10ADctfAA3LYAANy2EADctjAA3LZAANy98ADcvhAA3L4wANy+UADcvoAA3L6QANy+oADcvrAA3L7AANy+4ADcvwAA3L8QANy/IADcv0AA3L9QANzHAADcxyAA3MdAANzHYADcx5AA3MegANzHsADcx8AA3MfQANzH8ADcyBAA3MggANzIMADcyFAA3MhgANzQEADc0DAA3NBQANzQcADc0KAA3NCwANzQwADc0NAA3NDgANzRAADc0SAA3NEwANzRQADc0WAA3NFwANzZIADc2UAA3NlgANzZgADc2bAA3NnAANzZ0ADc2eAA3NnwANzaEADc2jAA3NpAANzaUADc2nAA3NqAANzfEADc4VAA3OPAANzmAADc5jAA3OZQANzmcADc5pAA3OawANzm0ADc5uAA3OcQANzooADc6nAA3OqQANzqsADc6tAA3OrwANzrEADc6zAA3OtQANztIADc7VAA3O2AANztsADc7eAA3O4QANzuQADc7nAA3O6QANz2QADc9mAA3PaAANz2oADc9tAA3PbgANz28ADc9wAA3PcQANz3MADc91AA3PdgANz3cADc95AA3PegANz/UADc/3AA3P+QANz/sADc/+AA3P/wAN0AAADdABAA3QAgAN0AQADdAGAA3QBwAN0AgADdAKAA3QCwAN0IYADdCIAA3QigAN0IwADdCPAA3QkAAN0JEADdCSAA3QkwAN0JUADdCXAA3QmAAN0JkADdCbAA3QnAAN0RcADdEZAA3RHAAN0R4ADdEhAA3RIgAN0SMADdEkAA3RJQAN0ScADdEpAA3RKgAN0SsADdEtAA3RLgAN0akADdGrAA3RrQAN0a8ADdGyAA3RswAN0bQADdG1AA3RtgAN0bgADdG6AA3RuwAN0bwADdG+AA3RvwAN0joADdI8AA3SPgAN0kAADdJDAA3SRAAN0kUADdJGAA3SRwAN0kkADdJLAA3STAAN0k0ADdJPAA3SUAAN0ssADdLNAA3SzwAN0tEADdLUAA3S1QAN0tYADdLXAA3S2AAN0toADdLcAA3S3QAN0t4ADdLgAA3S4QAN03QADdOXAA3TtwAN09cADdPZAA3T2wAN090ADdPfAA3T4gAN0+MADdPkAA3T5wAN0+gADdPqAA3T6wAN0+0ADdPwAA3T8QAN0/IADdP1AA3T9gAN0/sADdQUAA3UHQAN1B8ADdQhAA3UKgAN1C0ADdQwAA3UMgAN1HsADdSfAA3UxgAN1OoADdTtAA3U7wAN1PEADdTzAA3U9QAN1PcADdT4AA3U+wAN1RQADdU1AA3VNwAN1TkADdU7AA3VPQAN1T8ADdVBAA3VQwAN1UUADdVmAA3VaQAN1WwADdVvAA3VcgAN1XUADdV4AA3VewAN1X4ADdWAAA3V+wAN1f0ADdX/AA3WAQAN1gQADdYFAA3WBgAN1gcADdYIAA3WCgAN1gwADdYNAA3WDgAN1hAADdYRAA3WjAAN1o4ADdaQAA3WkgAN1pUADdaWAA3WlwAN1pgADdaZAA3WmwAN1p0ADdaeAA3WnwAN1qEADdaiAA3XHQAN1x8ADdciAA3XJAAN1ycADdcoAA3XKQAN1yoADdcrAA3XLQAN1y8ADdcwAA3XMQAN1zMADdc0AA3XTQAN104ADddPAA3XUQAN18wADdfOAA3X0AAN19IADdfVAA3X1gAN19cADdfYAA3X2QAN19sADdfdAA3X3gAN198ADdfhAA3X4gAN2F0ADdhfAA3YYQAN2GMADdhmAA3YZwAN2GgADdhpAA3YagAN2GwADdhuAA3YbwAN2HAADdhyAA3YcwAN2O4ADdjwAA3Y8gAN2PQADdj3AA3Y+AAN2PkADdj6AA3Y+wAN2P0ADdj/AA3ZAAAN2QEADdkDAA3ZBAAN2X8ADdmBAA3ZgwAN2YUADdmIAA3ZiQAN2YoADdmLAA3ZjAAN2Y4ADdmQAA3ZkQAN2ZIADdmUAA3ZlQAN2hAADdoSAA3aFAAN2hYADdoZAA3aGgAN2hsADdocAA3aHQAN2h8ADdohAA3aIgAN2iMADdolAA3aJgAN2m8ADdqTAA3augAN2t4ADdrhAA3a4wAN2uUADdrnAA3a6QAN2usADdrsAA3a7wAN2wgADdslAA3bJwAN2ykADdsrAA3bLQAN2y8ADdsxAA3bMwAN21AADdtTAA3bVgAN21kADdtcAA3bXwAN22IADdtlAA3bZwAN2+IADdvkAA3b5gAN2+gADdvrAA3b7AAN2+0ADdvuAA3b7wAN2/EADdvzAA3b9AAN2/UADdv3AA3b+AAN3HMADdx1AA3cdwAN3HkADdx8AA3cfQAN3H4ADdx/AA3cgAAN3IIADdyEAA3chQAN3IYADdyIAA3ciQAN3QQADd0GAA3dCAAN3QoADd0NAA3dDgAN3Q8ADd0QAA3dEQAN3RMADd0VAA3dFgAN3RcADd0ZAA3dGgAN3ZUADd2XAA3dmQAN3ZsADd2eAA3dnwAN3aAADd2hAA3dogAN3aQADd2mAA3dpwAN3agADd2qAA3dqwAN3iYADd4oAA3eKgAN3iwADd4vAA3eMAAN3jEADd4yAA3eMwAN3jUADd43AA3eOAAN3jkADd47AA3ePAAN3rcADd65AA3euwAN3r0ADd7AAA3ewQAN3sIADd7DAA3exAAN3sYADd7IAA3eyQAN3soADd7MAA3ezQAN30gADd9KAA3fTAAN304ADd9RAA3fUgAN31MADd9UAA3fVQAN31cADd9ZAA3fWgAN31sADd9dAA3fXgAN3/EADeAUAA3gNAAN4FQADeBWAA3gWAAN4FoADeBcAA3gXwAN4GAADeBhAA3gZAAN4GUADeBnAA3gaAAN4GoADeBtAA3gbgAN4G8ADeByAA3gcwAN4HwADeCVAA3gngAN4KAADeCiAA3gqwAN4K4ADeCxAA3gswAN4PwADeEgAA3hRwAN4WsADeFuAA3hcAAN4XIADeF0AA3hdgAN4XgADeF5AA3hfAAN4ZUADeG2AA3huAAN4boADeG8AA3hvgAN4cAADeHCAA3hxAAN4cYADeHnAA3h6gAN4e0ADeHwAA3h8wAN4fYADeH5AA3h/AAN4f8ADeIBAA3ifAAN4n4ADeKAAA3iggAN4oUADeKGAA3ihwAN4ogADeKJAA3iiwAN4o0ADeKOAA3ijwAN4pEADeKSAA3jDQAN4w8ADeMRAA3jEwAN4xYADeMXAA3jGAAN4xkADeMaAA3jHAAN4x4ADeMfAA3jIAAN4yIADeMjAA3jngAN46AADeOjAA3jpQAN46gADeOpAA3jqgAN46sADeOsAA3jrgAN47AADeOxAA3jsgAN47QADeO1AA3jzgAN488ADePQAA3j0gAN5E0ADeRPAA3kUQAN5FMADeRWAA3kVwAN5FgADeRZAA3kWgAN5FwADeReAA3kXwAN5GAADeRiAA3kYwAN5N4ADeTgAA3k4gAN5OQADeTnAA3k6AAN5OkADeTqAA3k6wAN5O0ADeTvAA3k8AAN5PEADeTzAA3k9AAN5W8ADeVxAA3lcwAN5XUADeV4AA3leQAN5XoADeV7AA3lfAAN5X4ADeWAAA3lgQAN5YIADeWEAA3lhQAN5gAADeYCAA3mBAAN5gYADeYJAA3mCgAN5gsADeYMAA3mDQAN5g8ADeYRAA3mEgAN5hMADeYVAA3mFgAN5pEADeaTAA3mlQAN5pcADeaaAA3mmwAN5pwADeadAA3mngAN5qAADeaiAA3mowAN5qQADeamAA3mpwAN5vAADecUAA3nOwAN518ADediAA3nZAAN52YADedoAA3nagAN52wADedtAA3ncAAN54kADeemAA3nqAAN56oADeesAA3nrgAN57AADeeyAA3ntAAN59EADefUAA3n1wAN59oADefdAA3n4AAN5+MADefmAA3n6AAN6GMADehlAA3oZwAN6GkADehsAA3obQAN6G4ADehvAA3ocAAN6HIADeh0AA3odQAN6HYADeh4AA3oeQAN6PQADej2AA3o+AAN6PoADej9AA3o/gAN6P8ADekAAA3pAQAN6QMADekFAA3pBgAN6QcADekJAA3pCgAN6YUADemHAA3piQAN6YsADemOAA3pjwAN6ZAADemRAA3pkgAN6ZQADemWAA3plwAN6ZgADemaAA3pmwAN6hYADeoYAA3qGgAN6hwADeofAA3qIAAN6iEADeoiAA3qIwAN6iUADeonAA3qKAAN6ikADeorAA3qLAAN6qcADeqpAA3qqwAN6q0ADeqwAA3qsQAN6rIADeqzAA3qtAAN6rYADeq4AA3quQAN6roADeq8AA3qvQAN6zgADes6AA3rPAAN6z4ADetBAA3rQgAN60MADetEAA3rRQAN60cADetJAA3rSgAN60sADetNAA3rTgAN68kADevLAA3rzQAN688ADevSAA3r0wAN69QADevVAA3r1gAN69gADevaAA3r2wAN69wADeveAA3r3wAN7HIADeyVAA3stQAN7NUADezXAA3s2QAN7NsADezdAA3s4AAN7OEADeziAA3s5QAN7OYADezoAA3s6QAN7OsADezuAA3s7wAN7PAADezzAA3s9AAN7PkADe0SAA3tGwAN7R0ADe0fAA3tKAAN7SsADe0uAA3tMAAN7XkADe2dAA3txAAN7egADe3rAA3t7QAN7e8ADe3xAA3t8wAN7fUADe32AA3t+QAN7hIADe4zAA3uNQAN7jcADe45AA3uOwAN7j0ADe4/AA3uQQAN7kMADe5kAA3uZwAN7moADe5tAA3ucAAN7nMADe52AA3ueQAN7nwADe5+AA3u+QAN7vsADe79AA3u/wAN7wIADe8DAA3vBAAN7wUADe8GAA3vCAAN7woADe8LAA3vDAAN7w4ADe8PAA3vigAN74wADe+OAA3vkAAN75MADe+UAA3vlQAN75YADe+XAA3vmQAN75sADe+cAA3vnQAN758ADe+gAA3wGwAN8B0ADfAgAA3wIgAN8CUADfAmAA3wJwAN8CgADfApAA3wKwAN8C0ADfAuAA3wLwAN8DEADfAyAA3wSwAN8EwADfBNAA3wTwAN8MoADfDMAA3wzgAN8NAADfDTAA3w1AAN8NUADfDWAA3w1wAN8NkADfDbAA3w3AAN8N0ADfDfAA3w4AAN8VsADfFdAA3xXwAN8WEADfFkAA3xZQAN8WYADfFnAA3xaAAN8WoADfFsAA3xbQAN8W4ADfFwAA3xcQAN8ewADfHuAA3x8AAN8fIADfH1AA3x9gAN8fcADfH4AA3x+QAN8fsADfH9AA3x/gAN8f8ADfIBAA3yAgAN8n0ADfJ/AA3ygQAN8oMADfKGAA3yhwAN8ogADfKJAA3yigAN8owADfKOAA3yjwAN8pAADfKSAA3ykwAN8w4ADfMQAA3zEgAN8xQADfMXAA3zGAAN8xkADfMaAA3zGwAN8x0ADfMfAA3zIAAN8yEADfMjAA3zJAAN820ADfORAA3zuAAN89wADfPfAA3z4QAN8+MADfPlAA3z5wAN8+kADfPqAA3z7QAN9AYADfQjAA30JQAN9CcADfQpAA30KwAN9C0ADfQvAA30MQAN9E4ADfRRAA30VAAN9FcADfRaAA30XQAN9GAADfRjAA30ZQAN9OAADfTiAA305AAN9OYADfTpAA306gAN9OsADfTsAA307QAN9O8ADfTxAA308gAN9PMADfT1AA309gAN9XEADfVzAA31dQAN9XcADfV6AA31ewAN9XwADfV9AA31fgAN9YAADfWCAA31gwAN9YQADfWGAA31hwAN9gIADfYEAA32BgAN9ggADfYLAA32DAAN9g0ADfYOAA32DwAN9hEADfYTAA32FAAN9hUADfYXAA32GAAN9pMADfaVAA32lwAN9pkADfacAA32nQAN9p4ADfafAA32oAAN9qIADfakAA32pQAN9qYADfaoAA32qQAN9yQADfcmAA33KAAN9yoADfctAA33LgAN9y8ADfcwAA33MQAN9zMADfc1AA33NgAN9zcADfc5AA33OgAN97UADfe3AA33uQAN97sADfe+AA33vwAN98AADffBAA33wgAN98QADffGAA33xwAN98gADffKAA33ywAN+EYADfhIAA34SgAN+EwADfhPAA34UAAN+FEADfhSAA34UwAN+FUADfhXAA34WAAN+FkADfhbAA34XAAN+O8ADfkSAA35MgAN+VIADflUAA35VgAN+VgADflaAA35XQAN+V4ADflfAA35YgAN+WMADfllAA35ZgAN+WgADflrAA35bAAN+W0ADflwAA35cQAN+XYADfmPAA35mAAN+ZoADfmcAA35pQAN+agADfmrAA35rQAN+fYADfoaAA36QQAN+mUADfpoAA36agAN+mwADfpuAA36cAAN+nIADfpzAA36dgAN+o8ADfqwAA36sgAN+rQADfq2AA36uAAN+roADfq8AA36vgAN+sAADfrhAA365AAN+ucADfrqAA367QAN+vAADfrzAA369gAN+vkADfr7AA37dgAN+3gADft6AA37fAAN+38ADfuAAA37gQAN+4IADfuDAA37hQAN+4cADfuIAA37iQAN+4sADfuMAA38BwAN/AkADfwLAA38DQAN/BAADfwRAA38EgAN/BMADfwUAA38FgAN/BgADfwZAA38GgAN/BwADfwdAA38mAAN/JoADfydAA38nwAN/KIADfyjAA38pAAN/KUADfymAA38qAAN/KoADfyrAA38rAAN/K4ADfyvAA38yAAN/MkADfzKAA38zAAN/UcADf1JAA39SwAN/U0ADf1QAA39UQAN/VIADf1TAA39VAAN/VYADf1YAA39WQAN/VoADf1cAA39XQAN/dgADf3aAA393AAN/d4ADf3hAA394gAN/eMADf3kAA395QAN/ecADf3pAA396gAN/esADf3tAA397gAN/mkADf5rAA3+bQAN/m8ADf5yAA3+cwAN/nQADf51AA3+dgAN/ngADf56AA3+ewAN/nwADf5+AA3+fwAN/voADf78AA3+/gAN/wAADf8DAA3/BAAN/wUADf8GAA3/BwAN/wkADf8LAA3/DAAN/w0ADf8PAA3/EAAN/4sADf+NAA3/jwAN/5EADf+UAA3/lQAN/5YADf+XAA3/mAAN/5oADf+cAA3/nQAN/54ADf+gAA3/oQAN/+oADgAOAA4ANQAOAFkADgBcAA4AXgAOAGAADgBiAA4AZAAOAGYADgBnAA4AagAOAIMADgCgAA4AogAOAKQADgCmAA4AqAAOAKoADgCsAA4ArgAOAMsADgDOAA4A0QAOANQADgDXAA4A2gAOAN0ADgDgAA4A4gAOAV0ADgFfAA4BYQAOAWMADgFmAA4BZwAOAWgADgFpAA4BagAOAWwADgFuAA4BbwAOAXAADgFyAA4BcwAOAe4ADgHwAA4B8gAOAfQADgH3AA4B+AAOAfkADgH6AA4B+wAOAf0ADgH/AA4CAAAOAgEADgIDAA4CBAAOAn8ADgKBAA4CgwAOAoUADgKIAA4CiQAOAooADgKLAA4CjAAOAo4ADgKQAA4CkQAOApIADgKUAA4ClQAOAxAADgMSAA4DFQAOAxcADgMaAA4DGwAOAxwADgMdAA4DHgAOAyAADgMiAA4DIwAOAyQADgMmAA4DJwAOA6IADgOkAA4DpgAOA6gADgOrAA4DrAAOA60ADgOuAA4DrwAOA7EADgOzAA4DtAAOA7UADgO3AA4DuAAOBDMADgQ1AA4ENwAOBDkADgQ8AA4EPQAOBD4ADgQ/AA4EQAAOBEIADgREAA4ERQAOBEYADgRIAA4ESQAOBMQADgTGAA4EyAAOBMoADgTNAA4EzgAOBM8ADgTQAA4E0QAOBNMADgTVAA4E1gAOBNcADgTZAA4E2gAOBW0ADgWQAA4FsAAOBdAADgXSAA4F1AAOBdYADgXYAA4F2wAOBdwADgXdAA4F4AAOBeEADgXjAA4F5AAOBecADgXqAA4F6wAOBewADgXvAA4F8AAOBfUADgYOAA4GFwAOBhkADgYcAA4GJQAOBigADgYrAA4GLQAOBnYADgaaAA4GwQAOBuUADgboAA4G6gAOBuwADgbuAA4G8AAOBvIADgbzAA4G9gAOBw8ADgcwAA4HMgAOBzQADgc2AA4HOAAOBzoADgc8AA4HPgAOB0AADgdhAA4HZAAOB2cADgdqAA4HbQAOB3AADgdzAA4HdgAOB3kADgd7AA4H9gAOB/gADgf6AA4H/AAOB/8ADggAAA4IAQAOCAIADggDAA4IBQAOCAcADggIAA4ICQAOCAsADggMAA4IhwAOCIkADgiLAA4IjQAOCJAADgiRAA4IkgAOCJMADgiUAA4IlgAOCJgADgiZAA4ImgAOCJwADgidAA4JGAAOCRoADgkdAA4JHwAOCSIADgkjAA4JJAAOCSUADgkmAA4JKAAOCSoADgkrAA4JLAAOCS4ADgkvAA4JSAAOCUkADglKAA4JTAAOCccADgnJAA4JywAOCc0ADgnQAA4J0QAOCdIADgnTAA4J1AAOCdYADgnYAA4J2QAOCdoADgncAA4J3QAOClgADgpaAA4KXAAOCl4ADgphAA4KYgAOCmMADgpkAA4KZQAOCmcADgppAA4KagAOCmsADgptAA4KbgAOCukADgrrAA4K7QAOCu8ADgryAA4K8wAOCvQADgr1AA4K9gAOCvgADgr6AA4K+wAOCvwADgr+AA4K/wAOC3oADgt8AA4LfgAOC4AADguDAA4LhAAOC4UADguGAA4LhwAOC4kADguLAA4LjAAOC40ADguPAA4LkAAODAsADgwNAA4MDwAODBEADgwUAA4MFQAODBYADgwXAA4MGAAODBoADgwcAA4MHQAODB4ADgwgAA4MIQAODGoADgyOAA4MtQAODNkADgzcAA4M3wAODOEADgzjAA4M5QAODOcADgzoAA4M6wAODQQADg0hAA4NJAAODScADg0qAA4NLQAODTAADg0zAA4NNgAODVMADg1WAA4NWQAODVwADg1fAA4NYgAODWUADg1oAA4NagAODeUADg3nAA4N6gAODewADg3vAA4N8AAODfEADg3yAA4N8wAODfUADg34AA4N+QAODfoADg38AA4N/QAODngADg56AA4OfQAODn8ADg6CAA4OgwAODoQADg6FAA4OhgAODogADg6LAA4OjAAODo0ADg6PAA4OkAAODwsADg8NAA4PEAAODxIADg8VAA4PFgAODxcADg8YAA4PGQAODxsADg8eAA4PHwAODyAADg8iAA4PIwAOD54ADg+gAA4PowAOD6UADg+oAA4PqQAOD6oADg+rAA4PrAAOD64ADg+xAA4PsgAOD7MADg+1AA4PtgAOEDkADhBdAA4QgQAOEKQADhDLAA4Q6wAOERIADhE5AA4RWQAOEX0ADhGhAA4RowAOEaYADhGoAA4RqgAOEawADhGvAA4RsgAOEbQADhG2AA4RuQAOEbsADhG9AA4RwAAOEcMADhHEAA4RyQAOEeIADhHnAA4R6QAOEe4ADhHxAA4R8wAOEjwADhJgAA4ShwAOEqsADhKuAA4SsAAOErIADhK0AA4StgAOErgADhK5AA4SvAAOEtUADhL6AA4S/AAOEv4ADhMAAA4TAgAOEwQADhMGAA4TCAAOEwoADhMMAA4TMQAOEzQADhM3AA4TOgAOEz0ADhNAAA4TQwAOE0YADhNJAA4TTAAOE04ADhPJAA4TywAOE84ADhPQAA4T0wAOE9QADhPVAA4T1gAOE9cADhPZAA4T2wAOE9wADhPdAA4T3wAOE+AADhPxAA4T8gAOE/QADhRvAA4UcQAOFHMADhR1AA4UeAAOFHkADhR6AA4UewAOFHwADhR+AA4UgAAOFIEADhSCAA4UhAAOFIUADhUAAA4VAgAOFQUADhUHAA4VCgAOFQsADhUMAA4VDQAOFQ4ADhUQAA4VEgAOFRMADhUUAA4VFgAOFRcADhUoAA4VLQAOFTAADhUyAA4VQwAOFVAADhVTAA4VVgAOFVkADhVbAA4VdwAOFYkADhWcAA4WFwAOFhkADhYbAA4WHQAOFiAADhYhAA4WIgAOFiMADhYkAA4WJgAOFigADhYpAA4WKgAOFiwADhYtAA4WqAAOFqoADhatAA4WrwAOFrIADhazAA4WtAAOFrUADha2AA4WuAAOFroADha7AA4WvAAOFr4ADha/AA4W0AAOFtEADhbTAA4XTgAOF1AADhdSAA4XVAAOF1cADhdYAA4XWQAOF1oADhdbAA4XXQAOF18ADhdgAA4XYQAOF2MADhdkAA4X3wAOF+EADhfkAA4X5gAOF+kADhfqAA4X6wAOF+wADhftAA4X7wAOF/EADhfyAA4X8wAOF/UADhf2AA4YDwAOGBAADhgRAA4YEwAOGI4ADhiQAA4YkgAOGJQADhiXAA4YmAAOGJkADhiaAA4YmwAOGJ0ADhifAA4YoAAOGKEADhijAA4YpAAOGR8ADhkhAA4ZJAAOGSYADhkpAA4ZKgAOGSsADhksAA4ZLQAOGS8ADhkxAA4ZMgAOGTMADhk1AA4ZNgAOGUkADhliAA4ZjwAOGZIADhmVAA4ZmAAOGZsADhmeAA4ZoQAOGaQADhmnAA4ZqgAOGa0ADhmwAA4Z3QAOGeAADhnjAA4Z5gAOGekADhnsAA4Z7wAOGfIADhn1AA4Z+AAOGfsADhn+AA4aAAAOGhwADhovAA4aQQAOGlMADhpbAA4afwAOGpsADhquAA4bQQAOG2QADhuEAA4bpAAOG6YADhuoAA4bqgAOG6wADhuvAA4bsAAOG7EADhu0AA4btQAOG7cADhu4AA4bugAOG70ADhu+AA4bvwAOG8IADhvDAA4byAAOG+EADhvqAA4b7AAOG+4ADhv3AA4b+gAOG/0ADhv/AA4cSAAOHGwADhyTAA4ctwAOHLoADhy8AA4cvgAOHMAADhzCAA4cxAAOHMUADhzIAA4c4QAOHQIADh0EAA4dBgAOHQgADh0KAA4dDAAOHQ4ADh0QAA4dEgAOHTMADh02AA4dOQAOHTwADh0/AA4dQgAOHUUADh1IAA4dSwAOHU0ADh3IAA4dygAOHcwADh3OAA4d0QAOHdIADh3TAA4d1AAOHdUADh3XAA4d2QAOHdoADh3bAA4d3QAOHd4ADh5ZAA4eWwAOHl0ADh5fAA4eYgAOHmMADh5kAA4eZQAOHmYADh5oAA4eagAOHmsADh5sAA4ebgAOHm8ADh7qAA4e7AAOHu8ADh7xAA4e9AAOHvUADh72AA4e9wAOHvgADh76AA4e/AAOHv0ADh7+AA4fAAAOHwEADh8aAA4fGwAOHxwADh8eAA4fmQAOH5sADh+dAA4fnwAOH6IADh+jAA4fpAAOH6UADh+mAA4fqAAOH6oADh+rAA4frAAOH64ADh+vAA4gKgAOICwADiAuAA4gMAAOIDMADiA0AA4gNQAOIDYADiA3AA4gOQAOIDsADiA8AA4gPQAOID8ADiBAAA4guwAOIL0ADiC/AA4gwQAOIMQADiDFAA4gxgAOIMcADiDIAA4gygAOIMwADiDNAA4gzgAOINAADiDRAA4hTAAOIU4ADiFQAA4hUgAOIVUADiFWAA4hVwAOIVgADiFZAA4hWwAOIV0ADiFeAA4hXwAOIWEADiFiAA4h3QAOId8ADiHhAA4h4wAOIeYADiHnAA4h6AAOIekADiHqAA4h7AAOIe4ADiHvAA4h8AAOIfIADiHzAA4iPAAOImAADiKHAA4iqwAOIq4ADiKwAA4isgAOIrQADiK2AA4iuAAOIrkADiK8AA4i1QAOIvIADiL0AA4i9gAOIvgADiL6AA4i/AAOIv4ADiMAAA4jHQAOIyAADiMjAA4jJgAOIykADiMsAA4jLwAOIzIADiM0AA4jrwAOI7EADiO0AA4jtgAOI7kADiO6AA4juwAOI7wADiO9AA4jvwAOI8EADiPCAA4jwwAOI8UADiPGAA4kQQAOJEMADiRFAA4kRwAOJEoADiRLAA4kTAAOJE0ADiROAA4kUAAOJFIADiRTAA4kVAAOJFYADiRXAA4k0gAOJNQADiTWAA4k2AAOJNsADiTcAA4k3QAOJN4ADiTfAA4k4QAOJOMADiTkAA4k5QAOJOcADiToAA4lYwAOJWUADiVoAA4lagAOJW0ADiVuAA4lbwAOJXAADiVxAA4lcwAOJXUADiV2AA4ldwAOJXkADiV6AA4l9QAOJfcADiX5AA4l+wAOJf4ADiX/AA4mAAAOJgEADiYCAA4mBAAOJgYADiYHAA4mCAAOJgoADiYLAA4mhgAOJogADiaKAA4mjAAOJo8ADiaQAA4mkQAOJpIADiaTAA4mlQAOJpcADiaYAA4mmQAOJpsADiacAA4nFwAOJxkADicbAA4nHQAOJyAADichAA4nIgAOJyMADickAA4nJgAOJygADicpAA4nKgAOJywADictAA4nwAAOJ+MADigDAA4oIwAOKCUADignAA4oKQAOKCsADiguAA4oLwAOKDAADigzAA4oNAAOKDYADig3AA4oOQAOKDwADig9AA4oPgAOKEEADihCAA4oRwAOKGAADihpAA4oawAOKG0ADih2AA4oeQAOKHwADih+AA4oxwAOKOsADikSAA4pNgAOKTkADik7AA4pPQAOKT8ADilBAA4pQwAOKUQADilHAA4pYAAOKYEADimDAA4phQAOKYcADimJAA4piwAOKY0ADimPAA4pkQAOKbIADim1AA4puAAOKbsADim+AA4pwQAOKcQADinHAA4pygAOKcwADipHAA4qSQAOKksADipNAA4qUAAOKlEADipSAA4qUwAOKlQADipWAA4qWAAOKlkADipaAA4qXAAOKl0ADirYAA4q2gAOKtwADireAA4q4QAOKuIADirjAA4q5AAOKuUADirnAA4q6QAOKuoADirrAA4q7QAOKu4ADitpAA4rawAOK24ADitwAA4rcwAOK3QADit1AA4rdgAOK3cADit5AA4rewAOK3wADit9AA4rfwAOK4AADiuZAA4rmgAOK5sADiudAA4sGAAOLBoADiwcAA4sHgAOLCEADiwiAA4sIwAOLCQADiwlAA4sJwAOLCkADiwqAA4sKwAOLC0ADiwuAA4sqQAOLKsADiytAA4srwAOLLIADiyzAA4stAAOLLUADiy2AA4suAAOLLoADiy7AA4svAAOLL4ADiy/AA4tOgAOLTwADi0+AA4tQAAOLUMADi1EAA4tRQAOLUYADi1HAA4tSQAOLUsADi1MAA4tTQAOLU8ADi1QAA4tywAOLc0ADi3PAA4t0QAOLdQADi3VAA4t1gAOLdcADi3YAA4t2gAOLdwADi3dAA4t3gAOLeAADi3hAA4uXAAOLl4ADi5gAA4uYgAOLmUADi5mAA4uZwAOLmgADi5pAA4uawAOLm0ADi5uAA4ubwAOLnEADi5yAA4uuwAOLt8ADi8GAA4vKgAOLy0ADi8vAA4vMQAOLzMADi81AA4vNwAOLzgADi87AA4vVAAOL3EADi9zAA4vdQAOL3cADi95AA4vewAOL30ADi9/AA4vnAAOL58ADi+iAA4vpQAOL6gADi+rAA4vrgAOL7EADi+zAA4wLgAOMDAADjAyAA4wNAAOMDcADjA4AA4wOQAOMDoADjA7AA4wPQAOMD8ADjBAAA4wQQAOMEMADjBEAA4wvwAOMMEADjDDAA4wxQAOMMgADjDJAA4wygAOMMsADjDMAA4wzgAOMNAADjDRAA4w0gAOMNQADjDVAA4xUAAOMVIADjFUAA4xVgAOMVkADjFaAA4xWwAOMVwADjFdAA4xXwAOMWEADjFiAA4xYwAOMWUADjFmAA4x4QAOMeMADjHlAA4x5wAOMeoADjHrAA4x7AAOMe0ADjHuAA4x8AAOMfIADjHzAA4x9AAOMfYADjH3AA4ycgAOMnQADjJ2AA4yeAAOMnsADjJ8AA4yfQAOMn4ADjJ/AA4ygQAOMoMADjKEAA4yhQAOMocADjKIAA4zAwAOMwUADjMHAA4zCQAOMwwADjMNAA4zDgAOMw8ADjMQAA4zEgAOMxQADjMVAA4zFgAOMxgADjMZAA4zlAAOM5YADjOYAA4zmgAOM50ADjOeAA4znwAOM6AADjOhAA4zowAOM6UADjOmAA4zpwAOM6kADjOqAA40PQAONGAADjSAAA40oAAONKIADjSkAA40pgAONKgADjSrAA40rAAONK0ADjSwAA40sQAONLMADjS0AA40tgAONLkADjS6AA40uwAONL4ADjS/AA40xAAONN0ADjTmAA406AAONOoADjTzAA409gAONPkADjT7AA41RAAONWgADjWPAA41swAONbYADjW4AA41ugAONbwADjW+AA41wAAONcEADjXEAA413QAONf4ADjYAAA42AgAONgQADjYGAA42CAAONgoADjYMAA42DgAONi8ADjYyAA42NQAONjgADjY7AA42PgAONkEADjZEAA42RwAONkkADjbEAA42xgAONsgADjbKAA42zQAONs4ADjbPAA420AAONtEADjbTAA421QAONtYADjbXAA422QAONtoADjdVAA43VwAON1kADjdbAA43XgAON18ADjdgAA43YQAON2IADjdkAA43ZgAON2cADjdoAA43agAON2sADjfmAA436AAON+sADjftAA438AAON/EADjfyAA438wAON/QADjf2AA43+AAON/kADjf6AA43/AAON/0ADjgWAA44FwAOOBgADjgaAA44lQAOOJcADjiZAA44mwAOOJ4ADjifAA44oAAOOKEADjiiAA44pAAOOKYADjinAA44qAAOOKoADjirAA45JgAOOSgADjkqAA45LAAOOS8ADjkwAA45MQAOOTIADjkzAA45NQAOOTcADjk4AA45OQAOOTsADjk8AA45twAOObkADjm7AA45vQAOOcAADjnBAA45wgAOOcMADjnEAA45xgAOOcgADjnJAA45ygAOOcwADjnNAA46SAAOOkoADjpMAA46TgAOOlEADjpSAA46UwAOOlQADjpVAA46VwAOOlkADjpaAA46WwAOOl0ADjpeAA462QAOOtsADjrdAA463wAOOuIADjrjAA465AAOOuUADjrmAA466AAOOuoADjrrAA467AAOOu4ADjrvAA47OAAOO1wADjuDAA47pwAOO6oADjusAA47rgAOO7AADjuyAA47tAAOO7UADju4AA470QAOO+4ADjvwAA478gAOO/QADjv2AA47+AAOO/oADjv8AA48GQAOPBwADjwfAA48IgAOPCUADjwoAA48KwAOPC4ADjwwAA48qwAOPK0ADjyvAA48sQAOPLQADjy1AA48tgAOPLcADjy4AA48ugAOPLwADjy9AA48vgAOPMAADjzBAA49PAAOPT4ADj1AAA49QgAOPUUADj1GAA49RwAOPUgADj1JAA49SwAOPU0ADj1OAA49TwAOPVEADj1SAA49zQAOPc8ADj3RAA490wAOPdYADj3XAA492AAOPdkADj3aAA493AAOPd4ADj3fAA494AAOPeIADj3jAA4+XgAOPmAADj5jAA4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P7AAOT+0ADk/uAA5P8AAOT/EADlBsAA5QbgAOUHAADlByAA5QdQAOUHYADlB3AA5QeAAOUHkADlB7AA5QfQAOUH4ADlB/AA5QgQAOUIIADlD9AA5Q/wAOUQIADlEEAA5RBwAOUQgADlEJAA5RCgAOUQsADlENAA5RDwAOURAADlERAA5REwAOURQADlEtAA5RLgAOUS8ADlExAA5RrAAOUa4ADlGwAA5RsgAOUbUADlG2AA5RtwAOUbgADlG5AA5RuwAOUb0ADlG+AA5RvwAOUcEADlHCAA5SPQAOUj8ADlJBAA5SQwAOUkYADlJHAA5SSAAOUkkADlJKAA5STAAOUk4ADlJPAA5SUAAOUlIADlJTAA5SzgAOUtAADlLSAA5S1AAOUtcADlLYAA5S2QAOUtoADlLbAA5S3QAOUt8ADlLgAA5S4QAOUuMADlLkAA5TXwAOU2EADlNjAA5TZQAOU2gADlNpAA5TagAOU2sADlNsAA5TbgAOU3AADlNxAA5TcgAOU3QADlN1AA5T8AAOU/IADlP0AA5T9gAOU/kADlP6AA5T+wAOU/wADlP9AA5T/wAOVAEADlQCAA5UAwAOVAUADlQGAA5UTwAOVHMADlSaAA5UvgAOVMEADlTEAA5UxgAOVMgADlTKAA5UzAAOVM0ADlTQAA5U6QAOVQYADlUJAA5VDAAOVQ8ADlUSAA5VFQAOVRgADlUbAA5VOAAOVTsADlU+AA5VQQAOVUQADlVHAA5VSgAOVU0ADlVPAA5VygAOVcwADlXPAA5V0QAOVdQADlXVAA5V1gAOVdcADlXYAA5V2gAOVd0ADlXeAA5V3wAOVeEADlXiAA5WXQAOVl8ADlZiAA5WZAAOVmcADlZoAA5WaQAOVmoADlZrAA5WbQAOVnAADlZxAA5WcgAOVnQADlZ1AA5W8AAOVvIADlb1AA5W9wAOVvoADlb7AA5W/AAOVv0ADlb+AA5XAAAOVwMADlcEAA5XBQAOVwcADlcIAA5XgwAOV4UADleIAA5XigAOV40ADleOAA5XjwAOV5AADleRAA5XkwAOV5YADleXAA5XmAAOV5oADlebAA5YHgAOWEIADlhmAA5YiQAOWLAADljQAA5Y9wAOWR4ADlk+AA5ZYgAOWYYADlmIAA5ZiwAOWY0ADlmPAA5ZkQAOWZQADlmXAA5ZmQAOWZsADlmeAA5ZoAAOWaIADlmlAA5ZqAAOWakADlmuAA5ZxwAOWcwADlnOAA5Z0wAOWdYADlnYAA5aIQAOWkUADlpsAA5akAAOWpMADlqVAA5alwAOWpkADlqbAA5anQAOWp4ADlqhAA5augAOWt8ADlrhAA5a4wAOWuUADlrnAA5a6QAOWusADlrtAA5a7wAOWvEADlsWAA5bGQAOWxwADlsfAA5bIgAOWyUADlsoAA5bKwAOWy4ADlsxAA5bMwAOW64ADluwAA5bswAOW7UADlu4AA5buQAOW7oADlu7AA5bvAAOW74ADlvAAA5bwQAOW8IADlvEAA5bxQAOW9YADlvXAA5b2QAOXFQADlxWAA5cWAAOXFoADlxdAA5cXgAOXF8ADlxgAA5cYQAOXGMADlxlAA5cZgAOXGcADlxpAA5cagAOXOUADlznAA5c6gAOXOwADlzvAA5c8AAOXPEADlzyAA5c8wAOXPUADlz3AA5c+AAOXPkADlz7AA5c/AAOXQ0ADl0SAA5dFQAOXRcADl0oAA5dLQAOXTAADl0yAA5dQAAOXbsADl29AA5dvwAOXcEADl3EAA5dxQAOXcYADl3HAA5dyAAOXcoADl3MAA5dzQAOXc4ADl3QAA5d0QAOXkwADl5OAA5eUQAOXlMADl5WAA5eVwAOXlgADl5ZAA5eWgAOXlwADl5eAA5eXwAOXmAADl5iAA5eYwAOXnQADl51AA5edwAOXvIADl70AA5e9gAOXvgADl77AA5e/AAOXv0ADl7+AA5e/wAOXwEADl8DAA5fBAAOXwUADl8HAA5fCAAOX4MADl+FAA5fiAAOX4oADl+NAA5fjgAOX48ADl+QAA5fkQAOX5MADl+VAA5flgAOX5cADl+ZAA5fmgAOX7MADl+0AA5ftQAOX7cADmAyAA5gNAAOYDYADmA4AA5gOwAOYDwADmA9AA5gPgAOYD8ADmBBAA5gQwAOYEQADmBFAA5gRwAOYEgADmDDAA5gxQAOYMgADmDKAA5gzQAOYM4ADmDPAA5g0AAOYNEADmDTAA5g1QAOYNYADmDXAA5g2QAOYNoADmD0AA5hDQAOYR4ADmEhAA5hJAAOYScADmEqAA5hOwAOYT4ADmFBAA5hRAAOYUcADmFJAA5hVAAOYWIADmH1AA5iGAAOYjgADmJYAA5iWgAOYlwADmJeAA5iYAAOYmMADmJkAA5iZQAOYmgADmJpAA5iawAOYmwADmJvAA5icgAOYnMADmJ0AA5idwAOYngADmJ9AA5ilgAOYp8ADmKhAA5ipAAOYq0ADmKwAA5iswAOYrUADmL+AA5jIgAOY0kADmNtAA5jcAAOY3IADmN0AA5jdgAOY3gADmN6AA5jewAOY34ADmOXAA5juAAOY7oADmO8AA5jvgAOY8AADmPCAA5jxAAOY8YADmPIAA5j6QAOY+wADmPvAA5j8gAOY/UADmP4AA5j+wAOY/4ADmQBAA5kAwAOZH4ADmSAAA5kggAOZIQADmSHAA5kiAAOZIkADmSKAA5kiwAOZI0ADmSPAA5kkAAOZJEADmSTAA5klAAOZQ8ADmURAA5lEwAOZRUADmUYAA5lGQAOZRoADmUbAA5lHAAOZR4ADmUgAA5lIQAOZSIADmUkAA5lJQAOZaAADmWiAA5lpQAOZacADmWqAA5lqwAOZawADmWtAA5lrgAOZbAADmWyAA5lswAOZbQADmW2AA5ltwAOZdAADmXRAA5l0gAOZdQADmZPAA5mUQAOZlMADmZVAA5mWAAOZlkADmZaAA5mWwAOZlwADmZeAA5mYAAOZmEADmZiAA5mZAAOZmUADmbgAA5m4gAOZuQADmbmAA5m6QAOZuoADmbrAA5m7AAOZu0ADmbvAA5m8QAOZvIADmbzAA5m9QAOZvYADmdxAA5ncwAOZ3UADmd3AA5negAOZ3sADmd8AA5nfQAOZ34ADmeAAA5nggAOZ4MADmeEAA5nhgAOZ4cADmgCAA5oBAAOaAYADmgIAA5oCwAOaAwADmgNAA5oDgAOaA8ADmgRAA5oEwAOaBQADmgVAA5oFwAOaBgADmiTAA5olQAOaJcADmiZAA5onAAOaJ0ADmieAA5onwAOaKAADmiiAA5opAAOaKUADmimAA5oqAAOaKkADmjyAA5pFgAOaT0ADmlhAA5pZAAOaWcADmlpAA5pawAOaW0ADmlvAA5pcAAOaXMADmmMAA5pqQAOaawADmmvAA5psgAOabUADmm4AA5puwAOab4ADmnbAA5p3gAOaeEADmnkAA5p5wAOaeoADmntAA5p8AAOafIADmptAA5qbwAOanIADmp0AA5qdwAOangADmp5AA5qegAOansADmp9AA5qgAAOaoEADmqCAA5qhAAOaoUADmsAAA5rAgAOawUADmsHAA5rCgAOawsADmsMAA5rDQAOaw4ADmsQAA5rEwAOaxQADmsVAA5rFwAOaxgADmuTAA5rlQAOa5gADmuaAA5rnQAOa54ADmufAA5roAAOa6EADmujAA5rpgAOa6cADmuoAA5rqgAOa6sADmwmAA5sKAAObCsADmwtAA5sMAAObDEADmwyAA5sMwAObDQADmw2AA5sOQAObDoADmw7AA5sPQAObD4ADmy5AA5suwAObL0ADmy/AA5swgAObMMADmzEAA5sxQAObMYADmzIAA5sywAObMwADmzNAA5szwAObNAADm1LAA5tTQAObU8ADm1RAA5tVAAObVUADm1WAA5tVwAObVgADm1aAA5tXQAObV4ADm1fAA5tYQAObWIADm3dAA5t3wAObeIADm3kAA5t5wAObegADm3pAA5t6gAObesADm3tAA5t8AAObfEADm3yAA5t9AAObfUADm6IAA5uqwAObssADm7rAA5u7QAObu8ADm7xAA5u8wAObvYADm73AA5u+AAObvsADm78AA5u/gAObv8ADm8BAA5vBAAObwUADm8GAA5vCQAObwoADm8PAA5vKAAObzEADm8zAA5vNQAObz4ADm9BAA5vRAAOb0YADm+PAA5vswAOb9oADm/+AA5wAQAOcAMADnAFAA5wBwAOcAkADnALAA5wDAAOcA8ADnAoAA5wSQAOcEsADnBNAA5wTwAOcFEADnBTAA5wVQAOcFcADnBZAA5wegAOcH0ADnCAAA5wgwAOcIYADnCJAA5wjAAOcI8ADnCSAA5wlAAOcQ8ADnERAA5xEwAOcRUADnEYAA5xGQAOcRoADnEbAA5xHAAOcR4ADnEgAA5xIQAOcSIADnEkAA5xJQAOcaAADnGiAA5xpAAOcaYADnGpAA5xqgAOcasADnGsAA5xrQAOca8ADnGxAA5xsgAOcbMADnG1AA5xtgAOcjEADnIzAA5yNgAOcjgADnI7AA5yPAAOcj0ADnI+AA5yPwAOckEADnJDAA5yRAAOckUADnJHAA5ySAAOcmEADnJiAA5yYwAOcmUADnLgAA5y4gAOcuQADnLmAA5y6QAOcuoADnLrAA5y7AAOcu0ADnLvAA5y8QAOcvIADnLzAA5y9QAOcvYADnNxAA5zcwAOc3UADnN3AA5zegAOc3sADnN8AA5zfQAOc34ADnOAAA5zggAOc4MADnOEAA5zhgAOc4cADnQCAA50BAAOdAYADnQIAA50CwAOdAwADnQNAA50DgAOdA8ADnQRAA50EwAOdBQADnQVAA50FwAOdBgADnSTAA50lQAOdJcADnSZAA50nAAOdJ0ADnSeAA50nwAOdKAADnSiAA50pAAOdKUADnSmAA50qAAOdKkADnUkAA51JgAOdSgADnUqAA51LQAOdS4ADnUvAA51MAAOdTEADnUzAA51NQAOdTYADnU3AA51OQAOdToADnWDAA51pwAOdc4ADnXyAA519QAOdfcADnX5AA51+wAOdf0ADnX/AA52AAAOdgMADnYcAA52OQAOdjsADnY9AA52PwAOdkEADnZDAA52RQAOdkcADnZkAA52ZwAOdmoADnZtAA52cAAOdnMADnZ2AA52eQAOdnsADnb2AA52+AAOdvoADnb8AA52/wAOdwAADncBAA53AgAOdwMADncFAA53BwAOdwgADncJAA53CwAOdwwADneHAA53iQAOd4sADneNAA53kAAOd5EADneSAA53kwAOd5QADneWAA53mAAOd5kADneaAA53nAAOd50ADngYAA54GgAOeBwADngeAA54IQAOeCIADngjAA54JAAOeCUADngnAA54KQAOeCoADngrAA54LQAOeC4ADnipAA54qwAOeK4ADniwAA54swAOeLQADni1AA54tgAOeLcADni5AA54uwAOeLwADni9AA54vwAOeMAADnk7AA55PQAOeT8ADnlBAA55RAAOeUUADnlGAA55RwAOeUgADnlKAA55TAAOeU0ADnlOAA55UAAOeVEADnnMAA55zgAOedAADnnSAA551QAOedYADnnXAA552AAOedkADnnbAA553QAOed4ADnnfAA554QAOeeIADnpdAA56XwAOemEADnpjAA56ZgAOemcADnpoAA56aQAOemoADnpsAA56bgAOem8ADnpwAA56cgAOenMADnsGAA57KQAOe0kADntpAA57awAOe20ADntvAA57cQAOe3QADnt1AA57dgAOe3kADnt6AA57fAAOe30ADnt/AA57ggAOe4MADnuEAA57hwAOe4gADnuNAA57pgAOe68ADnuxAA57swAOe7wADnu/AA57wgAOe8QADnwNAA58MQAOfFgADnx8AA58fwAOfIEADnyDAA58hQAOfIcADnyJAA58igAOfI0ADnymAA58xwAOfMkADnzLAA58zQAOfM8ADnzRAA580wAOfNUADnzXAA58+AAOfPsADnz+AA59AQAOfQQADn0HAA59CgAOfQ0ADn0QAA59EgAOfY0ADn2PAA59kQAOfZMADn2WAA59lwAOfZgADn2ZAA59mgAOfZwADn2eAA59nwAOfaAADn2iAA59owAOfh4ADn4gAA5+IgAOfiQADn4nAA5+KAAOfikADn4qAA5+KwAOfi0ADn4vAA5+MAAOfjEADn4zAA5+NAAOfq8ADn6xAA5+tAAOfrYADn65AA5+ugAOfrsADn68AA5+vQAOfr8ADn7BAA5+wgAOfsMADn7FAA5+xgAOft8ADn7gAA5+4QAOfuMADn9eAA5/YAAOf2IADn9kAA5/ZwAOf2gADn9pAA5/agAOf2sADn9tAA5/bwAOf3AADn9xAA5/cwAOf3QADn/vAA5/8QAOf/MADn/1AA5/+AAOf/kADn/6AA5/+wAOf/wADn/+AA6AAAAOgAEADoACAA6ABAAOgAUADoCAAA6AggAOgIQADoCGAA6AiQAOgIoADoCLAA6AjAAOgI0ADoCPAA6AkQAOgJIADoCTAA6AlQAOgJYADoERAA6BEwAOgRUADoEXAA6BGgAOgRsADoEcAA6BHQAOgR4ADoEgAA6BIgAOgSMADoEkAA6BJgAOgScADoGiAA6BpAAOgaYADoGoAA6BqwAOgawADoGtAA6BrgAOga8ADoGxAA6BswAOgbQADoG1AA6BtwAOgbgADoIBAA6CJQAOgkwADoJwAA6CcwAOgnUADoJ3AA6CeQAOgnsADoJ9AA6CfgAOgoEADoKaAA6CtwAOgrkADoK7AA6CvQAOgr8ADoLBAA6CwwAOgsUADoLiAA6C5QAOgugADoLrAA6C7gAOgvEADoL0AA6C9wAOgvkADoN0AA6DdgAOg3gADoN6AA6DfQAOg34ADoN/AA6DgAAOg4EADoODAA6DhQAOg4YADoOHAA6DiQAOg4oADoQFAA6EBwAOhAkADoQLAA6EDgAOhA8ADoQQAA6EEQAOhBIADoQUAA6EFgAOhBcADoQYAA6EGgAOhBsADoSWAA6EmAAOhJoADoScAA6EnwAOhKAADoShAA6EogAOhKMADoSlAA6EpwAOhKgADoSpAA6EqwAOhKwADoUnAA6FKQAOhSsADoUtAA6FMAAOhTEADoUyAA6FMwAOhTQADoU2AA6FOAAOhTkADoU6AA6FPAAOhT0ADoW4AA6FugAOhbwADoW+AA6FwQAOhcIADoXDAA6FxAAOhcUADoXHAA6FyQAOhcoADoXLAA6FzQAOhc4ADoZJAA6GSwAOhk0ADoZPAA6GUgAOhlMADoZUAA6GVQAOhlYADoZYAA6GWgAOhlsADoZcAA6GXgAOhl8ADobaAA6G3AAOht4ADobgAA6G4wAOhuQADoblAA6G5gAOhucADobpAA6G6wAOhuwADobtAA6G7wAOhvAADoeDAA6HpgAOh8YADofmAA6H6AAOh+oADofsAA6H7gAOh/EADofyAA6H8wAOh/YADof3AA6H+QAOh/oADof8AA6H/wAOiAAADogBAA6IBAAOiAUADogKAA6IIwAOiCwADoguAA6IMAAOiDkADog8AA6IPwAOiEEADoiKAA6IrgAOiNUADoj5AA6I/AAOiP4ADokAAA6JAgAOiQQADokGAA6JBwAOiQoADokjAA6JRAAOiUYADolIAA6JSgAOiUwADolOAA6JUAAOiVIADolUAA6JdQAOiXgADol7AA6JfgAOiYEADomEAA6JhwAOiYoADomNAA6JjwAOigoADooMAA6KDgAOihAADooTAA6KFAAOihUADooWAA6KFwAOihkADoobAA6KHAAOih0ADoofAA6KIAAOipsADoqdAA6KnwAOiqEADoqkAA6KpQAOiqYADoqnAA6KqAAOiqoADoqsAA6KrQAOiq4ADoqwAA6KsQAOiywADosuAA6LMQAOizMADos2AA6LNwAOizgADos5AA6LOgAOizwADos+AA6LPwAOi0AADotCAA6LQwAOi1wADotdAA6LXgAOi2AADovbAA6L3QAOi98ADovhAA6L5AAOi+UADovmAA6L5wAOi+gADovqAA6L7AAOi+0ADovuAA6L8AAOi/EADoxsAA6MbgAOjHAADoxyAA6MdQAOjHYADox3AA6MeAAOjHkADox7AA6MfQAOjH4ADox/AA6MgQAOjIIADoz9AA6M/wAOjQEADo0DAA6NBgAOjQcADo0IAA6NCQAOjQoADo0MAA6NDgAOjQ8ADo0QAA6NEgAOjRMADo2OAA6NkAAOjZIADo2UAA6NlwAOjZgADo2ZAA6NmgAOjZsADo2dAA6NnwAOjaAADo2hAA6NowAOjaQADo4fAA6OIQAOjiMADo4lAA6OKAAOjikADo4qAA6OKwAOjiwADo4uAA6OMAAOjjEADo4yAA6ONAAOjjUADo5+AA6OogAOjskADo7tAA6O8AAOjvIADo70AA6O9gAOjvgADo76AA6O+wAOjv4ADo8XAA6PNAAOjzYADo84AA6POgAOjzwADo8+AA6PQAAOj0IADo9fAA6PYgAOj2UADo9oAA6PawAOj24ADo9xAA6PdAAOj3YADo/xAA6P8wAOj/UADo/3AA6P+gAOj/sADo/8AA6P/QAOj/4ADpAAAA6QAgAOkAMADpAEAA6QBgAOkAcADpCCAA6QhAAOkIYADpCIAA6QiwAOkIwADpCNAA6QjgAOkI8ADpCRAA6QkwAOkJQADpCVAA6QlwAOkJgADpETAA6RFQAOkRcADpEZAA6RHAAOkR0ADpEeAA6RHwAOkSAADpEiAA6RJAAOkSUADpEmAA6RKAAOkSkADpGkAA6RpgAOkakADpGrAA6RrgAOka8ADpGwAA6RsQAOkbIADpG0AA6RtgAOkbcADpG4AA6RugAOkbsADpI2AA6SOAAOkjoADpI8AA6SPwAOkkAADpJBAA6SQgAOkkMADpJFAA6SRwAOkkgADpJJAA6SSwAOkkwADpLHAA6SyQAOkssADpLNAA6S0AAOktEADpLSAA6S0wAOktQADpLWAA6S2AAOktkADpLaAA6S3AAOkt0ADpNYAA6TWgAOk1wADpNeAA6TYQAOk2IADpNjAA6TZAAOk2UADpNnAA6TaQAOk2oADpNrAA6TbQAOk24ADpN/AA6TgAAOk4IADpP9AA6T/wAOlAEADpQDAA6UBgAOlAcADpQIAA6UCQAOlAoADpQMAA6UDwAOlBAADpQRAA6UEwAOlBQADpSPAA6UkQAOlJMADpSVAA6UmAAOlJkADpSaAA6UmwAOlJwADpSeAA6UoQAOlKIADpSjAA6UpQAOlKYADpUhAA6VIwAOlSYADpUoAA6VKwAOlSwADpUtAA6VLgAOlS8ADpUxAA6VNAAOlTUADpU2AA6VOAAOlTkADpXMAA6V7wAOlg8ADpYvAA6WMQAOljMADpY1AA6WNwAOljoADpY7AA6WPAAOlj8ADpZAAA6WQgAOlkMADpZGAA6WSQAOlkoADpZLAA6WTgAOlk8ADpZYAA6WcQAOlnoADpZ8AA6WfwAOlogADpaLAA6WjgAOlpAADpbZAA6W/QAOlyQADpdIAA6XSwAOl00ADpdPAA6XUQAOl1MADpdVAA6XVgAOl1kADpdyAA6XkwAOl5UADpeXAA6XmQAOl5sADpedAA6XnwAOl6EADpejAA6XxAAOl8cADpfKAA6XzQAOl9AADpfTAA6X1gAOl9kADpfcAA6X3gAOmFkADphbAA6YXQAOmF8ADphiAA6YYwAOmGQADphlAA6YZgAOmGgADphqAA6YawAOmGwADphuAA6YbwAOmOoADpjsAA6Y7gAOmPAADpjzAA6Y9AAOmPUADpj2AA6Y9wAOmPkADpj7AA6Y/AAOmP0ADpj/AA6ZAAAOmXsADpl9AA6ZgAAOmYIADpmFAA6ZhgAOmYcADpmIAA6ZiQAOmYsADpmNAA6ZjgAOmY8ADpmRAA6ZkgAOmasADpmsAA6ZrQAOma8ADpoqAA6aLAAOmi4ADpowAA6aMwAOmjQADpo1AA6aNgAOmjcADpo5AA6aOwAOmjwADpo9AA6aPwAOmkAADpq7AA6avQAOmr8ADprBAA6axAAOmsUADprGAA6axwAOmsgADprKAA6azAAOms0ADprOAA6a0AAOmtEADptMAA6bTgAOm1AADptSAA6bVQAOm1YADptXAA6bWAAOm1kADptbAA6bXQAOm14ADptfAA6bYQAOm2IADpvdAA6b3wAOm+EADpvjAA6b5gAOm+cADpvoAA6b6QAOm+oADpvsAA6b7gAOm+8ADpvwAA6b8gAOm/MADpxuAA6ccAAOnHIADpx0AA6cdwAOnHgADpx5AA6cegAOnHsADpx9AA6cfwAOnIAADpyBAA6cgwAOnIQADpzNAA6c8QAOnRgADp08AA6dPwAOnUIADp1EAA6dRgAOnUgADp1KAA6dSwAOnU4ADp1nAA6dhAAOnYcADp2KAA6djQAOnZAADp2TAA6dlgAOnZkADp22AA6duQAOnbwADp2/AA6dwgAOncUADp3IAA6dywAOnc0ADp5IAA6eSgAOnk0ADp5PAA6eUgAOnlMADp5UAA6eVQAOnlYADp5YAA6eWwAOnlwADp5dAA6eXwAOnmAADp7bAA6e3QAOnuAADp7iAA6e5QAOnuYADp7nAA6e6AAOnukADp7rAA6e7gAOnu8ADp7wAA6e8gAOnvMADp9uAA6fcAAOn3MADp91AA6feAAOn3kADp96AA6fewAOn3wADp9+AA6fgQAOn4IADp+DAA6fhQAOn4YADqABAA6gAwAOoAYADqAIAA6gCwAOoAwADqANAA6gDgAOoA8ADqARAA6gFAAOoBUADqAWAA6gGAAOoBkADqCcAA6gwAAOoOQADqEHAA6hLgAOoU4ADqF1AA6hnAAOobwADqHgAA6iBAAOogYADqIJAA6iCwAOog0ADqIPAA6iEgAOohUADqIXAA6iGQAOohwADqIeAA6iIAAOoiMADqImAA6iJwAOojAADqJJAA6iTgAOolAADqJVAA6iWAAOoloADqKjAA6ixwAOou4ADqMSAA6jFQAOoxcADqMZAA6jGwAOox0ADqMfAA6jIAAOoyMADqM8AA6jYQAOo2MADqNlAA6jZwAOo2kADqNrAA6jbQAOo28ADqNxAA6jcwAOo5gADqObAA6jngAOo6EADqOkAA6jpwAOo6oADqOtAA6jsAAOo7MADqO1AA6kMAAOpDIADqQ1AA6kNwAOpDoADqQ7AA6kPAAOpD0ADqQ+AA6kQAAOpEIADqRDAA6kRAAOpEYADqRHAA6kWAAOpFkADqRbAA6k1gAOpNgADqTaAA6k3AAOpN8ADqTgAA6k4QAOpOIADqTjAA6k5QAOpOcADqToAA6k6QAOpOsADqTsAA6lZwAOpWkADqVsAA6lbgAOpXEADqVyAA6lcwAOpXQADqV1AA6ldwAOpXkADqV6AA6lewAOpX0ADqV+AA6ljwAOpZQADqWXAA6lmQAOpaoADqWzAA6ltgAOpbkADqW7AA6l1wAOpekADqZkAA6mZgAOpmgADqZqAA6mbQAOpm4ADqZvAA6mcAAOpnEADqZzAA6mdQAOpnYADqZ3AA6meQAOpnoADqb1AA6m9wAOpvoADqb8AA6m/wAOpwAADqcBAA6nAgAOpwMADqcFAA6nBwAOpwgADqcJAA6nCwAOpwwADqcdAA6nHgAOpyAADqebAA6nnQAOp58ADqehAA6npAAOp6UADqemAA6npwAOp6gADqeqAA6nrAAOp60ADqeuAA6nsAAOp7EADqgsAA6oLgAOqDEADqgzAA6oNgAOqDcADqg4AA6oOQAOqDoADqg8AA6oPgAOqD8ADqhAAA6oQgAOqEMADqhcAA6oXQAOqF4ADqhgAA6o2wAOqN0ADqjfAA6o4QAOqOQADqjlAA6o5gAOqOcADqjoAA6o6gAOqOwADqjtAA6o7gAOqPAADqjxAA6pbAAOqW4ADqlxAA6pcwAOqXYADql3AA6peAAOqXkADql6AA6pfAAOqX4ADql/AA6pgAAOqYIADqmDAA6pkQAOqaoADqnpAA6p7AAOqe8ADqnyAA6p9QAOqfgADqn7AA6p/gAOqgEADqoEAA6qBwAOqgoADqoNAA6qEAAOqhMADqoWAA6qVQAOqlgADqpbAA6qXgAOqmEADqpkAA6qZwAOqmoADqptAA6qcAAOqnMADqp2AA6qeQAOqnwADqp/AA6qggAOqoQADqqaAA6qtgAOqtQADqruAA6rEwAOqxsADqstAA6rQAAOq1YADqtfAA6rewAOq40ADquaAA6rqAAOrDsADqxeAA6sfgAOrJ4ADqygAA6sogAOrKQADqymAA6sqQAOrKoADqyrAA6srgAOrK8ADqyxAA6ssgAOrLQADqy3AA6suAAOrLkADqy8AA6svQAOrMIADqzbAA6s5AAOrOYADqzoAA6s8QAOrPQADqz3AA6s+QAOrUIADq1mAA6tjQAOrbEADq20AA6ttgAOrbgADq26AA6tvAAOrb4ADq2/AA6twgAOrdsADq38AA6t/gAOrgAADq4CAA6uBAAOrgYADq4IAA6uCgAOrgwADq4tAA6uMAAOrjMADq42AA6uOQAOrjwADq4/AA6uQgAOrkUADq5HAA6uwgAOrsQADq7GAA6uyAAOrssADq7MAA6uzQAOrs4ADq7PAA6u0QAOrtMADq7UAA6u1QAOrtcADq7YAA6vUwAOr1UADq9XAA6vWQAOr1wADq9dAA6vXgAOr18ADq9gAA6vYgAOr2QADq9lAA6vZgAOr2gADq9pAA6v5AAOr+YADq/pAA6v6wAOr+4ADq/vAA6v8AAOr/EADq/yAA6v9AAOr/YADq/3AA6v+AAOr/oADq/7AA6wFAAOsBUADrAWAA6wGAAOsJMADrCVAA6wlwAOsJkADrCcAA6wnQAOsJ4ADrCfAA6woAAOsKIADrCkAA6wpQAOsKYADrCoAA6wqQAOsSQADrEmAA6xKAAOsSoADrEtAA6xLgAOsS8ADrEwAA6xMQAOsTMADrE1AA6xNgAOsTcADrE5AA6xOgAOsbUADrG3AA6xuQAOsbsADrG+AA6xvwAOscAADrHBAA6xwgAOscQADrHGAA6xxwAOscgADrHKAA6xywAOskYADrJIAA6ySgAOskwADrJPAA6yUAAOslEADrJSAA6yUwAOslUADrJXAA6yWAAOslkADrJbAA6yXAAOstcADrLZAA6y2wAOst0ADrLgAA6y4QAOsuIADrLjAA6y5AAOsuYADrLoAA6y6QAOsuoADrLsAA6y7QAOszYADrNaAA6zgQAOs6UADrOoAA6zqgAOs6wADrOuAA6zsAAOs7IADrOzAA6ztgAOs88ADrPsAA6z7gAOs/AADrPyAA6z9AAOs/YADrP4AA6z+gAOtBcADrQaAA60HQAOtCAADrQjAA60JgAOtCkADrQsAA60LgAOtKkADrSrAA60rQAOtK8ADrSyAA60swAOtLQADrS1AA60tgAOtLgADrS6AA60uwAOtLwADrS+AA60vwAOtToADrU8AA61PgAOtUAADrVDAA61RAAOtUUADrVGAA61RwAOtUkADrVLAA61TAAOtU0ADrVPAA61UAAOtcsADrXNAA61zwAOtdEADrXUAA611QAOtdYADrXXAA612AAOtdoADrXcAA613QAOtd4ADrXgAA614QAOtlwADrZeAA62YQAOtmMADrZmAA62ZwAOtmgADrZpAA62agAOtmwADrZuAA62bwAOtnAADrZyAA62cwAOtu4ADrbwAA628gAOtvQADrb3AA62+AAOtvkADrb6AA62+wAOtv0ADrb/AA63AAAOtwEADrcDAA63BAAOt38ADreBAA63gwAOt4UADreIAA63iQAOt4oADreLAA63jAAOt44ADreQAA63kQAOt5IADreUAA63lQAOuBAADrgSAA64FAAOuBYADrgZAA64GgAOuBsADrgcAA64HQAOuB8ADrghAA64IgAOuCMADrglAA64JgAOuLkADrjcAA64/AAOuRwADrkeAA65IAAOuSIADrkkAA65JwAOuSgADrkpAA65LAAOuS0ADrkvAA65MAAOuTIADrk1AA65NgAOuTcADrk6AA65OwAOuUQADrldAA65ZgAOuWgADrlqAA65cwAOuXYADrl5AA65ewAOucQADrnoAA66DwAOujMADro2AA66OAAOujoADro8AA66PgAOukAADrpBAA66RAAOul0ADrp+AA66gAAOuoIADrqEAA66hgAOuogADrqKAA66jAAOuo4ADrqvAA66sgAOurUADrq4AA66uwAOur4ADrrBAA66xAAOuscADrrJAA67RAAOu0YADrtIAA67SgAOu00ADrtOAA67TwAOu1AADrtRAA67UwAOu1UADrtWAA67VwAOu1kADrtaAA671QAOu9cADrvZAA672wAOu94ADrvfAA674AAOu+EADrviAA675AAOu+YADrvnAA676AAOu+oADrvrAA68ZgAOvGgADrxrAA68bQAOvHAADrxxAA68cgAOvHMADrx0AA68dgAOvHgADrx5AA68egAOvHwADrx9AA68lgAOvJcADryYAA68mgAOvRUADr0XAA69GQAOvRsADr0eAA69HwAOvSAADr0hAA69IgAOvSQADr0mAA69JwAOvSgADr0qAA69KwAOvaYADr2oAA69qgAOvawADr2vAA69sAAOvbEADr2yAA69swAOvbUADr23AA69uAAOvbkADr27AA69vAAOvjcADr45AA6+OwAOvj0ADr5AAA6+QQAOvkIADr5DAA6+RAAOvkYADr5IAA6+SQAOvkoADr5MAA6+TQAOvsgADr7KAA6+zAAOvs4ADr7RAA6+0gAOvtMADr7UAA6+1QAOvtcADr7ZAA6+2gAOvtsADr7dAA6+3gAOv1kADr9bAA6/XQAOv18ADr9iAA6/YwAOv2QADr9lAA6/ZgAOv2gADr9qAA6/awAOv2wADr9uAA6/bwAOv7gADr/cAA7AAwAOwCcADsAqAA7ALAAOwC4ADsAwAA7AMgAOwDQADsA1AA7AOAAOwFEADsBuAA7AcAAOwHIADsB0AA7AdgAOwHgADsB6AA7AfAAOwJkADsCcAA7AnwAOwKIADsClAA7AqAAOwKsADsCuAA7AsAAOwSsADsEtAA7BLwAOwTEADsE0AA7BNQAOwTYADsE3AA7BOAAOwToADsE8AA7BPQAOwT4ADsFAAA7BQQAOwbwADsG+AA7BwAAOwcIADsHFAA7BxgAOwccADsHIAA7ByQAOwcsADsHNAA7BzgAOwc8ADsHRAA7B0gAOwk0ADsJPAA7CUQAOwlMADsJWAA7CVwAOwlgADsJZAA7CWgAOwlwADsJeAA7CXwAOwmAADsJiAA7CYwAOwt4ADsLgAA7C4wAOwuUADsLoAA7C6QAOwuoADsLrAA7C7AAOwu4ADsLwAA7C8QAOwvIADsL0AA7C9QAOw3AADsNyAA7DdAAOw3YADsN5AA7DegAOw3sADsN8AA7DfQAOw38ADsOBAA7DggAOw4MADsOFAA7DhgAOxAEADsQDAA7EBgAOxAgADsQLAA7EDAAOxA0ADsQOAA7EDwAOxBEADsQTAA7EFAAOxBUADsQXAA7EGAAOxCcADsSiAA7EpAAOxKYADsSoAA7EqwAOxKwADsStAA7ErgAOxK8ADsSxAA7EswAOxLQADsS1AA7EtwAOxLgADsVLAA7FbgAOxY4ADsWuAA7FsAAOxbIADsW0AA7FtgAOxbkADsW6AA7FuwAOxb4ADsW/AA7FwQAOxcIADsXEAA7FxwAOxcgADsXJAA7FzAAOxc0ADsXSAA7F6wAOxfQADsX2AA7F+AAOxgEADsYEAA7GBwAOxgkADsZSAA7GdgAOxp0ADsbBAA7GxAAOxsYADsbIAA7GygAOxswADsbOAA7GzwAOxtIADsbrAA7HDAAOxw4ADscQAA7HEgAOxxQADscWAA7HGAAOxxoADsccAA7HPQAOx0AADsdDAA7HRgAOx0kADsdMAA7HTwAOx1IADsdVAA7HVwAOx9IADsfUAA7H1gAOx9gADsfbAA7H3AAOx90ADsfeAA7H3wAOx+EADsfjAA7H5AAOx+UADsfnAA7H6AAOyGMADshlAA7IZwAOyGkADshsAA7IbQAOyG4ADshvAA7IcAAOyHIADsh0AA7IdQAOyHYADsh4AA7IeQAOyPQADsj2AA7I+QAOyPsADsj+AA7I/wAOyQAADskBAA7JAgAOyQQADskGAA7JBwAOyQgADskKAA7JCwAOySQADsklAA7JJgAOySgADsmjAA7JpQAOyacADsmpAA7JrAAOya0ADsmuAA7JrwAOybAADsmyAA7JtAAOybUADsm2AA7JuAAOybkADso0AA7KNgAOyjgADso6AA7KPQAOyj4ADso/AA7KQAAOykEADspDAA7KRQAOykYADspHAA7KSQAOykoADsrFAA7KxwAOyskADsrLAA7KzgAOys8ADsrQAA7K0QAOytIADsrUAA7K1gAOytcADsrYAA7K2gAOytsADstWAA7LWAAOy1oADstcAA7LXwAOy2AADsthAA7LYgAOy2MADstlAA7LZwAOy2gADstpAA7LawAOy2wADsvnAA7L6QAOy+sADsvtAA7L8AAOy/EADsvyAA7L8wAOy/QADsv2AA7L+AAOy/kADsv6AA7L/AAOy/0ADsxGAA7MagAOzJEADsy1AA7MuAAOzLoADsy8AA7MvgAOzMAADszCAA7MwwAOzMYADszfAA7M/AAOzP4ADs0AAA7NAgAOzQQADs0GAA7NCAAOzQoADs0nAA7NKgAOzS0ADs0wAA7NMwAOzTYADs05AA7NPAAOzT4ADs25AA7NuwAOzb0ADs2/AA7NwgAOzcMADs3EAA7NxQAOzcYADs3IAA7NygAOzcsADs3MAA7NzgAOzc8ADs5KAA7OTAAOzk4ADs5QAA7OUwAOzlQADs5VAA7OVgAOzlcADs5ZAA7OWwAOzlwADs5dAA7OXwAOzmAADs7bAA7O3QAOzt8ADs7hAA7O5AAOzuUADs7mAA7O5wAOzugADs7qAA7O7AAOzu0ADs7uAA7O8AAOzvEADs9sAA7PbgAOz3EADs9zAA7PdgAOz3cADs94AA7PeQAOz3oADs98AA7PfgAOz38ADs+AAA7PggAOz4MADs/+AA7QAAAO0AIADtAEAA7QBwAO0AgADtAJAA7QCgAO0AsADtANAA7QDwAO0BAADtARAA7QEwAO0BQADtCPAA7QkQAO0JMADtCVAA7QmAAO0JkADtCaAA7QmwAO0JwADtCeAA7QoAAO0KEADtCiAA7QpAAO0KUADtEgAA7RIgAO0SQADtEmAA7RKQAO0SoADtErAA7RLAAO0S0ADtEvAA7RMQAO0TIADtEzAA7RNQAO0TYADtHJAA7R7AAO0gwADtIsAA7SLgAO0jAADtIyAA7SNAAO0jcADtI4AA7SOQAO0jwADtI9AA7SPwAO0kAADtJCAA7SRQAO0kYADtJHAA7SSgAO0ksADtJQAA7SaQAO0nIADtJ0AA7SdgAO0n8ADtKCAA7ShQAO0ocADtLQAA7S9AAO0xsADtM/AA7TQgAO00QADtNGAA7TSAAO00oADtNMAA7TTQAO01AADtNpAA7TigAO04wADtOOAA7TkAAO05IADtOUAA7TlgAO05gADtOaAA7TuwAO074ADtPBAA7TxAAO08cADtPKAA7TzQAO09AADtPTAA7T1QAO1FAADtRSAA7UVAAO1FYADtRZAA7UWgAO1FsADtRcAA7UXQAO1F8ADtRhAA7UYgAO1GMADtRlAA7UZgAO1OEADtTjAA7U5QAO1OcADtTqAA7U6wAO1OwADtTtAA7U7gAO1PAADtTyAA7U8wAO1PQADtT2AA7U9wAO1XIADtV0AA7VdwAO1XkADtV8AA7VfQAO1X4ADtV/AA7VgAAO1YIADtWEAA7VhQAO1YYADtWIAA7ViQAO1aIADtWjAA7VpAAO1aYADtYhAA7WIwAO1iUADtYnAA7WKgAO1isADtYsAA7WLQAO1i4ADtYwAA7WMgAO1jMADtY0AA7WNgAO1jcADtayAA7WtAAO1rYADta4AA7WuwAO1rwADta9AA7WvgAO1r8ADtbBAA7WwwAO1sQADtbFAA7WxwAO1sgADtdDAA7XRQAO10cADtdJAA7XTAAO100ADtdOAA7XTwAO11AADtdSAA7XVAAO11UADtdWAA7XWAAO11kADtfUAA7X1gAO19gADtfaAA7X3QAO194ADtffAA7X4AAO1+EADtfjAA7X5QAO1+YADtfnAA7X6QAO1+oADthlAA7YZwAO2GkADthrAA7YbgAO2G8ADthwAA7YcQAO2HIADth0AA7YdgAO2HcADth4AA7YegAO2HsADtjEAA7Y6AAO2Q8ADtkzAA7ZNgAO2TgADtk6AA7ZPAAO2T4ADtlAAA7ZQQAO2UQADtldAA7ZegAO2XwADtl+AA7ZgAAO2YIADtmEAA7ZhgAO2YgADtmlAA7ZqAAO2asADtmuAA7ZsQAO2bQADtm3AA7ZugAO2bwADto3AA7aOQAO2jsADto9AA7aQAAO2kEADtpCAA7aQwAO2kQADtpGAA7aSAAO2kkADtpKAA7aTAAO2k0ADtrIAA7aygAO2swADtrOAA7a0QAO2tIADtrTAA7a1AAO2tUADtrXAA7a2QAO2toADtrbAA7a3QAO2t4ADttZAA7bWwAO210ADttfAA7bYgAO22MADttkAA7bZQAO22YADttoAA7bagAO22sADttsAA7bbgAO228ADtvqAA7b7AAO2+8ADtvxAA7b9AAO2/UADtv2AA7b9wAO2/gADtv6AA7b/AAO2/0ADtv+AA7cAAAO3AEADtx8AA7cfgAO3IAADtyCAA7chQAO3IYADtyHAA7ciAAO3IkADtyLAA7cjQAO3I4ADtyPAA7ckQAO3JIADt0NAA7dDwAO3RIADt0UAA7dFwAO3RgADt0ZAA7dGgAO3RsADt0dAA7dHwAO3SAADt0hAA7dIwAO3SQADt0zAA7drgAO3bAADt2yAA7dtAAO3bcADt24AA7duQAO3boADt27AA7dvQAO3b8ADt3AAA7dwQAO3cMADt3EAA7eVwAO3noADt6aAA7eugAO3rwADt6+AA7ewAAO3sIADt7FAA7exgAO3scADt7KAA7eywAO3s0ADt7OAA7e0AAO3tMADt7UAA7e1QAO3tgADt7ZAA7e3gAO3vcADt8AAA7fAgAO3wQADt8NAA7fEAAO3xMADt8VAA7fXgAO34IADt+pAA7fzQAO39AADt/SAA7f1AAO39YADt/YAA7f2gAO39sADt/eAA7f9wAO4BgADuAaAA7gHAAO4B4ADuAgAA7gIgAO4CQADuAmAA7gKAAO4EkADuBMAA7gTwAO4FIADuBVAA7gWAAO4FsADuBeAA7gYQAO4GMADuDeAA7g4AAO4OIADuDkAA7g5wAO4OgADuDpAA7g6gAO4OsADuDtAA7g7wAO4PAADuDxAA7g8wAO4PQADuFvAA7hcQAO4XMADuF1AA7heAAO4XkADuF6AA7hewAO4XwADuF+AA7hgAAO4YEADuGCAA7hhAAO4YUADuIAAA7iAgAO4gUADuIHAA7iCgAO4gsADuIMAA7iDQAO4g4ADuIQAA7iEgAO4hMADuIUAA7iFgAO4hcADuIwAA7iMQAO4jIADuI0AA7irwAO4rEADuKzAA7itQAO4rgADuK5AA7iugAO4rsADuK8AA7ivgAO4sAADuLBAA7iwgAO4sQADuLFAA7jQAAO40IADuNEAA7jRgAO40kADuNKAA7jSwAO40wADuNNAA7jTwAO41EADuNSAA7jUwAO41UADuNWAA7j0QAO49MADuPVAA7j1wAO49oADuPbAA7j3AAO490ADuPeAA7j4AAO4+IADuPjAA7j5AAO4+YADuPnAA7kYgAO5GQADuRmAA7kaAAO5GsADuRsAA7kbQAO5G4ADuRvAA7kcQAO5HMADuR0AA7kdQAO5HcADuR4AA7k8wAO5PUADuT3AA7k+QAO5PwADuT9AA7k/gAO5P8ADuUAAA7lAgAO5QQADuUFAA7lBgAO5QgADuUJAA7lUgAO5XYADuWdAA7lwQAO5cQADuXGAA7lyAAO5coADuXMAA7lzgAO5c8ADuXSAA7l6wAO5ggADuYKAA7mDAAO5g4ADuYQAA7mEgAO5hQADuYWAA7mMwAO5jYADuY5AA7mPAAO5j8ADuZCAA7mRQAO5kgADuZKAA7mxQAO5scADubJAA7mywAO5s4ADubPAA7m0AAO5tEADubSAA7m1AAO5tYADubXAA7m2AAO5toADubbAA7nVgAO51gADudaAA7nXAAO518ADudgAA7nYQAO52IADudjAA7nZQAO52cADudoAA7naQAO52sADudsAA7n5wAO5+kADufrAA7n7QAO5/AADufxAA7n8gAO5/MADuf0AA7n9gAO5/gADuf5AA7n+gAO5/wADuf9AA7oeAAO6HoADuh9AA7ofwAO6IIADuiDAA7ohAAO6IUADuiGAA7oiAAO6IoADuiLAA7ojAAO6I4ADuiPAA7pCgAO6QwADukOAA7pEAAO6RMADukUAA7pFQAO6RYADukXAA7pGQAO6RsADukcAA7pHQAO6R8ADukgAA7pmwAO6Z0ADumfAA7poQAO6aQADumlAA7ppgAO6acADumoAA7pqgAO6awADumtAA7prgAO6bAADumxAA7qLAAO6i4ADuowAA7qMgAO6jUADuo2AA7qNwAO6jgADuo5AA7qOwAO6j0ADuo+AA7qPwAO6kEADupCAA7q1QAO6vgADusYAA7rOAAO6zoADus8AA7rPgAO60AADutDAA7rRAAO60UADutIAA7rSQAO60sADutMAA7rTwAO61IADutTAA7rVAAO61cADutYAA7rYQAO63oADuuDAA7rhQAO64gADuuRAA7rlAAO65cADuuZAA7r4gAO7AYADuwtAA7sUQAO7FQADuxWAA7sWAAO7FoADuxcAA7sXgAO7F8ADuxiAA7sewAO7JwADuyeAA7soAAO7KIADuykAA7spgAO7KgADuyqAA7srAAO7M0ADuzQAA7s0wAO7NYADuzZAA7s3AAO7N8ADuziAA7s5QAO7OcADu1iAA7tZAAO7WYADu1oAA7tawAO7WwADu1tAA7tbgAO7W8ADu1xAA7tcwAO7XQADu11AA7tdwAO7XgADu3zAA7t9QAO7fcADu35AA7t/AAO7f0ADu3+AA7t/wAO7gAADu4CAA7uBAAO7gUADu4GAA7uCAAO7gkADu6EAA7uhgAO7okADu6LAA7ujgAO7o8ADu6QAA7ukQAO7pIADu6UAA7ulgAO7pcADu6YAA7umgAO7psADu60AA7utQAO7rYADu64AA7vMwAO7zUADu83AA7vOQAO7zwADu89AA7vPgAO7z8ADu9AAA7vQgAO70QADu9FAA7vRgAO70gADu9JAA7vxAAO78YADu/IAA7vygAO780ADu/OAA7vzwAO79AADu/RAA7v0wAO79UADu/WAA7v1wAO79kADu/aAA7wVQAO8FcADvBZAA7wWwAO8F4ADvBfAA7wYAAO8GEADvBiAA7wZAAO8GYADvBnAA7waAAO8GoADvBrAA7w5gAO8OgADvDqAA7w7AAO8O8ADvDwAA7w8QAO8PIADvDzAA7w9QAO8PcADvD4AA7w+QAO8PsADvD8AA7xdwAO8XkADvF7AA7xfQAO8YAADvGBAA7xggAO8YMADvGEAA7xhgAO8YgADvGJAA7xigAO8YwADvGNAA7x1gAO8foADvIhAA7yRQAO8kgADvJLAA7yTQAO8k8ADvJRAA7yUwAO8lQADvJXAA7ycAAO8o0ADvKQAA7ykwAO8pYADvKZAA7ynAAO8p8ADvKiAA7yvwAO8sIADvLFAA7yyAAO8ssADvLOAA7y0QAO8tQADvLWAA7zUQAO81MADvNWAA7zWAAO81sADvNcAA7zXQAO814ADvNfAA7zYQAO82QADvNlAA7zZgAO82gADvNpAA7z5AAO8+YADvPpAA7z6wAO8+4ADvPvAA7z8AAO8/EADvPyAA7z9AAO8/cADvP4AA7z+QAO8/sADvP8AA70dwAO9HkADvR8AA70fgAO9IEADvSCAA70gwAO9IQADvSFAA70hwAO9IoADvSLAA70jAAO9I4ADvSPAA71CgAO9QwADvUPAA71EQAO9RQADvUVAA71FgAO9RcADvUYAA71GgAO9R0ADvUeAA71HwAO9SEADvUiAA71pQAO9ckADvXtAA72EAAO9jcADvZXAA72fgAO9qUADvbFAA726QAO9w0ADvcPAA73EgAO9xQADvcWAA73GAAO9xsADvceAA73IAAO9yIADvclAA73JwAO9ykADvcsAA73LwAO9zAADvc5AA73UgAO91cADvdZAA73XgAO92EADvdjAA73rAAO99AADvf3AA74GwAO+B4ADvggAA74IgAO+CQADvgmAA74KAAO+CkADvgsAA74RQAO+GoADvhsAA74bgAO+HAADvhyAA74dAAO+HYADvh4AA74egAO+HwADvihAA74pAAO+KcADviqAA74rQAO+LAADvizAA74tgAO+LkADvi8AA74vgAO+TkADvk7AA75PgAO+UAADvlDAA75RAAO+UUADvlGAA75RwAO+UkADvlLAA75TAAO+U0ADvlPAA75UAAO+WEADvliAA75ZAAO+d8ADvnhAA754wAO+eUADvnoAA756QAO+eoADvnrAA757AAO+e4ADvnwAA758QAO+fIADvn0AA759QAO+nAADvpyAA76dQAO+ncADvp6AA76ewAO+nwADvp9AA76fgAO+oAADvqCAA76gwAO+oQADvqGAA76hwAO+pgADvqdAA76oAAO+qIADvqzAA76xAAO+scADvrKAA76zQAO+tAADvrSAA767gAO+wAADvsKAA77HQAO+5gADvuaAA77nAAO+54ADvuhAA77ogAO+6MADvukAA77pQAO+6cADvupAA77qgAO+6sADvutAA77rgAO/CkADvwrAA78LgAO/DAADvwzAA78NAAO/DUADvw2AA78NwAO/DkADvw7AA78PAAO/D0ADvw/AA78QAAO/FEADvxSAA78VAAO/M8ADvzRAA780wAO/NUADvzYAA782QAO/NoADvzbAA783AAO/N4ADvzgAA784QAO/OIADvzkAA785QAO/WAADv1iAA79ZQAO/WcADv1qAA79awAO/WwADv1tAA79bgAO/XAADv1yAA79cwAO/XQADv12AA79dwAO/ZAADv2RAA79kgAO/ZQADv4PAA7+EQAO/hMADv4VAA7+GAAO/hkADv4aAA7+GwAO/hwADv4eAA7+IAAO/iEADv4iAA7+JAAO/iUADv6gAA7+ogAO/qUADv6nAA7+qgAO/qsADv6sAA7+rQAO/q4ADv6wAA7+sgAO/rMADv60AA7+tgAO/rcADv7FAA7+3gAO/vcADv76AA7+/QAO/wAADv8DAA7/BgAO/wkADv8iAA7/JQAO/ygADv8rAA7/LgAO/zEADv80AA7/NgAO/1IADv9kAA7/dwAO/4IADwAVAA8AOAAPAFgADwB4AA8AegAPAHwADwB+AA8AgAAPAIMADwCEAA8AhQAPAIgADwCJAA8AiwAPAIwADwCOAA8AkQAPAJIADwCTAA8AlgAPAJcADwCcAA8AtQAPAL4ADwDAAA8AwgAPAMsADwDOAA8A0QAPANMADwEcAA8BQAAPAWcADwGLAA8BjgAPAZAADwGSAA8BlAAPAZYADwGYAA8BmQAPAZwADwG1AA8B1gAPAdgADwHaAA8B3AAPAd4ADwHgAA8B4gAPAeQADwHmAA8CBwAPAgoADwINAA8CEAAPAhMADwIWAA8CGQAPAhwADwIfAA8CIQAPApwADwKeAA8CoAAPAqIADwKlAA8CpgAPAqcADwKoAA8CqQAPAqsADwKtAA8CrgAPAq8ADwKxAA8CsgAPAy0ADwMvAA8DMQAPAzMADwM2AA8DNwAPAzgADwM5AA8DOgAPAzwADwM+AA8DPwAPA0AADwNCAA8DQwAPA74ADwPAAA8DwwAPA8UADwPIAA8DyQAPA8oADwPLAA8DzAAPA84ADwPQAA8D0QAPA9IADwPUAA8D1QAPA+4ADwPvAA8D8AAPA/IADwRtAA8EbwAPBHEADwRzAA8EdgAPBHcADwR4AA8EeQAPBHoADwR8AA8EfgAPBH8ADwSAAA8EggAPBIMADwT+AA8FAAAPBQIADwUEAA8FBwAPBQgADwUJAA8FCgAPBQsADwUNAA8FDwAPBRAADwURAA8FEwAPBRQADwWPAA8FkQAPBZMADwWVAA8FmAAPBZkADwWaAA8FmwAPBZwADwWeAA8FoAAPBaEADwWiAA8FpAAPBaUADwYgAA8GIgAPBiQADwYmAA8GKQAPBioADwYrAA8GLAAPBi0ADwYvAA8GMQAPBjIADwYzAA8GNQAPBjYADwaxAA8GswAPBrUADwa3AA8GugAPBrsADwa8AA8GvQAPBr4ADwbAAA8GwgAPBsMADwbEAA8GxgAPBscADwcQAA8HNAAPB1sADwd/AA8HggAPB4QADweGAA8HiAAPB4oADweMAA8HjQAPB5AADwepAA8HxgAPB8gADwfKAA8HzAAPB84ADwfQAA8H0gAPB9QADwfxAA8H9AAPB/cADwf6AA8H/QAPCAAADwgDAA8IBgAPCAgADwiDAA8IhQAPCIcADwiJAA8IjAAPCI0ADwiOAA8IjwAPCJAADwiSAA8IlAAPCJUADwiWAA8ImAAPCJkADwkUAA8JFgAPCRgADwkaAA8JHQAPCR4ADwkfAA8JIAAPCSEADwkjAA8JJQAPCSYADwknAA8JKQAPCSoADwmlAA8JpwAPCakADwmrAA8JrgAPCa8ADwmwAA8JsQAPCbIADwm0AA8JtgAPCbcADwm4AA8JugAPCbsADwo2AA8KOAAPCjoADwo8AA8KPwAPCkAADwpBAA8KQgAPCkMADwpFAA8KRwAPCkgADwpJAA8KSwAPCkwADwrHAA8KyQAPCssADwrNAA8K0AAPCtEADwrSAA8K0wAPCtQADwrWAA8K2AAPCtkADwraAA8K3AAPCt0ADwtYAA8LWgAPC10ADwtfAA8LYgAPC2MADwtkAA8LZQAPC2YADwtoAA8LagAPC2sADwtsAA8LbgAPC28ADwt+AA8L+QAPC/sADwv9AA8L/wAPDAIADwwDAA8MBAAPDAUADwwGAA8MCAAPDAoADwwLAA8MDAAPDA4ADwwPAA8MogAPDMUADwzlAA8NBQAPDQcADw0JAA8NCwAPDQ0ADw0QAA8NEQAPDRIADw0VAA8NFgAPDRgADw0ZAA8NHAAPDR8ADw0gAA8NIQAPDSQADw0lAA8NKgAPDUMADw1MAA8NTgAPDVEADw1aAA8NXQAPDWAADw1iAA8NqwAPDc8ADw32AA8OGgAPDh0ADw4fAA8OIQAPDiMADw4lAA8OJwAPDigADw4rAA8ORAAPDmUADw5nAA8OaQAPDmsADw5tAA8ObwAPDnEADw5zAA8OdQAPDpYADw6ZAA8OnAAPDp8ADw6iAA8OpQAPDqgADw6rAA8OrgAPDrAADw8rAA8PLQAPDy8ADw8xAA8PNAAPDzUADw82AA8PNwAPDzgADw86AA8PPAAPDz0ADw8+AA8PQAAPD0EADw+8AA8PvgAPD8AADw/CAA8PxQAPD8YADw/HAA8PyAAPD8kADw/LAA8PzQAPD84ADw/PAA8P0QAPD9IADxBNAA8QTwAPEFIADxBUAA8QVwAPEFgADxBZAA8QWgAPEFsADxBdAA8QXwAPEGAADxBhAA8QYwAPEGQADxB9AA8QfgAPEH8ADxCBAA8Q/AAPEP4ADxEAAA8RAgAPEQUADxEGAA8RBwAPEQgADxEJAA8RCwAPEQ0ADxEOAA8RDwAPEREADxESAA8RjQAPEY8ADxGRAA8RkwAPEZYADxGXAA8RmAAPEZkADxGaAA8RnAAPEZ4ADxGfAA8RoAAPEaIADxGjAA8SHgAPEiAADxIiAA8SJAAPEicADxIoAA8SKQAPEioADxIrAA8SLQAPEi8ADxIwAA8SMQAPEjMADxI0AA8SrwAPErEADxKzAA8StQAPErgADxK5AA8SugAPErsADxK8AA8SvgAPEsAADxLBAA8SwgAPEsQADxLFAA8TQAAPE0IADxNEAA8TRgAPE0kADxNKAA8TSwAPE0wADxNNAA8TTwAPE1EADxNSAA8TUwAPE1UADxNWAA8TnwAPE8MADxPqAA8UDgAPFBEADxQUAA8UFgAPFBgADxQaAA8UHAAPFB0ADxQgAA8UOQAPFFYADxRZAA8UXAAPFF8ADxRiAA8UZQAPFGgADxRrAA8UiAAPFIsADxSOAA8UkQAPFJQADxSXAA8UmgAPFJ0ADxSfAA8VGgAPFRwADxUfAA8VIQAPFSQADxUlAA8VJgAPFScADxUoAA8VKgAPFS0ADxUuAA8VLwAPFTEADxUyAA8VrQAPFa8ADxWyAA8VtAAPFbcADxW4AA8VuQAPFboADxW7AA8VvQAPFcAADxXBAA8VwgAPFcQADxXFAA8WQAAPFkIADxZFAA8WRwAPFkoADxZLAA8WTAAPFk0ADxZOAA8WUAAPFlMADxZUAA8WVQAPFlcADxZYAA8W0wAPFtUADxbYAA8W2gAPFt0ADxbeAA8W3wAPFuAADxbhAA8W4wAPFuYADxbnAA8W6AAPFuoADxbrAA8XZgAPF2gADxdqAA8XbAAPF28ADxdwAA8XcQAPF3IADxdzAA8XdQAPF3gADxd5AA8XegAPF3wADxd9AA8X+AAPF/oADxf8AA8X/gAPGAEADxgCAA8YAwAPGAQADxgFAA8YBwAPGAoADxgLAA8YDAAPGA4ADxgPAA8YigAPGIwADxiPAA8YkQAPGJQADxiVAA8YlgAPGJcADxiYAA8YmgAPGJ0ADxieAA8YnwAPGKEADxiiAA8ZNQAPGVgADxl4AA8ZmAAPGZoADxmcAA8ZngAPGaAADxmjAA8ZpAAPGaUADxmoAA8ZqQAPGasADxmsAA8ZrgAPGbEADxmyAA8ZswAPGbYADxm3AA8ZvAAPGdUADxneAA8Z4AAPGeIADxnrAA8Z7gAPGfEADxnzAA8aPAAPGmAADxqHAA8aqwAPGq4ADxqwAA8asgAPGrQADxq2AA8auAAPGrkADxq8AA8a1QAPGvYADxr4AA8a+gAPGvwADxr+AA8bAAAPGwIADxsEAA8bBgAPGycADxsqAA8bLQAPGzAADxszAA8bNgAPGzkADxs8AA8bPwAPG0EADxu8AA8bvgAPG8AADxvCAA8bxQAPG8YADxvHAA8byAAPG8kADxvLAA8bzQAPG84ADxvPAA8b0QAPG9IADxxNAA8cTwAPHFEADxxTAA8cVgAPHFcADxxYAA8cWQAPHFoADxxcAA8cXgAPHF8ADxxgAA8cYgAPHGMADxzeAA8c4AAPHOMADxzlAA8c6AAPHOkADxzqAA8c6wAPHOwADxzuAA8c8AAPHPEADxzyAA8c9AAPHPUADx0OAA8dDwAPHRAADx0SAA8djQAPHY8ADx2RAA8dkwAPHZYADx2XAA8dmAAPHZkADx2aAA8dnAAPHZ4ADx2fAA8doAAPHaIADx2jAA8eHgAPHiAADx4iAA8eJAAPHicADx4oAA8eKQAPHioADx4rAA8eLQAPHi8ADx4wAA8eMQAPHjMADx40AA8erwAPHrEADx6zAA8etQAPHrgADx65AA8eugAPHrsADx68AA8evgAPHsAADx7BAA8ewgAPHsQADx7FAA8fQAAPH0IADx9EAA8fRgAPH0kADx9KAA8fSwAPH0wADx9NAA8fTwAPH1EADx9SAA8fUwAPH1UADx9WAA8f0QAPH9MADx/VAA8f1wAPH9oADx/bAA8f3AAPH90ADx/eAA8f4AAPH+IADx/jAA8f5AAPH+YADx/nAA8gMAAPIFQADyB7AA8gnwAPIKIADyCkAA8gpgAPIKgADyCqAA8grAAPIK0ADyCwAA8gyQAPIOYADyDoAA8g6gAPIOwADyDuAA8g8AAPIPIADyD0AA8hEQAPIRQADyEXAA8hGgAPIR0ADyEgAA8hIwAPISYADyEoAA8howAPIaUADyGnAA8hqQAPIawADyGtAA8hrgAPIa8ADyGwAA8hsgAPIbQADyG1AA8htgAPIbgADyG5AA8iNAAPIjYADyI4AA8iOgAPIj0ADyI+AA8iPwAPIkAADyJBAA8iQwAPIkUADyJGAA8iRwAPIkkADyJKAA8ixQAPIscADyLJAA8iywAPIs4ADyLPAA8i0AAPItEADyLSAA8i1AAPItYADyLXAA8i2AAPItoADyLbAA8jVgAPI1gADyNbAA8jXQAPI2AADyNhAA8jYgAPI2MADyNkAA8jZgAPI2gADyNpAA8jagAPI2wADyNtAA8j6AAPI+oADyPsAA8j7gAPI/EADyPyAA8j8wAPI/QADyP1AA8j9wAPI/kADyP6AA8j+wAPI/0ADyP+AA8keQAPJHsADyR9AA8kfwAPJIIADySDAA8khAAPJIUADySGAA8kiAAPJIoADySLAA8kjAAPJI4ADySPAA8lCgAPJQwADyUOAA8lEAAPJRMADyUUAA8lFQAPJRYADyUXAA8lGQAPJRsADyUcAA8lHQAPJR8ADyUgAA8lswAPJdYADyX2AA8mFgAPJhgADyYaAA8mHAAPJh4ADyYhAA8mIgAPJiMADyYmAA8mJwAPJikADyYqAA8mLAAPJi8ADyYwAA8mMQAPJjQADyY1AA8mOgAPJlMADyZcAA8mXgAPJmAADyZpAA8mbAAPJm8ADyZxAA8mugAPJt4ADycFAA8nKQAPJywADycuAA8nMAAPJzIADyc0AA8nNgAPJzcADyc6AA8nUwAPJ3QADyd2AA8neAAPJ3oADyd8AA8nfgAPJ4AADyeCAA8nhAAPJ6UADyeoAA8nqwAPJ64ADyexAA8ntAAPJ7cADye6AA8nvQAPJ78ADyg6AA8oPAAPKD4ADyhAAA8oQwAPKEQADyhFAA8oRgAPKEcADyhJAA8oSwAPKEwADyhNAA8oTwAPKFAADyjLAA8ozQAPKM8ADyjRAA8o1AAPKNUADyjWAA8o1wAPKNgADyjaAA8o3AAPKN0ADyjeAA8o4AAPKOEADylcAA8pXgAPKWEADyljAA8pZgAPKWcADyloAA8paQAPKWoADylsAA8pbgAPKW8ADylwAA8pcgAPKXMADymMAA8pjQAPKY4ADymQAA8qCwAPKg0ADyoPAA8qEQAPKhQADyoVAA8qFgAPKhcADyoYAA8qGgAPKhwADyodAA8qHgAPKiAADyohAA8qnAAPKp4ADyqgAA8qogAPKqUADyqmAA8qpwAPKqgADyqpAA8qqwAPKq0ADyquAA8qrwAPKrEADyqyAA8rLQAPKy8ADysxAA8rMwAPKzYADys3AA8rOAAPKzkADys6AA8rPAAPKz4ADys/AA8rQAAPK0IADytDAA8rvgAPK8AADyvCAA8rxAAPK8cADyvIAA8ryQAPK8oADyvLAA8rzQAPK88ADyvQAA8r0QAPK9MADyvUAA8sTwAPLFEADyxTAA8sVQAPLFgADyxZAA8sWgAPLFsADyxcAA8sXgAPLGAADyxhAA8sYgAPLGQADyxlAA8srgAPLNIADyz5AA8tHQAPLSAADy0iAA8tJAAPLSYADy0oAA8tKgAPLSsADy0uAA8tRwAPLWQADy1mAA8taAAPLWoADy1sAA8tbgAPLXAADy1yAA8tjwAPLZIADy2VAA8tmAAPLZsADy2eAA8toQAPLaQADy2mAA8uIQAPLiMADy4lAA8uJwAPLioADy4rAA8uLAAPLi0ADy4uAA8uMAAPLjIADy4zAA8uNAAPLjYADy43AA8usgAPLrQADy62AA8uuAAPLrsADy68AA8uvQAPLr4ADy6/AA8uwQAPLsMADy7EAA8uxQAPLscADy7IAA8vQwAPL0UADy9HAA8vSQAPL0wADy9NAA8vTgAPL08ADy9QAA8vUgAPL1QADy9VAA8vVgAPL1gADy9ZAA8v1AAPL9YADy/ZAA8v2wAPL94ADy/fAA8v4AAPL+EADy/iAA8v5AAPL+YADy/nAA8v6AAPL+oADy/rAA8wZgAPMGgADzBqAA8wbAAPMG8ADzBwAA8wcQAPMHIADzBzAA8wdQAPMHcADzB4AA8weQAPMHsADzB8AA8w9wAPMPkADzD7AA8w/QAPMQAADzEBAA8xAgAPMQMADzEEAA8xBgAPMQgADzEJAA8xCgAPMQwADzENAA8xiAAPMYoADzGMAA8xjgAPMZEADzGSAA8xkwAPMZQADzGVAA8xlwAPMZkADzGaAA8xmwAPMZ0ADzGeAA8yMQAPMlQADzJ0AA8ylAAPMpYADzKYAA8ymgAPMpwADzKfAA8yoAAPMqEADzKkAA8ypQAPMqcADzKoAA8yqgAPMq0ADzKuAA8yrwAPMrIADzKzAA8yuAAPMtEADzLaAA8y3AAPMt4ADzLnAA8y6gAPMu0ADzLvAA8zOAAPM1wADzODAA8zpwAPM6oADzOsAA8zrgAPM7AADzOyAA8ztAAPM7UADzO4AA8z0QAPM/IADzP0AA8z9gAPM/gADzP6AA8z/AAPM/4ADzQAAA80AgAPNCMADzQmAA80KQAPNCwADzQvAA80MgAPNDUADzQ4AA80OwAPND0ADzS4AA80ugAPNLwADzS+AA80wQAPNMIADzTDAA80xAAPNMUADzTHAA80yQAPNMoADzTLAA80zQAPNM4ADzVJAA81SwAPNU0ADzVPAA81UgAPNVMADzVUAA81VQAPNVYADzVYAA81WgAPNVsADzVcAA81XgAPNV8ADzXaAA813AAPNd8ADzXhAA815AAPNeUADzXmAA815wAPNegADzXqAA817AAPNe0ADzXuAA818AAPNfEADzYKAA82CwAPNgwADzYOAA82iQAPNosADzaNAA82jwAPNpIADzaTAA82lAAPNpUADzaWAA82mAAPNpoADzabAA82nAAPNp4ADzafAA83GgAPNxwADzceAA83IAAPNyMADzckAA83JQAPNyYADzcnAA83KQAPNysADzcsAA83LQAPNy8ADzcwAA83qwAPN60ADzevAA83sQAPN7QADze1AA83tgAPN7cADze4AA83ugAPN7wADze9AA83vgAPN8AADzfBAA84PAAPOD4ADzhAAA84QgAPOEUADzhGAA84RwAPOEgADzhJAA84SwAPOE0ADzhOAA84TwAPOFEADzhSAA84zQAPOM8ADzjRAA840wAPONYADzjXAA842AAPONkADzjaAA843AAPON4ADzjfAA844AAPOOIADzjjAA85LAAPOVAADzl3AA85mwAPOZ4ADzmgAA85ogAPOaQADzmmAA85qAAPOakADzmsAA85xQAPOeIADznkAA855gAPOegADznqAA857AAPOe4ADznwAA86DQAPOhAADzoTAA86FgAPOhkADzocAA86HwAPOiIADzokAA86nwAPOqEADzqjAA86pQAPOqgADzqpAA86qgAPOqsADzqsAA86rgAPOrAADzqxAA86sgAPOrQADzq1AA87MAAPOzIADzs0AA87NgAPOzkADzs6AA87OwAPOzwADzs9AA87PwAPO0EADztCAA87QwAPO0UADztGAA87wQAPO8MADzvFAA87xwAPO8oADzvLAA87zAAPO80ADzvOAA870AAPO9IADzvTAA871AAPO9YADzvXAA88UgAPPFQADzxWAA88WAAPPFsADzxcAA88XQAPPF4ADzxfAA88YQAPPGMADzxkAA88ZQAPPGcADzxoAA884wAPPOUADzznAA886QAPPOwADzztAA887gAPPO8ADzzwAA888gAPPPQADzz1AA889gAPPPgADzz5AA89dAAPPXYADz15AA89ewAPPX4ADz1/AA89gAAPPYEADz2CAA89hAAPPYYADz2HAA89iAAPPYoADz2LAA89qgAPPiUADz4nAA8+KQAPPisADz4uAA8+LwAPPjAADz4xAA8+MgAPPjQADz42AA8+NwAPPjgADz46AA8+OwAPPs4ADz7xAA8/EQAPPzEADz8zAA8/NQAPPzcADz85AA8/PAAPPz0ADz8+AA8/QQAPP0IADz9EAA8/RQAPP0cADz9KAA8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Q5gAPUOcAD1DoAA9Q6QAPUOsAD1DtAA9Q7gAPUO8AD1DxAA9Q8gAPUQsAD1EMAA9RDQAPUQ8AD1GKAA9RjAAPUY4AD1GQAA9RkwAPUZQAD1GVAA9RlgAPUZcAD1GZAA9RmwAPUZwAD1GdAA9RnwAPUaAAD1IbAA9SHQAPUh8AD1IhAA9SJAAPUiUAD1ImAA9SJwAPUigAD1IqAA9SLAAPUi0AD1IuAA9SMAAPUjEAD1KsAA9SrgAPUrAAD1KyAA9StQAPUrYAD1K3AA9SuAAPUrkAD1K7AA9SvQAPUr4AD1K/AA9SwQAPUsIAD1M9AA9TPwAPU0EAD1NDAA9TRgAPU0cAD1NIAA9TSQAPU0oAD1NMAA9TTgAPU08AD1NQAA9TUgAPU1MAD1POAA9T0AAPU9IAD1PUAA9T1wAPU9gAD1PZAA9T2gAPU9sAD1PdAA9T3wAPU+AAD1PhAA9T4wAPU+QAD1QtAA9UUQAPVHgAD1ScAA9UnwAPVKEAD1SjAA9UpQAPVKcAD1SpAA9UqgAPVK0AD1TGAA9U4wAPVOUAD1TnAA9U6QAPVOsAD1TtAA9U7wAPVPEAD1UOAA9VEQAPVRQAD1UXAA9VGgAPVR0AD1UgAA9VIwAPVSUAD1WgAA9VogAPVaQAD1WmAA9VqQAPVaoAD1WrAA9VrAAPVa0AD1WvAA9VsQAPVbIAD1WzAA9VtQAPVbYAD1YxAA9WMwAPVjUAD1Y3AA9WOgAPVjsAD1Y8AA9WPQAPVj4AD1ZAAA9WQgAPVkMAD1ZEAA9WRgAPVkcAD1bCAA9WxAAPVsYAD1bIAA9WywAPVswAD1bNAA9WzgAPVs8AD1bRAA9W0wAPVtQAD1bVAA9W1wAPVtgAD1dTAA9XVQAPV1gAD1daAA9XXQAPV14AD1dfAA9XYAAPV2EAD1djAA9XZQAPV2YAD1dnAA9XaQAPV2oAD1flAA9X5wAPV+kAD1frAA9X7gAPV+8AD1fwAA9X8QAPV/IAD1f0AA9X9gAPV/cAD1f4AA9X+gAPV/sAD1h2AA9YeAAPWHoAD1h8AA9YfwAPWIAAD1iBAA9YggAPWIMAD1iFAA9YhwAPWIgAD1iJAA9YiwAPWIwAD1kHAA9ZCQAPWQsAD1kNAA9ZEAAPWREAD1kSAA9ZEwAPWRQAD1kWAA9ZGAAPWRkAD1kaAA9ZHAAPWR0AD1mwAA9Z0wAPWfMAD1oTAA9aFQAPWhcAD1oZAA9aGwAPWh4AD1ofAA9aIAAPWiMAD1okAA9aJgAPWicAD1opAA9aLAAPWi0AD1ouAA9aMQAPWjIAD1o3AA9aUAAPWlkAD1pbAA9aXQAPWmYAD1ppAA9abAAPWm4AD1q3AA9a2wAPWwIAD1smAA9bKQAPWysAD1stAA9bLwAPWzEAD1szAA9bNAAPWzcAD1tQAA9bcQAPW3MAD1t1AA9bdwAPW3kAD1t7AA9bfQAPW38AD1uBAA9bogAPW6UAD1uoAA9bqwAPW64AD1uxAA9btAAPW7cAD1u6AA9bvAAPXDcAD1w5AA9cOwAPXD0AD1xAAA9cQQAPXEIAD1xDAA9cRAAPXEYAD1xIAA9cSQAPXEoAD1xMAA9cTQAPXMgAD1zKAA9czAAPXM4AD1zRAA9c0gAPXNMAD1zUAA9c1QAPXNcAD1zZAA9c2gAPXNsAD1zdAA9c3gAPXVkAD11bAA9dXgAPXWAAD11jAA9dZAAPXWUAD11mAA9dZwAPXWkAD11rAA9dbAAPXW0AD11vAA9dcAAPXYkAD12KAA9diwAPXY0AD14IAA9eCgAPXgwAD14OAA9eEQAPXhIAD14TAA9eFAAPXhUAD14XAA9eGQAPXhoAD14bAA9eHQAPXh4AD16ZAA9emwAPXp0AD16fAA9eogAPXqMAD16kAA9epQAPXqYAD16oAA9eqgAPXqsAD16sAA9ergAPXq8AD18qAA9fLAAPXy4AD18wAA9fMwAPXzQAD181AA9fNgAPXzcAD185AA9fOwAPXzwAD189AA9fPwAPX0AAD1+7AA9fvQAPX78AD1/BAA9fxAAPX8UAD1/GAA9fxwAPX8gAD1/KAA9fzAAPX80AD1/OAA9f0AAPX9EAD2BMAA9gTgAPYFAAD2BSAA9gVQAPYFYAD2BXAA9gWAAPYFkAD2BbAA9gXQAPYF4AD2BfAA9gYQAPYGIAD2CrAA9gzwAPYPYAD2EaAA9hHQAPYR8AD2EhAA9hIwAPYSUAD2EnAA9hKAAPYSsAD2FEAA9hYQAPYWMAD2FlAA9hZwAPYWkAD2FrAA9hbQAPYW8AD2GMAA9hjwAPYZIAD2GVAA9hmAAPYZsAD2GeAA9hoQAPYaMAD2IeAA9iIAAPYiIAD2IkAA9iJwAPYigAD2IpAA9iKgAPYisAD2ItAA9iLwAPYjAAD2IxAA9iMwAPYjQAD2KvAA9isQAPYrMAD2K1AA9iuAAPYrkAD2K6AA9iuwAPYrwAD2K+AA9iwAAPYsEAD2LCAA9ixAAPYsUAD2NAAA9jQgAPY0QAD2NGAA9jSQAPY0oAD2NLAA9jTAAPY00AD2NPAA9jUQAPY1IAD2NTAA9jVQAPY1YAD2PRAA9j0wAPY9YAD2PYAA9j2wAPY9wAD2PdAA9j3gAPY98AD2PhAA9j4wAPY+QAD2PlAA9j5wAPY+gAD2RjAA9kZQAPZGcAD2RpAA9kbAAPZG0AD2RuAA9kbwAPZHAAD2RyAA9kdAAPZHUAD2R2AA9keAAPZHkAD2T0AA9k9gAPZPgAD2T6AA9k/QAPZP4AD2T/AA9lAAAPZQEAD2UDAA9lBQAPZQYAD2UHAA9lCQAPZQoAD2WFAA9lhwAPZYkAD2WLAA9ljgAPZY8AD2WQAA9lkQAPZZIAD2WUAA9llgAPZZcAD2WYAA9lmgAPZZsAD2YuAA9mUQAPZnEAD2aRAA9mkwAPZpUAD2aXAA9mmQAPZpwAD2adAA9mngAPZqEAD2aiAA9mpAAPZqUAD2anAA9mqgAPZqsAD2asAA9mrwAPZrAAD2a1AA9mzgAPZtcAD2bZAA9m2wAPZuQAD2bnAA9m6gAPZuwAD2c1AA9nWQAPZ4AAD2ekAA9npwAPZ6kAD2erAA9nrQAPZ68AD2exAA9nsgAPZ7UAD2fOAA9n7wAPZ/EAD2fzAA9n9QAPZ/cAD2f5AA9n+wAPZ/0AD2f/AA9oIAAPaCMAD2gmAA9oKQAPaCwAD2gvAA9oMgAPaDUAD2g4AA9oOgAPaLUAD2i3AA9ouQAPaLsAD2i+AA9ovwAPaMAAD2jBAA9owgAPaMQAD2jGAA9oxwAPaMgAD2jKAA9oywAPaUYAD2lIAA9pSgAPaUwAD2lPAA9pUAAPaVEAD2lSAA9pUwAPaVUAD2lXAA9pWAAPaVkAD2lbAA9pXAAPadcAD2nZAA9p3AAPad4AD2nhAA9p4gAPaeMAD2nkAA9p5QAPaecAD2npAA9p6gAPaesAD2ntAA9p7gAPagcAD2oIAA9qCQAPagsAD2qGAA9qiAAPaooAD2qMAA9qjwAPapAAD2qRAA9qkgAPapMAD2qVAA9qlwAPapgAD2qZAA9qmwAPapwAD2sXAA9rGQAPaxsAD2sdAA9rIAAPayEAD2siAA9rIwAPayQAD2smAA9rKAAPaykAD2sqAA9rLAAPay0AD2uoAA9rqgAPa6wAD2uuAA9rsQAPa7IAD2uzAA9rtAAPa7UAD2u3AA9ruQAPa7oAD2u7AA9rvQAPa74AD2w5AA9sOwAPbD0AD2w/AA9sQgAPbEMAD2xEAA9sRQAPbEYAD2xIAA9sSgAPbEsAD2xMAA9sTgAPbE8AD2zKAA9szAAPbM4AD2zQAA9s0wAPbNQAD2zVAA9s1gAPbNcAD2zZAA9s2wAPbNwAD2zdAA9s3wAPbOAAD20pAA9tTQAPbXQAD22YAA9tmwAPbZ0AD22fAA9toQAPbaMAD22lAA9tpgAPbakAD23CAA9t3wAPbeEAD23jAA9t5QAPbecAD23pAA9t6wAPbe0AD24KAA9uDQAPbhAAD24TAA9uFgAPbhkAD24cAA9uHwAPbiEAD26cAA9ungAPbqAAD26iAA9upQAPbqYAD26nAA9uqAAPbqkAD26rAA9urQAPbq4AD26vAA9usQAPbrIAD28tAA9vLwAPbzEAD28zAA9vNgAPbzcAD284AA9vOQAPbzoAD288AA9vPgAPbz8AD29AAA9vQgAPb0MAD2++AA9vwAAPb8IAD2/EAA9vxwAPb8gAD2/JAA9vygAPb8sAD2/NAA9vzwAPb9AAD2/RAA9v0wAPb9QAD3BPAA9wUQAPcFMAD3BVAA9wWAAPcFkAD3BaAA9wWwAPcFwAD3BeAA9wYAAPcGEAD3BiAA9wZAAPcGUAD3DgAA9w4gAPcOQAD3DmAA9w6QAPcOoAD3DrAA9w7AAPcO0AD3DvAA9w8QAPcPIAD3DzAA9w9QAPcPYAD3FxAA9xcwAPcXYAD3F4AA9xewAPcXwAD3F9AA9xfgAPcX8AD3GBAA9xgwAPcYQAD3GFAA9xhwAPcYgAD3GjAA9yHgAPciAAD3IiAA9yJAAPcicAD3IoAA9yKQAPcioAD3IrAA9yLQAPci8AD3IwAA9yMQAPcjMAD3I0AA9yxwAPcuoAD3MKAA9zKgAPcywAD3MuAA9zMAAPczIAD3M1AA9zNgAPczcAD3M6AA9zOwAPcz0AD3M+AA9zQQAPc0QAD3NFAA9zRgAPc0kAD3NKAA9zTwAPc2gAD3NxAA9zcwAPc3YAD3N/AA9zggAPc4UAD3OHAA9z0AAPc/QAD3QbAA90PwAPdEIAD3REAA90RgAPdEgAD3RKAA90TAAPdE0AD3RQAA90aQAPdIoAD3SMAA90jgAPdJAAD3SSAA90lAAPdJYAD3SYAA90mgAPdLsAD3S+AA90wQAPdMQAD3THAA90ygAPdM0AD3TQAA900wAPdNUAD3VQAA91UgAPdVQAD3VWAA91WQAPdVoAD3VbAA91XAAPdV0AD3VfAA91YQAPdWIAD3VjAA91ZQAPdWYAD3XhAA914wAPdeUAD3XnAA916gAPdesAD3XsAA917QAPde4AD3XwAA918gAPdfMAD3X0AA919gAPdfcAD3ZyAA92dAAPdncAD3Z5AA92fAAPdn0AD3Z+AA92fwAPdoAAD3aCAA92hAAPdoUAD3aGAA92iAAPdokAD3aiAA92owAPdqQAD3amAA93IQAPdyMAD3clAA93JwAPdyoAD3crAA93LAAPdy0AD3cuAA93MAAPdzIAD3czAA93NAAPdzYAD3c3AA93sgAPd7QAD3e2AA93uAAPd7sAD3e8AA93vQAPd74AD3e/AA93wQAPd8MAD3fEAA93xQAPd8cAD3fIAA94QwAPeEUAD3hHAA94SQAPeEwAD3hNAA94TgAPeE8AD3hQAA94UgAPeFQAD3hVAA94VgAPeFgAD3hZAA941AAPeNYAD3jYAA942gAPeN0AD3jeAA943wAPeOAAD3jhAA944wAPeOUAD3jmAA945wAPeOkAD3jqAA95ZQAPeWcAD3lpAA95awAPeW4AD3lvAA95cAAPeXEAD3lyAA95dAAPeXYAD3l3AA95eAAPeXoAD3l7AA95xAAPeegAD3oPAA96MwAPejYAD3o5AA96OwAPej0AD3o/AA96QQAPekIAD3pFAA96XgAPensAD3p+AA96gQAPeoQAD3qHAA96igAPeo0AD3qQAA96rQAPerAAD3qzAA96tgAPerkAD3q8AA96vwAPesIAD3rEAA97PwAPe0EAD3tEAA97RgAPe0kAD3tKAA97SwAPe0wAD3tNAA97TwAPe1IAD3tTAA97VAAPe1YAD3tXAA970gAPe9QAD3vXAA972QAPe9wAD3vdAA973gAPe98AD3vgAA974gAPe+UAD3vmAA975wAPe+kAD3vqAA98ZQAPfGcAD3xqAA98bAAPfG8AD3xwAA98cQAPfHIAD3xzAA98dQAPfHgAD3x5AA98egAPfHwAD3x9AA98+AAPfPoAD3z9AA98/wAPfQIAD30DAA99BAAPfQUAD30GAA99CAAPfQsAD30MAA99DQAPfQ8AD30QAA99iwAPfY0AD32PAA99kQAPfZQAD32VAA99lgAPfZcAD32YAA99mgAPfZ0AD32eAA99nwAPfaEAD32iAA9+HQAPfh8AD34hAA9+IwAPfiYAD34nAA9+KAAPfikAD34qAA9+LAAPfi8AD34wAA9+MQAPfjMAD340AA9+rwAPfrEAD360AA9+tgAPfrkAD366AA9+uwAPfrwAD369AA9+vwAPfsIAD37DAA9+xAAPfsYAD37HAA9/WgAPf30AD3+dAA9/vQAPf78AD3/BAA9/wwAPf8UAD3/IAA9/yQAPf8oAD3/NAA9/zgAPf9AAD3/RAA9/0wAPf9YAD3/XAA9/2AAPf9sAD3/cAA9/4QAPf/oAD4ADAA+ABQAPgAcAD4AQAA+AEwAPgBYAD4AYAA+AYQAPgIUAD4CsAA+A0AAPgNMAD4DVAA+A1wAPgNkAD4DbAA+A3QAPgN4AD4DhAA+A+gAPgRsAD4EdAA+BHwAPgSEAD4EjAA+BJQAPgScAD4EpAA+BKwAPgUwAD4FPAA+BUgAPgVUAD4FYAA+BWwAPgV4AD4FhAA+BZAAPgWYAD4HhAA+B4wAPgeUAD4HnAA+B6gAPgesAD4HsAA+B7QAPge4AD4HwAA+B8gAPgfMAD4H0AA+B9gAPgfcAD4JyAA+CdAAPgnYAD4J4AA+CewAPgnwAD4J9AA+CfgAPgn8AD4KBAA+CgwAPgoQAD4KFAA+ChwAPgogAD4MDAA+DBQAPgwgAD4MKAA+DDQAPgw4AD4MPAA+DEAAPgxEAD4MTAA+DFQAPgxYAD4MXAA+DGQAPgxoAD4MzAA+DNAAPgzUAD4M3AA+DsgAPg7QAD4O2AA+DuAAPg7sAD4O8AA+DvQAPg74AD4O/AA+DwQAPg8MAD4PEAA+DxQAPg8cAD4PIAA+EQwAPhEUAD4RHAA+ESQAPhEwAD4RNAA+ETgAPhE8AD4RQAA+EUgAPhFQAD4RVAA+EVgAPhFgAD4RZAA+E1AAPhNYAD4TYAA+E2gAPhN0AD4TeAA+E3wAPhOAAD4ThAA+E4wAPhOUAD4TmAA+E5wAPhOkAD4TqAA+FZQAPhWcAD4VpAA+FawAPhW4AD4VvAA+FcAAPhXEAD4VyAA+FdAAPhXYAD4V3AA+FeAAPhXoAD4V7AA+F9gAPhfgAD4X6AA+F/AAPhf8AD4YAAA+GAQAPhgIAD4YDAA+GBQAPhgcAD4YIAA+GCQAPhgsAD4YMAA+GVQAPhnkAD4agAA+GxAAPhscAD4bJAA+GywAPhs0AD4bPAA+G0QAPhtIAD4bVAA+G7gAPhwsAD4cNAA+HDwAPhxEAD4cTAA+HFQAPhxcAD4cZAA+HNgAPhzkAD4c8AA+HPwAPh0IAD4dFAA+HSAAPh0sAD4dNAA+HyAAPh8oAD4fNAA+HzwAPh9IAD4fTAA+H1AAPh9UAD4fWAA+H2AAPh9oAD4fbAA+H3AAPh94AD4ffAA+IWgAPiFwAD4heAA+IYAAPiGMAD4hkAA+IZQAPiGYAD4hnAA+IaQAPiGsAD4hsAA+IbQAPiG8AD4hwAA+I6wAPiO0AD4jvAA+I8QAPiPQAD4j1AA+I9gAPiPcAD4j4AA+I+gAPiPwAD4j9AA+I/gAPiQAAD4kBAA+JfAAPiX4AD4mBAA+JgwAPiYYAD4mHAA+JiAAPiYkAD4mKAA+JjAAPiY4AD4mPAA+JkAAPiZIAD4mTAA+KDgAPihAAD4oSAA+KFAAPihcAD4oYAA+KGQAPihoAD4obAA+KHQAPih8AD4ogAA+KIQAPiiMAD4okAA+KnwAPiqEAD4qjAA+KpQAPiqgAD4qpAA+KqgAPiqsAD4qsAA+KrgAPirAAD4qxAA+KsgAPirQAD4q1AA+LMAAPizIAD4s0AA+LNgAPizkAD4s6AA+LOwAPizwAD4s9AA+LPwAPi0EAD4tCAA+LQwAPi0UAD4tGAA+L2QAPi/wAD4wcAA+MPAAPjD4AD4xAAA+MQgAPjEQAD4xHAA+MSAAPjEkAD4xMAA+MTQAPjE8AD4xQAA+MUgAPjFUAD4xWAA+MVwAPjFoAD4xbAA+MYAAPjHkAD4yCAA+MhAAPjIYAD4yPAA+MkgAPjJUAD4yXAA+M4AAPjQQAD40rAA+NTwAPjVIAD41UAA+NVgAPjVgAD41aAA+NXAAPjV0AD41gAA+NeQAPjZoAD42cAA+NngAPjaAAD42iAA+NpAAPjaYAD42oAA+NqgAPjcsAD43OAA+N0QAPjdQAD43XAA+N2gAPjd0AD43gAA+N4wAPjeUAD45gAA+OYgAPjmQAD45mAA+OaQAPjmoAD45rAA+ObAAPjm0AD45vAA+OcQAPjnIAD45zAA+OdQAPjnYAD47xAA+O8wAPjvUAD473AA+O+gAPjvsAD478AA+O/QAPjv4AD48AAA+PAgAPjwMAD48EAA+PBgAPjwcAD4+CAA+PhAAPj4cAD4+JAA+PjAAPj40AD4+OAA+PjwAPj5AAD4+SAA+PlAAPj5UAD4+WAA+PmAAPj5kAD4+yAA+PswAPj7QAD4+2AA+QMQAPkDMAD5A1AA+QNwAPkDoAD5A7AA+QPAAPkD0AD5A+AA+QQAAPkEIAD5BDAA+QRAAPkEYAD5BHAA+QwgAPkMQAD5DGAA+QyAAPkMsAD5DMAA+QzQAPkM4AD5DPAA+Q0QAPkNMAD5DUAA+Q1QAPkNcAD5DYAA+RUwAPkVUAD5FXAA+RWQAPkVwAD5FdAA+RXgAPkV8AD5FgAA+RYgAPkWQAD5FlAA+RZgAPkWgAD5FpAA+R5AAPkeYAD5HoAA+R6gAPke0AD5HuAA+R7wAPkfAAD5HxAA+R8wAPkfUAD5H2AA+R9wAPkfkAD5H6AA+SdQAPkncAD5J5AA+SewAPkn4AD5J/AA+SgAAPkoEAD5KCAA+ShAAPkoYAD5KHAA+SiAAPkooAD5KLAA+S1AAPkvgAD5MfAA+TQwAPk0YAD5NIAA+TSgAPk0wAD5NOAA+TUAAPk1EAD5NUAA+TbQAPk4oAD5OMAA+TjgAPk5AAD5OSAA+TlAAPk5YAD5OYAA+TtQAPk7gAD5O7AA+TvgAPk8EAD5PEAA+TxwAPk8oAD5PMAA+URwAPlEkAD5RMAA+UTgAPlFEAD5RSAA+UUwAPlFQAD5RVAA+UVwAPlFkAD5RaAA+UWwAPlF0AD5ReAA+U2QAPlNsAD5TdAA+U3wAPlOIAD5TjAA+U5AAPlOUAD5TmAA+U6AAPlOoAD5TrAA+U7AAPlO4AD5TvAA+VagAPlWwAD5VuAA+VcAAPlXMAD5V0AA+VdQAPlXYAD5V3AA+VeQAPlXsAD5V8AA+VfQAPlX8AD5WAAA+V+wAPlf0AD5YAAA+WAgAPlgUAD5YGAA+WBwAPlggAD5YJAA+WCwAPlg0AD5YOAA+WDwAPlhEAD5YSAA+WjQAPlo8AD5aRAA+WkwAPlpYAD5aXAA+WmAAPlpkAD5aaAA+WnAAPlp4AD5afAA+WoAAPlqIAD5ajAA+XHgAPlyAAD5ciAA+XJAAPlycAD5coAA+XKQAPlyoAD5crAA+XLQAPly8AD5cwAA+XMQAPlzMAD5c0AA+XrwAPl7EAD5ezAA+XtQAPl7gAD5e5AA+XugAPl7sAD5e8AA+XvgAPl8AAD5fBAA+XwgAPl8QAD5fFAA+YWAAPmHsAD5ibAA+YuwAPmL0AD5i/AA+YwQAPmMMAD5jGAA+YxwAPmMgAD5jLAA+YzAAPmM4AD5jPAA+Y0QAPmNQAD5jVAA+Y1gAPmNkAD5jaAA+Y3wAPmPgAD5kBAA+ZAwAPmQUAD5kOAA+ZEQAPmRQAD5kWAA+ZXwAPmYMAD5mqAA+ZzgAPmdEAD5nTAA+Z1QAPmdcAD5nZAA+Z2wAPmdwAD5nfAA+Z+AAPmhkAD5obAA+aHQAPmh8AD5ohAA+aIwAPmiUAD5onAA+aKQAPmkoAD5pNAA+aUAAPmlMAD5pWAA+aWQAPmlwAD5pfAA+aYgAPmmQAD5rfAA+a4QAPmuMAD5rlAA+a6AAPmukAD5rqAA+a6wAPmuwAD5ruAA+a8AAPmvEAD5ryAA+a9AAPmvUAD5twAA+bcgAPm3QAD5t2AA+beQAPm3oAD5t7AA+bfAAPm30AD5t/AA+bgQAPm4IAD5uDAA+bhQAPm4YAD5wBAA+cAwAPnAYAD5wIAA+cCwAPnAwAD5wNAA+cDgAPnA8AD5wRAA+cEwAPnBQAD5wVAA+cFwAPnBgAD5wxAA+cMgAPnDMAD5w1AA+csAAPnLIAD5y0AA+ctgAPnLkAD5y6AA+cuwAPnLwAD5y9AA+cvwAPnMEAD5zCAA+cwwAPnMUAD5zGAA+dQQAPnUMAD51FAA+dRwAPnUoAD51LAA+dTAAPnU0AD51OAA+dUAAPnVIAD51TAA+dVAAPnVYAD51XAA+d0gAPndQAD53WAA+d2AAPndsAD53cAA+d3QAPnd4AD53fAA+d4QAPneMAD53kAA+d5QAPnecAD53oAA+eYwAPnmUAD55nAA+eaQAPnmwAD55tAA+ebgAPnm8AD55wAA+ecgAPnnQAD551AA+edgAPnngAD555AA+e9AAPnvYAD574AA+e+gAPnv0AD57+AA+e/wAPnwAAD58BAA+fAwAPnwUAD58GAA+fBwAPnwkAD58KAA+fUwAPn3cAD5+eAA+fwgAPn8UAD5/HAA+fyQAPn8sAD5/NAA+fzwAPn9AAD5/TAA+f7AAPoAkAD6ALAA+gDQAPoA8AD6ARAA+gEwAPoBUAD6AXAA+gNAAPoDcAD6A6AA+gPQAPoEAAD6BDAA+gRgAPoEkAD6BLAA+gxgAPoMgAD6DKAA+gzAAPoM8AD6DQAA+g0QAPoNIAD6DTAA+g1QAPoNcAD6DYAA+g2QAPoNsAD6DcAA+hVwAPoVkAD6FbAA+hXQAPoWAAD6FhAA+hYgAPoWMAD6FkAA+hZgAPoWgAD6FpAA+hagAPoWwAD6FtAA+h6AAPoeoAD6HsAA+h7gAPofEAD6HyAA+h8wAPofQAD6H1AA+h9wAPofkAD6H6AA+h+wAPof0AD6H+AA+ieQAPonsAD6J+AA+igAAPooMAD6KEAA+ihQAPooYAD6KHAA+iiQAPoosAD6KMAA+ijQAPoo8AD6KQAA+jCwAPow0AD6MPAA+jEQAPoxQAD6MVAA+jFgAPoxcAD6MYAA+jGgAPoxwAD6MdAA+jHgAPoyAAD6MhAA+jnAAPo54AD6OgAA+jogAPo6UAD6OmAA+jpwAPo6gAD6OpAA+jqwAPo60AD6OuAA+jrwAPo7EAD6OyAA+kLQAPpC8AD6QxAA+kMwAPpDYAD6Q3AA+kOAAPpDkAD6Q6AA+kPAAPpD4AD6Q/AA+kQAAPpEIAD6RDAA+k1gAPpPkAD6UZAA+lOQAPpTsAD6U9AA+lPwAPpUEAD6VEAA+lRQAPpUYAD6VJAA+lSgAPpUwAD6VNAA+lTwAPpVIAD6VTAA+lVAAPpVcAD6VYAA+lXQAPpXYAD6V/AA+lgQAPpYMAD6WMAA+ljwAPpZIAD6WUAA+l3QAPpgEAD6YoAA+mTAAPpk8AD6ZRAA+mUwAPplUAD6ZXAA+mWQAPploAD6ZdAA+mdgAPppcAD6aZAA+mmwAPpp0AD6afAA+moQAPpqMAD6alAA+mpwAPpsgAD6bLAA+mzgAPptEAD6bUAA+m1wAPptoAD6bdAA+m4AAPpuIAD6ddAA+nXwAPp2EAD6djAA+nZgAPp2cAD6doAA+naQAPp2oAD6dsAA+nbgAPp28AD6dwAA+ncgAPp3MAD6fuAA+n8AAPp/IAD6f0AA+n9wAPp/gAD6f5AA+n+gAPp/sAD6f9AA+n/wAPqAAAD6gBAA+oAwAPqAQAD6h/AA+ogQAPqIQAD6iGAA+oiQAPqIoAD6iLAA+ojAAPqI0AD6iPAA+okQAPqJIAD6iTAA+olQAPqJYAD6ivAA+osAAPqLEAD6izAA+pLgAPqTAAD6kyAA+pNAAPqTcAD6k4AA+pOQAPqToAD6k7AA+pPQAPqT8AD6lAAA+pQQAPqUMAD6lEAA+pvwAPqcEAD6nDAA+pxQAPqcgAD6nJAA+pygAPqcsAD6nMAA+pzgAPqdAAD6nRAA+p0gAPqdQAD6nVAA+qUAAPqlIAD6pUAA+qVgAPqlkAD6paAA+qWwAPqlwAD6pdAA+qXwAPqmEAD6piAA+qYwAPqmUAD6pmAA+q4QAPquMAD6rlAA+q5wAPquoAD6rrAA+q7AAPqu0AD6ruAA+q8AAPqvIAD6rzAA+q9AAPqvYAD6r3AA+rcgAPq3QAD6t2AA+reAAPq3sAD6t8AA+rfQAPq34AD6t/AA+rgQAPq4MAD6uEAA+rhQAPq4cAD6uIAA+r0QAPq/UAD6wcAA+sQAAPrEMAD6xFAA+sRwAPrEkAD6xLAA+sTQAPrE4AD6xRAA+sagAPrIcAD6yJAA+siwAPrI0AD6yPAA+skQAPrJMAD6yVAA+ssgAPrLUAD6y4AA+suwAPrL4AD6zBAA+sxAAPrMcAD6zJAA+tRAAPrUYAD61IAA+tSgAPrU0AD61OAA+tTwAPrVAAD61RAA+tUwAPrVUAD61WAA+tVwAPrVkAD61aAA+t1QAPrdcAD63ZAA+t2wAPrd4AD63fAA+t4AAPreEAD63iAA+t5AAPreYAD63nAA+t6AAPreoAD63rAA+uZgAPrmgAD65qAA+ubAAPrm8AD65wAA+ucQAPrnIAD65zAA+udQAPrncAD654AA+ueQAPrnsAD658AA+u9wAPrvkAD678AA+u/gAPrwEAD68CAA+vAwAPrwQAD68FAA+vBwAPrwkAD68KAA+vCwAPrw0AD68OAA+viQAPr4sAD6+NAA+vjwAPr5IAD6+TAA+vlAAPr5UAD6+WAA+vmAAPr5oAD6+bAA+vnAAPr54AD6+fAA+wGgAPsBwAD7AeAA+wIAAPsCMAD7AkAA+wJQAPsCYAD7AnAA+wKQAPsCsAD7AsAA+wLQAPsC8AD7AwAA+wqwAPsK0AD7CvAA+wsQAPsLQAD7C1AA+wtgAPsLcAD7C4AA+wugAPsLwAD7C9AA+wvgAPsMAAD7DBAA+xVAAPsXcAD7GXAA+xtwAPsbkAD7G7AA+xvQAPsb8AD7HCAA+xwwAPscQAD7HHAA+xyAAPscoAD7HLAA+xzQAPsdAAD7HRAA+x0gAPsdUAD7HWAA+x2wAPsfQAD7H9AA+x/wAPsgEAD7IKAA+yDQAPshAAD7ISAA+yWwAPsn8AD7KmAA+yygAPss0AD7LPAA+y0QAPstMAD7LVAA+y1wAPstgAD7LbAA+y9AAPsxUAD7MXAA+zGQAPsxsAD7MdAA+zHwAPsyEAD7MjAA+zJQAPs0YAD7NJAA+zTAAPs08AD7NSAA+zVQAPs1gAD7NbAA+zXgAPs2AAD7PbAA+z3QAPs98AD7PhAA+z5AAPs+UAD7PmAA+z5wAPs+gAD7PqAA+z7AAPs+0AD7PuAA+z8AAPs/EAD7RsAA+0bgAPtHAAD7RyAA+0dQAPtHYAD7R3AA+0eAAPtHkAD7R7AA+0fQAPtH4AD7R/AA+0gQAPtIIAD7T9AA+0/wAPtQIAD7UEAA+1BwAPtQgAD7UJAA+1CgAPtQsAD7UNAA+1DwAPtRAAD7URAA+1EwAPtRQAD7UtAA+1LgAPtS8AD7UxAA+1rAAPta4AD7WwAA+1sgAPtbUAD7W2AA+1twAPtbgAD7W5AA+1uwAPtb0AD7W+AA+1vwAPtcEAD7XCAA+2PQAPtj8AD7ZBAA+2QwAPtkYAD7ZHAA+2SAAPtkkAD7ZKAA+2TAAPtk4AD7ZPAA+2UAAPtlIAD7ZTAA+2zgAPttAAD7bSAA+21AAPttcAD7bYAA+22QAPttoAD7bbAA+23QAPtt8AD7bgAA+24QAPtuMAD7bkAA+3XwAPt2EAD7djAA+3ZQAPt2gAD7dpAA+3agAPt2sAD7dsAA+3bgAPt3AAD7dxAA+3cgAPt3QAD7d1AA+38AAPt/IAD7f0AA+39gAPt/kAD7f6AA+3+wAPt/wAD7f9AA+3/wAPuAEAD7gCAA+4AwAPuAUAD7gGAA+4TwAPuHMAD7iaAA+4vgAPuMEAD7jDAA+4xQAPuMcAD7jJAA+4ywAPuMwAD7jPAA+46AAPuQUAD7kHAA+5CQAPuQsAD7kNAA+5DwAPuREAD7kTAA+5MAAPuTMAD7k2AA+5OQAPuTwAD7k/AA+5QgAPuUUAD7lHAA+5wgAPucQAD7nHAA+5yQAPucwAD7nNAA+5zgAPuc8AD7nQAA+50gAPudQAD7nVAA+51gAPudgAD7nZAA+6VAAPulYAD7pYAA+6WgAPul0AD7peAA+6XwAPumAAD7phAA+6YwAPumUAD7pmAA+6ZwAPumkAD7pqAA+65QAPuucAD7rpAA+66wAPuu4AD7rvAA+68AAPuvEAD7ryAA+69AAPuvYAD7r3AA+6+AAPuvoAD7r7AA+7dgAPu3gAD7t7AA+7fQAPu4AAD7uBAA+7ggAPu4MAD7uEAA+7hgAPu4gAD7uJAA+7igAPu4wAD7uNAA+8CAAPvAoAD7wMAA+8DgAPvBEAD7wSAA+8EwAPvBQAD7wVAA+8FwAPvBkAD7waAA+8GwAPvB0AD7weAA+8mQAPvJsAD7ydAA+8nwAPvKIAD7yjAA+8pAAPvKUAD7ymAA+8qAAPvKoAD7yrAA+8rAAPvK4AD7yvAA+9KgAPvSwAD70uAA+9MAAPvTMAD700AA+9NQAPvTYAD703AA+9OQAPvTsAD708AA+9PQAPvT8AD71AAA+9UQAPvVIAD71UAA+9zwAPvdEAD73TAA+91QAPvdgAD73ZAA+92gAPvdsAD73cAA+93gAPveEAD73iAA+94wAPveUAD73mAA++YQAPvmMAD75lAA++ZwAPvmoAD75rAA++bAAPvm0AD75uAA++cAAPvnMAD750AA++dQAPvncAD754AA++8wAPvvUAD774AA+++gAPvv0AD77+AA++/wAPvwAAD78BAA+/AwAPvwYAD78HAA+/CAAPvwoAD78LAA+/ngAPv8EAD7/hAA/AAQAPwAMAD8AFAA/ABwAPwAkAD8AMAA/ADQAPwA4AD8ARAA/AEgAPwBQAD8AVAA/AFwAPwBoAD8AbAA/AHAAPwB8AD8AgAA/AJQAPwD4AD8BHAA/ASQAPwEsAD8BUAA/AVwAPwFoAD8BcAA/ApQAPwMkAD8DwAA/BFAAPwRcAD8EZAA/BGwAPwR0AD8EfAA/BIQAPwSIAD8ElAA/BPgAPwV8AD8FhAA/BYwAPwWUAD8FnAA/BaQAPwWsAD8FtAA/BbwAPwZAAD8GTAA/BlgAPwZkAD8GcAA/BnwAPwaIAD8GlAA/BqAAPwaoAD8IlAA/CJwAPwikAD8IrAA/CLgAPwi8AD8IwAA/CMQAPwjIAD8I0AA/CNgAPwjcAD8I4AA/COgAPwjsAD8K2AA/CuAAPwroAD8K8AA/CvwAPwsAAD8LBAA/CwgAPwsMAD8LFAA/CxwAPwsgAD8LJAA/CywAPwswAD8NHAA/DSQAPw0wAD8NOAA/DUQAPw1IAD8NTAA/DVAAPw1UAD8NXAA/DWQAPw1oAD8NbAA/DXQAPw14AD8N3AA/DeAAPw3kAD8N7AA/D9gAPw/gAD8P6AA/D/AAPw/8AD8QAAA/EAQAPxAIAD8QDAA/EBQAPxAcAD8QIAA/ECQAPxAsAD8QMAA/EhwAPxIkAD8SLAA/EjQAPxJAAD8SRAA/EkgAPxJMAD8SUAA/ElgAPxJgAD8SZAA/EmgAPxJwAD8SdAA/FGAAPxRoAD8UcAA/FHgAPxSEAD8UiAA/FIwAPxSQAD8UlAA/FJwAPxSkAD8UqAA/FKwAPxS0AD8UuAA/FqQAPxasAD8WtAA/FrwAPxbIAD8WzAA/FtAAPxbUAD8W2AA/FuAAPxboAD8W7AA/FvAAPxb4AD8W/AA/GOgAPxjwAD8Y+AA/GQAAPxkMAD8ZEAA/GRQAPxkYAD8ZHAA/GSQAPxksAD8ZMAA/GTQAPxk8AD8ZQAA/GmQAPxr0AD8bkAA/HCAAPxwsAD8cNAA/HDwAPxxEAD8cTAA/HFQAPxxYAD8cZAA/HMgAPx08AD8dRAA/HUwAPx1UAD8dXAA/HWQAPx1sAD8ddAA/HegAPx30AD8eAAA/HgwAPx4YAD8eJAA/HjAAPx48AD8eRAA/IDAAPyA4AD8gQAA/IEgAPyBUAD8gWAA/IFwAPyBgAD8gZAA/IGwAPyB0AD8geAA/IHwAPyCEAD8giAA/InQAPyJ8AD8ihAA/IowAPyKYAD8inAA/IqAAPyKkAD8iqAA/IrAAPyK4AD8ivAA/IsAAPyLIAD8izAA/JLgAPyTAAD8kyAA/JNAAPyTcAD8k4AA/JOQAPyToAD8k7AA/JPQAPyT8AD8lAAA/JQQAPyUMAD8lEAA/JvwAPycEAD8nEAA/JxgAPyckAD8nKAA/JywAPycwAD8nNAA/JzwAPydEAD8nSAA/J0wAPydUAD8nWAA/KUQAPylMAD8pVAA/KVwAPyloAD8pbAA/KXAAPyl0AD8peAA/KYAAPymIAD8pjAA/KZAAPymYAD8pnAA/K4gAPyuQAD8rmAA/K6AAPyusAD8rsAA/K7QAPyu4AD8rvAA/K8QAPyvMAD8r0AA/K9QAPyvcAD8r4AA/LcwAPy3UAD8t3AA/LeQAPy3wAD8t9AA/LfgAPy38AD8uAAA/LggAPy4QAD8uFAA/LhgAPy4gAD8uJAA/MHAAPzD8AD8xfAA/MfwAPzIEAD8yDAA/MhQAPzIcAD8yKAA/MiwAPzIwAD8yPAA/MkAAPzJIAD8yTAA/MlQAPzJgAD8yZAA/MmgAPzJ0AD8yeAA/MowAPzLwAD8zFAA/MxwAPzMkAD8zSAA/M1QAPzNgAD8zaAA/NIwAPzUcAD81uAA/NkgAPzZUAD82XAA/NmQAPzZsAD82dAA/NnwAPzaAAD82jAA/NvAAPzd0AD83fAA/N4QAPzeMAD83lAA/N5wAPzekAD83rAA/N7QAPzg4AD84RAA/OFAAPzhcAD84aAA/OHQAPziAAD84jAA/OJgAPzigAD86jAA/OpQAPzqcAD86pAA/OrAAPzq0AD86uAA/OrwAPzrAAD86yAA/OtAAPzrUAD862AA/OuAAPzrkAD880AA/PNgAPzzgAD886AA/PPQAPzz4AD88/AA/PQAAPz0EAD89DAA/PRQAPz0YAD89HAA/PSQAPz0oAD8/FAA/PxwAPz8oAD8/MAA/PzwAPz9AAD8/RAA/P0gAPz9MAD8/VAA/P1wAPz9gAD8/ZAA/P2wAPz9wAD8/1AA/P9gAPz/cAD8/5AA/QdAAP0HYAD9B4AA/QegAP0H0AD9B+AA/QfwAP0IAAD9CBAA/QgwAP0IUAD9CGAA/QhwAP0IkAD9CKAA/RBQAP0QcAD9EJAA/RCwAP0Q4AD9EPAA/REAAP0READ9ESAA/RFAAP0RYAD9EXAA/RGAAP0RoAD9EbAA/RlgAP0ZgAD9GaAA/RnAAP0Z8AD9GgAA/RoQAP0aIAD9GjAA/RpQAP0acAD9GoAA/RqQAP0asAD9GsAA/SJwAP0ikAD9IrAA/SLQAP0jAAD9IxAA/SMgAP0jMAD9I0AA/SNgAP0jgAD9I5AA/SOgAP0jwAD9I9AA/SuAAP0roAD9K8AA/SvgAP0sEAD9LCAA/SwwAP0sQAD9LFAA/SxwAP0skAD9LKAA/SywAP0s0AD9LOAA/TFwAP0zsAD9NiAA/ThgAP04kAD9OLAA/TjQAP048AD9ORAA/TkwAP05QAD9OXAA/TsAAP080AD9PPAA/T0QAP09MAD9PVAA/T1wAP09kAD9PbAA/T+AAP0/sAD9P+AA/UAQAP1AQAD9QHAA/UCgAP1A0AD9QPAA/UigAP1IwAD9SOAA/UkAAP1JMAD9SUAA/UlQAP1JYAD9SXAA/UmQAP1JsAD9ScAA/UnQAP1J8AD9SgAA/VGwAP1R0AD9UfAA/VIQAP1SQAD9UlAA/VJgAP1ScAD9UoAA/VKgAP1SwAD9UtAA/VLgAP1TAAD9UxAA/VrAAP1a4AD9WwAA/VsgAP1bUAD9W2AA/VtwAP1bgAD9W5AA/VuwAP1b0AD9W+AA/VvwAP1cEAD9XCAA/WPQAP1j8AD9ZCAA/WRAAP1kcAD9ZIAA/WSQAP1koAD9ZLAA/WTQAP1k8AD9ZQAA/WUQAP1lMAD9ZUAA/WzwAP1tEAD9bTAA/W1QAP1tgAD9bZAA/W2gAP1tsAD9bcAA/W3gAP1uAAD9bhAA/W4gAP1uQAD9blAA/XYAAP12IAD9dkAA/XZgAP12kAD9dqAA/XawAP12wAD9dtAA/XbwAP13EAD9dyAA/XcwAP13UAD9d2AA/X8QAP1/MAD9f1AA/X9wAP1/oAD9f7AA/X/AAP1/0AD9f+AA/YAAAP2AIAD9gDAA/YBAAP2AYAD9gHAA/YmgAP2L0AD9jdAA/Y/QAP2P8AD9kBAA/ZAwAP2QUAD9kIAA/ZCQAP2QoAD9kNAA/ZDgAP2RAAD9kRAA/ZEwAP2RYAD9kXAA/ZGAAP2RsAD9kcAA/ZIQAP2ToAD9lDAA/ZRQAP2UcAD9lQAA/ZUwAP2VYAD9lYAA/ZoQAP2cUAD9nsAA/aEAAP2hMAD9oVAA/aFwAP2hkAD9obAA/aHQAP2h4AD9ohAA/aOgAP2lsAD9pdAA/aXwAP2mEAD9pjAA/aZQAP2mcAD9ppAA/aawAP2owAD9qPAA/akgAP2pUAD9qYAA/amwAP2p4AD9qhAA/apAAP2qYAD9shAA/bIwAP2yUAD9snAA/bKgAP2ysAD9ssAA/bLQAP2y4AD9swAA/bMgAP2zMAD9s0AA/bNgAP2zcAD9uyAA/btAAP27YAD9u4AA/buwAP27wAD9u9AA/bvgAP278AD9vBAA/bwwAP28QAD9vFAA/bxwAP28gAD9xDAA/cRQAP3EgAD9xKAA/cTQAP3E4AD9xPAA/cUAAP3FEAD9xTAA/cVQAP3FYAD9xXAA/cWQAP3FoAD9xzAA/cdAAP3HUAD9x3AA/c8gAP3PQAD9z2AA/c+AAP3PsAD9z8AA/c/QAP3P4AD9z/AA/dAQAP3QMAD90EAA/dBQAP3QcAD90IAA/dgwAP3YUAD92HAA/diQAP3YwAD92NAA/djgAP3Y8AD92QAA/dkgAP3ZQAD92VAA/dlgAP3ZgAD92ZAA/eFAAP3hYAD94YAA/eGgAP3h0AD94eAA/eHwAP3iAAD94hAA/eIwAP3iUAD94mAA/eJwAP3ikAD94qAA/epQAP3qcAD96pAA/eqwAP3q4AD96vAA/esAAP3rEAD96yAA/etAAP3rYAD963AA/euAAP3roAD967AA/fNgAP3zgAD986AA/fPAAP3z8AD99AAA/fQQAP30IAD99DAA/fRQAP30cAD99IAA/fSQAP30sAD99MAA/flQAP37kAD9/gAA/gBAAP4AcAD+AJAA/gCwAP4A0AD+APAA/gEQAP4BIAD+AVAA/gLgAP4EsAD+BNAA/gTwAP4FEAD+BTAA/gVQAP4FcAD+BZAA/gdgAP4HkAD+B8AA/gfwAP4IIAD+CFAA/giAAP4IsAD+CNAA/hCAAP4QoAD+EMAA/hDgAP4READ+ESAA/hEwAP4RQAD+EVAA/hFwAP4RkAD+EaAA/hGwAP4R0AD+EeAA/hmQAP4ZsAD+GdAA/hnwAP4aIAD+GjAA/hpAAP4aUAD+GmAA/hqAAP4aoAD+GrAA/hrAAP4a4AD+GvAA/iKgAP4iwAD+IuAA/iMAAP4jMAD+I0AA/iNQAP4jYAD+I3AA/iOQAP4jsAD+I8AA/iPQAP4j8AD+JAAA/iuwAP4r0AD+LAAA/iwgAP4sUAD+LGAA/ixwAP4sgAD+LJAA/iywAP4s0AD+LOAA/izwAP4tEAD+LSAA/jTQAP408AD+NRAA/jUwAP41YAD+NXAA/jWAAP41kAD+NaAA/jXAAP414AD+NfAA/jYAAP42IAD+NjAA/j3gAP4+AAD+PiAA/j5AAP4+cAD+PoAA/j6QAP4+oAD+PrAA/j7QAP4+8AD+PwAA/j8QAP4/MAD+P0AA/kbwAP5HEAD+RzAA/kdQAP5HgAD+R5AA/kegAP5HsAD+R8AA/kfgAP5IAAD+SBAA/kggAP5IQAD+SFAA/lGAAP5TsAD+VbAA/lewAP5X0AD+V/AA/lgQAP5YMAD+WGAA/lhwAP5YgAD+WLAA/ljAAP5Y4AD+WPAA/lkQAP5ZQAD+WVAA/llgAP5ZkAD+WaAA/lnwAP5bgAD+XBAA/lwwAP5cUAD+XOAA/l0QAP5dQAD+XWAA/mHwAP5kMAD+ZqAA/mjgAP5pEAD+aTAA/mlQAP5pcAD+aZAA/mmwAP5pwAD+afAA/muAAP5tkAD+bbAA/m3QAP5t8AD+bhAA/m4wAP5uUAD+bnAA/m6QAP5woAD+cNAA/nEAAP5xMAD+cWAA/nGQAP5xwAD+cfAA/nIgAP5yQAD+efAA/noQAP56MAD+elAA/nqAAP56kAD+eqAA/nqwAP56wAD+euAA/nsAAP57EAD+eyAA/ntAAP57UAD+gwAA/oMgAP6DQAD+g2AA/oOQAP6DoAD+g7AA/oPAAP6D0AD+g/AA/oQQAP6EIAD+hDAA/oRQAP6EYAD+jBAA/owwAP6MYAD+jIAA/oywAP6MwAD+jNAA/ozgAP6M8AD+jRAA/o0wAP6NQAD+jVAA/o1wAP6NgAD+jxAA/o8gAP6PMAD+j1AA/pcAAP6XIAD+l0AA/pdgAP6XkAD+l6AA/pewAP6XwAD+l9AA/pfwAP6YEAD+mCAA/pgwAP6YUAD+mGAA/qAQAP6gMAD+oFAA/qBwAP6goAD+oLAA/qDAAP6g0AD+oOAA/qEAAP6hIAD+oTAA/qFAAP6hYAD+oXAA/qkgAP6pQAD+qWAA/qmAAP6psAD+qcAA/qnQAP6p4AD+qfAA/qoQAP6qMAD+qkAA/qpQAP6qcAD+qoAA/rIwAP6yUAD+snAA/rKQAP6ywAD+stAA/rLgAP6y8AD+swAA/rMgAP6zQAD+s1AA/rNgAP6zgAD+s5AA/rtAAP67YAD+u4AA/rugAP670AD+u+AA/rvwAP68AAD+vBAA/rwwAP68UAD+vGAA/rxwAP68kAD+vKAA/sEwAP7DcAD+xeAA/sggAP7IUAD+yHAA/siQAP7IsAD+yNAA/sjwAP7JAAD+yTAA/srAAP7MkAD+zLAA/szQAP7M8AD+zRAA/s0wAP7NUAD+zXAA/s9AAP7PcAD+z6AA/s/QAP7QAAD+0DAA/tBgAP7QkAD+0LAA/thgAP7YgAD+2KAA/tjAAP7Y8AD+2QAA/tkQAP7ZIAD+2TAA/tlQAP7ZcAD+2YAA/tmQAP7ZsAD+2cAA/uFwAP7hkAD+4bAA/uHQAP7iAAD+4hAA/uIgAP7iMAD+4kAA/uJgAP7igAD+4pAA/uKgAP7iwAD+4tAA/uqAAP7qoAD+6sAA/urgAP7rEAD+6yAA/uswAP7rQAD+61AA/utwAP7rkAD+66AA/uuwAP7r0AD+6+AA/vOQAP7zsAD+8+AA/vQAAP70MAD+9EAA/vRQAP70YAD+9HAA/vSQAP70sAD+9MAA/vTQAP708AD+9QAA/vywAP780AD+/PAA/v0QAP79QAD+/VAA/v1gAP79cAD+/YAA/v2gAP79wAD+/dAA/v3gAP7+AAD+/hAA/wXAAP8F4AD/BgAA/wYgAP8GUAD/BmAA/wZwAP8GgAD/BpAA/wawAP8G0AD/BuAA/wbwAP8HEAD/ByAA/w7QAP8O8AD/DxAA/w8wAP8PYAD/D3AA/w+AAP8PkAD/D6AA/w/AAP8P4AD/D/AA/xAAAP8QIAD/EDAA/xlgAP8bkAD/HZAA/x+QAP8fsAD/H9AA/x/wAP8gEAD/IEAA/yBQAP8gYAD/IJAA/yCgAP8gwAD/INAA/yDwAP8hIAD/ITAA/yFAAP8hcAD/IYAA/yHQAP8jYAD/I/AA/yQQAP8kMAD/JMAA/yTwAP8lIAD/JUAA/ynQAP8sEAD/LoAA/zDAAP8w8AD/MRAA/zEwAP8xUAD/MXAA/zGQAP8xoAD/MdAA/zNgAP81cAD/NZAA/zWwAP810AD/NfAA/zYQAP82MAD/NlAA/zZwAP84gAD/OLAA/zjgAP85EAD/OUAA/zlwAP85oAD/OdAA/zoAAP86IAD/QdAA/0HwAP9CEAD/QjAA/0JgAP9CcAD/QoAA/0KQAP9CoAD/QsAA/0LgAP9C8AD/QwAA/0MgAP9DMAD/SuAA/0sAAP9LIAD/S0AA/0twAP9LgAD/S5AA/0ugAP9LsAD/S9AA/0vwAP9MAAD/TBAA/0wwAP9MQAD/U/AA/1QQAP9UQAD/VGAA/1SQAP9UoAD/VLAA/1TAAP9U0AD/VPAA/1UQAP9VIAD/VTAA/1VQAP9VYAD/VvAA/1cAAP9XEAD/VzAA/17gAP9fAAD/XyAA/19AAP9fcAD/X4AA/1+QAP9foAD/X7AA/1/QAP9f8AD/YAAA/2AQAP9gMAD/YEAA/2fwAP9oEAD/aDAA/2hQAP9ogAD/aJAA/2igAP9osAD/aMAA/2jgAP9pAAD/aRAA/2kgAP9pQAD/aVAA/3EAAP9xIAD/cUAA/3FgAP9xkAD/caAA/3GwAP9xwAD/cdAA/3HwAP9yEAD/ciAA/3IwAP9yUAD/cmAA/3oQAP96MAD/elAA/3pwAP96oAD/erAA/3rAAP960AD/euAA/3sAAP97IAD/ezAA/3tAAP97YAD/e3AA/4MgAP+DQAD/g2AA/4OAAP+DsAD/g8AA/4PQAP+D4AD/g/AA/4QQAP+EMAD/hEAA/4RQAP+EcAD/hIAA/4kQAP+LUAD/jcAA/5AAAP+QMAD/kFAA/5BwAP+QkAD/kLAA/5DQAP+Q4AD/kRAA/5KgAP+UcAD/lJAA/5SwAP+U0AD/lPAA/5UQAP+VMAD/lVAA/5cgAP+XUAD/l4AA/5ewAP+X4AD/mBAA/5hAAP+YcAD/mJAA/6BAAP+gYAD/oIAA/6CgAP+g0AD/oOAA/6DwAP+hAAD/oRAA/6EwAP+hUAD/oWAA/6FwAP+hkAD/oaAA/6lQAP+pcAD/qZAA/6mwAP+p4AD/qfAA/6oAAP+qEAD/qiAA/6pAAP+qYAD/qnAA/6qAAP+qoAD/qrAA/7JgAP+ygAD/sqAA/7LAAP+y8AD/swAA/7MQAP+zIAD/szAA/7NQAP+zcAD/s4AA/7OQAP+zsAD/s8AA/7twAP+7kAD/u7AA/7vQAP+8AAD/vBAA/7wgAP+8MAD/vEAA/7xgAP+8gAD/vJAA/7ygAP+8wAD/vNAA/8SAAP/EoAD/xMAA/8TgAP/FEAD/xSAA/8UwAP/FQAD/xVAA/8VwAP/FkAD/xaAA/8WwAP/F0AD/xeAA/82QAP/NsAD/zdAA/83wAP/OIAD/zjAA/85AAP/OUAD/zmAA/86AAP/OoAD/zrAA/87AAP/O4AD/zvAA/9agAP/WwAD/1uAA/9cAAP/XMAD/10AA/9dQAP/XYAD/13AA/9eQAP/XsAD/18AA/9fQAP/X8AD/2AAA/9kQAP/ZIAD/2UAA/+DwAP/hEAD/4TAA/+FQAP/hgAD/4ZAA/+GgAP/hsAD/4cAA/+HgAP/iEAD/4iAA/+IwAP/iUAD/4mAA/+oQAP/qMAD/6lAA/+pwAP/qoAD/6rAA/+rAAP/q0AD/6uAA/+sAAP/rMAD/60AA/+tQAP/rcAD/64AA//MwAP/zUAD/84AA//OgAP/z0AD/8+AA//PwAP/0AAD/9BAA//QwAP/0YAD/9HAA//SAAP/0oAD/9LAA//3gAQAAEAEAAhABAAQQAQAEMAEABFABAARwAQAEkAEABMABAATQAQAE4AEABRABAAUgAQAFQAEABVABAAVwAQAFoAEABbABAAXAAQAF8AEABgABAAZQAQAH4AEACHABAAiQAQAIsAEACUABAAlwAQAJoAEACcABAA5QAQAQkAEAEwABABVAAQAVcAEAFZABABWwAQAV0AEAFfABABYQAQAWIAEAFlABABfgAQAZ8AEAGhABABowAQAaUAEAGnABABqQAQAasAEAGtABABrwAQAdAAEAHTABAB1gAQAdkAEAHcABAB3wAQAeIAEAHlABAB6AAQAeoAEAJlABACZwAQAmkAEAJrABACbgAQAm8AEAJwABACcQAQAnIAEAJ0ABACdgAQAncAEAJ4ABACegAQAnsAEAL2ABAC+AAQAvoAEAL8ABAC/wAQAwAAEAMBABADAgAQAwMAEAMFABADBwAQAwgAEAMJABADCwAQAwwAEAOHABADiQAQA4wAEAOOABADkQAQA5IAEAOTABADlAAQA5UAEAOXABADmQAQA5oAEAObABADnQAQA54AEAO3ABADuAAQA7kAEAO7ABAENgAQBDgAEAQ6ABAEPAAQBD8AEARAABAEQQAQBEIAEARDABAERQAQBEcAEARIABAESQAQBEsAEARMABAExwAQBMkAEATLABAEzQAQBNAAEATRABAE0gAQBNMAEATUABAE1gAQBNgAEATZABAE2gAQBNwAEATdABAFWAAQBVoAEAVcABAFXgAQBWEAEAViABAFYwAQBWQAEAVlABAFZwAQBWkAEAVqABAFawAQBW0AEAVuABAF6QAQBesAEAXtABAF7wAQBfIAEAXzABAF9AAQBfUAEAX2ABAF+AAQBfoAEAX7ABAF/AAQBf4AEAX/ABAGegAQBnwAEAZ+ABAGgAAQBoMAEAaEABAGhQAQBoYAEAaHABAGiQAQBosAEAaMABAGjQAQBo8AEAaQABAG2QAQBv0AEAckABAHSAAQB0sAEAdNABAHTwAQB1EAEAdTABAHVQAQB1YAEAdZABAHcgAQB48AEAeRABAHkwAQB5UAEAeXABAHmQAQB5sAEAedABAHugAQB70AEAfAABAHwwAQB8YAEAfJABAHzAAQB88AEAfRABAITAAQCE4AEAhRABAIUwAQCFYAEAhXABAIWAAQCFkAEAhaABAIXAAQCF4AEAhfABAIYAAQCGIAEAhjABA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aXgAQGl8AEBpiABAaewAQGpwAEBqeABAaoAAQGqIAEBqkABAapgAQGqgAEBqqABAarAAQGs0AEBrQABAa0wAQGtYAEBrZABAa3AAQGt8AEBriABAa5QAQGucAEBtiABAbZAAQG2YAEBtoABAbawAQG2wAEBttABAbbgAQG28AEBtxABAbcwAQG3QAEBt1ABAbdwAQG3gAEBvzABAb9QAQG/cAEBv5ABAb/AAQG/0AEBv+ABAb/wAQHAAAEBwCABAcBAAQHAUAEBwGABAcCAAQHAkAEByEABAchgAQHIkAEByLABAcjgAQHI8AEByQABAckQAQHJIAEByUABAclgAQHJcAEByYABAcmgAQHJsAEBy0ABActQAQHLYAEBy4ABAdMwAQHTUAEB03ABAdOQAQHTwAEB09ABAdPgAQHT8AEB1AABAdQgAQHUQAEB1FABAdRgAQHUgAEB1JABAdxAAQHcYAEB3IABAdygAQHc0AEB3OABAdzwAQHdAAEB3RABAd0wAQHdUAEB3WABAd1wAQHdkAEB3aABAeVQAQHlcAEB5ZABAeWwAQHl4AEB5fABAeYAAQHmEAEB5iABAeZAAQHmYAEB5nABAeaAAQHmoAEB5rABAe5gAQHugAEB7qABAe7AAQHu8AEB7wABAe8QAQHvIAEB7zABAe9QAQHvcAEB74ABAe+QAQHvsAEB78ABAfdwAQH3kAEB97ABAffQAQH4AAEB+BABAfggAQH4MAEB+EABAfhgAQH4gAEB+JABAfigAQH4wAEB+NABAf1gAQH/oAECAhABAgRQAQIEgAECBKABAgTAAQIE4AECBQABAgUgAQIFMAECBWABAgbwAQIIwAECCOABAgkAAQIJIAECCUABAglgAQIJgAECCaABAgtwAQILoAECC9ABAgwAAQIMMAECDGABAgyQAQIMwAECDOABAhSQAQIUsAECFNABAhTwAQIVIAECFTABAhVAAQIVUAECFWABAhWAAQIVoAECFbABAhXAAQIV4AECFfABAh2gAQIdwAECHeABAh4AAQIeMAECHkABAh5QAQIeYAECHnABAh6QAQIesAECHsABAh7QAQIe8AECHwABAiawAQIm0AECJvABAicQAQInQAECJ1ABAidgAQIncAECJ4ABAiegAQInwAECJ9ABAifgAQIoAAECKBABAi/AAQIv4AECMAABAjAgAQIwUAECMGABAjBwAQIwgAECMJABAjCwAQIw0AECMOABAjDwAQIxEAECMSABAjjQAQI48AECORABAjkwAQI5YAECOXABAjmAAQI5kAECOaABAjnAAQI54AECOfABAjoAAQI6IAECOjABAkHgAQJCAAECQiABAkJAAQJCcAECQoABAkKQAQJCoAECQrABAkLQAQJC8AECQwABAkMQAQJDMAECQ0ABAkrwAQJLEAECSzABAktQAQJLgAECS5ABAkugAQJLsAECS8ABAkvgAQJMAAECTBABAkwgAQJMQAECTFABAk1gAQJNcAECTZABAlXAAQJYAAECWkABAlxwAQJe4AECYOABAmNQAQJlwAECZ8ABAmoAAQJsQAECbGABAmyQAQJssAECbNABAmzwAQJtIAECbVABAm1wAQJtkAECbcABAm3gAQJuAAECbjABAm5gAQJucAECbsABAnBQAQJwoAECcMABAnEQAQJxQAECcWABAnXwAQJ4MAECeqABAnzgAQJ9EAECfTABAn1QAQJ9cAECfZABAn2wAQJ9wAECffABAn+AAQKB0AECgfABAoIQAQKCMAECglABAoJwAQKCkAECgrABAoLQAQKC8AEChUABAoVwAQKFoAEChdABAoYAAQKGMAEChmABAoaQAQKGwAEChvABAocQAQKOwAECjuABAo8QAQKPMAECj2ABAo9wAQKPgAECj5ABAo+gAQKPwAECj+ABAo/wAQKQAAECkCABApAwAQKRQAECkVABApFwAQKZIAECmUABAplgAQKZgAECmbABApnAAQKZ0AECmeABApnwAQKaEAECmjABAppAAQKaUAECmnABApqAAQKiMAEColABAqKAAQKioAECotABAqLgAQKi8AECowABAqMQAQKjMAECo1ABAqNgAQKjcAECo5ABAqOgAQKksAECpQABAqUwAQKlUAECpmABAqbwAQKnIAECp1ABAqdwAQKpMAECqlABArIAAQKyIAECskABArJgAQKykAECsqABArKwAQKywAECstABArLwAQKzEAECsyABArMwAQKzUAECs2ABArsQAQK7MAECu2ABAruAAQK7sAECu8ABArvQAQK74AECu/ABArwQAQK8MAECvEABArxQAQK8cAECvIABAr2QAQK9oAECvcABAsVwAQLFkAECxbABAsXQAQLGAAECxhABAsYgAQLGMAECxkABAsZgAQLGgAECxpABAsagAQLGwAECxtABAs6AAQLOoAECztABAs7wAQLPIAECzzABAs9AAQLPUAECz2ABAs+AAQLPoAECz7ABAs/AAQLP4AECz/ABAtGAAQLRkAEC0aABAtHAAQLZcAEC2ZABAtmwAQLZ0AEC2gABAtoQAQLaIAEC2jABAtpAAQLaYAEC2oABAtqQAQLaoAEC2sABAtrQAQLigAEC4qABAuLQAQLi8AEC4yABAuMwAQLjQAEC41ABAuNgAQLjgAEC46ABAuOwAQLjwAEC4+ABAuPwAQLlkAEC5yABAuewAQLn4AEC6BABAuigAQLo0AEC6QABAukgAQLqQAEC7AABAvUwAQL3YAEC+WABAvtgAQL7gAEC+6ABAvvAAQL74AEC/BABAvwgAQL8MAEC/GABAvxwAQL8kAEC/KABAvzAAQL88AEC/QABAv0QAQL9QAEC/VABAv2gAQL/MAEC/8ABAv/gAQMAAAEDAJABAwDAAQMA8AEDARABAwWgAQMH4AEDClABAwyQAQMMwAEDDOABAw0AAQMNIAEDDUABAw1gAQMNcAEDDaABAw8wAQMRQAEDEWABAxGAAQMRoAEDEcABAxHgAQMSAAEDEiABAxJAAQMUUAEDFIABAxSwAQMU4AEDFRABAxVAAQMVcAEDFaABAxXQAQMV8AEDHaABAx3AAQMd4AEDHgABAx4wAQMeQAEDHlABAx5gAQMecAEDHpABAx6wAQMewAEDHtABAx7wAQMfAAEDJrABAybQAQMm8AEDJxABAydAAQMnUAEDJ2ABAydwAQMngAEDJ6ABAyfAAQMn0AEDJ+ABAygAAQMoEAEDL8ABAy/gAQMwEAEDMDABAzBgAQMwcAEDMIABAzCQAQMwoAEDMMABAzDgAQMw8AEDMQABAzEgAQMxMAEDMsABAzLQAQMy4AEDMwABAzqwAQM60AEDOvABAzsQAQM7QAEDO1ABAztgAQM7cAEDO4ABAzugAQM7wAEDO9ABAzvgAQM8AAEDPBABA0PAAQND4AEDRAABA0QgAQNEUAEDRGABA0RwAQNEgAEDRJABA0SwAQNE0AEDROABA0TwAQNFEAEDRSABA0zQAQNM8AEDTRABA00wAQNNYAEDTXABA02AAQNNkAEDTaABA03AAQNN4AEDTfABA04AAQNOIAEDTjABA1XgAQNWAAEDViABA1ZAAQNWcAEDVoABA1aQAQNWoAEDVrABA1bQAQNW8AEDVwABA1cQAQNXMAEDV0ABA17wAQNfEAEDXzABA19QAQNfgAEDX5ABA1+gAQNfsAEDX8ABA1/gAQNgAAEDYBABA2AgAQNgQAEDYFABA2TgAQNnIAEDaZABA2vQAQNsAAEDbCABA2xAAQNsYAEDbIABA2ygAQNssAEDbOABA25wAQNwQAEDcGABA3CAAQNwoAEDcMABA3DgAQNxAAEDcSABA3LwAQNzIAEDc1ABA3OAAQNzsAEDc+ABA3QQAQN0QAEDdGABA3wQAQN8MAEDfFABA3xwAQN8oAEDfLABA3zAAQN80AEDfOABA30AAQN9IAEDfTABA31AAQN9YAEDfXABA4UgAQOFQAEDhWABA4WAAQOFsAEDhcABA4XQAQOF4AEDhfABA4YQAQOGMAEDhkABA4ZQAQOGcAEDhoABA44wAQOOUAEDjnABA46QAQOOwAEDjtABA47gAQOO8AEDjwABA48gAQOPQAEDj1ABA49gAQOPgAEDj5ABA5dAAQOXYAEDl5ABA5ewAQOX4AEDl/ABA5gAAQOYEAEDmCABA5hAAQOYYAEDmHABA5iAAQOYoAEDmLABA6BgAQOggAEDoKABA6DAAQOg8AEDoQABA6EQAQOhIAEDoTABA6FQAQOhcAEDoYABA6GQAQOhsAEDocABA6lwAQOpkAEDqcABA6ngAQOqEAEDqiABA6owAQOqQAEDqlABA6pwAQOqkAEDqqABA6qwAQOq0AEDquABA6vQAQOzgAEDs6ABA7PAAQOz4AEDtBABA7QgAQO0MAEDtEABA7RQAQO0cAEDtJABA7SgAQO0sAEDtNABA7TgAQO+EAEDwEABA8JAAQPEQAEDxGABA8SAAQPEoAEDxMABA8TwAQPFAAEDxRABA8VAAQPFUAEDxXABA8WAAQPFoAEDxdABA8XgAQPF8AEDxiABA8YwAQPGgAEDyBABA8igAQPIwAEDyOABA8lwAQPJoAEDydABA8nwAQPOgAED0MABA9MwAQPVcAED1aABA9XAAQPV4AED1gABA9YgAQPWQAED1lABA9aAAQPYEAED2iABA9pAAQPaYAED2oABA9qgAQPawAED2uABA9sAAQPbIAED3TABA91gAQPdkAED3cABA93wAQPeIAED3lABA96AAQPesAED3tABA+aAAQPmoAED5sABA+bgAQPnEAED5yABA+cwAQPnQAED51ABA+dwAQPnkAED56ABA+ewAQPn0AED5+ABA++QAQPvsAED79ABA+/wAQPwIAED8DABA/BAAQPwUAED8GABA/CAAQPwoAED8LABA/DAAQPw4AED8PABA/igAQP4wAED+PABA/kQAQP5QAED+VABA/lgAQP5cAED+YABA/mgAQP5wAED+dABA/ngAQP6AAED+hABA/ugAQP7sAED+8ABA/vgAQQDkAEEA7ABBAPQAQQD8AEEBCABBAQwAQQEQAEEBFABBARgAQQEgAEEBKABBASwAQQEwAEEBOABBATwAQQMoAEEDMABBAzgAQQNAAEEDTABBA1AAQQNUAEEDWABBA1wAQQNkAEEDbABBA3AAQQN0AEEDfABBA4AAQQVsAEEFdABBBXwAQQWEAEEFkABBBZQAQQWYAEEFnABBBaAAQQWoAEEFsABBBbQAQQW4AEEFwABBBcQAQQewAEEHuABBB8AAQQfIAEEH1ABBB9gAQQfcAEEH4ABBB+QAQQfsAEEH9ABBB/gAQQf8AEEIBABBCAgAQQn0AEEJ/ABBCgQAQQoMAEEKGABBChwAQQogAEEKJABBCigAQQowAEEKOABBCjwAQQpAAEEKSABBCkwAQQtwAEEMAABBDJwAQQ0sAEENOABBDUAAQQ1IAEENUABBDVgAQQ1gAEENZABBDXAAQQ3UAEEOSABBDlAAQQ5YAEEOYABBDmgAQQ5wAEEOeABBDoAAQQ70AEEPAABBDwwAQQ8YAEEPJABBDzAAQQ88AEEPSABBD1AAQRE8AEERRABBEUwAQRFUAEERYABBEWQAQRFoAEERbABBEXAAQRF4AEERgABBEYQAQRGIAEERkABBEZQAQROAAEETiABBE5AAQROYAEETpABBE6gAQROsAEETsABBE7QAQRO8AEETxABBE8gAQRPMAEET1ABBE9gAQRXEAEEVzABBFdQAQRXcAEEV6ABBFewAQRXwAEEV9ABBFfgAQRYAAEEWCABBFgwAQRYQAEEWGABBFhwAQRgIAEEYEABBGBwAQRgkAEEYMABBGDQAQRg4AEEYPABBGEAAQRhIAEEYUABBGFQAQRhYAEEYYABBGGQAQRpQAEEaWABBGmAAQRpoAEEadABBGngAQRp8AEEagABBGoQAQRqMAEEalABBGpgAQRqcAEEapABBGqgAQRyUAEEcnABBHKQAQRysAEEcuABBHLwAQRzAAEEcxABBHMgAQRzQAEEc2ABBHNwAQRzgAEEc6ABBHOwAQR7YAEEe4ABBHugAQR7wAEEe/ABBHwAAQR8EAEEfCABBHwwAQR8UAEEfHABBHyAAQR8kAEEfLABBHzAAQR90AEEfeABBH4AAQSGMAEEiHABBIqwAQSM4AEEj1ABBJFQAQSTwAEEljABBJgwAQSacAEEnLABBJzQAQSdAAEEnSABBJ1AAQSdYAEEnZABBJ3AAQSd4AEEngABBJ4wAQSeUAEEnnABBJ6gAQSe0AEEnuABBJ8wAQSgwAEEoRABBKEwAQShgAEEobABBKHQAQSmYAEEqKABBKsQAQStUAEErYABBK2gAQStwAEEreABBK4AAQSuIAEErjABBK5gAQSv8AEEskABBLJgAQSygAEEsqABBLLAAQSy4AEEswABBLMgAQSzQAEEs2ABBLWwAQS14AEEthABBLZAAQS2cAEEtqABBLbQAQS3AAEEtzABBLdgAQS3gAEEvzABBL9QAQS/gAEEv6ABBL/QAQS/4AEEv/ABBMAAAQTAEAEEwDABBMBQAQTAYAEEwHABBMCQAQTAoAEEwbABBMHAAQTB4AEEyZABBMmwAQTJ0AEEyfABBMogAQTKMAEEykABBMpQAQTKYAEEyoABBMqgAQTKsAEEysABBMrgAQTK8AEE0qABBNLAAQTS8AEE0xABBNNAAQTTUAEE02ABBNNwAQTTgAEE06ABBNPAAQTT0AEE0+ABBNQAAQTUEAEE1SABBNVwAQTVoAEE1cABBNbQAQTXYAEE15ABBNfAAQTX4AEE2QABBOCwAQTg0AEE4PABBOEQAQThQAEE4VABBOFgAQThcAEE4YABBOGgAQThwAEE4dABBOHgAQTiAAEE4hABBOnAAQTp4AEE6hABBOowAQTqYAEE6nABBOqAAQTqkAEE6qABBOrAAQTq4AEE6vABBOsAAQTrIAEE6zABBOxAAQTsUAEE7HABBPQgAQT0QAEE9GABBPSAAQT0sAEE9MABBPTQAQT04AEE9PABBPUQAQT1MAEE9UABBPVQAQT1cAEE9YABBP0wAQT9UAEE/YABBP2gAQT90AEE/eABBP3wAQT+AAEE/hABBP4wAQT+UAEE/mABBP5wAQT+kAEE/qABBQAwAQUAQAEFAFABBQBwAQUIIAEFCEABBQhgAQUIgAEFCLABBQjAAQUI0AEFCOABBQjwAQUJEAEFCTABBQlAAQUJUAEFCXABBQmAAQURMAEFEVABBRFwAQURkAEFEcABBRHQAQUR4AEFEfABBRIAAQUSIAEFEkABBRJQAQUSYAEFEoABBRKQAQUUIAEFFjABBRZgAQUWkAEFFsABBRbwAQUXIAEFF1ABBReAAQUXsAEFGcABBRnwAQUaIAEFGlABBRqAAQUasAEFGuABBRsQAQUbQAEFG2ABBRzAAQUdkAEFHxABBSAwAQUg0AEFIhABBSKwAQUr4AEFLhABBTAQAQUyEAEFMjABBTJQAQUycAEFMpABBTLAAQUy0AEFMuABBTMQAQUzIAEFM0ABBTNQAQUzcAEFM6ABBTOwAQUzwAEFM/ABBTQAAQU0UAEFNeABBTZwAQU2kAEFNrABBTdAAQU3cAEFN6ABBTfAAQU8UAEFPpABBUEAAQVDQAEFQ3ABBUOQAQVDsAEFQ9ABBUPwAQVEEAEFRCABBURQAQVF4AEFR/ABBUgQAQVIMAEFSFABBUhwAQVIkAEFSLABBUjQAQVI8AEFSwABBUswAQVLYAEFS5ABBUvAAQVL8AEFTCABBUxQAQVMgAEFTKABBVRQAQVUcAEFVJABBVSwAQVU4AEFVPABBVUAAQVVEAEFVSABBVVAAQVVYAEFVXABBVWAAQVVoAEFVbABBV1gAQVdgAEFXaABBV3AAQVd8AEFXgABBV4QAQVeIAEFXjABBV5QAQVecAEFXoABBV6QAQVesAEFXsABBWZwAQVmkAEFZsABBWbgAQVnEAEFZyABBWcwAQVnQAEFZ1ABBWdwAQVnkAEFZ6ABBWewAQVn0AEFZ+ABBWlwAQVpgAEFaZABBWmwAQVxYAEFcYABBXGgAQVxwAEFcfABBXIAAQVyEAEFciABBXIwAQVyUAEFcnABBXKAAQVykAEFcrABBXLAAQV6cAEFepABBXqwAQV60AEFewABBXsQAQV7IAEFezABBXtAAQV7YAEFe4ABBXuQAQV7oAEFe8ABBXvQAQWDgAEFg6ABBYPAAQWD4AEFhBABBYQgAQWEMAEFhEABBYRQAQWEcAEFhJABBYSgAQWEsAEFhNABBYTgAQWMkAEFjLABBYzQAQWM8AEFjSABBY0wAQWNQAEFjVABBY1gAQWNgAEFjaABBY2wAQWNwAEFjeABBY3wAQWVoAEFlcABBZXgAQWWAAEFljABBZZAAQWWUAEFlmABBZZwAQWWkAEFlrABBZbAAQWW0AEFlvABBZcAAQWbkAEFndABBaBAAQWigAEForABBaLQAQWi8AEFoxABBaMwAQWjUAEFo2ABBaOQAQWlIAEFpvABBacQAQWnMAEFp1ABBadwAQWnkAEFp7ABBafQAQWpoAEFqdABBaoAAQWqMAEFqmABBaqQAQWqwAEFqvABBasQAQWywAEFsuABBbMAAQWzIAEFs1ABBbNgAQWzcAEFs4ABBbOQAQWzsAEFs9ABBbPgAQWz8AEFtBABBbQgAQW70AEFu/ABBbwQAQW8MAEFvGABBbxwAQW8gAEFvJABBbygAQW8wAEFvOABBbzwAQW9AAEFvSABBb0wAQXE4AEFxQABBcUgAQXFQAEFxXABBcWAAQXFkAEFxaABBcWwAQXF0AEFxfABBcYAAQXGEAEFxjABBcZAAQXN8AEFzhABBc5AAQXOYAEFzpABBc6gAQXOsAEFzsABBc7QAQXO8AEFzxABBc8gAQXPMAEFz1ABBc9gAQXXEAEF1zABBddQAQXXcAEF16ABBdewAQXXwAEF19ABBdfgAQXYAAEF2CABBdgwAQXYQAEF2GABBdhwAQXgIAEF4EABBeBgAQXggAEF4LABBeDAAQXg0AEF4OABBeDwAQXhEAEF4TABBeFAAQXhUAEF4XABBeGAAQXpMAEF6VABBelwAQXpkAEF6cABBenQAQXp4AEF6fABBeoAAQXqIAEF6kABBepQAQXqYAEF6oABBeqQAQXzwAEF9fABBffwAQX58AEF+hABBfowAQX6UAEF+nABBfqgAQX6sAEF+sABBfrwAQX7AAEF+yABBfswAQX7YAEF+5ABBfugAQX7sAEF++ABBfvwAQX8QAEF/dABBf5gAQX+gAEF/rABBf9AAQX/cAEF/6ABBf/AAQYEUAEGBpABBgkAAQYLQAEGC3ABBguQAQYLsAEGC9ABBgvwAQYMEAEGDCABBgxQAQYN4AEGD/ABBhAQAQYQMAEGEFABBhBwAQYQkAEGELABBhDQAQYQ8AEGEwABBhMwAQYTYAEGE5ABBhPAAQYT8AEGFCABBhRQAQYUgAEGFKABBhxQAQYccAEGHJABBhywAQYc4AEGHPABBh0AAQYdEAEGHSABBh1AAQYdYAEGHXABBh2AAQYdoAEGHbABBiVgAQYlgAEGJaABBiXAAQYl8AEGJgABBiYQAQYmIAEGJjABBiZQAQYmcAEGJoABBiaQAQYmsAEGJsABBi5wAQYukAEGLsABBi7gAQYvEAEGLyABBi8wAQYvQAEGL1ABBi9wAQYvkAEGL6ABBi+wAQYv0AEGL+ABBjFwAQYxgAEGMZABBjGwAQY5YAEGOYABBjmgAQY5wAEGOfABBjoAAQY6EAEGOiABBjowAQY6UAEGOnABBjqAAQY6kAEGOrABBjrAAQZCcAEGQpABBkKwAQZC0AEGQwABBkMQAQZDIAEGQzABBkNAAQZDYAEGQ4ABBkOQAQZDoAEGQ8ABBkPQAQZLgAEGS6ABBkvAAQZL4AEGTBABBkwgAQZMMAEGTEABBkxQAQZMcAEGTJABBkygAQZMsAEGTNABBkzgAQZUkAEGVLABBlTQAQZU8AEGVSABBlUwAQZVQAEGVVABBlVgAQZVgAEGVaABBlWwAQZVwAEGVeABBlXwAQZdoAEGXcABBl3gAQZeAAEGXjABBl5AAQZeUAEGXmABBl5wAQZekAEGXrABBl7AAQZe0AEGXvABBl8AAQZjkAEGZdABBmhAAQZqgAEGarABBmrgAQZrAAEGayABBmtAAQZrYAEGa3ABBmugAQZtMAEGbwABBm8wAQZvYAEGb5ABBm/AAQZv8AEGcCABBnBQAQZyIAEGclABBnKAAQZysAEGcuABBnMQAQZzQAEGc3ABBnOQAQZ7QAEGe2ABBnuQAQZ7sAEGe+ABBnvwAQZ8AAEGfBABBnwgAQZ8QAEGfHABBnyAAQZ8kAEGfLABBnzAAQaEcAEGhJABBoTAAQaE4AEGhRABBoUgAQaFMAEGhUABBoVQAQaFcAEGhaABBoWwAQaFwAEGheABBoXwAQaNoAEGjcABBo3wAQaOEAEGjkABBo5QAQaOYAEGjnABBo6AAQaOoAEGjtABBo7gAQaO8AEGjxABBo8gAQaW0AEGlvABBpcgAQaXQAEGl3ABBpeAAQaXkAEGl6ABBpewAQaX0AEGmAABBpgQAQaYIAEGmEABBphQAQaggAEGosABBqUAAQanMAEGqaABBqugAQauEAEGsIABBrKAAQa0wAEGtwABBrcgAQa3UAEGt3ABBreQAQa3sAEGt+ABBrgQAQa4MAEGuFABBriAAQa4oAEGuMABBrjwAQa5IAEGuTABBrmAAQa7EAEGu2ABBruAAQa70AEGvAABBrwgAQbAsAEGwvABBsVgAQbHoAEGx9ABBsfwAQbIEAEGyDABBshQAQbIcAEGyIABBsiwAQbKQAEGzJABBsywAQbM0AEGzPABBs0QAQbNMAEGzVABBs1wAQbNkAEGzbABBtAAAQbQMAEG0GABBtCQAQbQwAEG0PABBtEgAQbRUAEG0YABBtGwAQbR0AEG2YABBtmgAQbZ0AEG2fABBtogAQbaMAEG2kABBtpQAQbaYAEG2oABBtqgAQbasAEG2sABBtrgAQba8AEG3AABBtwQAQbcMAEG4+ABBuQAAQbkIAEG5EABBuRwAQbkgAEG5JABBuSgAQbksAEG5NABBuTwAQblAAEG5RABBuUwAQblQAEG7PABBu0QAQbtQAEG7WABBu2QAQbtoAEG7bABBu3AAQbt0AEG7fABBu4QAQbuIAEG7jABBu5QAQbuYAEG73ABBu/AAQbv8AEG8BABBvEgAQbxcAEG8aABBvHAAQbyMAEG+eABBvoAAQb6IAEG+kABBvpwAQb6gAEG+pABBvqgAQb6sAEG+tABBvrwAQb7AAEG+xABBvswAQb7QAEHAvABBwMQAQcDQAEHA2ABBwOQAQcDoAEHA7ABBwPAAQcD0AEHA/ABBwQQAQcEIAEHBDABBwRQAQcEYAEHBXABBwWAAQcFoAEHDVABBw1wAQcNkAEHDbABBw3gAQcN8AEHDgABBw4QAQcOIAEHDkABBw5gAQcOcAEHDoABBw6gAQcOsAEHFmABBxaAAQcWsAEHFtABBxcAAQcXEAEHFyABBxcwAQcXQAEHF2ABBxeAAQcXkAEHF6ABBxfAAQcX0AEHGWABBxlwAQcZgAEHGaABByFQAQchcAEHIZABByGwAQch4AEHIfABByIAAQciEAEHIiABByJAAQciYAEHInABByKAAQcioAEHIrABBypgAQcqgAEHKqABByrAAQcq8AEHKwABBysQAQcrIAEHKzABBytQAQcrcAEHK4ABByuQAQcrsAEHK8ABBy1QAQcvYAEHL5ABBy/AAQcv8AEHMCABBzBQAQcwgAEHMLABBzDgAQcy8AEHMyABBzNQAQczgAEHM7ABBzPgAQc0EAEHNEABBzRwAQc0kAEHNuABBzhwAQc6AAEHOqABBzyAAQc/EAEHP5ABB0jAAQdK8AEHTPABB07wAQdPEAEHTzABB09QAQdPcAEHT6ABB0+wAQdPwAEHT/ABB1AAAQdQIAEHUDABB1BQAQdQgAEHUJABB1CgAQdQ0AEHUOABB1EwAQdSwAEHU1ABB1NwAQdTkAEHVCABB1RQAQdUgAEHVKABB1kwAQdbcAEHXeABB2AgAQdgUAEHYHABB2CQAQdgsAEHYNABB2DwAQdhAAEHYTABB2LAAQdk0AEHZPABB2UQAQdlMAEHZVABB2VwAQdlkAEHZbABB2XQAQdn4AEHaBABB2hAAQdocAEHaKABB2jQAQdpAAEHaTABB2lgAQdpgAEHcTABB3FQAQdxcAEHcZABB3HAAQdx0AEHceABB3HwAQdyAAEHciABB3JAAQdyUAEHcmABB3KAAQdykAEHekABB3pgAQd6gAEHeqABB3rQAQd64AEHevABB3sAAQd7EAEHezABB3tQAQd7YAEHe3ABB3uQAQd7oAEHg1ABB4NwAQeDoAEHg8ABB4PwAQeEAAEHhBABB4QgAQeEMAEHhFABB4RwAQeEgAEHhJABB4SwAQeEwAEHhlABB4ZgAQeGcAEHhpABB45AAQeOYAEHjoABB46gAQeO0AEHjuABB47wAQePAAEHjxABB48wAQePUAEHj2ABB49wAQePkAEHj6ABB5dQAQeXcAEHl5ABB5ewAQeX4AEHl/ABB5gAAQeYEAEHmCABB5hAAQeYYAEHmHABB5iAAQeYoAEHmLABB6BgAQeggAEHoKABB6DAAQeg8AEHoQABB6EQAQehIAEHoTABB6FQAQehcAEHoYABB6GQAQehsAEHocABB6lwAQepkAEHqbABB6nQAQeqAAEHqhABB6ogAQeqMAEHqkABB6pgAQeqgAEHqpABB6qgAQeqwAEHqtABB7KAAQeyoAEHssABB7LgAQezEAEHsyABB7MwAQezQAEHs1ABB7NwAQezkAEHs6ABB7OwAQez0AEHs+ABB7hwAQe6sAEHvSABB79gAQe/kAEHv7ABB7/QAQe/8AEHwBABB8AwAQfAQAEHwHABB8IAAQfD0AEHw/ABB8QQAQfEMAEHxFABB8RwAQfEkAEHxLABB8aAAQfGsAEHxuABB8cQAQfHQAEHx3ABB8egAQfH0AEHx/ABB8+gAQfPwAEHz+ABB9AAAQfQMAEH0EABB9BQAQfQYAEH0HABB9CQAQfQsAEH0MABB9DQAQfQ8AEH0QABB9iwAQfY0AEH2PABB9kQAQfZQAEH2VABB9lgAQfZcAEH2YABB9mgAQfZwAEH2dABB9ngAQfaAAEH2hABB+HAAQfh4AEH4gABB+IgAQfiUAEH4mABB+JwAQfigAEH4pABB+KwAQfi0AEH4uABB+LwAQfjEAEH4yABB+rQAQfq8AEH6yABB+tAAQfrcAEH64ABB+uQAQfroAEH67ABB+vQAQfr8AEH7AABB+wQAQfsMAEH7EABB/PwAQf0EAEH9DABB/RQAQf0gAEH9JABB/SgAQf0sAEH9MABB/TgAQf1AAEH9RABB/UgAQf1QAEH9VABB/0AAQf9IAEH/UABB/1gAQf9kAEH/aABB/2wAQf9wAEH/dABB/3wAQf+EAEH/iABB/4wAQf+UAEH/mABCAYQAQgGMAEIBlABCAZwAQgGoAEIBrABCAbAAQgG0AEIBuABCAcAAQgHIAEIBzABCAdAAQgHYAEIB3ABCBCgAQgS0AEIFNABCBbQAQgW8AEIFxABCBcwAQgXUAEIF4ABCBeQAQgXoAEIF9ABCBfgAQgYAAEIGBABCBgwAQgYYAEIGHABCBiAAQgYsAEIGMABCBkQAQgaoAEIGzABCBtQAQgbcAEIHAABCBwwAQgcYAEIHIABCCEQAQgjUAEIJcABCCgAAQgoMAEIKFABCChwAQgokAEIKLABCCjQAQgo4AEIKRABCCqgAQgssAEILNABCCzwAQgtEAEILTABCC1QAQgtcAEILZABCC2wAQgvwAEIL/ABCDAgAQgwUAEIMIABCDCwAQgw4AEIMRABCDFAAQgxYAEIORABCDkwAQg5UAEIOXABCDmgAQg5sAEIOcABCDnQAQg54AEIOgABCDogAQg6MAEIOkABCDpgAQg6cAEIQiABCEJAAQhCYAEIQoABCEKwAQhCwAEIQtABCELgAQhC8AEIQxABCEMwAQhDQAEIQ1ABCENwAQhDgAEISzABCEtQAQhLgAEIS6ABCEvQAQhL4AEIS/ABCEwAAQhMEAEITDABCExQAQhMYAEITHABCEyQAQhMoAEITjABCE5AAQhOUAEITnABCFYgAQhWQAEIVmABCFaAAQhWsAEIVsABCFbQAQhW4AEIVvABCFcQAQhXMAEIV0ABCFdQAQhXcAEIV4ABCF8wAQhfUAEIX3ABCF+QAQhfwAEIX9ABCF/gAQhf8AEIYAABCGAgAQhgQAEIYFABCGBgAQhggAEIYJABCGhAAQhoYAEIaIABCGigAQho0AEIaOABCGjwAQhpAAEIaRABCGkwAQhpUAEIaWABCGlwAQhpkAEIaaABCHFQAQhxcAEIcZABCHGwAQhx4AEIcfABCHIAAQhyEAEIciABCHJAAQhyYAEIcnABCHKAAQhyoAEIcrABCHpgAQh6gAEIeqABCHrAAQh68AEIewABCHsQAQh7IAEIezABCHtQAQh7cAEIe4ABCHuQAQh7sAEIe8ABCIBQAQiCkAEIhQABCIdAAQiHcAEIh5ABCIewAQiH0AEIh/ABCIgQAQiIIAEIiFABCIngAQiLsAEIi9ABCIvwAQiMEAEIjDABCIxQAQiMcAEIjJABCI5gAQiOkAEIjsABCI7wAQiPIAEIj1ABCI+AAQiPsAEIj9ABCJeAAQiXoAEIl8ABCJfgAQiYEAEImCABCJgwAQiYQAEImFABCJhwAQiYkAEImKABCJiwAQiY0AEImOABCKCQAQigsAEIoNABCKDwAQihIAEIoTABCKFAAQihUAEIoWABCKGAAQihoAEIobABCKHAAQih4AEIofABCKmgAQipwAEIqeABCKoAAQiqMAEIqkABCKpQAQiqYAEIqnABCKqQAQiqsAEIqsABCKrQAQiq8AEIqwABCLKwAQiy0AEIswABCLMgAQizUAEIs2ABCLNwAQizgAEIs5ABCLOwAQiz0AEIs+ABCLPwAQi0EAEItCABCLvQAQi78AEIvBABCLwwAQi8YAEIvHABCLyAAQi8kAEIvKABCLzAAQi84AEIvPABCL0AAQi9IAEIvTABCMTgAQjFAAEIxSABCMVAAQjFcAEIxYABCMWQAQjFoAEIxbABCMXQAQjF8AEIxgABCMYQAQjGMAEIxkABCM3wAQjOEAEIzjABCM5QAQjOgAEIzpABCM6gAQjOsAEIzsABCM7gAQjPAAEIzxABCM8gAQjPQAEIz1ABCNiAAQjasAEI3LABCN6wAQje0AEI3vABCN8QAQjfMAEI32ABCN9wAQjfgAEI37ABCN/AAQjf4AEI3/ABCOAQAQjgQAEI4FABCOBgAQjgkAEI4KABCODwAQjigAEI4xABCOMwAQjjUAEI4+ABCOQQAQjkQAEI5GABCOjwAQjrMAEI7aABCO/gAQjwEAEI8DABCPBQAQjwcAEI8JABCPCwAQjwwAEI8PABCPKAAQj0kAEI9LABCPTQAQj08AEI9RABCPUwAQj1UAEI9XABCPWQAQj3oAEI99ABCPgAAQj4MAEI+GABCPiQAQj4wAEI+PABCPkgAQj5QAEJAPABCQEQAQkBMAEJAVABCQGAAQkBkAEJAaABCQGwAQkBwAEJAeABCQIAAQkCEAEJAiABCQJAAQkCUAEJCgABCQogAQkKQAEJCmABCQqQAQkKoAEJCrABCQrAAQkK0AEJCvABCQsQAQkLIAEJCzABCQtQAQkLYAEJExABCRMwAQkTYAEJE4ABCROwAQkTwAEJE9ABCRPgAQkT8AEJFBABCRQwAQkUQAEJFFABCRRwAQkUgAEJFhABCRYgAQkWMAEJFlABCR4AAQkeIAEJHkABCR5gAQkekAEJHqABCR6wAQkewAEJHtABCR7wAQkfEAEJHyABCR8wAQkfUAEJH2ABCScQAQknMAEJJ1ABCSdwAQknoAEJJ7ABCSfAAQkn0AEJJ+ABCSgAAQkoIAEJKDABCShAAQkoYAEJKHABCTAgAQkwQAEJMGABCTCAAQkwsAEJMMABCTDQAQkw4AEJMPABCTEQAQkxMAEJMUABCTFQAQkxcAEJMYABCTkwAQk5UAEJOXABCTmQAQk5wAEJOdABCTngAQk58AEJOgABCTogAQk6QAEJOlABCTpgAQk6gAEJOpABCUJAAQlCYAEJQoABCUKgAQlC0AEJQuABCULwAQlDAAEJQxABCUMwAQlDUAEJQ2ABCUNwAQlDkAEJQ6ABCUgwAQlKcAEJTOABCU8gAQlPUAEJT3ABCU+QAQlPsAEJT9ABCU/wAQlQAAEJUDABCVHAAQlTkAEJU7ABCVPQAQlT8AEJVBABCVQwAQlUUAEJVHABCVZAAQlWcAEJVqABCVbQAQlXAAEJVzABCVdgAQlXkAEJV7ABCV9gAQlfgAEJX6ABCV/AAQlf8AEJYAABCWAQAQlgIAEJYDABCWBQAQlgcAEJYIABCWCQAQlgsAEJYMABCWhwAQlokAEJaLABCWjQAQlpAAEJaRABCWkgAQlpMAEJaUABCWlgAQlpgAEJaZABCWmgAQlpwAEJadABCXGAAQlxoAEJccABCXHgAQlyEAEJciABCXIwAQlyQAEJclABCXJwAQlykAEJcqABCXKwAQly0AEJcuABCXqQAQl6sAEJeuABCXsAAQl7MAEJe0ABCXtQAQl7YAEJe3ABCXuQAQl7sAEJe8ABCXvQAQl78AEJfAABCYOwAQmD0AEJg/ABCYQQAQmEQAEJhFABCYRgAQmEcAEJhIABCYSgAQmEwAEJhNABCYTgAQmFAAEJhRABCYzAAQmM4AEJjQABCY0gAQmNUAEJjWABCY1wAQmNgAEJjZABCY2wAQmN0AEJjeABCY3wAQmOEAEJjiABCZXQAQmV8AEJlhABCZYwAQmWYAEJlnABCZaAAQmWkAEJlqABCZbAAQmW4AEJlvABCZcAAQmXIAEJlzABCaBgAQmikAEJpJABCaaQAQmmsAEJptABCabwAQmnEAEJp0ABCadQAQmnYAEJp5ABCaegAQmnwAEJp9ABCafwAQmoIAEJqDABCahAAQmocAEJqIABCajQAQmqYAEJqvABCasQAQmrMAEJq8ABCavwAQmsIAEJrEABCbDQAQmzEAEJtYABCbfAAQm38AEJuBABCbgwAQm4UAEJuHABCbiQAQm4oAEJuNABCbpgAQm8cAEJvJABCbywAQm80AEJvPABCb0QAQm9MAEJvVABCb1wAQm/gAEJv7ABCb/gAQnAEAEJwEABCcBwAQnAoAEJwNABCcEAAQnBIAEJyNABCcjwAQnJEAEJyTABCclgAQnJcAEJyYABCcmQAQnJoAEJycABCcngAQnJ8AEJygABCcogAQnKMAEJ0eABCdIAAQnSIAEJ0kABCdJwAQnSgAEJ0pABCdKgAQnSsAEJ0tABCdLwAQnTAAEJ0xABCdMwAQnTQAEJ2vABCdsQAQnbQAEJ22ABCduQAQnboAEJ27ABCdvAAQnb0AEJ2/ABCdwQAQncIAEJ3DABCdxQAQncYAEJ3fABCd4AAQneEAEJ3jABCeXgAQnmAAEJ5iABCeZAAQnmcAEJ5oABCeaQAQnmoAEJ5rABCebQAQnm8AEJ5wABCecQAQnnMAEJ50ABCe7wAQnvEAEJ7zABCe9QAQnvgAEJ75ABCe+gAQnvsAEJ78ABCe/gAQnwAAEJ8BABCfAgAQnwQAEJ8FABCfgAAQn4IAEJ+EABCfhgAQn4kAEJ+KABCfiwAQn4wAEJ+NABCfjwAQn5EAEJ+SABCfkwAQn5UAEJ+WABCgEQAQoBMAEKAVABCgFwAQoBoAEKAbABCgHAAQoB0AEKAeABCgIAAQoCIAEKAjABCgJAAQoCYAEKAnABCgogAQoKQAEKCmABCgqAAQoKsAEKCsABCgrQAQoK4AEKCvABCgsQAQoLMAEKC0ABCgtQAQoLcAEKC4ABChAQAQoSUAEKFMABChcAAQoXMAEKF1ABChdwAQoXkAEKF7ABChfQAQoX4AEKGBABChmgAQobcAEKG5ABChuwAQob0AEKG/ABChwQAQocMAEKHFABCh4gAQoeUAEKHoABCh6wAQoe4AEKHxABCh9AAQofcAEKH5ABCidAAQonYAEKJ4ABCiegAQon0AEKJ+ABCifwAQooAAEKKBABCigwAQooUAEKKGABCihwAQookAEKKKABCjBQAQowcAEKMJABCjCwAQow4AEKMPABCjEAAQoxEAEKMSABCjFAAQoxYAEKMXABCjGAAQoxoAEKMbABCjlgAQo5gAEKOaABCjnAAQo58AEKOgABCjoQAQo6IAEKOjABCjpQAQo6cAEKOoABCjqQAQo6sAEKOsABCkJwAQpCkAEKQsABCkLgAQpDEAEKQyABCkMwAQpDQAEKQ1ABCkNwAQpDkAEKQ6ABCkOwAQpD0AEKQ+ABCkuQAQpLsAEKS9ABCkvwAQpMIAEKTDABCkxAAQpMUAEKTGABCkyAAQpMoAEKTLABCkzAAQpM4AEKTPABClSgAQpUwAEKVOABClUAAQpVMAEKVUABClVQAQpVYAEKVXABClWQAQpVsAEKVcABClXQAQpV8AEKVgABCl2wAQpd0AEKXfABCl4QAQpeQAEKXlABCl5gAQpecAEKXoABCl6gAQpewAEKXtABCl7gAQpfAAEKXxABCmhAAQpqcAEKbHABCm5wAQpukAEKbrABCm7QAQpu8AEKbyABCm8wAQpvQAEKb3ABCm+AAQpvoAEKb7ABCm/QAQpwAAEKcBABCnAgAQpwUAEKcGABCnCwAQpyQAEKctABCnLwAQpzEAEKc6ABCnPQAQp0AAEKdCABCniwAQp68AEKfWABCn+gAQp/0AEKf/ABCoAQAQqAMAEKgFABCoBwAQqAgAEKgLABCoJAAQqEUAEKhHABCoSQAQqEsAEKhNABCoTwAQqFEAEKhTABCoVQAQqHYAEKh5ABCofAAQqH8AEKiCABCohQAQqIgAEKiLABCojgAQqJAAEKkLABCpDQAQqQ8AEKkRABCpFAAQqRUAEKkWABCpFwAQqRgAEKkaABCpHAAQqR0AEKkeABCpIAAQqSEAEKmcABCpngAQqaAAEKmiABCppQAQqaYAEKmnABCpqAAQqakAEKmrABCprQAQqa4AEKmvABCpsQAQqbIAEKotABCqLwAQqjIAEKo0ABCqNwAQqjgAEKo5ABCqOgAQqjsAEKo9ABCqPwAQqkAAEKpBABCqQwAQqkQAEKpdABCqXgAQql8AEKphABCq3AAQqt4AEKrgABCq4gAQquUAEKrmABCq5wAQqugAEKrpABCq6wAQqu0AEKruABCq7wAQqvEAEKryABCrbQAQq28AEKtxABCrcwAQq3YAEKt3ABCreAAQq3kAEKt6ABCrfAAQq34AEKt/ABCrgAAQq4IAEKuDABCr/gAQrAAAEKwCABCsBAAQrAcAEKwIABCsCQAQrAoAEKwLABCsDQAQrA8AEKwQABCsEQAQrBMAEKwUABCsjwAQrJEAEKyTABCslQAQrJgAEKyZABCsmgAQrJsAEKycABCsngAQrKAAEKyhABCsogAQrKQAEKylABCtIAAQrSIAEK0kABCtJgAQrSkAEK0qABCtKwAQrSwAEK0tABCtLwAQrTEAEK0yABCtMwAQrTUAEK02ABCtfwAQraMAEK3KABCt7gAQrfEAEK3zABCt9QAQrfcAEK35ABCt+wAQrfwAEK3/ABCuGAAQrjUAEK43ABCuOQAQrjsAEK49ABCuPwAQrkEAEK5DABCuYAAQrmMAEK5mABCuaQAQrmwAEK5vABCucgAQrnUAEK53ABCu8gAQrvQAEK72ABCu+AAQrvsAEK78ABCu/QAQrv4AEK7/ABCvAQAQrwMAEK8EABCvBQAQrwcAEK8IABCvgwAQr4UAEK+HABCviQAQr4wAEK+NABCvjgAQr48AEK+QABCvkgAQr5QAEK+VABCvlgAQr5gAEK+ZABCwFAAQsBYAELAYABCwGgAQsB0AELAeABCwHwAQsCAAELAhABCwIwAQsCUAELAmABCwJwAQsCkAELAqABCwpQAQsKcAELCqABCwrAAQsK8AELCwABCwsQAQsLIAELCzABCwtQAQsLcAELC4ABCwuQAQsLsAELC8ABCxNwAQsTkAELE7ABCxPQAQsUAAELFBABCxQgAQsUMAELFEABCxRgAQsUgAELFJABCxSgAQsUwAELFNABCxyAAQscoAELHMABCxzgAQsdEAELHSABCx0wAQsdQAELHVABCx1wAQsdkAELHaABCx2wAQsd0AELHeABCyWQAQslsAELJdABCyXwAQsmIAELJjABCyZAAQsmUAELJmABCyaAAQsmoAELJrABCybAAQsm4AELJvABCzAgAQsyUAELNFABCzZQAQs2cAELNpABCzawAQs20AELNwABCzcQAQs3IAELN1ABCzdgAQs3gAELN5ABCzewAQs34AELN/ABCzgAAQs4MAELOEABCziQAQs6IAELOrABCzrQAQs68AELO4ABCzuwAQs74AELPAABC0CQAQtC0AELRUABC0eAAQtHsAELR9ABC0fwAQtIEAELSDABC0hQAQtIYAELSJABC0ogAQtMMAELTFABC0xwAQtMkAELTLABC0zQAQtM8AELTRABC00wAQtPQAELT3ABC0+gAQtP0AELUAABC1AwAQtQYAELUJABC1DAAQtQ4AELWJABC1iwAQtY0AELWPABC1kgAQtZMAELWUABC1lQAQtZYAELWYABC1mgAQtZsAELWcABC1ngAQtZ8AELYaABC2HAAQth4AELYgABC2IwAQtiQAELYlABC2JgAQticAELYpABC2KwAQtiwAELYtABC2LwAQtjAAELarABC2rQAQtrAAELayABC2tQAQtrYAELa3ABC2uAAQtrkAELa7ABC2vQAQtr4AELa/ABC2wQAQtsIAELbbABC23AAQtt0AELbfABC3WgAQt1wAELdeABC3YAAQt2MAELdkABC3ZQAQt2YAELdnABC3aQAQt2sAELdsABC3bQAQt28AELdwABC36wAQt+0AELfvABC38QAQt/QAELf1ABC39gAQt/cAELf4ABC3+gAQt/wAELf9ABC3/gAQuAAAELgBABC4fAAQuH4AELiAABC4ggAQuIUAELiGABC4hwAQuIgAELiJABC4iwAQuI0AELiOABC4jwAQuJEAELiSABC5DQAQuQ8AELkRABC5EwAQuRYAELkXABC5GAAQuRkAELkaABC5HAAQuR4AELkfABC5IAAQuSIAELkjABC5ngAQuaAAELmiABC5pAAQuacAELmoABC5qQAQuaoAELmrABC5rQAQua8AELmwABC5sQAQubMAELm0ABC5/QAQuiEAELpIABC6bAAQum8AELpxABC6cwAQunUAELp3ABC6eQAQunoAELp9ABC6lgAQurMAELq1ABC6twAQurkAELq7ABC6vQAQur8AELrBABC63gAQuuEAELrkABC65wAQuuoAELrtABC68AAQuvMAELr1ABC7cAAQu3IAELt0ABC7dgAQu3kAELt6ABC7ewAQu3wAELt9ABC7fwAQu4EAELuCABC7gwAQu4UAELuGABC8AQAQvAMAELwFABC8BwAQvAoAELwLABC8DAAQvA0AELwOABC8EAAQvBIAELwTABC8FAAQvBYAELwXABC8kgAQvJQAELyWABC8mAAQvJsAELycABC8nQAQvJ4AELyfABC8oQAQvKMAELykABC8pQAQvKcAELyoABC9IwAQvSUAEL0nABC9KQAQvSwAEL0tABC9LgAQvS8AEL0wABC9MgAQvTQAEL01ABC9NgAQvTgAEL05ABC9tAAQvbYAEL24ABC9ugAQvb0AEL2+ABC9vwAQvcAAEL3BABC9wwAQvcUAEL3GABC9xwAQvckAEL3KABC+RQAQvkcAEL5JABC+SwAQvk4AEL5PABC+UAAQvlEAEL5SABC+VAAQvlYAEL5XABC+WAAQvloAEL5bABC+1gAQvtgAEL7aABC+3AAQvt8AEL7gABC+4QAQvuIAEL7jABC+5QAQvucAEL7oABC+6QAQvusAEL7sABC/fwAQv6IAEL/CABC/4gAQv+QAEL/mABC/6AAQv+oAEL/tABC/7gAQv+8AEL/yABC/8wAQv/UAEL/2ABC/+AAQv/sAEL/8ABC//QAQwAAAEMABABDABgAQwB8AEMAoABDAKgAQwCwAEMA1ABDAOAAQwDsAEMA9ABDAhgAQwKoAEMDRABDA9QAQwPgAEMD6ABDA/AAQwP4AEMEAABDBAgAQwQMAEMEGABDBHwAQwUAAEMFCABDBRAAQwUYAEMFIABDBSgAQwUwAEMFOABDBUAAQwXEAEMF0ABDBdwAQwXoAEMF9ABDBgAAQwYMAEMGGABDBiQAQwYsAEMIGABDCCAAQwgoAEMIMABDCDwAQwhAAEMIRABDCEgAQwhMAEMIVABDCFwAQwhgAEMIZABDCGwAQwhwAEMKXABDCmQAQwpsAEMKdABDCoAAQwqEAEMKiABDCowAQwqQAEMKmABDCqAAQwqkAEMKqABDCrAAQwq0AEMMoABDDKgAQwy0AEMMvABDDMgAQwzMAEMM0ABDDNQAQwzYAEMM4ABDDOgAQwzsAEMM8ABDDPgAQwz8AEMNYABDDWQAQw1oAEMNcABDD1wAQw9kAEMPbABDD3QAQw+AAEMPhABDD4gAQw+MAEMPkABDD5gAQw+gAEMPpABDD6gAQw+wAEMPtABDEaAAQxGoAEMRsABDEbgAQxHEAEMRyABDEcwAQxHQAEMR1ABDEdwAQxHkAEMR6ABDEewAQxH0AEMR+ABDE+QAQxPsAEMT9ABDE/wAQxQIAEMUDABDFBAAQxQUAEMUGABDFCAAQxQoAEMULABDFDAAQxQ4AEMUPABDFigAQxYwAEMWOABDFkAAQxZMAEMWUABDFlQAQxZYAEMWXABDFmQAQxZsAEMWcABDFnQAQxZ8AEMWgABDGGwAQxh0AEMYfABDGIQAQxiQAEMYlABDGJgAQxicAEMYoABDGKgAQxiwAEMYtABDGLgAQxjAAEMYxABDGegAQxp4AEMbFABDG6QAQxuwAEMbuABDG8AAQxvIAEMb0ABDG9gAQxvcAEMb6ABDHEwAQxzAAEMcyABDHNAAQxzYAEMc4ABDHOgAQxzwAEMc+ABDHWwAQx14AEMdhABDHZAAQx2cAEMdqABDHbQAQx3AAEMdyABDH7QAQx+8AEMfxABDH8wAQx/YAEMf3ABDH+AAQx/kAEMf6ABDH/AAQx/4AEMf/ABDIAAAQyAIAEMgDABDIfgAQyIAAEMiCABDIhAAQyIcAEMiIABDIiQAQyIoAEMiLABDIjQAQyI8AEMiQABDIkQAQyJMAEMiUABDJDwAQyREAEMkTABDJFQAQyRgAEMkZABDJGgAQyRsAEMkcABDJHgAQySAAEMkhABDJIgAQySQAEMklABDJoAAQyaIAEMmlABDJpwAQyaoAEMmrABDJrAAQya0AEMmuABDJsAAQybIAEMmzABDJtAAQybYAEMm3ABDKMgAQyjQAEMo2ABDKOAAQyjsAEMo8ABDKPQAQyj4AEMo/ABDKQQAQykMAEMpEABDKRQAQykcAEMpIABDKwwAQysUAEMrHABDKyQAQyswAEMrNABDKzgAQys8AEMrQABDK0gAQytQAEMrVABDK1gAQytgAEMrZABDLVAAQy1YAEMtYABDLWgAQy10AEMteABDLXwAQy2AAEMthABDLYwAQy2UAEMtmABDLZwAQy2kAEMtqABDL/QAQzCAAEMxAABDMYAAQzGIAEMxkABDMZgAQzGgAEMxrABDMbAAQzG0AEMxwABDMcQAQzHMAEMx0ABDMdwAQzHoAEMx7ABDMfAAQzH8AEMyAABDMhQAQzJ4AEMynABDMqQAQzKwAEMy1ABDMuAAQzLsAEMy9ABDNBgAQzSoAEM1RABDNdQAQzXgAEM16ABDNfAAQzX4AEM2AABDNggAQzYMAEM2GABDNnwAQzcAAEM3CABDNxAAQzcYAEM3IABDNygAQzcwAEM3OABDN0AAQzfEAEM30ABDN9wAQzfoAEM39ABDOAAAQzgMAEM4GABDOCQAQzgsAEM6GABDOiAAQzooAEM6MABDOjwAQzpAAEM6RABDOkgAQzpMAEM6VABDOlwAQzpgAEM6ZABDOmwAQzpwAEM8XABDPGQAQzxsAEM8dABDPIAAQzyEAEM8iABDPIwAQzyQAEM8mABDPKAAQzykAEM8qABDPLAAQzy0AEM+oABDPqgAQz60AEM+vABDPsgAQz7MAEM+0ABDPtQAQz7YAEM+4ABDPugAQz7sAEM+8ABDPvgAQz78AEM/YABDP2QAQz9oAEM/cABDQVwAQ0FkAENBbABDQXQAQ0GAAENBhABDQYgAQ0GMAENBkABDQZgAQ0GgAENBpABDQagAQ0GwAENBtABDQ6AAQ0OoAENDsABDQ7gAQ0PEAENDyABDQ8wAQ0PQAEND1ABDQ9wAQ0PkAEND6ABDQ+wAQ0P0AEND+ABDReQAQ0XsAENF9ABDRfwAQ0YIAENGDABDRhAAQ0YUAENGGABDRiAAQ0YoAENGLABDRjAAQ0Y4AENGPABDSCgAQ0gwAENIOABDSEAAQ0hMAENIUABDSFQAQ0hYAENIXABDSGQAQ0hsAENIcABDSHQAQ0h8AENIgABDSmwAQ0p0AENKfABDSoQAQ0qQAENKlABDSpgAQ0qcAENKoABDSqgAQ0qwAENKtABDSrgAQ0rAAENKxABDS+gAQ0x4AENNFABDTaQAQ02wAENNvABDTcQAQ03MAENN1ABDTdwAQ03gAENN7ABDTlAAQ07EAENO0ABDTtwAQ07oAENO9ABDTwAAQ08MAENPGABDT4wAQ0+YAENPpABDT7AAQ0+8AENPyABDT9QAQ0/gAENP6ABDUdQAQ1HcAENR6ABDUfAAQ1H8AENSAABDUgQAQ1IIAENSDABDUhQAQ1IgAENSJABDUigAQ1IwAENSNABDVCAAQ1QoAENUNABDVDwAQ1RIAENUTABDVFAAQ1RUAENUWABDVGAAQ1RsAENUcABDVHQAQ1R8AENUgABDVmwAQ1Z0AENWgABDVogAQ1aUAENWmABDVpwAQ1agAENWpABDVqwAQ1a4AENWvABDVsAAQ1bIAENWzABDWLgAQ1jAAENYzABDWNQAQ1jgAENY5ABDWOgAQ1jsAENY8ABDWPgAQ1kEAENZCABDWQwAQ1kUAENZGABDWwQAQ1sMAENbFABDWxwAQ1soAENbLABDWzAAQ1s0AENbOABDW0AAQ1tMAENbUABDW1QAQ1tcAENbYABDXUwAQ11UAENdXABDXWQAQ11wAENddABDXXgAQ118AENdgABDXYgAQ12UAENdmABDXZwAQ12kAENdqABDX5QAQ1+cAENfqABDX7AAQ1+8AENfwABDX8QAQ1/IAENfzABDX9QAQ1/gAENf5ABDX+gAQ1/wAENf9ABDYDgAQ2A8AENgRABDYjAAQ2I4AENiQABDYkgAQ2JUAENiWABDYlwAQ2JgAENiZABDYmwAQ2J4AENifABDYoAAQ2KIAENijABDZHgAQ2SAAENkiABDZJAAQ2ScAENkoABDZKQAQ2SoAENkrABDZLQAQ2TAAENkxABDZMgAQ2TQAENk1ABDZsAAQ2bIAENm1ABDZtwAQ2boAENm7ABDZvAAQ2b0AENm+ABDZwAAQ2cMAENnEABDZxQAQ2ccAENnIABDaWwAQ2n4AENqeABDavgAQ2sAAENrCABDaxAAQ2sYAENrJABDaygAQ2ssAENrOABDazwAQ2tEAENrSABDa1AAQ2tcAENrYABDa2QAQ2twAENrdABDa5gAQ2v8AENsIABDbCgAQ2wwAENsVABDbGAAQ2xsAENsdABDbZgAQ24oAENuxABDb1QAQ29gAENvaABDb3AAQ294AENvgABDb4gAQ2+MAENvmABDb/wAQ3CAAENwiABDcJAAQ3CYAENwoABDcKgAQ3CwAENwuABDcMAAQ3FEAENxUABDcVwAQ3FoAENxdABDcYAAQ3GMAENxmABDcaQAQ3GsAENzmABDc6AAQ3OoAENzsABDc7wAQ3PAAENzxABDc8gAQ3PMAENz1ABDc9wAQ3PgAENz5ABDc+wAQ3PwAEN13ABDdeQAQ3XsAEN19ABDdgAAQ3YEAEN2CABDdgwAQ3YQAEN2GABDdiAAQ3YkAEN2KABDdjAAQ3Y0AEN4IABDeCgAQ3g0AEN4PABDeEgAQ3hMAEN4UABDeFQAQ3hYAEN4YABDeGgAQ3hsAEN4cABDeHgAQ3h8AEN44ABDeOQAQ3joAEN48ABDetwAQ3rkAEN67ABDevQAQ3sAAEN7BABDewgAQ3sMAEN7EABDexgAQ3sgAEN7JABDeygAQ3swAEN7NABDfSAAQ30oAEN9MABDfTgAQ31EAEN9SABDfUwAQ31QAEN9VABDfVwAQ31kAEN9aABDfWwAQ310AEN9eABDf2QAQ39sAEN/dABDf3wAQ3+IAEN/jABDf5AAQ3+UAEN/mABDf6AAQ3+oAEN/rABDf7AAQ3+4AEN/vABDgagAQ4GwAEOBuABDgcAAQ4HMAEOB0ABDgdQAQ4HYAEOB3ABDgeQAQ4HsAEOB8ABDgfQAQ4H8AEOCAABDg+wAQ4P0AEOD/ABDhAQAQ4QQAEOEFABDhBgAQ4QcAEOEIABDhCgAQ4QwAEOENABDhDgAQ4RAAEOERABDhWgAQ4X4AEOGlABDhyQAQ4cwAEOHOABDh0AAQ4dIAEOHUABDh1gAQ4dcAEOHaABDh8wAQ4hAAEOISABDiFAAQ4hYAEOIYABDiGgAQ4hwAEOIeABDiOwAQ4j4AEOJBABDiRAAQ4kcAEOJKABDiTQAQ4lAAEOJSABDizQAQ4s8AEOLRABDi0wAQ4tYAEOLXABDi2AAQ4tkAEOLaABDi3AAQ4t4AEOLfABDi4AAQ4uIAEOLjABDjXgAQ42AAEONiABDjZAAQ42cAEONoABDjaQAQ42oAEONrABDjbQAQ428AEONwABDjcQAQ43MAEON0ABDj7wAQ4/EAEOPzABDj9QAQ4/gAEOP5ABDj+gAQ4/sAEOP8ABDj/gAQ5AAAEOQBABDkAgAQ5AQAEOQFABDkgAAQ5IIAEOSFABDkhwAQ5IoAEOSLABDkjAAQ5I0AEOSOABDkkAAQ5JIAEOSTABDklAAQ5JYAEOSXABDlEgAQ5RQAEOUWABDlGAAQ5RsAEOUcABDlHQAQ5R4AEOUfABDlIQAQ5SMAEOUkABDlJQAQ5ScAEOUoABDlowAQ5aUAEOWnABDlqQAQ5awAEOWtABDlrgAQ5a8AEOWwABDlsgAQ5bQAEOW1ABDltgAQ5bgAEOW5ABDmNAAQ5jYAEOY4ABDmOgAQ5j0AEOY+ABDmPwAQ5kAAEOZBABDmQwAQ5kUAEOZGABDmRwAQ5kkAEOZKABDm3QAQ5wAAEOcgABDnQAAQ50IAEOdEABDnRgAQ50gAEOdLABDnTAAQ500AEOdQABDnUQAQ51MAEOdUABDnVgAQ51kAEOdaABDnWwAQ514AEOdfABDnZAAQ530AEOeGABDniAAQ54oAEOeTABDnlgAQ55kAEOebABDn5AAQ6AgAEOgvABDoUwAQ6FYAEOhYABDoWgAQ6FwAEOheABDoYAAQ6GEAEOhkABDofQAQ6J4AEOigABDoogAQ6KQAEOimABDoqAAQ6KoAEOisABDorgAQ6M8AEOjSABDo1QAQ6NgAEOjbABDo3gAQ6OEAEOjkABDo5wAQ6OkAEOlkABDpZgAQ6WgAEOlqABDpbQAQ6W4AEOlvABDpcAAQ6XEAEOlzABDpdQAQ6XYAEOl3ABDpeQAQ6XoAEOn1ABDp9wAQ6fkAEOn7ABDp/gAQ6f8AEOoAABDqAQAQ6gIAEOoEABDqBgAQ6gcAEOoIABDqCgAQ6gsAEOqGABDqiAAQ6osAEOqNABDqkAAQ6pEAEOqSABDqkwAQ6pQAEOqWABDqmAAQ6pkAEOqaABDqnAAQ6p0AEOq2ABDqtwAQ6rgAEOq6ABDrNQAQ6zcAEOs5ABDrOwAQ6z4AEOs/ABDrQAAQ60EAEOtCABDrRAAQ60YAEOtHABDrSAAQ60oAEOtLABDrxgAQ68gAEOvKABDrzAAQ688AEOvQABDr0QAQ69IAEOvTABDr1QAQ69cAEOvYABDr2QAQ69sAEOvcABDsVwAQ7FkAEOxbABDsXQAQ7GAAEOxhABDsYgAQ7GMAEOxkABDsZgAQ7GgAEOxpABDsagAQ7GwAEOxtABDs6AAQ7OoAEOzsABDs7gAQ7PEAEOzyABDs8wAQ7PQAEOz1ABDs9wAQ7PkAEOz6ABDs+wAQ7P0AEOz+ABDteQAQ7XsAEO19ABDtfwAQ7YIAEO2DABDthAAQ7YUAEO2GABDtiAAQ7YoAEO2LABDtjAAQ7Y4AEO2PABDt2AAQ7fwAEO4jABDuRwAQ7koAEO5MABDuTgAQ7lAAEO5SABDuVAAQ7lUAEO5YABDucQAQ7o4AEO6QABDukgAQ7pQAEO6WABDumAAQ7poAEO6cABDuuQAQ7rwAEO6/ABDuwgAQ7sUAEO7IABDuywAQ7s4AEO7QABDvSwAQ700AEO9PABDvUQAQ71QAEO9VABDvVgAQ71cAEO9YABDvWgAQ71wAEO9dABDvXgAQ72AAEO9hABDv3AAQ794AEO/gABDv4gAQ7+UAEO/mABDv5wAQ7+gAEO/pABDv6wAQ7+0AEO/uABDv7wAQ7/EAEO/yABDwbQAQ8G8AEPBxABDwcwAQ8HYAEPB3ABDweAAQ8HkAEPB6ABDwfAAQ8H4AEPB/ABDwgAAQ8IIAEPCDABDw/gAQ8QAAEPEDABDxBQAQ8QgAEPEJABDxCgAQ8QsAEPEMABDxDgAQ8RAAEPERABDxEgAQ8RQAEPEVABDxkAAQ8ZIAEPGUABDxlgAQ8ZkAEPGaABDxmwAQ8ZwAEPGdABDxnwAQ8aEAEPGiABDxowAQ8aUAEPGmABDyIQAQ8iMAEPIlABDyJwAQ8ioAEPIrABDyLAAQ8i0AEPIuABDyMAAQ8jIAEPIzABDyNAAQ8jYAEPI3ABDysgAQ8rQAEPK2ABDyuAAQ8rsAEPK8ABDyvQAQ8r4AEPK/ABDywQAQ8sMAEPLEABDyxQAQ8scAEPLIABDzWwAQ834AEPOeABDzvgAQ88AAEPPCABDzxAAQ88YAEPPJABDzygAQ88sAEPPOABDzzwAQ89EAEPPSABDz1AAQ89cAEPPYABDz2QAQ89wAEPPdABDz4gAQ8/sAEPQEABD0BgAQ9AgAEPQRABD0FAAQ9BcAEPQZABD0YgAQ9IYAEPStABD00QAQ9NQAEPTWABD02AAQ9NoAEPTcABD03gAQ9N8AEPTiABD0+wAQ9RwAEPUeABD1IAAQ9SIAEPUkABD1JgAQ9SgAEPUqABD1LAAQ9U0AEPVQABD1UwAQ9VYAEPVZABD1XAAQ9V8AEPViABD1ZQAQ9WcAEPXiABD15AAQ9eYAEPXoABD16wAQ9ewAEPXtABD17gAQ9e8AEPXxABD18wAQ9fQAEPX1ABD19wAQ9fgAEPZzABD2dQAQ9ncAEPZ5ABD2fAAQ9n0AEPZ+ABD2fwAQ9oAAEPaCABD2hAAQ9oUAEPaGABD2iAAQ9okAEPcEABD3BgAQ9wkAEPcLABD3DgAQ9w8AEPcQABD3EQAQ9xIAEPcUABD3FgAQ9xcAEPcYABD3GgAQ9xsAEPc0ABD3NQAQ9zYAEPc4ABD3swAQ97UAEPe3ABD3uQAQ97wAEPe9ABD3vgAQ978AEPfAABD3wgAQ98QAEPfFABD3xgAQ98gAEPfJABD4RAAQ+EYAEPhIABD4SgAQ+E0AEPhOABD4TwAQ+FAAEPhRABD4UwAQ+FUAEPhWABD4VwAQ+FkAEPhaABD41QAQ+NcAEPjZABD42wAQ+N4AEPjfABD44AAQ+OEAEPjiABD45AAQ+OYAEPjnABD46AAQ+OoAEPjrABD5ZgAQ+WgAEPlqABD5bAAQ+W8AEPlwABD5cQAQ+XIAEPlzABD5dQAQ+XcAEPl4ABD5eQAQ+XsAEPl8ABD59wAQ+fkAEPn7ABD5/QAQ+gAAEPoBABD6AgAQ+gMAEPoEABD6BgAQ+ggAEPoJABD6CgAQ+gwAEPoNABD6VgAQ+noAEPqhABD6xQAQ+sgAEPrKABD6zAAQ+s4AEPrQABD60gAQ+tMAEPrWABD67wAQ+wwAEPsOABD7EAAQ+xIAEPsUABD7FgAQ+xgAEPsaABD7NwAQ+zoAEPs9ABD7QAAQ+0MAEPtGABD7SQAQ+0wAEPtOABD7yQAQ+8sAEPvNABD7zwAQ+9IAEPvTABD71AAQ+9UAEPvWABD72AAQ+9oAEPvbABD73AAQ+94AEPvfABD8WgAQ/FwAEPxeABD8YAAQ/GMAEPxkABD8ZQAQ/GYAEPxnABD8aQAQ/GsAEPxsABD8bQAQ/G8AEPxwABD86wAQ/O0AEPzvABD88QAQ/PQAEPz1ABD89gAQ/PcAEPz4ABD8+gAQ/PwAEPz9ABD8/gAQ/QAAEP0BABD9fAAQ/X4AEP2AABD9ggAQ/YUAEP2GABD9hwAQ/YgAEP2JABD9iwAQ/Y0AEP2OABD9jwAQ/ZEAEP2SABD+DQAQ/g8AEP4RABD+EwAQ/hYAEP4XABD+GAAQ/hkAEP4aABD+HAAQ/h4AEP4fABD+IAAQ/iIAEP4jABD+ngAQ/qAAEP6iABD+pAAQ/qcAEP6oABD+qQAQ/qoAEP6rABD+rQAQ/q8AEP6wABD+sQAQ/rMAEP60ABD/LwAQ/zEAEP8zABD/NQAQ/zgAEP85ABD/OgAQ/zsAEP88ABD/PgAQ/0AAEP9BABD/QgAQ/0QAEP9FABD/2AAQ//sAEQAbABEAOwARAD0AEQA/ABEAQQARAEMAEQBGABEARwARAEgAEQBLABEATAARAE4AEQBPABEAUQARAFQAEQBVABEAVgARAFkAEQBaABEAYwARAHwAEQCFABEAhwARAIkAEQCSABEAlQARAJgAEQCaABEA4wARAQcAEQEuABEBUgARAVUAEQFXABEBWQARAVsAEQFdABEBXwARAWAAEQFjABEBfAARAZ0AEQGfABEBoQARAaMAEQGlABEBpwARAakAEQGrABEBrQARAc4AEQHRABEB1AARAdcAEQHaABEB3QARAeAAEQHjABEB5gARAegAEQJjABECZQARAmcAEQJpABECbAARAm0AEQJuABECbwARAnAAEQJyABECdAARAnUAEQJ2ABECeAARAnkAEQL0ABEC9gARAvgAEQL6ABEC/QARAv4AEQL/ABEDAAARAwEAEQMDABEDBQARAwYAEQMHABEDCQARAwoAEQOFABEDhwARA4oAEQOMABEDjwARA5AAEQORABEDkgARA5MAEQOVABEDlwARA5gAEQOZABEDmwARA5wAEQO1ABEDtgARA7cAEQO5ABEENAARBDYAEQQ4ABEEOgARBD0AEQQ+ABEEPwARBEAAEQRBABEEQwARBEUAEQRGABEERwARBEkAEQRKABEExQARBMcAEQTJABEEywARBM4AEQTPABEE0AARBNEAEQTSABEE1AARBNYAEQTXABEE2AARBNoAEQTbABEFVgARBVgAEQVaABEFXAARBV8AEQVgABEFYQARBWIAEQVjABEFZQARBWcAEQVoABEFaQARBWsAEQVsABEF5wARBekAEQXrABEF7QARBfAAEQXxABEF8gARBfMAEQX0ABEF9gARBfgAEQX5ABEF+gARBfwAEQX9ABEGeAARBnoAEQZ8ABEGfgARBoEAEQaCABEGgwARBoQAEQaFABEGhwARBokAEQaKABEGiwARBo0AEQaOABEG1wARBvsAEQciABEHRgARB0kAEQdLABEHTQARB08AEQdRABEHUwARB1QAEQdXABEHcAARB40AEQePABEHkQARB5MAEQeVABEHlwARB5kAEQebABEHuAARB7sAEQe+ABEHwQARB8QAEQfHABEHygARB80AEQfPABEISgARCEwAEQhOABEIUAARCFMAEQhUABEIVQARCFYAEQhXABEIWQARCFsAEQhcABEIXQARCF8AEQhgABEI2wARCN0AEQjfABEI4QARCOQAEQjlABEI5gARCOcAEQjoABEI6gARCOwAEQjtABEI7gARCPAAEQjxABEJbAARCW4AEQlwABEJcgARCXUAEQl2ABEJdwARCXgAEQl5ABEJewARCX0AEQl+ABEJfwARCYEAEQmCABEJ/QARCf8AEQoCABEKBAARCgcAEQoIABEKCQARCgoAEQoLABEKDQARCg8AEQoQABEKEQARChMAEQoUABEKjwARCpEAEQqTABEKlQARCpgAEQqZABEKmgARCpsAEQqcABEKngARCqAAEQqhABEKogARCqQAEQqlABELIAARCyIAEQskABELJgARCykAEQsqABELKwARCywAEQstABELLwARCzEAEQsyABELMwARCzUAEQs2ABELsQARC7MAEQu1ABELtwARC7oAEQu7ABELvAARC70AEQu+ABELwAARC8IAEQvDABELxAARC8YAEQvHABEMWgARDH0AEQydABEMvQARDL8AEQzBABEMwwARDMUAEQzIABEMyQARDMoAEQzNABEMzgARDNAAEQzRABEM0wARDNYAEQzXABEM2AARDNsAEQzcABEM4QARDPoAEQ0DABENBQARDQcAEQ0QABENEwARDRYAEQ0YABENYQARDYUAEQ2sABEN0AARDdMAEQ3VABEN1wARDdkAEQ3bABEN3QARDd4AEQ3hABEN+gARDhsAEQ4dABEOHwARDiEAEQ4jABEOJQARDicAEQ4pABEOKwARDkwAEQ5PABEOUgARDlUAEQ5YABEOWwARDl4AEQ5hABEOZAARDmYAEQ7hABEO4wARDuUAEQ7nABEO6gARDusAEQ7sABEO7QARDu4AEQ7wABEO8gARDvMAEQ70ABEO9gARDvcAEQ9yABEPdAARD3YAEQ94ABEPewARD3wAEQ99ABEPfgARD38AEQ+BABEPgwARD4QAEQ+FABEPhwARD4gAERADABEQBQAREAgAERAKABEQDQAREA4AERAPABEQEAAREBEAERATABEQFQAREBYAERAXABEQGQAREBoAERAzABEQNAAREDUAERA3ABEQsgARELQAERC2ABEQuAARELsAERC8ABEQvQAREL4AERC/ABEQwQAREMMAERDEABEQxQAREMcAERDIABERQwAREUUAERFHABERSQAREUwAERFNABERTgAREU8AERFQABERUgAREVQAERFVABERVgAREVgAERFZABER1AAREdYAERHYABER2gAREd0AERHeABER3wAREeAAERHhABER4wAREeUAERHmABER5wAREekAERHqABESZQAREmcAERJpABESawAREm4AERJvABEScAAREnEAERJyABESdAAREnYAERJ3ABESeAAREnoAERJ7ABES9gAREvgAERL6ABES/AAREv8AERMAABETAQAREwIAERMDABETBQAREwcAERMIABETCQAREwsAERMMABETVQARE3kAEROgABETxAARE8cAERPJABETywARE80AERPPABET0QARE9IAERPVABET7gARFAsAERQNABEUDwARFBEAERQTABEUFQARFBcAERQZABEUNgARFDkAERQ8ABEUPwARFEIAERRFABEUSAARFEsAERRNABEUyAARFMoAERTMABEUzgARFNEAERTSABEU0wARFNQAERTVABEU1wARFNkAERTaABEU2wARFN0AERTeABEVWQARFVsAERVdABEVXwARFWIAERVjABEVZAARFWUAERVmABEVaAARFWoAERVrABEVbAARFW4AERVvABEV6gARFewAERXuABEV8AARFfMAERX0ABEV9QARFfYAERX3ABEV+QARFfsAERX8ABEV/QARFf8AERYAABEWewARFn0AERZ/ABEWgQARFoQAERaFABEWhgARFocAERaIABEWigARFowAERaNABEWjgARFpAAERaRABEXDAARFw4AERcQABEXEgARFxUAERcWABEXFwARFxgAERcZABEXGwARFx0AERceABEXHwARFyEAERciABEXnQARF58AERehABEXowARF6YAERenABEXqAARF6kAEReqABEXrAARF64AERevABEXsAARF7IAERezABEYLgARGDAAERgyABEYNAARGDcAERg4ABEYOQARGDoAERg7ABEYPQARGD8AERhAABEYQQARGEMAERhEABEY1wARGPoAERkaABEZOgARGTwAERk+ABEZQAARGUIAERlFABEZRgARGUcAERlKABEZSwARGU0AERlOABEZUAARGVMAERlUABEZVQARGVgAERlZABEZXgARGXcAERmAABEZggARGYQAERmNABEZkAARGZMAERmVABEZ3gARGgIAERopABEaTQARGlAAERpSABEaVAARGlYAERpYABEaWgARGlsAERpeABEadwARGpgAERqaABEanAARGp4AERqgABEaogARGqQAERqmABEaqAARGskAERrMABEazwARGtIAERrVABEa2AARGtsAERreABEa4QARGuMAERteABEbYAARG2IAERtkABEbZwARG2gAERtpABEbagARG2sAERttABEbbwARG3AAERtxABEbcwARG3QAERvvABEb8QARG/MAERv1ABEb+AARG/kAERv6ABEb+wARG/wAERv+ABEcAAARHAEAERwCABEcBAARHAUAERyAABEcggARHIUAERyHABEcigARHIsAERyMABEcjQARHI4AERyQABEckgARHJMAERyUABEclgARHJcAERywABEcsQARHLIAERy0ABEdLwARHTEAER0zABEdNQARHTgAER05ABEdOgARHTsAER08ABEdPgARHUAAER1BABEdQgARHUQAER1FABEdwAARHcIAER3EABEdxgARHckAER3KABEdywARHcwAER3NABEdzwARHdEAER3SABEd0wARHdUAER3WABEeUQARHlMAER5VABEeVwARHloAER5bABEeXAARHl0AER5eABEeYAARHmIAER5jABEeZAARHmYAER5nABEe4gARHuQAER7mABEe6AARHusAER7sABEe7QARHu4AER7vABEe8QARHvMAER70ABEe9QARHvcAER74ABEfcwARH3UAER93ABEfeQARH3wAER99ABEffgARH38AER+AABEfggARH4QAER+FABEfhgARH4gAER+JABEf0gARH/YAESAdABEgQQARIEQAESBGABEgSAARIEoAESBMABEgTgARIE8AESBSABEgawARIIgAESCKABEgjAARII4AESCQABEgkgARIJQAESCWABEgswARILYAESC5ABEgvAARIL8AESDCABEgxQARIMgAESDKABEhRQARIUcAESFJABEhSwARIU4AESFPABEhUAARIVEAESFSABEhVAARIVYAESFXABEhWAARIVoAESFbABEh1gARIdgAESHaABEh3AARId8AESHgABEh4QARIeIAESHjABEh5QARIecAESHoABEh6QARIesAESHsABEiZwARImkAESJrABEibQARInAAESJxABEicgARInMAESJ0ABEidgARIngAESJ5ABEiegARInwAESJ9ABEi+AARIvoAESL8ABEi/gARIwEAESMCABEjAwARIwQAESMFABEjBwARIwkAESMKABEjCwARIw0AESMOABEjiQARI4sAESONABEjjwARI5IAESOTABEjlAARI5UAESOWABEjmAARI5oAESObABEjnAARI54AESOfABEkGgARJBwAESQeABEkIAARJCMAESQkABEkJQARJCYAESQnABEkKQARJCsAESQsABEkLQARJC8AESQwABEkqwARJK0AESSvABEksQARJLQAESS1ABEktgARJLcAESS4ABEkugARJLwAESS9ABEkvgARJMAAESTBABEk0gARJNMAESTVABElWAARJXwAESWgABElwwARJeoAESYKABEmMQARJlgAESZ4ABEmnAARJsAAESbCABEmxQARJscAESbJABEmywARJs4AESbRABEm0wARJtUAESbYABEm2gARJtwAESbfABEm4gARJuMAESbsABEnBQARJwoAEScMABEnEQARJxQAEScWABEnXwARJ4MAESeqABEnzgARJ9EAESfTABEn1QARJ9cAESfZABEn2wARJ9wAESffABEn+AARKB0AESgfABEoIQARKCMAESglABEoJwARKCkAESgrABEoLQARKC8AEShUABEoVwARKFoAEShdABEoYAARKGMAEShmABEoaQARKGwAEShvABEocQARKOwAESjuABEo8QARKPMAESj2ABEo9wARKPgAESj5ABEo+gARKPwAESj+ABEo/wARKQAAESkCABEpAwARKRQAESkVABEpFwARKZIAESmUABEplgARKZgAESmbABEpnAARKZ0AESmeABEpnwARKaEAESmjABEppAARKaUAESmnABEpqAARKiMAESolABEqKAARKioAESotABEqLgARKi8AESowABEqMQARKjMAESo1ABEqNgARKjcAESo5ABEqOgARKksAESpQABEqUwARKlUAESpmABEqbwARKnIAESp1ABEqdwARKooAESqVABErEAARKxIAESsUABErFgARKxkAESsaABErGwARKxwAESsdABErHwARKyEAESsiABErIwARKyUAESsmABEroQARK6MAESumABErqAARK6sAESusABErrQARK64AESuvABErsQARK7MAESu0ABErtQARK7cAESu4ABEryQARK8oAESvMABEsRwARLEkAESxLABEsTQARLFAAESxRABEsUgARLFMAESxUABEsVgARLFgAESxZABEsWgARLFwAESxdABEs2AARLNoAESzdABEs3wARLOIAESzjABEs5AARLOUAESzmABEs6AARLOoAESzrABEs7AARLO4AESzvABEtCAARLQkAES0KABEtDAARLYcAES2JABEtiwARLY0AES2QABEtkQARLZIAES2TABEtlAARLZYAES2YABEtmQARLZoAES2cABEtnQARLhgAES4aABEuHQARLh8AES4iABEuIwARLiQAES4lABEuJgARLigAES4qABEuKwARLiwAES4uABEuLwARLlYAES5vABEueAARLnsAES5+ABEuhwARLooAES6NABEujwARLqIAES81ABEvWAARL3gAES+YABEvmgARL5wAES+eABEvoAARL6MAES+kABEvpQARL6gAES+pABEvqwARL6wAES+uABEvsQARL7IAES+zABEvtgARL7cAES+8ABEv1QARL94AES/gABEv4gARL+sAES/uABEv8QARL/MAETA8ABEwYAARMIcAETCrABEwrgARMLAAETCyABEwtAARMLYAETC4ABEwuQARMLwAETDVABEw9gARMPgAETD6ABEw/AARMP4AETEAABExAgARMQQAETEGABExJwARMSoAETEtABExMAARMTMAETE2ABExOQARMTwAETE/ABExQQARMbwAETG+ABExwAARMcIAETHFABExxgARMccAETHIABExyQARMcsAETHNABExzgARMc8AETHRABEx0gARMk0AETJPABEyUQARMlMAETJWABEyVwARMlgAETJZABEyWgARMlwAETJeABEyXwARMmAAETJiABEyYwARMt4AETLgABEy4wARMuUAETLoABEy6QARMuoAETLrABEy7AARMu4AETLwABEy8QARMvIAETL0ABEy9QARMw4AETMPABEzEAARMxIAETONABEzjwARM5EAETOTABEzlgARM5cAETOYABEzmQARM5oAETOcABEzngARM58AETOgABEzogARM6MAETQeABE0IAARNCIAETQkABE0JwARNCgAETQpABE0KgARNCsAETQtABE0LwARNDAAETQxABE0MwARNDQAETSvABE0sQARNLMAETS1ABE0uAARNLkAETS6ABE0uwARNLwAETS+ABE0wAARNMEAETTCABE0xAARNMUAETVAABE1QgARNUQAETVGABE1SQARNUoAETVLABE1TAARNU0AETVPABE1UQARNVIAETVTABE1VQARNVYAETXRABE10wARNdUAETXXABE12gARNdsAETXcABE13QARNd4AETXgABE14gARNeMAETXkABE15gARNecAETYwABE2VAARNnsAETafABE2ogARNqQAETamABE2qAARNqoAETasABE2rQARNrAAETbJABE25gARNugAETbqABE27AARNu4AETbwABE28gARNvQAETcRABE3FAARNxcAETcaABE3HQARNyAAETcjABE3JgARNygAETejABE3pQARN6cAETepABE3rAARN60AETeuABE3rwARN7AAETeyABE3tAARN7UAETe2ABE3uAARN7kAETg0ABE4NgARODgAETg6ABE4PQAROD4AETg/ABE4QAAROEEAEThDABE4RQAROEYAEThHABE4SQAROEoAETjFABE4xwAROMkAETjLABE4zgAROM8AETjQABE40QARONIAETjUABE41gARONcAETjYABE42gARONsAETlWABE5WAAROVsAETldABE5YAAROWEAETliABE5YwAROWQAETlmABE5aAAROWkAETlqABE5bAAROW0AETnoABE56gAROewAETnuABE58QAROfIAETnzABE59AAROfUAETn3ABE5+QAROfoAETn7ABE5/QAROf4AETp5ABE6ewAROn0AETp/ABE6ggAROoMAETqEABE6hQAROoYAETqIABE6igAROosAETqMABE6jgAROo8AETsKABE7DAAROw4AETsQABE7EwAROxQAETsVABE7FgAROxcAETsZABE7GwAROxwAETsdABE7HwAROyAAETuzABE71gARO/YAETwWABE8GAARPBoAETwcABE8HgARPCEAETwiABE8IwARPCYAETwnABE8KQARPCoAETwsABE8LwARPDAAETwxABE8NAARPDUAETw6ABE8UwARPFwAETxeABE8YAARPGkAETxsABE8bwARPHEAETy6ABE83gARPQUAET0pABE9LAARPS4AET0wABE9MgARPTQAET02ABE9NwARPToAET1TABE9dAARPXYAET14ABE9egARPXwAET1+ABE9gAARPYIAET2EABE9pQARPagAET2rABE9rgARPbEAET20ABE9twARPboAET29ABE9vwARPjoAET48ABE+PgARPkAAET5DABE+RAARPkUAET5GABE+RwARPkkAET5LABE+TAARPk0AET5PABE+UAARPssAET7NABE+zwARPtEAET7UABE+1QARPtYAET7XABE+2AARPtoAET7cABE+3QARPt4AET7gABE+4QARP1wAET9eABE/YQARP2MAET9mABE/ZwARP2gAET9pABE/agARP2wAET9uABE/bwARP3AAET9yABE/cwARP4wAET+NABE/jgARP5AAEUALABFADQARQA8AEUARABFAFAARQBUAEUAWABFAFwARQBgAEUAaABFAHAARQB0AEUAeABFAIAARQCEAEUCcABFAngARQKAAEUCiABFApQARQKYAEUCnABFAqAARQKkAEUCrABFArQARQK4AEUCvABFAsQARQLIAEUEtABFBLwARQTEAEUEzABFBNgARQTcAEUE4ABFBOQARQToAEUE8ABFBPgARQT8AEUFAABFBQgARQUMAEUG+ABFBwAARQcIAEUHEABFBxwARQcgAEUHJABFBygARQcsAEUHNABFBzwARQdAAEUHRABFB0wARQdQAEUJPABFCUQARQlMAEUJVABFCWAARQlkAEUJaABFCWwARQlwAEUJeABFCYAARQmEAEUJiABFCZAARQmUAEUKuABFC0gARQvkAEUMdABFDIAARQyIAEUMkABFDJgARQygAEUMqABFDKwARQy4AEUNHABFDZAARQ2YAEUNoABFDagARQ2wAEUNuABFDcAARQ3IAEUOPABFDkgARQ5UAEUOYABFDmwARQ54AEUOhABFDpAARQ6YAEUQhABFEIwARRCUAEUQnABFEKgARRCsAEUQsABFELQARRC4AEUQwABFEMgARRDMAEUQ0ABFENgARRDcAEUSyABFEtAARRLYAEUS4ABFEuwARRLwAEUS9ABFEvgARRL8AEUTBABFEwwARRMQAEUTFABFExwARRMgAEUVDABFFRQARRUcAEUVJABFFTAARRU0AEUVOABFFTwARRVAAEUVSABFFVAARRVUAEUVWABFFWAARRVkAEUXUABFF1gARRdkAEUXbABFF3gARRd8AEUXgABFF4QARReIAEUXkABFF5gARRecAEUXoABFF6gARResAEUZmABFGaAARRmoAEUZsABFGbwARRnAAEUZxABFGcgARRnMAEUZ1ABFGdwARRngAEUZ5ABFGewARRnwAEUb3ABFG+QARRvsAEUb9ABFHAAARRwEAEUcCABFHAwARRwQAEUcGABFHCAARRwkAEUcKABFHDAARRw0AEUeIABFHigARR4wAEUeOABFHkQARR5IAEUeTABFHlAARR5UAEUeXABFHmQARR5oAEUebABFHnQARR54AEUevABFHsAARR7IAEUg1ABFIWQARSH0AEUigABFIxwARSOcAEUkOABFJNQARSVUAEUl5ABFJnQARSZ8AEUmiABFJpAARSaYAEUmoABFJqwARSa4AEUmwABFJsgARSbUAEUm3ABFJuQARSbwAEUm/ABFJwAARSckAEUniABFJ5wARSekAEUnuABFJ8QARSfMAEUo8ABFKYAARSocAEUqrABFKrgARSrAAEUqyABFKtAARSrYAEUq4ABFKuQARSrwAEUrVABFK+gARSvwAEUr+ABFLAAARSwIAEUsEABFLBgARSwgAEUsKABFLDAARSzEAEUs0ABFLNwARSzoAEUs9ABFLQAARS0MAEUtGABFLSQARS0wAEUtOABFLyQARS8sAEUvOABFL0AARS9MAEUvUABFL1QARS9YAEUvXABFL2QARS9sAEUvcABFL3QARS98AEUvgABFL8QARS/IAEUv0ABFMbwARTHEAEUxzABFMdQARTHgAEUx5ABFMegARTHsAEUx8ABFMfgARTIAAEUyBABFMggARTIQAEUyFABFNAAARTQIAEU0FABFNBwARTQoAEU0LABFNDAARTQ0AEU0OABFNEAARTRIAEU0TABFNFAARTRYAEU0XABFNKAARTS0AEU0wABFNMgARTUMAEU1MABFNTwARTVIAEU1UABFNcAARTYIAEU39ABFN/wARTgEAEU4DABFOBgARTgcAEU4IABFOCQARTgoAEU4MABFODgARTg8AEU4QABFOEgARThMAEU6OABFOkAARTpMAEU6VABFOmAARTpkAEU6aABFOmwARTpwAEU6eABFOoAARTqEAEU6iABFOpAARTqUAEU62ABFOtwARTrkAEU80ABFPNgARTzgAEU86ABFPPQARTz4AEU8/ABFPQAART0EAEU9DABFPRQART0YAEU9HABFPSQART0oAEU/FABFPxwART8oAEU/MABFPzwART9AAEU/RABFP0gART9MAEU/VABFP1wART9gAEU/ZABFP2wART9wAEU/1ABFP9gART/cAEU/5ABFQdAARUHYAEVB4ABFQegARUH0AEVB+ABFQfwARUIAAEVCBABFQgwARUIUAEVCGABFQhwARUIkAEVCKABFRBQARUQcAEVEKABFRDAARUQ8AEVEQABFREQARURIAEVETABFRFQARURcAEVEYABFRGQARURsAEVEcABFRMwARUUwAEVFdABFRYAARUWMAEVFmABFRaQARUXoAEVF9ABFRgAARUYMAEVGGABFRiAARUZ4AEVG6ABFRzAARUdoAEVJtABFSkAARUrAAEVLQABFS0gARUtQAEVLWABFS2AARUtsAEVLcABFS3QARUuAAEVLhABFS4wARUuQAEVLmABFS6QARUuoAEVLrABFS7gARUu8AEVL0ABFTDQARUxYAEVMYABFTGgARUyMAEVMmABFTKQARUysAEVN0ABFTmAARU78AEVPjABFT5gARU+gAEVPqABFT7AARU+4AEVPwABFT8QARU/QAEVQNABFULgARVDAAEVQyABFUNAARVDYAEVQ4ABFUOgARVDwAEVQ+ABFUXwARVGIAEVRlABFUaAARVGsAEVRuABFUcQARVHQAEVR3ABFUeQARVPQAEVT2ABFU+AARVPoAEVT9ABFU/gARVP8AEVUAABFVAQARVQMAEVUFABFVBgARVQcAEVUJABFVCgARVYUAEVWHABFViQARVYsAEVWOABFVjwARVZAAEVWRABFVkgARVZQAEVWWABFVlwARVZgAEVWaABFVmwARVhYAEVYYABFWGwARVh0AEVYgABFWIQARViIAEVYjABFWJAARViYAEVYoABFWKQARVioAEVYsABFWLQARVkYAEVZHABFWSAARVkoAEVbFABFWxwARVskAEVbLABFWzgARVs8AEVbQABFW0QARVtIAEVbUABFW1gARVtcAEVbYABFW2gARVtsAEVdWABFXWAARV1oAEVdcABFXXwARV2AAEVdhABFXYgARV2MAEVdlABFXZwARV2gAEVdpABFXawARV2wAEVfnABFX6QARV+sAEVftABFX8AARV/EAEVfyABFX8wARV/QAEVf2ABFX+AARV/kAEVf6ABFX/AARV/0AEVh4ABFYegARWHwAEVh+ABFYgQARWIIAEViDABFYhAARWIUAEViHABFYiQARWIoAEViLABFYjQARWI4AEVkJABFZCwARWQ0AEVkPABFZEgARWRMAEVkUABFZFQARWRYAEVkYABFZGgARWRsAEVkcABFZHgARWR8AEVloABFZjAARWbMAEVnXABFZ2gARWdwAEVneABFZ4AARWeIAEVnkABFZ5QARWegAEVoBABFaHgARWiAAEVoiABFaJAARWiYAEVooABFaKgARWiwAEVpJABFaTAARWk8AEVpSABFaVQARWlgAEVpbABFaXgARWmAAEVrbABFa3QARWt8AEVrhABFa5AARWuUAEVrmABFa5wARWugAEVrqABFa7AARWu0AEVruABFa8AARWvEAEVtsABFbbgARW3AAEVtyABFbdQARW3YAEVt3ABFbeAARW3kAEVt7ABFbfQARW34AEVt/ABFbgQARW4IAEVv9ABFb/wARXAEAEVwDABFcBgARXAcAEVwIABFcCQARXAoAEVwMABFcDgARXA8AEVwQABFcEgARXBMAEVyOABFckAARXJMAEVyVABFcmAARXJkAEVyaABFcmwARXJwAEVyeABFcoAARXKEAEVyiABFcpAARXKUAEV0gABFdIgARXSQAEV0mABFdKQARXSoAEV0rABFdLAARXS0AEV0vABFdMQARXTIAEV0zABFdNQARXTYAEV2xABFdswARXbUAEV23ABFdugARXbsAEV28ABFdvQARXb4AEV3AABFdwgARXcMAEV3EABFdxgARXccAEV5CABFeRAARXkYAEV5IABFeSwARXkwAEV5NABFeTgARXk8AEV5RABFeUwARXlQAEV5VABFeVwARXlgAEV7rABFfDgARXy4AEV9OABFfUAARX1IAEV9UABFfVgARX1kAEV9aABFfWwARX14AEV9fABFfYQARX2IAEV9kABFfZwARX2gAEV9pABFfbAARX20AEV92ABFfjwARX5gAEV+aABFfnAARX6UAEV+oABFfqwARX60AEV/2ABFgGgARYEEAEWBlABFgaAARYGoAEWBsABFgbgARYHAAEWByABFgcwARYHYAEWCPABFgsAARYLIAEWC0ABFgtgARYLgAEWC6ABFgvAARYL4AEWDAABFg4QARYOQAEWDnABFg6gARYO0AEWDwABFg8wARYPYAEWD5ABFg+wARYXYAEWF4ABFhegARYXwAEWF/ABFhgAARYYEAEWGCABFhgwARYYUAEWGHABFhiAARYYkAEWGLABFhjAARYgcAEWIJABFiCwARYg0AEWIQABFiEQARYhIAEWITABFiFAARYhYAEWIYABFiGQARYhoAEWIcABFiHQARYpgAEWKaABFinQARYp8AEWKiABFiowARYqQAEWKlABFipgARYqgAEWKqABFiqwARYqwAEWKuABFirwARYsgAEWLJABFiygARYswAEWNHABFjSQARY0sAEWNNABFjUAARY1EAEWNSABFjUwARY1QAEWNWABFjWAARY1kAEWNaABFjXAARY10AEWPYABFj2gARY9wAEWPeABFj4QARY+IAEWPjABFj5AARY+UAEWPnABFj6QARY+oAEWPrABFj7QARY+4AEWRpABFkawARZG0AEWRvABFkcgARZHMAEWR0ABFkdQARZHYAEWR4ABFkegARZHsAEWR8ABFkfgARZH8AEWT6ABFk/AARZP4AEWUAABFlAwARZQQAEWUFABFlBgARZQcAEWUJABFlCwARZQwAEWUNABFlDwARZRAAEWWLABFljQARZY8AEWWRABFllAARZZUAEWWWABFllwARZZgAEWWaABFlnAARZZ0AEWWeABFloAARZaEAEWXqABFmDgARZjUAEWZZABFmXAARZl4AEWZgABFmYgARZmQAEWZmABFmZwARZmoAEWaDABFmoAARZqIAEWakABFmpgARZqgAEWaqABFmrAARZq4AEWbLABFmzgARZtEAEWbUABFm1wARZtoAEWbdABFm4AARZuIAEWddABFnXwARZ2EAEWdjABFnZgARZ2cAEWdoABFnaQARZ2oAEWdsABFnbgARZ28AEWdwABFncgARZ3MAEWfuABFn8AARZ/IAEWf0ABFn9wARZ/gAEWf5ABFn+gARZ/sAEWf9ABFn/wARaAAAEWgBABFoAwARaAQAEWh/ABFogQARaIMAEWiFABFoiAARaIkAEWiKABFoiwARaIwAEWiOABFokAARaJEAEWiSABFolAARaJUAEWkQABFpEgARaRUAEWkXABFpGgARaRsAEWkcABFpHQARaR4AEWkgABFpIgARaSMAEWkkABFpJgARaScAEWmiABFppAARaaYAEWmoABFpqwARaawAEWmtABFprgARaa8AEWmxABFpswARabQAEWm1ABFptwARabgAEWozABFqNQARajcAEWo5ABFqPAARaj0AEWo+ABFqPwARakAAEWpCABFqRAARakUAEWpGABFqSAARakkAEWrEABFqxgARasgAEWrKABFqzQARas4AEWrPABFq0AARatEAEWrTABFq1QARatYAEWrXABFq2QARatoAEWttABFrkAARa7AAEWvQABFr0gARa9QAEWvWABFr2AARa9sAEWvcABFr3QARa+AAEWvhABFr4wARa+QAEWvmABFr6QARa+oAEWvrABFr7gARa+8AEWv4ABFsEQARbBoAEWwcABFsHgARbCcAEWwqABFsLQARbC8AEWx4ABFsnAARbMMAEWznABFs6gARbOwAEWzuABFs8AARbPIAEWz0ABFs9QARbPgAEW0RABFtMgARbTQAEW02ABFtOAARbToAEW08ABFtPgARbUAAEW1CABFtYwARbWYAEW1pABFtbAARbW8AEW1yABFtdQARbXgAEW17ABFtfQARbfgAEW36ABFt/AARbf4AEW4BABFuAgARbgMAEW4EABFuBQARbgcAEW4JABFuCgARbgsAEW4NABFuDgARbokAEW6LABFujQARbo8AEW6SABFukwARbpQAEW6VABFulgARbpgAEW6aABFumwARbpwAEW6eABFunwARbxoAEW8cABFvHwARbyEAEW8kABFvJQARbyYAEW8nABFvKAARbyoAEW8sABFvLQARby4AEW8wABFvMQARb0oAEW9LABFvTAARb04AEW/JABFvywARb80AEW/PABFv0gARb9MAEW/UABFv1QARb9YAEW/YABFv2gARb9sAEW/cABFv3gARb98AEXBaABFwXAARcF4AEXBgABFwYwARcGQAEXBlABFwZgARcGcAEXBpABFwawARcGwAEXBtABFwbwARcHAAEXDrABFw7QARcO8AEXDxABFw9AARcPUAEXD2ABFw9wARcPgAEXD6ABFw/AARcP0AEXD+ABFxAAARcQEAEXF8ABFxfgARcYAAEXGCABFxhQARcYYAEXGHABFxiAARcYkAEXGLABFxjQARcY4AEXGPABFxkQARcZIAEXINABFyDwARchEAEXITABFyFgARchcAEXIYABFyGQARchoAEXIcABFyHgARch8AEXIgABFyIgARciMAEXJsABFykAARcrcAEXLbABFy3gARcuAAEXLiABFy5AARcuYAEXLoABFy6QARcuwAEXMFABFzIgARcyQAEXMmABFzKAARcyoAEXMsABFzLgARczAAEXNNABFzUAARc1MAEXNWABFzWQARc1wAEXNfABFzYgARc2QAEXPfABFz4QARc+MAEXPlABFz6AARc+kAEXPqABFz6wARc+wAEXPuABFz8AARc/EAEXPyABFz9AARc/UAEXRwABF0cgARdHQAEXR2ABF0eQARdHoAEXR7ABF0fAARdH0AEXR/ABF0gQARdIIAEXSDABF0hQARdIYAEXUBABF1AwARdQUAEXUHABF1CgARdQsAEXUMABF1DQARdQ4AEXUQABF1EgARdRMAEXUUABF1FgARdRcAEXWSABF1lAARdZcAEXWZABF1nAARdZ0AEXWeABF1nwARdaAAEXWiABF1pAARdaUAEXWmABF1qAARdakAEXYkABF2JgARdigAEXYqABF2LQARdi4AEXYvABF2MAARdjEAEXYzABF2NQARdjYAEXY3ABF2OQARdjoAEXa1ABF2twARdrkAEXa7ABF2vgARdr8AEXbAABF2wQARdsIAEXbEABF2xgARdscAEXbIABF2ygARdssAEXdGABF3SAARd0oAEXdMABF3TwARd1AAEXdRABF3UgARd1MAEXdVABF3VwARd1gAEXdZABF3WwARd1wAEXfvABF4EgAReDIAEXhSABF4VAAReFYAEXhYABF4WgAReF0AEXheABF4XwAReGIAEXhjABF4ZQAReGYAEXhoABF4awAReGwAEXhtABF4cAAReHEAEXh2ABF4jwAReJgAEXiaABF4nAAReKUAEXioABF4qwAReK0AEXj2ABF5GgAReUEAEXllABF5aAAReWoAEXlsABF5bgAReXAAEXlyABF5cwAReXYAEXmPABF5sAARebIAEXm0ABF5tgARebgAEXm6ABF5vAAReb4AEXnAABF54QAReeQAEXnnABF56gARee0AEXnwABF58wARefYAEXn5ABF5+wARenYAEXp4ABF6egARenwAEXp/ABF6gAAReoEAEXqCABF6gwAReoUAEXqHABF6iAAReokAEXqLABF6jAARewcAEXsJABF7CwARew0AEXsQABF7EQARexIAEXsTABF7FAARexYAEXsYABF7GQARexoAEXscABF7HQARe5gAEXuaABF7nQARe58AEXuiABF7owARe6QAEXulABF7pgARe6gAEXuqABF7qwARe6wAEXuuABF7rwARe8gAEXvJABF7ygARe8wAEXxHABF8SQARfEsAEXxNABF8UAARfFEAEXxSABF8UwARfFQAEXxWABF8WAARfFkAEXxaABF8XAARfF0AEXzYABF82gARfNwAEXzeABF84QARfOIAEXzjABF85AARfOUAEXznABF86QARfOoAEXzrABF87QARfO4AEX1pABF9awARfW0AEX1vABF9cgARfXMAEX10ABF9dQARfXYAEX14ABF9egARfXsAEX18ABF9fgARfX8AEX36ABF9/AARff4AEX4AABF+AwARfgQAEX4FABF+BgARfgcAEX4JABF+CwARfgwAEX4NABF+DwARfhAAEX6LABF+jQARfo8AEX6RABF+lAARfpUAEX6WABF+lwARfpgAEX6aABF+nAARfp0AEX6eABF+oAARfqEAEX7qABF/DgARfzUAEX9ZABF/XAARf14AEX9gABF/YgARf2QAEX9mABF/ZwARf2oAEX+DABF/oAARf6IAEX+kABF/pgARf6gAEX+qABF/rAARf64AEX/LABF/zgARf9EAEX/UABF/1wARf9oAEX/dABF/4AARf+IAEYBdABGAXwARgGEAEYBjABGAZgARgGcAEYBoABGAaQARgGoAEYBsABGAbgARgG8AEYBwABGAcgARgHMAEYDuABGA8AARgPIAEYD0ABGA9wARgPgAEYD5ABGA+gARgPsAEYD9ABGA/wARgQAAEYEBABGBAwARgQQAEYF/ABGBgQARgYMAEYGFABGBiAARgYkAEYGKABGBiwARgYwAEYGOABGBkAARgZEAEYGSABGBlAARgZUAEYIQABGCEgARghUAEYIXABGCGgARghsAEYIcABGCHQARgh4AEYIgABGCIgARgiMAEYIkABGCJgARgicAEYKiABGCpAARgqYAEYKoABGCqwARgqwAEYKtABGCrgARgq8AEYKxABGCswARgrQAEYK1ABGCtwARgrgAEYMzABGDNQARgzcAEYM5ABGDPAARgz0AEYM+ABGDPwARg0AAEYNCABGDRAARg0UAEYNGABGDSAARg0kAEYPEABGDxgARg8gAEYPKABGDzQARg84AEYPPABGD0AARg9EAEYPTABGD1QARg9YAEYPXABGD2QARg9oAEYPrABGD7AARg+4AEYRxABGElQARhLkAEYTcABGFAwARhSMAEYVKABGFcQARhZEAEYW1ABGF2QARhdsAEYXeABGF4AARheIAEYXkABGF5wARheoAEYXsABGF7gARhfEAEYXzABGF9QARhfgAEYX7ABGF/AARhgEAEYYaABGGHwARhiEAEYYmABGGKQARhisAEYZ0ABGGmAARhr8AEYbjABGG5gARhugAEYbqABGG7AARhu4AEYbwABGG8QARhvQAEYcNABGHMgARhzQAEYc2ABGHOAARhzoAEYc8ABGHPgARh0AAEYdCABGHRAARh2kAEYdsABGHbwARh3IAEYd1ABGHeAARh3sAEYd+ABGHgQARh4QAEYeGABGIAQARiAMAEYgGABGICAARiAsAEYgMABGIDQARiA4AEYgPABGIEQARiBMAEYgUABGIFQARiBcAEYgYABGIKQARiCoAEYgsABGIpwARiKkAEYirABGIrQARiLAAEYixABGIsgARiLMAEYi0ABGItgARiLgAEYi5ABGIugARiLwAEYi9ABGJOAARiToAEYk9ABGJPwARiUIAEYlDABGJRAARiUUAEYlGABGJSAARiUoAEYlLABGJTAARiU4AEYlPABGJYAARiWEAEYljABGJ3gARieAAEYniABGJ5AARiecAEYnoABGJ6QARieoAEYnrABGJ7QARie8AEYnwABGJ8QARifMAEYn0ABGKbwARinEAEYp0ABGKdgARinkAEYp6ABGKewARinwAEYp9ABGKfwARioEAEYqCABGKgwARioUAEYqGABGKlwARipgAEYqaABGLFQARixcAEYsZABGLGwARix4AEYsfABGLIAARiyEAEYsiABGLJAARiyYAEYsnABGLKAARiyoAEYsrABGLpgARi6gAEYurABGLrQARi7AAEYuxABGLsgARi7MAEYu0ABGLtgARi7gAEYu5ABGLugARi7wAEYu9ABGL1gARi9cAEYvYABGL2gARjFUAEYxXABGMWQARjFsAEYxeABGMXwARjGAAEYxhABGMYgARjGQAEYxmABGMZwARjGgAEYxqABGMawARjOYAEYzoABGM6wARjO0AEYzwABGM8QARjPIAEYzzABGM9AARjPYAEYz4ABGM+QARjPoAEYz8ABGM/QARjS0AEY1GABGNTwARjVIAEY1VABGNXgARjWEAEY1kABGNZgARjXkAEY2DABGOFgARjjkAEY5ZABGOeQARjnsAEY59ABGOfwARjoEAEY6EABGOhQARjoYAEY6JABGOigARjowAEY6NABGOjwARjpIAEY6TABGOlAARjpcAEY6YABGOoQARjroAEY7DABGOxQARjscAEY7QABGO0wARjtYAEY7YABGPIQARj0UAEY9sABGPkAARj5MAEY+VABGPlwARj5kAEY+bABGPnQARj54AEY+hABGPugARj9sAEY/dABGP3wARj+EAEY/jABGP5QARj+cAEY/pABGP6wARkAwAEZAPABGQEgARkBUAEZAYABGQGwARkB4AEZAhABGQJAARkCYAEZChABGQowARkKUAEZCnABGQqgARkKsAEZCsABGQrQARkK4AEZCwABGQsgARkLMAEZC0ABGQtgARkLcAEZEyABGRNAARkTYAEZE4ABGROwARkTwAEZE9ABGRPgARkT8AEZFBABGRQwARkUQAEZFFABGRRwARkUgAEZHDABGRxQARkcgAEZHKABGRzQARkc4AEZHPABGR0AARkdEAEZHTABGR1QARkdYAEZHXABGR2QARkdoAEZHzABGR9AARkfUAEZH3ABGScgARknQAEZJ2ABGSeAARknsAEZJ8ABGSfQARkn4AEZJ/ABGSgQARkoMAEZKEABGShQARkocAEZKIABGTAwARkwUAEZMHABGTCQARkwwAEZMNABGTDgARkw8AEZMQABGTEgARkxQAEZMVABGTFgARkxgAEZMZABGTlAARk5YAEZOYABGTmgARk50AEZOeABGTnwARk6AAEZOhABGTowARk6UAEZOmABGTpwARk6kAEZOqABGUJQARlCcAEZQpABGUKwARlC4AEZQvABGUMAARlDEAEZQyABGUNAARlDYAEZQ3ABGUOAARlDoAEZQ7ABGUtgARlLgAEZS6ABGUvAARlL8AEZTAABGUwQARlMIAEZTDABGUxQARlMcAEZTIABGUyQARlMsAEZTMABGVFQARlTkAEZVgABGVhAARlYcAEZWJABGViwARlY0AEZWPABGVkQARlZIAEZWVABGVrgARlcsAEZXNABGVzwARldEAEZXTABGV1QARldcAEZXZABGV9gARlfkAEZX8ABGV/wARlgIAEZYFABGWCAARlgsAEZYNABGWiAARlooAEZaMABGWjgARlpEAEZaSABGWkwARlpQAEZaVABGWlwARlpkAEZaaABGWmwARlp0AEZaeABGXGQARlxsAEZcdABGXHwARlyIAEZcjABGXJAARlyUAEZcmABGXKAARlyoAEZcrABGXLAARly4AEZcvABGXqgARl6wAEZeuABGXsAARl7MAEZe0ABGXtQARl7YAEZe3ABGXuQARl7sAEZe8ABGXvQARl78AEZfAABGYOwARmD0AEZhAABGYQgARmEUAEZhGABGYRwARmEgAEZhJABGYSwARmE0AEZhOABGYTwARmFEAEZhSABGYzQARmM8AEZjRABGY0wARmNYAEZjXABGY2AARmNkAEZjaABGY3AARmN4AEZjfABGY4AARmOIAEZjjABGZXgARmWAAEZliABGZZAARmWcAEZloABGZaQARmWoAEZlrABGZbQARmW8AEZlwABGZcQARmXMAEZl0ABGZ7wARmfEAEZnzABGZ9QARmfgAEZn5ABGZ+gARmfsAEZn8ABGZ/gARmgAAEZoBABGaAgARmgQAEZoFABGamAARmrsAEZrbABGa+wARmv0AEZr/ABGbAQARmwMAEZsGABGbBwARmwgAEZsLABGbDAARmw4AEZsPABGbEQARmxQAEZsVABGbFgARmxkAEZsaABGbIwARmzwAEZtFABGbRwARm0kAEZtSABGbVQARm1gAEZtaABGbowARm8cAEZvuABGcEgARnBUAEZwXABGcGQARnBsAEZwdABGcHwARnCAAEZwjABGcPAARnF0AEZxfABGcYQARnGMAEZxlABGcZwARnGkAEZxrABGcbQARnI4AEZyRABGclAARnJcAEZyaABGcnQARnKAAEZyjABGcpgARnKgAEZ0jABGdJQARnScAEZ0pABGdLAARnS0AEZ0uABGdLwARnTAAEZ0yABGdNAARnTUAEZ02ABGdOAARnTkAEZ20ABGdtgARnbgAEZ26ABGdvQARnb4AEZ2/ABGdwAARncEAEZ3DABGdxQARncYAEZ3HABGdyQARncoAEZ5FABGeRwARnkoAEZ5MABGeTwARnlAAEZ5RABGeUgARnlMAEZ5VABGeVwARnlgAEZ5ZABGeWwARnlwAEZ51ABGedgARnncAEZ55ABGe9AARnvYAEZ74ABGe+gARnv0AEZ7+ABGe/wARnwAAEZ8BABGfAwARnwUAEZ8GABGfBwARnwkAEZ8KABGfhQARn4cAEZ+JABGfiwARn44AEZ+PABGfkAARn5EAEZ+SABGflAARn5YAEZ+XABGfmAARn5oAEZ+bABGgFgARoBgAEaAaABGgHAARoB8AEaAgABGgIQARoCIAEaAjABGgJQARoCcAEaAoABGgKQARoCsAEaAsABGgpwARoKkAEaCrABGgrQARoLAAEaCxABGgsgARoLMAEaC0ABGgtgARoLgAEaC5ABGgugARoLwAEaC9ABGhOAARoToAEaE8ABGhPgARoUEAEaFCABGhQwARoUQAEaFFABGhRwARoUkAEaFKABGhSwARoU0AEaFOABGhlwARobsAEaHiABGiBgARogkAEaILABGiDQARog8AEaIRABGiEwARohQAEaIXABGiMAARok0AEaJPABGiUQARolMAEaJVABGiVwARolkAEaJbABGieAARonsAEaJ+ABGigQARooQAEaKHABGiigARoo0AEaKPABGjCgARowwAEaMOABGjEAARoxMAEaMUABGjFQARoxYAEaMXABGjGQARoxsAEaMcABGjHQARox8AEaMgABGjmwARo50AEaOfABGjoQARo6QAEaOlABGjpgARo6cAEaOoABGjqgARo6wAEaOtABGjrgARo7AAEaOxABGkLAARpC4AEaQwABGkMgARpDUAEaQ2ABGkNwARpDgAEaQ5ABGkOwARpD0AEaQ+ABGkPwARpEEAEaRCABGkvQARpL8AEaTCABGkxAARpMcAEaTIABGkyQARpMoAEaTLABGkzQARpM8AEaTQABGk0QARpNMAEaTUABGlTwARpVEAEaVTABGlVQARpVgAEaVZABGlWgARpVsAEaVcABGlXgARpWAAEaVhABGlYgARpWQAEaVlABGl4AARpeIAEaXkABGl5gARpekAEaXqABGl6wARpewAEaXtABGl7wARpfEAEaXyABGl8wARpfUAEaX2ABGmcQARpnMAEaZ1ABGmdwARpnoAEaZ7ABGmfAARpn0AEaZ+ABGmgAARpoIAEaaDABGmhAARpoYAEaaHABGmmAARppkAEaabABGnHgARp0IAEadmABGniQARp7AAEafQABGn9wARqB4AEag+ABGoYgARqIYAEaiIABGoiwARqI0AEaiPABGokQARqJQAEaiXABGomQARqJsAEaieABGooAARqKIAEailABGoqAARqKkAEaiuABGoxwARqMwAEajOABGo0wARqNYAEajYABGpIQARqUUAEalsABGpkAARqZMAEamVABGplwARqZkAEambABGpnQARqZ4AEamhABGpugARqd8AEanhABGp4wARqeUAEannABGp6QARqesAEantABGp7wARqfEAEaoWABGqGQARqhwAEaofABGqIgARqiUAEaooABGqKwARqi4AEaoxABGqMwARqq4AEaqwABGqswARqrUAEaq4ABGquQARqroAEaq7ABGqvAARqr4AEarAABGqwQARqsIAEarEABGqxQARqtYAEarXABGq2QARq1QAEatWABGrWAARq1oAEatdABGrXgARq18AEatgABGrYQARq2MAEatlABGrZgARq2cAEatpABGragARq+UAEavnABGr6gARq+wAEavvABGr8AARq/EAEavyABGr8wARq/UAEav3ABGr+AARq/kAEav7ABGr/AARrA0AEawOABGsEAARrIsAEayNABGsjwARrJEAEayUABGslQARrJYAEayXABGsmAARrJoAEaycABGsnQARrJ4AEaygABGsoQARrRwAEa0eABGtIQARrSMAEa0mABGtJwARrSgAEa0pABGtKgARrSwAEa0uABGtLwARrTAAEa0yABGtMwARrUQAEa1FABGtRwARrcIAEa3EABGtxgARrcgAEa3LABGtzAARrc0AEa3OABGtzwARrdEAEa3TABGt1AARrdUAEa3XABGt2AARrlMAEa5VABGuWAARrloAEa5dABGuXgARrl8AEa5gABGuYQARrmMAEa5lABGuZgARrmcAEa5pABGuagARroMAEa6EABGuhQARrocAEa8CABGvBAARrwYAEa8IABGvCwARrwwAEa8NABGvDgARrw8AEa8RABGvEwARrxQAEa8VABGvFwARrxgAEa+TABGvlQARr5gAEa+aABGvnQARr54AEa+fABGvoAARr6EAEa+jABGvpQARr6YAEa+nABGvqQARr6oAEa/FABGv3gARr+cAEa/qABGv7QARr/YAEa/5ABGv/AARr/4AEbARABGwpAARsMcAEbDnABGxBwARsQkAEbELABGxDQARsQ8AEbESABGxEwARsRQAEbEXABGxGAARsRoAEbEbABGxHQARsSAAEbEhABGxIgARsSUAEbEmABGxKwARsUQAEbFNABGxTwARsVEAEbFaABGxXQARsWAAEbFiABGxqwARsc8AEbH2ABGyGgARsh0AEbIfABGyIQARsiMAEbIlABGyJwARsigAEbIrABGyRAARsmUAEbJnABGyaQARsmsAEbJtABGybwARsnEAEbJzABGydQARspYAEbKZABGynAARsp8AEbKiABGypQARsqgAEbKrABGyrgARsrAAEbMrABGzLQARsy8AEbMxABGzNAARszUAEbM2ABGzNwARszgAEbM6ABGzPAARsz0AEbM+ABGzQAARs0EAEbO8ABGzvgARs8AAEbPCABGzxQARs8YAEbPHABGzyAARs8kAEbPLABGzzQARs84AEbPPABGz0QARs9IAEbRNABG0TwARtFIAEbRUABG0VwARtFgAEbRZABG0WgARtFsAEbRdABG0XwARtGAAEbRhABG0YwARtGQAEbR9ABG0fgARtH8AEbSBABG0/AARtP4AEbUAABG1AgARtQUAEbUGABG1BwARtQgAEbUJABG1CwARtQ0AEbUOABG1DwARtREAEbUSABG1jQARtY8AEbWRABG1kwARtZYAEbWXABG1mAARtZkAEbWaABG1nAARtZ4AEbWfABG1oAARtaIAEbWjABG2HgARtiAAEbYiABG2JAARticAEbYoABG2KQARtioAEbYrABG2LQARti8AEbYwABG2MQARtjMAEbY0ABG2rwARtrEAEbazABG2tQARtrgAEba5ABG2ugARtrsAEba8ABG2vgARtsAAEbbBABG2wgARtsQAEbbFABG3QAARt0IAEbdEABG3RgARt0kAEbdKABG3SwARt0wAEbdNABG3TwARt1EAEbdSABG3UwARt1UAEbdWABG3nwARt8MAEbfqABG4DgARuBEAEbgTABG4FQARuBcAEbgZABG4GwARuBwAEbgfABG4OAARuFUAEbhXABG4WQARuFsAEbhdABG4XwARuGEAEbhjABG4gAARuIMAEbiGABG4iQARuIwAEbiPABG4kgARuJUAEbiXABG5EgARuRQAEbkWABG5GAARuRsAEbkcABG5HQARuR4AEbkfABG5IQARuSMAEbkkABG5JQARuScAEbkoABG5owARuaUAEbmnABG5qQARuawAEbmtABG5rgARua8AEbmwABG5sgARubQAEbm1ABG5tgARubgAEbm5ABG6NAARujYAEbo4ABG6OgARuj0AEbo+ABG6PwARukAAEbpBABG6QwARukUAEbpGABG6RwARukkAEbpKABG6xQARuscAEbrKABG6zAARus8AEbrQABG60QARutIAEbrTABG61QARutcAEbrYABG62QARutsAEbrcABG7VwARu1kAEbtbABG7XQARu2AAEbthABG7YgARu2MAEbtkABG7ZgARu2gAEbtpABG7agARu2wAEbttABG76AARu+oAEbvsABG77gARu/EAEbvyABG78wARu/QAEbv1ABG79wARu/kAEbv6ABG7+wARu/0AEbv+ABG8eQARvHsAEbx9ABG8fwARvIIAEbyDABG8hAARvIUAEbyGABG8iAARvIoAEbyLABG8jAARvI4AEbyPABG9IgARvUUAEb1lABG9hQARvYcAEb2JABG9iwARvY0AEb2QABG9kQARvZIAEb2VABG9lgARvZgAEb2ZABG9mwARvZ4AEb2fABG9oAARvaMAEb2kABG9qQARvcIAEb3LABG9zQARvc8AEb3YABG92wARvd4AEb3gABG+KQARvk0AEb50ABG+mAARvpsAEb6dABG+nwARvqEAEb6jABG+pQARvqYAEb6pABG+wgARvuMAEb7lABG+5wARvukAEb7rABG+7QARvu8AEb7xABG+8wARvxQAEb8XABG/GgARvx0AEb8gABG/IwARvyYAEb8pABG/LAARvy4AEb+pABG/qwARv60AEb+vABG/sgARv7MAEb+0ABG/tQARv7YAEb+4ABG/ugARv7sAEb+8ABG/vgARv78AEcA6ABHAPAARwD4AEcBAABHAQwARwEQAEcBFABHARgARwEcAEcBJABHASwARwEwAEcBNABHATwARwFAAEcDLABHAzQARwNAAEcDSABHA1QARwNYAEcDXABHA2AARwNkAEcDbABHA3QARwN4AEcDfABHA4QARwOIAEcD7ABHA/AARwP0AEcD/ABHBegARwXwAEcF+ABHBgAARwYMAEcGEABHBhQARwYYAEcGHABHBiQARwYsAEcGMABHBjQARwY8AEcGQABHCCwARwg0AEcIPABHCEQARwhQAEcIVABHCFgARwhcAEcIYABHCGgARwhwAEcIdABHCHgARwiAAEcIhABHCnAARwp4AEcKgABHCogARwqUAEcKmABHCpwARwqgAEcKpABHCqwARwq0AEcKuABHCrwARwrEAEcKyABHDLQARwy8AEcMxABHDMwARwzYAEcM3ABHDOAARwzkAEcM6ABHDPAARwz4AEcM/ABHDQAARw0IAEcNDABHDvgARw8AAEcPCABHDxAARw8cAEcPIABHDyQARw8oAEcPLABHDzQARw88AEcPQABHD0QARw9MAEcPUABHEHQARxEEAEcRoABHEjAARxI8AEcSRABHEkwARxJUAEcSXABHEmQARxJoAEcSdABHEtgARxNMAEcTVABHE1wARxNkAEcTbABHE3QARxN8AEcThABHE/gARxQEAEcUEABHFBwARxQoAEcUNABHFEAARxRMAEcUVABHFkAARxZIAEcWUABHFlgARxZkAEcWaABHFmwARxZwAEcWdABHFnwARxaEAEcWiABHFowARxaUAEcWmABHGIQARxiMAEcYlABHGJwARxioAEcYrABHGLAARxi0AEcYuABHGMAARxjIAEcYzABHGNAARxjYAEcY3ABHGsgARxrQAEca2ABHGuAARxrsAEca8ABHGvQARxr4AEca/ABHGwQARxsMAEcbEABHGxQARxscAEcbIABHHQwARx0UAEcdIABHHSgARx00AEcdOABHHTwARx1AAEcdRABHHUwARx1UAEcdWABHHVwARx1kAEcdaABHH1QARx9cAEcfZABHH2wARx94AEcffABHH4AARx+EAEcfiABHH5AARx+YAEcfnABHH6AARx+oAEcfrABHIZgARyGgAEchqABHIbAARyG8AEchwABHIcQARyHIAEchzABHIdQARyHcAEch4ABHIeQARyHsAEch8ABHI9wARyPkAEcj7ABHI/QARyQAAEckBABHJAgARyQMAEckEABHJBgARyQgAEckJABHJCgARyQwAEckNABHJHgARyR8AEckhABHJpAARycgAEcnsABHKDwARyjYAEcpWABHKfQARyqQAEcrEABHK6AARywwAEcsOABHLEQARyxMAEcsVABHLFwARyxoAEcsdABHLHwARyyEAEcskABHLJgARyygAEcsrABHLLgARyy8AEcs0ABHLTQARy1IAEctUABHLWQARy1wAEcteABHLpwARy8sAEcvyABHMFgARzBkAEcwbABHMHQARzB8AEcwhABHMIwARzCQAEcwnABHMQAARzGUAEcxnABHMaQARzGsAEcxtABHMbwARzHEAEcxzABHMdQARzHcAEcycABHMnwARzKIAEcylABHMqAARzKsAEcyuABHMsQARzLQAEcy3ABHMuQARzTQAEc02ABHNOQARzTsAEc0+ABHNPwARzUAAEc1BABHNQgARzUQAEc1GABHNRwARzUgAEc1KABHNSwARzVwAEc1dABHNXwARzdoAEc3cABHN3gARzeAAEc3jABHN5AARzeUAEc3mABHN5wARzekAEc3rABHN7AARze0AEc3vABHN8AARzmsAEc5tABHOcAARznIAEc51ABHOdgARzncAEc54ABHOeQARznsAEc59ABHOfgARzn8AEc6BABHOggARzpMAEc6UABHOlgARzxEAEc8TABHPFQARzxcAEc8aABHPGwARzxwAEc8dABHPHgARzyAAEc8iABHPIwARzyQAEc8mABHPJwARz6IAEc+kABHPpwARz6kAEc+sABHPrQARz64AEc+vABHPsAARz7IAEc+0ABHPtQARz7YAEc+4ABHPuQARz8oAEc/LABHPzQAR0EgAEdBKABHQTAAR0E4AEdBRABHQUgAR0FMAEdBUABHQVQAR0FcAEdBZABHQWgAR0FsAEdBdABHQXgAR0NkAEdDbABHQ3gAR0OAAEdDjABHQ5AAR0OUAEdDmABHQ5wAR0OkAEdDrABHQ7AAR0O0AEdDvABHQ8AAR0QkAEdEKABHRCwAR0Q0AEdGIABHRigAR0YwAEdGOABHRkQAR0ZIAEdGTABHRlAAR0ZUAEdGXABHRmQAR0ZoAEdGbABHRnQAR0Z4AEdIZABHSGwAR0h4AEdIgABHSIwAR0iQAEdIlABHSJgAR0icAEdIpABHSKwAR0iwAEdItABHSLwAR0jAAEdJFABHSXgAR0m8AEdJyABHSdQAR0ngAEdJ7ABHSjAAR0o8AEdKSABHSlQAR0pgAEdKaABHSsAAR0r4AEdLRABHS4wAR03YAEdOZABHTuQAR09kAEdPbABHT3QAR098AEdPhABHT5AAR0+UAEdPmABHT6QAR0+oAEdPsABHT7QAR0+8AEdPyABHT8wAR0/QAEdP3ABHT+AAR0/0AEdQWABHUHwAR1CEAEdQjABHULAAR1C8AEdQyABHUNAAR1H0AEdShABHUyAAR1OwAEdTvABHU8QAR1PMAEdT1ABHU9wAR1PkAEdT6ABHU/QAR1RYAEdU3ABHVOQAR1TsAEdU9ABHVPwAR1UEAEdVDABHVRQAR1UcAEdVoABHVawAR1W4AEdVxABHVdAAR1XcAEdV6ABHVfQAR1YAAEdWCABHV/QAR1f8AEdYBABHWAwAR1gYAEdYHABHWCAAR1gkAEdYKABHWDAAR1g4AEdYPABHWEAAR1hIAEdYTABHWjgAR1pAAEdaSABHWlAAR1pcAEdaYABHWmQAR1poAEdabABHWnQAR1p8AEdagABHWoQAR1qMAEdakABHXHwAR1yEAEdckABHXJgAR1ykAEdcqABHXKwAR1ywAEdctABHXLwAR1zEAEdcyABHXMwAR1zUAEdc2ABHXTwAR11AAEddRABHXUwAR184AEdfQABHX0gAR19QAEdfXABHX2AAR19kAEdfaABHX2wAR190AEdffABHX4AAR1+EAEdfjABHX5AAR2F8AEdhhABHYYwAR2GUAEdhoABHYaQAR2GoAEdhrABHYbAAR2G4AEdhwABHYcQAR2HIAEdh0ABHYdQAR2PAAEdjyABHY9AAR2PYAEdj5ABHY+gAR2PsAEdj8ABHY/QAR2P8AEdkBABHZAgAR2QMAEdkFABHZBgAR2YEAEdmDABHZhQAR2YcAEdmKABHZiwAR2YwAEdmNABHZjgAR2ZAAEdmSABHZkwAR2ZQAEdmWABHZlwAR2hIAEdoUABHaFgAR2hgAEdobABHaHAAR2h0AEdoeABHaHwAR2iEAEdojABHaJAAR2iUAEdonABHaKAAR2nEAEdqVABHavAAR2uAAEdrjABHa5QAR2ucAEdrpABHa6wAR2u0AEdruABHa8QAR2woAEdsnABHbKQAR2ysAEdstABHbLwAR2zEAEdszABHbNQAR21IAEdtVABHbWAAR21sAEdteABHbYQAR22QAEdtnABHbaQAR2+QAEdvmABHb6AAR2+oAEdvtABHb7gAR2+8AEdvwABHb8QAR2/MAEdv1ABHb9gAR2/cAEdv5ABHb+gAR3HUAEdx3ABHceQAR3HsAEdx+ABHcfwAR3IAAEdyBABHcggAR3IQAEdyGABHchwAR3IgAEdyKABHciwAR3QYAEd0IABHdCgAR3QwAEd0PABHdEAAR3REAEd0SABHdEwAR3RUAEd0XABHdGAAR3RkAEd0bABHdHAAR3ZcAEd2ZABHdnAAR3Z4AEd2hABHdogAR3aMAEd2kABHdpQAR3acAEd2pABHdqgAR3asAEd2tABHdrgAR3ikAEd4rABHeLQAR3i8AEd4yABHeMwAR3jQAEd41ABHeNgAR3jgAEd46ABHeOwAR3jwAEd4+ABHePwAR3roAEd68ABHevgAR3sAAEd7DABHexAAR3sUAEd7GABHexwAR3skAEd7LABHezAAR3s0AEd7PABHe0AAR30sAEd9NABHfTwAR31EAEd9UABHfVQAR31YAEd9XABHfWAAR31oAEd9cABHfXQAR314AEd9gABHfYQAR3/QAEeAXABHgNwAR4FcAEeBZABHgWwAR4F0AEeBfABHgYgAR4GMAEeBkABHgZwAR4GgAEeBqABHgawAR4G0AEeBwABHgcQAR4HIAEeB1ABHgdgAR4H8AEeCYABHgoQAR4KMAEeClABHgrgAR4LEAEeC0ABHgtgAR4P8AEeEjABHhSgAR4W4AEeFxABHhcwAR4XUAEeF3ABHheQAR4XsAEeF8ABHhfwAR4ZgAEeG5ABHhuwAR4b0AEeG/ABHhwQAR4cMAEeHFABHhxwAR4ckAEeHqABHh7QAR4fAAEeHzABHh9gAR4fkAEeH8ABHh/wAR4gIAEeIEABHifwAR4oEAEeKDABHihQAR4ogAEeKJABHiigAR4osAEeKMABHijgAR4pAAEeKRABHikgAR4pQAEeKVABHjEAAR4xIAEeMUABHjFgAR4xkAEeMaABHjGwAR4xwAEeMdABHjHwAR4yEAEeMiABHjIwAR4yUAEeMmABHjoQAR46MAEeOmABHjqAAR46sAEeOsABHjrQAR464AEeOvABHjsQAR47MAEeO0ABHjtQAR47cAEeO4ABHj0QAR49IAEePTABHj1QAR5FAAEeRSABHkVAAR5FYAEeRZABHkWgAR5FsAEeRcABHkXQAR5F8AEeRhABHkYgAR5GMAEeRlABHkZgAR5OEAEeTjABHk5QAR5OcAEeTqABHk6wAR5OwAEeTtABHk7gAR5PAAEeTyABHk8wAR5PQAEeT2ABHk9wAR5XIAEeV0ABHldgAR5XgAEeV7ABHlfAAR5X0AEeV+ABHlfwAR5YEAEeWDABHlhAAR5YUAEeWHABHliAAR5gMAEeYFABHmBwAR5gkAEeYMABHmDQAR5g4AEeYPABHmEAAR5hIAEeYUABHmFQAR5hYAEeYYABHmGQAR5pQAEeaWABHmmAAR5poAEeadABHmngAR5p8AEeagABHmoQAR5qMAEealABHmpgAR5qcAEeapABHmqgAR5vMAEecXABHnPgAR52IAEedlABHnZwAR52kAEedrABHnbQAR528AEedwABHncwAR54wAEeepABHnqwAR560AEeevABHnsQAR57MAEee1ABHntwAR59QAEefXABHn2gAR590AEefgABHn4wAR5+YAEefpABHn6wAR6GYAEehoABHoagAR6GwAEehvABHocAAR6HEAEehyABHocwAR6HUAEeh3ABHoeAAR6HkAEeh7ABHofAAR6PcAEej5ABHo+wAR6P0AEekAABHpAQAR6QIAEekDABHpBAAR6QYAEekIABHpCQAR6QoAEekMABHpDQAR6YgAEemKABHpjAAR6Y4AEemRABHpkgAR6ZMAEemUABHplQAR6ZcAEemZABHpmgAR6ZsAEemdABHpngAR6hkAEeobABHqHQAR6h8AEeoiABHqIwAR6iQAEeolABHqJgAR6igAEeoqABHqKwAR6iwAEeouABHqLwAR6qoAEeqsABHqrgAR6rAAEeqzABHqtAAR6rUAEeq2ABHqtwAR6rkAEeq7ABHqvAAR6r0AEeq/ABHqwAAR6zsAEes9ABHrQAAR60IAEetFABHrRgAR60cAEetIABHrSQAR60sAEetNABHrTgAR608AEetRABHrUgAR63EAEevsABHr7gAR6/AAEevyABHr9QAR6/YAEev3ABHr+AAR6/kAEev7ABHr/QAR6/4AEev/ABHsAQAR7AIAEeyVABHsuAAR7NgAEez4ABHs+gAR7PwAEez+ABHtAAAR7QMAEe0EABHtBQAR7QgAEe0JABHtCwAR7QwAEe0OABHtEQAR7RIAEe0TABHtFgAR7RcAEe0cABHtNQAR7T4AEe1AABHtQgAR7UsAEe1OABHtUQAR7VMAEe2cABHtwAAR7ecAEe4LABHuDgAR7hAAEe4SABHuFAAR7hYAEe4YABHuGQAR7hwAEe41ABHuVgAR7lgAEe5aABHuXAAR7l4AEe5gABHuYgAR7mQAEe5mABHuhwAR7ooAEe6NABHukAAR7pMAEe6WABHumQAR7pwAEe6fABHuoQAR7xwAEe8eABHvIAAR7yIAEe8lABHvJgAR7ycAEe8oABHvKQAR7ysAEe8tABHvLgAR7y8AEe8xABHvMgAR760AEe+vABHvsQAR77MAEe+2ABHvtwAR77gAEe+5ABHvugAR77wAEe++ABHvvwAR78AAEe/CABHvwwAR8D4AEfBAABHwQwAR8EUAEfBIABHwSQAR8EoAEfBLABH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BlgASAZcAEgISABICFAASAhYAEgIYABICGwASAhwAEgIdABICHgASAh8AEgIhABICIwASAiQAEgIlABICJwASAigAEgKjABICpQASAqcAEgKpABICrAASAq0AEgKuABICrwASArAAEgKyABICtAASArUAEgK2ABICuAASArkAEgM0ABIDNgASAzkAEgM7ABIDPgASAz8AEgNAABIDQQASA0IAEgNEABIDRgASA0cAEgNIABIDSgASA0sAEgPGABIDyAASA8oAEgPMABIDzwASA9AAEgPRABID0gASA9MAEgPVABID1wASA9gAEgPZABID2wASA9wAEgRXABIEWQASBFsAEgRdABIEYAASBGEAEgRiABIEYwASBGQAEgRmABIEaAASBGkAEgRqABIEbAASBG0AEgToABIE6gASBOwAEgTuABIE8QASBPIAEgTzABIE9AASBPUAEgT3ABIE+QASBPoAEgT7ABIE/QASBP4AEgUPABIFEAASBRIAEgWVABIFuQASBd0AEgYAABIGJwASBkcAEgZuABIGlQASBrUAEgbZABIG/QASBv8AEgcCABIHBAASBwYAEgcIABIHCwASBw4AEgcQABIHEgASBxUAEgcXABIHGQASBxwAEgcfABIHIAASByUAEgc+ABIHQwASB0UAEgdKABIHTQASB08AEgeYABIHvAASB+MAEggHABIICgASCAwAEggOABIIEAASCBIAEggUABIIFQASCBgAEggxABIIVgASCFgAEghaABIIXAASCF4AEghgABIIYgASCGQAEghmABIIaAASCI0AEgiQABIIkwASCJYAEgiZABIInAASCJ8AEgiiABIIpQASCKgAEgiqABIJJQASCScAEgkqABIJLAASCS8AEgkwABIJMQASCTIAEgkzABIJNQASCTcAEgk4ABIJOQASCTsAEgk8ABIJTQASCU4AEglQABIJywASCc0AEgnPABIJ0QASCdQAEgnVABIJ1gASCdcAEgnYABIJ2gASCdwAEgndABIJ3gASCeAAEgnhABIKXAASCl4AEgphABIKYwASCmYAEgpnABIKaAASCmkAEgpqABIKbAASCm4AEgpvABIKcAASCnIAEgpzABIKhAASCokAEgqMABIKjgASCp8AEgqkABIKpwASCqkAEgskABILJgASCygAEgsqABILLQASCy4AEgsvABILMAASCzEAEgszABILNQASCzYAEgs3ABILOQASCzoAEgu1ABILtwASC7oAEgu8ABILvwASC8AAEgvBABILwgASC8MAEgvFABILxwASC8gAEgvJABILywASC8wAEgvdABIL3gASC+AAEgxbABIMXQASDF8AEgxhABIMZAASDGUAEgxmABIMZwASDGgAEgxqABIMbAASDG0AEgxuABIMcAASDHEAEgzsABIM7gASDPEAEgzzABIM9gASDPcAEgz4ABIM+QASDPoAEgz8ABIM/gASDP8AEg0AABINAgASDQMAEg0cABINHQASDR4AEg0gABINmwASDZ0AEg2fABINoQASDaQAEg2lABINpgASDacAEg2oABINqgASDawAEg2tABINrgASDbAAEg2xABIOLAASDi4AEg4xABIOMwASDjYAEg43ABIOOAASDjkAEg46ABIOPAASDj4AEg4/ABIOQAASDkIAEg5DABIOVQASDm4AEg57ABIOfgASDoEAEg6EABIOkQASDpQAEg6XABIOmgASDpwAEg6wABIOvgASD1EAEg90ABIPlAASD7QAEg+2ABIPuAASD7oAEg+8ABIPvwASD8AAEg/BABIPxAASD8UAEg/HABIPyAASD8oAEg/NABIPzgASD88AEg/SABIP0wASD9gAEg/xABIP+gASD/wAEg/+ABIQBwASEAoAEhANABIQDwASEFgAEhB8ABIQowASEMcAEhDKABIQzAASEM4AEhDQABIQ0gASENQAEhDVABIQ2AASEPEAEhESABIRFAASERYAEhEYABIRGgASERwAEhEeABIRIAASESIAEhFDABIRRgASEUkAEhFMABIRTwASEVIAEhFVABIRWAASEVsAEhFdABIR2AASEdoAEhHcABIR3gASEeEAEhHiABIR4wASEeQAEhHlABIR5wASEekAEhHqABIR6wASEe0AEhHuABISaQASEmsAEhJtABISbwASEnIAEhJzABISdAASEnUAEhJ2ABISeAASEnoAEhJ7ABISfAASEn4AEhJ/ABIS+gASEvwAEhL/ABITAQASEwQAEhMFABITBgASEwcAEhMIABITCgASEwwAEhMNABITDgASExAAEhMRABITKgASEysAEhMsABITLgASE6kAEhOrABITrQASE68AEhOyABITswASE7QAEhO1ABITtgASE7gAEhO6ABITuwASE7wAEhO+ABITvwASFDoAEhQ8ABIUPgASFEAAEhRDABIURAASFEUAEhRGABIURwASFEkAEhRLABIUTAASFE0AEhRPABIUUAASFMsAEhTNABIUzwASFNEAEhTUABIU1QASFNYAEhTXABIU2AASFNoAEhTcABIU3QASFN4AEhTgABIU4QASFVwAEhVeABIVYAASFWIAEhVlABIVZgASFWcAEhVoABIVaQASFWsAEhVtABIVbgASFW8AEhVxABIVcgASFe0AEhXvABIV8QASFfMAEhX2ABIV9wASFfgAEhX5ABIV+gASFfwAEhX+ABIV/wASFgAAEhYCABIWAwASFkwAEhZwABIWlwASFrsAEha+ABIWwAASFsIAEhbEABIWxgASFsgAEhbJABIWzAASFuUAEhcCABIXBAASFwYAEhcIABIXCgASFwwAEhcOABIXEAASFy0AEhcwABIXMwASFzYAEhc5ABIXPAASFz8AEhdCABIXRAASF78AEhfBABIXwwASF8UAEhfIABIXyQASF8oAEhfLABIXzAASF84AEhfQABIX0QASF9IAEhfUABIX1QASGFAAEhhSABIYVAASGFYAEhhZABIYWgASGFsAEhhcABIYXQASGF8AEhhhABIYYgASGGMAEhhlABIYZgASGOEAEhjjABIY5QASGOcAEhjqABIY6wASGOwAEhjtABIY7gASGPAAEhjyABIY8wASGPQAEhj2ABIY9wASGXIAEhl0ABIZdwASGXkAEhl8ABIZfQASGX4AEhl/ABIZgAASGYIAEhmEABIZhQASGYYAEhmIABIZiQASGgQAEhoGABIaCAASGgoAEhoNABIaDgASGg8AEhoQABIaEQASGhMAEhoVABIaFgASGhcAEhoZABIaGgASGpUAEhqXABIamQASGpsAEhqeABIanwASGqAAEhqhABIaogASGqQAEhqmABIapwASGqgAEhqqABIaqwASGyYAEhsoABIbKgASGywAEhsvABIbMAASGzEAEhsyABIbMwASGzUAEhs3ABIbOAASGzkAEhs7ABIbPAASG88AEhvyABIcEgASHDIAEhw0ABIcNgASHDgAEhw6ABIcPQASHD4AEhw/ABIcQgASHEMAEhxFABIcRgASHEgAEhxLABIcTAASHE0AEhxQABIcUQASHFoAEhxzABIcfAASHH4AEhyAABIciQASHIwAEhyPABIckQASHNoAEhz+ABIdJQASHUkAEh1MABIdTgASHVAAEh1SABIdVAASHVYAEh1XABIdWgASHXMAEh2UABIdlgASHZgAEh2aABIdnAASHZ4AEh2gABIdogASHaQAEh3FABIdyAASHcsAEh3OABId0QASHdQAEh3XABId2gASHd0AEh3fABIeWgASHlwAEh5eABIeYAASHmMAEh5kABIeZQASHmYAEh5nABIeaQASHmsAEh5sABIebQASHm8AEh5wABIe6wASHu0AEh7vABIe8QASHvQAEh71ABIe9gASHvcAEh74ABIe+gASHvwAEh79ABIe/gASHwAAEh8BABIffAASH34AEh+BABIfgwASH4YAEh+HABIfiAASH4kAEh+KABIfjAASH44AEh+PABIfkAASH5IAEh+TABIfrAASH60AEh+uABIfsAASICsAEiAtABIgLwASIDEAEiA0ABIgNQASIDYAEiA3ABIgOAASIDoAEiA8ABIgPQASID4AEiBAABIgQQASILwAEiC+ABIgwAASIMIAEiDFABIgxgASIMcAEiDIABIgyQASIMsAEiDNABIgzgASIM8AEiDRABIg0gASIU0AEiFPABIhUQASIVMAEiFWABIhVwASIVgAEiFZABIhWgASIVwAEiFeABIhXwASIWAAEiFiABIhYwASId4AEiHgABIh4gASIeQAEiHnABIh6AASIekAEiHqABIh6wASIe0AEiHvABIh8AASIfEAEiHzABIh9AASIm8AEiJxABIicwASInUAEiJ4ABIieQASInoAEiJ7ABIifAASIn4AEiKAABIigQASIoIAEiKEABIihQASIs4AEiLyABIjGQASIz0AEiNAABIjQgASI0QAEiNGABIjSAASI0oAEiNLABIjTgASI2cAEiOEABIjhgASI4gAEiOKABIjjAASI44AEiOQABIjkgASI68AEiOyABIjtQASI7gAEiO7ABIjvgASI8EAEiPEABIjxgASJEEAEiRDABIkRQASJEcAEiRKABIkSwASJEwAEiRNABIkTgASJFAAEiRSABIkUwASJFQAEiRWABIkVwASJNIAEiTUABIk1gASJNgAEiTbABIk3AASJN0AEiTeABIk3wASJOEAEiTjABIk5AASJOUAEiTnABIk6AASJWMAEiVlABIlZwASJWkAEiVsABIlbQASJW4AEiVvABIlcAASJXIAEiV0ABIldQASJXYAEiV4ABIleQASJfQAEiX2ABIl+QASJfsAEiX+ABIl/wASJgAAEiYBABImAgASJgQAEiYGABImBwASJggAEiYKABImCwASJoYAEiaIABImigASJowAEiaPABImkAASJpEAEiaSABImkwASJpUAEiaXABImmAASJpkAEiabABImnAASJxcAEicZABInGwASJx0AEicgABInIQASJyIAEicjABInJAASJyYAEicoABInKQASJyoAEicsABInLQASJ6gAEieqABInrAASJ64AEiexABInsgASJ7MAEie0ABIntQASJ7cAEie5ABInugASJ7sAEie9ABInvgASKFEAEih0ABIolAASKLQAEii2ABIouAASKLoAEii8ABIovwASKMAAEijBABIoxAASKMUAEijHABIoyAASKMoAEijNABIozgASKM8AEijSABIo0wASKNgAEijxABIo+gASKPwAEij+ABIpBwASKQoAEikNABIpDwASKVgAEil8ABIpowASKccAEinKABIpzAASKc4AEinQABIp0gASKdQAEinVABIp2AASKfEAEioSABIqFAASKhYAEioYABIqGgASKhwAEioeABIqIAASKiIAEipDABIqRgASKkkAEipMABIqTwASKlIAEipVABIqWAASKlsAEipdABIq2AASKtoAEircABIq3gASKuEAEiriABIq4wASKuQAEirlABIq5wASKukAEirqABIq6wASKu0AEiruABIraQASK2sAEittABIrbwASK3IAEitzABIrdAASK3UAEit2ABIreAASK3oAEit7ABIrfAASK34AEit/ABIr+gASK/wAEiv/ABIsAQASLAQAEiwFABIsBgASLAcAEiwIABIsCgASLAwAEiwNABIsDgASLBAAEiwRABIsKgASLCsAEiwsABIsLgASLKkAEiyrABIsrQASLK8AEiyyABIsswASLLQAEiy1ABIstgASLLgAEiy6ABIsuwASLLwAEiy+ABIsvwASLToAEi08ABItPgASLUAAEi1DABItRAASLUUAEi1GABItRwASLUkAEi1LABItTAASLU0AEi1PABItUAASLcsAEi3NABItzwASLdEAEi3UABIt1QASLdYAEi3XABIt2AASLdoAEi3cABIt3QASLd4AEi3gABIt4QASLlwAEi5eABIuYAASLmIAEi5lABIuZgASLmcAEi5oABIuaQASLmsAEi5tABIubgASLm8AEi5xABIucgASLu0AEi7vABIu8QASLvMAEi72ABIu9wASLvgAEi75ABIu+gASLvwAEi7+ABIu/wASLwAAEi8CABIvAwASL0wAEi9wABIvlwASL7sAEi++ABIvwAASL8IAEi/EABIvxgASL8gAEi/JABIvzAASL+UAEjACABIwBAASMAYAEjAIABIwCgASMAwAEjAOABIwEAASMC0AEjAwABIwMwASMDYAEjA5ABIwPAASMD8AEjBCABIwRAASML8AEjDBABIwwwASMMUAEjDIABIwyQASMMoAEjDLABIwzAASMM4AEjDQABIw0QASMNIAEjDUABIw1QASMVAAEjFSABIxVAASMVYAEjFZABIxWgASMVsAEjFcABIxXQASMV8AEjFhABIxYgASMWMAEjFlABIxZgASMeEAEjHjABIx5QASMecAEjHqABIx6wASMewAEjHtABIx7gASMfAAEjHyABIx8wASMfQAEjH2ABIx9wASMnIAEjJ0ABIydwASMnkAEjJ8ABIyfQASMn4AEjJ/ABIygAASMoIAEjKEABIyhQASMoYAEjKIABIyiQASMwQAEjMGABIzCAASMwoAEjMNABIzDgASMw8AEjMQABIzEQASMxMAEjMVABIzFgASMxcAEjMZABIzGgASM5UAEjOXABIzmQASM5sAEjOeABIznwASM6AAEjOhABIzogASM6QAEjOmABIzpwASM6gAEjOqABIzqwASNCYAEjQoABI0KgASNCwAEjQvABI0MAASNDEAEjQyABI0MwASNDUAEjQ3ABI0OAASNDkAEjQ7ABI0PAASNE0AEjROABI0UAASNNMAEjT3ABI1GwASNT4AEjVlABI1hQASNawAEjXTABI18wASNhcAEjY7ABI2PQASNkAAEjZCABI2RAASNkYAEjZJABI2TAASNk4AEjZQABI2UwASNlUAEjZXABI2WgASNl0AEjZeABI2YwASNnwAEjaBABI2gwASNogAEjaLABI2jQASNtYAEjb6ABI3IQASN0UAEjdIABI3SgASN0wAEjdOABI3UAASN1IAEjdTABI3VgASN28AEjeUABI3lgASN5gAEjeaABI3nAASN54AEjegABI3ogASN6QAEjemABI3ywASN84AEjfRABI31AASN9cAEjfaABI33QASN+AAEjfjABI35gASN+gAEjhjABI4ZQASOGgAEjhqABI4bQASOG4AEjhvABI4cAASOHEAEjhzABI4dQASOHYAEjh3ABI4eQASOHoAEjiLABI4jAASOI4AEjkJABI5CwASOQ0AEjkPABI5EgASORMAEjkUABI5FQASORYAEjkYABI5GgASORsAEjkcABI5HgASOR8AEjmaABI5nAASOZ8AEjmhABI5pAASOaUAEjmmABI5pwASOagAEjmqABI5rAASOa0AEjmuABI5sAASObEAEjnCABI5xwASOcoAEjnMABI53QASOeIAEjnlABI55wASOewAEjpnABI6aQASOmsAEjptABI6cAASOnEAEjpyABI6cwASOnQAEjp2ABI6eAASOnkAEjp6ABI6fAASOn0AEjr4ABI6+gASOv0AEjr/ABI7AgASOwMAEjsEABI7BQASOwYAEjsIABI7CgASOwsAEjsMABI7DgASOw8AEjsgABI7IQASOyMAEjueABI7oAASO6IAEjukABI7pwASO6gAEjupABI7qgASO6sAEjutABI7rwASO7AAEjuxABI7swASO7QAEjwvABI8MQASPDQAEjw2ABI8OQASPDoAEjw7ABI8PAASPD0AEjw/ABI8QQASPEIAEjxDABI8RQASPEYAEjxfABI8YAASPGEAEjxjABI83gASPOAAEjziABI85AASPOcAEjzoABI86QASPOoAEjzrABI87QASPO8AEjzwABI88QASPPMAEjz0ABI9bwASPXEAEj10ABI9dgASPXkAEj16ABI9ewASPXwAEj19ABI9fwASPYEAEj2CABI9gwASPYUAEj2GABI9ngASPbcAEj3AABI9wwASPcYAEj3PABI90gASPdUAEj3XABI96gASPn0AEj6gABI+wAASPuAAEj7iABI+5AASPuYAEj7oABI+6wASPuwAEj7tABI+8AASPvEAEj7zABI+9AASPvYAEj75ABI++gASPvsAEj7+ABI+/wASPwQAEj8dABI/JgASPygAEj8qABI/MwASPzYAEj85ABI/OwASP4QAEj+oABI/zwASP/MAEj/2ABI/+AASP/oAEj/8ABI//gASQAAAEkABABJABAASQB0AEkA+ABJAQAASQEIAEkBEABJARgASQEgAEkBKABJATAASQE4AEkBvABJAcgASQHUAEkB4ABJAewASQH4AEkCBABJAhAASQIcAEkCJABJBBAASQQYAEkEIABJBCgASQQ0AEkEOABJBDwASQRAAEkERABJBEwASQRUAEkEWABJBFwASQRkAEkEaABJBlQASQZcAEkGZABJBmwASQZ4AEkGfABJBoAASQaEAEkGiABJBpAASQaYAEkGnABJBqAASQaoAEkGrABJCJgASQigAEkIrABJCLQASQjAAEkIxABJCMgASQjMAEkI0ABJCNgASQjgAEkI5ABJCOgASQjwAEkI9ABJCVgASQlcAEkJYABJCWgASQtUAEkLXABJC2QASQtsAEkLeABJC3wASQuAAEkLhABJC4gASQuQAEkLmABJC5wASQugAEkLqABJC6wASQ2YAEkNoABJDagASQ2wAEkNvABJDcAASQ3EAEkNyABJDcwASQ3UAEkN3ABJDeAASQ3kAEkN7ABJDfAASQ/cAEkP5ABJD+wASQ/0AEkQAABJEAQASRAIAEkQDABJEBAASRAYAEkQIABJECQASRAoAEkQMABJEDQASRIgAEkSKABJEjAASRI4AEkSRABJEkgASRJMAEkSUABJElQASRJcAEkSZABJEmgASRJsAEkSdABJEngASRRkAEkUbABJFHQASRR8AEkUiABJFIwASRSQAEkUlABJFJgASRSgAEkUqABJFKwASRSwAEkUuABJFLwASRXgAEkWcABJFwwASRecAEkXqABJF7AASRe4AEkXwABJF8gASRfQAEkX1ABJF+AASRhEAEkYuABJGMAASRjIAEkY0ABJGNgASRjgAEkY6ABJGPAASRlkAEkZcABJGXwASRmIAEkZlABJGaAASRmsAEkZuABJGcAASRusAEkbtABJG7wASRvEAEkb0ABJG9QASRvYAEkb3ABJG+AASRvoAEkb8ABJG/QASRv4AEkcAABJHAQASR3wAEkd+ABJHgAASR4IAEkeFABJHhgASR4cAEkeIABJHiQASR4sAEkeNABJHjgASR48AEkeRABJHkgASSA0AEkgPABJIEQASSBMAEkgWABJIFwASSBgAEkgZABJIGgASSBwAEkgeABJIHwASSCAAEkgiABJIIwASSJ4AEkigABJIogASSKQAEkinABJIqAASSKkAEkiqABJIqwASSK0AEkivABJIsAASSLEAEkizABJItAASSS8AEkkxABJJMwASSTUAEkk4ABJJOQASSToAEkk7ABJJPAASST4AEklAABJJQQASSUIAEklEABJJRQASScAAEknCABJJxQASSccAEknKABJJywASScwAEknNABJJzgASSdAAEknSABJJ0wASSdQAEknWABJJ1wASSe8AEkpqABJKbAASSm4AEkpwABJKcwASSnQAEkp1ABJKdgASSncAEkp5ABJKewASSnwAEkp9ABJKfwASSoAAEksTABJLNgASS1YAEkt2ABJLeAASS3oAEkt8ABJLfgASS4EAEkuCABJLgwASS4YAEkuHABJLiQASS4oAEkuMABJLjwASS5AAEkuRABJLlAASS5UAEkuaABJLswASS7wAEku+ABJLwAASS8kAEkvMABJLzwASS9EAEkwaABJMPgASTGUAEkyJABJMjAASTI4AEkyQABJMkgASTJQAEkyWABJMlwASTJoAEkyzABJM1AASTNYAEkzYABJM2gASTNwAEkzeABJM4AASTOIAEkzkABJNBQASTQgAEk0LABJNDgASTREAEk0UABJNFwASTRoAEk0dABJNHwASTZoAEk2cABJNngASTaAAEk2jABJNpAASTaUAEk2mABJNpwASTakAEk2rABJNrAASTa0AEk2vABJNsAASTisAEk4tABJOLwASTjEAEk40ABJONQASTjYAEk43ABJOOAASTjoAEk48ABJOPQASTj4AEk5AABJOQQASTrwAEk6+ABJOwQASTsMAEk7GABJOxwASTsgAEk7JABJOygASTswAEk7OABJOzwASTtAAEk7SABJO0wASTuwAEk7tABJO7gASTvAAEk9rABJPbQAST28AEk9xABJPdAAST3UAEk92ABJPdwAST3gAEk96ABJPfAAST30AEk9+ABJPgAAST4EAEk/8ABJP/gASUAAAElACABJQBQASUAYAElAHABJQCAASUAkAElALABJQDQASUA4AElAPABJQEQASUBIAElCNABJQjwASUJEAElCTABJQlgASUJcAElCYABJQmQASUJoAElCcABJQngASUJ8AElCgABJQogASUKMAElEeABJRIAASUSIAElEkABJRJwASUSgAElEpABJRKgASUSsAElEtABJRLwASUTAAElExABJRMwASUTQAElGvABJRsQASUbMAElG1ABJRuAASUbkAElG6ABJRuwASUbwAElG+ABJRwAASUcEAElHCABJRxAASUcUAElIOABJSMgASUlkAElJ9ABJSgAASUoIAElKEABJShgASUogAElKKABJSiwASUo4AElKnABJSxAASUsYAElLIABJSygASUswAElLOABJS0AASUtIAElLvABJS8gASUvUAElL4ABJS+wASUv4AElMBABJTBAASUwYAElOBABJTgwASU4UAElOHABJTigASU4sAElOMABJTjQASU44AElOQABJTkgASU5MAElOUABJTlgASU5cAElQSABJUFAASVBYAElQYABJUGwASVBwAElQdABJUHgASVB8AElQhABJUIwASVCQAElQlABJUJwASVCgAElSjABJUpQASVKcAElSpABJUrAASVK0AElSuABJUrwASVLAAElSyABJUtAASVLUAElS2ABJUuAASVLkAElU0ABJVNgASVTkAElU7ABJVPgASVT8AElVAABJVQQASVUIAElVEABJVRgASVUcAElVIABJVSgASVUsAElXGABJVyAASVcoAElXMABJVzwASVdAAElXRABJV0gASVdMAElXVABJV1wASVdgAElXZABJV2wASVdwAElZXABJWWQASVlsAElZdABJWYAASVmEAElZiABJWYwASVmQAElZmABJWaAASVmkAElZqABJWbAASVm0AElboABJW6gASVuwAElbuABJW8QASVvIAElbzABJW9AASVvUAElb3ABJW+QASVvoAElb7ABJW/QASVv4AElcPABJXEAASVxIAEleVABJXuQASV90AElgAABJYJwASWEcAElhuABJYlQASWLUAEljZABJY/QASWP8AElkCABJZBAASWQYAElkIABJZCwASWQ4AElkQABJZEgASWRUAElkXABJZGQASWRwAElkfABJZIAASWSUAElk+ABJZQwASWUUAEllKABJZTQASWU8AElmYABJZvAASWeMAEloHABJaCgASWgwAEloOABJaEAASWhIAEloUABJaFQASWhgAEloxABJaVgASWlgAElpaABJaXAASWl4AElpgABJaYgASWmQAElpmABJaaAASWo0AElqQABJakwASWpYAElqZABJanAASWp8AElqiABJapQASWqgAElqqABJbJQASWycAElsqABJbLAASWy8AElswABJbMQASWzIAElszABJbNQASWzcAEls4ABJbOQASWzsAEls8ABJbTQASW04AEltQABJbywASW80AElvPABJb0QASW9QAElvVABJb1gASW9cAElvYABJb2gASW9wAElvdABJb3gASW+AAElvhABJcXAASXF4AElxhABJcYwASXGYAElxnABJcaAASXGkAElxqABJcbAASXG4AElxvABJccAASXHIAElxzABJchAASXIUAElyHABJdAgASXQQAEl0GABJdCAASXQsAEl0MABJdDQASXQ4AEl0PABJdEQASXRMAEl0UABJdFQASXRcAEl0YABJdkwASXZUAEl2YABJdmgASXZ0AEl2eABJdnwASXaAAEl2hABJdowASXaUAEl2mABJdpwASXakAEl2qABJduwASXbwAEl2+ABJeOQASXjsAEl49ABJePwASXkIAEl5DABJeRAASXkUAEl5GABJeSAASXkoAEl5LABJeTAASXk4AEl5PABJeygASXswAEl7PABJe0QASXtQAEl7VABJe1gASXtcAEl7YABJe2gASXtwAEl7dABJe3gASXuAAEl7hABJe+gASXvsAEl78ABJe/gASX3kAEl97ABJffQASX38AEl+CABJfgwASX4QAEl+FABJfhgASX4gAEl+KABJfiwASX4wAEl+OABJfjwASYAoAEmAMABJgDwASYBEAEmAUABJgFQASYBYAEmAXABJgGAASYBoAEmAcABJgHQASYB4AEmAgABJgIQASYC8AEmBIABJgXQASYGAAEmBjABJgZgASYGkAEmBsABJggQASYIQAEmCHABJgigASYI0AEmCQABJgkgASYJgAEmCrABJgvwASYNEAEmDrABJhfgASYaEAEmHBABJh4QASYeMAEmHlABJh5wASYekAEmHsABJh7QASYe4AEmHxABJh8gASYfQAEmH1ABJh9wASYfoAEmH7ABJh/AASYf8AEmIAABJiBQASYh4AEmInABJiKQASYisAEmI0ABJiNwASYjoAEmI8ABJihQASYqkAEmLQABJi9AASYvcAEmL5ABJi+wASYv0AEmL/ABJjAQASYwIAEmMFABJjHgASYz8AEmNBABJjQwASY0UAEmNHABJjSQASY0sAEmNNABJjTwASY3AAEmNzABJjdgASY3kAEmN8ABJjfwASY4IAEmOFABJjiAASY4oAEmQFABJkBwASZAkAEmQLABJkDgASZA8AEmQQABJkEQASZBIAEmQUABJkFgASZBcAEmQYABJkGgASZBsAEmSWABJkmAASZJoAEmScABJknwASZKAAEmShABJkogASZKMAEmSlABJkpwASZKgAEmSpABJkqwASZKwAEmUnABJlKQASZSwAEmUuABJlMQASZTIAEmUzABJlNAASZTUAEmU3ABJlOQASZToAEmU7ABJlPQASZT4AEmVXABJlWAASZVkAEmVbABJl1gASZdgAEmXaABJl3AASZd8AEmXgABJl4QASZeIAEmXjABJl5QASZecAEmXoABJl6QASZesAEmXsABJmZwASZmkAEmZrABJmbQASZnAAEmZxABJmcgASZnMAEmZ0ABJmdgASZngAEmZ5ABJmegASZnwAEmZ9ABJm+AASZvoAEmb8ABJm/gASZwEAEmcCABJnAwASZwQAEmcFABJnBwASZwkAEmcKABJnCwASZw0AEmcOABJniQASZ4sAEmeNABJnjwASZ5IAEmeTABJnlAASZ5UAEmeWABJnmAASZ5oAEmebABJnnAASZ54AEmefABJoGgASaBwAEmgeABJoIAASaCMAEmgkABJoJQASaCYAEmgnABJoKQASaCsAEmgsABJoLQASaC8AEmgwABJoeQASaJ0AEmjEABJo6AASaOsAEmjtABJo7wASaPEAEmjzABJo9QASaPYAEmj5ABJpEgASaS8AEmkxABJpMwASaTUAEmk3ABJpOQASaTsAEmk9ABJpWgASaV0AEmlgABJpYwASaWYAEmlpABJpbAASaW8AEmlxABJp7AASae4AEmnwABJp8gASafUAEmn2ABJp9wASafgAEmn5ABJp+wASaf0AEmn+ABJp/wASagEAEmoCABJqfQASan8AEmqBABJqgwASaoYAEmqHABJqiAASaokAEmqKABJqjAASao4AEmqPABJqkAASapIAEmqTABJrDgASaxAAEmsSABJrFAASaxcAEmsYABJrGQASaxoAEmsbABJrHQASax8AEmsgABJrIQASayMAEmskABJrnwASa6EAEmukABJrpgASa6kAEmuqABJrqwASa6wAEmutABJrrwASa7EAEmuyABJrswASa7UAEmu2ABJsMQASbDMAEmw1ABJsNwASbDoAEmw7ABJsPAASbD0AEmw+ABJsQAASbEIAEmxDABJsRAASbEYAEmxHABJswgASbMQAEmzGABJsyAASbMsAEmzMABJszQASbM4AEmzPABJs0QASbNMAEmzUABJs1QASbNcAEmzYABJtUwASbVUAEm1XABJtWQASbVwAEm1dABJtXgASbV8AEm1gABJtYgASbWQAEm1lABJtZgASbWgAEm1pABJt/AASbh8AEm4/ABJuXwASbmEAEm5jABJuZQASbmcAEm5qABJuawASbmwAEm5vABJucAASbnIAEm5zABJudQASbngAEm55ABJuegASbn0AEm5+ABJugwASbpwAEm6lABJupwASbqkAEm6yABJutQASbrgAEm66ABJvAwASbycAEm9OABJvcgASb3UAEm93ABJveQASb3sAEm99ABJvfwASb4AAEm+DABJvnAASb70AEm+/ABJvwQASb8MAEm/FABJvxwASb8kAEm/LABJvzQASb+4AEm/xABJv9AASb/cAEm/6ABJv/QAScAAAEnADABJwBgAScAgAEnCDABJwhQAScIcAEnCJABJwjAAScI0AEnCOABJwjwAScJAAEnCSABJwlAAScJUAEnCWABJwmAAScJkAEnEUABJxFgAScRgAEnEaABJxHQAScR4AEnEfABJxIAAScSEAEnEjABJxJQAScSYAEnEnABJxKQAScSoAEnGlABJxpwAScaoAEnGsABJxrwAScbAAEnGxABJxsgAScbMAEnG1ABJxtwAScbgAEnG5ABJxuwAScbwAEnHVABJx1gAScdcAEnHZABJyVAASclYAEnJYABJyWgAScl0AEnJeABJyXwAScmAAEnJhABJyYwAScmUAEnJmABJyZwAScmkAEnJqABJy5QAScucAEnLpABJy6wAScu4AEnLvABJy8AAScvEAEnLyABJy9AAScvYAEnL3ABJy+AAScvoAEnL7ABJzdgASc3gAEnN6ABJzfAASc38AEnOAABJzgQASc4IAEnODABJzhQASc4cAEnOIABJziQASc4sAEnOMABJ0BwASdAkAEnQLABJ0DQASdBAAEnQRABJ0EgASdBMAEnQUABJ0FgASdBgAEnQZABJ0GgASdBwAEnQdABJ0mAASdJoAEnScABJ0ngASdKEAEnSiABJ0owASdKQAEnSlABJ0pwASdKkAEnSqABJ0qwASdK0AEnSuABJ09wASdRsAEnVCABJ1ZgASdWkAEnVrABJ1bQASdW8AEnVxABJ1cwASdXQAEnV3ABJ1kAASda0AEnWvABJ1sQASdbMAEnW1ABJ1twASdbkAEnW7ABJ12AASddsAEnXeABJ14QASdeQAEnXnABJ16gASde0AEnXvABJ2agASdmwAEnZuABJ2cAASdnMAEnZ0ABJ2dQASdnYAEnZ3ABJ2eQASdnsAEnZ8ABJ2fQASdn8AEnaAABJ2+wASdv0AEnb/ABJ3AQASdwQAEncFABJ3BgASdwcAEncIABJ3CgASdwwAEncNABJ3DgASdxAAEncRABJ3jAASd44AEneQABJ3kgASd5UAEneWABJ3lwASd5gAEneZABJ3mwASd50AEneeABJ3nwASd6EAEneiABJ4HQASeB8AEngiABJ4JAASeCcAEngoABJ4KQASeCoAEngrABJ4LQASeC8AEngwABJ4MQASeDMAEng0ABJ4rwASeLEAEnizABJ4tQASeLgAEni5ABJ4ugASeLsAEni8ABJ4vgASeMAAEnjBABJ4wgASeMQAEnjFABJ5QAASeUIAEnlFABJ5RwASeUoAEnlLABJ5TAASeU0AEnlOABJ5UAASeVIAEnlTABJ5VAASeVYAEnlXABJ5dgASefEAEnnzABJ59QASefcAEnn6ABJ5+wASefwAEnn9ABJ5/gASegAAEnoCABJ6AwASegQAEnoGABJ6BwASepoAEnq9ABJ63QASev0AEnr/ABJ7AQASewMAEnsFABJ7CAASewkAEnsKABJ7DQASew4AEnsQABJ7EQASexMAEnsWABJ7FwASexgAEnsbABJ7HAASeyEAEns6ABJ7QwASe0UAEntHABJ7UAASe1MAEntWABJ7WAASe6EAEnvFABJ77AASfBAAEnwTABJ8FQASfBcAEnwZABJ8GwASfB0AEnweABJ8IQASfDoAEnxbABJ8XQASfF8AEnxhABJ8YwASfGUAEnxnABJ8aQASfGsAEnyMABJ8jwASfJIAEnyVABJ8mAASfJsAEnyeABJ8oQASfKQAEnymABJ9IQASfSMAEn0lABJ9JwASfSoAEn0rABJ9LAASfS0AEn0uABJ9MAASfTIAEn0zABJ9NAASfTYAEn03ABJ9sgASfbQAEn22ABJ9uAASfbsAEn28ABJ9vQASfb4AEn2/ABJ9wQASfcMAEn3EABJ9xQASfccAEn3IABJ+QwASfkUAEn5IABJ+SgASfk0AEn5OABJ+TwASflAAEn5RABJ+UwASflUAEn5WABJ+VwASflkAEn5aABJ+cwASfnQAEn51ABJ+dwASfvIAEn70ABJ+9gASfvgAEn77ABJ+/AASfv0AEn7+ABJ+/wASfwEAEn8DABJ/BAASfwUAEn8HABJ/CAASf4MAEn+FABJ/hwASf4kAEn+MABJ/jQASf44AEn+PABJ/kAASf5IAEn+UABJ/lQASf5YAEn+YABJ/mQASgBQAEoAWABKAGAASgBoAEoAdABKAHgASgB8AEoAgABKAIQASgCMAEoAlABKAJgASgCcAEoApABKAKgASgKUAEoCnABKAqQASgKsAEoCuABKArwASgLAAEoCxABKAsgASgLQAEoC2ABKAtwASgLgAEoC6ABKAuwASgTYAEoE4ABKBOgASgTwAEoE/ABKBQAASgUEAEoFCABKBQwASgUUAEoFHABKBSAASgUkAEoFLABKBTAASgZUAEoG5ABKB4AASggQAEoIHABKCCQASggsAEoINABKCDwASghEAEoISABKCFQASgi4AEoJLABKCTQASgk8AEoJRABKCUwASglUAEoJXABKCWQASgnYAEoJ5ABKCfAASgn8AEoKCABKChQASgogAEoKLABKCjQASgwgAEoMKABKDDAASgw4AEoMRABKDEgASgxMAEoMUABKDFQASgxcAEoMZABKDGgASgxsAEoMdABKDHgASg5kAEoObABKDnQASg58AEoOiABKDowASg6QAEoOlABKDpgASg6gAEoOqABKDqwASg6wAEoOuABKDrwAShCoAEoQsABKELgAShDAAEoQzABKENAAShDUAEoQ2ABKENwAShDkAEoQ7ABKEPAAShD0AEoQ/ABKEQAAShLsAEoS9ABKEvwAShMEAEoTEABKExQAShMYAEoTHABKEyAAShMoAEoTMABKEzQAShM4AEoTQABKE0QAShUwAEoVOABKFUAAShVIAEoVVABKFVgAShVcAEoVYABKFWQAShVsAEoVdABKFXgAShV8AEoVhABKFYgAShd0AEoXfABKF4QASheMAEoXmABKF5wAShegAEoXpABKF6gAShewAEoXuABKF7wAShfAAEoXyABKF8wAShm4AEoZwABKGcgAShnQAEoZ3ABKGeAAShnkAEoZ6ABKGewAShn0AEoZ/ABKGgAAShoEAEoaDABKGhAAShxcAEoc6ABKHWgASh3oAEod8ABKHfgASh4AAEoeCABKHhQASh4YAEoeHABKHigASh4sAEoeNABKHjgASh5AAEoeTABKHlAASh5UAEoeYABKHmQASh54AEoe3ABKHwAASh8IAEofEABKHzQASh9AAEofTABKH1QASiB4AEohCABKIaQASiI0AEoiQABKIkgASiJQAEoiWABKImAASiJoAEoibABKIngASiLcAEojYABKI2gASiNwAEojeABKI4AASiOIAEojkABKI5gASiOgAEokJABKJDAASiQ8AEokSABKJFQASiRgAEokbABKJHgASiSEAEokjABKJngASiaAAEomiABKJpAASiacAEomoABKJqQASiaoAEomrABKJrQASia8AEomwABKJsQASibMAEom0ABKKLwASijEAEoozABKKNQASijgAEoo5ABKKOgASijsAEoo8ABKKPgASikAAEopBABKKQgASikQAEopFABKKwAASisIAEorFABKKxwASisoAEorLABKKzAASis0AEorOABKK0AASitIAEorTABKK1AASitYAEorXABKK8AASivEAEoryABKK9AASi28AEotxABKLcwASi3UAEot4ABKLeQASi3oAEot7ABKLfAASi34AEouAABKLgQASi4IAEouEABKLhQASjAAAEowCABKMBAASjAYAEowJABKMCgASjAsAEowMABKMDQASjA8AEowRABKMEgASjBMAEowVABKMFgASjJEAEoyTABKMlQASjJcAEoyaABKMmwASjJwAEoydABKMngASjKAAEoyiABKMowASjKQAEoymABKMpwASjSIAEo0kABKNJgASjSgAEo0rABKNLAASjS0AEo0uABKNLwASjTEAEo0zABKNNAASjTUAEo03ABKNOAASjbMAEo21ABKNtwASjbkAEo28ABKNvQASjb4AEo2/ABKNwAASjcIAEo3EABKNxQASjcYAEo3IABKNyQASjhIAEo42ABKOXQASjoEAEo6EABKOhgASjogAEo6KABKOjAASjo4AEo6PABKOkgASjqsAEo7IABKOygASjswAEo7OABKO0AASjtIAEo7UABKO1gASjvMAEo72ABKO+QASjvwAEo7/ABKPAgASjwUAEo8IABKPCgASj4UAEo+HABKPiQASj4sAEo+OABKPjwASj5AAEo+RABKPkgASj5QAEo+WABKPlwASj5gAEo+aABKPmwASkBYAEpAYABKQGgASkBwAEpAfABKQIAASkCEAEpAiABKQIwASkCUAEpAnABKQKAASkCkAEpArABKQLAASkKcAEpCpABKQqwASkK0AEpCwABKQsQASkLIAEpCzABKQtAASkLYAEpC4ABKQuQASkLoAEpC8ABKQvQASkTgAEpE6ABKRPAASkT4AEpFBABKRQgASkUMAEpFEABKRRQASkUcAEpFJABKRSgASkUsAEpFNABKRTgASkckAEpHLABKRzQASkc8AEpHSABKR0wASkdQAEpHVABKR1gASkdgAEpHaABKR2wASkdwAEpHeABKR3wASkloAEpJcABKSXgASkmAAEpJjABKSZAASkmUAEpJmABKSZwASkmkAEpJrABKSbAASkm0AEpJvABKScAASkusAEpLtABKS7wASkvEAEpL0ABKS9QASkvYAEpL3ABKS+AASkvoAEpL8ABKS/QASkv4AEpMAABKTAQASk5QAEpO3ABKT1wASk/cAEpP5ABKT+wASk/0AEpP/ABKUAgASlAMAEpQEABKUBwASlAgAEpQKABKUCwASlA0AEpQQABKUEQASlBIAEpQVABKUFgASlB8AEpQ4ABKUQQASlEMAEpRFABKUTgASlFEAEpRUABKUVgASlJ8AEpTDABKU6gASlQ4AEpURABKVEwASlRUAEpUXABKVGQASlRsAEpUcABKVHwASlTgAEpVZABKVWwASlV0AEpVfABKVYQASlWMAEpVlABKVZwASlWkAEpWKABKVjQASlZAAEpWTABKVlgASlZkAEpWcABKVnwASlaIAEpWkABKWHwASliEAEpYjABKWJQASligAEpYpABKWKgASlisAEpYsABKWLgASljAAEpYxABKWMgASljQAEpY1ABKWsAASlrIAEpa0ABKWtgASlrkAEpa6ABKWuwASlrwAEpa9ABKWvwASlsEAEpbCABKWwwASlsUAEpbGABKXQQASl0MAEpdGABKXSAASl0sAEpdMABKXTQASl04AEpdPABKXUQASl1MAEpdUABKXVQASl1cAEpdYABKXcQASl3IAEpdzABKXdQASl/AAEpfyABKX9AASl/YAEpf5ABKX+gASl/sAEpf8ABKX/QASl/8AEpgBABKYAgASmAMAEpgFABKYBgASmIEAEpiDABKYhQASmIcAEpiKABKYiwASmIwAEpiNABKYjgASmJAAEpiSABKYkwASmJQAEpiWABKYlwASmRIAEpkUABKZFgASmRgAEpkbABKZHAASmR0AEpkeABKZHwASmSEAEpkjABKZJAASmSUAEpknABKZKAASmaMAEpmlABKZpwASmakAEpmsABKZrQASma4AEpmvABKZsAASmbIAEpm0ABKZtQASmbYAEpm4ABKZuQASmjQAEpo2ABKaOAASmjoAEpo9ABKaPgASmj8AEppAABKaQQASmkMAEppFABKaRgASmkcAEppJABKaSgASmpMAEpq3ABKa3gASmwIAEpsFABKbBwASmwkAEpsLABKbDQASmw8AEpsQABKbEwASmywAEptJABKbSwASm00AEptPABKbUQASm1MAEptVABKbVwASm3QAEpt3ABKbegASm30AEpuAABKbgwASm4YAEpuJABKbiwASnAYAEpwIABKcCgASnAwAEpwPABKcEAASnBEAEpwSABKcEwASnBUAEpwXABKcGAASnBkAEpwbABKcHAASnJcAEpyZABKcmwASnJ0AEpygABKcoQASnKIAEpyjABKcpAASnKYAEpyoABKcqQASnKoAEpysABKcrQASnSgAEp0qABKdLAASnS4AEp0xABKdMgASnTMAEp00ABKdNQASnTcAEp05ABKdOgASnTsAEp09ABKdPgASnbkAEp27ABKdvgASncAAEp3DABKdxAASncUAEp3GABKdxwASnckAEp3LABKdzAASnc0AEp3PABKd0AASnksAEp5NABKeTwASnlEAEp5UABKeVQASnlYAEp5XABKeWAASnloAEp5cABKeXQASnl4AEp5gABKeYQASntwAEp7eABKe4AASnuIAEp7lABKe5gASnucAEp7oABKe6QASnusAEp7tABKe7gASnu8AEp7xABKe8gASn20AEp9vABKfcQASn3MAEp92ABKfdwASn3gAEp95ABKfegASn3wAEp9+ABKffwASn4AAEp+CABKfgwASn5QAEp+VABKflwASoBoAEqA+ABKgYgASoIUAEqCsABKgzAASoPMAEqEaABKhOgASoV4AEqGCABKhhAASoYcAEqGJABKhiwASoY0AEqGQABKhkwASoZUAEqGXABKhmgASoZwAEqGeABKhoQASoaQAEqGlABKhqgASocMAEqHIABKhygASoc8AEqHSABKh1AASoh0AEqJBABKiaAASoowAEqKPABKikQASopMAEqKVABKilwASopkAEqKaABKinQASorYAEqLbABKi3QASot8AEqLhABKi4wASouUAEqLnABKi6QASousAEqLtABKjEgASoxUAEqMYABKjGwASox4AEqMhABKjJAASoycAEqMqABKjLQASoy8AEqOqABKjrAASo68AEqOxABKjtAASo7UAEqO2ABKjtwASo7gAEqO6ABKjvAASo70AEqO+ABKjwAASo8EAEqPSABKj0wASo9UAEqRQABKkUgASpFQAEqRWABKkWQASpFoAEqRbABKkXAASpF0AEqRfABKkYQASpGIAEqRjABKkZQASpGYAEqThABKk4wASpOYAEqToABKk6wASpOwAEqTtABKk7gASpO8AEqTxABKk8wASpPQAEqT1ABKk9wASpPgAEqUJABKlDgASpREAEqUTABKlJAASpS0AEqUwABKlMwASpTUAEqVIABKlwwASpcUAEqXHABKlyQASpcwAEqXNABKlzgASpc8AEqXQABKl0gASpdQAEqXVABKl1gASpdgAEqXZABKmVAASplYAEqZZABKmWwASpl4AEqZfABKmYAASpmEAEqZiABKmZAASpmYAEqZnABKmaAASpmoAEqZrABKmfAASpn0AEqZ/ABKm+gASpvwAEqb+ABKnAAASpwMAEqcEABKnBQASpwYAEqcHABKnCQASpwsAEqcMABKnDQASpw8AEqcQABKniwASp40AEqeQABKnkgASp5UAEqeWABKnlwASp5gAEqeZABKnmwASp50AEqeeABKnnwASp6EAEqeiABKnuwASp7wAEqe9ABKnvwASqDoAEqg8ABKoPgASqEAAEqhDABKoRAASqEUAEqhGABKoRwASqEkAEqhLABKoTAASqE0AEqhPABKoUAASqMsAEqjNABKo0AASqNIAEqjVABKo1gASqNcAEqjYABKo2QASqNsAEqjdABKo3gASqN8AEqjhABKo4gASqQAAEqkZABKpIgASqSUAEqkoABKpMQASqTQAEqk3ABKpOQASqUwAEqnfABKqAgASqiIAEqpCABKqRAASqkYAEqpIABKqSgASqk0AEqpOABKqTwASqlIAEqpTABKqVQASqlYAEqpYABKqWwASqlwAEqpdABKqYAASqmEAEqpmABKqfwASqogAEqqKABKqjAASqpUAEqqYABKqmwASqp0AEqrmABKrCgASqzEAEqtVABKrWAASq1oAEqtcABKrXgASq2AAEqtiABKrYwASq2YAEqt/ABKroAASq6IAEqukABKrpgASq6gAEquqABKrrAASq64AEquwABKr0QASq9QAEqvXABKr2gASq90AEqvgABKr4wASq+YAEqvpABKr6wASrGYAEqxoABKsagASrGwAEqxvABKscAASrHEAEqxyABKscwASrHUAEqx3ABKseAASrHkAEqx7ABKsfAASrPcAEqz5ABKs+wASrP0AEq0AABKtAQASrQIAEq0DABKtBAASrQYAEq0IABKtCQASrQoAEq0MABKtDQASrYgAEq2KABKtjQASrY8AEq2SABKtkwASrZQAEq2VABKtlgASrZgAEq2aABKtmwASrZwAEq2eABKtnwASrbgAEq25ABKtugASrbwAEq43ABKuOQASrjsAEq49ABKuQAASrkEAEq5CABKuQwASrkQAEq5GABKuSAASrkkAEq5KABKuTAASrk0AEq7IABKuygASrswAEq7OABKu0QASrtIAEq7TABKu1AASrtUAEq7XABKu2QASrtoAEq7bABKu3QASrt4AEq9ZABKvWwASr10AEq9fABKvYgASr2MAEq9kABKvZQASr2YAEq9oABKvagASr2sAEq9sABKvbgASr28AEq/qABKv7AASr+4AEq/wABKv8wASr/QAEq/1ABKv9gASr/cAEq/5ABKv+wASr/wAEq/9ABKv/wASsAAAErB7ABKwfQASsH8AErCBABKwhAASsIUAErCGABKwhwASsIgAErCKABKwjAASsI0AErCOABKwkAASsJEAErDaABKw/gASsSUAErFJABKxTAASsU4AErFQABKxUgASsVQAErFWABKxVwASsVoAErFzABKxkAASsZIAErGUABKxlgASsZgAErGaABKxnAASsZ4AErG7ABKxvgASscEAErHEABKxxwASscoAErHNABKx0AASsdIAErJNABKyTwASslEAErJTABKyVgASslcAErJYABKyWQASsloAErJcABKyXgASsl8AErJgABKyYgASsmMAErLeABKy4AASsuIAErLkABKy5wASsugAErLpABKy6gASsusAErLtABKy7wASsvAAErLxABKy8wASsvQAErNvABKzcQASs3MAErN1ABKzeAASs3kAErN6ABKzewASs3wAErN+ABKzgAASs4EAErOCABKzhAASs4UAErQAABK0AgAStAUAErQHABK0CgAStAsAErQMABK0DQAStA4AErQQABK0EgAStBMAErQUABK0FgAStBcAErSSABK0lAAStJYAErSYABK0mwAStJwAErSdABK0ngAStJ8AErShABK0owAStKQAErSlABK0pwAStKgAErUjABK1JQAStScAErUpABK1LAAStS0AErUuABK1LwAStTAAErUyABK1NAAStTUAErU2ABK1OAAStTkAErW0ABK1tgAStbgAErW6ABK1vQAStb4AErW/ABK1wAAStcEAErXDABK1xQAStcYAErXHABK1yQAStcoAErZdABK2gAAStqAAErbAABK2wgAStsQAErbGABK2yAAStssAErbMABK2zQASttAAErbRABK20wASttQAErbWABK22QASttoAErbbABK23gAStt8AErbkABK2/QAStwYAErcIABK3CgAStxMAErcWABK3GQAStxsAErdkABK3iAASt68AErfTABK31gASt9gAErfaABK33AASt94AErfgABK34QASt+QAErf9ABK4HgASuCAAErgiABK4JAASuCYAErgoABK4KgASuCwAErguABK4TwASuFIAErhVABK4WAASuFsAErheABK4YQASuGQAErhnABK4aQASuOQAErjmABK46AASuOoAErjtABK47gASuO8AErjwABK48QASuPMAErj1ABK49gASuPcAErj5ABK4+gASuXUAErl3ABK5eQASuXsAErl+ABK5fwASuYAAErmBABK5ggASuYQAErmGABK5hwASuYgAErmKABK5iwASugYAEroIABK6CwASug0AEroQABK6EQASuhIAEroTABK6FAASuhYAEroYABK6GQASuhoAErocABK6HQASujYAEro3ABK6OAASujoAErq1ABK6twASurkAErq7ABK6vgASur8AErrAABK6wQASusIAErrEABK6xgASuscAErrIABK6ygASussAErtGABK7SAASu0oAErtMABK7TwASu1AAErtRABK7UgASu1MAErtVABK7VwASu1gAErtZABK7WwASu1wAErvXABK72QASu9sAErvdABK74AASu+EAErviABK74wASu+QAErvmABK76AASu+kAErvqABK77AASu+0AErxoABK8agASvGwAErxuABK8cQASvHIAErxzABK8dAASvHUAErx3ABK8eQASvHoAErx7ABK8fQASvH4AErz5ABK8+wASvP0AErz/ABK9AgASvQMAEr0EABK9BQASvQYAEr0IABK9CgASvQsAEr0MABK9DgASvQ8AEr1YABK9fAASvaMAEr3HABK9ygASvcwAEr3OABK90AASvdIAEr3UABK91QASvdgAEr3xABK+DgASvhAAEr4SABK+FAASvhYAEr4YABK+GgASvhwAEr45ABK+PAASvj8AEr5CABK+RQASvkgAEr5LABK+TgASvlAAEr7LABK+zQASvs8AEr7RABK+1AASvtUAEr7WABK+1wASvtgAEr7aABK+3AASvt0AEr7eABK+4AASvuEAEr9cABK/XgASv2AAEr9iABK/ZQASv2YAEr9nABK/aAASv2kAEr9rABK/bQASv24AEr9vABK/cQASv3IAEr/tABK/7wASv/EAEr/zABK/9gASv/cAEr/4ABK/+QASv/oAEr/8ABK//gASv/8AEsAAABLAAgASwAMAEsB+ABLAgAASwIMAEsCFABLAiAASwIkAEsCKABLAiwASwIwAEsCOABLAkAASwJEAEsCSABLAlAASwJUAEsEQABLBEgASwRQAEsEWABLBGQASwRoAEsEbABLBHAASwR0AEsEfABLBIQASwSIAEsEjABLBJQASwSYAEsGhABLBowASwaUAEsGnABLBqgASwasAEsGsABLBrQASwa4AEsGwABLBsgASwbMAEsG0ABLBtgASwbcAEsIyABLCNAASwjYAEsI4ABLCOwASwjwAEsI9ABLCPgASwj8AEsJBABLCQwASwkQAEsJFABLCRwASwkgAEsJZABLCWgASwlwAEsLfABLDAwASwycAEsNKABLDcQASw5EAEsO4ABLD3wASw/8AEsQjABLERwASxEkAEsRMABLETgASxFAAEsRSABLEVQASxFgAEsRaABLEXAASxF8AEsRhABLEYwASxGYAEsRpABLEagASxG8AEsSIABLEjQASxI8AEsSUABLElwASxJkAEsTiABLFBgASxS0AEsVRABLFVAASxVYAEsVYABLFWgASxVwAEsVeABLFXwASxWIAEsV7ABLFoAASxaIAEsWkABLFpgASxagAEsWqABLFrAASxa4AEsWwABLFsgASxdcAEsXaABLF3QASxeAAEsXjABLF5gASxekAEsXsABLF7wASxfIAEsX0ABLGbwASxnEAEsZ0ABLGdgASxnkAEsZ6ABLGewASxnwAEsZ9ABLGfwASxoEAEsaCABLGgwASxoUAEsaGABLGlwASxpgAEsaaABLHFQASxxcAEscZABLHGwASxx4AEscfABLHIAASxyEAEsciABLHJAASxyYAEscnABLHKAASxyoAEscrABLHpgASx6gAEserABLHrQASx7AAEsexABLHsgASx7MAEse0ABLHtgASx7gAEse5ABLHugASx7wAEse9ABLHzgASx9MAEsfWABLH2AASx+kAEsfyABLH9QASx/gAEsf6ABLIFgASyCgAEsijABLIpQASyKcAEsipABLIrAASyK0AEsiuABLIrwASyLAAEsiyABLItAASyLUAEsi2ABLIuAASyLkAEsk0ABLJNgASyTkAEsk7ABLJPgASyT8AEslAABLJQQASyUIAEslEABLJRgASyUcAEslIABLJSgASyUsAEslcABLJXQASyV8AEsnaABLJ3AASyd4AEsngABLJ4wASyeQAEsnlABLJ5gASyecAEsnpABLJ6wASyewAEsntABLJ7wASyfAAEsprABLKbQASynAAEspyABLKdQASynYAEsp3ABLKeAASynkAEsp7ABLKfQASyn4AEsp/ABLKgQASyoIAEsqbABLKnAASyp0AEsqfABLLGgASyxwAEsseABLLIAASyyMAEsskABLLJQASyyYAEssnABLLKQASyysAEsssABLLLQASyy8AEsswABLLqwASy60AEsuwABLLsgASy7UAEsu2ABLLtwASy7gAEsu5ABLLuwASy70AEsu+ABLLvwASy8EAEsvCABLL1AASy+0AEswWABLMGQASzBwAEswfABLMIgASzCUAEswoABLMKwASzC4AEswxABLMNAASzF0AEsxgABLMYwASzGYAEsxpABLMbAASzG8AEsxyABLMdQASzHgAEsx7ABLMfQASzIwAEsyoABLMvgASzNUAEszsABLNAwASzREAEs0tABLNPwASzdIAEs31ABLOFQASzjUAEs43ABLOOQASzjsAEs49ABLOQAASzkEAEs5CABLORQASzkYAEs5IABLOSQASzksAEs5OABLOTwASzlAAEs5TABLOVAASzlkAEs5yABLOewASzn0AEs5/ABLOiAASzosAEs6OABLOkAASztkAEs79ABLPJAASz0gAEs9LABLPTQASz08AEs9RABLPUwASz1UAEs9WABLPWQASz3IAEs+TABLPlQASz5cAEs+ZABLPmwASz50AEs+fABLPoQASz6MAEs/EABLPxwASz8oAEs/NABLP0AASz9MAEs/WABLP2QASz9wAEs/eABLQWQAS0FsAEtBdABLQXwAS0GIAEtBjABLQZAAS0GUAEtBmABLQaAAS0GoAEtBrABLQbAAS0G4AEtBvABLQ6gAS0OwAEtDuABLQ8AAS0PMAEtD0ABLQ9QAS0PYAEtD3ABLQ+QAS0PsAEtD8ABLQ/QAS0P8AEtEAABLRewAS0X0AEtGAABLRggAS0YUAEtGGABLRhwAS0YgAEtGJABLRiwAS0Y0AEtGOABLRjwAS0ZEAEtGSABLRqwAS0awAEtGtABLRrwAS0ioAEtIsABLSLgAS0jAAEtIzABLSNAAS0jUAEtI2ABLSNwAS0jkAEtI7ABLSPAAS0j0AEtI/ABLSQAAS0rsAEtK9ABLSvwAS0sEAEtLEABLSxQAS0sYAEtLHABLSyAAS0soAEtLMABLSzQAS0s4AEtLQABLS0QAS00wAEtNOABLTUAAS01IAEtNVABLTVgAS01cAEtNYABLTWQAS01sAEtNdABLTXgAS018AEtNhABLTYgAS090AEtPfABLT4QAS0+MAEtPmABLT5wAS0+gAEtPpABLT6gAS0+wAEtPuABLT7wAS0/AAEtPyABLT8wAS1G4AEtRwABLUcgAS1HQAEtR3ABLUeAAS1HkAEtR6ABLUewAS1H0AEtR/ABLUgAAS1IEAEtSDABLUhAAS1M0AEtTxABLVGAAS1TwAEtU/ABLVQQAS1UMAEtVFABLVRwAS1UkAEtVKABLVTQAS1WYAEtWDABLVhQAS1YcAEtWJABLViwAS1Y0AEtWPABLVkQAS1a4AEtWxABLVtAAS1bcAEtW6ABLVvQAS1cAAEtXDABLVxQAS1kAAEtZCABLWRAAS1kYAEtZJABLWSgAS1ksAEtZMABLWTQAS1k8AEtZRABLWUgAS1lMAEtZVABLWVgAS1tEAEtbTABLW1QAS1tcAEtbaABLW2wAS1twAEtbdABLW3gAS1uAAEtbiABLW4wAS1uQAEtbmABLW5wAS12IAEtdkABLXZgAS12gAEtdrABLXbAAS120AEtduABLXbwAS13EAEtdzABLXdAAS13UAEtd3ABLXeAAS1/MAEtf1ABLX+AAS1/oAEtf9ABLX/gAS1/8AEtgAABLYAQAS2AMAEtgFABLYBgAS2AcAEtgJABLYCgAS2IUAEtiHABLYiQAS2IsAEtiOABLYjwAS2JAAEtiRABLYkgAS2JQAEtiWABLYlwAS2JgAEtiaABLYmwAS2RYAEtkYABLZGgAS2RwAEtkfABLZIAAS2SEAEtkiABLZIwAS2SUAEtknABLZKAAS2SkAEtkrABLZLAAS2acAEtmpABLZqwAS2a0AEtmwABLZsQAS2bIAEtmzABLZtAAS2bYAEtm4ABLZuQAS2boAEtm8ABLZvQAS2lAAEtpzABLakwAS2rMAEtq1ABLatwAS2rkAEtq7ABLavgAS2r8AEtrAABLawwAS2sQAEtrGABLaxwAS2skAEtrMABLazQAS2s4AEtrRABLa0gAS2tcAEtrwABLa+QAS2vsAEtr9ABLbBgAS2wkAEtsMABLbDgAS21cAEtt7ABLbogAS28YAEtvJABLbywAS280AEtvPABLb0QAS29MAEtvUABLb1wAS2/AAEtwRABLcEwAS3BUAEtwXABLcGQAS3BsAEtwdABLcHwAS3CEAEtxCABLcRQAS3EgAEtxLABLcTgAS3FEAEtxUABLcVwAS3FoAEtxcABLc1wAS3NkAEtzbABLc3QAS3OAAEtzhABLc4gAS3OMAEtzkABLc5gAS3OgAEtzpABLc6gAS3OwAEtztABLdaAAS3WoAEt1sABLdbgAS3XEAEt1yABLdcwAS3XQAEt11ABLddwAS3XkAEt16ABLdewAS3X0AEt1+ABLd+QAS3fsAEt3+ABLeAAAS3gMAEt4EABLeBQAS3gYAEt4HABLeCQAS3gsAEt4MABLeDQAS3g8AEt4QABLeKQAS3ioAEt4rABLeLQAS3qgAEt6qABLerAAS3q4AEt6xABLesgAS3rMAEt60ABLetQAS3rcAEt65ABLeugAS3rsAEt69ABLevgAS3zkAEt87ABLfPQAS3z8AEt9CABLfQwAS30QAEt9FABLfRgAS30gAEt9KABLfSwAS30wAEt9OABLfTwAS38oAEt/MABLfzgAS39AAEt/TABLf1AAS39UAEt/WABLf1wAS39kAEt/bABLf3AAS390AEt/fABLf4AAS4FsAEuBdABLgXwAS4GEAEuBkABLgZQAS4GYAEuBnABLgaAAS4GoAEuBsABLgbQAS4G4AEuBwABLgcQAS4OwAEuDuABLg8AAS4PIAEuD1ABLg9gAS4PcAEuD4ABLg+QAS4PsAEuD9ABLg/gAS4P8AEuEBABLhAgAS4UsAEuFvABLhlgAS4boAEuG9ABLhvwAS4cEAEuHDABLhxQAS4ccAEuHIABLhywAS4eQAEuIBABLiAwAS4gUAEuIHABLiCQAS4gsAEuINABLiDwAS4iwAEuIvABLiMgAS4jUAEuI4ABLiOwAS4j4AEuJBABLiQwAS4r4AEuLAABLiwgAS4sQAEuLHABLiyAAS4skAEuLKABLiywAS4s0AEuLPABLi0AAS4tEAEuLTABLi1AAS408AEuNRABLjUwAS41UAEuNYABLjWQAS41oAEuNbABLjXAAS414AEuNgABLjYQAS42IAEuNkABLjZQAS4+AAEuPiABLj5AAS4+YAEuPpABLj6gAS4+sAEuPsABLj7QAS4+8AEuPxABLj8gAS4/MAEuP1ABLj9gAS5HEAEuRzABLkdQAS5HcAEuR6ABLkewAS5HwAEuR9ABLkfgAS5IAAEuSCABLkgwAS5IQAEuSGABLkhwAS5QIAEuUEABLlBgAS5QgAEuULABLlDAAS5Q0AEuUOABLlDwAS5REAEuUTABLlFAAS5RUAEuUXABLlGAAS5ZMAEuWVABLlmAAS5ZoAEuWdABLlngAS5Z8AEuWgABLloQAS5aMAEuWlABLlpgAS5acAEuWpABLlqgAS5cIAEuY9ABLmPwAS5kEAEuZDABLmRgAS5kcAEuZIABLmSQAS5koAEuZMABLmTgAS5k8AEuZQABLmUgAS5lMAEubmABLnCQAS5ykAEudJABLnSwAS500AEudPABLnUQAS51QAEudVABLnVgAS51kAEudaABLnXAAS510AEudfABLnYgAS52MAEudkABLnZwAS52gAEudxABLnigAS55MAEueVABLnlwAS56AAEuejABLnpgAS56gAEufxABLoFQAS6DwAEuhgABLoYwAS6GUAEuhnABLoaQAS6GsAEuhtABLobgAS6HEAEuiKABLoqwAS6K0AEuivABLosQAS6LMAEui1ABLotwAS6LkAEui7ABLo3AAS6N8AEujiABLo5QAS6OgAEujrABL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6cgAS+pYAEvq9ABL64QAS+uQAEvrmABL66AAS+uoAEvrsABL67gAS+u8AEvryABL7CwAS+ygAEvsqABL7LAAS+y4AEvswABL7MgAS+zQAEvs2ABL7UwAS+1YAEvtZABL7XAAS+18AEvtiABL7ZQAS+2gAEvtqABL75QAS++cAEvvpABL76wAS++4AEvvvABL78AAS+/EAEvvyABL79AAS+/YAEvv3ABL7+AAS+/oAEvv7ABL8dgAS/HgAEvx6ABL8fAAS/H8AEvyAABL8gQAS/IIAEvyDABL8hQAS/IcAEvyIABL8iQAS/IsAEvyMABL9BwAS/QkAEv0LABL9DQAS/RAAEv0RABL9EgAS/RMAEv0UABL9FgAS/RgAEv0ZABL9GgAS/RwAEv0dABL9mAAS/ZoAEv2dABL9nwAS/aIAEv2jABL9pAAS/aUAEv2mABL9qAAS/aoAEv2rABL9rAAS/a4AEv2vABL+KgAS/iwAEv4uABL+MAAS/jMAEv40ABL+NQAS/jYAEv43ABL+OQAS/jsAEv48ABL+PQAS/j8AEv5AABL+uwAS/r0AEv6/ABL+wQAS/sQAEv7FABL+xgAS/scAEv7IABL+ygAS/swAEv7NABL+zgAS/tAAEv7RABL/TAAS/04AEv9QABL/UgAS/1UAEv9WABL/VwAS/1gAEv9ZABL/WwAS/10AEv9eABL/XwAS/2EAEv9iABL/9QATABgAEwA4ABMAWAATAFoAEwBcABMAXgATAGAAEwBjABMAZAATAGUAEwBoABMAaQATAGsAEwBsABMAbgATAHEAEwByABMAcwATAHYAEwB3ABMAfAATAJUAEwCeABMAoAATAKIAEwCrABMArgATALEAEwCzABMA/AATASAAEwFHABMBawATAW4AEwFwABMBcgATAXQAEwF2ABMBeAATAXkAEwF8ABMBlQATAbYAEwG4ABMBugATAbwAEwG+ABMBwAATAcIAEwHEABMBxgATAecAEwHqABMB7QATAfAAEwHzABMB9gATAfkAEwH8ABMB/wATAgEAEwJ8ABMCfgATAoAAEwKCABMChQATAoYAEwKHABMCiAATAokAEwKLABMCjQATAo4AEwKPABMCkQATApIAEwMNABMDDwATAxEAEwMTABMDFgATAxcAEwMYABMDGQATAxoAEwMcABMDHgATAx8AEwMgABMDIgATAyMAEwOeABMDoAATA6MAEwOlABMDqAATA6kAEwOqABMDqwATA6wAEwOuABMDsAATA7EAEwOyABMDtAATA7UAEwPOABMDzwATA9AAEwPSABMETQATBE8AEwRRABMEUwATBFYAEwRXABMEWAATBFkAEwRaABMEXAATBF4AEwRfABMEYAATBGIAEwRjABME3gATBOAAEwTiABME5AATBOcAEwToABME6QATBOoAEwTrABME7QATBO8AEwTwABME8QATBPMAEwT0ABMFbwATBXEAEwVzABMFdQATBXgAEwV5ABMFegATBXsAEwV8ABMFfgATBYAAEwWBABMFggATBYQAEwWFABMGAAATBgIAEwYEABMGBgATBgkAEwYKABMGCwATBgwAEwYNABMGDwATBhEAEwYSABMGEwATBhUAEwYWABMGkQATBpMAEwaVABMGlwATBpoAEwabABMGnAATBp0AEwaeABMGoAATBqIAEwajABMGpAATBqYAEwanABMG8AATBxQAEwc7ABMHXwATB2IAEwdkABMHZgATB2gAEwdqABMHbAATB20AEwdwABMHiQATB6YAEweoABMHqgATB6wAEweuABMHsAATB7IAEwe0ABMH0QATB9QAEwfXABMH2gATB90AEwfgABMH4wATB+YAEwfoABMIYwATCGUAEwhnABMIaQATCGwAEwhtABMIbgATCG8AEwhwABMIcgATCHQAEwh1ABMIdgATCHgAEwh5ABMI9AATCPYAEwj4ABMI+gATCP0AEwj+ABMI/wATCQAAEwkBABMJAwATCQUAEwkGABMJBwATCQkAEwkKABMJhQATCYcAEwmJABMJiwATCY4AEwmPABMJkAATCZEAEwmSABMJlAATCZYAEwmXABMJmAATCZoAEwmbABMKFgATChgAEwoaABMKHAATCh8AEwogABMKIQATCiIAEwojABMKJQATCicAEwooABMKKQATCisAEwosABMKpwATCqkAEwqrABMKrQATCrAAEwqxABMKsgATCrMAEwq0ABMKtgATCrgAEwq5ABMKugATCrwAEwq9ABMLOAATCzoAEws9ABMLPwATC0IAEwtDABMLRAATC0UAEwtGABMLSAATC0oAEwtLABMLTAATC04AEwtPABMLZwATC+IAEwvkABML5gATC+gAEwvrABML7AATC+0AEwvuABML7wATC/EAEwvzABML9AATC/UAEwv3ABML+AATDIsAEwyuABMMzgATDO4AEwzwABMM8gATDPQAEwz2ABMM+QATDPoAEwz7ABMM/gATDP8AEw0BABMNAgATDQQAEw0HABMNCAATDQkAEw0MABMNDQATDRIAEw0rABMNNAATDTYAEw04ABMNQQATDUQAEw1HABMNSQATDZIAEw22ABMN3QATDgEAEw4EABMOBgATDggAEw4KABMODAATDg4AEw4PABMOEgATDisAEw5MABMOTgATDlAAEw5SABMOVAATDlYAEw5YABMOWgATDlwAEw59ABMOgAATDoMAEw6GABMOiQATDowAEw6PABMOkgATDpUAEw6XABMPEgATDxQAEw8WABMPGAATDxsAEw8cABMPHQATDx4AEw8fABMPIQATDyMAEw8kABMPJQATDycAEw8oABMPowATD6UAEw+nABMPqQATD6wAEw+tABMPrgATD68AEw+wABMPsgATD7QAEw+1ABMPtgATD7gAEw+5ABMQNAATEDYAExA5ABMQOwATED4AExA/ABMQQAATEEEAExBCABMQRAATEEYAExBHABMQSAATEEoAExBLABMQZAATEGUAExBmABMQaAATEOMAExDlABMQ5wATEOkAExDsABMQ7QATEO4AExDvABMQ8AATEPIAExD0ABMQ9QATEPYAExD4ABMQ+QATEXQAExF2ABMReAATEXoAExF9ABMRfgATEX8AExGAABMRgQATEYMAExGFABMRhgATEYcAExGJABMRigATEgUAExIHABMSCQATEgsAExIOABMSDwATEhAAExIRABMSEgATEhQAExIWABMSFwATEhgAExIaABMSGwATEpYAExKYABMSmgATEpwAExKfABMSoAATEqEAExKiABMSowATEqUAExKnABMSqAATEqkAExKrABMSrAATEycAExMpABMTKwATEy0AExMwABMTMQATEzIAExMzABMTNAATEzYAExM4ABMTOQATEzoAExM8ABMTPQATE4YAExOqABMT0QATE/UAExP4ABMT+gATE/wAExP+ABMUAAATFAIAExQDABMUBgATFB8AExQ8ABMUPgATFEAAExRCABMURAATFEYAExRIABMUSgATFGcAExRqABMUbQATFHAAExRzABMUdgATFHkAExR8ABMUfgATFPkAExT7ABMU/QATFP8AExUCABMVAwATFQQAExUFABMVBgATFQgAExUKABMVCwATFQwAExUOABMVDwATFYoAExWMABMVjgATFZAAExWTABMVlAATFZUAExWWABMVlwATFZkAExWbABMVnAATFZ0AExWfABMVoAATFhsAExYdABMWHwATFiEAExYkABMWJQATFiYAExYnABMWKAATFioAExYsABMWLQATFi4AExYwABMWMQATFqwAExauABMWsAATFrIAExa1ABMWtgATFrcAExa4ABMWuQATFrsAExa9ABMWvgATFr8AExbBABMWwgATFz0AExc/ABMXQQATF0MAExdGABMXRwATF0gAExdJABMXSgATF0wAExdOABMXTwATF1AAExdSABMXUwATF84AExfQABMX0gATF9QAExfXABMX2AATF9kAExfaABMX2wATF90AExffABMX4AATF+EAExfjABMX5AATGF8AExhhABMYYwATGGUAExhoABMYaQATGGoAExhrABMYbAATGG4AExhwABMYcQATGHIAExh0ABMYdQATGQgAExkrABMZSwATGWsAExltABMZbwATGXEAExlzABMZdgATGXcAExl4ABMZewATGXwAExl+ABMZfwATGYEAExmEABMZhQATGYYAExmJABMZigATGY8AExmoABMZsQATGbMAExm1ABMZvgATGcEAExnEABMZxgATGg8AExozABMaWgATGn4AExqBABMagwATGoUAExqHABMaiQATGosAExqMABMajwATGqgAExrJABMaywATGs0AExrPABMa0QATGtMAExrVABMa1wATGtkAExr6ABMa/QATGwAAExsDABMbBgATGwkAExsMABMbDwATGxIAExsUABMbjwATG5EAExuTABMblQATG5gAExuZABMbmgATG5sAExucABMbngATG6AAExuhABMbogATG6QAExulABMcIAATHCIAExwkABMcJgATHCkAExwqABMcKwATHCwAExwtABMcLwATHDEAExwyABMcMwATHDUAExw2ABMcsQATHLMAExy2ABMcuAATHLsAExy8ABMcvQATHL4AExy/ABMcwQATHMMAExzEABMcxQATHMcAExzIABMc4QATHOIAExzjABMc5QATHWAAEx1iABMdZAATHWYAEx1pABMdagATHWsAEx1sABMdbQATHW8AEx1xABMdcgATHXMAEx11ABMddgATHfEAEx3zABMd9QATHfcAEx36ABMd+wATHfwAEx39ABMd/gATHgAAEx4CABMeAwATHgQAEx4GABMeBwATHoIAEx6EABMehgATHogAEx6LABMejAATHo0AEx6OABMejwATHpEAEx6TABMelAATHpUAEx6XABMemAATHxMAEx8VABMfFwATHxkAEx8cABMfHQATHx4AEx8fABMfIAATHyIAEx8kABMfJQATHyYAEx8oABMfKQATH6QAEx+mABMfqAATH6oAEx+tABMfrgATH68AEx+wABMfsQATH7MAEx+1ABMftgATH7cAEx+5ABMfugATIAMAEyAnABMgTgATIHIAEyB1ABMgdwATIHkAEyB7ABMgfQATIH8AEyCAABMggwATIJwAEyC5ABMguwATIL0AEyC/ABMgwQATIMMAEyDFABMgxwATIOQAEyDnABMg6gATIO0AEyDwABMg8wATIPYAEyD5ABMg+wATIXYAEyF4ABMhegATIXwAEyF/ABMhgAATIYEAEyGCABMhgwATIYUAEyGHABMhiAATIYkAEyGLABMhjAATIgcAEyIJABMiCwATIg0AEyIQABMiEQATIhIAEyITABMiFAATIhYAEyIYABMiGQATIhoAEyIcABMiHQATIpgAEyKaABMinAATIp4AEyKhABMiogATIqMAEyKkABMipQATIqcAEyKpABMiqgATIqsAEyKtABMirgATIykAEyMrABMjLQATIy8AEyMyABMjMwATIzQAEyM1ABMjNgATIzgAEyM6ABMjOwATIzwAEyM+ABMjPwATI7oAEyO8ABMjvgATI8AAEyPDABMjxAATI8UAEyPGABMjxwATI8kAEyPLABMjzAATI80AEyPPABMj0AATJEsAEyRNABMkTwATJFEAEyRUABMkVQATJFYAEyRXABMkWAATJFoAEyRcABMkXQATJF4AEyRgABMkYQATJNwAEyTeABMk4AATJOIAEyTlABMk5gATJOcAEyToABMk6QATJOsAEyTtABMk7gATJO8AEyTxABMk8gATJYUAEyWoABMlyAATJegAEyXqABMl7AATJe4AEyXwABMl8wATJfQAEyX1ABMl+AATJfkAEyX7ABMl/AATJf4AEyYBABMmAgATJgMAEyYGABMmBwATJgwAEyYlABMmLgATJjAAEyYyABMmOwATJj4AEyZBABMmQwATJowAEyawABMm1wATJvsAEyb+ABMnAAATJwIAEycEABMnBgATJwgAEycJABMnDAATJyUAEydGABMnSAATJ0oAEydMABMnTgATJ1AAEydSABMnVAATJ1YAEyd3ABMnegATJ30AEyeAABMngwATJ4YAEyeJABMnjAATJ48AEyeRABMoDAATKA4AEygQABMoEgATKBUAEygWABMoFwATKBgAEygZABMoGwATKB0AEygeABMoHwATKCEAEygiABMonQATKJ8AEyihABMoowATKKYAEyinABMoqAATKKkAEyiqABMorAATKK4AEyivABMosAATKLIAEyizABMpLgATKTAAEykzABMpNQATKTgAEyk5ABMpOgATKTsAEyk8ABMpPgATKUAAEylBABMpQgATKUQAEylFABMpXgATKV8AEylgABMpYgATKd0AEynfABMp4QATKeMAEynmABMp5wATKegAEynpABMp6gATKewAEynuABMp7wATKfAAEynyABMp8wATKm4AEypwABMqcgATKnQAEyp3ABMqeAATKnkAEyp6ABMqewATKn0AEyp/ABMqgAATKoEAEyqDABMqhAATKv8AEysBABMrAwATKwUAEysIABMrCQATKwoAEysLABMrDAATKw4AEysQABMrEQATKxIAEysUABMrFQATK5AAEyuSABMrlAATK5YAEyuZABMrmgATK5sAEyucABMrnQATK58AEyuhABMrogATK6MAEyulABMrpgATLCEAEywjABMsJQATLCcAEywqABMsKwATLCwAEywtABMsLgATLDAAEywyABMsMwATLDQAEyw2ABMsNwATLIAAEyykABMsywATLO8AEyzyABMs9AATLPYAEyz4ABMs+gATLPwAEyz9ABMtAAATLRkAEy02ABMtOAATLToAEy08ABMtPgATLUAAEy1CABMtRAATLWEAEy1kABMtZwATLWoAEy1tABMtcAATLXMAEy12ABMteAATLfMAEy31ABMt9wATLfkAEy38ABMt/QATLf4AEy3/ABMuAAATLgIAEy4EABMuBQATLgYAEy4IABMuCQATLoQAEy6GABMuiAATLooAEy6NABMujgATLo8AEy6QABMukQATLpMAEy6VABMulgATLpcAEy6ZABMumgATLxUAEy8XABMvGQATLxsAEy8eABMvHwATLyAAEy8hABMvIgATLyQAEy8mABMvJwATLygAEy8qABMvKwATL6YAEy+oABMvqwATL60AEy+wABMvsQATL7IAEy+zABMvtAATL7YAEy+4ABMvuQATL7oAEy+8ABMvvQATMDgAEzA6ABMwPAATMD4AEzBBABMwQgATMEMAEzBEABMwRQATMEcAEzBJABMwSgATMEsAEzBNABMwTgATMMkAEzDLABMwzQATMM8AEzDSABMw0wATMNQAEzDVABMw1gATMNgAEzDaABMw2wATMNwAEzDeABMw3wATMVoAEzFcABMxXgATMWAAEzFjABMxZAATMWUAEzFmABMxZwATMWkAEzFrABMxbAATMW0AEzFvABMxcAATMgMAEzImABMyRgATMmYAEzJoABMyagATMmwAEzJuABMycQATMnIAEzJzABMydgATMncAEzJ5ABMyegATMnwAEzJ/ABMygAATMoEAEzKEABMyhQATMooAEzKjABMyrAATMq4AEzKwABMyuQATMrwAEzK/ABMywQATMwoAEzMuABMzVQATM3kAEzN8ABMzfgATM4AAEzOCABMzhAATM4YAEzOHABMzigATM6MAEzPEABMzxgATM8gAEzPKABMzzAATM84AEzPQABMz0gATM9QAEzP1ABMz+AATM/sAEzP+ABM0AQATNAQAEzQHABM0CgATNA0AEzQPABM0igATNIwAEzSOABM0kAATNJMAEzSUABM0lQATNJYAEzSXABM0mQATNJsAEzScABM0nQATNJ8AEzSgABM1GwATNR0AEzUfABM1IQATNSQAEzUlABM1JgATNScAEzUoABM1KgATNSwAEzUtABM1LgATNTAAEzUxABM1rAATNa4AEzWxABM1swATNbYAEzW3ABM1uAATNbkAEzW6ABM1vAATNb4AEzW/ABM1wAATNcIAEzXDABM13AATNd0AEzXeABM14AATNlsAEzZdABM2XwATNmEAEzZkABM2ZQATNmYAEzZnABM2aAATNmoAEzZsABM2bQATNm4AEzZwABM2cQATNuwAEzbuABM28AATNvIAEzb1ABM29gATNvcAEzb4ABM2+QATNvsAEzb9ABM2/gATNv8AEzcBABM3AgATN30AEzd/ABM3gQATN4MAEzeGABM3hwATN4gAEzeJABM3igATN4wAEzeOABM3jwATN5AAEzeSABM3kwATOA4AEzgQABM4EgATOBQAEzgXABM4GAATOBkAEzgaABM4GwATOB0AEzgfABM4IAATOCEAEzgjABM4JAATOJ8AEzihABM4owATOKUAEzioABM4qQATOKoAEzirABM4rAATOK4AEziwABM4sQATOLIAEzi0ABM4tQATOP4AEzkiABM5SQATOW0AEzlwABM5cgATOXQAEzl2ABM5eAATOXoAEzl7ABM5fgATOZcAEzm0ABM5tgATObgAEzm6ABM5vAATOb4AEznAABM5wgATOd8AEzniABM55QATOegAEznrABM57gATOfEAEzn0ABM59gATOnEAEzpzABM6dQATOncAEzp6ABM6ewATOnwAEzp9ABM6fgATOoAAEzqCABM6gwATOoQAEzqGABM6hwATOwIAEzsEABM7BgATOwgAEzsLABM7DAATOw0AEzsOABM7DwATOxEAEzsTABM7FAATOxUAEzsXABM7GAATO5MAEzuVABM7lwATO5kAEzucABM7nQATO54AEzufABM7oAATO6IAEzukABM7pQATO6YAEzuoABM7qQATPCQAEzwmABM8KQATPCsAEzwuABM8LwATPDAAEzwxABM8MgATPDQAEzw2ABM8NwATPDgAEzw6ABM8OwATPLYAEzy4ABM8ugATPLwAEzy/ABM8wAATPMEAEzzCABM8wwATPMUAEzzHABM8yAATPMkAEzzLABM8zAATPUcAEz1JABM9SwATPU0AEz1QABM9UQATPVIAEz1TABM9VAATPVYAEz1YABM9WQATPVoAEz1cABM9XQATPdgAEz3aABM93AATPd4AEz3hABM94gATPeMAEz3kABM95QATPecAEz3pABM96gATPesAEz3tABM97gATPoEAEz6kABM+xAATPuQAEz7mABM+6AATPuoAEz7sABM+7wATPvAAEz7xABM+9AATPvUAEz73ABM++AATPvoAEz79ABM+/gATPv8AEz8CABM/AwATPwgAEz8hABM/KgATPywAEz8uABM/NwATPzoAEz89ABM/PwATP4gAEz+sABM/0wATP/cAEz/6ABM//AATP/4AE0AAABNAAgATQAQAE0AFABNACAATQCEAE0BCABNARAATQEYAE0BIABNASgATQEwAE0BOABNAUAATQFIAE0BzABNAdgATQHkAE0B8ABNAfwATQIIAE0CFABNAiAATQIsAE0CNABNBCAATQQoAE0EMABNBDgATQREAE0ESABNBEwATQRQAE0EVABNBFwATQRkAE0EaABNBGwATQR0AE0EeABNBmQATQZsAE0GdABNBnwATQaIAE0GjABNBpAATQaUAE0GmABNBqAATQaoAE0GrABNBrAATQa4AE0GvABNCKgATQiwAE0IvABNCMQATQjQAE0I1ABNCNgATQjcAE0I4ABNCOgATQjwAE0I9ABNCPgATQkAAE0JBABNCWgATQlsAE0JcABNCXgATQtkAE0LbABNC3QATQt8AE0LiABNC4wATQuQAE0LlABNC5gATQugAE0LqABNC6wATQuwAE0LuABNC7wATQ2oAE0NsABNDbgATQ3AAE0NzABNDdAATQ3UAE0N2ABNDdwATQ3kAE0N7ABNDfAATQ30AE0N/ABNDgAATQ/sAE0P9ABND/wATRAEAE0QEABNEBQATRAYAE0QHABNECAATRAoAE0QMABNEDQATRA4AE0QQABNEEQATRIwAE0SOABNEkAATRJIAE0SVABNElgATRJcAE0SYABNEmQATRJsAE0SdABNEngATRJ8AE0ShABNEogATRR0AE0UfABNFIQATRSMAE0UmABNFJwATRSgAE0UpABNFKgATRSwAE0UuABNFLwATRTAAE0UyABNFMwATRXwAE0WgABNFxwATResAE0XuABNF8AATRfIAE0X0ABNF9gATRfgAE0X5ABNF/AATRhUAE0YyABNGNAATRjYAE0Y4ABNGOgATRjwAE0Y+ABNGQAATRl0AE0ZgABNGYwATRmYAE0ZpABNGbAATRm8AE0ZyABNGdAATRu8AE0bxABNG8wATRvUAE0b4ABNG+QATRvoAE0b7ABNG/AATRv4AE0cAABNHAQATRwIAE0cEABNHBQATR4AAE0eCABNHhAATR4YAE0eJABNHigATR4sAE0eMABNHjQATR48AE0eRABNHkgATR5MAE0eVABNHlgATSBEAE0gTABNIFQATSBcAE0gaABNIGwATSBwAE0gdABNIHgATSCAAE0giABNIIwATSCQAE0gmABNIJwATSKIAE0ikABNIpwATSKkAE0isABNIrQATSK4AE0ivABNIsAATSLIAE0i0ABNItQATSLYAE0i4ABNIuQATSTQAE0k2ABNJOAATSToAE0k9ABNJPgATST8AE0lAABNJQQATSUMAE0lFABNJRgATSUcAE0lJABNJSgATScUAE0nHABNJyQATScsAE0nOABNJzwATSdAAE0nRABNJ0gATSdQAE0nWABNJ1wATSdgAE0naABNJ2wATSlYAE0pYABNKWgATSlwAE0pfABNKYAATSmEAE0piABNKYwATSmUAE0pnABNKaAATSmkAE0prABNKbAATSn0AE0p+ABNKgAATSwMAE0snABNLSwATS24AE0uVABNLtQATS9wAE0wDABNMIwATTEcAE0xrABNMbQATTHAAE0xyABNMdAATTHYAE0x5ABNMfAATTH4AE0yAABNMgwATTIUAE0yHABNMigATTI0AE0yOABNMkwATTKwAE0yxABNMswATTLgAE0y7ABNMvQATTQYAE00qABNNUQATTXUAE014ABNNegATTXwAE01+ABNNgAATTYIAE02DABNNhgATTZ8AE03EABNNxgATTcgAE03KABNNzAATTc4AE03QABNN0gATTdQAE03WABNN+wATTf4AE04BABNOBAATTgcAE04KABNODQATThAAE04TABNOFgATThgAE06TABNOlQATTpgAE06aABNOnQATTp4AE06fABNOoAATTqEAE06jABNOpQATTqYAE06nABNOqQATTqoAE067ABNOvAATTr4AE085ABNPOwATTz0AE08/ABNPQgATT0MAE09EABNPRQATT0YAE09IABNPSgATT0sAE09MABNPTgATT08AE0/KABNPzAATT88AE0/RABNP1AATT9UAE0/WABNP1wATT9gAE0/aABNP3AATT90AE0/eABNP4AATT+EAE0/yABNP9wATT/oAE0/8ABNQDQATUBYAE1AZABNQHAATUB4AE1AxABNQrAATUK4AE1CwABNQsgATULUAE1C2ABNQtwATULgAE1C5ABNQuwATUL0AE1C+ABNQvwATUMEAE1DCABNRPQATUT8AE1FCABNRRAATUUcAE1FIABNRSQATUUoAE1FLABNRTQATUU8AE1FQABNRUQATUVMAE1FUABNRZQATUWYAE1FoABNR4wATUeUAE1HnABNR6QATUewAE1HtABNR7gATUe8AE1HwABNR8gATUfQAE1H1ABNR9gATUfgAE1H5ABNSdAATUnYAE1J5ABNSewATUn4AE1J/ABNSgAATUoEAE1KCABNShAATUoYAE1KHABNSiAATUooAE1KLABNSpAATUqUAE1KmABNSqAATUyMAE1MlABNTJwATUykAE1MsABNTLQATUy4AE1MvABNTMAATUzIAE1M0ABNTNQATUzYAE1M4ABNTOQATU7QAE1O2ABNTuQATU7sAE1O+ABNTvwATU8AAE1PBABNTwgATU8QAE1PGABNTxwATU8gAE1PKABNTywATU/IAE1QLABNUFAATVBcAE1QaABNUIwATVCYAE1QpABNUKwATVD4AE1TRABNU9AATVRQAE1U0ABNVNgATVTgAE1U6ABNVPAATVT8AE1VAABNVQQATVUQAE1VFABNVRwATVUgAE1VKABNVTQATVU4AE1VPABNVUgATVVMAE1VYABNVcQATVXoAE1V8ABNVfgATVYcAE1WKABNVjQATVY8AE1XYABNV/AATViMAE1ZHABNWSgATVkwAE1ZOABNWUAATVlIAE1ZUABNWVQATVlgAE1ZxABNWkgATVpQAE1aWABNWmAATVpoAE1acABNWngATVqAAE1aiABNWwwATVsYAE1bJABNWzAATVs8AE1bSABNW1QATVtgAE1bbABNW3QATV1gAE1daABNXXAATV14AE1dhABNXYgATV2MAE1dkABNXZQATV2cAE1dpABNXagATV2sAE1dtABNXbgATV+kAE1frABNX7QATV+8AE1fyABNX8wATV/QAE1f1ABNX9gATV/gAE1f6ABNX+wATV/wAE1f+ABNX/wATWHoAE1h8ABNYfwATWIEAE1iEABNYhQATWIYAE1iHABNYiAATWIoAE1iMABNYjQATWI4AE1iQABNYkQATWKoAE1irABNYrAATWK4AE1kpABNZKwATWS0AE1kvABNZMgATWTMAE1k0ABNZNQATWTYAE1k4ABNZOgATWTsAE1k8ABNZPgATWT8AE1m6ABNZvAATWb4AE1nAABNZwwATWcQAE1nFABNZxgATWccAE1nJABNZywATWcwAE1nNABNZzwATWdAAE1pLABNaTQATWk8AE1pRABNaVAATWlUAE1pWABNaVwATWlgAE1paABNaXAATWl0AE1peABNaYAATWmEAE1rcABNa3gATWuAAE1riABNa5QATWuYAE1rnABNa6AATWukAE1rrABNa7QATWu4AE1rvABNa8QATWvIAE1ttABNbbwATW3EAE1tzABNbdgATW3cAE1t4ABNbeQATW3oAE1t8ABNbfgATW38AE1uAABNbggATW4MAE1vMABNb8AATXBcAE1w7ABNcPgATXEAAE1xCABNcRAATXEYAE1xIABNcSQATXEwAE1xlABNcggATXIQAE1yGABNciAATXIoAE1yMABNcjgATXJAAE1ytABNcsAATXLMAE1y2ABNcuQATXLwAE1y/ABNcwgATXMQAE10/ABNdQQATXUMAE11FABNdSAATXUkAE11KABNdSwATXUwAE11OABNdUAATXVEAE11SABNdVAATXVUAE13QABNd0gATXdQAE13WABNd2QATXdoAE13bABNd3AATXd0AE13fABNd4QATXeIAE13jABNd5QATXeYAE15hABNeYwATXmUAE15nABNeagATXmsAE15sABNebQATXm4AE15wABNecgATXnMAE150ABNedgATXncAE17yABNe9AATXvcAE175ABNe/AATXv0AE17+ABNe/wATXwAAE18CABNfBAATXwUAE18GABNfCAATXwkAE1+EABNfhgATX4gAE1+KABNfjQATX44AE1+PABNfkAATX5EAE1+TABNflQATX5YAE1+XABNfmQATX5oAE2AVABNgFwATYBkAE2AbABNgHgATYB8AE2AgABNgIQATYCIAE2AkABNgJgATYCcAE2AoABNgKgATYCsAE2CmABNgqAATYKoAE2CsABNgrwATYLAAE2CxABNgsgATYLMAE2C1ABNgtwATYLgAE2C5ABNguwATYLwAE2FPABNhcgATYZIAE2GyABNhtAATYbYAE2G4ABNhugATYb0AE2G+ABNhvwATYcIAE2HDABNhxQATYcYAE2HIABNhywATYcwAE2HNABNh0AATYdEAE2HWABNh7wATYfgAE2H6ABNh/AATYgUAE2IIABNiCwATYg0AE2JWABNiegATYqEAE2LFABNiyAATYsoAE2LMABNizgATYtAAE2LSABNi0wATYtYAE2LvABNjEAATYxIAE2MUABNjFgATYxgAE2MaABNjHAATYx4AE2MgABNjQQATY0QAE2NHABNjSgATY00AE2NQABNjUwATY1YAE2NZABNjWwATY9YAE2PYABNj2gATY9wAE2PfABNj4AATY+EAE2PiABNj4wATY+UAE2PnABNj6AATY+kAE2PrABNj7AATZGcAE2RpABNkawATZG0AE2RwABNkcQATZHIAE2RzABNkdAATZHYAE2R4ABNkeQATZHoAE2R8ABNkfQATZPgAE2T6ABNk/QATZP8AE2UCABNlAwATZQQAE2UFABNlBgATZQgAE2UKABNlCwATZQwAE2UOABNlDwATZSgAE2UpABNlKgATZSwAE2WnABNlqQATZasAE2WtABNlsAATZbEAE2WyABNlswATZbQAE2W2ABNluAATZbkAE2W6ABNlvAATZb0AE2Y4ABNmOgATZjwAE2Y+ABNmQQATZkIAE2ZDABNmRAATZkUAE2ZHABNmSQATZkoAE2ZLABNmTQATZk4AE2bJABNmywATZs0AE2bPABNm0gATZtMAE2bUABNm1QATZtYAE2bYABNm2gATZtsAE2bcABNm3gATZt8AE2daABNnXAATZ14AE2dgABNnYwATZ2QAE2dlABNnZgATZ2cAE2dpABNnawATZ2wAE2dtABNnbwATZ3AAE2frABNn7QATZ+8AE2fxABNn9AATZ/UAE2f2ABNn9wATZ/gAE2f6ABNn/AATZ/0AE2f+ABNoAAATaAEAE2hKABNobgATaJUAE2i5ABNovAATaL4AE2jAABNowgATaMQAE2jGABNoxwATaMoAE2jjABNpAAATaQIAE2kEABNpBgATaQgAE2kKABNpDAATaQ4AE2krABNpLgATaTEAE2k0ABNpNwATaToAE2k9ABNpQAATaUIAE2m9ABNpvwATacEAE2nDABNpxgATaccAE2nIABNpyQATacoAE2nMABNpzgATac8AE2nQABNp0gATadMAE2pOABNqUAATalIAE2pUABNqVwATalgAE2pZABNqWgATalsAE2pdABNqXwATamAAE2phABNqYwATamQAE2rfABNq4QATauMAE2rlABNq6AATaukAE2rqABNq6wATauwAE2ruABNq8AATavEAE2ryABNq9AATavUAE2twABNrcgATa3UAE2t3ABNregATa3sAE2t8ABNrfQATa34AE2uAABNrggATa4MAE2uEABNrhgATa4cAE2wCABNsBAATbAYAE2wIABNsCwATbAwAE2wNABNsDgATbA8AE2wRABNsEwATbBQAE2wVABNsFwATbBgAE2yTABNslQATbJcAE2yZABNsnAATbJ0AE2yeABNsnwATbKAAE2yiABNspAATbKUAE2ymABNsqAATbKkAE20kABNtJgATbSgAE20qABNtLQATbS4AE20vABNtMAATbTEAE20zABNtNQATbTYAE203ABNtOQATbToAE21LABNtTAATbU4AE21nABNtaAATbWkAE21rABNthAATbYUAE22GABNtiAATbaEAE22iABNtowATbaUAE222ABNtxQATbd4AE23tABNt/wATbhMAE24qABNuPAATbk0AE25OABNuUAATbmkAE25qABNuawATbm0AE26CABNukwATbp0AE26qAAAAAAAABAQAAAAAAAHeWAAAAAAAAAAAAAAAAAATbrI= + + + + + rawLastModificationTimestamp + + + + rawGroupUid + + + + serializedIdentityCoreDetails + + + + LinkBetweenProtocolInstances + Undefined + 40 + LinkBetweenProtocolInstances + 1 + + + + + + InboxAttachmentChunk + Undefined + 25 + InboxAttachmentChunk + 1 + + + + + + encodedCurrentState + + + + 1 + maskingUID + + + + 1 + devices + + + + isVoipMessage + + + + rawPhotoServerIdentity + + + + remoteDeviceUid + + + + initialByteCountToDownload + + + + receptionChannelInfo + + + + contactIdentity + + + + rawMessageIdOwnedIdentity + + + + rawOwnedIdentity + + + + attachmentNumber + + + + InboxMessage + Undefined + 24 + InboxMessage + 1 + + + + + + MessageHeader + Undefined + 8 + MessageHeader + 1 + + + + + + statusRaw + + + + ownedCryptoIdentity + + + + name + + + + isForcefullyTrustedByUser + + + + maskingUID + + + + rawMessageIdUid + + + + insertionDate + + + + ownAPIKey + + + + hasEncryptedExtendedMessagePayload + + + + declined + + + + ContactIdentityDetailsTrusted + Undefined + 42 + ContactIdentityDetailsTrusted + 1 + + + + + + backupJsonVersion + + + + photoServerKeyEncoded + + + + photoServerKeyEncoded + + + + cryptoIdentity + + + + rawAppType + + + + 1 + receiveKeys + + + + groupUid + + + + expectedChildStateRawId + + + + rawOwnedIdentityIdentity + + + + nextRefreshTimestamp + + + + version + + + + rawMessageIdOwnedIdentity + + + + ContactGroupDetailsPublished + Undefined + 29 + ContactGroupDetailsPublished + 1 + + + + + + OutboxAttachmentSession + Undefined + 11 + OutboxAttachmentSession + 1 + + + + + + ownedCryptoIdentity + + + + nonceFromServer + + + + rawPhotoServerKeyEncoded + + + + seedForNextSendKey + + + + metadata + + + + timestamp + + + + 1 + protocolInstance + + + + photoFilename + + + + rawMessageIdUid + + + + signature + + + + chunkNumber + + + + ContactDevice + Undefined + 10 + ContactDevice + 1 + + + + + + PersistedEngineDialog + Undefined + 45 + PersistedEngineDialog + 1 + + + + + + version + + + + 1 + contactGroups + + + + 1 + groupMembers + + + + rawCapabilities + + + + isOneToOne + + + + aFullRatchetOfTheSendSeedIsInProgress + + + + 1 + ownedIdentity + + + + signedURL + + + + rawMessageIdOwnedIdentity + + + + rawAuthState + + + + 1 + rawPublishedDetails + + + + localDownloadTimestamp + + + + rawOwnedIdentity + + + + GroupV2SignatureReceived + Undefined + 31 + GroupV2SignatureReceived + 1 + + + + + + encryptedContentRaw + + + + rawPhotoServerLabel + + + + rawPhotoServerLabel + + + + groupInvitationNonce + + + + uuid + + + + groupInvitationNonce + + + + rawIdentifier + + + + 1 + latestDetails + + + + messageToSendRawId + + + + rawOwnPermissions + + + + rawLabel + + + + 1 + contactIdentity + + + + rawMessageIdUid + + + + ContactGroupOwned + Undefined + 16 + ContactGroupOwned + 1 + + + + + + OwnedIdentityDetailsPublished + Undefined + 48 + OwnedIdentityDetailsPublished + 1 + + + + + + uid + + + + 1 + otherDevices + + + + rawEncryptedExtendedMessagePayload + + + + 1 + groupMemberships + + + + rawPhotoServerLabel + + + + timestampOfLastFullRatchet + + + + rawMessageIdOwnedIdentity + + + + userDialogUuid + + + + photoServerKeyEncoded + + + + nextRefreshTimestamp + + + + 1 + chunks + + + + ciphertextChunkLength + + + + IdentityServerUserData + Undefined + 47 + IdentityServerUserData + 1 + + + + + + ContactGroupV2Member + Undefined + 33 + ContactGroupV2Member + 1 + + + + + + isRevokedAsCompromised + + + + uid + + + + cryptoSuiteVersion + + + + 1 + attachment + + + + rawMessageIdUid + + + + rawJwks + + + + markedForDeletion + + + + PendingServerQuery + Undefined + 19 + PendingServerQuery + 1 + + + + + + forExport + + + + serializedCoreDetails + + + + serializedCoreDetails + + + + rawIdentity + + + + rawPermissions + + + + timestamp + + + + acknowledgedTimeStamp + + + + 1 + parentProtocolInstance + + + + rawPushTopic + + + + encodedObvDialog + + + + encryptionPublicKeyRaw + + + + ContactGroupJoined + Undefined + 5 + ContactGroupJoined + 1 + + + + + + ReceivedMessage + Undefined + 38 + ReceivedMessage + 1 + + + + + + 1 + channelCreationProtocolInstanceInWaitingState + + + + rawMessageIdOwnedIdentity + + + + serializedCoreDetails + + + + timestampOfLastFullRatchetSentMessage + + + + rawMessageIdUid + + + + identityServer + + + + frozen + + + + rawPhotoServerLabel + + + + rawLabel + + + + cleartextChunkWasWrittenToAttachmentFile + + + + OutboxAttachmentChunk + Undefined + 37 + OutboxAttachmentChunk + 1 + + + + + + OutboxAttachment + Undefined + 22 + OutboxAttachment + 1 + + + + + + 1 + rawBackupKey + + + + Undefined + 24 + ChannelCreationWithOwnedDeviceProtocolInstance + 1 + + + + + + 1 + ownedIdentity + + + + 1 + contactGroupsV2 + + + + ownedIdentityIdentity + + + + 1 + currentDeviceIdentity + + + + deviceUid + + + + currentDeviceUid + + + + rawIdentity + + + + timestampFromServer + + + + rawOwnedIdentity + + + + 1 + rawTrustedDetails + + + + messagePayload + + + + InboxAttachmentSession + Undefined + 7 + InboxAttachmentSession + 1 + + + + + + version + + + + version + + + + rawPermissions + + + + 1 + rawContactGroup + + + + 1 + attachment + + + + attachmentNumber + + + + 1 + groupMembers + + + + rawServerURL + + + + rawOwnedIdentityIdentity + + + + keyGenerationTimestamp + + + + TrustEstablishmentCommitmentReceived + Undefined + 41 + TrustEstablishmentCommitmentReceived + 1 + + + + + + BackupKey + Undefined + 27 + BackupKey + 1 + + + + + + 1 + publishedIdentityDetails + + + + 1 + ownedIdentity + + + + rawMessageIdUid + + + + 1 + contactGroupInCaseTheDetailsArePublished + + + + 1 + provisions + + + + rawStatus + + + + mediatorOrGroupOwnerCryptoIdentity + + + + groupVersion + + + + serializedIdentityCoreDetails + + + + 1 + message + + + + rawOwnedIdentity + + + + downloadedTimeStamp + + + + PendingDeleteFromServer + Undefined + 26 + PendingDeleteFromServer + 1 + + + + + + ContactGroupV2Details + Undefined + 9 + ContactGroupV2Details + 1 + + + + + + rawDateOfLastBootstrappedContactDeviceDiscovery + + + + rawMessageIdOwnedIdentity + + + + fullRatchetingCountOfLastProvision + + + + rawRevocationType + + + + encodedEncodedInputs + + + + rawOwnedIdentity + + + + rawPushTopics + + + + messageUploadTimestampFromServer + + + + CachedWellKnown + Undefined + 43 + CachedWellKnown + 1 + + + + + + 1 + contactGroupOwned + + + + serializedIdentityCoreDetails + + + + 1 + contactGroupJoined + + + + chunkNumber + + + + commitment + + + + rawVerifiedAdministratorsChain + + + + rawRemoteDeviceUid + + + + lastKeyVerificationPromptTimestamp + + + + OwnedIdentityMaskingUID + Undefined + 13 + OwnedIdentityMaskingUID + 1 + + + + + + rawCategory + + + + 1 + channelCreationWithRemoteOwnedDeviceInWaitingState + + + + rawMessageUidFromServer + + + + 1 + chunks + + + + mediatorOrGroupOwnerTrustLevelMajor + + + + ownGroupInvitationNonce + + + + version + + + + photoFilename + + + + encryptedChunkURL + + + + KeyMaterial + Undefined + 12 + KeyMaterial + 1 + + + + + + ServerSession + Undefined + 47 + ServerSession + 1 + + + + + + rawOwnedIdentity + + + + 1 + pendingGroupMembers + + + + 1 + contactIdentities + + + + rawIdentity + + + + 1 + remoteDeviceIdentity + + + + rawMessageIdUid + + + + isConfirmed + + + + revocationTimestamp + + + + encodedUserDialogResponse + + + + signature + + + + rawServerSignatureKey + + + + attachmentLength + + + + rawExtendedMessagePayloadKey + + + + OwnedDevice + Undefined + 51 + OwnedDevice + 1 + + + + + + serializedIdentityCoreDetails + + + + 1 + rawContactGroup + + + + 1 + rawContactIdentity + + + + cryptoKeyId + + + + ciphertextChunkLength + + + + 1 + ownedIdentity + + + + rawOwnedIdentity + + + + serializedSharedSettings + + + + 1 + protocolInstance + + + + lastSuccessfulKeyVerificationTimestamp + + + + DeletedOutboxMessage + Undefined + 17 + DeletedOutboxMessage + 1 + + + + + + ChannelCreationPingSignatureReceived + Undefined + 2 + ChannelCreationPingSignatureReceived + 1 + + + + + + rawGroupUID + + + + photoFilename + + + + 1 + persistedTrustOrigins + + + + serverURL + + + + 1 + contactGroupInCaseTheDetailsAreTrusted + + + + cryptoSuiteVersion + + + + rawObvGroupV2Identifier + + + + rawBlobMainSeed + + + + 1 + contactIdentity + + + + 1 + session + + + + photoServerKeyEncoded + + + + rawCleartextChunkLength + + + + Backup + Undefined + 1 + Backup + 1 + + + + + + ProtocolInstanceWaitingForContactUpgradeToOneToOne + Undefined + 34 + ProtocolInstanceWaitingForContactUpgradeToOneToOne + 1 + + + + + + signature + + + + trustLevelRaw + + + + toCryptoIdentity + + + + numberOfDecryptedMessagesSinceLastFullRatchetSentMessage + + + + 1 + keycloakServer + + + + protocolInstanceUid + + + + encodedElements + + + + selfRevocationTestNonce + + + + rawAPIKeyExpirationDate + + + + attachmentNumber + + + + rawMessageIdOwnedIdentity + + + + ChannelCreationWithContactDeviceProtocolInstance + Undefined + 20 + ChannelCreationWithContactDeviceProtocolInstance + 1 + + + + + + 1 + contactGroup + + + + groupMembersVersion + + + + rawIdentifier + + + + encodedKey + + + + cleartextChunkLength + + + + clientId + + + + 1 + rawOtherMembers + + + + macKeyRaw + + + + ProtocolInstance + Undefined + 53 + ProtocolInstance + 1 + + + + + + rawServerURL + + + + 1 + linkBetweenProtocolInstance + + + + photoServerKeyEncoded + + + + timestampFromServer + + + + fullRatchetingCount + + + + 1 + message + + + + timestamp + + + + rawBlobVersionSeed + + + + rawPhotoServerLabel + + + + rawMessageIdOwnedIdentity + + + + PersistedTrustOrigin + Undefined + 39 + PersistedTrustOrigin + 1 + + + + + + ContactIdentityDetailsPublished + Undefined + 23 + ContactIdentityDetailsPublished + 1 + + + + + + 1 + currentDevice + + + + 1 + publishedDetails + + + + cancelExternallyRequested + + + + 1 + contactGroups + + + + wrappedKey + + + + numberOfEncryptedMessages + + + + protocolMessageRawId + + + + encodedQueryType + + + + serverURL + + + + rawAPIKeyStatus + + + + cancelExternallyRequested + + + + rawMessageIdUid + + + + ContactIdentityToContactIdentityMigrationPolicyV48ToV49 + ContactIdentity + Undefined + 49 + ContactIdentity + 1 + + + + + + groupUid + + + + timestamp + + + + rawOwnedIdentity + + + + contactCryptoIdentity + + + + expirationTimestamp + + + + dummyVariableForMigration + + + + 1 + pendingGroupMembers + + + + clientSecret + + + + downloadTimestampFromServer + + + + successfulVerificationCount + + + + KeycloakServerToKeycloakServerMigrationPolicyV48ToV49 + KeycloakServer + Undefined + 50 + KeycloakServer + 1 + + + + + + OwnedIdentity + Undefined + 52 + OwnedIdentity + 1 + + + + + + nextRefreshTimestamp + + + + rawPhotoServerLabel + + + + uploaded + + + + 1 + publishedIdentityDetails + + + + rawCapabilities + + + + seedForNextProvisionedReceiveKey + + + + trustTypeRaw + + + + rawCategory + + + + downloadTimestamp + + + + serializedIdentityCoreDetails + + + + photoFilename + + + + rawMessageIdUid + + + + PendingGroupMember + Undefined + 28 + PendingGroupMember + 1 + + + + + + creationDate + + + + 1 + message + + + + numberOfEncryptedMessagesAtTheTimeOfTheLastFullRatchet + + + + attachmentNumber + + + + protocolRawId + + + + encodedResponseType + + + + 1 + managedOwnedIdentity + + + + deleteAfterSend + + + + rawAPIPermissions + + + + wrappedKey + + + + GroupServerUserData + Undefined + 44 + GroupServerUserData + 1 + + + + + + 1 + groupOwner + + + + cryptoIdentity + + + + 1 + attachment + + + + signature + + + + messageToSendRawId + + + + selfRatchetingCount + + + + encryptedChunkURL + + + + keycloakUserId + + + + 1 + rawOwnedIdentity + + + + encryptedContent + + + + uidRaw + + + + ContactGroupV2PendingMember + Undefined + 30 + ContactGroupV2PendingMember + 1 + + + + + + InboxAttachment + Undefined + 15 + InboxAttachment + 1 + + + + + + rawLabel + + + + serializedCoreDetails + + + + 1 + waitingForTrustLevelIncrease + + + + 1 + headers + + + + uid + + + + selfRatchetingCount + + + + 1 + session + + + + 1 + contact + + + + rawGroupAdminServerAuthenticationPrivateKey + + + + serverURL + + + + photoServerKeyEncoded + + + + version + + + + signedURL + + + + KeycloakRevokedIdentity + Undefined + 14 + KeycloakRevokedIdentity + 1 + + + + + + MutualScanSignatureReceived + Undefined + 46 + MutualScanSignatureReceived + 1 + + + + + + cryptoProtocolRawId + + + + 1 + keycloakServer + + + + 1 + contactGroupsOwned + + + + encryptedContent + + + + numberOfEncryptedMessagesSinceLastFullRatchetSentMessage + + + + encodedAuthenticatedDecryptionKey + + + + rawMessageIdOwnedIdentity + + + + ownedIdentity + + + + encodedAuthenticatedEncryptionKey + + + + rawOwnedCryptoId + + + + 1 + dbAttachments + + + \ No newline at end of file diff --git a/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationPolicies/ContactIdentityToContactIdentityMigrationPolicyV48ToV49.swift b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationPolicies/ContactIdentityToContactIdentityMigrationPolicyV48ToV49.swift new file mode 100644 index 00000000..f8702f0a --- /dev/null +++ b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationPolicies/ContactIdentityToContactIdentityMigrationPolicyV48ToV49.swift @@ -0,0 +1,99 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import OlvidUtils +import ObvCrypto + + +final class ContactIdentityToContactIdentityMigrationPolicyV48ToV49: NSEntityMigrationPolicy, ObvErrorMaker { + + static let errorDomain = "ContactIdentity" + static let debugPrintPrefix = "[\(errorDomain)][ContactIdentityToContactIdentityMigrationPolicyV48ToV49]" + + // Tested + override func createDestinationInstances(forSource sInstance: NSManagedObject, in mapping: NSEntityMapping, manager: NSMigrationManager) throws { + + do { + + debugPrint("\(Self.debugPrintPrefix) createDestinationInstances starts") + defer { + debugPrint("\(Self.debugPrintPrefix) createDestinationInstances ends") + } + + let dInstance = try initializeDestinationInstance(forEntityName: "ContactIdentity", + forSource: sInstance, + in: mapping, + manager: manager, + errorDomain: Self.errorDomain) + defer { + manager.associate(sourceInstance: sInstance, withDestinationInstance: dInstance, for: mapping) + } + + // Move the old `cryptoIdentity` to the new `rawIdentity` attribute. + // Doing this allows to remove the usage of the ObvCryptoIdentityTransformer (ValueTransformer). + + ValueTransformer.setValueTransformer(ObvCryptoIdentityTransformerForMigration(), forName: .obvCryptoIdentityTransformerName) + + guard let cryptoIdentity = sInstance.value(forKey: "cryptoIdentity") as? ObvCryptoIdentity else { + throw ObvError.couldNotGetCryptoIdentity + } + + dInstance.setValue(cryptoIdentity.getIdentity(), forKey: "rawIdentity") + + } catch { + assertionFailure() + throw error + } + + } + + enum ObvError: Error { + case couldNotGetCryptoIdentity + } + +} + + +private final class ObvCryptoIdentityTransformerForMigration: ValueTransformer { + + override public class func transformedValueClass() -> AnyClass { + return ObvCryptoIdentity.self + } + + override public class func allowsReverseTransformation() -> Bool { + return true + } + + /// Transform an ObvIdentity into an instance of Data + override public func transformedValue(_ value: Any?) -> Any? { + guard let obvCryptoIdentity = value as? ObvCryptoIdentity else { return nil } + return obvCryptoIdentity.getIdentity() + } + + override public func reverseTransformedValue(_ value: Any?) -> Any? { + guard let data = value as? Data else { return nil } + return ObvCryptoIdentity(from: data) + } +} + +private extension NSValueTransformerName { + static let obvCryptoIdentityTransformerName = NSValueTransformerName(rawValue: "ObvCryptoIdentityTransformer") +} diff --git a/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationPolicies/KeycloakServerToKeycloakServerMigrationPolicyV48ToV49.swift b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationPolicies/KeycloakServerToKeycloakServerMigrationPolicyV48ToV49.swift new file mode 100644 index 00000000..9c649eed --- /dev/null +++ b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v48_to_v49/MigrationPolicies/KeycloakServerToKeycloakServerMigrationPolicyV48ToV49.swift @@ -0,0 +1,139 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import OlvidUtils +import ObvCrypto + +/// This policy allows to migrate the API keys found in each ``OwnedIdentity`` entity to its (optional) associated `KeycloakServer` entity. +/// ``OwnedIdentity`` without keycloak server will "loose" their API key, as they are not needed anymore. +final class KeycloakServerToKeycloakServerMigrationPolicyV48ToV49: NSEntityMigrationPolicy, ObvErrorMaker { + + static let errorDomain = "KeycloakServer" + static let debugPrintPrefix = "[\(errorDomain)][KeycloakServerToKeycloakServerMigrationPolicyV48ToV49]" + + private static let apiKeyForOwnedIdentityKey = "KeycloakServerToKeycloakServerMigrationPolicyV48ToV49.apiKeyForOwnedIdentityKey" + + // Tested + override func begin(_ mapping: NSEntityMapping, with manager: NSMigrationManager) throws { + + do { + + // This method is called once for this entity, before all relationships of all entities have been re-created. + + // We look for all owned identities to get their (optional) `apiKey` value (UUID). Since we want to store these values in the KeycloakServer corresponding to this owned identity, we store the value in the manager's userInfo dictionary. + + let fetchRequest = NSFetchRequest(entityName: "OwnedIdentity") + let ownedIdentityObjects = try manager.sourceContext.fetch(fetchRequest) + + var apiKeyForOwnedIdentity = [Data: UUID]() + + for ownedIdentityObject in ownedIdentityObjects { + guard let ownedIdentity = ownedIdentityObject.value(forKey: "cryptoIdentity") as? ObvCryptoIdentity else { + throw ObvError.couldNotGetCryptoIdentity + } + if let apiKey = ownedIdentityObject.value(forKey: "apiKey") as? UUID { + apiKeyForOwnedIdentity[ownedIdentity.getIdentity()] = apiKey + } + } + + var userInfo = manager.userInfo ?? [AnyHashable: Any]() + userInfo[Self.apiKeyForOwnedIdentityKey] = apiKeyForOwnedIdentity + manager.userInfo = userInfo + + } catch { + assertionFailure() + throw error + } + + } + + + // Tested + override func end(_ mapping: NSEntityMapping, manager: NSMigrationManager) throws { + + do { + + // This method is called once for this entity, after all relationships of all entities have been re-created. + + debugPrint("\(Self.debugPrintPrefix) end(_ mapping: NSEntityMapping, manager: NSMigrationManager) starts") + defer { + debugPrint("\(Self.debugPrintPrefix) end(_ mapping: NSEntityMapping, manager: NSMigrationManager) ends") + } + + guard let apiKeyForOwnedIdentity = manager.userInfo?[Self.apiKeyForOwnedIdentityKey] as? [Data: UUID] else { + throw ObvError.couldNotRecoverApiKeyForOwnedIdentityDictFromManagersUserInfo + } + + let fetchRequest = NSFetchRequest(entityName: "KeycloakServer") + let keycloakServerObjects = try manager.destinationContext.fetch(fetchRequest) + + for keycloakServerObject in keycloakServerObjects { + guard let rawOwnedIdentity = keycloakServerObject.value(forKey: "rawOwnedIdentity") as? Data else { + throw ObvError.couldNotGetCryptoIdentity + } + if let apiKey = apiKeyForOwnedIdentity[rawOwnedIdentity] { + keycloakServerObject.setValue(apiKey, forKey: "ownAPIKey") + } else { + assertionFailure("We expect a keycloak managed owned identity to have an API key") + } + } + + } catch { + assertionFailure() + throw error + } + + } + + + enum ObvError: Error { + case couldNotGetCryptoIdentity + case couldNotRecoverApiKeyForOwnedIdentityDictFromManagersUserInfo + } + +} + + +private final class ObvCryptoIdentityTransformerForMigration: ValueTransformer { + + override public class func transformedValueClass() -> AnyClass { + return ObvCryptoIdentity.self + } + + override public class func allowsReverseTransformation() -> Bool { + return true + } + + /// Transform an ObvIdentity into an instance of Data + override public func transformedValue(_ value: Any?) -> Any? { + guard let obvCryptoIdentity = value as? ObvCryptoIdentity else { return nil } + return obvCryptoIdentity.getIdentity() + } + + override public func reverseTransformedValue(_ value: Any?) -> Any? { + guard let data = value as? Data else { return nil } + return ObvCryptoIdentity(from: data) + } +} + +private extension NSValueTransformerName { + static let obvCryptoIdentityTransformerName = NSValueTransformerName(rawValue: "ObvCryptoIdentityTransformer") +} diff --git a/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v49_to_v50/MigrationEngineDatabase_v49_to_v50.md b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v49_to_v50/MigrationEngineDatabase_v49_to_v50.md new file mode 100644 index 00000000..5467dcb3 --- /dev/null +++ b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v49_to_v50/MigrationEngineDatabase_v49_to_v50.md @@ -0,0 +1,36 @@ +# Engine database migration from v49 to v50 + +## PendingServerQuery: many modifications + +The model was changed from this: + + + + + + + + +to this: + + + + + + + + + +- The `isWebSocket` attribute is new but has a default value which is ok for old server queries. This does not prevent migration. + +- The `encodedElements` attribute is now called `rawEncodedElements`. The `elementID` allows to perform a lightweight migration. + +- The `encodedQueryType` attribute is now called `rawEncodedQueryType`. The `elementID` allows to perform a lightweight migration. + +- The `encodedResponseType` attribute is now called `rawEncodedResponseType`. The `elementID` allows to perform a lightweight migration. + +- The `ownedIdentity` attribute is now called `rawOwnedIdentity` and its type changed from OwnedCryptoId (that used a Core Data transformer) to Binary. This requires a heavyweight migration. + +## Conclusion + +A heavyweight migration is required. diff --git a/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v49_to_v50/MigrationEngineDatabase_v49_to_v50.xcmappingmodel/xcmapping.xml b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v49_to_v50/MigrationEngineDatabase_v49_to_v50.xcmappingmodel/xcmapping.xml new file mode 100644 index 00000000..357bc299 --- /dev/null +++ b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v49_to_v50/MigrationEngineDatabase_v49_to_v50.xcmappingmodel/xcmapping.xml @@ -0,0 +1,2154 @@ + + + + + + 134481920 + 6E900BA2-0629-49C7-B625-AA6AFE6F0D6C + 520 + + + + NSPersistenceFrameworkVersion + 1327 + NSStoreModelVersionChecksumKey + bMpud663vz0bXQE24C6Rh4MvJ5jVnzsD2sI3njZkKbc= + NSStoreModelVersionHashes + + XDDevAttributeMapping + + 0plcXXRN7XHKl5CcF+fwriFmUpON3ZtcI/AfK748aWc= + + XDDevEntityMapping + + qeN1Ym3TkWN1G6dU9RfX6Kd2ccEvcDVWHpd3LpLgboI= + + XDDevMappingModel + + EqtMzvRnVZWkXwBHu4VeVGy8UyoOe+bi67KC79kphlQ= + + XDDevPropertyMapping + + XN33V44TTGY4JETlMoOB5yyTKxB+u4slvDIinv0rtGA= + + XDDevRelationshipMapping + + akYY9LhehVA/mCb4ATLWuI9XGLcjpm14wWL1oEBtIcs= + + + NSStoreModelVersionHashesDigest + +Hmc2uYZK6og+Pvx5GUJ7oW75UG4V/ksQanTjfTKUnxyGWJRMtB5tIRgVwGsrd7lz/QR57++wbvWsr6nxwyS0A== + NSStoreModelVersionHashesVersion + 3 + NSStoreModelVersionIdentifiers + + + + + + + + + timestamp + + + + Backup + Undefined + 47 + Backup + 1 + + + + + + photoFilename + + + + rawGroupUID + + + + rawIdentifier + + + + metadata + + + + signature + + + + rawDateOfLastBootstrappedContactDeviceDiscovery + + + + numberOfEncryptedMessages + + + + revocationTimestamp + + + + clientSecret + + + + ciphertextChunkLength + + + + cancelExternallyRequested + + + + contactCryptoIdentity + + + + trustTypeRaw + + + + rawPhotoServerLabel + + + + signedURL + + + + timestampFromServer + + + + ContactGroupJoined + Undefined + 11 + ContactGroupJoined + 1 + + + + + + 1 + rawTrustedDetails + + + + 1 + dbAttachments + + + + photoServerKeyEncoded + + + + encodedObvDialog + + + + 1 + groupOwner + + + + signature + + + + 1 + pendingGroupMembers + + + + groupInvitationNonce + + + + encodedUserDialogResponse + + + + cancelExternallyRequested + + + + OutboxAttachment + Undefined + 41 + OutboxAttachment + 1 + + + + + + frozen + + + + ContactGroupV2PendingMember + Undefined + 32 + ContactGroupV2PendingMember + 1 + + + + + + extendedMessagePayload + + + + OwnedIdentityMaskingUID + Undefined + 15 + OwnedIdentityMaskingUID + 1 + + + + + + 1 + linkBetweenProtocolInstance + + + + PersistedTrustOrigin + Undefined + 52 + PersistedTrustOrigin + 1 + + + + + + 1 + attachment + + + + cryptoIdentity + + + + timestamp + + + + GroupServerUserData + Undefined + 35 + GroupServerUserData + 1 + + + + + + rawServerURL + + + + 1 + remoteDeviceIdentity + + + + OutboxMessage + Undefined + 20 + OutboxMessage + 1 + + + + + + rawMessageIdOwnedIdentity + + + + photoServerKeyEncoded + + + + 1 + managedOwnedIdentity + + + + rawIdentity + + + + DeletedOutboxMessage + Undefined + 17 + DeletedOutboxMessage + 1 + + + + + + 1 + keycloakServer + + + + numberOfEncryptedMessagesAtTheTimeOfTheLastFullRatchet + + + + keycloakUserId + + + + cleartextChunkWasWrittenToAttachmentFile + + + + deleteAfterSend + + + + 1 + currentDevice + + + + photoFilename + + + + backupJsonVersion + + + + messageToSendRawId + + + + TrustEstablishmentCommitmentReceived + Undefined + 19 + TrustEstablishmentCommitmentReceived + 1 + + + + + + 1 + contact + + + + serializedCoreDetails + + + + 1 + attachment + + + + uploaded + + + + ContactGroupV2Details + Undefined + 12 + ContactGroupV2Details + 1 + + + + + + rawPhotoServerLabel + + + + uuid + + + + deviceUid + + + + rawCapabilities + + + + rawPermissions + + + + protocolInstanceUid + + + + creationDate + + + + 1 + persistedTrustOrigins + + + + fromCryptoIdentity + + + + ChannelCreationPingSignatureReceived + Undefined + 54 + ChannelCreationPingSignatureReceived + 1 + + + + + + declined + + + + 1 + attachment + + + + rawPhotoServerLabel + + + + nextRefreshTimestamp + + + + rawMessageIdUid + + + + trustLevelRaw + + + + ProtocolInstanceWaitingForContactUpgradeToOneToOne + Undefined + 36 + ProtocolInstanceWaitingForContactUpgradeToOneToOne + 1 + + + + + + numberOfEncryptedMessagesSinceLastFullRatchetSentMessage + + + + downloadedTimeStamp + + + + latestGroupUpdateTimestamp + + + + encodedAuthenticatedEncryptionKey + + + + KeycloakServer + Undefined + 8 + KeycloakServer + 1 + + + + + + rawPhotoServerIdentity + + + + encryptedContentRaw + + + + ownedCryptoIdentity + + + + version + + + + 1 + headers + + + + ServerSession + Undefined + 49 + ServerSession + 1 + + + + + + photoFilename + + + + photoFilename + + + + serializedCoreDetails + + + + cryptoIdentity + + + + 1 + trustedDetails + + + + rawMessageIdOwnedIdentity + + + + 1 + publishedDetails + + + + uid + + + + 1 + rawContactGroup + + + + encryptedChunkURL + + + + protocolMessageRawId + + + + encryptedContent + + + + rawGroupAdminServerAuthenticationPrivateKey + + + + acknowledgedTimeStamp + + + + 1 + waitingForTrustLevelIncrease + + + + hasEncryptedExtendedMessagePayload + + + + 1 + revokedIdentities + + + + encryptionPublicKeyRaw + + + + serializedIdentityCoreDetails + + + + serializedIdentityCoreDetails + + + + rawLabel + + + + cryptoSuiteVersion + + + + rawStatus + + + + 1 + contactGroups + + + + remoteCryptoIdentity + + + + ContactIdentityDetailsPublished + Undefined + 25 + ContactIdentityDetailsPublished + 1 + + + + + + cryptoProtocolRawId + + + + PendingDeleteFromServer + Undefined + 10 + PendingDeleteFromServer + 1 + + + + + + encryptedChunkURL + + + + fileURL + + + + 1 + keycloakServer + + + + latestRevocationListTimetamp + + + + forExport + + + + 1 + protocolInstance + + + + rawPhotoServerKeyEncoded + + + + insertionDate + + + + photoFilename + + + + 1 + contactGroup + + + + rawVerifiedAdministratorsChain + + + + photoServerKeyEncoded + + + + LinkBetweenProtocolInstances + Undefined + 43 + LinkBetweenProtocolInstances + 1 + + + + + + photoServerKeyEncoded + + + + version + + + + isActive + + + + rawMessageIdUid + + + + 1 + contactIdentity + + + + protocolRawId + + + + isAppMessageWithUserContent + + + + 1 + publishedIdentityDetails + + + + OwnedIdentity + Undefined + 30 + OwnedIdentity + 1 + + + + + + localDownloadTimestamp + + + + keyGenerationTimestamp + + + + 1 + contactGroup + + + + version + + + + groupMembersVersion + + + + rawOwnedIdentity + + + + fullRatchetingCount + + + + 1 + chunks + + + + remoteDeviceUid + + + + currentStateRawId + + + + rawCleartextChunkLength + + + + ownAPIKey + + + + rawMessageIdOwnedIdentity + + + + rawPhotoServerLabel + + + + rawBackupKeyUid + + + + isWebSocket + + + + rawMessageIdOwnedIdentity + + + + photoServerKeyEncoded + + + + 1 + unsortedAttachments + + + + rawLastModificationTimestamp + + + + GroupV2ServerUserData + Undefined + 48 + GroupV2ServerUserData + 1 + + + + + + rawPhotoServerLabel + + + + 1 + contactGroupJoined + + + + ContactDevice + Undefined + 33 + ContactDevice + 1 + + + + + + rawPhotoServerLabel + + + + 1 + groupMembers + + + + isDeletionInProgress + + + + toCryptoIdentity + + + + maskingUID + + + + 1 + rawContactIdentity + + + + rawMessageIdOwnedIdentity + + + + isVoipMessage + + + + markedForDeletion + + + + InboxAttachment + Undefined + 18 + InboxAttachment + 1 + + + + + + cryptoKeyId + + + + ContactGroupV2 + Undefined + 1 + ContactGroupV2 + 1 + + + + + + lastKeyVerificationPromptTimestamp + + + + ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/ObvEngine-v49.xcdatamodel + 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WAAAc2gAAHOkAABz4AAAc+QAAHQcAAB0IAAAdCQAAHQoAAB0LAAAdDAAAHSEAAB0iAAAdKgAAHTYAAB1KAAAdWQAAHWgAAB13AAAdewAAHYoAAB2ZAAAdqAAAHbcAAB3GAAAd0gAAHeQAAB3zAAAeAgAAHhEAAB4gAAAeLwAAHj4AAB5NAAAeYgAAHmMAAB5rAAAedwAAHosAAB6aAAAeqQAAHrgAAB68AAAeywAAHtoAAB7pAAAe+AAAHwcAAB8TAAAfJQAAHzQAAB9DAAAfUgAAH2EAAB9iAAAfcQAAH4AAAB+PAAAfpAAAH6UAAB+tAAAfuQAAH80AAB/cAAAf6wAAH/oAAB/+AAAgDQAAIBwAACArAAAgOgAAIEkAACBVAAAgZwAAIHYAACCFAAAglAAAIKMAACCyAAAgwQAAINAAACDlAAAg5gAAIO4AACD6AAAhDgAAIR0AACEsAAAhOwAAIT8AACFOAAAhXQAAIWwAACF7AAAhigAAIZYAACGoAAAhtwAAIcYAACHVAAAh5AAAIfMAACICAAAiEQAAIiYAACInAAAiLwAAIjsAACJPAAAiXgAAIm0AACJ8AAAigAAAIo8AACKeAAAirQAAIrwAACLLAAAi1wAAIukAACL4AAAjBwAAIxYAACMlAAAjNAAAI0MAACNSAAAjUwAAI1YAACNfAAAjbgAAI30AACOMAAAjoQAAI6IAACOqAAAjtgAAI8oAACPZAAAj6AAAI/cAACP7AAAkCgAAJBkAACQoAAAkNwAAJEYAACRSAAAkZAAAJHMAACSCAAAkkQAAJKAAACSvAAAkvgAAJM0AACTQAAAk3wAAJO4AACT9AAAlAAAAJRoAACUbAAAlIQAAJS0AACVDAAAlUgAAJVUAACVkAAAlcwAAJXcAACV8AAAlfQAAJX4AACWNAAAlnAAAJZ8AACWuAAAlvQAAJcEAACXQAAAl3wAAJeAAACYAAAAmAQAAJgIAACYDAAAmBAAAJgUAACYGAAAmBwAAJggAACYJAAAmCgAAJgsAACYMAAAmDQAAJg4AACYjAAAmJAAAJiwAACY4AAAmTAAAJlsAACZqAAAmeQAAJn0AACaMAAAmmwAAJqoAACa5AAAmyAAAJtQAACbmAAAm9QAAJwQAACcTAAAnIgAAJzEAACdAAAAnQQAAJ1AAACdlAAAnZgAAJ24AACd6AAAnjgAAJ50AACesAAAnuwAAJ78AACfOAAAn3QAAJ+wAACf7AAAoCgAAKBYAACgoAAAoNwAAKEYAAChVAAAoZAAAKH4AACh/AAAohQAAKJEAACinAAAotgAAKLkAACjIAAAo1wAAKNsAACjhAAAo4gAAKOMAACjkAAAo8wAAKQIAACkFAAApFAAAKSMAACknAAApNgAAKUUAAClGAAApYAAAKWEAACliAAApYwAAKWQAACllAAApZgAAKWcAACloAAApaQAAKWoAAClrAAApgAAAKYEAACmJAAAplQAAKakAACm4AAApxwAAKdYAACnaAAAp6QAAKfgAACoHAAAqFgAAKiUAACoxAAAqQwAAKlIAACphAAAqcAAAKn8AACqOAAAqnQAAKqwAACrBAAAqwgAAKsoAACrWAAAq6gAAKvkAACsIAAArFwAAKxsAACsqAAArOQAAK0gAACtXAAArZgAAK3IAACuEAAArkwAAK6IAACuxAAArwAAAK88AACveAAAr7QAALAIAACwDAAAsCwAALBcAACwrAAAsOgAALEkAACxYAAAsXAAALGsAACx6AAAsiQAALJgAACynAAAsswAALMUAACzUAAAs4wAALPIAAC0BAAAtEAAALR8AAC0uAAAtQwAALUQAAC1MAAAtWAAALWwAAC17AAAtigAALZkAAC2dAAAtrAAALbsAAC3KAAAt2QAALegAAC30AAAuBgAALhUAAC4kAAAuMwAALkIAAC5cAAAuXQAALmMAAC5vAAAuhQAALpQAAC6XAAAupgAALrUAAC65AAAuwAAALsEAAC7CAAAuwwAALsQAAC7TAAAu4gAALuUAAC70AAAvAwAALwcAAC8WAAAvJQAALyYAAC9AAAAvQQAAL0IAAC9DAAAvRAAAL0UAAC9GAAAvRwAAL0gAAC9JAAAvSgAAL0sAAC9gAAAvYQAAL2kAAC91AAAviQAAL5gAAC+nAAAvtgAAL7oAAC/JAAAv2AAAL+cAAC/2AAAwBQAAMBEAADAjAAAwMgAAMEEAADBQAAAwXwAAMG4AADB9AAAwjAAAMKEAADCiAAAwqgAAMLYAADDKAAAw2QAAMOgAADD3AAAw+wAAMQoAADEZAAAxKAAAMTcAADFGAAAxUgAAMWQAADFzAAAxggAAMZEAADGgAAAxrwAAMb4AADHNAAAx4gAAMeMAADHrAAAx9wAAMgsAADIaAAAyKQAAMjgAADI8AAAySwAAMloAADJpAAAyeAAAMocAADKTAAAypQAAMrQAADLDAAAy0gAAMuEAADLiAAAy8QAAMwAAADMPAAAzJAAAMyUAADMtAAAzOQAAM00AADNcAAAzawAAM3oAADN+AAAzjQAAM5wAADOrAAAzugAAM8kAADPVAAAz5wAAM/YAADQFAAA0FAAANCMAADQyAAA0QQAANFAAADRlAAA0ZgAANG4AADR6AAA0jgAANJ0AADSsAAA0uwAANL8AADTOAAA03QAANOwAADT7AAA1CgAANRYAADUoAAA1NwAANUYAADVVAAA1ZAAANXMAADWCAAA1kQAANaYAADWnAAA1rwAANbsAADXPAAA13gAANe0AADX8AAA2AAAANg8AADYeAAA2LQAANjwAADZLAAA2VwAANmkAADZ4AAA2hwAANpYAADalAAA2tAAANsMAADbSAAA25wAANugAADbwAAA2/AAANxAAADcfAAA3LgAANz0AADdBAAA3UAAAN18AADduAAA3fQAAN4wAADeYAAA3qgAAN7kAADfIAAA31wAAN+YAADf1AAA4BAAAOBMAADgoAAA4KQAAODEAADg9AAA4UQAAOGAAADhvAAA4fgAAOIIAADiRAAA4oAAAOK8AADi+AAA4zQAAONkAADjrAAA4+gAAOQkAADkYAAA5JwAAOTYAADlFAAA5VAAAOWkAADlqAAA5cgAAOX4AADmSAAA5oQAAObAAADm/AAA5wwAAOdIAADnhAAA58AAAOf8AADoOAAA6GgAAOiwAADo7AAA6SgAAOlkAADpoAAA6dwAAOoYAADqVAAA6qgAAOqsAADqzAAA6vwAAOtMAADriAAA68QAAOwAAADsEAAA7EwAAOyIAADsxAAA7QAAAO08AADtbAAA7bQAAO3wAADuLAAA7mgAAO6kAADu4AAA7xwAAO9YAADvrAAA77AAAO/QAADwAAAA8FAAAPCMAADwyAAA8QQAAPEUAADxUAAA8YwAAPHIAADyBAAA8kAAAPJwAADyuAAA8vQAAPMwAADzbAAA86gAAPPkAAD0IAAA9FwAAPRoAAD0pAAA9OAAAPUcAAD1cAAA9XQAAPWUAAD1xAAA9hQAAPZQAAD2jAAA9sgAAPbYAAD3FAAA91AAAPeMAAD3yAAA+AQAAPg0AAD4fAAA+LgAAPj0AAD5MAAA+WwAAPmoAAD55AAA+iAAAPp0AAD6eAAA+pgAAPrIAAD7GAAA+1QAAPuQAAD7zAAA+9wAAPwYAAD8VAAA/JAAAPzMAAD9CAAA/TgAAP2AAAD9vAAA/fgAAP40AAD+cAAA/qwAAP7oAAD/JAAA/3gAAP98AAD/nAAA/8wAAQAcAAEAWAABAJQAAQDQAAEA4AABARwAAQFYAAEBlAABAdAAAQIMAAECPAABAoQAAQLAAAEC/AABAzgAAQN0AAED3AABA+AAAQP4AAEEKAABBIAAAQS8AAEEyAABBQQAAQVAAAEFUAABBWAAAQVkAAEFoAABBdwAAQXoAAEGJAABBmAAAQZwAAEGrAABBugAAQbsAAEHFAABBxgAAQccAAEHcAABB3QAAQeUAAEHxAABCBQAAQhQAAEIjAABCMgAAQjYAAEJFAABCVAAAQmMAAEJyAABCgQAAQo0AAEKfAABCrgAAQr0AAELMAABC2wAAQuoAAEL5AABDCAAAQx0AAEMeAABDJgAAQzIAAENGAABDVQAAQ2QAAENzAABDdwAAQ4YAAEOVAABDpAAAQ7MAAEPCAABDzgAAQ+AAAEPvAABD/gAARA0AAEQcAABEHQAARCwAAEQ7AABESgAARF8AAERgAABEaAAARHQAAESIAABElwAARKYAAES1AABEuQAARMgAAETXAABE5gAARPUAAEUEAABFEAAARSIAAEUxAABFQAAARU8AAEVeAABFbQAARXwAAEWLAABFjgAARZ0AAEWsAABFuwAARdAAAEXRAABF2QAAReUAAEX5AABGCAAARhcAAEYmAABGKgAARjkAAEZIAABGVwAARmYAAEZ1AABGgQAARpMAAEaiAABGsQAARsAAAEbPAABG3gAARu0AAEb8AABHEQAARxIAAEcaAABHJgAARzoAAEdJAABHWAAAR2cAAEdrAABHegAAR4kAAEeYAABHpwAAR7YAAEfCAABH1AAAR+MAAEfyAABIAQAASBAAAEgfAABILgAASD0AAEhSAABIUwAASFsAAEhnAABIewAASIoAAEiZAABIqAAASKwAAEi7AABIygAASNkAAEjoAABI9wAASQMAAEkVAABJJAAASTMAAElCAABJUQAASWAAAElvAABJfgAASZMAAEmUAABJnAAASagAAEm8AABJywAASdoAAEnpAABJ7QAASfwAAEoLAABKGgAASikAAEo4AABKRAAASlYAAEplAABKdAAASoMAAEqSAABKoQAASrAAAEq/AABKwgAAStEAAErgAABK7wAASwQAAEsFAABLDQAASxkAAEstAABLPAAAS0sAAEtaAABLXgAAS20AAEt8AABLiwAAS5oAAEupAABLtQAAS8cAAEvWAABL5QAAS/QAAEwDAABMEgAATCEAAEwwAABMRQAATEYAAExOAABMWgAATG4AAEx9AABMjAAATJsAAEyfAABMrgAATL0AAEzMAABM2wAATOoAAEz2AABNCAAATRcAAE0mAABNNQAATUQAAE1TAABNYgAATXEAAE2GAABNhwAATY8AAE2bAABNrwAATb4AAE3NAABN3AAATeAAAE3vAABN/gAATg0AAE4cAABOKwAATjcAAE5JAABOWAAATmcAAE52AABOhQAATpQAAE6jAABOsgAATscAAE7IAABO0AAATtwAAE7wAABO/wAATw4AAE8dAABPIQAATzAAAE8/AABPTgAAT10AAE9sAABPeAAAT4oAAE+ZAABPqAAAT7cAAE/GAABP1QAAT+QAAE/zAABQCAAAUAkAAFARAABQHQAAUDEAAFBAAABQTwAAUF4AAFBiAABQcQAAUIAAAFCPAABQngAAUK0AAFC5AABQywAAUNoAAFDpAABQ+AAAUQcAAFEWAABRJQAAUSYAAFE1AABRSgAAUUsAAFFTAABRXwAAUXMAAFGCAABRkQAAUaAAAFGkAABRswAAUcIAAFHRAABR4AAAUe8AAFH7AABSDQAAUhwAAFIrAABSOgAAUkkAAFJYAABSZwAAUmgAAFJ3AABSjAAAUo0AAFKVAABSoQAAUrUAAFLEAABS0wAAUuIAAFLmAABS9QAAUwQAAFMTAABTIgAAUzEAAFM9AABTTwAAU14AAFNtAABTfAAAU4sAAFOaAABTqQAAU7gAAFPNAABTzgAAU9YAAFPiAABT9gAAVAUAAFQUAABUIwAAVCcAAFQ2AABURQAAVFQAAFRjAABUcgAAVH4AAFSQAABUnwAAVK4AAFS9AABUzAAAVNsAAFTqAABU6wAAVPoAAFUPAABVEAAAVRgAAFUkAABVOAAAVUcAAFVWAABVZQAAVWkAAFV4AABVhwAAVZYAAFWlAABVtAAAVcAAAFXSAABV4QAAVfAAAFX/AABWDgAAVh0AAFYsAABWOwAAVlAAAFZRAABWWQAAVmUAAFZ5AABWiAAAVpcAAFamAABWqgAAVrkAAFbIAABW1wAAVuYAAFb1AABXAQAAVxMAAFciAABXMQAAV0AAAFdPAABXXgAAV20AAFd8AABXkQAAV5IAAFeaAABXpgAAV7oAAFfJAABX2AAAV+cAAFfrAABX+gAAWAkAAFgYAABYJwAAWDYAAFhCAABYVAAAWGMAAFhyAABYgQAAWJAAAFifAABYrgAAWK8AAFi+AABY0wAAWNQAAFjcAABY6AAAWPwAAFkLAABZGgAAWSkAAFktAABZPAAAWUsAAFlaAABZaQAAWXgAAFmEAABZlgAAWaUAAFm0AABZwwAAWdIAAFnhAABZ8AAAWf8AAFoCAABaHAAAWh0AAFojAABaLwAAWkUAAFpUAABaVwAAWmYAAFp1AABaeAAAWocAAFqWAABamQAAWqgAAFq3AABauwAAWsoAAFrZAABa2gAAWuQAAFrlAABa5gAAWucAAFr8AABa/QAAWwUAAFsRAABbJQAAWzQAAFtDAABbUgAAW1YAAFtlAABbdAAAW4MAAFuSAABboQAAW60AAFu/AABbzgAAW90AAFvsAABb+wAAXAoAAFwZAABcGgAAXCkAAFw+AABcPwAAXEcAAFxTAABcZwAAXHYAAFyFAABclAAAXJgAAFynAABctgAAXMUAAFzUAABc4wAAXO8AAF0BAABdEAAAXR8AAF0uAABdPQAAXVcAAF1YAABdXgAAXWoAAF2AAABdjwAAXZIAAF2hAABdsAAAXbMAAF3CAABd0QAAXdQAAF3jAABd8gAAXfYAAF4FAABeFAAAXhUAAF45AABeOgAAXjsAAF48AABePQAAXj4AAF4/AABeQAAAXkEAAF5CAABeQwAAXkQAAF5FAABeRgAAXkcAAF5IAABeSQAAXl4AAF5fAABeZwAAXnMAAF6HAABelgAAXqUAAF60AABeuAAAXscAAF7WAABe5QAAXvQAAF8DAABfDwAAXyEAAF8wAABfPwAAX04AAF9dAABfbAAAX3sAAF+KAABfnwAAX6AAAF+oAABftAAAX8gAAF/XAABf5gAAX/UAAF/5AABgCAAAYBcAAGAmAABgNQAAYEQAAGBQAABgYgAAYHEAAGCAAABgjwAAYJ4AAGCtAABgvAAAYMsAAGDgAABg4QAAYOkAAGD1AABhCQAAYRgAAGEnAABhNgAAYToAAGFJAABhWAAAYWcAAGF2AABhhQAAYZEAAGGjAABhsgAAYcEAAGHQAABh3wAAYe4AAGH9AABiDAAAYiEAAGIiAABiKgAAYjYAAGJKAABiWQAAYmgAAGJ3AABiewAAYooAAGKZAABiqAAAYrcAAGLGAABi0gAAYuQAAGLzAABjAgAAYxEAAGMgAABjIQAAYzAAAGM/AABjTgAAY2MAAGNkAABjbAAAY3gAAGOMAABjmwAAY6oAAGO5AABjvQAAY8wAAGPbAABj6gAAY/kAAGQIAABkFAAAZCYAAGQ1AABkRAAAZFMAAGRiAABkcQAAZIAAAGSPAABkpAAAZKUAAGStAABkuQAAZM0AAGTcAABk6wAAZPoAAGT+AABlDQAAZRwAAGUrAABlOgAAZUkAAGVVAABlZwAAZXYAAGWFAABllAAAZaMAAGW9AABlvgAAZcQAAGXQAABl5gAAZfUAAGX4AABmBwAAZhYAAGYZAABmKAAAZjcAAGY6AABmSQAAZlgAAGZcAABmawAAZnoAAGZ7AABmhwAAZogAAGaJAABmigAAZosAAGagAABmoQAAZqkAAGa1AABmyQAAZtgAAGbnAABm9gAAZvoAAGcJAABnGAAAZycAAGc2AABnRQAAZ1EAAGdjAABncgAAZ4EAAGeQAABnnwAAZ7kAAGe6AABnwAAAZ8wAAGfiAABn8QAAZ/QAAGgDAABoEgAAaBYAAGgdAABoHgAAaB8AAGggAABoIQAAaDAAAGg/AABoQgAAaFEAAGhgAABoZAAAaHMAAGiCAABogwAAaK8AAGiwAABosQAAaLIAAGizAABotAAAaLUAAGi2AABotwAAaLgAAGi5AABougAAaLsAAGi8AABovQAAaL4AAGi/AABowAAAaMEAAGjCAABowwAAaNgAAGjZAABo4QAAaO0AAGkBAABpEAAAaR8AAGkuAABpMgAAaUEAAGlQAABpXwAAaW4AAGl9AABpiQAAaZsAAGmqAABpuQAAacgAAGnXAABp5gAAafUAAGoEAABqGQAAahoAAGoiAABqLgAAakIAAGpRAABqYAAAam8AAGpzAABqggAAapEAAGqgAABqrwAAar4AAGrKAABq3AAAausAAGr6AABrCQAAaxgAAGsnAABrNgAAa0UAAGtaAABrWwAAa2MAAGtvAABrgwAAa5IAAGuhAABrsAAAa7QAAGvDAABr0gAAa+EAAGvwAABr/wAAbAsAAGwdAABsLAAAbC0AAGw8AABsSwAAbFoAAGxpAABseAAAbIcAAGycAABsnQAAbKUAAGyxAABsxQAAbNQAAGzjAABs8gAAbPYAAG0FAABtFAAAbSMAAG0yAABtQQAAbU0AAG1fAABtbgAAbX0AAG2MAABtmwAAbbUAAG22AABtvAAAbcgAAG3eAABt7QAAbfAAAG3/AABuDgAAbhEAAG4gAABuLwAAbjIAAG5BAABuUAAAblQAAG5jAABucgAAbnMAAG6FAABuhgAAbocAAG6IAABuiQAAbooAAG6LAABujAAAbqEAAG6iAABuqgAAbrYAAG7KAABu2QAAbugAAG73AABu+wAAbwoAAG8ZAABvKAAAbzcAAG9GAABvUgAAb2QAAG9zAABvggAAb5EAAG+gAABvrwAAb74AAG/NAABv4gAAb+MAAG/rAABv9wAAcAsAAHAaAABwKQAAcDgAAHA8AABwSwAAcFoAAHBpAABweAAAcIcAAHCTAABwpQAAcLQAAHDDAABw0gAAcOEAAHDwAABw/wAAcQ4AAHEjAABxJAAAcSwAAHE4AABxTAAAcVsAAHFqAABxeQAAcX0AAHGMAABxmwAAcaoAAHG5AABxyAAAcdQAAHHmAABx9QAAcgQAAHITAAByIgAAcjEAAHJAAAByTwAAcmQAAHJlAABybQAAcnkAAHKNAABynAAAcqsAAHK6AAByvgAAcs0AAHLcAABy6wAAcvoAAHMJAABzFQAAcycAAHM2AABzRQAAc1QAAHNjAABzcgAAc4EAAHOQAABzpQAAc6YAAHOuAABzugAAc84AAHPdAABz7AAAc/sAAHP/AAB0DgAAdB0AAHQsAAB0OwAAdEoAAHRWAAB0aAAAdHcAAHSGAAB0lQAAdKQAAHSzAAB0wgAAdNEAAHTmAAB05wAAdO8AAHT7AAB1DwAAdR4AAHUtAAB1PAAAdUAAAHVPAAB1XgAAdW0AAHV8AAB1iwAAdZcAAHWpAAB1uAAAdccAAHXWAAB15QAAdfQAAHYDAAB2EgAAdicAAHYoAAB2MAAAdjwAAHZQAAB2XwAAdm4AAHZ9AAB2gQAAdpAAAHafAAB2rgAAdr0AAHbMAAB22AAAduoAAHb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0AACaAwAAmhIAAJohAACaLQAAmj8AAJpOAACaXQAAmmwAAJp7AACalQAAmpYAAJqcAACaqAAAmr4AAJrNAACa0AAAmt8AAJruAACa8QAAmwAAAJsPAACbEgAAmyEAAJswAACbNAAAm0MAAJtSAACbUwAAm18AAJtgAACbYQAAm2IAAJtjAACbeAAAm3kAAJuBAACbjQAAm6EAAJuwAACbvwAAm84AAJvSAACb4QAAm/AAAJv/AACcDgAAnB0AAJwpAACcOwAAnEoAAJxZAACcaAAAnHcAAJyGAACclQAAnKQAAJy5AACcugAAnMIAAJzOAACc4gAAnPEAAJ0AAACdDwAAnRMAAJ0iAACdMQAAnUAAAJ1PAACdXgAAnWoAAJ18AACdiwAAnZoAAJ2pAACduAAAnccAAJ3WAACd5QAAnfoAAJ37AACeAwAAng8AAJ4jAACeMgAAnkEAAJ5QAACeVAAAnmMAAJ5yAACegQAAnpAAAJ6fAACeqwAAnr0AAJ7MAACe2wAAnuoAAJ75AACfCAAAnxcAAJ8YAACfJwAAnzwAAJ89AACfRQAAn1EAAJ9lAACfdAAAn4MAAJ+SAACflgAAn6UAAJ+0AACfwwAAn9IAAJ/hAACf7QAAn/8AAKAOAACgHQAAoCwAAKA7AACgSgAAoFkAAKBoAACgawAAoHoAAKCJAACgmAAAoK0AAKCuAACgtgAAoMIAAKDWAACg5QAAoPQAAKEDAAChBwAAoRYAAKElAAChNAAAoUMAAKFSAAChXgAAoXAAAKF/AAChjgAAoZ0AAKGsAAChxgAAoccAAKHNAACh2QAAoe8AAKH+AACiAQAAohAAAKIfAACiIgAAojEAAKJAAACiQwAAolIAAKJhAACiZQAAonQAAKKDAACihAAAoooAAKKLAACioAAAoqEAAKKpAACitQAAoskAAKLYAACi5wAAovYAAKL6AACjCQAAoxgAAKMnAACjNgAAo0UAAKNRAACjYwAAo3IAAKOBAACjkAAAo58AAKOuAACjvQAAo8wAAKPQAACj2QAAo9oAAKP8AACj/QAApAMAAKQPAACkJQAApDQAAKQ3AACkRgAApFUAAKRYAACkZwAApHYAAKR5AACkiAAApJcAAKSbAACkqgAApLkAAKS6AACkyAAApMkAAKTKAACkywAApMwAAKTNAACk4gAApOMAAKTrAACk9wAApQsAAKUaAAClKQAApTgAAKU8AAClSwAApVoAAKVpAACleAAApYcAAKWTAAClpQAApbQAAKXDAACl0gAApeEAAKXwAACl/wAApg4AAKYjAACmJAAApiwAAKY4AACmTAAAplsAAKZqAACmeQAApn0AAKaMAACmmwAApqoAAKa5AACmyAAAptQAAKbmAACm9QAApwQAAKcTAACnIgAApzEAAKdAAACnTwAAp2QAAKdlAACnbQAAp3kAAKeNAACnnAAAp6sAAKe6AACnvgAAp80AAKfcAACn6wAAp/oAAKgJAACoFQAAqCcAAKg2AACoRQAAqFQAAKhjAACocgAAqIEAAKiQAACopQAAqKYAAKiuAACougAAqM4AAKjdAACo7AAAqPsAAKj/AACpDgAAqR0AAKksAACpOwAAqUoAAKlWAACpaAAAqXcAAKmGAACplQAAqaQAAKmzAACpwgAAqdEAAKnmAACp5wAAqe8AAKn7AACqDwAAqh4AAKotAACqPAAAqkAAAKpPAACqXgAAqm0AAKp8AACqiwAAqpcAAKqpAACquAAAqscAAKrWAACq1wAAquYAAKr1AACrBAAAqxMAAKsWAACrHAAAqyMAAKs9AACrPgAAq0QAAKtQAACrZgAAq3UAAKt4AACrhwAAq5YAAKuZAACrqAAAq7cAAKu6AACryQAAq9gAAKvcAACr6wAAq/oAAKv7AACsAQAArAIAAKwXAACsGAAArCAAAKwsAACsQAAArE8AAKxeAACsbQAArHEAAKyAAACsjwAArJ4AAKytAACsvAAArMgAAKzaAACs6QAArPgAAK0HAACtFgAArTAAAK0xAACtNwAArUMAAK1ZAACtaAAArWsAAK16AACtiQAArYwAAK2bAACtqgAAra0AAK28AACtywAArc8AAK3eAACt7QAAre4AAK30AACt9QAArgoAAK4LAACuEwAArh8AAK4zAACuQgAArlEAAK5gAACuZAAArnMAAK6CAACukQAArqAAAK6vAACuuwAArs0AAK7cAACu6wAArvoAAK8JAACvGAAArycAAK82AACvOgAAr0EAAK9CAACvSAAAr1cAAK9mAACvdQAAr3kAAK96AACvgQAAr5sAAK+cAACvogAAr64AAK/EAACv0wAAr9YAAK/lAACv9AAAr/cAALAGAACwFQAAsBgAALAnAACwNgAAsDoAALBJAACwWAAAsFkAALBfAACwYAAAsHUAALB2AACwfgAAsIoAALCeAACwrQAAsLwAALDLAACwzwAAsN4AALDtAACw/AAAsQsAALEaAACxJgAAsTgAALFHAACxVgAAsWUAALF0AACxjgAAsY8AALGVAACxoQAAsbcAALHGAACxyQAAsdgAALHnAACx6gAAsfkAALIIAACyCwAAshoAALIpAACyLQAAsjwAALJLAACyTAAAslQAALJVAACyVgAAsmsAALJsAACydAAAsoAAALKUAACyowAAsrIAALLBAACyxQAAstQAALLjAACy8gAAswEAALMQAACzHAAAsy4AALM9AACzTAAAs1sAALNqAACzeQAAs4gAALOXAACzrAAAs60AALO1AACzwQAAs9UAALPkAACz8wAAtAIAALQGAAC0FQAAtCQAALQzAAC0QgAAtFEAALRdAAC0bwAAtH4AALSNAAC0jgAAtJ0AALSsAAC0uwAAtMoAALTZAAC07gAAtO8AALT3AAC1AwAAtRcAALUmAAC1NQAAtUQAALVIAAC1VwAAtWYAALV1AAC1hAAAtZMAALWfAAC1sQAAtcAAALXPAAC13gAAte0AALX8AAC2CwAAthoAALYeAAC2JQAAtiYAALY1AAC2RAAAtlMAALZXAAC2WAAAtmcAALZ2AAC2hQAAtogAALaNAAC2nAAAtqsAALa6AAC2zwAAttAAALbYAAC25AAAtvgAALcHAAC3FgAAtyUAALcpAAC3OAAAt0cAALdWAAC3ZQAAt3QAALeAAAC3kgAAt6EAALewAAC3vwAAt84AALfoAAC36QAAt+8AALf7AAC4EQAAuCAAALgjAAC4MgAAuEEAALhEAAC4UwAAuGIAALhlAAC4dAAAuIMAALiHAAC4lgAAuKUAALimAAC4tgAAuLcAALi4AAC4uQAAuLoAALi7AAC40AAAuNEAALjZAAC45QAAuPkAALkIAAC5FwAAuSYAALkqAAC5OQAAuUgAALlXAAC5ZgAAuXUAALmBAAC5kwAAuaIAALmxAAC5wAAAuc8AALneAAC57QAAufwAALoRAAC6EgAAuhoAALomAAC6OgAAukkAALpYAAC6ZwAAumsAALp6AAC6iQAAupgAALqnAAC6tgAAusIAALrUAAC64wAAuvIAALsBAAC7EAAAux8AALsuAAC7PQAAu1IAALtTAAC7WwAAu2cAALt7AAC7igAAu5kAALuoAAC7rAAAu7sAALvKAAC72QAAu+gAALv3AAC8AwAAvBUAALwkAAC8MwAAvEIAALxRAAC8YAAAvG8AALx+AAC8kwAAvJQAALycAAC8qAAAvLwAALzLAAC82gAAvOkAALztAAC8/AAAvQsAAL0aAAC9KQAAvTgAAL1EAAC9VgAAvWUAAL10AAC9gwAAvZIAAL2hAAC9sAAAvb8AAL3UAAC91QAAvd0AAL3pAAC9/QAAvgwAAL4bAAC+KgAAvi4AAL49AAC+TAAAvlsAAL5qAAC+eQAAvoUAAL6XAAC+pgAAvrUAAL7EAAC+0wAAvuIAAL7xAAC/AAAAvxUAAL8WAAC/HgAAvyoAAL8+AAC/TQAAv1wAAL9rAAC/bwAAv34AAL+NAAC/nAAAv6sAAL+6AAC/xgAAv9gAAL/nAAC/9gAAwAUAAMAUAADAIwAAwDIAAMBBAADARAAAwFMAAMBiAADAcQAAwIYAAMCHAADAjwAAwJsAAMCvAADAvgAAwM0AAMDcAADA4AAAwO8AAMD+AADBDQAAwRwAAMErAADBNwAAwUkAAMFYAADBZwAAwXYAAMGFAADBlAAAwaMAAMGyAADBxwAAwcgAAMHQAADB3AAAwfAAAMH/AADCDgAAwh0AAMIhAADCMAAAwj8AAMJOAADCXQAAwmwAAMJ4AADCigAAwpkAAMKoAADCtwAAwsYAAMLVAADC5AAAwvMAAMMIAADDCQAAwxEAAMMdAADDMQAAw0AAAMNPAADDXgAAw2IAAMNxAADDgAAAw48AAMOeAADDrQAAw7kAAMPLAADD2gAAw+kAAMP4AADEBwAAxBYAAMQlAADEJgAAxDUAAMRKAADESwAAxFMAAMRfAADEcwAAxIIAAMSRAADEoAAAxKQAAMSzAADEwgAAxNEAAMTgAADE7wAAxPsAAMUNAADFHAAAxSsAAMU6AADFSQAAxWMAAMVkAADFagAAxXYAAMWMAADFmwAAxZ4AAMWtAADFvAAAxb8AAMXOAADF3QAAxeAAAMXvAADF/gAAxgIAAMYRAADGIAAAxiEAAMYzAADGNAAAxjUAAMY2AADGNwAAxjgAAMY5AADGTgAAxk8AAMZXAADGYwAAxncAAMaGAADGlQAAxqQAAMaoAADGtwAAxsYAAMbVAADG5AAAxvMAAMb/AADHEQAAxyAAAMcvAADHPgAAx00AAMdcAADHawAAx3oAAMePAADHkAAAx5gAAMekAADHuAAAx8cAAMfWAADH5QAAx+kAAMf4AADIBwAAyBYAAMglAADINAAAyEAAAMhSAADIYQAAyHAAAMh/AADIjgAAyJ0AAMisAADIrQAAyLwAAMjRAADI0gAAyNoAAMjmAADI+gAAyQkAAMkYAADJJwAAySsAAMk6AADJSQAAyVgAAMlnAADJdgAAyYIAAMmUAADJowAAybIAAMnBAADJ0AAAyd8AAMnuAADJ/QAAyhIAAMoTAADKGwAAyicAAMo7AADKSgAAylkAAMpoAADKbAAAynsAAMqKAADKmQAAyqgAAMq3AADKwwAAytUAAMrkAADK8wAAywIAAMsRAADLIAAAyy8AAMs+AADLUwAAy1QAAMtcAADLaAAAy3wAAMuLAADLmgAAy6kAAMutAADLvAAAy8sAAMvaAADL6QAAy/gAAMwEAADMFgAAzCUAAMw0AADMQwAAzFIAAMxhAADMcAAAzH8AAMyUAADMlQAAzJ0AAMypAADMvQAAzMwAAMzbAADM6gAAzO4AAMz9AADNDAAAzRsAAM0qAADNOQAAzUUAAM1XAADNZgAAzXUAAM2EAADNkwAAzaIAAM2xAADNwAAAzdUAAM3WAADN3gAAzeoAAM3+AADODQAAzhwAAM4rAADOLwAAzj4AAM5NAADOXAAAzmsAAM56AADOhgAAzpgAAM6nAADOtgAAzsUAAM7UAADO4wAAzvIAAM8BAADPFgAAzxcAAM8fAADPKwAAzz8AAM9OAADPXQAAz2wAAM9wAADPfwAAz44AAM+dAADPrAAAz7sAAM/HAADP2QAAz+gAAM/3AADQBgAA0BUAANAkAADQMwAA0EIAANBFAADQVAAA0GMAANByAADQhwAA0IgAANCQAADQnAAA0LAAANC/AADQzgAA0N0AANDhAADQ8AAA0P8AANEOAADRHQAA0SwAANE4AADRSgAA0VkAANFoAADRdwAA0YYAANGVAADRpAAA0aUAANG0AADRyQAA0coAANHSAADR3gAA0fIAANIBAADSEAAA0h8AANIjAADSMgAA0kEAANJQAADSXwAA0m4AANJ6AADSjAAA0psAANKqAADSuQAA0sgAANLXAADS5gAA0vUAANMKAADTCwAA0xMAANMfAADTMwAA00IAANNRAADTYAAA02QAANNzAADTggAA05EAANOgAADTrwAA07sAANPNAADT3AAA0+sAANP6AADUCQAA1BgAANQnAADUNgAA1EsAANRMAADUVAAA1GAAANR0AADUgwAA1JIAANShAADUpQAA1LQAANTDAADU0gAA1OEAANTwAADU/AAA1Q4AANUdAADVLAAA1TsAANVKAADVZAAA1WUAANVrAADVdwAA1Y0AANWcAADVnwAA1a4AANW9AADVwAAA1c8AANXeAADV4QAA1fAAANX/AADWAwAA1hIAANYhAADWIgAA1ioAANYrAADWLAAA1kEAANZCAADWSgAA1lYAANZqAADWeQAA1ogAANaXAADWmwAA1qoAANa5AADWyAAA1tcAANbmAADW8gAA1wQAANcTAADXIgAA1zEAANdAAADXTwAA114AANdfAADXbgAA14MAANeEAADXjAAA15gAANesAADXuwAA18oAANfZAADX3QAA1+wAANf7AADYCgAA2BkAANgoAADYNAAA2EYAANhVAADYZAAA2HMAANiCAADYkQAA2KAAANivAADYsgAA2MEAANjQAADY3wAA2PQAANj1AADY/QAA2QkAANkdAADZLAAA2TsAANlKAADZTgAA2V0AANlsAADZewAA2YoAANmZAADZpQAA2bcAANnGAADZ1QAA2eQAANnzAADaDQAA2g4AANoUAADaIAAA2jYAANpFAADaSAAA2lcAANpmAADaagAA2m8AANpwAADacQAA2oAAANqPAADakgAA2qEAANqwAADatAAA2sMAANrSAADa0wAA2vUAANr2AADa9wAA2vgAANr5AADa+gAA2vsAANr8AADa/QAA2v4AANr/AADbAAAA2wEAANsCAADbAwAA2xgAANsZAADbIQAA2y0AANtBAADbUAAA218AANtuAADbcgAA24EAANuQAADbnwAA264AANu9AADbyQAA29sAANvqAADb+QAA3AgAANwXAADcJgAA3DUAANxEAADcWQAA3FoAANxiAADcbgAA3IIAANyRAADcoAAA3K8AANyzAADcwgAA3NEAANzgAADc7wAA3P4AAN0KAADdHAAA3SsAAN06AADdSQAA3VgAAN1nAADddgAA3YUAAN2aAADdmwAA3aMAAN2vAADdwwAA3dIAAN3hAADd8AAA3fQAAN4DAADeEgAA3iEAAN4wAADePwAA3ksAAN5dAADebAAA3nsAAN6KAADemQAA3qgAAN63AADexgAA3tsAAN7cAADe5AAA3vAAAN8EAADfEwAA3yIAAN8xAADfNQAA30QAAN9TAADfYgAA33EAAN+AAADfjAAA354AAN+tAADfvAAA38sAAN/aAADf6QAA3/gAAOAHAADgHAAA4B0AAOAlAADgMQAA4EUAAOBUAADgYwAA4HIAAOB2AADghQAA4JQAAOCjAADgsgAA4MEAAODNAADg3wAA4O4AAOD9AADhDAAA4RsAAOEqAADhOQAA4UgAAOFdAADhXgAA4WYAAOFyAADhhgAA4ZUAAOGkAADhswAA4bcAAOHGAADh1QAA4eQAAOHzAADiAgAA4g4AAOIgAADiLwAA4j4AAOJNAADiXAAA4msAAOJ6AADiiQAA4p4AAOKfAADipwAA4rMAAOLHAADi1gAA4uUAAOL0AADi+AAA4wcAAOMWAADjJQAA4zQAAONDAADjTwAA42EAAONwAADjfwAA444AAOOdAADjrAAA47sAAOPKAADj3wAA4+AAAOPoAADj9AAA5AgAAOQXAADkJgAA5DUAAOQ5AADkSAAA5FcAAORmAADkdQAA5IQAAOSQAADkogAA5LEAAOTAAADkzwAA5N4AAOTtAADk/AAA5QsAAOUgAADlIQAA5SkAAOU1AADlSQAA5VgAAOVnAADldgAA5XoAAOWJAADlmAAA5acAAOW2AADlxQAA5dEAAOXjAADl8gAA5gEAAOYQAADmHwAA5i4AAOY9AADmTAAA5mEAAOZiAADmagAA5nYAAOaKAADmmQAA5qgAAOa3AADmuwAA5soAAObZAADm6AAA5vcAAOcGAADnEgAA5yQAAOczAADnQgAA51EAAOdgAADnbwAA534AAOeNAADnogAA56MAAOerAADntwAA58sAAOfaAADn6QAA5/gAAOf8AADoCwAA6BoAAOgpAADoOAAA6EcAAOhTAADoZQAA6HQAAOiDAADokgAA6KEAAOi7AADovAAA6MIAAOjOAADo5AAA6PMAAOj2AADpBQAA6RQAAOkXAADpJgAA6TUAAOk4AADpRwAA6VYAAOlaAADpaQAA6XgAAOl5AADphQAA6YYAAOmHAADpiAAA6YkAAOmeAADpnwAA6acAAOm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iAAEMsQABDMAAAQzPAAEM3gABDOoAAQz8AAENCwABDRoAAQ0pAAENOAABDUcAAQ1WAAENZQABDXoAAQ17AAENgwABDY8AAQ2jAAENsgABDcEAAQ3QAAEN1AABDeMAAQ3yAAEOAQABDhAAAQ4fAAEOKwABDj0AAQ5MAAEOWwABDmoAAQ55AAEOiAABDpcAAQ6mAAEOuwABDrwAAQ7EAAEO0AABDuQAAQ7zAAEPAgABDxEAAQ8VAAEPJAABDzMAAQ9CAAEPUQABD2AAAQ9sAAEPfgABD40AAQ+cAAEPqwABD7oAAQ/JAAEP2AABD+cAAQ/8AAEP/QABEAUAARARAAEQJQABEDQAARBDAAEQUgABEFYAARBlAAEQdAABEIMAARCSAAEQoQABEK0AARC/AAEQzgABEN0AARDsAAEQ+wABEQoAAREZAAERKAABET0AARE+AAERRgABEVIAARFmAAERdQABEYQAARGTAAERlwABEaYAARG1AAERxAABEdMAARHiAAER7gABEgAAARIPAAESHgABEi0AARI8AAESSwABEloAARJpAAESfgABEn8AARKHAAESkwABEqcAARK2AAESxQABEtQAARLYAAES5wABEvYAARMFAAETFAABEyMAARMvAAETQQABE1AAARNfAAETbgABE30AAROMAAETmwABE6oAARO/AAETwAABE8gAARPUAAET6AABE/cAARQGAAEUFQABFBkAARQoAAEUNwABFEYAARRVAAEUZAABFHAAARSCAAEUkQABFKAAARSvAAEUvgABFM0AARTcAAEU3QABFOwAARTvAAEU/gABFQ0AARUcAAEVMQABFTIAARU6AAEVRgABFVoAARVpAAEVeAABFYcAARWLAAEVmgABFakAARW4AAEVxwABFdYAARXiAAEV9AABFgMAARYSAAEWIQABFjAAARY/AAEWTgABFl0AARZyAAEWcwABFnsAARaHAAEWmwABFqoAARa5AAEWyAABFswAARbbAAEW6gABFvkAARcIAAEXFwABFyMAARc1AAEXRAABF1MAARdiAAEXcQABF4AAARePAAEXngABF7MAARe0AAEXvAABF8gAARfcAAEX6wABF/oAARgJAAEYDQABGBwAARgrAAEYOgABGEkAARhYAAEYZAABGHYAARiFAAEYlAABGKMAARiyAAEYwQABGNAAARjfAAEY9AABGPUAARj9AAEZCQABGR0AARksAAEZOwABGUoAARlOAAEZXQABGWwAARl7AAEZigABGZkAARmlAAEZtwABGcYAARnVAAEZ5AABGfMAARoCAAEaEQABGiAAARojAAEaMgABGkEAARpQAAEaZQABGmYAARpuAAEaegABGo4AARqdAAEarAABGrsAARq/AAEazgABGt0AARrsAAEa+wABGwoAARsWAAEbKAABGzcAARtGAAEbVQABG2QAARtzAAEbggABG5EAARuUAAEbrgABG68AARu1AAEbwQABG9cAARvmAAEb6QABG/gAARwHAAEcCwABHBAAARwRAAEcEgABHCEAARwwAAEcMwABHEIAARxRAAEcVQABHGQAARxzAAEcdAABHH4AARx/AAEcgAABHIEAARyWAAEclwABHJ8AARyrAAEcvwABHM4AARzdAAEc7AABHPAAARz/AAEdDgABHR0AAR0sAAEdOwABHUcAAR1ZAAEdaAABHXcAAR2GAAEdlQABHaQAAR2zAAEdwgABHdcAAR3YAAEd4AABHewAAR4AAAEeDwABHh4AAR4tAAEeMQABHkAAAR5PAAEeXgABHm0AAR58AAEeiAABHpoAAR6pAAEeuAABHscAAR7WAAEe5QABHvQAAR8DAAEfGAABHxkAAR8hAAEfLQABH0EAAR9QAAEfXwABH24AAR9yAAEfgQABH5AAAR+fAAEfrgABH70AAR/JAAEf2wABH+oAAR/5AAEgCAABIBcAASAxAAEgMgABIDgAASBEAAEgWgABIGkAASBsAAEgewABIIoAASCNAAEgnAABIKsAASCuAAEgvQABIMwAASDQAAEg3wABIO4AASDvAAEhBQABIQYAASEHAAEhCAABIQkAASEKAAEhCwABIQwAASENAAEhIgABISMAASErAAEhNwABIUsAASFaAAEhaQABIXgAASF8AAEhiwABIZoAASGpAAEhuAABIccAASHTAAEh5QABIfQAASIDAAEiEgABIiEAASIwAAEiPwABIk4AASJjAAEiZAABImwAASJ4AAEijAABIpsAASKqAAEiuQABIr0AASLMAAEi2wABIuoAASL5AAEjCAABIxQAASMmAAEjNQABI0QAASNTAAEjYgABI3EAASOAAAEjgQABI5AAASOlAAEjpgABI64AASO6AAEjzgABI90AASPsAAEj+wABI/8AASQOAAEkHQABJCwAASQ7AAEkSgABJFYAASRoAAEkdwABJIYAASSVAAEkpAABJLMAASTCAAEk0QABJOYAASTnAAEk7wABJPsAASUPAAElHgABJS0AASU8AAElQAABJU8AASVeAAElbQABJXwAASWLAAEllwABJakAASW4AAElxwABJdYAASXlAAEl9AABJgMAASYEAAEmEwABJigAASYpAAEmMQABJj0AASZRAAEmYAABJm8AASZ+AAEmggABJpEAASagAAEmrwABJr4AASbNAAEm2QABJusAASb6AAEnCQABJxgAAScnAAEnQQABJ0IAASdIAAEnVAABJ2oAASd5AAEnfAABJ4sAASeaAAEnnQABJ6wAASe7AAEnvgABJ80AASfcAAEn4AABJ+8AASf+AAEn/wABKAkAASgKAAEoCwABKAwAASghAAEoIgABKCoAASg2AAEoSgABKFkAAShoAAEodwABKHsAASiKAAEomQABKKgAASi3AAEoxgABKNIAASjkAAEo8wABKQIAASkRAAEpIAABKS8AASk+AAEpPwABKU4AASljAAEpZAABKWwAASl4AAEpjAABKZsAASmqAAEpuQABKb0AASnMAAEp2wABKeoAASn5AAEqCAABKhQAASomAAEqNQABKkQAASpTAAEqYgABKnEAASqAAAEqgQABKpAAASqlAAEqpgABKq4AASq6AAEqzgABKt0AASrsAAEq+wABKv8AASsOAAErHQABKywAASs7AAErSgABK1YAAStoAAErdwABK4YAASuVAAErpAABK7MAASvCAAEr0QABK9QAASvjAAEr8gABLAEAASwWAAEsFwABLB8AASwrAAEsPwABLE4AASxdAAEsbAABLHAAASx/AAEsjgABLJ0AASysAAEsuwABLMcAASzZAAEs6AABLPcAAS0GAAEtFQABLS8AAS0wAAEtNgABLUIAAS1YAAEtZwABLWoAAS15AAEtegABLYkAAS2MAAEtmwABLaoAAS2tAAEtvAABLcsAAS3PAAEt3gABLe0AAS3uAAEt+gABLfsAAS38AAEt/QABLf4AAS4TAAEuFAABLhwAAS4oAAEuPAABLksAAS5aAAEuaQABLm0AAS58AAEuiwABLpoAAS6pAAEuuAABLsQAAS7WAAEu5QABLvQAAS8DAAEvEgABLyEAAS8wAAEvMQABL0AAAS9VAAEvVgABL14AAS9qAAEvfgABL40AAS+cAAEvqwABL68AAS++AAEvzQABL9wAAS/rAAEv+gABMAYAATAYAAEwJwABMDYAATBFAAEwVAABMGMAATByAAEwcwABMIIAATCXAAEwmAABMKAAATCsAAEwwAABMM8AATDeAAEw7QABMPEAATEAAAExDwABMR4AATEtAAExPAABMUgAATFaAAExaQABMXgAATGHAAExlgABMaUAATG0AAExtQABMcQAATHZAAEx2gABMeIAATHuAAEyAgABMhEAATIgAAEyLwABMjMAATJCAAEyUQABMmAAATJvAAEyfgABMooAATKcAAEyqwABMroAATLJAAEy2AABMucAATL2AAEzBQABMwgAATMXAAEzJgABMzUAATNKAAEzSwABM1MAATNfAAEzcwABM4IAATORAAEzoAABM6QAATOzAAEzwgABM9EAATPgAAEz7wABM/sAATQNAAE0HAABNCsAATQ6AAE0SQABNFgAATRnAAE0dgABNIsAATSMAAE0lAABNKAAATS0AAE0wwABNNIAATThAAE05QABNPQAATUDAAE1EgABNSEAATUwAAE1PAABNU4AATVdAAE1bAABNXsAATWKAAE1pAABNaUAATWrAAE1twABNc0AATXcAAE13wABNe4AATX9AAE2AAABNg8AATYeAAE2IQABNjAAATY/AAE2QwABNlIAATZhAAE2YgABNm4AATZvAAE2cAABNnEAATZyAAE2hwABNogAATaQAAE2nAABNrAAATa/AAE2zgABNt0AATbhAAE28AABNv8AATcOAAE3HQABNywAATc4AAE3SgABN1kAATdoAAE3dwABN4YAATeVAAE3pAABN7MAATfIAAE3yQABN9EAATfdAAE38QABOAAAATgPAAE4HgABOCIAATgxAAE4QAABOE8AATheAAE4bQABOHkAATiLAAE4mgABOKkAATi4AAE4xwABONYAATjlAAE49AABOQkAATkKAAE5EgABOR4AATkyAAE5QQABOVAAATlfAAE5YwABOXIAATmBAAE5kAABOZ8AATmuAAE5ugABOcwAATnbAAE56gABOfkAAToIAAE6FwABOiYAATonAAE6NgABOksAATpMAAE6VAABOmAAATp0AAE6gwABOpIAATqhAAE6pQABOrQAATr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2AAFcOgABXEkAAVxYAAFcZwABXHYAAVyFAAFckQABXKMAAVyyAAFcwQABXNAAAVzfAAFc+QABXPoAAV0AAAFdDAABXSIAAV0xAAFdNAABXUMAAV1SAAFdVgABXVoAAV1bAAFdagABXXkAAV18AAFdiwABXZoAAV2eAAFdrQABXbwAAV29AAFdyQABXcoAAV3LAAFd4AABXeEAAV3pAAFd9QABXgkAAV4YAAFeJwABXjYAAV46AAFeSQABXlgAAV5nAAFedgABXoUAAV6RAAFeowABXrIAAV7BAAFe0AABXt8AAV7uAAFe/QABXwwAAV8hAAFfIgABXyoAAV82AAFfSgABX1kAAV9oAAFfdwABX3sAAV+KAAFfmQABX6gAAV+3AAFfxgABX9IAAV/kAAFf8wABYAIAAWARAAFgIAABYC8AAWA+AAFgTQABYGIAAWBjAAFgawABYHcAAWCLAAFgmgABYKkAAWC4AAFgvAABYMsAAWDaAAFg6QABYPgAAWEHAAFhEwABYSUAAWE0AAFhQwABYVIAAWFhAAFhcAABYX8AAWGOAAFhowABYaQAAWGsAAFhuAABYcwAAWHbAAFh6gABYfkAAWH9AAFiDAABYhsAAWIqAAFiOQABYkgAAWJUAAFiZgABYnUAAWKEAAFikwABYqIAAWKxAAFiwAABYs8AAWLSAAFi4QABYvAAAWL/AAFjFAABYxUAAWMdAAFjKQABYz0AAWNMAAFjWwABY2oAAWNuAAFjfQABY4wAAWObAAFjqgABY7kAAWPFAAFj1wABY+YAAWP1AAFkBAABZBMAAWQtAAFkLgABZDQAAWRAAAFkVgABZGUAAWRoAAFkdwABZIYAAWSKAAFkjwABZJAAAWSRAAFkoAABZK8AAWSyAAFkwQABZNAAAWTUAAFk4wABZPIAAWTzAAFlFQABZRYAAWUXAAFlGAABZRkAAWUaAAFlGwABZRwAAWUdAAFlHgABZR8AAWUgAAFlIQABZSIAAWUjAAFlOAABZTkAAWVBAAFlTQABZWEAAWVwAAFlfwABZY4AAWWSAAFloQABZbAAAWW/AAFlzgABZd0AAWXpAAFl+wABZgoAAWYZAAFmKAABZjcAAWZGAAFmVQABZmQAAWZ5AAFmegABZoIAAWaOAAFmogABZrEAAWbAAAFmzwABZtMAAWbiAAFm8QABZwAAAWc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pAAGVeAABlYcAAZWLAAGVmgABlakAAZW4AAGVxwABldYAAZXiAAGV9AABlgMAAZYSAAGWIQABljAAAZY/AAGWTgABll0AAZZyAAGWcwABlnsAAZaHAAGWmwABlqoAAZa5AAGWyAABlswAAZbbAAGW6gABlvkAAZcIAAGXFwABlyMAAZc1AAGXRAABl1MAAZdiAAGXcQABl4AAAZePAAGXngABl7MAAZe0AAGXvAABl8gAAZfcAAGX6wABl/oAAZgJAAGYDQABmBwAAZgrAAGYOgABmEkAAZhYAAGYZAABmHYAAZiFAAGYlAABmKMAAZiyAAGYwQABmNAAAZjfAAGY9AABmPUAAZj9AAGZCQABmR0AAZksAAGZOwABmUoAAZlOAAGZXQABmWwAAZl7AAGZigABmZkAAZmlAAGZtwABmcYAAZnVAAGZ5AABmfMAAZoCAAGaEQABmiAAAZo1AAGaNgABmj4AAZpKAAGaXgABmm0AAZp8AAGaiwABmo8AAZqeAAGarQABmrwAAZrLAAGa2gABmuYAAZr4AAGbBwABmxYAAZslAAGbNAABm0MAAZtSAAGbYQABm3YAAZt3AAGbfwABm4sAAZufAAGbrgABm70AAZvMAAGb0AABm98AAZvuAAGb/QABnAwAAZwbAAGcJwABnDkAAZxIAAGcVwABnGYAAZx1AAGchAABnJMAAZyiAAGcpQABnLQAAZzDAAGc0gABnOcAAZzoAAGc8AABnPwAAZ0QAAGdHwABnS4AAZ09AAGdQQABnVAAAZ1fAAGdbgABnX0AAZ2MAAGdmAABnaoAAZ25AAGdyAABndcAAZ3mAAGd9QABngQAAZ4TAAGeKAABnikAAZ4xAAGePQABnlEAAZ5gAAGebwABnn4AAZ6CAAGekQABnqAAAZ6vAAGevgABns0AAZ7ZAAGe6wABnvoAAZ8JAAGfGAABnycAAZ82AAGfRQABn1QAAZ9pAAGfagABn3IAAZ9+AAGfkgABn6EAAZ+wAAGfvwABn8MAAZ/SAAGf4QABn/AAAZ//AAGgDgABoBoAAaAsAAGgOwABoEoAAaBZAAGgaAABoHcAAaCGAAGglQABoKoAAaCrAAGgswABoL8AAaDTAAGg4gABoPEAAaEAAAGhBAABoRMAAaEiAAGhMQABoUAAAaFPAAGhWwABoW0AAaF8AAGhiwABoZoAAaGpAAGhuAABoccAAaHWAAGh6wABoewAAaH0AAGiAAABohQAAaIjAAGiMgABokEAAaJFAAGiVAABomMAAaJyAAGigQABopAAAaKcAAGirgABor0AAaLMAAGi2wABouoAAaL5AAGjCAABoxcAAaMsAAGjLQABozUAAaNBAAGjVQABo2QAAaNzAAGjggABo4YAAaOVAAGjpAABo7MAAaPCAAGj0QABo90AAaPvAAGj/gABpA0AAaQcAAGkKwABpDoAAaRJAAGkWAABpFsAAaR1AAGkdgABpHwAAaSIAAGkngABpK0AAaSwAAGkvwABpM4AAaTSAAGk1wABpNgAAaTZAAGk6AABpPcAAaT6AAGlCQABpRgAAaUcAAGlKwABpToAAaU7AAGlQwABpUQAAaVZAAGlWgABpWIAAaVuAAGlggABpZEAAaWgAAGlrwABpbMAAaXCAAGl0QABpeAAAaXvAAGl/gABpgoAAaYcAAGmKwABpjoAAaZJAAGmWAABpmcAAaZ2AAGmhQABppoAAaabAAGmowABpq8AAabDAAGm0gABpuEAAabwAAGm9AABpwMAAacSAAGnIQABpzAAAac/AAGnSwABp10AAadsAAGnewABp4oAAaeZAAGnqAABp7cAAafGAAGnyQABp+MAAafkAAGn6gABp/YAAagMAAGoGwABqB4AAagtAAGoPAABqEAAAahFAAGoRgABqEcAAahWAAGoZQABqGgAAah3AAGohgABqIoAAaiZAAGoqAABqKkAAai1AAGotgABqLcAAai4AAGouQABqM4AAajPAAGo1wABqOMAAaj3AAGpBgABqRUAAakkAAGpKAABqTcAAalGAAGpVQABqWQAAalzAAGpfwABqZEAAamgAAGprwABqb4AAanNAAGp3AABqesAAan6AAGqDwABqhAAAaoYAAGqJAABqjgAAapHAAGqVgABqmUAAappAAGqeAABqocAAaqWAAGqpQABqrQAAarAAAGq0gABquEAAarwAAGq/wABqw4AAasdAAGrLAABqzsAAatQAAGrUQABq1kAAatlAAGreQABq4gAAauXAAGrpgABq6oAAau5AAGryAABq9cAAavmAAGr9QABrAEAAawTAAGsIgABrDEAAaxAAAGsTwABrF4AAaxtAAGsfAABrJEAAaySAAGsmgABrKYAAay6AAGsyQABrNgAAaz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OAAHDUgABw2EAAcNwAAHDcQABw38AAcOAAAHDgQABw4IAAcODAAHDhAABw5kAAcOaAAHDogABw64AAcPCAAHD0QABw+AAAcPvAAHD8wABxAIAAcQRAAHEIAABxC8AAcQ+AAHESgABxFwAAcRrAAHEegABxIkAAcSYAAHEpwABxLYAAcTFAAHE2gABxNsAAcTjAAHE7wABxQMAAcUSAAHFIQABxTAAAcU0AAHFQwABxVIAAcVhAAHFcAABxX8AAcWLAAHFnQABxawAAcW7AAHFygABxdkAAcXoAAHF9wABxfgAAcYHAAHGHAABxh0AAcYlAAHGMQABxkUAAcZUAAHGYwABxnIAAcZ2AAHGhQABxpQAAcajAAHGsgABxsEAAcbNAAHG3wABxu4AAcb9AAHHDAABxxsAAccqAAHHOQABx0gAAcddAAHHXgABx2YAAcdyAAHHhgABx5UAAcekAAHHswABx7cAAcfGAAHH1QABx+QAAcfzAAHIAgAByA4AAcggAAHILwAByD4AAchNAAHIXAAByGsAAch6AAHIiQAByJ4AAcifAAHIpwAByLMAAcjHAAHI1gAByOUAAcj0AAHI+AAByQcAAckWAAHJJQAByTQAAclDAAHJTwAByWEAAclwAAHJfwAByY4AAcmdAAHJrAABybsAAcnKAAHJzQAByecAAcnoAAHJ7gAByfoAAcoQAAHKHwAByiIAAcoxAAHKQAABykQAAcpJAAHKSgABylkAAcpoAAHKawABynoAAcqJAAHKjQABypwAAcqrAAHKrAAByrQAAcq1AAHKygAByssAAcrTAAHK3wAByvMAAcsCAAHLEQAByyAAAcskAAHLMwABy0IAActRAAHLYAABy28AAct7AAHLjQABy5wAAcurAAHLugABy8kAAcvYAAHL5wABy/YAAcwLAAHMDAABzBQAAcwgAAHMNAABzEMAAcxSAAHMYQABzGUAAcx0AAHMgwABzJIAAcyhAAHMsAABzLwAAczOAAHM3QABzOwAAcz7AAHNCgABzRkAAc0oAAHNNwABzToAAc1UAAHNVQABzVsAAc1nAAHNfQABzYwAAc2PAAHNngABza0AAc2xAAHNtgABzbcAAc24AAHNxwABzdYAAc3ZAAHN6AABzfcAAc37AAHOCgABzhkAAc4aAAHOMgABzjMAAc40AAHONQABzjYAAc4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BAfiBBACBGzuBE/qBDpuBI92BDQOBH0SBEM2BJOeBC3GBA4SBDZOAY18QE09idk9ibGl2aW91c0NoYW5uZWxcSW5ib3hNZXNzYWdlXUNvbnRhY3REZXZpY2VfEC5DaGFubmVsQ3JlYXRpb25XaXRoT3duZWREZXZpY2VQcm90b2NvbEluc3RhbmNlXxAWSWRlbnRpdHlTZXJ2ZXJVc2VyRGF0YV8QFU91dGJveEF0dGFjaG1lbnRDaHVua18QF1BlbmRpbmdEZWxldGVGcm9tU2VydmVyW0tleU1hdGVyaWFsVkJhY2t1cF8QFFBlcnNpc3RlZFRydXN0T3JpZ2luXxASUGVuZGluZ0dyb3VwTWVtYmVyXxAXS2V5Y2xvYWtSZXZva2VkSWRlbnRpdHlfEBxMaW5rQmV0d2VlblByb3RvY29sSW5zdGFuY2VzXxAVR3JvdXBWMlNlcnZlclVzZXJEYXRhXxAcQ29udGFjdEdyb3VwRGV0YWlsc1B1Ymxpc2hlZF8QEUNvbnRhY3RHcm91cE93bmVkXxASQ29udGFjdEdyb3VwSm9pbmVkXxAkVHJ1c3RFc3RhYmxpc2htZW50Q29tbWl0bWVudFJlY2VpdmVkXxAURGVsZXRlZE91dGJveE1lc3NhZ2VfEBBQcm90b2NvbEluc3RhbmNlXktleWNsb2FrU2VydmVyXxAbQ29udGFjdEdyb3VwVjJQZW5kaW5nTWVtYmVyXxAtQ29udGFjdE93bmVkSWRlbnRpdHlEZWxldGlvblNpZ25hdHVyZVJlY2VpdmVkXxAaQ29udGFjdEdyb3VwRGV0YWlsc1RydXN0ZWRfEB1Db250YWN0SWRlbnRpdHlEZXRhaWxzVHJ1c3RlZF8QGEdyb3VwVjJTaWduYXR1cmVSZWNlaXZlZF8QElBlbmRpbmdTZXJ2ZXJRdWVyeV8QFkluYm94QXR0YWNobWVudFNlc3Npb25fEA9DYWNoZWRXZWxsS25vd25bT3duZWREZXZpY2VeU2VydmVyVXNlckRhdGFfEDBDaGFubmVsQ3JlYXRpb25XaXRoQ29udGFjdERldmljZVByb3RvY29sSW5zdGFuY2VfEA9Db250YWN0SWRlbnRpdHlfEBNHcm91cFNlcnZlclVzZXJEYXRhXENvbnRhY3RHcm91cF1PdXRib3hNZXNzYWdlXkNvbnRhY3RHcm91cFYyXU1lc3NhZ2VIZWFkZXJfEBVQZXJzaXN0ZWRFbmdpbmVEaWFsb2dfEBRDb250YWN0R3JvdXBWMk1lbWJlcl8QEE91dGJveEF0dGFjaG1lbnRfEBVDb250YWN0R3JvdXBWMkRldGFpbHNdU2VydmVyU2Vzc2lvbl8QMlByb3RvY29sSW5zdGFuY2VXYWl0aW5nRm9yQ29udGFjdFVwZ3JhZGVUb09uZVRvT25lXxAfQ29udGFjdElkZW50aXR5RGV0YWlsc1B1Ymxpc2hlZF8QG011dHVhbFNjYW5TaWduYXR1cmVSZWNlaXZlZFlQcm92aXNpb25fEBRJbmJveEF0dGFjaG1lbnRDaHVua18QF091dGJveEF0dGFjaG1lbnRTZXNzaW9uXxAWQ29udGFjdElkZW50aXR5RGV0YWlsc18QHU93bmVkSWRlbnRpdHlEZXRhaWxzUHVibGlzaGVkXxAPUmVjZWl2ZWRNZXNzYWdlXxATQ29udGFjdEdyb3VwRGV0YWlsc1lCYWNrdXBLZXlfEBdPd25lZElkZW50aXR5TWFza2luZ1VJRF8QJENoYW5uZWxDcmVhdGlvblBpbmdTaWduYXR1cmVSZWNlaXZlZF1Pd25lZElkZW50aXR5XxAPSW5ib3hBdHRhY2htZW50XxAZQ29udGFjdEdyb3VwRGV0YWlsc0xhdGVzdN8QEAAAAPEAAADyAAAA8wAAAPQAAAAhAAAA9QAAAPYAAAAjAAAA9wAAAPgAAAAOAAAAJQAAAPkAAAD6AAAAKAAAAPsAAAD8AAAA/QAAACkAAAApAAAAFAAAAQEAAAECAAAAMQAAACkAAAD8AAABBQAAAD0AAAD8AAABCAAAAQkAAAEKXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlW19pc0Fic3RyYWN0gEOAa4AEgASAAoBEgQMRgASAQ4EDE4AGgEOBAzKAQggS+EA4gVdvcmRlcmVk0wAAADoAAAA7AAAADgAAAQ4AAAEQAAAAtKEAAAEPgEWhAAABEYBGgGNeWERfUFN0ZXJlb3R5cGXZAAAAIQAAACUAAAEVAAAADgAAACgAAAEWAAAAIwAAAPsAAAEXAAAAeQAAAQ8AAAD8AAABGwAAABcAAAApAAAAMQAAAQoAAAEfXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgEGARYBDgGqAAIAECIBH0wAAADoAAAA7AAAADgAAASEAAAErAAAAtKkAAAEiAAABIwAAASQAAAElAAABJgAAAScAAAEoAAABKQAAASqASIBJgEqAS4BMgE2AToBPgFCpAAABLAAAAS0AAAEuAAABLwAAATAAAAExAAABMgAAATMAAAE0gFGAVYBWgFyAXYBfgGGAZIBogGNfEBNYRFBNQ29tcG91bmRJbmRleGVzXxAQWERfUFNLX2VsZW1lbnRJRF8QGVhEUE1VbmlxdWVuZXNzQ29uc3RyYWludHNfEBpYRF9QU0tfdmVyc2lvbkhhc2hNb2RpZmllcl8QGVhEX1BTS19mZXRjaFJlcXVlc3RzQXJyYXlfEBFYRF9QU0tfaXNBYnN0cmFjdF8QD1hEX1BTS191c2VySW5mb18QE1hEX1BTS19jbGFzc01hcHBpbmdfEBZYRF9QU0tfZW50aXR5Q2xhc3NOYW1l3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAUsAAAAXAAABEQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAASI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AIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxYAAAEKAAABCgAAABcAAAEKgACAYIAAgOYICAgIgFSAlggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABbwAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxcAAAEKAAABCgAAABcAAAEKgACA0IAAgOYICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABeoAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACA1IAAgOYICAgIgFSAmAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxkAAAEKAAABCgAAABcAAAEKgACAAIAAgOYICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgOYICAgIgFSAmggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxsAAAEKAAABCgAAABcAAAEKgACAAIAAgOYICAgIgFSAmwgIgAAI3xASAAABQAAAAUEAAAFCAAAHZwAAACEAAAFEAAABRQAAB2gAAAAjAAABQwAAB2kAAAFGAAA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AJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAmwAAABcAAJEzAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwQAAAQoAAAEKAAAAFwAAAQqAAIELpYAAgQufCAgICIBUgQHuCAiAAAjfEBQAAAD7AACSLAAAki0AAJIuAACSLwAAkjAAAJIxAAAAIQAAAA4AAJIyAAAAJQAAkjMAAAAoAACSNAAAkjUAAJI2AACSNwAAkjgAAJI5AAAAIwAABCwAAAD8AAAA/AAAkj0AAAApAAABAgAAAPwAAAAUAAABBQAAACkAAABfAACSRQAAkkYAAAApAAAAKQAAAPwAAJJKAACSSwAAAQIAAAAxXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNvcmRlcmVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNzdG9yYWdlXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNkdXBsaWNhdGVzCYBDgEOBC6eABIEDEYBDgAKBAxOABIAogQ6CgQumgASABIBDgQu4gQ6DgQMREpVlnIfTAAAAOgAAADsAAAAOAACSTwAAklEAAAC0oQAAAQ+ARaEAAJJSgQuogGPZAAAAIQAAACUAAJJVAAAADgAAACgAAJJWAAAAIwAAAPs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AAAjSAAAAOwAAAA4AAKPNAAABWqEAAKPOgQ0BgFPXAAAADgAAACUAAKPRAAAAIQAAACgAAKPSAAAAIwAAo9MAAAAXAAAAhwAAAIcAAKPXAAAArQAAADFZX3NwZWNpZmljWF9nZW5lcmFsgQ3rgACBDNSBDNSBDQKBDQMSX0HHT98QFAAAAPsAAKPbAACj3AAAo90AAKPeAACj3wAAo+AAAAAhAAAADgAAo+EAAAAlAACj4gAAACgAAKPjAACj5AAAo+UAAKPmAACj5wAAo+gAAAAjAAAELAAAAPwAAAD8AACj7AAAACkAAAECAAAA/AAAABQAAAEFAAAAKQAAAHEAAKP0AACj9QAAACkAAAApAAAA/AAAo/kAAKP6AAABAgAAADFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc29yZGVyZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3N0b3JhZ2VfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc2R1cGxpY2F0ZXMJgEOAQ4ENBYAEgQMRgEOAAoEDE4AEgDqBDZCBDQSABIAEgEOBDRaBDZGBAxESldXOaNMAAAA6AAAAOwAAAA4AAKP+AACkAAAAALShAAABD4BFoQAApAGBDQaAY9kAAAAhAAA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lAACj0QAAACEAAAAoAACj0gAAACMAAKPTAAAAFwAAAKUAAAClAAD/RAAAAKoAAAAxgQ3rgACBE8uBE8uBE/mBE/oSwX4I5t8QFAAAAPsAAP9IAAD/SQAA/0oAAP9LAAD/TAAA/00AAAAhAAAADgAA/04AAAAlAAD/TwAAACgAAP9QAAD/UQAA/1IAAP9TAAD/VAAA/1UAAAAjAAAELAAAAPwAAAD8AAD/WQAAACkAAAECAAAA/AAAABQAAAEFAAAAKQAAAG4AAP9hAAD/YgAAACkAAAApAAAA/AAA/2YAAP9nAAABAgAAADFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc29yZGVyZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3N0b3JhZ2VfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc2R1cGxpY2F0ZXMJgEOAQ4ET/IAEgQMRgEOAAoEDE4AEgDeBFIWBE/uABIAEgEOBFA2BFIaBAxEShr+w5tMAAAA6AAAAOwAAAA4AAP9rAAD/bQAAALShAAABD4BFoQAA/26BE/2AY9kAAAAhAAAAJQAA/3EAAAAOAAAAKAAA/3IAAAAjAAAA+wAA/3MAAACqAAABDwAAAPwAAAEbAAAAFwAAACkAAAA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hVQAAoXgAAKGfAAChvwAAoeYAAKINAACiLQAAolEAAKJ1AACigQAAooMAAKKFAACihwAAookAAKKLAACijQAAopAAAKKSAACilAAAopcAAKKZAACimwAAop4AAKKgAACioQAAoqYAAKKuAACixwAAoswAAKLOAACi0wAAotUAAKLXAACi5gAAoy8AAKNTAACjegAAo54AAKOgAACjogAAo6QAAKOmAACjqAAAo6oAAKOrAACjrQAAo8YAAKPrAACj7QAAo+8AAKPxAACj8wAAo/UAAKP3AACj+QAAo/sAAKP9AACkIgAApCQAAKQmAACkKAAApCoAAKQsAACkLgAApDAAAKQyAACkNAAApDYAAKRMAACkXwAApHsAAKSYAACktAAApMgAAKTaAACk8AAApQkAAKWEAACligAApZMAAKWgAAClrAAApbYAAKXAAAClywAApdYAAKXjAACl6wAApe0AAKXvAACl8QAApfMAAKX0AACl9QAApfYAAKX3AACl+QAApfsAAKX8AACl/QAApf8AAKYAAACmEQAAphIAAKYUAACmJQAApjAAAKY5AACmSAAAplUAAKZdAACmZgAApncAAKaKAACmmwAApq4AAKbFAACm1wAAp1IAAKdUAACnVgAAp1gAAKdaAACnWwAAp1wAAKddAACnXgAAp2AAAKdiAACnYwAAp2QAAKdmAACnZwAAp+IAAKfkAACn5gAAp+gAAKfqAACn6wAAp+wAAKftAACn7gAAp/AAAKfyAACn8wAAp/QAAKf2AACn9wAAqAgAAKgNAACoDwAAqBEAAKgiAACoLwAAqDEAAKgzAACoNQAAqDcAAKhKAACoYQAAqHMAAKjuAACo8AAAqPIAAKj0AACo9gAAqPcAAKj4AACo+QAAqPoAAKj8AACo/gAAqP8AAKkAAACpAgAAqQMAAKl+AACpgAAAqYIAAKmEAACphgAAqYcAAKmIAACpiQAAqYoAAKmMAACpjgAAqY8AAKmQAACpkgAAqZMAAKmkAACppQAAqacAAKoiAACqJAAAqiYAAKooAACqKgAAqisAAKosAACqLQAAqi4AAKowAACqMgAAqjMAAKo0AACqNgAAqjcAAKo4AACqswAAqrUAAKq3AACquQAAqrsAAKq8AACqvQAAqr4AAKq/AACqwQAAqsMAAKrEAACqxQAAqscAAKrIAACq4QAAquIAAKrjAACq5QAAqvYAAKsMAACrGQAAqyYAAKuhAACrowAAq6UAAKunAACrqQAAq6oAAKurAACrrAAAq60AAKuvAACrsQAAq7IAAKuzAACrtQAAq7YAAKvnAACr6QAAq+sAAKvtAACr7gAAq/AAAKwHAACsGAAArCYAAKw/AACsTQAArGIAAKx2AACsjQAArJ8AAK0aAACtHAAArR4AAK0gAACtIgAArSMAAK0kAACtJQAArSYAAK0oAACtKgAArSsAAK0sAACtLgAArS8AAK1FAACtVgAArWsAAK2IAACtnQAArasAAK3AAACt1AAAresAAK39AACuFgAArlUAAK5XAACuWQAArlsAAK5dAACuXwAArmEAAK5jAACuZQAArmcAAK5pAACuawAArm0AAK5vAACucQAArnMAAK6yAACutAAArrYAAK64AACuugAArrwAAK6/AACuwgAArsUAAK7IAACuywAArs4AAK7RAACu1AAArtcAAK7aAACu3AAAru4AAK8DAACvPgAAr3cAAK+fAACvxwAAr94AAK/xAACwBgAAsCsAALBIAACwVAAAsHAAALCrAACwtgAAsUkAALFsAACxjAAAsawAALGuAACxsAAAsbIAALG0AACxtgAAsbcAALG4AACxugAAsbsAALG9AACxvgAAscAAALHCAACxwwAAscQAALHGAACxxwAAscwAALHlAACx7gAAsfAAALHyAACx+wAAsf0AALH/AACyAQAAshYAALIrAACydAAAspgAALK/AACy4wAAsuUAALLnAACy6QAAsusAALLtAACy7wAAsvAAALLyAACzCwAAsywAALMuAACzMAAAszIAALM0AACzNgAAszgAALM6AACzPAAAs10AALNfAACzYQAAs2MAALNlAACzZwAAs2kAALNrAACzbQAAs28AALONAACzqwAAs74AALPSAACz5wAAtAQAALQYAAC0LgAAtKkAALSrAAC0rQAAtK8AALSxAAC0sgAAtLMAALS0AAC0tQAAtLcAALS5AAC0ugAAtLsAALS9AAC0vgAAtTkAALU7AAC1PQAAtT8AALVBAAC1QgAAtUMAALVEAAC1RQAAtUcAALVJAAC1SgAAtUsAALVNAAC1TgAAtckAALXLAAC1zQAAtc8AALXRAAC10gAAtdMAALXUAAC11QAAtdcAALXZAAC12gAAtdsAALXdAAC13gAAtfcAALX4AAC1+QAAtfsAALZ2AAC2eAAAtnoAALZ8AAC2fgAAtn8AALaAAAC2gQAAtoIAALaEAAC2hgAAtocAALaIAAC2igAAtosAALcGAAC3CAAAtwoAALcMAAC3DgAAtw8AALcQAAC3EQAAtxIAALcUAAC3FgAAtxcAALcYAAC3GgAAtxsAALeWAAC3mAAAt5oAALecAAC3ngAAt58AALegAAC3oQAAt6IAALekAAC3pgAAt6cAALeoAAC3qgAAt6sAALgmAAC4KAAAuCoAALgsAAC4LgAAuC8AALgwAAC4MQAAuDIAALg0AAC4NgAAuDcAALg4AAC4OgAAuDsAALi2AAC4uAAAuLoAALi8AAC4vgAAuL8AALjAAAC4wQAAuMIAALjEAAC4xgAAuMcAALjIAAC4ygAAuMsAALkUAAC5OAAAuV8AALmDAAC5hQAAuYcAALmJAAC5iwAAuY0AALmPAAC5kAAAuZIAALmrAAC5yAAAucoAALnMAAC5zgAAudAAALnSAAC51AAAudYAALnzAAC59QAAufcAALn5AAC5+wAAuf0AALn/AAC6AQAAugMAALojAAC6TgAAumgAALqBAAC6mwAAursAALreAAC7WQAAu1sAALtdAAC7XwAAu2EAALtiAAC7YwAAu2QAALtlAAC7ZwAAu2kAALtqAAC7awAAu20AALtuAAC76QAAu+sAALvtAAC77wAAu/EAALvyAAC78wAAu/QAALv1AAC79wAAu/kAALv6AAC7+wAAu/0AALv+AAC8eQAAvHsAALx9AAC8fwAAvIEAALyCAAC8gwAAvIQAALyFAAC8hwAAvIkAALyKAAC8iwAAvI0AALyOAAC9CQAAvQsAAL0NAAC9DwAAvREAAL0SAAC9EwAAvRQAAL0VAAC9FwAAvRkAAL0aAAC9GwAAvR0AAL0eAAC9IQAAvZwAAL2eAAC9oAAAvaIAAL2kAAC9pQAAvaYAAL2nAAC9qAAAvaoAAL2sAAC9rQAAva4AAL2wAAC9sQAAviwAAL4uAAC+MAAAvjIAAL40AAC+NQAAvjYAAL43AAC+OAAAvjoAAL48AAC+PQAAvj4AAL5AAAC+QQAAvlAAAL7LAAC+zQAAvs8AAL7RAAC+0wAAvtQAAL7VAAC+1gAAvtcAAL7ZAAC+2wAAvtwAAL7dAAC+3wAAvuAAAL7xAAC+/wAAvxgAAL8mAAC/MwAAv0YAAL9dAAC/bwAAwAIAAMAlAADARQAAwGUAAMBnAADAaQAAwGsAAMBtAADAbwAAwHAAAMBxAADAcwAAwHQAAMB2AADAdwAAwHkAAMB7AADAfAAAwH0AAMB/AADAgAAAwIUAAMCeAADApwAAwKkAAMCrAADAtAAAwLYAAMC4AADAugAAwQMAAMEnAADBTgAAwXIAAMF0AADBdgAAwXgAAMF6AADBfAAAwX4AAMF/AADBgQAAwZoAAMG7AADBvQAAwb8AAMHBAADBwwAAwcUAAMHHAADByQAAwcsAAMHsAADB7gAAwfAAAMHyAADB9AAAwfYAAMH4AADB+gAAwfwAAMH+AADCeQAAwnsAAMJ9AADCfwAAwoEAAMKCAADCgwAAwoQAAMKFAADChwAAwokAAMKKAADCiwAAwo0AAMKOAADDCQAAwwsAAMMNAADDDwAAwxEAAMMSAADDEwAAwxQAAMMVAADDFwAAwxkAAMMaAADDGwAAwx0AAMMeAADDmQAAw5sAAMOdAADDnwAAw6EAAMOiAADDowAAw6QAAMOlAADDpwAAw6kAAMOqAADDqwAAw60AAMOuAADDxwAAw8gAAMPJAADDywAAxEYAAMRIAADESgAAxEwAAMROAADETwAAxFAAAMRRAADEUgAAxFQAAMRWAADEVwAAxFgAAMRaAADEWwAAxNYAAMTYAADE2gAAxNwAAMTeAADE3wAAxOAAAMThAADE4gAAxOQAAMTmAADE5wAAxOgAAMTqAADE6wAAxOwAAMVnAADFaQAAxWsAAMVtAADFbwAAxXAAAMVxAADFcgAAxXMAAMV1AADFdwAAxXgAAMV5AADFewAAxXwAAMX3AADF+QAAxfsAAMX9AADF/wAAxgAAAMYBAADGAgAAxgMAAMYFAADGBwAAxggAAMYJAADGCwAAxgwAAMaHAADGiQAAxosAAMaNAADGjwAAxpAAAMaRAADGkgAAxpMAAMaVAADGlwAAxpgAAMaZAADGmwAAxpwAAMblAADHCQAAxzAAAMdUAADHVgAAx1gAAMdaAADHXAAAx14AAMdgAADHYQAAx2MAAMd8AADHmQAAx5sAAMedAADHnwAAx6EAAMejAADHpQAAx6cAAMfEAADHxgAAx8gAAMfKAADHzAAAx84AAMfQAADH0gAAx9QAAMhPAADIUQAAyFMAAMhVAADIVwAAyFgAAMhZAADIWgAAyFsAAMhdAADIXwAAyGAAAMhhAADIYwAAyGQAAMjfAADI4QAAyOMAAMjlAADI5wAAyOgAAMjpAADI6gAAyOsAAMjtAADI7wAAyPAAAMjxAADI8wAAyPQAAMlvAADJcQAAyXMAAMl1AADJdwAAyXgAAMl5AADJegAAyXsAAMl9AADJfwAAyYAAAMmBAADJgwAAyYQAAMn/AADKAQAAygMAAMoFAADKBwAAyggAAMoJAADKCgAAygsAAMoNAADKDwAAyhAAAMoRAADKEwAAyhQAAMqPAADKkQAAypMAAMqVAADKlwAAypgAAMqZAADKmgAAypsAAMqdAADKnwAAyqAAAMqhAADKowAAyqQAAMsfAADLIQAAyyMAAMslAADLJwAAyygAAMspAADLKgAAyysAAMstAADLLwAAyzAAAMsxAADLMwAAyzQAAMtGAADLwQAAy8MAAMvFAADLxwAAy8kAAMvKAADLywAAy8wAAMvNAADLzwAAy9EAAMvSAADL0wAAy9UAAMvWAADMaQAAzIwAAMysAADMzAAAzM4AAMzQAADM0gAAzNQAAMzWAADM1wAAzNgAAMzaAADM2wAAzN0AAMzeAADM4AAAzOIAAMzjAADM5AAAzOYAAMznAADM7AAAzQUAAM0OAADNEAAAzRIAAM0bAADNHQAAzR8AAM0hAADNagAAzY4AAM21AADN2QAAzdsAAM3dAADN3wAAzeEAAM3jAADN5QAAzeYAAM3oAADOAQAAziIAAM4kAADOJgAAzigAAM4qAADOLAAAzi4AAM4wAADOMgAAzlMAAM5VAADOVwAAzlkAAM5bAADOXQAAzl8AAM5hAADOYwAAzmUAAM7gAADO4gAAzuQAAM7mAADO6AAAzukAAM7qAADO6wAAzuwAAM7uAADO8AAAzvEAAM7yAADO9AAAzvUAAM9wAADPcgAAz3QAAM92AADPeAAAz3kAAM96AADPewAAz3wAAM9+AADPgAAAz4EAAM+CAADPhAAAz4UAANAAAADQAgAA0AQAANAGAADQCAAA0AkAANAKAADQCwAA0AwAANAOAADQEAAA0BEAANASAADQFAAA0BUAANAuAADQLwAA0DAAANAyAADQrQAA0K8AANCxAADQswAA0LUAANC2AADQtwAA0LgAANC5AADQuwAA0L0AANC+AADQvwAA0MEAANDCAADRPQAA0T8AANFBAADRQwAA0UUAANFGAADRRwAA0UgAANFJAADRSwAA0U0AANFOAADRTwAA0VEAANFSAADRzQAA0c8AANHRAADR0wAA0dUAANHWAADR1wAA0dgAANHZAADR2wAA0d0AANHeAADR3wAA0eEAANHiAADSXQAA0l8AANJhAADSYwAA0mUAANJmAADSZwAA0mgAANJpAADSawAA0m0AANJuAADSbwAA0nEAANJyAADS7QAA0u8AANLxAADS8wAA0vUAANL2AADS9wAA0vgAANL5AADS+wAA0v0AANL+AADS/wAA0wEAANMCAADTSwAA028AANOWAADTugAA07wAANO+AADTwAAA08IAANPEAADTxgAA08cAANPJAADT4gAA0/8AANQBAADUAwAA1AUAANQHAADUCQAA1AsAANQNAADUKgAA1CwAANQuAADUMAAA1DIAANQ0AADUNgAA1DgAANQ6AADUtQAA1LcAANS5AADUuwAA1L0AANS+AADUvwAA1MAAANTBAADUwwAA1MUAANTGAADUxwAA1MkAANTKAADUzAAA1UcAANVJAADVSwAA1U0AANVPAADVUAAA1VEAANVSAADVUwAA1VUAANVXAADVWAAA1VkAANVbAADVXAAA1dcAANXZAADV2wAA1d0AANXfAADV4AAA1eEAANXiAADV4wAA1eUAANXnAADV6AAA1ekAANXrAADV7AAA1mcAANZpAADWawAA1m0AANZvAADWcAAA1nEAANZyAADWcwAA1nUAANZ3AADWeAAA1nkAANZ7AADWfAAA1n8AANb6AADW/AAA1v4AANcAAADXAgAA1wMAANcEAADXBQAA1wYAANcIAADXCgAA1wsAANcMAADXDgAA1w8AANeKAADXjAAA144AANeQAADXkgAA15MAANeUAADXlQAA15YAANeYAADXmgAA15sAANecAADXngAA158AANgaAADYHAAA2B4AANggAADYIgAA2CMAANgkAADYJQAA2CYAANgoAADYKgAA2CsAANgsAADYLgAA2C8AANjCAADY5QAA2QUAANklAADZJwAA2SkAANkrAADZLQAA2S8AANkwAADZMQAA2TMAANk0AADZNgAA2TcAANk5AADZOwAA2TwAANk9AADZPwAA2UAAANlJAADZYgAA2WsAANltAADZbwAA2XgAANl6AADZfAAA2X4AANnHAADZ6wAA2hIAANo2AADaOAAA2joAANo8AADaPgAA2kAAANpCAADaQwAA2kUAANpeAADafwAA2oEAANqDAADahQAA2ocAANqJAADaiwAA2o0AANqPAADasAAA2rIAANq0AADatgAA2rgAANq6AADavAAA2r4AANrAAADawgAA2z0AANs/AADbQQAA20MAANtFAADbRgAA20cAANtIAADbSQAA20sAANtNAADbTgAA208AANtRAADbUgAA280AANvPAADb0QAA29MAANvVAADb1gAA29cAANvYAADb2QAA29sAANvdAADb3gAA298AANvhAADb4gAA3F0AANxfAADcYQAA3GMAANxlAADcZgAA3GcAANxoAADcaQAA3GsAANxtAADcbgAA3G8AANxxAADccgAA3IsAANyMAADcjQAA3I8AAN0KAADdDAAA3Q4AAN0QAADdEgAA3RMAAN0UAADdFQAA3RYAAN0YAADdGgAA3RsAAN0cAADdHgAA3R8AAN2aAADdnAAA3Z4AAN2gAADdogAA3aMAAN2kAADdpQAA3aYAAN2oAADdqgAA3asAAN2sAADdrgAA3a8AAN4qAADeLAAA3i4AAN4wAADeMgAA3jMAAN40AADeNQAA3jYAAN44AADeOgAA3jsAAN48AADePgAA3j8AAN66AADevAAA3r4AAN7AAADewgAA3sMAAN7EAADexQAA3sYAAN7IAADeygAA3ssAAN7MAADezgAA3s8AAN9KAADfTAAA304AAN9QAADfUgAA31MAAN9UAADfVQAA31YAAN9YAADfWgAA31sAAN9cAADfXgAA318AAN+oAADfzAAA3/MAAOAXAADgGQAA4BsAAOAdAADgHwAA4CEAAOAjAADgJAAA4CYAAOA/AADgXAAA4F4AAOBgAADgYgAA4GQAAOBmAADgaAAA4GoAAOCHAADgiQAA4IsAAOCNAADgjwAA4JEAAOCTAADglQAA4JcAAOESAADhFAAA4RYAAOEYAADhGgAA4RsAAOEcAADhHQAA4R4AAOEgAADhIgAA4SMAAOEkAADhJgAA4ScAAOGiAADhpAAA4aYAAOGoAADhqgAA4asAAOGsAADhrQAA4a4AAOGwAADhsgAA4bMAAOG0AADhtgAA4bcAAOIyAADiNAAA4jYAAOI4AADiOgAA4jsAAOI8AADiPQAA4j4AAOJAAADiQgAA4kMAAOJEAADiRgAA4kcAAOLCAADixAAA4sYAAOLIAADiygAA4ssAAOLMAADizQAA4s4AAOLQAADi0gAA4tMAAOLUAADi1gAA4tcAAONSAADjVAAA41YAAONYAADjWgAA41sAAONcAADjXQAA414AAONgAADjYgAA42MAAONkAADjZgAA42cAAOPiAADj5AAA4+YAAOPoAADj6gAA4+sAAOPsAADj7QAA4+4AAOPwAADj8gAA4/MAAOP0AADj9gAA4/cAAORyAADkdAAA5HYAAOR4AADkegAA5HsAAOR8AADkfQAA5H4AAOSAAADkggAA5IMAAOSEAADkhgAA5IcAAOUaAADlPQAA5V0AAOV9AADlfwAA5YEAAOWDAADlhQAA5YcAAOWIAADliQAA5YsAAOWMAADljgAA5Y8AAOWRAADlkwAA5ZQAAOWVAADllwAA5ZgAAOWdAADltgAA5b8AAOXBAADlwwAA5cwAAOXOAADl0AAA5dIAAOYbAADmPwAA5mYAAOaKAADmjAAA5o4AAOaQAADmkgAA5pQAAOaWAADmlwAA5pkAAOayAADm0wAA5tUAAObXAADm2QAA5tsAAObdAADm3wAA5uEAAObjAADnBAAA5wYAAOcIAADnCgAA5wwAAOcOAADnEAAA5xIAAOcUAADnFgAA55EAAOeTAADnlQAA55cAAOeZAADnmgAA55sAAOecAADnnQAA558AAOehAADnogAA56MAAOelAADnpgAA6CEAAOgjAADoJQAA6CcAAOgpAADoKgAA6CsAAOgsAADoLQAA6C8AAOgxAADoMgAA6DMAAOg1AADoNgAA6LEAAOizAADotQAA6LcAAOi5AADougAA6LsAAOi8AADovQAA6L8AAOjBAADowgAA6MMAAOjFAADoxgAA6N8AAOjgAADo4QAA6OMAAOleAADpYAAA6WIAAOlkAADpZgAA6WcAAOloAADpaQAA6WoAAOlsAADpbgAA6W8AAOlwAADpcgAA6XMAAOnuAADp8AAA6fIAAOn0AADp9gAA6fcAAOn4AADp+QAA6foAAOn8AADp/gAA6f8AAOoAAADqAgAA6gMAAOp+AADqgAAA6oIAAOqEAADqhgAA6ocAAOqIAAD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EoQABBKIAAQSkAAEEpgABBKcAAQSoAAEEqgABBKsAAQT0AAEFGAABBT8AAQVjAAEFZgABBWgAAQVqAAEFbAABBW4AAQVwAAEFcQABBXQAAQWNAAEFqgABBawAAQWuAAEFsAABBbIAAQW0AAEFtgABBbgAAQXVAAEF2AABBdsAAQXeAAEF4QABBeQAAQXnAAEF6gABBewAAQZnAAEGaQABBmsAAQZtAAEGcAABBnEAAQZyAAEGcwABBnQAAQZ2AAEGeAABBnkAAQZ6AAEGfAABBn0AAQb4AAEG+gABBvwAAQb+AAEHAQABBwIAAQcDAAEHBAABBwUAAQcHAAEHCQABBwoAAQcLAAEHDQABBw4AAQeJAAEHiwABB40AAQePAAEHkgABB5MAAQeUAAEHlQABB5YAAQeYAAEHmgABB5sAAQecAAEHngABB58AAQgaAAEIHAABCB4AAQggAAEIIwABCCQAAQglAAEIJgABCCcAAQgpAAEIKwABCCwAAQgtAAEILwABCDAAAQirAAEIrQABCK8AAQixAAEItAABCLUAAQi2AAEItwABCLgAAQi6AAEIvAABCL0AAQi+AAEIwAABCMEAAQk8AAEJPgABCUEAAQlDAAEJRgABCUcAAQlIAAEJSQABCUoAAQlMAAEJTgABCU8AAQlQAAEJUgABCVMAAQlyAAEJ7QABCe8AAQnxAAEJ8wABCfYAAQn3AAEJ+AABCfkAAQn6AAEJ/AABCf4AAQn/AAEKAAABCgIAAQoDAAEKlgABCrkAAQrZAAEK+QABCvsAAQr9AAEK/wABCwEAAQsDAAELBAABCwUAAQsIAAELCQABCwsAAQsMAAELDgABCxAAAQsRAAELEgABCxUAAQsWAAELGwABCzQAAQs9AAELPwABC0EAAQtKAAELTQABC1AAAQtSAAELmwABC78AAQvmAAEMCgABDA0AAQwPAAEMEQABDBMAAQwVAAEMFwABDBgAAQwbAAEMNAABDFUAAQxXAAEMWQABDFsAAQxdAAEMXwABDGEAAQxjAAEMZQABDIYAAQyJAAEMjAABDI8AAQySAAEMlQABDJgAAQybAAEMngABDKAAAQ0bAAENHQABDR8AAQ0hAAENJAABDSUAAQ0mAAENJwABDSgAAQ0qAAENLAABDS0AAQ0uAAENMAABDTEAAQ2sAAENrgABDbAAAQ2yAAENtQABDbYAAQ23AAENuAABDbkAAQ27AAENvQABDb4AAQ2/AAENwQABDcIAAQ49AAEOPwABDkIAAQ5EAAEORwABDkgAAQ5JAAEOSgABDksAAQ5NAAEOTwABDlAAAQ5RAAEOUwABDlQAAQ5tAAEObgABDm8AAQ5xAAEO7AABDu4AAQ7wAAEO8gABDvUAAQ72AAEO9wABDvgAAQ75AAEO+wABDv0AAQ7+AAEO/wABDwEAAQ8CAAEPfQABD38AAQ+BAAEPgwABD4YAAQ+HAAEPiAABD4kAAQ+KAAEPjAABD44AAQ+PAAEPkAABD5IAAQ+TAAEQDgABEBAAARASAAEQFAABEBcAARAYAAEQGQABEBoAARAbAAEQHQABEB8AARAgAAEQIQABECMAARAkAAEQnwABEKEAARCjAAEQpQABEKgAARCpAAEQqgABEKsAARCsAAEQrgABELAAARCxAAEQsgABELQAARC1AAERMAABETIAARE0AAERNgABETkAARE6AAEROwABETwAARE9AAERPwABEUEAARFCAAERQwABEUUAARFGAAERjwABEbMAARHaAAER/gABEgEAARIDAAESBQABEgcAARIJAAESCwABEgwAARIPAAESKAABEkUAARJHAAESSQABEksAARJNAAESTwABElEAARJTAAEScAABEnMAARJ2AAESeQABEnwAARJ/AAESggABEoUAARKHAAETAgABEwQAARMGAAETCAABEwsAARMMAAETDQABEw4AARMPAAETEQABExMAARMUAAETFQABExcAARMYAAETkwABE5UAAROXAAETmQABE5wAAROdAAETngABE58AAROgAAETogABE6QAAROlAAETpgABE6gAAROpAAEUJAABFCYAARQoAAEUKgABFC0AARQuAAEULwABFDAAARQxAAEUMwABFDUAARQ2AAEUNwABFDkAARQ6AAEUtQABFLcAARS5AAEUuwABFL4AARS/AAEUwAABFMEAARTCAAEUxAABFMYAARTHAAEUyAABFMoAARTLAAEVRgABFUgAARVKAAEVTAABFU8AARVQAAEVUQABFVIAARVTAAEVVQABFVcAARVYAAEVWQABFVsAARVcAAEV1wABFdkAARXcAAEV3gABFeEAARXiAAEV4wABFeQAARXlAAEV5wABFekAARXqAAEV6wABFe0AARXuAAEV/QABFngAARZ6AAEWfAABFn4AARaBAAEWggABFoMAARaEAAEWhQABFocAARaJAAEWigABFosAARaNAAEWjgABFyEAARdEAAEXZAABF4QAAReGAAEXiAABF4oAAReMAAEXjgABF48AAReQAAEXkwABF5QAAReWAAEXlwABF5kAARebAAEXnAABF50AARegAAEXoQABF6YAARe/AAEXyAABF8oAARfMAAEX1QABF9gAARfbAAEX3QABGCYAARhKAAEYcQABGJUAARiYAAEYmgABGJwAARieAAEYoAABGKIAARijAAEYpgABGL8AARjgAAEY4gABGOQAARjmAAEY6AABGOoAARjsAAEY7gABGPAAARkRAAEZFAABGRcAARkaAAEZHQABGSAAARkjAAEZJgABGSkAARkrAAEZpgABGagAARmqAAEZrAABGa8AARmwAAEZsQABGbIAARmzAAEZtQABGbcAARm4AAEZuQABGbsAARm8AAEaNwABGjkAARo7AAEaPQABGkAAARpBAAEaQgABGkMAARpEAAEaRgABGkgAARpJAAEaSgABGkwAARpNAAEayAABGsoAARrNAAEazwABGtIAARrTAAEa1AABGtUAARrWAAEa2AABGtoAARrbAAEa3AABGt4AARrfAAEa+AABGvkAARr6AAEa/AABG3cAARt5AAEbewABG30AARuAAAEbgQABG4IAARuDAAEbhAABG4YAARuIAAEbiQABG4oAARuMAAEbjQABHAgAARwKAAEcDAABHA4AARwRAAEcEgABHBMAARwUAAEcFQABHBcAARwZAAEcGgABHBsAARwdAAEcHgABHJkAARybAAEcnQABHJ8AARyiAAEcowABHKQAARylAAEcpgABHKgAARyqAAEcqwABHKwAARyuAAEcrwABHSoAAR0sAAEdLgABHTAAAR0zAAEdNAABHTUAAR02AAEdNwABHTkAAR07AAEdPAABHT0AAR0/AAEdQAABHbsAAR29AAEdvwABHcEAAR3EAAEdxQABHcYAAR3HAAEdyAABHcoAAR3MAAEdzQABHc4AAR3QAAEd0QABHhoAAR4+AAEeZQABHokAAR6MAAEejgABHpAAAR6SAAEelAABHpYAAR6XAAEemgABHrMAAR7QAAEe0gABHtQAAR7WAAEe2AABHtoAAR7cAAEe3gABHvsAAR7+AAEfAQABHwQAAR8HAAEfCgABHw0AAR8QAAEfEgABH40AAR+PAAEfkQABH5MAAR+WAAEflwABH5gAAR+ZAAEfmgABH5wAAR+eAAEfnwABH6AAAR+iAAEfowABIB4AASAgAAEgIgABICQAASAnAAEgKAABICkAASAqAAEgKwABIC0AASAvAAEgMAABIDEAASAzAAEgNAABIK8AASCxAAEgswABILUAASC4AAEguQABILoAASC7AAEgvAABIL4AASDAAAEgwQABIMIAASDEAAEgxQABIUAAASFCAAEhRAABIUYAASFJAAEhSgABIUsAASFMAAEhTQABIU8AASFRAAEhUgABIVMAASFVAAEhVgABIdEAASHTAAEh1QABIdcAASHaAAEh2wABIdwAASHdAAEh3gABIeAAASHiAAEh4wABIeQAASHmAAEh5wABImIAASJkAAEiZgABImgAASJrAAEibAABIm0AASJuAAEibwABInEAASJzAAEidAABInUAASJ3AAEieAABIvMAASL1AAEi9wABIvkAASL8AAEi/QABIv4AASL/AAEjAAABIwIAASMEAAEjBQABIwYAASMIAAEjCQABI5wAASO/AAEj3wABI/8AASQBAAEkAwABJAUAASQHAAEkCQABJAoAASQLAAEkDgABJA8AASQRAAEkEgABJBQAASQWAAEkFwABJBgAASQbAAEkHAABJCEAASQ6AAEkQwABJEUAASRHAAEkUAABJFMAASRWAAEkWAABJKEAASTFAAEk7AABJRAAASUTAAElFQABJRcAASUZAAElGwABJR0AASUeAAElIQABJToAASVbAAElXQABJV8AASVhAAElYwABJWUAASVnAAElaQABJWsAASWMAAEljwABJZIAASWVAAElmAABJZsAASWeAAEloQABJaQAASWmAAEmIQABJiMAASYlAAEmJwABJioAASYrAAEmLAABJi0AASYuAAEmMAABJjIAASYzAAEmNAABJjYAASY3AAEmsgABJrQAASa2AAEmuAABJrsAASa8AAEmvQABJr4AASa/AAEmwQABJsMAASbEAAEmxQABJscAASbIAAEnQwABJ0UAASdIAAEnSgABJ00AASdOAAEnTwABJ1AAASdRAAEnUwABJ1UAASdWAAEnVwABJ1kAASdaAAEncwABJ3QAASd1AAEndwABJ/IAASf0AAEn9gABJ/gAASf7AAEn/AABJ/0AASf+AAEn/wABKAEAASgDAAEoBAABKAUAASgHAAEoCAABKIMAASiFAAEohwABKIkAASiMAAEojQABKI4AASiPAAEokAABKJIAASiUAAEolQABKJYAASiYAAEomQABKRQAASkWAAEpGAABKRoAASkdAAEpHgABKR8AASkgAAEpIQABKSMAASklAAEpJgABKScAASkpAAEpKgABKaUAASmnAAEpqQABKasAASmuAAEprwABKbAAASmxAAEpsgABKbQAASm2AAEptwABKbgAASm6AAEpuwABKjYAASo4AAEqOgABKjwAASo/AAEqQAABKkEAASpCAAEqQwABKkUAASpHAAEqSAABKkkAASpLAAEqTAABKpUAASq5AAEq4AABKwQAASsHAAErCQABKwsAASsNAAErDwABKxEAASsSAAErFQABKy4AAStLAAErTQABK08AAStRAAErUwABK1UAAStXAAErWQABK3YAASt5AAErfAABK38AASuCAAErhQABK4gAASuLAAErjQABLAgAASwKAAEsDAABLA4AASwRAAEsEgABLBMAASwUAAEsFQABLBcAASwZAAEsGgABLBsAASwdAAEsHgABLJkAASybAAEsnQABLJ8AASyiAAEsowABLKQAASylAAEspgABLKgAASyqAAEsqwABLKwAASyuAAEsrwABLSoAAS0sAAEtLgABLTAAAS0zAAEtNAABLTUAAS02AAEtNwABLTkAAS07AAEtPAABLT0AAS0/AAEtQAABLbsAAS29AAEtvwABLcEAAS3EAAEtxQABLcYAAS3HAAEtyAABLcoAAS3MAAEtzQABLc4AAS3QAAEt0QABLkwAAS5OAAEuUAABLlIAAS5VAAEuVgABLlcAAS5YAAEuWQABLlsAAS5dAAEuXgABLl8AAS5hAAEuYgABLt0AAS7fAAEu4QABLuMAAS7mAAEu5wABLugAAS7pAAEu6gABLuwAAS7uAAEu7wABLvAAAS7yAAEu8wABL24AAS9wAAEvcgABL3QAAS93AAEveAABL3kAAS96AAEvewABL30AAS9/AAEvgAABL4EAAS+DAAEvhAABMBcAATA6AAEwWgABMHoAATB8AAEwfgABMIAAATCCAAEwhAABMIUAATCGAAEwiQABMIoAATCMAAEwjQABMI8AATCRAAEwkgABMJMAATCWAAEwlwABMJwAATC1AAEwvgABMMAAATDCAAEwywABMM4AATDRAAEw0wABMRwAATFAAAExZwABMYsAATGOAAExkAABMZIAATGUAAExlgABMZgAATGZAAExnAABMbUAATHWAAEx2AABMdoAATHcAAEx3gABMeAAATHiAAEx5AABMeYAATIHAAEyCgABMg0AATIQAAEyEwABMhYAATIZAAEyHAABMh8AATIhAAEynAABMp4AATKgAAEyogABMqUAATKmAAEypwABMqgAATKpAAEyqwABMq0AATKuAAEyrwABMrEAATKyAAEzLQABMy8AATMxAAEzMwABMzYAATM3AAEzOAABMzkAATM6AAEzPAABMz4AATM/AAEzQAABM0IAATNDAAEzvgABM8AAATPDAAEzxQABM8gAATPJAAEzygABM8sAATPMAAEzzgABM9AAATPRAAEz0gABM9QAATPVAAEz7gABM+8AATPwAAEz8gABNG0AATRvAAE0cQABNHMAATR2AAE0dwABNHgAATR5AAE0egABNHwAATR+AAE0fwABNIAAATSCAAE0gwABNP4AATUAAAE1AgABNQQAATUHAAE1CAABNQkAATUKAAE1CwABNQ0AATUPAAE1EAABNREAATUTAAE1FAABNY8AATWRAAE1kwABNZUAATWYAAE1mQABNZoAATWbAAE1nAABNZ4AATWgAAE1oQABNaIAATWkAAE1pQABNiAAATYiAAE2JAABNiYAATYpAAE2KgABNisAATYsAAE2LQABNi8AATYxAAE2MgABNjMAATY1AAE2NgABNrEAATazAAE2tQABNrcAATa6AAE2uwABNrwAATa9AAE2vgABNsAAATbCAAE2wwABNsQAATbGAAE2xwABNxAAATc0AAE3WwABN38AATeCAAE3hAABN4YAATeIAAE3igABN4wAATeNAAE3kAABN6kAATfGAAE3yAABN8oAATfMAAE3zgABN9AAATfSAAE31AABN/EAATf0AAE39wABN/oAATf9AAE4AAABOAMAATgGAAE4CAABOIMAATiFAAE4hwABOIkAATiMAAE4jQABOI4AATiPAAE4kAABOJIAATiUAAE4lQABOJYAATiYAAE4mQABORQAATkWAAE5GAABORoAATkdAAE5HgABOR8AATkgAAE5IQABOSMAATklAAE5JgABOScAATkpAAE5KgABOaUAATmnAAE5qQABOasAATmuAAE5rwABObAAATmxAAE5sgABObQAATm2AAE5twABObgAATm6AAE5uwABOjYAATo4AAE6OwABOj0AATpAAAE6QQABOkIAATpDAAE6RAABOkYAATpIAAE6SQABOkoAATpMAAE6TQABOsgAATrKAAE6zAABOs4AATrRAAE60gABOtMAATrUAAE61QABOtcAATrZAAE62gABOtsAATrdAAE63gABO1kAATtbAAE7XQABO18AATtiAAE7YwABO2QAATtlAAE7ZgABO2gAATtqAAE7awABO2wAATtuAAE7bwABO+oAATvsAAE77gABO/AAATvzAAE79AABO/UAATv2AAE79wABO/kAATv7AAE7/AABO/0AATv/AAE8AAABPJMAATy2AAE81gABPPYAATz4AAE8+gABPPwAATz+AAE9AAABPQEAAT0CAAE9BQABPQYAAT0IAAE9CQABPQsAAT0NAAE9DgABPQ8AAT0SAAE9EwABPRwAAT01AAE9PgABPUAAAT1CAAE9SwABPU4AAT1RAAE9UwABPZwAAT3AAAE95wABPgsAAT4OAAE+EAABPhIAAT4UAAE+FgABPhgAAT4ZAAE+HAABPjUAAT5WAAE+WAABPloAAT5cAAE+XgABPmAAAT5iAAE+ZAABPmYAAT6HAAE+igABPo0AAT6QAAE+kwABPpYAAT6ZAAE+nAABPp8AAT6hAAE/HAABPx4AAT8gAAE/IgABPyUAAT8mAAE/JwABPygAAT8pAAE/KwABPy0AAT8uAAE/LwABPzEAAT8yAAE/rQABP68AAT+xAAE/swABP7YAAT+3AAE/uAABP7kAAT+6AAE/vAABP74AAT+/AAE/wAABP8IAAT/DAAFAPgABQEAAAUBDAAFARQABQEgAAUBJAAFASgABQEsAAUBMAAFATgABQFAAAUBRAAFAUgABQFQAAUBVAAFAbgABQG8AAUBwAAFAcgABQO0AAUDvAAFA8QABQPMAAUD2AAFA9wABQPgAAUD5AAFA+gABQPwAAUD+AAFA/wABQQAAAUECAAFBAwABQX4AAUGAAAFBggABQYQAAUGHAAFBiAABQYkAAUGKAAFBiwABQY0AAUGPAAFBkAABQZEAAUGTAAFBlAABQg8AAUIRAAFCEwABQhUAAUIYAAF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TSQABU8QAAVPGAAFTyAABU8oAAVPNAAFTzgABU88AAVPQAAFT0QABU9MAAVPVAAFT1gABU9cAAVPZAAFT2gABVFUAAVRXAAFUWQABVFsAAVReAAFUXwABVGAAAVRhAAFUYgABVGQAAVRmAAFUZwABVGgAAVRqAAFUawABVOYAAVToAAFU6gABVOwAAVTvAAFU8AABVPEAAVTyAAFU8wABVPUAAVT3AAFU+AABVPkAAVT7AAFU/AABVY8AAVWyAAFV0gABVfIAAVX0AAFV9gABVfgAAVX6AAFV/AABVf0AAVX+AAFWAQABVgIAAVYEAAFWBQABVgcAAVYJAAFWCgABVgsAAVYOAAFWDwABVhQAAVYtAAFWNgABVjgAAVY6AAFWQwABVkYAAVZJAAFWSwABVpQAAVa4AAFW3wABVwMAAVcGAAFXCAABVwoAAVcMAAFXDgABVxAAAVcRAAFXFAABVy0AAVdOAAFXUAABV1IAAVdUAAFXVgABV1gAAVdaAAFXXAABV14AAVd/AAFXggABV4UAAVeIAAFXiwABV44AAVeRAAFXlAABV5cAAVeZAAFYFAABWBYAAVgYAAFYGgABWB0AAVgeAAFYHwABWCAAAVghAAFYIwABWCUAAVgmAAFYJwABWCkAAVgqAAFYpQABWKcAAVipAAFYqwABWK4AAVivAAFYsAABWLEAAViyAAFYtAABWLYAAVi3AAFYuAABWLoAAVi7AAFZNgABWTgAAVk7AAFZPQABWUAAAVlBAAFZQgABWUMAAVlEAAFZRgABWUgAAVlJAAFZSgABWUwAAVlNAAFZZgABWWcAAVloAAFZagABWeUAAVnnAAFZ6QABWesAAVnuAAFZ7wABWfAAAVnxAAFZ8gABWfQAAVn2AAFZ9wABWfgAAVn6AAFZ+wABWnYAAVp4AAFaegABWnwAAVp/AAFagAABWoEAAVqCAAFagwABWoUAAVqHAAFaiAABWokAAVqLAAFajAABWwcAAVsJAAFbCwABWw0AAVsQAAFbEQABWxIAAVsTAAFbFAABWxYAAVsYAAFbGQABWxoAAVscAAFbHQABW5gAAVuaAAFbnAABW54AAVuhAAFbogABW6MAAVukAAFbpQABW6cAAVupAAFbqgABW6sAAVutAAFbrgABXCkAAVwrAAFcLQABXC8AAVwyAAFcMwABXDQAAVw1AAFcNgABXDgAAVw6AAFcOwABXDwAAVw+AAFcPwABXIgAAVysAAFc0wABXPcAAVz6AAFc/AABXP4AAV0AAAFdAgABXQQAAV0FAAFdCAABXSEAAV0+AAFdQAABXUIAAV1EAAFdRgABXUgAAV1KAAFdTAABXWkAAV1sAAFdbwABXXIAAV11AAFdeAABXXsAAV1+AAFdgAABXfsAAV39AAFd/wABXgEAAV4EAAFeBQABXgYAAV4HAAFeCAABXgoAAV4MAAFeDQABXg4AAV4QAAFeEQABXowAAV6OAAFekAABXpIAAV6VAAFelgABXpcAAV6YAAFemQABXpsAAV6dAAFengABXp8AAV6hAAFeogABXx0AAV8fAAFfIQABXyMAAV8mAAFfJwABXygAAV8pAAFfKgABXywAAV8uAAFfLwABXzAAAV8yAAFfMwABX64AAV+wAAFfsgABX7QAAV+3AAFfuAABX7kAAV+6AAFfuwABX70AAV+/AAFfwAABX8EAAV/DAAFfxAABYD8AAWBBAAFgQwABYEUAAWBIAAFgSQABYEoAAWBLAAFgTAABYE4AAWBQAAFgUQABYFIAAWBUAAFgVQABYNAAAWDSAAFg1AABYNYAAWDZAAFg2gABYNsAAWDcAAFg3QABYN8AAWDhAAFg4gABYOMAAWDlAAFg5gABYWEAAWFjAAFhZQABYWcAAWFqAAFhawABYWwAAWFtAAFhbgABYXAAAWFyAAFhcwABYXQAAWF2AAFhdwABYgoAAWItAAFiTQABYm0AAWJvAAFicQABYnMAAWJ1AAFidwABYngAAWJ5AAFifAABYn0AAWJ/AAFigAABYoMAAWKFAAFihgABYocAAWKKAAFiiwABYpQAAWKtAAFitgABYrgAAWK7AAFixAABYscAAWLKAAFizAABYt8AAWMoAAFjTAABY3MAAWOXAAFjmgABY5wAAWOeAAFjoAABY6IAAWOkAAFjpQABY6gAAWPBAAFj4gABY+QAAWPmAAFj6AABY+oAAWPsAAFj7gABY/AAAWPyAAFkEwABZBYAAWQZAAFkHAABZB8AAWQiAAFkJQABZCgAAWQrAAFkLQABZKgAAWSqAAFkrAABZK4AAWSxAAFksgABZLMAAWS0AAFktQABZLcAAWS5AAFkugABZLsAAWS9AAFkvgABZTkAAWU7AAFlPQABZT8AAWVCAAFlQwABZUQAAWVFAAFlRgABZUgAAWVKAAFlSwABZUwAAWVOAAFlTwABZcoAAWXMAAFlzwABZdEAAWXUAAFl1QABZdYAAWXXAAFl2AABZdoAAWXcAAFl3QABZd4AAWXgAAFl4QABZfoAAWX7AAFl/AABZf4AAWZ5AAFmewABZn0AAWZ/AAFmggABZoMAAWaEAAFmhQABZoYAAWaIAAFmigABZosAAWaMAAFmjgABZo8AAWcKAAFnDAABZw4AAWcQAAFnEwABZxQAAWcVAAFnFgABZxcAAWcZAAFnGwABZxwAAWcdAAFnHwABZyAAAWebAAFnnQABZ58AAWehAAFnpAABZ6UAAWemAAFnpwABZ6gAAWeqAAFnrAABZ60AAWeuAAFnsAABZ7EAAWgsAAFoLgABaDAAAWgyAAFoNQABaDYAAWg3AAFoOAABaDkAAWg7AAFoPQABaD4AAWg/AAFoQQABaEIAAWi9AAFovwABaMEAAWjDAAFoxgABaMcAAWjIAAFoyQABaMoAAWjMAAFozgABaM8AAWjQAAFo0gABaNMAAWkcAAFpQAABaWcAAWmLAAFpjgABaZEAAWmTAAFplQABaZcAAWmZAAFpmgABaZ0AAWm2AAFp0wABadYAAWnZAAFp3AABad8AAWniAAFp5QABaegAAWoFAAFqCAABagsAAWoOAAFqEQABahQAAWoXAAFqGgABahwAAWouAAFqQgABalQAAWppAAFqewABaooAAWqnAAFrIgABayQAAWsnAAFrKQABaywAAWstAAFrLgABay8AAWswAAFrMgABazUAAWs2AAFrNwABazkAAWs6AAFrtQABa7cAAWu6AAFrvAABa78AAWvAAAFrwQABa8IAAWvDAAFrxQABa8gAAWvJAAFrygABa8wAAWvNAAFrzwABbEoAAWxMAAFsTwABbFEAAWxUAAFsVQABbFYAAWxXAAFsWAABbFoAAWxdAAFsXgABbF8AAWxhAAFsYgABbN0AAWzfAAFs4gABbOQAAWznAAFs6AABbOkAAWzqAAFs6wABbO0AAWzwAAFs8QABbPIAAWz0AAFs9QABbXgAAW2cAAFtwAABbeMAAW4KAAFuKgABblEAAW54AAFumAABbrwAAW7gAAFu4gABbuUAAW7nAAFu6QABbusAAW7uAAFu8QABbvMAAW71AAFu+AABbvoAAW78AAFu/wABbwIAAW8DAAFvCAABbyEAAW8mAAFvKAABby0AAW8wAAFvMgABb3sAAW+fAAFvxgABb+oAAW/tAAFv7wABb/EAAW/zAAFv9QABb/cAAW/4AAFv+wABcBQAAXA5AAFwOwABcD0AAXA/AAFwQQABcEMAAXBFAAFwRwABcEkAAXBLAAFwcAABcHMAAXB2AAFweQABcHwAAXB/AAFwggABcIUAAXCIAAFwiwABcI0AAXEIAAFxCgABcQ0AAXEPAAFxEgABcRMAAXEUAAFxFQABcRYAAXEYAAFxGgABcRsAAXEcAAFxHgABcR8AAXEwAAFxMQABcTMAAXGuAAFxsAABcbIAAXG0AAFxtwABcbgAAXG5AAFxugABcbsAAXG9AAFxvwABccAAAXHBAAFxwwABccQAAXI/AAFyQQABckQAAXJGAAFySQABckoAAXJLAAFyTAABck0AAXJPAAFyUQABclIAAXJTAAFyVQABclYAAXJnAAFyaAABcmoAAXLlAAFy5wABcukAAXLrAAFy7gABcu8AAXLwAAFy8QABcvIAAXL0AAFy9gABcvcAAXL4AAFy+gABcvsAAXN2AAFzeAABc3sAAXN9AAFzgAABc4EAAXOCAAFzgwABc4QAAXOGAAFziAABc4kAAXOKAAFzjAABc40AAXOeAAFznwABc6EAAXQcAAF0HgABdCAAAXQiAAF0JQABdCYAAXQnAAF0KAABdCkAAXQrAAF0LQABdC4AAXQvAAF0MQABdDIAAXStAAF0rwABdLIAAXS0AAF0twABdLgAAXS5AAF0ugABdLsAAXS9AAF0vwABdMAAAXTBAAF0wwABdMQAAXTdAAF03gABdN8AAXThAAF1XAABdV4AAXVgAAF1YgABdWUAAXVmAAF1ZwABdWgAAXVpAAF1awABdW0AAXVuAAF1bwABdXEAAXVyAAF17QABde8AAXXxAAF18wABdfYAAXX3AAF1+AABdfkAAXX6AAF1/AABdf4AAXX/AAF2AAABdgIAAXYDAAF2HAABdjUAAXY4AAF2OwABdj4AAXZBAAF2RAABdkcAAXZgAAF2YwABdmYAAXZpAAF2bAABdm8AAXZyAAF2dAABdokAAXasAAF2wgABdtUAAXbhAAF29wABd4oAAXetAAF3zQABd+0AAXfvAAF38QABd/MAAXf1AAF3+AABd/kAAXf6AAF3/QABd/4AAXgAAAF4AQABeAMAAXgGAAF4BwABeAgAAXgLAAF4DAABeBEAAXgqAAF4MwABeDUAAXg3AAF4QAABeEMAAXhGAAF4SAABeJEAAXi1AAF43AABeQAAAXkDAAF5BQABeQcAAXkJAAF5CwABeQ0AAXkOAAF5EQABeSoAAXlLAAF5TQABeU8AAXlRAAF5UwABeVUAAXlXAAF5WQABeVsAAXl8AAF5fwABeYIAAXmFAAF5iAABeYsAAXmOAAF5kQABeZQAAXmWAAF6EQABehMAAXoVAAF6FwABehoAAXobAAF6HAABeh0AAXoeAAF6IAABeiIAAXojAAF6JAABeiYAAXonAAF6ogABeqQAAXqmAAF6qAABeqsAAXqsAAF6rQABeq4AAXqvAAF6sQABerMAAXq0AAF6tQABercAAXq4AAF7MwABezUAAXs4AAF7OgABez0AAXs+AAF7PwABe0AAAXtBAAF7QwABe0UAAXtGAAF7RwABe0kAAXtKAAF7YwABe2QAAXtlAAF7ZwABe+IAAXvkAAF75gABe+gAAXvrAAF77AABe+0AAXvuAAF77wABe/EAAXvzAAF79AABe/UAAXv3AAF7+AABfHMAAXx1AAF8dwABfHkAAXx8AAF8fQABfH4AAXx/AAF8gAABfIIAAXyEAAF8hQABfIYAAXyIAAF8iQABfQQAAX0GAAF9CAABfQoAAX0NAAF9DgABfQ8AAX0QAAF9EQABfRMAAX0VAAF9FgABfRcAAX0ZAAF9GgABfZUAAX2XAAF9mQABfZsAAX2eAAF9nwABfaAAAX2hAAF9ogABfaQAAX2mAAF9pwABfagAAX2qAAF9qwABfiYAAX4oAAF+KgABfiwAAX4vAAF+MAABfjEAAX4yAAF+MwABfjUAAX43AAF+OAABfjkAAX47AAF+PAABfoUAAX6pAAF+0AABfvQAAX73AAF++QABfvsAAX79AAF+/wABfwEAAX8CAAF/BQABfx4AAX87AAF/PQABfz8AAX9BAAF/QwABf0UAAX9HAAF/SQABf2YAAX9pAAF/bAABf28AAX9yAAF/dQABf3gAAX97AAF/fQABf/gAAX/6AAF//AABf/4AAYABAAGAAgABgAMAAYAEAAGABQABgAcAAYAJAAGACgABgAsAAYANAAGADgABgIkAAYCLAAGAjQABgI8AAYCSAAGAkwABgJQAAYCVAAGAlgABgJgAAYCaAAGAmwABgJwAAYCeAAGAnwABgRoAAYEcAAGBHgABgSAAAYEjAAGBJAABgSUAAYEmAAGBJwABgSkAAYErAAGBLAABgS0AAYEvAAGBMAABgasAAYGtAAGBrwABgbEAAYG0AAGBtQABgbYAAYG3AAGBuAABgboAAYG8AAGBvQABgb4AAYHAAAGBwQABgjwAAYI+AAGCQAABgkIAAYJFAAGCRgABgkcAAYJIAAGCSQABgksAAYJNAAGCTgABgk8AAYJRAAGCUgABgs0AAYLPAAGC0QABgtMAAYLWAAGC1wABgtgAAYLZAAGC2gABgtwAAYLeAAGC3wABguAAAYLiAAGC4wABg14AAYNgAAGDYgABg2QAAYNnAAGDaAABg2kAAYNqAAGDawABg20AAYNvAAGDcAABg3EAAYNzAAGDdAABhAcAAYQqAAGESgABhGoAAYRsAAGEbgABhHAAAYRyAAGEdQABhHYAAYR3AAGEegABhHsAAYR9AAGEfgABhIAAAYSDAAGEhAABhIUAAYSIAAGEiQABhJIAAYSrAAGEtAABhLYAAYS4AAGEwQABhMQAAYTHAAGEyQABhRIAAYU2AAGFXQABhYEAAYWEAAGFhgABhYgAAYWKAAGFjAABhY4AAYWPAAGFkgABhasAAYXMAAGFzgABhdAAAYXSAAGF1AABhdYAAYXYAAGF2gABhdwAAYX9AAGGAAABhgMAAYYGAAGGCQABhgwAAYYPAAGGEgABhhUAAYYXAAGGkgABhpQAAYaWAAGGmAABhpsAAYacAAGGnQABhp4AAYafAAGGoQABhqMAAYakAAGGpQABhqcAAYaoAAGHIwABhyUAAYcnAAGHKQABhywAAYctAAGHLgABhy8AAYcwAAGHMgABhzQAAYc1AAGHNgABhzgAAYc5AAGHtAABh7YAAYe5AAGHuwABh74AAYe/AAGHwAABh8EAAYfCAAGHxAABh8YAAYfHAAGHyAABh8oAAYfLAAGH5AABh+UAAYfmAAGH6AABiGMAAYhlAAGIZwABiGkAAYhsAAGIbQABiG4AAYhvAAGIcAABiHIAAYh0AAGIdQABiHYAAYh4AAGIeQABiPQAAYj2AAGI+AABiPoAAYj9AAGI/gABiP8AAYkAAAGJAQABiQMAAYkFAAGJBgABiQcAAYkJAAGJCgABiYUAAYmHAAGJiQABiYsAAYmOAAGJjwABiZAAAYmRAAGJkgABiZQAAYmWAAGJlwABiZgAAYmaAAGJmwABihYAAYoYAAGKGgABihwAAYofAAGKIAABiiEAAYoiAAGKIwABiiUAAYonAAGKKAABiikAAYorAAGKLAABiqcAAYqpAAGKqwABiq0AAYqwAAGKsQABirIAAYqzAAGKtAABirYAAYq4AAGKuQABiroAAYq8AAGKvQABiwYAAYsqAAGLUQABi3UAAYt4AAGLegABi3wAAYt+AAGLgAABi4IAAYuDAAGLhgABi58AAYu8AAGLvgABi8AAAYvCAAGLxAABi8YAAYvIAAGLygABi+cAAYvqAAGL7QABi/AAAYvzAAGL9gABi/kAAYv8AAGL/gABjHkAAYx7AAGMfQABjH8AAYyCAAGMgwABjIQAAYyFAAGMhgABjIgAAYyKAAGMiwABjIwAAYyOAAGMjwABjQoAAY0MAAGNDgABjRAAAY0TAAGNFAABjRUAAY0WAAGNFwABjRkAAY0bAAGNHAABjR0AAY0fAAGNIAABjZsAAY2dAAGNnwABjaEAAY2kAAGNpQABjaYAAY2nAAGNqAABjaoAAY2sAAGNrQABja4AAY2wAAGNsQABjiwAAY4uAAGOMAABjjIAAY41AAGONgABjjcAAY44AAGOOQABjjsAAY49AAGOPgABjj8AAY5BAAGOQgABjr0AAY6/AAGOwQABjsMAAY7GAAGOxwABjsgAAY7JAAGOygABjswAAY7OAAGOzwABjtAAAY7SAAGO0wABj04AAY9QAAGPUwABj1UAAY9YAAGPWQABj1oAAY9bAAGPXAABj14AAY9gAAGPYQABj2IAAY9kAAGPZQABj3cAAY/yAAGP9AABj/YAAY/4AAGP+wABj/wAAY/9AAGP/gABj/8AAZABAAGQAwABkAQAAZAFAAGQBwABkAgAAZCbAAGQvgABkN4AAZD+AAGRAAABkQIAAZEEAAGRBgABkQkAAZEKAAGRCwABkQ4AAZEPAAGREQABkRIAAZEUAAGRFwABkRgAAZEZAAGRHAABkR0AAZEiAAGROwABkUQAAZFGAAGRSAABkVEAAZFUAAGRVwABkVkAAZGiAAGRxgABke0AAZIRAAGSFAABkhYAAZIYAAGSGgABkhwAAZIeAAGSHwABkiIAAZI7AAGSXAABkl4AAZJgAAGSYgABkmQAAZJmAAGSaAABkmoAAZJsAAGSjQABkpAAAZKTAAGSlgABkpkAAZKcAAGSnwABkqIAAZKlAAGSpwABkyIAAZMkAAGTJgABkygAAZMrAAGTLAABky0AAZMuAAGTLwABkzEAAZMzAAGTNAABkzUAAZM3AAGTOAABk7MAAZO1AAGTtwABk7kAAZO8AAGTvQABk74AAZO/AAGTwAABk8IAAZPEAAGTxQABk8YAAZPIAAGTyQABlEQAAZRGAAGUSQABlEsAAZROAAGUTwABlFAAAZRRAAGUUgABlFQAAZRWAAGUVwABlFgAAZRaAAGUWwABlHQAAZR1AAGUdgABlHgAAZTzAAGU9QABlPcAAZT5AAGU/AABlP0AAZT+AAGU/wABlQAAAZUCAAGVBAABlQUAAZUGAAGVCAABlQkAAZWEAAGVhgABlYgAAZWKAAGVjQABlY4AAZWPAAGVkAABlZEAAZWTAAGVlQABlZYAAZWXAAGVmQABlZoAAZYVAAGWFwABlhkAAZYbAAGWHgABlh8AAZYgAAGWIQABliIAAZYkAAGWJgABlicAAZYoAAGWKgABlisAAZamAAGWqAABlqoAAZasAAGWrwABlrAAAZaxAAGWsgABlrMAAZa1AAGWtwABlrgAAZa5AAGWuwABlrwAAZc3AAGXOQABlzsAAZc9AAGXQAABl0EAAZdCAAGXQwABl0QAAZdGAAGXSAABl0kAAZdKAAGXTAABl00AAZeWAAGXugABl+EAAZgFAAGYCAABmAoAAZgMAAGYDgABmBAAAZgSAAGYEwABmBYAAZgvAAGYTAABmE4AAZhQAAGYUgABmFQAAZhWAAGYWAABmFoAAZh3AAGYegABmH0AAZiAAAGYgwABmIYAAZiJAAGYjAABmI4AAZkJAAGZCwABmQ0AAZkPAAGZEgABmRMAAZkUAAGZFQABmRYAAZkYAAGZGgABmRsAAZkcAAGZHgABmR8AAZmaAAGZnAABmZ4AAZmgAAGZowABmaQAAZmlAAGZpgABmacAAZmpAAGZqwABmawAAZmtAAGZrwABmbAAAZorAAGaLQABmi8AAZoxAAGaNAABmjUAAZo2AAGaNwABmjgAAZo6AAGaPAABmj0AAZo+AAGaQAABmkEAAZq8AAGavgABmsAAAZrCAAGaxQABmsYAAZrHAAGayAABmskAAZrLAAGazQABms4AAZrPAAGa0QABmtIAAZtNAAGbTwABm1EAAZtTAAGbVgABm1cAAZtYAAGbWQABm1oAAZtcAAGbXgABm18AAZtgAAGbYgABm2MAAZveAAGb4AABm+IAAZvkAAGb5wABm+gAAZvpAAGb6gABm+sAAZvtAAGb7wABm/AAAZvxAAGb8wABm/QAAZxvAAGccQABnHMAAZx1AAGceAABnHkAAZx6AAGcewABnHwAAZx+AAGcgAABnIEAAZyCAAGchAABnIUAAZ0YAAGdOwABnVsAAZ17AAGdfQABnX8AAZ2BAAGdgwABnYYAAZ2HAAGdiAABnYsAAZ2MAAGdjgABnY8AAZ2SAAGdlQABnZYAAZ2XAAGdmgABnZsAAZ2gAAGduQABncIAAZ3EAAGdxwABndAAAZ3TAAGd1gABndgAAZ4hAAGeRQABnmwAAZ6QAAGekwABnpUAAZ6XAAGemQABnpsAAZ6dAAGengABnqEAAZ66AAGe2wABnt0AAZ7fAAGe4QABnuMAAZ7lAAGe5wABnukAAZ7rAAGfDAABnw8AAZ8SAAGfFQABnxgAAZ8bAAGfHgABnyEAAZ8kAAGfJgABn6EAAZ+jAAGfpQABn6cAAZ+qAAGfqwABn6wAAZ+tAAGfrgABn7AAAZ+yAAGfswABn7QAAZ+2AAGftwABoDIAAaA0AAGgNgABoDgAAaA7AAGgPAABoD0AAaA+AAGgPwABoEEAAaBDAAGgRAABoEUAAaBHAAGgSAABoMMAAaDFAAGgyAABoMoAAaDNAAGgzgABoM8AAaDQAAGg0QABoNMAAaDVAAGg1gABoNcAAaDZAAGg2gABoPMAAaD0AAGg9QABoPcAAaFyAAGhdAABoXYAAaF4AAGhewABoXwAAaF9AAGhfgABoX8AAaGBAAGhgwABoYQAAaGFAAGhhwABoYgAAaIDAAGiBQABogcAAaIJAAGiDAABog0AAaIOAAGiDwABohAAAaISAAGiFAABohUAAaIWAAGiGAABohkAAaKUAAGilgABopgAAaKaAAGinQABop4AAaKfAAGioAABoqEAAaKjAAGipQABoqYAAaKnAAGiqQABoqoAAaMlAAGjJwABoykAAaMrAAGjLgABoy8AAaMwAAGjMQABozIAAaM0AAGjNgABozcAAaM4AAGjOgABozsAAaO2AAGjuAABo7oAAaO8AAGjvwABo8AAAaPBAAGjwgABo8MAAaPFAAGjxwABo8gAAaPJAAGjywABo8wAAaQVAAGkOQABpGAAAaSEAAGkhwABpIoAAaSMAAGkjgABpJAAAaSSAAGkkwABpJYAAaSvAAGkzAABpM8AAaTSAAGk1QABpNgAAaTbAAGk3gABpOEAAaT+AAGlAQABpQQAAaUHAAGlCgABpQ0AAaUQAAGlEwABpRUAAaWQAAGlkgABpZUAAaWXAAGlmgABpZsAAaWcAAGlnQABpZ4AAaWgAAGlowABpaQAAaWlAAGlpwABpagAAaYjAAGmJQABpigAAaYqAAGmLQABpi4AAaYvAAGmMAABpjEAAaYzAAGmNgABpjcAAaY4AAGmOgABpjsAAaY9AAGmuAABproAAaa9AAGmvwABpsIAAabDAAGmxAABpsUAAabGAAGmyAABpssAAabMAAGmzQABps8AAabQAAGnSwABp00AAadPAAGnUQABp1QAAadVAAGnVgABp1cAAadYAAGnWgABp10AAadeAAGnXwABp2EAAadiAAGn3QABp98AAafhAAGn4wABp+YAAafnAAGn6AABp+kAAafqAAGn7AABp+8AAafwAAGn8QABp/MAAaf0AAGobwABqHEAAahzAAGodQABqHgAAah5AAGoegABqHsAAah8AAGofgABqIEAAaiCAAGogwABqIUAAaiGAAGpAQABqQMAAakGAAGpCAABqQsAAakMAAGpDQABqQ4AAakPAAGpEQABqRQAAakVAAGpFgABqRgAAakZAAGpKgABqT0AAalWAAGpaQABqXYAAamJAAGpoAABqbIAAapFAAGqaAABqogAAaqoAAGqqgABqqwAAaquAAGqsAABqrMAAaq0AAGqtQABqrgAAaq5AAGquwABqrwAAaq/AAGqwgABqsMAAarEAAGqxwABqsgAAarNAAGq5gABqu8AAarxAAGq9AABqv0AAasAAAGrAwABqwUAAatOAAGrcgABq5kAAau9AAGrwAABq8IAAavEAAGrxgABq8gAAavKAAGrywABq84AAavnAAGsCAABrAoAAawMAAGsDgABrBAAAawSAAGsFAABrBYAAawYAAGsOQABrDwAAaw/AAGsQgABrEUAAaxIAAGsSwABrE4AAaxRAAGsUwABrM4AAazQAAGs0gABrNQAAazXAAGs2AABrNkAAazaAAGs2wABrN0AAazfAAGs4AABrOEAAazjAAGs5AABrV8AAa1hAAGtYwABrWUAAa1oAAGtaQABrWoAAa1rAAGtbAABrW4AAa1wAAGtcQABrXIAAa10AAGtdQABrfAAAa3yAAGt9QABrfcAAa36AAGt+wABrfwAAa39AAGt/gABrgAAAa4CAAGuAwABrgQAAa4GAAGuBwABriAAAa4hAAGuIgABriQAAa6fAAGuoQABrqMAAa6lAAGuqAABrqkAAa6qAAGuqwABrqwAAa6uAAGusAABrrEAAa6yAAGutAABrrUAAa8wAAGvMgABrzQAAa82AAGvOQABrzoAAa87AAGvPAABrz0AAa8/AAGvQQABr0IAAa9DAAGvRQABr0YAAa/BAAGvwwABr8UAAa/HAAGvygABr8sAAa/MAAGvzQABr84AAa/QAAGv0gABr9MAAa/UAAGv1gABr9cAAbBSAAGwVAABsFYAAbBYAAGwWwABsFwAAbBdAAGwXgABsF8AAbBhAAGwYwABsGQAAbBlAAGwZwABsGgAAbDjAAGw5QABsOcAAbDpAAGw7AABsO0AAbDuAAGw7wABsPAAAbDyAAGw9AABsPUAAbD2AAGw+AABsPkAAbFCAAGxZgABsY0AAbGxAAGxtAABsbcAAbG5AAGxuwABsb0AAbG/AAGxwAABscMAAbHcAAGx+QABsfwAAbH/AAGyAgABsgUAAbIIAAGyCwABsg4AAbIrAAGyLgABsjEAAbI0AAGyNwABsjoAAbI9AAGyQAABskIAAbK9AAGyvwABssIAAbLEAAGyxwABssgAAbLJAAGyygABsssAAbLNAAGy0AABstEAAbLSAAGy1AABstUAAbNQAAGzUgABs1UAAbNXAAGzWgABs1sAAbNcAAGzXQABs14AAbNgAAGzYwABs2QAAbNlAAGzZwABs2gAAbPjAAGz5QABs+gAAbPqAAGz7QABs+4AAbPvAAGz8AABs/EAAbPzAAGz9gABs/cAAbP4AAGz+gABs/sAAbR2AAG0eAABtHsAAbR9AAG0gAABtIEAAbSCAAG0gwABtIQAAbSGAAG0iQABtIoAAbSLAAG0jQABtI4AAbURAAG1NQABtVkAAbV8AAG1owABtcMAAbXqAAG2EQABtjEAAbZVAAG2eQABtnsAAbZ+AAG2gAABtoIAAbaEAAG2hwABtooAAbaMAAG2jgABtpEAAbaTAAG2lQABtpgAAbabAAG2nAABtqUAAba+AAG2wwABtsUAAbbKAAG2zQABts8AAbcYAAG3PAABt2MAAbeHAAG3igABt4wAAbeOAAG3kAABt5IAAbeUAAG3lQABt5gAAbexAAG31gABt9gAAbfaAAG33AABt94AAbfgAAG34gABt+QAAbfmAAG36AABuA0AAbgQAAG4EwABuBYAAbgZAAG4HAABuB8AAbgiAAG4JQABuCgAAbgqAAG4pQABuKcAAbiqAAG4rAABuK8AAbiwAAG4sQABuLIAAbizAAG4tQABuLcAAbi4AAG4uQABuLsAAbi8AAG4zQABuM4AAbjQAAG5SwABuU0AAblPAAG5UQABuVQAAblVAAG5VgABuVcAAblYAAG5WgABuVwAAbldAAG5XgABuWAAAblhAAG53AABud4AAbnhAAG54wABueYAAbnnAAG56AABuekAAbnqAAG57AABue4AAbnvAAG58AABufIAAbnzAAG6BAABugUAAboHAAG6ggABuoQAAbqGAAG6iAABuosAAbqMAAG6jQABuo4AAbqPAAG6kQABupMAAbqUAAG6lQABupcAAbqYAAG7EwABuxUAAbsYAAG7GgABux0AAbseAAG7HwABuyAAAbshAAG7IwABuyUAAbsmAAG7JwABuykAAbsqAAG7OwABuzwAAbs+AAG7uQABu7sAAbu9AAG7vwABu8IAAbvDAAG7xAABu8UAAbvGAAG7yAABu8oAAbvLAAG7zAABu84AAbvPAAG8SgABvEwAAbxPAAG8UQABvFQAAbxVAAG8VgABvFcAAbxYAAG8WgABvFwAAbxdAAG8XgABvGAAAbxhAAG8egABvHsAAbx8AAG8fgABvPkAAbz7AAG8/QABvP8AAb0CAAG9AwABvQQAAb0FAAG9BgABvQgAAb0KAAG9CwABvQwAAb0OAAG9DwABvYoAAb2MAAG9jwABvZEAAb2UAAG9lQABvZYAAb2XAAG9mAABvZoAAb2cAAG9nQABvZ4AAb2gAAG9oQABva0AAb3GAAG92wABvd4AAb3hAAG95AABvecAAb3qAAG9/wABvgIAAb4FAAG+CAABvgsAAb4OAAG+EAABviYAAb4xAAG+PQABvlMAAb5dAAG+8AABvxMAAb8zAAG/UwABv1UAAb9XAAG/WQABv1sAAb9eAAG/XwABv2AAAb9jAAG/ZAABv2YAAb9nAAG/aQABv2wAAb9tAAG/bgABv3EAAb9yAAG/dwABv5AAAb+ZAAG/mwABv50AAb+mAAG/qQABv6wAAb+uAAG/9wABwBsAAcBCAAHAZgABwGkAAcBrAAHAbQABwG8AAcBxAAHAcwABwHQAAcB3AAHAkAABwLEAAcCzAAHAtQABwLcAAcC5AAHAuwABwL0AAcC/AAHAwQABwOIAAcDlAAHA6AABwOsAAcDuAAHA8QABwPQAAcD3AAHA+gABwPwAAcF3AAHBeQABwXsAAcF9AAHBgAABwYEAAcGCAAHBgwABwYQAAcGGAAHBiAABwYkAAcGKAAHBjAABwY0AAcIIAAHCCgABwgwAAcIOAAHCEQABwhIAAcITAAHCFAABwhUAAcIXAAHCGQABwhoAAcIbAAHCHQABwh4AAcKZAAHCmwABwp4AAcKgAAHCowABwqQAAcKlAAHCpgABwqcAAcKpAAHCqwABwqwAAcKtAAHCrwABwrAAAcLJAAHCygABwssAAcLNAAHDSAABw0oAAcNMAAHDTgABw1EAAcNSAAHDUwABw1QAAcNVAAHDVwABw1kAAcNaAAHDWwABw10AAcNeAAHD2QABw9sAAcPdAAHD3wABw+IAAcPjAAHD5AABw+UAAcPmAAHD6AABw+oAAcPrAAHD7AABw+4AAcPvAAHEagABxGwAAcRuAAHEcAABxHMAAcR0AAHEdQABxHYAAcR3AAHEeQABxHsAAcR8AAHEfQABxH8AAcSAAAHE+wABxP0AAcT/AAHFAQABxQQAAcUFAAHFBgABxQcAAcUIAAHFCgABxQwAAcUNAAHFDgABxRAAAcURAAHFjAABxY4AAcWQAAHFkgABxZUAAcWWAAHFlwABxZgAAcWZAAHFmwABxZ0AAcWeAAHFnwABxaEAAcWiAAHF6wABxg8AAcY2AAHGWgABxl0AAcZfAAHGYQABxmMAAcZlAAHGZwABxmgAAcZrAAHGhAABxqEAAcajAAHGpQABxqcAAcapAAHGqwABxq0AAcavAAHGzAABxs8AAcbSAAHG1QABxtgAAcbbAAHG3gABxuEAAcbjAAHHXgABx2AAAcdiAAHHZAABx2cAAcdoAAHHaQABx2oAAcdrAAHHbQABx28AAcdwAAHHcQABx3MAAcd0AAHH7wABx/EAAcfzAAHH9QABx/gAAcf5AAHH+gABx/sAAcf8AAHH/gAByAAAAcgBAAHIAgAByAQAAcgFAAHIgAAByIIAAciEAAHIhgAByIkAAciKAAHIiwAByIwAAciNAAHIjwAByJEAAciSAAHIkwAByJUAAciWAAHJEQAByRMAAckWAAHJGAAByRsAAckcAAHJHQAByR4AAckfAAHJIQABySMAAckkAAHJJQAByScAAckoAAHJowAByaUAAcmnAAHJqQAByawAAcmtAAHJrgABya8AAcmwAAHJsgABybQAAcm1AAHJtgABybgAAcm5AAHKNAAByjYAAco4AAHKOgAByj0AAco+AAHKPwABykAAAcpBAAHKQwABykUAAcpGAAHKRwABykkAAcpKAAHKxQAByscAAcrJAAHKywABys4AAcrPAAHK0AABytEAAcrSAAHK1AABytYAAcrXAAHK2AABytoAAcrbAAHLbgABy5EAAcuxAAHL0QABy9MAAcvVAAHL1wABy9kAAcvcAAHL3QABy94AAcvhAAHL4gABy+QAAcvlAAHL5wABy+oAAcvrAAHL7AABy+8AAcvwAAHL9QABzA4AAcwXAAHMGQABzBsAAcwkAAHMJwABzCoAAcwsAAHMdQABzJkAAczAAAHM5AABzOcAAczpAAHM6wABzO0AAczvAAHM8QABzPIAAcz1AAHNDgABzS8AAc0xAAHNMwABzTUAAc03AAHNOQABzTsAAc09AAHNPwABzWAAAc1jAAHNZgABzWkAAc1sAAHNbwABzXIAAc11AAHNeAABzXoAAc31AAHN9wABzfkAAc37AAHN/gABzf8AAc4AAAHOAQABzgIAAc4EAAHOBgABzgcAAc4IAAHOCgABzgsAAc6GAAHOiAABzooAAc6MAAHOjwABzpAAAc6RAAHOkgABzpMAAc6VAAHOlwABzpgAAc6ZAAHOmwABzpwAAc8XAAHPGQABzxwAAc8eAAHPIQABzyIAAc8jAAHPJAABzyUAAc8nAAHPKQABzyoAAc8rAAHPLQABzy4AAc9HAAHPSAABz0kAAc9LAAHPxgABz8gAAc/KAAHPzAABz88AAc/QAAHP0QABz9IAAc/TAAHP1QABz9cAAc/YAAHP2QABz9sAAc/cAAHQVwAB0FkAAdBbAAHQXQAB0GAAAdBhAAHQYgAB0GMAAdBkAAHQZgAB0GgAAdBpAAHQagAB0GwAAdBtAAHQ6AAB0OoAAdDsAAHQ7gAB0PEAAdDyAAHQ8wAB0PQAAdD1AAHQ9wAB0PkAAdD6AAHQ+wAB0P0AAdD+AAHReQAB0XsAAdF9AAHRfwAB0YIAAdGDAAHRhAAB0YUAAdGGAAHRiAAB0YoAAdGLAAHRjAAB0Y4AAdGPAAHSCgAB0gwAAdIOAAHSEAAB0hMAAdIUAAHSFQAB0hYAAdIXAAHSGQAB0hsAAdIcAAHSHQAB0h8AAdIgAAHSaQAB0o0AAdK0AAHS2AAB0tsAAdLdAAHS3wAB0uEAAdLjAAHS5QAB0uYAAdLpAAHTAgAB0x8AAdMhAAHTIwAB0yUAAdMnAAHTKQAB0ysAAdMtAAHTSgAB000AAdNQAAHTUwAB01YAAdNZAAHTXAAB018AAdNhAAHT3AAB094AAdPgAAHT4gAB0+UAAdPmAAHT5wAB0+gAAdPpAAHT6wAB0+0AAdPuAAHT7wAB0/EAAdPyAAHUbQAB1G8AAdRxAAHUcwAB1HYAAdR3AAHUeAAB1HkAAdR6AAHUfAAB1H4AAdR/AAHUgAAB1IIAAdSDAAHU/gAB1QAAAdUCAAHVBAAB1QcAAdUIAAHVCQAB1QoAAdULAAHVDQAB1Q8AAdUQAAHVEQAB1RMAAdUUAAHVjwAB1ZEAAdWUAAHVlgAB1ZkAAdWaAAHVmwAB1ZwAAdWdAAHVnwAB1aEAAdWiAAHVowAB1aUAAdWmAAHVqQAB1iQAAdYmAAHWKAAB1ioAAdYtAAHWLgAB1i8AAdYwAAHWMQAB1jMAAdY1AAHWNgAB1jcAAdY5AAHWOgAB1rUAAda3AAHWuQAB1rsAAda+AAHWvwAB1sAAAdbBAAHWwgAB1sQAAdbGAAHWxwAB1sgAAdbKAAHWywAB10YAAddIAAHXSgAB10wAAddPAAHXUAAB11EAAddSAAHXUwAB11UAAddXAAHXWAAB11kAAddbAAHXXAAB1+8AAdgSAAHYMgAB2FIAAdhUAAHYVgAB2FgAAdhaAAHYXQAB2F4AAdhfAAHYYgAB2GMAAdhlAAHYZgAB2GgAAdhrAAHYbAAB2G0AAdhwAAHYcQAB2HYAAdiPAAHYmAAB2JoAAdicAAHYpQAB2KgAAdirAAHYrQAB2PYAAdkaAAHZQQAB2WUAAdloAAHZagAB2WwAAdluAAHZcAAB2XIAAdlzAAHZdgAB2Y8AAdmwAAHZsgAB2bQAAdm2AAHZuAAB2boAAdm8AAHZvgAB2cAAAdnhAAHZ5AAB2ecAAdnqAAHZ7QAB2fAAAdnzAAHZ9gAB2fkAAdn7AAHadgAB2ngAAdp6AAHafAAB2n8AAdqAAAHagQAB2oIAAdqDAAHahQAB2ocAAdqIAAHaiQAB2osAAdqMAAHbBwAB2wkAAdsLAAHbDQAB2xAAAdsRAAHbEgAB2xMAAdsUAAHbFgAB2xgAAdsZAAHbGgAB2xwAAdsdAAHbmAAB25oAAdudAAHbnwAB26IAAdujAAHbpAAB26UAAdumAAHbqAAB26oAAdurAAHbrAAB264AAduvAAHbyAAB28kAAdvKAAHbzAAB3EcAAdxJAAHcSwAB3E0AAdxQAAHcUQAB3FIAAdxTAAHcVAAB3FYAAdxYAAHcWQAB3FoAAdxcAAHcXQAB3NgAAdzaAAHc3AAB3N4AAdzhAAHc4gAB3OMAAdzkAAHc5QAB3OcAAdzpAAHc6gAB3OsAAdztAAHc7gAB3WkAAd1rAAHdbQAB3W8AAd1yAAHdcwAB3XQAAd11AAHddgAB3XgAAd16AAHdewAB3XwAAd1+AAHdfwAB3foAAd38AAHd/gAB3gAAAd4DAAHeBAAB3gUAAd4GAAHeBwAB3gkAAd4LAAHeDAAB3g0AAd4PAAHeEAAB3osAAd6NAAHejwAB3pEAAd6UAAHelQAB3pYAAd6XAAHemAAB3poAAd6cAAHenQAB3p4AAd6gAAHeoQAB3uoAAd8OAAHfNQAB31kAAd9cAAHfXgAB32AAAd9iAAHfZAAB32YAAd9nAAHfagAB34MAAd+gAAHfogAB36QAAd+mAAHfqAAB36oAAd+sAAHfrgAB38sAAd/OAAHf0QAB39QAAd/XAAHf2gAB390AAd/gAAHf4gAB4F0AAeBfAAHgYQAB4GMAAeBmAAHgZwAB4GgAAeBpAAHgagAB4GwAAeBuAAHgbwAB4HAAAeByAAHgcwAB4O4AAeDwAAHg8gAB4PQAAeD3AAHg+AAB4PkAAeD6AAHg+wAB4P0AAeD/AAHhAAAB4QEAAeEDAAHhBAAB4X8AAeGBAAHhgwAB4YUAAeGIAAHhiQAB4YoAAeGLAAHhjAAB4Y4AAeGQAAHhkQAB4ZIAAeGUAAHhlQAB4hAAAeISAAHiFQAB4hcAAeIaAAHiGwAB4hwAAeIdAAHiHgAB4iAAAeIiAAHiIwAB4iQAAeImAAHiJwAB4qIAAeKkAAHipgAB4qgAAeKrAAHirAAB4q0AAeKuAAHirwAB4rEAAeKzAAHitAAB4rUAAeK3AAHiuAAB4zMAAeM1AAHjNwAB4zkAAeM8AAHjPQAB4z4AAeM/AAHjQAAB40IAAeNEAAHjRQAB40YAAeNIAAHjSQAB48QAAePGAAHjyAAB48oAAePNAAHjzgAB488AAePQAAHj0QAB49MAAePVAAHj1gAB49cAAePZAAHj2gAB5G0AAeSQAAHksAAB5NAAAeTSAAHk1AAB5NYAAeTYAAHk2wAB5NwAAeTdAAHk4AAB5OEAAeTjAAHk5AAB5OYAAeTpAAHk6gAB5OsAAeTuAAHk7wAB5PQAAeUNAAHlFgAB5RgAAeUaAAHlIwAB5SYAAeUpAAHlKwAB5XQAAeWYAAHlvwAB5eMAAeXmAAHl6AAB5eoAAeXsAAHl7gAB5fAAAeXxAAHl9AAB5g0AAeYuAAHmMAAB5jIAAeY0AAHmNgAB5jgAAeY6AAHmPAAB5j4AAeZfAAHmYgAB5mUAAeZoAAHmawAB5m4AAeZxAAHmdAAB5ncAAeZ5AAHm9AAB5vYAAeb4AAHm+gAB5v0AAeb+AAHm/wAB5wAAAecBAAHnAwAB5wUAAecGAAHnBwAB5wkAAecKAAHnhQAB54cAAeeJAAHniwAB544AAeePAAHnkAAB55EAAeeSAAHnlAAB55YAAeeXAAHnmAAB55oAAeebAAHoFgAB6BgAAegbAAHoHQAB6CAAAeghAAHoIgAB6CMAAegkAAHoJgAB6CgAAegpAAHoKgAB6CwAAegtAAHoRgAB6EcAAehIAAHoSgAB6MUAAejHAAHoyQAB6MsAAejOAAHozwAB6NAAAejRAAHo0gAB6NQAAejWAAHo1wAB6NgAAejaAAHo2wAB6VYAAelYAAHpWgAB6VwAAelfAAHpYAAB6WEAAeliAAHpYwAB6WUAAelnAAHpaAAB6WkAAelrAAHpbAAB6ecAAenpAAHp6wAB6e0AAenwAAHp8QAB6fIAAenzAAHp9AAB6fYAAen4AAHp+QAB6foAAen8AAHp/QAB6ngAAep6AAHqfAAB6n4AAeqBAAHqggAB6oMAAeqEAAHqhQAB6ocAAeqJAAHqigAB6osAAeqNAAHqjgAB6wkAAesLAAHrDQAB6w8AAesSAAHrEwAB6xQAAesVAAHrFgAB6xgAAesaAAHrGwAB6xwAAeseAAHrHwAB62gAAeuMAAHrswAB69cAAevaAAHr3AAB694AAevgAAHr4gAB6+QAAevlAAHr6AAB7AEAAeweAAHsIAAB7CIAAewkAAHsJgAB7CgAAewqAAHsLAAB7EkAAexMAAHsTwAB7FIAAexVAAHsWAAB7FsAAexeAAHsYAAB7NsAAezdAAHs3wAB7OEAAezkAAHs5QAB7OYAAeznAAHs6AAB7OoAAezsAAHs7QAB7O4AAezwAAHs8QAB7WwAAe1uAAHtcAAB7XIAAe11AAHtdgAB7XcAAe14AAHteQAB7XsAAe19AAHtfgAB7X8AAe2BAAHtggAB7f0AAe3/AAHuAQAB7gMAAe4GAAHuBwAB7ggAAe4JAAHuCgAB7gwAAe4OAAHuDwAB7hAAAe4SAAHuEwAB7o4AAe6QAAHukgAB7pQAAe6XAAHumAAB7pkAAe6aAAHumwAB7p0AAe6fAAHuoAAB7qEAAe6jAAHupAAB7x8AAe8hAAHvIwAB7yUAAe8oAAHvKQAB7yoAAe8rAAHvLAAB7y4AAe8wAAHvMQAB7zIAAe80AAHvNQAB77AAAe+yAAHvtAAB77YAAe+5AAHvugAB77sAAe+8AAHvvQAB778AAe/BAAHvwgAB78MAAe/FAAHvxgAB8EEAAfBDAAHwRQAB8EcAAfBKAAHwSwAB8EwAAfBNAAHwTgAB8FAAAfBSAAHwUwAB8FQAAfBWAAHwVwAB8OoAAfENAAHxLQAB8U0AAfFPAAHxUQAB8VMAAfFVAAHxWAAB8VkAAfFaAAHxXQAB8V4AAfFgAAHxYQAB8WQAAfFnAAHxaAAB8WkAAfFsAAHxbQAB8XIAAfGLAAHxlAAB8ZYAAfGZAAHxogAB8aUAAfGoAAHxqgAB8fMAAfIXAAHyPgAB8mIAAfJlAAHyZwAB8mkAAfJrAAHybQAB8m8AAfJwAAHycwAB8owAAfKtAAHyrwAB8rEAAfKzAAHytQAB8rcAAfK5AAHyuwAB8r0AAfLeAAHy4QAB8uQAAfLnAAHy6gAB8u0AAfLwAAHy8wAB8vYAAfL4AAHzcwAB83UAAfN3AAHzeQAB83wAAfN9AAHzfgAB838AAfOAAAHzggAB84QAAfOFAAHzhgAB84gAAfOJAAH0BAAB9AYAAfQIAAH0CgAB9A0AAfQOAAH0DwAB9BAAAfQRAAH0EwAB9BUAAfQWAAH0FwAB9BkAAfQaAAH0lQAB9JcAAfSaAAH0nAAB9J8AAfSgAAH0oQAB9KIAAfSjAAH0pQAB9KcAAfSoAAH0qQAB9KsAAfSsAAH0xQAB9MYAAfTHAAH0yQAB9UQAAfVGAAH1SAAB9UoAAfVNAAH1TgAB9U8AAfVQAAH1UQAB9VMAAfVVAAH1VgAB9VcAAfVZAAH1WgAB9dUAAfXXAAH12QAB9dsAAfXeAAH13wAB9eAAAfXhAAH14gAB9eQAAfXmAAH15wAB9egAAfXqAAH16wAB9mYAAfZoAAH2agAB9mwAAfZvAAH2cAAB9nEAAfZyAAH2cwAB9nUAAfZ3AAH2eAAB9nkAAfZ7AAH2fAAB9vcAAfb5AAH2+wAB9v0AAfcAAAH3AQAB9wIAAfcDAAH3BAAB9wYAAfcIAAH3CQAB9woAAfcMAAH3DQAB94gAAfeKAAH3jAAB944AAfeRAAH3kgAB95MAAfeUAAH3lQAB95cAAfeZAAH3mgAB95sAAfedAAH3ngAB9+cAAfgLAAH4MgAB+FYAAfhZAAH4XAAB+F4AAfhgAAH4YgAB+GQAAfhlAAH4aAAB+IEAAfieAAH4oQAB+KQAAfinAAH4qgAB+K0AAfiwAAH4swAB+NAAAfjTAAH41gAB+NkAAfjcAAH43wAB+OIAAfjlAAH45wAB+WIAAflkAAH5ZwAB+WkAAflsAAH5bQAB+W4AAflvAAH5cAAB+XIAAfl1AAH5dgAB+XcAAfl5AAH5egAB+fUAAfn3AAH5+gAB+fwAAfn/AAH6AAAB+gEAAfoCAAH6AwAB+gUAAfoIAAH6CQAB+goAAfoMAAH6DQAB+ogAAfqKAAH6jQAB+o8AAfqSAAH6kwAB+pQAAfqVAAH6lgAB+pgAAfqbAAH6nAAB+p0AAfqfAAH6oAAB+xsAAfsdAAH7IAAB+yIAAfslAAH7JgAB+ycAAfsoAAH7KQAB+ysAAfsuAAH7LwAB+zAAAfsyAAH7MwAB+64AAfuwAAH7sgAB+7QAAfu3AAH7uAAB+7kAAfu6AAH7uwAB+70AAfvAAAH7wQAB+8IAAfvEAAH7xQAB/EAAAfxCAAH8RAAB/EYAAfxJAAH8SgAB/EsAAfxMAAH8TQAB/E8AAfxSAAH8UwAB/FQAAfxWAAH8VwAB/NIAAfzUAAH81wAB/NkAAfzcAAH83QAB/N4AAfzfAAH84AAB/OIAAfzlAAH85gAB/OcAAfzpAAH86gAB/PUAAf0GAAH9BwAB/QkAAf0aAAH9JQAB/UIAAf1NAAH9WwAB/XAAAf2EAAH9mwAB/a0AAf4oAAH+KgAB/iwAAf4uAAH+MQAB/jIAAf4zAAH+NAAB/jUAAf43AAH+OgAB/jsAAf48AAH+PgAB/j8AAf66AAH+vAAB/r4AAf7AAAH+wwAB/sQAAf7FAAH+xgAB/scAAf7JAAH+zAAB/s0AAf7OAAH+0AAB/tEAAf9MAAH/TgAB/1EAAf9TAAH/VgAB/1cAAf9YAAH/WQAB/1oAAf9cAAH/XwAB/2AAAf9hAAH/YwAB/2QAAf/3AAIAGgACADoAAgBaAAIAXAACAF4AAgBgAAIAYgACAGUAAgBmAAIAZwACAGoAAgBrAAIAbQACAG4AAgBwAAIAcwACAHQAAgB1AAIAeAACAHkAAgB+AAIAlwACAKAAAgCiAAIApAACAK0AAgCwAAIAswACALUAAgD+AAIBIgACAUkAAgFtAAIBcAACAXIAAgF0AAIBdgACAXgAAgF6AAIBewACAX4AAgGXAAIBuAACAboAAgG8AAIBvgACAcAAAgHCAAIBxAACAcYAAgHIAAIB6QACAewAAgHvAAIB8gACAfUAAgH4AAIB+wACAf4AAgIBAAICAwACAn4AAgKAAAICggACAoQAAgKHAAICiAACAokAAgKKAAICiwACAo0AAgKPAAICkAACApEAAgKTAAIClAACAw8AAgMRAAIDEwACAxUAAgMYAAIDGQACAxoAAgMbAAIDHAACAx4AAgMgAAIDIQACAyIAAgMkAAIDJQACA6AAAgOiAAIDpQACA6cAAgOqAAIDqwACA6wAAgOtAAIDrgACA7AAAgOyAAIDswACA7QAAgO2AAIDtwACA9AAAgPRAAID0gACA9QAAgRPAAIEUQACBFMAAgRVAAIEWAACBFkAAgRaAAIEWwACBFwAAgReAAIEYAACBGEAAgRiAAIEZAACBGUAAgTgAAIE4gACBOQAAgTmAAIE6QACBOoAAgTrAAIE7AACBO0AAgTvAAIE8QACBPIAAgTzAAIE9QACBPYAAgVxAAIFcwACBXUAAgV3AAIFegACBXsAAgV8AAIFfQACBX4AAgWAAAIFggACBYMAAgWEAAIFhgACBYcAAgYCAAIGBAACBgYAAgYIAAIGCwACBgwAAgYNAAIGDgACBg8AAgYRAAIGEwACBhQAAgYVAAIGFwACBhgAAgaTAAIGlQACBpcAAgaZAAIGnAACBp0AAgaeAAIGnwACBqAAAgaiAAIGpAACBqUAAgamAAIGqAACBqkAAgbyAAIHFgACBz0AAgdhAAIHZAACB2YAAgdoAAIHagACB2wAAgduAAIHbwACB3IAAgeLAAIHqAACB6oAAgesAAIHrgACB7AAAgeyAAIHtAACB7YAAgfTAAIH1gACB9kAAgfcAAIH3wACB+IAAgflAAIH6AACB+oAAghlAAIIZwACCGkAAghrAAIIbgACCG8AAghwAAIIcQACCHIAAgh0AAIIdgACCHcAAgh4AAIIegACCHsAAgj2AAII+AACCPoAAgj8AAII/wACCQAAAgkBAAIJAgACCQMAAgkFAAIJBwACCQgAAgkJAAIJCwACCQwAAgmHAAIJiQACCYsAAgmNAAIJkAACCZEAAgmSAAIJkwACCZQAAgmWAAIJmAACCZkAAgmaAAIJnAACCZ0AAgoYAAIKGgACChwAAgoeAAIKIQACCiIAAgojAAIKJAACCiUAAgonAAIKKQACCioAAgorAAIKLQACCi4AAgqpAAIKqwACCq0AAgqvAAIKsgACCrMAAgq0AAIKtQACCrYAAgq4AAIKugACCrsAAgq8AAIKvgACCr8AAgs6AAILPAACCz4AAgtAAAILQwACC0QAAgtFAAILRgACC0cAAgtJAAILSwACC0wAAgtNAAILTwACC1AAAgvLAAILzQACC88AAgvRAAIL1AACC9UAAgvWAAIL1wACC9gAAgvaAAIL3AACC90AAgveAAIL4AACC+EAAgvyAAIL8wACC/UAAgxwAAIMcgACDHQAAgx2AAIMeQACDHoAAgx7AAIMfAACDH0AAgx/AAIMggACDIMAAgyEAAIMhgACDIcAAg0CAAINBAACDQYAAg0IAAINCwACDQwAAg0NAAINDgACDQ8AAg0RAAINFAACDRUAAg0WAAINGAACDRkAAg2UAAINlgACDZkAAg2bAAINngACDZ8AAg2gAAINoQACDaIAAg2kAAINpwACDagAAg2pAAINqwACDawAAg29AAINvgACDcAAAg5DAAIOZwACDosAAg6uAAIO1QACDvUAAg8cAAIPQwACD2MAAg+HAAIPqwACD60AAg+wAAIPsgACD7QAAg+2AAIPuQACD7wAAg++AAIPwAACD8MAAg/FAAIPxwACD8oAAg/NAAIPzgACD9cAAg/wAAIP9QACD/cAAg/8AAIP/wACEAEAAhBKAAIQbgACEJUAAhC5AAIQvAACEL4AAhDAAAIQwgACEMQAAhDGAAIQxwACEMoAAhDjAAIRCAACEQoAAhEMAAIRDgACERAAAhESAAIRFAACERYAAhEYAAIRGgACET8AAhFCAAIRRQACEUgAAhFLAAIRTgACEVEAAhFUAAIRVwACEVoAAhFcAAIR1wACEdkAAhHcAAIR3gACEeEAAhHiAAIR4wACEeQAAhHlAAIR5wACEekAAhHqAAIR6wACEe0AAhHuAAIR/wACEgAAAhICAAISfQACEn8AAhKBAAISgwACEoYAAhKHAAISiAACEokAAhKKAAISjAACEo4AAhKPAAISkAACEpIAAhKTAAITDgACExAAAhMTAAITFQACExgAAhMZAAITGgACExsAAhMcAAITHgACEyAAAhMhAAITIgACEyQAAhMlAAITNgACEzsAAhM+AAITQAACE1EAAhNaAAITXQACE2AAAhNiAAITfgACE5AAAhQLAAIUDQACFA8AAhQRAAIUFAACFBUAAhQWAAIUFwACFBgAAhQaAAIUHAACFB0AAhQeAAIUIAACFCEAAhScAAIUngACFKEAAhSjAAIUpgACFKcAAhSoAAIUqQACFKoAAhSsAAIUrgACFK8AAhSwAAIUsgACFLMAAhTEAAIUxQACFMcAAhVCAAIVRAACFUYAAhVIAAIVSwACFUwAAhVNAAIVTgACFU8AAhVRAAIVUwACFVQAAhVVAAIVVwACFVgAAhXTAAIV1QACFdgAAhXaAAIV3QACFd4AAhXfAAIV4AACFeEAAhXjAAIV5QACFeYAAhXnAAIV6QACFeoAAhYDAAIWBAACFgUAAhYHAAIWggACFoQAAhaGAAIWiAACFosAAhaMAAIWjQACFo4AAhaPAAIWkQACFpMAAhaUAAIWlQACFpcAAhaYAAIXEwACFxUAAhcYAAIXGgACFx0AAhceAAIXHwACFyAAAhchAAIXIwACFyUAAhcmAAIXJwACFykAAhcqAAIXNwACF1AAAheJAAIXjAACF48AAheSAAIXlQACF5gAAhebAAIXngACF6EAAhekAAIXpwACF6oAAhetAAIXsAACF7MAAhfsAAIX7wACF/IAAhf1AAIX+AACF/sAAhf+AAIYAQACGAQAAhgHAAIYCgACGA0AAhgQAAIYEwACGBYAAhgYAAIYNAACGEIAAhhbAAIYagACGI0AAhihAAIYtgACGMEAAhjaAAIY7QACGRIAAhkwAAIZQgACGWEAAhn0AAIaFwACGjcAAhpXAAIaWQACGlsAAhpdAAIaXwACGmIAAhpjAAIaZAACGmcAAhpoAAIaagACGmsAAhptAAIacAACGnEAAhpyAAIadQACGnYAAhp7AAIalAACGp0AAhqfAAIaoQACGqoAAhqtAAIasAACGrIAAhr7AAIbHwACG0YAAhtqAAIbbQACG28AAhtxAAIbcwACG3UAAht3AAIbeAACG3sAAhuUAAIbtQACG7cAAhu5AAIbuwACG70AAhu/AAIbwQACG8MAAhvFAAIb5gACG+kAAhvsAAIb7wACG/IAAhv1AAIb+AACG/sAAhv+AAIcAAACHHsAAhx9AAIcfwACHIEAAhyEAAIchQACHIYAAhyHAAIciAACHIoAAhyMAAIcjQACHI4AAhyQAAIckQACHQwAAh0OAAIdEAACHRIAAh0VAAIdFgACHRcAAh0YAAIdGQACHRsAAh0dAAIdHgACHR8AAh0hAAIdIgACHZ0AAh2fAAIdogACHaQAAh2nAAIdqAACHakAAh2qAAIdqwACHa0AAh2vAAIdsAACHbEAAh2zAAIdtAACHc0AAh3OAAIdzwACHdEAAh5MAAIeTgACHlAAAh5SAAIeVQACHlYAAh5XAAIeWAACHlkAAh5bAAIeXQACHl4AAh5fAAIeYQACHmIAAh7dAAIe3wACHuEAAh7jAAIe5gACHucAAh7oAAIe6QACHuoAAh7sAAIe7gACHu8AAh7wAAIe8gACHvMAAh9uAAIfcAACH3IAAh90AAIfdwACH3gAAh95AAIfegACH3sAAh99AAIffwACH4AAAh+BAAIfgwACH4QAAh//AAIgAQACIAMAAiAFAAIgCAACIAkAAiAKAAIgCwACIAwAAiAOAAIgEAACIBEAAiASAAIgFAACIBUAAiCQAAIgkgACIJQAAiCWAAIgmQACIJoAAiCbAAIgnAACIJ0AAiCfAAIgoQACIKIAAiCjAAIgpQACIKYAAiDvAAIhEwACIToAAiFeAAIhYQACIWMAAiFlAAIhZwACIWkAAiFrAAIhbAACIW8AAiGIAAIhpQACIacAAiGpAAIhqwACIa0AAiGvAAIhsQACIbMAAiHQAAIh0wACIdYAAiHZAAIh3AACId8AAiHiAAIh5QACIecAAiJiAAIiZAACImYAAiJoAAIiawACImwAAiJtAAIibgACIm8AAiJxAAIicwACInQAAiJ1AAIidwACIngAAiLzAAIi9QACIvcAAiL5AAIi/AACIv0AAiL+AAIi/wACIwAAAiMCAAIjBAACIwUAAiMGAAIjCAACIwkAAiOEAAIjhgACI4gAAiOKAAIjjQACI44AAiOPAAIjkAACI5EAAiOTAAIjlQACI5YAAiOXAAIjmQACI5oAAiQVAAIkFwACJBoAAiQcAAIkHwACJCAAAiQhAAIkIgACJCMAAiQlAAIkJwACJCgAAiQpAAIkKwACJCwAAiSnAAIkqQACJKsAAiStAAIksAACJLEAAiSyAAIkswACJLQAAiS2AAIkuAACJLkAAiS6AAIkvAACJL0AAiU4AAIlOgACJT0AAiU/AAIlQgACJUMAAiVEAAIlRQACJUYAAiVIAAIlSgACJUsAAiVMAAIlTgACJU8AAiVeAAIl2QACJdsAAiXdAAIl3wACJeIAAiXjAAIl5AACJeUAAiXmAAIl6AACJeoAAiXrAAIl7AACJe4AAiXvAAImggACJqUAAibFAAIm5QACJucAAibpAAIm6wACJu0AAibwAAIm8QACJvIAAib1AAIm9gACJvgAAib5AAIm/AACJv8AAicAAAInAQACJwQAAicFAAInCgACJyMAAicsAAInLgACJzEAAic6AAInPQACJ0AAAidCAAIniwACJ68AAifWAAIn+gACJ/0AAif/AAIoAQACKAMAAigFAAIoBwACKAgAAigLAAIoJAACKEUAAihHAAIoSQACKEsAAihNAAIoTwACKFEAAihTAAIoVQACKHYAAih5AAIofAACKH8AAiiCAAIohQACKIgAAiiLAAIojgACKJAAAikLAAIpDQACKQ8AAikRAAIpFAACKRUAAikWAAIpFwACKRgAAikaAAIpHAACKR0AAikeAAIpIAACKSEAAimcAAIpngACKaAAAimiAAIppQACKaYAAimnAAIpqAACKakAAimrAAIprQACKa4AAimvAAIpsQACKbIAAiotAAIqLwACKjIAAio0AAIqNwACKjgAAio5AAIqOgACKjsAAio9AAIqPwACKkAAAipBAAIqQwACKkQAAipdAAIqXgACKl8AAiphAAIq3AACKt4AAirgAAIq4gACKuUAAirmAAIq5wACKugAAirpAAIq6wACKu0AAiruAAIq7wACKvEAAiryAAIrbQACK28AAitxAAIrcwACK3YAAit3AAIreAACK3kAAit6AAIrfAACK34AAit/AAIrgAACK4IAAiuDAAIr/gACLAAAAiwCAAIsBAACLAcAAiwIAAIsCQACLAoAAiwLAAIsDQACLA8AAiwQAAIsEQACLBMAAiwUAAIsjwACLJEAAiyTAAIslQACLJgAAiyZAAIsmgACLJsAAiycAAIsngACLKAAAiyhAAIsogACLKQAAiylAAItIAACLSIAAi0kAAItJgACLSkAAi0qAAItKwACLSwAAi0tAAItLwACLTEAAi0yAAItMwACLTUAAi02AAItfwACLaMAAi3KAAIt7gACLfEAAi30AAIt9gACLfgAAi36AAIt/AACLf0AAi4AAAIuGQACLjYAAi45AAIuPAACLj8AAi5CAAIuRQACLkgAAi5LAAIuaAACLmsAAi5uAAIucQACLnQAAi53AAIuegACLn0AAi5/AAIu+gACLvwAAi7/AAIvAQACLwQAAi8FAAIvBgACLwcAAi8IAAIvCgACLw0AAi8OAAIvDwACLxEAAi8SAAIvjQACL48AAi+SAAIvlAACL5cAAi+YAAIvmQACL5oAAi+bAAIvnQACL6AAAi+hAAIvogACL6QAAi+lAAIwIAACMCIAAjAlAAIwJwACMCoAAjArAAIwLAACMC0AAjAuAAIwMAACMDMAAjA0AAIwNQACMDcAAjA4AAIwswACMLUAAjC4AAIwugACML0AAjC+AAIwvwACMMAAAjDBAAIwwwACMMYAAjDHAAIwyAACMMoAAjDLAAIxTgACMXIAAjGWAAIxuQACMeAAAjIAAAIyJwACMk4AAjJuAAIykgACMrYAAjK4AAIyuwACMr0AAjK/AAIywQACMsQAAjLHAAIyyQACMssAAjLOAAIy0AACMtIAAjLVAAIy2AACMtkAAjLiAAI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EXgACRGAAAkTbAAJE3QACRN8AAkThAAJE5AACROUAAkTmAAJE5wACROgAAkTqAAJE7AACRO0AAkTuAAJE8AACRPEAAkVsAAJFbgACRXAAAkVyAAJFdQACRXYAAkV3AAJFeAACRXkAAkV7AAJFfQACRX4AAkV/AAJFgQACRYIAAkX9AAJF/wACRgEAAkYDAAJGBgACRgcAAkYIAAJGCQACRgoAAkYMAAJGDgACRg8AAkYQAAJGEgACRhMAAkaOAAJGkAACRpMAAkaVAAJGmAACRpkAAkaaAAJGmwACRpwAAkaeAAJGoAACRqEAAkaiAAJGpAACRqUAAkcgAAJHIgACRyQAAkcmAAJHKQACRyoAAkcrAAJHLAACRy0AAkcvAAJHMQACRzIAAkczAAJHNQACRzYAAkexAAJHswACR7UAAke3AAJHugACR7sAAke8AAJHvQACR74AAkfAAAJHwgACR8MAAkfEAAJHxgACR8cAAkhCAAJIRAACSEYAAkhIAAJISwACSEwAAkhNAAJITgACSE8AAkhRAAJIUwACSFQAAkhVAAJIVwACSFgAAkjrAAJJDgACSS4AAklOAAJJUAACSVIAAklUAAJJVgACSVkAAklaAAJJWwACSV4AAklfAAJJYQACSWIAAklkAAJJZwACSWgAAklpAAJJbAACSW0AAklyAAJJiwACSZQAAkmWAAJJmAACSaEAAkmkAAJJpwACSakAAknyAAJKFgACSj0AAkphAAJKZAACSmYAAkpoAAJKagACSmwAAkpuAAJKbwACSnIAAkqLAAJKrAACSq4AAkqwAAJKsgACSrQAAkq2AAJKuAACSroAAkq8AAJK3QACSuAAAkrjAAJK5gACSukAAkrsAAJK7wACSvIAAkr1AAJK9wACS3IAAkt0AAJLdgACS3gAAkt7AAJLfAACS30AAkt+AAJLfwACS4EAAkuDAAJLhAACS4UAAkuHAAJLiAACTAMAAkwFAAJMBwACTAkAAkwMAAJMDQACTA4AAkwPAAJMEAACTBIAAkwUAAJMFQACTBYAAkwYAAJMGQACTJQAAkyWAAJMmQACTJsAAkyeAAJMnwACTKAAAkyhAAJMogACTKQAAkymAAJMpwACTKgAAkyqAAJMqwACTMQAAkzFAAJMxgACTMgAAk1DAAJNRQACTUcAAk1JAAJNTAACTU0AAk1OAAJNTwACTVAAAk1SAAJNVAACTVUAAk1WAAJNWAACTVkAAk3UAAJN1gACTdgAAk3aAAJN3QACTd4AAk3fAAJN4AACTeEAAk3jAAJN5QACTeYAAk3nAAJN6QACTeoAAk5lAAJOZwACTmkAAk5rAAJObgACTm8AAk5wAAJOcQACTnIAAk50AAJOdgACTncAAk54AAJOegACTnsAAk72AAJO+AACTvoAAk78AAJO/wACTwAAAk8BAAJPAgACTwMAAk8FAAJPBwACTwgAAk8JAAJPCwACTwwAAk+HAAJPiQACT4sAAk+NAAJPkAACT5EAAk+SAAJPkwACT5QAAk+WAAJPmAACT5kAAk+aAAJPnAACT50AAk/mAAJQCgACUDEAAlBVAAJQWAACUFoAAlBcAAJQXgACUGAAAlBiAAJQYwACUGYAAlB/AAJQnAACUJ4AAlCgAAJQogACUKQAAlCmAAJQqAACUKoAAlDHAAJQygACUM0AAlDQAAJQ0wACUNYAAlDZAAJQ3AACUN4AAlFZAAJRWwACUV0AAlFfAAJRYgACUWMAAlFkAAJRZQACUWYAAlFoAAJRagACUWsAAlFsAAJRbgACUW8AAlHqAAJR7AACUe4AAlHwAAJR8wACUfQAAlH1AAJR9gACUfcAAlH5AAJR+wACUfwAAlH9AAJR/wACUgAAAlJ7AAJSfQACUn8AAlKBAAJShAACUoUAAlKGAAJShwACUogAAlKKAAJSjAACUo0AAlKOAAJSkAACUpEAAlMMAAJTDgACUxEAAlMTAAJTFgACUxcAAlMYAAJTGQACUxoAAlMcAAJTHgACUx8AAlMgAAJTIgACUyMAAlOeAAJToAACU6IAAlOkAAJTpwACU6gAAlOpAAJTqgACU6sAAlOtAAJTrwACU7AAAlOxAAJTswACU7QAAlQvAAJUMQACVDMAAlQ1AAJUOAACVDkAAlQ6AAJUOwACVDwAAlQ+AAJUQAACVEEAAlRCAAJURAACVEUAAlTAAAJUwgACVMQAAlTGAAJUyQACVMoAAlTLAAJUzAACVM0AAlTPAAJU0QACVNIAAlTTAAJU1QACVNYAAlVpAAJVjAACVawAAlXMAAJVzgACVdAAAlXSAAJV1AACVdcAAlXYAAJV2QACVdwAAlXdAAJV3wACVeAAAlXiAAJV5QACVeYAAlXnAAJV6gACVesAAlXwAAJWCQACVhIAAlYUAAJWFgACVh8AAlYiAAJWJQACVicAAlZwAAJWlAACVrsAAlbfAAJW4gACVuQAAlbmAAJW6AACVuoAAlbsAAJW7QACVvAAAlcJAAJXKgACVywAAlcuAAJXMAACVzIAAlc0AAJXNgACVzgAAlc6AAJXWwACV14AAldhAAJXZAACV2cAAldqAAJXbQACV3AAAldzAAJXdQACV/AAAlfyAAJX9AACV/YAAlf5AAJX+gACV/sAAlf8AAJX/QACV/8AAlgBAAJYAgACWAMAAlgFAAJYBgACWIEAAliDAAJYhQACWIcAAliKAAJYiwACWIwAAliNAAJYjgACWJAAAliSAAJYkwACWJQAAliWAAJYlwACWRIAAlkUAAJZFwACWRkAAlkcAAJZHQACWR4AAlkfAAJZIAACWSIAAlkkAAJZJQACWSYAAlkoAAJZKQACWUIAAllDAAJZRAACWUYAAlnBAAJZwwACWcUAAlnHAAJZygACWcsAAlnMAAJZzQACWc4AAlnQAAJZ0gACWdMAAlnUAAJZ1gACWdcAAlpSAAJaVAACWlYAAlpYAAJaWwACWlwAAlpdAAJaXgACWl8AAlphAAJaYwACWmQAAlplAAJaZwACWmgAAlrjAAJa5QACWucAAlrpAAJa7AACWu0AAlruAAJa7wACWvAAAlryAAJa9AACWvUAAlr2AAJa+AACWvkAAlt0AAJbdgACW3gAAlt6AAJbfQACW34AAlt/AAJbgAACW4EAAluDAAJbhQACW4YAAluHAAJbiQACW4oAAlwFAAJcBwACXAkAAlwLAAJcDgACXA8AAlwQAAJcEQACXBIAAlwUAAJcFgACXBcAAlwYAAJcGgACXBsAAlxkAAJciAACXK8AAlzTAAJc1gACXNgAAlzaAAJc3AACXN4AAlzgAAJc4QACXOQAAlz9AAJdGgACXRwAAl0eAAJdIAACXSIAAl0kAAJdJgACXSgAAl1FAAJdSAACXUsAAl1OAAJdUQACXVQAAl1XAAJdWgACXVwAAl3XAAJd2QACXdsAAl3dAAJd4AACXeEAAl3iAAJd4wACXeQAAl3mAAJd6AACXekAAl3qAAJd7AACXe0AAl5oAAJeagACXmwAAl5uAAJecQACXnIAAl5zAAJedAACXnUAAl53AAJeeQACXnoAAl57AAJefQACXn4AAl75AAJe+wACXv0AAl7/AAJfAgACXwMAAl8EAAJfBQACXwYAAl8IAAJfCgACXwsAAl8MAAJfDgACXw8AAl+KAAJfjAACX44AAl+QAAJfkwACX5QAAl+VAAJflgACX5cAAl+ZAAJfmwACX5wAAl+dAAJfnwACX6AAAmAbAAJgHQACYB8AAmAhAAJgJAACYCUAAmAmAAJgJwACYCgAAmAqAAJgLAACYC0AAmAuAAJgMAACYDEAAmCsAAJgrgACYLAAAmCyAAJgtQACYLYAAmC3AAJguAACYLkAAmC7AAJgvQACYL4AAmC/AAJgwQACYMIAAmE9AAJhPwACYUEAAmFDAAJhRgACYUcAAmFIAAJhSQACYUoAAmFMAAJhTgACYU8AAmFQAAJhUgACYVMAAmHmAAJiCQACYikAAmJJAAJiSwACYk0AAmJPAAJiUQACYlQAAmJVAAJiVgACYlkAAmJaAAJiXAACYl0AAmJgAAJiYwACYmQAAmJlAAJiaAACYmkAAmJuAAJihwACYpAAAmKSAAJilQACYp4AAmKhAAJipAACYqYAAmLvAAJjEwACYzoAAmNeAAJjYQACY2MAAmNlAAJjZwACY2kAAmNrAAJjbAACY28AAmOIAAJjqQACY6sAAmOtAAJjrwACY7EAAmOzAAJjtQACY7cAAmO5AAJj2gACY90AAmPgAAJj4wACY+YAAmPpAAJj7AACY+8AAmPyAAJj9AACZG8AAmRxAAJkcwACZHUAAmR4AAJkeQACZHoAAmR7AAJkfAACZH4AAmSAAAJkgQACZIIAAmSEAAJkhQACZQAAAmUCAAJlBAACZQYAAmUJAAJlCgACZQsAAmUMAAJlDQACZQ8AAmURAAJlEgACZRMAAmUVAAJlFgACZZEAAmWTAAJllgACZZgAAmWbAAJlnAACZZ0AAmWeAAJlnwACZaEAAmWjAAJlpAACZaUAAmWnAAJlqAACZcEAAmXCAAJlwwACZcUAAmZAAAJmQgACZkQAAmZGAAJmSQACZkoAAmZLAAJmTAACZk0AAmZPAAJmUQACZlIAAmZTAAJmVQACZlYAAmbRAAJm0wACZtUAAmbXAAJm2gACZtsAAmbcAAJm3QACZt4AAmbgAAJm4gACZuMAAmbkAAJm5gACZucAAmdiAAJnZAACZ2YAAmdoAAJnawACZ2wAAmdtAAJnbgACZ28AAmdxAAJncwACZ3QAAmd1AAJndwACZ3gAAmfzAAJn9QACZ/cAAmf5AAJn/AACZ/0AAmf+AAJn/wACaAAAAmgCAAJoBAACaAUAAmgGAAJoCAACaAkAAmiEAAJohgACaIgAAmiKAAJojQACaI4AAmiPAAJokAACaJEAAmiTAAJolQACaJYAAmiXAAJomQACaJoAAmjjAAJpBwACaS4AAmlSAAJpVQACaVgAAmlaAAJpXAACaV4AAmlgAAJpYQACaWQAAml9AAJpmgACaZ0AAmmgAAJpowACaaYAAmmpAAJprAACaa8AAmnMAAJpzwACadIAAmnVAAJp2AACadsAAmneAAJp4QACaeMAAmpeAAJqYAACamMAAmplAAJqaAACamkAAmpqAAJqawACamwAAmpuAAJqcQACanIAAmpzAAJqdQACanYAAmrxAAJq8wACavYAAmr4AAJq+wACavwAAmr9AAJq/gACav8AAmsBAAJrBAACawUAAmsGAAJrCAACawkAAmuEAAJrhgACa4kAAmuLAAJrjgACa48AAmuQAAJrkQACa5IAAmuUAAJrlwACa5gAAmuZAAJrmwACa5wAAmwXAAJsGQACbBwAAmweAAJsIQACbCIAAmwjAAJsJAACbCUAAmwnAAJsKgACbCsAAmwsAAJsLgACbC8AAmyyAAJs1gACbPoAAm0dAAJtRAACbWQAAm2LAAJtsgACbdIAAm32AAJuGgACbhwAAm4fAAJuIQACbiMAAm4lAAJuKAACbisAAm4tAAJuLwACbjIAAm40AAJuNgACbjkAAm48AAJuPQACbkIAAm5bAAJuYAACbmIAAm5nAAJuagACbmwAAm61AAJu2QACbwAAAm8kAAJvJwACbykAAm8rAAJvLQACby8AAm8xAAJvMgACbzUAAm9OAAJvcwACb3UAAm93AAJveQACb3sAAm99AAJvfwACb4EAAm+DAAJvhQACb6oAAm+tAAJvsAACb7MAAm+2AAJvuQACb7wAAm+/AAJvwgACb8UAAm/HAAJwQgACcEQAAnBHAAJwSQACcEwAAnBNAAJwTgACcE8AAnBQAAJwUgACcFQAAnBVAAJwVgACcFgAAnBZAAJwagACcGsAAnBtAAJw6AACcOoAAnDsAAJw7gACcPEAAnDyAAJw8wACcPQAAnD1AAJw9wACcPkAAnD6AAJw+wACcP0AAnD+AAJxeQACcXsAAnF+AAJxgAACcYMAAnGEAAJxhQACcYYAAnGHAAJxiQACcYsAAnGMAAJxjQACcY8AAnGQAAJxoQACcaYAAnGpAAJxqwACcbwAAnHNAAJx0AACcdMAAnHWAAJx2QACcdsAAnH3AAJyCQACchwAAnIoAAJyowACcqUAAnKnAAJyqQACcqwAAnKtAAJyrgACcq8AAnKwAAJysgACcrQAAnK1AAJytgACcrgAAnK5AAJzNAACczYAAnM5AAJzOwACcz4AAnM/AAJzQAACc0EAAnNCAAJzRAACc0YAAnNHAAJzSAACc0oAAnNLAAJzXAACc10AAnNfAAJz2gACc9wAAnPeAAJz4AACc+MAAnPkAAJz5QACc+YAAnPnAAJz6QACc+sAAnPsAAJz7QACc+8AAnPwAAJ0awACdG0AAnRwAAJ0cgACdHUAAnR2AAJ0dwACdHgAAnR5AAJ0ewACdH0AAnR+AAJ0fwACdIEAAnSCAAJ0mwACdJwAAnSdAAJ0nwACdRoAAnUcAAJ1HgACdSAAAnUjAAJ1JAACdSUAAnUmAAJ1JwACdSkAAnUrAAJ1LAACdS0AAnUvAAJ1MAACdasAAnWtAAJ1sAACdbIAAnW1AAJ1tgACdbcAAnW4AAJ1uQACdbsAAnW9AAJ1vgACdb8AAnXBAAJ1wgACddkAAnXyAAJ2HwACdiIAAnYlAAJ2KAACdisAAnYuAAJ2MQACdjQAAnY3AAJ2OgACdj0AAnZAAAJ2bQACdnAAAnZzAAJ2dgACdnkAAnZ8AAJ2fwACdoIAAnaFAAJ2iAACdosAAnaOAAJ2kAACdqIAAna6AAJ2zgACdvkAAncFAAJ3HwACdzUAAnc/AAJ3SgACd2YAAnd5AAJ4DAACeC8AAnhPAAJ4bwACeHEAAnhzAAJ4dQACeHcAAnh6AAJ4ewACeHwAAnh/AAJ4gAACeIIAAniDAAJ4hQACeIgAAniJAAJ4igACeI0AAniOAAJ4kwACeKwAAni1AAJ4twACeLkAAnjCAAJ4xQACeMgAAnjKAAJ5EwACeTcAAnleAAJ5ggACeYUAAnmHAAJ5iQACeYsAAnmNAAJ5jwACeZAAAnmTAAJ5rAACec0AAnnPAAJ50QACedMAAnnVAAJ51wACedkAAnnbAAJ53QACef4AAnoBAAJ6BAACegcAAnoKAAJ6DQACehAAAnoTAAJ6FgACehgAAnqTAAJ6lQACepcAAnqZAAJ6nAACep0AAnqeAAJ6nwACeqAAAnqiAAJ6pAACeqUAAnqmAAJ6qAACeqkAAnskAAJ7JgACeygAAnsqAAJ7LQACey4AAnsvAAJ7MAACezEAAnszAAJ7NQACezYAAns3AAJ7OQACezoAAnu1AAJ7twACe7oAAnu8AAJ7vwACe8AAAnvBAAJ7wgACe8MAAnvFAAJ7xwACe8gAAnvJAAJ7ywACe8wAAnvlAAJ75gACe+cAAnvpAAJ8ZAACfGYAAnxoAAJ8agACfG0AAnxuAAJ8bwACfHAAAnxxAAJ8cwACfHUAAnx2AAJ8dwACfHkAAnx6AAJ89QACfPcAAnz5AAJ8+wACfP4AAnz/AAJ9AAACfQEAAn0CAAJ9BAACfQYAAn0HAAJ9CAACfQoAAn0LAAJ9hgACfYgAAn2KAAJ9jAACfY8AAn2QAAJ9kQACfZIAAn2TAAJ9lQACfZcAAn2YAAJ9mQACfZsAAn2cAAJ+FwACfhkAAn4bAAJ+HQACfiAAAn4hAAJ+IgACfiMAAn4kAAJ+JgACfigAAn4pAAJ+KgACfiwAAn4tAAJ+qAACfqoAAn6sAAJ+rgACfrEAAn6yAAJ+swACfrQAAn61AAJ+twACfrkAAn66AAJ+uwACfr0AAn6+AAJ/BwACfysAAn9SAAJ/dgACf3kAAn97AAJ/fQACf38AAn+BAAJ/gwACf4QAAn+HAAJ/oAACf70AAn+/AAJ/wQACf8MAAn/FAAJ/xwACf8kAAn/LAAJ/6AACf+sAAn/uAAJ/8QACf/QAAn/3AAJ/+gACf/0AAn//AAKAegACgHwAAoB+AAKAgAACgIMAAoCEAAKAhQACgIYAAoCHAAKAiQACgIsAAoCMAAKAjQACgI8AAoCQAAKBCwACgQ0AAoEPAAKBEQACgRQAAoEVAAKBFgACgRcAAoEYAAKBGgACgRwAAoEdAAKBHgACgSAAAoEhAAKBnAACgZ4AAoGgAAKBogACgaUAAoGmAAKBpwACgagAAoGpAAKBqwACga0AAoGuAAKBrwACgbEAAoGyAAKCLQACgi8AAoIyAAKCNAACgjcAAoI4AAKCOQACgjoAAoI7AAKCPQACgj8AAoJAAAKCQQACgkMAAoJEAAKCvwACgsEAAoLDAAKCxQACgsgAAoLJAAKCygACgssAAoLMAAKCzgACgtAAAoLRAAKC0gACgtQAAoLVAAKDUAACg1IAAoNUAAKDVgACg1kAAoNaAAKDWwACg1wAAoNdAAKDXwACg2EAAoNiAAKDYwACg2UAAoNmAAKD4QACg+MAAoPlAAKD5wACg+oAAoPrAAKD7AACg+0AAoPuAAKD8AACg/IAAoPzAAKD9AACg/YAAoP3AAKEigAChK0AAoTNAAKE7QAChO8AAoTxAAKE8wAChPUAAoT4AAKE+QAChPoAAoT9AAKE/gAChQAAAoUBAAKFAwAChQYAAoUHAAKFCAAChQsAAoUMAAKFEQAChSoAAoUzAAKFNQAChTcAAoVAAAKFQwAChUYAAoVIAAKFkQAChbUAAoXcAAKGAAAChgMAAoYFAAKGBwAChgkAAoYLAAKGDQAChg4AAoYRAAKGKgAChksAAoZNAAKGTwAChlEAAoZTAAKGVQAChlcAAoZZAAKGWwAChnwAAoZ/AAKGggAChoUAAoaIAAKGiwACho4AAoaRAAKGlAAChpYAAocRAAKHEwAChxUAAocXAAKHGgAChxsAAoccAAKHHQAChx4AAocgAAKHIgAChyMAAockAAKHJgAChycAAoeiAAKHpAACh6YAAoeoAAKHqwACh6wAAoetAAKHrgACh68AAoexAAKHswACh7QAAoe1AAKHtwACh7gAAogzAAKINQACiDgAAog6AAKIPQACiD4AAog/AAKIQAACiEEAAohDAAKIRQACiEYAAohHAAKISQACiEoAAohjAAKIZAACiGUAAohnAAKI4gACiOQAAojmAAKI6AACiOsAAojsAAKI7QACiO4AAojvAAKI8QACiPMAAoj0AAKI9QACiPcAAoj4AAKJcwACiXUAAol3AAKJeQACiXwAAol9AAKJfgACiX8AAomAAAKJggACiYQAAomFAAKJhgACiYgAAomJAAKKBAACigYAAooIAAKKCgACig0AAooOAAKKDwACihAAAooRAAKKEwACihUAAooWAAKKFwACihkAAooaAAKKlQACipcAAoqZAAKKmwACip4AAoqfAAKKoAACiqEAAoqiAAKKpAACiqYAAoqnAAKKqAACiqoAAoqrAAKLJgACiygAAosqAAKLLAACiy8AAoswAAKLMQACizIAAoszAAKLNQACizcAAos4AAKLOQACizsAAos8AAKLhQACi6kAAovQAAKL9AACi/cAAov5AAKL+wACi/0AAov/AAKMAQACjAIAAowFAAKMHgACjDsAAow9AAKMPwACjEEAAoxDAAKMRQACjEcAAoxJAAKMZgACjGkAAoxsAAKMbwACjHIAAox1AAKMeAACjHsAAox9AAKM+AACjPoAAoz8AAKM/gACjQEAAo0CAAKNAwACjQQAAo0FAAKNBwACjQkAAo0KAAKNCwACjQ0AAo0OAAKNiQACjYsAAo2NAAKNjwACjZIAAo2TAAKNlAACjZUAAo2WAAKNmAACjZoAAo2bAAKNnAACjZ4AAo2fAAKOGgACjhwAAo4eAAKOIAACjiMAAo4kAAKOJQACjiYAAo4nAAKOKQACjisAAo4sAAKOLQACji8AAo4wAAKOqwACjq0AAo6vAAKOsQACjrQAAo61AAKOtgACjrcAAo64AAKOugACjrwAAo69AAKOvgACjsAAAo7BAAKPPAACjz4AAo9AAAKPQgACj0UAAo9GAAKPRwACj0gAAo9JAAKPSwACj00AAo9OAAKPTwACj1EAAo9SAAKPzQACj88AAo/RAAKP0wACj9YAAo/XAAKP2AACj9kAAo/aAAKP3AACj94AAo/fAAKP4AACj+IAAo/jAAKQXgACkGAAApBiAAKQZAACkGcAApBoAAKQaQACkGoAApBrAAKQbQACkG8AApBwAAKQcQACkHMAApB0AAKRBwACkSoAApFKAAKRagACkWwAApFuAAKRcAACkXIAApF1AAKRdgACkXcAApF6AAKRewACkX0AApF+AAKRgAACkYMAApGEAAKRhQACkYgAApGJAAKRkgACkasAApG0AAKRtgACkbgAApHBAAKRxAACkccAApHJAAKSEgACkjYAApJdAAKSgQACkoQAApKGAAKSiAACkooAApKMAAKSjgACko8AApKSAAKSqwACkswAApLOAAKS0AACktIAApLUAAKS1gACktgAApLaAAKS3AACkv0AApMAAAKTAwACkwYAApMJAAKTDAACkw8AApMSAAKTFQACkxcAApOSAAKTlAACk5YAApOYAAKTmwACk5wAApOdAAKTngACk58AApOhAAKTowACk6QAApOlAAKTpwACk6gAApQjAAKUJQAClCcAApQpAAKULAAClC0AApQuAAKULwAClDAAApQyAAKUNAAClDUAApQ2AAKUOAAClDkAApS0AAKUtgAClLkAApS7AAKUvgAClL8AApTAAAKUwQAClMIAApTEAAKUxgAClMcAApTIAAKUygAClMsAApTkAAKU5QAClOYAApToAAKVYwAClWUAApVnAAKVaQAClWwAApVtAAKVbgAClW8AApVwAAKVcgAClXQAApV1AAKVdgAClXgAApV5AAKV9AAClfYAApX4AAKV+gAClf0AApX+AAKV/wAClgAAApYBAAKWAwAClgUAApYGAAKWBwAClgkAApYKAAKWhQAClocAApaJAAKWiwAClo4AApaPAAKWkAAClpEAApaSAAKWlAAClpYAApaXAAKWmAAClpoAApabAAKXFgAClxgAApcaAAKXHAAClx8AApcgAAKXIQAClyIAApcjAAKXJQAClycAApcoAAKXKQAClysAApcsAAKXpwACl6kAAperAAKXrQACl7AAApexAAKXsgACl7MAApe0AAKXtgACl7gAApe5AAKXugACl7wAApe9AAKYBgACmCoAAphRAAKYdQACmHgAAph6AAKYfAACmH4AApiAAAKYggACmIMAApiGAAKYnwACmLwAApi+AAKYwAACmMIAApjEAAKYxgACmMgAApjKAAKY5wACmOoAApjtAAKY8AACmPMAApj2AAKY+QACmPwAApj+AAKZeQACmXsAApl9AAKZfwACmYIAApmDAAKZhAACmYUAApmGAAKZiAACmYoAApmLAAKZjAACmY4AApmPAAKaCgACmgwAApoOAAKaEAACmhMAApoUAAKaFQACmhYAApoXAAKaGQACmhsAApocAAKaHQACmh8AApogAAKamwACmp0AApqfAAKaoQACmqQAApqlAAKapgACmqcAApqoAAKaqgACmqwAApqtAAKargACmrAAApqxAAKbLAACmy4AApsxAAKbMwACmzYAAps3AAKbOAACmzkAAps6AAKbPAACmz4AAps/AAKbQAACm0IAAptDAAKbRgACm8EAApvDAAKbxQACm8cAApvKAAKbywACm8wAApvNAAKbzgACm9AAApvSAAKb0wACm9QAApvWAAKb1wACnFIAApxUAAKcVgACnFgAApxbAAKcXAACnF0AApxeAAKcXwACnGEAApxjAAKcZAACnGUAApxnAAKcaAACnOMAApzlAAKc5wACnOkAApzsAAKc7QACnO4AApzvAAKc8AACnPIAApz0AAKc9QACnPYAApz4AAKc+QACnYwAAp2vAAKdzwACne8AAp3xAAKd8wACnfUAAp33AAKd+gACnfsAAp38AAKd/wACngAAAp4CAAKeAwACngUAAp4IAAKeCQACngoAAp4NAAKeDgACnhMAAp4sAAKeNQACnjcAAp45AAKeQgACnkUAAp5IAAKeSgACnpMAAp63AAKe3gACnwIAAp8FAAKfBwACnwkAAp8LAAKfDQACnw8AAp8QAAKfEwACnywAAp9NAAKfTwACn1EAAp9TAAKfVQACn1cAAp9ZAAKfWwACn10AAp9+AAKfgQACn4QAAp+HAAKfigACn40AAp+QAAKfkwACn5YAAp+YAAKgEwACoBUAAqAXAAKgGQACoBwAAqAdAAKgHgACoB8AAqAgAAKgIgACoCQAAqAlAAKgJgACoCgAAqApAAKgpAACoKYAAqCoAAKgqgACoK0AAqCuAAKgrwACoLAAAqCxAAKgswACoLUAAqC2AAKgtwACoLkAAqC6AAKhNQACoTcAAqE6AAKhPAACoT8AAqFAAAKhQQACoUIAAqFDAAKhRQACoUcAAqFIAAKhSQACoUsAAqFMAAKhZQACoWYAAqFnAAKhaQACoeQAAqHmAAKh6AACoeoAAqHtAAKh7gACoe8AAqHwAAKh8QACofMAAqH1AAKh9gACofcAAqH5AAKh+gAConUAAqJ3AAKieQAConsAAqJ+AAKifwACooAAAqKBAAKiggACooQAAqKGAAKihwACoogAAqKKAAKiiwACowYAAqMIAAKjCgACowwAAqMPAAKjEAACoxEAAqMSAAKjEwACoxUAAqMXAAKjGAACoxkAAqMbAAKjHAACo5cAAqOZAAKjmwACo50AAqOgAAKjoQACo6IAAqOjAAKjpAACo6YAAqOoAAKjqQACo6oAAqOsAAKjrQACpCgAAqQqAAKkLAACpC4AAqQxAAKkMgACpDMAAqQ0AAKkNQACpDcAAqQ5AAKkOgACpDsAAqQ9AAKkPgACpIcAAqSrAAKk0gACpPYAAqT5AAKk+wACpP0AAqT/AAKlAQACpQMAAqUEAAKlBwACpSAAAqU9AAKlPwACpUEAAqVDAAKlRQACpUcAAqVJAAKlSwACpWgAAqVrAAKlbgACpXEAAqV0AAKldwACpXoAAqV9AAKlfwACpfoAAqX8AAKl/wACpgEAAqYEAAKmBQACpgYAAqYHAAKmCAACpgoAAqYMAAKmDQACpg4AAqYQAAKmEQACpowAAqaOAAKmkAACppIAAqaVAAKmlgACppcAAqaYAAKmmQACppsAAqadAAKmngACpp8AAqahAAKmogACpx0AAqcfAAKnIQACpyMAAqcmAAKnJwACpygAAqcpAAKnKgACpywAAqcuAAKnLwACpzAAAqcyAAKnMwACp64AAqewAAKnswACp7UAAqe4AAKnuQACp7oAAqe7AAKnvAACp74AAqfAAAKnwQACp8IAAqfEAAKnxQACqEAAAqhCAAKoRAACqEYAAqhJAAKoSgACqEsAAqhMAAKoTQACqE8AAqhRAAKoUgACqFMAAqhVAAKoVgACqNEAAqjTAAKo1QACqNcAAqjaAAKo2wACqNwAAqjdAAKo3gACqOAAAqjiAAKo4wACqOQAAqjmAAKo5wACqWIAAqlkAAKpZgACqWgAAqlrAAKpbAACqW0AAqluAAKpbwACqXEAAqlzAAKpdAACqXUAAql3AAKpeAACqgsAAqouAAKqTgACqm4AAqpwAAKqcgACqnQAAqp2AAKqeQACqnoAAqp7AAKqfgACqn8AAqqBAAKqggACqoQAAqqHAAKqiAACqokAAqqMAAKqjQACqpIAAqqrAAKqtAACqrYAAqq4AAKqwQACqsQAAqrHAAKqyQACqxIAAqs2AAKrXQACq4EAAquEAAKrhgACq4gAAquKAAKrjAACq44AAquPAAKrkgACq6sAAqvMAAKrzgACq9AAAqvSAAKr1AACq9YAAqvYAAKr2gACq9wAAqv9AAKsAAACrAMAAqwGAAKsCQACrAwAAqwPAAKsEgACrBUAAqwXAAKskgACrJQAAqyWAAKsmAACrJsAAqycAAKsnQACrJ4AAqyfAAKsoQACrKMAAqykAAKspQACrKcAAqyoAAKtIwACrSUAAq0nAAKtKQACrSwAAq0tAAKtLgACrS8AAq0wAAKtMgACrTQAAq01AAKtNgACrTgAAq05AAKttAACrbYAAq25AAKtuwACrb4AAq2/AAKtwAACrcEAAq3CAAKtxAACrcYAAq3HAAKtyAACrcoAAq3LAAKt5AACreUAAq3mAAKt6AACrmMAAq5lAAKuZwACrmkAAq5sAAKubQACrm4AAq5vAAKucAACrnIAAq50AAKudQACrnYAAq54AAKueQACrvQAAq72AAKu+AACrvoAAq79AAKu/gACrv8AAq8AAAKvAQACrwMAAq8FAAKvBgACrwcAAq8JAAKvCgACr4UAAq+HAAKviQACr4sAAq+OAAKvjwACr5AAAq+RAAKvkgACr5QAAq+WAAKvlwACr5gAAq+aAAKvmwACsBYAArAYAAKwGgACsBwAArAfAAKwIAACsCEAArAiAAKwIwACsCUAArAnAAKwKAACsCkAArArAAKwLAACsKcAArCpAAKwqwACsK0AArCwAAKwsQACsLIAArCzAAKwtAACsLYAArC4AAKwuQACsLoAArC8AAKwvQACsQYAArEqAAKxUQACsXUAArF4AAKxegACsXwAArF+AAKxgAACsYIAArGDAAKxhgACsZ8AArG8AAKxvgACscAAArHCAAKxxAACscYAArHIAAKxygACsecAArHqAAKx7QACsfAAArHzAAKx9gACsfkAArH8AAKx/gACsnkAArJ7AAKyfQACsn8AArKCAAKygwACsoQAArKFAAKyhgACsogAArKKAAKyiwACsowAArKOAAKyjwACswoAArMMAAKzDgACsxAAArMTAAKzFAACsxUAArMWAAKzFwACsxkAArMbAAKzHAACsx0AArMfAAKzIAACs5sAArOdAAKznwACs6EAArOkAAKzpQACs6YAArOnAAKzqAACs6oAArOsAAKzrQACs64AArOwAAKzsQACtCwAArQuAAK0MAACtDIAArQ1AAK0NgACtDcAArQ4AAK0OQACtDsAArQ9AAK0PgACtD8AArRBAAK0QgACtL0AArS/AAK0wQACtMMAArTGAAK0xwACtMgAArTJAAK0ygACtMwAArTOAAK0zwACtNAAArTSAAK00wACtU4AArVQAAK1UgACtVQAArVXAAK1WAACtVkAArVaAAK1WwACtV0AArVfAAK1YAACtWEAArVjAAK1ZAACtd8AArXhAAK14wACteUAArXoAAK16QACteoAArXrAAK17AACte4AArXwAAK18QACtfIAArX0AAK19QACtogAArarAAK2ywACtusAArbtAAK27wACtvEAArbzAAK29gACtvcAArb4AAK2+wACtvwAArb+AAK2/wACtwEAArcEAAK3BQACtwYAArcJAAK3CgACtw8AArcoAAK3MQACtzMAArc1AAK3PgACt0EAArdEAAK3RgACt48AArezAAK32gACt/4AArgBAAK4AwACuAUAArgHAAK4CQACuAsAArgMAAK4DwACuCgAArhJAAK4SwACuE0AArhPAAK4UQACuFMAArhVAAK4VwACuFkAArh6AAK4fQACuIAAAriDAAK4hgACuIkAAriMAAK4jwACuJIAAriUAAK5DwACuREAArkTAAK5FQACuRgAArkZAAK5GgACuRsAArkcAAK5HgACuSAAArkhAAK5IgACuSQAArklAAK5oAACuaIAArmkAAK5pgACuakAArmqAAK5qwACuawAArmtAAK5rwACubEAArmyAAK5swACubUAArm2AAK6MQACujMAAro2AAK6OAACujsAAro8AAK6PQACuj4AAro/AAK6QQACukMAArpEAAK6RQACukcAArpIAAK6YQACumIAArpjAAK6ZQACuuAAArriAAK65AACuuYAArrpAAK66gACuusAArrsAAK67QACuu8AArrxAAK68gACuvMAArr1AAK69gACu3EAArtzAAK7dQACu3cAArt6AAK7ewACu3wAArt9AAK7fgACu4AAAruCAAK7gwACu4QAAruGAAK7hwACvAIAArwEAAK8BgACvAgAArwLAAK8DAACvA0AArwOAAK8DwACvBEAArwTAAK8FAACvBUAArwXAAK8GAACvJMAAryVAAK8lwACvJkAArycAAK8nQACvJ4AAryfAAK8oAACvKIAArykAAK8pQACvKYAAryoAAK8qQACvSQAAr0mAAK9KAACvSoAAr0tAAK9LgACvS8AAr0wAAK9MQACvTMAAr01AAK9NgACvTcAAr05AAK9OgACvYMAAr2nAAK9zgACvfIAAr31AAK99wACvfkAAr37AAK9/QACvf8AAr4AAAK+AwACvhwAAr45AAK+OwACvj0AAr4/AAK+QQACvkMAAr5FAAK+RwACvmQAAr5nAAK+agACvm0AAr5wAAK+cwACvnYAAr55AAK+ewACvvYAAr74AAK++gACvvwAAr7/AAK/AAACvwEAAr8CAAK/AwACvwUAAr8HAAK/CAACvwkAAr8LAAK/DAACv4cAAr+JAAK/iwACv40AAr+QAAK/kQACv5IAAr+TAAK/lAACv5YAAr+YAAK/mQACv5oAAr+cAAK/nQACwBgAAsAaAALAHAACwB4AAsAhAALAIgACwCMAAsAkAALAJQACwCcAAsApAALAKgACwCsAAsAtAALALgACwKkAAsCrAALArQACwK8AAsCyAALAswACwLQAAsC1AALAtgACwLgAAsC6AALAuwACwLwAAsC+AALAvwACwToAAsE8AALBPgACwUAAAsFDAALBRAACwUUAAsFGAALBRwACwUkAAsFLAALBTAACwU0AAsFPAALBUAACwcsAAsHNAALBzwACwdEAAsHUAALB1QACwdYAAsHXAALB2AACwdoAAsHcAALB3QACwd4AAsHgAALB4QACwlwAAsJeAALCYAACwmIAAsJlAALCZgACwmcAAsJoAALCaQACwmsAAsJtAALCbgACwm8AAsJxAALCcgACwwUAAsMoAALDSAACw2gAAsNqAALDbAACw24AAsNwAALDcwACw3QAAsN1AALDeAACw3kAAsN7AALDfAACw34AAsOBAALDggACw4MAAsOGAALDhwACw4wAAsOlAALDrgACw7AAAsOyAALDuwACw74AAsPBAALDwwACxAwAAsQwAALEVwACxHsAAsR+AALEgAACxIIAAsSEAALEhgACxIgAAsSJAALEjAACxKUAAsTGAALEyAACxMoAAsTMAALEzgACxNAAAsTSAALE1AACxNYAAsT3AALE+gACxP0AAsUAAALFAwACxQYAAsUJAALFDAACxQ8AAsURAALFjAACxY4AAsWQAALFkgACxZUAAsWWAALFlwACxZgAAsWZAALFmwACxZ0AAsWeAALFnwACxaEAAsWiAALGHQACxh8AAsYhAALGIwACxiYAAsYnAALGKAACxikAAsYqAALGLAACxi4AAsYvAALGMAACxjIAAsYzAALGrgACxrAAAsazAALGtQACxrgAAsa5AALGugACxrsAAsa8AALGvgACxsAAAsbBAALGwgACxsQAAsbFAALG3gACxt8AAsbgAALG4gACx10AAsdfAALHYQACx2MAAsdmAALHZwACx2gAAsdpAALHagACx2wAAsduAALHbwACx3AAAsdyAALHcwACx+4AAsfwAALH8gACx/QAAsf3AALH+AACx/kAAsf6AALH+wACx/0AAsf/AALIAAACyAEAAsgDAALIBAACyH8AAsiBAALIgwACyIUAAsiIAALIiQACyIoAAsiLAALIjAACyI4AAsiQAALIkQACyJIAAsiUAALIlQACyRAAAskSAALJFAACyRYAAskZAALJGgACyRsAAskcAALJHQACyR8AAskhAALJIgACySMAAsklAALJJgACyaEAAsmjAALJpQACyacAAsmqAALJqwACyawAAsmtAALJrgACybAAAsmyAALJswACybQAAsm2AALJtwACygAAAsokAALKSwACym8AAspyAALKdAACynYAAsp4AALKegACynwAAsp9AALKgAACypkAAsq2AALKuAACyroAAsq8AALKvgACysAAAsrCAALKxAACyuEAAsrkAALK5wACyuoAAsrtAALK8AACyvMAAsr2AALK+AACy3MAAst1AALLdwACy3kAAst8AALLfQACy34AAst/AALLgAACy4IAAsuEAALLhQACy4YAAsuIAALLiQACzAQAAswGAALMCAACzAoAAswNAALMDgACzA8AAswQAALMEQACzBMAAswVAALMFgACzBcAAswZAALMGgACzJUAAsyXAALMmQACzJsAAsyeAALMnwACzKAAAsyhAALMogACzKQAAsymAALMpwACzKgAAsyqAALMqwACzSYAAs0oAALNKwACzS0AAs0wAALNMQACzTIAAs0zAALNNAACzTYAAs04AALNOQACzToAAs08AALNPQACzbgAAs26AALNvAACzb4AAs3BAALNwgACzcMAAs3EAALNxQACzccAAs3JAALNygACzcsAAs3NAALNzgACzkkAAs5LAALOTQACzk8AAs5SAALOUwACzlQAAs5VAALOVgACzlgAAs5aAALOWwACzlwAAs5eAALOXwACztoAAs7cAALO3gACzuAAAs7jAALO5AACzuUAAs7mAALO5wACzukAAs7rAALO7AACzu0AAs7vAALO8AACz4MAAs+mAALPxgACz+YAAs/oAALP6gACz+wAAs/uAALP8QACz/IAAs/zAALP9gACz/cAAs/5AALP+gACz/wAAs//AALQAAAC0AEAAtAEAALQBQAC0AoAAtAjAALQLAAC0C4AAtAwAALQOQAC0DwAAtA/AALQQQAC0IoAAtCuAALQ1QAC0PkAAtD8AALQ/gAC0QAAAtECAALRBAAC0QYAAtEHAALRCgAC0SMAAtFEAALRRgAC0UgAAtFKAALRTAAC0U4AAtFQAALRUgAC0VQAAtF1AALReAAC0XsAAtF+AALRgQAC0YQAAtGHAALRigAC0Y0AAtGPAALSCgAC0gwAAtIOAALSEAAC0hMAAtIUAALSFQAC0hYAAtIXAALSGQAC0hsAAtIcAALSHQAC0h8AAtIgAALSmwAC0p0AAtKfAALSoQAC0qQAAtKlAALSpgAC0qcAAtKoAALSqgAC0qwAAtKtAALSrgAC0rAAAtKxAALTLAAC0y4AAtMxAALTMwAC0zYAAtM3AALTOAAC0zkAAtM6AALTPAAC0z4AAtM/AALTQAAC00IAAtNDAALTXAAC010AAtNeAALTYAAC09sAAtPdAALT3wAC0+EAAtPkAALT5QAC0+YAAtPnAALT6AAC0+oAAtPsAALT7QAC0+4AAtPwAALT8QAC1GwAAtRuAALUcAAC1HIAAtR1AALUdgAC1HcAAtR4AALUeQAC1HsAAtR9AALUfgAC1H8AAtSBAALUggAC1P0AAtT/AALVAQAC1QMAAtUGAALVBwAC1QgAAtUJAALVCgAC1QwAAtUOAALVDwAC1RAAAtUSAALVEwAC1Y4AAtWQAALVkgAC1ZQAAtWXAALVmAAC1ZkAAtWaAALVmwAC1Z0AAtWfAALVoAAC1aEAAtWjAALVpAAC1h8AAtYhAALWIwAC1iUAAtYoAALWKQAC1ioAAtYrAALWLAAC1i4AAtYwAALWMQAC1jIAAtY0AALWNQAC1n4AAtaiAALWyQAC1u0AAtbwAALW8gAC1vQAAtb2AALW+AAC1voAAtb7AALW/gAC1xcAAtc0AALXNgAC1zgAAtc6AALXPAAC1z4AAtdAAALXQgAC118AAtdiAALXZQAC12gAAtdrAALXbgAC13EAAtd0AALXdgAC1/EAAtfzAALX9QAC1/cAAtf6AALX+wAC1/wAAtf9AALX/gAC2AAAAtgCAALYAwAC2AQAAtgGAALYBwAC2IIAAtiEAALYhgAC2IgAAtiLAALYjAAC2I0AAtiOAALYjwAC2JEAAtiTAALYlAAC2JUAAtiXAALYmAAC2RMAAtkVAALZFwAC2RkAAtkcAALZHQAC2R4AAtkfAALZIAAC2SIAAtkkAALZJQAC2SYAAtkoAALZKQAC2aQAAtmmAALZqQAC2asAAtmuAALZrwAC2bAAAtmxAALZsgAC2bQAAtm2AALZtwAC2bgAAtm6AALZuwAC2jYAAto4AALaOgAC2jwAAto/AALaQAAC2kEAAtpCAALaQwAC2kUAAtpHAALaSAAC2kkAAtpLAALaTAAC2scAAtrJAALaywAC2s0AAtrQAALa0QAC2tIAAtrTAALa1AAC2tYAAtrYAALa2QAC2toAAtrcAALa3QAC21gAAttaAALbXAAC214AAtthAALbYgAC22MAAttkAALbZQAC22cAAttpAALbagAC22sAAtttAALbbgAC3AEAAtwkAALcRAAC3GQAAtxmAALcaAAC3GoAAtxsAALcbwAC3HAAAtxxAALcdAAC3HUAAtx3AALceAAC3HsAAtx+AALcfwAC3IAAAtyDAALchAAC3IkAAtyiAALcqwAC3K0AAtywAALcuQAC3LwAAty/AALcwQAC3QoAAt0uAALdVQAC3XkAAt18AALdfgAC3YAAAt2CAALdhAAC3YYAAt2HAALdigAC3aMAAt3EAALdxgAC3cgAAt3KAALdzAAC3c4AAt3QAALd0gAC3dQAAt31AALd+AAC3fsAAt3+AALeAQAC3gQAAt4HAALeCgAC3g0AAt4PAALeigAC3owAAt6OAALekAAC3pMAAt6UAALelQAC3pYAAt6XAALemQAC3psAAt6cAALenQAC3p8AAt6gAALfGwAC3x0AAt8fAALfIQAC3yQAAt8lAALfJgAC3ycAAt8oAALfKgAC3ywAAt8tAALfLgAC3zAAAt8xAALfrAAC364AAt+xAALfswAC37YAAt+3AALfuAAC37kAAt+6AALfvAAC374AAt+/AALfwAAC38IAAt/DAALf3AAC390AAt/eAALf4AAC4FsAAuBdAALgXwAC4GEAAuBkAALgZQAC4GYAAuBnAALgaAAC4GoAAuBsAALgbQAC4G4AAuBwAALgcQAC4OwAAuDuAALg8AAC4PIAAuD1AALg9gAC4PcAAuD4AALg+QAC4PsAAuD9AALg/gAC4P8AAuEBAALhAgAC4X0AAuF/AALhgQAC4YMAAuGGAALhhwAC4YgAAuGJAALhigAC4YwAAuGOAALhjwAC4ZAAAuGSAALhkwAC4g4AAuIQAALiEgAC4hQAAuIXAALiGAAC4hkAAuIaAALiGwAC4h0AAuIfAALiIAAC4iEAAuIjAALiJAAC4p8AAuKhAALiowAC4qUAAuKoAALiqQAC4qoAAuKrAALirAAC4q4AAuKwAALisQAC4rIAAuK0AALitQAC4v4AAuMiAALjSQAC420AAuNwAALjcwAC43UAAuN3AALjeQAC43sAAuN8AALjfwAC45gAAuO1AALjuAAC47sAAuO+AALjwQAC48QAAuPHAALjygAC4+cAAuPqAALj7QAC4/AAAuPzAALj9gAC4/kAAuP8AALj/gAC5HkAAuR7AALkfgAC5IAAAuSDAALkhAAC5IUAAuSGAALkhwAC5IkAAuSMAALkjQAC5I4AAuSQAALkkQAC5QwAAuUOAALlEQAC5RMAAuUWAALlFwAC5RgAAuUZAALlGgAC5RwAAuUfAALlIAAC5SEAAuUjAALlJAAC5Z8AAuWhAALlpAAC5aYAAuWpAALlqgAC5asAAuWsAALlrQAC5a8AAuWyAALlswAC5bQAAuW2AALltwAC5jIAAuY0AALmNwAC5jkAAuY8AALmPQAC5j4AAuY/AALmQAAC5kIAAuZFAALmRgAC5kcAAuZJAALmSgAC5sUAAubHAALmyQAC5ssAAubOAALmzwAC5tAAAubRAALm0gAC5tQAAubXAALm2AAC5tkAAubbAALm3AAC51cAAudZAALnWwAC510AAudgAALnYQAC52IAAudjAALnZAAC52YAAudpAALnagAC52sAAudtAALnbgAC5+kAAufrAALn7gAC5/AAAufzAALn9AAC5/UAAuf2AALn9wAC5/kAAuf8AALn/QAC5/4AAugAAALoAQAC6JQAAui3AALo1wAC6PcAAuj5AALo+wAC6P0AAuj/AALpAgAC6QMAAukEAALpBwAC6QgAAukKAALpCwAC6Q0AAukQAALpEQAC6RIAAukVAALpFgAC6RsAAuk0AALpPQAC6T8AAulBAALpSgAC6U0AAulQAALpUgAC6ZsAAum/AALp5gAC6goAAuoNAALqDwAC6hEAAuoTAALqFQAC6hcAAuoYAALqGwAC6jQAAupVAALqVwAC6lkAAupbAALqXQAC6l8AAuphAALqYwAC6mUAAuqGAALqiQAC6owAAuqPAALqkgAC6pUAAuqYAALqmwAC6p4AAuqgAALrGwAC6x0AAusfAALrIQAC6yQAAuslAALrJgAC6ycAAusoAALrKgAC6ywAAustAALrLgAC6zAAAusxAALrrAAC664AAuuwAALrsgAC67UAAuu2AALrtwAC67gAAuu5AALruwAC670AAuu+AALrvwAC68EAAuvCAALsPQAC7D8AAuxCAALsRAAC7EcAAuxIAALsSQAC7EoAAuxLAALsTQAC7E8AAuxQAALsUQAC7FMAAuxUAALsbQAC7G4AAuxvAALscQAC7OwAAuzuAALs8AAC7PIAAuz1AALs9gAC7PcAAuz4AALs+QAC7PsAAuz9AALs/gAC7P8AAu0BAALtAgAC7X0AAu1/AALtgQAC7YMAAu2GAALthwAC7YgAAu2JAALtigAC7YwAAu2OAALtjwAC7ZAAAu2SAALtkwAC7g4AAu4QAALuEgAC7hQAAu4XAALuGAAC7hkAAu4aAALuGwAC7h0AAu4fAALuIAAC7iEAAu4jAALuJAAC7p8AAu6hAALuowAC7qUAAu6oAALuqQAC7qoAAu6rAALurAAC7q4AAu6wAALusQAC7rIAAu60AALutQAC7zAAAu8yAALvNAAC7zYAAu85AALvOgAC7zsAAu88AALvPQAC7z8AAu9BAALvQgAC70MAAu9FAALvRgAC748AAu+zAALv2gAC7/4AAvABAALwAwAC8AUAAvAHAALwCQAC8AsAAvAMAALwDwAC8CgAAvBFAALwRwAC8EkAAvBLAALwTQAC8E8AAvBRAALwUwAC8HAAAvBzAALwdgAC8HkAAvB8AALwfwAC8IIAAvCFAALwhwAC8QIAAvEEAALxBgAC8QgAAvELAALxDAAC8Q0AAvEOAALxDwAC8REAAvETAALxFAAC8RUAAvEXAALxGAAC8ZMAAvGVAALxlwAC8ZkAAvGcAALxnQAC8Z4AAvGfAALxoAAC8aIAAvGkAALxpQAC8aYAAvGoAALxqQAC8iQAAvImAALyKAAC8ioAAvItAALyLgAC8i8AAvIwAALyMQAC8jMAAvI1AALyNgAC8jcAAvI5AALyOgAC8rUAAvK3AALyugAC8rwAAvK/AALywAAC8sEAAvLCAALywwAC8sUAAvLHAALyyAAC8skAAvLLAALyzAAC80cAAvNJAALzSwAC800AAvNQAALzUQAC81IAAvNTAALzVAAC81YAAvNYAALzWQAC81oAAvNcAALzXQAC89gAAvPaAALz3AAC894AAvPhAALz4gAC8+MAAvPkAALz5QAC8+cAAvPpAALz6gAC8+sAAvPtAALz7gAC9GkAAvRrAAL0bQAC9G8AAvRyAAL0cwAC9HQAAvR1AAL0dgAC9HgAAvR6AAL0ewAC9HwAAvR+AAL0fwAC9RIAAvU1AAL1VQAC9XUAAvV3AAL1eQAC9XsAAvV9AAL1gAAC9YEAAvWCAAL1hQAC9YYAAvWIAAL1iQAC9YsAAvWOAAL1jwAC9ZAAAvWTAAL1lAAC9ZkAAvWyAAL1uwAC9b0AAvW/AAL1yAAC9csAAvXOAAL10AAC9hkAAvY9AAL2ZAAC9ogAAvaLAAL2jQAC9o8AAvaRAAL2kwAC9pUAAvaWAAL2mQAC9rIAAvbTAAL21QAC9tcAAvbZAAL22wAC9t0AAvbfAAL24QAC9uMAAvcEAAL3BwAC9woAAvcNAAL3EAAC9xMAAvcWAAL3GQAC9xwAAvceAAL3mQAC95sAAvedAAL3nwAC96IAAvejAAL3pAAC96UAAvemAAL3qAAC96oAAverAAL3rAAC964AAvevAAL4KgAC+CwAAvguAAL4MAAC+DMAAvg0AAL4NQAC+DYAAvg3AAL4OQAC+DsAAvg8AAL4PQAC+D8AAvhAAAL4uwAC+L0AAvjAAAL4wgAC+MUAAvjGAAL4xwAC+MgAAvjJAAL4ywAC+M0AAvjOAAL4zwAC+NEAAvjSAAL46wAC+OwAAvjtAAL47wAC+WoAAvlsAAL5bgAC+XAAAvlzAAL5dAAC+XUAAvl2AAL5dwAC+XkAAvl7AAL5fAAC+X0AAvl/AAL5gAAC+fsAAvn9AAL5/wAC+gEAAvoEAAL6BQAC+gYAAvoHAAL6CAAC+goAAvoMAAL6DQAC+g4AAvoQAAL6EQAC+owAAvqOAAL6kAAC+pIAAvqVAAL6lgAC+pcAAvqYAAL6mQAC+psAAvqdAAL6ngAC+p8AAvqhAAL6ogAC+x0AAvsfAAL7IQAC+yMAAvsmAAL7JwAC+ygAAvspAAL7KgAC+ywAAvsuAAL7LwAC+zAAAvsyAAL7MwAC+64AAvuwAAL7sgAC+7QAAvu3AAL7uAAC+7kAAvu6AAL7uwAC+70AAvu/AAL7wAAC+8EAAvvDAAL7xAAC/A0AAvwxAAL8WAAC/HwAAvx/AAL8gQAC/IMAAvyFAAL8hwAC/IkAAvyKAAL8jQAC/KYAAvzDAAL8xQAC/McAAvzJAAL8ywAC/M0AAvzPAAL80QAC/O4AAvzxAAL89AAC/PcAAvz6AAL8/QAC/QAAAv0DAAL9BQAC/YAAAv2CAAL9hAAC/YYAAv2JAAL9igAC/YsAAv2MAAL9jQAC/Y8AAv2RAAL9kgAC/ZMAAv2VAAL9lgAC/hEAAv4TAAL+FQAC/hcAAv4aAAL+GwAC/hwAAv4dAAL+HgAC/iAAAv4iAAL+IwAC/iQAAv4mAAL+JwAC/qIAAv6kAAL+pgAC/qgAAv6rAAL+rAAC/q0AAv6uAAL+rwAC/rEAAv6zAAL+tAAC/rUAAv63AAL+uAAC/zMAAv81AAL/NwAC/zkAAv88AAL/PQAC/z4AAv8/AAL/QAAC/0IAAv9EAAL/RQAC/0YAAv9IAAL/SQAC/8QAAv/GAAL/yAAC/8oAAv/NAAL/zgAC/88AAv/QAAL/0QAC/9MAAv/VAAL/1gAC/9cAAv/ZAAL/2gADAFUAAwBXAAMAWQADAFsAAwBeAAMAXwADAGAAAwBhAAMAYgADAGQAAwBmAAMAZwADAGgAAwBqAAMAawADAOYAAwDoAAMA6gADAOwAAwDvAAMA8AADAPEAAwDyAAMA8wADAPUAAwD3AAMA+AADAPkAAwD7AAMA/AADAQ0AAwEOAAMBEAADAYsAAwGNAAMBjwADAZEAAwGUAAMBlQADAZYAAwGXAAMBmAADAZoAAwGdAAMBngADAZ8AAwGhAAMBogADAh0AAwIfAAMCIQADAiMAAwImAAMCJwADAigAAwIpAAMCKgADAiwAAwIvAAMCMAADAjEAAwIzAAMCNAADAq8AAwKxAAMCtAADArYAAwK5AAMCugADArsAAwK8AAMCvQADAr8AAwLCAAMCwwADAsQAAwLGAAMCxwADA1oAAwN9AAMDnQADA70AAwO/AAMDwQADA8MAAwPFAAMDyAADA8kAAwPKAAMDzQADA84AAwPQAAMD0QADA9QAAwPXAAMD2AADA9kAAwPcAAMD3QADA+YAAwP/AAMECAADBAoAAwQNAAMEFgADBBkAAwQcAAMEHgADBGcAAwSLAAMEsgADBNYAAwTZAAME2wADBN0AAwTfAAME4QADBOMAAwTkAAME5wADBQAAAwUhAAMFIwADBSUAAwUnAAMFKQADBSsAAwUtAAMFLwADBTEAAwVSAAMFVQADBVgAAwVbAAMFXgADBWEAAwVkAAMFZwADBWoAAwVsAAMF5wADBekAAwXrAAMF7QADBfAAAwXxAAMF8gADBfMAAwX0AAMF9gADBfgAAwX5AAMF+gADBfwAAwX9AAMGeAADBnoAAwZ8AAMGfgADBoEAAwaCAAMGgwADBoQAAwaFAAMGhwADBokAAwaKAAMGiwADBo0AAwaOAAMHCQADBwsAAwcOAAMHEAADBxMAAwcUAAMHFQADBxYAAwcXAAMHGQADBxsAAwccAAMHHQADBx8AAwcgAAMHOQADBzoAAwc7AAMHPQADB7gAAwe6AAMHvAADB74AAwfBAAMHwgADB8MAAwfEAAMHxQADB8cAAwfJAAMHygADB8sAAwfNAAMHzgADCEkAAwhLAAMITQADCE8AAwhSAAMIUwADCFQAAwhVAAMIVgADCFgAAwhaAAMIWwADCFwAAwheAAMIXwADCNoAAwjcAAMI3gADCOAAAwjjAAMI5AADCOUAAwjmAAMI5wADCOkAAwjrAAMI7AADCO0AAwjvAAMI8AADCWsAAwltAAMJbwADCXEAAwl0AAMJdQADCXYAAwl3AAMJeAADCXoAAwl8AAMJfQADCX4AAwmAAAMJgQADCfwAAwn+AAMKAAADCgIAAwoFAAMKBgADCgcAAwoIAAMKCQADCgsAAwoNAAMKDgADCg8AAwoRAAMKEgADClsAAwp/AAMKpgADCsoAAwrNAAMK0AADCtIAAwrUAAMK1gADCtgAAwrZAAMK3AADCvUAAwsSAAMLFQADCxgAAwsbAAMLHgADCyEAAwskAAMLJwADC0QAAwtHAAMLSgADC00AAwtQAAMLUwADC1YAAwtZAAMLWwADC9YAAwvYAAML2wADC90AAwvgAAML4QADC+IAAwvjAAML5AADC+YAAwvpAAML6gADC+sAAwvtAAML7gADDGkAAwxrAAMMbgADDHAAAwxzAAMMdAADDHUAAwx2AAMMdwADDHkAAwx8AAMMfQADDH4AAwyAAAMMgQADDPwAAwz+AAMNAQADDQMAAw0GAAMNBwADDQgAAw0JAAMNCgADDQwAAw0PAAMNEAADDREAAw0TAAMNFAADDY8AAw2RAAMNlAADDZYAAw2ZAAMNmgADDZsAAw2cAAMNnQADDZ8AAw2iAAMNowADDaQAAw2mAAMNpwADDiIAAw4kAAMOJgADDigAAw4rAAMOLAADDi0AAw4uAAMOLwADDjEAAw40AAMONQADDjYAAw44AAMOOQADDrQAAw62AAMOuAADDroAAw69AAMOvgADDr8AAw7AAAMOwQADDsMAAw7GAAMOxwADDsgAAw7KAAM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7ygADO8wAAzvPAAM70AADO9EAAzvSAAM70wADO9UAAzvYAAM72QADO9oAAzvcAAM73QADPFgAAzxaAAM8XAADPF4AAzxhAAM8YgADPGMAAzxkAAM8ZQADPGcAAzxqAAM8awADPGwAAzxuAAM8bwADPOoAAzzsAAM87wADPPEAAzz0AAM89QADPPYAAzz3AAM8+AADPPoAAzz9AAM8/gADPP8AAz0BAAM9AgADPZUAAz24AAM92AADPfgAAz36AAM9/AADPf4AAz4AAAM+AwADPgQAAz4FAAM+CAADPgkAAz4LAAM+DAADPg4AAz4RAAM+EgADPhMAAz4WAAM+FwADPhwAAz41AAM+PgADPkAAAz5CAAM+SwADPk4AAz5RAAM+UwADPpwAAz7AAAM+5wADPwsAAz8OAAM/EAADPxIAAz8UAAM/FgADPxgAAz8ZAAM/HAADPzUAAz9WAAM/WAADP1oAAz9cAAM/XgADP2AAAz9iAAM/ZAADP2YAAz+HAAM/igADP40AAz+QAAM/kwADP5YAAz+ZAAM/nAADP58AAz+hAANAHAADQB4AA0AgAANAIgADQCUAA0AmAANAJwADQCgAA0ApAANAKwADQC0AA0AuAANALwADQDEAA0AyAANArQADQK8AA0CxAANAswADQLYAA0C3AANAuAADQLkAA0C6AANAvAADQL4AA0C/AANAwAADQMIAA0DDAANBPgADQUAAA0FDAANBRQADQUgAA0FJAANBSgADQUsAA0FMAANBTgADQVAAA0FRAANBUgADQVQAA0FVAANBbgADQW8AA0FwAANBcgADQe0AA0HvAANB8QADQfMAA0H2AANB9wADQfgAA0H5AANB+gADQfwAA0H+AANB/wADQgAAA0ICAANCAwADQn4AA0KAAANCggADQoQAA0KHAANCiAADQokAA0KKAANCiwADQo0AA0KPAANCkAADQpEAA0KTAANClAADQw8AA0MRAANDEwADQxUAA0MYAANDGQADQxoAA0MbAANDHAADQx4AA0MgAANDIQADQyIAA0MkAANDJQADQ6AAA0OiAANDpAADQ6YAA0OpAANDqgADQ6sAA0OsAANDrQADQ68AA0OxAANDsgADQ7MAA0O1AANDtgADRDEAA0QzAANENQADRDcAA0Q6AANEOwADRDwAA0Q9AANEPgADREAAA0RCAANEQwADREQAA0RGAANERwADRJAAA0S0AANE2wADRP8AA0UCAANFBAADRQYAA0UIAANFCgADRQwAA0UNAANFEAADRSkAA0VGAANFSAADRUoAA0VMAANFTgADRVAAA0VSAANFVAADRXEAA0V0AANFdwADRXoAA0V9AANFgAADRYMAA0WGAANFiAADRgMAA0YFAANGBwADRgkAA0YMAANGDQADRg4AA0YPAANGEAADRhIAA0YUAANGFQADRhYAA0YYAANGGQADRpQAA0aWAANGmAADRpoAA0adAANGngADRp8AA0agAANGoQADRqMAA0alAANGpgADRqcAA0apAANGqgADRyUAA0cnAANHKQADRysAA0cuAANHLwADRzAAA0cxAANHMgADRzQAA0c2AANHNwADRzgAA0c6AANHOwADR7YAA0e4AANHuwADR70AA0fAAANHwQADR8IAA0fDAANHxAADR8YAA0fIAANHyQADR8oAA0fMAANHzQADR9AAA0hLAANITQADSE8AA0hRAANIVAADSFUAA0hWAANIVwADSFgAA0haAANIXAADSF0AA0heAANIYAADSGEAA0jcAANI3gADSOAAA0jiAANI5QADSOYAA0jnAANI6AADSOkAA0jrAANI7QADSO4AA0jvAANI8QADSPIAA0ltAANJbwADSXEAA0lzAANJdgADSXcAA0l4AANJeQADSXoAA0l8AANJfgADSX8AA0mAAANJggADSYMAA0oWAANKOQADSlkAA0p5AANKewADSn0AA0p/AANKgQADSoQAA0qFAANKhgADSokAA0qKAANKjAADSo0AA0qPAANKkgADSpMAA0qUAANKlwADSpgAA0qdAANKtgADSr8AA0rBAANKwwADSswAA0rPAANK0gADStQAA0sdAANLQQADS2gAA0uMAANLjwADS5EAA0uTAANLlQADS5cAA0uZAANLmgADS50AA0u2AANL1wADS9kAA0vbAANL3QADS98AA0vhAANL4wADS+UAA0vnAANMCAADTAsAA0wOAANMEQADTBQAA0wXAANMGgADTB0AA0wgAANMIgADTJ0AA0yfAANMoQADTKMAA0ymAANMpwADTKgAA0ypAANMqgADTKwAA0yuAANMrwADTLAAA0yyAANMswADTS4AA00wAANNMgADTTQAA003AANNOAADTTkAA006AANNOwADTT0AA00/AANNQAADTUEAA01DAANNRAADTb8AA03BAANNxAADTcYAA03JAANNygADTcsAA03MAANNzQADTc8AA03RAANN0gADTdMAA03VAANN1gADTe8AA03wAANN8QADTfMAA05uAANOcAADTnIAA050AANOdwADTngAA055AANOegADTnsAA059AANOfwADToAAA06BAANOgwADToQAA07/AANPAQADTwMAA08FAANPCAADTwkAA08KAANPCwADTwwAA08OAANPEAADTxEAA08SAANPFAADTxUAA0+QAANPkgADT5QAA0+WAANPmQADT5oAA0+bAANPnAADT50AA0+fAANPoQADT6IAA0+jAANPpQADT6YAA1AhAANQIwADUCUAA1AnAANQKgADUCsAA1AsAANQLQADUC4AA1AwAANQMgADUDMAA1A0AANQNgADUDcAA1CyAANQtAADULYAA1C4AANQuwADULwAA1C9AANQvgADUL8AA1DBAANQwwADUMQAA1DFAANQxwADUMgAA1ERAANRNQADUVwAA1GAAANRgwADUYUAA1GHAANRiQADUYsAA1GNAANRjgADUZEAA1GqAANRxwADUckAA1HLAANRzQADUc8AA1HRAANR0wADUdUAA1HyAANR9QADUfgAA1H7AANR/gADUgEAA1IEAANSBwADUgkAA1KEAANShgADUogAA1KKAANSjQADUo4AA1KPAANSkAADUpEAA1KTAANSlQADUpYAA1KXAANSmQADUpoAA1MVAANTFwADUxkAA1MbAANTHgADUx8AA1MgAANTIQADUyIAA1MkAANTJgADUycAA1MoAANTKgADUysAA1OmAANTqAADU6oAA1OsAANTrwADU7AAA1OxAANTsgADU7MAA1O1AANTtwADU7gAA1O5AANTuwADU7wAA1Q3AANUOQADVDwAA1Q+AANUQQADVEIAA1RDAANURAADVEUAA1RHAANUSQADVEoAA1RLAANUTQADVE4AA1TJAANUywADVM0AA1TPAANU0gADVNMAA1TUAANU1QADVNYAA1TYAANU2gADVNsAA1TcAANU3gADVN8AA1VaAANVXAADVV4AA1VgAANVYwADVWQAA1VlAANVZgADVWcAA1VpAANVawADVWwAA1VtAANVbwADVXAAA1XrAANV7QADVe8AA1XxAANV9AADVfUAA1X2AANV9wADVfgAA1X6AANV/AADVf0AA1X+AANWAAADVgEAA1YSAANWEwADVhUAA1aQAANWkgADVpQAA1aWAANWmQADVpoAA1abAANWnAADVp0AA1afAANWogADVqMAA1akAANWpgADVqcAA1ciAANXJAADVyYAA1coAANXKwADVywAA1ctAANXLgADVy8AA1cxAANXNAADVzUAA1c2AANXOAADVzkAA1e0AANXtgADV7kAA1e7AANXvgADV78AA1fAAANXwQADV8IAA1fEAANXxwADV8gAA1fJAANXywADV8wAA1hfAANYggADWKIAA1jCAANYxAADWMYAA1jIAANYygADWM0AA1jOAANYzwADWNIAA1jTAANY1QADWNYAA1jYAANY2wADWNwAA1jdAANY4AADWOEAA1jmAANY/wADWQgAA1kKAANZDAADWRUAA1kYAANZGwADWR0AA1lmAANZigADWbEAA1nVAANZ2AADWdoAA1ncAANZ3gADWeAAA1niAANZ4wADWeYAA1n/AANaIAADWiIAA1okAANaJgADWigAA1oqAANaLAADWi4AA1owAANaUQADWlQAA1pXAANaWgADWl0AA1pgAANaYwADWmYAA1ppAANaawADWuYAA1roAANa6gADWuwAA1rvAANa8AADWvEAA1ryAANa8wADWvUAA1r3AANa+AADWvkAA1r7AANa/AADW3cAA1t5AANbewADW30AA1uAAANbgQADW4IAA1uDAANbhAADW4YAA1uIAANbiQADW4oAA1uMAANbjQADXAgAA1wKAANcDQADXA8AA1wSAANcEwADXBQAA1wVAANcFgADXBgAA1waAANcGwADXBwAA1weAANcHwADXDgAA1w5AANcOgADXDwAA1y3AANcuQADXLsAA1y9AANcwAADXMEAA1zCAANcwwADXMQAA1zGAANcyAADXMkAA1zKAANczAADXM0AA11IAANdSgADXUwAA11OAANdUQADXVIAA11TAANdVAADXVUAA11XAANdWQADXVoAA11bAANdXQADXV4AA13ZAANd2wADXd0AA13fAANd4gADXeMAA13kAANd5QADXeYAA13oAANd6gADXesAA13sAANd7gADXe8AA15qAANebAADXm4AA15wAANecwADXnQAA151AANedgADXncAA155AANeewADXnwAA159AANefwADXoAAA177AANe/QADXv8AA18BAANfBAADXwUAA18GAANfBwADXwgAA18KAANfDAADXw0AA18OAANfEAADXxEAA19aAANffgADX6UAA1/JAANfzAADX84AA1/QAANf0gADX9QAA1/WAANf1wADX9oAA1/zAANgEAADYBIAA2AUAANgFgADYBgAA2AaAANgHAADYB4AA2A7AANgPgADYEEAA2BEAANgRwADYEoAA2BNAANgUAADYFIAA2DNAANgzwADYNEAA2DTAANg1gADYNcAA2DYAANg2QADYNoAA2DcAANg3gADYN8AA2DgAANg4gADYOMAA2FeAANhYAADYWIAA2FkAANhZwADYWgAA2FpAANhagADYWsAA2FtAANhbwADYXAAA2FxAANhcwADYXQAA2HvAANh8QADYfMAA2H1AANh+AADYfkAA2H6AANh+wADYfwAA2H+AANiAAADYgEAA2ICAANiBAADYgUAA2KAAANiggADYoQAA2KGAANiiQADYooAA2KLAANijAADYo0AA2KPAANikQADYpIAA2KTAANilQADYpYAA2MRAANjEwADYxUAA2MXAANjGgADYxsAA2McAANjHQADYx4AA2MgAANjIgADYyMAA2MkAANjJgADYycAA2OiAANjpAADY6YAA2OoAANjqwADY6wAA2OtAANjrgADY68AA2OxAANjswADY7QAA2O1AANjtwADY7gAA2QzAANkNQADZDcAA2Q5AANkPAADZD0AA2Q+AANkPwADZEAAA2RCAANkRAADZEUAA2RGAANkSAADZEkAA2TcAANk/wADZR8AA2U/AANlQQADZUMAA2VFAANlRwADZUoAA2VLAANlTAADZU8AA2VQAANlUgADZVMAA2VVAANlWAADZVkAA2VaAANlXQADZV4AA2VjAANlfAADZYUAA2WHAANliQADZZIAA2WVAANlmAADZZoAA2XjAANmBwADZi4AA2ZSAANmVQADZlcAA2ZZAANmWwADZl0AA2ZfAANmYAADZmMAA2Z8AANmnQADZp8AA2ahAANmowADZqUAA2anAANmqQADZqsAA2atAANmzgADZtEAA2bUAANm1wADZtoAA2bdAANm4AADZuMAA2bmAANm6AADZ2MAA2dlAANnZwADZ2kAA2dsAANnbQADZ24AA2dvAANncAADZ3IAA2d0AANndQADZ3YAA2d4AANneQADZ/QAA2f2AANn+AADZ/oAA2f9AANn/gADZ/8AA2gAAANoAQADaAMAA2gFAANoBgADaAcAA2gJAANoCgADaIUAA2iHAANoigADaIwAA2iPAANokAADaJEAA2iSAANokwADaJUAA2iXAANomAADaJkAA2ibAANonAADaLUAA2i2AANotwADaLkAA2k0AANpNgADaTgAA2k6AANpPQADaT4AA2k/AANpQAADaUEAA2lDAANpRQADaUYAA2lHAANpSQADaUoAA2nFAANpxwADackAA2nLAANpzgADac8AA2nQAANp0QADadIAA2nUAANp1gADadcAA2nYAANp2gADadsAA2pWAANqWAADaloAA2pcAANqXwADamAAA2phAANqYgADamMAA2plAANqZwADamgAA2ppAANqawADamwAA2rnAANq6QADausAA2rtAANq8AADavEAA2ryAANq8wADavQAA2r2AANq+AADavkAA2r6AANq/AADav0AA2t4AANregADa3wAA2t+AANrgQADa4IAA2uDAANrhAADa4UAA2uHAANriQADa4oAA2uLAANrjQADa44AA2vXAANr+wADbCIAA2xGAANsSQADbEsAA2xNAANsTwADbFEAA2xTAANsVAADbFcAA2xwAANsjQADbI8AA2yRAANskwADbJUAA2yXAANsmQADbJsAA2y4AANsuwADbL4AA2zBAANsxAADbMcAA2zKAANszQADbM8AA21KAANtTAADbU4AA21QAANtUwADbVQAA21VAANtVgADbVcAA21ZAANtWwADbVwAA21dAANtXwADbWAAA23bAANt3QADbd8AA23hAANt5AADbeUAA23mAANt5wADbegAA23qAANt7AADbe0AA23uAANt8AADbfEAA25sAANubgADbnAAA25yAANudQADbnYAA253AANueAADbnkAA257AANufQADbn4AA25/AANugQADboIAA279AANu/wADbwEAA28DAANvBgADbwcAA28IAANvCQADbwoAA28MAANvDgADbw8AA28QAANvEgADbxMAA2+OAANvkAADb5IAA2+UAANvlwADb5gAA2+ZAANvmgADb5sAA2+dAANvnwADb6AAA2+hAANvowADb6QAA3AfAANwIQADcCMAA3AlAANwKAADcCkAA3AqAANwKwADcCwAA3AuAANwMAADcDEAA3AyAANwNAADcDUAA3CwAANwsgADcLQAA3C2AANwuQADcLoAA3C7AANwvAADcL0AA3C/AANwwQADcMIAA3DDAANwxQADcMYAA3FZAANxfAADcZwAA3G8AANxvgADccAAA3HCAANxxAADcccAA3HIAANxyQADccwAA3HNAANxzwADcdAAA3HSAANx1QADcdYAA3HXAANx2gADcdsAA3HgAANx+QADcgIAA3IEAANyBgADcg8AA3ISAANyFQADchcAA3JgAANyhAADcqsAA3LPAANy0gADctQAA3LWAANy2AADctoAA3LcAANy3QADcuAAA3L5AANzGgADcxwAA3MeAANzIAADcyIAA3MkAANzJgADcygAA3MqAANzSwADc04AA3NRAANzVAADc1cAA3NaAANzXQADc2AAA3NjAANzZQADc+AAA3PiAANz5AADc+YAA3PpAANz6gADc+sAA3PsAANz7QADc+8AA3PxAANz8gADc/MAA3P1AANz9gADdHEAA3RzAAN0dQADdHcAA3R6AAN0ewADdHwAA3R9AAN0fgADdIAAA3SCAAN0gwADdIQAA3SGAAN0hwADdQIAA3UEAAN1BwADdQkAA3UMAAN1DQADdQ4AA3UPAAN1EAADdRIAA3UUAAN1FQADdRYAA3UYAAN1GQADdTIAA3UzAAN1NAADdTYAA3WxAAN1swADdbUAA3W3AAN1ugADdbsAA3W8AAN1vQADdb4AA3XAAAN1wgADdcMAA3XEAAN1xgADdccAA3ZCAAN2RAADdkYAA3ZIAAN2SwADdkwAA3ZNAAN2TgADdk8AA3ZRAAN2UwADdlQAA3ZVAAN2VwADdlgAA3bTAAN21QADdtcAA3bZAAN23AADdt0AA3beAAN23wADduAAA3biAAN25AADduUAA3bmAAN26AADdukAA3dkAAN3ZgADd2gAA3dqAAN3bQADd24AA3dvAAN3cAADd3EAA3dzAAN3dQADd3YAA3d3AAN3eQADd3oAA3f1AAN39wADd/kAA3f7AAN3/gADd/8AA3gAAAN4AQADeAIAA3gEAAN4BgADeAcAA3gIAAN4CgADeAsAA3hUAAN4eAADeJ8AA3jDAAN4xgADeMgAA3jKAAN4zAADeM4AA3jQAAN40QADeNQAA3jtAAN5CgADeQwAA3kOAAN5EAADeRIAA3kUAAN5FgADeRgAA3k1AAN5OAADeTsAA3k+AAN5QQADeUQAA3lHAAN5SgADeUwAA3nHAAN5yQADecsAA3nNAAN50AADedEAA3nSAAN50wADedQAA3nWAAN52AADedkAA3naAAN53AADed0AA3pYAAN6WgADelwAA3peAAN6YQADemIAA3pjAAN6ZAADemUAA3pnAAN6aQADemoAA3prAAN6bQADem4AA3rpAAN66wADeu0AA3rvAAN68gADevMAA3r0AAN69QADevYAA3r4AAN6+gADevsAA3r8AAN6/gADev8AA3t6AAN7fAADe38AA3uBAAN7hAADe4UAA3uGAAN7hwADe4gAA3uKAAN7jAADe40AA3uOAAN7kAADe5EAA3wMAAN8DgADfBAAA3wSAAN8FQADfBYAA3wXAAN8GAADfBkAA3wbAAN8HQADfB4AA3wfAAN8IQADfCIAA3ydAAN8nwADfKEAA3yjAAN8pgADfKcAA3yoAAN8qQADfKoAA3ysAAN8rgADfK8AA3ywAAN8sgADfLMAA30uAAN9MAADfTIAA300AAN9NwADfTgAA305AAN9OgADfTsAA309AAN9PwADfUAAA31BAAN9QwADfUQAA33XAAN9+gADfhoAA346AAN+PAADfj4AA35AAAN+QgADfkUAA35GAAN+RwADfkoAA35LAAN+TQADfk4AA35QAAN+UwADflQAA35VAAN+WAADflkAA35eAAN+dwADfoAAA36CAAN+hAADfo0AA36QAAN+kwADfpUAA37eAAN/AgADfykAA39NAAN/UAADf1IAA39UAAN/VgADf1gAA39aAAN/WwADf14AA393AAN/mAADf5oAA3+cAAN/ngADf6AAA3+iAAN/pAADf6YAA3+oAAN/yQADf8wAA3/PAAN/0gADf9UAA3/YAAN/2wADf94AA3/hAAN/4wADgF4AA4BgAAOAYgADgGQAA4BnAAOAaAADgGkAA4BqAAOAawADgG0AA4BvAAOAcAADgHEAA4BzAAOAdAADgO8AA4DxAAOA8wADgPUAA4D4AAOA+QADgPoAA4D7AAOA/AADgP4AA4EAAAOBAQADgQIAA4EEAAOBBQADgYAAA4GCAAOBhQADgYcAA4GKAAOBiwADgYwAA4GNAAOBjgADgZAAA4GSAAOBkwADgZQAA4GWAAOBlwADgbAAA4GxAAOBsgADgbQAA4IvAAOCMQADgjMAA4I1AAOCOAADgjkAA4I6AAOCOwADgjwAA4I+AAOCQAADgkEAA4JCAAOCRAADgkUAA4LAAAOCwgADgsQAA4LGAAOCyQADgsoAA4LLAAOCzAADgs0AA4LPAAOC0QADgtIAA4LTAAOC1QADgtYAA4NRAAODUwADg1UAA4NXAAODWgADg1sAA4NcAAODXQADg14AA4NgAAODYgADg2MAA4NkAAODZgADg2cAA4PiAAOD5AADg+YAA4PoAAOD6wADg+wAA4PtAAOD7gADg+8AA4PxAAOD8wADg/QAA4P1AAOD9wADg/gAA4RzAAOEdQADhHcAA4R5AAOEfAADhH0AA4R+AAOEfwADhIAAA4SCAAOEhAADhIUAA4SGAAOEiAADhIkAA4TSAAOE9gADhR0AA4VBAAOFRAADhUYAA4VIAAOFSgADhUwAA4VOAAOFTwADhVIAA4VrAAOFiAADhYoAA4WMAAOFjgADhZAAA4WSAAOFlAADhZYAA4WzAAOFtgADhbkAA4W8AAOFvwADhcIAA4XFAAOFyAADhcoAA4ZFAAOGRwADhkkAA4ZLAAOGTgADhk8AA4ZQAAOGUQADhlIAA4ZUAAOGVgADhlcAA4ZYAAOGWgADhlsAA4bWAAOG2AADhtoAA4bcAAOG3wADhuAAA4bhAAOG4gADhuMAA4blAAOG5wADhugAA4bpAAOG6wADhuwAA4dnAAOHaQADh2sAA4dtAAOHcAADh3EAA4dyAAOHcwADh3QAA4d2AAOHeAADh3kAA4d6AAOHfAADh30AA4f4AAOH+gADh/wAA4f+AAOIAQADiAIAA4gDAAOIBAADiAUAA4gHAAOICQADiAoAA4gLAAOIDQADiA4AA4iJAAOIiwADiI0AA4iPAAOIkgADiJMAA4iUAAOIlQADiJYAA4iYAAOImgADiJsAA4icAAOIngADiJ8AA4kaAAOJHAADiR4AA4kgAAOJIwADiSQAA4klAAOJJgADiScAA4kpAAOJKwADiSwAA4ktAAOJLwADiTAAA4mrAAOJrQADia8AA4mxAAOJtAADibUAA4m2AAOJtwADibgAA4m6AAOJvAADib0AA4m+AAOJwAADicEAA4nSAAOJ0wADidUAA4pQAAOKUgADilQAA4pWAAOKWQADiloAA4pbAAOKXAADil0AA4pfAAOKYgADimMAA4pkAAOKZgADimcAA4riAAOK5AADiuYAA4roAAOK6wADiuwAA4rtAAOK7gADiu8AA4rxAAOK9AADivUAA4r2AAOK+AADivkAA4t0AAOLdgADi3kAA4t7AAOLfgADi38AA4uAAAOLgQADi4IAA4uEAAOLhwADi4gAA4uJAAOLiwADi4wAA4wfAAOMQgADjGIAA4yCAAOMhAADjIYAA4yIAAOMigADjI0AA4yOAAOMjwADjJIAA4yTAAOMlQADjJYAA4yYAAOMmwADjJwAA4ydAAOMoAADjKEAA4yqAAOMwwADjMwAA4zOAAOM0AADjNkAA4zcAAOM3wADjOEAA40qAAONTgADjXUAA42ZAAONnAADjZ4AA42gAAONogADjaQAA42mAAONpwADjaoAA43DAAON5AADjeYAA43oAAON6gADjewAA43uAAON8AADjfIAA430AAOOFQADjhgAA44bAAOOHgADjiEAA44kAAOOJwADjioAA44tAAOOLwADjqoAA46sAAOOrgADjrAAA46zAAOOtAADjrUAA462AAOOtwADjrkAA467AAOOvAADjr0AA46/AAOOwAADjzsAA489AAOPPwADj0EAA49EAAOPRQADj0YAA49HAAOPSAADj0oAA49MAAOPTQADj04AA49QAAOPUQADj8wAA4/OAAOP0QADj9MAA4/WAAOP1wADj9gAA4/ZAAOP2gADj9wAA4/eAAOP3wADj+AAA4/iAAOP4wADj/wAA4/9AAOP/gADkAAAA5B7AAOQfQADkH8AA5CBAAOQhAADkIUAA5CGAAOQhwADkIgAA5CKAAOQjAADkI0AA5COAAOQkAADkJEAA5EMAAORDgADkRAAA5ESAAORFQADkRYAA5EXAAORGAADkRkAA5EbAAORHQADkR4AA5EfAAORIQADkSIAA5GdAAORnwADkaEAA5GjAAORpgADkacAA5GoAAORqQADkaoAA5GsAAORrgADka8AA5GwAAORsgADkbMAA5IuAAOSMAADkjIAA5I0AAOSNwADkjgAA5I5AAOSOgADkjsAA5I9AAOSPwADkkAAA5JBAAOSQwADkkQAA5K/AAOSwQADksMAA5LFAAOSyAADkskAA5LKAAOSywADkswAA5LOAAOS0AADktEAA5LSAAOS1AADktUAA5MeAAOTQgADk2kAA5ONAAOTkAADk5IAA5OUAAOTlgADk5gAA5OaAAOTmwADk54AA5O3AAOT1AADk9YAA5PYAAOT2gADk9wAA5PeAAOT4AADk+IAA5P/AAOUAgADlAUAA5QIAAOUCwADlA4AA5QRAAOUFAADlBYAA5SRAAOUkwADlJUAA5SXAAOUmgADlJsAA5ScAAOUnQADlJ4AA5SgAAOUogADlKMAA5SkAAOUpgADlKcAA5UiAAOVJAADlSYAA5UoAAOVKwADlSwAA5UtAAOVLgADlS8AA5UxAAOVMwADlTQAA5U1AAOVNwADlTgAA5WzAAOVtQADlbcAA5W5AAOVvAADlb0AA5W+AAOVvwADlcAAA5XCAAOVxAADlcUAA5XGAAOVyAADlckAA5ZEAAOWRgADlkkAA5ZLAAOWTgADlk8AA5ZQAAOWUQADllIAA5ZUAAOWVgADllcAA5ZYAAOWWgADllsAA5bWAAOW2AADltoAA5bcAAOW3wADluAAA5bhAAOW4gADluMAA5blAAOW5wADlugAA5bpAAOW6wADluwAA5dnAAOXaQADl2sAA5dtAAOXcAADl3EAA5dyAAOXcwADl3QAA5d2AAOXeAADl3kAA5d6AAOXfAADl30AA5f4AAOX+gADl/wAA5f+AAOYAQADmAIAA5gDAAOYBAADmAUAA5gHAAOYCQADmAoAA5gLAAOYDQADmA4AA5ihAAOYxAADmOQAA5kEAAOZBgADmQgAA5kKAAOZDAADmQ8AA5kQAAOZEQADmRQAA5kVAAOZFwADmRgAA5kaAAOZHQADmR4AA5kfAAOZIgADmSMAA5koAAOZQQADmUoAA5lMAAOZTgADmVcAA5laAAOZXQADmV8AA5moAAOZzAADmfMAA5oXAAOaGgADmhwAA5oeAAOaIAADmiIAA5okAAOaJQADmigAA5pBAAOaYgADmmQAA5pmAAOaaAADmmoAA5psAAOabgADmnAAA5pyAAOakwADmpYAA5qZAAOanAADmp8AA5qiAAOapQADmqgAA5qrAAOarQADmygAA5sqAAObLAADmy4AA5sxAAObMgADmzMAA5s0AAObNQADmzcAA5s5AAObOgADmzsAA5s9AAObPgADm7kAA5u7AAObvQADm78AA5vCAAObwwADm8QAA5vFAAObxgADm8gAA5vKAAObywADm8wAA5vOAAObzwADnEoAA5xMAAOcTwADnFEAA5xUAAOcVQADnFYAA5xXAAOcWAADnFoAA5xcAAOcXQADnF4AA5xgAAOcYQADnHoAA5x7AAOcfAADnH4AA5z5AAOc+wADnP0AA5z/AAOdAgADnQMAA50EAAOdBQADnQYAA50IAAOdCgADnQsAA50MAAOdDgADnQ8AA52KAAOdjAADnY4AA52QAAOdkwADnZQAA52VAAOdlgADnZcAA52ZAAOdmwADnZwAA52dAAOdnwADnaAAA54bAAOeHQADnh8AA54hAAOeJAADniUAA54mAAOeJwADnigAA54qAAOeLAADni0AA54uAAOeMAADnjEAA56sAAOergADnrAAA56yAAOetQADnrYAA563AAOeuAADnrkAA567AAOevQADnr4AA56/AAOewQADnsIAA589AAOfPwADn0EAA59DAAOfRgADn0cAA59IAAOfSQADn0oAA59MAAOfTgADn08AA59QAAOfUgADn1MAA5+cAAOfwAADn+cAA6ALAAOgDgADoBAAA6ASAAOgFAADoBYAA6AYAAOgGQADoBwAA6A1AAOgUgADoFQAA6BWAAOgWAADoFoAA6BcAAOgXgADoGAAA6B9AAOggAADoIMAA6CGAAOgiQADoIwAA6CPAAOgkgADoJQAA6EPAAOhEQADoRMAA6EVAAOhGAADoRkAA6EaAAOhGwADoRwAA6EeAAOhIAADoSEAA6EiAAOhJAADoSUAA6GgAAOhogADoaQAA6GmAAOhqQADoaoAA6GrAAOhrAADoa0AA6GvAAOhsQADobIAA6GzAAOhtQADobYAA6IxAAOiMwADojUAA6I3AAOiOgADojsAA6I8AAOiPQADoj4AA6JAAAOiQgADokMAA6JEAAOiRgADokcAA6LCAAOixAADoscAA6LJAAOizAADos0AA6LOAAOizwADotAAA6LSAAOi1AADotUAA6LWAAOi2AADotkAA6NUAAOjVgADo1gAA6NaAAOjXQADo14AA6NfAAOjYAADo2EAA6NjAAOjZQADo2YAA6NnAAOjaQADo2oAA6PlAAOj5wADo+kAA6PrAAOj7gADo+8AA6PwAAOj8QADo/IAA6P0AAOj9gADo/cAA6P4AAOj+gADo/sAA6R2AAOkeAADpHoAA6R8AAOkfwADpIAAA6SBAAOkggADpIMAA6SFAAOkhwADpIgAA6SJAAOkiwADpIwAA6UfAAOlQgADpWIAA6WCAAOlhAADpYYAA6WIAAOligADpY0AA6WOAAOljwADpZIAA6WTAAOllQADpZYAA6WYAAOlmwADpZwAA6WdAAOloAADpaEAA6WmAAOlvwADpcgAA6XKAAOlzAADpdUAA6XYAAOl2wADpd0AA6YmAAOmSgADpnEAA6aVAAOmmAADppoAA6acAAOmngADpqAAA6aiAAOmowADpqYAA6a/AAOm4AADpuIAA6bkAAOm5gADpugAA6bqAAOm7AADpu4AA6bwAAOnEQADpxQAA6cXAAOnGgADpx0AA6cgAAOnIwADpyYAA6cpAAOnKwADp6YAA6eoAAOnqgADp6wAA6evAAOnsAADp7EAA6eyAAOnswADp7UAA6e3AAOnuAADp7kAA6e7AAOnvAADqDcAA6g5AAOoOwADqD0AA6hAAAOoQQADqEIAA6hDAAOoRAADqEYAA6hIAAOoSQADqEoAA6hMAAOoTQADqMgAA6jKAAOozQADqM8AA6jSAAOo0wADqNQAA6jVAAOo1gADqNgAA6jaAAOo2wADqNwAA6jeAAOo3wADqPgAA6j5AAOo+gADqPwAA6l3AAOpeQADqXsAA6l9AAOpgAADqYEAA6mCAAOpgwADqYQAA6mGAAOpiAADqYkAA6mKAAOpjAADqY0AA6oIAAOqCgADqgwAA6oOAAOqEQADqhIAA6oTAAOqFAADqhUAA6oXAAOqGQADqhoAA6obAAOqHQADqh4AA6qZAAOqmwADqp0AA6qfAAOqogADqqMAA6qkAAOqpQADqqYAA6qoAAOqqgADqqsAA6qsAAOqrgADqq8AA6sqAAOrLAADqy4AA6swAAOrMwADqzQAA6s1AAOrNgADqzcAA6s5AAOrOwADqzwAA6s9AAOrPwADq0AAA6u7AAOrvQADq78AA6vBAAOrxAADq8UAA6vGAAOrxwADq8gAA6vKAAOrzAADq80AA6vOAAOr0AADq9EAA6waAAOsPgADrGUAA6yJAAOsjAADrI4AA6yQAAOskgADrJQAA6yWAAOslwADrJoAA6yzAAOs0AADrNIAA6zUAAOs1gADrNgAA6zaAAOs3AADrN4AA6z7AAOs/gADrQEAA60EAAOtBwADrQoAA60NAAOtEAADrRIAA62NAAOtjwADrZEAA62TAAOtlgADrZcAA62YAAOtmQADrZoAA62cAAOtngADrZ8AA62gAAOtogADraMAA64eAAOuIAADriIAA64kAAOuJwADrigAA64pAAOuKgADrisAA64tAAOuLwADrjAAA64xAAOuMwADrjQAA66vAAOusQADrrMAA661AAOuuAADrrkAA666AAOuuwADrrwAA66+AAOuwAADrsEAA67CAAOuxAADrsUAA69AAAOvQgADr0UAA69HAAOvSgADr0sAA69MAAOvTQADr04AA69QAAOvUgADr1MAA69UAAOvVgADr1cAA6/SAAOv1AADr9YAA6/YAAOv2wADr9wAA6/dAAOv3gADr98AA6/hAAOv4wADr+QAA6/lAAOv5wADr+gAA7BjAAOwZQADsGcAA7BpAAOwbAADsG0AA7BuAAOwbwADsHAAA7ByAAOwdAADsHUAA7B2AAOweAADsHkAA7D0AAOw9gADsPgAA7D6AAOw/QADsP4AA7D/AAOxAAADsQEAA7EDAAOxBQADsQYAA7EHAAOxCQADsQoAA7GdAAOxwAADseAAA7IAAAOyAgADsgQAA7IGAAOyCAADsgsAA7IMAAOyDQADshAAA7IRAAOyEwADshQAA7IWAAOyGQADshoAA7IbAAOyHgADsh8AA7IoAAOyQQADskoAA7JMAAOyTgADslcAA7JaAAOyXQADsl8AA7KoAAOyzAADsvMAA7MXAAOzGgADsxwAA7MeAAOzIAADsyIAA7MkAAOzJQADsygAA7NBAAOzYgADs2QAA7NmAAOzaAADs2oAA7NsAAOzbgADs3AAA7NyAAOzkwADs5YAA7OZAAOznAADs58AA7OiAAOzpQADs6gAA7OrAAOzrQADtCgAA7QqAAO0LAADtC4AA7QxAAO0MgADtDMAA7Q0AAO0NQADtDcAA7Q5AAO0OgADtDsAA7Q9AAO0PgADtLkAA7S7AAO0vQADtL8AA7TCAAO0wwADtMQAA7TFAAO0xgADtMgAA7TKAAO0ywADtMwAA7TOAAO0zwADtUoAA7VMAAO1TwADtVEAA7VUAAO1VQADtVYAA7VXAAO1WAADtVoAA7VcAAO1XQADtV4AA7VgAAO1YQADtXoAA7V7AAO1fAADtX4AA7X5AAO1+wADtf0AA7X/AAO2AgADtgMAA7YEAAO2BQADtgYAA7YIAAO2CgADtgsAA7YMAAO2DgADtg8AA7aKAAO2jAADto4AA7aQAAO2kwADtpQAA7aVAAO2lgADtpcAA7aZAAO2mwADtpwAA7adAAO2nwADtqAAA7cbAAO3HQADtx8AA7chAAO3JAADtyUAA7cmAAO3JwADtygAA7cqAAO3LAADty0AA7cuAAO3MAADtzEAA7esAAO3rgADt7AAA7eyAAO3tQADt7YAA7e3AAO3uAADt7kAA7e7AAO3vQADt74AA7e/AAO3wQADt8IAA7g9AAO4PwADuEEAA7hDAAO4RgADuEcAA7hIAAO4SQADuEoAA7hMAAO4TgADuE8AA7hQAAO4UgADuFMAA7icAAO4wAADuOcAA7kLAAO5DgADuRAAA7kSAAO5FAADuRYAA7kYAAO5GQADuRwAA7k1AAO5UgADuVQAA7lWAAO5WAADuVoAA7lcAAO5XgADuWAAA7l9AAO5gAADuYMAA7mGAAO5iQADuYwAA7mPAAO5kgADuZQAA7oPAAO6EQADuhQAA7oWAAO6GQADuhoAA7obAAO6HAADuh0AA7ofAAO6IQADuiIAA7ojAAO6JQADuiYAA7qhAAO6owADuqUAA7qnAAO6qgADuqsAA7qsAAO6rQADuq4AA7qwAAO6sgADurMAA7q0AAO6tgADurcAA7syAAO7NAADuzYAA7s4AAO7OwADuzwAA7s9AAO7PgADuz8AA7tBAAO7QwADu0QAA7tFAAO7RwADu0gAA7vDAAO7xQADu8gAA7vKAAO7zQADu84AA7vPAAO70AADu9EAA7vTAAO71QADu9YAA7vXAAO72QADu9oAA7xVAAO8VwADvFkAA7xbAAO8XgADvF8AA7xgAAO8YQADvGIAA7xkAAO8ZgADvGcAA7xoAAO8agADvGsAA7zmAAO86AADvOoAA7zsAAO87wADvPAAA7zxAAO88gADvPMAA7z1AAO89wADvPgAA7z5AAO8+wADvPwAA713AAO9eQADvXsAA719AAO9gAADvYEAA72CAAO9gwADvYQAA72GAAO9iAADvYkAA72KAAO9jAADvY0AA74gAAO+QwADvmMAA76DAAO+hQADvocAA76JAAO+iwADvo4AA76PAAO+kAADvpMAA76UAAO+lgADvpcAA76ZAAO+nAADvp0AA76eAAO+oQADvqIAA76rAAO+xAADvs0AA77PAAO+0QADvtoAA77dAAO+4AADvuIAA78rAAO/TwADv3YAA7+aAAO/nQADv58AA7+hAAO/owADv6UAA7+nAAO/qAADv6sAA7/EAAO/5QADv+cAA7/pAAO/6wADv+0AA7/vAAO/8QADv/MAA7/1AAPAFgADwBkAA8AcAAPAHwADwCIAA8AlAAPAKAADwCsAA8AuAAPAMAADwKsAA8CtAAPArwADwLEAA8C0AAPAtQADwLYAA8C3AAPAuAADwLoAA8C8AAPAvQADwL4AA8DAAAPAwQADwTwAA8E+AAPBQAADwUIAA8FFAAPBRgADwUcAA8FIAAPBSQADwUsAA8FNAAPBTgADwU8AA8FRAAPBUgADwc0AA8HPAAPB0gADwdQAA8HXAAPB2AADwdkAA8HaAAPB2wADwd0AA8HfAAPB4AADweEAA8HjAAPB5AADwf0AA8H+AAPB/wADwgEAA8J8AAPCfgADwoAAA8KCAAPChQADwoYAA8KHAAPCiAADwokAA8KLAAPCjQADwo4AA8KPAAPCkQADwpIAA8MNAAPDDwADwxEAA8MTAAPDFgADwxcAA8MYAAPDGQADwxoAA8McAAPDHgADwx8AA8MgAAPDIgADwyMAA8OeAAPDoAADw6IAA8OkAAPDpwADw6gAA8OpAAPDqgADw6sAA8OtAAPDrwADw7AAA8OxAAPDswADw7QAA8QvAAPEMQADxDMAA8Q1AAPEOAADxDkAA8Q6AAPEOwADxDwAA8Q+AAPEQAADxEEAA8RCAAPERAADxEUAA8TAAAPEwgADxMQAA8TGAAPEyQADxMoAA8TLAAPEzAADxM0AA8TPAAPE0QADxNIAA8TTAAPE1QADxNYAA8UfAAPFQwADxWoAA8WOAAPFkQADxZMAA8WVAAPFlwADxZkAA8WbAAPFnAADxZ8AA8W4AAPF1QADxdcAA8XZAAPF2wADxd0AA8XfAAPF4QADxeMAA8YAAAPGAwADxgYAA8YJAAPGDAADxg8AA8YSAAPGFQADxhcAA8aSAAPGlAADxpYAA8aYAAPGmwADxpwAA8adAAPGngADxp8AA8ahAAPGowADxqQAA8alAAPGpwADxqgAA8cjAAPHJQADxycAA8cpAAPHLAADxy0AA8cuAAPHLwADxzAAA8cyAAPHNAADxzUAA8c2AAPHOAADxzkAA8e0AAPHtgADx7gAA8e6AAPHvQADx74AA8e/AAPHwAADx8EAA8fDAAPHxQADx8YAA8fHAAPHyQADx8oAA8hFAAPIRwADyEkAA8hLAAPITgADyE8AA8hQAAPIUQADyFIAA8hUAAPIVgADyFcAA8hYAAPIWgADyFsAA8jWAAPI2AADyNoAA8jcAAPI3wADyOAAA8jhAAPI4gADyOMAA8jlAAPI5wADyOgAA8jpAAPI6wADyOwAA8lnAAPJaQADyWwAA8luAAPJcQADyXIAA8lzAAPJdAADyXUAA8l3AAPJeQADyXoAA8l7AAPJfQADyX4AA8mdAAPKGAADyhoAA8ocAAPKHgADyiEAA8oiAAPKIwADyiQAA8olAAPKJwADyikAA8oqAAPKKwADyi0AA8ouAAPKwQADyuQAA8sEAAPLJAADyyYAA8soAAPLKgADyywAA8svAAPLMAADyzEAA8s0AAPLNQADyzcAA8s4AAPLOgADyz0AA8s+AAPLPwADy0IAA8tDAAPLSAADy2EAA8tqAAPLbAADy24AA8t3AAPLegADy30AA8t/AAPLyAADy+wAA8wTAAPMNwADzDoAA8w8AAPMPgADzEAAA8xCAAPMRAADzEUAA8xIAAPMYQADzIIAA8yEAAPMhgADzIgAA8yKAAPMjAADzI4AA8yQAAPMkgADzLMAA8y2AAPMuQADzLwAA8y/AAPMwgADzMUAA8zIAAPMywADzM0AA81IAAPNSgADzUwAA81OAAPNUQADzVIAA81TAAPNVAADzVUAA81XAAPNWQADzVoAA81bAAPNXQADzV4AA83ZAAPN2wADzd0AA83fAAPN4gADzeMAA83kAAPN5QADzeYAA83oAAPN6gADzesAA83sAAPN7gADze8AA85qAAPObAADzm8AA85xAAPOdAADznUAA852AAPOdwADzngAA856AAPOfAADzn0AA85+AAPOgAADzoEAA86aAAPOmwADzpwAA86eAAPPGQADzxsAA88dAAPPHwADzyIAA88jAAPPJAADzyUAA88mAAPPKAADzyoAA88rAAPPLAADzy4AA88vAAPPqgADz6wAA8+uAAPPsAADz7MAA8+0AAPPtQADz7YAA8+3AAPPuQADz7sAA8+8AAPPvQADz78AA8/AAAPQOwAD0D0AA9A/AAPQQQAD0EQAA9BFAAPQRgAD0EcAA9BIAAPQSgAD0EwAA9BNAAP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FZAAEBWYABAVoAAQFawAEBWwABAVtAAQFbgAEBW8ABAVxAAQFcwAEBXQABAV1AAQFdwAEBXgABAXzAAQF9QAEBfcABAX5AAQF/AAEBf0ABAX+AAQF/wAEBgAABAYCAAQGBAAEBgUABAYGAAQGCAAEBgkABAaEAAQGhgAEBogABAaKAAQGjQAEBo4ABAaPAAQGkAAEBpEABAaTAAQGlQAEBpYABAaXAAQGmQAEBpoABAcVAAQHFwAEBxoABAccAAQHHwAEByAABAchAAQHIgAEByMABAclAAQHJwAEBygABAcpAAQHKwAEBywABAenAAQHqQAEB6sABAetAAQHsAAEB7EABAeyAAQHswAEB7QABAe2AAQHuAAEB7kABAe6AAQHvAAEB70ABAg4AAQIOgAECDwABAg+AAQIQQAECEIABAhDAAQIRAAECEUABAhHAAQISQAECEoABAhLAAQITQAECE4ABAjJAAQIywAECM0ABAjPAAQI0gAECNMABAjUAAQI1QAECNYABAjYAAQI2gAECNsABAjcAAQI3gAECN8ABAlyAAQJlQAECbUABAnVAAQJ1wAECdkABAnbAAQJ3QAECeAABAnhAAQJ4gAECeUABAnmAAQJ6AAECekABAnrAAQJ7gAECe8ABAnwAAQJ8wAECfQABAn5AAQKEgAEChsABAodAAQKHwAECigABAorAAQKLgAECjAABAp5AAQKnQAECsQABAroAAQK6wAECu0ABArvAAQK8QAECvMABAr1AAQK9gAECvkABAsSAAQLMwAECzUABAs3AAQLOQAECzsABAs9AAQLPwAEC0EABAtDAAQLZAAEC2cABAtqAAQLbQAEC3AABAtzAAQLdgAEC3kABAt8AAQLfgAEC/kABAv7AAQL/QAEC/8ABAwCAAQMAwAEDAQABAwFAAQMBgAEDAgABAwKAAQMCwAEDAwABAwOAAQMDwAEDIoABAyMAAQMjgAEDJAABAyTAAQMlAAEDJUABAyWAAQMlwAEDJkABAybAAQMnAAEDJ0ABAyfAAQMoAAEDRsABA0dAAQNIAAEDSIABA0lAAQNJgAEDScABA0oAAQNKQAEDSsABA0tAAQNLgAEDS8ABA0xAAQNMgAEDUsABA1MAAQNTQAEDU8ABA3KAAQNzAAEDc4ABA3QAAQN0wAEDdQABA3VAAQN1gAEDdcABA3ZAAQ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ouwAEKTYABCk4AAQpOgAEKTwABCk/AAQpQAAEKUEABClCAAQpQwAEKUUABClHAAQpSAAEKUkABClLAAQpTAAEKccABCnJAAQpzAAEKc4ABCnRAAQp0gAEKdMABCnUAAQp1QAEKdcABCnZAAQp2gAEKdsABCndAAQp3gAEKfcABCn4AAQp+QAEKfsABCp2AAQqeAAEKnoABCp8AAQqfwAEKoAABCqBAAQqggAEKoMABCqFAAQqhwAEKogABCqJAAQqiwAEKowABCsHAAQrCQAEKwwABCsOAAQrEQAEKxIABCsTAAQrFAAEKxUABCsXAAQrGQAEKxoABCsbAAQrHQAEKx4ABCssAAQrRQAEK1IABCtVAAQrWAAEK1sABCtoAAQrawAEK24ABCtxAAQrcwAEK3cABCuJAAQrmwAELC4ABCxRAAQscQAELJEABCyTAAQslQAELJcABCyZAAQsnAAELJ0ABCyeAAQsoQAELKIABCykAAQspQAELKcABCyqAAQsqwAELKwABCyvAAQssAAELLUABCzOAAQs1wAELNkABCzbAAQs5AAELOcABCzqAAQs7AAELTUABC1ZAAQtgAAELaQABC2nAAQtqQAELasABC2tAAQtrwAELbEABC2yAAQttQAELc4ABC3vAAQt8QAELfMABC31AAQt9wAELfkABC37AAQt/QAELf8ABC4gAAQuIwAELiYABC4pAAQuLAAELi8ABC4yAAQuNQAELjgABC46AAQutQAELrcABC65AAQuuwAELr4ABC6/AAQuwAAELsEABC7CAAQuxAAELsYABC7HAAQuyAAELsoABC7LAAQvRgAEL0gABC9KAAQvTAAEL08ABC9QAAQvUQAEL1IABC9TAAQvVQAEL1cABC9YAAQvWQAEL1sABC9cAAQv1wAEL9kABC/cAAQv3gAEL+EABC/iAAQv4wAEL+QABC/lAAQv5wAEL+kABC/qAAQv6wAEL+0ABC/uAAQwBwAEMAgABDAJAAQwCwAEMIYABDCIAAQwigAEMIwABDCPAAQwkAAEMJEABDCSAAQwkwAEMJUABDCXAAQwmAAEMJkABDCbAAQwnAAEMRcABDEZAAQxGwAEMR0ABDEgAAQxIQAEMSIABDEjAAQxJAAEMSYABDEoAAQxKQAEMSoABDEsAAQxLQAEMagABDGqAAQxrAAEMa4ABDGxAAQxsgAEMbMABDG0AAQxtQAEMbcABDG5AAQxugAEMbsABDG9AAQxvgAEMjkABDI7AAQyPQAEMj8ABDJCAAQyQwAEMkQABDJFAAQyRgAEMkgABDJKAAQySwAEMkwABDJOAAQyTwAEMsoABDLMAAQyzgAEMtAABDLTAAQy1AAEMtUABDLWAAQy1wAEMtkABDLbAAQy3AAEMt0ABDLfAAQy4AAEMykABDNNAAQzdAAEM5gABDObAAQznQAEM58ABDOhAAQzowAEM6UABDOmAAQzqQAEM8IABDPfAAQz4QAEM+MABDPlAAQz5wAEM+kABDPrAAQz7QAENAoABDQNAAQ0EAAENBMABDQWAAQ0GQAENBwABDQfAAQ0IQAENJwABDSeAAQ0oAAENKIABDSlAAQ0pgAENKcABDSoAAQ0qQAENKsABDStAAQ0rgAENK8ABDSxAAQ0sgAENS0ABDUvAAQ1MQAENTMABDU2AAQ1NwAENTgABDU5AAQ1OgAENTwABDU+AAQ1PwAENUAABDVCAAQ1QwAENb4ABDXAAAQ1wgAENcQABDXHAAQ1yAAENckABDXKAAQ1ywAENc0ABDXPAAQ10AAENdEABDXTAAQ11AAENk8ABDZRAAQ2UwAENlUABDZYAAQ2WQAENloABDZbAAQ2XAAENl4ABDZgAAQ2YQAENmIABDZkAAQ2ZQAENuAABDbiAAQ25AAENuYABDbpAAQ26gAENusABDbsAAQ27QAENu8ABDbxAAQ28gAENvMABDb1AAQ29gAEN3EABDdzAAQ3dgAEN3gABDd7AAQ3fAAEN30ABDd+AAQ3fwAEN4EABDeDAAQ3hAAEN4UABDeHAAQ3iAAEN5cABDgSAAQ4FAAEOBYABDgYAAQ4GwAEOBwABDgdAAQ4HgAEOB8ABDghAAQ4IwAEOCQABDglAAQ4JwAEOCgABDi7AAQ43gAEOP4ABDkeAAQ5IAAEOSIABDkkAAQ5JgAEOSkABDkqAAQ5KwAEOS4ABDkvAAQ5MQAEOTIABDk1AAQ5OAAEOTkABDk6AAQ5PQAEOT4ABDlDAAQ5XAAEOWUABDlnAAQ5agAEOXMABDl2AAQ5eQAEOXsABDnEAAQ56AAEOg8ABDozAAQ6NgAEOjgABDo6AAQ6PAAEOj4ABDpAAAQ6QQAEOkQABDpdAAQ6fgAEOoAABDqCAAQ6hAAEOoYABDqIAAQ6igAEOowABDqOAAQ6rwAEOrIABDq1AAQ6uAAEOrsABDq+AAQ6wQAEOsQABDrHAAQ6yQAEO0QABDtGAAQ7SAAEO0oABDtNAAQ7TgAEO08ABDtQAAQ7UQAEO1MABDtVAAQ7VgAEO1cABDtZAAQ7WgAEO9UABDvXAAQ72QAEO9sABDveAAQ73wAEO+AABDvhAAQ74gAEO+QABDvmAAQ75wAEO+gABDvqAAQ76wAEPGYABDxoAAQ8awAEPG0ABDxwAAQ8cQAEPHIABDxzAAQ8dAAEPHYABDx4AAQ8eQAEPHoABDx8AAQ8fQAEPJYABDyXAAQ8mAAEPJoABD0VAAQ9FwAEPRkABD0bAAQ9HgAEPR8ABD0gAAQ9IQAEPSIABD0kAAQ9JgAEPScABD0oAAQ9KgAEPSsABD2mAAQ9qAAEPaoABD2sAAQ9rwAEPbAABD2xAAQ9sgAEPbMABD21AAQ9twAEPbgABD25AAQ9uwAEPbwABD43AAQ+OQAEPjsABD49AAQ+QAAEPkEABD5CAAQ+QwAEPkQABD5GAAQ+SAAEPkkABD5KAAQ+TAAEPk0ABD7IAAQ+ygAEPswABD7OAAQ+0QAEPtIABD7TAAQ+1AAEPtUABD7XAAQ+2QAEPtoABD7bAAQ+3QAEPt4ABD9ZAAQ/WwAEP10ABD9fAAQ/YgAEP2MABD9kAAQ/ZQAEP2YABD9oAAQ/agAEP2sABD9sAAQ/bgAEP28ABD+4AAQ/3AAEQAMABEAnAARAKgAEQC0ABEAvAARAMQAEQDMABEA1AARANgAEQDkABEBSAARAbwAEQHIABEB1AARAeAAEQHsABEB+AARAgQAEQIQABEChAARApAAEQKcABECqAARArQAEQLAABECzAARAtgAEQLgABEEzAARBNQAEQTgABEE6AARBPQAEQT4ABEE/AARBQAAEQUEABEFDAARBRgAEQUcABEFIAARBSgAEQUsABEHGAARByAAEQcsABEHNAARB0AAEQdEABEHSAARB0wAEQdQABEHWAARB2QAEQdoABEHbAARB3QAEQd4ABEJZAARCWwAEQl4ABEJgAARCYwAEQmQABEJlAARCZgAEQmcABEJpAARCbAAEQm0ABEJuAARCcAAEQnEABELsAARC7gAEQvEABELzAARC9gAEQvcABEL4AARC+QAEQvoABEL8AARC/wAEQwAABEMBAARDAwAEQwQABEOHAARDqwAEQ88ABEPyAAREGQAERDkABERgAAREhwAERKcABETLAARE7wAERPEABET0AARE9gAERPgABET6AARE/QAERQAABEUCAARFBAAERQcABEUJAARFCwAERQ4ABEURAARFEgAERRcABEUwAARFNQAERTcABEU8AARFPwAERUEABEWKAARFrgAERdUABEX5AARF/AAERf4ABEYAAARGAgAERgQABEYGAARGBwAERgoABEYjAARGSAAERkoABEZMAARGTgAERlAABEZSAARGVAAERlYABEZYAARGWgAERn8ABEaCAARGhQAERogABEaLAARGjgAERpEABEaUAARGlwAERpoABEacAARHFwAERxkABEccAARHHgAERyEABEciAARHIwAERyQABEclAARHJwAERykABEcqAARHKwAERy0ABEcuAARHPwAER0AABEdCAARHvQAER78ABEfBAARHwwAER8YABEfHAARHyAAER8kABEfKAARHzAAER84ABEfPAARH0AAER9IABEfTAARITgAESFAABEhTAARIVQAESFgABEhZAARIWgAESFsABEhcAARIXgAESGAABEhhAARIYgAESGQABEhlAARIdgAESHcABEh5AARI9AAESPYABEj4AARI+gAESP0ABEj+AARI/wAESQAABEkBAARJAwAESQUABEkGAARJBwAESQkABEkKAARJhQAESYcABEmKAARJjAAESY8ABEmQAARJkQAESZIABEmTAARJlQAESZcABEmYAARJmQAESZsABEmcAARJrQAESa4ABEmwAARKKwAESi0ABEovAARKMQAESjQABEo1AARKNgAESjcABEo4AARKOgAESjwABEo9AARKPgAESkAABEpBAARKvAAESr4ABErBAARKwwAESsYABErHAARKyAAESskABErKAARKzAAESs4ABErPAARK0AAEStIABErTAARK7AAESu0ABEruAARK8AAES2sABEttAARLbwAES3EABEt0AARLdQAES3YABEt3AARLeAAES3oABEt8AARLfQAES34ABEuAAARLgQAES/wABEv+AARMAQAETAMABEwGAARMBwAETAgABEwJAARMCgAETAwABEwOAARMDwAETBAABEwSAARMEwAETCUABEw+AARMgQAETIQABEyHAARMigAETI0ABEyQAARMkwAETJYABEyZAARMnAAETJ8ABEyiAARMpQAETKgABEyrAARMrgAETLEABEz0AARM9wAETPoABEz9AARNAAAETQMABE0GAARNCQAETQwABE0PAARNEgAETRUABE0YAARNGwAETR4ABE0hAARNJAAETSYABE1YAARNdAAETYwABE2aAARNogAETbUABE3DAARN3gAETfYABE4BAAROHAAETjEABE5KAAROVgAETm8ABE59AARPEAAETzMABE9TAARPcwAET3UABE93AARPeQAET3sABE9+AARPfwAET4AABE+DAARPhAAET4YABE+HAARPiQAET4wABE+NAARPjgAET5EABE+SAARPlwAET7AABE+5AARPuwAET70ABE/GAARPyQAET8wABE/OAARQFwAEUDsABFBiAARQhgAEUIkABFCLAARQjQAEUI8ABFCRAARQkwAEUJQABFCXAARQsAAEUNEABFDTAARQ1QAEUNcABFDZAARQ2wAEUN0ABFDfAARQ4QAEUQIABFEFAARRCAAEUQsABFEOAARREQAEURQABFEXAARRGgAEURwABFGXAARRmQAEUZsABFGdAARRoAAEUaEABFGiAARRowAEUaQABFGmAARRqAAEUakABFGqAARRrAAEUa0ABFIoAARSKgAEUiwABFIuAARSMQAEUjIABFIzAARSNAAEUjUABFI3AARSOQAEUjoABFI7AARSPQAEUj4ABFK5AARSuwAEUr4ABFLAAARSwwAEUsQABFLFAARSxgAEUscABFLJAARSywAEUswABFLNAARSzwAEUtAABFLpAARS6gAEUusABFLtAARTaAAEU2oABFNsAARTbgAEU3EABFNyAARTcwAEU3QABFN1AARTdwAEU3kABFN6AARTewAEU30ABFN+AART+QAEU/sABFP9AART/wAEVAIABFQDAARUBAAEVAUABFQGAARUCAAEVAoABFQLAARUDAAEVA4ABFQPAARUigAEVIwABFSOAARUkAAEVJMABFSUAARUlQAEVJYABFSXAARUmQAEVJsABFScAARUnQAEVJ8ABFSgAARVGwAEVR0ABFUfAARVIQAEVSQABFUlAARVJgAEVScABFUoAARVKgAEVSwABFUtAARVLgAEVTAABFUxAARVrAAEVa4ABFWwAARVsgAEVbUABFW2AARVtwAEVbgABFW5AARVuwAEVb0ABFW+AARVvwAEVcEABFXCAARWCwAEVi8ABFZWAARWegAEVn0ABFZ/AARWgQAEVoMABFaFAARWhwAEVogABFaLAARWpAAEVsEABFbDAARWxQAEVscABFbJAARWywAEVs0ABFbPAARW7AAEVu8ABFbyAARW9QAEVvgABFb7AARW/gAEVwEABFcDAARXfgAEV4AABFeCAARXhAAEV4cABFeIAARXiQAEV4oABFeLAARXjQAEV48ABFeQAARXkQAEV5MABFeUAARYDwAEWBEABFgTAARYFQAEWBgABFgZAARYGgAEWBsABFgcAARYHgAEWCAABFghAARYIgAEWCQABFglAARYoAAEWKIABFikAARYpgAEWKkABFiqAARYqwAEWKwABFitAARYrwAEWLEABFiyAARYswAEWLUABFi2AARZMQAEWTMABFk2AARZOAAEWTsABFk8AARZPQAEWT4ABFk/AARZQQAEWUMABFlEAARZRQAEWUcABFlIAARZwwAEWcUABFnHAARZyQAEWcwABFnNAARZzgAEWc8ABFnQAARZ0gAEWdQABFnVAARZ1gAEWdgABFnZAARaVAAEWlYABFpYAARaWgAEWl0ABFpeAARaXwAEWmAABFphAARaYwAEWmUABFpmAARaZwAEWmkABFpqAARa5QAEWucABFrpAARa6wAEWu4ABFrvAARa8AAEWvEABFryAARa9AAEWvYABFr3AARa+AAEWvoABFr7AARbjgAEW7EABFvRAARb8QAEW/MABFv1AARb9wAEW/kABFv8AARb/QAEW/4ABFwBAARcAgAEXAQABFwFAARcBwAEXAoABFwLAARcDAAEXA8ABFwQAARcFQAEXC4ABFw3AARcOQAEXDsABFxEAARcRwAEXEoABFxMAARclQAEXLkABFzgAARdBAAEXQcABF0JAARdCwAEXQ0ABF0PAARdEQAEXRIABF0VAARdLgAEXU8ABF1RAARdUwAEXVUABF1XAARdWQAEXVsABF1dAARdXwAEXYAABF2DAARdhgAEXYkABF2MAARdjwAEXZIABF2VAARdmAAEXZoABF4VAAReFwAEXhkABF4bAAReHgAEXh8ABF4gAAReIQAEXiIABF4kAAReJgAEXicABF4oAAReKgAEXisABF6mAAReqAAEXqoABF6sAARerwAEXrAABF6xAAResgAEXrMABF61AARetwAEXrgABF65AAReuwAEXrwABF83AARfOQAEXzwABF8+AARfQQAEX0IABF9DAARfRAAEX0UABF9HAARfSQAEX0oABF9LAARfTQAEX04ABF9nAARfaAAEX2kABF9rAARf5gAEX+gABF/qAARf7AAEX+8ABF/wAARf8QAEX/IABF/zAARf9QAEX/cABF/4AARf+QAEX/sABF/8AARgdwAEYHkABGB7AARgfQAEYIAABGCBAARgggAEYIMABGCEAARghgAEYIgABGCJAARgigAEYIwABGCNAARhCAAEYQoABGEMAARhDgAEYREABGESAARhEwAEYRQABGEVAARhFwAEYRkABGEaAARhGwAEYR0ABGEeAARhmQAEYZsABGGdAARhnwAEYaIABGGjAARhpAAEYaUABGGmAARhqAAEYaoABGGrAARhrAAEYa4ABGGvAARiKgAEYiwABGIuAARiMAAEYjMABGI0AARiNQAEYjYABGI3AARiOQAEYjsABGI8AARiPQAEYj8ABGJAAARiiQAEYq0ABGLUAARi+AAEYvsABGL9AARi/wAEYwEABGMDAARjBQAEYwYABGMJAARjIgAEYz8ABGNBAARjQwAEY0UABGNHAARjSQAEY0sABGNNAARjagAEY20ABGNwAARjcwAEY3YABGN5AARjfAAEY38ABGOBAARj/AAEY/4ABGQBAARkAwAEZAYABGQHAARkCAAEZAkABGQKAARkDAAEZA4ABGQPAARkEAAEZBIABGQTAARkjgAEZJAABGSSAARklAAEZJcABGSYAARkmQAEZJoABGSbAARknQAEZJ8ABGSgAARkoQAEZKMABGSkAARlHwAEZSEABGUjAARlJQAEZSgABGUpAARlKgAEZSsABGUsAARlLgAEZTAABGUxAARlMgAEZTQABGU1AARlsAAEZbIABGW1AARltwAEZboABGW7AARlvAAEZb0ABGW+AARlwAAEZcIABGXDAARlxAAEZcYABGXHAARmQgAEZkQABGZGAARmSAAEZksABGZMAARmTQAEZk4ABGZPAARmUQAEZlMABGZUAARmVQAEZlcABGZYAARm0wAEZtUABGbXAARm2QAEZtwABGbdAARm3gAEZt8ABGbgAARm4gAEZuQABGblAARm5gAEZugABGbpAARnZAAEZ2YABGdoAARnagAEZ20ABGduAARnbwAEZ3AABGdxAARncwAEZ3UABGd2AARndwAEZ3kABGd6AARoDQAEaDAABGhQAARocAAEaHIABGh0AARodgAEaHgABGh7AARofAAEaH0ABGiAAARogQAEaIMABGiEAARohgAEaIkABGiKAARoiwAEaI4ABGiPAARolAAEaK0ABGi2AARouAAEaLoABGjDAARoxgAEaMkABGjLAARpFAAEaTgABGlfAARpgwAEaYYABGmIAARpigAEaYwABGmOAARpkAAEaZEABGmUAARprQAEac4ABGnQAARp0gAEadQABGnWAARp2AAEadoABGncAARp3gAEaf8ABGoCAARqBQAEaggABGoLAARqDgAEahEABGoUAARqFwAEahkABGqUAARqlgAEapgABGqaAARqnQAEap4ABGqfAARqoAAEaqEABGqjAARqpQAEaqYABGqnAARqqQAEaqoABGslAARrJwAEaykABGsrAARrLgAEay8ABGswAARrMQAEazIABGs0AARrNgAEazcABGs4AARrOgAEazsABGu2AARruAAEa7sABGu9AARrwAAEa8EABGvCAARrwwAEa8QABGvGAARryAAEa8kABGvKAARrzAAEa80ABGvmAARr5wAEa+gABGvqAARsZQAEbGcABGxpAARsawAEbG4ABGxvAARscAAEbHEABGxyAARsdAAEbHYABGx3AARseAAEbHoABGx7AARs9gAEbPgABGz6AARs/AAEbP8ABG0AAARtAQAEbQIABG0DAARtBQAEbQcABG0IAARtCQAEbQsABG0MAARthwAEbYkABG2LAARtjQAEbZAABG2RAARtkgAEbZMABG2UAARtlgAEbZgABG2ZAARtmgAEbZwABG2dAARuGAAEbhoABG4cAARuHgAEbiEABG4iAARuIwAEbiQABG4lAARuJwAEbikABG4qAARuKwAEbi0ABG4uAARuqQAEbqsABG6tAARurwAEbrIABG6zAARutAAEbrUABG62AARuuAAEbroABG67AARuvAAEbr4ABG6/AARvCAAEbywABG9TAARvdwAEb3oABG98AARvfgAEb4AABG+CAARvhAAEb4UABG+IAARvoQAEb74ABG/AAARvwgAEb8QABG/GAARvyAAEb8oABG/MAARv6QAEb+wABG/vAARv8gAEb/UABG/4AARv+wAEb/4ABHAAAARwewAEcH0ABHB/AARwgQAEcIQABHCFAARwhgAEcIcABHCIAARwigAEcIwABHCNAARwjgAEcJAABHCRAARxDAAEcQ4ABHEQAARxEgAEcRUABHEWAARxFwAEcRgABHEZAARxGwAEcR0ABHEeAARxHwAEcSEABHEiAARxnQAEcZ8ABHGhAARxowAEcaYABHGnAARxqAAEcakABHGqAARxrAAEca4ABHGvAARxsAAEcbIABHGzAARyLgAEcjAABHIzAARyNQAEcjgABHI5AARyOgAEcjsABHI8AARyPgAEckAABHJBAARyQgAEckQABHJFAARywAAEcsIABHLEAARyxgAEcskABHLKAARyywAEcswABHLNAARyzwAEctEABHLSAARy0wAEctUABHLWAARzUQAEc1MABHNVAARzVwAEc1oABHNbAARzXAAEc10ABHNeAARzYAAEc2IABHNjAARzZAAEc2YABHNnAARz4gAEc+QABHPmAARz6AAEc+sABHPsAARz7QAEc+4ABHPvAARz8QAEc/MABHP0AARz9QAEc/cABHP4AAR0iwAEdK4ABHTOAAR07gAEdPAABHTyAAR09AAEdPYABHT5AAR0+gAEdPsABHT+AAR0/wAEdQEABHUCAAR1BAAEdQcABHUIAAR1CQAEdQwABHUNAAR1EgAEdSsABHU0AAR1NgAEdTgABHVBAAR1RAAEdUcABHVJAAR1kgAEdbYABHXdAAR2AQAEdgQABHYGAAR2CAAEdgoABHYMAAR2DgAEdg8ABHYSAAR2KwAEdkwABHZOAAR2UAAEdlIABHZUAAR2VgAEdlgABHZaAAR2XAAEdn0ABHaAAAR2gwAEdoYABHaJAAR2jAAEdo8ABHaSAAR2lQAEdpcABHcSAAR3FAAEdxYABHcYAAR3GwAEdxwABHcdAAR3HgAEdx8ABHchAAR3IwAEdyQABHclAAR3JwAEdygABHejAAR3pQAEd6cABHepAAR3rAAEd60ABHeuAAR3rwAEd7AABHeyAAR3tAAEd7UABHe2AAR3uAAEd7kABHg0AAR4NgAEeDkABHg7AAR4PgAEeD8ABHhAAAR4QQAEeEIABHhEAAR4RgAEeEcABHhIAAR4SgAEeEsABHhkAAR4ZQAEeGYABHhoAAR44wAEeOUABHjnAAR46QAEeOwABHjtAAR47gAEeO8ABHjwAAR48gAEePQABHj1AAR49gAEePgABHj5AAR5dAAEeXYABHl4AAR5egAEeX0ABHl+AAR5fwAEeYAABHmBAAR5gwAEeYUABHmGAAR5hwAEeYkABHmKAAR6BQAEegcABHoJAAR6CwAEeg4ABHoPAAR6EAAEehEABHoSAAR6FAAEehYABHoXAAR6GAAEehoABHobAAR6lgAEepgABHqaAAR6nAAEep8ABHqgAAR6oQAEeqIABHqjAAR6pQAEeqcABHqoAAR6qQAEeqsABHqsAAR7JwAEeykABHsrAAR7LQAEezAABHsxAAR7MgAEezMABHs0AAR7NgAEezgABHs5AAR7OgAEezwABHs9AAR7hgAEe6oABHvRAAR79QAEe/gABHv6AAR7/AAEe/4ABHwAAAR8AgAEfAMABHwGAAR8HwAEfDwABHw+AAR8QAAEfEIABHxEAAR8RgAEfEgABHxKAAR8ZwAEfGoABHxtAAR8cAAEfHMABHx2AAR8eQAEfHwABHx+AAR8+QAEfPsABHz9AAR8/wAEfQIABH0DAAR9BAAEfQUABH0GAAR9CAAEfQoABH0LAAR9DAAEfQ4ABH0PAAR9igAEfYwABH2OAAR9kAAEfZMABH2UAAR9lQAEfZYABH2XAAR9mQAEfZsABH2cAAR9nQAEfZ8ABH2gAAR+GwAEfh0ABH4fAAR+IQAEfiQABH4lAAR+JgAEficABH4oAAR+KgAEfiwABH4tAAR+LgAEfjAABH4xAAR+rAAEfq4ABH6xAAR+swAEfrYABH63AAR+uAAEfrkABH66AAR+vAAEfr4ABH6/AAR+wAAEfsIABH7DAAR+xgAEf0EABH9DAAR/RQAEf0cABH9KAAR/SwAEf0wABH9NAAR/TgAEf1AABH9SAAR/UwAEf1QABH9WAAR/VwAEf9IABH/UAAR/1gAEf9gABH/bAAR/3AAEf90ABH/eAAR/3wAEf+EABH/jAAR/5AAEf+UABH/nAAR/6AAEgGMABIBlAASAZwAEgGkABIBsAASAbQAEgG4ABIBvAASAcAAEgHIABIB0AASAdQAEgHYABIB4AASAeQAEgQwABIEvAASBTwAEgW8ABIFxAASBcwAEgXUABIF3AASBegAEgXsABIF8AASBfwAEgYAABIGCAASBgwAEgYYABIGJAASBigAEgYsABIGOAASBjwAEgZQABIGtAASBtgAEgbgABIG7AASBxAAEgccABIHKAASBzAAEghUABII5AASCYAAEgoQABIKHAASCiQAEgosABIKNAASCjwAEgpEABIKSAASClQAEgq4ABILPAASC0QAEgtMABILVAASC1wAEgtkABILbAASC3QAEgt8ABIMAAASDAwAEgwYABIMJAASDDAAEgw8ABIMSAASDFQAEgxgABIMaAASDlQAEg5cABIOZAASDmwAEg54ABIOfAASDoAAEg6EABIOiAASDpAAEg6YABIOnAASDqAAEg6oABIOrAASEJgAEhCgABIQqAASELAAEhC8ABIQwAASEMQAEhDIABIQzAASENQAEhDcABIQ4AASEOQAEhDsABIQ8AASEtwAEhLkABIS8AASEvgAEhMEABITCAASEwwAEhMQABITFAASExwAEhMkABITKAASEywAEhM0ABITOAASE5wAEhOgABITpAASE6wAEhWYABIVoAASFagAEhWwABIVvAASFcAAEhXEABIVyAASFcwAEhXUABIV3AASFeAAEhXkABIV7AASFfAAEhfcABIX5AASF+wAEhf0ABIYAAASGAQAEhgIABIYDAASGBAAEhgYABIYIAASGCQAEhgoABIYMAASGDQAEhogABIaKAASGjAAEho4ABIaRAASGkgAEhpMABIaUAASGlQAEhpcABIaZAASGmgAEhpsABIadAASGngAEhxkABIcbAASHHQAEhx8ABIciAASHIwAEhyQABIclAASHJgAEhygABIcqAASHKwAEhywABIcuAASHLwAEh6oABIesAASHrgAEh7AABIezAASHtAAEh7UABIe2AASHtwAEh7kABIe7AASHvAAEh70ABIe/AASHwAAEiAkABIgtAASIVAAEiHgABIh7AASIfgAEiIAABIiCAASIhAAEiIYABIiHAASIigAEiKMABIjAAASIwwAEiMYABIjJAASIzAAEiM8ABIjSAASI1QAEiPIABIj1AASI+AAEiPsABIj+AASJAQAEiQQABIkHAASJCQAEiYQABImGAASJiQAEiYsABImOAASJjwAEiZAABImRAASJkgAEiZQABImXAASJmAAEiZkABImbAASJnAAEihcABIoZAASKHAAEih4ABIohAASKIgAEiiMABIokAASKJQAEiicABIoqAASKKwAEiiwABIouAASKLwAEiqoABIqsAASKrwAEirEABIq0AASKtQAEirYABIq3AASKuAAEiroABIq9AASKvgAEir8ABIrBAASKwgAEiz0ABIs/AASLQgAEi0QABItHAASLSAAEi0kABItKAASLSwAEi00ABItQAASLUQAEi1IABItUAASLVQAEi9AABIvSAASL1AAEi9YABIvZAASL2gAEi9sABIvcAASL3QAEi98ABIviAASL4wAEi+QABIvmAASL5wAEjGIABIxkAASMZgAEjGgABIxrAASMbAAEjG0ABIxuAASMbwAEjHEABIx0AASMdQAEjHYABIx4AASMeQAEjPQABIz2AASM+QAEjPsABIz+AASM/wAEjQAABI0BAASNAgAEjQQABI0HAASNCAAEjQkABI0LAASNDAAEjZ8ABI3CAASN4gAEjgIABI4EAASOBgAEjggABI4KAASODQAEjg4ABI4PAASOEgAEjhMABI4VAASOFgAEjhkABI4cAASOHQAEjh4ABI4hAASOIgAEjicABI5AAASOSQAEjksABI5OAASOVwAEjloABI5dAASOXwAEjqgABI7MAASO8wAEjxcABI8aAASPHAAEjx4ABI8gAASPIgAEjyQABI8lAASPKAAEj0EABI9iAASPZAAEj2YABI9oAASPagAEj2wABI9uAASPcAAEj3IABI+TAASPlgAEj5kABI+cAASPnwAEj6IABI+lAASPqAAEj6sABI+tAASQKAAEkCoABJAsAASQLgAEkDEABJAyAASQMwAEkDQABJA1AASQNwAEkDkABJA6AASQOwAEkD0ABJA+AASQuQAEkLsABJC9AASQvwAEkMIABJDDAASQxAAEkMUABJDGAASQyAAEkMoABJDLAASQzAAEkM4ABJDPAASRSgAEkUwABJFPAASRUQAEkVQABJFVAASRVgAEkVcABJFYAASRWgAEkVwABJFdAASRXgAEkWAABJFhAASRegAEkXsABJF8AASRfgAEkfkABJH7AASR/QAEkf8ABJICAASSAwAEkgQABJIFAASSBgAEkggABJIKAASSCwAEkgwABJIOAASSDwAEkooABJKMAASSjgAEkpAABJKTAASSlAAEkpUABJKWAASSlwAEkpkABJKbAASSnAAEkp0ABJKfAASSoAAEkxsABJMdAASTHwAEkyEABJMkAASTJQAEkyYABJMnAASTKAAEkyoABJMsAASTLQAEky4ABJMwAASTMQAEk6wABJOuAASTsAAEk7IABJO1AASTtgAEk7cABJO4AASTuQAEk7sABJO9AASTvgAEk78ABJPBAASTwgAElD0ABJQ/AASUQQAElEMABJRGAASURwAElEgABJRJAASUSgAElEwABJROAASUTwAElFAABJRSAASUUwAElJwABJTAAASU5wAElQsABJUOAASVEQAElRMABJUVAASVFwAElRkABJUaAASVHQAElTYABJVTAASVVgAElVkABJVcAASVXwAElWIABJVlAASVaAAElYUABJWIAASViwAElY4ABJWRAASVlAAElZcABJWaAASVnAAElhcABJYZAASWHAAElh4ABJYhAASWIgAEliMABJYkAASWJQAElicABJYqAASWKwAEliwABJYuAASWLwAElqoABJasAASWrwAElrEABJa0AASWtQAElrYABJa3AASWuAAElroABJa9AASWvgAElr8ABJbBAASWwgAElz0ABJc/AASXQgAEl0QABJdHAASXSAAEl0kABJdKAASXSwAEl00ABJdQAASXUQAEl1IABJdUAASXVQAEl9AABJfSAASX1QAEl9cABJfaAASX2wAEl9wABJfdAASX3gAEl+AABJfjAASX5AAEl+UABJfnAASX6AAEmGsABJiPAASYswAEmNYABJj9AASZHQAEmUQABJlrAASZiwAEma8ABJnTAASZ1QAEmdgABJnaAASZ3AAEmd4ABJnhAASZ5AAEmeYABJnoAASZ6wAEme0ABJnvAASZ8gAEmfUABJn2AASZ+wAEmhQABJoZAASaGwAEmiAABJojAASaJQAEmm4ABJqSAASauQAEmt0ABJrgAASa4gAEmuQABJrmAASa6AAEmuoABJrrAASa7gAEmwcABJssAASbLgAEmzAABJsyAASbNAAEmzYABJs4AASbOgAEmzwABJs+AASbYwAEm2YABJtpAASbbAAEm28ABJtyAASbdQAEm3gABJt7AASbfgAEm4AABJv7AASb/QAEnAAABJwCAAScBQAEnAYABJwHAAScCAAEnAkABJwLAAScDQAEnA4ABJwPAAScEQAEnBIABJwjAAScJAAEnCYABJyhAAScowAEnKUABJynAAScqgAEnKsABJysAAScrQAEnK4ABJywAAScsgAEnLMABJy0AASctgAEnLcABJ0yAASdNAAEnTcABJ05AASdPAAEnT0ABJ0+AASdPwAEnUAABJ1CAASdRAAEnUUABJ1GAASdSAAEnUkABJ1aAASdWwAEnV0ABJ3YAASd2gAEndwABJ3eAASd4QAEneIABJ3jAASd5AAEneUABJ3nAASd6QAEneoABJ3rAASd7QAEne4ABJ5pAASeawAEnm4ABJ5wAASecwAEnnQABJ51AASedgAEnncABJ55AASeewAEnnwABJ59AASefwAEnoAABJ6RAASekgAEnpQABJ8PAASfEQAEnxMABJ8VAASfGAAEnxkABJ8aAASfGwAEnxwABJ8eAASfIAAEnyEABJ8iAASfJAAEnyUABJ+gAASfogAEn6UABJ+nAASfqgAEn6sABJ+sAASfrQAEn64ABJ+wAASfsgAEn7MABJ+0AASftgAEn7cABJ/QAASf0QAEn9IABJ/UAASgTwAEoFEABKBTAASgVQAEoFgABKBZAASgWgAEoFsABKBcAASgXgAEoGAABKBhAASgYgAEoGQABKBlAASg4AAEoOIABKDlAASg5wAEoOoABKDrAASg7AAEoO0ABKDuAASg8AAEoPIABKDzAASg9AAEoPYABKD3AAShDgAEoScABKE4AAShOwAEoT4ABKFBAAShRAAEoVUABKFYAAShWwAEoV4ABKFhAAShYwAEoXUABKGEAAShmQAEobAABKJDAASiZgAEooYABKKmAASiqAAEoqoABKKsAASirgAEorEABKKyAASiswAEorYABKK3AASiuQAEoroABKK9AASiwAAEosEABKLCAASixQAEosYABKLLAASi5AAEou0ABKLvAASi8gAEovsABKL+AASjAQAEowMABKNMAASjcAAEo5cABKO7AASjvgAEo8AABKPCAASjxAAEo8YABKPIAASjyQAEo8wABKPlAASkBgAEpAgABKQKAASkDAAEpA4ABKQQAASkEgAEpBQABKQWAASkNwAEpDoABKQ9AASkQAAEpEMABKRGAASkSQAEpEwABKRPAASkUQAEpMwABKTOAASk0AAEpNIABKTVAASk1gAEpNcABKTYAASk2QAEpNsABKTdAASk3gAEpN8ABKThAASk4gAEpV0ABKVfAASlYQAEpWMABKVmAASlZwAEpWgABKVpAASlagAEpWwABKVuAASlbwAEpXAABKVyAASlcwAEpe4ABKXwAASl8wAEpfUABKX4AASl+QAEpfoABKX7AASl/AAEpf4ABKYAAASmAQAEpgIABKYEAASmBQAEph4ABKYfAASmIAAEpiIABKadAASmnwAEpqEABKajAASmpgAEpqcABKaoAASmqQAEpqoABKasAASmrgAEpq8ABKawAASmsgAEprMABKcuAASnMAAEpzIABKc0AASnNwAEpzgABKc5AASnOgAEpzsABKc9AASnPwAEp0AABKdBAASnQwAEp0QABKe/AASnwQAEp8MABKfFAASnyAAEp8kABKfKAASnywAEp8wABKfOAASn0AAEp9EABKfSAASn1AAEp9UABKhQAASoUgAEqFQABKhWAASoWQAEqFoABKhbAASoXAAEqF0ABKhfAASoYQAEqGIABKhjAASoZQAEqGYABKjhAASo4wAEqOUABKjnAASo6gAEqOsABKjsAASo7QAEqO4ABKjwAASo8gAEqPMABKj0AASo9gAEqPcABKlAAASpZAAEqYsABKmvAASpsgAEqbUABKm3AASpuQAEqbsABKm9AASpvgAEqcEABKnaAASp9wAEqfoABKn9AASqAAAEqgMABKoGAASqCQAEqgwABKopAASqLAAEqi8ABKoyAASqNQAEqjgABKo7AASqPgAEqkAABKq7AASqvQAEqsAABKrCAASqxQAEqsYABKrHAASqyAAEqskABKrLAASqzgAEqs8ABKrQAASq0gAEqtMABKtOAASrUAAEq1MABKtVAASrWAAEq1kABKtaAASrWwAEq1wABKteAASrYQAEq2IABKtjAASrZQAEq2YABKvhAASr4wAEq+YABKvoAASr6wAEq+wABKvtAASr7gAEq+8ABKvxAASr9AAEq/UABKv2AASr+AAEq/kABKx0AASsdgAErHkABKx7AASsfgAErH8ABKyAAASsgQAErIIABKyEAASshwAErIgABKyJAASsiwAErIwABK0PAAStMwAErVcABK16AAStoQAErcEABK3oAASuDwAEri8ABK5TAASudwAErnkABK58AASufgAEroAABK6CAASuhQAErogABK6KAASujAAEro8ABK6RAASukwAErpYABK6ZAASumgAErp8ABK64AASuvQAErr8ABK7EAASuxwAErskABK8SAASvNgAEr10ABK+BAASvhAAEr4YABK+IAASvigAEr4wABK+OAASvjwAEr5IABK+rAASv0AAEr9IABK/UAASv1gAEr9gABK/aAASv3AAEr94ABK/gAASv4gAEsAcABLAKAASwDQAEsBAABLATAASwFgAEsBkABLAcAASwHwAEsCIABLAkAASwnwAEsKEABLCkAASwpgAEsKkABLCqAASwqwAEsKwABLCtAASwrwAEsLEABLCyAASwswAEsLUABLC2AASwxwAEsMgABLDKAASxRQAEsUcABLFJAASxSwAEsU4ABLFPAASxUAAEsVEABLFSAASxVAAEsVYABLFXAASxWAAEsVoABLFbAASx1gAEsdgABLHbAASx3QAEseAABLHhAASx4gAEseMABLHkAASx5gAEsegABLHpAASx6gAEsewABLHtAASx/gAEsgMABLIGAASyCAAEshkABLIqAASyLQAEsjAABLIzAASyNgAEsjgABLJTAASyXwAEsmsABLJ4AASy8wAEsvUABLL3AASy+QAEsvwABLL9AASy/gAEsv8ABLMAAASzAgAEswQABLMFAASzBgAEswgABLMJAASzhAAEs4YABLOJAASziwAEs44ABLOPAASzkAAEs5EABLOSAASzlAAEs5YABLOXAASzmAAEs5oABLObAASzrAAEs60ABLOvAAS0KgAEtCwABLQuAAS0MAAEtDMABLQ0AAS0NQAEtDYABLQ3AAS0OQAEtDsABLQ8AAS0PQAEtD8ABLRAAAS0uwAEtL0ABLTAAAS0wgAEtMUABLTGAAS0xwAEtMgABLTJAAS0ywAEtM0ABLTOAAS0zwAEtNEABLTSAAS06wAEtOwABLTtAAS07wAEtWoABLVsAAS1bgAEtXAABLVzAAS1dAAEtXUABLV2AAS1dwAEtXkABLV7AAS1fAAEtX0ABLV/AAS1gAAEtfsABLX9AAS2AAAEtgIABLYFAAS2BgAEtgcABLYIAAS2CQAEtgsABLYNAAS2DgAEtg8ABLYRAAS2EgAEtiEABLY6AAS2jQAEtpAABLaTAAS2lgAEtpkABLacAAS2nwAEtqIABLalAAS2qAAEtqsABLauAAS2sQAEtrQABLa3AAS2ugAEtr0ABLbAAAS2wwAEtsYABLbJAAS3HAAEtx8ABLciAAS3JQAEtygABLcrAAS3LgAEtzEABLc0AAS3NwAEtzoABLc9AAS3QAAEt0MABLdGAAS3SQAEt0wABLdPAAS3UgAEt1UABLdYAAS3WgAEt2wABLeBAAS3iAAEt5wABLe9AAS30QAEt+UABLgEAAS4EQAEuCMABLgvAAS4XQAEuGoABLiFAAS4oAAEuK0ABLjAAAS4zAAEuOIABLj8AAS5jwAEubIABLnSAAS58gAEufQABLn2AAS5+AAEufoABLn9AAS5/gAEuf8ABLoCAAS6AwAEugUABLoGAAS6CQAEugwABLoNAAS6DgAEuhEABLoSAAS6FwAEujAABLo5AAS6OwAEuj4ABLpHAAS6SgAEuk0ABLpPAAS6mAAEurwABLrjAAS7BwAEuwoABLsMAAS7DgAEuxAABLsSAAS7FAAEuxUABLsYAAS7MQAEu1IABLtUAAS7VgAEu1gABLtaAAS7XAAEu14ABLtgAAS7YgAEu4MABLuGAAS7iQAEu4wABLuPAAS7kgAEu5UABLuYAAS7mwAEu50ABLwYAAS8GgAEvBwABLweAAS8IQAEvCIABLwjAAS8JAAEvCUABLwnAAS8KQAEvCoABLwrAAS8LQAEvC4ABLypAAS8qwAEvK0ABLyvAAS8sgAEvLMABLy0AAS8tQAEvLYABLy4AAS8ugAEvLsABLy8AAS8vgAEvL8ABL06AAS9PAAEvT8ABL1BAAS9RAAEvUUABL1GAAS9RwAEvUgABL1KAAS9TAAEvU0ABL1OAAS9UAAEvVEABL1qAAS9awAEvWwABL1uAAS96QAEvesABL3tAAS97wAEvfIABL3zAAS99AAEvfUABL32AAS9+AAEvfoABL37AAS9/AAEvf4ABL3/AAS+egAEvnwABL5+AAS+gAAEvoMABL6EAAS+hQAEvoYABL6HAAS+iQAEvosABL6MAAS+jQAEvo8ABL6QAAS/CwAEvw0ABL8PAAS/EQAEvxQABL8VAAS/FgAEvxcABL8YAAS/GgAEvxwABL8dAAS/HgAEvyAABL8hAAS/nAAEv54ABL+gAAS/ogAEv6UABL+mAAS/pwAEv6gABL+pAAS/qwAEv60ABL+uAAS/rwAEv7EABL+yAATALQAEwC8ABMAxAATAMwAEwDYABMA3AATAOAAEwDkABMA6AATAPAAEwD4ABMA/AATAQAAEwEIABMBDAATAjAAEwLAABMDXAATA+wAEwP4ABMEBAATBAwAEwQUABMEHAATBCQAEwQoABMENAATBJgAEwUMABMFGAATBSQAEwUwABMFPAATBUgAEwVUABMFYAATBdQAEwXgABMF7AATBfgAEwYEABMGEAATBhwAEwYoABMGMAATCBwAEwgkABMIMAATCDgAEwhEABMISAATCEwAEwhQABMIVAATCFwAEwhoABMIbAATCHAAEwh4ABMIfAATCmgAEwpwABMKfAATCoQAEwqQABMKlAATCpgAEwqcABMKoAATCqgAEwq0ABMKuAATCrwAEwrEABMKyAATDLQAEwy8ABMMyAATDNAAEwzcABMM4AATDOQAEwzoABMM7AATDPQAEw0AABMNBAATDQgAEw0QABMNFAATDwAAEw8IABMPFAATDxwAEw8oABMPLAATDzAAEw80ABMPOAATD0AAEw9MABMPUAATD1QAEw9cABMPYAATEUwAExFUABMRXAATEWQAExFwABMRdAATEXgAExF8ABMRgAATEYgAExGUABMRmAATEZwAExGkABMRqAATE5QAExOcABMTpAATE6wAExO4ABMTvAATE8AAExPEABMTyAATE9AAExPcABMT4AATE+QAExPsABMT8AATFdwAExXkABMV8AATFfgAExYEABMWCAATFgwAExYQABMWFAATFhwAExYoABMWLAATFjAAExY4ABMWPAATGIgAExkUABMZlAATGhQAExocABMaJAATGiwAExo0ABMaQAATGkQAExpIABMaVAATGlgAExpgABMaZAATGmwAExp4ABMafAATGoAAExqMABMakAATGqQAExsIABMbLAATGzQAExs8ABMbYAATG2wAExt4ABMbgAATHKQAEx00ABMd0AATHmAAEx5sABMedAATHnwAEx6EABMejAATHpQAEx6YABMepAATHwgAEx+MABMflAATH5wAEx+kABMfrAATH7QAEx+8ABMfxAATH8wAEyBQABMgXAATIGgAEyB0ABMggAATIIwAEyCYABMgpAATILAAEyC4ABMipAATIqwAEyK0ABMivAATIsgAEyLMABMi0AATItQAEyLYABMi4AATIugAEyLsABMi8AATIvgAEyL8ABMk6AATJPAAEyT4ABMlAAATJQwAEyUQABMlFAATJRgAEyUcABMlJAATJSwAEyUwABMlNAATJTwAEyVAABMnLAATJzQAEydAABMnSAATJ1QAEydYABMnXAATJ2AAEydkABMnbAATJ3QAEyd4ABMnfAATJ4QAEyeIABMn7AATJ/AAEyf0ABMn/AATKegAEynwABMp+AATKgAAEyoMABMqEAATKhQAEyoYABMqHAATKiQAEyosABMqMAATKjQAEyo8ABMqQAATLCwAEyw0ABMsPAATLEQAEyxQABMsVAATLFgAEyxcABMsYAATLGgAEyxwABMsdAATLHgAEyyAABMshAATLnAAEy54ABMugAATLogAEy6UABMumAATLpwAEy6gABMupAATLqwAEy60ABMuuAATLrwAEy7EABMuyAATMLQAEzC8ABMwxAATMMwAEzDYABMw3AATMOAAEzDkABMw6AATMPAAEzD4ABMw/AATMQAAEzEIABMxDAATMvgAEzMAABMzCAATMxAAEzMcABMzIAATMyQAEzMoABMzLAATMzQAEzM8ABMzQAATM0QAEzNMABMzUAATNHQAEzUEABM1oAATNjAAEzY8ABM2RAATNkwAEzZUABM2XAATNmQAEzZoABM2dAATNtgAEzdMABM3VAATN1wAEzdkABM3bAATN3QAEzd8ABM3hAATN/gAEzgEABM4EAATOBwAEzgoABM4NAATOEAAEzhMABM4VAATOkAAEzpIABM6UAATOlgAEzpkABM6aAATOmwAEzpwABM6dAATOnwAEzqEABM6iAATOowAEzqUABM6mAATPIQAEzyMABM8lAATPJwAEzyoABM8rAATPLAAEzy0ABM8uAATPMAAEzzIABM8zAATPNAAEzzYABM83AATPsgAEz7QABM+2AATPuAAEz7sABM+8AATPvQAEz74ABM+/AATPwQAEz8MABM/EAATPxQAEz8cABM/IAATQQwAE0EUABNBIAATQSgAE0E0ABNBOAATQTwAE0FAABNBRAATQUwAE0FUABNBWAATQVwAE0FkABNBaAATQ1QAE0NcABNDZAATQ2wAE0N4ABNDfAATQ4AAE0OEABNDiAATQ5AAE0OYABNDnAATQ6AAE0OoABNDrAATRZgAE0WgABNFqAATRbAAE0W8ABNFwAATRcQAE0XIABNFzAATRdQAE0XcABNF4AATReQAE0XsABNF8AATR9wAE0fkABNH7AATR/QAE0gAABNIBAATSAgAE0gMABNIEAATSBgAE0ggABNIJAATSCgAE0gwABNINAATSoAAE0sMABNLjAATTAwAE0wUABNMHAATTCQAE0wsABNMOAATTDwAE0xAABNMTAATTFAAE0xYABNMXAATTGQAE0xwABNMdAATTHgAE0yEABNMiAATTJwAE00AABNNJAATTSwAE000ABNNWAATTWQAE01wABNNeAATTpwAE08sABNPyAATUFgAE1BkABNQbAATUHQAE1B8ABNQhAATUIwAE1CQABNQnAATUQAAE1GEABNRjAATUZQAE1GcABNRpAATUawAE1G0ABNRvAATUcQAE1JIABNSVAATUmAAE1JsABNSeAATUoQAE1KQABNSnAATUqgAE1KwABNUnAATVKQAE1SsABNUtAATVMAAE1TEABNUyAATVMwAE1TQABNU2AATVOAAE1TkABNU6AATVPAAE1T0ABNW4AATVugAE1bwABNW+AATVwQAE1cIABNXDAATVxAAE1cUABNXHAATVyQAE1coABNXLAATVzQAE1c4ABNZJAATWSwAE1k4ABNZQAATWUwAE1lQABNZVAATWVgAE1lcABNZZAATWWwAE1lwABNZdAATWXwAE1mAABNZ5AATWegAE1nsABNZ9AATW+AAE1voABNb8AATW/gAE1wEABNcCAATXAwAE1wQABNcFAATXBwAE1wkABNcKAATXCwAE1w0ABNcOAATXiQAE14sABNeNAATXjwAE15IABNeTAATXlAAE15UABNeWAATXmAAE15oABNebAATXnAAE154ABNefAATYGgAE2BwABNgeAATYIAAE2CMABNgkAATYJQAE2CYABNgnAATYKQAE2CsABNgsAATYLQAE2C8ABNgwAATYqwAE2K0ABNivAATYsQAE2LQABNi1AATYtgAE2LcABNi4AATYugAE2LwABNi9AATYvgAE2MAABNjBAATZPAAE2T4ABNlAAATZQgAE2UUABNlGAATZRwAE2UgABNlJAATZSwAE2U0ABNlOAATZTwAE2VEABNlSAATZmwAE2b8ABNnmAATaCgAE2g0ABNoPAATaEQAE2hMABNoVAATaFwAE2hgABNobAATaNAAE2lEABNpTAATaVQAE2lcABNpZAATaWwAE2l0ABNpfAATafAAE2n8ABNqCAATahQAE2ogABNqLAATajgAE2pEABNqTAATbDgAE2xAABNsTAATbFQAE2xgABNsZAATbGgAE2xsABNscAATbHgAE2yAABNshAATbIgAE2yQABNslAATbKQAE26QABNumAATbqAAE26oABNutAATbrgAE268ABNuwAATbsQAE27MABNu1AATbtgAE27cABNu5AATbugAE3DUABNw3AATcOQAE3DsABNw+AATcPwAE3EAABNxBAATcQgAE3EQABNxGAATcRwAE3EgABNxKAATcSwAE3MYABNzIAATcywAE3M0ABNzQAATc0QAE3NIABNzTAATc1AAE3NYABNzYAATc2QAE3NoABNzcAATc3QAE3VgABN1aAATdXAAE3V4ABN1hAATdYgAE3WMABN1kAATdZQAE3WcABN1pAATdagAE3WsABN1tAATdbgAE3ekABN3rAATd7QAE3e8ABN3yAATd8wAE3fQABN31AATd9gAE3fgABN36AATd+wAE3fwABN3+AATd/wAE3noABN58AATefgAE3oAABN6DAATehAAE3oUABN6GAATehwAE3okABN6LAATejAAE3o0ABN6PAATekAAE3yMABN9GAATfZgAE34YABN+IAATfigAE34wABN+OAATfkQAE35IABN+TAATflgAE35cABN+ZAATfmgAE350ABN+gAATfoQAE36IABN+lAATfpgAE36sABN/EAATfzQAE388ABN/SAATf2wAE394ABN/hAATf4wAE4CwABOBQAATgdwAE4JsABOCeAATgoAAE4KIABOCkAATgpgAE4KgABOCpAATgrAAE4MUABODmAATg6AAE4OoABODsAATg7gAE4PAABODyAATg9AAE4PYABOEXAAThGgAE4R0ABOEgAAThIwAE4SYABOEpAAThLAAE4S8ABOExAAThrAAE4a4ABOGwAAThsgAE4bUABOG2AAThtwAE4bgABOG5AAThuwAE4b0ABOG+AAThvwAE4cEABOHCAATiPQAE4j8ABOJBAATiQwAE4kYABOJHAATiSAAE4kkABOJKAATiTAAE4k4ABOJPAATiUAAE4lIABOJTAATizgAE4tAABOLTAATi1QAE4tgABOLZAATi2gAE4tsABOLcAATi3gAE4uAABOLhAATi4gAE4uQABOLlAATi/gAE4v8ABOMAAATjAgAE430ABON/AATjgQAE44MABOOGAATjhwAE44gABOOJAATjigAE44wABOOOAATjjwAE45AABOOSAATjkwAE5A4ABOQQAATkEgAE5BQABOQXAATkGAAE5BkABOQaAATkGwAE5B0ABOQfAATkIAAE5CEABOQjAATkJAAE5J8ABOShAATkowAE5KUABOSoAATkqQAE5KoABOSrAATkrAAE5K4ABOSwAATksQAE5LIABOS0AATktQAE5TAABOUyAATlNAAE5TYABOU5AATlOgAE5TsABOU8AATlPQAE5T8ABOVBAATlQgAE5UMABOVFAATlRgAE5cEABOXDAATlxQAE5ccABOXKAATlywAE5cwABOXNAATlzgAE5dAABOXSAATl0wAE5dQABOXWAATl1wAE5iAABOZEAATmawAE5o8ABOaSAATmlQAE5pcABOaZAATmmwAE5p0ABOaeAATmoQAE5roABObXAATm2gAE5t0ABObgAATm4wAE5uYABObpAATm7AAE5wkABOcMAATnDwAE5xIABOcVAATnGAAE5xsABOceAATnIAAE55sABOedAATnoAAE56IABOelAATnpgAE56cABOeoAATnqQAE56sABOeuAATnrwAE57AABOeyAATnswAE6C4ABOgwAAToMwAE6DUABOg4AAToOQAE6DoABOg7AAToPAAE6D4ABOhBAAToQgAE6EMABOhFAAToRgAE6MEABOjDAAToxgAE6MgABOjLAATozAAE6M0ABOjOAATozwAE6NEABOjUAATo1QAE6NYABOjYAATo2QAE6VQABOlWAATpWQAE6VsABOleAATpXwAE6WAABOlhAATpYgAE6WQABOlnAATpaAAE6WkABOlrAATpbAAE6e8ABOoTAATqNwAE6loABOqBAATqoQAE6sgABOrvAATrDwAE6zMABOtXAATrWQAE61wABOteAATrYAAE62IABOtlAATraAAE62oABOtsAATrbwAE63EABOtzAATrdgAE63kABOt6AATrfwAE65gABOudAATrnwAE66QABOunAATrqQAE6/IABOwWAATsPQAE7GEABOxkAATsZgAE7GgABOxqAATsbAAE7G4ABOxvAATscgAE7IsABOywAATssgAE7LQABOy2AATsuAAE7LoABOy8AATsvgAE7MAABOzCAATs5wAE7OoABOztAATs8AAE7PMABOz2AATs+QAE7PwABOz/AATtAgAE7QQABO1/AATtgQAE7YQABO2GAATtiQAE7YoABO2LAATtjAAE7Y0ABO2PAATtkQAE7ZIABO2TAATtlQAE7ZYABO2nAATtqAAE7aoABO4lAATuJwAE7ikABO4rAATuLgAE7i8ABO4wAATuMQAE7jIABO40AATuNgAE7jcABO44AATuOgAE7jsABO62AATuuAAE7rsABO69AATuwAAE7sEABO7CAATuwwAE7sQABO7GAATuyAAE7skABO7KAATuzAAE7s0ABO7eAATu3wAE7uEABO9cAATvXgAE72AABO9iAATvZQAE72YABO9nAATvaAAE72kABO9rAATvbQAE724ABO9vAATvcQAE73IABO/tAATv7wAE7/IABO/0AATv9wAE7/gABO/5AATv+gAE7/sABO/9AATv/wAE8AAABPABAATwAwAE8AQABPAVAATwFgAE8BgABPCTAATwlQAE8JcABPCZAATwnAAE8J0ABPCeAATwnwAE8KAABPCiAATwpAAE8KUABPCmAATwqAAE8KkABPEkAATxJgAE8SkABPErAATxLgAE8S8ABPEwAATxMQAE8TIABPE0AATxNgAE8TcABPE4AATxOgAE8TsABPFUAATxVQAE8VYABPFYAATx0wAE8dUABPHXAATx2QAE8dwABPHdAATx3gAE8d8ABPHgAATx4gAE8eQABPHlAATx5gAE8egABPHpAATyZAAE8mYABPJpAATyawAE8m4ABPJvAATycAAE8nEABPJyAATydAAE8nYABPJ3AATyeAAE8noABPJ7AATykwAE8qwABPLJAATyzAAE8s8ABPLSAATy1QAE8tgABPLbAATy3gAE8vsABPL+AATzAQAE8wQABPMHAATzCgAE8w0ABPMQAATzEgAE8y0ABPNYAATzbgAE84cABPOwAATzyAAE89YABPRpAAT0jAAE9KwABPTMAAT0zgAE9NAABPTSAAT01AAE9NcABPTYAAT02QAE9NwABPTdAAT03wAE9OAABPTiAAT05QAE9OYABPTnAAT06gAE9OsABPTwAAT1CQAE9RIABPUUAAT1FgAE9R8ABPUiAAT1JQAE9ScABPVwAAT1lAAE9bsABPXfAAT14gAE9eQABPXmAAT16AAE9eoABPXsAAT17QAE9fAABPYJAAT2KgAE9iwABPYuAAT2MAAE9jIABPY0AAT2NgAE9jgABPY6AAT2WwAE9l4ABPZhAAT2ZAAE9mcABPZqAAT2bQAE9nAABPZzAAT2dQAE9vAABPbyAAT29AAE9vYABPb5AAT2+gAE9vsABPb8AAT2/QAE9v8ABPcBAAT3AgAE9wMABPcFAAT3BgAE94EABPeDAAT3hQAE94cABPeKAAT3iwAE94wABPeNAAT3jgAE95AABPeSAAT3kwAE95QABPeWAAT3lwAE+BIABPgUAAT4FwAE+BkABPgcAAT4HQAE+B4ABPgfAAT4IAAE+CIABPgkAAT4JQAE+CYABPgoAAT4KQAE+EIABPhDAAT4RAAE+EYABPjBAAT4wwAE+MUABPjHAAT4ygAE+MsABPjMAAT4zQAE+M4ABPjQAAT40gAE+NMABPjUAAT41gAE+NcABPlSAAT5VAAE+VYABPlYAAT5WwAE+VwABPldAAT5XgAE+V8ABPlhAAT5YwAE+WQABPllAAT5ZwAE+WgABPnjAAT55QAE+ecABPnpAAT57AAE+e0ABPnuAAT57wAE+fAABPnyAAT59AAE+fUABPn2AAT5+AAE+fkABPp0AAT6dgAE+ngABPp6AAT6fQAE+n4ABPp/AAT6gAAE+oEABPqDAAT6hQAE+oYABPqHAAT6iQAE+ooABPsFAAT7BwAE+wkABPsLAAT7DgAE+w8ABPsQAAT7EQAE+xIABPsUAAT7FgAE+xcABPsYAAT7GgAE+xsABPtkAAT7iAAE+68ABPvTAAT71gAE+9gABPvaAAT73AAE+94ABPvgAAT74QAE++QABPv9AAT8GgAE/BwABPweAAT8IAAE/CIABPwkAAT8JgAE/CgABPxFAAT8SAAE/EsABPxOAAT8UQAE/FQABPxXAAT8WgAE/FwABPzXAAT82QAE/NsABPzdAAT84AAE/OEABPziAAT84wAE/OQABPzmAAT86AAE/OkABPzqAAT87AAE/O0ABP1oAAT9agAE/WwABP1uAAT9cQAE/XIABP1zAAT9dAAE/XUABP13AAT9eQAE/XoABP17AAT9fQAE/X4ABP35AAT9+wAE/f0ABP3/AAT+AgAE/gMABP4EAAT+BQAE/gYABP4IAAT+CgAE/gsABP4MAAT+DgAE/g8ABP6KAAT+jAAE/o8ABP6RAAT+lAAE/pUABP6WAAT+lwAE/pgABP6aAAT+nAAE/p0ABP6eAAT+oAAE/qEABP8cAAT/HgAE/yAABP8iAAT/JQAE/yYABP8nAAT/KAAE/ykABP8rAAT/LQAE/y4ABP8vAAT/MQAE/zIABP+tAAT/rwAE/7EABP+zAAT/tgAE/7cABP+4AAT/uQAE/7oABP+8AAT/vgAE/78ABP/AAAT/wgAE/8MABQA+AAUAQAAFAEIABQBEAAUARwAFAEgABQBJAAUASgAFAEsABQBNAAUATwAFAFAABQBRAAUAUwAFAFQABQDnAAUBCgAFASoABQFKAAUBTAAFAU4ABQFQAAUBUgAFAVUABQFWAAUBVwAFAVoABQFbAAUBXQAFAV4ABQFhAAUBZAAFAWUABQFmAAUBaQAFAWoABQFzAAUBjAAFAZUABQGXAAUBmgAFAaMABQGmAAUBqQAFAasABQH0AAUCGAAFAj8ABQJjAAUCZgAFAmgABQJqAAUCbAAFAm4ABQJwAAUCcQAFAnQABQKNAAUCrgAFArAABQKyAAUCtAAFArYABQK4AAUCugAFArwABQK+AAUC3wAFAuIABQLlAAUC6AAFAusABQLuAAUC8QAFAvQABQL3AAUC+QAFA3QABQN2AAUDeAAFA3oABQN9AAUDfgAFA38ABQOAAAUDgQAFA4MABQOFAAUDhgAFA4cABQOJAAUDigAFBAUABQQHAAUECQAFBAsABQQOAAUEDwAFBBAABQQRAAUEEgAFBBQABQQWAAUEFwAFBBgABQQaAAUEGwAFBJYABQSYAAUEmwAFBJ0ABQSgAAUEoQAFBKIABQSjAAUEpAAFBKYABQSoAAUEqQAFBKoABQSsAAUErQAFBMYABQTHAAUEyAAFBMoABQVFAAUFRwAFBUkABQVLAAUFTgAFBU8ABQVQAAUFUQAFBVIABQVUAAUFVgAFBVcABQVYAAUFWgAFBVsABQXWAAUF2AAFBdoABQXcAAUF3wAFBeAABQXhAAUF4gAFBeMABQXlAAUF5wAFBegABQXpAAUF6wAFBewABQZnAAUGaQAFBmsABQZtAAUGcAAFBnEABQZyAAUGcwAFBnQABQZ2AAUGeAAFBnkABQZ6AAUGfAAFBn0ABQb4AAUG+gAFBvwABQb+AAUHAQAFBwIABQcDAAUHBAAFBwUABQcHAAUHCQAFBwoABQcLAAUHDQAFBw4ABQeJAAUHiwAFB40ABQePAAUHkgAFB5MABQeUAAUHlQAFB5YABQeYAAUHmgAFB5sABQecAAUHngAFB58ABQfoAAUIDAAFCDMABQhXAAUIWgAFCF0ABQhfAAUIYQAFCGMABQhlAAU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0jgAFNJAABTSSAAU0kwAFNJYABTSvAAU00AAFNNIABTTUAAU01gAFNNgABTTaAAU03AAFNN4ABTTgAAU1AQAFNQQABTUHAAU1CgAFNQ0ABTUQAAU1EwAFNRYABTUZAAU1GwAFNZYABTWYAAU1mgAFNZwABTWfAAU1oAAFNaEABTWiAAU1owAFNaUABTWnAAU1qAAFNakABTWrAAU1rAAFNicABTYpAAU2KwAFNi0ABTYwAAU2MQAFNjIABTYzAAU2NAAFNjYABTY4AAU2OQAFNjoABTY8AAU2PQAFNrgABTa6AAU2vQAFNr8ABTbCAAU2wwAFNsQABTbFAAU2xgAFNsgABTbKAAU2ywAFNswABTbOAAU2zwAFNugABTbpAAU26gAFNuwABTdnAAU3aQAFN2sABTdtAAU3cAAFN3EABTdyAAU3cwAFN3QABTd2AAU3eAAFN3kABTd6AAU3fAAFN30ABTf4AAU3+gAFN/wABTf+AAU4AQAFOAIABTgDAAU4BAAFOAUABTgHAAU4CQAFOAoABTgLAAU4DQAFOA4ABTiJAAU4iwAFOI0ABTiPAAU4kgAFOJMABTiUAAU4lQAFOJYABTiYAAU4mgAFOJsABTicAAU4ngAFOJ8ABTkaAAU5HAAFOR4ABTkgAAU5IwAFOSQABTklAAU5JgAFOScABTkpAAU5KwAFOSwABTktAAU5LwAFOTAABTmrAAU5rQAFOa8ABTmxAAU5tAAFObUABTm2AAU5twAFObgABTm6AAU5vAAFOb0ABTm+AAU5wAAFOcEABToKAAU6LgAFOlUABTp5AAU6fAAFOn8ABTqBAAU6gwAFOoUABTqHAAU6iAAFOosABTqkAAU6wQAFOsQABTrHAAU6ygAFOs0ABTrQAAU60wAFOtYABTrzAAU69gAFOvkABTr8AAU6/wAFOwIABTsFAAU7CAAFOwoABTuFAAU7hwAFO4oABTuMAAU7jwAFO5AABTuRAAU7kgAFO5MABTuVAAU7mAAFO5kABTuaAAU7nAAFO50ABTwYAAU8GgAFPB0ABTwfAAU8IgAFPCMABTwkAAU8JQAFPCYABTwoAAU8KwAFPCwABTwtAAU8LwAFPDAABTyrAAU8rQAFPLAABTyyAAU8tQAFPLYABTy3AAU8uAAFPLkABTy7AAU8vgAFPL8ABTzAAAU8wgAFPMMABT0+AAU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OsgAFTrQABU62AAVOtwAFTrgABU66AAVOuwAFTzYABU84AAVPOgAFTzwABU8/AAVPQAAFT0EABU9CAAVPQwAFT0UABU9HAAVPSAAFT0kABU9LAAVPTAAFT8cABU/JAAVPzAAFT84ABU/RAAVP0gAFT9MABU/UAAVP1QAFT9cABU/ZAAVP2gAFT9sABU/dAAVP3gAFT/cABU/4AAVP+QAFT/sABVB2AAVQeAAFUHoABVB8AAVQfwAFUIAABVCBAAVQggAFUIMABVCFAAVQhwAFUIgABVCJAAVQiwAFUIwABVEHAAVRCQAFUQsABVENAAVREAAFUREABVESAAVREwAFURQABVEWAAVRGAAFURkABVEaAAVRHAAFUR0ABVGYAAVRmgAFUZwABVGeAAVRoQAFUaIABVGjAAVRpAAFUaUABVGnAAVRqQAFUaoABVGrAAVRrQAFUa4ABVIpAAVSKwAFUi0ABVIvAAVSMgAFUjMABVI0AAVSNQAFUjYABVI4AAVSOgAFUjsABVI8AAVSPgAFUj8ABVK6AAVSvAAFUr4ABVLAAAVSwwAFUsQABVLFAAVSxgAFUscABVLJAAVSywAFUswABVLNAAVSzwAFUtAABVMZAAVTPQAFU2QABVOIAAVTiwAFU40ABVOPAAVTkQAFU5MABVOVAAVTlgAFU5kABVOyAAVTzwAFU9EABVPTAAVT1QAFU9cABVPZAAVT2wAFU90ABVP6AAVT/QAFVAAABVQDAAVUBgAFVAkABVQMAAVUDwAFVBEABVSMAAVUjgAFVJAABVSSAAVUlQAFVJYABVSXAAVUmAAFVJkABVSbAAVUnQAFVJ4ABVSfAAVUoQAFVKIABVUdAAVVHwAFVSEABVUjAAVVJgAFVScABVUoAAVVKQAFVSoABVUsAAVVLgAFVS8ABVUwAAVVMgAFVTMABVWuAAVVsAAFVbIABVW0AAVVtwAFVbgABVW5AAVVugAFVbsABVW9AAVVvwAFVcAABVXBAAVVwwAFVcQABVY/AAVWQQAFVkQABVZGAAVWSQAFVkoABVZLAAVWTAAFVk0ABVZPAAVWUQAFVlIABVZTAAVWVQAFVlYABVbRAAVW0wAFVtUABVbXAAVW2gAFVtsABVbcAAVW3QAFVt4ABVbgAAVW4gAFVuMABVbkAAVW5gAFVucABVdiAAVXZAAFV2YABVdoAAVXawAFV2wABVdtAAVXbgAFV28ABVdxAAVXcwAFV3QABVd1AAVXdwAFV3gABVfzAAVX9QAFV/cABVf5AAVX/AAFV/0ABVf+AAVX/wAFWAAABVgCAAVYBAAFWAUABVgGAAVYCAAFWAkABVgaAAVYGwAFWB0ABViYAAVYmgAFWJwABVieAAVYoQAFWKIABVijAAVYpAAFWKUABVinAAVYqgAFWKsABVisAAVYrgAFWK8ABVkqAAVZLAAFWS4ABVkwAAVZMwAFWTQABVk1AAVZNgAFWTcABVk5AAVZPAAFWT0ABVk+AAVZQAAFWUEABVm8AAVZvgAFWcEABVnDAAVZxgAFWccABVnIAAVZyQAFWcoABVnMAAVZzwAFWdAABVnRAAVZ0wAFWdQABVpnAAVaigAFWqoABVrKAAVazAAFWs4ABVrQAAVa0gAFWtUABVrWAAVa1wAFWtoABVrbAAVa3QAFWt4ABVrgAAVa4wAFWuQABVrlAAVa6AAFWukABVruAAVbBwAFWxAABVsSAAVbFAAFWx0ABVsgAAVbIwAFWyUABVtuAAVbkgAFW7kABVvdAAVb4AAFW+IABVvkAAVb5gAFW+gABVvqAAVb6wAFW+4ABVwHAAVcKAAFXCoABVwsAAVcLgAFXDAABVwyAAVcNAAFXDYABVw4AAVcWQAFXFwABVxfAAVcYgAFXGUABVxoAAVcawAFXG4ABVxxAAVccwAFXO4ABVzwAAVc8gAFXPQABVz3AAVc+AAFXPkABVz6AAVc+wAFXP0ABVz/AAVdAAAFXQEABV0DAAVdBAAFXX8ABV2BAAVdgwAFXYUABV2IAAVdiQAFXYoABV2LAAVdjAAFXY4ABV2QAAVdkQAFXZIABV2UAAVdlQAFXhAABV4SAAVeFQAFXhcABV4aAAVeGwAFXhwABV4dAAVeHgAFXiAABV4iAAVeIwAFXiQABV4mAAVeJwAFXkAABV5BAAVeQgAFXkQABV6/AAVewQAFXsMABV7FAAVeyAAFXskABV7KAAVeywAFXswABV7OAAVe0AAFXtEABV7SAAVe1AAFXtUABV9QAAVfUgAFX1QABV9WAAVfWQAFX1oABV9bAAVfXAAFX10ABV9fAAVfYQAFX2IABV9jAAVfZQAFX2YABV/hAAVf4wAFX+UABV/nAAVf6gAFX+sABV/sAAVf7QAFX+4ABV/wAAVf8gAFX/MABV/0AAVf9gAFX/cABWByAAVgdAAFYHYABWB4AAVgewAFYHwABWB9AAVgfgAFYH8ABWCBAAVggwAFYIQABWCFAAVghwAFYIgABWEDAAVhBQAFYQcABWEJAAVhDAAFYQ0ABWEOAAVhDwAFYRAABWESAAVhFAAFYRUABWEWAAVhGAAFYRkABWFiAAVhhgAFYa0ABWHRAAVh1AAFYdYABWHYAAVh2gAFYdwABWHeAAVh3wAFYeIABWH7AAViGAAFYhoABWIcAAViHgAFYiAABWIiAAViJAAFYiYABWJDAAViRgAFYkkABWJMAAViTwAFYlIABWJVAAViWAAFYloABWLVAAVi1wAFYtkABWLbAAVi3gAFYt8ABWLgAAVi4QAFYuIABWLkAAVi5gAFYucABWLoAAVi6gAFYusABWNmAAVjaAAFY2oABWNsAAVjbwAFY3AABWNxAAVjcgAFY3MABWN1AAVjdwAFY3gABWN5AAVjewAFY3wABWP3AAVj+QAFY/sABWP9AAVkAAAFZAEABWQCAAVkAwAFZAQABWQGAAVkCAAFZAkABWQKAAVkDAAFZA0ABWSIAAVkigAFZI0ABWSPAAVkkgAFZJMABWSUAAVklQAFZJYABWSYAAVkmgAFZJsABWScAAVkngAFZJ8ABWUaAAVlHAAFZR4ABWUgAAVlIwAFZSQABWUlAAVlJgAFZScABWUpAAVlKwAFZSwABWUtAAVlLwAFZTAABWWrAAVlrQAFZa8ABWWxAAVltAAFZbUABWW2AAVltwAFZbgABWW6AAVlvAAFZb0ABWW+AAVlwAAFZcEABWY8AAVmPgAFZkAABWZCAAVmRQAFZkYABWZHAAVmSAAFZkkABWZLAAVmTQAFZk4ABWZPAAVmUQAFZlIABWblAAVnCAAFZygABWdIAAVnSgAFZ0wABWdOAAVnUAAFZ1MABWdUAAVnVQAFZ1gABWdZAAVnWwAFZ1wABWdeAAVnYQAFZ2IABWdjAAVnZgAFZ2cABWdsAAVnhQAFZ44ABWeQAAVnkgAFZ5sABWeeAAVnoQAFZ6MABWfsAAVoEAAFaDcABWhbAAVoXgAFaGAABWhiAAVoZAAFaGYABWhoAAVoaQAFaGwABWiFAAVopgAFaKgABWiqAAVorAAFaK4ABWiwAAVosgAFaLQABWi2AAVo1wAFaNoABWjdAAVo4AAFaOMABWjmAAVo6QAFaOwABWjvAAVo8QAFaWwABWluAAVpcAAFaXIABWl1AAVpdgAFaXcABWl4AAVpeQAFaXsABWl9AAVpfgAFaX8ABWmBAAVpggAFaf0ABWn/AAVqAQAFagMABWoGAAVqBwAFaggABWoJAAVqCgAFagwABWoOAAVqDwAFahAABWoSAAVqEwAFao4ABWqQAAVqkwAFapUABWqYAAVqmQAFapoABWqbAAVqnAAFap4ABWqgAAVqoQAFaqIABWqkAAVqpQAFar4ABWq/AAVqwAAFasIABWs9AAVrPwAFa0EABWtDAAVrRgAFa0cABWtIAAVrSQAFa0oABWtMAAVrTgAFa08ABWtQAAVrUgAFa1MABWvOAAVr0AAFa9IABWvUAAVr1wAFa9gABWvZAAVr2gAFa9sABWvdAAVr3wAFa+AABWvhAAVr4wAFa+QABWxfAAVsYQAFbGMABWxlAAVsaAAFbGkABWxqAAVsawAFbGwABWxuAAVscAAFbHEABWxyAAVsdAAFbHUABWzwAAVs8gAFbPQABWz2AAVs+QAFbPoABWz7AAVs/AAFbP0ABWz/AAVtAQAFbQIABW0DAAVtBQAFbQYABW2BAAVtgwAFbYUABW2HAAVtigAFbYsABW2MAAVtjQAFbY4ABW2QAAVtkgAFbZMABW2UAAVtlgAFbZcABW3gAAVuBAAFbisABW5PAAVuUgAFblQABW5WAAVuWAAFbloABW5cAAVuXQAFbmAABW55AAVulgAFbpgABW6aAAVunAAFbp4ABW6gAAVuogAFbqQABW7BAAVuxAAFbscABW7KAAVuzQAFbtAABW7TAAVu1gAFbtgABW9TAAVvVQAFb1cABW9ZAAVvXAAFb10ABW9eAAVvXwAFb2AABW9iAAVvZAAFb2UABW9mAAVvaAAFb2kABW/kAAVv5gAFb+gABW/qAAVv7QAFb+4ABW/vAAVv8AAFb/EABW/zAAVv9QAFb/YABW/3AAVv+QAFb/oABXB1AAVwdwAFcHkABXB7AAVwfgAFcH8ABXCAAAVwgQAFcIIABXCEAAVwhgAFcIcABXCIAAVwigAFcIsABXEGAAVxCAAFcQsABXENAAVxEAAFcREABXESAAVxEwAFcRQABXEWAAVxGAAFcRkABXEaAAVxHAAFcR0ABXGYAAVxmgAFcZwABXGeAAVxoQAFcaIABXGjAAVxpAAFcaUABXGnAAVxqQAFcaoABXGrAAVxrQAFca4ABXIpAAVyKwAFci0ABXIvAAVyMgAFcjMABXI0AAVyNQAFcjYABXI4AAVyOgAFcjsABXI8AAVyPgAFcj8ABXK6AAVyvAAFcr4ABXLAAAVywwAFcsQABXLFAAVyxgAFcscABXLJAAVyywAFcswABXLNAAVyzwAFctAABXNjAAVzhgAFc6YABXPGAAVzyAAFc8oABXPMAAVzzgAFc9EABXPSAAVz0wAFc9YABXPXAAVz2QAFc9oABXPdAAVz4AAFc+EABXPiAAVz5QAFc+YABXPrAAV0BAAFdA0ABXQPAAV0EgAFdBsABXQeAAV0IQAFdCMABXRsAAV0kAAFdLcABXTbAAV03gAFdOAABXTiAAV05AAFdOYABXToAAV06QAFdOwABXUFAAV1JgAFdSgABXUqAAV1LAAFdS4ABXUwAAV1MgAFdTQABXU2AAV1VwAFdVoABXVdAAV1YAAFdWMABXVmAAV1aQAFdWwABXVvAAV1cQAFdewABXXuAAV18AAFdfIABXX1AAV19gAFdfcABXX4AAV1+QAFdfsABXX9AAV1/gAFdf8ABXYBAAV2AgAFdn0ABXZ/AAV2gQAFdoMABXaGAAV2hwAFdogABXaJAAV2igAFdowABXaOAAV2jwAFdpAABXaSAAV2kwAFdw4ABXcQAAV3EwAFdxUABXcYAAV3GQAFdxoABXcbAAV3HAAFdx4ABXcgAAV3IQAFdyIABXckAAV3JQAFdz4ABXc/AAV3QAAFd0IABXe9AAV3vwAFd8EABXfDAAV3xgAFd8cABXfIAAV3yQAFd8oABXfMAAV3zgAFd88ABXfQAAV30gAFd9MABXhOAAV4UAAFeFIABXhUAAV4VwAFeFgABXhZAAV4WgAFeFsABXhdAAV4XwAFeGAABXhhAAV4YwAFeGQABXjfAAV44QAFeOMABXjlAAV46AAFeOkABXjqAAV46wAFeOwABXjuAAV48AAFePEABXjyAAV49AAFePUABXlwAAV5cgAFeXQABXl2AAV5eQAFeXoABXl7AAV5fAAFeX0ABXl/AAV5gQAFeYIABXmDAAV5hQAFeYYABXoBAAV6AwAFegUABXoHAAV6CgAFegsABXoMAAV6DQAFeg4ABXoQAAV6EgAFehMABXoUAAV6FgAFehcABXpgAAV6hAAFeqsABXrPAAV60gAFetUABXrXAAV62QAFetsABXrdAAV63gAFeuEABXr6AAV7FwAFexoABXsdAAV7IAAFeyMABXsmAAV7KQAFeywABXtJAAV7TAAFe08ABXtSAAV7VQAFe1gABXtbAAV7XgAFe2AABXvbAAV73QAFe+AABXviAAV75QAFe+YABXvnAAV76AAFe+kABXvrAAV77gAFe+8ABXvwAAV78gAFe/MABXxuAAV8cAAFfHMABXx1AAV8eAAFfHkABXx6AAV8ewAFfHwABXx+AAV8gQAFfIIABXyDAAV8hQAFfIYABX0BAAV9AwAFfQYABX0IAAV9CwAFfQwABX0NAAV9DgAFfQ8ABX0RAAV9FAAFfRUABX0WAAV9GAAFfRkABX2UAAV9lgAFfZkABX2bAAV9ngAFfZ8ABX2gAAV9oQAFfaIABX2kAAV9pwAFfagABX2pAAV9qwAFfawABX4vAAV+UwAFfncABX6aAAV+wQAFfuEABX8IAAV/LwAFf08ABX9zAAV/lwAFf5kABX+cAAV/ngAFf6AABX+iAAV/pQAFf6gABX+qAAV/rAAFf68ABX+xAAV/swAFf7YABX+5AAV/ugAFf8MABX/cAAV/4QAFf+MABX/oAAV/6wAFf+0ABYA2AAWAWgAFgIEABYClAAWAqAAFgKoABYCsAAWArgAFgLAABYCyAAWAswAFgLYABYDPAAWA9AAFgPYABYD4AAWA+gAFgPwABYD+AAWBAAAFgQIABYEEAAWBBgAFgSsABYEuAAWBMQAFgTQABYE3AAWBOgAFgT0ABYFAAAWBQwAFgUYABYFIAAWBwwAFgcUABYHIAAWBygAFgc0ABYHOAAWBzwAFgdAABYHRAAWB0wAFgdUABYHWAAWB1wAFgdkABYHaAAWB6wAFgewABYHuAAWCaQAFgmsABYJtAAWCbwAFgnIABYJzAAWCdAAFgnUABYJ2AAWCeAAFgnoABYJ7AAWCfAAFgn4ABYJ/AAWC+gAFgvwABYL/AAWDAQAFgwQABYMFAAWDBgAFgwcABYMIAAWDCgAFgwwABYMNAAWDDgAFgxAABYMRAAWDIgAFgyMABYMlAAWDoAAFg6IABYOkAAWDpgAFg6kABYOqAAWDqwAFg6wABYOtAAWDrwAFg7EABYOyAAWDswAFg7UABYO2AAWEMQAFhDMABYQ2AAWEOAAFhDsABYQ8AAWEPQAFhD4ABYQ/AAWEQQAFhEMABYREAAWERQAFhEcABYRIAAWEWQAFhFoABYRcAAWE1wAFhNkABYTbAAWE3QAFhOAABYThAAWE4gAFhOMABYTkAAWE5gAFhOgABYTpAAWE6gAFhOwABYTtAAWFaAAFhWoABYVtAAWFbwAFhXIABYVzAAWFdAAFhXUABYV2AAWFeAAFhXoABYV7AAWFfAAFhX4ABYV/AAWFmAAFhZkABYWaAAWFnAAFhhcABYYZAAWGGwAFhh0ABYYgAAWGIQAFhiIABYYjAAWGJAAFhiYABYYoAAWGKQAFhioABYYsAAWGLQAFhqgABYaqAAWGrQAFhq8ABYayAAWGswAFhrQABYa1AAWGtgAFhrgABYa6AAWGuwAFhrwABYa+AAWGvwAFht0ABYb2AAWHCwAFhw4ABYcRAAWHFAAFhxcABYcaAAWHLwAFhzIABYc1AAWHOAAFhzsABYc+AAWHQAAFh2AABYdvAAWHgQAFh40ABYekAAWINwAFiFoABYh6AAWImgAFiJwABYieAAWIoAAFiKIABYilAAWIpgAFiKcABYiqAAWIqwAFiK0ABYiuAAWIsAAFiLMABYi0AAWItQAFiLgABYi5AAWIvgAFiNcABYjgAAWI4gAFiOQABYjtAAWI8AAFiPMABYj1AAWJPgAFiWIABYmJAAWJrQAFibAABYmyAAWJtAAFibYABYm4AAWJugAFibsABYm+AAWJ1wAFifgABYn6AAWJ/AAFif4ABYoAAAWKAgAFigQABYoGAAWKCAAFiikABYosAAWKLwAFijIABYo1AAWKOAAFijsABYo+AAWKQQAFikMABYq+AAWKwAAFisIABYrEAAWKxwAFisgABYrJAAWKygAFissABYrNAAWKzwAFitAABYrRAAWK0wAFitQABYtPAAWLUQAFi1MABYtVAAWLWAAFi1kABYtaAAWLWwAFi1wABYteAAWLYAAFi2EABYtiAAWLZAAFi2UABYvgAAWL4gAFi+UABYvnAAWL6gAFi+sABYvsAAWL7QAFi+4ABYvwAAWL8gAFi/MABYv0AAWL9gAFi/cABYwQAAWMEQAFjBIABYwUAAWMjwAFjJEABYyTAAWMlQAFjJgABYyZAAWMmgAFjJsABYycAAWMngAFjKAABYyhAAWMogAFjKQABYylAAWNIAAFjSIABY0kAAWNJgAFjSkABY0qAAWNKwAFjSwABY0tAAWNLwAFjTEABY0yAAWNMwAFjTUABY02AAWNsQAFjbMABY21AAWNtwAFjboABY27AAWNvAAFjb0ABY2+AAWNwAAFjcIABY3DAAWNxAAFjcYABY3HAAWOQgAFjkQABY5GAAWOSAAFjksABY5MAAWOTQAFjk4ABY5PAAWOUQAFjlMABY5UAAWOVQAFjlcABY5YAAWO0wAFjtUABY7XAAWO2QAFjtwABY7dAAWO3gAFjt8ABY7gAAWO4gAFjuQABY7lAAWO5gAFjugABY7pAAWPMgAFj1YABY99AAWPoQAFj6QABY+mAAWPqAAFj6oABY+sAAWPrgAFj68ABY+yAAWPywAFj+gABY/qAAWP7AAFj+4ABY/wAAWP8gAFj/QABY/2AAWQEwAFkBYABZAZAAWQHAAFkB8ABZAiAAWQJQAFkCgABZAqAAWQpQAFkKcABZCpAAWQqwAFkK4ABZCvAAWQsAAFkLEABZCyAAWQtAAFkLYABZC3AAWQuAAFkLoABZC7AAWRNgAFkTgABZE6AAWRPAAFkT8ABZFAAAWRQQAFkUIABZFDAAWRRQAFkUcABZFIAAWRSQAFkUsABZFMAAWRxwAFkckABZHLAAWRzQAFkdAABZHRAAWR0gAFkdMABZHUAAWR1gAFkdgABZHZAAWR2gAFkdwABZHdAAWSWAAFkloABZJdAAWSXwAFkmIABZJjAAWSZAAFkmUABZJmAAWSaAAFkmoABZJrAAWSbAAFkm4ABZJvAAWS6gAFkuwABZLuAAWS8AAFkvMABZL0AAWS9QAFkvYABZL3AAWS+QAFkvsABZL8AAWS/QAFkv8ABZMAAAWTewAFk30ABZN/AAWTgQAFk4QABZOFAAWThgAFk4cABZOIAAWTigAFk4wABZONAAWTjgAFk5AABZORAAWUDAAFlA4ABZQQAAWUEgAFlBUABZQWAAWUFwAFlBgABZQZAAWUGwAFlB0ABZQeAAWUHwAFlCEABZQiAAWUtQAFlNgABZT4AAWVGAAFlRoABZUcAAWVHgAFlSAABZUjAAWVJAAFlSUABZUoAAWVKQAFlSsABZUsAAWVLgAFlTEABZUyAAWVMwAFlTYABZU3AAWVPAAFlVUABZVeAAWVYAAFlWIABZVrAAWVbgAFlXEABZVzAAWVvAAFleAABZYHAAWWKwAFli4ABZYwAAWWMgAFljQABZY2AAWWOAAFljkABZY8AAWWVQAFlnYABZZ4AAWWegAFlnwABZZ+AAWWgAAFloIABZaEAAWWhgAFlqcABZaqAAWWrQAFlrAABZazAAWWtgAFlrkABZa8AAWWvwAFlsEABZc8AAWXPgAFl0AABZdCAAWXRQAFl0YABZdHAAWXSAAFl0kABZdLAAWXTQAFl04ABZdPAAWXUQAFl1IABZfNAAWXzwAFl9EABZfTAAWX1gAFl9cABZfYAAWX2QAFl9oABZfcAAWX3gAFl98ABZfgAAWX4gAFl+MABZheAAWYYAAFmGMABZhlAAWYaAAFmGkABZhqAAWYawAFmGwABZhuAAWYcAAFmHEABZhyAAWYdAAFmHUABZiOAAWYjwAFmJAABZiSAAWZDQAFmQ8ABZkRAAWZEwAFmRYABZkXAAWZGAAFmRkABZkaAAWZHAAFmR4ABZkfAAWZIAAFmSIABZkjAAWZngAFmaAABZmiAAWZpAAFmacABZmoAAWZqQAFmaoABZmrAAWZrQAFma8ABZmwAAWZsQAFmbMABZm0AAWaLwAFmjEABZozAAWaNQAFmjgABZo5AAWaOgAFmjsABZo8AAWaPgAFmkAABZpBAAWaQgAFmkQABZpFAAWawAAFmsIABZrEAAWaxgAFmskABZrKAAWaywAFmswABZrNAAWazwAFmtEABZrSAAWa0wAFmtUABZrWAAWbUQAFm1MABZtVAAWbVwAFm1oABZtbAAWbXAAFm10ABZteAAWbYAAFm2IABZtjAAWbZAAFm2YABZtnAAWbsAAFm9QABZv7AAWcHwAFnCIABZwkAAWcJgAFnCgABZwqAAWcLAAFnC0ABZwwAAWcSQAFnGYABZxoAAWcagAFnGwABZxuAAWccAAFnHIABZx0AAWckQAFnJQABZyXAAWcmgAFnJ0ABZygAAWcowAFnKYABZyoAAWdIwAFnSUABZ0nAAWdKQAFnSwABZ0tAAWdLgAFnS8ABZ0wAAWdMgAFnTQABZ01AAWdNgAFnTgABZ05AAWdtAAFnbYABZ24AAWdugAFnb0ABZ2+AAWdvwAFncAABZ3BAAWdwwAFncUABZ3GAAWdxwAFnckABZ3KAAWeRQAFnkcABZ5JAAWeSwAFnk4ABZ5PAAWeUAAFnlEABZ5SAAWeVAAFnlYABZ5XAAWeWAAFnloABZ5bAAWe1gAFntgABZ7bAAWe3QAFnuAABZ7hAAWe4gAFnuMABZ7kAAWe5gAFnugABZ7pAAWe6gAFnuwABZ7tAAWfaAAFn2oABZ9sAAWfbgAFn3EABZ9yAAWfcwAFn3QABZ91AAWfdwAFn3kABZ96AAWfewAFn30ABZ9+AAWf+QAFn/sABZ/9AAWf/wAFoAIABaADAAWgBAAFoAUABaAGAAWgCAAFoAoABaALAAWgDAAFoA4ABaAPAAWgigAFoIwABaCOAAWgkAAFoJMABaCUAAWglQAFoJYABaCXAAWgmQAFoJsABaCcAAWgnQAFoJ8ABaCgAAWhMwAFoVYABaF2AAWhlgAFoZgABaGaAAWhnAAFoZ4ABaGhAAWhogAFoaMABaGmAAWhpwAFoakABaGqAAWhrQAFobAABaGxAAWhsgAFobUABaG2AAWhuwAFodQABaHdAAWh3wAFoeIABaHrAAWh7gAFofEABaHzAAWiPAAFomAABaKHAAWiqwAFoq4ABaKwAAWisgAForQABaK2AAWiuAAForkABaK8AAWi1QAFovYABaL4AAWi+gAFovwABaL+AAWjAAAFowIABaMEAAWjBgAFoycABaMqAAWjLQAFozAABaMzAAWjNgAFozkABaM8AAWjPwAFo0EABaO8AAWjvgAFo8AABaPCAAWjxQAFo8YABaPHAAWjyAAFo8kABaPLAAWjzQAFo84ABaPPAAWj0QAFo9IABaRNAAWkTwAFpFEABaRTAAWkVgAFpFcABaRYAAWkWQAFpFoABaRcAAWkXgAFpF8ABaRgAAWkYgAFpGMABaTeAAWk4AAFpOMABaTlAAWk6AAFpOkABaTqAAWk6wAFpOwABaTuAAWk8AAFpPEABaTyAAWk9AAFpPUABaUOAAWlDwAFpRAABaUSAAWljQAFpY8ABaWRAAWlkwAFpZYABaWXAAWlmAAFpZkABaWaAAWlnAAFpZ4ABaWfAAWloAAFpaIABaWjAAWmHgAFpiAABaYiAAWmJAAFpicABaYoAAWmKQAFpioABaYrAAWmLQAFpi8ABaYwAAWmMQAFpjMABaY0AAWmrwAFprEABaazAAWmtQAFprgABaa5AAWmugAFprsABaa8AAWmvgAFpsAABabBAAWmwgAFpsQABabFAAWnQAAFp0IABadEAAWnRgAFp0kABadKAAWnSwAFp0wABadNAAWnTwAFp1EABadSAAWnUwAFp1UABadWAAWn0QAFp9MABafVAAWn1wAFp9oABafbAAWn3AAFp90ABafeAAWn4AAFp+IABafjAAWn5AAFp+YABafnAAWoMAAFqFQABah7AAWonwAFqKIABailAAWopwAFqKkABairAAWorQAFqK4ABaixAAWoygAFqOcABajqAAWo7QAFqPAABajzAAWo9gAFqPkABaj8AAWpGQAFqRwABakfAAWpIgAFqSUABakoAAWpKwAFqS4ABakwAAWpqwAFqa0ABamwAAWpsgAFqbUABam2AAWptwAFqbgABam5AAWpuwAFqb4ABam/AAWpwAAFqcIABanDAAWqPgAFqkAABapDAAWqRQAFqkgABapJAAWqSgAFqksABapMAAWqTgAFqlEABapSAAWqUwAFqlUABapWAAWq0QAFqtMABarWAAWq2AAFqtsABarcAAWq3QAFqt4ABarfAAWq4QAFquQABarlAAWq5gAFqugABarpAAWrZAAFq2YABatpAAWrawAFq24ABatvAAWrcAAFq3EABatyAAWrdAAFq3cABat4AAWreQAFq3sABat8AAWr9wAFq/kABav7AAWr/QAFrAAABawBAAWsAgAFrAMABawEAAWsBgAFrAkABawKAAWsCwAFrA0ABawOAAWsiQAFrIsABayNAAWsjwAFrJIABayTAAWslAAFrJUABayWAAWsmAAFrJsABaycAAWsnQAFrJ8ABaygAAWtGwAFrR0ABa0gAAWtIgAFrSUABa0mAAWtJwAFrSgABa0pAAWtKwAFrS4ABa0vAAWtMAAFrTIABa0zAAWtxgAFrekABa4JAAWuKQAFrisABa4tAAWuLwAFrjEABa40AAWuNQAFrjYABa45AAWuOgAFrjwABa49AAWuPwAFrkIABa5DAAWuRAAFrkcABa5IAAWuTQAFrmYABa5vAAWucQAFrnMABa58AAWufwAFroIABa6EAAWuzQAFrvEABa8YAAWvPAAFrz8ABa9BAAWvQwAFr0UABa9HAAWvSQAFr0oABa9NAAWvZgAFr4cABa+JAAWviwAFr40ABa+PAAWvkQAFr5MABa+VAAWvlwAFr7gABa+7AAWvvgAFr8EABa/EAAWvxwAFr8oABa/NAAWv0AAFr9IABbBNAAWwTwAFsFEABbBTAAWwVgAFsFcABbBYAAWwWQAFsFoABbBcAAWwXgAFsF8ABbBgAAWwYgAFsGMABbDeAAWw4AAFsOIABbDkAAWw5wAFsOgABbDpAAWw6gAFsOsABbDtAAWw7wAFsPAABbDxAAWw8wAFsPQABbFvAAWxcQAFsXQABbF2AAWxeQAFsXoABbF7AAWxfAAFsX0ABbF/AAWxgQAFsYIABbGDAAWxhQAFsYYABbGfAAWxoAAFsaEABbGjAAWyHgAFsiAABbIiAAWyJAAFsicABbIoAAWyKQAFsioABbIrAAWyLQAFsi8ABbIwAAWyMQAFsjMABbI0AAWyrwAFsrEABbKzAAWytQAFsrgABbK5AAWyugAFsrsABbK8AAWyvgAFssAABbLBAAWywgAFssQABbLFAAWzQAAFs0IABbNEAAWzRgAFs0kABbNKAAWzSwAFs0wABbNNAAWzTwAFs1EABbNSAAWzUwAFs1UABbNWAAWz0QAFs9MABbPVAAWz1wAFs9oABbPbAAWz3AAFs90ABbPeAAWz4AAFs+IABbPjAAWz5AAFs+YABbPnAAW0YgAFtGQABbRmAAW0aAAFtGsABbRsAAW0bQAFtG4ABbRvAAW0cQAFtHMABbR0AAW0dQAFtHcABbR4AAW0wQAFtOUABbUMAAW1MAAFtTMABbU1AAW1NwAFtTkABbU7AAW1PQAFtT4ABbVBAAW1WgAFtXcABbV5AAW1ewAFtX0ABbV/AAW1gQAFtYMABbWFAAW1ogAFtaUABbWoAAW1qwAFta4ABbWxAAW1tAAFtbcABbW5AAW2NAAFtjYABbY4AAW2OgAFtj0ABbY+AAW2PwAFtkAABbZBAAW2QwAFtkUABbZGAAW2RwAFtkkABbZKAAW2xQAFtscABbbJAAW2ywAFts4ABbbPAAW20AAFttEABbbSAAW21AAFttYABbbXAAW22AAFttoABbbbAAW3VgAFt1gABbdaAAW3XAAFt18ABbdgAAW3YQAFt2IABbdjAAW3ZQAFt2cABbdoAAW3aQAFt2sABbdsAAW35wAFt+kABbfsAAW37gAFt/EABbfyAAW38wAFt/QABbf1AAW39wAFt/kABbf6AAW3+wAFt/0ABbf+AAW4eQAFuHsABbh9AAW4fwAFuIIABbiDAAW4hAAFuIUABbiGAAW4iAAFuIoABbiLAAW4jAAFuI4ABbiPAAW5CgAFuQwABbkOAAW5EAAFuRMABbkUAAW5FQAFuRYABbkXAAW5GQAFuRsABbkcAAW5HQAFuR8ABbkgAAW5mwAFuZ0ABbmfAAW5oQAFuaQABbmlAAW5pgAFuacABbmoAAW5qgAFuawABbmtAAW5rgAFubAABbmxAAW6RAAFumcABbqHAAW6pwAFuqkABbqrAAW6rQAFuq8ABbqyAAW6swAFurQABbq3AAW6uAAFuroABbq7AAW6vQAFusAABbrBAAW6wgAFusUABbrGAAW6ywAFuuQABbrtAAW67wAFuvEABbr6AAW6/QAFuwAABbsCAAW7SwAFu28ABbuWAAW7ugAFu70ABbu/AAW7wQAFu8MABbvFAAW7xwAFu8gABbvLAAW75AAFvAUABbwHAAW8CQAFvAsABbwNAAW8DwAFvBEABbwTAAW8FQAFvDYABbw5AAW8PAAFvD8ABbxCAAW8RQAFvEgABbxLAAW8TgAFvFAABbzLAAW8zQAFvM8ABbzRAAW81AAFvNUABbzWAAW81wAFvNgABbzaAAW83AAFvN0ABbzeAAW84AAFvOEABb1cAAW9XgAFvWAABb1iAAW9ZQAFvWYABb1nAAW9aAAFvWkABb1rAAW9bQAFvW4ABb1vAAW9cQAFvXIABb3tAAW97wAFvfIABb30AAW99wAFvfgABb35AAW9+gAFvfsABb39AAW9/wAFvgAABb4BAAW+AwAFvgQABb4dAAW+HgAFvh8ABb4hAAW+nAAFvp4ABb6gAAW+ogAFvqUABb6mAAW+pwAFvqgABb6pAAW+qwAFvq0ABb6uAAW+rwAFvrEABb6yAAW/LQAFvy8ABb8xAAW/MwAFvzYABb83AAW/OAAFvzkABb86AAW/PAAFvz4ABb8/AAW/QAAFv0IABb9DAAW/vgAFv8AABb/CAAW/xAAFv8cABb/IAAW/yQAFv8oABb/LAAW/zQAFv88ABb/QAAW/0QAFv9MABb/UAAXATwAFwFEABcBTAAXAVQAFwFgABcBZAAXAWgAFwFsABcBcAAXAXgAFwGAABcBhAAXAYgAFwGQABcBlAAXA4AAFwOIABcDkAAXA5gAFwOkABcDqAAXA6wAFwOwABcDtAAXA7wAFwPEABcDyAAXA8wAFwPUABcD2AAXBPwAFwWMABcGKAAXBrgAFwbEABcGzAAXBtQAFwbcABcG5AAXBuwAFwbwABcG/AAXB2AAFwfUABcH3AAXB+QAFwfsABcH9AAXB/wAFwgEABcIDAAXCIAAFwiMABcImAAXCKQAFwiwABcIvAAXCMgAFwjUABcI3AAXCsgAFwrQABcK2AAXCuAAFwrsABcK8AAXCvQAFwr4ABcK/AAXCwQAFwsMABcLEAAXCxQAFwscABcLIAAXDQwAFw0UABcNHAAXDSQAFw0wABcNNAAXDTgAFw08ABcNQAAXDUgAFw1QABcNVAAXDVgAFw1gABcNZAAXD1AAFw9YABcPYAAXD2gAFw90ABcPeAAXD3wAFw+AABcPhAAXD4wAFw+UABcPmAAXD5wAFw+kABcPqAAXEZQAFxGcABcRqAAXEbAAFxG8ABcRwAAXEcQAFxHIABcRzAAXEdQAFxHcABcR4AAXEeQAFxHsABcR8AAXE9wAFxPkABcT7AAXE/QAFxQAABcUBAAXFAgAFxQMABcUEAAXFBgAFxQgABcUJAAXFCgAFxQwABcUNAAXFiAAFxYoABcWMAAXFjgAFxZEABcWSAAXFkwAFxZQABcWVAAXFlwAFxZkABcWaAAXFmwAFxZ0ABcWeAAXGGQAFxhsABcYdAAXGHwAFxiIABcYjAAXGJAAFxiUABcYmAAXGKAAFxioABcYrAAXGLAAFxi4ABcYvAAXGQAAFxkEABcZDAAXGvgAFxsAABcbCAAXGxAAFxscABcbIAAXGyQAFxsoABcbLAAXGzQAFxtAABcbRAAXG0gAFxtQABcbVAAXHUAAFx1IABcdUAAXHVgAFx1kABcdaAAXHWwAFx1wABcddAAXHXwAFx2IABcdjAAXHZAAFx2YABcdnAAXH4gAFx+QABcfnAAXH6QAFx+wABcftAAXH7gAFx+8ABcfwAAXH8gAFx/UABcf2AAXH9wAFx/kABcf6AAXIjQAFyLAABcjQAAXI8AAFyPIABcj0AAXI9gAFyPgABcj7AAXI/AAFyP0ABckAAAXJAQAFyQMABckEAAXJBgAFyQkABckKAAXJCwAFyQ4ABckPAAXJGAAFyTEABck6AAXJPAAFyT4ABclHAAXJSgAFyU0ABclPAAXJmAAFybwABcnjAAXKBwAFygoABcoMAAXKDgAFyhAABcoSAAXKFAAFyhUABcoYAAXKMQAFylIABcpUAAXKVgAFylgABcpaAAXKXAAFyl4ABcpgAAXKYgAFyoMABcqGAAXKiQAFyowABcqPAAXKkgAFypUABcqYAAXKmwAFyp0ABcsYAAXLGgAFyxwABcseAAXLIQAFyyIABcsjAAXLJAAFyyUABcsnAAXLKQAFyyoABcsrAAXLLQAFyy4ABcupAAXLqwAFy60ABcuvAAXLsgAFy7MABcu0AAXLtQAFy7YABcu4AAXLugAFy7sABcu8AAXLvgAFy78ABcw6AAXMPAAFzD8ABcxBAAXMRAAFzEUABcxGAAXMRwAFzEgABcxKAAXMTAAFzE0ABcxOAAXMUAAFzFEABcxqAAXMawAFzGwABcxuAAXM6QAFzOsABcztAAXM7wAFzPIABczzAAXM9AAFzPUABcz2AAXM+AAFzPoABcz7AAXM/AAFzP4ABcz/AAXNegAFzXwABc1+AAXNgAAFzYMABc2EAAXNhQAFzYYABc2HAAXNiQAFzYsABc2MAAXNjQAFzY8ABc2QAAXOCwAFzg0ABc4PAAXOEQAFzhQABc4VAAXOFgAFzhcABc4YAAXOGgAFzhwABc4dAAXOHgAFziAABc4hAAXOnAAFzp4ABc6gAAXOogAFzqUABc6mAAXOpwAFzqgABc6pAAXOqwAFzq0ABc6uAAXOrwAFzrEABc6yAAXPLQAFzy8ABc8xAAXPMwAFzzYABc83AAXPOAAFzzkABc86AAXPPAAFzz4ABc8/AAXPQAAFz0IABc9DAAXPjAAFz7AABc/XAAXP+wAFz/4ABdAAAAXQAgAF0AQABdAGAAXQCAAF0AkABdAMAAXQJQAF0EIABdBEAAXQRgAF0EgABdBKAAXQTAAF0E4ABdBQAAXQbQAF0HAABdBzAAXQdgAF0HkABdB8AAXQfwAF0IIABdCEAAXQ/wAF0QEABdEDAAXRBQAF0QgABdEJAAXRCgAF0QsABdEMAAXRDgAF0RAABdERAAXREgAF0RQABdEVAAXRkAAF0ZIABdGUAAXRlgAF0ZkABdGaAAXRmwAF0ZwABdGdAAXRnwAF0aEABdGiAAXRowAF0aUABdGmAAXSIQAF0iMABdIlAAXSJwAF0ioABdIrAAXSLAAF0i0ABdIuAAXSMAAF0jIABdIzAAXSNAAF0jYABdI3AAXSsgAF0rQABdK3AAXSuQAF0rwABdK9AAXSvgAF0r8ABdLAAAX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kpgAF5KgABeSqAAXkrQAF5K4ABeSvAAXksAAF5LEABeSzAAXktQAF5LYABeS3AAXkuQAF5LoABeU1AAXlNwAF5ToABeU8AAXlPwAF5UAABeVBAAXlQgAF5UMABeVFAAXlRwAF5UgABeVJAAXlSwAF5UwABeVlAAXlZgAF5WcABeVpAAXl5AAF5eYABeXoAAXl6gAF5e0ABeXuAAXl7wAF5fAABeXxAAXl8wAF5fUABeX2AAXl9wAF5fkABeX6AAXmdQAF5ncABeZ5AAXmewAF5n4ABeZ/AAXmgAAF5oEABeaCAAXmhAAF5oYABeaHAAXmiAAF5ooABeaLAAXnBgAF5wgABecKAAXnDAAF5w8ABecQAAXnEQAF5xIABecTAAXnFQAF5xcABecYAAXnGQAF5xsABeccAAXnlwAF55kABeebAAXnnQAF56AABeehAAXnogAF56MABeekAAXnpgAF56gABeepAAXnqgAF56wABeetAAXoKAAF6CoABegsAAXoLgAF6DEABegyAAXoMwAF6DQABeg1AAXoNwAF6DkABeg6AAXoOwAF6D0ABeg+AAXohwAF6KsABejSAAXo9gAF6PkABej7AAXo/QAF6P8ABekBAAXpAwAF6QQABekHAAXpIAAF6T0ABek/AAXpQQAF6UMABelFAAXpRwAF6UkABelLAAXpaAAF6WsABeluAAXpcQAF6XQABel3AAXpegAF6X0ABel/AAXp+gAF6fwABen+AAXqAAAF6gMABeoEAAXqBQAF6gYABeoHAAXqCQAF6gsABeoMAAXqDQAF6g8ABeoQAAXqiwAF6o0ABeqPAAXqkQAF6pQABeqVAAXqlgAF6pcABeqYAAXqmgAF6pwABeqdAAXqngAF6qAABeqhAAXrHAAF6x4ABesgAAXrIgAF6yUABesmAAXrJwAF6ygABespAAXrKwAF6y0ABesuAAXrLwAF6zEABesyAAXrrQAF668ABeuyAAXrtAAF67cABeu4AAXruQAF67oABeu7AAXrvQAF678ABevAAAXrwQAF68MABevEAAXsPwAF7EEABexDAAXsRQAF7EgABexJAAXsSgAF7EsABexMAAXsTgAF7FAABexRAAXsUgAF7FQABexVAAXs0AAF7NIABezUAAXs1gAF7NkABezaAAXs2wAF7NwABezdAAXs3wAF7OEABeziAAXs4wAF7OUABezmAAXtYQAF7WMABe1lAAXtZwAF7WoABe1rAAXtbAAF7W0ABe1uAAXtcAAF7XIABe1zAAXtdAAF7XYABe13AAXuCgAF7i0ABe5NAAXubQAF7m8ABe5xAAXucwAF7nUABe54AAXueQAF7noABe59AAXufgAF7oAABe6BAAXugwAF7oYABe6HAAXuiAAF7osABe6MAAXulQAF7q4ABe63AAXuuQAF7rsABe7EAAXuxwAF7soABe7MAAXvFQAF7zkABe9gAAXvhAAF74cABe+JAAXviwAF740ABe+PAAXvkQAF75IABe+VAAXvrgAF788ABe/RAAXv0wAF79UABe/XAAXv2QAF79sABe/dAAXv3wAF8AAABfADAAXwBgAF8AkABfAMAAXwDwAF8BIABfAVAAXwGAAF8BoABfCVAAXwlwAF8JkABfCbAAXwngAF8J8ABfCgAAXwoQAF8KIABfCkAAXwpgAF8KcABfCoAAXwqgAF8KsABfEmAAXxKAAF8SoABfEsAAXxLwAF8TAABfExAAXxMgAF8TMABfE1AAXxNwAF8TgABfE5AAXxOwAF8TwABfG3AAXxuQAF8bwABfG+AAXxwQAF8cIABfHDAAXxxAAF8cUABfHHAAXxyQAF8coABfHLAAXxzQAF8c4ABfHnAAXx6AAF8ekABfHrAAXyZgAF8mgABfJqAAXybAAF8m8ABfJwAAXycQAF8nIABfJzAAXydQAF8ncABfJ4AAXyeQAF8nsABfJ8AAXy9wAF8vkABfL7AAXy/QAF8wAABfMBAAXzAgAF8wMABfMEAAXzBgAF8wgABfMJAAXzCgAF8wwABfMNAAXziAAF84oABfOMAAXzjgAF85EABfOSAAXzkwAF85QABfOVAAXzlwAF85kABfOaAAXzmwAF850ABfOeAAX0GQAF9BsABfQdAAX0HwAF9CIABfQjAAX0JAAF9CUABfQmAAX0KAAF9CoABfQrAAX0LAAF9C4ABfQvAAX0qgAF9KwABfSuAAX0sAAF9LMABfS0AAX0tQAF9LYABfS3AAX0uQAF9LsABfS8AAX0vQAF9L8ABfTAAAX1CQAF9S0ABfVUAAX1eAAF9XsABfV9AAX1fwAF9YEABfWDAAX1hQAF9YYABfWJAAX1ogAF9b8ABfXBAAX1wwAF9cUABfXHAAX1yQAF9csABfXNAAX16gAF9e0ABfXwAAX18wAF9fYABfX5AAX1/AAF9f8ABfYBAAX2fAAF9n4ABfaAAAX2ggAF9oUABfaGAAX2hwAF9ogABfaJAAX2iwAF9o0ABfaOAAX2jwAF9pEABfaSAAX3DQAF9w8ABfcRAAX3EwAF9xYABfcXAAX3GAAF9xkABfcaAAX3HAAF9x4ABfcfAAX3IAAF9yIABfcjAAX3ngAF96AABfeiAAX3pAAF96cABfeoAAX3qQAF96oABferAAX3rQAF968ABfewAAX3sQAF97MABfe0AAX4LwAF+DEABfg0AAX4NgAF+DkABfg6AAX4OwAF+DwABfg9AAX4PwAF+EEABfhCAAX4QwAF+EUABfhGAAX4wQAF+MMABfjFAAX4xwAF+MoABfjLAAX4zAAF+M0ABfjOAAX40AAF+NIABfjTAAX41AAF+NYABfjXAAX5UgAF+VQABflWAAX5WAAF+VsABflcAAX5XQAF+V4ABflfAAX5YQAF+WMABflkAAX5ZQAF+WcABfloAAX54wAF+eUABfnnAAX56QAF+ewABfntAAX57gAF+e8ABfnwAAX58gAF+fQABfn1AAX59gAF+fgABfn5AAX6jAAF+q8ABfrPAAX67wAF+vEABfrzAAX69QAF+vcABfr6AAX6+wAF+vwABfr/AAX7AAAF+wIABfsDAAX7BQAF+wgABfsJAAX7CgAF+w0ABfsOAAX7EwAF+ywABfs1AAX7NwAF+zkABftCAAX7RQAF+0gABftKAAX7kwAF+7cABfveAAX8AgAF/AUABfwHAAX8CQAF/AsABfwNAAX8DwAF/BAABfwTAAX8LAAF/E0ABfxPAAX8UQAF/FMABfxVAAX8VwAF/FkABfxbAAX8XQAF/H4ABfyBAAX8hAAF/IcABfyKAAX8jQAF/JAABfyTAAX8lgAF/JgABf0TAAX9FQAF/RcABf0ZAAX9HAAF/R0ABf0eAAX9HwAF/SAABf0iAAX9JAAF/SUABf0mAAX9KAAF/SkABf2kAAX9pgAF/agABf2qAAX9rQAF/a4ABf2vAAX9sAAF/bEABf2zAAX9tQAF/bYABf23AAX9uQAF/boABf41AAX+NwAF/joABf48AAX+PwAF/kAABf5BAAX+QgAF/kMABf5FAAX+RwAF/kgABf5JAAX+SwAF/kwABf5lAAX+ZgAF/mcABf5pAAX+5AAF/uYABf7oAAX+6gAF/u0ABf7uAAX+7wAF/vAABf7xAAX+8wAF/vUABf72AAX+9wAF/vkABf76AAX/dQAF/3cABf95AAX/ewAF/34ABf9/AAX/gAAF/4EABf+CAAX/hAAF/4YABf+HAAX/iAAF/4oABf+LAAYABgAGAAgABgAKAAYADAAGAA8ABgAQAAYAEQAGABIABgATAAYAFQAGABcABgAYAAYAGQAGABsABgAcAAYAlwAGAJkABgCbAAYAnQAGAKAABgChAAYAogAGAKMABgCkAAYApgAGAKgABgCpAAYAqgAGAKwABgCtAAYBKAAGASoABgEsAAYBLgAGATEABgEyAAYBMwAGATQABgE1AAYBNwAGATkABgE6AAYBOwAGAT0ABgE+AAYBhwAGAasABgHSAAYB9gAGAfkABgH7AAYB/QAGAf8ABgIBAAYCAwAGAgQABgIHAAYCIAAGAj0ABgI/AAYCQQAGAkMABgJFAAYCRwAGAkkABgJLAAYCaAAGAmsABgJuAAYCcQAGAnQABgJ3AAYCegAGAn0ABgJ/AAYC+gAGAvwABgL+AAYDAAAGAwMABgMEAAYDBQAGAwYABgMHAAYDCQAGAwsABgMMAAYDDQAGAw8ABgMQAAYDiwAGA40ABgOPAAYDkQAGA5QABgOVAAYDlgAGA5cABgOYAAYDmgAGA5wABgOdAAYDngAGA6AABgOhAAYEHAAGBB4ABgQgAAYEIgAGBCUABgQmAAYEJwAGBCgABgQpAAYEKwAGBC0ABgQuAAYELwAGBDEABgQyAAYErQAGBK8ABgSyAAYEtAAGBLcABgS4AAYEuQAGBLoABgS7AAYEvQAGBL8ABgTAAAYEwQAGBMMABgTEAAYFPwAGBUEABgVDAAYFRQAGBUgABgVJAAYFSgAGBUsABgVMAAYFTgAGBVAABgVRAAYFUgAGBVQABgVVAAYF0AAGBdIABgXUAAYF1gAGBdkABgXaAAYF2wAGBdwABgXdAAYF3wAGBeEABgXiAAYF4wAGBeUABgXmAAYGYQAGBmMABgZlAAYGZwAGBmoABgZrAAYGbAAGBm0ABgZuAAYGcAAGBnIABgZzAAYGdAAGBnYABgZ3AAYHCgAGBy0ABgdNAAYHbQAGB28ABgdxAAYHcwAGB3UABgd4AAYHeQAGB3oABgd9AAYHfgAGB4AABgeBAAYHgwAGB4YABgeHAAYHiAAGB4sABgeMAAYHkQAGB6oABgezAAYHtQAGB7cABgfAAAYHwwAGB8YABgfIAAYIEQAGCDUABghcAAYIgAAGCIMABgiFAAYIhwAGCIkABgiLAAYIjQAGCI4ABgiRAAYIqgAGCMsABgjNAAYIzwAGCNEABgjTAAYI1QAGCNcABgjZAAYI2wAGCPwABgj/AAYJAgAGCQUABgkIAAYJCwAGCQ4ABgkRAAYJFAAGCRYABgmRAAYJkwAGCZUABgmXAAYJmgAGCZsABgmcAAYJnQAGCZ4ABgmgAAYJogAGCaMABgmkAAYJpgAGCacABgoiAAYKJAAGCiYABgooAAYKKwAGCiwABgotAAYKLgAGCi8ABgoxAAYKMwAGCjQABgo1AAYKNwAGCjgABgqzAAYKtQAGCrgABgq6AAYKvQAGCr4ABgq/AAYKwAAGCsEABgrDAAYKxQAGCsYABgrHAAYKyQAGCsoABgrjAAYK5AAGCuUABgrnAAYLYgAGC2QABgtmAAYLaAAGC2sABgtsAAYLbQAGC24ABgtvAAYLcQAGC3MABgt0AAYLdQAGC3cABgt4AAYL8wAGC/UABgv3AAYL+QAGC/wABgv9AAYL/gAGC/8ABgwAAAYMAgAGDAQABgwFAAYMBgAGDAgABgwJAAYMhAAGDIYABgyIAAYMigAGDI0ABgyOAAYMjwAGDJAABgyRAAYMkwAGDJUABgyWAAYMlwAGDJkABgyaAAYNFQAGDRcABg0ZAAYNGwAGDR4ABg0fAAYNIAAGDSEABg0iAAYNJAAGDSYABg0nAAYNKAAGDSoABg0rAAYNpgAGDagABg2qAAYNrAAGDa8ABg2wAAYNsQAGDbIABg2zAAYNtQAGDbcABg24AAYNuQAGDbsABg28AAYOBQAGDikABg5QAAYOdAAGDncABg55AAYOewAGDn0ABg5/AAYOgQAGDoIABg6FAAYOngAGDrsABg69AAYOvwAGDsEABg7DAAYOxQAGDscABg7JAAYO5gAGDukABg7sAAYO7wAGDvIABg71AAYO+AAGDvsABg79AAYPeAAGD3oABg98AAYPfgAGD4EABg+CAAYPgwAGD4QABg+FAAYPhwAGD4kABg+KAAYPiwAGD40ABg+OAAYQCQAGEAsABhANAAYQDwAGEBIABhATAAYQFAAGEBUABhAWAAY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h0QAGIdMABiHVAAYh1wAGIfgABiH7AAYh/gAGIgEABiIEAAYiBwAGIgoABiINAAYiEAAGIhIABiKNAAYijwAGIpEABiKTAAYilgAGIpcABiKYAAYimQAGIpoABiKcAAYingAGIp8ABiKgAAYiogAGIqMABiMeAAYjIAAGIyIABiMkAAYjJwAGIygABiMpAAYjKgAGIysABiMtAAYjLwAGIzAABiMxAAYjMwAGIzQABiOvAAYjsQAGI7QABiO2AAYjuQAGI7oABiO7AAYjvAAGI70ABiO/AAYjwQAGI8IABiPDAAYjxQAGI8YABiPfAAYj4AAGI+EABiPjAAYkXgAGJGAABiRiAAYkZAAGJGcABiRoAAYkaQAGJGoABiRrAAYkbQAGJG8ABiRwAAYkcQAGJHMABiR0AAYk7wAGJPEABiTzAAYk9QAGJPgABiT5AAYk+gAGJPsABiT8AAYk/gAGJQAABiUBAAYlAgAGJQQABiUFAAYlgAAGJYIABiWEAAYlhgAGJYkABiWKAAYliwAGJYwABiWNAAYljwAGJZEABiWSAAYlkwAGJZUABiWWAAYmEQAGJhMABiYVAAYmFwAGJhoABiYbAAYmHAAGJh0ABiYeAAYmIAAGJiIABiYjAAYmJAAGJiYABiYnAAYmogAGJqQABiamAAYmqAAGJqsABiasAAYmrQAGJq4ABiavAAYmsQAGJrMABia0AAYmtQAGJrcABia4AAYnAQAGJyUABidMAAYncAAGJ3MABid1AAYndwAGJ3kABid7AAYnfQAGJ34ABieBAAYnmgAGJ7cABie5AAYnuwAGJ70ABie/AAYnwQAGJ8MABifFAAYn4gAGJ+UABifoAAYn6wAGJ+4ABifxAAYn9AAGJ/cABif5AAYodAAGKHYABih4AAYoegAGKH0ABih+AAYofwAGKIAABiiBAAYogwAGKIUABiiGAAYohwAGKIkABiiKAAYpBQAGKQcABikJAAYpCwAGKQ4ABikPAAYpEAAGKREABikSAAYpFAAGKRYABikXAAYpGAAGKRoABikbAAYplgAGKZgABimaAAYpnAAGKZ8ABimgAAYpoQAGKaIABimjAAYppQAGKacABimoAAYpqQAGKasABimsAAYqJwAGKikABiosAAYqLgAGKjEABioyAAYqMwAGKjQABio1AAYqNwAGKjkABio6AAY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FhwAGRYoABkWMAAZF1QAGRfkABkYgAAZGRAAGRkcABkZJAAZGSwAGRk0ABkZPAAZGUQAGRlIABkZVAAZGbgAGRpMABkaVAAZGlwAGRpkABkabAAZGnQAGRp8ABkahAAZGowAGRqUABkbKAAZGzQAGRtAABkbTAAZG1gAGRtkABkbcAAZG3wAGRuIABkblAAZG5wAGR2IABkdkAAZHZwAGR2kABkdsAAZHbQAGR24ABkdvAAZHcAAGR3IABkd0AAZHdQAGR3YABkd4AAZHeQAGR4oABkeLAAZHjQAGSAgABkgKAAZIDAAGSA4ABkgRAAZIEgAGSBMABkgUAAZIFQAGSBcABkgZAAZIGgAGSBsABkgdAAZIHgAGSJkABkibAAZIngAGSKAABkijAAZIpAAGSKUABkimAAZIpwAGSKkABkirAAZIrAAGSK0ABkivAAZIsAAGSMEABkjCAAZIxAAGST8ABklBAAZJQwAGSUUABklIAAZJSQAGSUoABklLAAZJTAAGSU4ABklQAAZJUQAGSVIABklUAAZJVQAGSdAABknSAAZJ1QAGSdcABknaAAZJ2wAGSdwABkndAAZJ3gAGSeAABkniAAZJ4wAGSeQABknmAAZJ5wAGSfgABkn5AAZJ+wAGSnYABkp4AAZKegAGSnwABkp/AAZKgAAGSoEABkqCAAZKgwAGSoUABkqHAAZKiAAGSokABkqLAAZKjAAGSwcABksJAAZLDAAGSw4ABksRAAZLEgAGSxMABksUAAZLFQAGSxcABksZAAZLGgAGSxsABksdAAZLHgAGSzcABks4AAZLOQAGSzsABku2AAZLuAAGS7oABku8AAZLvwAGS8AABkvBAAZLwgAGS8MABkvFAAZLxwAGS8gABkvJAAZLywAGS8wABkxHAAZMSQAGTEwABkxOAAZMUQAGTFIABkxTAAZMVAAGTFUABkxXAAZMWQAGTFoABkxbAAZMXQAGTF4ABkxsAAZMhQAGTLYABky5AAZMvAAGTL8ABkzCAAZMxQAGTMgABkzLAAZMzgAGTNEABkzUAAZM1wAGTNoABk0LAAZNDgAGTREABk0UAAZNFwAGTRoABk0dAAZNIAAGTSMABk0mAAZNKQAGTSwABk0vAAZNMQAGTT8ABk1aAAZNbAAGTYMABk2ZAAZNpwAGTbYABk3KAAZN1QAGTeIABk3xAAZN+gAGTo0ABk6wAAZO0AAGTvAABk7yAAZO9AAGTvYABk74AAZO+wAGTvwABk79AAZPAAAGTwEABk8DAAZPBAAGTwcABk8KAAZPCwAGTwwABk8PAAZPEAAGTxUABk8uAAZPNwAGTzkABk88AAZPRQAGT0gABk9LAAZPTQAGT5YABk+6AAZP4QAGUAUABlAIAAZQCgAGUAwABlAOAAZQEAAGUBIABlATAAZQFgAGUC8ABlBQAAZQUgAGUFQABlBWAAZQWAAGUFoABlBcAAZQXgAGUGAABlCBAAZQhAAGUIcABlCKAAZQjQAGUJAABlCTAAZQlgAGUJkABlCbAAZRFgAGURgABlEaAAZRHAAGUR8ABlEgAAZRIQAGUSIABlEjAAZRJQAGUScABlEoAAZRKQAGUSsABlEsAAZRpwAGUakABlGrAAZRrQAGUbAABlGxAAZRsgAGUbMABlG0AAZRtgAGUbgABlG5AAZRugAGUbwABlG9AAZSOAAGUjoABlI9AAZSPwAGUkIABlJDAAZSRAAGUkUABlJGAAZSSAAGUkoABlJLAAZSTAAGUk4ABlJPAAZSaAAGUmkABlJqAAZSbAAGUucABlLpAAZS6wAGUu0ABlLwAAZS8QAGUvIABlLzAAZS9AAGUvYABlL4AAZS+QAGUvoABlL8AAZS/QAGU3gABlN6AAZTfAAGU34ABlOBAAZTggAGU4MABlOEAAZThQAGU4cABlOJAAZTigAGU4sABlONAAZTjgAGVAkABlQLAAZUDQAGVA8ABlQSAAZUEwAGVBQABlQVAAZUFgAGVBgABlQaAAZUGwAGVBwABlQeAAZUHwAGVJoABlScAAZUngAGVKAABlSjAAZUpAAGVKUABlSmAAZUpwAGVKkABlSrAAZUrAAGVK0ABlSvAAZUsAAGVSsABlUtAAZVLwAGVTEABlU0AAZVNQAGVTYABlU3AAZVOAAGVToABlU8AAZVPQAGVT4ABlVAAAZVQQAGVYoABlWuAAZV1QAGVfkABlX8AAZV/wAGVgEABlYDAAZWBQAGVgcABlYIAAZWCwAGViQABlZBAAZWRAAGVkcABlZKAAZWTQAGVlAABlZTAAZWVgAGVnMABlZ2AAZWeQAGVnwABlZ/AAZWggAGVoUABlaIAAZWigAGVwUABlcHAAZXCgAGVwwABlcPAAZXEAAGVxEABlcSAAZXEwAGVxUABlcYAAZXGQAGVxoABlccAAZXHQAGV5gABleaAAZXnQAGV58ABleiAAZXowAGV6QABlelAAZXpgAGV6gABlerAAZXrAAGV60ABlevAAZXsAAGWCsABlgtAAZYMAAGWDIABlg1AAZYNgAGWDcABlg4AAZYOQAGWDsABlg+AAZYPwAGWEAABlhCAAZYQwAGWL4ABljAAAZYwwAGWMUABljIAAZYyQAGWMoABljLAAZYzAAGWM4ABljRAAZY0gAGWNMABljVAAZY1gAGWXkABlmdAAZZwQAGWeEABloIAAZaLwAGWk8ABlp2AAZamgAGWr0ABlrkAAZbCAAGWywABltQAAZbdwAGW3gABlt6AAZbfAAGW38ABluBAAZbhAAGW4YABluIAAZbiwAGW40ABluPAAZbkgAGW5UABluXAAZbmQAGW5sABlueAAZboQAGW6QABlupAAZbwgAGW8cABlvJAAZbzgAGW9EABlvTAAZcHAAGXEAABlxnAAZciwAGXI4ABlyQAAZckgAGXJQABlyWAAZcmAAGXJkABlycAAZctQAGXNoABlzcAAZc3gAGXOAABlziAAZc5AAGXOYABlzoAAZc6gAGXOwABl0RAAZdFAAGXRcABl0aAAZdHQAGXSAABl0jAAZdJgAGXSkABl0sAAZdLgAGXakABl2rAAZdrgAGXbAABl2zAAZdtAAGXbUABl22AAZdtwAGXbkABl27AAZdvAAGXb0ABl2/AAZdwAAGXdEABl3SAAZd1AAGXk8ABl5RAAZeUwAGXlUABl5YAAZeWQAGXloABl5bAAZeXAAGXl4ABl5gAAZeYQAGXmIABl5kAAZeZQAGXuAABl7iAAZe5QAGXucABl7qAAZe6wAGXuwABl7tAAZe7gAGXvAABl7yAAZe8wAGXvQABl72AAZe9wAGXwgABl8JAAZfCwAGX4YABl+IAAZfigAGX4wABl+PAAZfkAAGX5EABl+SAAZfkwAGX5UABl+XAAZfmAAGX5kABl+bAAZfnAAGYBcABmAZAAZgHAAGYB4ABmAhAAZgIgAGYCMABmAkAAZgJQAGYCcABmApAAZgKgAGYCsABmAtAAZgLgAGYD8ABmBAAAZgQgAGYL0ABmC/AAZgwQAGYMMABmDGAAZgxwAGYMgABmDJAAZgygAGYMwABmDOAAZgzwAGYNAABmDSAAZg0wAGYU4ABmFQAAZhUwAGYVUABmFYAAZhWQAGYVoABmFbAAZhXAAGYV4ABmFgAAZhYQAGYWIABmFkAAZhZQAGYX4ABmF/AAZhgAAGYYIABmH9AAZh/wAGYgEABmIDAAZiBgAGYgcABmIIAAZiCQAGYgoABmIMAAZiDgAGYg8ABmIQAAZiEgAGYhMABmKOAAZikAAGYpMABmKVAAZimAAGYpkABmKaAAZimwAGYpwABmKeAAZioAAGYqEABmKiAAZipAAGYqUABmKyAAZiywAGYuQABmLnAAZi6gAGYu0ABmLwAAZi8wAGYvYABmMPAAZjEgAGYxUABmMYAAZjGwAGYx4ABmMhAAZjIwAGYzEABmNHAAZjUAAGY10ABmNzAAZjhgAGZBkABmQ8AAZkXAAGZHwABmR+AAZkgAAGZIIABmSEAAZkhwAGZIgABmSJAAZkjAAGZI0ABmSPAAZkkAAGZJMABmSWAAZklwAGZJgABmSbAAZknAAGZKEABmS6AAZkwwAGZMUABmTIAAZk0QAGZNQABmTXAAZk2QAGZSIABmVGAAZlbQAGZZEABmWUAAZllgAGZZgABmWaAAZlnAAGZZ4ABmWfAAZlogAGZbsABmXcAAZl3gAGZeAABmXiAAZl5AAGZeYABmXoAAZl6gAGZewABmYNAAZmEAAGZhMABmYWAAZmGQAGZhwABmYfAAZmIgAGZiUABmYnAAZmogAGZqQABmamAAZmqAAGZqsABmasAAZmrQAGZq4ABmavAAZmsQAGZrMABma0AAZmtQAGZrcABma4AAZnMwAGZzUABmc3AAZnOQAGZzwABmc9AAZnPgAGZz8ABmdAAAZnQgAGZ0QABmdFAAZnRgAGZ0gABmdJAAZnxAAGZ8YABmfJAAZnywAGZ84ABmfPAAZn0AAGZ9EABmfSAAZn1AAGZ9YABmfXAAZn2AAGZ9oABmfbAAZn9AAGZ/UABmf2AAZn+AAGaHMABmh1AAZodwAGaHkABmh8AAZofQAGaH4ABmh/AAZogAAGaIIABmiEAAZohQAGaIYABmiIAAZoiQAGaQQABmkGAAZpCAAGaQoABmkNAAZpDgAGaQ8ABmkQAAZpEQAGaRMABmkVAAZpFgAGaRcABmkZAAZpGgAGaZUABmmXAAZpmQAGaZsABmmeAAZpnwAGaaAABmmhAAZpogAGaaQABmmmAAZppwAGaagABmmqAAZpqwAGaiYABmooAAZqKgAGaiwABmovAAZqMAAGajEABmoyAAZqMwAGajUABmo3AAZqOAAGajkABmo7AAZqPAAGarcABmq5AAZquwAGar0ABmrAAAZqwQAGasIABmrDAAZqxAAGasYABmrIAAZqyQAGasoABmrMAAZqzQAGaxYABms6AAZrYQAGa4UABmuIAAZriwAGa40ABmuPAAZrkQAGa5MABmuUAAZrlwAGa7AABmvNAAZr0AAGa9MABmvWAAZr2QAGa9wABmvfAAZr4gAGa/8ABmwCAAZsBQAGbAgABmwLAAZsDgAGbBEABmwUAAZsFgAGbJEABmyTAAZslgAGbJgABmybAAZsnAAGbJ0ABmyeAAZsnwAGbKEABmykAAZspQAGbKYABmyoAAZsqQAGbSQABm0mAAZtKQAGbSsABm0uAAZtLwAGbTAABm0xAAZtMgAGbTQABm03AAZtOAAGbTkABm07AAZtPAAGbbcABm25AAZtvAAGbb4ABm3BAAZtwgAGbcMABm3EAAZtxQAGbccABm3KAAZtywAGbcwABm3OAAZtzwAGbkoABm5MAAZuTwAGblEABm5UAAZuVQAGblYABm5XAAZuWAAGbloABm5dAAZuXgAGbl8ABm5hAAZuYgAGbt0ABm7fAAZu4QAGbuMABm7mAAZu5wAGbugABm7pAAZu6gAGbuwABm7vAAZu8AAGbvEABm7zAAZu9AAGb28ABm9xAAZvcwAGb3UABm94AAZveQAGb3oABm97AAZvfAAGb34ABm+BAAZvggAGb4MABm+FAAZvhgAGcAEABnADAAZwBgAGcAgABnALAAZwDAAGcA0ABnAOAAZwDwAGcBEABnAUAAZwFQAGcBYABnAYAAZwGQAGcKwABnDPAAZw7wAGcQ8ABnERAAZxEwAGcRUABnEXAAZxGgAGcRsABnEcAAZxHwAGcSAABnEiAAZxIwAGcSUABnEoAAZxKQAGcSoABnEtAAZxLgAGcTMABnFMAAZxVQAGcVcABnFZAAZxYgAGcWUABnFoAAZxagAGcbMABnHXAAZx/gAGciIABnIlAAZyJwAGcikABnIrAAZyLQAGci8ABnIwAAZyMwAGckwABnJtAAZybwAGcnEABnJzAAZydQAGcncABnJ5AAZyewAGcn0ABnKeAAZyoQAGcqQABnKnAAZyqgAGcq0ABnKwAAZyswAGcrYABnK4AAZzMwAGczUABnM3AAZzOQAGczwABnM9AAZzPgAGcz8ABnNAAAZzQgAGc0QABnNFAAZzRgAGc0gABnNJAAZzxAAGc8YABnPIAAZzygAGc80ABnPOAAZzzwAGc9AABnPRAAZz0wAGc9UABnPWAAZz1wAGc9kABnPaAAZ0VQAGdFcABnRaAAZ0XAAGdF8ABnRgAAZ0YQAGdGIABnRjAAZ0ZQAGdGcABnRoAAZ0aQAGdGsABnRsAAZ0hQAGdIYABnSHAAZ0iQAGdQQABnUGAAZ1CAAGdQoABnUNAAZ1DgAGdQ8ABnUQAAZ1EQAGdRMABnUVAAZ1FgAGdRcABnUZAAZ1GgAGdZUABnWXAAZ1mQAGdZsABnWeAAZ1nwAGdaAABnWhAAZ1ogAGdaQABnWmAAZ1pwAGdagABnWqAAZ1qwAGdiYABnYoAAZ2KgAGdiwABnYvAAZ2MAAGdjEABnYyAAZ2MwAGdjUABnY3AAZ2OAAGdjkABnY7AAZ2PAAGdrcABna5AAZ2uwAGdr0ABnbAAAZ2wQAGdsIABnbDAAZ2xAAGdsYABnbIAAZ2yQAGdsoABnbMAAZ2zQAGd0gABndKAAZ3TAAGd04ABndRAAZ3UgAGd1MABndUAAZ3VQAGd1cABndZAAZ3WgAGd1sABnddAAZ3XgAGd6cABnfLAAZ38gAGeBYABngZAAZ4GwAGeB0ABngfAAZ4IQAGeCMABngkAAZ4JwAGeEAABnhdAAZ4XwAGeGEABnhjAAZ4ZQAGeGcABnhpAAZ4awAGeIgABniLAAZ4jgAGeJEABniUAAZ4lwAGeJoABnidAAZ4nwAGeRoABnkcAAZ5HgAGeSAABnkjAAZ5JAAGeSUABnkmAAZ5JwAGeSkABnkrAAZ5LAAGeS0ABnkvAAZ5MAAGeasABnmtAAZ5rwAGebEABnm0AAZ5tQAGebYABnm3AAZ5uAAGeboABnm8AAZ5vQAGeb4ABnnAAAZ5wQAGejwABno+AAZ6QAAGekIABnpFAAZ6RgAGekcABnpIAAZ6SQAGeksABnpNAAZ6TgAGek8ABnpRAAZ6UgAGes0ABnrPAAZ60QAGetMABnrWAAZ61wAGetgABnrZAAZ62gAGetwABnreAAZ63wAGeuAABnriAAZ64wAGe14ABntgAAZ7YgAGe2QABntnAAZ7aAAGe2kABntqAAZ7awAGe20ABntvAAZ7cAAGe3EABntzAAZ7dAAGe+8ABnvxAAZ78wAGe/UABnv4AAZ7+QAGe/oABnv7AAZ7/AAGe/4ABnwAAAZ8AQAGfAIABnwEAAZ8BQAGfIAABnyCAAZ8hAAGfIYABnyJAAZ8igAGfIsABnyMAAZ8jQAGfI8ABnyRAAZ8kgAGfJMABnyVAAZ8lgAGfSkABn1MAAZ9bAAGfYwABn2OAAZ9kAAGfZIABn2UAAZ9lwAGfZgABn2ZAAZ9nAAGfZ0ABn2fAAZ9oAAGfaIABn2lAAZ9pgAGfacABn2qAAZ9qwAGfbAABn3JAAZ90gAGfdQABn3WAAZ93wAGfeIABn3lAAZ95wAGfjAABn5UAAZ+ewAGfp8ABn6iAAZ+pAAGfqYABn6oAAZ+qgAGfqwABn6tAAZ+sAAGfskABn7qAAZ+7AAGfu4ABn7wAAZ+8gAGfvQABn72AAZ++AAGfvoABn8bAAZ/HgAGfyEABn8kAAZ/JwAGfyoABn8tAAZ/MAAGfzMABn81AAZ/sAAGf7IABn+0AAZ/tgAGf7kABn+6AAZ/uwAGf7wABn+9AAZ/vwAGf8EABn/CAAZ/wwAGf8UABn/GAAaAQQAGgEMABoBFAAaARwAGgEoABoBLAAaATAAGgE0ABoBOAAaAUAAGgFIABoBTAAaAVAAGgFYABoBXAAaA0gAGgNQABoDXAAaA2QAGgNwABoDdAAaA3gAGgN8ABoDgAAaA4gAGgOQABoDlAAaA5gAGgOgABoDpAAaBAgAGgQMABoEEAAaBBgAGgYEABoGDAAaBhQAGgYcABoGKAAaBiwAGgYwABoGNAAaBjgAGgZAABoGSAAaBkwAGgZQABoGWAAaBlwAGghIABoIUAAaCFgAGghgABoIbAAaCHAAGgh0ABoIeAAaCHwAGgiEABoIjAAaCJAAGgiUABoInAAaCKAAGgqMABoKlAAaCpwAGgqkABoKsAAaCrQAGgq4ABoKvAAaCsAAGgrIABoK0AAaCtQAGgrYABoK4AAaCuQAGgzQABoM2AAaDOAAGgzoABoM9AAaDPgAGgz8ABoNAAAaDQQAGg0MABoNFAAaDRgAGg0cABoNJAAaDSgAGg8UABoPHAAaDyQAGg8sABoPOAAaDzwAGg9AABoPRAAaD0gAGg9QABoPWAAaD1wAGg9gABoPaAAaD2wAGhCQABoRIAAaEbwAGhJMABoSWAAaEmAAGhJoABoScAAaEngAGhKAABoShAAaEpAAGhL0ABoTaAAaE3AAGhN4ABoTgAAaE4gAGhOQABoTmAAaE6AAGhQUABoUIAAaFCwAGhQ4ABoURAAaFFAAGhRcABoUaAAaFHAAGhZcABoWZAAaFmwAGhZ0ABoWgAAaFoQAGhaIABoWjAAaFpAAGhaYABoWoAAaFqQAGhaoABoWsAAaFrQAGhigABoYqAAaGLAAGhi4ABoYxAAaGMgAGhjMABoY0AAaGNQAGhjcABoY5AAaGOgAGhjsABoY9AAaGPgAGhrkABoa7AAaGvQAGhr8ABobCAAaGwwAGhsQABobFAAaGxgAGhsgABobKAAaGywAGhswABobOAAaGzwAGh0oABodMAAaHTgAGh1AABodTAAaHVAAGh1UABodWAAaHVwAGh1kABodbAAaHXAAGh10ABodfAAaHYAAGh9sABofdAAaH3wAGh+EABofkAAaH5QAGh+YABofnAAaH6AAGh+oABofsAAaH7QAGh+4ABofwAAaH8QAGiGwABohuAAaIcQAGiHMABoh2AAaIdwAGiHgABoh5AAaIegAGiHwABoh+AAaIfwAGiIAABoiCAAaIgwAGiJIABokNAAaJDwAGiREABokTAAaJFgAGiRcABokYAAaJGQAGiRoABokcAAaJHgAGiR8ABokgAAaJIgAGiSMABom2AAaJ2QAGifkABooZAAaKGwAGih0ABoofAAaKIQAGiiQABoolAAaKJgAGiikABooqAAaKLAAGii0ABoowAAaKMwAGijQABoo1AAaKOAAGijkABoo+AAaKVwAGimAABopiAAaKZQAGim4ABopxAAaKdAAGinYABoq/AAaK4wAGiwoABosuAAaLMQAGizMABos1AAaLNwAGizkABos7AAaLPAAGiz8ABotYAAaLeQAGi3sABot9AAaLfwAGi4EABouDAAaLhQAGi4cABouJAAaLqgAGi60ABouwAAaLswAGi7YABou5AAaLvAAGi78ABovCAAaLxAAGjD8ABoxBAAaMQwAGjEUABoxIAAaMSQAGjEoABoxLAAaMTAAGjE4ABoxQAAaMUQAGjFIABoxUAAaMVQAGjNAABozSAAaM1AAGjNYABozZAAaM2gAGjNsABozcAAaM3QAGjN8ABozhAAaM4gAGjOMABozlAAaM5gAGjWEABo1jAAaNZgAGjWgABo1rAAaNbAAGjW0ABo1uAAaNbwAGjXEABo1zAAaNdAAGjXUABo13AAaNeAAGjZEABo2SAAaNkwAGjZUABo4QAAaOEgAGjhQABo4WAAaOGQAGjhoABo4bAAaOHAAGjh0ABo4fAAaOIQAGjiIABo4jAAaOJQAGjiYABo6hAAaOowAGjqUABo6nAAaOqgAGjqsABo6sAAaOrQAGjq4ABo6wAAaOsgAGjrMABo60AAaOtgAGjrcABo8yAAaPNAAGjzYABo84AAaPOwAGjzwABo89AAaPPgAGjz8ABo9BAAaPQwAGj0QABo9FAAaPRwAGj0gABo/DAAaPxQAGj8cABo/JAAaPzAAGj80ABo/OAAaPzwAGj9AABo/SAAaP1AAGj9UABo/WAAaP2AAGj9kABpBUAAaQVgAGkFgABpBaAAaQXQAGkF4ABpBfAAaQYAAGkGEABpBjAAaQZQAGkGYABpBnAAaQaQAGkGoABpCzAAaQ1wAGkP4ABpEiAAaRJQAGkSgABpEqAAaRLAAGkS4ABpEwAAaRMQAGkTQABpFNAAaRagAGkW0ABpFwAAaRcwAGkXYABpF5AAaRfAAGkX8ABpGcAAaRnwAGkaIABpGlAAaRqAAGkasABpGuAAaRsQAGkbMABpIuAAaSMAAGkjMABpI1AAaSOAAGkjkABpI6AAaSOwAGkjwABpI+AAaSQQAGkkIABpJDAAaSRQAGkkYABpLBAAaSwwAGksYABpLIAAaSywAGkswABpLNAAaSzgAGks8ABpLRAAaS1AAGktUABpLWAAaS2AAGktkABpNUAAaTVgAGk1kABpNbAAaTXgAGk18ABpNgAAaTYQAGk2IABpNkAAaTZwAGk2gABpNpAAaTawAGk2wABpPnAAaT6QAGk+wABpPuAAaT8QAGk/IABpPzAAaT9AAGk/UABpP3AAaT+gAGk/sABpP8AAaT/gAGk/8ABpR6AAaUfAAGlH4ABpSAAAaUgwAGlIQABpSFAAaUhgAGlIcABpSJAAaUjAAGlI0ABpSOAAaUkAAGlJEABpUMAAaVDgAGlRAABpUSAAaVFQAGlRYABpUXAAaVGAAGlRkABpUbAAaVHgAGlR8ABpUgAAaVIgAGlSMABpWeAAaVoAAGlaMABpWlAAaVqAAGlakABpWqAAaVqwAGlawABpWuAAaVsQAGlbIABpWzAAaVtQAGlbYABpZJAAaWbAAGlowABpasAAaWrgAGlrAABpayAAaWtAAGlrcABpa4AAaWuQAGlrwABpa9AAaWvwAGlsAABpbDAAaWxgAGlscABpbIAAaWywAGlswABpbRAAaW6gAGlvMABpb1AAaW+AAGlwEABpcEAAaXBwAGlwkABpdSAAaXdgAGl50ABpfBAAaXxAAGl8YABpfIAAaXygAGl8wABpfOAAaXzwAGl9IABpfrAAaYDAAGmA4ABpgQAAaYEgAGmBQABpgWAAaYGAAGmBoABpgcAAaYPQAGmEAABphDAAaYRgAGmEkABphMAAaYTwAGmFIABphVAAaYVwAGmNIABpjUAAaY1gAGmNgABpjbAAaY3AAGmN0ABpjeAAaY3wAGmOEABpjjAAaY5AAGmOUABpjnAAaY6AAGmWMABpllAAaZZwAGmWkABplsAAaZbQAGmW4ABplvAAaZcAAGmXIABpl0AAaZdQAGmXYABpl4AAaZeQAGmfQABpn2AAaZ+QAGmfsABpn+AAaZ/wAGmgAABpoBAAaaAgAGmgQABpoGAAaaBwAGmggABpoKAAaaCwAGmiQABpolAAaaJgAGmigABpqjAAaapQAGmqcABpqpAAaarAAGmq0ABpquAAaarwAGmrAABpqyAAaatAAGmrUABpq2AAaauAAGmrkABps0AAabNgAGmzgABps6AAabPQAGmz4ABps/AAabQAAGm0EABptDAAabRQAGm0YABptHAAabSQAGm0oABpvFAAabxwAGm8kABpvLAAabzgAGm88ABpvQAAab0QAGm9IABpvUAAab1gAGm9cABpvYAAab2gAGm9sABpxWAAacWAAGnFoABpxcAAacXwAGnGAABpxhAAacYgAGnGMABpxlAAacZwAGnGgABpxpAAacawAGnGwABpznAAac6QAGnOsABpztAAac8AAGnPEABpzyAAac8wAGnPQABpz2AAac+AAGnPkABpz6AAac/AAGnP0ABp1GAAadagAGnZEABp21AAaduAAGnbsABp29AAadvwAGncEABp3DAAadxAAGnccABp3gAAad/QAGngAABp4DAAaeBgAGngkABp4MAAaeDwAGnhIABp4vAAaeMgAGnjUABp44AAaeOwAGnj4ABp5BAAaeRAAGnkYABp7BAAaewwAGnsYABp7IAAaeywAGnswABp7NAAaezgAGns8ABp7RAAae1AAGntUABp7WAAae2AAGntkABp9UAAafVgAGn1kABp9bAAafXgAGn18ABp9gAAafYQAGn2IABp9kAAafZwAGn2gABp9pAAafawAGn2wABp/nAAaf6QAGn+wABp/uAAaf8QAGn/IABp/zAAaf9AAGn/UABp/3AAaf+gAGn/sABp/8AAaf/gAGn/8ABqB6AAagfAAGoH8ABqCBAAaghAAGoIUABqCGAAaghwAGoIgABqCKAAagjQAGoI4ABqCPAAagkQAGoJIABqENAAahDwAGoREABqETAAahFgAGoRcABqEYAAahGQAGoRoABqEcAAahHwAGoSAABqEhAAahIwAGoSQABqGfAAahoQAGoaMABqGlAAahqAAGoakABqGqAAahqwAGoawABqGuAAahsQAGobIABqGzAAahtQAGobYABqIxAAaiMwAGojYABqI4AAaiOwAGojwABqI9AAaiPgAGoj8ABqJBAAaiRAAGokUABqJGAAaiSAAGokkABqLcAAai/wAGox8ABqM/AAajQQAGo0MABqNFAAajRwAGo0oABqNLAAajTAAGo08ABqNQAAajUgAGo1MABqNWAAajWQAGo1oABqNbAAajXgAGo18ABqNoAAajgQAGo4oABqOMAAajjwAGo5gABqObAAajngAGo6AABqPpAAakDQAGpDQABqRYAAakWwAGpF0ABqRfAAakYQAGpGMABqRlAAakZgAGpGkABqSCAAakowAGpKUABqSnAAakqQAGpKsABqStAAakrwAGpLEABqSzAAak1AAGpNcABqTaAAak3QAGpOAABqTjAAak5gAGpOkABqTsAAak7gAGpWkABqVrAAalbQAGpW8ABqVyAAalcwAGpXQABqV1AAaldgAGpXgABqV6AAalewAGpXwABqV+AAalfwAGpfoABqX8AAal/gAGpgAABqYDAAamBAAGpgUABqYGAAamBwAGpgkABqYLAAamDAAGpg0ABqYPAAamEAAGposABqaNAAamkAAGppIABqaVAAamlgAGppcABqaYAAammQAGppsABqadAAamngAGpp8ABqahAAamogAGprsABqa8AAamvQAGpr8ABqc6AAanPAAGpz4ABqdAAAanQwAGp0QABqdFAAanRgAGp0cABqdJAAanSwAGp0wABqdNAAanTwAGp1AABqfLAAanzQAGp88ABqfRAAan1AAGp9UABqfWAAan1wAGp9gABqfaAAan3AAGp90ABqfeAAan4AAGp+EABqhcAAaoXgAGqGAABqhiAAaoZQAGqGYABqhnAAaoaAAGqGkABqhrAAaobQAGqG4ABqhvAAaocQAGqHIABqjtAAao7wAGqPEABqjzAAao9gAGqPcABqj4AAao+QAGqPoABqj8AAao/gAGqP8ABqkAAAapAgAGqQMABql+AAapgAAGqYIABqmEAAaphwAGqYgABqmJAAapigAGqYsABqmNAAapjwAGqZAABqmRAAapkwAGqZQABqndAAaqAQAGqigABqpMAAaqTwAGqlIABqpUAAaqVgAGqlgABqpaAAaqWwAGql4ABqp3AAaqlAAGqpcABqqaAAaqnQAGqqAABqqjAAaqpgAGqqkABqrGAAaqyQAGqswABqrPAAaq0gAGqtUABqrYAAaq2wAGqt0ABqtYAAarWgAGq10ABqtfAAarYgAGq2MABqtkAAarZQAGq2YABqtoAAarawAGq2wABqttAAarbwAGq3AABqvrAAar7QAGq/AABqvyAAar9QAGq/YABqv3AAar+AAGq/kABqv7AAar/gAGq/8ABqwAAAasAgAGrAMABqx+AAasgAAGrIMABqyFAAasiAAGrIkABqyKAAasiwAGrIwABqyOAAaskQAGrJIABqyTAAaslQAGrJYABq0RAAatEwAGrRYABq0YAAatGwAGrRwABq0dAAatHgAGrR8ABq0hAAatJAAGrSUABq0mAAatKAAGrSkABq2sAAat0AAGrfQABq4XAAauPgAGrl4ABq6FAAaurAAGrswABq7wAAavFAAGrxYABq8ZAAavGwAGrx0ABq8fAAavIgAGryUABq8nAAavKQAGrywABq8uAAavMAAGrzMABq82AAavNwAGrzwABq9VAAavWgAGr1wABq9hAAavZAAGr2YABq+vAAav0wAGr/oABrAeAAawIQAGsCMABrAlAAawJwAGsCkABrArAAawLAAGsC8ABrBIAAawbQAGsG8ABrBxAAawcwAGsHUABrB3AAaweQAGsHsABrB9AAawfwAGsKQABrCnAAawqgAGsK0ABrCwAAawswAGsLYABrC5AAawvAAGsL8ABrDBAAaxPAAGsT4ABrFBAAaxQwAGsUYABrFHAAaxSAAGsUkABrFKAAaxTAAGsU4ABrFPAAaxUAAGsVIABrFTAAaxZAAGsWUABrFnAAax4gAGseQABrHmAAax6AAGsesABrHsAAax7QAGse4ABrHvAAax8QAGsfMABrH0AAax9QAGsfcABrH4AAaycwAGsnUABrJ4AAayegAGsn0ABrJ+AAayfwAGsoAABrKBAAaygwAGsoUABrKGAAayhwAGsokABrKKAAaymwAGspwABrKeAAazGQAGsxsABrMdAAazHwAGsyIABrMjAAazJAAGsyUABrMmAAazKAAGsyoABrMrAAazLAAGsy4ABrMvAAazqgAGs6wABrOvAAazsQAGs7QABrO1AAaztgAGs7cABrO4AAazugAGs7wABrO9AAazvgAGs8AABrPBAAaz0gAGs9MABrPVAAa0UAAGtFIABrRUAAa0VgAGtFkABrRaAAa0WwAGtFwABrRdAAa0XwAGtGEABrRiAAa0YwAGtGUABrRmAAa04QAGtOMABrTmAAa06AAGtOsABrTsAAa07QAGtO4ABrTvAAa08QAGtPMABrT0AAa09QAGtPcABrT4AAa1EQAGtRIABrUTAAa1FQAGtZAABrWSAAa1lAAGtZYABrWZAAa1mgAGtZsABrWcAAa1nQAGtZ8ABrWhAAa1ogAGtaMABrWlAAa1pgAGtiEABrYjAAa2JgAGtigABrYrAAa2LAAGti0ABrYuAAa2LwAGtjEABrYzAAa2NAAGtjUABrY3AAa2OAAGtk0ABrZmAAa2dwAGtnoABrZ9AAa2gAAGtoMABraUAAa2lwAGtpoABradAAa2oAAGtqIABrarAAa2uAAGtscABrbnAAa3egAGt50ABre9AAa33QAGt98ABrfhAAa34wAGt+UABrfoAAa36QAGt+oABrftAAa37gAGt/AABrfxAAa38wAGt/YABrf3AAa3+AAGt/sABrf8AAa4BQAGuB4ABrgnAAa4KQAGuCsABrg0AAa4NwAGuDoABrg8AAa4hQAGuKkABrjQAAa49AAGuPcABrj5AAa4+wAGuP0ABrj/AAa5AQAGuQIABrkFAAa5HgAGuT8ABrlBAAa5QwAGuUUABrlHAAa5SQAGuUsABrlNAAa5TwAGuXAABrlzAAa5dgAGuXkABrl8AAa5fwAGuYIABrmFAAa5iAAGuYoABroFAAa6BwAGugkABroLAAa6DgAGug8ABroQAAa6EQAGuhIABroUAAa6FgAGuhcABroYAAa6GgAGuhsABrqWAAa6mAAGupoABrqcAAa6nwAGuqAABrqhAAa6ogAGuqMABrqlAAa6pwAGuqgABrqpAAa6qwAGuqwABrsnAAa7KQAGuywABrsuAAa7MQAGuzIABrszAAa7NAAGuzUABrs3AAa7OQAGuzoABrs7AAa7PQAGuz4ABrtXAAa7WAAGu1kABrtbAAa71gAGu9gABrvaAAa73AAGu98ABrvgAAa74QAGu+IABrvjAAa75QAGu+cABrvoAAa76QAGu+sABrvsAAa8ZwAGvGkABrxrAAa8bQAGvHAABrxxAAa8cgAGvHMABrx0AAa8dgAGvHgABrx5AAa8egAGvHwABrx9AAa8+AAGvPoABrz8AAa8/gAGvQEABr0CAAa9AwAGvQQABr0FAAa9BwAGvQkABr0KAAa9CwAGvQ0ABr0OAAa9iQAGvYsABr2NAAa9jwAGvZIABr2TAAa9lAAGvZUABr2WAAa9mAAGvZoABr2bAAa9nAAGvZ4ABr2fAAa+GgAGvhwABr4eAAa+IAAGviMABr4kAAa+JQAGviYABr4nAAa+KQAGvisABr4sAAa+LQAGvi8ABr4wAAa+eQAGvp0ABr7EAAa+6AAGvusABr7tAAa+7wAGvvEABr7zAAa+9QAGvvYABr75AAa/EgAGvy8ABr8xAAa/MwAGvzUABr83AAa/OQAGvzsABr89AAa/WgAGv10ABr9gAAa/YwAGv2YABr9pAAa/bAAGv28ABr9xAAa/7AAGv+4ABr/wAAa/8gAGv/UABr/2AAa/9wAGv/gABr/5AAa/+wAGv/0ABr/+AAa//wAGwAEABsACAAbAfQAGwH8ABsCBAAbAgwAGwIYABsCHAAbAiAAGwIkABsCKAAbAjAAGwI4ABsCPAAbAkAAGwJIABsCTAAbBDgAGwRAABsESAAbBFAAGwRcABsEYAAbBGQAGwRoABsEbAAbBHQAGwR8ABsEgAAbBIQAGwSMABsEkAAbBnwAGwaEABsGkAAbBpgAGwakABsGqAAbBqwAGwawABsGtAAbBrwAGwbEABsGyAAbBswAGwbUABsG2AAbCMQAGwjMABsI1AAbCNwAGwjoABsI7AAbCPAAGwj0ABsI+AAbCQAAGwkIABsJDAAbCRAAGwkYABsJHAAbCwgAGwsQABsLGAAbCyAAGwssABsLMAAbCzQAGws4ABsLPAAbC0QAGwtMABsLUAAbC1QAGwtcABsLYAAbDUwAGw1UABsNXAAbDWQAGw1wABsNdAAbDXgAGw18ABsNgAAbDYgAGw2QABsNlAAbDZgAGw2gABsNpAAbD/AAGxB8ABsQ/AAbEXwAGxGEABsRjAAbEZQAGxGcABsRqAAbEawAGxGwABsRvAAbEcAAGxHIABsRzAAbEdgAGxHkABsR6AAbEewAGxH4ABsR/AAbEhAAGxJ0ABsSmAAbEqAAGxKsABsS0AAbEtwAGxLoABsS8AAbFBQAGxSkABsVQAAbFdAAGxXcABsV5AAbFewAGxX0ABsV/AAbFgQAGxYIABsWFAAbFngAGxb8ABsXBAAbFwwAGxcUABsXHAAbFyQAGxcsABsXNAAbFzwAGxfAABsXzAAbF9gAGxfkABsX8AAbF/wAGxgIABsYFAAbGCAAGxgoABsaFAAbGhwAGxokABsaLAAbGjgAGxo8ABsaQAAbGkQAGxpIABsaUAAbGlgAGxpcABsaYAAbGmgAGxpsABscWAAbHGAAGxxoABsccAAbHHwAGxyAABschAAbHIgAGxyMABsclAAbHJwAGxygABscpAAbHKwAGxywABsenAAbHqQAGx6wABseuAAbHsQAGx7IABsezAAbHtAAGx7UABse3AAbHuQAGx7oABse7AAbHvQAGx74ABsfXAAbH2AAGx9kABsfbAAbIVgAGyFgABshaAAbIXAAGyF8ABshgAAbIYQAGyGIABshjAAbIZQAGyGcABshoAAbIaQAGyGsABshsAAbI5wAGyOkABsjrAAbI7QAGyPAABsjxAAbI8gAGyPMABsj0AAbI9gAGyPgABsj5AAbI+gAGyPwABsj9AAbJeAAGyXoABsl8AAbJfgAGyYEABsmCAAbJgwAGyYQABsmFAAbJhwAGyYkABsmKAAbJiwAGyY0ABsmOAAbKCQAGygsABsoNAAbKDwAGyhIABsoTAAbKFAAGyhUABsoWAAbKGAAGyhoABsobAAbKHAAGyh4ABsofAAbKmgAGypwABsqeAAbKoAAGyqMABsqkAAbKpQAGyqYABsqnAAbKqQAGyqsABsqsAAbKrQAGyq8ABsqwAAbK+QAGyx0ABstEAAbLaAAGy2sABstuAAbLcAAGy3IABst0AAbLdgAGy3cABst6AAbLkwAGy7AABsuzAAbLtgAGy7kABsu8AAbLvwAGy8IABsvFAAbL4gAGy+UABsvoAAbL6wAGy+4ABsvxAAbL9AAGy/cABsv5AAbMdAAGzHYABsx5AAbMewAGzH4ABsx/AAbMgAAGzIEABsyCAAbMhAAGzIcABsyIAAbMiQAGzIsABsyMAAbNBwAGzQkABs0MAAbNDgAGzREABs0SAAbNEwAGzRQABs0VAAbNFwAGzRoABs0bAAbNHAAGzR4ABs0fAAbNmgAGzZwABs2fAAbNoQAGzaQABs2lAAbNpgAGzacABs2oAAbNqgAGza0ABs2uAAbNrwAGzbEABs2yAAbOLQAGzi8ABs4yAAbONAAGzjcABs44AAbOOQAGzjoABs47AAbOPQAGzkAABs5BAAbOQgAGzkQABs5FAAbOwAAGzsIABs7EAAbOxgAGzskABs7KAAbOywAGzswABs7NAAbOzwAGztIABs7TAAbO1AAGztYABs7XAAbPUgAGz1QABs9WAAbPWAAGz1sABs9cAAbPXQAGz14ABs9fAAbPYQAGz2QABs9lAAbPZgAGz2gABs9pAAbP5AAGz+YABs/pAAbP6wAGz+4ABs/vAAbP8AAGz/EABs/yAAbP9AAGz/cABs/4AAbP+QAGz/sABs/8AAbQjwAG0LIABtDSAAbQ8gAG0PQABtD2AAbQ+AAG0PoABtD9AAbQ/gAG0P8ABtECAAbRAwAG0QUABtEGAAbRCAAG0QsABtEMAAbRDQAG0RAABtERAAbRGgAG0TMABtE8AAbRPgAG0UAABtFJAAbRTAAG0U8ABtFRAAbRmgAG0b4ABtHlAAbSCQAG0gwABtIOAAbSEAAG0hIABtIUAAbSFgAG0hcABtIaAAbSMwAG0lQABtJWAAbSWAAG0loABtJcAAbSXgAG0mAABtJiAAbSZAAG0oUABtKIAAbSiwAG0o4ABtKRAAbSlAAG0pcABtKaAAbSnQAG0p8ABtMaAAbTHAAG0x4ABtMgAAbTIwAG0yQABtMlAAbTJgAG0ycABtMpAAbTKwAG0ywABtMtAAbTLwAG0zAABtOrAAbTrQAG068ABtOxAAbTtAAG07UABtO2AAbTtwAG07gABtO6AAbTvAAG070ABtO+AAbTwAAG08EABtQ8AAbUPgAG1EEABtRDAAbURgAG1EcABtRIAAbUSQAG1EoABtRMAAbUTgAG1E8ABtRQAAbUUgAG1FMABtRsAAbUbQAG1G4ABtRwAAbU6wAG1O0ABtTvAAbU8QAG1PQABtT1AAbU9gAG1PcABtT4AAbU+gAG1PwABtT9AAbU/gAG1QAABtUBAAbVfAAG1X4ABtWAAAbVggAG1YUABtWGAAbVhwAG1YgABtWJAAbViwAG1Y0ABtWOAAbVjwAG1ZEABtWSAAbWDQAG1g8ABtYRAAbWEwAG1hYABtYXAAbWGAAG1hkABtYaAAbWHAAG1h4ABtYfAAbWIAAG1iIABtYjAAbWngAG1qAABtaiAAbWpAAG1qcABtaoAAbWqQAG1qoABtarAAbWrQAG1q8ABtawAAbWsQAG1rMABta0AAbXLwAG1zEABtczAAbXNQAG1zgABtc5AAbXOgAG1zsABtc8AAbXPgAG10AABtdBAAbXQgAG10QABtdFAAbXjgAG17IABtfZAAbX/QAG2AAABtgCAAbYBAAG2AYABtgIAAbYCgAG2AsABtgOAAbYJwAG2EQABthGAAbYSAAG2EoABthMAAbYTgAG2FAABthSAAbYbwAG2HIABth1AAbYeAAG2HsABth+AAbYgQAG2IQABtiGAAbZAQAG2QMABtkFAAbZBwAG2QoABtkLAAbZDAAG2Q0ABtkOAAbZEAAG2RIABtkTAAbZFAAG2RYABtkXAAbZkgAG2ZQABtmWAAbZmAAG2ZsABtmcAAbZnQAG2Z4ABtmfAAbZoQAG2aMABtmkAAbZpQAG2acABtmoAAbaIwAG2iUABtonAAbaKQAG2iwABtotAAbaLgAG2i8ABtowAAbaMgAG2jQABto1AAbaNgAG2jgABto5AAbatAAG2rYABtq4AAbaugAG2r0ABtq+AAbavwAG2sAABtrBAAbawwAG2sUABtrGAAbaxwAG2skABtrKAAbbRQAG20cABttJAAbbSwAG204ABttPAAbbUAAG21EABttSAAbbVAAG21YABttXAAbbWAAG21oABttbAAbb1gAG29gABtvbAAbb3QAG2+AABtvhAAbb4gAG2+MABtvkAAbb5gAG2+gABtvpAAbb6gAG2+wABtvtAAbcDAAG3IcABtyJAAbciwAG3I0ABtyQAAbckQAG3JIABtyTAAbclAAG3JYABtyYAAbcmQAG3JoABtycAAbcnQAG3TAABt1TAAbdcwAG3ZMABt2VAAbdlwAG3ZkABt2bAAbdngAG3Z8ABt2gAAbdowAG3aQABt2mAAbdpwAG3akABt2sAAbdrQAG3a4ABt2xAAbdsgAG3bcABt3QAAbd2QAG3dsABt3dAAbd5gAG3ekABt3sAAbd7gAG3jcABt5bAAbeggAG3qYABt6pAAbeqwAG3q0ABt6vAAbesQAG3rMABt60AAbetwAG3tAABt7xAAbe8wAG3vUABt73AAbe+QAG3vsABt79AAbe/wAG3wEABt8iAAbfJQAG3ygABt8rAAbfLgAG3zEABt80AAbfNwAG3zoABt88AAbftwAG37kABt+7AAbfvQAG38AABt/BAAbfwgAG38MABt/EAAbfxgAG38gABt/JAAbfygAG38wABt/NAAbgSAAG4EoABuBMAAbgTgAG4FEABuBSAAbgUwAG4FQABuBVAAbgVwAG4FkABuBaAAbgWwAG4F0ABuBeAAbg2QAG4NsABuDeAAbg4AAG4OMABuDkAAbg5QAG4OYABuDnAAbg6QAG4OsABuDsAAbg7QAG4O8ABuDwAAbhCQAG4QoABuELAAbhDQAG4YgABuGKAAbhjAAG4Y4ABuGRAAbhkgAG4ZMABuGUAAbhlQAG4ZcABuGZAAbhmgAG4ZsABuGdAAbhngAG4hkABuIbAAbiHQAG4h8ABuIiAAbiIwAG4iQABuIlAAbiJgAG4igABuIqAAbiKwAG4iwABuIuAAbiLwAG4qoABuKsAAbirgAG4rAABuKzAAbitAAG4rUABuK2AAbitwAG4rkABuK7AAbivAAG4r0ABuK/AAbiwAAG4zsABuM9AAbjPwAG40EABuNEAAbjRQAG40YABuNHAAbjSAAG40oABuNMAAbjTQAG404ABuNQAAbjUQAG48wABuPOAAbj0AAG49IABuPVAAbj1gAG49cABuPYAAbj2QAG49sABuPdAAbj3gAG498ABuPhAAbj4gAG5CsABuRPAAbkdgAG5JoABuSdAAbknwAG5KEABuSjAAbkpQAG5KcABuSoAAbkqwAG5MQABuThAAbk4wAG5OUABuTnAAbk6QAG5OsABuTtAAbk7wAG5QwABuUPAAblEgAG5RUABuUYAAblGwAG5R4ABuUhAAblIwAG5Z4ABuWgAAblogAG5aQABuWnAAblqAAG5akABuWqAAblqwAG5a0ABuWvAAblsAAG5bEABuWzAAbltAAG5i8ABuYxAAbmMwAG5jUABuY4AAbmOQAG5joABuY7AAbmPAAG5j4ABuZAAAbmQQAG5kIABuZEAAbmRQAG5sAABubCAAbmxAAG5sYABubJAAbmygAG5ssABubMAAbmzQAG5s8ABubRAAbm0gAG5tMABubVAAbm1gAG51EABudTAAbnVgAG51gABudbAAbnXAAG510ABudeAAbnXwAG52EABudjAAbnZAAG52UABudnAAbnaAAG5+MABuflAAbn5wAG5+kABufsAAbn7QAG5+4ABufvAAbn8AAG5/IABuf0AAbn9QAG5/YABuf4AAbn+QAG6HQABuh2AAboeAAG6HoABuh9AAbofgAG6H8ABuiAAAbogQAG6IMABuiFAAbohgAG6IcABuiJAAboigAG6QUABukHAAbpCQAG6QsABukOAAbpDwAG6RAABukRAAbpEgAG6RQABukWAAbpFwAG6RgABukaAAbpGwAG6SwABuktAAbpLwAG6aoABumsAAbprgAG6bAABumzAAbptAAG6bUABum2AAbptwAG6bkABum8AAbpvQAG6b4ABunAAAbpwQAG6jwABuo+AAbqQAAG6kIABupFAAbqRgAG6kcABupIAAbqSQAG6ksABupOAAbqTwAG6lAABupSAAbqUwAG6s4ABurQAAbq0wAG6tUABurYAAbq2QAG6toABurbAAbq3AAG6t4ABurhAAbq4gAG6uMABurlAAbq5gAG63kABuucAAbrvAAG69wABuveAAbr4AAG6+IABuvkAAbr5wAG6+gABuvpAAbr7AAG6+0ABuvvAAbr8AAG6/MABuv2AAbr9wAG6/gABuv7AAbr/AAG7AEABuwaAAbsIwAG7CUABuwoAAbsMQAG7DQABuw3AAbsOQAG7IIABuymAAbszQAG7PEABuz0AAbs9gAG7PgABuz6AAbs/AAG7P4ABuz/AAbtAgAG7RsABu08AAbtPgAG7UAABu1CAAbtRAAG7UYABu1IAAbtSgAG7UwABu1tAAbtcAAG7XMABu12AAbteQAG7XwABu1/AAbtggAG7YUABu2HAAbuAgAG7gQABu4GAAbuCAAG7gsABu4MAAbuDQAG7g4ABu4PAAbuEQAG7hMABu4UAAbuFQAG7hcABu4YAAbukwAG7pUABu6XAAb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A7AAHARMABwE3AAcBOgAHATwABwE+AAcBQAAHAUIABwFEAAcBRQAHAUgABwFhAAcBggAHAYQABwGGAAcBiAAHAYoABwGMAAcBjgAHAZAABwGSAAcBswAHAbYABwG5AAcBvAAHAb8ABwHCAAcBxQAHAcgABwHLAAcBzQAHAkgABwJKAAcCTAAHAk4ABwJRAAcCUgAHAlMABwJUAAcCVQAHAlcABwJZAAcCWgAHAlsABwJdAAcCXgAHAtkABwLbAAcC3QAHAt8ABwLiAAcC4wAHAuQABwLlAAcC5gAHAugABwLqAAcC6wAHAuwABwLuAAcC7wAHA2oABwNsAAcDbwAHA3EABwN0AAcDdQAHA3YABwN3AAcDeAAHA3oABwN8AAcDfQAHA34ABwOAAAcDgQAHA5oABwObAAcDnAAHA54ABwQZAAcEGwAHBB0ABwQfAAcEIgAHBCMABwQkAAcEJQAHBCYABwQoAAcEKgAHBCsABwQsAAcELgAHBC8ABwSqAAcErAAHBK4ABwSwAAcEswAHBLQABwS1AAcEtgAHBLcABwS5AAcEuwAHBLwABwS9AAcEvwAHBMAABwU7AAcFPQAHBT8ABwVBAAcFRAAHBUUABwVGAAcFRwAHBUgABwVKAAcFTAAHBU0ABwVOAAcFUAAHBVEABwXMAAcFzgAHBdAABwXSAAcF1QAHBdYABwXXAAcF2AAHBdkABwXbAAcF3QAHBd4ABwXfAAcF4QAHBeIABwZdAAcGXwAHBmEABwZjAAcGZgAHBmcABwZoAAcGaQAHBmoABwZsAAcGbgAHBm8ABwZwAAcGcgAHBnMABwa8AAcG4AAHBwcABwcrAAcHLgAHBzEABwczAAcHNQAHBzcABwc5AAcHOgAHBz0ABwdWAAcHcwAHB3YABwd5AAcHfAAHB38ABweCAAcHhQAHB4gABwelAAcHqAAHB6sABweuAAcHsQAHB7QABwe3AAcHugAHB7wABwg3AAcIOQAHCDwABwg+AAcIQQAHCEIABwhDAAcIRAAHCEUABwhHAAcISgAHCEsABwhMAAcITgAHCE8ABwjKAAcIzAAHCM8ABwjRAAcI1AAHCNUABwjWAAcI1wAHCNgABwjaAAcI3QAHCN4ABwjfAAcI4QAHCOIABwldAAcJXwAHCWIABwlkAAcJZwAHCWgABwlpAAcJagAHCWsABwltAAc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cYAAHHGIABxxlAAccZgAHHGcABxxoAAccaQAHHGsABxxtAAccbgAHHG8ABxxxAAcccgAHHO0ABxzvAAcc8QAHHPMABxz2AAcc9wAHHPgABxz5AAcc+gAHHPwABxz+AAcc/wAHHQAABx0CAAcdAwAHHX4ABx2AAAcdggAHHYQABx2HAAcdiAAHHYkABx2KAAcdiwAHHY0ABx2PAAcdkAAHHZEABx2TAAcdlAAHHg8ABx4RAAceEwAHHhUABx4YAAceGQAHHhoABx4bAAceHAAHHh4ABx4gAAceIQAHHiIABx4kAAceJQAHHm4ABx6SAAceuQAHHt0ABx7gAAce4gAHHuQABx7mAAce6AAHHuoABx7rAAce7gAHHwcABx8kAAcfJgAHHygABx8qAAcfLAAHHy4ABx8wAAcfMgAHH08ABx9SAAcfVQAHH1gABx9bAAcfXgAHH2EABx9kAAcfZgAHH+EABx/jAAcf5QAHH+cABx/qAAcf6wAHH+wABx/tAAcf7gAHH/AABx/yAAcf8wAHH/QABx/2AAcf9wAHIHIAByB0AAcgdgAHIHgAByB7AAcgfAAHIH0AByB+AAcgfwAHIIEAByCDAAcghAAHIIUAByCHAAcgiAAHIQMAByEFAAchBwAHIQkAByEMAAchDQAHIQ4AByEPAAchEAAHIRIAByEUAAchFQAHIRYAByEYAAchGQAHIZQAByGWAAchmQAHIZsAByGeAAchnwAHIaAAByGhAAchogAHIaQAByGmAAchpwAHIagAByGqAAchqwAHIiYAByIoAAciKgAHIiwAByIvAAciMAAHIjEAByIyAAciMwAHIjUAByI3AAciOAAHIjkAByI7AAciPAAHIrcAByK5AAciuwAHIr0AByLAAAciwQAHIsIAByLDAAcixAAHIsYAByLIAAciyQAHIsoAByLMAAcizQAHI0gAByNKAAcjTAAHI04AByNRAAcjUgAHI1MAByNUAAcjVQAHI1cAByNZAAcjWgAHI1sAByNdAAcjXgAHI/EAByQUAAckNAAHJFQAByRWAAckWAAHJFoAByRcAAckXwAHJGAAByRhAAckZAAHJGUAByRnAAckaAAHJGoAByRtAAckbgAHJG8AByRyAAckcwAHJHgABySRAAckmgAHJJwABySeAAckpwAHJKoAByStAAckrwAHJPgAByUcAAclQwAHJWcAByVqAAclbAAHJW4AByVwAAclcgAHJXQAByV1AAcleAAHJZEAByWyAAcltAAHJbYAByW4AAclugAHJbwAByW+AAclwAAHJcIAByXjAAcl5gAHJekAByXsAAcl7wAHJfIAByX1AAcl+AAHJfsAByX9AAcmeAAHJnoAByZ8AAcmfgAHJoEAByaCAAcmgwAHJoQAByaFAAcmhwAHJokAByaKAAcmiwAHJo0AByaOAAcnCQAHJwsABycNAAcnDwAHJxIABycTAAcnFAAHJxUABycWAAcnGAAHJxoABycbAAcnHAAHJx4ABycfAAcnmgAHJ5wAByefAAcnoQAHJ6QAByelAAcnpgAHJ6cAByeoAAcnqgAHJ6wAByetAAcnrgAHJ7AAByexAAcnygAHJ8sAByfMAAcnzgAHKEkAByhLAAcoTQAHKE8AByhSAAcoUwAHKFQAByhVAAcoVgAHKFgAByhaAAcoWwAHKFwAByheAAcoXwAHKNoAByjcAAco3gAHKOAAByjjAAco5AAHKOUAByjmAAco5wAHKOkAByjrAAco7AAHKO0AByjvAAco8AAHKWsAByltAAcpbwAHKXEAByl0AAcpdQAHKXYAByl3AAcpeAAHKXoAByl8AAcpfQAHKX4ABymAAAcpgQAHKfwAByn+AAcqAAAHKgIAByoFAAcqBgAHKgcAByoIAAcqCQAHKgsAByoNAAcqDgAHKg8AByoRAAcqEgAHKo0AByqPAAcqkQAHKpMAByqWAAcqlwAHKpgAByqZAAcqmgAHKpwAByqeAAcqnwAHKqAAByqiAAcqowAHKuwABysQAAcrNwAHK1sAByteAAcrYAAHK2IABytkAAcrZgAHK2gABytpAAcrbAAHK4UAByuiAAcrpAAHK6YAByuoAAcrqgAHK6wAByuuAAcrsAAHK80AByvQAAcr0wAHK9YAByvZAAcr3AAHK98AByviAAcr5AAHLF8AByxhAAcsYwAHLGUAByxoAAcsaQAHLGoAByxrAAcsbAAHLG4AByxwAAcscQAHLHIAByx0AAcsdQAHLPAAByzyAAcs9AAHLPYAByz5AAcs+gAHLPsAByz8AAcs/QAHLP8ABy0BAActAgAHLQMABy0FAActBgAHLYEABy2DAActhQAHLYcABy2KAActiwAHLYwABy2NAActjgAHLZAABy2SAAc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Q4AAHUOIAB1DjAAdQ5gAHUP8AB1EcAAdRHgAHUSAAB1EiAAdRJAAHUSYAB1EoAAdRKgAHUUcAB1FKAAdRTQAHUVAAB1FTAAdRVgAHUVkAB1FcAAdRXgAHUdkAB1HbAAdR3QAHUd8AB1HiAAdR4wAHUeQAB1HlAAdR5gAHUegAB1HqAAdR6wAHUewAB1HuAAdR7wAHUmoAB1JsAAdSbgAHUnAAB1JzAAdSdAAHUnUAB1J2AAdSdwAHUnkAB1J7AAdSfAAHUn0AB1J/AAdSgAAHUvsAB1L9AAdTAAAHUwIAB1MFAAdTBgAHUwcAB1MIAAdTCQAHUwsAB1MNAAdTDgAHUw8AB1MRAAdTEgAHUxUAB1OQAAdTkgAHU5QAB1OWAAdTmQAHU5oAB1ObAAdTnAAHU50AB1OfAAdToQAHU6IAB1OjAAdTpQAHU6YAB1QhAAdUIwAHVCUAB1QnAAdUKgAHVCsAB1QsAAdULQAHVC4AB1QwAAdUMgAHVDMAB1Q0AAdUNgAHVDcAB1SyAAdUtAAHVLYAB1S4AAdUuwAHVLwAB1S9AAdUvgAHVL8AB1TBAAdUwwAHVMQAB1TFAAdUxwAHVMgAB1VDAAdVRQAHVUcAB1VJAAdVTAAHVU0AB1VOAAdVTwAHVVAAB1VSAAdVVAAHVVUAB1VWAAdVWAAHVVkAB1VqAAdVawAHVW0AB1V+AAdViwAHVY4AB1WRAAdVlAAHVZYAB1XPAAdV0gAHVdQAB1XXAAdV2gAHVd0AB1XgAAdWYwAHVocAB1arAAdWzgAHVvUAB1cVAAdXPAAHV2MAB1eDAAdXpwAHV8sAB1fNAAdX0AAHV9IAB1fUAAdX1gAHV9kAB1fcAAdX3gAHV+AAB1fjAAdX5QAHV+cAB1fqAAdX7QAHV+4AB1fzAAdYDAAHWBEAB1gTAAdYGAAHWBsAB1gdAAdYZgAHWIoAB1ixAAdY1QAHWNgAB1jaAAdY3AAHWN4AB1jgAAdY4gAHWOMAB1jmAAdY/wAHWSQAB1kmAAdZKAAHWSoAB1ksAAdZLgAHWTAAB1kyAAdZNAAHWTYAB1lbAAdZXgAHWWEAB1lkAAdZZwAHWWoAB1ltAAdZcAAHWXMAB1l2AAdZeAAHWfMAB1n1AAdZ+AAHWfoAB1n9AAdZ/gAHWf8AB1oAAAdaAQAHWgMAB1oFAAdaBgAHWgcAB1oJAAdaCgAHWhsAB1ocAAdaHgAHWpkAB1qbAAdanQAHWp8AB1qiAAdaowAHWqQAB1qlAAdapgAHWqgAB1qqAAdaqwAHWqwAB1quAAdarwAHWyoAB1ssAAdbLwAHWzEAB1s0AAdbNQAHWzYAB1s3AAdbOAAHWzoAB1s8AAdbPQAHWz4AB1tAAAdbQQAHW1IAB1tTAAdbVQAHW9AAB1vSAAdb1AAHW9YAB1vZAAdb2gAHW9sAB1vcAAdb3QAHW98AB1vhAAdb4gAHW+MAB1vlAAdb5gAHXGEAB1xjAAdcZgAHXGgAB1xrAAdcbAAHXG0AB1xuAAdcbwAHXHEAB1xzAAdcdAAHXHUAB1x3AAdceAAHXIkAB1yKAAdcjAAHXQcAB10JAAddCwAHXQ0AB10QAAddEQAHXRIAB10TAAddFAAHXRYAB10YAAddGQAHXRoAB10cAAddHQAHXZgAB12aAAddnQAHXZ8AB12iAAddowAHXaQAB12lAAddpgAHXagAB12qAAddqwAHXawAB12uAAddrwAHXcgAB13JAAddygAHXcwAB15HAAdeSQAHXksAB15NAAdeUAAHXlEAB15SAAdeUwAHXlQAB15WAAdeWAAHXlkAB15aAAdeXAAHXl0AB17YAAde2gAHXt0AB17fAAde4gAHXuMAB17kAAde5QAHXuYAB17oAAde6gAHXusAB17sAAde7gAHXu8AB18LAAdfJAAHXykAB18sAAdfMQAHXzQAB182AAdfSgAHX90AB2AAAAdgIAAHYEAAB2BCAAdgRAAHYEYAB2BIAAdgSwAHYEwAB2BNAAdgUAAHYFEAB2BTAAdgVAAHYFcAB2BaAAdgWwAHYFwAB2BfAAdgYAAHYGUAB2B+AAdghwAHYIkAB2CMAAdglQAHYJgAB2CbAAdgnQAHYOYAB2EKAAdhMQAHYVUAB2FYAAdhWgAHYVwAB2FeAAdhYAAHYWIAB2FjAAdhZgAHYX8AB2GgAAdhogAHYaQAB2GmAAdhqAAHYaoAB2GsAAdhrgAHYbAAB2HRAAdh1AAHYdcAB2HaAAdh3QAHYeAAB2HjAAdh5gAHYekAB2HrAAdiZgAHYmgAB2JqAAdibAAHYm8AB2JwAAdicQAHYnIAB2JzAAdidQAHYncAB2J4AAdieQAHYnsAB2J8AAdi9wAHYvkAB2L7AAdi/QAHYwAAB2MBAAdjAgAHYwMAB2MEAAdjBgAHYwgAB2MJAAdjCgAHYwwAB2MNAAdjiAAHY4oAB2ONAAdjjwAHY5IAB2OTAAdjlAAHY5UAB2OWAAdjmAAHY5oAB2ObAAdjnAAHY54AB2OfAAdjuAAHY7kAB2O6AAdjvAAHZDcAB2Q5AAdkOwAHZD0AB2RAAAdkQQAHZEIAB2RDAAdkRAAHZEYAB2RIAAdkSQAHZEoAB2RMAAdkTQAHZMgAB2TKAAdkzAAHZM4AB2TRAAdk0gAHZNMAB2TUAAdk1QAHZNcAB2TZAAdk2gAHZNsAB2TdAAdk3gAHZVkAB2VbAAdlXQAHZV8AB2ViAAdlYwAHZWQAB2VlAAdlZgAHZWgAB2VqAAdlawAHZWwAB2VuAAdlbwAHZeoAB2XsAAdl7gAHZfAAB2XzAAdl9AAHZfUAB2X2AAdl9wAHZfkAB2X7AAdl/AAHZf0AB2X/AAdmAAAHZnsAB2Z9AAdmfwAHZoEAB2aEAAdmhQAHZoYAB2aHAAdmiAAHZooAB2aMAAdmjQAHZo4AB2aQAAdmkQAHZtoAB2b+AAdnJQAHZ0kAB2dMAAdnTwAHZ1EAB2dTAAdnVQAHZ1cAB2dYAAdnWwAHZ3QAB2eRAAdnlAAHZ5cAB2eaAAdnnQAHZ6AAB2ejAAdnpgAHZ8MAB2fGAAdnyQAHZ8wAB2fPAAdn0gAHZ9UAB2fYAAdn2gAHaFUAB2hXAAdoWgAHaFwAB2hfAAdoYAAHaGEAB2hiAAdoYwAHaGUAB2hoAAdoaQAHaGoAB2hsAAdobQAHaOgAB2jqAAdo7QAHaO8AB2jyAAdo8wAHaPQAB2j1AAdo9gAHaPgAB2j7AAdo/AAHaP0AB2j/AAdpAAAHaXsAB2l9AAdpgAAHaYIAB2mFAAdphgAHaYcAB2mIAAdpiQAHaYsAB2mOAAdpjwAHaZAAB2mSAAdpkwAHag4AB2oQAAdqEwAHahUAB2oYAAdqGQAHahoAB2obAAdqHAAHah4AB2ohAAdqIgAHaiMAB2olAAdqJgAHaqkAB2rNAAdq8QAHaxQAB2s7AAdrWwAHa4IAB2upAAdryQAHa+0AB2wRAAdsEwAHbBYAB2wYAAdsGgAHbBwAB2wfAAdsIgAHbCQAB2wmAAdsKQAHbCsAB2wtAAdsMAAHbDMAB2w0AAdsOQAHbFIAB2xXAAdsWQAHbF4AB2xhAAdsYwAHbKwAB2zQAAds9wAHbRsAB20eAAdtIAAHbSIAB20kAAdtJgAHbSgAB20pAAdtLAAHbUUAB21qAAdtbAAHbW4AB21wAAdtcgAHbXQAB212AAdteAAHbXoAB218AAdtoQAHbaQAB22nAAdtqgAHba0AB22wAAdtswAHbbYAB225AAdtvAAHbb4AB245AAduOwAHbj4AB25AAAduQwAHbkQAB25FAAduRgAHbkcAB25JAAduSwAHbkwAB25NAAduTwAHblAAB25hAAduYgAHbmQAB27fAAdu4QAHbuMAB27lAAdu6AAHbukAB27qAAdu6wAHbuwAB27uAAdu8AAHbvEAB27yAAdu9AAHbvUAB29wAAdvcgAHb3UAB293AAdvegAHb3sAB298AAdvfQAHb34AB2+AAAdvggAHb4MAB2+EAAdvhgAHb4cAB2+YAAdvmQAHb5sAB3AWAAdwGAAHcBoAB3AcAAdwHwAHcCAAB3AhAAdwIgAHcCMAB3AlAAdwJwAHcCgAB3ApAAdwKwAHcCwAB3CnAAdwqQAHcKwAB3CuAAdwsQAHcLIAB3CzAAdwtAAHcLUAB3C3AAdwuQAHcLoAB3C7AAdwvQAHcL4AB3DPAAdw0AAHcNIAB3FNAAdxTwAHcVEAB3FTAAdxVgAHcVcAB3FYAAdxWQAHcVoAB3FcAAdxXgAHcV8AB3FgAAdxYgAHcWMAB3HeAAdx4AAHceMAB3HlAAdx6AAHcekAB3HqAAdx6wAHcewAB3HuAAdx8AAHcfEAB3HyAAdx9AAHcfUAB3IOAAdyDwAHchAAB3ISAAdyjQAHco8AB3KRAAdykwAHcpYAB3KXAAdymAAHcpkAB3KaAAdynAAHcp4AB3KfAAdyoAAHcqIAB3KjAAdzHgAHcyAAB3MjAAdzJQAHcygAB3MpAAdzKgAHcysAB3MsAAdzLgAHczAAB3MxAAdzMgAHczQAB3M1AAdzSQAHc2IAB3NnAAdzagAHc28AB3NyAAdzdAAHc4IAB3QVAAd0OAAHdFgAB3R4AAd0egAHdHwAB3R+AAd0gAAHdIMAB3SEAAd0hQAHdIgAB3SJAAd0iwAHdIwAB3SPAAd0kgAHdJMAB3SUAAd0lwAHdJgAB3ShAAd0ugAHdMMAB3TFAAd0yAAHdNEAB3TUAAd01wAHdNkAB3UiAAd1RgAHdW0AB3WRAAd1lAAHdZYAB3WYAAd1mgAHdZwAB3WeAAd1nwAHdaIAB3W7AAd13AAHdd4AB3XgAAd14gAHdeQAB3XmAAd16AAHdeoAB3XsAAd2DQAHdhAAB3YTAAd2FgAHdhkAB3YcAAd2HwAHdiIAB3YlAAd2JwAHdqIAB3akAAd2pgAHdqgAB3arAAd2rAAHdq0AB3auAAd2rwAHdrEAB3azAAd2tAAHdrUAB3a3AAd2uAAHdzMAB3c1AAd3NwAHdzkAB3c8AAd3PQAHdz4AB3c/AAd3QAAHd0IAB3dEAAd3RQAHd0YAB3dIAAd3SQAHd8QAB3fGAAd3yQAHd8sAB3fOAAd3zwAHd9AAB3fRAAd30gAHd9QAB3fWAAd31wAHd9gAB3faAAd32wAHd/QAB3f1AAd39gAHd/gAB3hzAAd4dQAHeHcAB3h5AAd4fAAHeH0AB3h+AAd4fwAHeIAAB3iCAAd4hAAHeIUAB3iGAAd4iAAHeIkAB3kEAAd5BgAHeQgAB3kKAAd5DQAHeQ4AB3kPAAd5EAAHeREAB3kTAAd5FQAHeRYAB3kXAAd5GQAHeRoAB3mVAAd5lwAHeZkAB3mbAAd5ngAHeZ8AB3mgAAd5oQAHeaIAB3mkAAd5pgAHeacAB3moAAd5qgAHeasAB3omAAd6KAAHeioAB3osAAd6LwAHejAAB3oxAAd6MgAHejMAB3o1AAd6NwAHejgAB3o5AAd6OwAHejwAB3q3AAd6uQAHersAB3q9AAd6wAAHesEAB3rCAAd6wwAHesQAB3rGAAd6yAAHeskAB3rKAAd6zAAHes0AB3sWAAd7OgAHe2EAB3uFAAd7iAAHe4sAB3uNAAd7jwAHe5EAB3uTAAd7lAAHe5cAB3uwAAd7zQAHe9AAB3vTAAd71gAHe9kAB3vcAAd73wAHe+IAB3v/AAd8AgAHfAUAB3wIAAd8CwAHfA4AB3wRAAd8FAAHfBYAB3yRAAd8kwAHfJYAB3yYAAd8mwAHfJwAB3ydAAd8ngAHfJ8AB3yhAAd8pAAHfKUAB3ymAAd8qAAHfKkAB30kAAd9JgAHfSkAB30rAAd9LgAHfS8AB30wAAd9MQAHfTIAB300AAd9NwAHfTgAB305AAd9OwAHfTwAB323AAd9uQAHfbwAB32+AAd9wQAHfcIAB33DAAd9xAAHfcUAB33HAAd9ygAHfcsAB33MAAd9zgAHfc8AB35KAAd+TAAHfk8AB35RAAd+VAAHflUAB35WAAd+VwAHflgAB35aAAd+XQAHfl4AB35fAAd+YQAHfmIAB37dAAd+3wAHfuEAB37jAAd+5gAHfucAB37oAAd+6QAHfuoAB37sAAd+7wAHfvAAB37xAAd+8wAHfvQAB39vAAd/cQAHf3MAB391AAd/eAAHf3kAB396AAd/ewAHf3wAB39+AAd/gQAHf4IAB3+DAAd/hQAHf4YAB4ABAAeAAwAHgAYAB4AIAAeACwAHgAwAB4ANAAeADgAHgA8AB4ARAAeAFAAHgBUAB4AWAAeAGAAHgBkAB4AqAAeALwAHgDIAB4A0AAeAbQAHgHAAB4ByAAeAdQAHgHgAB4B7AAeAfgAHgIMAB4CUAAeArQAHgL4AB4DXAAeA7gAHgQAAB4F7AAeBfQAHgX8AB4GBAAeBhAAHgYUAB4GGAAeBhwAHgYgAB4GKAAeBjQAHgY4AB4GPAAeBkQAHgZIAB4INAAeCDwAHghEAB4ITAAeCFgAHghcAB4IYAAeCGQAHghoAB4IcAAeCHwAHgiAAB4IhAAeCIwAHgiQAB4KfAAeCoQAHgqQAB4KmAAeCqQAHgqoAB4KrAAeCrAAHgq0AB4KvAAeCsgAHgrMAB4K0AAeCtgAHgrcAB4LIAAeCzQAHgtAAB4LSAAeC1wAHgxAAB4MTAAeDFQAHgxgAB4MbAAeDHgAHgyEAB4OkAAeDyAAHg+wAB4QPAAeENgAHhFYAB4R9AAeEpAAHhMQAB4ToAAeFDAAHhQ4AB4URAAeFEwAHhRUAB4UXAAeFGgAHhR0AB4UfAAeFIQAHhSQAB4UmAAeFKAAHhSsAB4UuAAeFLwAHhTQAB4VNAAeFUgAHhVQAB4VZAAeFXAAHhV4AB4WnAAeFywAHhfIAB4YWAAeGGQAHhhsAB4YdAAeGHwAHhiEAB4YjAAeGJAAHhicAB4ZAAAeGZQAHhmcAB4ZpAAeGawAHhm0AB4ZvAAeGcQAHhnMAB4Z1AAeGdwAHhpwAB4afAAeGogAHhqUAB4aoAAeGqwAHhq4AB4axAAeGtAAHhrcAB4a5AAeHNAAHhzYAB4c5AAeHOwAHhz4AB4c/AAeHQAAHh0EAB4dCAAeHRAAHh0YAB4dHAAeHSAAHh0oAB4dLAAeHXAAHh10AB4dfAAeH2gAHh9wAB4feAAeH4AAHh+MAB4fkAAeH5QAHh+YAB4fnAAeH6QAHh+sAB4fsAAeH7QAHh+8AB4fwAAeIawAHiG0AB4hwAAeIcgAHiHUAB4h2AAeIdwAHiHgAB4h5AAeIewAHiH0AB4h+AAeIfwAHiIEAB4iCAAeIkwAHiJQAB4iWAAeJEQAHiRMAB4kVAAeJFwAHiRoAB4kbAAeJHAAHiR0AB4keAAeJIAAHiSIAB4kjAAeJJAAHiSYAB4knAAeJogAHiaQAB4mnAAeJqQAHiawAB4mtAAeJrgAHia8AB4mwAAeJsgAHibQAB4m1AAeJtgAHibgAB4m5AAeJygAHicsAB4nNAAeKSAAHikoAB4pMAAeKTgAHilEAB4pSAAeKUwAHilQAB4pVAAeKVwAHilkAB4paAAeKWwAHil0AB4peAAeK2QAHitsAB4reAAeK4AAHiuMAB4rkAAeK5QAHiuYAB4rnAAeK6QAHiusAB4rsAAeK7QAHiu8AB4rwAAeLCQAHiwoAB4sLAAeLDQAHi4gAB4uKAAeLjAAHi44AB4uRAAeLkgAHi5MAB4uUAAeLlQAHi5cAB4uZAAeLmgAHi5sAB4udAAeLngAHjBkAB4wbAAeMHgAHjCAAB4wjAAeMJAAHjCUAB4wmAAeMJwAHjCkAB4wrAAeMLAAHjC0AB4wvAAeMMAAHjE0AB4xmAAeMawAHjG4AB4xzAAeMdgAHjHgAB4yNAAeNIAAHjUMAB41jAAeNgwAHjYUAB42HAAeNiQAHjYsAB42OAAeNjwAHjZAAB42TAAeNlAAHjZYAB42XAAeNmgAHjZ0AB42eAAeNnwAHjaIAB42jAAeNqAAHjcEAB43KAAeNzAAHjc8AB43YAAeN2wAHjd4AB43gAAeOKQAHjk0AB450AAeOmAAHjpsAB46dAAeOnwAHjqEAB46jAAeOpQAHjqYAB46pAAeOwgAHjuMAB47lAAeO5wAHjukAB47rAAeO7QAHju8AB47xAAeO8wAHjxQAB48XAAePGgAHjx0AB48gAAePIwAHjyYAB48pAAePLAAHjy4AB4+pAAePqwAHj60AB4+vAAePsgAHj7MAB4+0AAePtQAHj7YAB4+4AAePugAHj7sAB4+8AAePvgAHj78AB5A6AAeQPAAHkD4AB5BAAAeQQwAHkEQAB5BFAAeQRgAHkEcAB5BJAAeQSwAHkEwAB5BNAAeQTwAHkFAAB5DLAAeQzQAHkNAAB5DSAAeQ1QAHkNYAB5DXAAeQ2AAHkNkAB5DbAAeQ3QAHkN4AB5DfAAeQ4QAHkOIAB5D7AAeQ/AAHkP0AB5D/AAeRegAHkXwAB5F+AAeRgAAHkYMAB5GEAAeRhQAHkYYAB5GHAAeRiQAHkYsAB5GMAAeRjQAHkY8AB5GQAAeSCwAHkg0AB5IPAAeSEQAHkhQAB5IVAAeSFgAHkhcAB5IYAAeSGgAHkhwAB5IdAAeSHgAHkiAAB5IhAAeSnAAHkp4AB5KgAAeSogAHkqUAB5KmAAeSpwAHkqgAB5KpAAeSqwAHkq0AB5KuAAeSrwAHkrEAB5KyAAeTLQAHky8AB5MxAAeTMwAHkzYAB5M3AAeTOAAHkzkAB5M6AAeTPAAHkz4AB5M/AAeTQAAHk0IAB5NDAAeTvgAHk8AAB5PCAAeTxAAHk8cAB5PIAAeTyQAHk8oAB5PLAAeTzQAHk88AB5PQAAeT0QAHk9MAB5PUAAeUHQAHlEEAB5RoAAeUjAAHlI8AB5SSAAeUlAAHlJYAB5SYAAeUmgAHlJsAB5SeAAeUtwAHlNQAB5TXAAeU2gAHlN0AB5TgAAeU4wAHlOYAB5TpAAeVBgAHlQkAB5UMAAeVDwAHlRIAB5UVAAeVGAAHlRsAB5UdAAeVmAAHlZoAB5WdAAeVnwAHlaIAB5WjAAeVpAAHlaUAB5WmAAeVqAAHlasAB5WsAAeVrQAHla8AB5WwAAeWKwAHli0AB5YwAAeWMgAHljUAB5Y2AAeWNwAHljgAB5Y5AAeWOwAHlj4AB5Y/AAeWQAAHlkIAB5ZDAAeWvgAHlsAAB5bDAAeWxQAHlsgAB5bJAAeWygAHlssAB5bMAAeWzgAHltEAB5bSAAeW0wAHltUAB5bWAAeXUQAHl1MAB5dWAAeXWAAHl1sAB5dcAAeXXQAHl14AB5dfAAeXYQAHl2QAB5dlAAeXZgAHl2gAB5dpAAeX7AAHmBAAB5g0AAeYVwAHmH4AB5ieAAeYxQAHmOwAB5kMAAeZMAAHmVQAB5lWAAeZWQAHmVsAB5ldAAeZXwAHmWIAB5llAAeZZwAHmWkAB5lsAAeZbgAHmXAAB5lzAAeZdgAHmXcAB5l8AAeZlQAHmZoAB5mcAAeZoQAHmaQAB5mmAAeZ7wAHmhMAB5o6AAeaXgAHmmEAB5pjAAe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rqQAHq6sAB6uuAAerrwAHq7AAB6uxAAersgAHq7QAB6u3AAeruAAHq7kAB6u7AAervAAHrDcAB6w5AAesOwAHrD0AB6xAAAesQQAHrEIAB6xDAAesRAAHrEYAB6xJAAesSgAHrEsAB6xNAAesTgAHrMkAB6zLAAeszQAHrM8AB6zSAAes0wAHrNQAB6zVAAes1gAHrNgAB6zbAAes3AAHrN0AB6zfAAes4AAHrVsAB61dAAetYAAHrWIAB61lAAetZgAHrWcAB61oAAetaQAHrWsAB61uAAetbwAHrXAAB61yAAetcwAHrgYAB64pAAeuSQAHrmkAB65rAAeubQAHrm8AB65xAAeudAAHrnUAB652AAeueQAHrnoAB658AAeufQAHroAAB66DAAeuhAAHroUAB66IAAeuiQAHro4AB66nAAeusAAHrrIAB661AAeuvgAHrsEAB67EAAeuxgAHrw8AB68zAAevWgAHr34AB6+BAAevgwAHr4UAB6+HAAeviQAHr4sAB6+MAAevjwAHr6gAB6/JAAevywAHr80AB6/PAAev0QAHr9MAB6/VAAev1wAHr9kAB6/6AAev/QAHsAAAB7ADAAewBgAHsAkAB7AMAAewDwAHsBIAB7AUAAewjwAHsJEAB7CTAAewlQAHsJgAB7CZAAewmgAHsJsAB7CcAAewngAHsKAAB7ChAAewogAHsKQAB7ClAAexIAAHsSIAB7EkAAexJgAHsSkAB7EqAAexKwAHsSwAB7EtAAexLwAHsTEAB7EyAAexMwAHsTUAB7E2AAexsQAHsbMAB7G2AAexuAAHsbsAB7G8AAexvQAHsb4AB7G/AAexwQAHscMAB7HEAAexxQAHsccAB7HIAAex4QAHseIAB7HjAAex5QAHsmAAB7JiAAeyZAAHsmYAB7JpAAeyagAHsmsAB7JsAAeybQAHsm8AB7JxAAeycgAHsnMAB7J1AAeydgAHsvEAB7LzAAey9QAHsvcAB7L6AAey+wAHsvwAB7L9AAey/gAHswAAB7MCAAezAwAHswQAB7MGAAezBwAHs4IAB7OEAAezhgAHs4gAB7OLAAezjAAHs40AB7OOAAezjwAHs5EAB7OTAAezlAAHs5UAB7OXAAezmAAHtBMAB7QVAAe0FwAHtBkAB7QcAAe0HQAHtB4AB7QfAAe0IAAHtCIAB7QkAAe0JQAHtCYAB7QoAAe0KQAHtKQAB7SmAAe0qAAHtKoAB7StAAe0rgAHtK8AB7SwAAe0sQAHtLMAB7S1AAe0tgAHtLcAB7S5AAe0ugAHtQMAB7UnAAe1TgAHtXIAB7V1AAe1eAAHtXoAB7V8AAe1fgAHtYAAB7WBAAe1hAAHtZ0AB7W6AAe1vQAHtcAAB7XDAAe1xgAHtckAB7XMAAe1zwAHtewAB7XvAAe18gAHtfUAB7X4AAe1+wAHtf4AB7YBAAe2AwAHtn4AB7aAAAe2gwAHtoUAB7aIAAe2iQAHtooAB7aLAAe2jAAHto4AB7aRAAe2kgAHtpMAB7aVAAe2lgAHtxEAB7cTAAe3FgAHtxgAB7cbAAe3HAAHtx0AB7ceAAe3HwAHtyEAB7ckAAe3JQAHtyYAB7coAAe3KQAHtysAB7emAAe3qAAHt6sAB7etAAe3sAAHt7EAB7eyAAe3swAHt7QAB7e2AAe3uQAHt7oAB7e7AAe3vQAHt74AB7g5AAe4OwAHuD4AB7hAAAe4QwAHuEQAB7hFAAe4RgAHuEcAB7hJAAe4TAAHuE0AB7hOAAe4UAAHuFEAB7jMAAe4zgAHuNAAB7jSAAe41QAHuNYAB7jXAAe42AAHuNkAB7jbAAe43gAHuN8AB7jgAAe44gAHuOMAB7leAAe5YAAHuWIAB7lkAAe5ZwAHuWgAB7lpAAe5agAHuWsAB7ltAAe5cAAHuXEAB7lyAAe5dAAHuXUAB7nwAAe58gAHufUAB7n3AAe5+gAHufsAB7n8AAe5/QAHuf4AB7oAAAe6AwAHugQAB7oFAAe6BwAHuggAB7qbAAe6vgAHut4AB7r+AAe7AAAHuwIAB7sEAAe7BgAHuwkAB7sKAAe7CwAHuw4AB7sPAAe7EQAHuxIAB7sVAAe7GAAHuxkAB7saAAe7HQAHux4AB7sjAAe7PAAHu0UAB7tHAAe7SgAHu1MAB7tWAAe7WQAHu1sAB7ukAAe7yAAHu+8AB7wTAAe8FgAHvBgAB7waAAe8HAAHvB4AB7wgAAe8IQAHvCQAB7w9AAe8XgAHvGAAB7xiAAe8ZAAHvGYAB7xoAAe8agAHvGwAB7xuAAe8jwAHvJIAB7yVAAe8mAAHvJsAB7yeAAe8oQAHvKQAB7ynAAe8qQAHvSQAB70mAAe9KAAHvSoAB70tAAe9LgAHvS8AB70wAAe9MQAHvTMAB701AAe9NgAHvTcAB705AAe9OgAHvbUAB723AAe9uQAHvbsAB72+AAe9vwAHvcAAB73BAAe9wgAHvcQAB73GAAe9xwAHvcgAB73KAAe9ywAHvkYAB75IAAe+SwAHvk0AB75QAAe+UQAHvlIAB75TAAe+VAAHvlYAB75YAAe+WQAHvloAB75cAAe+XQAHvnYAB753AAe+eAAHvnoAB771AAe+9wAHvvkAB777AAe+/gAHvv8AB78AAAe/AQAHvwIAB78EAAe/BgAHvwcAB78IAAe/CgAHvwsAB7+GAAe/iAAHv4oAB7+MAAe/jwAHv5AAB7+RAAe/kgAHv5MAB7+VAAe/lwAHv5gAB7+ZAAe/mwAHv5wAB8AXAAfAGQAHwBsAB8AdAAfAIAAHwCEAB8AiAAfAIwAHwCQAB8AmAAfAKAAHwCkAB8AqAAfALAAHwC0AB8CoAAfAqgAHwKwAB8CuAAfAsQAHwLIAB8CzAAfAtAAHwLUAB8C3AAfAuQAHwLoAB8C7AAfAvQAHwL4AB8E5AAfBOwAHwT0AB8E/AAfBQgAHwUMAB8FEAAfBRQAHwUYAB8FIAAfBSgAHwUsAB8FMAAfBTgAHwU8AB8GYAAfBvAAHweMAB8IHAAfCCgAHwg0AB8IPAAfCEQAHwhMAB8IVAAfCFgAHwhkAB8IyAAfCTwAHwlIAB8JVAAfCWAAHwlsAB8JeAAfCYQAHwmQAB8KBAAfChAAHwocAB8KKAAfCjQAHwpAAB8KTAAfClgAHwpgAB8MTAAfDFQAHwxgAB8MaAAfDHQAHwx4AB8MfAAfDIAAHwyEAB8MjAAfDJgAHwycAB8MoAAfDKgAHwysAB8OmAAfDqAAHw6sAB8OtAAfDsAAHw7EAB8OyAAfDswAHw7QAB8O2AAfDuQAHw7oAB8O7AAfDvQAHw74AB8Q5AAfEOwAHxD4AB8RAAAfEQwAHxEQAB8RFAAfERgAHxEcAB8RJAAfETAAHxE0AB8ROAAfEUAAHxFEAB8TMAAfEzgAHxNEAB8TTAAfE1gAHxNcAB8TYAAfE2QAHxNoAB8TcAAfE3wAHxOAAB8ThAAfE4wAHxOQAB8VfAAfFYQAHxWMAB8VlAAfFaAAHxWkAB8VqAAfFawAHxWwAB8VuAAfFcQAHxXIAB8VzAAfFdQAHxXYAB8XxAAfF8wAHxfUAB8X3AAfF+gAHxfsAB8X8AAfF/QAHxf4AB8YAAAfGAwAHxgQAB8YFAAfGBwAHxggAB8aDAAfGhQAHxogAB8aKAAfGjQAHxo4AB8aPAAfGkAAHxpEAB8aTAAfGlgAHxpcAB8aYAAfGmgAHxpsAB8asAAfGsQAHxrQAB8a2AAfG7wAHxvIAB8b0AAfG9wAHxvoAB8b9AAfHAAAHxwUAB8eAAAfHggAHx4QAB8eGAAfHiQAHx4oAB8eLAAfHjAAHx40AB8ePAAfHkgAHx5MAB8eUAAfHlgAHx5cAB8gSAAfIFAAHyBYAB8gYAAfIGwAHyBwAB8gdAAfIHgAHyB8AB8ghAAfIJAAHyCUAB8gmAAfIKAAHyCkAB8ikAAfIpgAHyKkAB8irAAfIrgAHyK8AB8iwAAfIsQAHyLIAB8i0AAfItwAHyLgAB8i5AAfIuwAHyLwAB8jNAAfI0gAHyNUAB8jXAAfI3AAHyVcAB8lZAAfJWwAHyV0AB8lgAAfJYQAHyWIAB8ljAAfJZAAHyWYAB8lpAAfJagAHyWsAB8ltAAfJbgAHyekAB8nrAAfJ7QAHye8AB8nyAAfJ8wAHyfQAB8n1AAfJ9gAHyfgAB8n7AAfJ/AAHyf0AB8n/AAfKAAAHynsAB8p9AAfKgAAHyoIAB8qFAAfKhgAHyocAB8qIAAfKiQAHyosAB8qOAAfKjwAHypAAB8qSAAfKkwAHyqQAB8qlAAfKpwAHyrgAB8rBAAfKxAAHyscAB8rJAAfLRAAHy0YAB8tIAAfLSgAHy00AB8tOAAfLTwAHy1AAB8tRAAfLUwAHy1YAB8tXAAfLWAAHy1oAB8tbAAfL1gAHy9gAB8vaAAfL3AAHy98AB8vgAAfL4QAHy+IAB8vjAAfL5QAHy+gAB8vpAAfL6gAHy+wAB8vtAAfMaAAHzGoAB8xtAAfMbwAHzHIAB8xzAAfMdAAHzHUAB8x2AAfMeAAHzHsAB8x8AAfMfQAHzH8AB8yAAAfNEwAHzTYAB81WAAfNdgAHzXgAB816AAfNfAAHzX4AB82BAAfNggAHzYMAB82GAAfNhwAHzYkAB82KAAfNjQAHzZAAB82RAAfNkgAHzZUAB82WAAfNnwAHzbgAB83BAAfNwwAHzcYAB83PAAfN0gAHzdUAB83XAAfOIAAHzkQAB85rAAfOjwAHzpIAB86UAAfOlgAHzpgAB86aAAfOnAAHzp0AB86gAAfOuQAHztoAB87cAAfO3gAHzuAAB87iAAfO5AAHzuYAB87oAAfO6gAHzwsAB88OAAfPEQAHzxQAB88XAAfPGgAHzx0AB88gAAfPIwAHzyUAB8+gAAfPogAHz6QAB8+mAAfPqQAHz6oAB8+rAAfPrAAHz60AB8+vAAfPsQAHz7IAB8+zAAfPtQAHz7YAB9AxAAfQMwAH0DUAB9A3AAfQOgAH0DsAB9A8AAfQPQAH0D4AB9BAAAfQQgAH0EMAB9BEAAfQRgAH0EcAB9DCAAfQxAAH0McAB9DJAAfQzAAH0M0AB9DOAAfQzwAH0NAAB9DSAAfQ1AAH0NUAB9DWAAfQ2AAH0NkAB9DyAAfQ8wAH0PQAB9D2AAfRcQAH0XMAB9F1AAfRdwAH0XoAB9F7AAfRfAAH0X0AB9F+AAfRgAAH0YIAB9GDAAfRhAAH0YYAB9GHAAfSAgAH0gQAB9IGAAfSCAAH0gsAB9IMAAfSDQAH0g4AB9IPAAfSEQAH0hMAB9IUAAfSFQAH0hcAB9IYAAfSkwAH0pUAB9KXAAfSmQAH0pwAB9KdAAfSngAH0p8AB9KgAAfSogAH0qQAB9KlAAfSpgAH0qgAB9KpAAfTJAAH0yYAB9MoAAfTKgAH0y0AB9MuAAfTLwAH0zAAB9MxAAfTMwAH0zUAB9M2AAfTNwAH0zkAB9M6AAfTtQAH07cAB9O5AAfTuwAH074AB9O/AAfTwAAH08EAB9PCAAfTxAAH08YAB9PHAAfTyAAH08oAB9PLAAfUFAAH1DgAB9RfAAfUgwAH1IYAB9SJAAfUiwAH1I0AB9SPAAfUkQAH1JIAB9SVAAfUrgAH1MsAB9TOAAfU0QAH1NQAB9TXAAfU2gAH1N0AB9TgAAfU/QAH1QAAB9UDAAfVBgAH1QkAB9UMAAfVDwAH1RIAB9UUAAfVjwAH1ZEAB9WUAAfVlgAH1ZkAB9WaAAfVmwAH1ZwAB9WdAAfVnwAH1aIAB9WjAAfVpAAH1aYAB9WnAAfWIgAH1iQAB9YnAAfWKQAH1iwAB9YtAAfWLgAH1i8AB9YwAAfWMgAH1jUAB9Y2AAfWNwAH1jkAB9Y6AAfWtQAH1rcAB9a6AAfWvAAH1r8AB9bAAAfWwQAH1sIAB9bDAAfWxQAH1sgAB9bJAAfWygAH1swAB9bNAAfXSAAH10oAB9dNAAf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EEgAIBBUACAQWAAgEFwAIBBgACAQZAAgEGwAIBB0ACAQeAAgEHwAIBCEACAQiAAgEnQAIBJ8ACAShAAgEowAIBKYACASnAAgEqAAIBKkACASqAAgErAAIBK4ACASvAAgEsAAIBLIACASzAAgFLgAIBTAACAUzAAgFNQAIBTgACAU5AAgFOgAIBTsACAU8AAgFPgAIBUAACAVBAAgFQgAIBUQACAVFAAgFwAAIBcIACAXEAAgFxgAIBckACAXKAAgFywAIBcwACAXNAAgFzwAIBdEACAXSAAgF0wAIBdUACAXWAAgGUQAIBlMACAZVAAgGVwAIBloACAZbAAgGXAAIBl0ACAZeAAgGYAAIBmIACAZjAAgGZAAIBmYACAZnAAgG4gAIBuQACAbmAAgG6AAIBusACAbsAAgG7QAIBu4ACAbvAAgG8QAIBvMACAb0AAgG9QAIBvcACAb4AAgHiwAIB64ACAfOAAgH7gAIB/AACAfyAAgH9AAIB/YACAf5AAgH+gAIB/sACAf+AAgH/wAICAEACAgCAAgIBAAICAcACAgIAAgICQAICAwACAgNAAgIEgAICCsACAg0AAgINgAICDgACAhBAAgIRAAICEcACAhJAAgIkgAICLYACAjdAAgJAQAICQQACAkGAAgJCAAICQoACAkMAAgJDgAICQ8ACAkSAAgJKwAICUwACAlOAAgJUAAICVIACAlUAAgJVgAICVgACAlaAAgJXAAICX0ACAmAAAgJgwAICYYACAmJAAgJjAAICY8ACAmSAAgJlQAICZcACAoSAAgKFAAIChYACAoYAAgKGwAIChwACAodAAgKHgAICh8ACAohAAgKIwAICiQACAolAAgKJwAICigACAqjAAgKpQAICqcACAqpAAgKrAAICq0ACAquAAgKrwAICrAACAqyAAgKtAAICrUACAq2AAgKuAAICrkACAs0AAgLNgAICzkACAs7AAgLPgAICz8ACAtAAAgLQQAIC0IACAtEAAgLRgAIC0cACAtIAAgLSgAIC0sACAtkAAgLZQAIC2YACAtoAAgL4wAIC+UACAvnAAgL6QAIC+wACAvtAAgL7gAIC+8ACAvwAAgL8gAIC/QACAv1AAgL9gAIC/gACAv5AAgMdAAIDHYACAx4AAgMegAIDH0ACAx+AAgMfwAIDIAACAyBAAgMgwAIDIUACAyGAAgMhwAIDIkACAyKAAgNBQAIDQcACA0JAAgNCwAIDQ4ACA0PAAgNEAAIDREACA0SAAgNFAAIDRYACA0XAAgNGAAIDRoACA0bAAgNlgAIDZgACA2aAAgNnAAIDZ8ACA2gAAgNoQAIDaIACA2jAAgNpQAIDacACA2oAAgNqQAIDasACA2sAAgOJwAIDikACA4rAAgOLQAIDjAACA4xAAgOMgAIDjMACA40AAgONgAIDjgACA45AAgOOgAIDjwACA49AAgOhgAIDqoACA7RAAgO9QAIDvgACA76AAgO/AAIDv4ACA8AAAgPAgAIDwMACA8GAAgPHwAIDzwACA8+AAgPQAAID0IACA9EAAgPRgAID0gACA9KAAgPZwAID2oACA9tAAgPcAAID3MACA92AAgPeQAID3wACA9+AAgP+QAID/sACA/9AAgP/wAIEAIACBADAAgQBAAIEAUACBAGAAgQCAAIEAoACBALAAgQDAAIEA4ACBAPAAgQigAIEIwACBCOAAgQkAAIEJMACBCUAAgQlQAIEJYACBCXAAgQmQAIEJsACBCcAAgQnQAIEJ8ACBCgAAgRGwAIER0ACBEfAAgRIQAIESQACBElAAgRJgAIEScACBEoAAgRKgAIESwACBEtAAgRLgAIETAACBExAAgRrAAIEa4ACBGxAAgRswAIEbYACBG3AAgRuAAIEbkACBG6AAgRvAAIEb4ACBG/AAgRwAAIEcIACBHDAAgSPgAIEkAACBJCAAgSRAAIEkcACBJIAAgSSQAIEkoACBJLAAgSTQAIEk8ACBJQAAgSUQAIElMACBJUAAgSzwAIEtEACBLTAAgS1QAIEtgACBLZAAgS2gAIEtsACBLcAAgS3gAIEuAACBLhAAgS4gAIEuQACBLlAAgTYAAIE2IACBNkAAgTZgAIE2kACBNqAAgTawAIE2wACBNtAAgTbwAIE3EACBNyAAgTcwAIE3UACBN2AAgUCQAIFCwACBRMAAgUbAAIFG4ACBRwAAgUcgAIFHQACBR3AAgUeAAIFHkACBR8AAgUfQAIFH8ACBSAAAgUggAIFIUACBSGAAgUhwAIFIoACBSLAAgUkAAIFKkACBSyAAgUtAAIFLYACBS/AAgUwgAIFMUACBTHAAgVEAAIFTQACBVbAAgVfwAIFYIACBWEAAgVhgAIFYgACBWKAAgVjAAIFY0ACBWQAAgVqQAIFcoACBXMAAgVzgAIFdAACBXSAAgV1AAIFdYACBXYAAgV2gAIFfsACBX+AAgWAQAIFgQACBYHAAgWCgAIFg0ACBYQAAgWEwAIFhUACBaQAAgWkgAIFpQACBaWAAgWmQAIFpoACBabAAgWnAAIFp0ACBafAAgWoQAIFqIACBajAAgWpQAIFqYACBchAAgXIwAIFyUACBcnAAgXKgAIFysACBcsAAgXLQAIFy4ACBcwAAgXMgAIFzMACBc0AAgXNgAIFzcACBeyAAgXtAAIF7cACBe5AAgXvAAIF70ACBe+AAgXvwAIF8AACBfCAAgXxAAIF8UACBfGAAgXyAAIF8kACBfiAAgX4wAIF+QACBfmAAgYYQAIGGMACBhlAAgYZwAIGGoACBhrAAgYbAAIGG0ACBhuAAgYcAAIGHIACBhzAAgYdAAIGHYACBh3AAgY8gAIGPQACBj2AAgY+AAIGPsACBj8AAgY/QAIGP4ACBj/AAgZAQAIGQMACBkEAAgZBQAIGQcACBkIAAgZgwAIGYUACBmHAAgZiQAIGYwACBmNAAgZjgAIGY8ACBmQAAgZkgAIGZQACBmVAAgZlgAIGZgACBmZAAgaFAAIGhYACBoYAAgaGgAIGh0ACBoeAAgaHwAIGiAACBohAAgaIwAIGiUACBomAAgaJwAIGikACBoqAAgapQAIGqcACBqpAAgaqwAIGq4ACBqvAAgasAAIGrEACBqyAAgatAAIGrYACBq3AAgauAAIGroACBq7AAgbBAAIGygACBtPAAgbcwAIG3YACBt4AAgbegAIG3wACBt+AAgbgAAIG4EACBuEAAgbnQAIG7oACBu8AAgbvgAIG8AACBvCAAgbxAAIG8YACBvIAAgb5QAIG+gACBvrAAgb7gAIG/EACBv0AAgb9wAIG/oACBv8AAgcdwAIHHkACBx7AAgcfQAIHIAACByBAAgcggAIHIMACByEAAgchgAIHIgACByJAAgcigAIHIwACByNAAgdCAAIHQoACB0MAAgdDgAIHREACB0SAAgdEwAIHRQACB0VAAgdFwAIHRkACB0aAAgdGwAIHR0ACB0eAAgdmQAIHZsACB2dAAgdnwAIHaIACB2jAAgdpAAIHaUACB2mAAgdqAAIHaoACB2rAAgdrAAIHa4ACB2vAAgeKgAIHiwACB4vAAgeMQAIHjQACB41AAgeNgAIHjcACB44AAgeOgAIHjwACB49AAgePgAIHkAACB5BAAgevAAIHr4ACB7AAAgewgAIHsUACB7GAAgexwAIHsgACB7JAAgeywAIHs0ACB7OAAgezwAIHtEACB7SAAgfTQAIH08ACB9RAAgfUwAIH1YACB9XAAgfWAAIH1kACB9aAAgfXAAIH14ACB9fAAgfYAAIH2IACB9jAAgf3gAIH+AACB/iAAgf5AAIH+cACB/oAAgf6QAIH+oACB/rAAgf7QAIH+8ACB/wAAgf8QAIH/MACB/0AAgghwAIIKoACCDKAAgg6gAIIOwACCDuAAgg8AAIIPIACCD1AAgg9gAIIPcACCD6AAgg+wAIIP0ACCD+AAghAAAIIQMACCEEAAghBQAIIQgACCEJAAghDgAIIScACCEwAAghMgAIITQACCE9AAghQAAIIUMACCFFAAghjgAIIbIACCHZAAgh/QAIIgAACCICAAgiBAAIIgYACCIIAAgiCgAIIgsACCIOAAgiJwAIIkgACCJKAAgiTAAIIk4ACCJQAAgiUgAIIlQACCJWAAgiWAAIInkACCJ8AAgifwAIIoIACCKFAAgiiAAIIosACCKOAAgikQAIIpMACCMOAAgjEAAIIxIACCMUAAgjFwAIIxgACCMZAAgjGgAIIxsACCMdAAgjHwAIIyAACCMhAAgjIwAIIyQACCOfAAgjoQAII6MACCOlAAgjqAAII6kACCOqAAgjqwAII6wACCOuAAgjsAAII7EACCOyAAgjtAAII7UACCQwAAgkMgAIJDUACCQ3AAgkOgAIJDsACCQ8AAgkPQAIJD4ACCRAAAgkQgAIJEMACCREAAgkRgAIJEcACCRgAAgkYQAIJGIACCRkAAgk3wAIJOEACCTjAAgk5QAIJOgACCTpAAgk6gAIJOsACCTsAAgk7gAIJPAACCTxAAgk8gAIJPQACCT1AAglcAAIJXIACCV0AAgldgAIJXkACCV6AAglewAIJXwACCV9AAglfwAIJYEACCWCAAglgwAIJYUACCWGAAgmAQAIJgMACCYFAAgmBwAIJgoACCYLAAgmDAAIJg0ACCYOAAgmEAAIJhIACCYTAAgmFAAIJhYACCYXAAgmkgAIJpQACCaWAAgmmAAIJpsACCacAAgmnQAIJp4ACCafAAgmoQAIJqMACCakAAgmpQAIJqcACCaoAAgnIwAIJyUACCcnAAgnKQAIJywACCctAAgnLgAIJy8ACCcwAAgnMgAIJzQACCc1AAgnNgAIJzgACCc5AAgnggAIJ6YACCfNAAgn8QAIJ/QACCf2AAgn+AAIJ/oACCf8AAgn/gAIJ/8ACCgCAAgoGwAIKDgACCg6AAgoPAAIKD4ACChAAAgoQgAIKEQACChGAAgoYwAIKGYACChpAAgobAAIKG8ACChyAAgodQAIKHgACCh6AAgo9QAIKPcACCj5AAgo+wAIKP4ACCj/AAgpAAAIKQEACCkCAAgpBAAIKQYACCkHAAgpCAAIKQoACCkLAAgphgAIKYgACCmKAAgpjAAIKY8ACCmQAAgpkQAIKZIACCmTAAgplQAIKZcACCmYAAgpmQAIKZsACCmcAAgqFwAIKhkACCobAAgqHQAIKiAACCohAAgqIgAIKiMACCokAAgqJgAIKigACCopAAgqKgAIKiwACCotAAgqqAAIKqoACCqtAAgqrwAIKrIACCqzAAgqtAAIKrUACCq2AAgquAAIKroACCq7AAgqvAAIKr4ACCq/AAgrOgAIKzwACCs+AAgrQAAIK0MACCtEAAgrRQAIK0YACCtHAAgrSQAIK0sACCtMAAgrTQAIK08ACCtQAAgrywAIK80ACCvPAAgr0QAIK9QACCvVAAgr1gAIK9cACCvYAAgr2gAIK9wACCvdAAgr3gAIK+AACCvhAAgsXAAILF4ACCxgAAgsYgAILGUACCxmAAgsZwAILGgACCxpAAgsawAILG0ACCxuAAgsbwAILHEACCxyAAgsgwAILIQACCyGAAgtAQAILQMACC0FAAgtBwAILQoACC0LAAgtDAAILQ0ACC0OAAgtEAAILRMACC0UAAgtFQAILRcACC0YAAgtkwAILZUACC2XAAgtmQAILZwACC2dAAgtngAILZ8ACC2gAAgtogAILaUACC2mAAgtpwAILakACC2qAAguJQAILicACC4qAAguLAAILi8ACC4wAAguMQAILjIACC4zAAguNQAILjgACC45AAguOgAILjwACC49AAgu0AAILvMACC8TAAgvMwAILzUACC83AAgvOQAILzsACC8+AAgvPwAIL0AACC9DAAgvRAAIL0YACC9HAAgvSgAIL00ACC9OAAgvTwAIL1IACC9TAAgvWAAIL3EACC96AAgvfAAIL38ACC+IAAg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SowAIUqUACFKmAAhSpwAIUqkACFKqAAhTJQAIUycACFMqAAhTLAAIUy8ACFMwAAhTMQAIUzIACFMzAAhTNQAIUzcACFM4AAhTOQAIUzsACFM8AAhTYAAIU9sACFPdAAhT3wAIU+EACFPkAAhT5QAIU+YACFPnAAhT6AAIU+oACFPsAAhT7QAIU+4ACFPwAAhT8QAIVIQACFSnAAhUxwAIVOcACFTpAAhU6wAIVO0ACFTvAAhU8gAIVPMACFT0AAhU9wAIVPgACFT6AAhU+wAIVP4ACFUBAAhVAgAIVQMACFUGAAhVBwAIVQwACFUlAAhVLgAIVTAACFUzAAhVPAAIVT8ACFVCAAhVRAAIVY0ACFWxAAhV2AAIVfwACFX/AAhWAQAIVgMACFYFAAhWBwAIVgkACFYKAAhWDQAIViYACFZHAAhWSQAIVksACFZNAAhWTwAIVlEACFZTAAhWVQAIVlcACFZ4AAhWewAIVn4ACFaBAAhWhAAIVocACFaKAAhWjQAIVpAACFaSAAhXDQAIVw8ACFcRAAhXEwAIVxYACFcXAAhXGAAIVxkACFcaAAhXHAAIVx4ACFcfAAhXIAAIVyIACFcjAAhXngAIV6AACFeiAAhXpAAIV6cACFeoAAhXqQAIV6oACFerAAhXrQAIV68ACFewAAhXsQAIV7MACFe0AAhYLwAIWDEACFg0AAhYNgAIWDkACFg6AAhYOwAIWDwACFg9AAhYPwAIWEEACFhCAAhYQwAIWEUACFhGAAhYXwAIWGAACFhhAAhYYwAIWN4ACFjgAAhY4gAIWOQACFjnAAhY6AAIWOkACFjqAAhY6wAIWO0ACFjvAAhY8AAIWPEACFjzAAhY9AAIWW8ACFlxAAhZcwAIWXUACFl4AAhZeQAIWXoACFl7AAhZfAAIWX4ACFmAAAhZgQAIWYIACFmEAAhZhQAIWgAACFoCAAhaBAAIWgYACFoJAAhaCgAIWgsACFoMAAhaDQAIWg8ACFoRAAhaEgAIWhMACFoVAAhaFgAIWpEACFqTAAhalQAIWpcACFqaAAhamwAIWpwACFqdAAhangAIWqAACFqiAAhaowAIWqQACFqmAAhapwAIWyIACFskAAhbJgAIWygACFsrAAhbLAAIWy0ACFsuAAhbLwAIWzEACFszAAhbNAAIWzUACFs3AAhbOAAIW4EACFulAAhbzAAIW/AACFvzAAhb9gAIW/gACFv6AAhb/AAIW/4ACFv/AAhcAgAIXBsACFw4AAhcOwAIXD4ACFxBAAhcRAAIXEcACFxKAAhcTQAIXGoACFxtAAhccAAIXHMACFx2AAhceQAIXHwACFx/AAhcgQAIXPwACFz+AAhdAQAIXQMACF0GAAhdBwAIXQgACF0JAAhdCgAIXQwACF0PAAhdEAAIXREACF0TAAhdFAAIXY8ACF2RAAhdlAAIXZYACF2ZAAhdmgAIXZsACF2cAAhdnQAIXZ8ACF2iAAhdowAIXaQACF2mAAhdpwAIXiIACF4kAAheJwAIXikACF4sAAheLQAIXi4ACF4vAAheMAAIXjIACF41AAheNgAIXjcACF45AAheOgAIXrUACF63AAheugAIXrwACF6/AAhewAAIXsEACF7CAAhewwAIXsUACF7IAAheyQAIXsoACF7MAAhezQAIX1AACF90AAhfmAAIX7sACF/iAAhgAgAIYCkACGBQAAhgcAAIYJQACGC4AAhgugAIYL0ACGC/AAhgwQAIYMMACGDGAAhgyQAIYMsACGDNAAhg0AAIYNIACGDUAAhg1wAIYNoACGDbAAhg4AAIYPkACGD+AAhhAAAIYQUACGEIAAhhCgAIYVMACGF3AAhhngAIYcIACGHFAAhhxwAIYckACGHLAAhhzQAIYc8ACGHQAAhh0wAIYewACGIRAAhiEwAIYhUACGIXAAhiGQAIYhsACGIdAAhiHwAIYiEACGIjAAhiSAAIYksACGJOAAhiUQAIYlQACGJXAAhiWgAIYl0ACGJgAAhiYwAIYmUACGLgAAhi4gAIYuUACGLnAAhi6gAIYusACGLsAAhi7QAIYu4ACGLwAAhi8gAIYvMACGL0AAhi9gAIYvcACGMIAAhjCQAIYwsACGOGAAhjiAAIY4oACGOMAAhjjwAIY5AACGORAAhjkgAIY5MACGOVAAhjlwAIY5gACGOZAAhjmwAIY5wACGQXAAhkGQAIZBwACGQeAAhkIQAIZCIACGQjAAhkJAAIZCUACGQnAAhkKQAIZCoACGQrAAhkLQAIZC4ACGQ/AAhkQAAIZEIACGS9AAhkvwAIZMEACGTDAAhkxgAIZMcACGTIAAhkyQAIZMoACGTMAAhkzgAIZM8ACGTQAAhk0gAIZNMACGVOAAhlUAAIZVMACGVVAAhlWAAIZVkACGVaAAhlWwAIZVwACGVeAAhlYAAIZWEACGViAAhlZAAIZWUACGV2AAhldwAIZXkACGX0AAhl9gAIZfgACGX6AAhl/QAIZf4ACGX/AAhmAAAIZgEACGYDAAhmBQAIZgYACGYHAAhmCQAIZgoACGaFAAhmhwAIZooACGaMAAhmjwAIZpAACGaRAAhmkgAIZpMACGaVAAhmlwAIZpgACGaZAAhmmwAIZpwACGa1AAhmtgAIZrcACGa5AAhnNAAIZzYACGc4AAhnOgAIZz0ACGc+AAhnPwAIZ0AACGdBAAhnQwAIZ0UACGdGAAhnRwAIZ0kACGdKAAhnxQAIZ8cACGfKAAhnzAAIZ88ACGfQAAhn0QAIZ9IACGfTAAhn1QAIZ9cACGfYAAhn2QAIZ9sACGfcAAhn6AAIaAEACGgeAAhoIQAIaCQACGgnAAhoKgAIaC0ACGgwAAhoMwAIaFAACGhTAAhoVgAIaFkACGhcAAhoXwAIaGIACGhlAAhoZwAIaHYACGiIAAhooAAIaLcACGjQAAho1QAIaWgACGmLAAhpqwAIacsACGnNAAhpzwAIadEACGnTAAhp1gAIadcACGnYAAhp2wAIadwACGneAAhp3wAIaeEACGnkAAhp5QAIaeYACGnpAAhp6gAIae8ACGoIAAhqEQAIahMACGoVAAhqHgAIaiEACGokAAhqJgAIam8ACGqTAAhqugAIat4ACGrhAAhq4wAIauUACGrnAAhq6QAIausACGrsAAhq7wAIawgACGspAAhrKwAIay0ACGsvAAhrMQAIazMACGs1AAhrNwAIazkACGtaAAhrXQAIa2AACGtjAAhrZgAIa2kACGtsAAhrbwAIa3IACGt0AAhr7wAIa/EACGvzAAhr9QAIa/gACGv5AAhr+gAIa/sACGv8AAhr/gAIbAAACGwBAAhsAgAIbAQACGwFAAhsgAAIbIIACGyEAAhshgAIbIkACGyKAAhsiwAIbIwACGyNAAhsjwAIbJEACGySAAhskwAIbJUACGyWAAhtEQAIbRMACG0WAAhtGAAIbRsACG0cAAhtHQAIbR4ACG0fAAhtIQAIbSMACG0kAAhtJQAIbScACG0oAAhtQQAIbUIACG1DAAhtRQAIbcAACG3CAAhtxAAIbcYACG3JAAhtygAIbcsACG3MAAhtzQAIbc8ACG3RAAht0gAIbdMACG3VAAht1gAIblEACG5TAAhuVQAIblcACG5aAAhuWwAIblwACG5dAAhuXgAIbmAACG5iAAhuYwAIbmQACG5mAAhuZwAIbuIACG7kAAhu5gAIbugACG7rAAhu7AAIbu0ACG7uAAhu7wAIbvEACG7zAAhu9AAIbvUACG73AAhu+AAIb3MACG91AAhvdwAIb3kACG98AAhvfQAIb34ACG9/AAhvgAAIb4IACG+EAAhvhQAIb4YACG+IAAhviQAIcAQACHAGAAhwCAAIcAoACHANAAhwDgAIcA8ACHAQAAhwEQAIcBMACHAVAAhwFgAIcBcACHAZAAhwGgAIcGMACHCHAAhwrgAIcNIACHDVAAhw1wAIcNkACHDbAAhw3QAIcN8ACHDgAAhw4wAIcPwACHEZAAhxGwAIcR0ACHEfAAhxIQAIcSMACHElAAhxJwAIcUQACHFHAAhxSgAIcU0ACHFQAAhxUwAIcVYACHFZAAhxWwAIcdYACHHYAAhx2gAIcdwACHHfAAhx4AAIceEACHHiAAhx4wAIceUACHHnAAhx6AAIcekACHHrAAhx7AAIcmcACHJpAAhyawAIcm0ACHJwAAhycQAIcnIACHJzAAhydAAIcnYACHJ4AAhyeQAIcnoACHJ8AAhyfQAIcvgACHL6AAhy/AAIcv4ACHMBAAhzAgAIcwMACHMEAAhzBQAIcwcACHMJAAhzCgAIcwsACHMNAAhzDgAIc4kACHOLAAhzjgAIc5AACHOTAAhzlAAIc5UACHOWAAhzlwAIc5kACHObAAhznAAIc50ACHOfAAhzoAAIdBsACHQdAAh0HwAIdCEACHQkAAh0JQAIdCYACHQnAAh0KAAIdCoACHQsAAh0LQAIdC4ACHQwAAh0MQAIdKwACHSuAAh0sAAIdLIACHS1AAh0tgAIdLcACHS4AAh0uQAIdLsACHS9AAh0vgAIdL8ACHTBAAh0wgAIdT0ACHU/AAh1QQAIdUMACHVGAAh1RwAIdUgACHVJAAh1SgAIdUwACHVOAAh1TwAIdVAACHVSAAh1UwAIdeYACHYJAAh2KQAIdkkACHZLAAh2TQAIdk8ACHZRAAh2VAAIdlUACHZWAAh2WQAIdloACHZcAAh2XQAIdl8ACHZiAAh2YwAIdmQACHZnAAh2aAAIdm0ACHaGAAh2jwAIdpEACHaTAAh2nAAIdp8ACHaiAAh2pAAIdu0ACHcRAAh3OAAId1wACHdfAAh3YQAId2MACHdlAAh3ZwAId2kACHdqAAh3bQAId4YACHenAAh3qQAId6sACHetAAh3rwAId7EACHezAAh3tQAId7cACHfYAAh32wAId94ACHfhAAh35AAId+cACHfqAAh37QAId/AACHfyAAh4bQAIeG8ACHhxAAh4cwAIeHYACHh3AAh4eAAIeHkACHh6AAh4fAAIeH4ACHh/AAh4gAAIeIIACHiDAAh4/gAIeQAACHkCAAh5BAAIeQcACHkIAAh5CQAIeQoACHkLAAh5DQAIeQ8ACHkQAAh5EQAIeRMACHkUAAh5jwAIeZEACHmUAAh5lgAIeZkACHmaAAh5mwAIeZwACHmdAAh5nwAIeaEACHmiAAh5owAIeaUACHmmAAh5vwAIecAACHnBAAh5wwAIej4ACHpAAAh6QgAIekQACHpHAAh6SAAIekkACHpKAAh6SwAIek0ACHpPAAh6UAAIelEACHpTAAh6VAAIes8ACHrRAAh60wAIetUACHrYAAh62QAIetoACHrbAAh63AAIet4ACHrgAAh64QAIeuIACHrkAAh65QAIe2AACHtiAAh7ZAAIe2YACHtpAAh7agAIe2sACHtsAAh7bQAIe28ACHtxAAh7cgAIe3MACHt1AAh7dgAIe/EACHvzAAh79QAIe/cACHv6AAh7+wAIe/wACHv9AAh7/gAIfAAACHwCAAh8AwAIfAQACHwGAAh8BwAIfIIACHyEAAh8hgAIfIgACHyLAAh8jAAIfI0ACHyOAAh8jwAIfJEACHyTAAh8lAAIfJUACHyXAAh8mAAIfOEACH0FAAh9LAAIfVAACH1TAAh9VQAIfVcACH1ZAAh9WwAIfV0ACH1eAAh9YQAIfXoACH2XAAh9mQAIfZsACH2dAAh9nwAIfaEACH2jAAh9pQAIfcIACH3FAAh9yAAIfcsACH3OAAh90QAIfdQACH3XAAh92QAIflQACH5WAAh+WAAIfloACH5dAAh+XgAIfl8ACH5gAAh+YQAIfmMACH5lAAh+ZgAIfmcACH5pAAh+agAIfuUACH7nAAh+6QAIfusACH7uAAh+7wAIfvAACH7xAAh+8gAIfvQACH72AAh+9wAIfvgACH76AAh++wAIf3YACH94AAh/egAIf3wACH9/AAh/gAAIf4EACH+CAAh/gwAIf4UACH+HAAh/iAAIf4kACH+LAAh/jAAIgAcACIAJAAiACwAIgA0ACIAQAAiAEQAIgBIACIATAAiAFAAIgBYACIAYAAiAGQAIgBoACIAcAAiAHQAIgJgACICaAAiAnAAIgJ4ACIChAAiAogAIgKMACICkAAiApQAIgKcACICpAAiAqgAIgKsACICtAAiArgAIgSkACIErAAiBLgAIgTAACIEzAAiBNAAIgTUACIE2AAiBNwAIgTkACIE7AAiBPAAIgT0ACIE/AAiBQAAIgU8ACIHKAAiBzAAIgc4ACIHQAAiB0wAIgdQACIHVAAiB1gAIgdcACIHZAAiB2wAIgdwACIHdAAiB3wAIgeAACIJzAAiClgAIgrYACILWAAiC2AAIgtoACILcAAiC3gAIguEACILiAAiC4wAIguYACILnAAiC6QAIguoACILsAAiC7wAIgvAACILxAAiC9AAIgvUACIL6AAiDEwAIgxwACIMeAAiDIAAIgykACIMsAAiDLwAIgzEACIN6AAiDngAIg8UACIPpAAiD7AAIg+4ACIPwAAiD8gAIg/QACIP2AAiD9wAIg/oACIQTAAiENAAIhDYACIQ4AAiEOgAIhDwACIQ+AAiEQAAIhEIACIREAAiEZQAIhGgACIRrAAiEbgAIhHEACIR0AAiEdwAIhHoACIR9AAiEfwAIhPoACIT8AAiE/gAIhQAACIUDAAiFBAAIhQUACIUGAAiFBwAIhQkACIULAAiFDAAIhQ0ACIUPAAiFEAAIhYsACIWNAAiFjwAIhZEACIWUAAiFlQAIhZYACIWXAAiFmAAIhZoACIWcAAiFnQAIhZ4ACIWgAAiFoQAIhhwACIYeAAiGIQAIhiMACIYmAAiGJwAIhigACIYpAAiGKgAIhiwACIYuAAiGLwAIhjAACIYyAAiGMwAIhkwACIZNAAiGTgAIhlAACIbLAAiGzQAIhs8ACIbRAAiG1AAIhtUACIbWAAiG1wAIhtgACIbaAAiG3AAIht0ACIbeAAiG4AAIhuEACIdcAAiHXgAIh2AACIdiAAiHZQAIh2YACIdnAAiHaAAIh2kACIdrAAiHbQAIh24ACIdvAAiHcQAIh3IACIftAAiH7wAIh/EACIfzAAiH9gAIh/cACIf4AAiH+QAIh/oACIf8AAiH/gAIh/8ACIgAAAiIAgAIiAMACIh+AAiIgAAIiIIACIiEAAiIhwAIiIgACIiJAAiIigAIiIsACIiNAAiIjwAIiJAACIiRAAiIkwAIiJQACIkPAAiJEQAIiRMACIkVAAiJGAAIiRkACIkaAAiJGwAIiRwACIkeAAiJIAAIiSEACIkiAAiJJAAIiSUACIluAAiJkgAIibkACIndAAiJ4AAIieIACInkAAiJ5gAIiegACInqAAiJ6wAIie4ACIoHAAiKJAAIiiYACIooAAiKKgAIiiwACIouAAiKMAAIijIACIpPAAiKUgAIilUACIpYAAiKWwAIil4ACIphAAiKZAAIimYACIrhAAiK4wAIiuUACIrnAAiK6gAIiusACIrsAAiK7QAIiu4ACIrwAAiK8gAIivMACIr0AAiK9gAIivcACItyAAiLdAAIi3YACIt4AAiLewAIi3wACIt9AAiLfgAIi38ACIuBAAiLgwAIi4QACIuFAAiLhwAIi4gACIwDAAiMBQAIjAcACIwJAAiMDAAIjA0ACIwOAAiMDwAIjBAACIwSAAiMFAAIjBUACIwWAAiMGAAIjBkACIyUAAiMlgAIjJkACIybAAiMngAIjJ8ACIygAAiMoQAIjKIACIykAAiMpgAIjKcACIyoAAiMqgAIjKsACI0mAAiNKAAIjSoACI0sAAiNLwAIjTAACI0xAAiNMgAIjTMACI01AAiNNwAIjTgACI05AAiNOwAIjTwACI23AAiNuQAIjbsACI29AAiNwAAIjcEACI3CAAiNwwAIjcQACI3GAAiNyAAIjckACI3KAAiNzAAIjc0ACI5IAAiOSgAIjkwACI5OAAiOUQAIjlIACI5TAAiOVAAIjlUACI5XAAiOWQAIjloACI5bAAiOXQAIjl4ACI7xAAiPFAAIjzQACI9UAAiPVgAIj1gACI9aAAiPXAAIj18ACI9gAAiPYQAIj2QACI9lAAiPZwAIj2gACI9rAAiPbgAIj28ACI9wAAiPcwAIj3QACI95AAiPkgAIj5sACI+dAAiPoAAIj6kACI+sAAiPrwAIj7EACI/6AAiQHgAIkEUACJBpAAiQbAAIkG4ACJBwAAiQcgAIkHQACJB2AAiQdwAIkHoACJCTAAiQtAAIkLYACJC4AAiQugAIkLwACJC+AAiQwAAIkMIACJDEAAiQ5QAIkOgACJDrAAiQ7gAIkPEACJD0AAiQ9wAIkPoACJD9AAiQ/wAIkXoACJF8AAiRfgAIkYAACJGDAAiRhAAIkYUACJGGAAiRhwAIkYkACJGLAAiRjAAIkY0ACJGPAAiRkAAIkgsACJINAAiSDwAIkhEACJIUAAiSFQAIkhYACJIXAAiSGAAIkhoACJIcAAiSHQAIkh4ACJIgAAiSIQAIkpwACJKeAAiSoQAIkqMACJKmAAiSpwAIkqgACJKpAAiSqgAIkqwACJKuAAiSrwAIkrAACJKyAAiSswAIkswACJLNAAiSzgAIktAACJNLAAiTTQAIk08ACJNRAAiTVAAIk1UACJNWAAiTVwAIk1gACJNaAAiTXAAIk10ACJNeAAiTYAAIk2EACJPcAAiT3gAIk+AACJPiAAiT5QAIk+YACJPnAAiT6AAIk+kACJPrAAiT7QAIk+4ACJPvAAiT8QAIk/IACJRtAAiUbwAIlHEACJRzAAiUdgAIlHcACJR4AAiUeQAIlHoACJR8AAiUfgAIlH8ACJSAAAiUggAIlIMACJT+AAiVAAAIlQIACJUEAAiVBwAIlQgACJUJAAiVCgAIlQsACJUNAAiVDwAIlRAACJURAAiVEwAIlRQACJWPAAiVkQAIlZMACJWVAAiVmAAIlZkACJWaAAiVmwAIlZwACJWeAAiVoAAIlaEACJWiAAiVpAAIlaUACJXuAAiWEgAIljkACJZdAAiWYAAIlmMACJZlAAiWZwAIlmkACJZrAAiWbAAIlm8ACJaIAAiWpQAIlqgACJarAAiWrgAIlrEACJa0AAiWtwAIlroACJbXAAiW2gAIlt0ACJbgAAiW4wAIluYACJbpAAiW7AAIlu4ACJdpAAiXawAIl24ACJdwAAiXcwAIl3QACJd1AAiXdgAIl3cACJd5AAiXfAAIl30ACJd+AAiXgAAIl4EACJf8AAiX/gAImAEACJgDAAiYBgAImAcACJgIAAiYCQAImAoACJgMAAiYDwAImBAACJgRAAiYEwAImBQACJiPAAiYkQAImJQACJiWAAiYmQAImJoACJibAAiYnAAImJ0ACJifAAiYogAImKMACJikAAiYpgAImKcACJkiAAiZJAAImScACJkpAAiZLAAImS0ACJkuAAiZLwAImTAACJkyAAiZNQAImTYACJk3AAiZOQAImToACJm1AAiZtwAImbkACJm7AAiZvgAImb8ACJnAAAiZwQAImcIACJnEAAiZxwAImcgACJnJAAiZywAImcwACJpHAAiaSQAImksACJpNAAiaUAAImlEACJpSAAiaUwAImlQACJpWAAiaWQAImloACJpbAAiaXQAIml4ACJrZAAia2wAImt4ACJrgAAia4wAImuQACJrlAAia5gAImucACJrpAAia7AAImu0ACJruAAia8AAImvEACJuEAAibpwAIm8cACJvnAAib6QAIm+sACJvtAAib7wAIm/IACJvzAAib9AAIm/cACJv4AAib+gAIm/sACJv+AAicAQAInAIACJwDAAicBgAInAcACJwMAAicJQAInC4ACJwwAAicMwAInDwACJw/AAicQgAInEQACJyNAAicsQAInNgACJz8AAic/wAInQEACJ0DAAidBQAInQcACJ0JAAidCgAInQ0ACJ0mAAidRwAInUkACJ1LAAidTQAInU8ACJ1RAAidUwAInVUACJ1XAAideAAInXsACJ1+AAidgQAInYQACJ2HAAidigAInY0ACJ2QAAidkgAIng0ACJ4PAAieEQAInhMACJ4WAAieFwAInhgACJ4ZAAieGgAInhwACJ4eAAieHwAIniAACJ4iAAieIwAInp4ACJ6gAAieogAInqQACJ6nAAieqAAInqkACJ6qAAieqwAInq0ACJ6vAAiesAAInrEACJ6zAAietAAIny8ACJ8xAAifNAAInzYACJ85AAifOgAInzsACJ88AAifPQAInz8ACJ9BAAifQgAIn0MACJ9FAAifRgAIn18ACJ9gAAifYQAIn2MACJ/eAAif4AAIn+IACJ/kAAif5wAIn+gACJ/pAAif6gAIn+sACJ/tAAif7wAIn/AACJ/xAAif8wAIn/QACKBvAAigcQAIoHMACKB1AAigeAAIoHkACKB6AAigewAIoHwACKB+AAiggAAIoIEACKCCAAighAAIoIUACKEAAAihAgAIoQQACKEGAAihCQAIoQoACKELAAihDAAIoQ0ACKEPAAihEQAIoRIACKETAAihFQAIoRYACKGRAAihkwAIoZUACKGXAAihmgAIoZsACKGcAAihnQAIoZ4ACKGgAAihogAIoaMACKGkAAihpgAIoacACKIiAAiiJAAIoiYACKIoAAiiKwAIoiwACKItAAiiLgAIoi8ACKIxAAiiMwAIojQACKI1AAiiNwAIojgACKKBAAiipQAIoswACKLwAAii8wAIovYACKL4AAii+gAIovwACKL+AAii/wAIowIACKMbAAijOAAIozsACKM+AAijQQAIo0QACKNHAAijSgAIo00ACKNqAAijbQAIo3AACKNzAAijdgAIo3kACKN8AAijfwAIo4EACKP8AAij/gAIpAEACKQDAAikBgAIpAcACKQIAAikCQAIpAoACKQMAAikDwAIpBAACKQRAAikEwAIpBQACKSPAAikkQAIpJQACKSWAAikmQAIpJoACKSbAAiknAAIpJ0ACKSfAAikogAIpKMACKSkAAikpgAIpKcACKUiAAilJAAIpScACKUpAAilLAAIpS0ACKUuAAilLwAIpTAACKUyAAilNQAIpTYACKU3AAilOQAIpToACKW1AAiltwAIpboACKW8AAilvwAIpcAACKXBAAilwgAIpcMACKXFAAilyAAIpckACKXKAAilzAAIpc0ACKZIAAimSgAIpkwACKZOAAimUQAIplIACKZTAAimVAAIplUACKZXAAimWgAIplsACKZcAAimXgAIpl8ACKbaAAim3AAIpt4ACKbgAAim4wAIpuQACKblAAim5gAIpucACKbpAAim7AAIpu0ACKbuAAim8AAIpvEACKdsAAinbgAIp3EACKdzAAindgAIp3cACKd4AAineQAIp3oACKd8AAinfwAIp4AACKeBAAingwAIp4QACKgXAAioOgAIqFoACKh6AAiofAAIqH4ACKiAAAioggAIqIUACKiGAAiohwAIqIoACKiLAAiojQAIqI4ACKiRAAiolAAIqJUACKiWAAiomQAIqJoACKifAAiouAAIqMEACKjDAAioxgAIqM8ACKjSAAio1QAIqNcACKkgAAipRAAIqWsACKmPAAipkgAIqZQACKmWAAipmAAIqZoACKmcAAipnQAIqaAACKm5AAip2gAIqdwACKneAAip4AAIqeIACKnkAAip5gAIqegACKnqAAiqCwAIqg4ACKoRAAiqFAAIqhcACKoaAAiqHQAIqiAACKojAAiqJQAIqqAACKqiAAiqpAAIqqYACKqpAAiqqgAIqqsACKqsAAiqrQAIqq8ACKqxAAiqsgAIqrMACKq1AAiqtgAIqzEACKszAAirNQAIqzcACKs6AAirOwAIqzwACKs9AAirPgAIq0AACKtCAAirQwAIq0QACKtGAAirRwAIq8IACKvEAAirxwAIq8kACKvMAAirzQAIq84ACKvPAAir0AAIq9IACKvUAAir1QAIq9YACKvYAAir2QAIq/IACKvzAAir9AAIq/YACKxxAAiscwAIrHUACKx3AAisegAIrHsACKx8AAisfQAIrH4ACKyAAAisggAIrIMACKyEAAishgAIrIcACK0CAAitBAAIrQYACK0IAAitCwAIrQwACK0NAAitDgAIrQ8ACK0RAAitEwAIrRQACK0VAAitFwAIrRgACK2TAAitlQAIrZcACK2ZAAitnAAIrZ0ACK2eAAitnwAIraAACK2iAAitpAAIraUACK2mAAitqAAIrakACK4kAAiuJgAIrigACK4qAAiuLQAIri4ACK4vAAiuMAAIrjEACK4zAAiuNQAIrjYACK43AAiuOQAIrjoACK61AAiutwAIrrkACK67AAiuvgAIrr8ACK7AAAiuwQAIrsIACK7EAAiuxgAIrscACK7IAAiuygAIrssACK8UAAivOAAIr18ACK+DAAivhgAIr4kACK+LAAivjQAIr48ACK+RAAivkgAIr5UACK+uAAivywAIr84ACK/RAAiv1AAIr9cACK/aAAiv3QAIr+AACK/9AAiwAAAIsAMACLAGAAiwCQAIsAwACLAPAAiwEgAIsBQACLCPAAiwkQAIsJQACLCWAAiwmQAIsJoACLCbAAiwnAAIsJ0ACLCfAAiwogAIsKMACLCkAAiwpgAIsKcACLEiAAixJAAIsScACLEpAAixLAAIsS0ACLEuAAixLwAIsTAACLEyAAixNQAIsTYACLE3AAixOQAIsToACLG1AAixtwAIsboACLG8AAixvwAIscAACLHBAAixwgAIscMACLHFAAixyAAIsckACLHKAAixzAAIsc0ACLJIAAiySgAIsk0ACLJPAAiyUgAIslMACLJUAAiyVQAIslYACLJYAAiyWwAIslwACLJdAAiyXwAIsmAACLLbAAiy3QAIst8ACLLhAAiy5AAIsuUACLLmAAiy5wAIsugACLLqAAiy7QAIsu4ACLLvAAiy8QAIsvIACLNtAAizbwAIs3EACLNzAAizdgAIs3cACLN4AAizeQAIs3oACLN8AAizfwAIs4AACLOBAAizgwAIs4QACLP/AAi0AQAItAQACLQGAAi0CQAItAoACLQLAAi0DAAItA0ACLQPAAi0EgAItBMACLQUAAi0FgAItBcACLSqAAi0zQAItO0ACLUNAAi1DwAItREACLUTAAi1FQAItRgACLUZAAi1GgAItR0ACLUeAAi1IAAItSEACLUjAAi1JgAItScACLUoAAi1KwAItSwACLUxAAi1SgAItVMACLVVAAi1VwAItWAACLVjAAi1ZgAItWgACLWxAAi11QAItfwACLYgAAi2IwAItiUACLYnAAi2KQAItisACLYtAAi2LgAItjEACLZKAAi2awAItm0ACLZvAAi2cQAItnMACLZ1AAi2dwAItnkACLZ7AAi2nAAItp8ACLaiAAi2pQAItqgACLarAAi2rgAItrEACLa0AAi2tgAItzEACLczAAi3NQAItzcACLc6AAi3OwAItzwACLc9AAi3PgAIt0AACLdCAAi3QwAIt0QACLdGAAi3RwAIt8IACLfEAAi3xgAIt8gACLfLAAi3zAAIt80ACLfOAAi3zwAIt9EACLfTAAi31AAIt9UACLfXAAi32AAIuFMACLhVAAi4WAAIuFoACLhdAAi4XgAIuF8ACLhgAAi4YQAIuGMACLhlAAi4ZgAIuGcACLhpAAi4agAIuIMACLiEAAi4hQAIuIcACLkCAAi5BAAIuQYACLkIAAi5CwAIuQwACLkNAAi5DgAIuQ8ACLkRAAi5EwAIuRQACLkVAAi5FwAIuRgACLmTAAi5lQAIuZcACLmZAAi5nAAIuZ0ACLmeAAi5nwAIuaAACLmiAAi5pAAIuaUACLmmAAi5qAAIuakACLokAAi6JgAIuigACLoqAAi6LQAIui4ACLovAAi6MAAIujEACLozAAi6NQAIujYACLo3AAi6OQAIujoACLq1AAi6twAIurkACLq7AAi6vgAIur8ACLrAAAi6wQAIusIACLrEAAi6xgAIuscACLrIAAi6ygAIussACLtGAAi7SAAIu0oACLtMAAi7TwAIu1AACLtRAAi7UgAIu1MACLtVAAi7VwAIu1gACLtZAAi7WwAIu1wACLulAAi7yQAIu/AACLwUAAi8FwAIvBkACLwbAAi8HQAIvB8ACLwhAAi8IgAIvCUACLw+AAi8WwAIvF0ACLxfAAi8YQAIvGMACLxlAAi8ZwAIvGkACLyGAAi8iQAIvIwACLyPAAi8kgAIvJUACLyYAAi8mwAIvJ0ACL0YAAi9GgAIvRwACL0eAAi9IQAIvSIACL0jAAi9JAAIvSUACL0nAAi9KQAIvSoACL0rAAi9LQAIvS4ACL2pAAi9qwAIva0ACL2vAAi9sgAIvbMACL20AAi9tQAIvbYACL24AAi9ugAIvbsACL28AAi9vgAIvb8ACL46AAi+PAAIvj4ACL5AAAi+QwAIvkQACL5FAAi+RgAIvkcACL5JAAi+SwAIvkwACL5NAAi+TwAIvlAACL7LAAi+zQAIvtAACL7SAAi+1QAIvtYACL7XAAi+2AAIvtkACL7bAAi+3QAIvt4ACL7fAAi+4QAIvuIACL9dAAi/XwAIv2EACL9jAAi/ZgAIv2cACL9oAAi/aQAIv2oACL9sAAi/bgAIv28ACL9wAAi/cgAIv3MACL/uAAi/8AAIv/IACL/0AAi/9wAIv/gACL/5AAi/+gAIv/sACL/9AAi//wAIwAAACMABAAjAAwAIwAQACMB/AAjAgQAIwIMACMCFAAjAiAAIwIkACMCKAAjAiwAIwIwACMCOAAjAkAAIwJEACMCSAAjAlAAIwJUACMEoAAjBSwAIwWsACMGLAAjBjQAIwY8ACMGRAAjBkwAIwZYACMGXAAjBmAAIwZsACMGcAAjBngAIwZ8ACMGhAAjBpAAIwaUACMGmAAjBqQAIwaoACMGvAAjByAAIwdEACMHTAAjB1QAIwd4ACMHhAAjB5AAIweYACMIvAAjCUwAIwnoACMKeAAjCoQAIwqMACMKlAAjCpwAIwqkACMKrAAjCrAAIwq8ACMLIAAjC6QAIwusACMLtAAjC7wAIwvEACMLzAAjC9QAIwvcACML5AAjDGgAIwx0ACMMgAAjDIwAIwyYACMMpAAjDLAAIwy8ACMMyAAjDNAAIw68ACMOxAAjDswAIw7UACMO4AAjDuQAIw7oACMO7AAjDvAAIw74ACMPAAAjDwQAIw8IACMPEAAjDxQAIxEAACMRCAAjERAAIxEYACMRJAAjESgAIxEsACMRMAAjETQAIxE8ACMRRAAjEUgAIxFMACMRVAAjEVgAIxNEACMTTAAjE1gAIxNgACMTbAAjE3AAIxN0ACMTeAAjE3wAIxOEACMTjAAjE5AAIxOUACMTnAAjE6AAIxQEACMUCAAjFAwAIxQUACMWAAAjFggAIxYQACMWGAAjFiQAIxYoACMWLAAjFjAAIxY0ACMWPAAjFkQAIxZIACMWTAAjFlQAIxZYACMYRAAjGEwAIxhUACMYXAAjGGgAIxhsACMYcAAjGHQAIxh4ACMYgAAjGIgAIxiMACMYkAAjGJgAIxicACMaiAAjGpAAIxqYACMaoAAjGqwAIxqwACMatAAjGrgAIxq8ACMaxAAjGswAIxrQACMa1AAjGtwAIxrgACMczAAjHNQAIxzcACMc5AAjHPAAIxz0ACMc+AAjHPwAIx0AACMdCAAjHRAAIx0UACMdGAAjHSAAIx0kACMfEAAjHxgAIx8gACMfKAAjHzQAIx84ACMfPAAjH0AAIx9EACMfTAAjH1QAIx9YACMfXAAjH2QAIx9oACMgjAAjIRwAIyG4ACMiSAAjIlQAIyJcACMiZAAjImwAIyJ0ACMifAAjIoAAIyKMACMi8AAjI2QAIyNsACMjdAAjI3wAIyOEACMjjAAjI5QAIyOcACMkEAAjJBwAIyQoACMkNAAjJEAAIyRMACMkWAAjJGQAIyRsACMmWAAjJmAAIyZoACMmcAAjJnwAIyaAACMmhAAjJogAIyaMACMmlAAjJpwAIyagACMmpAAjJqwAIyawACMonAAjKKQAIyisACMotAAjKMAAIyjEACMoyAAjKMwAIyjQACMo2AAjKOAAIyjkACMo6AAjKPAAIyj0ACMq4AAjKugAIyrwACMq+AAjKwQAIysIACMrDAAjKxAAIysUACMrHAAjKyQAIysoACMrLAAjKzQAIys4ACMtJAAjLSwAIy04ACMtQAAjLUwAIy1QACMtVAAjLVgAIy1cACMtZAAjLWwAIy1wACMtdAAjLXwAIy2AACMvbAAjL3QAIy98ACMvhAAjL5AAIy+UACMvmAAjL5wAIy+gACMvqAAjL7AAIy+0ACMvuAAjL8AAIy/EACMxsAAjMbgAIzHAACMxyAAjMdQAIzHYACMx3AAjMeAAIzHkACMx7AAjMfQAIzH4ACMx/AAjMgQAIzIIACMz9AAjM/wAIzQEACM0DAAjNBgAIzQcACM0IAAjNCQAIzQoACM0MAAjNDgAIzQ8ACM0QAAjNEgAIzRMACM0kAAjNJQAIzScACM2iAAjNpAAIzaYACM2oAAjNqwAIzawACM2tAAjNrgAIza8ACM2xAAjNtAAIzbUACM22AAjNuAAIzbkACM40AAjONgAIzjgACM46AAjOPQAIzj4ACM4/AAjOQAAIzkEACM5DAAjORgAIzkcACM5IAAjOSgAIzksACM7GAAjOyAAIzssACM7NAAjO0AAIztEACM7SAAjO0wAIztQACM7WAAjO2QAIztoACM7bAAjO3QAIzt4ACM9xAAjPlAAIz7QACM/UAAjP1gAIz9gACM/aAAjP3AAIz98ACM/gAAjP4QAIz+QACM/lAAjP5wAIz+gACM/qAAjP7QAIz+4ACM/vAAjP8gAIz/MACM/8AAjQFQAI0B4ACNAgAAjQIgAI0CsACNAuAAjQMQAI0DMACNB8AAjQoAAI0McACNDrAAjQ7gAI0PAACNDyAAjQ9AAI0PYACND4AAjQ+QAI0PwACNEVAAjRNgAI0TgACNE6AAjRPAAI0T4ACNFAAAjRQgAI0UQACNFGAAjRZwAI0WoACNFtAAjRcAAI0XMACNF2AAjReQAI0XwACNF/AAjRgQAI0fwACNH+AAjSAAAI0gIACNIFAAjSBgAI0gcACNIIAAjSCQAI0gsACNINAAjSDgAI0g8ACNIRAAjSEgAI0o0ACNKPAAjSkQAI0pMACNKWAAjSlwAI0pgACNKZAAjSmgAI0pwACNKeAAjSnwAI0qAACNKiAAjSowAI0x4ACNMgAAjTIwAI0yUACNMoAAjTKQAI0yoACNMrAAjTLAAI0y4ACNMwAAjTMQAI0zIACNM0AAjTNQAI004ACNNPAAjTUAAI01IACNPNAAjTzwAI09EACNPTAAjT1gAI09cACNPYAAjT2QAI09oACNPcAAjT3gAI098ACNPgAAjT4gAI0+MACNReAAjUYAAI1GIACNRkAAjUZwAI1GgACNRpAAjUagAI1GsACNRtAAjUbwAI1HAACNRxAAjUcwAI1HQACNTvAAjU8QAI1PMACNT1AAjU+AAI1PkACNT6AAjU+wAI1PwACNT+AAjVAAAI1QEACNUCAAjVBAAI1QUACNWAAAjVggAI1YQACNWGAAjViQAI1YoACNWLAAjVjAAI1Y0ACNWPAAjVkQAI1ZIACNWTAAjVlQAI1ZYACNYRAAjWEwAI1hUACNYXAAjWGgAI1hsACNYcAAjWHQAI1h4ACNYgAAjWIgAI1iMACNYkAAjWJgAI1icACNZwAAjWlAAI1rsACNbfAAjW4gAI1uQACNbmAAjW6AAI1uoACNbsAAjW7QAI1vAACNcJAAjXJgAI1ygACNcqAAjXLAAI1y4ACNcwAAjXMgAI1zQACNdRAAjXVAAI11cACNdaAAjXXQAI12AACNdjAAjXZgAI12gACNfjAAjX5QAI1+cACNfpAAjX7AAI1+0ACNfuAAjX7wAI1/AACNfyAAjX9AAI1/UACNf2AAjX+AAI1/kACNh0AAjYdgAI2HgACNh6AAjYfQAI2H4ACNh/AAjYgAAI2IEACNiDAAjYhQAI2IYACNiHAAjYiQAI2IoACNkFAAjZBwAI2QkACNkLAAjZDgAI2Q8ACNkQAAjZEQAI2RIACNkUAAjZFgAI2RcACNkYAAjZGgAI2RsACNmWAAjZmAAI2ZoACNmcAAjZnwAI2aAACNmhAAjZogAI2aMACNmlAAjZpwAI2agACNmpAAjZqwAI2awACNonAAjaKQAI2isACNotAAjaMAAI2jEACNoyAAjaMwAI2jQACNo2AAjaOAAI2jkACNo6AAjaPAAI2j0ACNq4AAjaugAI2r0ACNq/AAjawgAI2sMACNrEAAjaxQAI2sYACNrIAAjaygAI2ssACNrMAAjazgAI2s8ACNruAAjbaQAI22sACNttAAjbbwAI23IACNtzAAjbdAAI23UACNt2AAjbeAAI23oACNt7AAjbfAAI234ACNt/AAjcEgAI3DUACNxVAAjcdQAI3HcACNx5AAjcewAI3H0ACNyAAAjcgQAI3IIACNyFAAjchgAI3IgACNyJAAjcjAAI3I8ACNyQAAjckQAI3JQACNyVAAjcmgAI3LMACNy8AAjcvgAI3MEACNzKAAjczQAI3NAACNzSAAjdGwAI3T8ACN1mAAjdigAI3Y0ACN2PAAjdkQAI3ZMACN2VAAjdlwAI3ZgACN2bAAjdtAAI3dUACN3XAAjd2QAI3dsACN3dAAjd3wAI3eEACN3jAAjd5QAI3gYACN4JAAjeDAAI3g8ACN4SAAjeFQAI3hgACN4bAAjeHgAI3iAACN6bAAjenQAI3p8ACN6hAAjepAAI3qUACN6mAAjepwAI3qgACN6qAAjerAAI3q0ACN6uAAjesAAI3rEACN8sAAjfLgAI3zAACN8yAAjfNQAI3zYACN83AAjfOAAI3zkACN87AAjfPQAI3z4ACN8/AAjfQQAI30IACN+9AAjfvwAI38IACN/EAAjfxwAI38gACN/JAAjfygAI38sACN/NAAjfzwAI39AACN/RAAjf0wAI39QACN/tAAjf7gAI3+8ACN/xAAjgbAAI4G4ACOBwAAjgcgAI4HUACOB2AAjgdwAI4HgACOB5AAjgewAI4H0ACOB+AAjgfwAI4IEACOCCAAjg/QAI4P8ACOEBAAjhAwAI4QYACOEHAAjhCAAI4QkACOEKAAjhDAAI4Q4ACOEPAAjhEAAI4RIACOETAAjhjgAI4ZAACOGSAAjhlAAI4ZcACOGYAAjhmQAI4ZoACOGbAAjhnQAI4Z8ACOGgAAjhoQAI4aMACOGkAAjiHwAI4iEACOIjAAjiJQAI4igACOIpAAjiKgAI4isACOIsAAjiLgAI4jAACOIxAAjiMgAI4jQACOI1AAjisAAI4rIACOK0AAjitgAI4rkACOK6AAjiuwAI4rwACOK9AAjivwAI4sEACOLCAAjiwwAI4sUACOLGAAjjDwAI4zMACONaAAjjfgAI44EACOOEAAjjhgAI44gACOOKAAjjjAAI440ACOOQAAjjqQAI48YACOPJAAjjzAAI488ACOPSAAjj1QAI49gACOPbAAjj+AAI4/sACOP+AAjkAQAI5AQACOQHAAjkCgAI5A0ACOQPAAjkigAI5IwACOSPAAjkkQAI5JQACOSVAAjklgAI5JcACOSYAAjkmgAI5J0ACOSeAAjknwAI5KEACOSiAAjlHQAI5R8ACOUiAAjlJAAI5ScACOUoAAjlKQAI5SoACOUrAAjlLQAI5TAACOUxAAjlMgAI5TQACOU1AAjlsAAI5bIACOW1AAjltwAI5boACOW7AAjlvAAI5b0ACOW+AAjlwAAI5cMACOXEAAjlxQAI5ccACOXIAAjmQwAI5kUACOZIAAjmSgAI5k0ACOZOAAjmTwAI5lAACOZRAAjmUwAI5lYACOZXAAjmWAAI5loACOZbAAjm1gAI5tgACObaAAjm3AAI5t8ACObgAAjm4QAI5uIACObjAAjm5QAI5ugACObpAAjm6gAI5uwACObtAAjnaAAI52oACOdsAAjnbgAI53EACOdyAAjncwAI53QACOd1AAjndwAI53oACOd7AAjnfAAI534ACOd/AAjn+gAI5/wACOf/AAjoAQAI6AQACOgFAAjoBgAI6AcACOgIAAjoCgAI6A0ACOgOAAjoDwAI6BEACOgSAAjopQAI6MgACOjoAAjpCAAI6QoACOkMAAjpDgAI6RAACOkTAAjpFAAI6RUACOkYAAj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ESAAJBEkACQRKAAkESwAJBE0ACQRPAAkEUAAJBFEACQRTAAkEVAAJBM8ACQTRAAkE1AAJBNYACQTZAAkE2gAJBNsACQTcAAkE3QAJBN8ACQThAAkE4gAJBOMACQTlAAkE5gAJBPcACQT4AAkE+gAJBXUACQV3AAkFeQAJBXsACQV+AAkFfwAJBYAACQWBAAkFggAJBYQACQWGAAkFhwAJBYgACQWKAAkFiwAJBgYACQYIAAkGCwAJBg0ACQYQAAkGEQAJBhIACQYTAAkGFAAJBhYACQYYAAkGGQAJBhoACQYcAAkGHQAJBi4ACQYvAAkGMQAJBqwACQauAAkGsAAJBrIACQa1AAkGtgAJBrcACQa4AAkGuQAJBrsACQa9AAkGvgAJBr8ACQbBAAkGwgAJBz0ACQc/AAkHQgAJB0QACQdHAAkHSAAJB0kACQdKAAkHSwAJB00ACQdPAAkHUAAJB1EACQdTAAkHVAAJB20ACQduAAkHbwAJB3EACQfsAAkH7gAJB/AACQfyAAkH9QAJB/YACQf3AAkH+AAJB/kACQf7AAkH/QAJB/4ACQf/AAkIAQAJCAIACQh9AAkIfwAJCIIACQiEAAkIhwAJCIgACQiJAAkIigAJCIsACQiNAAkIjwAJCJAACQiRAAkIkwAJCJQACQiuAAkIxwAJCNAACQjTAAkI1gAJCN8ACQjiAAkI5QAJCOcACQjyAAkJAAAJCZMACQm2AAkJ1gAJCfYACQn4AAkJ+gAJCfwACQn+AAkKAQAJCgIACQoDAAkKBgAJCgcACQoJAAkKCgAJCgwACQoPAAkKEAAJChEACQoUAAkKFQAJChoACQozAAkKPAAJCj4ACQpAAAkKSQAJCkwACQpPAAkKUQAJCpoACQq+AAkK5QAJCwkACQsMAAkLDgAJCxAACQsSAAkLFAAJCxYACQsXAAkLGgAJCzMACQtUAAkLVgAJC1gACQtaAAkLXAAJC14ACQtgAAkLYgAJC2QACQuFAAkLiAAJC4sACQuOAAkLkQAJC5QACQuXAAkLmgAJC50ACQufAAkMGgAJDBwACQweAAkMIAAJDCMACQwkAAkMJQAJDCYACQwnAAkMKQAJDCsACQwsAAkMLQAJDC8ACQwwAAkMqwAJDK0ACQyvAAkMsQAJDLQACQy1AAkMtgAJDLcACQy4AAkMugAJDLwACQy9AAkMvgAJDMAACQzBAAkNPAAJDT4ACQ1BAAkNQwAJDUYACQ1HAAkNSAAJDUkACQ1KAAkNTAAJDU4ACQ1PAAkNUAAJDVIACQ1TAAkNbAAJDW0ACQ1uAAkNcAAJDesACQ3tAAkN7wAJDfEACQ30AAkN9QAJDfYACQ33AAkN+AAJDfoACQ38AAkN/QAJDf4ACQ4AAAkOAQAJDnwACQ5+AAkOgAAJDoIACQ6FAAkOhgAJDocACQ6IAAkOiQAJDosACQ6NAAkOjgAJDo8ACQ6RAAkOkgAJDw0ACQ8PAAkPEQAJDxMACQ8WAAkPFwAJDxgACQ8ZAAkPGgAJDxwACQ8eAAkPHwAJDyAACQ8iAAkPIwAJD54ACQ+gAAkPogAJD6QACQ+nAAkPqAAJD6kACQ+qAAkPqwAJD60ACQ+vAAkPsAAJD7EACQ+zAAkPtAAJEC8ACRAxAAkQMwAJEDUACRA4AAkQOQAJEDoACRA7AAkQPAAJED4ACRBAAAkQQQAJEEIACRBEAAkQRQAJEI4ACRCyAAkQ2QAJEP0ACREAAAkRAgAJEQQACREGAAkRCAAJEQoACRELAAkRDgAJEScACRFEAAkRRgAJEUgACRFKAAkRTAAJEU4ACRFQAAkRUgAJEW8ACRFyAAkRdQAJEXgACRF7AAkRfgAJEYEACRGEAAkRhgAJEgEACRIDAAkSBQAJEgcACRIKAAkSCwAJEgwACRINAAkSDgAJEhAACRISAAkSEwAJEhQACRIWAAkSFwAJEpIACRKUAAkSlgAJEpgACRKbAAkSnAAJEp0ACRKeAAkSnwAJEqEACRKjAAkSpAAJEqUACRKnAAkSqAAJEyMACRMlAAkTJwAJEykACRMsAAkTLQAJEy4ACRMvAAkTMAAJEzIACRM0AAkTNQAJEzYACRM4AAkTOQAJE7QACRO2AAkTuAAJE7oACRO9AAkTvgAJE78ACRPAAAkTwQAJE8MACRPFAAkTxgAJE8cACRPJAAkTygAJFEUACRRHAAkUSQAJFEsACRROAAkUTwAJFFAACRRRAAkUUgAJFFQACRRWAAkUVwAJFFgACRRaAAkUWwAJFNYACRTYAAkU2wAJFN0ACRTgAAkU4QAJFOIACRTjAAkU5AAJFOYACRToAAkU6QAJFOoACRTsAAkU7QAJFPwACRV3AAkVeQAJFXsACRV9AAkVgAAJFYEACRWCAAkVgwAJFYQACRWGAAkViAAJFYkACRWKAAkVjAAJFY0ACRYgAAkWQwAJFmMACRaDAAkWhQAJFocACRaJAAkWiwAJFo4ACRaPAAkWkAAJFpMACRaUAAkWlgAJFpcACRaaAAkWnQAJFp4ACRafAAkWogAJFqMACRaoAAkWwQAJFsoACRbMAAkWzwAJFtgACRbbAAkW3gAJFuAACRcpAAkXTQAJF3QACReYAAkXmwAJF50ACRefAAkXoQAJF6MACRelAAkXpgAJF6kACRfCAAkX4wAJF+UACRfnAAkX6QAJF+sACRftAAkX7wAJF/EACRfzAAkYFAAJGBcACRgaAAkYHQAJGCAACRgjAAkYJgAJGCkACRgsAAkYLgAJGKkACRirAAkYrQAJGK8ACRiyAAkYswAJGLQACRi1AAkYtgAJGLgACRi6AAkYuwAJGLwACRi+AAkYvwAJGToACRk8AAkZPgAJGUAACRlDAAkZRAAJGUUACRlGAAkZRwAJGUkACRlLAAkZTAAJGU0ACRlPAAkZUAAJGcsACRnNAAkZ0AAJGdIACRnVAAkZ1gAJGdcACRnYAAkZ2QAJGdsACRndAAkZ3gAJGd8ACRnhAAkZ4gAJGfsACRn8AAkZ/QAJGf8ACRp6AAkafAAJGn4ACRqAAAkagwAJGoQACRqFAAkahgAJGocACRqJAAkaiwAJGowACRqNAAkajwAJGpAACRsLAAkbDQAJGw8ACRsRAAkbFAAJGxUACRsWAAkbFwAJGxgACRsaAAkbHAAJGx0ACRseAAkbIAAJGyEACRucAAkbngAJG6AACRuiAAkbpQAJG6YACRunAAkbqAAJG6kACRurAAkbrQAJG64ACRuvAAkbsQAJG7IACRwtAAkcLwAJHDEACRwzAAkcNgAJHDcACRw4AAkcOQAJHDoACRw8AAkcPgAJHD8ACRxAAAkcQgAJHEMACRy+AAkcwAAJHMIACRzEAAkcxwAJHMgACRzJAAkcygAJHMsACRzNAAkczwAJHNAACRzRAAkc0wAJHNQACR0dAAkdQQAJHWgACR2MAAkdjwAJHZIACR2UAAkdlgAJHZgACR2aAAkdmwAJHZ4ACR23AAkd1AAJHdcACR3aAAkd3QAJHeAACR3jAAkd5gAJHekACR4GAAkeCQAJHgwACR4PAAkeEgAJHhUACR4YAAkeGwAJHh0ACR6YAAkemgAJHp0ACR6fAAkeogAJHqMACR6kAAkepQAJHqYACR6oAAkeqwAJHqwACR6tAAkerwAJHrAACR8rAAkfLQAJHzAACR8yAAkfNQAJHzYACR83AAkfOAAJHzkACR87AAkfPgAJHz8ACR9AAAkfQgAJH0MACR++AAkfwAAJH8MACR/FAAkfyAAJH8kACR/KAAkfywAJH8wACR/OAAkf0QAJH9IACR/TAAkf1QAJH9YACSBRAAkgUwAJIFYACSBYAAkgWwAJIFwACSBdAAkgXgAJIF8ACSBhAAkgZAAJIGUACSBmAAkgaAAJIGkACSDkAAkg5gAJIOgACSDqAAkg7QAJIO4ACSDvAAkg8AAJIPEACSDzAAkg9gAJIPcACSD4AAkg+gAJIPsACSF2AAkheAAJIXoACSF8AAkhfwAJIYAACSGBAAkhggAJIYMACSGFAAkhiAAJIYkACSGKAAkhjAAJIY0ACSIIAAkiCgAJIg0ACSIPAAkiEgAJIhMACSIUAAkiFQAJIhYACSIYAAkiGwAJIhwACSIdAAkiHwAJIiAACSIxAAkiMgAJIjQACSKvAAkisQAJIrMACSK1AAkiuAAJIrkACSK6AAkiuwAJIrwACSK+AAkiwQAJIsIACSLDAAkixQAJIsYACSNBAAkjQwAJI0UACSNHAAkjSgAJI0sACSNMAAkjTQAJI04ACSNQAAkjUwAJI1QACSNVAAkjVwAJI1gACSPTAAkj1QAJI9gACSPaAAkj3QAJI94ACSPfAAkj4AAJI+EACSPjAAkj5gAJI+cACSPoAAkj6gAJI+sACSR+AAkkoQAJJMEACSThAAkk4wAJJOUACSTnAAkk6QAJJOwACSTtAAkk7gAJJPEACSTyAAkk9AAJJPUACST4AAkk+wAJJPwACST9AAklAAAJJQEACSUGAAklHwAJJSgACSUqAAklLQAJJTYACSU5AAklPAAJJT4ACSWHAAklqwAJJdIACSX2AAkl+QAJJfsACSX9AAkl/wAJJgEACSYDAAkmBAAJJgcACSYgAAkmQQAJJkMACSZFAAkmRwAJJkkACSZLAAkmTQAJJk8ACSZRAAkmcgAJJnUACSZ4AAkmewAJJn4ACSaBAAkmhAAJJocACSaKAAkmjAAJJwcACScJAAknCwAJJw0ACScQAAknEQAJJxIACScTAAknFAAJJxYACScYAAk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UIQAJVCIACVQjAAlUJgAJVCcACVQpAAlUKgAJVCwACVQvAAlUMAAJVDEACVQ0AAlUNQAJVDoACVRTAAlUXAAJVF4ACVRgAAlUaQAJVGwACVRvAAlUcQAJVLoACVTeAAlVBQAJVSkACVUsAAlVLgAJVTAACVUyAAlVNAAJVTYACVU3AAlVOgAJVVMACVV0AAlVdgAJVXgACVV6AAlVfAAJVX4ACVWAAAlVggAJVYQACVWlAAlVqAAJVasACVWuAAlVsQAJVbQACVW3AAlVugAJVb0ACVW/AAlWOgAJVjwACVY+AAlWQAAJVkMACVZEAAlWRQAJVkYACVZHAAlWSQAJVksACVZMAAlWTQAJVk8ACVZQAAlWywAJVs0ACVbPAAlW0QAJVtQACVbVAAlW1gAJVtcACVbYAAlW2gAJVtwACVbdAAlW3gAJVuAACVbhAAlXXAAJV14ACVdhAAlXYwAJV2YACVdnAAlXaAAJV2kACVdqAAlXbAAJV24ACVdvAAlXcAAJV3IACVdzAAlXjAAJV40ACVeOAAlXkAAJWAsACVgNAAlYDwAJWBEACVgUAAlYFQAJWBYACVgXAAlYGAAJWBoACVgcAAlYHQAJWB4ACVggAAlYIQAJWJwACVieAAlYoAAJWKIACVilAAlYpgAJWKcACVioAAlYqQAJWKsACVitAAlYrgAJWK8ACVixAAlYsgAJWS0ACVkvAAlZMQAJWTMACVk2AAlZNwAJWTgACVk5AAlZOgAJWTwACVk+AAlZPwAJWUAACVlCAAlZQwAJWb4ACVnAAAlZwgAJWcQACVnHAAlZyAAJWckACVnKAAlZywAJWc0ACVnPAAlZ0AAJWdEACVnTAAlZ1AAJWk8ACVpRAAlaUwAJWlUACVpYAAlaWQAJWloACVpbAAlaXAAJWl4ACVpgAAlaYQAJWmIACVpkAAlaZQAJWq4ACVrSAAla+QAJWx0ACVsgAAlbIgAJWyQACVsmAAlbKAAJWyoACVsrAAlbLgAJW0cACVtkAAlbZgAJW2gACVtqAAlbbAAJW24ACVtwAAlbcgAJW48ACVuSAAlblQAJW5gACVubAAlbngAJW6EACVukAAlbpgAJXCEACVwjAAlcJQAJXCcACVwqAAlcKwAJXCwACVwtAAlcLgAJXDAACVwyAAlcMwAJXDQACVw2AAlcNwAJXLIACVy0AAlctgAJXLgACVy7AAlcvAAJXL0ACVy+AAlcvwAJXMEACVzDAAlcxAAJXMUACVzHAAlcyAAJXUMACV1FAAldRwAJXUkACV1MAAldTQAJXU4ACV1PAAldUAAJXVIACV1UAAldVQAJXVYACV1YAAldWQAJXdQACV3WAAld2QAJXdsACV3eAAld3wAJXeAACV3hAAld4gAJXeQACV3mAAld5wAJXegACV3qAAld6wAJXmYACV5oAAleagAJXmwACV5vAAlecAAJXnEACV5yAAlecwAJXnUACV53AAleeAAJXnkACV57AAlefAAJXvcACV75AAle+wAJXv0ACV8AAAlfAQAJXwIACV8DAAlfBAAJXwYACV8IAAlfCQAJXwoACV8MAAlfDQAJX4gACV+KAAlfjAAJX44ACV+RAAlfkgAJX5MACV+UAAlflQAJX5cACV+ZAAlfmgAJX5sACV+dAAlfngAJYDEACWBUAAlgdAAJYJQACWCWAAlgmAAJYJoACWCcAAlgnwAJYKAACWChAAlgpAAJYKUACWCnAAlgqAAJYKoACWCtAAlgrgAJYK8ACWCyAAlgswAJYLgACWDRAAlg2gAJYNwACWDeAAlg5wAJYOoACWDtAAlg7wAJYTgACWFcAAlhgwAJYacACWGqAAlhrAAJYa4ACWGwAAlhsgAJYbQACWG1AAlhuAAJYdEACWHyAAlh9AAJYfYACWH4AAlh+gAJYfwACWH+AAliAAAJYgIACWIjAAliJgAJYikACWIsAAliLwAJYjIACWI1AAliOAAJYjsACWI9AAliuAAJYroACWK8AAlivgAJYsEACWLCAAliwwAJYsQACWLFAAlixwAJYskACWLKAAliywAJYs0ACWLOAAljSQAJY0sACWNNAAljTwAJY1IACWNTAAljVAAJY1UACWNWAAljWAAJY1oACWNbAAljXAAJY14ACWNfAAlj2gAJY9wACWPfAAlj4QAJY+QACWPlAAlj5gAJY+cACWPoAAlj6gAJY+wACWPtAAlj7gAJY/AACWPxAAlkCgAJZAsACWQMAAlkDgAJZIkACWSLAAlkjQAJZI8ACWSSAAlkkwAJZJQACWSVAAlklgAJZJgACWSaAAlkmwAJZJwACWSeAAlknwAJZRoACWUcAAllHgAJZSAACWUjAAllJAAJZSUACWUmAAllJwAJZSkACWUrAAllLAAJZS0ACWUvAAllMAAJZasACWWtAAllrwAJZbEACWW0AAlltQAJZbYACWW3AAlluAAJZboACWW8AAllvQAJZb4ACWXAAAllwQAJZjwACWY+AAlmQAAJZkIACWZFAAlmRgAJZkcACWZIAAlmSQAJZksACWZNAAlmTgAJZk8ACWZRAAlmUgAJZs0ACWbPAAlm0QAJZtMACWbWAAlm1wAJZtgACWbZAAlm2gAJZtwACWbeAAlm3wAJZuAACWbiAAlm4wAJZywACWdQAAlndwAJZ5sACWeeAAlnoAAJZ6IACWekAAlnpgAJZ6gACWepAAlnrAAJZ8UACWfiAAln5AAJZ+YACWfoAAln6gAJZ+wACWfuAAln8AAJaA0ACWgQAAloEwAJaBYACWgZAAloHAAJaB8ACWgiAAloJAAJaJ8ACWihAAloowAJaKUACWioAAloqQAJaKoACWirAAlorAAJaK4ACWiwAAlosQAJaLIACWi0AAlotQAJaTAACWkyAAlpNAAJaTYACWk5AAlpOgAJaTsACWk8AAlpPQAJaT8ACWlBAAlpQgAJaUMACWlFAAlpRgAJacEACWnDAAlpxQAJaccACWnKAAlpywAJacwACWnNAAlpzgAJadAACWnSAAlp0wAJadQACWnWAAlp1wAJalIACWpUAAlqVwAJalkACWpcAAlqXQAJal4ACWpfAAlqYAAJamIACWpkAAlqZQAJamYACWpoAAlqaQAJauQACWrmAAlq6AAJauoACWrtAAlq7gAJau8ACWrwAAlq8QAJavMACWr1AAlq9gAJavcACWr5AAlq+gAJa3UACWt3AAlreQAJa3sACWt+AAlrfwAJa4AACWuBAAlrggAJa4QACWuGAAlrhwAJa4gACWuKAAlriwAJbAYACWwIAAlsCgAJbAwACWwPAAlsEAAJbBEACWwSAAlsEwAJbBUACWwXAAlsGAAJbBkACWwbAAlsHAAJbK8ACWzSAAls8gAJbRIACW0UAAltFgAJbRgACW0aAAltHQAJbR4ACW0fAAltIgAJbSMACW0lAAltJgAJbSgACW0rAAltLAAJbS0ACW0wAAltMQAJbTYACW1PAAltWAAJbVoACW1cAAltZQAJbWgACW1rAAltbQAJbbYACW3aAAluAQAJbiUACW4oAAluKgAJbiwACW4uAAluMAAJbjIACW4zAAluNgAJbk8ACW5wAAlucgAJbnQACW52AAlueAAJbnoACW58AAlufgAJboAACW6hAAlupAAJbqcACW6qAAlurQAJbrAACW6zAAlutgAJbrkACW67AAlvNgAJbzgACW86AAlvPAAJbz8ACW9AAAlvQQAJb0IACW9DAAlvRQAJb0cACW9IAAlvSQAJb0sACW9MAAlvxwAJb8kACW/LAAlvzQAJb9AACW/RAAlv0gAJb9MACW/UAAlv1gAJb9gACW/ZAAlv2gAJb9wACW/dAAlwWAAJcFoACXBdAAlwXwAJcGIACXBjAAlwZAAJcGUACXBmAAlwaAAJcGoACXBrAAlwbAAJcG4ACXBvAAlwiAAJcIkACXCKAAlwjAAJcQcACXEJAAlxCwAJcQ0ACXEQAAlxEQAJcRIACXETAAlxFAAJcRYACXEYAAlxGQAJcRoACXEcAAlxHQAJcZgACXGaAAlxnAAJcZ4ACXGhAAlxogAJcaMACXGkAAlxpQAJcacACXGpAAlxqgAJcasACXGtAAlxrgAJcikACXIrAAlyLQAJci8ACXIyAAlyMwAJcjQACXI1AAlyNgAJcjgACXI6AAlyOwAJcjwACXI+AAlyPwAJcroACXK8AAlyvgAJcsAACXLDAAlyxAAJcsUACXLGAAlyxwAJcskACXLLAAlyzAAJcs0ACXLPAAly0AAJc0sACXNNAAlzTwAJc1EACXNUAAlzVQAJc1YACXNXAAlzWAAJc1oACXNcAAlzXQAJc14ACXNgAAlzYQAJc6oACXPOAAlz9QAJdBkACXQcAAl0HgAJdCAACXQiAAl0JAAJdCYACXQnAAl0KgAJdEMACXRgAAl0YgAJdGQACXRmAAl0aAAJdGoACXRsAAl0bgAJdIsACXSOAAl0kQAJdJQACXSXAAl0mgAJdJ0ACXSgAAl0ogAJdR0ACXUfAAl1IQAJdSMACXUmAAl1JwAJdSgACXUpAAl1KgAJdSwACXUuAAl1LwAJdTAACXUyAAl1MwAJda4ACXWwAAl1sgAJdbQACXW3AAl1uAAJdbkACXW6AAl1uwAJdb0ACXW/AAl1wAAJdcEACXXDAAl1xAAJdj8ACXZBAAl2QwAJdkUACXZIAAl2SQAJdkoACXZLAAl2TAAJdk4ACXZQAAl2UQAJdlIACXZUAAl2VQAJdtAACXbSAAl21QAJdtcACXbaAAl22wAJdtwACXbdAAl23gAJduAACXbiAAl24wAJduQACXbmAAl25wAJd2IACXdkAAl3ZgAJd2gACXdrAAl3bAAJd20ACXduAAl3bwAJd3EACXdzAAl3dAAJd3UACXd3AAl3eAAJd/MACXf1AAl39wAJd/kACXf8AAl3/QAJd/4ACXf/AAl4AAAJeAIACXgEAAl4BQAJeAYACXgIAAl4CQAJeIQACXiGAAl4iAAJeIoACXiNAAl4jgAJeI8ACXiQAAl4kQAJeJMACXiVAAl4lgAJeJcACXiZAAl4mgAJeS0ACXlQAAl5cAAJeZAACXmSAAl5lAAJeZYACXmYAAl5mwAJeZwACXmdAAl5oAAJeaEACXmjAAl5pAAJeaYACXmpAAl5qgAJeasACXmuAAl5rwAJebQACXnNAAl51gAJedgACXnaAAl54wAJeeYACXnpAAl56wAJejQACXpYAAl6fwAJeqMACXqmAAl6qAAJeqoACXqsAAl6rgAJerAACXqxAAl6tAAJes0ACXruAAl68AAJevIACXr0AAl69gAJevgACXr6AAl6/AAJev4ACXsfAAl7IgAJeyUACXsoAAl7KwAJey4ACXsxAAl7NAAJezcACXs5AAl7tAAJe7YACXu4AAl7ugAJe70ACXu+AAl7vwAJe8AACXvBAAl7wwAJe8UACXvGAAl7xwAJe8kACXvKAAl8RQAJfEcACXxJAAl8SwAJfE4ACXxPAAl8UAAJfFEACXxSAAl8VAAJfFYACXxXAAl8WAAJfFoACXxbAAl81gAJfNgACXzbAAl83QAJfOAACXzhAAl84gAJfOMACXzkAAl85gAJfOgACXzpAAl86gAJfOwACXztAAl9BgAJfQcACX0IAAl9CgAJfYUACX2HAAl9iQAJfYsACX2OAAl9jwAJfZAACX2RAAl9kgAJfZQACX2WAAl9lwAJfZgACX2aAAl9mwAJfhYACX4YAAl+GgAJfhwACX4fAAl+IAAJfiEACX4iAAl+IwAJfiUACX4nAAl+KAAJfikACX4rAAl+LAAJfqcACX6pAAl+qwAJfq0ACX6wAAl+sQAJfrIACX6zAAl+tAAJfrYACX64AAl+uQAJfroACX68AAl+vQAJfzgACX86AAl/PAAJfz4ACX9BAAl/QgAJf0MACX9EAAl/RQAJf0cACX9JAAl/SgAJf0sACX9NAAl/TgAJf8kACX/LAAl/zQAJf88ACX/SAAl/0wAJf9QACX/VAAl/1gAJf9gACX/aAAl/2wAJf9wACX/eAAl/3wAJgCgACYBMAAmAcwAJgJcACYCaAAmAnAAJgJ4ACYCgAAmAogAJgKQACYClAAmAqAAJgMEACYDeAAmA4AAJgOIACYDkAAmA5gAJgOgACYDqAAmA7AAJgQkACYEMAAmBDwAJgRIACYEVAAmBGAAJgRsACYEeAAmBIAAJgZsACYGdAAmBnwAJgaEACYGkAAmBpQAJgaYACYGnAAmBqAAJgaoACYGsAAmBrQAJga4ACYGwAAmBsQAJgiwACYIuAAmCMAAJgjIACYI1AAmCNgAJgjcACYI4AAmCOQAJgjsACYI9AAmCPgAJgj8ACYJBAAmCQgAJgr0ACYK/AAmCwQAJgsMACYLGAAmCxwAJgsgACYLJAAmCygAJgswACYLOAAmCzwAJgtAACYLSAAmC0wAJg04ACYNQAAmDUwAJg1UACYNYAAmDWQAJg1oACYNbAAmDXAAJg14ACYNgAAmDYQAJg2IACYNkAAmDZQAJg+AACYPiAAmD5AAJg+YACYPpAAmD6gAJg+sACYPsAAmD7QAJg+8ACYPxAAmD8gAJg/MACYP1AAmD9gAJhHEACYRzAAmEdQAJhHcACYR6AAmEewAJhHwACYR9AAmEfgAJhIAACYSCAAmEgwAJhIQACYSGAAmEhwAJhQIACYUEAAmFBgAJhQgACYULAAmFDAAJhQ0ACYUOAAmFDwAJhREACYUTAAmFFAAJhRUACYUXAAmFGAAJhasACYXOAAmF7gAJhg4ACYYQAAmGEgAJhhQACYYWAAmGGQAJhhoACYYbAAmGHgAJhh8ACYYhAAmGIgAJhiQACYYnAAmGKAAJhikACYYsAAmGLQAJhjIACYZLAAmGVAAJhlYACYZYAAmGYQAJhmQACYZnAAmGaQAJhrIACYbWAAmG/QAJhyEACYckAAmHJgAJhygACYcqAAmHLAAJhy4ACYcvAAmHMgAJh0sACYdsAAmHbgAJh3AACYdyAAmHdAAJh3YACYd4AAmHegAJh3wACYedAAmHoAAJh6MACYemAAmHqQAJh6wACYevAAmHsgAJh7UACYe3AAmIMgAJiDQACYg2AAmIOAAJiDsACYg8AAmIPQAJiD4ACYg/AAmIQQAJiEMACYhEAAmIRQAJiEcACYhIAAmIwwAJiMUACYjHAAmIyQAJiMwACYjNAAmIzgAJiM8ACYjQAAmI0gAJiNQACYjVAAmI1gAJiNgACYjZAAmJVAAJiVYACYlZAAmJWwAJiV4ACYlfAAmJYAAJiWEACYliAAmJZAAJiWYACYlnAAmJaAAJiWoACYlrAAmJhAAJiYUACYmGAAmJiAAJigMACYoFAAmKBwAJigkACYoMAAmKDQAJig4ACYoPAAmKEAAJihIACYoUAAmKFQAJihYACYoYAAmKGQAJipQACYqWAAmKmAAJipoACYqdAAmKngAJip8ACYqgAAmKoQAJiqMACYqlAAmKpgAJiqcACYqpAAmKqgAJiyUACYsnAAmLKQAJiysACYsuAAmLLwAJizAACYsxAAmLMgAJizQACYs2AAmLNwAJizgACYs6AAmLOwAJi7YACYu4AAmLugAJi7wACYu/AAmLwAAJi8EACYvCAAmLwwAJi8UACYvHAAmLyAAJi8kACYvLAAmLzAAJjEcACYxJAAmMSwAJjE0ACYxQAAmMUQAJjFIACYxTAAmMVAAJjFYACYxYAAmMWQAJjFoACYxcAAmMXQAJjKYACYzKAAmM8QAJjRUACY0YAAmNGgAJjRwACY0eAAmNIAAJjSIACY0jAAmNJgAJjT8ACY1cAAmNXgAJjWAACY1iAAmNZAAJjWYACY1oAAmNagAJjYcACY2KAAmNjQAJjZAACY2TAAmNlgAJjZkACY2cAAmNngAJjhkACY4bAAmOHQAJjh8ACY4iAAmOIwAJjiQACY4lAAmOJgAJjigACY4qAAmOKwAJjiwACY4uAAmOLwAJjqoACY6sAAmOrgAJjrAACY6zAAmOtAAJjrUACY62AAmOtwAJjrkACY67AAmOvAAJjr0ACY6/AAmOwAAJjzsACY89AAmPPwAJj0EACY9EAAmPRQAJj0YACY9HAAmPSAAJj0oACY9MAAmPTQAJj04ACY9QAAmPUQAJj8wACY/OAAmP0QAJj9MACY/WAAmP1wAJj9gACY/ZAAmP2gAJj9wACY/eAAmP3wAJj+AACY/iAAmP4wAJkF4ACZBgAAmQYgAJkGQACZBnAAmQaAAJkGkACZBqAAmQawAJkG0ACZBvAAmQcAAJkHEACZBzAAmQdAAJkO8ACZDxAAmQ8wAJkPUACZD4AAmQ+QAJkPoACZD7AAmQ/AAJkP4ACZEAAAmRAQAJkQIACZEEAAmRBQAJkYAACZGCAAmRhAAJkYYACZGJAAmRigAJkYsACZGMAAmRjQAJkY8ACZGRAAmRkgAJkZMACZGVAAmRlgAJkikACZJMAAmSbAAJkowACZKOAAmSkAAJkpIACZKUAAmSlwAJkpgACZKZAAmSnAAJkp0ACZKfAAmSoAAJkqIACZKlAAmSpgAJkqcACZKqAAmSqwAJkrAACZLJAAmS0gAJktQACZLWAAmS3wAJkuIACZLlAAmS5wAJkzAACZNUAAmTewAJk58ACZOiAAmTpAAJk6YACZOoAAmTqgAJk6wACZOtAAmTsAAJk8kACZPqAAmT7AAJk+4ACZPwAAmT8gAJk/QACZP2AAmT+AAJk/oACZQbAAmUHgAJlCEACZQkAAmUJwAJlCoACZQtAAmUMAAJlDMACZQ1AAmUsAAJlLIACZS0AAmUtgAJlLkACZS6AAmUuwAJlLwACZS9AAmUvwAJlMEACZTCAAmUwwAJlMUACZTGAAmVQQAJlUMACZVFAAmVRwAJlUoACZVLAAmVTAAJlU0ACZVOAAmVUAAJlVIACZVTAAmVVAAJlVYACZVXAAmV0gAJldQACZXXAAmV2QAJldwACZXdAAmV3gAJld8ACZXgAAmV4gAJleQACZXlAAmV5gAJlegACZXpAAmWAgAJlgMACZYEAAmWBgAJloEACZaDAAmWhQAJlocACZaKAAmWiwAJlowACZaNAAmWjgAJlpAACZaSAAmWkwAJlpQACZaWAAmWlwAJlxIACZcUAAmXFgAJlxgACZcbAAmXHAAJlx0ACZceAAmXHwAJlyEACZcjAAmXJAAJlyUACZcnAAmXKAAJl6MACZelAAmXpwAJl6kACZesAAmXrQAJl64ACZevAAmXsAAJl7IACZe0AAmXtQAJl7YACZe4AAmXuQAJmDQACZg2AAmYOAAJmDoACZg9AAmYPgAJmD8ACZhAAAmYQQAJmEMACZhFAAmYRgAJmEcACZhJAAmYSgAJmMUACZjHAAmYyQAJmMsACZjOAAmYzwAJmNAACZjRAAmY0gAJmNQACZjWAAmY1wAJmNgACZjaAAmY2wAJmSQACZlIAAmZbwAJmZMACZmWAAmZmAAJmZoACZmcAAmZngAJmaAACZmhAAmZpAAJmb0ACZnaAAmZ3AAJmd4ACZngAAmZ4gAJmeQACZnmAAmZ6AAJmgUACZoIAAmaCwAJmg4ACZoRAAmaFAAJmhcACZoaAAmaHAAJmpcACZqZAAmamwAJmp0ACZqgAAmaoQAJmqIACZqjAAmapAAJmqYACZqoAAmaqQAJmqoACZqsAAmarQAJmygACZsqAAmbLAAJmy4ACZsxAAmbMgAJmzMACZs0AAmbNQAJmzcACZs5AAmbOgAJmzsACZs9AAmbPgAJm7kACZu7AAmbvQAJm78ACZvCAAmbwwAJm8QACZvFAAmbxgAJm8gACZvKAAmbywAJm8wACZvOAAmbzwAJnEoACZxMAAmcTwAJnFEACZxUAAmcVQAJnFYACZxXAAmcWAAJnFoACZxcAAmcXQAJnF4ACZxgAAmcYQAJnNwACZzeAAmc4AAJnOIACZzlAAmc5gAJnOcACZzoAAmc6QAJnOsACZztAAmc7gAJnO8ACZzxAAmc8gAJnW0ACZ1vAAmdcQAJnXMACZ12AAmddwAJnXgACZ15AAmdegAJnXwACZ1+AAmdfwAJnYAACZ2CAAmdgwAJnf4ACZ4AAAmeAgAJngQACZ4HAAmeCAAJngkACZ4KAAmeCwAJng0ACZ4PAAmeEAAJnhEACZ4TAAmeFAAJnqcACZ7KAAme6gAJnwoACZ8MAAmfDgAJnxAACZ8SAAmfFQAJnxYACZ8XAAmfGgAJnxsACZ8dAAmfHgAJnyAACZ8jAAmfJAAJnyUACZ8oAAmfKQAJny4ACZ9HAAmfUAAJn1IACZ9UAAmfXQAJn2AACZ9jAAmfZQAJn64ACZ/SAAmf+QAJoB0ACaAgAAmgIgAJoCQACaAmAAmgKAAJoCoACaArAAmgLgAJoEcACaBoAAmgagAJoGwACaBuAAmgcAAJoHIACaB0AAmgdgAJoHgACaCZAAmgnAAJoJ8ACaCiAAmgpQAJoKgACaCrAAmgrgAJoLEACaCzAAmhLgAJoTAACaEyAAmhNAAJoTcACaE4AAmhOQAJoToACaE7AAmhPQAJoT8ACaFAAAmhQQAJoUMACaFEAAmhvwAJocEACaHDAAmhxQAJocgACaHJAAmhygAJocsACaHMAAmhzgAJodAACaHRAAmh0gAJodQACaHVAAmiUAAJolIACaJVAAmiVwAJoloACaJbAAmiXAAJol0ACaJeAAmiYAAJomIACaJjAAmiZAAJomYACaJnAAmigAAJooEACaKCAAmihAAJov8ACaMBAAmjAwAJowUACaMIAAmjCQAJowoACaMLAAmjDAAJow4ACaMQAAmjEQAJoxIACaMUAAmjFQAJo5AACaOSAAmjlAAJo5YACaOZAAmjmgAJo5sACaOcAAmjnQAJo58ACaOhAAmjogAJo6MACaOlAAmjpgAJpCEACaQjAAmkJQAJpCcACaQqAAmkKwAJpCwACaQtAAmkLgAJpDAACaQyAAmkMwAJpDQACaQ2AAmkNwAJpLIACaS0AAmktgAJpLgACaS7AAmkvAAJpL0ACaS+AAmkvwAJpMEACaTDAAmkxAAJpMUACaTHAAmkyAAJpUMACaVFAAmlRwAJpUkACaVMAAmlTQAJpU4ACaVPAAmlUAAJpVIACaVUAAmlVQAJpVYACaVYAAmlWQAJpaIACaXGAAml7QAJphEACaYUAAmmFgAJphgACaYaAAmmHAAJph4ACaYfAAmmIgAJpjsACaZYAAmmWgAJplwACaZeAAmmYAAJpmIACaZkAAmmZgAJpoMACaaGAAmmiQAJpowACaaPAAmmkgAJppUACaaYAAmmmgAJpxUACacXAAmnGQAJpxsACaceAAmnHwAJpyAACachAAmnIgAJpyQACacmAAmnJwAJpygACacqAAmnKwAJp6YACaeoAAmnqgAJp6wACaevAAmnsAAJp7EACaeyAAmnswAJp7UACae3AAmnuAAJp7kACae7AAmnvAAJqDcACag5AAmoOwAJqD0ACahAAAmoQQAJqEIACahDAAmoRAAJqEYACahIAAmoSQAJqEoACahMAAmoTQAJqMgACajKAAmozQAJqM8ACajSAAmo0wAJqNQACajVAAmo1gAJqNgACajaAAmo2wAJqNwACajeAAmo3wAJqVoACalcAAmpXgAJqWAACaljAAmpZAAJqWUACalmAAmpZwAJqWkACalrAAmpbAAJqW0ACalvAAmpcAAJqesACantAAmp7wAJqfEACan0AAmp9QAJqfYACan3AAmp+AAJqfoACan8AAmp/QAJqf4ACaoAAAmqAQAJqnwACap+AAmqgAAJqoIACaqFAAmqhgAJqocACaqIAAmqiQAJqosACaqNAAmqjgAJqo8ACaqRAAmqkgAJqyUACatIAAmraAAJq4gACauKAAmrjAAJq44ACauQAAmrkwAJq5QACauVAAmrmAAJq5kACaubAAmrnAAJq54ACauhAAmrogAJq6MACaumAAmrpwAJq7AACavJAAmr0gAJq9QACavWAAmr3wAJq+IACavlAAmr5wAJrDAACaxUAAmsewAJrJ8ACayiAAmspAAJrKYACayoAAmsqgAJrKwACaytAAmssAAJrMkACazqAAms7AAJrO4ACazwAAms8gAJrPQACaz2AAms+AAJrPoACa0bAAmtHgAJrSEACa0kAAmtJwAJrSoACa0tAAmtMAAJrTMACa01AAmtsAAJrbIACa20AAmttgAJrbkACa26AAmtuwAJrbwACa29AAmtvwAJrcEACa3CAAmtwwAJrcUACa3GAAmuQQAJrkMACa5FAAmuRwAJrkoACa5LAAmuTAAJrk0ACa5OAAmuUAAJrlIACa5TAAmuVAAJrlYACa5XAAmu0gAJrtQACa7XAAmu2QAJrtwACa7dAAmu3gAJrt8ACa7gAAmu4gAJruQACa7lAAmu5gAJrugACa7pAAmvAgAJrwMACa8EAAmvBgAJr4EACa+DAAmvhQAJr4cACa+KAAmviwAJr4wACa+NAAmvjgAJr5AACa+SAAmvkwAJr5QACa+WAAmvlwAJsBIACbAUAAmwFgAJsBgACbAbAAmwHAAJsB0ACbAeAAmwHwAJsCEACbAjAAmwJAAJsCUACbAnAAmwKAAJsKMACbClAAmwpwAJsKkACbCsAAmwrQAJsK4ACbCvAAmwsAAJsLIACbC0AAmwtQAJsLYACbC4AAmwuQAJsTQACbE2AAmxOAAJsToACbE9AAmxPgAJsT8ACbFAAAmxQQAJsUMACbFFAAmxRgAJsUcACbFJAAmxSgAJscUACbHHAAmxyQAJscsACbHOAAmxzwAJsdAACbHRAAmx0gAJsdQACbHWAAmx1wAJsdgACbHaAAmx2wAJsiQACbJIAAmybwAJspMACbKWAAmymAAJspoACbKcAAmyngAJsqAACbKhAAmypAAJsr0ACbLaAAmy3AAJst4ACbLgAAmy4gAJsuQACbLmAAmy6AAJswUACbMIAAmzCwAJsw4ACbMRAAmzFAAJsxcACbMaAAmzHAAJs5cACbOZAAmzmwAJs50ACbOgAAmzoQAJs6IACbOjAAmzpAAJs6YACbOoAAmzqQAJs6oACbOsAAmzrQAJtCgACbQqAAm0LAAJtC4ACbQxAAm0MgAJtDMACbQ0AAm0NQAJtDcACbQ5AAm0OgAJtDsACbQ9AAm0PgAJtLkACbS7AAm0vQAJtL8ACbTCAAm0wwAJtMQACbTFAAm0xgAJtMgACbTKAAm0ywAJtMwACbTOAAm0zwAJtUoACbVMAAm1TwAJtVEACbVUAAm1VQAJtVYACbVXAAm1WAAJtVoACbVcAAm1XQAJtV4ACbVgAAm1YQAJtdwACbXeAAm14AAJteIACbXlAAm15gAJtecACbXoAAm16QAJtesACbXtAAm17gAJte8ACbXxAAm18gAJtm0ACbZvAAm2cQAJtnMACbZ2AAm2dwAJtngACbZ5AAm2egAJtnwACbZ+AAm2fwAJtoAACbaCAAm2gwAJtv4ACbcAAAm3AgAJtwQACbcHAAm3CAAJtwkACbcKAAm3CwAJtw0ACbcPAAm3EAAJtxEACbcTAAm3FAAJt6cACbfKAAm36gAJuAoACbgMAAm4DgAJuBAACbgSAAm4FQAJuBYACbgXAAm4GgAJuBsACbgdAAm4HgAJuCEACbgkAAm4JQAJuCYACbgpAAm4KgAJuC8ACbhIAAm4UQAJuFMACbhWAAm4XwAJuGIACbhlAAm4ZwAJuLAACbjUAAm4+wAJuR8ACbkiAAm5JAAJuSYACbkoAAm5KgAJuSwACbktAAm5MAAJuUkACblqAAm5bAAJuW4ACblwAAm5cgAJuXQACbl2AAm5eAAJuXoACbmbAAm5ngAJuaEACbmkAAm5pwAJuaoACbmtAAm5sAAJubMACbm1AAm6MAAJujIACbo0AAm6NgAJujkACbo6AAm6OwAJujwACbo9AAm6PwAJukEACbpCAAm6QwAJukUACbpGAAm6wQAJusMACbrFAAm6xwAJusoACbrLAAm6zAAJus0ACbrOAAm60AAJutIACbrTAAm61AAJutYACbrXAAm7UgAJu1QACbtXAAm7WQAJu1wACbtdAAm7XgAJu18ACbtgAAm7YgAJu2QACbtlAAm7ZgAJu2gACbtpAAm7ggAJu4MACbuEAAm7hgAJvAEACbwDAAm8BQAJvAcACbwKAAm8CwAJvAwACbwNAAm8DgAJvBAACbwSAAm8EwAJvBQACbwWAAm8FwAJvJIACbyUAAm8lgAJvJgACbybAAm8nAAJvJ0ACbyeAAm8nwAJvKEACbyjAAm8pAAJvKUACbynAAm8qAAJvSMACb0lAAm9JwAJvSkACb0sAAm9LQAJvS4ACb0vAAm9MAAJvTIACb00AAm9NQAJvTYACb04AAm9OQAJvbQACb22AAm9uAAJvboACb29AAm9vgAJvb8ACb3AAAm9wQAJvcMACb3FAAm9xgAJvccACb3JAAm9ygAJvkUACb5HAAm+SQAJvksACb5OAAm+TwAJvlAACb5RAAm+UgAJvlQACb5WAAm+VwAJvlgACb5aAAm+WwAJvqQACb7IAAm+7wAJvxMACb8WAAm/GQAJvxsACb8dAAm/HwAJvyEACb8iAAm/JQAJvz4ACb9bAAm/XgAJv2EACb9kAAm/ZwAJv2oACb9tAAm/cAAJv40ACb+QAAm/kwAJv5YACb+ZAAm/nAAJv58ACb+iAAm/pAAJwB8ACcAhAAnAJAAJwCYACcApAAnAKgAJwCsACcAsAAnALQAJwC8ACcAyAAnAMwAJwDQACcA2AAnANwAJwLIACcC0AAnAtwAJwLkACcC8AAnAvQAJwL4ACcC/AAnAwAAJwMIACcDFAAnAxgAJwMcACcDJAAnAygAJwUUACcFHAAnBSgAJwUwACcFPAAnBUAAJwVEACcFSAAnBUwAJwVUACcFYAAnBWQAJwVoACcFcAAnBXQAJwdgACcHaAAnB3QAJwd8ACcHiAAnB4wAJweQACcHlAAnB5gAJwegACcHrAAnB7AAJwe0ACcHvAAnB8AAJwnMACcKXAAnCuwAJwt4ACcMFAAnDJQAJw0wACcNzAAnDkwAJw7cACcPbAAnD3QAJw+AACcPiAAnD5AAJw+YACcPpAAnD7AAJw+4ACcPwAAnD8wAJw/UACcP3AAnD+gAJw/0ACcP+AAnEAwAJxBwACcQhAAnEIwAJxCgACcQrAAnELQAJxHYACcSaAAnEwQAJxOUACcToAAnE6gAJxOwACcTuAAnE8AAJxPIACcTzAAnE9gAJxQ8ACcU0AAnFNgAJxTgACcU6AAnFPAAJxT4ACcVAAAnFQgAJxUQACcVGAAnFawAJxW4ACcVxAAnFdAAJxXcACcV6AAnFfQAJxYAACcWDAAnFhgAJxYgACcYDAAnGBQAJxggACcYKAAnGDQAJxg4ACcYPAAnGEAAJxhEACcYTAAnGFQAJxhYACcYXAAnGGQAJxhoACcYrAAnGLAAJxi4ACcapAAnGqwAJxq0ACcavAAnGsgAJxrMACca0AAnGtQAJxrYACca4AAnGugAJxrsACca8AAnGvgAJxr8ACcc6AAnHPAAJxz8ACcdBAAnHRAAJx0UACcdGAAnHRwAJx0gACcdKAAnHTAAJx00ACcdOAAnHUAAJx1EACcdiAAnHYwAJx2UACcfgAAnH4gAJx+QACcfmAAnH6QAJx+oACcfrAAnH7AAJx+0ACcfvAAnH8QAJx/IACcfzAAnH9QAJx/YACchxAAnIcwAJyHYACch4AAnIewAJyHwACch9AAnIfgAJyH8ACciBAAnIgwAJyIQACciFAAnIhwAJyIgACciZAAnImgAJyJwACckXAAnJGQAJyRsACckdAAnJIAAJySEACckiAAnJIwAJySQACckmAAnJKAAJySkACckqAAnJLAAJyS0ACcmoAAnJqgAJya0ACcmvAAnJsgAJybMACcm0AAnJtQAJybYACcm4AAnJugAJybsACcm8AAnJvgAJyb8ACcnYAAnJ2QAJydoACcncAAnKVwAJylkACcpbAAnKXQAJymAACcphAAnKYgAJymMACcpkAAnKZgAJymgACcppAAnKagAJymwACcptAAnK6AAJyuoACcrtAAnK7wAJyvIACcrzAAnK9AAJyvUACcr2AAnK+AAJyvoACcr7AAnK/AAJyv4ACcr/AAnLGQAJyzIACctDAAnLRgAJy0kACctMAAnLTwAJy2AACctjAAnLZgAJy2kACctsAAnLbgAJy30ACcuRAAnLnQAJy7MACcxGAAnMaQAJzIkACcypAAnMqwAJzK0ACcyvAAnMsQAJzLQACcy1AAnMtgAJzLkACcy6AAnMvAAJzL0ACczAAAnMwwAJzMQACczFAAnMyAAJzMkACczOAAnM5wAJzPAACczyAAnM9QAJzP4ACc0BAAnNBAAJzQYACc1PAAnNcwAJzZoACc2+AAnNwQAJzcMACc3FAAnNxwAJzckACc3LAAnNzAAJzc8ACc3oAAnOCQAJzgsACc4NAAnODwAJzhEACc4TAAnOFQAJzhcACc4ZAAnOOgAJzj0ACc5AAAnOQwAJzkYACc5JAAnOTAAJzk8ACc5SAAnOVAAJzs8ACc7RAAnO0wAJztUACc7YAAnO2QAJztoACc7bAAnO3AAJzt4ACc7gAAnO4QAJzuIACc7kAAnO5QAJz2AACc9iAAnPZAAJz2YACc9pAAnPagAJz2sACc9sAAnPbQAJz28ACc9xAAnPcgAJz3MACc91AAnPdgAJz/EACc/zAAnP9gAJz/gACc/7AAnP/AAJz/0ACc/+AAnP/wAJ0AEACdADAAnQBAAJ0AUACdAHAAnQCAAJ0CEACdAiAAnQIwAJ0CUACdCgAAnQogAJ0KQACdCmAAnQqQAJ0KoACdCrAAnQrAAJ0K0ACdCvAAnQsQAJ0LIACdCzAAnQtQAJ0LYACdExAAnRMwAJ0TUACdE3AAnROgAJ0TsACdE8AAnRPQAJ0T4ACdFAAAnRQgAJ0UMACdFEAAnRRgAJ0UcACdHCAAnRxAAJ0cYACdHIAAnRywAJ0cwACdHNAAnRzgAJ0c8ACdHRAAnR0wAJ0dQACdHVAAnR1wAJ0dgACdJTAAnSVQAJ0lcACdJZAAnSXAAJ0l0ACdJeAAnSXwAJ0mAACdJiAAnSZAAJ0mUACdJmAAnSaAAJ0mkACdLkAAnS5gAJ0ugACdLqAAnS7QAJ0u4ACdLvAAnS8AAJ0vEACdLzAAnS9QAJ0vYACdL3AAnS+QAJ0voACdNDAAnTZwAJ044ACdOyAAnTtQAJ07gACdO6AAnTvAAJ074ACdPAAAnTwQAJ08QACdPdAAnT+gAJ0/0ACdQAAAnUAwAJ1AYACdQJAAnUDAAJ1A8ACdQsAAnULwAJ1DIACdQ1AAnUOAAJ1DsACdQ+AAnUQQAJ1EMACdS+AAnUwAAJ1MMACdTFAAnUyAAJ1MkACdTKAAnUywAJ1MwACdTOAAnU0QAJ1NIACdTTAAnU1QAJ1NYACdVRAAnVUwAJ1VYACdVYAAnVWwAJ1VwACdVdAAnVXgAJ1V8ACdVhAAnVZAAJ1WUACdVmAAnVaAAJ1WkACdXkAAnV5gAJ1ekACdXrAAnV7gAJ1e8ACdXwAAnV8QAJ1fIACdX0AAnV9wAJ1fgACdX5AAnV+wAJ1fwACdZ3AAnWeQAJ1nwACdZ+AAnWgQAJ1oIACdaDAAnWhAAJ1oUACdaHAAnWigAJ1osACdaMAAnWjgAJ1o8ACdcKAAnXDAAJ1w4ACdcQAAnXEwAJ1xQACdcVAAnXFgAJ1xcACdcZAAnXHAAJ1x0ACdceAAnXIAAJ1yEACdecAAnXngAJ16AACdeiAAnXpQAJ16YACdenAAnXqAAJ16kACderAAnXrgAJ168ACdewAAnXsgAJ17MACdguAAnYMAAJ2DMACdg1AAnYOAAJ2DkACdg6AAnYOwAJ2DwACdg+AAnYQQAJ2EIACdhDAAnYRQAJ2EYACdjZAAnY/AAJ2RwACdk8AAnZPgAJ2UAACdlCAAnZRAAJ2UcACdlIAAnZSQAJ2UwACdlNAAnZTwAJ2VAACdlSAAnZVQAJ2VYACdlXAAnZWgAJ2VsACdlgAAnZeQAJ2YIACdmEAAnZhgAJ2Y8ACdmSAAnZlQAJ2ZcACdngAAnaBAAJ2isACdpPAAnaUgAJ2lQACdpWAAnaWAAJ2loACdpcAAnaXQAJ2mAACdp5AAnamgAJ2pwACdqeAAnaoAAJ2qIACdqkAAnapgAJ2qgACdqqAAnaywAJ2s4ACdrRAAna1AAJ2tcACdraAAna3QAJ2uAACdrjAAna5QAJ22AACdtiAAnbZAAJ22YACdtpAAnbagAJ22sACdtsAAnbbQAJ228ACdtxAAnbcgAJ23MACdt1AAnbdgAJ2/EACdvzAAnb9QAJ2/cACdv6AAnb+wAJ2/wACdv9AAnb/gAJ3AAACdwCAAncAwAJ3AQACdwGAAncBwAJ3IIACdyEAAnchwAJ3IkACdyMAAncjQAJ3I4ACdyPAAnckAAJ3JIACdyUAAnclQAJ3JYACdyYAAncmQAJ3LIACdyzAAnctAAJ3LYACd0xAAndMwAJ3TUACd03AAndOgAJ3TsACd08AAndPQAJ3T4ACd1AAAndQgAJ3UMACd1EAAndRgAJ3UcACd3CAAndxAAJ3cYACd3IAAndywAJ3cwACd3NAAndzgAJ3c8ACd3RAAnd0wAJ3dQACd3VAAnd1wAJ3dgACd5TAAneVQAJ3lcACd5ZAAneXAAJ3l0ACd5eAAneXwAJ3mAACd5iAAneZAAJ3mUACd5mAAneaAAJ3mkACd7kAAne5gAJ3ugACd7qAAne7QAJ3u4ACd7vAAne8AAJ3vEACd7zAAne9QAJ3vYACd73AAne+QAJ3voACd91AAnfdwAJ33kACd97AAnffgAJ338ACd+AAAnfgQAJ34IACd+EAAnfhgAJ34cACd+IAAnfigAJ34sACd/UAAnf+AAJ4B8ACeBDAAngRgAJ4EgACeBKAAngTAAJ4E4ACeBQAAngUQAJ4FQACeBtAAngigAJ4IwACeCOAAngkAAJ4JIACeCUAAnglgAJ4JgACeC1AAnguAAJ4LsACeC+AAngwQAJ4MQACeDHAAngygAJ4MwACeFHAAnhSQAJ4UsACeFNAAnhUAAJ4VEACeFSAAnhUwAJ4VQACeFWAAnhWAAJ4VkACeFaAAnhXAAJ4V0ACeHYAAnh2gAJ4dwACeHeAAnh4QAJ4eIACeHjAAnh5AAJ4eUACeHnAAnh6QAJ4eoACeHrAAnh7QAJ4e4ACeJpAAniawAJ4m0ACeJvAAnicgAJ4nMACeJ0AAnidQAJ4nYACeJ4AAniegAJ4nsACeJ8AAnifgAJ4n8ACeL6AAni/AAJ4v4ACeMAAAnjAwAJ4wQACeMFAAnjBgAJ4wcACeMJAAnjCwAJ4wwACeMNAAnjDwAJ4xAACeOLAAnjjQAJ448ACeORAAnjlAAJ45UACeOWAAnjlwAJ45gACeOaAAnjnAAJ450ACeOeAAnjoAAJ46EACeQcAAnkHgAJ5CAACeQiAAnkJQAJ5CYACeQnAAnkKAAJ5CkACeQrAAnkLQAJ5C4ACeQvAAnkMQAJ5DIACeStAAnkrwAJ5LEACeSzAAnktgAJ5LcACeS4AAnkuQAJ5LoACeS8AAnkvgAJ5L8ACeTAAAnkwgAJ5MMACeVWAAnleQAJ5ZkACeW5AAnluwAJ5b0ACeW/AAnlwQAJ5cQACeXFAAnlxgAJ5ckACeXKAAnlzAAJ5c0ACeXPAAnl0gAJ5dMACeXUAAnl1wAJ5dgACeXdAAnl9gAJ5f8ACeYBAAnmAwAJ5gwACeYPAAnmEgAJ5hQACeZdAAnmgQAJ5qgACebMAAnmzwAJ5tEACebTAAnm1QAJ5tcACebZAAnm2gAJ5t0ACeb2AAnnFwAJ5xkACecbAAnnHQAJ5x8ACechAAnnIwAJ5yUACecnAAnnSAAJ50sACedOAAnnUQAJ51QACedXAAnnWgAJ510ACedgAAnnYgAJ590ACeffAAnn4QAJ5+MACefmAAnn5wAJ5+gACefpAAnn6gAJ5+wACefuAAnn7wAJ5/AACefyAAnn8wAJ6G4ACehwAAnocgAJ6HQACeh3AAnoeAAJ6HkACeh6AAnoewAJ6H0ACeh/AAnogAAJ6IEACeiDAAnohAAJ6P8ACekBAAnpBAAJ6QYACekJAAnpCgAJ6QsACekMAAnpDQAJ6Q8ACekRAAnpEgAJ6RMACekVAAnpFgAJ6S8ACekwAAnpMQAJ6TMACemuAAnpsAAJ6bIACem0AAnptwAJ6bgACem5AAnpugAJ6bsACem9AAnpvwAJ6cAACenBAAnpwwAJ6cQACeo/AAnqQQAJ6kMACepFAAnqSAAJ6kkACepKAAnqSwAJ6kwACepOAAnqUAAJ6lEACepSAAnqVAAJ6lUACerQAAnq0gAJ6tQACerWAAnq2QAJ6toACerbAAnq3AAJ6t0ACerfAAnq4QAJ6uIACerjAAnq5QAJ6uYACethAAnrYwAJ62UACetnAAnragAJ62sACetsAAnrbQAJ624ACetwAAnrcgAJ63MACet0AAnrdgAJ63cACevyAAnr9AAJ6/YACev4AAnr+wAJ6/wACev9AAnr/gAJ6/8ACewBAAnsAwAJ7AQACewFAAnsBwAJ7AgACexRAAnsdQAJ7JwACezAAAnswwAJ7MUACezHAAnsyQAJ7MsACezNAAnszgAJ7NEACezqAAntBwAJ7QkACe0LAAntDQAJ7Q8ACe0RAAntEwAJ7RUACe0yAAntNQAJ7TgACe07AAntPgAJ7UEACe1EAAntRwAJ7UkACe3EAAntxgAJ7cgACe3KAAntzQAJ7c4ACe3PAAnt0AAJ7dEACe3TAAnt1QAJ7dYACe3XAAnt2QAJ7doACe5VAAnuVwAJ7lkACe5bAAnuXgAJ7l8ACe5gAAnuYQAJ7mIACe5kAAnuZgAJ7mcACe5oAAnuagAJ7msACe7mAAnu6AAJ7uoACe7sAAnu7wAJ7vAACe7xAAnu8gAJ7vMACe71AAnu9wAJ7vgACe75AAnu+wAJ7vwACe93AAnveQAJ73wACe9+AAnvgQAJ74IACe+DAAnvhAAJ74UACe+HAAnviQAJ74oACe+LAAnvjQAJ744ACfAJAAnwCwAJ8A0ACfAPAAnwEgAJ8BMACfAUAAnwFQAJ8BYACfAYAAnwGgAJ8BsACfAcAAnwHgAJ8B8ACfCaAAnwnAAJ8J4ACfCgAAnwowAJ8KQACfClAAnwpgAJ8KcACfCpAAnwqwAJ8KwACfCtAAnwrwAJ8LAACfErAAnxLQAJ8S8ACfExAAnxNAAJ8TUACfE2AAnxNwAJ8TgACfE6AAnxPAAJ8T0ACfE+AAnxQAAJ8UEACfHUAAnx9wAJ8hcACfI3AAnyOQAJ8jsACfI9AAnyPwAJ8kIACfJDAAnyRAAJ8kcACfJIAAnySgAJ8ksACfJNAAnyUAAJ8lEACfJSAAn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D1AAKA9YACgPYAAoD2QAKA9oACgPcAAoD3QAKA/YACgP3AAoD+AAKA/oACgR1AAoEdwAKBHkACgR7AAoEfgAKBH8ACgSAAAoEgQAKBIIACgSEAAoEhgAKBIcACgSIAAoEigAKBIsACgUGAAoFCAAKBQoACgUMAAoFDwAKBRAACgURAAoFEgAKBRMACgUVAAoFFwAKBRgACgUZAAoFGwAKBRwACgWXAAoFmQAKBZsACgWdAAoFoAAKBaEACgWiAAoFowAKBaQACgWmAAoFqAAKBakACgWqAAoFrAAKBa0ACgYoAAoGKgAKBiwACgYuAAoGMQAKBjIACgYzAAoGNAAKBjUACgY3AAoGOQAKBjoACgY7AAoGPQAKBj4ACga5AAoGuwAKBr0ACga/AAoGwgAKBsMACgbEAAoGxQAKBsYACgbIAAoGygAKBssACgbMAAoGzgAKBs8ACgcYAAoHPAAKB2MACgeHAAoHigAKB4wACgeOAAoHkAAKB5IACgeUAAoHlQAKB5gACgexAAoHzgAKB9AACgfSAAoH1AAKB9YACgfYAAoH2gAKB9wACgf5AAoH/AAKB/8ACggCAAoIBQAKCAgACggLAAoIDgAKCBAACgiLAAoIjQAKCI8ACgiRAAoIlAAKCJUACgiWAAoIlwAKCJgACgiaAAoInAAKCJ0ACgieAAoIoAAKCKEACgkcAAoJHgAKCSAACgkiAAoJJQAKCSYACgknAAoJKAAKCSkACgkrAAoJLQAKCS4ACgkvAAoJMQAKCTIACgmtAAoJrwAKCbEACgmzAAoJtgAKCbcACgm4AAoJuQAKCboACgm8AAoJvgAKCb8ACgnAAAoJwgAKCcMACgo+AAoKQAAKCkMACgpFAAoKSAAKCkkACgpKAAoKSwAKCkwACgpOAAoKUAAKClEACgpSAAoKVAAKClUACgrQAAoK0gAKCtQACgrWAAoK2QAKCtoACgrbAAoK3AAKCt0ACgrfAAoK4QAKCuIACgrjAAoK5QAKCuYACgthAAoLYwAKC2UACgtnAAoLagAKC2sACgtsAAoLbQAKC24ACgtwAAoLcgAKC3MACgt0AAoLdgAKC3cACgvyAAoL9AAKC/YACgv4AAoL+wAKC/wACgv9AAoL/gAKC/8ACgwBAAoMAwAKDAQACgwFAAoMBwAKDAgACgybAAoMvgAKDN4ACgz+AAoNAAAKDQIACg0EAAoNBgAKDQkACg0KAAoNCwAKDQ4ACg0PAAoNEQAKDRIACg0UAAoNFwAKDRgACg0ZAAoNHAAKDR0ACg0iAAoNOwAKDUQACg1GAAoNSAAKDVEACg1UAAoNVwAKDVkACg2iAAoNxgAKDe0ACg4RAAoOFAAKDhYACg4YAAoOGgAKDhwACg4eAAoOHwAKDiIACg47AAoOXAAKDl4ACg5gAAoOYgAKDmQACg5mAAoOaAAKDmoACg5sAAoOjQAKDpAACg6TAAoOlgAKDpkACg6cAAoOnwAKDqIACg6lAAoOpwAKDyIACg8kAAoPJgAKDygACg8rAAoPLAAKDy0ACg8uAAoPLwAKDzEACg8zAAoPNAAKDzUACg83AAoPOAAKD7MACg+1AAoPtwAKD7kACg+8AAoPvQAKD74ACg+/AAoPwAAKD8IACg/EAAoPxQAKD8YACg/IAAoPyQAKEEQAChBGAAoQSQAKEEsAChBOAAoQTwAKEFAAChBRAAoQUgAKEFQAChBWAAoQVwAKEFgAChBaAAoQWwAKEHQAChB1AAoQdgAKEHgAChDzAAoQ9QAKEPcAChD5AAoQ/AAKEP0AChD+AAoQ/wAKEQAAChECAAoRBAAKEQUAChEGAAoRCAAKEQkAChGEAAoRhgAKEYgAChGKAAoRjQAKEY4AChGPAAoRkAAKEZEAChGTAAoRlQAKEZYAChGXAAoRmQAKEZoAChIVAAoSFwAKEhkAChIbAAoSHgAKEh8AChIgAAoSIQAKEiIAChIkAAoSJgAKEicAChIoAAoSKgAKEisAChKmAAoSqAAKEqoAChKsAAoSrwAKErAAChKxAAoSsgAKErMAChK1AAoStwAKErgAChK5AAoSuwAKErwAChM3AAoTOQAKEzsAChM9AAoTQAAKE0EAChNCAAoTQwAKE0QAChNGAAoTSAAKE0kAChNKAAoTTAAKE00AChOWAAoTugAKE+EAChQFAAoUCAAKFAoAChQMAAoUDgAKFBAAChQSAAoUEwAKFBYAChQvAAoUTAAKFE4AChRQAAoUUgAKFFQAChRWAAoUWAAKFFoAChR3AAoUegAKFH0AChSAAAoUgwAKFIYAChSJAAoUjAAKFI4AChUJAAoVCwAKFQ0AChUPAAoVEgAKFRMAChUUAAoVFQAKFRYAChUYAAoVGgAKFRsAChUcAAoVHgAKFR8AChWaAAoVnAAKFZ4AChWgAAoVowAKFaQAChWlAAoVpgAKFacAChWpAAoVqwAKFawAChWtAAoVrwAKFbAAChYrAAoWLQAKFi8AChYxAAoWNAAKFjUAChY2AAoWNwAKFjgAChY6AAoWPAAKFj0AChY+AAoWQAAKFkEACha8AAoWvgAKFsEAChbDAAoWxgAKFscAChbIAAoWyQAKFsoAChbMAAoWzgAKFs8AChbQAAoW0gAKFtMAChdOAAoXUAAKF1IAChdUAAoXVwAKF1gAChdZAAoXWgAKF1sAChddAAoXXwAKF2AAChdhAAoXYwAKF2QAChffAAoX4QAKF+MAChflAAoX6AAKF+kAChfqAAoX6wAKF+wAChfuAAoX8AAKF/EAChfyAAoX9AAKF/UAChhwAAoYcgAKGHQAChh2AAoYeQAKGHoAChh7AAoYfAAKGH0AChh/AAoYgQAKGIIAChiDAAoYhQAKGIYAChkZAAoZPAAKGVwAChl8AAoZfgAKGYAAChmCAAoZhAAKGYcAChmIAAoZiQAKGYwAChmNAAoZjwAKGZAAChmSAAoZlQAKGZYAChmXAAoZmgAKGZsAChmgAAoZuQAKGcIAChnEAAoZxgAKGc8AChnSAAoZ1QAKGdcAChogAAoaRAAKGmsAChqPAAoakgAKGpQAChqWAAoamAAKGpoAChqcAAoanQAKGqAAChq5AAoa2gAKGtwAChreAAoa4AAKGuIAChrkAAoa5gAKGugAChrqAAobCwAKGw4AChsRAAobFAAKGxcAChsaAAobHQAKGyAAChsjAAobJQAKG6AAChuiAAobpAAKG6YAChupAAobqgAKG6sAChusAAobrQAKG68AChuxAAobsgAKG7MAChu1AAobtgAKHDEAChwzAAocNQAKHDcAChw6AAocOwAKHDwAChw9AAocPgAKHEAAChxCAAocQwAKHEQAChxGAAocRwAKHMIAChzEAAocxwAKHMkAChzMAAoczQAKHM4AChzPAAoc0AAKHNIAChzUAAoc1QAKHNYAChzYAAoc2QAKHPIAChzzAAoc9AAKHPYACh1xAAodcwAKHXUACh13AAodegAKHXsACh18AAodfQAKHX4ACh2AAAodggAKHYMACh2EAAodhgAKHYcACh4CAAoeBAAKHgYACh4IAAoeCwAKHgwACh4NAAoeDgAKHg8ACh4RAAoeEwAKHhQACh4VAAoeFwAKHhgACh6TAAoelQAKHpcACh6ZAAoenAAKHp0ACh6eAAoenwAKHqAACh6iAAoepAAKHqUACh6mAAoeqAAKHqkACh8kAAofJgAKHygACh8qAAofLQAKHy4ACh8vAAofMAAKHzEACh8zAAofNQAKHzYACh83AAofOQAKHzoACh+1AAoftwAKH7kACh+7AAofvgAKH78ACh/AAAofwQAKH8IACh/EAAofxgAKH8cACh/IAAofygAKH8sACiAUAAogOAAKIF8ACiCDAAoghgAKIIgACiCKAAogjAAKII4ACiCQAAogkQAKIJQACiCtAAogygAKIMwACiDOAAog0AAKINIACiDUAAog1gAKINgACiD1AAog+AAKIPsACiD+AAohAQAKIQQACiEHAAohCgAKIQwACiGHAAohiQAKIYsACiGNAAohkAAKIZEACiGSAAohkwAKIZQACiGWAAohmAAKIZkACiGaAAohnAAKIZ0ACiIYAAoiGgAKIhwACiIeAAoiIQAKIiIACiIjAAoiJAAKIiUACiInAAoiKQAKIioACiIrAAoiLQAKIi4ACiKpAAoiqwAKIq0ACiKvAAoisgAKIrMACiK0AAoitQAKIrYACiK4AAoiugAKIrsACiK8AAoivgAKIr8ACiM6AAojPAAKIz8ACiNBAAojRAAKI0UACiNGAAojRwAKI0gACiNKAAojTAAKI00ACiNOAAojUAAKI1EACiPMAAojzgAKI9AACiPSAAoj1QAKI9YACiPXAAoj2AAKI9kACiPbAAoj3QAKI94ACiPfAAoj4QAKI+IACiRdAAokXwAKJGEACiRjAAokZgAKJGcACiRoAAokaQAKJGoACiRsAAokbgAKJG8ACiRwAAokcgAKJHMACiTuAAok8AAKJPIACiT0AAok9wAKJPgACiT5AAok+gAKJPsACiT9AAok/wAKJQAACiUBAAolAwAKJQQACiWXAAolugAKJdoACiX6AAol/AAKJf4ACiYAAAomAgAKJgUACiYGAAomBwAKJgoACiYLAAomDQAKJg4ACiYRAAomFAAKJhUACiYWAAomGQAKJhoACiYfAAomOAAKJkEACiZDAAomRgAKJk8ACiZSAAomVQAKJlcACiagAAomxAAKJusACicPAAonEgAKJxQACicWAAonGAAKJxoACiccAAonHQAKJyAACic5AAonWgAKJ1wACideAAonYAAKJ2IACidkAAonZgAKJ2gACidqAAoniwAKJ44ACieRAAonlAAKJ5cACieaAAonnQAKJ6AACiejAAonpQAKKCAACigiAAooJAAKKCYACigpAAooKgAKKCsACigsAAooLQAKKC8ACigxAAooMgAKKDMACig1AAooNgAKKLEACiizAAootQAKKLcACii6AAoouwAKKLwACii9AAoovgAKKMAACijCAAoowwAKKMQACijGAAooxwAKKUIACilEAAopRwAKKUkACilMAAopTQAKKU4ACilPAAopUAAKKVIACilUAAopVQAKKVYACilYAAopWQAKKXIACilzAAopdAAKKXYACinxAAop8wAKKfUACin3AAop+gAKKfsACin8AAop/QAKKf4ACioAAAoqAgAKKgMACioEAAoqBgAKKgcACiqCAAoqhAAKKoYACiqIAAoqiwAKKowACiqNAAoqjgAKKo8ACiqRAAoqkwAKKpQACiqVAAoqlwAKKpgACisTAAorFQAKKxcACisZAAorHAAKKx0ACiseAAorHwAKKyAACisiAAorJAAKKyUACismAAorKAAKKykACiukAAorpgAKK6gACiuqAAorrQAKK64ACiuvAAorsAAKK7EACiuzAAortQAKK7YACiu3AAoruQAKK7oACiw1AAosNwAKLDkACiw7AAosPgAKLD8ACixAAAosQQAKLEIACixEAAosRgAKLEcACixIAAosSgAKLEsACiyUAAosuAAKLN8ACi0DAAotBgAKLQkACi0LAAotDQAKLQ8ACi0RAAotEgAKLRUACi0uAAotSwAKLU4ACi1RAAotVAAKLVcACi1aAAotXQAKLWAACi19AAotgAAKLYMACi2GAAotiQAKLYwACi2PAAotkgAKLZQACi4PAAouEQAKLhQACi4WAAouGQAKLhoACi4bAAouHAAKLh0ACi4fAAouIgAKLiMACi4kAAouJgAKLicACi6iAAoupAAKLqcACi6pAAourAAKLq0ACi6uAAourwAKLrAACi6yAAoutQAKLrYACi63AAouuQAKLroACi81AAovNwAKLzoACi88AAovPwAKL0AACi9BAAovQgAKL0MACi9FAAovSAAKL0kACi9KAAovTAAKL00ACi/IAAo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BCwAKQQwACkENAApBDgAKQQ8ACkERAApBFAAKQRUACkEWAApBGAAKQRkACkGUAApBlgAKQZkACkGbAApBngAKQZ8ACkGgAApBoQAKQaIACkGkAApBpwAKQagACkGpAApBqwAKQawACkI/AApCYgAKQoIACkKiAApCpAAKQqYACkKoAApCqgAKQq0ACkKuAApCrwAKQrIACkKzAApCtQAKQrYACkK4AApCuwAKQrwACkK9AApCwAAKQsEACkLGAApC3wAKQugACkLqAApC7AAKQvUACkL4AApC+wAKQv0ACkNGAApDagAKQ5EACkO1AApDuAAKQ7oACkO8AApDvgAKQ8AACkPCAApDwwAKQ8YACkPfAApEAAAKRAIACkQEAApEBgAKRAgACkQKAApEDAAKRA4ACkQQAApEMQAKRDQACkQ3AApEOgAKRD0ACkRAAApEQwAKREYACkRJAApESwAKRMYACkTIAApEygAKRMwACkTPAApE0AAKRNEACkTSAApE0wAKRNUACkTXAApE2AAKRNkACkTbAApE3AAKRVcACkVZAApFWwAKRV0ACkVgAApFYQAKRWIACkVjAApFZAAKRWYACkVoAApFaQAKRWoACkVsAApFbQAKRegACkXqAApF7QAKRe8ACkXyAApF8wAKRfQACkX1AApF9gAKRfgACkX6AApF+wAKRfwACkX+AApF/wAKRhgACkYZAApGGgAKRhwACkaXAApGmQAKRpsACkadAApGoAAKRqEACkaiAApGowAKRqQACkamAApGqAAKRqkACkaqAApGrAAKRq0ACkcoAApHKgAKRywACkcuAApHMQAKRzIACkczAApHNAAKRzUACkc3AApHOQAKRzoACkc7AApHPQAKRz4ACke5AApHuwAKR70ACke/AApHwgAKR8MACkfEAApHxQAKR8YACkfIAApHygAKR8sACkfMAApHzgAKR88ACkhKAApITAAKSE4ACkhQAApIUwAKSFQACkhVAApIVgAKSFcACkhZAApIWwAKSFwACkhdAApIXwAKSGAACkjbAApI3QAKSN8ACkjhAApI5AAKSOUACkjmAApI5wAKSOgACkjqAApI7AAKSO0ACkjuAApI8AAKSPEACkk6AApJXgAKSYUACkmpAApJrAAKSa4ACkmwAApJsgAKSbQACkm2AApJtwAKSboACknTAApJ8AAKSfIACkn0AApJ9gAKSfgACkn6AApJ/AAKSf4ACkobAApKHgAKSiEACkokAApKJwAKSioACkotAApKMAAKSjIACkqtAApKrwAKSrEACkqzAApKtgAKSrcACkq4AApKuQAKSroACkq8AApKvgAKSr8ACkrAAApKwgAKSsMACks+AApLQAAKS0IACktEAApLRwAKS0gACktJAApLSgAKS0sACktNAApLTwAKS1AACktRAApLUwAKS1QACkvPAApL0QAKS9MACkvVAApL2AAKS9kACkvaAApL2wAKS9wACkveAApL4AAKS+EACkviAApL5AAKS+UACkxgAApMYgAKTGQACkxmAApMaQAKTGoACkxrAApMbAAKTG0ACkxvAApMcQAKTHIACkxzAApMdQAKTHYACkzxAApM8wAKTPUACkz3AApM+gAKTPsACkz8AApM/QAKTP4ACk0AAApNAgAKTQMACk0EAApNBgAKTQcACk2CAApNhAAKTYYACk2IAApNiwAKTYwACk2NAApNjgAKTY8ACk2RAApNkwAKTZQACk2VAApNlwAKTZgACk4TAApOFQAKThcACk4ZAApOHAAKTh0ACk4eAApOHwAKTiAACk4iAApOJAAKTiUACk4mAApOKAAKTikACk68AApO3wAKTv8ACk8fAApPIQAKTyMACk8lAApPJwAKTyoACk8rAApPLAAKTy8ACk8wAApPMgAKTzMACk81AApPOAAKTzkACk86AApPPQAKTz4ACk9DAApPXAAKT2UACk9nAApPaQAKT3IACk91AApPeAAKT3oACk/DAApP5wAKUA4AClAyAApQNQAKUDcAClA5AApQOwAKUD0AClA/AApQQAAKUEMAClBcAApQfQAKUH8AClCBAApQgwAKUIUAClCHAApQiQAKUIsAClCNAApQrgAKULEAClC0AApQtwAKULoAClC9AApQwAAKUMMAClDGAApQyAAKUUMAClFFAApRRwAKUUkAClFMAApRTQAKUU4AClFPAApRUAAKUVIAClFUAApRVQAKUVYAClFYAApRWQAKUdQAClHWAApR2AAKUdoAClHdAApR3gAKUd8AClHgAApR4QAKUeMAClHlAApR5gAKUecAClHpAApR6gAKUmUAClJnAApSagAKUmwAClJvAApScAAKUnEAClJyAApScwAKUnUAClJ3AApSeAAKUnkAClJ7AApSfAAKUpUAClKWAApSlwAKUpkAClMUAApTFgAKUxgAClMaAApTHQAKUx4AClMfAApTIAAKUyEAClMjAApTJQAKUyYAClMnAApTKQAKUyoAClOlAApTpwAKU6kAClOrAApTrgAKU68AClOwAApTsQAKU7IAClO0AApTtgAKU7cAClO4AApTugAKU7sAClQ2AApUOAAKVDoAClQ8AApUPwAKVEAAClRBAApUQgAKVEMAClRFAApURwAKVEgAClRJAApUSwAKVEwAClTHAApUyQAKVMsAClTNAApU0AAKVNEAClTSAApU0wAKVNQAClTWAApU2AAKVNkAClTaAApU3AAKVN0AClVYAApVWgAKVVwAClVeAApVYQAKVWIAClVjAApVZAAKVWUAClVnAApVaQAKVWoAClVrAApVbQAKVW4AClW3AApV2wAKVgIAClYmAApWKQAKVisAClYtAApWLwAKVjEAClYzAApWNAAKVjcAClZQAApWbQAKVm8AClZxAApWcwAKVnUAClZ3AApWeQAKVnsAClaYAApWmwAKVp4AClahAApWpAAKVqcAClaqAApWrQAKVq8AClcqAApXLAAKVy4AClcwAApXMwAKVzQAClc1AApXNgAKVzcAClc5AApXOwAKVzwAClc9AApXPwAKV0AACle7AApXvQAKV78AClfBAApXxAAKV8UAClfGAApXxwAKV8gAClfKAApXzAAKV80AClfOAApX0AAKV9EAClhMAApYTgAKWFAAClhSAApYVQAKWFYAClhXAApYWAAKWFkAClhbAApYXQAKWF4AClhfAApYYQAKWGIACljdAApY3wAKWOIACljkAApY5wAKWOgACljpAApY6gAKWOsACljtAApY7wAKWPAACljxAApY8wAKWPQACllvAApZcQAKWXMACll1AApZeAAKWXkACll6AApZewAKWXwACll+AApZgAAKWYEAClmCAApZhAAKWYUACloAAApaAgAKWgQACloGAApaCQAKWgoACloLAApaDAAKWg0ACloPAApaEQAKWhIACloTAApaFQAKWhYAClqRAApakwAKWpUAClqXAApamgAKWpsAClqcAApanQAKWp4AClqgAApaogAKWqMAClqkAApapgAKWqcAClq4AApauQAKWrsACls2AApbOAAKWzoACls8AApbPwAKW0AACltBAApbQgAKW0MACltFAApbSAAKW0kACltKAApbTAAKW00AClvIAApbygAKW8wAClvOAApb0QAKW9IAClvTAApb1AAKW9UAClvXAApb2gAKW9sAClvcAApb3gAKW98AClxaAApcXAAKXF8AClxhAApcZAAKXGUAClxmAApcZwAKXGgAClxqAApcbQAKXG4AClxvAApccQAKXHIACl0FAApdKAAKXUgACl1oAApdagAKXWwACl1uAApdcAAKXXMACl10AApddQAKXXgACl15AApdewAKXXwACl1+AApdgQAKXYIACl2DAApdhgAKXYcACl2MAApdpQAKXa4ACl2wAApdsgAKXbsACl2+AApdwQAKXcMACl4MAApeMAAKXlcACl57AApefgAKXoAACl6CAApehAAKXoYACl6IAApeiQAKXowACl6lAApexgAKXsgACl7KAApezAAKXs4ACl7QAApe0gAKXtQACl7WAApe9wAKXvoACl79AApfAAAKXwMACl8GAApfCQAKXwwACl8PAApfEQAKX4wACl+OAApfkAAKX5IACl+VAApflgAKX5cACl+YAApfmQAKX5sACl+dAApfngAKX58ACl+hAApfogAKYB0ACmAfAApgIQAKYCMACmAmAApgJwAKYCgACmApAApgKgAKYCwACmAuAApgLwAKYDAACmAyAApgMwAKYK4ACmCwAApgswAKYLUACmC4AApguQAKYLoACmC7AApgvAAKYL4ACmDAAApgwQAKYMIACmDEAApgxQAKYN4ACmDfAApg4AAKYOIACmFdAAphXwAKYWEACmFjAAphZgAKYWcACmFoAAphaQAKYWoACmFsAAphbgAKYW8ACmFwAAphcgAKYXMACmHuAAph8AAKYfIACmH0AAph9wAKYfgACmH5AAph+gAKYfsACmH9AAph/wAKYgAACmIBAApiAwAKYgQACmJ/AApigQAKYoMACmKFAApiiAAKYokACmKKAApiiwAKYowACmKOAApikAAKYpEACmKSAApilAAKYpUACmMQAApjEgAKYxQACmMWAApjGQAKYxoACmMbAApjHAAKYx0ACmMfAApjIQAKYyIACmMjAApjJQAKYyYACmOhAApjowAKY6UACmOnAApjqgAKY6sACmOsAApjrQAKY64ACmOwAApjsgAKY7MACmO0AApjtgAKY7cACmQAAApkJAAKZEsACmRvAApkcgAKZHQACmR2AApkeAAKZHoACmR8AApkfQAKZIAACmSZAApktgAKZLgACmS6AApkvAAKZL4ACmTAAApkwgAKZMQACmThAApk5AAKZOcACmTqAApk7QAKZPAACmTzAApk9gAKZPgACmVzAApldQAKZXcACmV5AAplfAAKZX0ACmV+AAplfwAKZYAACmWCAAplhAAKZYUACmWGAApliAAKZYkACmYEAApmBgAKZggACmYKAApmDQAKZg4ACmYPAApmEAAKZhEACmYTAApmFQAKZhYACmYXAApmGQAKZhoACmaVAApmlwAKZpkACmabAApmngAKZp8ACmagAApmoQAKZqIACmakAApmpgAKZqcACmaoAApmqgAKZqsACmcmAApnKAAKZysACmctAApnMAAKZzEACmcyAApnMwAKZzQACmc2AApnOAAKZzkACmc6AApnPAAKZz0ACme4AApnugAKZ7wACme+AApnwQAKZ8IACmfDAApnxAAKZ8UACmfHAApnyQAKZ8oACmfLAApnzQAKZ84ACmhJAApoSwAKaE0ACmhPAApoUgAKaFMACmhUAApoVQAKaFYACmhYAApoWgAKaFsACmhcAApoXgAKaF8ACmjaAApo3AAKaN4ACmjgAApo4wAKaOQACmjlAApo5gAKaOcACmjpAApo6wAKaOwACmjtAApo7wAKaPAACmmDAApppgAKacYACmnmAApp6AAKaeoACmnsAApp7gAKafEACmnyAApp8wAKafYACmn3AApp+QAKafoACmn9AApqAAAKagEACmoCAApqBQAKagYACmoPAApqKAAKajEACmozAApqNgAKaj8ACmpCAApqRQAKakcACmqQAApqtAAKatsACmr/AAprAgAKawQACmsGAAprCAAKawoACmsMAAprDQAKaxAACmspAAprSgAKa0wACmtOAAprUAAKa1IACmtUAAprVgAKa1gACmtaAAprewAKa34ACmuBAAprhAAKa4cACmuKAAprjQAKa5AACmuTAAprlQAKbBAACmwSAApsFAAKbBYACmwZAApsGgAKbBsACmwcAApsHQAKbB8ACmwhAApsIgAKbCMACmwlAApsJgAKbKEACmyjAApspQAKbKcACmyqAApsqwAKbKwACmytAApsrgAKbLAACmyyAApsswAKbLQACmy2AApstwAKbTIACm00AAptNwAKbTkACm08AAptPQAKbT4ACm0/AAptQAAKbUIACm1EAAptRQAKbUYACm1IAAptSQAKbWIACm1jAAptZAAKbWYACm3hAApt4wAKbeUACm3nAApt6gAKbesACm3sAApt7QAKbe4ACm3wAApt8gAKbfMACm30AApt9gAKbfcACm5yAApudAAKbnYACm54AApuewAKbnwACm59AApufgAKbn8ACm6BAApugwAKboQACm6FAApuhwAKbogACm8DAApvBQAKbwcACm8JAApvDAAKbw0ACm8OAApvDwAKbxAACm8SAApvFAAKbxUACm8WAApvGAAKbxkACm+UAApvlgAKb5gACm+aAApvnQAKb54ACm+fAApvoAAKb6EACm+jAApvpQAKb6YACm+nAApvqQAKb6oACnAlAApwJwAKcCkACnArAApwLgAKcC8ACnAwAApwMQAKcDIACnA0AApwNgAKcDcACnA4AApwOgAKcDsACnCEAApwqAAKcM8ACnDzAApw9gAKcPkACnD7AApw/QAKcP8ACnEBAApxAgAKcQUACnEeAApxOwAKcT4ACnFBAApxRAAKcUcACnFKAApxTQAKcVAACnFtAApxcAAKcXMACnF2AApxeQAKcXwACnF/AApxggAKcYQACnH/AApyAQAKcgQACnIGAApyCQAKcgoACnILAApyDAAKcg0ACnIPAApyEgAKchMACnIUAApyFgAKchcACnKSAApylAAKcpcACnKZAApynAAKcp0ACnKeAApynwAKcqAACnKiAApypQAKcqYACnKnAApyqQAKcqoACnMlAApzJwAKcyoACnMsAApzLwAKczAACnMxAApzMgAKczMACnM1AApzOAAKczkACnM6AApzPAAKcz0ACnO4AApzugAKc70ACnO/AApzwgAKc8MACnPEAApzxQAKc8YACnPIAApzywAKc8wACnPNAApzzwAKc9AACnRLAAp0TQAKdE8ACnRRAAp0VAAKdFUACnRWAAp0VwAKdFgACnRaAAp0XQAKdF4ACnRfAAp0YQAKdGIACnTdAAp03wAKdOEACnTjAAp05gAKdOcACnToAAp06QAKdOoACnTsAAp07wAKdPAACnTxAAp08wAKdPQACnVvAAp1cQAKdXQACnV2AAp1eQAKdXoACnV7AAp1fAAKdX0ACnV/AAp1ggAKdYMACnWEAAp1hgAKdYcACnYaAAp2PQAKdl0ACnZ9AAp2fwAKdoEACnaDAAp2hQAKdogACnaJAAp2igAKdo0ACnaOAAp2kAAKdpEACnaTAAp2lgAKdpcACnaYAAp2mwAKdpwACnahAAp2ugAKdsMACnbFAAp2xwAKdtAACnbTAAp21gAKdtgACnchAAp3RQAKd2wACneQAAp3kwAKd5UACneXAAp3mQAKd5sACnedAAp3ngAKd6EACne6AAp32wAKd90ACnffAAp34QAKd+MACnflAAp35wAKd+kACnfrAAp4DAAKeA8ACngSAAp4FQAKeBgACngbAAp4HgAKeCEACngkAAp4JgAKeKEACnijAAp4pQAKeKcACniqAAp4qwAKeKwACnitAAp4rgAKeLAACniyAAp4swAKeLQACni2AAp4twAKeTIACnk0AAp5NgAKeTgACnk7AAp5PAAKeT0ACnk+AAp5PwAKeUEACnlDAAp5RAAKeUUACnlHAAp5SAAKecMACnnFAAp5yAAKecoACnnNAAp5zgAKec8ACnnQAAp50QAKedMACnnVAAp51gAKedcACnnZAAp52gAKefMACnn0AAp59QAKefcACnpyAAp6dAAKenYACnp4AAp6ewAKenwACnp9AAp6fgAKen8ACnqBAAp6gwAKeoQACnqFAAp6hwAKeogACnsDAAp7BQAKewcACnsJAAp7DAAKew0ACnsOAAp7DwAKexAACnsSAAp7FAAKexUACnsWAAp7GAAKexkACnuUAAp7lgAKe5gACnuaAAp7nQAKe54ACnufAAp7oAAKe6EACnujAAp7pQAKe6YACnunAAp7qQAKe6oACnwlAAp8JwAKfCkACnwrAAp8LgAKfC8ACnwwAAp8MQAKfDIACnw0AAp8NgAKfDcACnw4AAp8OgAKfDsACny2AAp8uAAKfLoACny8AAp8vwAKfMAACnzBAAp8wgAKfMMACnzFAAp8xwAKfMgACnzJAAp8ywAKfMwACn0VAAp9OQAKfWAACn2EAAp9hwAKfYkACn2LAAp9jQAKfY8ACn2RAAp9kgAKfZUACn2uAAp9ywAKfc0ACn3PAAp90QAKfdMACn3VAAp91wAKfdkACn32AAp9+QAKffwACn3/AAp+AgAKfgUACn4IAAp+CwAKfg0ACn6IAAp+igAKfowACn6OAAp+kQAKfpIACn6TAAp+lAAKfpUACn6XAAp+mQAKfpoACn6bAAp+nQAKfp4ACn8ZAAp/GwAKfx0ACn8fAAp/IgAKfyMACn8kAAp/JQAKfyYACn8oAAp/KgAKfysACn8sAAp/LgAKfy8ACn+qAAp/rAAKf64ACn+wAAp/swAKf7QACn+1AAp/tgAKf7cACn+5AAp/uwAKf7wACn+9AAp/vwAKf8AACoA7AAqAPQAKgEAACoBCAAqARQAKgEYACoBHAAqASAAKgEkACoBLAAqATQAKgE4ACoBPAAqAUQAKgFIACoDNAAqAzwAKgNEACoDTAAqA1gAKgNcACoDYAAqA2QAKgNoACoDcAAqA3gAKgN8ACoDgAAqA4gAKgOMACoFeAAqBYAAKgWIACoFkAAqBZwAKgWgACoFpAAqBagAKgWsACoFtAAqBbwAKgXAACoFxAAqBcwAKgXQACoHvAAqB8QAKgfMACoH1AAqB+AAKgfkACoH6AAqB+wAKgfwACoH+AAqCAAAKggEACoICAAqCBAAKggUACoIWAAqCFwAKghkACoKUAAqClgAKgpgACoKaAAqCnQAKgp4ACoKfAAqCoAAKgqEACoKjAAqCpgAKgqcACoKoAAqCqgAKgqsACoMmAAqDKAAKgyoACoMsAAqDLwAKgzAACoMxAAqDMgAKgzMACoM1AAqDOAAKgzkACoM6AAqDPAAKgz0ACoO4AAqDugAKg70ACoO/AAqDwgAKg8MACoPEAAqDxQAKg8YACoPIAAqDywAKg8wACoPNAAqDzwAKg9AACoRjAAqEhgAKhKYACoTGAAqEyAAKhMoACoTMAAqEzgAKhNEACoTSAAqE0wAKhNYACoTXAAqE2QAKhNoACoTdAAqE4AAKhOEACoTiAAqE5QAKhOYACoTrAAqFBAAKhQ0ACoUPAAqFEgAKhRsACoUeAAqFIQAKhSMACoVsAAqFkAAKhbcACoXbAAqF3gAKheAACoXiAAqF5AAKheYACoXoAAqF6QAKhewACoYFAAqGJgAKhigACoYqAAqGLAAKhi4ACoYwAAqGMgAKhjQACoY2AAqGVwAKhloACoZdAAqGYAAKhmMACoZmAAqGaQAKhmwACoZvAAqGcQAKhuwACobuAAqG8AAKhvIACob1AAqG9gAKhvcACob4AAqG+QAKhvsACob9AAqG/gAKhv8ACocBAAqHAgAKh30ACod/AAqHgQAKh4MACoeGAAqHhwAKh4gACoeJAAqHigAKh4wACoeOAAqHjwAKh5AACoeSAAqHkwAKiA4ACogQAAqIEwAKiBUACogYAAqIGQAKiBoACogbAAqIHAAKiB4ACoggAAqIIQAKiCIACogkAAqIJQAKiD4ACog/AAqIQAAKiEIACoi9AAqIvwAKiMEACojDAAqIxgAKiMcACojIAAqIyQAKiMoACojMAAqIzgAKiM8ACojQAAqI0gAKiNMAColOAAqJUAAKiVIAColUAAqJVwAKiVgAColZAAqJWgAKiVsAColdAAqJXwAKiWAAColhAAqJYwAKiWQAConfAAqJ4QAKieMAConlAAqJ6AAKiekAConqAAqJ6wAKiewAConuAAqJ8AAKifEAConyAAqJ9AAKifUACopwAAqKcgAKinQACop2AAqKeQAKinoACop7AAqKfAAKin0ACop/AAqKgQAKioIACoqDAAqKhQAKioYACosBAAqLAwAKiwUACosHAAqLCgAKiwsACosMAAqLDQAKiw4ACosQAAqLEgAKixMACosUAAqLFgAKixcACotgAAqLhAAKi6sACovPAAqL0gAKi9UACovXAAqL2QAKi9sACovdAAqL3gAKi+EACov6AAqMFwAKjBoACowdAAqMIAAKjCMACowmAAqMKQAKjCwACoxJAAqMTAAKjE8ACoxSAAqMVQAKjFgACoxbAAqMXgAKjGAACozbAAqM3QAKjOAACoziAAqM5QAKjOYACoznAAqM6AAKjOkACozrAAqM7gAKjO8ACozwAAqM8gAKjPMACo1uAAqNcAAKjXMACo11AAqNeAAKjXkACo16AAqNewAKjXwACo1+AAqNgQAKjYIACo2DAAqNhQAKjYYACo4BAAqOAwAKjgYACo4IAAqOCwAKjgwACo4NAAqODgAKjg8ACo4RAAqOFAAKjhUACo4WAAqOGAAKjhkACo6UAAqOlgAKjpkACo6bAAqOngAKjp8ACo6gAAqOoQAKjqIACo6kAAqOpwAKjqgACo6pAAqOqwAKjqwACo8vAAqPUwAKj3cACo+aAAqPwQAKj+EACpAIAAqQLwAKkE8ACpBzAAqQlwAKkJkACpCcAAqQngAKkKAACpCiAAqQpQAKkKgACpCqAAqQrAAKkK8ACpCxAAqQswAKkLYACpC5AAqQugAKkL8ACpDYAAqQ3QAKkN8ACpDkAAqQ5wAKkOkACpEyAAqRVgAKkX0ACpGhAAqRpAAKkaYACpGoAAqRqgAKkawACpGuAAqRrwAKkbIACpHLAAqR8AAKkfIACpH0AAqR9gAKkfgACpH6AAqR/AAKkf4ACpIAAAqSAgAKkicACpIqAAqSLQAKkjAACpIzAAqSNgAKkjkACpI8AAqSPwAKkkIACpJEAAqSvwAKksEACpLEAAqSxgAKkskACpLKAAqSywAKkswACpLNAAqSzwAKktEACpLSAAqS0wAKktUACpLWAAqS5wAKkugACpLqAAqTZQAKk2cACpNpAAqTawAKk24ACpNvAAqTcAAKk3EACpNyAAqTdAAKk3YACpN3AAqTeAAKk3oACpN7AAqT9gAKk/gACpP7AAqT/QAKlAAACpQBAAqUAgAKlAMACpQEAAqUBgAKlAgACpQJAAqUCgAKlAwACpQNAAqUHgAKlB8ACpQhAAqUnAAKlJ4ACpSgAAqUogAKlKUACpSmAAqUpwAKlKgACpSpAAqUqwAKlK0ACpSuAAqUrwAKlLEACpSyAAqVLQAKlS8ACpUyAAqVNAAKlTcACpU4AAqVOQAKlToACpU7AAqVPQAKlT8ACpVAAAqVQQAKlUMACpVEAAqVVQAKlVYACpVYAAqV0wAKldUACpXXAAqV2QAKldwACpXdAAqV3gAKld8ACpXgAAqV4gAKleQACpXlAAqV5gAKlegACpXpAAqWZAAKlmYACpZpAAqWawAKlm4ACpZvAAqWcAAKlnEACpZyAAqWdAAKlnYACpZ3AAqWeAAKlnoACpZ7AAqWlAAKlpUACpaWAAqWmAAKlxMACpcVAAqXFwAKlxkACpccAAqXHQAKlx4ACpcfAAqXIAAKlyIACpckAAqXJQAKlyYACpcoAAqXKQAKl6QACpemAAqXqQAKl6sACpeuAAqXrwAKl7AACpexAAqXsgAKl7QACpe2AAqXtwAKl7gACpe6AAqXuwAKl90ACpf2AAqX+wAKl/4ACpgDAAqYBgAKmAgACpgaAAqYrQAKmNAACpjwAAqZEAAKmRIACpkUAAqZFgAKmRgACpkbAAqZHAAKmR0ACpkgAAqZIQAKmSMACpkkAAqZJwAKmSoACpkrAAqZLAAKmS8ACpkwAAqZOQAKmVIACplbAAqZXQAKmWAACplpAAqZbAAKmW8ACplxAAqZugAKmd4ACpoFAAqaKQAKmiwACpouAAqaMAAKmjIACpo0AAqaNgAKmjcACpo6AAqaUwAKmnQACpp2AAqaeAAKmnoACpp8AAqafgAKmoAACpqCAAqahAAKmqUACpqoAAqaqwAKmq4ACpqxAAqatAAKmrcACpq6AAqavQAKmr8ACps6AAqbPAAKmz4ACptAAAqbQwAKm0QACptFAAqbRgAKm0cACptJAAqbSwAKm0wACptNAAqbTwAKm1AACpvLAAqbzQAKm88ACpvRAAqb1AAKm9UACpvWAAqb1wAKm9gACpvaAAqb3AAKm90ACpveAAqb4AAKm+EACpxcAAqcXgAKnGEACpxjAAqcZgAKnGcACpxoAAqcaQAKnGoACpxsAAqcbgAKnG8ACpxwAAqccgAKnHMACpyMAAqcjQAKnI4ACpyQAAqdCwAKnQ0ACp0PAAqdEQAKnRQACp0VAAqdFgAKnRcACp0YAAqdGgAKnRwACp0dAAqdHgAKnSAACp0hAAqdnAAKnZ4ACp2gAAqdogAKnaUACp2mAAqdpwAKnagACp2pAAqdqwAKna0ACp2uAAqdrwAKnbEACp2yAAqeLQAKni8ACp4xAAqeMwAKnjYACp43AAqeOAAKnjkACp46AAqePAAKnj4ACp4/AAqeQAAKnkIACp5DAAqevgAKnsAACp7CAAqexAAKnscACp7IAAqeyQAKnsoACp7LAAqezQAKns8ACp7QAAqe0QAKntMACp7UAAqfTwAKn1EACp9TAAqfVQAKn1gACp9ZAAqfWgAKn1sACp9cAAqfXgAKn2AACp9hAAqfYgAKn2QACp9lAAqfrgAKn9IACp/5AAqgHQAKoCAACqAjAAqgJQAKoCcACqApAAqgKwAKoCwACqAvAAqgSAAKoGUACqBoAAqgawAKoG4ACqBxAAqgdAAKoHcACqB6AAqglwAKoJoACqCdAAqgoAAKoKMACqCmAAqgqQAKoKwACqCuAAqhKQAKoSsACqEuAAqhMAAKoTMACqE0AAqhNQAKoTYACqE3AAqhOQAKoTwACqE9AAqhPgAKoUAACqFBAAqhvAAKob4ACqHBAAqhwwAKocYACqHHAAqhyAAKockACqHKAAqhzAAKoc8ACqHQAAqh0QAKodMACqHUAAqiTwAKolEACqJUAAqiVgAKolkACqJaAAqiWwAKolwACqJdAAqiXwAKomIACqJjAAqiZAAKomYACqJnAAqi4gAKouQACqLnAAqi6QAKouwACqLtAAqi7gAKou8ACqLwAAqi8gAKovUACqL2AAqi9wAKovkACqL6AAqjdQAKo3cACqN5AAqjewAKo34ACqN/AAqjgAAKo4EACqOCAAqjhAAKo4cACqOIAAqjiQAKo4sACqOMAAqkBwAKpAkACqQLAAqkDQAKpBAACqQRAAqkEgAKpBMACqQUAAqkFgAKpBkACqQaAAqkGwAKpB0ACqQeAAqkmQAKpJsACqSeAAqkoAAKpKMACqSkAAqkpQAKpKYACqSnAAqkqQAKpKwACqStAAqkrgAKpLAACqSxAAqkwgAKpMcACqTKAAqkzAAKpQUACqUIAAqlCgAKpQ0ACqUQAAqlEwAKpRYACqUbAAqlvgAKpeIACqYGAAqmJgAKpk0ACqZ0AAqmlAAKprsACqbfAAqnAgAKpykACqdNAAqncQAKp5UACqe8AAqnvQAKp78ACqfBAAqnxAAKp8YACqfJAAqnywAKp80ACqfQAAqn0gAKp9QACqfXAAqn2gAKp9wACqfeAAqn4AAKp+MACqfmAAqn6QAKp+4ACqgHAAqoDAAKqA4ACqgTAAqoFgAKqBgACqhhAAqohQAKqKwACqjQAAqo0wAKqNUACqjXAAqo2QAKqNsACqjdAAqo3gAKqOEACqj6AAqpHwAKqSEACqkjAAqpJQAKqScACqkpAAqpKwAKqS0ACqkvAAqpMQAKqVYACqlZAAqpXAAKqV8ACqliAAqpZQAKqWgACqlrAAqpbgAKqXEACqlzAAqp7gAKqfAACqnzAAqp9QAKqfgACqn5AAqp+gAKqfsACqn8AAqp/gAKqgAACqoBAAqqAgAKqgQACqoFAAqqFgAKqhcACqoZAAqqlAAKqpYACqqYAAqqmgAKqp0ACqqeAAqqnwAKqqAACqqhAAqqowAKqqUACqqmAAqqpwAKqqkACqqqAAqrJQAKqycACqsqAAqrLAAKqy8ACqswAAqrMQAKqzIACqszAAqrNQAKqzcACqs4AAqrOQAKqzsACqs8AAqrTQAKq04ACqtQAAqrywAKq80ACqvPAAqr0QAKq9QACqvVAAqr1gAKq9cACqvYAAqr2gAKq9wACqvdAAqr3gAKq+AACqvhAAqsXAAKrF4ACqxhAAqsYwAKrGYACqxnAAqsaAAKrGkACqxqAAqsbAAKrG4ACqxvAAqscAAKrHIACqxzAAqshAAKrIUACqyHAAqtAgAKrQQACq0GAAqtCAAKrQsACq0MAAqtDQAKrQ4ACq0PAAqtEQAKrRMACq0UAAqtFQAKrRcACq0YAAqtkwAKrZUACq2YAAqtmgAKrZ0ACq2eAAqtnwAKraAACq2hAAqtowAKraUACq2mAAqtpwAKrakACq2qAAqtwwAKrcQACq3FAAqtxwAKrkIACq5EAAquRgAKrkgACq5LAAquTAAKrk0ACq5OAAquTwAKrlEACq5TAAquVAAKrlUACq5XAAquWAAKrtMACq7VAAqu2AAKrtoACq7dAAqu3gAKrt8ACq7gAAqu4QAKruMACq7lAAqu5gAKrucACq7pAAqu6gAKrwMACq8cAAqvMQAKrzQACq83AAqvOgAKrz0ACq9AAAqvVQAKr1gACq9bAAqvXgAKr2EACq9kAAqvZgAKr3QACq+MAAqvogAKr8IACrBVAAqweAAKsJgACrC4AAqwugAKsLwACrC+AAqwwAAKsMMACrDEAAqwxQAKsMgACrDJAAqwywAKsMwACrDOAAqw0QAKsNIACrDTAAqw1gAKsNcACrDgAAqw+QAKsQIACrEEAAqxBgAKsQ8ACrESAAqxFQAKsRcACrFgAAqxhAAKsasACrHPAAqx0gAKsdQACrHWAAqx2AAKsdoACrHcAAqx3QAKseAACrH5AAqyGgAKshwACrIeAAqyIAAKsiIACrIkAAqyJgAKsigACrIqAAqySwAKsk4ACrJRAAqyVAAKslcACrJaAAqyXQAKsmAACrJjAAqyZQAKsuAACrLiAAqy5AAKsuYACrLpAAqy6gAKsusACrLsAAqy7QAKsu8ACrLxAAqy8gAKsvMACrL1AAqy9gAKs3EACrNzAAqzdQAKs3cACrN6AAqzewAKs3wACrN9AAqzfgAKs4AACrOCAAqzgwAKs4QACrOGAAqzhwAKtAIACrQEAAq0BwAKtAkACrQMAAq0DQAKtA4ACrQPAAq0EAAKtBIACrQUAAq0FQAKtBYACrQYAAq0GQAKtDIACrQzAAq0NAAKtDYACrSxAAq0swAKtLUACrS3AAq0ugAKtLsACrS8AAq0vQAKtL4ACrTAAAq0wgAKtMMACrTEAAq0xgAKtMcACrVCAAq1RAAKtUYACrVIAAq1SwAKtUwACrVNAAq1TgAKtU8ACrVRAAq1UwAKtVQACrVVAAq1VwAKtVgACrXTAAq11QAKtdcACrXZAAq13AAKtd0ACrXeAAq13wAKteAACrXiAAq15AAKteUACrXmAAq16AAKtekACrZkAAq2ZgAKtmgACrZqAAq2bQAKtm4ACrZvAAq2cAAKtnEACrZzAAq2dQAKtnYACrZ3AAq2eQAKtnoACrb1AAq29wAKtvkACrb7AAq2/gAKtv8ACrcAAAq3AQAKtwIACrcEAAq3BgAKtwcACrcIAAq3CgAKtwsACrdUAAq3eAAKt58ACrfDAAq3xgAKt8gACrfKAAq3zAAKt84ACrfQAAq30QAKt9QACrftAAq4CgAKuAwACrgOAAq4EAAKuBIACrgUAAq4FgAKuBgACrg1AAq4OAAKuDsACrg+AAq4QQAKuEQACrhHAAq4SgAKuEwACrjHAAq4yQAKuMsACrjNAAq40AAKuNEACrjSAAq40wAKuNQACrjWAAq42AAKuNkACrjaAAq43AAKuN0ACrlYAAq5WgAKuVwACrleAAq5YQAKuWIACrljAAq5ZAAKuWUACrlnAAq5aQAKuWoACrlrAAq5bQAKuW4ACrnpAAq56wAKue0ACrnvAAq58gAKufMACrn0AAq59QAKufYACrn4AAq5+gAKufsACrn8AAq5/gAKuf8ACrp6AAq6fAAKun4ACrqAAAq6gwAKuoQACrqFAAq6hgAKuocACrqJAAq6iwAKuowACrqNAAq6jwAKupAACrsLAAq7DQAKuw8ACrsRAAq7FAAKuxUACrsWAAq7FwAKuxgACrsaAAq7HAAKux0ACrseAAq7IAAKuyEACrucAAq7ngAKu6AACruiAAq7pQAKu6YACrunAAq7qAAKu6kACrurAAq7rQAKu64ACruvAAq7sQAKu7IACrwtAAq8LwAKvDEACrwzAAq8NgAKvDcACrw4AAq8OQAKvDoACrw8AAq8PgAKvD8ACrxAAAq8QgAKvEMACrzWAAq8+QAKvRkACr05AAq9OwAKvT0ACr0/AAq9QQAKvUQACr1FAAq9RgAKvUkACr1KAAq9TAAKvU0ACr1PAAq9UgAKvVMACr1UAAq9VwAKvVgACr1dAAq9dgAKvX8ACr2BAAq9gwAKvYwACr2PAAq9kgAKvZQACr3dAAq+AQAKvigACr5MAAq+TwAKvlEACr5TAAq+VQAKvlcACr5ZAAq+WgAKvl0ACr52AAq+lwAKvpkACr6bAAq+nQAKvp8ACr6hAAq+owAKvqUACr6nAAq+yAAKvssACr7OAAq+0QAKvtQACr7XAAq+2gAKvt0ACr7gAAq+4gAKv10ACr9fAAq/YQAKv2MACr9mAAq/ZwAKv2gACr9pAAq/agAKv2wACr9uAAq/bwAKv3AACr9yAAq/cwAKv+4ACr/wAAq/8gAKv/QACr/3AAq/+AAKv/kACr/6AAq/+wAKv/0ACr//AArAAAAKwAEACsADAArABAAKwH8ACsCBAArAhAAKwIYACsCJAArAigAKwIsACsCMAArAjQAKwI8ACsCRAArAkgAKwJMACsCVAArAlgAKwK8ACsCwAArAsQAKwLMACsEuAArBMAAKwTIACsE0AArBNwAKwTgACsE5AArBOgAKwTsACsE9AArBPwAKwUAACsFBAArBQwAKwUQACsG/AArBwQAKwcMACsHFAArByAAKwckACsHKAArBywAKwcwACsHOAArB0AAKwdEACsHSAArB1AAKwdUACsJQAArCUgAKwlQACsJWAArCWQAKwloACsJbAArCXAAKwl0ACsJfAArCYQAKwmIACsJjAArCZQAKwmYACsLhAArC4wAKwuUACsLnAArC6gAKwusACsLsAArC7QAKwu4ACsLwAArC8gAKwvMACsL0AArC9gAKwvcACsNyAArDdAAKw3YACsN4AArDewAKw3wACsN9AArDfgAKw38ACsOBAArDgwAKw4QACsOFAArDhwAKw4gACsPRAArD9QAKxBwACsRAAArEQwAKxEUACsRHAArESQAKxEsACsRNAArETgAKxFEACsRqAArEhwAKxIkACsSLAArEjQAKxI8ACsSRAArEkwAKxJUACsSyAArEtQAKxLgACsS7AArEvgAKxMEACsTEAArExwAKxMkACsVEAArFRgAKxUgACsVKAArFTQAKxU4ACsVPAArFUAAKxVEACsVTAArFVQAKxVYACsVXAArFWQAKxVoACsXVAArF1wAKxdkACsXbAArF3gAKxd8ACsXgAArF4QAKxeIACsXkAArF5gAKxecACsXoAArF6gAKxesACsZmAArGaAAKxmoACsZsAArGbwAKxnAACsZxAArGcgAKxnMACsZ1AArGdwAKxngACsZ5AArGewAKxnwACsb3AArG+QAKxvwACsb+AArHAQAKxwIACscDAArHBAAKxwUACscHAArHCQAKxwoACscLAArHDQAKxw4ACseJAArHiwAKx40ACsePAArHkgAKx5MACseUAArHlQAKx5YACseYAArHmgAKx5sACsecAArHngAKx58ACsgaAArIHAAKyB4ACsggAArIIwAKyCQACsglAArIJgAKyCcACsgpAArIKwAKyCwACsgtAArILwAKyDAACsirAArIrQAKyK8ACsixAArItAAKyLUACsi2AArItwAKyLgACsi6AArIvAAKyL0ACsi+AArIwAAKyMEACslUAArJdwAKyZcACsm3AArJuQAKybsACsm9AArJvwAKycIACsnDAArJxAAKyccACsnIAArJygAKycsACsnNAArJ0AAKydEACsnSAArJ1QAKydYACsnbAArJ9AAKyf0ACsn/AArKAQAKygoACsoNAArKEAAKyhIACspbAArKfwAKyqYACsrKAArKzQAKys8ACsrRAArK0wAKytUACsrXAArK2AAKytsACsr0AArLFQAKyxcACssZAArLGwAKyx0ACssfAArLIQAKyyMACsslAArLRgAKy0kACstMAArLTwAKy1IACstVAArLWAAKy1sACsteAArLYAAKy9sACsvdAArL3wAKy+EACsvkAArL5QAKy+YACsvnAArL6AAKy+oACsvsAArL7QAKy+4ACsvwAArL8QAKzGwACsxuAArMcAAKzHIACsx1AArMdgAKzHcACsx4AArMeQAKzHsACsx9AArMfgAKzH8ACsyBAArMggAKzP0ACsz/AArNAgAKzQQACs0HAArNCAAKzQkACs0KAArNCwAKzQ0ACs0PAArNEAAKzREACs0TAArNFAAKzS0ACs0uAArNLwAKzTEACs2sAArNrgAKzbAACs2yAArNtQAKzbYACs23AArNuAAKzbkACs27AArNvQAKzb4ACs2/AArNwQAKzcIACs49AArOPwAKzkEACs5DAArORgAKzkcACs5IAArOSQAKzkoACs5MAArOTgAKzk8ACs5QAArOUgAKzlMACs7OAArO0AAKztIACs7UAArO1wAKztgACs7ZAArO2gAKztsACs7dAArO3wAKzuAACs7hAArO4wAKzuQACs9fAArPYQAKz2MACs9lAArPaAAKz2kACs9qAArPawAKz2wACs9uAArPcAAKz3EACs9yAArPdAAKz3UACs/wAArP8gAKz/QACs/2AArP+QAKz/oACs/7AArP/AAKz/0ACs//AArQAQAK0AIACtADAArQBQAK0AYACtBPAArQcwAK0JoACtC+AArQwQAK0MMACtDFAArQxwAK0MkACtDLAArQzAAK0M8ACtDoAArRBQAK0QcACtEJAArRCwAK0Q0ACtEPAArREQAK0RMACtEwAArRMwAK0TYACtE5AArRPAAK0T8ACtFCAArRRQAK0UcACtHCAArRxAAK0cYACtHIAArRywAK0cwACtHNAArRzgAK0c8ACtHRAArR0wAK0dQACtHVAArR1wAK0dgACtJTAArSVQAK0lcACtJZAArSXAAK0l0ACtJeAArSXwAK0mAACtJiAArSZAAK0mUACtJmAArSaAAK0mkACtLkAArS5gAK0ugACtLqAArS7QAK0u4ACtLvAArS8AAK0vEACtLzAArS9QAK0vYACtL3AArS+QAK0voACtN1AArTdwAK03oACtN8AArTfwAK04AACtOBAArTggAK04MACtOFAArThwAK04gACtOJAArTiwAK04wACtQHAArUCQAK1AsACtQNAArUEAAK1BEACtQSAArUEwAK1BQACtQWAArUGAAK1BkACtQaAArUHAAK1B0ACtSYAArUmgAK1JwACtSeAArUoQAK1KIACtSjAArUpAAK1KUACtSnAArUqQAK1KoACtSrAArUrQAK1K4ACtUpAArVKwAK1S0ACtUvAArVMgAK1TMACtU0AArVNQAK1TYACtU4AArVOgAK1TsACtU8AArVPgAK1T8ACtXSAArV9QAK1hUACtY1AArWNwAK1jkACtY7AArWPQAK1kAACtZBAArWQgAK1kUACtZGAArWSAAK1kkACtZLAArWTgAK1k8ACtZQAArWUwAK1lQACtZZAArWcgAK1nsACtZ9AArWfwAK1ogACtaLAArWjgAK1pAACtbZAArW/QAK1yQACtdIAArXSwAK100ACtdPAArXUQAK11MACtdVAArXVgAK11kACtdyAArXkwAK15UACteXAArXmQAK15sACtedAArXnwAK16EACtejAArXxAAK18cACtfKAArXzQAK19AACtfTAArX1gAK19kACtfcAArX3gAK2FkACthbAArYXQAK2F8ACthiAArYYwAK2GQACthlAArYZgAK2GgACthqAArYawAK2GwACthuAArYbwAK2OoACtjsAArY7gAK2PAACtjzAArY9AAK2PUACtj2AArY9wAK2PkACtj7AArY/AAK2P0ACtj/AArZAAAK2XsACtl9AArZgAAK2YIACtmFAArZhgAK2YcACtmIAArZiQAK2YsACtmNAArZjgAK2Y8ACtmRAArZkgAK2asACtmsAArZrQAK2a8ACtoqAAraLAAK2i4ACtowAAraMwAK2jQACto1AAraNgAK2jcACto5AAraOwAK2jwACto9AAraPwAK2kAACtq7AAravQAK2r8ACtrBAAraxAAK2sUACtrGAAraxwAK2sgACtrKAArazAAK2s0ACtrOAAra0AAK2tEACttMAArbTgAK21AACttSAArbVQAK21YACttXAArbWAAK21kACttbAArbXQAK214ACttfAArbYQAK22IACtvdAArb3wAK2+EACtvjAArb5gAK2+cACtvoAArb6QAK2+oACtvsAArb7gAK2+8ACtvwAArb8gAK2/MACtxuAArccAAK3HIACtx0AArcdwAK3HgACtx5AArcegAK3HsACtx9AArcfwAK3IAACtyBAArcgwAK3IQACtzNAArc8QAK3RgACt08AArdPwAK3UEACt1DAArdRQAK3UcACt1JAArdSgAK3U0ACt1mAArdgwAK3YUACt2HAArdiQAK3YsACt2NAArdjwAK3ZEACt2uAArdsQAK3bQACt23AArdugAK3b0ACt3AAArdwwAK3cUACt5AAAreQgAK3kQACt5GAAreSQAK3koACt5LAAreTAAK3k0ACt5PAAreUQAK3lIACt5TAAreVQAK3lYACt7RAAre0wAK3tUACt7XAAre2gAK3tsACt7cAAre3QAK3t4ACt7gAAre4gAK3uMACt7kAAre5gAK3ucACt9iAArfZAAK32YACt9oAArfawAK32wACt9tAArfbgAK328ACt9xAArfcwAK33QACt91AArfdwAK33gACt/zAArf9QAK3/gACt/6AArf/QAK3/4ACt//AArgAAAK4AEACuADAArgBQAK4AYACuAHAArgCQAK4AoACuCFAArghwAK4IkACuCLAArgjgAK4I8ACuCQAArgkQAK4JIACuCUAArglgAK4JcACuCYAArgmgAK4JsACuEWAArhGAAK4RoACuEcAArhHwAK4SAACuEhAArhIgAK4SMACuElAArhJwAK4SgACuEpAArhKwAK4SwACuGnAArhqQAK4asACuGtAArhsAAK4bEACuGyAArhswAK4bQACuG2AArhuAAK4bkACuG6AArhvAAK4b0ACuJQAAricwAK4pMACuKzAAritQAK4rcACuK5AAriuwAK4r4ACuK/AAriwAAK4sMACuLEAArixgAK4scACuLJAArizAAK4s0ACuLOAAri0QAK4tIACuLXAAri8AAK4vkACuL7AAri/QAK4wYACuMJAArjDAAK4w4ACuNXAArjewAK46IACuPGAArjyQAK48sACuPNAArjzwAK49EACuPTAArj1AAK49cACuPwAArkEQAK5BMACuQVAArkFwAK5BkACuQbAArkHQAK5B8ACuQhAArkQgAK5EUACuRIAArkSwAK5E4ACuRRAArkVAAK5FcACuRaAArkXAAK5NcACuTZAArk2wAK5N0ACuTgAArk4QAK5OIACuTjAArk5AAK5OYACuToAArk6QAK5OoACuTsAArk7QAK5WgACuVqAArlbAAK5W4ACuVxAArlcgAK5XMACuV0AArldQAK5XcACuV5AArlegAK5XsACuV9AArlfgAK5fkACuX7AArl/gAK5gAACuYDAArmBAAK5gUACuYGAArmBwAK5gkACuYLAArmDAAK5g0ACuYPAArmEAAK5ikACuYqAArmKwAK5i0ACuaoAArmqgAK5qwACuauAArmsQAK5rIACuazAArmtAAK5rUACua3AArmuQAK5roACua7AArmvQAK5r4ACuc5AArnOwAK5z0ACuc/AArnQgAK50MACudEAArnRQAK50YACudIAArnSgAK50sACudMAArnTgAK508ACufKAArnzAAK584ACufQAArn0wAK59QACufVAArn1gAK59cACufZAArn2wAK59wACufdAArn3wAK5+AACuhbAAroXQAK6F8ACuhhAAroZAAK6GUACuhmAAroZwAK6GgACuhqAArobAAK6G0ACuhuAArocAAK6HEACujsAAro7gAK6PAACujyAAro9QAK6PYACuj3AAro+AAK6PkACuj7AAro/QAK6P4ACuj/AArpAQAK6QIACulLAArpbwAK6ZYACum6AArpvQAK6b8ACunBAArpwwAK6cUACunHAArpyAAK6csACunkAArqAQAK6gMACuoFAArqBwAK6gkACuoLAArqDQAK6g8ACuosAArqLwAK6jIACuo1AArqOAAK6jsACuo+AArqQQAK6kMACuq+AArqwAAK6sIACurEAArqxwAK6sgACurJAArqygAK6ssACurNAArqzwAK6tAACurRAArq0wAK6tQACutPAArrUQAK61MACutVAArrWAAK61kACutaAArrWwAK61wACuteAArrYAAK62EACutiAArrZAAK62UACuvgAArr4gAK6+QACuvmAArr6QAK6+oACuvrAArr7AAK6+0ACuvvAArr8QAK6/IACuvzAArr9QAK6/YACuxxAArscwAK7HYACux4AArsewAK7HwACux9AArsfgAK7H8ACuyBAArsgwAK7IQACuyFAArshwAK7IgACu0DAArtBQAK7QcACu0JAArtDAAK7Q0ACu0OAArtDwAK7RAACu0SAArtFAAK7RUACu0WAArtGAAK7RkACu2UAArtlgAK7ZgACu2aAArtnQAK7Z4ACu2fAArtoAAK7aEACu2jAArtpQAK7aYACu2nAArtqQAK7aoACu4lAAruJwAK7ikACu4rAAruLgAK7i8ACu4wAAruMQAK7jIACu40AAruNgAK7jcACu44AAruOgAK7jsACu5MAAruTQAK7k8ACu5gAAruaQAK7mwACu5vAArucQAK7qoACu6tAArurwAK7rIACu61AAruuAAK7rsACu8+AArvYgAK74YACu+pAArv0AAK7/AACvAXAArwPgAK8F4ACvCCAArwpgAK8KgACvCrAArwrQAK8K8ACvCxAArwtAAK8LcACvC5AArwuwAK8L4ACvDAAArwwgAK8MUACvDIAArwyQAK8M4ACvDnAArw7AAK8O4ACvDzAArw9gAK8PgACvFBAArxZQAK8YwACvGwAArxswAK8bUACvG3AArxuQAK8bsACvG9AArxvgAK8cEACvHaAArx/wAK8gEACvIDAAryBQAK8gcACvIJAAryCwAK8g0ACvIPAAryEQAK8jYACvI5AAryPAAK8j8ACvJCAAryRQAK8kgACvJLAAryTgAK8lEACvJTAAryzgAK8tAACvLTAAry1QAK8tgACvLZAAry2gAK8tsACvLcAAry3gAK8uAACvLhAAry4gAK8uQACvLlAAry9gAK8vcACvL5AArzdAAK83YACvN4AArzegAK830ACvN+AArzfwAK84AACvOBAArzgwAK84UACvOGAArzhwAK84kACvOKAAr0BQAK9AcACvQKAAr0DAAK9A8ACvQQAAr0EQAK9BIACvQTAAr0FQAK9BcACvQYAAr0GQAK9BsACvQcAAr0LQAK9C4ACvQwAAr0qwAK9K0ACvSvAAr0sQAK9LQACvS1AAr0tgAK9LcACvS4AAr0ugAK9LwACvS9AAr0vgAK9MAACvTBAAr1PAAK9T4ACvVBAAr1QwAK9UYACvVHAAr1SAAK9UkACvVKAAr1TAAK9U4ACvVPAAr1UAAK9VIACvVTAAr1ZAAK9WUACvVnAAr14gAK9eQACvXmAAr16AAK9esACvXsAAr17QAK9e4ACvXvAAr18QAK9fMACvX0AAr19QAK9fcACvX4AAr2cwAK9nUACvZ4AAr2egAK9n0ACvZ+AAr2fwAK9oAACvaBAAr2gwAK9oUACvaGAAr2hwAK9okACvaKAAr2owAK9qQACvalAAr2pwAK9yIACvckAAr3JgAK9ygACvcrAAr3LAAK9y0ACvcuAAr3LwAK9zEACvczAAr3NAAK9zUACvc3AAr3OAAK97MACve1AAr3uAAK97oACve9AAr3vgAK978ACvfAAAr3wQAK98MACvfFAAr3xgAK98cACvfJAAr3ygAK9+oACvgDAAr4CAAK+AsACvgQAAr4EwAK+BUACvgnAAr4ugAK+N0ACvj9AAr5HQAK+R8ACvkhAAr5IwAK+SUACvkoAAr5KQAK+SoACvktAAr5LgAK+TAACvkxAAr5NAAK+TcACvk4AAr5OQAK+TwACvk9AAr5RgAK+V8ACvloAAr5agAK+W0ACvl2AAr5eQAK+XwACvl+AAr5xwAK+esACvoSAAr6NgAK+jkACvo7AAr6PQAK+j8ACvpBAAr6QwAK+kQACvpHAAr6YAAK+oEACvqDAAr6hQAK+ocACvqJAAr6iwAK+o0ACvqPAAr6kQAK+rIACvq1AAr6uAAK+rsACvq+AAr6wQAK+sQACvrHAAr6ygAK+swACvtHAAr7SQAK+0sACvtNAAr7UAAK+1EACvtSAAr7UwAK+1QACvtWAAr7WAAK+1kACvtaAAr7XAAK+10ACvvYAAr72gAK+9wACvveAAr74QAK++IACvvjAAr75AAK++UACvvnAAr76QAK++oACvvrAAr77QAK++4ACvxpAAr8awAK/G4ACvxwAAr8cwAK/HQACvx1AAr8dgAK/HcACvx5AAr8ewAK/HwACvx9AAr8fwAK/IAACvyZAAr8mgAK/JsACvydAAr9GAAK/RoACv0cAAr9HgAK/SEACv0iAAr9IwAK/SQACv0lAAr9JwAK/SkACv0qAAr9KwAK/S0ACv0uAAr9qQAK/asACv2tAAr9rwAK/bIACv2zAAr9tAAK/bUACv22AAr9uAAK/boACv27AAr9vAAK/b4ACv2/AAr+OgAK/jwACv4+AAr+QAAK/kMACv5EAAr+RQAK/kYACv5HAAr+SQAK/ksACv5MAAr+TQAK/k8ACv5QAAr+ywAK/s0ACv7PAAr+0QAK/tQACv7VAAr+1gAK/tcACv7YAAr+2gAK/twACv7dAAr+3gAK/uAACv7hAAr/XAAK/14ACv9gAAr/YgAK/2UACv9mAAr/ZwAK/2gACv9pAAr/awAK/20ACv9uAAr/bwAK/3EACv9yAAr/uwAK/98ACwAGAAsAKgALAC0ACwAwAAsAMgALADQACwA2AAsAOAALADkACwA8AAsAVQALAHIACwB1AAsAeAALAHsACwB+AAsAgQALAIQACwCHAAsApAALAKcACwCqAAsArQALALAACwCzAAsAtgALALkACwC7AAsBNgALATgACwE7AAsBPQALAUAACwFBAAsBQgALAUMACwFEAAsBRgALAUkACwFKAAsBSwALAU0ACwFOAAsByQALAcsACwHOAAsB0AALAdMACwHUAAsB1QALAdYACwHXAAsB2QALAdwACwHdAAsB3gALAeAACwHhAAsCXAALAl4ACwJhAAsCYwALAmYACwJnAAsCaAALAmkACwJqAAsCbAALAm8ACwJwAAsCcQALAnMACwJ0AAsC7wALAvEACwL0AAsC9gALAvkACwL6AAsC+wALAvwACwL9AAsC/wALAwIACwMDAAsDBAALAwYACwMHAAsDggALA4QACwOGAAsDiAALA4sACwOMAAsDjQALA44ACwOPAAsDkQALA5QACwOVAAsDlgALA5gACwOZAAsEFAALBBYACwQYAAsEGgALBB0ACwQeAAsEHwALBCAACwQhAAsEIwALBCYACwQnAAsEKAALBCoACwQrAAsEpgALBKgACwSrAAsErQALBLAACwSxAAsEsgALBLMACwS0AAsEtgALBLkACwS6AAsEuwALBL0ACwS+AAsFUQALBXQACwWUAAsFtAALBbYACwW4AAsFugALBbwACwW/AAsFwAALBcEACwXEAAsFxQALBccACwXIAAsFywALBc4ACwXPAAsF0AALBdMACwXUAAsF3QALBfYACwX/AAsGAQALBgQACwYNAAsGEAALBhMACwYVAAsGXgALBoIACwapAAsGzQALBtAACwbSAAsG1AALBtYACwbYAAsG2gALBtsACwbeAAsG9wALBxgACwcaAAsHHAALBx4ACwcgAAsHIgALByQACwcmAAsHKAALB0kACwdMAAsHTwALB1IACwdVAAsHWAALB1sACwdeAAsHYQALB2MACwfeAAsH4AALB+IACwfkAAsH5wALB+gACwfpAAsH6gALB+sACwftAAsH7wALB/AACwfxAAsH8wALB/QACwhvAAsIcQALCHMACwh1AAsIeAALCHkACwh6AAsIewALCHwACwh+AAsIgAALCIEACwiCAAsIhAALCIUACwkAAAsJAgALCQUACwkHAAsJCgALCQsACwkMAAsJDQALCQ4ACwkQAAsJEgALCRMACwkUAAsJFgALCRcACwkwAAsJMQALCTIACwk0AAsJrwALCbEACwmzAAsJtQALCbgACwm5AAsJugALCbsACwm8AAsJvgALCcAACwnBAAsJwgALCcQACwnFAAsKQAALCkIACwpEAAsKRgALCkkACwpKAAsKSwALCkwACwpNAAsKTwALClEACwpSAAsKUwALClUACwpWAAsK0QALCtMACwrVAAsK1wALCtoACwrbAAsK3AALCt0ACwreAAsK4AALCuIACwrjAAsK5AALCuYACwrnAAsLYgALC2QACwtmAAsLaAALC2sACwtsAAsLbQALC24ACwtvAAsLcQALC3MACwt0AAsLdQALC3cACwt4AAsL8wALC/UACwv3AAsL+QALC/wACwv9AAsL/gALC/8ACwwAAAsMAgALDAQACwwFAAsMBgALDAgACwwJAAsMUgALDHYACwydAAsMwQALDMQACwzHAAsMyQALDMsACwzNAAsMzwALDNAACwzTAAsM7AALDQkACw0MAAsNDwALDRIACw0VAAsNGAALDRsACw0eAAsNOwALDT4ACw1BAAsNRAALDUcACw1KAAsNTQALDVAACw1SAAsNzQALDc8ACw3SAAsN1AALDdcACw3YAAsN2QALDdoACw3bAAsN3QALDeAACw3hAAsN4gALDeQACw3lAAsOYAALDmIACw5lAAsOZwALDmoACw5rAAsObAALDm0ACw5uAAsOcAALDnMACw50AAsOdQALDncACw54AAsO8wALDvUACw74AAsO+gALDv0ACw7+AAsO/wALDwAACw8BAAsPAwALDwYACw8HAAsPCAALDwoACw8LAAsPhgALD4gACw+LAAsPjQALD5AACw+RAAsPkgALD5MACw+UAAsPlgALD5kACw+aAAsPmwALD50ACw+eAAsQGQALEBsACxAdAAsQHwALECIACxAjAAsQJAALECUACxAmAAsQKAALECsACxAsAAsQLQALEC8ACxAwAAsQqwALEK0ACxCvAAsQsQALELQACxC1AAsQtgALELcACxC4AAsQugALEL0ACxC+AAsQvwALEMEACxDCAAsRPQALET8ACxFCAAsRRAALEUcACxFIAAsRSQALEUoACxFLAAsRTQALEVAACxFRAAsRUgALEVQACxFVAAsRZgALEWsACxFuAAsRcAALEXUACxHwAAsR8gALEfQACxH2AAsR+QALEfoACxH7AAsR/AALEf0ACxH/AAsSAgALEgMACxIEAAsSBgALEgcACxKCAAsShAALEoYACxKIAAsSiwALEowACxKNAAsSjgALEo8ACxKRAAsSlAALEpUACxKWAAsSmAALEpkACxMUAAsTFgALExkACxMbAAsTHgALEx8ACxMgAAsTIQALEyIACxMkAAsTJwALEygACxMpAAsTKwALEywACxO/AAsT4gALFAIACxQiAAsUJAALFCYACxQoAAsUKgALFC0ACxQuAAsULwALFDIACxQzAAsUNQALFDYACxQ5AAsUPAALFD0ACxQ+AAsUQQALFEIACxRHAAsUYAALFGkACxRrAAsUbgALFHcACxR6AAsUfQALFH8ACxTIAAsU7AALFRMACxU3AAsVOgALFTwACxU+AAsVQAALFUIACxVEAAsVRQALFUgACxVhAAsVggALFYQACxWGAAsViAALFYoACxWMAAsVjgALFZAACxWSAAsVswALFbYACxW5AAsVvAALFb8ACxXCAAsVxQALFcgACxXLAAsVzQALFkgACxZKAAsWTAALFk4ACxZRAAsWUgALFlMACxZUAAsWVQALFlcACxZZAAsWWgALFlsACxZdAAsWXgALFtkACxbbAAsW3QALFt8ACxbiAAsW4wALFuQACxblAAsW5gALFugACxbqAAsW6wALFuwACxbuAAsW7wALF2oACxdsAAsXbwALF3EACxd0AAsXdQALF3YACxd3AAsXeAALF3oACxd8AAsXfQALF34ACxeAAAsXgQALF5oACxebAAsXnAALF54ACxgZAAsYGwALGB0ACxgfAAsYIgALGCMACxgkAAsYJQALGCYACxgoAAsYKgALGCsACxgsAAsYLgALGC8ACxiqAAsYrAALGK4ACxiwAAsYswALGLQACxi1AAsYtgALGLcACxi5AAsYuwALGLwACxi9AAsYvwALGMAACxk7AAsZPQALGT8ACxlBAAsZRAALGUUACxlGAAsZRwALGUgACxlKAAsZTAALGU0ACxlOAAsZUAALGVEACxnMAAsZzgALGdAACxnSAAsZ1QALGdYACxnXAAsZ2AALGdkACxnbAAsZ3QALGd4ACxnfAAsZ4QALGeIACxpdAAsaXwALGmEACxpjAAsaZgALGmcACxpoAAsaaQALGmoACxpsAAsabgALGm8ACxpwAAsacgALGnMACxq8AAsa4AALGwcACxsrAAsbLgALGzEACxszAAsbNQALGzcACxs5AAsbOgALGz0ACxtWAAsbcwALG3YACxt5AAsbfAALG38ACxuCAAsbhQALG4gACxulAAsbqAALG6sACxuuAAsbsQALG7QACxu3AAsbugALG7wACxw3AAscOQALHDwACxw+AAscQQALHEIACxxDAAscRAALHEUACxxHAAscSgALHEsACxxMAAscTgALHE8ACxzKAAsczAALHM8ACxzRAAsc1AALHNUACxzWAAsc1wALHNgACxzaAAsc3QALHN4ACxzfAAsc4QALHOIACx1dAAsdXwALHWIACx1kAAsdZwALHWgACx1pAAsdagALHWsACx1tAAsdcAALHXEACx1yAAsddAALHXUACx3wAAsd8gALHfUACx33AAsd+gALHfsACx38AAsd/QALHf4ACx4AAAseAwALHgQACx4FAAseBwALHggACx6LAAserwALHtMACx72AAsfHQALHz0ACx9kAAsfiwALH6sACx/PAAsf8wALH/UACx/4AAsf+gALH/wACx/+AAsgAQALIAQACyAGAAsgCAALIAsACyANAAsgDwALIBIACyAVAAsgFgALIBsACyA0AAsgOQALIDsACyBAAAsgQwALIEUACyCOAAsgsgALINkACyD9AAshAAALIQIACyEEAAshBgALIQgACyEKAAshCwALIQ4ACyEnAAshTAALIU4ACyFQAAshUgALIVQACyFWAAshWAALIVoACyFcAAshXgALIYMACyGGAAshiQALIYwACyGPAAshkgALIZUACyGYAAshmwALIZ4ACyGgAAsiGwALIh0ACyIgAAsiIgALIiUACyImAAsiJwALIigACyIpAAsiKwALIi0ACyIuAAsiLwALIjEACyIyAAsiQwALIkQACyJGAAsiwQALIsMACyLFAAsixwALIsoACyLLAAsizAALIs0ACyLOAAsi0AALItIACyLTAAsi1AALItYACyLXAAsjUgALI1QACyNXAAsjWQALI1wACyNdAAsjXgALI18ACyNgAAsjYgALI2QACyNlAAsjZgALI2gACyNpAAsjegALI3sACyN9AAsj+AALI/oACyP8AAsj/gALJAEACyQCAAskAwALJAQACyQFAAskBwALJAkACyQKAAskCwALJA0ACyQOAAskiQALJIsACySOAAskkAALJJMACySUAAsklQALJJYACySXAAskmQALJJsACyScAAsknQALJJ8ACySgAAsksQALJLIACyS0AAslLwALJTEACyUzAAslNQALJTgACyU5AAslOgALJTsACyU8AAslPgALJUAACyVBAAslQgALJUQACyVFAAslwAALJcIACyXFAAslxwALJcoACyXLAAslzAALJc0ACyXOAAsl0AALJdIACyXTAAsl1AALJdYACyXXAAsl8AALJfEACyXyAAsl9AALJm8ACyZxAAsmcwALJnUACyZ4AAsmeQALJnoACyZ7AAsmfAALJn4ACyaAAAsmgQALJoIACyaEAAsmhQALJwAACycCAAsnBQALJwcACycKAAsnCwALJwwACycNAAsnDgALJxAACycSAAsnEwALJxQACycWAAsnFwALJy4ACydHAAsnZAALJ2cACydqAAsnbQALJ3AACydzAAsndgALJ3kACyeWAAsnmQALJ5wACyefAAsnogALJ6UACyeoAAsnqwALJ60ACye6AAsn1AALJ9wACyfrAAsoEQALKDYACyjJAAso7AALKQwACyksAAspLgALKTAACykyAAspNAALKTcACyk4AAspOQALKTwACyk9AAspPwALKUAACylCAAspRQALKUYACylHAAspSgALKUsACylQAAspaQALKXIACyl0AAspdgALKX8ACymCAAsphQALKYcACynQAAsp9AALKhsACyo/AAsqQgALKkQACypGAAsqSAALKkoACypMAAsqTQALKlAACyppAAsqigALKowACyqOAAsqkAALKpIACyqUAAsqlgALKpgACyqaAAsquwALKr4ACyrBAAsqxAALKscACyrKAAsqzQALKtAACyrTAAsq1QALK1AACytSAAsrVAALK1YACytZAAsrWgALK1sACytcAAsrXQALK18ACythAAsrYgALK2MACytlAAsrZgALK+EACyvjAAsr5QALK+cACyvqAAsr6wALK+wACyvtAAsr7gALK/AACyvyAAsr8wALK/QACyv2AAsr9wALLHIACyx0AAssdwALLHkACyx8AAssfQALLH4ACyx/AAssgAALLIIACyyEAAsshQALLIYACyyIAAssiQALLKIACyyjAAsspAALLKYACy0hAAstIwALLSUACy0nAAstKgALLSsACy0sAAstLQALLS4ACy0wAAstMgALLTMACy00AAstNgALLTcACy2yAAsttAALLbYACy24AAstuwALLbwACy29AAstvgALLb8ACy3BAAstwwALLcQACy3FAAstxwALLcgACy5DAAsuRQALLkcACy5JAAsuTAALLk0ACy5OAAsuTwALLlAACy5SAAsuVAALLlUACy5WAAsuWAALLlkACy7UAAsu1gALLtgACy7aAAsu3QALLt4ACy7fAAsu4AALLuEACy7jAAsu5QALLuYACy7nAAsu6QALLuoACy9lAAsvZwALL2kACy9rAAsvbgALL28ACy9wAAsvcQALL3IACy90AAsvdgALL3cACy94AAsvegALL3sACy/EAAsv6AALMA8ACzAzAAswNgALMDgACzA6AAswPAALMD4ACzBAAAswQQALMEQACzBdAAswegALMHwACzB+AAswgAALMIIACzCEAAswhgALMIgACzClAAswqAALMKsACzCuAAswsQALMLQACzC3AAswugALMLwACzE3AAsxOQALMTsACzE9AAsxQAALMUEACzFCAAsxQwALMUQACzFGAAsxSAALMUkACzFKAAsxTAALMU0ACzHIAAsxygALMcwACzHOAAsx0QALMdIACzHTAAsx1AALMdUACzHXAAsx2QALMdoACzHbAAsx3QALMd4ACzJZAAsyWwALMl0ACzJfAAsyYgALMmMACzJkAAsyZQALMmYACzJoAAsyagALMmsACzJsAAsybgALMm8ACzLqAAsy7AALMu4ACzLwAAsy8wALMvQACzL1AAsy9gALMvcACzL5AAsy+wALMvwACzL9AAsy/wALMwAACzN7AAszfQALM38ACzOBAAszhAALM4UACzOGAAszhwALM4gACzOKAAszjAALM40ACzOOAAszkAALM5EACzQMAAs0DgALNBAACzQSAAs0FQALNBYACzQXAAs0GAALNBkACzQbAAs0HQALNB4ACzQfAAs0IQALNCIACzSdAAs0nwALNKEACzSjAAs0pgALNKcACzSoAAs0qQALNKoACzSsAAs0rgALNK8ACzSwAAs0sgALNLMACzVGAAs1aQALNYkACzWpAAs1qwALNa0ACzWvAAs1sQALNbQACzW1AAs1tgALNbkACzW6AAs1vAALNb0ACzW/AAs1wgALNcMACzXEAAs1xwALNcgACzXNAAs15gALNe8ACzXxAAs18wALNfwACzX/AAs2AgALNgQACzZNAAs2cQALNpgACza8AAs2vwALNsEACzbDAAs2xQALNscACzbJAAs2ygALNs0ACzbmAAs3BwALNwkACzcLAAs3DQALNw8ACzcRAAs3EwALNxUACzcXAAs3OAALNzsACzc+AAs3QQALN0QACzdHAAs3SgALN00ACzdQAAs3UgALN80ACzfPAAs30QALN9MACzfWAAs31wALN9gACzfZAAs32gALN9wACzfeAAs33wALN+AACzfiAAs34wALOF4ACzhgAAs4YgALOGQACzhnAAs4aAALOGkACzhqAAs4awALOG0ACzhvAAs4cAALOHEACzhzAAs4dAALOO8ACzjxAAs49AALOPYACzj5AAs4+gALOPsACzj8AAs4/QALOP8ACzkBAAs5AgALOQMACzkFAAs5BgALOR8ACzkgAAs5IQALOSMACzmeAAs5oAALOaIACzmkAAs5pwALOagACzmpAAs5qgALOasACzmtAAs5rwALObAACzmxAAs5swALObQACzovAAs6MQALOjMACzo1AAs6OAALOjkACzo6AAs6OwALOjwACzo+AAs6QAALOkEACzpCAAs6RAALOkUACzrAAAs6wgALOsQACzrGAAs6yQALOsoACzrLAAs6zAALOs0ACzrPAAs60QALOtIACzrTAAs61QALOtYACztRAAs7UwALO1UACztXAAs7WgALO1sACztcAAs7XQALO14ACztgAAs7YgALO2MACztkAAs7ZgALO2cACzviAAs75AALO+YACzvoAAs76wALO+wACzvtAAs77gALO+8ACzvxAAs78wALO/QACzv1AAs79wALO/gACzxBAAs8ZQALPIwACzywAAs8swALPLUACzy3AAs8uQALPLsACzy9AAs8vgALPMEACzzaAAs89wALPPkACzz7AAs8/QALPP8ACz0BAAs9AwALPQUACz0iAAs9JQALPSgACz0rAAs9LgALPTEACz00AAs9NwALPTkACz20AAs9tgALPbgACz26AAs9vQALPb4ACz2/AAs9wAALPcEACz3DAAs9xQALPcYACz3HAAs9yQALPcoACz5FAAs+RwALPkkACz5LAAs+TgALPk8ACz5QAAs+UQALPlIACz5UAAs+VgALPlcACz5YAAs+WgALPlsACz7WAAs+2AALPtoACz7cAAs+3wALPuAACz7hAAs+4gALPuMACz7lAAs+5wALPugACz7pAAs+6wALPuwACz9nAAs/aQALP2wACz9uAAs/cQALP3IACz9zAAs/dAALP3UACz93AAs/eQALP3oACz97AAs/fQALP34ACz/5AAs/+wALP/0ACz//AAtAAgALQAMAC0AEAAtABQALQAYAC0AIAAtACgALQAsAC0AMAAtADgALQA8AC0CKAAtAjAALQI4AC0CQAAtAkwALQJQAC0CVAAtAlgALQJcAC0CZAAtAmwALQJwAC0CdAAtAnwALQKAAC0EbAAtBHQALQR8AC0EhAAtBJAALQSUAC0EmAAtBJwALQSgAC0EqAAtBLAALQS0AC0EuAAtBMAALQTEAC0HEAAtB5wALQgcAC0InAAtCKQALQisAC0ItAAtCLwALQjIAC0IzAAtCNAALQjcAC0I4AAtCOgALQjsAC0I+AAtCQQALQkIAC0JDAAtCRgALQkcAC0JMAAtCZQALQm4AC0JwAAtCcwALQnwAC0J/AAtCggALQoQAC0LNAAt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UawALVGwAC1RtAAtUbgALVG8AC1RxAAtUcwALVHQAC1R1AAtUdwALVHgAC1TzAAtU9QALVPcAC1T5AAtU/AALVP0AC1T+AAtU/wALVQAAC1UCAAtVBAALVQUAC1UGAAtVCAALVQkAC1VSAAtVdgALVZ0AC1XBAAtVxAALVcYAC1XIAAtVygALVcwAC1XOAAtVzwALVdIAC1XrAAtWCAALVgoAC1YMAAtWDgALVhAAC1YSAAtWFAALVhYAC1YzAAtWNgALVjkAC1Y8AAtWPwALVkIAC1ZFAAtWSAALVkoAC1bFAAtWxwALVskAC1bLAAtWzgALVs8AC1bQAAtW0QALVtIAC1bUAAtW1gALVtcAC1bYAAtW2gALVtsAC1dWAAtXWAALV1oAC1dcAAtXXwALV2AAC1dhAAtXYgALV2MAC1dlAAtXZwALV2gAC1dpAAtXawALV2wAC1fnAAtX6QALV+sAC1ftAAtX8AALV/EAC1fyAAtX8wALV/QAC1f2AAtX+AALV/kAC1f6AAtX/AALV/0AC1h4AAtYegALWH0AC1h/AAtYggALWIMAC1iEAAtYhQALWIYAC1iIAAtYigALWIsAC1iMAAtYjgALWI8AC1kKAAtZDAALWQ4AC1kQAAtZEwALWRQAC1kVAAtZFgALWRcAC1kZAAtZGwALWRwAC1kdAAtZHwALWSAAC1mbAAtZnQALWZ8AC1mhAAtZpAALWaUAC1mmAAtZpwALWagAC1mqAAtZrAALWa0AC1muAAtZsAALWbEAC1osAAtaLgALWjAAC1oyAAtaNQALWjYAC1o3AAtaOAALWjkAC1o7AAtaPQALWj4AC1o/AAtaQQALWkIAC1rVAAta+AALWxgAC1s4AAtbOgALWzwAC1s+AAtbQAALW0MAC1tEAAtbRQALW0gAC1tJAAtbSwALW0wAC1tOAAtbUQALW1IAC1tTAAtbVgALW1cAC1tcAAtbdQALW34AC1uAAAtbggALW4sAC1uOAAtbkQALW5MAC1vcAAtcAAALXCcAC1xLAAtcTgALXFAAC1xSAAtcVAALXFYAC1xYAAtcWQALXFwAC1x1AAtclgALXJgAC1yaAAtcnAALXJ4AC1ygAAtcogALXKQAC1ymAAtcxwALXMoAC1zNAAtc0AALXNMAC1zWAAtc2QALXNwAC1zfAAtc4QALXVwAC11eAAtdYAALXWIAC11lAAtdZgALXWcAC11oAAtdaQALXWsAC11tAAtdbgALXW8AC11xAAtdcgALXe0AC13vAAtd8QALXfMAC132AAtd9wALXfgAC135AAtd+gALXfwAC13+AAtd/wALXgAAC14CAAteAwALXn4AC16AAAtegwALXoUAC16IAAteiQALXooAC16LAAtejAALXo4AC16QAAtekQALXpIAC16UAAtelQALXq4AC16vAAtesAALXrIAC18tAAtfLwALXzEAC18zAAtfNgALXzcAC184AAtfOQALXzoAC188AAtfPgALXz8AC19AAAtfQgALX0MAC1++AAtfwAALX8IAC1/EAAtfxwALX8gAC1/JAAtfygALX8sAC1/NAAtfzwALX9AAC1/RAAtf0wALX9QAC2BPAAtgUQALYFMAC2BVAAtgWAALYFkAC2BaAAtgWwALYFwAC2BeAAtgYAALYGEAC2BiAAtgZAALYGUAC2DgAAtg4gALYOQAC2DmAAtg6QALYOoAC2DrAAtg7AALYO0AC2DvAAtg8QALYPIAC2DzAAtg9QALYPYAC2FxAAthcwALYXUAC2F3AAthegALYXsAC2F8AAthfQALYX4AC2GAAAthggALYYMAC2GEAAthhgALYYcAC2HQAAth9AALYhsAC2I/AAtiQgALYkQAC2JGAAtiSAALYkoAC2JMAAtiTQALYlAAC2JpAAtihgALYogAC2KKAAtijAALYo4AC2KQAAtikgALYpQAC2KxAAtitAALYrcAC2K6AAtivQALYsAAC2LDAAtixgALYsgAC2NDAAtjRQALY0cAC2NJAAtjTAALY00AC2NOAAtjTwALY1AAC2NSAAtjVAALY1UAC2NWAAtjWAALY1kAC2PUAAtj1gALY9gAC2PaAAtj3QALY94AC2PfAAtj4AALY+EAC2PjAAtj5QALY+YAC2PnAAtj6QALY+oAC2RlAAtkZwALZGkAC2RrAAtkbgALZG8AC2RwAAtkcQALZHIAC2R0AAtkdgALZHcAC2R4AAtkegALZHsAC2T2AAtk+AALZPoAC2T8AAtk/wALZQAAC2UBAAtlAgALZQMAC2UFAAtlBwALZQgAC2UJAAtlCwALZQwAC2WHAAtliQALZYsAC2WNAAtlkAALZZEAC2WSAAtlkwALZZQAC2WWAAtlmAALZZkAC2WaAAtlnAALZZ0AC2YYAAtmGgALZhwAC2YeAAtmIQALZiIAC2YjAAtmJAALZiUAC2YnAAtmKQALZioAC2YrAAtmLQALZi4AC2apAAtmqwALZq0AC2avAAtmsgALZrMAC2a0AAtmtQALZrYAC2a4AAtmugALZrsAC2a8AAtmvgALZr8AC2dSAAtndQALZ5UAC2e1AAtntwALZ7kAC2e7AAtnvQALZ8AAC2fBAAtnwgALZ8UAC2fGAAtnyAALZ8kAC2fLAAtnzgALZ88AC2fQAAtn0wALZ9QAC2fZAAtn8gALZ/sAC2f9AAtn/wALaAgAC2gLAAtoDgALaBAAC2hZAAtofQALaKQAC2jIAAtoywALaM0AC2jPAAto0QALaNMAC2jVAAto1gALaNkAC2jyAAtpEwALaRUAC2kXAAtpGQALaRsAC2kdAAtpHwALaSEAC2kjAAtpRAALaUcAC2lKAAtpTQALaVAAC2lTAAtpVgALaVkAC2lcAAtpXgALadkAC2nbAAtp3QALad8AC2niAAtp4wALaeQAC2nlAAtp5gALaegAC2nqAAtp6wALaewAC2nuAAtp7wALamoAC2psAAtqbgALanAAC2pzAAtqdAALanUAC2p2AAtqdwALankAC2p7AAtqfAALan0AC2p/AAtqgAALavsAC2r9AAtrAAALawIAC2sFAAtrBgALawcAC2sIAAtrCQALawsAC2sNAAtrDgALaw8AC2sRAAtrEgALaysAC2ssAAtrLQALay8AC2uqAAtrrAALa64AC2uwAAtrswALa7QAC2u1AAtrtgALa7cAC2u5AAtruwALa7wAC2u9AAtrvwALa8AAC2w7AAtsPQALbD8AC2xBAAtsRAALbEUAC2xGAAtsRwALbEgAC2xKAAtsTAALbE0AC2xOAAtsUAALbFEAC2zMAAtszgALbNAAC2zSAAts1QALbNYAC2zXAAts2AALbNkAC2zbAAts3QALbN4AC2zfAAts4QALbOIAC21dAAttXwALbWEAC21jAAttZgALbWcAC21oAAttaQALbWoAC21sAAttbgALbW8AC21wAAttcgALbXMAC23uAAtt8AALbfIAC230AAtt9wALbfgAC235AAtt+gALbfsAC239AAtt/wALbgAAC24BAAtuAwALbgQAC25NAAtucQALbpgAC268AAtuvwALbsEAC27DAAtuxQALbscAC27JAAtuygALbs0AC27mAAtvAwALbwUAC28HAAtvCQALbwsAC28NAAtvDwALbxEAC28uAAtvMQALbzQAC283AAtvOgALbz0AC29AAAtvQwALb0UAC2/AAAtvwgALb8QAC2/GAAtvyQALb8oAC2/LAAtvzAALb80AC2/PAAtv0QALb9IAC2/TAAtv1QALb9YAC3BRAAtwUwALcFUAC3BXAAtwWgALcFsAC3BcAAtwXQALcF4AC3BgAAtwYgALcGMAC3BkAAtwZgALcGcAC3DiAAtw5AALcOYAC3DoAAtw6wALcOwAC3DtAAtw7gALcO8AC3DxAAtw8wALcPQAC3D1AAtw9wALcPgAC3FzAAtxdQALcXgAC3F6AAtxfQALcX4AC3F/AAtxgAALcYEAC3GDAAtxhQALcYYAC3GHAAtxiQALcYoAC3IFAAtyBwALcgkAC3ILAAtyDgALcg8AC3IQAAtyEQALchIAC3IUAAtyFgALchcAC3IYAAtyGgALchsAC3KWAAtymAALcpoAC3KcAAtynwALcqAAC3KhAAtyogALcqMAC3KlAAtypwALcqgAC3KpAAtyqwALcqwAC3MnAAtzKQALcysAC3MtAAtzMAALczEAC3MyAAtzMwALczQAC3M2AAtzOAALczkAC3M6AAtzPAALcz0AC3PQAAtz8wALdBMAC3QzAAt0NQALdDcAC3Q5AAt0OwALdD4AC3Q/AAt0QAALdEMAC3REAAt0RgALdEcAC3RJAAt0TAALdE0AC3ROAAt0UQALdFIAC3RXAAt0cAALdHkAC3R7AAt0fQALdIYAC3SJAAt0jAALdI4AC3TXAAt0+wALdSIAC3VGAAt1SQALdUsAC3VNAAt1TwALdVEAC3VTAAt1VAALdVcAC3VwAAt1kQALdZMAC3WVAAt1lwALdZkAC3WbAAt1nQALdZ8AC3WhAAt1wgALdcUAC3XIAAt1ywALdc4AC3XRAAt11AALddcAC3XaAAt13AALdlcAC3ZZAAt2WwALdl0AC3ZgAAt2YQALdmIAC3ZjAAt2ZAALdmYAC3ZoAAt2aQALdmoAC3ZsAAt2bQALdugAC3bqAAt27AALdu4AC3bxAAt28gALdvMAC3b0AAt29QALdvcAC3b5AAt2+gALdvsAC3b9AAt2/gALd3kAC3d7AAt3fgALd4AAC3eDAAt3hAALd4UAC3eGAAt3hwALd4kAC3eLAAt3jAALd40AC3ePAAt3kAALd6kAC3eqAAt3qwALd60AC3goAAt4KgALeCwAC3guAAt4MQALeDIAC3gzAAt4NAALeDUAC3g3AAt4OQALeDoAC3g7AAt4PQALeD4AC3i5AAt4uwALeL0AC3i/AAt4wgALeMMAC3jEAAt4xQALeMYAC3jIAAt4ygALeMsAC3jMAAt4zgALeM8AC3lKAAt5TAALeU4AC3lQAAt5UwALeVQAC3lVAAt5VgALeVcAC3lZAAt5WwALeVwAC3ldAAt5XwALeWAAC3nbAAt53QALed8AC3nhAAt55AALeeUAC3nmAAt55wALeegAC3nqAAt57AALee0AC3nuAAt58AALefEAC3psAAt6bgALenAAC3pyAAt6dQALenYAC3p3AAt6eAALenkAC3p7AAt6fQALen4AC3p/AAt6gQALeoIAC3rLAAt67wALexYAC3s6AAt7PQALez8AC3tBAAt7QwALe0UAC3tHAAt7SAALe0sAC3tkAAt7gQALe4MAC3uFAAt7hwALe4kAC3uLAAt7jQALe48AC3usAAt7rwALe7IAC3u1AAt7uAALe7sAC3u+AAt7wQALe8MAC3w+AAt8QAALfEIAC3xEAAt8RwALfEgAC3xJAAt8SgALfEsAC3xNAAt8TwALfFAAC3xRAAt8UwALfFQAC3zPAAt80QALfNMAC3zVAAt82AALfNkAC3zaAAt82wALfNwAC3zeAAt84AALfOEAC3ziAAt85AALfOUAC31gAAt9YgALfWQAC31mAAt9aQALfWoAC31rAAt9bAALfW0AC31vAAt9cQALfXIAC31zAAt9dQALfXYAC33xAAt98wALffUAC333AAt9+gALffsAC338AAt9/QALff4AC34AAAt+AgALfgMAC34EAAt+BgALfgcAC36CAAt+hAALfoYAC36IAAt+iwALfowAC36NAAt+jgALfo8AC36RAAt+kwALfpQAC36VAAt+lwALfpgAC38TAAt/FQALfxgAC38aAAt/HQALfx4AC38fAAt/IAALfyEAC38jAAt/JQALfyYAC38nAAt/KQALfyoAC39JAAt/xAALf8YAC3/IAAt/ygALf80AC3/OAAt/zwALf9AAC3/RAAt/0wALf9UAC3/WAAt/1wALf9kAC3/aAAt/6wALf+wAC3/uAAuAaQALgGsAC4BtAAuAbwALgHIAC4BzAAuAdAALgHUAC4B2AAuAeAALgHsAC4B8AAuAfQALgH8AC4CAAAuA+wALgP0AC4D/AAuBAQALgQQAC4EFAAuBBgALgQcAC4EIAAuBCgALgQ0AC4EOAAuBDwALgREAC4ESAAuBjQALgY8AC4GSAAuBlAALgZcAC4GYAAuBmQALgZoAC4GbAAuBnQALgaAAC4GhAAuBogALgaQAC4GlAAuCOAALglsAC4J7AAuCmwALgp0AC4KfAAuCoQALgqMAC4KmAAuCpwALgqgAC4KrAAuCrAALgq4AC4KvAAuCsQALgrQAC4K1AAuCtgALgrkAC4K6AAuCwwALgtwAC4LlAAuC5wALgukAC4LyAAuC9QALgvgAC4L6AAuDQwALg2cAC4OOAAuDsgALg7UAC4O3AAuDuQALg7sAC4O9AAuDvwALg8AAC4PDAAuD3AALg/0AC4P/AAuEAQALhAMAC4QFAAuEBwALhAkAC4QLAAuEDQALhC4AC4QxAAuENAALhDcAC4Q6AAuEPQALhEAAC4RDAAuERgALhEgAC4TDAAuExQALhMcAC4TJAAuEzAALhM0AC4TOAAuEzwALhNAAC4TSAAuE1AALhNUAC4TWAAuE2AALhNkAC4VUAAuFVgALhVgAC4VaAAuFXQALhV4AC4VfAAuFYAALhWEAC4VjAAuFZQALhWYAC4VnAAuFaQALhWoAC4XlAAuF5wALheoAC4XsAAuF7wALhfAAC4XxAAuF8gALhfMAC4X1AAuF9wALhfgAC4X5AAuF+wALhfwAC4YVAAuGFgALhhcAC4YZAAuGlAALhpYAC4aYAAuGmgALhp0AC4aeAAuGnwALhqAAC4ahAAuGowALhqUAC4amAAuGpwALhqkAC4aqAAuHJQALhycAC4cpAAuHKwALhy4AC4cvAAuHMAALhzEAC4cyAAuHNAALhzYAC4c3AAuHOAALhzoAC4c7AAuHtgALh7gAC4e6AAuHvAALh78AC4fAAAuHwQALh8IAC4fDAAuHxQALh8cAC4fIAAuHyQALh8sAC4fMAAuIRwALiEkAC4hLAAuITQALiFAAC4hRAAuIUgALiFMAC4hUAAuIVgALiFgAC4hZAAuIWgALiFwAC4hdAAuI2AALiNoAC4jcAAuI3gALiOEAC4jiAAuI4wALiOQAC4jlAAuI5wALiOkAC4jqAAuI6wALiO0AC4juAAuJNwALiVsAC4mCAAuJpgALiakAC4mrAAuJrQALia8AC4mxAAuJswALibQAC4m3AAuJ0AALie0AC4nvAAuJ8QALifMAC4n1AAuJ9wALifkAC4n7AAuKGAALihsAC4oeAAuKIQALiiQAC4onAAuKKgALii0AC4ovAAuKqgALiqwAC4qvAAuKsQALirQAC4q1AAuKtgALircAC4q4AAuKugALirwAC4q9AAuKvgALisAAC4rBAAuLPAALiz4AC4tAAAuLQgALi0UAC4tGAAuLRwALi0gAC4tJAAuLSwALi00AC4tOAAuLTwALi1EAC4tSAAuLzQALi88AC4vRAAuL0wALi9YAC4vXAAuL2AALi9kAC4vaAAuL3AALi94AC4vfAAuL4AALi+IAC4vjAAuMXgALjGAAC4xjAAuMZQALjGgAC4xpAAuMagALjGsAC4xsAAuMbgALjHAAC4xxAAuMcgALjHQAC4x1AAuM8AALjPIAC4z0AAuM9gALjPkAC4z6AAuM+wALjPwAC4z9AAuM/wALjQEAC40CAAuNAwALjQUAC40GAAuNgQALjYMAC42FAAuNhwALjYoAC42LAAuNjAALjY0AC42OAAuNkAALjZIAC42TAAuNlAALjZYAC42XAAuOEgALjhQAC44WAAuOGAALjhsAC44cAAuOHQALjh4AC44fAAuOIQALjiMAC44kAAuOJQALjicAC44oAAuOuwALjt4AC47+AAuPHgALjyAAC48iAAuPJAALjyYAC48pAAuPKgALjysAC48uAAuPLwALjzEAC48yAAuPNAALjzcAC484AAuPOQALjzwAC489AAuPQgALj1sAC49kAAuPZgALj2gAC49xAAuPdAALj3cAC495AAuPwgALj+YAC5ANAAuQMQALkDQAC5A2AAuQOAALkDoAC5A8AAuQPgALkD8AC5BCAAuQWwALkHwAC5B+AAuQgAALkIIAC5CEAAuQhgALkIgAC5CKAAuQjAALkK0AC5CwAAuQswALkLYAC5C5AAuQvAALkL8AC5DCAAuQxQALkMcAC5FCAAuRRAALkUYAC5FIAAuRSwALkUwAC5FNAAuRTgALkU8AC5FRAAuRUwALkVQAC5FVAAuRVwALkVgAC5HTAAuR1QALkdcAC5HZAAuR3AALkd0AC5HeAAuR3wALkeAAC5HiAAuR5AALkeUAC5HmAAuR6AALkekAC5JkAAuSZgALkmkAC5JrAAuSbgALkm8AC5JwAAuScQALknIAC5J0AAuSdgALkncAC5J4AAuSegALknsAC5KUAAuSlQALkpYAC5KYAAuTEwALkxUAC5MXAAuTGQALkxwAC5MdAAuTHgALkx8AC5MgAAuTIgALkyQAC5MlAAuTJgALkygAC5MpAAuTpAALk6YAC5OoAAuTqgALk60AC5OuAAuTrwALk7AAC5OxAAuTswALk7UAC5O2AAuTtwALk7kAC5O6AAuUNQALlDcAC5Q5AAuUOwALlD4AC5Q/AAuUQAALlEEAC5RCAAuURAALlEYAC5RHAAuUSAALlEoAC5RLAAuUxgALlMgAC5TKAAuUzAALlM8AC5TQAAuU0QALlNIAC5TTAAuU1QALlNcAC5TYAAuU2QALlNsAC5TcAAuVVwALlVkAC5VbAAuVXQALlWAAC5VhAAuVYgALlWMAC5VkAAuVZgALlWgAC5VpAAuVagALlWwAC5VtAAuVtgALldoAC5YBAAuWJQALligAC5YqAAuWLAALli4AC5YwAAuWMgALljMAC5Y2AAuWTwALlmwAC5ZuAAuWcAALlnIAC5Z0AAuWdgALlngAC5Z6AAuWlwALlpoAC5adAAuWoAALlqMAC5amAAuWqQALlqwAC5auAAuXKQALlysAC5cuAAuXMAALlzMAC5c0AAuXNQALlzYAC5c3AAuXOQALlzsAC5c8AAuXPQALlz8AC5dAAAuXuwALl70AC5e/AAuXwQALl8QAC5fFAAuXxgALl8cAC5fIAAuXygALl8wAC5fNAAuXzgALl9AAC5fRAAuYTAALmE4AC5hQAAuYUgALmFUAC5hWAAuYVwALmFgAC5hZAAuYWwALmF0AC5heAAuYXwALmGEAC5hiAAuY3QALmN8AC5jiAAuY5AALmOcAC5joAAuY6QALmOoAC5jrAAuY7QALmO8AC5jwAAuY8QALmPMAC5j0AAuZbwALmXEAC5lzAAuZdQALmXgAC5l5AAuZegALmXsAC5l8AAuZfgALmYAAC5mBAAuZggALmYQAC5mFAAuaAAALmgIAC5oEAAuaBgALmgkAC5oKAAuaCwALmgwAC5oNAAuaDwALmhEAC5oSAAuaEwALmhUAC5oWAAuakQALmpMAC5qVAAualwALmpoAC5qbAAuanAALmp0AC5qeAAuaoAALmqIAC5qjAAuapAALmqYAC5qnAAubOgALm10AC5t9AAubnQALm58AC5uhAAubowALm6UAC5uoAAubqQALm6oAC5utAAubrgALm7AAC5uxAAubswALm7YAC5u3AAubuAALm7sAC5u8AAubwQALm9oAC5vjAAub5QALm+cAC5vwAAub8wALm/YAC5v4AAucQQALnGUAC5yMAAucsAALnLMAC5y1AAuctwALnLkAC5y7AAucvQALnL4AC5zBAAuc2gALnPsAC5z9AAuc/wALnQEAC50DAAudBQALnQcAC50JAAudCwALnSwAC50vAAudMgALnTUAC504AAudOwALnT4AC51BAAudRAALnUYAC53BAAudwwALncUAC53HAAudygALncsAC53MAAudzQALnc4AC53QAAud0gALndMAC53UAAud1gALndcAC55SAAueVAALnlYAC55YAAueWwALnlwAC55dAAueXgALnl8AC55hAAueYwALnmQAC55lAAueZwALnmgAC57jAAue5QALnugAC57qAAue7QALnu4AC57vAAue8AALnvEAC57zAAue9QALnvYAC573AAue+QALnvoAC58TAAufFAALnxUAC58XAAufkgALn5QAC5+WAAufmAALn5sAC5+cAAufnQALn54AC5+fAAufoQALn6MAC5+kAAufpQALn6cAC5+oAAugIwALoCUAC6AnAAugKQALoCwAC6AtAAugLgALoC8AC6AwAAugMgALoDQAC6A1AAugNgALoDgAC6A5AAugtAALoLYAC6C4AAugugALoL0AC6C+AAugvwALoMAAC6DBAAugwwALoMUAC6DGAAugxwALoMkAC6DKAAuhRQALoUcAC6FJAAuhSwALoU4AC6FPAAuhUAALoVEAC6FSAAuhVAALoVYAC6FXAAuhWAALoVoAC6FbAAuh1gALodgAC6HaAAuh3AALod8AC6HgAAuh4QALoeIAC6HjAAuh5QALoecAC6HoAAuh6QALoesAC6HsAAuiNQALolkAC6KAAAuipAALoqcAC6KpAAuiqwALoq0AC6KvAAuisQALorIAC6K1AAuizgALousAC6LtAAui7wALovEAC6LzAAui9QALovcAC6L5AAujFgALoxkAC6McAAujHwALoyIAC6MlAAujKAALoysAC6MtAAujqAALo6oAC6OsAAujrgALo7EAC6OyAAujswALo7QAC6O1AAujtwALo7kAC6O6AAujuwALo70AC6O+AAukOQALpDsAC6Q9AAukPwALpEIAC6RDAAukRAALpEUAC6RGAAukSAALpEoAC6RLAAukTAALpE4AC6RPAAukygALpMwAC6TOAAuk0AALpNMAC6TUAAuk1QALpNYAC6TXAAuk2QALpNsAC6TcAAuk3QALpN8AC6TgAAulWwALpV0AC6VgAAulYgALpWUAC6VmAAulZwALpWgAC6VpAAulawALpW0AC6VuAAulbwALpXEAC6VyAAul7QALpe8AC6XxAAul8wALpfYAC6X3AAul+AALpfkAC6X6AAul/AALpf4AC6X/AAumAAALpgIAC6YDAAumfgALpoAAC6aCAAumhAALpocAC6aIAAumiQALpooAC6aLAAumjQALpo8AC6aQAAumkQALppMAC6aUAAunDwALpxEAC6cTAAunFQALpxgAC6cZAAunGgALpxsAC6ccAAunHgALpyAAC6chAAunIgALpyQAC6clAAunuAALp9sAC6f7AAuoGwALqB0AC6gfAAuoIQALqCMAC6gmAAuoJwALqCgAC6grAAuoLAALqC4AC6gvAAuoMQALqDQAC6g1AAuoNgALqDkAC6g6AAuoQwALqFwAC6hlAAuoZwALqGkAC6hyAAuodQALqHgAC6h6AAuowwALqOcAC6kOAAupMgALqTUAC6k3AAupOQALqTsAC6k9AAupPwALqUAAC6lDAAupXAALqX0AC6l/AAupgQALqYMAC6mFAAuphwALqYkAC6mLAAupjQALqa4AC6mxAAuptAALqbcAC6m6AAupvQALqcAAC6nDAAupxgALqcgAC6pDAAuqRQALqkcAC6pJAAuqTAALqk0AC6pOAAuqTwALqlAAC6pSAAuqVAALqlUAC6pWAAuqWAALqlkAC6rUAAuq1gALqtgAC6raAAuq3QALqt4AC6rfAAuq4AALquEAC6rjAAuq5QALquYAC6rnAAuq6QALquoAC6tlAAurZwALq2oAC6tsAAurbwALq3AAC6txAAurcgALq3MAC6t1AAurdwALq3gAC6t5AAurewALq3wAC6uVAAurlgALq5cAC6uZAAusFAALrBYAC6wYAAusGgALrB0AC6weAAusHwALrCAAC6whAAusIwALrCUAC6wmAAusJwALrCkAC6wqAAuspQALrKcAC6ypAAusqwALrK4AC6yvAAussAALrLEAC6yyAAustAALrLYAC6y3AAusuAALrLoAC6y7AAutNgALrTgAC606AAutPAALrT8AC61AAAutQQALrUIAC61DAAutRQALrUcAC61IAAutSQALrUsAC61MAAutxwALrckAC63LAAutzQALrdAAC63RAAut0gALrdMAC63UAAut1gALrdgAC63ZAAut2gALrdwAC63dAAuuWAALrloAC65cAAuuXgALrmEAC65iAAuuYwALrmQAC65lAAuuZwALrmkAC65qAAuuawALrm0AC65uAAuutwALrtsAC68CAAuvJgALrykAC68rAAuvLQALry8AC68xAAuvMwALrzQAC683AAuvUAALr20AC69vAAuvcQALr3MAC691AAuvdwALr3kAC697AAuvmAALr5sAC6+eAAuvoQALr6QAC6+nAAuvqgALr60AC6+vAAuwKgALsCwAC7AvAAuwMQALsDQAC7A1AAuwNgALsDcAC7A4AAuwOgALsDwAC7A9AAuwPgALsEAAC7BBAAuwvAALsL4AC7DAAAuwwgALsMUAC7DGAAuwxwALsMgAC7DJAAuwywALsM0AC7DOAAuwzwALsNEAC7DSAAuxTQALsU8AC7FRAAuxUwALsVYAC7FXAAuxWAALsVkAC7FaAAuxXAALsV4AC7FfAAuxYAALsWIAC7FjAAux3gALseAAC7HjAAux5QALsegAC7HpAAux6gALsesAC7HsAAux7gALsfAAC7HxAAux8gALsfQAC7H1AAuycAALsnIAC7J0AAuydgALsnkAC7J6AAuyewALsnwAC7J9AAuyfwALsoEAC7KCAAuygwALsoUAC7KGAAuzAQALswMAC7MFAAuzBwALswoAC7MLAAuzDAALsw0AC7MOAAuzEAALsxIAC7MTAAuzFAALsxYAC7MXAAuzkgALs5QAC7OWAAuzmAALs5sAC7OcAAuznQALs54AC7OfAAuzoQALs6MAC7OkAAuzpQALs6cAC7OoAAuzuQALs7oAC7O8AAu0NwALtDkAC7Q7AAu0PQALtEAAC7RBAAu0QgALtEMAC7REAAu0RgALtEkAC7RKAAu0SwALtE0AC7ROAAu0yQALtMsAC7TNAAu0zwALtNIAC7TTAAu01AALtNUAC7TWAAu02AALtNsAC7TcAAu03QALtN8AC7TgAAu1WwALtV0AC7VgAAu1YgALtWUAC7VmAAu1ZwALtWgAC7VpAAu1awALtW4AC7VvAAu1cAALtXIAC7VzAAu2BgALtikAC7ZJAAu2aQALtmsAC7ZtAAu2bwALtnEAC7Z0AAu2dQALtnYAC7Z5AAu2egALtnwAC7Z9AAu2fwALtoIAC7aDAAu2hAALtocAC7aIAAu2jQALtqYAC7avAAu2sQALtrMAC7a8AAu2vwALtsIAC7bEAAu3DQALtzEAC7dYAAu3fAALt38AC7eBAAu3gwALt4UAC7eHAAu3iQALt4oAC7eNAAu3pgALt8cAC7fJAAu3ywALt80AC7fPAAu30QALt9MAC7fVAAu31wALt/gAC7f7AAu3/gALuAEAC7gEAAu4BwALuAoAC7gNAAu4EAALuBIAC7iNAAu4jwALuJEAC7iTAAu4lgALuJcAC7iYAAu4mQALuJoAC7icAAu4ngALuJ8AC7igAAu4ogALuKMAC7keAAu5IAALuSIAC7kkAAu5JwALuSgAC7kpAAu5KgALuSsAC7ktAAu5LwALuTAAC7kxAAu5MwALuTQAC7mvAAu5sQALubQAC7m2AAu5uQALuboAC7m7AAu5vAALub0AC7m/AAu5wQALucIAC7nDAAu5xQALucYAC7nfAAu54AALueEAC7njAAu6XgALumAAC7piAAu6ZAALumcAC7poAAu6aQALumoAC7prAAu6bQALum8AC7pwAAu6cQALunMAC7p0AAu67wALuvEAC7rzAAu69QALuvgAC7r5AAu6+gALuvsAC7r8AAu6/gALuwAAC7sBAAu7AgALuwQAC7sFAAu7gAALu4IAC7uEAAu7hgALu4kAC7uKAAu7iwALu4wAC7uNAAu7jwALu5EAC7uSAAu7kwALu5UAC7uWAAu8EQALvBMAC7wVAAu8FwALvBoAC7wbAAu8HAALvB0AC7weAAu8IAALvCIAC7wjAAu8JAALvCYAC7wnAAu8ogALvKQAC7ymAAu8qAALvKsAC7ysAAu8rQALvK4AC7yvAAu8sQALvLMAC7y0AAu8tQALvLcAC7y4AAu9AQALvSUAC71MAAu9cAALvXMAC711AAu9dwALvXkAC717AAu9fQALvX4AC72BAAu9mgALvbcAC725AAu9uwALvb0AC72/AAu9wQALvcMAC73FAAu94gALveUAC73oAAu96wALve4AC73xAAu99AALvfcAC735AAu+dAALvnYAC754AAu+egALvn0AC75+AAu+fwALvoAAC76BAAu+gwALvoUAC76GAAu+hwALvokAC76KAAu/BQALvwcAC78JAAu/CwALvw4AC78PAAu/EAALvxEAC78SAAu/FAALvxYAC78XAAu/GAALvxoAC78bAAu/lgALv5gAC7+aAAu/nAALv58AC7+gAAu/oQALv6IAC7+jAAu/pQALv6cAC7+oAAu/qQALv6sAC7+sAAvAJwALwCkAC8AsAAvALgALwDEAC8AyAAvAMwALwDQAC8A1AAvANwALwDkAC8A6AAvAOwALwD0AC8A+AAvAuQALwLsAC8C9AAvAvwALwMIAC8DDAAvAxAALwMUAC8DGAAvAyAALwMoAC8DLAAvAzAALwM4AC8DPAAvBSgALwUwAC8FOAAvBUAALwVMAC8FUAAvBVQALwVYAC8FXAAvBWQALwVsAC8FcAAvBXQALwV8AC8FgAAvB2wALwd0AC8HfAAvB4QALweQAC8HlAAvB5gALwecAC8HoAAvB6gALwewAC8HtAAvB7gALwfAAC8HxAAvCAgALwgMAC8IFAAvCiAALwqwAC8LQAAvC8wALwxoAC8M6AAvDYQALw4gAC8OoAAvDzAALw/AAC8PyAAvD9QALw/cAC8P5AAvD+wALw/4AC8QBAAvEAwALxAUAC8QIAAvECgALxAwAC8QPAAvEEgALxBMAC8QYAAvEMQALxDYAC8Q4AAvEPQALxEAAC8RCAAvEiwALxK8AC8TWAAvE+gALxP0AC8T/AAvFAQALxQMAC8UFAAvFBwALxQgAC8ULAAvFJAALxUkAC8VLAAvFTQALxU8AC8VRAAvFUwALxVUAC8VXAAvFWQALxVsAC8WAAAvFgwALxYYAC8WJAAvFjAALxY8AC8WSAAvFlQALxZgAC8WbAAvFnQALxhgAC8YaAAvGHQALxh8AC8YiAAvGIwALxiQAC8YlAAvGJgALxigAC8YqAAvGKwALxiwAC8YuAAvGLwALxkAAC8ZBAAvGQwALxr4AC8bAAAvGwgALxsQAC8bHAAvGyAALxskAC8bKAAvGywALxs0AC8bPAAvG0AALxtEAC8bTAAvG1AALx08AC8dRAAvHVAALx1YAC8dZAAvHWgALx1sAC8dcAAvHXQALx18AC8dhAAvHYgALx2MAC8dlAAvHZgALx3cAC8d8AAvHfwALx4EAC8eSAAvHmwALx54AC8ehAAvHowALx74AC8fTAAvITgALyFAAC8hSAAvIVAALyFcAC8hYAAvIWQALyFoAC8hbAAvIXQALyF8AC8hgAAvIYQALyGMAC8hkAAvI3wALyOEAC8jkAAvI5gALyOkAC8jqAAvI6wALyOwAC8jtAAvI7wALyPEAC8jyAAvI8wALyPUAC8j2AAvJBwALyQgAC8kKAAvJhQALyYcAC8mJAAvJiwALyY4AC8mPAAvJkAALyZEAC8mSAAvJlAALyZYAC8mXAAvJmAALyZoAC8mbAAvKFgALyhgAC8obAAvKHQALyiAAC8ohAAvKIgALyiMAC8okAAvKJgALyigAC8opAAvKKgALyiwAC8otAAvKRgALykcAC8pIAAvKSgALysUAC8rHAAvKyQALyssAC8rOAAvKzwALytAAC8rRAAvK0gALytQAC8rWAAvK1wALytgAC8raAAvK2wALy1YAC8tYAAvLWwALy10AC8tgAAvLYQALy2IAC8tjAAvLZAALy2YAC8toAAvLaQALy2oAC8tsAAvLbQALy54AC8u3AAvLxAALy8cAC8vKAAvLzQALy9oAC8vdAAvL4AALy+MAC8vlAAvMAAALzBUAC8woAAvMuwALzN4AC8z+AAvNHgALzSAAC80iAAvNJAALzSYAC80pAAvNKgALzSsAC80uAAvNLwALzTEAC80yAAvNNAALzTcAC804AAvNOQALzTwAC809AAvNQgALzVsAC81kAAvNZgALzWgAC81xAAvNdAALzXcAC815AAvNwgALzeYAC84NAAvOMQALzjQAC842AAvOOAALzjoAC848AAvOPgALzj8AC85CAAvOWwALznwAC85+AAvOgAALzoIAC86EAAvOhgALzogAC86KAAvOjAALzq0AC86wAAvOswALzrYAC865AAvOvAALzr8AC87CAAvOxQALzscAC89CAAvPRAALz0YAC89IAAvPSwALz0wAC89NAAvPTgALz08AC89RAAvPUwALz1QAC89VAAvPVwALz1gAC8/TAAvP1QALz9cAC8/ZAAvP3AALz90AC8/eAAvP3wALz+AAC8/iAAvP5AALz+UAC8/mAAvP6AALz+kAC9BkAAvQZgAL0GkAC9BrAAvQbgAL0G8AC9BwAAvQcQAL0HIAC9B0AAvQdgAL0HcAC9B4AAvQegAL0HsAC9CUAAvQlQAL0JYAC9CYAAvREwAL0RUAC9EXAAvRGQAL0RwAC9EdAAvRHgAL0R8AC9EgAAvRIgAL0SQAC9ElAAvRJgAL0SgAC9EpAAvRpAAL0aYAC9GoAAvRqgAL0a0AC9GuAAvRrwAL0bAAC9GxAAvRswAL0bUAC9G2AAvRtwAL0bkAC9G6AAvSNQAL0jcAC9I5AAvSOwAL0j4AC9I/AAvSQAAL0kEAC9JCAAvSRAAL0kYAC9JHAAvSSAAL0koAC9JLAAvSxgAL0sgAC9LKAAvSzAAL0s8AC9LQAAvS0QAL0tIAC9LTAAvS1QAL0tcAC9LYAAvS2QAL0tsAC9LcAAvTVwAL01kAC9NbAAvTXQAL02AAC9NhAAvTYgAL02MAC9NkAAvTZgAL02gAC9NpAAvTagAL02wAC9NtAAvTtgAL09oAC9QBAAvUJQAL1CgAC9QqAAvULAAL1C4AC9QwAAvUMgAL1DMAC9Q2AAvUTwAL1GwAC9RuAAvUcAAL1HIAC9R0AAvUdgAL1HgAC9R6AAvUlwAL1JoAC9SdAAvUoAAL1KMAC9SmAAvUqQAL1KwAC9SuAAvVKQAL1SsAC9UtAAvVLwAL1TIAC9UzAAvVNAAL1TUAC9U2AAvVOAAL1ToAC9U7AAvVPAAL1T4AC9U/AAvVugAL1bwAC9W+AAvVwAAL1cMAC9XEAAvVxQAL1cYAC9XHAAvVyQAL1csAC9XMAAvVzQAL1c8AC9XQAAvWSwAL1k0AC9ZPAAvWUQAL1lQAC9ZVAAvWVgAL1lcAC9ZYAAvWWgAL1lwAC9ZdAAvWXgAL1mAAC9ZhAAvW3AAL1t4AC9bhAAvW4wAL1uYAC9bnAAvW6AAL1ukAC9bqAAvW7AAL1u4AC9bvAAvW8AAL1vIAC9bzAAvXbgAL13AAC9dyAAvXdAAL13cAC9d4AAvXeQAL13oAC9d7AAvXfQAL138AC9eAAAvXgQAL14MAC9eEAAvX/wAL2AEAC9gDAAvYBQAL2AgAC9gJAAvYCgAL2AsAC9gMAAvYDgAL2BAAC9gRAAvYEgAL2BQAC9gVAAvYkAAL2JIAC9iUAAvYlgAL2JkAC9iaAAvYmwAL2JwAC9idAAvYnwAL2KEAC9iiAAvYowAL2KUAC9imAAvZOQAL2VwAC9l8AAvZnAAL2Z4AC9mgAAvZogAL2aQAC9mnAAvZqAAL2akAC9msAAvZrQAL2a8AC9mwAAvZsgAL2bUAC9m2AAvZtwAL2boAC9m7AAvZwAAL2dkAC9niAAvZ5AAL2eYAC9nvAAvZ8gAL2fUAC9n3AAvaQAAL2mQAC9qLAAvarwAL2rIAC9q0AAvatgAL2rgAC9q6AAvavAAL2r0AC9rAAAva2QAL2voAC9r8AAva/gAL2wAAC9sCAAvbBAAL2wYAC9sIAAvbCgAL2ysAC9suAAvbMQAL2zQAC9s3AAvbOgAL2z0AC9tAAAvbQwAL20UAC9vAAAvbwgAL28QAC9vGAAvbyQAL28oAC9vLAAvbzAAL280AC9vPAAvb0QAL29IAC9vTAAvb1QAL29YAC9xRAAvcUwAL3FUAC9xXAAvcWgAL3FsAC9xcAAvcXQAL3F4AC9xgAAvcYgAL3GMAC9xkAAvcZgAL3GcAC9ziAAvc5AAL3OcAC9zpAAvc7AAL3O0AC9zuAAvc7wAL3PAAC9zyAAvc9AAL3PUAC9z2AAvc+AAL3PkAC90SAAvdEwAL3RQAC90WAAvdkQAL3ZMAC92VAAvdlwAL3ZoAC92bAAvdnAAL3Z0AC92eAAvdoAAL3aIAC92jAAvdpAAL3aYAC92nAAveIgAL3iQAC94mAAveKAAL3isAC94sAAveLQAL3i4AC94vAAveMQAL3jMAC940AAveNQAL3jcAC944AAveswAL3rUAC963AAveuQAL3rwAC969AAvevgAL3r8AC97AAAvewgAL3sQAC97FAAvexgAL3sgAC97JAAvfRAAL30YAC99IAAvfSgAL300AC99OAAvfTwAL31AAC99RAAvfUwAL31UAC99WAAvfVwAL31kAC99aAAvf1QAL39cAC9/ZAAvf2wAL394AC9/fAAvf4AAL3+EAC9/iAAvf5AAL3+YAC9/nAAvf6AAL3+oAC9/rAAvgNAAL4FgAC+B/AAvgowAL4KYAC+CoAAvgqgAL4KwAC+CuAAvgsAAL4LEAC+C0AAvgzQAL4OoAC+DsAAvg7gAL4PAAC+DyAAvg9AAL4PYAC+D4AAvhFQAL4RgAC+EbAAvhHgAL4SEAC+EkAAvhJwAL4SoAC+EsAAvhpwAL4akAC+GrAAvhrQAL4bAAC+GxAAvhsgAL4bMAC+G0AAvhtgAL4bgAC+G5AAvhugAL4bwAC+G9AAviOAAL4joAC+I8AAviPgAL4kEAC+JCAAviQwAL4kQAC+JFAAviRwAL4kkAC+JKAAviSwAL4k0AC+JOAAviyQAL4ssAC+LNAAvizwAL4tIAC+LTAAvi1AAL4tUAC+LWAAvi2AAL4toAC+LbAAvi3AAL4t4AC+LfAAvjWgAL41wAC+NfAAvjYQAL42QAC+NlAAvjZgAL42cAC+NoAAvjagAL42wAC+NtAAvjbgAL43AAC+NxAAvj7AAL4+4AC+PwAAvj8gAL4/UAC+P2AAvj9wAL4/gAC+P5AAvj+wAL4/0AC+P+AAvj/wAL5AEAC+QCAAvkfQAL5H8AC+SBAAvkgwAL5IYAC+SHAAvkiAAL5IkAC+SKAAvkjAAL5I4AC+SPAAvkkAAL5JIAC+STAAvlDgAL5RAAC+USAAvlFAAL5RcAC+UYAAvlGQAL5RoAC+UbAAvlHQAL5R8AC+UgAAvlIQAL5SMAC+UkAAvltwAL5doAC+X6AAvmGgAL5hwAC+YeAAvmIAAL5iIAC+YlAAvmJgAL5icAC+YqAAvmKwAL5i0AC+YuAAvmMQAL5jQAC+Y1AAvmNgAL5jkAC+Y6AAvmPwAL5lgAC+ZhAAvmYwAL5mYAC+ZvAAvmcgAL5nUAC+Z3AAvmwAAL5uQAC+cLAAvnLwAL5zIAC+c0AAvnNgAL5zgAC+c6AAvnPAAL5z0AC+dAAAvnWQAL53oAC+d8AAvnfgAL54AAC+eCAAvnhAAL54YAC+eIAAvnigAL56sAC+euAAvnsQAL57QAC+e3AAvnugAL570AC+fAAAvnwwAL58UAC+hAAAvoQgAL6EQAC+hGAAvoSQAL6EoAC+hLAAvoTAAL6E0AC+hPAAvoUQAL6FIAC+hTAAvoVQAL6FYAC+jRAAvo0wAL6NUAC+jXAAvo2gAL6NsAC+jcAAvo3QAL6N4AC+jgAAvo4gAL6OMAC+jkAAvo5gAL6OcAC+liAAvpZAAL6WcAC+lpAAvpbAAL6W0AC+luAAvpbwAL6XAAC+lyAAvpdAAL6XUAC+l2AAvpeAAL6XkAC+mSAAvpkwAL6ZQAC+mWAAvqEQAL6hMAC+oVAAvqFwAL6hoAC+obAAvqHAAL6h0AC+oeAAvqIAAL6iIAC+ojAAvqJAAL6iYAC+onAAvqogAL6qQAC+qmAAvqqAAL6qsAC+qsAAvqrQAL6q4AC+qvAAvqsQAL6rMAC+q0AAvqtQAL6rcAC+q4AAvrMwAL6zUAC+s3AAvrOQAL6zwAC+s9AAvrPgAL6z8AC+tAAAvrQgAL60QAC+tFAAvrRgAL60gAC+tJAAvrxAAL68YAC+vIAAvrygAL680AC+vOAAvrzwAL69AAC+vRAAvr0wAL69UAC+vWAAvr1wAL69kAC+vaAAvsVQAL7FcAC+xZAAvsWwAL7F4AC+xfAAvsYAAL7GEAC+xiAAvsZAAL7GYAC+xnAAvsaAAL7GoAC+xrAAvstAAL7NgAC+z/AAvtIwAL7SYAC+0pAAvtKwAL7S0AC+0vAAvtMQAL7TIAC+01AAvtTgAL7WsAC+1uAAvtcQAL7XQAC+13AAvtegAL7X0AC+2AAAvtnQAL7aAAC+2jAAvtpgAL7akAC+2sAAvtrwAL7bIAC+20AAvuLwAL7jEAC+40AAvuNgAL7jkAC+46AAvuOwAL7jwAC+49AAvuPwAL7kIAC+5DAAvuRAAL7kYAC+5HAAvuwgAL7sQAC+7HAAvuyQAL7swAC+7NAAvuzgAL7s8AC+7QAAvu0gAL7tUAC+7WAAvu1wAL7tkAC+7aAAvvVQAL71cAC+9aAAvvXAAL718AC+9gAAvvYQAL72IAC+9jAAvvZQAL72gAC+9pAAvvagAL72wAC+9tAAvv6AAL7+oAC+/tAAvv7wAL7/IAC+/zAAvv9AAL7/UAC+/2AAvv+AAL7/sAC+/8AAvv/QAL7/8AC/AAAAvwgwAL8KcAC/DLAAvw7gAL8RUAC/E1AAvxXAAL8YMAC/GjAAvxxwAL8esAC/HtAAvx8AAL8fIAC/H0AAvx9gAL8fkAC/H8AAvx/gAL8gAAC/IDAAvyBQAL8gcAC/IKAAvyDQAL8g4AC/ITAAvyLAAL8jEAC/IzAAvyOAAL8jsAC/I9AAvyhgAL8qoAC/LRAAvy9QAL8vgAC/L6AAvy/AAL8v4AC/MAAAvzAgAL8wMAC/MGAAvzHwAL80QAC/NGAAvzSAAL80oAC/NMAAvzTgAL81AAC/NSAAvzVAAL81YAC/N7AAvzfgAL84EAC/OEAAvzhwAL84oAC/ONAAvzkAAL85MAC/OWAAvzmAAL9BMAC/QVAAv0GAAL9BoAC/QdAAv0HgAL9B8AC/QgAAv0IQAL9CMAC/QlAAv0JgAL9CcAC/QpAAv0KgAL9DsAC/Q8AAv0PgAL9LkAC/S7AAv0vQAL9L8AC/TCAAv0wwAL9MQAC/TFAAv0xgAL9MgAC/TKAAv0ywAL9MwAC/TOAAv0zwAL9UoAC/VMAAv1TwAL9VEAC/VUAAv1VQAL9VYAC/VXAAv1WAAL9VoAC/VcAAv1XQAL9V4AC/VgAAv1YQAL9XIAC/VzAAv1dQAL9fAAC/XyAAv19AAL9fYAC/X5AAv1+gAL9fsAC/X8AAv1/QAL9f8AC/YBAAv2AgAL9gMAC/YFAAv2BgAL9oEAC/aDAAv2hgAL9ogAC/aLAAv2jAAL9o0AC/aOAAv2jwAL9pEAC/aTAAv2lAAL9pUAC/aXAAv2mAAL9qkAC/aqAAv2rAAL9ycAC/cpAAv3KwAL9y0AC/cwAAv3MQAL9zIAC/czAAv3NAAL9zYAC/c4AAv3OQAL9zoAC/c8AAv3PQAL97gAC/e6AAv3vQAL978AC/fCAAv3wwAL98QAC/fFAAv3xgAL98gAC/fKAAv3ywAL98wAC/fOAAv3zwAL9+gAC/fpAAv36gAL9+wAC/hnAAv4aQAL+GsAC/htAAv4cAAL+HEAC/hyAAv4cwAL+HQAC/h2AAv4eAAL+HkAC/h6AAv4fAAL+H0AC/j4AAv4+gAL+P0AC/j/AAv5AgAL+QMAC/kEAAv5BQAL+QYAC/kIAAv5CgAL+QsAC/kMAAv5DgAL+Q8AC/kiAAv5OwAL+WAAC/ljAAv5ZgAL+WkAC/lsAAv5bwAL+XIAC/l1AAv5eAAL+XsAC/mgAAv5owAL+aYAC/mpAAv5rAAL+a8AC/myAAv5tQAL+bgAC/m7AAv5vQAL+dMAC/oIAAv6HgAL+k4AC/ptAAv6gQAL+p8AC/q1AAv7SAAL+2sAC/uLAAv7qwAL+60AC/uvAAv7sQAL+7MAC/u2AAv7twAL+7gAC/u7AAv7vAAL+74AC/u/AAv7wQAL+8QAC/vFAAv7xgAL+8kAC/vKAAv7zwAL++gAC/vxAAv78wAL+/UAC/v+AAv8AQAL/AQAC/wGAAv8TwAL/HMAC/yaAAv8vgAL/MEAC/zDAAv8xQAL/McAC/zJAAv8ywAL/MwAC/zPAAv86AAL/QkAC/0LAAv9DQAL/Q8AC/0RAAv9EwAL/RUAC/0XAAv9GQAL/ToAC/09AAv9QAAL/UMAC/1GAAv9SQAL/UwAC/1PAAv9UgAL/VQAC/3PAAv90QAL/dMAC/3VAAv92AAL/dkAC/3aAAv92wAL/dwAC/3eAAv94AAL/eEAC/3iAAv95AAL/eUAC/5gAAv+YgAL/mQAC/5mAAv+aQAL/moAC/5rAAv+bAAL/m0AC/5vAAv+cQAL/nIAC/5zAAv+dQAL/nYAC/7xAAv+8wAL/vYAC/74AAv++wAL/vwAC/79AAv+/gAL/v8AC/8BAAv/AwAL/wQAC/8FAAv/BwAL/wgAC/8hAAv/IgAL/yMAC/8lAAv/oAAL/6IAC/+kAAv/pgAL/6kAC/+qAAv/qwAL/6wAC/+tAAv/rwAL/7EAC/+yAAv/swAL/7UAC/+2AAwAMQAMADMADAA1AAwANwAMADoADAA7AAwAPAAMAD0ADAA+AAwAQAAMAEIADABDAAwARAAMAEYADABHAAwAwgAMAMQADADGAAwAyAAMAMsADADMAAwAzQAMAM4ADADPAAwA0QAMANMADADUAAwA1QAMANcADADYAAwBUwAMAVUADAFXAAwBWQAMAVwADAFdAAwBXgAMAV8ADAFgAAwBYgAMAWQADAFlAAwBZgAMAWgADAFpAAwB5AAMAeYADAHoAAwB6gAMAe0ADAHuAAwB7wAMAfAADAHxAAwB8wAMAfUADAH2AAwB9wAMAfkADAH6AAwCQwAMAmcADAKOAAwCsgAMArUADAK3AAwCuQAMArsADAK9AAwCvwAMAsAADALDAAwC3AAMAvkADAL7AAwC/QAMAv8ADAMBAAwDAwAMAwUADAMHAAwDJAAMAycADAMqAAwDLQAMAzAADAMzAAwDNgAMAzkADAM7AAwDtgAMA7gADAO6AAwDvAAMA78ADAPAAAwDwQAMA8IADAPDAAwDxQAMA8cADAPIAAwDyQAMA8sADAPMAAwERwAMBEkADARLAAwETQAMBFAADARRAAwEUgAMBFMADARUAAwEVgAMBFgADARZAAwEWgAMBFwADARdAAwE2AAMBNoADATcAAwE3gAMBOEADATiAAwE4wAMBOQADATlAAwE5wAMBOkADATqAAwE6wAMBO0ADATuAAwFaQAMBWsADAVtAAwFbwAMBXIADAVzAAwFdAAMBXUADAV2AAwFeAAMBXoADAV7AAwFfAAMBX4ADAV/AAwF+gAMBfwADAX+AAwGAAAMBgMADAYEAAwGBQAMBgYADAYHAAwGCQAMBgsADAYMAAwGDQAMBg8ADAYQAAwGiwAMBo0ADAaPAAwGkQAMBpQADAaVAAwGlgAMBpcADAaYAAwGmgAMBpwADAadAAwGngAMBqAADAahAAwHHAAMBx4ADAcgAAwHIgAMByUADAcmAAwHJwAMBygADAcpAAwHKwAMBy0ADAcuAAwHLwAMBzEADAcyAAwHxQAMB+gADAgIAAwIKAAMCCoADAgsAAwILgAMCDAADAgzAAwINAAMCDUADAg4AAwIOQAMCDsADAg8AAwIPgAMCEEADAhCAAwIQwAMCEYADAhHAAwIUAAMCGkADAhyAAwIdAAMCHYADAh/AAwIggAMCIUADAiHAAwI0AAMCPQADAkbAAwJPwAMCUIADAlEAAwJRgAMCUgADAlKAAwJTAAMCU0ADAlQAAwJaQAMCYoADAmMAAwJjgAMCZAADAmSAAwJlAAMCZYADAmYAAwJmgAMCbsADAm+AAwJwQAMCcQADAnHAAwJygAMCc0ADAnQAAwJ0wAMCdUADApQAAwKUgAMClQADApWAAwKWQAMCloADApbAAwKXAAMCl0ADApfAAwKYQAMCmIADApjAAwKZQAMCmYADArhAAwK4wAMCuUADArnAAwK6gAMCusADArsAAwK7QAMCu4ADArwAAwK8gAMCvMADAr0AAwK9gAMCvcADAtyAAwLdAAMC3cADAt5AAwLfAAMC30ADAt+AAwLfwAMC4AADAuCAAwLhAAMC4UADAuGAAwLiAAMC4kADAuiAAwLowAMC6QADAumAAwMIQAMDCMADAwlAAwMJwAMDCoADAwrAAwMLAAMDC0ADAwuAAwMMAAMDDIADAwzAAwMNAAMDDYADAw3AAwMsgAMDLQADAy2AAwMuAAMDLsADAy8AAwMvQAMDL4ADAy/AAwMwQAMDMMADAzEAAwMxQAMDMcADAzIAAwNQwAMDUUADA1HAAwNSQAMDUwADA1NAAwNTgAMDU8ADA1QAAwNUgAMDVQADA1VAAwNVgAMDVgADA1ZAAwN1AAMDdYADA3YAAwN2gAMDd0ADA3eAAwN3wAMDeAADA3hAAwN4wAMDeUADA3mAAwN5wAMDekADA3qAAwOZQAMDmcADA5pAAwOawAMDm4ADA5vAAwOcAAMDnEADA5yAAwOdAAMDnYADA53AAwOeAAMDnoADA57AAwOxAAMDugADA8PAAwPMwAMDzYADA84AAwPOgAMDzwADA8+AAwPQAAMD0EADA9EAAwPXQAMD3oADA98AAwPfgAMD4AADA+CAAwPhAAMD4YADA+IAAwPpQAMD6gADA+rAAwPrgAMD7EADA+0AAwPtwAMD7oADA+8AAwQNwAMEDkADBA7AAwQPQAMEEAADBBBAAwQQgAMEEMADBBEAAwQRgAMEEgADBBJAAwQSgAMEEwADBBNAAwQyAAMEMoADBDMAAwQzgAMENEADBDSAAwQ0wAMENQADBDVAAwQ1wAMENkADBDaAAwQ2wAMEN0ADBDeAAwRWQAMEVsADBFdAAwRXwAMEWIADBFjAAwRZAAMEWUADBFmAAwRaAAMEWoADBFrAAwRbAAMEW4ADBFvAAwR6gAMEewADBHuAAwR8AAMEfMADBH0AAwR9QAMEfYADBH3AAwR+QAMEfsADBH8AAwR/QAMEf8ADBIAAAwSewAMEn0ADBJ/AAwSgQAMEoQADBKFAAwShgAMEocADBKIAAwSigAMEowADBKNAAwSjgAMEpAADBKRAAwTDAAMEw4ADBMRAAwTEwAMExYADBMXAAwTGAAMExkADBMaAAwTHAAMEx4ADBMfAAwTIAAMEyIADBMjAAwTMgAME60ADBOvAAwTsQAME7MADBO2AAwTtwAME7gADBO5AAwTugAME7wADBO+AAwTvwAME8AADBPCAAwTwwAMFFYADBR5AAwUmQAMFLkADBS7AAwUvQAMFL8ADBTBAAwUxAAMFMUADBTGAAwUyQAMFMoADBTMAAwUzQAMFNAADBTTAAwU1AAMFNUADBTYAAwU2QAMFN4ADBT3AAwVAAAMFQIADBUFAAwVDgAMFREADBUUAAwVFgAMFV8ADBWDAAwVqgAMFc4ADBXRAAwV0wAMFdUADBXXAAwV2QAMFdsADBXcAAwV3wAMFfgADBYZAAwWGwAMFh0ADBYfAAwWIQAMFiMADBYlAAwWJwAMFikADBZKAAwWTQAMFlAADBZTAAwWVgAMFlkADBZcAAwWXwAMFmIADBZkAAwW3wAMFuEADBbjAAwW5QAMFugADBbpAAwW6gAMFusADBbsAAwW7gAMFvAADBbxAAwW8gAMFvQADBb1AAwXcAAMF3IADBd0AAwXdgAMF3kADBd6AAwXewAMF3wADBd9AAwXfwAMF4EADBeCAAwXgwAMF4UADBeGAAwYAQAMGAMADBgGAAwYCAAMGAsADBgMAAwYDQAMGA4ADBgPAAwYEQAMGBMADBgUAAwYFQAMGBcADBgYAAwYMQAMGDIADBgzAAwYNQAMGLAADBiyAAwYtAAMGLYADBi5AAwYugAMGLsADBi8AAwYvQAMGL8ADBjBAAwYwgAMGMMADBjFAAwYxgAMGUEADBlDAAwZRQAMGUcADBlKAAwZSwAMGUwADBlNAAwZTgAMGVAADBlSAAwZUwAMGVQADBlWAAwZVwAMGdIADBnUAAwZ1gAMGdgADBnbAAwZ3AAMGd0ADBneAAwZ3wAMGeEADBnjAAwZ5AAMGeUADBnnAAwZ6AAMGmMADBplAAwaZwAMGmkADBpsAAwabQAMGm4ADBpvAAwacAAMGnIADBp0AAwadQAMGnYADBp4AAwaeQAMGvQADBr2AAwa+AAMGvoADBr9AAwa/gAMGv8ADBsAAAwbAQAMGwMADBsFAAwbBgAMGwcADBsJAAwbCgAMG1MADBt3AAwbngAMG8IADBvFAAwbyAAMG8oADBvMAAwbzgAMG9AADBvRAAwb1AAMG+0ADBwKAAwcDQAMHBAADBwTAAwcFgAMHBkADBwcAAwcHwAMHDwADBw/AAwcQgAMHEUADBxIAAwcSwAMHE4ADBxRAAwcUwAMHM4ADBzQAAwc0wAMHNUADBzYAAwc2QAMHNoADBzbAAwc3AAMHN4ADBzhAAwc4gAMHOMADBzlAAwc5gAMHWEADB1jAAwdZgAMHWgADB1rAAwdbAAMHW0ADB1uAAwdbwAMHXEADB10AAwddQAMHXYADB14AAwdeQAMHfQADB32AAwd+QAMHfsADB3+AAwd/wAMHgAADB4BAAweAgAMHgQADB4HAAweCAAMHgkADB4LAAweDAAMHocADB6JAAwejAAMHo4ADB6RAAwekgAMHpMADB6UAAwelQAMHpcADB6aAAwemwAMHpwADB6eAAwenwAMHxoADB8cAAwfHgAMHyAADB8jAAwfJAAMHyUADB8mAAwfJwAMHykADB8sAAwfLQAMHy4ADB8wAAwfMQAMH6wADB+uAAwfsAAMH7IADB+1AAwftgAMH7cADB+4AAwfuQAMH7sADB++AAwfvwAMH8AADB/CAAwfwwAMID4ADCBAAAwgQwAMIEUADCBIAAwgSQAMIEoADCBLAAwgTAAMIE4ADCBRAAwgUgAMIFMADCBVAAwgVgAMIOkADCEMAAwhLAAMIUwADCFOAAwhUAAMIVIADCFUAAwhVwAMIVgADCFZAAwhXAAMIV0ADCFfAAwhYAAMIWIADCFlAAwhZgAMIWcADCFqAAwhawAMIXQADCGNAAwhlgAMIZgADCGaAAwhowAMIaYADCGpAAwhqwAMIfQADCIYAAwiPwAMImMADCJmAAwiaAAMImoADCJsAAwibgAMInAADCJxAAwidAAMIo0ADCKuAAwisAAMIrIADCK0AAwitgAMIrgADCK6AAwivAAMIr4ADCLfAAwi4gAMIuUADCLoAAwi6wAMIu4ADCLxAAwi9AAMIvcADCL5AAwjdAAMI3YADCN4AAwjegAMI30ADCN+AAwjfwAMI4AADCOBAAwjgwAMI4UADCOGAAwjhwAMI4kADCOKAAwkBQAMJAcADCQJAAwkCwAMJA4ADCQPAAwkEAAMJBEADCQSAAwkFAAMJBYADCQXAAwkGAAMJBoADCQbAAwklgAMJJgADCSbAAwknQAMJKAADCShAAwkogAMJKMADCSkAAwkpgAMJKgADCSpAAwkqgAMJKwADCStAAwkxgAMJMcADCTIAAwkygAMJUUADCVHAAwlSQAMJUsADCVOAAwlTwAMJVAADCVRAAwlUgAMJVQADCVWAAwlVwAMJVgADCVaAAwlWwAMJdYADCXYAAwl2gAMJdwADCXfAAwl4AAMJeEADCXiAAwl4wAMJeUADCXnAAwl6AAMJekADCXrAAwl7AAMJmcADCZpAAwmawAMJm0ADCZwAAwmcQAMJnIADCZzAAwmdAAMJnYADCZ4AAwmeQAMJnoADCZ8AAwmfQAMJvgADCb6AAwm/AAMJv4ADCcBAAwnAgAMJwMADCcEAAwnBQAMJwcADCcJAAwnCgAMJwsADCcNAAwnDgAMJ4kADCeLAAwnjQAMJ48ADCeSAAwnkwAMJ5QADCeVAAwnlgAMJ5gADCeaAAwnmwAMJ5wADCeeAAwnnwAMJ+gADCgMAAwoMwAMKFcADChaAAwoXAAMKF4ADChgAAwoYgAMKGQADChlAAwoaAAMKIEADCieAAwooAAMKKIADCikAAwopgAMKKgADCiqAAw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VWwAMVVwADFVeAAxVXwAMVagADFXMAAxV8wAMVhcADFYaAAxWHAAMVh4ADFYgAAxWIgAMViQADFYlAAxWKAAMVkEADFZeAAxWYAAMVmIADFZkAAxWZgAMVmgADFZqAAxWbAAMVokADFaMAAxWjwAMVpIADFaVAAxWmAAMVpsADFaeAAxWoAAMVxsADFcdAAxXHwAMVyEADFckAAxXJQAMVyYADFcnAAxXKAAMVyoADFcsAAxXLQAMVy4ADFcwAAxXMQAMV6wADFeuAAxXsAAMV7IADFe1AAxXtgAMV7cADFe4AAxXuQAMV7sADFe9AAxXvgAMV78ADFfBAAxXwgAMWD0ADFg/AAxYQQAMWEMADFhGAAxYRwAMWEgADFhJAAxYSgAMWEwADFhOAAxYTwAMWFAADFhSAAxYUwAMWM4ADFjQAAxY0gAMWNQADFjXAAxY2AAMWNkADFjaAAxY2wAMWN0ADFjfAAxY4AAMWOEADFjjAAxY5AAMWV8ADFlhAAxZYwAMWWUADFloAAxZaQAMWWoADFlrAAxZbAAMWW4ADFlwAAxZcQAMWXIADFl0AAxZdQAMWfAADFnyAAxZ9QAMWfcADFn6AAxZ+wAMWfwADFn9AAxZ/gAMWgAADFoCAAxaAwAMWgQADFoGAAxaBwAMWiYADFqhAAxaowAMWqUADFqnAAxaqgAMWqsADFqsAAxarQAMWq4ADFqwAAxasgAMWrMADFq0AAxatgAMWrcADFtKAAxbbQAMW40ADFutAAxbrwAMW7EADFuzAAxbtQAMW7gADFu5AAxbugAMW70ADFu+AAxbwAAMW8EADFvEAAxbxwAMW8gADFvJAAxbzAAMW80ADFvSAAxb6wAMW/QADFv2AAxb+QAMXAIADFwFAAxcCAAMXAoADFxTAAxcdwAMXJ4ADFzCAAxcxQAMXMcADFzJAAxcywAMXM0ADFzPAAxc0AAMXNMADFzsAAxdDQAMXQ8ADF0RAAxdEwAMXRUADF0XAAxdGQAMXRsADF0dAAxdPgAMXUEADF1EAAxdRwAMXUoADF1NAAxdUAAMXVMADF1WAAxdWAAMXdMADF3VAAxd1wAMXdkADF3cAAxd3QAMXd4ADF3fAAxd4AAMXeIADF3kAAxd5QAMXeYADF3oAAxd6QAMXmQADF5mAAxeaAAMXmoADF5tAAxebgAMXm8ADF5wAAxecQAMXnMADF51AAxedgAMXncADF55AAxeegAMXvUADF73AAxe+gAMXvwADF7/AAxfAAAMXwEADF8CAAxfAwAMXwUADF8HAAxfCAAMXwkADF8LAAxfDAAMXyUADF8mAAxfJwAMXykADF+kAAxfpgAMX6gADF+qAAxfrQAMX64ADF+vAAxfsAAMX7EADF+zAAxftQAMX7YADF+3AAxfuQAMX7oADGA1AAxgNwAMYDkADGA7AAxgPgAMYD8ADGBAAAxgQQAMYEIADGBEAAxgRgAMYEcADGBIAAxgSgAMYEsADGDGAAxgyAAMYMoADGDMAAxgzwAMYNAADGDRAAxg0gAMYNMADGDVAAxg1wAMYNgADGDZAAxg2wAMYNwADGFXAAxhWQAMYVsADGFdAAxhYAAMYWEADGFiAAxhYwAMYWQADGFmAAxhaAAMYWkADGFqAAxhbAAMYW0ADGHoAAxh6gAMYewADGHuAAxh8QAMYfIADGHzAAxh9AAMYfUADGH3AAxh+QAMYfoADGH7AAxh/QAMYf4ADGJHAAxiawAMYpIADGK2AAxiuQAMYrwADGK+AAxiwAAMYsIADGLEAAxixQAMYsgADGLhAAxi/gAMYwEADGMEAAxjBwAMYwoADGMNAAxjEAAMYxMADGMwAAxjMwAMYzYADGM5AAxjPAAMYz8ADGNCAAxjRQAMY0cADGPCAAxjxAAMY8cADGPJAAxjzAAMY80ADGPOAAxjzwAMY9AADGPSAAxj1QAMY9YADGPXAAxj2QAMY9oADGRVAAxkVwAMZFoADGRcAAxkXwAMZGAADGRhAAxkYgAMZGMADGRlAAxkaAAMZGkADGRqAAxkbAAMZG0ADGToAAxk6gAMZO0ADGTvAAxk8gAMZPMADGT0AAxk9QAMZPYADGT4AAxk+wAMZPwADGT9AAxk/wAMZQAADGV7AAxlfQAMZYAADGWCAAxlhQAMZYYADGWHAAxliAAMZYkADGWLAAxljgAMZY8ADGWQAAxlkgAMZZMADGYOAAxmEAAMZhIADGYUAAxmFwAMZhgADGYZAAxmGgAMZhsADGYdAAxmIAAMZiEADGYiAAxmJAAMZiUADGagAAxmogAMZqQADGamAAxmqQAMZqoADGarAAxmrAAMZq0ADGavAAxmsgAMZrMADGa0AAxmtgAMZrcADGcyAAxnNAAMZzcADGc5AAxnPAAMZz0ADGc+AAxnPwAMZ0AADGdCAAxnRQAMZ0YADGdHAAxnSQAMZ0oADGdbAAxnXAAMZ14ADGfZAAxn2wAMZ90ADGffAAxn4gAMZ+MADGfkAAxn5QAMZ+YADGfoAAxn6wAMZ+wADGftAAxn7wAMZ/AADGhrAAxobQAMaG8ADGhxAAxodAAMaHUADGh2AAxodwAMaHgADGh6AAxofQAMaH4ADGh/AAxogQAMaIIADGj9AAxo/wAMaQIADGkEAAxpBwAMaQgADGkJAAxpCgAMaQsADGkNAAxpEAAMaREADGkSAAxpFAAMaRUADGmoAAxpywAMaesADGoLAAxqDQAMag8ADGoRAAxqEwAMahYADGoXAAxqGAAMahsADGocAAxqHgAMah8ADGoiAAxqJQAMaiYADGonAAxqKgAMaisADGo0AAxqTQAMalYADGpYAAxqWwAMamQADGpnAAxqagAMamwADGq1AAxq2QAMawAADGskAAxrJwAMaykADGsrAAxrLQAMay8ADGsxAAxrMgAMazUADGtOAAxrbwAMa3EADGtzAAxrdQAMa3cADGt5AAxrewAMa30ADGt/AAxroAAMa6MADGumAAxrqQAMa6wADGuvAAxrsgAMa7UADGu4AAxrugAMbDUADGw3AAxsOQAMbDsADGw+AAxsPwAMbEAADGxBAAxsQgAMbEQADGxGAAxsRwAMbEgADGxKAAxsSwAMbMYADGzIAAxsygAMbMwADGzPAAxs0AAMbNEADGzSAAxs0wAMbNUADGzXAAxs2AAMbNkADGzbAAxs3AAMbVcADG1ZAAxtXAAMbV4ADG1hAAxtYgAMbWMADG1kAAxtZQAMbWcADG1pAAxtagAMbWsADG1tAAxtbgAMbYcADG2IAAxtiQAMbYsADG4GAAxuCAAMbgoADG4MAAxuDwAMbhAADG4RAAxuEgAMbhMADG4VAAxuFwAMbhgADG4ZAAxuGwAMbhwADG6XAAxumQAMbpsADG6dAAxuoAAMbqEADG6iAAxuowAMbqQADG6mAAxuqAAMbqkADG6qAAxurAAMbq0ADG8oAAxvKgAMbywADG8uAAxvMQAMbzIADG8zAAxvNAAMbzUADG83AAxvOQAMbzoADG87AAxvPQAMbz4ADG+5AAxvuwAMb70ADG+/AAxvwgAMb8MADG/EAAxvxQAMb8YADG/IAAxvygAMb8sADG/MAAxvzgAMb88ADHBKAAxwTAAMcE4ADHBQAAxwUwAMcFQADHBVAAxwVgAMcFcADHBZAAxwWwAMcFwADHBdAAxwXwAMcGAADHCpAAxwzQAMcPQADHEYAAxxGwAMcR4ADHEgAAxxIgAMcSQADHEmAAxxJwAMcSoADHFDAAxxYAAMcWMADHFmAAxxaQAMcWwADHFvAAxxcgAMcXUADHGSAAxxlQAMcZgADHGbAAxxngAMcaEADHGkAAxxpwAMcakADHIkAAxyJgAMcikADHIrAAxyLgAMci8ADHIwAAxyMQAMcjIADHI0AAxyNwAMcjgADHI5AAxyOwAMcjwADHK3AAxyuQAMcrwADHK+AAxywQAMcsIADHLDAAxyxAAMcsUADHLHAAxyygAMcssADHLMAAxyzgAMcs8ADHNKAAxzTAAMc08ADHNRAAxzVAAMc1UADHNWAAxzVwAMc1gADHNaAAxzXQAMc14ADHNfAAxzYQAMc2IADHPdAAxz3wAMc+IADHPkAAxz5wAMc+gADHPpAAxz6gAMc+sADHPtAAxz8AAMc/EADHPyAAxz9AAMc/UADHR4AAx0nAAMdMAADHTjAAx1CgAMdSoADHVRAAx1eAAMdZgADHW8AAx14AAMdeIADHXlAAx15wAMdekADHXrAAx17gAMdfEADHXzAAx19QAMdfgADHX6AAx1/AAMdf8ADHYCAAx2AwAMdggADHYhAAx2JgAMdigADHYtAAx2MAAMdjIADHZ7AAx2nwAMdsYADHbqAAx27QAMdu8ADHbxAAx28wAMdvUADHb3AAx2+AAMdvsADHcUAAx3OQAMdzsADHc9AAx3PwAMd0EADHdDAAx3RQAMd0cADHdJAAx3SwAMd3AADHdzAAx3dgAMd3kADHd8AAx3fwAMd4IADHeFAAx3iAAMd4sADHeNAAx4CAAMeAoADHgNAAx4DwAMeBIADHgTAAx4FAAMeBUADHgWAAx4GAAMeBoADHgbAAx4HAAMeB4ADHgfAAx4MAAMeDEADHgzAAx4rgAMeLAADHizAAx4tQAMeLgADHi5AAx4ugAMeLsADHi8AAx4vgAMeMAADHjBAAx4wgAMeMQADHjFAAx49AAMeW8ADHlxAAx5dAAMeXYADHl5AAx5egAMeXsADHl8AAx5fQAMeX8ADHmBAAx5ggAMeYMADHmFAAx5hgAMeZcADHmYAAx5mgAMehUADHoXAAx6GQAMehsADHoeAAx6HwAMeiAADHohAAx6IgAMeiQADHomAAx6JwAMeigADHoqAAx6KwAMeqYADHqoAAx6qwAMeq0ADHqwAAx6sQAMerIADHqzAAx6tAAMerYADHq4AAx6uQAMeroADHq8AAx6vQAMes4ADHrPAAx60QAMe0wADHtOAAx7UAAMe1IADHtVAAx7VgAMe1cADHtYAAx7WQAMe1sADHtdAAx7XgAMe18ADHthAAx7YgAMe90ADHvfAAx74gAMe+QADHvnAAx76AAMe+kADHvqAAx76wAMe+0ADHvvAAx78AAMe/EADHvzAAx79AAMfA0ADHwOAAx8DwAMfBEADHyMAAx8jgAMfJAADHySAAx8lQAMfJYADHyXAAx8mAAMfJkADHybAAx8nQAMfJ4ADHyfAAx8oQAMfKIADH0dAAx9HwAMfSIADH0kAAx9JwAMfSgADH0pAAx9KgAMfSsADH0tAAx9LwAMfTAADH0xAAx9MwAMfTQADH1pAAx9ggAMfZMADH2WAAx9mQAMfZwADH2fAAx9sAAMfbMADH22AAx9uQAMfbwADH2+AAx90wAMfesADH4BAAx+FAAMfqcADH7KAAx+6gAMfwoADH8MAAx/DgAMfxAADH8SAAx/FQAMfxYADH8XAAx/GgAMfxsADH8dAAx/HgAMfyAADH8jAAx/JAAMfyUADH8oAAx/KQAMfy4ADH9HAAx/UAAMf1IADH9UAAx/XQAMf2AADH9jAAx/ZQAMf64ADH/SAAx/+QAMgB0ADIAgAAyAIgAMgCQADIAmAAyAKAAMgCoADIArAAyALgAMgEcADIBoAAyAagAMgGwADIBuAAyAcAAMgHIADIB0AAyAdgAMgHgADICZAAyAnAAMgJ8ADICiAAyApQAMgKgADICrAAyArgAMgLEADICzAAyBLgAMgTAADIEyAAyBNAAMgTcADIE4AAyBOQAMgToADIE7AAyBPQAMgT8ADIFAAAyBQQAMgUMADIFEAAyBvwAMgcEADIHDAAyBxQAMgcgADIHJAAyBygAMgcsADIHMAAyBzgAMgdAADIHRAAyB0gAMgdQADIHVAAyCUAAMglIADIJVAAyCVwAMgloADIJbAAyCXAAMgl0ADIJeAAyCYAAMgmIADIJjAAyCZAAMgmYADIJnAAyCgAAMgoEADIKCAAyChAAMgv8ADIMBAAyDAwAMgwUADIMIAAyDCQAMgwoADIMLAAyDDAAMgw4ADIMQAAyDEQAMgxIADIMUAAyDFQAMg5AADIOSAAyDlAAMg5YADIOZAAyDmgAMg5sADIOcAAyDnQAMg58ADIOhAAyDogAMg6MADIOlAAyDpgAMhCEADIQjAAyEJQAMhCcADIQqAAyEKwAMhCwADIQtAAyELgAMhDAADIQyAAyEMwAMhDQADIQ2AAyENwAMhLIADIS0AAyEtgAMhLgADIS7AAyEvAAMhL0ADIS+AAyEvwAMhMEADITDAAyExAAMhMUADITHAAyEyAAMhUMADIVFAAyFRwAMhUkADIVMAAyFTQAMhU4ADIVPAAyFUAAMhVIADIVUAAyFVQAMhVYADIVYAAyFWQAMhaIADIXGAAyF7QAMhhEADIYUAAyGFgAMhhgADIYaAAyGHAAMhh4ADIYfAAyGIgAMhjsADIZYAAyGWgAMhlwADIZeAAyGYAAMhmIADIZkAAyGZgAMhoMADIaGAAyGiQAMhowADIaPAAyGkgAMhpUADIaYAAyGmgAMhxUADIcXAAyHGQAMhxsADIceAAyHHwAMhyAADIchAAyHIgAMhyQADIcmAAyHJwAMhygADIcqAAyHKwAMh6YADIeoAAyHqgAMh6wADIevAAyHsAAMh7EADIeyAAyHswAMh7UADIe3AAyHuAAMh7kADIe7AAyHvAAMiDcADIg5AAyIOwAMiD0ADIhAAAyIQQAMiEIADIhDAAyIRAAMiEYADIhIAAyISQAMiEoADIhMAAyITQAMiMgADIjKAAyIzAAMiM4ADIjRAAyI0gAMiNMADIjUAAyI1QAMiNcADIjZAAyI2gAMiNsADIjdAAyI3gAMiVkADIlbAAyJXQAMiV8ADIliAAyJYwAMiWQADIllAAyJZgAMiWgADIlqAAyJawAMiWwADIluAAyJbwAMieoADInsAAyJ7wAMifEADIn0AAyJ9QAMifYADIn3AAyJ+AAMifoADIn8AAyJ/QAMif4ADIoAAAyKAQAMihAADIqLAAyKjQAMio8ADIqRAAyKlAAMipUADIqWAAyKlwAMipgADIqaAAyKnAAMip0ADIqeAAyKoAAMiqEADIs0AAyLVwAMi3cADIuXAAyLmQAMi5sADIudAAyLnwAMi6IADIujAAyLpAAMi6cADIuoAAyLqgAMi6sADIutAAyLsAAMi7EADIuyAAyLtQAMi7YADIu7AAyL1AAMi90ADIvfAAyL4QAMi+oADIvtAAyL8AAMi/IADIw7AAyMXwAMjIYADIyqAAyMrQAMjK8ADIyxAAyMswAMjLUADIy3AAyMuAAMjLsADIzUAAyM9QAMjPcADIz5AAyM+wAMjP0ADIz/AAyNAQAMjQMADI0FAAyNJgAMjSkADI0sAAyNLwAMjTIADI01AAyNOAAMjTsADI0+AAyNQAAMjbsADI29AAyNvwAMjcEADI3EAAyNxQAMjcYADI3HAAyNyAAMjcoADI3MAAyNzQAMjc4ADI3QAAyN0QAMjkwADI5OAAyOUAAMjlIADI5VAAyOVgAMjlcADI5YAAyOWQAMjlsADI5dAAyOXgAMjl8ADI5hAAyOYgAMjt0ADI7fAAyO4gAMjuQADI7nAAyO6AAMjukADI7qAAyO6wAMju0ADI7vAAyO8AAMjvEADI7zAAyO9AAMjw0ADI8OAAyPDwAMjxEADI+MAAyPjgAMj5AADI+SAAyPlQAMj5YADI+XAAyPmAAMj5kADI+bAAyPnQAMj54ADI+fAAyPoQAMj6IADJAdAAyQHwAMkCEADJAjAAyQJgAMkCcADJAoAAyQKQAMkCoADJAsAAyQLgAMkC8ADJAwAAyQMgAMkDMADJCuAAyQsAAMkLIADJC0AAyQtwAMkLgADJC5AAyQugAMkLsADJC9AAyQvwAMkMAADJDBAAyQwwAMkMQADJE/AAyRQQAMkUMADJFFAAyRSAAMkUkADJFKAAyRSwAMkUwADJFOAAyRUAAMkVEADJFSAAyRVAAMkVUADJHQAAyR0gAMkdQADJHWAAyR2QAMkdoADJHbAAyR3AAMkd0ADJHfAAyR4QAMkeIADJHjAAyR5QAMkeYADJIvAAySUwAMknoADJKeAAySoQAMkqMADJKlAAySpwAMkqkADJKrAAySrAAMkq8ADJLIAAyS5QAMkucADJLpAAyS6wAMku0ADJLvAAyS8QAMkvMADJMQAAyTEwAMkxYADJMZAAyTHAAMkx8ADJMiAAyTJQAMkycADJOiAAyTpAAMk6YADJOoAAyTqwAMk6wADJOtAAyTrgAMk68ADJOxAAyTswAMk7QADJO1AAyTtwAMk7gADJQzAAyUNQAMlDcADJQ5AAyUPAAMlD0ADJQ+AAyUPwAMlEAADJRCAAyURAAMlEUADJRGAAyUSAAMlEkADJTEAAyUxgAMlMgADJTKAAyUzQAMlM4ADJTPAAyU0AAMlNEADJTTAAyU1QAMlNYADJTXAAyU2QAMlNoADJVVAAyVVwAMlVkADJVbAAyVXgAMlV8ADJVgAAyVYQAMlWIADJVkAAyVZgAMlWcADJVoAAyVagAMlWsADJXmAAyV6AAMleoADJXsAAyV7wAMlfAADJXxAAyV8gAMlfMADJX1AAyV9wAMlfgADJX5AAyV+wAMlfwADJZ3AAyWeQAMlnwADJZ+AAyWgQAMloIADJaDAAyWhAAMloUADJaHAAyWiQAMlooADJaLAAyWjQAMlo4ADJatAAyXKAAMlyoADJcsAAyXLgAMlzEADJcyAAyXMwAMlzQADJc1AAyXNwAMlzkADJc6AAyXOwAMlz0ADJc+AAyX0QAMl/QADJgUAAyYNAAMmDYADJg4AAyYOgAMmDwADJg/AAyYQAAMmEEADJhEAAyYRQAMmEcADJhIAAyYSgAMmE0ADJhOAAyYTwAMmFIADJhTAAyYWAAMmHEADJh6AAyYfAAMmH4ADJiHAAyYigAMmI0ADJiPAAyY2AAMmPwADJkjAAyZRwAMmUoADJlMAAyZTgAMmVAADJlSAAyZVAAMmVUADJlYAAyZcQAMmZIADJmUAAyZlgAMmZgADJmaAAyZnAAMmZ4ADJmgAAyZogAMmcMADJnGAAyZyQAMmcwADJnPAAyZ0gAMmdUADJnYAAyZ2wAMmd0ADJpYAAyaWgAMmlwADJpeAAyaYQAMmmIADJpjAAyaZAAMmmUADJpnAAyaaQAMmmoADJprAAyabQAMmm4ADJrpAAya6wAMmu0ADJrvAAya8gAMmvMADJr0AAya9QAMmvYADJr4AAya+gAMmvsADJr8AAya/gAMmv8ADJt6AAybfAAMm38ADJuBAAybhAAMm4UADJuGAAybhwAMm4gADJuKAAybjAAMm40ADJuOAAybkAAMm5EADJuqAAybqwAMm6wADJuuAAycKQAMnCsADJwtAAycLwAMnDIADJwzAAycNAAMnDUADJw2AAycOAAMnDoADJw7AAycPAAMnD4ADJw/AAycugAMnLwADJy+AAycwAAMnMMADJzEAAycxQAMnMYADJzHAAycyQAMnMsADJzMAAyczQAMnM8ADJzQAAydSwAMnU0ADJ1PAAydUQAMnVQADJ1VAAydVgAMnVcADJ1YAAydWgAMnVwADJ1dAAydXgAMnWAADJ1hAAyd3AAMnd4ADJ3gAAyd4gAMneUADJ3mAAyd5wAMnegADJ3pAAyd6wAMne0ADJ3uAAyd7wAMnfEADJ3yAAyebQAMnm8ADJ5xAAyecwAMnnYADJ53AAyeeAAMnnkADJ56AAyefAAMnn4ADJ5/AAyegAAMnoIADJ6DAAyezAAMnvAADJ8XAAyfOwAMnz4ADJ9AAAyfQgAMn0QADJ9GAAyfSAAMn0kADJ9MAAyfZQAMn4IADJ+EAAyfhgAMn4gADJ+KAAyfjAAMn44ADJ+QAAyfrQAMn7AADJ+zAAyftgAMn7kADJ+8AAyfvwAMn8IADJ/EAAygPwAMoEEADKBDAAygRQAMoEgADKBJAAygSgAMoEsADKBMAAygTgAMoFAADKBRAAygUgAMoFQADKBVAAyg0AAMoNIADKDUAAyg1gAMoNkADKDaAAyg2wAMoNwADKDdAAyg3wAMoOEADKDiAAyg4wAMoOUADKDmAAyhYQAMoWMADKFlAAyhZwAMoWoADKFrAAyhbAAMoW0ADKFuAAyhcAAMoXIADKFzAAyhdAAMoXYADKF3AAyh8gAMofQADKH2AAyh+AAMofsADKH8AAyh/QAMof4ADKH/AAyiAQAMogMADKIEAAyiBQAMogcADKIIAAyigwAMooUADKKHAAyiiQAMoowADKKNAAyijgAMoo8ADKKQAAyikgAMopQADKKVAAyilgAMopgADKKZAAyjFAAMoxYADKMZAAyjGwAMox4ADKMfAAyjIAAMoyEADKMiAAyjJAAMoyYADKMnAAyjKAAMoyoADKMrAAyjSgAMo8UADKPHAAyjyQAMo8sADKPOAAyjzwAMo9AADKPRAAyj0gAMo9QADKPWAAyj1wAMo9gADKPaAAyj2wAMpG4ADKSRAAyksQAMpNEADKTTAAyk1QAMpNcADKTZAAyk3AAMpN0ADKTeAAyk4QAMpOIADKTkAAyk5QAMpOgADKTrAAyk7AAMpO0ADKTwAAyk8QAMpPoADKUTAAylHAAMpR4ADKUhAAylKgAMpS0ADKUwAAylMgAMpXsADKWfAAylxgAMpeoADKXtAAyl7wAMpfEADKXzAAyl9QAMpfcADKX4AAyl+wAMphQADKY1AAymNwAMpjkADKY7AAymPQAMpj8ADKZBAAymQwAMpkUADKZmAAymaQAMpmwADKZvAAymcgAMpnUADKZ4AAymewAMpn4ADKaAAAym+wAMpv0ADKb/AAynAQAMpwQADKcFAAynBgAMpwcADKcIAAynCgAMpwwADKcNAAynDgAMpxAADKcRAAynjAAMp44ADKeQAAynkgAMp5UADKeWAAynlwAMp5gADKeZAAynmwAMp50ADKeeAAynnwAMp6EADKeiAAyoHQAMqB8ADKgiAAyoJAAMqCcADKgoAAyoKQAMqCoADKgrAAyoLQAMqC8ADKgwAAyoMQAMqDMADKg0AAyoTQAMqE4ADKhPAAyoUQAMqMwADKjOAAyo0AAMqNIADKjVAAyo1gAMqNcADKjYAAyo2QAMqNsADKjdAAyo3gAMqN8ADKjhAAyo4gAMqV0ADKlfAAypYQAMqWMADKlmAAypZwAMqWgADKlpAAypagAMqWwADKluAAypbwAMqXAADKlyAAypcwAMqe4ADKnwAAyp8gAMqfQADKn3AAyp+AAMqfkADKn6AAyp+wAMqf0ADKn/AAyqAAAMqgEADKoDAAyqBAAMqn8ADKqBAAyqgwAMqoUADKqIAAyqiQAMqooADKqLAAyqjAAMqo4ADKqQAAyqkQAMqpIADKqUAAyqlQAMqxAADKsSAAyrFAAMqxYADKsZAAyrGgAMqxsADKscAAyrHQAMqx8ADKshAAyrIgAMqyMADKslAAyrJgAMq28ADKuTAAyrugAMq94ADKvhAAyr5AAMq+YADKvoAAyr6gAMq+wADKvtAAyr8AAMrAkADKwmAAysKQAMrCwADKwvAAysMgAMrDUADKw4AAysOwAMrFgADKxbAAysXgAMrGEADKxkAAysZwAMrGoADKxtAAysbwAMrOoADKzsAAys7wAMrPEADKz0AAys9QAMrPYADKz3AAys+AAMrPoADKz9AAys/gAMrP8ADK0BAAytAgAMrX0ADK1/AAytggAMrYQADK2HAAytiAAMrYkADK2KAAytiwAMrY0ADK2QAAytkQAMrZIADK2UAAytlQAMrhAADK4SAAyuFQAMrhcADK4aAAyuGwAMrhwADK4dAAyuHgAMriAADK4jAAyuJAAMriUADK4nAAyuKAAMrqMADK6lAAyuqAAMrqoADK6tAAyurgAMrq8ADK6wAAyusQAMrrMADK62AAyutwAMrrgADK66AAyuuwAMrzYADK84AAyvOgAMrzwADK8/AAyvQAAMr0EADK9CAAyvQwAMr0UADK9IAAyvSQAMr0oADK9MAAyvTQAMr8gADK/KAAyvzAAMr84ADK/RAAyv0gAMr9MADK/UAAyv1QAMr9cADK/aAAyv2wAMr9wADK/eAAyv3wAMsFoADLBcAAywXwAMsGEADLBkAAywZQAMsGYADLBnAAywaAAMsGoADLBtAAywbgAMsG8ADLBxAAywcgAMsIMADLCEAAywhgAMsQEADLEDAAyxBQAMsQcADLEKAAyxCwAMsQwADLENAAyxDgAMsRAADLETAAyxFAAMsRUADLEXAAyxGAAMsZMADLGVAAyxlwAMsZkADLGcAAyxnQAMsZ4ADLGfAAyxoAAMsaIADLGlAAyxpgAMsacADLGpAAyxqgAMsiUADLInAAyyKgAMsiwADLIvAAyyMAAMsjEADLIyAAyyMwAMsjUADLI4AAyyOQAMsjoADLI8AAyyPQAMstAADLLzAAyzEwAMszMADLM1AAyzNwAMszkADLM7AAyzPgAMsz8ADLNAAAyzQwAMs0QADLNGAAyzRwAMs0kADLNMAAyzTQAMs04ADLNRAAyzUgAMs1sADLN0AAyzfQAMs38ADLOBAAyzigAMs40ADLOQAAyzkgAMs9sADLP/AAy0JgAMtEoADLRNAAy0TwAMtFEADLRTAAy0VQAMtFcADLRYAAy0WwAMtHQADLSVAAy0lwAMtJkADLSbAAy0nQAMtJ8ADLShAAy0owAMtKUADLTGAAy0yQAMtMwADLTPAAy00gAMtNUADLTYAAy02wAMtN4ADLTgAAy1WwAMtV0ADLVfAAy1YQAMtWQADLVlAAy1ZgAMtWcADLVoAAy1agAMtWwADLVtAAy1bgAMtXAADLVxAAy17AAMte4ADLXwAAy18gAMtfUADLX2AAy19wAMtfgADLX5AAy1+wAMtf0ADLX+AAy1/wAMtgEADLYCAAy2fQAMtn8ADLaCAAy2hAAMtocADLaIAAy2iQAMtooADLaLAAy2jQAMto8ADLaQAAy2kQAMtpMADLaUAAy2rQAMtq4ADLavAAy2sQAMtywADLcuAAy3MAAMtzIADLc1AAy3NgAMtzcADLc4AAy3OQAMtzsADLc9AAy3PgAMtz8ADLdBAAy3QgAMt70ADLe/AAy3wQAMt8MADLfGAAy3xwAMt8gADLfJAAy3ygAMt8wADLfOAAy3zwAMt9AADLfSAAy30wAMuE4ADLhQAAy4UgAMuFQADLhXAAy4WAAMuFkADLhaAAy4WwAMuF0ADLhfAAy4YAAMuGEADLhjAAy4ZAAMuN8ADLjhAAy44wAMuOUADLjoAAy46QAMuOoADLjrAAy47AAMuO4ADLjwAAy48QAMuPIADLj0AAy49QAMuXAADLlyAAy5dAAMuXYADLl5AAy5egAMuXsADLl8AAy5fQAMuX8ADLmBAAy5ggAMuYMADLmFAAy5hgAMuc8ADLnzAAy6GgAMuj4ADLpBAAy6QwAMukUADLpHAAy6SQAMuksADLpMAAy6TwAMumgADLqFAAy6hwAMuokADLqLAAy6jQAMuo8ADLqRAAy6kwAMurAADLqzAAy6tgAMurkADLq8AAy6vwAMusIADLrFAAy6xwAMu0IADLtEAAy7RgAMu0gADLtLAAy7TAAMu00ADLtOAAy7TwAMu1EADLtTAAy7VAAMu1UADLtXAAy7WAAMu9MADLvVAAy71wAMu9kADLvcAAy73QAMu94ADLvfAAy74AAMu+IADLvkAAy75QAMu+YADLvoAAy76QAMvGQADLxmAAy8aAAMvGoADLxtAAy8bgAMvG8ADLxwAAy8cQAMvHMADLx1AAy8dgAMvHcADLx5AAy8egAMvPUADLz3AAy8+QAMvPsADLz+AAy8/wAMvQAADL0BAAy9AgAMvQQADL0GAAy9BwAMvQgADL0KAAy9CwAMvYYADL2IAAy9igAMvYwADL2PAAy9kAAMvZEADL2SAAy9kwAMvZUADL2XAAy9mAAMvZkADL2bAAy9nAAMvhcADL4ZAAy+GwAMvh0ADL4gAAy+IQAMviIADL4jAAy+JAAMviYADL4oAAy+KQAMvioADL4sAAy+LQAMvqgADL6qAAy+rAAMvq4ADL6xAAy+sgAMvrMADL60AAy+tQAMvrcADL65AAy+ugAMvrsADL69AAy+vgAMv1EADL90AAy/lAAMv7QADL+2AAy/uAAMv7oADL+8AAy/vwAMv8AADL/BAAy/xAAMv8UADL/HAAy/yAAMv8sADL/OAAy/zwAMv9AADL/TAAy/1AAMv9kADL/yAAy/+wAMv/0ADMAAAAzACQAMwAwADMAPAAzAEQAMwFoADMB+AAzApQAMwMkADMDMAAzAzgAMwNAADMDSAAzA1AAMwNYADMDXAAzA2gAMwPMADMEUAAzBFgAMwRgADMEaAAzBHAAMwR4ADMEgAAzBIgAMwSQADMFFAAzBSAAMwUsADMFOAAzBUQAMwVQADMFXAAzBWgAMwV0ADMFfAAzB2gAMwdwADMHeAAzB4AAMweMADMHkAAzB5QAMweYADMHnAAzB6QAMwesADMHsAAzB7QAMwe8ADMHwAAzCawAMwm0ADMJvAAzCcQAMwnQADMJ1AAzCdgAMwncADMJ4AAzCegAMwnwADMJ9AAzCfgAMwoAADMKBAAzC/AAMwv4ADMMBAAzDAwAMwwYADMMHAAzDCAAMwwkADMMKAAzDDAAMww4ADMMPAAzDEAAMwxIADMMTAAzDLAAMwy0ADMMuAAzDMAAMw6sADMOtAAzDrwAMw7EADMO0AAzDtQAMw7YADMO3AAzDuAAMw7oADMO8AAzDvQAMw74ADMPAAAzDwQAMxDwADMQ+AAzEQAAMxEIADMRFAAzERgAMxEcADMRIAAzESQAMxEsADMRNAAzETgAMxE8ADMRRAAzEUgAMxM0ADMTPAAzE0QAMxNMADMTWAAzE1wAMxNgADMTZAAzE2gAMxNwADMTeAAzE3wAMxOAADMTiAAzE4wAMxV4ADMVgAAzFYgAMxWQADMVnAAzFaAAMxWkADMVqAAzFawAMxW0ADMVvAAzFcAAMxXEADMVzAAzFdAAMxe8ADMXxAAzF8wAMxfUADMX4AAzF+QAMxfoADMX7AAzF/AAMxf4ADMYAAAzGAQAMxgIADMYEAAzGBQAMxk4ADMZyAAzGmQAMxr0ADMbAAAzGwwAMxsUADMbHAAzGyQAMxssADMbMAAzGzwAMxugADMcFAAzHCAAMxwsADMcOAAzHEQAMxxQADMcXAAzHGgAMxzcADMc6AAzHPQAMx0AADMdDAAzHRgAMx0kADMdMAAzHTgAMx8kADMfLAAzHzgAMx9AADMfTAAzH1AAMx9UADMfWAAzH1wAMx9kADMfcAAzH3QAMx94ADMfgAAzH4QAMyFwADMheAAzIYQAMyGMADMhmAAzIZwAMyGgADMhpAAzIagAMyGwADMhvAAzIcAAMyHEADMhzAAzIdAAMyO8ADMjxAAzI9AAMyPYADMj5AAzI+gAMyPsADMj8AAzI/QAMyP8ADMkCAAzJAwAMyQQADMkGAAzJBwAMyYIADMmEAAzJhwAMyYkADMmMAAzJjQAMyY4ADMmPAAzJkAAMyZIADMmVAAzJlgAMyZcADMmZAAzJmgAMyh0ADMpBAAzKZQAMyogADMqvAAzKzwAMyvYADMsdAAzLPQAMy2EADMuFAAzLhwAMy4oADMuMAAzLjgAMy5AADMuTAAzLlgAMy5gADMuaAAzLnQAMy58ADMuhAAzLpAAMy6cADMuoAAzLrQAMy8YADMvLAAzLzQAMy9IADMvVAAzL1wAMzCAADMxEAAzMawAMzI8ADMySAAzMlAAMzJYADMyYAAzMmgAMzJwADMydAAzMoAAMzLkADMzeAAzM4AAMzOIADMzkAAzM5gAMzOgADMzqAAzM7AAMzO4ADMzwAAzNFQAMzRgADM0bAAzNHgAMzSEADM0kAAzNJwAMzSoADM0tAAzNMAAMzTIADM2tAAzNrwAMzbIADM20AAzNtwAMzbgADM25AAzNugAMzbsADM29AAzNvwAMzcAADM3BAAzNwwAMzcQADM3VAAzN1gAMzdgADM5TAAzOVQAMzlcADM5ZAAzOXAAMzl0ADM5eAAzOXwAMzmAADM5iAAzOZAAMzmUADM5mAAzOaAAMzmkADM7kAAzO5gAMzukADM7rAAzO7gAMzu8ADM7wAAzO8QAMzvIADM70AAzO9gAMzvcADM74AAzO+gAMzvsADM8MAAzPDQAMzw8ADM+KAAzPjAAMz44ADM+QAAzPkwAMz5QADM+VAAzPlgAMz5cADM+ZAAzPmwAMz5wADM+dAAzPnwAMz6AADNAbAAzQHQAM0CAADNAiAAzQJQAM0CYADNAnAAzQKAAM0CkADNArAAzQLQAM0C4ADNAvAAzQMQAM0DIADNBDAAzQRAAM0EYADNDBAAzQwwAM0MUADNDHAAzQygAM0MsADNDMAAzQzQAM0M4ADNDQAAzQ0gAM0NMADNDUAAzQ1gAM0NcADNFSAAzRVAAM0VcADNFZAAzRXAAM0V0ADNFeAAzRXwAM0WAADNFiAAzRZAAM0WUADNFmAAzRaAAM0WkADNGCAAzRgwAM0YQADNGGAAzSAQAM0gMADNIFAAzSBwAM0goADNILAAzSDAAM0g0ADNIOAAzSEAAM0hIADNITAAzSFAAM0hYADNIXAAzSkgAM0pQADNKXAAzSmQAM0pwADNKdAAzSngAM0p8ADNKgAAzSogAM0qQADNKlAAzSpgAM0qgADNKpAAzSyAAM0uEADNLyAAzS9QAM0vgADNL7AAzS/gAM0w8ADNMSAAzTFQAM0xgADNMbAAzTHQAM0zIADNNMAAzTZwAM04AADNQTAAzUNgAM1FYADNR2AAzUeAAM1HoADNR8AAzUfgAM1IEADNSCAAzUgwAM1IYADNSHAAzUiQAM1IoADNSMAAzUjwAM1JAADNSRAAzUlAAM1JUADNSeAAzUtwAM1MAADNTCAAzUxAAM1M0ADNTQAAzU0wAM1NUADNUeAAzVQgAM1WkADNWNAAzVkAAM1ZIADNWUAAzVlgAM1ZgADNWaAAzVmwAM1Z4ADNW3AAzV2AAM1doADNXcAAzV3gAM1eAADNXiAAzV5AAM1eYADNXoAAzWCQAM1gwADNYPAAzWEgAM1hUADNYYAAzWGwAM1h4ADNYhAAzWIwAM1p4ADNagAAzWogAM1qQADNanAAzWqAAM1qkADNaqAAzWqwAM1q0ADNavAAzWsAAM1rEADNazAAzWtAAM1y8ADNcxAAzXMwAM1zUADNc4AAzXOQAM1zoADNc7AAzXPAAM1z4ADNdAAAzXQQAM10IADNdEAAzXRQAM18AADNfCAAzXxQAM18cADNfKAAzXywAM18wADNfNAAzXzgAM19AADNfSAAzX0wAM19QADNfWAAzX1wAM1/AADNfxAAzX8gAM1/QADNhvAAzYcQAM2HMADNh1AAzYeAAM2HkADNh6AAzYewAM2HwADNh+AAzYgAAM2IEADNiCAAzYhAAM2IUADNkAAAzZAgAM2QQADNkGAAzZCQAM2QoADNkLAAzZDAAM2Q0ADNkPAAzZEQAM2RIADNkTAAzZFQAM2RYADNmRAAzZkwAM2ZUADNmXAAzZmgAM2ZsADNmcAAzZnQAM2Z4ADNmgAAzZogAM2aMADNmkAAzZpgAM2acADNoiAAzaJAAM2iYADNooAAzaKwAM2iwADNotAAzaLgAM2i8ADNoxAAzaMwAM2jQADNo1AAzaNwAM2jgADNqzAAzatQAM2rcADNq5AAzavAAM2r0ADNq+AAzavwAM2sAADNrCAAzaxAAM2sUADNrGAAzayAAM2skADNsSAAzbNgAM210ADNuBAAzbhAAM24YADNuIAAzbigAM24wADNuOAAzbjwAM25IADNurAAzbyAAM28oADNvMAAzbzgAM29AADNvSAAzb1AAM29YADNvzAAzb9gAM2/kADNv8AAzb/wAM3AIADNwFAAzcCAAM3AoADNyFAAzchwAM3IkADNyLAAzcjgAM3I8ADNyQAAzckQAM3JIADNyUAAzclgAM3JcADNyYAAzcmgAM3JsADN0WAAzdGAAM3RoADN0cAAzdHwAM3SAADN0hAAzdIgAM3SMADN0lAAzdJwAM3SgADN0pAAzdKwAM3SwADN2nAAzdqQAM3asADN2tAAzdsAAM3bEADN2yAAzdswAM3bQADN22AAzduAAM3bkADN26AAzdvAAM3b0ADN44AAzeOgAM3jwADN4+AAzeQQAM3kIADN5DAAzeRAAM3kUADN5HAAzeSQAM3koADN5LAAzeTQAM3k4ADN7JAAzeywAM3s0ADN7PAAze0gAM3tMADN7UAAze1QAM3tYADN7YAAze2gAM3tsADN7cAAze3gAM3t8ADN9aAAzfXAAM314ADN9gAAzfYwAM32QADN9lAAzfZgAM32cADN9pAAzfawAM32wADN9tAAzfbwAM33AADN/rAAzf7QAM3+8ADN/xAAzf9AAM3/UADN/2AAzf9wAM3/gADN/6AAzf/AAM3/0ADN/+AAzgAAAM4AEADOCUAAzgtwAM4NcADOD3AAzg+QAM4PsADOD9AAzg/wAM4QIADOEDAAzhBAAM4QcADOEIAAzhCgAM4QsADOENAAzhEAAM4READOESAAzhFQAM4RYADOEbAAzhNAAM4T0ADOE/AAzhQQAM4UoADOFNAAzhUAAM4VIADOGbAAzhvwAM4eYADOIKAAziDQAM4g8ADOIRAAziEwAM4hUADOIXAAziGAAM4hsADOI0AAziVQAM4lcADOJZAAziWwAM4l0ADOJfAAziYQAM4mMADOJlAAzihgAM4okADOKMAAzijwAM4pIADOKVAAzimAAM4psADOKeAAzioAAM4xsADOMdAAzjHwAM4yEADOMkAAzjJQAM4yYADOMnAAzjKAAM4yoADOMsAAzjLQAM4y4ADOMwAAzjMQAM46wADOOuAAzjsAAM47IADOO1AAzjtgAM47cADOO4AAzjuQAM47sADOO9AAzjvgAM478ADOPBAAzjwgAM5D0ADOQ/AAzkQgAM5EQADORHAAzkSAAM5EkADORKAAzkSwAM5E0ADORPAAzkUAAM5FEADORTAAzkVAAM5G0ADORuAAzkbwAM5HEADOTsAAzk7gAM5PAADOTyAAzk9QAM5PYADOT3AAzk+AAM5PkADOT7AAzk/QAM5P4ADOT/AAzlAQAM5QIADOV9AAzlfwAM5YEADOWDAAzlhgAM5YcADOWIAAzliQAM5YoADOWMAAzljgAM5Y8ADOWQAAzlkgAM5ZMADOYOAAzmEAAM5hIADOYUAAzmFwAM5hgADOYZAAzmGgAM5hsADOYdAAzmHwAM5iAADOYhAAzmIwAM5iQADOafAAzmoQAM5qMADOalAAzmqAAM5qkADOaqAAzmqwAM5qwADOauAAzmsAAM5rEADOayAAzmtAAM5rUADOcwAAznMgAM5zQADOc2AAznOQAM5zoADOc7AAznPAAM5z0ADOc/AAznQQAM50IADOdDAAznRQAM50YADOePAAznswAM59oADOf+AAzoAQAM6AMADOgFAAzoBwAM6AkADOgLAAzoDAAM6A8ADOgoAAzoRQAM6EcADOhJAAzoSwAM6E0ADOhPAAzoUQAM6FMADOhwAAzocwAM6HYADOh5AAzofAAM6H8ADOiCAAzohQAM6IcADOkCAAzpBAAM6QYADOkIAAzpCwAM6QwADOkNAAzpDgAM6Q8ADOkRAAzpEwAM6RQADOkVAAzpFwAM6RgADOmTAAzplQAM6ZcADOmZAAzpnAAM6Z0ADOmeAAzpnwAM6aAADOmiAAzppAAM6aUADOmmAAzpqAAM6akADOokAAzqJgAM6igADOoqAAzqLQAM6i4ADOovAAzqMAAM6jEADOozAAzqNQAM6jYADOo3AAzqOQAM6joADOq1AAzqtwAM6rkADOq7AAzqvgAM6r8ADOrAAAzqwQAM6sIADOrEAAzqxgAM6scADOrIAAzqygAM6ssADOtGAAzrSAAM60oADOtMAAzrTwAM61AADOtRAAzrUgAM61MADOtVAAzrVwAM61gADOtZAAzrWwAM61wADOvXAAzr2QAM69sADOvdAAzr4AAM6+EADOviAAzr4wAM6+QADOvmAAzr6AAM6+kADOvqAAzr7AAM6+0ADOxoAAzsagAM7GwADOxuAAzscQAM7HIADOxzAAzsdAAM7HUADOx3AAzseQAM7HoADOx7AAzsfQAM7H4ADO0RAAztNAAM7VQADO10AAztdgAM7XgADO16AAztfAAM7X8ADO2AAAztgQAM7YQADO2FAAzthwAM7YgADO2KAAztjQAM7Y4ADO2PAAztkgAM7ZMADO2YAAztsQAM7boADO28AAztvgAM7ccADO3KAAztzQAM7c8ADO4YAAzuPAAM7mMADO6HAAzuigAM7owADO6OAAzukAAM7pIADO6UAAzulQAM7pgADO6xAAzu0gAM7tQADO7WAAzu2AAM7toADO7cAAzu3gAM7uAADO7iAAzvAwAM7wYADO8JAAzvDAAM7w8ADO8SAAzvFQAM7xgADO8bAAzvHQAM75gADO+aAAzvnAAM754ADO+hAAzvogAM76MADO+kAAzvpQAM76cADO+pAAzvqgAM76sADO+tAAzvrgAM8CkADPArAAzwLQAM8C8ADPAyAAzwMwAM8DQADPA1AAzwNgAM8DgADPA6AAzwOwAM8DwADPA+AAzwPwAM8LoADPC8AAzwvwAM8MEADPDEAAzwxQAM8MYADPDHAAzwyAAM8MoADPDMAAzwzQAM8M4ADPDQAAzw0QAM8OoADPDrAAzw7AAM8O4ADPFpAAzxawAM8W0ADPFvAAzxcgAM8XMADPF0AAzxdQAM8XYADPF4AAzxegAM8XsADPF8AAzxfgAM8X8ADPH6AAzx/AAM8f4ADPIAAAzyAwAM8gQADPIFAAzyBgAM8gcADPIJAAzyCwAM8gwADPINAAzyDwAM8hAADPKLAAzyjQAM8o8ADPKRAAzylAAM8pUADPKWAAzylwAM8pgADPKaAAzynAAM8p0ADPKeAAzyoAAM8qEADPMcAAzzHgAM8yAADPMiAAzzJQAM8yYADPMnAAzzKAAM8ykADPMrAAzzLQAM8y4ADPMvAAzzMQAM8zIADPOtAAzzrwAM87EADPOzAAzztgAM87cADPO4AAzzuQAM87oADPO8AAzzvgAM878ADPPAAAzzwgAM88MADPQMAAz0MAAM9FcADPR7AAz0fgAM9IAADPSCAAz0hAAM9IYADPSIAAz0iQAM9IwADPSlAAz0wgAM9MQADPTGAAz0yAAM9MoADPTMAAz0zgAM9NAADPTtAAz08AAM9PMADPT2AAz0+QAM9PwADPT/AAz1AgAM9QQADPV/AAz1gQAM9YMADPWFAAz1iAAM9YkADPWKAAz1iwAM9YwADPWOAAz1kAAM9ZEADPWSAAz1lAAM9ZUADPYQAAz2EgAM9hQADPYWAAz2GQAM9hoADPYbAAz2HAAM9h0ADPYfAAz2IQAM9iIADPYjAAz2JQAM9iYADPahAAz2owAM9qUADPanAAz2qgAM9qsADPasAAz2rQAM9q4ADPawAAz2sgAM9rMADPa0AAz2tgAM9rcADPcyAAz3NAAM9zYADPc4AAz3OwAM9zwADPc9AAz3PgAM9z8ADPdBAAz3QwAM90QADPdFAAz3RwAM90gADPfDAAz3xQAM98cADPfJAAz3zAAM980ADPfOAAz3zwAM99AADPfSAAz31AAM99UADPfWAAz32AAM99kADPhUAAz4VgAM+FkADPhbAAz4XgAM+F8ADPhgAAz4YQAM+GIADPhkAAz4ZgAM+GcADPhoAAz4agAM+GsADPh6AAz49QAM+PcADPj5AAz4+wAM+P4ADPj/AAz5AAAM+QEADPkCAAz5BAAM+QYADPkHAAz5CAAM+QoADPkLAAz5ngAM+cEADPnhAAz6AQAM+gMADPoFAAz6BwAM+gkADPoMAAz6DQAM+g4ADPoRAAz6EgAM+hQADPoVAAz6GAAM+hsADPocAAz6HQAM+iAADPohAAz6JgAM+j8ADPpIAAz6SgAM+k0ADPpWAAz6WQAM+lwADPpeAAz6pwAM+ssADPryAAz7FgAM+xkADPsbAAz7HQAM+x8ADPshAAz7IwAM+yQADPsnAAz7QAAM+2EADPtjAAz7ZQAM+2cADPtpAAz7awAM+20ADPtvAAz7cQAM+5IADPuVAAz7mAAM+5sADPueAAz7oQAM+6QADPunAAz7qgAM+6wADPwnAAz8KQAM/CsADPwtAAz8MAAM/DEADPwyAAz8MwAM/DQADPw2AAz8OAAM/DkADPw6AAz8PAAM/D0ADPy4AAz8ugAM/LwADPy+AAz8wQAM/MIADPzDAAz8xAAM/MUADPzHAAz8yQAM/MoADPzLAAz8zQAM/M4ADP1JAAz9SwAM/U4ADP1QAAz9UwAM/VQADP1VAAz9VgAM/VcADP1ZAAz9WwAM/VwADP1dAAz9XwAM/WAADP15AAz9egAM/XsADP19AAz9+AAM/foADP38AAz9/gAM/gEADP4CAAz+AwAM/gQADP4FAAz+BwAM/gkADP4KAAz+CwAM/g0ADP4OAAz+iQAM/osADP6NAAz+jwAM/pIADP6TAAz+lAAM/pUADP6WAAz+mAAM/poADP6bAAz+nAAM/p4ADP6fAAz/GgAM/xwADP8eAAz/IAAM/yMADP8kAAz/JQAM/yYADP8nAAz/KQAM/ysADP8sAAz/LQAM/y8ADP8wAAz/qwAM/60ADP+vAAz/sQAM/7QADP+1AAz/tgAM/7cADP+4AAz/ugAM/7wADP+9AAz/vgAM/8AADP/BAA0APAANAD4ADQBAAA0AQgANAEUADQBGAA0ARwANAEgADQBJAA0ASwANAE0ADQBOAA0ATwANAFEADQBSAA0AmwANAL8ADQDmAA0BCgANAQ0ADQEQAA0BEgANARQADQEWAA0BGAANARkADQEcAA0BNQANAVIADQFVAA0BWAANAVsADQFeAA0BYQANAWQADQFnAA0BhAANAYcADQGKAA0BjQANAZAADQGTAA0BlgANAZkADQGbAA0CFgANAhgADQIbAA0CHQANAiAADQIhAA0CIgANAiMADQIkAA0CJgANAikADQIqAA0CKwANAi0ADQIuAA0CqQANAqsADQKuAA0CsAANArMADQK0AA0CtQANArYADQK3AA0CuQANArwADQK9AA0CvgANAsAADQLBAA0DPAANAz4ADQNBAA0DQwANA0YADQNHAA0DSAANA0kADQNKAA0DTAANA08ADQNQAA0DUQANA1MADQNUAA0DzwANA9EADQPUAA0D1gANA9kADQPaAA0D2wANA9wADQPdAA0D3wANA+IADQPjAA0D5AANA+YADQPnAA0EYgANBGQADQRmAA0EaAANBGsADQRsAA0EbQANBG4ADQRvAA0EcQANBHQADQR1AA0EdgANBHgADQR5AA0E9AANBPYADQT4AA0E+gANBP0ADQT+AA0E/wANBQAADQUBAA0FAwANBQYADQUHAA0FCAANBQoADQULAA0FhgANBYgADQWLAA0FjQANBZAADQWRAA0FkgANBZMADQWUAA0FlgANBZkADQWaAA0FmwANBZ0ADQWeAA0FrwANBbAADQWyAA0GLQANBi8ADQYxAA0GMwANBjYADQY3AA0GOAANBjkADQY6AA0GPAANBj8ADQZAAA0GQQANBkMADQZEAA0GvwANBsEADQbDAA0GxQANBsgADQbJAA0GygANBssADQbMAA0GzgANBtEADQbSAA0G0wANBtUADQbWAA0HUQANB1MADQdWAA0HWAANB1sADQdcAA0HXQANB14ADQdfAA0HYQANB2QADQdlAA0HZgANB2gADQdpAA0H/AANCB8ADQg/AA0IXwANCGEADQhjAA0IZQANCGcADQhqAA0IawANCGwADQhvAA0IcAANCHIADQhzAA0IdQANCHgADQh5AA0IegANCH0ADQh+AA0IhwANCKAADQipAA0IqwANCK0ADQi2AA0IuQANCLwADQi+AA0JBwANCSsADQlSAA0JdgANCXkADQl7AA0JfQANCX8ADQmBAA0JgwANCYQADQmHAA0JoAANCcEADQnDAA0JxQANCccADQnJAA0JywANCc0ADQnPAA0J0QANCfIADQn1AA0J+AANCfsADQn+AA0KAQANCgQADQoHAA0KCgANCgwADQqHAA0KiQANCosADQqNAA0KkAANCpEADQqSAA0KkwANCpQADQqWAA0KmAANCpkADQqaAA0KnAANCp0ADQsYAA0LGgANCxwADQseAA0LIQANCyIADQsjAA0LJAANCyUADQsnAA0LKQANCyoADQsrAA0LLQANCy4ADQupAA0LqwANC64ADQuwAA0LswANC7QADQu1AA0LtgANC7cADQu5AA0LuwANC7wADQu9AA0LvwANC8AADQvZAA0L2gANC9sADQvdAA0MWAANDFoADQxcAA0MXgANDGEADQxiAA0MYwANDGQADQxlAA0MZwANDGkADQxqAA0MawANDG0ADQxuAA0M6QANDOsADQztAA0M7wANDPIADQzzAA0M9AANDPUADQz2AA0M+AANDPoADQz7AA0M/AANDP4ADQz/AA0NegANDXwADQ1+AA0NgAANDYMADQ2EAA0NhQANDYYADQ2HAA0NiQANDYsADQ2MAA0NjQANDY8ADQ2QAA0OCwANDg0ADQ4PAA0OEQANDhQADQ4VAA0OFgANDhcADQ4YAA0OGgANDhwADQ4dAA0OHgANDiAADQ4hAA0OnAANDp4ADQ6gAA0OogANDqUADQ6mAA0OpwANDqgADQ6pAA0OqwANDq0ADQ6uAA0OrwANDrEADQ6yAA0O+wANDx8ADQ9GAA0PagAND20ADQ9vAA0PcQAND3MADQ91AA0PdwAND3gADQ97AA0PlAAND7EADQ+zAA0PtQAND7cADQ+5AA0PuwAND70ADQ+/AA0P3AAND98ADQ/iAA0P5QAND+gADQ/rAA0P7gAND/EADQ/zAA0QbgANEHAADRByAA0QdAANEHcADRB4AA0QeQANEHoADRB7AA0QfQANEH8ADRCAAA0QgQANEIMADRCEAA0Q/wANEQEADREDAA0RBQANEQgADREJAA0RCgANEQsADREMAA0RDgANERAADRERAA0REgANERQADREVAA0RkAANEZIADRGUAA0RlgANEZkADRGaAA0RmwANEZwADRGdAA0RnwANEaEADRGiAA0RowANEaUADRGmAA0SIQANEiMADRIlAA0SJwANEioADRIrAA0SLAANEi0ADRIuAA0SMAANEjIADRIzAA0SNAANEjYADRI3AA0SsgANErQADRK2AA0SuAANErsADRK8AA0SvQANEr4ADRK/AA0SwQANEsMADRLEAA0SxQANEscADRLIAA0TQwANE0UADRNIAA0TSgANE00ADRNOAA0TTwANE1AADRNRAA0TUwANE1UADRNWAA0TVwANE1kADRNaAA0TeQANE/QADRP2AA0T+AANE/oADRP9AA0T/gANE/8ADRQAAA0UAQANFAMADRQFAA0UBgANFAcADRQJAA0UCgANFBsADRQcAA0UHgANFJkADRSbAA0UnQANFJ8ADRSiAA0UowANFKQADRSlAA0UpgANFKgADRSrAA0UrAANFK0ADRSvAA0UsAANFSsADRUtAA0VLwANFTEADRU0AA0VNQANFTYADRU3AA0VOAANFToADRU9AA0VPgANFT8ADRVBAA0VQgANFb0ADRW/AA0VwgANFcQADRXHAA0VyAANFckADRXKAA0VywANFc0ADRXQAA0V0QANFdIADRXUAA0V1QANFeYADRXnAA0V6QANFmwADRaQAA0WtAANFtcADRb+AA0XHgANF0UADRdsAA0XjAANF7AADRfUAA0X1gANF9kADRfbAA0X3QANF98ADRfiAA0X5QANF+cADRfpAA0X7AANF+4ADRfwAA0X8wANF/YADRf3AA0X/AANGBUADRgaAA0YHAANGCEADRgkAA0YJgANGG8ADRiTAA0YugANGN4ADRjhAA0Y4wANGOUADRjnAA0Y6QANGOsADRjsAA0Y7wANGQgADRktAA0ZLwANGTEADRkzAA0ZNQANGTcADRk5AA0ZOwANGT0ADRk/AA0ZZAANGWcADRlqAA0ZbQANGXAADRlzAA0ZdgANGXkADRl8AA0ZfwANGYEADRn8AA0Z/gANGgEADRoDAA0aBgANGgcADRoIAA0aCQANGgoADRoMAA0aDgANGg8ADRoQAA0aEgANGhMADRokAA0aJQANGicADRqiAA0apAANGqYADRqoAA0aqwANGqwADRqtAA0argANGq8ADRqxAA0aswANGrQADRq1AA0atwANGrgADRszAA0bNQANGzgADRs6AA0bPQANGz4ADRs/AA0bQAANG0EADRtDAA0bRQANG0YADRtHAA0bSQANG0oADRtbAA0bXAANG14ADRvZAA0b2wANG90ADRvfAA0b4gANG+MADRvkAA0b5QANG+YADRvoAA0b6gANG+sADRvsAA0b7gANG+8ADRxqAA0cbAANHG8ADRxxAA0cdAANHHUADRx2AA0cdwANHHgADRx6AA0cfAANHH0ADRx+AA0cgAANHIEADRySAA0ckwANHJUADR0QAA0dEgANHRQADR0WAA0dGQANHRoADR0bAA0dHAANHR0ADR0fAA0dIQANHSIADR0jAA0dJQANHSYADR2hAA0dowANHaYADR2oAA0dqwANHawADR2tAA0drgANHa8ADR2xAA0dswANHbQADR21AA0dtwANHbgADR3RAA0d0gANHdMADR3VAA0eUAANHlIADR5UAA0eVgANHlkADR5aAA0eWwANHlwADR5dAA0eXwANHmEADR5iAA0eYwANHmUADR5mAA0e4QANHuMADR7mAA0e6AANHusADR7sAA0e7QANHu4ADR7vAA0e8QANHvMADR70AA0e9QANHvcADR74AA0fEQANHyoADR8rAA0fLAANHy4ADR8/AA0fRAANH0cADR9JAA0fggANH4UADR+HAA0figANH40ADR+QAA0fkwANH5wADSA/AA0gYwANIIcADSCnAA0gzgANIPUADSEVAA0hPAANIWAADSGDAA0hqgANIc4ADSHyAA0iFgANIj0ADSI+AA0iQAANIkIADSJFAA0iRwANIkoADSJMAA0iTgANIlEADSJTAA0iVQANIlgADSJbAA0iXQANIl8ADSJhAA0iZAANImcADSJqAA0ibwANIogADSKNAA0ijwANIpQADSKXAA0imQANIuIADSMGAA0jLQANI1EADSNUAA0jVgANI1gADSNaAA0jXAANI14ADSNfAA0jYgANI3sADSOgAA0jogANI6QADSOmAA0jqAANI6oADSOsAA0jrgANI7AADSOyAA0j1wANI9oADSPdAA0j4AANI+MADSPmAA0j6QANI+wADSPvAA0j8gANI/QADSRvAA0kcQANJHQADSR2AA0keQANJHoADSR7AA0kfAANJH0ADSR/AA0kgQANJIIADSSDAA0khQANJIYADSSXAA0kmAANJJoADSUVAA0lFwANJRkADSUbAA0lHgANJR8ADSUgAA0lIQANJSIADSUkAA0lJgANJScADSUoAA0lKgANJSsADSWmAA0lqAANJasADSWtAA0lsAANJbEADSWyAA0lswANJbQADSW2AA0luAANJbkADSW6AA0lvAANJb0ADSXOAA0lzwANJdEADSZMAA0mTgANJlAADSZSAA0mVQANJlYADSZXAA0mWAANJlkADSZbAA0mXQANJl4ADSZfAA0mYQANJmIADSbdAA0m3wANJuIADSbkAA0m5wANJugADSbpAA0m6gANJusADSbtAA0m7wANJvAADSbxAA0m8wANJvQADScFAA0nBgANJwgADSeDAA0nhQANJ4cADSeJAA0njAANJ40ADSeOAA0njwANJ5AADSeSAA0nlAANJ5UADSeWAA0nmAANJ5kADSgUAA0oFgANKBkADSgbAA0oHgANKB8ADSggAA0oIQANKCIADSgkAA0oJgANKCcADSgoAA0oKgANKCsADShEAA0oRQANKEYADShIAA0owwANKMUADSjHAA0oyQANKMwADSjNAA0ozgANKM8ADSjQAA0o0gANKNQADSjVAA0o1gANKNgADSjZAA0pVAANKVYADSlZAA0pWwANKV4ADSlfAA0pYAANKWEADSliAA0pZAANKWYADSlnAA0paAANKWoADSlrAA0pegANKZMADSmgAA0powANKaYADSmpAA0ptgANKbkADSm8AA0pvwANKcEADSnYAA0p6wANKfQADSqHAA0qqgANKsoADSrqAA0q7AANKu4ADSrwAA0q8gANKvUADSr2AA0q9wANKvoADSr7AA0q/QANKv4ADSsAAA0rAwANKwQADSsFAA0rCAANKwkADSsOAA0rJwANKzAADSsyAA0rNAANKz0ADStAAA0rQwANK0UADSuOAA0rsgANK9kADSv9AA0sAAANLAIADSwEAA0sBgANLAgADSwKAA0sCwANLA4ADSwnAA0sSAANLEoADSxMAA0sTgANLFAADSxSAA0sVAANLFYADSxYAA0seQANLHwADSx/AA0sggANLIUADSyIAA0siwANLI4ADSyRAA0skwANLQ4ADS0QAA0tEgANLRQADS0XAA0tGAANLRkADS0aAA0tGwANLR0ADS0fAA0tIAANLSEADS0jAA0tJAANLZ8ADS2hAA0towANLaUADS2oAA0tqQANLaoADS2rAA0trAANLa4ADS2wAA0tsQANLbIADS20AA0ttQANLjAADS4yAA0uNQANLjcADS46AA0uOwANLjwADS49AA0uPgANLkAADS5CAA0uQwANLkQADS5GAA0uRwANLmAADS5hAA0uYgANLmQADS7fAA0u4QANLuMADS7lAA0u6AANLukADS7qAA0u6wANLuwADS7uAA0u8AANLvEADS7yAA0u9AANLvUADS9wAA0vcgANL3QADS92AA0veQANL3oADS97AA0vfAANL30ADS9/AA0vgQANL4IADS+DAA0vhQANL4YADTABAA0wAwANMAUADTAHAA0wCgANMAsADTAMAA0wDQANMA4ADTAQAA0wEgANMBMADTAUAA0wFgANMBcADTCSAA0wlAANMJYADTCYAA0wmwANMJwADTCdAA0wngANMJ8ADTChAA0wowANMKQADTClAA0wpwANMKgADTEjAA0xJQANMScADTEpAA0xLAANMS0ADTEuAA0xLwANMTAADTEyAA0xNAANMTUADTE2AA0xOAANMTkADTGCAA0xpgANMc0ADTHxAA0x9AANMfYADTH4AA0x+gANMfwADTH+AA0x/wANMgIADTIbAA0yOAANMjoADTI8AA0yPgANMkAADTJCAA0yRAANMkYADTJjAA0yZgANMmkADTJsAA0ybwANMnIADTJ1AA0yeAANMnoADTL1AA0y9wANMvkADTL7AA0y/gANMv8ADTMAAA0zAQANMwIADTMEAA0zBgANMwcADTMIAA0zCgANMwsADTOGAA0ziAANM4oADTOMAA0zjwANM5AADTORAA0zkgANM5MADTOVAA0zlwANM5gADTOZAA0zmwANM5wADTQXAA00GQANNBsADTQdAA00IAANNCEADTQiAA00IwANNCQADTQmAA00KAANNCkADTQqAA00LAANNC0ADTSoAA00qgANNK0ADTSvAA00sgANNLMADTS0AA00tQANNLYADTS4AA00ugANNLsADTS8AA00vgANNL8ADTU6AA01PAANNT4ADTVAAA01QwANNUQADTVFAA01RgANNUcADTVJAA01SwANNUwADTVNAA01TwANNVAADTXLAA01zQANNc8ADTXRAA011AANNdUADTXWAA011wANNdgADTXaAA013AANNd0ADTXeAA014AANNeEADTZcAA02XgANNmAADTZiAA02ZQANNmYADTZnAA02aAANNmkADTZrAA02bQANNm4ADTZvAA02cQANNnIADTcFAA03KAANN0gADTdoAA03agANN2wADTduAA03cAANN3MADTd0AA03dQANN3gADTd5AA03ewANN3wADTd+AA03gQANN4IADTeDAA03hgANN4cADTeQAA03qQANN7IADTe0AA03tgANN78ADTfCAA03xQANN8cADTgQAA04NAANOFsADTh/AA04ggANOIQADTiGAA04iAANOIoADTiMAA04jQANOJAADTipAA04ygANOMwADTjOAA040AANONIADTjUAA041gANONgADTjaAA04+wANOP4ADTkBAA05BAANOQcADTkKAA05DQANORAADTkTAA05FQANOZAADTmSAA05lAANOZYADTmZAA05mgANOZsADTmcAA05nQANOZ8ADTmhAA05ogANOaMADTmlAA05pgANOiEADTojAA06JQANOicADToqAA06KwANOiwADTotAA06LgANOjAADToyAA06MwANOjQADTo2AA06NwANOrIADTq0AA06twANOrkADTq8AA06vQANOr4ADTq/AA06wAANOsIADTrEAA06xQANOsYADTrIAA06yQANOuIADTrjAA065AANOuYADTthAA07YwANO2UADTtnAA07agANO2sADTtsAA07bQANO24ADTtwAA07cgANO3MADTt0AA07dgANO3cADTvyAA079AANO/YADTv4AA07+wANO/wADTv9AA07/gANO/8ADTwBAA08AwANPAQADTwFAA08BwANPAgADTyDAA08hQANPIcADTyJAA08jAANPI0ADTyOAA08jwANPJAADTySAA08lAANPJUADTyWAA08mAANPJkADT0UAA09FgANPRgADT0aAA09HQANPR4ADT0fAA09IAANPSEADT0jAA09JQANPSYADT0nAA09KQANPSoADT2lAA09pwANPakADT2rAA09rgANPa8ADT2wAA09sQANPbIADT20AA09tgANPbcADT24AA09ugANPbsADT4EAA0+KAANPk8ADT5zAA0+dgANPngADT56AA0+fAANPn4ADT6AAA0+gQANPoQADT6dAA0+ugANPrwADT6+AA0+wAANPsIADT7EAA0+xgANPsgADT7lAA0+6AANPusADT7uAA0+8QANPvQADT73AA0++gANPvwADT93AA0/eQANP3sADT99AA0/gAANP4EADT+CAA0/gwANP4QADT+GAA0/iAANP4kADT+KAA0/jAANP40ADUAIAA1ACgANQAwADUAOAA1AEQANQBIADUATAA1AFAANQBUADUAXAA1AGQANQBoADUAbAA1AHQANQB4ADUCZAA1AmwANQJ0ADUCfAA1AogANQKMADUCkAA1ApQANQKYADUCoAA1AqgANQKsADUCsAA1ArgANQK8ADUEqAA1BLAANQS8ADUExAA1BNAANQTUADUE2AA1BNwANQTgADUE6AA1BPAANQT0ADUE+AA1BQAANQUEADUG8AA1BvgANQcAADUHCAA1BxQANQcYADUHHAA1ByAANQckADUHLAA1BzQANQc4ADUHPAA1B0QANQdIADUJNAA1CTwANQlEADUJTAA1CVgANQlcADUJYAA1CWQANQloADUJcAA1CXgANQl8ADUJgAA1CYgANQmMADULeAA1C4AANQuIADULkAA1C5wANQugADULpAA1C6gANQusADULtAA1C7wANQvAADULxAA1C8wANQvQADUOHAA1DqgANQ8oADUPqAA1D7AANQ+4ADUPwAA1D8gANQ/UADUP2AA1D9wANQ/oADUP7AA1D/QANQ/4ADUQAAA1EAwANRAQADUQFAA1ECAANRAkADUQOAA1EJwANRDAADUQyAA1ENAANRD0ADURAAA1EQwANREUADUSOAA1EsgANRNkADUT9AA1FAAANRQIADUUEAA1FBgANRQgADUUKAA1FCwANRQ4ADUUnAA1FSAANRUoADUVMAA1FTgANRVAADUVSAA1FVAANRVYADUVYAA1FeQANRXwADUV/AA1FggANRYUADUWIAA1FiwANRY4ADUWRAA1FkwANRg4ADUYQAA1GEgANRhQADUYXAA1GGAANRhkADUYaAA1GGwANRh0ADUYfAA1GIAANRiEADUYjAA1GJAANRp8ADUahAA1GowANRqUADUaoAA1GqQANRqoADUarAA1GrAANRq4ADUawAA1GsQANRrIADUa0AA1GtQANRzAADUcyAA1HNQANRzcADUc6AA1HOwANRzwADUc9AA1HPgANR0AADUdCAA1HQwANR0QADUdGAA1HRwANR2AADUdhAA1HYgANR2QADUffAA1H4QANR+MADUflAA1H6AANR+kADUfqAA1H6wANR+wADUfuAA1H8AANR/EADUfyAA1H9AANR/UADUhwAA1IcgANSHQADUh2AA1IeQANSHoADUh7AA1IfAANSH0ADUh/AA1IgQANSIIADUiDAA1IhQANSIYADUkBAA1JAwANSQUADUkHAA1JCgANSQsADUkMAA1JDQANSQ4ADUkQAA1JEgANSRMADUkUAA1JFgANSRcADUmSAA1JlAANSZYADUmYAA1JmwANSZwADUmdAA1JngANSZ8ADUmhAA1JowANSaQADUmlAA1JpwANSagADUojAA1KJQANSicADUopAA1KLAANSi0ADUouAA1KLwANSjAADUoyAA1KNAANSjUADUo2AA1KOAANSjkADUqCAA1KpgANSs0ADUrxAA1K9AANSvYADUr4AA1K+gANSvwADUr+AA1K/wANSwIADUsbAA1LOAANSzoADUs8AA1LPgANS0AADUtCAA1LRAANS0YADUtjAA1LZgANS2kADUtsAA1LbwANS3IADUt1AA1LeAANS3oADUv1AA1L9wANS/kADUv7AA1L/gANS/8ADUwAAA1MAQANTAIADUwEAA1MBgANTAcADUwIAA1MCgANTAsADUyGAA1MiAANTIoADUyMAA1MjwANTJAADUyRAA1MkgANTJMADUyVAA1MlwANTJgADUyZAA1MmwANTJwADU0XAA1NGQANTRsADU0dAA1NIAANTSEADU0iAA1NIwANTSQADU0mAA1NKAANTSkADU0qAA1NLAANTS0ADU2oAA1NqgANTa0ADU2vAA1NsgANTbMADU20AA1NtQANTbYADU24AA1NugANTbsADU28AA1NvgANTb8ADU46AA1OPAANTj4ADU5AAA1OQwANTkQADU5FAA1ORgANTkcADU5JAA1OSwANTkwADU5NAA1OTwANTlAADU7LAA1OzQANTs8ADU7RAA1O1AANTtUADU7WAA1O1wANTtgADU7aAA1O3AANTt0ADU7eAA1O4AANTuEADU9cAA1PXgANT2AADU9iAA1PZQANT2YADU9nAA1PaAANT2kADU9rAA1PbQANT24ADU9vAA1PcQANT3IADU+DAA1PhAANT4YADU+XAA1PpAANT6cADU+qAA1PrQANT68ADU/oAA1P6wANT+0ADU/wAA1P8wANT/YADU/5AA1QfAANUKAADVDEAA1Q5wANUQ4ADVEuAA1RVQANUXwADVGcAA1RwAANUeQADVHmAA1R6QANUesADVHtAA1R7wANUfIADVH1AA1R9wANUfkADVH8AA1R/gANUgAADVIDAA1SBgANUgcADVIQAA1SKQANUi4ADVIwAA1SNQANUjgADVI6AA1SgwANUqcADVLOAA1S8gANUvUADVL3AA1S+QANUvsADVL9AA1S/wANUwAADVMDAA1THAANU0EADVNDAA1TRQANU0cADVNJAA1TSwANU00ADVNPAA1TUQANU1MADVN4AA1TewANU34ADVOBAA1ThAANU4cADVOKAA1TjQANU5AADVOTAA1TlQANVBAADVQSAA1UFQANVBcADVQaAA1UGwANVBwADVQdAA1UHgANVCAADVQiAA1UIwANVCQADVQmAA1UJwANVDgADVQ5AA1UOwANVLYADVS4AA1UugANVLwADVS/AA1UwAANVMEADVTCAA1UwwANVMUADVTHAA1UyAANVMkADVTLAA1UzAANVUcADVVJAA1VTAANVU4ADVVRAA1VUgANVVMADVVUAA1VVQANVVcADVVZAA1VWgANVVsADVVdAA1VXgANVW8ADVVwAA1VcgANVe0ADVXvAA1V8QANVfMADVX2AA1V9wANVfgADVX5AA1V+gANVfwADVX+AA1V/wANVgAADVYCAA1WAwANVn4ADVaAAA1WgwANVoUADVaIAA1WiQANVooADVaLAA1WjAANVo4ADVaQAA1WkQANVpIADVaUAA1WlQANVqYADVanAA1WqQANVyQADVcmAA1XKAANVyoADVctAA1XLgANVy8ADVcwAA1XMQANVzMADVc1AA1XNgANVzcADVc5AA1XOgANV7UADVe3AA1XugANV7wADVe/AA1XwAANV8EADVfCAA1XwwANV8UADVfHAA1XyAANV8kADVfLAA1XzAANV+UADVfmAA1X5wANV+kADVhkAA1YZgANWGgADVhqAA1YbQANWG4ADVhvAA1YcAANWHEADVhzAA1YdQANWHYADVh3AA1YeQANWHoADVj1AA1Y9wANWPoADVj8AA1Y/wANWQAADVkBAA1ZAgANWQMADVkFAA1ZBwANWQgADVkJAA1ZCwANWQwADVkiAA1ZOwANWUAADVlDAA1ZSAANWUsADVlNAA1ZWQANWewADVoPAA1aLwANWk8ADVpRAA1aUwANWlUADVpXAA1aWgANWlsADVpcAA1aXwANWmAADVpiAA1aYwANWmUADVpoAA1aaQANWmoADVptAA1abgANWncADVqQAA1amQANWpsADVqdAA1apgANWqkADVqsAA1argANWvcADVsbAA1bQgANW2YADVtpAA1bawANW20ADVtvAA1bcQANW3MADVt0AA1bdwANW5AADVuxAA1bswANW7UADVu3AA1buQANW7sADVu9AA1bvwANW8EADVviAA1b5QANW+gADVvrAA1b7gANW/EADVv0AA1b9wANW/oADVv8AA1cdwANXHkADVx7AA1cfQANXIAADVyBAA1cggANXIMADVyEAA1chgANXIgADVyJAA1cigANXIwADVyNAA1dCAANXQoADV0MAA1dDgANXREADV0SAA1dEwANXRQADV0VAA1dFwANXRkADV0aAA1dGwANXR0ADV0eAA1dmQANXZsADV2eAA1doAANXaMADV2kAA1dpQANXaYADV2nAA1dqQANXasADV2sAA1drQANXa8ADV2wAA1dyQANXcoADV3LAA1dzQANXkgADV5KAA1eTAANXk4ADV5RAA1eUgANXlMADV5UAA1eVQANXlcADV5ZAA1eWgANXlsADV5dAA1eXgANXtkADV7bAA1e3QANXt8ADV7iAA1e4wANXuQADV7lAA1e5gANXugADV7qAA1e6wANXuwADV7uAA1e7wANX2oADV9sAA1fbgANX3AADV9zAA1fdAANX3UADV92AA1fdwANX3kADV97AA1ffAANX30ADV9/AA1fgAANX/sADV/9AA1f/wANYAEADWAEAA1gBQANYAYADWAHAA1gCAANYAoADWAMAA1gDQANYA4ADWAQAA1gEQANYIwADWCOAA1gkAANYJIADWCVAA1glgANYJcADWCYAA1gmQANYJsADWCdAA1gngANYJ8ADWChAA1gogANYOsADWEPAA1hNgANYVoADWFdAA1hXwANYWEADWFjAA1hZQANYWcADWFoAA1hawANYYQADWGhAA1howANYaUADWGnAA1hqQANYasADWGtAA1hrwANYcwADWHPAA1h0gANYdUADWHYAA1h2wANYd4ADWHhAA1h4wANYl4ADWJgAA1iYgANYmQADWJnAA1iaAANYmkADWJqAA1iawANYm0ADWJvAA1icAANYnEADWJzAA1idAANYu8ADWLxAA1i8wANYvUADWL4AA1i+QANYvoADWL7AA1i/AANYv4ADWMAAA1jAQANYwIADWMEAA1jBQANY4AADWOCAA1jhAANY4YADWOJAA1jigANY4sADWOMAA1jjQANY48ADWORAA1jkgANY5MADWOVAA1jlgANZBEADWQTAA1kFgANZBgADWQbAA1kHAANZB0ADWQeAA1kHwANZCEADWQjAA1kJAANZCUADWQnAA1kKAANZKMADWSlAA1kpwANZKkADWSsAA1krQANZK4ADWSvAA1ksAANZLIADWS0AA1ktQANZLYADWS4AA1kuQANZTQADWU2AA1lOAANZToADWU9AA1lPgANZT8ADWVAAA1lQQANZUMADWVFAA1lRgANZUcADWVJAA1lSgANZcUADWXHAA1lyQANZcsADWXOAA1lzwANZdAADWXRAA1l0gANZdQADWXWAA1l1wANZdgADWXaAA1l2wANZewADWXxAA1l9AANZfYADWX7AA1mNAANZjcADWY5AA1mPAANZj8ADWZCAA1mRQANZsgADWbsAA1nEAANZzMADWdaAA1negANZ6EADWfIAA1n6AANaAwADWgwAA1oMgANaDUADWg3AA1oOQANaDsADWg+AA1oQQANaEMADWhFAA1oSAANaEoADWhMAA1oTwANaFIADWhTAA1oWAANaHEADWh2AA1oeAANaH0ADWiAAA1oggANaMsADWjvAA1pFgANaToADWk9AA1pPwANaUEADWlDAA1pRQANaUcADWlIAA1pSwANaWQADWmJAA1piwANaY0ADWmPAA1pkQANaZMADWmVAA1plwANaZkADWmbAA1pwAANacMADWnGAA1pyQANacwADWnPAA1p0gANadUADWnYAA1p2wANad0ADWpYAA1qWgANal0ADWpfAA1qYgANamMADWpkAA1qZQANamYADWpoAA1qagANamsADWpsAA1qbgANam8ADWqAAA1qgQANaoMADWr+AA1rAAANawIADWsEAA1rBwANawgADWsJAA1rCgANawsADWsNAA1rDwANaxAADWsRAA1rEwANaxQADWuPAA1rkQANa5QADWuWAA1rmQANa5oADWubAA1rnAANa50ADWufAA1roQANa6IADWujAA1rpQANa6YADWu3AA1ruAANa7oADWw1AA1sNwANbDkADWw7AA1sPgANbD8ADWxAAA1sQQANbEIADWxEAA1sRgANbEcADWxIAA1sSgANbEsADWzGAA1syAANbMsADWzNAA1s0AANbNEADWzSAA1s0wANbNQADWzWAA1s2AANbNkADWzaAA1s3AANbN0ADWzuAA1s7wANbPEADW1sAA1tbgANbXAADW1yAA1tdQANbXYADW13AA1teAANbXkADW17AA1tfQANbX4ADW1/AA1tgQANbYIADW39AA1t/wANbgIADW4EAA1uBwANbggADW4JAA1uCgANbgsADW4NAA1uDwANbhAADW4RAA1uEwANbhQADW4tAA1uLgANbi8ADW4xAA1urAANbq4ADW6wAA1usgANbrUADW62AA1utwANbrgADW65AA1uuwANbr0ADW6+AA1uvwANbsEADW7CAA1vPQANbz8ADW9CAA1vRAANb0cADW9IAA1vSQANb0oADW9LAA1vTQANb08ADW9QAA1vUQANb1MADW9UAA1vbAANb4UADW+SAA1vlQANb5gADW+bAA1vqAANb6sADW+uAA1vsQANb7MADW+/AA1vywANb9gADXBrAA1wjgANcK4ADXDOAA1w0AANcNIADXDUAA1w1gANcNkADXDaAA1w2wANcN4ADXDfAA1w4QANcOIADXDkAA1w5wANcOgADXDpAA1w7AANcO0ADXDyAA1xCwANcRQADXEWAA1xGAANcSEADXEkAA1xJwANcSkADXFyAA1xlgANcb0ADXHhAA1x5AANceYADXHoAA1x6gANcewADXHuAA1x7wANcfIADXILAA1yLAANci4ADXIwAA1yMgANcjQADXI2AA1yOAANcjoADXI8AA1yXQANcmAADXJjAA1yZgANcmkADXJsAA1ybwANcnIADXJ1AA1ydwANcvIADXL0AA1y9gANcvgADXL7AA1y/AANcv0ADXL+AA1y/wANcwEADXMDAA1zBAANcwUADXMHAA1zCAANc4MADXOFAA1zhwANc4kADXOMAA1zjQANc44ADXOPAA1zkAANc5IADXOUAA1zlQANc5YADXOYAA1zmQANdBQADXQWAA10GQANdBsADXQeAA10HwANdCAADXQhAA10IgANdCQADXQmAA10JwANdCgADXQqAA10KwANdEQADXRFAA10RgANdEgADXTDAA10xQANdMcADXTJAA10zAANdM0ADXTOAA10zwANdNAADXTSAA101AANdNUADXTWAA102AANdNkADXVUAA11VgANdVgADXVaAA11XQANdV4ADXVfAA11YAANdWEADXVjAA11ZQANdWYADXVnAA11aQANdWoADXXlAA115wANdekADXXrAA117gANde8ADXXwAA118QANdfIADXX0AA119gANdfcADXX4AA11+gANdfsADXZ2AA12eAANdnoADXZ8AA12fwANdoAADXaBAA12ggANdoMADXaFAA12hwANdogADXaJAA12iwANdowADXcHAA13CQANdwsADXcNAA13EAANdxEADXcSAA13EwANdxQADXcWAA13GAANdxkADXcaAA13HAANdx0ADXdmAA13igANd7EADXfVAA132AANd9oADXfcAA133gANd+AADXfiAA134wANd+YADXf/AA14HAANeB4ADXggAA14IgANeCQADXgmAA14KAANeCoADXhHAA14SgANeE0ADXhQAA14UwANeFYADXhZAA14XAANeF4ADXjZAA142wANeN0ADXjfAA144gANeOMADXjkAA145QANeOYADXjoAA146gANeOsADXjsAA147gANeO8ADXlqAA15bAANeW4ADXlwAA15cwANeXQADXl1AA15dgANeXcADXl5AA15ewANeXwADXl9AA15fwANeYAADXn7AA15/QANef8ADXoBAA16BAANegUADXoGAA16BwANeggADXoKAA16DAANeg0ADXoOAA16EAANehEADXqMAA16jgANepEADXqTAA16lgANepcADXqYAA16mQANepoADXqcAA16ngANep8ADXqgAA16ogANeqMADXseAA17IAANeyIADXskAA17JwANeygADXspAA17KgANeysADXstAA17LwANezAADXsxAA17MwANezQADXuvAA17sQANe7MADXu1AA17uAANe7kADXu6AA17uwANe7wADXu+AA17wAANe8EADXvCAA17xAANe8UADXxAAA18QgANfEQADXxGAA18SQANfEoADXxLAA18TAANfE0ADXxPAA18UQANfFIADXxTAA18VQANfFYADXzpAA19DAANfSwADX1MAA19TgANfVAADX1SAA19VAANfVcADX1YAA19WQANfVwADX1dAA19XwANfWAADX1iAA19ZQANfWYADX1nAA19agANfWsADX1wAA19iQANfZIADX2UAA19lgANfZ8ADX2iAA19pQANfacADX3wAA1+FAANfjsADX5fAA1+YgANfmQADX5mAA1+aAANfmoADX5sAA1+bQANfnAADX6JAA1+qgANfqwADX6uAA1+sAANfrIADX60AA1+tgANfrgADX66AA1+2wANft4ADX7hAA1+5AANfucADX7qAA1+7QANfvAADX7zAA1+9QANf3AADX9yAA1/dAANf3YADX95AA1/egANf3sADX98AA1/fQANf38ADX+BAA1/ggANf4MADX+FAA1/hgANgAEADYADAA2ABQANgAcADYAKAA2ACwANgAwADYANAA2ADgANgBAADYASAA2AEwANgBQADYAWAA2AFwANgJIADYCUAA2AlwANgJkADYCcAA2AnQANgJ4ADYCfAA2AoAANgKIADYCkAA2ApQANgKYADYCoAA2AqQANgMIADYDDAA2AxAANgMYADYFBAA2BQwANgUUADYFHAA2BSgANgUsADYFMAA2BTQANgU4ADYFQAA2BUgANgVMADYFUAA2BVgANgVcADYHSAA2B1AANgdYADYHYAA2B2wANgdwADYHdAA2B3gANgd8ADYHhAA2B4wANgeQADYHlAA2B5wANgegADYJjAA2CZQANgmcADYJpAA2CbAANgm0ADYJuAA2CbwANgnAADYJyAA2CdAANgnUADYJ2AA2CeAANgnkADYL0AA2C9gANgvgADYL6AA2C/QANgv4ADYL/AA2DAAANgwEADYMDAA2DBQANgwYADYMHAA2DCQANgwoADYOFAA2DhwANg4kADYOLAA2DjgANg48ADYOQAA2DkQANg5IADYOUAA2DlgANg5cADYOYAA2DmgANg5sADYPkAA2ECAANhC8ADYRTAA2EVgANhFgADYRaAA2EXAANhF4ADYRgAA2EYQANhGQADYR9AA2EmgANhJwADYSeAA2EoAANhKIADYSkAA2EpgANhKgADYTFAA2EyAANhMsADYTOAA2E0QANhNQADYTXAA2E2gANhNwADYVXAA2FWQANhVsADYVdAA2FYAANhWEADYViAA2FYwANhWQADYVmAA2FaAANhWkADYVqAA2FbAANhW0ADYXoAA2F6gANhewADYXuAA2F8QANhfIADYXzAA2F9AANhfUADYX3AA2F+QANhfoADYX7AA2F/QANhf4ADYZ5AA2GewANhn0ADYZ/AA2GggANhoMADYaEAA2GhQANhoYADYaIAA2GigANhosADYaMAA2GjgANho8ADYcKAA2HDAANhw4ADYcQAA2HEwANhxQADYcVAA2HFgANhxcADYcZAA2HGwANhxwADYcdAA2HHwANhyAADYebAA2HnQANh58ADYehAA2HpAANh6UADYemAA2HpwANh6gADYeqAA2HrAANh60ADYeuAA2HsAANh7EADYgsAA2ILgANiDAADYgyAA2INQANiDYADYg3AA2IOAANiDkADYg7AA2IPQANiD4ADYg/AA2IQQANiEIADYi9AA2IvwANiMEADYjDAA2IxgANiMcADYjIAA2IyQANiMoADYjMAA2IzgANiM8ADYjQAA2I0gANiNMADYlmAA2JiQANiakADYnJAA2JywANic0ADYnPAA2J0QANidQADYnVAA2J1gANidkADYnaAA2J3AANid0ADYnfAA2J4gANieMADYnkAA2J5wANiegADYntAA2KBgANig8ADYoRAA2KEwANihwADYofAA2KIgANiiQADYptAA2KkQANirgADYrcAA2K3wANiuEADYrjAA2K5QANiucADYrpAA2K6gANiu0ADYsGAA2LJwANiykADYsrAA2LLQANiy8ADYsxAA2LMwANizUADYs3AA2LWAANi1sADYteAA2LYQANi2QADYtnAA2LagANi20ADYtwAA2LcgANi+0ADYvvAA2L8QANi/MADYv2AA2L9wANi/gADYv5AA2L+gANi/wADYv+AA2L/wANjAAADYwCAA2MAwANjH4ADYyAAA2MggANjIQADYyHAA2MiAANjIkADYyKAA2MiwANjI0ADYyPAA2MkAANjJEADYyTAA2MlAANjQ8ADY0RAA2NFAANjRYADY0ZAA2NGgANjRsADY0cAA2NHQANjR8ADY0hAA2NIgANjSMADY0lAA2NJgANjT8ADY1AAA2NQQANjUMADY2+AA2NwAANjcIADY3EAA2NxwANjcgADY3JAA2NygANjcsADY3NAA2NzwANjdAADY3RAA2N0wANjdQADY5PAA2OUQANjlMADY5VAA2OWAANjlkADY5aAA2OWwANjlwADY5eAA2OYAANjmEADY5iAA2OZAANjmUADY7gAA2O4gANjuQADY7mAA2O6QANjuoADY7rAA2O7AANju0ADY7vAA2O8QANjvIADY7zAA2O9QANjvYADY9xAA2PcwANj3UADY93AA2PegANj3sADY98AA2PfQANj34ADY+AAA2PggANj4MADY+EAA2PhgANj4cADZACAA2QBAANkAYADZAIAA2QCwANkAwADZANAA2QDgANkA8ADZARAA2QEwANkBQADZAVAA2QFwANkBgADZBhAA2QhQANkKwADZDQAA2Q0wANkNUADZDXAA2Q2QANkNsADZDdAA2Q3gANkOEADZD6AA2RFwANkRkADZEbAA2RHQANkR8ADZEhAA2RIwANkSUADZFCAA2RRQANkUgADZFLAA2RTgANkVEADZFUAA2RVwANkVkADZHUAA2R1gANkdgADZHaAA2R3QANkd4ADZHfAA2R4AANkeEADZHjAA2R5QANkeYADZHnAA2R6QANkeoADZJlAA2SZwANkmkADZJrAA2SbgANkm8ADZJwAA2ScQANknIADZJ0AA2SdgANkncADZJ4AA2SegANknsADZL2AA2S+AANkvoADZL8AA2S/wANkwAADZMBAA2TAgANkwMADZMFAA2TBwANkwgADZMJAA2TCwANkwwADZOHAA2TiQANk4wADZOOAA2TkQANk5IADZOTAA2TlAANk5UADZOXAA2TmQANk5oADZObAA2TnQANk54ADZQZAA2UGwANlB0ADZQfAA2UIgANlCMADZQkAA2UJQANlCYADZQoAA2UKgANlCsADZQsAA2ULgANlC8ADZSqAA2UrAANlK4ADZSwAA2UswANlLQADZS1AA2UtgANlLcADZS5AA2UuwANlLwADZS9AA2UvwANlMAADZU7AA2VPQANlT8ADZVBAA2VRAANlUUADZVGAA2VRwANlUgADZVKAA2VTAANlU0ADZVOAA2VUAANlVEADZViAA2VZwANlWoADZVsAA2VcQANlfQADZYYAA2WPAANll8ADZaGAA2WpgANls0ADZb0AA2XFAANlzgADZdcAA2XXgANl2EADZdjAA2XZQANl2cADZdqAA2XbQANl28ADZdxAA2XdAANl3YADZd4AA2XewANl34ADZd/AA2XhAANl50ADZeiAA2XpAANl6kADZesAA2XrgANl/cADZgbAA2YQgANmGYADZhpAA2YawANmG0ADZhvAA2YcQANmHMADZh0AA2YdwANmJAADZi1AA2YtwANmLkADZi7AA2YvQANmL8ADZjBAA2YwwANmMUADZjHAA2Y7AANmO8ADZjyAA2Y9QANmPgADZj7AA2Y/gANmQEADZkEAA2ZBwANmQkADZmEAA2ZhgANmYkADZmLAA2ZjgANmY8ADZmQAA2ZkQANmZIADZmUAA2ZlgANmZcADZmYAA2ZmgANmZsADZmsAA2ZrQANma8ADZoqAA2aLAANmi4ADZowAA2aMwANmjQADZo1AA2aNgANmjcADZo5AA2aOwANmjwADZo9AA2aPwANmkAADZq7AA2avQANmsAADZrCAA2axQANmsYADZrHAA2ayAANmskADZrLAA2azQANms4ADZrPAA2a0QANmtIADZrjAA2a6AANmusADZrtAA2a/gANmw8ADZsSAA2bFQANmxgADZsbAA2bHQANmzkADZtLAA2bXgANm2oADZvlAA2b5wANm+kADZvrAA2b7gANm+8ADZvwAA2b8QANm/IADZv0AA2b9gANm/cADZv4AA2b+gANm/sADZx2AA2ceAANnHsADZx9AA2cgAANnIEADZyCAA2cgwANnIQADZyGAA2ciAANnIkADZyKAA2cjAANnI0ADZyeAA2cnwANnKEADZ0cAA2dHgANnSAADZ0iAA2dJQANnSYADZ0nAA2dKAANnSkADZ0rAA2dLQANnS4ADZ0vAA2dMQANnTIADZ2tAA2drwANnbIADZ20AA2dtwANnbgADZ25AA2dugANnbsADZ29AA2dvwANncAADZ3BAA2dwwANncQADZ3dAA2d3gANnd8ADZ3hAA2eXAANnl4ADZ5gAA2eYgANnmUADZ5mAA2eZwANnmgADZ5pAA2eawANnm0ADZ5uAA2ebwANnnEADZ5yAA2e7QANnu8ADZ7yAA2e9AANnvcADZ74AA2e+QANnvoADZ77AA2e/QANnv8ADZ8AAA2fAQANnwMADZ8EAA2fHAANnzUADZ9mAA2faQANn2wADZ9vAA2fcgANn3UADZ94AA2fewANn34ADZ+BAA2fhAANn4cADZ+KAA2fuwANn74ADZ/BAA2fxAANn8cADZ/KAA2fzQANn9AADZ/TAA2f1gANn9kADZ/cAA2f3wANn+EADZ/9AA2gEQANoCoADaBBAA2gVAANoGwADaCEAA2goAANoLIADaC+AA2hUQANoXQADaGUAA2htAANobYADaG4AA2hugANobwADaG/AA2hwAANocEADaHEAA2hxQANoccADaHIAA2hygANoc0ADaHOAA2hzwANodIADaHTAA2h2AANofEADaH6AA2h/AANof4ADaIHAA2iCgANog0ADaIPAA2iWAANonwADaKjAA2ixwANosoADaLMAA2izgANotAADaLSAA2i1AANotUADaLYAA2i8QANoxIADaMUAA2jFgANoxgADaMaAA2jHAANox4ADaMgAA2jIgANo0MADaNGAA2jSQANo0wADaNPAA2jUgANo1UADaNYAA2jWwANo10ADaPYAA2j2gANo9wADaPeAA2j4QANo+IADaPjAA2j5AANo+UADaPnAA2j6QANo+oADaPrAA2j7QANo+4ADaRpAA2kawANpG0ADaRvAA2kcgANpHMADaR0AA2kdQANpHYADaR4AA2kegANpHsADaR8AA2kfgANpH8ADaT6AA2k/AANpP8ADaUBAA2lBAANpQUADaUGAA2lBwANpQgADaUKAA2lDAANpQ0ADaUOAA2lEAANpREADaUqAA2lKwANpSwADaUuAA2lqQANpasADaWtAA2lrwANpbIADaWzAA2ltAANpbUADaW2AA2luAANpboADaW7AA2lvAANpb4ADaW/AA2mOgANpjwADaY+AA2mQAANpkMADaZEAA2mRQANpkYADaZHAA2mSQANpksADaZMAA2mTQANpk8ADaZQAA2mywANps0ADabPAA2m0QANptQADabVAA2m1gANptcADabYAA2m2gANptwADabdAA2m3gANpuAADabhAA2nXAANp14ADadgAA2nYgANp2UADadmAA2nZwANp2gADadpAA2nawANp20ADaduAA2nbwANp3EADadyAA2n7QANp+8ADafxAA2n8wANp/YADaf3AA2n+AANp/kADaf6AA2n/AANp/4ADaf/AA2oAAANqAIADagDAA2oTAANqHAADaiXAA2ouwANqL4ADajAAA2owgANqMQADajGAA2oyAANqMkADajMAA2o5QANqQIADakEAA2pBgANqQgADakKAA2pDAANqQ4ADakQAA2pLQANqTAADakzAA2pNgANqTkADak8AA2pPwANqUIADalEAA2pvwANqcEADanDAA2pxQANqcgADanJAA2pygANqcsADanMAA2pzgANqdAADanRAA2p0gANqdQADanVAA2qUAANqlIADapUAA2qVgANqlkADapaAA2qWwANqlwADapdAA2qXwANqmEADapiAA2qYwANqmUADapmAA2q4QANquMADarlAA2q5wANquoADarrAA2q7AANqu0ADaruAA2q8AANqvIADarzAA2q9AANqvYADar3AA2rcgANq3QADat3AA2reQANq3wADat9AA2rfgANq38ADauAAA2rggANq4QADauFAA2rhgANq4gADauJAA2sBAANrAYADawIAA2sCgANrA0ADawOAA2sDwANrBAADawRAA2sEwANrBUADawWAA2sFwANrBkADawaAA2slQANrJcADayZAA2smwANrJ4ADayfAA2soAANrKEADayiAA2spAANrKYADaynAA2sqAANrKoADayrAA2tJgANrSgADa0qAA2tLAANrS8ADa0wAA2tMQANrTIADa0zAA2tNQANrTcADa04AA2tOQANrTsADa08AA2tzwANrfIADa4SAA2uMgANrjQADa42AA2uOAANrjoADa49AA2uPgANrj8ADa5CAA2uQwANrkUADa5GAA2uSAANrksADa5MAA2uTQANrlAADa5RAA2uVgANrm8ADa54AA2uegANrnwADa6FAA2uiAANrosADa6NAA2u1gANrvoADa8hAA2vRQANr0gADa9KAA2vTAANr04ADa9QAA2vUgANr1MADa9WAA2vbwANr5AADa+SAA2vlAANr5YADa+YAA2vmgANr5wADa+eAA2voAANr8EADa/EAA2vxwANr8oADa/NAA2v0AANr9MADa/WAA2v2QANr9sADbBWAA2wWAANsFoADbBcAA2wXwANsGAADbBhAA2wYgANsGMADbBlAA2wZwANsGgADbBpAA2wawANsGwADbDnAA2w6QANsOsADbDtAA2w8AANsPEADbDyAA2w8wANsPQADbD2AA2w+AANsPkADbD6AA2w/AANsP0ADbF4AA2xegANsX0ADbF/AA2xggANsYMADbGEAA2xhQANsYYADbGIAA2xigANsYsADbGMAA2xjgANsY8ADbGoAA2xqQANsaoADbGsAA2yJwANsikADbIrAA2yLQANsjAADbIxAA2yMgANsjMADbI0AA2yNgANsjgADbI5AA2yOgANsjwADbI9AA2yuAANsroADbK8AA2yvgANssEADbLCAA2ywwANssQADbLFAA2yxwANsskADbLKAA2yywANss0ADbLOAA2zSQANs0sADbNNAA2zTwANs1IADbNTAA2zVAANs1UADbNWAA2zWAANs1oADbNbAA2zXAANs14ADbNfAA2z2gANs9wADbPeAA2z4AANs+MADbPkAA2z5QANs+YADbPnAA2z6QANs+sADbPsAA2z7QANs+8ADbPwAA20awANtG0ADbRvAA20cQANtHQADbR1AA20dgANtHcADbR4AA20egANtHwADbR9AA20fgANtIAADbSBAA20ygANtO4ADbUVAA21OQANtTwADbU+AA21QAANtUIADbVEAA21RgANtUcADbVKAA21YwANtYAADbWCAA21hAANtYYADbWIAA21igANtYwADbWOAA21qwANta4ADbWxAA21tAANtbcADbW6AA21vQANtcAADbXCAA22PQANtj8ADbZBAA22QwANtkYADbZHAA22SAANtkkADbZKAA22TAANtk4ADbZPAA22UAANtlIADbZTAA22zgANttAADbbSAA221AANttcADbbYAA222QANttoADbbbAA223QANtt8ADbbgAA224QANtuMADbbkAA23XwANt2EADbdjAA23ZQANt2gADbdpAA23agANt2sADbdsAA23bgANt3AADbdxAA23cgANt3QADbd1AA238AANt/IADbf1AA239wANt/oADbf7AA23/AANt/0ADbf+AA24AAANuAIADbgDAA24BAANuAYADbgHAA24ggANuIQADbiGAA24iAANuIsADbiMAA24jQANuI4ADbiPAA24kQANuJMADbiUAA24lQANuJcADbiYAA25EwANuRUADbkXAA25GQANuRwADbkdAA25HgANuR8ADbkgAA25IgANuSQADbklAA25JgANuSgADbkpAA25pAANuaYADbmoAA25qgANua0ADbmuAA25rwANubAADbmxAA25swANubUADbm2AA25twANubkADbm6AA26TQANunAADbqQAA26sAANurIADbq0AA26tgANurgADbq7AA26vAANur0ADbrAAA26wQANusMADbrEAA26xgANuskADbrKAA26ywANus4ADbrPAA261AANuu0ADbr2AA26+AANuvoADbsDAA27BgANuwkADbsLAA27VAANu3gADbufAA27wwANu8YADbvIAA27ygANu8wADbvOAA270AANu9EADbvUAA277QANvA4ADbwQAA28EgANvBQADbwWAA28GAANvBoADbwcAA28HgANvD8ADbxCAA28RQANvEgADbxLAA28TgANvFEADbxUAA28VwANvFkADbzUAA281gANvNgADbzaAA283QANvN4ADbzfAA284AANvOEADbzjAA285QANvOYADbznAA286QANvOoADb1lAA29ZwANvWkADb1rAA29bgANvW8ADb1wAA29cQANvXIADb10AA29dgANvXcADb14AA29egANvXsADb32AA29+AANvfsADb39AA2+AAANvgEADb4CAA2+AwANvgQADb4GAA2+CAANvgkADb4KAA2+DAANvg0ADb4mAA2+JwANvigADb4qAA2+pQANvqcADb6pAA2+qwANvq4ADb6vAA2+sAANvrEADb6yAA2+tAANvrYADb63AA2+uAANvroADb67AA2/NgANvzgADb86AA2/PAANvz8ADb9AAA2/QQANv0IADb9DAA2/RQANv0cADb9IAA2/SQANv0sADb9MAA2/xwANv8kADb/LAA2/zQANv9AADb/RAA2/0gANv9MADb/UAA2/1gANv9gADb/ZAA2/2gANv9wADb/dAA3AWAANwFoADcBcAA3AXgANwGEADcBiAA3AYwANwGQADcBlAA3AZwANwGkADcBqAA3AawANwG0ADcBuAA3A6QANwOsADcDtAA3A7wANwPIADcDzAA3A9AANwPUADcD2AA3A+AANwPoADcD7AA3A/AANwP4ADcD/AA3BSAANwWwADcGTAA3BtwANwboADcG8AA3BvgANwcAADcHCAA3BxAANwcUADcHIAA3B4QANwf4ADcIAAA3CAgANwgQADcIGAA3CCAANwgoADcIMAA3CKQANwiwADcIvAA3CMgANwjUADcI4AA3COwANwj4ADcJAAA3CuwANwr0ADcK/AA3CwQANwsQADcLFAA3CxgANwscADcLIAA3CygANwswADcLNAA3CzgANwtAADcLRAA3DTAANw04ADcNQAA3DUgANw1UADcNWAA3DVwANw1gADcNZAA3DWwANw10ADcNeAA3DXwANw2EADcNiAA3D3QANw98ADcPhAA3D4wANw+YADcPnAA3D6AANw+kADcPqAA3D7AANw+4ADcPvAA3D8AANw/IADcPzAA3EbgANxHAADcRyAA3EdAANxHcADcR4AA3EeQANxHoADcR7AA3EfQANxH8ADcSAAA3EgQANxIMADcSEAA3E/wANxQEADcUDAA3FBQANxQgADcUJAA3FCgANxQsADcUMAA3FDgANxRAADcURAA3FEgANxRQADcUVAA3FkAANxZIADcWUAA3FlgANxZkADcWaAA3FmwANxZwADcWdAA3FnwANxaEADcWiAA3FowANxaUADcWmAA3GIQANxiMADcYlAA3GJwANxioADcYrAA3GLAANxi0ADcYuAA3GMAANxjIADcYzAA3GNAANxjYADcY3AA3GygANxu0ADccNAA3HLQANxy8ADccxAA3HMwANxzUADcc4AA3HOQANxzoADcc9AA3HPgANx0AADcdBAA3HQwANx0YADcdHAA3HSAANx0sADcdMAA3HUQANx2oADcdzAA3HdQANx3cADceAAA3HgwANx4YADceIAA3H0QANx/UADcgcAA3IQAANyEMADchFAA3IRwANyEkADchLAA3ITQANyE4ADchRAA3IagANyIsADciNAA3IjwANyJEADciTAA3IlQANyJcADciZAA3ImwANyLwADci/AA3IwgANyMUADcjIAA3IywANyM4ADcjRAA3I1AANyNYADclRAA3JUwANyVUADclXAA3JWgANyVsADclcAA3JXQANyV4ADclgAA3JYgANyWMADclkAA3JZgANyWcADcniAA3J5AANyeYADcnoAA3J6wANyewADcntAA3J7gANye8ADcnxAA3J8wANyfQADcn1AA3J9wANyfgADcpzAA3KdQANyngADcp6AA3KfQANyn4ADcp/AA3KgAANyoEADcqDAA3KhQANyoYADcqHAA3KiQANyooADcqjAA3KpAANyqUADcqnAA3LIgANyyQADcsmAA3LKAANyysADcssAA3LLQANyy4ADcsvAA3LMQANyzMADcs0AA3LNQANyzcADcs4AA3LswANy7UADcu3AA3LuQANy7wADcu9AA3LvgANy78ADcvAAA3LwgANy8QADcvFAA3LxgANy8gADcvJAA3MRAANzEYADcxIAA3MSgANzE0ADcxOAA3MTwANzFAADcxRAA3MUwANzFUADcxWAA3MVwANzFkADcxaAA3M1QANzNcADczZAA3M2wANzN4ADczfAA3M4AANzOEADcziAA3M5AANzOYADcznAA3M6AANzOoADczrAA3NZgANzWgADc1qAA3NbAANzW8ADc1wAA3NcQANzXIADc1zAA3NdQANzXcADc14AA3NeQANzXsADc18AA3NxQANzekADc4QAA3ONAANzjcADc45AA3OOwANzj0ADc4/AA3OQQANzkIADc5FAA3OXgANznsADc59AA3OfwANzoEADc6DAA3OhQANzocADc6JAA3OpgANzqkADc6sAA3OrwANzrIADc61AA3OuAANzrsADc69AA3POAANzzoADc88AA3PPgANz0EADc9CAA3PQwANz0QADc9FAA3PRwANz0kADc9KAA3PSwANz00ADc9OAA3PyQANz8sADc/NAA3PzwANz9IADc/TAA3P1AANz9UADc/WAA3P2AANz9oADc/bAA3P3AANz94ADc/fAA3QWgAN0FwADdBeAA3QYAAN0GMADdBkAA3QZQAN0GYADdBnAA3QaQAN0GsADdBsAA3QbQAN0G8ADdBwAA3Q6wAN0O0ADdDwAA3Q8gAN0PUADdD2AA3Q9wAN0PgADdD5AA3Q+wAN0P0ADdD+AA3Q/wAN0QEADdECAA3RfQAN0X8ADdGBAA3RgwAN0YYADdGHAA3RiAAN0YkADdGKAA3RjAAN0Y4ADdGPAA3RkAAN0ZIADdGTAA3SDgAN0hAADdISAA3SFAAN0hcADdIYAA3SGQAN0hoADdIbAA3SHQAN0h8ADdIgAA3SIQAN0iMADdIkAA3SnwAN0qEADdKjAA3SpQAN0qgADdKpAA3SqgAN0qsADdKsAA3SrgAN0rAADdKxAA3SsgAN0rQADdK1AA3TSAAN02sADdOLAA3TqwAN060ADdOvAA3TsQAN07MADdO2AA3TtwAN07gADdO7AA3TvAAN074ADdO/AA3TwQAN08QADdPFAA3TxgAN08kADdPKAA3T0wAN0+wADdP1AA3T9wAN0/kADdQCAA3UBQAN1AgADdQKAA3UUwAN1HcADdSeAA3UwgAN1MUADdTHAA3UyQAN1MsADdTNAA3UzwAN1NAADdTTAA3U7AAN1Q0ADdUPAA3VEQAN1RMADdUVAA3VFwAN1RkADdUbAA3VHQAN1T4ADdVBAA3VRAAN1UcADdVKAA3VTQAN1VAADdVTAA3VVgAN1VgADdXTAA3V1QAN1dcADdXZAA3V3AAN1d0ADdXeAA3V3wAN1eAADdXiAA3V5AAN1eUADdXmAA3V6AAN1ekADdZkAA3WZgAN1mgADdZqAA3WbQAN1m4ADdZvAA3WcAAN1nEADdZzAA3WdQAN1nYADdZ3AA3WeQAN1noADdb1AA3W9wAN1voADdb8AA3W/wAN1wAADdcBAA3XAgAN1wMADdcFAA3XBwAN1wgADdcJAA3XCwAN1wwADdclAA3XJgAN1ycADdcpAA3XpAAN16YADdeoAA3XqgAN160ADdeuAA3XrwAN17AADdexAA3XswAN17UADde2AA3XtwAN17kADde6AA3YNQAN2DcADdg5AA3YOwAN2D4ADdg/AA3YQAAN2EEADdhCAA3YRAAN2EYADdhHAA3YSAAN2EoADdhLAA3YxgAN2MgADdjKAA3YzAAN2M8ADdjQAA3Y0QAN2NIADdjTAA3Y1QAN2NcADdjYAA3Y2QAN2NsADdjcAA3ZVwAN2VkADdlbAA3ZXQAN2WAADdlhAA3ZYgAN2WMADdlkAA3ZZgAN2WgADdlpAA3ZagAN2WwADdltAA3Z6AAN2eoADdnsAA3Z7gAN2fEADdnyAA3Z8wAN2fQADdn1AA3Z9wAN2fkADdn6AA3Z+wAN2f0ADdn+AA3aRwAN2msADdqSAA3atgAN2rkADdq7AA3avQAN2r8ADdrBAA3awwAN2sQADdrHAA3a4AAN2v0ADdr/AA3bAQAN2wMADdsFAA3bBwAN2wkADdsLAA3bKAAN2ysADdsuAA3bMQAN2zQADds3AA3bOgAN2z0ADds/AA3bugAN27wADdu+AA3bwAAN28MADdvEAA3bxQAN28YADdvHAA3byQAN28sADdvMAA3bzQAN288ADdvQAA3cSwAN3E0ADdxPAA3cUQAN3FQADdxVAA3cVgAN3FcADdxYAA3cWgAN3FwADdxdAA3cXgAN3GAADdxhAA3c3AAN3N4ADdzgAA3c4gAN3OUADdzmAA3c5wAN3OgADdzpAA3c6wAN3O0ADdzuAA3c7wAN3PEADdzyAA3dbQAN3W8ADd1xAA3dcwAN3XYADd13AA3deAAN3XkADd16AA3dfAAN3X4ADd1/AA3dgAAN3YIADd2DAA3d/gAN3gAADd4CAA3eBAAN3gcADd4IAA3eCQAN3goADd4LAA3eDQAN3g8ADd4QAA3eEQAN3hMADd4UAA3ejwAN3pEADd6TAA3elQAN3pgADd6ZAA3emgAN3psADd6cAA3engAN3qAADd6hAA3eogAN3qQADd6lAA3fIAAN3yIADd8kAA3fJgAN3ykADd8qAA3fKwAN3ywADd8tAA3fLwAN3zEADd8yAA3fMwAN3zUADd82AA3fyQAN3+wADeAMAA3gLAAN4C4ADeAwAA3gMgAN4DQADeA3AA3gOAAN4DkADeA8AA3gPQAN4D8ADeBAAA3gQgAN4EUADeBGAA3gRwAN4EoADeBLAA3gUAAN4GkADeByAA3gdAAN4HYADeB/AA3gggAN4IUADeCHAA3g0AAN4PQADeEbAA3hPwAN4UIADeFEAA3hRgAN4UgADeFKAA3hTAAN4U0ADeFQAA3haQAN4YoADeGMAA3hjgAN4ZAADeGSAA3hlAAN4ZYADeGYAA3hmgAN4bsADeG+AA3hwQAN4cQADeHHAA3hygAN4c0ADeHQAA3h0wAN4dUADeJQAA3iUgAN4lQADeJWAA3iWQAN4loADeJbAA3iXAAN4l0ADeJfAA3iYQAN4mIADeJjAA3iZQAN4mYADeLhAA3i4wAN4uUADeLnAA3i6gAN4usADeLsAA3i7QAN4u4ADeLwAA3i8gAN4vMADeL0AA3i9gAN4vcADeNyAA3jdAAN43cADeN5AA3jfAAN430ADeN+AA3jfwAN44AADeOCAA3jhAAN44UADeOGAA3jiAAN44kADeOiAA3jowAN46QADeOmAA3kIQAN5CMADeQlAA3kJwAN5CoADeQrAA3kLAAN5C0ADeQuAA3kMAAN5DIADeQzAA3kNAAN5DYADeQ3AA3ksgAN5LQADeS2AA3kuAAN5LsADeS8AA3kvQAN5L4ADeS/AA3kwQAN5MMADeTEAA3kxQAN5McADeTIAA3lQwAN5UUADeVHAA3lSQAN5UwADeVNAA3lTgAN5U8ADeVQAA3lUgAN5VQADeVVAA3lVgAN5VgADeVZAA3l1AAN5dYADeXYAA3l2gAN5d0ADeXeAA3l3wAN5eAADeXhAA3l4wAN5eUADeXmAA3l5wAN5ekADeXqAA3mZQAN5mcADeZpAA3mawAN5m4ADeZvAA3mcAAN5nEADeZyAA3mdAAN5nYADeZ3AA3meAAN5noADeZ7AA3mxAAN5ugADecPAA3nMwAN5zYADec4AA3nOgAN5zwADec+AA3nQAAN50EADedEAA3nXQAN53oADed8AA3nfgAN54AADeeCAA3nhAAN54YADeeIAA3npQAN56gADeerAA3nrgAN57EADee0AA3ntwAN57oADee8AA3oNwAN6DkADeg7AA3oPQAN6EAADehBAA3oQgAN6EMADehEAA3oRgAN6EgADehJAA3oSgAN6EwADehNAA3oyAAN6MoADejMAA3ozgAN6NEADejSAA3o0wAN6NQADejVAA3o1wAN6NkADejaAA3o2wAN6N0ADejeAA3pWQAN6VsADeldAA3pXwAN6WIADeljAA3pZAAN6WUADelmAA3paAAN6WoADelrAA3pbAAN6W4ADelvAA3p6gAN6ewADenuAA3p8AAN6fMADen0AA3p9QAN6fYADen3AA3p+QAN6fsADen8AA3p/QAN6f8ADeoAAA3qewAN6n0ADep/AA3qgQAN6oQADeqFAA3qhgAN6ocADeqIAA3qigAN6owADeqNAA3qjgAN6pAADeqRAA3rDAAN6w4ADesQAA3rEgAN6xUADesWAA3rFwAN6xgADesZAA3rGwAN6x0ADeseAA3rHwAN6yEADesiAA3rnQAN658ADeuhAA3rowAN66YADeunAA3rqAAN66kADeuqAA3rrAAN664ADeuvAA3rsAAN67IADeuzAA3sRgAN7GkADeyJAA3sqQAN7KsADeytAA3srwAN7LEADey0AA3stQAN7LYADey5AA3sugAN7LwADey9AA3svwAN7MIADezDAA3sxAAN7McADezIAA3szQAN7OYADezvAA3s8QAN7PMADez8AA3s/wAN7QIADe0EAA3tTQAN7XEADe2YAA3tvAAN7b8ADe3BAA3twwAN7cUADe3HAA3tyQAN7coADe3NAA3t5gAN7gcADe4JAA3uCwAN7g0ADe4PAA3uEQAN7hMADe4VAA3uFwAN7jgADe47AA3uPgAN7kEADe5EAA3uRwAN7koADe5NAA3uUAAN7lIADe7NAA3uzwAN7tEADe7TAA3u1gAN7tcADe7YAA3u2QAN7toADe7cAA3u3gAN7t8ADe7gAA3u4gAN7uMADe9eAA3vYAAN72IADe9kAA3vZwAN72gADe9pAA3vagAN72sADe9tAA3vbwAN73AADe9xAA3vcwAN73QADe/vAA3v8QAN7/QADe/2AA3v+QAN7/oADe/7AA3v/AAN7/0ADe//AA3wAQAN8AIADfADAA3wBQAN8AYADfAfAA3wIAAN8CEADfAjAA3wngAN8KAADfCiAA3wpAAN8KcADfCoAA3wqQAN8KoADfCrAA3wrQAN8K8ADfCwAA3wsQAN8LMADfC0AA3xLwAN8TEADfEzAA3xNQAN8TgADfE5AA3xOgAN8TsADfE8AA3xPgAN8UAADfFBAA3xQgAN8UQADfFFAA3xwAAN8cIADfHEAA3xxgAN8ckADfHKAA3xywAN8cwADfHNAA3xzwAN8dEADfHSAA3x0wAN8dUADfHWAA3yUQAN8lMADfJVAA3yVwAN8loADfJbAA3yXAAN8l0ADfJeAA3yYAAN8mIADfJjAA3yZAAN8mYADfJnAA3y4gAN8uQADfLmAA3y6AAN8usADfLsAA3y7QAN8u4ADfLvAA3y8QAN8vMADfL0AA3y9QAN8vcADfL4AA3zQQAN82UADfOMAA3zsAAN87MADfO1AA3ztwAN87kADfO7AA3zvQAN874ADfPBAA3z2gAN8/cADfP5AA3z+wAN8/0ADfP/AA30AQAN9AMADfQFAA30IgAN9CUADfQoAA30KwAN9C4ADfQxAA30NAAN9DcADfQ5AA30tAAN9LYADfS4AA30ugAN9L0ADfS+AA30vwAN9MAADfTBAA30wwAN9MUADfTGAA30xwAN9MkADfTKAA31RQAN9UcADfVJAA31SwAN9U4ADfVPAA31UAAN9VEADfVSAA31VAAN9VYADfVXAA31WAAN9VoADfVbAA311gAN9dgADfXaAA313AAN9d8ADfXgAA314QAN9eIADfXjAA315QAN9ecADfXoAA316QAN9esADfXsAA32ZwAN9mkADfZrAA32bQAN9nAADfZxAA32cgAN9nMADfZ0AA32dgAN9ngADfZ5AA32egAN9nwADfZ9AA32+AAN9voADfb8AA32/gAN9wEADfcCAA33AwAN9wQADfcFAA33BwAN9wkADfcKAA33CwAN9w0ADfcOAA33iQAN94sADfeNAA33jwAN95IADfeTAA33lAAN95UADfeWAA33mAAN95oADfebAA33nAAN954ADfefAA34GgAN+BwADfgeAA34IAAN+CMADfgkAA34JQAN+CYADfgnAA34KQAN+CsADfgsAA34LQAN+C8ADfgwAA34wwAN+OYADfkGAA35JgAN+SgADfkqAA35LAAN+S4ADfkxAA35MgAN+TMADfk2AA35NwAN+TkADfk6AA35PAAN+T8ADflAAA35QQAN+UQADflFAA35SgAN+WMADflsAA35bgAN+XAADfl5AA35fAAN+X8ADfmBAA35ygAN+e4ADfoVAA36OQAN+jwADfo+AA36QAAN+kIADfpEAA36RgAN+kcADfpKAA36YwAN+oQADfqGAA36iAAN+ooADfqMAA36jgAN+pAADfqSAA36lAAN+rUADfq4AA36uwAN+r4ADfrBAA36xAAN+scADfrKAA36zQAN+s8ADftKAA37TAAN+04ADftQAA37UwAN+1QADftVAA37VgAN+1cADftZAA37WwAN+1wADftdAA37XwAN+2AADfvbAA373QAN+98ADfvhAA375AAN++UADfvmAA375wAN++gADfvqAA377AAN++0ADfvuAA378AAN+/EADfxsAA38bgAN/HEADfxzAA38dgAN/HcADfx4AA38eQAN/HoADfx8AA38fgAN/H8ADfyAAA38ggAN/IMADfycAA38nQAN/J4ADfygAA39GwAN/R0ADf0fAA39IQAN/SQADf0lAA39JgAN/ScADf0oAA39KgAN/SwADf0tAA39LgAN/TAADf0xAA39rAAN/a4ADf2wAA39sgAN/bUADf22AA39twAN/bgADf25AA39uwAN/b0ADf2+AA39vwAN/cEADf3CAA3+PQAN/j8ADf5BAA3+QwAN/kYADf5HAA3+SAAN/kkADf5KAA3+TAAN/k4ADf5PAA3+UAAN/lIADf5TAA3+zgAN/tAADf7SAA3+1AAN/tcADf7YAA3+2QAN/toADf7bAA3+3QAN/t8ADf7gAA3+4QAN/uMADf7kAA3/XwAN/2EADf9jAA3/ZQAN/2gADf9pAA3/agAN/2sADf9sAA3/bgAN/3AADf9xAA3/cgAN/3QADf91AA3/vgAN/+IADgAJAA4ALQAOADAADgAyAA4ANAAOADYADgA4AA4AOgAOADsADgA+AA4AVwAOAHQADgB2AA4AeAAOAHoADgB8AA4AfgAOAIAADgCCAA4AnwAOAKIADgClAA4AqAAOAKsADgCuAA4AsQAOALQADgC2AA4BMQAOATMADgE1AA4BNwAOAToADgE7AA4BPAAOAT0ADgE+AA4BQAAOAUIADgFDAA4BRAAOAUYADgFHAA4BwgAOAcQADgHGAA4ByAAOAcsADgHMAA4BzQAOAc4ADgHPAA4B0QAOAdMADgHUAA4B1QAOAdcADgHYAA4CUwAOAlUADgJXAA4CWQAOAlwADgJdAA4CXgAOAl8ADgJgAA4CYgAOAmQADgJlAA4CZgAOAmgADgJpAA4C5AAOAuYADgLpAA4C6wAOAu4ADgLvAA4C8AAOAvEADgLyAA4C9AAOAvYADgL3AA4C+AAOAvoADgL7AA4DdgAOA3gADgN6AA4DfAAOA38ADgOAAA4DgQAOA4IADgODAA4DhQAOA4cADgOIAA4DiQAOA4sADgOMAA4EBwAOBAkADgQLAA4EDQAOBBAADgQRAA4EEgAOBBMADgQUAA4EFgAOBBgADgQZAA4EGgAOBBwADgQdAA4EmAAOBJoADgScAA4EngAOBKEADgSiAA4EowAOBKQADgSlAA4EpwAOBKkADgSqAA4EqwAOBK0ADgSuAA4FQQAOBWQADgWEAA4FpAAOBaYADgWoAA4FqgAOBawADgWvAA4FsAAOBbEADgW0AA4FtQAOBbcADgW4AA4FuwAOBb4ADgW/AA4FwAAOBcMADgXEAA4FyQAOBeIADgXrAA4F7QAOBfAADgX5AA4F/AAOBf8ADgYBAA4GSgAOBm4ADgaVAA4GuQAOBrwADga+AA4GwAAOBsIADgbEAA4GxgAOBscADgbKAA4G4wAOBwQADgcGAA4HCAAOBwoADgcMAA4HDgAOBxAADgcSAA4HFAAOBzUADgc4AA4HOwAOBz4ADgdBAA4HRAAOB0cADgdKAA4HTQAOB08ADgfKAA4HzAAOB84ADgfQAA4H0wAOB9QADgfVAA4H1gAOB9cADgfZAA4H2wAOB9wADgfdAA4H3wAOB+AADghbAA4IXQAOCF8ADghhAA4IZAAOCGUADghmAA4IZwAOCGgADghqAA4IbAAOCG0ADghuAA4IcAAOCHEADgjsAA4I7gAOCPEADgjzAA4I9gAOCPcADgj4AA4I+QAOCPoADgj8AA4I/gAOCP8ADgkAAA4JAgAOCQMADgkcAA4JHQAOCR4ADgkgAA4JmwAOCZ0ADgmfAA4JoQAOCaQADgmlAA4JpgAOCacADgmoAA4JqgAOCawADgmtAA4JrgAOCbAADgmxAA4KLAAOCi4ADgowAA4KMgAOCjUADgo2AA4KNwAOCjgADgo5AA4KOwAOCj0ADgo+AA4KPwAOCkEADgpCAA4KvQAOCr8ADgrBAA4KwwAOCsYADgrHAA4KyAAOCskADgrKAA4KzAAOCs4ADgrPAA4K0AAOCtIADgrTAA4LTgAOC1AADgtSAA4LVAAOC1cADgtYAA4LWQAOC1oADgtbAA4LXQAOC18ADgtgAA4LYQAOC2MADgtkAA4L3wAOC+EADgvjAA4L5QAOC+gADgvpAA4L6gAOC+sADgvsAA4L7gAOC/AADgvxAA4L8gAOC/QADgv1AA4MPgAODGIADgyJAA4MrQAODLAADgyzAA4MtQAODLcADgy5AA4MuwAODLwADgy/AA4M2AAODPUADgz4AA4M+wAODP4ADg0BAA4NBAAODQcADg0KAA4NJwAODSoADg0tAA4NMAAODTMADg02AA4NOQAODTwADg0+AA4NuQAODbsADg2+AA4NwAAODcMADg3EAA4NxQAODcYADg3HAA4NyQAODcwADg3NAA4NzgAODdAADg3RAA4OTAAODk4ADg5RAA4OUwAODlYADg5XAA4OWAAODlkADg5aAA4OXAAODl8ADg5gAA4OYQAODmMADg5kAA4O3wAODuEADg7kAA4O5gAODukADg7qAA4O6wAODuwADg7tAA4O7wAODvIADg7zAA4O9AAODvYADg73AA4PcgAOD3QADg93AA4PeQAOD3wADg99AA4PfgAOD38ADg+AAA4PggAOD4UADg+GAA4PhwAOD4kADg+KAA4QDQAOEDEADhBVAA4QeAAOEJ8ADhC/AA4Q5gAOEQ0ADhEtAA4RUQAOEXUADhF3AA4RegAOEXwADhF+AA4RgAAOEYMADhGGAA4RiAAOEYoADhGNAA4RjwAOEZEADhGUAA4RlwAOEZgADhGdAA4RtgAOEbsADhG9AA4RwgAOEcUADhHHAA4SEAAOEjQADhJbAA4SfwAOEoIADhKEAA4ShgAOEogADhKKAA4SjAAOEo0ADhKQAA4SqQAOEs4ADhLQAA4S0gAOEtQADhLWAA4S2AAOEtoADhLcAA4S3gAOEuAADhMFAA4TCAAOEwsADhMOAA4TEQAOExQADhMXAA4TGgAOEx0ADhMgAA4TIgAOE50ADhOfAA4TogAOE6QADhOnAA4TqAAOE6kADhOqAA4TqwAOE60ADhOvAA4TsAAOE7EADhOzAA4TtAAOE8UADhPGAA4TyAAOFEMADhRFAA4URwAOFEkADhRMAA4UTQAOFE4ADhRPAA4UUAAOFFIADhRUAA4UVQAOFFYADhRYAA4UWQAOFNQADhTWAA4U2QAOFNsADhTeAA4U3wAOFOAADhThAA4U4gAOFOQADhTmAA4U5wAOFOgADhTqAA4U6wAOFPwADhUBAA4VBAAOFQYADhUXAA4VJAAOFScADhUqAA4VLQAOFS8ADhVLAA4VXQAOFXAADhXrAA4V7QAOFe8ADhXxAA4V9AAOFfUADhX2AA4V9wAOFfgADhX6AA4V/AAOFf0ADhX+AA4WAAAOFgEADhZ8AA4WfgAOFoEADhaDAA4WhgAOFocADhaIAA4WiQAOFooADhaMAA4WjgAOFo8ADhaQAA4WkgAOFpMADhakAA4WpQAOFqcADhciAA4XJAAOFyYADhcoAA4XKwAOFywADhctAA4XLgAOFy8ADhcxAA4XMwAOFzQADhc1AA4XNwAOFzgADhezAA4XtQAOF7gADhe6AA4XvQAOF74ADhe/AA4XwAAOF8EADhfDAA4XxQAOF8YADhfHAA4XyQAOF8oADhfjAA4X5AAOF+UADhfnAA4YYgAOGGQADhhmAA4YaAAOGGsADhhsAA4YbQAOGG4ADhhvAA4YcQAOGHMADhh0AA4YdQAOGHcADhh4AA4Y8wAOGPUADhj4AA4Y+gAOGP0ADhj+AA4Y/wAOGQAADhkBAA4ZAwAOGQUADhkGAA4ZBwAOGQkADhkKAA4ZHQAOGTYADhljAA4ZZgAOGWkADhlsAA4ZbwAOGXIADhl1AA4ZeAAOGXsADhl+AA4ZgQAOGYQADhmxAA4ZtAAOGbcADhm6AA4ZvQAOGcAADhnDAA4ZxgAOGckADhnMAA4ZzwAOGdIADhnUAA4Z8AAOGgMADhoVAA4aJwAOGi8ADhpTAA4abwAOGoIADhsVAA4bOAAOG1gADht4AA4begAOG3wADht+AA4bgAAOG4MADhuEAA4bhQAOG4gADhuJAA4biwAOG4wADhuOAA4bkQAOG5IADhuTAA4blgAOG5cADhucAA4btQAOG74ADhvAAA4bwgAOG8sADhvOAA4b0QAOG9MADhwcAA4cQAAOHGcADhyLAA4cjgAOHJAADhySAA4clAAOHJYADhyYAA4cmQAOHJwADhy1AA4c1gAOHNgADhzaAA4c3AAOHN4ADhzgAA4c4gAOHOQADhzmAA4dBwAOHQoADh0NAA4dEAAOHRMADh0WAA4dGQAOHRwADh0fAA4dIQAOHZwADh2eAA4doAAOHaIADh2lAA4dpgAOHacADh2oAA4dqQAOHasADh2tAA4drgAOHa8ADh2xAA4dsgAOHi0ADh4vAA4eMQAOHjMADh42AA4eNwAOHjgADh45AA4eOgAOHjwADh4+AA4ePwAOHkAADh5CAA4eQwAOHr4ADh7AAA4ewwAOHsUADh7IAA4eyQAOHsoADh7LAA4ezAAOHs4ADh7QAA4e0QAOHtIADh7UAA4e1QAOHu4ADh7vAA4e8AAOHvIADh9tAA4fbwAOH3EADh9zAA4fdgAOH3cADh94AA4feQAOH3oADh98AA4ffgAOH38ADh+AAA4fggAOH4MADh/+AA4gAAAOIAIADiAEAA4gBwAOIAgADiAJAA4gCgAOIAsADiANAA4gDwAOIBAADiARAA4gEwAOIBQADiCPAA4gkQAOIJMADiCVAA4gmAAOIJkADiCaAA4gmwAOIJwADiCeAA4goAAOIKEADiCiAA4gpAAOIKUADiEgAA4hIgAOISQADiEmAA4hKQAOISoADiErAA4hLAAOIS0ADiEvAA4hMQAOITIADiEzAA4hNQAOITYADiGxAA4hswAOIbUADiG3AA4hugAOIbsADiG8AA4hvQAOIb4ADiHAAA4hwgAOIcMADiHEAA4hxgAOIccADiIQAA4iNAAOIlsADiJ/AA4iggAOIoQADiKGAA4iiAAOIooADiKMAA4ijQAOIpAADiKpAA4ixgAOIsgADiLKAA4izAAOIs4ADiLQAA4i0gAOItQADiLxAA4i9AAOIvcADiL6AA4i/QAOIwAADiMDAA4jBgAOIwgADiODAA4jhQAOI4gADiOKAA4jjQAOI44ADiOPAA4jkAAOI5EADiOTAA4jlQAOI5YADiOXAA4jmQAOI5oADiQVAA4kFwAOJBkADiQbAA4kHgAOJB8ADiQgAA4kIQAOJCIADiQkAA4kJgAOJCcADiQoAA4kKgAOJCsADiSmAA4kqAAOJKoADiSsAA4krwAOJLAADiSxAA4ksgAOJLMADiS1AA4ktwAOJLgADiS5AA4kuwAOJLwADiU3AA4lOQAOJTwADiU+AA4lQQAOJUIADiVDAA4lRAAOJUUADiVHAA4lSQAOJUoADiVLAA4lTQAOJU4ADiXJAA4lywAOJc0ADiXPAA4l0gAOJdMADiXUAA4l1QAOJdYADiXYAA4l2gAOJdsADiXcAA4l3gAOJd8ADiZaAA4mXAAOJl4ADiZgAA4mYwAOJmQADiZlAA4mZgAOJmcADiZpAA4mawAOJmwADiZtAA4mbwAOJnAADibrAA4m7QAOJu8ADibxAA4m9AAOJvUADib2AA4m9wAOJvgADib6AA4m/AAOJv0ADib+AA4nAAAOJwEADieUAA4ntwAOJ9cADif3AA4n+QAOJ/sADif9AA4n/wAOKAIADigDAA4oBAAOKAcADigIAA4oCgAOKAsADigNAA4oEAAOKBEADigSAA4oFQAOKBYADigbAA4oNAAOKD0ADig/AA4oQQAOKEoADihNAA4oUAAOKFIADiibAA4ovwAOKOYADikKAA4pDQAOKQ8ADikRAA4pEwAOKRUADikXAA4pGAAOKRsADik0AA4pVQAOKVcADilZAA4pWwAOKV0ADilfAA4pYQAOKWMADillAA4phgAOKYkADimMAA4pjwAOKZIADimVAA4pmAAOKZsADimeAA4poAAOKhsADiodAA4qHwAOKiEADiokAA4qJQAOKiYADionAA4qKAAOKioADiosAA4qLQAOKi4ADiowAA4qMQAOKqwADiquAA4qsAAOKrIADiq1AA4qtgAOKrcADiq4AA4quQAOKrsADiq9AA4qvgAOKr8ADirBAA4qwgAOKz0ADis/AA4rQgAOK0QADitHAA4rSAAOK0kADitKAA4rSwAOK00ADitPAA4rUAAOK1EADitTAA4rVAAOK20ADituAA4rbwAOK3EADivsAA4r7gAOK/AADivyAA4r9QAOK/YADiv3AA4r+AAOK/kADiv7AA4r/QAOK/4ADiv/AA4sAQAOLAIADix9AA4sfwAOLIEADiyDAA4shgAOLIcADiyIAA4siQAOLIoADiyMAA4sjgAOLI8ADiyQAA4skgAOLJMADi0OAA4tEAAOLRIADi0UAA4tFwAOLRgADi0ZAA4tGgAOLRsADi0dAA4tHwAOLSAADi0hAA4tIwAOLSQADi2fAA4toQAOLaMADi2lAA4tqAAOLakADi2qAA4tqwAOLawADi2uAA4tsAAOLbEADi2yAA4ttAAOLbUADi4wAA4uMgAOLjQADi42AA4uOQAOLjoADi47AA4uPAAOLj0ADi4/AA4uQQAOLkIADi5DAA4uRQAOLkYADi6PAA4uswAOLtoADi7+AA4vAQAOLwMADi8FAA4vBwAOLwkADi8LAA4vDAAOLw8ADi8oAA4vRQAOL0cADi9JAA4vSwAOL00ADi9PAA4vUQAOL1MADi9wAA4vcwAOL3YADi95AA4vfAAOL38ADi+CAA4vhQAOL4cADjACAA4wBAAOMAYADjAIAA4wCwAOMAwADjANAA4wDgAOMA8ADjARAA4wEwAOMBQADjAVAA4wFwAOMBgADjCTAA4wlQAOMJcADjCZAA4wnAAOMJ0ADjCeAA4wnwAOMKAADjCiAA4wpAAOMKUADjCmAA4wqAAOMKkADjEkAA4xJgAOMSgADjEqAA4xLQAOMS4ADjEvAA4xMAAOMTEADjEzAA4xNQAOMTYADjE3AA4xOQAOMToADjG1AA4xtwAOMbkADjG7AA4xvgAOMb8ADjHAAA4xwQAOMcIADjHEAA4xxgAOMccADjHIAA4xygAOMcsADjJGAA4ySAAOMkoADjJMAA4yTwAOMlAADjJRAA4yUgAOMlMADjJVAA4yVwAOMlgADjJZAA4yWwAOMlwADjLXAA4y2QAOMtsADjLdAA4y4AAOMuEADjLiAA4y4wAOMuQADjLmAA4y6AAOMukADjLqAA4y7AAOMu0ADjNoAA4zagAOM2wADjNuAA4zcQAOM3IADjNzAA4zdAAOM3UADjN3AA4zeQAOM3oADjN7AA4zfQAOM34ADjQRAA40NAAONFQADjR0AA40dgAONHgADjR6AA40fAAONH8ADjSAAA40gQAONIQADjSFAA40hwAONIgADjSKAA40jQAONI4ADjSPAA40kgAONJMADjSYAA40sQAONLoADjS8AA40vgAONMcADjTKAA40zQAONM8ADjUYAA41PAAONWMADjWHAA41igAONYwADjWOAA41kAAONZIADjWUAA41lQAONZgADjWxAA410gAONdQADjXWAA412AAONdoADjXcAA413gAONeAADjXiAA42AwAONgYADjYJAA42DAAONg8ADjYSAA42FQAONhgADjYbAA42HQAONpgADjaaAA42nAAONp4ADjahAA42ogAONqMADjakAA42pQAONqcADjapAA42qgAONqsADjatAA42rgAONykADjcrAA43LQAONy8ADjcyAA43MwAONzQADjc1AA43NgAONzgADjc6AA43OwAONzwADjc+AA43PwAON7oADje8AA43vwAON8EADjfEAA43xQAON8YADjfHAA43yAAON8oADjfMAA43zQAON84ADjfQAA430QAON+oADjfrAA437AAON+4ADjhpAA44awAOOG0ADjhvAA44cgAOOHMADjh0AA44dQAOOHYADjh4AA44egAOOHsADjh8AA44fgAOOH8ADjj6AA44/AAOOP4ADjkAAA45AwAOOQQADjkFAA45BgAOOQcADjkJAA45CwAOOQwADjkNAA45DwAOORAADjmLAA45jQAOOY8ADjmRAA45lAAOOZUADjmWAA45lwAOOZgADjmaAA45nAAOOZ0ADjmeAA45oAAOOaEADjocAA46HgAOOiAADjoiAA46JQAOOiYADjonAA46KAAOOikADjorAA46LQAOOi4ADjovAA46MQAOOjIADjqtAA46rwAOOrEADjqzAA46tgAOOrcADjq4AA46uQAOOroADjq8AA46vgAOOr8ADjrAAA46wgAOOsMADjsMAA47MAAOO1cADjt7AA47fgAOO4AADjuCAA47hAAOO4YADjuIAA47iQAOO4wADjulAA47wgAOO8QADjvGAA47yAAOO8oADjvMAA47zgAOO9AADjvtAA478AAOO/MADjv2AA47+QAOO/wADjv/AA48AgAOPAQADjx/AA48gQAOPIMADjyFAA48iAAOPIkADjyKAA48iwAOPIwADjyOAA48kAAOPJEADjySAA48lAAOPJUADj0QAA49EgAOPRQADj0WAA49GQAOPRoADj0bAA49HAAOPR0ADj0fAA49IQAOPSIADj0jAA49JQAOPSYADj2hAA49owAOPaUADj2nAA49qgAOPasADj2sAA49rQAOPa4ADj2wAA49sgAOPbMADj20AA49tgAOPbcADj4yAA4+NAAOPjcADj45AA4+PAAOPj0ADj4+AA4+PwAOPkAADj5CAA4+RAAOPkUADj5GAA4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QRgAOUEcADlBIAA5QSQAOUEsADlBNAA5QTgAOUE8ADlBRAA5QUgAOUM0ADlDPAA5Q0gAOUNQADlDXAA5Q2AAOUNkADlDaAA5Q2wAOUN0ADlDfAA5Q4AAOUOEADlDjAA5Q5AAOUP0ADlD+AA5Q/wAOUQEADlF8AA5RfgAOUYAADlGCAA5RhQAOUYYADlGHAA5RiAAOUYkADlGLAA5RjQAOUY4ADlGPAA5RkQAOUZIADlINAA5SDwAOUhEADlITAA5SFgAOUhcADlIYAA5SGQAOUhoADlIcAA5SHgAOUh8ADlIgAA5SIgAOUiMADlKeAA5SoAAOUqIADlKkAA5SpwAOUqgADlKpAA5SqgAOUqsADlKtAA5SrwAOUrAADlKxAA5SswAOUrQADlMvAA5TMQAOUzMADlM1AA5TOAAOUzkADlM6AA5TOwAOUzwADlM+AA5TQAAOU0EADlNCAA5TRAAOU0UADlPAAA5TwgAOU8QADlPGAA5TyQAOU8oADlPLAA5TzAAOU80ADlPPAA5T0QAOU9IADlPTAA5T1QAOU9YADlQfAA5UQwAOVGoADlSOAA5UkQAOVJQADlSWAA5UmAAOVJoADlScAA5UnQAOVKAADlS5AA5U1gAOVNkADlTcAA5U3wAOVOIADlTlAA5U6AAOVOsADlUIAA5VCwAOVQ4ADlURAA5VFAAOVRcADlUaAA5VHQAOVR8ADlWaAA5VnAAOVZ8ADlWhAA5VpAAOVaUADlWmAA5VpwAOVagADlWqAA5VrQAOVa4ADlWvAA5VsQAOVbIADlYtAA5WLwAOVjIADlY0AA5WNwAOVjgADlY5AA5WOgAOVjsADlY9AA5WQAAOVkEADlZCAA5WRAAOVkUADlbAAA5WwgAOVsUADlbHAA5WygAOVssADlbMAA5WzQAOVs4ADlbQAA5W0wAOVtQADlbVAA5W1wAOVtgADldTAA5XVQAOV1gADldaAA5XXQAOV14ADldfAA5XYAAOV2EADldjAA5XZgAOV2cADldoAA5XagAOV2sADlfuAA5YEgAOWDYADlhZAA5YgAAOWKAADljHAA5Y7gAOWQ4ADlkyAA5ZVgAOWVgADllbAA5ZXQAOWV8ADllhAA5ZZAAOWWcADllpAA5ZawAOWW4ADllwAA5ZcgAOWXUADll4AA5ZeQAOWX4ADlmXAA5ZnAAOWZ4ADlmjAA5ZpgAOWagADlnxAA5aFQAOWjwADlpgAA5aYwAOWmUADlpnAA5aaQAOWmsADlptAA5abgAOWnEADlqKAA5arwAOWrEADlqzAA5atQAOWrcADlq5AA5auwAOWr0ADlq/AA5awQAOWuYADlrpAA5a7AAOWu8ADlryAA5a9QAOWvgADlr7AA5a/gAOWwEADlsDAA5bfgAOW4AADluDAA5bhQAOW4gADluJAA5bigAOW4sADluMAA5bjgAOW5AADluRAA5bkgAOW5QADluVAA5bpgAOW6cADlupAA5cJAAOXCYADlwoAA5cKgAOXC0ADlwuAA5cLwAOXDAADlwxAA5cMwAOXDUADlw2AA5cNwAOXDkADlw6AA5ctQAOXLcADly6AA5cvAAOXL8ADlzAAA5cwQAOXMIADlzDAA5cxQAOXMcADlzIAA5cyQAOXMsADlzMAA5c3QAOXOIADlzlAA5c5wAOXPgADlz9AA5dAAAOXQIADl0QAA5diwAOXY0ADl2PAA5dkQAOXZQADl2VAA5dlgAOXZcADl2YAA5dmgAOXZwADl2dAA5dngAOXaAADl2hAA5eHAAOXh4ADl4hAA5eIwAOXiYADl4nAA5eKAAOXikADl4qAA5eLAAOXi4ADl4vAA5eMAAOXjIADl4zAA5eRAAOXkUADl5HAA5ewgAOXsQADl7GAA5eyAAOXssADl7MAA5ezQAOXs4ADl7PAA5e0QAOXtMADl7UAA5e1QAOXtcADl7YAA5fUwAOX1UADl9YAA5fWgAOX10ADl9eAA5fXwAOX2AADl9hAA5fYwAOX2UADl9mAA5fZwAOX2kADl9qAA5fgwAOX4QADl+FAA5fhwAOYAIADmAEAA5gBgAOYAgADmALAA5gDAAOYA0ADmAOAA5gDwAOYBEADmATAA5gFAAOYBUADmAXAA5gGAAOYJMADmCVAA5gmAAOYJoADmCdAA5gngAOYJ8ADmCgAA5goQAOYKMADmClAA5gpgAOYKcADmCpAA5gqgAOYMQADmDdAA5g7gAOYPEADmD0AA5g9wAOYPoADmELAA5hDgAOYREADmEUAA5hFwAOYRkADmEkAA5hMgAOYcUADmHoAA5iCAAOYigADmIqAA5iLAAOYi4ADmIwAA5iMwAOYjQADmI1AA5iOAAOYjkADmI7AA5iPAAOYj8ADmJCAA5iQwAOYkQADmJHAA5iSAAOYk0ADmJmAA5ibwAOYnEADmJ0AA5ifQAOYoAADmKDAA5ihQAOYs4ADmLyAA5jGQAOYz0ADmNAAA5jQgAOY0QADmNGAA5jSAAOY0oADmNLAA5jTgAOY2cADmOIAA5jigAOY4wADmOOAA5jkAAOY5IADmOUAA5jlgAOY5gADmO5AA5jvAAOY78ADmPCAA5jxQAOY8gADmPLAA5jzgAOY9EADmPTAA5kTgAOZFAADmRSAA5kVAAOZFcADmRYAA5kWQAOZFoADmRbAA5kXQAOZF8ADmRgAA5kYQAOZGMADmRkAA5k3wAOZOEADmTjAA5k5QAOZOgADmTpAA5k6gAOZOsADmTsAA5k7gAOZPAADmTxAA5k8gAOZPQADmT1AA5lcAAOZXIADmV1AA5ldwAOZXoADmV7AA5lfAAOZX0ADmV+AA5lgAAOZYIADmWDAA5lhAAOZYYADmWHAA5loAAOZaEADmWiAA5lpAAOZh8ADmYhAA5mIwAOZiUADmYoAA5mKQAOZioADmYrAA5mLAAOZi4ADmYwAA5mMQAOZjIADmY0AA5mNQAOZrAADmayAA5mtAAOZrYADma5AA5mugAOZrsADma8AA5mvQAOZr8ADmbBAA5mwgAOZsMADmbFAA5mxgAOZ0EADmdDAA5nRQAOZ0cADmdKAA5nSwAOZ0wADmdNAA5nTgAOZ1AADmdSAA5nUwAOZ1QADmdWAA5nVwAOZ9IADmfUAA5n1gAOZ9gADmfbAA5n3AAOZ90ADmfeAA5n3wAOZ+EADmfjAA5n5AAOZ+UADmfnAA5n6AAOaGMADmhlAA5oZwAOaGkADmhsAA5obQAOaG4ADmhvAA5ocAAOaHIADmh0AA5odQAOaHYADmh4AA5oeQAOaMIADmjmAA5pDQAOaTEADmk0AA5pNwAOaTkADmk7AA5pPQAOaT8ADmlAAA5pQwAOaVwADml5AA5pfAAOaX8ADmmCAA5phQAOaYgADmmLAA5pjgAOaasADmmuAA5psQAOabQADmm3AA5pugAOab0ADmnAAA5pwgAOaj0ADmo/AA5qQgAOakQADmpHAA5qSAAOakkADmpKAA5qSwAOak0ADmpQAA5qUQAOalIADmpUAA5qVQAOatAADmrSAA5q1QAOatcADmraAA5q2wAOatwADmrdAA5q3gAOauAADmrjAA5q5AAOauUADmrnAA5q6AAOa2MADmtlAA5raAAOa2oADmttAA5rbgAOa28ADmtwAA5rcQAOa3MADmt2AA5rdwAOa3gADmt6AA5rewAOa/YADmv4AA5r+wAOa/0ADmwAAA5sAQAObAIADmwDAA5sBAAObAYADmwJAA5sCgAObAsADmwNAA5sDgAObIkADmyLAA5sjQAObI8ADmySAA5skwAObJQADmyVAA5slgAObJgADmybAA5snAAObJ0ADmyfAA5soAAObRsADm0dAA5tHwAObSEADm0kAA5tJQAObSYADm0nAA5tKAAObSoADm0tAA5tLgAObS8ADm0xAA5tMgAOba0ADm2vAA5tsgAObbQADm23AA5tuAAObbkADm26AA5tuwAObb0ADm3AAA5twQAObcIADm3EAA5txQAOblgADm57AA5umwAObrsADm69AA5uvwAObsEADm7DAA5uxgAObscADm7IAA5uywAObswADm7OAA5uzwAObtEADm7UAA5u1QAObtYADm7ZAA5u2gAObt8ADm74AA5vAQAObwMADm8FAA5vDgAObxEADm8UAA5vFgAOb18ADm+DAA5vqgAOb84ADm/RAA5v0wAOb9UADm/XAA5v2QAOb9sADm/cAA5v3wAOb/gADnAZAA5wGwAOcB0ADnAfAA5wIQAOcCMADnAlAA5wJwAOcCkADnBKAA5wTQAOcFAADnBTAA5wVgAOcFkADnBcAA5wXwAOcGIADnBkAA5w3wAOcOEADnDjAA5w5QAOcOgADnDpAA5w6gAOcOsADnDsAA5w7gAOcPAADnDxAA5w8gAOcPQADnD1AA5xcAAOcXIADnF0AA5xdgAOcXkADnF6AA5xewAOcXwADnF9AA5xfwAOcYEADnGCAA5xgwAOcYUADnGGAA5yAQAOcgMADnIGAA5yCAAOcgsADnIMAA5yDQAOcg4ADnIPAA5yEQAOchMADnIUAA5yFQAOchcADnIYAA5yMQAOcjIADnIzAA5yNQAOcrAADnKyAA5ytAAOcrYADnK5AA5yugAOcrsADnK8AA5yvQAOcr8ADnLBAA5ywgAOcsMADnLFAA5yxgAOc0EADnNDAA5zRQAOc0cADnNKAA5zSwAOc0wADnNNAA5zTgAOc1AADnNSAA5zUwAOc1QADnNWAA5zVwAOc9IADnPUAA5z1gAOc9gADnPbAA5z3AAOc90ADnPeAA5z3wAOc+EADnPjAA5z5AAOc+UADnPnAA5z6AAOdGMADnRlAA50ZwAOdGkADnRsAA50bQAOdG4ADnRvAA50cAAOdHIADnR0AA50dQAOdHYADnR4AA50eQAOdPQADnT2AA50+AAOdPoADnT9AA50/gAOdP8ADnUAAA51AQAOdQMADnUFAA51BgAOdQcADnUJAA51CgAOdVMADnV3AA51ngAOdcIADnXFAA51xwAOdckADnXLAA51zQAOdc8ADnXQAA510wAOdewADnYJAA52CwAOdg0ADnYPAA52EQAOdhMADnYVAA52FwAOdjQADnY3AA52OgAOdj0ADnZAAA52QwAOdkYADnZJAA52SwAOdsYADnbIAA52ygAOdswADnbPAA520AAOdtEADnbSAA520wAOdtUADnbXAA522AAOdtkADnbbAA523AAOd1cADndZAA53WwAOd10ADndgAA53YQAOd2IADndjAA53ZAAOd2YADndoAA53aQAOd2oADndsAA53bQAOd+gADnfqAA537AAOd+4ADnfxAA538gAOd/MADnf0AA539QAOd/cADnf5AA53+gAOd/sADnf9AA53/gAOeHkADnh7AA54fgAOeIAADniDAA54hAAOeIUADniGAA54hwAOeIkADniLAA54jAAOeI0ADniPAA54kAAOeQsADnkNAA55DwAOeREADnkUAA55FQAOeRYADnkXAA55GAAOeRoADnkcAA55HQAOeR4ADnkgAA55IQAOeZwADnmeAA55oAAOeaIADnmlAA55pgAOeacADnmoAA55qQAOeasADnmtAA55rgAOea8ADnmxAA55sgAOei0ADnovAA56MQAOejMADno2AA56NwAOejgADno5AA56OgAOejwADno+AA56PwAOekAADnpCAA56QwAOetYADnr5AA57GQAOezkADns7AA57PQAOez8ADntBAA57RAAOe0UADntGAA57SQAOe0oADntMAA57TQAOe08ADntSAA57UwAOe1QADntXAA57WAAOe10ADnt2AA57fwAOe4EADnuDAA57jAAOe48ADnuSAA57lAAOe90ADnwBAA58KAAOfEwADnxPAA58UQAOfFMADnxVAA58VwAOfFkADnxaAA58XQAOfHYADnyXAA58mQAOfJsADnydAA58nwAOfKEADnyjAA58pQAOfKcADnzIAA58ywAOfM4ADnzRAA581AAOfNcADnzaAA583QAOfOAADnziAA59XQAOfV8ADn1hAA59YwAOfWYADn1nAA59aAAOfWkADn1qAA59bAAOfW4ADn1vAA59cAAOfXIADn1zAA597gAOffAADn3yAA599AAOffcADn34AA59+QAOffoADn37AA59/QAOff8ADn4AAA5+AQAOfgMADn4EAA5+fwAOfoEADn6EAA5+hgAOfokADn6KAA5+iwAOfowADn6NAA5+jwAOfpEADn6SAA5+kwAOfpUADn6WAA5+rwAOfrAADn6xAA5+swAOfy4ADn8wAA5/MgAOfzQADn83AA5/OAAOfzkADn86AA5/OwAOfz0ADn8/AA5/QAAOf0EADn9DAA5/RAAOf78ADn/BAA5/wwAOf8UADn/IAA5/yQAOf8oADn/LAA5/zAAOf84ADn/QAA5/0QAOf9IADn/UAA5/1QAOgFAADoBSAA6AVAAOgFYADoBZAA6AWgAOgFsADoBcAA6AXQAOgF8ADoBhAA6AYgAOgGMADoBlAA6AZgAOgOEADoDjAA6A5QAOgOcADoDqAA6A6wAOgOwADoDtAA6A7gAOgPAADoDyAA6A8wAOgPQADoD2AA6A9wAOgXIADoF0AA6BdgAOgXgADoF7AA6BfAAOgX0ADoF+AA6BfwAOgYEADoGDAA6BhAAOgYUADoGHAA6BiAAOgdEADoH1AA6CHAAOgkAADoJDAA6CRQAOgkcADoJJAA6CSwAOgk0ADoJOAA6CUQAOgmoADoKHAA6CiQAOgosADoKNAA6CjwAOgpEADoKTAA6ClQAOgrIADoK1AA6CuAAOgrsADoK+AA6CwQAOgsQADoLHAA6CyQAOg0QADoNGAA6DSAAOg0oADoNNAA6DTgAOg08ADoNQAA6DUQAOg1MADoNVAA6DVgAOg1cADoNZAA6DWgAOg9UADoPXAA6D2QAOg9sADoPeAA6D3wAOg+AADoPhAA6D4gAOg+QADoPmAA6D5wAOg+gADoPqAA6D6wAOhGYADoRoAA6EagAOhGwADoRvAA6EcAAOhHEADoRyAA6EcwAOhHUADoR3AA6EeAAOhHkADoR7AA6EfAAOhPcADoT5AA6E+wAOhP0ADoUAAA6FAQAOhQIADoUDAA6FBAAOhQYADoUIAA6FCQAOhQoADoUMAA6FDQAOhYgADoWKAA6FjAAOhY4ADoWRAA6FkgAOhZMADoWUAA6FlQAOhZcADoWZAA6FmgAOhZsADoWdAA6FngAOhhkADoYbAA6GHQAOhh8ADoYiAA6GIwAOhiQADoYlAA6GJgAOhigADoYqAA6GKwAOhiwADoYuAA6GLwAOhqoADoasAA6GrgAOhrAADoazAA6GtAAOhrUADoa2AA6GtwAOhrkADoa7AA6GvAAOhr0ADoa/AA6GwAAOh1MADod2AA6HlgAOh7YADoe4AA6HugAOh7wADoe+AA6HwQAOh8IADofDAA6HxgAOh8cADofJAA6HygAOh8wADofPAA6H0AAOh9EADofUAA6H1QAOh9oADofzAA6H/AAOh/4ADogAAA6ICQAOiAwADogPAA6IEQAOiFoADoh+AA6IpQAOiMkADojMAA6IzgAOiNAADojSAA6I1AAOiNYADojXAA6I2gAOiPMADokUAA6JFgAOiRgADokaAA6JHAAOiR4ADokgAA6JIgAOiSQADolFAA6JSAAOiUsADolOAA6JUQAOiVQADolXAA6JWgAOiV0ADolfAA6J2gAOidwADoneAA6J4AAOieMADonkAA6J5QAOieYADonnAA6J6QAOiesADonsAA6J7QAOie8ADonwAA6KawAOim0ADopvAA6KcQAOinQADop1AA6KdgAOincADop4AA6KegAOinwADop9AA6KfgAOioAADoqBAA6K/AAOiv4ADosBAA6LAwAOiwYADosHAA6LCAAOiwkADosKAA6LDAAOiw4ADosPAA6LEAAOixIADosTAA6LLAAOiy0ADosuAA6LMAAOi6sADoutAA6LrwAOi7EADou0AA6LtQAOi7YADou3AA6LuAAOi7oADou8AA6LvQAOi74ADovAAA6LwQAOjDwADow+AA6MQAAOjEIADoxFAA6MRgAOjEcADoxIAA6MSQAOjEsADoxNAA6MTgAOjE8ADoxRAA6MUgAOjM0ADozPAA6M0QAOjNMADozWAA6M1wAOjNgADozZAA6M2gAOjNwADozeAA6M3wAOjOAADoziAA6M4wAOjV4ADo1gAA6NYgAOjWQADo1nAA6NaAAOjWkADo1qAA6NawAOjW0ADo1vAA6NcAAOjXEADo1zAA6NdAAOje8ADo3xAA6N8wAOjfUADo34AA6N+QAOjfoADo37AA6N/AAOjf4ADo4AAA6OAQAOjgIADo4EAA6OBQAOjk4ADo5yAA6OmQAOjr0ADo7AAA6OwgAOjsQADo7GAA6OyAAOjsoADo7LAA6OzgAOjucADo8EAA6PBgAOjwgADo8KAA6PDAAOjw4ADo8QAA6PEgAOjy8ADo8yAA6PNQAOjzgADo87AA6PPgAOj0EADo9EAA6PRgAOj8EADo/DAA6PxQAOj8cADo/KAA6PywAOj8wADo/NAA6PzgAOj9AADo/SAA6P0wAOj9QADo/WAA6P1wAOkFIADpBUAA6QVgAOkFgADpBbAA6QXAAOkF0ADpBeAA6QXwAOkGEADpBjAA6QZAAOkGUADpBnAA6QaAAOkOMADpDlAA6Q5wAOkOkADpDsAA6Q7QAOkO4ADpDvAA6Q8AAOkPIADpD0AA6Q9QAOkPYADpD4AA6Q+QAOkXQADpF2AA6ReQAOkXsADpF+AA6RfwAOkYAADpGBAA6RggAOkYQADpGGAA6RhwAOkYgADpGKAA6RiwAOkgYADpIIAA6SCgAOkgwADpIPAA6SEAAOkhEADpISAA6SEwAOkhUADpIXAA6SGAAOkhkADpIbAA6SHAAOkpcADpKZAA6SmwAOkp0ADpKgAA6SoQAOkqIADpKjAA6SpAAOkqYADpKoAA6SqQAOkqoADpKsAA6SrQAOkygADpMqAA6TLAAOky4ADpMxAA6TMgAOkzMADpM0AA6TNQAOkzcADpM5AA6TOgAOkzsADpM9AA6TPgAOk08ADpNQAA6TUgAOk80ADpPPAA6T0QAOk9MADpPWAA6T1wAOk9gADpPZAA6T2gAOk9wADpPfAA6T4AAOk+EADpPjAA6T5AAOlF8ADpRhAA6UYwAOlGUADpRoAA6UaQAOlGoADpRrAA6UbAAOlG4ADpRxAA6UcgAOlHMADpR1AA6UdgAOlPEADpTzAA6U9gAOlPgADpT7AA6U/AAOlP0ADpT+AA6U/wAOlQEADpUEAA6VBQAOlQYADpUIAA6VCQAOlZwADpW/AA6V3wAOlf8ADpYBAA6WAwAOlgUADpYHAA6WCgAOlgsADpYMAA6WDwAOlhAADpYSAA6WEwAOlhYADpYZAA6WGgAOlhsADpYeAA6WHwAOligADpZBAA6WSgAOlkwADpZPAA6WWAAOllsADpZeAA6WYAAOlqkADpbNAA6W9AAOlxgADpcbAA6XHQAOlx8ADpchAA6XIwAOlyUADpcmAA6XKQAOl0IADpdjAA6XZQAOl2cADpdpAA6XawAOl20ADpdvAA6XcQAOl3MADpeUAA6XlwAOl5oADpedAA6XoAAOl6MADpemAA6XqQAOl6wADpeuAA6YKQAOmCsADpgtAA6YLwAOmDIADpgzAA6YNAAOmDUADpg2AA6YOAAOmDoADpg7AA6YPAAOmD4ADpg/AA6YugAOmLwADpi+AA6YwAAOmMMADpjEAA6YxQAOmMYADpjHAA6YyQAOmMsADpjMAA6YzQAOmM8ADpjQAA6ZSwAOmU0ADplQAA6ZUgAOmVUADplWAA6ZVwAOmVgADplZAA6ZWwAOmV0ADpleAA6ZXwAOmWEADpliAA6ZewAOmXwADpl9AA6ZfwAOmfoADpn8AA6Z/gAOmgAADpoDAA6aBAAOmgUADpoGAA6aBwAOmgkADpoLAA6aDAAOmg0ADpoPAA6aEAAOmosADpqNAA6ajwAOmpEADpqUAA6alQAOmpYADpqXAA6amAAOmpoADpqcAA6anQAOmp4ADpqgAA6aoQAOmxwADpseAA6bIAAOmyIADpslAA6bJgAOmycADpsoAA6bKQAOmysADpstAA6bLgAOmy8ADpsxAA6bMgAOm60ADpuvAA6bsQAOm7MADpu2AA6btwAOm7gADpu5AA6bugAOm7wADpu+AA6bvwAOm8AADpvCAA6bwwAOnD4ADpxAAA6cQgAOnEQADpxHAA6cSAAOnEkADpxKAA6cSwAOnE0ADpxPAA6cUAAOnFEADpxTAA6cVAAOnJ0ADpzBAA6c6AAOnQwADp0PAA6dEgAOnRQADp0WAA6dGAAOnRoADp0bAA6dHgAOnTcADp1UAA6dVwAOnVoADp1dAA6dYAAOnWMADp1mAA6daQAOnYYADp2JAA6djAAOnY8ADp2SAA6dlQAOnZgADp2bAA6dnQAOnhgADp4aAA6eHQAOnh8ADp4iAA6eIwAOniQADp4lAA6eJgAOnigADp4rAA6eLAAOni0ADp4vAA6eMAAOnqsADp6tAA6esAAOnrIADp61AA6etgAOnrcADp64AA6euQAOnrsADp6+AA6evwAOnsAADp7CAA6ewwAOnz4ADp9AAA6fQwAOn0UADp9IAA6fSQAOn0oADp9LAA6fTAAOn04ADp9RAA6fUgAOn1MADp9VAA6fVgAOn9EADp/TAA6f1gAOn9gADp/bAA6f3AAOn90ADp/eAA6f3wAOn+EADp/kAA6f5QAOn+YADp/oAA6f6QAOoGwADqCQAA6gtAAOoNcADqD+AA6hHgAOoUUADqFsAA6hjAAOobAADqHUAA6h1gAOodkADqHbAA6h3QAOod8ADqHiAA6h5QAOoecADqHpAA6h7AAOoe4ADqHwAA6h8wAOofYADqH3AA6h/AAOohUADqIaAA6iHAAOoiEADqIkAA6iJgAOom8ADqKTAA6iugAOot4ADqLhAA6i4wAOouUADqLnAA6i6QAOousADqLsAA6i7wAOowgADqMtAA6jLwAOozEADqMzAA6jNQAOozcADqM5AA6jOwAOoz0ADqM/AA6jZAAOo2cADqNqAA6jbQAOo3AADqNzAA6jdgAOo3kADqN8AA6jfwAOo4EADqP8AA6j/gAOpAEADqQDAA6kBgAOpAcADqQIAA6kCQAOpAoADqQMAA6kDgAOpA8ADqQQAA6kEgAOpBMADqQkAA6kJQAOpCcADqSiAA6kpAAOpKYADqSoAA6kqwAOpKwADqStAA6krgAOpK8ADqSxAA6kswAOpLQADqS1AA6ktwAOpLgADqUzAA6lNQAOpTgADqU6AA6lPQAOpT4ADqU/AA6lQAAOpUEADqVDAA6lRQAOpUYADqVHAA6lSQAOpUoADqVbAA6lYAAOpWMADqVlAA6ldgAOpX8ADqWCAA6lhQAOpYcADqWjAA6ltQAOpjAADqYyAA6mNAAOpjYADqY5AA6mOgAOpjsADqY8AA6mPQAOpj8ADqZBAA6mQgAOpkMADqZFAA6mRgAOpsEADqbDAA6mxgAOpsgADqbLAA6mzAAOps0ADqbOAA6mzwAOptEADqbTAA6m1AAOptUADqbXAA6m2AAOpukADqbqAA6m7AAOp2cADqdpAA6nawAOp20ADqdwAA6ncQAOp3IADqdzAA6ndAAOp3YADqd4AA6neQAOp3oADqd8AA6nfQAOp/gADqf6AA6n/QAOp/8ADqgCAA6oAwAOqAQADqgFAA6oBgAOqAgADqgKAA6oCwAOqAwADqgOAA6oDwAOqCgADqgpAA6oKgAOqCwADqinAA6oqQAOqKsADqitAA6osAAOqLEADqiyAA6oswAOqLQADqi2AA6ouAAOqLkADqi6AA6ovAAOqL0ADqk4AA6pOgAOqT0ADqk/AA6pQgAOqUMADqlEAA6pRQAOqUYADqlIAA6pSgAOqUsADqlMAA6pTgAOqU8ADqldAA6pdgAOqbUADqm4AA6puwAOqb4ADqnBAA6pxAAOqccADqnKAA6pzQAOqdAADqnTAA6p1gAOqdkADqncAA6p3wAOqeIADqohAA6qJAAOqicADqoqAA6qLQAOqjAADqozAA6qNgAOqjkADqo8AA6qPwAOqkIADqpFAA6qSAAOqksADqpOAA6qUAAOqmYADqqCAA6qoAAOqroADqrfAA6q5wAOqvkADqsMAA6rIgAOqysADqtHAA6rWQAOq2YADqt0AA6sBwAOrCoADqxKAA6sagAOrGwADqxuAA6scAAOrHIADqx1AA6sdgAOrHcADqx6AA6sewAOrH0ADqx+AA6sgAAOrIMADqyEAA6shQAOrIgADqyJAA6sjgAOrKcADqywAA6ssgAOrLQADqy9AA6swAAOrMMADqzFAA6tDgAOrTIADq1ZAA6tfQAOrYAADq2CAA6thAAOrYYADq2IAA6tigAOrYsADq2OAA6tpwAOrcgADq3KAA6tzAAOrc4ADq3QAA6t0gAOrdQADq3WAA6t2AAOrfkADq38AA6t/wAOrgIADq4FAA6uCAAOrgsADq4OAA6uEQAOrhMADq6OAA6ukAAOrpIADq6UAA6ulwAOrpgADq6ZAA6umgAOrpsADq6dAA6unwAOrqAADq6hAA6uowAOrqQADq8fAA6vIQAOryMADq8lAA6vKAAOrykADq8qAA6vKwAOrywADq8uAA6vMAAOrzEADq8yAA6vNAAOrzUADq+wAA6vsgAOr7UADq+3AA6vugAOr7sADq+8AA6vvQAOr74ADq/AAA6vwgAOr8MADq/EAA6vxgAOr8cADq/gAA6v4QAOr+IADq/kAA6wXwAOsGEADrBjAA6wZQAOsGgADrBpAA6wagAOsGsADrBsAA6wbgAOsHAADrBxAA6wcgAOsHQADrB1AA6w8AAOsPIADrD0AA6w9gAOsPkADrD6AA6w+wAOsPwADrD9AA6w/wAOsQEADrECAA6xAwAOsQUADrEGAA6xgQAOsYMADrGFAA6xhwAOsYoADrGLAA6xjAAOsY0ADrGOAA6xkAAOsZIADrGTAA6xlAAOsZYADrGXAA6yEgAOshQADrIWAA6yGAAOshsADrIcAA6yHQAOsh4ADrIfAA6yIQAOsiMADrIkAA6yJQAOsicADrIoAA6yowAOsqUADrKnAA6yqQAOsqwADrKtAA6yrgAOsq8ADrKwAA6ysgAOsrQADrK1AA6ytgAOsrgADrK5AA6zAgAOsyYADrNNAA6zcQAOs3QADrN2AA6zeAAOs3oADrN8AA6zfgAOs38ADrOCAA6zmwAOs7gADrO6AA6zvAAOs74ADrPAAA6zwgAOs8QADrPGAA6z4wAOs+YADrPpAA6z7AAOs+8ADrPyAA6z9QAOs/gADrP6AA60dQAOtHcADrR5AA60ewAOtH4ADrR/AA60gAAOtIEADrSCAA60hAAOtIYADrSHAA60iAAOtIoADrSLAA61BgAOtQgADrUKAA61DAAOtQ8ADrUQAA61EQAOtRIADrUTAA61FQAOtRcADrUYAA61GQAOtRsADrUcAA61lwAOtZkADrWbAA61nQAOtaAADrWhAA61ogAOtaMADrWkAA61pgAOtagADrWpAA61qgAOtawADrWtAA62KAAOtioADrYtAA62LwAOtjIADrYzAA62NAAOtjUADrY2AA62OAAOtjoADrY7AA62PAAOtj4ADrY/AA62ugAOtrwADra+AA62wAAOtsMADrbEAA62xQAOtsYADrbHAA62yQAOtssADrbMAA62zQAOts8ADrbQAA63SwAOt00ADrdPAA63UQAOt1QADrdVAA63VgAOt1cADrdYAA63WgAOt1wADrddAA63XgAOt2AADrdhAA633AAOt94ADrfgAA634gAOt+UADrfmAA635wAOt+gADrfpAA636wAOt+0ADrfuAA637wAOt/EADrfyAA64hQAOuKgADrjIAA646AAOuOoADrjsAA647gAOuPAADrjzAA649AAOuPUADrj4AA64+QAOuPsADrj8AA64/gAOuQEADrkCAA65AwAOuQYADrkHAA65EAAOuSkADrkyAA65NAAOuTYADrk/AA65QgAOuUUADrlHAA65kAAOubQADrnbAA65/wAOugIADroEAA66BgAOuggADroKAA66DAAOug0ADroQAA66KQAOukoADrpMAA66TgAOulAADrpSAA66VAAOulYADrpYAA66WgAOunsADrp+AA66gQAOuoQADrqHAA66igAOuo0ADrqQAA66kwAOupUADrsQAA67EgAOuxQADrsWAA67GQAOuxoADrsbAA67HAAOux0ADrsfAA67IQAOuyIADrsjAA67JQAOuyYADruhAA67owAOu6UADrunAA67qgAOu6sADrusAA67rQAOu64ADruwAA67sgAOu7MADru0AA67tgAOu7cADrwyAA68NAAOvDcADrw5AA68PAAOvD0ADrw+AA68PwAOvEAADrxCAA68RAAOvEUADrxGAA68SAAOvEkADrxiAA68YwAOvGQADrxmAA684QAOvOMADrzlAA685wAOvOoADrzrAA687AAOvO0ADrzuAA688AAOvPIADrzzAA689AAOvPYADrz3AA69cgAOvXQADr12AA69eAAOvXsADr18AA69fQAOvX4ADr1/AA69gQAOvYMADr2EAA69hQAOvYcADr2IAA6+AwAOvgUADr4HAA6+CQAOvgwADr4NAA6+DgAOvg8ADr4QAA6+EgAOvhQADr4VAA6+FgAOvhgADr4ZAA6+lAAOvpYADr6YAA6+mgAOvp0ADr6eAA6+nwAOvqAADr6hAA6+owAOvqUADr6mAA6+pwAOvqkADr6qAA6/JQAOvycADr8pAA6/KwAOvy4ADr8vAA6/MAAOvzEADr8yAA6/NAAOvzYADr83AA6/OAAOvzoADr87AA6/hAAOv6gADr/PAA6/8wAOv/YADr/4AA6/+gAOv/wADr/+AA7AAAAOwAEADsAEAA7AHQAOwDoADsA8AA7APgAOwEAADsBCAA7ARAAOwEYADsBIAA7AZQAOwGgADsBrAA7AbgAOwHEADsB0AA7AdwAOwHoADsB8AA7A9wAOwPkADsD7AA7A/QAOwQAADsEBAA7BAgAOwQMADsEEAA7BBgAOwQgADsEJAA7BCgAOwQwADsENAA7BiAAOwYoADsGMAA7BjgAOwZEADsGSAA7BkwAOwZQADsGVAA7BlwAOwZkADsGaAA7BmwAOwZ0ADsGeAA7CGQAOwhsADsIdAA7CHwAOwiIADsIjAA7CJAAOwiUADsImAA7CKAAOwioADsIrAA7CLAAOwi4ADsIvAA7CqgAOwqwADsKvAA7CsQAOwrQADsK1AA7CtgAOwrcADsK4AA7CugAOwrwADsK9AA7CvgAOwsAADsLBAA7DPAAOwz4ADsNAAA7DQgAOw0UADsNGAA7DRwAOw0gADsNJAA7DSwAOw00ADsNOAA7DTwAOw1EADsNSAA7DzQAOw88ADsPSAA7D1AAOw9cADsPYAA7D2QAOw9oADsPbAA7D3QAOw98ADsPgAA7D4QAOw+MADsPkAA7D8wAOxG4ADsRwAA7EcgAOxHQADsR3AA7EeAAOxHkADsR6AA7EewAOxH0ADsR/AA7EgAAOxIEADsSDAA7EhAAOxRcADsU6AA7FWgAOxXoADsV8AA7FfgAOxYAADsWCAA7FhQAOxYYADsWHAA7FigAOxYsADsWNAA7FjgAOxZAADsWTAA7FlAAOxZUADsWYAA7FmQAOxZ4ADsW3AA7FwAAOxcIADsXEAA7FzQAOxdAADsXTAA7F1QAOxh4ADsZCAA7GaQAOxo0ADsaQAA7GkgAOxpQADsaWAA7GmAAOxpoADsabAA7GngAOxrcADsbYAA7G2gAOxtwADsbeAA7G4AAOxuIADsbkAA7G5gAOxugADscJAA7HDAAOxw8ADscSAA7HFQAOxxgADscbAA7HHgAOxyEADscjAA7HngAOx6AADseiAA7HpAAOx6cADseoAA7HqQAOx6oADserAA7HrQAOx68ADsewAA7HsQAOx7MADse0AA7ILwAOyDEADsgzAA7INQAOyDgADsg5AA7IOgAOyDsADsg8AA7IPgAOyEAADshBAA7IQgAOyEQADshFAA7IwAAOyMIADsjFAA7IxwAOyMoADsjLAA7IzAAOyM0ADsjOAA7I0AAOyNIADsjTAA7I1AAOyNYADsjXAA7I8AAOyPEADsjyAA7I9AAOyW8ADslxAA7JcwAOyXUADsl4AA7JeQAOyXoADsl7AA7JfAAOyX4ADsmAAA7JgQAOyYIADsmEAA7JhQAOygAADsoCAA7KBAAOygYADsoJAA7KCgAOygsADsoMAA7KDQAOyg8ADsoRAA7KEgAOyhMADsoVAA7KFgAOypEADsqTAA7KlQAOypcADsqaAA7KmwAOypwADsqdAA7KngAOyqAADsqiAA7KowAOyqQADsqmAA7KpwAOyyIADsskAA7LJgAOyygADssrAA7LLAAOyy0ADssuAA7LLwAOyzEADsszAA7LNAAOyzUADss3AA7LOAAOy7MADsu1AA7LtwAOy7kADsu8AA7LvQAOy74ADsu/AA7LwAAOy8IADsvEAA7LxQAOy8YADsvIAA7LyQAOzBIADsw2AA7MXQAOzIEADsyEAA7MhgAOzIgADsyKAA7MjAAOzI4ADsyPAA7MkgAOzKsADszIAA7MygAOzMwADszOAA7M0AAOzNIADszUAA7M1gAOzPMADsz2AA7M+QAOzPwADsz/AA7NAgAOzQUADs0IAA7NCgAOzYUADs2HAA7NiQAOzYsADs2OAA7NjwAOzZAADs2RAA7NkgAOzZQADs2WAA7NlwAOzZgADs2aAA7NmwAOzhYADs4YAA7OGgAOzhwADs4fAA7OIAAOziEADs4iAA7OIwAOziUADs4nAA7OKAAOzikADs4rAA7OLAAOzqcADs6pAA7OqwAOzq0ADs6wAA7OsQAOzrIADs6zAA7OtAAOzrYADs64AA7OuQAOzroADs68AA7OvQAOzzgADs86AA7PPQAOzz8ADs9CAA7PQwAOz0QADs9FAA7PRgAOz0gADs9KAA7PSwAOz0wADs9OAA7PTwAOz8oADs/MAA7PzgAOz9AADs/TAA7P1AAOz9UADs/WAA7P1wAOz9kADs/bAA7P3AAOz90ADs/fAA7P4AAO0FsADtBdAA7QXwAO0GEADtBkAA7QZQAO0GYADtBnAA7QaAAO0GoADtBsAA7QbQAO0G4ADtBwAA7QcQAO0OwADtDuAA7Q8AAO0PIADtD1AA7Q9gAO0PcADtD4AA7Q+QAO0PsADtD9AA7Q/gAO0P8ADtEBAA7RAgAO0ZUADtG4AA7R2AAO0fgADtH6AA7R/AAO0f4ADtIAAA7SAwAO0gQADtIFAA7SCAAO0gkADtILAA7SDAAO0g4ADtIRAA7SEgAO0hMADtIWAA7SFwAO0iAADtI5AA7SQgAO0kQADtJGAA7STwAO0lIADtJVAA7SVwAO0qAADtLEAA7S6wAO0w8ADtMSAA7TFAAO0xYADtMYAA7TGgAO0xwADtMdAA7TIAAO0zkADtNaAA7TXAAO014ADtNgAA7TYgAO02QADtNmAA7TaAAO02oADtOLAA7TjgAO05EADtOUAA7TlwAO05oADtOdAA7ToAAO06MADtOlAA7UIAAO1CIADtQkAA7UJgAO1CkADtQqAA7UKwAO1CwADtQtAA7ULwAO1DEADtQyAA7UMwAO1DUADtQ2AA7UsQAO1LMADtS1AA7UtwAO1LoADtS7AA7UvAAO1L0ADtS+AA7UwAAO1MIADtTDAA7UxAAO1MYADtTHAA7VQgAO1UQADtVHAA7VSQAO1UwADtVNAA7VTgAO1U8ADtVQAA7VUgAO1VQADtVVAA7VVgAO1VgADtVZAA7VcgAO1XMADtV0AA7VdgAO1fEADtXzAA7V9QAO1fcADtX6AA7V+wAO1fwADtX9AA7V/gAO1gAADtYCAA7WAwAO1gQADtYGAA7WBwAO1oIADtaEAA7WhgAO1ogADtaLAA7WjAAO1o0ADtaOAA7WjwAO1pEADtaTAA7WlAAO1pUADtaXAA7WmAAO1xMADtcVAA7XFwAO1xkADtccAA7XHQAO1x4ADtcfAA7XIAAO1yIADtckAA7XJQAO1yYADtcoAA7XKQAO16QADtemAA7XqAAO16oADtetAA7XrgAO168ADtewAA7XsQAO17MADte1AA7XtgAO17cADte5AA7XugAO2DUADtg3AA7YOQAO2DsADtg+AA7YPwAO2EAADthBAA7YQgAO2EQADthGAA7YRwAO2EgADthKAA7YSwAO2JQADti4AA7Y3wAO2QMADtkGAA7ZCAAO2QoADtkMAA7ZDgAO2RAADtkRAA7ZFAAO2S0ADtlKAA7ZTAAO2U4ADtlQAA7ZUgAO2VQADtlWAA7ZWAAO2XUADtl4AA7ZewAO2X4ADtmBAA7ZhAAO2YcADtmKAA7ZjAAO2gcADtoJAA7aCwAO2g0ADtoQAA7aEQAO2hIADtoTAA7aFAAO2hYADtoYAA7aGQAO2hoADtocAA7aHQAO2pgADtqaAA7anAAO2p4ADtqhAA7aogAO2qMADtqkAA7apQAO2qcADtqpAA7aqgAO2qsADtqtAA7argAO2ykADtsrAA7bLQAO2y8ADtsyAA7bMwAO2zQADts1AA7bNgAO2zgADts6AA7bOwAO2zwADts+AA7bPwAO27oADtu8AA7bvwAO28EADtvEAA7bxQAO28YADtvHAA7byAAO28oADtvMAA7bzQAO284ADtvQAA7b0QAO3EwADtxOAA7cUAAO3FIADtxVAA7cVgAO3FcADtxYAA7cWQAO3FsADtxdAA7cXgAO3F8ADtxhAA7cYgAO3N0ADtzfAA7c4gAO3OQADtznAA7c6AAO3OkADtzqAA7c6wAO3O0ADtzvAA7c8AAO3PEADtzzAA7c9AAO3QMADt1+AA7dgAAO3YIADt2EAA7dhwAO3YgADt2JAA7digAO3YsADt2NAA7djwAO3ZAADt2RAA7dkwAO3ZQADt4nAA7eSgAO3moADt6KAA7ejAAO3o4ADt6QAA7ekgAO3pUADt6WAA7elwAO3poADt6bAA7enQAO3p4ADt6gAA7eowAO3qQADt6lAA7eqAAO3qkADt6uAA7exwAO3tAADt7SAA7e1AAO3t0ADt7gAA7e4wAO3uUADt8uAA7fUgAO33kADt+dAA7foAAO36IADt+kAA7fpgAO36gADt+qAA7fqwAO364ADt/HAA7f6AAO3+oADt/sAA7f7gAO3/AADt/yAA7f9AAO3/YADt/4AA7gGQAO4BwADuAfAA7gIgAO4CUADuAoAA7gKwAO4C4ADuAxAA7gMwAO4K4ADuCwAA7gsgAO4LQADuC3AA7guAAO4LkADuC6AA7guwAO4L0ADuC/AA7gwAAO4MEADuDDAA7gxAAO4T8ADuFBAA7hQwAO4UUADuFIAA7hSQAO4UoADuFLAA7hTAAO4U4ADuFQAA7hUQAO4VIADuFUAA7hVQAO4dAADuHSAA7h1QAO4dcADuHaAA7h2wAO4dwADuHdAA7h3gAO4eAADuHiAA7h4wAO4eQADuHmAA7h5wAO4gAADuIBAA7iAgAO4gQADuJ/AA7igQAO4oMADuKFAA7iiAAO4okADuKKAA7iiwAO4owADuKOAA7ikAAO4pEADuKSAA7ilAAO4pUADuMQAA7jEgAO4xQADuMWAA7jGQAO4xoADuMbAA7jHAAO4x0ADuMfAA7jIQAO4yIADuMjAA7jJQAO4yYADuOhAA7jowAO46UADuOnAA7jqgAO46sADuOsAA7jrQAO464ADuOwAA7jsgAO47MADuO0AA7jtgAO47cADuQyAA7kNAAO5DYADuQ4AA7kOwAO5DwADuQ9AA7kPgAO5D8ADuRBAA7kQwAO5EQADuRFAA7kRwAO5EgADuTDAA7kxQAO5McADuTJAA7kzAAO5M0ADuTOAA7kzwAO5NAADuTSAA7k1AAO5NUADuTWAA7k2AAO5NkADuUiAA7lRgAO5W0ADuWRAA7llAAO5ZYADuWYAA7lmgAO5ZwADuWeAA7lnwAO5aIADuW7AA7l2AAO5doADuXcAA7l3gAO5eAADuXiAA7l5AAO5eYADuYDAA7mBgAO5gkADuYMAA7mDwAO5hIADuYVAA7mGAAO5hoADuaVAA7mlwAO5pkADuabAA7mngAO5p8ADuagAA7moQAO5qIADuakAA7mpgAO5qcADuaoAA7mqgAO5qsADucmAA7nKAAO5yoADucsAA7nLwAO5zAADucxAA7nMgAO5zMADuc1AA7nNwAO5zgADuc5AA7nOwAO5zwADue3AA7nuQAO57sADue9AA7nwAAO58EADufCAA7nwwAO58QADufGAA7nyAAO58kADufKAA7nzAAO580ADuhIAA7oSgAO6E0ADuhPAA7oUgAO6FMADuhUAA7oVQAO6FYADuhYAA7oWgAO6FsADuhcAA7oXgAO6F8ADujaAA7o3AAO6N4ADujgAA7o4wAO6OQADujlAA7o5gAO6OcADujpAA7o6wAO6OwADujtAA7o7wAO6PAADulrAA7pbQAO6W8ADulxAA7pdAAO6XUADul2AA7pdwAO6XgADul6AA7pfAAO6X0ADul+AA7pgAAO6YEADun8AA7p/gAO6gAADuoCAA7qBQAO6gYADuoHAA7qCAAO6gkADuoLAA7qDQAO6g4ADuoPAA7qEQAO6hIADuqlAA7qyAAO6ugADusIAA7rCgAO6wwADusOAA7rEAAO6xMADusUAA7rFQAO6xgADusZAA7rGwAO6xwADusfAA7rIgAO6yMADuskAA7rJwAO6ygADustAA7rRgAO608ADutRAA7rVAAO610ADutgAA7rYwAO62UADuuuAA7r0gAO6/kADuwdAA7sIAAO7CIADuwkAA7sJgAO7CgADuwqAA7sKwAO7C4ADuxHAA7saAAO7GoADuxsAA7sbgAO7HAADuxyAA7sdAAO7HYADux4AA7smQAO7JwADuyfAA7sogAO7KUADuyoAA7sqwAO7K4ADuyxAA7sswAO7S4ADu0wAA7tMgAO7TQADu03AA7tOAAO7TkADu06AA7tOwAO7T0ADu0/AA7tQAAO7UEADu1DAA7tRAAO7b8ADu3BAA7twwAO7cUADu3IAA7tyQAO7coADu3LAA7tzAAO7c4ADu3QAA7t0QAO7dIADu3UAA7t1QAO7lAADu5SAA7uVQAO7lcADu5aAA7uWwAO7lwADu5dAA7uXgAO7mAADu5iAA7uYwAO7mQADu5mAA7uZwAO7oAADu6BAA7uggAO7oQADu7/AA7vAQAO7wMADu8FAA7vCAAO7wkADu8KAA7vCwAO7wwADu8OAA7vEAAO7xEADu8SAA7vFAAO7xUADu+QAA7vkgAO75QADu+WAA7vmQAO75oADu+bAA7vnAAO750ADu+fAA7voQAO76IADu+jAA7vpQAO76YADvAhAA7wIwAO8CUADvAnAA7wKgAO8CsADvAsAA7wLQAO8C4ADvAwAA7wMgAO8DMADvA0AA7wNgAO8DcADvCyAA7wtAAO8LYADvC4AA7wuwAO8LwADvC9AA7wvgAO8L8ADvDBAA7wwwAO8MQADvDFAA7wxwAO8MgADvFDAA7xRQAO8UcADvFJAA7xTAAO8U0ADvFOAA7xTwAO8VAADvFSAA7xVAAO8VUADvFWAA7xWAAO8VkADvGiAA7xxgAO8e0ADvIRAA7yFAAO8hcADvIZAA7yGwAO8h0ADvIfAA7yIAAO8iMADvI8AA7yWQAO8lwADvJfAA7yYgAO8mUADvJoAA7yawAO8m4ADvKLAA7yjgAO8pEADvKUAA7ylwAO8poADvKdAA7yoAAO8qIADvMdAA7zHwAO8yIADvMkAA7zJwAO8ygADvMpAA7zKgAO8ysADvMtAA7zMAAO8zEADvMyAA7zNAAO8zUADvOwAA7zsgAO87UADvO3AA7zugAO87sADvO8AA7zvQAO874ADvPAAA7zwwAO88QADvPFAA7zxwAO88gADvRDAA70RQAO9EgADvRKAA70TQAO9E4ADvRPAA70UAAO9FEADvRTAA70VgAO9FcADvRYAA70WgAO9FsADvTWAA702AAO9NsADvTdAA704AAO9OEADvTiAA704wAO9OQADvTmAA706QAO9OoADvTrAA707QAO9O4ADvVxAA71lQAO9bkADvXcAA72AwAO9iMADvZKAA72cQAO9pEADva1AA722QAO9tsADvbeAA724AAO9uIADvbkAA725wAO9uoADvbsAA727gAO9vEADvbzAA729QAO9vgADvb7AA72/AAO9wEADvcaAA73HwAO9yEADvcmAA73KQAO9ysADvd0AA73mAAO978ADvfjAA735gAO9+gADvfqAA737AAO9+4ADvfwAA738QAO9/QADvgNAA74MgAO+DQADvg2AA74OAAO+DoADvg8AA74PgAO+EAADvhCAA74RAAO+GkADvhsAA74bwAO+HIADvh1AA74eAAO+HsADvh+AA74gQAO+IQADviGAA75AQAO+QMADvkGAA75CAAO+QsADvkMAA75DQAO+Q4ADvkPAA75EQAO+RMADvkUAA75FQAO+RcADvkYAA75KQAO+SoADvksAA75pwAO+akADvmrAA75rQAO+bAADvmxAA75sgAO+bMADvm0AA75tgAO+bgADvm5AA75ugAO+bwADvm9AA76OAAO+joADvo9AA76PwAO+kIADvpDAA76RAAO+kUADvpGAA76SAAO+koADvpLAA76TAAO+k4ADvpPAA76YAAO+mUADvpoAA76agAO+nsADvqMAA76jwAO+pIADvqVAA76mAAO+poADvq2AA76yAAO+tIADvrlAA77YAAO+2IADvtkAA77ZgAO+2kADvtqAA77awAO+2wADvttAA77bwAO+3EADvtyAA77cwAO+3UADvt2AA778QAO+/MADvv2AA77+AAO+/sADvv8AA77/QAO+/4ADvv/AA78AQAO/AMADvwEAA78BQAO/AcADvwIAA78GQAO/BoADvwcAA78lwAO/JkADvybAA78nQAO/KAADvyhAA78ogAO/KMADvykAA78pgAO/KgADvypAA78qgAO/KwADvytAA79KAAO/SoADv0tAA79LwAO/TIADv0zAA79NAAO/TUADv02AA79OAAO/ToADv07AA79PAAO/T4ADv0/AA79WAAO/VkADv1aAA79XAAO/dcADv3ZAA792wAO/d0ADv3gAA794QAO/eIADv3jAA795AAO/eYADv3oAA796QAO/eoADv3sAA797QAO/mgADv5qAA7+bQAO/m8ADv5yAA7+cwAO/nQADv51AA7+dgAO/ngADv56AA7+ewAO/nwADv5+AA7+fwAO/o0ADv6mAA7+vwAO/sIADv7FAA7+yAAO/ssADv7OAA7+0QAO/uoADv7tAA7+8AAO/vMADv72AA7++QAO/vwADv7+AA7/GgAO/ywADv8/AA7/SgAO/90ADwAAAA8AIAAPAEAADwBCAA8ARAAPAEYADwBIAA8ASwAPAEwADwBNAA8AUAAPAFEADwBTAA8AVAAPAFYADwBZAA8AWgAPAFsADwBeAA8AXwAPAGQADwB9AA8AhgAPAIgADwCKAA8AkwAPAJYADwCZAA8AmwAPAOQADwEIAA8BLwAPAVMADwFWAA8BWAAPAVoADwFcAA8BXgAPAWAADwFhAA8BZAAPAX0ADwGeAA8BoAAPAaIADwGkAA8BpgAPAagADwGqAA8BrAAPAa4ADwHPAA8B0gAPAdUADwHYAA8B2wAPAd4ADwHhAA8B5AAPAecADwHpAA8CZAAPAmYADwJoAA8CagAPAm0ADwJuAA8CbwAPAnAADwJxAA8CcwAPAnUADwJ2AA8CdwAPAnkADwJ6AA8C9QAPAvcADwL5AA8C+wAPAv4ADwL/AA8DAAAPAwEADwMCAA8DBAAPAwYADwMHAA8DCAAPAwoADwMLAA8DhgAPA4gADwOLAA8DjQAPA5AADwORAA8DkgAPA5MADwOUAA8DlgAPA5gADwOZAA8DmgAPA5wADwOdAA8DtgAPA7cADwO4AA8DugAPBDUADwQ3AA8EOQAPBDsADwQ+AA8EPwAPBEAADwRBAA8EQgAPBEQADwRGAA8ERwAPBEgADwRKAA8ESwAPBMYADwTIAA8EygAPBMwADwTPAA8E0AAPBNEADwTSAA8E0wAPBNUADwTXAA8E2AAPBNkADwTbAA8E3AAPBVcADwVZAA8FWwAPBV0ADwVgAA8FYQAPBWIADwVjAA8FZAAPBWYADwVoAA8FaQAPBWoADwVsAA8FbQAPBegADwXqAA8F7AAPBe4ADwXxAA8F8gAPBfMADwX0AA8F9QAPBfcADwX5AA8F+gAPBfsADwX9AA8F/gAPBnkADwZ7AA8GfQAPBn8ADwaCAA8GgwAPBoQADwaFAA8GhgAPBogADwaKAA8GiwAPBowADwaOAA8GjwAPBtgADwb8AA8HIwAPB0cADwdKAA8HTAAPB04ADwdQAA8HUgAPB1QADwdVAA8HWAAPB3EADweOAA8HkAAPB5IADweUAA8HlgAPB5gADweaAA8HnAAPB7kADwe8AA8HvwAPB8IADwfFAA8HyAAPB8sADwfOAA8H0AAPCEsADwhNAA8ITwAPCFEADwhUAA8IVQAPCFYADwhXAA8IWAAPCFoADwhcAA8IXQAPCF4ADwhgAA8IYQAPCNwADwjeAA8I4AAPCOIADwjlAA8I5gAPCOcADwjoAA8I6QAPCOsADwjtAA8I7gAPCO8ADwjxAA8I8gAPCW0ADwlvAA8JcQAPCXMADwl2AA8JdwAPCXgADwl5AA8JegAPCXwADwl+AA8JfwAPCYAADwmCAA8JgwAPCf4ADwoAAA8KAgAPCgQADwoHAA8KCAAPCgkADwoKAA8KCwAPCg0ADwoPAA8KEAAPChEADwoTAA8KFAAPCo8ADwqRAA8KkwAPCpUADwqYAA8KmQAPCpoADwqbAA8KnAAPCp4ADwqgAA8KoQAPCqIADwqkAA8KpQAPCyAADwsiAA8LJQAPCycADwsqAA8LKwAPCywADwstAA8LLgAPCzAADwsyAA8LMwAPCzQADws2AA8LNwAPC0YADwvBAA8LwwAPC8UADwvHAA8LygAPC8sADwvMAA8LzQAPC84ADwvQAA8L0gAPC9MADwvUAA8L1gAPC9cADwxqAA8MjQAPDK0ADwzNAA8MzwAPDNEADwzTAA8M1QAPDNgADwzZAA8M2gAPDN0ADwzeAA8M4AAPDOEADwzkAA8M5wAPDOgADwzpAA8M7AAPDO0ADwzyAA8NCwAPDRQADw0WAA8NGQAPDSIADw0lAA8NKAAPDSoADw1zAA8NlwAPDb4ADw3iAA8N5QAPDecADw3pAA8N6wAPDe0ADw3vAA8N8AAPDfMADw4MAA8OLQAPDi8ADw4xAA8OMwAPDjUADw43AA8OOQAPDjsADw49AA8OXgAPDmEADw5kAA8OZwAPDmoADw5tAA8OcAAPDnMADw52AA8OeAAPDvMADw71AA8O9wAPDvkADw78AA8O/QAPDv4ADw7/AA8PAAAPDwIADw8EAA8PBQAPDwYADw8IAA8PCQAPD4QADw+GAA8PiAAPD4oADw+NAA8PjgAPD48ADw+QAA8PkQAPD5MADw+VAA8PlgAPD5cADw+ZAA8PmgAPEBUADxAXAA8QGgAPEBwADxAfAA8QIAAPECEADxAiAA8QIwAPECUADxAnAA8QKAAPECkADxArAA8QLAAPEEUADxBGAA8QRwAPEEkADxDEAA8QxgAPEMgADxDKAA8QzQAPEM4ADxDPAA8Q0AAPENEADxDTAA8Q1QAPENYADxDXAA8Q2QAPENoADxFVAA8RVwAPEVkADxFbAA8RXgAPEV8ADxFgAA8RYQAPEWIADxFkAA8RZgAPEWcADxFoAA8RagAPEWsADxHmAA8R6AAPEeoADxHsAA8R7wAPEfAADxHxAA8R8gAPEfMADxH1AA8R9wAPEfgADxH5AA8R+wAPEfwADxJ3AA8SeQAPEnsADxJ9AA8SgAAPEoEADxKCAA8SgwAPEoQADxKGAA8SiAAPEokADxKKAA8SjAAPEo0ADxMIAA8TCgAPEwwADxMOAA8TEQAPExIADxMTAA8TFAAPExUADxMXAA8TGQAPExoADxMbAA8THQAPEx4ADxNnAA8TiwAPE7IADxPWAA8T2QAPE9wADxPeAA8T4AAPE+IADxPkAA8T5QAPE+gADxQBAA8UHgAPFCEADxQkAA8UJwAPFCoADxQtAA8UMAAPFDMADxRQAA8UUwAPFFYADxRZAA8UXAAPFF8ADxRiAA8UZQAPFGcADxTiAA8U5AAPFOcADxTpAA8U7AAPFO0ADxTuAA8U7wAPFPAADxTyAA8U9QAPFPYADxT3AA8U+QAPFPoADxV1AA8VdwAPFXoADxV8AA8VfwAPFYAADxWBAA8VggAPFYMADxWFAA8ViAAPFYkADxWKAA8VjAAPFY0ADxYIAA8WCgAPFg0ADxYPAA8WEgAPFhMADxYUAA8WFQAPFhYADxYYAA8WGwAPFhwADxYdAA8WHwAPFiAADxabAA8WnQAPFqAADxaiAA8WpQAPFqYADxanAA8WqAAPFqkADxarAA8WrgAPFq8ADxawAA8WsgAPFrMADxcuAA8XMAAPFzIADxc0AA8XNwAPFzgADxc5AA8XOgAPFzsADxc9AA8XQAAPF0EADxdCAA8XRAAPF0UADxfAAA8XwgAPF8QADxfGAA8XyQAPF8oADxfLAA8XzAAPF80ADxfPAA8X0gAPF9MADxfUAA8X1gAPF9cADxhSAA8YVAAPGFcADxhZAA8YXAAPGF0ADxheAA8YXwAPGGAADxhiAA8YZQAPGGYADxhnAA8YaQAPGGoADxj9AA8ZIAAPGUAADxlgAA8ZYgAPGWQADxlmAA8ZaAAPGWsADxlsAA8ZbQAPGXAADxlxAA8ZcwAPGXQADxl2AA8ZeQAPGXoADxl7AA8ZfgAPGX8ADxmEAA8ZnQAPGaYADxmoAA8ZqgAPGbMADxm2AA8ZuQAPGbsADxoEAA8aKAAPGk8ADxpzAA8adgAPGngADxp6AA8afAAPGn4ADxqAAA8agQAPGoQADxqdAA8avgAPGsAADxrCAA8axAAPGsYADxrIAA8aygAPGswADxrOAA8a7wAPGvIADxr1AA8a+AAPGvsADxr+AA8bAQAPGwQADxsHAA8bCQAPG4QADxuGAA8biAAPG4oADxuNAA8bjgAPG48ADxuQAA8bkQAPG5MADxuVAA8blgAPG5cADxuZAA8bmgAPHBUADxwXAA8cGQAPHBsADxweAA8cHwAPHCAADxwhAA8cIgAPHCQADxwmAA8cJwAPHCgADxwqAA8cKwAPHKYADxyoAA8cqwAPHK0ADxywAA8csQAPHLIADxyzAA8ctAAPHLYADxy4AA8cuQAPHLoADxy8AA8cvQAPHNYADxzXAA8c2AAPHNoADx1VAA8dVwAPHVkADx1bAA8dXgAPHV8ADx1gAA8dYQAPHWIADx1kAA8dZgAPHWcADx1oAA8dagAPHWsADx3mAA8d6AAPHeoADx3sAA8d7wAPHfAADx3xAA8d8gAPHfMADx31AA8d9wAPHfgADx35AA8d+wAPHfwADx53AA8eeQAPHnsADx59AA8egAAPHoEADx6CAA8egwAPHoQADx6GAA8eiAAPHokADx6KAA8ejAAPHo0ADx8IAA8fCgAPHwwADx8OAA8fEQAPHxIADx8TAA8fFAAPHxUADx8XAA8fGQAPHxoADx8bAA8fHQAPHx4ADx+ZAA8fmwAPH50ADx+fAA8fogAPH6MADx+kAA8fpQAPH6YADx+oAA8fqgAPH6sADx+sAA8frgAPH68ADx/4AA8gHAAPIEMADyBnAA8gagAPIGwADyBuAA8gcAAPIHIADyB0AA8gdQAPIHgADyCRAA8grgAPILAADyCyAA8gtAAPILYADyC4AA8gugAPILwADyDZAA8g3AAPIN8ADyDiAA8g5QAPIOgADyDrAA8g7gAPIPAADyFrAA8hbQAPIW8ADyFxAA8hdAAPIXUADyF2AA8hdwAPIXgADyF6AA8hfAAPIX0ADyF+AA8hgAAPIYEADyH8AA8h/gAPIgAADyICAA8iBQAPIgYADyIHAA8iCAAPIgkADyILAA8iDQAPIg4ADyIPAA8iEQAPIhIADyKNAA8ijwAPIpEADyKTAA8ilgAPIpcADyKYAA8imQAPIpoADyKcAA8ingAPIp8ADyKgAA8iogAPIqMADyMeAA8jIAAPIyMADyMlAA8jKAAPIykADyMqAA8jKwAPIywADyMuAA8jMAAPIzEADyMyAA8jNAAPIzUADyOwAA8jsgAPI7QADyO2AA8juQAPI7oADyO7AA8jvAAPI70ADyO/AA8jwQAPI8IADyPDAA8jxQAPI8YADyRBAA8kQwAPJEUADyRHAA8kSgAPJEsADyRMAA8kTQAPJE4ADyRQAA8kUgAPJFMADyRUAA8kVgAPJFcADyTSAA8k1AAPJNYADyTYAA8k2wAPJNwADyTdAA8k3gAPJN8ADyThAA8k4wAPJOQADyTlAA8k5wAPJOgADyV7AA8lngAPJb4ADyXeAA8l4AAPJeIADyXkAA8l5gAPJekADyXqAA8l6wAPJe4ADyXvAA8l8QAPJfIADyX0AA8l9wAPJfgADyX5AA8l/AAPJf0ADyYCAA8mGwAPJiQADyYmAA8mKAAPJjEADyY0AA8mNwAPJjkADyaCAA8mpgAPJs0ADybxAA8m9AAPJvYADyb4AA8m+gAPJvwADyb+AA8m/wAPJwIADycbAA8nPAAPJz4ADydAAA8nQgAPJ0QADydGAA8nSAAPJ0oADydMAA8nbQAPJ3AADydzAA8ndgAPJ3kADyd8AA8nfwAPJ4IADyeFAA8nhwAPKAIADygEAA8oBgAPKAgADygLAA8oDAAPKA0ADygOAA8oDwAPKBEADygTAA8oFAAPKBUADygXAA8oGAAPKJMADyiVAA8olwAPKJkADyicAA8onQAPKJ4ADyifAA8ooAAPKKIADyikAA8opQAPKKYADyioAA8oqQAPKSQADykmAA8pKQAPKSsADykuAA8pLwAPKTAADykxAA8pMgAPKTQADyk2AA8pNwAPKTgADyk6AA8pOwAPKVQADylVAA8pVgAPKVgADynTAA8p1QAPKdcADynZAA8p3AAPKd0ADyneAA8p3wAPKeAADyniAA8p5AAPKeUADynmAA8p6AAPKekADypkAA8qZgAPKmgADypqAA8qbQAPKm4ADypvAA8qcAAPKnEADypzAA8qdQAPKnYADyp3AA8qeQAPKnoADyr1AA8q9wAPKvkADyr7AA8q/gAPKv8ADysAAA8rAQAPKwIADysEAA8rBgAPKwcADysIAA8rCgAPKwsADyuGAA8riAAPK4oADyuMAA8rjwAPK5AADyuRAA8rkgAPK5MADyuVAA8rlwAPK5gADyuZAA8rmwAPK5wADywXAA8sGQAPLBsADywdAA8sIAAPLCEADywiAA8sIwAPLCQADywmAA8sKAAPLCkADywqAA8sLAAPLC0ADyx2AA8smgAPLMEADyzlAA8s6AAPLOoADyzsAA8s7gAPLPAADyzyAA8s8wAPLPYADy0PAA8tLAAPLS4ADy0wAA8tMgAPLTQADy02AA8tOAAPLToADy1XAA8tWgAPLV0ADy1gAA8tYwAPLWYADy1pAA8tbAAPLW4ADy3pAA8t6wAPLe0ADy3vAA8t8gAPLfMADy30AA8t9QAPLfYADy34AA8t+gAPLfsADy38AA8t/gAPLf8ADy56AA8ufAAPLn4ADy6AAA8ugwAPLoQADy6FAA8uhgAPLocADy6JAA8uiwAPLowADy6NAA8ujwAPLpAADy8LAA8vDQAPLw8ADy8RAA8vFAAPLxUADy8WAA8vFwAPLxgADy8aAA8vHAAPLx0ADy8eAA8vIAAPLyEADy+cAA8vngAPL6EADy+jAA8vpgAPL6cADy+oAA8vqQAPL6oADy+sAA8vrgAPL68ADy+wAA8vsgAPL7MADzAuAA8wMAAPMDIADzA0AA8wNwAPMDgADzA5AA8wOgAPMDsADzA9AA8wPwAPMEAADzBBAA8wQwAPMEQADzC/AA8wwQAPMMMADzDFAA8wyAAPMMkADzDKAA8wywAPMMwADzDOAA8w0AAPMNEADzDSAA8w1AAPMNUADzFQAA8xUgAPMVQADzFWAA8xWQAPMVoADzFbAA8xXAAPMV0ADzFfAA8xYQAPMWIADzFjAA8xZQAPMWYADzH5AA8yHAAPMjwADzJcAA8yXgAPMmAADzJiAA8yZAAPMmcADzJoAA8yaQAPMmwADzJtAA8ybwAPMnAADzJyAA8ydQAPMnYADzJ3AA8yegAPMnsADzKAAA8ymQAPMqIADzKkAA8ypgAPMq8ADzKyAA8ytQAPMrcADzMAAA8zJAAPM0sADzNvAA8zcgAPM3QADzN2AA8zeAAPM3oADzN8AA8zfQAPM4AADzOZAA8zugAPM7wADzO+AA8zwAAPM8IADzPEAA8zxgAPM8gADzPKAA8z6wAPM+4ADzPxAA8z9AAPM/cADzP6AA8z/QAPNAAADzQDAA80BQAPNIAADzSCAA80hAAPNIYADzSJAA80igAPNIsADzSMAA80jQAPNI8ADzSRAA80kgAPNJMADzSVAA80lgAPNREADzUTAA81FQAPNRcADzUaAA81GwAPNRwADzUdAA81HgAPNSAADzUiAA81IwAPNSQADzUmAA81JwAPNaIADzWkAA81pwAPNakADzWsAA81rQAPNa4ADzWvAA81sAAPNbIADzW0AA81tQAPNbYADzW4AA81uQAPNdIADzXTAA811AAPNdYADzZRAA82UwAPNlUADzZXAA82WgAPNlsADzZcAA82XQAPNl4ADzZgAA82YgAPNmMADzZkAA82ZgAPNmcADzbiAA825AAPNuYADzboAA826wAPNuwADzbtAA827gAPNu8ADzbxAA828wAPNvQADzb1AA829wAPNvgADzdzAA83dQAPN3cADzd5AA83fAAPN30ADzd+AA83fwAPN4AADzeCAA83hAAPN4UADzeGAA83iAAPN4kADzgEAA84BgAPOAgADzgKAA84DQAPOA4ADzgPAA84EAAPOBEADzgTAA84FQAPOBYADzgXAA84GQAPOBoADziVAA84lwAPOJkADzibAA84ngAPOJ8ADzigAA84oQAPOKIADzikAA84pgAPOKcADzioAA84qgAPOKsADzj0AA85GAAPOT8ADzljAA85ZgAPOWgADzlqAA85bAAPOW4ADzlwAA85cQAPOXQADzmNAA85qgAPOawADzmuAA85sAAPObIADzm0AA85tgAPObgADznVAA852AAPOdsADzneAA854QAPOeQADznnAA856gAPOewADzpnAA86aQAPOmsADzptAA86cAAPOnEADzpyAA86cwAPOnQADzp2AA86eAAPOnkADzp6AA86fAAPOn0ADzr4AA86+gAPOvwADzr+AA87AQAPOwIADzsDAA87BAAPOwUADzsHAA87CQAPOwoADzsLAA87DQAPOw4ADzuJAA87iwAPO40ADzuPAA87kgAPO5MADzuUAA87lQAPO5YADzuYAA87mgAPO5sADzucAA87ngAPO58ADzwaAA88HAAPPB4ADzwgAA88IwAPPCQADzwlAA88JgAPPCcADzwpAA88KwAPPCwADzwtAA88LwAPPDAADzyrAA88rQAPPK8ADzyxAA88tAAPPLUADzy2AA88twAPPLgADzy6AA88vAAPPL0ADzy+AA88wAAPPMEADz08AA89PgAPPUEADz1DAA89RgAPPUcADz1IAA89SQAPPUoADz1MAA89TgAPPU8ADz1QAA89UgAPPVMADz1yAA897QAPPe8ADz3xAA898wAPPfYADz33AA89+AAPPfkADz36AA89/AAPPf4ADz3/AA8+AAAPPgIADz4DAA8+lgAPPrkADz7ZAA8++QAPPvsADz79AA8+/wAPPwEADz8EAA8/BQAPPwYADz8JAA8/CgAPPwwADz8NAA8/DwAPPxIADz8TAA8/FAAPPxcADz8YAA8/IQAPPzoADz9DAA8/RQAPP0cADz9QAA8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Q1wAPUNgAD1DZAA9Q2wAPUVYAD1FYAA9RWgAPUVwAD1FfAA9RYAAPUWEAD1FiAA9RYwAPUWUAD1FnAA9RaAAPUWkAD1FrAA9RbAAPUecAD1HpAA9R6wAPUe0AD1HwAA9R8QAPUfIAD1HzAA9R9AAPUfYAD1H4AA9R+QAPUfoAD1H8AA9R/QAPUngAD1J6AA9SfAAPUn4AD1KBAA9SggAPUoMAD1KEAA9ShQAPUocAD1KJAA9SigAPUosAD1KNAA9SjgAPUwkAD1MLAA9TDQAPUw8AD1MSAA9TEwAPUxQAD1MVAA9TFgAPUxgAD1MaAA9TGwAPUxwAD1MeAA9THwAPU5oAD1OcAA9TngAPU6AAD1OjAA9TpAAPU6UAD1OmAA9TpwAPU6kAD1OrAA9TrAAPU60AD1OvAA9TsAAPU/kAD1QdAA9URAAPVGgAD1RrAA9UbQAPVG8AD1RxAA9UcwAPVHUAD1R2AA9UeQAPVJIAD1SvAA9UsQAPVLMAD1S1AA9UtwAPVLkAD1S7AA9UvQAPVNoAD1TdAA9U4AAPVOMAD1TmAA9U6QAPVOwAD1TvAA9U8QAPVWwAD1VuAA9VcAAPVXIAD1V1AA9VdgAPVXcAD1V4AA9VeQAPVXsAD1V9AA9VfgAPVX8AD1WBAA9VggAPVf0AD1X/AA9WAQAPVgMAD1YGAA9WBwAPVggAD1YJAA9WCgAPVgwAD1YOAA9WDwAPVhAAD1YSAA9WEwAPVo4AD1aQAA9WkgAPVpQAD1aXAA9WmAAPVpkAD1aaAA9WmwAPVp0AD1afAA9WoAAPVqEAD1ajAA9WpAAPVx8AD1chAA9XJAAPVyYAD1cpAA9XKgAPVysAD1csAA9XLQAPVy8AD1cxAA9XMgAPVzMAD1c1AA9XNgAPV7EAD1ezAA9XtQAPV7cAD1e6AA9XuwAPV7wAD1e9AA9XvgAPV8AAD1fCAA9XwwAPV8QAD1fGAA9XxwAPWEIAD1hEAA9YRgAPWEgAD1hLAA9YTAAPWE0AD1hOAA9YTwAPWFEAD1hTAA9YVAAPWFUAD1hXAA9YWAAPWNMAD1jVAA9Y1wAPWNkAD1jcAA9Y3QAPWN4AD1jfAA9Y4AAPWOIAD1jkAA9Y5QAPWOYAD1joAA9Y6QAPWXwAD1mfAA9ZvwAPWd8AD1nhAA9Z4wAPWeUAD1nnAA9Z6gAPWesAD1nsAA9Z7wAPWfAAD1nyAA9Z8wAPWfUAD1n4AA9Z+QAPWfoAD1n9AA9Z/gAPWgMAD1ocAA9aJQAPWicAD1opAA9aMgAPWjUAD1o4AA9aOgAPWoMAD1qnAA9azgAPWvIAD1r1AA9a9wAPWvkAD1r7AA9a/QAPWv8AD1sAAA9bAwAPWxwAD1s9AA9bPwAPW0EAD1tDAA9bRQAPW0cAD1tJAA9bSwAPW00AD1tuAA9bcQAPW3QAD1t3AA9begAPW30AD1uAAA9bgwAPW4YAD1uIAA9cAwAPXAUAD1wHAA9cCQAPXAwAD1wNAA9cDgAPXA8AD1wQAA9cEgAPXBQAD1wVAA9cFgAPXBgAD1wZAA9clAAPXJYAD1yYAA9cmgAPXJ0AD1yeAA9cnwAPXKAAD1yhAA9cowAPXKUAD1ymAA9cpwAPXKkAD1yqAA9dJQAPXScAD10qAA9dLAAPXS8AD10wAA9dMQAPXTIAD10zAA9dNQAPXTcAD104AA9dOQAPXTsAD108AA9dVQAPXVYAD11XAA9dWQAPXdQAD13WAA9d2AAPXdoAD13dAA9d3gAPXd8AD13gAA9d4QAPXeMAD13lAA9d5gAPXecAD13pAA9d6gAPXmUAD15nAA9eaQAPXmsAD15uAA9ebwAPXnAAD15xAA9ecgAPXnQAD152AA9edwAPXngAD156AA9eewAPXvYAD174AA9e+gAPXvwAD17/AA9fAAAPXwEAD18CAA9fAwAPXwUAD18HAA9fCAAPXwkAD18LAA9fDAAPX4cAD1+JAA9fiwAPX40AD1+QAA9fkQAPX5IAD1+TAA9flAAPX5YAD1+YAA9fmQAPX5oAD1+cAA9fnQAPYBgAD2AaAA9gHAAPYB4AD2AhAA9gIgAPYCMAD2AkAA9gJQAPYCcAD2ApAA9gKgAPYCsAD2AtAA9gLgAPYHcAD2CbAA9gwgAPYOYAD2DpAA9g6wAPYO0AD2DvAA9g8QAPYPMAD2D0AA9g9wAPYRAAD2EtAA9hLwAPYTEAD2EzAA9hNQAPYTcAD2E5AA9hOwAPYVgAD2FbAA9hXgAPYWEAD2FkAA9hZwAPYWoAD2FtAA9hbwAPYeoAD2HsAA9h7gAPYfAAD2HzAA9h9AAPYfUAD2H2AA9h9wAPYfkAD2H7AA9h/AAPYf0AD2H/AA9iAAAPYnsAD2J9AA9ifwAPYoEAD2KEAA9ihQAPYoYAD2KHAA9iiAAPYooAD2KMAA9ijQAPYo4AD2KQAA9ikQAPYwwAD2MOAA9jEAAPYxIAD2MVAA9jFgAPYxcAD2MYAA9jGQAPYxsAD2MdAA9jHgAPYx8AD2MhAA9jIgAPY50AD2OfAA9jogAPY6QAD2OnAA9jqAAPY6kAD2OqAA9jqwAPY60AD2OvAA9jsAAPY7EAD2OzAA9jtAAPZC8AD2QxAA9kMwAPZDUAD2Q4AA9kOQAPZDoAD2Q7AA9kPAAPZD4AD2RAAA9kQQAPZEIAD2REAA9kRQAPZMAAD2TCAA9kxAAPZMYAD2TJAA9kygAPZMsAD2TMAA9kzQAPZM8AD2TRAA9k0gAPZNMAD2TVAA9k1gAPZVEAD2VTAA9lVQAPZVcAD2VaAA9lWwAPZVwAD2VdAA9lXgAPZWAAD2ViAA9lYwAPZWQAD2VmAA9lZwAPZfoAD2YdAA9mPQAPZl0AD2ZfAA9mYQAPZmMAD2ZlAA9maAAPZmkAD2ZqAA9mbQAPZm4AD2ZwAA9mcQAPZnMAD2Z2AA9mdwAPZngAD2Z7AA9mfAAPZoUAD2aeAA9mpwAPZqkAD2arAA9mtAAPZrcAD2a6AA9mvAAPZwUAD2cpAA9nUAAPZ3QAD2d3AA9neQAPZ3sAD2d9AA9nfwAPZ4EAD2eCAA9nhQAPZ54AD2e/AA9nwQAPZ8MAD2fFAA9nxwAPZ8kAD2fLAA9nzQAPZ88AD2fwAA9n8wAPZ/YAD2f5AA9n/AAPZ/8AD2gCAA9oBQAPaAgAD2gKAA9ohQAPaIcAD2iJAA9oiwAPaI4AD2iPAA9okAAPaJEAD2iSAA9olAAPaJYAD2iXAA9omAAPaJoAD2ibAA9pFgAPaRgAD2kaAA9pHAAPaR8AD2kgAA9pIQAPaSIAD2kjAA9pJQAPaScAD2koAA9pKQAPaSsAD2ksAA9ppwAPaakAD2msAA9prgAPabEAD2myAA9pswAPabQAD2m1AA9ptwAPabkAD2m6AA9puwAPab0AD2m+AA9p1wAPadgAD2nZAA9p2wAPalYAD2pYAA9qWgAPalwAD2pfAA9qYAAPamEAD2piAA9qYwAPamUAD2pnAA9qaAAPamkAD2prAA9qbAAPaucAD2rpAA9q6wAPau0AD2rwAA9q8QAPavIAD2rzAA9q9AAPavYAD2r4AA9q+QAPavoAD2r8AA9q/QAPa3gAD2t6AA9rfAAPa34AD2uBAA9rggAPa4MAD2uEAA9rhQAPa4cAD2uJAA9rigAPa4sAD2uNAA9rjgAPbAkAD2wLAA9sDQAPbA8AD2wSAA9sEwAPbBQAD2wVAA9sFgAPbBgAD2waAA9sGwAPbBwAD2weAA9sHwAPbJoAD2ycAA9sngAPbKAAD2yjAA9spAAPbKUAD2ymAA9spwAPbKkAD2yrAA9srAAPbK0AD2yvAA9ssAAPbPkAD20dAA9tRAAPbWgAD21rAA9tbQAPbW8AD21xAA9tcwAPbXUAD212AA9teQAPbZIAD22vAA9tsQAPbbMAD221AA9ttwAPbbkAD227AA9tvQAPbdoAD23dAA9t4AAPbeMAD23mAA9t6QAPbewAD23vAA9t8QAPbmwAD25uAA9ucAAPbnIAD251AA9udgAPbncAD254AA9ueQAPbnsAD259AA9ufgAPbn8AD26BAA9uggAPbv0AD27/AA9vAQAPbwMAD28GAA9vBwAPbwgAD28JAA9vCgAPbwwAD28OAA9vDwAPbxAAD28SAA9vEwAPb44AD2+QAA9vkgAPb5QAD2+XAA9vmAAPb5kAD2+aAA9vmwAPb50AD2+fAA9voAAPb6EAD2+jAA9vpAAPcB8AD3AhAA9wIwAPcCUAD3AoAA9wKQAPcCoAD3ArAA9wLAAPcC4AD3AwAA9wMQAPcDIAD3A0AA9wNQAPcLAAD3CyAA9wtAAPcLYAD3C5AA9wugAPcLsAD3C8AA9wvQAPcL8AD3DBAA9wwgAPcMMAD3DFAA9wxgAPcUEAD3FDAA9xRgAPcUgAD3FLAA9xTAAPcU0AD3FOAA9xTwAPcVEAD3FTAA9xVAAPcVUAD3FXAA9xWAAPcXMAD3HuAA9x8AAPcfIAD3H0AA9x9wAPcfgAD3H5AA9x+gAPcfsAD3H9AA9x/wAPcgAAD3IBAA9yAwAPcgQAD3KXAA9yugAPctoAD3L6AA9y/AAPcv4AD3MAAA9zAgAPcwUAD3MGAA9zBwAPcwoAD3MLAA9zDQAPcw4AD3MRAA9zFAAPcxUAD3MWAA9zGQAPcxoAD3MfAA9zOAAPc0EAD3NDAA9zRgAPc08AD3NSAA9zVQAPc1cAD3OgAA9zxAAPc+sAD3QPAA90EgAPdBQAD3QWAA90GAAPdBoAD3QcAA90HQAPdCAAD3Q5AA90WgAPdFwAD3ReAA90YAAPdGIAD3RkAA90ZgAPdGgAD3RqAA90iwAPdI4AD3SRAA90lAAPdJcAD3SaAA90nQAPdKAAD3SjAA90pQAPdSAAD3UiAA91JAAPdSYAD3UpAA91KgAPdSsAD3UsAA91LQAPdS8AD3UxAA91MgAPdTMAD3U1AA91NgAPdbEAD3WzAA91tQAPdbcAD3W6AA91uwAPdbwAD3W9AA91vgAPdcAAD3XCAA91wwAPdcQAD3XGAA91xwAPdkIAD3ZEAA92RwAPdkkAD3ZMAA92TQAPdk4AD3ZPAA92UAAPdlIAD3ZUAA92VQAPdlYAD3ZYAA92WQAPdnIAD3ZzAA92dAAPdnYAD3bxAA928wAPdvUAD3b3AA92+gAPdvsAD3b8AA92/QAPdv4AD3cAAA93AgAPdwMAD3cEAA93BgAPdwcAD3eCAA93hAAPd4YAD3eIAA93iwAPd4wAD3eNAA93jgAPd48AD3eRAA93kwAPd5QAD3eVAA93lwAPd5gAD3gTAA94FQAPeBcAD3gZAA94HAAPeB0AD3geAA94HwAPeCAAD3giAA94JAAPeCUAD3gmAA94KAAPeCkAD3ikAA94pgAPeKgAD3iqAA94rQAPeK4AD3ivAA94sAAPeLEAD3izAA94tQAPeLYAD3i3AA94uQAPeLoAD3k1AA95NwAPeTkAD3k7AA95PgAPeT8AD3lAAA95QQAPeUIAD3lEAA95RgAPeUcAD3lIAA95SgAPeUsAD3mUAA95uAAPed8AD3oDAA96BgAPegkAD3oLAA96DQAPeg8AD3oRAA96EgAPehUAD3ouAA96SwAPek4AD3pRAA96VAAPelcAD3paAA96XQAPemAAD3p9AA96gAAPeoMAD3qGAA96iQAPeowAD3qPAA96kgAPepQAD3sPAA97EQAPexQAD3sWAA97GQAPexoAD3sbAA97HAAPex0AD3sfAA97IgAPeyMAD3skAA97JgAPeycAD3uiAA97pAAPe6cAD3upAA97rAAPe60AD3uuAA97rwAPe7AAD3uyAA97tQAPe7YAD3u3AA97uQAPe7oAD3w1AA98NwAPfDoAD3w8AA98PwAPfEAAD3xBAA98QgAPfEMAD3xFAA98SAAPfEkAD3xKAA98TAAPfE0AD3zIAA98ygAPfM0AD3zPAA980gAPfNMAD3zUAA981QAPfNYAD3zYAA982wAPfNwAD3zdAA983wAPfOAAD31bAA99XQAPfV8AD31hAA99ZAAPfWUAD31mAA99ZwAPfWgAD31qAA99bQAPfW4AD31vAA99cQAPfXIAD33tAA997wAPffEAD33zAA999gAPffcAD334AA99+QAPffoAD338AA99/wAPfgAAD34BAA9+AwAPfgQAD35/AA9+gQAPfoQAD36GAA9+iQAPfooAD36LAA9+jAAPfo0AD36PAA9+kgAPfpMAD36UAA9+lgAPfpcAD38qAA9/TQAPf20AD3+NAA9/jwAPf5EAD3+TAA9/lQAPf5gAD3+ZAA9/mgAPf50AD3+eAA9/oAAPf6EAD3+jAA9/pgAPf6cAD3+oAA9/qwAPf6wAD3+xAA9/ygAPf9MAD3/VAA9/1wAPf+AAD3/jAA9/5gAPf+gAD4AxAA+AVQAPgHwAD4CgAA+AowAPgKUAD4CnAA+AqQAPgKsAD4CtAA+ArgAPgLEAD4DKAA+A6wAPgO0AD4DvAA+A8QAPgPMAD4D1AA+A9wAPgPkAD4D7AA+BHAAPgR8AD4EiAA+BJQAPgSgAD4ErAA+BLgAPgTEAD4E0AA+BNgAPgbEAD4GzAA+BtQAPgbcAD4G6AA+BuwAPgbwAD4G9AA+BvgAPgcAAD4HCAA+BwwAPgcQAD4HGAA+BxwAPgkIAD4JEAA+CRgAPgkgAD4JLAA+CTAAPgk0AD4JOAA+CTwAPglEAD4JTAA+CVAAPglUAD4JXAA+CWAAPgtMAD4LVAA+C2AAPgtoAD4LdAA+C3gAPgt8AD4LgAA+C4QAPguMAD4LlAA+C5gAPgucAD4LpAA+C6gAPgwMAD4MEAA+DBQAPgwcAD4OCAA+DhAAPg4YAD4OIAA+DiwAPg4wAD4ONAA+DjgAPg48AD4ORAA+DkwAPg5QAD4OVAA+DlwAPg5gAD4QTAA+EFQAPhBcAD4QZAA+EHAAPhB0AD4QeAA+EHwAPhCAAD4QiAA+EJAAPhCUAD4QmAA+EKAAPhCkAD4SkAA+EpgAPhKgAD4SqAA+ErQAPhK4AD4SvAA+EsAAPhLEAD4SzAA+EtQAPhLYAD4S3AA+EuQAPhLoAD4U1AA+FNwAPhTkAD4U7AA+FPgAPhT8AD4VAAA+FQQAPhUIAD4VEAA+FRgAPhUcAD4VIAA+FSgAPhUsAD4XGAA+FyAAPhcoAD4XMAA+FzwAPhdAAD4XRAA+F0gAPhdMAD4XVAA+F1wAPhdgAD4XZAA+F2wAPhdwAD4YlAA+GSQAPhnAAD4aUAA+GlwAPhpkAD4abAA+GnQAPhp8AD4ahAA+GogAPhqUAD4a+AA+G2wAPht0AD4bfAA+G4QAPhuMAD4blAA+G5wAPhukAD4cGAA+HCQAPhwwAD4cPAA+HEgAPhxUAD4cYAA+HGwAPhx0AD4eYAA+HmgAPh50AD4efAA+HogAPh6MAD4ekAA+HpQAPh6YAD4eoAA+HqgAPh6sAD4esAA+HrgAPh68AD4gqAA+ILAAPiC4AD4gwAA+IMwAPiDQAD4g1AA+INgAPiDcAD4g5AA+IOwAPiDwAD4g9AA+IPwAPiEAAD4i7AA+IvQAPiL8AD4jBAA+IxAAPiMUAD4jGAA+IxwAPiMgAD4jKAA+IzAAPiM0AD4jOAA+I0AAPiNEAD4lMAA+JTgAPiVEAD4lTAA+JVgAPiVcAD4lYAA+JWQAPiVoAD4lcAA+JXgAPiV8AD4lgAA+JYgAPiWMAD4neAA+J4AAPieIAD4nkAA+J5wAPiegAD4npAA+J6gAPiesAD4ntAA+J7wAPifAAD4nxAA+J8wAPifQAD4pvAA+KcQAPinMAD4p1AA+KeAAPinkAD4p6AA+KewAPinwAD4p+AA+KgAAPioEAD4qCAA+KhAAPioUAD4sAAA+LAgAPiwQAD4sGAA+LCQAPiwoAD4sLAA+LDAAPiw0AD4sPAA+LEQAPixIAD4sTAA+LFQAPixYAD4upAA+LzAAPi+wAD4wMAA+MDgAPjBAAD4wSAA+MFAAPjBcAD4wYAA+MGQAPjBwAD4wdAA+MHwAPjCAAD4wiAA+MJQAPjCYAD4wnAA+MKgAPjCsAD4w0AA+MTQAPjFYAD4xYAA+MWgAPjGMAD4xmAA+MaQAPjGsAD4y0AA+M2AAPjP8AD40jAA+NJgAPjSgAD40qAA+NLAAPjS4AD40wAA+NMQAPjTQAD41NAA+NbgAPjXAAD41yAA+NdAAPjXYAD414AA+NegAPjXwAD41+AA+NnwAPjaIAD42lAA+NqAAPjasAD42uAA+NsQAPjbQAD423AA+NuQAPjjQAD442AA+OOAAPjjoAD449AA+OPgAPjj8AD45AAA+OQQAPjkMAD45FAA+ORgAPjkcAD45JAA+OSgAPjsUAD47HAA+OyQAPjssAD47OAA+OzwAPjtAAD47RAA+O0gAPjtQAD47WAA+O1wAPjtgAD47aAA+O2wAPj1YAD49YAA+PWwAPj10AD49gAA+PYQAPj2IAD49jAA+PZAAPj2YAD49oAA+PaQAPj2oAD49sAA+PbQAPj4YAD4+HAA+PiAAPj4oAD5AFAA+QBwAPkAkAD5ALAA+QDgAPkA8AD5AQAA+QEQAPkBIAD5AUAA+QFgAPkBcAD5AYAA+QGgAPkBsAD5CWAA+QmAAPkJoAD5CcAA+QnwAPkKAAD5ChAA+QogAPkKMAD5ClAA+QpwAPkKgAD5CpAA+QqwAPkKwAD5EnAA+RKQAPkSsAD5EtAA+RMAAPkTEAD5EyAA+RMwAPkTQAD5E2AA+ROAAPkTkAD5E6AA+RPAAPkT0AD5G4AA+RugAPkbwAD5G+AA+RwQAPkcIAD5HDAA+RxAAPkcUAD5HHAA+RyQAPkcoAD5HLAA+RzQAPkc4AD5JJAA+SSwAPkk0AD5JPAA+SUgAPklMAD5JUAA+SVQAPklYAD5JYAA+SWgAPklsAD5JcAA+SXgAPkl8AD5KoAA+SzAAPkvMAD5MXAA+TGgAPkxwAD5MeAA+TIAAPkyIAD5MkAA+TJQAPkygAD5NBAA+TXgAPk2AAD5NiAA+TZAAPk2YAD5NoAA+TagAPk2wAD5OJAA+TjAAPk48AD5OSAA+TlQAPk5gAD5ObAA+TngAPk6AAD5QbAA+UHQAPlCAAD5QiAA+UJQAPlCYAD5QnAA+UKAAPlCkAD5QrAA+ULQAPlC4AD5QvAA+UMQAPlDIAD5StAA+UrwAPlLEAD5SzAA+UtgAPlLcAD5S4AA+UuQAPlLoAD5S8AA+UvgAPlL8AD5TAAA+UwgAPlMMAD5U+AA+VQAAPlUIAD5VEAA+VRwAPlUgAD5VJAA+VSgAPlUsAD5VNAA+VTwAPlVAAD5VRAA+VUwAPlVQAD5XPAA+V0QAPldQAD5XWAA+V2QAPldoAD5XbAA+V3AAPld0AD5XfAA+V4QAPleIAD5XjAA+V5QAPleYAD5ZhAA+WYwAPlmUAD5ZnAA+WagAPlmsAD5ZsAA+WbQAPlm4AD5ZwAA+WcgAPlnMAD5Z0AA+WdgAPlncAD5byAA+W9AAPlvYAD5b4AA+W+wAPlvwAD5b9AA+W/gAPlv8AD5cBAA+XAwAPlwQAD5cFAA+XBwAPlwgAD5eDAA+XhQAPl4cAD5eJAA+XjAAPl40AD5eOAA+XjwAPl5AAD5eSAA+XlAAPl5UAD5eWAA+XmAAPl5kAD5gsAA+YTwAPmG8AD5iPAA+YkQAPmJMAD5iVAA+YlwAPmJoAD5ibAA+YnAAPmJ8AD5igAA+YogAPmKMAD5ilAA+YqAAPmKkAD5iqAA+YrQAPmK4AD5izAA+YzAAPmNUAD5jXAA+Y2QAPmOIAD5jlAA+Y6AAPmOoAD5kzAA+ZVwAPmX4AD5miAA+ZpQAPmacAD5mpAA+ZqwAPma0AD5mvAA+ZsAAPmbMAD5nMAA+Z7QAPme8AD5nxAA+Z8wAPmfUAD5n3AA+Z+QAPmfsAD5n9AA+aHgAPmiEAD5okAA+aJwAPmioAD5otAA+aMAAPmjMAD5o2AA+aOAAPmrMAD5q1AA+atwAPmrkAD5q8AA+avQAPmr4AD5q/AA+awAAPmsIAD5rEAA+axQAPmsYAD5rIAA+ayQAPm0QAD5tGAA+bSAAPm0oAD5tNAA+bTgAPm08AD5tQAA+bUQAPm1MAD5tVAA+bVgAPm1cAD5tZAA+bWgAPm9UAD5vXAA+b2gAPm9wAD5vfAA+b4AAPm+EAD5viAA+b4wAPm+UAD5vnAA+b6AAPm+kAD5vrAA+b7AAPnAUAD5wGAA+cBwAPnAkAD5yEAA+chgAPnIgAD5yKAA+cjQAPnI4AD5yPAA+ckAAPnJEAD5yTAA+clQAPnJYAD5yXAA+cmQAPnJoAD50VAA+dFwAPnRkAD50bAA+dHgAPnR8AD50gAA+dIQAPnSIAD50kAA+dJgAPnScAD50oAA+dKgAPnSsAD52mAA+dqAAPnaoAD52sAA+drwAPnbAAD52xAA+dsgAPnbMAD521AA+dtwAPnbgAD525AA+duwAPnbwAD543AA+eOQAPnjsAD549AA+eQAAPnkEAD55CAA+eQwAPnkQAD55GAA+eSAAPnkkAD55KAA+eTAAPnk0AD57IAA+eygAPnswAD57OAA+e0QAPntIAD57TAA+e1AAPntUAD57XAA+e2QAPntoAD57bAA+e3QAPnt4AD58nAA+fSwAPn3IAD5+WAA+fmQAPn5sAD5+dAA+fnwAPn6EAD5+jAA+fpAAPn6cAD5/AAA+f3QAPn98AD5/hAA+f4wAPn+UAD5/nAA+f6QAPn+sAD6AIAA+gCwAPoA4AD6ARAA+gFAAPoBcAD6AaAA+gHQAPoB8AD6CaAA+gnAAPoJ4AD6CgAA+gowAPoKQAD6ClAA+gpgAPoKcAD6CpAA+gqwAPoKwAD6CtAA+grwAPoLAAD6ErAA+hLQAPoS8AD6ExAA+hNAAPoTUAD6E2AA+hNwAPoTgAD6E6AA+hPAAPoT0AD6E+AA+hQAAPoUEAD6G8AA+hvgAPocAAD6HCAA+hxQAPocYAD6HHAA+hyAAPockAD6HLAA+hzQAPoc4AD6HPAA+h0QAPodIAD6JNAA+iTwAPolIAD6JUAA+iVwAPolgAD6JZAA+iWgAPolsAD6JdAA+iXwAPomAAD6JhAA+iYwAPomQAD6LfAA+i4QAPouMAD6LlAA+i6AAPoukAD6LqAA+i6wAPouwAD6LuAA+i8AAPovEAD6LyAA+i9AAPovUAD6NwAA+jcgAPo3QAD6N2AA+jeQAPo3oAD6N7AA+jfAAPo30AD6N/AA+jgQAPo4IAD6ODAA+jhQAPo4YAD6QBAA+kAwAPpAUAD6QHAA+kCgAPpAsAD6QMAA+kDQAPpA4AD6QQAA+kEgAPpBMAD6QUAA+kFgAPpBcAD6SqAA+kzQAPpO0AD6UNAA+lDwAPpREAD6UTAA+lFQAPpRgAD6UZAA+lGgAPpR0AD6UeAA+lIAAPpSEAD6UjAA+lJgAPpScAD6UoAA+lKwAPpSwAD6UxAA+lSgAPpVMAD6VVAA+lVwAPpWAAD6VjAA+lZgAPpWgAD6WxAA+l1QAPpfwAD6YgAA+mIwAPpiUAD6YnAA+mKQAPpisAD6YtAA+mLgAPpjEAD6ZKAA+mawAPpm0AD6ZvAA+mcQAPpnMAD6Z1AA+mdwAPpnkAD6Z7AA+mnAAPpp8AD6aiAA+mpQAPpqgAD6arAA+mrgAPprEAD6a0AA+mtgAPpzEAD6czAA+nNQAPpzcAD6c6AA+nOwAPpzwAD6c9AA+nPgAPp0AAD6dCAA+nQwAPp0QAD6dGAA+nRwAPp8IAD6fEAA+nxgAPp8gAD6fLAA+nzAAPp80AD6fOAA+nzwAPp9EAD6fTAA+n1AAPp9UAD6fXAA+n2AAPqFMAD6hVAA+oWAAPqFoAD6hdAA+oXgAPqF8AD6hgAA+oYQAPqGMAD6hlAA+oZgAPqGcAD6hpAA+oagAPqIMAD6iEAA+ohQAPqIcAD6kCAA+pBAAPqQYAD6kIAA+pCwAPqQwAD6kNAA+pDgAPqQ8AD6kRAA+pEwAPqRQAD6kVAA+pFwAPqRgAD6mTAA+plQAPqZcAD6mZAA+pnAAPqZ0AD6meAA+pnwAPqaAAD6miAA+ppAAPqaUAD6mmAA+pqAAPqakAD6okAA+qJgAPqigAD6oqAA+qLQAPqi4AD6ovAA+qMAAPqjEAD6ozAA+qNQAPqjYAD6o3AA+qOQAPqjoAD6q1AA+qtwAPqrkAD6q7AA+qvgAPqr8AD6rAAA+qwQAPqsIAD6rEAA+qxgAPqscAD6rIAA+qygAPqssAD6tGAA+rSAAPq0oAD6tMAA+rTwAPq1AAD6tRAA+rUgAPq1MAD6tVAA+rVwAPq1gAD6tZAA+rWwAPq1wAD6ulAA+ryQAPq/AAD6wUAA+sFwAPrBkAD6wbAA+sHQAPrB8AD6whAA+sIgAPrCUAD6w+AA+sWwAPrF0AD6xfAA+sYQAPrGMAD6xlAA+sZwAPrGkAD6yGAA+siQAPrIwAD6yPAA+skgAPrJUAD6yYAA+smwAPrJ0AD60YAA+tGgAPrRwAD60eAA+tIQAPrSIAD60jAA+tJAAPrSUAD60nAA+tKQAPrSoAD60rAA+tLQAPrS4AD62pAA+tqwAPra0AD62vAA+tsgAPrbMAD620AA+ttQAPrbYAD624AA+tugAPrbsAD628AA+tvgAPrb8AD646AA+uPAAPrj4AD65AAA+uQwAPrkQAD65FAA+uRgAPrkcAD65JAA+uSwAPrkwAD65NAA+uTwAPrlAAD67LAA+uzQAPrtAAD67SAA+u1QAPrtYAD67XAA+u2AAPrtkAD67bAA+u3QAPrt4AD67fAA+u4QAPruIAD69dAA+vXwAPr2EAD69jAA+vZgAPr2cAD69oAA+vaQAPr2oAD69sAA+vbgAPr28AD69wAA+vcgAPr3MAD6/uAA+v8AAPr/IAD6/0AA+v9wAPr/gAD6/5AA+v+gAPr/sAD6/9AA+v/wAPsAAAD7ABAA+wAwAPsAQAD7B/AA+wgQAPsIMAD7CFAA+wiAAPsIkAD7CKAA+wiwAPsIwAD7COAA+wkAAPsJEAD7CSAA+wlAAPsJUAD7EoAA+xSwAPsWsAD7GLAA+xjQAPsY8AD7GRAA+xkwAPsZYAD7GXAA+xmAAPsZsAD7GcAA+xngAPsZ8AD7GhAA+xpAAPsaUAD7GmAA+xqQAPsaoAD7GvAA+xyAAPsdEAD7HTAA+x1QAPsd4AD7HhAA+x5AAPseYAD7IvAA+yUwAPsnoAD7KeAA+yoQAPsqMAD7KlAA+ypwAPsqkAD7KrAA+yrAAPsq8AD7LIAA+y6QAPsusAD7LtAA+y7wAPsvEAD7LzAA+y9QAPsvcAD7L5AA+zGgAPsx0AD7MgAA+zIwAPsyYAD7MpAA+zLAAPsy8AD7MyAA+zNAAPs68AD7OxAA+zswAPs7UAD7O4AA+zuQAPs7oAD7O7AA+zvAAPs74AD7PAAA+zwQAPs8IAD7PEAA+zxQAPtEAAD7RCAA+0RAAPtEYAD7RJAA+0SgAPtEsAD7RMAA+0TQAPtE8AD7RRAA+0UgAPtFMAD7RVAA+0VgAPtNEAD7TTAA+01gAPtNgAD7TbAA+03AAPtN0AD7TeAA+03wAPtOEAD7TjAA+05AAPtOUAD7TnAA+06AAPtQEAD7UCAA+1AwAPtQUAD7WAAA+1ggAPtYQAD7WGAA+1iQAPtYoAD7WLAA+1jAAPtY0AD7WPAA+1kQAPtZIAD7WTAA+1lQAPtZYAD7YRAA+2EwAPthUAD7YXAA+2GgAPthsAD7YcAA+2HQAPth4AD7YgAA+2IgAPtiMAD7YkAA+2JgAPticAD7aiAA+2pAAPtqYAD7aoAA+2qwAPtqwAD7atAA+2rgAPtq8AD7axAA+2swAPtrQAD7a1AA+2twAPtrgAD7czAA+3NQAPtzcAD7c5AA+3PAAPtz0AD7c+AA+3PwAPt0AAD7dCAA+3RAAPt0UAD7dGAA+3SAAPt0kAD7fEAA+3xgAPt8gAD7fKAA+3zQAPt84AD7fPAA+30AAPt9EAD7fTAA+31QAPt9YAD7fXAA+32QAPt9oAD7gjAA+4RwAPuG4AD7iSAA+4lQAPuJcAD7iZAA+4mwAPuJ0AD7ifAA+4oAAPuKMAD7i8AA+42QAPuNsAD7jdAA+43wAPuOEAD7jjAA+45QAPuOcAD7kEAA+5BwAPuQoAD7kNAA+5EAAPuRMAD7kWAA+5GQAPuRsAD7mWAA+5mAAPuZsAD7mdAA+5oAAPuaEAD7miAA+5owAPuaQAD7mmAA+5qAAPuakAD7mqAA+5rAAPua0AD7ooAA+6KgAPuiwAD7ouAA+6MQAPujIAD7ozAA+6NAAPujUAD7o3AA+6OQAPujoAD7o7AA+6PQAPuj4AD7q5AA+6uwAPur0AD7q/AA+6wgAPusMAD7rEAA+6xQAPusYAD7rIAA+6ygAPussAD7rMAA+6zgAPus8AD7tKAA+7TAAPu08AD7tRAA+7VAAPu1UAD7tWAA+7VwAPu1gAD7taAA+7XAAPu10AD7teAA+7YAAPu2EAD7vcAA+73gAPu+AAD7viAA+75QAPu+YAD7vnAA+76AAPu+kAD7vrAA+77QAPu+4AD7vvAA+78QAPu/IAD7xtAA+8bwAPvHEAD7xzAA+8dgAPvHcAD7x4AA+8eQAPvHoAD7x8AA+8fgAPvH8AD7yAAA+8ggAPvIMAD7z+AA+9AAAPvQIAD70EAA+9BwAPvQgAD70JAA+9CgAPvQsAD70NAA+9DwAPvRAAD70RAA+9EwAPvRQAD70lAA+9JgAPvSgAD72jAA+9pQAPvacAD72pAA+9rAAPva0AD72uAA+9rwAPvbAAD72yAA+9tQAPvbYAD723AA+9uQAPvboAD741AA++NwAPvjkAD747AA++PgAPvj8AD75AAA++QQAPvkIAD75EAA++RwAPvkgAD75JAA++SwAPvkwAD77HAA++yQAPvswAD77OAA++0QAPvtIAD77TAA++1AAPvtUAD77XAA++2gAPvtsAD77cAA++3gAPvt8AD79yAA+/lQAPv7UAD7/VAA+/1wAPv9kAD7/bAA+/3QAPv+AAD7/hAA+/4gAPv+UAD7/mAA+/6AAPv+kAD7/rAA+/7gAPv+8AD7/wAA+/8wAPv/QAD7/9AA/AFgAPwB8AD8AhAA/AIwAPwCwAD8AvAA/AMgAPwDQAD8B9AA/AoQAPwMgAD8DsAA/A7wAPwPEAD8DzAA/A9QAPwPcAD8D5AA/A+gAPwP0AD8EWAA/BNwAPwTkAD8E7AA/BPQAPwT8AD8FBAA/BQwAPwUUAD8FHAA/BaAAPwWsAD8FuAA/BcQAPwXQAD8F3AA/BegAPwX0AD8GAAA/BggAPwf0AD8H/AA/CAQAPwgMAD8IGAA/CBwAPwggAD8IJAA/CCgAPwgwAD8IOAA/CDwAPwhAAD8ISAA/CEwAPwo4AD8KQAA/CkgAPwpQAD8KXAA/CmAAPwpkAD8KaAA/CmwAPwp0AD8KfAA/CoAAPwqEAD8KjAA/CpAAPwx8AD8MhAA/DJAAPwyYAD8MpAA/DKgAPwysAD8MsAA/DLQAPwy8AD8MxAA/DMgAPwzMAD8M1AA/DNgAPw08AD8NQAA/DUQAPw1MAD8POAA/D0AAPw9IAD8PUAA/D1wAPw9gAD8PZAA/D2gAPw9sAD8PdAA/D3wAPw+AAD8PhAA/D4wAPw+QAD8RfAA/EYQAPxGMAD8RlAA/EaAAPxGkAD8RqAA/EawAPxGwAD8RuAA/EcAAPxHEAD8RyAA/EdAAPxHUAD8TwAA/E8gAPxPQAD8T2AA/E+QAPxPoAD8T7AA/E/AAPxP0AD8T/AA/FAQAPxQIAD8UDAA/FBQAPxQYAD8WBAA/FgwAPxYUAD8WHAA/FigAPxYsAD8WMAA/FjQAPxY4AD8WQAA/FkgAPxZMAD8WUAA/FlgAPxZcAD8YSAA/GFAAPxhYAD8YYAA/GGwAPxhwAD8YdAA/GHgAPxh8AD8YhAA/GIwAPxiQAD8YlAA/GJwAPxigAD8ZxAA/GlQAPxrwAD8bgAA/G4wAPxuUAD8bnAA/G6QAPxusAD8btAA/G7gAPxvEAD8cKAA/HJwAPxykAD8crAA/HLQAPxy8AD8cxAA/HMwAPxzUAD8dSAA/HVQAPx1gAD8dbAA/HXgAPx2EAD8dkAA/HZwAPx2kAD8fkAA/H5gAPx+gAD8fqAA/H7QAPx+4AD8fvAA/H8AAPx/EAD8fzAA/H9QAPx/YAD8f3AA/H+QAPx/oAD8h1AA/IdwAPyHkAD8h7AA/IfgAPyH8AD8iAAA/IgQAPyIIAD8iEAA/IhgAPyIcAD8iIAA/IigAPyIsAD8kGAA/JCAAPyQoAD8kMAA/JDwAPyRAAD8kRAA/JEgAPyRMAD8kVAA/JFwAPyRgAD8kZAA/JGwAPyRwAD8mXAA/JmQAPyZwAD8meAA/JoQAPyaIAD8mjAA/JpAAPyaUAD8mnAA/JqQAPyaoAD8mrAA/JrQAPya4AD8opAA/KKwAPyi0AD8ovAA/KMgAPyjMAD8o0AA/KNQAPyjYAD8o4AA/KOgAPyjsAD8o8AA/KPgAPyj8AD8q6AA/KvAAPyr4AD8rAAA/KwwAPysQAD8rFAA/KxgAPyscAD8rJAA/KywAPyswAD8rNAA/KzwAPytAAD8tLAA/LTQAPy08AD8tRAA/LVAAPy1UAD8tWAA/LVwAPy1gAD8taAA/LXAAPy10AD8teAA/LYAAPy2EAD8v0AA/MFwAPzDcAD8xXAA/MWQAPzFsAD8xdAA/MXwAPzGIAD8xjAA/MZAAPzGcAD8xoAA/MagAPzGsAD8xtAA/McAAPzHEAD8xyAA/MdQAPzHYAD8x7AA/MlAAPzJ0AD8yfAA/MoQAPzKoAD8ytAA/MsAAPzLIAD8z7AA/NHwAPzUYAD81qAA/NbQAPzW8AD81xAA/NcwAPzXUAD813AA/NeAAPzXsAD82UAA/NtQAPzbcAD825AA/NuwAPzb0AD82/AA/NwQAPzcMAD83FAA/N5gAPzekAD83sAA/N7wAPzfIAD831AA/N+AAPzfsAD83+AA/OAAAPznsAD859AA/OfwAPzoEAD86EAA/OhQAPzoYAD86HAA/OiAAPzooAD86MAA/OjQAPzo4AD86QAA/OkQAPzwwAD88OAA/PEAAPzxIAD88VAA/PFgAPzxcAD88YAA/PGQAPzxsAD88dAA/PHgAPzx8AD88hAA/PIgAPz50AD8+fAA/PogAPz6QAD8+nAA/PqAAPz6kAD8+qAA/PqwAPz60AD8+vAA/PsAAPz7EAD8+zAA/PtAAPz80AD8/OAA/PzwAPz9EAD9BMAA/QTgAP0FAAD9BSAA/QVQAP0FYAD9BXAA/QWAAP0FkAD9BbAA/QXQAP0F4AD9BfAA/QYQAP0GIAD9DdAA/Q3wAP0OEAD9DjAA/Q5gAP0OcAD9DoAA/Q6QAP0OoAD9DsAA/Q7gAP0O8AD9DwAA/Q8gAP0PMAD9FuAA/RcAAP0XIAD9F0AA/RdwAP0XgAD9F5AA/RegAP0XsAD9F9AA/RfwAP0YAAD9GBAA/RgwAP0YQAD9H/AA/SAQAP0gMAD9IFAA/SCAAP0gkAD9IKAA/SCwAP0gwAD9IOAA/SEAAP0hEAD9ISAA/SFAAP0hUAD9KQAA/SkgAP0pQAD9KWAA/SmQAP0poAD9KbAA/SnAAP0p0AD9KfAA/SoQAP0qIAD9KjAA/SpQAP0qYAD9LvAA/TEwAP0zoAD9NeAA/TYQAP02MAD9NlAA/TZwAP02kAD9NrAA/TbAAP028AD9OIAA/TpQAP06cAD9OpAA/TqwAP060AD9OvAA/TsQAP07MAD9PQAA/T0wAP09YAD9PZAA/T3AAP098AD9PiAA/T5QAP0+cAD9RiAA/UZAAP1GYAD9RoAA/UawAP1GwAD9RtAA/UbgAP1G8AD9RxAA/UcwAP1HQAD9R1AA/UdwAP1HgAD9TzAA/U9QAP1PcAD9T5AA/U/AAP1P0AD9T+AA/U/wAP1QAAD9UCAA/VBAAP1QUAD9UGAA/VCAAP1QkAD9WEAA/VhgAP1YgAD9WKAA/VjQAP1Y4AD9WPAA/VkAAP1ZEAD9WTAA/VlQAP1ZYAD9WXAA/VmQAP1ZoAD9YVAA/WFwAP1hoAD9YcAA/WHwAP1iAAD9YhAA/WIgAP1iMAD9YlAA/WJwAP1igAD9YpAA/WKwAP1iwAD9anAA/WqQAP1qsAD9atAA/WsAAP1rEAD9ayAA/WswAP1rQAD9a2AA/WuAAP1rkAD9a6AA/WvAAP1r0AD9c4AA/XOgAP1zwAD9c+AA/XQQAP10IAD9dDAA/XRAAP10UAD9dHAA/XSQAP10oAD9dLAA/XTQAP104AD9fJAA/XywAP180AD9fPAA/X0gAP19MAD9fUAA/X1QAP19YAD9fYAA/X2gAP19sAD9fcAA/X3gAP198AD9hyAA/YlQAP2LUAD9jVAA/Y1wAP2NkAD9jbAA/Y3QAP2OAAD9jhAA/Y4gAP2OUAD9jmAA/Y6AAP2OkAD9jrAA/Y7gAP2O8AD9jwAA/Y8wAP2PQAD9j5AA/ZEgAP2RsAD9kdAA/ZHwAP2SgAD9krAA/ZLgAP2TAAD9l5AA/ZnQAP2cQAD9noAA/Z6wAP2e0AD9nvAA/Z8QAP2fMAD9n1AA/Z9gAP2fkAD9oSAA/aMwAP2jUAD9o3AA/aOQAP2jsAD9o9AA/aPwAP2kEAD9pDAA/aZAAP2mcAD9pqAA/abQAP2nAAD9pzAA/adgAP2nkAD9p8AA/afgAP2vkAD9r7AA/a/QAP2v8AD9sCAA/bAwAP2wQAD9sFAA/bBgAP2wgAD9sKAA/bCwAP2wwAD9sOAA/bDwAP24oAD9uMAA/bjgAP25AAD9uTAA/blAAP25UAD9uWAA/blwAP25kAD9ubAA/bnAAP250AD9ufAA/boAAP3BsAD9wdAA/cIAAP3CIAD9wlAA/cJgAP3CcAD9woAA/cKQAP3CsAD9wtAA/cLgAP3C8AD9wxAA/cMgAP3EsAD9xMAA/cTQAP3E8AD9zKAA/czAAP3M4AD9zQAA/c0wAP3NQAD9zVAA/c1gAP3NcAD9zZAA/c2wAP3NwAD9zdAA/c3wAP3OAAD91bAA/dXQAP3V8AD91hAA/dZAAP3WUAD91mAA/dZwAP3WgAD91qAA/dbAAP3W0AD91uAA/dcAAP3XEAD93sAA/d7gAP3fAAD93yAA/d9QAP3fYAD933AA/d+AAP3fkAD937AA/d/QAP3f4AD93/AA/eAQAP3gIAD959AA/efwAP3oEAD96DAA/ehgAP3ocAD96IAA/eiQAP3ooAD96MAA/ejgAP3o8AD96QAA/ekgAP3pMAD98OAA/fEAAP3xIAD98UAA/fFwAP3xgAD98ZAA/fGgAP3xsAD98dAA/fHwAP3yAAD98hAA/fIwAP3yQAD99tAA/fkQAP37gAD9/cAA/f3wAP3+EAD9/jAA/f5QAP3+cAD9/pAA/f6gAP3+0AD+AGAA/gIwAP4CUAD+AnAA/gKQAP4CsAD+AtAA/gLwAP4DEAD+BOAA/gUQAP4FQAD+BXAA/gWgAP4F0AD+BgAA/gYwAP4GUAD+DgAA/g4gAP4OQAD+DmAA/g6QAP4OoAD+DrAA/g7AAP4O0AD+DvAA/g8QAP4PIAD+DzAA/g9QAP4PYAD+FxAA/hcwAP4XUAD+F3AA/hegAP4XsAD+F8AA/hfQAP4X4AD+GAAA/hggAP4YMAD+GEAA/hhgAP4YcAD+ICAA/iBAAP4gYAD+IIAA/iCwAP4gwAD+INAA/iDgAP4g8AD+IRAA/iEwAP4hQAD+IVAA/iFwAP4hgAD+KTAA/ilQAP4pgAD+KaAA/inQAP4p4AD+KfAA/ioAAP4qEAD+KjAA/ipQAP4qYAD+KnAA/iqQAP4qoAD+MlAA/jJwAP4ykAD+MrAA/jLgAP4y8AD+MwAA/jMQAP4zIAD+M0AA/jNgAP4zcAD+M4AA/jOgAP4zsAD+O2AA/juAAP47oAD+O8AA/jvwAP48AAD+PBAA/jwgAP48MAD+PFAA/jxwAP48gAD+PJAA/jywAP48wAD+RHAA/kSQAP5EsAD+RNAA/kUAAP5FEAD+RSAA/kUwAP5FQAD+RWAA/kWAAP5FkAD+RaAA/kXAAP5F0AD+TwAA/lEwAP5TMAD+VTAA/lVQAP5VcAD+VZAA/lWwAP5V4AD+VfAA/lYAAP5WMAD+VkAA/lZgAP5WcAD+VpAA/lbAAP5W0AD+VuAA/lcQAP5XIAD+V3AA/lkAAP5ZkAD+WbAA/lnQAP5aYAD+WpAA/lrAAP5a4AD+X3AA/mGwAP5kIAD+ZmAA/maQAP5msAD+ZtAA/mbwAP5nEAD+ZzAA/mdAAP5ncAD+aQAA/msQAP5rMAD+a1AA/mtwAP5rkAD+a7AA/mvQAP5r8AD+bBAA/m4gAP5uUAD+boAA/m6wAP5u4AD+bxAA/m9AAP5vcAD+b6AA/m/AAP53cAD+d5AA/newAP530AD+eAAA/ngQAP54IAD+eDAA/nhAAP54YAD+eIAA/niQAP54oAD+eMAA/njQAP6AgAD+gKAA/oDAAP6A4AD+gRAA/oEgAP6BMAD+gUAA/oFQAP6BcAD+gZAA/oGgAP6BsAD+gdAA/oHgAP6JkAD+ibAA/ongAP6KAAD+ijAA/opAAP6KUAD+imAA/opwAP6KkAD+irAA/orAAP6K0AD+ivAA/osAAP6MkAD+jKAA/oywAP6M0AD+lIAA/pSgAP6UwAD+lOAA/pUQAP6VIAD+lTAA/pVAAP6VUAD+lXAA/pWQAP6VoAD+lbAA/pXQAP6V4AD+nZAA/p2wAP6d0AD+nfAA/p4gAP6eMAD+nkAA/p5QAP6eYAD+noAA/p6gAP6esAD+nsAA/p7gAP6e8AD+pqAA/qbAAP6m4AD+pwAA/qcwAP6nQAD+p1AA/qdgAP6ncAD+p5AA/qewAP6nwAD+p9AA/qfwAP6oAAD+r7AA/q/QAP6v8AD+sBAA/rBAAP6wUAD+sGAA/rBwAP6wgAD+sKAA/rDAAP6w0AD+sOAA/rEAAP6xEAD+uMAA/rjgAP65AAD+uSAA/rlQAP65YAD+uXAA/rmAAP65kAD+ubAA/rnQAP654AD+ufAA/roQAP66IAD+vrAA/sDwAP7DYAD+xaAA/sXQAP7F8AD+xhAA/sYwAP7GUAD+xnAA/saAAP7GsAD+yEAA/soQAP7KMAD+ylAA/spwAP7KkAD+yrAA/srQAP7K8AD+zMAA/szwAP7NIAD+zVAA/s2AAP7NsAD+zeAA/s4QAP7OMAD+1eAA/tYAAP7WIAD+1kAA/tZwAP7WgAD+1pAA/tagAP7WsAD+1tAA/tbwAP7XAAD+1xAA/tcwAP7XQAD+3vAA/t8QAP7fMAD+31AA/t+AAP7fkAD+36AA/t+wAP7fwAD+3+AA/uAAAP7gEAD+4CAA/uBAAP7gUAD+6AAA/uggAP7oQAD+6GAA/uiQAP7ooAD+6LAA/ujAAP7o0AD+6PAA/ukQAP7pIAD+6TAA/ulQAP7pYAD+8RAA/vEwAP7xYAD+8YAA/vGwAP7xwAD+8dAA/vHgAP7x8AD+8hAA/vIwAP7yQAD+8lAA/vJwAP7ygAD++jAA/vpQAP76cAD++pAA/vrAAP760AD++uAA/vrwAP77AAD++yAA/vtAAP77UAD++2AA/vuAAP77kAD/A0AA/wNgAP8DgAD/A6AA/wPQAP8D4AD/A/AA/wQAAP8EEAD/BDAA/wRQAP8EYAD/BHAA/wSQAP8EoAD/DFAA/wxwAP8MkAD/DLAA/wzgAP8M8AD/DQAA/w0QAP8NIAD/DUAA/w1gAP8NcAD/DYAA/w2gAP8NsAD/FuAA/xkQAP8bEAD/HRAA/x0wAP8dUAD/HXAA/x2QAP8dwAD/HdAA/x3gAP8eEAD/HiAA/x5AAP8eUAD/HnAA/x6gAP8esAD/HsAA/x7wAP8fAAD/H1AA/yDgAP8hcAD/IZAA/yGwAP8iQAD/InAA/yKgAP8iwAD/J1AA/ymQAP8sAAD/LkAA/y5wAP8ukAD/LrAA/y7QAP8u8AD/LxAA/y8gAP8vUAD/MOAA/zLwAP8zEAD/MzAA/zNQAP8zcAD/M5AA/zOwAP8z0AD/M/AA/zYAAP82MAD/NmAA/zaQAP82wAD/NvAA/zcgAP83UAD/N4AA/zegAP8/UAD/P3AA/z+QAP8/sAD/P+AA/z/wAP9AAAD/QBAA/0AgAP9AQAD/QGAA/0BwAP9AgAD/QKAA/0CwAP9IYAD/SIAA/0igAP9IwAD/SPAA/0kAAP9JEAD/SSAA/0kwAP9JUAD/SXAA/0mAAP9JkAD/SbAA/0nAAP9RcAD/UZAA/1HAAP9R4AD/UhAA/1IgAP9SMAD/UkAA/1JQAP9ScAD/UpAA/1KgAP9SsAD/UtAA/1LgAP9UcAD/VIAA/1SQAP9UsAD/XGAA/1yAAP9coAD/XMAA/1zwAP9dAAD/XRAA/10gAP9dMAD/XVAA/11wAP9dgAD/XZAA/12wAP9dwAD/ZXAA/2WQAP9lsAD/ZdAA/2YAAP9mEAD/ZiAA/2YwAP9mQAD/ZmAA/2aAAP9mkAD/ZqAA/2bAAP9m0AD/boAA/26gAP9uwAD/buAA/28QAP9vIAD/bzAA/29AAP9vUAD/b3AA/2+QAP9voAD/b7AA/2/QAP9v4AD/d5AA/3ewAP930AD/d/AA/3ggAP94MAD/eEAA/3hQAP94YAD/eIAA/3igAP94sAD/eMAA/3jgAP948AD/gKAA/4DAAP+A4AD/gQAA/4EwAP+BQAD/gVAA/4FgAP+BcAD/gZAA/4GwAP+BwAD/gdAA/4HwAP+CAAD/hpAA/4jQAP+LQAD/jYAA/42wAP+N0AD/jfAA/44QAP+OMAD/jlAA/45gAP+OkAD/kCAA/5HwAP+SEAD/kjAA/5JQAP+ScAD/kpAA/5KwAP+S0AD/lKAA/5TQAP+VAAD/lTAA/5VgAP+VkAD/lcAA/5XwAP+WEAD/ncAA/53gAP+eAAD/niAA/55QAP+eYAD/nnAA/56AAP+ekAD/nrAA/57QAP+e4AD/nvAA/58QAP+fIAD/ptAA/6bwAP+nEAD/pzAA/6dgAP+ncAD/p4AA/6eQAP+noAD/p8AA/6fgAP+n8AD/qAAA/6ggAP+oMAD/r+AA/7AAAP+wIAD/sEAA/7BwAP+wgAD/sJAA/7CgAP+wsAD/sNAA/7DwAP+xAAD/sRAA/7EwAP+xQAD/uPAA/7kQAP+5MAD/uVAA/7mAAP+5kAD/uaAA/7mwAP+5wAD/ueAA/7oAAP+6EAD/uiAA/7pAAP+6UAD/wgAA/8IgAP/CQAD/wmAA/8KQAP/CoAD/wrAA/8LAAP/C0AD/wvAA/8MQAP/DIAD/wzAA/8NQAP/DYAD/yxAA/8swAP/LUAD/y3AA/8ugAP/LsAD/y8AA/8vQAP/L4AD/zAAA/8wgAP/MMAD/zEAA/8xgAP/McAD/1CAA/9RAAP/UYAD/1IAA/9SwAP/UwAD/1NAA/9TgAP/U8AD/1RAA/9UwAP/VQAD/1VAA/9VwAP/VgAD/1pAA/9agAP/WwAD/3nAA/96QAP/esAD/3tAA/98AAP/fEAD/3yAA/98wAP/fQAD/32AA/9+QAP/foAD/37AA/9/QAP/f4AD/55AA/+ewAP/n0AD/5/AA/+ggAP/oMAD/6EAA/+hQAP/oYAD/6IAA/+iwAP/owAD/6NAA/+jwAP/pAAD/8LAA//DQAP/xAAD/8SAA//FQAP/xYAD/8XAA//GAAP/xkAD/8bAA//HgAP/x8AD/8gAA//IgAP/yMAD/+2AA//2QAP//kAEAAZABAAGwAQAB0AEAAfABAAIQAQACQAEAAlABAAJgAQACkAEAAqABAALAAQAC0AEAAvABAAMgAQADMAEAA0ABAANwAQADgAEABBABAAWgAQAGMAEABlABAAZwAQAHAAEABzABAAdgAQAHgAEADBABAA5QAQAQwAEAEwABABMwAQATUAEAE3ABABOQAQATsAEAE9ABABPgAQAUEAEAFaABABewAQAX0AEAF/ABABgQAQAYMAEAGFABABhwAQAYkAEAGLABABrAAQAa8AEAGyABABtQAQAbgAEAG7ABABvgAQAcEAEAHEABABxgAQAkEAEAJDABACRQAQAkcAEAJKABACSwAQAkwAEAJNABACTgAQAlAAEAJSABACUwAQAlQAEAJWABACVwAQAtIAEALUABAC1gAQAtgAEALbABAC3AAQAt0AEALeABAC3wAQAuEAEALjABAC5AAQAuUAEALnABAC6AAQA2MAEANlABADaAAQA2oAEANtABADbgAQA28AEANwABADcQAQA3MAEAN1ABADdgAQA3cAEAN5ABADegAQA5MAEAOUABADlQAQA5cAEAQSABAEFAAQBBYAEAQYABAEGwAQBBwAEAQdABAEHgAQBB8AEAQhABAEIwAQBCQAEAQlABAEJwAQBCgAEASjABAEpQAQBKcAEASpABAErAAQBK0AEASuABAErwAQBLAAEASyABAEtAAQBLUAEAS2ABAEuAAQBLkAEAU0ABAFNgAQBTgAEAU6ABAFPQAQBT4AEAU/ABAFQAAQBUEAEAVDABAFRQAQBUYAEAVHABAFSQAQBUoAEAXFABAFxwAQBckAEAXLABAFzgAQBc8AEAXQABAF0QAQBdIAEAXUABAF1gAQBdcAEAXYABAF2gAQBdsAEAZWABAGWAAQBloAEAZcABAGXwAQBmAAEAZhABAGYgAQBmMAEAZlABAGZwAQBmgAEAZpABAGawAQBmwAEAa1ABAG2QAQBwAAEAckABAHJwAQBykAEAcrABAHLQAQBy8AEAcxABAHMgAQBzUAEAdOABAHawAQB20AEAdvABAHcQAQB3MAEAd1ABAHdwAQB3kAEAeWABAHmQAQB5wAEAefABAHogAQB6UAEAeoABAHqwAQB60AEAgoABAIKgAQCC0AEAgvABAIMgAQCDMAEAg0ABAINQAQCDYAEAg4ABAIOgAQCDsAEAg8ABAIPgAQCD8AEAi6ABAIvAAQCL4AEAjAABAIwwAQCMQAEAjFABAIxgAQCMcAEAjJABAIywAQCMwAEAjNABAIzwAQCNAAEAlLABAJTQAQCU8AEAlRABAJVAAQCVUAEAlWABAJVwAQCVgAEAlaABAJXAAQCV0AEAleABAJYAAQCWEAEAncABAJ3gAQCeEAEAnjABAJ5gAQCecAEAnoABAJ6QAQCeoAEAnsABAJ7gAQCe8AEAnwABAJ8gAQCfMAEApuABAKcAAQCnIAEAp0ABAKdwAQCngAEAp5ABAKegAQCnsAEAp9ABAKfwAQCoAAEAqBABAKgwAQCoQAEAr/ABALAQAQCwMAEAsFABALCAAQCwkAEAsKABALCwAQCwwAEAsOABALEAAQCxEAEAsSABALFAAQCxUAEAuQABALkgAQC5QAEAuWABALmQAQC5oAEAubABALnAAQC50AEAufABALoQAQC6IAEAujABALpQAQC6YAEAw5ABAMXAAQDHwAEAycABAMngAQDKAAEAyiABAMpAAQDKcAEAyoABAMqQAQDKwAEAytABAMrwAQDLAAEAyyABAMtQAQDLYAEAy3ABAMugAQDLsAEAzAABAM2QAQDOIAEAzkABAM5gAQDO8AEAzyABAM9QAQDPcAEA1AABANZAAQDYsAEA2vABANsgAQDbQAEA22ABANuAAQDboAEA28ABANvQAQDcAAEA3ZABAN+gAQDfwAEA3+ABAOAAAQDgIAEA4EABAOBgAQDggAEA4KABAOKwAQDi4AEA4xABAONAAQDjcAEA46ABAOPQAQDkAAEA5DABAORQAQDsAAEA7CABAOxAAQDsYAEA7JABAOygAQDssAEA7MABAOzQAQDs8AEA7RABAO0gAQDtMAEA7VABAO1gAQD1EAEA9TABAPVQAQD1cAEA9aABAPWwAQD1wAEA9dABAPXgAQD2AAEA9iABAPYwAQD2QAEA9mABAPZwAQD+IAEA/kABAP5wAQD+kAEA/sABAP7QAQD+4AEA/vABAP8AAQD/IAEA/0ABAP9QAQD/YAEA/4ABAP+QAQEBIAEBATABAQFAAQEBYAEBCRABAQkwAQEJUAEBCXABAQmgAQEJsAEBCcABAQnQAQEJ4AEBCgABAQogAQEKMAEBCkABAQpgAQEKcAEBEiABARJAAQESYAEBEoABARKwAQESwAEBEtABARLgAQES8AEBExABARMwAQETQAEBE1ABARNwAQETgAEBGzABARtQAQEbcAEBG5ABARvAAQEb0AEBG+ABARvwAQEcAAEBHCABARxAAQEcUAEBHGABARyAAQEckAEBJEABASRgAQEkgAEBJKABASTQAQEk4AEBJPABASUAAQElEAEBJTABASVQAQElYAEBJXABASWQAQEloAEBLVABAS1wAQEtkAEBLbABAS3gAQEt8AEBLgABAS4QAQEuIAEBLkABAS5gAQEucAEBLoABAS6gAQEusAEBM0ABATWAAQE38AEBOjABATpgAQE6gAEBOqABATrAAQE64AEBOwABATsQAQE7QAEBPNABAT6gAQE+wAEBPuABAT8AAQE/IAEBP0ABAT9gAQE/gAEBQVABAUGAAQFBsAEBQeABAUIQAQFCQAEBQnABAUKgAQFCwAEBSnABAUqQAQFKsAEBStABAUsAAQFLEAEBSyABAUswAQFLQAEBS2ABAUuAAQFLkAEBS6ABAUvAAQFL0AEBU4ABAVOgAQFTwAEBU+ABAVQQAQFUIAEBVDABAVRAAQFUUAEBVHABAVSQAQFUoAEBVLABAVTQAQFU4AEBXJABAVywAQFc0AEBXPABAV0gAQFdMAEBXUABAV1QAQFdYAEBXYABAV2gAQFdsAEBXcABAV3gAQFd8AEBZaABAWXAAQFl8AEBZhABAWZAAQFmUAEBZmABAWZwAQFmgAEBZqABAWbAAQFm0AEBZuABAWcAAQFnEAEBbsABAW7gAQFvAAEBbyABAW9QAQFvYAEBb3ABAW+AAQFvkAEBb7ABAW/QAQFv4AEBb/ABAXAQAQFwIAEBd9ABAXfwAQF4EAEBeDABAXhgAQF4cAEBeIABAXiQAQF4oAEBeMABAXjgAQF48AEBeQABAXkgAQF5MAEBgOABAYEAAQGBIAEBgUABAYFwAQGBgAEBgZABAYGgAQGBsAEBgdABAYHwAQGCAAEBghABAYIwAQGCQAEBi3ABAY2gAQGPoAEBkaABAZHAAQGR4AEBkgABAZIgAQGSUAEBkmABAZJwAQGSoAEBkrABAZLQAQGS4AEBkwABAZMwAQGTQAEBk1ABAZOAAQGTkAEBk+ABAZVwAQGWAAEBliABAZZAAQGW0AEBlwABAZcwAQGXUAEBm+ABAZ4gAQGgkAEBotABAaMAAQGjIAEBo0ABAaNgAQGjgAEBo6ABAaOwAQGj4AEBpXABAaeAAQGnoAEBp8ABAafgAQGoAAEBqCABAahAAQGoYAEBqIABAaqQAQGqwAEBqvABAasgAQGrUAEBq4ABAauwAQGr4AEBrBABAawwAQGz4AEBtAABAbQgAQG0QAEBtHABAbSAAQG0kAEBtKABAbSwAQG00AEBtPABAbUAAQG1EAEBtTABAbVAAQG88AEBvRABAb0wAQG9UAEBvYABAb2QAQG9oAEBvbABAb3AAQG94AEBvgABAb4QAQG+IAEBvkABAb5QAQHGAAEBxiABAcZQAQHGcAEBxqABAcawAQHGwAEBxtABAcbgAQHHAAEBxyABAccwAQHHQAEBx2ABAcdwAQHJAAEByRABAckgAQHJQAEB0PABAdEQAQHRMAEB0VABAdGAAQHRkAEB0aABAdGwAQHRwAEB0eABAdIAAQHSEAEB0iABAdJAAQHSUAEB2gABAdogAQHaQAEB2mABAdqQAQHaoAEB2rABAdrAAQHa0AEB2vABAdsQAQHbIAEB2zABAdtQAQHbYAEB4xABAeMwAQHjUAEB43ABAeOgAQHjsAEB48ABAePQAQHj4AEB5AABAeQgAQHkMAEB5EABAeRgAQHkcAEB7CABAexAAQHsYAEB7IABAeywAQHswAEB7NABAezgAQHs8AEB7RABAe0wAQHtQAEB7VABAe1wAQHtgAEB9TABAfVQAQH1cAEB9ZABAfXAAQH10AEB9eABAfXwAQH2AAEB9iABAfZAAQH2UAEB9mABAfaAAQH2kAEB+yABAf1gAQH/0AECAhABAgJAAQICYAECAoABAgKgAQICwAECAuABAgLwAQIDIAECBLABAgaAAQIGoAECBsABAgbgAQIHAAECByABAgdAAQIHYAECCTABAglgAQIJkAECCcABAgnwAQIKIAECClABAgqAAQIKoAECElABAhJwAQISkAECErABAhLgAQIS8AECEwABAhMQAQITIAECE0ABAhNgAQITcAECE4ABAhOgAQITsAECG2ABAhuAAQIboAECG8ABAhvwAQIcAAECHBABAhwgAQIcMAECHFABAhxwAQIcgAECHJABAhywAQIcwAECJHABAiSQAQIksAECJNABAiUAAQIlEAECJSABAiUwAQIlQAECJWABAiWAAQIlkAECJaABAiXAAQIl0AECLYABAi2gAQItwAECLeABAi4QAQIuIAECLjABAi5AAQIuUAECLnABAi6QAQIuoAECLrABAi7QAQIu4AECNpABAjawAQI20AECNvABAjcgAQI3MAECN0ABAjdQAQI3YAECN4ABAjegAQI3sAECN8ABAjfgAQI38AECP6ABAj/AAQI/4AECQAABAkAwAQJAQAECQFABAkBgAQJAcAECQJABAkCwAQJAwAECQNABAkDwAQJBAAECSLABAkjQAQJI8AECSRABAklAAQJJUAECSWABAklwAQJJgAECSaABAknAAQJJ0AECSeABAkoAAQJKEAECSyABAkswAQJLUAECU4ABAlXAAQJYAAECWjABAlygAQJeoAECYRABAmOAAQJlgAECZ8ABAmoAAQJqIAECalABAmpwAQJqkAECarABAmrgAQJrEAECazABAmtQAQJrgAECa6ABAmvAAQJr8AECbCABAmwwAQJsgAECbhABAm5gAQJugAECbtABAm8AAQJvIAECc7ABAnXwAQJ4YAECeqABAnrQAQJ68AECexABAnswAQJ7UAECe3ABAnuAAQJ7sAECfUABAn+QAQJ/sAECf9ABAn/wAQKAEAECgDABAoBQAQKAcAECgJABAoCwAQKDAAECgzABAoNgAQKDkAECg8ABAoPwAQKEIAEChFABAoSAAQKEsAEChNABAoyAAQKMoAECjNABAozwAQKNIAECjTABAo1AAQKNUAECjWABAo2AAQKNoAECjbABAo3AAQKN4AECjfABAo8AAQKPEAECjzABApbgAQKXAAEClyABApdAAQKXcAECl4ABApeQAQKXoAECl7ABApfQAQKX8AECmAABApgQAQKYMAECmEABAp/wAQKgEAECoEABAqBgAQKgkAECoKABAqCwAQKgwAECoNABAqDwAQKhEAECoSABAqEwAQKhUAECoWABAqJwAQKiwAECovABAqMQAQKkIAECpLABAqTgAQKlEAECpTABAqbwAQKoEAECr8ABAq/gAQKwAAECsCABArBQAQKwYAECsHABArCAAQKwkAECsLABArDQAQKw4AECsPABArEQAQKxIAECuNABArjwAQK5IAECuUABArlwAQK5gAECuZABArmgAQK5sAECudABArnwAQK6AAECuhABArowAQK6QAECu1ABArtgAQK7gAECwzABAsNQAQLDcAECw5ABAsPAAQLD0AECw+ABAsPwAQLEAAECxCABAsRAAQLEUAECxGABAsSAAQLEkAECzEABAsxgAQLMkAECzLABAszgAQLM8AECzQABAs0QAQLNIAECzUABAs1gAQLNcAECzYABAs2gAQLNsAECz0ABAs9QAQLPYAECz4ABAtcwAQLXUAEC13ABAteQAQLXwAEC19ABAtfgAQLX8AEC2AABAtggAQLYQAEC2FABAthgAQLYgAEC2JABAuBAAQLgYAEC4JABAuCwAQLg4AEC4PABAuEAAQLhEAEC4SABAuFAAQLhYAEC4XABAuGAAQLhoAEC4bABAuNQAQLk4AEC5XABAuWgAQLl0AEC5mABAuaQAQLmwAEC5uABAugAAQLpwAEC8vABAvUgAQL3IAEC+SABAvlAAQL5YAEC+YABAvmgAQL50AEC+eABAvnwAQL6IAEC+jABAvpQAQL6YAEC+oABAvqwAQL6wAEC+tABAvsAAQL7EAEC+2ABAvzwAQL9gAEC/aABAv3AAQL+UAEC/oABAv6wAQL+0AEDA2ABAwWgAQMIEAEDClABAwqAAQMKoAEDCsABAwrgAQMLAAEDCyABAwswAQMLYAEDDPABAw8AAQMPIAEDD0ABAw9gAQMPgAEDD6ABAw/AAQMP4AEDEAABAxIQAQMSQAEDEnABAxKgAQMS0AEDEwABAxMwAQMTYAEDE5ABAxOwAQMbYAEDG4ABAxugAQMbwAEDG/ABAxwAAQMcEAEDHCABAxwwAQMcUAEDHHABAxyAAQMckAEDHLABAxzAAQMkcAEDJJABAySwAQMk0AEDJQABAyUQAQMlIAEDJTABAyVAAQMlYAEDJYABAyWQAQMloAEDJcABAyXQAQMtgAEDLaABAy3QAQMt8AEDLiABAy4wAQMuQAEDLlABAy5gAQMugAEDLqABAy6wAQMuwAEDLuABAy7wAQMwgAEDMJABAzCgAQMwwAEDOHABAziQAQM4sAEDONABAzkAAQM5EAEDOSABAzkwAQM5QAEDOWABAzmAAQM5kAEDOaABAznAAQM50AEDQYABA0GgAQNBwAEDQeABA0IQAQNCIAEDQjABA0JAAQNCUAEDQnABA0KQAQNCoAEDQrABA0LQAQNC4AEDSpABA0qwAQNK0AEDSvABA0sgAQNLMAEDS0ABA0tQAQNLYAEDS4ABA0ugAQNLsAEDS8ABA0vgAQNL8AEDU6ABA1PAAQNT4AEDVAABA1QwAQNUQAEDVFABA1RgAQNUcAEDVJABA1SwAQNUwAEDVNABA1TwAQNVAAEDXLABA1zQAQNc8AEDXRABA11AAQNdUAEDXWABA11wAQNdgAEDXaABA13AAQNd0AEDXeABA14AAQNeEAEDYqABA2TgAQNnUAEDaZABA2nAAQNp4AEDagABA2ogAQNqQAEDamABA2pwAQNqoAEDbDABA24AAQNuIAEDbkABA25gAQNugAEDbqABA27AAQNu4AEDcLABA3DgAQNxEAEDcUABA3FwAQNxoAEDcdABA3IAAQNyIAEDedABA3nwAQN6EAEDejABA3pgAQN6cAEDeoABA3qQAQN6oAEDesABA3rgAQN68AEDewABA3sgAQN7MAEDguABA4MAAQODIAEDg0ABA4NwAQODgAEDg5ABA4OgAQODsAEDg9ABA4PwAQOEAAEDhBABA4QwAQOEQAEDi/ABA4wQAQOMMAEDjFABA4yAAQOMkAEDjKABA4ywAQOMwAEDjOABA40AAQONEAEDjSABA41AAQONUAEDlQABA5UgAQOVUAEDlXABA5WgAQOVsAEDlcABA5XQAQOV4AEDlgABA5YgAQOWMAEDlkABA5ZgAQOWcAEDniABA55AAQOeYAEDnoABA56wAQOewAEDntABA57gAQOe8AEDnxABA58wAQOfQAEDn1ABA59wAQOfgAEDpzABA6dQAQOngAEDp6ABA6fQAQOn4AEDp/ABA6gAAQOoEAEDqDABA6hQAQOoYAEDqHABA6iQAQOooAEDqZABA7FAAQOxYAEDsYABA7GgAQOx0AEDseABA7HwAQOyAAEDshABA7IwAQOyUAEDsmABA7JwAQOykAEDsqABA7vQAQO+AAEDwAABA8IAAQPCIAEDwkABA8JgAQPCgAEDwrABA8LAAQPC0AEDwwABA8MQAQPDMAEDw0ABA8NgAQPDkAEDw6ABA8OwAQPD4AEDw/ABA8RAAQPF0AEDxmABA8aAAQPGoAEDxzABA8dgAQPHkAEDx7ABA8xAAQPOgAED0PABA9MwAQPTYAED04ABA9OgAQPTwAED0+ABA9QAAQPUEAED1EABA9XQAQPX4AED2AABA9ggAQPYQAED2GABA9iAAQPYoAED2MABA9jgAQPa8AED2yABA9tQAQPbgAED27ABA9vgAQPcEAED3EABA9xwAQPckAED5EABA+RgAQPkgAED5KABA+TQAQPk4AED5PABA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QZAAQUGcAEFBoABBQaQAQUGoAEFBrABBQbQAQUG8AEFBwABBQcQAQUHMAEFB0ABBQ7wAQUPEAEFDzABBQ9QAQUPgAEFD5ABBQ+gAQUPsAEFD8ABBQ/gAQUQAAEFEBABBRAgAQUQQAEFEFABBRHgAQUT8AEFFCABBRRQAQUUgAEFFLABBRTgAQUVEAEFFUABBRVwAQUXgAEFF7ABBRfgAQUYEAEFGEABBRhwAQUYoAEFGNABBRkAAQUZIAEFGoABBRtQAQUc0AEFHfABBR6QAQUf0AEFIHABBSmgAQUr0AEFLdABBS/QAQUv8AEFMBABBTAwAQUwUAEFMIABBTCQAQUwoAEFMNABBTDgAQUxAAEFMRABBTEwAQUxYAEFMXABBTGAAQUxsAEFMcABBTIQAQUzoAEFNDABBTRQAQU0cAEFNQABBTUwAQU1YAEFNYABBToQAQU8UAEFPsABBUEAAQVBMAEFQVABBUFwAQVBkAEFQbABBUHQAQVB4AEFQhABBUOgAQVFsAEFRdABBUXwAQVGEAEFRjABBUZQAQVGcAEFRpABBUawAQVIwAEFSPABBUkgAQVJUAEFSYABBUmwAQVJ4AEFShABBUpAAQVKYAEFUhABBVIwAQVSUAEFUnABBVKgAQVSsAEFUsABBVLQAQVS4AEFUwABBVMgAQVTMAEFU0ABBVNgAQVTcAEFWyABBVtAAQVbYAEFW4ABBVuwAQVbwAEFW9ABBVvgAQVb8AEFXBABBVwwAQVcQAEFXFABBVxwAQVcgAEFZDABBWRQAQVkgAEFZKABBWTQAQVk4AEFZPABBWUAAQVlEAEFZTABBWVQAQVlYAEFZXABBWWQAQVloAEFZzABBWdAAQVnUAEFZ3ABBW8gAQVvQAEFb2ABBW+AAQVvsAEFb8ABBW/QAQVv4AEFb/ABBXAQAQVwMAEFcEABBXBQAQVwcAEFcIABBXgwAQV4UAEFeHABBXiQAQV4wAEFeNABBXjgAQV48AEFeQABBXkgAQV5QAEFeVABBXlgAQV5gAEFeZABBYFAAQWBYAEFgYABBYGgAQWB0AEFgeABBYHwAQWCAAEFghABBYIwAQWCUAEFgmABBYJwAQWCkAEFgqABBYpQAQWKcAEFipABBYqwAQWK4AEFivABBYsAAQWLEAEFiyABBYtAAQWLYAEFi3ABBYuAAQWLoAEFi7ABBZNgAQWTgAEFk6ABBZPAAQWT8AEFlAABBZQQAQWUIAEFlDABBZRQAQWUcAEFlIABBZSQAQWUsAEFlMABBZlQAQWbkAEFngABBaBAAQWgcAEFoJABBaCwAQWg0AEFoPABBaEQAQWhIAEFoVABBaLgAQWksAEFpNABBaTwAQWlEAEFpTABBaVQAQWlcAEFpZABBadgAQWnkAEFp8ABBafwAQWoIAEFqFABBaiAAQWosAEFqNABBbCAAQWwoAEFsMABBbDgAQWxEAEFsSABBbEwAQWxQAEFsVABBbFwAQWxkAEFsaABBbGwAQWx0AEFseABBbmQAQW5sAEFudABBbnwAQW6IAEFujABBbpAAQW6UAEFumABBbqAAQW6oAEFurABBbrAAQW64AEFuvABBcKgAQXCwAEFwuABBcMAAQXDMAEFw0ABBcNQAQXDYAEFw3ABBcOQAQXDsAEFw8ABBcPQAQXD8AEFxAABBcuwAQXL0AEFzAABBcwgAQXMUAEFzGABBcxwAQXMgAEFzJABBcywAQXM0AEFzOABBczwAQXNEAEFzSABBdTQAQXU8AEF1RABBdUwAQXVYAEF1XABBdWAAQXVkAEF1aABBdXAAQXV4AEF1fABBdYAAQXWIAEF1jABBd3gAQXeAAEF3iABBd5AAQXecAEF3oABBd6QAQXeoAEF3rABBd7QAQXe8AEF3wABBd8QAQXfMAEF30ABBebwAQXnEAEF5zABBedQAQXngAEF55ABBeegAQXnsAEF58ABBefgAQXoAAEF6BABBeggAQXoQAEF6FABBfGAAQXzsAEF9bABBfewAQX30AEF9/ABBfgQAQX4MAEF+GABBfhwAQX4gAEF+LABBfjAAQX44AEF+PABBfkgAQX5UAEF+WABBflwAQX5oAEF+bABBfoAAQX7kAEF/CABBfxAAQX8cAEF/QABBf0wAQX9YAEF/YABBgIQAQYEUAEGBsABBgkAAQYJMAEGCVABBglwAQYJkAEGCbABBgnQAQYJ4AEGChABBgugAQYNsAEGDdABBg3wAQYOEAEGDjABBg5QAQYOcAEGDpABBg6wAQYQwAEGEPABBhEgAQYRUAEGEYABBhGwAQYR4AEGEhABBhJAAQYSYAEGGhABBhowAQYaUAEGGnABBhqgAQYasAEGGsABBhrQAQYa4AEGGwABBhsgAQYbMAEGG0ABBhtgAQYbcAEGIyABBiNAAQYjYAEGI4ABBiOwAQYjwAEGI9ABBiPgAQYj8AEGJBABBiQwAQYkQAEGJFABBiRwAQYkgAEGLDABBixQAQYsgAEGLKABBizQAQYs4AEGLPABBi0AAQYtEAEGLTABBi1QAQYtYAEGLXABBi2QAQYtoAEGLzABBi9AAQYvUAEGL3ABBjcgAQY3QAEGN2ABBjeAAQY3sAEGN8ABBjfQAQY34AEGN/ABBjgQAQY4MAEGOEABBjhQAQY4cAEGOIABBkAwAQZAUAEGQHABBkCQAQZAwAEGQNABBkDgAQZA8AEGQQABBkEgAQZBQAEGQVABBkFgAQZBgAEGQZABBklAAQZJYAEGSYABBkmgAQZJ0AEGSeABBknwAQZKAAEGShABBkowAQZKUAEGSmABBkpwAQZKkAEGSqABBlJQAQZScAEGUpABBlKwAQZS4AEGUvABBlMAAQZTEAEGUyABBlNAAQZTYAEGU3ABBlOAAQZToAEGU7ABBltgAQZbgAEGW6ABBlvAAQZb8AEGXAABBlwQAQZcIAEGXDABBlxQAQZccAEGXIABBlyQAQZcsAEGXMABBmFQAQZjkAEGZgABBmhAAQZocAEGaKABBmjAAQZo4AEGaQABBmkgAQZpMAEGaWABBmrwAQZswAEGbPABBm0gAQZtUAEGbYABBm2wAQZt4AEGbhABBm/gAQZwEAEGcEABBnBwAQZwoAEGcNABBnEAAQZxMAEGcVABBnkAAQZ5IAEGeVABBnlwAQZ5oAEGebABBnnAAQZ50AEGeeABBnoAAQZ6MAEGekABBnpQAQZ6cAEGeoABBoIwAQaCUAEGgoABBoKgAQaC0AEGguABBoLwAQaDAAEGgxABBoMwAQaDYAEGg3ABBoOAAQaDoAEGg7ABBotgAQaLgAEGi7ABBovQAQaMAAEGjBABBowgAQaMMAEGjEABBoxgAQaMkAEGjKABBoywAQaM0AEGjOABBpSQAQaUsAEGlOABBpUAAQaVMAEGlUABBpVQAQaVYAEGlXABBpWQAQaVwAEGldABBpXgAQaWAAEGlhABBp5AAQaggAEGosABBqTwAQanYAEGqWABBqvQAQauQAEGsEABBrKAAQa0wAEGtOABBrUQAQa1MAEGtVABBrVwAQa1oAEGtdABBrXwAQa2EAEGtkABBrZgAQa2gAEGtrABBrbgAQa28AEGt4ABBrkQAQa5YAEGuYABBrnQAQa6AAEGuiABBr6wAQbA8AEGw2ABBsWgAQbF0AEGxfABBsYQAQbGMAEGxlABBsZwAQbGgAEGxrABBshAAQbKkAEGyrABBsrQAQbK8AEGyxABBsswAQbLUAEGy3ABBsuQAQbLsAEGzgABBs4wAQbOYAEGzpABBs7AAQbO8AEGzyABBs9QAQbPgAEGz7ABBs/QAQbXgAEG16ABBtfQAQbX8AEG2CABBtgwAQbYQAEG2FABBthgAQbYgAEG2KABBtiwAQbYwAEG2OABBtjwAQbaAAEG2hABBtowAQbh4AEG4gABBuIgAQbiQAEG4nABBuKAAQbikAEG4qABBuKwAQbi0AEG4vABBuMAAQbjEAEG4zABBuNAAQbq8AEG6xABButAAQbrYAEG65ABBuugAQbrsAEG68ABBuvQAQbr8AEG7BABBuwgAQbsMAEG7FABBuxgAQbtcAEG7cABBu3wAQbuEAEG7yABBu9wAQbvoAEG78ABBvAwAQb34AEG+AABBvggAQb4QAEG+HABBviAAQb4kAEG+KABBviwAQb40AEG+PABBvkAAQb5EAEG+TABBvlAAQcA8AEHARABBwFAAQcBYAEHAZABBwGgAQcBsAEHAcABBwHQAQcB8AEHAhABBwIgAQcCMAEHAlABBwJgAQcDcAEHA4ABBwOgAQcLUAEHC3ABBwuQAQcLsAEHC+ABBwvwAQcMAAEHDBABBwwgAQcMQAEHDGABBwxwAQcMgAEHDKABBwywAQcUYAEHFIABBxSwAQcU0AEHFQABBxUQAQcVIAEHFTABBxVAAQcVYAEHFYABBxWQAQcVoAEHFcABBxXQAQcXYAEHF3ABBxeAAQcXoAEHH1ABBx9wAQcfkAEHH7ABBx/gAQcf8AEHIAABByAQAQcgIAEHIEABByBgAQcgcAEHIIABByCgAQcgsAEHKGABByiAAQcooAEHKMABByjwAQcpAAEHKRABBykgAQcpMAEHKVABBylwAQcpgAEHKZABBymwAQcpwAEHK1ABBy1gAQctkAEHLcABBy3wAQcuIAEHLlABBy6AAQcusAEHLuABBzDwAQcxIAEHMVABBzGAAQcxsAEHMeABBzIQAQcyQAEHMnABBzKQAQc04AEHNnABBzgAAQc4oAEHOoABBz0QAQc9kAEHRsABB0jwAQdK8AEHTPABB00QAQdNMAEHTVABB01wAQdNoAEHTbABB03AAQdN8AEHTgABB04gAQdOMAEHTlABB06AAQdOkAEHTqABB07QAQdO4AEHTzABB1DAAQdRUAEHUXABB1GQAQdSIAEHUlABB1KAAQdSoAEHVzABB1lwAQdb4AEHXiABB15QAQdecAEHXpABB16wAQde0AEHXvABB18AAQdfMAEHYMABB2LQAQdi8AEHYxABB2MwAQdjUAEHY3ABB2OQAQdjsAEHY9ABB2XgAQdmEAEHZkABB2ZwAQdmoAEHZtABB2cAAQdnMAEHZ2ABB2eAAQdvMAEHb1ABB29wAQdvkAEHb8ABB2/QAQdv4AEHb/ABB3AAAQdwIAEHcEABB3BQAQdwYAEHcIABB3CQAQd4QAEHeGABB3iAAQd4oAEHeNABB3jgAQd48AEHeQABB3kQAQd5MAEHeVABB3lgAQd5cAEHeZABB3mgAQeBUAEHgXABB4GgAQeBwAEHgfABB4IAAQeCEAEHgiABB4IwAQeCUAEHgnABB4KAAQeCkAEHgrABB4LAAQeEUAEHhGABB4RwAQeEkAEHjEABB4xgAQeMgAEHjKABB4zQAQeM4AEHjPABB40AAQeNEAEHjTABB41QAQeNYAEHjXABB42QAQeNoAEHlVABB5VwAQeVkAEHlbABB5XgAQeV8AEHlgABB5YQAQeWIAEHlkABB5ZgAQeWcAEHloABB5agAQeWsAEHnmABB56AAQeeoAEHnsABB57wAQefAAEHnxABB58gAQefMAEHn1ABB59wAQefgAEHn5ABB5+wAQefwAEHp3ABB6eQAQensAEHp9ABB6gAAQeoEAEHqCABB6gwAQeoQAEHqGABB6iAAQeokAEHqKABB6jAAQeo0AEHsIABB7CgAQewwAEHsOABB7EQAQexIAEHsTABB7FAAQexUAEHsXABB7GQAQexoAEHsbABB7HQAQex4AEHtnABB7iwAQe7IAEHvWABB72QAQe9sAEHvdABB73wAQe+EAEHvjABB75AAQe+cAEHwAABB8HQAQfB8AEHwhABB8IwAQfCUAEHwnABB8KQAQfCsAEHxIABB8SwAQfE4AEHxRABB8VAAQfFcAEHxaABB8XQAQfF8AEHzaABB83AAQfN4AEHzgABB84wAQfOQAEHzlABB85gAQfOcAEHzpABB86wAQfOwAEHztABB87wAQfPAAEH1rABB9bQAQfW8AEH1xABB9dAAQfXUAEH12ABB9dwAQfXgAEH16ABB9fAAQfX0AEH1+ABB9gAAQfYEAEH38ABB9/gAQfgAAEH4CABB+BQAQfgYAEH4HABB+CAAQfgkAEH4LABB+DQAQfg4AEH4PABB+EQAQfhIAEH6NABB+jwAQfpIAEH6UABB+lwAQfpgAEH6ZABB+mgAQfpsAEH6dABB+nwAQfqAAEH6hABB+owAQfqQAEH8fABB/IQAQfyMAEH8lABB/KAAQfykAEH8qABB/KwAQfywAEH8uABB/MAAQfzEAEH8yABB/NAAQfzUAEH+wABB/sgAQf7QAEH+2ABB/uQAQf7oAEH+7ABB/vAAQf70AEH+/ABB/wQAQf8IAEH/DABB/xQAQf8YAEIBBABCAQwAQgEUAEIBHABCASgAQgEsAEIBMABCATQAQgE4AEIBQABCAUgAQgFMAEIBUABCAVgAQgFcAEIDqABCBDQAQgS0AEIFNABCBTwAQgVEAEIFTABCBVQAQgVgAEIFZABCBWgAQgV0AEIFeABCBYAAQgWEAEIFjABCBZgAQgWcAEIFoABCBawAQgWwAEIF1ABCBjgAQgZcAEIGZABCBmwAQgaQAEIGnABCBqgAQgawAEIH1ABCCGQAQgkAAEIJkABCCZwAQgmkAEIJrABCCbQAQgm8AEIJxABCCcgAQgnUAEIKOABCCrwAQgrEAEIKzABCCtQAQgrcAEIK5ABCCuwAQgr0AEIK/ABCC4AAQguMAEILmABCC6QAQguwAEILvABCC8gAQgvUAEIL4ABCC+gAQg3UAEIN3ABCDeQAQg3sAEIN+ABCDfwAQg4AAEIOBABCDggAQg4QAEIOGABCDhwAQg4gAEIOKABCDiwAQhAYAEIQIABCECgAQhAwAEIQPABCEEAAQhBEAEIQSABCEEwAQhBUAEIQXABCEGAAQhBkAEIQbABCEHAAQhJcAEISZABCEnAAQhJ4AEIShABCEogAQhKMAEISkABCEpQAQhKcAEISpABCEqgAQhKsAEIStABCErgAQhMcAEITIABCEyQAQhMsAEIVGABCFSAAQhUoAEIVMABCFTwAQhVAAEIVRABCFUgAQhVMAEIVVABCFVwAQhVgAEIVZABCFWwAQhVwAEIXXABCF2QAQhdsAEIXdABCF4AAQheEAEIXiABCF4wAQheQAEIXmABCF6AAQhekAEIXqABCF7AAQhe0AEIZoABCGagAQhmwAEIZuABCGcQAQhnIAEIZzABCGdAAQhnUAEIZ3ABCGeQAQhnoAEIZ7ABCGfQAQhn4AEIb5ABCG+wAQhv0AEIb/ABCHAgAQhwMAEIcEABCHBQAQhwYAEIcIABCHCgAQhwsAEIcMABCHDgAQhw8AEIeKABCHjAAQh44AEIeQABCHkwAQh5QAEIeVABCHlgAQh5cAEIeZABCHmwAQh5wAEIedABCHnwAQh6AAEIfpABCIDQAQiDQAEIhYABCIWwAQiF0AEIhfABCIYQAQiGMAEIhlABCIZgAQiGkAEIiCABCInwAQiKEAEIijABCIpQAQiKcAEIipABCIqwAQiK0AEIjKABCIzQAQiNAAEIjTABCI1gAQiNkAEIjcABCI3wAQiOEAEIlcABCJXgAQiWAAEIliABCJZQAQiWYAEIlnABCJaAAQiWkAEIlrABCJbQAQiW4AEIlvABCJcQAQiXIAEIntABCJ7wAQifEAEInzABCJ9gAQifcAEIn4ABCJ+QAQifoAEIn8ABCJ/gAQif8AEIoAABCKAgAQigMAEIp+ABCKgAAQioIAEIqEABCKhwAQiogAEIqJABCKigAQiosAEIqNABCKjwAQipAAEIqRABCKkwAQipQAEIsPABCLEQAQixQAEIsWABCLGQAQixoAEIsbABCLHAAQix0AEIsfABCLIQAQiyIAEIsjABCLJQAQiyYAEIuhABCLowAQi6UAEIunABCLqgAQi6sAEIusABCLrQAQi64AEIuwABCLsgAQi7MAEIu0ABCLtgAQi7cAEIwyABCMNAAQjDYAEIw4ABCMOwAQjDwAEIw9ABCMPgAQjD8AEIxBABCMQwAQjEQAEIxFABCMRwAQjEgAEIzDABCMxQAQjMcAEIzJABCMzAAQjM0AEIzOABCMzwAQjNAAEIzSABCM1AAQjNUAEIzWABCM2AAQjNkAEI1sABCNjwAQja8AEI3PABCN0QAQjdMAEI3VABCN1wAQjdoAEI3bABCN3AAQjd8AEI3gABCN4gAQjeMAEI3lABCN6AAQjekAEI3qABCN7QAQje4AEI3zABCODAAQjhUAEI4XABCOGQAQjiIAEI4lABCOKAAQjioAEI5zABCOlwAQjr4AEI7iABCO5QAQjucAEI7pABCO6wAQju0AEI7vABCO8AAQjvMAEI8MABCPLQAQjy8AEI8xABCPMwAQjzUAEI83ABCPOQAQjzsAEI89ABCPXgAQj2EAEI9kABCPZwAQj2oAEI9tABCPcAAQj3MAEI92ABCPeAAQj/MAEI/1ABCP9wAQj/kAEI/8ABCP/QAQj/4AEI//ABCQAAAQkAIAEJAEABCQBQAQkAYAEJAIABCQCQAQkIQAEJCGABCQiAAQkIoAEJCNABCQjgAQkI8AEJCQABCQkQAQkJMAEJCVABCQlgAQkJcAEJCZABCQmgAQkRUAEJEXABCRGgAQkRwAEJEfABCRIAAQkSEAEJEiABCRIwAQkSUAEJEnABCRKAAQkSkAEJErABCRLAAQkUUAEJFGABCRRwAQkUkAEJHEABCRxgAQkcgAEJHKABCRzQAQkc4AEJHPABCR0AAQkdEAEJHTABCR1QAQkdYAEJHXABCR2QAQkdoAEJJVABCSVwAQklkAEJJbABCSXgAQkl8AEJJgABCSYQAQkmIAEJJkABCSZgAQkmcAEJJoABCSagAQkmsAEJLmABCS6AAQkuoAEJLsABCS7wAQkvAAEJLxABCS8gAQkvMAEJL1ABCS9wAQkvgAEJL5ABCS+wAQkvwAEJN3ABCTeQAQk3sAEJN9ABCTgAAQk4EAEJOCABCTgwAQk4QAEJOGABCTiAAQk4kAEJOKABCTjAAQk40AEJQIABCUCgAQlAwAEJQOABCUEQAQlBIAEJQTABCUFAAQlBUAEJQXABCUGQAQlBoAEJQbABCUHQAQlB4AEJRnABCUiwAQlLIAEJTWABCU2QAQlNsAEJTdABCU3wAQlOEAEJTjABCU5AAQlOcAEJUAABCVHQAQlR8AEJUhABCVIwAQlSUAEJUnABCVKQAQlSsAEJVIABCVSwAQlU4AEJVRABCVVAAQlVcAEJVaABCVXQAQlV8AEJXaABCV3AAQld4AEJXgABCV4wAQleQAEJXlABCV5gAQlecAEJXpABCV6wAQlewAEJXtABCV7wAQlfAAEJZrABCWbQAQlm8AEJZxABCWdAAQlnUAEJZ2ABCWdwAQlngAEJZ6ABCWfAAQln0AEJZ+ABCWgAAQloEAEJb8ABCW/gAQlwAAEJcCABCXBQAQlwYAEJcHABCXCAAQlwkAEJcLABCXDQAQlw4AEJcPABCXEQAQlxIAEJeNABCXjwAQl5IAEJeUABCXlwAQl5gAEJeZABCXmgAQl5sAEJedABCXnwAQl6AAEJehABCXowAQl6QAEJgfABCYIQAQmCMAEJglABCYKAAQmCkAEJgqABCYKwAQmCwAEJguABCYMAAQmDEAEJgyABCYNAAQmDUAEJiwABCYsgAQmLQAEJi2ABCYuQAQmLoAEJi7ABCYvAAQmL0AEJi/ABCYwQAQmMIAEJjDABCYxQAQmMYAEJlBABCZQwAQmUUAEJlHABCZSgAQmUsAEJlMABCZTQAQmU4AEJlQABCZUgAQmVMAEJlUABCZVgAQmVcAEJnqABCaDQAQmi0AEJpNABCaTwAQmlEAEJpTABCaVQAQmlgAEJpZABCaWgAQml0AEJpeABCaYAAQmmEAEJpjABCaZgAQmmcAEJpoABCaawAQmmwAEJpxABCaigAQmpMAEJqVABCalwAQmqAAEJqjABCapgAQmqgAEJrxABCbFQAQmzwAEJtgABCbYwAQm2UAEJtnABCbaQAQm2sAEJttABCbbgAQm3EAEJuKABCbqwAQm60AEJuvABCbsQAQm7MAEJu1ABCbtwAQm7kAEJu7ABCb3AAQm98AEJviABCb5QAQm+gAEJvrABCb7gAQm/EAEJv0ABCb9gAQnHEAEJxzABCcdQAQnHcAEJx6ABCcewAQnHwAEJx9ABCcfgAQnIAAEJyCABCcgwAQnIQAEJyGABCchwAQnQIAEJ0EABCdBgAQnQgAEJ0LABCdDAAQnQ0AEJ0OABCdDwAQnREAEJ0TABCdFAAQnRUAEJ0XABCdGAAQnZMAEJ2VABCdmAAQnZoAEJ2dABCdngAQnZ8AEJ2gABCdoQAQnaMAEJ2lABCdpgAQnacAEJ2pABCdqgAQncMAEJ3EABCdxQAQnccAEJ5CABCeRAAQnkYAEJ5IABCeSwAQnkwAEJ5NABCeTgAQnk8AEJ5RABCeUwAQnlQAEJ5VABCeVwAQnlgAEJ7TABCe1QAQntcAEJ7ZABCe3AAQnt0AEJ7eABCe3wAQnuAAEJ7iABCe5AAQnuUAEJ7mABCe6AAQnukAEJ9kABCfZgAQn2gAEJ9qABCfbQAQn24AEJ9vABCfcAAQn3EAEJ9zABCfdQAQn3YAEJ93ABCfeQAQn3oAEJ/1ABCf9wAQn/kAEJ/7ABCf/gAQn/8AEKAAABCgAQAQoAIAEKAEABCgBgAQoAcAEKAIABCgCgAQoAsAEKCGABCgiAAQoIoAEKCMABCgjwAQoJAAEKCRABCgkgAQoJMAEKCVABCglwAQoJgAEKCZABCgmwAQoJwAEKDlABChCQAQoTAAEKFUABChVwAQoVkAEKFbABChXQAQoV8AEKFhABChYgAQoWUAEKF+ABChmwAQoZ0AEKGfABChoQAQoaMAEKGlABChpwAQoakAEKHGABChyQAQocwAEKHPABCh0gAQodUAEKHYABCh2wAQod0AEKJYABCiWgAQolwAEKJeABCiYQAQomIAEKJjABCiZAAQomUAEKJnABCiaQAQomoAEKJrABCibQAQom4AEKLpABCi6wAQou0AEKLvABCi8gAQovMAEKL0ABCi9QAQovYAEKL4ABCi+gAQovsAEKL8ABCi/gAQov8AEKN6ABCjfAAQo34AEKOAABCjgwAQo4QAEKOFABCjhgAQo4cAEKOJABCjiwAQo4wAEKONABCjjwAQo5AAEKQLABCkDQAQpBAAEKQSABCkFQAQpBYAEKQXABCkGAAQpBkAEKQbABCkHQAQpB4AEKQfABCkIQAQpCIAEKSdABCknwAQpKEAEKSjABCkpgAQpKcAEKSoABCkqQAQpKoAEKSsABCkrgAQpK8AEKSwABCksgAQpLMAEKUuABClMAAQpTIAEKU0ABClNwAQpTgAEKU5ABClOgAQpTsAEKU9ABClPwAQpUAAEKVBABClQwAQpUQAEKW/ABClwQAQpcMAEKXFABClyAAQpckAEKXKABClywAQpcwAEKXOABCl0AAQpdEAEKXSABCl1AAQpdUAEKZoABCmiwAQpqsAEKbLABCmzQAQps8AEKbRABCm0wAQptYAEKbXABCm2AAQptsAEKbcABCm3gAQpt8AEKbhABCm5AAQpuUAEKbmABCm6QAQpuoAEKbvABCnCAAQpxEAEKcTABCnFQAQpx4AEKchABCnJAAQpyYAEKdvABCnkwAQp7oAEKfeABCn4QAQp+MAEKflABCn5wAQp+kAEKfrABCn7AAQp+8AEKgIABCoKQAQqCsAEKgtABCoLwAQqDEAEKgzABCoNQAQqDcAEKg5ABCoWgAQqF0AEKhgABCoYwAQqGYAEKhpABCobAAQqG8AEKhyABCodAAQqO8AEKjxABCo8wAQqPUAEKj4ABCo+QAQqPoAEKj7ABCo/AAQqP4AEKkAABCpAQAQqQIAEKkEABCpBQAQqYAAEKmCABCphAAQqYYAEKmJABCpigAQqYsAEKmMABCpjQAQqY8AEKmRABCpkgAQqZMAEKmVABCplgAQqhEAEKoTABCqFgAQqhgAEKobABCqHAAQqh0AEKoeABCqHwAQqiEAEKojABCqJAAQqiUAEKonABCqKAAQqkEAEKpCABCqQwAQqkUAEKrAABCqwgAQqsQAEKrGABCqyQAQqsoAEKrLABCqzAAQqs0AEKrPABCq0QAQqtIAEKrTABCq1QAQqtYAEKtRABCrUwAQq1UAEKtXABCrWgAQq1sAEKtcABCrXQAQq14AEKtgABCrYgAQq2MAEKtkABCrZgAQq2cAEKviABCr5AAQq+YAEKvoABCr6wAQq+wAEKvtABCr7gAQq+8AEKvxABCr8wAQq/QAEKv1ABCr9wAQq/gAEKxzABCsdQAQrHcAEKx5ABCsfAAQrH0AEKx+ABCsfwAQrIAAEKyCABCshAAQrIUAEKyGABCsiAAQrIkAEK0EABCtBgAQrQgAEK0KABCtDQAQrQ4AEK0PABCtEAAQrREAEK0TABCtFQAQrRYAEK0XABCtGQAQrRoAEK1jABCthwAQra4AEK3SABCt1QAQrdcAEK3ZABCt2wAQrd0AEK3fABCt4AAQreMAEK38ABCuGQAQrhsAEK4dABCuHwAQriEAEK4jABCuJQAQricAEK5EABCuRwAQrkoAEK5NABCuUAAQrlMAEK5WABCuWQAQrlsAEK7WABCu2AAQrtoAEK7cABCu3wAQruAAEK7hABCu4gAQruMAEK7lABCu5wAQrugAEK7pABCu6wAQruwAEK9nABCvaQAQr2sAEK9tABCvcAAQr3EAEK9yABCvcwAQr3QAEK92ABCveAAQr3kAEK96ABCvfAAQr30AEK/4ABCv+gAQr/wAEK/+ABCwAQAQsAIAELADABCwBAAQsAUAELAHABCwCQAQsAoAELALABCwDQAQsA4AELCJABCwiwAQsI4AELCQABCwkwAQsJQAELCVABCwlgAQsJcAELCZABCwmwAQsJwAELCdABCwnwAQsKAAELEbABCxHQAQsR8AELEhABCxJAAQsSUAELEmABCxJwAQsSgAELEqABCxLAAQsS0AELEuABCxMAAQsTEAELGsABCxrgAQsbAAELGyABCxtQAQsbYAELG3ABCxuAAQsbkAELG7ABCxvQAQsb4AELG/ABCxwQAQscIAELI9ABCyPwAQskEAELJDABCyRgAQskcAELJIABCySQAQskoAELJMABCyTgAQsk8AELJQABCyUgAQslMAELLmABCzCQAQsykAELNJABCzSwAQs00AELNPABCzUQAQs1QAELNVABCzVgAQs1kAELNaABCzXAAQs10AELNfABCzYgAQs2MAELNkABCzZwAQs2gAELNtABCzhgAQs48AELORABCzkwAQs5wAELOfABCzogAQs6QAELPtABC0EQAQtDgAELRcABC0XwAQtGEAELRjABC0ZQAQtGcAELRpABC0agAQtG0AELSGABC0pwAQtKkAELSrABC0rQAQtK8AELSxABC0swAQtLUAELS3ABC02AAQtNsAELTeABC04QAQtOQAELTnABC06gAQtO0AELTwABC08gAQtW0AELVvABC1cQAQtXMAELV2ABC1dwAQtXgAELV5ABC1egAQtXwAELV+ABC1fwAQtYAAELWCABC1gwAQtf4AELYAABC2AgAQtgQAELYHABC2CAAQtgkAELYKABC2CwAQtg0AELYPABC2EAAQthEAELYTABC2FAAQto8AELaRABC2lAAQtpYAELaZABC2mgAQtpsAELacABC2nQAQtp8AELahABC2ogAQtqMAELalABC2pgAQtr8AELbAABC2wQAQtsMAELc+ABC3QAAQt0IAELdEABC3RwAQt0gAELdJABC3SgAQt0sAELdNABC3TwAQt1AAELdRABC3UwAQt1QAELfPABC30QAQt9MAELfVABC32AAQt9kAELfaABC32wAQt9wAELfeABC34AAQt+EAELfiABC35AAQt+UAELhgABC4YgAQuGQAELhmABC4aQAQuGoAELhrABC4bAAQuG0AELhvABC4cQAQuHIAELhzABC4dQAQuHYAELjxABC48wAQuPUAELj3ABC4+gAQuPsAELj8ABC4/QAQuP4AELkAABC5AgAQuQMAELkEABC5BgAQuQcAELmCABC5hAAQuYYAELmIABC5iwAQuYwAELmNABC5jgAQuY8AELmRABC5kwAQuZQAELmVABC5lwAQuZgAELnhABC6BQAQuiwAELpQABC6UwAQulUAELpXABC6WQAQulsAELpdABC6XgAQumEAELp6ABC6lwAQupkAELqbABC6nQAQup8AELqhABC6owAQuqUAELrCABC6xQAQusgAELrLABC6zgAQutEAELrUABC61wAQutkAELtUABC7VgAQu1gAELtaABC7XQAQu14AELtfABC7YAAQu2EAELtjABC7ZQAQu2YAELtnABC7aQAQu2oAELvlABC75wAQu+kAELvrABC77gAQu+8AELvwABC78QAQu/IAELv0ABC79gAQu/cAELv4ABC7+gAQu/sAELx2ABC8eAAQvHoAELx8ABC8fwAQvIAAELyBABC8ggAQvIMAELyFABC8hwAQvIgAELyJABC8iwAQvIwAEL0HABC9CQAQvQsAEL0NABC9EAAQvREAEL0SABC9EwAQvRQAEL0WABC9GAAQvRkAEL0aABC9HAAQvR0AEL2YABC9mgAQvZwAEL2eABC9oQAQvaIAEL2jABC9pAAQvaUAEL2nABC9qQAQvaoAEL2rABC9rQAQva4AEL4pABC+KwAQvi0AEL4vABC+MgAQvjMAEL40ABC+NQAQvjYAEL44ABC+OgAQvjsAEL48ABC+PgAQvj8AEL66ABC+vAAQvr4AEL7AABC+wwAQvsQAEL7FABC+xgAQvscAEL7JABC+ywAQvswAEL7NABC+zwAQvtAAEL9jABC/hgAQv6YAEL/GABC/yAAQv8oAEL/MABC/zgAQv9EAEL/SABC/0wAQv9YAEL/XABC/2QAQv9oAEL/cABC/3wAQv+AAEL/hABC/5AAQv+UAEL/qABDAAwAQwAwAEMAOABDAEAAQwBkAEMAcABDAHwAQwCEAEMBqABDAjgAQwLUAEMDZABDA3AAQwN4AEMDgABDA4gAQwOQAEMDmABDA5wAQwOoAEMEDABDBJAAQwSYAEMEoABDBKgAQwSwAEMEuABDBMAAQwTIAEME0ABDBVQAQwVgAEMFbABDBXgAQwWEAEMFkABDBZwAQwWoAEMFtABDBbwAQweoAEMHsABDB7gAQwfAAEMHzABDB9AAQwfUAEMH2ABDB9wAQwfkAEMH7ABDB/AAQwf0AEMH/ABDCAAAQwnsAEMJ9ABDCfwAQwoEAEMKEABDChQAQwoYAEMKHABDCiAAQwooAEMKMABDCjQAQwo4AEMKQABDCkQAQwwwAEMMOABDDEQAQwxMAEMMWABDDFwAQwxgAEMMZABDDGgAQwxwAEMMeABDDHwAQwyAAEMMiABDDIwAQwzwAEMM9ABDDPgAQw0AAEMO7ABDDvQAQw78AEMPBABDDxAAQw8UAEMPGABDDxwAQw8gAEMPKABDDzAAQw80AEMPOABDD0AAQw9EAEMRMABDETgAQxFAAEMRSABDEVQAQxFYAEMRXABDEWAAQxFkAEMRbABDEXQAQxF4AEMRfABDEYQAQxGIAEMTdABDE3wAQxOEAEMTjABDE5gAQxOcAEMToABDE6QAQxOoAEMTsABDE7gAQxO8AEMTwABDE8gAQxPMAEMVuABDFcAAQxXIAEMV0ABDFdwAQxXgAEMV5ABDFegAQxXsAEMV9ABDFfwAQxYAAEMWBABDFgwAQxYQAEMX/ABDGAQAQxgMAEMYFABDGCAAQxgkAEMYKABDGCwAQxgwAEMYOABDGEAAQxhEAEMYSABDGFAAQxhUAEMZeABDGggAQxqkAEMbNABDG0AAQxtIAEMbUABDG1gAQxtgAEMbaABDG2wAQxt4AEMb3ABDHFAAQxxYAEMcYABDHGgAQxxwAEMceABDHIAAQxyIAEMc/ABDHQgAQx0UAEMdIABDHSwAQx04AEMdRABDHVAAQx1YAEMfRABDH0wAQx9UAEMfXABDH2gAQx9sAEMfcABDH3QAQx94AEMfgABDH4gAQx+MAEMfkABDH5gAQx+cAEMhiABDIZAAQyGYAEMhoABDIawAQyGwAEMhtABDIbgAQyG8AEMhxABDIcwAQyHQAEMh1ABDIdwAQyHgAEMjzABDI9QAQyPcAEMj5ABDI/AAQyP0AEMj+ABDI/wAQyQAAEMkCABDJBAAQyQUAEMkGABDJCAAQyQkAEMmEABDJhgAQyYkAEMmLABDJjgAQyY8AEMmQABDJkQAQyZIAEMmUABDJlgAQyZcAEMmYABDJmgAQyZsAEMoWABDKGAAQyhoAEMocABDKHwAQyiAAEMohABDKIgAQyiMAEMolABDKJwAQyigAEMopABDKKwAQyiwAEMqnABDKqQAQyqsAEMqtABDKsAAQyrEAEMqyABDKswAQyrQAEMq2ABDKuAAQyrkAEMq6ABDKvAAQyr0AEMs4ABDLOgAQyzwAEMs+ABDLQQAQy0IAEMtDABDLRAAQy0UAEMtHABDLSQAQy0oAEMtLABDLTQAQy04AEMvhABDMBAAQzCQAEMxEABDMRgAQzEgAEMxKABDMTAAQzE8AEMxQABDMUQAQzFQAEMxVABDMVwAQzFgAEMxbABDMXgAQzF8AEMxgABDMYwAQzGQAEMxpABDMggAQzIsAEMyNABDMkAAQzJkAEMycABDMnwAQzKEAEMzqABDNDgAQzTUAEM1ZABDNXAAQzV4AEM1gABDNYgAQzWQAEM1mABDNZwAQzWoAEM2DABDNpAAQzaYAEM2oABDNqgAQzawAEM2uABDNsAAQzbIAEM20ABDN1QAQzdgAEM3bABDN3gAQzeEAEM3kABDN5wAQzeoAEM3tABDN7wAQzmoAEM5sABDObgAQznAAEM5zABDOdAAQznUAEM52ABDOdwAQznkAEM57ABDOfAAQzn0AEM5/ABDOgAAQzvsAEM79ABDO/wAQzwEAEM8EABDPBQAQzwYAEM8HABDPCAAQzwoAEM8MABDPDQAQzw4AEM8QABDPEQAQz4wAEM+OABDPkQAQz5MAEM+WABDPlwAQz5gAEM+ZABDPmgAQz5wAEM+eABDPnwAQz6AAEM+iABDPowAQz7wAEM+9ABDPvgAQz8AAENA7ABDQPQAQ0D8AENBBABDQRAAQ0EUAENBGABDQRwAQ0EgAENBKABDQTAAQ0E0AENBOABDQUAAQ0FEAENDMABDQzgAQ0NAAENDSABDQ1QAQ0NYAENDXABDQ2AAQ0NkAENDbABDQ3QAQ0N4AENDfABDQ4QAQ0OIAENFdABDRXwAQ0WEAENFjABDRZgAQ0WcAENFoABDRaQAQ0WoAENFsABDRbgAQ0W8AENFwABDRcgAQ0XMAENHuABDR8AAQ0fIAENH0ABDR9wAQ0fgAENH5ABDR+gAQ0fsAENH9ABDR/wAQ0gAAENIBABDSAwAQ0gQAENJ/ABDSgQAQ0oMAENKFABDSiAAQ0okAENKKABDSiwAQ0owAENKOABDSkAAQ0pEAENKSABDSlAAQ0pUAENLeABDTAgAQ0ykAENNNABDTUAAQ01MAENNVABDTVwAQ01kAENNbABDTXAAQ018AENN4ABDTlQAQ05gAENObABDTngAQ06EAENOkABDTpwAQ06oAENPHABDTygAQ080AENPQABDT0wAQ09YAENPZABDT3AAQ094AENRZABDUWwAQ1F4AENRgABDUYwAQ1GQAENRlABDUZgAQ1GcAENRpABDUbAAQ1G0AENRuABDUcAAQ1HEAENTsABDU7gAQ1PEAENTzABDU9gAQ1PcAENT4ABDU+QAQ1PoAENT8ABDU/wAQ1QAAENUBABDVAwAQ1QQAENV/ABDVgQAQ1YQAENWGABDViQAQ1YoAENWLABDVjAAQ1Y0AENWPABDVkgAQ1ZMAENWUABDVlgAQ1ZcAENYSABDWFAAQ1hcAENYZABDWHAAQ1h0AENYeABDWHwAQ1iAAENYiABDWJQAQ1iYAENYnABDWKQAQ1ioAENalABDWpwAQ1qkAENarABDWrgAQ1q8AENawABDWsQAQ1rIAENa0ABDWtwAQ1rgAENa5ABDWuwAQ1rwAENc3ABDXOQAQ1zsAENc9ABDXQAAQ10EAENdCABDXQwAQ10QAENdGABDXSQAQ10oAENdLABDXTQAQ104AENfJABDXywAQ184AENfQABDX0wAQ19QAENfVABDX1gAQ19cAENfZABDX3AAQ190AENfeABDX4AAQ1+EAENfyABDX8wAQ1/UAENhwABDYcgAQ2HQAENh2ABDYeQAQ2HoAENh7ABDYfAAQ2H0AENh/ABDYggAQ2IMAENiEABDYhgAQ2IcAENkCABDZBAAQ2QYAENkIABDZCwAQ2QwAENkNABDZDgAQ2Q8AENkRABDZFAAQ2RUAENkWABDZGAAQ2RkAENmUABDZlgAQ2ZkAENmbABDZngAQ2Z8AENmgABDZoQAQ2aIAENmkABDZpwAQ2agAENmpABDZqwAQ2awAENo/ABDaYgAQ2oIAENqiABDapAAQ2qYAENqoABDaqgAQ2q0AENquABDarwAQ2rIAENqzABDatQAQ2rYAENq4ABDauwAQ2rwAENq9ABDawAAQ2sEAENrGABDa3wAQ2ugAENrqABDa7AAQ2vUAENr4ABDa+wAQ2v0AENtGABDbagAQ25EAENu1ABDbuAAQ27oAENu8ABDbvgAQ28AAENvCABDbwwAQ28YAENvfABDcAAAQ3AIAENwEABDcBgAQ3AgAENwKABDcDAAQ3A4AENwQABDcMQAQ3DQAENw3ABDcOgAQ3D0AENxAABDcQwAQ3EYAENxJABDcSwAQ3MYAENzIABDcygAQ3MwAENzPABDc0AAQ3NEAENzSABDc0wAQ3NUAENzXABDc2AAQ3NkAENzbABDc3AAQ3VcAEN1ZABDdWwAQ3V0AEN1gABDdYQAQ3WIAEN1jABDdZAAQ3WYAEN1oABDdaQAQ3WoAEN1sABDdbQAQ3egAEN3qABDd7QAQ3e8AEN3yABDd8wAQ3fQAEN31ABDd9gAQ3fgAEN36ABDd+wAQ3fwAEN3+ABDd/wAQ3hgAEN4ZABDeGgAQ3hwAEN6XABDemQAQ3psAEN6dABDeoAAQ3qEAEN6iABDeowAQ3qQAEN6mABDeqAAQ3qkAEN6qABDerAAQ3q0AEN8oABDfKgAQ3ywAEN8uABDfMQAQ3zIAEN8zABDfNAAQ3zUAEN83ABDfOQAQ3zoAEN87ABDfPQAQ3z4AEN+5ABDfuwAQ370AEN+/ABDfwgAQ38MAEN/EABDfxQAQ38YAEN/IABDfygAQ38sAEN/MABDfzgAQ388AEOBKABDgTAAQ4E4AEOBQABDgUwAQ4FQAEOBVABDgVgAQ4FcAEOBZABDgWwAQ4FwAEOBdABDgXwAQ4GAAEODbABDg3QAQ4N8AEODhABDg5AAQ4OUAEODmABDg5wAQ4OgAEODqABDg7AAQ4O0AEODuABDg8AAQ4PEAEOE6ABDhXgAQ4YUAEOGpABDhrAAQ4a4AEOGwABDhsgAQ4bQAEOG2ABDhtwAQ4boAEOHTABDh8AAQ4fIAEOH0ABDh9gAQ4fgAEOH6ABDh/AAQ4f4AEOIbABDiHgAQ4iEAEOIkABDiJwAQ4ioAEOItABDiMAAQ4jIAEOKtABDirwAQ4rEAEOKzABDitgAQ4rcAEOK4ABDiuQAQ4roAEOK8ABDivgAQ4r8AEOLAABDiwgAQ4sMAEOM+ABDjQAAQ40IAEONEABDjRwAQ40gAEONJABDjSgAQ40sAEONNABDjTwAQ41AAEONRABDjUwAQ41QAEOPPABDj0QAQ49MAEOPVABDj2AAQ49kAEOPaABDj2wAQ49wAEOPeABDj4AAQ4+EAEOPiABDj5AAQ4+UAEORgABDkYgAQ5GUAEORnABDkagAQ5GsAEORsABDkbQAQ5G4AEORwABDkcgAQ5HMAEOR0ABDkdgAQ5HcAEOTyABDk9AAQ5PYAEOT4ABDk+wAQ5PwAEOT9ABDk/gAQ5P8AEOUBABDlAwAQ5QQAEOUFABDlBwAQ5QgAEOWDABDlhQAQ5YcAEOWJABDljAAQ5Y0AEOWOABDljwAQ5ZAAEOWSABDllAAQ5ZUAEOWWABDlmAAQ5ZkAEOYUABDmFgAQ5hgAEOYaABDmHQAQ5h4AEOYfABDmIAAQ5iEAEOYjABDmJQAQ5iYAEOYnABDmKQAQ5ioAEOa9ABDm4AAQ5wAAEOcgABDnIgAQ5yQAEOcmABDnKAAQ5ysAEOcsABDnLQAQ5zAAEOcxABDnMwAQ5zQAEOc2ABDnOQAQ5zoAEOc7ABDnPgAQ5z8AEOdEABDnXQAQ52YAEOdoABDnagAQ53MAEOd2ABDneQAQ53sAEOfEABDn6AAQ6A8AEOgzABDoNgAQ6DgAEOg6ABDoPAAQ6D4AEOhAABDoQQAQ6EQAEOhdABDofgAQ6IAAEOiCABDohAAQ6IYAEOiIABDoigAQ6IwAEOiOABDorwAQ6LIAEOi1ABDouAAQ6LsAEOi+ABDowQAQ6MQAEOjHABDoyQAQ6UQAEOlGABDpSAAQ6UoAEOlNABDpTgAQ6U8AEOlQABDpUQAQ6VMAEOlVABDpVgAQ6VcAEOlZABDpWgAQ6dUAEOnXABDp2QAQ6dsAEOneABDp3wAQ6eAAEOnhABDp4gAQ6eQAEOnmABDp5wAQ6egAEOnqABDp6wAQ6mYAEOpoABDqawAQ6m0AEOpwABDqcQAQ6nIAEOpzABDqdAAQ6nYAEOp4ABDqeQAQ6noAEOp8ABDqfQAQ6pYAEOqXABDqmAAQ6poAEOsVABDrFwAQ6xkAEOsbABDrHgAQ6x8AEOsgABDrIQAQ6yIAEOskABDrJgAQ6ycAEOsoABDrKgAQ6ysAEOumABDrqAAQ66oAEOusABDrrwAQ67AAEOuxABDrsgAQ67MAEOu1ABDrtwAQ67gAEOu5ABDruwAQ67wAEOw3ABDsOQAQ7DsAEOw9ABDsQAAQ7EEAEOxCABDsQwAQ7EQAEOxGABDsSAAQ7EkAEOxKABDsTAAQ7E0AEOzIABDsygAQ7MwAEOzOABDs0QAQ7NIAEOzTABDs1AAQ7NUAEOzXABDs2QAQ7NoAEOzbABDs3QAQ7N4AEO1ZABDtWwAQ7V0AEO1fABDtYgAQ7WMAEO1kABDtZQAQ7WYAEO1oABDtagAQ7WsAEO1sABDtbgAQ7W8AEO24ABDt3AAQ7gMAEO4nABDuKgAQ7iwAEO4uABDuMAAQ7jIAEO40ABDuNQAQ7jgAEO5RABDubgAQ7nAAEO5yABDudAAQ7nYAEO54ABDuegAQ7nwAEO6ZABDunAAQ7p8AEO6iABDupQAQ7qgAEO6rABDurgAQ7rAAEO8rABDvLQAQ7y8AEO8xABDvNAAQ7zUAEO82ABDvNwAQ7zgAEO86ABDvPAAQ7z0AEO8+ABDvQAAQ70EAEO+8ABDvvgAQ78AAEO/CABDvxQAQ78YAEO/HABDvyAAQ78kAEO/LABDvzQAQ784AEO/PABDv0QAQ79IAEPBNABDwTwAQ8FEAEPBTABDwVgAQ8FcAEPBYABDwWQAQ8FoAEPBcABDwXgAQ8F8AEPBgABDwYgAQ8GMAEPDeABDw4AAQ8OMAEPDlABDw6AAQ8OkAEPDqABDw6wAQ8OwAEPDuABDw8AAQ8PEAEPDyABDw9AAQ8PUAEPFwABDxcgAQ8XQAEPF2ABDxeQAQ8XoAEPF7ABDxfAAQ8X0AEPF/ABDxgQAQ8YIAEPGDABDxhQAQ8YYAEPIBABDyAwAQ8gUAEPIHABDyCgAQ8gsAEPIMABDyDQAQ8g4AEPIQABDyEgAQ8hMAEPIUABDyFgAQ8hcAEPKSABDylAAQ8pYAEPKYABDymwAQ8pwAEPKdABDyngAQ8p8AEPKhABDyowAQ8qQAEPKlABDypwAQ8qgAEPM7ABDzXgAQ834AEPOeABDzoAAQ86IAEPOkABDzpgAQ86kAEPOqABDzqwAQ864AEPOvABDzsQAQ87IAEPO0ABDztwAQ87gAEPO5ABDzvAAQ870AEPPCABDz2wAQ8+QAEPPmABDz6AAQ8/EAEPP0ABDz9wAQ8/kAEPRCABD0ZgAQ9I0AEPSxABD0tAAQ9LYAEPS4ABD0ugAQ9LwAEPS+ABD0vwAQ9MIAEPTbABD0/AAQ9P4AEPUAABD1AgAQ9QQAEPUGABD1CAAQ9QoAEPUMABD1LQAQ9TAAEPUzABD1NgAQ9TkAEPU8ABD1PwAQ9UIAEPVFABD1RwAQ9cIAEPXEABD1xgAQ9cgAEPXLABD1zAAQ9c0AEPXOABD1zwAQ9dEAEPXTABD11AAQ9dUAEPXXABD12AAQ9lMAEPZVABD2VwAQ9lkAEPZcABD2XQAQ9l4AEPZfABD2YAAQ9mIAEPZkABD2ZQAQ9mYAEPZoABD2aQAQ9uQAEPbmABD26QAQ9usAEPbuABD27wAQ9vAAEPbxABD28gAQ9vQAEPb2ABD29wAQ9vgAEPb6ABD2+wAQ9xQAEPcVABD3FgAQ9xgAEPeTABD3lQAQ95cAEPeZABD3nAAQ950AEPeeABD3nwAQ96AAEPeiABD3pAAQ96UAEPemABD3qAAQ96kAEPgkABD4JgAQ+CgAEPgqABD4LQAQ+C4AEPgvABD4MAAQ+DEAEPgzABD4NQAQ+DYAEPg3ABD4OQAQ+DoAEPi1ABD4twAQ+LkAEPi7ABD4vgAQ+L8AEPjAABD4wQAQ+MIAEPjEABD4xgAQ+McAEPjIABD4ygAQ+MsAEPlGABD5SAAQ+UoAEPlMABD5TwAQ+VAAEPlRABD5UgAQ+VMAEPlVABD5VwAQ+VgAEPlZABD5WwAQ+VwAEPnXABD52QAQ+dsAEPndABD54AAQ+eEAEPniABD54wAQ+eQAEPnmABD56AAQ+ekAEPnqABD57AAQ+e0AEPo2ABD6WgAQ+oEAEPqlABD6qAAQ+qoAEPqsABD6rgAQ+rAAEPqyABD6swAQ+rYAEPrPABD67AAQ+u4AEPrwABD68gAQ+vQAEPr2ABD6+AAQ+voAEPsXABD7GgAQ+x0AEPsgABD7IwAQ+yYAEPspABD7LAAQ+y4AEPupABD7qwAQ+60AEPuvABD7sgAQ+7MAEPu0ABD7tQAQ+7YAEPu4ABD7ugAQ+7sAEPu8ABD7vgAQ+78AEPw6ABD8PAAQ/D4AEPxAABD8QwAQ/EQAEPxFABD8RgAQ/EcAEPxJABD8SwAQ/EwAEPxNABD8TwAQ/FAAEPzLABD8zQAQ/M8AEPzRABD81AAQ/NUAEPzWABD81wAQ/NgAEPzaABD83AAQ/N0AEPzeABD84AAQ/OEAEP1cABD9XgAQ/WAAEP1iABD9ZQAQ/WYAEP1nABD9aAAQ/WkAEP1rABD9bQAQ/W4AEP1vABD9cQAQ/XIAEP3tABD97wAQ/fEAEP3zABD99gAQ/fcAEP34ABD9+QAQ/foAEP38ABD9/gAQ/f8AEP4AABD+AgAQ/gMAEP5+ABD+gAAQ/oIAEP6EABD+hwAQ/ogAEP6JABD+igAQ/osAEP6NABD+jwAQ/pAAEP6RABD+kwAQ/pQAEP8PABD/EQAQ/xMAEP8VABD/GAAQ/xkAEP8aABD/GwAQ/xwAEP8eABD/IAAQ/yEAEP8iABD/JAAQ/yUAEP+4ABD/2wAQ//sAEQAbABEAHQARAB8AEQAhABEAIwARACYAEQAnABEAKAARACsAEQAsABEALgARAC8AEQAxABEANAARADUAEQA2ABEAOQARADoAEQA/ABEAWAARAGEAEQBjABEAZQARAG4AEQBxABEAdAARAHYAEQC/ABEA4wARAQoAEQEuABEBMQARATMAEQE1ABEBNwARATkAEQE7ABEBPAARAT8AEQFYABEBeQARAXsAEQF9ABEBfwARAYEAEQGDABEBhQARAYcAEQGJABEBqgARAa0AEQGwABEBswARAbYAEQG5ABEBvAARAb8AEQHCABEBxAARAj8AEQJBABECQwARAkUAEQJIABECSQARAkoAEQJLABECTAARAk4AEQJQABECUQARAlIAEQJUABECVQARAtAAEQLSABEC1AARAtYAEQLZABEC2gARAtsAEQLcABEC3QARAt8AEQLhABEC4gARAuMAEQLlABEC5gARA2EAEQNjABEDZgARA2gAEQNrABEDbAARA20AEQNuABEDbwARA3EAEQNzABEDdAARA3UAEQN3ABEDeAARA5EAEQOSABEDkwARA5UAEQQQABEEEgARBBQAEQQWABEEGQARBBoAEQQbABEEHAARBB0AEQQfABEEIQARBCIAEQQjABEEJQARBCYAEQShABEEowARBKUAEQSnABEEqgARBKsAEQSsABEErQARBK4AEQSwABEEsgARBLMAEQS0ABEEtgARBLcAEQUyABEFNAARBTYAEQU4ABEFOwARBTwAEQU9ABEFPgARBT8AEQVBABEFQwARBUQAEQVFABEFRwARBUgAEQXDABEFxQARBccAEQXJABEFzAARBc0AEQXOABEFzwARBdAAEQXSABEF1AARBdUAEQXWABEF2AARBdkAEQZUABEGVgARBlgAEQZaABEGXQARBl4AEQZfABEGYAARBmEAEQZjABEGZQARBmYAEQZnABEGaQARBmoAEQazABEG1wARBv4AEQciABEHJQARBycAEQcpABEHKwARBy0AEQcvABEHMAARBzMAEQdMABEHaQARB2sAEQdtABEHbwARB3EAEQdzABEHdQARB3cAEQeUABEHlwARB5oAEQedABEHoAARB6MAEQemABEHqQARB6sAEQgmABEIKAARCCoAEQgsABEILwARCDAAEQgxABEIMgARCDMAEQg1ABEINwARCDgAEQg5ABEIOwARCDwAEQi3ABEIuQARCLsAEQi9ABEIwAARCMEAEQjCABEIwwARCMQAEQjGABEIyAARCMkAEQjKABEIzAARCM0AEQlIABEJSgARCUwAEQlOABEJUQARCVIAEQlTABEJVAARCVUAEQlXABEJWQARCVoAEQlbABEJXQARCV4AEQnZABEJ2wARCd4AEQngABEJ4wARCeQAEQnlABEJ5gARCecAEQnpABEJ6wARCewAEQntABEJ7wARCfAAEQprABEKbQARCm8AEQpxABEKdAARCnUAEQp2ABEKdwARCngAEQp6ABEKfAARCn0AEQp+ABEKgAARCoEAEQr8ABEK/gARCwAAEQsCABELBQARCwYAEQsHABELCAARCwkAEQsLABELDQARCw4AEQsPABELEQARCxIAEQuNABELjwARC5EAEQuTABELlgARC5cAEQuYABELmQARC5oAEQucABELngARC58AEQugABELogARC6MAEQw2ABEMWQARDHkAEQyZABEMmwARDJ0AEQyfABEMoQARDKQAEQylABEMpgARDKkAEQyqABEMrAARDK0AEQyvABEMsgARDLMAEQy0ABEMtwARDLgAEQy9ABEM1gARDN8AEQzhABEM4wARDOwAEQzvABEM8gARDPQAEQ09ABENYQARDYgAEQ2sABENrwARDbEAEQ2zABENtQARDbcAEQ25ABENugARDb0AEQ3WABEN9wARDfkAEQ37ABEN/QARDf8AEQ4BABEOAwARDgUAEQ4HABEOKAARDisAEQ4uABEOMQARDjQAEQ43ABEOOgARDj0AEQ5AABEOQgARDr0AEQ6/ABEOwQARDsMAEQ7GABEOxwARDsgAEQ7JABEOygARDswAEQ7OABEOzwARDtAAEQ7SABEO0wARD04AEQ9QABEPUgARD1QAEQ9XABEPWAARD1kAEQ9aABEPWwARD10AEQ9fABEPYAARD2EAEQ9jABEPZAARD98AEQ/hABEP5AARD+YAEQ/pABEP6gARD+sAEQ/sABEP7QARD+8AEQ/xABEP8gARD/MAEQ/1ABEP9gAREA8AERAQABEQEQAREBMAERCOABEQkAAREJIAERCUABEQlwAREJgAERCZABEQmgAREJsAERCdABEQnwAREKAAERChABEQowAREKQAEREfABERIQARESMAERElABERKAARESkAEREqABERKwARESwAEREuABERMAARETEAEREyABERNAARETUAERGwABERsgAREbQAERG2ABERuQAREboAERG7ABERvAAREb0AERG/ABERwQAREcIAERHDABERxQAREcYAERJBABESQwAREkUAERJHABESSgAREksAERJMABESTQAREk4AERJQABESUgARElMAERJUABESVgARElcAERLSABES1AAREtYAERLYABES2wAREtwAERLdABES3gAREt8AERLhABES4wAREuQAERLlABES5wAREugAERMxABETVQARE3wAEROgABETowARE6UAEROnABETqQARE6sAEROtABETrgARE7EAERPKABET5wARE+kAERPrABET7QARE+8AERPxABET8wARE/UAERQSABEUFQARFBgAERQbABEUHgARFCEAERQkABEUJwARFCkAERSkABEUpgARFKgAERSqABEUrQARFK4AERSvABEUsAARFLEAERSzABEUtQARFLYAERS3ABEUuQARFLoAERU1ABEVNwARFTkAERU7ABEVPgARFT8AERVAABEVQQARFUIAERVEABEVRgARFUcAERVIABEVSgARFUsAERXGABEVyAARFcoAERXMABEVzwARFdAAERXRABEV0gARFdMAERXVABEV1wARFdgAERXZABEV2wARFdwAERZXABEWWQARFlsAERZdABEWYAARFmEAERZiABEWYwARFmQAERZmABEWaAARFmkAERZqABEWbAARFm0AERboABEW6gARFuwAERbuABEW8QARFvIAERbzABEW9AARFvUAERb3ABEW+QARFvoAERb7ABEW/QARFv4AERd5ABEXewARF30AERd/ABEXggARF4MAEReEABEXhQARF4YAEReIABEXigARF4sAEReMABEXjgARF48AERgKABEYDAARGA4AERgQABEYEwARGBQAERgVABEYFgARGBcAERgZABEYGwARGBwAERgdABEYHwARGCAAERizABEY1gARGPYAERkWABEZGAARGRoAERkcABEZHgARGSEAERkiABEZIwARGSYAERknABEZKQARGSoAERksABEZLwARGTAAERkxABEZNAARGTUAERk6ABEZUwARGVwAERleABEZYAARGWkAERlsABEZbwARGXEAERm6ABEZ3gARGgUAERopABEaLAARGi4AERowABEaMgARGjQAERo2ABEaNwARGjoAERpTABEadAARGnYAERp4ABEaegARGnwAERp+ABEagAARGoIAERqEABEapQARGqgAERqrABEargARGrEAERq0ABEatwARGroAERq9ABEavwARGzoAERs8ABEbPgARG0AAERtDABEbRAARG0UAERtGABEbRwARG0kAERtLABEbTAARG00AERtPABEbUAARG8sAERvNABEbzwARG9EAERvUABEb1QARG9YAERvXABEb2AARG9oAERvcABEb3QARG94AERvgABEb4QARHFwAERxeABEcYQARHGMAERxmABEcZwARHGgAERxpABEcagARHGwAERxuABEcbwARHHAAERxyABEccwARHIwAERyNABEcjgARHJAAER0LABEdDQARHQ8AER0RABEdFAARHRUAER0WABEdFwARHRgAER0aABEdHAARHR0AER0eABEdIAARHSEAER2cABEdngARHaAAER2iABEdpQARHaYAER2nABEdqAARHakAER2rABEdrQARHa4AER2vABEdsQARHbIAER4tABEeLwARHjEAER4zABEeNgARHjcAER44ABEeOQARHjoAER48ABEePgARHj8AER5AABEeQgARHkMAER6+ABEewAARHsIAER7EABEexwARHsgAER7JABEeygARHssAER7NABEezwARHtAAER7RABEe0wARHtQAER9PABEfUQARH1MAER9VABEfWAARH1kAER9aABEfWwARH1wAER9eABEfYAARH2EAER9iABEfZAARH2UAER+uABEf0gARH/kAESAdABEgIAARICIAESAkABEgJgARICgAESAqABEgKwARIC4AESBHABEgZAARIGYAESBoABEgagARIGwAESBuABEgcAARIHIAESCPABEgkgARIJUAESCYABEgmwARIJ4AESChABEgpAARIKYAESEhABEhIwARISUAESEnABEhKgARISsAESEsABEhLQARIS4AESEwABEhMgARITMAESE0ABEhNgARITcAESGyABEhtAARIbYAESG4ABEhuwARIbwAESG9ABEhvgARIb8AESHBABEhwwARIcQAESHFABEhxwARIcgAESJDABEiRQARIkcAESJJABEiTAARIk0AESJOABEiTwARIlAAESJSABEiVAARIlUAESJWABEiWAARIlkAESLUABEi1gARItgAESLaABEi3QARIt4AESLfABEi4AARIuEAESLjABEi5QARIuYAESLnABEi6QARIuoAESNlABEjZwARI2kAESNrABEjbgARI28AESNwABEjcQARI3IAESN0ABEjdgARI3cAESN4ABEjegARI3sAESP2ABEj+AARI/oAESP8ABEj/wARJAAAESQBABEkAgARJAMAESQFABEkBwARJAgAESQJABEkCwARJAwAESSHABEkiQARJIsAESSNABEkkAARJJEAESSSABEkkwARJJQAESSWABEkmAARJJkAESSaABEknAARJJ0AESSuABEkrwARJLEAESU0ABElWAARJXwAESWfABElxgARJeYAESYNABEmNAARJlQAESZ4ABEmnAARJp4AESahABEmowARJqUAESanABEmqgARJq0AESavABEmsQARJrQAESa2ABEmuAARJrsAESa+ABEmvwARJsQAESbdABEm4gARJuQAESbpABEm7AARJu4AESc3ABEnWwARJ4IAESemABEnqQARJ6sAESetABEnrwARJ7EAESezABEntAARJ7cAESfQABEn9QARJ/cAESf5ABEn+wARJ/0AESf/ABEoAQARKAMAESgFABEoBwARKCwAESgvABEoMgARKDUAESg4ABEoOwARKD4AEShBABEoRAARKEcAEShJABEoxAARKMYAESjJABEoywARKM4AESjPABEo0AARKNEAESjSABEo1AARKNYAESjXABEo2AARKNoAESjbABEo7AARKO0AESjvABEpagARKWwAESluABEpcAARKXMAESl0ABEpdQARKXYAESl3ABEpeQARKXsAESl8ABEpfQARKX8AESmAABEp+wARKf0AESoAABEqAgARKgUAESoGABEqBwARKggAESoJABEqCwARKg0AESoOABEqDwARKhEAESoSABEqIwARKigAESorABEqLQARKj4AESpHABEqSgARKk0AESpPABEqYgARKm0AESroABEq6gARKuwAESruABEq8QARKvIAESrzABEq9AARKvUAESr3ABEq+QARKvoAESr7ABEq/QARKv4AESt5ABErewARK34AESuAABErgwARK4QAESuFABErhgARK4cAESuJABEriwARK4wAESuNABErjwARK5AAESuhABErogARK6QAESwfABEsIQARLCMAESwlABEsKAARLCkAESwqABEsKwARLCwAESwuABEsMAARLDEAESwyABEsNAARLDUAESywABEssgARLLUAESy3ABEsugARLLsAESy8ABEsvQARLL4AESzAABEswgARLMMAESzEABEsxgARLMcAESzgABEs4QARLOIAESzkABEtXwARLWEAES1jABEtZQARLWgAES1pABEtagARLWsAES1sABEtbgARLXAAES1xABEtcgARLXQAES11ABEt8AARLfIAES31ABEt9wARLfoAES37ABEt/AARLf0AES3+ABEuAAARLgIAES4DABEuBAARLgYAES4HABEuLgARLkcAES5QABEuUwARLlYAES5fABEuYgARLmUAES5nABEuegARLw0AES8wABEvUAARL3AAES9yABEvdAARL3YAES94ABEvewARL3wAES99ABEvgAARL4EAES+DABEvhAARL4YAES+JABEvigARL4sAES+OABEvjwARL5QAES+tABEvtgARL7gAES+6ABEvwwARL8YAES/JABEvywARMBQAETA4ABEwXwARMIMAETCGABEwiAARMIoAETCMABEwjgARMJAAETCRABEwlAARMK0AETDOABEw0AARMNIAETDUABEw1gARMNgAETDaABEw3AARMN4AETD/ABExAgARMQUAETEIABExCwARMQ4AETERABExFAARMRcAETEZABExlAARMZYAETGYABExmgARMZ0AETGeABExnwARMaAAETGhABExowARMaUAETGmABExpwARMakAETGqABEyJQARMicAETIpABEyKwARMi4AETIvABEyMAARMjEAETIyABEyNAARMjYAETI3ABEyOAARMjoAETI7ABEytgARMrgAETK7ABEyvQARMsAAETLBABEywgARMsMAETLEABEyxgARMsgAETLJABEyygARMswAETLNABEy5gARMucAETLoABEy6gARM2UAETNnABEzaQARM2sAETNuABEzbwARM3AAETNxABEzcgARM3QAETN2ABEzdwARM3gAETN6ABEzewARM/YAETP4ABEz+gARM/wAETP/ABE0AAARNAEAETQCABE0AwARNAUAETQHABE0CAARNAkAETQLABE0DAARNIcAETSJABE0iwARNI0AETSQABE0kQARNJIAETSTABE0lAARNJYAETSYABE0mQARNJoAETScABE0nQARNRgAETUaABE1HAARNR4AETUhABE1IgARNSMAETUkABE1JQARNScAETUpABE1KgARNSsAETUtABE1LgARNakAETWrABE1rQARNa8AETWyABE1swARNbQAETW1ABE1tgARNbgAETW6ABE1uwARNbwAETW+ABE1vwARNggAETYsABE2UwARNncAETZ6ABE2fAARNn4AETaAABE2ggARNoQAETaFABE2iAARNqEAETa+ABE2wAARNsIAETbEABE2xgARNsgAETbKABE2zAARNukAETbsABE27wARNvIAETb1ABE2+AARNvsAETb+ABE3AAARN3sAETd9ABE3fwARN4EAETeEABE3hQARN4YAETeHABE3iAARN4oAETeMABE3jQARN44AETeQABE3kQAROAwAETgOABE4EAAROBIAETgVABE4FgAROBcAETgYABE4GQAROBsAETgdABE4HgAROB8AETghABE4IgAROJ0AETifABE4oQAROKMAETimABE4pwAROKgAETipABE4qgAROKwAETiuABE4rwAROLAAETiyABE4swAROS4AETkwABE5MwAROTUAETk4ABE5OQAROToAETk7ABE5PAAROT4AETlAABE5QQAROUIAETlEABE5RQAROcAAETnCABE5xAAROcYAETnJABE5ygAROcsAETnMABE5zQAROc8AETnRABE50gAROdMAETnVABE51gAROlEAETpTABE6VQAROlcAETpaABE6WwAROlwAETpdABE6XgAROmAAETpiABE6YwAROmQAETpmABE6ZwAROuIAETrkABE65gAROugAETrrABE67AAROu0AETruABE67wAROvEAETrzABE69AAROvUAETr3ABE6+AARO4sAETuuABE7zgARO+4AETvwABE78gARO/QAETv2ABE7+QARO/oAETv7ABE7/gARO/8AETwBABE8AgARPAQAETwHABE8CAARPAkAETwMABE8DQARPBIAETwrABE8NAARPDYAETw4ABE8QQARPEQAETxHABE8SQARPJIAETy2ABE83QARPQEAET0EABE9BgARPQgAET0KABE9DAARPQ4AET0PABE9EgARPSsAET1MABE9TgARPVAAET1SABE9VAARPVYAET1YABE9WgARPVwAET19ABE9gAARPYMAET2GABE9iQARPYwAET2PABE9kgARPZUAET2XABE+EgARPhQAET4WABE+GAARPhsAET4cABE+HQARPh4AET4fABE+IQARPiMAET4kABE+JQARPicAET4oABE+owARPqUAET6nABE+qQARPqwAET6tABE+rgARPq8AET6wABE+sgARPrQAET61ABE+tgARPrgAET65ABE/NAARPzYAET85ABE/OwARPz4AET8/ABE/QAARP0EAET9CABE/RAARP0YAET9HABE/SAARP0oAET9LABE/ZAARP2UAET9mABE/aAARP+MAET/lABE/5wARP+kAET/sABE/7QARP+4AET/vABE/8AARP/IAET/0ABE/9QARP/YAET/4ABE/+QARQHQAEUB2ABFAeAARQHoAEUB9ABFAfgARQH8AEUCAABFAgQARQIMAEUCFABFAhgARQIcAEUCJABFAigARQQUAEUEHABFBCQARQQsAEUEOABFBDwARQRAAEUERABFBEgARQRQAEUEWABFBFwARQRgAEUEaABFBGwARQZYAEUGYABFBmgARQZwAEUGfABFBoAARQaEAEUGiABFBowARQaUAEUGnABFBqAARQakAEUGrABFBrAARQicAEUIpABFCKwARQi0AEUIwABFCMQARQjIAEUIzABFCNAARQjYAEUI4ABFCOQARQjoAEUI8ABFCPQARQoYAEUKqABFC0QARQvUAEUL4ABFC+gARQvwAEUL+ABFDAAARQwIAEUMDABFDBgARQx8AEUM8ABFDPgARQ0AAEUNCABFDRAARQ0YAEUNIABFDSgARQ2cAEUNqABFDbQARQ3AAEUNzABFDdgARQ3kAEUN8ABFDfgARQ/kAEUP7ABFD/QARQ/8AEUQCABFEAwARRAQAEUQFABFEBgARRAgAEUQKABFECwARRAwAEUQOABFEDwARRIoAEUSMABFEjgARRJAAEUSTABFElAARRJUAEUSWABFElwARRJkAEUSbABFEnAARRJ0AEUSfABFEoAARRRsAEUUdABFFHwARRSEAEUUkABFFJQARRSYAEUUnABFFKAARRSoAEUUsABFFLQARRS4AEUUwABFFMQARRawAEUWuABFFsQARRbMAEUW2ABFFtwARRbgAEUW5ABFFugARRbwAEUW+ABFFvwARRcAAEUXCABFFwwARRj4AEUZAABFGQgARRkQAEUZHABFGSAARRkkAEUZKABFGSwARRk0AEUZPABFGUAARRlEAEUZTABFGVAARRs8AEUbRABFG0wARRtUAEUbYABFG2QARRtoAEUbbABFG3AARRt4AEUbgABFG4QARRuIAEUbkABFG5QARR2AAEUdiABFHZAARR2YAEUdpABFHagARR2sAEUdsABFHbQARR28AEUdxABFHcgARR3MAEUd1ABFHdgARR4cAEUeIABFHigARSA0AEUgxABFIVQARSHgAEUifABFIvwARSOYAEUkNABFJLQARSVEAEUl1ABFJdwARSXoAEUl8ABFJfgARSYAAEUmDABFJhgARSYgAEUmKABFJjQARSY8AEUmRABFJlAARSZcAEUmYABFJnQARSbYAEUm7ABFJvQARScIAEUnFABFJxwARShAAEUo0ABFKWwARSn8AEUqCABFKhAARSoYAEUqIABFKigARSowAEUqNABFKkAARSqkAEUrOABFK0AARStIAEUrUABFK1gARStgAEUraABFK3AARSt4AEUrgABFLBQARSwgAEUsLABFLDgARSxEAEUsUABFLFwARSxoAEUsdABFLIAARSyIAEUudABFLnwARS6IAEUukABFLpwARS6gAEUupABFLqgARS6sAEUutABFLrwARS7AAEUuxABFLswARS7QAEUvFABFLxgARS8gAEUxDABFMRQARTEcAEUxJABFMTAARTE0AEUxOABFMTwARTFAAEUxSABFMVAARTFUAEUxWABFMWAARTFkAEUzUABFM1gARTNkAEUzbABFM3gARTN8AEUzgABFM4QARTOIAEUzkABFM5gARTOcAEUzoABFM6gARTOsAEUz8ABFNAQARTQQAEU0GABFNFwARTSAAEU0jABFNJgARTSgAEU1EABFNVgARTdEAEU3TABFN1QARTdcAEU3aABFN2wARTdwAEU3dABFN3gARTeAAEU3iABFN4wARTeQAEU3mABFN5wARTmIAEU5kABFOZwARTmkAEU5sABFObQARTm4AEU5vABFOcAARTnIAEU50ABFOdQARTnYAEU54ABFOeQARTooAEU6LABFOjQARTwgAEU8KABFPDAARTw4AEU8RABFPEgARTxMAEU8UABFPFQARTxcAEU8ZABFPGgARTxsAEU8dABFPHgART5kAEU+bABFPngART6AAEU+jABFPpAART6UAEU+mABFPpwART6kAEU+rABFPrAART60AEU+vABFPsAART8kAEU/KABFPywART80AEVBIABFQSgARUEwAEVBOABFQUQARUFIAEVBTABFQVAARUFUAEVBXABFQWQARUFoAEVBbABFQXQARUF4AEVDZABFQ2wARUN4AEVDgABFQ4wARUOQAEVDlABFQ5gARUOcAEVDpABFQ6wARUOwAEVDtABFQ7wARUPAAEVEHABFRIAARUTEAEVE0ABFRNwARUToAEVE9ABFRTgARUVEAEVFUABFRVwARUVoAEVFcABFRcgARUY4AEVGgABFRrgARUkEAEVJkABFShAARUqQAEVKmABFSqAARUqoAEVKsABFSrwARUrAAEVKxABFStAARUrUAEVK3ABFSuAARUroAEVK9ABFSvgARUr8AEVLCABFSwwARUsgAEVLhABFS6gARUuwAEVLuABFS9wARUvoAEVL9ABFS/wARU0gAEVNsABFTkwARU7cAEVO6ABFTvAARU74AEVPAABFTwgARU8QAEVPFABFTyAARU+EAEVQCABFUBAARVAYAEVQIABFUCgARVAwAEVQOABFUEAARVBIAEVQzABFUNgARVDkAEVQ8ABFUPwARVEIAEVRFABFUSAARVEsAEVRNABFUyAARVMoAEVTMABFUzgARVNEAEVTSABFU0wARVNQAEVTVABFU1wARVNkAEVTaABFU2wARVN0AEVTeABFVWQARVVsAEVVdABFVXwARVWIAEVVjABFVZAARVWUAEVVmABFVaAARVWoAEVVrABFVbAARVW4AEVVvABFV6gARVewAEVXvABFV8QARVfQAEVX1ABFV9gARVfcAEVX4ABFV+gARVfwAEVX9ABFV/gARVgAAEVYBABFWGgARVhsAEVYcABFWHgARVpkAEVabABFWnQARVp8AEVaiABFWowARVqQAEValABFWpgARVqgAEVaqABFWqwARVqwAEVauABFWrwARVyoAEVcsABFXLgARVzAAEVczABFXNAARVzUAEVc2ABFXNwARVzkAEVc7ABFXPAARVz0AEVc/ABFXQAARV7sAEVe9ABFXvwARV8EAEVfEABFXxQARV8YAEVfHABFXyAARV8oAEVfMABFXzQARV84AEVfQABFX0QARWEwAEVhOABFYUAARWFIAEVhVABFYVgARWFcAEVhYABFYWQARWFsAEVhdABFYXgARWF8AEVhhABFYYgARWN0AEVjfABFY4QARWOMAEVjmABFY5wARWOgAEVjpABFY6gARWOwAEVjuABFY7wARWPAAEVjyABFY8wARWTwAEVlgABFZhwARWasAEVmuABFZsAARWbIAEVm0ABFZtgARWbgAEVm5ABFZvAARWdUAEVnyABFZ9AARWfYAEVn4ABFZ+gARWfwAEVn+ABFaAAARWh0AEVogABFaIwARWiYAEVopABFaLAARWi8AEVoyABFaNAARWq8AEVqxABFaswARWrUAEVq4ABFauQARWroAEVq7ABFavAARWr4AEVrAABFawQARWsIAEVrEABFaxQARW0AAEVtCABFbRAARW0YAEVtJABFbSgARW0sAEVtMABFbTQARW08AEVtRABFbUgARW1MAEVtVABFbVgARW9EAEVvTABFb1QARW9cAEVvaABFb2wARW9wAEVvdABFb3gARW+AAEVviABFb4wARW+QAEVvmABFb5wARXGIAEVxkABFcZwARXGkAEVxsABFcbQARXG4AEVxvABFccAARXHIAEVx0ABFcdQARXHYAEVx4ABFceQARXPQAEVz2ABFc+AARXPoAEVz9ABFc/gARXP8AEV0AABFdAQARXQMAEV0FABFdBgARXQcAEV0JABFdCgARXYUAEV2HABFdiQARXYsAEV2OABFdjwARXZAAEV2RABFdkgARXZQAEV2WABFdlwARXZgAEV2aABFdmwARXhYAEV4YABFeGgARXhwAEV4fABFeIAARXiEAEV4iABFeIwARXiUAEV4nABFeKAARXikAEV4rABFeLAARXr8AEV7iABFfAgARXyIAEV8kABFfJgARXygAEV8qABFfLQARXy4AEV8vABFfMgARXzMAEV81ABFfNgARXzgAEV87ABFfPAARXz0AEV9AABFfQQARX0YAEV9fABFfaAARX2oAEV9sABFfdQARX3gAEV97ABFffQARX8YAEV/qABFgEQARYDUAEWA4ABFgOgARYDwAEWA+ABFgQAARYEIAEWBDABFgRgARYF8AEWCAABFgggARYIQAEWCGABFgiAARYIoAEWCMABFgjgARYJAAEWCxABFgtAARYLcAEWC6ABFgvQARYMAAEWDDABFgxgARYMkAEWDLABFhRgARYUgAEWFKABFhTAARYU8AEWFQABFhUQARYVIAEWFTABFhVQARYVcAEWFYABFhWQARYVsAEWFcABFh1wARYdkAEWHbABFh3QARYeAAEWHhABFh4gARYeMAEWHkABFh5gARYegAEWHpABFh6gARYewAEWHtABFiaAARYmoAEWJtABFibwARYnIAEWJzABFidAARYnUAEWJ2ABFieAARYnoAEWJ7ABFifAARYn4AEWJ/ABFimAARYpkAEWKaABFinAARYxcAEWMZABFjGwARYx0AEWMgABFjIQARYyIAEWMjABFjJAARYyYAEWMoABFjKQARYyoAEWMsABFjLQARY6gAEWOqABFjrAARY64AEWOxABFjsgARY7MAEWO0ABFjtQARY7cAEWO5ABFjugARY7sAEWO9ABFjvgARZDkAEWQ7ABFkPQARZD8AEWRCABFkQwARZEQAEWRFABFkRgARZEgAEWRKABFkSwARZEwAEWROABFkTwARZMoAEWTMABFkzgARZNAAEWTTABFk1AARZNUAEWTWABFk1wARZNkAEWTbABFk3AARZN0AEWTfABFk4AARZVsAEWVdABFlXwARZWEAEWVkABFlZQARZWYAEWVnABFlaAARZWoAEWVsABFlbQARZW4AEWVwABFlcQARZboAEWXeABFmBQARZikAEWYsABFmLgARZjAAEWYyABFmNAARZjYAEWY3ABFmOgARZlMAEWZwABFmcgARZnQAEWZ2ABFmeAARZnoAEWZ8ABFmfgARZpsAEWaeABFmoQARZqQAEWanABFmqgARZq0AEWawABFmsgARZy0AEWcvABFnMQARZzMAEWc2ABFnNwARZzgAEWc5ABFnOgARZzwAEWc+ABFnPwARZ0AAEWdCABFnQwARZ74AEWfAABFnwgARZ8QAEWfHABFnyAARZ8kAEWfKABFnywARZ80AEWfPABFn0AARZ9EAEWfTABFn1AARaE8AEWhRABFoUwARaFUAEWhYABFoWQARaFoAEWhbABFoXAARaF4AEWhgABFoYQARaGIAEWhkABFoZQARaOAAEWjiABFo5QARaOcAEWjqABFo6wARaOwAEWjtABFo7gARaPAAEWjyABFo8wARaPQAEWj2ABFo9wARaXIAEWl0ABFpdgARaXgAEWl7ABFpfAARaX0AEWl+ABFpfwARaYEAEWmDABFphAARaYUAEWmHABFpiAARagMAEWoFABFqBwARagkAEWoMABFqDQARag4AEWoPABFqEAARahIAEWoUABFqFQARahYAEWoYABFqGQARapQAEWqWABFqmAARapoAEWqdABFqngARap8AEWqgABFqoQARaqMAEWqlABFqpgARaqcAEWqpABFqqgARaz0AEWtgABFrgAARa6AAEWuiABFrpAARa6YAEWuoABFrqwARa6wAEWutABFrsAARa7EAEWuzABFrtAARa7YAEWu5ABFrugARa7sAEWu+ABFrvwARa8QAEWvdABFr5gARa+gAEWvqABFr8wARa/YAEWv5ABFr+wARbEQAEWxoABFsjwARbLMAEWy2ABFsuAARbLoAEWy8ABFsvgARbMAAEWzBABFsxAARbN0AEWz+ABFtAAARbQIAEW0EABFtBgARbQgAEW0KABFtDAARbQ4AEW0vABFtMgARbTUAEW04ABFtOwARbT4AEW1BABFtRAARbUcAEW1JABFtxAARbcYAEW3IABFtygARbc0AEW3OABFtzwARbdAAEW3RABFt0wARbdUAEW3WABFt1wARbdkAEW3aABFuVQARblcAEW5ZABFuWwARbl4AEW5fABFuYAARbmEAEW5iABFuZAARbmYAEW5nABFuaAARbmoAEW5rABFu5gARbugAEW7rABFu7QARbvAAEW7xABFu8gARbvMAEW70ABFu9gARbvgAEW75ABFu+gARbvwAEW79ABFvFgARbxcAEW8YABFvGgARb5UAEW+XABFvmQARb5sAEW+eABFvnwARb6AAEW+hABFvogARb6QAEW+mABFvpwARb6gAEW+qABFvqwARcCYAEXAoABFwKgARcCwAEXAvABFwMAARcDEAEXAyABFwMwARcDUAEXA3ABFwOAARcDkAEXA7ABFwPAARcLcAEXC5ABFwuwARcL0AEXDAABFwwQARcMIAEXDDABFwxAARcMYAEXDIABFwyQARcMoAEXDMABFwzQARcUgAEXFKABFxTAARcU4AEXFRABFxUgARcVMAEXFUABFxVQARcVcAEXFZABFxWgARcVsAEXFdABFxXgARcdkAEXHbABFx3QARcd8AEXHiABFx4wARceQAEXHlABFx5gARcegAEXHqABFx6wARcewAEXHuABFx7wARcjgAEXJcABFygwARcqcAEXKqABFyrAARcq4AEXKwABFysgARcrQAEXK1ABFyuAARctEAEXLuABFy8AARcvIAEXL0ABFy9gARcvgAEXL6ABFy/AARcxkAEXMcABFzHwARcyIAEXMlABFzKAARcysAEXMuABFzMAARc6sAEXOtABFzrwARc7EAEXO0ABFztQARc7YAEXO3ABFzuAARc7oAEXO8ABFzvQARc74AEXPAABFzwQARdDwAEXQ+ABF0QAARdEIAEXRFABF0RgARdEcAEXRIABF0SQARdEsAEXRNABF0TgARdE8AEXRRABF0UgARdM0AEXTPABF00QARdNMAEXTWABF01wARdNgAEXTZABF02gARdNwAEXTeABF03wARdOAAEXTiABF04wARdV4AEXVgABF1YwARdWUAEXVoABF1aQARdWoAEXVrABF1bAARdW4AEXVwABF1cQARdXIAEXV0ABF1dQARdfAAEXXyABF19AARdfYAEXX5ABF1+gARdfsAEXX8ABF1/QARdf8AEXYBABF2AgARdgMAEXYFABF2BgARdoEAEXaDABF2hQARdocAEXaKABF2iwARdowAEXaNABF2jgARdpAAEXaSABF2kwARdpQAEXaWABF2lwARdxIAEXcUABF3FgARdxgAEXcbABF3HAARdx0AEXceABF3HwARdyEAEXcjABF3JAARdyUAEXcnABF3KAARd7sAEXfeABF3/gAReB4AEXggABF4IgAReCQAEXgmABF4KQAReCoAEXgrABF4LgAReC8AEXgxABF4MgAReDQAEXg3ABF4OAAReDkAEXg8ABF4PQAReEIAEXhbABF4ZAAReGYAEXhoABF4cQAReHQAEXh3ABF4eQAReMIAEXjmABF5DQAReTEAEXk0ABF5NgAReTgAEXk6ABF5PAAReT4AEXk/ABF5QgAReVsAEXl8ABF5fgAReYAAEXmCABF5hAAReYYAEXmIABF5igAReYwAEXmtABF5sAARebMAEXm2ABF5uQARebwAEXm/ABF5wgARecUAEXnHABF6QgARekQAEXpGABF6SAAReksAEXpMABF6TQARek4AEXpPABF6UQARelMAEXpUABF6VQARelcAEXpYABF60wARetUAEXrXABF62QARetwAEXrdABF63gARet8AEXrgABF64gAReuQAEXrlABF65gAReugAEXrpABF7ZAARe2YAEXtpABF7awARe24AEXtvABF7cAARe3EAEXtyABF7dAARe3YAEXt3ABF7eAARe3oAEXt7ABF7lAARe5UAEXuWABF7mAARfBMAEXwVABF8FwARfBkAEXwcABF8HQARfB4AEXwfABF8IAARfCIAEXwkABF8JQARfCYAEXwoABF8KQARfKQAEXymABF8qAARfKoAEXytABF8rgARfK8AEXywABF8sQARfLMAEXy1ABF8tgARfLcAEXy5ABF8ugARfTUAEX03ABF9OQARfTsAEX0+ABF9PwARfUAAEX1BABF9QgARfUQAEX1GABF9RwARfUgAEX1KABF9SwARfcYAEX3IABF9ygARfcwAEX3PABF90AARfdEAEX3SABF90wARfdUAEX3XABF92AARfdkAEX3bABF93AARflcAEX5ZABF+WwARfl0AEX5gABF+YQARfmIAEX5jABF+ZAARfmYAEX5oABF+aQARfmoAEX5sABF+bQARfrYAEX7aABF/AQARfyUAEX8oABF/KgARfywAEX8uABF/MAARfzIAEX8zABF/NgARf08AEX9sABF/bgARf3AAEX9yABF/dAARf3YAEX94ABF/egARf5cAEX+aABF/nQARf6AAEX+jABF/pgARf6kAEX+sABF/rgARgCkAEYArABGALQARgC8AEYAyABGAMwARgDQAEYA1ABGANgARgDgAEYA6ABGAOwARgDwAEYA+ABGAPwARgLoAEYC8ABGAvgARgMAAEYDDABGAxAARgMUAEYDGABGAxwARgMkAEYDLABGAzAARgM0AEYDPABGA0AARgUsAEYFNABGBTwARgVEAEYFUABGBVQARgVYAEYFXABGBWAARgVoAEYFcABGBXQARgV4AEYFgABGBYQARgdwAEYHeABGB4QARgeMAEYHmABGB5wARgegAEYHpABGB6gARgewAEYHuABGB7wARgfAAEYHyABGB8wARgm4AEYJwABGCcgARgnQAEYJ3ABGCeAARgnkAEYJ6ABGCewARgn0AEYJ/ABGCgAARgoEAEYKDABGChAARgv8AEYMBABGDAwARgwUAEYMIABGDCQARgwoAEYMLABGDDAARgw4AEYMQABGDEQARgxIAEYMUABGDFQARg5AAEYOSABGDlAARg5YAEYOZABGDmgARg5sAEYOcABGDnQARg58AEYOhABGDogARg6MAEYOlABGDpgARg7cAEYO4ABGDugARhD0AEYRhABGEhQARhKgAEYTPABGE7wARhRYAEYU9ABGFXQARhYEAEYWlABGFpwARhaoAEYWsABGFrgARhbAAEYWzABGFtgARhbgAEYW6ABGFvQARhb8AEYXBABGFxAARhccAEYXIABGF0QARheoAEYXvABGF8QARhfYAEYX5ABGF+wARhkQAEYZoABGGjwARhrMAEYa2ABGGuAARhroAEYa8ABGGvgARhsAAEYbBABGGxAARht0AEYcCABGHBAARhwYAEYcIABGHCgARhwwAEYcOABGHEAARhxIAEYcUABGHOQARhzwAEYc/ABGHQgARh0UAEYdIABGHSwARh04AEYdRABGHVAARh1YAEYfRABGH0wARh9YAEYfYABGH2wARh9wAEYfdABGH3gARh98AEYfhABGH4wARh+QAEYflABGH5wARh+gAEYf5ABGH+gARh/wAEYh3ABGIeQARiHsAEYh9ABGIgAARiIEAEYiCABGIgwARiIQAEYiGABGIiAARiIkAEYiKABGIjAARiI0AEYkIABGJCgARiQ0AEYkPABGJEgARiRMAEYkUABGJFQARiRYAEYkYABGJGgARiRsAEYkcABGJHgARiR8AEYkwABGJMQARiTMAEYmuABGJsAARibIAEYm0ABGJtwARibgAEYm5ABGJugARibsAEYm9ABGJvwARicAAEYnBABGJwwARicQAEYo/ABGKQQARikQAEYpGABGKSQARikoAEYpLABGKTAARik0AEYpPABGKUQARilIAEYpTABGKVQARilYAEYpnABGKaAARimoAEYrlABGK5wARiukAEYrrABGK7gARiu8AEYrwABGK8QARivIAEYr0ABGK9gARivcAEYr4ABGK+gARivsAEYt2ABGLeAARi3sAEYt9ABGLgAARi4EAEYuCABGLgwARi4QAEYuGABGLiAARi4kAEYuKABGLjAARi40AEYumABGLpwARi6gAEYuqABGMJQARjCcAEYwpABGMKwARjC4AEYwvABGMMAARjDEAEYwyABGMNAARjDYAEYw3ABGMOAARjDoAEYw7ABGMtgARjLgAEYy7ABGMvQARjMAAEYzBABGMwgARjMMAEYzEABGMxgARjMgAEYzJABGMygARjMwAEYzNABGM/QARjRYAEY0fABGNIgARjSUAEY0uABGNMQARjTQAEY02ABGNSQARjVMAEY3mABGOCQARjikAEY5JABGOSwARjk0AEY5PABGOUQARjlQAEY5VABGOVgARjlkAEY5aABGOXAARjl0AEY5fABGOYgARjmMAEY5kABGOZwARjmgAEY5xABGOigARjpMAEY6VABGOlwARjqAAEY6jABGOpgARjqgAEY7xABGPFQARjzwAEY9gABGPYwARj2UAEY9nABGPaQARj2sAEY9tABGPbgARj3EAEY+KABGPqwARj60AEY+vABGPsQARj7MAEY+1ABGPtwARj7kAEY+7ABGP3AARj98AEY/iABGP5QARj+gAEY/rABGP7gARj/EAEY/0ABGP9gARkHEAEZBzABGQdQARkHcAEZB6ABGQewARkHwAEZB9ABGQfgARkIAAEZCCABGQgwARkIQAEZCGABGQhwARkQIAEZEEABGRBgARkQgAEZELABGRDAARkQ0AEZEOABGRDwARkREAEZETABGRFAARkRUAEZEXABGRGAARkZMAEZGVABGRmAARkZoAEZGdABGRngARkZ8AEZGgABGRoQARkaMAEZGlABGRpgARkacAEZGpABGRqgARkcMAEZHEABGRxQARkccAEZJCABGSRAARkkYAEZJIABGSSwARkkwAEZJNABGSTgARkk8AEZJRABGSUwARklQAEZJVABGSVwARklgAEZLTABGS1QARktcAEZLZABGS3AARkt0AEZLeABGS3wARkuAAEZLiABGS5AARkuUAEZLmABGS6AARkukAEZNkABGTZgARk2gAEZNqABGTbQARk24AEZNvABGTcAARk3EAEZNzABGTdQARk3YAEZN3ABGTeQARk3oAEZP1ABGT9wARk/kAEZP7ABGT/gARk/8AEZQAABGUAQARlAIAEZQEABGUBgARlAcAEZQIABGUCgARlAsAEZSGABGUiAARlIoAEZSMABGUjwARlJAAEZSRABGUkgARlJMAEZSVABGUlwARlJgAEZSZABGUmwARlJwAEZTlABGVCQARlTAAEZVUABGVVwARlVkAEZVbABGVXQARlV8AEZVhABGVYgARlWUAEZV+ABGVmwARlZ0AEZWfABGVoQARlaMAEZWlABGVpwARlakAEZXGABGVyQARlcwAEZXPABGV0gARldUAEZXYABGV2wARld0AEZZYABGWWgARllwAEZZeABGWYQARlmIAEZZjABGWZAARlmUAEZZnABGWaQARlmoAEZZrABGWbQARlm4AEZbpABGW6wARlu0AEZbvABGW8gARlvMAEZb0ABGW9QARlvYAEZb4ABGW+gARlvsAEZb8ABGW/gARlv8AEZd6ABGXfAARl34AEZeAABGXgwARl4QAEZeFABGXhgARl4cAEZeJABGXiwARl4wAEZeNABGXjwARl5AAEZgLABGYDQARmBAAEZgSABGYFQARmBYAEZgXABGYGAARmBkAEZgbABGYHQARmB4AEZgfABGYIQARmCIAEZidABGYnwARmKEAEZijABGYpgARmKcAEZioABGYqQARmKoAEZisABGYrgARmK8AEZiwABGYsgARmLMAEZkuABGZMAARmTIAEZk0ABGZNwARmTgAEZk5ABGZOgARmTsAEZk9ABGZPwARmUAAEZlBABGZQwARmUQAEZm/ABGZwQARmcMAEZnFABGZyAARmckAEZnKABGZywARmcwAEZnOABGZ0AARmdEAEZnSABGZ1AARmdUAEZpoABGaiwARmqsAEZrLABGazQARms8AEZrRABGa0wARmtYAEZrXABGa2AARmtsAEZrcABGa3gARmt8AEZrhABGa5AARmuUAEZrmABGa6QARmuoAEZrvABGbCAARmxEAEZsTABGbFQARmx4AEZshABGbJAARmyYAEZtvABGbkwARm7oAEZveABGb4QARm+MAEZvlABGb5wARm+kAEZvrABGb7AARm+8AEZwIABGcKQARnCsAEZwtABGcLwARnDEAEZwzABGcNQARnDcAEZw5ABGcWgARnF0AEZxgABGcYwARnGYAEZxpABGcbAARnG8AEZxyABGcdAARnO8AEZzxABGc8wARnPUAEZz4ABGc+QARnPoAEZz7ABGc/AARnP4AEZ0AABGdAQARnQIAEZ0EABGdBQARnYAAEZ2CABGdhAARnYYAEZ2JABGdigARnYsAEZ2MABGdjQARnY8AEZ2RABGdkgARnZMAEZ2VABGdlgARnhEAEZ4TABGeFgARnhgAEZ4bABGeHAARnh0AEZ4eABGeHwARniEAEZ4jABGeJAARniUAEZ4nABGeKAARnkEAEZ5CABGeQwARnkUAEZ7AABGewgARnsQAEZ7GABGeyQARnsoAEZ7LABGezAARns0AEZ7PABGe0QARntIAEZ7TABGe1QARntYAEZ9RABGfUwARn1UAEZ9XABGfWgARn1sAEZ9cABGfXQARn14AEZ9gABGfYgARn2MAEZ9kABGfZgARn2cAEZ/iABGf5AARn+YAEZ/oABGf6wARn+wAEZ/tABGf7gARn+8AEZ/xABGf8wARn/QAEZ/1ABGf9wARn/gAEaBzABGgdQARoHcAEaB5ABGgfAARoH0AEaB+ABGgfwARoIAAEaCCABGghAARoIUAEaCGABGgiAARoIkAEaEEABGhBgARoQgAEaEKABGhDQARoQ4AEaEPABGhEAARoREAEaETABGhFQARoRYAEaEXABGhGQARoRoAEaFjABGhhwARoa4AEaHSABGh1QARodcAEaHZABGh2wARod0AEaHfABGh4AARoeMAEaH8ABGiGQARohsAEaIdABGiHwARoiEAEaIjABGiJQARoicAEaJEABGiRwARokoAEaJNABGiUAARolMAEaJWABGiWQARolsAEaLWABGi2AARotoAEaLcABGi3wARouAAEaLhABGi4gARouMAEaLlABGi5wARougAEaLpABGi6wARouwAEaNnABGjaQARo2sAEaNtABGjcAARo3EAEaNyABGjcwARo3QAEaN2ABGjeAARo3kAEaN6ABGjfAARo30AEaP4ABGj+gARo/wAEaP+ABGkAQARpAIAEaQDABGkBAARpAUAEaQHABGkCQARpAoAEaQLABGkDQARpA4AEaSJABGkiwARpI4AEaSQABGkkwARpJQAEaSVABGklgARpJcAEaSZABGkmwARpJwAEaSdABGknwARpKAAEaUbABGlHQARpR8AEaUhABGlJAARpSUAEaUmABGlJwARpSgAEaUqABGlLAARpS0AEaUuABGlMAARpTEAEaWsABGlrgARpbAAEaWyABGltQARpbYAEaW3ABGluAARpbkAEaW7ABGlvQARpb4AEaW/ABGlwQARpcIAEaY9ABGmPwARpkEAEaZDABGmRgARpkcAEaZIABGmSQARpkoAEaZMABGmTgARpk8AEaZQABGmUgARplMAEaZkABGmZQARpmcAEabqABGnDgARpzIAEadVABGnfAARp5wAEafDABGn6gARqAoAEaguABGoUgARqFQAEahXABGoWQARqFsAEahdABGoYAARqGMAEahlABGoZwARqGoAEahsABGobgARqHEAEah0ABGodQARqHoAEaiTABGomAARqJoAEaifABGoogARqKQAEajtABGpEQARqTgAEalcABGpXwARqWEAEaljABGpZQARqWcAEalpABGpagARqW0AEamGABGpqwARqa0AEamvABGpsQARqbMAEam1ABGptwARqbkAEam7ABGpvQARqeIAEanlABGp6AARqesAEanuABGp8QARqfQAEan3ABGp+gARqf0AEan/ABGqegARqnwAEap/ABGqgQARqoQAEaqFABGqhgARqocAEaqIABGqigARqowAEaqNABGqjgARqpAAEaqRABGqogARqqMAEaqlABGrIAARqyIAEaskABGrJgARqykAEasqABGrKwARqywAEastABGrLwARqzEAEasyABGrMwARqzUAEas2ABGrsQARq7MAEau2ABGruAARq7sAEau8ABGrvQARq74AEau/ABGrwQARq8MAEavEABGrxQARq8cAEavIABGr2QARq9oAEavcABGsVwARrFkAEaxbABGsXQARrGAAEaxhABGsYgARrGMAEaxkABGsZgARrGgAEaxpABGsagARrGwAEaxtABGs6AARrOoAEaztABGs7wARrPIAEazzABGs9AARrPUAEaz2ABGs+AARrPoAEaz7ABGs/AARrP4AEaz/ABGtEAARrREAEa0TABGtjgARrZAAEa2SABGtlAARrZcAEa2YABGtmQARrZoAEa2bABGtnQARrZ8AEa2gABGtoQARraMAEa2kABGuHwARriEAEa4kABGuJgARrikAEa4qABGuKwARriwAEa4tABGuLwARrjEAEa4yABGuMwARrjUAEa42ABGuTwARrlAAEa5RABGuUwARrs4AEa7QABGu0gARrtQAEa7XABGu2AARrtkAEa7aABGu2wARrt0AEa7fABGu4AARruEAEa7jABGu5AARr18AEa9hABGvZAARr2YAEa9pABGvagARr2sAEa9sABGvbQARr28AEa9xABGvcgARr3MAEa91ABGvdgARr5EAEa+qABGvswARr7YAEa+5ABGvwgARr8UAEa/IABGvygARr90AEbBwABGwkwARsLMAEbDTABGw1QARsNcAEbDZABGw2wARsN4AEbDfABGw4AARsOMAEbDkABGw5gARsOcAEbDpABGw7AARsO0AEbDuABGw8QARsPIAEbD3ABGxEAARsRkAEbEbABGxHQARsSYAEbEpABGxLAARsS4AEbF3ABGxmwARscIAEbHmABGx6QARsesAEbHtABGx7wARsfEAEbHzABGx9AARsfcAEbIQABGyMQARsjMAEbI1ABGyNwARsjkAEbI7ABGyPQARsj8AEbJBABGyYgARsmUAEbJoABGyawARsm4AEbJxABGydAARsncAEbJ6ABGyfAARsvcAEbL5ABGy+wARsv0AEbMAABGzAQARswIAEbMDABGzBAARswYAEbMIABGzCQARswoAEbMMABGzDQARs4gAEbOKABGzjAARs44AEbORABGzkgARs5MAEbOUABGzlQARs5cAEbOZABGzmgARs5sAEbOdABGzngARtBkAEbQbABG0HgARtCAAEbQjABG0JAARtCUAEbQmABG0JwARtCkAEbQrABG0LAARtC0AEbQvABG0MAARtEkAEbRKABG0SwARtE0AEbTIABG0ygARtMwAEbTOABG00QARtNIAEbTTABG01AARtNUAEbTXABG02QARtNoAEbTbABG03QARtN4AEbVZABG1WwARtV0AEbVfABG1YgARtWMAEbVkABG1ZQARtWYAEbVoABG1agARtWsAEbVsABG1bgARtW8AEbXqABG17AARte4AEbXwABG18wARtfQAEbX1ABG19gARtfcAEbX5ABG1+wARtfwAEbX9ABG1/wARtgAAEbZ7ABG2fQARtn8AEbaBABG2hAARtoUAEbaGABG2hwARtogAEbaKABG2jAARto0AEbaOABG2kAARtpEAEbcMABG3DgARtxAAEbcSABG3FQARtxYAEbcXABG3GAARtxkAEbcbABG3HQARtx4AEbcfABG3IQARtyIAEbdrABG3jwARt7YAEbfaABG33QARt98AEbfhABG34wARt+UAEbfnABG36AARt+sAEbgEABG4IQARuCMAEbglABG4JwARuCkAEbgrABG4LQARuC8AEbhMABG4TwARuFIAEbhVABG4WAARuFsAEbheABG4YQARuGMAEbjeABG44AARuOIAEbjkABG45wARuOgAEbjpABG46gARuOsAEbjtABG47wARuPAAEbjxABG48wARuPQAEblvABG5cQARuXMAEbl1ABG5eAARuXkAEbl6ABG5ewARuXwAEbl+ABG5gAARuYEAEbmCABG5hAARuYUAEboAABG6AgARugQAEboGABG6CQARugoAEboLABG6DAARug0AEboPABG6EQARuhIAEboTABG6FQARuhYAEbqRABG6kwARupYAEbqYABG6mwARupwAEbqdABG6ngARup8AEbqhABG6owARuqQAEbqlABG6pwARuqgAEbsjABG7JQARuycAEbspABG7LAARuy0AEbsuABG7LwARuzAAEbsyABG7NAARuzUAEbs2ABG7OAARuzkAEbu0ABG7tgARu7gAEbu6ABG7vQARu74AEbu/ABG7wAARu8EAEbvDABG7xQARu8YAEbvHABG7yQARu8oAEbxFABG8RwARvEkAEbxLABG8TgARvE8AEbxQABG8UQARvFIAEbxUABG8VgARvFcAEbxYABG8WgARvFsAEbzuABG9EQARvTEAEb1RABG9UwARvVUAEb1XABG9WQARvVwAEb1dABG9XgARvWEAEb1iABG9ZAARvWUAEb1nABG9agARvWsAEb1sABG9bwARvXAAEb11ABG9jgARvZcAEb2ZABG9mwARvaQAEb2nABG9qgARvawAEb31ABG+GQARvkAAEb5kABG+ZwARvmkAEb5rABG+bQARvm8AEb5xABG+cgARvnUAEb6OABG+rwARvrEAEb6zABG+tQARvrcAEb65ABG+uwARvr0AEb6/ABG+4AARvuMAEb7mABG+6QARvuwAEb7vABG+8gARvvUAEb74ABG++gARv3UAEb93ABG/eQARv3sAEb9+ABG/fwARv4AAEb+BABG/ggARv4QAEb+GABG/hwARv4gAEb+KABG/iwARwAYAEcAIABHACgARwAwAEcAPABHAEAARwBEAEcASABHAEwARwBUAEcAXABHAGAARwBkAEcAbABHAHAARwJcAEcCZABHAnAARwJ4AEcChABHAogARwKMAEcCkABHApQARwKcAEcCpABHAqgARwKsAEcCtABHArgARwMcAEcDIABHAyQARwMsAEcFGABHBSAARwUoAEcFMABHBTwARwVAAEcFRABHBUgARwVMAEcFVABHBVwARwVgAEcFZABHBWwARwVwAEcHXABHB2QARwdsAEcHdABHB4AARweEAEcHiABHB4wARweQAEcHmABHB6AARwekAEcHqABHB7AARwe0AEcJoABHCagARwmwAEcJuABHCcQARwnIAEcJzABHCdAARwnUAEcJ3ABHCeQARwnoAEcJ7ABHCfQARwn4AEcL5ABHC+wARwv0AEcL/ABHDAgARwwMAEcMEABHDBQARwwYAEcMIABHDCgARwwsAEcMMABHDDgARww8AEcOKABHDjAARw44AEcOQABHDkwARw5QAEcOVABHDlgARw5cAEcOZABHDmwARw5wAEcOdABHDnwARw6AAEcPpABHEDQARxDQAEcRYABHEWwARxF0AEcRfABHEYQARxGMAEcRlABHEZgARxGkAEcSCABHEnwARxKEAEcSjABHEpQARxKcAEcSpABHEqwARxK0AEcTKABHEzQARxNAAEcTTABHE1gARxNkAEcTcABHE3wARxOEAEcVcABHFXgARxWAAEcViABHFZQARxWYAEcVnABHFaAARxWkAEcVrABHFbQARxW4AEcVvABHFcQARxXIAEcXtABHF7wARxfEAEcXzABHF9gARxfcAEcX4ABHF+QARxfoAEcX8ABHF/gARxf8AEcYAABHGAgARxgMAEcZ+ABHGgAARxoIAEcaEABHGhwARxogAEcaJABHGigARxosAEcaNABHGjwARxpAAEcaRABHGkwARxpQAEccPABHHEQARxxQAEccWABHHGQARxxoAEccbABHHHAARxx0AEccfABHHIQARxyIAEccjABHHJQARxyYAEcehABHHowARx6UAEcenABHHqgARx6sAEcesABHHrQARx64AEcewABHHsgARx7MAEce0ABHHtgARx7cAEcgyABHINAARyDYAEcg4ABHIOwARyDwAEcg9ABHIPgARyD8AEchBABHIQwARyEQAEchFABHIRwARyEgAEcjDABHIxQARyMcAEcjJABHIzAARyM0AEcjOABHIzwARyNAAEcjSABHI1AARyNUAEcjWABHI2AARyNkAEcjqABHI6wARyO0AEclwABHJlAARybgAEcnbABHKAgARyiIAEcpJABHKcAARypAAEcq0ABHK2AARytoAEcrdABHK3wARyuEAEcrjABHK5gARyukAEcrrABHK7QARyvAAEcryABHK9AARyvcAEcr6ABHK+wARywQAEcsdABHLIgARyyQAEcspABHLLAARyy4AEct3ABHLmwARy8IAEcvmABHL6QARy+sAEcvtABHL7wARy/EAEcvzABHL9AARy/cAEcwQABHMNQARzDcAEcw5ABHMOwARzD0AEcw/ABHMQQARzEMAEcxFABHMRwARzGwAEcxvABHMcgARzHUAEcx4ABHMewARzH4AEcyBABHMhAARzIcAEcyJABHNBAARzQYAEc0JABHNCwARzQ4AEc0PABHNEAARzREAEc0SABHNFAARzRYAEc0XABHNGAARzRoAEc0bABHNLAARzS0AEc0vABHNqgARzawAEc2uABHNsAARzbMAEc20ABHNtQARzbYAEc23ABHNuQARzbsAEc28ABHNvQARzb8AEc3AABHOOwARzj0AEc5AABHOQgARzkUAEc5GABHORwARzkgAEc5JABHOSwARzk0AEc5OABHOTwARzlEAEc5SABHOYwARzmQAEc5mABHO4QARzuMAEc7lABHO5wARzuoAEc7rABHO7AARzu0AEc7uABHO8AARzvIAEc7zABHO9AARzvYAEc73ABHPcgARz3QAEc93ABHPeQARz3wAEc99ABHPfgARz38AEc+AABHPggARz4QAEc+FABHPhgARz4gAEc+JABHPmgARz5sAEc+dABHQGAAR0BoAEdAcABHQHgAR0CEAEdAiABHQIwAR0CQAEdAlABHQJwAR0CkAEdAqABHQKwAR0C0AEdAuABHQqQAR0KsAEdCuABHQsAAR0LMAEdC0ABHQtQAR0LYAEdC3ABHQuQAR0LsAEdC8ABHQvQAR0L8AEdDAABHQ2QAR0NoAEdDbABHQ3QAR0VgAEdFaABHRXAAR0V4AEdFhABHRYgAR0WMAEdFkABHRZQAR0WcAEdFpABHRagAR0WsAEdFtABHRbgAR0ekAEdHrABHR7gAR0fAAEdHzABHR9AAR0fUAEdH2ABHR9wAR0fkAEdH7ABHR/AAR0f0AEdH/ABHSAAAR0hUAEdIuABHSPwAR0kIAEdJFABHSSAAR0ksAEdJcABHSXwAR0mIAEdJlABHSaAAR0moAEdKAABHSjgAR0qEAEdKzABHTRgAR02kAEdOJABHTqQAR06sAEdOtABHTrwAR07EAEdO0ABHTtQAR07YAEdO5ABHTugAR07wAEdO9ABHTvwAR08IAEdPDABHTxAAR08cAEdPIABHTzQAR0+YAEdPvABHT8QAR0/MAEdP8ABHT/wAR1AIAEdQEABHUTQAR1HEAEdSYABHUvAAR1L8AEdTBABHUwwAR1MUAEdTHABHUyQAR1MoAEdTNABHU5gAR1QcAEdUJABHVCwAR1Q0AEdUPABHVEQAR1RMAEdUVABHVFwAR1TgAEdU7ABHVPgAR1UEAEdVEABHVRwAR1UoAEdVNABHVUAAR1VIAEdXNABHVzwAR1dEAEdXTABHV1gAR1dcAEdXYABHV2QAR1doAEdXcABHV3gAR1d8AEdXgABHV4gAR1eMAEdZeABHWYAAR1mIAEdZkABHWZwAR1mgAEdZpABHWagAR1msAEdZtABHWbwAR1nAAEdZxABHWcwAR1nQAEdbvABHW8QAR1vQAEdb2ABHW+QAR1voAEdb7ABHW/AAR1v0AEdb/ABHXAQAR1wIAEdcDABHXBQAR1wYAEdcfABHXIAAR1yEAEdcjABHXngAR16AAEdeiABHXpAAR16cAEdeoABHXqQAR16oAEderABHXrQAR168AEdewABHXsQAR17MAEde0ABHYLwAR2DEAEdgzABHYNQAR2DgAEdg5ABHYOgAR2DsAEdg8ABHYPgAR2EAAEdhBABHYQgAR2EQAEdhFABHYwAAR2MIAEdjEABHYxgAR2MkAEdjKABHYywAR2MwAEdjNABHYzwAR2NEAEdjSABHY0wAR2NUAEdjWABHZUQAR2VMAEdlVABHZVwAR2VoAEdlbABHZXAAR2V0AEdleABHZYAAR2WIAEdljABHZZAAR2WYAEdlnABHZ4gAR2eQAEdnmABHZ6AAR2esAEdnsABHZ7QAR2e4AEdnvABHZ8QAR2fMAEdn0ABHZ9QAR2fcAEdn4ABHaQQAR2mUAEdqMABHasAAR2rMAEdq1ABHatwAR2rkAEdq7ABHavQAR2r4AEdrBABHa2gAR2vcAEdr5ABHa+wAR2v0AEdr/ABHbAQAR2wMAEdsFABHbIgAR2yUAEdsoABHbKwAR2y4AEdsxABHbNAAR2zcAEds5ABHbtAAR27YAEdu4ABHbugAR270AEdu+ABHbvwAR28AAEdvBABHbwwAR28UAEdvGABHbxwAR28kAEdvKABHcRQAR3EcAEdxJABHcSwAR3E4AEdxPABHcUAAR3FEAEdxSABHcVAAR3FYAEdxXABHcWAAR3FoAEdxbABHc1gAR3NgAEdzaABHc3AAR3N8AEdzgABHc4QAR3OIAEdzjABHc5QAR3OcAEdzoABHc6QAR3OsAEdzsABHdZwAR3WkAEd1sABHdbgAR3XEAEd1yABHdcwAR3XQAEd11ABHddwAR3XkAEd16ABHdewAR3X0AEd1+ABHd+QAR3fsAEd39ABHd/wAR3gIAEd4DABHeBAAR3gUAEd4GABHeCAAR3goAEd4LABHeDAAR3g4AEd4PABHeigAR3owAEd6OABHekAAR3pMAEd6UABHelQAR3pYAEd6XABHemQAR3psAEd6cABHenQAR3p8AEd6gABHfGwAR3x0AEd8fABHfIQAR3yQAEd8lABHfJgAR3ycAEd8oABHfKgAR3ywAEd8tABHfLgAR3zAAEd8xABHfxAAR3+cAEeAHABHgJwAR4CkAEeArABHgLQAR4C8AEeAyABHgMwAR4DQAEeA3ABHgOAAR4DoAEeA7ABHgPQAR4EAAEeBBABHgQgAR4EUAEeBGABHgSwAR4GQAEeBtABHgbwAR4HEAEeB6ABHgfQAR4IAAEeCCABHgywAR4O8AEeEWABHhOgAR4T0AEeE/ABHhQQAR4UMAEeFFABHhRwAR4UgAEeFLABHhZAAR4YUAEeGHABHhiQAR4YsAEeGNABHhjwAR4ZEAEeGTABHhlQAR4bYAEeG5ABHhvAAR4b8AEeHCABHhxQAR4cgAEeHLABHhzgAR4dAAEeJLABHiTQAR4k8AEeJRABHiVAAR4lUAEeJWABHiVwAR4lgAEeJaABHiXAAR4l0AEeJeABHiYAAR4mEAEeLcABHi3gAR4uAAEeLiABHi5QAR4uYAEeLnABHi6AAR4ukAEeLrABHi7QAR4u4AEeLvABHi8QAR4vIAEeNtABHjbwAR43IAEeN0ABHjdwAR43gAEeN5ABHjegAR43sAEeN9ABHjfwAR44AAEeOBABHjgwAR44QAEeOdABHjngAR458AEeOhABHkHAAR5B4AEeQgABHkIgAR5CUAEeQmABHkJwAR5CgAEeQpABHkKwAR5C0AEeQuABHkLwAR5DEAEeQyABHkrQAR5K8AEeSxABHkswAR5LYAEeS3ABHkuAAR5LkAEeS6ABHkvAAR5L4AEeS/ABHkwAAR5MIAEeTDABHlPgAR5UAAEeVCABHlRAAR5UcAEeVIABHlSQAR5UoAEeVLABHlTQAR5U8AEeVQABHlUQAR5VMAEeVUABHlzwAR5dEAEeXTABHl1QAR5dgAEeXZABHl2gAR5dsAEeXcABHl3gAR5eAAEeXhABHl4gAR5eQAEeXlABHmYAAR5mIAEeZkABHmZgAR5mkAEeZqABHmawAR5mwAEeZtABHmbwAR5nEAEeZyABHmcwAR5nUAEeZ2ABHmvwAR5uMAEecKABHnLgAR5zEAEeczABHnNQAR5zcAEec5ABHnOwAR5zwAEec/ABHnWAAR53UAEed3ABHneQAR53sAEed9ABHnfwAR54EAEeeDABHnoAAR56MAEeemABHnqQAR56wAEeevABHnsgAR57UAEee3ABHoMgAR6DQAEeg2ABHoOAAR6DsAEeg8ABHoPQAR6D4AEeg/ABHoQQAR6EMAEehEABHoRQAR6EcAEehIABHowwAR6MUAEejHABHoyQAR6MwAEejNABHozgAR6M8AEejQABHo0gAR6NQAEejVABHo1gAR6NgAEejZABHpVAAR6VYAEelYABHpWgAR6V0AEeleABHpXwAR6WAAEelhABHpYwAR6WUAEelmABHpZwAR6WkAEelqABHp5QAR6ecAEenpABHp6wAR6e4AEenvABHp8AAR6fEAEenyABHp9AAR6fYAEen3ABHp+AAR6foAEen7ABHqdgAR6ngAEep6ABHqfAAR6n8AEeqAABHqgQAR6oIAEeqDABHqhQAR6ocAEeqIABHqiQAR6osAEeqMABHrBwAR6wkAEesMABHrDgAR6xEAEesSABHrEwAR6xQAEesVABHrFwAR6xkAEesaABHrGwAR6x0AEeseABHrPQAR67gAEeu6ABHrvAAR674AEevBABHrwgAR68MAEevEABHrxQAR68cAEevJABHrygAR68sAEevNABHrzgAR7GEAEeyEABHspAAR7MQAEezGABHsyAAR7MoAEezMABHszwAR7NAAEezRABHs1AAR7NUAEezXABHs2AAR7NoAEezdABHs3gAR7N8AEeziABHs4wAR7OgAEe0BABHtCgAR7QwAEe0OABHtFwAR7RoAEe0dABHtHwAR7WgAEe2MABHtswAR7dcAEe3aABHt3AAR7d4AEe3gABHt4gAR7eQAEe3lABHt6AAR7gEAEe4iABHuJAAR7iYAEe4oABHuKgAR7iwAEe4uABHuMAAR7jIAEe5TABHuVgAR7lkAEe5cABHuXwAR7mIAEe5lABHuaAAR7msAEe5tABHu6AAR7uoAEe7sABHu7gAR7vEAEe7yABHu8wAR7vQAEe71ABHu9wAR7vkAEe76ABHu+wAR7v0AEe7+ABHveQAR73sAEe99ABHvfwAR74IAEe+DABHvhAAR74UAEe+GABHviAAR74oAEe+LABHvjAAR744AEe+PABHwCgAR8AwAEfAPABHwEQAR8BQAEfAVABHwFgAR8BcAEfAYABHwGgAR8BwAEfAdABHwHgAR8CAAEfAhABHwOgAR8DsAEfA8ABH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B6wASAe0AEgHvABIB8AASAfEAEgHzABIB9AASAm8AEgJxABICcwASAnUAEgJ4ABICeQASAnoAEgJ7ABICfAASAn4AEgKAABICgQASAoIAEgKEABIChQASAwAAEgMCABIDBQASAwcAEgMKABIDCwASAwwAEgMNABIDDgASAxAAEgMSABIDEwASAxQAEgMWABIDFwASA5IAEgOUABIDlgASA5gAEgObABIDnAASA50AEgOeABIDnwASA6EAEgOjABIDpAASA6UAEgOnABIDqAASBCMAEgQlABIEJwASBCkAEgQsABIELQASBC4AEgQvABIEMAASBDIAEgQ0ABIENQASBDYAEgQ4ABIEOQASBLQAEgS2ABIEuAASBLoAEgS9ABIEvgASBL8AEgTAABIEwQASBMMAEgTFABIExgASBMcAEgTJABIEygASBNsAEgTcABIE3gASBWEAEgWFABIFqQASBcwAEgXzABIGEwASBjoAEgZhABIGgQASBqUAEgbJABIGywASBs4AEgbQABIG0gASBtQAEgbXABIG2gASBtwAEgbeABIG4QASBuMAEgblABIG6AASBusAEgbsABIG8QASBwoAEgcPABIHEQASBxYAEgcZABIHGwASB2QAEgeIABIHrwASB9MAEgfWABIH2AASB9oAEgfcABIH3gASB+AAEgfhABIH5AASB/0AEggiABIIJAASCCYAEggoABIIKgASCCwAEgguABIIMAASCDIAEgg0ABIIWQASCFwAEghfABIIYgASCGUAEghoABIIawASCG4AEghxABIIdAASCHYAEgjxABII8wASCPYAEgj4ABII+wASCPwAEgj9ABII/gASCP8AEgkBABIJAwASCQQAEgkFABIJBwASCQgAEgkZABIJGgASCRwAEgmXABIJmQASCZsAEgmdABIJoAASCaEAEgmiABIJowASCaQAEgmmABIJqAASCakAEgmqABIJrAASCa0AEgooABIKKgASCi0AEgovABIKMgASCjMAEgo0ABIKNQASCjYAEgo4ABIKOgASCjsAEgo8ABIKPgASCj8AEgpQABIKVQASClgAEgpaABIKawASCnAAEgpzABIKdQASCvAAEgryABIK9AASCvYAEgr5ABIK+gASCvsAEgr8ABIK/QASCv8AEgsBABILAgASCwMAEgsFABILBgASC4EAEguDABILhgASC4gAEguLABILjAASC40AEguOABILjwASC5EAEguTABILlAASC5UAEguXABILmAASC6kAEguqABILrAASDCcAEgwpABIMKwASDC0AEgwwABIMMQASDDIAEgwzABIMNAASDDYAEgw4ABIMOQASDDoAEgw8ABIMPQASDLgAEgy6ABIMvQASDL8AEgzCABIMwwASDMQAEgzFABIMxgASDMgAEgzKABIMywASDMwAEgzOABIMzwASDOgAEgzpABIM6gASDOwAEg1nABINaQASDWsAEg1tABINcAASDXEAEg1yABINcwASDXQAEg12ABINeAASDXkAEg16ABINfAASDX0AEg34ABIN+gASDf0AEg3/ABIOAgASDgMAEg4EABIOBQASDgYAEg4IABIOCgASDgsAEg4MABIODgASDg8AEg4hABIOOgASDkcAEg5KABIOTQASDlAAEg5dABIOYAASDmMAEg5mABIOaAASDnwAEg6KABIPHQASD0AAEg9gABIPgAASD4IAEg+EABIPhgASD4gAEg+LABIPjAASD40AEg+QABIPkQASD5MAEg+UABIPlgASD5kAEg+aABIPmwASD54AEg+fABIPpAASD70AEg/GABIPyAASD8oAEg/TABIP1gASD9kAEg/bABIQJAASEEgAEhBvABIQkwASEJYAEhCYABIQmgASEJwAEhCeABIQoAASEKEAEhCkABIQvQASEN4AEhDgABIQ4gASEOQAEhDmABIQ6AASEOoAEhDsABIQ7gASEQ8AEhESABIRFQASERgAEhEbABIRHgASESEAEhEkABIRJwASESkAEhGkABIRpgASEagAEhGqABIRrQASEa4AEhGvABIRsAASEbEAEhGzABIRtQASEbYAEhG3ABIRuQASEboAEhI1ABISNwASEjkAEhI7ABISPgASEj8AEhJAABISQQASEkIAEhJEABISRgASEkcAEhJIABISSgASEksAEhLGABISyAASEssAEhLNABIS0AASEtEAEhLSABIS0wASEtQAEhLWABIS2AASEtkAEhLaABIS3AASEt0AEhL2ABIS9wASEvgAEhL6ABITdQASE3cAEhN5ABITewASE34AEhN/ABITgAASE4EAEhOCABIThAASE4YAEhOHABITiAASE4oAEhOLABIUBgASFAgAEhQKABIUDAASFA8AEhQQABIUEQASFBIAEhQTABIUFQASFBcAEhQYABIUGQASFBsAEhQcABIUlwASFJkAEhSbABIUnQASFKAAEhShABIUogASFKMAEhSkABIUpgASFKgAEhSpABIUqgASFKwAEhStABIVKAASFSoAEhUsABIVLgASFTEAEhUyABIVMwASFTQAEhU1ABIVNwASFTkAEhU6ABIVOwASFT0AEhU+ABIVuQASFbsAEhW9ABIVvwASFcIAEhXDABIVxAASFcUAEhXGABIVyAASFcoAEhXLABIVzAASFc4AEhXPABIWGAASFjwAEhZjABIWhwASFooAEhaMABIWjgASFpAAEhaSABIWlAASFpUAEhaYABIWsQASFs4AEhbQABIW0gASFtQAEhbWABIW2AASFtoAEhbcABIW+QASFvwAEhb/ABIXAgASFwUAEhcIABIXCwASFw4AEhcQABIXiwASF40AEhePABIXkQASF5QAEheVABIXlgASF5cAEheYABIXmgASF5wAEhedABIXngASF6AAEhehABIYHAASGB4AEhggABIYIgASGCUAEhgmABIYJwASGCgAEhgpABIYKwASGC0AEhguABIYLwASGDEAEhgyABIYrQASGK8AEhixABIYswASGLYAEhi3ABIYuAASGLkAEhi6ABIYvAASGL4AEhi/ABIYwAASGMIAEhjDABIZPgASGUAAEhlDABIZRQASGUgAEhlJABIZSgASGUsAEhlMABIZTgASGVAAEhlRABIZUgASGVQAEhlVABIZ0AASGdIAEhnUABIZ1gASGdkAEhnaABIZ2wASGdwAEhndABIZ3wASGeEAEhniABIZ4wASGeUAEhnmABIaYQASGmMAEhplABIaZwASGmoAEhprABIabAASGm0AEhpuABIacAASGnIAEhpzABIadAASGnYAEhp3ABIa8gASGvQAEhr2ABIa+AASGvsAEhr8ABIa/QASGv4AEhr/ABIbAQASGwMAEhsEABIbBQASGwcAEhsIABIbmwASG74AEhveABIb/gASHAAAEhwCABIcBAASHAYAEhwJABIcCgASHAsAEhwOABIcDwASHBEAEhwSABIcFAASHBcAEhwYABIcGQASHBwAEhwdABIcIgASHDsAEhxEABIcRgASHEgAEhxRABIcVAASHFcAEhxZABIcogASHMYAEhztABIdEQASHRQAEh0WABIdGAASHRoAEh0cABIdHgASHR8AEh0iABIdOwASHVwAEh1eABIdYAASHWIAEh1kABIdZgASHWgAEh1qABIdbAASHY0AEh2QABIdkwASHZYAEh2ZABIdnAASHZ8AEh2iABIdpQASHacAEh4iABIeJAASHiYAEh4oABIeKwASHiwAEh4tABIeLgASHi8AEh4xABIeMwASHjQAEh41ABIeNwASHjgAEh6zABIetQASHrcAEh65ABIevAASHr0AEh6+ABIevwASHsAAEh7CABIexAASHsUAEh7GABIeyAASHskAEh9EABIfRgASH0kAEh9LABIfTgASH08AEh9QABIfUQASH1IAEh9UABIfVgASH1cAEh9YABIfWgASH1sAEh90ABIfdQASH3YAEh94ABIf8wASH/UAEh/3ABIf+QASH/wAEh/9ABIf/gASH/8AEiAAABIgAgASIAQAEiAFABIgBgASIAgAEiAJABIghAASIIYAEiCIABIgigASII0AEiCOABIgjwASIJAAEiCRABIgkwASIJUAEiCWABIglwASIJkAEiCaABIhFQASIRcAEiEZABIhGwASIR4AEiEfABIhIAASISEAEiEiABIhJAASISYAEiEnABIhKAASISoAEiErABIhpgASIagAEiGqABIhrAASIa8AEiGwABIhsQASIbIAEiGzABIhtQASIbcAEiG4ABIhuQASIbsAEiG8ABIiNwASIjkAEiI7ABIiPQASIkAAEiJBABIiQgASIkMAEiJEABIiRgASIkgAEiJJABIiSgASIkwAEiJNABIilgASIroAEiLhABIjBQASIwgAEiMKABIjDAASIw4AEiMQABIjEgASIxMAEiMWABIjLwASI0wAEiNOABIjUAASI1IAEiNUABIjVgASI1gAEiNaABIjdwASI3oAEiN9ABIjgAASI4MAEiOGABIjiQASI4wAEiOOABIkCQASJAsAEiQNABIkDwASJBIAEiQTABIkFAASJBUAEiQWABIkGAASJBoAEiQbABIkHAASJB4AEiQfABIkmgASJJwAEiSeABIkoAASJKMAEiSkABIkpQASJKYAEiSnABIkqQASJKsAEiSsABIkrQASJK8AEiSwABIlKwASJS0AEiUvABIlMQASJTQAEiU1ABIlNgASJTcAEiU4ABIlOgASJTwAEiU9ABIlPgASJUAAEiVBABIlvAASJb4AEiXBABIlwwASJcYAEiXHABIlyAASJckAEiXKABIlzAASJc4AEiXPABIl0AASJdIAEiXTABImTgASJlAAEiZSABImVAASJlcAEiZYABImWQASJloAEiZbABImXQASJl8AEiZgABImYQASJmMAEiZkABIm3wASJuEAEibjABIm5QASJugAEibpABIm6gASJusAEibsABIm7gASJvAAEibxABIm8gASJvQAEib1ABIncAASJ3IAEid0ABIndgASJ3kAEid6ABInewASJ3wAEid9ABInfwASJ4EAEieCABIngwASJ4UAEieGABIoGQASKDwAEihcABIofAASKH4AEiiAABIoggASKIQAEiiHABIoiAASKIkAEiiMABIojQASKI8AEiiQABIokgASKJUAEiiWABIolwASKJoAEiibABIooAASKLkAEijCABIoxAASKMYAEijPABIo0gASKNUAEijXABIpIAASKUQAEilrABIpjwASKZIAEimUABIplgASKZgAEimaABIpnAASKZ0AEimgABIpuQASKdoAEincABIp3gASKeAAEiniABIp5AASKeYAEinoABIp6gASKgsAEioOABIqEQASKhQAEioXABIqGgASKh0AEiogABIqIwASKiUAEiqgABIqogASKqQAEiqmABIqqQASKqoAEiqrABIqrAASKq0AEiqvABIqsQASKrIAEiqzABIqtQASKrYAEisxABIrMwASKzUAEis3ABIrOgASKzsAEis8ABIrPQASKz4AEitAABIrQgASK0MAEitEABIrRgASK0cAEivCABIrxAASK8cAEivJABIrzAASK80AEivOABIrzwASK9AAEivSABIr1AASK9UAEivWABIr2AASK9kAEivyABIr8wASK/QAEiv2ABIscQASLHMAEix1ABIsdwASLHoAEix7ABIsfAASLH0AEix+ABIsgAASLIIAEiyDABIshAASLIYAEiyHABItAgASLQQAEi0GABItCAASLQsAEi0MABItDQASLQ4AEi0PABItEQASLRMAEi0UABItFQASLRcAEi0YABItkwASLZUAEi2XABItmQASLZwAEi2dABItngASLZ8AEi2gABItogASLaQAEi2lABItpgASLagAEi2pABIuJAASLiYAEi4oABIuKgASLi0AEi4uABIuLwASLjAAEi4xABIuMwASLjUAEi42ABIuNwASLjkAEi46ABIutQASLrcAEi65ABIuuwASLr4AEi6/ABIuwAASLsEAEi7CABIuxAASLsYAEi7HABIuyAASLsoAEi7LABIvFAASLzgAEi9fABIvgwASL4YAEi+IABIvigASL4wAEi+OABIvkAASL5EAEi+UABIvrQASL8oAEi/MABIvzgASL9AAEi/SABIv1AASL9YAEi/YABIv9QASL/gAEi/7ABIv/gASMAEAEjAEABIwBwASMAoAEjAMABIwhwASMIkAEjCLABIwjQASMJAAEjCRABIwkgASMJMAEjCUABIwlgASMJgAEjCZABIwmgASMJwAEjCdABIxGAASMRoAEjEcABIxHgASMSEAEjEiABIxIwASMSQAEjElABIxJwASMSkAEjEqABIxKwASMS0AEjEuABIxqQASMasAEjGtABIxrwASMbIAEjGzABIxtAASMbUAEjG2ABIxuAASMboAEjG7ABIxvAASMb4AEjG/ABIyOgASMjwAEjI/ABIyQQASMkQAEjJFABIyRgASMkcAEjJIABIySgASMkwAEjJNABIyTgASMlAAEjJRABIyzAASMs4AEjLQABIy0gASMtUAEjLWABIy1wASMtgAEjLZABIy2wASMt0AEjLeABIy3wASMuEAEjLiABIzXQASM18AEjNhABIzYwASM2YAEjNnABIzaAASM2kAEjNqABIzbAASM24AEjNvABIzcAASM3IAEjNzABIz7gASM/AAEjPyABIz9AASM/cAEjP4ABIz+QASM/oAEjP7ABIz/QASM/8AEjQAABI0AQASNAMAEjQEABI0FQASNBYAEjQYABI0mwASNL8AEjTjABI1BgASNS0AEjVNABI1dAASNZsAEjW7ABI13wASNgMAEjYFABI2CAASNgoAEjYMABI2DgASNhEAEjYUABI2FgASNhgAEjYbABI2HQASNh8AEjYiABI2JQASNiYAEjYvABI2SAASNk0AEjZPABI2VAASNlcAEjZZABI2ogASNsYAEjbtABI3EQASNxQAEjcWABI3GAASNxoAEjccABI3HgASNx8AEjciABI3OwASN2AAEjdiABI3ZAASN2YAEjdoABI3agASN2wAEjduABI3cAASN3IAEjeXABI3mgASN50AEjegABI3owASN6YAEjepABI3rAASN68AEjeyABI3tAASOC8AEjgxABI4NAASODYAEjg5ABI4OgASODsAEjg8ABI4PQASOD8AEjhBABI4QgASOEMAEjhFABI4RgASOFcAEjhYABI4WgASONUAEjjXABI42QASONsAEjjeABI43wASOOAAEjjhABI44gASOOQAEjjmABI45wASOOgAEjjqABI46wASOWYAEjloABI5awASOW0AEjlwABI5cQASOXIAEjlzABI5dAASOXYAEjl4ABI5eQASOXoAEjl8ABI5fQASOY4AEjmTABI5lgASOZgAEjmpABI5rgASObEAEjmzABI5uAASOjMAEjo1ABI6NwASOjkAEjo8ABI6PQASOj4AEjo/ABI6QAASOkIAEjpEABI6RQASOkYAEjpIABI6SQASOsQAEjrGABI6yQASOssAEjrOABI6zwASOtAAEjrRABI60gASOtQAEjrWABI61wASOtgAEjraABI62wASOuwAEjrtABI67wASO2oAEjtsABI7bgASO3AAEjtzABI7dAASO3UAEjt2ABI7dwASO3kAEjt7ABI7fAASO30AEjt/ABI7gAASO/sAEjv9ABI8AAASPAIAEjwFABI8BgASPAcAEjwIABI8CQASPAsAEjwNABI8DgASPA8AEjwRABI8EgASPCsAEjwsABI8LQASPC8AEjyqABI8rAASPK4AEjywABI8swASPLQAEjy1ABI8tgASPLcAEjy5ABI8uwASPLwAEjy9ABI8vwASPMAAEj07ABI9PQASPUAAEj1CABI9RQASPUYAEj1HABI9SAASPUkAEj1LABI9TQASPU4AEj1PABI9UQASPVIAEj1qABI9gwASPYwAEj2PABI9kgASPZsAEj2eABI9oQASPaMAEj22ABI+SQASPmwAEj6MABI+rAASPq4AEj6wABI+sgASPrQAEj63ABI+uAASPrkAEj68ABI+vQASPr8AEj7AABI+wgASPsUAEj7GABI+xwASPsoAEj7LABI+0AASPukAEj7yABI+9AASPvYAEj7/ABI/AgASPwUAEj8HABI/UAASP3QAEj+bABI/vwASP8IAEj/EABI/xgASP8gAEj/KABI/zAASP80AEj/QABI/6QASQAoAEkAMABJADgASQBAAEkASABJAFAASQBYAEkAYABJAGgASQDsAEkA+ABJAQQASQEQAEkBHABJASgASQE0AEkBQABJAUwASQFUAEkDQABJA0gASQNQAEkDWABJA2QASQNoAEkDbABJA3AASQN0AEkDfABJA4QASQOIAEkDjABJA5QASQOYAEkFhABJBYwASQWUAEkFnABJBagASQWsAEkFsABJBbQASQW4AEkFwABJBcgASQXMAEkF0ABJBdgASQXcAEkHyABJB9AASQfcAEkH5ABJB/AASQf0AEkH+ABJB/wASQgAAEkICABJCBAASQgUAEkIGABJCCAASQgkAEkIiABJCIwASQiQAEkImABJCoQASQqMAEkKlABJCpwASQqoAEkKrABJCrAASQq0AEkKuABJCsAASQrIAEkKzABJCtAASQrYAEkK3ABJDMgASQzQAEkM2ABJDOAASQzsAEkM8ABJDPQASQz4AEkM/ABJDQQASQ0MAEkNEABJDRQASQ0cAEkNIABJDwwASQ8UAEkPHABJDyQASQ8wAEkPNABJDzgASQ88AEkPQABJD0gASQ9QAEkPVABJD1gASQ9gAEkPZABJEVAASRFYAEkRYABJEWgASRF0AEkReABJEXwASRGAAEkRhABJEYwASRGUAEkRmABJEZwASRGkAEkRqABJE5QASROcAEkTpABJE6wASRO4AEkTvABJE8AASRPEAEkTyABJE9AASRPYAEkT3ABJE+AASRPoAEkT7ABJFRAASRWgAEkWPABJFswASRbYAEkW4ABJFugASRbwAEkW+ABJFwAASRcEAEkXEABJF3QASRfoAEkX8ABJF/gASRgAAEkYCABJGBAASRgYAEkYIABJGJQASRigAEkYrABJGLgASRjEAEkY0ABJGNwASRjoAEkY8ABJGtwASRrkAEka7ABJGvQASRsAAEkbBABJGwgASRsMAEkbEABJGxgASRsgAEkbJABJGygASRswAEkbNABJHSAASR0oAEkdMABJHTgASR1EAEkdSABJHUwASR1QAEkdVABJHVwASR1kAEkdaABJHWwASR10AEkdeABJH2QASR9sAEkfdABJH3wASR+IAEkfjABJH5AASR+UAEkfmABJH6AASR+oAEkfrABJH7AASR+4AEkfvABJIagASSGwAEkhuABJIcAASSHMAEkh0ABJIdQASSHYAEkh3ABJIeQASSHsAEkh8ABJIfQASSH8AEkiAABJI+wASSP0AEkj/ABJJAQASSQQAEkkFABJJBgASSQcAEkkIABJJCgASSQwAEkkNABJJDgASSRAAEkkRABJJjAASSY4AEkmRABJJkwASSZYAEkmXABJJmAASSZkAEkmaABJJnAASSZ4AEkmfABJJoAASSaIAEkmjABJJuwASSjYAEko4ABJKOgASSjwAEko/ABJKQAASSkEAEkpCABJKQwASSkUAEkpHABJKSAASSkkAEkpLABJKTAASSt8AEksCABJLIgASS0IAEktEABJLRgASS0gAEktKABJLTQASS04AEktPABJLUgASS1MAEktVABJLVgASS1gAEktbABJLXAASS10AEktgABJLYQASS2YAEkt/ABJLiAASS4oAEkuMABJLlQASS5gAEkubABJLnQASS+YAEkwKABJMMQASTFUAEkxYABJMWgASTFwAEkxeABJMYAASTGIAEkxjABJMZgASTH8AEkygABJMogASTKQAEkymABJMqAASTKoAEkysABJMrgASTLAAEkzRABJM1AASTNcAEkzaABJM3QASTOAAEkzjABJM5gASTOkAEkzrABJNZgASTWgAEk1qABJNbAASTW8AEk1wABJNcQASTXIAEk1zABJNdQASTXcAEk14ABJNeQASTXsAEk18ABJN9wASTfkAEk37ABJN/QASTgAAEk4BABJOAgASTgMAEk4EABJOBgASTggAEk4JABJOCgASTgwAEk4NABJOiAASTooAEk6NABJOjwASTpIAEk6TABJOlAASTpUAEk6WABJOmAASTpoAEk6bABJOnAASTp4AEk6fABJOuAASTrkAEk66ABJOvAASTzcAEk85ABJPOwASTz0AEk9AABJPQQAST0IAEk9DABJPRAAST0YAEk9IABJPSQAST0oAEk9MABJPTQAST8gAEk/KABJPzAAST84AEk/RABJP0gAST9MAEk/UABJP1QAST9cAEk/ZABJP2gAST9sAEk/dABJP3gASUFkAElBbABJQXQASUF8AElBiABJQYwASUGQAElBlABJQZgASUGgAElBqABJQawASUGwAElBuABJQbwASUOoAElDsABJQ7gASUPAAElDzABJQ9AASUPUAElD2ABJQ9wASUPkAElD7ABJQ/AASUP0AElD/ABJRAAASUXsAElF9ABJRfwASUYEAElGEABJRhQASUYYAElGHABJRiAASUYoAElGMABJRjQASUY4AElGQABJRkQASUdoAElH+ABJSJQASUkkAElJMABJSTgASUlAAElJSABJSVAASUlYAElJXABJSWgASUnMAElKQABJSkgASUpQAElKWABJSmAASUpoAElKcABJSngASUrsAElK+ABJSwQASUsQAElLHABJSygASUs0AElLQABJS0gASU00AElNPABJTUQASU1MAElNWABJTVwASU1gAElNZABJTWgASU1wAElNeABJTXwASU2AAElNiABJTYwASU94AElPgABJT4gASU+QAElPnABJT6AASU+kAElPqABJT6wASU+0AElPvABJT8AASU/EAElPzABJT9AASVG8AElRxABJUcwASVHUAElR4ABJUeQASVHoAElR7ABJUfAASVH4AElSAABJUgQASVIIAElSEABJUhQASVQAAElUCABJVBQASVQcAElUKABJVCwASVQwAElUNABJVDgASVRAAElUSABJVEwASVRQAElUWABJVFwASVZIAElWUABJVlgASVZgAElWbABJVnAASVZ0AElWeABJVnwASVaEAElWjABJVpAASVaUAElWnABJVqAASViMAElYlABJWJwASVikAElYsABJWLQASVi4AElYvABJWMAASVjIAElY0ABJWNQASVjYAElY4ABJWOQASVrQAEla2ABJWuAASVroAEla9ABJWvgASVr8AElbAABJWwQASVsMAElbFABJWxgASVscAElbJABJWygASVtsAElbcABJW3gASV2EAEleFABJXqQASV8wAElfzABJYEwASWDoAElhhABJYgQASWKUAEljJABJYywASWM4AEljQABJY0gASWNQAEljXABJY2gASWNwAEljeABJY4QASWOMAEljlABJY6AASWOsAEljsABJY9QASWQ4AElkTABJZFQASWRoAElkdABJZHwASWWgAElmMABJZswASWdcAElnaABJZ3AASWd4AElngABJZ4gASWeQAElnlABJZ6AASWgEAElomABJaKAASWioAElosABJaLgASWjAAEloyABJaNAASWjYAElo4ABJaXQASWmAAElpjABJaZgASWmkAElpsABJabwASWnIAElp1ABJaeAASWnoAElr1ABJa9wASWvoAElr8ABJa/wASWwAAElsBABJbAgASWwMAElsFABJbBwASWwgAElsJABJbCwASWwwAElsdABJbHgASWyAAElubABJbnQASW58AEluhABJbpAASW6UAElumABJbpwASW6gAEluqABJbrAASW60AEluuABJbsAASW7EAElwsABJcLgASXDEAElwzABJcNgASXDcAElw4ABJcOQASXDoAElw8ABJcPgASXD8AElxAABJcQgASXEMAElxUABJcVQASXFcAElzSABJc1AASXNYAElzYABJc2wASXNwAElzdABJc3gASXN8AElzhABJc4wASXOQAElzlABJc5wASXOgAEl1jABJdZQASXWgAEl1qABJdbQASXW4AEl1vABJdcAASXXEAEl1zABJddQASXXYAEl13ABJdeQASXXoAEl2LABJdjAASXY4AEl4JABJeCwASXg0AEl4PABJeEgASXhMAEl4UABJeFQASXhYAEl4YABJeGgASXhsAEl4cABJeHgASXh8AEl6aABJenAASXp8AEl6hABJepAASXqUAEl6mABJepwASXqgAEl6qABJerAASXq0AEl6uABJesAASXrEAEl7KABJeywASXswAEl7OABJfSQASX0sAEl9NABJfTwASX1IAEl9TABJfVAASX1UAEl9WABJfWAASX1oAEl9bABJfXAASX14AEl9fABJf2gASX9wAEl/fABJf4QASX+QAEl/lABJf5gASX+cAEl/oABJf6gASX+wAEl/tABJf7gASX/AAEl/xABJf/wASYBgAEmAtABJgMAASYDMAEmA2ABJgOQASYDwAEmBRABJgVAASYFcAEmBaABJgXQASYGAAEmBiABJgaAASYHsAEmCPABJgoQASYLsAEmFOABJhcQASYZEAEmGxABJhswASYbUAEmG3ABJhuQASYbwAEmG9ABJhvgASYcEAEmHCABJhxAASYcUAEmHHABJhygASYcsAEmHMABJhzwASYdAAEmHZABJh8gASYfsAEmH9ABJh/wASYggAEmILABJiDgASYhAAEmJZABJifQASYqQAEmLIABJiywASYs0AEmLPABJi0QASYtMAEmLVABJi1gASYtkAEmLyABJjEwASYxUAEmMXABJjGQASYxsAEmMdABJjHwASYyEAEmMjABJjRAASY0cAEmNKABJjTQASY1AAEmNTABJjVgASY1kAEmNcABJjXgASY9kAEmPbABJj3QASY98AEmPiABJj4wASY+QAEmPlABJj5gASY+gAEmPqABJj6wASY+wAEmPuABJj7wASZGoAEmRsABJkbgASZHAAEmRzABJkdAASZHUAEmR2ABJkdwASZHkAEmR7ABJkfAASZH0AEmR/ABJkgAASZPsAEmT9ABJlAAASZQIAEmUFABJlBgASZQcAEmUIABJlCQASZQsAEmUNABJlDgASZQ8AEmURABJlEgASZSsAEmUsABJlLQASZS8AEmWqABJlrAASZa4AEmWwABJlswASZbQAEmW1ABJltgASZbcAEmW5ABJluwASZbwAEmW9ABJlvwASZcAAEmY7ABJmPQASZj8AEmZBABJmRAASZkUAEmZGABJmRwASZkgAEmZKABJmTAASZk0AEmZOABJmUAASZlEAEmbMABJmzgASZtAAEmbSABJm1QASZtYAEmbXABJm2AASZtkAEmbbABJm3QASZt4AEmbfABJm4QASZuIAEmddABJnXwASZ2EAEmdjABJnZgASZ2cAEmdoABJnaQASZ2oAEmdsABJnbgASZ28AEmdwABJncgASZ3MAEmfuABJn8AASZ/IAEmf0ABJn9wASZ/gAEmf5ABJn+gASZ/sAEmf9ABJn/wASaAAAEmgBABJoAwASaAQAEmhNABJocQASaJgAEmi8ABJovwASaMEAEmjDABJoxQASaMcAEmjJABJoygASaM0AEmjmABJpAwASaQUAEmkHABJpCQASaQsAEmkNABJpDwASaREAEmkuABJpMQASaTQAEmk3ABJpOgASaT0AEmlAABJpQwASaUUAEmnAABJpwgASacQAEmnGABJpyQASacoAEmnLABJpzAASac0AEmnPABJp0QASadIAEmnTABJp1QASadYAEmpRABJqUwASalUAEmpXABJqWgASalsAEmpcABJqXQASal4AEmpgABJqYgASamMAEmpkABJqZgASamcAEmriABJq5AASauYAEmroABJq6wASauwAEmrtABJq7gASau8AEmrxABJq8wASavQAEmr1ABJq9wASavgAEmtzABJrdQASa3gAEmt6ABJrfQASa34AEmt/ABJrgAASa4EAEmuDABJrhQASa4YAEmuHABJriQASa4oAEmwFABJsBwASbAkAEmwLABJsDgASbA8AEmwQABJsEQASbBIAEmwUABJsFgASbBcAEmwYABJsGgASbBsAEmyWABJsmAASbJoAEmycABJsnwASbKAAEmyhABJsogASbKMAEmylABJspwASbKgAEmypABJsqwASbKwAEm0nABJtKQASbSsAEm0tABJtMAASbTEAEm0yABJtMwASbTQAEm02ABJtOAASbTkAEm06ABJtPAASbT0AEm3QABJt8wASbhMAEm4zABJuNQASbjcAEm45ABJuOwASbj4AEm4/ABJuQAASbkMAEm5EABJuRgASbkcAEm5JABJuTAASbk0AEm5OABJuUQASblIAEm5XABJucAASbnkAEm57ABJufQASboYAEm6JABJujAASbo4AEm7XABJu+wASbyIAEm9GABJvSQASb0sAEm9NABJvTwASb1EAEm9TABJvVAASb1cAEm9wABJvkQASb5MAEm+VABJvlwASb5kAEm+bABJvnQASb58AEm+hABJvwgASb8UAEm/IABJvywASb84AEm/RABJv1AASb9cAEm/aABJv3AAScFcAEnBZABJwWwAScF0AEnBgABJwYQAScGIAEnBjABJwZAAScGYAEnBoABJwaQAScGoAEnBsABJwbQAScOgAEnDqABJw7AAScO4AEnDxABJw8gAScPMAEnD0ABJw9QAScPcAEnD5ABJw+gAScPsAEnD9ABJw/gAScXkAEnF7ABJxfgAScYAAEnGDABJxhAAScYUAEnGGABJxhwAScYkAEnGLABJxjAAScY0AEnGPABJxkAAScakAEnGqABJxqwASca0AEnIoABJyKgASciwAEnIuABJyMQAScjIAEnIzABJyNAAScjUAEnI3ABJyOQAScjoAEnI7ABJyPQAScj4AEnK5ABJyuwAScr0AEnK/ABJywgAScsMAEnLEABJyxQAScsYAEnLIABJyygAScssAEnLMABJyzgAScs8AEnNKABJzTAASc04AEnNQABJzUwASc1QAEnNVABJzVgASc1cAEnNZABJzWwASc1wAEnNdABJzXwASc2AAEnPbABJz3QASc98AEnPhABJz5AASc+UAEnPmABJz5wASc+gAEnPqABJz7AASc+0AEnPuABJz8AASc/EAEnRsABJ0bgASdHAAEnRyABJ0dQASdHYAEnR3ABJ0eAASdHkAEnR7ABJ0fQASdH4AEnR/ABJ0gQASdIIAEnTLABJ07wASdRYAEnU6ABJ1PQASdT8AEnVBABJ1QwASdUUAEnVHABJ1SAASdUsAEnVkABJ1gQASdYMAEnWFABJ1hwASdYkAEnWLABJ1jQASdY8AEnWsABJ1rwASdbIAEnW1ABJ1uAASdbsAEnW+ABJ1wQASdcMAEnY+ABJ2QAASdkIAEnZEABJ2RwASdkgAEnZJABJ2SgASdksAEnZNABJ2TwASdlAAEnZRABJ2UwASdlQAEnbPABJ20QASdtMAEnbVABJ22AASdtkAEnbaABJ22wASdtwAEnbeABJ24AASduEAEnbiABJ25AASduUAEndgABJ3YgASd2QAEndmABJ3aQASd2oAEndrABJ3bAASd20AEndvABJ3cQASd3IAEndzABJ3dQASd3YAEnfxABJ38wASd/YAEnf4ABJ3+wASd/wAEnf9ABJ3/gASd/8AEngBABJ4AwASeAQAEngFABJ4BwASeAgAEniDABJ4hQASeIcAEniJABJ4jAASeI0AEniOABJ4jwASeJAAEniSABJ4lAASeJUAEniWABJ4mAASeJkAEnkUABJ5FgASeRkAEnkbABJ5HgASeR8AEnkgABJ5IQASeSIAEnkkABJ5JgASeScAEnkoABJ5KgASeSsAEnlKABJ5xQASeccAEnnJABJ5ywASec4AEnnPABJ50AASedEAEnnSABJ51AASedYAEnnXABJ52AASedoAEnnbABJ6bgASepEAEnqxABJ60QASetMAEnrVABJ61wASetkAEnrcABJ63QASet4AEnrhABJ64gASeuQAEnrlABJ65wASeuoAEnrrABJ67AASeu8AEnrwABJ6+QASexIAEnsbABJ7HQASex8AEnsoABJ7KwASey4AEnswABJ7eQASe50AEnvEABJ76AASe+sAEnvtABJ77wASe/EAEnvzABJ79QASe/YAEnv5ABJ8EgASfDMAEnw1ABJ8NwASfDkAEnw7ABJ8PQASfD8AEnxBABJ8QwASfGQAEnxnABJ8agASfG0AEnxwABJ8cwASfHYAEnx5ABJ8fAASfH4AEnz5ABJ8+wASfP0AEnz/ABJ9AgASfQMAEn0EABJ9BQASfQYAEn0IABJ9CgASfQsAEn0MABJ9DgASfQ8AEn2KABJ9jAASfY4AEn2QABJ9kwASfZQAEn2VABJ9lgASfZcAEn2ZABJ9mwASfZwAEn2dABJ9nwASfaAAEn4bABJ+HQASfiAAEn4iABJ+JQASfiYAEn4nABJ+KAASfikAEn4rABJ+LQASfi4AEn4vABJ+MQASfjIAEn5LABJ+TAASfk0AEn5PABJ+ygASfswAEn7OABJ+0AASftMAEn7UABJ+1QASftYAEn7XABJ+2QASftsAEn7cABJ+3QASft8AEn7gABJ/WwASf10AEn9fABJ/YQASf2QAEn9lABJ/ZgASf2cAEn9oABJ/agASf2wAEn9tABJ/bgASf3AAEn9xABJ/7AASf+4AEn/wABJ/8gASf/UAEn/2ABJ/9wASf/gAEn/5ABJ/+wASf/0AEn/+ABJ//wASgAEAEoACABKAfQASgH8AEoCBABKAgwASgIYAEoCHABKAiAASgIkAEoCKABKAjAASgI4AEoCPABKAkAASgJIAEoCTABKBDgASgRAAEoESABKBFAASgRcAEoEYABKBGQASgRoAEoEbABKBHQASgR8AEoEgABKBIQASgSMAEoEkABKBbQASgZEAEoG4ABKB3AASgd8AEoHhABKB4wASgeUAEoHnABKB6QASgeoAEoHtABKCBgASgiMAEoIlABKCJwASgikAEoIrABKCLQASgi8AEoIxABKCTgASglEAEoJUABKCVwASgloAEoJdABKCYAASgmMAEoJlABKC4AASguIAEoLkABKC5gASgukAEoLqABKC6wASguwAEoLtABKC7wASgvEAEoLyABKC8wASgvUAEoL2ABKDcQASg3MAEoN1ABKDdwASg3oAEoN7ABKDfAASg30AEoN+ABKDgAASg4IAEoODABKDhAASg4YAEoOHABKEAgAShAQAEoQGABKECAAShAsAEoQMABKEDQAShA4AEoQPABKEEQAShBMAEoQUABKEFQAShBcAEoQYABKEkwAShJUAEoSXABKEmQAShJwAEoSdABKEngAShJ8AEoSgABKEogAShKQAEoSlABKEpgAShKgAEoSpABKFJAAShSYAEoUoABKFKgAShS0AEoUuABKFLwAShTAAEoUxABKFMwAShTUAEoU2ABKFNwAShTkAEoU6ABKFtQAShbcAEoW5ABKFuwAShb4AEoW/ABKFwAAShcEAEoXCABKFxAAShcYAEoXHABKFyAAShcoAEoXLABKGRgAShkgAEoZKABKGTAAShk8AEoZQABKGUQAShlIAEoZTABKGVQAShlcAEoZYABKGWQAShlsAEoZcABKG7wAShxIAEocyABKHUgASh1QAEodWABKHWAASh1oAEoddABKHXgASh18AEodiABKHYwASh2UAEodmABKHaAASh2sAEodsABKHbQASh3AAEodxABKHdgASh48AEoeYABKHmgASh5wAEoelABKHqAASh6sAEoetABKH9gASiBoAEohBABKIZQASiGgAEohqABKIbAASiG4AEohwABKIcgASiHMAEoh2ABKIjwASiLAAEoiyABKItAASiLYAEoi4ABKIugASiLwAEoi+ABKIwAASiOEAEojkABKI5wASiOoAEojtABKI8AASiPMAEoj2ABKI+QASiPsAEol2ABKJeAASiXoAEol8ABKJfwASiYAAEomBABKJggASiYMAEomFABKJhwASiYgAEomJABKJiwASiYwAEooHABKKCQASigsAEooNABKKEAASihEAEooSABKKEwASihQAEooWABKKGAASihkAEooaABKKHAASih0AEoqYABKKmgASip0AEoqfABKKogASiqMAEoqkABKKpQASiqYAEoqoABKKqgASiqsAEoqsABKKrgASiq8AEorIABKKyQASisoAEorMABKLRwASi0kAEotLABKLTQASi1AAEotRABKLUgASi1MAEotUABKLVgASi1gAEotZABKLWgASi1wAEotdABKL2AASi9oAEovcABKL3gASi+EAEoviABKL4wASi+QAEovlABKL5wASi+kAEovqABKL6wASi+0AEovuABKMaQASjGsAEoxtABKMbwASjHIAEoxzABKMdAASjHUAEox2ABKMeAASjHoAEox7ABKMfAASjH4AEox/ABKM+gASjPwAEoz+ABKNAAASjQMAEo0EABKNBQASjQYAEo0HABKNCQASjQsAEo0MABKNDQASjQ8AEo0QABKNiwASjY0AEo2PABKNkQASjZQAEo2VABKNlgASjZcAEo2YABKNmgASjZwAEo2dABKNngASjaAAEo2hABKN6gASjg4AEo41ABKOWQASjlwAEo5eABKOYAASjmIAEo5kABKOZgASjmcAEo5qABKOgwASjqAAEo6iABKOpAASjqYAEo6oABKOqgASjqwAEo6uABKOywASjs4AEo7RABKO1AASjtcAEo7aABKO3QASjuAAEo7iABKPXQASj18AEo9hABKPYwASj2YAEo9nABKPaAASj2kAEo9qABKPbAASj24AEo9vABKPcAASj3IAEo9zABKP7gASj/AAEo/yABKP9AASj/cAEo/4ABKP+QASj/oAEo/7ABKP/QASj/8AEpAAABKQAQASkAMAEpAEABKQfwASkIEAEpCDABKQhQASkIgAEpCJABKQigASkIsAEpCMABKQjgASkJAAEpCRABKQkgASkJQAEpCVABKREAASkRIAEpEUABKRFgASkRkAEpEaABKRGwASkRwAEpEdABKRHwASkSEAEpEiABKRIwASkSUAEpEmABKRoQASkaMAEpGlABKRpwASkaoAEpGrABKRrAASka0AEpGuABKRsAASkbIAEpGzABKRtAASkbYAEpG3ABKSMgASkjQAEpI2ABKSOAASkjsAEpI8ABKSPQASkj4AEpI/ABKSQQASkkMAEpJEABKSRQASkkcAEpJIABKSwwASksUAEpLHABKSyQASkswAEpLNABKSzgASks8AEpLQABKS0gASktQAEpLVABKS1gASktgAEpLZABKTbAASk48AEpOvABKTzwASk9EAEpPTABKT1QASk9cAEpPaABKT2wASk9wAEpPfABKT4AASk+IAEpPjABKT5QASk+gAEpPpABKT6gASk+0AEpPuABKT8wASlAwAEpQVABKUFwASlBkAEpQiABKUJQASlCgAEpQqABKUcwASlJcAEpS+ABKU4gASlOUAEpTnABKU6QASlOsAEpTtABKU7wASlPAAEpTzABKVDAASlS0AEpUvABKVMQASlTMAEpU1ABKVNwASlTkAEpU7ABKVPQASlV4AEpVhABKVZAASlWcAEpVqABKVbQASlXAAEpVzABKVdgASlXgAEpXzABKV9QASlfcAEpX5ABKV/AASlf0AEpX+ABKV/wASlgAAEpYCABKWBAASlgUAEpYGABKWCAASlgkAEpaEABKWhgASlogAEpaKABKWjQASlo4AEpaPABKWkAASlpEAEpaTABKWlQASlpYAEpaXABKWmQASlpoAEpcVABKXFwASlxoAEpccABKXHwASlyAAEpchABKXIgASlyMAEpclABKXJwASlygAEpcpABKXKwASlywAEpdFABKXRgASl0cAEpdJABKXxAASl8YAEpfIABKXygASl80AEpfOABKXzwASl9AAEpfRABKX0wASl9UAEpfWABKX1wASl9kAEpfaABKYVQASmFcAEphZABKYWwASmF4AEphfABKYYAASmGEAEphiABKYZAASmGYAEphnABKYaAASmGoAEphrABKY5gASmOgAEpjqABKY7AASmO8AEpjwABKY8QASmPIAEpjzABKY9QASmPcAEpj4ABKY+QASmPsAEpj8ABKZdwASmXkAEpl7ABKZfQASmYAAEpmBABKZggASmYMAEpmEABKZhgASmYgAEpmJABKZigASmYwAEpmNABKaCAASmgoAEpoMABKaDgASmhEAEpoSABKaEwASmhQAEpoVABKaFwASmhkAEpoaABKaGwASmh0AEpoeABKaZwASmosAEpqyABKa1gASmtkAEprbABKa3QASmt8AEprhABKa4wASmuQAEprnABKbAAASmx0AEpsfABKbIQASmyMAEpslABKbJwASmykAEpsrABKbSAASm0sAEptOABKbUQASm1QAEptXABKbWgASm10AEptfABKb2gASm9wAEpveABKb4AASm+MAEpvkABKb5QASm+YAEpvnABKb6QASm+sAEpvsABKb7QASm+8AEpvwABKcawASnG0AEpxvABKccQASnHQAEpx1ABKcdgASnHcAEpx4ABKcegASnHwAEpx9ABKcfgASnIAAEpyBABKc/AASnP4AEp0AABKdAgASnQUAEp0GABKdBwASnQgAEp0JABKdCwASnQ0AEp0OABKdDwASnREAEp0SABKdjQASnY8AEp2SABKdlAASnZcAEp2YABKdmQASnZoAEp2bABKdnQASnZ8AEp2gABKdoQASnaMAEp2kABKeHwASniEAEp4jABKeJQASnigAEp4pABKeKgASnisAEp4sABKeLgASnjAAEp4xABKeMgASnjQAEp41ABKesAASnrIAEp60ABKetgASnrkAEp66ABKeuwASnrwAEp69ABKevwASnsEAEp7CABKewwASnsUAEp7GABKfQQASn0MAEp9FABKfRwASn0oAEp9LABKfTAASn00AEp9OABKfUAASn1IAEp9TABKfVAASn1YAEp9XABKfaAASn2kAEp9rABKf7gASoBIAEqA2ABKgWQASoIAAEqCgABKgxwASoO4AEqEOABKhMgASoVYAEqFYABKhWwASoV0AEqFfABKhYQASoWQAEqFnABKhaQASoWsAEqFuABKhcAASoXIAEqF1ABKheAASoXkAEqF+ABKhlwASoZwAEqGeABKhowASoaYAEqGoABKh8QASohUAEqI8ABKiYAASomMAEqJlABKiZwASomkAEqJrABKibQASom4AEqJxABKiigASoq8AEqKxABKiswASorUAEqK3ABKiuQASorsAEqK9ABKivwASosEAEqLmABKi6QASouwAEqLvABKi8gASovUAEqL4ABKi+wASov4AEqMBABKjAwASo34AEqOAABKjgwASo4UAEqOIABKjiQASo4oAEqOLABKjjAASo44AEqOQABKjkQASo5IAEqOUABKjlQASo6YAEqOnABKjqQASpCQAEqQmABKkKAASpCoAEqQtABKkLgASpC8AEqQwABKkMQASpDMAEqQ1ABKkNgASpDcAEqQ5ABKkOgASpLUAEqS3ABKkugASpLwAEqS/ABKkwAASpMEAEqTCABKkwwASpMUAEqTHABKkyAASpMkAEqTLABKkzAASpN0AEqTiABKk5QASpOcAEqT4ABKlAQASpQQAEqUHABKlCQASpRwAEqWXABKlmQASpZsAEqWdABKloAASpaEAEqWiABKlowASpaQAEqWmABKlqAASpakAEqWqABKlrAASpa0AEqYoABKmKgASpi0AEqYvABKmMgASpjMAEqY0ABKmNQASpjYAEqY4ABKmOgASpjsAEqY8ABKmPgASpj8AEqZQABKmUQASplMAEqbOABKm0AASptIAEqbUABKm1wASptgAEqbZABKm2gASptsAEqbdABKm3wASpuAAEqbhABKm4wASpuQAEqdfABKnYQASp2QAEqdmABKnaQASp2oAEqdrABKnbAASp20AEqdvABKncQASp3IAEqdzABKndQASp3YAEqePABKnkAASp5EAEqeTABKoDgASqBAAEqgSABKoFAASqBcAEqgYABKoGQASqBoAEqgbABKoHQASqB8AEqggABKoIQASqCMAEqgkABKonwASqKEAEqikABKopgASqKkAEqiqABKoqwASqKwAEqitABKorwASqLEAEqiyABKoswASqLUAEqi2ABKo1AASqO0AEqj2ABKo+QASqPwAEqkFABKpCAASqQsAEqkNABKpIAASqbMAEqnWABKp9gASqhYAEqoYABKqGgASqhwAEqoeABKqIQASqiIAEqojABKqJgASqicAEqopABKqKgASqiwAEqovABKqMAASqjEAEqo0ABKqNQASqjoAEqpTABKqXAASql4AEqpgABKqaQASqmwAEqpvABKqcQASqroAEqreABKrBQASqykAEqssABKrLgASqzAAEqsyABKrNAASqzYAEqs3ABKrOgASq1MAEqt0ABKrdgASq3gAEqt6ABKrfAASq34AEquAABKrggASq4QAEqulABKrqAASq6sAEquuABKrsQASq7QAEqu3ABKrugASq70AEqu/ABKsOgASrDwAEqw+ABKsQAASrEMAEqxEABKsRQASrEYAEqxHABKsSQASrEsAEqxMABKsTQASrE8AEqxQABKsywASrM0AEqzPABKs0QASrNQAEqzVABKs1gASrNcAEqzYABKs2gASrNwAEqzdABKs3gASrOAAEqzhABKtXAASrV4AEq1hABKtYwASrWYAEq1nABKtaAASrWkAEq1qABKtbAASrW4AEq1vABKtcAASrXIAEq1zABKtjAASrY0AEq2OABKtkAASrgsAEq4NABKuDwASrhEAEq4UABKuFQASrhYAEq4XABKuGAASrhoAEq4cABKuHQASrh4AEq4gABKuIQASrpwAEq6eABKuoAASrqIAEq6lABKupgASrqcAEq6oABKuqQASrqsAEq6tABKurgASrq8AEq6xABKusgASry0AEq8vABKvMQASrzMAEq82ABKvNwASrzgAEq85ABKvOgASrzwAEq8+ABKvPwASr0AAEq9CABKvQwASr74AEq/AABKvwgASr8QAEq/HABKvyAASr8kAEq/KABKvywASr80AEq/PABKv0AASr9EAEq/TABKv1AASsE8AErBRABKwUwASsFUAErBYABKwWQASsFoAErBbABKwXAASsF4AErBgABKwYQASsGIAErBkABKwZQASsK4AErDSABKw+QASsR0AErEgABKxIgASsSQAErEmABKxKAASsSoAErErABKxLgASsUcAErFkABKxZgASsWgAErFqABKxbAASsW4AErFwABKxcgASsY8AErGSABKxlQASsZgAErGbABKxngASsaEAErGkABKxpgASsiEAErIjABKyJQASsicAErIqABKyKwASsiwAErItABKyLgASsjAAErIyABKyMwASsjQAErI2ABKyNwASsrIAErK0ABKytgASsrgAErK7ABKyvAASsr0AErK+ABKyvwASssEAErLDABKyxAASssUAErLHABKyyAASs0MAErNFABKzRwASs0kAErNMABKzTQASs04AErNPABKzUAASs1IAErNUABKzVQASs1YAErNYABKzWQASs9QAErPWABKz2QASs9sAErPeABKz3wASs+AAErPhABKz4gASs+QAErPmABKz5wASs+gAErPqABKz6wAStGYAErRoABK0agAStGwAErRvABK0cAAStHEAErRyABK0cwAStHUAErR3ABK0eAAStHkAErR7ABK0fAAStPcAErT5ABK0+wAStP0AErUAABK1AQAStQIAErUDABK1BAAStQYAErUIABK1CQAStQoAErUMABK1DQAStYgAErWKABK1jAAStY4AErWRABK1kgAStZMAErWUABK1lQAStZcAErWZABK1mgAStZsAErWdABK1ngAStjEAErZUABK2dAAStpQAEraWABK2mAAStpoAEracABK2nwAStqAAErahABK2pAAStqUAEranABK2qAAStqoAEratABK2rgAStq8AErayABK2swAStrgAErbRABK22gASttwAErbeABK25wAStuoAErbtABK27wAStzgAErdcABK3gwASt6cAEreqABK3rAASt64AErewABK3sgASt7QAEre1ABK3uAASt9EAErfyABK39AASt/YAErf4ABK3+gASt/wAErf+ABK4AAASuAIAErgjABK4JgASuCkAErgsABK4LwASuDIAErg1ABK4OAASuDsAErg9ABK4uAASuLoAEri8ABK4vgASuMEAErjCABK4wwASuMQAErjFABK4xwASuMkAErjKABK4ywASuM0AErjOABK5SQASuUsAErlNABK5TwASuVIAErlTABK5VAASuVUAErlWABK5WAASuVoAErlbABK5XAASuV4AErlfABK52gASudwAErnfABK54QASueQAErnlABK55gASuecAErnoABK56gASuewAErntABK57gASufAAErnxABK6CgASugsAEroMABK6DgASuokAErqLABK6jQASuo8AErqSABK6kwASupQAErqVABK6lgASupgAErqaABK6mwASupwAErqeABK6nwASuxoAErscABK7HgASuyAAErsjABK7JAASuyUAErsmABK7JwASuykAErsrABK7LAASuy0AErsvABK7MAASu6sAErutABK7rwASu7EAEru0ABK7tQASu7YAEru3ABK7uAASu7oAEru8ABK7vQASu74AErvAABK7wQASvDwAErw+ABK8QAASvEIAErxFABK8RgASvEcAErxIABK8SQASvEsAErxNABK8TgASvE8AErxRABK8UgASvM0AErzPABK80QASvNMAErzWABK81wASvNgAErzZABK82gASvNwAErzeABK83wASvOAAErziABK84wASvSwAEr1QABK9dwASvZsAEr2eABK9oAASvaIAEr2kABK9pgASvagAEr2pABK9rAASvcUAEr3iABK95AASveYAEr3oABK96gASvewAEr3uABK98AASvg0AEr4QABK+EwASvhYAEr4ZABK+HAASvh8AEr4iABK+JAASvp8AEr6hABK+owASvqUAEr6oABK+qQASvqoAEr6rABK+rAASvq4AEr6wABK+sQASvrIAEr60ABK+tQASvzAAEr8yABK/NAASvzYAEr85ABK/OgASvzsAEr88ABK/PQASvz8AEr9BABK/QgASv0MAEr9FABK/RgASv8EAEr/DABK/xQASv8cAEr/KABK/ywASv8wAEr/NABK/zgASv9AAEr/SABK/0wASv9QAEr/WABK/1wASwFIAEsBUABLAVwASwFkAEsBcABLAXQASwF4AEsBfABLAYAASwGIAEsBkABLAZQASwGYAEsBoABLAaQASwOQAEsDmABLA6AASwOoAEsDtABLA7gASwO8AEsDwABLA8QASwPMAEsD1ABLA9gASwPcAEsD5ABLA+gASwXUAEsF3ABLBeQASwXsAEsF+ABLBfwASwYAAEsGBABLBggASwYQAEsGGABLBhwASwYgAEsGKABLBiwASwgYAEsIIABLCCgASwgwAEsIPABLCEAASwhEAEsISABLCEwASwhUAEsIXABLCGAASwhkAEsIbABLCHAASwi0AEsIuABLCMAASwrMAEsLXABLC+wASwx4AEsNFABLDZQASw4wAEsOzABLD0wASw/cAEsQbABLEHQASxCAAEsQiABLEJAASxCYAEsQpABLELAASxC4AEsQwABLEMwASxDUAEsQ3ABLEOgASxD0AEsQ+ABLEQwASxFwAEsRhABLEYwASxGgAEsRrABLEbQASxLYAEsTaABLFAQASxSUAEsUoABLFKgASxSwAEsUuABLFMAASxTIAEsUzABLFNgASxU8AEsV0ABLFdgASxXgAEsV6ABLFfAASxX4AEsWAABLFggASxYQAEsWGABLFqwASxa4AEsWxABLFtAASxbcAEsW6ABLFvQASxcAAEsXDABLFxgASxcgAEsZDABLGRQASxkgAEsZKABLGTQASxk4AEsZPABLGUAASxlEAEsZTABLGVQASxlYAEsZXABLGWQASxloAEsZrABLGbAASxm4AEsbpABLG6wASxu0AEsbvABLG8gASxvMAEsb0ABLG9QASxvYAEsb4ABLG+gASxvsAEsb8ABLG/gASxv8AEsd6ABLHfAASx38AEseBABLHhAASx4UAEseGABLHhwASx4gAEseKABLHjAASx40AEseOABLHkAASx5EAEseiABLHpwASx6oAEsesABLHvQASx8YAEsfJABLHzAASx84AEsfqABLH/AASyHcAEsh5ABLIewASyH0AEsiAABLIgQASyIIAEsiDABLIhAASyIYAEsiIABLIiQASyIoAEsiMABLIjQASyQgAEskKABLJDQASyQ8AEskSABLJEwASyRQAEskVABLJFgASyRgAEskaABLJGwASyRwAEskeABLJHwASyTAAEskxABLJMwASya4AEsmwABLJsgASybQAEsm3ABLJuAASybkAEsm6ABLJuwASyb0AEsm/ABLJwAASycEAEsnDABLJxAASyj8AEspBABLKRAASykYAEspJABLKSgASyksAEspMABLKTQASyk8AEspRABLKUgASylMAEspVABLKVgASym8AEspwABLKcQASynMAEsruABLK8AASyvIAEsr0ABLK9wASyvgAEsr5ABLK+gASyvsAEsr9ABLK/wASywAAEssBABLLAwASywQAEst/ABLLgQASy4QAEsuGABLLiQASy4oAEsuLABLLjAASy40AEsuPABLLkQASy5IAEsuTABLLlQASy5YAEsuoABLLwQASy+oAEsvtABLL8AASy/MAEsv2ABLL+QASy/wAEsv/ABLMAgASzAUAEswIABLMMQASzDQAEsw3ABLMOgASzD0AEsxAABLMQwASzEYAEsxJABLMTAASzE8AEsxRABLMYAASzHwAEsySABLMqQASzMAAEszXABLM5QASzQEAEs0TABLNpgASzckAEs3pABLOCQASzgsAEs4NABLODwASzhEAEs4UABLOFQASzhYAEs4ZABLOGgASzhwAEs4dABLOHwASziIAEs4jABLOJAASzicAEs4oABLOLQASzkYAEs5PABLOUQASzlMAEs5cABLOXwASzmIAEs5kABLOrQASztEAEs74ABLPHAASzx8AEs8hABLPIwASzyUAEs8nABLPKQASzyoAEs8tABLPRgASz2cAEs9pABLPawASz20AEs9vABLPcQASz3MAEs91ABLPdwASz5gAEs+bABLPngASz6EAEs+kABLPpwASz6oAEs+tABLPsAASz7IAEtAtABLQLwAS0DEAEtAzABLQNgAS0DcAEtA4ABLQOQAS0DoAEtA8ABLQPgAS0D8AEtBAABLQQgAS0EMAEtC+ABLQwAAS0MIAEtDEABLQxwAS0MgAEtDJABLQygAS0MsAEtDNABLQzwAS0NAAEtDRABLQ0wAS0NQAEtFPABLRUQAS0VQAEtFWABLRWQAS0VoAEtFbABLRXAAS0V0AEtFfABLRYQAS0WIAEtFjABLRZQAS0WYAEtF/ABLRgAAS0YEAEtGDABLR/gAS0gAAEtICABLSBAAS0gcAEtIIABLSCQAS0goAEtILABLSDQAS0g8AEtIQABLSEQAS0hMAEtIUABLSjwAS0pEAEtKTABLSlQAS0pgAEtKZABLSmgAS0psAEtKcABLSngAS0qAAEtKhABLSogAS0qQAEtKlABLTIAAS0yIAEtMkABLTJgAS0ykAEtMqABLTKwAS0ywAEtMtABLTLwAS0zEAEtMyABLTMwAS0zUAEtM2ABLTsQAS07MAEtO1ABLTtwAS07oAEtO7ABLTvAAS070AEtO+ABLTwAAS08IAEtPDABLTxAAS08YAEtPHABLUQgAS1EQAEtRGABLUSAAS1EsAEtRMABLUTQAS1E4AEtRPABLUUQAS1FMAEtRUABLUVQAS1FcAEtRYABLUoQAS1MUAEtTsABLVEAAS1RMAEtUVABLVFwAS1RkAEtUbABLVHQAS1R4AEtUhABLVOgAS1VcAEtVZABLVWwAS1V0AEtVfABLVYQAS1WMAEtVlABLVggAS1YUAEtWIABLViwAS1Y4AEtWRABLVlAAS1ZcAEtWZABLWFAAS1hYAEtYYABLWGgAS1h0AEtYeABLWHwAS1iAAEtYhABLWIwAS1iUAEtYmABLWJwAS1ikAEtYqABLWpQAS1qcAEtapABLWqwAS1q4AEtavABLWsAAS1rEAEtayABLWtAAS1rYAEta3ABLWuAAS1roAEta7ABLXNgAS1zgAEtc6ABLXPAAS1z8AEtdAABLXQQAS10IAEtdDABLXRQAS10cAEtdIABLXSQAS10sAEtdMABLXxwAS18kAEtfMABLXzgAS19EAEtfSABLX0wAS19QAEtfVABLX1wAS19kAEtfaABLX2wAS190AEtfeABLYWQAS2FsAEthdABLYXwAS2GIAEthjABLYZAAS2GUAEthmABLYaAAS2GoAEthrABLYbAAS2G4AEthvABLY6gAS2OwAEtjuABLY8AAS2PMAEtj0ABLY9QAS2PYAEtj3ABLY+QAS2PsAEtj8ABLY/QAS2P8AEtkAABLZewAS2X0AEtl/ABLZgQAS2YQAEtmFABLZhgAS2YcAEtmIABLZigAS2YwAEtmNABLZjgAS2ZAAEtmRABLaJAAS2kcAEtpnABLahwAS2okAEtqLABLajQAS2o8AEtqSABLakwAS2pQAEtqXABLamAAS2poAEtqbABLanQAS2qAAEtqhABLaogAS2qUAEtqmABLarwAS2sgAEtrRABLa0wAS2tUAEtreABLa4QAS2uQAEtrmABLbLwAS21MAEtt6ABLbngAS26EAEtujABLbpQAS26cAEtupABLbqwAS26wAEtuvABLbyAAS2+kAEtvrABLb7QAS2+8AEtvxABLb8wAS2/UAEtv3ABLb+QAS3BoAEtwdABLcIAAS3CMAEtwmABLcKQAS3CwAEtwvABLcMgAS3DQAEtyvABLcsQAS3LMAEty1ABLcuAAS3LkAEty6ABLcuwAS3LwAEty+ABLcwAAS3MEAEtzCABLcxAAS3MUAEt1AABLdQgAS3UQAEt1GABLdSQAS3UoAEt1LABLdTAAS3U0AEt1PABLdUQAS3VIAEt1TABLdVQAS3VYAEt3RABLd0wAS3dYAEt3YABLd2wAS3dwAEt3dABLd3gAS3d8AEt3hABLd4wAS3eQAEt3lABLd5wAS3egAEt4BABLeAgAS3gMAEt4FABLegAAS3oIAEt6EABLehgAS3okAEt6KABLeiwAS3owAEt6NABLejwAS3pEAEt6SABLekwAS3pUAEt6WABLfEQAS3xMAEt8VABLfFwAS3xoAEt8bABLfHAAS3x0AEt8eABLfIAAS3yIAEt8jABLfJAAS3yYAEt8nABLfogAS36QAEt+mABLfqAAS36sAEt+sABLfrQAS364AEt+vABLfsQAS37MAEt+0ABLftQAS37cAEt+4ABLgMwAS4DUAEuA3ABLgOQAS4DwAEuA9ABLgPgAS4D8AEuBAABLgQgAS4EQAEuBFABLgRgAS4EgAEuBJABLgxAAS4MYAEuDIABLgygAS4M0AEuDOABLgzwAS4NAAEuDRABLg0wAS4NUAEuDWABLg1wAS4NkAEuDaABLhIwAS4UcAEuFuABLhkgAS4ZUAEuGXABLhmQAS4ZsAEuGdABLhnwAS4aAAEuGjABLhvAAS4dkAEuHbABLh3QAS4d8AEuHhABLh4wAS4eUAEuHnABLiBAAS4gcAEuIKABLiDQAS4hAAEuITABLiFgAS4hkAEuIbABLilgAS4pgAEuKaABLinAAS4p8AEuKgABLioQAS4qIAEuKjABLipQAS4qcAEuKoABLiqQAS4qsAEuKsABLjJwAS4ykAEuMrABLjLQAS4zAAEuMxABLjMgAS4zMAEuM0ABLjNgAS4zgAEuM5ABLjOgAS4zwAEuM9ABLjuAAS47oAEuO8ABLjvgAS48EAEuPCABLjwwAS48QAEuPFABLjxwAS48kAEuPKABLjywAS480AEuPOABLkSQAS5EsAEuRNABLkTwAS5FIAEuRTABLkVAAS5FUAEuRWABLkWAAS5FoAEuRbABLkXAAS5F4AEuRfABLk2gAS5NwAEuTeABLk4AAS5OMAEuTkABLk5QAS5OYAEuTnABLk6QAS5OsAEuTsABLk7QAS5O8AEuTwABLlawAS5W0AEuVwABLlcgAS5XUAEuV2ABLldwAS5XgAEuV5ABLlewAS5X0AEuV+ABLlfwAS5YEAEuWCABLlmgAS5hUAEuYXABLmGQAS5hsAEuYeABLmHwAS5iAAEuYhABLmIgAS5iQAEuYmABLmJwAS5igAEuYqABLmKwAS5r4AEubhABLnAQAS5yEAEucjABLnJQAS5ycAEucpABLnLAAS5y0AEucuABLnMQAS5zIAEuc0ABLnNQAS5zcAEuc6ABLnOwAS5zwAEuc/ABLnQAAS50UAEudeABLnZwAS52kAEudrABLndAAS53cAEud6ABLnfAAS58UAEufpABLoEAAS6DQAEug3ABLoOQAS6DsAEug9ABLoPwAS6EEAEuhCABLoRQAS6F4AEuh/ABLogQAS6IMAEuiFABLohwAS6IkAEuiLABLojQAS6I8AEuiwABLoswAS6LYAEui5ABLovAAS6L8AEujCABLoxQAS6MgAEujKABLpRQAS6UcAEulJABLpSwAS6U4AEulPABLpUAAS6VEAEulSABLpVAAS6VYAEulXABLpWAAS6VoAEulbABLp1gAS6dgAEunaABLp3AAS6d8AEungABLp4QAS6eIAEunjABLp5QAS6ecAEunoABLp6QAS6esAEunsABLqZwAS6mkAEupsABLqbgAS6nEAEupyABLqcwAS6nQAEup1ABLqdwAS6nkAEup6ABLqewAS6n0AEup+ABLqlwAS6pgAEuqZABLqmwAS6xYAEusYABLrGgAS6xwAEusfABLrIAAS6yEAEusiABLrIwAS6yUAEusnABLrKAAS6ykAEusrABLrLAAS66cAEuupABLrqwAS660AEuuwABLrsQAS67IAEuuzABLrtAAS67YAEuu4ABLruQAS67oAEuu8ABLrvQAS7DgAEuw6ABLsPAAS7D4AEuxBABLsQgAS7EMAEuxEABLsRQAS7EcAEuxJABLsSgAS7EsAEuxNABLsTgAS7MkAEuzLABLszQAS7M8AEuzSABLs0wAS7NQAEuzVABLs1gAS7NgAEuzaABLs2wAS7NwAEuzeABLs3wAS7VoAEu1cABLtXgAS7WAAEu1jABLtZAAS7WUAEu1mABLtZwAS7WkAEu1rABLtbAAS7W0AEu1vABLtcAAS7bkAEu3dABLuBAAS7igAEu4rABLuLQAS7i8AEu4xABLuMwAS7jUAEu42ABLuOQAS7lIAEu5vABLucQAS7nMAEu51ABLudwAS7nkAEu57ABLufQAS7poAEu6dABLuoAAS7qMAEu6mABLuqQAS7qwAEu6vABLusQAS7ywAEu8uABLvMAAS7zIAEu81ABLvNgAS7zcAEu84ABLvOQAS7zsAEu89ABLvPgAS7z8AEu9BABLvQgAS770AEu+/ABLvwQAS78MAEu/GABLvxwAS78gAEu/JABLvygAS78wAEu/OABLvzwAS79AAEu/SABLv0wAS8E4AEvBQABLwUgAS8FQAEvBXABLwWAAS8FkAEvBaABLwWwAS8F0AEvBfABLwYAAS8GEAEvBjABLwZAAS8N8AEvDhABLw4wAS8OUAEvDoABLw6QAS8OoAEvDrABLw7AAS8O4AEvDwABLw8QAS8PIAEvD0ABLw9QAS8XAAEvFyABLxdAAS8XYAEvF5ABLxegAS8XsAEvF8ABLxfQAS8X8AEvGBABLxggAS8YMAEvGFABLxhgAS8gEAEvIDABLyBgAS8ggAEvILABLyDAAS8g0AEvIOABLyDwAS8hEAEvITABLyFAAS8hUAEvIXABLyGAAS8icAEvKiABLypAAS8qYAEvKoABLyqwAS8qwAEvKtABLyrgAS8q8AEvKxABLyswAS8rQAEvK1ABLytwAS8rgAEvNLABLzbgAS844AEvOuABLzsAAS87IAEvO0ABLztgAS87kAEvO6ABLzuwAS874AEvO/ABLzwQAS88IAEvPEABLzxwAS88gAEvPJABLzzAAS880AEvPWABLz7wAS8/gAEvP6ABLz/AAS9AUAEvQIABL0CwAS9A0AEvRWABL0egAS9KEAEvTFABL0yAAS9MoAEvTMABL0zgAS9NAAEvTSABL00wAS9NYAEvTvABL1EAAS9RIAEvUUABL1FgAS9RgAEvUaABL1HAAS9R4AEvUgABL1QQAS9UQAEvVHABL1SgAS9U0AEvVQABL1UwAS9VYAEvVZABL1WwAS9dYAEvXYABL12gAS9dwAEvXfABL14AAS9eEAEvXiABL14wAS9eUAEvXnABL16AAS9ekAEvXrABL17AAS9mcAEvZpABL2awAS9m0AEvZwABL2cQAS9nIAEvZzABL2dAAS9nYAEvZ4ABL2eQAS9noAEvZ8ABL2fQAS9vgAEvb6ABL2/QAS9v8AEvcCABL3AwAS9wQAEvcFABL3BgAS9wgAEvcKABL3CwAS9wwAEvcOABL3DwAS9ygAEvcpABL3KgAS9ywAEvenABL3qQAS96sAEvetABL3sAAS97EAEveyABL3swAS97QAEve2ABL3uAAS97kAEve6ABL3vAAS970AEvg4ABL4OgAS+DwAEvg+ABL4QQAS+EIAEvhDABL4RAAS+EUAEvhHABL4SQAS+EoAEvhLABL4TQAS+E4AEvjJABL4ywAS+M0AEvjPABL40gAS+NMAEvjUABL41QAS+NYAEvjYABL42gAS+NsAEvjcABL43gAS+N8AEvlaABL5XAAS+V4AEvlgABL5YwAS+WQAEvllABL5ZgAS+WcAEvlpABL5awAS+WwAEvltABL5bwAS+XAAEvnrABL57QAS+e8AEvnxABL59AAS+fUAEvn2ABL59wAS+fgAEvn6ABL5/AAS+f0AEvn+ABL6AAAS+gEAEvpKABL6bgAS+pUAEvq5ABL6vAAS+r4AEvrAABL6wgAS+sQAEvrGABL6xwAS+soAEvrjABL7AAAS+wIAEvsEABL7BgAS+wgAEvsKABL7DAAS+w4AEvsrABL7LgAS+zEAEvs0ABL7NwAS+zoAEvs9ABL7QAAS+0IAEvu9ABL7vwAS+8EAEvvDABL7xgAS+8cAEvvIABL7yQAS+8oAEvvMABL7zgAS+88AEvvQABL70gAS+9MAEvxOABL8UAAS/FIAEvxUABL8VwAS/FgAEvxZABL8WgAS/FsAEvxdABL8XwAS/GAAEvxhABL8YwAS/GQAEvzfABL84QAS/OMAEvzlABL86AAS/OkAEvzqABL86wAS/OwAEvzuABL88AAS/PEAEvzyABL89AAS/PUAEv1wABL9cgAS/XUAEv13ABL9egAS/XsAEv18ABL9fQAS/X4AEv2AABL9ggAS/YMAEv2EABL9hgAS/YcAEv4CABL+BAAS/gYAEv4IABL+CwAS/gwAEv4NABL+DgAS/g8AEv4RABL+EwAS/hQAEv4VABL+FwAS/hgAEv6TABL+lQAS/pcAEv6ZABL+nAAS/p0AEv6eABL+nwAS/qAAEv6iABL+pAAS/qUAEv6mABL+qAAS/qkAEv8kABL/JgAS/ygAEv8qABL/LQAS/y4AEv8vABL/MAAS/zEAEv8zABL/NQAS/zYAEv83ABL/OQAS/zoAEv/NABL/8AATABAAEwAwABMAMgATADQAEwA2ABMAOAATADsAEwA8ABMAPQATAEAAEwBBABMAQwATAEQAEwBGABMASQATAEoAEwBLABMATgATAE8AEwBUABMAbQATAHYAEwB4ABMAegATAIMAEwCGABMAiQATAIsAEwDUABMA+AATAR8AEwFDABMBRgATAUgAEwFKABMBTAATAU4AEwFQABMBUQATAVQAEwFtABMBjgATAZAAEwGSABMBlAATAZYAEwGYABMBmgATAZwAEwGeABMBvwATAcIAEwHFABMByAATAcsAEwHOABMB0QATAdQAEwHXABMB2QATAlQAEwJWABMCWAATAloAEwJdABMCXgATAl8AEwJgABMCYQATAmMAEwJlABMCZgATAmcAEwJpABMCagATAuUAEwLnABMC6QATAusAEwLuABMC7wATAvAAEwLxABMC8gATAvQAEwL2ABMC9wATAvgAEwL6ABMC+wATA3YAEwN4ABMDewATA30AEwOAABMDgQATA4IAEwODABMDhAATA4YAEwOIABMDiQATA4oAEwOMABMDjQATA6YAEwOnABMDqAATA6oAEwQlABMEJwATBCkAEwQrABMELgATBC8AEwQwABMEMQATBDIAEwQ0ABMENgATBDcAEwQ4ABMEOgATBDsAEwS2ABMEuAATBLoAEwS8ABMEvwATBMAAEwTBABMEwgATBMMAEwTFABMExwATBMgAEwTJABMEywATBMwAEwVHABMFSQATBUsAEwVNABMFUAATBVEAEwVSABMFUwATBVQAEwVWABMFWAATBVkAEwVaABMFXAATBV0AEwXYABMF2gATBdwAEwXeABMF4QATBeIAEwXjABMF5AATBeUAEwXnABMF6QATBeoAEwXrABMF7QATBe4AEwZpABMGawATBm0AEwZvABMGcgATBnMAEwZ0ABMGdQATBnYAEwZ4ABMGegATBnsAEwZ8ABMGfgATBn8AEwbIABMG7AATBxMAEwc3ABMHOgATBzwAEwc+ABMHQAATB0IAEwdEABMHRQATB0gAEwdhABMHfgATB4AAEweCABMHhAATB4YAEweIABMHigATB4wAEwepABMHrAATB68AEweyABMHtQATB7gAEwe7ABMHvgATB8AAEwg7ABMIPQATCD8AEwhBABMIRAATCEUAEwhGABMIRwATCEgAEwhKABMITAATCE0AEwhOABMIUAATCFEAEwjMABMIzgATCNAAEwjSABMI1QATCNYAEwjXABMI2AATCNkAEwjbABMI3QATCN4AEwjfABMI4QATCOIAEwldABMJXwATCWEAEwljABMJZgATCWcAEwloABMJaQATCWoAEwlsABMJbgATCW8AEwlwABMJcgATCXMAEwnuABMJ8AATCfIAEwn0ABMJ9wATCfgAEwn5ABMJ+gATCfsAEwn9ABMJ/wATCgAAEwoBABMKAwATCgQAEwp/ABMKgQATCoMAEwqFABMKiAATCokAEwqKABMKiwATCowAEwqOABMKkAATCpEAEwqSABMKlAATCpUAEwsQABMLEgATCxUAEwsXABMLGgATCxsAEwscABMLHQATCx4AEwsgABMLIgATCyMAEwskABMLJgATCycAEws/ABMLugATC7wAEwu+ABMLwAATC8MAEwvEABMLxQATC8YAEwvHABMLyQATC8sAEwvMABMLzQATC88AEwvQABMMYwATDIYAEwymABMMxgATDMgAEwzKABMMzAATDM4AEwzRABMM0gATDNMAEwzWABMM1wATDNkAEwzaABMM3AATDN8AEwzgABMM4QATDOQAEwzlABMM6gATDQMAEw0MABMNDgATDRAAEw0ZABMNHAATDR8AEw0hABMNagATDY4AEw21ABMN2QATDdwAEw3eABMN4AATDeIAEw3kABMN5gATDecAEw3qABMOAwATDiQAEw4mABMOKAATDioAEw4sABMOLgATDjAAEw4yABMONAATDlUAEw5YABMOWwATDl4AEw5hABMOZAATDmcAEw5qABMObQATDm8AEw7qABMO7AATDu4AEw7wABMO8wATDvQAEw71ABMO9gATDvcAEw75ABMO+wATDvwAEw79ABMO/wATDwAAEw97ABMPfQATD38AEw+BABMPhAATD4UAEw+GABMPhwATD4gAEw+KABMPjAATD40AEw+OABMPkAATD5EAExAMABMQDgATEBEAExATABMQFgATEBcAExAYABMQGQATEBoAExAcABMQHgATEB8AExAgABMQIgATECMAExA8ABMQPQATED4AExBAABMQuwATEL0AExC/ABMQwQATEMQAExDFABMQxgATEMcAExDIABMQygATEMwAExDNABMQzgATENAAExDRABMRTAATEU4AExFQABMRUgATEVUAExFWABMRVwATEVgAExFZABMRWwATEV0AExFeABMRXwATEWEAExFiABMR3QATEd8AExHhABMR4wATEeYAExHnABMR6AATEekAExHqABMR7AATEe4AExHvABMR8AATEfIAExHzABMSbgATEnAAExJyABMSdAATEncAExJ4ABMSeQATEnoAExJ7ABMSfQATEn8AExKAABMSgQATEoMAExKEABMS/wATEwEAExMDABMTBQATEwgAExMJABMTCgATEwsAExMMABMTDgATExAAExMRABMTEgATExQAExMVABMTXgATE4IAExOpABMTzQATE9AAExPSABMT1AATE9YAExPYABMT2gATE9sAExPeABMT9wATFBQAExQWABMUGAATFBoAExQcABMUHgATFCAAExQiABMUPwATFEIAExRFABMUSAATFEsAExROABMUUQATFFQAExRWABMU0QATFNMAExTVABMU1wATFNoAExTbABMU3AATFN0AExTeABMU4AATFOIAExTjABMU5AATFOYAExTnABMVYgATFWQAExVmABMVaAATFWsAExVsABMVbQATFW4AExVvABMVcQATFXMAExV0ABMVdQATFXcAExV4ABMV8wATFfUAExX3ABMV+QATFfwAExX9ABMV/gATFf8AExYAABMWAgATFgQAExYFABMWBgATFggAExYJABMWhAATFoYAExaIABMWigATFo0AExaOABMWjwATFpAAExaRABMWkwATFpUAExaWABMWlwATFpkAExaaABMXFQATFxcAExcZABMXGwATFx4AExcfABMXIAATFyEAExciABMXJAATFyYAExcnABMXKAATFyoAExcrABMXpgATF6gAExeqABMXrAATF68AExewABMXsQATF7IAExezABMXtQATF7cAExe4ABMXuQATF7sAExe8ABMYNwATGDkAExg7ABMYPQATGEAAExhBABMYQgATGEMAExhEABMYRgATGEgAExhJABMYSgATGEwAExhNABMY4AATGQMAExkjABMZQwATGUUAExlHABMZSQATGUsAExlOABMZTwATGVAAExlTABMZVAATGVYAExlXABMZWQATGVwAExldABMZXgATGWEAExliABMZZwATGYAAExmJABMZiwATGY0AExmWABMZmQATGZwAExmeABMZ5wATGgsAExoyABMaVgATGlkAExpbABMaXQATGl8AExphABMaYwATGmQAExpnABMagAATGqEAExqjABMapQATGqcAExqpABMaqwATGq0AExqvABMasQATGtIAExrVABMa2AATGtsAExreABMa4QATGuQAExrnABMa6gATGuwAExtnABMbaQATG2sAExttABMbcAATG3EAExtyABMbcwATG3QAExt2ABMbeAATG3kAExt6ABMbfAATG30AExv4ABMb+gATG/wAExv+ABMcAQATHAIAExwDABMcBAATHAUAExwHABMcCQATHAoAExwLABMcDQATHA4AExyJABMciwATHI4AExyQABMckwATHJQAExyVABMclgATHJcAExyZABMcmwATHJwAExydABMcnwATHKAAExy5ABMcugATHLsAExy9ABMdOAATHToAEx08ABMdPgATHUEAEx1CABMdQwATHUQAEx1FABMdRwATHUkAEx1KABMdSwATHU0AEx1OABMdyQATHcsAEx3NABMdzwATHdIAEx3TABMd1AATHdUAEx3WABMd2AATHdoAEx3bABMd3AATHd4AEx3fABMeWgATHlwAEx5eABMeYAATHmMAEx5kABMeZQATHmYAEx5nABMeaQATHmsAEx5sABMebQATHm8AEx5wABMe6wATHu0AEx7vABMe8QATHvQAEx71ABMe9gATHvcAEx74ABMe+gATHvwAEx79ABMe/gATHwAAEx8BABMffAATH34AEx+AABMfggATH4UAEx+GABMfhwATH4gAEx+JABMfiwATH40AEx+OABMfjwATH5EAEx+SABMf2wATH/8AEyAmABMgSgATIE0AEyBPABMgUQATIFMAEyBVABMgVwATIFgAEyBbABMgdAATIJEAEyCTABMglQATIJcAEyCZABMgmwATIJ0AEyCfABMgvAATIL8AEyDCABMgxQATIMgAEyDLABMgzgATINEAEyDTABMhTgATIVAAEyFSABMhVAATIVcAEyFYABMhWQATIVoAEyFbABMhXQATIV8AEyFgABMhYQATIWMAEyFkABMh3wATIeEAEyHjABMh5QATIegAEyHpABMh6gATIesAEyHsABMh7gATIfAAEyHxABMh8gATIfQAEyH1ABMicAATInIAEyJ0ABMidgATInkAEyJ6ABMiewATInwAEyJ9ABMifwATIoEAEyKCABMigwATIoUAEyKGABMjAQATIwMAEyMFABMjBwATIwoAEyMLABMjDAATIw0AEyMOABMjEAATIxIAEyMTABMjFAATIxYAEyMXABMjkgATI5QAEyOWABMjmAATI5sAEyOcABMjnQATI54AEyOfABMjoQATI6MAEyOkABMjpQATI6cAEyOoABMkIwATJCUAEyQnABMkKQATJCwAEyQtABMkLgATJC8AEyQwABMkMgATJDQAEyQ1ABMkNgATJDgAEyQ5ABMktAATJLYAEyS4ABMkugATJL0AEyS+ABMkvwATJMAAEyTBABMkwwATJMUAEyTGABMkxwATJMkAEyTKABMlXQATJYAAEyWgABMlwAATJcIAEyXEABMlxgATJcgAEyXLABMlzAATJc0AEyXQABMl0QATJdMAEyXUABMl1gATJdkAEyXaABMl2wATJd4AEyXfABMl5AATJf0AEyYGABMmCAATJgoAEyYTABMmFgATJhkAEyYbABMmZAATJogAEyavABMm0wATJtYAEybYABMm2gATJtwAEybeABMm4AATJuEAEybkABMm/QATJx4AEycgABMnIgATJyQAEycmABMnKAATJyoAEycsABMnLgATJ08AEydSABMnVQATJ1gAEydbABMnXgATJ2EAEydkABMnZwATJ2kAEyfkABMn5gATJ+gAEyfqABMn7QATJ+4AEyfvABMn8AATJ/EAEyfzABMn9QATJ/YAEyf3ABMn+QATJ/oAEyh1ABModwATKHkAEyh7ABMofgATKH8AEyiAABMogQATKIIAEyiEABMohgATKIcAEyiIABMoigATKIsAEykGABMpCAATKQsAEykNABMpEAATKREAEykSABMpEwATKRQAEykWABMpGAATKRkAEykaABMpHAATKR0AEyk2ABMpNwATKTgAEyk6ABMptQATKbcAEym5ABMpuwATKb4AEym/ABMpwAATKcEAEynCABMpxAATKcYAEynHABMpyAATKcoAEynLABMqRgATKkgAEypKABMqTAATKk8AEypQABMqUQATKlIAEypTABMqVQATKlcAEypYABMqWQATKlsAEypcABMq1wATKtkAEyrbABMq3QATKuAAEyrhABMq4gATKuMAEyrkABMq5gATKugAEyrpABMq6gATKuwAEyrtABMraAATK2oAEytsABMrbgATK3EAEytyABMrcwATK3QAEyt1ABMrdwATK3kAEyt6ABMrewATK30AEyt+ABMr+QATK/sAEyv9ABMr/wATLAIAEywDABMsBAATLAUAEywGABMsCAATLAoAEywLABMsDAATLA4AEywPABMsWAATLHwAEyyjABMsxwATLMoAEyzMABMszgATLNAAEyzSABMs1AATLNUAEyzYABMs8QATLQ4AEy0QABMtEgATLRQAEy0WABMtGAATLRoAEy0cABMtOQATLTwAEy0/ABMtQgATLUUAEy1IABMtSwATLU4AEy1QABMtywATLc0AEy3PABMt0QATLdQAEy3VABMt1gATLdcAEy3YABMt2gATLdwAEy3dABMt3gATLeAAEy3hABMuXAATLl4AEy5gABMuYgATLmUAEy5mABMuZwATLmgAEy5pABMuawATLm0AEy5uABMubwATLnEAEy5yABMu7QATLu8AEy7xABMu8wATLvYAEy73ABMu+AATLvkAEy76ABMu/AATLv4AEy7/ABMvAAATLwIAEy8DABMvfgATL4AAEy+DABMvhQATL4gAEy+JABMvigATL4sAEy+MABMvjgATL5AAEy+RABMvkgATL5QAEy+VABMwEAATMBIAEzAUABMwFgATMBkAEzAaABMwGwATMBwAEzAdABMwHwATMCEAEzAiABMwIwATMCUAEzAmABMwoQATMKMAEzClABMwpwATMKoAEzCrABMwrAATMK0AEzCuABMwsAATMLIAEzCzABMwtAATMLYAEzC3ABMxMgATMTQAEzE2ABMxOAATMTsAEzE8ABMxPQATMT4AEzE/ABMxQQATMUMAEzFEABMxRQATMUcAEzFIABMx2wATMf4AEzIeABMyPgATMkAAEzJCABMyRAATMkYAEzJJABMySgATMksAEzJOABMyTwATMlEAEzJSABMyVAATMlcAEzJYABMyWQATMlwAEzJdABMyYgATMnsAEzKEABMyhgATMogAEzKRABMylAATMpcAEzKZABMy4gATMwYAEzMtABMzUQATM1QAEzNWABMzWAATM1oAEzNcABMzXgATM18AEzNiABMzewATM5wAEzOeABMzoAATM6IAEzOkABMzpgATM6gAEzOqABMzrAATM80AEzPQABMz0wATM9YAEzPZABMz3AATM98AEzPiABMz5QATM+cAEzRiABM0ZAATNGYAEzRoABM0awATNGwAEzRtABM0bgATNG8AEzRxABM0cwATNHQAEzR1ABM0dwATNHgAEzTzABM09QATNPcAEzT5ABM0/AATNP0AEzT+ABM0/wATNQAAEzUCABM1BAATNQUAEzUGABM1CAATNQkAEzWEABM1hgATNYkAEzWLABM1jgATNY8AEzWQABM1kQATNZIAEzWUABM1lgATNZcAEzWYABM1mgATNZsAEzW0ABM1tQATNbYAEzW4ABM2MwATNjUAEzY3ABM2OQATNjwAEzY9ABM2PgATNj8AEzZAABM2QgATNkQAEzZFABM2RgATNkgAEzZJABM2xAATNsYAEzbIABM2ygATNs0AEzbOABM2zwATNtAAEzbRABM20wATNtUAEzbWABM21wATNtkAEzbaABM3VQATN1cAEzdZABM3WwATN14AEzdfABM3YAATN2EAEzdiABM3ZAATN2YAEzdnABM3aAATN2oAEzdrABM35gATN+gAEzfqABM37AATN+8AEzfwABM38QATN/IAEzfzABM39QATN/cAEzf4ABM3+QATN/sAEzf8ABM4dwATOHkAEzh7ABM4fQATOIAAEziBABM4ggATOIMAEziEABM4hgATOIgAEziJABM4igATOIwAEziNABM41gATOPoAEzkhABM5RQATOUgAEzlKABM5TAATOU4AEzlQABM5UgATOVMAEzlWABM5bwATOYwAEzmOABM5kAATOZIAEzmUABM5lgATOZgAEzmaABM5twATOboAEzm9ABM5wAATOcMAEznGABM5yQATOcwAEznOABM6SQATOksAEzpNABM6TwATOlIAEzpTABM6VAATOlUAEzpWABM6WAATOloAEzpbABM6XAATOl4AEzpfABM62gATOtwAEzreABM64AATOuMAEzrkABM65QATOuYAEzrnABM66QATOusAEzrsABM67QATOu8AEzrwABM7awATO20AEztvABM7cQATO3QAEzt1ABM7dgATO3cAEzt4ABM7egATO3wAEzt9ABM7fgATO4AAEzuBABM7/AATO/4AEzwBABM8AwATPAYAEzwHABM8CAATPAkAEzwKABM8DAATPA4AEzwPABM8EAATPBIAEzwTABM8jgATPJAAEzySABM8lAATPJcAEzyYABM8mQATPJoAEzybABM8nQATPJ8AEzygABM8oQATPKMAEzykABM9HwATPSEAEz0jABM9JQATPSgAEz0pABM9KgATPSsAEz0sABM9LgATPTAAEz0xABM9MgATPTQAEz01ABM9sAATPbIAEz20ABM9tgATPbkAEz26ABM9uwATPbwAEz29ABM9vwATPcEAEz3CABM9wwATPcUAEz3GABM+WQATPnwAEz6cABM+vAATPr4AEz7AABM+wgATPsQAEz7HABM+yAATPskAEz7MABM+zQATPs8AEz7QABM+0gATPtUAEz7WABM+1wATPtoAEz7bABM+4AATPvkAEz8CABM/BAATPwYAEz8PABM/EgATPxUAEz8XABM/YAATP4QAEz+rABM/zwATP9IAEz/UABM/1gATP9gAEz/aABM/3AATP90AEz/gABM/+QATQBoAE0AcABNAHgATQCAAE0AiABNAJAATQCYAE0AoABNAKgATQEsAE0BOABNAUQATQFQAE0BXABNAWgATQF0AE0BgABNAYwATQGUAE0DgABNA4gATQOQAE0DmABNA6QATQOoAE0DrABNA7AATQO0AE0DvABNA8QATQPIAE0DzABNA9QATQPYAE0FxABNBcwATQXUAE0F3ABNBegATQXsAE0F8ABNBfQATQX4AE0GAABNBggATQYMAE0GEABNBhgATQYcAE0ICABNCBAATQgcAE0IJABNCDAATQg0AE0IOABNCDwATQhAAE0ISABNCFAATQhUAE0IWABNCGAATQhkAE0IyABNCMwATQjQAE0I2ABNCsQATQrMAE0K1ABNCtwATQroAE0K7ABNCvAATQr0AE0K+ABNCwAATQsIAE0LDABNCxAATQsYAE0LHABNDQgATQ0QAE0NGABNDSAATQ0sAE0NMABNDTQATQ04AE0NPABNDUQATQ1MAE0NUABNDVQATQ1cAE0NYABND0wATQ9UAE0PXABND2QATQ9wAE0PdABND3gATQ98AE0PgABND4gATQ+QAE0PlABND5gATQ+gAE0PpABNEZAATRGYAE0RoABNEagATRG0AE0RuABNEbwATRHAAE0RxABNEcwATRHUAE0R2ABNEdwATRHkAE0R6ABNE9QATRPcAE0T5ABNE+wATRP4AE0T/ABNFAAATRQEAE0UCABNFBAATRQYAE0UHABNFCAATRQoAE0ULABNFVAATRXgAE0WfABNFwwATRcYAE0XIABNFygATRcwAE0XOABNF0AATRdEAE0XUABNF7QATRgoAE0YMABNGDgATRhAAE0YSABNGFAATRhYAE0YYABNGNQATRjgAE0Y7ABNGPgATRkEAE0ZEABNGRwATRkoAE0ZMABNGxwATRskAE0bLABNGzQATRtAAE0bRABNG0gATRtMAE0bUABNG1gATRtgAE0bZABNG2gATRtwAE0bdABNHWAATR1oAE0dcABNHXgATR2EAE0diABNHYwATR2QAE0dlABNHZwATR2kAE0dqABNHawATR20AE0duABNH6QATR+sAE0ftABNH7wATR/IAE0fzABNH9AATR/UAE0f2ABNH+AATR/oAE0f7ABNH/AATR/4AE0f/ABNIegATSHwAE0h/ABNIgQATSIQAE0iFABNIhgATSIcAE0iIABNIigATSIwAE0iNABNIjgATSJAAE0iRABNJDAATSQ4AE0kQABNJEgATSRUAE0kWABNJFwATSRgAE0kZABNJGwATSR0AE0keABNJHwATSSEAE0kiABNJnQATSZ8AE0mhABNJowATSaYAE0mnABNJqAATSakAE0mqABNJrAATSa4AE0mvABNJsAATSbIAE0mzABNKLgATSjAAE0oyABNKNAATSjcAE0o4ABNKOQATSjoAE0o7ABNKPQATSj8AE0pAABNKQQATSkMAE0pEABNKVQATSlYAE0pYABNK2wATSv8AE0sjABNLRgATS20AE0uNABNLtAATS9sAE0v7ABNMHwATTEMAE0xFABNMSAATTEoAE0xMABNMTgATTFEAE0xUABNMVgATTFgAE0xbABNMXQATTF8AE0xiABNMZQATTGYAE0xrABNMhAATTIkAE0yLABNMkAATTJMAE0yVABNM3gATTQIAE00pABNNTQATTVAAE01SABNNVAATTVYAE01YABNNWgATTVsAE01eABNNdwATTZwAE02eABNNoAATTaIAE02kABNNpgATTagAE02qABNNrAATTa4AE03TABNN1gATTdkAE03cABNN3wATTeIAE03lABNN6AATTesAE03uABNN8AATTmsAE05tABNOcAATTnIAE051ABNOdgATTncAE054ABNOeQATTnsAE059ABNOfgATTn8AE06BABNOggATTpMAE06UABNOlgATTxEAE08TABNPFQATTxcAE08aABNPGwATTxwAE08dABNPHgATTyAAE08iABNPIwATTyQAE08mABNPJwATT6IAE0+kABNPpwATT6kAE0+sABNPrQATT64AE0+vABNPsAATT7IAE0+0ABNPtQATT7YAE0+4ABNPuQATT8oAE0/PABNP0gATT9QAE0/lABNP7gATT/EAE0/0ABNP9gATUAkAE1CEABNQhgATUIgAE1CKABNQjQATUI4AE1CPABNQkAATUJEAE1CTABNQlQATUJYAE1CXABNQmQATUJoAE1EVABNRFwATURoAE1EcABNRHwATUSAAE1EhABNRIgATUSMAE1ElABNRJwATUSgAE1EpABNRKwATUSwAE1E9ABNRPgATUUAAE1G7ABNRvQATUb8AE1HBABNRxAATUcUAE1HGABNRxwATUcgAE1HKABNRzAATUc0AE1HOABNR0AATUdEAE1JMABNSTgATUlEAE1JTABNSVgATUlcAE1JYABNSWQATUloAE1JcABNSXgATUl8AE1JgABNSYgATUmMAE1J8ABNSfQATUn4AE1KAABNS+wATUv0AE1L/ABNTAQATUwQAE1MFABNTBgATUwcAE1MIABNTCgATUwwAE1MNABNTDgATUxAAE1MRABNTjAATU44AE1ORABNTkwATU5YAE1OXABNTmAATU5kAE1OaABNTnAATU54AE1OfABNToAATU6IAE1OjABNTygATU+MAE1PsABNT7wATU/IAE1P7ABNT/gATVAEAE1QDABNUFgATVKkAE1TMABNU7AATVQwAE1UOABNVEAATVRIAE1UUABNVFwATVRgAE1UZABNVHAATVR0AE1UfABNVIAATVSIAE1UlABNVJgATVScAE1UqABNVKwATVTAAE1VJABNVUgATVVQAE1VWABNVXwATVWIAE1VlABNVZwATVbAAE1XUABNV+wATVh8AE1YiABNWJAATViYAE1YoABNWKgATViwAE1YtABNWMAATVkkAE1ZqABNWbAATVm4AE1ZwABNWcgATVnQAE1Z2ABNWeAATVnoAE1abABNWngATVqEAE1akABNWpwATVqoAE1atABNWsAATVrMAE1a1ABNXMAATVzIAE1c0ABNXNgATVzkAE1c6ABNXOwATVzwAE1c9ABNXPwATV0EAE1dCABNXQwATV0UAE1dGABNXwQATV8MAE1fFABNXxwATV8oAE1fLABNXzAATV80AE1fOABNX0AATV9IAE1fTABNX1AATV9YAE1fXABNYUgATWFQAE1hXABNYWQATWFwAE1hdABNYXgATWF8AE1hgABNYYgATWGQAE1hlABNYZgATWGgAE1hpABNYggATWIMAE1iEABNYhgATWQEAE1kDABNZBQATWQcAE1kKABNZCwATWQwAE1kNABNZDgATWRAAE1kSABNZEwATWRQAE1kWABNZFwATWZIAE1mUABNZlgATWZgAE1mbABNZnAATWZ0AE1meABNZnwATWaEAE1mjABNZpAATWaUAE1mnABNZqAATWiMAE1olABNaJwATWikAE1osABNaLQATWi4AE1ovABNaMAATWjIAE1o0ABNaNQATWjYAE1o4ABNaOQATWrQAE1q2ABNauAATWroAE1q9ABNavgATWr8AE1rAABNawQATWsMAE1rFABNaxgATWscAE1rJABNaygATW0UAE1tHABNbSQATW0sAE1tOABNbTwATW1AAE1tRABNbUgATW1QAE1tWABNbVwATW1gAE1taABNbWwATW6QAE1vIABNb7wATXBMAE1wWABNcGAATXBoAE1wcABNcHgATXCAAE1whABNcJAATXD0AE1xaABNcXAATXF4AE1xgABNcYgATXGQAE1xmABNcaAATXIUAE1yIABNciwATXI4AE1yRABNclAATXJcAE1yaABNcnAATXRcAE10ZABNdGwATXR0AE10gABNdIQATXSIAE10jABNdJAATXSYAE10oABNdKQATXSoAE10sABNdLQATXagAE12qABNdrAATXa4AE12xABNdsgATXbMAE120ABNdtQATXbcAE125ABNdugATXbsAE129ABNdvgATXjkAE147ABNePQATXj8AE15CABNeQwATXkQAE15FABNeRgATXkgAE15KABNeSwATXkwAE15OABNeTwATXsoAE17MABNezwATXtEAE17UABNe1QATXtYAE17XABNe2AATXtoAE17cABNe3QATXt4AE17gABNe4QATX1wAE19eABNfYAATX2IAE19lABNfZgATX2cAE19oABNfaQATX2sAE19tABNfbgATX28AE19xABNfcgATX+0AE1/vABNf8QATX/MAE1/2ABNf9wATX/gAE1/5ABNf+gATX/wAE1/+ABNf/wATYAAAE2ACABNgAwATYH4AE2CAABNgggATYIQAE2CHABNgiAATYIkAE2CKABNgiwATYI0AE2CPABNgkAATYJEAE2CTABNglAATYScAE2FKABNhagATYYoAE2GMABNhjgATYZAAE2GSABNhlQATYZYAE2GXABNhmgATYZsAE2GdABNhngATYaAAE2GjABNhpAATYaUAE2GoABNhqQATYa4AE2HHABNh0AATYdIAE2HUABNh3QATYeAAE2HjABNh5QATYi4AE2JSABNieQATYp0AE2KgABNiogATYqQAE2KmABNiqAATYqoAE2KrABNirgATYscAE2LoABNi6gATYuwAE2LuABNi8AATYvIAE2L0ABNi9gATYvgAE2MZABNjHAATYx8AE2MiABNjJQATYygAE2MrABNjLgATYzEAE2MzABNjrgATY7AAE2OyABNjtAATY7cAE2O4ABNjuQATY7oAE2O7ABNjvQATY78AE2PAABNjwQATY8MAE2PEABNkPwATZEEAE2RDABNkRQATZEgAE2RJABNkSgATZEsAE2RMABNkTgATZFAAE2RRABNkUgATZFQAE2RVABNk0AATZNIAE2TVABNk1wATZNoAE2TbABNk3AATZN0AE2TeABNk4AATZOIAE2TjABNk5AATZOYAE2TnABNlAAATZQEAE2UCABNlBAATZX8AE2WBABNlgwATZYUAE2WIABNliQATZYoAE2WLABNljAATZY4AE2WQABNlkQATZZIAE2WUABNllQATZhAAE2YSABNmFAATZhYAE2YZABNmGgATZhsAE2YcABNmHQATZh8AE2YhABNmIgATZiMAE2YlABNmJgATZqEAE2ajABNmpQATZqcAE2aqABNmqwATZqwAE2atABNmrgATZrAAE2ayABNmswATZrQAE2a2ABNmtwATZzIAE2c0ABNnNgATZzgAE2c7ABNnPAATZz0AE2c+ABNnPwATZ0EAE2dDABNnRAATZ0UAE2dHABNnSAATZ8MAE2fFABNnxwATZ8kAE2fMABNnzQATZ84AE2fPABNn0AATZ9IAE2fUABNn1QATZ9YAE2fYABNn2QATaCIAE2hGABNobQATaJEAE2iUABNolgATaJgAE2iaABNonAATaJ4AE2ifABNoogATaLsAE2jYABNo2gATaNwAE2jeABNo4AATaOIAE2jkABNo5gATaQMAE2kGABNpCQATaQwAE2kPABNpEgATaRUAE2kYABNpGgATaZUAE2mXABNpmQATaZsAE2meABNpnwATaaAAE2mhABNpogATaaQAE2mmABNppwATaagAE2mqABNpqwATaiYAE2ooABNqKgATaiwAE2ovABNqMAATajEAE2oyABNqMwATajUAE2o3ABNqOAATajkAE2o7ABNqPAATarcAE2q5ABNquwATar0AE2rAABNqwQATasIAE2rDABNqxAATasYAE2rIABNqyQATasoAE2rMABNqzQATa0gAE2tKABNrTQATa08AE2tSABNrUwATa1QAE2tVABNrVgATa1gAE2taABNrWwATa1wAE2teABNrXwATa9oAE2vcABNr3gATa+AAE2vjABNr5AATa+UAE2vmABNr5wATa+kAE2vrABNr7AATa+0AE2vvABNr8AATbGsAE2xtABNsbwATbHEAE2x0ABNsdQATbHYAE2x3ABNseAATbHoAE2x8ABNsfQATbH4AE2yAABNsgQATbPwAE2z+ABNtAAATbQIAE20FABNtBgATbQcAE20IABNtCQATbQsAE20NABNtDgATbQ8AE20RABNtEgATbSMAE20kABNtJgATbT8AE21AABNtQQATbUMAE21cABNtXQATbV4AE21gABNteQATbXoAE217ABNtfQATbY4AE22dABNttgATbcUAE23XABNt6wATbgIAE24UABNuJQATbiYAE24oABNuQQATbkIAE25DABNuRQATbloAE25rABNudQATboIAAAAAAAAEBAAAAAAAAd5YAAAAAAAAAAAAAAAAABNuig== + + ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/ObvEngine-v50.xcdatamodel + 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WAAAc2gAAHOkAABz4AAAc+QAAHQcAAB0IAAAdCQAAHQoAAB0LAAAdDAAAHSEAAB0iAAAdKgAAHTYAAB1KAAAdWQAAHWgAAB13AAAdewAAHYoAAB2ZAAAdqAAAHbcAAB3GAAAd0gAAHeQAAB3zAAAeAgAAHhEAAB4gAAAeLwAAHj4AAB5NAAAeYgAAHmMAAB5rAAAedwAAHosAAB6aAAAeqQAAHrgAAB68AAAeywAAHtoAAB7pAAAe+AAAHwcAAB8TAAAfJQAAHzQAAB9DAAAfUgAAH2EAAB9iAAAfcQAAH4AAAB+PAAAfpAAAH6UAAB+tAAAfuQAAH80AAB/cAAAf6wAAH/oAAB/+AAAgDQAAIBwAACArAAAgOgAAIEkAACBVAAAgZwAAIHYAACCFAAAglAAAIKMAACCyAAAgwQAAINAAACDlAAAg5gAAIO4AACD6AAAhDgAAIR0AACEsAAAhOwAAIT8AACFOAAAhXQAAIWwAACF7AAAhigAAIZYAACGoAAAhtwAAIcYAACHVAAAh5AAAIfMAACICAAAiEQAAIiYAACInAAAiLwAAIjsAACJPAAAiXgAAIm0AACJ8AAAigAAAIo8AACKeAAAirQAAIrwAACLLAAAi1wAAIukAACL4AAAjBwAAIxYAACMlAAAjNAAAI0MAACNSAAAjUwAAI1YAACNfAAAjbgAAI30AACOMAAAjoQAAI6IAACOqAAAjtgAAI8oAACPZAAAj6AAAI/cAACP7AAAkCgAAJBkAACQoAAAkNwAAJEYAACRSAAAkZAAAJHMAACSCAAAkkQAAJKAAACSvAAAkvgAAJM0AACTQAAAk3wAAJO4AACT9AAAlAAAAJRoAACUbAAAlIQAAJS0AACVDAAAlUgAAJVUAACVkAAAlcwAAJXcAACV8AAAlfQAAJX4AACWNAAAlnAAAJZ8AACWuAAAlvQAAJcEAACXQAAAl3wAAJeAAACYAAAAmAQAAJgIAACYDAAAmBAAAJgUAACYGAAAmBwAAJggAACYJAAAmCgAAJgsAACYMAAAmDQAAJg4AACYjAAAmJAAAJiwAACY4AAAmTAAAJlsAACZqAAAmeQAAJn0AACaMAAAmmwAAJqoAACa5AAAmyAAAJtQAACbmAAAm9QAAJwQAACcTAAAnIgAAJzEAACdAAAAnQQAAJ1AAACdlAAAnZgAAJ24AACd6AAAnjgAAJ50AACesAAAnuwAAJ78AACfOAAAn3QAAJ+wAACf7AAAoCgAAKBYAACgoAAAoNwAAKEYAAChVAAAoZAAAKH4AACh/AAAohQAAKJEAACinAAAotgAAKLkAACjIAAAo1wAAKNsAACjhAAAo4gAAKOMAACjkAAAo8wAAKQIAACkFAAApFAAAKSMAACknAAApNgAAKUUAAClGAAApYAAAKWEAACliAAApYwAAKWQAACllAAApZgAAKWcAACloAAApaQAAKWoAAClrAAApgAAAKYEAACmJAAAplQAAKakAACm4AAApxwAAKdYAACnaAAAp6QAAKfgAACoHAAAqFgAAKiUAACoxAAAqQwAAKlIAACphAAAqcAAAKn8AACqOAAAqnQAAKqwAACrBAAAqwgAAKsoAACrWAAAq6gAAKvkAACsIAAArFwAAKxsAACsqAAArOQAAK0gAACtXAAArZgAAK3IAACuEAAArkwAAK6IAACuxAAArwAAAK88AACveAAAr7QAALAIAACwDAAAsCwAALBcAACwrAAAsOgAALEkAACxYAAAsXAAALGsAACx6AAAsiQAALJgAACynAAAsswAALMUAACzUAAAs4wAALPIAAC0BAAAtEAAALR8AAC0uAAAtQwAALUQAAC1MAAAtWAAALWwAAC17AAAtigAALZkAAC2dAAAtrAAALbsAAC3KAAAt2QAALegAAC30AAAuBgAALhUAAC4kAAAuMwAALkIAAC5cAAAuXQAALmMAAC5vAAAuhQAALpQAAC6XAAAupgAALrUAAC65AAAuwAAALsEAAC7CAAAuwwAALsQAAC7TAAAu4gAALuUAAC70AAAvAwAALwcAAC8WAAAvJQAALyYAAC9AAAAvQQAAL0IAAC9DAAAvRAAAL0UAAC9GAAAvRwAAL0gAAC9JAAAvSgAAL0sAAC9gAAAvYQAAL2kAAC91AAAviQAAL5gAAC+nAAAvtgAAL7oAAC/JAAAv2AAAL+cAAC/2AAAwBQAAMBEAADAjAAAwMgAAMEEAADBQAAAwXwAAMG4AADB9AAAwjAAAMKEAADCiAAAwqgAAMLYAADDKAAAw2QAAMOgAADD3AAAw+wAAMQoAADEZAAAxKAAAMTcAADFGAAAxUgAAMWQAADFzAAAxggAAMZEAADGgAAAxrwAAMb4AADHNAAAx4gAAMeMAADHrAAAx9wAAMgsAADIaAAAyKQAAMjgAADI8AAAySwAAMloAADJpAAAyeAAAMocAADKTAAAypQAAMrQAADLDAAAy0gAAMuEAADLiAAAy8QAAMwAAADMPAAAzJAAAMyUAADMtAAAzOQAAM00AADNcAAAzawAAM3oAADN+AAAzjQAAM5wAADOrAAAzugAAM8kAADPVAAAz5wAAM/YAADQFAAA0FAAANCMAADQyAAA0QQAANFAAADRlAAA0ZgAANG4AADR6AAA0jgAANJ0AADSsAAA0uwAANL8AADTOAAA03QAANOwAADT7AAA1CgAANRYAADUoAAA1NwAANUYAADVVAAA1ZAAANXMAADWCAAA1kQAANaYAADWnAAA1rwAANbsAADXPAAA13gAANe0AADX8AAA2AAAANg8AADYeAAA2LQAANjwAADZLAAA2VwAANmkAADZ4AAA2hwAANpYAADalAAA2tAAANsMAADbSAAA25wAANugAADbwAAA2/AAANxAAADcfAAA3LgAANz0AADdBAAA3UAAAN18AADduAAA3fQAAN4wAADeYAAA3qgAAN7kAADfIAAA31wAAN+YAADf1AAA4BAAAOBMAADgoAAA4KQAAODEAADg9AAA4UQAAOGAAADhvAAA4fgAAOIIAADiRAAA4oAAAOK8AADi+AAA4zQAAONkAADjrAAA4+gAAOQkAADkYAAA5JwAAOTYAADlFAAA5VAAAOWkAADlqAAA5cgAAOX4AADmSAAA5oQAAObAAADm/AAA5wwAAOdIAADnhAAA58AAAOf8AADoOAAA6GgAAOiwAADo7AAA6SgAAOlkAADpoAAA6dwAAOoYAADqVAAA6qgAAOqsAADqzAAA6vwAAOtMAADriAAA68QAAOwAAADsEAAA7EwAAOyIAADsxAAA7QAAAO08AADtbAAA7bQAAO3wAADuLAAA7mgAAO6kAADu4AAA7xwAAO9YAADvrAAA77AAAO/QAADwAAAA8FAAAPCMAADwyAAA8QQAAPEUAADxUAAA8YwAAPHIAADyBAAA8kAAAPJwAADyuAAA8vQAAPMwAADzbAAA86gAAPPkAAD0IAAA9FwAAPRoAAD0pAAA9OAAAPUcAAD1cAAA9XQAAPWUAAD1xAAA9hQAAPZQAAD2jAAA9sgAAPbYAAD3FAAA91AAAPeMAAD3yAAA+AQAAPg0AAD4fAAA+LgAAPj0AAD5MAAA+WwAAPmoAAD55AAA+iAAAPp0AAD6eAAA+pgAAPrIAAD7GAAA+1QAAPuQAAD7zAAA+9wAAPwYAAD8VAAA/JAAAPzMAAD9CAAA/TgAAP2AAAD9vAAA/fgAAP40AAD+cAAA/qwAAP7oAAD/JAAA/3gAAP98AAD/nAAA/8wAAQAcAAEAWAABAJQAAQDQAAEA4AABARwAAQFYAAEBlAABAdAAAQIMAAECPAABAoQAAQLAAAEC/AABAzgAAQN0AAED3AABA+AAAQP4AAEEKAABBIAAAQS8AAEEyAABBQQAAQVAAAEFUAABBWAAAQVkAAEFoAABBdwAAQXoAAEGJAABBmAAAQZwAAEGrAABBugAAQbsAAEHFAABBxgAAQccAAEHcAABB3QAAQeUAAEHxAABCBQAAQhQAAEIjAABCMgAAQjYAAEJFAABCVAAAQmMAAEJyAABCgQAAQo0AAEKfAABCrgAAQr0AAELMAABC2wAAQuoAAEL5AABDCAAAQx0AAEMeAABDJgAAQzIAAENGAABDVQAAQ2QAAENzAABDdwAAQ4YAAEOVAABDpAAAQ7MAAEPCAABDzgAAQ+AAAEPvAABD/gAARA0AAEQcAABEHQAARCwAAEQ7AABESgAARF8AAERgAABEaAAARHQAAESIAABElwAARKYAAES1AABEuQAARMgAAETXAABE5gAARPUAAEUEAABFEAAARSIAAEUxAABFQAAARU8AAEVeAABFbQAARXwAAEWLAABFjgAARZ0AAEWsAABFuwAARdAAAEXRAABF2QAAReUAAEX5AABGCAAARhcAAEYmAABGKgAARjkAAEZIAABGVwAARmYAAEZ1AABGgQAARpMAAEaiAABGsQAARsAAAEbPAABG3gAARu0AAEb8AABHEQAARxIAAEcaAABHJgAARzoAAEdJAABHWAAAR2cAAEdrAABHegAAR4kAAEeYAABHpwAAR7YAAEfCAABH1AAAR+MAAEfyAABIAQAASBAAAEgfAABILgAASD0AAEhSAABIUwAASFsAAEhnAABIewAASIoAAEiZAABIqAAASKwAAEi7AABIygAASNkAAEjoAABI9wAASQMAAEkVAABJJAAASTMAAElCAABJUQAASWAAAElvAABJfgAASZMAAEmUAABJnAAASagAAEm8AABJywAASdoAAEnpAABJ7QAASfwAAEoLAABKGgAASikAAEo4AABKRAAASlYAAEplAABKdAAASoMAAEqSAABKoQAASrAAAEq/AABKwgAAStEAAErgAABK7wAASwQAAEsFAABLDQAASxkAAEstAABLPAAAS0sAAEtaAABLXgAAS20AAEt8AABLiwAAS5oAAEupAABLtQAAS8cAAEvWAABL5QAAS/QAAEwDAABMEgAATCEAAEwwAABMRQAATEYAAExOAABMWgAATG4AAEx9AABMjAAATJsAAEyfAABMrgAATL0AAEzMAABM2wAATOoAAEz2AABNCAAATRcAAE0mAABNNQAATUQAAE1TAABNYgAATXEAAE2GAABNhwAATY8AAE2bAABNrwAATb4AAE3NAABN3AAATeAAAE3vAABN/gAATg0AAE4cAABOKwAATjcAAE5JAABOWAAATmcAAE52AABOhQAATpQAAE6jAABOsgAATscAAE7IAABO0AAATtwAAE7wAABO/wAATw4AAE8dAABPIQAATzAAAE8/AABPTgAAT10AAE9sAABPeAAAT4oAAE+ZAABPqAAAT7cAAE/GAABP1QAAT+QAAE/zAABQCAAAUAkAAFARAABQHQAAUDEAAFBAAABQTwAAUF4AAFBiAABQcQAAUIAAAFCPAABQngAAUK0AAFC5AABQywAAUNoAAFDpAABQ+AAAUQcAAFEWAABRJQAAUSYAAFE1AABRSgAAUUsAAFFTAABRXwAAUXMAAFGCAABRkQAAUaAAAFGkAABRswAAUcIAAFHRAABR4AAAUe8AAFH7AABSDQAAUhwAAFIrAABSOgAAUkkAAFJYAABSZwAAUmgAAFJ3AABSjAAAUo0AAFKVAABSoQAAUrUAAFLEAABS0wAAUuIAAFLmAABS9QAAUwQAAFMTAABTIgAAUzEAAFM9AABTTwAAU14AAFNtAABTfAAAU4sAAFOaAABTqQAAU7gAAFPNAABTzgAAU9YAAFPiAABT9gAAVAUAAFQUAABUIwAAVCcAAFQ2AABURQAAVFQAAFRjAABUcgAAVH4AAFSQAABUnwAAVK4AAFS9AABUzAAAVNsAAFTqAABU6wAAVPoAAFUPAABVEAAAVRgAAFUkAABVOAAAVUcAAFVWAABVZQAAVWkAAFV4AABVhwAAVZYAAFWlAABVtAAAVcAAAFXSAABV4QAAVfAAAFX/AABWDgAAVh0AAFYsAABWOwAAVlAAAFZRAABWWQAAVmUAAFZ5AABWiAAAVpcAAFamAABWqgAAVrkAAFbIAABW1wAAVuYAAFb1AABXAQAAVxMAAFciAABXMQAAV0AAAFdPAABXXgAAV20AAFd8AABXkQAAV5IAAFeaAABXpgAAV7oAAFfJAABX2AAAV+cAAFfrAABX+gAAWAkAAFgYAABYJwAAWDYAAFhCAABYVAAAWGMAAFhyAABYgQAAWJAAAFifAABYrgAAWK8AAFi+AABY0wAAWNQAAFjcAABY6AAAWPwAAFkLAABZGgAAWSkAAFktAABZPAAAWUsAAFlaAABZaQAAWXgAAFmEAABZlgAAWaUAAFm0AABZwwAAWdIAAFnhAABZ8AAAWf8AAFoCAABaHAAAWh0AAFojAABaLwAAWkUAAFpUAABaVwAAWmYAAFp1AABaeAAAWocAAFqWAABamQAAWqgAAFq3AABauwAAWsoAAFrZAABa2gAAWuQAAFrlAABa5gAAWucAAFr8AABa/QAAWwUAAFsRAABbJQAAWzQAAFtDAABbUgAAW1YAAFtlAABbdAAAW4MAAFuSAABboQAAW60AAFu/AABbzgAAW90AAFvsAABb+wAAXAoAAFwZAABcGgAAXCkAAFw+AABcPwAAXEcAAFxTAABcZwAAXHYAAFyFAABclAAAXJgAAFynAABctgAAXMUAAFzUAABc4wAAXO8AAF0BAABdEAAAXR8AAF0uAABdPQAAXVcAAF1YAABdXgAAXWoAAF2AAABdjwAAXZIAAF2hAABdsAAAXbMAAF3CAABd0QAAXdQAAF3jAABd8gAAXfYAAF4FAABeFAAAXhUAAF45AABeOgAAXjsAAF48AABePQAAXj4AAF4/AABeQAAAXkEAAF5CAABeQwAAXkQAAF5FAABeRgAAXkcAAF5IAABeSQAAXl4AAF5fAABeZwAAXnMAAF6HAABelgAAXqUAAF60AABeuAAAXscAAF7WAABe5QAAXvQAAF8DAABfDwAAXyEAAF8wAABfPwAAX04AAF9dAABfbAAAX3sAAF+KAABfnwAAX6AAAF+oAABftAAAX8gAAF/XAABf5gAAX/UAAF/5AABgCAAAYBcAAGAmAABgNQAAYEQAAGBQAABgYgAAYHEAAGCAAABgjwAAYJ4AAGCtAABgvAAAYMsAAGDgAABg4QAAYOkAAGD1AABhCQAAYRgAAGEnAABhNgAAYToAAGFJAABhWAAAYWcAAGF2AABhhQAAYZEAAGGjAABhsgAAYcEAAGHQAABh3wAAYe4AAGH9AABiDAAAYiEAAGIiAABiKgAAYjYAAGJKAABiWQAAYmgAAGJ3AABiewAAYooAAGKZAABiqAAAYrcAAGLGAABi0gAAYuQAAGLzAABjAgAAYxEAAGMgAABjIQAAYzAAAGM/AABjTgAAY2MAAGNkAABjbAAAY3gAAGOMAABjmwAAY6oAAGO5AABjvQAAY8wAAGPbAABj6gAAY/kAAGQIAABkFAAAZCYAAGQ1AABkRAAAZFMAAGRiAABkcQAAZIAAAGSPAABkpAAAZKUAAGStAABkuQAAZM0AAGTcAABk6wAAZPoAAGT+AABlDQAAZRwAAGUrAABlOgAAZUkAAGVVAABlZwAAZXYAAGWFAABllAAAZaMAAGW9AABlvgAAZcQAAGXQAABl5gAAZfUAAGX4AABmBwAAZhYAAGYZAABmKAAAZjcAAGY6AABmSQAAZlgAAGZcAABmawAAZnoAAGZ7AABmhwAAZogAAGaJAABmigAAZosAAGagAABmoQAAZqkAAGa1AABmyQAAZtgAAGbnAABm9gAAZvoAAGcJAABnGAAAZycAAGc2AABnRQAAZ1EAAGdjAABncgAAZ4EAAGeQAABnnwAAZ7kAAGe6AABnwAAAZ8wAAGfiAABn8QAAZ/QAAGgDAABoEgAAaBYAAGgdAABoHgAAaB8AAGggAABoIQAAaDAAAGg/AABoQgAAaFEAAGhgAABoZAAAaHMAAGiCAABogwAAaK8AAGiwAABosQAAaLIAAGizAABotAAAaLUAAGi2AABotwAAaLgAAGi5AABougAAaLsAAGi8AABovQAAaL4AAGi/AABowAAAaMEAAGjCAABowwAAaNgAAGjZAABo4QAAaO0AAGkBAABpEAAAaR8AAGkuAABpMgAAaUEAAGlQAABpXwAAaW4AAGl9AABpiQAAaZsAAGmqAABpuQAAacgAAGnXAABp5gAAafUAAGoEAABqGQAAahoAAGoiAABqLgAAakIAAGpRAABqYAAAam8AAGpzAABqggAAapEAAGqgAABqrwAAar4AAGrKAABq3AAAausAAGr6AABrCQAAaxgAAGsnAABrNgAAa0UAAGtaAABrWwAAa2MAAGtvAABrgwAAa5IAAGuhAABrsAAAa7QAAGvDAABr0gAAa+EAAGvwAABr/wAAbAsAAGwdAABsLAAAbC0AAGw8AABsSwAAbFoAAGxpAABseAAAbIcAAGycAABsnQAAbKUAAGyxAABsxQAAbNQAAGzjAABs8gAAbPYAAG0FAABtFAAAbSMAAG0yAABtQQAAbU0AAG1fAABtbgAAbX0AAG2MAABtmwAAbbUAAG22AABtvAAAbcgAAG3eAABt7QAAbfAAAG3/AABuDgAAbhEAAG4gAABuLwAAbjIAAG5BAABuUAAAblQAAG5jAABucgAAbnMAAG6FAABuhgAAbocAAG6IAABuiQAAbooAAG6LAABujAAAbqEAAG6iAABuqgAAbrYAAG7KAABu2QAAbugAAG73AABu+wAAbwoAAG8ZAABvKAAAbzcAAG9GAABvUgAAb2QAAG9zAABvggAAb5EAAG+gAABvrwAAb74AAG/NAABv4gAAb+MAAG/rAABv9wAAcAsAAHAaAABwKQAAcDgAAHA8AABwSwAAcFoAAHBpAABweAAAcIcAAHCTAABwpQAAcLQAAHDDAABw0gAAcOEAAHDwAABw/wAAcQ4AAHEjAABxJAAAcSwAAHE4AABxTAAAcVsAAHFqAABxeQAAcX0AAHGMAABxmwAAcaoAAHG5AABxyAAAcdQAAHHmAABx9QAAcgQAAHITAAByIgAAcjEAAHJAAAByTwAAcmQAAHJlAABybQAAcnkAAHKNAABynAAAcqsAAHK6AAByvgAAcs0AAHLcAABy6wAAcvoAAHMJAABzFQAAcycAAHM2AABzRQAAc1QAAHNjAABzcgAAc4EAAHOQAABzpQAAc6YAAHOuAABzugAAc84AAHPdAABz7AAAc/sAAHP/AAB0DgAAdB0AAHQsAAB0OwAAdEoAAHRWAAB0aAAAdHcAAHSGAAB0lQAAdKQAAHSzAAB0wgAAdNEAAHTmAAB05wAAdO8AAHT7AAB1DwAAdR4AAHUtAAB1PAAAdUAAAHVPAAB1XgAAdW0AAHV8AAB1iwAAdZcAAHWpAAB1uAAAdccAAHXWAAB15QAAdfQAAHYDAAB2EgAAdicAAHYoAAB2MAAAdjwAAHZQAAB2XwAAdm4AAHZ9AAB2gQAAdpAAAHafAAB2rgAAdr0AAHbMAAB22AAAduoAAHb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0AACaAwAAmhIAAJohAACaLQAAmj8AAJpOAACaXQAAmmwAAJp7AACalQAAmpYAAJqcAACaqAAAmr4AAJrNAACa0AAAmt8AAJruAACa8QAAmwAAAJsPAACbEgAAmyEAAJswAACbNAAAm0MAAJtSAACbUwAAm18AAJtgAACbYQAAm2IAAJtjAACbeAAAm3kAAJuBAACbjQAAm6EAAJuwAACbvwAAm84AAJvSAACb4QAAm/AAAJv/AACcDgAAnB0AAJwpAACcOwAAnEoAAJxZAACcaAAAnHcAAJyGAACclQAAnKQAAJy5AACcugAAnMIAAJzOAACc4gAAnPEAAJ0AAACdDwAAnRMAAJ0iAACdMQAAnUAAAJ1PAACdXgAAnWoAAJ18AACdiwAAnZoAAJ2pAACduAAAnccAAJ3WAACd5QAAnfoAAJ37AACeAwAAng8AAJ4jAACeMgAAnkEAAJ5QAACeVAAAnmMAAJ5yAACegQAAnpAAAJ6fAACeqwAAnr0AAJ7MAACe2wAAnuoAAJ75AACfCAAAnxcAAJ8YAACfJwAAnzwAAJ89AACfRQAAn1EAAJ9lAACfdAAAn4MAAJ+SAACflgAAn6UAAJ+0AACfwwAAn9IAAJ/hAACf7QAAn/8AAKAOAACgHQAAoCwAAKA7AACgSgAAoFkAAKBoAACgawAAoHoAAKCJAACgmAAAoK0AAKCuAACgtgAAoMIAAKDWAACg5QAAoPQAAKEDAAChBwAAoRYAAKElAAChNAAAoUMAAKFSAAChXgAAoXAAAKF/AAChjgAAoZ0AAKGsAAChxgAAoccAAKHNAACh2QAAoe8AAKH+AACiAQAAohAAAKIfAACiIgAAojEAAKJAAACiQwAAolIAAKJhAACiZQAAonQAAKKDAACihAAAoooAAKKLAACioAAAoqEAAKKpAACitQAAoskAAKLYAACi5wAAovYAAKL6AACjCQAAoxgAAKMnAACjNgAAo0UAAKNRAACjYwAAo3IAAKOBAACjkAAAo58AAKOuAACjvQAAo8wAAKPQAACj2QAAo9oAAKP8AACj/QAApAMAAKQPAACkJQAApDQAAKQ3AACkRgAApFUAAKRYAACkZwAApHYAAKR5AACkiAAApJcAAKSbAACkqgAApLkAAKS6AACkyAAApMkAAKTKAACkywAApMwAAKTNAACk4gAApOMAAKTrAACk9wAApQsAAKUaAAClKQAApTgAAKU8AAClSwAApVoAAKVpAACleAAApYcAAKWTAAClpQAApbQAAKXDAACl0gAApeEAAKXwAACl/wAApg4AAKYjAACmJAAApiwAAKY4AACmTAAAplsAAKZqAACmeQAApn0AAKaMAACmmwAApqoAAKa5AACmyAAAptQAAKbmAACm9QAApwQAAKcTAACnIgAApzEAAKdAAACnTwAAp2QAAKdlAACnbQAAp3kAAKeNAACnnAAAp6sAAKe6AACnvgAAp80AAKfcAACn6wAAp/oAAKgJAACoFQAAqCcAAKg2AACoRQAAqFQAAKhjAACocgAAqIEAAKiQAACopQAAqKYAAKiuAACougAAqM4AAKjdAACo7AAAqPsAAKj/AACpDgAAqR0AAKksAACpOwAAqUoAAKlWAACpaAAAqXcAAKmGAACplQAAqaQAAKmzAACpwgAAqdEAAKnmAACp5wAAqe8AAKn7AACqDwAAqh4AAKotAACqPAAAqkAAAKpPAACqXgAAqm0AAKp8AACqiwAAqpcAAKqpAACquAAAqscAAKrWAACq1wAAquYAAKr1AACrBAAAqxMAAKsWAACrHAAAqyMAAKs9AACrPgAAq0QAAKtQAACrZgAAq3UAAKt4AACrhwAAq5YAAKuZAACrqAAAq7cAAKu6AACryQAAq9gAAKvcAACr6wAAq/oAAKv7AACsAQAArAIAAKwXAACsGAAArCAAAKwsAACsQAAArE8AAKxeAACsbQAArHEAAKyAAACsjwAArJ4AAKytAACsvAAArMgAAKzaAACs6QAArPgAAK0HAACtFgAArTAAAK0xAACtNwAArUMAAK1ZAACtaAAArWsAAK16AACtiQAArYwAAK2bAACtqgAAra0AAK28AACtywAArc8AAK3eAACt7QAAre4AAK30AACt9QAArgoAAK4LAACuEwAArh8AAK4zAACuQgAArlEAAK5gAACuZAAArnMAAK6CAACukQAArqAAAK6vAACuuwAArs0AAK7cAACu6wAArvoAAK8JAACvGAAArycAAK82AACvOgAAr0EAAK9CAACvSAAAr1cAAK9mAACvdQAAr3kAAK96AACvgQAAr5sAAK+cAACvogAAr64AAK/EAACv0wAAr9YAAK/lAACv9AAAr/cAALAGAACwFQAAsBgAALAnAACwNgAAsDoAALBJAACwWAAAsFkAALBfAACwYAAAsHUAALB2AACwfgAAsIoAALCeAACwrQAAsLwAALDLAACwzwAAsN4AALDtAACw/AAAsQsAALEaAACxJgAAsTgAALFHAACxVgAAsWUAALF0AACxjgAAsY8AALGVAACxoQAAsbcAALHGAACxyQAAsdgAALHnAACx6gAAsfkAALIIAACyCwAAshoAALIpAACyLQAAsjwAALJLAACyTAAAslQAALJVAACyVgAAsmsAALJsAACydAAAsoAAALKUAACyowAAsrIAALLBAACyxQAAstQAALLjAACy8gAAswEAALMQAACzHAAAsy4AALM9AACzTAAAs1sAALNqAACzeQAAs4gAALOXAACzrAAAs60AALO1AACzwQAAs9UAALPkAACz8wAAtAIAALQGAAC0FQAAtCQAALQzAAC0QgAAtFEAALRdAAC0bwAAtH4AALSNAAC0jgAAtJ0AALSsAAC0uwAAtMoAALTZAAC07gAAtO8AALT3AAC1AwAAtRcAALUmAAC1NQAAtUQAALVIAAC1VwAAtWYAALV1AAC1hAAAtZMAALWfAAC1sQAAtcAAALXPAAC13gAAte0AALX8AAC2CwAAthoAALYeAAC2JQAAtiYAALY1AAC2RAAAtlMAALZXAAC2WAAAtmcAALZ2AAC2hQAAtogAALaNAAC2nAAAtqsAALa6AAC2zwAAttAAALbYAAC25AAAtvgAALcHAAC3FgAAtyUAALcpAAC3OAAAt0cAALdWAAC3ZQAAt3QAALeAAAC3kgAAt6EAALewAAC3vwAAt84AALfoAAC36QAAt+8AALf7AAC4EQAAuCAAALgjAAC4MgAAuEEAALhEAAC4UwAAuGIAALhlAAC4dAAAuIMAALiHAAC4lgAAuKUAALimAAC4tgAAuLcAALi4AAC4uQAAuLoAALi7AAC40AAAuNEAALjZAAC45QAAuPkAALkIAAC5FwAAuSYAALkqAAC5OQAAuUgAALlXAAC5ZgAAuXUAALmBAAC5kwAAuaIAALmxAAC5wAAAuc8AALneAAC57QAAufwAALoRAAC6EgAAuhoAALomAAC6OgAAukkAALpYAAC6ZwAAumsAALp6AAC6iQAAupgAALqnAAC6tgAAusIAALrUAAC64wAAuvIAALsBAAC7EAAAux8AALsuAAC7PQAAu1IAALtTAAC7WwAAu2cAALt7AAC7igAAu5kAALuoAAC7rAAAu7sAALvKAAC72QAAu+gAALv3AAC8AwAAvBUAALwkAAC8MwAAvEIAALxRAAC8YAAAvG8AALx+AAC8kwAAvJQAALycAAC8qAAAvLwAALzLAAC82gAAvOkAALztAAC8/AAAvQsAAL0aAAC9KQAAvTgAAL1EAAC9VgAAvWUAAL10AAC9gwAAvZIAAL2hAAC9sAAAvb8AAL3UAAC91QAAvd0AAL3pAAC9/QAAvgwAAL4bAAC+KgAAvi4AAL49AAC+TAAAvlsAAL5qAAC+eQAAvoUAAL6XAAC+pgAAvrUAAL7EAAC+0wAAvuIAAL7xAAC/AAAAvxUAAL8WAAC/HgAAvyoAAL8+AAC/TQAAv1wAAL9rAAC/bwAAv34AAL+NAAC/nAAAv6sAAL+6AAC/xgAAv9gAAL/nAAC/9gAAwAUAAMAUAADAIwAAwDIAAMBBAADARAAAwFMAAMBiAADAcQAAwIYAAMCHAADAjwAAwJsAAMCvAADAvgAAwM0AAMDcAADA4AAAwO8AAMD+AADBDQAAwRwAAMErAADBNwAAwUkAAMFYAADBZwAAwXYAAMGFAADBlAAAwaMAAMGyAADBxwAAwcgAAMHQAADB3AAAwfAAAMH/AADCDgAAwh0AAMIhAADCMAAAwj8AAMJOAADCXQAAwmwAAMJ4AADCigAAwpkAAMKoAADCtwAAwsYAAMLVAADC5AAAwvMAAMMIAADDCQAAwxEAAMMdAADDMQAAw0AAAMNPAADDXgAAw2IAAMNxAADDgAAAw48AAMOeAADDrQAAw7kAAMPLAADD2gAAw+kAAMP4AADEBwAAxBYAAMQlAADEJgAAxDUAAMRKAADESwAAxFMAAMRfAADEcwAAxIIAAMSRAADEoAAAxKQAAMSzAADEwgAAxNEAAMTgAADE7wAAxPsAAMUNAADFHAAAxSsAAMU6AADFSQAAxWMAAMVkAADFagAAxXYAAMWMAADFmwAAxZ4AAMWtAADFvAAAxb8AAMXOAADF3QAAxeAAAMXvAADF/gAAxgIAAMYRAADGIAAAxiEAAMYzAADGNAAAxjUAAMY2AADGNwAAxjgAAMY5AADGTgAAxk8AAMZXAADGYwAAxncAAMaGAADGlQAAxqQAAMaoAADGtwAAxsYAAMbVAADG5AAAxvMAAMb/AADHEQAAxyAAAMcvAADHPgAAx00AAMdcAADHawAAx3oAAMePAADHkAAAx5gAAMekAADHuAAAx8cAAMfWAADH5QAAx+kAAMf4AADIBwAAyBYAAMglAADINAAAyEAAAMhSAADIYQAAyHAAAMh/AADIjgAAyJ0AAMisAADIrQAAyLwAAMjRAADI0gAAyNoAAMjmAADI+gAAyQkAAMkYAADJJwAAySsAAMk6AADJSQAAyVgAAMlnAADJdgAAyYIAAMmUAADJowAAybIAAMnBAADJ0AAAyd8AAMnuAADJ/QAAyhIAAMoTAADKGwAAyicAAMo7AADKSgAAylkAAMpoAADKbAAAynsAAMqKAADKmQAAyqgAAMq3AADKwwAAytUAAMrkAADK8wAAywIAAMsRAADLIAAAyy8AAMs+AADLUwAAy1QAAMtcAADLaAAAy3wAAMuLAADLmgAAy6kAAMutAADLvAAAy8sAAMvaAADL6QAAy/gAAMwEAADMFgAAzCUAAMw0AADMQwAAzFIAAMxhAADMcAAAzH8AAMyUAADMlQAAzJ0AAMypAADMvQAAzMwAAMzbAADM6gAAzO4AAMz9AADNDAAAzRsAAM0qAADNOQAAzUUAAM1XAADNZgAAzXUAAM2EAADNkwAAzaIAAM2xAADNwAAAzdUAAM3WAADN3gAAzeoAAM3+AADODQAAzhwAAM4rAADOLwAAzj4AAM5NAADOXAAAzmsAAM56AADOhgAAzpgAAM6nAADOtgAAzsUAAM7UAADO4wAAzvIAAM8BAADPFgAAzxcAAM8fAADPKwAAzz8AAM9OAADPXQAAz2wAAM9wAADPfwAAz44AAM+dAADPrAAAz7sAAM/HAADP2QAAz+gAAM/3AADQBgAA0BUAANAkAADQMwAA0EIAANBFAADQVAAA0GMAANByAADQhwAA0IgAANCQAADQnAAA0LAAANC/AADQzgAA0N0AANDhAADQ8AAA0P8AANEOAADRHQAA0SwAANE4AADRSgAA0VkAANFoAADRdwAA0YYAANGVAADRpAAA0aUAANG0AADRyQAA0coAANHSAADR3gAA0fIAANIBAADSEAAA0h8AANIjAADSMgAA0kEAANJQAADSXwAA0m4AANJ6AADSjAAA0psAANKqAADSuQAA0sgAANLXAADS5gAA0vUAANMKAADTCwAA0xMAANMfAADTMwAA00IAANNRAADTYAAA02QAANNzAADTggAA05EAANOgAADTrwAA07sAANPNAADT3AAA0+sAANP6AADUCQAA1BgAANQnAADUNgAA1EsAANRMAADUVAAA1GAAANR0AADUgwAA1JIAANShAADUpQAA1LQAANTDAADU0gAA1OEAANTwAADU/AAA1Q4AANUdAADVLAAA1TsAANVKAADVZAAA1WUAANVrAADVdwAA1Y0AANWcAADVnwAA1a4AANW9AADVwAAA1c8AANXeAADV4QAA1fAAANX/AADWAwAA1hIAANYhAADWIgAA1ioAANYrAADWLAAA1kEAANZCAADWSgAA1lYAANZqAADWeQAA1ogAANaXAADWmwAA1qoAANa5AADWyAAA1tcAANbmAADW8gAA1wQAANcTAADXIgAA1zEAANdAAADXTwAA114AANdfAADXbgAA14MAANeEAADXjAAA15gAANesAADXuwAA18oAANfZAADX3QAA1+wAANf7AADYCgAA2BkAANgoAADYNAAA2EYAANhVAADYZAAA2HMAANiCAADYkQAA2KAAANivAADYsgAA2MEAANjQAADY3wAA2PQAANj1AADY/QAA2QkAANkdAADZLAAA2TsAANlKAADZTgAA2V0AANlsAADZewAA2YoAANmZAADZpQAA2bcAANnGAADZ1QAA2eQAANnzAADaDQAA2g4AANoUAADaIAAA2jYAANpFAADaSAAA2lcAANpmAADaagAA2m8AANpwAADacQAA2oAAANqPAADakgAA2qEAANqwAADatAAA2sMAANrSAADa0wAA2vUAANr2AADa9wAA2vgAANr5AADa+gAA2vsAANr8AADa/QAA2v4AANr/AADbAAAA2wEAANsCAADbAwAA2xgAANsZAADbIQAA2y0AANtBAADbUAAA218AANtuAADbcgAA24EAANuQAADbnwAA264AANu9AADbyQAA29sAANvqAADb+QAA3AgAANwXAADcJgAA3DUAANxEAADcWQAA3FoAANxiAADcbgAA3IIAANyRAADcoAAA3K8AANyzAADcwgAA3NEAANzgAADc7wAA3P4AAN0KAADdHAAA3SsAAN06AADdSQAA3VgAAN1nAADddgAA3YUAAN2aAADdmwAA3aMAAN2vAADdwwAA3dIAAN3hAADd8AAA3fQAAN4DAADeEgAA3iEAAN4wAADePwAA3ksAAN5dAADebAAA3nsAAN6KAADemQAA3qgAAN63AADexgAA3tsAAN7cAADe5AAA3vAAAN8EAADfEwAA3yIAAN8xAADfNQAA30QAAN9TAADfYgAA33EAAN+AAADfjAAA354AAN+tAADfvAAA38sAAN/aAADf6QAA3/gAAOAHAADgHAAA4B0AAOAlAADgMQAA4EUAAOBUAADgYwAA4HIAAOB2AADghQAA4JQAAOCjAADgsgAA4MEAAODNAADg3wAA4O4AAOD9AADhDAAA4RsAAOEqAADhOQAA4UgAAOFdAADhXgAA4WYAAOFyAADhhgAA4ZUAAOGkAADhswAA4bcAAOHGAADh1QAA4eQAAOHzAADiAgAA4g4AAOIgAADiLwAA4j4AAOJNAADiXAAA4msAAOJ6AADiiQAA4p4AAOKfAADipwAA4rMAAOLHAADi1gAA4uUAAOL0AADi+AAA4wcAAOMWAADjJQAA4zQAAONDAADjTwAA42EAAONwAADjfwAA444AAOOdAADjrAAA47sAAOPKAADj3wAA4+AAAOPoAADj9AAA5AgAAOQXAADkJgAA5DUAAOQ5AADkSAAA5FcAAORmAADkdQAA5IQAAOSQAADkogAA5LEAAOTAAADkzwAA5N4AAOTtAADk/AAA5QsAAOUgAADlIQAA5SkAAOU1AADlSQAA5VgAAOVnAADldgAA5XoAAOWJAADlmAAA5acAAOW2AADlxQAA5dEAAOXjAADl8gAA5gEAAOYQAADmHwAA5i4AAOY9AADmTAAA5mEAAOZiAADmagAA5nYAAOaKAADmmQAA5qgAAOa3AADmuwAA5soAAObZAADm6AAA5vcAAOcGAADnEgAA5yQAAOczAADnQgAA51EAAOdgAADnbwAA534AAOeNAADnogAA56MAAOerAADntwAA58sAAOfaAADn6QAA5/gAAOf8AADoCwAA6BoAAOgpAADoOAAA6EcAAOhTAADoZQAA6HQAAOiDAADokgAA6KEAAOi7AADovAAA6MIAAOjOAADo5AAA6PMAAOj2AADpBQAA6RQAAOkXAADpJgAA6TUAAOk4AADpRwAA6VYAAOlaAADpaQAA6XgAAOl5AADphQAA6YYAAOmHAADpiAAA6YkAAOmeAADpnwAA6acAAOm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iAAEMsQABDMAAAQzPAAEM3gABDOoAAQz8AAENCwABDRoAAQ0pAAENOAABDUcAAQ1WAAENZQABDXoAAQ17AAENgwABDY8AAQ2jAAENsgABDcEAAQ3QAAEN1AABDeMAAQ3yAAEOAQABDhAAAQ4fAAEOKwABDj0AAQ5MAAEOWwABDmoAAQ55AAEOiAABDpcAAQ6mAAEOuwABDrwAAQ7EAAEO0AABDuQAAQ7zAAEPAgABDxEAAQ8VAAEPJAABDzMAAQ9CAAEPUQABD2AAAQ9sAAEPfgABD40AAQ+cAAEPqwABD7oAAQ/JAAEP2AABD+cAAQ/8AAEP/QABEAUAARARAAEQJQABEDQAARBDAAEQUgABEFYAARBlAAEQdAABEIMAARCSAAEQoQABEK0AARC/AAEQzgABEN0AARDsAAEQ+wABEQoAAREZAAERKAABET0AARE+AAERRgABEVIAARFmAAERdQABEYQAARGTAAERlwABEaYAARG1AAERxAABEdMAARHiAAER7gABEgAAARIPAAESHgABEi0AARI8AAESSwABEloAARJpAAESfgABEn8AARKHAAESkwABEqcAARK2AAESxQABEtQAARLYAAES5wABEvYAARMFAAETFAABEyMAARMvAAETQQABE1AAARNfAAETbgABE30AAROMAAETmwABE6oAARO/AAETwAABE8gAARPUAAET6AABE/cAARQGAAEUFQABFBkAARQoAAEUNwABFEYAARRVAAEUZAABFHAAARSCAAEUkQABFKAAARSvAAEUvgABFM0AARTcAAEU3QABFOwAARTvAAEU/gABFQ0AARUcAAEVMQABFTIAARU6AAEVRgABFVoAARVpAAEVeAABFYcAARWLAAEVmgABFakAARW4AAEVxwABFdYAARXiAAEV9AABFgMAARYSAAEWIQABFjAAARY/AAEWTgABFl0AARZyAAEWcwABFnsAARaHAAEWmwABFqoAARa5AAEWyAABFswAARbbAAEW6gABFvkAARcIAAEXFwABFyMAARc1AAEXRAABF1MAARdiAAEXcQABF4AAARePAAEXngABF7MAARe0AAEXvAABF8gAARfcAAEX6wABF/oAARgJAAEYDQABGBwAARgrAAEYOgABGEkAARhYAAEYZAABGHYAARiFAAEYlAABGKMAARiyAAEYwQABGNAAARjfAAEY9AABGPUAARj9AAEZCQABGR0AARksAAEZOwABGUoAARlOAAEZXQABGWwAARl7AAEZigABGZkAARmlAAEZtwABGcYAARnVAAEZ5AABGfMAARoCAAEaEQABGiAAARojAAEaMgABGkEAARpQAAEaZQABGmYAARpuAAEaegABGo4AARqdAAEarAABGrsAARq/AAEazgABGt0AARrsAAEa+wABGwoAARsWAAEbKAABGzcAARtGAAEbVQABG2QAARtzAAEbggABG5EAARuUAAEbrgABG68AARu1AAEbwQABG9cAARvmAAEb6QABG/gAARwHAAEcCwABHBAAARwRAAEcEgABHCEAARwwAAEcMwABHEIAARxRAAEcVQABHGQAARxzAAEcdAABHH4AARx/AAEcgAABHIEAARyWAAEclwABHJ8AARyrAAEcvwABHM4AARzdAAEc7AABHPAAARz/AAEdDgABHR0AAR0sAAEdOwABHUcAAR1ZAAEdaAABHXcAAR2GAAEdlQABHaQAAR2zAAEdwgABHdcAAR3YAAEd4AABHewAAR4AAAEeDwABHh4AAR4tAAEeMQABHkAAAR5PAAEeXgABHm0AAR58AAEeiAABHpoAAR6pAAEeuAABHscAAR7WAAEe5QABHvQAAR8DAAEfGAABHxkAAR8hAAEfLQABH0EAAR9QAAEfXwABH24AAR9yAAEfgQABH5AAAR+fAAEfrgABH70AAR/JAAEf2wABH+oAAR/5AAEgCAABIBcAASAxAAEgMgABIDgAASBEAAEgWgABIGkAASBsAAEgewABIIoAASCNAAEgnAABIKsAASCuAAEgvQABIMwAASDQAAEg3wABIO4AASDvAAEhBQABIQYAASEHAAEhCAABIQkAASEKAAEhCwABIQwAASENAAEhIgABISMAASErAAEhNwABIUsAASFaAAEhaQABIXgAASF8AAEhiwABIZoAASGpAAEhuAABIccAASHTAAEh5QABIfQAASIDAAEiEgABIiEAASIwAAEiPwABIk4AASJjAAEiZAABImwAASJ4AAEijAABIpsAASKqAAEiuQABIr0AASLMAAEi2wABIuoAASL5AAEjCAABIxQAASMmAAEjNQABI0QAASNTAAEjYgABI3EAASOAAAEjgQABI5AAASOlAAEjpgABI64AASO6AAEjzgABI90AASPsAAEj+wABI/8AASQOAAEkHQABJCwAASQ7AAEkSgABJFYAASRoAAEkdwABJIYAASSVAAEkpAABJLMAASTCAAEk0QABJOYAASTnAAEk7wABJPsAASUPAAElHgABJS0AASU8AAElQAABJU8AASVeAAElbQABJXwAASWLAAEllwABJakAASW4AAElxwABJdYAASXlAAEl9AABJgMAASYEAAEmEwABJigAASYpAAEmMQABJj0AASZRAAEmYAABJm8AASZ+AAEmggABJpEAASagAAEmrwABJr4AASbNAAEm2QABJusAASb6AAEnCQABJxgAAScnAAEnQQABJ0IAASdIAAEnVAABJ2oAASd5AAEnfAABJ4sAASeaAAEnnQABJ6wAASe7AAEnvgABJ80AASfcAAEn4AABJ+8AASf+AAEn/wABKAkAASgKAAEoCwABKAwAASghAAEoIgABKCoAASg2AAEoSgABKFkAAShoAAEodwABKHsAASiKAAEomQABKKgAASi3AAEoxgABKNIAASjkAAEo8wABKQIAASkRAAEpIAABKS8AASk+AAEpPwABKU4AASljAAEpZAABKWwAASl4AAEpjAABKZsAASmqAAEpuQABKb0AASnMAAEp2wABKeoAASn5AAEqCAABKhQAASomAAEqNQABKkQAASpTAAEqYgABKnEAASqAAAEqgQABKpAAASqlAAEqpgABKq4AASq6AAEqzgABKt0AASrsAAEq+wABKv8AASsOAAErHQABKywAASs7AAErSgABK1YAAStoAAErdwABK4YAASuVAAErpAABK7MAASvCAAEr0QABK9QAASvjAAEr8gABLAEAASwWAAEsFwABLB8AASwrAAEsPwABLE4AASxdAAEsbAABLHAAASx/AAEsjgABLJ0AASysAAEsuwABLMcAASzZAAEs6AABLPcAAS0GAAEtFQABLS8AAS0wAAEtNgABLUIAAS1YAAEtZwABLWoAAS15AAEtegABLYkAAS2MAAEtmwABLaoAAS2tAAEtvAABLcsAAS3PAAEt3gABLe0AAS3uAAEt+gABLfsAAS38AAEt/QABLf4AAS4TAAEuFAABLhwAAS4oAAEuPAABLksAAS5aAAEuaQABLm0AAS58AAEuiwABLpoAAS6pAAEuuAABLsQAAS7WAAEu5QABLvQAAS8DAAEvEgABLyEAAS8wAAEvMQABL0AAAS9VAAEvVgABL14AAS9qAAEvfgABL40AAS+cAAEvqwABL68AAS++AAEvzQABL9wAAS/rAAEv+gABMAYAATAYAAEwJwABMDYAATBFAAEwVAABMGMAATByAAEwcwABMIIAATCXAAEwmAABMKAAATCsAAEwwAABMM8AATDeAAEw7QABMPEAATEAAAExDwABMR4AATEtAAExPAABMUgAATFaAAExaQABMXgAATGHAAExlgABMaUAATG0AAExtQABMcQAATHZAAEx2gABMeIAATHuAAEyAgABMhEAATIgAAEyLwABMjMAATJCAAEyUQABMmAAATJvAAEyfgABMooAATKcAAEyqwABMroAATLJAAEy2AABMucAATL2AAEzBQABMwgAATMXAAEzJgABMzUAATNKAAEzSwABM1MAATNfAAEzcwABM4IAATORAAEzoAABM6QAATOzAAEzwgABM9EAATPgAAEz7wABM/sAATQNAAE0HAABNCsAATQ6AAE0SQABNFgAATRnAAE0dgABNIsAATSMAAE0lAABNKAAATS0AAE0wwABNNIAATThAAE05QABNPQAATUDAAE1EgABNSEAATUwAAE1PAABNU4AATVdAAE1bAABNXsAATWKAAE1pAABNaUAATWrAAE1twABNc0AATXcAAE13wABNe4AATX9AAE2AAABNg8AATYeAAE2IQABNjAAATY/AAE2QwABNlIAATZhAAE2YgABNm4AATZvAAE2cAABNnEAATZyAAE2hwABNogAATaQAAE2nAABNrAAATa/AAE2zgABNt0AATbhAAE28AABNv8AATcOAAE3HQABNywAATc4AAE3SgABN1kAATdoAAE3dwABN4YAATeVAAE3pAABN7MAATfIAAE3yQABN9EAATfdAAE38QABOAAAATgPAAE4HgABOCIAATgxAAE4QAABOE8AATheAAE4bQABOHkAATiLAAE4mgABOKkAATi4AAE4xwABONYAATjlAAE49AABOQkAATkKAAE5EgABOR4AATkyAAE5QQABOVAAATlfAAE5YwABOXIAATmBAAE5kAABOZ8AATmuAAE5ugABOcwAATnbAAE56gABOfkAAToIAAE6FwABOiYAATonAAE6NgABOksAATpMAAE6VAABOmAAATp0AAE6gwABOpIAATqhAAE6pQABOrQAATr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2AAFcOgABXEkAAVxYAAFcZwABXHYAAVyFAAFckQABXKMAAVyyAAFcwQABXNAAAVzfAAFc+QABXPoAAV0AAAFdDAABXSIAAV0xAAFdNAABXUMAAV1SAAFdVgABXVoAAV1bAAFdagABXXkAAV18AAFdiwABXZoAAV2eAAFdrQABXbwAAV29AAFdyQABXcoAAV3LAAFd4AABXeEAAV3pAAFd9QABXgkAAV4YAAFeJwABXjYAAV46AAFeSQABXlgAAV5nAAFedgABXoUAAV6RAAFeowABXrIAAV7BAAFe0AABXt8AAV7uAAFe/QABXwwAAV8hAAFfIgABXyoAAV82AAFfSgABX1kAAV9oAAFfdwABX3sAAV+KAAFfmQABX6gAAV+3AAFfxgABX9IAAV/kAAFf8wABYAIAAWARAAFgIAABYC8AAWA+AAFgTQABYGIAAWBjAAFgawABYHcAAWCLAAFgmgABYKkAAWC4AAFgvAABYMsAAWDaAAFg6QABYPgAAWEHAAFhEwABYSUAAWE0AAFhQwABYVIAAWFhAAFhcAABYX8AAWGOAAFhowABYaQAAWGsAAFhuAABYcwAAWHbAAFh6gABYfkAAWH9AAFiDAABYhsAAWIqAAFiOQABYkgAAWJUAAFiZgABYnUAAWKEAAFikwABYqIAAWKxAAFiwAABYs8AAWLSAAFi4QABYvAAAWL/AAFjFAABYxUAAWMdAAFjKQABYz0AAWNMAAFjWwABY2oAAWNuAAFjfQABY4wAAWObAAFjqgABY7kAAWPFAAFj1wABY+YAAWP1AAFkBAABZBMAAWQtAAFkLgABZDQAAWRAAAFkVgABZGUAAWRoAAFkdwABZIYAAWSKAAFkjwABZJAAAWSRAAFkoAABZK8AAWSyAAFkwQABZNAAAWTUAAFk4wABZPIAAWTzAAFlFQABZRYAAWUXAAFlGAABZRkAAWUaAAFlGwABZRwAAWUdAAFlHgABZR8AAWUgAAFlIQABZSIAAWUjAAFlOAABZTkAAWVBAAFlTQABZWEAAWVwAAFlfwABZY4AAWWSAAFloQABZbAAAWW/AAFlzgABZd0AAWXpAAFl+wABZgoAAWYZAAFmKAABZjcAAWZGAAFmVQABZmQAAWZ5AAFmegABZoIAAWaOAAFmogABZrEAAWbAAAFmzwABZtMAAWbiAAFm8QABZwAAAWc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pAAGVeAABlYcAAZWLAAGVmgABlakAAZW4AAGVxwABldYAAZXiAAGV9AABlgMAAZYSAAGWIQABljAAAZY/AAGWTgABll0AAZZyAAGWcwABlnsAAZaHAAGWmwABlqoAAZa5AAGWyAABlswAAZbbAAGW6gABlvkAAZcIAAGXFwABlyMAAZc1AAGXRAABl1MAAZdiAAGXcQABl4AAAZePAAGXngABl7MAAZe0AAGXvAABl8gAAZfcAAGX6wABl/oAAZgJAAGYDQABmBwAAZgrAAGYOgABmEkAAZhYAAGYZAABmHYAAZiFAAGYlAABmKMAAZiyAAGYwQABmNAAAZjfAAGY9AABmPUAAZj9AAGZCQABmR0AAZksAAGZOwABmUoAAZlOAAGZXQABmWwAAZl7AAGZigABmZkAAZmlAAGZtwABmcYAAZnVAAGZ5AABmfMAAZoCAAGaEQABmiAAAZo1AAGaNgABmj4AAZpKAAGaXgABmm0AAZp8AAGaiwABmo8AAZqeAAGarQABmrwAAZrLAAGa2gABmuYAAZr4AAGbBwABmxYAAZslAAGbNAABm0MAAZtSAAGbYQABm3YAAZt3AAGbfwABm4sAAZufAAGbrgABm70AAZvMAAGb0AABm98AAZvuAAGb/QABnAwAAZwbAAGcJwABnDkAAZxIAAGcVwABnGYAAZx1AAGchAABnJMAAZyiAAGcpQABnLQAAZzDAAGc0gABnOcAAZzoAAGc8AABnPwAAZ0QAAGdHwABnS4AAZ09AAGdQQABnVAAAZ1fAAGdbgABnX0AAZ2MAAGdmAABnaoAAZ25AAGdyAABndcAAZ3mAAGd9QABngQAAZ4TAAGeKAABnikAAZ4xAAGePQABnlEAAZ5gAAGebwABnn4AAZ6CAAGekQABnqAAAZ6vAAGevgABns0AAZ7ZAAGe6wABnvoAAZ8JAAGfGAABnycAAZ82AAGfRQABn1QAAZ9pAAGfagABn3IAAZ9+AAGfkgABn6EAAZ+wAAGfvwABn8MAAZ/SAAGf4QABn/AAAZ//AAGgDgABoBoAAaAsAAGgOwABoEoAAaBZAAGgaAABoHcAAaCGAAGglQABoKoAAaCrAAGgswABoL8AAaDTAAGg4gABoPEAAaEAAAGhBAABoRMAAaEiAAGhMQABoUAAAaFPAAGhWwABoW0AAaF8AAGhiwABoZoAAaGpAAGhuAABoccAAaHWAAGh6wABoewAAaH0AAGiAAABohQAAaIjAAGiMgABokEAAaJFAAGiVAABomMAAaJyAAGigQABopAAAaKcAAGirgABor0AAaLMAAGi2wABouoAAaL5AAGjCAABoxcAAaMsAAGjLQABozUAAaNBAAGjVQABo2QAAaNzAAGjggABo4YAAaOVAAGjpAABo7MAAaPCAAGj0QABo90AAaPvAAGj/gABpA0AAaQcAAGkKwABpDoAAaRJAAGkWAABpFsAAaR1AAGkdgABpHwAAaSIAAGkngABpK0AAaSwAAGkvwABpM4AAaTSAAGk1wABpNgAAaTZAAGk6AABpPcAAaT6AAGlCQABpRgAAaUcAAGlKwABpToAAaU7AAGlQwABpUQAAaVZAAGlWgABpWIAAaVuAAGlggABpZEAAaWgAAGlrwABpbMAAaXCAAGl0QABpeAAAaXvAAGl/gABpgoAAaYcAAGmKwABpjoAAaZJAAGmWAABpmcAAaZ2AAGmhQABppoAAaabAAGmowABpq8AAabDAAGm0gABpuEAAabwAAGm9AABpwMAAacSAAGnIQABpzAAAac/AAGnSwABp10AAadsAAGnewABp4oAAaeZAAGnqAABp7cAAafGAAGnyQABp+MAAafkAAGn6gABp/YAAagMAAGoGwABqB4AAagtAAGoPAABqEAAAahFAAGoRgABqEcAAahWAAGoZQABqGgAAah3AAGohgABqIoAAaiZAAGoqAABqKkAAai1AAGotgABqLcAAai4AAGouQABqM4AAajPAAGo1wABqOMAAaj3AAGpBgABqRUAAakkAAGpKAABqTcAAalGAAGpVQABqWQAAalzAAGpfwABqZEAAamgAAGprwABqb4AAanNAAGp3AABqesAAan6AAGqDwABqhAAAaoYAAGqJAABqjgAAapHAAGqVgABqmUAAappAAGqeAABqocAAaqWAAGqpQABqrQAAarAAAGq0gABquEAAarwAAGq/wABqw4AAasdAAGrLAABqzsAAatQAAGrUQABq1kAAatlAAGreQABq4gAAauXAAGrpgABq6oAAau5AAGryAABq9cAAavmAAGr9QABrAEAAawTAAGsIgABrDEAAaxAAAGsTwABrF4AAaxtAAGsfAABrJEAAaySAAGsmgABrKYAAay6AAGsyQABrNgAAaznAAGs6wABrPoAAa0JAAGtGAABrScAAa02AAGtQgABrVQAAa1jAAGtcgABrYEAAa2QAAGtnwABra4AAa29AAGtwAABrdoAAa3bAAGt4QABre0AAa4DAAGuEgABrhUAAa4kAAGuMwABrjYAAa5FAAGuVAABrlcAAa5mAAGudQABrnkAAa6IAAGulwABrpgAAa6gAAGuoQABrqIAAa63AAGuuAABrsAAAa7MAAGu4AABru8AAa7+AAGvDQABrxEAAa8gAAGvLwABrz4AAa9NAAGvXAABr2gAAa96AAGviQABr5gAAa+nAAGvtgABr8UAAa/UAAGv4wABr/gAAa/5AAGwAQABsA0AAbAhAAGwMAABsD8AAbBOAAGwUgABsGEAAbBwAAGwfwABsI4AAbCdAAGwqQABsLsAAbDKAAGw2QABsOgAAbD3AAGxBgABsRUAAbEkAAGxJwABsUEAAbFCAAGxSAABsVQAAbFqAAGxeQABsXwAAbGLAAGxmgABsZ0AAbGsAAGxuwABsb4AAbHNAAGx3AABseAAAbHvAAGx/gABsf8AAbIHAAGyCAABsh0AAbIeAAGyJgABsjIAAbJGAAGyVQABsmQAAbJzAAGydwABsoYAAbKVAAGypAABsrMAAbLCAAGyzgABsuAAAbLvAAGy/gABsw0AAbMcAAGzKwABszoAAbNJAAGzXgABs18AAbNnAAGzcwABs4cAAbOWAAGzpQABs7QAAbO4AAGzxwABs9YAAbPlAAGz9AABtAMAAbQPAAG0IQABtDAAAbQ/AAG0TgABtF0AAbRsAAG0ewABtIoAAbSNAAG0pwABtKgAAbSuAAG0ugABtNAAAbTfAAG04gABtPEAAbUAAAG1AwABtRIAAbUhAAG1JAABtTMAAbVCAAG1RgABtVUAAbVkAAG1ZQABtXMAAbV0AAG1dQABtXYAAbV3AAG1eAABtY0AAbWOAAG1lgABtaIAAbW2AAG1xQABtdQAAbXjAAG15wABtfYAAbYFAAG2FAABtiMAAbYkAAG2MwABtj8AAbZRAAG2YAABtm8AAbZ+AAG2jQABtpwAAbarAAG2ugABts8AAbbQAAG22AABtuQAAbb4AAG3BwABtxYAAbclAAG3KQABtzgAAbdHAAG3VgABt2UAAbd0AAG3gAABt5IAAbehAAG3sAABt78AAbfOAAG33QABt+wAAbf7AAG4EAABuBEAAbgZAAG4JQABuDkAAbhIAAG4VwABuGYAAbhqAAG4eQABuIgAAbiXAAG4pgABuKcAAbi2AAG4wgABuNQAAbjjAAG48gABuQEAAbkQAAG5HwABuS4AAbk9AAG5UgABuVMAAblbAAG5ZwABuXsAAbmKAAG5mQABuagAAbmsAAG5uwABucoAAbnZAAG56AABufcAAboDAAG6FQABuiQAAbozAAG6QgABulEAAbpgAAG6bwABunAAAbp/AAG6lAABupUAAbqdAAG6qQABur0AAbrMAAG62wABuuoAAbruAAG6/QABuwwAAbsbAAG7KgABuysAAbs6AAG7RgABu1gAAbtnAAG7dgABu4UAAbuUAAG7owABu7IAAbvBAAG7xAABu94AAbvfAAG75QABu/EAAbwHAAG8FgABvBkAAbwoAAG8NwABvDsAAbw/AAG8TgABvF0AAbxgAAG8bwABvH4AAbyCAAG8kQABvKAAAbyhAAG8qwABvKwAAbytAAG8wgABvMMAAbzLAAG81wABvOsAAbz6AAG9CQABvRgAAb0cAAG9KwABvToAAb1JAAG9WAABvWcAAb1zAAG9hQABvZQAAb2jAAG9sgABvcEAAb3QAAG93wABve4AAb4DAAG+BAABvgwAAb4YAAG+LAABvjsAAb5KAAG+WQABvl0AAb5sAAG+ewABvooAAb6ZAAG+qAABvrQAAb7GAAG+1QABvuQAAb7zAAG/AgABvxEAAb8gAAG/LwABv0QAAb9FAAG/TQABv1kAAb9tAAG/fAABv4sAAb+aAAG/ngABv60AAb+8AAG/ywABv9oAAb/pAAG/9QABwAcAAcAWAAHAJQABwDQAAcBDAAHAUgABwGEAAcBwAAHAcwABwI0AAcCOAAHAlAABwKAAAcC2AAHAxQABwMgAAcDXAAHA5gABwOoAAcDuAAHA7wABwP4AAcENAAHBEAABwR8AAcEuAAHBMgABwUEAAcFQAAHBUQABwVkAAcFaAAHBbwABwXAAAcF4AAHBhAABwZgAAcGnAAHBtgABwcUAAcHJAAHB2AABwecAAcH2AAHCBQABwhQAAcIgAAHCMgABwkEAAcJQAAHCXwABwm4AAcJ9AAHCjAABwo0AAcKcAAHCsQABwrIAAcK6AAHCxgABwtoAAcLpAAHC+AABwwcAAcMLAAHDGgABwykAAcM4AAHDRwABw1YAAcNiAAHDdAABw4MAAcOSAAHDoQABw7AAAcO/AAHDzgABw90AAcPgAAHD+gABw/sAAcQBAAHEDQABxCMAAcQyAAHENQABxEQAAcRTAAHEVgABxGUAAcR0AAHEdwABxIYAAcSVAAHEmQABxKgAAcS3AAHEuAABxMYAAcTHAAHEyAABxMkAAcTKAAHEywABxOAAAcThAAHE6QABxPUAAcUJAAHFGAABxScAAcU2AAHFOgABxUkAAcVYAAHFZwABxXYAAcWFAAHFkQABxaMAAcWyAAHFwQABxdAAAcXfAAHF7gABxf0AAcYMAAHGIQABxiIAAcYqAAHGNgABxkoAAcZZAAHGaAABxncAAcZ7AAHGigABxpkAAcaoAAHGtwABxsYAAcbSAAHG5AABxvMAAccCAAHHEQABxyAAAccvAAHHPgABxz8AAcdOAAHHYwABx2QAAcdsAAHHeAABx4wAAcebAAHHqgABx7kAAce9AAHHzAABx9sAAcfqAAHH+QAByAgAAcgUAAHIJgAByDUAAchEAAHIUwAByGIAAchxAAHIgAAByI8AAcikAAHIpQAByK0AAci5AAHIzQAByNwAAcjrAAHI+gAByP4AAckNAAHJHAABySsAAck6AAHJSQAByVUAAclnAAHJdgAByYUAAcmUAAHJowABybIAAcnBAAHJ0AAByeUAAcnmAAHJ7gAByfoAAcoOAAHKHQAByiwAAco7AAHKPwAByk4AAcpdAAHKbAABynsAAcqKAAHKlgAByqgAAcq3AAHKxgABytUAAcrkAAHK8wABywIAAcsRAAHLFAAByy4AAcsvAAHLNQABy0EAActXAAHLZgABy2kAAct4AAHLhwABy4sAAcuQAAHLkQABy6AAAcuvAAHLsgABy8EAAcvQAAHL1AABy+MAAcvyAAHL8wABy/sAAcv8AAHMEQABzBIAAcwaAAHMJgABzDoAAcxJAAHMWAABzGcAAcxrAAHMegABzIkAAcyYAAHMpwABzLYAAczCAAHM1AABzOMAAczyAAHNAQABzRAAAc0fAAHNLgABzT0AAc1SAAHNUwABzVsAAc1nAAHNewABzYoAAc2ZAAHNqAABzawAAc27AAHNygABzdkAAc3oAAHN9wABzgMAAc4VAAHOJAABzjMAAc5CAAHOUQABzmAAAc5vAAHOfgABzoEAAc6bAAHOnAABzqIAAc6uAAHOxAABztMAAc7WAAHO5QABzvQAAc74AAHO/QABzv4AAc7/AAHPDgABzx0AAc8gAAHPLwABzz4AAc9CAAHPUQABz2AAAc9hAAHPeQABz3oAAc97AAHPfAABz30AAc9+AAHPfwABz4AAAc+BAAHPggABz5cAAc+YAAHPoAABz6wAAc/AAAHPzwABz94AAc/tAAHP8QAB0AAAAdAPAAHQHgAB0C0AAdA8AAHQSAAB0FoAAdBpAAHQeAAB0IcAAdCWAAHQpQAB0LQAAdDDAAHQ2AAB0NkAAdDhAAHQ7QAB0QEAAdEQAAHRHwAB0S4AAdEyAAHRQQAB0VAAAdFfAAHRbgAB0X0AAdGJAAHRmwAB0aoAAdG5AAHRyAAB0dcAAdHmAAHR9QAB0fYAAdIFAAHSGgAB0hsAAdIjAAHSLwAB0kMAAdJSAAHSYQAB0nAAAdJ0AAHSgwAB0pIAAdKhAAHSsAAB0r8AAdLLAAHS3QAB0uwAAdL7AAHTCgAB0xkAAdMoAAHTNwAB0zgAAdNHAAHTXAAB010AAdNlAAHTcQAB04UAAdOUAAHTowAB07IAAdO2AAHTxQAB09QAAdPjAAHT8gAB1AEAAdQNAAHUHwAB1C4AAdQ9AAHUTAAB1FsAAdRqAAHUeQAB1IgAAdSdAAHUngAB1KYAAdSyAAHUxgAB1NUAAdTkAAHU8wAB1PcAAdUGAAHVFQAB1SQAAdUzAAHVQgAB1U4AAdVgAAHVbwAB1X4AAdWNAAHVnAAB1asAAdW6AAHVuwAB1coAAdXfAAHV4AAB1egAAdX0AAHWCAAB1hcAAdYmAAHWNQAB1jkAAdZIAAHWVwAB1mYAAdZ1AAHWhAAB1pAAAdaiAAHWsQAB1sAAAdbPAAHW3gAB1u0AAdb8AAHXCwAB1yAAAdchAAHXKQAB1zUAAddJAAHXWAAB12cAAdd2AAHXegAB14kAAdeYAAHXpwAB17YAAdfFAAHX0QAB1+MAAdfyAAHYAQAB2BAAAdgfAAHYLgAB2D0AAdhMAAHYYQAB2GIAAdhqAAHYdgAB2IoAAdiZAAHYqAAB2LcAAdi7AAHYygAB2NkAAdjoAAHY9wAB2QYAAdkSAAHZJAAB2TMAAdlCAAHZUQAB2WAAAdlvAAHZfgAB2Y0AAdmiAAHZowAB2asAAdm3AAHZywAB2doAAdnpAAHZ+AAB2fwAAdoLAAHaGgAB2ikAAdo4AAHaRwAB2lMAAdplAAHadAAB2oMAAdqSAAHaoQAB2rAAAdq/AAHazgAB2uMAAdrkAAHa7AAB2vgAAdsMAAHbGwAB2yoAAds5AAHbPQAB20wAAdtbAAHbagAB23kAAduIAAHblAAB26YAAdu1AAHbxAAB29MAAdviAAHb8QAB3AAAAdwPAAHcEgAB3CwAAdwtAAHcMwAB3D8AAdxVAAHcZAAB3GcAAdx2AAHchQAB3IkAAdyOAAHcjwAB3J4AAdytAAHcsAAB3L8AAdzOAAHc0gAB3OEAAdzwAAHc8QAB3PkAAdz6AAHdDwAB3RAAAd0YAAHdJAAB3TgAAd1HAAHdVgAB3WUAAd1pAAHdeAAB3YcAAd2WAAHdpQAB3bQAAd3AAAHd0gAB3eEAAd3wAAHd/wAB3g4AAd4dAAHeLAAB3jsAAd5QAAHeUQAB3lkAAd5lAAHeeQAB3ogAAd6XAAHepgAB3qoAAd65AAHeyAAB3tcAAd7mAAHe9QAB3wEAAd8TAAHfIgAB3zEAAd9AAAHfTwAB314AAd9tAAHffAAB338AAd+DAAHfhwAB34sAAd+TAAHflgAB35oAAd+bVSRudWxs1wAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABcAAAAaXxAPX3hkX3Jvb3RQYWNrYWdlViRjbGFzc1xfeGRfY29tbWVudHNfEBBfeGRfbW9kZWxNYW5hZ2VyXxAVX2NvbmZpZ3VyYXRpb25zQnlOYW1lXV94ZF9tb2RlbE5hbWVfEBdfbW9kZWxWZXJzaW9uSWRlbnRpZmllcoACgSVPgSVMgACBJU2AAIElTt4AAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAADgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAAAkAAAApAAAAFwAAAC8AAAAwAAAAMQAAADIAAAAzAAAAKQAAACkAAAAXXxAcWERCdWNrZXRGb3JDbGFzc2Vzd2FzRW5jb2RlZF8QGlhEQnVja2V0Rm9yUGFja2FnZXNzdG9yYWdlXxAcWERCdWNrZXRGb3JJbnRlcmZhY2Vzc3RvcmFnZV8QD194ZF9vd25pbmdNb2RlbF8QHVhEQnVja2V0Rm9yUGFja2FnZXN3YXNFbmNvZGVkVl9vd25lcl8QG1hEQnVja2V0Rm9yRGF0YVR5cGVzc3RvcmFnZVtfdmlzaWJpbGl0eV8QGVhEQnVja2V0Rm9yQ2xhc3Nlc3N0b3JhZ2VVX25hbWVfEB9YREJ1Y2tldEZvckludGVyZmFjZXN3YXNFbmNvZGVkXxAeWERCdWNrZXRGb3JEYXRhVHlwZXN3YXNFbmNvZGVkXxAQX3VuaXF1ZUVsZW1lbnRJRIAEgSVKgSVIgAGABIAAgSVJgSVLEACABYADgASABIAAUFNZRVPTAAAAOgAAADsAAAAOAAAAPAAAAHgAAAC0V05TLmtleXNaTlMub2JqZWN0c68QOwAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAABHAAAASAAAAEkAAABKAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAWgAAAFsAAABcAAAAXQAAAF4AAABfAAAAYAAAAGEAAABiAAAAYwAAAGQAAABlAAAAZgAAAGcAAABoAAAAaQAAAGoAAABrAAAAbAAAAG0AAABuAAAAbwAAAHAAAABxAAAAcgAAAHMAAAB0AAAAdQAAAHYAAAB3gAaAB4AIgAmACoALgAyADYAOgA+AEIARgBKAE4AUgBWAFoAXgBiAGYAagBuAHIAdgB6AH4AggCGAIoAjgCSAJYAmgCeAKIApgCqAK4AsgC2ALoAvgDCAMYAygDOANIA1gDaAN4A4gDmAOoA7gDyAPYA+gD+AQK8QOwAAAHkAAAB6AAAAewAAAHwAAAB9AAAAfgAAAH8AAACAAAAAgQAAAIIAAACDAAAAhAAAAIUAAACGAAAAhwAAAIgAAACJAAAAigAAAIsAAACMAAAAjQAAAI4AAACPAAAAkAAAAJEAAACSAAAAkwAAAJQAAACVAAAAlgAAAJcAAACYAAAAmQAAAJoAAACbAAAAnAAAAJ0AAACeAAAAnwAAAKAAAAChAAAAogAAAKMAAACkAAAApQAAAKYAAACnAAAAqAAAAKkAAACqAAAAqwAAAKwAAACtAAAArgAAAK8AAACwAAAAsQAAALIAAACzgEGBAzOBB0OBFhyBGLmBGbyBHrSBAoSBHv2BFOSBDEeBEkmBGCOBGV6BDNSBDbyBDhuBIKeBIO6BFniBESqBCf6BIWaBDfKBFIiBIauBIe+BBWiBIoCBD5yBGNCBFwaBB4aBGS+BC6WBG8eBCF6BHHWBIt2BCDKBGquBCOWBIySBF3yBE8uBI7KBAfiBBACBGzuBE/qBDpuBI/iBDQOBH0SBEM2BJQKBC3GBA4SBDZOAY18QE09idk9ibGl2aW91c0NoYW5uZWxcSW5ib3hNZXNzYWdlXUNvbnRhY3REZXZpY2VfEC5DaGFubmVsQ3JlYXRpb25XaXRoT3duZWREZXZpY2VQcm90b2NvbEluc3RhbmNlXxAWSWRlbnRpdHlTZXJ2ZXJVc2VyRGF0YV8QFU91dGJveEF0dGFjaG1lbnRDaHVua18QF1BlbmRpbmdEZWxldGVGcm9tU2VydmVyW0tleU1hdGVyaWFsVkJhY2t1cF8QFFBlcnNpc3RlZFRydXN0T3JpZ2luXxASUGVuZGluZ0dyb3VwTWVtYmVyXxAXS2V5Y2xvYWtSZXZva2VkSWRlbnRpdHlfEBxMaW5rQmV0d2VlblByb3RvY29sSW5zdGFuY2VzXxAVR3JvdXBWMlNlcnZlclVzZXJEYXRhXxAcQ29udGFjdEdyb3VwRGV0YWlsc1B1Ymxpc2hlZF8QEUNvbnRhY3RHcm91cE93bmVkXxASQ29udGFjdEdyb3VwSm9pbmVkXxAkVHJ1c3RFc3RhYmxpc2htZW50Q29tbWl0bWVudFJlY2VpdmVkXxAURGVsZXRlZE91dGJveE1lc3NhZ2VfEBBQcm90b2NvbEluc3RhbmNlXktleWNsb2FrU2VydmVyXxAbQ29udGFjdEdyb3VwVjJQZW5kaW5nTWVtYmVyXxAtQ29udGFjdE93bmVkSWRlbnRpdHlEZWxldGlvblNpZ25hdHVyZVJlY2VpdmVkXxAaQ29udGFjdEdyb3VwRGV0YWlsc1RydXN0ZWRfEB1Db250YWN0SWRlbnRpdHlEZXRhaWxzVHJ1c3RlZF8QGEdyb3VwVjJTaWduYXR1cmVSZWNlaXZlZF8QElBlbmRpbmdTZXJ2ZXJRdWVyeV8QFkluYm94QXR0YWNobWVudFNlc3Npb25fEA9DYWNoZWRXZWxsS25vd25bT3duZWREZXZpY2VeU2VydmVyVXNlckRhdGFfEDBDaGFubmVsQ3JlYXRpb25XaXRoQ29udGFjdERldmljZVByb3RvY29sSW5zdGFuY2VfEA9Db250YWN0SWRlbnRpdHlfEBNHcm91cFNlcnZlclVzZXJEYXRhXENvbnRhY3RHcm91cF1PdXRib3hNZXNzYWdlXkNvbnRhY3RHcm91cFYyXU1lc3NhZ2VIZWFkZXJfEBVQZXJzaXN0ZWRFbmdpbmVEaWFsb2dfEBRDb250YWN0R3JvdXBWMk1lbWJlcl8QEE91dGJveEF0dGFjaG1lbnRfEBVDb250YWN0R3JvdXBWMkRldGFpbHNdU2VydmVyU2Vzc2lvbl8QMlByb3RvY29sSW5zdGFuY2VXYWl0aW5nRm9yQ29udGFjdFVwZ3JhZGVUb09uZVRvT25lXxAfQ29udGFjdElkZW50aXR5RGV0YWlsc1B1Ymxpc2hlZF8QG011dHVhbFNjYW5TaWduYXR1cmVSZWNlaXZlZFlQcm92aXNpb25fEBRJbmJveEF0dGFjaG1lbnRDaHVua18QF091dGJveEF0dGFjaG1lbnRTZXNzaW9uXxAWQ29udGFjdElkZW50aXR5RGV0YWlsc18QHU93bmVkSWRlbnRpdHlEZXRhaWxzUHVibGlzaGVkXxAPUmVjZWl2ZWRNZXNzYWdlXxATQ29udGFjdEdyb3VwRGV0YWlsc1lCYWNrdXBLZXlfEBdPd25lZElkZW50aXR5TWFza2luZ1VJRF8QJENoYW5uZWxDcmVhdGlvblBpbmdTaWduYXR1cmVSZWNlaXZlZF1Pd25lZElkZW50aXR5XxAPSW5ib3hBdHRhY2htZW50XxAZQ29udGFjdEdyb3VwRGV0YWlsc0xhdGVzdN8QEAAAAPEAAADyAAAA8wAAAPQAAAAhAAAA9QAAAPYAAAAjAAAA9wAAAPgAAAAOAAAAJQAAAPkAAAD6AAAAKAAAAPsAAAD8AAAA/QAAACkAAAApAAAAFAAAAQEAAAECAAAAMQAAACkAAAD8AAABBQAAAD0AAAD8AAABCAAAAQkAAAEKXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlW19pc0Fic3RyYWN0gEOAa4AEgASAAoBEgQMRgASAQ4EDE4AGgEOBAzKAQggTAAAAAQePbTVXb3JkZXJlZNMAAAA6AAAAOwAAAA4AAAEOAAABEAAAALShAAABD4BFoQAAARGARoBjXlhEX1BTdGVyZW90eXBl2QAAACEAAAAlAAABFQAAAA4AAAAoAAABFgAAACMAAAD7AAABFwAAAHkAAAEPAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAABH18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYBBgEWAQ4BqgACABAiAR9MAAAA6AAAAOwAAAA4AAAEhAAABKwAAALSpAAABIgAAASMAAAEkAAABJQAAASYAAAEnAAABKAAAASkAAAEqgEiASYBKgEuATIBNgE6AT4BQqQAAASwAAAEtAAABLgAAAS8AAAEwAAABMQAAATIAAAEzAAABNIBRgFWAVoBcgF2AX4BhgGSAaIBjXxATWERQTUNvbXBvdW5kSW5kZXhlc18QEFhEX1BTS19lbGVtZW50SURfEBlYRFBNVW5pcXVlbmVzc0NvbnN0cmFpbnRzXxAaWERfUFNLX3ZlcnNpb25IYXNoTW9kaWZpZXJfEBlYRF9QU0tfZmV0Y2hSZXF1ZXN0c0FycmF5XxARWERfUFNLX2lzQWJzdHJhY3RfEA9YRF9QU0tfdXNlckluZm9fEBNYRF9QU0tfY2xhc3NNYXBwaW5nXxAWWERfUFNLX2VudGl0eUNsYXN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lZWRJc0luUHJvZ3Jlc3NfECV0aW1lc3RhbXBPZkxhc3RGdWxsUmF0Y2hldFNlbnRNZXNzYWdlXxAUcmVtb3RlQ3J5cHRvSWRlbnRpdHlfEBBjdXJyZW50RGV2aWNlVWlkXxASY3J5cHRvU3VpdGVWZXJzaW9uXxAiZnVsbFJhdGNoZXRpbmdDb3VudE9mTGFzdFByb3Zpc2lvbl8QGnRpbWVzdGFtcE9mTGFzdEZ1bGxSYXRjaGV0W2lzQ29uZmlybWVkXxAZbnVtYmVyT2ZFbmNyeXB0ZWRNZXNzYWdlc18QOG51bWJlck9mRW5jcnlwdGVkTWVzc2FnZXNTaW5jZUxhc3RGdWxsUmF0Y2hldFNlbnRNZXNzYWdlWnByb3Zpc2lvbnPfEBIAAAFAAAABQQAAAUIAAAJEAAAAIQAAAUQAAAFFAAACRQAAACMAAAFDAAACRgAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAFwAAABcAAAApAAAAeQAAAQoAAAEKAAACTgAAADEAAAEKAAAA/AAAAQoAAAJSAAACFAAAAQoAAAEKAAACVgAAAQpfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIBBCAiAfQiAQwiApYBsCAiAfAgS6imUldMAAAA6AAAAOwAAAA4AAAJaAAACXQAAALSiAAACWwAAAlyAfoB/ogAAAl4AAAJfgICAk4BjXxASWERfUFByb3BTdGVyZW90eXBlXxASWERfUEF0dF9TdGVyZW90eXBl2QAAACEAAAAlAAACZAAAAA4AAAAoAAACZQAAACMAAAD7AAACZgAAAiQAAAJbAAAA/AAAARsAAAAXAAAAKQAAADEAAAEKAAACbl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYB7gH6AQ4BqgACABAiAgdMAAAA6AAAAOwAAAA4AAAJwAAACeQAAALSoAAACcQAAAnI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BSAAAACgAAAFJAAAAFwAABbwAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxUAAAEKAAABCgAAABcAAAEKgACA0IAAgOYICAgIgFSAlQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxYAAAEKAAABCgAAABcAAAEKgACAYIAAgOYICAgIgFSAlggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABbwAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxcAAAEKAAABCgAAABcAAAEKgACA0IAAgOYICAgIgFSAlwgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAABeoAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxgAAAEKAAABCgAAABcAAAEKgACA1IAAgOYICAgIgFSAmAgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxkAAAEKAAABCgAAABcAAAEKgACAAIAAgOYICAgIgFSAmQgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAGQQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAAxoAAAEKAAABCgAAABcAAAEKgACAAIAAgOYICAgIgFSAmggIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAABcAAAAXAAAGQQAAAQoAAAEKAAA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AAQoAAAEKAAAAFwAAAQqAAIEB84AAgQufCAgICIBUgQHtCAiAAAjfEA8AAAFAAAABQQAAAUIAAAAhAAABQwAAAUQAAAFFAAAAIwAAAUYAAAAOAAAAJQAAAUcAAAFIAAAAKAAAAUkAAAAXAAAAmwAAABcAAJEzAAABCgAAAQoAAAEKAAAAMQAAAQoAAAFSAAAUwQAAAQoAAAEKAAAAFwAAAQqAAIELpYAAgQufCAgICIBUgQHuCAiAAAjfEBQAAAD7AACSLAAAki0AAJIuAACSLwAAkjAAAJIxAAAAIQAAAA4AAJIyAAAAJQAAkjMAAAAoAACSNAAAkjUAAJI2AACSNwAAkjgAAJI5AAAAIwAABCwAAAD8AAAA/AAAkj0AAAApAAABAgAAAPwAAAAUAAABBQAAACkAAABfAACSRQAAkkYAAAApAAAAKQAAAPwAAJJKAACSSwAAAQIAAAAxXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNvcmRlcmVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNzdG9yYWdlXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNkdXBsaWNhdGVzCYBDgEOBC6eABIEDEYBDgAKBAxOABIAogQ6CgQumgASABIBDgQu4gQ6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AABcAAJMZAAAAFwAAoqcAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTEAAABCgAAAQoAAAAXAAABCoAAgQzAgACBDPcICAgIgFSBAfEICIAACNIAAAA7AAAADgAAo80AAAFaoQAAo86BDQGAU9cAAAAOAAAAJQAAo9EAAAAhAAAAKAAAo9IAAAAjAACj0wAAABcAAACHAAAAhwAAo9cAAACtAAAAMVlfc3BlY2lmaWNYX2dlbmVyYWyBDeuAAIEM1IEM1IENAoENAxMAAAABKiDez98QFAAAAPsAAKPbAACj3AAAo90AAKPeAACj3wAAo+AAAAAhAAAADgAAo+EAAAAlAACj4gAAACgAAKPjAACj5AAAo+UAAKPmAACj5wAAo+gAAAAjAAAELAAAAPwAAAD8AACj7AAAACkAAAECAAAA/AAAABQAAAEFAAAAKQAAAHEAAKP0AACj9QAAACkAAAApAAAA/AAAo/kAAKP6AAABAgAAADFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc29yZGVyZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3N0b3JhZ2VfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc2R1cGxpY2F0ZXMJgEOAQ4ENBYAEgQMRgEO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A08UAANPGAADTxwAA08gAANPJAADTygAA08uBELKBELOBELSBELWBELaBELeBELiAY98QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABTXAAAAFwAA0xEAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABS+AAABCgAAAQoAAAAXAAABCoAAgQHzgACBELAICAgIgFSBAesICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABqsAAAAFwAA0xEAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABS/AAABCgAAAQoAAAAXAAABCoAAgQJpgACBELAICAgIgFSBAewICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAABqsAAAAFwAA0xEAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTAAAABCgAAAQoAAAAXAAABCoAAgQJpgACBELAICAgIgFSBAe0ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAACxAAAAFwAA0xEAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTBAAABCgAAAQoAAAAXAAABCoAAgQtxgACBELAICAgIgFSBAe4ICIAACN8QDwAAAUAAAAFBAAABQgAAACEAAAFDAAABRAAAAUUAAAAjAAABRgAAAA4AAAAlAAABRwAAAUgAAAAoAAABSQAAABcAAAG2AAAAFwAA0xEAAAEKAAABCgAAAQoAAAAxAAABCgAAAVIAABTCAAABCgAAAQoAAAAXAAABCoAAgGCAAIEQsAgICAiAVIEB7wgIgAAI3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwAAAbYAAAAXAADTEQAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMMAAAEKAAABCgA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JAAAAFwAAXi8AAAAXAAD+FgAAAQoAAAEKAAABCgAAADEAAAEKAAABUgAAFMQAAAEKAAABCgAAABcAAAEKgACBE7eAAIET7ggICAiAVIEB8QgIgAAI0gAAADsAAAAOAAD/PAAAAVqhAAD/PYET+IBT1wAAAA4AAAAlAACj0QAAACEAAAAoAACj0gAAACMAAKPTAAAAFwAAAKUAAAClAAD/RAAAAKoAAAAxgQ3rgACBE8uBE8uBE/mBE/oTAAAAASUVJj3fEBQAAAD7AAD/SAAA/0kAAP9KAAD/SwAA/0wAAP9NAAAAIQAAAA4AAP9OAAAAJQAA/08AAAAoAAD/UAAA/1EAAP9SAAD/UwAA/1QAAP9VAAAAIwAABCwAAAD8AAAA/AAA/1kAAAApAAABAgAAAPwAAAAUAAABBQAAACkAAABuAAD/YQAA/2IAAAApAAAAKQAAAPwAAP9mAAD/ZwAAAQIAAAAxXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNvcmRlcmVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNzdG9yYWdlXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNkdXBsaWNhdGVzCYBDgEOBE/yABIEDEYBDgAKBAxOABIA3gRSFgRP7gAS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lZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3N0b3JhZ2VfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc2R1cGxpY2F0ZXMJgEOAQ4EY0oAEgQMRgEOAAoEDE4AEgCSBGSyBGNGABIAEgEOBGOOBGS2BAxES10yMtdMAAAA6AAAAOwAAAA4AAT4oAAE+KgAAALShAAABD4BFoQABPiuBGNOAY9kAAAAhAAAAJQABPi4AAAAOAAAAKAABPi8AAAAjAAAA+wABPjAAAACXAAABDwAAAPwAAAEbAAAAFwAAACkAAAAxAAABCgABPjhfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGNCARYBDgGqAAIAECIEY1NMAAAA6AAAAOwAAAA4AAT46AAE+RAAAALSpAAABIgAAASMAAAEkAAABJQAAASYAAAEnAAABKAAAASkAAAEqgEiASYBKgEuATIBNgE6AT4BQqQABPkUAAT5GAAE+RwABPkgAAT5JAAE+SgABPksAAT5MAAE+TYEY1YEY14EY2IEY2oEY24EY3YEY3oEY4IEY4YBj3xAPAAABQAAAAUEAAAFCAAAAIQAAAUMAAAFEAAABRQAAACMAAAFGAAAADgAAACUAAAFHAAABSAAAACgAAAFJAAAAFwABPlEAAAAXAAE+KwAAAQoAAAEKAAABCgA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AAKRrAACkbQAApJIAAKSUAACklgAApJgAAKSaAACknAAApJ4AAKSgAACkogAApKQAAKSmAACkvAAApM8AAKTrAAClCAAApSQAAKU4AAClSgAApWAAAKV5AACl9AAApfoAAKYDAACmEAAAphwAAKYmAACmMAAApjsAAKZGAACmUwAAplsAAKZdAACmXwAApmEAAKZjAACmZAAApmUAAKZmAACmZwAApmkAAKZrAACmbAAApm0AAKZvAACmcAAApoEAAKaCAACmhAAAppUAAKagAACmqQAAprgAAKbFAACmzQAAptYAAKbnAACm+gAApwsAAKceAACnNQAAp0cAAKfCAACnxAAAp8YAAKfIAACnygAAp8sAAKfMAACnzQAAp84AAKfQAACn0gAAp9MAAKfUAACn1gAAp9cAAKhSAACoVAAAqFYAAKhYAACoWgAAqFsAAKhcAACoXQAAqF4AAKhgAACoYgAAqGMAAKhkAACoZgAAqGcAAKh4AACofQAAqH8AAKiBAACokgAAqJ8AAKihAACoowAAqKUAAKinAACougAAqNEAAKjjAACpXgAAqWAAAKliAACpZAAAqWYAAKlnAACpaAAAqWkAAKlqAACpbAAAqW4AAKlvAACpcAAAqXIAAKlzAACp7gAAqfAAAKnyAACp9AAAqfYAAKn3AACp+AAAqfkAAKn6AACp/AAAqf4AAKn/AACqAAAAqgIAAKoDAACqFAAAqhUAAKoXAACqkgAAqpQAAKqWAACqmAAAqpoAAKqbAACqnAAAqp0AAKqeAACqoAAAqqIAAKqjAACqpAAAqqYAAKqnAACqqAAAqyMAAKslAACrJwAAqykAAKsrAACrLAAAqy0AAKsuAACrLwAAqzEAAKszAACrNAAAqzUAAKs3AACrOAAAq1EAAKtSAACrUwAAq1UAAKtmAACrfAAAq4kAAKuWAACsEQAArBMAAKwVAACsFwAArBkAAKwaAACsGwAArBwAAKwdAACsHwAArCEAAKwiAACsIwAArCUAAKwmAACsVwAArFkAAKxbAACsXQAArF4AAKxgAACsdwAArIgAAKyWAACsrwAArL0AAKzSAACs5gAArP0AAK0PAACtigAArYwAAK2OAACtkAAArZIAAK2TAACtlAAArZUAAK2WAACtmAAArZoAAK2bAACtnAAArZ4AAK2fAACttQAArcYAAK3bAACt+AAArg0AAK4bAACuMAAArkQAAK5bAACubQAAroYAAK7FAACuxwAArskAAK7LAACuzQAArs8AAK7RAACu0wAArtUAAK7XAACu2QAArtsAAK7dAACu3wAAruEAAK7jAACvIgAAryQAAK8mAACvKAAAryoAAK8sAACvLwAArzIAAK81AACvOAAArzsAAK8+AACvQQAAr0QAAK9HAACvSgAAr0wAAK9eAACvcwAAr64AAK/nAACwDwAAsDcAALBOAACwYQAAsHYAALCbAACwuAAAsMQAALDgAACxGwAAsSYAALG5AACx3AAAsfwAALIcAACyHgAAsiAAALIiAACyJAAAsiYAALInAACyKAAAsioAALIrAACyLQAAsi4AALIwAACyMgAAsjMAALI0AACyNgAAsjcAALI8AACyVQAAsl4AALJgAACyYgAAsmsAALJtAACybwAAsnEAALKGAACymwAAsuQAALMIAACzLwAAs1MAALNVAACzVwAAs1kAALNbAACzXQAAs18AALNgAACzYgAAs3sAALOcAACzngAAs6AAALOiAACzpAAAs6YAALOoAACzqgAAs6wAALPNAACzzwAAs9EAALPTAACz1QAAs9cAALPZAACz2wAAs90AALPfAACz/QAAtBsAALQuAAC0QgAAtFcAALR0AAC0iAAAtJ4AALUZAAC1GwAAtR0AALUfAAC1IQAAtSIAALUjAAC1JAAAtSUAALUnAAC1KQAAtSoAALUrAAC1LQAAtS4AALWpAAC1qwAAta0AALWvAAC1sQAAtbIAALWzAAC1tAAAtbUAALW3AAC1uQAAtboAALW7AAC1vQAAtb4AALY5AAC2OwAAtj0AALY/AAC2QQAAtkIAALZDAAC2RAAAtkUAALZHAAC2SQAAtkoAALZLAAC2TQAAtk4AALZnAAC2aAAAtmkAALZrAAC25gAAtugAALbqAAC27AAAtu4AALbvAAC28AAAtvEAALbyAAC29AAAtvYAALb3AAC2+AAAtvoAALb7AAC3dgAAt3gAALd6AAC3fAAAt34AALd/AAC3gAAAt4EAALeCAAC3hAAAt4YAALeHAAC3iAAAt4oAALeLAAC4BgAAuAgAALgKAAC4DAAAuA4AALgPAAC4EAAAuBEAALgSAAC4FAAAuBYAALgXAAC4GAAAuBoAALgbAAC4lgAAuJgAALiaAAC4nAAAuJ4AALifAAC4oAAAuKEAALiiAAC4pAAAuKYAALinAAC4qAAAuKoAALirAAC5JgAAuSgAALkqAAC5LAAAuS4AALkvAAC5MAAAuTEAALkyAAC5NAAAuTYAALk3AAC5OAAAuToAALk7AAC5hAAAuagAALnPAAC58wAAufUAALn3AAC5+QAAufsAALn9AAC5/wAAugAAALoCAAC6GwAAujgAALo6AAC6PAAAuj4AALpAAAC6QgAAukQAALpGAAC6YwAAumUAALpnAAC6aQAAumsAALptAAC6bwAAunEAALpzAAC6kwAAur4AALrYAAC68QAAuwsAALsrAAC7TgAAu8kAALvLAAC7zQAAu88AALvRAAC70gAAu9MAALvUAAC71QAAu9cAALvZAAC72gAAu9sAALvdAAC73gAAvFkAALxbAAC8XQAAvF8AALxhAAC8YgAAvGMAALxkAAC8ZQAAvGcAALxpAAC8agAAvGsAALxtAAC8bgAAvOkAALzrAAC87QAAvO8AALzxAAC88gAAvPMAALz0AAC89QAAvPcAALz5AAC8+gAAvPsAALz9AAC8/gAAvXkAAL17AAC9fQAAvX8AAL2BAAC9ggAAvYMAAL2EAAC9hQAAvYcAAL2JAAC9igAAvYsAAL2NAAC9jgAAvZEAAL4MAAC+DgAAvhAAAL4SAAC+FAAAvhUAAL4WAAC+FwAAvhgAAL4aAAC+HAAAvh0AAL4eAAC+IAAAviEAAL6cAAC+ngAAvqAAAL6iAAC+pAAAvqUAAL6mAAC+pwAAvqgAAL6qAAC+rAAAvq0AAL6uAAC+sAAAvrEAAL7AAAC/OwAAvz0AAL8/AAC/QQAAv0MAAL9EAAC/RQAAv0YAAL9HAAC/SQAAv0sAAL9MAAC/TQAAv08AAL9QAAC/YQAAv28AAL+IAAC/lgAAv6MAAL+2AAC/zQAAv98AAMByAADAlQAAwLUAAMDVAADA1wAAwNkAAMDbAADA3QAAwN8AAMDgAADA4QAAwOMAAMDkAADA5gAAwOcAAMDpAADA6wAAwOwAAMDtAADA7wAAwPAAAMD1AADBDgAAwRcAAMEZAADBGwAAwSQAAMEmAADBKAAAwSoAAMFzAADBlwAAwb4AAMHiAADB5AAAweYAAMHoAADB6gAAwewAAMHuAADB7wAAwfEAAMIKAADCKwAAwi0AAMIvAADCMQAAwjMAAMI1AADCNwAAwjkAAMI7AADCXAAAwl4AAMJgAADCYgAAwmQAAMJmAADCaAAAwmoAAMJsAADCbgAAwukAAMLrAADC7QAAwu8AAMLxAADC8gAAwvMAAML0AADC9QAAwvcAAML5AADC+gAAwvsAAML9AADC/gAAw3kAAMN7AADDfQAAw38AAMOBAADDggAAw4MAAMOEAADDhQAAw4cAAMOJAADDigAAw4sAAMONAADDjgAAxAkAAMQLAADEDQAAxA8AAMQRAADEEgAAxBMAAMQUAADEFQAAxBcAAMQZAADEGgAAxBsAAMQdAADEHgAAxDcAAMQ4AADEOQAAxDsAAMS2AADEuAAAxLoAAMS8AADEvgAAxL8AAMTAAADEwQAAxMIAAMTEAADExgAAxMcAAMTIAADEygAAxMsAAMVGAADFSAAAxUoAAMVMAADFTgAAxU8AAMVQAADFUQAAxVIAAMVUAADFVgAAxVcAAMVYAADFWgAAxVsAAMVcAADF1wAAxdkAAMXbAADF3QAAxd8AAMXgAADF4QAAxeIAAMXjAADF5QAAxecAAMXoAADF6QAAxesAAMXsAADGZwAAxmkAAMZrAADGbQAAxm8AAMZwAADGcQAAxnIAAMZzAADGdQAAxncAAMZ4AADGeQAAxnsAAMZ8AADG9wAAxvkAAMb7AADG/QAAxv8AAMcAAADHAQAAxwIAAMcDAADHBQAAxwcAAMcIAADHCQAAxwsAAMcMAADHVQAAx3kAAMegAADHxAAAx8YAAMfIAADHygAAx8wAAMfOAADH0AAAx9EAAMfTAADH7AAAyAkAAMgLAADIDQAAyA8AAMgRAADIEwAAyBUAAMgXAADINAAAyDYAAMg4AADIOgAAyDwAAMg+AADIQAAAyEIAAMhEAADIvwAAyMEAAMjDAADIxQAAyMcAAMjIAADIyQAAyMoAAMjLAADIzQAAyM8AAMjQAADI0QAAyNMAAMjUAADJTwAAyVEAAMlTAADJVQAAyVcAAMlYAADJWQAAyVoAAMlbAADJXQAAyV8AAMlgAADJYQAAyWMAAMlkAADJ3wAAyeEAAMnjAADJ5QAAyecAAMnoAADJ6QAAyeoAAMnrAADJ7QAAye8AAMnwAADJ8QAAyfMAAMn0AADKbwAAynEAAMpzAADKdQAAyncAAMp4AADKeQAAynoAAMp7AADKfQAAyn8AAMqAAADKgQAAyoMAAMqEAADK/wAAywEAAMsDAADLBQAAywcAAMsIAADLCQAAywoAAMsLAADLDQAAyw8AAMsQAADLEQAAyxMAAMsUAADLjwAAy5EAAMuTAADLlQAAy5cAAMuYAADLmQAAy5oAAMubAADLnQAAy58AAMugAADLoQAAy6MAAMukAADLtgAAzDEAAMwzAADMNQAAzDcAAMw5AADMOgAAzDsAAMw8AADMPQAAzD8AAMxBAADMQgAAzEMAAMxFAADMRgAAzNkAAMz8AADNHAAAzTwAAM0+AADNQAAAzUIAAM1EAADNRgAAzUcAAM1IAADNSgAAzUsAAM1NAADNTgAAzVAAAM1SAADNUwAAzVQAAM1WAADNVwAAzVwAAM11AADNfgAAzYAAAM2CAADNiwAAzY0AAM2PAADNkQAAzdoAAM3+AADOJQAAzkkAAM5LAADOTQAAzk8AAM5RAADOUwAAzlUAAM5WAADOWAAAznEAAM6SAADOlAAAzpYAAM6YAADOmgAAzpwAAM6eAADOoAAAzqIAAM7DAADOxQAAzscAAM7JAADOywAAzs0AAM7PAADO0QAAztMAAM7VAADPUAAAz1IAAM9UAADPVgAAz1gAAM9ZAADPWgAAz1sAAM9cAADPXgAAz2AAAM9hAADPYgAAz2QAAM9lAADP4AAAz+IAAM/kAADP5gAAz+gAAM/pAADP6gAAz+sAAM/sAADP7gAAz/AAAM/xAADP8gAAz/QAAM/1AADQcAAA0HIAANB0AADQdgAA0HgAANB5AADQegAA0HsAANB8AADQfgAA0IAAANCBAADQggAA0IQAANCFAADQngAA0J8AANCgAADQogAA0R0AANEfAADRIQAA0SMAANElAADRJgAA0ScAANEoAADRKQAA0SsAANEtAADRLgAA0S8AANExAADRMgAA0a0AANGvAADRsQAA0bMAANG1AADRtgAA0bcAANG4AADRuQAA0bsAANG9AADRvgAA0b8AANHBAADRwgAA0j0AANI/AADSQQAA0kMAANJFAADSRgAA0kcAANJIAADSSQAA0ksAANJNAADSTgAA0k8AANJRAADSUgAA0s0AANLPAADS0QAA0tMAANLVAADS1gAA0tcAANLYAADS2QAA0tsAANLdAADS3gAA0t8AANLhAADS4gAA010AANNfAADTYQAA02MAANNlAADTZgAA02cAANNoAADTaQAA02sAANNtAADTbgAA028AANNxAADTcgAA07sAANPfAADUBgAA1CoAANQsAADULgAA1DAAANQyAADUNAAA1DYAANQ3AADUOQAA1FIAANRvAADUcQAA1HMAANR1AADUdwAA1HkAANR7AADUfQAA1JoAANScAADUngAA1KAAANSiAADUpAAA1KYAANSoAADUqgAA1SUAANUnAADVKQAA1SsAANUtAADVLgAA1S8AANUwAADVMQAA1TMAANU1AADVNgAA1TcAANU5AADVOgAA1TwAANW3AADVuQAA1bsAANW9AADVvwAA1cAAANXBAADVwgAA1cMAANXFAADVxwAA1cgAANXJAADVywAA1cwAANZHAADWSQAA1ksAANZNAADWTwAA1lAAANZRAADWUgAA1lMAANZVAADWVwAA1lgAANZZAADWWwAA1lwAANbXAADW2QAA1tsAANbdAADW3wAA1uAAANbhAADW4gAA1uMAANblAADW5wAA1ugAANbpAADW6wAA1uwAANbvAADXagAA12wAANduAADXcAAA13IAANdzAADXdAAA13UAANd2AADXeAAA13oAANd7AADXfAAA134AANd/AADX+gAA1/wAANf+AADYAAAA2AIAANgDAADYBAAA2AUAANgGAADYCAAA2AoAANgLAADYDAAA2A4AANgPAADYigAA2IwAANiOAADYkAAA2JIAANiTAADYlAAA2JUAANiWAADYmAAA2JoAANibAADYnAAA2J4AANifAADZMgAA2VUAANl1AADZlQAA2ZcAANmZAADZmwAA2Z0AANmfAADZoAAA2aEAANmjAADZpAAA2aYAANmnAADZqQAA2asAANmsAADZrQAA2a8AANmwAADZtQAA2c4AANnXAADZ2QAA2dsAANnkAADZ5gAA2egAANnqAADaMwAA2lcAANp+AADaogAA2qQAANqmAADaqAAA2qoAANqsAADargAA2q8AANqxAADaygAA2usAANrtAADa7wAA2vEAANrzAADa9QAA2vcAANr5AADa+wAA2xwAANseAADbIAAA2yIAANskAADbJgAA2ygAANsqAADbLAAA2y4AANupAADbqwAA260AANuvAADbsQAA27IAANuzAADbtAAA27UAANu3AADbuQAA27oAANu7AADbvQAA274AANw5AADcOwAA3D0AANw/AADcQQAA3EIAANxDAADcRAAA3EUAANxHAADcSQAA3EoAANxLAADcTQAA3E4AANzJAADcywAA3M0AANzPAADc0QAA3NIAANzTAADc1AAA3NUAANzXAADc2QAA3NoAANzbAADc3QAA3N4AANz3AADc+AAA3PkAANz7AADddgAA3XgAAN16AADdfAAA3X4AAN1/AADdgAAA3YEAAN2CAADdhAAA3YYAAN2HAADdiAAA3YoAAN2LAADeBgAA3ggAAN4KAADeDAAA3g4AAN4PAADeEAAA3hEAAN4SAADeFAAA3hYAAN4XAADeGAAA3hoAAN4bAADelgAA3pgAAN6aAADenAAA3p4AAN6fAADeoAAA3qEAAN6iAADepAAA3qYAAN6nAADeqAAA3qoAAN6rAADfJgAA3ygAAN8qAADfLAAA3y4AAN8vAADfMAAA3zEAAN8yAADfNAAA3zYAAN83AADfOAAA3zoAAN87AADftgAA37gAAN+6AADfvAAA374AAN+/AADfwAAA38EAAN/CAADfxAAA38YAAN/HAADfyAAA38oAAN/LAADgFAAA4DgAAOBfAADggwAA4IUAAOCHAADgiQAA4IsAAOCNAADgjwAA4JAAAOCSAADgqwAA4MgAAODKAADgzAAA4M4AAODQAADg0gAA4NQAAODWAADg8wAA4PUAAOD3AADg+QAA4PsAAOD9AADg/wAA4QEAAOEDAADhfgAA4YAAAOGCAADhhAAA4YYAAOGHAADhiAAA4YkAAOGKAADhjAAA4Y4AAOGPAADhkAAA4ZIAAOGTAADiDgAA4hAAAOISAADiFAAA4hYAAOIXAADiGAAA4hkAAOIaAADiHAAA4h4AAOIfAADiIAAA4iIAAOIjAADingAA4qAAAOKiAADipAAA4qYAAOKnAADiqAAA4qkAAOKqAADirAAA4q4AAOKvAADisAAA4rIAAOKzAADjLgAA4zAAAOMyAADjNAAA4zYAAOM3AADjOAAA4zkAAOM6AADjPAAA4z4AAOM/AADjQAAA40IAAONDAADjvgAA48AAAOPCAADjxAAA48YAAOPHAADjyAAA48kAAOPKAADjzAAA484AAOPPAADj0AAA49IAAOPTAADkTgAA5FAAAORSAADkVAAA5FYAAORXAADkWAAA5FkAAORaAADkXAAA5F4AAORfAADkYAAA5GIAAORjAADk3gAA5OAAAOTiAADk5AAA5OYAAOTnAADk6AAA5OkAAOTqAADk7AAA5O4AAOTvAADk8AAA5PIAAOTzAADlhgAA5akAAOXJAADl6QAA5esAAOXtAADl7wAA5fEAAOXzAADl9AAA5fUAAOX3AADl+AAA5foAAOX7AADl/QAA5f8AAOYAAADmAQAA5gMAAOYEAADmCQAA5iIAAOYrAADmLQAA5i8AAOY4AADmOgAA5jwAAOY+AADmhwAA5qsAAObSAADm9gAA5vgAAOb6AADm/AAA5v4AAOcAAADnAgAA5wMAAOcFAADnHgAA5z8AAOdBAADnQwAA50UAAOdHAADnSQAA50sAAOdNAADnTwAA53AAAOdyAADndAAA53YAAOd4AADnegAA53wAAOd+AADngAAA54IAAOf9AADn/wAA6AEAAOgDAADoBQAA6AYAAOgHAADoCAAA6AkAAOgLAADoDQAA6A4AAOgPAADoEQAA6BIAAOiNAADojwAA6JEAAOiTAADolQAA6JYAAOiXAADomAAA6JkAAOibAADonQAA6J4AAOifAADooQAA6KIAAOkdAADpHwAA6SEAAOkjAADpJQAA6SYAAOknAADpKAAA6SkAAOkrAADpLQAA6S4AAOkvAADpMQAA6TIAAOlLAADpTAAA6U0AAOlPAADpygAA6cwAAOnOAADp0AAA6dIAAOnTAADp1AAA6dUAAOnWAADp2AAA6doAAOnbAADp3AAA6d4AAOnfAADqWgAA6lwAAOpeAADqYAAA6mIAAOpjAADqZAAA6mUAAOpmAADqaAAA6moAAOprAADqbAAA6m4AAOpvAADq6gAA6uwAAOruAADq8AAA6vIAAOrzAADq9AAA6vUAAOr2AADq+AAA6voAAOr7AADq/AAA6v4AAOr/AADregAA63wAAOt+AADrgAAA64IAAOuDAADrhAAA64UAAOuGAADriAAA64oAAOuLAADrjAAA644AAOuPAADsCgAA7AwAAOwOAADsEAAA7BIAAOwTAADsFAAA7BUAAOwWAADsGAAA7BoAAOwbAADsHAAA7B4AAOwfAADsaAAA7IwAAOyzAADs1wAA7NkAAOzbAADs3QAA7N8AAOzhAADs4wAA7OQAAOzmAADs/wAA7RwAAO0eAADtIAAA7SIAAO0kAADtJgAA7SgAAO0qAADtRwAA7UkAAO1MAADtTwAA7VIAAO1VAADtWAAA7VsAAO1dAADt2AAA7doAAO3dAADt3wAA7eEAAO3iAADt4wAA7eQAAO3lAADt5wAA7ekAAO3qAADt6wAA7e0AAO3uAADt8QAA7mwAAO5uAADucAAA7nIAAO50AADudQAA7nYAAO53AADueAAA7noAAO58AADufQAA7n4AAO6AAADugQAA7vwAAO7+AADvAAAA7wIAAO8EAADvBQAA7wYAAO8HAADvCAAA7woAAO8MAADvDQAA7w4AAO8QAADvEQAA74wAAO+OAADvkQAA75MAAO+VAADvlgAA75cAAO+YAADvmQAA75sAAO+dAADvngAA758AAO+hAADvogAA76UAAPAgAADwIgAA8CQAAPAmAADwKAAA8CkAAPAqAADwKwAA8CwAAPAuAADwMAAA8DEAAPAyAADwNAAA8DUAAPCwAADwsgAA8LQAAPC2AADwuAAA8LkAAPC6AADwuwAA8LwAAPC+AADwwAAA8MEAAPDCAADwxAAA8MUAAPFAAADxQgAA8UQAAPFGAADxSAAA8UkAAPFKAADxSwAA8UwAAPFOAADxUAAA8VEAAPFSAADxVAAA8VUAAPHoAADyCwAA8isAAPJLAADyTQAA8k8AAPJRAADyUwAA8lUAAPJWAADyVwAA8loAAPJbAADyXQAA8l4AAPJgAADyYgAA8mMAAPJkAADyZwAA8mgAAPJtAADyhgAA8o8AAPKRAADykwAA8pwAAPKfAADyogAA8qQAAPLtAADzEQAA8zgAAPNcAADzXwAA82EAAPNjAADzZQAA82cAAPNpAADzagAA820AAPOGAADzpwAA86kAAPOrAADzrQAA868AAPOxAADzswAA87UAAPO3AADz2AAA89sAAPPeAADz4QAA8+QAAPPnAADz6gAA8+0AAPPwAADz8gAA9G0AAPRvAAD0cQAA9HMAAPR2AAD0dwAA9HgAAPR5AAD0egAA9HwAAPR+AAD0fwAA9IAAAPSCAAD0gwAA9P4AAPUAAAD1AgAA9QQAAPUHAAD1CAAA9QkAAPUKAAD1CwAA9Q0AAPUPAAD1EAAA9REAAPUTAAD1FAAA9Y8AAPWRAAD1lAAA9ZYAAPWZAAD1mgAA9ZsAAPWcAAD1nQAA9Z8AAPWhAAD1ogAA9aMAAPWlAAD1pgAA9b8AAPXAAAD1wQAA9cMAAPY+AAD2QAAA9kIAAPZEAAD2RwAA9kgAAPZJAAD2SgAA9ksAAPZNAAD2TwAA9lAAAPZRAAD2UwAA9lQAAPbPAAD20QAA9tMAAPbVAAD22AAA9tkAAPbaAAD22wAA9twAAPbeAAD24AAA9uEAAPbiAAD25AAA9uUAAPdgAAD3YgAA92QAAPdmAAD3aQAA92oAAPdrAAD3bAAA920AAPdvAAD3cQAA93IAAPdzAAD3dQAA93YAAPfxAAD38wAA9/UAAPf3AAD3+gAA9/sAAPf8AAD3/QAA9/4AAPgAAAD4AgAA+AMAAPgEAAD4BgAA+AcAAPiCAAD4hAAA+IYAAPiIAAD4iwAA+IwAAPiNAAD4jgAA+I8AAPiRAAD4kwAA+JQAAPiVAAD4lwAA+JgAAPjhAAD5BQAA+SwAAPlQAAD5UwAA+VUAAPlXAAD5WQAA+VsAAPldAAD5XgAA+WEAAPl6AAD5lwAA+ZkAAPmbAAD5nQAA+Z8AAPmhAAD5owAA+aUAAPnCAAD5xQAA+cgAAPnLAAD5zgAA+dEAAPnUAAD51wAA+dkAAPpUAAD6VgAA+lgAAPpaAAD6XQAA+l4AAPpfAAD6YAAA+mEAAPpjAAD6ZQAA+mYAAPpnAAD6aQAA+moAAPrlAAD65wAA+ukAAPrrAAD67gAA+u8AAPrwAAD68QAA+vIAAPr0AAD69gAA+vcAAPr4AAD6+gAA+vsAAPt2AAD7eAAA+3oAAPt8AAD7fwAA+4AAAPuBAAD7ggAA+4MAAPuFAAD7hwAA+4gAAPuJAAD7iwAA+4wAAPwHAAD8CQAA/AwAAPwOAAD8EQAA/BIAAPwTAAD8FAAA/BUAAPwXAAD8GQAA/BoAAPwbAAD8HQAA/B4AAPwhAAD8nAAA/J4AAPygAAD8ogAA/KUAAPymAAD8pwAA/KgAAPypAAD8qwAA/K0AAPyuAAD8rwAA/LEAAPyyAAD9LQAA/S8AAP0xAAD9MwAA/TYAAP03AAD9OAAA/TkAAP06AAD9PAAA/T4AAP0/AAD9QAAA/UIAAP1DAAD9vgAA/cAAAP3CAAD9xAAA/ccAAP3IAAD9yQAA/coAAP3LAAD9zQAA/c8AAP3QAAD90QAA/dMAAP3UAAD+ZwAA/ooAAP6qAAD+ygAA/swAAP7OAAD+0AAA/tIAAP7UAAD+1QAA/tYAAP7ZAAD+2gAA/twAAP7dAAD+3wAA/uEAAP7iAAD+4wAA/uYAAP7nAAD+7AAA/wUAAP8OAAD/EAAA/xIAAP8bAAD/HgAA/yEAAP8jAAD/bAAA/5AAAP+3AAD/2wAA/94AAP/gAAD/4gAA/+QAAP/mAAD/6AAA/+kAAP/sAAEABQABACYAAQAoAAEAKgABACwAAQAuAAEAMAABADIAAQA0AAEANgABAFcAAQBaAAEAXQABAGAAAQBjAAEAZgABAGkAAQBsAAEAbwABAHEAAQDsAAEA7gABAPAAAQDyAAEA9QABAPYAAQD3AAEA+AABAPkAAQD7AAEA/QABAP4AAQD/AAEBAQABAQIAAQF9AAEBfwABAYEAAQGDAAEBhgABAYcAAQGIAAEBiQABAYoAAQGMAAEBjgABAY8AAQGQAAEBkgABAZMAAQIOAAECEAABAhMAAQIVAAECGAABAhkAAQIaAAECGwABAhwAAQIeAAECIAABAiEAAQIiAAECJAABAiUAAQI+AAECPwABAkAAAQJCAAECvQABAr8AAQLBAAECwwABAsYAAQLHAAECyAABAskAAQLKAAECzAABAs4AAQLPAAEC0AABAtIAAQLTAAEDTgABA1AAAQNSAAEDVAABA1cAAQNYAAEDWQABA1oAAQNbAAEDXQABA18AAQNgAAEDYQABA2MAAQNkAAED3wABA+EAAQPjAAED5QABA+gAAQPpAAED6gABA+sAAQPsAAED7gABA/AAAQPxAAED8gABA/QAAQP1AAEEcAABBHIAAQR0AAEEdgABBHkAAQR6AAEEewABBHwAAQR9AAEEfwABBIEAAQSCAAEEgwABBIUAAQSGAAEFAQABBQMAAQUFAAEFBwABBQoAAQULAAEFDAABBQ0AAQUOAAEFEAABBRIAAQUTAAEFFAABBRYAAQUXAAEFYAABBYQAAQWrAAEFzwABBdIAAQXUAAEF1gABBdgAAQXaAAEF3AABBd0AAQXgAAEF+QABBhYAAQYYAAEGGgABBhwAAQYeAAEGIAABBiIAAQYkAAEGQQABBkQAAQZHAAEGSgABBk0AAQZQAAEGUwABBlYAAQZYAAEG0wABBtUAAQbXAAEG2QABBtwAAQbdAAEG3gABBt8AAQbgAAEG4gABBuQAAQblAAEG5gABBugAAQbpAAEHZAABB2YAAQdoAAEHagABB20AAQduAAEHbwABB3AAAQdxAAEHcwABB3UAAQd2AAEHdwABB3kAAQd6AAEH9QABB/cAAQf5AAEH+wABB/4AAQf/AAEIAAABCAEAAQgCAAEIBAABCAYAAQgHAAEICAABCAoAAQgLAAEIhgABCIgAAQiKAAEIjAABCI8AAQiQAAEIkQABCJIAAQiTAAEIlQABCJcAAQiYAAEImQABCJsAAQicAAEJFwABCRkAAQkbAAEJHQABCSAAAQkhAAEJIgABCSMAAQkkAAEJJgABCSgAAQkpAAEJKgABCSwAAQktAAEJqAABCaoAAQmtAAEJrwABCbIAAQmzAAEJtAABCbUAAQm2AAEJuAABCboAAQm7AAEJvAABCb4AAQm/AAEJ3gABClkAAQpbAAEKXQABCl8AAQpiAAEKYwABCmQAAQplAAEKZgABCmgAAQpqAAEKawABCmwAAQpuAAEKbwABCwIAAQslAAELRQABC2UAAQtnAAELaQABC2sAAQttAAELbwABC3AAAQtxAAELdAABC3UAAQt3AAELeAABC3oAAQt8AAELfQABC34AAQuBAAELggABC4cAAQugAAELqQABC6sAAQutAAELtgABC7kAAQu8AAELvgABDAcAAQwrAAEMUgABDHYAAQx5AAEMewABDH0AAQx/AAEMgQABDIMAAQyEAAEMhwABDKAAAQzBAAEMwwABDMUAAQzHAAEMyQABDMsAAQzNAAEMzwABDNEAAQzyAAEM9QABDPgAAQz7AAEM/gABDQEAAQ0EAAENBwABDQoAAQ0MAAENhwABDYkAAQ2LAAENjQABDZAAAQ2RAAENkgABDZMAAQ2UAAENlgABDZgAAQ2ZAAENmgABDZwAAQ2dAAEOGAABDhoAAQ4cAAEOHgABDiEAAQ4iAAEOIwABDiQAAQ4lAAEOJwABDikAAQ4qAAEOKwABDi0AAQ4uAAEOqQABDqsAAQ6uAAEOsAABDrMAAQ60AAEOtQABDrYAAQ63AAEOuQABDrsAAQ68AAEOvQABDr8AAQ7AAAEO2QABDtoAAQ7bAAEO3QABD1gAAQ9aAAEPXAABD14AAQ9hAAEPYgABD2MAAQ9kAAEPZQABD2cAAQ9pAAEPagABD2sAAQ9tAAEPbgABD+kAAQ/rAAEP7QABD+8AAQ/yAAEP8wABD/QAAQ/1AAEP9gABD/gAAQ/6AAEP+wABD/wAAQ/+AAEP/wABEHoAARB8AAEQfgABEIAAARCDAAEQhAABEIUAARCGAAEQhwABEIkAARCLAAEQjAABEI0AARCPAAEQkAABEQsAARENAAERDwABEREAAREUAAERFQABERYAAREXAAERGAABERoAAREcAAERHQABER4AAREgAAERIQABEZwAARGeAAERoAABEaIAARGlAAERpgABEacAARGoAAERqQABEasAARGtAAERrgABEa8AARGxAAERsgABEfsAARIfAAESRgABEmoAARJtAAESbwABEnEAARJzAAESdQABEncAARJ4AAESewABEpQAARKxAAESswABErUAARK3AAESuQABErsAARK9AAESvwABEtwAARLfAAES4gABEuUAARLoAAES6wABEu4AARLxAAES8wABE24AARNwAAETcgABE3QAARN3AAETeAABE3kAARN6AAETewABE30AARN/AAETgAABE4EAARODAAEThAABE/8AARQBAAEUAwABFAUAARQIAAEUCQABFAoAARQLAAEUDAABFA4AARQQAAEUEQABFBIAARQUAAEUFQABFJAAARSSAAEUlAABFJYAARSZAAEUmgABFJsAARScAAEUnQABFJ8AARShAAEUogABFKMAARSlAAEUpgABFSEAARUjAAEVJQABFScAARUqAAEVKwABFSwAARUtAAEVLgABFTAAARUyAAEVMwABFTQAARU2AAEVNwABFbIAARW0AAEVtgABFbgAARW7AAEVvAABFb0AARW+AAEVvwABFcEAARXDAAEVxAABFcUAARXHAAEVyAABFkMAARZFAAEWSAABFkoAARZNAAEWTgABFk8AARZQAAEWUQABFlMAARZVAAEWVgABFlcAARZZAAEWWgABFmkAARbkAAEW5gABFugAARbqAAEW7QABFu4AARbvAAEW8AABFvEAARbzAAEW9QABFvYAARb3AAEW+QABFvoAAReNAAEXsAABF9AAARfwAAEX8gABF/QAARf2AAEX+AABF/oAARf7AAEX/AABF/8AARgAAAEYAgABGAMAARgFAAEYBwABGAgAARgJAAEYDAABGA0AARgSAAEYKwABGDQAARg2AAEYOAABGEEAARhEAAEYRwABGEkAARiSAAEYtgABGN0AARkBAAEZBAABGQYAARkIAAEZCgABGQwAARkOAAEZDwABGRIAARkrAAEZTAABGU4AARlQAAEZUgABGVQAARlWAAEZWAABGVoAARlcAAEZfQABGYAAARmDAAEZhgABGYkAARmMAAEZjwABGZIAARmVAAEZlwABGhIAARoUAAEaFgABGhgAARobAAEaHAABGh0AARoeAAEaHwABGiEAARojAAEaJAABGiUAARonAAEaKAABGqMAARqlAAEapwABGqkAARqsAAEarQABGq4AARqvAAEasAABGrIAARq0AAEatQABGrYAARq4AAEauQABGzQAARs2AAEbOQABGzsAARs+AAEbPwABG0AAARtBAAEbQgABG0QAARtGAAEbRwABG0gAARtKAAEbSwABG2QAARtlAAEbZgABG2gAARvjAAEb5QABG+cAARvpAAEb7AABG+0AARvuAAEb7wABG/AAARvyAAEb9AABG/UAARv2AAEb+AABG/kAARx0AAEcdgABHHgAARx6AAEcfQABHH4AARx/AAEcgAABHIEAARyDAAEchQABHIYAARyHAAEciQABHIoAAR0FAAEdBwABHQkAAR0LAAEdDgABHQ8AAR0QAAEdEQABHRIAAR0UAAEdFgABHRcAAR0YAAEdGgABHRsAAR2WAAEdmAABHZoAAR2cAAEdnwABHaAAAR2hAAEdogABHaMAAR2lAAEdpwABHagAAR2pAAEdqwABHawAAR4nAAEeKQABHisAAR4tAAEeMAABHjEAAR4yAAEeMwABHjQAAR42AAEeOAABHjkAAR46AAEePAABHj0AAR6GAAEeqgABHtEAAR71AAEe+AABHvoAAR78AAEe/gABHwAAAR8CAAEfAwABHwYAAR8fAAEfPAABHz4AAR9AAAEfQgABH0QAAR9GAAEfSAABH0oAAR9nAAEfagABH20AAR9wAAEfcwABH3YAAR95AAEffAABH34AAR/5AAEf+wABH/0AAR//AAEgAgABIAMAASAEAAEgBQABIAYAASAIAAEgCgABIAsAASAMAAEgDgABIA8AASCKAAEgjAABII4AASCQAAEgkwABIJQAASCVAAEglgABIJcAASCZAAEgmwABIJwAASCdAAEgnwABIKAAASEbAAEhHQABIR8AASEhAAEhJAABISUAASEmAAEhJwABISgAASEqAAEhLAABIS0AASEuAAEhMAABITEAASGsAAEhrgABIbAAASGyAAEhtQABIbYAASG3AAEhuAABIbkAASG7AAEhvQABIb4AASG/AAEhwQABIcIAASI9AAEiPwABIkEAASJDAAEiRgABIkcAASJIAAEiSQABIkoAASJMAAEiTgABIk8AASJQAAEiUgABIlMAASLOAAEi0AABItIAASLUAAEi1wABItgAASLZAAEi2gABItsAASLdAAEi3wABIuAAASLhAAEi4wABIuQAASNfAAEjYQABI2MAASNlAAEjaAABI2kAASNqAAEjawABI2wAASNuAAEjcAABI3EAASNyAAEjdAABI3UAASQIAAEkKwABJEsAASRrAAEkbQABJG8AASRxAAEkcwABJHUAASR2AAEkdwABJHoAASR7AAEkfQABJH4AASSAAAEkggABJIMAASSEAAEkhwABJIgAASSNAAEkpgABJK8AASSxAAEkswABJLwAASS/AAEkwgABJMQAASUNAAElMQABJVgAASV8AAElfwABJYEAASWDAAElhQABJYcAASWJAAEligABJY0AASWmAAElxwABJckAASXLAAElzQABJc8AASXRAAEl0wABJdUAASXXAAEl+AABJfsAASX+AAEmAQABJgQAASYHAAEmCgABJg0AASYQAAEmEgABJo0AASaPAAEmkQABJpMAASaWAAEmlwABJpgAASaZAAEmmgABJpwAASaeAAEmnwABJqAAASaiAAEmowABJx4AAScgAAEnIgABJyQAAScnAAEnKAABJykAAScqAAEnKwABJy0AAScvAAEnMAABJzEAASczAAEnNAABJ68AASexAAEntAABJ7YAASe5AAEnugABJ7sAASe8AAEnvQABJ78AASfBAAEnwgABJ8MAASfFAAEnxgABJ98AASfgAAEn4QABJ+MAASheAAEoYAABKGIAAShkAAEoZwABKGgAAShpAAEoagABKGsAAShtAAEobwABKHAAAShxAAEocwABKHQAASjvAAEo8QABKPMAASj1AAEo+AABKPkAASj6AAEo+wABKPwAASj+AAEpAAABKQEAASkCAAEpBAABKQUAASmAAAEpggABKYQAASmGAAEpiQABKYoAASmLAAEpjAABKY0AASmPAAEpkQABKZIAASmTAAEplQABKZYAASoRAAEqEwABKhUAASoXAAEqGgABKhsAASocAAEqHQABKh4AASogAAEqIgABKiMAASokAAEqJgABKicAASqiAAEqpAABKqYAASqoAAEqqwABKqwAASqtAAEqrgABKq8AASqxAAEqswABKrQAASq1AAEqtwABKrgAASsBAAErJQABK0wAAStwAAErcwABK3UAASt3AAEreQABK3sAASt9AAErfgABK4EAASuaAAErtwABK7kAASu7AAErvQABK78AASvBAAErwwABK8UAASviAAEr5QABK+gAASvrAAEr7gABK/EAASv0AAEr9wABK/kAASx0AAEsdgABLHgAASx6AAEsfQABLH4AASx/AAEsgAABLIEAASyDAAEshQABLIYAASyHAAEsiQABLIoAAS0FAAEtBwABLQkAAS0LAAEtDgABLQ8AAS0QAAEtEQABLRIAAS0UAAEtFgABLRcAAS0YAAEtGgABLRsAAS2WAAEtmAABLZoAAS2cAAEtnwABLaAAAS2hAAEtogABLaMAAS2lAAEtpwABLagAAS2pAAEtqwABLawAAS4nAAEuKQABLisAAS4tAAEuMAABLjEAAS4yAAEuMwABLjQAAS42AAEuOAABLjkAAS46AAEuPAABLj0AAS64AAEuugABLrwAAS6+AAEuwQABLsIAAS7DAAEuxAABLsUAAS7HAAEuyQABLsoAAS7LAAEuzQABLs4AAS9JAAEvSwABL00AAS9PAAEvUgABL1MAAS9UAAEvVQABL1YAAS9YAAEvWgABL1sAAS9cAAEvXgABL18AAS/aAAEv3AABL94AAS/gAAEv4wABL+QAAS/lAAEv5gABL+cAAS/pAAEv6wABL+wAAS/tAAEv7wABL/AAATCDAAEwpgABMMYAATDmAAEw6AABMOoAATDsAAEw7gABMPAAATDxAAEw8gABMPUAATD2AAEw+AABMPkAATD7AAEw/QABMP4AATD/AAExAgABMQMAATEIAAExIQABMSoAATEsAAExLgABMTcAATE6AAExPQABMT8AATGIAAExrAABMdMAATH3AAEx+gABMfwAATH+AAEyAAABMgIAATIEAAEyBQABMggAATIhAAEyQgABMkQAATJGAAEySAABMkoAATJMAAEyTgABMlAAATJSAAEycwABMnYAATJ5AAEyfAABMn8AATKCAAEyhQABMogAATKLAAEyjQABMwgAATMKAAEzDAABMw4AATMRAAEzEgABMxMAATMUAAEzFQABMxcAATMZAAEzGgABMxsAATMdAAEzHgABM5kAATObAAEznQABM58AATOiAAEzowABM6QAATOlAAEzpgABM6gAATOqAAEzqwABM6wAATOuAAEzrwABNCoAATQsAAE0LwABNDEAATQ0AAE0NQABNDYAATQ3AAE0OAABNDoAATQ8AAE0PQABND4AATRAAAE0QQABNFoAATRbAAE0XAABNF4AATTZAAE02wABNN0AATTfAAE04gABNOMAATTkAAE05QABNOYAATToAAE06gABNOsAATTsAAE07gABNO8AATVqAAE1bAABNW4AATVwAAE1cwABNXQAATV1AAE1dgABNXcAATV5AAE1ewABNXwAATV9AAE1fwABNYAAATX7AAE1/QABNf8AATYBAAE2BAABNgUAATYGAAE2BwABNggAATYKAAE2DAABNg0AATYOAAE2EAABNhEAATaMAAE2jgABNpAAATaSAAE2lQABNpYAATaXAAE2mAABNpkAATabAAE2nQABNp4AATafAAE2oQABNqIAATcdAAE3HwABNyEAATcjAAE3JgABNycAATcoAAE3KQABNyoAATcsAAE3LgABNy8AATcwAAE3MgABNzMAATd8AAE3oAABN8cAATfrAAE37gABN/AAATfyAAE39AABN/YAATf4AAE3+QABN/wAATgVAAE4MgABODQAATg2AAE4OAABODoAATg8AAE4PgABOEAAAThdAAE4YAABOGMAAThmAAE4aQABOGwAAThvAAE4cgABOHQAATjvAAE48QABOPMAATj1AAE4+AABOPkAATj6AAE4+wABOPwAATj+AAE5AAABOQEAATkCAAE5BAABOQUAATmAAAE5ggABOYQAATmGAAE5iQABOYoAATmLAAE5jAABOY0AATmPAAE5kQABOZIAATmTAAE5lQABOZYAAToRAAE6EwABOhUAAToXAAE6GgABOhsAATocAAE6HQABOh4AATogAAE6IgABOiMAATokAAE6JgABOicAATqiAAE6pAABOqcAATqpAAE6rAABOq0AATquAAE6rwABOrAAATqyAAE6tAABOrUAATq2AAE6uAABOrkAATs0AAE7NgABOzgAATs6AAE7PQABOz4AATs/AAE7QAABO0EAATtDAAE7RQABO0YAATtHAAE7SQABO0oAATvFAAE7xwABO8kAATvLAAE7zgABO88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AAVZpAAFWagABVm0AAVZuAAFWcAABVnEAAVZzAAFWdQABVnYAAVZ3AAFWegABVnsAAVaAAAFWmQABVqIAAVakAAFWpgABVq8AAVayAAFWtQABVrcAAVcAAAFXJAABV0sAAVdvAAFXcgABV3QAAVd2AAFXeAABV3oAAVd8AAFXfQABV4AAAVeZAAFXugABV7wAAVe+AAFXwAABV8IAAVfEAAFXxgABV8gAAVfKAAFX6wABV+4AAVfxAAFX9AABV/cAAVf6AAFX/QABWAAAAVgDAAFYBQABWIAAAViCAAFYhAABWIYAAViJAAFYigABWIsAAViMAAFYjQABWI8AAViRAAFYkgABWJMAAViVAAFYlgABWREAAVkTAAFZFQABWRcAAVkaAAFZGwABWRwAAVkdAAFZHgABWSAAAVkiAAFZIwABWSQAAVkmAAFZJwABWaIAAVmkAAFZpwABWakAAVmsAAFZrQABWa4AAVmvAAFZsAABWbIAAVm0AAFZtQABWbYAAVm4AAFZuQABWdIAAVnTAAFZ1AABWdYAAVpRAAFaUwABWlUAAVpXAAFaWgABWlsAAVpcAAFaXQABWl4AAVpgAAFaYgABWmMAAVpkAAFaZgABWmcAAVriAAFa5AABWuYAAVroAAFa6wABWuwAAVrtAAFa7gABWu8AAVrxAAFa8wABWvQAAVr1AAFa9wABWvgAAVtzAAFbdQABW3cAAVt5AAFbfAABW30AAVt+AAFbfwABW4AAAVuCAAFbhAABW4UAAVuGAAFbiAABW4kAAVwEAAFcBgABXAgAAVwKAAFcDQABXA4AAVwPAAFcEAABXBEAAVwTAAFcFQABXBYAAVwXAAFcGQABXBoAAVyVAAFclwABXJkAAVybAAFcngABXJ8AAVygAAFcoQABXKIAAVykAAFcpgABXKcAAVyoAAFcqgABXKsAAVz0AAFdGAABXT8AAV1jAAFdZgABXWgAAV1qAAFdbAABXW4AAV1wAAFdcQABXXQAAV2NAAFdqgABXawAAV2uAAFdsAABXbIAAV20AAFdtgABXbgAAV3VAAFd2AABXdsAAV3eAAFd4QABXeQAAV3nAAFd6gABXewAAV5nAAFeaQABXmsAAV5tAAFecAABXnEAAV5yAAFecwABXnQAAV52AAFeeAABXnkAAV56AAFefAABXn0AAV74AAFe+gABXvwAAV7+AAFfAQABXwIAAV8DAAFfBAABXwUAAV8HAAFfCQABXwoAAV8LAAFfDQABXw4AAV+JAAFfiwABX40AAV+PAAFfkgABX5MAAV+UAAFflQABX5YAAV+YAAFfmgABX5sAAV+cAAFfngABX58AAWAaAAFgHAABYB4AAWAgAAFgIwABYCQAAWAlAAFgJgABYCcAAWApAAFgKwABYCwAAWAtAAFgLwABYDAAAWCrAAFgrQABYK8AAWCxAAFgtAABYLUAAWC2AAFgtwABYLgAAWC6AAFgvAABYL0AAWC+AAFgwAABYMEAAWE8AAFhPgABYUAAAWFCAAFhRQABYUYAAWFHAAFhSAABYUkAAWFLAAFhTQABYU4AAWFPAAFhUQABYVIAAWHNAAFhzwABYdEAAWHTAAFh1gABYdcAAWHYAAFh2QABYdoAAWHcAAFh3gABYd8AAWHgAAFh4gABYeMAAWJ2AAFimQABYrkAAWLZAAFi2wABYt0AAWLfAAFi4QABYuMAAWLkAAFi5QABYugAAWLpAAFi6wABYuwAAWLvAAFi8QABYvIAAWLzAAFi9gABYvcAAWL8AAFjFQABYx4AAWMgAAFjIwABYywAAWMvAAFjMgABYzQAAWNHAAFjkAABY7QAAWPbAAFj/wABZAIAAWQEAAFkBgABZAgAAWQKAAFkDAABZA0AAWQQAAFkKQABZEoAAWRMAAFkTgABZFAAAWRSAAFkVAABZFYAAWRYAAFkWgABZHsAAWR+AAFkgQABZIQAAWSHAAFkigABZI0AAWSQAAFkkwABZJUAAWUQAAFlEgABZRQAAWUWAAFlGQABZRoAAWUbAAFlHAABZR0AAWUfAAFlIQABZSIAAWUjAAFlJQABZSYAAWWhAAFlowABZaUAAWWnAAFlqgABZasAAWWsAAFlrQABZa4AAWWwAAFlsgABZbMAAWW0AAFltgABZbcAAWYyAAFmNAABZjcAAWY5AAFmPAABZj0AAWY+AAFmPwABZkAAAWZCAAFmRAABZkUAAWZGAAFmSAABZkkAAWZiAAFmYwABZmQAAWZmAAFm4QABZuMAAWblAAFm5wABZuoAAWbrAAFm7AABZu0AAWbuAAFm8AABZvIAAWbzAAFm9AABZvYAAWb3AAFncgABZ3QAAWd2AAFneAABZ3sAAWd8AAFnfQABZ34AAWd/AAFngQABZ4MAAWeEAAFnhQABZ4cAAWeIAAFoAwABaAUAAWgHAAFoCQABaAwAAWgNAAFoDgABaA8AAWgQAAFoEgABaBQAAWgVAAFoFgABaBgAAWgZAAFolAABaJYAAWiYAAFomgABaJ0AAWieAAFonwABaKAAAWihAAFoowABaKUAAWimAAFopwABaKkAAWiqAAFpJQABaScAAWkpAAFpKwABaS4AAWkvAAFpMAABaTEAAWkyAAFpNAABaTYAAWk3AAFpOAABaToAAWk7AAFphAABaagAAWnPAAFp8wABafYAAWn5AAFp+wABaf0AAWn/AAFqAQABagIAAWoFAAFqHgABajsAAWo+AAFqQQABakQAAWpHAAFqSgABak0AAWpQAAFqbQABanAAAWpzAAFqdgABankAAWp8AAFqfwABaoIAAWqEAAFqlgABaqoAAWq8AAFq0QABauMAAWryAAFrDwABa4oAAWuMAAFrjwABa5EAAWuUAAFrlQABa5YAAWuXAAFrmAABa5oAAWudAAFrngABa58AAWuhAAFrogABbB0AAWwfAAFsIgABbCQAAWwnAAFsKAABbCkAAWwqAAFsKwABbC0AAWwwAAFsMQABbDIAAWw0AAFsNQABbDcAAWyyAAFstAABbLcAAWy5AAFsvAABbL0AAWy+AAFsvwABbMAAAWzCAAFsxQABbMYAAWzHAAFsyQABbMoAAW1FAAFtRwABbUoAAW1MAAFtTwABbVAAAW1RAAFtUgABbVMAAW1VAAFtWAABbVkAAW1aAAFtXAABbV0AAW3gAAFuBAABbigAAW5LAAFucgABbpIAAW65AAFu4AABbwAAAW8kAAFvSAABb0oAAW9NAAFvTwABb1EAAW9TAAFvVgABb1kAAW9bAAFvXQABb2AAAW9iAAFvZAABb2cAAW9qAAFvawABb3AAAW+JAAFvjgABb5AAAW+VAAFvmAABb5oAAW/jAAFwBwABcC4AAXBSAAFwVQABcFcAAXBZAAFwWwABcF0AAXBfAAFwYAABcGMAAXB8AAFwoQABcKMAAXClAAFwpwABcKkAAXCrAAFwrQABcK8AAXCxAAFwswABcNgAAXDbAAFw3gABcOEAAXDkAAFw5wABcOoAAXDtAAFw8AABcPMAAXD1AAFxcAABcXIAAXF1AAFxdwABcXoAAXF7AAFxfAABcX0AAXF+AAFxgAABcYIAAXGDAAFxhAABcYYAAXGHAAFxmAABcZkAAXGbAAFyFgABchgAAXIaAAFyHAABch8AAXIgAAFyIQABciIAAXIjAAFyJQABcicAAXIoAAFyKQABcisAAXIsAAFypwABcqkAAXKsAAFyrgABcrEAAXKyAAFyswABcrQAAXK1AAFytwABcrkAAXK6AAFyuwABcr0AAXK+AAFyzwABctAAAXLSAAFzTQABc08AAXNRAAFzUwABc1YAAXNXAAFzWAABc1kAAXNaAAFzXAABc14AAXNfAAFzYAABc2IAAXNjAAFz3gABc+AAAXPjAAFz5QABc+gAAXPpAAFz6gABc+sAAXPsAAFz7gABc/AAAXPxAAFz8gABc/QAAXP1AAF0BgABdAcAAXQJAAF0hAABdIYAAXSIAAF0igABdI0AAXSOAAF0jwABdJAAAXSRAAF0kwABdJUAAXSWAAF0lwABdJkAAXSaAAF1FQABdRcAAXUaAAF1HAABdR8AAXUgAAF1IQABdSIAAXUjAAF1JQABdScAAXUoAAF1KQABdSsAAXUsAAF1RQABdUYAAXVHAAF1SQABdcQAAXXGAAF1yAABdcoAAXXNAAF1zgABdc8AAXXQAAF10QABddMAAXXVAAF11gABddcAAXXZAAF12gABdlUAAXZXAAF2WQABdlsAAXZeAAF2XwABdmAAAXZhAAF2YgABdmQAAXZmAAF2ZwABdmgAAXZqAAF2awABdoQAAXadAAF2oAABdqMAAXamAAF2qQABdqwAAXavAAF2yAABdssAAXbOAAF20QABdtQAAXbXAAF22gABdtwAAXbxAAF3FAABdyoAAXc9AAF3SQABd18AAXfyAAF4FQABeDUAAXhVAAF4VwABeFkAAXhbAAF4XQABeGAAAXhhAAF4YgABeGUAAXhmAAF4aAABeGkAAXhrAAF4bgABeG8AAXhwAAF4cwABeHQAAXh5AAF4kgABeJsAAXidAAF4nwABeKgAAXirAAF4rgABeLAAAXj5AAF5HQABeUQAAXloAAF5awABeW0AAXlvAAF5cQABeXMAAXl1AAF5dgABeXkAAXmSAAF5swABebUAAXm3AAF5uQABebsAAXm9AAF5vwABecEAAXnDAAF55AABeecAAXnqAAF57QABefAAAXnzAAF59gABefkAAXn8AAF5/gABenkAAXp7AAF6fQABen8AAXqCAAF6gwABeoQAAXqFAAF6hgABeogAAXqKAAF6iwABeowAAXqOAAF6jwABewoAAXsMAAF7DgABexAAAXsTAAF7FAABexUAAXsWAAF7FwABexkAAXsbAAF7HAABex0AAXsfAAF7IAABe5sAAXudAAF7oAABe6IAAXulAAF7pgABe6cAAXuoAAF7qQABe6sAAXutAAF7rgABe68AAXuxAAF7sgABe8sAAXvMAAF7zQABe88AAXxKAAF8TAABfE4AAXxQAAF8UwABfFQAAXxVAAF8VgABfFcAAXxZAAF8WwABfFwAAXxdAAF8XwABfGAAAXzbAAF83QABfN8AAXzhAAF85AABfOUAAXzmAAF85wABfOgAAXzqAAF87AABfO0AAXzuAAF88AABfPEAAX1sAAF9bgABfXAAAX1yAAF9dQABfXYAAX13AAF9eAABfXkAAX17AAF9fQABfX4AAX1/AAF9gQABfYIAAX39AAF9/wABfgEAAX4DAAF+BgABfgcAAX4IAAF+CQABfgoAAX4MAAF+DgABfg8AAX4QAAF+EgABfhMAAX6OAAF+kAABfpIAAX6UAAF+lwABfpgAAX6ZAAF+mgABfpsAAX6dAAF+nwABfqAAAX6hAAF+owABfqQAAX7tAAF/EQABfzgAAX9cAAF/XwABf2EAAX9jAAF/ZQABf2cAAX9pAAF/agABf20AAX+GAAF/owABf6UAAX+nAAF/qQABf6sAAX+tAAF/rwABf7EAAX/OAAF/0QABf9QAAX/XAAF/2gABf90AAX/gAAF/4wABf+UAAYBgAAGAYgABgGQAAYBmAAGAaQABgGoAAYBrAAGAbAABgG0AAYBvAAGAcQABgHIAAYBzAAGAdQABgHYAAYDxAAGA8wABgPUAAYD3AAGA+gABgPsAAYD8AAGA/QABgP4AAYEAAAGBAgABgQMAAYEEAAGBBgABgQcAAYGCAAGBhAABgYYAAYGIAAGBiwABgYwAAYGNAAGBjgABgY8AAYGRAAGBkwABgZQAAYGVAAGBlwABgZgAAYITAAGCFQABghcAAYIZAAGCHAABgh0AAYIeAAGCHwABgiAAAYIiAAGCJAABgiUAAYImAAGCKAABgikAAYKkAAGCpgABgqgAAYKqAAGCrQABgq4AAYKvAAGCsAABgrEAAYKzAAGCtQABgrYAAYK3AAGCuQABgroAAYM1AAGDNwABgzkAAYM7AAGDPgABgz8AAYNAAAGDQQABg0IAAYNEAAGDRgABg0cAAYNIAAGDSgABg0sAAYPGAAGDyAABg8oAAYPMAAGDzwABg9AAAYPRAAGD0gABg9MAAYPVAAGD1wABg9gAAYPZAAGD2wABg9wAAYRvAAGEkgABhLIAAYTSAAGE1AABhNYAAYTYAAGE2gABhN0AAYTeAAGE3wABhOIAAYTjAAGE5QABhOYAAYToAAGE6wABhOwAAYTtAAGE8AABhPEAAYT2AAGFDwABhRgAAYUaAAGFHAABhSUAAYUoAAGFKwABhS0AAYV2AAGFmgABhcEAAYXlAAGF6AABheoAAYXsAAGF7gABhfAAAYXyAAGF8wABhfYAAYYPAAGGMAABhjIAAYY0AAGGNgABhjgAAYY6AAGGPAABhj4AAYZAAAGGYQABhmQAAYZnAAGGagABhm0AAYZwAAGGcwABhnYAAYZ5AAGGewABhvYAAYb4AAGG+gABhvwAAYb/AAGHAAABhwEAAYcCAAGHAwABhwUAAYcHAAGHCAABhwkAAYcLAAGHDAABh4cAAYeJAAGHiwABh40AAYeQAAGHkQABh5IAAYeTAAGHlAABh5YAAYeYAAGHmQABh5oAAYecAAGHnQABiBgAAYgaAAGIHQABiB8AAYgiAAGIIwABiCQAAYglAAGIJgABiCgAAYgqAAGIKwABiCwAAYguAAGILwABiEgAAYhJAAGISgABiEwAAYjHAAGIyQABiMsAAYjNAAGI0AABiNEAAYjSAAGI0wABiNQAAYjWAAGI2AABiNkAAYjaAAGI3AABiN0AAYlYAAGJWgABiVwAAYleAAGJYQABiWIAAYljAAGJZAABiWUAAYlnAAGJaQABiWoAAYlrAAGJbQABiW4AAYnpAAGJ6wABie0AAYnvAAGJ8gABifMAAYn0AAGJ9QABifYAAYn4AAGJ+gABifsAAYn8AAGJ/gABif8AAYp6AAGKfAABin4AAYqAAAGKgwABioQAAYqFAAGKhgABiocAAYqJAAGKiwABiowAAYqNAAGKjwABipAAAYsLAAGLDQABiw8AAYsRAAGLFAABixUAAYsWAAGLFwABixgAAYsaAAGLHAABix0AAYseAAGLIAABiyEAAYtqAAGLjgABi7UAAYvZAAGL3AABi94AAYvgAAGL4gABi+QAAYvmAAGL5wABi+oAAYwDAAGMIAABjCIAAYwkAAGMJgABjCgAAYwqAAGMLAABjC4AAYxLAAGMTgABjFEAAYxUAAGMVwABjFoAAYxdAAGMYAABjGIAAYzdAAGM3wABjOEAAYzjAAGM5gABjOcAAYzoAAGM6QABjOoAAYzsAAGM7gABjO8AAYzwAAGM8gABjPMAAY1uAAGNcAABjXIAAY10AAGNdwABjXgAAY15AAGNegABjXsAAY19AAGNfwABjYAAAY2BAAGNgwABjYQAAY3/AAGOAQABjgMAAY4FAAGOCAABjgkAAY4KAAGOCwABjgwAAY4OAAGOEAABjhEAAY4SAAGOFAABjhUAAY6QAAGOkgABjpQAAY6WAAGOmQABjpoAAY6bAAGOnAABjp0AAY6fAAGOoQABjqIAAY6jAAGOpQABjqYAAY8hAAGPIwABjyUAAY8nAAGPKgABjysAAY8sAAGPLQABjy4AAY8wAAGPMgABjzMAAY80AAGPNgABjzcAAY+yAAGPtAABj7cAAY+5AAGPvAABj70AAY++AAGPvwABj8AAAY/CAAGPxAABj8UAAY/GAAGPyAABj8kAAY/bAAGQVgABkFgAAZBaAAGQXAABkF8AAZBgAAGQYQABkGIAAZBjAAGQZQABkGcAAZBoAAGQaQABkGsAAZBsAAGQ/wABkSIAAZFCAAGRYgABkWQAAZFmAAGRaAABkWoAAZFtAAGRbgABkW8AAZFyAAGRcwABkXUAAZF2AAGReAABkXsAAZF8AAGRfQABkYAAAZGBAAGRhgABkZ8AAZGoAAGRqgABkawAAZG1AAGRuAABkbsAAZG9AAGSBgABkioAAZJRAAGSdQABkngAAZJ6AAGSfAABkn4AAZKAAAGSggABkoMAAZKGAAGSnwABksAAAZLCAAGSxAABksYAAZLIAAGSygABkswAAZLOAAGS0AABkvEAAZL0AAGS9wABkvoAAZL9AAGTAAABkwMAAZMGAAGTCQABkwsAAZOGAAGTiAABk4oAAZOMAAGTjwABk5AAAZORAAGTkgABk5MAAZOVAAGTlwABk5gAAZOZAAGTmwABk5wAAZQXAAGUGQABlBsAAZQdAAGUIAABlCEAAZQiAAGUIwABlCQAAZQmAAGUKAABlCkAAZQqAAGULAABlC0AAZSoAAGUqgABlK0AAZSvAAGUsgABlLMAAZS0AAGUtQABlLYAAZS4AAGUugABlLsAAZS8AAGUvgABlL8AAZTYAAGU2QABlNoAAZTcAAGVVwABlVkAAZVbAAGVXQABlWAAAZVhAAGVYgABlWMAAZVkAAGVZgABlWgAAZVpAAGVagABlWwAAZVtAAGV6AABleoAAZXsAAGV7gABlfEAAZXyAAGV8wABlfQAAZX1AAGV9wABlfkAAZX6AAGV+wABlf0AAZX+AAGWeQABlnsAAZZ9AAGWfwABloIAAZaDAAGWhAABloUAAZaGAAGWiAABlooAAZaLAAGWjAABlo4AAZaPAAGXCgABlwwAAZcOAAGXEAABlxMAAZcUAAGXFQABlxYAAZcXAAGXGQABlxsAAZccAAGXHQABlx8AAZcgAAGXmwABl50AAZefAAGXoQABl6QAAZelAAGXpgABl6cAAZeoAAGXqgABl6wAAZetAAGXrgABl7AAAZexAAGX+gABmB4AAZhFAAGYaQABmGwAAZhuAAGYcAABmHIAAZh0AAGYdgABmHcAAZh6AAGYkwABmLAAAZiyAAGYtAABmLYAAZi4AAGYugABmLwAAZi+AAGY2wABmN4AAZjhAAGY5AABmOcAAZjqAAGY7QABmPAAAZjyAAGZbQABmW8AAZlxAAGZcwABmXYAAZl3AAGZeAABmXkAAZl6AAGZfAABmX4AAZl/AAGZgAABmYIAAZmDAAGZ/gABmgAAAZoCAAGaBAABmgcAAZoIAAGaCQABmgoAAZoLAAGaDQABmg8AAZoQAAGaEQABmhMAAZoUAAGajwABmpEAAZqTAAGalQABmpgAAZqZAAGamgABmpsAAZqcAAGangABmqAAAZqhAAGaogABmqQAAZqlAAGbIAABmyIAAZskAAGbJgABmykAAZsqAAGbKwABmywAAZstAAGbLwABmzEAAZsyAAGbMwABmzUAAZs2AAGbsQABm7MAAZu1AAGbtwABm7oAAZu7AAGbvAABm70AAZu+AAGbwAABm8IAAZvDAAGbxAABm8YAAZvHAAGcQgABnEQAAZxGAAGcSAABnEsAAZxMAAGcTQABnE4AAZxPAAGcUQABnFMAAZxUAAGcVQABnFcAAZxYAAGc0wABnNUAAZzXAAGc2QABnNwAAZzdAAGc3gABnN8AAZzgAAGc4gABnOQAAZzlAAGc5gABnOgAAZzpAAGdfAABnZ8AAZ2/AAGd3wABneEAAZ3jAAGd5QABnecAAZ3qAAGd6wABnewAAZ3vAAGd8AABnfIAAZ3zAAGd9gABnfkAAZ36AAGd+wABnf4AAZ3/AAGeBAABnh0AAZ4mAAGeKAABnisAAZ40AAGeNwABnjoAAZ48AAGehQABnqkAAZ7QAAGe9AABnvcAAZ75AAGe+wABnv0AAZ7/AAGfAQABnwIAAZ8FAAGfHgABnz8AAZ9BAAGfQwABn0UAAZ9HAAGfSQABn0sAAZ9NAAGfTwABn3AAAZ9zAAGfdgABn3kAAZ98AAGffwABn4IAAZ+FAAGfiAABn4oAAaAFAAGgBwABoAkAAaALAAGgDgABoA8AAaAQAAGgEQABoBIAAaAUAAGgFgABoBcAAaAYAAGgGgABoBsAAaCWAAGgmAABoJoAAaCcAAGgnwABoKAAAaChAAGgogABoKMAAaClAAGgpwABoKgAAaCpAAGgqwABoKwAAaEnAAGhKQABoSwAAaEuAAGhMQABoTIAAaEzAAGhNAABoTUAAaE3AAGhOQABoToAAaE7AAGhPQABoT4AAaFXAAGhWAABoVkAAaFbAAGh1gABodgAAaHaAAGh3AABod8AAaHgAAGh4QABoeIAAaHjAAGh5QABoecAAaHoAAGh6QABoesAAaHsAAGiZwABomkAAaJrAAGibQABonAAAaJxAAGicgABonMAAaJ0AAGidgABongAAaJ5AAGiegABonwAAaJ9AAGi+AABovoAAaL8AAGi/gABowEAAaMCAAGjAwABowQAAaMFAAGjBwABowkAAaMKAAGjCwABow0AAaMOAAGjiQABo4sAAaONAAGjjwABo5IAAaOTAAGjlAABo5UAAaOWAAGjmAABo5oAAaObAAGjnAABo54AAaOfAAGkGgABpBwAAaQeAAGkIAABpCMAAaQkAAGkJQABpCYAAaQnAAGkKQABpCsAAaQsAAGkLQABpC8AAaQwAAGkeQABpJ0AAaTEAAGk6AABpOsAAaTuAAGk8AABpPIAAaT0AAGk9gABpPcAAaT6AAGlEwABpTAAAaUzAAGlNgABpTkAAaU8AAGlPwABpUIAAaVFAAGlYgABpWUAAaVoAAGlawABpW4AAaVxAAGldAABpXcAAaV5AAGl9AABpfYAAaX5AAGl+wABpf4AAaX/AAGmAAABpgEAAaYCAAGmBAABpgcAAaYIAAGmCQABpgsAAaYMAAGmhwABpokAAaaMAAGmjgABppEAAaaSAAGmkwABppQAAaaVAAGmlwABppoAAaabAAGmnAABpp4AAaafAAGmoQABpxwAAaceAAGnIQABpyMAAacmAAGnJwABpygAAacpAAGnKgABpywAAacvAAGnMAABpzEAAaczAAGnNAABp68AAaexAAGnswABp7UAAae4AAGnuQABp7oAAae7AAGnvAABp74AAafBAAGnwgABp8MAAafFAAGnxgABqEEAAahDAAGoRQABqEcAAahKAAGoSwABqEwAAahNAAGoTgABqFAAAahTAAGoVAABqFUAAahXAAGoWAABqNMAAajVAAGo1wABqNkAAajcAAGo3QABqN4AAajfAAGo4AABqOIAAajlAAGo5gABqOcAAajpAAGo6gABqWUAAalnAAGpagABqWwAAalvAAGpcAABqXEAAalyAAGpcwABqXUAAal4AAGpeQABqXoAAal8AAGpfQABqY4AAamhAAGpugABqc0AAanaAAGp7QABqgQAAaoWAAGqqQABqswAAarsAAGrDAABqw4AAasQAAGrEgABqxQAAasXAAGrGAABqxkAAascAAGrHQABqx8AAasgAAGrIwABqyYAAasnAAGrKAABqysAAassAAGrMQABq0oAAatTAAGrVQABq1gAAathAAGrZAABq2cAAatpAAGrsgABq9YAAav9AAGsIQABrCQAAawmAAGsKAABrCoAAawsAAGsLgABrC8AAawyAAGsSwABrGwAAaxuAAGscAABrHIAAax0AAGsdgABrHgAAax6AAGsfAABrJ0AAaygAAGsowABrKYAAaypAAGsrAABrK8AAayyAAGstQABrLcAAa0yAAGtNAABrTYAAa04AAGtOwABrTwAAa09AAGtPgABrT8AAa1BAAGtQwABrUQAAa1FAAGtRwABrUgAAa3DAAGtxQABrccAAa3JAAGtzAABrc0AAa3OAAGtzwABrdAAAa3SAAGt1AABrdUAAa3WAAGt2AABrdkAAa5UAAGuVgABrlkAAa5bAAGuXgABrl8AAa5gAAGuYQABrmIAAa5kAAGuZgABrmcAAa5oAAGuagABrmsAAa6EAAGuhQABroYAAa6IAAGvAwABrwUAAa8HAAGvCQABrwwAAa8NAAGvDgABrw8AAa8QAAGvEgABrxQAAa8VAAGvFgABrxgAAa8ZAAGvlAABr5YAAa+YAAGvmgABr50AAa+eAAGvnwABr6AAAa+hAAGvowABr6UAAa+mAAGvpwABr6kAAa+qAAGwJQABsCcAAbApAAGwKwABsC4AAbAvAAGwMAABsDEAAbAyAAGwNAABsDYAAbA3AAGwOAABsDoAAbA7AAGwtgABsLgAAbC6AAGwvAABsL8AAbDAAAGwwQABsMIAAbDDAAGwxQABsMcAAbDIAAGwyQABsMsAAbDMAAGxRwABsUkAAbFLAAGxTQABsVAAAbFRAAGxUgABsVMAAbFUAAGxVgABsVgAAbFZAAGxWgABsVwAAbFdAAGxpgABscoAAbHxAAGyFQABshgAAbIbAAGyHQABsh8AAbIhAAGyIwABsiQAAbInAAGyQAABsl0AAbJgAAGyYwABsmYAAbJpAAGybAABsm8AAbJyAAGyjwABspIAAbKVAAGymAABspsAAbKeAAGyoQABsqQAAbKmAAGzIQABsyMAAbMmAAGzKAABsysAAbMsAAGzLQABsy4AAbMvAAGzMQABszQAAbM1AAGzNgABszgAAbM5AAGztAABs7YAAbO5AAGzuwABs74AAbO/AAGzwAABs8EAAbPCAAGzxAABs8cAAbPIAAGzyQABs8sAAbPMAAG0RwABtEkAAbRMAAG0TgABtFEAAbRSAAG0UwABtFQAAbRVAAG0VwABtFoAAbRbAAG0XAABtF4AAbRfAAG02gABtNwAAbTfAAG04QABtOQAAbTlAAG05gABtOcAAbToAAG06gABtO0AAbTuAAG07wABtPEAAbTyAAG1dQABtZkAAbW9AAG14AABtgcAAbYnAAG2TgABtnUAAbaVAAG2uQABtt0AAbbfAAG24gABtuQAAbbmAAG26AABtusAAbbuAAG28AABtvIAAbb1AAG29wABtvkAAbb8AAG2/wABtwAAAbcJAAG3IgABtycAAbcpAAG3LgABtzEAAbczAAG3fAABt6AAAbfHAAG36wABt+4AAbfwAAG38gABt/QAAbf2AAG3+AABt/kAAbf8AAG4FQABuDoAAbg8AAG4PgABuEAAAbhCAAG4RAABuEYAAbhIAAG4SgABuEwAAbhxAAG4dAABuHcAAbh6AAG4fQABuIAAAbiDAAG4hgABuIkAAbiMAAG4jgABuQkAAbkLAAG5DgABuRAAAbkTAAG5FAABuRUAAbkWAAG5FwABuRkAAbkbAAG5HAABuR0AAbkfAAG5IAABuTEAAbkyAAG5NAABua8AAbmxAAG5swABubUAAbm4AAG5uQABuboAAbm7AAG5vAABub4AAbnAAAG5wQABucIAAbnEAAG5xQABukAAAbpCAAG6RQABukcAAbpKAAG6SwABukwAAbpNAAG6TgABulAAAbpSAAG6UwABulQAAbpWAAG6VwABumgAAbppAAG6awABuuYAAbroAAG66gABuuwAAbrvAAG68AABuvEAAbryAAG68wABuvUAAbr3AAG6+AABuvkAAbr7AAG6/AABu3cAAbt5AAG7fAABu34AAbuBAAG7ggABu4MAAbuEAAG7hQABu4cAAbuJAAG7igABu4sAAbuNAAG7jgABu58AAbugAAG7ogABvB0AAbwfAAG8IQABvCMAAbwmAAG8JwABvCgAAbwpAAG8KgABvCwAAbwuAAG8LwABvDAAAbwyAAG8MwABvK4AAbywAAG8swABvLUAAby4AAG8uQABvLoAAby7AAG8vAABvL4AAbzAAAG8wQABvMIAAbzEAAG8xQABvN4AAbzfAAG84AABvOIAAb1dAAG9XwABvWEAAb1jAAG9ZgABvWcAAb1oAAG9aQABvWoAAb1sAAG9bgABvW8AAb1wAAG9cgABvXMAAb3uAAG98AABvfMAAb31AAG9+AABvfkAAb36AAG9+wABvfwAAb3+AAG+AAABvgEAAb4CAAG+BAABvgUAAb4RAAG+KgABvj8AAb5CAAG+RQABvkgAAb5LAAG+TgABvmMAAb5mAAG+aQABvmwAAb5vAAG+cgABvnQAAb6KAAG+lQABvqEAAb63AAG+wQABv1QAAb93AAG/lwABv7cAAb+5AAG/uwABv70AAb+/AAG/wgABv8MAAb/EAAG/xwABv8gAAb/KAAG/ywABv80AAb/QAAG/0QABv9IAAb/VAAG/1gABv9sAAb/0AAG//QABv/8AAcABAAHACgABwA0AAcAQAAHAEgABwFsAAcB/AAHApgABwMoAAcDNAAHAzwABwNEAAcDTAAHA1QABwNcAAcDYAAHA2wABwPQAAcEVAAHBFwABwRkAAcEbAAHBHQABwR8AAcEhAAHBIwABwSUAAcFGAAHBSQABwUwAAcFPAAHBUgABwVUAAcFYAAHBWwABwV4AAcFgAAHB2wABwd0AAcHfAAHB4QABweQAAcHlAAHB5gABwecAAcHoAAHB6gABwewAAcHtAAHB7gABwfAAAcHxAAHCbAABwm4AAcJwAAHCcgABwnUAAcJ2AAHCdwABwngAAcJ5AAHCewABwn0AAcJ+AAHCfwABwoEAAcKCAAHC/QABwv8AAcMCAAHDBAABwwcAAcMIAAHDCQABwwoAAcMLAAHDDQABww8AAcMQAAHDEQABwxMAAcMUAAHDLQABwy4AAcMvAAHDMQABw6wAAcOuAAHDsAABw7IAAcO1AAHDtgABw7cAAcO4AAHDuQABw7sAAcO9AAHDvgABw78AAcPBAAHDwgABxD0AAcQ/AAHEQQABxEMAAcRGAAHERwABxEgAAcRJAAHESgABxEwAAcROAAHETwABxFAAAcRSAAHEUwABxM4AAcTQAAHE0gABxNQAAcTXAAHE2AABxNkAAcTaAAHE2wABxN0AAcTfAAHE4AABxOEAAcTjAAHE5AABxV8AAcVhAAHFYwABxWUAAcVoAAHFaQABxWoAAcVrAAHFbAABxW4AAcVwAAHFcQABxXIAAcV0AAHFdQABxfAAAcXyAAHF9AABxfYAAcX5AAHF+gABxfsAAcX8AAHF/QABxf8AAcYBAAHGAgABxgMAAcYFAAHGBgABxk8AAcZzAAHGmgABxr4AAcbBAAHGwwABxsUAAcbHAAHGyQABxssAAcbMAAHGzwABxugAAccFAAHHBwABxwkAAccLAAHHDQABxw8AAccRAAHHEwABxzAAAcczAAHHNgABxzkAAcc8AAHHPwABx0IAAcdFAAHHRwABx8IAAcfEAAHHxgABx8gAAcfLAAHHzAABx80AAcfOAAHHzwABx9EAAcfTAAHH1AABx9UAAcfXAAHH2AAByFMAAchVAAHIVwAByFkAAchcAAHIXQAByF4AAchfAAHIYAAByGIAAchkAAHIZQAByGYAAchoAAHIaQAByOQAAcjmAAHI6AAByOoAAcjtAAHI7gAByO8AAcjwAAHI8QAByPMAAcj1AAHI9gAByPcAAcj5AAHI+gAByXUAAcl3AAHJegAByXwAAcl/AAHJgAAByYEAAcmCAAHJgwAByYUAAcmHAAHJiAAByYkAAcmLAAHJjAABygcAAcoJAAHKCwAByg0AAcoQAAHKEQAByhIAAcoTAAHKFAAByhYAAcoYAAHKGQAByhoAAcocAAHKHQABypgAAcqaAAHKnAAByp4AAcqhAAHKogAByqMAAcqkAAHKpQAByqcAAcqpAAHKqgAByqsAAcqtAAHKrgAByykAAcsrAAHLLQAByy8AAcsyAAHLMwAByzQAAcs1AAHLNgAByzgAAcs6AAHLOwAByzwAAcs+AAHLPwABy9IAAcv1AAHMFQABzDUAAcw3AAHMOQABzDsAAcw9AAHMQAABzEEAAcxCAAHMRQABzEYAAcxIAAHMSQABzEsAAcxOAAHMTwABzFAAAcxTAAHMVAABzFkAAcxyAAHMewABzH0AAcx/AAHMiAABzIsAAcyOAAHMkAABzNkAAcz9AAHNJAABzUgAAc1LAAHNTQABzU8AAc1RAAHNUwABzVUAAc1WAAHNWQABzXIAAc2TAAHNlQABzZcAAc2ZAAHNmwABzZ0AAc2fAAHNoQABzaMAAc3EAAHNxwABzcoAAc3NAAHN0AABzdMAAc3WAAHN2QABzdwAAc3eAAHOWQABzlsAAc5dAAHOXwABzmIAAc5jAAHOZAABzmUAAc5mAAHOaAABzmoAAc5rAAHObAABzm4AAc5vAAHO6gABzuwAAc7uAAHO8AABzvMAAc70AAHO9QABzvYAAc73AAHO+QABzvsAAc78AAHO/QABzv8AAc8AAAHPewABz30AAc+AAAHPggABz4UAAc+GAAHPhwABz4gAAc+JAAHPiwABz40AAc+OAAHPjwABz5EAAc+SAAHPqwABz6wAAc+tAAHPrwAB0CoAAdAsAAHQLgAB0DAAAdAzAAHQNAAB0DUAAdA2AAHQNwAB0DkAAdA7AAHQPAAB0D0AAdA/AAHQQAAB0LsAAdC9AAHQvwAB0MEAAdDEAAHQxQAB0MYAAdDHAAHQyAAB0MoAAdDMAAHQzQAB0M4AAdDQAAHQ0QAB0UwAAdFOAAHRUAAB0VIAAdFVAAHRVgAB0VcAAdFYAAHRWQAB0VsAAdFdAAHRXgAB0V8AAdFhAAHRYgAB0d0AAdHfAAHR4QAB0eMAAdHmAAHR5wAB0egAAdHpAAHR6gAB0ewAAdHuAAHR7wAB0fAAAdHyAAHR8wAB0m4AAdJwAAHScgAB0nQAAdJ3AAHSeAAB0nkAAdJ6AAHSewAB0n0AAdJ/AAHSgAAB0oEAAdKDAAHShAAB0s0AAdLxAAHTGAAB0zw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AAgfeAAIH9wACCBQAAggWAAIIGAACCBoAAggcAAIIHgACCCAAAggiAAIIPwACCEIAAghFAAIISAACCEsAAghOAAIIUQACCFQAAghWAAII0QACCNMAAgjVAAII1wACCNoAAgjbAAII3AACCN0AAgjeAAII4AACCOIAAgjjAAII5AACCOYAAgjnAAIJYgACCWQAAglmAAIJaAACCWsAAglsAAIJbQACCW4AAglvAAIJcQACCXMAAgl0AAIJdQACCXcAAgl4AAIJ8wACCfUAAgn3AAIJ+QACCfwAAgn9AAIJ/gACCf8AAgoAAAIKAgACCgQAAgoFAAIKBgACCggAAgoJAAIKhAACCoYAAgqIAAIKigACCo0AAgqOAAIKjwACCpAAAgqRAAIKkwACCpUAAgqWAAIKlwACCpkAAgqaAAILFQACCxcAAgsZAAILGwACCx4AAgsfAAILIAACCyEAAgsiAAILJAACCyYAAgsnAAILKAACCyoAAgsrAAILpgACC6gAAguqAAILrAACC68AAguwAAILsQACC7IAAguzAAILtQACC7cAAgu4AAILuQACC7sAAgu8AAIMNwACDDkAAgw7AAIMPQACDEAAAgxBAAIMQgACDEMAAgxEAAIMRgACDEgAAgxJAAIMSgACDEwAAgxNAAIMXgACDF8AAgxhAAIM3AACDN4AAgzgAAIM4gACDOUAAgzmAAIM5wACDOgAAgzpAAIM6wACDO4AAgzvAAIM8AACDPIAAgzzAAINbgACDXAAAg1yAAINdAACDXcAAg14AAINeQACDXoAAg17AAINfQACDYAAAg2BAAINggACDYQAAg2FAAIOAAACDgIAAg4FAAIOBwACDgoAAg4LAAIODAACDg0AAg4OAAIOEAACDhMAAg4UAAIOFQACDhcAAg4YAAIOKQACDioAAg4sAAIOrwACDtMAAg73AAIPGgACD0EAAg9hAAIPiAACD68AAg/PAAIP8wACEBcAAhAZAAIQHAACEB4AAhAgAAIQIgACECUAAhAoAAIQKgACECwAAhAvAAIQMQACEDMAAhA2AAIQOQACEDoAAhA/AAIQWAACEF0AAhBfAAIQZAACEGcAAhBpAAIQsgACENYAAhD9AAIRIQACESQAAhEmAAIRKAACESoAAhEsAAIRLgACES8AAhEyAAIRSwACEXAAAhFyAAIRdAACEXYAAhF4AAIRegACEXwAAhF+AAIRgAACEYIAAhGnAAIRqgACEa0AAhGwAAIRswACEbYAAhG5AAIRvAACEb8AAhHCAAIRxAACEj8AAhJBAAISRAACEkYAAhJJAAISSgACEksAAhJMAAISTQACEk8AAhJRAAISUgACElMAAhJVAAISVgACEmcAAhJoAAISagACEuUAAhLnAAIS6QACEusAAhLuAAIS7wACEvAAAhLxAAIS8gACEvQAAhL2AAIS9wACEvgAAhL6AAIS+wACE3YAAhN4AAITewACE30AAhOAAAITgQACE4IAAhODAAIThAACE4YAAhOIAAITiQACE4oAAhOMAAITjQACE54AAhOjAAITpgACE6gAAhO5AAITwgACE8UAAhPIAAITygACE+YAAhP4AAIUcwACFHUAAhR3AAIUeQACFHwAAhR9AAIUfgACFH8AAhSAAAIUggACFIQAAhSFAAIUhgACFIgAAhSJAAIVBAACFQYAAhUJAAIVCwACFQ4AAhUPAAIVEAACFREAAhUSAAIVFAACFRYAAhUXAAIVGAACFRoAAhUbAAIVLAACFS0AAhUvAAIVqgACFawAAhWuAAIVsAACFbMAAhW0AAIVtQACFbYAAhW3AAIVuQACFbsAAhW8AAIVvQACFb8AAhXAAAIWOwACFj0AAhZAAAIWQgACFkUAAhZGAAIWRwACFkgAAhZJAAIWSwACFk0AAhZOAAIWTwACFlEAAhZSAAIWawACFmwAAhZtAAIWbwACFuoAAhbsAAIW7gACFvAAAhbzAAIW9AACFvUAAhb2AAIW9wACFvkAAhb7AAIW/AACFv0AAhb/AAIXAAACF3sAAhd9AAIXgAACF4IAAheFAAIXhgACF4cAAheIAAIXiQACF4sAAheNAAIXjgACF48AAheRAAIXkgACF58AAhe4AAIX8QACF/QAAhf3AAIX+gACF/0AAhgAAAIYAwACGAYAAhgJAAIYDAACGA8AAhgSAAIYFQACGBgAAhgbAAIYVAACGFcAAhhaAAIYXQACGGAAAhhjAAIYZgACGGkAAhhsAAIYbwACGHIAAhh1AAIYeAACGHsAAhh+AAIYgAACGJwAAhiqAAIYwwACGNIAAhj1AAIZCQACGR4AAhkpAAIZQgACGVUAAhl6AAIZmAACGaoAAhnJAAIaXAACGn8AAhqfAAIavwACGsEAAhrDAAIaxQACGscAAhrKAAIaywACGswAAhrPAAIa0AACGtIAAhrTAAIa1QACGtgAAhrZAAIa2gACGt0AAhreAAIa5wACGwAAAhsJAAIbCwACGw0AAhsWAAIbGQACGxwAAhseAAIbZwACG4sAAhuyAAIb1gACG9kAAhvbAAIb3QACG98AAhvhAAIb4wACG+QAAhvnAAIcAAACHCEAAhwjAAIcJQACHCcAAhwpAAIcKwACHC0AAhwvAAIcMQACHFIAAhxVAAIcWAACHFsAAhxeAAIcYQACHGQAAhxnAAIcagACHGwAAhznAAIc6QACHOsAAhztAAIc8AACHPEAAhzyAAIc8wACHPQAAhz2AAIc+AACHPkAAhz6AAIc/AACHP0AAh14AAIdegACHXwAAh1+AAIdgQACHYIAAh2DAAIdhAACHYUAAh2HAAIdiQACHYoAAh2LAAIdjQACHY4AAh4JAAIeCwACHg4AAh4QAAIeEwACHhQAAh4VAAIeFgACHhcAAh4ZAAIeGwACHhwAAh4dAAIeHwACHiAAAh45AAIeOgACHjsAAh49AAIeuAACHroAAh68AAIevgACHsEAAh7CAAIewwACHsQAAh7FAAIexwACHskAAh7KAAIeywACHs0AAh7OAAIfSQACH0sAAh9NAAIfTwACH1IAAh9TAAIfVAACH1UAAh9WAAIfWAACH1oAAh9bAAIfXAACH14AAh9fAAIf2gACH9wAAh/eAAIf4AACH+MAAh/kAAIf5QACH+YAAh/nAAIf6QACH+sAAh/sAAIf7QACH+8AAh/wAAIgawACIG0AAiBvAAIgcQACIHQAAiB1AAIgdgACIHcAAiB4AAIgegACIHwAAiB9AAIgfgACIIAAAiCBAAIg/AACIP4AAiEAAAIhAgACIQUAAiEGAAIhBwACIQgAAiEJAAIhCwACIQ0AAiEOAAIhDwACIREAAiESAAIhWwACIX8AAiGmAAIhygACIc0AAiHPAAIh0QACIdMAAiHVAAIh1wACIdgAAiHbAAIh9AACIhEAAiITAAIiFQACIhcAAiIZAAIiGwACIh0AAiIfAAIiPAACIj8AAiJCAAIiRQACIkgAAiJLAAIiTgACIlEAAiJTAAIizgACItAAAiLSAAIi1AACItcAAiLYAAIi2QACItoAAiLbAAIi3QACIt8AAiLgAAIi4QACIuMAAiLkAAIjXwACI2EAAiNjAAIjZQACI2gAAiNpAAIjagACI2sAAiNsAAIjbgACI3AAAiNxAAIjcgACI3QAAiN1AAIj8AACI/IAAiP0AAIj9gACI/kAAiP6AAIj+wACI/wAAiP9AAIj/wACJAEAAiQCAAIkAwACJAUAAiQGAAIkgQACJIMAAiSGAAIkiAACJIsAAiSMAAIkjQACJI4AAiSPAAIkkQACJJMAAiSUAAIklQACJJcAAiSYAAIlEwACJRUAAiUXAAIlGQACJRwAAiUdAAIlHgACJR8AAiUgAAIlIgACJSQAAiUlAAIlJgACJSgAAiUpAAIlpAACJaYAAiWpAAIlqwACJa4AAiWvAAIlsAACJbEAAiWyAAIltAACJbYAAiW3AAIluAACJboAAiW7AAIlygACJkUAAiZHAAImSQACJksAAiZOAAImTwACJlAAAiZRAAImUgACJlQAAiZWAAImVwACJlgAAiZaAAImWwACJu4AAicRAAInMQACJ1EAAidTAAInVQACJ1cAAidZAAInXAACJ10AAideAAInYQACJ2IAAidkAAInZQACJ2gAAidrAAInbAACJ20AAidwAAIncQACJ3YAAiePAAInmAACJ5oAAiedAAInpgACJ6kAAiesAAInrgACJ/cAAigbAAIoQgACKGYAAihpAAIoawACKG0AAihvAAIocQACKHMAAih0AAIodwACKJAAAiixAAIoswACKLUAAii3AAIouQACKLsAAii9AAIovwACKMEAAijiAAIo5QACKOgAAijrAAIo7gACKPEAAij0AAIo9wACKPoAAij8AAIpdwACKXkAAil7AAIpfQACKYAAAimBAAIpggACKYMAAimEAAIphgACKYgAAimJAAIpigACKYwAAimNAAIqCAACKgoAAioMAAIqDgACKhEAAioSAAIqEwACKhQAAioVAAIqFwACKhkAAioaAAIqGwACKh0AAioeAAIqmQACKpsAAiqeAAIqoAACKqMAAiqkAAIqpQACKqYAAiqnAAIqqQACKqsAAiqsAAIqrQACKq8AAiqwAAIqyQACKsoAAirLAAIqzQACK0gAAitKAAIrTAACK04AAitRAAIrUgACK1MAAitUAAIrVQACK1cAAitZAAIrWgACK1sAAitdAAIrXgACK9kAAivbAAIr3QACK98AAiviAAIr4wACK+QAAivlAAIr5gACK+gAAivqAAIr6wACK+wAAivuAAIr7wACLGoAAixsAAIsbgACLHAAAixzAAIsdAACLHUAAix2AAIsdwACLHkAAix7AAIsfAACLH0AAix/AAIsgAACLPsAAiz9AAIs/wACLQEAAi0EAAItBQACLQYAAi0HAAItCAACLQoAAi0MAAItDQACLQ4AAi0QAAItEQACLYwAAi2OAAItkAACLZIAAi2VAAItlgACLZcAAi2YAAItmQACLZsAAi2dAAItngACLZ8AAi2hAAItogACLesAAi4PAAIuNgACLloAAi5dAAIuYAACLmIAAi5kAAIuZgACLmgAAi5pAAIubAACLoUAAi6iAAIupQACLqgAAi6rAAIurgACLrEAAi60AAIutwACLtQAAi7XAAIu2gACLt0AAi7gAAIu4wACLuYAAi7pAAIu6wACL2YAAi9oAAIvawACL20AAi9wAAIvcQACL3IAAi9zAAIvdAACL3YAAi95AAIvegACL3sAAi99AAIvfgACL/kAAi/7AAIv/gACMAAAAjADAAIwBAACMAUAAjAGAAIwBwACMAkAAjAMAAIwDQACMA4AAjAQAAIwEQACMIwAAjCOAAIwkQACMJMAAjCWAAIwlwACMJgAAjCZAAIwmgACMJwAAjCfAAIwoAACMKEAAjCjAAIwpAACMR8AAjEhAAIxJAACMSYAAjEpAAIxKgACMSsAAjEsAAIxLQACMS8AAjEyAAIxMwACMTQAAjE2AAIxNwACMboAAjHeAAIyAgACMiUAAjJMAAIybAACMpMAAjK6AAIy2gACMv4AAjMiAAIzJAACMycAAjMpAAIzKwACMy0AAjMwAAIzMwACMzUAAjM3AAIzOgACMzwAAjM+AAIzQQACM0QAAjNFAAIzSgACM2MAAjNoAAIzagACM28AAjNyAAIzdAACM70AAjPhAAI0CAACNCwAAjQvAAI0MQACNDMAAjQ1AAI0NwACNDkAAjQ6AAI0PQACNFYAAjR7AAI0fQACNH8AAjSBAAI0gwACNIUAAjSHAAI0iQACNIsAAjSNAAI0sgACNLUAAjS4AAI0uwACNL4AAjTBAAI0xAACNMcAAjTKAAI0zQACNM8AAjVKAAI1TAACNU8AAjVRAAI1VAACNVUAAjVWAAI1VwACNVgAAjVaAAI1XAACNV0AAjVeAAI1YAACNWEAAjVyAAI1cwACNXUAAjXwAAI18gACNfQAAjX2AAI1+QACNfoAAjX7AAI1/AACNf0AAjX/AAI2AQACNgIAAjYDAAI2BQACNgYAAjaBAAI2gwACNoYAAjaIAAI2iwACNowAAjaNAAI2jgACNo8AAjaRAAI2kwACNpQAAjaVAAI2lwACNpgAAjapAAI2rgACNrEAAjazAAI2xAACNtEAAjbUAAI21wACNtoAAjbcAAI2+AACNwoAAjcdAAI3mAACN5oAAjecAAI3ngACN6EAAjeiAAI3owACN6QAAjelAAI3pwACN6kAAjeqAAI3qwACN60AAjeuAAI4KQACOCsAAjguAAI4MAACODMAAjg0AAI4NQACODYAAjg3AAI4OQACODsAAjg8AAI4PQACOD8AAjhAAAI4UQACOFIAAjhUAAI4zwACONEAAjjTAAI41QACONgAAjjZAAI42gACONsAAjjcAAI43gACOOAAAjjhAAI44gACOOQAAjjlAAI5YAACOWIAAjllAAI5ZwACOWoAAjlrAAI5bAACOW0AAjluAAI5cAACOXIAAjlzAAI5dAACOXYAAjl3AAI5kAACOZEAAjmSAAI5lAACOg8AAjoRAAI6EwACOhUAAjoYAAI6GQACOhoAAjobAAI6HAACOh4AAjogAAI6IQACOiIAAjokAAI6JQACOqAAAjqiAAI6pQACOqcAAjqqAAI6qwACOqwAAjqtAAI6rgACOrAAAjqyAAI6swACOrQAAjq2AAI6twACOskAAjriAAI7DwACOxIAAjsVAAI7GAACOxsAAjseAAI7IQACOyQAAjsnAAI7KgACOy0AAjswAAI7XQACO2AAAjtjAAI7ZgACO2kAAjtsAAI7bwACO3IAAjt1AAI7eAACO3sAAjt+AAI7gAACO5wAAjuuAAI7uAACO78AAjvHAAI76wACO/MAAjwJAAI8JgACPC8AAjxCAAI81QACPPgAAj0YAAI9OAACPToAAj08AAI9PgACPUAAAj1DAAI9RAACPUUAAj1IAAI9SQACPUsAAj1MAAI9TgACPVEAAj1SAAI9UwACPVYAAj1XAAI9XAACPXUAAj1+AAI9gAACPYIAAj2LAAI9jgACPZEAAj2TAAI93AACPgAAAj4nAAI+SwACPk4AAj5QAAI+UgACPlQAAj5WAAI+WAACPlkAAj5cAAI+dQACPpY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AAk/zAAJP9QACT/gAAk/5AAJP+gACT/sAAk/8AAJP/gACUAAAAlABAAJQAgACUAQAAlAFAAJQTgACUHIAAlCZAAJQvQACUMAAAlDCAAJQxAACUMYAAlDIAAJQygACUMsAAlDOAAJQ5wACUQQAAlEGAAJRCAACUQoAAlEMAAJRDgACURAAAlESAAJRLwACUTIAAlE1AAJROAACUTsAAlE+AAJRQQACUUQAAlFGAAJRwQACUcMAAlHFAAJRxwACUcoAAlHLAAJRzAACUc0AAlHOAAJR0AACUdIAAlHTAAJR1AACUdYAAlHXAAJSUgACUlQAAlJWAAJSWAACUlsAAlJcAAJSXQACUl4AAlJfAAJSYQACUmMAAlJkAAJSZQACUmcAAlJoAAJS4wACUuUAAlLnAAJS6QACUuwAAlLtAAJS7gACUu8AAlLwAAJS8gACUvQAAlL1AAJS9gACUvgAAlL5AAJTdAACU3YAAlN5AAJTewACU34AAlN/AAJTgAACU4EAAlOCAAJThAACU4YAAlOHAAJTiAACU4oAAlOLAAJUBgACVAgAAlQKAAJUDAACVA8AAlQQAAJUEQACVBIAAlQTAAJUFQACVBcAAlQYAAJUGQACVBsAAlQcAAJUlwACVJkAAlSbAAJUnQACVKAAAlShAAJUogACVKMAAlSkAAJUpgACVKgAAlSpAAJUqgACVKwAAlStAAJVKAACVSoAAlUsAAJVLgACVTEAAlUyAAJVMwACVTQAAlU1AAJVNwACVTkAAlU6AAJVOwACVT0AAlU+AAJV0QACVfQAAlYUAAJWNAACVjYAAlY4AAJWOgACVjwAAlY/AAJWQAACVkEAAlZEAAJWRQACVkcAAlZIAAJWSgACVk0AAlZOAAJWTwACVlIAAlZTAAJWWAACVnEAAlZ6AAJWfAACVn4AAlaHAAJWigACVo0AAlaPAAJW2AACVvwAAlcjAAJXRwACV0oAAldMAAJXTgACV1AAAldSAAJXVAACV1UAAldYAAJXcQACV5IAAleUAAJXlgACV5gAAleaAAJXnAACV54AAlegAAJXogACV8MAAlfGAAJXyQACV8wAAlfPAAJX0gACV9UAAlfYAAJX2wACV90AAlhYAAJYWgACWFwAAlheAAJYYQACWGIAAlhjAAJYZAACWGUAAlhnAAJYaQACWGoAAlhrAAJYbQACWG4AAljpAAJY6wACWO0AAljvAAJY8gACWPMAAlj0AAJY9QACWPYAAlj4AAJY+gACWPsAAlj8AAJY/gACWP8AAll6AAJZfAACWX8AAlmBAAJZhAACWYUAAlmGAAJZhwACWYgAAlmKAAJZjAACWY0AAlmOAAJZkAACWZEAAlmqAAJZqwACWawAAlmuAAJaKQACWisAAlotAAJaLwACWjIAAlozAAJaNAACWjUAAlo2AAJaOAACWjoAAlo7AAJaPAACWj4AAlo/AAJaugACWrwAAlq+AAJawAACWsMAAlrEAAJaxQACWsYAAlrHAAJayQACWssAAlrMAAJazQACWs8AAlrQAAJbSwACW00AAltPAAJbUQACW1QAAltVAAJbVgACW1cAAltYAAJbWgACW1wAAltdAAJbXgACW2AAAlthAAJb3AACW94AAlvgAAJb4gACW+UAAlvmAAJb5wACW+gAAlvpAAJb6wACW+0AAlvuAAJb7wACW/EAAlvyAAJcbQACXG8AAlxxAAJccwACXHYAAlx3AAJceAACXHkAAlx6AAJcfAACXH4AAlx/AAJcgAACXIIAAlyDAAJczAACXPAAAl0XAAJdOwACXT4AAl1AAAJdQgACXUQAAl1GAAJdSAACXUkAAl1MAAJdZQACXYIAAl2EAAJdhgACXYgAAl2KAAJdjAACXY4AAl2QAAJdrQACXbAAAl2zAAJdtgACXbkAAl28AAJdvwACXcIAAl3EAAJePwACXkEAAl5DAAJeRQACXkgAAl5JAAJeSgACXksAAl5MAAJeTgACXlAAAl5RAAJeUgACXlQAAl5VAAJe0AACXtIAAl7UAAJe1gACXtkAAl7aAAJe2wACXtwAAl7dAAJe3wACXuEAAl7iAAJe4wACXuUAAl7mAAJfYQACX2MAAl9lAAJfZwACX2oAAl9rAAJfbAACX20AAl9uAAJfcAACX3IAAl9zAAJfdAACX3YAAl93AAJf8gACX/QAAl/2AAJf+AACX/sAAl/8AAJf/QACX/4AAl//AAJgAQACYAMAAmAEAAJgBQACYAcAAmAIAAJggwACYIUAAmCHAAJgiQACYIwAAmCNAAJgjgACYI8AAmCQAAJgkgACYJQAAmCVAAJglgACYJgAAmCZAAJhFAACYRYAAmEYAAJhGgACYR0AAmEeAAJhHwACYSAAAmEhAAJhIwACYSUAAmEmAAJhJwACYSkAAmEqAAJhpQACYacAAmGpAAJhqwACYa4AAmGvAAJhsAACYbEAAmGyAAJhtAACYbYAAmG3AAJhuAACYboAAmG7AAJiTgACYnEAAmKRAAJisQACYrMAAmK1AAJitwACYrkAAmK8AAJivQACYr4AAmLBAAJiwgACYsQAAmLFAAJiyAACYssAAmLMAAJizQACYtAAAmLRAAJi2gACYvMAAmL8AAJi/gACYwEAAmMKAAJjDQACYxAAAmMSAAJjWwACY38AAmOmAAJjygACY80AAmPPAAJj0QACY9MAAmPVAAJj1wACY9gAAmPbAAJj9AACZBUAAmQXAAJkGQACZBsAAmQdAAJkHwACZCEAAmQjAAJkJQACZEYAAmRJAAJkTAACZE8AAmRSAAJkVQACZFgAAmRbAAJkXgACZGAAAmTbAAJk3QACZN8AAmThAAJk5AACZOUAAmTmAAJk5wACZOgAAmTqAAJk7AACZO0AAmTuAAJk8AACZPEAAmVsAAJlbgACZXAAAmVyAAJldQACZXYAAmV3AAJleAACZXkAAmV7AAJlfQACZX4AAmV/AAJlgQACZYIAAmX9AAJl/wACZgIAAmYEAAJmBwACZggAAmYJAAJmCgACZgsAAmYNAAJmDwACZhAAAmYRAAJmEwACZhQAAmYtAAJmLgACZi8AAmYxAAJmrAACZq4AAmawAAJmsgACZrUAAma2AAJmtwACZrgAAma5AAJmuwACZr0AAma+AAJmvwACZsEAAmbCAAJnPQACZz8AAmdBAAJnQwACZ0YAAmdHAAJnSAACZ0kAAmdKAAJnTAACZ04AAmdPAAJnUAACZ1IAAmdTAAJnzgACZ9AAAmfSAAJn1AACZ9cAAmfYAAJn2QACZ9oAAmfbAAJn3QACZ98AAmfgAAJn4QACZ+MAAmfkAAJoXwACaGEAAmhjAAJoZQACaGgAAmhpAAJoagACaGsAAmhsAAJobgACaHAAAmhxAAJocgACaHQAAmh1AAJo8AACaPIAAmj0AAJo9gACaPkAAmj6AAJo+wACaPwAAmj9AAJo/wACaQEAAmkCAAJpAwACaQUAAmkGAAJpTwACaXMAAmmaAAJpvgACacEAAmnEAAJpxgACacgAAmnKAAJpzAACac0AAmnQAAJp6QACagYAAmoJAAJqDAACag8AAmoSAAJqFQACahgAAmobAAJqOAACajsAAmo+AAJqQQACakQAAmpHAAJqSgACak0AAmpPAAJqygACaswAAmrPAAJq0QACatQAAmrVAAJq1gACatcAAmrYAAJq2gACat0AAmreAAJq3wACauEAAmriAAJrXQACa18AAmtiAAJrZAACa2cAAmtoAAJraQACa2oAAmtrAAJrbQACa3AAAmtxAAJrcgACa3QAAmt1AAJr8AACa/IAAmv1AAJr9wACa/oAAmv7AAJr/AACa/0AAmv+AAJsAAACbAMAAmwEAAJsBQACbAcAAmwIAAJsgwACbIUAAmyIAAJsigACbI0AAmyOAAJsjwACbJAAAmyRAAJskwACbJYAAmyXAAJsmAACbJoAAmybAAJtHgACbUIAAm1mAAJtiQACbbAAAm3QAAJt9wACbh4AAm4+AAJuYgACboYAAm6IAAJuiwACbo0AAm6PAAJukQACbpQAAm6XAAJumQACbpsAAm6eAAJuoAACbqIAAm6lAAJuqAACbqkAAm6uAAJuxwACbswAAm7OAAJu0wACbtYAAm7YAAJvIQACb0UAAm9sAAJvkAACb5MAAm+VAAJvlwACb5kAAm+bAAJvnQACb54AAm+hAAJvugACb98AAm/hAAJv4wACb+UAAm/nAAJv6QACb+sAAm/tAAJv7wACb/EAAnAWAAJwGQACcBwAAnAfAAJwIgACcCUAAnAoAAJwKwACcC4AAnAxAAJwMwACcK4AAnCwAAJwswACcLUAAnC4AAJwuQACcLoAAnC7AAJwvAACcL4AAnDAAAJwwQACcMIAAnDEAAJwxQACcNYAAnDXAAJw2QACcVQAAnFWAAJxWAACcVoAAnFdAAJxXgACcV8AAnFgAAJxYQACcWMAAnFlAAJxZgACcWcAAnFpAAJxagACceUAAnHnAAJx6gACcewAAnHvAAJx8AACcfEAAnHyAAJx8wACcfUAAnH3AAJx+AACcfkAAnH7AAJx/AACcg0AAnISAAJyFQACchcAAnIoAAJyOQACcjwAAnI/AAJyQgACckUAAnJHAAJyYwACcnUAAnKIAAJylAACcw8AAnMRAAJzEwACcxUAAnMYAAJzGQACcxoAAnMbAAJzHAACcx4AAnMgAAJzIQACcyIAAnMkAAJzJQACc6AAAnOiAAJzpQACc6cAAnOqAAJzqwACc6wAAnOtAAJzrgACc7AAAnOyAAJzswACc7QAAnO2AAJztwACc8gAAnPJAAJzywACdEYAAnRIAAJ0SgACdEwAAnRPAAJ0UAACdFEAAnRSAAJ0UwACdFUAAnRXAAJ0WAACdFkAAnRbAAJ0XAACdNcAAnTZAAJ03AACdN4AAnThAAJ04gACdOMAAnTkAAJ05QACdOcAAnTpAAJ06gACdOsAAnTtAAJ07gACdQcAAnUIAAJ1CQACdQsAAnWGAAJ1iAACdYoAAnWMAAJ1jwACdZAAAnWRAAJ1kgACdZMAAnWVAAJ1lwACdZgAAnWZAAJ1mwACdZwAAnYXAAJ2GQACdhwAAnYeAAJ2IQACdiIAAnYjAAJ2JAACdiUAAnYnAAJ2KQACdioAAnYrAAJ2LQACdi4AAnZFAAJ2XgACdosAAnaOAAJ2kQACdpQAAnaXAAJ2mgACdp0AAnagAAJ2owACdqYAAnapAAJ2rAACdtkAAnbcAAJ23wACduIAAnblAAJ26AACdusAAnbuAAJ28QACdvQAAnb3AAJ2+gACdvwAAncOAAJ3JgACdzoAAndlAAJ3cQACd4sAAnehAAJ3qwACd7YAAnfSAAJ35QACeHgAAnibAAJ4uwACeNsAAnjdAAJ43wACeOEAAnjjAAJ45gACeOcAAnjoAAJ46wACeOwAAnjuAAJ47wACePEAAnj0AAJ49QACePYAAnj5AAJ4+gACeP8AAnkYAAJ5IQACeSMAAnklAAJ5LgACeTEAAnk0AAJ5NgACeX8AAnmjAAJ5ygACee4AAnnxAAJ58wACefUAAnn3AAJ5+QACefsAAnn8AAJ5/wACehgAAno5AAJ6OwACej0AAno/AAJ6QQACekMAAnpFAAJ6RwACekkAAnpqAAJ6bQACenAAAnpzAAJ6dgACenkAAnp8AAJ6fwACeoIAAnqEAAJ6/wACewEAAnsDAAJ7BQACewgAAnsJAAJ7CgACewsAAnsMAAJ7DgACexAAAnsRAAJ7EgACexQAAnsVAAJ7kAACe5IAAnuUAAJ7lgACe5kAAnuaAAJ7mwACe5wAAnudAAJ7nwACe6EAAnuiAAJ7owACe6UAAnumAAJ8IQACfCMAAnwmAAJ8KAACfCsAAnwsAAJ8LQACfC4AAnwvAAJ8MQACfDMAAnw0AAJ8NQACfDcAAnw4AAJ8UQACfFIAAnxTAAJ8VQACfNAAAnzSAAJ81AACfNYAAnzZAAJ82gACfNsAAnzcAAJ83QACfN8AAnzhAAJ84gACfOMAAnzlAAJ85gACfWEAAn1jAAJ9ZQACfWcAAn1qAAJ9awACfWwAAn1tAAJ9bgACfXAAAn1yAAJ9cwACfXQAAn12AAJ9dwACffIAAn30AAJ99gACffgAAn37AAJ9/AACff0AAn3+AAJ9/wACfgEAAn4DAAJ+BAACfgUAAn4HAAJ+CAACfoMAAn6FAAJ+hwACfokAAn6MAAJ+jQACfo4AAn6PAAJ+kAACfpIAAn6UAAJ+lQACfpYAAn6YAAJ+mQACfxQAAn8WAAJ/GAACfxoAAn8dAAJ/HgACfx8AAn8gAAJ/IQACfyMAAn8lAAJ/JgACfycAAn8pAAJ/KgACf3MAAn+XAAJ/vgACf+IAAn/lAAJ/5wACf+kAAn/rAAJ/7QACf+8AAn/wAAJ/8wACgAwAAoApAAKAKwACgC0AAoAvAAKAMQACgDMAAoA1AAKANwACgFQAAoBXAAKAWgACgF0AAoBgAAKAYwACgGYAAoBpAAKAawACgOYAAoDoAAKA6gACgOwAAoDvAAKA8AACgPEAAoDyAAKA8wACgPUAAoD3AAKA+AACgPkAAoD7AAKA/AACgXcAAoF5AAKBewACgX0AAoGAAAKBgQACgYIAAoGDAAKBhAACgYYAAoGIAAKBiQACgYoAAoGMAAKBjQACgggAAoIKAAKCDAACgg4AAoIRAAKCEgACghMAAoIUAAKCFQACghcAAoIZAAKCGgACghsAAoIdAAKCHgACgpkAAoKbAAKCngACgqAAAoKjAAKCpAACgqUAAoKmAAKCpwACgqkAAoKrAAKCrAACgq0AAoKvAAKCsAACgysAAoMtAAKDLwACgzEAAoM0AAKDNQACgzYAAoM3AAKDOAACgzoAAoM8AAKDPQACgz4AAoNAAAKDQQACg7wAAoO+AAKDwAACg8IAAoPFAAKDxgACg8cAAoPIAAKDyQACg8sAAoPNAAKDzgACg88AAoPRAAKD0gAChE0AAoRPAAKEUQAChFMAAoRWAAKEVwAChFgAAoRZAAKEWgAChFwAAoReAAKEXwAChGAAAoRiAAKEYwAChPYAAoUZAAKFOQAChVkAAoVbAAKFXQAChV8AAoVhAAKFZAAChWUAAoVmAAKFaQAChWoAAoVsAAKFbQAChW8AAoVyAAKFcwAChXQAAoV3AAKFeAAChX0AAoWWAAKFnwAChaEAAoWjAAKFrAACha8AAoWyAAKFtAAChf0AAoYhAAKGSAAChmwAAoZvAAKGcQAChnMAAoZ1AAKGdwAChnkAAoZ6AAKGfQAChpYAAoa3AAKGuQAChrsAAoa9AAKGvwAChsEAAobDAAKGxQAChscAAoboAAKG6wAChu4AAobxAAKG9AAChvcAAob6AAKG/QAChwAAAocCAAKHfQACh38AAoeBAAKHgwACh4YAAoeHAAKHiAACh4kAAoeKAAKHjAACh44AAoePAAKHkAACh5IAAoeTAAKIDgACiBAAAogSAAKIFAACiBcAAogYAAKIGQACiBoAAogbAAKIHQACiB8AAoggAAKIIQACiCMAAogkAAKInwACiKEAAoikAAKIpgACiKkAAoiqAAKIqwACiKwAAoitAAKIrwACiLEAAoiyAAKIswACiLUAAoi2AAKIzwACiNAAAojRAAKI0wACiU4AAolQAAKJUgACiVQAAolXAAKJWAACiVkAAolaAAKJWwACiV0AAolfAAKJYAACiWEAAoljAAKJZAACid8AAonhAAKJ4wACieUAAonoAAKJ6QACieoAAonrAAKJ7AACie4AAonwAAKJ8QACifIAAon0AAKJ9QACinAAAopyAAKKdAACinYAAop5AAKKegACinsAAop8AAKKfQACin8AAoqBAAKKggACioMAAoqFAAKKhgACiwEAAosDAAKLBQACiwcAAosKAAKLCwACiwwAAosNAAKLDgACixAAAosSAAKLEwACixQAAosWAAKLFwACi5IAAouUAAKLlgACi5gAAoubAAKLnAACi50AAoueAAKLnwACi6EAAoujAAKLpAACi6UAAounAAKLqAACi/EAAowVAAKMPAACjGAAAoxjAAKMZQACjGcAAoxpAAKMawACjG0AAoxuAAKMcQACjIoAAoynAAKMqQACjKsAAoytAAKMrwACjLEAAoyzAAKMtQACjNIAAozVAAKM2AACjNsAAozeAAKM4QACjOQAAoznAAKM6QACjWQAAo1mAAKNaAACjWoAAo1tAAKNbgACjW8AAo1wAAKNcQACjXMAAo11AAKNdgACjXcAAo15AAKNegACjfUAAo33AAKN+QACjfsAAo3+AAKN/wACjgAAAo4BAAKOAgACjgQAAo4GAAKOBwACjggAAo4KAAKOCwACjoYAAo6IAAKOigACjowAAo6PAAKOkAACjpEAAo6SAAKOkwACjpUAAo6XAAKOmAACjpkAAo6bAAKOnAACjxcAAo8ZAAKPGwACjx0AAo8gAAKPIQACjyIAAo8jAAKPJAACjyYAAo8oAAKPKQACjyoAAo8sAAKPLQACj6gAAo+qAAKPrAACj64AAo+xAAKPsgACj7MAAo+0AAKPtQACj7cAAo+5AAKPugACj7sAAo+9AAKPvgACkDkAApA7AAKQPQACkD8AApBCAAKQQwACkEQAApBFAAKQRgACkEgAApBKAAKQSwACkEwAApBOAAKQTwACkMoAApDMAAKQzgACkNAAApDTAAKQ1AACkNUAApDWAAKQ1wACkNkAApDbAAKQ3AACkN0AApDfAAKQ4AACkXMAApGWAAKRtgACkdYAApHYAAKR2gACkdwAApHeAAKR4QACkeIAApHjAAKR5gACkecAApHpAAKR6gACkewAApHvAAKR8AACkfEAApH0AAKR9QACkfoAApITAAKSHAACkh4AApIgAAKSKQACkiwAApIvAAKSMQACknoAApKeAAKSxQACkukAApLsAAKS7gACkvAAApLyAAKS9AACkvYAApL3AAKS+gACkxMAApM0AAKTNgACkzgAApM6AAKTPAACkz4AApNAAAKTQgACk0QAApNlAAKTaAACk2sAApNuAAKTcQACk3QAApN3AAKTegACk30AApN/AAKT+gACk/wAApP+AAKUAAAClAMAApQEAAKUBQAClAYAApQHAAKUCQAClAsAApQMAAKUDQAClA8AApQQAAKUiwAClI0AApSPAAKUkQAClJQAApSVAAKUlgAClJcAApSYAAKUmgAClJwAApSdAAKUngAClKAAApShAAKVHAAClR4AApUhAAKVIwAClSYAApUnAAKVKAAClSkAApUqAAKVLAAClS4AApUvAAKVMAAClTIAApUzAAKVTAAClU0AApVOAAKVUAAClcsAApXNAAKVzwACldEAApXUAAKV1QACldYAApXXAAKV2AACldoAApXcAAKV3QACld4AApXgAAKV4QACllwAApZeAAKWYAAClmIAApZlAAKWZgAClmcAApZoAAKWaQAClmsAApZtAAKWbgAClm8AApZxAAKWcgAClu0AApbvAAKW8QAClvMAApb2AAKW9wAClvgAApb5AAKW+gAClvwAApb+AAKW/wAClwAAApcCAAKXAwACl34AApeAAAKXggACl4QAApeHAAKXiAACl4kAApeKAAKXiwACl40AApePAAKXkAACl5EAApeTAAKXlAACmA8AApgRAAKYEwACmBUAApgYAAKYGQACmBoAApgbAAKYHAACmB4AApggAAKYIQACmCIAApgkAAKYJQACmG4AApiSAAKYuQACmN0AApjgAAKY4gACmOQAApjmAAKY6AACmOoAApjrAAKY7gACmQcAApkkAAKZJgACmSgAApkqAAKZLAACmS4AApkwAAKZMgACmU8AAplSAAKZVQACmVgAAplbAAKZXgACmWEAAplkAAKZZgACmeEAApnjAAKZ5QACmecAApnqAAKZ6wACmewAApntAAKZ7gACmfAAApnyAAKZ8wACmfQAApn2AAKZ9wACmnIAApp0AAKadgACmngAApp7AAKafAACmn0AApp+AAKafwACmoEAApqDAAKahAACmoUAApqHAAKaiAACmwMAApsFAAKbBwACmwkAApsMAAKbDQACmw4AApsPAAKbEAACmxIAApsUAAKbFQACmxYAApsYAAKbGQACm5QAApuWAAKbmQACm5sAApueAAKbnwACm6AAApuhAAKbogACm6QAApumAAKbpwACm6gAApuqAAKbqwACm64AApwpAAKcKwACnC0AApwvAAKcMgACnDMAApw0AAKcNQACnDYAApw4AAKcOgACnDsAApw8AAKcPgACnD8AApy6AAKcvAACnL4AApzAAAKcwwACnMQAApzFAAKcxgACnMcAApzJAAKcywACnMwAApzNAAKczwACnNAAAp1LAAKdTQACnU8AAp1RAAKdVAACnVUAAp1WAAKdVwACnVgAAp1aAAKdXAACnV0AAp1eAAKdYAACnWEAAp30AAKeFwACnjcAAp5XAAKeWQACnlsAAp5dAAKeXwACnmIAAp5jAAKeZAACnmcAAp5oAAKeagACnmsAAp5tAAKecAACnnEAAp5yAAKedQACnnYAAp57AAKelAACnp0AAp6fAAKeoQACnqoAAp6tAAKesAACnrIAAp77AAKfHwACn0YAAp9qAAKfbQACn28AAp9xAAKfcwACn3UAAp93AAKfeAACn3sAAp+UAAKftQACn7cAAp+5AAKfuwACn70AAp+/AAKfwQACn8MAAp/FAAKf5gACn+kAAp/sAAKf7wACn/IAAp/1AAKf+AACn/sAAp/+AAKgAAACoHsAAqB9AAKgfwACoIEAAqCEAAKghQACoIYAAqCHAAKgiAACoIoAAqCMAAKgjQACoI4AAqCQAAKgkQACoQwAAqEOAAKhEAACoRIAAqEVAAKhFgACoRcAAqEYAAKhGQACoRsAAqEdAAKhHgACoR8AAqEhAAKhIgACoZ0AAqGfAAKhogACoaQAAqGnAAKhqAACoakAAqGqAAKhqwACoa0AAqGvAAKhsAACobEAAqGzAAKhtAACoc0AAqHOAAKhzwACodEAAqJMAAKiTgAColAAAqJSAAKiVQAColYAAqJXAAKiWAAColkAAqJbAAKiXQACol4AAqJfAAKiYQAComIAAqLdAAKi3wACouEAAqLjAAKi5gACoucAAqLoAAKi6QACouoAAqLsAAKi7gACou8AAqLwAAKi8gACovMAAqNuAAKjcAACo3IAAqN0AAKjdwACo3gAAqN5AAKjegACo3sAAqN9AAKjfwACo4AAAqOBAAKjgwACo4QAAqP/AAKkAQACpAMAAqQFAAKkCAACpAkAAqQKAAKkCwACpAwAAqQOAAKkEAACpBEAAqQSAAKkFAACpBUAAqSQAAKkkgACpJQAAqSWAAKkmQACpJoAAqSbAAKknAACpJ0AAqSfAAKkoQACpKIAAqSjAAKkpQACpKYAAqTvAAKlEwACpToAAqVeAAKlYQACpWMAAqVlAAKlZwACpWkAAqVrAAKlbAACpW8AAqWIAAKlpQACpacAAqWpAAKlqwACpa0AAqWvAAKlsQACpbMAAqXQAAKl0wACpdYAAqXZAAKl3AACpd8AAqXiAAKl5QACpecAAqZiAAKmZAACpmcAAqZpAAKmbAACpm0AAqZuAAKmbwACpnAAAqZyAAKmdAACpnUAAqZ2AAKmeAACpnkAAqb0AAKm9gACpvgAAqb6AAKm/QACpv4AAqb/AAKnAAACpwEAAqcDAAKnBQACpwYAAqcHAAKnCQACpwoAAqeFAAKnhwACp4kAAqeLAAKnjgACp48AAqeQAAKnkQACp5IAAqeUAAKnlgACp5cAAqeYAAKnmgACp5sAAqgWAAKoGAACqBsAAqgdAAKoIAACqCEAAqgiAAKoIwACqCQAAqgmAAKoKAACqCkAAqgqAAKoLAACqC0AAqioAAKoqgACqKwAAqiuAAKosQACqLIAAqizAAKotAACqLUAAqi3AAKouQACqLoAAqi7AAKovQACqL4AAqk5AAKpOwACqT0AAqk/AAKpQgACqUMAAqlEAAKpRQACqUYAAqlIAAKpSgACqUsAAqlMAAKpTgACqU8AAqnKAAKpzAACqc4AAqnQAAKp0wACqdQAAqnVAAKp1gACqdcAAqnZAAKp2wACqdwAAqndAAKp3wACqeAAAqpzAAKqlgACqrYAAqrWAAKq2AACqtoAAqrcAAKq3gACquEAAqriAAKq4wACquYAAqrnAAKq6QACquoAAqrsAAKq7wACqvAAAqrxAAKq9AACqvUAAqr+AAKrFwACqyAAAqsiAAKrJAACqy0AAqswAAKrMwACqzUAAqt+AAKrogACq8kAAqvtAAKr8AACq/IAAqv0AAKr9gACq/gAAqv6AAKr+wACq/4AAqwXAAKsOAACrDoAAqw8AAKsPgACrEAAAqxCAAKsRAACrEYAAqxIAAKsaQACrGwAAqxvAAKscgACrHUAAqx4AAKsewACrH4AAqyBAAKsgwACrP4AAq0AAAKtAgACrQQAAq0HAAKtCAACrQkAAq0KAAKtCwACrQ0AAq0PAAKtEAACrREAAq0TAAKtFAACrY8AAq2RAAKtkwACrZUAAq2YAAKtmQACrZoAAq2bAAKtnAACrZ4AAq2gAAKtoQACraIAAq2kAAKtpQACriAAAq4iAAKuJQACricAAq4qAAKuKwACriwAAq4tAAKuLgACrjAAAq4yAAKuMwACrjQAAq42AAKuNwACrlAAAq5RAAKuUgACrlQAAq7PAAKu0QACrtMAAq7VAAKu2AACrtkAAq7aAAKu2wACrtwAAq7eAAKu4AACruEAAq7iAAKu5AACruUAAq9gAAKvYgACr2QAAq9mAAKvaQACr2oAAq9rAAKvbAACr20AAq9vAAKvcQACr3IAAq9zAAKvdQACr3YAAq/xAAKv8wACr/UAAq/3AAKv+gACr/sAAq/8AAKv/QACr/4AArAAAAKwAgACsAMAArAEAAKwBgACsAcAArCCAAKwhAACsIYAArCIAAKwiwACsIwAArCNAAKwjgACsI8AArCRAAKwkwACsJQAArCVAAKwlwACsJgAArETAAKxFQACsRcAArEZAAKxHAACsR0AArEeAAKxHwACsSAAArEiAAKxJAACsSUAArEmAAKxKAACsSkAArFyAAKxlgACsb0AArHhAAKx5AACseYAArHoAAKx6gACsewAArHuAAKx7wACsfIAArILAAKyKAACsioAArIsAAKyLgACsjAAArIyAAKyNAACsjYAArJTAAKyVgACslkAArJcAAKyXwACsmIAArJlAAKyaAACsmoAArLlAAKy5wACsukAArLrAAKy7gACsu8AArLwAAKy8QACsvIAArL0AAKy9gACsvcAArL4AAKy+gACsvsAArN2AAKzeAACs3oAArN8AAKzfwACs4AAArOBAAKzggACs4MAArOFAAKzhwACs4gAArOJAAKziwACs4wAArQHAAK0CQACtAsAArQNAAK0EAACtBEAArQSAAK0EwACtBQAArQWAAK0GAACtBkAArQaAAK0HAACtB0AArSYAAK0mgACtJwAArSeAAK0oQACtKIAArSjAAK0pAACtKUAArSnAAK0qQACtKoAArSrAAK0rQACtK4AArUpAAK1KwACtS0AArUvAAK1MgACtTMAArU0AAK1NQACtTYAArU4AAK1OgACtTsAArU8AAK1PgACtT8AArW6AAK1vAACtb4AArXAAAK1wwACtcQAArXFAAK1xgACtccAArXJAAK1ywACtcwAArXNAAK1zwACtdAAArZLAAK2TQACtk8AArZRAAK2VAACtlUAArZWAAK2VwACtlgAArZaAAK2XAACtl0AArZeAAK2YAACtmEAArb0AAK3FwACtzcAArdXAAK3WQACt1sAArddAAK3XwACt2IAArdjAAK3ZAACt2cAArdoAAK3agACt2sAArdtAAK3cAACt3EAArdyAAK3dQACt3YAArd7AAK3lAACt50AArefAAK3oQACt6oAAretAAK3sAACt7IAArf7AAK4HwACuEYAArhqAAK4bQACuG8AArhxAAK4cwACuHUAArh3AAK4eAACuHsAAriUAAK4tQACuLcAAri5AAK4uwACuL0AAri/AAK4wQACuMMAArjFAAK45gACuOkAArjsAAK47wACuPIAArj1AAK4+AACuPsAArj+AAK5AAACuXsAArl9AAK5fwACuYEAArmEAAK5hQACuYYAArmHAAK5iAACuYoAArmMAAK5jQACuY4AArmQAAK5kQACugwAAroOAAK6EAACuhIAAroVAAK6FgACuhcAAroYAAK6GQACuhsAArodAAK6HgACuh8AArohAAK6IgACup0AArqfAAK6ogACuqQAArqnAAK6qAACuqkAArqqAAK6qwACuq0AArqvAAK6sAACurEAArqzAAK6tAACus0AArrOAAK6zwACutEAArtMAAK7TgACu1AAArtSAAK7VQACu1YAArtXAAK7WAACu1kAArtbAAK7XQACu14AArtfAAK7YQACu2IAArvdAAK73wACu+EAArvjAAK75gACu+cAArvoAAK76QACu+oAArvsAAK77gACu+8AArvwAAK78gACu/MAArxuAAK8cAACvHIAArx0AAK8dwACvHgAArx5AAK8egACvHsAArx9AAK8fwACvIAAAryBAAK8gwACvIQAArz/AAK9AQACvQMAAr0FAAK9CAACvQkAAr0KAAK9CwACvQwAAr0OAAK9EAACvREAAr0SAAK9FAACvRUAAr2QAAK9kgACvZQAAr2WAAK9mQACvZoAAr2bAAK9nAACvZ0AAr2fAAK9oQACvaIAAr2jAAK9pQACvaYAAr3vAAK+EwACvjoAAr5eAAK+YQACvmMAAr5lAAK+ZwACvmkAAr5rAAK+bAACvm8AAr6IAAK+pQACvqcAAr6pAAK+qwACvq0AAr6vAAK+sQACvrMAAr7QAAK+0wACvtYAAr7ZAAK+3AACvt8AAr7iAAK+5QACvucAAr9iAAK/ZAACv2YAAr9oAAK/awACv2wAAr9tAAK/bgACv28AAr9xAAK/cwACv3QAAr91AAK/dwACv3gAAr/zAAK/9QACv/cAAr/5AAK//AACv/0AAr/+AAK//wACwAAAAsACAALABAACwAUAAsAGAALACAACwAkAAsCEAALAhgACwIgAAsCKAALAjQACwI4AAsCPAALAkAACwJEAAsCTAALAlQACwJYAAsCXAALAmQACwJoAAsEVAALBFwACwRkAAsEbAALBHgACwR8AAsEgAALBIQACwSIAAsEkAALBJgACwScAAsEoAALBKgACwSsAAsGmAALBqAACwaoAAsGsAALBrwACwbAAAsGxAALBsgACwbMAAsG1AALBtwACwbgAAsG5AALBuwACwbwAAsI3AALCOQACwjsAAsI9AALCQAACwkEAAsJCAALCQwACwkQAAsJGAALCSAACwkkAAsJKAALCTAACwk0AAsLIAALCygACwswAAsLOAALC0QACwtIAAsLTAALC1AACwtUAAsLXAALC2QACwtoAAsLbAALC3QACwt4AAsNxAALDlAACw7QAAsPUAALD1gACw9gAAsPaAALD3AACw98AAsPgAALD4QACw+QAAsPlAALD5wACw+gAAsPqAALD7QACw+4AAsPvAALD8gACw/MAAsP4AALEEQACxBoAAsQcAALEHgACxCcAAsQqAALELQACxC8AAsR4AALEnAACxMMAAsTnAALE6gACxOwAAsTuAALE8AACxPIAAsT0AALE9QACxPgAAsURAALFMgACxTQAAsU2AALFOAACxToAAsU8AALFPgACxUAAAsVCAALFYwACxWYAAsVpAALFbAACxW8AAsVyAALFdQACxXgAAsV7AALFfQACxfgAAsX6AALF/AACxf4AAsYBAALGAgACxgMAAsYEAALGBQACxgcAAsYJAALGCgACxgsAAsYNAALGDgACxokAAsaLAALGjQACxo8AAsaSAALGkwACxpQAAsaVAALGlgACxpgAAsaaAALGmwACxpwAAsaeAALGnwACxxoAAsccAALHHwACxyEAAsckAALHJQACxyYAAscnAALHKAACxyoAAscsAALHLQACxy4AAscwAALHMQACx0oAAsdLAALHTAACx04AAsfJAALHywACx80AAsfPAALH0gACx9MAAsfUAALH1QACx9YAAsfYAALH2gACx9sAAsfcAALH3gACx98AAshaAALIXAACyF4AAshgAALIYwACyGQAAshlAALIZgACyGcAAshpAALIawACyGwAAshtAALIbwACyHAAAsjrAALI7QACyO8AAsjxAALI9AACyPUAAsj2AALI9wACyPgAAsj6AALI/AACyP0AAsj+AALJAAACyQEAAsl8AALJfgACyYAAAsmCAALJhQACyYYAAsmHAALJiAACyYkAAsmLAALJjQACyY4AAsmPAALJkQACyZIAAsoNAALKDwACyhEAAsoTAALKFgACyhcAAsoYAALKGQACyhoAAsocAALKHgACyh8AAsogAALKIgACyiMAAspsAALKkAACyrcAAsrbAALK3gACyuAAAsriAALK5AACyuYAAsroAALK6QACyuwAAssFAALLIgACyyQAAssmAALLKAACyyoAAsssAALLLgACyzAAAstNAALLUAACy1MAAstWAALLWQACy1wAAstfAALLYgACy2QAAsvfAALL4QACy+MAAsvlAALL6AACy+kAAsvqAALL6wACy+wAAsvuAALL8AACy/EAAsvyAALL9AACy/UAAsxwAALMcgACzHQAAsx2AALMeQACzHoAAsx7AALMfAACzH0AAsx/AALMgQACzIIAAsyDAALMhQACzIYAAs0BAALNAwACzQUAAs0HAALNCgACzQsAAs0MAALNDQACzQ4AAs0QAALNEgACzRMAAs0UAALNFgACzRcAAs2SAALNlAACzZcAAs2ZAALNnAACzZ0AAs2eAALNnwACzaAAAs2iAALNpAACzaUAAs2mAALNqAACzakAAs4kAALOJgACzigAAs4qAALOLQACzi4AAs4vAALOMAACzjEAAs4zAALONQACzjYAAs43AALOOQACzjoAAs61AALOtwACzrkAAs67AALOvgACzr8AAs7AAALOwQACzsIAAs7EAALOxgACzscAAs7IAALOygACzssAAs9GAALPSAACz0oAAs9MAALPTwACz1AAAs9RAALPUgACz1MAAs9VAALPVwACz1gAAs9ZAALPWwACz1wAAs/vAALQEgAC0DIAAtBSAALQVAAC0FYAAtBYAALQWgAC0F0AAtBeAALQXwAC0GIAAtBjAALQZQAC0GYAAtBoAALQawAC0GwAAtBtAALQcAAC0HEAAtB2AALQjwAC0JgAAtCaAALQnAAC0KUAAtCoAALQqwAC0K0AAtD2AALRGgAC0UEAAtFlAALRaAAC0WoAAtFsAALRbgAC0XAAAtFyAALRcwAC0XYAAtGPAALRsAAC0bIAAtG0AALRtgAC0bgAAtG6AALRvAAC0b4AAtHAAALR4QAC0eQAAtHnAALR6gAC0e0AAtHwAALR8wAC0fYAAtH5AALR+wAC0nYAAtJ4AALSegAC0nwAAtJ/AALSgAAC0oEAAtKCAALSgwAC0oUAAtKHAALSiAAC0okAAtKLAALSjAAC0wcAAtMJAALTCwAC0w0AAtMQAALTEQAC0xIAAtMTAALTFAAC0xYAAtMYAALTGQAC0xoAAtMcAALTHQAC05gAAtOaAALTnQAC058AAtOiAALTowAC06QAAtOlAALTpgAC06gAAtOqAALTqwAC06wAAtOuAALTrwAC08gAAtPJAALTygAC08wAAtRHAALUSQAC1EsAAtRNAALUUAAC1FEAAtRSAALUUwAC1FQAAtRWAALUWAAC1FkAAtRaAALUXAAC1F0AAtTYAALU2gAC1NwAAtTeAALU4QAC1OIAAtTjAALU5AAC1OUAAtTnAALU6QAC1OoAAtTrAALU7QAC1O4AAtVpAALVawAC1W0AAtVvAALVcgAC1XMAAtV0AALVdQAC1XYAAtV4AALVegAC1XsAAtV8AALVfgAC1X8AAtX6AALV/AAC1f4AAtYAAALWAwAC1gQAAtYFAALWBgAC1gcAAtYJAALWCwAC1gwAAtYNAALWDwAC1hAAAtaLAALWjQAC1o8AAtaRAALWlAAC1pUAAtaWAALWlwAC1pgAAtaaAALWnAAC1p0AAtaeAALWoAAC1qEAAtbqAALXDgAC1zUAAtdZAALXXAAC114AAtdgAALXYgAC12QAAtdmAALXZwAC12oAAteDAALXoAAC16IAAtekAALXpgAC16gAAteqAALXrAAC164AAtfLAALXzgAC19EAAtfUAALX1wAC19oAAtfdAALX4AAC1+IAAthdAALYXwAC2GEAAthjAALYZgAC2GcAAthoAALYaQAC2GoAAthsAALYbgAC2G8AAthwAALYcgAC2HMAAtjuAALY8AAC2PIAAtj0AALY9wAC2PgAAtj5AALY+gAC2PsAAtj9AALY/wAC2QAAAtkBAALZAwAC2QQAAtl/AALZgQAC2YMAAtmFAALZiAAC2YkAAtmKAALZiwAC2YwAAtmOAALZkAAC2ZEAAtmSAALZlAAC2ZUAAtoQAALaEgAC2hUAAtoXAALaGgAC2hsAAtocAALaHQAC2h4AAtogAALaIgAC2iMAAtokAALaJgAC2icAAtqiAALapAAC2qYAAtqoAALaqwAC2qwAAtqtAALargAC2q8AAtqxAALaswAC2rQAAtq1AALatwAC2rgAAtszAALbNQAC2zcAAts5AALbPAAC2z0AAts+AALbPwAC20AAAttCAALbRAAC20UAAttGAALbSAAC20kAAtvEAALbxgAC28gAAtvKAALbzQAC284AAtvPAALb0AAC29EAAtvTAALb1QAC29YAAtvXAALb2QAC29oAAtxtAALckAAC3LAAAtzQAALc0gAC3NQAAtzWAALc2AAC3NsAAtzcAALc3QAC3OAAAtzhAALc4wAC3OQAAtznAALc6gAC3OsAAtzsAALc7wAC3PAAAtz1AALdDgAC3RcAAt0ZAALdHAAC3SUAAt0oAALdKwAC3S0AAt12AALdmgAC3cEAAt3lAALd6AAC3eoAAt3sAALd7gAC3fAAAt3yAALd8wAC3fYAAt4PAALeMAAC3jIAAt40AALeNgAC3jgAAt46AALePAAC3j4AAt5AAALeYQAC3mQAAt5nAALeagAC3m0AAt5wAALecwAC3nYAAt55AALeewAC3vYAAt74AALe+gAC3vwAAt7/AALfAAAC3wEAAt8CAALfAwAC3wUAAt8HAALfCAAC3wkAAt8LAALfDAAC34cAAt+JAALfiwAC340AAt+QAALfkQAC35IAAt+TAALflAAC35YAAt+YAALfmQAC35oAAt+cAALfnQAC4BgAAuAaAALgHQAC4B8AAuAiAALgIwAC4CQAAuAlAALgJgAC4CgAAuAqAALgKwAC4CwAAuAuAALgLwAC4EgAAuBJAALgSgAC4EwAAuDHAALgyQAC4MsAAuDNAALg0AAC4NEAAuDSAALg0wAC4NQAAuDWAALg2AAC4NkAAuDaAALg3AAC4N0AAuFYAALhWgAC4VwAAuFeAALhYQAC4WIAAuFjAALhZAAC4WUAAuFnAALhaQAC4WoAAuFrAALhbQAC4W4AAuHpAALh6wAC4e0AAuHvAALh8gAC4fMAAuH0AALh9QAC4fYAAuH4AALh+gAC4fsAAuH8AALh/gAC4f8AAuJ6AALifAAC4n4AAuKAAALigwAC4oQAAuKFAALihgAC4ocAAuKJAALiiwAC4owAAuKNAALijwAC4pAAAuMLAALjDQAC4w8AAuMRAALjFAAC4xUAAuMWAALjFwAC4xgAAuMaAALjHAAC4x0AAuMeAALjIAAC4yEAAuNqAALjjgAC47UAAuPZAALj3AAC498AAuPhAALj4wAC4+UAAuPnAALj6AAC4+sAAuQEAALkIQAC5CQAAuQnAALkKgAC5C0AAuQwAALkMwAC5DYAAuRTAALkVgAC5FkAAuRcAALkXwAC5GIAAuRlAALkaAAC5GoAAuTlAALk5wAC5OoAAuTsAALk7wAC5PAAAuTxAALk8gAC5PMAAuT1AALk+AAC5PkAAuT6AALk/AAC5P0AAuV4AALlegAC5X0AAuV/AALlggAC5YMAAuWEAALlhQAC5YYAAuWIAALliwAC5YwAAuWNAALljwAC5ZAAAuYLAALmDQAC5hAAAuYSAALmFQAC5hYAAuYXAALmGAAC5hkAAuYbAALmHgAC5h8AAuYgAALmIgAC5iMAAuaeAALmoAAC5qMAAualAALmqAAC5qkAAuaqAALmqwAC5qwAAuauAALmsQAC5rIAAuazAALmtQAC5rYAAucxAALnMwAC5zUAAuc3AALnOgAC5zsAAuc8AALnPQAC5z4AAudAAALnQwAC50QAAudFAALnRwAC50gAAufDAALnxQAC58cAAufJAALnzAAC580AAufOAALnzwAC59AAAufSAALn1QAC59YAAufXAALn2QAC59oAAuhVAALoVwAC6FoAAuhcAALoXwAC6GAAAuhhAALoYgAC6GMAAuhlAALoaAAC6GkAAuhqAALobAAC6G0AAukAAALpIwAC6UMAAuljAALpZQAC6WcAAulpAALpawAC6W4AAulvAALpcAAC6XMAAul0AALpdgAC6XcAAul5AALpfAAC6X0AAul+AALpgQAC6YIAAumHAALpoAAC6akAAumrAALprQAC6bYAAum5AALpvAAC6b4AAuoHAALqKwAC6lIAAup2AALqeQAC6nsAAup9AALqfwAC6oEAAuqDAALqhAAC6ocAAuqgAALqwQAC6sMAAurFAALqxwAC6skAAurLAALqzQAC6s8AAurRAALq8gAC6vUAAur4AALq+wAC6v4AAusBAALrBAAC6wcAAusKAALrDAAC64cAAuuJAALriwAC640AAuuQAALrkQAC65IAAuuTAALrlAAC65YAAuuYAALrmQAC65oAAuucAALrnQAC7BgAAuwaAALsHAAC7B4AAuwhAALsIgAC7CMAAuwkAALsJQAC7CcAAuwpAALsKgAC7CsAAuwtAALsLgAC7KkAAuyrAALsrgAC7LAAAuyzAALstAAC7LUAAuy2AALstwAC7LkAAuy7AALsvAAC7L0AAuy/AALswAAC7NkAAuzaAALs2wAC7N0AAu1YAALtWgAC7VwAAu1eAALtYQAC7WIAAu1jAALtZAAC7WUAAu1nAALtaQAC7WoAAu1rAALtbQAC7W4AAu3pAALt6wAC7e0AAu3vAALt8gAC7fMAAu30AALt9QAC7fYAAu34AALt+gAC7fsAAu38AALt/gAC7f8AAu56AALufAAC7n4AAu6AAALugwAC7oQAAu6FAALuhgAC7oc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AAwA2AAMAOQADADoAAwA7AAMAPAADAD0AAwA/AAMAQQADAEIAAwBDAAMARQADAEYAAwDBAAMAwwADAMUAAwDHAAMAygADAMsAAwDMAAMAzQADAM4AAwDQAAMA0gADANMAAwDUAAMA1gADANcAAwFSAAMBVAADAVYAAwFYAAMBWwADAVwAAwFdAAMBXgADAV8AAwFhAAMBYwADAWQAAwFlAAMBZwADAWgAAwF5AAMBegADAXwAAwH3AAMB+QADAfsAAwH9AAMCAAADAgEAAwICAAMCAwADAgQAAwIGAAMCCQADAgoAAwILAAMCDQADAg4AAwKJAAMCiwADAo0AAwKPAAMCkgADApMAAwKUAAMClQADApYAAwKYAAMCmwADApwAAwKdAAMCnwADAqAAAwMbAAMDHQADAyAAAwMiAAMDJQADAyYAAwMnAAMDKAADAykAAwMrAAMDLgADAy8AAwMwAAMDMgADAzMAAwPGAAMD6QADBAkAAwQpAAMEKwADBC0AAwQvAAMEMQADBDQAAwQ1AAMENgADBDkAAwQ6AAMEPAADBD0AAwRAAAMEQwADBEQAAwRFAAMESAADBEkAAwROAAMEZwADBHAAAwRyAAMEdQADBH4AAwSBAAMEhAADBIYAAwTPAAME8wADBRoAAwU+AAMFQQADBUMAAwVFAAMFRwADBUkAAwVLAAMFTAADBU8AAwVoAAMFiQADBYsAAwWNAAMFjwADBZEAAwWTAAMFlQADBZcAAwWZAAMFugADBb0AAwXAAAMFwwADBcYAAwXJAAMFzAADBc8AAwXSAAMF1AADBk8AAwZRAAMGUwADBlUAAwZYAAMGWQADBloAAwZbAAMGXAADBl4AAwZgAAMGYQADBmIAAwZkAAMGZQADBuAAAwbiAAMG5AADBuYAAwbpAAMG6gADBusAAwbsAAMG7QADBu8AAwbxAAMG8gADBvMAAwb1AAMG9gADB3EAAwdzAAMHdgADB3gAAwd7AAMHfAADB30AAwd+AAMHfwADB4EAAweDAAMHhAADB4UAAweHAAMHiAADB6EAAweiAAMHowADB6UAAwggAAMIIgADCCQAAwgmAAMIKQADCCoAAwgrAAMILAADCC0AAwgvAAMIMQADCDIAAwgzAAMINQADCDYAAwixAAMIswADCLUAAwi3AAMIugADCLsAAwi8AAMIvQADCL4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AAyL7AAMi/QADIv4AAyN5AAMjewADI30AAyN/AAMjggADI4MAAyOEAAMjhQADI4YAAyOIAAMjigADI4sAAyOMAAMjjgADI48AAyPYAAMj/AADJCMAAyRHAAMkSgADJE0AAyRPAAMkUQADJFMAAyRVAAMkVgADJFkAAyRyAAMkjwADJJIAAySVAAMkmAADJJsAAySeAAMkoQADJKQAAyTBAAMkxAADJMcAAyTKAAMkzQADJNAAAyTTAAMk1gADJNgAAyVTAAMlVQADJVgAAyVaAAMlXQADJV4AAyVfAAMlYAADJWEAAyVjAAMlZgADJWcAAyVoAAMlagADJWsAAyXmAAMl6AADJesAAyXtAAMl8AADJfEAAyXyAAMl8wADJfQAAyX2AAMl+QADJfoAAyX7AAMl/QADJf4AAyZ5AAMmewADJn4AAyaAAAMmgwADJoQAAyaFAAMmhgADJocAAyaJAAMmjAADJo0AAyaOAAMmkAADJpEAAycMAAMnDgADJxEAAycTAAMnFgADJxcAAycYAAMnGQADJxoAAyccAAMnHwADJyAAAychAAMnIwADJyQAAyenAAMnywADJ+8AAygSAAMoOQADKFkAAyiAAAMopwADKMcAAyjrAAMpDwADKREAAykUAAMpFgADKRgAAykaAAMpHQADKSAAAykiAAMpJAADKScAAykpAAMpKwADKS4AAykxAAMpMgADKTcAAylQAAMpVQADKVcAAylcAAMpXwADKWEAAymqAAMpzgADKfUAAyoZAAMqHAADKh4AAyogAAMqIgADKiQAAyomAAMqJwADKioAAypDAAMqaAADKmoAAypsAAMqbgADKnAAAypyAAMqdAADKnYAAyp4AAMqegADKp8AAyqiAAMqpQADKqgAAyqrAAMqrgADKrEAAyq0AAMqtwADKroAAyq8AAMrNwADKzkAAys8AAMrPgADK0EAAytCAAMrQwADK0QAAytFAAMrRwADK0kAAytKAAMrSwADK00AAytOAAMrXwADK2AAAytiAAMr3QADK98AAyvhAAMr4wADK+YAAyvnAAMr6AADK+kAAyvqAAMr7AADK+4AAyvvAAMr8AADK/IAAyvzAAMsbgADLHAAAyxzAAMsdQADLHgAAyx5AAMsegADLHsAAyx8AAMsfgADLIAAAyyBAAMsggADLIQAAyyFAAMslgADLJsAAyyeAAMsoAADLLEAAyy2AAMsuQADLLsAAyzJAAMtRAADLUYAAy1IAAMtSgADLU0AAy1OAAMtTwADLVAAAy1RAAMtUwADLVUAAy1WAAMtVwADLVkAAy1aAAMt1QADLdcAAy3aAAMt3AADLd8AAy3gAAMt4QADLeIAAy3jAAMt5QADLecAAy3oAAMt6QADLesAAy3sAAMt/QADLf4AAy4AAAMuewADLn0AAy5/AAMugQADLoQAAy6FAAMuhgADLocAAy6IAAMuigADLowAAy6NAAMujgADLpAAAy6RAAMvDAADLw4AAy8RAAMvEwADLxYAAy8XAAMvGAADLxkAAy8aAAMvHAADLx4AAy8fAAMvIAADLyIAAy8jAAMvPAADLz0AAy8+AAMvQAADL7sAAy+9AAMvvwADL8EAAy/EAAMvxQADL8YAAy/HAAMvyAADL8oAAy/MAAMvzQADL84AAy/QAAMv0QADMEwAAzBOAAMwUQADMFMAAzBWAAMwVwADMFgAAzBZAAMwWgADMFwAAzBeAAMwXwADMGAAAzBiAAMwYwADMHwAAzCVAAMwogADMKUAAzCoAAMwqwADMLgAAzC7AAMwvgADMMEAAzDDAAMw0QADMNsAAzFuAAMxkQADMbEAAzHRAAMx0wADMdUAAzHXAAMx2QADMdwAAzHdAAMx3gADMeEAAzHiAAMx5AADMeUAAzHoAAMx6wADMewAAzHtAAMx8AADMfEAAzH2AAMyDwADMhgAAzIaAAMyHQADMiYAAzIpAAMyLAADMi4AAzJ3AAMymwADMsIAAzLmAAMy6QADMusAAzLtAAMy7wADMvEAAzLzAAMy9AADMvcAAzMQAAMzMQADMzMAAzM1AAMzNwADMzkAAzM7AAMzPQADMz8AAzNBAAMzYgADM2UAAzNoAAMzawADM24AAzNxAAMzdAADM3cAAzN6AAMzfAADM/cAAzP5AAMz+wADM/0AAzQAAAM0AQADNAIAAzQDAAM0BAADNAYAAzQIAAM0CQADNAoAAzQMAAM0DQADNIgAAzSKAAM0jAADNI4AAzSRAAM0kgADNJMAAzSUAAM0lQADNJcAAzSZAAM0mgADNJsAAzSdAAM0ngADNRkAAzUbAAM1HgADNSAAAzUjAAM1JAADNSUAAzUmAAM1JwADNSkAAzUrAAM1LAADNS0AAzUvAAM1MAADNUkAAzVKAAM1SwADNU0AAzXIAAM1ygADNcwAAzXOAAM10QADNdIAAzXTAAM11AADNdUAAzXXAAM12QADNdoAAzXbAAM13QADNd4AAzZZAAM2WwADNl0AAzZfAAM2YgADNmMAAzZkAAM2ZQADNmYAAzZoAAM2agADNmsAAzZsAAM2bgADNm8AAzbqAAM27AADNu4AAzbwAAM28wADNvQAAzb1AAM29gADNvcAAzb5AAM2+wADNvwAAzb9AAM2/wADNwAAAzd7AAM3fQADN38AAzeBAAM3hAADN4UAAzeGAAM3hwADN4gAAzeKAAM3jAADN40AAzeOAAM3kAADN5EAAzgMAAM4DgADOBAAAzgSAAM4FQADOBYAAzgXAAM4GAADOBkAAzgbAAM4HQADOB4AAzgfAAM4IQADOCIAAzhrAAM4jwADOLYAAzjaAAM43QADOOAAAzjiAAM45AADOOYAAzjoAAM46QADOOwAAzkFAAM5IgADOSUAAzkoAAM5KwADOS4AAzkxAAM5NAADOTcAAzlUAAM5VwADOVoAAzldAAM5YAADOWMAAzlmAAM5aQADOWsAAznmAAM56AADOesAAzntAAM58AADOfEAAznyAAM58wADOfQAAzn2AAM5+QADOfoAAzn7AAM5/QADOf4AAzp5AAM6ewADOn4AAzqAAAM6gwADOoQAAzqFAAM6hgADOocAAzqJAAM6jAADOo0AAzqOAAM6kAADOpEAAzsMAAM7DgADOxEAAzsTAAM7FgADOxcAAzsYAAM7GQADOxoAAzscAAM7HwADOyAAAzshAAM7IwADOyQAAzufAAM7oQADO6QAAzumAAM7qQADO6oAAzurAAM7rAADO60AAzuvAAM7sgADO7MAAzu0AAM7tgADO7cAAzwyAAM8NAADPDYAAzw4AAM8OwADPDwAAzw9AAM8PgADPD8AAzxBAAM8RAADPEUAAzxGAAM8SAADPEkAAzzEAAM8xgADPMgAAzzKAAM8zQADPM4AAzzPAAM80AADPNEAAzzTAAM81gADPNcAAzzYAAM82gADPNsAAz1WAAM9WAADPVsAAz1dAAM9YAADPWEAAz1iAAM9YwADPWQAAz1mAAM9aQADPWoAAz1rAAM9bQADPW4AAz4BAAM+JAADPkQAAz5kAAM+ZgADPmgAAz5qAAM+bAADPm8AAz5wAAM+cQADPnQAAz51AAM+dwADPngAAz56AAM+fQADPn4AAz5/AAM+ggADPoMAAz6IAAM+oQADPqoAAz6sAAM+rgADPrcAAz66AAM+vQADPr8AAz8IAAM/LAADP1MAAz93AAM/egADP3wAAz9+AAM/gAADP4IAAz+EAAM/hQADP4gAAz+hAAM/wgADP8QAAz/GAAM/yAADP8oAAz/MAAM/zgADP9AAAz/SAAM/8wADP/YAAz/5AAM//AADP/8AA0ACAANABQADQAgAA0ALAANADQADQIgAA0CKAANAjAADQI4AA0CRAANAkgADQJMAA0CUAANAlQADQJcAA0CZAANAmgADQJsAA0CdAANAngADQRkAA0EbAANBHQADQR8AA0EiAANBIwADQSQAA0ElAANBJgADQSgAA0EqAANBKwADQSwAA0EuAANBLwADQaoAA0GsAANBrwADQbEAA0G0AANBtQADQbYAA0G3AANBuAADQboAA0G8AANBvQADQb4AA0HAAANBwQADQdoAA0HbAANB3AADQd4AA0JZAANCWwADQl0AA0JfAANCYgADQmMAA0JkAANCZQADQmYAA0JoAANCagADQmsAA0JsAANCbgADQm8AA0LqAANC7AADQu4AA0LwAANC8wADQvQAA0L1AANC9gADQvcAA0L5AANC+wADQvwAA0L9AANC/wADQwAAA0N7AANDfQADQ38AA0OBAANDhAADQ4UAA0OGAANDhwADQ4gAA0OKAANDjAADQ40AA0OOAANDkAADQ5EAA0QMAANEDgADRBAAA0QSAANEFQADRBYAA0QXAANEGAADRBkAA0QbAANEHQADRB4AA0QfAANEIQADRCIAA0SdAANEnwADRKEAA0SjAANEpgADRKcAA0SoAANEqQADRKoAA0SsAANErgADRK8AA0SwAANEsgADRLMAA0T8AANFIAADRUcAA0VrAANFbgADRXAAA0VyAANFdAADRXYAA0V4AANFeQADRXwAA0WVAANFsgADRbQAA0W2AANFuAADRboAA0W8AANFvgADRcAAA0XdAANF4AADReMAA0XmAANF6QADRewAA0XvAANF8gADRfQAA0ZvAANGcQADRnMAA0Z1AANGeAADRnkAA0Z6AANGewADRnwAA0Z+AANGgAADRoEAA0aCAANGhAADRoUAA0cAAANHAgADRwQAA0cGAANHCQADRwoAA0cLAANHDAADRw0AA0cPAANHEQADRxIAA0cTAANHFQADRxYAA0eRAANHkwADR5UAA0eXAANHmgADR5sAA0ecAANHnQADR54AA0egAANHogADR6MAA0ekAANHpgADR6cAA0giAANIJAADSCcAA0gpAANILAADSC0AA0guAANILwADSDAAA0gyAANINAADSDUAA0g2AANIOAADSDkAA0g8AANItwADSLkAA0i7AANIvQADSMAAA0jBAANIwgADSMMAA0jEAANIxgADSMgAA0jJAANIygADSMwAA0jNAANJSAADSUoAA0lMAANJTgADSVEAA0lSAANJUwADSVQAA0lVAANJVwADSVkAA0laAANJWwADSV0AA0leAANJ2QADSdsAA0ndAANJ3wADSeIAA0njAANJ5AADSeUAA0nmAANJ6AADSeoAA0nrAANJ7AADSe4AA0nvAANKggADSqUAA0rFAANK5QADSucAA0rpAANK6wADSu0AA0rwAANK8QADSvIAA0r1AANK9gADSvgAA0r5AANK+wADSv4AA0r/AANLAAADSwMAA0sEAANLCQADSyIAA0srAANLLQADSy8AA0s4AANLOwADSz4AA0tAAANLiQADS60AA0vUAANL+AADS/sAA0v9AANL/wADTAEAA0wDAANMBQADTAYAA0wJAANMIgADTEMAA0xFAANMRwADTEkAA0xLAANMTQADTE8AA0xRAANMUwADTHQAA0x3AANMegADTH0AA0yAAANMgwADTIYAA0yJAANMjAADTI4AA00JAANNCwADTQ0AA00PAANNEgADTRMAA00UAANNFQADTRYAA00YAANNGgADTRsAA00cAANNHgADTR8AA02aAANNnAADTZ4AA02gAANNowADTaQAA02lAANNpgADTacAA02pAANNqwADTawAA02tAANNrwADTbAAA04rAANOLQADTjAAA04yAANONQADTjYAA043AANOOAADTjkAA047AANOPQADTj4AA04/AANOQQADTkIAA05bAANOXAADTl0AA05fAANO2gADTtwAA07eAANO4AADTuMAA07kAANO5QADTuYAA07nAANO6QADTusAA07sAANO7QADTu8AA07wAANPawADT20AA09vAANPcQADT3QAA091AANPdgADT3cAA094AANPegADT3wAA099AANPfgADT4AAA0+BAANP/AADT/4AA1AAAANQAgADUAUAA1AGAANQBwADUAgAA1AJAANQCwADUA0AA1AOAANQDwADUBEAA1ASAANQjQADUI8AA1CRAANQkwADUJYAA1CXAANQmAADUJkAA1CaAANQnAADUJ4AA1CfAANQoAADUKIAA1CjAANRHgADUSAAA1EiAANRJAADUScAA1EoAANRKQADUSoAA1ErAANRLQADUS8AA1EwAANRMQADUTMAA1E0AANRfQADUaEAA1HIAANR7AADUe8AA1HxAANR8wADUfUAA1H3AANR+QADUfoAA1H9AANSFgADUjMAA1I1AANSNwADUjkAA1I7AANSPQADUj8AA1JBAANSXgADUmEAA1JkAANSZwADUmoAA1JtAANScAADUnMAA1J1AANS8AADUvIAA1L0AANS9gADUvkAA1L6AANS+wADUvwAA1L9AANS/wADUwEAA1MCAANTAwADUwUAA1MGAANTgQADU4MAA1OFAANThwADU4oAA1OLAANTjAADU40AA1OOAANTkAADU5IAA1OTAANTlAADU5YAA1OXAANUEgADVBQAA1QWAANUGAADVBsAA1QcAANUHQADVB4AA1QfAANUIQADVCMAA1QkAANUJQADVCcAA1QoAANUowADVKUAA1SoAANUqgADVK0AA1SuAANUrwADVLAAA1SxAANUswADVLUAA1S2AANUtwADVLkAA1S6AANVNQADVTcAA1U5AANVOwADVT4AA1U/AANVQAADVUEAA1VCAANVRAADVUYAA1VHAANVSAADVUoAA1VLAANVxgADVcgAA1XKAANVzAADVc8AA1XQAANV0QADVdIAA1XTAANV1QADVdcAA1XYAANV2QADVdsAA1XcAANWVwADVlkAA1ZbAANWXQADVmAAA1ZhAANWYgADVmMAA1ZkAANWZgADVmgAA1ZpAANWagADVmwAA1ZtAANWfgADVn8AA1aBAANW/AADVv4AA1cAAANXAgADVwUAA1cGAANXBwADVwgAA1cJAANXCwADVw4AA1cPAANXEAADVxIAA1cTAANXjgADV5AAA1eSAANXlAADV5cAA1eYAANXmQADV5oAA1ebAANXnQADV6AAA1ehAANXogADV6QAA1elAANYIAADWCIAA1glAANYJwADWCoAA1grAANYLAADWC0AA1guAANYMAADWDMAA1g0AANYNQADWDcAA1g4AANYywADWO4AA1kOAANZLgADWTAAA1kyAANZNAADWTYAA1k5AANZOgADWTsAA1k+AANZPwADWUEAA1lCAANZRAADWUcAA1lIAANZSQADWUwAA1lNAANZUgADWWsAA1l0AANZdgADWXgAA1mBAANZhAADWYcAA1mJAANZ0gADWfYAA1odAANaQQADWkQAA1pGAANaSAADWkoAA1pMAANaTgADWk8AA1pSAANaawADWowAA1qOAANakAADWpIAA1qUAANalgADWpgAA1qaAANanAADWr0AA1rAAANawwADWsYAA1rJAANazAADWs8AA1rSAANa1QADWtcAA1tSAANbVAADW1YAA1tYAANbWwADW1wAA1tdAANbXgADW18AA1thAANbYwADW2QAA1tlAANbZwADW2gAA1vjAANb5QADW+cAA1vpAANb7AADW+0AA1vuAANb7wADW/AAA1vyAANb9AADW/UAA1v2AANb+AADW/kAA1x0AANcdgADXHkAA1x7AANcfgADXH8AA1yAAANcgQADXIIAA1yEAANchgADXIcAA1yIAANcigADXIsAA1ykAANcpQADXKYAA1yoAANdIwADXSUAA10nAANdKQADXSwAA10tAANdLgADXS8AA10wAANdMgADXTQAA101AANdNgADXTgAA105AANdtAADXbYAA124AANdugADXb0AA12+AANdvwADXcAAA13BAANdwwADXcUAA13GAANdxwADXckAA13KAANeRQADXkcAA15JAANeSwADXk4AA15PAANeUAADXlEAA15SAANeVAADXlYAA15XAANeWAADXloAA15bAANe1gADXtgAA17aAANe3AADXt8AA17gAANe4QADXuIAA17jAANe5QADXucAA17oAANe6QADXusAA17sAANfZwADX2kAA19rAANfbQADX3AAA19xAANfcgADX3MAA190AANfdgADX3gAA195AANfegADX3wAA199AANfxgADX+oAA2ARAANgNQADYDgAA2A6AANgPAADYD4AA2BAAANgQgADYEMAA2BGAANgXwADYHwAA2B+AANggAADYIIAA2CEAANghgADYIgAA2CKAANgpwADYKoAA2CtAANgsAADYLMAA2C2AANguQADYLwAA2C+AANhOQADYTsAA2E9AANhPwADYUIAA2FDAANhRAADYUUAA2FGAANhSAADYUoAA2FLAANhTAADYU4AA2FPAANhygADYcwAA2HOAANh0AADYdMAA2HUAANh1QADYdYAA2HXAANh2QADYdsAA2HcAANh3QADYd8AA2HgAANiWwADYl0AA2JfAANiYQADYmQAA2JlAANiZgADYmcAA2JoAANiagADYmwAA2JtAANibgADYnAAA2JxAANi7AADYu4AA2LwAANi8gADYvUAA2L2AANi9wADYvgAA2L5AANi+wADYv0AA2L+AANi/wADYwEAA2MCAANjfQADY38AA2OBAANjgwADY4YAA2OHAANjiAADY4kAA2OKAANjjAADY44AA2OPAANjkAADY5IAA2OTAANkDgADZBAAA2QSAANkFAADZBcAA2QYAANkGQADZBoAA2QbAANkHQADZB8AA2QgAANkIQADZCMAA2QkAANknwADZKEAA2SjAANkpQADZKgAA2SpAANkqgADZKsAA2SsAANkrgADZLAAA2SxAANksgADZLQAA2S1AANlSAADZWsAA2WLAANlqwADZa0AA2WvAANlsQADZbMAA2W2AANltwADZbgAA2W7AANlvAADZb4AA2W/AANlwQADZcQAA2XFAANlxgADZckAA2XKAANlzwADZegAA2XxAANl8wADZfUAA2X+AANmAQADZgQAA2YGAANmTwADZnMAA2aaAANmvgADZsEAA2bDAANmxQADZscAA2bJAANmywADZswAA2bPAANm6AADZwkAA2cLAANnDQADZw8AA2cRAANnEwADZxUAA2cXAANnGQADZzoAA2c9AANnQAADZ0MAA2dGAANnSQADZ0wAA2dPAANnUgADZ1QAA2fPAANn0QADZ9MAA2fVAANn2AADZ9kAA2faAANn2wADZ9wAA2feAANn4AADZ+EAA2fiAANn5AADZ+UAA2hgAANoYgADaGQAA2hmAANoaQADaGoAA2hrAANobAADaG0AA2hvAANocQADaHIAA2hzAANodQADaHYAA2jxAANo8wADaPYAA2j4AANo+wADaPwAA2j9AANo/gADaP8AA2kBAANpAwADaQQAA2kFAANpBwADaQgAA2khAANpIgADaSMAA2klAANpoAADaaIAA2mkAANppgADaakAA2mqAANpqwADaawAA2mtAANprwADabEAA2myAANpswADabUAA2m2AANqMQADajMAA2o1AANqNwADajoAA2o7AANqPAADaj0AA2o+AANqQAADakIAA2pDAANqRAADakYAA2pHAANqwgADasQAA2rGAANqyAADassAA2rMAANqzQADas4AA2rPAANq0QADatMAA2rUAANq1QADatcAA2rYAANrUwADa1UAA2tXAANrWQADa1wAA2tdAANrXgADa18AA2tgAANrYgADa2QAA2tlAANrZgADa2gAA2tpAANr5AADa+YAA2voAANr6gADa+0AA2vuAANr7wADa/AAA2vxAANr8wADa/UAA2v2AANr9wADa/kAA2v6AANsQwADbGcAA2yOAANssgADbLUAA2y3AANsuQADbLsAA2y9AANsvwADbMAAA2zDAANs3AADbPkAA2z7AANs/QADbP8AA20BAANtAwADbQUAA20HAANtJAADbScAA20qAANtLQADbTAAA20zAANtNgADbTkAA207AANttgADbbgAA226AANtvAADbb8AA23AAANtwQADbcIAA23DAANtxQADbccAA23IAANtyQADbcsAA23MAANuRwADbkkAA25LAANuTQADblAAA25RAANuUgADblMAA25UAANuVgADblgAA25ZAANuWgADblwAA25dAANu2AADbtoAA27cAANu3gADbuEAA27iAANu4wADbuQAA27lAANu5wADbukAA27qAANu6wADbu0AA27uAANvaQADb2sAA29tAANvbwADb3IAA29zAANvdAADb3UAA292AANveAADb3oAA297AANvfAADb34AA29/AANv+gADb/wAA2/+AANwAAADcAMAA3AEAANwBQADcAYAA3AHAANwCQADcAsAA3AMAANwDQADcA8AA3AQAANwiwADcI0AA3CPAANwkQADcJQAA3CVAANwlgADcJcAA3CYAANwmgADcJwAA3CdAANwngADcKAAA3ChAANxHAADcR4AA3EgAANxIgADcSUAA3EmAANxJwADcSgAA3EpAANxKwADcS0AA3EuAANxLwADcTEAA3EyAANxxQADcegAA3IIAANyKAADcioAA3IsAANyLgADcjAAA3IzAANyNAADcjUAA3I4AANyOQADcjsAA3I8AANyPgADckEAA3JCAANyQwADckYAA3JHAANyTAADcmUAA3JuAANycAADcnIAA3J7AANyfgADcoEAA3KDAANyzAADcvAAA3MXAANzOwADcz4AA3NAAANzQgADc0QAA3NGAANzSAADc0kAA3NMAANzZQADc4YAA3OIAANzigADc4wAA3OOAANzkAADc5IAA3OUAANzlgADc7cAA3O6AANzvQADc8AAA3PDAANzxgADc8kAA3PMAANzzwADc9EAA3RMAAN0TgADdFAAA3RSAAN0VQADdFYAA3RXAAN0WAADdFkAA3RbAAN0XQADdF4AA3RfAAN0YQADdGIAA3TdAAN03wADdOEAA3TjAAN05gADdOcAA3ToAAN06QADdOoAA3TsAAN07gADdO8AA3TwAAN08gADdPMAA3VuAAN1cAADdXMAA3V1AAN1eAADdXkAA3V6AAN1ewADdXwAA3V+AAN1gAADdYEAA3WCAAN1hAADdYUAA3WeAAN1nwADdaAAA3WiAAN2HQADdh8AA3YhAAN2IwADdiYAA3YnAAN2KAADdikAA3YqAAN2LAADdi4AA3YvAAN2MAADdjIAA3YzAAN2rgADdrAAA3ayAAN2tAADdrcAA3a4AAN2uQADdroAA3a7AAN2vQADdr8AA3bAAAN2wQADdsMAA3bEAAN3PwADd0EAA3dDAAN3RQADd0gAA3dJAAN3SgADd0sAA3dMAAN3TgADd1AAA3dRAAN3UgADd1QAA3dVAAN30AADd9IAA3fUAAN31gADd9kAA3faAAN32wADd9wAA3fdAAN33wADd+EAA3fiAAN34wADd+UAA3fmAAN4YQADeGMAA3hlAAN4ZwADeGoAA3hrAAN4bAADeG0AA3huAAN4cAADeHIAA3hzAAN4dAADeHYAA3h3AAN4wAADeOQAA3kLAAN5LwADeTIAA3k0AAN5NgADeTgAA3k6AAN5PAADeT0AA3lAAAN5WQADeXYAA3l4AAN5egADeXwAA3l+AAN5gAADeYIAA3mEAAN5oQADeaQAA3mnAAN5qgADea0AA3mwAAN5swADebYAA3m4AAN6MwADejUAA3o3AAN6OQADejwAA3o9AAN6PgADej8AA3pAAAN6QgADekQAA3pFAAN6RgADekgAA3pJAAN6xAADesYAA3rIAAN6ygADes0AA3rOAAN6zwADetAAA3rRAAN60wADetUAA3rWAAN61wADetkAA3raAAN7VQADe1cAA3tZAAN7WwADe14AA3tfAAN7YAADe2EAA3tiAAN7ZAADe2YAA3tnAAN7aAADe2oAA3trAAN75gADe+gAA3vrAAN77QADe/AAA3vxAAN78gADe/MAA3v0AAN79gADe/gAA3v5AAN7+gADe/wAA3v9AAN8eAADfHoAA3x8AAN8fgADfIEAA3yCAAN8gwADfIQAA3yFAAN8hwADfIkAA3yKAAN8iwADfI0AA3yOAAN9CQADfQsAA30NAAN9DwADfRIAA30TAAN9FAADfRUAA30WAAN9GAADfRoAA30bAAN9HAADfR4AA30fAAN9mgADfZwAA32eAAN9oAADfaMAA32kAAN9pQADfaYAA32nAAN9qQADfasAA32sAAN9rQADfa8AA32wAAN+QwADfmYAA36GAAN+pgADfqgAA36qAAN+rAADfq4AA36xAAN+sgADfrMAA362AAN+twADfrkAA366AAN+vAADfr8AA37AAAN+wQADfsQAA37FAAN+ygADfuMAA37sAAN+7gADfvAAA375AAN+/AADfv8AA38BAAN/SgADf24AA3+VAAN/uQADf7wAA3++AAN/wAADf8IAA3/EAAN/xgADf8cAA3/KAAN/4wADgAQAA4AGAAOACAADgAoAA4AMAAOADgADgBAAA4ASAAOAFAADgDUAA4A4AAOAOwADgD4AA4BBAAOARAADgEcAA4BKAAOATQADgE8AA4DKAAOAzAADgM4AA4DQAAOA0wADgNQAA4DVAAOA1gADgNcAA4DZAAOA2wADgNwAA4DdAAOA3wADgOAAA4FbAAOBXQADgV8AA4FhAAOBZAADgWUAA4FmAAOBZwADgWgAA4FqAAOBbAADgW0AA4FuAAOBcAADgXEAA4HsAAOB7gADgfEAA4HzAAOB9gADgfcAA4H4AAOB+QADgfoAA4H8AAOB/gADgf8AA4IAAAOCAgADggMAA4IcAAOCHQADgh4AA4IgAAOCmwADgp0AA4KfAAOCoQADgqQAA4KlAAOCpgADgqcAA4KoAAOCqgADgqwAA4KtAAOCrgADgrAAA4KxAAODLAADgy4AA4MwAAODMgADgzUAA4M2AAODNwADgzgAA4M5AAODOwADgz0AA4M+AAODPwADg0EAA4NCAAODvQADg78AA4PBAAODwwADg8YAA4PHAAODyAADg8kAA4PKAAODzAADg84AA4PPAAOD0AADg9IAA4PTAAOETgADhFAAA4RSAAOEVAADhFcAA4RYAAOEWQADhFoAA4RbAAOEXQADhF8AA4RgAAOEYQADhGMAA4RkAAOE3wADhOEAA4TjAAOE5QADhOgAA4TpAAOE6gADhOsAA4TsAAOE7gADhPAAA4TxAAOE8gADhPQAA4T1AAOFPgADhWIAA4WJAAOFrQADhbAAA4WyAAOFtAADhbYAA4W4AAOFugADhbsAA4W+AAOF1wADhfQAA4X2AAOF+AADhfoAA4X8AAOF/gADhgAAA4YCAAOGHwADhiIAA4YlAAOGKAADhisAA4YuAAOGMQADhjQAA4Y2AAOGsQADhrMAA4a1AAOGtwADhroAA4a7AAOGvAADhr0AA4a+AAOGwAADhsIAA4bDAAOGxAADhsYAA4bHAAOHQgADh0QAA4dGAAOHSAADh0sAA4dMAAOHTQADh04AA4dPAAOHUQADh1MAA4dUAAOHVQADh1cAA4dYAAOH0wADh9UAA4fXAAOH2QADh9wAA4fdAAOH3gADh98AA4fgAAOH4gADh+QAA4flAAOH5gADh+gAA4fpAAOIZAADiGYAA4hoAAOIagADiG0AA4huAAOIbwADiHAAA4hxAAOIcwADiHUAA4h2AAOIdwADiHkAA4h6AAOI9QADiPcAA4j5AAOI+wADiP4AA4j/AAOJAAADiQEAA4kCAAOJBAADiQYAA4kHAAOJCAADiQoAA4kLAAOJhgADiYgAA4mKAAOJjAADiY8AA4mQAAOJkQADiZIAA4mTAAOJlQADiZcAA4mYAAOJmQADiZsAA4mcAAOKFwADihkAA4obAAOKHQADiiAAA4ohAAOKIgADiiMAA4okAAOKJgADiigAA4opAAOKKgADiiwAA4otAAOKPgADij8AA4pBAAOKvAADir4AA4rAAAOKwgADisUAA4rGAAOKxwADisgAA4rJAAOKywADis4AA4rPAAOK0AADitIAA4rTAAOLTgADi1AAA4tSAAOLVAADi1cAA4tYAAOLWQADi1oAA4tbAAOLXQADi2AAA4thAAOLYgADi2QAA4tlAAOL4AADi+IAA4vlAAOL5wADi+oAA4vrAAOL7AADi+0AA4vuAAOL8AADi/MAA4v0AAOL9QADi/cAA4v4AAOMiwADjK4AA4zOAAOM7gADjPAAA4zyAAOM9AADjPYAA4z5AAOM+gADjPsAA4z+AAOM/wADjQEAA40CAAONBAADjQcAA40IAAONCQADjQwAA40NAAONEgADjSsAA400AAONNgADjTgAA41BAAONRAADjUcAA41JAAONkgADjbYAA43dAAOOAQADjgQAA44GAAOOCAADjgoAA44MAAOODgADjg8AA44SAAOOKwADjkwAA45OAAOOUAADjlIAA45UAAOOVgADjlgAA45aAAOOXAADjn0AA46AAAOOgwADjoYAA46JAAOOjAADjo8AA46SAAOOlQADjpcAA48SAAOPFAADjxYAA48YAAOPGwADjxwAA48dAAOPHgADjx8AA48hAAOPIwADjyQAA48lAAOPJwADjygAA4+jAAOPpQADj6cAA4+pAAOPrAADj60AA4+uAAOPrwADj7AAA4+yAAOPtAADj7UAA4+2AAOPuAADj7kAA5A0AAOQNgADkDkAA5A7AAOQPgADkD8AA5BAAAOQQQADkEIAA5BEAAOQRgADkEcAA5BIAAOQSgADkEsAA5BkAAOQZQADkGYAA5BoAAOQ4wADkOUAA5DnAAOQ6QADkOwAA5DtAAOQ7gADkO8AA5DwAAOQ8gADkPQAA5D1AAOQ9gADkPgAA5D5AAORdAADkXYAA5F4AAORegADkX0AA5F+AAORfwADkYAAA5GBAAORgwADkYUAA5GGAAORhwADkYkAA5GKAAOSBQADkgcAA5IJAAOSCwADkg4AA5IPAAOSEAADkhEAA5ISAAOSFAADkhYAA5IXAAOSGAADkhoAA5IbAAOSlgADkpgAA5KaAAOSnAADkp8AA5KgAAOSoQADkqIAA5KjAAOSpQADkqcAA5KoAAOSqQADkqsAA5KsAAOTJwADkykAA5MrAAOTLQADkzAAA5MxAAOTMgADkzMAA5M0AAOTNgADkzgAA5M5AAOTOgADkzwAA5M9AAOThgADk6oAA5PRAAOT9QADk/gAA5P6AAOT/AADk/4AA5QAAAOUAgADlAMAA5QGAAOUHwADlDwAA5Q+AAOUQAADlEIAA5REAAOURgADlEgAA5RKAAOUZwADlGoAA5RtAAOUcAADlHMAA5R2AAOUeQADlHwAA5R+AAOU+QADlPsAA5T9AAOU/wADlQIAA5UDAAOVBAADlQUAA5UGAAOVCAADlQoAA5ULAAOVDAADlQ4AA5UPAAOVigADlYwAA5WOAAOVkAADlZMAA5WUAAOVlQADlZYAA5WXAAOVmQADlZsAA5WcAAOVnQADlZ8AA5WgAAOWGwADlh0AA5YfAAOWIQADliQAA5YlAAOWJgADlicAA5YoAAOWKgADliwAA5YtAAOWLgADljAAA5YxAAOWrAADlq4AA5axAAOWswADlrYAA5a3AAOWuAADlrkAA5a6AAOWvAADlr4AA5a/AAOWwAADlsIAA5bDAAOXPgADl0AAA5dCAAOXRAADl0cAA5dIAAOXSQADl0oAA5dLAAOXTQADl08AA5dQAAOXUQADl1MAA5dUAAOXzwADl9EAA5fTAAOX1QADl9gAA5fZAAOX2gADl9sAA5fcAAOX3gADl+AAA5fhAAOX4gADl+QAA5flAAOYYAADmGIAA5hkAAOYZgADmGkAA5hqAAOYawADmGwAA5htAAOYbwADmHEAA5hyAAOYcwADmHUAA5h2AAOZCQADmSwAA5lMAAOZbAADmW4AA5lwAAOZcgADmXQAA5l3AAOZeAADmXkAA5l8AAOZfQADmX8AA5mAAAOZggADmYUAA5mGAAOZhwADmYoAA5mLAAOZkAADmakAA5myAAOZtAADmbYAA5m/AAOZwgADmcUAA5nHAAOaEAADmjQAA5pbAAOafwADmoIAA5qEAAOahgADmogAA5qKAAOajAADmo0AA5qQAAOaqQADmsoAA5rMAAOazgADmtAAA5rSAAOa1AADmtYAA5rYAAOa2gADmvsAA5r+AAObAQADmwQAA5sHAAObCgADmw0AA5sQAAObEwADmxUAA5uQAAObkgADm5QAA5uWAAObmQADm5oAA5ubAAObnAADm50AA5ufAAOboQADm6IAA5ujAAObpQADm6YAA5whAAOcIwADnCUAA5wnAAOcKgADnCsAA5wsAAOcLQADnC4AA5wwAAOcMgADnDMAA5w0AAOcNgADnDcAA5yyAAOctAADnLcAA5y5AAOcvAADnL0AA5y+AAOcvwADnMAAA5zCAAOcxAADnMUAA5zGAAOcyAADnMkAA5ziAAOc4wADnOQAA5zmAAOdYQADnWMAA51lAAOdZwADnWoAA51rAAOdbAADnW0AA51uAAOdcAADnXIAA51zAAOddAADnXYAA513AAOd8gADnfQAA532AAOd+AADnfsAA538AAOd/QADnf4AA53/AAOeAQADngMAA54EAAOeBQADngcAA54IAAOegwADnoUAA56HAAOeiQADnowAA56NAAOejgADno8AA56QAAOekgADnpQAA56VAAOelgADnpgAA56ZAAOfFAADnxYAA58YAAOfGgADnx0AA58eAAOfHwADnyAAA58hAAOfIwADnyUAA58mAAOfJwADnykAA58qAAOfpQADn6cAA5+pAAOfqwADn64AA5+vAAOfsAADn7EAA5+yAAOftAADn7YAA5+3AAOfuAADn7oAA5+7AAOgBAADoCgAA6BPAAOgcwADoHYAA6B4AAOgegADoHwAA6B+AAOggAADoIEAA6CEAAOgnQADoLoAA6C8AAOgvgADoMAAA6DCAAOgxAADoMYAA6DIAAOg5QADoOgAA6DrAAOg7gADoPEAA6D0AAOg9wADoPoAA6D8AAOhdwADoXkAA6F7AAOhfQADoYAAA6GBAAOhggADoYMAA6GEAAOhhgADoYgAA6GJAAOhigADoYwAA6GNAAOiCAADogoAA6IMAAOiDgADohEAA6ISAAOiEwADohQAA6IVAAOiFwADohkAA6IaAAOiGwADoh0AA6IeAAOimQADopsAA6KdAAOinwADoqIAA6KjAAOipAADoqUAA6KmAAOiqAADoqoAA6KrAAOirAADoq4AA6KvAAOjKgADoywAA6MvAAOjMQADozQAA6M1AAOjNgADozcAA6M4AAOjOgADozwAA6M9AAOjPgADo0AAA6NBAAOjvAADo74AA6PAAAOjwgADo8UAA6PGAAOjxwADo8gAA6PJAAOjywADo80AA6POAAOjzwADo9EAA6PSAAOkTQADpE8AA6RRAAOkUwADpFYAA6RXAAOkWAADpFkAA6RaAAOkXAADpF4AA6RfAAOkYAADpGIAA6RjAAOk3gADpOAAA6TiAAOk5AADpOcAA6ToAAOk6QADpOoAA6TrAAOk7QADpO8AA6TwAAOk8QADpPMAA6T0AAOlhwADpaoAA6XKAAOl6gADpewAA6XuAAOl8AADpfIAA6X1AAOl9gADpfcAA6X6AAOl+wADpf0AA6X+AAOmAAADpgMAA6YEAAOmBQADpggAA6YJAAOmDgADpicAA6YwAAOmMgADpjQAA6Y9AAOmQAADpkMAA6ZFAAOmjgADprIAA6bZAAOm/QADpwAAA6cCAAOnBAADpwYAA6cIAAOnCgADpwsAA6cOAAOnJwADp0gAA6dKAAOnTAADp04AA6dQAAOnUgADp1QAA6dWAAOnWAADp3kAA6d8AAOnfwADp4IAA6eFAAOniAADp4sAA6eOAAOnkQADp5MAA6gOAAOoEAADqBIAA6gUAAOoFwADqBgAA6gZAAOoGgADqBsAA6gdAAOoHwADqCAAA6ghAAOoIwADqCQAA6ifAAOooQADqKMAA6ilAAOoqAADqKkAA6iqAAOoqwADqKwAA6iuAAOosAADqLEAA6iyAAOotAADqLUAA6kwAAOpMgADqTUAA6k3AAOpOgADqTsAA6k8AAOpPQADqT4AA6lAAAOpQgADqUMAA6lEAAOpRgADqUcAA6lgAAOpYQADqWIAA6lkAAOp3wADqeEAA6njAAOp5QADqegAA6npAAOp6gADqesAA6nsAAOp7gADqfAAA6nxAAOp8gADqfQAA6n1AAOqcAADqnIAA6p0AAOqdgADqnkAA6p6AAOqewADqnwAA6p9AAOqfwADqoEAA6qCAAOqgwADqoUAA6qGAAOrAQADqwMAA6sFAAOrBwADqwoAA6sLAAOrDAADqw0AA6sOAAOrEAADqxIAA6sTAAOrFAADqxYAA6sXAAOrkgADq5QAA6uWAAOrmAADq5sAA6ucAAOrnQADq54AA6ufAAOroQADq6MAA6ukAAOrpQADq6cAA6uoAAOsIwADrCUAA6wnAAOsKQADrCwAA6wtAAOsLgADrC8AA6wwAAOsMgADrDQAA6w1AAOsNgADrDgAA6w5AAOsggADrKYAA6zNAAOs8QADrPQAA6z2AAOs+AADrPoAA6z8AAOs/gADrP8AA60CAAOtGwADrTgAA606AAOtPAADrT4AA61AAAOtQgADrUQAA61GAAOtYwADrWYAA61pAAOtbAADrW8AA61yAAOtdQADrXgAA616AAOt9QADrfcAA635AAOt+wADrf4AA63/AAOuAAADrgEAA64CAAOuBAADrgYAA64HAAOuCAADrgoAA64LAAOuhgADrogAA66KAAOujAADro8AA66QAAOukQADrpIAA66TAAOulQADrpcAA66YAAOumQADrpsAA66cAAOvFwADrxkAA68bAAOvHQADryAAA68hAAOvIgADryMAA68kAAOvJgADrygAA68pAAOvKgADrywAA68tAAOvqAADr6oAA6+tAAOvrwADr7IAA6+zAAOvtAADr7UAA6+2AAOvuAADr7oAA6+7AAOvvAADr74AA6+/AAOwOgADsDwAA7A+AAOwQAADsEMAA7BEAAOwRQADsEYAA7BHAAOwSQADsEsAA7BMAAOwTQADsE8AA7BQAAOwywADsM0AA7DPAAOw0QADsNQAA7DVAAOw1gADsNcAA7DYAAOw2gADsNwAA7DdAAOw3gADsOAAA7DhAAOxXAADsV4AA7FgAAOxYgADsWUAA7FmAAOxZwADsWgAA7FpAAOxawADsW0AA7FuAAOxbwADsXEAA7FyAAOyBQADsigAA7JIAAOyaAADsmoAA7JsAAOybgADsnAAA7JzAAOydAADsnUAA7J4AAOyeQADsnsAA7J8AAOyfgADsoEAA7KCAAOygwADsoYAA7KHAAOyjAADsqUAA7KuAAOysAADsrIAA7K7AAOyvgADssEAA7LDAAOzDAADszAAA7NXAAOzewADs34AA7OAAAOzggADs4QAA7OGAAOziAADs4kAA7OMAAOzpQADs8YAA7PIAAOzygADs8wAA7POAAOz0AADs9IAA7PUAAOz1gADs/cAA7P6AAOz/QADtAAAA7QDAAO0BgADtAkAA7QMAAO0DwADtBEAA7SMAAO0jgADtJAAA7SSAAO0lQADtJYAA7SXAAO0mAADtJkAA7SbAAO0nQADtJ4AA7SfAAO0oQADtKIAA7UdAAO1HwADtSEAA7UjAAO1JgADtScAA7UoAAO1KQADtSoAA7UsAAO1LgADtS8AA7UwAAO1MgADtTMAA7WuAAO1sAADtbMAA7W1AAO1uAADtbkAA7W6AAO1uwADtbwAA7W+AAO1wAADtcEAA7XCAAO1xAADtcUAA7XeAAO13wADteAAA7XiAAO2XQADtl8AA7ZhAAO2YwADtmYAA7ZnAAO2aAADtmkAA7ZqAAO2bAADtm4AA7ZvAAO2cAADtnIAA7ZzAAO27gADtvAAA7byAAO29AADtvcAA7b4AAO2+QADtvoAA7b7AAO2/QADtv8AA7cAAAO3AQADtwMAA7cEAAO3fwADt4EAA7eDAAO3hQADt4gAA7eJAAO3igADt4sAA7eMAAO3jgADt5AAA7eRAAO3kgADt5QAA7eVAAO4EAADuBIAA7gUAAO4FgADuBkAA7gaAAO4GwADuBwAA7gdAAO4HwADuCEAA7giAAO4IwADuCUAA7gmAAO4oQADuKMAA7ilAAO4pwADuKoAA7irAAO4rAADuK0AA7iuAAO4sAADuLIAA7izAAO4tAADuLYAA7i3AAO5AAADuSQAA7lLAAO5bwADuXIAA7l0AAO5dgADuXgAA7l6AAO5fAADuX0AA7mAAAO5mQADubYAA7m4AAO5ugADubwAA7m+AAO5wAADucIAA7nEAAO54QADueQAA7nnAAO56gADue0AA7nwAAO58wADufYAA7n4AAO6cwADunUAA7p4AAO6egADun0AA7p+AAO6fwADuoAAA7qBAAO6gwADuoUAA7qGAAO6hwADuokAA7qKAAO7BQADuwcAA7sJAAO7CwADuw4AA7sPAAO7EAADuxEAA7sSAAO7FAADuxYAA7sXAAO7GAADuxoAA7sbAAO7lgADu5gAA7uaAAO7nAADu58AA7ugAAO7oQADu6IAA7ujAAO7pQADu6cAA7uoAAO7qQADu6sAA7usAAO8JwADvCkAA7wsAAO8LgADvDEAA7wyAAO8MwADvDQAA7w1AAO8NwADvDkAA7w6AAO8OwADvD0AA7w+AAO8uQADvLsAA7y9AAO8vwADvMIAA7zDAAO8xAADvMUAA7zGAAO8yAADvMoAA7zLAAO8zAADvM4AA7zPAAO9SgADvUwAA71OAAO9UAADvVMAA71UAAO9VQADvVYAA71XAAO9WQADvVsAA71cAAO9XQADvV8AA71gAAO92wADvd0AA73fAAO94QADveQAA73lAAO95gADvecAA73oAAO96gADvewAA73tAAO97gADvfAAA73xAAO+hAADvqcAA77HAAO+5wADvukAA77rAAO+7QADvu8AA77yAAO+8wADvvQAA773AAO++AADvvoAA777AAO+/QADvwAAA78BAAO/AgADvwUAA78GAAO/CwADvyQAA78tAAO/LwADvzEAA786AAO/PQADv0AAA79CAAO/iwADv68AA7/WAAO/+gADv/0AA7//AAPAAQADwAMAA8AFAAPABwADwAgAA8ALAAPAJAADwEUAA8BHAAPASQADwEsAA8BNAAPATwADwFEAA8BTAAPAVQADwHYAA8B5AAPAfAADwH8AA8CCAAPAhQADwIgAA8CLAAPAjgADwJAAA8ELAAPBDQADwQ8AA8ERAAPBFAADwRUAA8EWAAPBFwADwRgAA8EaAAPBHAADwR0AA8EeAAPBIAADwSEAA8GcAAPBngADwaAAA8GiAAPBpQADwaYAA8GnAAPBqAADwakAA8GrAAPBrQADwa4AA8GvAAPBsQADwbIAA8ItAAPCLwADwjIAA8I0AAPCNwADwjgAA8I5AAPCOgADwjsAA8I9AAPCPwADwkAAA8JBAAPCQwADwkQAA8JdAAPCXgADwl8AA8JhAAPC3AADwt4AA8LgAAPC4gADwuUAA8LmAAPC5wADwugAA8LpAAPC6wADwu0AA8LuAAPC7wADwvEAA8LyAAPDbQADw28AA8NxAAPDcwADw3YAA8N3AAPDeAADw3kAA8N6AAPDfAADw34AA8N/AAPDgAADw4IAA8ODAAPD/gADxAAAA8QCAAPEBAADxAcAA8QIAAPECQADxAoAA8QLAAPEDQADxA8AA8QQAAPEEQADxBMAA8QUAAPEjwADxJEAA8STAAPElQADxJgAA8SZAAPEmgADxJsAA8ScAAPEngADxKAAA8ShAAPEogADxKQAA8SlAAPFIAADxSIAA8UkAAPFJgADxSkAA8UqAAPFKwADxSwAA8UtAAPFLwADxTEAA8UyAAPFMwADxTUAA8U2AAPFfwADxaMAA8XKAAPF7gADxfEAA8XzAAPF9QADxfcAA8X5AAPF+wADxfwAA8X/AAPGGAADxjUAA8Y3AAPGOQADxjsAA8Y9AAPGPwADxkEAA8ZDAAPGYAADxmMAA8ZmAAPGaQADxmwAA8ZvAAPGcgADxnUAA8Z3AAPG8gADxvQAA8b2AAPG+AADxvsAA8b8AAPG/QADxv4AA8b/AAPHAQADxwMAA8cEAAPHBQADxwcAA8cIAAPHgwADx4UAA8eHAAPHiQADx4wAA8eNAAPHjgADx48AA8eQAAPHkgADx5QAA8eVAAPHlgADx5gAA8eZAAPIFAADyBYAA8gYAAPIGgADyB0AA8geAAPIHwADyCAAA8ghAAPIIwADyCUAA8gmAAPIJwADyCkAA8gqAAPIpQADyKcAA8ipAAPIqwADyK4AA8ivAAPIsAADyLEAA8iyAAPItAADyLYAA8i3AAPIuAADyLoAA8i7AAPJNgADyTgAA8k6AAPJPAADyT8AA8lAAAPJQQADyUIAA8lDAAPJRQADyUcAA8lIAAPJSQADyUsAA8lMAAPJxwADyckAA8nMAAPJzgADydEAA8nSAAPJ0wADydQAA8nVAAPJ1wADydkAA8naAAPJ2wADyd0AA8neAAPJ/QADyngAA8p6AAPKfAADyn4AA8qBAAPKggADyoMAA8qEAAPKhQADyocAA8qJAAPKigADyosAA8qNAAPKjgADyyEAA8tEAAPLZAADy4QAA8uGAAPLiAADy4oAA8uMAAPLjwADy5AAA8uRAAPLlAADy5UAA8uXAAPLmAADy5oAA8udAAPLngADy58AA8uiAAPLowADy6gAA8vBAAPLygADy8wAA8vOAAPL1wADy9oAA8vdAAPL3wADzCgAA8xMAAPMcwADzJcAA8yaAAPMnAADzJ4AA8ygAAPMogADzKQAA8ylAAPMqAADzMEAA8ziAAPM5AADzOYAA8zoAAPM6gADzOwAA8zuAAPM8AADzPIAA80TAAPNFgADzRkAA80cAAPNHwADzSIAA80lAAPNKAADzSsAA80tAAPNqAADzaoAA82sAAPNrgADzbEAA82yAAPNswADzbQAA821AAPNtwADzbkAA826AAPNuwADzb0AA82+AAPOOQADzjsAA849AAPOPwADzkIAA85DAAPORAADzkUAA85GAAPOSAADzkoAA85LAAPOTAADzk4AA85PAAPOygADzswAA87PAAPO0QADztQAA87VAAPO1gADztcAA87YAAPO2gADztwAA87dAAPO3gADzuAAA87hAAPO+gADzvsAA878AAPO/gADz3kAA897AAPPfQADz38AA8+CAAPPgwADz4QAA8+FAAPPhgADz4gAA8+KAAPPiwADz4wAA8+OAAPPjwAD0AoAA9AMAAPQDgAD0BAAA9ATAAPQFAAD0BUAA9AWAAPQFwAD0BkAA9AbAAPQHAAD0B0AA9AfAAPQIAAD0JsAA9CdAAPQnwAD0KEAA9CkAAPQpQAD0KYAA9CnAAPQqAAD0KoAA9CsAAPQrQAD0K4AA9CwAAPQsQAD0SwAA9EuAAPRMAAD0TIAA9E1AAPRNgAD0TcAA9E4AAPROQAD0TsAA9E9AAPRPgAD0T8AA9FBAAPRQgAD0b0AA9G/AAPRwQAD0cMAA9HGAAPRxwAD0cgAA9HJAAPRygAD0cwAA9HOAAPRzwAD0dAAA9HSAAPR0wAD0hwAA9JAAAPSZwAD0osAA9KOAAPSkAAD0pIAA9KUAAPSlgAD0pgAA9KZAAPSnAAD0rUAA9LSAAPS1AAD0tYAA9LYAAPS2gAD0twAA9LeAAPS4AAD0v0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AA+SxAAPktAAD5LUAA+S2AAPkuQAD5LoAA+S/AAPk2AAD5OEAA+TjAAPk5QAD5O4AA+TxAAPk9AAD5PYAA+U/AAPlYwAD5YoAA+WuAAPlsQAD5bMAA+W1AAPltwAD5bkAA+W7AAPlvAAD5b8AA+XYAAPl+QAD5fsAA+X9AAPl/wAD5gEAA+YDAAPmBQAD5gcAA+YJAAPmKgAD5i0AA+YwAAPmMwAD5jYAA+Y5AAPmPAAD5j8AA+ZCAAPmRAAD5r8AA+bBAAPmwwAD5sUAA+bIAAPmyQAD5soAA+bLAAPmzAAD5s4AA+bQAAPm0QAD5tIAA+bUAAPm1QAD51AAA+dSAAPnVAAD51YAA+dZAAPnWgAD51sAA+dcAAPnXQAD518AA+dhAAPnYgAD52MAA+dlAAPnZgAD5+EAA+fjAAPn5gAD5+gAA+frAAPn7AAD5+0AA+fuAAPn7wAD5/EAA+fzAAPn9AAD5/UAA+f3AAPn+AAD6BEAA+gSAAPoEwAD6BUAA+iQAAPokgAD6JQAA+iWAAPomQAD6JoAA+ibAAPonAAD6J0AA+ifAAPooQAD6KIAA+ijAAPopQAD6KYAA+khAAPpIwAD6SUAA+knAAPpKgAD6SsAA+ksAAPpLQAD6S4AA+kwAAPpMgAD6TMAA+k0AAPpNgAD6TcAA+myAAPptAAD6bYAA+m4AAPpuwAD6bwAA+m9AAPpvgAD6b8AA+nBAAPpwwAD6cQAA+nFAAPpxwAD6cgAA+pDAAPqRQAD6kcAA+pJAAPqTAAD6k0AA+pOAAPqTwAD6lAAA+pSAAPqVAAD6lUAA+pWAAPqWAAD6lkAA+rUAAPq1gAD6tgAA+raAAPq3QAD6t4AA+rfAAPq4AAD6uEAA+rjAAPq5QAD6uYAA+rnAAPq6QAD6uoAA+szAAPrVwAD634AA+uiAAPrpQAD66cAA+upAAPrqwAD660AA+uvAAPrsAAD67MAA+vMAAPr6QAD6+sAA+vtAAPr7wAD6/EAA+vzAAPr9QAD6/cAA+wUAAPsFwAD7BoAA+wdAAPsIAAD7CMAA+wmAAPsKQAD7CsAA+ymAAPsqAAD7KoAA+ysAAPsrwAD7LAAA+yxAAPssgAD7LMAA+y1AAPstwAD7LgAA+y5AAPsuwAD7LwAA+03AAPtOQAD7TsAA+09AAPtQAAD7UEAA+1CAAPtQwAD7UQ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AA/8dAAP/HwAD/yEAA/8jAAP/JQAD/0YAA/9JAAP/TAAD/08AA/9SAAP/VQAD/1gAA/9bAAP/XgAD/2AAA//bAAP/3QAD/98AA//hAAP/5AAD/+UAA//mAAP/5wAD/+gAA//qAAP/7AAD/+0AA//uAAP/8AAD//EABABsAAQAbgAEAHAABAByAAQAdQAEAHYABAB3AAQAeAAEAHkABAB7AAQAfQAEAH4ABAB/AAQAgQAEAIIABAD9AAQA/wAEAQIABAEEAAQBBwAEAQgABAEJAAQBCgAEAQsABAENAAQBDwAEARAABAERAAQBEwAEARQABAEtAAQBLgAEAS8ABAExAAQBrAAEAa4ABAGwAAQBsgAEAbUABAG2AAQBtwAEAbgABAG5AAQBuwAEAb0ABAG+AAQBvwAEAcEABAHCAAQCPQAEAj8ABAJBAAQCQwAEAkYABAJHAAQCSAAEAkkABAJKAAQCTAAEAk4ABAJPAAQCUAAEAlIABAJTAAQCzgAEAtAABALSAAQC1AAEAtcABALYAAQC2QAEAtoABALbAAQC3QAEAt8ABALgAAQC4QAEAuMABALkAAQDXwAEA2EABANjAAQDZQAEA2gABANpAAQDagAEA2sABANsAAQDbgAEA3AABANxAAQDcgAEA3QABAN1AAQD8AAEA/IABAP0AAQD9gAEA/kABAP6AAQD+wAEA/wABAP9AAQD/wAEBAEABAQCAAQEAwAEBAUABAQGAAQETwAEBHMABASaAAQEvgAEBMEABATDAAQExQAEBMcABATJAAQEywAEBMwABATPAAQE6AAEBQUABAUHAAQFCQAEBQsABAUNAAQFDwAEBREABAUTAAQFMAAEBTMABAU2AAQFOQAEBTwABAU/AAQFQgAEBUUABAVHAAQFwgAEBcQABAXGAAQFyAAEBcsABAXMAAQFzQAEBc4ABAXPAAQF0QAEBdMABAXUAAQF1QAEBdcABAXYAAQGUwAEBlUABAZXAAQGWQAEBlwABAZdAAQGXgAEBl8ABAZgAAQGYgAEBmQABAZlAAQGZgAEBmgABAZpAAQG5AAEBuYABAboAAQG6gAEBu0ABAbuAAQG7wAEBvAABAbxAAQG8wAEBvUABAb2AAQG9wAEBvkABAb6AAQHdQAEB3cABAd6AAQHfAAEB38ABAeAAAQHgQAEB4IABAeDAAQHhQAEB4cABAeIAAQHiQAEB4sABAeMAAQIBwAECAkABAgLAAQIDQAECBAABAgRAAQIEgAECBMABAgUAAQIFgAECBgABAgZAAQIGgAECBwABAgdAAQImAAECJoABAicAAQIngAECKEABAiiAAQIowAECKQABAilAAQIpwAECKkABAiqAAQIqwAECK0ABAiuAAQJKQAECSsABAktAAQJLwAECTIABAkzAAQJNAAECTUABAk2AAQJOAAECToABAk7AAQJPAAECT4ABAk/AAQJ0gAECfUABAoVAAQKNQAECjcABAo5AAQKOwAECj0ABApAAAQKQQAECkIABApFAAQKRgAECkgABApJAAQKSwAECk4ABApPAAQKUAAEClMABApUAAQKWQAECnIABAp7AAQKfQAECn8ABAqIAAQKiwAECo4ABAqQAAQK2QAECv0ABAskAAQLSAAEC0sABAtNAAQLTwAEC1EABAtTAAQLVQAEC1YABAtZAAQLcgAEC5MABAuVAAQLlwAEC5kABAubAAQLnQAEC58ABAuhAAQLowAEC8QABAvHAAQLygAEC80ABAvQAAQL0wAEC9YABAvZAAQL3AAEC94ABAxZAAQMWwAEDF0ABAxfAAQMYgAEDGMABAxkAAQMZQAEDGYABAxoAAQMagAEDGsABAxsAAQMbgAEDG8ABAzqAAQM7AAEDO4ABAzwAAQM8wAEDPQABAz1AAQM9gAEDPcABAz5AAQM+wAEDPwABAz9AAQM/wAEDQAABA17AAQNfQAEDYAABA2CAAQNhQAEDYYABA2HAAQNiAAEDYkABA2LAAQNjQAEDY4ABA2PAAQNkQAEDZIABA2rAAQNrAAEDa0ABA2vAAQOKgAEDiwABA4uAAQOMAAEDjMABA40AAQONQAEDjYABA43AAQOOQAEDjsABA48AAQOPQAEDj8ABA5AAAQOuwAEDr0ABA6/AAQOwQAEDsQABA7FAAQOxgAEDscABA7IAAQOygAEDswABA7NAAQOzgAEDtAABA7RAAQPTAAED04ABA9QAAQPUgAED1UABA9WAAQPVwAED1gABA9ZAAQPWwAED10ABA9eAAQPXwAED2EABA9iAAQP3QAED98ABA/hAAQP4wAED+YABA/nAAQP6AAED+kABA/qAAQP7AAED+4ABA/vAAQP8AAED/IABA/zAAQQbgAEEHAABBByAAQQdAAEEHc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ABDRDAAQ0RQAENEcABDRJAAQ0SwAENE0ABDRqAAQ0bQAENHAABDRzAAQ0dgAENHkABDR8AAQ0fwAENIEABDT8AAQ0/gAENQAABDUCAAQ1BQAENQYABDUHAAQ1CAAENQkABDULAAQ1DQAENQ4ABDUPAAQ1EQAENRIABDWNAAQ1jwAENZEABDWTAAQ1lgAENZcABDWYAAQ1mQAENZoABDWcAAQ1ngAENZ8ABDWgAAQ1ogAENaMABDYeAAQ2IAAENiIABDYkAAQ2JwAENigABDYpAAQ2KgAENisABDYtAAQ2LwAENjAABDYxAAQ2MwAENjQABDavAAQ2sQAENrMABDa1AAQ2uAAENrkABDa6AAQ2uwAENrwABDa+AAQ2wAAENsEABDbCAAQ2xAAENsUABDdAAAQ3QgAEN0QABDdGAAQ3SQAEN0oABDdLAAQ3TAAEN00ABDdPAAQ3UQAEN1IABDdTAAQ3VQAEN1YABDfRAAQ30wAEN9YABDfYAAQ32wAEN9wABDfdAAQ33gAEN98ABDfhAAQ34wAEN+QABDflAAQ35wAEN+gABDf3AAQ4cgAEOHQABDh2AAQ4eAAEOHsABDh8AAQ4fQAEOH4ABDh/AAQ4gQAEOIMABDiEAAQ4hQAEOIcABDiIAAQ5GwAEOT4ABDleAAQ5fgAEOYAABDmCAAQ5hAAEOYYABDmJAAQ5igAEOYsABDmOAAQ5jwAEOZEABDmSAAQ5lQAEOZgABDmZAAQ5mgAEOZ0ABDmeAAQ5owAEObwABDnFAAQ5xwAEOcoABDnTAAQ51gAEOdkABDnbAAQ6JAAEOkgABDpvAAQ6kwAEOpYABDqYAAQ6mgAEOpwABDqeAAQ6oAAEOqEABDqkAAQ6vQAEOt4ABDrgAAQ64gAEOuQABDrmAAQ66AAEOuoABDrsAAQ67gAEOw8ABDsSAAQ7FQAEOxgABDsbAAQ7HgAEOyEABDskAAQ7JwAEOykABDukAAQ7pgAEO6gABDuqAAQ7rQAEO64ABDuvAAQ7sAAEO7EABDuzAAQ7tQAEO7YABDu3AAQ7uQAEO7oABDw1AAQ8NwAEPDkABDw7AAQ8PgAEPD8ABDxAAAQ8QQAEPEIABDxEAAQ8RgAEPEcABDxIAAQ8SgAEPEsABDzGAAQ8yAAEPMsABDzNAAQ80AAEPNEABDzSAAQ80wAEPNQABDzWAAQ82AAEPNkABDzaAAQ83AAEPN0ABDz2AAQ89wAEPPgABDz6AAQ9dQAEPXcABD15AAQ9ewAEPX4ABD1/AAQ9gAAEPYEABD2CAAQ9hAAEPYYABD2HAAQ9iAAEPYoABD2LAAQ+BgAEPggABD4KAAQ+DAAEPg8ABD4QAAQ+EQAEPhIABD4TAAQ+FQAEPhcABD4YAAQ+GQAEPhsABD4cAAQ+lwAEPpkABD6bAAQ+nQAEPqAABD6hAAQ+ogAEPqMABD6kAAQ+pgAEPqgABD6pAAQ+qgAEPqwABD6tAAQ/KAAEPyoABD8sAAQ/LgAEPzEABD8yAAQ/MwAEPzQABD81AAQ/NwAEPzkABD86AAQ/OwAEPz0ABD8+AAQ/uQAEP7sABD+9AAQ/vwAEP8IABD/DAAQ/xAAEP8UABD/GAAQ/yAAEP8oABD/LAAQ/zAAEP84ABD/PAARAGAAEQDwABEBjAARAhwAEQIoABECNAARAjwAEQJEABECTAARAlQAEQJYABECZAARAsgAEQM8ABEDSAARA1QAEQNgABEDbAARA3gAEQOEABEDkAARBAQAEQQQABEEHAARBCgAEQQ0ABEEQAARBEwAEQRYABEEYAARBkwAEQZUABEGYAARBmgAEQZ0ABEGeAARBnwAEQaAABEGhAARBowAEQaYABEGnAARBqAAEQaoABEGrAARCJgAEQigABEIrAARCLQAEQjAABEIxAARCMgAEQjMABEI0AARCNgAEQjkABEI6AARCOwAEQj0ABEI+AARCuQAEQrsABEK+AARCwAAEQsMABELEAARCxQAEQsYABELHAARCyQAEQswABELNAARCzgAEQtAABELRAARDTAAEQ04ABENRAARDUwAEQ1YABENXAARDWAAEQ1kABENaAARDXAAEQ18ABENgAARDYQAEQ2MABENkAARD5wAERAsABEQvAAREUgAERHkABESZAAREwAAEROcABEUHAARFKwAERU8ABEVRAARFVAAERVYABEVYAARFWgAERV0ABEVgAARFYgAERWQABEVnAARFaQAERWsABEVuAARFcQAERXIABEV3AARFkAAERZUABEWXAARFnAAERZ8ABEWhAARF6gAERg4ABEY1AARGWQAERlwABEZeAARGYAAERmIABEZkAARGZgAERmcABEZqAARGgwAERqgABEaqAARGrAAERq4ABEawAARGsgAERrQABEa2AARGuAAERroABEbfAARG4gAERuUABEboAARG6wAERu4ABEbxAARG9AAERvcABEb6AARG/AAER3cABEd5AARHfAAER34ABEeBAARHggAER4MABEeEAARHhQAER4cABEeJAARHigAER4sABEeNAARHjgAER58ABEegAARHogAESB0ABEgfAARIIQAESCMABEgmAARIJwAESCgABEgpAARIKgAESCwABEguAARILwAESDAABEgyAARIMwAESK4ABEiwAARIswAESLUABEi4AARIuQAESLoABEi7AARIvAAESL4ABEjAAARIwQAESMIABEjEAARIxQAESNYABEjXAARI2QAESVQABElWAARJWAAESVoABEldAARJXgAESV8ABElgAARJYQAESWMABEllAARJZgAESWcABElpAARJagAESeUABEnnAARJ6gAESewABEnvAARJ8AAESfEABEnyAARJ8wAESfUABEn3AARJ+AAESfkABEn7AARJ/AAESg0ABEoOAARKEAAESosABEqNAARKjwAESpEABEqUAARKlQAESpYABEqXAARKmAAESpoABEqcAARKnQAESp4ABEqgAARKoQAESxwABEseAARLIQAESyMABEsmAARLJwAESygABEspAARLKgAESywABEsuAARLLwAESzAABEsyAARLMwAES0wABEtNAARLTgAES1AABEvLAARLzQAES88ABEvRAARL1AAES9UABEvWAARL1wAES9gABEvaAARL3AAES90ABEveAARL4AAES+EABExcAARMXgAETGEABExjAARMZgAETGcABExoAARMaQAETGoABExsAARMbgAETG8ABExwAARMcgAETHMABEyFAARMngAETOEABEzkAARM5wAETOoABEztAARM8AAETPMABEz2AARM+QAETPwABEz/AARNAgAETQUABE0IAARNCwAETQ4ABE0RAARNVAAETVcABE1aAARNXQAETWAABE1jAARNZgAETWkABE1sAARNbwAETXIABE11AARNeAAETXsABE1+AARNgQAETYQABE2GAARNuAAETdQABE3sAARN+gAETgIABE4VAAROIwAETj4ABE5WAAROYQAETnwABE6RAAROqgAETrYABE7PAARO3QAET3AABE+TAARPswAET9MABE/VAARP1wAET9kABE/bAARP3gAET98ABE/gAARP4wAET+QABE/mAARP5wAET+kABE/sAARP7QAET+4ABE/xAARP8gAET/cABFAQAARQGQAEUBsABFAdAARQJgAEUCkABFAsAARQLgAEUHcABFCbAARQwgAEUOYABFDpAARQ6wAEUO0ABFDvAARQ8QAEUPMABFD0AARQ9wAEURAABFExAARRMwAEUTUABFE3AARROQAEUTsABFE9AARRPwAEUUEABFFiAARRZQAEUWgABFFrAARRbgAEUXEABFF0AARRdwAEUXoABFF8AARR9wAEUfkABFH7AARR/QAEUgAABFIBAARSAgAEUgMABFIEAARSBgAEUggABFIJAARSCgAEUgwABFINAARSiAAEUooABFKMAARSjgAEUpEABFKSAARSkwAEUpQABFKVAARSlwAEUpkABFKaAARSmwAEUp0ABFKeAARTGQAEUxsABFMeAARTIAAEUyMABFMkAARTJQAEUyYABFMnAARTKQAEUysABFMsAARTLQAEUy8ABFMwAARTSQAEU0oABFNLAARTTQAEU8gABFPKAARTzAAEU84ABFPRAART0gAEU9MABFPUAART1QAEU9cABFPZAART2gAEU9sABFPdAART3gAEVFkABFRbAARUXQAEVF8ABFRiAARUYwAEVGQABFRlAARUZgAEVGgABFRqAARUawAEVGwABFRuAARUbwAEVOoABFTsAARU7gAEVPAABFTzAARU9AAEVPUABFT2AARU9wAEVPkABFT7AARU/AAEVP0ABFT/AARVAAAEVXsABFV9AARVfwAEVYEABFWEAARVhQAEVYYABFWHAARViAAEVYoABFWMAARVjQAEVY4ABFWQAARVkQAEVgwABFYOAARWEAAEVhIABFYVAARWFgAEVhcABFYYAARWGQAEVhsABFYdAARWHgAEVh8ABFYhAARWIgAEVmsABFaPAARWtgAEVtoABFbdAARW3wAEVuEABFbjAARW5QAEVucABFboAARW6wAEVwQABFchAARXIwAEVyUABFcnAARXKQAEVysABFctAARXLwAEV0wABFdPAARXUgAEV1UABFdYAARXWwAEV14ABFdhAARXYwAEV94ABFfgAARX4gAEV+QABFfnAARX6AAEV+kABFfqAARX6wAEV+0ABFfvAARX8AAEV/EABFfzAARX9AAEWG8ABFhxAARYcwAEWHUABFh4AARYeQAEWHoABFh7AARYfAAEWH4ABFiAAARYgQAEWIIABFiEAARYhQAEWQAABFkCAARZBAAEWQYABFkJAARZCgAEWQsABFkMAARZDQAEWQ8ABFkRAARZEgAEWRMABFkVAARZFgAEWZEABFmTAARZlgAEWZgABFmbAARZnAAEWZ0ABFmeAARZnwAEWaEABFmjAARZpAAEWaUABFmnAARZqAAEWiMABFolAARaJwAEWikABFosAARaLQAEWi4ABFovAARaMAAEWjIABFo0AARaNQAEWjYABFo4AARaOQAEWrQABFq2AARauAAEWroABFq9AARavgAEWr8ABFrAAARawQAEWsMABFrFAARaxgAEWscABFrJAARaygAEW0UABFtHAARbSQAEW0sABFtOAARbTwAEW1AABFtRAARbUgAEW1QABFtWAARbVwAEW1gABFtaAARbWwAEW+4ABFwRAARcMQAEXFEABFxTAARcVQAEXFcABFxZAARcXAAEXF0ABFxeAARcYQAEXGIABFxkAARcZQAEXGcABFxqAARcawAEXGwABFxvAARccAAEXHUABFyOAARclwAEXJkABFybAARcpAAEXKcABFyqAARcrAAEXPUABF0ZAARdQAAEXWQABF1nAARdaQAEXWsABF1tAARdbwAEXXEABF1yAARddQAEXY4ABF2vAARdsQAEXbMABF21AARdtwAEXbkABF27AARdvQAEXb8ABF3gAARd4wAEXeYABF3pAARd7AAEXe8ABF3yAARd9QAEXfgABF36AARedQAEXncABF55AAReewAEXn4ABF5/AARegAAEXoEABF6CAARehAAEXoYABF6HAAReiAAEXooABF6LAARfBgAEXwgABF8KAARfDAAEXw8ABF8QAARfEQAEXxIABF8TAARfFQAEXxcABF8YAARfGQAEXxsABF8cAARflwAEX5kABF+cAARfngAEX6EABF+iAARfowAEX6QABF+lAARfpwAEX6kABF+qAARfqwAEX60ABF+uAARfxwAEX8gABF/JAARfywAEYEYABGBIAARgSgAEYEwABGBPAARgUAAEYFEABGBSAARgUwAEYFUABGBXAARgWAAEYFkABGBbAARgXAAEYNcABGDZAARg2wAEYN0ABGDgAARg4QAEYOIABGDjAARg5AAEYOYABGDoAARg6QAEYOoABGDsAARg7QAEYWgABGFqAARhbAAEYW4ABGFxAARhcgAEYXMABGF0AARhdQAEYXcABGF5AARhegAEYXsABGF9AARhfgAEYfkABGH7AARh/QAEYf8ABGICAARiAwAEYgQABGIFAARiBgAEYggABGIKAARiCwAEYgwABGIOAARiDwAEYooABGKMAARijgAEYpAABGKTAARilAAEYpUABGKWAARilwAEYpkABGKbAARinAAEYp0ABGKfAARioAAEYukABGMNAARjNAAEY1gABGNbAARjXQAEY18ABGNhAARjYwAEY2UABGNmAARjaQAEY4IABGOfAARjoQAEY6MABGOlAARjpwAEY6kABGOrAARjrQAEY8oABGPNAARj0AAEY9MABGPWAARj2QAEY9wABGPfAARj4QAEZFwABGReAARkYQAEZGMABGRmAARkZwAEZGgABGRpAARkagAEZGwABGRuAARkbwAEZHAABGRyAARkcwAEZO4ABGTwAARk8gAEZPQABGT3AARk+AAEZPkABGT6AARk+wAEZP0ABGT/AARlAAAEZQEABGUDAARlBAAEZX8ABGWBAARlgwAEZYUABGWIAARliQAEZYoABGWLAARljAAEZY4ABGWQAARlkQAEZZIABGWUAARllQAEZhAABGYSAARmFQAEZhcABGYaAARmGwAEZhwABGYdAARmHgAEZiAABGYiAARmIwAEZiQABGYmAARmJwAEZqIABGakAARmpgAEZqgABGarAARmrAAEZq0ABGauAARmrwAEZrEABGazAARmtAAEZrUABGa3AARmuAAEZzMABGc1AARnNwAEZzkABGc8AARnPQAEZz4ABGc/AARnQAAEZ0IABGdEAARnRQAEZ0YABGdIAARnSQAEZ8QABGfGAARnyAAEZ8oABGfNAARnzgAEZ88ABGfQAARn0QAEZ9MABGfVAARn1gAEZ9cABGfZAARn2gAEaG0ABGiQAARosAAEaNAABGjSAARo1AAEaNYABGjYAARo2wAEaNwABGjdAARo4AAEaOEABGjjAARo5AAEaOYABGjpAARo6gAEaOsABGjuAARo7wAEaPQABGkNAARpFgAEaRgABGkaAARpIwAEaSYABGkpAARpKwAEaXQABGmYAARpvwAEaeMABGnmAARp6AAEaeoABGnsAARp7gAEafAABGnxAARp9AAEag0ABGouAARqMAAEajIABGo0AARqNgAEajgABGo6AARqPAAEaj4ABGpfAARqYgAEamUABGpoAARqawAEam4ABGpxAARqdAAEancABGp5AARq9AAEavYABGr4AARq+gAEav0ABGr+AARq/wAEawAABGsBAARrAwAEawUABGsGAARrBwAEawkABGsKAARrhQAEa4cABGuJAARriwAEa44ABGuPAARrkAAEa5EABGuSAARrlAAEa5YABGuXAARrmAAEa5oABGubAARsFgAEbBgABGwbAARsHQAEbCAABGwhAARsIgAEbCMABGwkAARsJgAEbCgABGwpAARsKgAEbCwABGwtAARsRgAEbEcABGxIAARsSgAEbMUABGzHAARsyQAEbMsABGzOAARszwAEbNAABGzRAARs0gAEbNQABGzWAARs1wAEbNgABGzaAARs2wAEbVYABG1YAARtWgAEbVwABG1fAARtYAAEbWEABG1iAARtYwAEbWUABG1nAARtaAAEbWkABG1rAARtbAAEbecABG3pAARt6wAEbe0ABG3wAARt8QAEbfIABG3zAARt9AAEbfYABG34AARt+QAEbfoABG38AARt/QAEbngABG56AARufAAEbn4ABG6BAARuggAEboMABG6EAARuhQAEbocABG6JAARuigAEbosABG6NAARujgAEbwkABG8LAARvDQAEbw8ABG8SAARvEwAEbxQABG8VAARvFgAEbxgABG8aAARvGwAEbxwABG8eAARvHwAEb2gABG+MAARvswAEb9cABG/aAARv3AAEb94ABG/gAARv4gAEb+QABG/lAARv6AAEcAEABHAeAARwIAAEcCIABHAkAARwJgAEcCgABHAqAARwLAAEcEkABHBMAARwTwAEcFIABHBVAARwWAAEcFsABHBeAARwYAAEcNsABHDdAARw3wAEcOEABHDkAARw5QAEcOYABHDnAARw6AAEcOoABHDsAARw7QAEcO4ABHDwAARw8QAEcWwABHFuAARxcAAEcXIABHF1AARxdgAEcXcABHF4AARxeQAEcXsABHF9AARxfgAEcX8ABHGBAARxggAEcf0ABHH/AARyAQAEcgMABHIGAARyBwAEcggABHIJAARyCgAEcgwABHIOAARyDwAEchAABHISAARyEwAEco4ABHKQAARykwAEcpUABHKYAARymQAEcpoABHKbAARynAAEcp4ABHKgAARyoQAEcqIABHKkAARypQAEcyAABHMiAARzJAAEcyYABHMpAARzKgAEcysABHMsAARzLQAEcy8ABHMxAARzMgAEczMABHM1AARzNgAEc7EABHOzAARztQAEc7cABHO6AARzuwAEc7wABHO9AARzvgAEc8AABHPCAARzwwAEc8QABHPGAARzxwAEdEIABHREAAR0RgAEdEgABHRLAAR0TAAEdE0ABHROAAR0TwAEdFEABHRTAAR0VAAEdFUABHRXAAR0WAAEdOsABHUOAAR1LgAEdU4ABHVQAAR1UgAEdVQABHVWAAR1WQAEdVoABHVbAAR1XgAEdV8ABHVhAAR1YgAEdWQABHVnAAR1aAAEdWkABHVsAAR1bQAEdXIABHWLAAR1lAAEdZYABHWYAAR1oQAEdaQABHWnAAR1qQAEdfIABHYWAAR2PQAEdmEABHZkAAR2ZgAEdmgABHZqAAR2bAAEdm4ABHZvAAR2cgAEdosABHasAAR2rgAEdrAABHayAAR2tAAEdrYABHa4AAR2ugAEdrwABHbdAAR24AAEduMABHbmAAR26QAEduwABHbvAAR28gAEdvUABHb3AAR3cgAEd3QABHd2AAR3eAAEd3sABHd8AAR3fQAEd34ABHd/AAR3gQAEd4MABHeEAAR3hQAEd4cABHeIAAR4AwAEeAUABHgHAAR4CQAEeAwABHgNAAR4DgAEeA8ABHgQAAR4EgAEeBQABHgVAAR4FgAEeBgABHgZAAR4lAAEeJYABHiZAAR4mwAEeJ4ABHifAAR4oAAEeKEABHiiAAR4pAAEeKYABHinAAR4qAAEeKoABHirAAR4xAAEeMUABHjGAAR4yAAEeUMABHlFAAR5RwAEeUkABHlMAAR5TQAEeU4ABHlPAAR5UAAEeVIABHlUAAR5VQAEeVYABHlYAAR5WQAEedQABHnWAAR52AAEedoABHndAAR53gAEed8ABHngAAR54QAEeeMABHnlAAR55gAEeecABHnpAAR56gAEemUABHpnAAR6aQAEemsABHpuAAR6bwAEenAABHpxAAR6cgAEenQABHp2AAR6dwAEengABHp6AAR6ewAEevYABHr4AAR6+gAEevwABHr/AAR7AAAEewEABHsCAAR7AwAEewUABHsHAAR7CAAEewkABHsLAAR7DAAEe4cABHuJAAR7iwAEe40ABHuQAAR7kQAEe5IABHuTAAR7lAAEe5YABHuYAAR7mQAEe5oABHucAAR7nQAEe+YABHwKAAR8MQAEfFUABHxYAAR8WgAEfFwABHxeAAR8YAAEfGIABHxjAAR8ZgAEfH8ABHycAAR8ngAEfKAABHyiAAR8pAAEfKYABHyoAAR8qgAEfMcABHzKAAR8zQAEfNAABHzTAAR81gAEfNkABHzcAAR83gAEfVkABH1bAAR9XQAEfV8ABH1iAAR9YwAEfWQABH1lAAR9ZgAEfWgABH1qAAR9awAEfWwABH1uAAR9bwAEfeoABH3sAAR97gAEffAABH3zAAR99AAEffUABH32AAR99wAEffkABH37AAR9/AAEff0ABH3/AAR+AAAEfnsABH59AAR+fwAEfoEABH6EAAR+hQAEfoYABH6HAAR+iAAEfooABH6MAAR+jQAEfo4ABH6QAAR+kQAEfwwABH8OAAR/EQAEfxMABH8WAAR/FwAEfxgABH8ZAAR/GgAEfxwABH8eAAR/HwAEfyAABH8iAAR/IwAEfyYABH+hAAR/owAEf6UABH+nAAR/qgAEf6sABH+sAAR/rQAEf64ABH+wAAR/sgAEf7MABH+0AAR/tgAEf7cABIAyAASANAAEgDYABIA4AASAOwAEgDwABIA9AASAPgAEgD8ABIBBAASAQwAEgEQABIBFAASARwAEgEgABIDDAASAxQAEgMcABIDJAASAzAAEgM0ABIDOAASAzwAEgNAABIDSAASA1AAEgNUABIDWAASA2AAEgNkABIFsAASBjwAEga8ABIHPAASB0QAEgdMABIHVAASB1wAEgdoABIHbAASB3AAEgd8ABIHgAASB4gAEgeMABIHmAASB6QAEgeoABIHrAASB7gAEge8ABIH0AASCDQAEghYABIIYAASCGwAEgiQABIInAASCKgAEgiwABIJ1AASCmQAEgsAABILkAASC5wAEgukABILrAASC7QAEgu8ABILxAASC8gAEgvUABIMOAASDLwAEgzEABIMzAASDNQAEgzcABIM5AASDOwAEgz0ABIM/AASDYAAEg2MABINmAASDaQAEg2wABINvAASDcgAEg3UABIN4AASDegAEg/UABIP3AASD+QAEg/sABIP+AASD/wAEhAAABIQBAASEAgAEhAQABIQGAASEBwAEhAgABIQKAASECwAEhIYABISIAASEigAEhIwABISPAASEkAAEhJEABISSAASEkwAEhJUABISXAASEmAAEhJkABISbAASEnAAEhRcABIUZAASFHAAEhR4ABIUhAASFIgAEhSMABIUkAASFJQAEhScABIUpAASFKgAEhSsABIUtAASFLgAEhUcABIVIAASFSQAEhUsABIXGAASFyAAEhcoABIXMAASFzwAEhdAABIXRAASF0gAEhdMABIXVAASF1wAEhdgABIXZAASF2wAEhdwABIZXAASGWQAEhlsABIZdAASGYAAEhmEABIZiAASGYwAEhmQABIZmAASGaAAEhmkABIZqAASGbAAEhm0ABIboAASG6gAEhuwABIbuAASG8QAEhvIABIbzAASG9AAEhvUABIb3AASG+QAEhvoABIb7AASG/QAEhv4ABId5AASHewAEh30ABId/AASHggAEh4MABIeEAASHhQAEh4YABIeIAASHigAEh4sABIeMAASHjgAEh48ABIgKAASIDAAEiA4ABIgQAASIEwAEiBQABIgVAASIFgAEiBcABIgZAASIGwAEiBwABIgdAASIHwAEiCAABIhpAASIjQAEiLQABIjYAASI2wAEiN4ABIjgAASI4gAEiOQABIjmAASI5wAEiOoABIkDAASJIAAEiSMABIkmAASJKQAEiSwABIkvAASJMgAEiTUABIlSAASJVQAEiVgABIlbAASJXgAEiWEABIlkAASJZwAEiWkABInkAASJ5gAEiekABInrAASJ7gAEie8ABInwAASJ8QAEifIABIn0AASJ9wAEifgABIn5AASJ+wAEifwABIp3AASKeQAEinwABIp+AASKgQAEioIABIqDAASKhAAEioUABIqHAASKigAEiosABIqMAASKjgAEio8ABIsKAASLDAAEiw8ABIsRAASLFAAEixUABIsWAASLFwAEixgABIsaAASLHQAEix4ABIsfAASLIQAEiyIABIudAASLnwAEi6IABIukAASLpwAEi6gABIupAASLqgAEi6sABIutAASLsAAEi7EABIuyAASLtAAEi7UABIwwAASMMgAEjDQABIw2AASMOQAEjDoABIw7AASMPAAEjD0ABIw/AASMQgAEjEMABIxEAASMRgAEjEcABIzCAASMxAAEjMYABIzIAASMywAEjMwABIzNAASMzgAEjM8ABIzRAASM1AAEjNUABIzWAASM2AAEjNkABI1UAASNVgAEjVkABI1bAASNXgAEjV8ABI1gAASNYQAEjWIABI1kAASNZwAEjWgABI1pAASNawAEjWwABI3/AASOIgAEjkIABI5iAASOZAAEjmYABI5oAASOagAEjm0ABI5uAASObwAEjnIABI5zAASOdQAEjnYABI55AASOfAAEjn0ABI5+AASOgQAEjoIABI6HAASOoAAEjqkABI6rAASOrgAEjrcABI66AASOvQAEjr8ABI8IAASPLAAEj1MABI93AASPegAEj3wABI9+AASPgAAEj4IABI+EAASPhQAEj4gABI+hAASPwgAEj8QABI/GAASPyAAEj8oABI/MAASPzgAEj9AABI/SAASP8wAEj/YABI/5AASP/AAEj/8ABJACAASQBQAEkAgABJALAASQDQAEkIgABJCKAASQjAAEkI4ABJCRAASQkgAEkJMABJCUAASQlQAEkJcABJCZAASQmgAEkJsABJCdAASQngAEkRkABJEbAASRHQAEkR8ABJEiAASRIwAEkSQABJElAASRJgAEkSgABJEqAASRKwAEkSwABJEuAASRLwAEkaoABJGsAASRrwAEkbEABJG0AASRtQAEkbYABJG3AASRuAAEkboABJG8AASRvQAEkb4ABJHAAASRwQAEkdoABJHbAASR3AAEkd4ABJJZAASSWwAEkl0ABJJfAASSYgAEkmMABJJkAASSZQAEkmYABJJoAASSagAEkmsABJJsAASSbgAEkm8ABJLqAASS7AAEku4ABJLwAASS8wAEkvQABJL1AASS9gAEkvcABJL5AASS+wAEkvwABJL9AASS/wAEkwAABJN7AASTfQAEk38ABJOBAASThAAEk4UABJOGAASThwAEk4gABJOKAASTjAAEk40ABJOOAASTkAAEk5EABJQMAASUDgAElBAABJQSAASUFQAElBYABJQXAASUGAAElBkABJQbAASUHQAElB4ABJQfAASUIQAElCIABJSdAASUnwAElKEABJSjAASUpgAElKcABJSoAASUqQAElKoABJSsAASUrgAElK8ABJSwAASUsgAElLMABJT8AASVIAAElUcABJVrAASVbgAElXEABJVzAASVdQAElXcABJV5AASVegAElX0ABJWWAASVswAElbYABJW5AASVvAAElb8ABJXCAASVxQAElcgABJXlAASV6AAElesABJXuAASV8QAElfQABJX3AASV+gAElfwABJZ3AASWeQAElnwABJZ+AASWgQAEloIABJaDAASWhAAEloUABJaHAASWigAElosABJaMAASWjgAElo8ABJcKAASXDAAElw8ABJcRAASXFAAElxUABJcWAASXFwAElxgABJcaAASXHQAElx4ABJcfAASXIQAElyIABJedAASXnwAEl6IABJekAASXpwAEl6gABJepAASXqgAEl6sABJetAASXsAAEl7EABJeyAASXtAAEl7UABJgwAASYMgAEmDUABJg3AASYOgAEmDsABJg8AASYPQAEmD4ABJhAAASYQwAEmEQABJhFAASYRwAEmEgABJjLAASY7wAEmRMABJk2AASZXQAEmX0ABJmkAASZywAEmesABJoPAASaMwAEmjUABJo4AASaOgAEmjwABJo+AASaQQAEmkQABJpGAASaSAAEmksABJpNAASaTwAEmlIABJpVAASaVgAEmlsABJp0AASaeQAEmnsABJqAAASagwAEmoUABJrOAASa8gAEmxkABJs9AASbQAAEm0IABJtEAASbRgAEm0gABJtKAASbSwAEm04ABJtnAASbjAAEm44ABJuQAASbkgAEm5QABJuWAASbmAAEm5oABJucAASbngAEm8MABJvGAASbyQAEm8wABJvPAASb0gAEm9UABJvYAASb2wAEm94ABJvgAAScWwAEnF0ABJxgAAScYgAEnGUABJxmAAScZwAEnGgABJxpAAScawAEnG0ABJxuAAScbwAEnHEABJxyAAScgwAEnIQABJyGAASdAQAEnQMABJ0FAASdBwAEnQoABJ0LAASdDAAEnQ0ABJ0OAASdEAAEnRIABJ0TAASdFAAEnRYABJ0XAASdkgAEnZQABJ2XAASdmQAEnZwABJ2dAASdngAEnZ8ABJ2gAASdogAEnaQABJ2lAASdpgAEnagABJ2pAASdugAEnbsABJ29AASeOAAEnjoABJ48AASePgAEnkEABJ5CAASeQwAEnkQABJ5FAASeRwAEnkkABJ5KAASeSwAEnk0ABJ5OAASeyQAEnssABJ7OAASe0AAEntMABJ7UAASe1QAEntYABJ7XAASe2QAEntsABJ7cAASe3QAEnt8ABJ7gAASe8QAEnvIABJ70AASfbwAEn3EABJ9zAASfdQAEn3gABJ95AASfegAEn3sABJ98AASffgAEn4AABJ+BAASfggAEn4QABJ+FAASgAAAEoAIABKAFAASgBwAEoAoABKALAASgDAAEoA0ABKAOAASgEAAEoBIABKATAASgFAAEoBYABKAXAASgMAAEoDEABKAyAASgNAAEoK8ABKCxAASgswAEoLUABKC4AASguQAEoLoABKC7AASgvAAEoL4ABKDAAASgwQAEoMIABKDEAASgxQAEoUAABKFCAAShRQAEoUcABKFKAAShSwAEoUwABKFNAAShTgAEoVAABKFSAAShUwAEoVQABKFWAAShVwAEoW4ABKGHAAShmAAEoZsABKGeAAShoQAEoaQABKG1AAShuAAEobsABKG+AAShwQAEocMABKHVAASh5AAEofkABKIQAASiowAEosYABKLmAASjBgAEowgABKMKAASjDAAEow4ABKMRAASjEgAEoxMABKMWAASjFwAEoxkABKMaAASjHQAEoyAABKMhAASjIgAEoyUABKMmAASjLwAEo0gABKNRAASjUwAEo1YABKNfAASjYgAEo2UABKNnAASjsAAEo9QABKP7AASkHwAEpCIABKQkAASkJgAEpCgABKQqAASkLAAEpC0ABKQwAASkSQAEpGoABKRsAASkbgAEpHAABKRyAASkdAAEpHYABKR4AASkegAEpJsABKSeAASkoQAEpKQABKSnAASkqgAEpK0ABKSwAASkswAEpLUABKUwAASlMgAEpTQABKU2AASlOQAEpToABKU7AASlPAAEpT0ABKU/AASlQQAEpUIABKVDAASlRQAEpUYABKXBAASlwwAEpcUABKXHAASlygAEpcsABKXMAASlzQAEpc4ABKXQAASl0gAEpdMABKXUAASl1gAEpdcABKZSAASmVAAEplcABKZZAASmXAAEpl0ABKZeAASmXwAEpmAABKZiAASmZAAEpmUABKZmAASmaAAEpmkABKaCAASmgwAEpoQABKaGAASnAQAEpwMABKcFAASnBwAEpwoABKcLAASnDAAEpw0ABKcOAASnEAAEpxIABKcTAASnFAAEpxYABKcXAASnkgAEp5QABKeWAASnmAAEp5sABKecAASnnQAEp54ABKefAASnoQAEp6MABKekAASnpQAEp6cABKeoAASoIwAEqCUABKgnAASoKQAEqCwABKgtAASoLgAEqC8ABKgwAASoMgAEqDQABKg1AASoNgAEqDgABKg5AASotAAEqLYABKi4AASougAEqL0ABKi+AASovwAEqMAABKjBAASowwAEqMUABKjGAASoxwAEqMkABKjKAASpRQAEqUcABKlJAASpSwAEqU4ABKlPAASpUAAEqVEABKlSAASpVAAEqVYABKlXAASpWAAEqVoABKlbAASppAAEqcgABKnvAASqEwAEqhYABKoZAASqGwAEqh0ABKofAASqIQAEqiIABKolAASqPgAEqlsABKpeAASqYQAEqmQABKpnAASqagAEqm0ABKpwAASqjQAEqpAABKqTAASqlgAEqpkABKqcAASqnwAEqqIABKqkAASrHwAEqyEABKskAASrJgAEqykABKsqAASrKwAEqywABKstAASrLwAEqzIABKszAASrNAAEqzYABKs3AASrsgAEq7QABKu3AASruQAEq7wABKu9AASrvgAEq78ABKvAAASrwgAEq8UABKvGAASrxwAEq8kABKvKAASsRQAErEcABKxKAASsTAAErE8ABKxQAASsUQAErFIABKxTAASsVQAErFgABKxZAASsWgAErFwABKxdAASs2AAErNoABKzdAASs3wAErOIABKzjAASs5AAErOUABKzmAASs6AAErOsABKzsAASs7QAErO8ABKzwAAStcwAErZcABK27AASt3gAErgUABK4lAASuTAAErnMABK6TAASutwAErtsABK7dAASu4AAEruIABK7kAASu5gAErukABK7sAASu7gAErvAABK7zAASu9QAErvcABK76AASu/QAErv4ABK8DAASvHAAEryEABK8jAASvKAAErysABK8tAASvdgAEr5oABK/BAASv5QAEr+gABK/qAASv7AAEr+4ABK/wAASv8gAEr/MABK/2AASwDwAEsDQABLA2AASwOAAEsDoABLA8AASwPgAEsEAABLBCAASwRAAEsEYABLBrAASwbgAEsHEABLB0AASwdwAEsHoABLB9AASwgAAEsIMABLCGAASwiAAEsQMABLEFAASxCAAEsQoABLENAASxDgAEsQ8ABLEQAASxEQAEsRMABLEVAASxFgAEsRcABLEZAASxGgAEsSsABLEsAASxLgAEsakABLGrAASxrQAEsa8ABLGyAASxswAEsbQABLG1AASxtgAEsbgABLG6AASxuwAEsbwABLG+AASxvwAEsjoABLI8AASyPwAEskEABLJEAASyRQAEskYABLJHAASySAAEskoABLJMAASyTQAEsk4ABLJQAASyUQAEsmIABLJnAASyagAEsmwABLJ9AASyjgAEspEABLKUAASylwAEspoABLKcAASytwAEssMABLLPAASy3AAEs1cABLNZAASzWwAEs10ABLNgAASzYQAEs2IABLNjAASzZAAEs2YABLNoAASzaQAEs2oABLNsAASzbQAEs+gABLPqAASz7QAEs+8ABLPyAASz8wAEs/QABLP1AASz9gAEs/gABLP6AASz+wAEs/wABLP+AASz/wAEtBAABLQRAAS0EwAEtI4ABLSQAAS0kgAEtJQABLSXAAS0mAAEtJkABLSaAAS0mwAEtJ0ABLSfAAS0oAAEtKEABLSjAAS0pAAEtR8ABLUhAAS1JAAEtSYABLUpAAS1KgAEtSsABLUsAAS1LQAEtS8ABLUxAAS1MgAEtTMABLU1AAS1NgAEtU8ABLVQAAS1UQAEtVMABLXOAAS10AAEtdIABLXUAAS11wAEtdgABLXZAAS12gAEtdsABLXdAAS13wAEteAABLXhAAS14wAEteQABLZfAAS2YQAEtmQABLZmAAS2aQAEtmoABLZrAAS2bAAEtm0ABLZvAAS2cQAEtnIABLZzAAS2dQAEtnYABLaFAAS2ngAEtvEABLb0AAS29wAEtvoABLb9AAS3AAAEtwMABLcGAAS3CQAEtwwABLcPAAS3EgAEtxUABLcYAAS3GwAEtx4ABLchAAS3JAAEtycABLcqAAS3LQAEt4AABLeDAAS3hgAEt4kABLeMAAS3jwAEt5IABLeVAAS3mAAEt5sABLeeAAS3oQAEt6QABLenAAS3qgAEt60ABLewAAS3swAEt7YABLe5AAS3vAAEt74ABLfQAAS35QAEt+wABLgAAAS4IQAEuDUABLhJAAS4aAAEuHUABLiHAAS4kwAEuMEABLjOAAS46QAEuQQABLkRAAS5JAAEuTAABLlGAAS5YAAEufMABLoWAAS6NgAEulYABLpYAAS6WgAEulwABLpeAAS6YQAEumIABLpjAAS6ZgAEumcABLppAAS6agAEum0ABLpwAAS6cQAEunIABLp1AAS6dgAEunsABLqUAAS6nQAEup8ABLqiAAS6qwAEuq4ABLqxAAS6swAEuvwABLsgAAS7RwAEu2sABLtuAAS7cAAEu3IABLt0AAS7dgAEu3gABLt5AAS7fAAEu5UABLu2AAS7uAAEu7oABLu8AAS7vgAEu8AABLvCAAS7xAAEu8YABLvnAAS76gAEu+0ABLvwAAS78wAEu/YABLv5AAS7/AAEu/8ABLwBAAS8fAAEvH4ABLyAAAS8ggAEvIUABLyGAAS8hwAEvIgABLyJAAS8iwAEvI0ABLyOAAS8jwAEvJEABLySAAS9DQAEvQ8ABL0RAAS9EwAEvRYABL0XAAS9GAAEvRkABL0aAAS9HAAEvR4ABL0fAAS9IAAEvSIABL0jAAS9ngAEvaAABL2jAAS9pQAEvagABL2pAAS9qgAEvasABL2sAAS9rgAEvbAABL2xAAS9sgAEvbQABL21AAS9zgAEvc8ABL3QAAS90gAEvk0ABL5PAAS+UQAEvlMABL5WAAS+VwAEvlgABL5ZAAS+WgAEvlwABL5eAAS+XwAEvmAABL5iAAS+YwAEvt4ABL7gAAS+4gAEvuQABL7nAAS+6AAEvukABL7qAAS+6wAEvu0ABL7vAAS+8AAEvvEABL7zAAS+9AAEv28ABL9xAAS/cwAEv3UABL94AAS/eQAEv3oABL97AAS/fAAEv34ABL+AAAS/gQAEv4IABL+EAAS/hQAEwAAABMACAATABAAEwAYABMAJAATACgAEwAsABMAMAATADQAEwA8ABMARAATAEgAEwBMABMAVAATAFgAEwJEABMCTAATAlQAEwJcABMCaAATAmwAEwJwABMCdAATAngAEwKAABMCiAATAowAEwKQABMCmAATApwAEwPAABMEUAATBOwAEwV8ABMFiAATBZQAEwWcABMFpAATBawAEwW0ABMFuAATBcQAEwYoABMGnAATBqgAEwa0ABMGwAATBswAEwbYABMG5AATBvAAEwdkABMHcAATB3wAEweIABMHlAATB6AAEwesABMHuAATB8AAEwmsABMJtAATCcAAEwnIABMJ1AATCdgAEwncABMJ4AATCeQAEwnsABMJ+AATCfwAEwoAABMKCAATCgwAEwv4ABMMAAATDAwAEwwUABMMIAATDCQAEwwoABMMLAATDDAAEww4ABMMRAATDEgAEwxMABMMVAATDFgAEw5EABMOTAATDlgAEw5gABMObAATDnAAEw50ABMOeAATDnwAEw6EABMOkAATDpQAEw6YABMOoAATDqQAExCQABMQmAATEKQAExCsABMQuAATELwAExDAABMQxAATEMgAExDQABMQ3AATEOAAExDkABMQ7AATEPAAExLcABMS5AATEuwAExL0ABMTAAATEwQAExMIABMTDAATExAAExMYABMTJAATEygAExMsABMTNAATEzgAExUkABMVLAATFTQAExU8ABMVSAATFUwAExVQABMVVAATFVgAExVgABMVbAATFXAAExV0ABMVfAATFYAAExdsABMXdAATF4AAExeIABMXlAATF5gAExecABMXoAATF6QAExesABMXuAATF7wAExfAABMXyAATF8wAExoYABMapAATGyQAExukABMbrAATG7QAExu8ABMbxAATG9AAExvUABMb2AATG+QAExvoABMb8AATG/QAExv8ABMcCAATHAwAExwQABMcHAATHCAAExw0ABMcmAATHLwAExzEABMczAATHPAAExz8ABMdCAATHRAAEx40ABMexAATH2AAEx/wABMf/AATIAQAEyAMABMgFAATIBwAEyAkABMgKAATIDQAEyCYABMhHAATISQAEyEsABMhNAATITwAEyFEABMhTAATIVQAEyFcABMh4AATIewAEyH4ABMiBAATIhAAEyIcABMiKAATIjQAEyJAABMiSAATJDQAEyQ8ABMkRAATJEwAEyRYABMkXAATJGAAEyRkABMkaAATJHAAEyR4ABMkfAATJIAAEySIABMkjAATJngAEyaAABMmiAATJpAAEyacABMmoAATJqQAEyaoABMmrAATJrQAEya8ABMmwAATJsQAEybMABMm0AATKLwAEyjEABMo0AATKNgAEyjkABMo6AATKOwAEyjwABMo9AATKPwAEykEABMpCAATKQwAEykUABMpGAATKXwAEymAABMphAATKYwAEyt4ABMrgAATK4gAEyuQABMrnAATK6AAEyukABMrqAATK6wAEyu0ABMrvAATK8AAEyvEABMrzAATK9AAEy28ABMtxAATLcwAEy3UABMt4AATLeQAEy3oABMt7AATLfAAEy34ABMuAAATLgQAEy4IABMuEAATLhQAEzAAABMwCAATMBAAEzAYABMwJAATMCgAEzAsABMwMAATMDQAEzA8ABMwRAATMEgAEzBMABMwVAATMFgAEzJEABMyTAATMlQAEzJcABMyaAATMmwAEzJwABMydAATMngAEzKAABMyiAATMowAEzKQABMymAATMpwAEzSIABM0kAATNJgAEzSgABM0rAATNLAAEzS0ABM0uAATNLwAEzTEABM0zAATNNAAEzTUABM03AATNOAAEzYEABM2lAATNzAAEzfAABM3zAATN9QAEzfcABM35AATN+wAEzf0ABM3+AATOAQAEzhoABM43AATOOQAEzjsABM49AATOPwAEzkEABM5DAATORQAEzmIABM5lAATOaAAEzmsABM5uAATOcQAEznQABM53AATOeQAEzvQABM72AATO+AAEzvoABM79AATO/gAEzv8ABM8AAATPAQAEzwMABM8FAATPBgAEzwcABM8JAATPCgAEz4UABM+HAATPiQAEz4sABM+OAATPjwAEz5AABM+RAATPkgAEz5QABM+WAATPlwAEz5gABM+aAATPmwAE0BYABNAYAATQGgAE0BwABNAfAATQIAAE0CEABNAiAATQIwAE0CUABNAnAATQKAAE0CkABNArAATQLAAE0KcABNCpAATQrAAE0K4ABNCxAATQsgAE0LMABNC0AATQtQAE0LcABNC5AATQugAE0LsABNC9AATQvgAE0TkABNE7AATRPQAE0T8ABNFCAATRQwAE0UQABNFFAATRRgAE0UgABNFKAATRSwAE0UwABNFOAATRTwAE0coABNHMAATRzgAE0dAABNHTAATR1AAE0dUABNHWAATR1wAE0dkABNHbAATR3AAE0d0ABNHfAATR4AAE0lsABNJdAATSXwAE0mEABNJkAATSZQAE0mYABNJnAATSaAAE0moABNJsAATSbQAE0m4ABNJwAATScQAE0wQABNMnAATTRwAE02cABNNpAATTawAE020ABNNvAATTcgAE03MABNN0AATTdwAE03gABNN6AATTewAE030ABNOAAATTgQAE04IABNOFAATThgAE04sABNOkAATTrQAE068ABNOxAATTugAE070ABNPAAATTwgAE1AsABNQvAATUVgAE1HoABNR9AATUfwAE1IEABNSDAATUhQAE1IcABNSIAATUiwAE1KQABNTFAATUxwAE1MkABNTLAATUzQAE1M8ABNTRAATU0wAE1NUABNT2AATU+QAE1PwABNT/AATVAgAE1QUABNUIAATVCwAE1Q4ABNUQAATViwAE1Y0ABNWPAATVkQAE1ZQABNWVAATVlgAE1ZcABNWYAATVmgAE1ZwABNWdAATVngAE1aAABNWhAATWHAAE1h4ABNYgAATWIgAE1iUABNYmAATWJwAE1igABNYpAATWKwAE1i0ABNYuAATWLwAE1jEABNYyAATWrQAE1q8ABNayAATWtAAE1rcABNa4AATWuQAE1roABNa7AATWvQAE1r8ABNbAAATWwQAE1sMABNbEAATW3QAE1t4ABNbfAATW4QAE11wABNdeAATXYAAE12IABNdlAATXZgAE12cABNdoAATXaQAE12sABNdtAATXbgAE128ABNdxAATXcgAE1+0ABNfvAATX8QAE1/MABNf2AATX9wAE1/gABNf5AATX+gAE1/wABNf+AATX/wAE2AAABNgCAATYAwAE2H4ABNiAAATYggAE2IQABNiHAATYiAAE2IkABNiKAATYiwAE2I0ABNiPAATYkAAE2JEABNiTAATYlAAE2Q8ABNkRAATZEwAE2RUABNkYAATZGQAE2RoABNkbAATZHAAE2R4ABNkgAATZIQAE2SIABNkkAATZJQAE2aAABNmiAATZpAAE2aYABNmpAATZqgAE2asABNmsAATZrQAE2a8ABNmxAATZsgAE2bMABNm1AATZtgAE2f8ABNojAATaSgAE2m4ABNpxAATacwAE2nUABNp3AATaeQAE2nsABNp8AATafwAE2pgABNq1AATatwAE2rkABNq7AATavQAE2r8ABNrBAATawwAE2uAABNrjAATa5gAE2ukABNrsAATa7wAE2vIABNr1AATa9wAE23IABNt0AATbdwAE23kABNt8AATbfQAE234ABNt/AATbgAAE24IABNuEAATbhQAE24YABNuIAATbiQAE240ABNwIAATcCgAE3AwABNwOAATcEQAE3BIABNwTAATcFAAE3BUABNwXAATcGQAE3BoABNwbAATcHQAE3B4ABNyZAATcmwAE3J0ABNyfAATcogAE3KMABNykAATcpQAE3KYABNyoAATcqgAE3KsABNysAATcrgAE3K8ABN0qAATdLAAE3S8ABN0xAATdNAAE3TUABN02AATdNwAE3TgABN06AATdPAAE3T0ABN0+AATdQAAE3UEABN28AATdvgAE3cAABN3CAATdxQAE3cYABN3HAATdyAAE3ckABN3LAATdzQAE3c4ABN3PAATd0QAE3dIABN5NAATeTwAE3lEABN5TAATeVgAE3lcABN5YAATeWQAE3loABN5cAATeXgAE3l8ABN5gAATeYgAE3mMABN7eAATe4AAE3uIABN7kAATe5wAE3ugABN7pAATe6gAE3usABN7tAATe7wAE3vAABN7xAATe8wAE3vQABN+HAATfqgAE38oABN/qAATf7AAE3+4ABN/wAATf8gAE3/UABN/2AATf9wAE3/oABN/7AATf/QAE3/4ABOABAATgBAAE4AUABOAGAATgCQAE4AoABOAPAATgKAAE4DEABOAzAATgNgAE4D8ABOBCAATgRQAE4EcABOCQAATgtAAE4NsABOD/AAThAgAE4QQABOEGAAThCAAE4QoABOEMAAThDQAE4RAABOEpAAThSgAE4UwABOFOAAThUAAE4VIABOFUAAThVgAE4VgABOFaAAThewAE4X4ABOGBAAThhAAE4YcABOGKAAThjQAE4ZAABOGTAAThlQAE4hAABOISAATiFAAE4hYABOIZAATiGgAE4hsABOIcAATiHQAE4h8ABOIhAATiIgAE4iMABOIlAATiJgAE4qEABOKjAATipQAE4qcABOKqAATiqwAE4qwABOKtAATirgAE4rAABOKyAATiswAE4rQABOK2AATitwAE4zIABOM0AATjNwAE4zkABOM8AATjPQAE4z4ABOM/AATjQAAE40IABONEAATjRQAE40YABONIAATjSQAE42IABONjAATjZAAE42YABOPhAATj4wAE4+UABOPnAATj6gAE4+sABOPsAATj7QAE4+4ABOPwAATj8gAE4/MABOP0AATj9gAE4/cABORyAATkdAAE5HYABOR4AATkewAE5HwABOR9AATkfgAE5H8ABOSBAATkgwAE5IQABOSFAATkhwAE5IgABOUDAATlBQAE5QcABOUJAATlDAAE5Q0ABOUOAATlDwAE5RAABOUSAATlFAAE5RUABOUWAATlGAAE5RkABOWUAATllgAE5ZgABOWaAATlnQAE5Z4ABOWfAATloAAE5aEABOWjAATlpQAE5aYABOWnAATlqQAE5aoABOYlAATmJwAE5ikABOYrAATmLgAE5i8ABOYwAATmMQAE5jIABOY0AATmNgAE5jcABOY4AATmOgAE5jsABOaEAATmqAAE5s8ABObzAATm9gAE5vkABOb7AATm/QAE5v8ABOcBAATnAgAE5wUABOceAATnOwAE5z4ABOdBAATnRAAE50cABOdKAATnTQAE51AABOdtAATncAAE53MABOd2AATneQAE53wABOd/AATnggAE54QABOf/AAToAQAE6AQABOgGAAToCQAE6AoABOgLAAToDAAE6A0ABOgPAAToEgAE6BMABOgUAAToFgAE6BcABOiSAATolAAE6JcABOiZAATonAAE6J0ABOieAATonwAE6KAABOiiAATopQAE6KYABOinAAToqQAE6KoABOklAATpJwAE6SoABOksAATpLwAE6TAABOkxAATpMgAE6TMABOk1AATpOAAE6TkABOk6AATpPAAE6T0ABOm4AATpugAE6b0ABOm/AATpwgAE6cMABOnEAATpxQAE6cYABOnIAATpywAE6cwABOnNAATpzwAE6dAABOpTAATqdwAE6psABOq+AATq5QAE6wUABOssAATrUwAE63MABOuXAATruwAE670ABOvAAATrwgAE68QABOvGAATryQAE68wABOvOAATr0AAE69MABOvVAATr1wAE69oABOvdAATr3gAE6+MABOv8AATsAQAE7AMABOwIAATsCwAE7A0ABOxWAATsegAE7KEABOzFAATsyAAE7MoABOzMAATszgAE7NAABOzSAATs0wAE7NYABOzvAATtFAAE7RYABO0YAATtGgAE7RwABO0eAATtIAAE7SIABO0kAATtJgAE7UsABO1OAATtUQAE7VQABO1XAATtWgAE7V0ABO1gAATtYwAE7WYABO1oAATt4wAE7eUABO3oAATt6gAE7e0ABO3uAATt7wAE7fAABO3xAATt8wAE7fUABO32AATt9wAE7fkABO36AATuCwAE7gwABO4OAATuiQAE7osABO6NAATujwAE7pIABO6TAATulAAE7pUABO6WAATumAAE7poABO6bAATunAAE7p4ABO6fAATvGgAE7xwABO8fAATvIQAE7yQABO8lAATvJgAE7ycABO8oAATvKgAE7ywABO8tAATvLgAE7zAABO8xAATvQgAE70MABO9FAATvwAAE78IABO/EAATvxgAE78kABO/KAATvywAE78wABO/NAATvzwAE79EABO/SAATv0wAE79UABO/WAATwUQAE8FMABPBWAATwWAAE8FsABPBcAATwXQAE8F4ABPBfAATwYQAE8GMABPBkAATwZQAE8GcABPBoAATweQAE8HoABPB8AATw9wAE8PkABPD7AATw/QAE8QAABPEBAATxAgAE8QMABPEEAATxBgAE8QgABPEJAATxCgAE8QwABPENAATxiAAE8YoABPGNAATxjwAE8ZIABPGTAATxlAAE8ZUABPGWAATxmAAE8ZoABPGbAATxnAAE8Z4ABPGfAATxuAAE8bkABPG6AATxvAAE8jcABPI5AATyOwAE8j0ABPJAAATyQQAE8kIABPJDAATyRAAE8kYABPJIAATySQAE8koABPJMAATyTQAE8sgABPLKAATyzQAE8s8ABPLSAATy0wAE8tQABPLVAATy1gAE8tgABPLaAATy2wAE8twABPLeAATy3wAE8vcABPMQAATzLQAE8zAABPMzAATzNgAE8zkABPM8AATzPwAE80IABPNfAATzYgAE82UABPNoAATzawAE824ABPNxAATzdAAE83YABPORAATzvAAE89IABPPrAAT0FAAE9CwABPQ6AAT0zQAE9PAABPUQAAT1MAAE9TIABPU0AAT1NgAE9TgABPU7AAT1PAAE9T0ABPVAAAT1QQAE9UMABPVEAAT1RgAE9UkABPVKAAT1SwAE9U4ABPVPAAT1VAAE9W0ABPV2AAT1eAAE9XoABPWDAAT1hgAE9YkABPWLAAT11AAE9fgABPYfAAT2QwAE9kYABPZIAAT2SgAE9kwABPZOAAT2UAAE9lEABPZUAAT2bQAE9o4ABPaQAAT2kgAE9pQABPaWAAT2mAAE9poABPacAAT2ngAE9r8ABPbCAAT2xQAE9sgABPbLAAT2zgAE9tEABPbUAAT21wAE9tkABPdUAAT3VgAE91gABPdaAAT3XQAE914ABPdfAAT3YAAE92EABPdjAAT3ZQAE92YABPdnAAT3aQAE92oABPflAAT35wAE9+kABPfrAAT37gAE9+8ABPfwAAT38QAE9/IABPf0AAT39gAE9/cABPf4AAT3+gAE9/sABPh2AAT4eAAE+HsABPh9AAT4gAAE+IEABPiCAAT4gwAE+IQABPiGAAT4iAAE+IkABPiKAAT4jAAE+I0ABPimAAT4pwAE+KgABPiqAAT5JQAE+ScABPkpAAT5KwAE+S4ABPkvAAT5MAAE+TEABPkyAAT5NAAE+TYABPk3AAT5OAAE+ToABPk7AAT5tgAE+bgABPm6AAT5vAAE+b8ABPnAAAT5wQAE+cIABPnDAAT5xQAE+ccABPnIAAT5yQAE+csABPnMAAT6RwAE+kkABPpLAAT6TQAE+lAABPpRAAT6UgAE+lMABPpUAAT6VgAE+lgABPpZAAT6WgAE+lwABPpdAAT62AAE+toABPrcAAT63gAE+uEABPriAAT64wAE+uQABPrlAAT65wAE+ukABPrqAAT66wAE+u0ABPruAAT7aQAE+2sABPttAAT7bwAE+3IABPtzAAT7dAAE+3UABPt2AAT7eAAE+3oABPt7AAT7fAAE+34ABPt/AAT7yAAE++wABPwTAAT8NwAE/DoABPw8AAT8PgAE/EAABPxCAAT8RAAE/EUABPxIAAT8YQAE/H4ABPyAAAT8ggAE/IQABPyGAAT8iAAE/IoABPyMAAT8qQAE/KwABPyvAAT8sgAE/LUABPy4AAT8uwAE/L4ABPzAAAT9OwAE/T0ABP0/AAT9QQAE/UQABP1FAAT9RgAE/UcABP1IAAT9SgAE/UwABP1NAAT9TgAE/VAABP1RAAT9zAAE/c4ABP3QAAT90gAE/dUABP3WAAT91wAE/dgABP3ZAAT92wAE/d0ABP3eAAT93wAE/eEABP3iAAT+XQAE/l8ABP5hAAT+YwAE/mYABP5nAAT+aAAE/mkABP5qAAT+bAAE/m4ABP5vAAT+cAAE/nIABP5zAAT+7gAE/vAABP7zAAT+9QAE/vgABP75AAT++gAE/vsABP78AAT+/gAE/wAABP8BAAT/AgAE/wQABP8FAAT/gAAE/4IABP+EAAT/hgAE/4kABP+KAAT/iwAE/4wABP+NAAT/jwAE/5EABP+SAAT/kwAE/5UABP+WAAUAEQAFABMABQAVAAUAFwAFABoABQAbAAUAHAAFAB0ABQAeAAUAIAAFACIABQAjAAUAJAAFACYABQAnAAUAogAFAKQABQCmAAUAqAAFAKsABQCsAAUArQAFAK4ABQCvAAUAsQAFALMABQC0AAUAtQAFALcABQC4AAUBSwAFAW4ABQGOAAUBrgAFAbAABQGyAAUBtAAFAbYABQG5AAUBugAFAbsABQG+AAUBvwAFAcEABQHCAAUBxQAFAcgABQHJAAUBygAFAc0ABQHOAAUB0wAFAewABQH1AAUB9wAFAfoABQIDAAUCBgAFAgkABQILAAUCVAAFAngABQKfAAUCwwAFAsYABQLIAAUCygAFAswABQLOAAUC0AAFAtEABQLUAAUC7QAFAw4ABQMQAAUDEgAFAxQABQMWAAUDGAAFAxoABQMcAAUDHgAFAz8ABQNCAAUDRQAFA0gABQNLAAUDTgAFA1EABQNUAAUDVwAFA1kABQPUAAUD1gAFA9gABQPaAAUD3QAFA94ABQPfAAUD4AAFA+EABQPjAAUD5QAFA+YABQPnAAUD6QAFA+oABQRlAAUEZwAFBGkABQRrAAUEbgAFBG8ABQRwAAUEcQAFBHIABQR0AAUEdgAFBHcABQR4AAUEegAFBHsABQT2AAUE+AAFBPsABQT9AAUFAAAFBQEABQUCAAUFAwAFBQQABQUGAAUFCAAFBQkABQUKAAUFDAAFBQ0ABQUmAAUFJwAFBSgABQUqAAUFpQAFBacABQWpAAUFqwAFBa4ABQWvAAUFsAAFBbEABQWyAAUFtAAFBbYABQW3AAUFuAAFBboABQW7AAUGNgAFBjgABQY6AAUGPAAFBj8ABQZAAAUGQQAFBkIABQZDAAUGRQAFBkcABQZIAAUGSQAFBksABQZMAAUGxwAFBskABQbLAAUGzQAFBtAABQbRAAUG0gAFBtMABQbUAAUG1gAFBtgABQbZAAUG2gAFBtwABQbdAAUHWAAFB1oABQdcAAUHXgAFB2EABQdiAAUHYwAFB2QABQdlAAUHZwAFB2kABQdqAAUHawAFB20ABQduAAUH6QAFB+sABQftAAUH7wAFB/IABQfzAAUH9AAFB/UABQf2AAUH+AAFB/oABQf7AAUH/AAFB/4ABQf/AAUISAAFCGwABQiTAAUItwAFCLoABQi9AAUIvwAFCMEABQjDAAUIxQAFCMYABQjJAAUI4gAFCP8ABQkCAAUJBQAFCQgABQkLAAUJDgAFCREABQkUAAUJMQAFCTQABQk3AAUJOgAFCT0ABQlAAAUJQwAFCUYABQlIAAUJwwAFCcUABQnIAAUJygAFCc0ABQnOAAUJzwAFCdAABQnRAAUJ0wAFCdYABQnXAAUJ2AAFCdoABQnbAAUKVgAFClgABQpbAAUKXQAFCmAABQphAAUKYgAFCmMABQpkAAUKZgAFCmkABQpqAAUKawAFCm0ABQpuAAUK6QAFCusABQruAAUK8AAFCvMABQr0AAUK9QAFCvYABQr3AAUK+QAFCvwABQr9AAUK/gAFCwAABQsBAAULfAAFC34ABQuBAAULgwAFC4YABQuHAAULiAAFC4kABQuKAAULjAAFC48ABQuQAAULkQAFC5MABQuUAAUMDwAFDBEABQwTAAUMFQAFDBgABQwZAAUMGgAFDBsABQwcAAUMHgAFDCEABQwiAAUMIwAFDCUABQwmAAUMoQAFDKMABQylAAUMpwAFDKoABQyrAAUMrAAFDK0ABQyuAAUMsAAFDLMABQy0AAUMtQAFDLcABQy4AAUNMwAFDTUABQ04AAUNOgAFDT0ABQ0+AAUNPwAFDUAABQ1BAAUNQwAFDUYABQ1HAAUNSAAFDUoABQ1LAAUN3gAFDgEABQ4hAAUOQQAFDkMABQ5FAAUORwAFDkkABQ5MAAUOTQAFDk4ABQ5RAAUOUgAFDlQABQ5VAAUOWAAFDlsABQ5cAAUOXQAFDmAABQ5hAAUOZgAFDn8ABQ6IAAUOigAFDo0ABQ6WAAUOmQAFDpwABQ6eAAUO5wAFDwsABQ8yAAUPVgAFD1kABQ9bAAUPXQAFD18ABQ9hAAUPYwAFD2QABQ9nAAUPgAAFD6EABQ+jAAUPpQAFD6cABQ+pAAUPqwAFD60ABQ+vAAUPsQAFD9IABQ/VAAUP2AAFD9sABQ/eAAUP4QAFD+QABQ/nAAUP6gAFD+wABRBnAAUQaQAFEGsABRBtAAUQcAAFEHEABRByAAUQcwAFEHQABRB2AAUQeAAFEHkABRB6AAUQfAAFEH0ABRD4AAUQ+gAFEPwABRD+AAURAQAFEQIABREDAAURBAAFEQUABREHAAURCQAFEQoABRELAAURDQAFEQ4ABRGJAAURiwAFEY4ABRGQAAURkwAFEZQABRGVAAURlgAFEZcABRGZAAURmwAFEZwABRGdAAURnwAFEaAABRG5AAURugAFEbsABRG9AAUSOAAFEjoABRI8AAUSPgAFEkEABRJCAAUSQwAFEkQABRJFAAUSRwAFEkkABRJKAAUSSwAFEk0ABRJOAAUSyQAFEssABRLNAAUSzwAFEtIABRLTAAUS1AAFEtUABRLWAAUS2AAFEtoABRLbAAUS3AAFEt4ABRLfAAUTWgAFE1wABRNeAAUTYAAFE2MABRNkAAUTZQAFE2YABRNnAAUTaQAFE2sABRNsAAUTbQAFE28ABRNwAAUT6wAFE+0ABRPvAAUT8QAFE/QABRP1AAUT9gAFE/cABRP4AAUT+gAFE/wABRP9AAUT/gAFFAAABRQBAAUUfAAFFH4ABRSAAAUUggAFFIUABRSGAAUUhwAFFIgABRSJAAUUiwAFFI0ABRSOAAUUjwAFFJEABRSSAAUU2wAFFP8ABRUmAAUVSgAFFU0ABRVQAAUVUgAFFVQABRVWAAUVWAAFFVkABRVcAAUVdQAFFZIABRWVAAUVmAAFFZsABRWeAAUVoQAFFaQABRWnAAUVxAAFFccABRXKAAUVzQAFFdAABRXTAAUV1gAFFdkABRXbAAUWVgAFFlgABRZbAAUWXQAFFmAABRZhAAUWYgAFFmMABRZkAAUWZgAFFmkABRZqAAUWawAFFm0ABRZuAAUW6QAFFusABRbuAAUW8AAFFvMABRb0AAUW9QAFFvYABRb3AAUW+QAFFvwABRb9AAUW/gAFFwAABRcBAAUXfAAFF34ABReBAAUXgwAFF4YABReHAAUXiAAFF4kABReKAAUXjAAFF48ABReQAAUXkQAFF5MABReUAAUYDwAFGBEABRgUAAUYFgAFGBkABRgaAAUYGwAFGBwABRgdAAUYHwAFGCIABRgjAAUYJAAFGCYABRgnAAUYogAFGKQABRimAAUYqAAFGKsABRisAAUYrQAFGK4ABRivAAUYsQAFGLQABRi1AAUYtgAFGLgABRi5AAUZNAAFGTYABRk4AAUZOgAFGT0ABRk+AAUZPwAFGUAABRlBAAUZQwAFGUYABRlHAAUZSAAFGUoABRlLAAUZxgAFGcgABRnLAAUZzQAFGdAABRnRAAUZ0gAFGdMABRnUAAUZ1gAFGdkABRnaAAUZ2wAFGd0ABRneAAUacQAFGpQABRq0AAUa1AAFGtYABRrYAAUa2gAFGtwABRrfAAUa4AAFGuEABRrkAAUa5QAFGucABRroAAUa6gAFGu0ABRruAAUa7wAFGvIABRrzAAUa+AAFGxEABRsaAAUbHAAFGx4ABRsnAAUbKgAFGy0ABRsvAAUbeAAFG5wABRvDAAUb5wAFG+oABRvsAAUb7gAFG/AABRvyAAUb9AAFG/UABRv4AAUcEQAFHDIABRw0AAUcNgAFHDgABRw6AAUcPAAFHD4ABRxAAAUcQgAFHGMABRxmAAUcaQAFHGwABRxvAAUccgAFHHU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ABVDsAAVRZwAFUWkABVFrAAVRbQAFUXAABVFxAAVRcgAFUXMABVF0AAVRdgAFUXgABVF5AAVRegAFUXwABVF9AAVR+AAFUfoABVH8AAVR/gAFUgEABVICAAVSAwAFUgQABVIFAAVSBwAFUgkABVIKAAVSCwAFUg0ABVIOAAVSiQAFUosABVKNAAVSjwAFUpIABVKTAAVSlAAFUpUABVKWAAVSmAAFUpoABVKbAAVSnAAFUp4ABVKfAAVTGgAFUxwABVMeAAVTIAAFUyMABVMkAAVTJQAFUyYABVMnAAVTKQAFUysABVMsAAVTLQAFUy8ABVMwAAVTeQAFU50ABVPEAAVT6AAFU+sABVPtAAVT7wAFU/EABVPzAAVT9QAFU/YABVP5AAVUEgAFVC8ABVQxAAVUMwAFVDUABVQ3AAVUOQAFVDsABVQ9AAVUWgAFVF0ABVRgAAVUYwAFVGYABVRpAAVUbAAFVG8ABVRxAAVU7AAFVO4ABVTwAAVU8gAFVPUABVT2AAVU9wAFVPgABVT5AAVU+wAFVP0ABVT+AAVU/wAFVQEABVUCAAVVfQAFVX8ABVWBAAVVgwAFVYYABVWHAAVViAAFVYkABVWKAAVVjAAFVY4ABVWPAAVVkAAFVZIABVWTAAVWDgAFVhAABVYSAAVWFAAFVhcABVYYAAVWGQAFVhoABVYbAAVWHQAFVh8ABVYgAAVWIQAFViMABVYkAAVWnwAFVqEABVakAAVWpgAFVqkABVaqAAVWqwAFVqwABVatAAVWrwAFVrEABVayAAVWswAFVrUABVa2AAVXMQAFVzMABVc1AAVXNwAFVzoABVc7AAVXPAAFVz0ABVc+AAVXQAAFV0IABVdDAAVXRAAFV0YABVdHAAVXwgAFV8QABVfGAAVXyAAFV8sABVfMAAVXzQAFV84ABVfPAAVX0QAFV9MABVfUAAVX1QAFV9cABVfYAAVYUwAFWFUABVhXAAVYWQAFWFwABVhdAAVYXgAFWF8ABVhgAAVYYgAFWGQABVhlAAVYZgAFWGgABVhpAAVYegAFWHsABVh9AAVY+AAFWPoABVj8AAVY/gAFWQEABVkCAAVZAwAFWQQABVkFAAVZBwAFWQoABVkLAAVZDAAFWQ4ABVkPAAVZigAFWYwABVmOAAVZkAAFWZMABVmUAAVZlQAFWZYABVmXAAVZmQAFWZwABVmdAAVZngAFWaAABVmhAAVaHAAFWh4ABVohAAVaIwAFWiYABVonAAVaKAAFWikABVoqAAVaLAAFWi8ABVowAAVaMQAFWjMABVo0AAVaxwAFWuoABVsKAAVbKgAFWywABVsuAAVbMAAFWzIABVs1AAVbNgAFWzcABVs6AAVbOwAFWz0ABVs+AAVbQAAFW0MABVtEAAVbRQAFW0gABVtJAAVbTgAFW2cABVtwAAVbcgAFW3QABVt9AAVbgAAFW4MABVuFAAVbzgAFW/IABVwZAAVcPQAFXEAABVxCAAVcRAAFXEYABVxIAAVcSgAFXEsABVxOAAVcZwAFXIgABVyKAAVcjAAFXI4ABVyQAAVckgAFXJQABVyWAAVcmAAFXLkABVy8AAVcvwAFXMIABVzFAAVcyAAFXMsABVzOAAVc0QAFXNMABV1OAAVdUAAFXVIABV1UAAVdVwAFXVgABV1ZAAVdWgAFXVsABV1dAAVdXwAFXWAABV1hAAVdYwAFXWQABV3fAAVd4QAFXeMABV3lAAVd6AAFXekABV3qAAVd6wAFXewABV3uAAVd8AAFXfEABV3yAAVd9AAFXfUABV5wAAVecgAFXnUABV53AAVeegAFXnsABV58AAVefQAFXn4ABV6AAAVeggAFXoMABV6EAAVehgAFXocABV6gAAVeoQAFXqIABV6kAAVfHwAFXyEABV8jAAVfJQAFXygABV8pAAVfKgAFXysABV8sAAVfLgAFXzAABV8xAAVfMgAFXzQABV81AAVfsAAFX7IABV+0AAVftgAFX7kABV+6AAVfuwAFX7wABV+9AAVfvwAFX8EABV/CAAVfwwAFX8UABV/GAAVgQQAFYEMABWBFAAVgRwAFYEoABWBLAAVgTAAFYE0ABWBOAAVgUAAFYFIABWBTAAVgVAAFYFYABWBXAAVg0gAFYNQABWDWAAVg2AAFYNsABWDcAAVg3QAFYN4ABWDfAAVg4QAFYOMABWDkAAVg5QAFYOcABWDoAAVhYwAFYWUABWFnAAVhaQAFYWwABWFtAAVhbgAFYW8ABWFwAAVhcgAFYXQABWF1AAVhdgAFYXgABWF5AAVhwgAFYeYABWINAAViMQAFYjQABWI2AAViOAAFYjoABWI8AAViPgAFYj8ABWJCAAViWwAFYngABWJ6AAVifAAFYn4ABWKAAAViggAFYoQABWKGAAViowAFYqYABWKpAAVirAAFYq8ABWKyAAVitQAFYrgABWK6AAVjNQAFYzcABWM5AAVjOwAFYz4ABWM/AAVjQAAFY0EABWNCAAVjRAAFY0YABWNHAAVjSAAFY0oABWNLAAVjxgAFY8gABWPKAAVjzAAFY88ABWPQAAVj0QAFY9IABWPTAAVj1QAFY9cABWPYAAVj2QAFY9sABWPcAAVkVwAFZFkABWRbAAVkXQAFZGAABWRhAAVkYgAFZGMABWRkAAVkZgAFZGgABWRpAAVkagAFZGwABWRtAAVk6AAFZOoABWTtAAVk7wAFZPIABWTzAAVk9AAFZPUABWT2AAVk+AAFZPoABWT7AAVk/AAFZP4ABWT/AAVlegAFZXwABWV+AAVlgAAFZYMABWWEAAVlhQAFZYYABWWHAAVliQAFZYsABWWMAAVljQAFZY8ABWWQAAVmCwAFZg0ABWYPAAVmEQAFZhQABWYVAAVmFgAFZhcABWYYAAVmGgAFZhwABWYdAAVmHgAFZiAABWYhAAVmnAAFZp4ABWagAAVmogAFZqUABWamAAVmpwAFZqgABWapAAVmqwAFZq0ABWauAAVmrwAFZrEABWayAAVnRQAFZ2gABWeIAAVnqAAFZ6oABWesAAVnrgAFZ7AABWezAAVntAAFZ7UABWe4AAVnuQAFZ7sABWe8AAVnvgAFZ8EABWfCAAVnwwAFZ8YABWfHAAVnzAAFZ+UABWfuAAVn8AAFZ/IABWf7AAVn/gAFaAEABWgDAAVoTAAFaHAABWiXAAVouwAFaL4ABWjAAAVowgAFaMQABWjGAAVoyAAFaMkABWjMAAVo5QAFaQYABWkIAAVpCgAFaQwABWkOAAVpEAAFaRIABWkUAAVpFgAFaTcABWk6AAVpPQAFaUAABWlDAAVpRgAFaUkABWlMAAVpTwAFaVEABWnMAAVpzgAFadAABWnSAAVp1QAFadYABWnXAAVp2AAFadkABWnbAAVp3QAFad4ABWnfAAVp4QAFaeIABWpdAAVqXwAFamEABWpjAAVqZgAFamcABWpoAAVqaQAFamoABWpsAAVqbgAFam8ABWpwAAVqcgAFanMABWruAAVq8AAFavMABWr1AAVq+AAFavkABWr6AAVq+wAFavwABWr+AAVrAAAFawEABWsCAAVrBAAFawUABWseAAVrHwAFayAABWsiAAVrnQAFa58ABWuhAAVrowAFa6YABWunAAVrqAAFa6kABWuqAAVrrAAFa64ABWuvAAVrsAAFa7IABWuzAAVsLgAFbDAABWwyAAVsNAAFbDcABWw4AAVsOQAFbDoABWw7AAVsPQAFbD8ABWxAAAVsQQAFbEMABWxEAAVsvwAFbMEABWzDAAVsxQAFbMgABWzJAAVsygAFbMsABWzMAAVszgAFbNAABWzRAAVs0gAFbNQABWzVAAVtUAAFbVIABW1UAAVtVgAFbVkABW1aAAVtWwAFbVwABW1dAAVtXwAFbWEABW1iAAVtYwAFbWUABW1mAAVt4QAFbeMABW3lAAVt5wAFbeoABW3rAAVt7AAFbe0ABW3uAAVt8AAFbfIABW3zAAVt9AAFbfYABW33AAVuQAAFbmQABW6LAAVurwAFbrIABW60AAVutgAFbrgABW66AAVuvAAFbr0ABW7AAAVu2QAFbvYABW74AAVu+gAFbvwABW7+AAVvAAAFbwIABW8EAAVvIQAFbyQABW8nAAVvKgAFby0ABW8wAAVvMwAFbzYABW84AAVvswAFb7UABW+3AAVvuQAFb7wABW+9AAVvvgAFb78ABW/AAAVvwgAFb8QABW/FAAVvxgAFb8gABW/JAAVwRAAFcEYABXBIAAVwSgAFcE0ABXBOAAVwTwAFcFAABXBRAAVwUwAFcFUABXBWAAVwVwAFcFkABXBaAAVw1QAFcNcABXDZAAVw2wAFcN4ABXDfAAVw4AAFcOEABXDiAAVw5AAFcOYABXDnAAVw6AAFcOoABXDrAAVxZgAFcWgABXFrAAVxbQAFcXAABXFxAAVxcgAFcXMABXF0AAVxdgAFcXgABXF5AAVxegAFcXwABXF9AAVx+AAFcfoABXH8AAVx/gAFcgEABXICAAVyAwAFcgQABXIFAAVyBwAFcgkABXIKAAVyCwAFcg0ABXIOAAVyiQAFcosABXKNAAVyjwAFcpIABXKTAAVylAAFcpUABXKWAAVymAAFcpoABXKbAAVynAAFcp4ABXKfAAVzGgAFcxwABXMeAAVzIAAFcyMABXMkAAVzJQAFcyYABXMnAAVzKQAFcysABXMsAAVzLQAFcy8ABXMwAAVzwwAFc+YABXQGAAV0JgAFdCgABXQqAAV0LAAFdC4ABXQxAAV0MgAFdDMABXQ2AAV0NwAFdDkABXQ6AAV0PQAFdEAABXRBAAV0QgAFdEUABXRGAAV0SwAFdGQABXRtAAV0bwAFdHIABXR7AAV0fgAFdIEABXSDAAV0zAAFdPAABXUXAAV1OwAFdT4ABXVAAAV1QgAFdUQABXVGAAV1SAAFdUkABXVMAAV1ZQAFdYYABXWIAAV1igAFdYwABXWOAAV1kAAFdZIABXWUAAV1lgAFdbcABXW6AAV1vQAFdcAABXXDAAV1xgAFdckABXXMAAV1zwAFddEABXZMAAV2TgAFdlAABXZSAAV2VQAFdlYABXZXAAV2WAAFdlkABXZbAAV2XQAFdl4ABXZfAAV2YQAFdmIABXbdAAV23wAFduEABXbjAAV25gAFducABXboAAV26QAFduoABXbsAAV27gAFdu8ABXbwAAV28gAFdvMABXduAAV3cAAFd3MABXd1AAV3eAAFd3kABXd6AAV3ewAFd3wABXd+AAV3gAAFd4EABXeCAAV3hAAFd4UABXeeAAV3nwAFd6AABXeiAAV4HQAFeB8ABXghAAV4IwAFeCYABXgnAAV4KAAFeCkABXgqAAV4LAAFeC4ABXgvAAV4MAAFeDIABXgzAAV4rgAFeLAABXiyAAV4tAAFeLcABXi4AAV4uQAFeLoABXi7AAV4vQAFeL8ABXjAAAV4wQAFeMMABXjEAAV5PwAFeUEABXlDAAV5RQAFeUgABXlJAAV5SgAFeUsABXlMAAV5TgAFeVAABXlRAAV5UgAFeVQABXlVAAV50AAFedIABXnUAAV51gAFedkABXnaAAV52wAFedwABXndAAV53wAFeeEABXniAAV54wAFeeUABXnmAAV6YQAFemMABXplAAV6ZwAFemoABXprAAV6bAAFem0ABXpuAAV6cAAFenIABXpzAAV6dAAFenYABXp3AAV6wAAFeuQABXsLAAV7LwAFezIABXs1AAV7NwAFezkABXs7AAV7PQAFez4ABXtBAAV7WgAFe3cABXt6AAV7fQAFe4AABXuDAAV7hgAFe4kABXuMAAV7qQAFe6wABXuvAAV7sgAFe7UABXu4AAV7uwAFe74ABXvAAAV8OwAFfD0ABXxAAAV8QgAFfEUABXxGAAV8RwAFfEgABXxJAAV8SwAFfE4ABXxPAAV8UAAFfFIABXxTAAV8zgAFfNAABXzTAAV81QAFfNgABXzZAAV82gAFfNsABXzcAAV83gAFfOEABXziAAV84wAFfOUABXzmAAV9YQAFfWMABX1mAAV9aAAFfWsABX1sAAV9bQAFfW4ABX1vAAV9cQAFfXQABX11AAV9dgAFfXgABX15AAV99AAFffYABX35AAV9+wAFff4ABX3/AAV+AAAFfgEABX4CAAV+BAAFfgcABX4IAAV+CQAFfgsABX4MAAV+jwAFfrMABX7XAAV++gAFfyEABX9BAAV/aAAFf48ABX+vAAV/0wAFf/cABX/5AAV//AAFf/4ABYAAAAWAAgAFgAUABYAIAAWACgAFgAwABYAPAAWAEQAFgBMABYAWAAWAGQAFgBoABYAfAAWAOAAFgD0ABYA/AAWARAAFgEcABYBJAAWAkgAFgLYABYDdAAWBAQAFgQQABYEGAAWBCAAFgQoABYEMAAWBDgAFgQ8ABYESAAWBKwAFgVAABYFSAAWBVAAFgVYABYFYAAWBWgAFgVwABYFeAAWBYAAFgWIABYGHAAWBigAFgY0ABYGQAAWBkwAFgZYABYGZAAWBnAAFgZ8ABYGiAAWBpAAFgh8ABYIhAAWCJAAFgiYABYIpAAWCKgAFgisABYIsAAWCLQAFgi8ABYIxAAWCMgAFgjMABYI1AAWCNgAFgkcABYJIAAWCSgAFgsUABYLHAAWCyQAFgssABYLOAAWCzwAFgtAABYLRAAWC0gAFgtQABYLWAAWC1wAFgtgABYLaAAWC2wAFg1YABYNYAAWDWwAFg10ABYNgAAWDYQAFg2IABYNjAAWDZAAFg2YABYNoAAWDaQAFg2oABYNsAAWDbQAFg34ABYN/AAWDgQAFg/wABYP+AAWEAAAFhAIABYQFAAWEBgAFhAcABYQIAAWECQAFhAsABYQNAAWEDgAFhA8ABYQRAAWEEgAFhI0ABYSPAAWEkgAFhJQABYSXAAWEmAAFhJkABYSaAAWEmwAFhJ0ABYSfAAWEoAAFhKEABYSjAAWEpAAFhLUABYS2AAWEuAAFhTMABYU1AAWFNwAFhTkABYU8AAWFPQAFhT4ABYU/AAWFQAAFhUIABYVEAAWFRQAFhUYABYVIAAWFSQAFhcQABYXGAAWFyQAFhcsABYXOAAWFzwAFhdAABYXRAAWF0gAFhdQABYXWAAWF1wAFhdgABYXaAAWF2wAFhfQABYX1AAWF9gAFhfgABYZzAAWGdQAFhncABYZ5AAWGfAAFhn0ABYZ+AAWGfwAFhoAABYaCAAWGhAAFhoUABYaGAAWGiAAFhokABYcEAAWHBgAFhwkABYcLAAWHDgAFhw8ABYcQAAWHEQAFhxIABYcUAAWHFgAFhxcABYcYAAWHGgAFhxsABYc5AAWHUgAFh2cABYdqAAWHbQAFh3AABYdzAAWHdgAFh4sABYeOAAWHkQAFh5QABYeXAAWHmgAFh5wABYe8AAWHywAFh90ABYfpAAWIAAAFiJMABYi2AAWI1gAFiPYABYj4AAWI+gAFiPwABYj+AAWJAQAFiQIABYkDAAWJBgAFiQcABYkJAAWJCgAFiQwABYkPAAWJEAAFiREABYkUAAWJFQAFiRoABYkzAAWJPAAFiT4ABYlAAAWJSQAFiUwABYlPAAWJUQAFiZoABYm+AAWJ5QAFigkABYoMAAWKDgAFihAABYoSAAWKFAAFihYABYoXAAWKGgAFijMABYpUAAWKVgAFilgABYpaAAWKXAAFil4ABYpgAAWKYgAFimQABYqFAAWKiAAFiosABYqOAAWKkQAFipQABYqXAAWKmgAFip0ABYqfAAWLGgAFixwABYseAAWLIAAFiyMABYskAAWLJQAFiyYABYsnAAWLKQAFiysABYssAAWLLQAFiy8ABYswAAWLqwAFi60ABYuvAAWLsQAFi7QABYu1AAWLtgAFi7cABYu4AAWLugAFi7wABYu9AAWLvgAFi8AABYvBAAWMPAAFjD4ABYxBAAWMQwAFjEYABYxHAAWMSAAFjEkABYxKAAWMTAAFjE4ABYxPAAWMUAAFjFIABYxTAAWMbAAFjG0ABYxuAAWMcAAFjOsABYztAAWM7wAFjPEABYz0AAWM9QAFjPYABYz3AAWM+AAFjPoABYz8AAWM/QAFjP4ABY0AAAWNAQAFjXwABY1+AAWNgAAFjYIABY2FAAWNhgAFjYcABY2IAAWNiQAFjYsABY2NAAWNjgAFjY8ABY2RAAWNkgAFjg0ABY4PAAWOEQAFjhMABY4WAAWOFwAFjhgABY4ZAAWOGgAFjhwABY4eAAWOHwAFjiAABY4iAAWOIwAFjp4ABY6gAAWOogAFjqQABY6nAAWOqAAFjqkABY6qAAWOqwAFjq0ABY6vAAWOsAAFjrEABY6zAAWOtAAFjy8ABY8xAAWPMwAFjzUABY84AAWPOQAFjzoABY87AAWPPAAFjz4ABY9AAAWPQQAFj0IABY9EAAWPRQAFj44ABY+yAAWP2QAFj/0ABZAAAAWQAgAFkAQABZAGAAWQCAAFkAoABZALAAWQDgAFkCcABZBEAAWQRgAFkEgABZBKAAWQTAAFkE4ABZBQAAWQUgAFkG8ABZByAAWQdQAFkHgABZB7AAWQfgAFkIEABZCEAAWQhgAFkQEABZEDAAWRBQAFkQcABZEKAAWRCwAFkQwABZENAAWRDgAFkRAABZESAAWREwAFkRQABZEWAAWRFwAFkZIABZGUAAWRlgAFkZgABZGbAAWRnAAFkZ0ABZGeAAWRnwAFkaEABZGjAAWRpAAFkaUABZGnAAWRqAAFkiMABZIlAAWSJwAFkikABZIsAAWSLQAFki4ABZIvAAWSMAAFkjIABZI0AAWSNQAFkjYABZI4AAWSOQAFkrQABZK2AAWSuQAFkrsABZK+AAWSvwAFksAABZLBAAWSwgAFksQABZLGAAWSxwAFksgABZLKAAWSywAFk0YABZNIAAWTSgAFk0wABZNPAAWTUAAFk1EABZNSAAWTUwAFk1UABZNXAAWTWAAFk1kABZNbAAWTXAAFk9cABZPZAAWT2wAFk90ABZPgAAWT4QAFk+IABZPjAAWT5AAFk+YABZPoAAWT6QAFk+oABZPsAAWT7QAFlGgABZRqAAWUbAAFlG4ABZRxAAWUcgAFlHMABZR0AAWUdQAFlHcABZR5AAWUegAFlHsABZR9AAWUfgAFlREABZU0AAWVVAAFlXQABZV2AAWVeAAFlXoABZV8AAWVfwAFlYAABZWBAAWVhAAFlYUABZWHAAWViAAFlYoABZWNAAWVjgAFlY8ABZWSAAWVkwAFlZgABZWxAAWVugAFlbwABZW+AAWVxwAFlcoABZXNAAWVzwAFlhgABZY8AAWWYwAFlocABZaKAAWWjAAFlo4ABZaQAAWWkgAFlpQABZaVAAWWmAAFlrEABZbSAAWW1AAFltYABZbYAAWW2gAFltwABZbeAAWW4AAFluIABZcDAAWXBgAFlwkABZcMAAWXDwAFlxIABZcVAAWXGAAFlxsABZcdAAWXmAAFl5oABZecAAWXngAFl6EABZeiAAWXowAFl6QABZelAAWXpwAFl6kABZeqAAWXqwAFl60ABZeuAAWYKQAFmCsABZgtAAWYLwAFmDIABZgzAAWYNAAFmDUABZg2AAWYOAAFmDoABZg7AAWYPAAFmD4ABZg/AAWYugAFmLwABZi/AAWYwQAFmMQABZjFAAWYxgAFmMcABZjIAAWYygAFmMwABZjNAAWYzgAFmNAABZjRAAWY6gAFmOsABZjsAAWY7gAFmWkABZlrAAWZbQAFmW8ABZlyAAWZcwAFmXQABZl1AAWZdgAFmXgABZl6AAWZewAFmXwABZl+AAWZfwAFmfoABZn8AAWZ/gAFmgAABZoDAAWaBAAFmgUABZoGAAWaBwAFmgkABZoLAAWaDAAFmg0ABZoPAAWaEAAFmosABZqNAAWajwAFmpEABZqUAAWalQAFmpYABZqXAAWamAAFmpoABZqcAAWanQAFmp4ABZqgAAWaoQAFmxwABZseAAWbIAAFmyIABZslAAWbJgAFmycABZsoAAWbKQAFmysABZstAAWbLgAFmy8ABZsxAAWbMgAFm60ABZuvAAWbsQAFm7MABZu2AAWbtwAFm7gABZu5AAWbugAFm7wABZu+AAWbvwAFm8AABZvCAAWbwwAFnAwABZwwAAWcVwAFnHsABZx+AAWcgAAFnIIABZyEAAWchgAFnIgABZyJAAWcjAAFnKUABZzCAAWcxAAFnMYABZzIAAWcygAFnMwABZzOAAWc0AAFnO0ABZzwAAWc8wAFnPYABZz5AAWc/AAFnP8ABZ0CAAWdBAAFnX8ABZ2BAAWdgwAFnYUABZ2IAAWdiQAFnYoABZ2LAAWdjAAFnY4ABZ2QAAWdkQAFnZIABZ2UAAWdlQAFnhAABZ4SAAWeFAAFnhYABZ4ZAAWeGgAFnhsABZ4cAAWeHQAFnh8ABZ4hAAWeIgAFniMABZ4lAAWeJgAFnqEABZ6jAAWepQAFnqcABZ6qAAWeqwAFnqwABZ6tAAWergAFnrAABZ6yAAWeswAFnrQABZ62AAWetwAFnzIABZ80AAWfNwAFnzkABZ88AAWfPQAFnz4ABZ8/AAWfQAAFn0IABZ9EAAWfRQAFn0YABZ9IAAWfSQAFn8QABZ/GAAWfyAAFn8oABZ/NAAWfzgAFn88ABZ/QAAWf0QAFn9MABZ/VAAWf1gAFn9cABZ/ZAAWf2gAFoFUABaBXAAWgWQAFoFsABaBeAAWgXwAFoGAABaBhAAWgYgAFoGQABaBmAAWgZwAFoGgABaBqAAWgawAFoOY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ABbKDAAWyhAAFsoUABbKGAAWyhwAFsokABbKLAAWyjAAFso0ABbKPAAWykAAFswsABbMNAAWzDwAFsxEABbMUAAWzFQAFsxYABbMXAAWzGAAFsxoABbMcAAWzHQAFsx4ABbMgAAWzIQAFs5wABbOeAAWzoAAFs6IABbOlAAWzpgAFs6cABbOoAAWzqQAFs6sABbOtAAWzrgAFs68ABbOxAAWzsgAFtC0ABbQvAAW0MQAFtDMABbQ2AAW0NwAFtDgABbQ5AAW0OgAFtDwABbQ+AAW0PwAFtEAABbRCAAW0QwAFtL4ABbTAAAW0wgAFtMQABbTHAAW0yAAFtMkABbTKAAW0ywAFtM0ABbTPAAW00AAFtNEABbTTAAW01AAFtR0ABbVBAAW1aAAFtYwABbWPAAW1kQAFtZMABbWVAAW1lwAFtZkABbWaAAW1nQAFtbYABbXTAAW11QAFtdcABbXZAAW12wAFtd0ABbXfAAW14QAFtf4ABbYBAAW2BAAFtgcABbYKAAW2DQAFthAABbYTAAW2FQAFtpAABbaSAAW2lAAFtpYABbaZAAW2mgAFtpsABbacAAW2nQAFtp8ABbahAAW2ogAFtqMABbalAAW2pgAFtyEABbcjAAW3JQAFtycABbcqAAW3KwAFtywABbctAAW3LgAFtzAABbcyAAW3MwAFtzQABbc2AAW3NwAFt7IABbe0AAW3tgAFt7gABbe7AAW3vAAFt70ABbe+AAW3vwAFt8EABbfDAAW3xAAFt8UABbfHAAW3yAAFuEMABbhFAAW4SAAFuEoABbhNAAW4TgAFuE8ABbhQAAW4UQAFuFMABbhVAAW4VgAFuFcABbhZAAW4WgAFuNUABbjXAAW42QAFuNsABbjeAAW43wAFuOAABbjhAAW44gAFuOQABbjmAAW45wAFuOgABbjqAAW46wAFuWYABbloAAW5agAFuWwABblvAAW5cAAFuXEABblyAAW5cwAFuXUABbl3AAW5eAAFuXkABbl7AAW5fAAFufcABbn5AAW5+wAFuf0ABboAAAW6AQAFugIABboDAAW6BAAFugYABboIAAW6CQAFugoABboMAAW6DQAFuqAABbrDAAW64wAFuwMABbsFAAW7BwAFuwkABbsLAAW7DgAFuw8ABbsQAAW7EwAFuxQABbsWAAW7FwAFuxkABbscAAW7HQAFux4ABbshAAW7IgAFuycABbtAAAW7SQAFu0sABbtNAAW7VgAFu1kABbtcAAW7XgAFu6cABbvLAAW78gAFvBYABbwZAAW8GwAFvB0ABbwfAAW8IQAFvCMABbwkAAW8JwAFvEAABbxhAAW8YwAFvGUABbxnAAW8aQAFvGsABbxtAAW8bwAFvHEABbySAAW8lQAFvJgABbybAAW8ngAFvKEABbykAAW8pwAFvKoABbysAAW9JwAFvSkABb0rAAW9LQAFvTAABb0xAAW9MgAFvTMABb00AAW9NgAFvTgABb05AAW9OgAFvTwABb09AAW9uAAFvboABb28AAW9vgAFvcEABb3CAAW9wwAFvcQABb3FAAW9xwAFvckABb3KAAW9ywAFvc0ABb3OAAW+SQAFvksABb5OAAW+UAAFvlMABb5UAAW+VQAFvlYABb5XAAW+WQAFvlsABb5cAAW+XQAFvl8ABb5gAAW+eQAFvnoABb57AAW+fQAFvvgABb76AAW+/AAFvv4ABb8BAAW/AgAFvwMABb8EAAW/BQAFvwcABb8JAAW/CgAFvwsABb8NAAW/DgAFv4kABb+LAAW/jQAFv48ABb+SAAW/kwAFv5QABb+VAAW/lgAFv5gABb+aAAW/mwAFv5wABb+eAAW/nwAFwBoABcAcAAXAHgAFwCAABcAjAAXAJAAFwCUABcAmAAXAJwAFwCkABcArAAXALAAFwC0ABcAvAAXAMAAFwKsABcCtAAXArwAFwLEABcC0AAXAtQAFwLYABcC3AAXAuAAFwLoABcC8AAXAvQAFwL4ABcDAAAXAwQAFwTwABcE+AAXBQAAFwUIABcFFAAXBRgAFwUcABcFIAAXBSQAFwUsABcFNAAXBTgAFwU8ABcFRAAXBUgAFwZsABcG/AAXB5gAFwgoABcINAAXCDwAFwhEABcITAAXCFQAFwhcABcIYAAXCGwAFwjQABcJRAAXCUwAFwlUABcJXAAXCWQAFwlsABcJdAAXCXwAFwnwABcJ/AAXCggAFwoUABcKIAAXCiwAFwo4ABcKRAAXCkwAFww4ABcMQAAXDEgAFwxQABcMXAAXDGAAFwxkABcMaAAXDGwAFwx0ABcMfAAXDIAAFwyEABcMjAAXDJAAFw58ABcOhAAXDowAFw6UABcOoAAXDqQAFw6oABcOrAAXDrAAFw64ABcOwAAXDsQAFw7IABcO0AAXDtQAFxDAABcQyAAXENAAFxDYABcQ5AAXEOgAFxDsABcQ8AAXEPQAFxD8ABcRBAAXEQgAFxEMABcRFAAXERgAFxMEABcTDAAXExgAFxMgABcTLAAXEzAAFxM0ABcTOAAXEzwAFxNEABcTTAAXE1AAFxNUABcTXAAXE2AAFxVMABcVVAAXFVwAFxVkABcVcAAXFXQAFxV4ABcVfAAXFYAAFxWIABcVkAAXFZQAFxWYABcVoAAXFaQAFxeQABcXmAAXF6AAFxeoABcXtAAXF7gAFxe8ABcXwAAXF8QAFxfMABcX1AAXF9gAFxfcABcX5AAXF+gAFxnUABcZ3AAXGeQAFxnsABcZ+AAXGfwAFxoAABcaBAAXGggAFxoQABcaGAAXGhwAFxogABcaKAAXGiwAFxpwABcadAAXGnwAFxxoABcccAAXHHgAFxyAABccjAAXHJAAFxyUABccmAAXHJwAFxykABccsAAXHLQAFxy4ABccwAAXHMQAFx6wABceuAAXHsAAFx7IABce1AAXHtgAFx7cABce4AAXHuQAFx7sABce+AAXHvwAFx8AABcfCAAXHwwAFyD4ABchAAAXIQwAFyEUABchIAAXISQAFyEoABchLAAXITAAFyE4ABchRAAXIUgAFyFMABchVAAXIVgAFyOkABckMAAXJLAAFyUwABclOAAXJUAAFyVIABclUAAXJVwAFyVgABclZAAXJXAAFyV0ABclfAAXJYAAFyWIABcllAAXJZgAFyWcABclqAAXJawAFyXAABcmJAAXJkgAFyZQABcmWAAXJnwAFyaIABcmlAAXJpwAFyfAABcoUAAXKOwAFyl8ABcpiAAXKZAAFymYABcpoAAXKagAFymwABcptAAXKcAAFyokABcqqAAXKrAAFyq4ABcqwAAXKsgAFyrQABcq2AAXKuAAFyroABcrbAAXK3gAFyuEABcrkAAXK5wAFyuoABcrtAAXK8AAFyvMABcr1AAXLcAAFy3IABct0AAXLdgAFy3kABct6AAXLewAFy3wABct9AAXLfwAFy4EABcuCAAXLgwAFy4UABcuGAAXMAQAFzAMABcwFAAXMBwAFzAoABcwLAAXMDAAFzA0ABcwOAAXMEAAFzBIABcwTAAXMFAAFzBYABcwXAAXMkgAFzJQABcyXAAXMmQAFzJwABcydAAXMngAFzJ8ABcygAAXMogAFzKQABcylAAXMpgAFzKgABcypAAXMwgAFzMMABczEAAXMxgAFzUEABc1DAAXNRQAFzUcABc1KAAXNSwAFzUwABc1NAAXNTgAFzVAABc1SAAXNUwAFzVQABc1WAAXNVwAFzdIABc3UAAXN1gAFzdgABc3bAAXN3AAFzd0ABc3eAAXN3wAFzeEABc3jAAXN5AAFzeUABc3nAAXN6AAFzmMABc5lAAXOZwAFzmkABc5sAAXObQAFzm4ABc5vAAXOcAAFznIABc50AAXOdQAFznYABc54AAXOeQAFzvQABc72AAXO+AAFzvoABc79AAXO/gAFzv8ABc8AAAXPAQAFzwMABc8FAAXPBgAFzwcABc8JAAXPCgAFz4UABc+HAAXPiQAFz4sABc+OAAXPjwAFz5AABc+RAAXPkgAFz5QABc+WAAXPlwAFz5gABc+aAAXPmwAFz+QABdAIAAXQLwAF0FMABdBWAAXQWAAF0FoABdBcAAXQXgAF0GAABdBhAAXQZAAF0H0ABdCaAAXQnAAF0J4ABdCgAAXQogAF0KQABdCmAAXQqAAF0MUABdDIAAXQywAF0M4ABdDRAAXQ1AAF0NcABdDaAAXQ3AAF0VcABdFZAAXRWwAF0V0ABdFgAAXRYQAF0WIABdFjAAXRZAAF0WYABdFoAAXRaQAF0WoABdFsAAXRbQAF0egABdHqAAXR7AAF0e4ABdHxAAXR8gAF0fMABdH0AAXR9QAF0fcABdH5AAXR+gAF0fsABdH9AAXR/gAF0nkABdJ7AAXSfQAF0n8ABdKCAAXSgwAF0oQABdKFAAXShgAF0ogABdKKAAXSiwAF0owABdKOAAXSjwAF0woABdMMAAXTDwAF0xEABdMUAAXTFQAF0xYABdMXAAXTGAAF0xoABdMcAAXTHQAF0x4ABdMgAAXTIQAF05wABdOeAAXToAAF06IABdOlAAXTpgAF06cABdOoAAXTqQAF06sABdOtAAXTrgAF068ABdOxAAXTsgAF1C0ABdQvAAXUMQAF1DMABdQ2AAXUNwAF1DgABdQ5AAXUOgAF1DwABdQ+AAXUPwAF1EAABdRCAAXUQwAF1L4ABdTAAAXUwgAF1MQABdTHAAXUyAAF1MkABdTKAAXUywAF1M0ABdTPAAXU0AAF1NEABdTTAAXU1AAF1WcABdWKAAXVqgAF1coABdXMAAXVzgAF1dAABdXSAAXV1QAF1dYABdXXAAXV2gAF1dsABdXdAAXV3gAF1eAABdXjAAXV5AAF1eUABdXoAAXV6QAF1e4ABdYHAAXWEAAF1hIABdYUAAXWHQAF1iAABdYjAAXWJQAF1m4ABdaSAAXWuQAF1t0ABdbgAAXW4gAF1uQABdbmAAXW6AAF1uoABdbrAAXW7gAF1wcABdcoAAXXKgAF1ywABdcuAAXXMAAF1zIABdc0AAXXNgAF1zgABddZAAXXXAAF118ABddiAAXXZQAF12gABddrAAXXbgAF13EABddzAAXX7gAF1/AABdfyAAXX9AAF1/cABdf4AAXX+QAF1/oABdf7AAXX/QAF1/8ABdgAAAXYAQAF2AMABdgEAAXYfwAF2IEABdiDAAXYhQAF2IgABdiJAAXYigAF2IsABdiMAAXYjgAF2JAABdiRAAXYkgAF2JQABdiVAAXZEAAF2RIABdkVAAXZFwAF2RoABdkbAAXZHAAF2R0ABdkeAAXZIAAF2SIABdkjAAXZJAAF2SYABdknAAXZQAAF2UEABdlCAAXZRAAF2b8ABdnBAAXZwwAF2cUABdnIAAXZyQAF2coABdnLAAXZzAAF2c4ABdnQAAXZ0QAF2dIABdnUAAXZ1QAF2lAABdpSAAXaVAAF2lYABdpZAAXaWgAF2lsABdpcAAXaXQAF2l8ABdphAAXaYgAF2mMABdplAAXaZgAF2uEABdrjAAXa5QAF2ucABdrqAAXa6wAF2uwABdrtAAXa7gAF2vAABdryAAXa8wAF2vQABdr2AAXa9wAF23IABdt0AAXbdgAF23gABdt7AAXbfAAF230ABdt+AAXbfwAF24EABduDAAXbhAAF24UABduHAAXbiAAF3AMABdwFAAXcBwAF3AkABdwMAAXcDQAF3A4ABdwPAAXcEAAF3BIABdwUAAXcFQAF3BYABdwYAAXcGQAF3GIABdyGAAXcrQAF3NEABdzUAAXc1gAF3NgABdzaAAXc3AAF3N4ABdzfAAXc4gAF3PsABd0YAAXdGgAF3RwABd0eAAXdIAAF3SIABd0kAAXdJgAF3UMABd1GAAXdSQAF3UwABd1PAAXdUgAF3VUABd1YAAXdWgAF3dUABd3XAAXd2QAF3dsABd3eAAXd3wAF3eAABd3hAAXd4gAF3eQABd3mAAXd5wAF3egABd3qAAXd6wAF3mYABd5oAAXeagAF3mwABd5vAAXecAAF3nEABd5yAAXecwAF3nUABd53AAXeeAAF3nkABd57AAXefAAF3vcABd75AAXe+wAF3v0ABd8AAAXfAQAF3wIABd8DAAXfBAAF3wYABd8IAAXfCQAF3woABd8MAAXfDQAF34gABd+KAAXfjAAF344ABd+RAAXfkgAF35MABd+UAAXflQAF35cABd+ZAAXfmgAF35sABd+dAAXfngAF4BkABeAbAAXgHQAF4B8ABeAiAAXgIwAF4CQABeAlAAXgJgAF4CgABeAqAAXgKwAF4CwABeAuAAXgLwAF4KoABeCsAAXgrgAF4LAABeCzAAXgtAAF4LUABeC2AAXgtwAF4LkABeC7AAXgvAAF4L0ABeC/AAXgwAAF4TsABeE9AAXhPwAF4UEABeFEAAXhRQAF4UYABeFHAAXhSAAF4UoABeFMAAXhTQAF4U4ABeFQAAXhUQAF4eQABeIHAAXiJwAF4kcABeJJAAXiSwAF4k0ABeJPAAXiUgAF4lMABeJUAAXiVwAF4lgABeJaAAXiWwAF4l0ABeJgAAXiYQAF4mIABeJlAAXiZgAF4msABeKEAAXijQAF4o8ABeKRAAXimgAF4p0ABeKgAAXiogAF4usABeMPAAXjNgAF41oABeNdAAXjXwAF42EABeNjAAXjZQAF42cABeNoAAXjawAF44QABeOlAAXjpwAF46kABeOrAAXjrQAF468ABeOxAAXjswAF47UABePWAAXj2QAF49wABePfAAXj4gAF4+UABePoAAXj6wAF4+4ABePwAAXkawAF5G0ABeRvAAXkcQAF5HQABeR1AAXkdgAF5HcABeR4AAXkegAF5HwABeR9AAXkfgAF5IAABeSBAAXk/AAF5P4ABeUAAAXlAgAF5QUABeUGAAXlBwAF5QgABeUJAAXlCwAF5Q0ABeUOAAXlDwAF5REABeUSAAXljQAF5Y8ABeWSAAXllAAF5ZcABeWYAAXlmQAF5ZoABeWbAAXlnQAF5Z8ABeWgAAXloQAF5aMABeWkAAXlvQAF5b4ABeW/AAXlwQAF5jwABeY+AAXmQAAF5kIABeZFAAXmRgAF5kcABeZIAAXmSQAF5ksABeZNAAXmTgAF5k8ABeZRAAXmUgAF5s0ABebPAAXm0QAF5tMABebWAAXm1wAF5tgABebZAAXm2gAF5twABebeAAXm3wAF5uAABebiAAXm4wAF514ABedgAAXnYgAF52QABednAAXnaAAF52kABedqAAXnawAF520ABedvAAXncAAF53EABedzAAXndAAF5+8ABefxAAXn8wAF5/UABef4AAXn+QAF5/oABef7AAXn/AAF5/4ABegAAAXoAQAF6AIABegEAAXoBQAF6IAABeiCAAXohAAF6IYABeiJAAXoigAF6IsABeiMAAXojQAF6I8ABeiRAAXokgAF6JMABeiVAAXolgAF6N8ABekDAAXpKgAF6U4ABelRAAXpUwAF6VUABelXAAXpWQAF6VsABelcAAXpXwAF6XgABemVAAXplwAF6ZkABembAAXpnQAF6Z8ABemhAAXpowAF6cAABenDAAXpxgAF6ckABenMAAXpzwAF6dIABenVAAXp1wAF6lIABepUAAXqVgAF6lgABepbAAXqXAAF6l0ABepeAAXqXwAF6mEABepjAAXqZAAF6mUABepnAAXqaAAF6uMABerlAAXq5wAF6ukABersAAXq7QAF6u4ABervAAXq8AAF6vIABer0AAXq9QAF6vYABer4AAXq+QAF63QABet2AAXreAAF63oABet9AAXrfgAF638ABeuAAAXrgQAF64MABeuFAAXrhgAF64cABeuJAAXrigAF7AUABewHAAXsCgAF7AwABewPAAXsEAAF7BEABewSAAXsEwAF7BUABewXAAXsGAAF7BkABewbAAXsHAAF7JcABeyZAAXsmwAF7J0ABeygAAXsoQAF7KIABeyjAAXspAAF7KYABeyoAAXsqQAF7KoABeysAAXsrQAF7SgABe0qAAXtLAAF7S4ABe0xAAXtMgAF7TMABe00AAXtNQAF7TcABe05AAXtOgAF7TsABe09AAXtPgAF7bkABe27AAXtvQAF7b8ABe3CAAXtwwAF7cQABe3FAAXtxgAF7cgABe3KAAXtywAF7cwABe3OAAXtzwAF7mIABe6FAAXupQAF7sUABe7HAAXuyQAF7ssABe7NAAXu0AAF7tEABe7SAAXu1QAF7tYABe7YAAXu2QAF7tsABe7eAAXu3wAF7uAABe7jAAXu5AAF7ukABe8CAAXvCwAF7w0ABe8PAAXvGAAF7xsABe8eAAXvIAAF72kABe+NAAXvtAAF79gABe/bAAXv3QAF798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ABgD8AAYA/QAGAP4ABgEAAAYBAQAGAXwABgF+AAYBgAAGAYIABgGFAAYBhgAGAYcABgGIAAYBiQAGAYsABgGNAAYBjgAGAY8ABgGRAAYBkgAGAdsABgH/AAYCJgAGAkoABgJNAAYCTwAGAlEABgJTAAYCVQAGAlcABgJYAAYCWwAGAnQABgKRAAYCkwAGApUABgKXAAYCmQAGApsABgKdAAYCnwAGArwABgK/AAYCwgAGAsUABgLIAAYCywAGAs4ABgLRAAYC0wAGA04ABgNQAAYDUgAGA1QABgNXAAYDWAAGA1kABgNaAAYDWwAGA10ABgNfAAYDYAAGA2EABgNjAAYDZAAGA98ABgPhAAYD4wAGA+UABgPoAAYD6QAGA+oABgPrAAYD7AAGA+4ABgPwAAYD8QAGA/IABgP0AAYD9QAGBHAABgRyAAYEdAAGBHYABgR5AAYEegAGBHsABgR8AAYEfQAGBH8ABgSBAAYEggAGBIMABgSFAAYEhgAGBQEABgUDAAYFBgAGBQgABgULAAYFDAAGBQ0ABgUOAAYFDwAGBREABgUTAAYFFAAGBRUABgUXAAYFGAAGBZMABgWVAAYFlwAGBZkABgWcAAYFnQAGBZ4ABgWfAAYFoAAGBaIABgWkAAYFpQAGBaYABgWoAAYFqQAGBiQABgYmAAYGKAAGBioABgYtAAYGLgAGBi8ABgYwAAYGMQAGBjMABgY1AAYGNgAGBjcABgY5AAYGOgAGBrUABga3AAYGuQAGBrsABga+AAYGvwAGBsAABgbBAAYGwgAGBsQABgbGAAYGxwAGBsgABgbKAAYGywAGB14ABgeBAAYHoQAGB8EABgfDAAYHxQAGB8cABgfJAAYHzAAGB80ABgfOAAYH0QAGB9IABgfUAAYH1QAGB9cABgfaAAYH2wAGB9wABgffAAYH4AAGB+UABgf+AAYIBwAGCAkABggLAAYIFAAGCBcABggaAAYIHAAGCGUABgiJAAYIsAAGCNQABgjXAAYI2QAGCNsABgjdAAYI3wAGCOEABgjiAAYI5QAGCP4ABgkfAAYJIQAGCSMABgklAAYJJwAGCSkABgkrAAYJLQAGCS8ABglQAAYJUwAGCVYABglZAAYJXAAGCV8ABgliAAYJZQAGCWgABglqAAYJ5QAGCecABgnpAAYJ6wAGCe4ABgnvAAYJ8AAGCfE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ABiQWAAYkFwAGJBkABiQaAAYkMwAGJDQABiQ1AAYkNwAGJLIABiS0AAYktgAGJLgABiS7AAYkvAAGJL0ABiS+AAYkvwAGJMEABiTDAAYkxAAGJMUABiTHAAYkyAAGJUMABiVFAAYlRwAGJUkABiVMAAYlTQAGJU4ABiVPAAYlUAAGJVIABiVUAAYlVQAGJVYABiVYAAYlWQAGJdQABiXWAAYl2AAGJdoABiXdAAYl3gAGJd8ABiXgAAYl4QAGJeMABiXlAAYl5gAGJecABiXpAAYl6gAGJmUABiZnAAYmaQAGJmsABiZuAAYmbwAGJnAABiZxAAYmcgAGJnQABiZ2AAYmdwAGJngABiZ6AAYmewAGJvYABib4AAYm+gAGJvwABib/AAYnAAAGJwEABicCAAYnAwAGJwUABicHAAYnCAAGJwkABicLAAYnDAAGJ1UABid5AAYnoAAGJ8QABifHAAYnyQAGJ8sABifNAAYnzwAGJ9EABifSAAYn1QAGJ+4ABigLAAYoDQAGKA8ABigRAAYoEwAGKBUABigXAAYoGQAGKDYABig5AAYoPAAGKD8ABihCAAYoRQAGKEgABihLAAYoTQAGKMgABijKAAYozAAGKM4ABijRAAYo0gAGKNMABijUAAYo1QAGKNcABijZAAYo2gAGKNsABijdAAYo3gAGKVkABilbAAYpXQAGKV8ABiliAAYpYwAGKWQABillAAYpZgAGKWgABilqAAYpawAGKWwABiluAAYpbwAGKeoABinsAAYp7gAGKfAABinzAAYp9AAGKfUABin2AAYp9wAGKfkABin7AAYp/AAGKf0ABin/AAYqAAAGKnsABip9AAYqgAAGKoIABiqFAAYqhgAGKocABiqIAAYqiQAGKosABiqNAAYqjgAGKo8ABiqRAAYqkgAGKw0ABisPAAYrEQAGKxMABisWAAYrFwAGKxgABisZAAYrGgAGKxwABiseAAYrHwAGKyAABisiAAYrIwAGK54ABiugAAYrogAGK6QABiunAAYrqAAGK6kABiuqAAYrqwAGK60ABiuvAAYrsAAGK7EABiuzAAYrtAAGLC8ABiwxAAYsMwAGLDUABiw4AAYsOQAGLDoABiw7AAYsPAAGLD4ABixAAAYsQQAGLEIABixEAAYsRQAGLNgABiz7AAYtGwAGLTsABi09AAYtPwAGLUEABi1DAAYtRgAGLUcABi1IAAYtSwAGLUwABi1OAAYtTwAGLVEABi1UAAYtVQAGLVYABi1ZAAYtWgAGLV8ABi14AAYtgQAGLYMABi2FAAYtjgAGLZEABi2UAAYtlgAGLd8ABi4DAAYuKgAGLk4ABi5RAAYuUwAGLlUABi5XAAYuWQAGLlsABi5cAAYuXwAGLngABi6ZAAYumwAGLp0ABi6fAAYuoQAGLqMABi6lAAYupwAGLqkABi7KAAYuzQAGLtAABi7TAAYu1gAGLtkABi7cAAYu3wAGLuIABi7kAAYvXwAGL2EABi9jAAYvZQAGL2gABi9pAAYvagAGL2sABi9sAAYvbgAGL3AABi9xAAYvcgAGL3QABi91AAYv8AAGL/IABi/0AAYv9gAGL/kABi/6AAYv+wAGL/wABi/9AAYv/wAGMAEABjACAAYwAwAGMAUABjAGAAYwgQAGMIMABjCGAAYwiAAGMIsABjCMAAYwjQAGMI4ABjCPAAYwkQAGMJMABjCUAAYwlQAGMJcABjCYAAYwsQAGMLIABjCzAAYwtQAGMTAABjEyAAYxNAAGMTYABjE5AAYxOgAGMTsABjE8AAYxPQAGMT8ABjFBAAYxQgAGMUMABjFFAAYxRgAGMcEABjHDAAYxxQAGMccABjHKAAYxywAGMcwABjHNAAYxzgAGMdAABjHSAAYx0wAGMdQABjHWAAYx1wAGMlIABjJUAAYyVgAGMlgABjJbAAYyXAAGMl0ABjJeAAYyXwAGMmEABjJjAAYyZAAGMmUABjJnAAYyaAAGMuMABjLlAAYy5wAGMukABjLsAAYy7QAGMu4ABjLvAAYy8AAGMvIABjL0AAYy9QAGMvYABjL4AAYy+QAGM3QABjN2AAYzeAAGM3oABjN9AAYzfgAGM38ABjOAAAYzgQAGM4MABjOFAAYzhgAGM4cABjOJAAYzigAGM9MABjP3AAY0HgAGNEIABjRFAAY0RwAGNEkABjRLAAY0TQAGNE8ABjRQAAY0UwAGNGwABjSJAAY0iwAGNI0ABjSPAAY0kQAGNJMABjSVAAY0lwAGNLQABjS3AAY0ugAGNL0ABjTAAAY0wwAGNMYABjTJAAY0ywAGNUYABjVIAAY1SgAGNUwABjVPAAY1UAAGNVEABjVSAAY1UwAGNVUABjVXAAY1WAAGNVkABjVbAAY1XAAGNdcABjXZAAY12wAGNd0ABjXgAAY14QAGNeIABjXjAAY15AAGNeYABjXoAAY16QAGNeoABjXsAAY17QAGNmgABjZqAAY2bAAGNm4ABjZxAAY2cgAGNnMABjZ0AAY2dQAGNncABjZ5AAY2egAGNnsABjZ9AAY2fgAGNvkABjb7AAY2/gAGNwAABjcDAAY3BAAGNwUABjcGAAY3BwAGNwkABjcLAAY3DAAGNw0ABjcPAAY3EAAGN4sABjeNAAY3jwAGN5EABjeUAAY3lQAGN5YABjeXAAY3mAAGN5oABjecAAY3nQAGN54ABjegAAY3oQAGOBwABjgeAAY4IAAGOCIABjglAAY4JgAGOCcABjgoAAY4KQAGOCsABjgtAAY4LgAGOC8ABjgxAAY4MgAGOK0ABjivAAY4sQAGOLMABji2AAY4twAGOLgABji5AAY4ugAGOLwABji+AAY4vwAGOMAABjjCAAY4wwAGOVYABjl5AAY5mQAGObkABjm7AAY5vQAGOb8ABjnBAAY5xAAGOcUABjnGAAY5yQAGOcoABjnMAAY5zQAGOdAABjnTAAY51AAGOdUABjnYAAY52QAGOd4ABjn3AAY6AAAGOgIABjoFAAY6DgAGOhEABjoUAAY6FgAGOl8ABjqDAAY6qgAGOs4ABjrRAAY60wAGOtUABjrXAAY62QAGOtsABjrcAAY63wAGOvgABjsZAAY7GwAGOx0ABjsfAAY7IQAGOyMABjslAAY7JwAGOykABjtKAAY7TQAGO1AABjtTAAY7VgAGO1kABjtcAAY7XwAGO2IABjtkAAY73wAGO+EABjvjAAY75QAGO+gABjvpAAY76gAGO+sABjvsAAY77gAGO/AABjvxAAY78gAGO/QABjv1AAY8cAAGPHIABjx0AAY8dgAGPHkABjx6AAY8ewAGPHwABjx9AAY8fwAGPIEABjyCAAY8gwAGPIUABjyGAAY9AQAGPQMABj0GAAY9CAAGPQsABj0MAAY9DQAGPQ4ABj0PAAY9EQAGPRMABj0UAAY9FQAGPRcABj0YAAY9MQAGPTIABj0zAAY9NQAGPbAABj2yAAY9tAAGPbYABj25AAY9ugAGPbsABj28AAY9vQAGPb8ABj3BAAY9wgAGPcMABj3FAAY9xgAGPkEABj5DAAY+RQAGPkcABj5KAAY+SwAGPkwABj5NAAY+TgAGPlA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ABlDbAAZQ3gAGUOEABlDkAAZQ5wAGUOoABlDtAAZQ7wAGUWoABlFsAAZRbgAGUXAABlFzAAZRdAAGUXUABlF2AAZRdwAGUXkABlF7AAZRfAAGUX0ABlF/AAZRgAAGUfsABlH9AAZR/wAGUgEABlIEAAZSBQAGUgYABlIHAAZSCAAGUgoABlIMAAZSDQAGUg4ABlIQAAZSEQAGUowABlKOAAZSkQAGUpMABlKWAAZSlwAGUpgABlKZAAZSmgAGUpwABlKeAAZSnwAGUqAABlKiAAZSowAGUrwABlK9AAZSvgAGUsAABlM7AAZTPQAGUz8ABlNBAAZTRAAGU0UABlNGAAZTRwAGU0gABlNKAAZTTAAGU00ABlNOAAZTUAAGU1EABlPMAAZTzgAGU9AABlPSAAZT1QAGU9YABlPXAAZT2AAGU9kABlPbAAZT3QAGU94ABlPfAAZT4QAGU+IABlRdAAZUXwAGVGEABlRjAAZUZgAGVGcABlRoAAZUaQAGVGoABlRsAAZUbgAGVG8ABlRwAAZUcgAGVHMABlTuAAZU8AAGVPIABlT0AAZU9wAGVPgABlT5AAZU+gAGVPsABlT9AAZU/wAGVQAABlUBAAZVAwAGVQQABlV/AAZVgQAGVYMABlWFAAZViAAGVYkABlWKAAZViwAGVYwABlWOAAZVkAAGVZEABlWSAAZVlAAGVZUABlXeAAZWAgAGVikABlZNAAZWUAAGVlMABlZVAAZWVwAGVlkABlZbAAZWXAAGVl8ABlZ4AAZWlQAGVpgABlabAAZWngAGVqEABlakAAZWpwAGVqoABlbHAAZWygAGVs0ABlbQAAZW0wAGVtYABlbZAAZW3AAGVt4ABldZAAZXWwAGV14ABldgAAZXYwAGV2QABldlAAZXZgAGV2cABldpAAZXbAAGV20ABlduAAZXcAAGV3EABlfsAAZX7gAGV/EABlfzAAZX9gAGV/cABlf4AAZX+QAGV/oABlf8AAZX/wAGWAAABlgBAAZYAwAGWAQABlh/AAZYgQAGWIQABliGAAZYiQAGWIoABliLAAZYjAAGWI0ABliPAAZYkgAGWJMABliUAAZYlgAGWJcABlkSAAZZFAAGWRcABlkZAAZZHAAGWR0ABlkeAAZZHwAGWSAABlkiAAZZJQAGWSYABlknAAZZKQAGWSoABlnNAAZZ8QAGWhUABlo1AAZaXAAGWoMABlqjAAZaygAGWu4ABlsRAAZbOAAGW1wABluAAAZbpAAGW8sABlvMAAZbzgAGW9AABlvTAAZb1QAGW9gABlvaAAZb3AAGW98ABlvhAAZb4wAGW+YABlvpAAZb6wAGW+0ABlvvAAZb8gAGW/UABlv4AAZb/QAGXBYABlwbAAZcHQAGXCIABlwlAAZcJwAGXHAABlyUAAZcuwAGXN8ABlziAAZc5AAGXOYABlzoAAZc6gAGXOwABlztAAZc8AAGXQkABl0uAAZdMAAGXTIABl00AAZdNgAGXTgABl06AAZdPAAGXT4ABl1AAAZdZQAGXWgABl1rAAZdbgAGXXEABl10AAZddwAGXXoABl19AAZdgAAGXYIABl39AAZd/wAGXgIABl4EAAZeBwAGXggABl4JAAZeCgAGXgsABl4NAAZeDwAGXhAABl4RAAZeEwAGXhQABl4lAAZeJgAGXigABl6jAAZepQAGXqcABl6pAAZerAAGXq0ABl6uAAZerwAGXrAABl6yAAZetAAGXrUABl62AAZeuAAGXrkABl80AAZfNgAGXzkABl87AAZfPgAGXz8ABl9AAAZfQQAGX0IABl9EAAZfRgAGX0cABl9IAAZfSgAGX0sABl9cAAZfXQAGX18ABl/aAAZf3AAGX94ABl/gAAZf4wAGX+QABl/lAAZf5gAGX+cABl/pAAZf6wAGX+wABl/tAAZf7wAGX/AABmBrAAZgbQAGYHAABmByAAZgdQAGYHYABmB3AAZgeAAGYHkABmB7AAZgfQAGYH4ABmB/AAZggQAGYIIABmCTAAZglAAGYJYABmERAAZhEwAGYRUABmEXAAZhGgAGYRsABmEcAAZhHQAGYR4ABmEgAAZhIgAGYSMABmEkAAZhJgAGYScABmGiAAZhpAAGYacABmGpAAZhrAAGYa0ABmGuAAZhrwAGYbAABmGyAAZhtAAGYbUABmG2AAZhuAAGYbkABmHSAAZh0wAGYdQABmHWAAZiUQAGYlMABmJVAAZiVwAGYloABmJbAAZiXAAGYl0ABmJeAAZiYAAGYmIABmJjAAZiZAAGYmYABmJnAAZi4gAGYuQABmLnAAZi6QAGYuwABmLtAAZi7gAGYu8ABmLwAAZi8gAGYvQABmL1AAZi9gAGYvgABmL5AAZjBgAGYx8ABmM4AAZjOwAGYz4ABmNBAAZjRAAGY0cABmNKAAZjYwAGY2YABmNpAAZjbAAGY28ABmNyAAZjdQAGY3cABmOFAAZjmwAGY6QABmOxAAZjxwAGY9oABmRtAAZkkAAGZLAABmTQAAZk0gAGZNQABmTWAAZk2AAGZNsABmTcAAZk3QAGZOAABmThAAZk4wAGZOQABmTnAAZk6gAGZOsABmTsAAZk7wAGZPAABmT1AAZlDgAGZRcABmUZAAZlHAAGZSUABmUoAAZlKwAGZS0ABmV2AAZlmgAGZcEABmXlAAZl6AAGZeoABmXsAAZl7gAGZfAABmXyAAZl8wAGZfYABmYPAAZmMAAGZjIABmY0AAZmNgAGZjgABmY6AAZmPAAGZj4ABmZAAAZmYQAGZmQABmZnAAZmagAGZm0ABmZwAAZmcwAGZnYABmZ5AAZmewAGZvYABmb4AAZm+gAGZvwABmb/AAZnAAAGZwEABmcCAAZnAwAGZwUABmcHAAZnCAAGZwkABmcLAAZnDAAGZ4cABmeJAAZniwAGZ40ABmeQAAZnkQAGZ5IABmeTAAZnlAAGZ5YABmeYAAZnmQAGZ5oABmecAAZnnQAGaBgABmgaAAZoHQAGaB8ABmgiAAZoIwAGaCQABmglAAZoJgAGaCgABmgqAAZoKwAGaCwABmguAAZoLwAGaEgABmhJAAZoSgAGaEwABmjHAAZoyQAGaMsABmjNAAZo0AAGaNEABmjSAAZo0wAGaNQABmjWAAZo2AAGaNkABmjaAAZo3AAGaN0ABmlYAAZpWgAGaVwABmleAAZpYQAGaWIABmljAAZpZAAGaWUABmlnAAZpaQAGaWoABmlrAAZpbQAGaW4ABmnpAAZp6wAGae0ABmnvAAZp8gAGafMABmn0AAZp9QAGafYABmn4AAZp+gAGafsABmn8AAZp/gAGaf8ABmp6AAZqfAAGan4ABmqAAAZqgwAGaoQABmqFAAZqhgAGaocABmqJAAZqiwAGaowABmqNAAZqjwAGapAABmsLAAZrDQAGaw8ABmsRAAZrFAAGaxUABmsWAAZrFwAGaxgABmsaAAZrHAAGax0ABmseAAZrIAAGayEABmtqAAZrjgAGa7UABmvZAAZr3AAGa98ABmvhAAZr4wAGa+UABmvnAAZr6AAGa+sABmwEAAZsIQAGbCQABmwnAAZsKgAGbC0ABmwwAAZsMwAGbDYABmxTAAZsVgAGbFkABmxcAAZsXwAGbGIABmxlAAZsaAAGbGoABmzlAAZs5wAGbOoABmzsAAZs7wAGbPAABmzxAAZs8gAGbPMABmz1AAZs+AAGbPkABmz6AAZs/AAGbP0ABm14AAZtegAGbX0ABm1/AAZtggAGbYMABm2EAAZthQAGbYYABm2IAAZtiwAGbYwABm2NAAZtjwAGbZAABm4LAAZuDQAGbhAABm4SAAZuFQAGbhYABm4XAAZuGAAGbhkABm4bAAZuHgAGbh8ABm4gAAZuIgAGbiMABm6eAAZuoAAGbqMABm6lAAZuqAAGbqkABm6qAAZuqwAGbqwABm6uAAZusQAGbrIABm6zAAZutQAGbrYABm8xAAZvMwAGbzUABm83AAZvOgAGbzsABm88AAZvPQAGbz4ABm9AAAZvQwAGb0QABm9FAAZvRwAGb0gABm/DAAZvxQAGb8cABm/JAAZvzAAGb80ABm/OAAZvzwAGb9AABm/SAAZv1QAGb9YABm/XAAZv2QAGb9oABnBVAAZwVwAGcFoABnBcAAZwXwAGcGAABnBhAAZwYgAGcGMABnBlAAZwaAAGcGkABnBqAAZwbAAGcG0ABnEAAAZxIwAGcUMABnFjAAZxZQAGcWcABnFpAAZxawAGcW4ABnFvAAZxcAAGcXMABnF0AAZxdgAGcXcABnF5AAZxfAAGcX0ABnF+AAZxgQAGcYIABnGHAAZxoAAGcakABnGrAAZxrQAGcbYABnG5AAZxvAAGcb4ABnIHAAZyKwAGclIABnJ2AAZyeQAGcnsABnJ9AAZyfwAGcoEABnKDAAZyhAAGcocABnKgAAZywQAGcsMABnLFAAZyxwAGcskABnLLAAZyzQAGcs8ABnLRAAZy8gAGcvUABnL4AAZy+wAGcv4ABnMBAAZzBAAGcwcABnMKAAZzDAAGc4cABnOJAAZziwAGc40ABnOQAAZzkQAGc5IABnOTAAZzlAAGc5YABnOYAAZzmQAGc5oABnOcAAZznQAGdBgABnQaAAZ0HAAGdB4ABnQhAAZ0IgAGdCMABnQkAAZ0JQAGdCcABnQpAAZ0KgAGdCsABnQtAAZ0LgAGdKkABnSrAAZ0rgAGdLAABnSzAAZ0tAAGdLUABnS2AAZ0twAGdLkABnS7AAZ0vAAGdL0ABnS/AAZ0wAAGdNkABnTaAAZ02wAGdN0ABnVYAAZ1WgAGdVwABnVeAAZ1YQAGdWIABnVjAAZ1ZAAGdWUABnVnAAZ1aQAGdWoABnVrAAZ1bQAGdW4ABnXpAAZ16wAGde0ABnXvAAZ18gAGdfMABnX0AAZ19QAGdfYABnX4AAZ1+gAGdfsABnX8AAZ1/gAGdf8ABnZ6AAZ2fAAGdn4ABnaAAAZ2gwAGdoQABnaFAAZ2hgAGdocABnaJAAZ2iwAGdowABnaNAAZ2jwAGdpAABncLAAZ3DQAGdw8ABncRAAZ3FAAGdxUABncWAAZ3FwAGdxgABncaAAZ3HAAGdx0ABnceAAZ3IAAGdyEABnecAAZ3ngAGd6AABneiAAZ3pQAGd6YABnenAAZ3qAAGd6kABnerAAZ3rQAGd64ABnevAAZ3sQAGd7IABnf7AAZ4HwAGeEYABnhqAAZ4bQAGeG8ABnhxAAZ4cwAGeHUABnh3AAZ4eAAGeHsABniUAAZ4sQAGeLMABni1AAZ4twAGeLkABni7AAZ4vQAGeL8ABnjcAAZ43wAGeOIABnjlAAZ46AAGeOsABnjuAAZ48QAGePMABnluAAZ5cAAGeXIABnl0AAZ5dwAGeXgABnl5AAZ5egAGeXsABnl9AAZ5fwAGeYAABnmBAAZ5gwAGeYQABnn/AAZ6AQAGegMABnoFAAZ6CAAGegkABnoKAAZ6CwAGegwABnoOAAZ6EAAGehEABnoSAAZ6FAAGehUABnqQAAZ6kgAGepQABnqWAAZ6mQAGepoABnqbAAZ6nAAGep0ABnqfAAZ6oQAGeqIABnqjAAZ6pQAGeqYABnshAAZ7IwAGeyUABnsnAAZ7KgAGeysABnssAAZ7LQAGey4ABnswAAZ7MgAGezMABns0AAZ7NgAGezcABnuyAAZ7tAAGe7YABnu4AAZ7uwAGe7wABnu9AAZ7vgAGe78ABnvBAAZ7wwAGe8QABnvFAAZ7xwAGe8gABnxDAAZ8RQAGfEcABnxJAAZ8TAAGfE0ABnxOAAZ8TwAGfFAABnxSAAZ8VAAGfFUABnxWAAZ8WAAGfFkABnzUAAZ81gAGfNgABnzaAAZ83QAGfN4ABnzfAAZ84AAGfOEABnzjAAZ85QAGfOYABnznAAZ86QAGfOoABn19AAZ9oAAGfcAABn3gAAZ94gAGfeQABn3mAAZ96AAGfesABn3sAAZ97QAGffAABn3xAAZ98wAGffQABn32AAZ9+QAGffoABn37AAZ9/gAGff8ABn4IAAZ+IQAGfioABn4sAAZ+LgAGfjcABn46AAZ+PQAGfj8ABn6IAAZ+rAAGftMABn73AAZ++gAGfvwABn7+AAZ/AAAGfwIABn8EAAZ/BQAGfwgABn8hAAZ/QgAGf0QABn9GAAZ/SAAGf0oABn9MAAZ/TgAGf1AABn9SAAZ/cwAGf3YABn95AAZ/fAAGf38ABn+CAAZ/hQAGf4gABn+LAAZ/jQAGgAgABoAKAAaADAAGgA4ABoARAAaAEgAGgBMABoAUAAaAFQAGgBcABoAZAAaAGgAGgBsABoAdAAaAHgAGgJkABoCbAAaAnQAGgJ8ABoCiAAaAowAGgKQABoClAAaApgAGgKgABoCqAAaAqwAGgKwABoCuAAaArwAGgSoABoEsAAaBLwAGgTEABoE0AAaBNQAGgTYABoE3AAaBOAAGgToABoE8AAaBPQAGgT4ABoFAAAaBQQAGgVoABoFbAAaBXAAGgV4ABoHZAAaB2wAGgd0ABoHfAAaB4gAGgeMABoHkAAaB5QAGgeYABoHoAAaB6gAGgesABoHsAAaB7gAGge8ABoJqAAaCbAAGgm4ABoJwAAaCcwAGgnQABoJ1AAaCdgAGgncABoJ5AAaCewAGgnwABoJ9AAaCfwAGgoAABoL7AAaC/QAGgv8ABoMBAAaDBAAGgwUABoMGAAaDBwAGgwgABoMKAAaDDAAGgw0ABoMOAAaDEAAGgxEABoOMAAaDjgAGg5AABoOSAAaDlQAGg5YABoOXAAaDmAAGg5kABoObAAaDnQAGg54ABoOfAAaDoQAGg6IABoQdAAaEHwAGhCEABoQjAAaEJgAGhCcABoQoAAaEKQAGhCoABoQsAAaELgAGhC8ABoQwAAaEMgAGhDMABoR8AAaEoAAGhMcABoTrAAaE7gAGhPAABoTyAAaE9AAGhPYABoT4AAaE+QAGhPwABoUVAAaFMgAGhTQABoU2AAaFOAAGhToABoU8AAaFPgAGhUAABoVdAAaFYAAGhWMABoVmAAaFaQAGhWwABoVvAAaFcgAGhXQABoXvAAaF8QAGhfMABoX1AAaF+AAGhfkABoX6AAaF+wAGhfwABoX+AAaGAAAGhgEABoYCAAaGBAAGhgUABoaAAAaGggAGhoQABoaGAAaGiQAGhooABoaLAAaGjAAGho0ABoaPAAaGkQAGhpIABoaTAAaGlQAGhpYABocRAAaHEwAGhxUABocXAAaHGgAGhxsABoccAAaHHQAGhx4ABocgAAaHIgAGhyMABockAAaHJgAGhycABoeiAAaHpAAGh6YABoeoAAaHqwAGh6wABoetAAaHrgAGh68ABoexAAaHswAGh7QABoe1AAaHtwAGh7gABogzAAaINQAGiDcABog5AAaIPAAGiD0ABog+AAaIPwAGiEAABohCAAaIRAAGiEUABohGAAaISAAGiEkABojEAAaIxgAGiMkABojLAAaIzgAGiM8ABojQAAaI0QAGiNIABojUAAaI1gAGiNcABojYAAaI2gAGiNsABojqAAaJZQAGiWcABolpAAaJawAGiW4ABolvAAaJcAAGiXEABolyAAaJdAAGiXYABol3AAaJeAAGiXoABol7AAaKDgAGijEABopRAAaKcQAGinMABop1AAaKdwAGinkABop8AAaKfQAGin4ABoqBAAaKggAGioQABoqFAAaKiAAGiosABoqMAAaKjQAGipAABoqRAAaKlgAGiq8ABoq4AAaKugAGir0ABorGAAaKyQAGiswABorOAAaLFwAGizsABotiAAaLhgAGi4kABouLAAaLjQAGi48ABouRAAaLkwAGi5QABouXAAaLsAAGi9EABovTAAaL1QAGi9cABovZAAaL2wAGi90ABovfAAaL4QAGjAIABowFAAaMCAAGjAsABowOAAaMEQAGjBQABowXAAaMGgAGjBwABoyXAAaMmQAGjJsABoydAAaMoAAGjKEABoyiAAaMowAGjKQABoymAAaMqAAGjKkABoyqAAaMrAAGjK0ABo0oAAaNKgAGjSwABo0uAAaNMQAGjTIABo0zAAaNNAAGjTUABo03AAaNOQAGjToABo07AAaNPQAGjT4ABo25AAaNuwAGjb4ABo3AAAaNwwAGjcQABo3FAAaNxgAGjccABo3JAAaNywAGjcwABo3NAAaNzwAGjdAABo3pAAaN6gAGjesABo3tAAaOaAAGjmoABo5sAAaObgAGjnEABo5yAAaOcwAGjnQABo51AAaOdwAGjnkABo56AAaOewAGjn0ABo5+AAaO+QAGjvsABo79AAaO/wAGjwIABo8DAAaPBAAGjwUABo8GAAaPCAAGjwoABo8LAAaPDAAGjw4ABo8PAAaPigAGj4wABo+OAAaPkAAGj5MABo+UAAaPlQAGj5YABo+XAAaPmQAGj5sABo+cAAaPnQAGj58ABo+gAAaQGwAGkB0ABpAfAAaQIQAGkCQABpAlAAaQJgAGkCcABpAoAAaQKgAGkCwABpAtAAaQLgAGkDAABpAxAAaQrAAGkK4ABpCwAAaQsgAGkLUABpC2AAaQtwAGkLgABpC5AAaQuwAGkL0ABpC+AAaQvwAGkMEABpDCAAaRCwAGkS8ABpFWAAaRegAGkX0ABpGAAAaRggAGkYQABpGGAAaRiAAGkYkABpGMAAaRpQAGkcIABpHFAAaRyAAGkcsABpHOAAaR0QAGkdQABpHXAAaR9AAGkfcABpH6AAaR/QAGkgAABpIDAAaSBgAGkgkABpILAAaShgAGkogABpKLAAaSjQAGkpAABpKRAAaSkgAGkpMABpKUAAaSlgAGkpkABpKaAAaSmwAGkp0ABpKeAAaTGQAGkxsABpMeAAaTIAAGkyMABpMkAAaTJQAGkyYABpMnAAaTKQAGkywABpMtAAaTLgAGkzAABpMxAAaTrAAGk64ABpOxAAaTswAGk7YABpO3AAaTuAAGk7kABpO6AAaTvAAGk78ABpPAAAaTwQAGk8MABpPEAAaUPwAGlEEABpREAAaURgAGlEkABpRKAAaUSwAGlEwABpRNAAaUTwAGlFIABpRTAAaUVAAGlFYABpRXAAaU0gAGlNQABpTWAAaU2AAGlNsABpTcAAaU3QAGlN4ABpTfAAaU4QAGlOQABpTlAAaU5gAGlOgABpTpAAaVZAAGlWYABpVoAAaVagAGlW0ABpVuAAaVbwAGlXAABpVxAAaVcwAGlXYABpV3AAaVeAAGlXoABpV7AAaV9gAGlfgABpX7AAaV/QAGlgAABpYBAAaWAgAGlgMABpYEAAaWBgAGlgkABpYKAAaWCwAGlg0ABpYOAAaWoQAGlsQABpbkAAaXBAAGlwYABpcIAAaXCgAGlwwABpcPAAaXEAAGlxEABpcUAAaXFQAGlxcABpcYAAaXGwAGlx4ABpcfAAaXIAAGlyMABpckAAaXLQAGl0YABpdPAAaXUQAGl1QABpddAAaXYAAGl2MABpdlAAaXrgAGl9IABpf5AAaYHQAGmCAABpgiAAaYJAAGmCYABpgoAAaYKgAGmCsABpguAAaYRwAGmGgABphqAAaYbAAGmG4ABphwAAaYcgAGmHQABph2AAaYeAAGmJkABpicAAaYnwAGmKIABpilAAaYqAAGmKsABpiuAAaYsQAGmLMABpkuAAaZMAAGmTIABpk0AAaZNwAGmTgABpk5AAaZOgAGmTsABpk9AAaZPwAGmUAABplBAAaZQwAGmUQABpm/AAaZwQAGmcMABpnFAAaZyAAGmckABpnKAAaZywAGmcwABpnOAAaZ0AAGmdEABpnSAAaZ1AAGmdUABppQAAaaUgAGmlUABppXAAaaWgAGmlsABppcAAaaXQAGml4ABppgAAaaYgAGmmMABppkAAaaZgAGmmcABpqAAAaagQAGmoIABpqEAAaa/wAGmwEABpsDAAabBQAGmwgABpsJAAabCgAGmwsABpsMAAabDgAGmxAABpsRAAabEgAGmxQABpsVAAabkAAGm5IABpuUAAablgAGm5kABpuaAAabmwAGm5wABpudAAabnwAGm6EABpuiAAabowAGm6UABpumAAacIQAGnCMABpwlAAacJwAGnCoABpwrAAacLAAGnC0ABpwuAAacMAAGnDIABpwzAAacNAAGnDYABpw3AAacsgAGnLQABpy2AAacuAAGnLsABpy8AAacvQAGnL4ABpy/AAacwQAGnMMABpzEAAacxQAGnMcABpzIAAadQwAGnUUABp1HAAadSQAGnUwABp1NAAadTgAGnU8ABp1QAAadUgAGnVQABp1VAAadVgAGnVgABp1ZAAadogAGncYABp3tAAaeEQAGnhQABp4XAAaeGQAGnhsABp4dAAaeHwAGniAABp4jAAaePAAGnlkABp5cAAaeXwAGnmIABp5lAAaeaAAGnmsABp5uAAaeiwAGno4ABp6RAAaelAAGnpcABp6aAAaenQAGnqAABp6iAAafHQAGnx8ABp8iAAafJAAGnycABp8oAAafKQAGnyoABp8rAAafLQAGnzAABp8xAAafMgAGnzQABp81AAafsAAGn7IABp+1AAaftwAGn7oABp+7AAafvAAGn70ABp++AAafwAAGn8MABp/EAAafxQAGn8cABp/IAAagQwAGoEUABqBIAAagSgAGoE0ABqBOAAagTwAGoFAABqBRAAagUwAGoFYABqBXAAagWAAGoFoABqBbAAag1gAGoNgABqDbAAag3QAGoOAABqDhAAag4gAGoOMABqDkAAag5gAGoOkABqDqAAag6wAGoO0ABqDuAAahaQAGoWsABqFtAAahbwAGoXIABqFzAAahdAAGoXUABqF2AAaheAAGoXsABqF8AAahfQAGoX8ABqGAAAah+wAGof0ABqH/AAaiAQAGogQABqIFAAaiBgAGogcABqIIAAaiCgAGog0ABqIOAAaiDwAGohEABqISAAaijQAGoo8ABqKSAAailAAGopcABqKYAAaimQAGopoABqKbAAainQAGoqAABqKhAAaiogAGoqQABqKlAAajOAAGo1sABqN7AAajmwAGo50ABqOfAAajoQAGo6MABqOmAAajpwAGo6gABqOrAAajrAAGo64ABqOvAAajsgAGo7UABqO2AAajtwAGo7oABqO7AAajwAAGo9kABqPiAAaj5AAGo+cABqPwAAaj8wAGo/YABqP4AAakQQAGpGUABqSMAAaksAAGpLMABqS1AAaktwAGpLkABqS7AAakvQAGpL4ABqTBAAak2gAGpPsABqT9AAak/wAGpQEABqUDAAalBQAGpQcABqUJAAalCwAGpSwABqUvAAalMgAGpTUABqU4AAalOwAGpT4ABqVBAAalRAAGpUYABqXBAAalwwAGpcUABqXHAAalygAGpcsABqXMAAalzQAGpc4ABqXQAAal0gAGpdMABqXUAAal1gAGpdcABqZSAAamVAAGplYABqZYAAamWwAGplwABqZdAAamXgAGpl8ABqZhAAamYwAGpmQABqZlAAamZwAGpmgABqbjAAam5QAGpugABqbqAAam7QAGpu4ABqbvAAam8AAGpvEABqbzAAam9QAGpvYABqb3AAam+QAGpvoABqcTAAanFAAGpxUABqcXAAankgAGp5QABqeWAAanmAAGp5sABqecAAannQAGp54ABqefAAanoQAGp6MABqekAAanpQAGp6cABqeoAAaoIwAGqCUABqgnAAaoKQAGqCwABqgtAAaoLgAGqC8ABqgwAAaoMgAGqDQABqg1AAaoNgAGqDgABqg5AAaotAAGqLYABqi4AAaougAGqL0ABqi+AAaovwAGqMAABqjBAAaowwAGqMUABqjGAAaoxwAGqMkABqjKAAapRQAGqUcABqlJAAapSwAGqU4ABqlPAAapUAAGqVEABqlSAAapVAAGqVYABqlXAAapWAAGqVoABqlbAAap1gAGqdgABqnaAAap3AAGqd8ABqngAAap4QAGqeIABqnjAAap5QAGqecABqnoAAap6QAGqesABqnsAAaqNQAGqlkABqqAAAaqpAAGqqcABqqqAAaqrAAGqq4ABqqwAAaqsgAGqrMABqq2AAaqzwAGquwABqrvAAaq8gAGqvUABqr4AAaq+wAGqv4ABqsBAAarHgAGqyEABqskAAarJwAGqyoABqstAAarMAAGqzMABqs1AAarsAAGq7IABqu1AAartwAGq7oABqu7AAarvAAGq70ABqu+AAarwAAGq8MABqvEAAarxQAGq8cABqvIAAasQwAGrEUABqxIAAasSgAGrE0ABqxOAAasTwAGrFAABqxRAAasUwAGrFYABqxXAAasWAAGrFoABqxbAAas1gAGrNgABqzbAAas3QAGrOAABqzhAAas4gAGrOMABqzkAAas5gAGrOkABqzqAAas6wAGrO0ABqzuAAataQAGrWsABq1uAAatcAAGrXMABq10AAatdQAGrXYABq13AAateQAGrXwABq19AAatfgAGrYAABq2BAAauBAAGrigABq5MAAaubwAGrpYABq62AAau3QAGrwQABq8kAAavSAAGr2wABq9uAAavcQAGr3MABq91AAavdwAGr3oABq99AAavfwAGr4EABq+EAAavhgAGr4gABq+LAAavjgAGr48ABq+UAAavrQAGr7IABq+0AAavuQAGr7wABq++AAawBwAGsCsABrBSAAawdgAGsHkABrB7AAawfQAGsH8ABrCBAAawgwAGsIQABrCHAAawoAAGsMUABrDHAAawyQAGsMsABrDNAAawzwAGsNEABrDTAAaw1QAGsNcABrD8AAaw/wAGsQIABrEFAAaxCAAGsQsABrEOAAaxEQAGsRQABrEXAAaxGQAGsZQABrGWAAaxmQAGsZsABrGeAAaxnwAGsaAABrGhAAaxogAGsaQABrGmAAaxpwAGsagABrGqAAaxqwAGsbwABrG9AAaxvwAGsjoABrI8AAayPgAGskAABrJDAAayRAAGskUABrJGAAayRwAGskkABrJLAAayTAAGsk0ABrJPAAayUAAGsssABrLNAAay0AAGstIABrLVAAay1gAGstcABrLYAAay2QAGstsABrLdAAay3gAGst8ABrLhAAay4gAGsvMABrL0AAay9gAGs3EABrNzAAazdQAGs3cABrN6AAazewAGs3wABrN9AAazfgAGs4AABrOCAAazgwAGs4QABrOGAAazhwAGtAIABrQEAAa0BwAGtAkABrQMAAa0DQAGtA4ABrQPAAa0EAAGtBIABrQUAAa0FQAGtBYABrQYAAa0GQAGtCoABrQrAAa0LQAGtKgABrSqAAa0rAAGtK4ABrSxAAa0sgAGtLMABrS0AAa0tQAGtLcABrS5AAa0ugAGtLsABrS9AAa0vgAGtTkABrU7AAa1PgAGtUAABrVDAAa1RAAGtUUABrVGAAa1RwAGtUkABrVLAAa1TAAGtU0ABrVPAAa1UAAGtWkABrVqAAa1awAGtW0ABrXoAAa16gAGtewABrXuAAa18QAGtfIABrXzAAa19AAGtfUABrX3AAa1+QAGtfoABrX7AAa1/QAGtf4ABrZ5AAa2ewAGtn4ABraAAAa2gwAGtoQABraFAAa2hgAGtocABraJAAa2iwAGtowABraNAAa2jwAGtpAABralAAa2vgAGts8ABrbSAAa21QAGttgABrbbAAa27AAGtu8ABrbyAAa29QAGtvgABrb6AAa3AwAGtxAABrcfAAa3PwAGt9IABrf1AAa4FQAGuDUABrg3AAa4OQAGuDsABrg9AAa4QAAGuEEABrhCAAa4RQAGuEYABrhIAAa4SQAGuEsABrhOAAa4TwAGuFAABrhTAAa4VAAGuF0ABrh2AAa4fwAGuIEABriDAAa4jAAGuI8ABriSAAa4lAAGuN0ABrkBAAa5KAAGuUwABrlPAAa5UQAGuVMABrlVAAa5VwAGuVkABrlaAAa5XQAGuXYABrmXAAa5mQAGuZsABrmdAAa5nwAGuaEABrmjAAa5pQAGuacABrnIAAa5ywAGuc4ABrnRAAa51AAGudcABrnaAAa53QAGueAABrniAAa6XQAGul8ABrphAAa6YwAGumYABrpnAAa6aAAGumkABrpqAAa6bAAGum4ABrpvAAa6cAAGunIABrpzAAa67gAGuvAABrryAAa69AAGuvcABrr4AAa6+QAGuvoABrr7AAa6/QAGuv8ABrsAAAa7AQAGuwMABrsEAAa7fwAGu4EABruEAAa7hgAGu4kABruKAAa7iwAGu4wABruNAAa7jwAGu5EABruSAAa7kwAGu5UABruWAAa7rwAGu7AABruxAAa7swAGvC4ABrwwAAa8MgAGvDQABrw3AAa8OAAGvDkABrw6AAa8OwAGvD0ABrw/AAa8QAAGvEEABrxDAAa8RAAGvL8ABrzBAAa8wwAGvMUABrzIAAa8yQAGvMoABrzLAAa8zAAGvM4ABrzQAAa80QAGvNIABrzUAAa81QAGvVAABr1SAAa9VAAGvVYABr1ZAAa9WgAGvVsABr1cAAa9XQAGvV8ABr1hAAa9YgAGvWMABr1lAAa9ZgAGveEABr3jAAa95QAGvecABr3qAAa96wAGvewABr3tAAa97gAGvfAABr3yAAa98wAGvfQABr32AAa99wAGvnIABr50AAa+dgAGvngABr57AAa+fAAGvn0ABr5+AAa+fwAGvoEABr6DAAa+hAAGvoUABr6HAAa+iAAGvtEABr71AAa/HAAGv0AABr9DAAa/RQAGv0cABr9JAAa/SwAGv00ABr9OAAa/UQAGv2oABr+HAAa/iQAGv4sABr+NAAa/jwAGv5EABr+TAAa/lQAGv7IABr+1AAa/uAAGv7sABr++AAa/wQAGv8QABr/HAAa/yQAGwEQABsBGAAbASAAGwEoABsBNAAbATgAGwE8ABsBQAAbAUQAGwFMABsBVAAbAVgAGwFcABsBZAAbAWgAGwNUABsDXAAbA2QAGwNsABsDeAAbA3wAGwOAABsDhAAbA4gAGwOQABsDmAAbA5wAGwOgABsDqAAbA6wAGwWYABsFoAAbBagAGwWwABsFvAAbBcAAGwXEABsFyAAbBcwAGwXUABsF3AAbBeAAGwXkABsF7AAbBfAAGwfcABsH5AAbB/AAGwf4ABsIBAAbCAgAGwgMABsIEAAbCBQAGwgcABsIJAAbCCgAGwgsABsINAAbCDgAGwokABsKLAAbCjQAGwo8ABsKSAAbCkwAGwpQABsKVAAbClgAGwpgABsKaAAbCmwAGwpwABsKeAAbCnwAGwxoABsMcAAbDHgAGwyAABsMjAAbDJAAGwyUABsMmAAbDJwAGwykABsMrAAbDLAAGwy0ABsMvAAbDMAAGw6sABsOtAAbDrwAGw7EABsO0AAbDtQAGw7YABsO3AAbDuAAGw7oABsO8AAbDvQAGw74ABsPAAAbDwQAGxFQABsR3AAbElwAGxLcABsS5AAbEuwAGxL0ABsS/AAbEwgAGxMMABsTEAAbExwAGxMgABsTKAAbEywAGxM4ABsTRAAbE0gAGxNMABsTWAAbE1wAGxNwABsT1AAbE/gAGxQAABsUDAAbFDAAGxQ8ABsUSAAbFFAAGxV0ABsWBAAbFqAAGxcwABsXPAAbF0QAGxdMABsXVAAbF1wAGxdkABsXaAAbF3QAGxfYABsYXAAbGGQAGxhsABsYdAAbGHwAGxiEABsYjAAbGJQAGxicABsZIAAbGSwAGxk4ABsZRAAbGVAAGxlcABsZaAAbGXQAGxmAABsZiAAbG3QAGxt8ABsbhAAbG4wAGxuYABsbnAAbG6AAGxukABsbqAAbG7AAGxu4ABsbvAAbG8AAGxvIABsbzAAbHbgAGx3AABsdyAAbHdAAGx3cABsd4AAbHeQAGx3oABsd7AAbHfQAGx38ABseAAAbHgQAGx4MABseEAAbH/wAGyAEABsgEAAbIBgAGyAkABsgKAAbICwAGyAwABsgNAAbIDwAGyBEABsgSAAbIEwAGyBUABsgWAAbILwAGyDAABsgxAAbIMwAGyK4ABsiwAAbIsgAGyLQABsi3AAbIuAAGyLkABsi6AAbIuwAGyL0ABsi/AAbIwAAGyMEABsjDAAbIxAAGyT8ABslBAAbJQwAGyUUABslIAAbJSQAGyUoABslLAAbJTAAGyU4ABslQAAbJUQAGyVIABslUAAbJVQAGydAABsnSAAbJ1AAGydYABsnZAAbJ2gAGydsABsncAAbJ3QAGyd8ABsnhAAbJ4gAGyeMABsnlAAbJ5gAGymEABspjAAbKZQAGymcABspqAAbKawAGymwABsptAAbKbgAGynAABspyAAbKcwAGynQABsp2AAbKdwAGyvIABsr0AAbK9gAGyvgABsr7AAbK/AAGyv0ABsr+AAbK/wAGywEABssDAAbLBAAGywUABssHAAbLCAAGy1EABst1AAbLnAAGy8AABsvDAAbLxgAGy8gABsvKAAbLzAAGy84ABsvPAAbL0gAGy+sABswIAAbMCwAGzA4ABswRAAbMFAAGzBcABswaAAbMHQAGzDoABsw9AAbMQAAGzEMABsxGAAbMSQAGzEwABsxPAAbMUQAGzMwABszOAAbM0QAGzNMABszWAAbM1wAGzNgABszZAAbM2gAGzNwABszfAAbM4AAGzOEABszjAAbM5AAGzV8ABs1hAAbNZAAGzWYABs1pAAbNagAGzWsABs1sAAbNbQAGzW8ABs1yAAbNcwAGzXQABs12AAbNdwAGzfIABs30AAbN9wAGzfkABs38AAbN/QAGzf4ABs3/AAbOAAAGzgIABs4FAAbOBgAGzgcABs4JAAbOCgAGzoUABs6HAAbOigAGzowABs6PAAbOkAAGzpEABs6SAAbOkwAGzpUABs6YAAbOmQAGzpoABs6cAAbOnQAGzxgABs8aAAbPHAAGzx4ABs8hAAbPIgAGzyMABs8kAAbPJQAGzycABs8qAAbPKwAGzywABs8uAAbPLwAGz6oABs+sAAbPrgAGz7AABs+zAAbPtAAGz7UABs+2AAbPtwAGz7kABs+8AAbPvQAGz74ABs/AAAbPwQAG0DwABtA+AAbQQQAG0EMABtBGAAbQRwAG0EgABtBJAAbQSgAG0EwABtBPAAbQUAAG0FEABtBTAAbQVAAG0OcABtEKAAbRKgAG0UoABtFMAAbRTgAG0VAABtFSAAbRVQAG0VYABtFXAAbRWgAG0VsABtFdAAbRXgAG0WAABtFjAAbRZAAG0WUABtFoAAbRaQAG0W4ABtGHAAbRkAAG0ZIABtGUAAbRnQAG0aAABtGjAAbRpQAG0e4ABtISAAbSOQAG0l0ABtJgAAbSYgAG0mQABtJmAAbSaAAG0moABtJrAAbSbgAG0ocABtKoAAbSqgAG0qwABtKuAAbSsAAG0rIABtK0AAbStgAG0rgABtLZAAbS3AAG0t8ABtLiAAbS5QAG0ugABtLrAAbS7gAG0vEABtLzAAbTbgAG03AABtNyAAbTdAAG03cABtN4AAbTeQAG03oABtN7AAbTfQAG038ABtOAAAbTgQAG04MABtOEAAbT/wAG1AEABtQDAAbUBQAG1AgABtQJAAbUCgAG1AsABtQMAAbUDgAG1BAABtQRAAbUEgAG1BQABtQVAAbUkAAG1JIABtSVAAbUlwAG1JoABtSbAAbUnAAG1J0ABtSeAAbUoAAG1KIABtSjAAbUpAAG1KYABtSnAAbUwAAG1MEABtTCAAbUxAAG1T8ABtVBAAbVQwAG1UUABtVIAAbVSQAG1UoABtVLAAbVTAAG1U4ABtVQAAbVUQAG1VIABtVUAAbVVQAG1dAABtXSAAbV1AAG1dYABtXZAAbV2gAG1dsABtXcAAbV3QAG1d8ABtXhAAbV4gAG1eMABtXlAAbV5gAG1mEABtZjAAbWZQAG1mcABtZqAAbWawAG1mwABtZtAAbWbgAG1nAABtZyAAbWcwAG1nQABtZ2AAbWdwAG1vIABtb0AAbW9gAG1vgABtb7AAbW/AAG1v0ABtb+AAbW/wAG1wEABtcDAAbXBAAG1wUABtcHAAbXCAAG14MABteFAAbXhwAG14kABteMAAbXjQAG144ABtePAAbXkAAG15IABteUAAbXlQAG15YABteYAAbXmQAG1+IABtgGAAbYLQAG2FEABthUAAbYVgAG2FgABthaAAbYXAAG2F4ABthfAAbYYgAG2HsABtiYAAbYmgAG2JwABtieAAbYoAAG2KIABtikAAbYpgAG2MMABtjGAAbYyQAG2MwABtjPAAbY0gAG2NUABtjYAAbY2gAG2VUABtlXAAbZWQAG2VsABtleAAbZXwAG2WAABtlhAAbZYgAG2WQABtlmAAbZZwAG2WgABtlqAAbZawAG2eYABtnoAAbZ6gAG2ewABtnvAAbZ8AAG2fEABtnyAAbZ8wAG2fUABtn3AAbZ+AAG2fkABtn7AAbZ/AAG2ncABtp5AAbaewAG2n0ABtqAAAbagQAG2oIABtqDAAbahAAG2oYABtqIAAbaiQAG2ooABtqMAAbajQAG2wgABtsKAAbbDAAG2w4ABtsRAAbbEgAG2xMABtsUAAbbFQAG2xcABtsZAAbbGgAG2xsABtsdAAbbHgAG25kABtubAAbbnQAG258ABtuiAAbbowAG26QABtulAAbbpgAG26gABtuqAAbbqwAG26wABtuuAAbbrwAG3CoABtwsAAbcLwAG3DEABtw0AAbcNQAG3DYABtw3AAbcOAAG3DoABtw8AAbcPQAG3D4ABtxAAAbcQQAG3GAABtzbAAbc3QAG3N8ABtzhAAbc5AAG3OUABtzmAAbc5wAG3OgABtzqAAbc7AAG3O0ABtzuAAbc8AAG3PEABt2EAAbdpwAG3ccABt3nAAbd6QAG3esABt3tAAbd7wAG3fIABt3zAAbd9AAG3fcABt34AAbd+gAG3fsABt39AAbeAAAG3gEABt4CAAbeBQAG3gYABt4LAAbeJAAG3i0ABt4vAAbeMQAG3joABt49AAbeQAAG3kIABt6LAAberwAG3tYABt76AAbe/QAG3v8ABt8BAAbfAwAG3wUABt8HAAbfCAAG3wsABt8kAAbfRQAG30cABt9JAAbfSwAG300ABt9PAAbfUQAG31MABt9VAAbfdgAG33kABt98AAbffwAG34IABt+FAAbfiAAG34sABt+OAAbfkAAG4AsABuANAAbgDwAG4BEABuAUAAbgFQAG4BYABuAXAAbgGAAG4BoABuAcAAbgHQAG4B4ABuAgAAbgIQAG4JwABuCeAAbgoAAG4KIABuClAAbgpgAG4KcABuCoAAbgqQAG4KsABuCtAAbgrgAG4K8ABuCxAAbgsgAG4S0ABuEvAAbhMgAG4TQABuE3AAbhOAAG4TkABuE6AAbhOwAG4T0ABuE/AAbhQAAG4UEABuFDAAbhRAAG4V0ABuFeAAbhXwAG4WEABuHcAAbh3gAG4eAABuHiAAbh5QAG4eYABuHnAAbh6AAG4ekABuHrAAbh7QAG4e4ABuHvAAbh8QAG4fIABuJtAAbibwAG4nEABuJzAAbidgAG4ncABuJ4AAbieQAG4noABuJ8AAbifgAG4n8ABuKAAAbiggAG4oMABuL+AAbjAAAG4wIABuMEAAbjBwAG4wgABuMJAAbjCgAG4wsABuMNAAbjDwAG4xAABuMRAAbjEwAG4xQABuOPAAbjkQAG45MABuOVAAbjmAAG45kABuOaAAbjmwAG45wABuOeAAbjoAAG46EABuOiAAbjpAAG46UABuQgAAbkIgAG5CQABuQmAAbkKQAG5CoABuQrAAbkLAAG5C0ABuQvAAbkMQAG5DIABuQzAAbkNQAG5DYABuR/AAbkowAG5MoABuTuAAbk8QAG5PMABuT1AAbk9wAG5PkABuT7AAbk/AAG5P8ABuUYAAblNQAG5TcABuU5AAblOwAG5T0ABuU/AAblQQAG5UMABuVgAAblYwAG5WYABuVpAAblbAAG5W8ABuVyAAbldQAG5XcABuXyAAbl9AAG5fYABuX4AAbl+wAG5fwABuX9AAbl/gAG5f8ABuYBAAbmAwAG5gQABuYFAAbmBwAG5ggABuaDAAbmhQAG5ocABuaJAAbmjAAG5o0ABuaOAAbmjwAG5pAABuaSAAbmlAAG5pUABuaWAAbmmAAG5pkABucUAAbnFgAG5xgABucaAAbnHQAG5x4ABucfAAbnIAAG5yEABucjAAbnJQAG5yYABucnAAbnKQAG5yoABuelAAbnpwAG56oABuesAAbnrwAG57AABuexAAbnsgAG57MABue1AAbntwAG57gABue5AAbnuwAG57wABug3AAboOQAG6DsABug9AAboQAAG6EEABuhCAAboQwAG6EQABuhGAAboSAAG6EkABuhKAAboTAAG6E0ABujIAAboygAG6MwABujOAAbo0QAG6NIABujTAAbo1AAG6NUABujXAAbo2QAG6NoABujbAAbo3QAG6N4ABulZAAbpWwAG6V0ABulfAAbpYgAG6WMABulkAAbpZQAG6WYABuloAAbpagAG6WsABulsAAbpbgAG6W8ABumAAAbpgQAG6YMABun+AAbqAAAG6gIABuoEAAbqBwAG6ggABuoJAAbqCgAG6gsABuoNAAbqEAAG6hEABuoSAAbqFAAG6hUABuqQAAbqkgAG6pQABuqWAAbqmQAG6poABuqbAAbqnAAG6p0ABuqfAAbqogAG6qMABuqkAAbqpgAG6qcABusiAAbrJAAG6ycABuspAAbrLAAG6y0ABusuAAbrLwAG6zAABusyAAbrNQAG6zYABus3AAbrOQAG6zoABuvNAAbr8AAG7BAABuwwAAbsMgAG7DQABuw2AAbsOAAG7DsABuw8AAbsPQAG7EAABuxBAAbsQwAG7EQABuxHAAbsSgAG7EsABuxMAAbsTwAG7FAABuxVAAbsbgAG7HcABux5AAbsfAAG7IUABuyIAAbsiwAG7I0ABuzWAAbs+gAG7SEABu1FAAbtSAAG7UoABu1MAAbtTgAG7VAABu1SAAbtUwAG7VYABu1vAAbtkAAG7ZIABu2UAAbtlgAG7ZgABu2aAAbtnAAG7Z4ABu2gAAbtwQAG7cQABu3HAAbtygAG7c0ABu3QAAbt0wAG7dYABu3ZAAbt2wAG7lYABu5YAAbuWgAG7lwABu5fAAbuYAAG7mEABu5iAAbuYwAG7mUABu5nAAbuaAAG7mkABu5rAAbubAAG7ucABu7pAAbu6wAG7u0ABu7wAAbu8QAG7vIABu7zAAbu9AAG7vYABu74AAbu+QAG7voABu78AAbu/QAG73gABu96AAbvfQAG738ABu+CAAbvgwAG74QABu+FAAbvhgAG74gABu+KAAbviwAG74wABu+OAAbvjwAG76gABu+pAAbvqgAG76wABvAnAAbwKQAG8CsABvAtAAbwMAAG8DEABvAyAAbwMwAG8DQABvA2AAbwOAAG8DkABvA6AAbwPAAG8D0ABvC4AAbwugAG8LwABvC+AAbwwQAG8MIABvDDAAbwxAAG8MUABvDHAAbwyQAG8MoABvDLAAbwzQAG8M4ABvFJAAbxSwAG8U0ABvFPAAbxUgAG8VMABvFUAAbxVQAG8VYABvFYAAbxWgAG8VsABvFcAAbxXgAG8V8ABvHaAAbx3AAG8d4ABvHgAAbx4wAG8eQABvHlAAbx5gAG8ecABvHpAAbx6wAG8ewABvHtAAbx7wAG8fAABvJrAAbybQAG8m8ABvJxAAbydAAG8nUABvJ2AAbydwAG8ngABvJ6AAbyfAAG8n0ABvJ+AAbygAAG8oEABvLKAAby7gAG8xUABvM5AAbzPAAG8z8ABvNBAAbzQwAG80UABvNHAAbzSAAG80sABvNkAAbzgQAG84QABvOHAAbzigAG840ABvOQAAbzkwAG85YABvOzAAbztgAG87kABvO8AAbzvwAG88IABvPFAAbzyAAG88oABvRFAAb0RwAG9EoABvRMAAb0TwAG9FAABvRRAAb0UgAG9FMABvRVAAb0WAAG9FkABvRaAAb0XAAG9F0ABvTYAAb02gAG9N0ABvTfAAb04gAG9OMABvTkAAb05QAG9OYABvToAAb06wAG9OwABvTtAAb07wAG9PAABvVrAAb1bQAG9XAABvVyAAb1dQAG9XYABvV3AAb1eAAG9XkABvV7AAb1fgAG9X8ABvWAAAb1ggAG9YMABvX+AAb2AAAG9gMABvYFAAb2CAAG9gkABvYKAAb2CwAG9gwABvYOAAb2EQAG9hIABvYTAAb2FQAG9hYABvaZAAb2vQAG9uEABvcEAAb3KwAG90sABvdyAAb3mQAG97kABvfdAAb4AQAG+AMABvgGAAb4CAAG+AoABvgMAAb4DwAG+BIABvgUAAb4FgAG+BkABvgbAAb4HQAG+CAABvgjAAb4JAAG+CkABvhCAAb4RwAG+EkABvhOAAb4UQAG+FMABvicAAb4wAAG+OcABvkLAAb5DgAG+RAABvkSAAb5FAAG+RYABvkYAAb5GQAG+RwABvk1AAb5WgAG+VwABvleAAb5YAAG+WIABvlkAAb5ZgAG+WgABvlqAAb5bAAG+ZEABvmUAAb5lwAG+ZoABvmdAAb5oAAG+aMABvmmAAb5qQAG+awABvmuAAb6KQAG+isABvouAAb6MAAG+jMABvo0AAb6NQAG+jYABvo3AAb6OQAG+jsABvo8AAb6PQAG+j8ABvpAAAb6UQAG+lIABvpUAAb6zwAG+tEABvrTAAb61QAG+tgABvrZAAb62gAG+tsABvrcAAb63gAG+uAABvrhAAb64gAG+uQABvrlAAb7YAAG+2IABvtlAAb7ZwAG+2oABvtrAAb7bAAG+20ABvtuAAb7cAAG+3IABvtzAAb7dAAG+3YABvt3AAb7iAAG+4kABvuLAAb8BgAG/AgABvwKAAb8DAAG/A8ABvwQAAb8EQAG/BIABvwTAAb8FQAG/BcABvwYAAb8GQAG/BsABvwcAAb8lwAG/JkABvycAAb8ngAG/KEABvyiAAb8owAG/KQABvylAAb8pwAG/KkABvyqAAb8qwAG/K0ABvyuAAb8vwAG/MAABvzCAAb9PQAG/T8ABv1BAAb9QwAG/UYABv1HAAb9SAAG/UkABv1KAAb9TAAG/U4ABv1PAAb9UAAG/VIABv1TAAb9zgAG/dAABv3TAAb91QAG/dgABv3ZAAb92gAG/dsABv3cAAb93gAG/eAABv3hAAb94gAG/eQABv3lAAb9/gAG/f8ABv4AAAb+AgAG/n0ABv5/AAb+gQAG/oMABv6GAAb+hwAG/ogABv6JAAb+igAG/owABv6OAAb+jwAG/pAABv6SAAb+kwAG/w4ABv8QAAb/EwAG/xUABv8YAAb/GQAG/xoABv8bAAb/HAAG/x4ABv8gAAb/IQAG/yIABv8kAAb/JQAG/0QABv9dAAb/YgAG/2UABv9qAAb/bQAG/28ABv98AAcADwAHADIABwBSAAcAcgAHAHQABwB2AAcAeAAHAHoABwB9AAcAfgAHAH8ABwCCAAcAgwAHAIUABwCGAAcAiQAHAIwABwCNAAcAjgAHAJEABwCSAAcAlwAHALAABwC5AAcAuwAHAL4ABwDHAAcAygAHAM0ABwDPAAcBGAAHATwABwFjAAcBhwAHAYoABwGMAAcBjgAHAZAABwGSAAcBlAAHAZUABwGYAAcBsQAHAdIABwHUAAcB1gAHAdgABwHaAAcB3AAHAd4ABwHgAAcB4gAHAgMABwIGAAcCCQAHAgwABwIPAAcCEgAHAhUABwIYAAcCGwAHAh0ABwKYAAcCmgAHApwABwKeAAcCoQAHAqIABwKjAAcCpAAHAqUABwKnAAcCqQAHAqoABwKrAAcCrQAHAq4ABwMpAAcDKwAHAy0ABwMvAAcDMgAHAzMABwM0AAcDNQAHAzYABwM4AAcDOgAHAzsABwM8AAcDPgAHAz8ABwO6AAcDvAAHA78ABwPBAAcDxAAHA8UABwPGAAcDxwAHA8gABwPKAAcDzAAHA80ABwPOAAcD0AAHA9EABwPqAAcD6wAHA+wABwPuAAcEaQAHBGsABwRtAAcEbwAHBHIABwRzAAcEdAAHBHUABwR2AAcEeAAHBHoABwR7AAcEfAAHBH4ABwR/AAcE+gAHBPwABwT+AAcFAAAHBQMABwUEAAcFBQAHBQYABwUHAAcFCQAHBQsABwUMAAcFDQAHBQ8ABwUQAAcFiwAHBY0ABwWPAAcFkQAHBZQABwWVAAcFlgAHBZcABwWYAAcFmgAHBZwABwWdAAcFngAHBaAABwWhAAcGHAAHBh4ABwYgAAcGIgAHBiUABwYmAAcGJwAHBigABwYpAAcGKwAHBi0ABwYuAAcGLwAHBjEABwYyAAcGrQAHBq8ABwaxAAcGswAHBrYABwa3AAcGuAAHBrkABwa6AAcGvAAHBr4ABwa/AAcGwAAHBsIABwbDAAcHDAAHBzAABwdXAAcHewAHB34ABweBAAcHgwAHB4UABweHAAcHiQAHB4oABweNAAcHpgAHB8MABwfGAAcHyQAHB8wABwfPAAcH0gAHB9UABwfYAAcH9QAHB/gABwf7AAcH/gAHCAEABwgEAAcIBwAHCAoABwgMAAcIhwAHCIkABwiMAAcIjgAHCJEABwiSAAcIkwAHCJQABwiVAAcIlwAHCJoABwibAAcInAAHCJ4ABwifAAcJGgAHCRwABwkfAAcJIQAHCSQABwklAAcJJgAHCScABwkoAAcJKgAHCS0ABwkuAAcJLwAHCTEABwkyAAcJrQAHCa8ABwmyAAcJtAAHCbcABwm4AAcJuQAHCboABwm7AAcJvQAHCcAABwnBAAcJwgAHCcQABwnFAAcKQAAHCkIABwpFAAcKRwAHCkoABwpLAAcKTAAHCk0ABwpOAAcKUAAHClMABwpUAAcKVQAHClcABwpYAAcK0wAHCtUABwrXAAcK2QAHCtwABwrdAAcK3gAHCt8ABwrgAAcK4gAHCuUABwrmAAcK5wAHCukABwrqAAcLZQAHC2cABwtpAAcLawAHC24ABwtvAAcLcAAHC3EABwtyAAcLdAAHC3cABwt4AAcLeQAHC3sABwt8AAcL9wAHC/kABwv8AAcL/gAHDAEABwwCAAcMAwAHDAQABwwFAAcMBwAHDAoABwwLAAcMDAAHDA4ABwwPAAcMIAAHDCUABwwoAAcMKgAHDGMABwxtAAcMdgAHDHkABwx7AAcMfgAHDIEABwyEAAcMhwAHDJAABw0zAAcNVwAHDXsABw2bAAcNwgAHDekABw4JAAcOMAAHDlQABw53AAcOngAHDsIABw7mAAcPCgAHDzEABw8yAAcPNAAHDzYABw85AAcPOwAHDz4ABw9AAAcPQgAHD0UABw9HAAcPSQAHD0wABw9PAAcPUQAHD1MABw9VAAcPWAAHD1sABw9eAAcPZwAHD4AABw+FAAcPhwAHD4wABw+PAAcPkQAHD9oABw/+AAcQJQAHEEkABxBMAAcQTgAHEFAABxBSAAcQVAAHEFYABxBXAAcQWgAHEHMABxCYAAcQmgAHEJwABxCeAAcQoAAHEKIABxCkAAcQpgAHEKgABxCqAAcQzwAHENIABxDVAAcQ2AAHENsABxDeAAcQ4QAHEOQABxDnAAcQ6gAHEOwABxFnAAcRaQAHEWwABxFuAAcRcQAHEXIABxFzAAcRdAAHEXUABxF3AAcReQAHEXoABxF7AAcRfQAHEX4ABxGPAAcRkAAHEZIABxINAAcSDwAHEhEABxITAAcSFgAHEhcABxIYAAcSGQAHEhoABxIcAAcSHgAHEh8ABxIgAAcSIgAHEiMABxKeAAcSoAAHEqMABxKlAAcSqAAHEqkABxKqAAcSqwAHEqwABxKuAAcSsAAHErEABxKyAAcStAAHErUABxLGAAcSxwAHEskABxNEAAcTRgAHE0gABxNKAAcTTQAHE04ABxNPAAcTUAAHE1EABxNTAAcTVQAHE1YABxNXAAcTWQAHE1oABxPVAAcT1wAHE9oABxPcAAcT3wAHE+AABxPhAAcT4gAHE+MABxPlAAcT5wAHE+gABxPpAAcT6wAHE+wABxP9AAcT/gAHFAAABxR7AAcUfQAHFH8ABxSBAAcUhAAHFIUABxSGAAcUhwAHFIgABxSKAAcUjAAHFI0ABxSOAAcUkAAHFJEABxUMAAcVDgAHFREABxUTAAcVFgAHFRcABxUYAAcVGQAHFRoABxUcAAcVHgAHFR8ABxUgAAcVIgAHFSMABxU8AAcVPQAHFT4ABxVAAAcVuwAHFb0ABxW/AAcVwQAHFcQABxXFAAcVxgAHFccABxXIAAcVygAHFcwABxXNAAcVzgAHFdAABxXRAAcWTAAHFk4ABxZRAAcWUwAHFlYABxZXAAcWWAAHFlkABxZaAAcWXAAHFl4ABxZfAAcWYAAHFmIABxZjAAcWeQAHFpIABxanAAcWqgAHFq0ABxawAAcWswAHFrYABxbLAAcWzgAHFtEABxbUAAcW1wAHFtoABxbcAAcW9AAHFwIABxcaAAcXMAAHFzgABxfLAAcX7gAHGA4ABxguAAcYMAAHGDIABxg0AAcYNgAHGDkABxg6AAcYOwAHGD4ABxg/AAcYQQAHGEIABxhEAAcYRwAHGEgABxhJAAcYTAAHGE0ABxhSAAcYawAHGHQABxh2AAcYeAAHGIEABxiEAAcYhwAHGIkABxjSAAcY9gAHGR0ABxlBAAcZRAAHGUYABxlIAAcZSgAHGUwABxlOAAcZTwAHGVIABxlrAAcZjAAHGY4ABxmQAAcZkgAHGZQABxmWAAcZmAAHGZoABxmcAAcZvQAHGcAABxnDAAcZxgAHGckABxnMAAcZzwAHGdIABxnVAAcZ1wAHGlIABxpUAAcaVgAHGlgABxpbAAcaXAAHGl0ABxpeAAcaXwAHGmEABxpjAAcaZAAHGmUABxpnAAcaaAAHGuMABxrlAAca5wAHGukABxrsAAca7QAHGu4ABxrvAAca8AAHGvIABxr0AAca9QAHGvYABxr4AAca+QAHG3QABxt2AAcbeQAHG3sABxt+AAcbfwAHG4AABxuBAAcbggAHG4QABxuGAAcbhwAHG4gABxuKAAcbiwAHG6QABxulAAcbpgAHG6gABxwjAAccJQAHHCcABxwpAAccLAAHHC0ABxwuAAccLwAHHDAABxwyAAccNAAHHDUABxw2AAccOAAHHDkABxy0AAcctgAHHLgABxy6AAccvQAHHL4ABxy/AAccwAAHHMEABxzDAAccxQAHHMYABxzHAAccyQAHHMoABx1FAAcdRwAHHUkABx1LAAcdTgAHHU8ABx1QAAcdUQAHHVIABx1UAAcdVgAHHVcABx1YAAcdWgAHHVsABx3WAAcd2AAHHdoABx3cAAcd3wAHHeAABx3hAAcd4gAHHeMABx3lAAcd5wAHHegABx3pAAcd6wAHHewABx5nAAceaQAHHmsABx5tAAcecAAHHnEABx5yAAcecwAHHnQABx52AAceeAAHHnkABx56AAcefAAHHn0ABx7GAAce6gAHHxEABx81AAcfOAAHHzoABx88AAcfPgAHH0AABx9CAAcfQwAHH0YABx9fAAcffAAHH34ABx+AAAcfggAHH4QABx+GAAcfiAAHH4oABx+nAAcfqgAHH60ABx+wAAcfswAHH7YABx+5AAcfvAAHH74AByA5AAcgOwAHID0AByA/AAcgQgAHIEMAByBEAAcgRQAHIEYAByBIAAcgSgAHIEsAByBMAAcgTgAHIE8AByDKAAcgzAAHIM4AByDQAAcg0wAHINQAByDVAAcg1gAHINcAByDZAAcg2wAHINwAByDdAAcg3wAHIOAAByFbAAchXQAHIV8AByFhAAchZAAHIWUAByFmAAchZwAHIWgAByFqAAchbAAHIW0AByFuAAchcAAHIXEAByHsAAch7gAHIfEAByHzAAch9gAHIfcAByH4AAch+QAHIfoAByH8AAch/gAHIf8AByIAAAciAgAHIgMAByJ+AAcigAAHIoIAByKEAAcihwAHIogAByKJAAciigAHIosAByKNAAcijwAHIpAAByKRAAcikwAHIpQAByMPAAcjEQAHIxMAByMVAAcjGAAHIxkAByMaAAcjGwAHIxwAByMeAAcjIAAHIyEAByMiAAcjJAAHIyUAByOgAAcjogAHI6QAByOmAAcjqQAHI6oAByOrAAcjrAAHI60AByOvAAcjsQAHI7IAByOzAAcjtQAHI7YAByRJAAckbAAHJIwABySsAAckrgAHJLAABySyAAcktAAHJLcAByS4AAckuQAHJLwAByS9AAckvwAHJMAAByTCAAckxQAHJMYAByTHAAckygAHJMsAByTQAAck6QAHJPIAByT0AAck9gAHJP8AByUCAAclBQAHJQcAByVQAAcldAAHJZsAByW/AAclwgAHJcQAByXGAAclyAAHJcoAByXMAAclzQAHJdAAByXpAAcmCgAHJgwAByYOAAcmEAAHJhIAByYUAAcmFgAHJhgAByYaAAcmOwAHJj4AByZBAAcmRAAHJkcAByZKAAcmTQAHJlAAByZTAAcmVQAHJtAABybSAAcm1AAHJtYABybZAAcm2gAHJtsABybcAAcm3QAHJt8ABybhAAcm4gAHJuMAByblAAcm5gAHJ2EABydjAAcnZQAHJ2cABydqAAcnawAHJ2wABydtAAcnbgAHJ3AABydyAAcncwAHJ3QAByd2AAcndwAHJ/IAByf0AAcn9wAHJ/kAByf8AAcn/QAHJ/4AByf/AAcoAAAHKAIABygEAAcoBQAHKAYABygIAAcoCQAHKCIABygjAAcoJAAHKCYAByihAAcoowAHKKUAByinAAcoqgAHKKsAByisAAcorQAHKK4AByiwAAcosgAHKLMAByi0AAcotgAHKLcABykyAAcpNAAHKTYAByk4AAcpOwAHKTwAByk9AAcpPgAHKT8ABylBAAcpQwAHKUQABylFAAcpRwAHKUgABynDAAcpxQAHKccABynJAAcpzAAHKc0ABynOAAcpzwAHKdAABynSAAcp1AAHKdUABynWAAcp2AAHKdkABypUAAcqVgAHKlgABypaAAcqXQAHKl4ABypfAAcqYAAHKmEABypjAAcqZQAHKmYABypnAAcqaQAHKmoAByrlAAcq5wAHKukAByrrAAcq7gAHKu8AByrwAAcq8QAHKvIAByr0AAcq9gAHKvcAByr4AAcq+gAHKvsABytEAAcraAAHK48AByuzAAcrtgAHK7gAByu6AAcrvAAHK74AByvAAAcrwQAHK8QAByvdAAcr+gAHK/wAByv+AAcsAAAHLAIABywEAAcsBgAHLAgABywlAAcsKAAHLCsABywuAAcsMQAHLDQAByw3AAcsOgAHLDwAByy3AAcsuQAHLLsAByy9AAcswAAHLMEAByzCAAcswwAHLMQAByzGAAcsyAAHLMkAByzKAAcszAAHLM0ABy1IAActSgAHLUwABy1OAActUQAHLVIABy1TAActVAAHLVUABy1XAActWQAHLVoABy1bAActXQAHLV4ABy3ZAAct2wAHLd0ABy3fAAct4gAHLeMABy3kAAct5QAHLeYABy3oAAct6gAHLesABy3sAAct7gAHLe8ABy5qAAcubAAHLm8ABy5xAAcudAAHLnUABy52AAcudwAHLngABy56AAcufAAHLn0ABy5+AAcugAAHLoEABy78AAcu/gAHLwAABy8CAAcvBQAHLwYABy8HAAcvCAAHLwkABy8LAAcvDQAHLw4ABy8PAAcvEQAHLxIABy+NAAcvjwAHL5EABy+TAAcvlgAHL5cABy+YAAcvmQAHL5oABy+cAAcvngAHL58ABy+gAAcvogAHL6MABzAeAAcwIAAHMCIABzAkAAcwJwAHMCg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AB1NaAAdTXQAHU14AB1NfAAdTYAAHU2EAB1NjAAdTZQAHU2YAB1NnAAdTaQAHU2oAB1NtAAdT6AAHU+oAB1PsAAdT7gAHU/EAB1PyAAdT8wAHU/QAB1P1AAdT9wAHU/kAB1P6AAdT+wAHU/0AB1P+AAdUeQAHVHsAB1R9AAdUfwAHVIIAB1SDAAdUhAAHVIUAB1SGAAdUiAAHVIoAB1SLAAdUjAAHVI4AB1SPAAdVCgAHVQwAB1UOAAdVEAAHVRMAB1UUAAdVFQAHVRYAB1UXAAdVGQAHVRsAB1UcAAdVHQAHVR8AB1UgAAdVmwAHVZ0AB1WfAAdVoQAHVaQAB1WlAAdVpgAHVacAB1WoAAdVqgAHVawAB1WtAAdVrgAHVbAAB1WxAAdVwgAHVcMAB1XFAAdV1gAHVeMAB1XmAAdV6QAHVewAB1XuAAdWJwAHVioAB1YsAAdWLwAHVjIAB1Y1AAdWOAAHVrsAB1bfAAdXAwAHVyYAB1dNAAdXbQAHV5QAB1e7AAdX2wAHV/8AB1gjAAdYJQAHWCgAB1gqAAdYLAAHWC4AB1gxAAdYNAAHWDYAB1g4AAdYOwAHWD0AB1g/AAdYQgAHWEUAB1hGAAdYTwAHWGgAB1htAAdYbwAHWHQAB1h3AAdYeQAHWMIAB1jmAAdZDQAHWTEAB1k0AAdZNgAHWTgAB1k6AAdZPAAHWT4AB1k/AAdZQgAHWVsAB1mAAAdZggAHWYQAB1mGAAdZiAAHWYoAB1mMAAdZjgAHWZAAB1mSAAdZtwAHWboAB1m9AAdZwAAHWcMAB1nGAAdZyQAHWcwAB1nPAAdZ0gAHWdQAB1pPAAdaUQAHWlQAB1pWAAdaWQAHWloAB1pbAAdaXAAHWl0AB1pfAAdaYQAHWmIAB1pjAAdaZQAHWmYAB1p3AAdaeAAHWnoAB1r1AAda9wAHWvkAB1r7AAda/gAHWv8AB1sAAAdbAQAHWwIAB1sEAAdbBgAHWwcAB1sIAAdbCgAHWwsAB1uGAAdbiAAHW4sAB1uNAAdbkAAHW5EAB1uSAAdbkwAHW5QAB1uWAAdbmAAHW5kAB1uaAAdbnAAHW50AB1uuAAdbrwAHW7EAB1wsAAdcLgAHXDAAB1wyAAdcNQAHXDYAB1w3AAdcOAAHXDkAB1w7AAdcPQAHXD4AB1w/AAdcQQAHXEIAB1y9AAdcvwAHXMIAB1zEAAdcxwAHXMgAB1zJAAdcygAHXMsAB1zNAAdczwAHXNAAB1zRAAdc0wAHXNQAB1zlAAdc5gAHXOgAB11jAAddZQAHXWcAB11pAAddbAAHXW0AB11uAAddbwAHXXAAB11yAAdddAAHXXUAB112AAddeAAHXXkAB130AAdd9gAHXfkAB137AAdd/gAHXf8AB14AAAdeAQAHXgIAB14EAAdeBgAHXgcAB14IAAdeCgAHXgsAB14kAAdeJQAHXiYAB14oAAdeowAHXqUAB16nAAdeqQAHXqwAB16tAAdergAHXq8AB16wAAdesgAHXrQAB161AAdetgAHXrgAB165AAdfNAAHXzYAB185AAdfOwAHXz4AB18/AAdfQAAHX0EAB19CAAdfRAAHX0YAB19HAAdfSAAHX0oAB19LAAdfZwAHX4AAB1+FAAdfiAAHX40AB1+QAAdfkgAHX6YAB2A5AAdgXAAHYHwAB2CcAAdgngAHYKAAB2CiAAdgpAAHYKcAB2CoAAdgqQAHYKwAB2CtAAdgrwAHYLAAB2CzAAdgtgAHYLcAB2C4AAdguwAHYLwAB2DBAAdg2gAHYOMAB2DlAAdg6AAHYPEAB2D0AAdg9wAHYPkAB2FCAAdhZgAHYY0AB2GxAAdhtAAHYbYAB2G4AAdhugAHYbwAB2G+AAdhvwAHYcIAB2HbAAdh/AAHYf4AB2IAAAdiAgAHYgQAB2IGAAdiCAAHYgoAB2IMAAdiLQAHYjAAB2IzAAdiNgAHYjkAB2I8AAdiPwAHYkIAB2JFAAdiRwAHYsIAB2LEAAdixgAHYsgAB2LLAAdizAAHYs0AB2LOAAdizwAHYtEAB2LTAAdi1AAHYtUAB2LXAAdi2AAHY1MAB2NVAAdjVwAHY1kAB2NcAAdjXQAHY14AB2NfAAdjYAAHY2IAB2NkAAdjZQAHY2YAB2NoAAdjaQAHY+QAB2PmAAdj6QAHY+sAB2PuAAdj7wAHY/AAB2PxAAdj8gAHY/QAB2P2AAdj9wAHY/gAB2P6AAdj+wAHZBQAB2QVAAdkFgAHZBgAB2STAAdklQAHZJcAB2SZAAdknAAHZJ0AB2SeAAdknwAHZKAAB2SiAAdkpAAHZKUAB2SmAAdkqAAHZKkAB2UkAAdlJgAHZSgAB2UqAAdlLQAHZS4AB2UvAAdlMAAHZTEAB2UzAAdlNQAHZTYAB2U3AAdlOQAHZToAB2W1AAdltwAHZbkAB2W7AAdlvgAHZb8AB2XAAAdlwQAHZcIAB2XEAAdlxgAHZccAB2XIAAdlygAHZcsAB2ZGAAdmSAAHZkoAB2ZMAAdmTwAHZlAAB2ZRAAdmUgAHZlMAB2ZVAAdmVwAHZlgAB2ZZAAdmWwAHZlwAB2bXAAdm2QAHZtsAB2bdAAdm4AAHZuEAB2biAAdm4wAHZuQAB2bmAAdm6AAHZukAB2bqAAdm7AAHZu0AB2c2AAdnWgAHZ4EAB2elAAdnqAAHZ6sAB2etAAdnrwAHZ7EAB2ezAAdntAAHZ7cAB2fQAAdn7QAHZ/AAB2fzAAdn9gAHZ/kAB2f8AAdn/wAHaAIAB2gfAAdoIgAHaCUAB2goAAdoKwAHaC4AB2gxAAdoNAAHaDYAB2ixAAdoswAHaLYAB2i4AAdouwAHaLwAB2i9AAdovgAHaL8AB2jBAAdoxAAHaMUAB2jGAAdoyAAHaMkAB2lEAAdpRgAHaUkAB2lLAAdpTgAHaU8AB2lQAAdpUQAHaVIAB2lUAAdpVwAHaVgAB2lZAAdpWwAHaVwAB2nXAAdp2QAHadwAB2neAAdp4QAHaeIAB2njAAdp5AAHaeUAB2nnAAdp6gAHaesAB2nsAAdp7gAHae8AB2pqAAdqbAAHam8AB2pxAAdqdAAHanUAB2p2AAdqdwAHangAB2p6AAdqfQAHan4AB2p/AAdqgQAHaoIAB2sFAAdrKQAHa00AB2twAAdrlwAHa7cAB2veAAdsBQAHbCUAB2xJAAdsbQAHbG8AB2xyAAdsdAAHbHYAB2x4AAdsewAHbH4AB2yAAAdsggAHbIUAB2yHAAdsiQAHbIwAB2yPAAdskAAHbJkAB2yyAAdstwAHbLkAB2y+AAdswQAHbMMAB20MAAdtMAAHbVcAB217AAdtfgAHbYAAB22CAAdthAAHbYYAB22IAAdtiQAHbYwAB22lAAdtygAHbcwAB23OAAdt0AAHbdIAB23UAAdt1gAHbdgAB23aAAdt3AAHbgEAB24EAAduBwAHbgoAB24NAAduEAAHbhMAB24WAAduGQAHbhwAB24eAAdumQAHbpsAB26eAAduoAAHbqMAB26kAAdupQAHbqYAB26nAAduqQAHbqsAB26sAAdurQAHbq8AB26wAAduwQAHbsIAB27EAAdvPwAHb0EAB29DAAdvRQAHb0gAB29JAAdvSgAHb0sAB29MAAdvTgAHb1AAB29RAAdvUgAHb1QAB29VAAdv0AAHb9IAB2/VAAdv1wAHb9oAB2/bAAdv3AAHb90AB2/eAAdv4AAHb+IAB2/jAAdv5AAHb+YAB2/nAAdv+AAHb/kAB2/7AAdwdgAHcHgAB3B6AAdwfAAHcH8AB3CAAAdwgQAHcIIAB3CDAAdwhQAHcIcAB3CIAAdwiQAHcIsAB3CMAAdxBwAHcQkAB3EMAAdxDgAHcREAB3ESAAdxEwAHcRQAB3EVAAdxFwAHcRkAB3EaAAdxGwAHcR0AB3EeAAdxLwAHcTAAB3EyAAdxrQAHca8AB3GxAAdxswAHcbYAB3G3AAdxuAAHcbkAB3G6AAdxvAAHcb4AB3G/AAdxwAAHccIAB3HDAAdyPgAHckAAB3JDAAdyRQAHckgAB3JJAAdySgAHcksAB3JMAAdyTgAHclAAB3JRAAdyUgAHclQAB3JVAAdybgAHcm8AB3JwAAdycgAHcu0AB3LvAAdy8QAHcvMAB3L2AAdy9wAHcvgAB3L5AAdy+gAHcvwAB3L+AAdy/wAHcwAAB3MCAAdzAwAHc34AB3OAAAdzgwAHc4UAB3OIAAdziQAHc4oAB3OLAAdzjAAHc44AB3OQAAdzkQAHc5IAB3OUAAdzlQAHc6kAB3PCAAdzxwAHc8oAB3PPAAdz0gAHc9QAB3PiAAd0dQAHdJgAB3S4AAd02AAHdNoAB3TcAAd03gAHdOAAB3TjAAd05AAHdOUAB3ToAAd06QAHdOsAB3TsAAd07wAHdPIAB3TzAAd09AAHdPcAB3T4AAd0/QAHdRYAB3UfAAd1IQAHdSQAB3UtAAd1MAAHdTMAB3U1AAd1fgAHdaIAB3XJAAd17QAHdfAAB3XyAAd19AAHdfYAB3X4AAd1+gAHdfsAB3X+AAd2FwAHdjgAB3Y6AAd2PAAHdj4AB3ZAAAd2QgAHdkQAB3ZGAAd2SAAHdmkAB3ZsAAd2bwAHdnIAB3Z1AAd2eAAHdnsAB3Z+AAd2gQAHdoMAB3b+AAd3AAAHdwIAB3cEAAd3BwAHdwgAB3cJAAd3CgAHdwsAB3cNAAd3DwAHdxAAB3cRAAd3EwAHdxQAB3ePAAd3kQAHd5MAB3eVAAd3mAAHd5kAB3eaAAd3mwAHd5wAB3eeAAd3oAAHd6EAB3eiAAd3pAAHd6UAB3ggAAd4IgAHeCUAB3gnAAd4KgAHeCsAB3gsAAd4LQAHeC4AB3gwAAd4MgAHeDMAB3g0AAd4NgAHeDcAB3hQAAd4UQAHeFIAB3hUAAd4zwAHeNEAB3jTAAd41QAHeNgAB3jZAAd42gAHeNsAB3jcAAd43gAHeOAAB3jhAAd44gAHeOQAB3jlAAd5YAAHeWIAB3lkAAd5ZgAHeWkAB3lqAAd5awAHeWwAB3ltAAd5bwAHeXEAB3lyAAd5cwAHeXUAB3l2AAd58QAHefMAB3n1AAd59wAHefoAB3n7AAd5/AAHef0AB3n+AAd6AAAHegIAB3oDAAd6BAAHegYAB3oHAAd6ggAHeoQAB3qGAAd6iAAHeosAB3qMAAd6jQAHeo4AB3qPAAd6kQAHepMAB3qUAAd6lQAHepcAB3qYAAd7EwAHexUAB3sXAAd7GQAHexwAB3sdAAd7HgAHex8AB3sgAAd7IgAHeyQAB3slAAd7JgAHeygAB3spAAd7cgAHe5YAB3u9AAd74QAHe+QAB3vnAAd76QAHe+sAB3vtAAd77wAHe/AAB3vzAAd8DAAHfCkAB3wsAAd8LwAHfDIAB3w1AAd8OAAHfDsAB3w+AAd8WwAHfF4AB3xhAAd8ZAAHfGcAB3xqAAd8bQAHfHAAB3xyAAd87QAHfO8AB3zyAAd89AAHfPcAB3z4AAd8+QAHfPoAB3z7AAd8/QAHfQAAB30BAAd9AgAHfQQAB30FAAd9gAAHfYIAB32FAAd9hwAHfYoAB32LAAd9jAAHfY0AB32OAAd9kAAHfZMAB32UAAd9lQAHfZcAB32YAAd+EwAHfhUAB34YAAd+GgAHfh0AB34eAAd+HwAHfiAAB34hAAd+IwAHfiYAB34nAAd+KAAHfioAB34rAAd+pgAHfqgAB36rAAd+rQAHfrAAB36xAAd+sgAHfrMAB360AAd+tgAHfrkAB366AAd+uwAHfr0AB36+AAd/OQAHfzsAB389AAd/PwAHf0IAB39DAAd/RAAHf0UAB39GAAd/SAAHf0sAB39MAAd/TQAHf08AB39QAAd/ywAHf80AB3/PAAd/0QAHf9QAB3/VAAd/1gAHf9cAB3/YAAd/2gAHf90AB3/eAAd/3wAHf+EAB3/iAAeAXQAHgF8AB4BiAAeAZAAHgGcAB4BoAAeAaQAHgGoAB4BrAAeAbQAHgHAAB4BxAAeAcgAHgHQAB4B1AAeAhgAHgIsAB4COAAeAkAAHgMkAB4DMAAeAzgAHgNEAB4DUAAeA1wAHgNoAB4DfAAeA8AAHgQkAB4EaAAeBMwAHgUoAB4FcAAeB1wAHgdkAB4HbAAeB3QAHgeAAB4HhAAeB4gAHgeMAB4HkAAeB5gAHgekAB4HqAAeB6wAHge0AB4HuAAeCaQAHgmsAB4JtAAeCbwAHgnIAB4JzAAeCdAAHgnUAB4J2AAeCeAAHgnsAB4J8AAeCfQAHgn8AB4KAAAeC+wAHgv0AB4MAAAeDAgAHgwUAB4MGAAeDBwAHgwgAB4MJAAeDCwAHgw4AB4MPAAeDEAAHgxIAB4MTAAeDJAAHgykAB4MsAAeDLgAHgzMAB4NsAAeDbwAHg3EAB4N0AAeDdwAHg3oAB4N9AAeEAAAHhCQAB4RIAAeEawAHhJIAB4SyAAeE2QAHhQAAB4UgAAeFRAAHhWgAB4VqAAeFbQAHhW8AB4VxAAeFcwAHhXYAB4V5AAeFewAHhX0AB4WAAAeFggAHhYQAB4WHAAeFigAHhYsAB4WQAAeFqQAHha4AB4WwAAeFtQAHhbgAB4W6AAeGAwAHhicAB4ZOAAeGcgAHhnUAB4Z3AAeGeQAHhnsAB4Z9AAeGfwAHhoAAB4aDAAeGnAAHhsEAB4bDAAeGxQAHhscAB4bJAAeGywAHhs0AB4bPAAeG0QAHhtMAB4b4AAeG+wAHhv4AB4cBAAeHBAAHhwcAB4cKAAeHDQAHhxAAB4cTAAeHFQAHh5AAB4eSAAeHlQAHh5cAB4eaAAeHmwAHh5wAB4edAAeHngAHh6AAB4eiAAeHowAHh6QAB4emAAeHpwAHh7gAB4e5AAeHuwAHiDYAB4g4AAeIOgAHiDwAB4g/AAeIQAAHiEEAB4hCAAeIQwAHiEUAB4hHAAeISAAHiEkAB4hLAAeITAAHiMcAB4jJAAeIzAAHiM4AB4jRAAeI0gAHiNMAB4jUAAeI1QAHiNcAB4jZAAeI2gAHiNsAB4jdAAeI3gAHiO8AB4jwAAeI8gAHiW0AB4lvAAeJcQAHiXMAB4l2AAeJdwAHiXgAB4l5AAeJegAHiXwAB4l+AAeJfwAHiYAAB4mCAAeJgwAHif4AB4oAAAeKAwAHigUAB4oIAAeKCQAHigoAB4oLAAeKDAAHig4AB4oQAAeKEQAHihIAB4oUAAeKFQAHiiYAB4onAAeKKQAHiqQAB4qmAAeKqAAHiqoAB4qtAAeKrgAHiq8AB4qwAAeKsQAHirMAB4q1AAeKtgAHircAB4q5AAeKugAHizUAB4s3AAeLOgAHizwAB4s/AAeLQAAHi0EAB4tCAAeLQwAHi0UAB4tHAAeLSAAHi0kAB4tLAAeLTAAHi2UAB4tmAAeLZwAHi2kAB4vkAAeL5gAHi+gAB4vqAAeL7QAHi+4AB4vvAAeL8AAHi/EAB4vzAAeL9QAHi/YAB4v3AAeL+QAHi/oAB4x1AAeMdwAHjHoAB4x8AAeMfwAHjIAAB4yBAAeMggAHjIMAB4yFAAeMhwAHjIgAB4yJAAeMiwAHjIwAB4ypAAeMwgAHjMcAB4zKAAeMzwAHjNIAB4zUAAeM6QAHjXwAB42fAAeNvwAHjd8AB43hAAeN4wAHjeUAB43nAAeN6gAHjesAB43sAAeN7wAHjfAAB43yAAeN8wAHjfYAB435AAeN+gAHjfsAB43+AAeN/wAHjgQAB44dAAeOJgAHjigAB44rAAeONAAHjjcAB446AAeOPAAHjoUAB46pAAeO0AAHjvQAB473AAeO+QAHjvsAB479AAeO/wAHjwEAB48CAAePBQAHjx4AB48/AAePQQAHj0MAB49FAAePRwAHj0kAB49LAAePTQAHj08AB49wAAePcwAHj3YAB495AAePfAAHj38AB4+CAAePhQAHj4gAB4+KAAeQBQAHkAcAB5AJAAeQCwAHkA4AB5APAAeQEAAHkBEAB5ASAAeQFAAHkBYAB5AXAAeQGAAHkBoAB5AbAAeQlgAHkJgAB5CaAAeQnAAHkJ8AB5CgAAeQoQAHkKIAB5CjAAeQpQAHkKcAB5CoAAeQqQAHkKsAB5CsAAeRJwAHkSkAB5EsAAeRLgAHkTEAB5EyAAeRMwAHkTQAB5E1AAeRNwAHkTkAB5E6AAeROwAHkT0AB5E+AAeRVwAHkVgAB5FZAAeRWwAHkdYAB5HYAAeR2gAHkdwAB5HfAAeR4AAHkeEAB5HiAAeR4wAHkeUAB5HnAAeR6AAHkekAB5HrAAeR7AAHkmcAB5JpAAeSawAHkm0AB5JwAAeScQAHknIAB5JzAAeSdAAHknYAB5J4AAeSeQAHknoAB5J8AAeSfQAHkvgAB5L6AAeS/AAHkv4AB5MBAAeTAgAHkwMAB5MEAAeTBQAHkwcAB5MJAAeTCgAHkwsAB5MNAAeTDgAHk4kAB5OLAAeTjQAHk48AB5OSAAeTkwAHk5QAB5OVAAeTlgAHk5gAB5OaAAeTmwAHk5wAB5OeAAeTnwAHlBoAB5QcAAeUHgAHlCAAB5QjAAeUJAAHlCUAB5QmAAeUJwAHlCkAB5QrAAeULAAHlC0AB5QvAAeUMAAHlHkAB5SdAAeUxAAHlOgAB5TrAAeU7gAHlPAAB5TyAAeU9AAHlPYAB5T3AAeU+gAHlRMAB5UwAAeVMwAHlTYAB5U5AAeVPAAHlT8AB5VCAAeVRQAHlWIAB5VlAAeVaAAHlWsAB5VuAAeVcQAHlXQAB5V3AAeVeQAHlfQAB5X2AAeV+QAHlfsAB5X+AAeV/wAHlgAAB5YBAAeWAgAHlgQAB5YHAAeWCAAHlgkAB5YLAAeWDAAHlocAB5aJAAeWjAAHlo4AB5aRAAeWkgAHlpMAB5aUAAeWlQAHlpcAB5aaAAeWmwAHlpwAB5aeAAeWnwAHlxoAB5ccAAeXHwAHlyEAB5ckAAeXJQAHlyYAB5cnAAeXKAAHlyoAB5ctAAeXLgAHly8AB5cxAAeXMgAHl60AB5evAAeXsgAHl7QAB5e3AAeXuAAHl7kAB5e6AAeXuwAHl70AB5fAAAeXwQAHl8IAB5fEAAeXxQAHmEgAB5hsAAeYkAAHmLMAB5jaAAeY+gAHmSEAB5lIAAeZaAAHmYwAB5mwAAeZsgAHmbUAB5m3AAeZuQAHmbsAB5m+AAeZwQAHmcMAB5nFAAeZyAAHmcoAB5nMAAeZzwAHmdIAB5nTAAeZ3AAHmfUAB5n6AAeZ/AAHmgEAB5oEAAeaBgAHmk8AB5pzAAeamgAHmr4AB5rBAAeawwAHmsUAB5rHAAeayQAHmssAB5rMAAeazwAHmugAB5sNAAebDwAHmxEAB5sTAAebFQAHmxcAB5sZAAebGwAHmx0AB5sfAAebRAAHm0cAB5tKAAebTQAHm1AAB5tTAAebVgAHm1kAB5tcAAebXwAHm2EAB5vcAAeb3gAHm+EAB5vjAAeb5gAHm+cAB5voAAeb6QAHm+oAB5vsAAeb7gAHm+8AB5vwAAeb8gAHm/MAB5wEAAecBQAHnAcAB5yCAAechAAHnIYAB5yIAAeciwAHnIwAB5yNAAecjgAHnI8AB5yRAAeckwAHnJQAB5yVAAeclwAHnJgAB50TAAedFQAHnRgAB50aAAedHQAHnR4AB50fAAedIAAHnSEAB50jAAedJQAHnSYAB50nAAedKQAHnSoAB507AAedPAAHnT4AB525AAeduwAHnb0AB52/AAedwgAHncMAB53EAAedxQAHncYAB53IAAedygAHncsAB53MAAedzgAHnc8AB55KAAeeTAAHnk8AB55RAAeeVAAHnlUAB55WAAeeVwAHnlgAB55aAAeeXAAHnl0AB55eAAeeYAAHnmEAB55yAAeecwAHnnUAB57wAAee8gAHnvQAB572AAee+QAHnvoAB577AAee/AAHnv0AB57/AAefAQAHnwIAB58DAAefBQAHnwYAB5+BAAefgwAHn4YAB5+IAAefiwAHn4wAB5+NAAefjgAHn48AB5+RAAefkwAHn5QAB5+VAAeflwAHn5gAB5+xAAefsgAHn7MAB5+1AAegMAAHoDIAB6A0AAegNgAHoDkAB6A6AAegOwAHoDwAB6A9AAegPwAHoEEAB6BCAAegQwAHoEUAB6BGAAegwQAHoMMAB6DGAAegyAAHoMsAB6DMAAegzQAHoM4AB6DPAAeg0QAHoNMAB6DUAAeg1QAHoNcAB6DYAAeg7QAHoQYAB6EPAAehEgAHoRUAB6EeAAehIQAHoSQAB6EmAAehMQAHoUAAB6HTAAeh9gAHohYAB6I2AAeiOAAHojoAB6I8AAeiPgAHokEAB6JCAAeiQwAHokYAB6JHAAeiSQAHokoAB6JNAAeiUAAHolEAB6JSAAeiVQAHolYAB6JfAAeieAAHooEAB6KDAAeihgAHoo8AB6KSAAeilQAHopcAB6LgAAejBAAHoysAB6NPAAejUgAHo1QAB6NWAAejWAAHo1oAB6NcAAejXQAHo2AAB6N5AAejmgAHo5wAB6OeAAejoAAHo6IAB6OkAAejpgAHo6gAB6OqAAejywAHo84AB6PRAAej1AAHo9cAB6PaAAej3QAHo+AAB6PjAAej5QAHpGAAB6RiAAekZAAHpGYAB6RpAAekagAHpGsAB6RsAAekbQAHpG8AB6RxAAekcgAHpHMAB6R1AAekdgAHpPEAB6TzAAek9QAHpPcAB6T6AAek+wAHpPwAB6T9AAek/gAHpQAAB6UCAAelAwAHpQQAB6UGAAelBwAHpYIAB6WEAAelhwAHpYkAB6WMAAeljQAHpY4AB6WPAAelkAAHpZIAB6WUAAellQAHpZYAB6WYAAelmQAHpbIAB6WzAAeltAAHpbYAB6YxAAemMwAHpjUAB6Y3AAemOgAHpjsAB6Y8AAemPQAHpj4AB6ZAAAemQgAHpkMAB6ZEAAemRgAHpkcAB6bCAAemxAAHpsYAB6bIAAemywAHpswAB6bNAAemzgAHps8AB6bRAAem0wAHptQAB6bVAAem1wAHptgAB6dTAAenVQAHp1cAB6dZAAenXAAHp10AB6deAAenXwAHp2AAB6diAAenZAAHp2UAB6dmAAenaAAHp2kAB6fkAAen5gAHp+gAB6fqAAen7QAHp+4AB6fvAAen8AAHp/EAB6fzAAen9QAHp/YAB6f3AAen+QAHp/oAB6h1AAeodwAHqHkAB6h7AAeofgAHqH8AB6iAAAeogQAHqIIAB6iEAAeohgAHqIcAB6iIAAeoigAHqIsAB6jUAAeo+AAHqR8AB6lDAAepRgAHqUkAB6lLAAepTQAHqU8AB6lRAAepUgAHqVUAB6luAAepiwAHqY4AB6mRAAeplAAHqZcAB6maAAepnQAHqaAAB6m9AAepwAAHqcMAB6nGAAepyQAHqcwAB6nPAAep0gAHqdQAB6pPAAeqUQAHqlQAB6pWAAeqWQAHqloAB6pbAAeqXAAHql0AB6pfAAeqYgAHqmMAB6pkAAeqZgAHqmcAB6riAAeq5AAHqucAB6rpAAeq7AAHqu0AB6ruAAeq7wAHqvAAB6ryAAeq9QAHqvYAB6r3AAeq+QAHqvoAB6t1AAerdwAHq3oAB6t8AAerfwAHq4AAB6uBAAerggAHq4MAB6uFAAeriAAHq4kAB6uKAAerjAAHq40AB6wIAAesCgAHrA0AB6wPAAesEgAHrBMAB6wUAAesFQAHrBYAB6wYAAesGwAHrBwAB6wdAAesHwAHrCAAB6ybAAesnQAHrJ8AB6yhAAespAAHrKUAB6ymAAespwAHrKgAB6yqAAesrQAHrK4AB6yvAAessQAHrLIAB60tAAetLwAHrTEAB60zAAetNgAHrTcAB604AAetOQAHrToAB608AAetPwAHrUAAB61BAAetQwAHrUQAB62/AAetwQAHrcQAB63GAAetyQAHrcoAB63LAAetzAAHrc0AB63PAAet0gAHrdMAB63UAAet1gAHrdcAB65qAAeujQAHrq0AB67NAAeuzwAHrtEAB67TAAeu1QAHrtgAB67ZAAeu2gAHrt0AB67eAAeu4AAHruEAB67kAAeu5wAHrugAB67pAAeu7AAHru0AB67yAAevCwAHrxQAB68WAAevGQAHryIAB68lAAevKAAHryoAB69zAAevlwAHr74AB6/iAAev5QAHr+cAB6/pAAev6wAHr+0AB6/vAAev8AAHr/MAB7AMAAewLQAHsC8AB7AxAAewMwAHsDUAB7A3AAewOQAHsDsAB7A9AAewXgAHsGEAB7BkAAewZwAHsGoAB7BtAAewcAAHsHMAB7B2AAeweAAHsPMAB7D1AAew9wAHsPkAB7D8AAew/QAHsP4AB7D/AAexAAAHsQIAB7EEAAexBQAHsQYAB7EIAAexCQAHsYQAB7GGAAexiAAHsYoAB7GNAAexjgAHsY8AB7GQAAexkQAHsZMAB7GVAAexlgAHsZcAB7GZAAexmgAHshUAB7IXAAeyGgAHshwAB7IfAAeyIAAHsiEAB7IiAAeyIwAHsiUAB7InAAeyKAAHsikAB7IrAAeyLAAHskUAB7JGAAeyRwAHskkAB7LEAAeyxgAHssgAB7LKAAeyzQAHss4AB7LPAAey0AAHstEAB7LTAAey1QAHstYAB7LXAAey2QAHstoAB7NVAAezVwAHs1kAB7NbAAezXgAHs18AB7NgAAezYQAHs2IAB7NkAAezZgAHs2cAB7NoAAezagAHs2sAB7PmAAez6AAHs+oAB7PsAAez7wAHs/AAB7PxAAez8gAHs/MAB7P1AAez9wAHs/gAB7P5AAez+wAHs/wAB7R3AAe0eQAHtHsAB7R9AAe0gAAHtIEAB7SCAAe0gwAHtIQAB7SGAAe0iAAHtIkAB7SKAAe0jAAHtI0AB7UIAAe1CgAHtQwAB7UOAAe1EQAHtRIAB7UTAAe1FAAHtRUAB7UXAAe1GQAHtRoAB7UbAAe1HQAHtR4AB7VnAAe1iwAHtbIAB7XWAAe12QAHtdwAB7XeAAe14AAHteIAB7XkAAe15QAHtegAB7YBAAe2HgAHtiEAB7YkAAe2JwAHtioAB7YtAAe2MAAHtjMAB7ZQAAe2UwAHtlYAB7ZZAAe2XAAHtl8AB7ZiAAe2ZQAHtmcAB7biAAe25AAHtucAB7bpAAe27AAHtu0AB7buAAe27wAHtvAAB7byAAe29QAHtvYAB7b3AAe2+QAHtvoAB7d1AAe3dwAHt3oAB7d8AAe3fwAHt4AAB7eBAAe3ggAHt4MAB7eFAAe3iAAHt4kAB7eKAAe3jAAHt40AB7ePAAe4CgAHuAwAB7gPAAe4EQAHuBQAB7gVAAe4FgAHuBcAB7gYAAe4GgAHuB0AB7geAAe4HwAHuCEAB7giAAe4nQAHuJ8AB7iiAAe4pAAHuKcAB7ioAAe4qQAHuKoAB7irAAe4rQAHuLAAB7ixAAe4sgAHuLQAB7i1AAe5MAAHuTIAB7k0AAe5NgAHuTkAB7k6AAe5OwAHuTwAB7k9AAe5PwAHuUIAB7lDAAe5RAAHuUYAB7lHAAe5wgAHucQAB7nGAAe5yAAHucsAB7nMAAe5zQAHuc4AB7nPAAe50QAHudQAB7nVAAe51gAHudgAB7nZAAe6VAAHulYAB7pZAAe6WwAHul4AB7pfAAe6YAAHumEAB7piAAe6ZAAHumcAB7poAAe6aQAHumsAB7psAAe6/wAHuyIAB7tCAAe7YgAHu2QAB7tmAAe7aAAHu2oAB7ttAAe7bgAHu28AB7tyAAe7cwAHu3UAB7t2AAe7eQAHu3wAB7t9AAe7fgAHu4EAB7uCAAe7hwAHu6AAB7upAAe7qwAHu64AB7u3AAe7ugAHu70AB7u/AAe8CAAHvCwAB7xTAAe8dwAHvHoAB7x8AAe8fgAHvIAAB7yCAAe8hAAHvIUAB7yIAAe8oQAHvMIAB7zEAAe8xgAHvMgAB7zKAAe8zAAHvM4AB7zQAAe80gAHvPMAB7z2AAe8+QAHvPwAB7z/AAe9AgAHvQUAB70IAAe9CwAHvQ0AB72IAAe9igAHvYwAB72OAAe9kQAHvZIAB72TAAe9lAAHvZUAB72XAAe9mQAHvZoAB72bAAe9nQAHvZ4AB74ZAAe+GwAHvh0AB74fAAe+IgAHviMAB74kAAe+JQAHviYAB74oAAe+KgAHvisAB74sAAe+LgAHvi8AB76qAAe+rAAHvq8AB76xAAe+tAAHvrUAB762AAe+twAHvrgAB766AAe+vAAHvr0AB76+AAe+wAAHvsEAB77aAAe+2wAHvtwAB77eAAe/WQAHv1sAB79dAAe/XwAHv2IAB79jAAe/ZAAHv2UAB79mAAe/aAAHv2oAB79rAAe/bAAHv24AB79vAAe/6gAHv+wAB7/uAAe/8AAHv/MAB7/0AAe/9QAHv/YAB7/3AAe/+QAHv/sAB7/8AAe//QAHv/8AB8AAAAfAewAHwH0AB8B/AAfAgQAHwIQAB8CFAAfAhgAHwIcAB8CIAAfAigAHwIwAB8CNAAfAjgAHwJAAB8CRAAfBDAAHwQ4AB8EQAAfBEgAHwRUAB8EWAAfBFwAHwRgAB8EZAAfBGwAHwR0AB8EeAAfBHwAHwSEAB8EiAAfBnQAHwZ8AB8GhAAfBowAHwaYAB8GnAAfBqAAHwakAB8GqAAfBrAAHwa4AB8GvAAfBsAAHwbIAB8GzAAfB/AAHwiAAB8JHAAfCawAHwm4AB8JxAAfCcwAHwnUAB8J3AAfCeQAHwnoAB8J9AAfClgAHwrMAB8K2AAfCuQAHwrwAB8K/AAfCwgAHwsUAB8LIAAfC5QAHwugAB8LrAAfC7gAHwvEAB8L0AAfC9wAHwvoAB8L8AAfDdwAHw3kAB8N8AAfDfgAHw4EAB8OCAAfDgwAHw4QAB8OFAAfDhwAHw4oAB8OLAAfDjAAHw44AB8OPAAfECgAHxAwAB8QPAAfEEQAHxBQAB8QVAAfEFgAHxBcAB8QYAAfEGgAHxB0AB8QeAAfEHwAHxCEAB8QiAAfEnQAHxJ8AB8SiAAfEpAAHxKcAB8SoAAfEqQAHxKoAB8SrAAfErQAHxLAAB8SxAAfEsgAHxLQAB8S1AAfFMAAHxTIAB8U1AAfFNwAHxToAB8U7AAfFPAAHxT0AB8U+AAfFQAAHxUMAB8VEAAfFRQAHxUcAB8VIAAfFwwAHxcUAB8XHAAfFyQAHxcwAB8XNAAfFzgAHxc8AB8XQAAfF0gAHxdUAB8XWAAfF1wAHxdkAB8XaAAfGVQAHxlcAB8ZZAAfGWwAHxl4AB8ZfAAfGYAAHxmEAB8ZiAAfGZAAHxmcAB8ZoAAfGaQAHxmsAB8ZsAAfG5wAHxukAB8bsAAfG7gAHxvEAB8byAAfG8wAHxvQAB8b1AAfG9wAHxvoAB8b7AAfG/AAHxv4AB8b/AAfHEAAHxxUAB8cYAAfHGgAHx1MAB8dWAAfHWAAHx1sAB8deAAfHYQAHx2QAB8dpAAfH5AAHx+YAB8foAAfH6gAHx+0AB8fuAAfH7wAHx/AAB8fxAAfH8wAHx/YAB8f3AAfH+AAHx/oAB8f7AAfIdgAHyHgAB8h6AAfIfAAHyH8AB8iAAAfIgQAHyIIAB8iDAAfIhQAHyIgAB8iJAAfIigAHyIwAB8iNAAfJCAAHyQoAB8kNAAfJDwAHyRIAB8kTAAfJFAAHyRUAB8kWAAfJGAAHyRsAB8kcAAfJHQAHyR8AB8kgAAfJMQAHyTYAB8k5AAfJOwAHyUQAB8m/AAfJwQAHycMAB8nFAAfJyAAHyckAB8nKAAfJywAHycwAB8nOAAfJ0QAHydIAB8nTAAfJ1QAHydYAB8pRAAfKUwAHylUAB8pXAAfKWgAHylsAB8pcAAfKXQAHyl4AB8pgAAfKYwAHymQAB8plAAfKZwAHymgAB8rjAAfK5QAHyugAB8rqAAfK7QAHyu4AB8rvAAfK8AAHyvEAB8rzAAfK9gAHyvcAB8r4AAfK+gAHyvsAB8sMAAfLDQAHyw8AB8sgAAfLKQAHyywAB8svAAfLMQAHy6wAB8uuAAfLsAAHy7IAB8u1AAfLtgAHy7cAB8u4AAfLuQAHy7sAB8u+AAfLvwAHy8AAB8vCAAfLwwAHzD4AB8xAAAfMQgAHzEQAB8xHAAfMSAAHzEkAB8xKAAfMSwAHzE0AB8xQAAfMUQAHzFIAB8xUAAfMVQAHzNAAB8zSAAfM1QAHzNcAB8zaAAfM2wAHzNwAB8zdAAfM3gAHzOAAB8zjAAfM5AAHzOUAB8znAAfM6AAHzXsAB82eAAfNvgAHzd4AB83gAAfN4gAHzeQAB83mAAfN6QAHzeoAB83rAAfN7gAHze8AB83xAAfN8gAHzfUAB834AAfN+QAHzfoAB839AAfN/gAHzgcAB84gAAfOKQAHzisAB84uAAfONwAHzjoAB849AAfOPwAHzogAB86sAAfO0wAHzvcAB876AAfO/AAHzv4AB88AAAfPAgAHzwQAB88FAAfPCAAHzyEAB89CAAfPRAAHz0YAB89IAAfPSgAHz0wAB89OAAfPUAAHz1IAB89zAAfPdgAHz3kAB898AAfPfwAHz4IAB8+FAAfPiAAHz4sAB8+NAAfQCAAH0AoAB9AMAAfQDgAH0BEAB9ASAAfQEwAH0BQAB9AVAAfQFwAH0BkAB9AaAAfQGwAH0B0AB9AeAAfQmQAH0JsAB9CdAAfQnwAH0KIAB9CjAAfQpAAH0KUAB9CmAAfQqAAH0KoAB9CrAAfQrAAH0K4AB9CvAAfRKgAH0Sw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AB/T4AAf0+QAH9PoAB/T7AAf0/AAH9P4AB/UAAAf1AQAH9QIAB/UEAAf1BQAH9YAAB/WCAAf1hAAH9YYAB/WJAAf1igAH9YsAB/WMAAf1jQAH9Y8AB/WRAAf1kgAH9ZMAB/WVAAf1lgAH9d8AB/YDAAf2KgAH9k4AB/ZRAAf2VAAH9lYAB/ZYAAf2WgAH9lwAB/ZdAAf2YAAH9nkAB/aWAAf2mQAH9pwAB/afAAf2ogAH9qUAB/aoAAf2qwAH9sgAB/bLAAf2zgAH9tEAB/bUAAf21wAH9toAB/bdAAf23wAH91oAB/dcAAf3XwAH92EAB/dkAAf3ZQAH92YAB/dnAAf3aAAH92oAB/dtAAf3bgAH928AB/dxAAf3cgAH9+0AB/fvAAf38gAH9/QAB/f3AAf3+AAH9/kAB/f6AAf3+wAH9/0AB/gAAAf4AQAH+AIAB/gEAAf4BQAH+IAAB/iCAAf4hQAH+IcAB/iKAAf4iwAH+IwAB/iNAAf4jgAH+JAAB/iTAAf4lAAH+JUAB/iXAAf4mAAH+RMAB/kVAAf5GAAH+RoAB/kdAAf5HgAH+R8AB/kgAAf5IQAH+SMAB/kmAAf5JwAH+SgAB/kqAAf5KwAH+aYAB/moAAf5qgAH+awAB/mvAAf5sAAH+bEAB/myAAf5swAH+bUAB/m4AAf5uQAH+boAB/m8AAf5vQAH+jgAB/o6AAf6PAAH+j4AB/pBAAf6QgAH+kMAB/pEAAf6RQAH+kcAB/pKAAf6SwAH+kwAB/pOAAf6TwAH+soAB/rMAAf6zwAH+tEAB/rUAAf61QAH+tYAB/rXAAf62AAH+toAB/rdAAf63gAH+t8AB/rhAAf64gAH+3UAB/uYAAf7uAAH+9gAB/vaAAf73AAH+94AB/vgAAf74wAH++QAB/vlAAf76AAH++kAB/vrAAf77AAH++4AB/vxAAf78gAH+/MAB/v2AAf79wAH+/wAB/wVAAf8HgAH/CAAB/wiAAf8KwAH/C4AB/wxAAf8MwAH/HwAB/ygAAf8xwAH/OsAB/zuAAf88AAH/PIAB/z0AAf89gAH/PgAB/z5AAf8/AAH/RUAB/02AAf9OAAH/ToAB/08AAf9PgAH/UAAB/1CAAf9RAAH/UYAB/1nAAf9agAH/W0AB/1wAAf9cwAH/XYAB/15AAf9fAAH/X8AB/2BAAf9/AAH/f4AB/4AAAf+AgAH/gUAB/4GAAf+BwAH/ggAB/4JAAf+CwAH/g0AB/4OAAf+DwAH/hEAB/4SAAf+jQAH/o8AB/6RAAf+kwAH/pYAB/6XAAf+mAAH/pkAB/6aAAf+nAAH/p4AB/6fAAf+oAAH/qIAB/6jAAf/HgAH/yAAB/8jAAf/JQAH/ygAB/8pAAf/KgAH/ysAB/8sAAf/LgAH/zAAB/8xAAf/MgAH/zQAB/81AAf/TgAH/08AB/9QAAf/UgAH/80AB//PAAf/0QAH/9MAB//WAAf/1wAH/9gAB//ZAAf/2gAH/9wAB//eAAf/3wAH/+AAB//iAAf/4wAIAF4ACABgAAgAYgAIAGQACABnAAgAaAAIAGkACABqAAgAawAIAG0ACABvAAgAcAAIAHEACABzAAgAdAAIAO8ACADxAAgA8wAIAPUACAD4AAgA+QAIAPoACAD7AAgA/AAIAP4ACAEAAAgBAQAIAQIACAEEAAgBBQAIAYAACAGCAAgBhAAIAYYACAGJAAgBigAIAYsACAGMAAgBjQAIAY8ACAGRAAgBkgAIAZMACAGVAAgBlgAIAhEACAITAAgCFQAIAhcACAIaAAgCGwAIAhwACAIdAAgCHgAIAiAACAIiAAgCIwAIAiQACAImAAgCJwAIAnAACAKUAAgCuwAIAt8ACALiAAgC5AAIAuYACALoAAgC6gAIAuwACALtAAgC8AAIAwkACAMmAAgDKAAIAyoACAMsAAgDLgAIAzAACAMyAAgDNAAIA1EACANUAAgDVwAIA1oACANdAAgDYAAIA2MACANmAAgDaAAIA+MACAPlAAgD5wAIA+kACAPsAAgD7QAIA+4ACAPvAAgD8AAIA/IACAP0AAgD9QAIA/YACAP4AAgD+QAIBHQACAR2AAgEeAAIBHoACAR9AAgEfgAIBH8ACASAAAgEgQAIBIMACASFAAgEhgAIBIcACASJAAgEigAIBQUACAUHAAgFCQAIBQsACAUOAAgFDwAIBRAACAURAAgFEgAIBRQACAUWAAgFFwAIBRgACAUaAAgFGwAIBZYACAWYAAgFmwAIBZ0ACAWgAAgFoQAIBaIACAWjAAgFpAAIBaYACAWoAAgFqQAIBaoACAWsAAgFrQAIBigACAYqAAgGLAAIBi4ACAYxAAgGMgAIBjMACAY0AAgGNQAIBjcACAY5AAgGOgAIBjsACAY9AAgGPgAIBrkACAa7AAgGvQAIBr8ACAbCAAgGwwAIBsQACAbFAAgGxgAIBsgACAbKAAgGywAIBswACAbOAAgGzwAIB0oACAdMAAgHTgAIB1AACAdTAAgHVAAIB1UACAdWAAgHVwAIB1kACAdbAAgHXAAIB10ACAdfAAgHYAAIB/MACAgWAAgINgAICFYACAhYAAgIWgAICFwACAheAAgIYQAICGIACAhjAAgIZgAICGcACAhpAAgIagAICGwACAhvAAgIcAAICHEACAh0AAgIdQAICH4ACAiXAAgIoAAICKIACAikAAgIrQAICLAACAizAAgItQAICP4ACAkiAAgJSQAICW0ACAlwAAgJcgAICXQACAl2AAgJeAAICXoACAl7AAgJfgAICZcACAm4AAgJugAICbwACAm+AAgJwAAICcIACAnEAAgJxgAICcgACAnpAAgJ7AAICe8ACAnyAAgJ9QAICfgACAn7AAgJ/gAICgEACAoDAAgKfgAICoAACAqCAAgKhAAICocACAqIAAgKiQAICooACAqLAAgKjQAICo8ACAqQAAgKkQAICpMACAqUAAgLDwAICxEACAsTAAgLFQAICxgACAsZAAgLGgAICxsACAscAAgLHgAICyAACAshAAgLIgAICyQACAslAAgLoAAIC6IACAulAAgLpwAIC6oACAurAAgLrAAIC60ACAuuAAgLsAAIC7IACAuzAAgLtAAIC7YACAu3AAgL0AAIC9EACAvSAAgL1AAIDE8ACAxRAAgMUwAIDFUACAxYAAgMWQAIDFoACAxbAAgMXAAIDF4ACAxgAAgMYQAIDGIACAxkAAgMZQAIDOAACAziAAgM5AAIDOYACAzpAAgM6gAIDOsACAzsAAgM7QAIDO8ACAzxAAgM8gAIDPMACAz1AAgM9gAIDXEACA1zAAgNdQAIDXcACA16AAgNewAIDXwACA19AAgNfgAIDYAACA2CAAgNgwAIDYQACA2GAAgNhwAIDgIACA4EAAgOBgAIDggACA4LAAgODAAIDg0ACA4OAAgODwAIDhEACA4TAAgOFAAIDhUACA4XAAgOGAAIDpMACA6VAAgOlwAIDpkACA6cAAgOnQAIDp4ACA6fAAgOoAAIDqIACA6kAAgOpQAIDqYACA6oAAgOqQAIDvIACA8WAAgPPQAID2EACA9kAAgPZgAID2gACA9qAAgPbAAID24ACA9vAAgPcgAID4sACA+oAAgPqgAID6wACA+uAAgPsAAID7IACA+0AAgPtgAID9MACA/WAAgP2QAID9wACA/fAAgP4gAID+UACA/oAAgP6gAIEGUACBBnAAgQaQAIEGsACBBuAAgQbwAIEHAACBBxAAgQcgAIEHQACBB2AAgQdwAIEHgACBB6AAgQewAIEPYACBD4AAgQ+gAIEPwACBD/AAgRAAAIEQEACBECAAgRAwAIEQUACBEHAAgRCAAIEQkACBELAAgRDAAIEYcACBGJAAgRiwAIEY0ACBGQAAgRkQAIEZIACBGTAAgRlAAIEZYACBGYAAgRmQAIEZoACBGcAAgRnQAIEhgACBIaAAgSHQAIEh8ACBIiAAgSIwAIEiQACBIlAAgSJgAIEigACBIqAAgSKwAIEiwACBIuAAgSLwAIEqoACBKsAAgSrgAIErAACBKzAAgStAAIErUACBK2AAgStwAIErkACBK7AAgSvAAIEr0ACBK/AAgSwAAIEzsACBM9AAgTPwAIE0EACBNEAAgTRQAIE0YACBNHAAgTSAAIE0oACBNMAAgTTQAIE04ACBNQAAgTUQAIE8wACBPOAAgT0AAIE9IACBPVAAgT1gAIE9cACBPYAAgT2QAIE9sACBPdAAgT3gAIE98ACBPhAAgT4gAIFHUACBSYAAgUuAAIFNgACBTaAAgU3AAIFN4ACBTgAAgU4wAIFOQACBTlAAgU6AAIFOkACBTrAAgU7AAIFO4ACBTxAAgU8gAIFPMACBT2AAgU9wAIFQAACBUZAAgVIgAIFSQACBUmAAgVLwAIFTIACBU1AAgVNwAIFYAACBWkAAgVywAIFe8ACBXyAAgV9AAIFfYACBX4AAgV+gAIFfwACBX9AAgWAAAIFhkACBY6AAgWPAAIFj4ACBZAAAgWQgAIFkQACBZGAAgWSAAIFkoACBZrAAgWbgAIFnEACBZ0AAgWdwAIFnoACBZ9AAgWgAAIFoMACBaFAAgXAAAIFwIACBcEAAgXBgAIFwkACBcKAAgXCwAIFwwACBcNAAgXDwAIFxEACBcSAAgXEwAIFxUACBcWAAgXkQAIF5MACBeVAAgXlwAIF5oACBebAAgXnAAIF50ACBeeAAgXoAAIF6IACBejAAgXpAAIF6YACBenAAgYIgAIGCQACBgnAAgYKQAIGCwACBgtAAgYLgAIGC8ACBgwAAgYMgAIGDQACBg1AAgYNgAIGDgACBg5AAgYUgAIGFMACBhUAAgYVgAIGNEACBjTAAgY1QAIGNcACBjaAAgY2wAIGNwACBjdAAgY3gAIGOAACBjiAAgY4wAIGOQACBjmAAgY5wAIGWIACBlkAAgZZgAIGWgACBlrAAgZbAAIGW0ACBluAAgZbwAIGXEACBlzAAgZdAAIGXUACBl3AAgZeAAIGfMACBn1AAgZ9wAIGfkACBn8AAgZ/QAIGf4ACBn/AAgaAAAIGgIACBoEAAgaBQAIGgYACBoIAAgaCQAIGoQACBqGAAgaiAAIGooACBqNAAgajgAIGo8ACBqQAAgakQAIGpMACBqVAAgalgAIGpcACBqZAAgamgAIGxUACBsXAAgbGQAIGxsACBseAAgbHwAIGyAACBshAAgbIgAIGyQACBsmAAgbJwAIGygACBsqAAgbKwAIG3QACBuYAAgbvwAIG+MACBvmAAgb6AAIG+oACBvsAAgb7gAIG/AACBvxAAgb9AAIHA0ACBwqAAgcLAAIHC4ACBwwAAgcMgAIHDQACBw2AAgcOAAIHFUACBxYAAgcWwAIHF4ACBxhAAgcZAAIHGcACBxqAAgcbAAIHOcACBzpAAgc6wAIHO0ACBzwAAgc8QAIHPIACBzzAAgc9AAIHPYACBz4AAgc+QAIHPoACBz8AAgc/QAIHXgACB16AAgdfAAIHX4ACB2BAAgdggAIHYMACB2EAAgdhQAIHYcACB2JAAgdigAIHYsACB2NAAgdjgAIHgkACB4LAAgeDQAIHg8ACB4SAAgeEwAIHhQACB4VAAgeFgAIHhgACB4aAAgeGwAIHhwACB4eAAgeHwAIHpoACB6cAAgenwAIHqEACB6kAAgepQAIHqYACB6nAAgeqAAIHqoACB6sAAgerQAIHq4ACB6wAAgesQAIHywACB8uAAgfMAAIHzIACB81AAgfNgAIHzcACB84AAgfOQAIHzsACB89AAgfPgAIHz8ACB9BAAgfQgAIH70ACB+/AAgfwQAIH8MACB/GAAgfxwAIH8gACB/JAAgfygAIH8wACB/OAAgfzwAIH9AACB/SAAgf0wAIIE4ACCBQAAggUgAIIFQACCBXAAggWAAIIFkACCBaAAggWwAIIF0ACCBfAAggYAAIIGEACCBjAAggZAAIIPcACCEaAAghOgAIIVoACCFcAAghXgAIIWAACCFiAAghZQAIIWYACCFnAAghagAIIWsACCFtAAghbgAIIXAACCFzAAghdAAIIXUACCF4AAgheQAIIX4ACCGXAAghoAAIIaIACCGkAAghrQAIIbAACCGzAAghtQAIIf4ACCIiAAgiSQAIIm0ACCJwAAgicgAIInQACCJ2AAgieAAIInoACCJ7AAgifgAIIpcACCK4AAgiugAIIrwACCK+AAgiwAAIIsIACCLEAAgixgAIIsgACCLpAAgi7AAIIu8ACCLyAAgi9QAIIvgACCL7AAgi/gAIIwEACCMDAAgjfgAII4AACCOCAAgjhAAII4cACCOIAAgjiQAII4oACCOLAAgjjQAII48ACCOQAAgjkQAII5MACCOUAAgkDwAIJBEACCQTAAgkFQAIJBgACCQZAAgkGgAIJBsACCQcAAgkHgAIJCAACCQhAAgkIgAIJCQACCQlAAgkoAAIJKIACCSlAAgkpwAIJKoACCSrAAgkrAAIJK0ACCSuAAgksAAIJLIACCSzAAgktAAIJLYACCS3AAgk0AAIJNEACCTSAAgk1AAIJU8ACCVRAAglUwAIJVUACCVYAAglWQAIJVoACCVbAAglXAAIJV4ACCVgAAglYQAIJWIACCVkAAglZQAIJeAACCXiAAgl5AAIJeYACCXpAAgl6gAIJesACCXsAAgl7QAIJe8ACCXxAAgl8gAIJfMACCX1AAgl9gAIJnEACCZzAAgmdQAIJncACCZ6AAgmewAIJnwACCZ9AAgmfgAIJoAACCaCAAgmgwAIJoQACCaGAAgmhwAIJwIACCcEAAgnBgAIJwgACCcLAAgnDAAIJw0ACCcOAAgnDwAIJxEACCcTAAgnFAAIJxUACCcXAAgnGAAIJ5MACCeVAAgnlwAIJ5kACCecAAgnnQAIJ54ACCefAAgnoAAIJ6IACCekAAgnpQAIJ6YACCeoAAgnqQAIJ/IACCgWAAgoPQAIKGEACChkAAgoZgAIKGgACChqAAgobAAIKG4ACChvAAgocgAIKIsACCioAAgoqgAIKKwACCiuAAgosAAIKLIACCi0AAgotgAIKNMACCjWAAgo2QAIKNwACCjfAAgo4gAIKOUACCjoAAgo6gAIKWUACClnAAgpaQAIKWsACCluAAgpbwAIKXAACClxAAgpcgAIKXQACCl2AAgpdwAIKXgACCl6AAgpewAIKfYACCn4AAgp+gAIKfwACCn/AAgqAAAIKgEACCoCAAgqAwAIKgUACCoHAAgqCAAIKgkACCoLAAgqDAAIKocACCqJAAgqiwAIKo0ACCqQAAgqkQAIKpIACCqTAAgqlAAIKpYACCqYAAgqmQAIKpoACCqcAAgqnQAIKxgACCsaAAgrHQAIKx8ACCsiAAgrIwAIKyQACCslAAgrJgAIKygACCsqAAgrKwAIKywACCsuAAgrLwAIK6oACCusAAgrrgAIK7AACCuzAAgrtAAIK7UACCu2AAgrtwAIK7kACCu7AAgrvAAIK70ACCu/AAgrwAAILDsACCw9AAgsPwAILEEACCxEAAgsRQAILEYACCxHAAgsSAAILEoACCxMAAgsTQAILE4ACCxQAAgsUQAILMwACCzOAAgs0AAILNIACCzVAAgs1gAILNcACCzYAAgs2QAILNsACCzdAAgs3gAILN8ACCzhAAgs4gAILPMACCz0AAgs9gAILXEACC1zAAgtdQAILXcACC16AAgtewAILXwACC19AAgtfgAILYAACC2DAAgthAAILYUACC2HAAgtiAAILgMACC4FAAguBwAILgkACC4MAAguDQAILg4ACC4PAAguEAAILhIACC4VAAguFgAILhcACC4ZAAguGgAILpUACC6XAAgumgAILpwACC6fAAguoAAILqEACC6iAAguowAILqUACC6oAAguqQAILqoACC6sAAgurQAIL0AACC9jAAgvgwAIL6MACC+lAAgvpwAIL6kACC+rAAgvrgAIL68ACC+wAAgvswAIL7QACC+2AAgvtwAIL7oACC+9AAgvvgAIL78ACC/CAAgvwwAIL8gACC/hAAgv6gAIL+wACC/vAAgv+AAIL/sACC/+AAgwAAAIMEkACDBtAAgwlAAIMLgACDC7AAgwvQAIML8ACDDBAAgwwwAIMMUACDDGAAgwyQAIMOIACDEDAAgxBQAIMQcACDEJAAgxCwAIMQ0ACDEPAAgxEQAIMRMACDE0AAgxNwAIMToACDE9AAgxQAAIMUMACDFGAAgxSQAIMUwACDFOAAgxyQAIMcsACDHNAAgxzwAIMdIACDHTAAgx1AAIMdUACDHWAAgx2AAIMdoACDHbAAgx3AAIMd4ACDHfAAgyWgAIMlwACDJeAAgyYAAIMmMACDJkAAgyZQAIMmYACDJnAAgyaQAIMmsACDJsAAgybQAIMm8ACDJwAAgy6wAIMu0ACDLwAAgy8gAIMvUACDL2AAgy9wAIMvgACDL5AAgy+wAIMv0ACDL+AAgy/wAIMwEACDMCAAgzGwAIMxwACDMdAAgzHwAIM5oACDOcAAgzngAIM6AACDOjAAgzpAAIM6UACDOmAAgzpwAIM6kACDOrAAgzrAAIM60ACDOvAAgzsAAINCsACDQtAAg0LwAINDEACDQ0AAg0NQAINDYACDQ3AAg0OAAINDoACDQ8AAg0PQAIND4ACDRAAAg0QQAINLwACDS+AAg0wAAINMIACDTFAAg0xgAINMcACDTIAAg0yQAINMsACDTNAAg0zgAINM8ACDTRAAg00gAINU0ACDVPAAg1UQAINVMACDVWAAg1VwAINVgACDVZAAg1WgAINVwACDVeAAg1XwAINWAACDViAAg1YwAINd4ACDXgAAg14gAINeQACDXnAAg16AAINekACDXqAAg16wAINe0ACDXvAAg18AAINfEACDXzAAg19AAINj0ACDZhAAg2iAAINqwACDavAAg2sgAINrQACDa2AAg2uAAINroACDa7AAg2vgAINtcACDb0AAg29wAINvoACDb9AAg3AAAINwMACDcGAAg3CQAINyYACDcpAAg3LAAINy8ACDcyAAg3NQAINzgACDc7AAg3PQAIN7gACDe6AAg3vQAIN78ACDfCAAg3wwAIN8QACDfFAAg3xgAIN8gACDfLAAg3zAAIN80ACDfPAAg30AAIOEsACDhNAAg4UAAIOFIACDhVAAg4VgAIOFcACDhYAAg4WQAIOFsACDheAAg4XwAIOGAACDhiAAg4YwAION4ACDjgAAg44wAIOOUACDjoAAg46QAIOOoACDjrAAg47AAIOO4ACDjxAAg48gAIOPMACDj1AAg49gAIOXEACDlzAAg5dgAIOXgACDl7AAg5fAAIOX0ACDl+AAg5fwAIOYEACDmEAAg5hQAIOYYACDmIAAg5iQAIOgQACDoGAAg6CAAIOgoACDoNAAg6DgAIOg8ACDoQAAg6EQAIOhMACDoWAAg6FwAIOhgACDoaAAg6GwAIOpYACDqYAAg6mgAIOpwACDqfAAg6oAAIOqEACDqiAAg6owAIOqUACDqoAAg6qQAIOqoACDqsAAg6rQAIOygACDsqAAg7LQAIOy8ACDsyAAg7MwAIOzQACDs1AAg7NgAIOzgACDs7AAg7PAAIOz0ACDs/AAg7QAAIO9MACDv2AAg8FgAIPDYACDw4AAg8OgAIPDwACDw+AAg8QQAIPEIACDxDAAg8RgAIPEcACDxJAAg8SgAIPEwACDxPAAg8UAAIPFEACDxUAAg8VQAIPF4ACDx3AAg8gAAIPIIACDyEAAg8jQAIPJAACDyTAAg8lQAIPN4ACD0CAAg9KQAIPU0ACD1QAAg9UgAIPVQACD1WAAg9WAAIPVoACD1bAAg9XgAIPXcACD2YAAg9mgAIPZwACD2eAAg9oAAIPaIACD2kAAg9pgAIPagACD3JAAg9zAAIPc8ACD3SAAg91QAIPdgACD3bAAg93gAIPeEACD3jAAg+XgAIPmAACD5iAAg+ZAAIPmcACD5oAAg+aQAIPmoACD5rAAg+bQAIPm8ACD5wAAg+cQAIPnMACD50AAg+7wAIPvEACD7zAAg+9QAIPvgACD75AAg++gAIPvsACD78AAg+/gAIPwAACD8BAAg/AgAIPwQACD8FAAg/gAAIP4IACD+FAAg/hwAIP4oACD+LAAg/jAAIP40ACD+OAAg/kAAIP5IACD+TAAg/lAAIP5YACD+XAAg/sAAIP7EACD+yAAg/tAAIQC8ACEAxAAhAMwAIQDUACEA4AAhAOQAIQDoACEA7AAhAPAAIQD4ACEBAAAhAQQAIQEIACEBEAAhARQAIQMAACEDCAAhAxAAIQMYACEDJAAhAygAIQMsACEDMAAhAzQAIQM8ACEDRAAhA0gAIQNMACEDVAAhA1gAIQVEACEFTAAhBVQAIQVcACEFaAAhBWwAIQVwACEFdAAhBXgAIQWAACEFiAAhBYwAIQWQACEFmAAhBZwAIQeIACEHkAAhB5gAIQegACEHrAAhB7AAIQe0ACEHuAAhB7wAIQfEACEHzAAhB9AAIQfUACEH3AAhB+AAIQnMACEJ1AAhCdwAIQnkACEJ8AAhCfQAIQn4ACEJ/AAhCgAAIQoIACEKEAAhChQAIQoYACEKIAAhCiQAIQtIACEL2AAhDHQAIQ0EACENEAAhDRgAIQ0gACENKAAhDTAAIQ04ACENPAAhDUgAIQ2sACEOIAAhDigAIQ4wACEOOAAhDkAAIQ5IACEOUAAhDlgAIQ7MACEO2AAhDuQAIQ7wACEO/AAhDwgAIQ8UACEPIAAhDygAIREUACERHAAhESgAIREwACERPAAhEUAAIRFEACERSAAhEUwAIRFUACERXAAhEWAAIRFkACERbAAhEXAAIRNcACETZAAhE2wAIRN0ACETgAAhE4QAIROIACETjAAhE5AAIROYACEToAAhE6QAIROoACETsAAhE7QAIRWgACEVqAAhFbAAIRW4ACEVxAAhFcgAIRXMACEV0AAhFdQAIRXcACEV5AAhFegAIRXsACEV9AAhFfgAIRfkACEX7AAhF/gAIRgAACEYDAAhGBAAIRgUACEYGAAhGBwAIRgkACEYLAAhGDAAIRg0ACEYPAAhGEAAIRosACEaNAAhGjwAIRpEACEaUAAhGlQAIRpYACEaXAAhGmAAIRpoACEacAAhGnQAIRp4ACEagAAhGoQAIRxwACEceAAhHIAAIRyIACEclAAhHJgAIRycACEcoAAhHKQAIRysACEctAAhHLgAIRy8ACEcxAAhHMgAIR60ACEevAAhHsQAIR7MACEe2AAhHtwAIR7gACEe5AAhHugAIR7wACEe+AAhHvwAIR8AACEfCAAhHwwAISFYACEh5AAhImQAISLkACEi7AAhIvQAISL8ACEjBAAhIxAAISMUACEjGAAhIyQAISMoACEjMAAhIzQAISM8ACEjSAAhI0wAISNQACEjXAAhI2AAISN0ACEj2AAhI/wAISQEACEkDAAhJDAAISQ8ACEkSAAhJFAAISV0ACEmBAAhJqAAIScwACEnPAAhJ0QAISdMACEnVAAhJ1wAISdkACEnaAAhJ3QAISfYACEoXAAhKGQAIShsACEodAAhKHwAISiEACEojAAhKJQAISicACEpIAAhKSwAISk4ACEpRAAhKVAAISlcACEpaAAhKXQAISmAACEpiAAhK3QAISt8ACErhAAhK4wAISuYACErnAAhK6AAISukACErqAAhK7AAISu4ACErvAAhK8AAISvIACErzAAhLbgAIS3AACEtyAAhLdAAIS3cACEt4AAhLeQAIS3oACEt7AAhLfQAIS38ACEuAAAhLgQAIS4MACEuEAAhL/wAITAEACEwEAAhMBgAITAkACEwKAAhMCwAITAwACEwNAAhMDwAITBEACEwSAAhMEwAITBUACEwWAAhMLwAITDAACEwxAAhMMwAITK4ACEywAAhMsgAITLQACEy3AAhMuAAITLkACEy6AAhMuwAITL0ACEy/AAhMwAAITMEACEzDAAhMxAAITT8ACE1BAAhNQwAITUUACE1IAAhNSQAITUoACE1LAAhNTAAITU4ACE1QAAhNUQAITVIACE1UAAhNVQAITdAACE3SAAhN1AAITdYACE3ZAAhN2gAITdsACE3cAAhN3QAITd8ACE3hAAhN4gAITeMACE3lAAhN5gAITmEACE5jAAhOZQAITmcACE5qAAhOawAITmwACE5tAAhObgAITnAACE5yAAhOcwAITnQACE52AAhOdwAITvIACE70AAhO9gAITvgACE77AAhO/AAITv0ACE7+AAhO/wAITwEACE8DAAhPBAAITwUACE8HAAhPCAAIT1EACE91AAhPnAAIT8AACE/DAAhPxQAIT8cACE/JAAhPywAIT80ACE/OAAhP0QAIT+oACFAHAAhQCQAIUAsACFANAAhQDwAIUBEACFATAAhQFQAIUDIACFA1AAhQOAAIUDsACFA+AAhQQQAIUEQACFBHAAhQSQAIUMQACFDGAAhQyAAIUMoACFDNAAhQzgAIUM8ACFDQAAhQ0QAIUNMACFDVAAhQ1gAIUNcACFDZAAhQ2gAIUVUACFFXAAhRWQAIUVsACFFeAAhRXwAIUWAACFFhAAhRYgAIUWQACFFmAAhRZwAIUWgACFFqAAhRawAIUeYACFHoAAhR6gAIUewACFHvAAhR8AAIUfEACFHyAAhR8wAIUfUACFH3AAhR+AAIUfkACFH7AAhR/AAIUncACFJ5AAhSewAIUn0ACFKAAAhSgQAIUoIACFKDAAhShAAIUoYACFKIAAhSiQAIUooACFKMAAhSjQAIUwgACFMKAAhTDAAIUw4ACFMRAAhTEgAIUxMACFMUAAhTFQAIUxcACFMZAAhTGgAIUxsACFMdAAhTHgAIU5kACFObAAhTngAIU6AACFOjAAhTpAAIU6UACFOmAAhTpwAIU6kACFOrAAhTrAAIU60ACFOvAAhTsAAIU9QACFRPAAhUUQAIVFMACFRVAAhUWAAIVFkACFRaAAhUWwAIVFwACFReAAhUYAAIVGEACFRiAAhUZAAIVGUACFT4AAhVGwAIVTsACFVbAAhVXQAIVV8ACFVhAAhVYwAIVWYACFVnAAhVaAAIVWsACFVsAAhVbgAIVW8ACFVyAAhVdQAIVXYACFV3AAhVegAIVXsACFWAAAhVmQAIVaIACFWkAAhVpwAIVbAACFWzAAhVtgAIVbgACFYBAAhWJQAIVkwACFZwAAhWcwAIVnUACFZ3AAhWeQAIVnsACFZ9AAhWfgAIVoEACFaaAAhWuwAIVr0ACFa/AAhWwQAIVsMACFbFAAhWxwAIVskACFbLAAhW7AAIVu8ACFbyAAhW9QAIVvgACFb7AAhW/gAIVwEACFcEAAhXBgAIV4EACFeDAAhXhQAIV4cACFeKAAhXiwAIV4wACFeNAAhXjgAIV5AACFeSAAhXkwAIV5QACFeWAAhXlwAIWBIACFgUAAhYFgAIWBgACFgbAAhYHAAIWB0ACFgeAAhYHwAIWCEACFgjAAhYJAAIWCUACFgnAAhYKAAIWKMACFilAAhYqAAIWKoACFitAAhYrgAIWK8ACFiwAAhYsQAIWLMACFi1AAhYtgAIWLcACFi5AAhYugAIWNMACFjUAAhY1QAIWNcACFlSAAhZVAAIWVYACFlYAAhZWwAIWVwACFldAAhZXgAIWV8ACFlhAAhZYwAIWWQACFllAAhZZwAIWWgACFnjAAhZ5QAIWecACFnpAAhZ7AAIWe0ACFnuAAhZ7wAIWfAACFnyAAhZ9AAIWfUACFn2AAhZ+AAIWfkACFp0AAhadgAIWngACFp6AAhafQAIWn4ACFp/AAhagAAIWoEACFqDAAhahQAIWoYACFqHAAhaiQAIWooACFsFAAhbBwAIWwkACFsLAAhbDgAIWw8ACFsQAAhbEQAIWxIACFsUAAhbFgAIWxcACFsYAAhbGgAIWxsACFuWAAhbmAAIW5oACFucAAhbnwAIW6AACFuhAAhbogAIW6MACFulAAhbpwAIW6gACFupAAhbqwAIW6wACFv1AAhcGQAIXEAACFxkAAhcZwAIXGoACFxsAAhcbgAIXHAACFxyAAhccwAIXHYACFyPAAhcrAAIXK8ACFyyAAhctQAIXLgACFy7AAhcvgAIXMEACFzeAAhc4QAIXOQACFznAAhc6gAIXO0ACFzwAAhc8wAIXPUACF1wAAhdcgAIXXUACF13AAhdegAIXXsACF18AAhdfQAIXX4ACF2AAAhdgwAIXYQACF2FAAhdhwAIXYgACF4DAAheBQAIXggACF4KAAheDQAIXg4ACF4PAAheEAAIXhEACF4TAAheFgAIXhcACF4YAAheGgAIXhsACF6WAAhemAAIXpsACF6dAAheoAAIXqEACF6iAAheowAIXqQACF6mAAheqQAIXqoACF6rAAherQAIXq4ACF8pAAhfKwAIXy4ACF8wAAhfMwAIXzQACF81AAhfNgAIXzcACF85AAhfPAAIXz0ACF8+AAhfQAAIX0EACF/EAAhf6AAIYAwACGAvAAhgVgAIYHYACGCdAAhgxAAIYOQACGEIAAhhLAAIYS4ACGExAAhhMwAIYTUACGE3AAhhOgAIYT0ACGE/AAhhQQAIYUQACGFGAAhhSAAIYUsACGFOAAhhTwAIYVQACGFtAAhhcgAIYXQACGF5AAhhfAAIYX4ACGHHAAhh6wAIYhIACGI2AAhiOQAIYjsACGI9AAhiPwAIYkEACGJDAAhiRAAIYkcACGJgAAhihQAIYocACGKJAAhiiwAIYo0ACGKPAAhikQAIYpMACGKVAAhilwAIYrwACGK/AAhiwgAIYsUACGLIAAhiywAIYs4ACGLRAAhi1AAIYtcACGLZAAhjVAAIY1YACGNZAAhjWwAIY14ACGNfAAhjYAAIY2EACGNiAAhjZAAIY2YACGNnAAhjaAAIY2oACGNrAAhjfAAIY30ACGN/AAhj+gAIY/wACGP+AAhkAAAIZAMACGQEAAhkBQAIZAYACGQHAAhkCQAIZAsACGQMAAhkDQAIZA8ACGQQAAhkiwAIZI0ACGSQAAhkkgAIZJUACGSWAAhklwAIZJgACGSZAAhkmwAIZJ0ACGSeAAhknwAIZKEACGSiAAhkswAIZLQACGS2AAhlMQAIZTMACGU1AAhlNwAIZToACGU7AAhlPAAIZT0ACGU+AAhlQAAIZUIACGVDAAhlRAAIZUYACGVHAAhlwgAIZcQACGXHAAhlyQAIZcwACGXNAAhlzgAIZc8ACGXQAAhl0gAIZdQACGXVAAhl1gAIZdgACGXZAAhl6gAIZesACGXtAAhmaAAIZmoACGZsAAhmbgAIZnEACGZyAAhmcwAIZnQACGZ1AAhmdwAIZnkACGZ6AAhmewAIZn0ACGZ+AAhm+QAIZvsACGb+AAhnAAAIZwMACGcEAAhnBQAIZwYACGcHAAhnCQAIZwsACGcMAAhnDQAIZw8ACGcQAAhnKQAIZyoACGcrAAhnLQAIZ6gACGeqAAhnrAAIZ64ACGexAAhnsgAIZ7MACGe0AAhntQAIZ7cACGe5AAhnugAIZ7sACGe9AAhnvgAIaDkACGg7AAhoPgAIaEAACGhDAAhoRAAIaEUACGhGAAhoRwAIaEkACGhLAAhoTAAIaE0ACGhPAAhoUAAIaFwACGh1AAhokgAIaJUACGiYAAhomwAIaJ4ACGihAAhopAAIaKcACGjEAAhoxwAIaMoACGjNAAho0AAIaNMACGjWAAho2QAIaNsACGjqAAho/AAIaRQACGkrAAhpRAAIaUkACGncAAhp/wAIah8ACGo/AAhqQQAIakMACGpFAAhqRwAIakoACGpLAAhqTAAIak8ACGpQAAhqUgAIalMACGpVAAhqWAAIalkACGpaAAhqXQAIal4ACGpnAAhqgAAIaokACGqLAAhqjQAIapYACGqZAAhqnAAIap4ACGrnAAhrCwAIazIACGtWAAhrWQAIa1sACGtdAAhrXwAIa2EACGtjAAhrZAAIa2cACGuAAAhroQAIa6MACGulAAhrpwAIa6kACGurAAhrrQAIa68ACGuxAAhr0gAIa9UACGvYAAhr2wAIa94ACGvhAAhr5AAIa+cACGvqAAhr7AAIbGcACGxpAAhsawAIbG0ACGxwAAhscQAIbHIACGxzAAhsdAAIbHYACGx4AAhseQAIbHoACGx8AAhsfQAIbPgACGz6AAhs/AAIbP4ACG0BAAhtAgAIbQMACG0EAAhtBQAIbQcACG0JAAhtCgAIbQsACG0NAAhtDgAIbYkACG2LAAhtjgAIbZAACG2TAAhtlAAIbZUACG2WAAhtlwAIbZkACG2bAAhtnAAIbZ0ACG2fAAhtoAAIbbkACG26AAhtuwAIbb0ACG44AAhuOgAIbjwACG4+AAhuQQAIbkIACG5DAAhuRAAIbkUACG5HAAhuSQAIbkoACG5LAAhuTQAIbk4ACG7JAAhuywAIbs0ACG7PAAhu0gAIbtMACG7UAAhu1QAIbtYACG7YAAhu2gAIbtsACG7cAAhu3gAIbt8ACG9aAAhvXAAIb14ACG9gAAhvYwAIb2QACG9lAAhvZgAIb2cACG9pAAhvawAIb2wACG9tAAhvbwAIb3AACG/rAAhv7QAIb+8ACG/xAAhv9AAIb/UACG/2AAhv9wAIb/gACG/6AAhv/AAIb/0ACG/+AAhwAAAIcAEACHB8AAhwfgAIcIAACHCCAAhwhQAIcIYACHCHAAhwiAAIcIkACHCLAAhwjQAIcI4ACHCPAAhwkQAIcJIACHDbAAhw/wAIcSYACHFKAAhxTQAIcU8ACHFRAAhxUwAIcVUACHFXAAhxWAAIcVsACHF0AAhxkQAIcZMACHGVAAhxlwAIcZkACHGbAAhxnQAIcZ8ACHG8AAhxvwAIccIACHHFAAhxyAAIccsACHHOAAhx0QAIcdMACHJOAAhyUAAIclIACHJUAAhyVwAIclgACHJZAAhyWgAIclsACHJdAAhyXwAIcmAACHJhAAhyYwAIcmQACHLfAAhy4QAIcuMACHLlAAhy6AAIcukACHLqAAhy6wAIcuwACHLuAAhy8AAIcvEACHLyAAhy9AAIcvUACHNwAAhzcgAIc3QACHN2AAhzeQAIc3oACHN7AAhzfAAIc30ACHN/AAhzgQAIc4IACHODAAhzhQAIc4YACHQBAAh0AwAIdAYACHQIAAh0CwAIdAwACHQNAAh0DgAIdA8ACHQRAAh0EwAIdBQACHQVAAh0FwAIdBgACHSTAAh0lQAIdJcACHSZAAh0nAAIdJ0ACHSeAAh0nwAIdKAACHSiAAh0pAAIdKUACHSmAAh0qAAIdKkACHUkAAh1JgAIdSgACHUqAAh1LQAIdS4ACHUvAAh1MAAIdTEACHUzAAh1NQAIdTYACHU3AAh1OQAIdToACHW1AAh1twAIdbkACHW7AAh1vgAIdb8ACHXAAAh1wQAIdcIACHXEAAh1xgAIdccACHXIAAh1ygAIdcsACHZeAAh2gQAIdqEACHbBAAh2wwAIdsUACHbHAAh2yQAIdswACHbNAAh2zgAIdtEACHbSAAh21AAIdtUACHbXAAh22gAIdtsACHbcAAh23wAIduAACHblAAh2/gAIdwcACHcJAAh3CwAIdxQACHcXAAh3GgAIdxwACHdlAAh3iQAId7AACHfUAAh31wAId9kACHfbAAh33QAId98ACHfhAAh34gAId+UACHf+AAh4HwAIeCEACHgjAAh4JQAIeCcACHgpAAh4KwAIeC0ACHgvAAh4UAAIeFMACHhWAAh4WQAIeFwACHhfAAh4YgAIeGUACHhoAAh4agAIeOUACHjnAAh46QAIeOsACHjuAAh47wAIePAACHjxAAh48gAIePQACHj2AAh49wAIePgACHj6AAh4+wAIeXYACHl4AAh5egAIeXwACHl/AAh5gAAIeYEACHmCAAh5gwAIeYUACHmHAAh5iAAIeYkACHmLAAh5jAAIegcACHoJAAh6DAAIeg4ACHoRAAh6EgAIehMACHoUAAh6FQAIehcACHoZAAh6GgAIehsACHodAAh6HgAIejcACHo4AAh6OQAIejsACHq2AAh6uAAIeroACHq8AAh6vwAIesAACHrBAAh6wgAIesMACHrFAAh6xwAIesgACHrJAAh6ywAIeswACHtHAAh7SQAIe0sACHtNAAh7UAAIe1EACHtSAAh7UwAIe1QACHtWAAh7WAAIe1kACHtaAAh7XAAIe10ACHvYAAh72gAIe9wACHveAAh74QAIe+IACHvjAAh75AAIe+UACHvnAAh76QAIe+oACHvrAAh77QAIe+4ACHxpAAh8awAIfG0ACHxvAAh8cgAIfHMACHx0AAh8dQAIfHYACHx4AAh8egAIfHsACHx8AAh8fgAIfH8ACHz6AAh8/AAIfP4ACH0AAAh9AwAIfQQACH0FAAh9BgAIfQcACH0JAAh9CwAIfQwACH0NAAh9DwAIfRAACH1ZAAh9fQAIfaQACH3IAAh9ywAIfc0ACH3PAAh90QAIfdMACH3VAAh91gAIfdkACH3yAAh+DwAIfhEACH4TAAh+FQAIfhcACH4ZAAh+GwAIfh0ACH46AAh+PQAIfkAACH5DAAh+RgAIfkkACH5MAAh+TwAIflEACH7MAAh+zgAIftAACH7SAAh+1QAIftYACH7XAAh+2AAIftkACH7bAAh+3QAIft4ACH7fAAh+4QAIfuIACH9dAAh/XwAIf2EACH9jAAh/ZgAIf2cACH9oAAh/aQAIf2oACH9sAAh/bgAIf28ACH9wAAh/cgAIf3MACH/uAAh/8AAIf/IACH/0AAh/9wAIf/gACH/5AAh/+gAIf/sACH/9AAh//wAIgAAACIABAAiAAwAIgAQACIB/AAiAgQAIgIMACICFAAiAiAAIgIkACICKAAiAiwAIgIwACICOAAiAkAAIgJEACICSAAiAlAAIgJUACIEQAAiBEgAIgRQACIEWAAiBGQAIgRoACIEbAAiBHAAIgR0ACIEfAAiBIQAIgSIACIEjAAiBJQAIgSYACIGhAAiBowAIgaYACIGoAAiBqwAIgawACIGtAAiBrgAIga8ACIGxAAiBswAIgbQACIG1AAiBtwAIgbgACIHHAAiCQgAIgkQACIJGAAiCSAAIgksACIJMAAiCTQAIgk4ACIJPAAiCUQAIglMACIJUAAiCVQAIglcACIJYAAiC6wAIgw4ACIMuAAiDTgAIg1AACINSAAiDVAAIg1YACINZAAiDWgAIg1sACINeAAiDXwAIg2EACINiAAiDZAAIg2cACINoAAiDaQAIg2wACINtAAiDcgAIg4sACIOUAAiDlgAIg5gACIOhAAiDpAAIg6cACIOpAAiD8gAIhBYACIQ9AAiEYQAIhGQACIRmAAiEaAAIhGoACIRsAAiEbgAIhG8ACIRyAAiEiwAIhKwACISuAAiEsAAIhLIACIS0AAiEtgAIhLgACIS6AAiEvAAIhN0ACITgAAiE4wAIhOYACITpAAiE7AAIhO8ACITyAAiE9QAIhPcACIVyAAiFdAAIhXYACIV4AAiFewAIhXwACIV9AAiFfgAIhX8ACIWBAAiFgwAIhYQACIWFAAiFhwAIhYgACIYDAAiGBQAIhgcACIYJAAiGDAAIhg0ACIYOAAiGDwAIhhAACIYSAAiGFAAIhhUACIYWAAiGGAAIhhkACIaUAAiGlgAIhpkACIabAAiGngAIhp8ACIagAAiGoQAIhqIACIakAAiGpgAIhqcACIaoAAiGqgAIhqsACIbEAAiGxQAIhsYACIbIAAiHQwAIh0UACIdHAAiHSQAIh0wACIdNAAiHTgAIh08ACIdQAAiHUgAIh1QACIdVAAiHVgAIh1gACIdZAAiH1AAIh9YACIfYAAiH2gAIh90ACIfeAAiH3wAIh+AACIfhAAiH4wAIh+UACIfmAAiH5wAIh+kACIfqAAiIZQAIiGcACIhpAAiIawAIiG4ACIhvAAiIcAAIiHEACIhyAAiIdAAIiHYACIh3AAiIeAAIiHoACIh7AAiI9gAIiPgACIj6AAiI/AAIiP8ACIkAAAiJAQAIiQIACIkDAAiJBQAIiQcACIkIAAiJCQAIiQsACIkMAAiJhwAIiYkACImLAAiJjQAIiZAACImRAAiJkgAIiZMACImUAAiJlgAIiZgACImZAAiJmgAIiZwACImdAAiJ5gAIigoACIoxAAiKVQAIilgACIpaAAiKXAAIil4ACIpgAAiKYgAIimMACIpmAAiKfwAIipwACIqeAAiKoAAIiqIACIqkAAiKpgAIiqgACIqqAAiKxwAIisoACIrNAAiK0AAIitMACIrWAAiK2QAIitwACIreAAiLWQAIi1sACItdAAiLXwAIi2IACItjAAiLZAAIi2UACItmAAiLaAAIi2oACItrAAiLbAAIi24ACItvAAiL6gAIi+wACIvuAAiL8AAIi/MACIv0AAiL9QAIi/YACIv3AAiL+QAIi/sACIv8AAiL/QAIi/8ACIwAAAiMewAIjH0ACIx/AAiMgQAIjIQACIyFAAiMhgAIjIcACIyIAAiMigAIjIwACIyNAAiMjgAIjJAACIyRAAiNDAAIjQ4ACI0RAAiNEwAIjRYACI0XAAiNGAAIjRkACI0aAAiNHAAIjR4ACI0fAAiNIAAIjSIACI0jAAiNngAIjaAACI2iAAiNpAAIjacACI2oAAiNqQAIjaoACI2rAAiNrQAIja8ACI2wAAiNsQAIjbMACI20AAiOLwAIjjEACI4zAAiONQAIjjgACI45AAiOOgAIjjsACI48AAiOPgAIjkAACI5BAAiOQgAIjkQACI5FAAiOwAAIjsIACI7EAAiOxgAIjskACI7KAAiOywAIjswACI7NAAiOzwAIjtEACI7SAAiO0wAIjtUACI7WAAiPaQAIj4wACI+sAAiPzAAIj84ACI/QAAiP0gAIj9QACI/XAAiP2AAIj9kACI/cAAiP3QAIj98ACI/gAAiP4wAIj+YACI/nAAiP6AAIj+sACI/sAAiP8QAIkAoACJATAAiQFQAIkBgACJAhAAiQJAAIkCcACJApAAiQcgAIkJYACJC9AAiQ4QAIkOQACJDmAAiQ6AAIkOoACJDsAAiQ7gAIkO8ACJDyAAiRCwAIkSwACJEuAAiRMAAIkTIACJE0AAiRNgAIkTgACJE6AAiRPAAIkV0ACJFgAAiRYwAIkWYACJFpAAiRbAAIkW8ACJFyAAiRdQAIkXcACJHyAAiR9AAIkfYACJH4AAiR+wAIkfwACJH9AAiR/gAIkf8ACJIBAAiSAwAIkgQACJIFAAiSBwAIkggACJKDAAiShQAIkocACJKJAAiSjAAIko0ACJKOAAiSjwAIkpAACJKSAAiSlAAIkpUACJKWAAiSmAAIkpkACJMUAAiTFgAIkxkACJMbAAiTHgAIkx8ACJMgAAiTIQAIkyIACJMkAAiTJgAIkycACJMoAAiTKgAIkysACJNEAAiTRQAIk0YACJNIAAiTwwAIk8UACJPHAAiTyQAIk8wACJPNAAiTzgAIk88ACJPQAAiT0gAIk9QACJPVAAiT1gAIk9gACJPZAAiUVAAIlFYACJRYAAiUWgAIlF0ACJReAAiUXwAIlGAACJRhAAiUYwAIlGUACJRmAAiUZwAIlGkACJRqAAiU5QAIlOcACJTpAAiU6wAIlO4ACJTvAAiU8AAIlPEACJTyAAiU9AAIlPYACJT3AAiU+AAIlPoACJT7AAiVdgAIlXgACJV6AAiVfAAIlX8ACJWAAAiVgQAIlYIACJWDAAiVhQAIlYcACJWIAAiViQAIlYsACJWMAAiWBwAIlgkACJYLAAiWDQAIlhAACJYRAAiWEgAIlhMACJYUAAiWFgAIlhgACJYZAAiWGgAIlhwACJYdAAiWZgAIlooACJaxAAiW1QAIltgACJbbAAiW3QAIlt8ACJbhAAiW4wAIluQACJbnAAiXAAAIlx0ACJcgAAiXIwAIlyYACJcpAAiXLAAIly8ACJcyAAiXTwAIl1IACJdVAAiXWAAIl1sACJdeAAiXYQAIl2QACJdmAAiX4QAIl+MACJfmAAiX6AAIl+sACJfsAAiX7QAIl+4ACJfvAAiX8QAIl/QACJf1AAiX9gAIl/gACJf5AAiYdAAImHYACJh5AAiYewAImH4ACJh/AAiYgAAImIEACJiCAAiYhAAImIcACJiIAAiYiQAImIsACJiMAAiZBwAImQkACJkMAAiZDgAImREACJkSAAiZEwAImRQACJkVAAiZFwAImRoACJkbAAiZHAAImR4ACJkfAAiZmgAImZwACJmfAAiZoQAImaQACJmlAAiZpgAImacACJmoAAiZqgAIma0ACJmuAAiZrwAImbEACJmyAAiaLQAImi8ACJoxAAiaMwAImjYACJo3AAiaOAAImjkACJo6AAiaPAAImj8ACJpAAAiaQQAImkMACJpEAAiavwAImsEACJrDAAiaxQAImsgACJrJAAiaygAImssACJrMAAiazgAImtEACJrSAAia0wAImtUACJrWAAibUQAIm1MACJtWAAibWAAIm1sACJtcAAibXQAIm14ACJtfAAibYQAIm2QACJtlAAibZgAIm2gACJtpAAib/AAInB8ACJw/AAicXwAInGEACJxjAAicZQAInGcACJxqAAicawAInGwACJxvAAiccAAInHIACJxzAAicdgAInHkACJx6AAicewAInH4ACJx/AAichAAInJ0ACJymAAicqAAInKsACJy0AAictwAInLoACJy8AAidBQAInSkACJ1QAAiddAAInXcACJ15AAidewAInX0ACJ1/AAidgQAInYIACJ2FAAidngAInb8ACJ3BAAidwwAIncUACJ3HAAidyQAIncsACJ3NAAidzwAInfAACJ3zAAid9gAInfkACJ38AAid/wAIngIACJ4FAAieCAAIngoACJ6FAAiehwAInokACJ6LAAiejgAIno8ACJ6QAAiekQAInpIACJ6UAAielgAInpcACJ6YAAiemgAInpsACJ8WAAifGAAInxoACJ8cAAifHwAInyAACJ8hAAifIgAInyMACJ8lAAifJwAInygACJ8pAAifKwAInywACJ+nAAifqQAIn6wACJ+uAAifsQAIn7IACJ+zAAiftAAIn7UACJ+3AAifuQAIn7oACJ+7AAifvQAIn74ACJ/XAAif2AAIn9kACJ/bAAigVgAIoFgACKBaAAigXAAIoF8ACKBgAAigYQAIoGIACKBjAAigZQAIoGcACKBoAAigaQAIoGsACKBsAAig5wAIoOkACKDrAAig7QAIoPAACKDxAAig8gAIoPMACKD0AAig9gAIoPgACKD5AAig+gAIoPwACKD9AAiheAAIoXoACKF8AAihfgAIoYEACKGCAAihgwAIoYQACKGFAAihhwAIoYkACKGKAAihiwAIoY0ACKGOAAiiCQAIogsACKINAAiiDwAIohIACKITAAiiFAAIohUACKIWAAiiGAAIohoACKIbAAiiHAAIoh4ACKIfAAiimgAIopwACKKeAAiioAAIoqMACKKkAAiipQAIoqYACKKnAAiiqQAIoqsACKKsAAiirQAIoq8ACKKwAAii+QAIox0ACKNEAAijaAAIo2sACKNuAAijcAAIo3IACKN0AAijdgAIo3cACKN6AAijkwAIo7AACKOzAAijtgAIo7kACKO8AAijvwAIo8IACKPFAAij4gAIo+UACKPoAAij6wAIo+4ACKPxAAij9AAIo/cACKP5AAikdAAIpHYACKR5AAikewAIpH4ACKR/AAikgAAIpIEACKSCAAikhAAIpIcACKSIAAikiQAIpIsACKSMAAilBwAIpQkACKUMAAilDgAIpREACKUSAAilEwAIpRQACKUVAAilFwAIpRoACKUbAAilHAAIpR4ACKUfAAilmgAIpZwACKWfAAiloQAIpaQACKWlAAilpgAIpacACKWoAAilqgAIpa0ACKWuAAilrwAIpbEACKWyAAimLQAIpi8ACKYyAAimNAAIpjcACKY4AAimOQAIpjoACKY7AAimPQAIpkAACKZBAAimQgAIpkQACKZFAAimwAAIpsIACKbEAAimxgAIpskACKbKAAimywAIpswACKbNAAimzwAIptIACKbTAAim1AAIptYACKbXAAinUgAIp1QACKdWAAinWAAIp1sACKdcAAinXQAIp14ACKdfAAinYQAIp2QACKdlAAinZgAIp2gACKdpAAin5AAIp+YACKfpAAin6wAIp+4ACKfvAAin8AAIp/EACKfyAAin9AAIp/cACKf4AAin+QAIp/sACKf8AAiojwAIqLIACKjSAAio8gAIqPQACKj2AAio+AAIqPoACKj9AAio/gAIqP8ACKkCAAipAwAIqQUACKkGAAipCQAIqQwACKkNAAipDgAIqREACKkSAAipFwAIqTAACKk5AAipOwAIqT4ACKlHAAipSgAIqU0ACKlPAAipmAAIqbwACKnjAAiqBwAIqgoACKoMAAiqDgAIqhAACKoSAAiqFAAIqhUACKoYAAiqMQAIqlIACKpUAAiqVgAIqlgACKpaAAiqXAAIql4ACKpgAAiqYgAIqoMACKqGAAiqiQAIqowACKqPAAiqkgAIqpUACKqYAAiqmwAIqp0ACKsYAAirGgAIqxwACKseAAirIQAIqyIACKsjAAirJAAIqyUACKsnAAirKQAIqyoACKsrAAirLQAIqy4ACKupAAirqwAIq60ACKuvAAirsgAIq7MACKu0AAirtQAIq7YACKu4AAirugAIq7sACKu8AAirvgAIq78ACKw6AAisPAAIrD8ACKxBAAisRAAIrEUACKxGAAisRwAIrEgACKxKAAisTAAIrE0ACKxOAAisUAAIrFEACKxqAAisawAIrGwACKxuAAis6QAIrOsACKztAAis7wAIrPIACKzzAAis9AAIrPUACKz2AAis+AAIrPoACKz7AAis/AAIrP4ACKz/AAitegAIrXwACK1+AAitgAAIrYMACK2EAAithQAIrYYACK2HAAitiQAIrYsACK2MAAitjQAIrY8ACK2QAAiuCwAIrg0ACK4PAAiuEQAIrhQACK4VAAiuFgAIrhcACK4YAAiuGgAIrhwACK4dAAiuHgAIriAACK4hAAiunAAIrp4ACK6gAAiuogAIrqUACK6mAAiupwAIrqgACK6pAAiuqwAIrq0ACK6uAAiurwAIrrEACK6yAAivLQAIry8ACK8xAAivMwAIrzYACK83AAivOAAIrzkACK86AAivPAAIrz4ACK8/AAivQAAIr0IACK9DAAivjAAIr7AACK/XAAiv+wAIr/4ACLABAAiwAwAIsAUACLAHAAiwCQAIsAoACLANAAiwJgAIsEMACLBGAAiwSQAIsEwACLBPAAiwUgAIsFUACLBYAAiwdQAIsHgACLB7AAiwfgAIsIEACLCEAAiwhwAIsIoACLCMAAixBwAIsQkACLEMAAixDgAIsREACLESAAixEwAIsRQACLEVAAixFwAIsRoACLEbAAixHAAIsR4ACLEfAAixmgAIsZwACLGfAAixoQAIsaQACLGlAAixpgAIsacACLGoAAixqgAIsa0ACLGuAAixrwAIsbEACLGyAAiyLQAIsi8ACLIyAAiyNAAIsjcACLI4AAiyOQAIsjoACLI7AAiyPQAIskAACLJBAAiyQgAIskQACLJFAAiywAAIssIACLLFAAiyxwAIssoACLLLAAiyzAAIss0ACLLOAAiy0AAIstMACLLUAAiy1QAIstcACLLYAAizUwAIs1UACLNXAAizWQAIs1wACLNdAAizXgAIs18ACLNgAAizYgAIs2UACLNmAAizZwAIs2kACLNqAAiz5QAIs+cACLPpAAiz6wAIs+4ACLPvAAiz8AAIs/EACLPyAAiz9AAIs/cACLP4AAiz+QAIs/sACLP8AAi0dwAItHkACLR8AAi0fgAItIEACLSCAAi0gwAItIQACLSFAAi0hwAItIoACLSLAAi0jAAItI4ACLSPAAi1IgAItUUACLVlAAi1hQAItYcACLWJAAi1iwAItY0ACLWQAAi1kQAItZIACLWVAAi1lgAItZgACLWZAAi1mwAItZ4ACLWfAAi1oAAItaMACLWkAAi1qQAItcIACLXLAAi1zQAItc8ACLXYAAi12wAItd4ACLXgAAi2KQAItk0ACLZ0AAi2mAAItpsACLadAAi2nwAItqEACLajAAi2pQAItqYACLapAAi2wgAItuMACLblAAi25wAItukACLbrAAi27QAItu8ACLbxAAi28wAItxQACLcXAAi3GgAItx0ACLcgAAi3IwAItyYACLcpAAi3LAAIty4ACLepAAi3qwAIt60ACLevAAi3sgAIt7MACLe0AAi3tQAIt7YACLe4AAi3ugAIt7sACLe8AAi3vgAIt78ACLg6AAi4PAAIuD4ACLhAAAi4QwAIuEQACLhFAAi4RgAIuEcACLhJAAi4SwAIuEwACLhNAAi4TwAIuFAACLjLAAi4zQAIuNAACLjSAAi41QAIuNYACLjXAAi42AAIuNkACLjbAAi43QAIuN4ACLjfAAi44QAIuOIACLj7AAi4/AAIuP0ACLj/AAi5egAIuXwACLl+AAi5gAAIuYMACLmEAAi5hQAIuYYACLmHAAi5iQAIuYsACLmMAAi5jQAIuY8ACLmQAAi6CwAIug0ACLoPAAi6EQAIuhQACLoVAAi6FgAIuhcACLoYAAi6GgAIuhwACLodAAi6HgAIuiAACLohAAi6nAAIup4ACLqgAAi6ogAIuqUACLqmAAi6pwAIuqgACLqpAAi6qwAIuq0ACLquAAi6rwAIurEACLqyAAi7LQAIuy8ACLsxAAi7MwAIuzYACLs3AAi7OAAIuzkACLs6AAi7PAAIuz4ACLs/AAi7QAAIu0IACLtDAAi7vgAIu8AACLvCAAi7xAAIu8cACLvIAAi7yQAIu8oACLvLAAi7zQAIu88ACLvQAAi70QAIu9MACLvUAAi8HQAIvEEACLxoAAi8jAAIvI8ACLyRAAi8kwAIvJUACLyXAAi8mQAIvJoACLydAAi8tgAIvNMACLzVAAi81wAIvNkACLzbAAi83QAIvN8ACLzhAAi8/gAIvQEACL0EAAi9BwAIvQoACL0NAAi9EAAIvRMACL0VAAi9kAAIvZIACL2UAAi9lgAIvZkACL2aAAi9mwAIvZwACL2dAAi9nwAIvaEACL2iAAi9owAIvaUACL2mAAi+IQAIviMACL4lAAi+JwAIvioACL4rAAi+LAAIvi0ACL4uAAi+MAAIvjIACL4zAAi+NAAIvjYACL43AAi+sgAIvrQACL62AAi+uAAIvrsACL68AAi+vQAIvr4ACL6/AAi+wQAIvsMACL7EAAi+xQAIvscACL7IAAi/QwAIv0UACL9IAAi/SgAIv00ACL9OAAi/TwAIv1AACL9RAAi/UwAIv1UACL9WAAi/VwAIv1kACL9aAAi/1QAIv9cACL/ZAAi/2wAIv94ACL/fAAi/4AAIv+EACL/iAAi/5AAIv+YACL/nAAi/6AAIv+oACL/rAAjAZgAIwGgACMBqAAjAbAAIwG8ACMBwAAjAcQAIwHIACMBzAAjAdQAIwHcACMB4AAjAeQAIwHsACMB8AAjA9wAIwPkACMD7AAjA/QAIwQAACMEBAAjBAgAIwQMACMEEAAjBBgAIwQgACMEJAAjBCgAIwQwACMENAAjBoAAIwcMACMHjAAjCAwAIwgUACMIHAAjCCQAIwgsACMIOAAjCDwAIwhAACMITAAjCFAAIwhYACMIXAAjCGQAIwhwACMIdAAjCHgAIwiEACMIiAAjCJwAIwkAACMJJAAjCSwAIwk0ACMJWAAjCWQAIwlwACMJeAAjCpwAIwssACMLyAAjDFgAIwxkACMMbAAjDHQAIwx8ACMMhAAjDIwAIwyQACMMnAAjDQAAIw2EACMNjAAjDZQAIw2cACMNpAAjDawAIw20ACMNvAAjDcQAIw5IACMOVAAjDmAAIw5sACMOeAAjDoQAIw6QACMOnAAjDqgAIw6wACMQnAAjEKQAIxCsACMQtAAjEMAAIxDEACMQyAAjEMwAIxDQACMQ2AAjEOAAIxDkACMQ6AAjEPAAIxD0ACMS4AAjEugAIxLwACMS+AAjEwQAIxMIACMTDAAjExAAIxMUACMTHAAjEyQAIxMoACMTLAAjEzQAIxM4ACMVJAAjFSwAIxU4ACMVQAAjFUwAIxVQACMVVAAjFVgAIxVcACMVZAAjFWwAIxVwACMVdAAjFXwAIxWAACMV5AAjFegAIxXsACMV9AAjF+AAIxfoACMX8AAjF/gAIxgEACMYCAAjGAwAIxgQACMYFAAjGBwAIxgkACMYKAAjGCwAIxg0ACMYOAAjGiQAIxosACMaNAAjGjwAIxpIACMaTAAjGlAAIxpUACMaWAAjGmAAIxpoACMabAAjGnAAIxp4ACMafAAjHGgAIxxwACMceAAjHIAAIxyMACMckAAjHJQAIxyYACMcnAAjHKQAIxysACMcsAAjHLQAIxy8ACMcwAAjHqwAIx60ACMevAAjHsQAIx7QACMe1AAjHtgAIx7cACMe4AAjHugAIx7wACMe9AAjHvgAIx8AACMfBAAjIPAAIyD4ACMhAAAjIQgAIyEUACMhGAAjIRwAIyEgACMhJAAjISwAIyE0ACMhOAAjITwAIyFEACMhSAAjImwAIyL8ACMjmAAjJCgAIyQ0ACMkPAAjJEQAIyRMACMkVAAjJFwAIyRgACMkbAAjJNAAIyVEACMlTAAjJVQAIyVcACMlZAAjJWwAIyV0ACMlfAAjJfAAIyX8ACMmCAAjJhQAIyYgACMmLAAjJjgAIyZEACMmTAAjKDgAIyhAACMoSAAjKFAAIyhcACMoYAAjKGQAIyhoACMobAAjKHQAIyh8ACMogAAjKIQAIyiMACMokAAjKnwAIyqEACMqjAAjKpQAIyqgACMqpAAjKqgAIyqsACMqsAAjKrgAIyrAACMqxAAjKsgAIyrQACMq1AAjLMAAIyzIACMs0AAjLNgAIyzkACMs6AAjLOwAIyzwACMs9AAjLPwAIy0EACMtCAAjLQwAIy0UACMtGAAjLwQAIy8MACMvGAAjLyAAIy8sACMvMAAjLzQAIy84ACMvPAAjL0QAIy9MACMvUAAjL1QAIy9cACMvYAAjMUwAIzFUACMxXAAjMWQAIzFwACMxdAAjMXgAIzF8ACMxgAAjMYgAIzGQACMxlAAjMZgAIzGgACMxpAAjM5AAIzOYACMzoAAjM6gAIzO0ACMzuAAjM7wAIzPAACMzxAAjM8wAIzPUACMz2AAjM9wAIzPkACMz6AAjNdQAIzXcACM15AAjNewAIzX4ACM1/AAjNgAAIzYEACM2CAAjNhAAIzYYACM2HAAjNiAAIzYoACM2LAAjNnAAIzZ0ACM2fAAjOGgAIzhwACM4eAAjOIAAIziMACM4kAAjOJQAIziYACM4nAAjOKQAIziwACM4tAAjOLgAIzjAACM4xAAjOrAAIzq4ACM6wAAjOsgAIzrUACM62AAjOtwAIzrgACM65AAjOuwAIzr4ACM6/AAjOwAAIzsIACM7DAAjPPgAIz0AACM9DAAjPRQAIz0gACM9JAAjPSgAIz0sACM9MAAjPTgAIz1EACM9SAAjPUwAIz1UACM9WAAjP6QAI0AwACNAsAAjQTAAI0E4ACNBQAAjQUgAI0FQACNBXAAjQWAAI0FkACNBcAAjQXQAI0F8ACNBgAAjQYgAI0GUACNBmAAjQZwAI0GoACNBrAAjQcAAI0IkACNCSAAjQlAAI0JYACNCfAAjQogAI0KUACNCnAAjQ8AAI0RQACNE7AAjRXwAI0WIACNFkAAjRZgAI0WgACNFqAAjRbAAI0W0ACNFwAAjRiQAI0aoACNGsAAjRrgAI0bAACNGyAAjRtAAI0bYACNG4AAjRugAI0dsACNHeAAjR4QAI0eQACNHnAAjR6gAI0e0ACNHwAAjR8wAI0fUACNJwAAjScgAI0nQACNJ2AAjSeQAI0noACNJ7AAjSfAAI0n0ACNJ/AAjSgQAI0oIACNKDAAjShQAI0oYACNMBAAjTAwAI0wUACNMHAAjTCgAI0wsACNMMAAjTDQAI0w4ACNMQAAjTEgAI0xMACNMUAAjTFgAI0xcACNOSAAjTlAAI05cACNOZAAjTnAAI050ACNOeAAjTnwAI06AACNOiAAjTpAAI06UACNOmAAjTqAAI06kACNPCAAjTwwAI08QACNPGAAjUQQAI1EMACNRFAAjURwAI1EoACNRLAAjUTAAI1E0ACNROAAjUUAAI1FIACNRTAAjUVAAI1FYACNRXAAjU0gAI1NQACNTWAAjU2AAI1NsACNTcAAjU3QAI1N4ACNTfAAjU4QAI1OMACNTkAAjU5QAI1OcACNToAAjVYwAI1WUACNVnAAjVaQAI1WwACNVtAAjVbgAI1W8ACNVwAAjVcgAI1XQACNV1AAjVdgAI1XgACNV5AAjV9AAI1fYACNX4AAjV+gAI1f0ACNX+AAjV/wAI1gAACNYBAAjWAwAI1gUACNYGAAjWBwAI1gkACNYKAAjWhQAI1ocACNaJAAjWiwAI1o4ACNaPAAjWkAAI1pEACNaSAAjWlAAI1pYACNaXAAjWmAAI1poACNabAAjW5AAI1wgACNcvAAjXUwAI11YACNdYAAjXWgAI11wACNdeAAjXYAAI12EACNdkAAjXfQAI15oACNecAAjXngAI16AACNeiAAjXpAAI16YACNeoAAjXxQAI18gACNfLAAjXzgAI19EACNfUAAjX1wAI19oACNfcAAjYVwAI2FkACNhbAAjYXQAI2GAACNhhAAjYYgAI2GMACNhkAAjYZgAI2GgACNhpAAjYagAI2GwACNhtAAjY6AAI2OoACNjsAAjY7gAI2PEACNjyAAjY8wAI2PQACNj1AAjY9wAI2PkACNj6AAjY+wAI2P0ACNj+AAjZeQAI2XsACNl9AAjZfwAI2YIACNmDAAjZhAAI2YUACNmGAAjZiAAI2YoACNmLAAjZjAAI2Y4ACNmPAAjaCgAI2gwACNoOAAjaEAAI2hMACNoUAAjaFQAI2hYACNoXAAjaGQAI2hsACNocAAjaHQAI2h8ACNogAAjamwAI2p0ACNqfAAjaoQAI2qQACNqlAAjapgAI2qcACNqoAAjaqgAI2qwACNqtAAjargAI2rAACNqxAAjbLAAI2y4ACNsxAAjbMwAI2zYACNs3AAjbOAAI2zkACNs6AAjbPAAI2z4ACNs/AAjbQAAI20IACNtDAAjbYgAI290ACNvfAAjb4QAI2+MACNvmAAjb5wAI2+gACNvpAAjb6gAI2+wACNvuAAjb7wAI2/AACNvyAAjb8wAI3IYACNypAAjcyQAI3OkACNzrAAjc7QAI3O8ACNzxAAjc9AAI3PUACNz2AAjc+QAI3PoACNz8AAjc/QAI3QAACN0DAAjdBAAI3QUACN0IAAjdCQAI3Q4ACN0nAAjdMAAI3TIACN01AAjdPgAI3UEACN1EAAjdRgAI3Y8ACN2zAAjd2gAI3f4ACN4BAAjeAwAI3gUACN4HAAjeCQAI3gsACN4MAAjeDwAI3igACN5JAAjeSwAI3k0ACN5PAAjeUQAI3lMACN5VAAjeVwAI3lkACN56AAjefQAI3oAACN6DAAjehgAI3okACN6MAAjejwAI3pIACN6UAAjfDwAI3xEACN8TAAjfFQAI3xgACN8ZAAjfGgAI3xsACN8cAAjfHgAI3yAACN8hAAjfIgAI3yQACN8lAAjfoAAI36IACN+kAAjfpgAI36kACN+qAAjfqwAI36wACN+tAAjfrwAI37EACN+yAAjfswAI37UACN+2AAjgMQAI4DMACOA2AAjgOAAI4DsACOA8AAjgPQAI4D4ACOA/AAjgQQAI4EMACOBEAAjgRQAI4EcACOBIAAjgYQAI4GIACOBjAAjgZQAI4OAACODiAAjg5AAI4OYACODpAAjg6gAI4OsACODsAAjg7QAI4O8ACODxAAjg8gAI4PMACOD1AAjg9gAI4XEACOFzAAjhdQAI4XcACOF6AAjhewAI4XwACOF9AAjhfgAI4YAACOGCAAjhgwAI4YQACOGGAAjhhwAI4gIACOIEAAjiBgAI4ggACOILAAjiDAAI4g0ACOIOAAjiDwAI4hEACOITAAjiFAAI4hUACOIXAAjiGAAI4pMACOKVAAjilwAI4pkACOKcAAjinQAI4p4ACOKfAAjioAAI4qIACOKkAAjipQAI4qYACOKoAAjiqQAI4yQACOMmAAjjKAAI4yoACOMtAAjjLgAI4y8ACOMwAAjjMQAI4zMACOM1AAjjNgAI4zcACOM5AAjjOgAI44MACOOnAAjjzgAI4/IACOP1AAjj+AAI4/oACOP8AAjj/gAI5AAACOQBAAjkBAAI5B0ACOQ6AAjkPQAI5EAACORDAAjkRgAI5EkACORMAAjkTwAI5GwACORvAAjkcgAI5HUACOR4AAjkewAI5H4ACOSBAAjkgwAI5P4ACOUAAAjlAwAI5QUACOUIAAjlCQAI5QoACOULAAjlDAAI5Q4ACOURAAjlEgAI5RMACOUVAAjlFgAI5ZEACOWTAAjllgAI5ZgACOWbAAjlnAAI5Z0ACOWeAAjlnwAI5aEACOWkAAjlpQAI5aYACOWoAAjlqQAI5iQACOYmAAjmKQAI5isACOYuAAjmLwAI5jAACOYxAAjmMgAI5jQACOY3AAjmOAAI5jkACOY7AAjmPAAI5rcACOa5AAjmvAAI5r4ACObBAAjmwgAI5sMACObEAAjmxQAI5scACObKAAjmywAI5swACObOAAjmzwAI50oACOdMAAjnTgAI51AACOdTAAjnVAAI51UACOdWAAjnVwAI51kACOdcAAjnXQAI514ACOdgAAjnYQAI59wACOfeAAjn4AAI5+IACOflAAjn5gAI5+cACOfoAAjn6QAI5+sACOfuAAjn7wAI5/AACOfyAAjn8wAI6G4ACOhwAAjocwAI6HUACOh4AAjoeQAI6HoACOh7AAjofAAI6H4ACOiBAAjoggAI6IMACOiFAAjohgAI6RkACOk8AAjpXAAI6XwACOl+AAjpgAAI6YIACOmEAAjphwAI6YgACOmJAAjpjAAI6Y0ACOmPAAjpkAAI6ZMACOmWAAjplwAI6ZgACOmbAAjpnAAI6aEACOm6AAjpwwAI6cUACOnIAAjp0QAI6dQACOnXAAjp2QAI6iIACOpGAAjqbQAI6pEACOqUAAjqlgAI6pgACOqaAAjqnAAI6p4ACOqfAAjqogAI6rsACOrcAAjq3gAI6uAACOriAAjq5AAI6uYACOroAAjq6gAI6uwACOsNAAjrEAAI6xMACOsWAAjrGQAI6xwACOsfAAjrIgAI6yUACOsnAAjrogAI66QACOumAAjrqAAI66sACOusAAjrrQAI664ACOuvAAjrsQAI67MACOu0AAjrtQAI67cACOu4AAjsMwAI7DUACOw3AAjsOQAI7DwACOw9AAjsPgAI7D8ACOxAAAjsQgAI7EQACOxFAAjsRgAI7EgACOxJAAjsxAAI7MYACOzJAAjsywAI7M4ACOzPAAjs0AAI7NEACOzSAAjs1AAI7NYACOzXAAjs2AAI7NoACOzbAAjs9AAI7PUACOz2AAjs+AAI7XMACO11AAjtdwAI7XkACO18AAjtfQAI7X4ACO1/AAjtgAAI7YIACO2EAAjthQAI7YYACO2IAAjtiQAI7gQACO4GAAjuCAAI7goACO4NAAjuDgAI7g8ACO4QAAjuEQAI7hMACO4VAAjuFgAI7hcACO4ZAAjuGgAI7pUACO6XAAjumQAI7psACO6eAAjunwAI7qAACO6hAAjuogAI7qQACO6mAAjupwAI7qgACO6qAAjuqwAI7yYACO8oAAjvKgAI7ywACO8vAAjvMAAI7zEACO8yAAjvMwAI7zUACO83AAjvOAAI7zkACO87AAjvPAAI77cACO+5AAjvuwAI770ACO/AAAjvwQAI78IACO/DAAjvxAAI78YACO/IAAjvyQAI78oACO/MAAjvzQAI8BYACPA6AAjwYQAI8IUACPCIAAjwiwAI8I0ACPCPAAjwkQAI8JMACPCUAAjwlwAI8LAACPDNAAjw0AAI8NMACPDWAAjw2QAI8NwACPDfAAjw4gAI8P8ACPECAAjxBQAI8QgACPELAAjxDgAI8REACPEUAAjxFgAI8ZEACPGTAAjxlgAI8ZgACPGbAAjxnAAI8Z0ACPGeAAjxnwAI8aEACPGkAAjxpQAI8aYACPGoAAjxqQAI8iQACPImAAjyKQAI8isACPIuAAjyLwAI8jAACPIxAAjyMgAI8jQACPI3AAjyOAAI8jkACPI7AAjyPAAI8rcACPK5AAjyvAAI8r4ACPLBAAjywgAI8sMACPLEAAjyxQAI8scACPLKAAjyywAI8swACPLOAAjyzwAI80oACPNMAAjzTwAI81EACPNUAAjzVQAI81YACPNXAAjzWAAI81oACPNdAAjzXgAI818ACPNhAAjzYgAI890ACPPfAAjz4QAI8+MACPPmAAjz5wAI8+gACPPpAAjz6gAI8+wACPPvAAjz8AAI8/EACPPzAAjz9AAI9G8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ACQaKAAkGjAAJBo0ACQaeAAkGnwAJBqEACQccAAkHHgAJByAACQciAAkHJQAJByYACQcnAAkHKAAJBykACQcrAAkHLQAJBy4ACQcvAAkHMQAJBzIACQetAAkHrwAJB7IACQe0AAkHtwAJB7gACQe5AAkHugAJB7sACQe9AAkHvwAJB8AACQfBAAkHwwAJB8QACQfdAAkH3gAJB98ACQfhAAkIXAAJCF4ACQhgAAkIYgAJCGUACQhmAAkIZwAJCGgACQhpAAkIawAJCG0ACQhuAAkIbwAJCHEACQhyAAkI7QAJCO8ACQjyAAkI9AAJCPcACQj4AAkI+QAJCPoACQj7AAkI/QAJCP8ACQkAAAkJAQAJCQMACQkEAAkJHgAJCTcACQlAAAkJQwAJCUYACQlPAAkJUgAJCVUACQlXAAkJYgAJCXAACQoDAAkKJgAJCkYACQpmAAkKaAAJCmoACQpsAAkKbgAJCnEACQpyAAkKcwAJCnYACQp3AAkKeQAJCnoACQp8AAkKfwAJCoAACQqBAAkKhAAJCoUACQqKAAkKowAJCqwACQquAAkKsAAJCrkACQq8AAkKvwAJCsEACQsKAAkLLgAJC1UACQt5AAkLfAAJC34ACQuAAAkLggAJC4QACQuGAAkLhwAJC4oACQujAAkLxAAJC8YACQvIAAkLygAJC8wACQvOAAkL0AAJC9IACQvUAAkL9QAJC/gACQv7AAkL/gAJDAEACQwEAAkMBwAJDAoACQwNAAkMDwAJDIoACQyMAAkMjgAJDJAACQyTAAkMlAAJDJUACQyWAAkMlwAJDJkACQybAAkMnAAJDJ0ACQyfAAkMoAAJDRsACQ0dAAkNHwAJDSEACQ0kAAkNJQAJDSYACQ0nAAkNKAAJDSoACQ0sAAkNLQAJDS4ACQ0wAAkNMQAJDawACQ2uAAkNsQAJDbMACQ22AAkNtwAJDbgACQ25AAkNugAJDbwACQ2+AAkNvwAJDcAACQ3CAAkNwwAJDdwACQ3dAAkN3gAJDeAACQ5bAAkOXQAJDl8ACQ5hAAkOZAAJDmUACQ5mAAkOZwAJDmgACQ5qAAkObAAJDm0ACQ5uAAkOcAAJDnEACQ7sAAkO7gAJDvAACQ7yAAkO9QAJDvYACQ73AAkO+AAJDvkACQ77AAkO/QAJDv4ACQ7/AAkPAQAJDwIACQ99AAkPfwAJD4EACQ+DAAkPhgAJD4cACQ+IAAkPiQAJD4oACQ+MAAkPjgAJD48ACQ+QAAkPkgAJD5MACRAOAAkQEAAJEBIACRAUAAkQFwAJEBgACRAZAAkQGgAJEBsACRAdAAkQHwAJECAACRAhAAkQIwAJECQACRCfAAkQoQAJEKMACRClAAkQqAAJEKkACRCqAAkQqwAJEKwACRCuAAkQsAAJELEACRCyAAkQtAAJELUACRD+AAkRIgAJEUkACRFtAAkRcAAJEXIACRF0AAkRdgAJEXgACRF6AAkRewAJEX4ACRGXAAkRtAAJEbYACRG4AAkRugAJEbwACRG+AAkRwAAJEcIACRHfAAkR4gAJEeUACRHoAAkR6wAJEe4ACRHxAAkR9AAJEfYACRJxAAkScwAJEnUACRJ3AAkSegAJEnsACRJ8AAkSfQAJEn4ACRKAAAkSggAJEoMACRKEAAkShgAJEocACRMCAAkTBAAJEwYACRMIAAkTCwAJEwwACRMNAAkTDgAJEw8ACRMRAAkTEwAJExQACRMVAAkTFwAJExgACROTAAkTlQAJE5cACROZAAkTnAAJE50ACROeAAkTnwAJE6AACROiAAkTpAAJE6UACROmAAkTqAAJE6kACRQkAAkUJgAJFCgACRQqAAkULQAJFC4ACRQvAAkUMAAJFDEACRQzAAkUNQAJFDYACRQ3AAkUOQAJFDoACRS1AAkUtwAJFLkACRS7AAkUvgAJFL8ACRTAAAkUwQAJFMIACRTEAAkUxgAJFMcACRTIAAkUygAJFMsACRVGAAkVSAAJFUsACRVNAAkVUAAJFVEACRVSAAkVUwAJFVQACRVWAAkVWAAJFVkACRVaAAkVXAAJFV0ACRVsAAkV5wAJFekACRXrAAkV7QAJFfAACRXxAAkV8gAJFfMACRX0AAkV9gAJFfgACRX5AAkV+gAJFfwACRX9AAkWkAAJFrMACRbTAAkW8wAJFvUACRb3AAkW+QAJFvsACRb+AAkW/wAJFwAACRcDAAkXBAAJFwYACRcHAAkXCgAJFw0ACRcOAAkXDwAJFxIACRcTAAkXGAAJFzEACRc6AAkXPAAJFz8ACRdIAAkXSwAJF04ACRdQAAkXmQAJF70ACRfkAAkYCAAJGAsACRgNAAkYDwAJGBEACRgTAAkYFQAJGBYACRgZAAkYMgAJGFMACRhVAAkYVwAJGFkACRhbAAkYXQAJGF8ACRhhAAkYYwAJGIQACRiHAAkYigAJGI0ACRiQAAkYkwAJGJYACRiZAAkYnAAJGJ4ACRkZAAkZGwAJGR0ACRkfAAkZIgAJGSMACRkkAAkZJQAJGSYACRkoAAkZKgAJGSsACRksAAkZLgAJGS8ACRmqAAkZrAAJGa4ACRmwAAkZswAJGbQACRm1AAkZtgAJGbcACRm5AAkZuwAJGbwACRm9AAkZvwAJGcAACRo7AAkaPQAJGkAACRpCAAkaRQAJGkYACRpHAAkaSAAJGkkACRpLAAkaTQAJGk4ACRpPAAkaUQAJGlIACRprAAkabAAJGm0ACRpvAAka6gAJGuwACRruAAka8AAJGvMACRr0AAka9QAJGvYACRr3AAka+QAJGvsACRr8AAka/QAJGv8ACRsAAAkbewAJG30ACRt/AAkbgQAJG4QACRuFAAkbhgAJG4cACRuIAAkbigAJG4wACRuNAAkbjgAJG5AACRuRAAkcDAAJHA4ACRwQAAkcEgAJHBUACRwWAAkcFwAJHBgACRwZAAkcGwAJHB0ACRweAAkcHwAJHCEACRwiAAkcnQAJHJ8ACRyhAAkcowAJHKYACRynAAkcqAAJHKkACRyqAAkcrAAJHK4ACRyvAAkcsAAJHLIACRyzAAkdLgAJHTAACR0yAAkdNAAJHTcACR04AAkdOQAJHToACR07AAkdPQAJHT8ACR1AAAkdQQAJHUMACR1EAAkdjQAJHbEACR3YAAkd/AAJHf8ACR4CAAkeBAAJHgYACR4IAAkeCgAJHgsACR4OAAkeJwAJHkQACR5HAAkeSgAJHk0ACR5QAAkeUwAJHlYACR5ZAAkedgAJHnkACR58AAkefwAJHoIACR6FAAkeiAAJHosACR6NAAkfCAAJHwoACR8NAAkfDwAJHxIACR8TAAkfFAAJHxUACR8WAAkfGAAJHxsACR8cAAkfHQAJHx8ACR8gAAkfmwAJH50ACR+gAAkfogAJH6UACR+mAAkfpwAJH6gACR+pAAkfqwAJH64ACR+vAAkfsAAJH7IACR+zAAkgLgAJIDAACSAzAAkgNQAJIDgACSA5AAkgOgAJIDsACSA8AAkgPgAJIEEACSBCAAkgQwAJIEUACSBGAAkgwQAJIMMACSDGAAkgyAAJIMsACSDMAAkgzQAJIM4ACSDPAAkg0QAJINQACSDVAAkg1gAJINgACSDZAAkhVAAJIVYACSFYAAkhWgAJIV0ACSFeAAkhXwAJIWAACSFhAAkhYwAJIWYACSFnAAkhaAAJIWoACSFrAAkh5gAJIegACSHqAAkh7AAJIe8ACSHwAAkh8QAJIfIACSHzAAkh9QAJIfgACSH5AAkh+gAJIfwACSH9AAkieAAJInoACSJ9AAkifwAJIoIACSKDAAkihAAJIoUACSKGAAkiiAAJIosACSKMAAkijQAJIo8ACSKQAAkioQAJIqIACSKkAAkjHwAJIyEACSMjAAkjJQAJIygACSMpAAkjKgAJIysACSMsAAkjLgAJIzEACSMyAAkjMwAJIzUACSM2AAkjsQAJI7MACSO1AAkjtwAJI7oACSO7AAkjvAAJI70ACSO+AAkjwAAJI8MACSPEAAkjxQAJI8cACSPIAAkkQwAJJEUACSRIAAkkSgAJJE0ACSROAAkkTwAJJFAACSRRAAkkUwAJJFYACSRXAAkkWAAJJFoACSRbAAkk7gAJJREACSUxAAklUQAJJVMACSVVAAklVwAJJVkACSVcAAklXQAJJV4ACSVhAAklYgAJJWQACSVlAAklaAAJJWsACSVsAAklbQAJJXAACSVxAAkldgAJJY8ACSWYAAklmgAJJZ0ACSWmAAklqQAJJawACSWuAAkl9wAJJhsACSZCAAkmZgAJJmkACSZrAAkmbQAJJm8ACSZxAAkmcwAJJnQACSZ3AAkmkAAJJrEACSazAAkmtQAJJrcACSa5AAkmuwAJJr0ACSa/AAkmwQAJJuIACSblAAkm6AAJJusACSbuAAkm8QAJJvQACSb3AAkm+gAJJvwACSd3AAkneQAJJ3sACSd9AAkngAAJJ4EACSeCAAkngwAJJ4QACSeGAAkniAAJJ4kACSeKAAknjAAJJ40ACSgIAAkoCgAJKAwACSgOAAkoEQAJKBIACSgTAAkoFAAJKBUACSgXAAkoGQAJKBoACSgbAAkoHQAJKB4ACSiZAAkomwAJKJ4ACSigAAkoowAJKKQACSilAAkopgAJKKcACSipAAkoqwAJKKwACSitAAkorwAJKLAACSjJAAkoygAJKMsACSjNAAkpSAAJKUoACSlMAAkpTgAJKVEACSlSAAkpUwAJKVQACSlVAAkpVwAJKVkACSlaAAkpWwAJKV0ACSleAAkp2QAJKdsACSndAAkp3wAJKeIACSnjAAkp5AAJKeUACSnmAAkp6AAJKeoACSnrAAkp7AAJKe4ACSnvAAkqagAJKmwACSpuAAkqcAAJKnMACSp0AAkqdQAJKnYACSp3AAkqeQAJKnsACSp8AAkqfQAJKn8ACSqAAAkq+wAJKv0ACSr/AAkrAQAJKwQACSsFAAkrBgAJKwcACSsIAAkrCgAJKwwACSsNAAkrDgAJKxAACSsRAAkrjAAJK44ACSuQAAkrkgAJK5UACSuWAAkrlwAJK5gACSuZAAkrmwAJK50ACSueAAkrnwAJK6EACSuiAAkr6wAJLA8ACSw2AAksWgAJLF0ACSxgAAksYgAJLGQACSxmAAksaAAJLGkACSxsAAkshQAJLKIACSylAAksqAAJLKsACSyuAAkssQAJLLQACSy3AAks1AAJLNcACSzaAAks3QAJLOAACSzjAAks5gAJLOkACSzrAAktZgAJLWgACS1rAAktbQAJLXAACS1xAAktcgAJLXMACS10AAktdgAJLXkACS16AAktewAJLX0ACS1+AAkt+QAJLfsACS3+AAkuAAAJLgMACS4EAAkuBQAJLgYACS4HAAkuCQAJLgwACS4NAAkuDgAJLhAACS4RAAkujAAJLo4ACS6RAAkukwAJLpYACS6XAAkumAAJLpkACS6aAAkunAAJLp8ACS6gAAkuoQAJLqMACS6kAAkvHwAJLyEACS8kAAkvJgAJLykACS8qAAkvKwAJLywACS8tAAkvLwAJLzIACS8zAAkvNAAJLzYACS83AAkvugAJL94ACTACAAkwJQAJMEwACTBsAAkwkwAJMLoACTDaAAkw/gAJMSIACTEkAAkxJwAJMSkACTErAAkxLQAJMTAACTEzAAkxNQAJMTcACTE6AAkxPAAJMT4ACTFBAAkxRAAJMUUACTFKAAkxYwAJMWgACTFqAAkxbwAJMXIACTF0AAkxvQAJMeEACTIIAAkyLAAJMi8ACTIxAAkyMwAJMjUACTI3AAkyOQAJMjoACTI9AAkyVgAJMnsACTJ9AAkyfwAJMoEACTKDAAkyhQAJMocACTKJAAkyiwAJMo0ACTKyAAkytQAJMrgACTK7AAkyvgAJMsEACTLEAAkyxwAJMsoACTLNAAkyzwAJM0oACTNMAAkzTwAJM1EACTNUAAkzVQAJM1YACTNXAAkzWAAJM1oACTNcAAkzXQAJM14ACTNgAAkzYQAJM3IACTNzAAkzdQAJM/AACTPyAAkz9AAJM/YACTP5AAkz+gAJM/sACTP8AAkz/QAJM/8ACTQBAAk0AgAJNAMACTQFAAk0BgAJNIEACTSDAAk0hgAJNIgACTSLAAk0jAAJNI0ACTSOAAk0jwAJNJEACTSTAAk0lAAJNJUACTSXAAk0mAAJNKkACTSuAAk0sQAJNLMACTTEAAk0zQAJNNAACTTTAAk01QAJNOgACTTyAAk1bQAJNW8ACTVxAAk1cwAJNXYACTV3AAk1eAAJNXkACTV6AAk1fAAJNX4ACTV/AAk1gAAJNYIACTWDAAk1/gAJNgAACTYDAAk2BQAJNggACTYJAAk2CgAJNgsACTYMAAk2DgAJNhAACTYRAAk2EgAJNhQACTYVAAk2JgAJNicACTYpAAk2pAAJNqYACTaoAAk2qgAJNq0ACTauAAk2rwAJNrAACTaxAAk2swAJNrUACTa2AAk2twAJNrkACTa6AAk3NQAJNzcACTc6AAk3PAAJNz8ACTdAAAk3QQAJN0IACTdDAAk3RQAJN0cACTdIAAk3SQAJN0sACTdMAAk3ZQAJN2YACTdnAAk3aQAJN+QACTfmAAk36AAJN+oACTftAAk37gAJN+8ACTfwAAk38QAJN/MACTf1AAk39gAJN/cACTf5AAk3+gAJOHUACTh3AAk4egAJOHwACTh/AAk4gAAJOIEACTiCAAk4gwAJOIUACTiHAAk4iAAJOIkACTiLAAk4jAAJOJsACTi0AAk48wAJOPYACTj5AAk4/AAJOP8ACTkCAAk5BQAJOQgACTkLAAk5DgAJOREACTkUAAk5FwAJORoACTkdAAk5IAAJOV8ACTliAAk5ZQAJOWgACTlrAAk5bgAJOXEACTl0AAk5dwAJOXoACTl9AAk5gAAJOYMACTmGAAk5iQAJOYwACTmOAAk5mwAJOboACTnDAAk53QAJOfAACToIAAk6FgAJOiMACTpAAAk6VAAJOlwACTpmAAk6dQAJOowACTsfAAk7QgAJO2IACTuCAAk7hAAJO4YACTuIAAk7igAJO40ACTuOAAk7jwAJO5IACTuTAAk7lQAJO5YACTuYAAk7mwAJO5wACTudAAk7oAAJO6EACTumAAk7vwAJO8gACTvKAAk7zAAJO9UACTvYAAk72wAJO90ACTwmAAk8SgAJPHEACTyVAAk8mAAJPJoACTycAAk8ngAJPKAACTyiAAk8owAJPKYACTy/AAk84AAJPOIACTzkAAk85gAJPOgACTzqAAk87AAJPO4ACTzwAAk9EQAJPRQACT0XAAk9GgAJPR0ACT0gAAk9IwAJPSYACT0pAAk9KwAJPaYACT2oAAk9qgAJPawACT2vAAk9sAAJPbEACT2yAAk9swAJPbUACT23AAk9uAAJPbkACT27AAk9vAAJPjcACT45AAk+OwAJPj0ACT5AAAk+QQAJPkIACT5DAAk+RAAJPkYACT5IAAk+SQAJPkoACT5MAAk+TQAJPsgACT7KAAk+zQAJPs8ACT7SAAk+0wAJPtQACT7VAAk+1gAJPtgACT7aAAk+2wAJPtwACT7eAAk+3wAJPvgACT75AAk++gAJPvwACT93AAk/eQAJP3sACT99AAk/gAAJP4EACT+CAAk/gwAJP4QACT+GAAk/iAAJP4kACT+KAAk/jAAJP40ACUAIAAlACgAJQAwACUAOAAlAEQAJQBIACUATAAlAFAAJQBUACUAXAAlAGQAJQBoACUAbAAlAHQAJQB4ACUCZAAlAmwAJQJ0ACUCfAAlAogAJQKMACUCkAAlApQAJQKYACUCoAAlAqgAJQKsACUCsAAlArgAJQK8ACUEqAAlBLAAJQS4ACUEwAAlBMwAJQTQACUE1AAlBNgAJQTcACUE5AAlBOwAJQTwACUE9AAlBPwAJQUAACUG7AAlBvQAJQb8ACUHBAAlBxAAJQcUACUHGAAlBxwAJQcgACUHKAAlBzAAJQc0ACUHOAAlB0AAJQdEACUIaAAlCPgAJQmUACUKJAAlCjAAJQo4ACUKQAAlCkgAJQpQACUKWAAlClwAJQpoACUKzAAlC0AAJQtIACULUAAlC1gAJQtgACULaAAlC3AAJQt4ACUL7AAlC/gAJQwEACUMEAAlDBwAJQwoACUMNAAlDEAAJQxIACUONAAlDjwAJQ5EACUOTAAlDlgAJQ5cACUOYAAlDmQAJQ5oACUOcAAlDngAJQ58ACUOgAAlDogAJQ6MACUQeAAlEIAAJRCIACUQkAAlEJwAJRCgACUQpAAlEKgAJRCsACUQtAAlELwAJRDAACUQxAAlEMwAJRDQACUSvAAlEsQAJRLMACUS1AAlEuAAJRLkACUS6AAlEuwAJRLwACUS+AAlEwAAJRMEACUTCAAlExAAJRMUACUVAAAlFQgAJRUUACUVHAAlFSgAJRUsACUVMAAlFTQAJRU4ACUVQAAlFUgAJRVMACUVUAAlFVgAJRVcACUXSAAlF1AAJRdYACUXYAAlF2wAJRdwACUXdAAlF3gAJRd8ACUXhAAlF4wAJReQACUXlAAlF5wAJRegACUZjAAlGZQAJRmcACUZpAAlGbAAJRm0ACUZuAAlGbwAJRnAACUZyAAlGdAAJRnUACUZ2AAlGeAAJRnkACUb0AAlG9gAJRvgACUb6AAlG/QAJRv4ACUb/AAlHAAAJRwEACUcDAAlHBQAJRwYACUcHAAlHCQAJRwoACUedAAlHwAAJR+AACUgAAAlIAgAJSAQACUgGAAlICAAJSAsACUgMAAlIDQAJSBAACUgRAAlIEwAJSBQACUgWAAlIGQAJSBoACUgbAAlIHgAJSB8ACUgkAAlIPQAJSEYACUhIAAlISgAJSFMACUhWAAlIWQAJSFsACUikAAlIyAAJSO8ACUkTAAlJFgAJSRgACUkaAAlJHAAJSR4ACUkgAAlJIQAJSSQACUk9AAlJXgAJSWAACUliAAlJZAAJSWYACUloAAlJagAJSWwACUluAAlJjwAJSZIACUmVAAlJmAAJSZsACUmeAAlJoQAJSaQACUmnAAlJqQAJSiQACUomAAlKKAAJSioACUotAAlKLgAJSi8ACUowAAlKMQAJSjMACUo1AAlKNgAJSjcACUo5AAlKOgAJSrUACUq3AAlKuQAJSrsACUq+AAlKvwAJSsAACUrBAAlKwgAJSsQACUrGAAlKxwAJSsgACUrKAAlKywAJS0YACUtIAAlLSwAJS00ACUtQAAlLUQAJS1IACUtTAAlLVAAJS1YACUtYAAlLWQAJS1oACUtcAAlLXQAJS3YACUt3AAlLeAAJS3oACUv1AAlL9wAJS/kACUv7AAlL/gAJS/8ACUwAAAlMAQAJTAIACUwEAAlMBgAJTAcACUwIAAlMCgAJTAsACUyGAAlMiAAJTIoACUyMAAlMjwAJTJAACUyRAAlMkgAJTJMACUyVAAlMlwAJTJgACUyZAAlMmwAJTJwACU0XAAlNGQAJTRsACU0dAAlNIAAJTSEACU0iAAlNIwAJTSQACU0mAAlNKAAJTSkACU0qAAlNLAAJTS0ACU2oAAlNqgAJTawACU2uAAlNsQAJTbIACU2zAAlNtAAJTbUACU23AAlNuQAJTboACU27AAlNvQAJTb4ACU45AAlOOwAJTj0ACU4/AAlOQgAJTkMACU5EAAlORQAJTkYACU5IAAlOSgAJTksACU5MAAlOTgAJTk8ACU6YAAlOvAAJTuMACU8HAAlPCgAJTwwACU8OAAlPEAAJTxIACU8UAAlPFQAJTxgACU8xAAlPTgAJT1AACU9SAAlPVAAJT1YACU9YAAlPWgAJT1wACU95AAlPfAAJT38ACU+CAAlPhQAJT4gACU+LAAlPjgAJT5AACVALAAlQDQAJUA8ACVARAAlQFAAJUBUACVAWAAlQFwAJUBgACVAaAAlQHAAJUB0ACVAeAAlQIAAJUCEACVCcAAlQngAJUKAACVCiAAlQpQAJUKYACVCnAAlQqAAJUKkACVCrAAlQrQAJUK4ACVCvAAlQsQAJULIACVEtAAlRLwAJUTEACVEzAAlRNgAJUTcACVE4AAlROQAJUToACVE8AAlRPgAJUT8ACVFAAAlRQgAJUUMACVG+AAlRwAAJUcMACVHFAAlRyAAJUckACVHKAAlRywAJUcwACVHOAAlR0AAJUdEACVHSAAlR1AAJUdUACVJQAAlSUgAJUlQACVJWAAlSWQAJUloACVJbAAlSXAAJUl0ACVJfAAlSYQAJUmIACVJjAAlSZQAJUmYACVLhAAlS4wAJUuUACVLnAAlS6gAJUusACVLsAAlS7QAJUu4ACVLwAAlS8gAJUvMACVL0AAlS9gAJUvcACVNyAAlTdAAJU3YACVN4AAlTewAJU3wACVN9AAlTfgAJU38ACVOBAAlTgwAJU4QACVOFAAlThwAJU4gACVQbAAlUPgAJVF4ACVR+AAlUgAAJVIIACVSEAAlUhgAJVIkACVSKAAlUiwAJVI4ACVSPAAlUkQAJVJIACVSUAAlUlwAJVJgACVSZAAlUnAAJVJ0ACVSiAAlUuwAJVMQACVTGAAlUyAAJVNEACVTUAAlU1wAJVNkACVUiAAlVRgAJVW0ACVWRAAlVlAAJVZYACVWYAAlVmgAJVZwACVWeAAlVnwAJVaIACVW7AAlV3AAJVd4ACVXgAAlV4gAJVeQACVXmAAlV6AAJVeoACVXsAAlWDQAJVhAACVYTAAlWFgAJVhkACVYcAAlWHwAJViIACVYlAAlWJwAJVqIACVakAAlWpgAJVqgACVarAAlWrAAJVq0ACVauAAlWrwAJVrEACVazAAlWtAAJVrUACVa3AAlWuAAJVzMACVc1AAlXNwAJVzkACVc8AAlXPQAJVz4ACVc/AAlXQAAJV0IACVdEAAlXRQAJV0YACVdIAAlXSQAJV8QACVfGAAlXyQAJV8sACVfOAAlXzwAJV9AACVfRAAlX0gAJV9QACVfWAAlX1wAJV9gACVfaAAlX2wAJV/QACVf1AAlX9gAJV/gACVhzAAlYdQAJWHcACVh5AAlYfAAJWH0ACVh+AAlYfwAJWIAACViCAAlYhAAJWIUACViGAAlYiAAJWIkACVkEAAlZBgAJWQgACVkKAAlZDQAJWQ4ACVkPAAlZEAAJWREACVkTAAlZFQAJWRYACVkXAAlZGQAJWRoACVmVAAlZlwAJWZkACVmbAAlZngAJWZ8ACVmgAAlZoQAJWaIACVmkAAlZpgAJWacACVmoAAlZqgAJWasACVomAAlaKAAJWioACVosAAlaLwAJWjAACVoxAAlaMgAJWjMACVo1AAlaNwAJWjgACVo5AAlaOwAJWjwACVq3AAlauQAJWrsACVq9AAlawAAJWsEACVrCAAlawwAJWsQACVrGAAlayAAJWskACVrKAAlazAAJWs0ACVsWAAlbOgAJW2EACVuFAAlbiAAJW4oACVuMAAlbjgAJW5AACVuSAAlbkwAJW5YACVuvAAlbzAAJW84ACVvQAAlb0gAJW9QACVvWAAlb2AAJW9oACVv3AAlb+gAJW/0ACVwAAAlcAwAJXAYACVwJAAlcDAAJXA4ACVyJAAlciwAJXI0ACVyPAAlckgAJXJMACVyUAAlclQAJXJYACVyYAAlcmgAJXJsACVycAAlcngAJXJ8ACV0aAAldHAAJXR4ACV0gAAldIwAJXSQACV0lAAldJgAJXScACV0pAAldKwAJXSwACV0tAAldLwAJXTAACV2rAAldrQAJXa8ACV2xAAldtAAJXbUACV22AAldtwAJXbgACV26AAldvAAJXb0ACV2+AAldwAAJXcEACV48AAlePgAJXkEACV5DAAleRgAJXkcACV5IAAleSQAJXkoACV5MAAleTgAJXk8ACV5QAAleUgAJXlMACV7OAAle0AAJXtIACV7UAAle1wAJXtgACV7ZAAle2gAJXtsACV7dAAle3wAJXuAACV7hAAle4wAJXuQACV9fAAlfYQAJX2MACV9lAAlfaAAJX2kACV9qAAlfawAJX2wACV9uAAlfcAAJX3EACV9yAAlfdAAJX3UACV/wAAlf8gAJX/QACV/2AAlf+QAJX/oACV/7AAlf/AAJX/0ACV//AAlgAQAJYAIACWADAAlgBQAJYAYACWCZAAlgvAAJYNwACWD8AAlg/gAJYQAACWECAAlhBAAJYQcACWEIAAlhCQAJYQwACWENAAlhDwAJYRAACWESAAlhFQAJYRYACWEXAAlhGgAJYRsACWEkAAlhPQAJYUYACWFIAAlhSgAJYVMACWFWAAlhWQAJYVsACWGkAAlhyAAJYe8ACWITAAliFgAJYhgACWIaAAliHAAJYh4ACWIgAAliIQAJYiQACWI9AAliXgAJYmAACWJiAAliZAAJYmYACWJoAAliagAJYmwACWJuAAlijwAJYpIACWKVAAlimAAJYpsACWKeAAlioQAJYqQACWKnAAliqQAJYyQACWMmAAljKAAJYyoACWMtAAljLgAJYy8ACWMwAAljMQAJYzMACWM1AAljNgAJYzcACWM5AAljOgAJY7UACWO3AAljuQAJY7sACWO+AAljvwAJY8AACWPBAAljwgAJY8QACWPGAAljxwAJY8gACWPKAAljywAJZEYACWRIAAlkSwAJZE0ACWRQAAlkUQAJZFIACWRTAAlkVAAJZFYACWRYAAlkWQAJZFoACWRcAAlkXQAJZHYACWR3AAlkeAAJZHoACWT1AAlk9wAJZPkACWT7AAlk/gAJZP8ACWUAAAllAQAJZQIACWUEAAllBgAJZQcACWUIAAllCgAJZQsACWWGAAlliAAJZYoACWWMAAlljwAJZZAACWWRAAllkgAJZZMACWWVAAlllwAJZZgACWWZAAllmwAJZZwACWYXAAlmGQAJZhsACWYdAAlmIAAJZiEACWYiAAlmIwAJZiQACWYmAAlmKAAJZikACWYqAAlmLAAJZi0ACWaoAAlmqgAJZqwACWauAAlmsQAJZrIACWazAAlmtAAJZrUACWa3AAlmuQAJZroACWa7AAlmvQAJZr4ACWc5AAlnOwAJZz0ACWc/AAlnQgAJZ0MACWdEAAlnRQAJZ0YACWdIAAlnSgAJZ0sACWdMAAlnTgAJZ08ACWeYAAlnvAAJZ+MACWgHAAloCgAJaAwACWgOAAloEAAJaBIACWgUAAloFQAJaBgACWgxAAloTgAJaFAACWhSAAloVAAJaFYACWhYAAloWgAJaFwACWh5AAlofAAJaH8ACWiCAAlohQAJaIgACWiLAAlojgAJaJAACWkLAAlpDQAJaQ8ACWkRAAlpFAAJaRUACWkWAAlpFwAJaRgACWkaAAlpHAAJaR0ACWkeAAlpIAAJaSEACWmcAAlpngAJaaAACWmiAAlppQAJaaYACWmnAAlpqAAJaakACWmrAAlprQAJaa4ACWmvAAlpsQAJabIACWotAAlqLwAJajEACWozAAlqNgAJajcACWo4AAlqOQAJajoACWo8AAlqPgAJaj8ACWpAAAlqQgAJakMACWq+AAlqwAAJasMACWrFAAlqyAAJaskACWrKAAlqywAJaswACWrOAAlq0AAJatEACWrSAAlq1AAJatUACWtQAAlrUgAJa1QACWtWAAlrWQAJa1oACWtbAAlrXAAJa10ACWtfAAlrYQAJa2IACWtjAAlrZQAJa2YACWvhAAlr4wAJa+UACWvnAAlr6gAJa+sACWvsAAlr7QAJa+4ACWvwAAlr8gAJa/MACWv0AAlr9gAJa/cACWxyAAlsdAAJbHYACWx4AAlsewAJbHwACWx9AAlsfgAJbH8ACWyBAAlsgwAJbIQACWyFAAlshwAJbIgACW0bAAltPgAJbV4ACW1+AAltgAAJbYIACW2EAAlthgAJbYkACW2KAAltiwAJbY4ACW2PAAltkQAJbZIACW2UAAltlwAJbZgACW2ZAAltnAAJbZ0ACW2iAAltuwAJbcQACW3GAAltyAAJbdEACW3UAAlt1wAJbdkACW4iAAluRgAJbm0ACW6RAAlulAAJbpYACW6YAAlumgAJbpwACW6eAAlunwAJbqIACW67AAlu3AAJbt4ACW7gAAlu4gAJbuQACW7mAAlu6AAJbuoACW7sAAlvDQAJbxAACW8TAAlvFgAJbxkACW8cAAlvHwAJbyIACW8lAAlvJwAJb6IACW+kAAlvpgAJb6gACW+rAAlvrAAJb60ACW+uAAlvrwAJb7EACW+zAAlvtAAJb7UACW+3AAlvuAAJcDMACXA1AAlwNwAJcDkACXA8AAlwPQAJcD4ACXA/AAlwQAAJcEIACXBEAAlwRQAJcEYACXBIAAlwSQAJcMQACXDGAAlwyQAJcMsACXDOAAlwzwAJcNAACXDRAAlw0gAJcNQACXDWAAlw1wAJcNgACXDaAAlw2wAJcPQACXD1AAlw9gAJcPgACXFzAAlxdQAJcXcACXF5AAlxfAAJcX0ACXF+AAlxfwAJcYAACXGCAAlxhAAJcYUACXGGAAlxiAAJcYkACXIEAAlyBgAJcggACXIKAAlyDQAJcg4ACXIPAAlyEAAJchEACXITAAlyFQAJchYACXIXAAlyGQAJchoACXKVAAlylwAJcpkACXKbAAlyngAJcp8ACXKgAAlyoQAJcqIACXKkAAlypgAJcqcACXKoAAlyqgAJcqsACXMmAAlzKAAJcyoACXMsAAlzLwAJczAACXMxAAlzMgAJczMACXM1AAlzNwAJczgACXM5AAlzOwAJczwACXO3AAlzuQAJc7sACXO9AAlzwAAJc8EACXPCAAlzwwAJc8QACXPGAAlzyAAJc8kACXPKAAlzzAAJc80ACXQWAAl0OgAJdGEACXSFAAl0iAAJdIoACXSMAAl0jgAJdJAACXSSAAl0kwAJdJYACXSvAAl0zAAJdM4ACXTQAAl00gAJdNQACXTWAAl02AAJdNoACXT3AAl0+gAJdP0ACXUAAAl1AwAJdQYACXUJAAl1DAAJdQ4ACXWJAAl1iwAJdY0ACXWPAAl1kgAJdZMACXWUAAl1lQAJdZYACXWYAAl1mgAJdZsACXWcAAl1ngAJdZ8ACXYaAAl2HAAJdh4ACXYgAAl2IwAJdiQACXYlAAl2JgAJdicACXYpAAl2KwAJdiwACXYtAAl2LwAJdjAACXarAAl2rQAJdq8ACXaxAAl2tAAJdrUACXa2AAl2twAJdrgACXa6AAl2vAAJdr0ACXa+AAl2wAAJdsEACXc8AAl3PgAJd0EACXdDAAl3RgAJd0cACXdIAAl3SQAJd0oACXdMAAl3TgAJd08ACXdQAAl3UgAJd1MACXfOAAl30AAJd9IACXfUAAl31wAJd9gACXfZAAl32gAJd9sACXfdAAl33wAJd+AACXfhAAl34wAJd+QACXhfAAl4YQAJeGMACXhlAAl4aAAJeGkACXhqAAl4awAJeGwACXhuAAl4cAAJeHEACXhyAAl4dAAJeHUACXjwAAl48gAJePQACXj2AAl4+QAJePoACXj7AAl4/AAJeP0ACXj/AAl5AQAJeQIACXkDAAl5BQAJeQYACXmZAAl5vAAJedwACXn8AAl5/gAJegAACXoCAAl6BAAJegcACXoIAAl6CQAJegwACXoNAAl6DwAJehAACXoSAAl6FQAJehYACXoXAAl6GgAJehsACXogAAl6OQAJekIACXpEAAl6RgAJek8ACXpSAAl6VQAJelcACXqgAAl6xAAJeusACXsPAAl7EgAJexQACXsWAAl7GAAJexoACXscAAl7HQAJeyAACXs5AAl7WgAJe1wACXteAAl7YAAJe2IACXtkAAl7ZgAJe2gACXtqAAl7iwAJe44ACXuRAAl7lAAJe5cACXuaAAl7nQAJe6AACXujAAl7pQAJfCAACXwiAAl8JAAJfCYACXwpAAl8KgAJfCsACXwsAAl8LQAJfC8ACXwxAAl8MgAJfDMACXw1AAl8NgAJfLEACXyzAAl8tQAJfLcACXy6AAl8uwAJfLwACXy9AAl8vgAJfMAACXzCAAl8wwAJfMQACXzGAAl8xwAJfUIACX1EAAl9RwAJfUkACX1MAAl9TQAJfU4ACX1PAAl9UAAJfVIACX1UAAl9VQAJfVYACX1YAAl9WQAJfXIACX1zAAl9dAAJfXYACX3xAAl98wAJffUACX33AAl9+gAJffsACX38AAl9/QAJff4ACX4AAAl+AgAJfgMACX4EAAl+BgAJfgcACX6CAAl+hAAJfoYACX6IAAl+iwAJfowACX6NAAl+jgAJfo8ACX6RAAl+kwAJfpQACX6VAAl+lwAJfpgACX8TAAl/FQAJfxcACX8ZAAl/HAAJfx0ACX8eAAl/HwAJfyAACX8iAAl/JAAJfyUACX8mAAl/KAAJfykACX+kAAl/pgAJf6gACX+qAAl/rQAJf64ACX+vAAl/sAAJf7EACX+zAAl/tQAJf7YACX+3AAl/uQAJf7oACYA1AAmANwAJgDkACYA7AAmAPgAJgD8ACYBAAAmAQQAJgEIACYBEAAmARgAJgEcACYBIAAmASgAJgEsACYCUAAmAuAAJgN8ACYEDAAmBBgAJgQgACYEKAAmBDAAJgQ4ACYEQAAmBEQAJgRQACYEtAAmBSgAJgUwACYFOAAmBUAAJgVIACYFUAAmBVgAJgVgACYF1AAmBeAAJgXsACYF+AAmBgQAJgYQACYGHAAmBigAJgYwACYIHAAmCCQAJggsACYINAAmCEAAJghEACYISAAmCEwAJghQACYIWAAmCGAAJghkACYIaAAmCHAAJgh0ACYKYAAmCmgAJgpwACYKeAAmCoQAJgqIACYKjAAmCpAAJgqUACYKnAAmCqQAJgqoACYKrAAmCrQAJgq4ACYMpAAmDKwAJgy0ACYMvAAmDMgAJgzMACYM0AAmDNQAJgzYACYM4AAmDOgAJgzsACYM8AAmDPgAJgz8ACYO6AAmDvAAJg78ACYPBAAmDxAAJg8UACYPGAAmDxwAJg8gACYPKAAmDzAAJg80ACYPOAAmD0AAJg9EACYRMAAmETgAJhFAACYRSAAmEVQAJhFYACYRXAAmEWAAJhFkACYRbAAmEXQAJhF4ACYRfAAmEYQAJhGIACYTdAAmE3wAJhOEACYTjAAmE5gAJhOcACYToAAmE6QAJhOoACYTsAAmE7gAJhO8ACYTwAAmE8gAJhPMACYVuAAmFcAAJhXIACYV0AAmFdwAJhXgACYV5AAmFegAJhXsACYV9AAmFfwAJhYAACYWBAAmFgwAJhYQACYYXAAmGOgAJhloACYZ6AAmGfAAJhn4ACYaAAAmGggAJhoUACYaGAAmGhwAJhooACYaLAAmGjQAJho4ACYaQAAmGkwAJhpQACYaVAAmGmAAJhpkACYaeAAmGtwAJhsAACYbCAAmGxAAJhs0ACYbQAAmG0wAJhtUACYceAAmHQgAJh2kACYeNAAmHkAAJh5IACYeUAAmHlgAJh5gACYeaAAmHmwAJh54ACYe3AAmH2AAJh9oACYfcAAmH3gAJh+AACYfiAAmH5AAJh+YACYfoAAmICQAJiAwACYgPAAmIEgAJiBUACYgYAAmIGwAJiB4ACYghAAmIIwAJiJ4ACYigAAmIogAJiKQACYinAAmIqAAJiKkACYiqAAmIqwAJiK0ACYivAAmIsAAJiLEACYizAAmItAAJiS8ACYkxAAmJMwAJiTUACYk4AAmJOQAJiToACYk7AAmJPAAJiT4ACYlAAAmJQQAJiUIACYlEAAmJRQAJicAACYnCAAmJxQAJiccACYnKAAmJywAJicwACYnNAAmJzgAJidAACYnSAAmJ0wAJidQACYnWAAmJ1wAJifAACYnxAAmJ8gAJifQACYpvAAmKcQAJinMACYp1AAmKeAAJinkACYp6AAmKewAJinwACYp+AAmKgAAJioEACYqCAAmKhAAJioUACYsAAAmLAgAJiwQACYsGAAmLCQAJiwoACYsLAAmLDAAJiw0ACYsPAAmLEQAJixIACYsTAAmLFQAJixYACYuRAAmLkwAJi5UACYuXAAmLmgAJi5sACYucAAmLnQAJi54ACYugAAmLogAJi6MACYukAAmLpgAJi6cACYwiAAmMJAAJjCYACYwoAAmMKwAJjCwACYwtAAmMLgAJjC8ACYwxAAmMMwAJjDQACYw1AAmMNwAJjDgACYyzAAmMtQAJjLcACYy5AAmMvAAJjL0ACYy+AAmMvwAJjMAACYzCAAmMxAAJjMUACYzGAAmMyAAJjMkACY0SAAmNNgAJjV0ACY2BAAmNhAAJjYYACY2IAAmNigAJjYwACY2OAAmNjwAJjZIACY2rAAmNyAAJjcoACY3MAAmNzgAJjdAACY3SAAmN1AAJjdYACY3zAAmN9gAJjfkACY38AAmN/wAJjgIACY4FAAmOCAAJjgoACY6FAAmOhwAJjokACY6LAAmOjgAJjo8ACY6QAAmOkQAJjpIACY6UAAmOlgAJjpcACY6YAAmOmgAJjpsACY8WAAmPGAAJjxoACY8cAAmPHwAJjyAACY8hAAmPIgAJjyMACY8lAAmPJwAJjygACY8pAAmPKwAJjywACY+nAAmPqQAJj6sACY+tAAmPsAAJj7EACY+yAAmPswAJj7QACY+2AAmPuAAJj7kACY+6AAmPvAAJj70ACZA4AAmQOgAJkD0ACZA/AAmQQgAJkEMACZBEAAmQRQAJkEYACZBIAAmQSgAJkEsACZBMAAmQTgAJkE8ACZDKAAmQzAAJkM4ACZDQAAmQ0wAJkNQACZDVAAmQ1gAJkNcACZDZAAmQ2wAJkNwACZDdAAmQ3wAJkOAACZFbAAmRXQAJkV8ACZFhAAmRZAAJkWUACZFmAAmRZwAJkWgACZFqAAmRbAAJkW0ACZFuAAmRcAAJkXEACZHsAAmR7gAJkfAACZHyAAmR9QAJkfYACZH3AAmR+AAJkfkACZH7AAmR/QAJkf4ACZH/AAmSAQAJkgIACZKVAAmSuAAJktgACZL4AAmS+gAJkvwACZL+AAmTAAAJkwMACZMEAAmTBQAJkwgACZMJAAmTCwAJkwwACZMOAAmTEQAJkxIACZMTAAmTFgAJkxcACZMcAAmTNQAJkz4ACZNAAAmTQgAJk0sACZNOAAmTUQAJk1MACZOcAAmTwAAJk+cACZQLAAmUDgAJlBAACZQSAAmUFAAJlBYACZQYAAmUGQAJlBwACZQ1AAmUVgAJlFgACZRaAAmUXAAJlF4ACZRgAAmUYgAJlGQACZRmAAmUhwAJlIoACZSNAAmUkAAJlJMACZSWAAmUmQAJlJwACZSfAAmUoQAJlRwACZUeAAmVIAAJlSIACZUlAAmVJgAJlScACZUoAAmVKQAJlSsACZUtAAmVLgAJlS8ACZUxAAmVMgAJla0ACZWvAAmVsQAJlbMACZW2AAmVtwAJlbgACZW5AAmVugAJlbwACZW+AAmVvwAJlcAACZXCAAmVwwAJlj4ACZZAAAmWQwAJlkUACZZIAAmWSQAJlkoACZZLAAmWTAAJlk4ACZZQAAmWUQAJllIACZZUAAmWVQAJlm4ACZZvAAmWcAAJlnIACZbtAAmW7wAJlvEACZbzAAmW9gAJlvcACZb4AAmW+QAJlvoACZb8AAmW/gAJlv8ACZcAAAmXAgAJlwMACZd+AAmXgAAJl4IACZeEAAmXhwAJl4gACZeJAAmXigAJl4sACZeNAAmXjwAJl5AACZeRAAmXkwAJl5QACZgPAAmYEQAJmBMACZgVAAmYGAAJmBkACZgaAAmYGwAJmBwACZgeAAmYIAAJmCEACZgiAAmYJAAJmCUACZigAAmYogAJmKQACZimAAmYqQAJmKoACZirAAmYrAAJmK0ACZivAAmYsQAJmLIACZizAAmYtQAJmLYACZkxAAmZMwAJmTUACZk3AAmZOgAJmTsACZk8AAmZPQAJmT4ACZlAAAmZQgAJmUMACZlEAAmZRgAJmUcACZmQAAmZtAAJmdsACZn/AAmaAgAJmgQACZoGAAmaCAAJmgoACZoMAAmaDQAJmhAACZopAAmaRgAJmkgACZpKAAmaTAAJmk4ACZpQAAmaUgAJmlQACZpxAAmadAAJmncACZp6AAmafQAJmoAACZqDAAmahgAJmogACZsDAAmbBQAJmwcACZsJAAmbDAAJmw0ACZsOAAmbDwAJmxAACZsSAAmbFAAJmxUACZsWAAmbGAAJmxkACZuUAAmblgAJm5gACZuaAAmbnQAJm54ACZufAAmboAAJm6EACZujAAmbpQAJm6YACZunAAmbqQAJm6oACZwlAAmcJwAJnCkACZwrAAmcLgAJnC8ACZwwAAmcMQAJnDIACZw0AAmcNgAJnDcACZw4AAmcOgAJnDsACZy2AAmcuAAJnLsACZy9AAmcwAAJnMEACZzCAAmcwwAJnMQACZzGAAmcyAAJnMkACZzKAAmczAAJnM0ACZ1IAAmdSgAJnUwACZ1OAAmdUQAJnVIACZ1TAAmdVAAJnVUACZ1XAAmdWQAJnVoACZ1bAAmdXQAJnV4ACZ3ZAAmd2wAJnd0ACZ3fAAmd4gAJneMACZ3kAAmd5QAJneYACZ3oAAmd6gAJnesACZ3sAAmd7gAJne8ACZ5qAAmebAAJnm4ACZ5wAAmecwAJnnQACZ51AAmedgAJnncACZ55AAmeewAJnnwACZ59AAmefwAJnoAACZ8TAAmfNgAJn1YACZ92AAmfeAAJn3oACZ98AAmffgAJn4EACZ+CAAmfgwAJn4YACZ+HAAmfiQAJn4oACZ+MAAmfjwAJn5AACZ+RAAmflAAJn5UACZ+eAAmftwAJn8AACZ/CAAmfxAAJn80ACZ/QAAmf0wAJn9UACaAeAAmgQgAJoGkACaCNAAmgkAAJoJIACaCUAAmglgAJoJgACaCaAAmgmwAJoJ4ACaC3AAmg2AAJoNoACaDcAAmg3gAJoOAACaDiAAmg5AAJoOYACaDoAAmhCQAJoQwACaEPAAmhEgAJoRUACaEYAAmhGwAJoR4ACaEhAAmhIwAJoZ4ACaGgAAmhogAJoaQACaGnAAmhqAAJoakACaGqAAmhqwAJoa0ACaGvAAmhsAAJobEACaGzAAmhtAAJoi8ACaIxAAmiMwAJojUACaI4AAmiOQAJojoACaI7AAmiPAAJoj4ACaJAAAmiQQAJokIACaJEAAmiRQAJosAACaLCAAmixQAJoscACaLKAAmiywAJoswACaLNAAmizgAJotAACaLSAAmi0wAJotQACaLWAAmi1wAJovAACaLxAAmi8gAJovQACaNvAAmjcQAJo3MACaN1AAmjeAAJo3kACaN6AAmjewAJo3wACaN+AAmjgAAJo4EACaOCAAmjhAAJo4UACaQAAAmkAgAJpAQACaQGAAmkCQAJpAoACaQLAAmkDAAJpA0ACaQPAAmkEQAJpBIACaQTAAmkFQAJpBYACaSRAAmkkwAJpJUACaSXAAmkmgAJpJsACaScAAmknQAJpJ4ACaSgAAmkogAJpKMACaSkAAmkpgAJpKcACaUiAAmlJAAJpSYACaUoAAmlKwAJpSwACaUtAAmlLgAJpS8ACaUxAAmlMwAJpTQACaU1AAmlNwAJpTgACaWzAAmltQAJpbcACaW5AAmlvAAJpb0ACaW+AAmlvwAJpcAACaXCAAmlxAAJpcUACaXGAAmlyAAJpckACaYSAAmmNgAJpl0ACaaBAAmmhAAJpoYACaaIAAmmigAJpowACaaOAAmmjwAJppIACaarAAmmyAAJpsoACabMAAmmzgAJptAACabSAAmm1AAJptYACabzAAmm9gAJpvkACab8AAmm/wAJpwIACacFAAmnCAAJpwoACaeFAAmnhwAJp4kACaeLAAmnjgAJp48ACaeQAAmnkQAJp5IACaeUAAmnlgAJp5cACaeYAAmnmgAJp5sACagWAAmoGAAJqBoACagcAAmoHwAJqCAACaghAAmoIgAJqCMACaglAAmoJwAJqCgACagpAAmoKwAJqCwACainAAmoqQAJqKsACaitAAmosAAJqLEACaiyAAmoswAJqLQACai2AAmouAAJqLkACai6AAmovAAJqL0ACak4AAmpOgAJqT0ACak/AAmpQgAJqUMACalEAAmpRQAJqUYACalIAAmpSgAJqUsACalMAAmpTgAJqU8ACanKAAmpzAAJqc4ACanQAAmp0wAJqdQACanVAAmp1gAJqdcACanZAAmp2wAJqdwACandAAmp3wAJqeAACapbAAmqXQAJql8ACaphAAmqZAAJqmUACapmAAmqZwAJqmgACapqAAmqbAAJqm0ACapuAAmqcAAJqnEACarsAAmq7gAJqvAACaryAAmq9QAJqvYACar3AAmq+AAJqvkACar7AAmq/QAJqv4ACar/AAmrAQAJqwIACauVAAmruAAJq9gACav4AAmr+gAJq/wACav+AAmsAAAJrAMACawEAAmsBQAJrAgACawJAAmsCwAJrAwACawOAAmsEQAJrBIACawTAAmsFgAJrBcACawcAAmsNQAJrD4ACaxAAAmsQgAJrEsACaxOAAmsUQAJrFMACaycAAmswAAJrOcACa0LAAmtDgAJrRAACa0SAAmtFAAJrRYACa0YAAmtGQAJrRwACa01AAmtVgAJrVgACa1aAAmtXAAJrV4ACa1gAAmtYgAJrWQACa1mAAmthwAJrYoACa2NAAmtkAAJrZMACa2WAAmtmQAJrZwACa2fAAmtoQAJrhwACa4eAAmuIAAJriIACa4lAAmuJgAJricACa4oAAmuKQAJrisACa4tAAmuLgAJri8ACa4xAAmuMgAJrq0ACa6vAAmusQAJrrMACa62AAmutwAJrrgACa65AAmuugAJrrwACa6+AAmuvwAJrsAACa7CAAmuwwAJrz4ACa9AAAmvQwAJr0UACa9IAAmvSQAJr0oACa9LAAmvTAAJr04ACa9QAAmvUQAJr1IACa9UAAmvVQAJr24ACa9vAAmvcAAJr3IACa/tAAmv7wAJr/EACa/zAAmv9gAJr/cACa/4AAmv+QAJr/oACa/8AAmv/gAJr/8ACbAAAAmwAgAJsAMACbB+AAmwgAAJsIIACbCEAAmwhwAJsIgACbCJAAmwigAJsIsACbCNAAmwjwAJsJAACbCRAAmwkwAJsJQACbEPAAmxEQAJsRMACbEVAAmxGAAJsRkACbEaAAmxGwAJsRwACbEeAAmxIAAJsSEACbEiAAmxJAAJsSUACbGgAAmxogAJsaQACbGmAAmxqQAJsaoACbGrAAmxrAAJsa0ACbGvAAmxsQAJsbIACbGzAAmxtQAJsbYACbIxAAmyMwAJsjUACbI3AAmyOgAJsjsACbI8AAmyPQAJsj4ACbJAAAmyQgAJskMACbJEAAmyRgAJskcACbKQAAmytAAJstsACbL/AAmzAgAJswQACbMGAAmzCAAJswoACbMMAAmzDQAJsxAACbMpAAmzRgAJs0gACbNKAAmzTAAJs04ACbNQAAmzUgAJs1QACbNxAAmzdAAJs3cACbN6AAmzfQAJs4AACbODAAmzhgAJs4gACbQDAAm0BQAJtAcACbQJAAm0DAAJtA0ACbQOAAm0DwAJtBAACbQSAAm0FAAJtBUACbQWAAm0GAAJtBkACbSUAAm0lgAJtJgACbSaAAm0nQAJtJ4ACbSfAAm0oAAJtKEACbSjAAm0pQAJtKYACbSnAAm0qQAJtKoACbUlAAm1JwAJtSkACbUrAAm1LgAJtS8ACbUwAAm1MQAJtTIACbU0AAm1NgAJtTcACbU4AAm1OgAJtTsACbW2AAm1uAAJtbsACbW9AAm1wAAJtcEACbXCAAm1wwAJtcQACbXGAAm1yAAJtckACbXKAAm1zAAJtc0ACbZIAAm2SgAJtkwACbZOAAm2UQAJtlIACbZTAAm2VAAJtlUACbZXAAm2WQAJtloACbZbAAm2XQAJtl4ACbbZAAm22wAJtt0ACbbfAAm24gAJtuMACbbkAAm25QAJtuYACbboAAm26gAJtusACbbsAAm27gAJtu8ACbdqAAm3bAAJt24ACbdwAAm3cwAJt3QACbd1AAm3dgAJt3cACbd5AAm3ewAJt3wACbd9AAm3fwAJt4AACbgTAAm4NgAJuFYACbh2AAm4eAAJuHoACbh8AAm4fgAJuIEACbiCAAm4gwAJuIYACbiHAAm4iQAJuIoACbiNAAm4kAAJuJEACbiSAAm4lQAJuJYACbibAAm4tAAJuL0ACbi/AAm4wgAJuMsACbjOAAm40QAJuNMACbkcAAm5QAAJuWcACbmLAAm5jgAJuZAACbmSAAm5lAAJuZYACbmYAAm5mQAJuZwACbm1AAm51gAJudgACbnaAAm53AAJud4ACbngAAm54gAJueQACbnmAAm6BwAJugoACboNAAm6EAAJuhMACboWAAm6GQAJuhwACbofAAm6IQAJupwACbqeAAm6oAAJuqIACbqlAAm6pgAJuqcACbqoAAm6qQAJuqsACbqtAAm6rgAJuq8ACbqxAAm6sgAJuy0ACbsvAAm7MQAJuzMACbs2AAm7NwAJuzgACbs5AAm7OgAJuzwACbs+AAm7PwAJu0AACbtCAAm7QwAJu74ACbvAAAm7wwAJu8UACbvIAAm7yQAJu8oACbvLAAm7zAAJu84ACbvQAAm70QAJu9IACbvUAAm71QAJu+4ACbvvAAm78AAJu/IACbxtAAm8bwAJvHEACbxzAAm8dgAJvHcACbx4AAm8eQAJvHoACbx8AAm8fgAJvH8ACbyAAAm8ggAJvIMACbz+AAm9AAAJvQIACb0EAAm9BwAJvQgACb0JAAm9CgAJvQsACb0NAAm9DwAJvRAACb0RAAm9EwAJvRQACb2PAAm9kQAJvZMACb2VAAm9mAAJvZkACb2aAAm9mwAJvZwACb2eAAm9oAAJvaEACb2iAAm9pAAJvaUACb4gAAm+IgAJviQACb4mAAm+KQAJvioACb4rAAm+LAAJvi0ACb4vAAm+MQAJvjIACb4zAAm+NQAJvjYACb6xAAm+swAJvrUACb63AAm+ugAJvrsACb68AAm+vQAJvr4ACb7AAAm+wgAJvsMACb7EAAm+xgAJvscACb8QAAm/NAAJv1sACb9/AAm/ggAJv4UACb+HAAm/iQAJv4sACb+NAAm/jgAJv5EACb+qAAm/xwAJv8oACb/NAAm/0AAJv9MACb/WAAm/2QAJv9wACb/5AAm//AAJv/8ACcACAAnABQAJwAgACcALAAnADgAJwBAACcCLAAnAjQAJwJAACcCSAAnAlQAJwJYACcCXAAnAmAAJwJkACcCbAAnAngAJwJ8ACcCgAAnAogAJwKMACcEeAAnBIAAJwSMACcElAAnBKAAJwSkACcEqAAnBKwAJwSwACcEuAAnBMQAJwTIACcEzAAnBNQAJwTYACcGxAAnBswAJwbYACcG4AAnBuwAJwbwACcG9AAnBvgAJwb8ACcHBAAnBxAAJwcUACcHGAAnByAAJwckACcJEAAnCRgAJwkkACcJLAAnCTgAJwk8ACcJQAAnCUQAJwlIACcJUAAnCVwAJwlgACcJZAAnCWwAJwlwACcLfAAnDAwAJwycACcNKAAnDcQAJw5EACcO4AAnD3wAJw/8ACcQjAAnERwAJxEkACcRMAAnETgAJxFAACcRSAAnEVQAJxFgACcRaAAnEXAAJxF8ACcRhAAnEYwAJxGYACcRpAAnEagAJxG8ACcSIAAnEjQAJxI8ACcSUAAnElwAJxJkACcTiAAnFBgAJxS0ACcVRAAnFVAAJxVYACcVYAAnFWgAJxVwACcVeAAnFXwAJxWIACcV7AAnFoAAJxaIACcWkAAnFpgAJxagACcWqAAnFrAAJxa4ACcWwAAnFsgAJxdcACcXaAAnF3QAJxeAACcXjAAnF5gAJxekACcXsAAnF7wAJxfIACcX0AAnGbwAJxnEACcZ0AAnGdgAJxnkACcZ6AAnGewAJxnwACcZ9AAnGfwAJxoEACcaCAAnGgwAJxoUACcaGAAnGlwAJxpgACcaaAAnHFQAJxxcACccZAAnHGwAJxx4ACccfAAnHIAAJxyEACcciAAnHJAAJxyYACccnAAnHKAAJxyoACccrAAnHpgAJx6gACcerAAnHrQAJx7AACcexAAnHsgAJx7MACce0AAnHtgAJx7gACce5AAnHugAJx7wACce9AAnHzgAJx88ACcfRAAnITAAJyE4ACchQAAnIUgAJyFUACchWAAnIVwAJyFgACchZAAnIWwAJyF0ACcheAAnIXwAJyGEACchiAAnI3QAJyN8ACcjiAAnI5AAJyOcACcjoAAnI6QAJyOoACcjrAAnI7QAJyO8ACcjwAAnI8QAJyPMACcj0AAnJBQAJyQYACckIAAnJgwAJyYUACcmHAAnJiQAJyYwACcmNAAnJjgAJyY8ACcmQAAnJkgAJyZQACcmVAAnJlgAJyZgACcmZAAnKFAAJyhYACcoZAAnKGwAJyh4ACcofAAnKIAAJyiEACcoiAAnKJAAJyiYACconAAnKKAAJyioACcorAAnKRAAJykUACcpGAAnKSAAJysMACcrFAAnKxwAJyskACcrMAAnKzQAJys4ACcrPAAnK0AAJytIACcrUAAnK1QAJytYACcrYAAnK2QAJy1QACctWAAnLWQAJy1sACcteAAnLXwAJy2AACcthAAnLYgAJy2QACctmAAnLZwAJy2gACctqAAnLawAJy4UACcueAAnLrwAJy7IACcu1AAnLuAAJy7sACcvMAAnLzwAJy9IACcvVAAnL2AAJy9oACcvpAAnL/QAJzAkACcwfAAnMsgAJzNUACcz1AAnNFQAJzRcACc0ZAAnNGwAJzR0ACc0gAAnNIQAJzSIACc0lAAnNJgAJzSgACc0pAAnNLAAJzS8ACc0wAAnNMQAJzTQACc01AAnNOgAJzVMACc1cAAnNXgAJzWEACc1qAAnNbQAJzXAACc1yAAnNuwAJzd8ACc4GAAnOKgAJzi0ACc4vAAnOMQAJzjMACc41AAnONwAJzjgACc47AAnOVAAJznUACc53AAnOeQAJznsACc59AAnOfwAJzoEACc6DAAnOhQAJzqYACc6pAAnOrAAJzq8ACc6yAAnOtQAJzrgACc67AAnOvgAJzsAACc87AAnPPQAJzz8ACc9BAAnPRAAJz0UACc9GAAnPRwAJz0gACc9KAAnPTAAJz00ACc9OAAnPUAAJz1EACc/MAAnPzgAJz9AACc/SAAnP1QAJz9YACc/XAAnP2AAJz9kACc/bAAnP3QAJz94ACc/fAAnP4QAJz+IACdBdAAnQXwAJ0GIACdBkAAnQZwAJ0GgACdBpAAnQagAJ0GsACdBtAAnQbwAJ0HAACdBxAAnQcwAJ0HQACdCNAAnQjgAJ0I8ACdCRAAnRDAAJ0Q4ACdEQAAnREgAJ0RUACdEWAAnRFwAJ0RgACdEZAAnRGwAJ0R0ACdEeAAnRHwAJ0SEACdEiAAnRnQAJ0Z8ACdGhAAnRowAJ0aYACdGnAAnRqAAJ0akACdGqAAnRrAAJ0a4ACdGvAAnRsAAJ0bIACdGzAAnSLgAJ0jAACdIyAAnSNAAJ0jcACdI4AAnSOQAJ0joACdI7AAnSPQAJ0j8ACdJAAAnSQQAJ0kMACdJEAAnSvwAJ0sEACdLDAAnSxQAJ0sgACdLJAAnSygAJ0ssACdLMAAnSzgAJ0tAACdLRAAnS0gAJ0tQACdLVAAnTUAAJ01IACdNUAAnTVgAJ01kACdNaAAnTWwAJ01wACdNdAAnTXwAJ02EACdNiAAnTYwAJ02UACdNmAAnTrwAJ09MACdP6AAnUHgAJ1CEACdQkAAnUJgAJ1CgACdQqAAnULAAJ1C0ACdQwAAnUSQAJ1GYACdRpAAnUbAAJ1G8ACdRyAAnUdQAJ1HgACdR7AAnUmAAJ1JsACdSeAAnUoQAJ1KQACdSnAAnUqgAJ1K0ACdSvAAnVKgAJ1SwACdUvAAnVMQAJ1TQACdU1AAnVNgAJ1TcACdU4AAnVOgAJ1T0ACdU+AAnVPwAJ1UEACdVCAAnVvQAJ1b8ACdXCAAnVxAAJ1ccACdXIAAnVyQAJ1coACdXLAAnVzQAJ1dAACdXRAAnV0gAJ1dQACdXVAAnWUAAJ1lIACdZVAAnWVwAJ1loACdZbAAnWXAAJ1l0ACdZeAAnWYAAJ1mMACdZkAAnWZQAJ1mcACdZoAAnW4wAJ1uUACdboAAnW6gAJ1u0ACdbuAAnW7wAJ1vAACdbxAAnW8wAJ1vYACdb3AAnW+AAJ1voACdb7AAnXdgAJ13gACdd6AAnXfAAJ138ACdeAAAnXgQAJ14IACdeDAAnXhQAJ14gACdeJAAnXigAJ14wACdeNAAnYCAAJ2AoACdgMAAnYDgAJ2BEACdgSAAnYEwAJ2BQACdgVAAnYFwAJ2BoACdgbAAnYHAAJ2B4ACdgfAAnYmgAJ2JwACdifAAnYoQAJ2KQACdilAAnYpgAJ2KcACdioAAnYqgAJ2K0ACdiuAAnYrwAJ2LEACdiyAAnZRQAJ2WgACdmIAAnZqAAJ2aoACdmsAAnZrgAJ2bAACdmzAAnZtAAJ2bUACdm4AAnZuQAJ2bsACdm8AAnZvgAJ2cEACdnCAAnZwwAJ2cYACdnHAAnZ0AAJ2ekACdnyAAnZ9AAJ2fYACdn/AAnaAgAJ2gUACdoHAAnaUAAJ2nQACdqbAAnavwAJ2sIACdrEAAnaxgAJ2sgACdrKAAnazAAJ2s0ACdrQAAna6QAJ2woACdsMAAnbDgAJ2xAACdsSAAnbFAAJ2xYACdsYAAnbGgAJ2zsACds+AAnbQQAJ20QACdtHAAnbSgAJ200ACdtQAAnbUwAJ21UACdvQAAnb0gAJ29QACdvWAAnb2QAJ29oACdvbAAnb3AAJ290ACdvfAAnb4QAJ2+IACdvjAAnb5QAJ2+YACdxhAAncYwAJ3GUACdxnAAncagAJ3GsACdxsAAncbQAJ3G4ACdxwAAnccgAJ3HMACdx0AAncdgAJ3HcACdzyAAnc9AAJ3PcACdz5AAnc/AAJ3P0ACdz+AAnc/wAJ3QAACd0CAAndBAAJ3QUACd0GAAndCAAJ3QkACd0iAAndIwAJ3SQACd0mAAndoQAJ3aMACd2lAAndpwAJ3aoACd2rAAndrAAJ3a0ACd2uAAndsAAJ3bIACd2zAAndtAAJ3bYACd23AAneMgAJ3jQACd42AAneOAAJ3jsACd48AAnePQAJ3j4ACd4/AAneQQAJ3kMACd5EAAneRQAJ3kcACd5IAAnewwAJ3sUACd7HAAneyQAJ3swACd7NAAnezgAJ3s8ACd7QAAne0gAJ3tQACd7VAAne1gAJ3tgACd7ZAAnfVAAJ31YACd9YAAnfWgAJ310ACd9eAAnfXwAJ32AACd9hAAnfYwAJ32UACd9mAAnfZwAJ32kACd9qAAnf5QAJ3+cACd/pAAnf6wAJ3+4ACd/vAAnf8AAJ3/EACd/yAAnf9AAJ3/YACd/3AAnf+AAJ3/oACd/7AAngRAAJ4GgACeCPAAngswAJ4LYACeC4AAngugAJ4LwACeC+AAngwAAJ4MEACeDEAAng3QAJ4PoACeD8AAng/gAJ4QAACeECAAnhBAAJ4QYACeEIAAnhJQAJ4SgACeErAAnhLgAJ4TEACeE0AAnhNwAJ4ToACeE8AAnhtwAJ4bkACeG7AAnhvQAJ4cAACeHBAAnhwgAJ4cMACeHEAAnhxgAJ4cgACeHJAAnhygAJ4cwACeHNAAniSAAJ4koACeJMAAniTgAJ4lEACeJSAAniUwAJ4lQACeJVAAniVwAJ4lkACeJaAAniWwAJ4l0ACeJeAAni2QAJ4tsACeLdAAni3wAJ4uIACeLjAAni5AAJ4uUACeLmAAni6AAJ4uoACeLrAAni7AAJ4u4ACeLvAAnjagAJ42wACeNuAAnjcAAJ43MACeN0AAnjdQAJ43YACeN3AAnjeQAJ43sACeN8AAnjfQAJ438ACeOAAAnj+wAJ4/0ACeP/AAnkAQAJ5AQACeQFAAnkBgAJ5AcACeQIAAnkCgAJ5AwACeQNAAnkDgAJ5BAACeQRAAnkjAAJ5I4ACeSQAAnkkgAJ5JUACeSWAAnklwAJ5JgACeSZAAnkmwAJ5J0ACeSeAAnknwAJ5KEACeSiAAnlHQAJ5R8ACeUhAAnlIwAJ5SYACeUnAAnlKAAJ5SkACeUqAAnlLAAJ5S4ACeUvAAnlMAAJ5TIACeUzAAnlxgAJ5ekACeYJAAnmKQAJ5isACeYtAAnmLwAJ5jEACeY0AAnmNQAJ5jYACeY5AAnmOgAJ5jwACeY9AAnmPwAJ5kIACeZDAAnmRAAJ5kcACeZIAAnmTQAJ5mYACeZvAAnmcQAJ5nMACeZ8AAnmfwAJ5oIACeaEAAnmzQAJ5vEACecYAAnnPAAJ5z8ACedBAAnnQwAJ50UACedHAAnnSQAJ50oACedNAAnnZgAJ54cACeeJAAnniwAJ540ACeePAAnnkQAJ55MACeeVAAnnlwAJ57gACee7AAnnvgAJ58EACefEAAnnxwAJ58oACefNAAnn0AAJ59IACehNAAnoTwAJ6FEACehTAAnoVgAJ6FcACehYAAnoWQAJ6FoACehcAAnoXgAJ6F8ACehgAAnoYgAJ6GMACejeAAno4AAJ6OIACejkAAno5wAJ6OgACejpAAno6gAJ6OsACejtAAno7wAJ6PAACejxAAno8wAJ6PQACelvAAnpcQAJ6XQACel2AAnpeQAJ6XoACel7AAnpfAAJ6X0ACel/AAnpgQAJ6YIACemDAAnphQAJ6YYACemfAAnpoAAJ6aEACemjAAnqHgAJ6iAACeoiAAnqJAAJ6icACeooAAnqKQAJ6ioACeorAAnqLQAJ6i8ACeowAAnqMQAJ6jMACeo0AAnqrwAJ6rEACeqzAAnqtQAJ6rgACeq5AAnqugAJ6rsACeq8AAnqvgAJ6sAACerBAAnqwgAJ6sQACerFAAnrQAAJ60IACetEAAnrRgAJ60kACetKAAnrSwAJ60wACetNAAnrTwAJ61EACetSAAnrUwAJ61UACetWAAnr0QAJ69MACevVAAnr1wAJ69oACevbAAnr3AAJ690ACeveAAnr4AAJ6+IACevjAAnr5AAJ6+YACevnAAnsYgAJ7GQACexmAAnsaAAJ7GsACexsAAnsbQAJ7G4ACexvAAnscQAJ7HMACex0AAnsdQAJ7HcACex4AAnswQAJ7OUACe0MAAntMAAJ7TMACe01AAntNwAJ7TkACe07AAntPQAJ7T4ACe1BAAntWgAJ7XcACe15AAntewAJ7X0ACe1/AAntgQAJ7YMACe2FAAntogAJ7aUACe2oAAntqwAJ7a4ACe2xAAnttAAJ7bcACe25AAnuNAAJ7jYACe44AAnuOgAJ7j0ACe4+AAnuPwAJ7kAACe5BAAnuQwAJ7kUACe5GAAnuRwAJ7kkACe5KAAnuxQAJ7scACe7JAAnuywAJ7s4ACe7PAAnu0AAJ7tEACe7SAAnu1AAJ7tYACe7XAAnu2AAJ7toACe7bAAnvVgAJ71gACe9aAAnvXAAJ718ACe9gAAnvYQAJ72IACe9jAAnvZQAJ72cACe9oAAnvaQAJ72sACe9sAAnv5wAJ7+kACe/sAAnv7gAJ7/EACe/yAAnv8wAJ7/QACe/1AAnv9wAJ7/kACe/6AAnv+wAJ7/0ACe/+AAnweQAJ8HsACfB9AAnwfwAJ8IIACfCDAAnwhAAJ8IUACfCGAAnwiAAJ8IoACfCLAAnwjAAJ8I4ACfCPAAnxCgAJ8QwACfEOAAnxEAAJ8RMACfEUAAnxFQAJ8RYACfEXAAnxGQAJ8RsACfEcAAnxHQAJ8R8ACfEgAAnxmwAJ8Z0ACfGfAAnxoQAJ8aQACfGlAAnxpgAJ8acACfGoAAnxqgAJ8awACfGtAAnxrgAJ8bAACfGxAAnyRAAJ8mcACfKHAAnypwAJ8qkACfKrAAnyrQAJ8q8ACfKyAAnyswAJ8rQACfK3AAnyuAAJ8roACfK7AAnyvQAJ8sAACfLBAAnywgAJ8sUACfLGAAnyywAJ8uQACfLtAAny7wAJ8vEACfL6AAny/QAJ8wAACfMCAAnzSwAJ828ACfOWAAnzugAJ870ACfO/AAnzwQAJ88MACfPFAAnzxwAJ88gACfPLAAnz5AAJ9AUACfQHAAn0CQAJ9AsACfQNAAn0DwAJ9BEACfQTAAn0FQAJ9DYACfQ5AAn0PAAJ9D8ACfRCAAn0RQAJ9EgACfRLAAn0TgAJ9FAACfTLAAn0zQAJ9M8ACfTRAAn01AAJ9NUACfTWAAn01wAJ9NgACfTaAAn03AAJ9N0ACfTeAAn04AAJ9OEACfVcAAn1XgAJ9WAACfViAAn1ZQAJ9WYACfVnAAn1aAAJ9WkACfVrAAn1bQAJ9W4ACfVvAAn1cQAJ9XIACfXtAAn17wAJ9fIACfX0AAn19wAJ9fgACfX5AAn1+gAJ9fsACfX9AAn1/wAJ9gAACfYBAAn2AwAJ9gQACfYdAAn2HgAJ9h8ACfYhAAn2nAAJ9p4ACfagAAn2ogAJ9qUACfamAAn2pwAJ9qgACfapAAn2qwAJ9q0ACfauAAn2rwAJ9rEACfayAAn3LQAJ9y8ACfcxAAn3MwAJ9zYACfc3AAn3OAAJ9zkACfc6AAn3PAAJ9z4ACfc/AAn3QAAJ90IACfdDAAn3vgAJ98AACffCAAn3xAAJ98cACffIAAn3yQAJ98oACffLAAn3zQAJ988ACffQAAn30QAJ99MACffUAAn4TwAJ+FEACfhTAAn4VQAJ+FgACfhZAAn4WgAJ+FsACfhcAAn4XgAJ+GAACfhhAAn4YgAJ+GQACfhlAAn44AAJ+OIACfjkAAn45gAJ+OkACfjqAAn46wAJ+OwACfjtAAn47wAJ+PEACfjyAAn48wAJ+PUACfj2AAn5PwAJ+WMACfmKAAn5rgAJ+bEACfmzAAn5tQAJ+bcACfm5AAn5uwAJ+bwACfm/AAn52AAJ+fUACfn3AAn5+QAJ+fsACfn9AAn5/wAJ+gEACfoDAAn6IAAJ+iMACfomAAn6KQAJ+iwACfovAAn6MgAJ+jUACfo3AAn6sgAJ+rQACfq2AAn6uAAJ+rsACfq8AAn6vQAJ+r4ACfq/AAn6wQAJ+sMACfrEAAn6xQAJ+scACfrIAAn7QwAJ+0UACftHAAn7SQAJ+0wACftNAAn7TgAJ+08ACftQAAn7UgAJ+1QACftVAAn7VgAJ+1gACftZAAn71AAJ+9YACfvYAAn72gAJ+90ACfveAAn73wAJ++AACfvhAAn74wAJ++UACfvmAAn75wAJ++kACfvqAAn8ZQAJ/GcACfxqAAn8bAAJ/G8ACfxwAAn8cQAJ/HIACfxzAAn8dQAJ/HcACfx4AAn8eQAJ/HsACfx8AAn89wAJ/PkACfz7AAn8/QAJ/QAACf0BAAn9AgAJ/QMACf0EAAn9BgAJ/QgACf0JAAn9CgAJ/QwACf0NAAn9iAAJ/YoACf2MAAn9jgAJ/ZEACf2SAAn9kwAJ/ZQACf2VAAn9lwAJ/ZkACf2aAAn9mwAJ/Z0ACf2eAAn+GQAJ/hsACf4dAAn+HwAJ/iIACf4jAAn+JAAJ/iUACf4mAAn+KAAJ/ioACf4rAAn+LAAJ/i4ACf4vAAn+QAAJ/kEACf5DAAn+vgAJ/sAACf7CAAn+xAAJ/scACf7IAAn+yQAJ/soACf7LAAn+zQAJ/tAACf7RAAn+0gAJ/tQACf7VAAn/UAAJ/1IACf9UAAn/VgAJ/1kACf9aAAn/WwAJ/1wACf9dAAn/XwAJ/2IACf9jAAn/ZAAJ/2YACf9nAAn/4gAJ/+QACf/nAAn/6QAJ/+wACf/tAAn/7gAJ/+8ACf/wAAn/8gAJ//UACf/2AAn/9wAJ//kACf/6AAoAjQAKALAACgDQAAoA8AAKAPIACgD0AAoA9gAKAPgACgD7AAoA/AAKAP0ACgEAAAoBAQAKAQMACgEEAAoBBgAKAQkACgEKAAoBCwAKAQ4ACgEPAAoBFAAKAS0ACgE2AAoBOAAKAToACgFDAAoBRgAKAUkACgFLAAoBlAAKAbgACgHfAAoCAwAKAgYACgIIAAoCCgAKAgwACgIOAAoCEAAKAhEACgIUAAoCLQAKAk4ACgJQAAoCUgAKAlQACgJWAAoCWAAKAloACgJcAAoCXgAKAn8ACgKCAAoChQAKAogACgKLAAoCjgAKApEACgKUAAoClwAKApkACgMUAAoDFgAKAxgACgMaAAoDHQAKAx4ACgMfAAoDIAAKAyEACgMjAAoDJQAKAyYACgMnAAoDKQAKAyoACgOlAAoDpwAKA6kACgOrAAoDrgAKA68ACgOwAAoDsQAKA7IACgO0AAoDtgAKA7cACgO4AAoDugAKA7sACgQ2AAoEOAAKBDsACgQ9AAoEQAAKBEEACgRCAAoEQwAKBEQACgRGAAoESAAKBEkACgRKAAoETAAKBE0ACgRmAAoEZwAKBGgACgRqAAoE5QAKBOcACgTpAAoE6wAKBO4ACgTvAAoE8AAKBPEACgTyAAoE9AAKBPYACgT3AAoE+AAKBPoACgT7AAoFdgAKBXgACgV6AAoFfAAKBX8ACgWAAAoFgQAKBYIACgWDAAoFhQAKBYcACgWIAAoFiQAKBYsACgWMAAoGBwAKBgkACgYLAAoGDQAKBhAACgYRAAoGEgAKBhMACgYUAAoGFgAKBhgACgYZAAoGGgAKBhwACgYdAAoGmAAKBpoACgacAAoGngAKBqEACgaiAAoGowAKBqQACgalAAoGpwAKBqkACgaqAAoGqwAKBq0ACgauAAoHKQAKBysACgctAAoHLwAKBzIACgczAAoHNAAKBzUACgc2AAoHOAAKBzoACgc7AAoHPAAKBz4ACgc/AAoHiAAKB6wACgfTAAoH9wAKB/oACgf8AAoH/gAKCAAACggCAAoIBAAKCAUACggIAAoIIQAKCD4ACghAAAoIQgAKCEQACghGAAoISAAKCEoACghMAAoIaQAKCGwACghvAAoIcgAKCHUACgh4AAoIewAKCH4ACgiAAAoI+wAKCP0ACgj/AAoJAQAKCQQACgkFAAoJBgAKCQcACgkIAAoJCgAKCQwACgkNAAoJDgAKCRAACgkRAAoJjAAKCY4ACgmQAAoJkgAKCZUACgmWAAoJlwAKCZgACgmZAAoJmwAKCZ0ACgmeAAoJnwAKCaEACgmiAAoKHQAKCh8ACgohAAoKIwAKCiYACgonAAoKKAAKCikACgoqAAoKLAAKCi4ACgovAAoKMAAKCjIACgozAAoKrgAKCrAACgqzAAoKtQAKCrgACgq5AAoKugAKCrsACgq8AAoKvgAKCsAACgrBAAoKwgAKCsQACgrFAAoLQAAKC0IACgtEAAoLRgAKC0kACgtKAAoLSwAKC0wACgtNAAoLTwAKC1EACgtSAAoLUwAKC1UACgtWAAoL0QAKC9MACgvVAAoL1wAKC9oACgvbAAoL3AAKC90ACgveAAoL4AAKC+IACgvjAAoL5AAKC+YACgvnAAoMYgAKDGQACgxmAAoMaAAKDGsACgxsAAoMbQAKDG4ACgxvAAoMcQAKDHMACgx0AAoMdQAKDHcACgx4AAoNCwAKDS4ACg1OAAoNbgAKDXAACg1yAAoNdAAKDXYACg15AAoNegAKDXsACg1+AAoNfwAKDYEACg2CAAoNhAAKDYcACg2IAAoNiQAKDYwACg2NAAoNkgAKDasACg20AAoNtgAKDbgACg3BAAoNxAAKDccACg3JAAoOEgAKDjYACg5dAAoOgQAKDoQACg6GAAoOiAAKDooACg6MAAoOjgAKDo8ACg6SAAoOqwAKDswACg7OAAoO0AAKDtIACg7UAAoO1gAKDtgACg7aAAoO3AAKDv0ACg8AAAoPAwAKDwYACg8JAAoPDAAKDw8ACg8SAAoPFQAKDxcACg+SAAoPlAAKD5YACg+YAAoPmwAKD5wACg+dAAoPngAKD58ACg+hAAoPowAKD6QACg+lAAoPpwAKD6gAChAjAAoQJQAKECcAChApAAoQLAAKEC0AChAuAAoQLwAKEDAAChAyAAoQNAAKEDUAChA2AAoQOAAKEDkAChC0AAoQtgAKELkAChC7AAoQvgAKEL8AChDAAAoQwQAKEMIAChDEAAoQxgAKEMcAChDIAAoQygAKEMsAChDkAAoQ5QAKEOYAChDoAAoRYwAKEWUAChFnAAoRaQAKEWwAChFtAAoRbgAKEW8AChFwAAoRcgAKEXQAChF1AAoRdgAKEXgAChF5AAoR9AAKEfYAChH4AAoR+gAKEf0AChH+AAoR/wAKEgAAChIBAAoSAwAKEgUAChIGAAoSBwAKEgkAChIKAAoShQAKEocAChKJAAoSiwAKEo4AChKPAAoSkAAKEpEAChKSAAoSlAAKEpYAChKXAAoSmAAKEpoAChKbAAoTFgAKExgAChMaAAoTHAAKEx8AChMgAAoTIQAKEyIAChMjAAoTJQAKEycAChMoAAoTKQAKEysAChMsAAoTpwAKE6kAChOrAAoTrQAKE7AAChOxAAoTsgAKE7MAChO0AAoTtgAKE7gAChO5AAoTugAKE7wAChO9AAoUBgAKFCoAChRRAAoUdQAKFHgAChR6AAoUfAAKFH4AChSAAAoUggAKFIMAChSGAAoUnwAKFLwAChS+AAoUwAAKFMIAChTEAAoUxgAKFMgAChTKAAoU5wAKFOoAChTtAAoU8AAKFPMAChT2AAoU+QAKFPwAChT+AAoVeQAKFXsAChV9AAoVfwAKFYIAChWDAAoVhAAKFYUAChWGAAoViAAKFYoAChWLAAoVjAAKFY4AChWPAAoWCgAKFgwAChYOAAoWEAAKFhMAChYUAAoWFQAKFhYAChYXAAoWGQAKFhsAChYcAAoWHQAKFh8AChYgAAoWmwAKFp0AChafAAoWoQAKFqQAChalAAoWpgAKFqcAChaoAAoWqgAKFqwAChatAAoWrgAKFrAAChaxAAoXLAAKFy4AChcxAAoXMwAKFzYAChc3AAoXOAAKFzkAChc6AAoXPAAKFz4AChc/AAoXQAAKF0IAChdDAAoXvgAKF8AAChfCAAoXxAAKF8cAChfIAAoXyQAKF8oAChfLAAoXzQAKF88AChfQAAoX0QAKF9MAChfUAAoYTwAKGFEAChhTAAoYVQAKGFgAChhZAAoYWgAKGFsAChhcAAoYXgAKGGAAChhhAAoYYgAKGGQAChhlAAoY4AAKGOIAChjkAAoY5gAKGOkAChjqAAoY6wAKGOwAChjtAAoY7wAKGPEAChjyAAoY8wAKGPUAChj2AAoZiQAKGawAChnMAAoZ7AAKGe4AChnwAAoZ8gAKGfQAChn3AAoZ+AAKGfkAChn8AAoZ/QAKGf8AChoAAAoaAgAKGgUAChoGAAoaBwAKGgoAChoLAAoaFAAKGi0ACho2AAoaOAAKGjoAChpDAAoaRgAKGkkAChpLAAoalAAKGrgAChrfAAobAwAKGwYAChsIAAobCgAKGwwAChsOAAobEAAKGxEAChsUAAobLQAKG04AChtQAAobUgAKG1QAChtWAAobWAAKG1oAChtcAAobXgAKG38AChuCAAobhQAKG4gAChuLAAobjgAKG5EAChuUAAoblwAKG5kAChwUAAocFgAKHBgAChwaAAocHQAKHB4AChwfAAocIAAKHCEAChwjAAocJQAKHCYAChwnAAocKQAKHCoAChylAAocpwAKHKkAChyrAAocrgAKHK8AChywAAocsQAKHLIAChy0AAoctgAKHLcAChy4AAocugAKHLsACh02AAodOAAKHTsACh09AAodQAAKHUEACh1CAAodQwAKHUQACh1GAAodSAAKHUkACh1KAAodTAAKHU0ACh1mAAodZwAKHWgACh1qAAod5QAKHecACh3pAAod6wAKHe4ACh3vAAod8AAKHfEACh3yAAod9AAKHfYACh33AAod+AAKHfoACh37AAoedgAKHngACh56AAoefAAKHn8ACh6AAAoegQAKHoIACh6DAAoehQAKHocACh6IAAoeiQAKHosACh6MAAofBwAKHwkACh8LAAofDQAKHxAACh8RAAofEgAKHxMACh8UAAofFgAKHxgACh8ZAAofGgAKHxwACh8dAAofmAAKH5oACh+cAAofngAKH6EACh+iAAofowAKH6QACh+lAAofpwAKH6kACh+qAAofqwAKH60ACh+uAAogKQAKICsACiAtAAogLwAKIDIACiAzAAogNAAKIDUACiA2AAogOAAKIDoACiA7AAogPAAKID4ACiA/AAogiAAKIKwACiDTAAog9wAKIPoACiD8AAog/gAKIQAACiECAAohBAAKIQUACiEIAAohIQAKIT4ACiFAAAohQgAKIUQACiFGAAohSAAKIUoACiFMAAohaQAKIWwACiFvAAohcgAKIXUACiF4AAohewAKIX4ACiGAAAoh+wAKIf0ACiH/AAoiAQAKIgQACiIFAAoiBgAKIgcACiIIAAoiCgAKIgwACiINAAoiDgAKIhAACiIRAAoijAAKIo4ACiKQAAoikgAKIpUACiKWAAoilwAKIpgACiKZAAoimwAKIp0ACiKeAAoinwAKIqEACiKiAAojHQAKIx8ACiMhAAojIwAKIyYACiMnAAojKAAKIykACiMqAAojLAAKIy4ACiMvAAojMAAKIzIACiMzAAojrgAKI7AACiOzAAojtQAKI7gACiO5AAojugAKI7sACiO8AAojvgAKI8AACiPBAAojwgAKI8QACiPFAAokQAAKJEIACiREAAokRgAKJEkACiRKAAokSwAKJEwACiRNAAokTwAKJFEACiRSAAokUwAKJFUACiRWAAok0QAKJNMACiTVAAok1wAKJNoACiTbAAok3AAKJN0ACiTeAAok4AAKJOIACiTjAAok5AAKJOYACiTnAAolYgAKJWQACiVmAAolaAAKJWsACiVsAAolbQAKJW4ACiVvAAolcQAKJXMACiV0AAoldQAKJXcACiV4AAomCwAKJi4ACiZOAAombgAKJnAACiZyAAomdAAKJnYACiZ5AAomegAKJnsACiZ+AAomfwAKJoEACiaCAAomhQAKJogACiaJAAomigAKJo0ACiaOAAomkwAKJqwACia1AAomtwAKJroACibDAAomxgAKJskACibLAAonFAAKJzgACidfAAongwAKJ4YACieIAAonigAKJ4wACieOAAonkAAKJ5EACieUAAonrQAKJ84ACifQAAon0gAKJ9QACifWAAon2AAKJ9oACifcAAon3gAKJ/8ACigCAAooBQAKKAgACigLAAooDgAKKBEACigUAAooFwAKKBkACiiUAAoolgAKKJgACiiaAAoonQAKKJ4ACiifAAoooAAKKKEACiijAAoopQAKKKYACiinAAooqQAKKKoACiklAAopJwAKKSkACikrAAopLgAKKS8ACikwAAopMQAKKTIACik0AAopNgAKKTcACik4AAopOgAKKTsACim2AAopuAAKKbsACim9AAopwAAKKcEACinCAAopwwAKKcQACinGAAopyAAKKckACinKAAopzAAKKc0ACinmAAop5wAKKegACinqAAoqZQAKKmcACippAAoqawAKKm4ACipvAAoqcAAKKnEACipyAAoqdAAKKnYACip3AAoqeAAKKnoACip7AAoq9gAKKvgACir6AAoq/AAKKv8ACisAAAorAQAKKwIACisDAAorBQAKKwcACisIAAorCQAKKwsACisMAAorhwAKK4kACiuLAAorjQAKK5AACiuRAAorkgAKK5MACiuUAAorlgAKK5gACiuZAAormgAKK5wACiudAAosGAAKLBoACiwcAAosHgAKLCEACiwiAAosIwAKLCQACiwlAAosJwAKLCkACiwqAAosKwAKLC0ACiwuAAosqQAKLKsACiytAAosrwAKLLIACiyzAAostAAKLLUACiy2AAosuAAKLLoACiy7AAosvAAKLL4ACiy/AAotCAAKLSwACi1TAAotdwAKLXoACi19AAotfwAKLYEACi2DAAothQAKLYYACi2JAAotogAKLb8ACi3CAAotxQAKLcgACi3LAAotzgAKLdEACi3UAAot8QAKLfQACi33AAot+gAKLf0ACi4AAAouAwAKLgYACi4IAAougwAKLoUACi6IAAouigAKLo0ACi6OAAoujwAKLpAACi6RAAoukwAKLpYACi6XAAoumAAKLpoACi6bAAovFgAKLxgACi8bAAovHQAKLyAACi8hAAovIgAKLyMACi8kAAovJgAKLykACi8qAAovKwAKLy0ACi8uAAovqQAKL6sACi+uAAovsAAKL7MACi+0AAovtQAKL7YACi+3AAovuQAKL7wACi+9AAovvgAKL8AACi/BAAowPAAKMD4ACjBBAAowQwAKMEYACjBHAAowSAAKMEkACjBKAAowTAAKME8ACjBQAAowUQAKMFMACjBUAAowzwAKMNEACjDTAAow1QAKMNgACjDZAAow2gAKMNsACjDcAAow3gAKMOEACjDiAAow4wAKMOUACjDmAAoxYQAKMWMACjFlAAoxZwAKMWoACjFrAAoxbAAKMW0ACjFuAAoxcAAKMXMACjF0AAoxdQAKMXcACjF4AAox8wAKMfUACjH4AAox+gAKMf0ACjH+AAox/wAKMgAACjIBAAoyAwAKMgY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ACkNxAApDugAKQ94ACkQFAApEKQAKRCwACkQuAApEMAAKRDIACkQ0AApENgAKRDcACkQ6AApEUwAKRHQACkR2AApEeAAKRHoACkR8AApEfgAKRIAACkSCAApEhAAKRKUACkSoAApEqwAKRK4ACkSxAApEtAAKRLcACkS6AApEvQAKRL8ACkU6AApFPAAKRT4ACkVAAApFQwAKRUQACkVFAApFRgAKRUcACkVJAApFSwAKRUwACkVNAApFTwAKRVAACkXLAApFzQAKRc8ACkXRAApF1AAKRdUACkXWAApF1wAKRdgACkXaAApF3AAKRd0ACkXeAApF4AAKReEACkZcAApGXgAKRmEACkZjAApGZgAKRmcACkZoAApGaQAKRmoACkZsAApGbgAKRm8ACkZwAApGcgAKRnMACkaMAApGjQAKRo4ACkaQAApHCwAKRw0ACkcPAApHEQAKRxQACkcVAApHFgAKRxcACkcYAApHGgAKRxwACkcdAApHHgAKRyAACkchAApHnAAKR54ACkegAApHogAKR6UACkemAApHpwAKR6gACkepAApHqwAKR60ACkeuAApHrwAKR7EACkeyAApILQAKSC8ACkgxAApIMwAKSDYACkg3AApIOAAKSDkACkg6AApIPAAKSD4ACkg/AApIQAAKSEIACkhDAApIvgAKSMAACkjCAApIxAAKSMcACkjIAApIyQAKSMoACkjLAApIzQAKSM8ACkjQAApI0QAKSNMACkjUAApJTwAKSVEACklTAApJVQAKSVgACklZAApJWgAKSVsACklcAApJXgAKSWAACklhAApJYgAKSWQACkllAApJrgAKSdIACkn5AApKHQAKSiAACkoiAApKJAAKSiYACkooAApKKgAKSisACkouAApKRwAKSmQACkpmAApKaAAKSmoACkpsAApKbgAKSnAACkpyAApKjwAKSpIACkqVAApKmAAKSpsACkqeAApKoQAKSqQACkqmAApLIQAKSyMACkslAApLJwAKSyoACksrAApLLAAKSy0ACksuAApLMAAKSzIACkszAApLNAAKSzYACks3AApLsgAKS7QACku2AApLuAAKS7sACku8AApLvQAKS74ACku/AApLwQAKS8MACkvEAApLxQAKS8cACkvIAApMQwAKTEUACkxHAApMSQAKTEwACkxNAApMTgAKTE8ACkxQAApMUgAKTFQACkxVAApMVgAKTFgACkxZAApM1AAKTNYACkzYAApM2gAKTN0ACkzeAApM3wAKTOAACkzhAApM4wAKTOUACkzmAApM5wAKTOkACkzqAApNZQAKTWcACk1pAApNawAKTW4ACk1vAApNcAAKTXEACk1yAApNdAAKTXYACk13AApNeAAKTXoACk17AApN9gAKTfgACk36AApN/AAKTf8ACk4AAApOAQAKTgIACk4DAApOBQAKTgcACk4IAApOCQAKTgsACk4MAApOhwAKTokACk6LAApOjQAKTpAACk6RAApOkgAKTpMACk6UAApOlgAKTpgACk6ZAApOmgAKTpwACk6dAApPMAAKT1MACk9zAApPkwAKT5UACk+XAApPmQAKT5sACk+eAApPnwAKT6AACk+jAApPpAAKT6YACk+nAApPqQAKT6wACk+tAApPrgAKT7EACk+yAApPtwAKT9AACk/ZAApP2wAKT90ACk/mAApP6QAKT+wACk/uAApQNwAKUFsAClCCAApQpgAKUKkAClCrAApQrQAKUK8AClCxAApQswAKULQAClC3AApQ0AAKUPEAClDzAApQ9QAKUPcAClD5AApQ+wAKUP0AClD/AApRAQAKUSIAClElAApRKAAKUSsAClEuAApRMQAKUTQAClE3AApROgAKUTwAClG3AApRuQAKUbsAClG9AApRwAAKUcEAClHCAApRwwAKUcQAClHGAApRyAAKUckAClHKAApRzAAKUc0AClJIAApSSgAKUkwAClJOAApSUQAKUlIAClJTAApSVAAKUlUAClJXAApSWQAKUloAClJbAApSXQAKUl4AClLZAApS2wAKUt4AClLgAApS4wAKUuQAClLlAApS5gAKUucAClLpAApS6wAKUuwAClLtAApS7wAKUvAAClMJAApTCgAKUwsAClMNAApTiAAKU4oAClOMAApTjgAKU5EAClOSAApTkwAKU5QAClOVAApTlwAKU5kAClOaAApTmwAKU50AClOeAApUGQAKVBsAClQdAApUHwAKVCIAClQjAApUJAAKVCUAClQmAApUKAAKVCoAClQrAApULAAKVC4AClQvAApUqgAKVKwAClSuAApUsAAKVLMAClS0AApUtQAKVLYAClS3AApUuQAKVLsAClS8AApUvQAKVL8AClTAAApVOwAKVT0AClU/AApVQQAKVUQAClVFAApVRgAKVUcAClVIAApVSgAKVUwAClVNAApVTgAKVVAAClVRAApVzAAKVc4AClXQAApV0gAKVdUAClXWAApV1wAKVdgAClXZAApV2wAKVd0AClXeAApV3wAKVeEAClXiAApWKwAKVk8AClZ2AApWmgAKVp0AClafAApWoQAKVqMAClalAApWpwAKVqgAClarAApWxAAKVuEAClbjAApW5QAKVucAClbpAApW6wAKVu0AClbvAApXDAAKVw8AClcSAApXFQAKVxgAClcbAApXHgAKVyEAClcjAApXngAKV6AACleiAApXpAAKV6cACleoAApXqQAKV6oAClerAApXrQAKV68AClewAApXsQAKV7MACle0AApYLwAKWDEAClgzAApYNQAKWDgAClg5AApYOgAKWDsAClg8AApYPgAKWEAAClhBAApYQgAKWEQAClhFAApYwAAKWMIACljEAApYxgAKWMkACljKAApYywAKWMwACljNAApYzwAKWNEACljSAApY0wAKWNUACljWAApZUQAKWVMACllWAApZWAAKWVsACllcAApZXQAKWV4ACllfAApZYQAKWWMACllkAApZZQAKWWcAClloAApZ4wAKWeUAClnnAApZ6QAKWewAClntAApZ7gAKWe8AClnwAApZ8gAKWfQACln1AApZ9gAKWfgACln5AApadAAKWnYAClp4AApaegAKWn0AClp+AApafwAKWoAAClqBAApagwAKWoUAClqGAApahwAKWokAClqKAApbBQAKWwcAClsJAApbCwAKWw4AClsPAApbEAAKWxEAClsSAApbFAAKWxYAClsXAApbGAAKWxoAClsbAApbLAAKWy0AClsvAApbqgAKW6wACluuAApbsAAKW7MAClu0AApbtQAKW7YAClu3AApbuQAKW7wAClu9AApbvgAKW8AAClvBAApcPAAKXD4AClxAAApcQgAKXEUAClxGAApcRwAKXEgAClxJAApcSwAKXE4AClxPAApcUAAKXFIAClxTAApczgAKXNAAClzTAApc1QAKXNgAClzZAApc2gAKXNsAClzcAApc3gAKXOEAClziAApc4wAKXOUAClzmAApdeQAKXZwACl28AApd3AAKXd4ACl3gAApd4gAKXeQACl3nAApd6AAKXekACl3sAApd7QAKXe8ACl3wAApd8gAKXfUACl32AApd9wAKXfoACl37AApeAAAKXhkACl4iAApeJAAKXiYACl4vAApeMgAKXjUACl43AApegAAKXqQACl7LAApe7wAKXvIACl70AApe9gAKXvgACl76AApe/AAKXv0ACl8AAApfGQAKXzoACl88AApfPgAKX0AACl9CAApfRAAKX0YACl9IAApfSgAKX2sACl9uAApfcQAKX3QACl93AApfegAKX30ACl+AAApfgwAKX4UACmAAAApgAgAKYAQACmAGAApgCQAKYAoACmALAApgDAAKYA0ACmAPAApgEQAKYBIACmATAApgFQAKYBYACmCRAApgkwAKYJUACmCXAApgmgAKYJsACmCcAApgnQAKYJ4ACmCgAApgogAKYKMACmCkAApgpgAKYKcACmEiAAphJAAKYScACmEpAAphLAAKYS0ACmEuAAphLwAKYTAACmEyAAphNAAKYTUACmE2AAphOAAKYTkACmFSAAphUwAKYVQACmFWAAph0QAKYdMACmHVAAph1wAKYdoACmHbAAph3AAKYd0ACmHeAAph4AAKYeIACmHjAAph5AAKYeYACmHnAApiYgAKYmQACmJmAApiaAAKYmsACmJsAApibQAKYm4ACmJvAApicQAKYnMACmJ0AApidQAKYncACmJ4AApi8wAKYvUACmL3AApi+QAKYvwACmL9AApi/gAKYv8ACmMAAApjAgAKYwQACmMFAApjBgAKYwgACmMJAApjhAAKY4YACmOIAApjigAKY40ACmOOAApjjwAKY5AACmORAApjkwAKY5UACmOWAApjlwAKY5kACmOaAApkFQAKZBcACmQZAApkGwAKZB4ACmQfAApkIAAKZCEACmQiAApkJAAKZCYACmQnAApkKAAKZCoACmQrAApkdAAKZJgACmS/AApk4wAKZOYACmToAApk6gAKZOwACmTuAApk8AAKZPEACmT0AAplDQAKZSoACmUsAAplLgAKZTAACmUyAAplNAAKZTYACmU4AAplVQAKZVgACmVbAAplXgAKZWEACmVkAAplZwAKZWoACmVsAApl5wAKZekACmXrAApl7QAKZfAACmXxAApl8gAKZfMACmX0AApl9gAKZfgACmX5AApl+gAKZfwACmX9AApmeAAKZnoACmZ8AApmfgAKZoEACmaCAApmgwAKZoQACmaFAApmhwAKZokACmaKAApmiwAKZo0ACmaOAApnCQAKZwsACmcNAApnDwAKZxIACmcTAApnFAAKZxUACmcWAApnGAAKZxoACmcbAApnHAAKZx4ACmcfAApnmgAKZ5wACmefAApnoQAKZ6QACmelAApnpgAKZ6cACmeoAApnqgAKZ6wACmetAApnrgAKZ7AACmexAApoLAAKaC4ACmgwAApoMgAKaDUACmg2AApoNwAKaDgACmg5AApoOwAKaD0ACmg+AApoPwAKaEEACmhCAApovQAKaL8ACmjBAApowwAKaMYACmjHAApoyAAKaMkACmjKAApozAAKaM4ACmjPAApo0AAKaNIACmjTAAppTgAKaVAACmlSAAppVAAKaVcACmlYAAppWQAKaVoACmlbAAppXQAKaV8ACmlgAAppYQAKaWMACmlkAApp9wAKahoACmo6AApqWgAKalwACmpeAApqYAAKamIACmplAApqZgAKamcACmpqAApqawAKam0ACmpuAApqcQAKanQACmp1AApqdgAKankACmp6AApqgwAKapwACmqlAApqpwAKaqoACmqzAApqtgAKarkACmq7AAprBAAKaygACmtPAAprcwAKa3YACmt4AApregAKa3wACmt+AAprgAAKa4EACmuEAAprnQAKa74ACmvAAAprwgAKa8QACmvGAApryAAKa8oACmvMAAprzgAKa+8ACmvyAApr9QAKa/gACmv7AApr/gAKbAEACmwEAApsBwAKbAkACmyEAApshgAKbIgACmyKAApsjQAKbI4ACmyPAApskAAKbJEACmyTAApslQAKbJYACmyXAApsmQAKbJoACm0VAAptFwAKbRkACm0bAAptHgAKbR8ACm0gAAptIQAKbSIACm0kAAptJgAKbScACm0oAAptKgAKbSsACm2mAAptqAAKbasACm2tAAptsAAKbbEACm2yAAptswAKbbQACm22AAptuAAKbbkACm26AAptvAAKbb0ACm3WAApt1wAKbdgACm3aAApuVQAKblcACm5ZAApuWwAKbl4ACm5fAApuYAAKbmEACm5iAApuZAAKbmYACm5nAApuaAAKbmoACm5rAApu5gAKbugACm7qAApu7AAKbu8ACm7wAApu8QAKbvIACm7zAApu9QAKbvcACm74AApu+QAKbvsACm78AApvdwAKb3kACm97AApvfQAKb4AACm+BAApvggAKb4MACm+EAApvhgAKb4gACm+JAApvigAKb4wACm+NAApwCAAKcAoACnAMAApwDgAKcBEACnASAApwEwAKcBQACnAVAApwFwAKcBkACnAaAApwGwAKcB0ACnAeAApwmQAKcJsACnCdAApwnwAKcKIACnCjAApwpAAKcKUACnCmAApwqAAKcKoACnCrAApwrAAKcK4ACnCvAApw+AAKcRwACnFDAApxZwAKcWoACnFtAApxbwAKcXEACnFzAApxdQAKcXYACnF5AApxkgAKca8ACnGyAApxtQAKcbgACnG7AApxvgAKccEACnHEAApx4QAKceQACnHnAApx6gAKce0ACnHwAApx8wAKcfYACnH4AApycwAKcnUACnJ4AApyegAKcn0ACnJ+AApyfwAKcoAACnKBAApygwAKcoYACnKHAApyiAAKcooACnKLAApzBgAKcwgACnMLAApzDQAKcxAACnMRAApzEgAKcxMACnMUAApzFgAKcxkACnMaAApzGwAKcx0ACnMeAApzmQAKc5sACnOeAApzoAAKc6MACnOkAApzpQAKc6YACnOnAApzqQAKc6wACnOtAApzrgAKc7AACnOxAAp0LAAKdC4ACnQxAAp0MwAKdDYACnQ3AAp0OAAKdDkACnQ6AAp0PAAKdD8ACnRAAAp0QQAKdEMACnREAAp0vwAKdMEACnTDAAp0xQAKdMgACnTJAAp0ygAKdMsACnTMAAp0zgAKdNEACnTSAAp00wAKdNUACnTWAAp1UQAKdVMACnVVAAp1VwAKdVoACnVbAAp1XAAKdV0ACnVeAAp1YAAKdWMACnVkAAp1ZQAKdWcACnVoAAp14wAKdeUACnXoAAp16gAKde0ACnXuAAp17wAKdfAACnXxAAp18wAKdfYACnX3AAp1+AAKdfoACnX7AAp2jgAKdrEACnbRAAp28QAKdvMACnb1AAp29wAKdvkACnb8AAp2/QAKdv4ACncBAAp3AgAKdwQACncFAAp3BwAKdwoACncLAAp3DAAKdw8ACncQAAp3FQAKdy4ACnc3AAp3OQAKdzsACndEAAp3RwAKd0oACndMAAp3lQAKd7kACnfgAAp4BAAKeAcACngJAAp4CwAKeA0ACngPAAp4EQAKeBIACngVAAp4LgAKeE8ACnhRAAp4UwAKeFUACnhXAAp4WQAKeFsACnhdAAp4XwAKeIAACniDAAp4hgAKeIkACniMAAp4jwAKeJIACniVAAp4mAAKeJoACnkVAAp5FwAKeRkACnkbAAp5HgAKeR8ACnkgAAp5IQAKeSIACnkkAAp5JgAKeScACnkoAAp5KgAKeSsACnmmAAp5qAAKeaoACnmsAAp5rwAKebAACnmxAAp5sgAKebMACnm1AAp5twAKebgACnm5AAp5uwAKebwACno3AAp6OQAKejwACno+AAp6QQAKekIACnpDAAp6RAAKekUACnpHAAp6SQAKekoACnpLAAp6TQAKek4ACnpnAAp6aAAKemkACnprAAp65gAKeugACnrqAAp67AAKeu8ACnrwAAp68QAKevIACnrzAAp69QAKevcACnr4AAp6+QAKevsACnr8AAp7dwAKe3kACnt7AAp7fQAKe4AACnuBAAp7ggAKe4MACnuEAAp7hgAKe4gACnuJAAp7igAKe4wACnuNAAp8CAAKfAoACnwMAAp8DgAKfBEACnwSAAp8EwAKfBQACnwVAAp8FwAKfBkACnwaAAp8GwAKfB0ACnweAAp8mQAKfJsACnydAAp8nwAKfKIACnyjAAp8pAAKfKUACnymAAp8qAAKfKoACnyrAAp8rAAKfK4ACnyvAAp9KgAKfSwACn0uAAp9MAAKfTMACn00AAp9NQAKfTYACn03AAp9OQAKfTsACn08AAp9PQAKfT8ACn1AAAp9iQAKfa0ACn3UAAp9+AAKffsACn39AAp9/wAKfgEACn4DAAp+BQAKfgYACn4JAAp+IgAKfj8ACn5BAAp+QwAKfkUACn5HAAp+SQAKfksACn5NAAp+agAKfm0ACn5wAAp+cwAKfnYACn55AAp+fAAKfn8ACn6BAAp+/AAKfv4ACn8AAAp/AgAKfwUACn8GAAp/BwAKfwgACn8JAAp/CwAKfw0ACn8OAAp/DwAKfxEACn8SAAp/jQAKf48ACn+RAAp/kwAKf5YACn+XAAp/mAAKf5kACn+aAAp/nAAKf54ACn+fAAp/oAAKf6IACn+jAAqAHgAKgCAACoAiAAqAJAAKgCcACoAoAAqAKQAKgCoACoArAAqALQAKgC8ACoAwAAqAMQAKgDMACoA0AAqArwAKgLEACoC0AAqAtgAKgLkACoC6AAqAuwAKgLwACoC9AAqAvwAKgMEACoDCAAqAwwAKgMUACoDGAAqBQQAKgUMACoFFAAqBRwAKgUoACoFLAAqBTAAKgU0ACoFOAAqBUAAKgVIACoFTAAqBVAAKgVYACoFXAAqB0gAKgdQACoHWAAqB2AAKgdsACoHcAAqB3QAKgd4ACoHfAAqB4QAKgeMACoHkAAqB5QAKgecACoHoAAqCYwAKgmUACoJnAAqCaQAKgmwACoJtAAqCbgAKgm8ACoJwAAqCcgAKgnQACoJ1AAqCdgAKgngACoJ5AAqCigAKgosACoKNAAqDCAAKgwoACoMMAAqDDgAKgxEACoMSAAqDEwAKgxQACoMVAAqDFwAKgxoACoMbAAqDHAAKgx4ACoMfAAqDmgAKg5wACoOeAAqDoAAKg6MACoOkAAqDpQAKg6YACoOnAAqDqQAKg6wACoOtAAqDrgAKg7AACoOxAAqELAAKhC4ACoQxAAqEMwAKhDYACoQ3AAqEOAAKhDkACoQ6AAqEPAAKhD8ACoRAAAqEQQAKhEMACoREAAqE1wAKhPoACoUaAAqFOgAKhTwACoU+AAqFQAAKhUIACoVFAAqFRgAKhUcACoVKAAqFSwAKhU0ACoVOAAqFUQAKhVQACoVVAAqFVgAKhVkACoVaAAqFXwAKhXgACoWBAAqFgwAKhYYACoWPAAqFkgAKhZUACoWXAAqF4AAKhgQACoYrAAqGTwAKhlIACoZUAAqGVgAKhlgACoZaAAqGXAAKhl0ACoZgAAqGeQAKhpoACoacAAqGngAKhqAACoaiAAqGpAAKhqYACoaoAAqGqgAKhssACobOAAqG0QAKhtQACobXAAqG2gAKht0ACobgAAqG4wAKhuUACodgAAqHYgAKh2QACodmAAqHaQAKh2oACodrAAqHbAAKh20ACodvAAqHcQAKh3IACodzAAqHdQAKh3YACofxAAqH8wAKh/UACof3AAqH+gAKh/sACof8AAqH/QAKh/4ACogAAAqIAgAKiAMACogEAAqIBgAKiAcACoiCAAqIhAAKiIcACoiJAAqIjAAKiI0ACoiOAAqIjwAKiJAACoiSAAqIlAAKiJUACoiWAAqImAAKiJkACoiyAAqIswAKiLQACoi2AAqJMQAKiTMACok1AAqJNwAKiToACok7AAqJPAAKiT0ACok+AAqJQAAKiUIAColDAAqJRAAKiUYAColHAAqJwgAKicQAConGAAqJyAAKicsAConMAAqJzQAKic4AConPAAqJ0QAKidMAConUAAqJ1QAKidcAConYAAqKUwAKilUACopXAAqKWQAKilwACopdAAqKXgAKil8ACopgAAqKYgAKimQACoplAAqKZgAKimgACoppAAqK5AAKiuYACoroAAqK6gAKiu0ACoruAAqK7wAKivAACorxAAqK8wAKivUACor2AAqK9wAKivkACor6AAqLdQAKi3cACot5AAqLewAKi34ACot/AAqLgAAKi4EACouCAAqLhAAKi4YACouHAAqLiAAKi4oACouLAAqL1AAKi/gACowfAAqMQwAKjEYACoxJAAqMSwAKjE0ACoxPAAqMUQAKjFIACoxVAAqMbgAKjIsACoyOAAqMkQAKjJQACoyXAAqMmgAKjJ0ACoygAAqMvQAKjMAACozDAAqMxgAKjMkACozMAAqMzwAKjNIACozUAAqNTwAKjVEACo1UAAqNVgAKjVkACo1aAAqNWwAKjVwACo1dAAqNXwAKjWIACo1jAAqNZAAKjWYACo1nAAqN4gAKjeQACo3nAAqN6QAKjewACo3tAAqN7gAKje8ACo3wAAqN8gAKjfUACo32AAqN9wAKjfkACo36AAqOdQAKjncACo56AAqOfAAKjn8ACo6AAAqOgQAKjoIACo6DAAqOhQAKjogACo6JAAqOigAKjowACo6NAAqPCAAKjwoACo8NAAqPDwAKjxIACo8TAAqPFAAKjxUACo8WAAqPGAAKjxsACo8cAAqPHQAKjx8ACo8gAAqPowAKj8cACo/rAAqQDgAKkDUACpBVAAqQfAAKkKMACpDDAAqQ5wAKkQsACpENAAqREAAKkRIACpEUAAqRFgAKkRkACpEcAAqRHgAKkSAACpEjAAqRJQAKkScACpEqAAqRLQAKkS4ACpE3AAqRUAAKkVUACpFXAAqRXAAKkV8ACpFhAAqRqgAKkc4ACpH1AAqSGQAKkhwACpIeAAqSIAAKkiIACpIkAAqSJgAKkicACpIqAAqSQwAKkmgACpJqAAqSbAAKkm4ACpJwAAqScgAKknQACpJ2AAqSeAAKknoACpKfAAqSogAKkqUACpKoAAqSqwAKkq4ACpKxAAqStAAKkrcACpK6AAqSvAAKkzcACpM5AAqTPAAKkz4ACpNBAAqTQgAKk0MACpNEAAqTRQAKk0cACpNJAAqTSgAKk0sACpNNAAqTTgAKk18ACpNgAAqTYgAKk90ACpPfAAqT4QAKk+MACpPmAAqT5wAKk+gACpPpAAqT6gAKk+wACpPuAAqT7wAKk/AACpPyAAqT8wAKlG4ACpRwAAqUcwAKlHUACpR4AAqUeQAKlHoACpR7AAqUfAAKlH4ACpSAAAqUgQAKlIIACpSEAAqUhQAKlJYACpSXAAqUmQAKlRQACpUWAAqVGAAKlRoACpUdAAqVHgAKlR8ACpUgAAqVIQAKlSMACpUlAAqVJgAKlScACpUpAAqVKgAKlaUACpWnAAqVqgAKlawACpWvAAqVsAAKlbEACpWyAAqVswAKlbUACpW3AAqVuAAKlbkACpW7AAqVvAAKlc0ACpXOAAqV0AAKlksACpZNAAqWTwAKllEACpZUAAqWVQAKllYACpZXAAqWWAAKlloACpZcAAqWXQAKll4ACpZgAAqWYQAKltwACpbeAAqW4QAKluMACpbmAAqW5wAKlugACpbpAAqW6gAKluwACpbuAAqW7wAKlvAACpbyAAqW8wAKlwwACpcNAAqXDgAKlxAACpeLAAqXjQAKl48ACpeRAAqXlAAKl5UACpeWAAqXlwAKl5gACpeaAAqXnAAKl50ACpeeAAqXoAAKl6EACpgcAAqYHgAKmCEACpgjAAqYJgAKmCcACpgoAAqYKQAKmCoACpgsAAqYLgAKmC8ACpgwAAqYMgAKmDMACphVAAqYbgAKmHMACph2AAqYewAKmH4ACpiAAAqYkgAKmSUACplIAAqZaAAKmYgACpmKAAqZjAAKmY4ACpmQAAqZkwAKmZQACpmVAAqZmAAKmZkACpmbAAqZnAAKmZ8ACpmiAAqZowAKmaQACpmnAAqZqAAKmbEACpnKAAqZ0wAKmdUACpnYAAqZ4QAKmeQACpnnAAqZ6QAKmjIACppWAAqafQAKmqEACpqkAAqapgAKmqgACpqqAAqarAAKmq4ACpqvAAqasgAKmssACprsAAqa7gAKmvAACpryAAqa9AAKmvYACpr4AAqa+gAKmvwACpsdAAqbIAAKmyMACpsmAAqbKQAKmywACpsvAAqbMgAKmzUACps3AAqbsgAKm7QACpu2AAqbuAAKm7sACpu8AAqbvQAKm74ACpu/AAqbwQAKm8MACpvEAAqbxQAKm8cACpvIAAqcQwAKnEUACpxHAAqcSQAKnEwACpxNAAqcTgAKnE8ACpxQAAqcUgAKnFQACpxVAAqcVgAKnFgACpxZAAqc1AAKnNYACpzZAAqc2wAKnN4ACpzfAAqc4AAKnOEACpziAAqc5AAKnOYACpznAAqc6AAKnOoACpzrAAqdBAAKnQUACp0GAAqdCAAKnYMACp2FAAqdhwAKnYkACp2MAAqdjQAKnY4ACp2PAAqdkAAKnZIACp2UAAqdlQAKnZYACp2YAAqdmQAKnhQACp4WAAqeGAAKnhoACp4dAAqeHgAKnh8ACp4gAAqeIQAKniMACp4lAAqeJgAKnicACp4pAAqeKgAKnqUACp6nAAqeqQAKnqsACp6uAAqerwAKnrAACp6xAAqesgAKnrQACp62AAqetwAKnrgACp66AAqeuwAKnzYACp84AAqfOgAKnzwACp8/AAqfQAAKn0EACp9CAAqfQwAKn0UACp9HAAqfSAAKn0kACp9LAAqfTAAKn8cACp/JAAqfywAKn80ACp/QAAqf0QAKn9IACp/TAAqf1AAKn9YACp/YAAqf2QAKn9oACp/cAAqf3QAKoCYACqBKAAqgcQAKoJUACqCYAAqgmwAKoJ0ACqCfAAqgoQAKoKMACqCkAAqgpwAKoMAACqDdAAqg4AAKoOMACqDmAAqg6QAKoOwACqDvAAqg8gAKoQ8ACqESAAqhFQAKoRgACqEbAAqhHgAKoSEACqEkAAqhJgAKoaEACqGjAAqhpgAKoagACqGrAAqhrAAKoa0ACqGuAAqhrwAKobEACqG0AAqhtQAKobYACqG4AAqhuQAKojQACqI2AAqiOQAKojsACqI+AAqiPwAKokAACqJBAAqiQgAKokQACqJHAAqiSAAKokkACqJLAAqiTAAKoscACqLJAAqizAAKos4ACqLRAAqi0gAKotMACqLUAAqi1QAKotcACqLaAAqi2wAKotwACqLeAAqi3wAKo1oACqNcAAqjXwAKo2EACqNkAAqjZQAKo2YACqNnAAqjaAAKo2oACqNtAAqjbgAKo28ACqNxAAqjcgAKo+0ACqPvAAqj8QAKo/MACqP2AAqj9wAKo/gACqP5AAqj+gAKo/wACqP/AAqkAAAKpAEACqQDAAqkBAAKpH8ACqSBAAqkgwAKpIUACqSIAAqkiQAKpIoACqSLAAqkjAAKpI4ACqSRAAqkkgAKpJMACqSVAAqklgAKpREACqUTAAqlFgAKpRgACqUbAAqlHAAKpR0ACqUeAAqlHwAKpSEACqUkAAqlJQAKpSYACqUoAAqlKQAKpToACqU/AAqlQgAKpUQACqV9AAqlgAAKpYIACqWFAAqliAAKpYsACqWOAAqllwAKpjoACqZeAAqmggAKpqIACqbJAAqm8AAKpxAACqc3AAqnWwAKp34ACqelAAqnyQAKp+0ACqgRAAqoOAAKqDkACqg7AAqoPQAKqEAACqhCAAqoRQAKqEcACqhJAAqoTAAKqE4ACqhQAAqoUwAKqFYACqhYAAqoWgAKqFwACqhfAAqoYgAKqGUACqhqAAqogwAKqIgACqiKAAqojwAKqJIACqiUAAqo3QAKqQEACqkoAAqpTAAKqU8ACqlRAAqpUwAKqVUACqlXAAqpWQAKqVoACqldAAqpdgAKqZsACqmdAAqpnwAKqaEACqmjAAqppQAKqacACqmpAAqpqwAKqa0ACqnSAAqp1QAKqdgACqnbAAqp3gAKqeEACqnkAAqp5wAKqeoACqntAAqp7wAKqmoACqpsAAqqbwAKqnEACqp0AAqqdQAKqnYACqp3AAqqeAAKqnoACqp8AAqqfQAKqn4ACqqAAAqqgQAKqpIACqqTAAqqlQAKqxAACqsSAAqrFAAKqxYACqsZAAqrGgAKqxsACqscAAqrHQAKqx8ACqshAAqrIgAKqyMACqslAAqrJgAKq6EACqujAAqrpgAKq6gACqurAAqrrAAKq60ACquuAAqrrwAKq7EACquzAAqrtAAKq7UACqu3AAqruAAKq8kACqvKAAqrzAAKrEcACqxJAAqsSwAKrE0ACqxQAAqsUQAKrFIACqxTAAqsVAAKrFYACqxYAAqsWQAKrFoACqxcAAqsXQAKrNgACqzaAAqs3QAKrN8ACqziAAqs4wAKrOQACqzlAAqs5gAKrOgACqzqAAqs6wAKrOwACqzuAAqs7wAKrQAACq0BAAqtAwAKrX4ACq2AAAqtggAKrYQACq2HAAqtiAAKrYkACq2KAAqtiwAKrY0ACq2PAAqtkAAKrZEACq2TAAqtlAAKrg8ACq4RAAquFAAKrhYACq4ZAAquGgAKrhsACq4cAAquHQAKrh8ACq4hAAquIgAKriMACq4lAAquJgAKrj8ACq5AAAquQQAKrkMACq6+AAquwAAKrsIACq7EAAquxwAKrsgACq7JAAquygAKrssACq7NAAquzwAKrtAACq7RAAqu0wAKrtQACq9PAAqvUQAKr1QACq9WAAqvWQAKr1oACq9bAAqvXAAKr10ACq9fAAqvYQAKr2IACq9jAAqvZQAKr2YACq9/AAqvmAAKr60ACq+wAAqvswAKr7YACq+5AAqvvAAKr9EACq/UAAqv1wAKr9oACq/dAAqv4AAKr+IACq/wAAqwCAAKsB4ACrA+AAqw0QAKsPQACrEUAAqxNAAKsTYACrE4AAqxOgAKsTwACrE/AAqxQAAKsUEACrFEAAqxRQAKsUcACrFIAAqxSgAKsU0ACrFOAAqxTwAKsVIACrFTAAqxWAAKsXEACrF6AAqxfAAKsX4ACrGHAAqxigAKsY0ACrGPAAqx2AAKsfwACrIjAAqyRwAKskoACrJMAAqyTgAKslAACrJSAAqyVAAKslUACrJYAAqycQAKspIACrKUAAqylgAKspgACrKaAAqynAAKsp4ACrKgAAqyogAKssMACrLGAAqyyQAKsswACrLPAAqy0gAKstUACrLYAAqy2wAKst0ACrNYAAqzWgAKs1wACrNeAAqzYQAKs2IACrNjAAqzZAAKs2UACrNnAAqzaQAKs2oACrNrAAqzbQAKs24ACrPpAAqz6wAKs+0ACrPvAAqz8gAKs/MACrP0AAqz9QAKs/YACrP4AAqz+gAKs/sACrP8AAqz/gAKs/8ACrR6AAq0fAAKtH8ACrSBAAq0hAAKtIUACrSGAAq0hwAKtIgACrSKAAq0jAAKtI0ACrSOAAq0kAAKtJEACrSqAAq0qwAKtKwACrSuAAq1KQAKtSsACrUtAAq1LwAKtTIACrUzAAq1NAAKtTUACrU2AAq1OAAKtToACrU7AAq1PAAKtT4ACrU/AAq1ugAKtbwACrW+AAq1wAAKtcMACrXEAAq1xQAKtcYACrXHAAq1yQAKtcsACrXMAAq1zQAKtc8ACrXQAAq2SwAKtk0ACrZPAAq2UQAKtlQACrZVAAq2VgAKtlcACrZYAAq2WgAKtlwACrZdAAq2XgAKtmAACrZhAAq23AAKtt4ACrbgAAq24gAKtuUACrbmAAq25wAKtugACrbpAAq26wAKtu0ACrbuAAq27wAKtvEACrbyAAq3bQAKt28ACrdxAAq3cwAKt3YACrd3AAq3eAAKt3kACrd6AAq3fAAKt34ACrd/AAq3gAAKt4IACreDAAq3zAAKt/AACrgXAAq4OwAKuD4ACrhAAAq4QgAKuEQACrhGAAq4SAAKuEkACrhMAAq4ZQAKuIIACriEAAq4hgAKuIgACriKAAq4jAAKuI4ACriQAAq4rQAKuLAACrizAAq4tgAKuLkACri8AAq4vwAKuMIACrjEAAq5PwAKuUEACrlDAAq5RQAKuUgACrlJAAq5SgAKuUsACrlMAAq5TgAKuVAACrlRAAq5UgAKuVQACrlVAAq50AAKudIACrnUAAq51gAKudkACrnaAAq52wAKudwACrndAAq53wAKueEACrniAAq54wAKueUACrnmAAq6YQAKumMACrplAAq6ZwAKumoACrprAAq6bAAKum0ACrpuAAq6cAAKunIACrpzAAq6dAAKunYACrp3AAq68gAKuvQACrr2AAq6+AAKuvsACrr8AAq6/QAKuv4ACrr/AAq7AQAKuwMACrsEAAq7BQAKuwcACrsIAAq7gwAKu4UACruHAAq7iQAKu4wACruNAAq7jgAKu48ACruQAAq7kgAKu5QACruVAAq7lgAKu5gACruZAAq8FAAKvBYACrwYAAq8GgAKvB0ACrweAAq8HwAKvCAACrwhAAq8IwAKvCUACrwmAAq8JwAKvCkACrwqAAq8pQAKvKcACrypAAq8qwAKvK4ACryvAAq8sAAKvLEACryyAAq8tAAKvLYACry3AAq8uAAKvLoACry7AAq9TgAKvXEACr2RAAq9sQAKvbMACr21AAq9twAKvbkACr28AAq9vQAKvb4ACr3BAAq9wgAKvcQACr3FAAq9xwAKvcoACr3LAAq9zAAKvc8ACr3QAAq91QAKve4ACr33AAq9+QAKvfsACr4EAAq+BwAKvgoACr4MAAq+VQAKvnkACr6gAAq+xAAKvscACr7JAAq+ywAKvs0ACr7PAAq+0QAKvtIACr7VAAq+7gAKvw8ACr8RAAq/EwAKvxUACr8XAAq/GQAKvxsACr8dAAq/HwAKv0AACr9DAAq/RgAKv0kACr9MAAq/TwAKv1IACr9VAAq/WAAKv1oACr/VAAq/1wAKv9kACr/bAAq/3gAKv98ACr/gAAq/4QAKv+IACr/kAAq/5gAKv+cACr/oAAq/6gAKv+sACsBmAArAaAAKwGoACsBsAArAbwAKwHAACsBxAArAcgAKwHMACsB1AArAdwAKwHgACsB5AArAewAKwHwACsD3AArA+QAKwPwACsD+AArBAQAKwQIACsEDAArBBAAKwQUACsEHAArBCQAKwQoACsELAArBDQAKwQ4ACsEnAArBKAAKwSkACsErAArBpgAKwagACsGqAArBrAAKwa8ACsGwAArBsQAKwbIACsGzAArBtQAKwbcACsG4AArBuQAKwbsACsG8AArCNwAKwjkACsI7AArCPQAKwkAACsJBAArCQgAKwkMACsJEAArCRgAKwkgACsJJAArCSgAKwkwACsJNAArCyAAKwsoACsLMAArCzgAKwtEACsLSAArC0wAKwtQACsLVAArC1wAKwtkACsLaAArC2wAKwt0ACsLeAArDWQAKw1sACsNdAArDXwAKw2IACsNjAArDZAAKw2UACsNmAArDaAAKw2oACsNrAArDbAAKw24ACsNvAArD6gAKw+wACsPuAArD8AAKw/MACsP0AArD9QAKw/YACsP3AArD+QAKw/sACsP8AArD/QAKw/8ACsQAAArESQAKxG0ACsSUAArEuAAKxLsACsS9AArEvwAKxMEACsTDAArExQAKxMYACsTJAArE4gAKxP8ACsUBAArFAwAKxQUACsUHAArFCQAKxQsACsUNAArFKgAKxS0ACsUwAArFMwAKxTYACsU5AArFPAAKxT8ACsVBAArFvAAKxb4ACsXAAArFwgAKxcUACsXGAArFxwAKxcgACsXJAArFywAKxc0ACsXOAArFzwAKxdEACsXSAArGTQAKxk8ACsZRAArGUwAKxlYACsZXAArGWAAKxlkACsZaAArGXAAKxl4ACsZfAArGYAAKxmIACsZjAArG3gAKxuAACsbiAArG5AAKxucACsboAArG6QAKxuoACsbrAArG7QAKxu8ACsbwAArG8QAKxvMACsb0AArHbwAKx3EACsd0AArHdgAKx3kACsd6AArHewAKx3wACsd9AArHfwAKx4EACseCAArHgwAKx4UACseGAArIAQAKyAMACsgFAArIBwAKyAoACsgLAArIDAAKyA0ACsgOAArIEAAKyBIACsgTAArIFAAKyBYACsgXAArIkgAKyJQACsiWAArImAAKyJsACsicAArInQAKyJ4ACsifAArIoQAKyKMACsikAArIpQAKyKcACsioAArJIwAKySUACsknAArJKQAKySwACsktAArJLgAKyS8ACskwAArJMgAKyTQACsk1AArJNgAKyTgACsk5AArJzAAKye8ACsoPAArKLwAKyjEACsozAArKNQAKyjcACso6AArKOwAKyjwACso/AArKQAAKykIACspDAArKRQAKykgACspJAArKSgAKyk0ACspOAArKUwAKymwACsp1AArKdwAKynkACsqCAArKhQAKyogACsqKAArK0wAKyvcACsseAArLQgAKy0UACstHAArLSQAKy0sACstNAArLTwAKy1AACstTAArLbAAKy40ACsuPAArLkQAKy5MACsuVAArLlwAKy5kACsubAArLnQAKy74ACsvBAArLxAAKy8cACsvKAArLzQAKy9AACsvTAArL1gAKy9gACsxTAArMVQAKzFcACsxZAArMXAAKzF0ACsxeAArMXwAKzGAACsxiAArMZAAKzGUACsxmAArMaAAKzGkACszkAArM5gAKzOgACszqAArM7QAKzO4ACszvAArM8AAKzPEACszzAArM9QAKzPYACsz3AArM+QAKzPoACs11AArNdwAKzXoACs18AArNfwAKzYAACs2BAArNggAKzYMACs2FAArNhwAKzYgACs2JAArNiwAKzYwACs2lAArNpgAKzacACs2pAArOJAAKziYACs4oAArOKgAKzi0ACs4uAArOLwAKzjAACs4xAArOMwAKzjUACs42AArONwAKzjkACs46AArOtQAKzrcACs65AArOuwAKzr4ACs6/AArOwAAKzsEACs7CAArOxAAKzsYACs7HAArOyAAKzsoACs7LAArPRgAKz0gACs9KAArPTAAKz08ACs9QAArPUQAKz1IACs9TAArPVQAKz1cACs9YAArPWQAKz1sACs9cAArP1wAKz9kACs/bAArP3QAKz+AACs/hAArP4gAKz+MACs/kAArP5gAKz+gACs/pAArP6gAKz+wACs/tAArQaAAK0GoACtBsAArQbgAK0HEACtByAArQcwAK0HQACtB1AArQdwAK0HkACtB6AArQewAK0H0ACtB+AArQxwAK0OsACtESAArRNgAK0TkACtE7AArRPQAK0T8ACtFBAArRQwAK0UQACtFHAArRYAAK0X0ACtF/AArRgQAK0YMACtGFAArRhwAK0YkACtGLAArRqAAK0asACtGuAArRsQAK0bQACtG3AArRugAK0b0ACtG/AArSOgAK0jwACtI+AArSQAAK0kMACtJEAArSRQAK0kYACtJHAArSSQAK0ksACtJMAArSTQAK0k8ACtJQAArSywAK0s0ACtLPAArS0QAK0tQACtLVAArS1gAK0tcACtLYAArS2gAK0twACtLdAArS3gAK0uAACtLhAArTXAAK014ACtNgAArTYgAK02UACtNmAArTZwAK02gACtNpAArTawAK020ACtNuAArTbwAK03EACtNyAArT7QAK0+8ACtPyAArT9AAK0/cACtP4AArT+QAK0/oACtP7AArT/QAK0/8ACtQAAArUAQAK1AMACtQEAArUfwAK1IEACtSDAArUhQAK1IgACtSJAArUigAK1IsACtSMAArUjgAK1JAACtSRAArUkgAK1JQACtSVAArVEAAK1RIACtUUAArVFgAK1RkACtUaAArVGwAK1RwACtUdAArVHwAK1SEACtUiAArVIwAK1SUACtUmAArVoQAK1aMACtWlAArVpwAK1aoACtWrAArVrAAK1a0ACtWuAArVsAAK1bIACtWzAArVtAAK1bYACtW3AArWSgAK1m0ACtaNAArWrQAK1q8ACtaxAArWswAK1rUACta4AArWuQAK1roACta9AArWvgAK1sAACtbBAArWwwAK1sYACtbHAArWyAAK1ssACtbMAArW1QAK1u4ACtb3AArW+QAK1vsACtcEAArXBwAK1woACtcMAArXVQAK13kACtegAArXxAAK18cACtfJAArXywAK180ACtfPAArX0QAK19IACtfVAArX7gAK2A8ACtgRAArYEwAK2BUACtgXAArYGQAK2BsACtgdAArYHwAK2EAACthDAArYRgAK2EkACthMAArYTwAK2FIACthVAArYWAAK2FoACtjVAArY1wAK2NkACtjbAArY3gAK2N8ACtjgAArY4QAK2OIACtjkAArY5gAK2OcACtjoAArY6gAK2OsACtlmAArZaAAK2WoACtlsAArZbwAK2XAACtlxAArZcgAK2XMACtl1AArZdwAK2XgACtl5AArZewAK2XwACtn3AArZ+QAK2fwACtn+AAraAQAK2gIACtoDAAraBAAK2gUACtoHAAraCQAK2goACtoLAAraDQAK2g4ACtonAAraKAAK2ikACtorAArapgAK2qgACtqqAArarAAK2q8ACtqwAArasQAK2rIACtqzAAratQAK2rcACtq4AArauQAK2rsACtq8AArbNwAK2zkACts7AArbPQAK20AACttBAArbQgAK20MACttEAArbRgAK20gACttJAArbSgAK20wACttNAArbyAAK28oACtvMAArbzgAK29EACtvSAArb0wAK29QACtvVAArb1wAK29kACtvaAArb2wAK290ACtveAArcWQAK3FsACtxdAArcXwAK3GIACtxjAArcZAAK3GUACtxmAArcaAAK3GoACtxrAArcbAAK3G4ACtxvAArc6gAK3OwACtzuAArc8AAK3PMACtz0AArc9QAK3PYACtz3AArc+QAK3PsACtz8AArc/QAK3P8ACt0AAArdSQAK3W0ACt2UAArduAAK3bsACt29AArdvwAK3cEACt3DAArdxQAK3cYACt3JAArd4gAK3f8ACt4BAAreAwAK3gUACt4HAAreCQAK3gsACt4NAAreKgAK3i0ACt4wAAreMwAK3jYACt45AArePAAK3j8ACt5BAArevAAK3r4ACt7AAArewgAK3sUACt7GAArexwAK3sgACt7JAAreywAK3s0ACt7OAArezwAK3tEACt7SAArfTQAK308ACt9RAArfUwAK31YACt9XAArfWAAK31kACt9aAArfXAAK314ACt9fAArfYAAK32IACt9jAArf3gAK3+AACt/iAArf5AAK3+cACt/oAArf6QAK3+oACt/rAArf7QAK3+8ACt/wAArf8QAK3/MACt/0AArgbwAK4HEACuB0AArgdgAK4HkACuB6AArgewAK4HwACuB9AArgfwAK4IEACuCCAArggwAK4IUACuCGAArhAQAK4QMACuEFAArhBwAK4QoACuELAArhDAAK4Q0ACuEOAArhEAAK4RIACuETAArhFAAK4RYACuEXAArhkgAK4ZQACuGWAArhmAAK4ZsACuGcAArhnQAK4Z4ACuGfAArhoQAK4aMACuGkAArhpQAK4acACuGoAAriIwAK4iUACuInAAriKQAK4iwACuItAAriLgAK4i8ACuIwAAriMgAK4jQACuI1AAriNgAK4jgACuI5AArizAAK4u8ACuMPAArjLwAK4zEACuMzAArjNQAK4zcACuM6AArjOwAK4zwACuM/AArjQAAK40IACuNDAArjRQAK40gACuNJAArjSgAK400ACuNOAArjUwAK42wACuN1AArjdwAK43kACuOCAArjhQAK44gACuOKAArj0wAK4/cACuQeAArkQgAK5EUACuRHAArkSQAK5EsACuRNAArkTwAK5FAACuRTAArkbAAK5I0ACuSPAArkkQAK5JMACuSVAArklwAK5JkACuSbAArknQAK5L4ACuTBAArkxAAK5McACuTKAArkzQAK5NAACuTTAArk1gAK5NgACuVTAArlVQAK5VcACuVZAArlXAAK5V0ACuVeAArlXwAK5WAACuViAArlZAAK5WUACuVmAArlaAAK5WkACuXkAArl5gAK5egACuXqAArl7QAK5e4ACuXvAArl8AAK5fEACuXzAArl9QAK5fYACuX3AArl+QAK5foACuZ1AArmdwAK5noACuZ8AArmfwAK5oAACuaBAArmggAK5oMACuaFAArmhwAK5ogACuaJAArmiwAK5owACualAArmpgAK5qcACuapAArnJAAK5yYACucoAArnKgAK5y0ACucuAArnLwAK5zAACucxAArnMwAK5zUACuc2AArnNwAK5zkACuc6AArntQAK57cACue5AArnuwAK574ACue/AArnwAAK58EACufCAArnxAAK58YACufHAArnyAAK58oACufLAAroRgAK6EgACuhKAAroTAAK6E8ACuhQAAroUQAK6FIACuhTAAroVQAK6FcACuhYAAroWQAK6FsACuhcAAro1wAK6NkACujbAAro3QAK6OAACujhAAro4gAK6OMACujkAAro5gAK6OgACujpAAro6gAK6OwACujtAArpaAAK6WoACulsAArpbgAK6XEACulyAArpcwAK6XQACul1AArpdwAK6XkACul6AArpewAK6X0ACul+AArpxwAK6esACuoSAArqNgAK6jkACuo7AArqPQAK6j8ACupBAArqQwAK6kQACupHAArqYAAK6n0ACup/AArqgQAK6oMACuqFAArqhwAK6okACuqLAArqqAAK6qsACuquAArqsQAK6rQACuq3AArqugAK6r0ACuq/AArrOgAK6zwACus+AArrQAAK60MACutEAArrRQAK60YACutHAArrSQAK60sACutMAArrTQAK608ACutQAArrywAK680ACuvPAArr0QAK69QACuvVAArr1gAK69cACuvYAArr2gAK69wACuvdAArr3gAK6+AACuvhAArsXAAK7F4ACuxgAArsYgAK7GUACuxmAArsZwAK7GgACuxpAArsawAK7G0ACuxuAArsbwAK7HEACuxyAArs7QAK7O8ACuzyAArs9AAK7PcACuz4AArs+QAK7PoACuz7AArs/QAK7P8ACu0AAArtAQAK7QMACu0EAArtfwAK7YEACu2DAArthQAK7YgACu2JAArtigAK7YsACu2MAArtjgAK7ZAACu2RAArtkgAK7ZQACu2VAAruEAAK7hIACu4UAAruFgAK7hkACu4aAAruGwAK7hwACu4dAAruHwAK7iEACu4iAAruIwAK7iUACu4mAAruoQAK7qMACu6lAArupwAK7qoACu6rAArurAAK7q0ACu6uAArusAAK7rIACu6zAArutAAK7rYACu63AAruyAAK7skACu7LAAru3AAK7uUACu7oAAru6wAK7u0ACu8mAArvKQAK7ysACu8uAArvMQAK7zQACu83AArvugAK794ACvACAArwJQAK8EwACvBsAArwkwAK8LoACvDaAArw/gAK8SIACvEkAArxJwAK8SkACvErAArxLQAK8TAACvEzAArxNQAK8TcACvE6AArxPAAK8T4ACvFBAArxRAAK8UUACvFKAArxYwAK8WgACvFqAArxbwAK8XIACvF0AArxvQAK8eEACvIIAAryLAAK8i8ACvIxAAryMwAK8jUACvI3AAryOQAK8joACvI9AAryVgAK8nsACvJ9AAryfwAK8oEACvKDAAryhQAK8ocACvKJAAryiwAK8o0ACvKyAArytQAK8rgACvK7AAryvgAK8sEACvLEAAryxwAK8soACvLNAAryzwAK80oACvNMAArzTwAK81EACvNUAArzVQAK81YACvNXAArzWAAK81oACvNcAArzXQAK814ACvNgAArzYQAK83IACvNzAArzdQAK8/AACvPyAArz9AAK8/YACvP5AArz+gAK8/sACvP8AArz/QAK8/8ACvQBAAr0AgAK9AMACvQFAAr0BgAK9IEACvSDAAr0hgAK9IgACvSLAAr0jAAK9I0ACvSOAAr0jwAK9JEACvSTAAr0lAAK9JUACvSXAAr0mAAK9KkACvSqAAr0rAAK9ScACvUpAAr1KwAK9S0ACvUwAAr1MQAK9TIACvUzAAr1NAAK9TYACvU4AAr1OQAK9ToACvU8AAr1PQAK9bgACvW6AAr1vQAK9b8ACvXCAAr1wwAK9cQACvXFAAr1xgAK9cgACvXKAAr1ywAK9cwACvXOAAr1zwAK9eAACvXhAAr14wAK9l4ACvZgAAr2YgAK9mQACvZnAAr2aAAK9mkACvZqAAr2awAK9m0ACvZvAAr2cAAK9nEACvZzAAr2dAAK9u8ACvbxAAr29AAK9vYACvb5AAr2+gAK9vsACvb8AAr2/QAK9v8ACvcBAAr3AgAK9wMACvcFAAr3BgAK9x8ACvcgAAr3IQAK9yMACveeAAr3oAAK96IACvekAAr3pwAK96gACvepAAr3qgAK96sACvetAAr3rwAK97AACvexAAr3swAK97QACvgvAAr4MQAK+DQACvg2AAr4OQAK+DoACvg7AAr4PAAK+D0ACvg/AAr4QQAK+EIACvhDAAr4RQAK+EYACvhmAAr4fwAK+IQACviHAAr4jAAK+I8ACviRAAr4owAK+TYACvlZAAr5eQAK+ZkACvmbAAr5nQAK+Z8ACvmhAAr5pAAK+aUACvmmAAr5qQAK+aoACvmsAAr5rQAK+bAACvmzAAr5tAAK+bUACvm4AAr5uQAK+b4ACvnXAAr54AAK+eIACvnlAAr57gAK+fEACvn0AAr59gAK+j8ACvpjAAr6igAK+q4ACvqxAAr6swAK+rUACvq3AAr6uQAK+rsACvq8AAr6vwAK+tgACvr5AAr6+wAK+v0ACvr/AAr7AQAK+wMACvsFAAr7BwAK+wkACvsqAAr7LQAK+zAACvszAAr7NgAK+zkACvs8AAr7PwAK+0IACvtEAAr7vwAK+8EACvvDAAr7xQAK+8gACvvJAAr7ygAK+8sACvvMAAr7zgAK+9AACvvRAAr70gAK+9QACvvVAAr8UAAK/FIACvxUAAr8VgAK/FkACvxaAAr8WwAK/FwACvxdAAr8XwAK/GEACvxiAAr8YwAK/GUACvxmAAr84QAK/OMACvzmAAr86AAK/OsACvzsAAr87QAK/O4ACvzvAAr88QAK/PMACvz0AAr89QAK/PcACvz4AAr9EQAK/RIACv0TAAr9FQAK/ZAACv2SAAr9lAAK/ZYACv2ZAAr9mgAK/ZsACv2cAAr9nQAK/Z8ACv2hAAr9ogAK/aMACv2lAAr9pgAK/iEACv4jAAr+JQAK/icACv4qAAr+KwAK/iwACv4tAAr+LgAK/jAACv4yAAr+MwAK/jQACv42AAr+NwAK/rIACv60AAr+tgAK/rgACv67AAr+vAAK/r0ACv6+AAr+vwAK/sEACv7DAAr+xAAK/sUACv7HAAr+yAAK/0MACv9FAAr/RwAK/0kACv9MAAr/TQAK/04ACv9PAAr/UAAK/1IACv9UAAr/VQAK/1YACv9YAAr/WQAK/9QACv/WAAr/2AAK/9oACv/dAAr/3gAK/98ACv/gAAr/4QAK/+MACv/lAAr/5gAK/+cACv/pAAr/6gALADMACwBXAAsAfgALAKIACwClAAsAqAALAKoACwCsAAsArgALALAACwCxAAsAtAALAM0ACwDqAAsA7QALAPAACwDzAAsA9gALAPkACwD8AAsA/wALARwACwEfAAsBIgALASUACwEoAAsBKwALAS4ACwExAAsBMwALAa4ACwGwAAsBswALAbUACwG4AAsBuQALAboACwG7AAsBvAALAb4ACwHBAAsBwgALAcMACwHFAAsBxgALAkEACwJDAAsCRgALAkgACwJLAAsCTAALAk0ACwJOAAsCTwALAlEACwJUAAsCVQALAlYACwJYAAsCWQALAtQACwLWAAsC2QALAtsACwLeAAsC3wALAuAACwLhAAsC4gALAuQACwLnAAsC6AALAukACwLrAAsC7AALA2cACwNpAAsDbAALA24ACwNxAAsDcgALA3MACwN0AAsDdQALA3cACwN6AAsDewALA3wACwN+AAsDfwALA/oACwP8AAsD/gALBAAACwQDAAsEBAALBAUACwQGAAsEBwALBAkACwQMAAsEDQALBA4ACwQQAAsEEQALBIwACwSOAAsEkAALBJIACwSVAAsElgALBJcACwSYAAsEmQALBJsACwSeAAsEnwALBKAACwSiAAsEowALBR4ACwUgAAsFIwALBSUACwUoAAsFKQALBSoACwUrAAsFLAALBS4ACwUxAAsFMgALBTMACwU1AAsFNgALBckACwXsAAsGDAALBiwACwYuAAsGMAALBjIACwY0AAsGNwALBjgACwY5AAsGPAALBj0ACwY/AAsGQAALBkMACwZGAAsGRwALBkgACwZLAAsGTAALBlEACwZqAAsGcwALBnUACwZ4AAsGgQALBoQACwaHAAsGiQALBtIACwb2AAsHHQALB0EACwdEAAsHRgALB0gACwdKAAsHTAALB04ACwdPAAsHUgALB2sACweMAAsHjgALB5AACweSAAsHlAALB5YACweYAAsHmgALB5wACwe9AAsHwAALB8MACwfGAAsHyQALB8wACwfPAAsH0gALB9UACwfXAAsIUgALCFQACwhWAAsIWAALCFsACwhcAAsIXQALCF4ACwhfAAsIYQALCGMACwhkAAsIZQALCGcACwhoAAsI4wALCOUACwjnAAsI6QALCOwACwjtAAsI7gALCO8ACwjwAAsI8gALCPQACwj1AAsI9gALCPgACwj5AAsJdAALCXYACwl5AAsJewALCX4ACwl/AAsJgAALCYEACwmCAAsJhAALCYYACwmHAAsJiAALCYoACwmLAAsJpAALCaUACwmmAAsJqAALCiMACwolAAsKJwALCikACwosAAsKLQALCi4ACwovAAsKMAALCjIACwo0AAsKNQALCjYACwo4AAsKOQALCrQACwq2AAsKuAALCroACwq9AAsKvgALCr8ACwrAAAsKwQALCsMACwrFAAsKxgALCscACwrJAAsKygALC0UACwtHAAsLSQALC0sACwtOAAsLTwALC1AACwtRAAsLUgALC1QACwtWAAsLVwALC1gACwtaAAsLWwALC9YACwvYAAsL2gALC9wACwvfAAsL4AALC+EACwviAAsL4wALC+UACwvnAAsL6AALC+kACwvrAAsL7AALDGcACwxpAAsMawALDG0ACwxwAAsMcQALDHIACwxzAAsMdAALDHYACwx4AAsMeQALDHoACwx8AAsMfQALDMYACwzqAAsNEQALDTUACw04AAsNOwALDT0ACw0/AAsNQQALDUMACw1EAAsNRwALDWAACw19AAsNgAALDYMACw2GAAsNiQALDYwACw2PAAsNkgALDa8ACw2yAAsNtQALDbgACw27AAsNvgALDcEACw3EAAsNxgALDkEACw5DAAsORgALDkgACw5LAAsOTAALDk0ACw5OAAsOTwALDlEACw5UAAsOVQALDlYACw5YAAsOWQALDtQACw7WAAsO2QALDtsACw7eAAsO3wALDuAACw7hAAsO4gALDuQACw7nAAsO6AALDukACw7rAAsO7AALD2cACw9pAAsPbAALD24ACw9xAAsPcgALD3MACw90AAsPdQALD3cACw96AAsPewALD3wACw9+AAsPfwALD/oACw/8AAsP/wALEAEACxAEAAsQBQALEAYACxAHAAsQCAALEAoACxANAAsQDgALEA8ACxARAAsQEgALEI0ACxCPAAsQkQALEJMACxCWAAsQlwALEJgACxCZAAsQmgALEJwACxCfAAsQoAALEKEACxCjAAsQpAALER8ACxEhAAsRIwALESUACxEoAAsRKQALESoACxErAAsRLAALES4ACxExAAsRMgALETMACxE1AAsRNgALEbEACxGzAAsRtgALEbgACxG7AAsRvAALEb0ACxG+AAsRvwALEcEACxHEAAsRxQALEcYACxHIAAsRyQALEdoACxHfAAsR4gALEeQACxHpAAsSZAALEmYACxJoAAsSagALEm0ACxJuAAsSbwALEnAACxJxAAsScwALEnYACxJ3AAsSeAALEnoACxJ7AAsS9gALEvgACxL6AAsS/AALEv8ACxMAAAsTAQALEwIACxMDAAsTBQALEwgACxMJAAsTCgALEwwACxMNAAsTiAALE4oACxONAAsTjwALE5IACxOTAAsTlAALE5UACxOWAAsTmAALE5sACxOcAAsTnQALE58ACxOgAAsUMwALFFYACxR2AAsUlgALFJgACxSaAAsUnAALFJ4ACxShAAsUogALFKMACxSmAAsUpwALFKkACxSqAAsUrQALFLAACxSxAAsUsgALFLUACxS2AAsUuwALFNQACxTdAAsU3wALFOIACxTrAAsU7gALFPEACxTzAAsVPAALFWAACxWHAAsVqwALFa4ACxWwAAsVsgALFbQACxW2AAsVuAALFbkACxW8AAsV1QALFfYACxX4AAsV+gALFfwACxX+AAsWAAALFgIACxYEAAsWBgALFicACxYqAAsWLQALFjAACxYzAAsWNgALFjkACxY8AAsWPwALFkEACxa8AAsWvgALFsAACxbCAAsWxQALFsYACxbHAAsWyAALFskACxbLAAsWzQALFs4ACxbPAAsW0QALFtIACxdNAAsXTwALF1EACxdTAAsXVgALF1cACxdYAAsXWQALF1oACxdcAAsXXgALF18ACxdgAAsXYgALF2MACxfeAAsX4AALF+MACxflAAsX6AALF+kACxfqAAsX6wALF+wACxfuAAsX8AALF/EACxfyAAsX9AALF/UACxgOAAsYDwALGBAACxgSAAsYjQALGI8ACxiRAAsYkwALGJYACxiXAAsYmAALGJkACxiaAAsYnAALGJ4ACxifAAsYoAALGKIACxijAAsZHgALGSAACxkiAAsZJAALGScACxkoAAsZKQALGSoACxkrAAsZLQALGS8ACxkwAAsZMQALGTMACxk0AAsZrwALGbEACxmzAAsZtQALGbgACxm5AAsZugALGbsACxm8AAsZvgALGcAACxnBAAsZwgALGcQACxnFAAsaQAALGkIACxpEAAsaRgALGkkACxpKAAsaSwALGkwACxpNAAsaTwALGlEACxpSAAsaUwALGlUACxpWAAsa0QALGtMACxrVAAsa1wALGtoACxrbAAsa3AALGt0ACxreAAsa4AALGuIACxrjAAsa5AALGuYACxrnAAsbMAALG1QACxt7AAsbnwALG6IACxulAAsbpwALG6kACxurAAsbrQALG64ACxuxAAsbygALG+cACxvqAAsb7QALG/AACxvzAAsb9gALG/kACxv8AAscGQALHBwACxwfAAscIgALHCUACxwoAAscKwALHC4ACxwwAAscqwALHK0ACxywAAscsgALHLUACxy2AAsctwALHLgACxy5AAscuwALHL4ACxy/AAscwAALHMIACxzDAAsdPgALHUAACx1DAAsdRQALHUgACx1JAAsdSgALHUsACx1MAAsdTgALHVEACx1SAAsdUwALHVUACx1WAAsd0QALHdMACx3WAAsd2AALHdsACx3cAAsd3QALHd4ACx3fAAsd4QALHeQACx3lAAsd5gALHegACx3pAAseZAALHmYACx5pAAseawALHm4ACx5vAAsecAALHnEACx5yAAsedAALHncACx54AAseeQALHnsACx58AAse/wALHyMACx9HAAsfagALH5EACx+xAAsf2AALH/8ACyAfAAsgQwALIGcACyBpAAsgbAALIG4ACyBwAAsgcgALIHUACyB4AAsgegALIHwACyB/AAsggQALIIMACyCGAAsgiQALIIoACyCPAAsgqAALIK0ACyCvAAsgtAALILcACyC5AAshAgALISYACyFNAAshcQALIXQACyF2AAsheAALIXoACyF8AAshfgALIX8ACyGCAAshmwALIcAACyHCAAshxAALIcYACyHIAAshygALIcwACyHOAAsh0AALIdIACyH3AAsh+gALIf0ACyIAAAsiAwALIgYACyIJAAsiDAALIg8ACyISAAsiFAALIo8ACyKRAAsilAALIpYACyKZAAsimgALIpsACyKcAAsinQALIp8ACyKhAAsiogALIqMACyKlAAsipgALIrcACyK4AAsiugALIzUACyM3AAsjOQALIzsACyM+AAsjPwALI0AACyNBAAsjQgALI0QACyNGAAsjRwALI0gACyNKAAsjSwALI8YACyPIAAsjywALI80ACyPQAAsj0QALI9IACyPTAAsj1AALI9YACyPYAAsj2QALI9oACyPcAAsj3QALI+4ACyPvAAsj8QALJGwACyRuAAskcAALJHIACyR1AAskdgALJHcACyR4AAskeQALJHsACyR9AAskfgALJH8ACySBAAskggALJP0ACyT/AAslAgALJQQACyUHAAslCAALJQkACyUKAAslCwALJQ0ACyUPAAslEAALJREACyUTAAslFAALJSUACyUmAAslKAALJaMACyWlAAslpwALJakACyWsAAslrQALJa4ACyWvAAslsAALJbIACyW0AAsltQALJbYACyW4AAsluQALJjQACyY2AAsmOQALJjsACyY+AAsmPwALJkAACyZBAAsmQgALJkQACyZGAAsmRwALJkgACyZKAAsmSwALJmQACyZlAAsmZgALJmgACybjAAsm5QALJucACybpAAsm7AALJu0ACybuAAsm7wALJvAACybyAAsm9AALJvUACyb2AAsm+AALJvkACyd0AAsndgALJ3kACyd7AAsnfgALJ38ACyeAAAsngQALJ4IACyeEAAsnhgALJ4cACyeIAAsnigALJ4sACyeiAAsnuwALJ9gACyfbAAsn3gALJ+EACyfkAAsn5wALJ+oACyftAAsoCgALKA0ACygQAAsoEwALKBYACygZAAsoHAALKB8ACyghAAsoLgALKEgACyhQAAsoXwALKIUACyiqAAspPQALKWAACymAAAspoAALKaIACymkAAsppgALKagACymrAAsprAALKa0ACymwAAspsQALKbMACym0AAsptgALKbkACym6AAspuwALKb4ACym/AAspxAALKd0ACynmAAsp6AALKeoACynzAAsp9gALKfkACyn7AAsqRAALKmgACyqPAAsqswALKrYACyq4AAsqugALKrwACyq+AAsqwAALKsEACyrEAAsq3QALKv4ACysAAAsrAgALKwQACysGAAsrCAALKwoACysMAAsrDgALKy8ACysyAAsrNQALKzgACys7AAsrPgALK0EACytEAAsrRwALK0kACyvEAAsrxgALK8gACyvKAAsrzQALK84ACyvPAAsr0AALK9EACyvTAAsr1QALK9YACyvXAAsr2QALK9oACyxVAAssVwALLFkACyxbAAssXgALLF8ACyxgAAssYQALLGIACyxkAAssZgALLGcACyxoAAssagALLGsACyzmAAss6AALLOsACyztAAss8AALLPEACyzyAAss8wALLPQACyz2AAss+AALLPkACyz6AAss/AALLP0ACy0WAAstFwALLRgACy0aAAstlQALLZcACy2ZAAstmwALLZ4ACy2fAAstoAALLaEACy2iAAstpAALLaYACy2nAAstqAALLaoACy2rAAsuJgALLigACy4qAAsuLAALLi8ACy4wAAsuMQALLjIACy4zAAsuNQALLjcACy44AAsuOQALLjsACy48AAsutwALLrkACy67AAsuvQALLsAACy7BAAsuwgALLsMACy7EAAsuxgALLsgACy7JAAsuygALLswACy7NAAsvSAALL0oACy9MAAsvTgALL1EACy9SAAsvUwALL1QACy9VAAsvVwALL1kACy9aAAsvWwALL10ACy9eAAsv2QALL9sACy/dAAsv3wALL+IACy/jAAsv5AALL+UACy/mAAsv6AALL+oACy/rAAsv7AALL+4ACy/vAAswOAALMFwACzCDAAswpwALMKoACzCsAAswrgALMLAACzCyAAswtAALMLUACzC4AAsw0QALMO4ACzDwAAsw8gALMPQACzD2AAsw+AALMPoACzD8AAsxGQALMRwACzEfAAsxIgALMSUACzEoAAsxKwALMS4ACzEwAAsxqwALMa0ACzGvAAsxsQALMbQACzG1AAsxtgALMbcACzG4AAsxugALMbwACzG9AAsxvgALMcAACzHBAAsyPAALMj4ACzJAAAsyQgALMkUACzJGAAsyRwALMkgACzJJAAsySwALMk0ACzJOAAsyTwALMlEACzJSAAsyzQALMs8ACzLRAAsy0wALMtYACzLXAAsy2AALMtkACzLaAAsy3AALMt4ACzLfAAsy4AALMuIACzLjAAszXgALM2AACzNiAAszZAALM2cACzNoAAszaQALM2oACzNrAAszbQALM28ACzNwAAszcQALM3MACzN0AAsz7wALM/EACzPzAAsz9QALM/gACzP5AAsz+gALM/sACzP8AAsz/gALNAAACzQBAAs0AgALNAQACzQFAAs0gAALNIIACzSEAAs0hgALNIkACzSKAAs0iwALNIwACzSNAAs0jwALNJEACzSSAAs0kwALNJUACzSWAAs1EQALNRMACzUVAAs1FwALNRoACzUbAAs1HAALNR0ACzUeAAs1IAALNSIACzUjAAs1JAALNSYACzUnAAs1ugALNd0ACzX9AAs2HQALNh8ACzYhAAs2IwALNiUACzYoAAs2KQALNioACzYtAAs2LgALNjAACzYxAAs2MwALNjYACzY3AAs2OAALNjsACzY8AAs2RQALNl4ACzZnAAs2aQALNmsACzZ0AAs2dwALNnoACzZ8AAs2xQALNukACzcQAAs3NAALNzcACzc5AAs3OwALNz0ACzc/AAs3QQALN0IACzdFAAs3XgALN38ACzeBAAs3gwALN4UACzeHAAs3iQALN4sACzeNAAs3jwALN7AACzezAAs3tgALN7kACze8AAs3vwALN8IACzfFAAs3yAALN8oACzhFAAs4RwALOEkACzhLAAs4TgALOE8ACzhQAAs4UQALOFIACzhUAAs4VgALOFcACzhYAAs4WgALOFsACzjWAAs42AALONoACzjcAAs43wALOOAACzjhAAs44gALOOMACzjlAAs45wALOOgACzjpAAs46wALOOwACzlnAAs5aQALOWwACzluAAs5cQALOXIACzlzAAs5dAALOXUACzl3AAs5eQALOXoACzl7AAs5fQALOX4ACzmXAAs5mAALOZkACzmbAAs6FgALOhgACzoaAAs6HAALOh8ACzogAAs6IQALOiIACzojAAs6JQALOicACzooAAs6KQALOisACzosAAs6pwALOqkACzqrAAs6rQALOrAACzqxAAs6sgALOrMACzq0AAs6tgALOrgACzq5AAs6ugALOrwACzq9AAs7OAALOzoACzs8AAs7PgALO0EACztCAAs7QwALO0QACztFAAs7RwALO0kACztKAAs7SwALO00ACztOAAs7yQALO8sACzvNAAs7zwALO9IACzvTAAs71AALO9UACzvWAAs72AALO9oACzvbAAs73AALO94ACzvfAAs8WgALPFwACzxeAAs8YAALPGMACzxkAAs8ZQALPGYACzxnAAs8aQALPGsACzxsAAs8bQALPG8ACzxwAAs8uQALPN0ACz0EAAs9KAALPSsACz0tAAs9LwALPTEACz0zAAs9NQALPTYACz05AAs9UgALPW8ACz1xAAs9cwALPXUACz13AAs9eQALPXsACz19AAs9mgALPZ0ACz2gAAs9owALPaYACz2pAAs9rAALPa8ACz2xAAs+LAALPi4ACz4wAAs+MgALPjUACz42AAs+NwALPjgACz45AAs+OwALPj0ACz4+AAs+PwALPkEACz5CAAs+vQALPr8ACz7BAAs+wwALPsYACz7HAAs+yAALPskACz7KAAs+zAALPs4ACz7PAAs+0AALPtIACz7TAAs/TgALP1AACz9SAAs/VAALP1cACz9YAAs/WQALP1oACz9bAAs/XQALP18ACz9gAAs/YQALP2MACz9kAAs/3wALP+EACz/kAAs/5gALP+kACz/qAAs/6wALP+wACz/tAAs/7wALP/EACz/yAAs/8wALP/UACz/2AAtAcQALQHMAC0B1AAtAdwALQHoAC0B7AAtAfAALQH0AC0B+AAtAgAALQIIAC0CDAAtAhAALQIYAC0CHAAtBAgALQQQAC0EGAAtBCAALQQsAC0EMAAtBDQALQQ4AC0EPAAtBEQALQRMAC0EUAAtBFQALQRcAC0EYAAtBkwALQZUAC0GXAAtBmQALQZwAC0GdAAtBngALQZ8AC0GgAAtBogALQaQAC0GlAAtBpgALQagAC0GpAAtCPAALQl8AC0J/AAtCnwALQqEAC0KjAAtCpQALQqcAC0KqAAtCqwALQqwAC0KvAAtCsAALQrIAC0KzAAtCtgALQrkAC0K6AAtCuwALQr4AC0K/AAtCxAALQt0AC0LmAAtC6AALQusAC0L0AAtC9wALQvoAC0L8AAtDRQALQ2kAC0OQAAtDtAALQ7cAC0O5AAtDuwALQ70AC0O/AAtDwQALQ8IAC0PFAAtD3gALQ/8AC0QBAAtEAwALRAUAC0QHAAtECQALRAsAC0QNAAtEDwALRDAAC0QzAAtENgALRDkAC0Q8AAtEPwALREIAC0RFAAtESAALREoAC0TFAAtExwALRMkAC0TLAAtEzgALRM8AC0TQAAtE0QALRNIAC0TUAAtE1gALRNcAC0TYAAtE2gALRNsAC0VWAAtFWAALRVoAC0VcAAtFXwALRWAAC0VhAAtFYgALRWMAC0VlAAtFZwALRWgAC0VpAAtFawALRWwAC0XnAAtF6QALRewAC0XuAAtF8QALRfIAC0XzAAtF9AALRfUAC0X3AAtF+QALRfoAC0X7AAtF/QALRf4AC0YXAAtGGAALRhkAC0YbAAtGlgALRpgAC0aaAAtGnAALRp8AC0agAAtGoQALRqIAC0ajAAtGpQALRqcAC0aoAAtGqQALRqsAC0asAAtHJwALRykAC0crAAtHLQALRzAAC0cxAAtHMgALRzMAC0c0AAtHNgALRzgAC0c5AAtHOgALRzwAC0c9AAtHuAALR7oAC0e8AAtHvgALR8EAC0fCAAtHwwALR8QAC0fFAAtHxwALR8kAC0fKAAtHywALR80AC0fOAAtISQALSEsAC0hNAAtITwALSFIAC0hTAAtIVAALSFUAC0hWAAtIWAALSFoAC0hbAAtIXAALSF4AC0hfAAtI2gALSNwAC0jeAAtI4AALSOMAC0jkAAtI5QALSOYAC0jnAAtI6QALSOsAC0jsAAtI7QALSO8AC0jwAAtJOQALSV0AC0mEAAtJqAALSasAC0muAAtJsAALSbIAC0m0AAtJtgALSbcAC0m6AAtJ0wALSfAAC0nzAAtJ9gALSfkAC0n8AAtJ/wALSgIAC0oFAAtKIgALSiUAC0ooAAtKKwALSi4AC0oxAAtKNAALSjcAC0o5AAtKtAALSrYAC0q5AAtKuwALSr4AC0q/AAtKwAALSsEAC0rCAAtKxAALSscAC0rIAAtKyQALSssAC0rMAAtLRwALS0kAC0tMAAtLTgALS1EAC0tSAAtLUwALS1QAC0tVAAtLVwALS1oAC0tbAAtLXAALS14AC0tfAAtL2gALS9wAC0vfAAtL4QALS+QAC0vlAAtL5gALS+cAC0voAAtL6gALS+0AC0vuAAtL7wALS/EAC0vyAAtMbQALTG8AC0xyAAtMdAALTHcAC0x4AAtMeQALTHoAC0x7AAtMfQALTIAAC0yBAAtMggALTIQAC0yFAAtNAAALTQIAC00EAAtNBgALTQkAC00KAAtNCwALTQwAC00NAAtNDwALTRIAC00TAAtNFAALTRYAC00XAAtNkgALTZQAC02WAAtNmAALTZsAC02cAAtNnQALTZ4AC02fAAtNoQALTaQAC02lAAtNpgALTagAC02pAAtOJAALTiYAC04pAAtOKwALTi4AC04vAAtOMAALTjEAC04yAAtONAALTjcAC044AAtOOQALTjsAC048AAtOzwALTvIAC08SAAtPMgALTzQAC082AAtPOAALTzoAC089AAtPPgALTz8AC09CAAtPQwALT0UAC09GAAtPSAALT0sAC09MAAtPTQALT1AAC09RAAtPVgALT28AC094AAtPegALT3wAC0+FAAtPiAALT4sAC0+NAAtP1gALT/oAC1AhAAtQRQALUEgAC1BKAAtQTAALUE4AC1BQAAtQUgALUFMAC1BWAAtQbwALUJAAC1CSAAtQlAALUJYAC1CYAAtQmgALUJwAC1CeAAtQoAALUMEAC1DEAAtQxwALUMoAC1DNAAtQ0AALUNMAC1DWAAtQ2QALUNsAC1FWAAtRWAALUVoAC1FcAAtRXwALUWAAC1FhAAtRYgALUWMAC1FlAAtRZwALUWgAC1FpAAtRawALUWwAC1HnAAtR6QALUesAC1HtAAtR8AALUfEAC1HyAAtR8wALUfQAC1H2AAtR+AALUfkAC1H6AAtR/AALUf0AC1J4AAtSegALUn0AC1J/AAtSggALUoMAC1KEAAtShQALUoYAC1KIAAtSigALUosAC1KMAAtSjgALUo8AC1KoAAtSqQALUqoAC1KsAAtTJwALUykAC1MrAAtTLQALUzAAC1MxAAtTMgALUzMAC1M0AAtTNgALUzgAC1M5AAtTOgALUzwAC1M9AAtTuAALU7oAC1O8AAtTvgALU8EAC1PCAAtTwwALU8QAC1PFAAtTxwALU8kAC1PKAAtTywALU80AC1POAAtUSQALVEsAC1RNAAtUTwALVFIAC1RTAAtUVAALVFUAC1RWAAtUWAALVFoAC1RbAAtUXAALVF4AC1RfAAtU2gALVNwAC1TeAAtU4AALVOMAC1TkAAtU5QALVOYAC1TnAAtU6QALVOsAC1TsAAtU7QALVO8AC1TwAAtVawALVW0AC1VvAAtVcQALVXQAC1V1AAtVdgALVXcAC1V4AAtVegALVXwAC1V9AAtVfgALVYAAC1WBAAtVygALVe4AC1YVAAtWOQALVjwAC1Y+AAtWQAALVkIAC1ZEAAtWRgALVkcAC1ZKAAtWYwALVoAAC1aCAAtWhAALVoYAC1aIAAtWigALVowAC1aOAAtWqwALVq4AC1axAAtWtAALVrcAC1a6AAtWvQALVsAAC1bCAAtXPQALVz8AC1dBAAtXQwALV0YAC1dHAAtXSAALV0kAC1dKAAtXTAALV04AC1dPAAtXUAALV1IAC1dTAAtXzgALV9AAC1fSAAtX1AALV9cAC1fYAAtX2QALV9oAC1fbAAtX3QALV98AC1fgAAtX4QALV+MAC1fkAAtYXwALWGEAC1hjAAtYZQALWGgAC1hpAAtYagALWGsAC1hsAAtYbgALWHAAC1hxAAtYcgALWHQAC1h1AAtY8AALWPIAC1j1AAtY9wALWPoAC1j7AAtY/AALWP0AC1j+AAtZAAALWQIAC1kDAAtZBAALWQYAC1kHAAtZggALWYQAC1mGAAtZiAALWYsAC1mMAAtZjQALWY4AC1mPAAtZkQALWZMAC1mUAAtZlQALWZcAC1mYAAtaEwALWhUAC1oXAAtaGQALWhwAC1odAAtaHgALWh8AC1ogAAtaIgALWiQAC1olAAtaJgALWigAC1opAAtapAALWqYAC1qoAAtaqgALWq0AC1quAAtarwALWrAAC1qxAAtaswALWrUAC1q2AAtatwALWrkAC1q6AAtbTQALW3AAC1uQAAtbsAALW7IAC1u0AAtbtgALW7gAC1u7AAtbvAALW70AC1vAAAtbwQALW8MAC1vEAAtbxgALW8kAC1vKAAtbywALW84AC1vPAAtb1AALW+0AC1v2AAtb+AALW/oAC1wDAAtcBgALXAkAC1wLAAtcVAALXHgAC1yfAAtcwwALXMYAC1zIAAtcygALXMwAC1zOAAtc0AALXNEAC1zUAAtc7QALXQ4AC10QAAtdEgALXRQAC10WAAtdGAALXRoAC10cAAtdHgALXT8AC11CAAtdRQALXUgAC11LAAtdTgALXVEAC11UAAtdVwALXVkAC13UAAtd1gALXdgAC13aAAtd3QALXd4AC13fAAtd4AALXeEAC13jAAtd5QALXeYAC13nAAtd6QALXeoAC15lAAteZwALXmkAC15rAAtebgALXm8AC15wAAtecQALXnIAC150AAtedgALXncAC154AAteegALXnsAC172AAte+AALXvsAC179AAtfAAALXwEAC18CAAtfAwALXwQAC18GAAtfCAALXwkAC18KAAtfDAALXw0AC18mAAtfJwALXygAC18qAAtfpQALX6cAC1+pAAtfqwALX64AC1+vAAtfsAALX7EAC1+yAAtftAALX7YAC1+3AAtfuAALX7oAC1+7AAtgNgALYDgAC2A6AAtgPAALYD8AC2BAAAtgQQALYEIAC2BDAAtgRQALYEcAC2BIAAtgSQALYEsAC2BMAAtgxwALYMkAC2DLAAtgzQALYNAAC2DRAAtg0gALYNMAC2DUAAtg1gALYNgAC2DZAAtg2gALYNwAC2DdAAthWAALYVoAC2FcAAthXgALYWEAC2FiAAthYwALYWQAC2FlAAthZwALYWkAC2FqAAthawALYW0AC2FuAAth6QALYesAC2HtAAth7wALYfIAC2HzAAth9AALYfUAC2H2AAth+AALYfoAC2H7AAth/AALYf4AC2H/AAtiSAALYmwAC2KTAAtitwALYroAC2K8AAtivgALYsAAC2LCAAtixAALYsUAC2LIAAti4QALYv4AC2MAAAtjAgALYwQAC2MGAAtjCAALYwoAC2MMAAtjKQALYywAC2MvAAtjMgALYzUAC2M4AAtjOwALYz4AC2NAAAtjuwALY70AC2O/AAtjwQALY8QAC2PFAAtjxgALY8cAC2PIAAtjygALY8wAC2PNAAtjzgALY9AAC2PRAAtkTAALZE4AC2RQAAtkUgALZFUAC2RWAAtkVwALZFgAC2RZAAtkWwALZF0AC2ReAAtkXwALZGEAC2RiAAtk3QALZN8AC2ThAAtk4wALZOYAC2TnAAtk6AALZOkAC2TqAAtk7AALZO4AC2TvAAtk8AALZPIAC2TzAAtlbgALZXAAC2VyAAtldAALZXcAC2V4AAtleQALZXoAC2V7AAtlfQALZX8AC2WAAAtlgQALZYMAC2WEAAtl/wALZgEAC2YDAAtmBQALZggAC2YJAAtmCgALZgsAC2YMAAtmDgALZhAAC2YRAAtmEgALZhQAC2YVAAtmkAALZpIAC2aUAAtmlgALZpkAC2aaAAtmmwALZpwAC2adAAtmnwALZqEAC2aiAAtmowALZqUAC2amAAtnIQALZyMAC2clAAtnJwALZyoAC2crAAtnLAALZy0AC2cuAAtnMAALZzIAC2czAAtnNAALZzYAC2c3AAtnygALZ+0AC2gNAAtoLQALaC8AC2gxAAtoMwALaDUAC2g4AAtoOQALaDoAC2g9AAtoPgALaEAAC2hBAAtoQwALaEYAC2hHAAtoSAALaEsAC2hMAAtoVQALaG4AC2h3AAtoeQALaHsAC2iEAAtohwALaIoAC2iMAAto1QALaPkAC2kgAAtpRAALaUcAC2lJAAtpSwALaU0AC2lPAAtpUQALaVIAC2lVAAtpbgALaY8AC2mRAAtpkwALaZUAC2mXAAtpmQALaZsAC2mdAAtpnwALacAAC2nDAAtpxgALackAC2nMAAtpzwALadIAC2nVAAtp2AALadoAC2pVAAtqVwALalkAC2pbAAtqXgALal8AC2pgAAtqYQALamIAC2pkAAtqZgALamcAC2poAAtqagALamsAC2rmAAtq6AALauoAC2rsAAtq7wALavAAC2rxAAtq8gALavMAC2r1AAtq9wALavgAC2r5AAtq+wALavwAC2t3AAtreQALa3wAC2t+AAtrgQALa4IAC2uDAAtrhAALa4UAC2uHAAtriQALa4oAC2uLAAtrjQALa44AC2unAAtrqAALa6kAC2urAAtsJgALbCgAC2wqAAtsLAALbC8AC2wwAAtsMQALbDIAC2wzAAtsNQALbDcAC2w4AAtsOQALbDsAC2w8AAtstwALbLkAC2y7AAtsvQALbMAAC2zBAAtswgALbMMAC2zEAAtsxgALbMgAC2zJAAtsygALbMwAC2zNAAttSAALbUoAC21MAAttTgALbVEAC21SAAttUwALbVQAC21VAAttVwALbVkAC21aAAttWwALbV0AC21eAAtt2QALbdsAC23dAAtt3wALbeIAC23jAAtt5AALbeUAC23mAAtt6AALbeoAC23rAAtt7AALbe4AC23vAAtuagALbmwAC25uAAtucAALbnMAC250AAtudQALbnYAC253AAtueQALbnsAC258AAtufQALbn8AC26AAAtuyQALbu0AC28UAAtvOAALbzsAC289AAtvPwALb0EAC29DAAtvRQALb0YAC29JAAtvYgALb38AC2+BAAtvgwALb4UAC2+HAAtviQALb4sAC2+NAAtvqgALb60AC2+wAAtvswALb7YAC2+5AAtvvAALb78AC2/BAAtwPAALcD4AC3BAAAtwQgALcEUAC3BGAAtwRwALcEgAC3BJAAtwSwALcE0AC3BOAAtwTwALcFEAC3BSAAtwzQALcM8AC3DRAAtw0wALcNYAC3DXAAtw2AALcNkAC3DaAAtw3AALcN4AC3DfAAtw4AALcOIAC3DjAAtxXgALcWAAC3FiAAtxZAALcWcAC3FoAAtxaQALcWoAC3FrAAtxbQALcW8AC3FwAAtxcQALcXMAC3F0AAtx7wALcfEAC3H0AAtx9gALcfkAC3H6AAtx+wALcfwAC3H9AAtx/wALcgEAC3ICAAtyAwALcgUAC3IGAAtygQALcoMAC3KFAAtyhwALcooAC3KLAAtyjAALco0AC3KOAAtykAALcpIAC3KTAAtylAALcpYAC3KXAAtzEgALcxQAC3MWAAtzGAALcxsAC3McAAtzHQALcx4AC3MfAAtzIQALcyMAC3MkAAtzJQALcycAC3MoAAtzowALc6UAC3OnAAtzqQALc6wAC3OtAAtzrgALc68AC3OwAAtzsgALc7QAC3O1AAtztgALc7gAC3O5AAt0TAALdG8AC3SPAAt0rwALdLEAC3SzAAt0tQALdLcAC3S6AAt0uwALdLwAC3S/AAt0wAALdMIAC3TDAAt0xQALdMgAC3TJAAt0ygALdM0AC3TOAAt00wALdOwAC3T1AAt09wALdPkAC3UCAAt1BQALdQgAC3UKAAt1UwALdXcAC3WeAAt1wgALdcUAC3XHAAt1yQALdcsAC3XNAAt1zwALddAAC3XTAAt17AALdg0AC3YPAAt2EQALdhMAC3YVAAt2FwALdhkAC3YbAAt2HQALdj4AC3ZBAAt2RAALdkcAC3ZKAAt2TQALdlAAC3ZTAAt2VgALdlgAC3bTAAt21QALdtcAC3bZAAt23AALdt0AC3beAAt23wALduAAC3biAAt25AALduUAC3bmAAt26AALdukAC3dkAAt3ZgALd2gAC3dqAAt3bQALd24AC3dvAAt3cAALd3EAC3dzAAt3dQALd3YAC3d3AAt3eQALd3oAC3f1AAt39wALd/oAC3f8AAt3/wALeAAAC3gBAAt4AgALeAMAC3gFAAt4BwALeAgAC3gJAAt4CwALeAwAC3glAAt4JgALeCcAC3gpAAt4pAALeKYAC3ioAAt4qgALeK0AC3iuAAt4rwALeLAAC3ixAAt4swALeLUAC3i2AAt4twALeLkAC3i6AAt5NQALeTcAC3k5AAt5OwALeT4AC3k/AAt5QAALeUEAC3lCAAt5RAALeUYAC3lHAAt5SAALeUoAC3lLAAt5xgALecgAC3nKAAt5zAALec8AC3nQAAt50QALedIAC3nTAAt51QALedcAC3nYAAt52QALedsAC3ncAAt6VwALelkAC3pbAAt6XQALemAAC3phAAt6YgALemMAC3pkAAt6ZgALemgAC3ppAAt6agALemwAC3ptAAt66AALeuoAC3rsAAt67gALevEAC3ryAAt68wALevQAC3r1AAt69wALevkAC3r6AAt6+wALev0AC3r+AAt7RwALe2sAC3uSAAt7tgALe7kAC3u7AAt7vQALe78AC3vBAAt7wwALe8QAC3vHAAt74AALe/0AC3v/AAt8AQALfAMAC3wFAAt8BwALfAkAC3wLAAt8KAALfCsAC3wuAAt8MQALfDQAC3w3AAt8OgALfD0AC3w/AAt8ugALfLwAC3y+AAt8wAALfMMAC3zEAAt8xQALfMYAC3zHAAt8yQALfMsAC3zMAAt8zQALfM8AC3zQAAt9SwALfU0AC31PAAt9UQALfVQAC31VAAt9VgALfVcAC31YAAt9WgALfVwAC31dAAt9XgALfWAAC31hAAt93AALfd4AC33gAAt94gALfeUAC33mAAt95wALfegAC33pAAt96wALfe0AC33uAAt97wALffEAC33yAAt+bQALfm8AC35xAAt+cwALfnYAC353AAt+eAALfnkAC356AAt+fAALfn4AC35/AAt+gAALfoIAC36DAAt+/gALfwAAC38CAAt/BAALfwcAC38IAAt/CQALfwoAC38LAAt/DQALfw8AC38QAAt/EQALfxMAC38UAAt/jwALf5EAC3+UAAt/lgALf5kAC3+aAAt/mwALf5wAC3+dAAt/nwALf6EAC3+iAAt/owALf6UAC3+mAAt/xQALgEAAC4BCAAuARAALgEYAC4BJAAuASgALgEsAC4BMAAuATQALgE8AC4BRAAuAUgALgFMAC4BVAAuAVgALgGcAC4BoAAuAagALgOUAC4DnAAuA6QALgOsAC4DuAAuA7wALgPAAC4DxAAuA8gALgPQAC4D3AAuA+AALgPkAC4D7AAuA/AALgXcAC4F5AAuBewALgX0AC4GAAAuBgQALgYIAC4GDAAuBhAALgYYAC4GJAAuBigALgYsAC4GNAAuBjgALggkAC4ILAAuCDgALghAAC4ITAAuCFAALghUAC4IWAAuCFwALghkAC4IcAAuCHQALgh4AC4IgAAuCIQALgrQAC4LXAAuC9wALgxcAC4MZAAuDGwALgx0AC4MfAAuDIgALgyMAC4MkAAuDJwALgygAC4MqAAuDKwALgy0AC4MwAAuDMQALgzIAC4M1AAuDNgALgzsAC4NUAAuDXQALg18AC4NhAAuDagALg20AC4NwAAuDcgALg7sAC4PfAAuEBgALhCoAC4QtAAuELwALhDEAC4QzAAuENQALhDcAC4Q4AAuEOwALhFQAC4R1AAuEdwALhHkAC4R7AAuEfQALhH8AC4SBAAuEgwALhIUAC4SmAAuEqQALhKwAC4SvAAuEsgALhLUAC4S4AAuEuwALhL4AC4TAAAuFOwALhT0AC4U/AAuFQQALhUQAC4VFAAuFRgALhUcAC4VIAAuFSgALhUwAC4VNAAuFTgALhVAAC4VRAAuFzAALhc4AC4XQAAuF0gALhdUAC4XWAAuF1wALhdgAC4XZAAuF2wALhd0AC4XeAAuF3wALheEAC4XiAAuGXQALhl8AC4ZiAAuGZAALhmcAC4ZoAAuGaQALhmoAC4ZrAAuGbQALhm8AC4ZwAAuGcQALhnMAC4Z0AAuGjQALho4AC4aPAAuGkQALhwwAC4cOAAuHEAALhxIAC4cVAAuHFgALhxcAC4cYAAuHGQALhxsAC4cdAAuHHgALhx8AC4chAAuHIgALh50AC4efAAuHoQALh6MAC4emAAuHpwALh6gAC4epAAuHqgALh6wAC4euAAuHrwALh7AAC4eyAAuHswALiC4AC4gwAAuIMgALiDQAC4g3AAuIOAALiDkAC4g6AAuIOwALiD0AC4g/AAuIQAALiEEAC4hDAAuIRAALiL8AC4jBAAuIwwALiMUAC4jIAAuIyQALiMoAC4jLAAuIzAALiM4AC4jQAAuI0QALiNIAC4jUAAuI1QALiVAAC4lSAAuJVAALiVYAC4lZAAuJWgALiVsAC4lcAAuJXQALiV8AC4lhAAuJYgALiWMAC4llAAuJZgALia8AC4nTAAuJ+gALih4AC4ohAAuKIwALiiUAC4onAAuKKQALiisAC4osAAuKLwALikgAC4plAAuKZwALimkAC4prAAuKbQALim8AC4pxAAuKcwALipAAC4qTAAuKlgALipkAC4qcAAuKnwALiqIAC4qlAAuKpwALiyIAC4skAAuLJwALiykAC4ssAAuLLQALiy4AC4svAAuLMAALizIAC4s0AAuLNQALizYAC4s4AAuLOQALi7QAC4u2AAuLuAALi7oAC4u9AAuLvgALi78AC4vAAAuLwQALi8MAC4vFAAuLxgALi8cAC4vJAAuLygALjEUAC4xHAAuMSQALjEsAC4xOAAuMTwALjFAAC4xRAAuMUgALjFQAC4xWAAuMVwALjFgAC4xaAAuMWwALjNYAC4zYAAuM2wALjN0AC4zgAAuM4QALjOIAC4zjAAuM5AALjOYAC4zoAAuM6QALjOoAC4zsAAuM7QALjWgAC41qAAuNbAALjW4AC41xAAuNcgALjXMAC410AAuNdQALjXcAC415AAuNegALjXsAC419AAuNfgALjfkAC437AAuN/QALjf8AC44CAAuOAwALjgQAC44FAAuOBgALjggAC44KAAuOCwALjgwAC44OAAuODwALjooAC46MAAuOjgALjpAAC46TAAuOlAALjpUAC46WAAuOlwALjpkAC46bAAuOnAALjp0AC46fAAuOoAALjzMAC49WAAuPdgALj5YAC4+YAAuPmgALj5wAC4+eAAuPoQALj6IAC4+jAAuPpgALj6cAC4+pAAuPqgALj6wAC4+vAAuPsAALj7EAC4+0AAuPtQALj7oAC4/TAAuP3AALj94AC4/gAAuP6QALj+wAC4/vAAuP8QALkDoAC5BeAAuQhQALkKkAC5CsAAuQrgALkLAAC5CyAAuQtAALkLYAC5C3AAuQugALkNMAC5D0AAuQ9gALkPgAC5D6AAuQ/AALkP4AC5EAAAuRAgALkQQAC5ElAAuRKAALkSsAC5EuAAuRMQALkTQAC5E3AAuROgALkT0AC5E/AAuRugALkbwAC5G+AAuRwAALkcMAC5HEAAuRxQALkcYAC5HHAAuRyQALkcsAC5HMAAuRzQALkc8AC5HQAAuSSwALkk0AC5JPAAuSUQALklQAC5JVAAuSVgALklcAC5JYAAuSWgALklwAC5JdAAuSXgALkmAAC5JhAAuS3AALkt4AC5LhAAuS4wALkuYAC5LnAAuS6AALkukAC5LqAAuS7AALku4AC5LvAAuS8AALkvIAC5LzAAuTDAALkw0AC5MOAAuTEAALk4sAC5ONAAuTjwALk5EAC5OUAAuTlQALk5YAC5OXAAuTmAALk5oAC5OcAAuTnQALk54AC5OgAAuToQALlBwAC5QeAAuUIAALlCIAC5QlAAuUJgALlCcAC5QoAAuUKQALlCsAC5QtAAuULgALlC8AC5QxAAuUMgALlK0AC5SvAAuUsQALlLMAC5S2AAuUtwALlLgAC5S5AAuUugALlLwAC5S+AAuUvwALlMAAC5TCAAuUwwALlT4AC5VAAAuVQgALlUQAC5VHAAuVSAALlUkAC5VKAAuVSwALlU0AC5VPAAuVUAALlVEAC5VTAAuVVAALlc8AC5XRAAuV0wALldUAC5XYAAuV2QALldoAC5XbAAuV3AALld4AC5XgAAuV4QALleIAC5XkAAuV5QALli4AC5ZSAAuWeQALlp0AC5agAAuWogALlqQAC5amAAuWqAALlqoAC5arAAuWrgALlscAC5bkAAuW5gALlugAC5bqAAuW7AALlu4AC5bwAAuW8gALlw8AC5cSAAuXFQALlxgAC5cbAAuXHgALlyEAC5ckAAuXJgALl6EAC5ejAAuXpgALl6gAC5erAAuXrAALl60AC5euAAuXrwALl7EAC5ezAAuXtAALl7UAC5e3AAuXuAALmDMAC5g1AAuYNwALmDkAC5g8AAuYPQALmD4AC5g/AAuYQAALmEIAC5hEAAuYRQALmEYAC5hIAAuYSQALmMQAC5jGAAuYyAALmMoAC5jNAAuYzgALmM8AC5jQAAuY0QALmNMAC5jVAAuY1gALmNcAC5jZAAuY2gALmVUAC5lXAAuZWgALmVwAC5lfAAuZYAALmWEAC5liAAuZYwALmWUAC5lnAAuZaAALmWkAC5lrAAuZbAALmecAC5npAAuZ6wALme0AC5nwAAuZ8QALmfIAC5nzAAuZ9AALmfYAC5n4AAuZ+QALmfoAC5n8AAuZ/QALmngAC5p6AAuafAALmn4AC5qBAAuaggALmoMAC5qEAAuahQALmocAC5qJAAuaigALmosAC5qNAAuajgALmwkAC5sLAAubDQALmw8AC5sSAAubEwALmxQAC5sVAAubFgALmxgAC5saAAubGwALmxwAC5seAAubHwALm7IAC5vVAAub9QALnBUAC5wXAAucGQALnBsAC5wdAAucIAALnCEAC5wiAAucJQALnCYAC5woAAucKQALnCsAC5wuAAucLwALnDAAC5wzAAucNAALnDkAC5xSAAucWwALnF0AC5xfAAucaAALnGsAC5xuAAuccAALnLkAC5zdAAudBAALnSgAC50rAAudLQALnS8AC50xAAudMwALnTUAC502AAudOQALnVIAC51zAAuddQALnXcAC515AAudewALnX0AC51/AAudgQALnYMAC52kAAudpwALnaoAC52tAAudsAALnbMAC522AAuduQALnbwAC52+AAueOQALnjsAC549AAuePwALnkIAC55DAAueRAALnkUAC55GAAueSAALnkoAC55LAAueTAALnk4AC55PAAueygALnswAC57OAAue0AALntMAC57UAAue1QALntYAC57XAAue2QALntsAC57cAAue3QALnt8AC57gAAufWwALn10AC59gAAufYgALn2UAC59mAAufZwALn2gAC59pAAufawALn20AC59uAAufbwALn3EAC59yAAufiwALn4wAC5+NAAufjwALoAoAC6AMAAugDgALoBAAC6ATAAugFAALoBUAC6AWAAugFwALoBkAC6AbAAugHAALoB0AC6AfAAugIAALoJsAC6CdAAugnwALoKEAC6CkAAugpQALoKYAC6CnAAugqAALoKoAC6CsAAugrQALoK4AC6CwAAugsQALoSwAC6EuAAuhMAALoTIAC6E1AAuhNgALoTcAC6E4AAuhOQALoTsAC6E9AAuhPgALoT8AC6FBAAuhQgALob0AC6G/AAuhwQALocMAC6HGAAuhxwALocgAC6HJAAuhygALocwAC6HOAAuhzwALodAAC6HSAAuh0wALok4AC6JQAAuiUgALolQAC6JXAAuiWAALolkAC6JaAAuiWwALol0AC6JfAAuiYAALomEAC6JjAAuiZAALoq0AC6LRAAui+AALoxwAC6MfAAujIQALoyMAC6MlAAujJwALoykAC6MqAAujLQALo0YAC6NjAAujZQALo2cAC6NpAAujawALo20AC6NvAAujcQALo44AC6ORAAujlAALo5cAC6OaAAujnQALo6AAC6OjAAujpQALpCAAC6QiAAukJAALpCYAC6QpAAukKgALpCsAC6QsAAukLQALpC8AC6QxAAukMgALpDMAC6Q1AAukNgALpLEAC6SzAAuktQALpLcAC6S6AAukuwALpLwAC6S9AAukvgALpMAAC6TCAAukwwALpMQAC6TGAAukxwALpUIAC6VEAAulRgALpUgAC6VLAAulTAALpU0AC6VOAAulTwALpVEAC6VTAAulVAALpVUAC6VXAAulWAALpdMAC6XVAAul2AALpdoAC6XdAAul3gALpd8AC6XgAAul4QALpeMAC6XlAAul5gALpecAC6XpAAul6gALpmUAC6ZnAAumaQALpmsAC6ZuAAumbwALpnAAC6ZxAAumcgALpnQAC6Z2AAumdwALpngAC6Z6AAumewALpvYAC6b4AAum+gALpvwAC6b/AAunAAALpwEAC6cCAAunAwALpwUAC6cHAAunCAALpwkAC6cLAAunDAALp4cAC6eJAAuniwALp40AC6eQAAunkQALp5IAC6eTAAunlAALp5YAC6eYAAunmQALp5oAC6ecAAunnQALqDAAC6hTAAuocwALqJMAC6iVAAuolwALqJkAC6ibAAuongALqJ8AC6igAAuoowALqKQAC6imAAuopwALqKkAC6isAAuorQALqK4AC6ixAAuosgALqLcAC6jQAAuo2QALqNsAC6jdAAuo5gALqOkAC6jsAAuo7gALqTcAC6lbAAupggALqaYAC6mpAAupqwALqa0AC6mvAAupsQALqbMAC6m0AAuptwALqdAAC6nxAAup8wALqfUAC6n3AAup+QALqfsAC6n9AAup/wALqgEAC6oiAAuqJQALqigAC6orAAuqLgALqjEAC6o0AAuqNwALqjoAC6o8AAuqtwALqrkAC6q7AAuqvQALqsAAC6rBAAuqwgALqsMAC6rEAAuqxgALqsgAC6rJAAuqygALqswAC6rNAAurSAALq0oAC6tMAAurTgALq1EAC6tSAAurUwALq1QAC6tVAAurVwALq1kAC6taAAurWwALq10AC6teAAur2QALq9sAC6veAAur4AALq+MAC6vkAAur5QALq+YAC6vnAAur6QALq+sAC6vsAAur7QALq+8AC6vwAAusCQALrAoAC6wLAAusDQALrIgAC6yKAAusjAALrI4AC6yRAAuskgALrJMAC6yUAAuslQALrJcAC6yZAAusmgALrJsAC6ydAAusngALrRkAC60bAAutHQALrR8AC60iAAutIwALrSQAC60lAAutJgALrSgAC60qAAutKwALrSwAC60uAAutLwALraoAC62sAAutrgALrbAAC62zAAuttAALrbUAC622AAuttwALrbkAC627AAutvAALrb0AC62/AAutwAALrjsAC649AAuuPwALrkEAC65EAAuuRQALrkYAC65HAAuuSAALrkoAC65MAAuuTQALrk4AC65QAAuuUQALrswAC67OAAuu0AALrtIAC67VAAuu1gALrtcAC67YAAuu2QALrtsAC67dAAuu3gALrt8AC67hAAuu4gALrysAC69PAAuvdgALr5oAC6+dAAuvnwALr6EAC6+jAAuvpQALr6cAC6+oAAuvqwALr8QAC6/hAAuv4wALr+UAC6/nAAuv6QALr+sAC6/tAAuv7wALsAwAC7APAAuwEgALsBUAC7AYAAuwGwALsB4AC7AhAAuwIwALsJ4AC7CgAAuwowALsKUAC7CoAAuwqQALsKoAC7CrAAuwrAALsK4AC7CwAAuwsQALsLIAC7C0AAuwtQALsTAAC7EyAAuxNAALsTYAC7E5AAuxOgALsTsAC7E8AAuxPQALsT8AC7FBAAuxQgALsUMAC7FFAAuxRgALscEAC7HDAAuxxQALsccAC7HKAAuxywALscwAC7HNAAuxzgALsdAAC7HSAAux0wALsdQAC7HWAAux1wALslIAC7JUAAuyVwALslkAC7JcAAuyXQALsl4AC7JfAAuyYAALsmIAC7JkAAuyZQALsmYAC7JoAAuyaQALsuQAC7LmAAuy6AALsuoAC7LtAAuy7gALsu8AC7LwAAuy8QALsvMAC7L1AAuy9gALsvcAC7L5AAuy+gALs3UAC7N3AAuzeQALs3sAC7N+AAuzfwALs4AAC7OBAAuzggALs4QAC7OGAAuzhwALs4gAC7OKAAuziwALtAYAC7QIAAu0CgALtAwAC7QPAAu0EAALtBEAC7QSAAu0EwALtBUAC7QXAAu0GAALtBkAC7QbAAu0HAALtC0AC7QuAAu0MAALtKsAC7StAAu0rwALtLEAC7S0AAu0tQALtLYAC7S3AAu0uAALtLoAC7S9AAu0vgALtL8AC7TBAAu0wgALtT0AC7U/AAu1QQALtUMAC7VGAAu1RwALtUgAC7VJAAu1SgALtUwAC7VPAAu1UAALtVEAC7VTAAu1VAALtc8AC7XRAAu11AALtdYAC7XZAAu12gALtdsAC7XcAAu13QALtd8AC7XiAAu14wALteQAC7XmAAu15wALtnoAC7adAAu2vQALtt0AC7bfAAu24QALtuMAC7blAAu26AALtukAC7bqAAu27QALtu4AC7bwAAu28QALtvMAC7b2AAu29wALtvgAC7b7AAu2/AALtwUAC7ceAAu3JwALtykAC7crAAu3NAALtzcAC7c6AAu3PAALt4UAC7epAAu30AALt/QAC7f3AAu3+QALt/sAC7f9AAu3/wALuAEAC7gCAAu4BQALuB4AC7g/AAu4QQALuEMAC7hFAAu4RwALuEkAC7hLAAu4TQALuE8AC7hwAAu4cwALuHYAC7h5AAu4fAALuH8AC7iCAAu4hQALuIgAC7iKAAu5BQALuQcAC7kJAAu5CwALuQ4AC7kPAAu5EAALuREAC7kSAAu5FAALuRYAC7kXAAu5GAALuRoAC7kbAAu5lgALuZgAC7maAAu5nAALuZ8AC7mgAAu5oQALuaIAC7mjAAu5pQALuacAC7moAAu5qQALuasAC7msAAu6JwALuikAC7osAAu6LgALujEAC7oyAAu6MwALujQAC7o1AAu6NwALujkAC7o6AAu6OwALuj0AC7o+AAu6VwALulgAC7pZAAu6WwALutYAC7rYAAu62gALutwAC7rfAAu64AALuuEAC7riAAu64wALuuUAC7rnAAu66AALuukAC7rrAAu67AALu2cAC7tpAAu7awALu20AC7twAAu7cQALu3IAC7tzAAu7dAALu3YAC7t4AAu7eQALu3oAC7t8AAu7fQALu/gAC7v6AAu7/AALu/4AC7wBAAu8AgALvAMAC7wEAAu8BQALvAcAC7wJAAu8CgALvAsAC7wNAAu8DgALvIkAC7yLAAu8jQALvI8AC7ySAAu8kwALvJQAC7yVAAu8lgALvJgAC7yaAAu8mwALvJwAC7yeAAu8nwALvRoAC70cAAu9HgALvSAAC70jAAu9JAALvSUAC70mAAu9JwALvSkAC70rAAu9LAALvS0AC70vAAu9MAALvXkAC72dAAu9xAALvegAC73rAAu97QALve8AC73xAAu98wALvfUAC732AAu9+QALvhIAC74vAAu+MQALvjMAC741AAu+NwALvjkAC747AAu+PQALvloAC75dAAu+YAALvmMAC75mAAu+aQALvmwAC75vAAu+cQALvuwAC77uAAu+8AALvvIAC771AAu+9gALvvcAC774AAu++QALvvsAC779AAu+/gALvv8AC78BAAu/AgALv30AC79/AAu/gQALv4MAC7+GAAu/hwALv4gAC7+JAAu/igALv4wAC7+OAAu/jwALv5AAC7+SAAu/kwALwA4AC8AQAAvAEgALwBQAC8AXAAvAGAALwBkAC8AaAAvAGwALwB0AC8AfAAvAIAALwCEAC8AjAAvAJAALwJ8AC8ChAAvApAALwKYAC8CpAAvAqgALwKsAC8CsAAvArQALwK8AC8CxAAvAsgALwLMAC8C1AAvAtgALwTEAC8EzAAvBNQALwTcAC8E6AAvBOwALwTwAC8E9AAvBPgALwUAAC8FCAAvBQwALwUQAC8FGAAvBRwALwcIAC8HEAAvBxgALwcgAC8HLAAvBzAALwc0AC8HOAAvBzwALwdEAC8HTAAvB1AALwdUAC8HXAAvB2AALwlMAC8JVAAvCVwALwlkAC8JcAAvCXQALwl4AC8JfAAvCYAALwmIAC8JkAAvCZQALwmYAC8JoAAvCaQALwnoAC8J7AAvCfQALwwAAC8MkAAvDSAALw2sAC8OSAAvDsgALw9kAC8QAAAvEIAALxEQAC8RoAAvEagALxG0AC8RvAAvEcQALxHMAC8R2AAvEeQALxHsAC8R9AAvEgAALxIIAC8SEAAvEhwALxIoAC8SLAAvEkAALxKkAC8SuAAvEsAALxLUAC8S4AAvEugALxQMAC8UnAAvFTgALxXIAC8V1AAvFdwALxXkAC8V7AAvFfQALxX8AC8WAAAvFgwALxZwAC8XBAAvFwwALxcUAC8XHAAvFyQALxcsAC8XNAAvFzwALxdEAC8XTAAvF+AALxfsAC8X+AAvGAQALxgQAC8YHAAvGCgALxg0AC8YQAAvGEwALxhUAC8aQAAvGkgALxpUAC8aXAAvGmgALxpsAC8acAAvGnQALxp4AC8agAAvGogALxqMAC8akAAvGpgALxqcAC8a4AAvGuQALxrsAC8c2AAvHOAALxzoAC8c8AAvHPwALx0AAC8dBAAvHQgALx0MAC8dFAAvHRwALx0gAC8dJAAvHSwALx0wAC8fHAAvHyQALx8wAC8fOAAvH0QALx9IAC8fTAAvH1AALx9UAC8fXAAvH2QALx9oAC8fbAAvH3QALx94AC8fvAAvH9AALx/cAC8f5AAvICgALyBMAC8gWAAvIGQALyBsAC8g2AAvISwALyMYAC8jIAAvIygALyMwAC8jPAAvI0AALyNEAC8jSAAvI0wALyNUAC8jXAAvI2AALyNkAC8jbAAvI3AALyVcAC8lZAAvJXAALyV4AC8lhAAvJYgALyWMAC8lkAAvJZQALyWcAC8lpAAvJagALyWsAC8ltAAvJbgALyX8AC8mAAAvJggALyf0AC8n/AAvKAQALygMAC8oGAAvKBwALyggAC8oJAAvKCgALygwAC8oOAAvKDwALyhAAC8oSAAvKEwALyo4AC8qQAAvKkwALypUAC8qYAAvKmQALypoAC8qbAAvKnAALyp4AC8qgAAvKoQALyqIAC8qkAAvKpQALyr4AC8q/AAvKwAALysIAC8s9AAvLPwALy0EAC8tDAAvLRgALy0cAC8tIAAvLSQALy0oAC8tMAAvLTgALy08AC8tQAAvLUgALy1MAC8vOAAvL0AALy9MAC8vVAAvL2AALy9kAC8vaAAvL2wALy9wAC8veAAvL4AALy+EAC8viAAvL5AALy+UAC8wWAAvMLwALzDwAC8w/AAvMQgALzEUAC8xSAAvMVQALzFgAC8xbAAvMXQALzHgAC8yNAAvMoAALzTMAC81WAAvNdgALzZYAC82YAAvNmgALzZwAC82eAAvNoQALzaIAC82jAAvNpgALzacAC82pAAvNqgALzawAC82vAAvNsAALzbEAC820AAvNtQALzboAC83TAAvN3AALzd4AC83gAAvN6QALzewAC83vAAvN8QALzjoAC85eAAvOhQALzqkAC86sAAvOrgALzrAAC86yAAvOtAALzrYAC863AAvOugALztMAC870AAvO9gALzvgAC876AAvO/AALzv4AC88AAAvPAgALzwQAC88lAAvPKAALzysAC88uAAvPMQALzzQAC883AAvPOgALzz0AC88/AAvPugALz7wAC8++AAvPwAALz8MAC8/EAAvPxQALz8YAC8/HAAvPyQALz8sAC8/MAAvPzQALz88AC8/QAAvQSwAL0E0AC9BPAAvQUQAL0FQAC9BVAAvQVgAL0FcAC9BYAAvQWgAL0FwAC9BdAAvQXgAL0GAAC9BhAAvQ3AAL0N4AC9DhAAvQ4wAL0OYAC9DnAAvQ6AAL0OkAC9DqAAvQ7AAL0O4AC9DvAAvQ8AAL0PIAC9DzAAvRDAAL0Q0AC9EOAAvREAAL0YsAC9GNAAvRjwAL0ZEAC9GUAAvRlQAL0ZYAC9GXAAvRmAAL0ZoAC9GcAAvRnQAL0Z4AC9GgAAvRoQAL0hwAC9IeAAvSIAAL0iIAC9IlAAvSJgAL0icAC9IoAAvSKQAL0isAC9ItAAvSLgAL0i8AC9IxAAvSMgAL0q0AC9KvAAvSsQAL0rMAC9K2AAvStwAL0rgAC9K5AAvSugAL0rwAC9K+AAvSvwAL0sAAC9LCAAvSwwAL0z4AC9NAAAvTQgAL00QAC9NHAAvTSAAL00kAC9NKAAvTSwAL000AC9NPAAvTUAAL01EAC9NTAAvTVAAL088AC9PRAAvT0wAL09UAC9PYAAvT2QAL09oAC9PbAAvT3AAL094AC9PgAAvT4QAL0+IAC9PkAAvT5QAL1C4AC9RSAAvUeQAL1J0AC9SgAAvUogAL1KQAC9SmAAvUqAAL1KoAC9SrAAvUrgAL1McAC9TkAAvU5gAL1OgAC9TqAAvU7AAL1O4AC9TwAAvU8gAL1Q8AC9USAAvVFQAL1RgAC9UbAAvVHgAL1SEAC9UkAAvVJgAL1aEAC9WjAAvVpQAL1acAC9WqAAvVqwAL1awAC9WtAAvVrgAL1bAAC9WyAAvVswAL1bQAC9W2AAvVtwAL1jIAC9Y0AAvWNgAL1jgAC9Y7AAvWPAAL1j0AC9Y+AAvWPwAL1kEAC9ZDAAvWRAAL1kUAC9ZHAAvWSAAL1sMAC9bFAAvWxwAL1skAC9bMAAvWzQAL1s4AC9bPAAvW0AAL1tIAC9bUAAvW1QAL1tYAC9bYAAvW2QAL11QAC9dWAAvXWQAL11sAC9deAAvXXwAL12AAC9dhAAvXYgAL12QAC9dmAAvXZwAL12gAC9dqAAvXawAL1+YAC9foAAvX6gAL1+wAC9fvAAvX8AAL1/EAC9fyAAvX8wAL1/UAC9f3AAvX+AAL1/kAC9f7AAvX/AAL2HcAC9h5AAvYewAL2H0AC9iAAAvYgQAL2IIAC9iDAAvYhAAL2IYAC9iIAAvYiQAL2IoAC9iMAAvYjQAL2QgAC9kKAAvZDAAL2Q4AC9kRAAvZEgAL2RMAC9kUAAvZFQAL2RcAC9kZAAvZGgAL2RsAC9kdAAvZHgAL2bEAC9nUAAvZ9AAL2hQAC9oWAAvaGAAL2hoAC9ocAAvaHwAL2iAAC9ohAAvaJAAL2iUAC9onAAvaKAAL2ioAC9otAAvaLgAL2i8AC9oyAAvaMwAL2jgAC9pRAAvaWgAL2lwAC9peAAvaZwAL2moAC9ptAAvabwAL2rgAC9rcAAvbAwAL2ycAC9sqAAvbLAAL2y4AC9swAAvbMgAL2zQAC9s1AAvbOAAL21EAC9tyAAvbdAAL23YAC9t4AAvbegAL23wAC9t+AAvbgAAL24IAC9ujAAvbpgAL26kAC9usAAvbrwAL27IAC9u1AAvbuAAL27sAC9u9AAvcOAAL3DoAC9w8AAvcPgAL3EEAC9xCAAvcQwAL3EQAC9xFAAvcRwAL3EkAC9xKAAvcSwAL3E0AC9xOAAvcyQAL3MsAC9zNAAvczwAL3NIAC9zTAAvc1AAL3NUAC9zWAAvc2AAL3NoAC9zbAAvc3AAL3N4AC9zfAAvdWgAL3VwAC91fAAvdYQAL3WQAC91lAAvdZgAL3WcAC91oAAvdagAL3WwAC91tAAvdbgAL3XAAC91xAAvdigAL3YsAC92MAAvdjgAL3gkAC94LAAveDQAL3g8AC94SAAveEwAL3hQAC94VAAveFgAL3hgAC94aAAveGwAL3hwAC94eAAveHwAL3poAC96cAAvengAL3qAAC96jAAvepAAL3qUAC96mAAvepwAL3qkAC96rAAverAAL3q0AC96vAAvesAAL3ysAC98tAAvfLwAL3zEAC980AAvfNQAL3zYAC983AAvfOAAL3zoAC988AAvfPQAL3z4AC99AAAvfQQAL37wAC9++AAvfwAAL38IAC9/FAAvfxgAL38cAC9/IAAvfyQAL38sAC9/NAAvfzgAL388AC9/RAAvf0gAL4E0AC+BPAAvgUQAL4FMAC+BWAAvgVwAL4FgAC+BZAAvgWgAL4FwAC+BeAAvgXwAL4GAAC+BiAAvgYwAL4KwAC+DQAAvg9wAL4RsAC+EeAAvhIAAL4SIAC+EkAAvhJgAL4SgAC+EpAAvhLAAL4UUAC+FiAAvhZAAL4WYAC+FoAAvhagAL4WwAC+FuAAvhcAAL4Y0AC+GQAAvhkwAL4ZYAC+GZAAvhnAAL4Z8AC+GiAAvhpAAL4h8AC+IhAAviIwAL4iUAC+IoAAviKQAL4ioAC+IrAAviLAAL4i4AC+IwAAviMQAL4jIAC+I0AAviNQAL4rAAC+KyAAvitAAL4rYAC+K5AAviugAL4rsAC+K8AAvivQAL4r8AC+LBAAviwgAL4sMAC+LFAAvixgAL40EAC+NDAAvjRQAL40cAC+NKAAvjSwAL40wAC+NNAAvjTgAL41AAC+NSAAvjUwAL41QAC+NWAAvjVwAL49IAC+PUAAvj1wAL49kAC+PcAAvj3QAL494AC+PfAAvj4AAL4+IAC+PkAAvj5QAL4+YAC+PoAAvj6QAL5GQAC+RmAAvkaAAL5GoAC+RtAAvkbgAL5G8AC+RwAAvkcQAL5HMAC+R1AAvkdgAL5HcAC+R5AAvkegAL5PUAC+T3AAvk+QAL5PsAC+T+AAvk/wAL5QAAC+UBAAvlAgAL5QQAC+UGAAvlBwAL5QgAC+UKAAvlCwAL5YYAC+WIAAvligAL5YwAC+WPAAvlkAAL5ZEAC+WSAAvlkwAL5ZUAC+WXAAvlmAAL5ZkAC+WbAAvlnAAL5i8AC+ZSAAvmcgAL5pIAC+aUAAvmlgAL5pgAC+aaAAvmnQAL5p4AC+afAAvmogAL5qMAC+alAAvmpgAL5qkAC+asAAvmrQAL5q4AC+axAAvmsgAL5rcAC+bQAAvm2QAL5tsAC+beAAvm5wAL5uoAC+btAAvm7wAL5zgAC+dcAAvngwAL56cAC+eqAAvnrAAL564AC+ewAAvnsgAL57QAC+e1AAvnuAAL59EAC+fyAAvn9AAL5/YAC+f4AAvn+gAL5/wAC+f+AAvoAAAL6AIAC+gjAAvoJgAL6CkAC+gsAAvoLwAL6DIAC+g1AAvoOAAL6DsAC+g9AAvouAAL6LoAC+i8AAvovgAL6MEAC+jCAAvowwAL6MQAC+jFAAvoxwAL6MkAC+jKAAvoywAL6M0AC+jOAAvpSQAL6UsAC+lNAAvpTwAL6VIAC+lTAAvpVAAL6VUAC+lWAAvpWAAL6VoAC+lbAAvpXAAL6V4AC+lfAAvp2gAL6dwAC+nfAAvp4QAL6eQAC+nlAAvp5gAL6ecAC+noAAvp6gAL6ewAC+ntAAvp7gAL6fAAC+nxAAvqCgAL6gsAC+oMAAvqDgAL6okAC+qLAAvqjQAL6o8AC+qSAAvqkwAL6pQAC+qVAAvqlgAL6pgAC+qaAAvqmwAL6pwAC+qeAAvqnwAL6xoAC+scAAvrHgAL6yAAC+sjAAvrJAAL6yUAC+smAAvrJwAL6ykAC+srAAvrLAAL6y0AC+svAAvrMAAL66sAC+utAAvrrwAL67EAC+u0AAvrtQAL67YAC+u3AAvruAAL67oAC+u8AAvrvQAL674AC+vAAAvrwQAL7DwAC+w+AAvsQAAL7EIAC+xFAAvsRgAL7EcAC+xIAAvsSQAL7EsAC+xNAAvsTgAL7E8AC+xRAAvsUgAL7M0AC+zPAAvs0QAL7NMAC+zWAAvs1wAL7NgAC+zZAAvs2gAL7NwAC+zeAAvs3wAL7OAAC+ziAAvs4wAL7SwAC+1QAAvtdwAL7ZsAC+2eAAvtoQAL7aMAC+2lAAvtpwAL7akAC+2qAAvtrQAL7cYAC+3jAAvt5gAL7ekAC+3sAAvt7wAL7fIAC+31AAvt+AAL7hUAC+4YAAvuGwAL7h4AC+4hAAvuJAAL7icAC+4qAAvuLAAL7qcAC+6pAAvurAAL7q4AC+6xAAvusgAL7rMAC+60AAvutQAL7rcAC+66AAvuuwAL7rwAC+6+AAvuvwAL7zoAC+88AAvvPwAL70EAC+9EAAvvRQAL70YAC+9HAAvvSAAL70oAC+9NAAvvTgAL708AC+9RAAvvUgAL780AC+/PAAvv0gAL79QAC+/XAAvv2AAL79kAC+/aAAvv2wAL790AC+/gAAvv4QAL7+IAC+/kAAvv5QAL8GAAC/BiAAvwZQAL8GcAC/BqAAvwawAL8GwAC/BtAAvwbgAL8HAAC/BzAAvwdAAL8HUAC/B3AAvweAAL8PsAC/EfAAvxQwAL8WYAC/GNAAvxrQAL8dQAC/H7AAvyGwAL8j8AC/JjAAvyZQAL8mgAC/JqAAvybAAL8m4AC/JxAAvydAAL8nYAC/J4AAvyewAL8n0AC/J/AAvyggAL8oUAC/KGAAvyiwAL8qQAC/KpAAvyqwAL8rAAC/KzAAvytQAL8v4AC/MiAAvzSQAL820AC/NwAAvzcgAL83QAC/N2AAvzeAAL83oAC/N7AAvzfgAL85cAC/O8AAvzvgAL88AAC/PCAAvzxAAL88YAC/PIAAvzygAL88wAC/POAAvz8wAL8/YAC/P5AAvz/AAL8/8AC/QCAAv0BQAL9AgAC/QLAAv0DgAL9BAAC/SLAAv0jQAL9JAAC/SSAAv0lQAL9JYAC/SXAAv0mAAL9JkAC/SbAAv0nQAL9J4AC/SfAAv0oQAL9KIAC/SzAAv0tAAL9LYAC/UxAAv1MwAL9TUAC/U3AAv1OgAL9TsAC/U8AAv1PQAL9T4AC/VAAAv1QgAL9UMAC/VEAAv1RgAL9UcAC/XCAAv1xAAL9ccAC/XJAAv1zAAL9c0AC/XOAAv1zwAL9dAAC/XSAAv11AAL9dUAC/XWAAv12AAL9dkAC/XqAAv16wAL9e0AC/ZoAAv2agAL9mw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ADAiiAAwIpAAMCKYADAioAAwIqwAMCKwADAitAAwIsAAMCLEADAizAAwItAAMCLYADAi5AAwIugAMCLsADAi+AAwIvwAMCMQADAjdAAwI5gAMCOgADAjqAAwI8wAMCPYADAj5AAwI+wAMCUQADAloAAwJjwAMCbMADAm2AAwJuAAMCboADAm8AAwJvgAMCcAADAnBAAwJxAAMCd0ADAn+AAwKAAAMCgIADAoEAAwKBgAMCggADAoKAAwKDAAMCg4ADAovAAwKMgAMCjUADAo4AAwKOwAMCj4ADApBAAwKRAAMCkcADApJAAwKxAAMCsYADArIAAwKygAMCs0ADArOAAwKzwAMCtAADArRAAwK0wAMCtUADArWAAwK1wAMCtkADAraAAwLVQAMC1cADAtZAAwLWwAMC14ADAtfAAwLYAAMC2EADAtiAAwLZAAMC2YADAtnAAwLaAAMC2oADAtrAAwL5gAMC+gADAvrAAwL7QAMC/AADAvxAAwL8gAMC/MADAv0AAwL9gAMC/gADAv5AAwL+gAMC/wADAv9AAwMFgAMDBcADAwYAAwMGgAMDJUADAyXAAwMmQAMDJsADAyeAAwMnwAMDKAADAyhAAwMogAMDKQADAymAAwMpwAMDKgADAyqAAwMqwAMDSYADA0oAAwNKgAMDSwADA0vAAwNMAAMDTEADA0yAAwNMwAMDTUADA03AAwNOAAMDTkADA07AAwNPAAMDbcADA25AAwNuwAMDb0ADA3AAAwNwQAMDcIADA3DAAwNxAAMDcYADA3IAAwNyQAMDcoADA3MAAwNzQAMDkgADA5KAAwOTAAMDk4ADA5RAAwOUgAMDlMADA5UAAwOVQAMDlcADA5ZAAwOWgAMDlsADA5dAAwOXgAMDtkADA7bAAwO3QAMDt8ADA7iAAwO4wAMDuQADA7lAAwO5gAMDugADA7qAAwO6wAMDuwADA7uAAwO7wAMDzgADA9cAAwPgwAMD6cADA+qAAwPrAAMD64ADA+wAAwPsgAMD7QADA+1AAwPuAAMD9EADA/uAAwP8AAMD/IADA/0AAwP9gAMD/gADA/6AAwP/AAMEBkADBAcAAwQHwAMECIADBAlAAwQKAAMECsADBAuAAwQMAAMEKsADBCtAAwQrwAMELEADBC0AAwQtQAMELYADBC3AAwQuAAMELoADBC8AAwQvQAMEL4ADBDAAAwQwQAMETwADBE+AAwRQAAMEUIADBFFAAwRRgAMEUcADBFIAAwRSQAMEUsADBFNAAwRTgAMEU8ADBFRAAwRUgAMEc0ADBHPAAwR0QAMEdMADBHWAAwR1wAMEdgADBHZAAwR2gAMEdwADBHeAAwR3wAMEeAADBHiAAwR4wAMEl4ADBJgAAwSYgAMEmQADBJnAAwSaAAMEmkADBJqAAwSawAMEm0ADBJvAAwScAAMEnEADBJzAAwSdAAMEu8ADBLxAAwS8wAMEvUADBL4AAwS+QAMEvoADBL7AAwS/AAMEv4ADBMAAAwTAQAMEwIADBMEAAwTBQAME4AADBOCAAwThQAME4cADBOKAAwTiwAME4wADBONAAwTjgAME5AADBOSAAwTkwAME5QADBOWAAwTlwAME6YADBQhAAwUIwAMFCUADBQnAAwUKgAMFCsADBQsAAwULQAMFC4ADBQwAAwUMgAMFDMADBQ0AAwUNgAMFDcADBTKAAwU7QAMFQ0ADBUtAAwVLwAMFTEADBUzAAwVNQAMFTgADBU5AAwVOgAMFT0ADBU+AAwVQAAMFUEADBVEAAwVRwAMFUgADBVJAAwVTAAMFU0ADBVSAAwVawAMFXQADBV2AAwVeQAMFYIADBWFAAwViAAMFYoADBXTAAwV9wAMFh4ADBZCAAwWRQAMFkcADBZJAAwWSwAMFk0ADBZPAAwWUAAMFlMADBZsAAwWjQAMFo8ADBaRAAwWkwAMFpUADBaXAAwWmQAMFpsADBadAAwWvgAMFsEADBbEAAwWxwAMFsoADBbNAAwW0AAMFtMADBbWAAwW2AAMF1MADBdVAAwXVwAMF1kADBdcAAwXXQAMF14ADBdfAAwXYAAMF2IADBdkAAwXZQAMF2YADBdoAAwXaQAMF+QADBfmAAwX6AAMF+oADBftAAwX7gAMF+8ADBfwAAwX8QAMF/MADBf1AAwX9gAMF/cADBf5AAwX+gAMGHUADBh3AAwYegAMGHwADBh/AAwYgAAMGIEADBiCAAwYgwAMGIUADBiHAAwYiAAMGIkADBiLAAwYjAAMGKUADBimAAwYpwAMGKkADBkkAAwZJgAMGSgADBkqAAwZLQAMGS4ADBkvAAwZMAAMGTEADBkzAAwZNQAMGTYADBk3AAwZOQAMGToADBm1AAwZtwAMGbkADBm7AAwZvgAMGb8ADBnAAAwZwQAMGcIADBnEAAwZxgAMGccADBnIAAwZygAMGcsADBpGAAwaSAAMGkoADBpMAAwaTwAMGlAADBpRAAwaUgAMGlMADBpVAAwaVwAMGlgADBpZAAwaWwAMGlwADBrXAAwa2QAMGtsADBrdAAwa4AAMGuEADBriAAwa4wAMGuQADBrmAAwa6AAMGukADBrqAAwa7AAMGu0ADBtoAAwbagAMG2wADBtuAAwbcQAMG3IADBtzAAwbdAAMG3UADBt3AAwbeQAMG3oADBt7AAwbfQAMG34ADBvHAAwb6wAMHBIADBw2AAwcOQAMHDwADBw+AAwcQAAMHEIADBxEAAwcRQAMHEgADBxhAAwcfgAMHIEADByEAAwchwAMHIoADByNAAwckAAMHJMADBywAAwcswAMHLYADBy5AAwcvAAMHL8ADBzCAAwcxQAMHMcADB1CAAwdRAAMHUcADB1JAAwdTAAMHU0ADB1OAAwdTwAMHVAADB1SAAwdVQAMHVYADB1XAAwdWQAMHVoADB3VAAwd1wAMHdoADB3cAAwd3wAMHeAADB3hAAwd4gAMHeMADB3lAAwd6AAMHekADB3qAAwd7AAMHe0ADB5oAAweagAMHm0ADB5vAAwecgAMHnMADB50AAwedQAMHnYADB54AAweewAMHnwADB59AAwefwAMHoAADB77AAwe/QAMHwAADB8CAAwfBQAMHwYADB8HAAwfCAAMHwkADB8LAAwfDgAMHw8ADB8QAAwfEgAMHxMADB+OAAwfkAAMH5IADB+UAAwflwAMH5gADB+ZAAwfmgAMH5sADB+dAAwfoAAMH6EADB+iAAwfpAAMH6UADCAgAAwgIgAMICQADCAmAAwgKQAMICoADCArAAwgLAAMIC0ADCAvAAwgMgAMIDMADCA0AAwgNgAMIDcADCCyAAwgtAAMILcADCC5AAwgvAAMIL0ADCC+AAwgvwAMIMAADCDCAAwgxQAMIMYADCDHAAwgyQAMIMoADCFdAAwhgAAMIaAADCHAAAwhwgAMIcQADCHGAAwhyAAMIcsADCHMAAwhzQAMIdAADCHRAAwh0wAMIdQADCHWAAwh2QAMIdoADCHbAAwh3gAMId8ADCHkAAwh/QAMIgYADCIIAAwiCgAMIhMADCIWAAwiGQAMIhsADCJkAAwiiAAMIq8ADCLTAAwi1gAMItgADCLaAAwi3AAMIt4ADCLgAAwi4QAMIuQADCL9AAwjHgAMIyAADCMiAAwjJAAMIyYADCMoAAwjKgAMIywADCMuAAwjTwAMI1IADCNVAAwjWAAMI1sADCNeAAwjYQAMI2QADCNnAAwjaQAMI+QADCPmAAwj6AAMI+oADCPtAAwj7gAMI+8ADCPwAAwj8QAMI/MADCP1AAwj9gAMI/cADCP5AAwj+gAMJHUADCR3AAwkeQAMJHsADCR+AAwkfwAMJIAADCSBAAwkggAMJIQADCSGAAwkhwAMJIgADCSKAAwkiwAMJQYADCUIAAwlCwAMJQ0ADCUQAAwlEQAMJRIADCUTAAwlFAAMJRYADCUYAAwlGQAMJRoADCUcAAwlHQAMJTYADCU3AAwlOAAMJToADCW1AAwltwAMJbkADCW7AAwlvgAMJb8ADCXAAAwlwQAMJcIADCXEAAwlxgAMJccADCXIAAwlygAMJcsADCZGAAwmSAAMJkoADCZMAAwmTwAMJlAADCZRAAwmUgAMJlMADCZVAAwmVwAMJlgADCZZAAwmWwAMJlwADCbXAAwm2QAMJtsADCbdAAwm4AAMJuEADCbiAAwm4wAMJuQADCbmAAwm6AAMJukADCbqAAwm7AAMJu0ADCdoAAwnagAMJ2wADCduAAwncQAMJ3IADCdzAAwndAAMJ3UADCd3AAwneQAMJ3oADCd7AAwnfQAMJ34ADCf5AAwn+wAMJ/0ADCf/AAwoAgAMKAMADCgEAAwoBQAMKAYADCgIAAwoCgAMKAsADCgMAAwoDgAMKA8ADChYAAwofAAMKKMADCjHAAwoygAMKMwADCjOAAwo0AAMKNIADCjUAAwo1QAMKNgADCjxAAwpDgAMKRAADCkSAAwpFAAMKRYADCkYAAwpGgAMKRwADCk5AAwpPAAMKT8ADClCAAwpRQAMKUgADClLAAwpTgAMKVAADCnLAAwpzQAMKc8ADCnRAAwp1AAMKdUADCnWAAwp1wAMKdgADCnaAAwp3AAMKd0ADCneAAwp4AAMKeEADCpcAAwqXgAMKmAADCpiAAwqZQAMKmYADCpnAAwqaAAMKmkADCprAAwqbQAMKm4ADCpvAAwqcQAMKnIADCrtAAwq7wAMKvEADCrzAAwq9gAMKvcADCr4AAwq+QAMKvoADCr8AAwq/gAMKv8ADCsAAAwrAgAMKwMADCt+AAwrgAAMK4IADCuEAAwrhwAMK4gADCuJAAwrigAMK4sADCuNAAwrjwAMK5AADCuRAAwrkwAMK5QADCwPAAwsEQAMLBMADCwVAAwsGAAMLBkADCwaAAwsGwAMLBwADCweAAwsIAAMLCEADCwiAAwsJAAMLCUADCygAAwsogAMLKUADCynAAwsqgAMLKsADCysAAwsrQAMLK4ADCywAAwssgAMLLMADCy0AAwstgAMLLcADCzPAAwtSgAMLUwADC1OAAwtUAAMLVMADC1UAAwtVQAMLVYADC1XAAwtWQAMLVsADC1cAAwtXQAMLV8ADC1gAAwt8wAMLhYADC42AAwuVgAMLlgADC5aAAwuXAAMLl4ADC5hAAwuYgAMLmMADC5mAAwuZwAMLmkADC5qAAwubQAMLnAADC5xAAwucgAMLnUADC52AAwuewAMLpQADC6dAAwunwAMLqIADC6rAAwurgAMLrEADC6zAAwu/AAMLyAADC9HAAwvawAML24ADC9wAAwvcgAML3QADC92AAwveAAML3kADC98AAwvlQAML7YADC+4AAwvugAML7wADC++AAwvwAAML8IADC/EAAwvxgAML+cADC/qAAwv7QAML/AADC/zAAwv9gAML/kADC/8AAwv/wAMMAEADDB8AAwwfgAMMIAADDCCAAwwhQAMMIYADDCHAAwwiAAMMIkADDCLAAwwjQAMMI4ADDCPAAwwkQAMMJIADDENAAwxDwAMMREADDETAAwxFgAMMRcADDEYAAwxGQAMMRoADDEcAAwxHgAMMR8ADDEgAAwxIgAMMSMADDGeAAwxoAAMMaMADDGlAAwxqAAMMakADDGqAAwxqwAMMawADDGuAAwxsAAMMbEADDGyAAwxtAAMMbUADDHOAAwxzwAMMdAADDHSAAwyTQAMMk8ADDJRAAwyUwAMMlYADDJXAAwyWAAMMlkADDJaAAwyXAAMMl4ADDJfAAwyYAAMMmIADDJjAAwy3gAMMuAADDLiAAwy5AAMMucADDLoAAwy6QAMMuoADDLrAAwy7QAMMu8ADDLwAAwy8QAMMvMADDL0AAwzbwAMM3EADDNzAAwzdQAMM3gADDN5AAwzegAMM3sADDN8AAwzfgAMM4AADDOBAAwzggAMM4QADDOFAAw0AAAMNAIADDQEAAw0BgAMNAkADDQKAAw0CwAMNAw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ADE+RAAxPkwAMT5QADE+WAAxPmQAMT5oADE+bAAxPngAMT58ADE+kAAxPvQAMT8YADE/IAAxPygAMT9MADE/WAAxP2QAMT9sADFAkAAxQSAAMUG8ADFCTAAxQlgAMUJgADFCaAAxQnAAMUJ4ADFCgAAxQoQAMUKQADFC9AAxQ3gAMUOAADFDiAAxQ5AAMUOYADFDoAAxQ6gAMUOwADFDuAAxRDwAMURIADFEVAAxRGAAMURsADFEeAAxRIQAMUSQADFEnAAxRKQAMUaQADFGmAAxRqAAMUaoADFGtAAxRrgAMUa8ADFGwAAxRsQAMUbMADFG1AAxRtgAMUbcADFG5AAxRugAMUjUADFI3AAxSOQAMUjsADFI+AAxSPwAMUkAADFJBAAxSQgAMUkQADFJGAAxSRwAMUkgADFJKAAxSSwAMUsYADFLIAAxSywAMUs0ADFLQAAxS0QAMUtIADFLTAAxS1AAMUtYADFLYAAxS2QAMUtoADFLcAAxS3QAMUvYADFL3AAxS+AAMUvoADFN1AAxTdwAMU3kADFN7AAxTfgAMU38ADFOAAAxTgQAMU4IADFOEAAxThgAMU4cADFOIAAxTigAMU4sADFQGAAxUCAAMVAoADFQMAAxUDwAMVBAADFQRAAxUEgAMVBMADFQVAAxUFwAMVBgADFQZAAxUGwAMVBwADFSXAAxUmQAMVJsADFSdAAxUoAAMVKEADFSiAAxUowAMVKQADFSmAAxUqAAMVKkADFSqAAxUrAAMVK0ADFUoAAxVKgAMVSwADFUuAAxVMQAMVTIADFUzAAxVNAAMVTUADFU3AAxVOQAMVToADFU7AAxVPQAMVT4ADFW5AAxVuwAMVb0ADFW/AAxVwgAMVcMADFXEAAxVxQAMVcYADFXIAAxVygAMVcsADFXMAAxVzgAMVc8ADFYYAAxWPAAMVmMADFaHAAxWigAMVowADFaOAAxWkAAMVpIADFaUAAxWlQAMVpgADFaxAAxWzgAMVtAADFbSAAxW1AAMVtYADFbYAAxW2gAMVtwADFb5AAxW/AAMVv8ADFcCAAxXBQAMVwgADFcLAAxXDgAMVxAADFeLAAxXjQAMV48ADFeRAAxXlAAMV5UADFeWAAxXlwAMV5gADFeaAAxXnAAMV50ADFeeAAxXoAAMV6EADFgcAAxYHgAMWCAADFgiAAxYJQAMWCYADFgnAAxYKAAMWCkADFgrAAxYLQAMWC4ADFgvAAxYMQAMWDIADFitAAxYrwAMWLEADFizAAxYtgAMWLcADFi4AAxYuQAMWLoADFi8AAxYvgAMWL8ADFjAAAxYwgAMWMMADFk+AAxZQAAMWUIADFlEAAxZRwAMWUgADFlJAAxZSgAMWUsADFlNAAxZTwAMWVAADFlRAAxZUwAMWVQADFnPAAxZ0QAMWdMADFnVAAxZ2AAMWdkADFnaAAxZ2wAMWdwADFneAAxZ4AAMWeEADFniAAxZ5AAMWeUADFpgAAxaYgAMWmUADFpnAAxaagAMWmsADFpsAAxabQAMWm4ADFpwAAxacgAMWnMADFp0AAxadgAMWncADFqWAAxbEQAMWxMADFsVAAxbFwAMWxoADFsbAAxbHAAMWx0ADFseAAxbIAAMWyIADFsjAAxbJAAMWyYADFsnAAxbugAMW90ADFv9AAxcHQAMXB8ADFwhAAxcIwAMXCUADFwoAAxcKQAMXCoADFwtAAxcLgAMXDAADFwxAAxcNAAMXDcADFw4AAxcOQAMXDwADFw9AAxcQgAMXFsADFxkAAxcZgAMXGkADFxyAAxcdQAMXHgADFx6AAxcwwAMXOcADF0OAAxdMgAMXTUADF03AAxdOQAMXTsADF09AAxdPwAMXUAADF1DAAxdXAAMXX0ADF1/AAxdgQAMXYMADF2FAAxdhwAMXYkADF2LAAxdjQAMXa4ADF2xAAxdtAAMXbcADF26AAxdvQAMXcAADF3DAAxdxgAMXcgADF5DAAxeRQAMXkcADF5JAAxeTAAMXk0ADF5OAAxeTwAMXlAADF5SAAxeVAAMXlUADF5WAAxeWAAMXlkADF7UAAxe1gAMXtgADF7aAAxe3QAMXt4ADF7fAAxe4AAMXuEADF7jAAxe5QAMXuYADF7nAAxe6QAMXuoADF9lAAxfZwAMX2oADF9sAAxfbwAMX3AADF9xAAxfcgAMX3MADF91AAxfdwAMX3gADF95AAxfewAMX3wADF+VAAxflgAMX5cADF+ZAAxgFAAMYBYADGAYAAxgGgAMYB0ADGAeAAxgHwAMYCAADGAhAAxgIwAMYCUADGAmAAxgJwAMYCkADGAqAAxgpQAMYKcADGCpAAxgqwAMYK4ADGCvAAxgsAAMYLEADGCyAAxgtAAMYLYADGC3AAxguAAMYLoADGC7AAxhNgAMYTgADGE6AAxhPAAMYT8ADGFAAAxhQQAMYUIADGFDAAxhRQAMYUcADGFIAAxhSQAMYUsADGFMAAxhxwAMYckADGHLAAxhzQAMYdAADGHRAAxh0gAMYdMADGHUAAxh1gAMYdgADGHZAAxh2gAMYdwADGHdAAxiWAAMYloADGJcAAxiXgAMYmEADGJiAAxiYwAMYmQADGJlAAxiZwAMYmkADGJqAAxiawAMYm0ADGJuAAxitwAMYtsADGMCAAxjJgAMYykADGMsAAxjLgAMYzAADGMyAAxjNAAMYzUADGM4AAxjUQAMY24ADGNxAAxjdAAMY3cADGN6AAxjfQAMY4AADGODAAxjoAAMY6MADGOmAAxjqQAMY6wADGOvAAxjsgAMY7UADGO3AAxkMgAMZDQADGQ3AAxkOQAMZDwADGQ9AAxkPgAMZD8ADGRAAAxkQgAMZEUADGRGAAxkRwAMZEkADGRKAAxkxQAMZMcADGTKAAxkzAAMZM8ADGTQAAxk0QAMZNIADGTTAAxk1QAMZNgADGTZAAxk2gAMZNwADGTdAAxlWAAMZVoADGVdAAxlXwAMZWIADGVjAAxlZAAMZWUADGVmAAxlaAAMZWsADGVsAAxlbQAMZW8ADGVwAAxl6wAMZe0ADGXwAAxl8gAMZfUADGX2AAxl9wAMZfgADGX5AAxl+wAMZf4ADGX/AAxmAAAMZgIADGYDAAxmfgAMZoAADGaCAAxmhAAMZocADGaIAAxmiQAMZooADGaLAAxmjQAMZpAADGaRAAxmkgAMZpQADGaVAAxnEAAMZxIADGcUAAxnFgAMZxkADGcaAAxnGwAMZxwADGcdAAxnHwAMZyIADGcjAAxnJAAMZyYADGcnAAxnogAMZ6QADGenAAxnqQAMZ6wADGetAAxnrgAMZ68ADGewAAxnsgAMZ7UADGe2AAxntwAMZ7kADGe6AAxnywAMZ8wADGfOAAxoSQAMaEsADGhNAAxoTwAMaFIADGhTAAxoVAAMaFUADGhWAAxoWAAMaFsADGhcAAxoXQAMaF8ADGhgAAxo2wAMaN0ADGjfAAxo4QAMaOQADGjlAAxo5gAMaOcADGjoAAxo6gAMaO0ADGjuAAxo7wAMaPEADGjyAAxpbQAMaW8ADGlyAAxpdAAMaXcADGl4AAxpeQAMaXoADGl7AAxpfQAMaYAADGmBAAxpggAMaYQADGmFAAxqGAAMajsADGpbAAxqewAMan0ADGp/AAxqgQAMaoMADGqGAAxqhwAMaogADGqLAAxqjAAMao4ADGqPAAxqkgAMapUADGqWAAxqlwAMapoADGqbAAxqoAAMarkADGrCAAxqxAAMascADGrQAAxq0wAMatYADGrYAAxrIQAMa0UADGtsAAxrkAAMa5MADGuVAAxrlwAMa5kADGubAAxrnQAMa54ADGuhAAxrugAMa9sADGvdAAxr3wAMa+EADGvjAAxr5QAMa+cADGvpAAxr6wAMbAwADGwPAAxsEgAMbBUADGwYAAxsGwAMbB4ADGwhAAxsJAAMbCYADGyhAAxsowAMbKUADGynAAxsqgAMbKsADGysAAxsrQAMbK4ADGywAAxssgAMbLMADGy0AAxstgAMbLcADG0yAAxtNAAMbTYADG04AAxtOwAMbTwADG09AAxtPgAMbT8ADG1BAAxtQwAMbUQADG1FAAxtRwAMbUgADG3DAAxtxQAMbcgADG3KAAxtzQAMbc4ADG3PAAxt0AAMbdEADG3TAAxt1QAMbdYADG3XAAxt2QAMbdoADG3zAAxt9AAMbfUADG33AAxucgAMbnQADG52AAxueAAMbnsADG58AAxufQAMbn4ADG5/AAxugQAMboMADG6EAAxuhQAMbocADG6IAAxvAwAMbwUADG8HAAxvCQAMbwwADG8NAAxvDgAMbw8ADG8QAAxvEgAMbxQADG8VAAxvFgAMbxgADG8ZAAxvlAAMb5YADG+YAAxvmgAMb50ADG+eAAxvnwAMb6AADG+hAAxvowAMb6UADG+mAAxvpwAMb6kADG+qAAxwJQAMcCcADHApAAxwKwAMcC4ADHAvAAxwMAAMcDEADHAyAAxwNAAMcDYADHA3AAxwOAAMcDoADHA7AAxwtgAMcLgADHC6AAxwvAAMcL8ADHDAAAxwwQAMcMIADHDDAAxwxQAMcMcADHDIAAxwyQAMcMsADHDMAAxxFQAMcTkADHFgAAxxhAAMcYcADHGKAAxxjAAMcY4ADHGQAAxxkgAMcZMADHGWAAxxrwAMccwADHHPAAxx0gAMcdUADHHYAAxx2wAMcd4ADHHhAAxx/gAMcgEADHIEAAxyBwAMcgoADHINAAxyEAAMchMADHIVAAxykAAMcpIADHKVAAxylwAMcpoADHKbAAxynAAMcp0ADHKeAAxyoAAMcqMADHKkAAxypQAMcqcADHKoAAxzIwAMcyUADHMoAAxzKgAMcy0ADHMuAAxzLwAMczAADHMxAAxzMwAMczYADHM3AAxzOAAMczoADHM7AAxztgAMc7gADHO7AAxzvQAMc8AADHPBAAxzwgAMc8MADHPEAAxzxgAMc8kADHPKAAxzywAMc80ADHPOAAx0SQAMdEsADHROAAx0UAAMdFMADHRUAAx0VQAMdFYADHRXAAx0WQAMdFwADHRdAAx0XgAMdGAADHRhAAx05AAMdQgADHUsAAx1TwAMdXYADHWWAAx1vQAMdeQADHYEAAx2KAAMdkwADHZOAAx2UQAMdlMADHZVAAx2VwAMdloADHZdAAx2XwAMdmEADHZkAAx2ZgAMdmgADHZrAAx2bgAMdm8ADHZ0AAx2jQAMdpIADHaUAAx2mQAMdpwADHaeAAx25wAMdwsADHcyAAx3VgAMd1kADHdbAAx3XQAMd18ADHdhAAx3YwAMd2QADHdnAAx3gAAMd6UADHenAAx3qQAMd6sADHetAAx3rwAMd7EADHezAAx3tQAMd7cADHfcAAx33wAMd+IADHflAAx36AAMd+sADHfuAAx38QAMd/QADHf3AAx3+QAMeHQADHh2AAx4eQAMeHsADHh+AAx4fwAMeIAADHiBAAx4ggAMeIQADHiGAAx4hwAMeIgADHiKAAx4iwAMeJwADHidAAx4nwAMeRoADHkcAAx5HwAMeSEADHkkAAx5JQAMeSYADHknAAx5KAAMeSoADHksAAx5LQAMeS4ADHkwAAx5MQAMeWAADHnbAAx53QAMeeAADHniAAx55QAMeeYADHnnAAx56AAMeekADHnrAAx57QAMee4ADHnvAAx58QAMefIADHoDAAx6BAAMegYADHqBAAx6gwAMeoUADHqHAAx6igAMeosADHqMAAx6jQAMeo4ADHqQAAx6kgAMepMADHqUAAx6lgAMepcADHsSAAx7FAAMexcADHsZAAx7HAAMex0ADHseAAx7HwAMeyAADHsiAAx7JAAMeyUADHsmAAx7KAAMeykADHs6AAx7OwAMez0ADHu4AAx7ugAMe7wADHu+AAx7wQAMe8IADHvDAAx7xAAMe8UADHvHAAx7yQAMe8oADHvLAAx7zQAMe84ADHxJAAx8SwAMfE4ADHxQAAx8UwAMfFQADHxVAAx8VgAMfFcADHxZAAx8WwAMfFwADHxdAAx8XwAMfGAADHx5AAx8egAMfHsADHx9AAx8+AAMfPoADHz8AAx8/gAMfQEADH0CAAx9AwAMfQQADH0FAAx9BwAMfQkADH0KAAx9CwAMfQ0ADH0OAAx9iQAMfYsADH2OAAx9kAAMfZMADH2UAAx9lQAMfZYADH2XAAx9mQAMfZsADH2cAAx9nQAMfZ8ADH2gAAx91QAMfe4ADH3/AAx+AgAMfgUADH4IAAx+CwAMfhwADH4fAAx+IgAMfiUADH4oAAx+KgAMfj8ADH5XAAx+bQAMfoAADH8TAAx/NgAMf1YADH92AAx/eAAMf3oADH98AAx/fgAMf4EADH+CAAx/gwAMf4YADH+HAAx/iQAMf4oADH+MAAx/jwAMf5AADH+RAAx/lAAMf5UADH+eAAx/twAMf8AADH/CAAx/xAAMf80ADH/QAAx/0wAMf9UADIAeAAyAQgAMgGkADICNAAyAkAAMgJIADICUAAyAlgAMgJgADICaAAyAmwAMgJ4ADIC3AAyA2AAMgNoADIDcAAyA3gAMgOAADIDiAAyA5AAMgOYADIDoAAyBCQAMgQwADIEPAAyBEgAMgRUADIEYAAyBGwAMgR4ADIEhAAyBIwAMgZ4ADIGgAAyBogAMgaQADIGnAAyBqAAMgakADIGqAAyBqwAMga0ADIGvAAyBsAAMgbEADIGzAAyBtAAMgi8ADIIxAAyCMwAMgjUADII4AAyCOQAMgjoADII7AAyCPAAMgj4ADIJAAAyCQQAMgkIADIJEAAyCRQAMgsAADILCAAyCxQAMgscADILKAAyCywAMgswADILNAAyCzgAMgtAADILSAAyC0wAMgtQADILWAAyC1wAMgvAADILxAAyC8gAMgvQADINvAAyDcQAMg3MADIN1AAyDeAAMg3kADIN6AAyDewAMg3wADIN+AAyDgAAMg4EADIOCAAyDhAAMg4UADIQAAAyEAgAMhAQADIQGAAyECQAMhAoADIQLAAyEDAAMhA0ADIQPAAyEEQAMhBIADIQTAAyEFQAMhBYADISRAAyEkwAMhJUADISXAAyEmgAMhJsADIScAAyEnQAMhJ4ADISgAAyEogAMhKMADISkAAyEpgAMhKcADIUiAAyFJAAMhSYADIUoAAyFKwAMhSwADIUtAAyFLgAMhS8ADIUxAAyFMwAMhTQADIU1AAyFNwAMhTgADIWzAAyFtQAMhbcADIW5AAyFvAAMhb0ADIW+AAyFvwAMhcAADIXCAAyFxAAMhcUADIXGAAyFyAAMhckADIYSAAyGNgAMhl0ADIaBAAyGhAAMhoYADIaIAAyGigAMhowADIaOAAyGjwAMhpIADIarAAyGyAAMhsoADIbMAAyGzgAMhtAADIbSAAyG1AAMhtYADIbzAAyG9gAMhvkADIb8AAyG/wAMhwIADIcFAAyHCAAMhwoADIeFAAyHhwAMh4kADIeLAAyHjgAMh48ADIeQAAyHkQAMh5IADIeUAAyHlgAMh5cADIeYAAyHmgAMh5sADIgWAAyIGAAMiBoADIgcAAyIHwAMiCAADIghAAyIIgAMiCMADIglAAyIJwAMiCgADIgpAAyIKwAMiCwADIinAAyIqQAMiKsADIitAAyIsAAMiLEADIiyAAyIswAMiLQADIi2AAyIuAAMiLkADIi6AAyIvAAMiL0ADIk4AAyJOgAMiTwADIk+AAyJQQAMiUIADIlDAAyJRAAMiUUADIlHAAyJSQAMiUoADIlLAAyJTQAMiU4ADInJAAyJywAMic0ADInPAAyJ0gAMidMADInUAAyJ1QAMidYADInYAAyJ2gAMidsADIncAAyJ3gAMid8ADIpaAAyKXAAMil8ADIphAAyKZAAMimUADIpmAAyKZwAMimgADIpqAAyKbAAMim0ADIpuAAyKcAAMinEADIqAAAyK+wAMiv0ADIr/AAyLAQAMiwQADIsFAAyLBgAMiwcADIsIAAyLCgAMiwwADIsNAAyLDgAMixAADIsRAAyLpAAMi8cADIvnAAyMBwAMjAkADIwLAAyMDQAMjA8ADIwSAAyMEwAMjBQADIwXAAyMGAAMjBoADIwbAAyMHQAMjCAADIwhAAyMIgAMjCUADIwmAAyMKwAMjEQADIxNAAyMTwAMjFEADIxaAAyMXQAMjGAADIxiAAyMqwAMjM8ADIz2AAyNGgAMjR0ADI0fAAyNIQAMjSMADI0lAAyNJwAMjSgADI0rAAyNRAAMjWUADI1nAAyNaQAMjWsADI1tAAyNbwAMjXEADI1zAAyNdQAMjZYADI2ZAAyNnAAMjZ8ADI2iAAyNpQAMjagADI2rAAyNrgAMjbAADI4rAAyOLQAMji8ADI4xAAyONAAMjjUADI42AAyONwAMjjgADI46AAyOPAAMjj0ADI4+AAyOQAAMjkEADI68AAyOvgAMjsAADI7CAAyOxQAMjsYADI7HAAyOyAAMjskADI7LAAyOzQAMjs4ADI7PAAyO0QAMjtIADI9NAAyPTwAMj1IADI9UAAyPVwAMj1gADI9ZAAyPWgAMj1sADI9dAAyPXwAMj2AADI9hAAyPYwAMj2QADI99AAyPfgAMj38ADI+BAAyP/AAMj/4ADJAAAAyQAgAMkAUADJAGAAyQBwAMkAgADJAJAAyQCwAMkA0ADJAOAAyQDwAMkBEADJASAAyQjQAMkI8ADJCRAAyQkwAMkJYADJCXAAyQmAAMkJkADJCaAAyQnAAMkJ4ADJCfAAyQoAAMkKIADJCjAAyRHgAMkSAADJEiAAyRJAAMkScADJEoAAyRKQAMkSoADJErAAyRLQAMkS8ADJEwAAyRMQAMkTMADJE0AAyRrwAMkbEADJGzAAyRtQAMkbgADJG5AAyRugAMkbsADJG8AAyRvgAMkcAADJHBAAyRwgAMkcQADJHFAAySQAAMkkIADJJEAAySRgAMkkkADJJKAAySSwAMkkwADJJNAAySTwAMklEADJJSAAySUwAMklUADJJWAAySnwAMksMADJLqAAyTDgAMkxEADJMTAAyTFQAMkxcADJMZAAyTGwAMkxwADJMfAAyTOAAMk1UADJNXAAyTWQAMk1sADJNdAAyTXwAMk2EADJNjAAyTgAAMk4MADJOGAAyTiQAMk4wADJOPAAyTkgAMk5UADJOXAAyUEgAMlBQADJQWAAyUGAAMlBsADJQcAAyUHQAMlB4ADJQfAAyUIQAMlCMADJQkAAyUJQAMlCcADJQoAAyUowAMlKUADJSnAAyUqQAMlKwADJStAAyUrgAMlK8ADJSwAAyUsgAMlLQADJS1AAyUtgAMlLgADJS5AAyVNAAMlTYADJU4AAyVOgAMlT0ADJU+AAyVPwAMlUAADJVBAAyVQwAMlUUADJVGAAyVRwAMlUkADJVKAAyVxQAMlccADJXJAAyVywAMlc4ADJXPAAyV0AAMldEADJXSAAyV1AAMldYADJXXAAyV2AAMldoADJXbAAyWVgAMllgADJZaAAyWXAAMll8ADJZgAAyWYQAMlmIADJZjAAyWZQAMlmcADJZoAAyWaQAMlmsADJZsAAyW5wAMlukADJbsAAyW7gAMlvEADJbyAAyW8wAMlvQADJb1AAyW9wAMlvkADJb6AAyW+wAMlv0ADJb+AAyXHQAMl5gADJeaAAyXnAAMl54ADJehAAyXogAMl6MADJekAAyXpQAMl6cADJepAAyXqgAMl6sADJetAAyXrgAMmEEADJhkAAyYhAAMmKQADJimAAyYqAAMmKoADJisAAyYrwAMmLAADJixAAyYtAAMmLUADJi3AAyYuAAMmLoADJi9AAyYvgAMmL8ADJjCAAyYwwAMmMgADJjhAAyY6gAMmOwADJjuAAyY9wAMmPoADJj9AAyY/wAMmUgADJlsAAyZkwAMmbcADJm6AAyZvAAMmb4ADJnAAAyZwgAMmcQADJnFAAyZyAAMmeEADJoCAAyaBAAMmgYADJoIAAyaCgAMmgwADJoOAAyaEAAMmhIADJozAAyaNgAMmjkADJo8AAyaPwAMmkIADJpFAAyaSAAMmksADJpNAAyayAAMmsoADJrMAAyazgAMmtEADJrSAAya0wAMmtQADJrVAAya1wAMmtkADJraAAya2wAMmt0ADJreAAybWQAMm1sADJtdAAybXwAMm2IADJtjAAybZAAMm2UADJtmAAybaAAMm2oADJtrAAybbAAMm24ADJtvAAyb6gAMm+wADJvvAAyb8QAMm/QADJv1AAyb9gAMm/cADJv4AAyb+gAMm/wADJv9AAyb/gAMnAAADJwBAAycGgAMnBsADJwcAAycHgAMnJkADJybAAycnQAMnJ8ADJyiAAycowAMnKQADJylAAycpgAMnKgADJyqAAycqwAMnKwADJyuAAycrwAMnSoADJ0sAAydLgAMnTAADJ0zAAydNAAMnTUADJ02AAydNwAMnTkADJ07AAydPAAMnT0ADJ0/AAydQAAMnbsADJ29AAydvwAMncEADJ3EAAydxQAMncYADJ3HAAydyAAMncoADJ3MAAydzQAMnc4ADJ3QAAyd0QAMnkwADJ5OAAyeUAAMnlIADJ5VAAyeVgAMnlcADJ5YAAyeWQAMnlsADJ5dAAyeXgAMnl8ADJ5hAAyeYgAMnt0ADJ7fAAye4QAMnuMADJ7mAAye5wAMnugADJ7pAAye6gAMnuwADJ7uAAye7wAMnvAADJ7yAAye8wAMnzwADJ9gAAyfhwAMn6sADJ+uAAyfsAAMn7IADJ+0AAyftgAMn7gADJ+5AAyfvAAMn9UADJ/yAAyf9AAMn/YADJ/4AAyf+gAMn/wADJ/+AAygAAAMoB0ADKAgAAygIwAMoCYADKApAAygLAAMoC8ADKAyAAygNAAMoK8ADKCxAAygswAMoLUADKC4AAyguQAMoLoADKC7AAygvAAMoL4ADKDAAAygwQAMoMIADKDEAAygxQAMoUAADKFCAAyhRAAMoUYADKFJAAyhSgAMoUsADKFMAAyhTQAMoU8ADKFRAAyhUgAMoVMADKFVAAyhVgAModEADKHTAAyh1QAModcADKHaAAyh2wAModwADKHdAAyh3gAMoeAADKHiAAyh4wAMoeQADKHmAAyh5wAMomIADKJkAAyiZgAMomgADKJrAAyibAAMom0ADKJuAAyibwAMonEADKJzAAyidAAMonUADKJ3AAyieAAMovMADKL1AAyi9wAMovkADKL8AAyi/QAMov4ADKL/AAyjAAAMowIADKMEAAyjBQAMowYADKMIAAyjCQAMo4QADKOGAAyjiQAMo4sADKOOAAyjjwAMo5AADKORAAyjkgAMo5QADKOWAAyjlwAMo5gADKOaAAyjmwAMo7oADKQ1AAykNwAMpDkADKQ7AAykPgAMpD8ADKRAAAykQQAMpEIADKREAAykRgAMpEcADKRIAAykSgAMpEsADKTeAAylAQAMpSEADKVBAAylQwAMpUUADKVHAAylSQAMpUwADKVNAAylTgAMpVEADKVSAAylVAAMpVUADKVYAAylWwAMpVwADKVdAAylYAAMpWEADKVmAAylfwAMpYgADKWKAAyljQAMpZYADKWZAAylnAAMpZ4ADKXnAAymCwAMpjIADKZWAAymWQAMplsADKZdAAymXwAMpmEADKZjAAymZAAMpmcADKaAAAymoQAMpqMADKalAAympwAMpqkADKarAAymrQAMpq8ADKaxAAym0gAMptUADKbYAAym2wAMpt4ADKbhAAym5AAMpucADKbqAAym7AAMp2cADKdpAAynawAMp20ADKdwAAyncQAMp3IADKdzAAyndAAMp3YADKd4AAyneQAMp3oADKd8AAynfQAMp/gADKf6AAyn/AAMp/4ADKgBAAyoAgAMqAMADKgEAAyoBQAMqAcADKgJAAyoCgAMqAsADKgNAAyoDgAMqIkADKiLAAyojgAMqJAADKiTAAyolAAMqJUADKiWAAyolwAMqJkADKibAAyonAAMqJ0ADKifAAyooAAMqLkADKi6AAyouwAMqL0ADKk4AAypOgAMqTwADKk+AAypQQAMqUIADKlDAAypRAAMqUUADKlHAAypSQAMqUoADKlLAAypTQAMqU4ADKnJAAypywAMqc0ADKnPAAyp0gAMqdMADKnUAAyp1QAMqdYADKnYAAyp2gAMqdsADKncAAyp3gAMqd8ADKpaAAyqXAAMql4ADKpgAAyqYwAMqmQADKplAAyqZgAMqmcADKppAAyqawAMqmwADKptAAyqbwAMqnAADKrrAAyq7QAMqu8ADKrxAAyq9AAMqvUADKr2AAyq9wAMqvgADKr6AAyq/AAMqv0ADKr+AAyrAAAMqwEADKt8AAyrfgAMq4AADKuCAAyrhQAMq4YADKuHAAyriAAMq4kADKuLAAyrjQAMq44ADKuPAAyrkQAMq5IADKvbAAyr/wAMrCYADKxKAAysTQAMrFAADKxSAAysVAAMrFYADKxYAAysWQAMrFwADKx1AAyskgAMrJUADKyYAAysmwAMrJ4ADKyhAAyspAAMrKcADKzEAAysxwAMrMoADKzNAAys0AAMrNMADKzWAAys2QAMrNsADK1WAAytWAAMrVsADK1dAAytYAAMrWEADK1iAAytYwAMrWQADK1mAAytaQAMrWoADK1rAAytbQAMrW4ADK3pAAyt6wAMre4ADK3wAAyt8wAMrfQADK31AAyt9gAMrfcADK35AAyt/AAMrf0ADK3+AAyuAAAMrgEADK58AAyufgAMroEADK6DAAyuhgAMrocADK6IAAyuiQAMrooADK6MAAyujwAMrpAADK6RAAyukwAMrpQADK8PAAyvEQAMrxQADK8WAAyvGQAMrxoADK8bAAyvHAAMrx0ADK8fAAyvIgAMryMADK8kAAyvJgAMrycADK+iAAyvpAAMr6YADK+oAAyvqwAMr6wADK+tAAyvrgAMr68ADK+xAAyvtAAMr7UADK+2AAyvuAAMr7kADLA0AAywNgAMsDgADLA6AAywPQAMsD4ADLA/AAywQAAMsEEADLBDAAywRgAMsEcADLBIAAywSgAMsEsADLDGAAywyAAMsMsADLDNAAyw0AAMsNEADLDSAAyw0wAMsNQADLDWAAyw2QAMsNoADLDbAAyw3QAMsN4ADLDvAAyw8AAMsPIADLFtAAyxbwAMsXEADLFzAAyxdgAMsXcADLF4AAyxeQAMsXoADLF8AAyxfwAMsYAADLGBAAyxgwAMsYQADLH/AAyyAQAMsgMADLIFAAyyCAAMsgkADLIKAAyyCwAMsgwADLIOAAyyEQAMshIADLITAAyyFQAMshYADLKRAAyykwAMspYADLKYAAyymwAMspwADLKdAAyyngAMsp8ADLKhAAyypAAMsqUADLKmAAyyqAAMsqkADLM8AAyzXwAMs38ADLOfAAyzoQAMs6MADLOlAAyzpwAMs6oADLOrAAyzrAAMs68ADLOwAAyzsgAMs7MADLO1AAyzuAAMs7kADLO6AAyzvQAMs74ADLPDAAyz3AAMs+UADLPnAAyz6QAMs/IADLP1AAyz+AAMs/oADLRDAAy0ZwAMtI4ADLSyAAy0tQAMtLcADLS5AAy0uwAMtL0ADLS/AAy0wAAMtMMADLTcAAy0/QAMtP8ADLUBAAy1AwAMtQUADLUHAAy1CQAMtQsADLUNAAy1LgAMtTEADLU0AAy1NwAMtToADLU9AAy1QAAMtUMADLVGAAy1SAAMtcMADLXFAAy1xwAMtckADLXMAAy1zQAMtc4ADLXPAAy10AAMtdIADLXUAAy11QAMtdYADLXYAAy12QAMtlQADLZWAAy2WAAMtloADLZdAAy2XgAMtl8ADLZgAAy2YQAMtmMADLZlAAy2ZgAMtmcADLZpAAy2agAMtuUADLbnAAy26gAMtuwADLbvAAy28AAMtvEADLbyAAy28wAMtvUADLb3AAy2+AAMtvkADLb7AAy2/AAMtxUADLcWAAy3FwAMtxkADLeUAAy3lgAMt5gADLeaAAy3nQAMt54ADLefAAy3oAAMt6EADLejAAy3pQAMt6YADLenAAy3qQAMt6oADLglAAy4JwAMuCkADLgrAAy4LgAMuC8ADLgwAAy4MQAMuDIADLg0AAy4NgAMuDcADLg4AAy4OgAMuDsADLi2AAy4uAAMuLoADLi8AAy4vwAMuMAADLjBAAy4wgAMuMMADLjFAAy4xwAMuMgADLjJAAy4ywAMuMwADLlHAAy5SQAMuUsADLlNAAy5UAAMuVEADLlSAAy5UwAMuVQADLlWAAy5WAAMuVkADLlaAAy5XAAMuV0ADLnYAAy52gAMudwADLneAAy54QAMueIADLnjAAy55AAMueUADLnnAAy56QAMueoADLnrAAy57QAMue4ADLo3AAy6WwAMuoIADLqmAAy6qQAMuqsADLqtAAy6rwAMurEADLqzAAy6tAAMurcADLrQAAy67QAMuu8ADLrxAAy68wAMuvUADLr3AAy6+QAMuvsADLsYAAy7GwAMux4ADLshAAy7JAAMuycADLsqAAy7LQAMuy8ADLuqAAy7rAAMu64ADLuwAAy7swAMu7QADLu1AAy7tgAMu7cADLu5AAy7uwAMu7wADLu9AAy7vwAMu8AADLw7AAy8PQAMvD8ADLxBAAy8RAAMvEUADLxGAAy8RwAMvEgADLxKAAy8TAAMvE0ADLxOAAy8UAAMvFEADLzMAAy8zgAMvNAADLzSAAy81QAMvNYADLzXAAy82AAMvNkADLzbAAy83QAMvN4ADLzfAAy84QAMvOIADL1dAAy9XwAMvWEADL1jAAy9ZgAMvWcADL1oAAy9aQAMvWoADL1sAAy9bgAMvW8ADL1wAAy9cgAMvXMADL3uAAy98AAMvfIADL30AAy99wAMvfgADL35AAy9+gAMvfsADL39AAy9/wAMvgAADL4BAAy+AwAMvgQADL5/AAy+gQAMvoMADL6FAAy+iAAMvokADL6KAAy+iwAMvowADL6OAAy+kAAMvpEADL6SAAy+lAAMvpUADL8QAAy/EgAMvxQADL8WAAy/GQAMvxoADL8bAAy/HAAMvx0ADL8fAAy/IQAMvyIADL8jAAy/JQAMvyYADL+5AAy/3AAMv/wADMAcAAzAHgAMwCAADMAiAAzAJAAMwCcADMAoAAzAKQAMwCwADMAtAAzALwAMwDAADMAzAAzANgAMwDcADMA4AAzAOwAMwDwADMBBAAzAWgAMwGMADMBlAAzAaAAMwHEADMB0AAzAdwAMwHkADMDCAAzA5gAMwQ0ADMExAAzBNAAMwTYADME4AAzBOgAMwTwADME+AAzBPwAMwUIADMFbAAzBfAAMwX4ADMGAAAzBggAMwYQADMGGAAzBiAAMwYoADMGMAAzBrQAMwbAADMGzAAzBtgAMwbkADMG8AAzBvwAMwcIADMHFAAzBxwAMwkIADMJEAAzCRgAMwkgADMJLAAzCTAAMwk0ADMJOAAzCTwAMwlEADMJTAAzCVAAMwlUADMJXAAzCWAAMwtMADMLVAAzC1wAMwtkADMLcAAzC3QAMwt4ADMLfAAzC4AAMwuIADMLkAAzC5QAMwuYADMLoAAzC6QAMw2QADMNmAAzDaQAMw2sADMNuAAzDbwAMw3AADMNxAAzDcgAMw3QADMN2AAzDdwAMw3gADMN6AAzDewAMw5QADMOVAAzDlgAMw5gADMQTAAzEFQAMxBcADMQZAAzEHAAMxB0ADMQeAAzEHwAMxCAADMQiAAzEJAAMxCUADMQmAAzEKAAMxCkADMSkAAzEpgAMxKgADMSqAAzErQAMxK4ADMSvAAzEsAAMxLEADMSzAAzEtQAMxLYADMS3AAzEuQAMxLoADMU1AAzFNwAMxTkADMU7AAzFPgAMxT8ADMVAAAzFQQAMxUIADMVEAAzFRgAMxUcADMVIAAzFSgAMxUsADMXGAAzFyAAMxcoADMXMAAzFzwAMxdAADMXRAAzF0gAMxdMADMXVAAzF1wAMxdgADMXZAAzF2wAMxdwADMZXAAzGWQAMxlsADMZdAAzGYAAMxmEADMZiAAzGYwAMxmQADMZmAAzGaAAMxmkADMZqAAzGbAAMxm0ADMa2AAzG2gAMxwEADMclAAzHKAAMxysADMctAAzHLwAMxzEADMczAAzHNAAMxzcADMdQAAzHbQAMx3AADMdzAAzHdgAMx3kADMd8AAzHfwAMx4IADMefAAzHogAMx6UADMeoAAzHqwAMx64ADMexAAzHtAAMx7YADMgxAAzIMwAMyDYADMg4AAzIOwAMyDwADMg9AAzIPgAMyD8ADMhBAAzIRAAMyEUADMhGAAzISAAMyEkADMjEAAzIxgAMyMkADMjLAAzIzgAMyM8ADMjQAAzI0QAMyNIADMjUAAzI1wAMyNgADMjZAAzI2wAMyNwADMlXAAzJWQAMyVwADMleAAzJYQAMyWIADMljAAzJZAAMyWUADMlnAAzJagAMyWsADMlsAAzJbgAMyW8ADMnqAAzJ7AAMye8ADMnxAAzJ9AAMyfUADMn2AAzJ9wAMyfgADMn6AAzJ/QAMyf4ADMn/AAzKAQAMygIADMqFAAzKqQAMys0ADMrwAAzLFwAMyzcADMteAAzLhQAMy6UADMvJAAzL7QAMy+8ADMvyAAzL9AAMy/YADMv4AAzL+wAMy/4ADMwAAAzMAgAMzAUADMwHAAzMCQAMzAwADMwPAAzMEAAMzBUADMwuAAzMMwAMzDUADMw6AAzMPQAMzD8ADMyIAAzMrAAMzNMADMz3AAzM+gAMzPwADMz+AAzNAAAMzQIADM0EAAzNBQAMzQgADM0hAAzNRgAMzUgADM1KAAzNTAAMzU4ADM1QAAzNUgAMzVQADM1WAAzNWAAMzX0ADM2AAAzNgwAMzYYADM2JAAzNjAAMzY8ADM2SAAzNlQAMzZgADM2aAAzOFQAMzhcADM4aAAzOHAAMzh8ADM4gAAzOIQAMziIADM4jAAzOJQAMzicADM4oAAzOKQAMzisADM4sAAzOPQAMzj4ADM5AAAzOuwAMzr0ADM6/AAzOwQAMzsQADM7FAAzOxgAMzscADM7IAAzOygAMzswADM7NAAzOzgAMztAADM7RAAzPTAAMz04ADM9RAAzPUwAMz1YADM9XAAzPWAAMz1kADM9aAAzPXAAMz14ADM9fAAzPYAAMz2IADM9jAAzPdAAMz3UADM93AAzP8gAMz/QADM/2AAzP+AAMz/sADM/8AAzP/QAMz/4ADM//AAzQAQAM0AMADNAEAAzQBQAM0AcADNAIAAzQgwAM0IUADNCIAAzQigAM0I0ADNCOAAzQjwAM0JAADNCRAAzQkwAM0JUADNCWAAzQlwAM0JkADNCaAAzQqwAM0KwADNCuAAzRKQAM0SsADNEtAAzRLwAM0TIADNEzAAzRNAAM0TUADNE2AAzROAAM0ToADNE7AAzRPAAM0T4ADNE/AAzRugAM0bwADNG/AAzRwQAM0cQADNHFAAzRxgAM0ccADNHIAAzRygAM0cwADNHNAAzRzgAM0dAADNHRAAzR6gAM0esADNHsAAzR7gAM0mkADNJrAAzSbQAM0m8ADNJyAAzScwAM0nQADNJ1AAzSdgAM0ngADNJ6AAzSewAM0nwADNJ+AAzSfwAM0voADNL8AAzS/wAM0wEADNMEAAzTBQAM0wYADNMHAAzTCAAM0woADNMMAAzTDQAM0w4ADNMQAAzTEQAM0zAADNNJAAzTWgAM010ADNNgAAzTYwAM02YADNN3AAzTegAM030ADNOAAAzTgwAM04UADNOaAAzTtAAM088ADNPoAAzUewAM1J4ADNS+AAzU3gAM1OAADNTiAAzU5AAM1OYADNTpAAzU6gAM1OsADNTuAAzU7wAM1PEADNTyAAzU9AAM1PcADNT4AAzU+QAM1PwADNT9AAzVAgAM1RsADNUkAAzVJgAM1SgADNUxAAzVNAAM1TcADNU5AAzVggAM1aYADNXNAAzV8QAM1fQADNX2AAzV+AAM1foADNX8AAzV/gAM1f8ADNYCAAzWGwAM1jwADNY+AAzWQAAM1kIADNZEAAzWRgAM1kgADNZKAAzWTAAM1m0ADNZwAAzWcwAM1nYADNZ5AAzWfAAM1n8ADNaCAAzWhQAM1ocADNcCAAzXBAAM1wYADNcIAAzXCwAM1wwADNcNAAzXDgAM1w8ADNcRAAzXEwAM1xQADNcVAAzXFwAM1xgADNeTAAzXlQAM15cADNeZAAzXnAAM150ADNeeAAzXnwAM16AADNeiAAzXpAAM16UADNemAAzXqAAM16kADNgkAAzYJgAM2CkADNgrAAzYLgAM2C8ADNgwAAzYMQAM2DIADNg0AAzYNgAM2DcADNg4AAzYOgAM2DsADNhUAAzYVQAM2FYADNhYAAzY0wAM2NUADNjXAAzY2QAM2NwADNjdAAzY3gAM2N8ADNjgAAzY4gAM2OQADNjlAAzY5gAM2OgADNjpAAzZZAAM2WYADNloAAzZagAM2W0ADNluAAzZbwAM2XAADNlxAAzZcwAM2XUADNl2AAzZdwAM2XkADNl6AAzZ9QAM2fcADNn5AAzZ+wAM2f4ADNn/AAzaAAAM2gEADNoCAAzaBAAM2gYADNoHAAzaCAAM2goADNoLAAzahgAM2ogADNqKAAzajAAM2o8ADNqQAAzakQAM2pIADNqTAAzalQAM2pcADNqYAAzamQAM2psADNqcAAzbFwAM2xkADNsbAAzbHQAM2yAADNshAAzbIgAM2yMADNskAAzbJgAM2ygADNspAAzbKgAM2ywADNstAAzbdgAM25oADNvBAAzb5QAM2+gADNvqAAzb7AAM2+4ADNvwAAzb8gAM2/MADNv2AAzcDwAM3CwADNwuAAzcMAAM3DIADNw0AAzcNgAM3DgADNw6AAzcVwAM3FoADNxdAAzcYAAM3GMADNxmAAzcaQAM3GwADNxuAAzc6QAM3OsADNztAAzc7wAM3PIADNzzAAzc9AAM3PUADNz2AAzc+AAM3PoADNz7AAzc/AAM3P4ADNz/AAzdegAM3XwADN1+AAzdgAAM3YMADN2EAAzdhQAM3YYADN2HAAzdiQAM3YsADN2MAAzdjQAM3Y8ADN2QAAzeCwAM3g0ADN4PAAzeEQAM3hQADN4VAAzeFgAM3hcADN4YAAzeGgAM3hwADN4dAAzeHgAM3iAADN4hAAzenAAM3p4ADN6gAAzeogAM3qUADN6mAAzepwAM3qgADN6pAAzeqwAM3q0ADN6uAAzerwAM3rEADN6yAAzfLQAM3y8ADN8xAAzfMwAM3zYADN83AAzfOAAM3zkADN86AAzfPAAM3z4ADN8/AAzfQAAM30IADN9DAAzfvgAM38AADN/CAAzfxAAM38cADN/IAAzfyQAM38oADN/LAAzfzQAM388ADN/QAAzf0QAM39MADN/UAAzgTwAM4FEADOBTAAzgVQAM4FgADOBZAAzgWgAM4FsADOBcAAzgXgAM4GAADOBhAAzgYgAM4GQADOBlAAzg+AAM4RsADOE7AAzhWwAM4V0ADOFfAAzhYQAM4WMADOFmAAzhZwAM4WgADOFrAAzhbAAM4W4ADOFvAAzhcQAM4XQADOF1AAzhdgAM4XkADOF6AAzhfwAM4ZgADOGhAAzhowAM4aUADOGuAAzhsQAM4bQADOG2AAzh/wAM4iMADOJKAAzibgAM4nEADOJzAAzidQAM4ncADOJ5AAziewAM4nwADOJ/AAzimAAM4rkADOK7AAzivQAM4r8ADOLBAAziwwAM4sUADOLHAAziyQAM4uoADOLtAAzi8AAM4vMADOL2AAzi+QAM4vwADOL/AAzjAgAM4wQADON/AAzjgQAM44MADOOFAAzjiAAM44kADOOKAAzjiwAM44wADOOOAAzjkAAM45EADOOSAAzjlAAM45UADOQQAAzkEgAM5BQADOQWAAzkGQAM5BoADOQbAAzkHAAM5B0ADOQfAAzkIQAM5CIADOQjAAzkJQAM5CYADOShAAzkowAM5KYADOSoAAzkqwAM5KwADOStAAzkrgAM5K8ADOSxAAzkswAM5LQADOS1AAzktwAM5LgADOTRAAzk0gAM5NMADOTVAAzlUAAM5VIADOVUAAzlVgAM5VkADOVaAAzlWwAM5VwADOVdAAzlXwAM5WEADOViAAzlYwAM5WUADOVmAAzl4QAM5eMADOXlAAzl5wAM5eoADOXrAAzl7AAM5e0ADOXuAAzl8AAM5fIADOXzAAzl9AAM5fYADOX3AAzmcgAM5nQADOZ2AAzmeAAM5nsADOZ8AAzmfQAM5n4ADOZ/AAzmgQAM5oM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ADQC1AA0AtgANAP8ADQEjAA0BSgANAW4ADQFxAA0BdAANAXYADQF4AA0BegANAXwADQF9AA0BgAANAZkADQG2AA0BuQANAbwADQG/AA0BwgANAcUADQHIAA0BywANAegADQHrAA0B7gANAfEADQH0AA0B9wANAfoADQH9AA0B/wANAnoADQJ8AA0CfwANAoEADQKEAA0ChQANAoYADQKHAA0CiAANAooADQKNAA0CjgANAo8ADQKRAA0CkgANAw0ADQMPAA0DEgANAxQADQMXAA0DGAANAxkADQMaAA0DGwANAx0ADQMgAA0DIQANAyIADQMkAA0DJQANA6AADQOiAA0DpQANA6cADQOqAA0DqwANA6wADQOtAA0DrgANA7AADQOzAA0DtAANA7UADQO3AA0DuAANBDMADQQ1AA0EOAANBDoADQQ9AA0EPgANBD8ADQRAAA0EQQANBEMADQRGAA0ERwANBEgADQRKAA0ESwANBMYADQTIAA0EygANBMwADQTPAA0E0AANBNEADQTSAA0E0wANBNUADQTYAA0E2QANBNoADQTcAA0E3QANBVgADQVaAA0FXAANBV4ADQVhAA0FYgANBWMADQVkAA0FZQANBWcADQVqAA0FawANBWwADQVuAA0FbwANBeoADQXsAA0F7wANBfEADQX0AA0F9QANBfYADQX3AA0F+AANBfoADQX9AA0F/gANBf8ADQYBAA0GAgANBhMADQYUAA0GFgANBpEADQaTAA0GlQANBpcADQaaAA0GmwANBpwADQadAA0GngANBqAADQajAA0GpAANBqUADQanAA0GqAANByMADQclAA0HJwANBykADQcsAA0HLQANBy4ADQcvAA0HMAANBzIADQc1AA0HNgANBzcADQc5AA0HOgANB7UADQe3AA0HugANB7wADQe/AA0HwAANB8EADQfCAA0HwwANB8UADQfIAA0HyQANB8oADQfMAA0HzQANCGAADQiDAA0IowANCMMADQjFAA0IxwANCMkADQjLAA0IzgANCM8ADQjQAA0I0wANCNQADQjWAA0I1wANCNkADQjcAA0I3QANCN4ADQjhAA0I4gANCOcADQkAAA0JCQANCQsADQkNAA0JFgANCRkADQkcAA0JHgANCWcADQmLAA0JsgANCdYADQnZAA0J2wANCd0ADQnfAA0J4QANCeMADQnkAA0J5wANCgAADQohAA0KIwANCiUADQonAA0KKQANCisADQotAA0KLwANCjEADQpSAA0KVQANClgADQpbAA0KXgANCmEADQpkAA0KZwANCmoADQpsAA0K5wANCukADQrrAA0K7QANCvAADQrxAA0K8gANCvMADQr0AA0K9gANCvgADQr5AA0K+gANCvwADQr9AA0LeAANC3oADQt8AA0LfgANC4EADQuCAA0LgwANC4QADQuFAA0LhwANC4kADQuKAA0LiwANC40ADQuOAA0MCQANDAsADQwOAA0MEAANDBMADQwUAA0MFQANDBYADQwXAA0MGQANDBsADQwcAA0MHQANDB8ADQwgAA0MOQANDDoADQw7AA0MPQANDLgADQy6AA0MvAANDL4ADQzBAA0MwgANDMMADQzEAA0MxQANDMcADQzJAA0MygANDMsADQzNAA0MzgANDUkADQ1LAA0NTQANDU8ADQ1SAA0NUwANDVQADQ1VAA0NVgANDVgADQ1aAA0NWwANDVwADQ1eAA0NXwANDdoADQ3cAA0N3gANDeAADQ3jAA0N5AANDeUADQ3mAA0N5wANDekADQ3rAA0N7AANDe0ADQ3vAA0N8AANDmsADQ5tAA0ObwANDnEADQ50AA0OdQANDnYADQ53AA0OeAANDnoADQ58AA0OfQANDn4ADQ6AAA0OgQANDvwADQ7+AA0PAAANDwIADQ8FAA0PBgANDwcADQ8IAA0PCQANDwsADQ8NAA0PDgANDw8ADQ8RAA0PEgAND1sADQ9/AA0PpgAND8oADQ/NAA0PzwAND9EADQ/TAA0P1QAND9cADQ/YAA0P2wAND/QADRARAA0QEwANEBUADRAXAA0QGQANEBsADRAdAA0QHwANEDwADRA/AA0QQgANEEUADRBIAA0QSwANEE4ADRBRAA0QUwANEM4ADRDQAA0Q0gANENQADRDXAA0Q2AANENkADRDaAA0Q2wANEN0ADRDfAA0Q4AANEOEADRDjAA0Q5AANEV8ADRFhAA0RYwANEWUADRFoAA0RaQANEWoADRFrAA0RbAANEW4ADRFwAA0RcQANEXIADRF0AA0RdQANEfAADRHyAA0R9AANEfYADRH5AA0R+gANEfsADRH8AA0R/QANEf8ADRIBAA0SAgANEgMADRIFAA0SBgANEoEADRKDAA0ShQANEocADRKKAA0SiwANEowADRKNAA0SjgANEpAADRKSAA0SkwANEpQADRKWAA0SlwANExIADRMUAA0TFgANExgADRMbAA0THAANEx0ADRMeAA0THwANEyEADRMjAA0TJAANEyUADRMnAA0TKAANE6MADROlAA0TqAANE6oADROtAA0TrgANE68ADROwAA0TsQANE7MADRO1AA0TtgANE7cADRO5AA0TugANE9kADRRUAA0UVgANFFgADRRaAA0UXQANFF4ADRRfAA0UYAANFGEADRRjAA0UZQANFGYADRRnAA0UaQANFGoADRR7AA0UfAANFH4ADRT5AA0U+wANFP0ADRT/AA0VAgANFQMADRUEAA0VBQANFQYADRUIAA0VCwANFQwADRUNAA0VDwANFRAADRWLAA0VjQANFY8ADRWRAA0VlAANFZUADRWWAA0VlwANFZgADRWaAA0VnQANFZ4ADRWfAA0VoQANFaIADRYdAA0WHwANFiIADRYkAA0WJwANFigADRYpAA0WKgANFisADRYtAA0WMAANFjEADRYyAA0WNAANFjUADRZGAA0WRwANFkkADRbMAA0W8AANFxQADRc3AA0XXgANF34ADRelAA0XzAANF+wADRgQAA0YNAANGDYADRg5AA0YOwANGD0ADRg/AA0YQgANGEUADRhHAA0YSQANGEwADRhOAA0YUAANGFMADRhWAA0YVwANGFwADRh1AA0YegANGHwADRiBAA0YhAANGIYADRjPAA0Y8wANGRoADRk+AA0ZQQANGUMADRlFAA0ZRwANGUkADRlLAA0ZTAANGU8ADRloAA0ZjQANGY8ADRmRAA0ZkwANGZUADRmXAA0ZmQANGZsADRmdAA0ZnwANGcQADRnHAA0ZygANGc0ADRnQAA0Z0wANGdYADRnZAA0Z3AANGd8ADRnhAA0aXAANGl4ADRphAA0aYwANGmYADRpnAA0aaAANGmkADRpqAA0abAANGm4ADRpvAA0acAANGnIADRpzAA0ahAANGoUADRqHAA0bAgANGwQADRsGAA0bCAANGwsADRsMAA0bDQANGw4ADRsPAA0bEQANGxMADRsUAA0bFQANGxcADRsYAA0bkwANG5UADRuYAA0bmgANG50ADRueAA0bnwANG6AADRuhAA0bowANG6UADRumAA0bpwANG6kADRuqAA0buwANG7wADRu+AA0cOQANHDsADRw9AA0cPwANHEIADRxDAA0cRAANHEUADRxGAA0cSAANHEoADRxLAA0cTAANHE4ADRxPAA0cygANHMwADRzPAA0c0QANHNQADRzVAA0c1gANHNcADRzYAA0c2gANHNwADRzdAA0c3gANHOAADRzhAA0c8gANHPMADRz1AA0dcAANHXIADR10AA0ddgANHXkADR16AA0dewANHXwADR19AA0dfwANHYEADR2CAA0dgwANHYUADR2GAA0eAQANHgMADR4GAA0eCAANHgsADR4MAA0eDQANHg4ADR4PAA0eEQANHhMADR4UAA0eFQANHhcADR4YAA0eMQANHjIADR4zAA0eNQANHrAADR6yAA0etAANHrYADR65AA0eugANHrsADR68AA0evQANHr8ADR7BAA0ewgANHsMADR7FAA0exgANH0EADR9DAA0fRgANH0gADR9LAA0fTAANH00ADR9OAA0fTwANH1EADR9TAA0fVAANH1UADR9XAA0fWAANH3EADR+KAA0fiwANH4wADR+OAA0fnwANH6QADR+nAA0fqQANH+IADR/lAA0f5wANH+oADR/tAA0f8AANH/MADR/4AA0gmwANIL8ADSDjAA0hAwANISoADSFRAA0hcQANIZgADSG8AA0h3wANIgYADSIqAA0iTgANInIADSKZAA0imgANIpwADSKeAA0ioQANIqMADSKmAA0iqAANIqoADSKtAA0irwANIrEADSK0AA0itwANIrkADSK7AA0ivQANIsAADSLDAA0ixgANIssADSLkAA0i6QANIusADSLwAA0i8wANIvUADSM+AA0jYgANI4kADSOtAA0jsAANI7IADSO0AA0jtgANI7gADSO6AA0juwANI74ADSPXAA0j/AANI/4ADSQAAA0kAgANJAQADSQGAA0kCAANJAoADSQMAA0kDgANJDMADSQ2AA0kOQANJDwADSQ/AA0kQgANJEUADSRIAA0kSwANJE4ADSRQAA0kywANJM0ADSTQAA0k0gANJNUADSTWAA0k1wANJNgADSTZAA0k2wANJN0ADSTeAA0k3wANJOEADSTiAA0k8wANJPQADST2AA0lcQANJXMADSV1AA0ldwANJXoADSV7AA0lfAANJX0ADSV+AA0lgAANJYIADSWDAA0lhAANJYYADSWHAA0mAgANJgQADSYHAA0mCQANJgwADSYNAA0mDgANJg8ADSYQAA0mEgANJhQADSYVAA0mFgANJhgADSYZAA0mKgANJisADSYtAA0mqAANJqoADSasAA0mrgANJrEADSayAA0mswANJrQADSa1AA0mtwANJrkADSa6AA0muwANJr0ADSa+AA0nOQANJzsADSc+AA0nQAANJ0MADSdEAA0nRQANJ0YADSdHAA0nSQANJ0sADSdMAA0nTQANJ08ADSdQAA0nYQANJ2IADSdkAA0n3wANJ+EADSfjAA0n5QANJ+gADSfpAA0n6gANJ+sADSfsAA0n7gANJ/AADSfxAA0n8gANJ/QADSf1AA0ocAANKHIADSh1AA0odwANKHoADSh7AA0ofAANKH0ADSh+AA0ogAANKIIADSiDAA0ohAANKIYADSiHAA0ooAANKKEADSiiAA0opAANKR8ADSkhAA0pIwANKSUADSkoAA0pKQANKSoADSkrAA0pLAANKS4ADSkwAA0pMQANKTIADSk0AA0pNQANKbAADSmyAA0ptQANKbcADSm6AA0puwANKbwADSm9AA0pvgANKcAADSnCAA0pwwANKcQADSnGAA0pxwANKdYADSnvAA0p/AANKf8ADSoCAA0qBQANKhIADSoVAA0qGAANKhsADSodAA0qNAANKkcADSpQAA0q4wANKwYADSsmAA0rRgANK0gADStKAA0rTAANK04ADStRAA0rUgANK1MADStWAA0rVwANK1kADStaAA0rXAANK18ADStgAA0rYQANK2QADStlAA0ragANK4MADSuMAA0rjgANK5AADSuZAA0rnAANK58ADSuhAA0r6gANLA4ADSw1AA0sWQANLFwADSxeAA0sYAANLGIADSxkAA0sZgANLGcADSxqAA0sgwANLKQADSymAA0sqAANLKoADSysAA0srgANLLAADSyyAA0stAANLNUADSzYAA0s2wANLN4ADSzhAA0s5AANLOcADSzqAA0s7QANLO8ADS1qAA0tbAANLW4ADS1wAA0tcwANLXQADS11AA0tdgANLXcADS15AA0tewANLXwADS19AA0tfwANLYAADS37AA0t/QANLf8ADS4BAA0uBAANLgUADS4GAA0uBwANLggADS4KAA0uDAANLg0ADS4OAA0uEAANLhEADS6MAA0ujgANLpEADS6TAA0ulgANLpcADS6YAA0umQANLpoADS6cAA0ungANLp8ADS6gAA0uogANLqMADS68AA0uvQANLr4ADS7AAA0vOwANLz0ADS8/AA0vQQANL0QADS9FAA0vRgANL0cADS9IAA0vSgANL0wADS9NAA0vTgANL1AADS9RAA0vzAANL84ADS/QAA0v0gANL9UADS/WAA0v1wANL9gADS/ZAA0v2wANL90ADS/eAA0v3wANL+EADS/iAA0wXQANMF8ADTBhAA0wYwANMGYADTBnAA0waAANMGkADTBqAA0wbAANMG4ADTBvAA0wcAANMHIADTBzAA0w7gANMPAADTDyAA0w9AANMPcADTD4AA0w+QANMPoADTD7AA0w/QANMP8ADTEAAA0xAQANMQMADTEEAA0xfwANMYEADTGDAA0xhQANMYgADTGJAA0xigANMYsADTGMAA0xjgANMZAADTGRAA0xkgANMZQADTGVAA0x3gANMgIADTIpAA0yTQANMlAADTJSAA0yVAANMlYADTJYAA0yWgANMlsADTJeAA0ydwANMpQADTKWAA0ymAANMpoADTKcAA0yngANMqAADTKiAA0yvwANMsIADTLFAA0yyAANMssADTLOAA0y0QANMtQADTLWAA0zUQANM1MADTNVAA0zVwANM1oADTNbAA0zXAANM10ADTNeAA0zYAANM2IADTNjAA0zZAANM2YADTNnAA0z4gANM+QADTPmAA0z6AANM+sADTPsAA0z7QANM+4ADTPvAA0z8QANM/MADTP0AA0z9QANM/cADTP4AA00cwANNHUADTR3AA00eQANNHwADTR9AA00fgANNH8ADTSAAA00ggANNIQADTSFAA00hgANNIgADTSJAA01BAANNQYADTUJAA01CwANNQ4ADTUPAA01EAANNREADTUSAA01FAANNRYADTUXAA01GAANNRoADTUbAA01lgANNZgADTWaAA01nAANNZ8ADTWgAA01oQANNaIADTWjAA01pQANNacADTWoAA01qQANNasADTWsAA02JwANNikADTYrAA02LQANNjAADTYxAA02MgANNjMADTY0AA02NgANNjgADTY5AA02OgANNjwADTY9AA02uAANNroADTa8AA02vgANNsEADTbCAA02wwANNsQADTbFAA02xwANNskADTbKAA02ywANNs0ADTbOAA03YQANN4QADTekAA03xAANN8YADTfIAA03ygANN8wADTfPAA030AANN9EADTfUAA031QANN9cADTfYAA032gANN90ADTfeAA033wANN+IADTfjAA036AANOAEADTgKAA04DAANOA4ADTgXAA04GgANOB0ADTgfAA04aAANOIwADTizAA041wANONoADTjcAA043gANOOAADTjiAA045AANOOUADTjoAA05AQANOSIADTkkAA05JgANOSgADTkqAA05LAANOS4ADTkwAA05MgANOVMADTlWAA05WQANOVwADTlfAA05YgANOWUADTloAA05awANOW0ADTnoAA056gANOewADTnuAA058QANOfIADTnzAA059AANOfUADTn3AA05+QANOfoADTn7AA05/QANOf4ADTp5AA06ewANOn0ADTp/AA06ggANOoMADTqEAA06hQANOoYADTqIAA06igANOosADTqMAA06jgANOo8ADTsKAA07DAANOw8ADTsRAA07FAANOxUADTsWAA07FwANOxgADTsaAA07HAANOx0ADTseAA07IAANOyEADTs6AA07OwANOzwADTs+AA07uQANO7sADTu9AA07vwANO8IADTvDAA07xAANO8UADTvGAA07yAANO8oADTvLAA07zAANO84ADTvPAA08SgANPEwADTxOAA08UAANPFMADTxUAA08VQANPFYADTxXAA08WQANPFsADTxcAA08XQANPF8ADTxgAA082wANPN0ADTzfAA084QANPOQADTzlAA085gANPOcADTzoAA086gANPOwADTztAA087gANPPAADTzxAA09bAANPW4ADT1wAA09cgANPXUADT12AA09dwANPXgADT15AA09ewANPX0ADT1+AA09fwANPYEADT2CAA09/QANPf8ADT4BAA0+AwANPgYADT4HAA0+CAANPgkADT4KAA0+DAANPg4ADT4PAA0+EAANPhIADT4TAA0+XAANPoAADT6nAA0+ywANPs4ADT7QAA0+0gANPtQADT7WAA0+2AANPtkADT7cAA0+9QANPxIADT8UAA0/FgANPxgADT8aAA0/HAANPx4ADT8gAA0/PQANP0AADT9DAA0/RgANP0kADT9MAA0/TwANP1IADT9UAA0/zwANP9EADT/TAA0/1QANP9gADT/ZAA0/2gANP9sADT/cAA0/3gANP+AADT/hAA0/4gANP+QADT/lAA1AYAANQGIADUBkAA1AZgANQGkADUBqAA1AawANQGwADUBtAA1AbwANQHEADUByAA1AcwANQHUADUB2AA1A8QANQPMADUD1AA1A9wANQPoADUD7AA1A/AANQP0ADUD+AA1BAAANQQIADUEDAA1BBAANQQYADUEHAA1BggANQYQADUGHAA1BiQANQYwADUGNAA1BjgANQY8ADUGQAA1BkgANQZQADUGVAA1BlgANQZgADUGZAA1CFAANQhYADUIYAA1CGgANQh0ADUIeAA1CHwANQiAADUIhAA1CIwANQiUADUImAA1CJwANQikADUIqAA1CpQANQqcADUKpAA1CqwANQq4ADUKvAA1CsAANQrEADUKyAA1CtAANQrYADUK3AA1CuAANQroADUK7AA1DNgANQzgADUM6AA1DPAANQz8ADUNAAA1DQQANQ0IADUNDAA1DRQANQ0cADUNIAA1DSQANQ0sADUNMAA1D3wANRAIADUQiAA1EQgANREQADURGAA1ESAANREoADURNAA1ETgANRE8ADURSAA1EUwANRFUADURWAA1EWAANRFsADURcAA1EXQANRGAADURhAA1EZgANRH8ADUSIAA1EigANRIwADUSVAA1EmAANRJsADUSdAA1E5gANRQoADUUxAA1FVQANRVgADUVaAA1FXAANRV4ADUVgAA1FYgANRWMADUVmAA1FfwANRaAADUWiAA1FpAANRaYADUWoAA1FqgANRawADUWuAA1FsAANRdEADUXUAA1F1wANRdoADUXdAA1F4AANReMADUXmAA1F6QANResADUZmAA1GaAANRmoADUZsAA1GbwANRnAADUZxAA1GcgANRnMADUZ1AA1GdwANRngADUZ5AA1GewANRnwADUb3AA1G+QANRvsADUb9AA1HAAANRwEADUcCAA1HAwANRwQADUcGAA1HCAANRwkADUcKAA1HDAANRw0ADUeIAA1HigANR40ADUePAA1HkgANR5MADUeUAA1HlQANR5YADUeYAA1HmgANR5sADUecAA1HngANR58ADUe4AA1HuQANR7oADUe8AA1INwANSDkADUg7AA1IPQANSEAADUhBAA1IQgANSEMADUhEAA1IRgANSEgADUhJAA1ISgANSEwADUhNAA1IyAANSMoADUjMAA1IzgANSNEADUjSAA1I0wANSNQADUjVAA1I1wANSNkADUjaAA1I2wANSN0ADUjeAA1JWQANSVsADUldAA1JXwANSWIADUljAA1JZAANSWUADUlmAA1JaAANSWoADUlrAA1JbAANSW4ADUlvAA1J6gANSewADUnuAA1J8AANSfMADUn0AA1J9QANSfYADUn3AA1J+QANSfsADUn8AA1J/QANSf8ADUoAAA1KewANSn0ADUp/AA1KgQANSoQADUqFAA1KhgANSocADUqIAA1KigANSowADUqNAA1KjgANSpAADUqRAA1K2gANSv4ADUslAA1LSQANS0wADUtOAA1LUAANS1IADUtUAA1LVgANS1cADUtaAA1LcwANS5AADUuSAA1LlAANS5YADUuYAA1LmgANS5wADUueAA1LuwANS74ADUvBAA1LxAANS8cADUvKAA1LzQANS9AADUvSAA1MTQANTE8ADUxRAA1MUwANTFYADUxXAA1MWAANTFkADUxaAA1MXAANTF4ADUxfAA1MYAANTGIADUxjAA1M3gANTOAADUziAA1M5AANTOcADUzoAA1M6QANTOoADUzrAA1M7QANTO8ADUzwAA1M8QANTPMADUz0AA1NbwANTXEADU1zAA1NdQANTXgADU15AA1NegANTXsADU18AA1NfgANTYAADU2BAA1NggANTYQADU2FAA1OAAANTgIADU4FAA1OBwANTgoADU4LAA1ODAANTg0ADU4OAA1OEAANThIADU4TAA1OFAANThYADU4XAA1OkgANTpQADU6WAA1OmAANTpsADU6cAA1OnQANTp4ADU6fAA1OoQANTqMADU6kAA1OpQANTqcADU6oAA1PIwANTyUADU8nAA1PKQANTywADU8tAA1PLgANTy8ADU8wAA1PMgANTzQADU81AA1PNgANTzgADU85AA1PtAANT7YADU+4AA1PugANT70ADU++AA1PvwANT8AADU/BAA1PwwANT8UADU/GAA1PxwANT8kADU/KAA1P2wANT9wADU/eAA1P7wANT/wADU//AA1QAgANUAUADVAHAA1QQAANUEMADVBFAA1QSAANUEsADVBOAA1QUQANUNQADVD4AA1RHAANUT8ADVFmAA1RhgANUa0ADVHUAA1R9AANUhgADVI8AA1SPgANUkEADVJDAA1SRQANUkcADVJKAA1STQANUk8ADVJRAA1SVAANUlYADVJYAA1SWwANUl4ADVJfAA1SZAANUn0ADVKCAA1ShAANUokADVKMAA1SjgANUtcADVL7AA1TIgANU0YADVNJAA1TSwANU00ADVNPAA1TUQANU1MADVNUAA1TVwANU3AADVOVAA1TlwANU5kADVObAA1TnQANU58ADVOhAA1TowANU6UADVOnAA1TzAANU88ADVPSAA1T1QANU9gADVPbAA1T3gANU+EADVPkAA1T5wANU+kADVRkAA1UZgANVGkADVRrAA1UbgANVG8ADVRwAA1UcQANVHIADVR0AA1UdgANVHcADVR4AA1UegANVHsADVSMAA1UjQANVI8ADVUKAA1VDAANVQ4ADVUQAA1VEwANVRQADVUVAA1VFgANVRcADVUZAA1VGwANVRwADVUdAA1VHwANVSAADVWbAA1VnQANVaAADVWiAA1VpQANVaYADVWnAA1VqAANVakADVWrAA1VrQANVa4ADVWvAA1VsQANVbIADVXDAA1VxAANVcYADVZBAA1WQwANVkUADVZHAA1WSgANVksADVZMAA1WTQANVk4ADVZQAA1WUgANVlMADVZUAA1WVgANVlcADVbSAA1W1AANVtcADVbZAA1W3AANVt0ADVbeAA1W3wANVuAADVbiAA1W5AANVuUADVbmAA1W6AANVukADVb6AA1W+wANVv0ADVd4AA1XegANV3wADVd+AA1XgQANV4IADVeDAA1XhAANV4UADVeHAA1XiQANV4oADVeLAA1XjQANV44ADVgJAA1YCwANWA4ADVgQAA1YEwANWBQADVgVAA1YFgANWBcADVgZAA1YGwANWBwADVgdAA1YHwANWCAADVg5AA1YOgANWDsADVg9AA1YuAANWLoADVi8AA1YvgANWMEADVjCAA1YwwANWMQADVjFAA1YxwANWMkADVjKAA1YywANWM0ADVjOAA1ZSQANWUsADVlOAA1ZUAANWVMADVlUAA1ZVQANWVYADVlXAA1ZWQANWVsADVlcAA1ZXQANWV8ADVlgAA1ZdgANWY8ADVmUAA1ZlwANWZwADVmfAA1ZoQANWa0ADVpAAA1aYwANWoMADVqjAA1apQANWqcADVqpAA1aqwANWq4ADVqvAA1asAANWrMADVq0AA1atgANWrcADVq5AA1avAANWr0ADVq+AA1awQANWsIADVrHAA1a4AANWukADVrrAA1a7QANWvYADVr5AA1a/AANWv4ADVtHAA1bawANW5IADVu2AA1buQANW7sADVu9AA1bvwANW8EADVvDAA1bxAANW8cADVvgAA1cAQANXAMADVwFAA1cBwANXAkADVwLAA1cDQANXA8ADVwRAA1cMgANXDUADVw4AA1cOwANXD4ADVxBAA1cRAANXEcADVxKAA1cTAANXMcADVzJAA1cywANXM0ADVzQAA1c0QANXNIADVzTAA1c1AANXNYADVzYAA1c2QANXNoADVzcAA1c3QANXVgADV1aAA1dXAANXV4ADV1hAA1dYgANXWMADV1kAA1dZQANXWcADV1pAA1dagANXWsADV1tAA1dbgANXekADV3rAA1d7gANXfAADV3zAA1d9AANXfUADV32AA1d9wANXfkADV37AA1d/AANXf0ADV3/AA1eAAANXhkADV4aAA1eGwANXh0ADV6YAA1emgANXpwADV6eAA1eoQANXqIADV6jAA1epAANXqUADV6nAA1eqQANXqoADV6rAA1erQANXq4ADV8pAA1fKwANXy0ADV8vAA1fMgANXzMADV80AA1fNQANXzYADV84AA1fOgANXzsADV88AA1fPgANXz8ADV+6AA1fvAANX74ADV/AAA1fwwANX8QADV/FAA1fxgANX8cADV/JAA1fywANX8wADV/NAA1fzwANX9AADWBLAA1gTQANYE8ADWBRAA1gVAANYFUADWBWAA1gVwANYFgADWBaAA1gXAANYF0ADWBeAA1gYAANYGEADWDcAA1g3gANYOAADWDiAA1g5QANYOYADWDnAA1g6AANYOkADWDrAA1g7QANYO4ADWDvAA1g8QANYPIADWE7AA1hXwANYYYADWGqAA1hrQANYa8ADWGxAA1hswANYbUADWG3AA1huAANYbsADWHUAA1h8QANYfMADWH1AA1h9wANYfkADWH7AA1h/QANYf8ADWIcAA1iHwANYiIADWIlAA1iKAANYisADWIuAA1iMQANYjMADWKuAA1isAANYrIADWK0AA1itwANYrgADWK5AA1iugANYrsADWK9AA1ivwANYsAADWLBAA1iwwANYsQADWM/AA1jQQANY0MADWNFAA1jSAANY0kADWNKAA1jSwANY0wADWNOAA1jUAANY1EADWNSAA1jVAANY1UADWPQAA1j0gANY9QADWPWAA1j2QANY9oADWPbAA1j3AANY90ADWPfAA1j4QANY+IADWPjAA1j5QANY+YADWRhAA1kYwANZGYADWRoAA1kawANZGwADWRtAA1kbgANZG8ADWRxAA1kcwANZHQADWR1AA1kdwANZHgADWTzAA1k9QANZPcADWT5AA1k/AANZP0ADWT+AA1k/wANZQAADWUCAA1lBAANZQUADWUGAA1lCAANZQkADWWEAA1lhgANZYgADWWKAA1ljQANZY4ADWWPAA1lkAANZZEADWWTAA1llQANZZYADWWXAA1lmQANZZoADWYVAA1mFwANZhkADWYbAA1mHgANZh8ADWYgAA1mIQANZiIADWYkAA1mJgANZicADWYoAA1mKgANZisADWY8AA1mQQANZkQADWZGAA1mSwANZoQADWaHAA1miQANZowADWaPAA1mkgANZpUADWcYAA1nPAANZ2AADWeDAA1nqgANZ8oADWfxAA1oGAANaDgADWhcAA1ogAANaIIADWiFAA1ohwANaIkADWiLAA1ojgANaJEADWiTAA1olQANaJgADWiaAA1onAANaJ8ADWiiAA1oowANaKgADWjBAA1oxgANaMgADWjNAA1o0AANaNIADWkbAA1pPwANaWYADWmKAA1pjQANaY8ADWmRAA1pkwANaZUADWmXAA1pmAANaZsADWm0AA1p2QANadsADWndAA1p3wANaeEADWnjAA1p5QANaecADWnpAA1p6wANahAADWoTAA1qFgANahkADWocAA1qHwANaiIADWolAA1qKAANaisADWotAA1qqAANaqoADWqtAA1qrwANarIADWqzAA1qtAANarUADWq2AA1quAANaroADWq7AA1qvAANar4ADWq/AA1q0AANatEADWrTAA1rTgANa1AADWtSAA1rVAANa1cADWtYAA1rWQANa1oADWtbAA1rXQANa18ADWtgAA1rYQANa2MADWtkAA1r3wANa+EADWvkAA1r5gANa+kADWvqAA1r6wANa+wADWvtAA1r7wANa/EADWvyAA1r8wANa/UADWv2AA1sBwANbAgADWwKAA1shQANbIcADWyJAA1siwANbI4ADWyPAA1skAANbJEADWySAA1slAANbJYADWyXAA1smAANbJoADWybAA1tFgANbRgADW0bAA1tHQANbSAADW0hAA1tIgANbSMADW0kAA1tJgANbSgADW0pAA1tKgANbSwADW0tAA1tPgANbT8ADW1BAA1tvAANbb4ADW3AAA1twgANbcUADW3GAA1txwANbcgADW3JAA1tywANbc0ADW3OAA1tzwANbdEADW3SAA1uTQANbk8ADW5SAA1uVAANblcADW5YAA1uWQANbloADW5bAA1uXQANbl8ADW5gAA1uYQANbmMADW5kAA1ufQANbn4ADW5/AA1ugQANbvwADW7+AA1vAAANbwIADW8FAA1vBgANbwcADW8IAA1vCQANbwsADW8NAA1vDgANbw8ADW8RAA1vEgANb40ADW+PAA1vkgANb5QADW+XAA1vmAANb5kADW+aAA1vmwANb50ADW+fAA1voAANb6EADW+jAA1vpAANb7wADW/VAA1v4gANb+UADW/oAA1v6wANb/gADW/7AA1v/gANcAEADXADAA1wDwANcBsADXAoAA1wuwANcN4ADXD+AA1xHgANcSAADXEiAA1xJAANcSYADXEpAA1xKgANcSsADXEuAA1xLwANcTEADXEyAA1xNAANcTcADXE4AA1xOQANcTwADXE9AA1xRgANcV8ADXFoAA1xagANcWwADXF1AA1xeAANcXsADXF9AA1xxgANceoADXIRAA1yNQANcjgADXI6AA1yPAANcj4ADXJAAA1yQgANckMADXJGAA1yXwANcoAADXKCAA1yhAANcoYADXKIAA1yigANcowADXKOAA1ykAANcrEADXK0AA1ytwANcroADXK9AA1ywAANcsMADXLGAA1yyQANcssADXNGAA1zSAANc0oADXNMAA1zTwANc1AADXNRAA1zUgANc1MADXNVAA1zVwANc1gADXNZAA1zWwANc1wADXPXAA1z2QANc9sADXPdAA1z4AANc+EADXPiAA1z4wANc+QADXPmAA1z6AANc+kADXPqAA1z7AANc+0ADXRoAA10agANdG0ADXRvAA10cgANdHMADXR0AA10dQANdHYADXR4AA10egANdHsADXR8AA10fgANdH8ADXSYAA10mQANdJoADXScAA11FwANdRkADXUbAA11HQANdSAADXUhAA11IgANdSMADXUkAA11JgANdSgADXUpAA11KgANdSwADXUtAA11qAANdaoADXWsAA11rgANdbEADXWyAA11swANdbQADXW1AA11twANdbkADXW6AA11uwANdb0ADXW+AA12OQANdjsADXY9AA12PwANdkIADXZDAA12RAANdkUADXZGAA12SAANdkoADXZLAA12TAANdk4ADXZPAA12ygANdswADXbOAA120AANdtMADXbUAA121QANdtYADXbXAA122QANdtsADXbcAA123QANdt8ADXbgAA13WwANd10ADXdfAA13YQANd2QADXdlAA13ZgANd2cADXdoAA13agANd2wADXdtAA13bgANd3AADXdxAA13ugANd94ADXgFAA14KQANeCwADXguAA14MAANeDIADXg0AA14NgANeDcADXg6AA14UwANeHAADXhyAA14dAANeHYADXh4AA14egANeHwADXh+AA14mwANeJ4ADXihAA14pAANeKcADXiqAA14rQANeLAADXiyAA15LQANeS8ADXkxAA15MwANeTYADXk3AA15OAANeTkADXk6AA15PAANeT4ADXk/AA15QAANeUIADXlDAA15vgANecAADXnCAA15xAANeccADXnIAA15yQANecoADXnLAA15zQANec8ADXnQAA150QANedMADXnUAA16TwANelEADXpTAA16VQANelgADXpZAA16WgANelsADXpcAA16XgANemAADXphAA16YgANemQADXplAA164AANeuIADXrlAA165wANeuoADXrrAA167AANeu0ADXruAA168AANevIADXrzAA169AANevYADXr3AA17cgANe3QADXt2AA17eAANe3sADXt8AA17fQANe34ADXt/AA17gQANe4MADXuEAA17hQANe4cADXuIAA18AwANfAUADXwHAA18CQANfAwADXwNAA18DgANfA8ADXwQAA18EgANfBQADXwVAA18FgANfBgADXwZAA18lAANfJYADXyYAA18mgANfJ0ADXyeAA18nwANfKAADXyhAA18owANfKUADXymAA18pwANfKkADXyqAA19PQANfWAADX2AAA19oAANfaIADX2kAA19pgANfagADX2rAA19rAANfa0ADX2wAA19sQANfbMADX20AA19tgANfbkADX26AA19uwANfb4ADX2/AA19xAANfd0ADX3mAA196AANfeoADX3zAA199gANffkADX37AA1+RAANfmgADX6PAA1+swANfrYADX64AA1+ugANfrwADX6+AA1+wAANfsEADX7EAA1+3QANfv4ADX8AAA1/AgANfwQADX8GAA1/CAANfwoADX8MAA1/DgANfy8ADX8yAA1/NQANfzgADX87AA1/PgANf0EADX9EAA1/RwANf0kADX/EAA1/xgANf8gADX/KAA1/zQANf84ADX/PAA1/0AANf9EADX/TAA1/1QANf9YADX/XAA1/2QANf9oADYBVAA2AVwANgFkADYBbAA2AXgANgF8ADYBgAA2AYQANgGIADYBkAA2AZgANgGcADYBoAA2AagANgGsADYDmAA2A6AANgOsADYDtAA2A8AANgPEADYDyAA2A8wANgPQADYD2AA2A+AANgPkADYD6AA2A/AANgP0ADYEWAA2BFwANgRgADYEaAA2BlQANgZcADYGZAA2BmwANgZ4ADYGfAA2BoAANgaEADYGiAA2BpAANgaYADYGnAA2BqAANgaoADYGrAA2CJgANgigADYIqAA2CLAANgi8ADYIwAA2CMQANgjIADYIzAA2CNQANgjcADYI4AA2COQANgjsADYI8AA2CtwANgrkADYK7AA2CvQANgsAADYLBAA2CwgANgsMADYLEAA2CxgANgsgADYLJAA2CygANgswADYLNAA2DSAANg0oADYNMAA2DTgANg1EADYNSAA2DUwANg1QADYNVAA2DVwANg1kADYNaAA2DWwANg10ADYNeAA2D2QANg9sADYPdAA2D3wANg+IADYPjAA2D5AANg+UADYPmAA2D6AANg+oADYPrAA2D7AANg+4ADYPvAA2EOAANhFwADYSDAA2EpwANhKoADYSsAA2ErgANhLAADYSyAA2EtAANhLUADYS4AA2E0QANhO4ADYTwAA2E8gANhPQADYT2AA2E+AANhPoADYT8AA2FGQANhRwADYUfAA2FIgANhSUADYUoAA2FKwANhS4ADYUwAA2FqwANha0ADYWvAA2FsQANhbQADYW1AA2FtgANhbcADYW4AA2FugANhbwADYW9AA2FvgANhcAADYXBAA2GPAANhj4ADYZAAA2GQgANhkUADYZGAA2GRwANhkgADYZJAA2GSwANhk0ADYZOAA2GTwANhlEADYZSAA2GzQANhs8ADYbRAA2G0wANhtYADYbXAA2G2AANhtkADYbaAA2G3AANht4ADYbfAA2G4AANhuIADYbjAA2HXgANh2AADYdiAA2HZAANh2cADYdoAA2HaQANh2oADYdrAA2HbQANh28ADYdwAA2HcQANh3MADYd0AA2H7wANh/EADYfzAA2H9QANh/gADYf5AA2H+gANh/sADYf8AA2H/gANiAAADYgBAA2IAgANiAQADYgFAA2IgAANiIIADYiEAA2IhgANiIkADYiKAA2IiwANiIwADYiNAA2IjwANiJEADYiSAA2IkwANiJUADYiWAA2JEQANiRMADYkVAA2JFwANiRoADYkbAA2JHAANiR0ADYkeAA2JIAANiSIADYkjAA2JJAANiSYADYknAA2JugANid0ADYn9AA2KHQANih8ADYohAA2KIwANiiUADYooAA2KKQANiioADYotAA2KLgANijAADYoxAA2KMwANijYADYo3AA2KOAANijsADYo8AA2KRQANil4ADYpnAA2KaQANimsADYp0AA2KdwANinoADYp8AA2KxQANiukADYsQAA2LNAANizcADYs5AA2LOwANiz0ADYs/AA2LQQANi0IADYtFAA2LXgANi38ADYuBAA2LgwANi4UADYuHAA2LiQANi4sADYuNAA2LjwANi7AADYuzAA2LtgANi7kADYu8AA2LvwANi8IADYvFAA2LyAANi8oADYxFAA2MRwANjEkADYxLAA2MTgANjE8ADYxQAA2MUQANjFIADYxUAA2MVgANjFcADYxYAA2MWgANjFsADYzWAA2M2AANjNoADYzcAA2M3wANjOAADYzhAA2M4gANjOMADYzlAA2M5wANjOgADYzpAA2M6wANjOwADY1nAA2NaQANjWwADY1uAA2NcQANjXIADY1zAA2NdAANjXUADY13AA2NeQANjXoADY17AA2NfQANjX4ADY2XAA2NmAANjZkADY2bAA2OFgANjhgADY4aAA2OHAANjh8ADY4gAA2OIQANjiIADY4jAA2OJQANjicADY4oAA2OKQANjisADY4sAA2OpwANjqkADY6rAA2OrQANjrAADY6xAA2OsgANjrMADY60AA2OtgANjrgADY65AA2OugANjrwADY69AA2POAANjzoADY88AA2PPgANj0EADY9CAA2PQwANj0QADY9FAA2PRwANj0kADY9KAA2PSwANj00ADY9OAA2PyQANj8sADY/NAA2PzwANj9IADY/TAA2P1AANj9UADY/WAA2P2AANj9oADY/bAA2P3AANj94ADY/fAA2QWgANkFwADZBeAA2QYAANkGMADZBkAA2QZQANkGYADZBnAA2QaQANkGsADZBsAA2QbQANkG8ADZBwAA2QuQANkN0ADZEEAA2RKAANkSsADZEtAA2RLwANkTEADZEzAA2RNQANkTYADZE5AA2RUgANkW8ADZFxAA2RcwANkXUADZF3AA2ReQANkXsADZF9AA2RmgANkZ0ADZGgAA2RowANkaYADZGpAA2RrAANka8ADZGxAA2SLAANki4ADZIwAA2SMgANkjUADZI2AA2SNwANkjgADZI5AA2SOwANkj0ADZI+AA2SPwANkkEADZJCAA2SvQANkr8ADZLBAA2SwwANksYADZLHAA2SyAANkskADZLKAA2SzAANks4ADZLPAA2S0AANktIADZLTAA2TTgANk1AADZNSAA2TVAANk1cADZNYAA2TWQANk1oADZNbAA2TXQANk18ADZNgAA2TYQANk2MADZNkAA2T3wANk+EADZPkAA2T5gANk+kADZPqAA2T6wANk+wADZPtAA2T7wANk/EADZPyAA2T8wANk/UADZP2AA2UcQANlHMADZR1AA2UdwANlHoADZR7AA2UfAANlH0ADZR+AA2UgAANlIIADZSDAA2UhAANlIYADZSHAA2VAgANlQQADZUGAA2VCAANlQsADZUMAA2VDQANlQ4ADZUPAA2VEQANlRMADZUUAA2VFQANlRcADZUYAA2VkwANlZUADZWXAA2VmQANlZwADZWdAA2VngANlZ8ADZWgAA2VogANlaQADZWlAA2VpgANlagADZWpAA2VugANlb8ADZXCAA2VxAANlckADZZMAA2WcAANlpQADZa3AA2W3gANlv4ADZclAA2XTAANl2wADZeQAA2XtAANl7YADZe5AA2XuwANl70ADZe/AA2XwgANl8UADZfHAA2XyQANl8wADZfOAA2X0AANl9MADZfWAA2X1wANl9wADZf1AA2X+gANl/wADZgBAA2YBAANmAYADZhPAA2YcwANmJoADZi+AA2YwQANmMMADZjFAA2YxwANmMkADZjLAA2YzAANmM8ADZjoAA2ZDQANmQ8ADZkRAA2ZEwANmRUADZkXAA2ZGQANmRsADZkdAA2ZHwANmUQADZlHAA2ZSgANmU0ADZlQAA2ZUwANmVYADZlZAA2ZXAANmV8ADZlhAA2Z3AANmd4ADZnhAA2Z4wANmeYADZnnAA2Z6AANmekADZnqAA2Z7AANme4ADZnvAA2Z8AANmfIADZnzAA2aBAANmgUADZoHAA2aggANmoQADZqGAA2aiAANmosADZqMAA2ajQANmo4ADZqPAA2akQANmpMADZqUAA2alQANmpcADZqYAA2bEwANmxUADZsYAA2bGgANmx0ADZseAA2bHwANmyAADZshAA2bIwANmyUADZsmAA2bJwANmykADZsqAA2bOwANm0AADZtDAA2bRQANm1YADZtnAA2bagANm20ADZtwAA2bcwANm3UADZuRAA2bowANm7YADZvCAA2cPQANnD8ADZxBAA2cQwANnEYADZxHAA2cSAANnEkADZxKAA2cTAANnE4ADZxPAA2cUAANnFIADZxTAA2czgANnNAADZzTAA2c1QANnNgADZzZAA2c2gANnNsADZzcAA2c3gANnOAADZzhAA2c4gANnOQADZzlAA2c9gANnPcADZz5AA2ddAANnXYADZ14AA2degANnX0ADZ1+AA2dfwANnYAADZ2BAA2dgwANnYUADZ2GAA2dhwANnYkADZ2KAA2eBQANngcADZ4KAA2eDAANng8ADZ4QAA2eEQANnhIADZ4TAA2eFQANnhcADZ4YAA2eGQANnhsADZ4cAA2eNQANnjYADZ43AA2eOQANnrQADZ62AA2euAANnroADZ69AA2evgANnr8ADZ7AAA2ewQANnsMADZ7FAA2exgANnscADZ7JAA2eygANn0UADZ9HAA2fSgANn0wADZ9PAA2fUAANn1EADZ9SAA2fUwANn1UADZ9XAA2fWAANn1kADZ9bAA2fXAANn3QADZ+NAA2fvgANn8EADZ/EAA2fxwANn8oADZ/NAA2f0AANn9MADZ/WAA2f2QANn9wADZ/fAA2f4gANoBMADaAWAA2gGQANoBwADaAfAA2gIgANoCUADaAoAA2gKwANoC4ADaAxAA2gNAANoDcADaA5AA2gVQANoGkADaCCAA2gmQANoKwADaDEAA2g3AANoPgADaEKAA2hFgANoakADaHMAA2h7AANogwADaIOAA2iEAANohIADaIUAA2iFwANohgADaIZAA2iHAANoh0ADaIfAA2iIAANoiIADaIlAA2iJgANoicADaIqAA2iKwANojAADaJJAA2iUgANolQADaJWAA2iXwANomIADaJlAA2iZwANorAADaLUAA2i+wANox8ADaMiAA2jJAANoyYADaMoAA2jKgANoywADaMtAA2jMAANo0kADaNqAA2jbAANo24ADaNwAA2jcgANo3QADaN2AA2jeAANo3oADaObAA2jngANo6EADaOkAA2jpwANo6oADaOtAA2jsAANo7MADaO1AA2kMAANpDIADaQ0AA2kNgANpDkADaQ6AA2kOwANpDwADaQ9AA2kPwANpEEADaRCAA2kQwANpEUADaRGAA2kwQANpMMADaTFAA2kxwANpMoADaTLAA2kzAANpM0ADaTOAA2k0AANpNIADaTTAA2k1AANpNYADaTXAA2lUgANpVQADaVXAA2lWQANpVwADaVdAA2lXgANpV8ADaVgAA2lYgANpWQADaVlAA2lZgANpWgADaVpAA2lggANpYMADaWEAA2lhgANpgEADaYDAA2mBQANpgcADaYKAA2mCwANpgwADaYNAA2mDgANphAADaYSAA2mEwANphQADaYWAA2mFwANppIADaaUAA2mlgANppgADaabAA2mnAANpp0ADaaeAA2mnwANpqEADaajAA2mpAANpqUADaanAA2mqAANpyMADaclAA2nJwANpykADacsAA2nLQANpy4ADacvAA2nMAANpzIADac0AA2nNQANpzYADac4AA2nOQANp7QADae2AA2nuAANp7oADae9AA2nvgANp78ADafAAA2nwQANp8MADafFAA2nxgANp8cADafJAA2nygANqEUADahHAA2oSQANqEsADahOAA2oTwANqFAADahRAA2oUgANqFQADahWAA2oVwANqFgADahaAA2oWwANqKQADajIAA2o7wANqRMADakWAA2pGAANqRoADakcAA2pHgANqSAADakhAA2pJAANqT0ADalaAA2pXAANqV4ADalgAA2pYgANqWQADalmAA2paAANqYUADamIAA2piwANqY4ADamRAA2plAANqZcADamaAA2pnAANqhcADaoZAA2qGwANqh0ADaogAA2qIQANqiIADaojAA2qJAANqiYADaooAA2qKQANqioADaosAA2qLQANqqgADaqqAA2qrAANqq4ADaqxAA2qsgANqrMADaq0AA2qtQANqrcADaq5AA2qugANqrsADaq9AA2qvgANqzkADas7AA2rPQANqz8ADatCAA2rQwANq0QADatFAA2rRgANq0gADatKAA2rSwANq0wADatOAA2rTwANq8oADavMAA2rzwANq9EADavUAA2r1QANq9YADavXAA2r2AANq9oADavcAA2r3QANq94ADavgAA2r4QANrFwADaxeAA2sYAANrGIADaxlAA2sZgANrGcADaxoAA2saQANrGsADaxtAA2sbgANrG8ADaxxAA2scgANrO0ADazvAA2s8QANrPMADaz2AA2s9wANrPgADaz5AA2s+gANrPwADaz+AA2s/wANrQAADa0CAA2tAwANrX4ADa2AAA2tggANrYQADa2HAA2tiAANrYkADa2KAA2tiwANrY0ADa2PAA2tkAANrZEADa2TAA2tlAANricADa5KAA2uagANrooADa6MAA2ujgANrpAADa6SAA2ulQANrpYADa6XAA2umgANrpsADa6dAA2ungANrqAADa6jAA2upAANrqUADa6oAA2uqQANrq4ADa7HAA2u0AANrtIADa7UAA2u3QANruAADa7jAA2u5QANry4ADa9SAA2veQANr50ADa+gAA2vogANr6QADa+mAA2vqAANr6oADa+rAA2vrgANr8cADa/oAA2v6gANr+wADa/uAA2v8AANr/IADa/0AA2v9gANr/gADbAZAA2wHAANsB8ADbAiAA2wJQANsCgADbArAA2wLgANsDEADbAzAA2wrgANsLAADbCyAA2wtAANsLcADbC4AA2wuQANsLoADbC7AA2wvQANsL8ADbDAAA2wwQANsMMADbDEAA2xPwANsUEADbFDAA2xRQANsUgADbFJAA2xSgANsUsADbFMAA2xTgANsVAADbFRAA2xUgANsVQADbFVAA2x0AANsdIADbHVAA2x1wANsdoADbHbAA2x3AANsd0ADbHeAA2x4AANseIADbHjAA2x5AANseYADbHnAA2yAAANsgEADbICAA2yBAANsn8ADbKBAA2ygwANsoUADbKIAA2yiQANsooADbKLAA2yjAANso4ADbKQAA2ykQANspIADbKUAA2ylQANsxAADbMSAA2zFAANsxYADbMZAA2zGgANsxsADbMcAA2zHQANsx8ADbMhAA2zIgANsyMADbMlAA2zJgANs6EADbOjAA2zpQANs6cADbOqAA2zqwANs6wADbOtAA2zrgANs7AADbOyAA2zswANs7QADbO2AA2ztwANtDIADbQ0AA20NgANtDgADbQ7AA20PAANtD0ADbQ+AA20PwANtEEADbRDAA20RAANtEUADbRHAA20SAANtMMADbTFAA20xwANtMkADbTMAA20zQANtM4ADbTPAA200AANtNIADbTUAA201QANtNYADbTYAA202QANtSIADbVGAA21bQANtZEADbWUAA21lgANtZgADbWaAA21nAANtZ4ADbWfAA21ogANtbsADbXYAA212gANtdwADbXeAA214AANteIADbXkAA215gANtgMADbYGAA22CQANtgwADbYPAA22EgANthUADbYYAA22GgANtpUADbaXAA22mQANtpsADbaeAA22nwANtqAADbahAA22ogANtqQADbamAA22pwANtqgADbaqAA22qwANtyYADbcoAA23KgANtywADbcvAA23MAANtzEADbcyAA23MwANtzUADbc3AA23OAANtzkADbc7AA23PAANt7cADbe5AA23uwANt70ADbfAAA23wQANt8IADbfDAA23xAANt8YADbfIAA23yQANt8oADbfMAA23zQANuEgADbhKAA24TQANuE8ADbhSAA24UwANuFQADbhVAA24VgANuFgADbhaAA24WwANuFwADbheAA24XwANuNoADbjcAA243gANuOAADbjjAA245AANuOUADbjmAA245wANuOkADbjrAA247AANuO0ADbjvAA248AANuWsADbltAA25bwANuXEADbl0AA25dQANuXYADbl3AA25eAANuXoADbl8AA25fQANuX4ADbmAAA25gQANufwADbn+AA26AAANugIADboFAA26BgANugcADboIAA26CQANugsADboNAA26DgANug8ADboRAA26EgANuqUADbrIAA266AANuwgADbsKAA27DAANuw4ADbsQAA27EwANuxQADbsVAA27GAANuxkADbsbAA27HAANux4ADbshAA27IgANuyMADbsmAA27JwANuywADbtFAA27TgANu1AADbtSAA27WwANu14ADbthAA27YwANu6wADbvQAA279wANvBsADbweAA28IAANvCIADbwkAA28JgANvCgADbwpAA28LAANvEUADbxmAA28aAANvGoADbxsAA28bgANvHAADbxyAA28dAANvHYADbyXAA28mgANvJ0ADbygAA28owANvKYADbypAA28rAANvK8ADbyxAA29LAANvS4ADb0wAA29MgANvTUADb02AA29NwANvTgADb05AA29OwANvT0ADb0+AA29PwANvUEADb1CAA29vQANvb8ADb3BAA29wwANvcYADb3HAA29yAANvckADb3KAA29zAANvc4ADb3PAA290AANvdIADb3TAA2+TgANvlAADb5TAA2+VQANvlgADb5ZAA2+WgANvlsADb5cAA2+XgANvmAADb5hAA2+YgANvmQADb5lAA2+fgANvn8ADb6AAA2+ggANvv0ADb7/AA2/AQANvwMADb8GAA2/BwANvwgADb8JAA2/CgANvwwADb8OAA2/DwANvxAADb8SAA2/EwANv44ADb+QAA2/kgANv5QADb+XAA2/mAANv5kADb+aAA2/mwANv50ADb+fAA2/oAANv6EADb+jAA2/pAANwB8ADcAhAA3AIwANwCUADcAoAA3AKQANwCoADcArAA3ALAANwC4ADcAwAA3AMQANwDIADcA0AA3ANQANwLAADcCyAA3AtAANwLYADcC5AA3AugANwLsADcC8AA3AvQANwL8ADcDBAA3AwgANwMMADcDFAA3AxgANwUEADcFDAA3BRQANwUcADcFKAA3BSwANwUwADcFNAA3BTgANwVAADcFSAA3BUwANwVQADcFWAA3BVwANwaAADcHEAA3B6wANwg8ADcISAA3CFAANwhYADcIYAA3CGgANwhwADcIdAA3CIAANwjkADcJWAA3CWAANwloADcJcAA3CXgANwmAADcJiAA3CZAANwoEADcKEAA3ChwANwooADcKNAA3CkAANwpMADcKWAA3CmAANwxMADcMVAA3DFwANwxkADcMcAA3DHQANwx4ADcMfAA3DIAANwyIADcMkAA3DJQANwyYADcMoAA3DKQANw6QADcOmAA3DqAANw6oADcOtAA3DrgANw68ADcOwAA3DsQANw7MADcO1AA3DtgANw7cADcO5AA3DugANxDUADcQ3AA3EOQANxDsADcQ+AA3EPwANxEAADcRBAA3EQgANxEQADcRGAA3ERwANxEgADcRKAA3ESwANxMYADcTIAA3EygANxMwADcTPAA3E0AANxNEADcTSAA3E0wANxNUADcTXAA3E2AANxNkADcTbAA3E3AANxVcADcVZAA3FWwANxV0ADcVgAA3FYQANxWIADcVjAA3FZAANxWYADcVoAA3FaQANxWoADcVsAA3FbQANxegADcXqAA3F7AANxe4ADcXxAA3F8gANxfMADcX0AA3F9QANxfcADcX5AA3F+gANxfsADcX9AA3F/gANxnkADcZ7AA3GfQANxn8ADcaCAA3GgwANxoQADcaFAA3GhgANxogADcaKAA3GiwANxowADcaOAA3GjwANxyIADcdFAA3HZQANx4UADceHAA3HiQANx4sADceNAA3HkAANx5EADceSAA3HlQANx5YADceYAA3HmQANx5sADceeAA3HnwANx6AADcejAA3HpAANx6kADcfCAA3HywANx80ADcfPAA3H2AANx9sADcfeAA3H4AANyCkADchNAA3IdAANyJgADcibAA3InQANyJ8ADcihAA3IowANyKUADcimAA3IqQANyMIADcjjAA3I5QANyOcADcjpAA3I6wANyO0ADcjvAA3I8QANyPMADckUAA3JFwANyRoADckdAA3JIAANySMADckmAA3JKQANySwADckuAA3JqQANyasADcmtAA3JrwANybIADcmzAA3JtAANybUADcm2AA3JuAANyboADcm7AA3JvAANyb4ADcm/AA3KOgANyjwADco+AA3KQAANykMADcpEAA3KRQANykYADcpHAA3KSQANyksADcpMAA3KTQANyk8ADcpQAA3KywANys0ADcrQAA3K0gANytUADcrWAA3K1wANytgADcrZAA3K2wANyt0ADcreAA3K3wANyuEADcriAA3K+wANyvwADcr9AA3K/wANy3oADct8AA3LfgANy4AADcuDAA3LhAANy4UADcuGAA3LhwANy4kADcuLAA3LjAANy40ADcuPAA3LkAANzAsADcwNAA3MDwANzBEADcwUAA3MFQANzBYADcwXAA3MGAANzBoADcwcAA3MHQANzB4ADcwgAA3MIQANzJwADcyeAA3MoAANzKIADcylAA3MpgANzKcADcyoAA3MqQANzKsADcytAA3MrgANzK8ADcyxAA3MsgANzS0ADc0vAA3NMQANzTMADc02AA3NNwANzTgADc05AA3NOgANzTwADc0+AA3NPwANzUAADc1CAA3NQwANzb4ADc3AAA3NwgANzcQADc3HAA3NyAANzckADc3KAA3NywANzc0ADc3PAA3N0AANzdEADc3TAA3N1AANzh0ADc5BAA3OaAANzowADc6PAA3OkQANzpMADc6VAA3OlwANzpkADc6aAA3OnQANzrYADc7TAA3O1QANztcADc7ZAA3O2wANzt0ADc7fAA3O4QANzv4ADc8BAA3PBAANzwcADc8KAA3PDQANzxAADc8TAA3PFQANz5AADc+SAA3PlAANz5YADc+ZAA3PmgANz5sADc+cAA3PnQANz58ADc+hAA3PogANz6MADc+lAA3PpgAN0CEADdAjAA3QJQAN0CcADdAqAA3QKwAN0CwADdAtAA3QLgAN0DAADdAyAA3QMwAN0DQADdA2AA3QNwAN0LIADdC0AA3QtgAN0LgADdC7AA3QvAAN0L0ADdC+AA3QvwAN0MEADdDDAA3QxAAN0MUADdDHAA3QyAAN0UMADdFFAA3RSAAN0UoADdFNAA3RTgAN0U8ADdFQAA3RUQAN0VMADdFVAA3RVgAN0VcADdFZAA3RWgAN0dUADdHXAA3R2QAN0dsADdHeAA3R3wAN0eAADdHhAA3R4gAN0eQADdHmAA3R5wAN0egADdHqAA3R6wAN0mYADdJoAA3SagAN0mwADdJvAA3ScAAN0nEADdJyAA3ScwAN0nUADdJ3AA3SeAAN0nkADdJ7AA3SfAAN0vcADdL5AA3S+wAN0v0ADdMAAA3TAQAN0wIADdMDAA3TBAAN0wYADdMIAA3TCQAN0woADdMMAA3TDQAN06AADdPDAA3T4wAN1AMADdQFAA3UBwAN1AkADdQLAA3UDgAN1A8ADdQQAA3UEwAN1BQADdQWAA3UFwAN1BkADdQcAA3UHQAN1B4ADdQhAA3UIgAN1CcADdRAAA3USQAN1EsADdRNAA3UVgAN1FkADdRcAA3UXgAN1KcADdTLAA3U8gAN1RYADdUZAA3VGwAN1R0ADdUfAA3VIQAN1SMADdUkAA3VJwAN1UAADdVhAA3VYwAN1WUADdVnAA3VaQAN1WsADdVtAA3VbwAN1XEADdWSAA3VlQAN1ZgADdWbAA3VngAN1aEADdWkAA3VpwAN1aoADdWsAA3WJwAN1ikADdYrAA3WLQAN1jAADdYxAA3WMgAN1jMADdY0AA3WNgAN1jgADdY5AA3WOgAN1jwADdY9AA3WuAAN1roADda8AA3WvgAN1sEADdbCAA3WwwAN1sQADdbFAA3WxwAN1skADdbKAA3WywAN1s0ADdbOAA3XSQAN10sADddOAA3XUAAN11MADddUAA3XVQAN11YADddXAA3XWQAN11sADddcAA3XXQAN118ADddgAA3XeQAN13oADdd7AA3XfQAN1/gADdf6AA3X/AAN1/4ADdgBAA3YAgAN2AMADdgEAA3YBQAN2AcADdgJAA3YCgAN2AsADdgNAA3YDgAN2IkADdiLAA3YjQAN2I8ADdiSAA3YkwAN2JQADdiVAA3YlgAN2JgADdiaAA3YmwAN2JwADdieAA3YnwAN2RoADdkcAA3ZHgAN2SAADdkjAA3ZJAAN2SUADdkmAA3ZJwAN2SkADdkrAA3ZLAAN2S0ADdkvAA3ZMAAN2asADdmtAA3ZrwAN2bEADdm0AA3ZtQAN2bYADdm3AA3ZuAAN2boADdm8AA3ZvQAN2b4ADdnAAA3ZwQAN2jwADdo+AA3aQAAN2kIADdpFAA3aRgAN2kcADdpIAA3aSQAN2ksADdpNAA3aTgAN2k8ADdpRAA3aUgAN2psADdq/AA3a5gAN2woADdsNAA3bDwAN2xEADdsTAA3bFQAN2xcADdsYAA3bGwAN2zQADdtRAA3bUwAN21UADdtXAA3bWQAN21sADdtdAA3bXwAN23wADdt/AA3bggAN24UADduIAA3biwAN244ADduRAA3bkwAN3A4ADdwQAA3cEgAN3BQADdwXAA3cGAAN3BkADdwaAA3cGwAN3B0ADdwfAA3cIAAN3CEADdwjAA3cJAAN3J8ADdyhAA3cowAN3KUADdyoAA3cqQAN3KoADdyrAA3crAAN3K4ADdywAA3csQAN3LIADdy0AA3ctQAN3TAADd0yAA3dNAAN3TYADd05AA3dOgAN3TsADd08AA3dPQAN3T8ADd1BAA3dQgAN3UMADd1FAA3dRgAN3cEADd3DAA3dxQAN3ccADd3KAA3dywAN3cwADd3NAA3dzgAN3dAADd3SAA3d0wAN3dQADd3WAA3d1wAN3lIADd5UAA3eVgAN3lgADd5bAA3eXAAN3l0ADd5eAA3eXwAN3mEADd5jAA3eZAAN3mUADd5nAA3eaAAN3uMADd7lAA3e5wAN3ukADd7sAA3e7QAN3u4ADd7vAA3e8AAN3vIADd70AA3e9QAN3vYADd74AA3e+QAN33QADd92AA3feAAN33oADd99AA3ffgAN338ADd+AAA3fgQAN34MADd+FAA3fhgAN34cADd+JAA3figAN4B0ADeBAAA3gYAAN4IAADeCCAA3ghAAN4IYADeCIAA3giwAN4IwADeCNAA3gkAAN4JEADeCTAA3glAAN4JYADeCZAA3gmgAN4JsADeCeAA3gnwAN4KgADeDBAA3gygAN4MwADeDOAA3g1wAN4NoADeDdAA3g3wAN4SgADeFMAA3hcwAN4ZcADeGaAA3hnAAN4Z4ADeGgAA3hogAN4aQADeGlAA3hqAAN4cEADeHiAA3h5AAN4eYADeHoAA3h6gAN4ewADeHuAA3h8AAN4fIADeITAA3iFgAN4hkADeIcAA3iHwAN4iIADeIlAA3iKAAN4isADeItAA3iqAAN4qoADeKsAA3irgAN4rEADeKyAA3iswAN4rQADeK1AA3itwAN4rkADeK6AA3iuwAN4r0ADeK+AA3jOQAN4zsADeM9AA3jPwAN40IADeNDAA3jRAAN40UADeNGAA3jSAAN40oADeNLAA3jTAAN404ADeNPAA3jygAN48wADePPAA3j0QAN49QADePVAA3j1gAN49cADePYAA3j2gAN49wADePdAA3j3gAN4+AADePhAA3j+gAN4/sADeP8AA3j/gAN5HkADeR7AA3kfQAN5H8ADeSCAA3kgwAN5IQADeSFAA3khgAN5IgADeSKAA3kiwAN5IwADeSOAA3kjwAN5QoADeUMAA3lDgAN5RAADeUTAA3lFAAN5RUADeUWAA3lFwAN5RkADeUbAA3lHAAN5R0ADeUfAA3lIAAN5ZsADeWdAA3lnwAN5aEADeWkAA3lpQAN5aYADeWnAA3lqAAN5aoADeWsAA3lrQAN5a4ADeWwAA3lsQAN5iwADeYuAA3mMAAN5jIADeY1AA3mNgAN5jcADeY4AA3mOQAN5jsADeY9AA3mPgAN5j8ADeZBAA3mQgAN5r0ADea/AA3mwQAN5sMADebGAA3mxwAN5sgADebJAA3mygAN5swADebOAA3mzwAN5tAADebSAA3m0wAN5xwADedAAA3nZwAN54sADeeOAA3nkAAN55IADeeUAA3nlgAN55gADeeZAA3nnAAN57UADefSAA3n1AAN59YADefYAA3n2gAN59wADefeAA3n4AAN5/0ADegAAA3oAwAN6AYADegJAA3oDAAN6A8ADegSAA3oFAAN6I8ADeiRAA3okwAN6JUADeiYAA3omQAN6JoADeibAA3onAAN6J4ADeigAA3ooQAN6KIADeikAA3opQAN6SAADekiAA3pJAAN6SYADekpAA3pKgAN6SsADeksAA3pLQAN6S8ADekxAA3pMgAN6TMADek1AA3pNgAN6bEADemzAA3ptQAN6bcADem6AA3puwAN6bwADem9AA3pvgAN6cAADenCAA3pwwAN6cQADenGAA3pxwAN6kIADepEAA3qRgAN6kgADepLAA3qTAAN6k0ADepOAA3qTwAN6lEADepTAA3qVAAN6lUADepXAA3qWAAN6tMADerVAA3q1wAN6tkADercAA3q3QAN6t4ADerfAA3q4AAN6uIADerkAA3q5QAN6uYADeroAA3q6QAN62QADetmAA3raAAN62oADettAA3rbgAN628ADetwAA3rcQAN63MADet1AA3rdgAN63cADet5AA3regAN6/UADev3AA3r+QAN6/sADev+AA3r/wAN7AAADewBAA3sAgAN7AQADewGAA3sBwAN7AgADewKAA3sCwAN7J4ADezBAA3s4QAN7QEADe0DAA3tBQAN7QcADe0JAA3tDAAN7Q0ADe0OAA3tEQAN7RIADe0UAA3tFQAN7RcADe0aAA3tGwAN7RwADe0fAA3tIAAN7SUADe0+AA3tRwAN7UkADe1LAA3tVAAN7VcADe1aAA3tXAAN7aUADe3JAA3t8AAN7hQADe4XAA3uGQAN7hsADe4dAA3uHwAN7iEADe4iAA3uJQAN7j4ADe5fAA3uYQAN7mMADe5lAA3uZwAN7mkADe5rAA3ubQAN7m8ADe6QAA3ukwAN7pYADe6ZAA3unAAN7p8ADe6iAA3upQAN7qgADe6qAA3vJQAN7ycADe8pAA3vKwAN7y4ADe8vAA3vMAAN7zEADe8yAA3vNAAN7zYADe83AA3vOAAN7zoADe87AA3vtgAN77gADe+6AA3vvAAN778ADe/AAA3vwQAN78IADe/DAA3vxQAN78cADe/IAA3vyQAN78sADe/MAA3wRwAN8EkADfBMAA3wTgAN8FEADfBSAA3wUwAN8FQADfBVAA3wVwAN8FkADfBaAA3wWwAN8F0ADfBeAA3wdwAN8HgADfB5AA3wewAN8PYADfD4AA3w+gAN8PwADfD/AA3xAAAN8QEADfECAA3xAwAN8QUADfEHAA3xCAAN8QkADfELAA3xDAAN8YcADfGJAA3xiwAN8Y0ADfGQAA3xkQAN8ZIADfGTAA3xlAAN8ZYADfGYAA3xmQAN8ZoADfGcAA3xnQAN8hgADfIaAA3yHAAN8h4ADfIhAA3yIgAN8iMADfIkAA3yJQAN8icADfIpAA3yKgAN8isADfItAA3yLgAN8qkADfKrAA3yrQAN8q8ADfKyAA3yswAN8rQADfK1AA3ytgAN8rgADfK6AA3yuwAN8rwADfK+AA3yvwAN8zoADfM8AA3zPgAN80AADfNDAA3zRAAN80UADfNGAA3zRwAN80kADfNLAA3zTAAN800ADfNPAA3zUAAN85kADfO9AA3z5AAN9AgADfQLAA30DQAN9A8ADfQRAA30EwAN9BUADfQWAA30GQAN9DIADfRPAA30UQAN9FMADfRVAA30VwAN9FkADfRbAA30XQAN9HoADfR9AA30gAAN9IMADfSGAA30iQAN9IwADfSPAA30kQAN9QwADfUOAA31EAAN9RIADfUVAA31FgAN9RcADfUYAA31GQAN9RsADfUdAA31HgAN9R8ADfUhAA31IgAN9Z0ADfWfAA31oQAN9aMADfWmAA31pwAN9agADfWpAA31qgAN9awADfWuAA31rwAN9bAADfWyAA31swAN9i4ADfYwAA32MgAN9jQADfY3AA32OAAN9jkADfY6AA32OwAN9j0ADfY/AA32QAAN9kEADfZDAA32RAAN9r8ADfbBAA32wwAN9sUADfbIAA32yQAN9soADfbLAA32zAAN9s4ADfbQAA320QAN9tIADfbUAA321QAN91AADfdSAA33VAAN91YADfdZAA33WgAN91sADfdcAA33XQAN918ADfdhAA33YgAN92MADfdlAA33ZgAN9+EADffjAA335QAN9+cADffqAA336wAN9+wADfftAA337gAN9/AADffyAA338wAN9/QADff2AA339wAN+HIADfh0AA34dgAN+HgADfh7AA34fAAN+H0ADfh+AA34fwAN+IEADfiDAA34hAAN+IUADfiHAA34iAAN+RsADfk+AA35XgAN+X4ADfmAAA35ggAN+YQADfmGAA35iQAN+YoADfmLAA35jgAN+Y8ADfmRAA35kgAN+ZQADfmXAA35mAAN+ZkADfmcAA35nQAN+aYADfm/AA35yAAN+coADfnMAA351QAN+dgADfnbAA353QAN+iYADfpKAA36cQAN+pUADfqYAA36mgAN+pwADfqeAA36oAAN+qIADfqjAA36pgAN+r8ADfrgAA364gAN+uQADfrmAA366AAN+uoADfrsAA367gAN+vAADfsRAA37FAAN+xcADfsaAA37HQAN+yAADfsjAA37JgAN+ykADfsrAA37pgAN+6gADfuqAA37rAAN+68ADfuwAA37sQAN+7IADfuzAA37tQAN+7cADfu4AA37uQAN+7sADfu8AA38NwAN/DkADfw7AA38PQAN/EAADfxBAA38QgAN/EMADfxEAA38RgAN/EgADfxJAA38SgAN/EwADfxNAA38yAAN/MoADfzNAA38zwAN/NIADfzTAA381AAN/NUADfzWAA382AAN/NoADfzbAA383AAN/N4ADfzfAA38+AAN/PkADfz6AA38/AAN/XcADf15AA39ewAN/X0ADf2AAA39gQAN/YIADf2DAA39hAAN/YYADf2IAA39iQAN/YoADf2MAA39jQAN/ggADf4KAA3+DAAN/g4ADf4RAA3+EgAN/hMADf4UAA3+FQAN/hcADf4ZAA3+GgAN/hsADf4dAA3+HgAN/pkADf6bAA3+nQAN/p8ADf6iAA3+owAN/qQADf6lAA3+pgAN/qgADf6qAA3+qwAN/qwADf6uAA3+rwAN/yoADf8sAA3/LgAN/zAADf8zAA3/NAAN/zUADf82AA3/NwAN/zkADf87AA3/PAAN/z0ADf8/AA3/QAAN/7sADf+9AA3/vwAN/8EADf/EAA3/xQAN/8YADf/HAA3/yAAN/8oADf/MAA3/zQAN/84ADf/QAA3/0QAOABoADgA+AA4AZQAOAIkADgCMAA4AjgAOAJAADgCSAA4AlAAOAJYADgCXAA4AmgAOALMADgDQAA4A0gAOANQADgDWAA4A2AAOANoADgDcAA4A3gAOAPsADgD+AA4BAQAOAQQADgEHAA4BCgAOAQ0ADgEQAA4BEgAOAY0ADgGPAA4BkQAOAZMADgGWAA4BlwAOAZgADgGZAA4BmgAOAZwADgGeAA4BnwAOAaAADgGiAA4BowAOAh4ADgIgAA4CIgAOAiQADgInAA4CKAAOAikADgIqAA4CKwAOAi0ADgIvAA4CMAAOAjEADgIzAA4CNAAOAq8ADgKxAA4CswAOArUADgK4AA4CuQAOAroADgK7AA4CvAAOAr4ADgLAAA4CwQAOAsIADgLEAA4CxQAOA0AADgNCAA4DRQAOA0cADgNKAA4DSwAOA0wADgNNAA4DTgAOA1AADgNSAA4DUwAOA1QADgNWAA4DVwAOA9IADgPUAA4D1gAOA9gADgPbAA4D3AAOA90ADgPeAA4D3wAOA+EADgPjAA4D5AAOA+UADgPnAA4D6AAOBGMADgRlAA4EZwAOBGkADgRsAA4EbQAOBG4ADgRvAA4EcAAOBHIADgR0AA4EdQAOBHYADgR4AA4EeQAOBPQADgT2AA4E+AAOBPoADgT9AA4E/gAOBP8ADgUAAA4FAQAOBQMADgUFAA4FBgAOBQcADgUJAA4FCgAOBZ0ADgXAAA4F4AAOBgAADgYCAA4GBAAOBgYADgYIAA4GCwAOBgwADgYNAA4GEAAOBhEADgYTAA4GFAAOBhcADgYaAA4GGwAOBhwADgYfAA4GIAAOBiUADgY+AA4GRwAOBkkADgZMAA4GVQAOBlgADgZbAA4GXQAOBqYADgbKAA4G8QAOBxUADgcYAA4HGgAOBxwADgceAA4HIAAOByIADgcjAA4HJgAOBz8ADgdgAA4HYgAOB2QADgdmAA4HaAAOB2oADgdsAA4HbgAOB3AADgeRAA4HlAAOB5cADgeaAA4HnQAOB6AADgejAA4HpgAOB6kADgerAA4IJgAOCCgADggqAA4ILAAOCC8ADggwAA4IMQAOCDIADggzAA4INQAOCDcADgg4AA4IOQAOCDsADgg8AA4ItwAOCLkADgi7AA4IvQAOCMAADgjBAA4IwgAOCMMADgjEAA4IxgAOCMgADgjJAA4IygAOCMwADgjNAA4JSAAOCUoADglNAA4JTwAOCVIADglTAA4JVAAOCVUADglWAA4JWAAOCVoADglbAA4JXAAOCV4ADglfAA4JeAAOCXkADgl6AA4JfAAOCfcADgn5AA4J+wAOCf0ADgoAAA4KAQAOCgIADgoDAA4KBAAOCgYADgoIAA4KCQAOCgoADgoMAA4KDQAOCogADgqKAA4KjAAOCo4ADgqRAA4KkgAOCpMADgqUAA4KlQAOCpcADgqZAA4KmgAOCpsADgqdAA4KngAOCxkADgsbAA4LHQAOCx8ADgsiAA4LIwAOCyQADgslAA4LJgAOCygADgsqAA4LKwAOCywADgsuAA4LLwAOC6oADgusAA4LrgAOC7AADguzAA4LtAAOC7UADgu2AA4LtwAOC7kADgu7AA4LvAAOC70ADgu/AA4LwAAODDsADgw9AA4MPwAODEEADgxEAA4MRQAODEYADgxHAA4MSAAODEoADgxMAA4MTQAODE4ADgxQAA4MUQAODJoADgy+AA4M5QAODQkADg0MAA4NDwAODREADg0TAA4NFQAODRcADg0YAA4NGwAODTQADg1RAA4NVAAODVcADg1aAA4NXQAODWAADg1jAA4NZgAODYMADg2GAA4NiQAODYwADg2PAA4NkgAODZUADg2YAA4NmgAODhUADg4XAA4OGgAODhwADg4fAA4OIAAODiEADg4iAA4OIwAODiUADg4oAA4OKQAODioADg4sAA4OLQAODqgADg6qAA4OrQAODq8ADg6yAA4OswAODrQADg61AA4OtgAODrgADg67AA4OvAAODr0ADg6/AA4OwAAODzsADg89AA4PQAAOD0IADg9FAA4PRgAOD0cADg9IAA4PSQAOD0sADg9OAA4PTwAOD1AADg9SAA4PUwAOD84ADg/QAA4P0wAOD9UADg/YAA4P2QAOD9oADg/bAA4P3AAOD94ADg/hAA4P4gAOD+MADg/lAA4P5gAOEGkADhCNAA4QsQAOENQADhD7AA4RGwAOEUIADhFpAA4RiQAOEa0ADhHRAA4R0wAOEdYADhHYAA4R2gAOEdwADhHfAA4R4gAOEeQADhHmAA4R6QAOEesADhHtAA4R8AAOEfMADhH0AA4R+QAOEhIADhIXAA4SGQAOEh4ADhIhAA4SIwAOEmwADhKQAA4StwAOEtsADhLeAA4S4AAOEuIADhLkAA4S5gAOEugADhLpAA4S7AAOEwUADhMqAA4TLAAOEy4ADhMwAA4TMgAOEzQADhM2AA4TOAAOEzoADhM8AA4TYQAOE2QADhNnAA4TagAOE20ADhNwAA4TcwAOE3YADhN5AA4TfAAOE34ADhP5AA4T+wAOE/4ADhQAAA4UAwAOFAQADhQFAA4UBgAOFAcADhQJAA4UCwAOFAwADhQNAA4UDwAOFBAADhQhAA4UIgAOFCQADhSfAA4UoQAOFKMADhSlAA4UqAAOFKkADhSqAA4UqwAOFKwADhSuAA4UsAAOFLEADhSyAA4UtAAOFLUADhUwAA4VMgAOFTUADhU3AA4VOgAOFTsADhU8AA4VPQAOFT4ADhVAAA4VQgAOFUMADhVEAA4VRgAOFUcADhVYAA4VXQAOFWAADhViAA4VcwAOFYAADhWDAA4VhgAOFYkADhWLAA4VpwAOFbkADhXMAA4WRwAOFkkADhZLAA4WTQAOFlAADhZRAA4WUgAOFlMADhZUAA4WVgAOFlgADhZZAA4WWgAOFlwADhZdAA4W2AAOFtoADhbdAA4W3wAOFuIADhbjAA4W5AAOFuUADhbmAA4W6AAOFuoADhbrAA4W7AAOFu4ADhbvAA4XAAAOFwEADhcDAA4XfgAOF4AADheCAA4XhAAOF4cADheIAA4XiQAOF4oADheLAA4XjQAOF48ADheQAA4XkQAOF5MADheUAA4YDwAOGBEADhgUAA4YFgAOGBkADhgaAA4YGwAOGBwADhgdAA4YHwAOGCEADhgiAA4YIwAOGCUADhgmAA4YPwAOGEAADhhBAA4YQwAOGL4ADhjAAA4YwgAOGMQADhjHAA4YyAAOGMkADhjKAA4YywAOGM0ADhjPAA4Y0AAOGNEADhjTAA4Y1AAOGU8ADhlRAA4ZVAAOGVYADhlZAA4ZWgAOGVsADhlcAA4ZXQAOGV8ADhlhAA4ZYgAOGWMADhllAA4ZZgAOGXkADhmSAA4ZvwAOGcIADhnFAA4ZyAAOGcsADhnOAA4Z0QAOGdQADhnXAA4Z2gAOGd0ADhngAA4aDQAOGhAADhoTAA4aFgAOGhkADhocAA4aHwAOGiIADholAA4aKAAOGisADhouAA4aMAAOGkwADhpfAA4acQAOGoMADhqLAA4arwAOGssADhreAA4bcQAOG5QADhu0AA4b1AAOG9YADhvYAA4b2gAOG9wADhvfAA4b4AAOG+EADhvkAA4b5QAOG+cADhvoAA4b6gAOG+0ADhvuAA4b7wAOG/IADhvzAA4b/AAOHBUADhweAA4cIAAOHCIADhwrAA4cLgAOHDEADhwzAA4cfAAOHKAADhzHAA4c6wAOHO4ADhzwAA4c8gAOHPQADhz2AA4c+AAOHPkADhz8AA4dFQAOHTYADh04AA4dOgAOHTwADh0+AA4dQAAOHUIADh1EAA4dRgAOHWcADh1qAA4dbQAOHXAADh1zAA4ddgAOHXkADh18AA4dfwAOHYEADh38AA4d/gAOHgAADh4CAA4eBQAOHgYADh4HAA4eCAAOHgkADh4LAA4eDQAOHg4ADh4PAA4eEQAOHhIADh6NAA4ejwAOHpEADh6TAA4elgAOHpcADh6YAA4emQAOHpoADh6cAA4engAOHp8ADh6gAA4eogAOHqMADh8eAA4fIAAOHyMADh8lAA4fKAAOHykADh8qAA4fKwAOHywADh8uAA4fMAAOHzEADh8yAA4fNAAOHzUADh9OAA4fTwAOH1AADh9SAA4fzQAOH88ADh/RAA4f0wAOH9YADh/XAA4f2AAOH9kADh/aAA4f3AAOH94ADh/fAA4f4AAOH+IADh/jAA4gXgAOIGAADiBiAA4gZAAOIGcADiBoAA4gaQAOIGoADiBrAA4gbQAOIG8ADiBwAA4gcQAOIHMADiB0AA4g7wAOIPEADiDzAA4g9QAOIPgADiD5AA4g+gAOIPsADiD8AA4g/gAOIQAADiEBAA4hAgAOIQQADiEFAA4hgAAOIYIADiGEAA4hhgAOIYkADiGKAA4hiwAOIYwADiGNAA4hjwAOIZEADiGSAA4hkwAOIZUADiGWAA4iEQAOIhMADiIVAA4iFwAOIhoADiIbAA4iHAAOIh0ADiIeAA4iIAAOIiIADiIjAA4iJAAOIiYADiInAA4icAAOIpQADiK7AA4i3wAOIuIADiLkAA4i5gAOIugADiLqAA4i7AAOIu0ADiLwAA4jCQAOIyYADiMoAA4jKgAOIywADiMuAA4jMAAOIzIADiM0AA4jUQAOI1QADiNXAA4jWgAOI10ADiNgAA4jYwAOI2YADiNoAA4j4wAOI+UADiPoAA4j6gAOI+0ADiPuAA4j7wAOI/AADiPxAA4j8wAOI/UADiP2AA4j9wAOI/kADiP6AA4kdQAOJHcADiR5AA4kewAOJH4ADiR/AA4kgAAOJIEADiSCAA4khAAOJIYADiSHAA4kiAAOJIoADiSLAA4lBgAOJQgADiUKAA4lDAAOJQ8ADiUQAA4lEQAOJRIADiUTAA4lFQAOJRcADiUYAA4lGQAOJRsADiUcAA4llwAOJZkADiWcAA4lngAOJaEADiWiAA4lowAOJaQADiWlAA4lpwAOJakADiWqAA4lqwAOJa0ADiWuAA4mKQAOJisADiYtAA4mLwAOJjIADiYzAA4mNAAOJjUADiY2AA4mOAAOJjoADiY7AA4mPAAOJj4ADiY/AA4mugAOJrwADia+AA4mwAAOJsMADibEAA4mxQAOJsYADibHAA4myQAOJssADibMAA4mzQAOJs8ADibQAA4nSwAOJ00ADidPAA4nUQAOJ1QADidVAA4nVgAOJ1cADidYAA4nWgAOJ1wADiddAA4nXgAOJ2AADidhAA4n9AAOKBcADig3AA4oVwAOKFkADihbAA4oXQAOKF8ADihiAA4oYwAOKGQADihnAA4oaAAOKGoADihrAA4obQAOKHAADihxAA4ocgAOKHUADih2AA4oewAOKJQADiidAA4onwAOKKEADiiqAA4orQAOKLAADiiyAA4o+wAOKR8ADilGAA4pagAOKW0ADilvAA4pcQAOKXMADil1AA4pdwAOKXgADil7AA4plAAOKbUADim3AA4puQAOKbsADim9AA4pvwAOKcEADinDAA4pxQAOKeYADinpAA4p7AAOKe8ADinyAA4p9QAOKfgADin7AA4p/gAOKgAADip7AA4qfQAOKn8ADiqBAA4qhAAOKoUADiqGAA4qhwAOKogADiqKAA4qjAAOKo0ADiqOAA4qkAAOKpEADisMAA4rDgAOKxAADisSAA4rFQAOKxYADisXAA4rGAAOKxkADisbAA4rHQAOKx4ADisfAA4rIQAOKyIADiudAA4rnwAOK6IADiukAA4rpwAOK6gADiupAA4rqgAOK6sADiutAA4rrwAOK7AADiuxAA4rswAOK7QADivNAA4rzgAOK88ADivRAA4sTAAOLE4ADixQAA4sUgAOLFUADixWAA4sVwAOLFgADixZAA4sWwAOLF0ADixeAA4sXwAOLGEADixiAA4s3QAOLN8ADizhAA4s4wAOLOYADiznAA4s6AAOLOkADizqAA4s7AAOLO4ADizvAA4s8AAOLPIADizzAA4tbgAOLXAADi1yAA4tdAAOLXcADi14AA4teQAOLXoADi17AA4tfQAOLX8ADi2AAA4tgQAOLYMADi2EAA4t/wAOLgEADi4DAA4uBQAOLggADi4JAA4uCgAOLgsADi4MAA4uDgAOLhAADi4RAA4uEgAOLhQADi4VAA4ukAAOLpIADi6UAA4ulgAOLpkADi6aAA4umwAOLpwADi6dAA4unwAOLqEADi6iAA4uowAOLqUADi6mAA4u7wAOLxMADi86AA4vXgAOL2EADi9jAA4vZQAOL2cADi9pAA4vawAOL2wADi9vAA4viAAOL6UADi+nAA4vqQAOL6sADi+tAA4vrwAOL7EADi+zAA4v0AAOL9MADi/WAA4v2QAOL9wADi/fAA4v4gAOL+UADi/nAA4wYgAOMGQADjBmAA4waAAOMGsADjBsAA4wbQAOMG4ADjBvAA4wcQAOMHMADjB0AA4wdQAOMHcADjB4AA4w8wAOMPUADjD3AA4w+QAOMPwADjD9AA4w/gAOMP8ADjEAAA4xAgAOMQQADjEFAA4xBgAOMQgADjEJAA4xhAAOMYYADjGIAA4xigAOMY0ADjGOAA4xjwAOMZAADjGRAA4xkwAOMZUADjGWAA4xlwAOMZkADjGaAA4yFQAOMhcADjIZAA4yGwAOMh4ADjIfAA4yIAAOMiEADjIiAA4yJAAOMiYADjInAA4yKAAOMioADjIrAA4ypgAOMqgADjKqAA4yrAAOMq8ADjKwAA4ysQAOMrIADjKzAA4ytQAOMrcADjK4AA4yuQAOMrsADjK8AA4zNwAOMzkADjM7AA4zPQAOM0AADjNBAA4zQgAOM0MADjNEAA4zRgAOM0gADjNJAA4zSgAOM0wADjNNAA4zyAAOM8oADjPMAA4zzgAOM9EADjPSAA4z0wAOM9QADjPVAA4z1wAOM9kADjPaAA4z2wAOM90ADjPeAA40cQAONJQADjS0AA401AAONNYADjTYAA402gAONNwADjTfAA404AAONOEADjTkAA405QAONOcADjToAA406gAONO0ADjTuAA407wAONPIADjTzAA40+AAONREADjUaAA41HAAONR4ADjUnAA41KgAONS0ADjUvAA41eAAONZwADjXDAA415wAONeoADjXsAA417gAONfAADjXyAA419AAONfUADjX4AA42EQAONjIADjY0AA42NgAONjgADjY6AA42PAAONj4ADjZAAA42QgAONmMADjZmAA42aQAONmwADjZvAA42cgAONnUADjZ4AA42ewAONn0ADjb4AA42+gAONvwADjb+AA43AQAONwIADjcDAA43BAAONwUADjcHAA43CQAONwoADjcLAA43DQAONw4ADjeJAA43iwAON40ADjePAA43kgAON5MADjeUAA43lQAON5YADjeYAA43mgAON5sADjecAA43ngAON58ADjgaAA44HAAOOB8ADjghAA44JAAOOCUADjgmAA44JwAOOCgADjgqAA44LAAOOC0ADjguAA44MAAOODEADjhKAA44SwAOOEwADjhOAA44yQAOOMsADjjNAA44zwAOONIADjjTAA441AAOONUADjjWAA442AAOONoADjjbAA443AAOON4ADjjfAA45WgAOOVwADjleAA45YAAOOWMADjlkAA45ZQAOOWYADjlnAA45aQAOOWsADjlsAA45bQAOOW8ADjlwAA456wAOOe0ADjnvAA458QAOOfQADjn1AA459gAOOfcADjn4AA45+gAOOfwADjn9AA45/gAOOgAADjoBAA46fAAOOn4ADjqAAA46ggAOOoUADjqGAA46hwAOOogADjqJAA46iwAOOo0ADjqOAA46jwAOOpEADjqSAA47DQAOOw8ADjsRAA47EwAOOxYADjsXAA47GAAOOxkADjsaAA47HAAOOx4ADjsfAA47IAAOOyIADjsjAA47bAAOO5AADju3AA472wAOO94ADjvgAA474gAOO+QADjvmAA476AAOO+kADjvsAA48BQAOPCIADjwkAA48JgAOPCgADjwqAA48LAAOPC4ADjwwAA48TQAOPFAADjxTAA48VgAOPFkADjxcAA48XwAOPGIADjxkAA483wAOPOEADjzjAA485QAOPOgADjzpAA486gAOPOsADjzsAA487gAOPPAADjzxAA488gAOPPQADjz1AA49cAAOPXIADj10AA49dgAOPXkADj16AA49ewAOPXwADj19AA49fwAOPYEADj2CAA49gwAOPYUADj2GAA4+AQAOPgMADj4FAA4+BwAOPgoADj4LAA4+DAAOPg0ADj4OAA4+EAAOPhIADj4TAA4+FAAOPhYADj4XAA4+kgAOPpQADj6XAA4+mQAOPpwADj6dAA4+ngAOPp8ADj6gAA4+ogAOPqQADj6lAA4+pgAOPqgADj6pAA4/JAAOPyYADj8oAA4/KgAOPy0ADj8uAA4/LwAOPzAADj8xAA4/MwAOPzUADj82AA4/NwAOPzkADj86AA4/tQAOP7cADj+5AA4/uwAOP74ADj+/AA4/wAAOP8EADj/CAA4/xAAOP8YADj/HAA4/yAAOP8oADj/LAA5ARgAOQEgADkBKAA5ATAAOQE8ADkBQAA5AUQAOQFIADkBTAA5AVQAOQFcADkBYAA5AWQAOQFsADkBcAA5A7wAOQRIADkEyAA5BUgAOQVQADkFWAA5BWAAOQVo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ADlJ/AA5SgAAOUoIADlKDAA5S/gAOUwAADlMCAA5TBAAOUwcADlMIAA5TCQAOUwoADlMLAA5TDQAOUw8ADlMQAA5TEQAOUxMADlMUAA5TjwAOU5EADlOTAA5TlQAOU5gADlOZAA5TmgAOU5sADlOcAA5TngAOU6AADlOhAA5TogAOU6QADlOlAA5UIAAOVCIADlQkAA5UJgAOVCkADlQqAA5UKwAOVCwADlQtAA5ULwAOVDEADlQyAA5UMwAOVDUADlQ2AA5UfwAOVKMADlTKAA5U7gAOVPEADlT0AA5U9gAOVPgADlT6AA5U/AAOVP0ADlUAAA5VGQAOVTYADlU5AA5VPAAOVT8ADlVCAA5VRQAOVUgADlVLAA5VaAAOVWsADlVuAA5VcQAOVXQADlV3AA5VegAOVX0ADlV/AA5V+gAOVfwADlX/AA5WAQAOVgQADlYFAA5WBgAOVgcADlYIAA5WCgAOVg0ADlYOAA5WDwAOVhEADlYSAA5WjQAOVo8ADlaSAA5WlAAOVpcADlaYAA5WmQAOVpoADlabAA5WnQAOVqAADlahAA5WogAOVqQADlalAA5XIAAOVyIADlclAA5XJwAOVyoADlcrAA5XLAAOVy0ADlcuAA5XMAAOVzMADlc0AA5XNQAOVzcADlc4AA5XswAOV7UADle4AA5XugAOV70ADle+AA5XvwAOV8AADlfBAA5XwwAOV8YADlfHAA5XyAAOV8oADlfLAA5YTgAOWHIADliWAA5YuQAOWOAADlkAAA5ZJwAOWU4ADlluAA5ZkgAOWbYADlm4AA5ZuwAOWb0ADlm/AA5ZwQAOWcQADlnHAA5ZyQAOWcsADlnOAA5Z0AAOWdIADlnVAA5Z2AAOWdkADlneAA5Z9wAOWfwADln+AA5aAwAOWgYADloIAA5aUQAOWnUADlqcAA5awAAOWsMADlrFAA5axwAOWskADlrLAA5azQAOWs4ADlrRAA5a6gAOWw8ADlsRAA5bEwAOWxUADlsXAA5bGQAOWxsADlsdAA5bHwAOWyEADltGAA5bSQAOW0wADltPAA5bUgAOW1UADltYAA5bWwAOW14ADlthAA5bYwAOW94ADlvgAA5b4wAOW+UADlvoAA5b6QAOW+oADlvrAA5b7AAOW+4ADlvwAA5b8QAOW/IADlv0AA5b9QAOXAYADlwHAA5cCQAOXIQADlyGAA5ciAAOXIoADlyNAA5cjgAOXI8ADlyQAA5ckQAOXJMADlyVAA5clgAOXJcADlyZAA5cmgAOXRUADl0XAA5dGgAOXRwADl0fAA5dIAAOXSEADl0iAA5dIwAOXSUADl0nAA5dKAAOXSkADl0rAA5dLAAOXT0ADl1CAA5dRQAOXUcADl1YAA5dXQAOXWAADl1iAA5dcAAOXesADl3tAA5d7wAOXfEADl30AA5d9QAOXfYADl33AA5d+AAOXfoADl38AA5d/QAOXf4ADl4AAA5eAQAOXnwADl5+AA5egQAOXoMADl6GAA5ehwAOXogADl6JAA5eigAOXowADl6OAA5ejwAOXpAADl6SAA5ekwAOXqQADl6lAA5epwAOXyIADl8kAA5fJgAOXygADl8rAA5fLAAOXy0ADl8uAA5fLwAOXzEADl8zAA5fNAAOXzUADl83AA5fOAAOX7MADl+1AA5fuAAOX7oADl+9AA5fvgAOX78ADl/AAA5fwQAOX8MADl/FAA5fxgAOX8cADl/JAA5fygAOX+MADl/kAA5f5QAOX+cADmBiAA5gZAAOYGYADmBoAA5gawAOYGwADmBtAA5gbgAOYG8ADmBxAA5gcwAOYHQADmB1AA5gdwAOYHgADmDzAA5g9QAOYPgADmD6AA5g/QAOYP4ADmD/AA5hAAAOYQEADmEDAA5hBQAOYQYADmEHAA5hCQAOYQoADmEkAA5hPQAOYU4ADmFRAA5hVAAOYVcADmFaAA5hawAOYW4ADmFxAA5hdAAOYXcADmF5AA5hhAAOYZIADmIlAA5iSAAOYmgADmKIAA5iigAOYowADmKOAA5ikAAOYpMADmKUAA5ilQAOYpgADmKZAA5imwAOYpwADmKfAA5iogAOYqMADmKkAA5ipwAOYqgADmKtAA5ixgAOYs8ADmLRAA5i1AAOYt0ADmLgAA5i4wAOYuUADmMuAA5jUgAOY3kADmOdAA5joAAOY6IADmOkAA5jpgAOY6gADmOqAA5jqwAOY64ADmPHAA5j6AAOY+oADmPsAA5j7gAOY/AADmPyAA5j9AAOY/YADmP4AA5kGQAOZBwADmQfAA5kIgAOZCUADmQoAA5kKwAOZC4ADmQxAA5kMwAOZK4ADmSwAA5ksgAOZLQADmS3AA5kuAAOZLkADmS6AA5kuwAOZL0ADmS/AA5kwAAOZMEADmTDAA5kxAAOZT8ADmVBAA5lQwAOZUUADmVIAA5lSQAOZUoADmVLAA5lTAAOZU4ADmVQAA5lUQAOZVIADmVUAA5lVQAOZdAADmXSAA5l1QAOZdcADmXaAA5l2wAOZdwADmXdAA5l3gAOZeAADmXiAA5l4wAOZeQADmXmAA5l5wAOZgAADmYBAA5mAgAOZgQADmZ/AA5mgQAOZoMADmaFAA5miAAOZokADmaKAA5miwAOZowADmaOAA5mkAAOZpEADmaSAA5mlAAOZpUADmcQAA5nEgAOZxQADmcWAA5nGQAOZxoADmcbAA5nHAAOZx0ADmcfAA5nIQAOZyIADmcjAA5nJQAOZyYADmehAA5nowAOZ6UADmenAA5nqgAOZ6sADmesAA5nrQAOZ64ADmewAA5nsgAOZ7MADme0AA5ntgAOZ7cADmgyAA5oNAAOaDYADmg4AA5oOwAOaDwADmg9AA5oPgAOaD8ADmhBAA5oQwAOaEQADmhFAA5oRwAOaEgADmjDAA5oxQAOaMcADmjJAA5ozAAOaM0ADmjOAA5ozwAOaNAADmjSAA5o1AAOaNUADmjWAA5o2AAOaNkADmkiAA5pRgAOaW0ADmmRAA5plAAOaZcADmmZAA5pmwAOaZ0ADmmfAA5poAAOaaMADmm8AA5p2QAOadwADmnfAA5p4gAOaeUADmnoAA5p6wAOae4ADmoLAA5qDgAOahEADmoUAA5qFwAOahoADmodAA5qIAAOaiIADmqdAA5qnwAOaqIADmqkAA5qpwAOaqgADmqpAA5qqgAOaqsADmqtAA5qsAAOarEADmqyAA5qtAAOarUADmswAA5rMgAOazUADms3AA5rOgAOazsADms8AA5rPQAOaz4ADmtAAA5rQwAOa0QADmtFAA5rRwAOa0gADmvDAA5rxQAOa8gADmvKAA5rzQAOa84ADmvPAA5r0AAOa9EADmvTAA5r1gAOa9cADmvYAA5r2gAOa9sADmxWAA5sWAAObFsADmxdAA5sYAAObGEADmxiAA5sYwAObGQADmxmAA5saQAObGoADmxrAA5sbQAObG4ADmzpAA5s6wAObO0ADmzvAA5s8gAObPMADmz0AA5s9QAObPYADmz4AA5s+wAObPwADmz9AA5s/wAObQAADm17AA5tfQAObX8ADm2BAA5thAAObYUADm2GAA5thwAObYgADm2KAA5tjQAObY4ADm2PAA5tkQAObZIADm4NAA5uDwAObhIADm4UAA5uFwAObhgADm4ZAA5uGgAObhsADm4dAA5uIAAObiEADm4iAA5uJAAObiUADm64AA5u2wAObvsADm8bAA5vHQAObx8ADm8hAA5vIwAObyYADm8nAA5vKAAObysADm8sAA5vLgAOby8ADm8xAA5vNAAObzUADm82AA5vOQAObzoADm9DAA5vXAAOb2UADm9nAA5vaQAOb3IADm91AA5veAAOb3oADm/DAA5v5wAOcA4ADnAyAA5wNQAOcDcADnA5AA5wOwAOcD0ADnA/AA5wQAAOcEMADnBcAA5wfQAOcH8ADnCBAA5wgwAOcIUADnCHAA5wiQAOcIsADnCNAA5wrgAOcLEADnC0AA5wtwAOcLoADnC9AA5wwAAOcMMADnDGAA5wyAAOcUMADnFFAA5xRwAOcUkADnFMAA5xTQAOcU4ADnFPAA5xUAAOcVIADnFUAA5xVQAOcVYADnFYAA5xWQAOcdQADnHWAA5x2AAOcdoADnHdAA5x3gAOcd8ADnHgAA5x4QAOceMADnHlAA5x5gAOcecADnHpAA5x6gAOcmUADnJnAA5yagAOcmwADnJvAA5ycAAOcnEADnJyAA5ycwAOcnUADnJ3AA5yeAAOcnkADnJ7AA5yfAAOcpUADnKWAA5ylwAOcpkADnMUAA5zFgAOcxgADnMaAA5zHQAOcx4ADnMfAA5zIAAOcyEADnMjAA5zJQAOcyYADnMnAA5zKQAOcyoADnOlAA5zpwAOc6kADnOrAA5zrgAOc68ADnOwAA5zsQAOc7IADnO0AA5ztgAOc7cADnO4AA5zugAOc7sADnQ2AA50OAAOdDoADnQ8AA50PwAOdEAADnRBAA50QgAOdEMADnRFAA50RwAOdEgADnRJAA50SwAOdEwADnTHAA50yQAOdMsADnTNAA500AAOdNEADnTSAA500wAOdNQADnTWAA502AAOdNkADnTaAA503AAOdN0ADnVYAA51WgAOdVwADnVeAA51YQAOdWIADnVjAA51ZAAOdWUADnVnAA51aQAOdWoADnVrAA51bQAOdW4ADnW3AA512wAOdgIADnYmAA52KQAOdisADnYtAA52LwAOdjEADnYzAA52NAAOdjcADnZQAA52bQAOdm8ADnZxAA52cwAOdnUADnZ3AA52eQAOdnsADnaYAA52mwAOdp4ADnahAA52pAAOdqcADnaqAA52rQAOdq8ADncqAA53LAAOdy4ADncwAA53MwAOdzQADnc1AA53NgAOdzcADnc5AA53OwAOdzwADnc9AA53PwAOd0AADne7AA53vQAOd78ADnfBAA53xAAOd8UADnfGAA53xwAOd8gADnfKAA53zAAOd80ADnfOAA530AAOd9EADnhMAA54TgAOeFAADnhSAA54VQAOeFYADnhXAA54WAAOeFkADnhbAA54XQAOeF4ADnhfAA54YQAOeGIADnjdAA543wAOeOIADnjkAA545wAOeOgADnjpAA546gAOeOsADnjtAA547wAOePAADnjxAA548wAOePQADnlvAA55cQAOeXMADnl1AA55eAAOeXkADnl6AA55ewAOeXwADnl+AA55gAAOeYEADnmCAA55hAAOeYUADnoAAA56AgAOegQADnoGAA56CQAOegoADnoLAA56DAAOeg0ADnoPAA56EQAOehIADnoTAA56FQAOehYADnqRAA56kwAOepUADnqXAA56mgAOepsADnqcAA56nQAOep4ADnqgAA56ogAOeqMADnqkAA56pgAOeqcADns6AA57XQAOe30ADnudAA57nwAOe6EADnujAA57pQAOe6gADnupAA57qgAOe60ADnuuAA57sAAOe7EADnuzAA57tgAOe7cADnu4AA57uwAOe7wADnvBAA572gAOe+MADnvlAA575wAOe/AADnvzAA579gAOe/gADnxBAA58ZQAOfIwADnywAA58swAOfLUADny3AA58uQAOfLsADny9AA58vgAOfMEADnzaAA58+wAOfP0ADnz/AA59AQAOfQMADn0FAA59BwAOfQkADn0LAA59LAAOfS8ADn0yAA59NQAOfTgADn07AA59PgAOfUEADn1EAA59RgAOfcEADn3DAA59xQAOfccADn3KAA59ywAOfcwADn3NAA59zgAOfdAADn3SAA590wAOfdQADn3WAA591wAOflIADn5UAA5+VgAOflgADn5bAA5+XAAOfl0ADn5eAA5+XwAOfmEADn5jAA5+ZAAOfmUADn5nAA5+aAAOfuMADn7lAA5+6AAOfuoADn7tAA5+7gAOfu8ADn7wAA5+8QAOfvMADn71AA5+9gAOfvcADn75AA5++gAOfxMADn8UAA5/FQAOfxcADn+SAA5/lAAOf5YADn+YAA5/mwAOf5wADn+dAA5/ngAOf58ADn+hAA5/owAOf6QADn+lAA5/pwAOf6gADoAjAA6AJQAOgCcADoApAA6ALAAOgC0ADoAuAA6ALwAOgDAADoAyAA6ANAAOgDUADoA2AA6AOAAOgDkADoC0AA6AtgAOgLgADoC6AA6AvQAOgL4ADoC/AA6AwAAOgMEADoDDAA6AxQAOgMYADoDHAA6AyQAOgMoADoFFAA6BRwAOgUkADoFLAA6BTgAOgU8ADoFQAA6BUQAOgVIADoFUAA6BVgAOgVcADoFYAA6BWgAOgVsADoHWAA6B2AAOgdoADoHcAA6B3wAOgeAADoHhAA6B4gAOgeMADoHlAA6B5wAOgegADoHpAA6B6wAOgewADoI1AA6CWQAOgoAADoKkAA6CpwAOgqkADoKrAA6CrQAOgq8ADoKxAA6CsgAOgrUADoLOAA6C6wAOgu0ADoLvAA6C8QAOgvMADoL1AA6C9wAOgvkADoMWAA6DGQAOgxwADoMfAA6DIgAOgyUADoMoAA6DKwAOgy0ADoOoAA6DqgAOg6wADoOuAA6DsQAOg7IADoOzAA6DtAAOg7UADoO3AA6DuQAOg7oADoO7AA6DvQAOg74ADoQ5AA6EOwAOhD0ADoQ/AA6EQgAOhEMADoREAA6ERQAOhEYADoRIAA6ESgAOhEsADoRMAA6ETgAOhE8ADoTKAA6EzAAOhM4ADoTQAA6E0wAOhNQADoTVAA6E1gAOhNcADoTZAA6E2wAOhNwADoTdAA6E3wAOhOAADoVbAA6FXQAOhV8ADoVhAA6FZAAOhWUADoVmAA6FZwAOhWgADoVqAA6FbAAOhW0ADoVuAA6FcAAOhXEADoXsAA6F7gAOhfAADoXyAA6F9QAOhfYADoX3AA6F+AAOhfkADoX7AA6F/QAOhf4ADoX/AA6GAQAOhgIADoZ9AA6GfwAOhoEADoaDAA6GhgAOhocADoaIAA6GiQAOhooADoaMAA6GjgAOho8ADoaQAA6GkgAOhpMADocOAA6HEAAOhxIADocUAA6HFwAOhxgADocZAA6HGgAOhxsADocdAA6HHwAOhyAADochAA6HIwAOhyQADoe3AA6H2gAOh/oADogaAA6IHAAOiB4ADoggAA6IIgAOiCUADogmAA6IJwAOiCoADogrAA6ILQAOiC4ADogwAA6IMwAOiDQADog1AA6IOAAOiDkADog+AA6IVwAOiGAADohiAA6IZAAOiG0ADohwAA6IcwAOiHUADoi+AA6I4gAOiQkADoktAA6JMAAOiTIADok0AA6JNgAOiTgADok6AA6JOwAOiT4ADolXAA6JeAAOiXoADol8AA6JfgAOiYAADomCAA6JhAAOiYYADomIAA6JqQAOiawADomvAA6JsgAOibUADom4AA6JuwAOib4ADonBAA6JwwAOij4ADopAAA6KQgAOikQADopHAA6KSAAOikkADopKAA6KSwAOik0ADopPAA6KUAAOilEADopTAA6KVAAOis8ADorRAA6K0wAOitUADorYAA6K2QAOitoADorbAA6K3AAOit4ADorgAA6K4QAOiuIADorkAA6K5QAOi2AADotiAA6LZQAOi2cADotqAA6LawAOi2wADottAA6LbgAOi3AADotyAA6LcwAOi3QADot2AA6LdwAOi5AADouRAA6LkgAOi5QADowPAA6MEQAOjBMADowVAA6MGAAOjBkADowaAA6MGwAOjBwADoweAA6MIAAOjCEADowiAA6MJAAOjCUADoygAA6MogAOjKQADoymAA6MqQAOjKoADoyrAA6MrAAOjK0ADoyvAA6MsQAOjLIADoyzAA6MtQAOjLYADo0xAA6NMwAOjTUADo03AA6NOgAOjTsADo08AA6NPQAOjT4ADo1AAA6NQgAOjUMADo1EAA6NRgAOjUcADo3CAA6NxAAOjcYADo3IAA6NywAOjcwADo3NAA6NzgAOjc8ADo3RAA6N0wAOjdQADo3VAA6N1wAOjdgADo5TAA6OVQAOjlcADo5ZAA6OXAAOjl0ADo5eAA6OXwAOjmAADo5iAA6OZAAOjmUADo5mAA6OaAAOjmkADo6yAA6O1gAOjv0ADo8hAA6PJAAOjyYADo8oAA6PKgAOjywADo8uAA6PLwAOjzIADo9LAA6PaAAOj2oADo9sAA6PbgAOj3AADo9yAA6PdAAOj3YADo+TAA6PlgAOj5kADo+cAA6PnwAOj6IADo+lAA6PqAAOj6oADpAlAA6QJwAOkCkADpArAA6QLgAOkC8ADpAwAA6QMQAOkDIADpA0AA6QNgAOkDcADpA4AA6QOgAOkDsADpC2AA6QuAAOkLoADpC8AA6QvwAOkMAADpDBAA6QwgAOkMMADpDFAA6QxwAOkMgADpDJAA6QywAOkMwADpFHAA6RSQAOkUsADpFNAA6RUAAOkVEADpFSAA6RUwAOkVQADpFWAA6RWAAOkVkADpFaAA6RXAAOkV0ADpHYAA6R2gAOkd0ADpHfAA6R4gAOkeMADpHkAA6R5QAOkeYADpHoAA6R6gAOkesADpHsAA6R7gAOke8ADpJqAA6SbAAOkm4ADpJwAA6ScwAOknQADpJ1AA6SdgAOkncADpJ5AA6SewAOknwADpJ9AA6SfwAOkoAADpL7AA6S/QAOkv8ADpMBAA6TBAAOkwUADpMGAA6TBwAOkwgADpMKAA6TDAAOkw0ADpMOAA6TEAAOkxEADpOMAA6TjgAOk5AADpOSAA6TlQAOk5YADpOXAA6TmAAOk5kADpObAA6TnQAOk54ADpOfAA6ToQAOk6IADpOzAA6TtAAOk7YADpQxAA6UMwAOlDUADpQ3AA6UOgAOlDsADpQ8AA6UPQAOlD4ADpRAAA6UQwAOlEQADpRFAA6URwAOlEgADpTDAA6UxQAOlMcADpTJAA6UzAAOlM0ADpTOAA6UzwAOlNAADpTSAA6U1QAOlNYADpTXAA6U2QAOlNoADpVVAA6VVwAOlVoADpVcAA6VXwAOlWAADpVhAA6VYgAOlWMADpVlAA6VaAAOlWkADpVqAA6VbAAOlW0ADpYAAA6WIwAOlkMADpZjAA6WZQAOlmcADpZpAA6WawAOlm4ADpZvAA6WcAAOlnMADpZ0AA6WdgAOlncADpZ6AA6WfQAOln4ADpZ/AA6WggAOloMADpaIAA6WoQAOlqoADpasAA6WrwAOlrgADpa7AA6WvgAOlsAADpcJAA6XLQAOl1QADpd4AA6XewAOl30ADpd/AA6XgQAOl4MADpeFAA6XhgAOl4kADpeiAA6XwwAOl8UADpfHAA6XyQAOl8sADpfNAA6XzwAOl9EADpfTAA6X9AAOl/cADpf6AA6X/QAOmAAADpgDAA6YBgAOmAkADpgMAA6YDgAOmIkADpiLAA6YjQAOmI8ADpiSAA6YkwAOmJQADpiVAA6YlgAOmJgADpiaAA6YmwAOmJwADpieAA6YnwAOmRoADpkcAA6ZHgAOmSAADpkjAA6ZJAAOmSUADpkmAA6ZJwAOmSkADpkrAA6ZLAAOmS0ADpkvAA6ZMAAOmasADpmtAA6ZsAAOmbIADpm1AA6ZtgAOmbcADpm4AA6ZuQAOmbsADpm9AA6ZvgAOmb8ADpnBAA6ZwgAOmdsADpncAA6Z3QAOmd8ADppaAA6aXAAOml4ADppgAA6aYwAOmmQADpplAA6aZgAOmmcADpppAA6aawAOmmwADpptAA6abwAOmnAADprrAA6a7QAOmu8ADprxAA6a9AAOmvUADpr2AA6a9wAOmvgADpr6AA6a/AAOmv0ADpr+AA6bAAAOmwEADpt8AA6bfgAOm4AADpuCAA6bhQAOm4YADpuHAA6biAAOm4kADpuLAA6bjQAOm44ADpuPAA6bkQAOm5IADpwNAA6cDwAOnBEADpwTAA6cFgAOnBcADpwYAA6cGQAOnBoADpwcAA6cHgAOnB8ADpwgAA6cIgAOnCMADpyeAA6coAAOnKIADpykAA6cpwAOnKgADpypAA6cqgAOnKsADpytAA6crwAOnLAADpyxAA6cswAOnLQADpz9AA6dIQAOnUgADp1sAA6dbwAOnXIADp10AA6ddgAOnXgADp16AA6dewAOnX4ADp2XAA6dtAAOnbcADp26AA6dvQAOncAADp3DAA6dxgAOnckADp3mAA6d6QAOnewADp3vAA6d8gAOnfUADp34AA6d+wAOnf0ADp54AA6eegAOnn0ADp5/AA6eggAOnoMADp6EAA6ehQAOnoYADp6IAA6eiwAOnowADp6NAA6ejwAOnpAADp8LAA6fDQAOnxAADp8SAA6fFQAOnxYADp8XAA6fGAAOnxkADp8bAA6fHgAOnx8ADp8gAA6fIgAOnyMADp+eAA6foAAOn6MADp+lAA6fqAAOn6kADp+qAA6fqwAOn6wADp+uAA6fsQAOn7IADp+zAA6ftQAOn7YADqAxAA6gMwAOoDYADqA4AA6gOwAOoDwADqA9AA6gPgAOoD8ADqBBAA6gRAAOoEUADqBGAA6gSAAOoEkADqDMAA6g8AAOoRQADqE3AA6hXgAOoX4ADqGlAA6hzAAOoewADqIQAA6iNAAOojYADqI5AA6iOwAOoj0ADqI/AA6iQgAOokUADqJHAA6iSQAOokwADqJOAA6iUAAOolMADqJWAA6iVwAOolwADqJ1AA6iegAOonwADqKBAA6ihAAOooYADqLPAA6i8wAOoxoADqM+AA6jQQAOo0MADqNFAA6jRwAOo0kADqNLAA6jTAAOo08ADqNoAA6jjQAOo48ADqORAA6jkwAOo5UADqOXAA6jmQAOo5sADqOdAA6jnwAOo8QADqPHAA6jygAOo80ADqPQAA6j0wAOo9YADqPZAA6j3AAOo98ADqPhAA6kXAAOpF4ADqRhAA6kYwAOpGYADqRnAA6kaAAOpGkADqRqAA6kbAAOpG4ADqRvAA6kcAAOpHIADqRzAA6khAAOpIUADqSHAA6lAgAOpQQADqUGAA6lCAAOpQsADqUMAA6lDQAOpQ4ADqUPAA6lEQAOpRMADqUUAA6lFQAOpRcADqUYAA6lkwAOpZUADqWYAA6lmgAOpZ0ADqWeAA6lnwAOpaAADqWhAA6lowAOpaUADqWmAA6lpwAOpakADqWqAA6luwAOpcAADqXDAA6lxQAOpdYADqXfAA6l4gAOpeUADqXnAA6mAwAOphUADqaQAA6mkgAOppQADqaWAA6mmQAOppoADqabAA6mnAAOpp0ADqafAA6moQAOpqIADqajAA6mpQAOpqYADqchAA6nIwAOpyYADqcoAA6nKwAOpywADqctAA6nLgAOpy8ADqcxAA6nMwAOpzQADqc1AA6nNwAOpzgADqdJAA6nSgAOp0wADqfHAA6nyQAOp8sADqfNAA6n0AAOp9EADqfSAA6n0wAOp9QADqfWAA6n2AAOp9kADqfaAA6n3AAOp90ADqhYAA6oWgAOqF0ADqhfAA6oYgAOqGMADqhkAA6oZQAOqGYADqhoAA6oagAOqGsADqhsAA6obgAOqG8ADqiIAA6oiQAOqIoADqiMAA6pBwAOqQkADqkLAA6pDQAOqRAADqkRAA6pEgAOqRMADqkUAA6pFgAOqRgADqkZAA6pGgAOqRwADqkdAA6pmAAOqZoADqmdAA6pnwAOqaIADqmjAA6ppAAOqaUADqmmAA6pqAAOqaoADqmrAA6prAAOqa4ADqmvAA6pvQAOqdYADqoVAA6qGAAOqhsADqoeAA6qIQAOqiQADqonAA6qKgAOqi0ADqowAA6qMwAOqjYADqo5AA6qPAAOqj8ADqpCAA6qgQAOqoQADqqHAA6qigAOqo0ADqqQAA6qkwAOqpYADqqZAA6qnAAOqp8ADqqiAA6qpQAOqqgADqqrAA6qrgAOqrAADqrGAA6q4gAOqwAADqsaAA6rPwAOq0cADqtZAA6rbAAOq4IADquLAA6rpwAOq7kADqvGAA6r1AAOrGcADqyKAA6sqgAOrMoADqzMAA6szgAOrNAADqzSAA6s1QAOrNYADqzXAA6s2gAOrNsADqzdAA6s3gAOrOAADqzjAA6s5AAOrOUADqzoAA6s6QAOrPIADq0LAA6tFAAOrRYADq0YAA6tIQAOrSQADq0nAA6tKQAOrXIADq2WAA6tvQAOreEADq3kAA6t5gAOregADq3qAA6t7AAOre4ADq3vAA6t8gAOrgsADq4sAA6uLgAOrjAADq4yAA6uNAAOrjYADq44AA6uOgAOrjwADq5dAA6uYAAOrmMADq5mAA6uaQAOrmwADq5vAA6ucgAOrnUADq53AA6u8gAOrvQADq72AA6u+AAOrvsADq78AA6u/QAOrv4ADq7/AA6vAQAOrwMADq8EAA6vBQAOrwcADq8IAA6vgwAOr4UADq+HAA6viQAOr4wADq+NAA6vjgAOr48ADq+QAA6vkgAOr5QADq+VAA6vlgAOr5gADq+ZAA6wFAAOsBYADrAZAA6wGwAOsB4ADrAfAA6wIAAOsCEADrAiAA6wJAAOsCYADrAnAA6wKAAOsCoADrArAA6wRAAOsEUADrBGAA6wSAAOsMMADrDFAA6wxwAOsMkADrDMAA6wzQAOsM4ADrDPAA6w0AAOsNIADrDUAA6w1QAOsNYADrDYAA6w2QAOsVQADrFWAA6xWAAOsVoADrFdAA6xXgAOsV8ADrFgAA6xYQAOsWMADrFlAA6xZgAOsWcADrFpAA6xagAOseUADrHnAA6x6QAOsesADrHuAA6x7wAOsfAADrHxAA6x8gAOsfQADrH2AA6x9wAOsfgADrH6AA6x+wAOsnYADrJ4AA6yegAOsnwADrJ/AA6ygAAOsoEADrKCAA6ygwAOsoUADrKHAA6yiAAOsokADrKLAA6yjAAOswcADrMJAA6zCwAOsw0ADrMQAA6zEQAOsxIADrMTAA6zFAAOsxYADrMYAA6zGQAOsxoADrMcAA6zHQAOs2YADrOKAA6zsQAOs9UADrPYAA6z2gAOs9wADrPeAA6z4AAOs+IADrPjAA6z5gAOs/8ADrQcAA60HgAOtCAADrQiAA60JAAOtCYADrQoAA60KgAOtEcADrRKAA60TQAOtFAADrRTAA60VgAOtFkADrRcAA60XgAOtNkADrTbAA603QAOtN8ADrTiAA604wAOtOQADrTlAA605gAOtOgADrTqAA606wAOtOwADrTuAA607wAOtWoADrVsAA61bgAOtXAADrVzAA61dAAOtXUADrV2AA61dwAOtXkADrV7AA61fAAOtX0ADrV/AA61gAAOtfsADrX9AA61/wAOtgEADrYEAA62BQAOtgYADrYHAA62CAAOtgoADrYMAA62DQAOtg4ADrYQAA62EQAOtowADraOAA62kQAOtpMADraWAA62lwAOtpgADraZAA62mgAOtpwADraeAA62nwAOtqAADraiAA62owAOtx4ADrcgAA63IgAOtyQADrcnAA63KAAOtykADrcqAA63KwAOty0ADrcvAA63MAAOtzEADrczAA63NAAOt68ADrexAA63swAOt7UADre4AA63uQAOt7oADre7AA63vAAOt74ADrfAAA63wQAOt8IADrfEAA63xQAOuEAADrhCAA64RAAOuEYADrhJAA64SgAOuEsADrhMAA64TQAOuE8ADrhRAA64UgAOuFMADrhVAA64VgAOuOkADrkMAA65LAAOuUwADrlOAA65UAAOuVIADrlUAA65VwAOuVgADrlZAA65XAAOuV0ADrlfAA65YAAOuWIADrllAA65ZgAOuWcADrlqAA65awAOuXAADrmJAA65kgAOuZQADrmWAA65nwAOuaIADrmlAA65pwAOufAADroUAA66OwAOul8ADrpiAA66ZAAOumYADrpoAA66agAOumwADrptAA66cAAOuokADrqqAA66rAAOuq4ADrqwAA66sgAOurQADrq2AA66uAAOuroADrrbAA663gAOuuEADrrkAA665wAOuuoADrrtAA668AAOuvMADrr1AA67cAAOu3IADrt0AA67dgAOu3kADrt6AA67ewAOu3wADrt9AA67fwAOu4EADruCAA67gwAOu4UADruGAA68AQAOvAMADrwFAA68BwAOvAoADrwLAA68DAAOvA0ADrwOAA68EAAOvBIADrwTAA68FAAOvBYADrwXAA68kgAOvJQADryXAA68mQAOvJwADrydAA68ngAOvJ8ADrygAA68ogAOvKQADrylAA68pgAOvKgADrypAA68wgAOvMMADrzEAA68xgAOvUEADr1DAA69RQAOvUcADr1KAA69SwAOvUwADr1NAA69TgAOvVAADr1SAA69UwAOvVQADr1WAA69VwAOvdIADr3UAA691gAOvdgADr3bAA693AAOvd0ADr3eAA693wAOveEADr3jAA695AAOveUADr3nAA696AAOvmMADr5lAA6+ZwAOvmkADr5sAA6+bQAOvm4ADr5vAA6+cAAOvnIADr50AA6+dQAOvnYADr54AA6+eQAOvvQADr72AA6++AAOvvoADr79AA6+/gAOvv8ADr8AAA6/AQAOvwMADr8FAA6/BgAOvwcADr8JAA6/CgAOv4UADr+HAA6/iQAOv4sADr+OAA6/jwAOv5AADr+RAA6/kgAOv5QADr+WAA6/lwAOv5gADr+aAA6/mwAOv+QADsAIAA7ALwAOwFMADsBWAA7AWAAOwFoADsBcAA7AXgAOwGAADsBhAA7AZAAOwH0ADsCaAA7AnAAOwJ4ADsCgAA7AogAOwKQADsCmAA7AqAAOwMUADsDIAA7AywAOwM4ADsDRAA7A1AAOwNcADsDaAA7A3AAOwVcADsFZAA7BWwAOwV0ADsFgAA7BYQAOwWIADsFjAA7BZAAOwWYADsFoAA7BaQAOwWoADsFsAA7BbQAOwegADsHqAA7B7AAOwe4ADsHxAA7B8gAOwfMADsH0AA7B9QAOwfcADsH5AA7B+gAOwfsADsH9AA7B/gAOwnkADsJ7AA7CfQAOwn8ADsKCAA7CgwAOwoQADsKFAA7ChgAOwogADsKKAA7CiwAOwowADsKOAA7CjwAOwwoADsMMAA7DDwAOwxEADsMUAA7DFQAOwxYADsMXAA7DGAAOwxoADsMcAA7DHQAOwx4ADsMgAA7DIQAOw5wADsOeAA7DoAAOw6IADsOlAA7DpgAOw6cADsOoAA7DqQAOw6sADsOtAA7DrgAOw68ADsOxAA7DsgAOxC0ADsQvAA7EMgAOxDQADsQ3AA7EOAAOxDkADsQ6AA7EOwAOxD0ADsQ/AA7EQAAOxEEADsRDAA7ERAAOxFMADsTOAA7E0AAOxNIADsTUAA7E1wAOxNgADsTZAA7E2gAOxNsADsTdAA7E3wAOxOAADsThAA7E4wAOxOQADsV3AA7FmgAOxboADsXaAA7F3AAOxd4ADsXgAA7F4gAOxeUADsXmAA7F5wAOxeoADsXrAA7F7QAOxe4ADsXwAA7F8wAOxfQADsX1AA7F+AAOxfkADsX+AA7GFwAOxiAADsYiAA7GJAAOxi0ADsYwAA7GMwAOxjUADsZ+AA7GogAOxskADsbtAA7G8AAOxvIADsb0AA7G9gAOxvgADsb6AA7G+wAOxv4ADscXAA7HOAAOxzoADsc8AA7HPgAOx0AADsdCAA7HRAAOx0YADsdIAA7HaQAOx2wADsdvAA7HcgAOx3UADsd4AA7HewAOx34ADseBAA7HgwAOx/4ADsgAAA7IAgAOyAQADsgHAA7ICAAOyAkADsgKAA7ICwAOyA0ADsgPAA7IEAAOyBEADsgTAA7IFAAOyI8ADsiRAA7IkwAOyJUADsiYAA7ImQAOyJoADsibAA7InAAOyJ4ADsigAA7IoQAOyKIADsikAA7IpQAOySAADskiAA7JJQAOyScADskqAA7JKwAOySwADsktAA7JLgAOyTAADskyAA7JMwAOyTQADsk2AA7JNwAOyVAADslRAA7JUgAOyVQADsnPAA7J0QAOydMADsnVAA7J2AAOydkADsnaAA7J2wAOydwADsneAA7J4AAOyeEADsniAA7J5AAOyeUADspgAA7KYgAOymQADspmAA7KaQAOymoADsprAA7KbAAOym0ADspvAA7KcQAOynIADspzAA7KdQAOynYADsrxAA7K8wAOyvUADsr3AA7K+gAOyvsADsr8AA7K/QAOyv4ADssAAA7LAgAOywMADssEAA7LBgAOywcADsuCAA7LhAAOy4YADsuIAA7LiwAOy4wADsuNAA7LjgAOy48ADsuRAA7LkwAOy5QADsuVAA7LlwAOy5gADswTAA7MFQAOzBcADswZAA7MHAAOzB0ADsweAA7MHwAOzCAADswiAA7MJAAOzCUADswmAA7MKAAOzCkADsxyAA7MlgAOzL0ADszhAA7M5AAOzOYADszoAA7M6gAOzOwADszuAA7M7wAOzPIADs0LAA7NKAAOzSoADs0sAA7NLgAOzTAADs0yAA7NNAAOzTYADs1TAA7NVgAOzVkADs1cAA7NXwAOzWIADs1lAA7NaAAOzWoADs3lAA7N5wAOzekADs3rAA7N7gAOze8ADs3wAA7N8QAOzfIADs30AA7N9gAOzfcADs34AA7N+gAOzfsADs52AA7OeAAOznoADs58AA7OfwAOzoAADs6BAA7OggAOzoMADs6FAA7OhwAOzogADs6JAA7OiwAOzowADs8HAA7PCQAOzwsADs8NAA7PEAAOzxEADs8SAA7PEwAOzxQADs8WAA7PGAAOzxkADs8aAA7PHAAOzx0ADs+YAA7PmgAOz50ADs+fAA7PogAOz6MADs+kAA7PpQAOz6YADs+oAA7PqgAOz6sADs+sAA7PrgAOz68ADtAqAA7QLAAO0C4ADtAwAA7QMwAO0DQADtA1AA7QNgAO0DcADtA5AA7QOwAO0DwADtA9AA7QPwAO0EAADtC7AA7QvQAO0L8ADtDBAA7QxAAO0MUADtDGAA7QxwAO0MgADtDKAA7QzAAO0M0ADtDOAA7Q0AAO0NEADtFMAA7RTgAO0VAADtFSAA7RVQAO0VYADtFXAA7RWAAO0VkADtFbAA7RXQAO0V4ADtFfAA7RYQAO0WIADtH1AA7SGAAO0jgADtJYAA7SWgAO0lwADtJeAA7SYAAO0mMADtJkAA7SZQAO0mgADtJpAA7SawAO0mwADtJuAA7ScQAO0nIADtJzAA7SdgAO0ncADtJ8AA7SlQAO0p4ADtKgAA7SogAO0qsADtKuAA7SsQAO0rMADtL8AA7TIAAO00cADtNrAA7TbgAO03AADtNyAA7TdAAO03YADtN4AA7TeQAO03wADtOVAA7TtgAO07gADtO6AA7TvAAO074ADtPAAA7TwgAO08QADtPGAA7T5wAO0+oADtPtAA7T8AAO0/MADtP2AA7T+QAO0/wADtP/AA7UAQAO1HwADtR+AA7UgAAO1IIADtSFAA7UhgAO1IcADtSIAA7UiQAO1IsADtSNAA7UjgAO1I8ADtSRAA7UkgAO1Q0ADtUPAA7VEQAO1RMADtUWAA7VFwAO1RgADtUZAA7VGgAO1RwADtUeAA7VHwAO1SAADtUiAA7VIwAO1Z4ADtWgAA7VowAO1aUADtWoAA7VqQAO1aoADtWrAA7VrAAO1a4ADtWwAA7VsQAO1bIADtW0AA7VtQAO1c4ADtXPAA7V0AAO1dIADtZNAA7WTwAO1lEADtZTAA7WVgAO1lcADtZYAA7WWQAO1loADtZcAA7WXgAO1l8ADtZgAA7WYgAO1mMADtbeAA7W4AAO1uIADtbkAA7W5wAO1ugADtbpAA7W6gAO1usADtbtAA7W7wAO1vAADtbxAA7W8wAO1vQADtdvAA7XcQAO13MADtd1AA7XeAAO13kADtd6AA7XewAO13wADtd+AA7XgAAO14EADteCAA7XhAAO14UADtgAAA7YAgAO2AQADtgGAA7YCQAO2AoADtgLAA7YDAAO2A0ADtgPAA7YEQAO2BIADtgTAA7YFQAO2BYADtiRAA7YkwAO2JUADtiXAA7YmgAO2JsADticAA7YnQAO2J4ADtigAA7YogAO2KMADtikAA7YpgAO2KcADtjwAA7ZFAAO2TsADtlfAA7ZYgAO2WQADtlmAA7ZaAAO2WoADtlsAA7ZbQAO2XAADtmJAA7ZpgAO2agADtmqAA7ZrAAO2a4ADtmwAA7ZsgAO2bQADtnRAA7Z1AAO2dcADtnaAA7Z3QAO2eAADtnjAA7Z5gAO2egADtpjAA7aZQAO2mcADtppAA7abAAO2m0ADtpuAA7abwAO2nAADtpyAA7adAAO2nUADtp2AA7aeAAO2nkADtr0AA7a9gAO2vgADtr6AA7a/QAO2v4ADtr/AA7bAAAO2wEADtsDAA7bBQAO2wYADtsHAA7bCQAO2woADtuFAA7bhwAO24kADtuLAA7bjgAO248ADtuQAA7bkQAO25IADtuUAA7blgAO25cADtuYAA7bmgAO25sADtwWAA7cGAAO3BsADtwdAA7cIAAO3CEADtwiAA7cIwAO3CQADtwmAA7cKAAO3CkADtwqAA7cLAAO3C0ADtyoAA7cqgAO3KwADtyuAA7csQAO3LIADtyzAA7ctAAO3LUADty3AA7cuQAO3LoADty7AA7cvQAO3L4ADt05AA7dOwAO3T4ADt1AAA7dQwAO3UQADt1FAA7dRgAO3UcADt1JAA7dSwAO3UwADt1NAA7dTwAO3VAADt1fAA7d2gAO3dwADt3eAA7d4AAO3eMADt3kAA7d5QAO3eYADt3nAA7d6QAO3esADt3sAA7d7QAO3e8ADt3wAA7egwAO3qYADt7GAA7e5gAO3ugADt7qAA7e7AAO3u4ADt7xAA7e8gAO3vMADt72AA7e9wAO3vkADt76AA7e/AAO3v8ADt8AAA7fAQAO3wQADt8FAA7fCgAO3yMADt8sAA7fLgAO3zAADt85AA7fPAAO3z8ADt9BAA7figAO364ADt/VAA7f+QAO3/wADt/+AA7gAAAO4AIADuAEAA7gBgAO4AcADuAKAA7gIwAO4EQADuBGAA7gSAAO4EoADuBMAA7gTgAO4FAADuBSAA7gVAAO4HUADuB4AA7gewAO4H4ADuCBAA7ghAAO4IcADuCKAA7gjQAO4I8ADuEKAA7hDAAO4Q4ADuEQAA7hEwAO4RQADuEVAA7hFgAO4RcADuEZAA7hGwAO4RwADuEdAA7hHwAO4SAADuGbAA7hnQAO4Z8ADuGhAA7hpAAO4aUADuGmAA7hpwAO4agADuGqAA7hrAAO4a0ADuGuAA7hsAAO4bEADuIsAA7iLgAO4jEADuIzAA7iNgAO4jcADuI4AA7iOQAO4joADuI8AA7iPgAO4j8ADuJAAA7iQgAO4kMADuJcAA7iXQAO4l4ADuJgAA7i2wAO4t0ADuLfAA7i4QAO4uQADuLlAA7i5gAO4ucADuLoAA7i6gAO4uwADuLtAA7i7gAO4vAADuLxAA7jbAAO424ADuNwAA7jcgAO43UADuN2AA7jdwAO43gADuN5AA7jewAO430ADuN+AA7jfwAO44EADuOCAA7j/QAO4/8ADuQBAA7kAwAO5AYADuQHAA7kCAAO5AkADuQKAA7kDAAO5A4ADuQPAA7kEAAO5BIADuQTAA7kjgAO5JAADuSSAA7klAAO5JcADuSYAA7kmQAO5JoADuSbAA7knQAO5J8ADuSgAA7koQAO5KMADuSkAA7lHwAO5SEADuUjAA7lJQAO5SgADuUpAA7lKgAO5SsADuUsAA7lLgAO5TAADuUxAA7lMgAO5TQADuU1AA7lfgAO5aIADuXJAA7l7QAO5fAADuXyAA7l9AAO5fYADuX4AA7l+gAO5fsADuX+AA7mFwAO5jQADuY2AA7mOAAO5joADuY8AA7mPgAO5kAADuZCAA7mXwAO5mIADuZlAA7maAAO5msADuZuAA7mcQAO5nQADuZ2AA7m8QAO5vMADub1AA7m9wAO5voADub7AA7m/AAO5v0ADub+AA7nAAAO5wIADucDAA7nBAAO5wYADucHAA7nggAO54QADueGAA7niAAO54sADueMAA7njQAO544ADuePAA7nkQAO55MADueUAA7nlQAO55cADueYAA7oEwAO6BUADugXAA7oGQAO6BwADugdAA7oHgAO6B8ADuggAA7oIgAO6CQADuglAA7oJgAO6CgADugpAA7opAAO6KYADuipAA7oqwAO6K4ADuivAA7osAAO6LEADuiyAA7otAAO6LYADui3AA7ouAAO6LoADui7AA7pNgAO6TgADuk6AA7pPAAO6T8ADulAAA7pQQAO6UIADulDAA7pRQAO6UcADulIAA7pSQAO6UsADulMAA7pxwAO6ckADunLAA7pzQAO6dAADunRAA7p0gAO6dMADunUAA7p1gAO6dgADunZAA7p2gAO6dwADundAA7qWAAO6loADupcAA7qXgAO6mEADupiAA7qYwAO6mQADuplAA7qZwAO6mkADupqAA7qawAO6m0ADupuAA7rAQAO6yQADutEAA7rZAAO62YADutoAA7ragAO62wADutvAA7rcAAO63EADut0AA7rdQAO63cADut4AA7rewAO634ADut/AA7rgAAO64MADuuEAA7riQAO66IADuurAA7rrQAO67AADuu5AA7rvAAO678ADuvBAA7sCgAO7C4ADuxVAA7seQAO7HwADux+AA7sgAAO7IIADuyEAA7shgAO7IcADuyKAA7sowAO7MQADuzGAA7syAAO7MoADuzMAA7szgAO7NAADuzSAA7s1AAO7PUADuz4AA7s+wAO7P4ADu0BAA7tBAAO7QcADu0KAA7tDQAO7Q8ADu2KAA7tjAAO7Y4ADu2QAA7tkwAO7ZQADu2VAA7tlgAO7ZcADu2ZAA7tmwAO7ZwADu2dAA7tnwAO7aAADu4bAA7uHQAO7h8ADu4hAA7uJAAO7iUADu4mAA7uJwAO7igADu4qAA7uLAAO7i0ADu4uAA7uMAAO7jEADu6sAA7urgAO7rEADu6zAA7utgAO7rcADu64AA7uuQAO7roADu68AA7uvgAO7r8ADu7AAA7uwgAO7sMADu7cAA7u3QAO7t4ADu7gAA7vWwAO710ADu9fAA7vYQAO72QADu9lAA7vZgAO72cADu9oAA7vagAO72wADu9tAA7vbgAO73AADu9xAA7v7AAO7+4ADu/wAA7v8gAO7/UADu/2AA7v9wAO7/gADu/5AA7v+wAO7/0ADu/+AA7v/wAO8AEADvACAA7wfQAO8H8ADvCBAA7wgwAO8IYADvCHAA7wiAAO8IkADvCKAA7wjAAO8I4ADvCPAA7wkAAO8JIADvCTAA7xDgAO8RAADvESAA7xFAAO8RcADvEYAA7xGQAO8RoADvEbAA7xHQAO8R8ADvEgAA7xIQAO8SMADvEkAA7xnwAO8aEADvGjAA7xpQAO8agADvGpAA7xqgAO8asADvGsAA7xrgAO8bAADvGxAA7xsgAO8bQADvG1AA7x/gAO8iIADvJJAA7ybQAO8nAADvJzAA7ydQAO8ncADvJ5AA7yewAO8nwADvJ/AA7ymAAO8rUADvK4AA7yuwAO8r4ADvLBAA7yxAAO8scADvLKAA7y5wAO8uoADvLtAA7y8AAO8vMADvL2AA7y+QAO8vwADvL+AA7zeQAO83sADvN+AA7zgAAO84MADvOEAA7zhQAO84YADvOHAA7ziQAO84wADvONAA7zjgAO85AADvORAA70DAAO9A4ADvQRAA70EwAO9BYADvQXAA70GAAO9BkADvQaAA70HAAO9B8ADvQgAA70IQAO9CMADvQkAA70nwAO9KEADvSkAA70pgAO9KkADvSqAA70qwAO9KwADvStAA70rwAO9LIADvSzAA70tAAO9LYADvS3AA71MgAO9TQADvU3AA71OQAO9TwADvU9AA71PgAO9T8ADvVAAA71QgAO9UUADvVGAA71RwAO9UkADvVKAA71zQAO9fEADvYVAA72OAAO9l8ADvZ/AA72pgAO9s0ADvbtAA73EQAO9zUADvc3AA73OgAO9zwADvc+AA73QAAO90MADvdGAA73SAAO90oADvdNAA73TwAO91EADvdUAA73VwAO91gADvddAA73dgAO93sADvd9AA73ggAO94UADveHAA730AAO9/QADvgbAA74PwAO+EIADvhEAA74RgAO+EgADvhKAA74TAAO+E0ADvhQAA74aQAO+I4ADviQAA74kgAO+JQADviWAA74mAAO+JoADvicAA74ngAO+KAADvjFAA74yAAO+MsADvjOAA740QAO+NQADvjXAA742gAO+N0ADvjgAA744gAO+V0ADvlfAA75YgAO+WQADvlnAA75aAAO+WkADvlqAA75awAO+W0ADvlvAA75cAAO+XEADvlzAA75dAAO+YUADvmGAA75iAAO+gMADvoFAA76BwAO+gkADvoMAA76DQAO+g4ADvoPAA76EAAO+hIADvoUAA76FQAO+hYADvoYAA76GQAO+pQADvqWAA76mQAO+psADvqeAA76nwAO+qAADvqhAA76ogAO+qQADvqmAA76pwAO+qgADvqqAA76qwAO+rwADvrBAA76xAAO+sYADvrXAA766AAO+usADvruAA768QAO+vQADvr2AA77EgAO+yQADvsuAA77QQAO+7wADvu+AA77wAAO+8IADvvFAA77xgAO+8cADvvIAA77yQAO+8sADvvNAA77zgAO+88ADvvRAA770gAO/E0ADvxPAA78UgAO/FQADvxXAA78WAAO/FkADvxaAA78WwAO/F0ADvxfAA78YAAO/GEADvxjAA78ZAAO/HUADvx2AA78eAAO/PMADvz1AA789wAO/PkADvz8AA78/QAO/P4ADvz/AA79AAAO/QIADv0EAA79BQAO/QYADv0IAA79CQAO/YQADv2GAA79iQAO/YsADv2OAA79jwAO/ZAADv2RAA79kgAO/ZQADv2WAA79lwAO/ZgADv2aAA79mwAO/bQADv21AA79tgAO/bgADv4zAA7+NQAO/jcADv45AA7+PAAO/j0ADv4+AA7+PwAO/kAADv5CAA7+RAAO/kUADv5GAA7+SAAO/kkADv7EAA7+xgAO/skADv7LAA7+zgAO/s8ADv7QAA7+0QAO/tIADv7UAA7+1gAO/tcADv7YAA7+2gAO/tsADv7pAA7/AgAO/xsADv8eAA7/IQAO/yQADv8nAA7/KgAO/y0ADv9GAA7/SQAO/0wADv9PAA7/UgAO/1UADv9YAA7/WgAO/3YADv+IAA7/mwAO/6YADwA5AA8AXAAPAHwADwCcAA8AngAPAKAADwCiAA8ApAAPAKcADwCoAA8AqQAPAKwADwCtAA8ArwAPALAADwCyAA8AtQAPALYADwC3AA8AugAPALsADwDAAA8A2QAPAOIADwDkAA8A5gAPAO8ADwDyAA8A9QAPAPcADwFAAA8BZAAPAYsADwGvAA8BsgAPAbQADwG2AA8BuAAPAboADwG8AA8BvQAPAcAADwHZAA8B+gAPAfwADwH+AA8CAAAPAgIADwIEAA8CBgAPAggADwIKAA8CKwAPAi4ADwIxAA8CNAAPAjcADwI6AA8CPQAPAkAADwJDAA8CRQAPAsAADwLCAA8CxAAPAsYADwLJAA8CygAPAssADwLMAA8CzQAPAs8ADwLRAA8C0gAPAtMADwLVAA8C1gAPA1EADwNTAA8DVQAPA1cADwNaAA8DWwAPA1wADwNdAA8DXgAPA2AADwNiAA8DYwAPA2QADwNmAA8DZwAPA+IADwPkAA8D5wAPA+kADwPsAA8D7QAPA+4ADwPvAA8D8AAPA/IADwP0AA8D9QAPA/YADwP4AA8D+QAPBBIADwQTAA8EFAAPBBYADwSRAA8EkwAPBJUADwSXAA8EmgAPBJsADwScAA8EnQAPBJ4ADwSgAA8EogAPBKMADwSkAA8EpgAPBKcADwUiAA8FJAAPBSYADwUoAA8FKwAPBSwADwUtAA8FLgAPBS8ADwUxAA8FMwAPBTQADwU1AA8FNwAPBTgADwWzAA8FtQAPBbcADwW5AA8FvAAPBb0ADwW+AA8FvwAPBcAADwXCAA8FxAAPBcUADwXGAA8FyAAPBckADwZEAA8GRgAPBkgADwZKAA8GTQAPBk4ADwZPAA8GUAAPBlEADwZTAA8GVQAPBlYADwZXAA8GWQAPBloADwbVAA8G1wAPBtkADwbbAA8G3gAPBt8ADwbgAA8G4QAPBuIADwbkAA8G5gAPBucADwboAA8G6gAPBusADwc0AA8HWAAPB38ADwejAA8HpgAPB6gADweqAA8HrAAPB64ADwewAA8HsQAPB7QADwfNAA8H6gAPB+wADwfuAA8H8AAPB/IADwf0AA8H9gAPB/gADwgVAA8IGAAPCBsADwgeAA8IIQAPCCQADwgnAA8IKgAPCCwADwinAA8IqQAPCKsADwitAA8IsAAPCLEADwiyAA8IswAPCLQADwi2AA8IuAAPCLkADwi6AA8IvAAPCL0ADwk4AA8JOgAPCTwADwk+AA8JQQAPCUIADwlDAA8JRAAPCUUADwlHAA8JSQAPCUoADwlLAA8JTQAPCU4ADwnJAA8JywAPCc0ADwnPAA8J0gAPCdMADwnUAA8J1QAPCdYADwnYAA8J2gAPCdsADwncAA8J3gAPCd8ADwpaAA8KXAAPCl4ADwpgAA8KYwAPCmQADwplAA8KZgAPCmcADwppAA8KawAPCmwADwptAA8KbwAPCnAADwrrAA8K7QAPCu8ADwrxAA8K9AAPCvUADwr2AA8K9wAPCvgADwr6AA8K/AAPCv0ADwr+AA8LAAAPCwEADwt8AA8LfgAPC4EADwuDAA8LhgAPC4cADwuIAA8LiQAPC4oADwuMAA8LjgAPC48ADwuQAA8LkgAPC5MADwuiAA8MHQAPDB8ADwwhAA8MIwAPDCYADwwnAA8MKAAPDCkADwwqAA8MLAAPDC4ADwwvAA8MMAAPDDIADwwzAA8MxgAPDOkADw0JAA8NKQAPDSsADw0tAA8NLwAPDTEADw00AA8NNQAPDTYADw05AA8NOgAPDTwADw09AA8NQAAPDUMADw1EAA8NRQAPDUgADw1JAA8NUgAPDWsADw10AA8NdgAPDXkADw2CAA8NhQAPDYgADw2KAA8N0wAPDfcADw4eAA8OQgAPDkUADw5HAA8OSQAPDksADw5NAA8OTwAPDlAADw5TAA8ObAAPDo0ADw6PAA8OkQAPDpMADw6VAA8OlwAPDpkADw6bAA8OnQAPDr4ADw7BAA8OxAAPDscADw7KAA8OzQAPDtAADw7TAA8O1gAPDtgADw9TAA8PVQAPD1cADw9ZAA8PXAAPD10ADw9eAA8PXwAPD2AADw9iAA8PZAAPD2UADw9mAA8PaAAPD2kADw/kAA8P5gAPD+gADw/qAA8P7QAPD+4ADw/vAA8P8AAPD/EADw/zAA8P9QAPD/YADw/3AA8P+QAPD/oADxB1AA8QdwAPEHoADxB8AA8QfwAPEIAADxCBAA8QggAPEIMADxCFAA8QhwAPEIgADxCJAA8QiwAPEIwADxClAA8QpgAPEKcADxCpAA8RJAAPESYADxEoAA8RKgAPES0ADxEuAA8RLwAPETAADxExAA8RMwAPETUADxE2AA8RNwAPETkADxE6AA8RtQAPEbcADxG5AA8RuwAPEb4ADxG/AA8RwAAPEcEADxHCAA8RxAAPEcYADxHHAA8RyAAPEcoADxHLAA8SRgAPEkgADxJKAA8STAAPEk8ADxJQAA8SUQAPElIADxJTAA8SVQAPElcADxJYAA8SWQAPElsADxJcAA8S1wAPEtkADxLbAA8S3QAPEuAADxLhAA8S4gAPEuMADxLkAA8S5gAPEugADxLpAA8S6gAPEuwADxLtAA8TaAAPE2oADxNsAA8TbgAPE3EADxNyAA8TcwAPE3QADxN1AA8TdwAPE3kADxN6AA8TewAPE30ADxN+AA8TxwAPE+sADxQSAA8UNgAPFDkADxQ8AA8UPgAPFEAADxRCAA8URAAPFEUADxRIAA8UYQAPFH4ADxSBAA8UhAAPFIcADxSKAA8UjQAPFJAADxSTAA8UsAAPFLMADxS2AA8UuQAPFLwADxS/AA8UwgAPFMUADxTHAA8VQgAPFUQADxVHAA8VSQAPFUwADxVNAA8VTgAPFU8ADxVQAA8VUgAPFVUADxVWAA8VVwAPFVkADxVaAA8V1QAPFdcADxXaAA8V3AAPFd8ADxXgAA8V4QAPFeIADxXjAA8V5QAPFegADxXpAA8V6gAPFewADxXtAA8WaAAPFmoADxZtAA8WbwAPFnIADxZzAA8WdAAPFnUADxZ2AA8WeAAPFnsADxZ8AA8WfQAPFn8ADxaAAA8W+wAPFv0ADxcAAA8XAgAPFwUADxcGAA8XBwAPFwgADxcJAA8XCwAPFw4ADxcPAA8XEAAPFxIADxcTAA8XjgAPF5AADxeSAA8XlAAPF5cADxeYAA8XmQAPF5oADxebAA8XnQAPF6AADxehAA8XogAPF6QADxelAA8YIAAPGCIADxgkAA8YJgAPGCkADxgqAA8YKwAPGCwADxgtAA8YLwAPGDIADxgzAA8YNAAPGDYADxg3AA8YsgAPGLQADxi3AA8YuQAPGLwADxi9AA8YvgAPGL8ADxjAAA8YwgAPGMUADxjGAA8YxwAPGMkADxjKAA8ZXQAPGYAADxmgAA8ZwAAPGcIADxnEAA8ZxgAPGcgADxnLAA8ZzAAPGc0ADxnQAA8Z0QAPGdMADxnUAA8Z1gAPGdkADxnaAA8Z2wAPGd4ADxnfAA8Z5AAPGf0ADxoGAA8aCAAPGgoADxoTAA8aFgAPGhkADxobAA8aZAAPGogADxqvAA8a0wAPGtYADxrYAA8a2gAPGtwADxreAA8a4AAPGuEADxrkAA8a/QAPGx4ADxsgAA8bIgAPGyQADxsmAA8bKAAPGyoADxssAA8bLgAPG08ADxtSAA8bVQAPG1gADxtbAA8bXgAPG2EADxtkAA8bZwAPG2kADxvkAA8b5gAPG+gADxvqAA8b7QAPG+4ADxvvAA8b8AAPG/EADxvzAA8b9QAPG/YADxv3AA8b+QAPG/oADxx1AA8cdwAPHHkADxx7AA8cfgAPHH8ADxyAAA8cgQAPHIIADxyEAA8chgAPHIcADxyIAA8cigAPHIsADx0GAA8dCAAPHQsADx0NAA8dEAAPHREADx0SAA8dEwAPHRQADx0WAA8dGAAPHRkADx0aAA8dHAAPHR0ADx02AA8dNwAPHTgADx06AA8dtQAPHbcADx25AA8duwAPHb4ADx2/AA8dwAAPHcEADx3CAA8dxAAPHcYADx3HAA8dyAAPHcoADx3LAA8eRgAPHkgADx5KAA8eTAAPHk8ADx5QAA8eUQAPHlIADx5TAA8eVQAPHlcADx5YAA8eWQAPHlsADx5cAA8e1wAPHtkADx7bAA8e3QAPHuAADx7hAA8e4gAPHuMADx7kAA8e5gAPHugADx7pAA8e6gAPHuwADx7tAA8faAAPH2oADx9sAA8fbgAPH3EADx9yAA8fcwAPH3QADx91AA8fdwAPH3kADx96AA8fewAPH30ADx9+AA8f+QAPH/sADx/9AA8f/wAPIAIADyADAA8gBAAPIAUADyAGAA8gCAAPIAoADyALAA8gDAAPIA4ADyAPAA8gWAAPIHwADyCjAA8gxwAPIMoADyDMAA8gzgAPINAADyDSAA8g1AAPINUADyDYAA8g8QAPIQ4ADyEQAA8hEgAPIRQADyEWAA8hGAAPIRoADyEcAA8hOQAPITwADyE/AA8hQgAPIUUADyFIAA8hSwAPIU4ADyFQAA8hywAPIc0ADyHPAA8h0QAPIdQADyHVAA8h1gAPIdcADyHYAA8h2gAPIdwADyHdAA8h3gAPIeAADyHhAA8iXAAPIl4ADyJgAA8iYgAPImUADyJmAA8iZwAPImgADyJpAA8iawAPIm0ADyJuAA8ibwAPInEADyJyAA8i7QAPIu8ADyLxAA8i8wAPIvYADyL3AA8i+AAPIvkADyL6AA8i/AAPIv4ADyL/AA8jAAAPIwIADyMDAA8jfgAPI4AADyODAA8jhQAPI4gADyOJAA8jigAPI4sADyOMAA8jjgAPI5AADyORAA8jkgAPI5QADyOVAA8kEAAPJBIADyQUAA8kFgAPJBkADyQaAA8kGwAPJBwADyQdAA8kHwAPJCEADyQiAA8kIwAPJCUADyQmAA8koQAPJKMADySlAA8kpwAPJKoADySrAA8krAAPJK0ADySuAA8ksAAPJLIADySzAA8ktAAPJLYADyS3AA8lMgAPJTQADyU2AA8lOAAPJTsADyU8AA8lPQAPJT4ADyU/AA8lQQAPJUMADyVEAA8lRQAPJUcADyVIAA8l2wAPJf4ADyYeAA8mPgAPJkAADyZCAA8mRAAPJkYADyZJAA8mSgAPJksADyZOAA8mTwAPJlEADyZSAA8mVAAPJlcADyZYAA8mWQAPJlwADyZdAA8mYgAPJnsADyaEAA8mhgAPJogADyaRAA8mlAAPJpcADyaZAA8m4gAPJwYADyctAA8nUQAPJ1QADydWAA8nWAAPJ1oADydcAA8nXgAPJ18ADydiAA8newAPJ5wADyeeAA8noAAPJ6IADyekAA8npgAPJ6gADyeqAA8nrAAPJ80ADyfQAA8n0wAPJ9YADyfZAA8n3AAPJ98ADyfiAA8n5QAPJ+cADyhiAA8oZAAPKGYADyhoAA8oawAPKGwADyhtAA8obgAPKG8ADyhxAA8ocwAPKHQADyh1AA8odwAPKHgADyjzAA8o9QAPKPcADyj5AA8o/AAPKP0ADyj+AA8o/wAPKQAADykCAA8pBAAPKQUADykGAA8pCAAPKQkADymEAA8phgAPKYkADymLAA8pjgAPKY8ADymQAA8pkQAPKZIADymUAA8plgAPKZcADymYAA8pmgAPKZsADym0AA8ptQAPKbYADym4AA8qMwAPKjUADyo3AA8qOQAPKjwADyo9AA8qPgAPKj8ADypAAA8qQgAPKkQADypFAA8qRgAPKkgADypJAA8qxAAPKsYADyrIAA8qygAPKs0ADyrOAA8qzwAPKtAADyrRAA8q0wAPKtUADyrWAA8q1wAPKtkADyraAA8rVQAPK1cADytZAA8rWwAPK14ADytfAA8rYAAPK2EADytiAA8rZAAPK2YADytnAA8raAAPK2oADytrAA8r5gAPK+gADyvqAA8r7AAPK+8ADyvwAA8r8QAPK/IADyvzAA8r9QAPK/cADyv4AA8r+QAPK/sADyv8AA8sdwAPLHkADyx7AA8sfQAPLIAADyyBAA8sggAPLIMADyyEAA8shgAPLIgADyyJAA8sigAPLIwADyyNAA8s1gAPLPoADy0hAA8tRQAPLUgADy1KAA8tTAAPLU4ADy1QAA8tUgAPLVMADy1WAA8tbwAPLYwADy2OAA8tkAAPLZIADy2UAA8tlgAPLZgADy2aAA8ttwAPLboADy29AA8twAAPLcMADy3GAA8tyQAPLcwADy3OAA8uSQAPLksADy5NAA8uTwAPLlIADy5TAA8uVAAPLlUADy5WAA8uWAAPLloADy5bAA8uXAAPLl4ADy5fAA8u2gAPLtwADy7eAA8u4AAPLuMADy7kAA8u5QAPLuYADy7nAA8u6QAPLusADy7sAA8u7QAPLu8ADy7wAA8vawAPL20ADy9vAA8vcQAPL3QADy91AA8vdgAPL3cADy94AA8vegAPL3wADy99AA8vfgAPL4AADy+BAA8v/AAPL/4ADzABAA8wAwAPMAYADzAHAA8wCAAPMAkADzAKAA8wDAAPMA4ADzAPAA8wEAAPMBIADzATAA8wjgAPMJAADzCSAA8wlAAPMJcADzCYAA8wmQAPMJoADzCbAA8wnQAPMJ8ADzCgAA8woQAPMKMADzCkAA8xHwAPMSEADzEjAA8xJQAPMSgADzEpAA8xKgAPMSsADzEsAA8xLgAPMTAADzExAA8xMgAPMTQADzE1AA8xsAAPMbIADzG0AA8xtgAPMbkADzG6AA8xuwAPMbwADzG9AA8xvwAPMcEADzHCAA8xwwAPMcUADzHGAA8yWQAPMnwADzKcAA8yvAAPMr4ADzLAAA8ywgAPMsQADzLHAA8yyAAPMskADzLMAA8yzQAPMs8ADzLQAA8y0gAPMtUADzLWAA8y1wAPMtoADzLbAA8y4AAPMvkADzMCAA8zBAAPMwYADzMPAA8zEgAPMxUADzMXAA8zYAAPM4QADzOrAA8zzwAPM9IADzPUAA8z1gAPM9gADzPaAA8z3AAPM90ADzPgAA8z+QAPNBoADzQcAA80HgAPNCAADzQiAA80JAAPNCYADzQoAA80KgAPNEsADzROAA80UQAPNFQADzRXAA80WgAPNF0ADzRgAA80YwAPNGUADzTgAA804gAPNOQADzTmAA806QAPNOoADzTrAA807AAPNO0ADzTvAA808QAPNPIADzTzAA809QAPNPYADzVxAA81cwAPNXUADzV3AA81egAPNXsADzV8AA81fQAPNX4ADzWAAA81ggAPNYMADzWEAA81hgAPNYcADzYCAA82BAAPNgcADzYJAA82DAAPNg0ADzYOAA82DwAPNhAADzYSAA82FAAPNhUADzYWAA82GAAPNhkADzYyAA82MwAPNjQADzY2AA82sQAPNrMADza1AA82twAPNroADza7AA82vAAPNr0ADza+AA82wAAPNsIADzbDAA82xAAPNsYADzbHAA83QgAPN0QADzdGAA83SAAPN0sADzdMAA83TQAPN04ADzdPAA83UQAPN1MADzdUAA83VQAPN1cADzdYAA830wAPN9UADzfXAA832QAPN9wADzfdAA833gAPN98ADzfgAA834gAPN+QADzflAA835gAPN+gADzfpAA84ZAAPOGYADzhoAA84agAPOG0ADzhuAA84bwAPOHAADzhxAA84cwAPOHUADzh2AA84dwAPOHkADzh6AA849QAPOPcADzj5AA84+wAPOP4ADzj/AA85AAAPOQEADzkCAA85BAAPOQYADzkHAA85CAAPOQoADzkLAA85VAAPOXgADzmfAA85wwAPOcYADznIAA85ygAPOcwADznOAA850AAPOdEADznUAA857QAPOgoADzoMAA86DgAPOhAADzoSAA86FAAPOhYADzoYAA86NQAPOjgADzo7AA86PgAPOkEADzpEAA86RwAPOkoADzpMAA86xwAPOskADzrLAA86zQAPOtAADzrRAA860gAPOtMADzrUAA861gAPOtgADzrZAA862gAPOtwADzrdAA87WAAPO1oADztcAA87XgAPO2EADztiAA87YwAPO2QADztlAA87ZwAPO2kADztqAA87awAPO20ADztuAA876QAPO+sADzvtAA877wAPO/IADzvzAA879AAPO/UADzv2AA87+AAPO/oADzv7AA87/AAPO/4ADzv/AA88egAPPHwADzx+AA88gAAPPIMADzyEAA88hQAPPIYADzyHAA88iQAPPIsADzyMAA88jQAPPI8ADzyQAA89CwAPPQ0ADz0PAA89EQAPPRQADz0VAA89FgAPPRcADz0YAA89GgAPPRwADz0dAA89HgAPPSAADz0hAA89nAAPPZ4ADz2hAA89owAPPaYADz2nAA89qAAPPakADz2qAA89rAAPPa4ADz2vAA89sAAPPbIADz2zAA890gAPPk0ADz5PAA8+UQAPPlMADz5WAA8+VwAPPlgADz5ZAA8+WgAPPlwADz5eAA8+XwAPPmAADz5iAA8+YwAPPvYADz8ZAA8/OQAPP1kADz9bAA8/XQAPP18ADz9hAA8/ZAAPP2UADz9mAA8/aQAPP2oADz9sAA8/bQAPP28ADz9yAA8/cwAPP3QADz93AA8/eAAPP30ADz+WAA8/nwAPP6EADz+jAA8/rAAPP68ADz+yAA8/tAAPP/0AD0AhAA9ASAAPQGwAD0BvAA9AcQAPQHMAD0B1AA9AdwAPQHkAD0B6AA9AfQAPQJYAD0C3AA9AuQAPQLsAD0C9AA9AvwAPQMEAD0DDAA9AxQAPQMcAD0DoAA9A6wAPQO4AD0DxAA9A9AAPQPcAD0D6AA9A/QAPQQAAD0ECAA9BfQAPQX8AD0GBAA9BgwAPQYYAD0GHAA9BiAAPQYkAD0GKAA9BjAAPQY4AD0GPAA9BkAAPQZIAD0GTAA9CDgAPQhAAD0ISAA9CFAAPQhc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AD1N0AA9TdQAPU3YAD1N4AA9TegAPU3sAD1N8AA9TfgAPU38AD1P6AA9T/AAPU/4AD1QAAA9UAwAPVAQAD1QFAA9UBgAPVAcAD1QJAA9UCwAPVAwAD1QNAA9UDwAPVBAAD1RZAA9UfQAPVKQAD1TIAA9UywAPVM0AD1TPAA9U0QAPVNMAD1TVAA9U1gAPVNkAD1TyAA9VDwAPVREAD1UTAA9VFQAPVRcAD1UZAA9VGwAPVR0AD1U6AA9VPQAPVUAAD1VDAA9VRgAPVUkAD1VMAA9VTwAPVVEAD1XMAA9VzgAPVdAAD1XSAA9V1QAPVdYAD1XXAA9V2AAPVdkAD1XbAA9V3QAPVd4AD1XfAA9V4QAPVeIAD1ZdAA9WXwAPVmEAD1ZjAA9WZgAPVmcAD1ZoAA9WaQAPVmoAD1ZsAA9WbgAPVm8AD1ZwAA9WcgAPVnMAD1buAA9W8AAPVvIAD1b0AA9W9wAPVvgAD1b5AA9W+gAPVvsAD1b9AA9W/wAPVwAAD1cBAA9XAwAPVwQAD1d/AA9XgQAPV4QAD1eGAA9XiQAPV4oAD1eLAA9XjAAPV40AD1ePAA9XkQAPV5IAD1eTAA9XlQAPV5YAD1gRAA9YEwAPWBUAD1gXAA9YGgAPWBsAD1gcAA9YHQAPWB4AD1ggAA9YIgAPWCMAD1gkAA9YJgAPWCcAD1iiAA9YpAAPWKYAD1ioAA9YqwAPWKwAD1itAA9YrgAPWK8AD1ixAA9YswAPWLQAD1i1AA9YtwAPWLgAD1kzAA9ZNQAPWTcAD1k5AA9ZPAAPWT0AD1k+AA9ZPwAPWUAAD1lCAA9ZRAAPWUUAD1lGAA9ZSAAPWUkAD1ncAA9Z/wAPWh8AD1o/AA9aQQAPWkMAD1pFAA9aRwAPWkoAD1pLAA9aTAAPWk8AD1pQAA9aUgAPWlMAD1pVAA9aWAAPWlkAD1paAA9aXQAPWl4AD1pjAA9afAAPWoUAD1qHAA9aiQAPWpIAD1qVAA9amAAPWpoAD1rjAA9bBwAPWy4AD1tSAA9bVQAPW1cAD1tZAA9bWwAPW10AD1tfAA9bYAAPW2MAD1t8AA9bnQAPW58AD1uhAA9bowAPW6UAD1unAA9bqQAPW6sAD1utAA9bzgAPW9EAD1vUAA9b1wAPW9oAD1vdAA9b4AAPW+MAD1vmAA9b6AAPXGMAD1xlAA9cZwAPXGkAD1xsAA9cbQAPXG4AD1xvAA9ccAAPXHIAD1x0AA9cdQAPXHYAD1x4AA9ceQAPXPQAD1z2AA9c+AAPXPoAD1z9AA9c/gAPXP8AD10AAA9dAQAPXQMAD10FAA9dBgAPXQcAD10JAA9dCgAPXYUAD12HAA9digAPXYwAD12PAA9dkAAPXZEAD12SAA9dkwAPXZUAD12XAA9dmAAPXZkAD12bAA9dnAAPXbUAD122AA9dtwAPXbkAD140AA9eNgAPXjgAD146AA9ePQAPXj4AD14/AA9eQAAPXkEAD15DAA9eRQAPXkYAD15HAA9eSQAPXkoAD17FAA9exwAPXskAD17LAA9ezgAPXs8AD17QAA9e0QAPXtIAD17UAA9e1gAPXtcAD17YAA9e2gAPXtsAD19WAA9fWAAPX1oAD19cAA9fXwAPX2AAD19hAA9fYgAPX2MAD19lAA9fZwAPX2gAD19pAA9fawAPX2wAD1/nAA9f6QAPX+sAD1/tAA9f8AAPX/EAD1/yAA9f8wAPX/QAD1/2AA9f+AAPX/kAD1/6AA9f/AAPX/0AD2B4AA9gegAPYHwAD2B+AA9ggQAPYIIAD2CDAA9ghAAPYIUAD2CHAA9giQAPYIoAD2CLAA9gjQAPYI4AD2DXAA9g+wAPYSIAD2FGAA9hSQAPYUsAD2FNAA9hTwAPYVEAD2FTAA9hVAAPYVcAD2FwAA9hjQAPYY8AD2GRAA9hkwAPYZUAD2GXAA9hmQAPYZsAD2G4AA9huwAPYb4AD2HBAA9hxAAPYccAD2HKAA9hzQAPYc8AD2JKAA9iTAAPYk4AD2JQAA9iUwAPYlQAD2JVAA9iVgAPYlcAD2JZAA9iWwAPYlwAD2JdAA9iXwAPYmAAD2LbAA9i3QAPYt8AD2LhAA9i5AAPYuUAD2LmAA9i5wAPYugAD2LqAA9i7AAPYu0AD2LuAA9i8AAPYvEAD2NsAA9jbgAPY3AAD2NyAA9jdQAPY3YAD2N3AA9jeAAPY3kAD2N7AA9jfQAPY34AD2N/AA9jgQAPY4IAD2P9AA9j/wAPZAIAD2QEAA9kBwAPZAgAD2QJAA9kCgAPZAsAD2QNAA9kDwAPZBAAD2QRAA9kEwAPZBQAD2SPAA9kkQAPZJMAD2SVAA9kmAAPZJkAD2SaAA9kmwAPZJwAD2SeAA9koAAPZKEAD2SiAA9kpAAPZKUAD2UgAA9lIgAPZSQAD2UmAA9lKQAPZSoAD2UrAA9lLAAPZS0AD2UvAA9lMQAPZTIAD2UzAA9lNQAPZTYAD2WxAA9lswAPZbUAD2W3AA9lugAPZbsAD2W8AA9lvQAPZb4AD2XAAA9lwgAPZcMAD2XEAA9lxgAPZccAD2ZaAA9mfQAPZp0AD2a9AA9mvwAPZsEAD2bDAA9mxQAPZsgAD2bJAA9mygAPZs0AD2bOAA9m0AAPZtEAD2bTAA9m1gAPZtcAD2bYAA9m2wAPZtwAD2bhAA9m+gAPZwMAD2cFAA9nBwAPZxAAD2cTAA9nFgAPZxgAD2dhAA9nhQAPZ6wAD2fQAA9n0wAPZ9UAD2fXAA9n2QAPZ9sAD2fdAA9n3gAPZ+EAD2f6AA9oGwAPaB0AD2gfAA9oIQAPaCMAD2glAA9oJwAPaCkAD2grAA9oTAAPaE8AD2hSAA9oVQAPaFgAD2hbAA9oXgAPaGEAD2hkAA9oZgAPaOEAD2jjAA9o5QAPaOcAD2jqAA9o6wAPaOwAD2jtAA9o7gAPaPAAD2jyAA9o8wAPaPQAD2j2AA9o9wAPaXIAD2l0AA9pdgAPaXgAD2l7AA9pfAAPaX0AD2l+AA9pfwAPaYEAD2mDAA9phAAPaYUAD2mHAA9piAAPagMAD2oFAA9qCAAPagoAD2oNAA9qDgAPag8AD2oQAA9qEQAPahMAD2oVAA9qFgAPahcAD2oZAA9qGgAPajMAD2o0AA9qNQAPajcAD2qyAA9qtAAParYAD2q4AA9quwAParwAD2q9AA9qvgAPar8AD2rBAA9qwwAPasQAD2rFAA9qxwAPasgAD2tDAA9rRQAPa0cAD2tJAA9rTAAPa00AD2tOAA9rTwAPa1AAD2tSAA9rVAAPa1UAD2tWAA9rWAAPa1kAD2vUAA9r1gAPa9gAD2vaAA9r3QAPa94AD2vfAA9r4AAPa+EAD2vjAA9r5QAPa+YAD2vnAA9r6QAPa+oAD2xlAA9sZwAPbGkAD2xrAA9sbgAPbG8AD2xwAA9scQAPbHIAD2x0AA9sdgAPbHcAD2x4AA9segAPbHsAD2z2AA9s+AAPbPoAD2z8AA9s/wAPbQAAD20BAA9tAgAPbQMAD20FAA9tBwAPbQgAD20JAA9tCwAPbQwAD21VAA9teQAPbaAAD23EAA9txwAPbckAD23LAA9tzQAPbc8AD23RAA9t0gAPbdUAD23uAA9uCwAPbg0AD24PAA9uEQAPbhMAD24VAA9uFwAPbhkAD242AA9uOQAPbjwAD24/AA9uQgAPbkUAD25IAA9uSwAPbk0AD27IAA9uygAPbswAD27OAA9u0QAPbtIAD27TAA9u1AAPbtUAD27XAA9u2QAPbtoAD27bAA9u3QAPbt4AD29ZAA9vWwAPb10AD29fAA9vYgAPb2MAD29kAA9vZQAPb2YAD29oAA9vagAPb2sAD29sAA9vbgAPb28AD2/qAA9v7AAPb+4AD2/wAA9v8wAPb/QAD2/1AA9v9gAPb/cAD2/5AA9v+wAPb/wAD2/9AA9v/wAPcAAAD3B7AA9wfQAPcH8AD3CBAA9whAAPcIUAD3CGAA9whwAPcIgAD3CKAA9wjAAPcI0AD3COAA9wkAAPcJEAD3EMAA9xDgAPcRAAD3ESAA9xFQAPcRYAD3EXAA9xGAAPcRkAD3EbAA9xHQAPcR4AD3EfAA9xIQAPcSIAD3GdAA9xnwAPcaIAD3GkAA9xpwAPcagAD3GpAA9xqgAPcasAD3GtAA9xrwAPcbAAD3GxAA9xswAPcbQAD3HPAA9ySgAPckwAD3JOAA9yUAAPclMAD3JUAA9yVQAPclYAD3JXAA9yWQAPclsAD3JcAA9yXQAPcl8AD3JgAA9y8wAPcxYAD3M2AA9zVgAPc1gAD3NaAA9zXAAPc14AD3NhAA9zYgAPc2MAD3NmAA9zZwAPc2kAD3NqAA9zbQAPc3AAD3NxAA9zcgAPc3UAD3N2AA9zfwAPc5gAD3OhAA9zowAPc6YAD3OvAA9zsgAPc7UAD3O3AA90AAAPdCQAD3RLAA90bwAPdHIAD3R0AA90dgAPdHgAD3R6AA90fAAPdH0AD3SAAA90mQAPdLoAD3S8AA90vgAPdMAAD3TCAA90xAAPdMYAD3TIAA90ygAPdOsAD3TuAA908QAPdPQAD3T3AA90+gAPdP0AD3UAAA91AwAPdQUAD3WAAA91ggAPdYQAD3WGAA91iQAPdYoAD3WLAA91jAAPdY0AD3WPAA91kQAPdZIAD3WTAA91lQAPdZYAD3YRAA92EwAPdhUAD3YXAA92GgAPdhsAD3YcAA92HQAPdh4AD3YgAA92IgAPdiMAD3YkAA92JgAPdicAD3aiAA92pAAPdqcAD3apAA92rAAPdq0AD3auAA92rwAPdrAAD3ayAA92tAAPdrUAD3a2AA92uAAPdrkAD3bSAA920wAPdtQAD3bWAA93UQAPd1MAD3dVAA93VwAPd1oAD3dbAA93XAAPd10AD3deAA93YAAPd2IAD3djAA93ZAAPd2YAD3dnAA934gAPd+QAD3fmAA936AAPd+sAD3fsAA937QAPd+4AD3fvAA938QAPd/MAD3f0AA939QAPd/cAD3f4AA94cwAPeHUAD3h3AA94eQAPeHwAD3h9AA94fgAPeH8AD3iAAA94ggAPeIQAD3iFAA94hgAPeIgAD3iJAA95BAAPeQYAD3kIAA95CgAPeQ0AD3kOAA95DwAPeRAAD3kRAA95EwAPeRUAD3kWAA95FwAPeRkAD3kaAA95lQAPeZcAD3mZAA95mwAPeZ4AD3mfAA95oAAPeaEAD3miAA95pAAPeaYAD3mnAA95qAAPeaoAD3mrAA959AAPehgAD3o/AA96YwAPemYAD3ppAA96awAPem0AD3pvAA96cQAPenIAD3p1AA96jgAPeqsAD3quAA96sQAPerQAD3q3AA96ugAPer0AD3rAAA963QAPeuAAD3rjAA965gAPeukAD3rsAA967wAPevIAD3r0AA97bwAPe3EAD3t0AA97dgAPe3kAD3t6AA97ewAPe3wAD3t9AA97fwAPe4IAD3uDAA97hAAPe4YAD3uHAA98AgAPfAQAD3wHAA98CQAPfAwAD3wNAA98DgAPfA8AD3wQAA98EgAPfBUAD3wWAA98FwAPfBkAD3waAA98lQAPfJcAD3yaAA98nAAPfJ8AD3ygAA98oQAPfKIAD3yjAA98pQAPfKgAD3ypAA98qgAPfKwAD3ytAA99KAAPfSoAD30tAA99LwAPfTIAD30zAA99NAAPfTUAD302AA99OAAPfTsAD308AA99PQAPfT8AD31AAA99uwAPfb0AD32/AA99wQAPfcQAD33FAA99xgAPfccAD33IAA99ygAPfc0AD33OAA99zwAPfdEAD33SAA9+TQAPfk8AD35RAA9+UwAPflYAD35XAA9+WAAPflkAD35aAA9+XAAPfl8AD35gAA9+YQAPfmMAD35kAA9+3wAPfuEAD37kAA9+5gAPfukAD37qAA9+6wAPfuwAD37tAA9+7wAPfvIAD37zAA9+9AAPfvYAD373AA9/igAPf60AD3/NAA9/7QAPf+8AD3/xAA9/8wAPf/UAD3/4AA9/+QAPf/oAD3/9AA9//gAPgAAAD4ABAA+AAwAPgAYAD4AHAA+ACAAPgAsAD4AMAA+AEQAPgCoAD4AzAA+ANQAPgDcAD4BAAA+AQwAPgEYAD4BIAA+AkQAPgLUAD4DcAA+BAAAPgQMAD4EFAA+BBwAPgQkAD4ELAA+BDQAPgQ4AD4ERAA+BKgAPgUsAD4FNAA+BTwAPgVEAD4FTAA+BVQAPgVcAD4FZAA+BWwAPgXwAD4F/AA+BggAPgYUAD4GIAA+BiwAPgY4AD4GRAA+BlAAPgZYAD4IRAA+CEwAPghUAD4IXAA+CGgAPghsAD4IcAA+CHQAPgh4AD4IgAA+CIgAPgiMAD4IkAA+CJgAPgicAD4KiAA+CpAAPgqYAD4KoAA+CqwAPgqwAD4KtAA+CrgAPgq8AD4KxAA+CswAPgrQAD4K1AA+CtwAPgrgAD4MzAA+DNQAPgzgAD4M6AA+DPQAPgz4AD4M/AA+DQAAPg0EAD4NDAA+DRQAPg0YAD4NHAA+DSQAPg0oAD4NjAA+DZAAPg2UAD4NnAA+D4gAPg+QAD4PmAA+D6AAPg+sAD4PsAA+D7QAPg+4AD4PvAA+D8QAPg/MAD4P0AA+D9QAPg/cAD4P4AA+EcwAPhHUAD4R3AA+EeQAPhHwAD4R9AA+EfgAPhH8AD4SAAA+EggAPhIQAD4SFAA+EhgAPhIgAD4SJAA+FBAAPhQYAD4UIAA+FCgAPhQ0AD4UOAA+FDwAPhRAAD4URAA+FEwAPhRUAD4UWAA+FFwAPhRkAD4UaAA+FlQAPhZcAD4WZAA+FmwAPhZ4AD4WfAA+FoAAPhaEAD4WiAA+FpAAPhaYAD4WnAA+FqAAPhaoAD4WrAA+GJgAPhigAD4YqAA+GLAAPhi8AD4YwAA+GMQAPhjIAD4YzAA+GNQAPhjcAD4Y4AA+GOQAPhjsAD4Y8AA+GhQAPhqkAD4bQAA+G9AAPhvcAD4b5AA+G+wAPhv0AD4b/AA+HAQAPhwIAD4cFAA+HHgAPhzsAD4c9AA+HPwAPh0EAD4dDAA+HRQAPh0cAD4dJAA+HZgAPh2kAD4dsAA+HbwAPh3IAD4d1AA+HeAAPh3sAD4d9AA+H+AAPh/oAD4f9AA+H/wAPiAIAD4gDAA+IBAAPiAUAD4gGAA+ICAAPiAoAD4gLAA+IDAAPiA4AD4gPAA+IigAPiIwAD4iOAA+IkAAPiJMAD4iUAA+IlQAPiJYAD4iXAA+ImQAPiJsAD4icAA+InQAPiJ8AD4igAA+JGwAPiR0AD4kfAA+JIQAPiSQAD4klAA+JJgAPiScAD4koAA+JKgAPiSwAD4ktAA+JLgAPiTAAD4kxAA+JrAAPia4AD4mxAA+JswAPibYAD4m3AA+JuAAPibkAD4m6AA+JvAAPib4AD4m/AA+JwAAPicIAD4nDAA+KPgAPikAAD4pCAA+KRAAPikcAD4pIAA+KSQAPikoAD4pLAA+KTQAPik8AD4pQAA+KUQAPilMAD4pUAA+KzwAPitEAD4rTAA+K1QAPitgAD4rZAA+K2gAPitsAD4rcAA+K3gAPiuAAD4rhAA+K4gAPiuQAD4rlAA+LYAAPi2IAD4tkAA+LZgAPi2kAD4tqAA+LawAPi2wAD4ttAA+LbwAPi3EAD4tyAA+LcwAPi3UAD4t2AA+MCQAPjCwAD4xMAA+MbAAPjG4AD4xwAA+McgAPjHQAD4x3AA+MeAAPjHkAD4x8AA+MfQAPjH8AD4yAAA+MggAPjIUAD4yGAA+MhwAPjIoAD4yLAA+MkAAPjKkAD4yyAA+MtAAPjLYAD4y/AA+MwgAPjMUAD4zHAA+NEAAPjTQAD41bAA+NfwAPjYIAD42EAA+NhgAPjYgAD42KAA+NjAAPjY0AD42QAA+NqQAPjcoAD43MAA+NzgAPjdAAD43SAA+N1AAPjdYAD43YAA+N2gAPjfsAD43+AA+OAQAPjgQAD44HAA+OCgAPjg0AD44QAA+OEwAPjhUAD46QAA+OkgAPjpQAD46WAA+OmQAPjpoAD46bAA+OnAAPjp0AD46fAA+OoQAPjqIAD46jAA+OpQAPjqYAD48hAA+PIwAPjyUAD48nAA+PKgAPjysAD48sAA+PLQAPjy4AD48wAA+PMgAPjzMAD480AA+PNgAPjzcAD4+yAA+PtAAPj7cAD4+5AA+PvAAPj70AD4++AA+PvwAPj8AAD4/CAA+PxAAPj8UAD4/GAA+PyAAPj8kAD4/iAA+P4wAPj+QAD4/mAA+QYQAPkGMAD5BlAA+QZwAPkGoAD5BrAA+QbAAPkG0AD5BuAA+QcAAPkHIAD5BzAA+QdAAPkHYAD5B3AA+Q8gAPkPQAD5D2AA+Q+AAPkPsAD5D8AA+Q/QAPkP4AD5D/AA+RAQAPkQMAD5EEAA+RBQAPkQcAD5EIAA+RgwAPkYUAD5GHAA+RiQAPkYwAD5GNAA+RjgAPkY8AD5GQAA+RkgAPkZQAD5GVAA+RlgAPkZgAD5GZAA+SFAAPkhYAD5IYAA+SGgAPkh0AD5IeAA+SHwAPkiAAD5IhAA+SIwAPkiUAD5ImAA+SJwAPkikAD5IqAA+SpQAPkqcAD5KpAA+SqwAPkq4AD5KvAA+SsAAPkrEAD5KyAA+StAAPkrYAD5K3AA+SuAAPkroAD5K7AA+TBAAPkygAD5NPAA+TcwAPk3YAD5N4AA+TegAPk3wAD5N+AA+TgAAPk4EAD5OEAA+TnQAPk7oAD5O8AA+TvgAPk8AAD5PCAA+TxAAPk8YAD5PIAA+T5QAPk+gAD5PrAA+T7gAPk/EAD5P0AA+T9wAPk/oAD5P8AA+UdwAPlHkAD5R8AA+UfgAPlIEAD5SCAA+UgwAPlIQAD5SFAA+UhwAPlIkAD5SKAA+UiwAPlI0AD5SOAA+VCQAPlQsAD5UNAA+VDwAPlRIAD5UTAA+VFAAPlRUAD5UWAA+VGAAPlRoAD5UbAA+VHAAPlR4AD5UfAA+VmgAPlZwAD5WeAA+VoAAPlaMAD5WkAA+VpQAPlaYAD5WnAA+VqQAPlasAD5WsAA+VrQAPla8AD5WwAA+WKwAPli0AD5YwAA+WMgAPljUAD5Y2AA+WNwAPljgAD5Y5AA+WOwAPlj0AD5Y+AA+WPwAPlkEAD5ZCAA+WvQAPlr8AD5bBAA+WwwAPlsYAD5bHAA+WyAAPlskAD5bKAA+WzAAPls4AD5bPAA+W0AAPltIAD5bTAA+XTgAPl1AAD5dSAA+XVAAPl1cAD5dYAA+XWQAPl1oAD5dbAA+XXQAPl18AD5dgAA+XYQAPl2MAD5dkAA+X3wAPl+EAD5fjAA+X5QAPl+gAD5fpAA+X6gAPl+sAD5fsAA+X7gAPl/AAD5fxAA+X8gAPl/QAD5f1AA+YiAAPmKsAD5jLAA+Y6wAPmO0AD5jvAA+Y8QAPmPMAD5j2AA+Y9wAPmPgAD5j7AA+Y/AAPmP4AD5j/AA+ZAQAPmQQAD5kFAA+ZBgAPmQkAD5kKAA+ZDwAPmSgAD5kxAA+ZMwAPmTUAD5k+AA+ZQQAPmUQAD5lGAA+ZjwAPmbMAD5naAA+Z/gAPmgEAD5oDAA+aBQAPmgcAD5oJAA+aCwAPmgwAD5oPAA+aKAAPmkkAD5pLAA+aTQAPmk8AD5pRAA+aUwAPmlUAD5pXAA+aWQAPmnoAD5p9AA+agAAPmoMAD5qGAA+aiQAPmowAD5qPAA+akgAPmpQAD5sPAA+bEQAPmxMAD5sVAA+bGAAPmxkAD5saAA+bGwAPmxwAD5seAA+bIAAPmyEAD5siAA+bJAAPmyUAD5ugAA+bogAPm6QAD5umAA+bqQAPm6oAD5urAA+brAAPm60AD5uvAA+bsQAPm7IAD5uzAA+btQAPm7YAD5wxAA+cMwAPnDYAD5w4AA+cOwAPnDwAD5w9AA+cPgAPnD8AD5xBAA+cQwAPnEQAD5xFAA+cRwAPnEgAD5xhAA+cYgAPnGMAD5xlAA+c4AAPnOIAD5zkAA+c5gAPnOkAD5zqAA+c6wAPnOwAD5ztAA+c7wAPnPEAD5zyAA+c8wAPnPUAD5z2AA+dcQAPnXMAD511AA+ddwAPnXoAD517AA+dfAAPnX0AD51+AA+dgAAPnYIAD52DAA+dhAAPnYYAD52HAA+eAgAPngQAD54GAA+eCAAPngsAD54MAA+eDQAPng4AD54PAA+eEQAPnhMAD54UAA+eFQAPnhcAD54YAA+ekwAPnpUAD56XAA+emQAPnpwAD56dAA+engAPnp8AD56gAA+eogAPnqQAD56lAA+epgAPnqgAD56pAA+fJAAPnyYAD58oAA+fKgAPny0AD58uAA+fLwAPnzAAD58xAA+fMwAPnzUAD582AA+fNwAPnzkAD586AA+fgwAPn6cAD5/OAA+f8gAPn/UAD5/3AA+f+QAPn/sAD5/9AA+f/wAPoAAAD6ADAA+gHAAPoDkAD6A7AA+gPQAPoD8AD6BBAA+gQwAPoEUAD6BHAA+gZAAPoGcAD6BqAA+gbQAPoHAAD6BzAA+gdgAPoHkAD6B7AA+g9gAPoPgAD6D6AA+g/AAPoP8AD6EAAA+hAQAPoQIAD6EDAA+hBQAPoQcAD6EIAA+hCQAPoQsAD6EMAA+hhwAPoYkAD6GLAA+hjQAPoZAAD6GRAA+hkgAPoZMAD6GUAA+hlgAPoZgAD6GZAA+hmgAPoZwAD6GdAA+iGAAPohoAD6IcAA+iHgAPoiEAD6IiAA+iIwAPoiQAD6IlAA+iJwAPoikAD6IqAA+iKwAPoi0AD6IuAA+iqQAPoqsAD6KuAA+isAAPorMAD6K0AA+itQAPorYAD6K3AA+iuQAPorsAD6K8AA+ivQAPor8AD6LAAA+jOwAPoz0AD6M/AA+jQQAPo0QAD6NFAA+jRgAPo0cAD6NIAA+jSgAPo0wAD6NNAA+jTgAPo1AAD6NRAA+jzAAPo84AD6PQAA+j0gAPo9UAD6PWAA+j1wAPo9gAD6PZAA+j2wAPo90AD6PeAA+j3wAPo+EAD6PiAA+kXQAPpF8AD6RhAA+kYwAPpGYAD6RnAA+kaAAPpGkAD6RqAA+kbAAPpG4AD6RvAA+kcAAPpHIAD6RzAA+lBgAPpSkAD6VJAA+laQAPpWsAD6VtAA+lbwAPpXEAD6V0AA+ldQAPpXYAD6V5AA+legAPpXwAD6V9AA+lfwAPpYIAD6WDAA+lhAAPpYcAD6WIAA+ljQAPpaYAD6WvAA+lsQAPpbMAD6W8AA+lvwAPpcIAD6XEAA+mDQAPpjEAD6ZYAA+mfAAPpn8AD6aBAA+mgwAPpoUAD6aHAA+miQAPpooAD6aNAA+mpgAPpscAD6bJAA+mywAPps0AD6bPAA+m0QAPptMAD6bVAA+m1wAPpvgAD6b7AA+m/gAPpwEAD6cEAA+nBwAPpwoAD6cNAA+nEAAPpxIAD6eNAA+njwAPp5EAD6eTAA+nlgAPp5cAD6eYAA+nmQAPp5oAD6ecAA+nngAPp58AD6egAA+nogAPp6MAD6geAA+oIAAPqCIAD6gkAA+oJwAPqCgAD6gpAA+oKgAPqCsAD6gtAA+oLwAPqDAAD6gxAA+oMwAPqDQAD6ivAA+osQAPqLQAD6i2AA+ouQAPqLoAD6i7AA+ovAAPqL0AD6i/AA+owQAPqMIAD6jDAA+oxQAPqMYAD6jfAA+o4AAPqOEAD6jjAA+pXgAPqWAAD6liAA+pZAAPqWcAD6loAA+paQAPqWoAD6lrAA+pbQAPqW8AD6lwAA+pcQAPqXMAD6l0AA+p7wAPqfEAD6nzAA+p9QAPqfgAD6n5AA+p+gAPqfsAD6n8AA+p/gAPqgAAD6oBAA+qAgAPqgQAD6oFAA+qgAAPqoIAD6qEAA+qhgAPqokAD6qKAA+qiwAPqowAD6qNAA+qjwAPqpEAD6qSAA+qkwAPqpUAD6qWAA+rEQAPqxMAD6sVAA+rFwAPqxoAD6sbAA+rHAAPqx0AD6seAA+rIAAPqyIAD6sjAA+rJAAPqyYAD6snAA+rogAPq6QAD6umAA+rqAAPq6sAD6usAA+rrQAPq64AD6uvAA+rsQAPq7MAD6u0AA+rtQAPq7cAD6u4AA+sAQAPrCUAD6xMAA+scAAPrHMAD6x1AA+sdwAPrHkAD6x7AA+sfQAPrH4AD6yBAA+smgAPrLcAD6y5AA+suwAPrL0AD6y/AA+swQAPrMMAD6zFAA+s4gAPrOUAD6zoAA+s6wAPrO4AD6zxAA+s9AAPrPcAD6z5AA+tdAAPrXYAD614AA+tegAPrX0AD61+AA+tfwAPrYAAD62BAA+tgwAPrYUAD62GAA+thwAPrYkAD62KAA+uBQAPrgcAD64JAA+uCwAPrg4AD64PAA+uEAAPrhEAD64SAA+uFAAPrhYAD64XAA+uGAAPrhoAD64bAA+ulgAPrpgAD66aAA+unAAPrp8AD66gAA+uoQAPrqIAD66jAA+upQAPrqcAD66oAA+uqQAPrqsAD66sAA+vJwAPrykAD68sAA+vLgAPrzEAD68yAA+vMwAPrzQAD681AA+vNwAPrzkAD686AA+vOwAPrz0AD68+AA+vuQAPr7sAD6+9AA+vvwAPr8IAD6/DAA+vxAAPr8UAD6/GAA+vyAAPr8oAD6/LAA+vzAAPr84AD6/PAA+wSgAPsEwAD7BOAA+wUAAPsFMAD7BUAA+wVQAPsFYAD7BXAA+wWQAPsFsAD7BcAA+wXQAPsF8AD7BgAA+w2wAPsN0AD7DfAA+w4QAPsOQAD7DlAA+w5gAPsOcAD7DoAA+w6gAPsOwAD7DtAA+w7gAPsPAAD7DxAA+xhAAPsacAD7HHAA+x5wAPsekAD7HrAA+x7QAPse8AD7HyAA+x8wAPsfQAD7H3AA+x+AAPsfoAD7H7AA+x/QAPsgAAD7IBAA+yAgAPsgUAD7IGAA+yCwAPsiQAD7ItAA+yLwAPsjEAD7I6AA+yPQAPskAAD7JCAA+yiwAPsq8AD7LWAA+y+gAPsv0AD7L/AA+zAQAPswMAD7MFAA+zBwAPswgAD7MLAA+zJAAPs0UAD7NHAA+zSQAPs0sAD7NNAA+zTwAPs1EAD7NTAA+zVQAPs3YAD7N5AA+zfAAPs38AD7OCAA+zhQAPs4gAD7OLAA+zjgAPs5AAD7QLAA+0DQAPtA8AD7QRAA+0FAAPtBUAD7QWAA+0FwAPtBgAD7QaAA+0HAAPtB0AD7QeAA+0IAAPtCEAD7ScAA+0ngAPtKAAD7SiAA+0pQAPtKYAD7SnAA+0qAAPtKkAD7SrAA+0rQAPtK4AD7SvAA+0sQAPtLIAD7UtAA+1LwAPtTIAD7U0AA+1NwAPtTgAD7U5AA+1OgAPtTsAD7U9AA+1PwAPtUAAD7VBAA+1QwAPtUQAD7VdAA+1XgAPtV8AD7VhAA+13AAPtd4AD7XgAA+14gAPteUAD7XmAA+15wAPtegAD7XpAA+16wAPte0AD7XuAA+17wAPtfEAD7XyAA+2bQAPtm8AD7ZxAA+2cwAPtnYAD7Z3AA+2eAAPtnkAD7Z6AA+2fAAPtn4AD7Z/AA+2gAAPtoIAD7aDAA+2/gAPtwAAD7cCAA+3BAAPtwcAD7cIAA+3CQAPtwoAD7cLAA+3DQAPtw8AD7cQAA+3EQAPtxMAD7cUAA+3jwAPt5EAD7eTAA+3lQAPt5gAD7eZAA+3mgAPt5sAD7ecAA+3ngAPt6AAD7ehAA+3ogAPt6QAD7elAA+4IAAPuCIAD7gkAA+4JgAPuCkAD7gqAA+4KwAPuCwAD7gtAA+4LwAPuDEAD7gyAA+4MwAPuDUAD7g2AA+4fwAPuKMAD7jKAA+47gAPuPEAD7jzAA+49QAPuPcAD7j5AA+4+wAPuPwAD7j/AA+5GAAPuTUAD7k3AA+5OQAPuTsAD7k9AA+5PwAPuUEAD7lDAA+5YAAPuWMAD7lmAA+5aQAPuWwAD7lvAA+5cgAPuXUAD7l3AA+58gAPufQAD7n3AA+5+QAPufwAD7n9AA+5/gAPuf8AD7oAAA+6AgAPugQAD7oFAA+6BgAPuggAD7oJAA+6hAAPuoYAD7qIAA+6igAPuo0AD7qOAA+6jwAPupAAD7qRAA+6kwAPupUAD7qWAA+6lwAPupkAD7qaAA+7FQAPuxcAD7sZAA+7GwAPux4AD7sfAA+7IAAPuyEAD7siAA+7JAAPuyYAD7snAA+7KAAPuyoAD7srAA+7pgAPu6gAD7urAA+7rQAPu7AAD7uxAA+7sgAPu7MAD7u0AA+7tgAPu7gAD7u5AA+7ugAPu7wAD7u9AA+8OAAPvDoAD7w8AA+8PgAPvEEAD7xCAA+8QwAPvEQAD7xFAA+8RwAPvEkAD7xKAA+8SwAPvE0AD7xOAA+8yQAPvMsAD7zNAA+8zwAPvNIAD7zTAA+81AAPvNUAD7zWAA+82AAPvNoAD7zbAA+83AAPvN4AD7zfAA+9WgAPvVwAD71eAA+9YAAPvWMAD71kAA+9ZQAPvWYAD71nAA+9aQAPvWsAD71sAA+9bQAPvW8AD71wAA+9gQAPvYIAD72EAA+9/wAPvgEAD74DAA++BQAPvggAD74JAA++CgAPvgsAD74MAA++DgAPvhEAD74SAA++EwAPvhUAD74WAA++kQAPvpMAD76VAA++lwAPvpoAD76bAA++nAAPvp0AD76eAA++oAAPvqMAD76kAA++pQAPvqcAD76oAA+/IwAPvyUAD78oAA+/KgAPvy0AD78uAA+/LwAPvzAAD78xAA+/MwAPvzYAD783AA+/OAAPvzoAD787AA+/zgAPv/EAD8ARAA/AMQAPwDMAD8A1AA/ANwAPwDkAD8A8AA/APQAPwD4AD8BBAA/AQgAPwEQAD8BFAA/ARwAPwEoAD8BLAA/ATAAPwE8AD8BQAA/AVQAPwG4AD8B3AA/AeQAPwHsAD8CEAA/AhwAPwIoAD8CMAA/A1QAPwPkAD8EgAA/BRAAPwUcAD8FJAA/BSwAPwU0AD8FPAA/BUQAPwVIAD8FVAA/BbgAPwY8AD8GRAA/BkwAPwZUAD8GXAA/BmQAPwZsAD8GdAA/BnwAPwcAAD8HDAA/BxgAPwckAD8HMAA/BzwAPwdIAD8HVAA/B2AAPwdoAD8JVAA/CVwAPwlkAD8JbAA/CXgAPwl8AD8JgAA/CYQAPwmIAD8JkAA/CZgAPwmcAD8JoAA/CagAPwmsAD8LmAA/C6AAPwuoAD8LsAA/C7wAPwvAAD8LxAA/C8gAPwvMAD8L1AA/C9wAPwvgAD8L5AA/C+wAPwvwAD8N3AA/DeQAPw3wAD8N+AA/DgQAPw4IAD8ODAA/DhAAPw4UAD8OHAA/DiQAPw4oAD8OLAA/DjQAPw44AD8OnAA/DqAAPw6kAD8OrAA/EJgAPxCgAD8QqAA/ELAAPxC8AD8QwAA/EMQAPxDIAD8QzAA/ENQAPxDcAD8Q4AA/EOQAPxDsAD8Q8AA/EtwAPxLkAD8S7AA/EvQAPxMAAD8TBAA/EwgAPxMMAD8TEAA/ExgAPxMgAD8TJAA/EygAPxMwAD8TNAA/FSAAPxUoAD8VMAA/FTgAPxVEAD8VSAA/FUwAPxVQAD8VVAA/FVwAPxVkAD8VaAA/FWwAPxV0AD8VeAA/F2QAPxdsAD8XdAA/F3wAPxeIAD8XjAA/F5AAPxeUAD8XmAA/F6AAPxeoAD8XrAA/F7AAPxe4AD8XvAA/GagAPxmwAD8ZuAA/GcAAPxnMAD8Z0AA/GdQAPxnYAD8Z3AA/GeQAPxnsAD8Z8AA/GfQAPxn8AD8aAAA/GyQAPxu0AD8cUAA/HOAAPxzsAD8c9AA/HPwAPx0EAD8dDAA/HRQAPx0YAD8dJAA/HYgAPx38AD8eBAA/HgwAPx4UAD8eHAA/HiQAPx4sAD8eNAA/HqgAPx60AD8ewAA/HswAPx7YAD8e5AA/HvAAPx78AD8fBAA/IPAAPyD4AD8hAAA/IQgAPyEUAD8hGAA/IRwAPyEgAD8hJAA/ISwAPyE0AD8hOAA/ITwAPyFEAD8hSAA/IzQAPyM8AD8jRAA/I0wAPyNYAD8jXAA/I2AAPyNkAD8jaAA/I3AAPyN4AD8jfAA/I4AAPyOIAD8jjAA/JXgAPyWAAD8liAA/JZAAPyWcAD8loAA/JaQAPyWoAD8lrAA/JbQAPyW8AD8lwAA/JcQAPyXMAD8l0AA/J7wAPyfEAD8n0AA/J9gAPyfkAD8n6AA/J+wAPyfwAD8n9AA/J/wAPygEAD8oCAA/KAwAPygUAD8oGAA/KgQAPyoMAD8qFAA/KhwAPyooAD8qLAA/KjAAPyo0AD8qOAA/KkAAPypIAD8qTAA/KlAAPypYAD8qXAA/LEgAPyxQAD8sWAA/LGAAPyxsAD8scAA/LHQAPyx4AD8sfAA/LIQAPyyMAD8skAA/LJQAPyycAD8soAA/LowAPy6UAD8unAA/LqQAPy6wAD8utAA/LrgAPy68AD8uwAA/LsgAPy7QAD8u1AA/LtgAPy7gAD8u5AA/MTAAPzG8AD8yPAA/MrwAPzLEAD8yzAA/MtQAPzLcAD8y6AA/MuwAPzLwAD8y/AA/MwAAPzMIAD8zDAA/MxQAPzMgAD8zJAA/MygAPzM0AD8zOAA/M0wAPzOwAD8z1AA/M9wAPzPkAD80CAA/NBQAPzQgAD80KAA/NUwAPzXcAD82eAA/NwgAPzcUAD83HAA/NyQAPzcsAD83NAA/NzwAPzdAAD83TAA/N7AAPzg0AD84PAA/OEQAPzhMAD84VAA/OFwAPzhkAD84bAA/OHQAPzj4AD85BAA/ORAAPzkcAD85KAA/OTQAPzlAAD85TAA/OVgAPzlgAD87TAA/O1QAPztcAD87ZAA/O3AAPzt0AD87eAA/O3wAPzuAAD87iAA/O5AAPzuUAD87mAA/O6AAPzukAD89kAA/PZgAPz2gAD89qAA/PbQAPz24AD89vAA/PcAAPz3EAD89zAA/PdQAPz3YAD893AA/PeQAPz3oAD8/1AA/P9wAPz/oAD8/8AA/P/wAP0AAAD9ABAA/QAgAP0AMAD9AFAA/QBwAP0AgAD9AJAA/QCwAP0AwAD9AlAA/QJgAP0CcAD9ApAA/QpAAP0KYAD9CoAA/QqgAP0K0AD9CuAA/QrwAP0LAAD9CxAA/QswAP0LUAD9C2AA/QtwAP0LkAD9C6AA/RNQAP0TcAD9E5AA/ROwAP0T4AD9E/AA/RQAAP0UEAD9FCAA/RRAAP0UYAD9FHAA/RSAAP0UoAD9FLAA/RxgAP0cgAD9HKAA/RzAAP0c8AD9HQAA/R0QAP0dIAD9HTAA/R1QAP0dcAD9HYAA/R2QAP0dsAD9HcAA/SVwAP0lkAD9JbAA/SXQAP0mAAD9JhAA/SYgAP0mMAD9JkAA/SZgAP0mgAD9JpAA/SagAP0mwAD9JtAA/S6AAP0uoAD9LsAA/S7gAP0vEAD9LyAA/S8wAP0vQAD9L1AA/S9wAP0vkAD9L6AA/S+wAP0v0AD9L+AA/TRwAP02sAD9OSAA/TtgAP07kAD9O7AA/TvQAP078AD9PBAA/TwwAP08QAD9PHAA/T4AAP0/0AD9P/AA/UAQAP1AMAD9QFAA/UBwAP1AkAD9QLAA/UKAAP1CsAD9QuAA/UMQAP1DQAD9Q3AA/UOgAP1D0AD9Q/AA/UugAP1LwAD9S+AA/UwAAP1MMAD9TEAA/UxQAP1MYAD9THAA/UyQAP1MsAD9TMAA/UzQAP1M8AD9TQAA/VSwAP1U0AD9VPAA/VUQAP1VQAD9VVAA/VVgAP1VcAD9VYAA/VWgAP1VwAD9VdAA/VXgAP1WAAD9VhAA/V3AAP1d4AD9XgAA/V4gAP1eUAD9XmAA/V5wAP1egAD9XpAA/V6wAP1e0AD9XuAA/V7wAP1fEAD9XyAA/WbQAP1m8AD9ZyAA/WdAAP1ncAD9Z4AA/WeQAP1noAD9Z7AA/WfQAP1n8AD9aAAA/WgQAP1oMAD9aEAA/W/wAP1wEAD9cDAA/XBQAP1wgAD9cJAA/XCgAP1wsAD9cMAA/XDgAP1xAAD9cRAA/XEgAP1xQAD9cVAA/XkAAP15IAD9eUAA/XlgAP15kAD9eaAA/XmwAP15wAD9edAA/XnwAP16EAD9eiAA/XowAP16UAD9emAA/YIQAP2CMAD9glAA/YJwAP2CoAD9grAA/YLAAP2C0AD9guAA/YMAAP2DIAD9gzAA/YNAAP2DYAD9g3AA/YygAP2O0AD9kNAA/ZLQAP2S8AD9kxAA/ZMwAP2TUAD9k4AA/ZOQAP2ToAD9k9AA/ZPgAP2UAAD9lBAA/ZQwAP2UYAD9lHAA/ZSAAP2UsAD9lMAA/ZVQAP2W4AD9l3AA/ZeQAP2XsAD9mEAA/ZhwAP2YoAD9mMAA/Z1QAP2fkAD9ogAA/aRAAP2kcAD9pJAA/aSwAP2k0AD9pPAA/aUQAP2lIAD9pVAA/abgAP2o8AD9qRAA/akwAP2pUAD9qXAA/amQAP2psAD9qdAA/anwAP2sAAD9rDAA/axgAP2skAD9rMAA/azwAP2tIAD9rVAA/a2AAP2toAD9tVAA/bVwAP21kAD9tbAA/bXgAP218AD9tgAA/bYQAP22IAD9tkAA/bZgAP22cAD9toAA/bagAP22sAD9vmAA/b6AAP2+oAD9vsAA/b7wAP2/AAD9vxAA/b8gAP2/MAD9v1AA/b9wAP2/gAD9v5AA/b+wAP2/wAD9x3AA/ceQAP3HwAD9x+AA/cgQAP3IIAD9yDAA/chAAP3IUAD9yHAA/ciQAP3IoAD9yLAA/cjQAP3I4AD9ynAA/cqAAP3KkAD9yrAA/dJgAP3SgAD90qAA/dLAAP3S8AD90wAA/dMQAP3TIAD90zAA/dNQAP3TcAD904AA/dOQAP3TsAD908AA/dtwAP3bkAD927AA/dvQAP3cAAD93BAA/dwgAP3cMAD93EAA/dxgAP3cgAD93JAA/dygAP3cwAD93NAA/eSAAP3koAD95MAA/eTgAP3lEAD95SAA/eUwAP3lQAD95VAA/eVwAP3lkAD95aAA/eWwAP3l0AD95eAA/e2QAP3tsAD97dAA/e3wAP3uIAD97jAA/e5AAP3uUAD97mAA/e6AAP3uoAD97rAA/e7AAP3u4AD97vAA/fagAP32wAD99uAA/fcAAP33MAD990AA/fdQAP33YAD993AA/feQAP33sAD998AA/ffQAP338AD9+AAA/fyQAP3+0AD+AUAA/gOAAP4DsAD+A9AA/gPwAP4EEAD+BDAA/gRQAP4EYAD+BJAA/gYgAP4H8AD+CBAA/ggwAP4IUAD+CHAA/giQAP4IsAD+CNAA/gqgAP4K0AD+CwAA/gswAP4LYAD+C5AA/gvAAP4L8AD+DBAA/hPAAP4T4AD+FAAA/hQgAP4UUAD+FGAA/hRwAP4UgAD+FJAA/hSwAP4U0AD+FOAA/hTwAP4VEAD+FSAA/hzQAP4c8AD+HRAA/h0wAP4dYAD+HXAA/h2AAP4dkAD+HaAA/h3AAP4d4AD+HfAA/h4AAP4eIAD+HjAA/iXgAP4mAAD+JiAA/iZAAP4mcAD+JoAA/iaQAP4moAD+JrAA/ibQAP4m8AD+JwAA/icQAP4nMAD+J0AA/i7wAP4vEAD+L0AA/i9gAP4vkAD+L6AA/i+wAP4vwAD+L9AA/i/wAP4wEAD+MCAA/jAwAP4wUAD+MGAA/jgQAP44MAD+OFAA/jhwAP44oAD+OLAA/jjAAP440AD+OOAA/jkAAP45IAD+OTAA/jlAAP45YAD+OXAA/kEgAP5BQAD+QWAA/kGAAP5BsAD+QcAA/kHQAP5B4AD+QfAA/kIQAP5CMAD+QkAA/kJQAP5CcAD+QoAA/kowAP5KUAD+SnAA/kqQAP5KwAD+StAA/krgAP5K8AD+SwAA/ksgAP5LQAD+S1AA/ktgAP5LgAD+S5AA/lTAAP5W8AD+WPAA/lrwAP5bEAD+WzAA/ltQAP5bcAD+W6AA/luwAP5bwAD+W/AA/lwAAP5cIAD+XDAA/lxQAP5cgAD+XJAA/lygAP5c0AD+XOAA/l0wAP5ewAD+X1AA/l9wAP5fkAD+YCAA/mBQAP5ggAD+YKAA/mUwAP5ncAD+aeAA/mwgAP5sUAD+bHAA/myQAP5ssAD+bNAA/mzwAP5tAAD+bTAA/m7AAP5w0AD+cPAA/nEQAP5xMAD+cVAA/nFwAP5xkAD+cbAA/nHQAP5z4AD+dBAA/nRAAP50cAD+dKAA/nTQAP51AAD+dTAA/nVgAP51gAD+fTAA/n1QAP59cAD+fZAA/n3AAP590AD+feAA/n3wAP5+AAD+fiAA/n5AAP5+UAD+fmAA/n6AAP5+kAD+hkAA/oZgAP6GgAD+hqAA/obQAP6G4AD+hvAA/ocAAP6HE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AEAKoABACqgAQAqsAEAKsABACrgAQAq8AEAMqABADLAAQAy4AEAMwABADMwAQAzQAEAM1ABADNgAQAzcAEAM5ABADOwAQAzwAEAM9ABADPwAQA0AAEAO7ABADvQAQA8AAEAPCABADxQAQA8YAEAPHABADyAAQA8kAEAPLABADzQAQA84AEAPPABAD0QAQA9IAEAPrABAD7AAQA+0AEAPvABAEagAQBGwAEARuABAEcAAQBHMAEAR0ABAEdQAQBHYAEAR3ABAEeQAQBHsAEAR8ABAEfQAQBH8AEASAABAE+wAQBP0AEAT/ABAFAQAQBQQAEAUFABAFBgAQBQcAEAUIABAFCgAQBQwAEAUNABAFDgAQBRAAEAURABAFjAAQBY4AEAWQABAFkgAQBZUAEAWWABAFlwAQBZgAEAWZABAFmwAQBZ0AEAWeABAFnwAQBaEAEAWiABAGHQAQBh8AEAYhABAGIwAQBiYAEAYnABAGKAAQBikAEAYqABAGLAAQBi4AEAYvABAGMAAQBjIAEAYzABAGrgAQBrAAEAayABAGtAAQBrcAEAa4ABAGuQAQBroAEAa7ABAGvQAQBr8AEAbAABAGwQAQBsMAEAbEABAHDQAQBzEAEAdYABAHfAAQB38AEAeBABAHgwAQB4UAEAeHABAHiQAQB4oAEAeNABAHpgAQB8MAEAfFABAHxwAQB8kAEAfLABAHzQAQB88AEAfRABAH7gAQB/EAEAf0ABAH9wAQB/oAEAf9ABAIAAAQCAMAEAgFABAIgAAQCIIAEAiFABAIhwAQCIoAEAiLABAIjAAQCI0AEAiOABAIkAAQCJIAEAiTABAIlAAQCJYAEAiXABAJEgAQCRQAEAkWABAJGAAQCRsAEAkcABAJHQAQCR4AEAkfABAJIQAQCSMAEAkkABAJJQAQCScAEAkoABAJowAQCaUAEAmnABAJqQAQCawAEAmtABAJrgAQCa8AEAmwABAJsgAQCbQAEAm1ABAJtgAQCbgAEAm5ABAKNAAQCjYAEAo5ABAKOwAQCj4AEAo/ABAKQAAQCkEAEApCABAKRAAQCkYAEApHABAKSAAQCkoAEApLABAKxgAQCsgAEArKABAKzAAQCs8AEArQABAK0QAQCtIAEArTABAK1QAQCtcAEArYABAK2QAQCtsAEArcABALVwAQC1kAEAtbABALXQAQC2AAEAthABALYgAQC2MAEAtkABALZgAQC2gAEAtpABALagAQC2wAEAttABAL6AAQC+oAEAvsABAL7gAQC/EAEAvyABAL8wAQC/QAEAv1ABAL9wAQC/kAEAv6ABAL+wAQC/0AEAv+ABAMkQAQDLQAEAzUABAM9AAQDPYAEAz4ABAM+gAQDPwAEAz/ABANAAAQDQEAEA0EABANBQAQDQcAEA0IABANCgAQDQ0AEA0OABANDwAQDRIAEA0TABANGAAQDTEAEA06ABANPAAQDT4AEA1HABANSgAQDU0AEA1PABANmAAQDbwAEA3jABAOBwAQDgoAEA4MABAODgAQDhAAEA4SABAOFAAQDhUAEA4YABAOMQAQDlIAEA5UABAOVgAQDlgAEA5aABAOXAAQDl4AEA5gABAOYgAQDoMAEA6GABAOiQAQDowAEA6PABAOkgAQDpUAEA6YABAOmwAQDp0AEA8YABAPGgAQDxwAEA8eABAPIQAQDyIAEA8jABAPJAAQDyUAEA8nABAPKQAQDyoAEA8rABAPLQAQDy4AEA+pABAPqwAQD60AEA+vABAPsgAQD7MAEA+0ABAPtQAQD7YAEA+4ABAPugAQD7sAEA+8ABAPvgAQD78AEBA6ABAQPAAQED8AEBBBABAQRAAQEEUAEBBGABAQRwAQEEgAEBBKABAQTAAQEE0AEBBOABAQUAAQEFEAEBBqABAQawAQEGwAEBBuABAQ6QAQEOsAEBDtABAQ7wAQEPIAEBDzABAQ9AAQEPUAEBD2ABAQ+AAQEPoAEBD7ABAQ/AAQEP4AEBD/ABARegAQEXwAEBF+ABARgAAQEYMAEBGEABARhQAQEYYAEBGHABARiQAQEYsAEBGMABARjQAQEY8AEBGQABASCwAQEg0AEBIPABASEQAQEhQAEBIVABASFgAQEhcAEBIYABASGgAQEhwAEBIdABASHgAQEiAAEBIhABASnAAQEp4AEBKgABASogAQEqUAEBKmABASpwAQEqgAEBKpABASqwAQEq0AEBKuABASrwAQErEAEBKyABATLQAQEy8AEBMxABATMwAQEzYAEBM3ABATOAAQEzkAEBM6ABATPAAQEz4AEBM/ABATQAAQE0IAEBNDABATjAAQE7AAEBPXABAT+wAQE/4AEBQAABAUAgAQFAQAEBQGABAUCAAQFAkAEBQMABAUJQAQFEIAEBREABAURgAQFEgAEBRKABAUTAAQFE4AEBRQABAUbQAQFHAAEBRzABAUdgAQFHkAEBR8ABAUfwAQFIIAEBSEABAU/wAQFQEAEBUDABAVBQAQFQgAEBUJABAVCgAQFQsAEBUMABAVDgAQFRAAEBURABAVEgAQFRQAEBUVABAVkAAQFZIAEBWUABAVlgAQFZkAEBWaABAVmwAQFZwAEBWdABAVnwAQFaEAEBWiABAVowAQFaUAEBWmABAWIQAQFiMAEBYlABAWJwAQFioAEBYrABAWLAAQFi0AEBYuABAWMAAQFjIAEBYzABAWNAAQFjYAEBY3ABAWsgAQFrQAEBa3ABAWuQAQFrwAEBa9ABAWvgAQFr8AEBbAABAWwgAQFsQAEBbFABAWxgAQFsgAEBbJABAXRAAQF0YAEBdIABAXSgAQF00AEBdOABAXTwAQF1AAEBdRABAXUwAQF1UAEBdWABAXVwAQF1kAEBdaABAX1QAQF9cAEBfZABAX2wAQF94AEBffABAX4AAQF+EAEBfiABAX5AAQF+YAEBfnABAX6AAQF+oAEBfrABAYZgAQGGgAEBhqABAYbAAQGG8AEBhwABAYcQAQGHIAEBhzABAYdQAQGHcAEBh4ABAYeQAQGHsAEBh8ABAZDwAQGTIAEBlSABAZcgAQGXQAEBl2ABAZeAAQGXoAEBl9ABAZfgAQGX8AEBmCABAZgwAQGYUAEBmGABAZiAAQGYsAEBmMABAZjQAQGZAAEBmRABAZlgAQGa8AEBm4ABAZugAQGbwAEBnFABAZyAAQGcsAEBnNABAaFgAQGjoAEBphABAahQAQGogAEBqKABAajAAQGo4AEBqQABAakgAQGpMAEBqWABAarwAQGtAAEBrSABAa1AAQGtYAEBrYABAa2gAQGtwAEBreABAa4AAQGwEAEBsEABAbBwAQGwoAEBsNABAbEAAQGxMAEBsWABAbGQAQGxsAEBuWABAbmAAQG5oAEBucABAbnwAQG6AAEBuhABAbogAQG6MAEBulABAbpwAQG6gAEBupABAbqwAQG6wAEBwnABAcKQAQHCsAEBwtABAcMAAQHDEAEBwyABAcMwAQHDQAEBw2ABAcOAAQHDkAEBw6ABAcPAAQHD0AEBy4ABAcugAQHL0AEBy/ABAcwgAQHMMAEBzEABAcxQAQHMYAEBzIABAcygAQHMsAEBzMABAczgAQHM8AEBzoABAc6QAQHOoAEBzsABAdZwAQHWkAEB1rABAdbQAQHXAAEB1xABAdcgAQHXMAEB10ABAddgAQHXgAEB15ABAdegAQHXwAEB19ABAd+AAQHfoAEB38ABAd/gAQHgEAEB4CABAeAwAQHgQAEB4FABAeBwAQHgkAEB4KABAeCwAQHg0AEB4OABAeiQAQHosAEB6NABAejwAQHpIAEB6TABAelAAQHpUAEB6WABAemAAQHpoAEB6bABAenAAQHp4AEB6fABAfGgAQHxwAEB8eABAfIAAQHyMAEB8kABAfJQAQHyYAEB8nABAfKQAQHysAEB8sABAfLQAQHy8AEB8wABAfqwAQH60AEB+vABAfsQAQH7QAEB+1ABAftgAQH7cAEB+4ABAfugAQH7wAEB+9ABAfvgAQH8AAEB/BABAgCgAQIC4AECBVABAgeQAQIHwAECB+ABAggAAQIIIAECCEABAghgAQIIcAECCKABAgowAQIMAAECDCABAgxAAQIMYAECDIABAgygAQIMwAECDOABAg6wAQIO4AECDxABAg9AAQIPcAECD6ABAg/QAQIQAAECECABAhfQAQIX8AECGBABAhgwAQIYYAECGHABAhiAAQIYkAECGKABAhjAAQIY4AECGPABAhkAAQIZIAECGTABAiDgAQIhAAECISABAiFAAQIhcAECIYABAiGQAQIhoAECIbABAiHQAQIh8AECIgABAiIQAQIiMAECIkABAinwAQIqEAECKjABAipQAQIqgAECKpABAiqgAQIqsAECKsABAirgAQIrAAECKxABAisgAQIrQAECK1ABAjMAAQIzIAECM0ABAjNgAQIzkAECM6ABAjOwAQIzwAECM9ABAjPwAQI0EAECNCABAjQwAQI0UAECNGABAjwQAQI8MAECPFABAjxwAQI8oAECPLABAjzAAQI80AECPOABAj0AAQI9IAECPTABAj1AAQI9YAECPXABAkUgAQJFQAECRWABAkWAAQJFsAECRcABAkXQAQJF4AECRfABAkYQAQJGMAECRkABAkZQAQJGcAECRoABAk4wAQJOUAECTnABAk6QAQJOwAECTtABAk7gAQJO8AECTwABAk8gAQJPQAECT1ABAk9gAQJPgAECT5ABAlCgAQJQsAECUNABAlkAAQJbQAECXYABAl+wAQJiIAECZCABAmaQAQJpAAECawABAm1AAQJvgAECb6ABAm/QAQJv8AECcBABAnAwAQJwYAECcJABAnCwAQJw0AECcQABAnEgAQJxQAECcXABAnGgAQJxsAECcgABAnOQAQJz4AECdAABAnRQAQJ0gAECdKABAnkwAQJ7cAECfeABAoAgAQKAUAECgHABAoCQAQKAsAECgNABAoDwAQKBAAECgTABAoLAAQKFEAEChTABAoVQAQKFcAEChZABAoWwAQKF0AEChfABAoYQAQKGMAECiIABAoiwAQKI4AECiRABAolAAQKJcAECiaABAonQAQKKAAECijABAopQAQKSAAECkiABApJQAQKScAECkqABApKwAQKSwAECktABApLgAQKTAAECkyABApMwAQKTQAECk2ABApNwAQKUgAEClJABApSwAQKcYAECnIABApygAQKcwAECnPABAp0AAQKdEAECnSABAp0wAQKdUAECnXABAp2AAQKdkAECnbABAp3AAQKlcAECpZABAqXAAQKl4AECphABAqYgAQKmMAECpkABAqZQAQKmcAECppABAqagAQKmsAECptABAqbgAQKn8AECqEABAqhwAQKokAECqaABAqowAQKqYAECqpABAqqwAQKscAECrZABArVAAQK1YAECtYABArWgAQK10AECteABArXwAQK2AAECthABArYwAQK2UAECtmABArZwAQK2kAECtqABAr5QAQK+cAECvqABAr7AAQK+8AECvwABAr8QAQK/IAECvzABAr9QAQK/cAECv4ABAr+QAQK/sAECv8ABAsDQAQLA4AECwQABAsiwAQLI0AECyPABAskQAQLJQAECyVABAslgAQLJcAECyYABAsmgAQLJwAECydABAsngAQLKAAECyhABAtHAAQLR4AEC0hABAtIwAQLSYAEC0nABAtKAAQLSkAEC0qABAtLAAQLS4AEC0vABAtMAAQLTIAEC0zABAtTAAQLU0AEC1OABAtUAAQLcsAEC3NABAtzwAQLdEAEC3UABAt1QAQLdYAEC3XABAt2AAQLdoAEC3cABAt3QAQLd4AEC3gABAt4QAQLlwAEC5eABAuYQAQLmMAEC5mABAuZwAQLmgAEC5pABAuagAQLmwAEC5uABAubwAQLnAAEC5yABAucwAQLo0AEC6mABAurwAQLrIAEC61ABAuvgAQLsE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AEFMVABBTNQAQU1UAEFNXABBTWQAQU1sAEFNdABBTYAAQU2EAEFNiABBTZQAQU2YAEFNoABBTaQAQU2sAEFNuABBTbwAQU3AAEFNzABBTdAAQU3kAEFOSABBTmwAQU50AEFOfABBTqAAQU6sAEFOuABBTsAAQU/kAEFQdABBURAAQVGgAEFRrABBUbQAQVG8AEFRxABBUcwAQVHUAEFR2ABBUeQAQVJIAEFSzABBUtQAQVLcAEFS5ABBUuwAQVL0AEFS/ABBUwQAQVMMAEFTkABBU5wAQVOoAEFTtABBU8AAQVPMAEFT2ABBU+QAQVPwAEFT+ABBVeQAQVXsAEFV9ABBVfwAQVYIAEFWDABBVhAAQVYUAEFWGABBViAAQVYoAEFWLABBVjAAQVY4AEFWPABBWCgAQVgwAEFYOABBWEAAQVhMAEFYUABBWFQAQVhYAEFYXABBWGQAQVhsAEFYcABBWHQAQVh8AEFYgABBWmwAQVp0AEFagABBWogAQVqUAEFamABBWpwAQVqgAEFapABBWqwAQVq0AEFauABBWrwAQVrEAEFayABBWywAQVswAEFbNABBWzwAQV0oAEFdMABBXTgAQV1AAEFdTABBXVAAQV1UAEFdWABBXVwAQV1kAEFdbABBXXAAQV10AEFdfABBXYAAQV9sAEFfdABBX3wAQV+EAEFfkABBX5QAQV+YAEFfnABBX6AAQV+oAEFfsABBX7QAQV+4AEFfwABBX8QAQWGwAEFhuABBYcAAQWHIAEFh1ABBYdgAQWHcAEFh4ABBYeQAQWHsAEFh9ABBYfgAQWH8AEFiBABBYggAQWP0AEFj/ABBZAQAQWQMAEFkGABBZBwAQWQgAEFkJABBZCgAQWQwAEFkOABBZDwAQWRAAEFkSABBZEwAQWY4AEFmQABBZkgAQWZQAEFmXABBZmAAQWZkAEFmaABBZmwAQWZ0AEFmfABBZoAAQWaEAEFmjABBZpAAQWe0AEFoRABBaOAAQWlwAEFpfABBaYQAQWmMAEFplABBaZwAQWmkAEFpqABBabQAQWoYAEFqjABBapQAQWqcAEFqpABBaqwAQWq0AEFqvABBasQAQWs4AEFrRABBa1AAQWtcAEFraABBa3QAQWuAAEFrjABBa5QAQW2AAEFtiABBbZAAQW2YAEFtpABBbagAQW2sAEFtsABBbbQAQW28AEFtxABBbcgAQW3MAEFt1ABBbdgAQW/EAEFvzABBb9QAQW/cAEFv6ABBb+wAQW/wAEFv9ABBb/gAQXAAAEFwCABBcAwAQXAQAEFwGABBcBwAQXIIAEFyEABBchgAQXIgAEFyLABBcjAAQXI0AEFyOABBcjwAQXJEAEFyTABBclAAQXJUAEFyXABBcmAAQXRMAEF0VABBdGAAQXRoAEF0dABBdHgAQXR8AEF0gABBdIQAQXSMAEF0lABBdJgAQXScAEF0pABBdKgAQXaUAEF2nABBdqQAQXasAEF2uABBdrwAQXbAAEF2xABBdsgAQXbQAEF22ABBdtwAQXbgAEF26ABBduwAQXjYAEF44ABBeOgAQXjwAEF4/ABBeQAAQXkEAEF5CABBeQwAQXkUAEF5HABBeSAAQXkkAEF5LABBeTAAQXscAEF7JABBeywAQXs0AEF7QABBe0QAQXtIAEF7TABBe1AAQXtYAEF7YABBe2QAQXtoAEF7cABBe3QAQX3AAEF+TABBfswAQX9MAEF/VABBf1wAQX9kAEF/bABBf3gAQX98AEF/gABBf4wAQX+QAEF/mABBf5wAQX+oAEF/tABBf7gAQX+8AEF/yABBf8wAQX/gAEGARABBgGgAQYBwAEGAfABBgKAAQYCsAEGAuABBgMAAQYHkAEGCdABBgxAAQYOgAEGDrABBg7QAQYO8AEGDxABBg8wAQYPUAEGD2ABBg+QAQYRIAEGEzABBhNQAQYTcAEGE5ABBhOwAQYT0AEGE/ABBhQQAQYUMAEGFkABBhZwAQYWoAEGFtABBhcAAQYXMAEGF2ABBheQAQYXwAEGF+ABBh+QAQYfsAEGH9ABBh/wAQYgIAEGIDABBiBAAQYgUAEGIGABBiCAAQYgoAEGILABBiDAAQYg4AEGIPABBiigAQYowAEGKOABBikAAQYpMAEGKUABBilQAQYpYAEGKXABBimQAQYpsAEGKcABBinQAQYp8AEGKgABBjGwAQYx0AEGMgABBjIgAQYyUAEGMmABBjJwAQYygAEGMpABBjKwAQYy0AEGMuABBjLwAQYzEAEGMyABBjSwAQY0wAEGNNABBjTwAQY8oAEGPMABBjzgAQY9AAEGPTABBj1AAQY9UAEGPWABBj1wAQY9kAEGPbABBj3AAQY90AEGPfABBj4AAQZFsAEGRdABBkXwAQZGEAEGRkABBkZQAQZGYAEGRnABBkaAAQZGoAEGRsABBkbQAQZG4AEGRwABBkcQAQZOwAEGTuABBk8AAQZPIAEGT1ABBk9gAQZPcAEGT4ABBk+QAQZPsAEGT9ABBk/gAQZP8AEGUBABBlAgAQZX0AEGV/ABBlgQAQZYMAEGWGABBlhwAQZYgAEGWJABBligAQZYwAEGWOABBljwAQZZAAEGWSABBlkwAQZg4AEGYQABBmEgAQZhQAEGYXABBmGAAQZhkAEGYaABBmGwAQZh0AEGYfABBmIAAQZiEAEGYjABBmJAAQZm0AEGaRABBmuAAQZtwAEGbfABBm4gAQZuQAEGbmABBm6AAQZuoAEGbrABBm7gAQZwcAEGckABBnJwAQZyoAEGctABBnMAAQZzMAEGc2ABBnOQAQZ1YAEGdZABBnXAAQZ18AEGdiABBnZQAQZ2gAEGdrABBnbQAQZ+gAEGfqABBn7QAQZ+8AEGfyABBn8wAQZ/QAEGf1ABBn9gAQZ/gAEGf7ABBn/AAQZ/0AEGf/ABBoAAAQaHsAEGh9ABBogAAQaIIAEGiFABBohgAQaIcAEGiIABBoiQAQaIsAEGiOABBojwAQaJAAEGiSABBokwAQaQ4AEGkQABBpEwAQaRUAEGkYABBpGQAQaRoAEGkbABBpHAAQaR4AEGkhABBpIgAQaSMAEGklABBpJgAQaaEAEGmjABBppgAQaagAEGmrABBprAAQaa0AEGmuABBprwAQabEAEGm0ABBptQAQabYAEGm4ABBpuQAQajwAEGpgABBqhAAQaqcAEGrOABBq7gAQaxUAEGs8ABBrXAAQa4AAEGukABBrpgAQa6kAEGurABBrrQAQa68AEGuyABBrtQAQa7cAEGu5ABBrvAAQa74AEGvAABBrwwAQa8YAEGvHABBr0AAQa+kAEGvuABBr8AAQa/UAEGv4ABBr+gAQbEMAEGxnABBsjgAQbLIAEGy1ABBstwAQbLkAEGy7ABBsvQAQbL8AEGzAABBswwAQbNwAEG0BABBtAwAQbQUAEG0HABBtCQAQbQsAEG0NABBtDwAQbREAEG0TABBtOAAQbTsAEG0+ABBtQQAQbUQAEG1HABBtSgAQbU0AEG1QABBtUwAQbVUAEG3QABBt0gAQbdUAEG3XABBt2gAQbdsAEG3cABBt3QAQbd4AEG3gABBt4gAQbeMAEG3kABBt5gAQbecAEG34ABBt+QAQbfsAEG52ABBueAAQbnoAEG58ABBufwAQboAAEG6BABBuggAQboMAEG6FABBuhwAQbogAEG6JABBuiwAQbowAEG8HABBvCQAQbwwAEG8OABBvEQAQbxIAEG8TABBvFAAQbxUAEG8XABBvGQAQbxoAEG8bABBvHQAQbx4AEG8vABBvNAAQbzcAEG85ABBvSgAQb08AEG9SABBvVAAQb1sAEG/WABBv2AAQb9oAEG/cABBv3wAQb+AAEG/hABBv4gAQb+MAEG/lABBv5wAQb+gAEG/pABBv6wAQb+wAEHBnABBwaQAQcGwAEHBuABBwcQAQcHIAEHBzABBwdAAQcHUAEHB3ABBweQAQcHoAEHB7ABBwfQAQcH4AEHCPABBwkAAQcJIAEHENABBxDwAQcREAEHETABBxFgAQcRcAEHEYABBxGQAQcRoAEHEcABBxHgAQcR8AEHEgABBxIgAQcSMAEHGeABBxoAAQcaMAEHGlABBxqAAQcakAEHGqABBxqwAQcawAEHGuABBxsAAQcbEAEHGyABBxtAAQcbUAEHHOABBxzwAQcdAAEHHSABByTQAQck8AEHJRABByUwAQclYAEHJXABByWAAQclkAEHJaABByXAAQcl4AEHJfABByYAAQcmIAEHJjABBy3gAQcuAAEHLiABBy5AAQcucAEHLoABBy6QAQcuoAEHLrABBy7QAQcu8AEHLwABBy8QAQcvMAEHL0ABBzDQAQcy4AEHMxABBzNAAQczcAEHM6ABBzPQAQc0AAEHNDABBzRgAQc2cAEHNqABBzbQAQc3AAEHNzABBzdgAQc3kAEHN8ABBzfwAQc4EAEHOmABBzvwAQc9gAEHPiABB0AAAQdCkAEHQxABB0xAAQdOcAEHUHABB1JwAQdSkAEHUrABB1LQAQdS8AEHUyABB1MwAQdTQAEHU3ABB1OAAQdToAEHU7ABB1PQAQdUAAEHVBABB1QgAQdUUAEHVGABB1SwAQdWQAEHVtABB1bwAQdXEAEHV6ABB1fQAQdYAAEHWCABB1ywAQde8AEHYWABB2OgAQdj0AEHY/ABB2QQAQdkMAEHZFABB2RwAQdkgAEHZLABB2ZAAQdoUAEHaHABB2iQAQdosAEHaNABB2jwAQdpEAEHaTABB2lQAQdrYAEHa5ABB2vAAQdr8AEHbCABB2xQAQdsgAEHbLABB2zgAQdtAAEHdLABB3TQAQd08AEHdRABB3VAAQd1UAEHdWABB3VwAQd1gAEHdaABB3XAAQd10AEHdeABB3YAAQd2EAEHfcABB33gAQd+AAEHfiABB35QAQd+YAEHfnABB36AAQd+kAEHfrABB37QAQd+4AEHfvABB38QAQd/IAEHhtABB4bwAQeHIAEHh0ABB4dwAQeHgAEHh5ABB4egAQeHsAEHh9ABB4fwAQeIAAEHiBABB4gwAQeIQAEHidABB4ngAQeJ8AEHihABB5HAAQeR4AEHkgABB5IgAQeSUAEHkmABB5JwAQeSgAEHkpABB5KwAQeS0AEHkuABB5LwAQeTEAEHkyABB5rQAQea8AEHmxABB5swAQebYAEHm3ABB5uAAQebkAEHm6ABB5vAAQeb4AEHm/ABB5wAAQecIAEHnDABB6PgAQekAAEHpCABB6RAAQekcAEHpIABB6SQAQekoAEHpLABB6TQAQek8AEHpQABB6UQAQelMAEHpUABB6zwAQetEAEHrTABB61QAQetgAEHrZABB62gAQetsAEHrcABB63gAQeuAAEHrhABB64gAQeuQAEHrlABB7YAAQe2IAEHtkABB7ZgAQe2kAEHtqABB7awAQe2wAEHttABB7bwAQe3EAEHtyABB7cwAQe3UAEHt2ABB7vwAQe+MAEHwKABB8LgAQfDEAEHwzABB8NQAQfDcAEHw5ABB8OwAQfDwAEHw/ABB8WAAQfHUAEHx3ABB8eQAQfHsAEHx9ABB8fwAQfIEAEHyDABB8oAAQfKMAEHymABB8qQAQfKwAEHyvABB8sgAQfLUAEHy3ABB9MgAQfTQAEH02ABB9OAAQfTsAEH08ABB9PQAQfT4AEH0/ABB9QQAQfUMAEH1EABB9RQAQfUcAEH1IABB9wwAQfcUAEH3HABB9yQAQfcwAEH3NABB9zgAQfc8AEH3QABB90gAQfdQAEH3VABB91gAQfdgAEH3ZABB+VAAQflYAEH5YABB+WgAQfl0AEH5eABB+XwAQfmAAEH5hABB+YwAQfmUAEH5mABB+ZwAQfmkAEH5qABB+5QAQfucAEH7qABB+7AAQfu8AEH7wABB+8QAQfvIAEH7zABB+9QAQfvcAEH74ABB++QAQfvsAEH78ABB/dwAQf3kAEH97ABB/fQAQf4AAEH+BABB/ggAQf4MAEH+EABB/hgAQf4gAEH+JABB/igAQf4wAEH+NABCACAAQgAoAEIAMABCADgAQgBEAEIASABCAEwAQgBQAEIAVABCAFwAQgBkAEIAaABCAGwAQgB0AEIAeABCAmQAQgJsAEICdABCAnwAQgKIAEICjABCApAAQgKUAEICmABCAqAAQgKoAEICrABCArAAQgK4AEICvABCBQgAQgWUAEIGFABCBpQAQgacAEIGpABCBqwAQga0AEIGwABCBsQAQgbIAEIG1ABCBtgAQgbgAEIG5ABCBuwAQgb4AEIG/ABCBwAAQgcMAEIHEABCByQAQgeIAEIHrABCB7QAQge8AEIH4ABCB+wAQgf4AEIIAABCCSQAQgm0AEIKUABCCuAAQgrsAEIK9ABCCvwAQgsEAEILDABCCxQAQgsYAEILJABCC4gAQgwMAEIMFABCDBwAQgwkAEIMLABCDDQAQgw8AEIMRABCDEwAQgzQAEIM3ABCDOgAQgz0AEINAABCDQwAQg0YAEINJABCDTAAQg04AEIPJABCDywAQg80AEIPPABCD0gAQg9MAEIPUABCD1QAQg9YAEIPYABCD2gAQg9sAEIPcABCD3gAQg98AEIRaABCEXAAQhF4AEIRgABCEYwAQhGQAEIRlABCEZgAQhGcAEIRpABCEawAQhGwAEIRtABCEbwAQhHAAEITrABCE7QAQhPAAEITyABCE9QAQhPYAEIT3ABCE+AAQhPkAEIT7ABCE/QAQhP4AEIT/ABCFAQAQhQIAEIUbABCFHAAQhR0AEIUfABCFmgAQhZwAEIWeABCFoAAQhaMAEIWkABCFpQAQhaYAEIWnABCFqQAQhasAEIWsABCFrQAQha8AEIWwABCGKwAQhi0AEIYvABCGMQAQhjQAEIY1ABCGNgAQhjcAEIY4ABCGOgAQhjwAEIY9ABCGPgAQhkAAEIZBABCGvAAQhr4AEIbAABCGwgAQhsUAEIbGABCGxwAQhsgAEIbJABCGywAQhs0AEIbOABCGzwAQhtEAEIbSABCHTQAQh08AEIdRABCHUwAQh1YAEIdXABCHWAAQh1kAEIdaABCHXAAQh14AEIdfABCHYAAQh2IAEIdjABCH3gAQh+AAEIfiABCH5AAQh+cAEIfoABCH6QAQh+oAEIfrABCH7QAQh+8AEIfwABCH8QAQh/MAEIf0ABCIPQAQiGEAEIiIABCIrAAQiK8AEIixABCIswAQiLUAEIi3ABCIuQAQiLoAEIi9ABCI1gAQiPMAEIj1ABCI9wAQiPkAEIj7ABCI/QAQiP8AEIkBABCJHgAQiSEAEIkkABCJJwAQiSoAEIktABCJMAAQiTMAEIk1ABCJsAAQibIAEIm0ABCJtgAQibkAEIm6ABCJuwAQibwAEIm9ABCJvwAQicEAEInCABCJwwAQicUAEInGABCKQQAQikMAEIpFABCKRwAQikoAEIpLABCKTAAQik0AEIpOABCKUAAQilIAEIpTABCKVAAQilYAEIpXABCK0gAQitQAEIrWABCK2AAQitsAEIrcABCK3QAQit4AEIrfABCK4QAQiuMAEIrkABCK5QAQiucAEIroABCLYwAQi2UAEItoABCLagAQi20AEItuABCLbwAQi3AAEItxABCLcwAQi3UAEIt2ABCLdwAQi3kAEIt6ABCL9QAQi/cAEIv5ABCL+wAQi/4AEIv/ABCMAAAQjAEAEIwCABCMBAAQjAYAEIwHABCMCAAQjAoAEIwLABCMhgAQjIgAEIyKABCMjAAQjI8AEIyQABCMkQAQjJIAEIyTABCMlQAQjJcAEIyYABCMmQAQjJsAEIycABCNFwAQjRkAEI0bABCNHQAQjSAAEI0hABCNIgAQjSMAEI0kABCNJgAQjSgAEI0pABCNKgAQjSwAEI0tABCNwAAQjeMAEI4DABCOIwAQjiUAEI4nABCOKQAQjisAEI4uABCOLwAQjjAAEI4zABCONAAQjjYAEI43ABCOOQAQjjwAEI49ABCOPgAQjkEAEI5CABCORwAQjmAAEI5pABCOawAQjm0AEI52ABCOeQAQjnwAEI5+ABCOxwAQjusAEI8SABCPNgAQjzkAEI87ABCPPQAQjz8AEI9BABCPQwAQj0QAEI9HABCPYAAQj4EAEI+DABCPhQAQj4cAEI+JABCPiwAQj40AEI+PABCPkQAQj7IAEI+1ABCPuAAQj7sAEI++ABCPwQAQj8QAEI/HABCPygAQj8wAEJBHABCQSQAQkEsAEJBNABCQUAAQkFEAEJBSABCQUwAQkFQAEJBWABCQWAAQkFkAEJBaABCQXAAQkF0AEJDYABCQ2gAQkNwAEJDeABCQ4QAQkOIAEJDjABCQ5AAQkOUAEJDnABCQ6QAQkOoAEJDrABCQ7QAQkO4AEJFpABCRawAQkW4AEJFwABCRcwAQkXQAEJF1ABCRdgAQkXcAEJF5ABCRewAQkXwAEJF9ABCRfwAQkYAAEJGZABCRmgAQkZsAEJGdABCSGAAQkhoAEJIcABCSHgAQkiEAEJIiABCSIwAQkiQAEJIlABCSJwAQkikAEJIqABCSKwAQki0AEJIuABCSqQAQkqsAEJKtABCSrwAQkrIAEJKzABCStAAQkrUAEJK2ABCSuAAQkroAEJK7ABCSvAAQkr4AEJK/ABCTOgAQkzwAEJM+ABCTQAAQk0MAEJNEABCTRQAQk0YAEJNHABCTSQAQk0sAEJNMABCTTQAQk08AEJNQABCTywAQk80AEJPPABCT0QAQk9QAEJPVABCT1gAQk9cAEJPYABCT2gAQk9wAEJPdABCT3gAQk+AAEJPhABCUXAAQlF4AEJRgABCUYgAQlGUAEJRmABCUZwAQlGgAEJRpABCUawAQlG0AEJRuABCUbwAQlHEAEJRyABCUuwAQlN8AEJUGABCVKgAQlS0AEJUvABCVMQAQlTMAEJU1ABCVNwAQlTgAEJU7ABCVVAAQlXEAEJVzABCVdQAQlXcAEJV5ABCVewAQlX0AEJV/ABCVnAAQlZ8AEJWiABCVpQAQlagAEJWrABCVrgAQlbEAEJWzABCWLgAQljAAEJYyABCWNAAQljcAEJY4ABCWOQAQljoAEJY7ABCWPQAQlj8AEJZAABCWQQAQlkMAEJZEABCWvwAQlsEAEJbDABCWxQAQlsgAEJbJABCWygAQlssAEJbMABCWzgAQltAAEJbRABCW0gAQltQAEJbVABCXUAAQl1IAEJdUABCXVgAQl1kAEJdaABCXWwAQl1wAEJddABCXXwAQl2EAEJdiABCXYwAQl2UAEJdmABCX4QAQl+MAEJfmABCX6AAQl+sAEJfsABCX7QAQl+4AEJfvABCX8QAQl/MAEJf0ABCX9QAQl/cAEJf4ABCYcwAQmHUAEJh3ABCYeQAQmHwAEJh9ABCYfgAQmH8AEJiAABCYggAQmIQAEJiFABCYhgAQmIgAEJiJABCZBAAQmQYAEJkIABCZCgAQmQ0AEJkOABCZDwAQmRAAEJkRABCZEwAQmRUAEJkWABCZFwAQmRkAEJkaABCZlQAQmZcAEJmZABCZmwAQmZ4AEJmfABCZoAAQmaEAEJmiABCZpAAQmaYAEJmnABCZqAAQmaoAEJmrABCaPgAQmmEAEJqBABCaoQAQmqMAEJqlABCapwAQmqkAEJqsABCarQAQmq4AEJqxABCasgAQmrQAEJq1ABCatwAQmroAEJq7ABCavAAQmr8AEJrAABCaxQAQmt4AEJrnABCa6QAQmusAEJr0ABCa9wAQmvoAEJr8ABCbRQAQm2kAEJuQABCbtAAQm7cAEJu5ABCbuwAQm70AEJu/ABCbwQAQm8IAEJvFABCb3gAQm/8AEJwBABCcAwAQnAUAEJwHABCcCQAQnAsAEJwNABCcDwAQnDAAEJwzABCcNgAQnDkAEJw8ABCcPwAQnEIAEJxFABCcSAAQnEoAEJzFABCcxwAQnMkAEJzLABCczgAQnM8AEJzQABCc0QAQnNIAEJzUABCc1gAQnNcAEJzYABCc2gAQnNsAEJ1WABCdWAAQnVoAEJ1cABCdXwAQnWAAEJ1hABCdYgAQnWMAEJ1lABCdZwAQnWgAEJ1pABCdawAQnWwAEJ3nABCd6QAQnewAEJ3uABCd8QAQnfIAEJ3zABCd9AAQnfUAEJ33ABCd+QAQnfoAEJ37ABCd/QAQnf4AEJ4XABCeGAAQnhkAEJ4bABCelgAQnpgAEJ6aABCenAAQnp8AEJ6gABCeoQAQnqIAEJ6jABCepQAQnqcAEJ6oABCeqQAQnqsAEJ6sABCfJwAQnykAEJ8rABCfLQAQnzAAEJ8xABCfMgAQnzMAEJ80ABCfNgAQnzgAEJ85ABCfOgAQnzwAEJ89ABCfuAAQn7oAEJ+8ABCfvgAQn8EAEJ/CABCfwwAQn8QAEJ/FABCfxwAQn8kAEJ/KABCfywAQn80AEJ/OABCgSQAQoEsAEKBNABCgTwAQoFIAEKBTABCgVAAQoFUAEKBWABCgWAAQoFoAEKBbABCgXAAQoF4AEKBfABCg2gAQoNwAEKDeABCg4AAQoOMAEKDkABCg5QAQoOYAEKDnABCg6QAQoOsAEKDsABCg7QAQoO8AEKDwABChOQAQoV0AEKGEABChqAAQoasAEKGtABChrwAQobEAEKGzABChtQAQobYAEKG5ABCh0gAQoe8AEKHxABCh8wAQofUAEKH3ABCh+QAQofsAEKH9ABCiGgAQoh0AEKIgABCiIwAQoiYAEKIpABCiLAAQoi8AEKIxABCirAAQoq4AEKKwABCisgAQorUAEKK2ABCitwAQorgAEKK5ABCiuwAQor0AEKK+ABCivwAQosEAEKLCABCjPQAQoz8AEKNBABCjQwAQo0YAEKNHABCjSAAQo0kAEKNKABCjTAAQo04AEKNPABCjUAAQo1IAEKNTABCjzgAQo9AAEKPSABCj1AAQo9cAEKPYABCj2QAQo9oAEKPbABCj3QAQo98AEKPgABCj4QAQo+MAEKPkABCkXwAQpGEAEKRkABCkZgAQpGkAEKRqABCkawAQpGwAEKRtABCkbwAQpHEAEKRyABCkcwAQpHUAEKR2ABCk8QAQpPMAEKT1ABCk9wAQpPoAEKT7ABCk/AAQpP0AEKT+ABClAAAQpQIAEKUDABClBAAQpQYAEKUHABClggAQpYQAEKWGABCliAAQpYsAEKWMABCljQAQpY4AEKWPABClkQAQpZMAEKWUABCllQAQpZcAEKWYABCmEwAQphUAEKYXABCmGQAQphwAEKYdABCmHgAQph8AEKYgABCmIgAQpiQAEKYlABCmJgAQpigAEKYpABCmvAAQpt8AEKb/ABCnHwAQpyEAEKcjABCnJQAQpycAEKcqABCnKwAQpywAEKcvABCnMAAQpzIAEKczABCnNQAQpzgAEKc5ABCnOgAQpz0AEKc+ABCnQwAQp1wAEKdlABCnZwAQp2kAEKdyABCndQAQp3gAEKd6ABCnwwAQp+cAEKgOABCoMgAQqDUAEKg3ABCoOQAQqDsAEKg9ABCoPwAQqEAAEKhDABCoXAAQqH0AEKh/ABCogQAQqIMAEKiFABCohwAQqIkAEKiLABCojQAQqK4AEKixABCotAAQqLcAEKi6ABCovQAQqMAAEKjDABCoxgAQqMgAEKlDABCpRQAQqUcAEKlJABCpTAAQqU0AEKlOABCpTwAQqVAAEKlSABCpVAAQqVUAEKlWABCpWAAQqVkAEKnUABCp1gAQqdgAEKnaABCp3QAQqd4AEKnfABCp4AAQqeEAEKnjABCp5QAQqeYAEKnnABCp6QAQqeoAEKplABCqZwAQqmoAEKpsABCqbwAQqnAAEKpxABCqcgAQqnMAEKp1ABCqdwAQqngAEKp5ABCqewAQqnwAEKqVABCqlgAQqpcAEKqZABCrFAAQqxYAEKsYABCrGgAQqx0AEKseABCrHwAQqyAAEKshABCrIwAQqyUAEKsmABCrJwAQqykAEKsqABCrpQAQq6cAEKupABCrqwAQq64AEKuvABCrsAAQq7EAEKuyABCrtAAQq7YAEKu3ABCruAAQq7oAEKu7ABCsNgAQrDgAEKw6ABCsPAAQrD8AEKxAABCsQQAQrEIAEKxDABCsRQAQrEcAEKxIABCsSQAQrEsAEKxMABCsxwAQrMkAEKzLABCszQAQrNAAEKzRABCs0gAQrNMAEKzUABCs1gAQrNgAEKzZABCs2gAQrNwAEKzdABCtWAAQrVoAEK1cABCtXgAQrWEAEK1iABCtYwAQrWQAEK1lABCtZwAQrWkAEK1qABCtawAQrW0AEK1uABCttwAQrdsAEK4CABCuJgAQrikAEK4rABCuLQAQri8AEK4xABCuMwAQrjQAEK43ABCuUAAQrm0AEK5vABCucQAQrnMAEK51ABCudwAQrnkAEK57ABCumAAQrpsAEK6eABCuoQAQrqQAEK6nABCuqgAQrq0AEK6vABCvKgAQrywAEK8uABCvMAAQrzMAEK80ABCvNQAQrzYAEK83ABCvOQAQrzsAEK88ABCvPQAQrz8AEK9AABCvuwAQr70AEK+/ABCvwQAQr8QAEK/FABCvxgAQr8cAEK/IABCvygAQr8wAEK/NABCvzgAQr9AAEK/RABCwTAAQsE4AELBQABCwUgAQsFUAELBWABCwVwAQsFgAELBZABCwWwAQsF0AELBeABCwXwAQsGEAELBiABCw3QAQsN8AELDiABCw5AAQsOcAELDoABCw6QAQsOoAELDrABCw7QAQsO8AELDwABCw8QAQsPMAELD0ABCxbwAQsXEAELFzABCxdQAQsXgAELF5ABCxegAQsXsAELF8ABCxfgAQsYAAELGBABCxggAQsYQAELGFABCyAAAQsgIAELIEABCyBgAQsgkAELIKABCyCwAQsgwAELINABCyDwAQshEAELISABCyEwAQshUAELIWABCykQAQspMAELKVABCylwAQspoAELKbABCynAAQsp0AELKeABCyoAAQsqIAELKjABCypAAQsqYAELKnABCzOgAQs10AELN9ABCznQAQs58AELOhABCzowAQs6UAELOoABCzqQAQs6oAELOtABCzrgAQs7AAELOxABCzswAQs7YAELO3ABCzuAAQs7sAELO8ABCzwQAQs9oAELPjABCz5QAQs+cAELPwABCz8wAQs/YAELP4ABC0QQAQtGUAELSMABC0sAAQtLMAELS1ABC0twAQtLkAELS7ABC0vQAQtL4AELTBABC02gAQtPsAELT9ABC0/wAQtQEAELUDABC1BQAQtQcAELUJABC1CwAQtSwAELUvABC1MgAQtTUAELU4ABC1OwAQtT4AELVBABC1RAAQtUYAELXBABC1wwAQtcUAELXHABC1ygAQtcsAELXMABC1zQAQtc4AELXQABC10gAQtdMAELXUABC11gAQtdcAELZSABC2VAAQtlYAELZYABC2WwAQtlwAELZdABC2XgAQtl8AELZhABC2YwAQtmQAELZlABC2ZwAQtmgAELbjABC25QAQtugAELbqABC27QAQtu4AELbvABC28AAQtvEAELbzABC29QAQtvYAELb3ABC2+QAQtvoAELcTABC3FAAQtxUAELcXABC3kgAQt5QAELeWABC3mAAQt5sAELecABC3nQAQt54AELefABC3oQAQt6MAELekABC3pQAQt6cAELeoABC4IwAQuCUAELgnABC4KQAQuCwAELgtABC4LgAQuC8AELgwABC4MgAQuDQAELg1ABC4NgAQuDgAELg5ABC4tAAQuLYAELi4ABC4ugAQuL0AELi+ABC4vwAQuMAAELjBABC4wwAQuMUAELjGABC4xwAQuMkAELjKABC5RQAQuUcAELlJABC5SwAQuU4AELlPABC5UAAQuVEAELlSABC5VAAQuVYAELlXABC5WAAQuVoAELlbABC51gAQudgAELnaABC53AAQud8AELngABC54QAQueIAELnjABC55QAQuecAELnoABC56QAQuesAELnsABC6NQAQulkAELqAABC6pAAQuqcAELqpABC6qwAQuq0AELqvABC6sQAQurIAELq1ABC6zgAQuusAELrtABC67wAQuvEAELrzABC69QAQuvcAELr5ABC7FgAQuxkAELscABC7HwAQuyIAELslABC7KAAQuysAELstABC7qAAQu6oAELusABC7rgAQu7EAELuyABC7swAQu7QAELu1ABC7twAQu7kAELu6ABC7uwAQu70AELu+ABC8OQAQvDsAELw9ABC8PwAQvEIAELxDABC8RAAQvEUAELxGABC8SAAQvEoAELxLABC8TAAQvE4AELxPABC8ygAQvMwAELzOABC80AAQvNMAELzUABC81QAQvNYAELzXABC82QAQvNsAELzcABC83QAQvN8AELzgABC9WwAQvV0AEL1fABC9YQAQvWQAEL1lABC9ZgAQvWcAEL1oABC9agAQvWwAEL1tABC9bgAQvXAAEL1xABC97AAQve4AEL3wABC98gAQvfUAEL32ABC99wAQvfgAEL35ABC9+wAQvf0AEL3+ABC9/wAQvgEAEL4CABC+fQAQvn8AEL6BABC+gwAQvoYAEL6HABC+iAAQvokAEL6KABC+jAAQvo4AEL6PABC+kAAQvpIAEL6TABC/DgAQvxAAEL8SABC/FAAQvxcAEL8YABC/GQAQvxoAEL8bABC/HQAQvx8AEL8gABC/IQAQvyMAEL8kABC/twAQv9oAEL/6ABDAGgAQwBwAEMAeABDAIAAQwCIAEMAlABDAJgAQwCcAEMAqABDAKwAQwC0AEMAuABDAMAAQwDMAEMA0ABDANQAQwDgAEMA5ABDAPgAQwFcAEMBgABDAYgAQwGQAEMBtABDAcAAQwHMAEMB1ABDAvgAQwOIAEMEJABDBLQAQwTAAEMEyABDBNAAQwTYAEME4ABDBOgAQwTsAEME+ABDBVwAQwXgAEMF6ABDBfAAQwX4AEMGAABDBggAQwYQAEMGGABDBiAAQwakAEMGsABDBrwAQwbIAEMG1ABDBuAAQwbsAEMG+ABDBwQAQwcMAEMI+ABDCQAAQwkIAEMJEABDCRwAQwkgAEMJJABDCSgAQwksAEMJNABDCTwAQwlAAEMJRABDCUwAQwlQAEMLPABDC0QAQwtMAEMLVABDC2AAQwtkAEMLaABDC2wAQwtwAEMLeABDC4AAQwuEAEMLiABDC5AAQwuUAEMNgABDDYgAQw2UAEMNnABDDagAQw2sAEMNsABDDbQAQw24AEMNwABDDcgAQw3MAEMN0ABDDdgAQw3cAEMOQABDDkQAQw5IAEMOUABDEDwAQxBEAEMQTABDEFQAQxBgAEMQZABDEGgAQxBsAEMQcABDEHgAQxCAAEMQhABDEIgAQxCQAEMQlABDEoAAQxKIAEMSkABDEpgAQxKkAEMSqABDEqwAQxKwAEMStABDErwAQxLEAEMSyABDEswAQxLUAEMS2ABDFMQAQxTMAEMU1ABDFNwAQxToAEMU7ABDFPAAQxT0AEMU+ABDFQAAQxUIAEMVDABDFRAAQxUYAEMVHABDFwgAQxcQAEMXGABDFyAAQxcsAEMXMABDFzQAQxc4AEMXPABDF0QAQxdMAEMXUABDF1QAQxdcAEMXYABDGUwAQxlUAEMZXABDGWQAQxlwAEMZdABDGXgAQxl8AEMZgABDGYgAQxmQAEMZlABDGZgAQxmgAEMZpABDGsgAQxtYAEMb9ABDHIQAQxyQAEMcmABDHKAAQxyoAEMcsABDHLgAQxy8AEMcyABDHSwAQx2gAEMdqABDHbAAQx24AEMdwABDHcgAQx3QAEMd2ABDHkwAQx5YAEMeZABDHnAAQx58AEMeiABDHpQAQx6gAEMeqABDIJQAQyCcAEMgpABDIKwAQyC4AEMgvABDIMAAQyDEAEMgyABDINAAQyDYAEMg3ABDIOAAQyDoAEMg7ABDItgAQyLgAEMi6ABDIvAAQyL8AEMjAABDIwQAQyMIAEMjDABDIxQAQyMcAEMjIABDIyQAQyMsAEMjMABDJRwAQyUkAEMlLABDJTQAQyVAAEMlRABDJUgAQyVMAEMlUABDJVgAQyVgAEMlZABDJWgAQyVwAEMldABDJ2AAQydoAEMndABDJ3wAQyeIAEMnjABDJ5AAQyeUAEMnmABDJ6AAQyeoAEMnrABDJ7AAQye4AEMnvABDKagAQymwAEMpuABDKcAAQynMAEMp0ABDKdQAQynYAEMp3ABDKeQAQynsAEMp8ABDKfQAQyn8AEMqAABDK+wAQyv0AEMr/ABDLAQAQywQAEMsFABDLBgAQywcAEMsIABDLCgAQywwAEMsNABDLDgAQyxAAEMsRABDLjAAQy44AEMuQABDLkgAQy5UAEMuWABDLlwAQy5gAEMuZABDLmwAQy50AEMueABDLnwAQy6EAEMuiABDMNQAQzFgAEMx4ABDMmAAQzJoAEMycABDMngAQzKAAEMyjABDMpAAQzKUAEMyoABDMqQAQzKsAEMysABDMrwAQzLIAEMyzABDMtAAQzLcAEMy4ABDMvQAQzNYAEMzfABDM4QAQzOQAEMztABDM8AAQzPMAEMz1ABDNPgAQzWIAEM2JABDNrQAQzbAAEM2yABDNtAAQzbYAEM24ABDNugAQzbsAEM2+ABDN1wAQzfgAEM36ABDN/AAQzf4AEM4AABDOAgAQzgQAEM4GABDOCAAQzikAEM4sABDOLwAQzjIAEM41ABDOOAAQzjsAEM4+ABDOQQAQzkMAEM6+ABDOwAAQzsIAEM7EABDOxwAQzsgAEM7JABDOygAQzssAEM7NABDOzwAQztAAEM7RABDO0wAQztQAEM9PABDPUQAQz1MAEM9VABDPWAAQz1kAEM9aABDPWwAQz1wAEM9eABDPYAAQz2EAEM9iABDPZAAQz2UAEM/gABDP4gAQz+UAEM/nABDP6gAQz+sAEM/sABDP7QAQz+4AEM/wABDP8gAQz/MAEM/0ABDP9gAQz/cAENAQABDQEQAQ0BIAENAUABDQjwAQ0JEAENCTABDQlQAQ0JgAENCZABDQmgAQ0JsAENCcABDQngAQ0KAAENChABDQogAQ0KQAENClABDRIAAQ0SIAENEkABDRJgAQ0SkAENEqABDRKwAQ0SwAENEtABDRLwAQ0TEAENEyABDRMwAQ0TUAENE2ABDRsQAQ0bMAENG1ABDRtwAQ0boAENG7ABDRvAAQ0b0AENG+ABDRwAAQ0cIAENHDABDRxAAQ0cYAENHHABDSQgAQ0kQAENJGABDSSAAQ0ksAENJMABDSTQAQ0k4AENJPABDSUQAQ0lMAENJUABDSVQAQ0lcAENJYABDS0wAQ0tUAENLXABDS2QAQ0twAENLdABDS3gAQ0t8AENLgABDS4gAQ0uQAENLlABDS5gAQ0ugAENLpABDTMgAQ01YAENN9ABDToQAQ06QAENOnABDTqQAQ06sAENOtABDTrwAQ07AAENOzABDTzAAQ0+kAENPsABDT7wAQ0/IAENP1ABDT+AAQ0/sAENP+ABDUGwAQ1B4AENQhABDUJAAQ1CcAENQqABDULQAQ1DAAENQyABDUrQAQ1K8AENSyABDUtAAQ1LcAENS4ABDUuQAQ1LoAENS7ABDUvQAQ1MAAENTBABDUwgAQ1MQAENTFABDVQAAQ1UIAENVFABDVRwAQ1UoAENVLABDVTAAQ1U0AENVOABDVUAAQ1VMAENVUABDVVQAQ1VcAENVYABDV0wAQ1dUAENXYABDV2gAQ1d0AENXeABDV3wAQ1eAAENXhABDV4wAQ1eYAENXnABDV6AAQ1eoAENXrABDWZgAQ1mgAENZrABDWbQAQ1nAAENZxABDWcgAQ1nMAENZ0ABDWdgAQ1nkAENZ6ABDWewAQ1n0AENZ+ABDW+QAQ1vsAENb9ABDW/wAQ1wIAENcDABDXBAAQ1wUAENcGABDXCAAQ1wsAENcMABDXDQAQ1w8AENcQABDXiwAQ140AENePABDXkQAQ15QAENeVABDXlgAQ15cAENeYABDXmgAQ150AENeeABDXnwAQ16EAENeiABDYHQAQ2B8AENgiABDYJAAQ2CcAENgoABDYKQAQ2CoAENgrABDYLQAQ2DAAENgxABDYMgAQ2DQAENg1ABDYRgAQ2EcAENhJABDYxAAQ2MYAENjIABDYygAQ2M0AENjOABDYzwAQ2NAAENjRABDY0wAQ2NYAENjXABDY2AAQ2NoAENjbABDZVgAQ2VgAENlaABDZXAAQ2V8AENlgABDZYQAQ2WIAENljABDZZQAQ2WgAENlpABDZagAQ2WwAENltABDZ6AAQ2eoAENntABDZ7wAQ2fIAENnzABDZ9AAQ2fUAENn2ABDZ+AAQ2fsAENn8ABDZ/QAQ2f8AENoAABDakwAQ2rYAENrWABDa9gAQ2vgAENr6ABDa/AAQ2v4AENsBABDbAgAQ2wMAENsGABDbBwAQ2wkAENsKABDbDAAQ2w8AENsQABDbEQAQ2xQAENsVABDbGgAQ2zMAENs8ABDbPgAQ20AAENtJABDbTAAQ208AENtRABDbmgAQ274AENvlABDcCQAQ3AwAENwOABDcEAAQ3BIAENwUABDcFgAQ3BcAENwaABDcMwAQ3FQAENxWABDcWAAQ3FoAENxcABDcXgAQ3GAAENxiABDcZAAQ3IUAENyIABDciwAQ3I4AENyRABDclAAQ3JcAENyaABDcnQAQ3J8AEN0aABDdHAAQ3R4AEN0gABDdIwAQ3SQAEN0lABDdJgAQ3ScAEN0pABDdKwAQ3SwAEN0tABDdLwAQ3TAAEN2rABDdrQAQ3a8AEN2xABDdtAAQ3bUAEN22ABDdtwAQ3bgAEN26ABDdvAAQ3b0AEN2+ABDdwAAQ3cEAEN48ABDePgAQ3kEAEN5DABDeRgAQ3kcAEN5IABDeSQAQ3koAEN5MABDeTgAQ3k8AEN5QABDeUgAQ3lMAEN5sABDebQAQ3m4AEN5wABDe6wAQ3u0AEN7vABDe8QAQ3vQAEN71ABDe9gAQ3vcAEN74ABDe+gAQ3vwAEN79ABDe/gAQ3wAAEN8BABDffAAQ334AEN+AABDfggAQ34UAEN+GABDfhwAQ34gAEN+JABDfiwAQ340AEN+OABDfjwAQ35EAEN+SABDgDQAQ4A8AEOARABDgEwAQ4BYAEOAXABDgGAAQ4BkAEOAaABDgHAAQ4B4AEOAfABDgIAAQ4CIAEOAjABDgngAQ4KAAEOCiABDgpAAQ4KcAEOCoABDgqQAQ4KoAEOCrABDgrQAQ4K8AEOCwABDgsQAQ4LMAEOC0ABDhLwAQ4TEAEOEzABDhNQAQ4TgAEOE5ABDhOgAQ4TsAEOE8ABDhPgAQ4UAAEOFBABDhQgAQ4UQAEOFFABDhjgAQ4bIAEOHZABDh/QAQ4gAAEOICABDiBAAQ4gYAEOIIABDiCgAQ4gsAEOIOABDiJwAQ4kQAEOJGABDiSAAQ4koAEOJMABDiTgAQ4lAAEOJSABDibwAQ4nIAEOJ1ABDieAAQ4nsAEOJ+ABDigQAQ4oQAEOKGABDjAQAQ4wMAEOMFABDjBwAQ4woAEOMLABDjDAAQ4w0AEOMOABDjEAAQ4xIAEOMTABDjFAAQ4xYAEOMXABDjkgAQ45QAEOOWABDjmAAQ45sAEOOcABDjnQAQ454AEOOfABDjoQAQ46MAEOOkABDjpQAQ46cAEOOoABDkIwAQ5CUAEOQnABDkKQAQ5CwAEOQtABDkLgAQ5C8AEOQwABDkMgAQ5DQAEOQ1ABDkNgAQ5DgAEOQ5ABDktAAQ5LYAEOS5ABDkuwAQ5L4AEOS/ABDkwAAQ5MEAEOTCABDkxAAQ5MYAEOTHABDkyAAQ5MoAEOTLABDlRgAQ5UgAEOVKABDlTAAQ5U8AEOVQABDlUQAQ5VIAEOVTABDlVQAQ5VcAEOVYABDlWQAQ5VsAEOVcABDl1wAQ5dkAEOXbABDl3QAQ5eAAEOXhABDl4gAQ5eMAEOXkABDl5gAQ5egAEOXpABDl6gAQ5ewAEOXtABDmaAAQ5moAEOZsABDmbgAQ5nEAEOZyABDmcwAQ5nQAEOZ1ABDmdwAQ5nkAEOZ6ABDmewAQ5n0AEOZ+ABDnEQAQ5zQAEOdUABDndAAQ53YAEOd4ABDnegAQ53wAEOd/ABDngAAQ54EAEOeEABDnhQAQ54cAEOeIABDnigAQ540AEOeOABDnjwAQ55IAEOeTABDnmAAQ57EAEOe6ABDnvAAQ574AEOfHABDnygAQ580AEOfPABDoGAAQ6DwAEOhjABDohwAQ6IoAEOiMABDojgAQ6JAAEOiSABDolAAQ6JUAEOiYABDosQAQ6NIAEOjUABDo1gAQ6NgAEOjaABDo3AAQ6N4AEOjgABDo4gAQ6QMAEOkGABDpCQAQ6QwAEOkPABDpEgAQ6RUAEOkYABDpGwAQ6R0AEOmYABDpmgAQ6ZwAEOmeABDpoQAQ6aIAEOmjABDppAAQ6aUAEOmnABDpqQAQ6aoAEOmrABDprQAQ6a4AEOopABDqKwAQ6i0AEOovABDqMgAQ6jMAEOo0ABDqNQAQ6jYAEOo4ABDqOgAQ6jsAEOo8ABDqPgAQ6j8AEOq6ABDqvAAQ6r8AEOrBABDqxAAQ6sUAEOrGABDqxwAQ6sgAEOrKABDqzAAQ6s0AEOrOABDq0AAQ6tEAEOrqABDq6wAQ6uwAEOruABDraQAQ62sAEOttABDrbwAQ63IAEOtzABDrdAAQ63UAEOt2ABDreAAQ63oAEOt7ABDrfAAQ634AEOt/ABDr+gAQ6/wAEOv+ABDsAAAQ7AMAEOwEABDsBQAQ7AYAEOwHABDsCQAQ7AsAEOwMABDsDQAQ7A8AEOwQABDsiwAQ7I0AEOyPABDskQAQ7JQAEOyVABDslgAQ7JcAEOyYABDsmgAQ7JwAEOydABDsngAQ7KAAEOyhABDtHAAQ7R4AEO0gABDtIgAQ7SUAEO0mABDtJwAQ7SgAEO0pABDtKwAQ7S0AEO0uABDtLwAQ7TEAEO0yABDtrQAQ7a8AEO2xABDtswAQ7bYAEO23ABDtuAAQ7bkAEO26ABDtvAAQ7b4AEO2/ABDtwAAQ7cIAEO3DABDuDAAQ7jAAEO5XABDuewAQ7n4AEO6AABDuggAQ7oQAEO6GABDuiAAQ7okAEO6MABDupQAQ7sIAEO7EABDuxgAQ7sgAEO7KABDuzAAQ7s4AEO7QABDu7QAQ7vAAEO7zABDu9gAQ7vkAEO78ABDu/wAQ7wIAEO8EABDvfwAQ74EAEO+DABDvhQAQ74gAEO+JABDvigAQ74sAEO+MABDvjgAQ75AAEO+RABDvkgAQ75QAEO+VABDwEAAQ8BIAEPAUABDwFgAQ8BkAEPAaABDwGwAQ8BwAEPAdABDwHwAQ8CEAEPAiABDwIwAQ8CUAEPAmABDwoQAQ8KMAEPClABDwpwAQ8KoAEPCrABDwrAAQ8K0AEPCuABDwsAAQ8LIAEPCzABDwtAAQ8LYAEPC3ABDxMgAQ8TQAEPE3ABDxOQAQ8TwAEPE9ABDxPgAQ8T8AEPFAABDxQgAQ8UQAEPFFABDxRgAQ8UgAEPFJABDxxAAQ8cYAEPHIABDxygAQ8c0AEPHOABDxzwAQ8dAAEPHRABDx0wAQ8dUAEPHWABDx1wAQ8dkAEPHaABDyVQAQ8lcAEPJZABDyWwAQ8l4AEPJfABDyYAAQ8mEAEPJiABDyZAAQ8mYAEPJnABDyaAAQ8moAEPJrABDy5gAQ8ugAEPLqABDy7AAQ8u8AEPLwABDy8QAQ8vIAEPLzABDy9QAQ8vcAEPL4ABDy+QAQ8vsAEPL8ABDzjwAQ87IAEPPSABDz8gAQ8/QAEPP2ABDz+AAQ8/oAEPP9ABDz/gAQ8/8AEPQCABD0AwAQ9AUAEPQGABD0CAAQ9AsAEPQMABD0DQAQ9BAAEPQRABD0FgAQ9C8AEPQ4ABD0OgAQ9DwAEPRFABD0SAAQ9EsAEPRNABD0lgAQ9LoAEPThABD1BQAQ9QgAEPUKABD1DAAQ9Q4AEPUQABD1EgAQ9RMAEPUWABD1LwAQ9VAAEPVSABD1VAAQ9VYAEPVYABD1WgAQ9VwAEPVeABD1YAAQ9YEAEPWEABD1hwAQ9YoAEPWNABD1kAAQ9ZMAEPWWABD1mQAQ9ZsAEPYWABD2GAAQ9hoAEPYcABD2HwAQ9iAAEPYhABD2IgAQ9iMAEPYlABD2JwAQ9igAEPYpABD2KwAQ9iwAEPanABD2qQAQ9qsAEPatABD2sAAQ9rEAEPayABD2swAQ9rQAEPa2ABD2uAAQ9rkAEPa6ABD2vAAQ9r0AEPc4ABD3OgAQ9z0AEPc/ABD3QgAQ90MAEPdEABD3RQAQ90YAEPdIABD3SgAQ90sAEPdMABD3TgAQ908AEPdoABD3aQAQ92oAEPdsABD35wAQ9+kAEPfrABD37QAQ9/AAEPfxABD38gAQ9/MAEPf0ABD39gAQ9/gAEPf5ABD3+gAQ9/wAEPf9ABD4eAAQ+HoAEPh8ABD4fgAQ+IEAEPiCABD4gwAQ+IQAEPiFABD4hwAQ+IkAEPiKABD4iwAQ+I0AEPiOABD5CQAQ+QsAEPkNABD5DwAQ+RIAEPkTABD5FAAQ+RUAEPkWABD5GAAQ+RoAEPkbABD5HAAQ+R4AEPkfABD5mgAQ+ZwAEPmeABD5oAAQ+aMAEPmkABD5pQAQ+aYAEPmnABD5qQAQ+asAEPmsABD5rQAQ+a8AEPmwABD6KwAQ+i0AEPovABD6MQAQ+jQAEPo1ABD6NgAQ+jcAEPo4ABD6OgAQ+jwAEPo9ABD6PgAQ+kAAEPpBABD6igAQ+q4AEPrVABD6+QAQ+vwAEPr+ABD7AAAQ+wIAEPsEABD7BgAQ+wcAEPsKABD7IwAQ+0AAEPtCABD7RAAQ+0YAEPtIABD7SgAQ+0wAEPtOABD7awAQ+24AEPtxABD7dAAQ+3cAEPt6ABD7fQAQ+4AAEPuCABD7/QAQ+/8AEPwBABD8AwAQ/AYAEPwHABD8CAAQ/AkAEPwKABD8DAAQ/A4AEPwPABD8EAAQ/BIAEPwTABD8jgAQ/JAAEPySABD8lAAQ/JcAEPyYABD8mQAQ/JoAEPybABD8nQAQ/J8AEPygABD8oQAQ/KMAEPykABD9HwAQ/SEAEP0jABD9JQAQ/SgAEP0pABD9KgAQ/SsAEP0sABD9LgAQ/TAAEP0xABD9MgAQ/TQAEP01ABD9sAAQ/bIAEP20ABD9tgAQ/bkAEP26ABD9uwAQ/bwAEP29ABD9vwAQ/cEAEP3CABD9wwAQ/cUAEP3GABD+QQAQ/kMAEP5FABD+RwAQ/koAEP5LABD+TAAQ/k0AEP5OABD+UAAQ/lIAEP5TABD+VAAQ/lYAEP5XABD+0gAQ/tQAEP7WABD+2AAQ/tsAEP7cABD+3QAQ/t4AEP7fABD+4QAQ/uMAEP7kABD+5QAQ/ucAEP7oABD/YwAQ/2UAEP9nABD/aQAQ/2wAEP9tABD/bgAQ/28AEP9wABD/cgAQ/3QAEP91ABD/dgAQ/3gAEP95ABEADAARAC8AEQBPABEAbwARAHEAEQBzABEAdQARAHcAEQB6ABEAewARAHwAEQB/ABEAgAARAIIAEQCDABEAhQARAIgAEQCJABEAigARAI0AEQCOABEAkwARAKwAEQC1ABEAtwARALkAEQDCABEAxQARAMgAEQDKABEBEwARATcAEQFeABEBggARAYUAEQGHABEBiQARAYsAEQGNABEBjwARAZAAEQGTABEBrAARAc0AEQHPABEB0QARAdMAEQHVABEB1wARAdkAEQHbABEB3QARAf4AEQIBABECBAARAgcAEQIKABECDQARAhAAEQITABECFgARAhgAEQKTABEClQARApcAEQKZABECnAARAp0AEQKeABECnwARAqAAEQKiABECpAARAqUAEQKmABECqAARAqkAEQMkABEDJgARAygAEQMqABEDLQARAy4AEQMvABEDMAARAzEAEQMzABEDNQARAzYAEQM3ABEDOQARAzoAEQO1ABEDtwARA7oAEQO8ABEDvwARA8AAEQPBABEDwgARA8MAEQPFABEDxwARA8gAEQPJABEDywARA8wAEQPlABED5gARA+cAEQPpABEEZAARBGYAEQRoABEEagARBG0AEQRuABEEbwARBHAAEQRxABEEcwARBHUAEQR2ABEEdwARBHkAEQR6ABEE9QARBPcAEQT5ABEE+wARBP4AEQT/ABEFAAARBQEAEQUCABEFBAARBQYAEQUHABEFCAARBQoAEQULABEFhgARBYgAEQWKABEFjAARBY8AEQWQABEFkQARBZIAEQWTABEFlQARBZcAEQWYABEFmQARBZsAEQWcABEGFwARBhkAEQYbABEGHQARBiAAEQYhABEGIgARBiMAEQYkABEGJgARBigAEQYpABEGKgARBiwAEQYtABEGqAARBqoAEQasABEGrgARBrEAEQayABEGswARBrQAEQa1ABEGtwARBrkAEQa6ABEGuwARBr0AEQa+ABEHBwARBysAEQdSABEHdgARB3kAEQd7ABEHfQARB38AEQeBABEHgwARB4QAEQeHABEHoAARB70AEQe/ABEHwQARB8MAEQfFABEHxwARB8kAEQfLABEH6AARB+sAEQfuABEH8QARB/QAEQf3ABEH+gARB/0AEQf/ABEIegARCHwAEQh+ABEIgAARCIMAEQiEABEIhQARCIYAEQiHABEIiQARCIsAEQiMABEIjQARCI8AEQiQABEJCwARCQ0AEQkPABEJEQARCRQAEQkVABEJFgARCRcAEQkYABEJGgARCRwAEQkdABEJHgARCSAAEQkhABEJnAARCZ4AEQmgABEJogARCaUAEQmmABEJpwARCagAEQmpABEJqwARCa0AEQmuABEJrwARCbEAEQmyABEKLQARCi8AEQoyABEKNAARCjcAEQo4ABEKOQARCjoAEQo7ABEKPQARCj8AEQpAABEKQQARCkMAEQpEABEKvwARCsEAEQrDABEKxQARCsgAEQrJABEKygARCssAEQrMABEKzgARCtAAEQrRABEK0gARCtQAEQrVABELUAARC1IAEQtUABELVgARC1kAEQtaABELWwARC1wAEQtdABELXwARC2EAEQtiABELYwARC2UAEQtmABEL4QARC+MAEQvlABEL5wARC+oAEQvrABEL7AARC+0AEQvuABEL8AARC/IAEQvzABEL9AARC/YAEQv3ABEMigARDK0AEQzNABEM7QARDO8AEQzxABEM8wARDPUAEQz4ABEM+QARDPoAEQz9ABEM/gARDQAAEQ0BABENAwARDQYAEQ0HABENCAARDQsAEQ0MABENEQARDSoAEQ0zABENNQARDTcAEQ1AABENQwARDUYAEQ1IABENkQARDbUAEQ3cABEOAAARDgMAEQ4FABEOBwARDgkAEQ4LABEODQARDg4AEQ4RABEOKgARDksAEQ5NABEOTwARDlEAEQ5TABEOVQARDlcAEQ5ZABEOWwARDnwAEQ5/ABEOggARDoUAEQ6IABEOiwARDo4AEQ6RABEOlAARDpYAEQ8RABEPEwARDxUAEQ8XABEPGgARDxsAEQ8cABEPHQARDx4AEQ8gABEPIgARDyMAEQ8kABEPJgARDycAEQ+iABEPpAARD6YAEQ+oABEPqwARD6wAEQ+tABEPrgARD68AEQ+xABEPswARD7QAEQ+1ABEPtwARD7gAERAzABEQNQAREDgAERA6ABEQPQARED4AERA/ABEQQAAREEEAERBDABEQRQAREEYAERBHABEQSQAREEoAERBjABEQZAAREGUAERBnABEQ4gAREOQAERDmABEQ6AAREOsAERDsABEQ7QAREO4AERDvABEQ8QAREPMAERD0ABEQ9QAREPcAERD4ABERcwAREXUAERF3ABEReQAREXwAERF9ABERfgAREX8AERGAABERggAREYQAERGFABERhgAREYgAERGJABESBAAREgYAERIIABESCgAREg0AERIOABESDwAREhAAERIRABESEwAREhUAERIWABESFwAREhkAERIaABESlQAREpcAERKZABESmwAREp4AERKfABESoAAREqEAERKiABESpAAREqYAERKnABESqAAREqoAERKrABETJgAREygAERMqABETLAAREy8AERMwABETMQAREzIAERMzABETNQAREzcAERM4ABETOQAREzsAERM8ABEThQARE6kAERPQABET9AARE/cAERP5ABET+wARE/0AERP/ABEUAQARFAIAERQFABEUHgARFDsAERQ9ABEUPwARFEEAERRDABEURQARFEcAERRJABEUZgARFGkAERRsABEUbwARFHIAERR1ABEUeAARFHsAERR9ABEU+AARFPoAERT8ABEU/gARFQEAERUCABEVAwARFQQAERUFABEVBwARFQkAERUKABEVCwARFQ0AERUOABEViQARFYsAERWNABEVjwARFZIAERWTABEVlAARFZUAERWWABEVmAARFZoAERWbABEVnAARFZ4AERWfABEWGgARFhwAERYeABEWIAARFiMAERYkABEWJQARFiYAERYnABEWKQARFisAERYsABEWLQARFi8AERYwABEWqwARFq0AERavABEWsQARFrQAERa1ABEWtgARFrcAERa4ABEWugARFrwAERa9ABEWvgARFsAAERbBABEXPAARFz4AERdAABEXQgARF0UAERdGABEXRwARF0gAERdJABEXSwARF00AERdOABEXTwARF1EAERdSABEXzQARF88AERfRABEX0wARF9YAERfXABEX2AARF9kAERfaABEX3AARF94AERffABEX4AARF+IAERfjABEYXgARGGAAERhiABEYZAARGGcAERhoABEYaQARGGoAERhrABEYbQARGG8AERhwABEYcQARGHMAERh0ABEZBwARGSoAERlKABEZagARGWwAERluABEZcAARGXIAERl1ABEZdgARGXcAERl6ABEZewARGX0AERl+ABEZgAARGYMAERmEABEZhQARGYgAERmJABEZjgARGacAERmwABEZsgARGbQAERm9ABEZwAARGcMAERnFABEaDgARGjIAERpZABEafQARGoAAERqCABEahAARGoYAERqIABEaigARGosAERqOABEapwARGsgAERrKABEazAARGs4AERrQABEa0gARGtQAERrWABEa2AARGvkAERr8ABEa/wARGwIAERsFABEbCAARGwsAERsOABEbEQARGxMAERuOABEbkAARG5IAERuUABEblwARG5gAERuZABEbmgARG5sAERudABEbnwARG6AAERuhABEbowARG6QAERwfABEcIQARHCMAERwlABEcKAARHCkAERwqABEcKwARHCwAERwuABEcMAARHDEAERwyABEcNAARHDUAERywABEcsgARHLUAERy3ABEcugARHLsAERy8ABEcvQARHL4AERzAABEcwgARHMMAERzEABEcxgARHMcAERzgABEc4QARHOIAERzkABEdXwARHWEAER1jABEdZQARHWgAER1pABEdagARHWsAER1sABEdbgARHXAAER1xABEdcgARHXQAER11ABEd8AARHfIAER30ABEd9gARHfkAER36ABEd+wARHfwAER39ABEd/wARHgEAER4CABEeAwARHgUAER4GABEegQARHoMAER6FABEehwARHooAER6LABEejAARHo0AER6OABEekAARHpIAER6TABEelAARHpYAER6XABEfEgARHxQAER8WABEfGAARHxsAER8cABEfHQARHx4AER8fABEfIQARHyMAER8kABEfJQARHycAER8oABEfowARH6UAER+nABEfqQARH6wAER+tABEfrgARH68AER+wABEfsgARH7QAER+1ABEftgARH7gAER+5ABEgAgARICYAESBNABEgcQARIHQAESB2ABEgeAARIHoAESB8ABEgfgARIH8AESCCABEgmwARILgAESC6ABEgvAARIL4AESDAABEgwgARIMQAESDGABEg4wARIOYAESDpABEg7AARIO8AESDyABEg9QARIPgAESD6ABEhdQARIXcAESF5ABEhewARIX4AESF/ABEhgAARIYEAESGCABEhhAARIYYAESGHABEhiAARIYoAESGLABEiBgARIggAESIKABEiDAARIg8AESIQABEiEQARIhIAESITABEiFQARIhcAESIYABEiGQARIhsAESIcABEilwARIpkAESKbABEinQARIqAAESKhABEiogARIqMAESKkABEipgARIqgAESKpABEiqgARIqwAESKtABEjKAARIyoAESMsABEjLgARIzEAESMyABEjMwARIzQAESM1ABEjNwARIzkAESM6ABEjOwARIz0AESM+ABEjuQARI7sAESO9ABEjvwARI8IAESPDABEjxAARI8UAESPGABEjyAARI8oAESPLABEjzAARI84AESPPABEkSgARJEwAESROABEkUAARJFMAESRUABEkVQARJFYAESRXABEkWQARJFsAESRcABEkXQARJF8AESRgABEk2wARJN0AESTfABEk4QARJOQAESTlABEk5gARJOcAESToABEk6gARJOwAESTtABEk7gARJPAAESTxABElAgARJQMAESUFABEliAARJawAESXQABEl8wARJhoAESY6ABEmYQARJogAESaoABEmzAARJvAAESbyABEm9QARJvcAESb5ABEm+wARJv4AEScBABEnAwARJwUAEScIABEnCgARJwwAEScPABEnEgARJxMAEScYABEnMQARJzYAESc4ABEnPQARJ0AAESdCABEniwARJ68AESfWABEn+gARJ/0AESf/ABEoAQARKAMAESgFABEoBwARKAgAESgLABEoJAARKEkAEShLABEoTQARKE8AEShRABEoUwARKFUAEShXABEoWQARKFsAESiAABEogwARKIYAESiJABEojAARKI8AESiSABEolQARKJgAESibABEonQARKRgAESkaABEpHQARKR8AESkiABEpIwARKSQAESklABEpJgARKSgAESkqABEpKwARKSwAESkuABEpLwARKUAAESlBABEpQwARKb4AESnAABEpwgARKcQAESnHABEpyAARKckAESnKABEpywARKc0AESnPABEp0AARKdEAESnTABEp1AARKk8AESpRABEqVAARKlYAESpZABEqWgARKlsAESpcABEqXQARKl8AESphABEqYgARKmMAESplABEqZgARKncAESp8ABEqfwARKoEAESqSABEqmwARKp4AESqhABEqowARKrYAESrBABErPAARKz4AEStAABErQgARK0UAEStGABErRwARK0gAEStJABErSwARK00AEStOABErTwARK1EAEStSABErzQARK88AESvSABEr1AARK9cAESvYABEr2QARK9oAESvbABEr3QARK98AESvgABEr4QARK+MAESvkABEr9QARK/YAESv4ABEscwARLHUAESx3ABEseQARLHwAESx9ABEsfgARLH8AESyAABEsggARLIQAESyFABEshgARLIgAESyJABEtBAARLQYAES0JABEtCwARLQ4AES0PABEtEAARLREAES0SABEtFAARLRYAES0XABEtGAARLRoAES0bABEtNAARLTUAES02ABEtOAARLbMAES21ABEttwARLbkAES28ABEtvQARLb4AES2/ABEtwAARLcIAES3EABEtxQARLcYAES3IABEtyQARLkQAES5GABEuSQARLksAES5OABEuTwARLlAAES5RABEuUgARLlQAES5WABEuVwARLlgAES5aABEuWwARLoIAES6bABEupAARLqcAES6qABEuswARLrYAES65ABEuuwARLs4AES9hABEvhAARL6QAES/EABEvxgARL8gAES/KABEvzAARL88AES/QABEv0QARL9QAES/VABEv1wARL9gAES/aABEv3QARL94AES/fABEv4gARL+MAES/oABEwAQARMAoAETAMABEwDgARMBcAETAaABEwHQARMB8AETBoABEwjAARMLMAETDXABEw2gARMNwAETDeABEw4AARMOIAETDkABEw5QARMOgAETEBABExIgARMSQAETEmABExKAARMSoAETEsABExLgARMTAAETEyABExUwARMVYAETFZABExXAARMV8AETFiABExZQARMWgAETFrABExbQARMegAETHqABEx7AARMe4AETHxABEx8gARMfMAETH0ABEx9QARMfcAETH5ABEx+gARMfsAETH9ABEx/gARMnkAETJ7ABEyfQARMn8AETKCABEygwARMoQAETKFABEyhgARMogAETKKABEyiwARMowAETKOABEyjwARMwoAETMMABEzDwARMxEAETMUABEzFQARMxYAETMXABEzGAARMxoAETMcABEzHQARMx4AETMgABEzIQARMzoAETM7ABEzPAARMz4AETO5ABEzuwARM70AETO/ABEzwgARM8MAETPEABEzxQARM8YAETPIABEzygARM8sAETPMABEzzgARM88AETRKABE0TAARNE4AETRQABE0UwARNFQAETRVABE0VgARNFcAETRZABE0WwARNFwAETRdABE0XwARNGAAETTbABE03QARNN8AETThABE05AARNOUAETTmABE05wARNOgAETTqABE07AARNO0AETTuABE08AARNPEAETVsABE1bgARNXAAETVyABE1dQARNXYAETV3ABE1eAARNXkAETV7ABE1fQARNX4AETV/ABE1gQARNYIAETX9ABE1/wARNgEAETYDABE2BgARNgcAETYIABE2CQARNgoAETYMABE2DgARNg8AETYQABE2EgARNhMAETZcABE2gAARNqcAETbLABE2zgARNtAAETbSABE21AARNtYAETbYABE22QARNtwAETb1ABE3EgARNxQAETcWABE3GAARNxoAETccABE3HgARNyAAETc9ABE3QAARN0MAETdGABE3SQARN0wAETdPABE3UgARN1QAETfPABE30QARN9MAETfVABE32AARN9kAETfaABE32wARN9wAETfeABE34AARN+EAETfiABE35AARN+UAEThgABE4YgAROGQAEThmABE4aQAROGoAEThrABE4bAAROG0AEThvABE4cQAROHIAEThzABE4dQAROHYAETjxABE48wAROPUAETj3ABE4+gAROPsAETj8ABE4/QAROP4AETkAABE5AgAROQMAETkEABE5BgAROQcAETmCABE5hAAROYcAETmJABE5jAAROY0AETmOABE5jwAROZAAETmSABE5lAAROZUAETmWABE5mAAROZkAEToUABE6FgAROhgAEToaABE6HQAROh4AETofABE6IAAROiEAETojABE6JQAROiYAETonABE6KQAROioAETqlABE6pwAROqkAETqrABE6rgAROq8AETqwABE6sQAROrIAETq0ABE6tgAROrcAETq4ABE6ugAROrsAETs2ABE7OAAROzoAETs8ABE7PwARO0AAETtBABE7QgARO0MAETtFABE7RwARO0gAETtJABE7SwARO0wAETvfABE8AgARPCIAETxCABE8RAARPEYAETxIABE8SgARPE0AETxOABE8TwARPFIAETxTABE8VQARPFYAETxYABE8WwARPFwAETxdABE8YAARPGEAETxmABE8fwARPIgAETyKABE8jAARPJUAETyYABE8mwARPJ0AETzmABE9CgARPTEAET1VABE9WAARPVoAET1cABE9XgARPWAAET1iABE9YwARPWYAET1/ABE9oAARPaIAET2kABE9pgARPagAET2qABE9rAARPa4AET2wABE90QARPdQAET3XABE92gARPd0AET3gABE94wARPeYAET3pABE96wARPmYAET5oABE+agARPmwAET5vABE+cAARPnEAET5yABE+cwARPnUAET53ABE+eAARPnkAET57ABE+fAARPvcAET75ABE++wARPv0AET8AABE/AQARPwIAET8DABE/BAARPwYAET8IABE/CQARPwoAET8MABE/DQARP4gAET+KABE/jQARP48AET+SABE/kwARP5QAET+VABE/lgARP5gAET+aABE/mwARP5wAET+eABE/nwARP7gAET+5ABE/ugARP7wAEUA3ABFAOQARQDsAEUA9ABFAQAARQEEAEUBCABFAQwARQEQAEUBGABFASAARQEkAEUBKABFATAARQE0AEUDIABFAygARQMwAEUDOABFA0QARQNIAEUDTABFA1AARQNUAEUDXABFA2QARQNoAEUDbABFA3QARQN4AEUFZABFBWwARQV0AEUFfABFBYgARQWMAEUFkABFBZQARQWYAEUFoABFBagARQWsAEUFsABFBbgARQW8AEUHqABFB7AARQe4AEUHwABFB8wARQfQAEUH1ABFB9gARQfcAEUH5ABFB+wARQfwAEUH9ABFB/wARQgAAEUJ7ABFCfQARQn8AEUKBABFChAARQoUAEUKGABFChwARQogAEUKKABFCjAARQo0AEUKOABFCkAARQpEAEULaABFC/gARQyUAEUNJABFDTAARQ04AEUNQABFDUgARQ1QAEUNWABFDVwARQ1oAEUNzABFDkAARQ5IAEUOUABFDlgARQ5gAEUOaABFDnAARQ54AEUO7ABFDvgARQ8EAEUPEABFDxwARQ8oAEUPNABFD0AARQ9IAEURNABFETwARRFEAEURTABFEVgARRFcAEURYABFEWQARRFoAEURcABFEXgARRF8AEURgABFEYgARRGMAEUTeABFE4AARROIAEUTkABFE5wARROgAEUTpABFE6gARROsAEUTtABFE7wARRPAAEUTxABFE8wARRPQAEUVvABFFcQARRXMAEUV1ABFFeAARRXkAEUV6ABFFewARRXwAEUV+ABFFgAARRYEAEUWCABFFhAARRYUAEUYAABFGAgARRgUAEUYHABFGCgARRgsAEUYMABFGDQARRg4AEUYQABFGEgARRhMAEUYUABFGFgARRhcAEUaSABFGlAARRpYAEUaYABFGmwARRpwAEUadABFGngARRp8AEUahABFGowARRqQAEUalABFGpwARRqgAEUcjABFHJQARRycAEUcpABFHLAARRy0AEUcuABFHLwARRzAAEUcyABFHNAARRzUAEUc2ABFHOAARRzkAEUe0ABFHtgARR7gAEUe6ABFHvQARR74AEUe/ABFHwAARR8EAEUfDABFHxQARR8YAEUfHABFHyQARR8oAEUfbABFH3AARR94AEUhhABFIhQARSKkAEUjMABFI8wARSRMAEUk6ABFJYQARSYEAEUmlABFJyQARScsAEUnOABFJ0AARSdIAEUnUABFJ1wARSdoAEUncABFJ3gARSeEAEUnjABFJ5QARSegAEUnrABFJ7AARSfUAEUoOABFKEwARShUAEUoaABFKHQARSh8AEUpoABFKjAARSrMAEUrXABFK2gARStwAEUreABFK4AARSuIAEUrkABFK5QARSugAEUsBABFLJgARSygAEUsqABFLLAARSy4AEUswABFLMgARSzQAEUs2ABFLOAARS10AEUtgABFLYwARS2YAEUtpABFLbAARS28AEUtyABFLdQARS3gAEUt6ABFL9QARS/cAEUv6ABFL/AARS/8AEUwAABFMAQARTAIAEUwDABFMBQARTAcAEUwIABFMCQARTAsAEUwMABFMHQARTB4AEUwgABFMmwARTJ0AEUyfABFMoQARTKQAEUylABFMpgARTKcAEUyoABFMqgARTKwAEUytABFMrgARTLAAEUyxABFNLAARTS4AEU0xABFNMwARTTYAEU03ABFNOAARTTkAEU06ABFNPAARTT4AEU0/ABFNQAARTUIAEU1DABFNVAARTVkAEU1cABFNXgARTW8AEU14ABFNewARTX4AEU2AABFNnAARTa4AEU4pABFOKwARTi0AEU4vABFOMgARTjMAEU40ABFONQARTjYAEU44ABFOOgARTjsAEU48ABFOPgARTj8AEU66ABFOvAARTr8AEU7BABFOxAARTsUAEU7GABFOxwARTsgAEU7KABFOzAARTs0AEU7OABFO0AARTtEAEU7iABFO4wARTuUAEU9gABFPYgART2QAEU9mABFPaQART2oAEU9rABFPbAART20AEU9vABFPcQART3IAEU9zABFPdQART3YAEU/xABFP8wART/YAEU/4ABFP+wART/wAEU/9ABFP/gART/8AEVABABFQAwARUAQAEVAFABFQBwARUAgAEVAhABFQIgARUCMAEVAlABFQoAARUKIAEVCkABFQpgARUKkAEVCqABFQqwARUKwAEVCtABFQrwARULEAEVCyABFQswARULUAEVC2ABFRMQARUTMAEVE2ABFROAARUTsAEVE8ABFRPQARUT4AEVE/ABFRQQARUUMAEVFEABFRRQARUUcAEVFIABFRXwARUXgAEVGJABFRjAARUY8AEVGSABFRlQARUaYAEVGpABFRrAARUa8AEVGyABFRtAARUcoAEVHmABFR+AARUgYAEVKZABFSvAARUtwAEVL8ABFS/gARUwAAEVMCABFTBAARUwcAEVMIABFTCQARUwwAEVMNABFTDwARUxAAEVMSABFTFQARUxYAEVMXABFTGgARUxsAEVMgABFTOQARU0IAEVNEABFTRgARU08AEVNSABFTVQARU1cAEVOgABFTxAARU+sAEVQPABFUEgARVBQAEVQWABFUGAARVBoAEVQcABFUHQARVCAAEVQ5ABFUWgARVFwAEVReABFUYAARVGIAEVRkABFUZgARVGgAEVRqABFUiwARVI4AEVSRABFUlAARVJcAEVSaABFUnQARVKAAEVSjABFUpQARVSAAEVUiABFVJAARVSYAEVUpABFVKgARVSsAEVUsABFVLQARVS8AEVUxABFVMgARVTMAEVU1ABFVNgARVbEAEVWzABFVtQARVbcAEVW6ABFVuwARVbwAEVW9ABFVvgARVcAAEVXCABFVwwARVcQAEVXGABFVxwARVkIAEVZEABFWRwARVkkAEVZMABFWTQARVk4AEVZPABFWUAARVlIAEVZUABFWVQARVlYAEVZYABFWWQARVnIAEVZzABFWdAARVnYAEVbxABFW8wARVvUAEVb3ABFW+gARVvsAEVb8ABFW/QARVv4AEVcAABFXAgARVwMAEVcEABFXBgARVwcAEVeCABFXhAARV4YAEVeIABFXiwARV4wAEVeNABFXjgARV48AEVeRABFXkwARV5QAEVeVABFXlwARV5gAEVgTABFYFQARWBcAEVgZABFYHAARWB0AEVgeABFYHwARWCAAEVgiABFYJAARWCUAEVgmABFYKAARWCkAEVikABFYpgARWKgAEViqABFYrQARWK4AEVivABFYsAARWLEAEVizABFYtQARWLYAEVi3ABFYuQARWLoAEVk1ABFZNwARWTkAEVk7ABFZPgARWT8AEVlAABFZQQARWUIAEVlEABFZRgARWUcAEVlIABFZSgARWUsAEVmUABFZuAARWd8AEVoDABFaBgARWggAEVoKABFaDAARWg4AEVoQABFaEQARWhQAEVotABFaSgARWkwAEVpOABFaUAARWlIAEVpUABFaVgARWlgAEVp1ABFaeAARWnsAEVp+ABFagQARWoQAEVqHABFaigARWowAEVsHABFbCQARWwsAEVsNABFbEAARWxEAEVsSABFbEwARWxQAEVsWABFbGAARWxkAEVsaABFbHAARWx0AEVuYABFbmgARW5wAEVueABFboQARW6IAEVujABFbpAARW6UAEVunABFbqQARW6oAEVurABFbrQARW64AEVwpABFcKwARXC0AEVwvABFcMgARXDMAEVw0ABFcNQARXDYAEVw4ABFcOgARXDsAEVw8ABFcPgARXD8AEVy6ABFcvAARXL8AEVzBABFcxAARXMUAEVzGABFcxwARXMgAEVzKABFczAARXM0AEVzOABFc0AARXNEAEV1MABFdTgARXVAAEV1SABFdVQARXVYAEV1XABFdWAARXVkAEV1bABFdXQARXV4AEV1fABFdYQARXWIAEV3dABFd3wARXeEAEV3jABFd5gARXecAEV3oABFd6QARXeoAEV3sABFd7gARXe8AEV3wABFd8gARXfMAEV5uABFecAARXnIAEV50ABFedwARXngAEV55ABFeegARXnsAEV59ABFefwARXoAAEV6BABFegwARXoQAEV8XABFfOgARX1oAEV96ABFffAARX34AEV+AABFfggARX4UAEV+GABFfhwARX4oAEV+LABFfjQARX44AEV+QABFfkwARX5QAEV+VABFfmAARX5kAEV+eABFftwARX8AAEV/CABFfxAARX80AEV/QABFf0wARX9UAEWAeABFgQgARYGkAEWCNABFgkAARYJIAEWCUABFglgARYJgAEWCaABFgmwARYJ4AEWC3ABFg2AARYNoAEWDcABFg3gARYOAAEWDiABFg5AARYOYAEWDoABFhCQARYQwAEWEPABFhEgARYRUAEWEYABFhGwARYR4AEWEhABFhIwARYZ4AEWGgABFhogARYaQAEWGnABFhqAARYakAEWGqABFhqwARYa0AEWGvABFhsAARYbEAEWGzABFhtAARYi8AEWIxABFiMwARYjUAEWI4ABFiOQARYjoAEWI7ABFiPAARYj4AEWJAABFiQQARYkIAEWJEABFiRQARYsAAEWLCABFixQARYscAEWLKABFiywARYswAEWLNABFizgARYtAAEWLSABFi0wARYtQAEWLWABFi1wARYvAAEWLxABFi8gARYvQAEWNvABFjcQARY3MAEWN1ABFjeAARY3kAEWN6ABFjewARY3wAEWN+ABFjgAARY4EAEWOCABFjhAARY4UAEWQAABFkAgARZAQAEWQGABFkCQARZAoAEWQLABFkDAARZA0AEWQPABFkEQARZBIAEWQTABFkFQARZBYAEWSRABFkkwARZJUAEWSXABFkmgARZJsAEWScABFknQARZJ4AEWSgABFkogARZKMAEWSkABFkpgARZKcAEWUiABFlJAARZSYAEWUoABFlKwARZSwAEWUtABFlLgARZS8AEWUxABFlMwARZTQAEWU1ABFlNwARZTgAEWWzABFltQARZbcAEWW5ABFlvAARZb0AEWW+ABFlvwARZcAAEWXCABFlxAARZcUAEWXGABFlyAARZckAEWYSABFmNgARZl0AEWaBABFmhAARZoYAEWaIABFmigARZowAEWaOABFmjwARZpIAEWarABFmyAARZsoAEWbMABFmzgARZtAAEWbSABFm1AARZtYAEWbzABFm9gARZvkAEWb8ABFm/wARZwIAEWcFABFnCAARZwoAEWeFABFnhwARZ4kAEWeLABFnjgARZ48AEWeQABFnkQARZ5IAEWeUABFnlgARZ5cAEWeYABFnmgARZ5sAEWgWABFoGAARaBoAEWgcABFoHwARaCAAEWghABFoIgARaCMAEWglABFoJwARaCgAEWgpABFoKwARaCwAEWinABFoqQARaKsAEWitABFosAARaLEAEWiyABFoswARaLQAEWi2ABFouAARaLkAEWi6ABFovAARaL0AEWk4ABFpOgARaT0AEWk/ABFpQgARaUMAEWlEABFpRQARaUYAEWlIABFpSgARaUsAEWlMABFpTgARaU8AEWnKABFpzAARac4AEWnQABFp0wARadQAEWnVABFp1gARadcAEWnZABFp2wARadwAEWndABFp3wARaeAAEWpbABFqXQARal8AEWphABFqZAARamUAEWpmABFqZwARamgAEWpqABFqbAARam0AEWpuABFqcAARanEAEWrsABFq7gARavAAEWryABFq9QARavYAEWr3ABFq+AARavkAEWr7ABFq/QARav4AEWr/ABFrAQARawIAEWuVABFruAARa9gAEWv4ABFr+gARa/wAEWv+ABFsAAARbAMAEWwEABFsBQARbAgAEWwJABFsCwARbAwAEWwOABFsEQARbBIAEWwTABFsFgARbBcAEWwgABFsOQARbEIAEWxEABFsRgARbE8AEWxSABFsVQARbFcAEWygABFsxAARbOsAEW0PABFtEgARbRQAEW0WABFtGAARbRoAEW0cABFtHQARbSAAEW05ABFtWgARbVwAEW1eABFtYAARbWIAEW1kABFtZgARbWgAEW1qABFtiwARbY4AEW2RABFtlAARbZcAEW2aABFtnQARbaAAEW2jABFtpQARbiAAEW4iABFuJAARbiYAEW4pABFuKgARbisAEW4sABFuLQARbi8AEW4xABFuMgARbjMAEW41ABFuNgARbrEAEW6zABFutQARbrcAEW66ABFuuwARbrwAEW69ABFuvgARbsAAEW7CABFuwwARbsQAEW7GABFuxwARb0IAEW9EABFvRwARb0kAEW9MABFvTQARb04AEW9PABFvUAARb1IAEW9UABFvVQARb1YAEW9YABFvWQARb3IAEW9zABFvdAARb3YAEW/xABFv8wARb/UAEW/3ABFv+gARb/sAEW/8ABFv/QARb/4AEXAAABFwAgARcAMAEXAEABFwBgARcAcAEXCCABFwhAARcIYAEXCIABFwiwARcIwAEXCNABFwjgARcI8AEXCRABFwkwARcJQAEXCVABFwlwARcJgAEXETABFxFQARcRcAEXEZABFxHAARcR0AEXEeABFxHwARcSAAEXEiABFxJAARcSUAEXEmABFxKAARcSkAEXGkABFxpgARcagAEXGqABFxrQARca4AEXGvABFxsAARcbEAEXGzABFxtQARcbYAEXG3ABFxuQARcboAEXI1ABFyNwARcjkAEXI7ABFyPgARcj8AEXJAABFyQQARckIAEXJEABFyRgARckcAEXJIABFySgARcksAEXKUABFyuAARct8AEXMDABFzBgARcwgAEXMKABFzDAARcw4AEXMQABFzEQARcxQAEXMtABFzSgARc0wAEXNOABFzUAARc1IAEXNUABFzVgARc1gAEXN1ABFzeAARc3sAEXN+ABFzgQARc4QAEXOHABFzigARc4wAEXQHABF0CQARdAsAEXQNABF0EAARdBEAEXQSABF0EwARdBQAEXQWABF0GAARdBkAEXQaABF0HAARdB0AEXSYABF0mgARdJwAEXSeABF0oQARdKIAEXSjABF0pAARdKUAEXSnABF0qQARdKoAEXSrABF0rQARdK4AEXUpABF1KwARdS0AEXUvABF1MgARdTMAEXU0ABF1NQARdTYAEXU4ABF1OgARdTsAEXU8ABF1PgARdT8AEXW6ABF1vAARdb8AEXXBABF1xAARdcUAEXXGABF1xwARdcgAEXXKABF1zAARdc0AEXXOABF10AARddEAEXZMABF2TgARdlAAEXZSABF2VQARdlYAEXZXABF2WAARdlkAEXZbABF2XQARdl4AEXZfABF2YQARdmIAEXbdABF23wARduEAEXbjABF25gARducAEXboABF26QARduoAEXbsABF27gARdu8AEXbwABF28gARdvMAEXduABF3cAARd3IAEXd0ABF3dwARd3gAEXd5ABF3egARd3sAEXd9ABF3fwARd4AAEXeBABF3gwARd4QAEXgXABF4OgAReFoAEXh6ABF4fAAReH4AEXiAABF4ggAReIUAEXiGABF4hwAReIoAEXiLABF4jQAReI4AEXiQABF4kwAReJQAEXiVABF4mAAReJkAEXieABF4twAReMAAEXjCABF4xAAReM0AEXjQABF40wAReNUAEXkeABF5QgAReWkAEXmNABF5kAAReZIAEXmUABF5lgAReZgAEXmaABF5mwAReZ4AEXm3ABF52AARedoAEXncABF53gAReeAAEXniABF55AAReeYAEXnoABF6CQARegwAEXoPABF6EgARehUAEXoYABF6GwAReh4AEXohABF6IwARep4AEXqgABF6ogAReqQAEXqnABF6qAAReqkAEXqqABF6qwAReq0AEXqvABF6sAARerEAEXqzABF6tAARey8AEXsxABF7MwARezUAEXs4ABF7OQARezoAEXs7ABF7PAARez4AEXtAABF7QQARe0IAEXtEABF7RQARe8AAEXvCABF7xQARe8cAEXvKABF7ywARe8wAEXvNABF7zgARe9AAEXvSABF70wARe9QAEXvWABF71wARe/AAEXvxABF78gARe/QAEXxvABF8cQARfHMAEXx1ABF8eAARfHkAEXx6ABF8ewARfHwAEXx+ABF8gAARfIEAEXyCABF8hAARfIUAEX0AABF9AgARfQQAEX0GABF9CQARfQoAEX0LABF9DAARfQ0AEX0PABF9EQARfRIAEX0TABF9FQARfRYAEX2RABF9kwARfZUAEX2XABF9mgARfZsAEX2cABF9nQARfZ4AEX2gABF9ogARfaMAEX2kABF9pgARfacAEX4iABF+JAARfiYAEX4oABF+KwARfiwAEX4tABF+LgARfi8AEX4xABF+MwARfjQAEX41ABF+NwARfjgAEX6zABF+tQARfrcAEX65ABF+vAARfr0AEX6+ABF+vwARfsAAEX7CABF+xAARfsUAEX7GABF+yAARfskAEX8SABF/NgARf10AEX+BABF/hAARf4YAEX+IABF/igARf4wAEX+OABF/jwARf5IAEX+rABF/yAARf8oAEX/MABF/zgARf9AAEX/SABF/1AARf9YAEX/zABF/9gARf/kAEX/8ABF//wARgAIAEYAFABGACAARgAoAEYCFABGAhwARgIkAEYCLABGAjgARgI8AEYCQABGAkQARgJIAEYCUABGAlgARgJcAEYCYABGAmgARgJsAEYEWABGBGAARgRoAEYEcABGBHwARgSAAEYEhABGBIgARgSMAEYElABGBJwARgSgAEYEpABGBKwARgSwAEYGnABGBqQARgasAEYGtABGBsAARgbEAEYGyABGBswARgbQAEYG2ABGBuAARgbkAEYG6ABGBvAARgb0AEYI4ABGCOgARgj0AEYI/ABGCQgARgkMAEYJEABGCRQARgkYAEYJIABGCSgARgksAEYJMABGCTgARgk8AEYLKABGCzAARgs4AEYLQABGC0wARgtQAEYLVABGC1gARgtcAEYLZABGC2wARgtwAEYLdABGC3wARguAAEYNbABGDXQARg18AEYNhABGDZAARg2UAEYNmABGDZwARg2gAEYNqABGDbAARg20AEYNuABGDcAARg3EAEYPsABGD7gARg/AAEYPyABGD9QARg/YAEYP3ABGD+AARg/kAEYP7ABGD/QARg/4AEYP/ABGEAQARhAIAEYQTABGEFAARhBYAEYSZABGEvQARhOEAEYUEABGFKwARhUsAEYVyABGFmQARhbkAEYXdABGGAQARhgMAEYYGABGGCAARhgoAEYYMABGGDwARhhIAEYYUABGGFgARhhkAEYYbABGGHQARhiAAEYYjABGGJAARhikAEYZCABGGRwARhkkAEYZOABGGUQARhlMAEYacABGGwAARhucAEYcLABGHDgARhxAAEYcSABGHFAARhxYAEYcYABGHGQARhxwAEYc1ABGHWgARh1wAEYdeABGHYAARh2IAEYdkABGHZgARh2gAEYdqABGHbAARh5EAEYeUABGHlwARh5oAEYedABGHoAARh6MAEYemABGHqQARh6wAEYeuABGIKQARiCsAEYguABGIMAARiDMAEYg0ABGINQARiDYAEYg3ABGIOQARiDsAEYg8ABGIPQARiD8AEYhAABGIUQARiFIAEYhUABGIzwARiNEAEYjTABGI1QARiNgAEYjZABGI2gARiNsAEYjcABGI3gARiOAAEYjhABGI4gARiOQAEYjlABGJYAARiWIAEYllABGJZwARiWoAEYlrABGJbAARiW0AEYluABGJcAARiXIAEYlzABGJdAARiXYAEYl3ABGJiAARiYkAEYmLABGKBgARiggAEYoKABGKDAARig8AEYoQABGKEQARihIAEYoTABGKFQARihcAEYoYABGKGQARihsAEYocABGKlwARipkAEYqcABGKngARiqEAEYqiABGKowARiqQAEYqlABGKpwARiqkAEYqqABGKqwARiq0AEYquABGKvwARisAAEYrCABGLPQARiz8AEYtBABGLQwARi0YAEYtHABGLSAARi0kAEYtKABGLTAARi04AEYtPABGLUAARi1IAEYtTABGLzgARi9AAEYvTABGL1QARi9gAEYvZABGL2gARi9sAEYvcABGL3gARi+AAEYvhABGL4gARi+QAEYvlABGL/gARi/8AEYwAABGMAgARjH0AEYx/ABGMgQARjIMAEYyGABGMhwARjIgAEYyJABGMigARjIwAEYyOABGMjwARjJAAEYySABGMkwARjQ4AEY0QABGNEwARjRUAEY0YABGNGQARjRoAEY0bABGNHAARjR4AEY0gABGNIQARjSIAEY0kABGNJQARjVUAEY1uABGNdwARjXoAEY19ABGNhgARjYkAEY2MABGNjgARjaEAEY2rABGOPgARjmEAEY6BABGOoQARjqMAEY6lABGOpwARjqkAEY6sABGOrQARjq4AEY6xABGOsgARjrQAEY61ABGOtwARjroAEY67ABGOvAARjr8AEY7AABGOxQARjt4AEY7nABGO6QARjusAEY70ABGO9wARjvoAEY78ABGPRQARj2kAEY+QABGPtAARj7cAEY+5ABGPuwARj70AEY+/ABGPwQARj8IAEY/FABGP3gARj/8AEZABABGQAwARkAUAEZAHABGQCQARkAsAEZANABGQDwARkDAAEZAzABGQNgARkDkAEZA8ABGQPwARkEIAEZBFABGQSAARkEoAEZDFABGQxwARkMkAEZDLABGQzgARkM8AEZDQABGQ0QARkNIAEZDUABGQ1gARkNcAEZDYABGQ2gARkNsAEZFWABGRWAARkVoAEZFcABGRXwARkWAAEZFhABGRYgARkWMAEZFlABGRZwARkWgAEZFpABGRawARkWwAEZHnABGR6QARkewAEZHuABGR8QARkfIAEZHzABGR9AARkfUAEZH3ABGR+QARkfoAEZH7ABGR/QARkf4AEZIXABGSGAARkhkAEZIbABGSlgARkpgAEZKaABGSnAARkp8AEZKgABGSoQARkqIAEZKjABGSpQARkqcAEZKoABGSqQARkqsAEZKsABGTJwARkykAEZMrABGTLQARkzAAEZMxABGTMgARkzMAEZM0ABGTNgARkzgAEZM5ABGTOgARkzwAEZM9ABGTuAARk7oAEZO8ABGTvgARk8EAEZPCABGTwwARk8QAEZPFABGTxwARk8kAEZPKABGTywARk80AEZPOABGUSQARlEsAEZRNABGUTwARlFIAEZRTABGUVAARlFUAEZRWABGUWAARlFoAEZRbABGUXAARlF4AEZRfABGU2gARlNwAEZTeABGU4AARlOMAEZTkABGU5QARlOYAEZTnABGU6QARlOsAEZTsABGU7QARlO8AEZTwABGVOQARlV0AEZWEABGVqAARlasAEZWtABGVrwARlbEAEZWzABGVtQARlbYAEZW5ABGV0gARle8AEZXxABGV8wARlfUAEZX3ABGV+QARlfsAEZX9ABGWGgARlh0AEZYgABGWIwARliYAEZYpABGWLAARli8AEZYxABGWrAARlq4AEZawABGWsgARlrUAEZa2ABGWtwARlrgAEZa5ABGWuwARlr0AEZa+ABGWvwARlsEAEZbCABGXPQARlz8AEZdBABGXQwARl0YAEZdHABGXSAARl0kAEZdKABGXTAARl04AEZdPABGXUAARl1IAEZdTABGXzgARl9AAEZfSABGX1AARl9cAEZfYABGX2QARl9oAEZfbABGX3QARl98AEZfgABGX4QARl+MAEZfkABGYXwARmGEAEZhkABGYZgARmGkAEZhqABGYawARmGwAEZhtABGYbwARmHEAEZhyABGYcwARmHUAEZh2ABGY8QARmPMAEZj1ABGY9wARmPoAEZj7ABGY/AARmP0AEZj+ABGZAAARmQIAEZkDABGZBAARmQYAEZkHABGZggARmYQAEZmGABGZiAARmYsAEZmMABGZjQARmY4AEZmPABGZkQARmZMAEZmUABGZlQARmZcAEZmYABGaEwARmhUAEZoXABGaGQARmhwAEZodABGaHgARmh8AEZogABGaIgARmiQAEZolABGaJgARmigAEZopABGavAARmt8AEZr/ABGbHwARmyEAEZsjABGbJQARmycAEZsqABGbKwARmywAEZsvABGbMAARmzIAEZszABGbNQARmzgAEZs5ABGbOgARmz0AEZs+ABGbQwARm1wAEZtlABGbZwARm2kAEZtyABGbdQARm3gAEZt6ABGbwwARm+cAEZwOABGcMgARnDUAEZw3ABGcOQARnDsAEZw9ABGcPwARnEAAEZxDABGcXAARnH0AEZx/ABGcgQARnIMAEZyFABGchwARnIkAEZyLABGcjQARnK4AEZyxABGctAARnLcAEZy6ABGcvQARnMAAEZzDABGcxgARnMgAEZ1DABGdRQARnUcAEZ1JABGdTAARnU0AEZ1OABGdTwARnVAAEZ1SABGdVAARnVUAEZ1WABGdWAARnVkAEZ3UABGd1gARndgAEZ3aABGd3QARnd4AEZ3fABGd4AARneEAEZ3jABGd5QARneYAEZ3nABGd6QARneoAEZ5lABGeZwARnmoAEZ5sABGebwARnnAAEZ5xABGecgARnnMAEZ51ABGedwARnngAEZ55ABGeewARnnwAEZ6VABGelgARnpcAEZ6ZABGfFAARnxYAEZ8YABGfGgARnx0AEZ8eABGfHwARnyAAEZ8hABGfIwARnyUAEZ8mABGfJwARnykAEZ8qABGfpQARn6cAEZ+pABGfqwARn64AEZ+vABGfsAARn7EAEZ+yABGftAARn7YAEZ+3ABGfuAARn7oAEZ+7ABGgNgARoDgAEaA6ABGgPAARoD8AEaBAABGgQQARoEIAEaBDABGgRQARoEcAEaBIABGgSQARoEsAEaBMABGgxwARoMkAEaDLABGgzQARoNAAEaDRABGg0gARoNMAEaDUABGg1gARoNgAEaDZABGg2gARoNwAEaDdABGhWAARoVoAEaFcABGhXgARoWEAEaFiABGhYwARoWQAEaFlABGhZwARoWkAEaFqABGhawARoW0AEaFuABGhtwARodsAEaICABGiJgARoikAEaIrABGiLQARoi8AEaIxABGiMwARojQAEaI3ABGiUAARom0AEaJvABGicQARonMAEaJ1ABGidwARonkAEaJ7ABGimAARopsAEaKeABGioQARoqQAEaKnABGiqgARoq0AEaKvABGjKgARoywAEaMuABGjMAARozMAEaM0ABGjNQARozYAEaM3ABGjOQARozsAEaM8ABGjPQARoz8AEaNAABGjuwARo70AEaO/ABGjwQARo8QAEaPFABGjxgARo8cAEaPIABGjygARo8wAEaPNABGjzgARo9AAEaPRABGkTAARpE4AEaRQABGkUgARpFUAEaRWABGkVwARpFgAEaRZABGkWwARpF0AEaReABGkXwARpGEAEaRiABGk3QARpN8AEaTiABGk5AARpOcAEaToABGk6QARpOoAEaTrABGk7QARpO8AEaTwABGk8QARpPMAEaT0ABGlbwARpXEAEaVzABGldQARpXgAEaV5ABGlegARpXsAEaV8ABGlfgARpYAAEaWBABGlggARpYQAEaWFABGmAAARpgIAEaYEABGmBgARpgkAEaYKABGmCwARpgwAEaYNABGmDwARphEAEaYSABGmEwARphUAEaYWABGmkQARppMAEaaVABGmlwARppoAEaabABGmnAARpp0AEaaeABGmoAARpqIAEaajABGmpAARpqYAEaanABGmuAARprkAEaa7ABGnPgARp2IAEaeGABGnqQARp9AAEafwABGoFwARqD4AEaheABGoggARqKYAEaioABGoqwARqK0AEaivABGosQARqLQAEai3ABGouQARqLsAEai+ABGowAARqMIAEajFABGoyAARqMkAEajSABGo6wARqPAAEajyABGo9wARqPoAEaj8ABGpRQARqWkAEamQABGptAARqbcAEam5ABGpuwARqb0AEam/ABGpwQARqcIAEanFABGp3gARqgMAEaoFABGqBwARqgkAEaoLABGqDQARqg8AEaoRABGqEwARqhUAEao6ABGqPQARqkAAEapDABGqRgARqkkAEapMABGqTwARqlIAEapVABGqVwARqtIAEarUABGq1wARqtkAEarcABGq3QARqt4AEarfABGq4AARquIAEarkABGq5QARquYAEaroABGq6QARqvoAEar7ABGq/QARq3gAEat6ABGrfAARq34AEauBABGrggARq4MAEauEABGrhQARq4cAEauJABGrigARq4sAEauNABGrjgARrAkAEawLABGsDgARrBAAEawTABGsFAARrBUAEawWABGsFwARrBkAEawbABGsHAARrB0AEawfABGsIAARrDEAEawyABGsNAARrK8AEayxABGsswARrLUAEay4ABGsuQARrLoAEay7ABGsvAARrL4AEazAABGswQARrMIAEazEABGsxQARrUAAEa1CABGtRQARrUcAEa1KABGtSwARrUwAEa1NABGtTgARrVAAEa1SABGtUwARrVQAEa1WABGtVwARrWgAEa1pABGtawARreYAEa3oABGt6gARrewAEa3vABGt8AARrfEAEa3yABGt8wARrfUAEa33ABGt+AARrfkAEa37ABGt/AARrncAEa55ABGufAARrn4AEa6BABGuggARroMAEa6EABGuhQARrocAEa6JABGuigARrosAEa6NABGujgARrqcAEa6oABGuqQARrqsAEa8mABGvKAARryoAEa8sABGvLwARrzAAEa8xABGvMgARrzMAEa81ABGvNwARrzgAEa85ABGvOwARrzwAEa+3ABGvuQARr7wAEa++ABGvwQARr8IAEa/DABGvxAARr8UAEa/HABGvyQARr8oAEa/LABGvzQARr84AEa/pABGwAgARsAsAEbAOABGwEQARsBoAEbAdABGwIAARsCIAEbA1ABGwyAARsOsAEbELABGxKwARsS0AEbEvABGxMQARsTMAEbE2ABGxNwARsTgAEbE7ABGxPAARsT4AEbE/ABGxQQARsUQAEbFFABGxRgARsUkAEbFKABGxUwARsWwAEbF1ABGxdwARsXkAEbGCABGxhQARsYgAEbGKABGx0wARsfcAEbIeABGyQgARskUAEbJHABGySQARsksAEbJNABGyTwARslAAEbJTABGybAARso0AEbKPABGykQARspMAEbKVABGylwARspkAEbKbABGynQARsr4AEbLBABGyxAARsscAEbLKABGyzQARstAAEbLTABGy1gARstgAEbNTABGzVQARs1cAEbNZABGzXAARs10AEbNeABGzXwARs2AAEbNiABGzZAARs2UAEbNmABGzaAARs2kAEbPkABGz5gARs+gAEbPqABGz7QARs+4AEbPvABGz8AARs/EAEbPzABGz9QARs/YAEbP3ABGz+QARs/oAEbR1ABG0dwARtHoAEbR8ABG0fwARtIAAEbSBABG0ggARtIMAEbSFABG0hwARtIgAEbSJABG0iwARtIwAEbSlABG0pgARtKcAEbSpABG1JAARtSYAEbUoABG1KgARtS0AEbUuABG1LwARtTAAEbUxABG1MwARtTUAEbU2ABG1NwARtTkAEbU6ABG1tQARtbcAEbW5ABG1uwARtb4AEbW/ABG1wAARtcEAEbXCABG1xAARtcYAEbXHABG1yAARtcoAEbXLABG2RgARtkgAEbZKABG2TAARtk8AEbZQABG2UQARtlIAEbZTABG2VQARtlcAEbZYABG2WQARtlsAEbZcABG21wARttkAEbbbABG23QARtuAAEbbhABG24gARtuMAEbbkABG25gARtugAEbbpABG26gARtuwAEbbtABG3aAARt2oAEbdsABG3bgARt3EAEbdyABG3cwARt3QAEbd1ABG3dwARt3kAEbd6ABG3ewARt30AEbd+ABG3xwARt+sAEbgSABG4NgARuDkAEbg7ABG4PQARuD8AEbhBABG4QwARuEQAEbhHABG4YAARuH0AEbh/ABG4gQARuIMAEbiFABG4hwARuIkAEbiLABG4qAARuKsAEbiuABG4sQARuLQAEbi3ABG4ugARuL0AEbi/ABG5OgARuTwAEbk+ABG5QAARuUMAEblEABG5RQARuUYAEblHABG5SQARuUsAEblMABG5TQARuU8AEblQABG5ywARuc0AEbnPABG50QARudQAEbnVABG51gARudcAEbnYABG52gARudwAEbndABG53gARueAAEbnhABG6XAARul4AEbpgABG6YgARumUAEbpmABG6ZwARumgAEbppABG6awARum0AEbpuABG6bwARunEAEbpyABG67QARuu8AEbryABG69AARuvcAEbr4ABG6+QARuvoAEbr7ABG6/QARuv8AEbsAABG7AQARuwMAEbsEABG7fwARu4EAEbuDABG7hQARu4gAEbuJABG7igARu4sAEbuMABG7jgARu5AAEbuRABG7kgARu5QAEbuVABG8EAARvBIAEbwUABG8FgARvBkAEbwaABG8GwARvBwAEbwdABG8HwARvCEAEbwiABG8IwARvCUAEbwmABG8oQARvKMAEbylABG8pwARvKoAEbyrABG8rAARvK0AEbyuABG8sAARvLIAEbyzABG8tAARvLYAEby3ABG9SgARvW0AEb2NABG9rQARva8AEb2xABG9swARvbUAEb24ABG9uQARvboAEb29ABG9vgARvcAAEb3BABG9wwARvcYAEb3HABG9yAARvcsAEb3MABG90QARveoAEb3zABG99QARvfcAEb4AABG+AwARvgYAEb4IABG+UQARvnUAEb6cABG+wAARvsMAEb7FABG+xwARvskAEb7LABG+zQARvs4AEb7RABG+6gARvwsAEb8NABG/DwARvxEAEb8TABG/FQARvxcAEb8ZABG/GwARvzwAEb8/ABG/QgARv0UAEb9IABG/SwARv04AEb9RABG/VAARv1YAEb/RABG/0wARv9UAEb/XABG/2gARv9sAEb/cABG/3QARv94AEb/gABG/4gARv+MAEb/kABG/5gARv+cAEcBiABHAZAARwGYAEcBoABHAawARwGwAEcBtABHAbgARwG8AEcBxABHAcwARwHQAEcB1ABHAdwARwHgAEcDzABHA9QARwPgAEcD6ABHA/QARwP4AEcD/ABHBAAARwQEAEcEDABHBBQARwQYAEcEHABHBCQARwQoAEcEjABHBJAARwSUAEcEnABHBogARwaQAEcGmABHBqAARwasAEcGsABHBrQARwa4AEcGvABHBsQARwbMAEcG0ABHBtQARwbcAEcG4ABHCMwARwjUAEcI3ABHCOQARwjwAEcI9ABHCPgARwj8AEcJAABHCQgARwkQAEcJFABHCRgARwkgAEcJJABHCxAARwsYAEcLIABHCygARws0AEcLOABHCzwARwtAAEcLRABHC0wARwtUAEcLWABHC1wARwtkAEcLaABHDVQARw1cAEcNZABHDWwARw14AEcNfABHDYAARw2EAEcNiABHDZAARw2YAEcNnABHDaAARw2oAEcNrABHD5gARw+gAEcPqABHD7AARw+8AEcPwABHD8QARw/IAEcPzABHD9QARw/cAEcP4ABHD+QARw/sAEcP8ABHERQARxGkAEcSQABHEtAARxLcAEcS5ABHEuwARxL0AEcS/ABHEwQARxMIAEcTFABHE3gARxPsAEcT9ABHE/wARxQEAEcUDABHFBQARxQcAEcUJABHFJgARxSkAEcUsABHFLwARxTIAEcU1ABHFOAARxTsAEcU9ABHFuAARxboAEcW8ABHFvgARxcEAEcXCABHFwwARxcQAEcXFABHFxwARxckAEcXKABHFywARxc0AEcXOABHGSQARxksAEcZNABHGTwARxlIAEcZTABHGVAARxlUAEcZWABHGWAARxloAEcZbABHGXAARxl4AEcZfABHG2gARxtwAEcbeABHG4AARxuMAEcbkABHG5QARxuYAEcbnABHG6QARxusAEcbsABHG7QARxu8AEcbwABHHawARx20AEcdwABHHcgARx3UAEcd2ABHHdwARx3gAEcd5ABHHewARx30AEcd+ABHHfwARx4EAEceCABHH/QARx/8AEcgBABHIAwARyAYAEcgHABHICAARyAkAEcgKABHIDAARyA4AEcgPABHIEAARyBIAEcgTABHIjgARyJAAEciSABHIlAARyJcAEciYABHImQARyJoAEcibABHInQARyJ8AEcigABHIoQARyKMAEcikABHJHwARySEAEckjABHJJQARySgAEckpABHJKgARySsAEcksABHJLgARyTAAEckxABHJMgARyTQAEck1ABHJRgARyUcAEclJABHJzAARyfAAEcoUABHKNwARyl4AEcp+ABHKpQARyswAEcrsABHLEAARyzQAEcs2ABHLOQARyzsAEcs9ABHLPwARy0IAEctFABHLRwARy0kAEctMABHLTgARy1AAEctTABHLVgARy1cAEctcABHLdQARy3oAEct8ABHLgQARy4QAEcuGABHLzwARy/MAEcwaABHMPgARzEEAEcxDABHMRQARzEcAEcxJABHMSwARzEwAEcxPABHMaAARzI0AEcyPABHMkQARzJMAEcyVABHMlwARzJkAEcybABHMnQARzJ8AEczEABHMxwARzMoAEczNABHM0AARzNMAEczWABHM2QARzNwAEczfABHM4QARzVwAEc1eABHNYQARzWMAEc1mABHNZwARzWgAEc1pABHNagARzWwAEc1uABHNbwARzXAAEc1yABHNcwARzYQAEc2FABHNhwARzgIAEc4EABHOBgARzggAEc4LABHODAARzg0AEc4OABHODwARzhEAEc4TABHOFAARzhUAEc4XABHOGAARzpMAEc6VABHOmAARzpoAEc6dABHOngARzp8AEc6gABHOoQARzqMAEc6lABHOpgARzqcAEc6pABHOqgARzrsAEc68ABHOvgARzzkAEc87ABHPPQARzz8AEc9CABHPQwARz0QAEc9FABHPRgARz0gAEc9KABHPSwARz0wAEc9OABHPTwARz8oAEc/MABHPzwARz9EAEc/UABHP1QARz9YAEc/XABHP2AARz9oAEc/cABHP3QARz94AEc/gABHP4QARz/IAEc/zABHP9QAR0HAAEdByABHQdAAR0HYAEdB5ABHQegAR0HsAEdB8ABHQfQAR0H8AEdCBABHQggAR0IMAEdCFABHQhgAR0QEAEdEDABHRBgAR0QgAEdELABHRDAAR0Q0AEdEOABHRDwAR0REAEdETABHRFAAR0RUAEdEXABHRGAAR0TEAEdEyABHRMwAR0TUAEdGwABHRsgAR0bQAEdG2ABHRuQAR0boAEdG7ABHRvAAR0b0AEdG/ABHRwQAR0cIAEdHDABHRxQAR0cYAEdJBABHSQwAR0kYAEdJIABHSSwAR0kwAEdJNABHSTgAR0k8AEdJRABHSUwAR0lQAEdJVABHSVwAR0lgAEdJtABHShgAR0psAEdKeABHSoQAR0qQAEdKnABHSqgAR0r8AEdLCABHSxQAR0sgAEdLLABHSzgAR0tAAEdLlABHS8QAR0wcAEdMaABHTMwAR08YAEdPpABHUCQAR1CkAEdQrABHULQAR1C8AEdQxABHUNAAR1DUAEdQ2ABHUOQAR1DoAEdQ8ABHUPQAR1D8AEdRCABHUQwAR1EQAEdRHABHUSAAR1E0AEdRmABHUbwAR1HEAEdRzABHUfAAR1H8AEdSCABHUhAAR1M0AEdTxABHVGAAR1TwAEdU/ABHVQQAR1UMAEdVFABHVRwAR1UkAEdVKABHVTQAR1WYAEdWHABHViQAR1YsAEdWNABHVjwAR1ZEAEdWTABHVlQAR1ZcAEdW4ABHVuwAR1b4AEdXBABHVxAAR1ccAEdXKABHVzQAR1dAAEdXSABHWTQAR1k8AEdZRABHWUwAR1lYAEdZXABHWWAAR1lkAEdZaABHWXAAR1l4AEdZfABHWYAAR1mIAEdZjABHW3gAR1uAAEdbiABHW5AAR1ucAEdboABHW6QAR1uoAEdbrABHW7QAR1u8AEdbwABHW8QAR1vMAEdb0ABHXbwAR13EAEdd0ABHXdgAR13kAEdd6ABHXewAR13wAEdd9ABHXfwAR14EAEdeCABHXgwAR14UAEdeGABHXnwAR16AAEdehABHXowAR2B4AEdggABHYIgAR2CQAEdgnABHYKAAR2CkAEdgqABHYKwAR2C0AEdgvABHYMAAR2DEAEdgzABHYNAAR2K8AEdixABHYswAR2LUAEdi4ABHYuQAR2LoAEdi7ABHYvAAR2L4AEdjAABHYwQAR2MIAEdjEABHYxQAR2UAAEdlCABHZRAAR2UYAEdlJABHZSgAR2UsAEdlMABHZTQAR2U8AEdlRABHZUgAR2VMAEdlVABHZVgAR2dEAEdnTABHZ1gAR2dgAEdnbABHZ3AAR2d0AEdneABHZ3wAR2eEAEdnjABHZ5AAR2eUAEdnnABHZ6AAR2foAEdp1ABHadwAR2nkAEdp7ABHafgAR2n8AEdqAABHagQAR2oIAEdqEABHahgAR2ocAEdqIABHaigAR2osAEdrUABHa+AAR2x8AEdtDABHbRgAR20gAEdtKABHbTAAR204AEdtQABHbUQAR21QAEdttABHbigAR24wAEduOABHbkAAR25IAEduUABHblgAR25gAEdu1ABHbuAAR27sAEdu+ABHbwQAR28QAEdvHABHbygAR28wAEdxHABHcSQAR3EsAEdxNABHcUAAR3FEAEdxSABHcUwAR3FQAEdxWABHcWAAR3FkAEdxaABHcXAAR3F0AEdzYABHc2gAR3NwAEdzeABHc4QAR3OIAEdzjABHc5AAR3OUAEdznABHc6QAR3OoAEdzrABHc7QAR3O4AEd1pABHdawAR3W0AEd1vABHdcgAR3XMAEd10ABHddQAR3XYAEd14ABHdegAR3XsAEd18ABHdfgAR3X8AEd36ABHd/AAR3f8AEd4BABHeBAAR3gUAEd4GABHeBwAR3ggAEd4KABHeDAAR3g0AEd4OABHeEAAR3hEAEd6MABHejgAR3pAAEd6SABHelQAR3pYAEd6XABHemAAR3pkAEd6bABHenQAR3p4AEd6fABHeoQAR3qIAEd8dABHfHwAR3yEAEd8jABHfJgAR3ycAEd8oABHfKQAR3yoAEd8sABHfLgAR3y8AEd8wABHfMgAR3zMAEd+uABHfsAAR37IAEd+0ABHftwAR37gAEd+5ABHfugAR37sAEd+9ABHfvwAR38AAEd/BABHfwwAR38QAEeBXABHgegAR4JoAEeC6ABHgvAAR4L4AEeDAABHgwgAR4MUAEeDGABHgxwAR4MoAEeDLABHgzQAR4M4AEeDQABHg0wAR4NQAEeDVABHg2AAR4NkAEeDiABHg+wAR4QQAEeEGABHhCAAR4REAEeEUABHhFwAR4RkAEeFiABHhhgAR4a0AEeHRABHh1AAR4dYAEeHYABHh2gAR4dwAEeHeABHh3wAR4eIAEeH7ABHiHAAR4h4AEeIgABHiIgAR4iQAEeImABHiKAAR4ioAEeIsABHiTQAR4lAAEeJTABHiVgAR4lkAEeJcABHiXwAR4mIAEeJlABHiZwAR4uIAEeLkABHi5gAR4ugAEeLrABHi7AAR4u0AEeLuABHi7wAR4vEAEeLzABHi9AAR4vUAEeL3ABHi+AAR43MAEeN1ABHjdwAR43kAEeN8ABHjfQAR434AEeN/ABHjgAAR44IAEeOEABHjhQAR44YAEeOIABHjiQAR5AQAEeQGABHkCQAR5AsAEeQOABHkDwAR5BAAEeQRABHkEgAR5BQAEeQWABHkFwAR5BgAEeQaABHkGwAR5DQAEeQ1ABHkNgAR5DgAEeSzABHktQAR5LcAEeS5ABHkvAAR5L0AEeS+ABHkvwAR5MAAEeTCABHkxAAR5MUAEeTGABHkyAAR5MkAEeVEABHlRgAR5UgAEeVKABHlTQAR5U4AEeVPABHlUAAR5VEAEeVTABHlVQAR5VYAEeVXABHlWQAR5VoAEeXVABHl1wAR5dkAEeXbABHl3gAR5d8AEeXgABHl4QAR5eIAEeXkABHl5gAR5ecAEeXoABHl6gAR5esAEeZmABHmaAAR5moAEeZsABHmbwAR5nAAEeZxABHmcgAR5nMAEeZ1ABHmdwAR5ngAEeZ5ABHmewAR5nwAEeb3ABHm+QAR5vsAEeb9ABHnAAAR5wEAEecCABHnAwAR5wQAEecGABHnCAAR5wkAEecKABHnDAAR5w0AEedWABHnegAR56EAEefFABHnyAAR58oAEefMABHnzgAR59AAEefSABHn0wAR59YAEefvABHoDAAR6A4AEegQABHoEgAR6BQAEegWABHoGAAR6BoAEeg3ABHoOgAR6D0AEehAABHoQwAR6EYAEehJABHoTAAR6E4AEejJABHoywAR6M4AEejQABHo0wAR6NQAEejVABHo1gAR6NcAEejZABHo2wAR6NwAEejdABHo3wAR6OAAEelbABHpXQAR6V8AEelhABHpZAAR6WUAEelmABHpZwAR6WgAEelqABHpbAAR6W0AEeluABHpcAAR6XEAEensABHp7gAR6fAAEenyABHp9QAR6fYAEen3ABHp+AAR6fkAEen7ABHp/QAR6f4AEen/ABHqAQAR6gIAEep9ABHqfwAR6oIAEeqEABHqhwAR6ogAEeqJABHqigAR6osAEeqNABHqjwAR6pAAEeqRABHqkwAR6pQAEesPABHrEQAR6xMAEesVABHrGAAR6xkAEesaABHrGwAR6xwAEeseABHrIAAR6yEAEesiABHrJAAR6yUAEeugABHrogAR66QAEeumABHrqQAR66oAEeurABHrrAAR660AEeuvABHrsQAR67IAEeuzABHrtQAR67YAEewxABHsMwAR7DUAEew3ABHsOgAR7DsAEew8ABHsPQAR7D4AEexAABHsQgAR7EMAEexEABHsRgAR7EcAEezaABHs/QAR7R0AEe09ABHtPwAR7UEAEe1DABHtRQAR7UgAEe1JABHtSgAR7U0AEe1OABHtUAAR7VEAEe1TABHtVgAR7VcAEe1YABHtWwAR7VwAEe1hABHtegAR7YMAEe2FABHthwAR7ZAAEe2TABHtlgAR7ZgAEe3hABHuBQAR7iwAEe5QABHuUwAR7lUAEe5XABHuWQAR7lsAEe5dABHuXgAR7mEAEe56ABHumwAR7p0AEe6fABHuoQAR7qMAEe6lABHupwAR7qkAEe6rABHuzAAR7s8AEe7SABHu1QAR7tgAEe7bABHu3gAR7uEAEe7kABHu5gAR72EAEe9jABHvZQAR72cAEe9qABHvawAR72wAEe9tABHvbgAR73AAEe9yABHvcwAR73QAEe92ABHvdwAR7/IAEe/0ABHv9gAR7/gAEe/7ABHv/AAR7/0AEe/+ABHv/wAR8AEAEfADABHwBAAR8AUAEfAHABHwCAAR8IMAEfCFABHwiAAR8IoAEfCNABHwjgAR8I8AEfCQABHwkQAR8JMAEfCVABHwlgAR8JcAEfCZABHwmgAR8LMAEfC0ABHwtQAR8LcAEfEyABHxNAAR8TYAEfE4ABHxOwAR8TwAEfE9ABHxPgAR8T8AEfFBABHxQwAR8UQAEfFFABHxRwAR8UgAEfHDABHxxQAR8ccAEfHJABHxzAAR8c0AEfHOABHxzwAR8dAAEfHSABHx1AAR8dUAEfHWABHx2AAR8dkAEfJUABHyVgAR8lgAEfJaABHyXQAR8l4AEfJfABHyYAAR8mEAEfJjABHyZQAR8mYAEfJnABHyaQAR8moAEfLlABHy5wAR8uoAEfLsABHy7wAR8vAAEfLxABHy8gAR8vMAEfL1ABHy9wAR8vgAEfL5ABHy+wAR8vwAEfMPABHzigAR84wAEfOOABHzkAAR85MAEfOUABHzlQAR85YAEfOXABHzmQAR85sAEfOcABHznQAR858AEfOgABHz6QAR9A0AEfQ0ABH0WAAR9FsAEfRdABH0XwAR9GEAEfRjABH0ZQAR9GYAEfRpABH0ggAR9J8AEfShABH0owAR9KUAEfSnABH0qQAR9KsAEfStABH0ygAR9M0AEfTQABH00wAR9NYAEfTZABH03AAR9N8AEfThABH1XAAR9V4AEfVgABH1YgAR9WUAEfVmABH1ZwAR9WgAEfVpABH1awAR9W0AEfVuABH1bwAR9XEAEfVyABH17QAR9e8AEfXxABH18wAR9fYAEfX3ABH1+AAR9fkAEfX6ABH1/AAR9f4AEfX/ABH2AAAR9gIAEfYDABH2fgAR9oAAEfaCABH2hAAR9ocAEfaIABH2iQAR9ooAEfaLABH2jQAR9o8AEfaQABH2kQAR9pMAEfaUABH3DwAR9xEAEfcUABH3FgAR9xkAEfcaABH3GwAR9xwAEfcdABH3HwAR9yEAEfciABH3IwAR9yUAEfcmABH3oQAR96MAEfelABH3pwAR96oAEferABH3rAAR960AEfeuABH3sAAR97IAEfezABH3tAAR97YAEfe3ABH4MgAR+DQAEfg2ABH4OAAR+DsAEfg8ABH4PQAR+D4AEfg/ABH4QQAR+EMAEfhEABH4RQAR+EcAEfhIABH4wwAR+MUAEfjHABH4yQAR+MwAEfjNABH4zgAR+M8AEfjQABH40gAR+NQAEfjVABH41gAR+NgAEfjZABH5bAAR+Y8AEfmvABH5zwAR+dEAEfnTABH51QAR+dcAEfnaABH52wAR+dwAEfnfABH54AAR+eIAEfnjABH55QAR+egAEfnpABH56gAR+e0AEfnuABH58wAR+gwAEfoVABH6FwAR+hkAEfoiABH6JQAR+igAEfoqABH6cwAR+pcAEfq+ABH64gAR+uUAEfrnABH66QAR+usAEfrtABH67wAR+vAAEfrzABH7DAAR+y0AEfsvABH7MQAR+zMAEfs1ABH7NwAR+zkAEfs7ABH7PQAR+14AEfthABH7ZAAR+2cAEftqABH7bQAR+3AAEftzABH7dgAR+3gAEfvzABH79QAR+/cAEfv5ABH7/AAR+/0AEfv+ABH7/wAR/AAAEfwCABH8BAAR/AUAEfwGABH8CAAR/AkAEfyEABH8hgAR/IgAEfyKABH8jQAR/I4AEfyPABH8kAAR/JEAEfyTABH8lQAR/JYAEfyXABH8mQAR/JoAEf0VABH9FwAR/RoAEf0cABH9HwAR/SAAEf0hABH9IgAR/SMAEf0lABH9JwAR/SgAEf0pABH9KwAR/SwAEf1FABH9RgAR/UcAEf1JABH9xAAR/cYAEf3IABH9ygAR/c0AEf3OABH9zwAR/dAAEf3RABH90wAR/dUAEf3WABH91wAR/dkAEf3aABH+VQAR/lcAEf5ZABH+WwAR/l4AEf5fABH+YAAR/mEAEf5iABH+ZAAR/mYAEf5nABH+aAAR/moAEf5rABH+5gAR/ugAEf7qABH+7AAR/u8AEf7wABH+8QAR/vIAEf7zABH+9QAR/vcAEf74ABH++QAR/vsAEf78ABH/dwAR/3kAEf97ABH/fQAR/4AAEf+BABH/ggAR/4MAEf+EABH/hgAR/4gAEf+JABH/igAR/4wAEf+NABIACAASAAoAEgAMABIADgASABEAEgASABIAEwASABQAEgAVABIAFwASABkAEgAaABIAGwASAB0AEgAeABIAZwASAIsAEgCyABIA1gASANkAEgDbABIA3QASAN8AEgDhABIA4wASAOQAEgDnABIBAAASAR0AEgEfABIBIQASASMAEgElABIBJwASASkAEgErABIBSAASAUsAEgFOABIBUQASAVQAEgFXABIBWgASAV0AEgFfABIB2gASAdwAEgHeABIB4AASAeMAEgHkABIB5QASAeYAEgHnABIB6QASAesAEgHsABIB7QASAe8AEgHwABICawASAm0AEgJvABICcQASAnQAEgJ1ABICdgASAncAEgJ4ABICegASAnwAEgJ9ABICfgASAoAAEgKBABIC/AASAv4AEgMAABIDAgASAwUAEgMGABIDBwASAwgAEgMJABIDCwASAw0AEgMOABIDDwASAxEAEgMSABIDjQASA48AEgOSABIDlAASA5cAEgOYABIDmQASA5oAEgObABIDnQASA58AEgOgABIDoQASA6MAEgOkABIEHwASBCEAEgQjABIEJQASBCgAEgQpABIEKgASBCsAEgQsABIELgASBDAAEgQxABIEMgASBDQAEgQ1ABIEsAASBLIAEgS1ABIEtwASBLoAEgS7ABIEvAASBL0AEgS+ABIEwAASBMIAEgTDABIExAASBMYAEgTHABIE5gASBWEAEgVjABIFZQASBWcAEgVqABIFawASBWwAEgVtABIFbgASBXAAEgVyABIFcwASBXQAEgV2ABIFdwASBgoAEgYtABIGTQASBm0AEgZvABIGcQASBnMAEgZ1ABIGeAASBnkAEgZ6ABIGfQASBn4AEgaAABIGgQASBoMAEgaGABIGhwASBogAEgaLABIGjAASBpEAEgaqABIGswASBrUAEga3ABIGwAASBsMAEgbGABIGyAASBxEAEgc1ABIHXAASB4AAEgeDABIHhQASB4cAEgeJABIHiwASB40AEgeOABIHkQASB6oAEgfLABIHzQASB88AEgfRABIH0wASB9UAEgfXABIH2QASB9sAEgf8ABIH/wASCAIAEggFABIICAASCAsAEggOABIIEQASCBQAEggWABIIkQASCJMAEgiVABIIlwASCJoAEgibABIInAASCJ0AEgieABIIoAASCKIAEgijABIIpAASCKYAEginABIJIgASCSQAEgkmABIJKAASCSsAEgksABIJLQASCS4AEgkvABIJMQASCTMAEgk0ABIJNQASCTcAEgk4ABIJswASCbUAEgm4ABIJugASCb0AEgm+ABIJvwASCcAAEgnBABIJwwASCcUAEgnGABIJxwASCckAEgnKABIJ4wASCeQAEgnlABIJ5wASCmIAEgpkABIKZgASCmgAEgprABIKbAASCm0AEgpuABIKbwASCnEAEgpzABIKdAASCnUAEgp3ABIKeAASCvMAEgr1ABIK9wASCvkAEgr8ABIK/QASCv4AEgr/ABILAAASCwIAEgsEABILBQASCwYAEgsIABILCQASC4QAEguGABILiAASC4oAEguNABILjgASC48AEguQABILkQASC5MAEguVABILlgASC5cAEguZABILmgASDBUAEgwXABIMGgASDBwAEgwfABIMIAASDCEAEgwiABIMIwASDCUAEgwnABIMKAASDCkAEgwrABIMLAASDEIAEgy9ABIMvwASDMEAEgzDABIMxgASDMcAEgzIABIMyQASDMoAEgzMABIMzgASDM8AEgzQABIM0gASDNMAEg0cABINQAASDWcAEg2LABINjgASDZAAEg2SABINlAASDZYAEg2YABINmQASDZwAEg21ABIN0gASDdQAEg3WABIN2AASDdoAEg3cABIN3gASDeAAEg39ABIOAAASDgMAEg4GABIOCQASDgwAEg4PABIOEgASDhQAEg6PABIOkQASDpMAEg6VABIOmAASDpkAEg6aABIOmwASDpwAEg6eABIOoAASDqEAEg6iABIOpAASDqUAEg8gABIPIgASDyQAEg8mABIPKQASDyoAEg8rABIPLAASDy0AEg8vABIPMQASDzIAEg8zABIPNQASDzYAEg+xABIPswASD7UAEg+3ABIPugASD7sAEg+8ABIPvQASD74AEg/AABIPwgASD8MAEg/EABIPxgASD8cAEhBCABIQRAASEEcAEhBJABIQTAASEE0AEhBOABIQTwASEFAAEhBSABIQVAASEFUAEhBWABIQWAASEFkAEhDUABIQ1gASENgAEhDaABIQ3QASEN4AEhDfABIQ4AASEOEAEhDjABIQ5QASEOYAEhDnABIQ6QASEOoAEhFlABIRZwASEWkAEhFrABIRbgASEW8AEhFwABIRcQASEXIAEhF0ABIRdgASEXcAEhF4ABIRegASEXsAEhH2ABIR+AASEfoAEhH8ABIR/wASEgAAEhIBABISAgASEgMAEhIFABISBwASEggAEhIJABISCwASEgwAEhIdABISHgASEiAAEhKjABISxwASEusAEhMOABITNQASE1UAEhN8ABITowASE8MAEhPnABIUCwASFA0AEhQQABIUEgASFBQAEhQWABIUGQASFBwAEhQeABIUIAASFCMAEhQlABIUJwASFCoAEhQtABIULgASFDMAEhRMABIUUQASFFMAEhRYABIUWwASFF0AEhSmABIUygASFPEAEhUVABIVGAASFRoAEhUcABIVHgASFSAAEhUiABIVIwASFSYAEhU/ABIVZAASFWYAEhVoABIVagASFWwAEhVuABIVcAASFXIAEhV0ABIVdgASFZsAEhWeABIVoQASFaQAEhWnABIVqgASFa0AEhWwABIVswASFbYAEhW4ABIWMwASFjUAEhY4ABIWOgASFj0AEhY+ABIWPwASFkAAEhZBABIWQwASFkUAEhZGABIWRwASFkkAEhZKABIWWwASFlwAEhZeABIW2QASFtsAEhbdABIW3wASFuIAEhbjABIW5AASFuUAEhbmABIW6AASFuoAEhbrABIW7AASFu4AEhbvABIXagASF2wAEhdvABIXcQASF3QAEhd1ABIXdgASF3cAEhd4ABIXegASF3wAEhd9ABIXfgASF4AAEheBABIXkgASF5cAEheaABIXnAASF60AEheyABIXtQASF7cAEhgyABIYNAASGDYAEhg4ABIYOwASGDwAEhg9ABIYPgASGD8AEhhBABIYQwASGEQAEhhFABIYRwASGEgAEhjDABIYxQASGMgAEhjKABIYzQASGM4AEhjPABIY0AASGNEAEhjTABIY1QASGNYAEhjXABIY2QASGNoAEhjrABIY7AASGO4AEhlpABIZawASGW0AEhlvABIZcgASGXMAEhl0ABIZdQASGXYAEhl4ABIZegASGXsAEhl8ABIZfgASGX8AEhn6ABIZ/AASGf8AEhoBABIaBAASGgUAEhoGABIaBwASGggAEhoKABIaDAASGg0AEhoOABIaEAASGhEAEhoqABIaKwASGiwAEhouABIaqQASGqsAEhqtABIarwASGrIAEhqzABIatAASGrUAEhq2ABIauAASGroAEhq7ABIavAASGr4AEhq/ABIbOgASGzwAEhs/ABIbQQASG0QAEhtFABIbRgASG0cAEhtIABIbSgASG0wAEhtNABIbTgASG1AAEhtRABIbYwASG3wAEhuJABIbjAASG48AEhuSABIbnwASG6IAEhulABIbqAASG6oAEhu+ABIbzAASHF8AEhyCABIcogASHMIAEhzEABIcxgASHMgAEhzKABIczQASHM4AEhzPABIc0gASHNMAEhzVABIc1gASHNgAEhzbABIc3AASHN0AEhzgABIc4QASHOYAEhz/ABIdCAASHQoAEh0MABIdFQASHRgAEh0bABIdHQASHWYAEh2KABIdsQASHdUAEh3YABId2gASHdwAEh3eABId4AASHeIAEh3jABId5gASHf8AEh4gABIeIgASHiQAEh4mABIeKAASHioAEh4sABIeLgASHjAAEh5RABIeVAASHlcAEh5aABIeXQASHmAAEh5jABIeZgASHmkAEh5rABIe5gASHugAEh7qABIe7AASHu8AEh7wABIe8QASHvIAEh7zABIe9QASHvcAEh74ABIe+QASHvsAEh78ABIfdwASH3kAEh97ABIffQASH4AAEh+BABIfggASH4MAEh+EABIfhgASH4gAEh+JABIfigASH4wAEh+NABIgCAASIAoAEiANABIgDwASIBIAEiATABIgFAASIBUAEiAWABIgGAASIBoAEiAbABIgHAASIB4AEiAfABIgOAASIDkAEiA6ABIgPAASILcAEiC5ABIguwASIL0AEiDAABIgwQASIMIAEiDDABIgxAASIMYAEiDIABIgyQASIMoAEiDMABIgzQASIUgAEiFKABIhTAASIU4AEiFRABIhUgASIVMAEiFUABIhVQASIVcAEiFZABIhWgASIVsAEiFdABIhXgASIdkAEiHbABIh3QASId8AEiHiABIh4wASIeQAEiHlABIh5gASIegAEiHqABIh6wASIewAEiHuABIh7wASImoAEiJsABIibgASInAAEiJzABIidAASInUAEiJ2ABIidwASInkAEiJ7ABIifAASIn0AEiJ/ABIigAASIvsAEiL9ABIi/wASIwEAEiMEABIjBQASIwYAEiMHABIjCAASIwoAEiMMABIjDQASIw4AEiMQABIjEQASI1oAEiN+ABIjpQASI8kAEiPMABIjzgASI9AAEiPSABIj1AASI9YAEiPXABIj2gASI/MAEiQQABIkEgASJBQAEiQWABIkGAASJBoAEiQcABIkHgASJDsAEiQ+ABIkQQASJEQAEiRHABIkSgASJE0AEiRQABIkUgASJM0AEiTPABIk0QASJNMAEiTWABIk1wASJNgAEiTZABIk2gASJNwAEiTeABIk3wASJOAAEiTiABIk4wASJV4AEiVgABIlYgASJWQAEiVnABIlaAASJWkAEiVqABIlawASJW0AEiVvABIlcAASJXEAEiVzABIldAASJe8AEiXxABIl8wASJfUAEiX4ABIl+QASJfoAEiX7ABIl/AASJf4AEiYAABImAQASJgIAEiYEABImBQASJoAAEiaCABImhQASJocAEiaKABImiwASJowAEiaNABImjgASJpAAEiaSABImkwASJpQAEiaWABImlwASJxIAEicUABInFgASJxgAEicbABInHAASJx0AEiceABInHwASJyEAEicjABInJAASJyUAEicnABInKAASJ6MAEielABInpwASJ6kAEiesABInrQASJ64AEievABInsAASJ7IAEie0ABIntQASJ7YAEie4ABInuQASKDQAEig2ABIoOAASKDoAEig9ABIoPgASKD8AEihAABIoQQASKEMAEihFABIoRgASKEcAEihJABIoSgASKN0AEikAABIpIAASKUAAEilCABIpRAASKUYAEilIABIpSwASKUwAEilNABIpUAASKVEAEilTABIpVAASKVYAEilZABIpWgASKVsAEileABIpXwASKWQAEil9ABIphgASKYgAEimKABIpkwASKZYAEimZABIpmwASKeQAEioIABIqLwASKlMAEipWABIqWAASKloAEipcABIqXgASKmAAEiphABIqZAASKn0AEiqeABIqoAASKqIAEiqkABIqpgASKqgAEiqqABIqrAASKq4AEirPABIq0gASKtUAEirYABIq2wASKt4AEirhABIq5AASKucAEirpABIrZAASK2YAEitoABIragASK20AEituABIrbwASK3AAEitxABIrcwASK3UAEit2ABIrdwASK3kAEit6ABIr9QASK/cAEiv5ABIr+wASK/4AEiv/ABIsAAASLAEAEiwCABIsBAASLAYAEiwHABIsCAASLAoAEiwLABIshgASLIgAEiyLABIsjQASLJAAEiyRABIskgASLJMAEiyUABIslgASLJgAEiyZABIsmgASLJwAEiydABIstgASLLcAEiy4ABIsugASLTUAEi03ABItOQASLTsAEi0+ABItPwASLUAAEi1BABItQgASLUQAEi1GABItRwASLUgAEi1KABItSwASLcYAEi3IABItygASLcwAEi3PABIt0AASLdEAEi3SABIt0wASLdUAEi3XABIt2AASLdkAEi3bABIt3AASLlcAEi5ZABIuWwASLl0AEi5gABIuYQASLmIAEi5jABIuZAASLmYAEi5oABIuaQASLmoAEi5sABIubQASLugAEi7qABIu7AASLu4AEi7xABIu8gASLvMAEi70ABIu9QASLvcAEi75ABIu+gASLvsAEi79ABIu/gASL3kAEi97ABIvfQASL38AEi+CABIvgwASL4QAEi+FABIvhgASL4gAEi+KABIviwASL4wAEi+OABIvjwASL9gAEi/8ABIwIwASMEcAEjBKABIwTAASME4AEjBQABIwUgASMFQAEjBVABIwWAASMHEAEjCOABIwkAASMJIAEjCUABIwlgASMJgAEjCaABIwnAASMLkAEjC8ABIwvwASMMIAEjDFABIwyAASMMsAEjDOABIw0AASMUsAEjFNABIxTwASMVEAEjFUABIxVQASMVYAEjFXABIxWAASMVoAEjFcABIxXQASMV4AEjFgABIxYQASMdwAEjHeABIx4AASMeIAEjHlABIx5gASMecAEjHoABIx6QASMesAEjHtABIx7gASMe8AEjHxABIx8gASMm0AEjJvABIycQASMnMAEjJ2ABIydwASMngAEjJ5ABIyegASMnwAEjJ+ABIyfwASMoAAEjKCABIygwASMv4AEjMAABIzAwASMwUAEjMIABIzCQASMwoAEjMLABIzDAASMw4AEjMQABIzEQASMxIAEjMUABIzFQASM5AAEjOSABIzlAASM5YAEjOZABIzmgASM5sAEjOcABIznQASM58AEjOhABIzogASM6MAEjOlABIzpgASNCEAEjQjABI0JQASNCcAEjQqABI0KwASNCwAEjQtABI0LgASNDAAEjQyABI0MwASNDQAEjQ2ABI0NwASNLIAEjS0ABI0tgASNLgAEjS7ABI0vAASNL0AEjS+ABI0vwASNMEAEjTDABI0xAASNMUAEjTHABI0yAASNVsAEjV+ABI1ngASNb4AEjXAABI1wgASNcQAEjXGABI1yQASNcoAEjXLABI1zgASNc8AEjXRABI10gASNdQAEjXXABI12AASNdkAEjXcABI13QASNeIAEjX7ABI2BAASNgYAEjYIABI2EQASNhQAEjYXABI2GQASNmIAEjaGABI2rQASNtEAEjbUABI21gASNtgAEjbaABI23AASNt4AEjbfABI24gASNvsAEjccABI3HgASNyAAEjciABI3JAASNyYAEjcoABI3KgASNywAEjdNABI3UAASN1MAEjdWABI3WQASN1wAEjdfABI3YgASN2UAEjdnABI34gASN+QAEjfmABI36AASN+sAEjfsABI37QASN+4AEjfvABI38QASN/MAEjf0ABI39QASN/cAEjf4ABI4cwASOHUAEjh3ABI4eQASOHwAEjh9ABI4fgASOH8AEjiAABI4ggASOIQAEjiFABI4hgASOIgAEjiJABI5BAASOQYAEjkJABI5CwASOQ4AEjkPABI5EAASOREAEjkSABI5FAASORYAEjkXABI5GAASORoAEjkbABI5NAASOTUAEjk2ABI5OAASObMAEjm1ABI5twASObkAEjm8ABI5vQASOb4AEjm/ABI5wAASOcIAEjnEABI5xQASOcYAEjnIABI5yQASOkQAEjpGABI6SAASOkoAEjpNABI6TgASOk8AEjpQABI6UQASOlMAEjpVABI6VgASOlcAEjpZABI6WgASOtUAEjrXABI62QASOtsAEjreABI63wASOuAAEjrhABI64gASOuQAEjrmABI65wASOugAEjrqABI66wASO2YAEjtoABI7agASO2wAEjtvABI7cAASO3EAEjtyABI7cwASO3UAEjt3ABI7eAASO3kAEjt7ABI7fAASO/cAEjv5ABI7+wASO/0AEjwAABI8AQASPAIAEjwDABI8BAASPAYAEjwIABI8CQASPAoAEjwMABI8DQASPFYAEjx6ABI8oQASPMUAEjzIABI8ygASPMwAEjzOABI80AASPNIAEjzTABI81gASPO8AEj0MABI9DgASPRAAEj0SABI9FAASPRYAEj0YABI9GgASPTcAEj06ABI9PQASPUAAEj1DABI9RgASPUkAEj1MABI9TgASPckAEj3LABI9zQASPc8AEj3SABI90wASPdQAEj3VABI91gASPdgAEj3aABI92wASPdwAEj3eABI93wASPloAEj5cABI+XgASPmAAEj5jABI+ZAASPmUAEj5mABI+ZwASPmkAEj5rABI+bAASPm0AEj5vABI+cAASPusAEj7tABI+7wASPvEAEj70ABI+9QASPvYAEj73ABI++AASPvoAEj78ABI+/QASPv4AEj8AABI/AQASP3wAEj9+ABI/gQASP4MAEj+GABI/hwASP4gAEj+JABI/igASP4wAEj+OABI/jwASP5AAEj+SABI/kwASQA4AEkAQABJAEgASQBQAEkAXABJAGAASQBkAEkAaABJAGwASQB0AEkAfABJAIAASQCEAEkAjABJAJAASQJ8AEkChABJAowASQKUAEkCoABJAqQASQKoAEkCrABJArAASQK4AEkCwABJAsQASQLIAEkC0ABJAtQASQTAAEkEyABJBNAASQTYAEkE5ABJBOgASQTsAEkE8ABJBPQASQT8AEkFBABJBQgASQUMAEkFFABJBRgASQVcAEkFYABJBWgASQd0AEkIBABJCJQASQkgAEkJvABJCjwASQrYAEkLdABJC/QASQyEAEkNFABJDRwASQ0oAEkNMABJDTgASQ1AAEkNTABJDVgASQ1gAEkNaABJDXQASQ18AEkNhABJDZAASQ2cAEkNoABJDbQASQ4YAEkOLABJDjQASQ5IAEkOVABJDlwASQ+AAEkQEABJEKwASRE8AEkRSABJEVAASRFYAEkRYABJEWgASRFwAEkRdABJEYAASRHkAEkSeABJEoAASRKIAEkSkABJEpgASRKgAEkSqABJErAASRK4AEkSwABJE1QASRNgAEkTbABJE3gASROEAEkTkABJE5wASROoAEkTtABJE8AASRPIAEkVtABJFbwASRXIAEkV0ABJFdwASRXgAEkV5ABJFegASRXsAEkV9ABJFfwASRYAAEkWBABJFgwASRYQAEkWVABJFlgASRZgAEkYTABJGFQASRhcAEkYZABJGHAASRh0AEkYeABJGHwASRiAAEkYiABJGJAASRiUAEkYmABJGKAASRikAEkakABJGpgASRqkAEkarABJGrgASRq8AEkawABJGsQASRrIAEka0ABJGtgASRrcAEka4ABJGugASRrsAEkbMABJG0QASRtQAEkbWABJG5wASRuwAEkbvABJG8QASRvYAEkdxABJHcwASR3UAEkd3ABJHegASR3sAEkd8ABJHfQASR34AEkeAABJHggASR4MAEkeEABJHhgASR4cAEkgCABJIBAASSAcAEkgJABJIDAASSA0AEkgOABJIDwASSBAAEkgSABJIFAASSBUAEkgWABJIGAASSBkAEkgqABJIKwASSC0AEkioABJIqgASSKwAEkiuABJIsQASSLIAEkizABJItAASSLUAEki3ABJIuQASSLoAEki7ABJIvQASSL4AEkk5ABJJOwASST4AEklAABJJQwASSUQAEklFABJJRgASSUcAEklJABJJSwASSUwAEklNABJJTwASSVAAEklpABJJagASSWsAEkltABJJ6AASSeoAEknsABJJ7gASSfEAEknyABJJ8wASSfQAEkn1ABJJ9wASSfkAEkn6ABJJ+wASSf0AEkn+ABJKeQASSnsAEkp+ABJKgAASSoMAEkqEABJKhQASSoYAEkqHABJKiQASSosAEkqMABJKjQASSo8AEkqQABJKqAASSsEAEkrKABJKzQASStAAEkrZABJK3AASSt8AEkrhABJK9AASS4cAEkuqABJLygASS+oAEkvsABJL7gASS/AAEkvyABJL9QASS/YAEkv3ABJL+gASS/sAEkv9ABJL/gASTAAAEkwDABJMBAASTAUAEkwIABJMCQASTA4AEkwnABJMMAASTDIAEkw0ABJMPQASTEAAEkxDABJMRQASTI4AEkyyABJM2QASTP0AEk0AABJNAgASTQQAEk0GABJNCAASTQoAEk0LABJNDgASTScAEk1IABJNSgASTUwAEk1OABJNUAASTVIAEk1UABJNVgASTVgAEk15ABJNfAASTX8AEk2CABJNhQASTYgAEk2LABJNjgASTZEAEk2TABJODgASThAAEk4SABJOFAASThcAEk4YABJOGQASThoAEk4bABJOHQASTh8AEk4gABJOIQASTiMAEk4kABJOnwASTqEAEk6jABJOpQASTqgAEk6pABJOqgASTqsAEk6sABJOrgASTrAAEk6xABJOsgASTrQAEk61ABJPMAASTzIAEk81ABJPNwASTzoAEk87ABJPPAASTz0AEk8+ABJPQAAST0IAEk9DABJPRAAST0YAEk9HABJPYAAST2EAEk9iABJPZAAST98AEk/hABJP4wAST+UAEk/oABJP6QAST+oAEk/rABJP7AAST+4AEk/wABJP8QAST/IAEk/0ABJP9QASUHAAElByABJQdAASUHYAElB5ABJQegASUHsAElB8ABJQfQASUH8AElCBABJQggASUIMAElCFABJQhgASUQEAElEDABJRBQASUQcAElEKABJRCwASUQwAElENABJRDgASURAAElESABJREwASURQAElEWABJRFwASUZIAElGUABJRlgASUZgAElGbABJRnAASUZ0AElGeABJRnwASUaEAElGjABJRpAASUaUAElGnABJRqAASUiMAElIlABJSJwASUikAElIsABJSLQASUi4AElIvABJSMAASUjIAElI0ABJSNQASUjYAElI4ABJSOQASUoIAElKmABJSzQASUvEAElL0ABJS9gASUvgAElL6ABJS/AASUv4AElL/ABJTAgASUxsAElM4ABJTOgASUzwAElM+ABJTQAASU0IAElNEABJTRgASU2MAElNmABJTaQASU2wAElNvABJTcgASU3UAElN4ABJTegASU/UAElP3ABJT+QASU/sAElP+ABJT/wASVAAAElQBABJUAgASVAQAElQGABJUBwASVAgAElQKABJUCwASVIYAElSIABJUigASVIwAElSPABJUkAASVJEAElSSABJUkwASVJUAElSXABJUmAASVJkAElSbABJUnAASVRcAElUZABJVGwASVR0AElUgABJVIQASVSIAElUjABJVJAASVSYAElUoABJVKQASVSoAElUsABJVLQASVagAElWqABJVrAASVa4AElWxABJVsgASVbMAElW0ABJVtQASVbcAElW5ABJVugASVbsAElW9ABJVvgASVjkAElY7ABJWPQASVj8AElZCABJWQwASVkQAElZFABJWRgASVkgAElZKABJWSwASVkwAElZOABJWTwASVsoAElbMABJWzwASVtEAElbUABJW1QASVtYAElbXABJW2AASVtoAElbcABJW3QASVt4AElbgABJW4QASVvkAEld0ABJXdgASV3gAEld6ABJXfQASV34AEld/ABJXgAASV4EAEleDABJXhQASV4YAEleHABJXiQASV4oAElgdABJYQAASWGAAEliAABJYggASWIQAEliGABJYiAASWIsAEliMABJYjQASWJAAEliRABJYkwASWJQAEliWABJYmQASWJoAElibABJYngASWJ8AElioABJYwQASWMoAEljMABJYzgASWNcAEljaABJY3QASWN8AElkoABJZTAASWXMAElmXABJZmgASWZwAElmeABJZoAASWaIAElmkABJZpQASWagAElnBABJZ4gASWeQAElnmABJZ6AASWeoAElnsABJZ7gASWfAAElnyABJaEwASWhYAEloZABJaHAASWh8AEloiABJaJQASWigAElorABJaLQASWqgAElqqABJarAASWq4AElqxABJasgASWrMAElq0ABJatQASWrcAElq5ABJaugASWrsAElq9ABJavgASWzkAEls7ABJbPQASWz8AEltCABJbQwASW0QAEltFABJbRgASW0gAEltKABJbSwASW0wAEltOABJbTwASW8oAElvMABJbzwASW9EAElvUABJb1QASW9YAElvXABJb2AASW9oAElvcABJb3QASW94AElvgABJb4QASW/oAElv7ABJb/AASW/4AElx5ABJcewASXH0AElx/ABJcggASXIMAElyEABJchQASXIYAElyIABJcigASXIsAElyMABJcjgASXI8AEl0KABJdDAASXQ4AEl0QABJdEwASXRQAEl0VABJdFgASXRcAEl0ZABJdGwASXRwAEl0dABJdHwASXSAAEl2bABJdnQASXZ8AEl2hABJdpAASXaUAEl2mABJdpwASXagAEl2qABJdrAASXa0AEl2uABJdsAASXbEAEl4sABJeLgASXjAAEl4yABJeNQASXjYAEl43ABJeOAASXjkAEl47ABJePQASXj4AEl4/ABJeQQASXkIAEl69ABJevwASXsEAEl7DABJexgASXscAEl7IABJeyQASXsoAEl7MABJezgASXs8AEl7QABJe0gASXtMAEl8cABJfQAASX2cAEl+LABJfjgASX5AAEl+SABJflAASX5YAEl+YABJfmQASX5wAEl+1ABJf0gASX9QAEl/WABJf2AASX9oAEl/cABJf3gASX+AAEl/9ABJgAAASYAMAEmAGABJgCQASYAwAEmAPABJgEgASYBQAEmCPABJgkQASYJMAEmCVABJgmAASYJkAEmCaABJgmwASYJwAEmCeABJgoAASYKEAEmCiABJgpAASYKUAEmEgABJhIgASYSQAEmEmABJhKQASYSoAEmErABJhLAASYS0AEmEvABJhMQASYTIAEmEzABJhNQASYTYAEmGxABJhswASYbUAEmG3ABJhugASYbsAEmG8ABJhvQASYb4AEmHAABJhwgASYcMAEmHEABJhxgASYccAEmJCABJiRAASYkcAEmJJABJiTAASYk0AEmJOABJiTwASYlAAEmJSABJiVAASYlUAEmJWABJiWAASYlkAEmLUABJi1gASYtgAEmLaABJi3QASYt4AEmLfABJi4AASYuEAEmLjABJi5QASYuYAEmLnABJi6QASYuoAEmNlABJjZwASY2kAEmNrABJjbgASY28AEmNwABJjcQASY3IAEmN0ABJjdgASY3cAEmN4ABJjegASY3sAEmP2ABJj+AASY/oAEmP8ABJj/wASZAAAEmQBABJkAgASZAMAEmQFABJkBwASZAgAEmQJABJkCwASZAwAEmQdABJkHgASZCAAEmSjABJkxwASZOsAEmUOABJlNQASZVUAEmV8ABJlowASZcMAEmXnABJmCwASZg0AEmYQABJmEgASZhQAEmYWABJmGQASZhwAEmYeABJmIAASZiMAEmYlABJmJwASZioAEmYtABJmLgASZjMAEmZMABJmUQASZlMAEmZYABJmWwASZl0AEmamABJmygASZvEAEmcVABJnGAASZxoAEmccABJnHgASZyAAEmciABJnIwASZyYAEmc/ABJnZAASZ2YAEmdoABJnagASZ2wAEmduABJncAASZ3IAEmd0ABJndgASZ5sAEmeeABJnoQASZ6QAEmenABJnqgASZ60AEmewABJnswASZ7YAEme4ABJoMwASaDUAEmg4ABJoOgASaD0AEmg+ABJoPwASaEAAEmhBABJoQwASaEUAEmhGABJoRwASaEkAEmhKABJoWwASaFwAEmheABJo2QASaNsAEmjdABJo3wASaOIAEmjjABJo5AASaOUAEmjmABJo6AASaOoAEmjrABJo7AASaO4AEmjvABJpagASaWwAEmlvABJpcQASaXQAEml1ABJpdgASaXcAEml4ABJpegASaXwAEml9ABJpfgASaYAAEmmBABJpkgASaZMAEmmVABJqEAASahIAEmoUABJqFgASahkAEmoaABJqGwASahwAEmodABJqHwASaiEAEmoiABJqIwASaiUAEmomABJqoQASaqMAEmqmABJqqAASaqsAEmqsABJqrQASaq4AEmqvABJqsQASarMAEmq0ABJqtQASarcAEmq4ABJqyQASasoAEmrMABJrRwASa0kAEmtLABJrTQASa1AAEmtRABJrUgASa1MAEmtUABJrVgASa1gAEmtZABJrWgASa1wAEmtdABJr2AASa9oAEmvdABJr3wASa+IAEmvjABJr5AASa+UAEmvmABJr6AASa+oAEmvrABJr7AASa+4AEmvvABJsCAASbAkAEmwKABJsDAASbIcAEmyJABJsiwASbI0AEmyQABJskQASbJIAEmyTABJslAASbJYAEmyYABJsmQASbJoAEmycABJsnQASbRgAEm0aABJtHQASbR8AEm0iABJtIwASbSQAEm0lABJtJgASbSgAEm0qABJtKwASbSwAEm0uABJtLwASbT0AEm1WABJtawASbW4AEm1xABJtdAASbXcAEm16ABJtjwASbZIAEm2VABJtmAASbZsAEm2eABJtoAASbaYAEm25ABJtzQASbd8AEm35ABJujAASbq8AEm7PABJu7wASbvEAEm7zABJu9QASbvcAEm76ABJu+wASbvwAEm7/ABJvAAASbwIAEm8DABJvBQASbwgAEm8JABJvCgASbw0AEm8OABJvEwASbywAEm81ABJvNwASbzkAEm9CABJvRQASb0gAEm9KABJvkwASb7cAEm/eABJwAgAScAUAEnAHABJwCQAScAsAEnANABJwDwAScBAAEnATABJwLAAScE0AEnBPABJwUQAScFMAEnBVABJwVwAScFkAEnBbABJwXQAScH4AEnCBABJwhAAScIcAEnCKABJwjQAScJAAEnCTABJwlgAScJgAEnETABJxFQAScRcAEnEZABJxHAAScR0AEnEeABJxHwAScSAAEnEiABJxJAAScSUAEnEmABJxKAAScSkAEnGkABJxpgAScagAEnGqABJxrQASca4AEnGvABJxsAAScbEAEnGzABJxtQAScbYAEnG3ABJxuQAScboAEnI1ABJyNwAScjoAEnI8ABJyPwASckAAEnJBABJyQgASckMAEnJFABJyRwASckgAEnJJABJySwASckwAEnJlABJyZgAScmcAEnJpABJy5AAScuYAEnLoABJy6gAScu0AEnLuABJy7wAScvAAEnLxABJy8wAScvUAEnL2ABJy9wAScvkAEnL6ABJzdQASc3cAEnN5ABJzewASc34AEnN/ABJzgAASc4EAEnOCABJzhAASc4YAEnOHABJziAASc4oAEnOLABJ0BgASdAgAEnQKABJ0DAASdA8AEnQQABJ0EQASdBIAEnQTABJ0FQASdBcAEnQYABJ0GQASdBsAEnQcABJ0lwASdJkAEnSbABJ0nQASdKAAEnShABJ0ogASdKMAEnSkABJ0pgASdKgAEnSpABJ0qgASdKwAEnStABJ1KAASdSoAEnUsABJ1LgASdTEAEnUyABJ1MwASdTQAEnU1ABJ1NwASdTkAEnU6ABJ1OwASdT0AEnU+ABJ1hwASdasAEnXSABJ19gASdfkAEnX7ABJ1/QASdf8AEnYBABJ2AwASdgQAEnYHABJ2IAASdj0AEnY/ABJ2QQASdkMAEnZFABJ2RwASdkkAEnZLABJ2aAASdmsAEnZuABJ2cQASdnQAEnZ3ABJ2egASdn0AEnZ/ABJ2+gASdvwAEnb+ABJ3AAASdwMAEncEABJ3BQASdwYAEncHABJ3CQASdwsAEncMABJ3DQASdw8AEncQABJ3iwASd40AEnePABJ3kQASd5QAEneVABJ3lgASd5cAEneYABJ3mgASd5wAEnedABJ3ngASd6AAEnehABJ4HAASeB4AEnggABJ4IgASeCUAEngmABJ4JwASeCgAEngpABJ4KwASeC0AEnguABJ4LwASeDEAEngyABJ4rQASeK8AEniyABJ4tAASeLcAEni4ABJ4uQASeLoAEni7ABJ4vQASeL8AEnjAABJ4wQASeMMAEnjEABJ5PwASeUEAEnlDABJ5RQASeUgAEnlJABJ5SgASeUsAEnlMABJ5TgASeVAAEnlRABJ5UgASeVQAEnlVABJ50AASedIAEnnUABJ51gASedkAEnnaABJ52wASedwAEnndABJ53wASeeEAEnniABJ54wASeeUAEnnmABJ6YQASemMAEnplABJ6ZwASemoAEnprABJ6bAASem0AEnpuABJ6cAASenIAEnpzABJ6dAASenYAEnp3ABJ7CgASey0AEntNABJ7bQASe28AEntxABJ7cwASe3UAEnt4ABJ7eQASe3oAEnt9ABJ7fgASe4AAEnuBABJ7gwASe4YAEnuHABJ7iAASe4sAEnuMABJ7kQASe6oAEnuzABJ7tQASe7cAEnvAABJ7wwASe8YAEnvIABJ8EQASfDUAEnxcABJ8gAASfIMAEnyFABJ8hwASfIkAEnyLABJ8jQASfI4AEnyRABJ8qgASfMsAEnzNABJ8zwASfNEAEnzTABJ81QASfNcAEnzZABJ82wASfPwAEnz/ABJ9AgASfQUAEn0IABJ9CwASfQ4AEn0RABJ9FAASfRYAEn2RABJ9kwASfZUAEn2XABJ9mgASfZsAEn2cABJ9nQASfZ4AEn2gABJ9ogASfaMAEn2kABJ9pgASfacAEn4iABJ+JAASfiYAEn4oABJ+KwASfiwAEn4tABJ+LgASfi8AEn4xABJ+MwASfjQAEn41ABJ+NwASfjgAEn6zABJ+tQASfrgAEn66ABJ+vQASfr4AEn6/ABJ+wAASfsEAEn7DABJ+xQASfsYAEn7HABJ+yQASfsoAEn7jABJ+5AASfuUAEn7nABJ/YgASf2QAEn9mABJ/aAASf2sAEn9sABJ/bQASf24AEn9vABJ/cQASf3MAEn90ABJ/dQASf3cAEn94ABJ/8wASf/UAEn/3ABJ/+QASf/wAEn/9ABJ//gASf/8AEoAAABKAAgASgAQAEoAFABKABgASgAgAEoAJABKAhAASgIYAEoCIABKAigASgI0AEoCOABKAjwASgJAAEoCRABKAkwASgJUAEoCWABKAlwASgJkAEoCaABKBFQASgRcAEoEZABKBGwASgR4AEoEfABKBIAASgSEAEoEiABKBJAASgSYAEoEnABKBKAASgSoAEoErABKBpgASgagAEoGqABKBrAASga8AEoGwABKBsQASgbIAEoGzABKBtQASgbcAEoG4ABKBuQASgbsAEoG8ABKCBQASgikAEoJQABKCdAASgncAEoJ5ABKCewASgn0AEoJ/ABKCgQASgoIAEoKFABKCngASgrsAEoK9ABKCvwASgsEAEoLDABKCxQASgscAEoLJABKC5gASgukAEoLsABKC7wASgvIAEoL1ABKC+AASgvsAEoL9ABKDeAASg3oAEoN8ABKDfgASg4EAEoOCABKDgwASg4QAEoOFABKDhwASg4kAEoOKABKDiwASg40AEoOOABKECQAShAsAEoQNABKEDwAShBIAEoQTABKEFAAShBUAEoQWABKEGAAShBoAEoQbABKEHAAShB4AEoQfABKEmgAShJwAEoSeABKEoAAShKMAEoSkABKEpQAShKYAEoSnABKEqQAShKsAEoSsABKErQAShK8AEoSwABKFKwAShS0AEoUwABKFMgAShTUAEoU2ABKFNwAShTgAEoU5ABKFOwAShT0AEoU+ABKFPwAShUEAEoVCABKFvQAShb8AEoXBABKFwwAShcYAEoXHABKFyAAShckAEoXKABKFzAAShc4AEoXPABKF0AAShdIAEoXTABKGTgAShlAAEoZTABKGVQAShlgAEoZZABKGWgAShlsAEoZcABKGXgAShmAAEoZhABKGYgAShmQAEoZlABKGhAAShv8AEocBABKHAwAShwUAEocIABKHCQAShwoAEocLABKHDAAShw4AEocQABKHEQAShxIAEocUABKHFQASh6gAEofLABKH6wASiAsAEogNABKIDwASiBEAEogTABKIFgASiBcAEogYABKIGwASiBwAEogeABKIHwASiCEAEogkABKIJQASiCYAEogpABKIKgASiC8AEohIABKIUQASiFMAEohVABKIXgASiGEAEohkABKIZgASiK8AEojTABKI+gASiR4AEokhABKJIwASiSUAEoknABKJKQASiSsAEoksABKJLwASiUgAEolpABKJawASiW0AEolvABKJcQASiXMAEol1ABKJdwASiXkAEomaABKJnQASiaAAEomjABKJpgASiakAEomsABKJrwASibIAEom0ABKKLwASijEAEoozABKKNQASijgAEoo5ABKKOgASijsAEoo8ABKKPgASikAAEopBABKKQgASikQAEopFABKKwAASisIAEorEABKKxgASiskAEorKABKKywASiswAEorNABKKzwASitEAEorSABKK0wASitUAEorWABKLUQASi1MAEotWABKLWAASi1sAEotcABKLXQASi14AEotfABKLYQASi2MAEotkABKLZQASi2cAEotoABKLgQASi4IAEouDABKLhQASjAAAEowCABKMBAASjAYAEowJABKMCgASjAsAEowMABKMDQASjA8AEowRABKMEgASjBMAEowVABKMFgASjJEAEoyTABKMlQASjJcAEoyaABKMmwASjJwAEoydABKMngASjKAAEoyiABKMowASjKQAEoymABKMpwASjSIAEo0kABKNJgASjSgAEo0rABKNLAASjS0AEo0uABKNLwASjTEAEo0zABKNNAASjTUAEo03ABKNOAASjbMAEo21ABKNtwASjbkAEo28ABKNvQASjb4AEo2/ABKNwAASjcIAEo3EABKNxQASjcYAEo3IABKNyQASjkQAEo5GABKOSAASjkoAEo5NABKOTgASjk8AEo5QABKOUQASjlMAEo5VABKOVgASjlcAEo5ZABKOWgASjqMAEo7HABKO7gASjxIAEo8VABKPFwASjxkAEo8bABKPHQASjx8AEo8gABKPIwASjzwAEo9ZABKPWwASj10AEo9fABKPYQASj2MAEo9lABKPZwASj4QAEo+HABKPigASj40AEo+QABKPkwASj5YAEo+ZABKPmwASkBYAEpAYABKQGgASkBwAEpAfABKQIAASkCEAEpAiABKQIwASkCUAEpAnABKQKAASkCkAEpArABKQLAASkKcAEpCpABKQqwASkK0AEpCwABKQsQASkLIAEpCzABKQtAASkLYAEpC4ABKQuQASkLoAEpC8ABKQvQASkTgAEpE6ABKRPAASkT4AEpFBABKRQgASkUMAEpFEABKRRQASkUcAEpFJABKRSgASkUsAEpFNABKRTgASkckAEpHLABKRzQASkc8AEpHSABKR0wASkdQAEpHVABKR1gASkdgAEpHaABKR2wASkdwAEpHeABKR3wASkloAEpJcABKSXgASkmAAEpJjABKSZAASkmUAEpJmABKSZwASkmkAEpJrABKSbAASkm0AEpJvABKScAASkusAEpLtABKS7wASkvEAEpL0ABKS9QASkvYAEpL3ABKS+AASkvoAEpL8ABKS/QASkv4AEpMAABKTAQASk3wAEpN+ABKTgAASk4IAEpOFABKThgASk4cAEpOIABKTiQASk4sAEpONABKTjgASk48AEpORABKTkgASlCUAEpRIABKUaAASlIgAEpSKABKUjAASlI4AEpSQABKUkwASlJQAEpSVABKUmAASlJkAEpSbABKUnAASlJ4AEpShABKUogASlKMAEpSmABKUpwASlLAAEpTJABKU0gASlNQAEpTWABKU3wASlOIAEpTlABKU5wASlTAAEpVUABKVewASlZ8AEpWiABKVpAASlaYAEpWoABKVqgASlawAEpWtABKVsAASlckAEpXqABKV7AASle4AEpXwABKV8gASlfQAEpX2ABKV+AASlfoAEpYbABKWHgASliEAEpYkABKWJwASlioAEpYtABKWMAASljMAEpY1ABKWsAASlrIAEpa0ABKWtgASlrkAEpa6ABKWuwASlrwAEpa9ABKWvwASlsEAEpbCABKWwwASlsUAEpbGABKXQQASl0MAEpdFABKXRwASl0oAEpdLABKXTAASl00AEpdOABKXUAASl1IAEpdTABKXVAASl1YAEpdXABKX0gASl9QAEpfXABKX2QASl9wAEpfdABKX3gASl98AEpfgABKX4gASl+QAEpflABKX5gASl+gAEpfpABKYAgASmAMAEpgEABKYBgASmIEAEpiDABKYhQASmIcAEpiKABKYiwASmIwAEpiNABKYjgASmJAAEpiSABKYkwASmJQAEpiWABKYlwASmRIAEpkUABKZFgASmRgAEpkbABKZHAASmR0AEpkeABKZHwASmSEAEpkjABKZJAASmSUAEpknABKZKAASmaMAEpmlABKZpwASmakAEpmsABKZrQASma4AEpmvABKZsAASmbIAEpm0ABKZtQASmbYAEpm4ABKZuQASmjQAEpo2ABKaOAASmjoAEpo9ABKaPgASmj8AEppAABKaQQASmkMAEppFABKaRgASmkcAEppJABKaSgASmsUAEprHABKayQASmssAEprOABKazwASmtAAEprRABKa0gASmtQAEprWABKa1wASmtgAEpraABKa2wASmyQAEptIABKbbwASm5MAEpuWABKbmAASm5oAEpucABKbngASm6AAEpuhABKbpAASm70AEpvaABKb3AASm94AEpvgABKb4gASm+QAEpvmABKb6AASnAUAEpwIABKcCwASnA4AEpwRABKcFAASnBcAEpwaABKcHAASnJcAEpyZABKcmwASnJ0AEpygABKcoQASnKIAEpyjABKcpAASnKYAEpyoABKcqQASnKoAEpysABKcrQASnSgAEp0qABKdLAASnS4AEp0xABKdMgASnTMAEp00ABKdNQASnTcAEp05ABKdOgASnTsAEp09ABKdPgASnbkAEp27ABKdvQASnb8AEp3CABKdwwASncQAEp3FABKdxgASncgAEp3KABKdywASncwAEp3OABKdzwASnkoAEp5MABKeTgASnlAAEp5TABKeVAASnlUAEp5WABKeVwASnlkAEp5bABKeXAASnl0AEp5fABKeYAASntsAEp7dABKe3wASnuEAEp7kABKe5QASnuYAEp7nABKe6AASnuoAEp7sABKe7QASnu4AEp7wABKe8QASn2wAEp9uABKfcAASn3IAEp91ABKfdgASn3cAEp94ABKfeQASn3sAEp99ABKffgASn38AEp+BABKfggASn/0AEp//ABKgAQASoAMAEqAGABKgBwASoAgAEqAJABKgCgASoAwAEqAOABKgDwASoBAAEqASABKgEwASoKYAEqDJABKg6QASoQkAEqELABKhDQASoQ8AEqERABKhFAASoRUAEqEWABKhGQASoRoAEqEcABKhHQASoR8AEqEiABKhIwASoSQAEqEnABKhKAASoS0AEqFGABKhTwASoVEAEqFTABKhXAASoV8AEqFiABKhZAASoa0AEqHRABKh+AASohwAEqIfABKiIQASoiMAEqIlABKiJwASoikAEqIqABKiLQASokYAEqJnABKiaQASomsAEqJtABKibwASonEAEqJzABKidQASoncAEqKYABKimwASop4AEqKhABKipAASoqcAEqKqABKirQASorAAEqKyABKjLQASoy8AEqMxABKjMwASozYAEqM3ABKjOAASozkAEqM6ABKjPAASoz4AEqM/ABKjQAASo0IAEqNDABKjvgASo8AAEqPCABKjxAASo8cAEqPIABKjyQASo8oAEqPLABKjzQASo88AEqPQABKj0QASo9MAEqPUABKkTwASpFEAEqRUABKkVgASpFkAEqRaABKkWwASpFwAEqRdABKkXwASpGEAEqRiABKkYwASpGUAEqRmABKkfwASpIAAEqSBABKkgwASpP4AEqUAABKlAgASpQQAEqUHABKlCAASpQkAEqUKABKlCwASpQ0AEqUPABKlEAASpREAEqUTABKlFAASpY8AEqWRABKlkwASpZUAEqWYABKlmQASpZoAEqWbABKlnAASpZ4AEqWgABKloQASpaIAEqWkABKlpQASpiAAEqYiABKmJAASpiYAEqYpABKmKgASpisAEqYsABKmLQASpi8AEqYxABKmMgASpjMAEqY1ABKmNgASprEAEqazABKmtQASprcAEqa6ABKmuwASprwAEqa9ABKmvgASpsAAEqbCABKmwwASpsQAEqbGABKmxwASp0IAEqdEABKnRgASp0gAEqdLABKnTAASp00AEqdOABKnTwASp1EAEqdTABKnVAASp1UAEqdXABKnWAASp6EAEqfFABKn7AASqBAAEqgTABKoFQASqBcAEqgZABKoGwASqB0AEqgeABKoIQASqDoAEqhXABKoWQASqFsAEqhdABKoXwASqGEAEqhjABKoZQASqIIAEqiFABKoiAASqIsAEqiOABKokQASqJQAEqiXABKomQASqRQAEqkWABKpGAASqRoAEqkdABKpHgASqR8AEqkgABKpIQASqSMAEqklABKpJgASqScAEqkpABKpKgASqaUAEqmnABKpqQASqasAEqmuABKprwASqbAAEqmxABKpsgASqbQAEqm2ABKptwASqbgAEqm6ABKpuwASqjYAEqo4ABKqOgASqjwAEqo/ABKqQAASqkEAEqpCABKqQwASqkUAEqpHABKqSAASqkkAEqpLABKqTAASqscAEqrJABKqzAASqs4AEqrRABKq0gASqtMAEqrUABKq1QASqtcAEqrZABKq2gASqtsAEqrdABKq3gASq1kAEqtbABKrXQASq18AEqtiABKrYwASq2QAEqtlABKrZgASq2gAEqtqABKrawASq2wAEqtuABKrbwASq+oAEqvsABKr7gASq/AAEqvzABKr9AASq/UAEqv2ABKr9wASq/kAEqv7ABKr/AASq/0AEqv/ABKsAAASrHsAEqx9ABKsfwASrIEAEqyEABKshQASrIYAEqyHABKsiAASrIoAEqyMABKsjQASrI4AEqyQABKskQASrKIAEqyjABKspQASrSgAEq1MABKtcAASrZMAEq26ABKt2gASrgEAEq4oABKuSAASrmwAEq6QABKukgASrpUAEq6XABKumQASrpsAEq6eABKuoQASrqMAEq6lABKuqAASrqoAEq6sABKurwASrrIAEq6zABKuuAASrtEAEq7WABKu2AASrt0AEq7gABKu4gASrysAEq9PABKvdgASr5oAEq+dABKvnwASr6EAEq+jABKvpQASr6cAEq+oABKvqwASr8QAEq/pABKv6wASr+0AEq/vABKv8QASr/MAEq/1ABKv9wASr/kAEq/7ABKwIAASsCMAErAmABKwKQASsCwAErAvABKwMgASsDUAErA4ABKwOwASsD0AErC4ABKwugASsL0AErC/ABKwwgASsMMAErDEABKwxQASsMYAErDIABKwygASsMsAErDMABKwzgASsM8AErDgABKw4QASsOMAErFeABKxYAASsWIAErFkABKxZwASsWgAErFpABKxagASsWsAErFtABKxbwASsXAAErFxABKxcwASsXQAErHvABKx8QASsfQAErH2ABKx+QASsfoAErH7ABKx/AASsf0AErH/ABKyAQASsgIAErIDABKyBQASsgYAErIXABKyHAASsh8AErIhABKyMgASsjsAErI+ABKyQQASskMAErJWABKy0QASstMAErLVABKy1wASstoAErLbABKy3AASst0AErLeABKy4AASsuIAErLjABKy5AASsuYAErLnABKzYgASs2QAErNnABKzaQASs2wAErNtABKzbgASs28AErNwABKzcgASs3QAErN1ABKzdgASs3gAErN5ABKzigASs4sAErONABK0CAAStAoAErQMABK0DgAStBEAErQSABK0EwAStBQAErQVABK0FwAStBkAErQaABK0GwAStB0AErQeABK0mQAStJsAErSeABK0oAAStKMAErSkABK0pQAStKYAErSnABK0qQAStKsAErSsABK0rQAStK8AErSwABK0yQAStMoAErTLABK0zQAStUgAErVKABK1TAAStU4AErVRABK1UgAStVMAErVUABK1VQAStVcAErVZABK1WgAStVsAErVdABK1XgAStdkAErXbABK13gASteAAErXjABK15AASteUAErXmABK15wAStekAErXrABK17AASte0AErXvABK18AAStg4AErYnABK2MAAStjMAErY2ABK2PwAStkIAErZFABK2RwAStloAErbtABK3EAAStzAAErdQABK3UgASt1QAErdWABK3WAASt1sAErdcABK3XQASt2AAErdhABK3YwASt2QAErdmABK3aQASt2oAErdrABK3bgASt28AErd0ABK3jQASt5YAEreYABK3mgASt6MAEremABK3qQASt6sAErf0ABK4GAASuD8AErhjABK4ZgASuGgAErhqABK4bAASuG4AErhwABK4cQASuHQAEriNABK4rgASuLAAEriyABK4tAASuLYAEri4ABK4ugASuLwAEri+ABK43wASuOIAErjlABK46AASuOsAErjuABK48QASuPQAErj3ABK4+QASuXQAErl2ABK5eAASuXoAErl9ABK5fgASuX8AErmAABK5gQASuYMAErmFABK5hgASuYcAErmJABK5igASugUAEroHABK6CQASugsAEroOABK6DwASuhAAEroRABK6EgASuhQAEroWABK6FwASuhgAEroaABK6GwASupYAErqYABK6mwASup0AErqgABK6oQASuqIAErqjABK6pAASuqYAErqoABK6qQASuqoAErqsABK6rQASusYAErrHABK6yAASusoAErtFABK7RwASu0kAErtLABK7TgASu08AErtQABK7UQASu1IAErtUABK7VgASu1cAErtYABK7WgASu1sAErvWABK72AASu9oAErvcABK73wASu+AAErvhABK74gASu+MAErvlABK75wASu+gAErvpABK76wASu+wAErxnABK8aQASvGsAErxtABK8cAASvHEAErxyABK8cwASvHQAErx2ABK8eAASvHkAErx6ABK8fAASvH0AErz4ABK8+gASvPwAErz+ABK9AQASvQIAEr0DABK9BAASvQUAEr0HABK9CQASvQoAEr0LABK9DQASvQ4AEr2JABK9iwASvY0AEr2PABK9kgASvZMAEr2UABK9lQASvZYAEr2YABK9mgASvZsAEr2cABK9ngASvZ8AEr3oABK+DAASvjMAEr5XABK+WgASvlwAEr5eABK+YAASvmIAEr5kABK+ZQASvmgAEr6BABK+ngASvqAAEr6iABK+pAASvqYAEr6oABK+qgASvqwAEr7JABK+zAASvs8AEr7SABK+1QASvtgAEr7bABK+3gASvuAAEr9bABK/XQASv18AEr9hABK/ZAASv2UAEr9mABK/ZwASv2gAEr9qABK/bAASv20AEr9uABK/cAASv3EAEr/sABK/7gASv/AAEr/yABK/9QASv/YAEr/3ABK/+AASv/kAEr/7ABK//QASv/4AEr//ABLAAQASwAIAEsB9ABLAfwASwIEAEsCDABLAhgASwIcAEsCIABLAiQASwIoAEsCMABLAjgASwI8AEsCQABLAkgASwJMAEsEOABLBEAASwRMAEsEVABLBGAASwRkAEsEaABLBGwASwRwAEsEeABLBIAASwSEAEsEiABLBJAASwSUAEsGgABLBogASwaQAEsGmABLBqQASwaoAEsGrABLBrAASwa0AEsGvABLBsQASwbIAEsGzABLBtQASwbYAEsIxABLCMwASwjUAEsI3ABLCOgASwjsAEsI8ABLCPQASwj4AEsJAABLCQgASwkMAEsJEABLCRgASwkcAEsLCABLCxAASwsYAEsLIABLCywASwswAEsLNABLCzgASws8AEsLRABLC0wASwtQAEsLVABLC1wASwtgAEsNrABLDjgASw64AEsPOABLD0AASw9IAEsPUABLD1gASw9kAEsPaABLD2wASw94AEsPfABLD4QASw+IAEsPkABLD5wASw+gAEsPpABLD7AASw+0AEsPyABLECwASxBQAEsQWABLEGAASxCEAEsQkABLEJwASxCkAEsRyABLElgASxL0AEsThABLE5AASxOYAEsToABLE6gASxOwAEsTuABLE7wASxPIAEsULABLFLAASxS4AEsUwABLFMgASxTQAEsU2ABLFOAASxToAEsU8ABLFXQASxWAAEsVjABLFZgASxWkAEsVsABLFbwASxXIAEsV1ABLFdwASxfIAEsX0ABLF9gASxfgAEsX7ABLF/AASxf0AEsX+ABLF/wASxgEAEsYDABLGBAASxgUAEsYHABLGCAASxoMAEsaFABLGhwASxokAEsaMABLGjQASxo4AEsaPABLGkAASxpIAEsaUABLGlQASxpYAEsaYABLGmQASxxQAEscWABLHGQASxxsAEsceABLHHwASxyAAEschABLHIgASxyQAEscmABLHJwASxygAEscqABLHKwASx0QAEsdFABLHRgASx0gAEsfDABLHxQASx8cAEsfJABLHzAASx80AEsfOABLHzwASx9AAEsfSABLH1AASx9UAEsfWABLH2AASx9kAEshUABLIVgASyFgAEshaABLIXQASyF4AEshfABLIYAASyGEAEshjABLIZQASyGYAEshnABLIaQASyGoAEsjlABLI5wASyOkAEsjrABLI7gASyO8AEsjwABLI8QASyPIAEsj0ABLI9gASyPcAEsj4ABLI+gASyPsAEsl2ABLJeAASyXoAEsl8ABLJfwASyYAAEsmBABLJggASyYMAEsmFABLJhwASyYgAEsmJABLJiwASyYwAEsoHABLKCQASygsAEsoNABLKEAASyhEAEsoSABLKEwASyhQAEsoWABLKGAASyhkAEsoaABLKHAASyh0AEspmABLKigASyrEAEsrVABLK2AASytoAEsrcABLK3gASyuAAEsriABLK4wASyuYAEsr/ABLLHAASyx4AEssgABLLIgASyyQAEssmABLLKAASyyoAEstHABLLSgASy00AEstQABLLUwASy1YAEstZABLLXAASy14AEsvZABLL2wASy90AEsvfABLL4gASy+MAEsvkABLL5QASy+YAEsvoABLL6gASy+sAEsvsABLL7gASy+8AEsxqABLMbAASzG4AEsxwABLMcwASzHQAEsx1ABLMdgASzHcAEsx5ABLMewASzHwAEsx9ABLMfwASzIAAEsz7ABLM/QASzP8AEs0BABLNBAASzQUAEs0GABLNBwASzQgAEs0KABLNDAASzQ0AEs0OABLNEAASzREAEs2MABLNjgASzZEAEs2TABLNlgASzZcAEs2YABLNmQASzZoAEs2cABLNngASzZ8AEs2gABLNogASzaMAEs4eABLOIAASziIAEs4kABLOJwASzigAEs4pABLOKgASzisAEs4tABLOLwASzjAAEs4xABLOMwASzjQAEs6vABLOsQASzrMAEs61ABLOuAASzrkAEs66ABLOuwASzrwAEs6+ABLOwAASzsEAEs7CABLOxAASzsUAEs9AABLPQgASz0QAEs9GABLPSQASz0oAEs9LABLPTAASz00AEs9PABLPUQASz1IAEs9TABLPVQASz1YAEs9nABLPaAASz2oAEs/tABLQEQAS0DUAEtBYABLQfwAS0J8AEtDGABLQ7QAS0Q0AEtExABLRVQAS0VcAEtFaABLRXAAS0V4AEtFgABLRYwAS0WYAEtFoABLRagAS0W0AEtFvABLRcQAS0XQAEtF3ABLReAAS0X0AEtGWABLRmwAS0Z0AEtGiABLRpQAS0acAEtHwABLSFAAS0jsAEtJfABLSYgAS0mQAEtJmABLSaAAS0moAEtJsABLSbQAS0nAAEtKJABLSrgAS0rAAEtKyABLStAAS0rYAEtK4ABLSugAS0rwAEtK+ABLSwAAS0uUAEtLoABLS6wAS0u4AEtLxABLS9AAS0vcAEtL6ABLS/QAS0wAAEtMCABLTfQAS038AEtOCABLThAAS04cAEtOIABLTiQAS04oAEtOLABLTjQAS048AEtOQABLTkQAS05MAEtOUABLTpQAS06YAEtOoABLUIwAS1CUAEtQnABLUKQAS1CwAEtQtABLULgAS1C8AEtQwABLUMgAS1DQAEtQ1ABLUNgAS1DgAEtQ5ABLUtAAS1LYAEtS5ABLUuwAS1L4AEtS/ABLUwAAS1MEAEtTCABLUxAAS1MYAEtTHABLUyAAS1MoAEtTLABLU3AAS1OEAEtTkABLU5gAS1PcAEtUAABLVAwAS1QYAEtUIABLVJAAS1TYAEtWxABLVswAS1bUAEtW3ABLVugAS1bsAEtW8ABLVvQAS1b4AEtXAABLVwgAS1cMAEtXEABLVxgAS1ccAEtZCABLWRAAS1kcAEtZJABLWTAAS1k0AEtZOABLWTwAS1lAAEtZSABLWVAAS1lUAEtZWABLWWAAS1lkAEtZqABLWawAS1m0AEtboABLW6gAS1uwAEtbuABLW8QAS1vIAEtbzABLW9AAS1vUAEtb3ABLW+QAS1voAEtb7ABLW/QAS1v4AEtd5ABLXewAS134AEteAABLXgwAS14QAEteFABLXhgAS14cAEteJABLXiwAS14wAEteNABLXjwAS15AAEtepABLXqgAS16sAEtetABLYKAAS2CoAEtgsABLYLgAS2DEAEtgyABLYMwAS2DQAEtg1ABLYNwAS2DkAEtg6ABLYOwAS2D0AEtg+ABLYuQAS2LsAEti+ABLYwAAS2MMAEtjEABLYxQAS2MYAEtjHABLYyQAS2MsAEtjMABLYzQAS2M8AEtjQABLY4gAS2PsAEtkkABLZJwAS2SoAEtktABLZMAAS2TMAEtk2ABLZOQAS2TwAEtk/ABLZQgAS2WsAEtluABLZcQAS2XQAEtl3ABLZegAS2X0AEtmAABLZgwAS2YYAEtmJABLZiwAS2ZoAEtm2ABLZzAAS2eMAEtn6ABLaEQAS2h8AEto7ABLaTQAS2uAAEtsDABLbIwAS20MAEttFABLbRwAS20kAEttLABLbTgAS208AEttQABLbUwAS21QAEttWABLbVwAS21kAEttcABLbXQAS214AEtthABLbYgAS22cAEtuAABLbiQAS24sAEtuNABLblgAS25kAEtucABLbngAS2+cAEtwLABLcMgAS3FYAEtxZABLcWwAS3F0AEtxfABLcYQAS3GMAEtxkABLcZwAS3IAAEtyhABLcowAS3KUAEtynABLcqQAS3KsAEtytABLcrwAS3LEAEtzSABLc1QAS3NgAEtzbABLc3gAS3OEAEtzkABLc5wAS3OoAEtzsABLdZwAS3WkAEt1rABLdbQAS3XAAEt1xABLdcgAS3XMAEt10ABLddgAS3XgAEt15ABLdegAS3XwAEt19ABLd+AAS3foAEt38ABLd/gAS3gEAEt4CABLeAwAS3gQAEt4FABLeBwAS3gkAEt4KABLeCwAS3g0AEt4OABLeiQAS3osAEt6OABLekAAS3pMAEt6UABLelQAS3pYAEt6XABLemQAS3psAEt6cABLenQAS3p8AEt6gABLeuQAS3roAEt67ABLevQAS3zgAEt86ABLfPAAS3z4AEt9BABLfQgAS30MAEt9EABLfRQAS30cAEt9JABLfSgAS30sAEt9NABLfTgAS38kAEt/LABLfzQAS388AEt/SABLf0wAS39QAEt/VABLf1gAS39gAEt/aABLf2wAS39wAEt/eABLf3wAS4FoAEuBcABLgXgAS4GAAEuBjABLgZAAS4GUAEuBmABLgZwAS4GkAEuBrABLgbAAS4G0AEuBvABLgcAAS4OsAEuDtABLg7wAS4PEAEuD0ABLg9QAS4PYAEuD3ABLg+AAS4PoAEuD8ABLg/QAS4P4AEuEAABLhAQAS4XwAEuF+ABLhgAAS4YIAEuGFABLhhgAS4YcAEuGIABLhiQAS4YsAEuGNABLhjgAS4Y8AEuGRABLhkgAS4dsAEuH/ABLiJgAS4koAEuJNABLiTwAS4lEAEuJTABLiVQAS4lcAEuJYABLiWwAS4nQAEuKRABLikwAS4pUAEuKXABLimQAS4psAEuKdABLinwAS4rwAEuK/ABLiwgAS4sUAEuLIABLiywAS4s4AEuLRABLi0wAS404AEuNQABLjUgAS41QAEuNXABLjWAAS41kAEuNaABLjWwAS410AEuNfABLjYAAS42EAEuNjABLjZAAS498AEuPhABLj4wAS4+UAEuPoABLj6QAS4+oAEuPrABLj7AAS4+4AEuPwABLj8QAS4/IAEuP0ABLj9QAS5HAAEuRyABLkdAAS5HYAEuR5ABLkegAS5HsAEuR8ABLkfQAS5H8AEuSBABLkggAS5IMAEuSFABLkhgAS5QEAEuUDABLlBgAS5QgAEuULABLlDAAS5Q0AEuUOABLlDwAS5REAEuUTABLlFAAS5RUAEuUXABLlGAAS5ZMAEuWVABLllwAS5ZkAEuWcABLlnQAS5Z4AEuWfABLloAAS5aIAEuWkABLlpQAS5aYAEuWoABLlqQAS5iQAEuYmABLmKAAS5ioAEuYtABLmLgAS5i8AEuYwABLmMQAS5jMAEuY1ABLmNgAS5jcAEuY5ABLmOgAS5rUAEua3ABLmuQAS5rsAEua+ABLmvwAS5sAAEubBABLmwgAS5sQAEubGABLmxwAS5sgAEubKABLmywAS514AEueBABLnoQAS58EAEufDABLnxQAS58cAEufJABLnzAAS580AEufOABLn0QAS59IAEufUABLn1QAS59cAEufaABLn2wAS59wAEuffABLn4AAS5+UAEuf+ABLoBwAS6AkAEugLABLoFAAS6BcAEugaABLoHAAS6GUAEuiJABLosAAS6NQAEujXABLo2QAS6NsAEujdABLo3wAS6OEAEujiABLo5QAS6P4AEukfABLpIQAS6SMAEuklABLpJwAS6SkAEukrABLpLQAS6S8AEulQABLpUwAS6VYAEulZABLpXAAS6V8AEuliABLpZQAS6WgAEulqABLp5QAS6ecAEunpABLp6wAS6e4AEunvABLp8AAS6fEAEunyABLp9AAS6fYAEun3ABLp+AAS6foAEun7ABLqdgAS6ngAEup6ABLqfAAS6n8AEuqAABLqgQAS6oIAEuqDABLqhQAS6ocAEuqIABLqiQAS6osAEuqMABLrBwAS6wkAEusMABLrDgAS6xEAEusSABLrEwAS6xQAEusVABLrFwAS6xkAEusaABLrGwAS6x0AEuseABLrNwAS6zgAEus5ABLrOwAS67YAEuu4ABLrugAS67wAEuu/ABLrwAAS68EAEuvCABLrwwAS68UAEuvHABLryAAS68kAEuvLABLrzAAS7EcAEuxJABLsSwAS7E0AEuxQABLsUQAS7FIAEuxTABLsVAAS7FYAEuxYABLsWQAS7FoAEuxcABLsXQAS7NgAEuzaABLs3AAS7N4AEuzhABLs4gAS7OMAEuzkABLs5QAS7OcAEuzpABLs6gAS7OsAEuztABLs7gAS7WkAEu1rABLtbQAS7W8AEu1yABLtcwAS7XQAEu11ABLtdgAS7XgAEu16ABLtewAS7XwAEu1+ABLtfwAS7foAEu38ABLt/gAS7gAAEu4DABLuBAAS7gUAEu4GABLuBwAS7gkAEu4LABLuDAAS7g0AEu4PABLuEAAS7lkAEu59ABLupAAS7sgAEu7LABLuzQAS7s8AEu7RABLu0wAS7tUAEu7WABLu2QAS7vIAEu8PABLvEQAS7xMAEu8VABLvFwAS7xkAEu8bABLvHQAS7zoAEu89ABLvQAAS70MAEu9GABLvSQAS70wAEu9PABLvUQAS78wAEu/OABLv0AAS79IAEu/VABLv1gAS79cAEu/YABLv2QAS79sAEu/dABLv3gAS798AEu/hABLv4gAS8F0AEvBfABLwYQAS8GMAEvBmABLwZwAS8GgAEvBpABLwagAS8GwAEvBuABLwbwAS8HAAEvByABLwcwAS8O4AEvDwABLw8gAS8PQAEvD3ABLw+AAS8PkAEvD6ABLw+wAS8P0AEvD/ABLxAAAS8QEAEvEDABLxBAAS8X8AEvGBABLxgwAS8YUAEvGIABLxiQAS8YoAEvGLABLxjAAS8Y4AEvGQABLxkQAS8ZIAEvGUABLxlQAS8hAAEvISABLyFAAS8hYAEvIZABLyGgAS8hsAEvIcABLyHQAS8h8AEvIhABLyIgAS8iMAEvIlABLyJgAS8qEAEvKjABLypgAS8qgAEvKrABLyrAAS8q0AEvKuABLyrwAS8rEAEvKzABLytAAS8rUAEvK3ABLyuAAS8tAAEvNLABLzTQAS808AEvNRABLzVAAS81UAEvNWABLzVwAS81gAEvNaABLzXAAS810AEvNeABLzYAAS82EAEvP0ABL0FwAS9DcAEvRXABL0WQAS9FsAEvRdABL0XwAS9GIAEvRjABL0ZAAS9GcAEvRoABL0agAS9GsAEvRtABL0cAAS9HEAEvRyABL0dQAS9HYAEvR7ABL0lAAS9J0AEvSfABL0oQAS9KoAEvStABL0sAAS9LIAEvT7ABL1HwAS9UYAEvVqABL1bQAS9W8AEvVxABL1cwAS9XUAEvV3ABL1eAAS9XsAEvWUABL1tQAS9bcAEvW5ABL1uwAS9b0AEvW/ABL1wQAS9cMAEvXFABL15gAS9ekAEvXsABL17wAS9fIAEvX1ABL1+AAS9fsAEvX+ABL2AAAS9nsAEvZ9ABL2fwAS9oEAEvaEABL2hQAS9oYAEvaHABL2iAAS9ooAEvaMABL2jQAS9o4AEvaQABL2kQAS9wwAEvcOABL3EAAS9xIAEvcVABL3FgAS9xcAEvcYABL3GQAS9xsAEvcdABL3HgAS9x8AEvchABL3IgAS950AEvefABL3ogAS96QAEvenABL3qAAS96kAEveqABL3qwAS960AEvevABL3sAAS97EAEvezABL3tAAS980AEvfOABL3zwAS99EAEvhMABL4TgAS+FAAEvhSABL4VQAS+FYAEvhXABL4WAAS+FkAEvhbABL4XQAS+F4AEvhfABL4YQAS+GIAEvjdABL43wAS+OEAEvjjABL45gAS+OcAEvjoABL46QAS+OoAEvjsABL47gAS+O8AEvjwABL48gAS+PMAEvluABL5cAAS+XIAEvl0ABL5dwAS+XgAEvl5ABL5egAS+XsAEvl9ABL5fwAS+YAAEvmBABL5gwAS+YQAEvn/ABL6AQAS+gMAEvoFABL6CAAS+gkAEvoKABL6CwAS+gwAEvoOABL6EAAS+hEAEvoSABL6FAAS+hUAEvqQABL6kgAS+pQAEvqWABL6mQAS+poAEvqbABL6nAAS+p0AEvqfABL6oQAS+qIAEvqjABL6pQAS+qYAEvrvABL7EwAS+zoAEvteABL7YQAS+2MAEvtlABL7ZwAS+2kAEvtrABL7bAAS+28AEvuIABL7pQAS+6cAEvupABL7qwAS+60AEvuvABL7sQAS+7MAEvvQABL70wAS+9YAEvvZABL73AAS+98AEvviABL75QAS++cAEvxiABL8ZAAS/GYAEvxoABL8awAS/GwAEvxtABL8bgAS/G8AEvxxABL8cwAS/HQAEvx1ABL8dwAS/HgAEvzzABL89QAS/PcAEvz5ABL8/AAS/P0AEvz+ABL8/wAS/QAAEv0CABL9BAAS/QUAEv0GABL9CAAS/QkAEv2EABL9hgAS/YgAEv2KABL9jQAS/Y4AEv2PABL9kAAS/ZEAEv2TABL9lQAS/ZYAEv2XABL9mQAS/ZoAEv4VABL+FwAS/hkAEv4bABL+HgAS/h8AEv4gABL+IQAS/iIAEv4kABL+JgAS/icAEv4oABL+KgAS/isAEv6mABL+qAAS/qoAEv6sABL+rwAS/rAAEv6xABL+sgAS/rMAEv61ABL+twAS/rgAEv65ABL+uwAS/rwAEv83ABL/OQAS/zwAEv8+ABL/QQAS/0IAEv9DABL/RAAS/0UAEv9HABL/SQAS/0oAEv9LABL/TQAS/04AEv9dABL/2AAS/9oAEv/cABL/3gAS/+EAEv/iABL/4wAS/+QAEv/lABL/5wAS/+kAEv/qABL/6wAS/+0AEv/uABMAgQATAKQAEwDEABMA5AATAOYAEwDoABMA6gATAOwAEwDvABMA8AATAPEAEwD0ABMA9QATAPcAEwD4ABMA+gATAP0AEwD+ABMA/wATAQIAEwEDABMBCAATASEAEwEqABMBLAATAS4AEwE3ABMBOgATAT0AEwE/ABMBiAATAawAEwHTABMB9wATAfoAEwH8ABMB/gATAgAAEwICABMCBAATAgUAEwIIABMCIQATAkIAEwJEABMCRgATAkgAEwJKABMCTAATAk4AEwJQABMCUgATAnMAEwJ2ABMCeQATAnwAEwJ/ABMCggATAoUAEwKIABMCiwATAo0AEwMIABMDCgATAwwAEwMOABMDEQATAxIAEwMTABMDFAATAxUAEwMXABMDGQATAxoAEwMbABMDHQATAx4AEwOZABMDmwATA50AEwOfABMDogATA6MAEwOkABMDpQATA6YAEwOoABMDqgATA6sAEwOsABMDrgATA68AEwQqABMELAATBC8AEwQxABMENAATBDUAEwQ2ABMENwATBDgAEwQ6ABMEPAATBD0AEwQ+ABMEQAATBEEAEwRaABMEWwATBFwAEwReABME2QATBNsAEwTdABME3wATBOIAEwTjABME5AATBOUAEwTmABME6AATBOoAEwTrABME7AATBO4AEwTvABMFagATBWwAEwVuABMFcAATBXMAEwV0ABMFdQATBXYAEwV3ABMFeQATBXsAEwV8ABMFfQATBX8AEwWAABMF+wATBf0AEwX/ABMGAQATBgQAEwYFABMGBgATBgcAEwYIABMGCgATBgwAEwYNABMGDgATBhAAEwYRABMGjAATBo4AEwaQABMGkgATBpUAEwaWABMGlwATBpgAEwaZABMGmwATBp0AEwaeABMGnwATBqEAEwaiABMHHQATBx8AEwchABMHIwATByYAEwcnABMHKAATBykAEwcqABMHLAATBy4AEwcvABMHMAATBzIAEwczABMHfAATB6AAEwfHABMH6wATB+4AEwfwABMH8gATB/QAEwf2ABMH+AATB/kAEwf8ABMIFQATCDIAEwg0ABMINgATCDgAEwg6ABMIPAATCD4AEwhAABMIXQATCGAAEwhjABMIZgATCGkAEwhsABMIbwATCHIAEwh0ABMI7wATCPEAEwjzABMI9QATCPgAEwj5ABMI+gATCPsAEwj8ABMI/gATCQAAEwkBABMJAgATCQQAEwkFABMJgAATCYIAEwmEABMJhgATCYkAEwmKABMJiwATCYwAEwmNABMJjwATCZEAEwmSABMJkwATCZUAEwmWABMKEQATChMAEwoVABMKFwATChoAEwobABMKHAATCh0AEwoeABMKIAATCiIAEwojABMKJAATCiYAEwonABMKogATCqQAEwqnABMKqQATCqwAEwqtABMKrgATCq8AEwqwABMKsgATCrQAEwq1ABMKtgATCrgAEwq5ABMLNAATCzYAEws4ABMLOgATCz0AEws+ABMLPwATC0AAEwtBABMLQwATC0UAEwtGABMLRwATC0kAEwtKABMLxQATC8cAEwvJABMLywATC84AEwvPABML0AATC9EAEwvSABML1AATC9YAEwvXABML2AATC9oAEwvbABMMVgATDFgAEwxaABMMXAATDF8AEwxgABMMYQATDGIAEwxjABMMZQATDGcAEwxoABMMaQATDGsAEwxsABMM/wATDSIAEw1CABMNYgATDWQAEw1mABMNaAATDWoAEw1tABMNbgATDW8AEw1yABMNcwATDXUAEw12ABMNeAATDXsAEw18ABMNfQATDYAAEw2BABMNhgATDZ8AEw2oABMNqgATDawAEw21ABMNuAATDbsAEw29ABMOBgATDioAEw5RABMOdQATDngAEw56ABMOfAATDn4AEw6AABMOggATDoMAEw6GABMOnwATDsAAEw7CABMOxAATDsYAEw7IABMOygATDswAEw7OABMO0AATDvEAEw70ABMO9wATDvoAEw79ABMPAAATDwMAEw8GABMPCQATDwsAEw+GABMPiAATD4oAEw+MABMPjwATD5AAEw+RABMPkgATD5MAEw+VABMPlwATD5gAEw+ZABMPmwATD5wAExAXABMQGQATEBsAExAdABMQIAATECEAExAiABMQIwATECQAExAmABMQKAATECkAExAqABMQLAATEC0AExCoABMQqgATEK0AExCvABMQsgATELMAExC0ABMQtQATELYAExC4ABMQugATELsAExC8ABMQvgATEL8AExDYABMQ2QATENoAExDcABMRVwATEVkAExFbABMRXQATEWAAExFhABMRYgATEWMAExFkABMRZgATEWgAExFpABMRagATEWwAExFtABMR6AATEeoAExHsABMR7gATEfEAExHyABMR8wATEfQAExH1ABMR9wATEfkAExH6ABMR+wATEf0AExH+ABMSeQATEnsAExJ9ABMSfwATEoIAExKDABMShAATEoUAExKGABMSiAATEooAExKLABMSjAATEo4AExKPABMTCgATEwwAExMOABMTEAATExMAExMUABMTFQATExYAExMXABMTGQATExsAExMcABMTHQATEx8AExMgABMTmwATE50AExOfABMToQATE6QAExOlABMTpgATE6cAExOoABMTqgATE6wAExOtABMTrgATE7AAExOxABMT+gATFB4AExRFABMUaQATFGwAExRuABMUcAATFHIAExR0ABMUdgATFHcAExR6ABMUkwATFLAAExSyABMUtAATFLYAExS4ABMUugATFLwAExS+ABMU2wATFN4AExThABMU5AATFOcAExTqABMU7QATFPAAExTyABMVbQATFW8AExVxABMVcwATFXYAExV3ABMVeAATFXkAExV6ABMVfAATFX4AExV/ABMVgAATFYIAExWDABMV/gATFgAAExYCABMWBAATFgcAExYIABMWCQATFgoAExYLABMWDQATFg8AExYQABMWEQATFhMAExYUABMWjwATFpEAExaTABMWlQATFpgAExaZABMWmgATFpsAExacABMWngATFqAAExahABMWogATFqQAExalABMXIAATFyIAExckABMXJgATFykAExcqABMXKwATFywAExctABMXLwATFzEAExcyABMXMwATFzUAExc2ABMXsQATF7MAExe1ABMXtwATF7oAExe7ABMXvAATF70AExe+ABMXwAATF8IAExfDABMXxAATF8YAExfHABMYQgATGEQAExhHABMYSQATGEwAExhNABMYTgATGE8AExhQABMYUgATGFQAExhVABMYVgATGFgAExhZABMYcQATGOwAExjuABMY8AATGPIAExj1ABMY9gATGPcAExj4ABMY+QATGPsAExj9ABMY/gATGP8AExkBABMZAgATGZUAExm4ABMZ2AATGfgAExn6ABMZ/AATGf4AExoAABMaAwATGgQAExoFABMaCAATGgkAExoLABMaDAATGg4AExoRABMaEgATGhMAExoWABMaFwATGiAAExo5ABMaQgATGkQAExpGABMaTwATGlIAExpVABMaVwATGqAAExrEABMa6wATGw8AExsSABMbFAATGxYAExsYABMbGgATGxwAExsdABMbIAATGzkAExtaABMbXAATG14AExtgABMbYgATG2QAExtmABMbaAATG2oAExuLABMbjgATG5EAExuUABMblwATG5oAExudABMboAATG6MAExulABMcIAATHCIAExwkABMcJgATHCkAExwqABMcKwATHCwAExwtABMcLwATHDEAExwyABMcMwATHDUAExw2ABMcsQATHLMAExy1ABMctwATHLoAExy7ABMcvAATHL0AExy+ABMcwAATHMIAExzDABMcxAATHMYAExzHABMdQgATHUQAEx1HABMdSQATHUwAEx1NABMdTgATHU8AEx1QABMdUgATHVQAEx1VABMdVgATHVgAEx1ZABMdcgATHXMAEx10ABMddgATHfEAEx3zABMd9QATHfcAEx36ABMd+wATHfwAEx39ABMd/gATHgAAEx4CABMeAwATHgQAEx4GABMeBwATHoIAEx6EABMehgATHogAEx6LABMejAATHo0AEx6OABMejwATHpEAEx6TABMelAATHpUAEx6XABMemAATHxMAEx8VABMfFwATHxkAEx8cABMfHQATHx4AEx8fABMfIAATHyIAEx8kABMfJQATHyYAEx8oABMfKQATH6QAEx+mABMfqAATH6oAEx+tABMfrgATH68AEx+wABMfsQATH7MAEx+1ABMftgATH7cAEx+5ABMfugATIDUAEyA3ABMgOQATIDsAEyA+ABMgPwATIEAAEyBBABMgQgATIEQAEyBGABMgRwATIEgAEyBKABMgSwATIJQAEyC4ABMg3wATIQMAEyEGABMhCAATIQoAEyEMABMhDgATIRAAEyERABMhFAATIS0AEyFKABMhTAATIU4AEyFQABMhUgATIVQAEyFWABMhWAATIXUAEyF4ABMhewATIX4AEyGBABMhhAATIYcAEyGKABMhjAATIgcAEyIJABMiCwATIg0AEyIQABMiEQATIhIAEyITABMiFAATIhYAEyIYABMiGQATIhoAEyIcABMiHQATIpgAEyKaABMinAATIp4AEyKhABMiogATIqMAEyKkABMipQATIqcAEyKpABMiqgATIqsAEyKtABMirgATIykAEyMrABMjLQATIy8AEyMyABMjMwATIzQAEyM1ABMjNgATIzgAEyM6ABMjOwATIzwAEyM+ABMjPwATI7oAEyO8ABMjvgATI8AAEyPDABMjxAATI8UAEyPGABMjxwATI8kAEyPLABMjzAATI80AEyPPABMj0AATJEsAEyRNABMkTwATJFEAEyRUABMkVQATJFYAEyRXABMkWAATJFoAEyRcABMkXQATJF4AEyRgABMkYQATJNwAEyTeABMk4AATJOIAEyTlABMk5gATJOcAEyToABMk6QATJOsAEyTtABMk7gATJO8AEyTxABMk8gATJW0AEyVvABMlcQATJXMAEyV2ABMldwATJXgAEyV5ABMlegATJXwAEyV+ABMlfwATJYAAEyWCABMlgwATJhYAEyY5ABMmWQATJnkAEyZ7ABMmfQATJn8AEyaBABMmhAATJoUAEyaGABMmiQATJooAEyaMABMmjQATJo8AEyaSABMmkwATJpQAEyaXABMmmAATJp0AEya2ABMmvwATJsEAEybDABMmzAATJs8AEybSABMm1AATJx0AEydBABMnaAATJ4wAEyePABMnkQATJ5MAEyeVABMnlwATJ5kAEyeaABMnnQATJ7YAEyfXABMn2QATJ9sAEyfdABMn3wATJ+EAEyfjABMn5QATJ+cAEygIABMoCwATKA4AEygRABMoFAATKBcAEygaABMoHQATKCAAEygiABMonQATKJ8AEyihABMoowATKKYAEyinABMoqAATKKkAEyiqABMorAATKK4AEyivABMosAATKLIAEyizABMpLgATKTAAEykyABMpNAATKTcAEyk4ABMpOQATKToAEyk7ABMpPQATKT8AEylAABMpQQATKUMAEylEABMpvwATKcEAEynEABMpxgATKckAEynKABMpywATKcwAEynNABMpzwATKdEAEynSABMp0wATKdUAEynWABMp7wATKfAAEynxABMp8wATKm4AEypwABMqcgATKnQAEyp3ABMqeAATKnkAEyp6ABMqewATKn0AEyp/ABMqgAATKoEAEyqDABMqhAATKv8AEysBABMrAwATKwUAEysIABMrCQATKwoAEysLABMrDAATKw4AEysQABMrEQATKxIAEysUABMrFQATK5AAEyuSABMrlAATK5YAEyuZABMrmgATK5sAEyucABMrnQATK58AEyuhABMrogATK6MAEyulABMrpgATLCEAEywjABMsJQATLCcAEywqABMsKwATLCwAEywtABMsLgATLDAAEywyABMsMwATLDQAEyw2ABMsNwATLLIAEyy0ABMstgATLLgAEyy7ABMsvAATLL0AEyy+ABMsvwATLMEAEyzDABMsxAATLMUAEyzHABMsyAATLREAEy01ABMtXAATLYAAEy2DABMthQATLYcAEy2JABMtiwATLY0AEy2OABMtkQATLaoAEy3HABMtyQATLcsAEy3NABMtzwATLdEAEy3TABMt1QATLfIAEy31ABMt+AATLfsAEy3+ABMuAQATLgQAEy4HABMuCQATLoQAEy6GABMuiAATLooAEy6NABMujgATLo8AEy6QABMukQATLpMAEy6VABMulgATLpcAEy6ZABMumgATLxUAEy8XABMvGQATLxsAEy8eABMvHwATLyAAEy8hABMvIgATLyQAEy8mABMvJwATLygAEy8qABMvKwATL6YAEy+oABMvqgATL6wAEy+vABMvsAATL7EAEy+yABMvswATL7UAEy+3ABMvuAATL7kAEy+7ABMvvAATMDcAEzA5ABMwOwATMD0AEzBAABMwQQATMEIAEzBDABMwRAATMEYAEzBIABMwSQATMEoAEzBMABMwTQATMMgAEzDKABMwzAATMM4AEzDRABMw0gATMNMAEzDUABMw1QATMNcAEzDZABMw2gATMNsAEzDdABMw3gATMVkAEzFbABMxXQATMV8AEzFiABMxYwATMWQAEzFlABMxZgATMWgAEzFqABMxawATMWwAEzFuABMxbwATMeoAEzHsABMx7gATMfAAEzHzABMx9AATMfUAEzH2ABMx9wATMfkAEzH7ABMx/AATMf0AEzH/ABMyAAATMpMAEzK2ABMy1gATMvYAEzL4ABMy+gATMvwAEzL+ABMzAQATMwIAEzMDABMzBgATMwcAEzMJABMzCgATMwwAEzMPABMzEAATMxEAEzMUABMzFQATMxoAEzMzABMzPAATMz4AEzNAABMzSQATM0wAEzNPABMzUQATM5oAEzO+ABMz5QATNAkAEzQMABM0DgATNBAAEzQSABM0FAATNBYAEzQXABM0GgATNDMAEzRUABM0VgATNFgAEzRaABM0XAATNF4AEzRgABM0YgATNGQAEzSFABM0iAATNIsAEzSOABM0kQATNJQAEzSXABM0mgATNJ0AEzSfABM1GgATNRwAEzUeABM1IAATNSMAEzUkABM1JQATNSYAEzUnABM1KQATNSsAEzUsABM1LQATNS8AEzUwABM1qwATNa0AEzWvABM1sQATNbQAEzW1ABM1tgATNbcAEzW4ABM1ugATNbwAEzW9ABM1vgATNcAAEzXBABM2PAATNj4AEzZBABM2QwATNkYAEzZHABM2SAATNkkAEzZKABM2TAATNk4AEzZPABM2UAATNlIAEzZTABM2bAATNm0AEzZuABM2cAATNusAEzbtABM27wATNvEAEzb0ABM29QATNvYAEzb3ABM2+AATNvoAEzb8ABM2/QATNv4AEzcAABM3AQATN3wAEzd+ABM3gAATN4IAEzeFABM3hgATN4cAEzeIABM3iQATN4sAEzeNABM3jgATN48AEzeRABM3kgATOA0AEzgPABM4EQATOBMAEzgWABM4FwATOBgAEzgZABM4GgATOBwAEzgeABM4HwATOCAAEzgiABM4IwATOJ4AEzigABM4ogATOKQAEzinABM4qAATOKkAEziqABM4qwATOK0AEzivABM4sAATOLEAEzizABM4tAATOS8AEzkxABM5MwATOTUAEzk4ABM5OQATOToAEzk7ABM5PAATOT4AEzlAABM5QQATOUIAEzlEABM5RQATOY4AEzmyABM52QATOf0AEzoAABM6AgATOgQAEzoGABM6CAATOgoAEzoLABM6DgATOicAEzpEABM6RgATOkgAEzpKABM6TAATOk4AEzpQABM6UgATOm8AEzpyABM6dQATOngAEzp7ABM6fgATOoEAEzqEABM6hgATOwEAEzsDABM7BQATOwcAEzsKABM7CwATOwwAEzsNABM7DgATOxAAEzsSABM7EwATOxQAEzsWABM7FwATO5IAEzuUABM7lgATO5gAEzubABM7nAATO50AEzueABM7nwATO6EAEzujABM7pAATO6UAEzunABM7qAATPCMAEzwlABM8JwATPCkAEzwsABM8LQATPC4AEzwvABM8MAATPDIAEzw0ABM8NQATPDYAEzw4ABM8OQATPLQAEzy2ABM8uQATPLsAEzy+ABM8vwATPMAAEzzBABM8wgATPMQAEzzGABM8xwATPMgAEzzKABM8ywATPUYAEz1IABM9SgATPUwAEz1PABM9UAATPVEAEz1SABM9UwATPVUAEz1XABM9WAATPVkAEz1bABM9XAATPdcAEz3ZABM92wATPd0AEz3gABM94QATPeIAEz3jABM95AATPeYAEz3oABM96QATPeoAEz3sABM97QATPmgAEz5qABM+bAATPm4AEz5xABM+cgATPnMAEz50ABM+dQATPncAEz55ABM+egATPnsAEz59ABM+fgATPxEAEz80ABM/VAATP3QAEz92ABM/eAATP3oAEz98ABM/fwATP4AAEz+BABM/hAATP4UAEz+HABM/iAATP4oAEz+NABM/jgATP48AEz+SABM/kwATP5gAEz+xABM/ugATP7wAEz++ABM/xwATP8oAEz/NABM/zwATQBgAE0A8ABNAYwATQIcAE0CKABNAjAATQI4AE0CQABNAkgATQJQAE0CVABNAmAATQLEAE0DSABNA1AATQNYAE0DYABNA2gATQNwAE0DeABNA4AATQOIAE0EDABNBBgATQQkAE0EMABNBDwATQRIAE0EVABNBGAATQRsAE0EdABNBmAATQZoAE0GcABNBngATQaEAE0GiABNBowATQaQAE0GlABNBpwATQakAE0GqABNBqwATQa0AE0GuABNCKQATQisAE0ItABNCLwATQjIAE0IzABNCNAATQjUAE0I2ABNCOAATQjoAE0I7ABNCPAATQj4AE0I/ABNCugATQrwAE0K/ABNCwQATQsQAE0LFABNCxgATQscAE0LIABNCygATQswAE0LNABNCzgATQtAAE0LRABNC6gATQusAE0LsABNC7gATQ2kAE0NrABNDbQATQ28AE0NyABNDcwATQ3QAE0N1ABNDdgATQ3gAE0N6ABNDewATQ3wAE0N+ABNDfwATQ/oAE0P8ABND/gATRAAAE0QDABNEBAATRAUAE0QGABNEBwATRAkAE0QLABNEDAATRA0AE0QPABNEEAATRIsAE0SNABNEjwATRJEAE0SUABNElQATRJYAE0SXABNEmAATRJoAE0ScABNEnQATRJ4AE0SgABNEoQATRRwAE0UeABNFIAATRSIAE0UlABNFJgATRScAE0UoABNFKQATRSsAE0UtABNFLgATRS8AE0UxABNFMgATRa0AE0WvABNFsQATRbMAE0W2ABNFtwATRbgAE0W5ABNFugATRbwAE0W+ABNFvwATRcAAE0XCABNFwwATRgwAE0YwABNGVwATRnsAE0Z+ABNGgAATRoIAE0aEABNGhgATRogAE0aJABNGjAATRqUAE0bCABNGxAATRsYAE0bIABNGygATRswAE0bOABNG0AATRu0AE0bwABNG8wATRvYAE0b5ABNG/AATRv8AE0cCABNHBAATR38AE0eBABNHgwATR4UAE0eIABNHiQATR4oAE0eLABNHjAATR44AE0eQABNHkQATR5IAE0eUABNHlQATSBAAE0gSABNIFAATSBYAE0gZABNIGgATSBsAE0gcABNIHQATSB8AE0ghABNIIgATSCMAE0glABNIJgATSKEAE0ijABNIpQATSKcAE0iqABNIqwATSKwAE0itABNIrgATSLAAE0iyABNIswATSLQAE0i2ABNItwATSTIAE0k0ABNJNwATSTkAE0k8ABNJPQATST4AE0k/ABNJQAATSUIAE0lEABNJRQATSUYAE0lIABNJSQATScQAE0nGABNJyAATScoAE0nNABNJzgATSc8AE0nQABNJ0QATSdMAE0nVABNJ1gATSdcAE0nZABNJ2gATSlUAE0pXABNKWQATSlsAE0peABNKXwATSmAAE0phABNKYgATSmQAE0pmABNKZwATSmgAE0pqABNKawATSuYAE0roABNK6gATSuwAE0rvABNK8AATSvEAE0ryABNK8wATSvUAE0r3ABNK+AATSvkAE0r7ABNK/AATS48AE0uyABNL0gATS/IAE0v0ABNL9gATS/gAE0v6ABNL/QATS/4AE0v/ABNMAgATTAMAE0wFABNMBgATTAgAE0wLABNMDAATTA0AE0wQABNMEQATTBYAE0wvABNMOAATTDoAE0w8ABNMRQATTEgAE0xLABNMTQATTJYAE0y6ABNM4QATTQUAE00IABNNCgATTQwAE00OABNNEAATTRIAE00TABNNFgATTS8AE01QABNNUgATTVQAE01WABNNWAATTVoAE01cABNNXgATTWAAE02BABNNhAATTYcAE02KABNNjQATTZAAE02TABNNlgATTZkAE02bABNOFgATThgAE04aABNOHAATTh8AE04gABNOIQATTiIAE04jABNOJQATTicAE04oABNOKQATTisAE04sABNOpwATTqkAE06rABNOrQATTrAAE06xABNOsgATTrMAE060ABNOtgATTrgAE065ABNOugATTrwAE069ABNPOAATTzoAE089ABNPPwATT0IAE09DABNPRAATT0UAE09GABNPSAATT0oAE09LABNPTAATT04AE09PABNPaAATT2kAE09qABNPbAATT+cAE0/pABNP6wATT+0AE0/wABNP8QATT/IAE0/zABNP9AATT/YAE0/4ABNP+QATT/oAE0/8ABNP/QATUHgAE1B6ABNQfAATUH4AE1CBABNQggATUIMAE1CEABNQhQATUIcAE1CJABNQigATUIsAE1CNABNQjgATUQkAE1ELABNRDQATUQ8AE1ESABNREwATURQAE1EVABNRFgATURgAE1EaABNRGwATURwAE1EeABNRHwATUZoAE1GcABNRngATUaAAE1GjABNRpAATUaUAE1GmABNRpwATUakAE1GrABNRrAATUa0AE1GvABNRsAATUisAE1ItABNSLwATUjEAE1I0ABNSNQATUjYAE1I3ABNSOAATUjoAE1I8ABNSPQATUj4AE1JAABNSQQATUooAE1KuABNS1QATUvkAE1L8ABNS/gATUwAAE1MCABNTBAATUwYAE1MHABNTCgATUyMAE1NAABNTQgATU0QAE1NGABNTSAATU0oAE1NMABNTTgATU2sAE1NuABNTcQATU3QAE1N3ABNTegATU30AE1OAABNTggATU/0AE1P/ABNUAQATVAMAE1QGABNUBwATVAgAE1QJABNUCgATVAwAE1QOABNUDwATVBAAE1QSABNUEwATVI4AE1SQABNUkgATVJQAE1SXABNUmAATVJkAE1SaABNUmwATVJ0AE1SfABNUoAATVKEAE1SjABNUpAATVR8AE1UhABNVIwATVSUAE1UoABNVKQATVSoAE1UrABNVLAATVS4AE1UwABNVMQATVTIAE1U0ABNVNQATVbAAE1WyABNVtQATVbcAE1W6ABNVuwATVbwAE1W9ABNVvgATVcAAE1XCABNVwwATVcQAE1XGABNVxwATVkIAE1ZEABNWRgATVkgAE1ZLABNWTAATVk0AE1ZOABNWTwATVlEAE1ZTABNWVAATVlUAE1ZXABNWWAATVtMAE1bVABNW1wATVtkAE1bcABNW3QATVt4AE1bfABNW4AATVuIAE1bkABNW5QATVuYAE1boABNW6QATV2QAE1dmABNXaAATV2oAE1dtABNXbgATV28AE1dwABNXcQATV3MAE1d1ABNXdgATV3cAE1d5ABNXegATV4sAE1eMABNXjgATWBEAE1g1ABNYWQATWHwAE1ijABNYwwATWOoAE1kRABNZMQATWVUAE1l5ABNZewATWX4AE1mAABNZggATWYQAE1mHABNZigATWYwAE1mOABNZkQATWZMAE1mVABNZmAATWZsAE1mcABNZoQATWboAE1m/ABNZwQATWcYAE1nJABNZywATWhQAE1o4ABNaXwATWoMAE1qGABNaiAATWooAE1qMABNajgATWpAAE1qRABNalAATWq0AE1rSABNa1AATWtYAE1rYABNa2gATWtwAE1reABNa4AATWuIAE1rkABNbCQATWwwAE1sPABNbEgATWxUAE1sYABNbGwATWx4AE1shABNbJAATWyYAE1uhABNbowATW6YAE1uoABNbqwATW6wAE1utABNbrgATW68AE1uxABNbswATW7QAE1u1ABNbtwATW7gAE1vJABNbygATW8wAE1xHABNcSQATXEsAE1xNABNcUAATXFEAE1xSABNcUwATXFQAE1xWABNcWAATXFkAE1xaABNcXAATXF0AE1zYABNc2gATXN0AE1zfABNc4gATXOMAE1zkABNc5QATXOYAE1zoABNc6gATXOsAE1zsABNc7gATXO8AE10AABNdBQATXQgAE10KABNdGwATXSQAE10nABNdKgATXSwAE10/ABNdugATXbwAE12+ABNdwAATXcMAE13EABNdxQATXcYAE13HABNdyQATXcsAE13MABNdzQATXc8AE13QABNeSwATXk0AE15QABNeUgATXlUAE15WABNeVwATXlgAE15ZABNeWwATXl0AE15eABNeXwATXmEAE15iABNecwATXnQAE152ABNe8QATXvMAE171ABNe9wATXvoAE177ABNe/AATXv0AE17+ABNfAAATXwIAE18DABNfBAATXwYAE18HABNfggATX4QAE1+HABNfiQATX4wAE1+NABNfjgATX48AE1+QABNfkgATX5QAE1+VABNflgATX5gAE1+ZABNfsgATX7MAE1+0ABNftgATYDEAE2AzABNgNQATYDcAE2A6ABNgOwATYDwAE2A9ABNgPgATYEAAE2BCABNgQwATYEQAE2BGABNgRwATYMIAE2DEABNgxwATYMkAE2DMABNgzQATYM4AE2DPABNg0AATYNIAE2DUABNg1QATYNYAE2DYABNg2QATYQAAE2EZABNhIgATYSUAE2EoABNhMQATYTQAE2E3ABNhOQATYUwAE2HfABNiAgATYiIAE2JCABNiRAATYkYAE2JIABNiSgATYk0AE2JOABNiTwATYlIAE2JTABNiVQATYlYAE2JYABNiWwATYlwAE2JdABNiYAATYmEAE2JmABNifwATYogAE2KKABNijAATYpUAE2KYABNimwATYp0AE2LmABNjCgATYzEAE2NVABNjWAATY1oAE2NcABNjXgATY2AAE2NiABNjYwATY2YAE2N/ABNjoAATY6IAE2OkABNjpgATY6gAE2OqABNjrAATY64AE2OwABNj0QATY9QAE2PXABNj2gATY90AE2PgABNj4wATY+YAE2PpABNj6wATZGYAE2RoABNkagATZGwAE2RvABNkcAATZHEAE2RyABNkcwATZHUAE2R3ABNkeAATZHkAE2R7ABNkfAATZPcAE2T5ABNk+wATZP0AE2UAABNlAQATZQIAE2UDABNlBAATZQYAE2UIABNlCQATZQoAE2UMABNlDQATZYgAE2WKABNljQATZY8AE2WSABNlkwATZZQAE2WVABNllgATZZgAE2WaABNlmwATZZwAE2WeABNlnwATZbgAE2W5ABNlugATZbwAE2Y3ABNmOQATZjsAE2Y9ABNmQAATZkEAE2ZCABNmQwATZkQAE2ZGABNmSAATZkkAE2ZKABNmTAATZk0AE2bIABNmygATZswAE2bOABNm0QATZtIAE2bTABNm1AATZtUAE2bXABNm2QATZtoAE2bbABNm3QATZt4AE2dZABNnWwATZ10AE2dfABNnYgATZ2MAE2dkABNnZQATZ2YAE2doABNnagATZ2sAE2dsABNnbgATZ28AE2fqABNn7AATZ+4AE2fwABNn8wATZ/QAE2f1ABNn9gATZ/cAE2f5ABNn+wATZ/wAE2f9ABNn/wATaAAAE2h7ABNofQATaH8AE2iBABNohAATaIUAE2iGABNohwATaIgAE2iKABNojAATaI0AE2iOABNokAATaJEAE2jaABNo/gATaSUAE2lJABNpTAATaU4AE2lQABNpUgATaVQAE2lWABNpVwATaVoAE2lzABNpkAATaZIAE2mUABNplgATaZgAE2maABNpnAATaZ4AE2m7ABNpvgATacEAE2nEABNpxwATacoAE2nNABNp0AATadIAE2pNABNqTwATalEAE2pTABNqVgATalcAE2pYABNqWQATaloAE2pcABNqXgATal8AE2pgABNqYgATamMAE2reABNq4AATauIAE2rkABNq5wATaugAE2rpABNq6gATausAE2rtABNq7wATavAAE2rxABNq8wATavQAE2tvABNrcQATa3MAE2t1ABNreAATa3kAE2t6ABNrewATa3wAE2t+ABNrgAATa4EAE2uCABNrhAATa4UAE2wAABNsAgATbAUAE2wHABNsCgATbAsAE2wMABNsDQATbA4AE2wQABNsEgATbBMAE2wUABNsFgATbBcAE2ySABNslAATbJYAE2yYABNsmwATbJwAE2ydABNsngATbJ8AE2yhABNsowATbKQAE2ylABNspwATbKgAE20jABNtJQATbScAE20pABNtLAATbS0AE20uABNtLwATbTAAE20yABNtNAATbTUAE202ABNtOAATbTkAE220ABNttgATbbgAE226ABNtvQATbb4AE22/ABNtwAATbcEAE23DABNtxQATbcYAE23HABNtyQATbcoAE25dABNugAATbqAAE27AABNuwgATbsQAE27GABNuyAATbssAE27MABNuzQATbtAAE27RABNu0wATbtQAE27WABNu2QATbtoAE27bABNu3gATbt8AE27kABNu/QATbwYAE28IABNvCgATbxMAE28WABNvGQATbxsAE29kABNviAATb68AE2/TABNv1gATb9gAE2/aABNv3AATb94AE2/gABNv4QATb+QAE2/9ABNwHgATcCAAE3AiABNwJAATcCYAE3AoABNwKgATcCwAE3AuABNwTwATcFIAE3BVABNwWAATcFsAE3BeABNwYQATcGQAE3BnABNwaQATcOQAE3DmABNw6AATcOoAE3DtABNw7gATcO8AE3DwABNw8QATcPMAE3D1ABNw9gATcPcAE3D5ABNw+gATcXUAE3F3ABNxeQATcXsAE3F+ABNxfwATcYAAE3GBABNxggATcYQAE3GGABNxhwATcYgAE3GKABNxiwATcgYAE3IIABNyCwATcg0AE3IQABNyEQATchIAE3ITABNyFAATchYAE3IYABNyGQATchoAE3IcABNyHQATcjYAE3I3ABNyOAATcjoAE3K1ABNytwATcrkAE3K7ABNyvgATcr8AE3LAABNywQATcsIAE3LEABNyxgATcscAE3LIABNyygATcssAE3NGABNzSAATc0oAE3NMABNzTwATc1AAE3NRABNzUgATc1MAE3NVABNzVwATc1gAE3NZABNzWwATc1wAE3PXABNz2QATc9sAE3PdABNz4AATc+EAE3PiABNz4wATc+QAE3PmABNz6AATc+kAE3PqABNz7AATc+0AE3RoABN0agATdGwAE3RuABN0cQATdHIAE3RzABN0dAATdHUAE3R3ABN0eQATdHoAE3R7ABN0fQATdH4AE3T5ABN0+wATdP0AE3T/ABN1AgATdQMAE3UEABN1BQATdQYAE3UIABN1CgATdQsAE3UMABN1DgATdQ8AE3VYABN1fAATdaMAE3XHABN1ygATdcwAE3XOABN10AATddIAE3XUABN11QATddgAE3XxABN2DgATdhAAE3YSABN2FAATdhYAE3YYABN2GgATdhwAE3Y5ABN2PAATdj8AE3ZCABN2RQATdkgAE3ZLABN2TgATdlAAE3bLABN2zQATds8AE3bRABN21AATdtUAE3bWABN21wATdtgAE3baABN23AATdt0AE3beABN24AATduEAE3dcABN3XgATd2AAE3diABN3ZQATd2YAE3dnABN3aAATd2kAE3drABN3bQATd24AE3dvABN3cQATd3IAE3ftABN37wATd/EAE3fzABN39gATd/cAE3f4ABN3+QATd/oAE3f8ABN3/gATd/8AE3gAABN4AgATeAMAE3h+ABN4gAATeIMAE3iFABN4iAATeIkAE3iKABN4iwATeIwAE3iOABN4kAATeJEAE3iSABN4lAATeJUAE3kQABN5EgATeRQAE3kWABN5GQATeRoAE3kbABN5HAATeR0AE3kfABN5IQATeSIAE3kjABN5JQATeSYAE3mhABN5owATeaUAE3mnABN5qgATeasAE3msABN5rQATea4AE3mwABN5sgATebMAE3m0ABN5tgATebcAE3oyABN6NAATejYAE3o4ABN6OwATejwAE3o9ABN6PgATej8AE3pBABN6QwATekQAE3pFABN6RwATekgAE3pZABN6WgATelwAE3p1ABN6dgATencAE3p5ABN6kgATepMAE3qUABN6lgATeq8AE3qwABN6sQATerMAE3rEABN60wATeuwAE3r7ABN7DQATeyEAE3s4ABN7SgATe1sAE3tcABN7XgATe3cAE3t4ABN7eQATe3sAE3uQABN7oQATe6sAE3u4AAAAAAAABAQAAAAAAAHfnwAAAAAAAAAAAAAAAAATe8A= + + + + + 1 + contactIdentity + + + + nextRefreshTimestamp + + + + rawAPIKeyExpirationDate + + + + CachedWellKnown + Undefined + 22 + CachedWellKnown + 1 + + + + + + seedForNextProvisionedReceiveKey + + + + groupUid + + + + 1 + contactGroupsOwned + + + + rawCategory + + + + seedForNextSendKey + + + + MutualScanSignatureReceived + Undefined + 50 + MutualScanSignatureReceived + 1 + + + + + + encodedCurrentState + + + + rawMessageIdOwnedIdentity + + + + rawAuthState + + + + rawMessageIdUid + + + + serializedCoreDetails + + + + ContactIdentity + Undefined + 21 + ContactIdentity + 1 + + + + + + statusChangeTimestamp + + + + 1 + maskingUID + + + + expirationDate + + + + rawMessageIdUid + + + + rawPhotoServerLabel + + + + rawOwnPermissions + + + + serializedSharedSettings + + + + serializedCoreDetails + + + + aFullRatchetOfTheSendSeedIsInProgress + + + + serializedIdentityCoreDetails + + + + ownedCryptoIdentity + + + + wrappedKey + + + + rawOwnedIdentity + + + + 1 + ownedIdentity + + + + rawMessageIdUid + + + + attachmentNumber + + + + nonceFromServer + + + + rawPushTopic + + + + 1 + trustedIdentityDetails + + + + ciphertextChunkLength + + + + serverURL + + + + messagePayload + + + + ContactGroupDetailsLatest + Undefined + 2 + ContactGroupDetailsLatest + 1 + + + + + + encodedKey + + + + lastSuccessfulKeyVerificationTimestamp + + + + rawLabel + + + + childProtocolInstanceUid + + + + 1 + latestDetails + + + + ProtocolInstance + Undefined + 4 + ProtocolInstance + 1 + + + + + + rawAPIKeyStatus + + + + selfRatchetingCount + + + + 1 + message + + + + timestampOfLastFullRatchet + + + + Provision + Undefined + 38 + Provision + 1 + + + + + + ownedCryptoIdentity + + + + rawJwks + + + + rawMessageIdUid + + + + 1 + chunks + + + + 1 + contactGroupInCaseTheDetailsArePublished + + + + statusRaw + + + + latestRegistrationDate + + + + PendingGroupMember + Undefined + 42 + PendingGroupMember + 1 + + + + + + serializedIdentityCoreDetails + + + + timestampFromServer + + + + isCertifiedByOwnKeycloak + + + + ContactGroupV2Member + Undefined + 51 + ContactGroupV2Member + 1 + + + + + + version + + + + cryptoSuiteVersion + + + + version + + + + rawOwnedIdentityIdentity + + + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8Q +D05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGsCwwXGB0eJiswMTQ4VSRudWxs1Q0ODxAREhMUFRZZTlNPcGVyYW5kXk5TU2VsZWN0b3JOYW1lXxAQTlNFeHByZXNzaW9uVHlwZVtOU0FyZ3VtZW50c1YkY2xhc3OAA4ACEASABoALXxAQdmFsdWVGb3JLZXlQYXRoOtMZDxEaGxxaTlNWYXJpYWJsZYAEEAKABVZzb3VyY2XSHyAhIlokY2xhc3NuYW1lWCRjbGFzc2VzXxAUTlNWYXJpYWJsZUV4cHJlc3Npb26jIyQlXxAUTlNWYXJpYWJsZUV4cHJlc3Npb25cTlNFeHByZXNzaW9uWE5TT2JqZWN00icRKCpaTlMub2JqZWN0c6EpgAeACtMRDywtLi9ZTlNLZXlQYXRogAkQCoAIXxAQZW5jb2RlZFF1ZXJ5VHlwZdIfIDIzXxAcTlNLZXlQYXRoU3BlY2lmaWVyRXhwcmVzc2lvbqMyJCXSHyA1Nl5OU011dGFibGVBcnJheaM1NyVXTlNBcnJhedIfIDk6XxATTlNLZXlQYXRoRXhwcmVzc2lvbqQ5OyQlXxAUTlNGdW5jdGlvbkV4cHJlc3Npb24ACAARABoAJAApADIANwBJAEwAUQBTAGAAZgBxAHsAigCdAKkAsACyALQAtgC4ALoAzQDUAN8A4QDjAOUA7ADxAPwBBQEcASABNwFEAU0BUgFdAV8BYQFjAWoBdAF2AXgBegGNAZIBsQG1AboByQHNAdUB2gHwAfUAAAAAAAACAQAAAAAAAAA8AAAAAAAAAAAAAAAAAAACDA== + + rawEncodedQueryType + + + + 1 + contactGroups + + + + 1 + ownedIdentity + + + + 1 + message + + + + ContactIdentityDetailsTrusted + Undefined + 31 + ContactIdentityDetailsTrusted + 1 + + + + + + signature + + + + identityServer + + + + receptionChannelInfo + + + + rawEncryptedExtendedMessagePayload + + + + messageUploadTimestampFromServer + + + + expirationTimestamp + + + + macKeyRaw + + + + rawOwnedIdentity + + + + expectedChildStateRawId + + + + groupInvitationNonce + + + + rawAPIPermissions + + + + ChannelCreationWithContactDeviceProtocolInstance + Undefined + 46 + ChannelCreationWithContactDeviceProtocolInstance + 1 + + + + + + 1 + obliviousChannel + + + + 1 + devices + + + + rawBlobMainSeed + + + + 1 + rawOtherMembers + + + + PersistedEngineDialog + Undefined + 29 + PersistedEngineDialog + 1 + + + + + + timestampOfLastFullRatchetSentMessage + + + + InboxAttachmentChunk + Undefined + 26 + InboxAttachmentChunk + 1 + + + + + + rawOwnedIdentity + + + + signedURL + + + + uid + + + + 1 + otherDevices + + + + version + + + + name + + + + version + + + + attachmentNumber + + + + isForcefullyTrustedByUser + + + + currentDeviceUid + + + + 1 + contactGroupOwned + + + + 1 + contactIdentity + + + + rawRemoteDeviceUid + + + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8Q +D05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGsCwwXGB0eJiswMTQ4VSRudWxs1Q0ODxAREhMUFRZZTlNPcGVyYW5kXk5TU2VsZWN0b3JOYW1lXxAQTlNFeHByZXNzaW9uVHlwZVtOU0FyZ3VtZW50c1YkY2xhc3OAA4ACEASABoALXxAQdmFsdWVGb3JLZXlQYXRoOtMZDxEaGxxaTlNWYXJpYWJsZYAEEAKABVZzb3VyY2XSHyAhIlokY2xhc3NuYW1lWCRjbGFzc2VzXxAUTlNWYXJpYWJsZUV4cHJlc3Npb26jIyQlXxAUTlNWYXJpYWJsZUV4cHJlc3Npb25cTlNFeHByZXNzaW9uWE5TT2JqZWN00icRKCpaTlMub2JqZWN0c6EpgAeACtMRDywtLi9ZTlNLZXlQYXRogAkQCoAIXxATZW5jb2RlZFJlc3BvbnNlVHlwZdIfIDIzXxAcTlNLZXlQYXRoU3BlY2lmaWVyRXhwcmVzc2lvbqMyJCXSHyA1Nl5OU011dGFibGVBcnJheaM1NyVXTlNBcnJhedIfIDk6XxATTlNLZXlQYXRoRXhwcmVzc2lvbqQ5OyQlXxAUTlNGdW5jdGlvbkV4cHJlc3Npb24ACAARABoAJAApADIANwBJAEwAUQBTAGAAZgBxAHsAigCdAKkAsACyALQAtgC4ALoAzQDUAN8A4QDjAOUA7ADxAPwBBQEcASABNwFEAU0BUgFdAV8BYQFjAWoBdAF2AXgBegGQAZUBtAG4Ab0BzAHQAdgB3QHzAfgAAAAAAAACAQAAAAAAAAA8AAAAAAAAAAAAAAAAAAACDw== + + rawEncodedResponseType + + + + rawGroupUid + + + + dummyVariableForMigration + + + + mediatorOrGroupOwnerCryptoIdentity + + + + timestamp + + + + rawMessageIdOwnedIdentity + + + + downloadTimestamp + + + + rawGroupUID + + + + MessageHeader + Undefined + 45 + MessageHeader + 1 + + + + + + 1 + rawPendingMembers + + + + rawExtendedMessagePayloadKey + + + + selfRatchetingCount + + + + successfulVerificationCount + + + + rawMessageIdOwnedIdentity + + + + messageToSendRawId + + + + 1 + groupMembers + + + + rawIdentity + + + + rawOwnedCryptoId + + + + 1 + session + + + + rawOwnedIdentityIdentity + + + + groupVersion + + + + 1 + rawOwnedIdentity + + + + OutboxAttachmentSession + Undefined + 13 + OutboxAttachmentSession + 1 + + + + + + 1 + channelCreationProtocolInstanceInWaitingState + + + + 1 + provisions + + + + 1 + attachment + + + + rawPushTopics + + + + 1 + message + + + + 1 + contactGroupInCaseTheDetailsAreTrusted + + + + 1 + rawBackupKey + + + + rawCapabilities + + + + 1 + ownedIdentity + + + + encodedAuthenticatedDecryptionKey + + + + isOneToOne + + + + ContactGroupOwned + Undefined + 14 + ContactGroupOwned + 1 + + + + + + fullRatchetingCountOfLastProvision + + + + ContactOwnedIdentityDeletionSignatureReceived + Undefined + 34 + ContactOwnedIdentityDeletionSignatureReceived + 1 + + + + + + 1 + protocolInstance + + + + rawOwnedIdentity + + + + 1 + contactGroupsV2 + + + + 1 + pendingGroupMembers + + + + contactDeviceUid + + + + KeycloakRevokedIdentity + Undefined + 3 + KeycloakRevokedIdentity + 1 + + + + + + nextRefreshTimestamp + + + + mediatorOrGroupOwnerTrustLevelMajor + + + + chunkNumber + + + + userDialogUuid + + + + rawMessageIdUid + + + + rawAcknowledgerAppType + + + + wellKnownData + + + + rawMessageIdOwnedIdentity + + + + 1 + provision + + + + rawMessageIdUid + + + + uidRaw + + + + 1 + parentProtocolInstance + + + + rawPermissions + + + + token + + + + 1 + receiveKeys + + + + 1 + groupMemberships + + + + ownGroupInvitationNonce + + + + OwnedIdentityDetailsPublished + Undefined + 53 + OwnedIdentityDetailsPublished + 1 + + + + + + rawServerSignatureKey + + + + OwnedDevice + Undefined + 37 + OwnedDevice + 1 + + + + + + 1 + publishedIdentityDetails + + + + ChannelCreationWithOwnedDeviceProtocolInstance + Undefined + 7 + ChannelCreationWithOwnedDeviceProtocolInstance + 1 + + + + + + uid + + + + expectedChunkLength + + + + isRevokedAsCompromised + + + + isConfirmed + + + + rawIdentity + + + + attachmentNumber + + + + attachmentLength + + + + contactIdentity + + + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8Q +D05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGsCwwXGB0eJiswMTQ4VSRudWxs1Q0ODxAREhMUFRZZTlNPcGVyYW5kXk5TU2VsZWN0b3JOYW1lXxAQTlNFeHByZXNzaW9uVHlwZVtOU0FyZ3VtZW50c1YkY2xhc3OAA4ACEASABoALXxAQdmFsdWVGb3JLZXlQYXRoOtMZDxEaGxxaTlNWYXJpYWJsZYAEEAKABVZzb3VyY2XSHyAhIlokY2xhc3NuYW1lWCRjbGFzc2VzXxAUTlNWYXJpYWJsZUV4cHJlc3Npb26jIyQlXxAUTlNWYXJpYWJsZUV4cHJlc3Npb25cTlNFeHByZXNzaW9uWE5TT2JqZWN00icRKCpaTlMub2JqZWN0c6EpgAeACtMRDywtLi9ZTlNLZXlQYXRogAkQCoAIXxAPZW5jb2RlZEVsZW1lbnRz0h8gMjNfEBxOU0tleVBhdGhTcGVjaWZpZXJFeHByZXNzaW9uozIkJdIfIDU2Xk5TTXV0YWJsZUFycmF5ozU3JVdOU0FycmF50h8gOTpfEBNOU0tleVBhdGhFeHByZXNzaW9upDk7JCVfEBROU0Z1bmN0aW9uRXhwcmVzc2lvbgAIABEAGgAkACkAMgA3AEkATABRAFMAYABmAHEAewCKAJ0AqQCwALIAtAC2ALgAugDNANQA3wDhAOMA5QDsAPEA/AEFARwBIAE3AUQBTQFSAV0BXwFhAWMBagF0AXYBeAF6AYwBkQGwAbQBuQHIAcwB1AHZAe8B9AAAAAAAAAIBAAAAAAAAADwAAAAAAAAAAAAAAAAAAAIL + + rawEncodedElements + + + + PendingServerQueryToPendingServerQueryMigrationPolicyV49ToV50 + PendingServerQuery + Undefined + 55 + PendingServerQuery + 1 + + + + + + rawMessageIdOwnedIdentity + + + + photoFilename + + + + rawObvGroupV2Identifier + + + + rawMessageUidFromServer + + + + rawLabel + + + + 1 + rawPublishedDetails + + + + ContactGroupDetailsTrusted + Undefined + 6 + ContactGroupDetailsTrusted + 1 + + + + + + rawMessageIdUid + + + + 1 + backups + + + + groupMembersVersion + + + + ContactGroupDetailsPublished + Undefined + 40 + ContactGroupDetailsPublished + 1 + + + + + + serializedIdentityCoreDetails + + + + 1 + ownedIdentity + + + + rawOwnedIdentity + + + + commitment + + + + rawServerURL + + + + KeyMaterial + Undefined + 5 + KeyMaterial + 1 + + + + + + downloadTimestampFromServer + + + + ReceivedMessage + Undefined + 39 + ReceivedMessage + 1 + + + + + + 1 + channelCreationWithRemoteOwnedDeviceInWaitingState + + + + InboxAttachmentSession + Undefined + 27 + InboxAttachmentSession + 1 + + + + + + rawIdentifier + + + + 1 + session + + + + IdentityServerUserData + Undefined + 9 + IdentityServerUserData + 1 + + + + + + selfRevocationTestNonce + + + + rawCategory + + + + GroupV2SignatureReceived + Undefined + 44 + GroupV2SignatureReceived + 1 + + + + + + 1 + currentDeviceIdentity + + + + initialByteCountToDownload + + + + rawOwnedIdentity + + + + rawAppType + + + + ownedIdentityIdentity + + + + cleartextChunkLength + + + + numberOfDecryptedMessagesSinceLastFullRatchetSentMessage + + + + ObvObliviousChannel + Undefined + 23 + ObvObliviousChannel + 1 + + + + + + rawRevocationType + + + + chunkNumber + + + + clientId + + + + attachmentNumber + + + + 1 + publishedDetails + + + + 1 + contactIdentities + + + + 1 + protocolInstance + + + + rawOwnedIdentity + + + + rawMessageIdUid + + + + photoServerKeyEncoded + + + + timestamp + + + + serverURL + + + + rawBlobVersionSeed + + + + InboxMessage + Undefined + 24 + InboxMessage + 1 + + + + + + wrappedKey + + + + photoFilename + + + + groupUid + + + + rawOwnedIdentity + + + + OutboxAttachmentChunk + Undefined + 16 + OutboxAttachmentChunk + 1 + + + + + + 1 + rawContactGroup + + + + signature + + + + encodedEncodedInputs + + + + rawOwnedIdentity + + + + 1 + ownedIdentity + + + + encryptedContent + + + + BackupKey + Undefined + 28 + BackupKey + 1 + + + + + + serverURL + + + \ No newline at end of file diff --git a/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v49_to_v50/MigrationPolicies/PendingServerQueryToPendingServerQueryMigrationPolicyV49ToV50.swift b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v49_to_v50/MigrationPolicies/PendingServerQueryToPendingServerQueryMigrationPolicyV49ToV50.swift new file mode 100644 index 00000000..9e1ec9a8 --- /dev/null +++ b/Engine/ObvDatabaseManager/ObvDatabaseManager/Migration/v49_to_v50/MigrationPolicies/PendingServerQueryToPendingServerQueryMigrationPolicyV49ToV50.swift @@ -0,0 +1,101 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import OlvidUtils +import ObvCrypto + + +final class PendingServerQueryToPendingServerQueryMigrationPolicyV49ToV50: NSEntityMigrationPolicy, ObvErrorMaker { + + static let errorDomain = "PendingServerQuery" + static let debugPrintPrefix = "[\(errorDomain)][PendingServerQueryToPendingServerQueryMigrationPolicyV49ToV50]" + + + // Tested + override func createDestinationInstances(forSource sInstance: NSManagedObject, in mapping: NSEntityMapping, manager: NSMigrationManager) throws { + + do { + + debugPrint("\(Self.debugPrintPrefix) createDestinationInstances starts") + defer { + debugPrint("\(Self.debugPrintPrefix) createDestinationInstances ends") + } + + let dInstance = try initializeDestinationInstance(forEntityName: "PendingServerQuery", + forSource: sInstance, + in: mapping, + manager: manager, + errorDomain: Self.errorDomain) + defer { + manager.associate(sourceInstance: sInstance, withDestinationInstance: dInstance, for: mapping) + } + + // Move the old `ownedIdentity` to the new `rawOwnedIdentity` attribute. + // Doing this allows to remove the usage of the ObvCryptoIdentityTransformer (ValueTransformer). + + ValueTransformer.setValueTransformer(ObvCryptoIdentityTransformerForMigration(), forName: .obvCryptoIdentityTransformerName) + + guard let cryptoIdentity = sInstance.value(forKey: "ownedIdentity") as? ObvCryptoIdentity else { + throw ObvError.couldNotGetCryptoIdentity + } + + dInstance.setValue(cryptoIdentity.getIdentity(), forKey: "rawOwnedIdentity") + + } catch { + assertionFailure() + throw error + } + + } + + enum ObvError: Error { + case couldNotGetCryptoIdentity + } + +} + + +private final class ObvCryptoIdentityTransformerForMigration: ValueTransformer { + + override public class func transformedValueClass() -> AnyClass { + return ObvCryptoIdentity.self + } + + override public class func allowsReverseTransformation() -> Bool { + return true + } + + /// Transform an ObvIdentity into an instance of Data + override public func transformedValue(_ value: Any?) -> Any? { + guard let obvCryptoIdentity = value as? ObvCryptoIdentity else { return nil } + return obvCryptoIdentity.getIdentity() + } + + override public func reverseTransformedValue(_ value: Any?) -> Any? { + guard let data = value as? Data else { return nil } + return ObvCryptoIdentity(from: data) + } +} + +private extension NSValueTransformerName { + static let obvCryptoIdentityTransformerName = NSValueTransformerName(rawValue: "ObvCryptoIdentityTransformer") +} + diff --git a/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvDatabaseManager.swift b/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvDatabaseManager.swift index 5539d54a..f2a02ca1 100644 --- a/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvDatabaseManager.swift +++ b/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvDatabaseManager.swift @@ -138,6 +138,33 @@ extension ObvDatabaseManager { } + public func performBackgroundTaskAndWaitOrThrow(file: StaticString, line: Int, function: StaticString, _ block: (NSManagedObjectContext) throws -> T) throws -> T { + try coreDataStack.performBackgroundTaskAndWaitOrThrow { (context) in + context.name = "\(file) - \(function) - Line \(line)" + assert(context.transactionAuthor != nil) + return try block(context) + } + } + + + public func performBackgroundTaskAndWaitOrThrow(flowId: FlowIdentifier, file: StaticString, line: Int, function: StaticString, _ block: (ObvContext) throws -> T) throws -> T { + return try coreDataStack.performBackgroundTaskAndWaitOrThrow { context in + context.name = "\(file) - \(function) - Line \(line)" + assert(context.transactionAuthor != nil) + let obvContext = ObvContext(context: context, flowId: flowId, file: file, line: line, function: function) + let returnedValue: T + do { + returnedValue = try block(obvContext) + } catch { + obvContext.performAllEndOfScopeCompletionHAndlers() + throw error + } + obvContext.performAllEndOfScopeCompletionHAndlers() + return returnedValue + } + } + + public func debugPrintCurrentBackgroundContexts() { } } diff --git a/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/.xccurrentversion b/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/.xccurrentversion index da812330..7b897cc9 100644 --- a/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/.xccurrentversion +++ b/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/.xccurrentversion @@ -3,6 +3,6 @@ _XCCurrentVersionName - ObvEngine-v48.xcdatamodel + ObvEngine-v50.xcdatamodel diff --git a/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/ObvEngine-v49.xcdatamodel/contents b/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/ObvEngine-v49.xcdatamodel/contents new file mode 100644 index 00000000..57801691 --- /dev/null +++ b/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/ObvEngine-v49.xcdatamodel/contents @@ -0,0 +1,599 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/ObvEngine-v50.xcdatamodel/contents b/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/ObvEngine-v50.xcdatamodel/contents new file mode 100644 index 00000000..625c3624 --- /dev/null +++ b/Engine/ObvDatabaseManager/ObvDatabaseManager/ObvEngine.xcdatamodeld/ObvEngine-v50.xcdatamodel/contents @@ -0,0 +1,600 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Engine/ObvEncoder/ObvEncoder/Type extensions/Date+ObvCodable.swift b/Engine/ObvEncoder/ObvEncoder/Type extensions/Date+ObvCodable.swift index 3fba2847..19fdb923 100644 --- a/Engine/ObvEncoder/ObvEncoder/Type extensions/Date+ObvCodable.swift +++ b/Engine/ObvEncoder/ObvEncoder/Type extensions/Date+ObvCodable.swift @@ -19,20 +19,16 @@ import Foundation -// We keep a precision up to the microsecond extension Date: ObvCodable { public func obvEncode() -> ObvEncoded { - let precision = Double(10^6) - return Int(timeIntervalSince1970 * precision).obvEncode() + return Int(timeIntervalSince1970 * 1_000).obvEncode() } public init?(_ obvEncoded: ObvEncoded) { - let precision = Double(10^6) guard let val = Int(obvEncoded) else { return nil } - let timeIntervalSince1970 = Double(val) / precision - self = Date(timeIntervalSince1970: timeIntervalSince1970) + self = Date(timeIntervalSince1970: Double(val) / 1_000) } } diff --git a/Engine/ObvEncoder/ObvEncoder/Type extensions/String+ObvCodable.swift b/Engine/ObvEncoder/ObvEncoder/Type extensions/String+ObvCodable.swift index ed079cbb..abf0051d 100644 --- a/Engine/ObvEncoder/ObvEncoder/Type extensions/String+ObvCodable.swift +++ b/Engine/ObvEncoder/ObvEncoder/Type extensions/String+ObvCodable.swift @@ -27,7 +27,7 @@ extension String: ObvCodable { public init?(_ obvEncoded: ObvEncoded) { guard let dataRepresentation = Data(obvEncoded) else { return nil } - guard let s = String.init(data: dataRepresentation, encoding: .utf8) else { return nil } + guard let s = String.init(data: dataRepresentation, encoding: .utf8) else { assertionFailure(); return nil } self = s } diff --git a/Engine/ObvEngine/ObvEngine/Constants/ObvEngineConstants.swift b/Engine/ObvEngine/ObvEngine/Constants/ObvEngineConstants.swift index 0a09f57a..5ffc3390 100644 --- a/Engine/ObvEngine/ObvEngine/Constants/ObvEngineConstants.swift +++ b/Engine/ObvEngine/ObvEngine/Constants/ObvEngineConstants.swift @@ -23,16 +23,30 @@ import Foundation /// Notification values /// /// Possible values: -/// - 0x00 means iOS silent notification, production mode -/// - 0x03 means iOS silent notification, sandbox mode +/// - 0x00 means iOS silent notification, production mode (legacy) +/// - 0x03 means iOS silent notification, sandbox mode (legacy) /// - 0x04 means iOS notification with content, sandbox mode /// - 0x05 means iOS notification with content, production mode +/// - 0x06 means macOS notification public enum ObvEngineConstants { + #if OLVID_SERVER_DEVELOPMENT && !OLVID_SERVER_PRODUCTION - public static let remoteNotificationByteIdentifierForServer = Data([0x04]) + + #if targetEnvironment(macCatalyst) + public static let remoteNotificationByteIdentifierForServer = Data([0x06]) + #else + public static let remoteNotificationByteIdentifierForServer = Data([0x04]) + #endif + #elseif !OLVID_SERVER_DEVELOPMENT && OLVID_SERVER_PRODUCTION - public static let remoteNotificationByteIdentifierForServer = Data([0x05]) + + #if targetEnvironment(macCatalyst) + public static let remoteNotificationByteIdentifierForServer = Data([0x06]) + #else + public static let remoteNotificationByteIdentifierForServer = Data([0x05]) + #endif + #else - #error("unknown configuration") + #error("unknown configuration") #endif } diff --git a/Engine/ObvEngine/ObvEngine/EngineCoordinator.swift b/Engine/ObvEngine/ObvEngine/Coordinator/EngineCoordinator.swift similarity index 54% rename from Engine/ObvEngine/ObvEngine/EngineCoordinator.swift rename to Engine/ObvEngine/ObvEngine/Coordinator/EngineCoordinator.swift index 91e376da..cbc8b8a0 100644 --- a/Engine/ObvEngine/ObvEngine/EngineCoordinator.swift +++ b/Engine/ObvEngine/ObvEngine/Coordinator/EngineCoordinator.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,29 +29,25 @@ import OlvidUtils final class EngineCoordinator { private let log: OSLog + private let logSubsystem: String private let prng: PRNGService private weak var appNotificationCenter: NotificationCenter? + private let queueForComposedOperations: OperationQueue - init(logSubsystem: String, prng: PRNGService, appNotificationCenter: NotificationCenter) { + init(logSubsystem: String, prng: PRNGService, queueForComposedOperations: OperationQueue, appNotificationCenter: NotificationCenter) { self.log = OSLog(subsystem: logSubsystem, category: "EngineCoordinator") + self.logSubsystem = logSubsystem self.prng = prng self.appNotificationCenter = appNotificationCenter + self.queueForComposedOperations = queueForComposedOperations } - private let internalQueue: OperationQueue = { - let queue = OperationQueue() - queue.maxConcurrentOperationCount = 1 - queue.qualityOfService = .default - queue.name = "EngineCoordinator internal queue" - return queue - }() - private var notificationCenterTokens = [NSObjectProtocol]() weak var delegateManager: ObvMetaManager? { didSet { if delegateManager != nil { listenToEngineNotifications() - bootstrap() + Task { [weak self] in await self?.bootstrap() } } } } @@ -61,75 +57,167 @@ final class EngineCoordinator { guard let notificationDelegate = self.delegateManager?.notificationDelegate else { assertionFailure(); return } - do { - let token = ObvChannelNotification.observeNewConfirmedObliviousChannel(within: notificationDelegate) { [weak self] (currentDeviceUid, remoteCryptoIdentity, remoteDeviceUid) in - self?.processNewConfirmedObliviousChannelNotification(currentDeviceUid: currentDeviceUid, remoteCryptoIdentity: remoteCryptoIdentity, remoteDeviceUid: remoteDeviceUid) - } - notificationCenterTokens.append(token) - } - - do { - let token = ObvIdentityNotificationNew.observeOwnedIdentityWasReactivated(within: notificationDelegate, queue: internalQueue) { [weak self] (cryptoIdentity, _) in - /* - * When a new owned identity is reactivated, we start a device discovery for all her contacts. For a new owned identity, this does nothing, - * since she does not have any contact yet. But for an owned identity that was restored by means of a backup, there might by several - * contacts already. In that case, since the backup does not restore any contact device, we want to refresh those devices. - */ - self?.startDeviceDiscoveryForAllContactsOfOwnedIdentity(cryptoIdentity) - } - notificationCenterTokens.append(token) - } + // Listenging to ObvIdentityNotificationNew notificationCenterTokens.append(contentsOf: [ - ObvNetworkFetchNotificationNew.observeServerReportedThatAnotherDeviceIsAlreadyRegistered(within: notificationDelegate, queue: internalQueue) { [weak self] (ownedCryptoIdentity, flowId) in - self?.deactivateOwnedIdentity(ownedCryptoIdentity: ownedCryptoIdentity, flowId: flowId) + ObvIdentityNotificationNew.observeOwnedIdentityWasReactivated(within: notificationDelegate) { [weak self] (ownedCryptoIdentity, flowId) in + self?.processOwnedIdentityWasReactivated(ownedCryptoIdentity: ownedCryptoIdentity, flowId: flowId) // ok }, - ObvNetworkFetchNotificationNew.observeServerReportedThatThisDeviceWasSuccessfullyRegistered(within: notificationDelegate, queue: internalQueue) { [weak self] (ownedCryptoIdentity, flowId) in - self?.reactivateOwnedIdentity(ownedCryptoIdentity: ownedCryptoIdentity, flowId: flowId) + ObvIdentityNotificationNew.observeNewActiveOwnedIdentity(within: notificationDelegate) { [weak self] (ownedCryptoIdentity, flowId) in + self?.processNewActiveOwnedIdentity(ownedCryptoIdentity: ownedCryptoIdentity, flowId: flowId) // ok }, - ObvIdentityNotificationNew.observeDeletedContactDevice(within: notificationDelegate, queue: internalQueue) { [weak self] (ownedIdentity, contactIdentity, contactDeviceUid, flowId) in - self?.deleteObliviousChannelBetweenThisDeviceAndRemoteDevice(ownedIdentity: ownedIdentity, remoteDeviceUid: contactDeviceUid, remoteIdentity: contactIdentity, flowId: flowId) + ObvIdentityNotificationNew.observeDeletedContactDevice(within: notificationDelegate) { [weak self] (ownedIdentity, contactIdentity, contactDeviceUid, flowId) in + self?.deleteObliviousChannelBetweenThisDeviceAndRemoteDevice(ownedIdentity: ownedIdentity, remoteDeviceUid: contactDeviceUid, remoteIdentity: contactIdentity, flowId: flowId) // ok }, - ObvIdentityNotificationNew.observeNewContactDevice(within: notificationDelegate) { [weak self] (ownedIdentity, contactIdentity, _, flowId) in - self?.startDeviceDiscoveryProtocolForContactIdentity(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, flowId: flowId) + ObvIdentityNotificationNew.observeNewOwnedIdentityWithinIdentityManager(within: notificationDelegate) { [weak self] cryptoIdentity in + self?.processNewOwnedIdentityWithinIdentityManager(ownedCryptoIdentity: cryptoIdentity) // ok }, - ObvNetworkFetchNotificationNew.observeNewFreeTrialAPIKeyForOwnedIdentity(within: notificationDelegate) { [weak self] (ownedIdentity, apiKey, flowId) in - self?.setAPIKeyAndResetServerSession(ownedIdentity: ownedIdentity, apiKey: apiKey, transactionIdentifier: nil, flowId: flowId) + ObvIdentityNotificationNew.observeContactIsCertifiedByOwnKeycloakStatusChanged(within: notificationDelegate) { [weak self] ownedIdentity, contactIdentity, newIsCertifiedByOwnKeycloak in + Task { [weak self] in await self?.processContactIsCertifiedByOwnKeycloakStatusChanged(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, newIsCertifiedByOwnKeycloak: newIsCertifiedByOwnKeycloak) } }, - ObvNetworkFetchNotificationNew.observeAppStoreReceiptVerificationSucceededAndSubscriptionIsValid(within: notificationDelegate) { [weak self] (ownedIdentity, transactionIdentifier, apiKey, flowId) in - self?.setAPIKeyAndResetServerSession(ownedIdentity: ownedIdentity, apiKey: apiKey, transactionIdentifier: transactionIdentifier, flowId: flowId) + ObvIdentityNotificationNew.observeContactIdentityIsNowTrusted(within: notificationDelegate) { [weak self] contactIdentity, ownedIdentity, flowId in + self?.processContactIdentityIsNowTrusted(contactIdentity: contactIdentity, ownedIdentity: ownedIdentity, flowId: flowId) }, - ObvIdentityNotificationNew.observeNewOwnedIdentityWithinIdentityManager(within: notificationDelegate) { [weak self] _ in - guard let _self = self else { return } - guard let obvEngine = _self.obvEngine else { assertionFailure(); return } - do { - try obvEngine.downloadAllUserData() - } catch { - os_log("Could not download all user data after restoring backup: %{public}@", log: _self.log, type: .fault, error.localizedDescription) - assertionFailure() - } - self?.informTheNetworkFetchManagerOfTheLatestSetOfOwnedIdentities() + ObvIdentityNotificationNew.observeNewContactDevice(within: notificationDelegate) { [weak self] (ownedIdentity, contactIdentity, contactDeviceUid, createdDuringChannelCreation, flowId) in + self?.processNewContactDevice(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid, createdDuringChannelCreation: createdDuringChannelCreation, flowId: flowId) }, - ObvIdentityNotificationNew.observeContactIsCertifiedByOwnKeycloakStatusChanged(within: notificationDelegate) { [weak self] ownedIdentity, contactIdentity, newIsCertifiedByOwnKeycloak in - self?.processContactIsCertifiedByOwnKeycloakStatusChanged(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, newIsCertifiedByOwnKeycloak: newIsCertifiedByOwnKeycloak) + ObvIdentityNotificationNew.observeNewRemoteOwnedDevice(within: notificationDelegate) { [weak self] ownedCryptoId, remoteDeviceUid, createdDuringChannelCreation in + Task { [weak self] in await self?.processNewRemoteOwnedDevice(ownedCryptoId: ownedCryptoId, remoteDeviceUid: remoteDeviceUid, createdDuringChannelCreation: createdDuringChannelCreation) } }, - ObvIdentityNotificationNew.observePushTopicOfKeycloakGroupWasUpdated(within: notificationDelegate) { [weak self] ownedCryptoId in - self?.processPushTopicOfKeycloakGroupWasUpdated(ownedCryptoId: ownedCryptoId) + ObvIdentityNotificationNew.observeOwnedIdentityWasDeleted(within: notificationDelegate) { [weak self] ownedCryptoId in + self?.processOwnedIdentityWasDeleted(ownedCryptoId: ownedCryptoId) + } + ]) + + // Listenging to ObvChannelNotification + + notificationCenterTokens.append(contentsOf: [ + ObvChannelNotification.observeNewConfirmedObliviousChannel(within: notificationDelegate) { [weak self] (currentDeviceUid, remoteCryptoIdentity, remoteDeviceUid) in + self?.processNewConfirmedObliviousChannelNotification(currentDeviceUid: currentDeviceUid, remoteCryptoIdentity: remoteCryptoIdentity, remoteDeviceUid: remoteDeviceUid) // ok }, ]) + + // Listenging to ObvNetworkFetchNotificationNew + notificationCenterTokens.append(contentsOf: [ + ObvNetworkFetchNotificationNew.observeOwnedDevicesMessageReceivedViaWebsocket(within: notificationDelegate) { [weak self] ownedCryptoIdentity in + self?.processOwnedDevicesMessageReceivedViaWebsocket(ownedIdentity: ownedCryptoIdentity) + }, + ]) + } } extension EngineCoordinator { - private func bootstrap() { + private func bootstrap() async { let flowId = FlowIdentifier() deleteObsoleteObliviousChannels(flowId: flowId) - startDeviceDiscoveryProtocolForContactsHavingNoDeviceOrTooManyDevices(flowId: flowId) - startChannelCreationProtocolWithContactDevicesHavingNoChannelAndNoOngoingChannelCreationProtocol(flowId: flowId) + await deleteContactDevicesWithNoChannelAndNoChannelCreationThenPerformAppropriateDeviceDiscoveries(flowId: flowId) + startDeviceDiscoveryProtocolForContactsHavingNoDevice(flowId: flowId) pruneObsoletePersistedEngineDialogs(flowId: flowId) + await sendTargetedPingMessageForKeycloakGroupV2ProtocolWhereContactIsPending(flowId: flowId) + } + + + private func sendTargetedPingMessageForKeycloakGroupV2ProtocolWhereContactIsPending(flowId: FlowIdentifier) async { + do { + + guard let delegateManager else { assertionFailure(); throw ObvError.delegateManagerIsNotSet } + guard let identityDelegate = delegateManager.identityDelegate else { assertionFailure(); throw ObvError.theIdentityDelegateIsNotSet } + guard let channelDelegate = delegateManager.channelDelegate else { assertionFailure(); return } + guard let protocolDelegate = delegateManager.protocolDelegate else { assertionFailure(); return } + + let keycloakPendingContactMembersForOwnedIdentity = try await getAllKeycloakContactsThatArePendingInSomeKeycloakGroup(flowId: flowId) + + let contactIdentifiers = Set(keycloakPendingContactMembersForOwnedIdentity.flatMap { (ownedCryptoId, pendingContactsCryptoIds) in + pendingContactsCryptoIds.map { pendingContact in + return ObvContactIdentifier(contactCryptoId: ObvCryptoId(cryptoIdentity: pendingContact), ownedCryptoId: ObvCryptoId(cryptoIdentity: ownedCryptoId)) + } + }) + + guard !contactIdentifiers.isEmpty else { return } + + let op1 = SendTargetedPingMessageForKeycloakGroupV2ProtocolWhereContactIsPendingMemberOperation( + identityDelegate: identityDelegate, + channelDelegate: channelDelegate, + protocolDelegate: protocolDelegate, + prng: prng, + contactIdentifiers: contactIdentifiers, + logSubsystem: logSubsystem) + + do { + let composedOp = try createCompositionOfOneContextualOperation(op1: op1) + try await protocolDelegate.executeOnQueueForProtocolOperations(operation: composedOp) + os_log("Successful pinged keycloak contacts in group where they are pending", log: log, type: .info) + } catch { + assertionFailure(error.localizedDescription) + os_log("Failed to ping keycloak contacts in group where they are pending: %{public}@", log: log, type: .fault, error.localizedDescription) + } + + } catch { + assertionFailure(error.localizedDescription) + } + } + + + private func getAllKeycloakContactsThatArePendingInSomeKeycloakGroup(flowId: FlowIdentifier) async throws -> [ObvCryptoIdentity: Set] { + + guard let delegateManager else { assertionFailure(); throw ObvError.delegateManagerIsNotSet } + guard let identityDelegate = delegateManager.identityDelegate else { assertionFailure(); throw ObvError.theIdentityDelegateIsNotSet } + guard let createContextDelegate = delegateManager.createContextDelegate else { assertionFailure(); throw ObvError.theCreateContextDelegateIsNotSet } + + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<[ObvCryptoIdentity: Set], Error>) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + let result = try identityDelegate.getAllKeycloakContactsThatArePendingInSomeKeycloakGroup(within: obvContext) + continuation.resume(returning: result) + } catch { + continuation.resume(throwing: error) + } + } + } + + } + + + /// This operation deletes all devices found within the identity manager if they have no associated channel and no oingoing channel creation protocol with the current device. For each (owned or contact) identity corresponding to a deleted device, we start a device discovery. + private func deleteContactDevicesWithNoChannelAndNoChannelCreationThenPerformAppropriateDeviceDiscoveries(flowId: FlowIdentifier) async { + + do { + + guard let identityDelegate = delegateManager?.identityDelegate else { assertionFailure(); return } + guard let channelDelegate = delegateManager?.channelDelegate else { assertionFailure(); return } + guard let protocolDelegate = delegateManager?.protocolDelegate else { assertionFailure(); return } + + let op1 = DeleteContactDevicesWithNoChannelAndNoChannelCreationThenPerformAppropriateDeviceDiscoveriesOperation( + identityDelegate: identityDelegate, + channelDelegate: channelDelegate, + protocolDelegate: protocolDelegate, + prng: prng) + + let composedOp = try createCompositionOfOneContextualOperation(op1: op1) + + try await protocolDelegate.executeOnQueueForProtocolOperations(operation: composedOp) + + } catch { + assertionFailure(error.localizedDescription) + os_log("Failed to deactivate owned identity: %{public}@", log: log, type: .fault, error.localizedDescription) + } + + } + + + private func processNewOwnedIdentityWithinIdentityManager(ownedCryptoIdentity: ObvCryptoIdentity) { + guard let obvEngine else { assertionFailure(); return } + do { + try obvEngine.downloadAllUserData() + } catch { + os_log("Could not download all user data after restoring backup: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + } + informTheNetworkFetchManagerOfTheLatestSetOfOwnedIdentities() } @@ -161,7 +249,8 @@ extension EngineCoordinator { /// When we delete a contact device, we normaly catch a notification allowing to delete all associated oblivious channels, but this is not atomic. - /// This method scans all Olbivious channels an makes sure that there is still an associated device within the identity manager. + /// This method scans all Oblivious channels an makes sure that there is still an associated device within the identity manager. + /// If not, we delete the channel. private func deleteObsoleteObliviousChannels(flowId: FlowIdentifier) { guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); return } @@ -297,6 +386,8 @@ extension EngineCoordinator { // If we reach this point, we can start a channel creation protocol + os_log("🛟 [%{public}@] Since no channel exists with a device of the contact, and there is no ongoing channel creation, we start a channel creation now", log: log, type: .info, contact.debugDescription) + let msg: ObvChannelProtocolMessageToSend do { msg = try protocolDelegate.getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity: ownedIdentity, andTheDeviceUid: device, ofTheContactIdentity: contact) @@ -307,7 +398,7 @@ extension EngineCoordinator { } do { - _ = try channelDelegate.post(msg, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(msg, randomizedWith: prng, within: obvContext) } catch { os_log("Could not start channel creation protocol with contact device", log: log, type: .fault) assertionFailure() @@ -331,8 +422,101 @@ extension EngineCoordinator { } - /// Check whether each contact has one, and only one device. If not, perform a device discovery protocol - private func startDeviceDiscoveryProtocolForContactsHavingNoDeviceOrTooManyDevices(flowId: FlowIdentifier) { + + /// Ask for all other owned devices then check if a channel exists with that device. If not, check whether there is an ongoing channel creation protocol. If not, launch one. + private func startChannelCreationProtocolWithOtherOwnedDevicesHavingNoChannelAndNoOngoingChannelCreationProtocol(flowId: FlowIdentifier) { + + guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); return } + guard let identityDelegate = delegateManager?.identityDelegate else { assertionFailure(); return } + guard let protocolDelegate = delegateManager?.protocolDelegate else { assertionFailure(); return } + guard let channelDelegate = delegateManager?.channelDelegate else { assertionFailure(); return } + + createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in + + guard let ownedIdentities = try? identityDelegate.getOwnedIdentities(within: obvContext) else { + os_log("Could not get owned identities", log: log, type: .fault) + assertionFailure() + return + } + + let channelCreationProtocols: Set + do { + channelCreationProtocols = try protocolDelegate.getAllObliviousChannelIdentifiersHavingARunningChannelCreationWithOwnedDeviceProtocolInstances(within: obvContext) + } catch { + os_log("Could not get the list of ongoing channel creations protocols", log: log, type: .fault) + assertionFailure() + return + } + + for ownedIdentity in ownedIdentities { + + let otherOwnedDevices: Set + let currentDeviceUid: UID + do { + otherOwnedDevices = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) + currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) + } catch { + os_log("Could not get owned devices or current device uid", log: log, type: .fault) + assertionFailure() + continue + } + + + for otherOwnedDevice in otherOwnedDevices { + + let channelExists: Bool + do { + channelExists = try channelDelegate.anObliviousChannelExistsBetweenCurrentDeviceUid(currentDeviceUid, andRemoteDeviceUid: otherOwnedDevice, of: ownedIdentity, within: obvContext) + } catch { + os_log("Could not query de channel manager", log: log, type: .fault) + assertionFailure() + continue + } + + if channelExists { continue } + + // If we reach this point, we have no channel with the remote owned device. + // We check whether there is a channel creation protocol already handling this situation. + + let channelCreationToFind = ObliviousChannelIdentifierAlt(ownedCryptoIdentity: ownedIdentity, remoteCryptoIdentity: ownedIdentity, remoteDeviceUid: otherOwnedDevice) + if channelCreationProtocols.contains(channelCreationToFind) { continue } + + // If we reach this point, we can start a channel creation protocol + + let msg: ObvChannelProtocolMessageToSend + do { + msg = try protocolDelegate.getInitialMessageForChannelCreationWithOwnedDeviceProtocol(ownedIdentity: ownedIdentity, remoteDeviceUid: otherOwnedDevice) + } catch { + os_log("Could not get initial message for starting a channel creation with owned device", log: log, type: .fault) + assertionFailure() + continue + } + + do { + _ = try channelDelegate.postChannelMessage(msg, randomizedWith: prng, within: obvContext) + } catch { + os_log("Could not start channel creation protocol with owned device", log: log, type: .fault) + assertionFailure() + continue + } + + } + + } + + do { + try obvContext.save(logOnFailure: log) + } catch { + os_log("Could not perform startChannelCreationProtocolWithOtherOwnedDevicesHavingNoChannelAndNoOngoingChannelCreationProtocol: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + } + + } + + } + + /// Check whether each contact has at least one device. If not, perform a device discovery protocol. + private func startDeviceDiscoveryProtocolForContactsHavingNoDevice(flowId: FlowIdentifier) { guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); return } guard let identityDelegate = delegateManager?.identityDelegate else { assertionFailure(); return } @@ -349,33 +533,42 @@ extension EngineCoordinator { for ownedIdentity in ownedIdentities { - let contacts: Set + let contactsWithoutDevice: Set do { - contacts = try identityDelegate.getContactsOfOwnedIdentity(ownedIdentity, within: obvContext) + contactsWithoutDevice = try identityDelegate.getContactsWithNoDeviceOfOwnedIdentity(ownedIdentity, within: obvContext) } catch { os_log("Could not get contacts", log: log, type: .fault) assertionFailure() continue } - for contact in contacts { + for contactWithoutDevice in contactsWithoutDevice { - let contactDevices: Set + let dateOfLastBootstrappedContactDeviceDiscovery: Date do { - contactDevices = try identityDelegate.getDeviceUidsOfContactIdentity(contact, ofOwnedIdentity: ownedIdentity, within: obvContext) + dateOfLastBootstrappedContactDeviceDiscovery = try identityDelegate.getDateOfLastBootstrappedContactDeviceDiscovery(forContactCryptoId: contactWithoutDevice, ofOwnedCryptoId: ownedIdentity, within: obvContext) } catch { - os_log("Could not get contact devices", log: log, type: .fault) + os_log("Could get date of last boostrapped contact device discovery", log: log, type: .fault) assertionFailure() continue } - - if contactDevices.count == 1 { continue } - // If we reach this point, the contact has either no device, or "too many" devices - + guard abs(dateOfLastBootstrappedContactDeviceDiscovery.timeIntervalSinceNow) > TimeInterval(days: 3) else { + // We do not want to perform a bootstrapped contact discovery to often + continue + } + + do { + try identityDelegate.setDateOfLastBootstrappedContactDeviceDiscovery(forContactCryptoId: contactWithoutDevice, ofOwnedCryptoId: ownedIdentity, to: Date(), within: obvContext) + } catch { + os_log("Could not set date of last boostrapped contact device discovery", log: log, type: .fault) + assertionFailure() + // Continue anyway + } + let msg: ObvChannelProtocolMessageToSend do { - msg = try protocolDelegate.getInitialMessageForDeviceDiscoveryForContactIdentityProtocol(ownedIdentity: ownedIdentity, contactIdentity: contact) + msg = try protocolDelegate.getInitialMessageForContactDeviceDiscoveryProtocol(ownedIdentity: ownedIdentity, contactIdentity: contactWithoutDevice) } catch { os_log("Could get message for device discovery protocol", log: log, type: .fault) assertionFailure() @@ -383,7 +576,7 @@ extension EngineCoordinator { } do { - _ = try channelDelegate.post(msg, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(msg, randomizedWith: prng, within: obvContext) } catch { os_log("Could not start device discovery protocol for a contact", log: log, type: .fault) assertionFailure() @@ -392,7 +585,6 @@ extension EngineCoordinator { } - } do { @@ -412,128 +604,179 @@ extension EngineCoordinator { extension EngineCoordinator { - + /// When the `isCertifiedByOwnKeycloak` changes from `false` to `true`, we want to send a "ping" to her - private func processContactIsCertifiedByOwnKeycloakStatusChanged(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, newIsCertifiedByOwnKeycloak: Bool) { + private func processContactIsCertifiedByOwnKeycloakStatusChanged(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, newIsCertifiedByOwnKeycloak: Bool) async { guard let identityDelegate = delegateManager?.identityDelegate else { assertionFailure(); return } - guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); return } guard let protocolDelegate = delegateManager?.protocolDelegate else { assertionFailure(); return } guard let channelDelegate = delegateManager?.channelDelegate else { assertionFailure(); return } guard newIsCertifiedByOwnKeycloak else { return } - let flowId = FlowIdentifier() - let prng = self.prng - createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in - - do { - let groupIdentifiers = try identityDelegate.getIdentifiersOfAllKeycloakGroupsWhereContactIsPending(ownedCryptoId: ownedIdentity, contactCryptoId: contactIdentity, within: obvContext) - - try groupIdentifiers.forEach { groupIdentifier in - let msg = try protocolDelegate.getInitiateTargetedPingMessageForKeycloakGroupV2Protocol(ownedIdentity: ownedIdentity, groupIdentifier: groupIdentifier, pendingMemberIdentity: contactIdentity, flowId: flowId) - _ = try channelDelegate.post(msg, randomizedWith: prng, within: obvContext) - } - - } catch { - assertionFailure(error.localizedDescription) - os_log("Could not ping contact in keycloak groups where she is pending", log: self.log, type: .fault) - } - + let contactIdentifier = ObvContactIdentifier(contactCryptoId: ObvCryptoId(cryptoIdentity: contactIdentity), ownedCryptoId: ObvCryptoId(cryptoIdentity: ownedIdentity)) + + let op1 = SendTargetedPingMessageForKeycloakGroupV2ProtocolWhereContactIsPendingMemberOperation( + identityDelegate: identityDelegate, + channelDelegate: channelDelegate, + protocolDelegate: protocolDelegate, + prng: prng, + contactIdentifiers: Set([contactIdentifier]), + logSubsystem: logSubsystem) + + do { + let composedOp = try createCompositionOfOneContextualOperation(op1: op1) + try await protocolDelegate.executeOnQueueForProtocolOperations(operation: composedOp) + os_log("Successful pinged keycloak contact in group where she is pending", log: log, type: .info) + } catch { + assertionFailure(error.localizedDescription) + os_log("Failed to ping keycloak contact in group where she is pending: %{public}@", log: log, type: .fault, error.localizedDescription) } + } - - /// When a the push topic of a keycloak group is created/updated, we want to re-register to push notification to make sure we inform the server we are interested by this new push topic. - private func processPushTopicOfKeycloakGroupWasUpdated(ownedCryptoId: ObvCryptoIdentity) { + + /// Almost all the owned identity deletion work is performed in the OwnedIdentityDeletionProtocol (including deleting messages from the Inbox/Outbox). + /// Here, we simply clean the PersistedEngineDialog database. + private func processOwnedIdentityWasDeleted(ownedCryptoId: ObvCryptoIdentity) { + guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); return } - guard let networkFetchDelegate = delegateManager?.networkFetchDelegate else { assertionFailure(); return } - guard let identityDelegate = delegateManager?.identityDelegate else { assertionFailure(); return } - let flowId = FlowIdentifier() - debugPrint("🏁 \(flowId.debugDescription.prefix(5)) processPushTopicOfKeycloakGroupWasUpdated") + guard let appNotificationCenter = self.appNotificationCenter else { return } + let log = self.log - createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in - do { - let pushTopics = try identityDelegate.getKeycloakPushTopics(ownedCryptoIdentity: ownedCryptoId, within: obvContext) - if let pushNotification = try networkFetchDelegate.getServerPushNotification(ownedCryptoId: ownedCryptoId, within: obvContext) { - let newPushNotification = pushNotification.withUpdatedKeycloakPushTopics(pushTopics) - networkFetchDelegate.registerPushNotification(newPushNotification, flowId: obvContext.flowId) - } - } catch { - assertionFailure(error.localizedDescription) - os_log("Could not register to push notifications: %{public}@", log: log, type: .fault, error.localizedDescription) + + createContextDelegate.performBackgroundTask(flowId: FlowIdentifier()) { obvContext in + + guard let obvDialogs = try? PersistedEngineDialog.getAll(appNotificationCenter: appNotificationCenter, within: obvContext) else { assertionFailure(); return } + for obvDialog in obvDialogs { + guard obvDialog.obvDialog?.ownedCryptoId == ObvCryptoId(cryptoIdentity: ownedCryptoId) else { continue } + try? obvDialog.delete() } + try? obvContext.save(logOnFailure: log) + } + } - private func informTheNetworkFetchManagerOfTheLatestSetOfOwnedIdentities() { - + + /// When a new remote owned device is inserted, we immediately try to create an oblivious channel between the current device of the owned identity and this other remote owned device, but only if the remote device was *not* inserted during an existing channel creation. + /// We also perform an owned device discovery. + /// See also ``ObvEngine.processNewRemoteOwnedDevice(ownedCryptoId:remoteDeviceUid:)`` where we notify the app. + private func processNewRemoteOwnedDevice(ownedCryptoId: ObvCryptoIdentity, remoteDeviceUid: UID, createdDuringChannelCreation: Bool) async { + guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); return } - guard let identityDelegate = delegateManager?.identityDelegate else { assertionFailure(); return } - guard let networkFetchDelegate = delegateManager?.networkFetchDelegate else { assertionFailure(); return } + guard let protocolDelegate = delegateManager?.protocolDelegate else { assertionFailure(); return } + guard let channelDelegate = delegateManager?.channelDelegate else { assertionFailure(); return } + + // Perform a channel creation with the new remote owned device, if appropriate - let flowId = FlowIdentifier() - var _ownedIdentities: Set? - createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { obvContext in - _ownedIdentities = try? identityDelegate.getOwnedIdentities(within: obvContext) + if !createdDuringChannelCreation { + + let msg: ObvChannelProtocolMessageToSend + do { + msg = try protocolDelegate.getInitialMessageForChannelCreationWithOwnedDeviceProtocol(ownedIdentity: ownedCryptoId, remoteDeviceUid: remoteDeviceUid) + } catch { + os_log("Could get initial message for starting channel creation with owned device protocol", log: log, type: .fault) + assertionFailure() + return + } + + let flowId = FlowIdentifier() + let prng = self.prng + let log = self.log + + createContextDelegate.performBackgroundTask(flowId: flowId) { (obvContext) in + + do { + _ = try channelDelegate.postChannelMessage(msg, randomizedWith: prng, within: obvContext) + } catch { + os_log("Could not start channel creation with owned device protocol", log: log, type: .fault) + assertionFailure() + return + } + + do { + try obvContext.save(logOnFailure: log) + } catch { + os_log("Could not perform processNewRemoteOwnedDevice: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + } + + } + } - guard let ownedIdentities = _ownedIdentities else { - os_log("Could not get set of all owned identities", log: log, type: .fault) - assertionFailure() - return + + // Perform an owned device discovery + + do { + assert(obvEngine != nil) + try await obvEngine?.performOwnedDeviceDiscovery(ownedCryptoId: ObvCryptoId(cryptoIdentity: ownedCryptoId)) + } catch { + assertionFailure(error.localizedDescription) // In production, continue anyway } - networkFetchDelegate.updatedListOfOwnedIdentites(ownedIdentities: ownedIdentities, flowId: flowId) + } - /// This happens when the user requested, and received, a new free trial API Key, or when an AppStore receipt was successfully verified by our server. - /// In that case, we set this key within the identity manager and reset the network session. We know - /// that this will trigger the creation of a new session. This, in turn, will lead to a notification containing new API Key elements. - /// In the case we received the new API key thanks to an AppStore purchase, the transactionIdentifier will be set and we notify in case of success/failure - private func setAPIKeyAndResetServerSession(ownedIdentity: ObvCryptoIdentity, apiKey: UUID, transactionIdentifier: String?, flowId: FlowIdentifier) { + /// When a contact becomes trusted, we start a contact device discovery protocol to found out about all her devices. + private func processContactIdentityIsNowTrusted(contactIdentity: ObvCryptoIdentity, ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { + startDeviceDiscoveryProtocolForContactIdentity(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, flowId: flowId) + } + + + /// When a new contact device is inserted, we immediately try to create an oblivious channel between the current device of the owned identity and this contact device, but only if the contact device was *not* inserted during an existing channel creation. + /// We also perform an contact device discovery. + /// See also ``ObvEngine.processNewRemoteOwnedDevice(ownedCryptoId:remoteDeviceUid:)`` where we notify the app. + private func processNewContactDevice(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactDeviceUid: UID, createdDuringChannelCreation: Bool, flowId: FlowIdentifier) { guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); return } - guard let identityDelegate = delegateManager?.identityDelegate else { assertionFailure(); return } - guard let networkFetchDelegate = delegateManager?.networkFetchDelegate else { assertionFailure(); return } - guard let appNotificationCenter = self.appNotificationCenter else { return } + guard let protocolDelegate = delegateManager?.protocolDelegate else { assertionFailure(); return } + guard let channelDelegate = delegateManager?.channelDelegate else { assertionFailure(); return } - let log = self.log + // Perform a channel creation with the new remote owned device, if appropriate - let ownedCryptoId = ObvCryptoId(cryptoIdentity: ownedIdentity) + if !createdDuringChannelCreation { + + os_log("🛟 [%{public}@] Since the contact has a new device (not added as the result of a channel creation), we start a channel creation now", log: log, type: .info, contactIdentity.debugDescription) - let randomFlowId = FlowIdentifier() - createContextDelegate.performBackgroundTask(flowId: randomFlowId) { (obvContext) in - do { - try identityDelegate.setAPIKey(apiKey, forOwnedIdentity: ownedIdentity, keycloakServerURL: nil, within: obvContext) - try networkFetchDelegate.resetServerSession(for: ownedIdentity, within: obvContext) - } catch { - os_log("Could not set new API Key / reset user's server session: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - if let transactionIdentifier = transactionIdentifier { - ObvEngineNotificationNew.appStoreReceiptVerificationFailed(ownedIdentity: ownedCryptoId, transactionIdentifier: transactionIdentifier) - .postOnBackgroundQueue(within: appNotificationCenter) - } - return - } + let msg: ObvChannelProtocolMessageToSend do { - try obvContext.save(logOnFailure: log) + msg = try protocolDelegate.getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity: ownedIdentity, andTheDeviceUid: contactDeviceUid, ofTheContactIdentity: contactIdentity) } catch { - os_log("Could not set API Key: %{public}@", log: log, type: .fault, error.localizedDescription) + os_log("Could get initial message for starting channel creation with contact device protocol", log: log, type: .fault) assertionFailure() - if let transactionIdentifier = transactionIdentifier { - ObvEngineNotificationNew.appStoreReceiptVerificationFailed(ownedIdentity: ownedCryptoId, transactionIdentifier: transactionIdentifier) - .postOnBackgroundQueue(within: appNotificationCenter) - } return } - if let transactionIdentifier = transactionIdentifier { - ObvEngineNotificationNew.appStoreReceiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: ownedCryptoId, transactionIdentifier: transactionIdentifier) - .postOnBackgroundQueue(within: appNotificationCenter) + let flowId = FlowIdentifier() + let prng = self.prng + let log = self.log + + createContextDelegate.performBackgroundTask(flowId: flowId) { (obvContext) in + + do { + _ = try channelDelegate.postChannelMessage(msg, randomizedWith: prng, within: obvContext) + } catch { + os_log("Could not start channel creation with contact device protocol", log: log, type: .fault) + assertionFailure() + return + } + + do { + try obvContext.save(logOnFailure: log) + } catch { + os_log("Could not perform channel creation with contact device protocol: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + } + } } + // Perform an contact device discovery + + startDeviceDiscoveryProtocolForContactIdentity(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, flowId: flowId) + } @@ -559,7 +802,7 @@ extension EngineCoordinator { let msg: ObvChannelProtocolMessageToSend do { - msg = try protocolDelegate.getInitialMessageForDeviceDiscoveryForContactIdentityProtocol(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity) + msg = try protocolDelegate.getInitialMessageForContactDeviceDiscoveryProtocol(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity) } catch { os_log("Could get initial message for starting contact device discovery protocol", log: log, type: .fault) assertionFailure() @@ -567,7 +810,7 @@ extension EngineCoordinator { } do { - _ = try channelDelegate.post(msg, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(msg, randomizedWith: prng, within: obvContext) } catch { os_log("Could not start contact device discovery protocol", log: log, type: .fault) assertionFailure() @@ -584,15 +827,91 @@ extension EngineCoordinator { } } + + private func informTheNetworkFetchManagerOfTheLatestSetOfOwnedIdentities() { + + guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); return } + guard let identityDelegate = delegateManager?.identityDelegate else { assertionFailure(); return } + guard let networkFetchDelegate = delegateManager?.networkFetchDelegate else { assertionFailure(); return } + + let flowId = FlowIdentifier() + var _ownedIdentities: Set? + createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { obvContext in + _ownedIdentities = try? identityDelegate.getOwnedIdentities(within: obvContext) + } + guard let ownedIdentities = _ownedIdentities else { + os_log("Could not get set of all owned identities", log: log, type: .fault) + assertionFailure() + return + } + networkFetchDelegate.updatedListOfOwnedIdentites(ownedIdentities: ownedIdentities, flowId: flowId) + } + + + /// This happens when the user requested, and received, a new free trial API Key, or when an AppStore receipt was successfully verified by our server. + /// In that case, we set this key within the identity manager and reset the network session. We know + /// that this will trigger the creation of a new session. This, in turn, will lead to a notification containing new API Key elements. + /// In the case we received the new API key thanks to an AppStore purchase, the transactionIdentifier will be set and we notify in case of success/failure +// private func setAPIKeyAndResetServerSession(ownedIdentity: ObvCryptoIdentity, apiKey: UUID, transactionIdentifier: String?, flowId: FlowIdentifier) async { +// +// guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); return } +// guard let identityDelegate = delegateManager?.identityDelegate else { assertionFailure(); return } +// guard let networkFetchDelegate = delegateManager?.networkFetchDelegate else { assertionFailure(); return } +// guard let appNotificationCenter = self.appNotificationCenter else { assertionFailure(); return } +// guard let obvEngine else { assertionFailure(); return } +// +// let log = self.log +// let ownedCryptoId = ObvCryptoId(cryptoIdentity: ownedIdentity) +// +// do { +// try await obvEngine.setAPIKeyWithinIdentityManager(ownedCryptoIdentity: ownedIdentity, apiKey: apiKey, keycloakServerURL: nil, flowId: flowId) +// _ = try await networkFetchDelegate.refreshAPIPermissions(of: ownedIdentity, flowId: flowId) +// } catch { +// os_log("Could not set API Key: %{public}@", log: log, type: .fault, error.localizedDescription) +// if let transactionIdentifier = transactionIdentifier { +// ObvEngineNotificationNew.appStoreReceiptVerificationFailed(ownedIdentity: ownedCryptoId, transactionIdentifier: transactionIdentifier) +// .postOnBackgroundQueue(within: appNotificationCenter) +// } +// return +// } +// +// if let transactionIdentifier = transactionIdentifier { +// ObvEngineNotificationNew.appStoreReceiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: ownedCryptoId, transactionIdentifier: transactionIdentifier) +// .postOnBackgroundQueue(within: appNotificationCenter) +// } +// +// } + + + /// When receiving an `OwnedDevicesMessage` on the websocket, we perform an owned device discovery + private func processOwnedDevicesMessageReceivedViaWebsocket(ownedIdentity: ObvCryptoIdentity) { + + startOwnedDeviceDiscoveryProtocol(ownedIdentity) + + // Note that the NotificationSend sends a serverRequiresAllActiveOwnedIdentitiesToRegisterToPushNotifications notification, + // so that we will also re-register to push notifications. + + } + private func deleteObliviousChannelBetweenThisDeviceAndRemoteDevice(ownedIdentity: ObvCryptoIdentity, remoteDeviceUid: UID, remoteIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); return } guard let channelDelegate = delegateManager?.channelDelegate else { assertionFailure(); return } - + guard let identityDelegate = delegateManager?.identityDelegate else { assertionFailure(); return } + createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in + // Make sure the owned identity still exists, as this method gets called also when an owned identity was deleted + + do { + guard try identityDelegate.isOwned(ownedIdentity, within: obvContext) else { return } + } catch { + os_log("Could not check if the identity is owned. This is typically the case while deleting a owned identity.", log: log, type: .info) + return + } + do { try channelDelegate.deleteObliviousChannelBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, andTheRemoteDeviceWithUid: remoteDeviceUid, ofRemoteIdentity: remoteIdentity, within: obvContext) } catch { @@ -612,57 +931,27 @@ extension EngineCoordinator { } - - private func deactivateOwnedIdentity(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { - - guard let identityDelegate = delegateManager?.identityDelegate else { assertionFailure(); return } - guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); return } - - let log = self.log - - createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - - do { - try identityDelegate.deactivateOwnedIdentity(ownedIdentity: ownedCryptoIdentity, within: obvContext) - try obvContext.save(logOnFailure: log) - } catch let error { - os_log("Could not deactivate owned identity: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - - os_log("The owned identity %{public}@ was deactivated", log: log, type: .info, ownedCryptoIdentity.debugDescription) - - } - + + /// When a new owned identity is reactivated, we start a device discovery for all her contacts and for all her other owned devices. + /// We also start a channel creation protocol between the current device and other (contact and owned) devices, if no channel already exists, + /// and if no such protocol already exists. + /// + /// For a new owned identity, this does nothing, since she does not have any contact yet. + /// But for an owned identity that was restored by means of a backup, there might by several + /// contacts already. In that case, since the backup does not restore any contact device, we want to refresh those devices. + private func processOwnedIdentityWasReactivated(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { + startOwnedDeviceDiscoveryProtocol(ownedCryptoIdentity) + startDeviceDiscoveryForAllContactsOfOwnedIdentity(ownedCryptoIdentity) + startChannelCreationProtocolWithContactDevicesHavingNoChannelAndNoOngoingChannelCreationProtocol(flowId: flowId) + startChannelCreationProtocolWithOtherOwnedDevicesHavingNoChannelAndNoOngoingChannelCreationProtocol(flowId: flowId) } - private func reactivateOwnedIdentity(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { - - guard let identityDelegate = delegateManager?.identityDelegate else { assertionFailure(); return } - guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); return } - - let log = self.log - - createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - - do { - // We first make sure the owned identity stil exist before trying to reactivate it - guard try identityDelegate.isOwned(ownedCryptoIdentity, within: obvContext) else { return } - try identityDelegate.reactivateOwnedIdentity(ownedIdentity: ownedCryptoIdentity, within: obvContext) - try obvContext.save(logOnFailure: log) - } catch let error { - os_log("Could not reactivate owned identity: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - } - - os_log("The owned identity %{public}@ was reactivated", log: log, type: .info, ownedCryptoIdentity.debugDescription) - - } - + /// When a new identity is created in an active state, we do the exact same things than when an identity is reactivated. + func processNewActiveOwnedIdentity(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { + processOwnedIdentityWasReactivated(ownedCryptoIdentity: ownedCryptoIdentity, flowId: flowId) } - + private func startDeviceDiscoveryForAllContactsOfOwnedIdentity(_ ownedCryptoIdentity: ObvCryptoIdentity) { @@ -689,14 +978,14 @@ extension EngineCoordinator { let message: ObvChannelProtocolMessageToSend do { - message = try protocolDelegate.getInitialMessageForDeviceDiscoveryForContactIdentityProtocol(ownedIdentity: ownedCryptoIdentity, contactIdentity: contact) + message = try protocolDelegate.getInitialMessageForContactDeviceDiscoveryProtocol(ownedIdentity: ownedCryptoIdentity, contactIdentity: contact) } catch { os_log("Could not get initial message for device discovery for contact identity protocol", log: log, type: .fault) continue } do { - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) } catch { os_log("Could not post a local protocol message allowing to start a device discovery for a contact", log: log, type: .fault) continue @@ -714,6 +1003,56 @@ extension EngineCoordinator { } + private func startOwnedDeviceDiscoveryProtocol(_ ownedCryptoIdentity: ObvCryptoIdentity) { + + guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); return } + guard let protocolDelegate = delegateManager?.protocolDelegate else { assertionFailure(); return } + guard let channelDelegate = delegateManager?.channelDelegate else { assertionFailure(); return } + guard let identityDelegate = delegateManager?.identityDelegate else { assertionFailure(); return } + + let prng = self.prng + let log = self.log + + createContextDelegate.performBackgroundTask(flowId: FlowIdentifier()) { (obvContext) in + + do { + guard try identityDelegate.isOwned(ownedCryptoIdentity, within: obvContext) else { + os_log("We do not start an owned discovery protocol for an owned identity that does not exist", log: log, type: .fault) + return + } + } catch { + assertionFailure(error.localizedDescription) + return + } + + let message: ObvChannelProtocolMessageToSend + do { + message = try protocolDelegate.getInitiateOwnedDeviceDiscoveryMessage(ownedCryptoIdentity: ownedCryptoIdentity) + } catch { + os_log("Could not get initial message for owned device discovery protocol", log: log, type: .fault) + assertionFailure(error.localizedDescription) + return + } + + do { + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } catch { + os_log("Could not post a local protocol message allowing to start an owned device discovery", log: log, type: .fault) + assertionFailure(error.localizedDescription) + return + } + + do { + try obvContext.save(logOnFailure: log) + } catch let error { + os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) + } + + } + + } + + private func processNewConfirmedObliviousChannelNotification(currentDeviceUid: UID, remoteCryptoIdentity: ObvCryptoIdentity, remoteDeviceUid: UID) { /* When a new confirmed channel is created with a remote crypto identity, we send to her all the information we have about @@ -759,25 +1098,16 @@ extension EngineCoordinator { guard let _self = self else { return } guard let ownedCryptoIdentity = try? identityDelegate.getOwnedIdentityOfCurrentDeviceUid(currentDeviceUid, within: obvContext) else { - os_log("The device uid does not correspond to any owned identity", log: _self.log, type: .fault) + os_log("The device uid does not correspond to any owned identity (1)", log: _self.log, type: .fault) return } - guard (try? identityDelegate.isIdentity(remoteCryptoIdentity, aContactIdentityOfTheOwnedIdentity: ownedCryptoIdentity, within: obvContext)) == true else { - return - } - - guard (try? identityDelegate.isContactIdentityActive(ownedIdentity: ownedCryptoIdentity, contactIdentity: remoteCryptoIdentity, within: obvContext)) == true else { - os_log("Asking for the latest group members of groups owned by an inactive identity", log: _self.log, type: .fault) - return - } - do { let message = try protocolDelegate.getInitiateBatchKeysResendMessageForGroupV2Protocol(ownedIdentity: ownedCryptoIdentity, - contactIdentity: remoteCryptoIdentity, - contactDeviceUID: remoteDeviceUid, + remoteIdentity: remoteCryptoIdentity, + remoteDeviceUID: remoteDeviceUid, flowId: flowId) - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } catch { os_log("We failed to initiate a batch keys resend following a new confirmed channel with a contact: %{public}@", log: _self.log, type: .fault, error.localizedDescription) @@ -804,7 +1134,7 @@ extension EngineCoordinator { guard let _self = self else { return } guard let ownedCryptoIdentity = try? identityDelegate.getOwnedIdentityOfCurrentDeviceUid(currentDeviceUid, within: obvContext) else { - os_log("The device uid does not correspond to any owned identity", log: _self.log, type: .fault) + os_log("The device uid does not correspond to any owned identity (2)", log: _self.log, type: .fault) return } @@ -832,7 +1162,7 @@ extension EngineCoordinator { ownedIdentity: ownedCryptoIdentity, groupOwner: remoteCryptoIdentity, within: obvContext) - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) } catch let error { os_log("Could not ask for the latest group members of a group we joined with the identity whith whom we just created a channel: %{public}@", log: log, type: .fault, error.localizedDescription) assertionFailure() @@ -872,7 +1202,7 @@ extension EngineCoordinator { guard let _self = self else { return } guard let ownedCryptoIdentity = try? identityDelegate.getOwnedIdentityOfCurrentDeviceUid(currentDeviceUid, within: obvContext) else { - os_log("The device uid does not correspond to any owned identity", log: _self.log, type: .fault) + os_log("The device uid does not correspond to any owned identity (3)", log: _self.log, type: .fault) return } @@ -900,7 +1230,7 @@ extension EngineCoordinator { ownedIdentity: ownedCryptoIdentity, memberIdentity: remoteCryptoIdentity, within: obvContext) - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) } catch let error { os_log("Could not trigger a reinvite and update members of a group owned for a contact with whom we just created a channel: %{public}@", log: log, type: .fault, error.localizedDescription) assertionFailure() @@ -925,3 +1255,53 @@ extension EngineCoordinator { } } + + +// MARK: - Possible errors + +extension EngineCoordinator { + + enum ObvError: Error { + + case theCreateContextDelegateIsNotSet + case theChannelDelegateIsNotSet + case theIdentityDelegateIsNotSet + case theProtocolDelegateIsNotSet + case delegateManagerIsNotSet + + var localizedDescription: String { + switch self { + case .theCreateContextDelegateIsNotSet: + return "The create context delegate is not set" + case .theChannelDelegateIsNotSet: + return "The channel delegate is not set" + case .theIdentityDelegateIsNotSet: + return "The identity delegate is not set" + case .theProtocolDelegateIsNotSet: + return "The protocol delegate is not set" + case .delegateManagerIsNotSet: + return "The delegate manager is not set" + } + } + + } + +} + + +// MARK: - Helpers for operations + +extension EngineCoordinator { + + private func createCompositionOfOneContextualOperation(op1: ContextualOperationWithSpecificReasonForCancel) throws -> CompositionOfOneContextualOperation { + guard let createContextDelegate = delegateManager?.createContextDelegate else { assertionFailure(); throw ObvError.theCreateContextDelegateIsNotSet } + let log = self.log + let composedOp = CompositionOfOneContextualOperation(op1: op1, contextCreator: createContextDelegate, queueForComposedOperations: queueForComposedOperations, log: log, flowId: FlowIdentifier()) + composedOp.completionBlock = { [weak composedOp] in + assert(composedOp != nil) + composedOp?.logReasonIfCancelled(log: log) + } + return composedOp + } + +} diff --git a/Engine/ObvEngine/ObvEngine/Coordinator/Operations/ActivateOwnedIdentityOperation.swift b/Engine/ObvEngine/ObvEngine/Coordinator/Operations/ActivateOwnedIdentityOperation.swift new file mode 100644 index 00000000..d1dad928 --- /dev/null +++ b/Engine/ObvEngine/ObvEngine/Coordinator/Operations/ActivateOwnedIdentityOperation.swift @@ -0,0 +1,85 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import os.log +import ObvCrypto +import ObvMetaManager +import CoreData + + +/// This operation re-activates an owned identity. This shall only be performed after making sure the server considers that the current device of the owned identity is active. +/// As a consequence, if the user wants to reactivate the device, we do *not* immediately call this operation. Instead, we register the current device on the server with the `reactivateCurrentDevice` parameter set to `true`. +/// If this succeeds, the notification sent by the network manager will eventually trigger an execution of this operation. +final class ActivateOwnedIdentityOperation: ContextualOperationWithSpecificReasonForCancel { + + private let ownedCryptoIdentity: ObvCryptoIdentity + private let identityDelegate: ObvIdentityDelegate + + init(ownedCryptoIdentity: ObvCryptoIdentity, identityDelegate: ObvIdentityDelegate) { + self.ownedCryptoIdentity = ownedCryptoIdentity + self.identityDelegate = identityDelegate + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + // We first make sure the owned identity stil exist before trying to reactivate it. + // If this is not the case, this operation does nothing + + guard try identityDelegate.isOwned(ownedCryptoIdentity, within: obvContext) else { return } + + // We reactivate the owned identity + + try identityDelegate.reactivateOwnedIdentity(ownedIdentity: ownedCryptoIdentity, within: obvContext) + + + } catch { + return cancel(withReason: .identityDelegateError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case identityDelegateError(error: Error) + + public var logType: OSLogType { + switch self { + case .identityDelegateError: + return .fault + } + } + + public var errorDescription: String? { + switch self { + case .identityDelegateError(error: let error): + return "Identity delegate error: \(error.localizedDescription)" + } + } + + + } + +} + diff --git a/Engine/ObvEngine/ObvEngine/Coordinator/Operations/DeactivateOwnedIdentityAndMore.swift b/Engine/ObvEngine/ObvEngine/Coordinator/Operations/DeactivateOwnedIdentityAndMore.swift new file mode 100644 index 00000000..a9506df2 --- /dev/null +++ b/Engine/ObvEngine/ObvEngine/Coordinator/Operations/DeactivateOwnedIdentityAndMore.swift @@ -0,0 +1,107 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import os.log +import ObvCrypto +import ObvMetaManager +import CoreData + + +/// The operations deactivates the owned identity, deletes all the devices of the contacts of this owned identity and deletes all the oblivious channels between the current device of this owned identity (including channels with other owned devices). +/// Note that we do not delete other owned devices, we only delete any oblivious we have with them. +final class DeactivateOwnedIdentityAndMore: ContextualOperationWithSpecificReasonForCancel { + + private let ownedCryptoIdentity: ObvCryptoIdentity + private let identityDelegate: ObvIdentityDelegate + private let channelDelegate: ObvChannelDelegate + + init(ownedCryptoIdentity: ObvCryptoIdentity, identityDelegate: ObvIdentityDelegate, channelDelegate: ObvChannelDelegate) { + self.ownedCryptoIdentity = ownedCryptoIdentity + self.identityDelegate = identityDelegate + self.channelDelegate = channelDelegate + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + // Make sure the owned identity still exists as this operation may be called during the deletion of an owned identity + do { + guard try identityDelegate.isOwned(ownedCryptoIdentity, within: obvContext) else { + return + } + } catch { + assertionFailure() + return cancel(withReason: .identityDelegateError(error: error)) + } + + let currentDeviceUid: UID + do { + currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedCryptoIdentity, within: obvContext) + try identityDelegate.deactivateOwnedIdentityAndDeleteContactDevices(ownedIdentity: ownedCryptoIdentity, within: obvContext) + } catch { + assertionFailure() + return cancel(withReason: .identityDelegateError(error: error)) + } + + do { + try channelDelegate.deleteAllObliviousChannelsWithTheCurrentDeviceUid(currentDeviceUid, within: obvContext) + } catch { + assertionFailure() + return cancel(withReason: .channelDelegate(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case identityDelegateError(error: Error) + case channelDelegate(error: Error) + case contextIsNil + + public var logType: OSLogType { + switch self { + case .coreDataError, + .channelDelegate, + .identityDelegateError, + .contextIsNil: + return .fault + } + } + + public var errorDescription: String? { + switch self { + case .contextIsNil: + return "Context is nil" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .identityDelegateError(error: let error): + return "Identity delegate error: \(error.localizedDescription)" + case .channelDelegate(error: let error): + return "Channel delegate error: \(error.localizedDescription)" + } + } + + + } + +} diff --git a/Engine/ObvEngine/ObvEngine/Coordinator/Operations/DeleteContactDevicesWithNoChannelAndNoChannelCreationThenPerformAppropriateDeviceDiscoveriesOperation.swift b/Engine/ObvEngine/ObvEngine/Coordinator/Operations/DeleteContactDevicesWithNoChannelAndNoChannelCreationThenPerformAppropriateDeviceDiscoveriesOperation.swift new file mode 100644 index 00000000..18fccfa0 --- /dev/null +++ b/Engine/ObvEngine/ObvEngine/Coordinator/Operations/DeleteContactDevicesWithNoChannelAndNoChannelCreationThenPerformAppropriateDeviceDiscoveriesOperation.swift @@ -0,0 +1,189 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import os.log +import ObvCrypto +import ObvMetaManager +import CoreData + + +/// This operation deletes all devices found within the identity manager if they have no associated channel and no oingoing channel creation protocol with the current device. For each (owned or contact) identity corresponding to a deleted device, we start a device discovery. +final class DeleteContactDevicesWithNoChannelAndNoChannelCreationThenPerformAppropriateDeviceDiscoveriesOperation: ContextualOperationWithSpecificReasonForCancel { + + private let identityDelegate: ObvIdentityDelegate + private let channelDelegate: ObvChannelDelegate + private let protocolDelegate: ObvProtocolDelegate + private let prng: PRNGService + + init(identityDelegate: ObvIdentityDelegate, channelDelegate: ObvChannelDelegate, protocolDelegate: ObvProtocolDelegate, prng: PRNGService) { + self.identityDelegate = identityDelegate + self.channelDelegate = channelDelegate + self.protocolDelegate = protocolDelegate + self.prng = prng + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + // Get all existing devices within the identity manager + + let existingDevices: Set + do { + existingDevices = try identityDelegate.getAllRemoteOwnedDevicesUidsAndContactDeviceUids(within: obvContext) + } catch { + return cancel(withReason: .identityDelegateError(error: error)) + } + + // Get all existing channels + + let existingChannels: Set + do { + existingChannels = try channelDelegate.getAllRemoteDeviceUidsAssociatedToAnObliviousChannel(within: obvContext) + } catch { + return cancel(withReason: .channelDelegate(error: error)) + } + + // Find devices with no channel and no channel creation protocol + + let devicesWithNoChannel = existingDevices + .subtracting(existingChannels) + + guard !devicesWithNoChannel.isEmpty else { return } + + // At this point, we know there is at least one (owned or contact) device with no channel. + + // Find all channel creation protocols + + let channelCreationProtocols: Set + do { + let channelCreationProtocolsWithOwnedDevice = try protocolDelegate.getAllObliviousChannelIdentifiersHavingARunningChannelCreationWithOwnedDeviceProtocolInstances(within: obvContext) + let channelCreationProtocolsWithContactDevice = try protocolDelegate.getAllObliviousChannelIdentifiersHavingARunningChannelCreationWithContactDeviceProtocolInstances(within: obvContext) + channelCreationProtocols = channelCreationProtocolsWithOwnedDevice.union(channelCreationProtocolsWithContactDevice) + } catch { + return cancel(withReason: .protocolDelegate(error: error)) + } + + // For each device with no channel, we check whether there is a channel creation protocol already handling this situation. + // We delete all devices with no channel and no ongoing channel creation protocol, and keep track of the corresponding identities: + // we will start a device discovery for them. + + var deviceDiscoveriesToStart = Set() + + for deviceWithNoChannel in devicesWithNoChannel { + + let ownedCryptoIdentity: ObvCryptoIdentity + do { + ownedCryptoIdentity = try identityDelegate.getOwnedIdentityOfCurrentDeviceUid(deviceWithNoChannel.currentDeviceUid, within: obvContext) + } catch { + assertionFailure() + continue + } + + let channelCreationToFind = ObliviousChannelIdentifierAlt(ownedCryptoIdentity: ownedCryptoIdentity, + remoteCryptoIdentity: deviceWithNoChannel.remoteCryptoIdentity, + remoteDeviceUid: deviceWithNoChannel.remoteDeviceUid) + + if channelCreationProtocols.contains(channelCreationToFind) { continue } + + deviceDiscoveriesToStart.insert(channelCreationToFind) + + // If we reach this point, we found a device with no channel and with no ongoing channel creation protocol. + // We delete this device and add the corresponding remote identity to the set of identities for which we want to perform a device discovery. + + do { + if deviceWithNoChannel.remoteCryptoIdentity == ownedCryptoIdentity { + try identityDelegate.removeOtherDeviceForOwnedIdentity(ownedCryptoIdentity, + otherDeviceUid: deviceWithNoChannel.remoteDeviceUid, + within: obvContext) + } else { + try identityDelegate.removeDeviceForContactIdentity(deviceWithNoChannel.remoteCryptoIdentity, + withUid: deviceWithNoChannel.remoteDeviceUid, + ofOwnedIdentity: ownedCryptoIdentity, + within: obvContext) + } + } catch { + assertionFailure() + continue + } + + } + + // Finally, we start the required channel creations + + for deviceDiscoveryToStart in deviceDiscoveriesToStart { + + do { + + let message: ObvChannelProtocolMessageToSend + if deviceDiscoveryToStart.ownedCryptoIdentity == deviceDiscoveryToStart.remoteCryptoIdentity { + message = try protocolDelegate.getInitiateOwnedDeviceDiscoveryMessage(ownedCryptoIdentity: deviceDiscoveryToStart.ownedCryptoIdentity) + } else { + message = try protocolDelegate.getInitialMessageForContactDeviceDiscoveryProtocol(ownedIdentity: deviceDiscoveryToStart.ownedCryptoIdentity, contactIdentity: deviceDiscoveryToStart.remoteCryptoIdentity) + } + + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + + } catch { + assertionFailure(error.localizedDescription) + // continue + } + + } + + } + + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case identityDelegateError(error: Error) + case channelDelegate(error: Error) + case protocolDelegate(error: Error) + case contextIsNil + + public var logType: OSLogType { + switch self { + case .channelDelegate, + .protocolDelegate, + .identityDelegateError, + .contextIsNil: + return .fault + } + } + + public var errorDescription: String? { + switch self { + case .contextIsNil: + return "Context is nil" + case .identityDelegateError(error: let error): + return "Identity delegate error: \(error.localizedDescription)" + case .channelDelegate(error: let error): + return "Channel delegate error: \(error.localizedDescription)" + case .protocolDelegate(error: let error): + return "Protocol delegate error: \(error.localizedDescription)" + } + } + + + } + +} + diff --git a/Engine/ObvEngine/ObvEngine/Coordinator/Operations/SendTargetedPingMessageForKeycloakGroupV2ProtocolWhereContactIsPendingMemberOperation.swift b/Engine/ObvEngine/ObvEngine/Coordinator/Operations/SendTargetedPingMessageForKeycloakGroupV2ProtocolWhereContactIsPendingMemberOperation.swift new file mode 100644 index 00000000..ca3ec8c7 --- /dev/null +++ b/Engine/ObvEngine/ObvEngine/Coordinator/Operations/SendTargetedPingMessageForKeycloakGroupV2ProtocolWhereContactIsPendingMemberOperation.swift @@ -0,0 +1,75 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import CoreData +import OlvidUtils +import ObvMetaManager +import ObvCrypto +import ObvTypes + + +final class SendTargetedPingMessageForKeycloakGroupV2ProtocolWhereContactIsPendingMemberOperation: ContextualOperationWithSpecificReasonForCancel { + + private let identityDelegate: ObvIdentityDelegate + private let channelDelegate: ObvChannelDelegate + private let protocolDelegate: ObvProtocolDelegate + private let prng: PRNGService + private let contactIdentifiers: Set + private let log: OSLog + + init(identityDelegate: ObvIdentityDelegate, channelDelegate: ObvChannelDelegate, protocolDelegate: ObvProtocolDelegate, prng: PRNGService, contactIdentifiers: Set, logSubsystem: String) { + self.identityDelegate = identityDelegate + self.channelDelegate = channelDelegate + self.protocolDelegate = protocolDelegate + self.prng = prng + self.contactIdentifiers = contactIdentifiers + self.log = OSLog(subsystem: logSubsystem, category: "SendTargetedPingMessageForKeycloakGroupV2ProtocolWhereContactIsMemberOperation") + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + for contactIdentifier in contactIdentifiers { + + let ownedIdentity = contactIdentifier.ownedCryptoId.cryptoIdentity + let contactIdentity = contactIdentifier.contactCryptoId.cryptoIdentity + + do { + let groupIdentifiers = try identityDelegate.getIdentifiersOfAllKeycloakGroupsWhereContactIsPending(ownedCryptoId: ownedIdentity, contactCryptoId: contactIdentity, within: obvContext) + + groupIdentifiers.forEach { groupIdentifier in + do { + let msg = try protocolDelegate.getInitiateTargetedPingMessageForKeycloakGroupV2Protocol(ownedIdentity: ownedIdentity, groupIdentifier: groupIdentifier, pendingMemberIdentity: contactIdentity, flowId: obvContext.flowId) + _ = try channelDelegate.postChannelMessage(msg, randomizedWith: prng, within: obvContext) + } catch { + os_log("Could not ping contact in a keycloak groups where she is pending (1): %{public}@", log: self.log, type: .fault, error.localizedDescription) + } + } + + } catch { + assertionFailure(error.localizedDescription) + os_log("Could not ping contact in a keycloak groups where she is pending (2): %{public}@", log: self.log, type: .fault, error.localizedDescription) + } + + } + + } + +} diff --git a/Engine/ObvEngine/ObvEngine/NotificationSender.swift b/Engine/ObvEngine/ObvEngine/NotificationSender.swift index dd178709..1f4d65cb 100644 --- a/Engine/ObvEngine/ObvEngine/NotificationSender.swift +++ b/Engine/ObvEngine/ObvEngine/NotificationSender.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -238,15 +238,39 @@ extension ObvEngine { } do { - let token = ObvNetworkFetchNotificationNew.observeServerRequiresThisDeviceToRegisterToPushNotifications(within: notificationDelegate) { [weak self] (ownedIdentity, flowId) in - guard let appNotificationCenter = self?.appNotificationCenter else { return } - let ownedCryptoId = ObvCryptoId(cryptoIdentity: ownedIdentity) - let notification = ObvEngineNotificationNew.serverRequiresThisDeviceToRegisterToPushNotifications(ownedIdentity: ownedCryptoId) - notification.postOnBackgroundQueue(within: appNotificationCenter) + let token = ObvNetworkFetchNotificationNew.observeServerRequiresThisDeviceToRegisterToPushNotifications(within: notificationDelegate) { [weak self] (_, flowId) in + guard let appNotificationCenter = self?.appNotificationCenter else { assertionFailure(); return } + ObvEngineNotificationNew.serverRequiresAllActiveOwnedIdentitiesToRegisterToPushNotifications + .postOnBackgroundQueue(within: appNotificationCenter) } notificationCenterTokens.append(token) } + + // ObvProtocolNotification + notificationCenterTokens.append(contentsOf: [ + ObvProtocolNotification.observeMutualScanContactAdded(within: notificationDelegate) { [weak self] ownedIdentity, contactIdentity, signature in + self?.processMutualScanContactAdded(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, signature: signature) + }, + ObvProtocolNotification.observeKeycloakSynchronizationRequired(within: notificationDelegate) { [weak self] ownedIdentity in + self?.processKeycloakSynchronizationRequired(ownedIdentity: ownedIdentity) + }, + ObvProtocolNotification.observeGroupV2UpdateDidFail(within: notificationDelegate) { [weak self] ownedIdentity, appGroupIdentifier, flowId in + self?.processGroupV2UpdateDidFail(ownedIdentity: ownedIdentity, appGroupIdentifier: appGroupIdentifier, flowId: flowId) + }, + ObvProtocolNotification.observeContactIntroductionInvitationSent(within: notificationDelegate) { [weak self] ownedIdentity, contactIdentityA, contactIdentityB in + self?.processContactIntroductionInvitationSent(ownedIdentity: ownedIdentity, contactIdentityA: contactIdentityA, contactIdentityB: contactIdentityB) + }, + ObvProtocolNotification.observeTheCurrentDeviceWasNotPartOfTheLastOwnedDeviceDiscoveryResults(within: notificationDelegate) { [weak self] ownedCryptoIdentity in + self?.processTheCurrentDeviceWasNotPartOfTheLastOwnedDeviceDiscoveryResults(ownedCryptoIdentity: ownedCryptoIdentity) + }, + ObvProtocolNotification.observeAnOwnedIdentityTransferProtocolFailed(within: notificationDelegate) { [weak self] ownedCryptoIdentity, protocolInstanceUID, error in + self?.processAnOwnedIdentityTransferProtocolFailed(ownedCryptoIdentity: ownedCryptoIdentity, protocolInstanceUID: protocolInstanceUID, error: error) + }, + ]) + + // ObvIdentityNotificationNew notifications + notificationCenterTokens.append(contentsOf: [ ObvIdentityNotificationNew.observeTrustedPhotoOfContactIdentityHasBeenUpdated(within: notificationDelegate) { [weak self] (ownedIdentity, contactIdentity) in self?.processTrustedPhotoOfContactIdentityHasBeenUpdated(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity) @@ -269,9 +293,6 @@ extension ObvEngine { ObvIdentityNotificationNew.observeLatestPhotoOfContactGroupOwnedHasBeenUpdated(within: notificationDelegate) { [weak self] (groupUid, ownedIdentity) in self?.processLatestPhotoOfContactGroupOwnedHasBeenUpdated(groupUid: groupUid, ownedIdentity: ownedIdentity) }, - ObvProtocolNotification.observeMutualScanContactAdded(within: notificationDelegate) { [weak self] ownedIdentity, contactIdentity, signature in - self?.processMutualScanContactAdded(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, signature: signature) - }, ObvIdentityNotificationNew.observeOwnedIdentityKeycloakServerChanged(within: notificationDelegate) { [weak self] ownedCryptoIdentity, flowId in self?.processOwnedIdentityKeycloakServerChanged(ownedCryptoIdentity: ownedCryptoIdentity, flowId: flowId) }, @@ -299,12 +320,24 @@ extension ObvEngine { ObvIdentityNotificationNew.observeGroupV2WasDeleted(within: notificationDelegate) { [weak self] (ownedIdentity, appGroupIdentifier) in self?.processGroupV2WasDeleted(ownedIdentity: ownedIdentity, appGroupIdentifier: appGroupIdentifier) }, - ObvProtocolNotification.observeGroupV2UpdateDidFail(within: notificationDelegate) { [weak self] ownedIdentity, appGroupIdentifier, flowId in - self?.processGroupV2UpdateDidFail(ownedIdentity: ownedIdentity, appGroupIdentifier: appGroupIdentifier, flowId: flowId) - }, - ObvIdentityNotificationNew.observeOwnedIdentityWasDeleted(within: notificationDelegate) { [weak self] in + ObvIdentityNotificationNew.observeOwnedIdentityWasDeleted(within: notificationDelegate) { [weak self] _ in self?.processOwnedIdentityWasDeleted() }, + ObvIdentityNotificationNew.observeNewRemoteOwnedDevice(within: notificationDelegate) { [weak self] ownedCryptoId, remoteDeviceUid, _ in + self?.processNewRemoteOwnedDevice(ownedCryptoId: ownedCryptoId, remoteDeviceUid: remoteDeviceUid) + }, + ObvIdentityNotificationNew.observeAnOwnedDeviceWasUpdated(within: notificationDelegate) { [weak self] ownedCryptoId in + self?.processAnOwnedDeviceWasUpdated(ownedCryptoId: ownedCryptoId) + }, + ObvIdentityNotificationNew.observeAnOwnedDeviceWasDeleted(within: notificationDelegate) { [weak self] ownedCryptoId in + self?.processAnOwnedDeviceWasDeleted(ownedCryptoId: ownedCryptoId) + }, + ObvIdentityNotificationNew.observeNewContactDevice(within: notificationDelegate) { [weak self] ownedIdentity, contactIdentity, _, _, _ in + self?.processNewContactDevice(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity) + }, + ObvIdentityNotificationNew.observePushTopicOfKeycloakGroupWasUpdated(within: notificationDelegate) { [weak self] ownedIdentity in + self?.processPushTopicOfKeycloakGroupWasUpdated(ownedIdentity: ownedIdentity) + }, ]) do { @@ -322,43 +355,9 @@ extension ObvEngine { // Notification received from the network fetch manager notificationCenterTokens.append(contentsOf: [ - ObvNetworkFetchNotificationNew.observeAppStoreReceiptVerificationSucceededButSubscriptionIsExpired(within: notificationDelegate) { [weak self] (ownedIdentity, transactionIdentifier, flowId) in - guard let _self = self else { return } - ObvEngineNotificationNew.appStoreReceiptVerificationSucceededButSubscriptionIsExpired(ownedIdentity: ObvCryptoId(cryptoIdentity: ownedIdentity), transactionIdentifier: transactionIdentifier) - .postOnBackgroundQueue(within: _self.appNotificationCenter) - }, - ObvNetworkFetchNotificationNew.observeAppStoreReceiptVerificationFailed(within: notificationDelegate) { [weak self] (ownedIdentity, transactionIdentifier, flowId) in - guard let _self = self else { return } - ObvEngineNotificationNew.appStoreReceiptVerificationFailed(ownedIdentity: ObvCryptoId(cryptoIdentity: ownedIdentity), transactionIdentifier: transactionIdentifier) - .postOnBackgroundQueue(within: _self.appNotificationCenter) - }, - ObvNetworkFetchNotificationNew.observeFreeTrialIsStillAvailableForOwnedIdentity(within: notificationDelegate) { [weak self] (ownedIdentity, flowId) in - self?.processFreeTrialIsStillAvailableForOwnedIdentity(ownedIdentity: ownedIdentity, flowId: flowId) - }, - ObvNetworkFetchNotificationNew.observeNoMoreFreeTrialAPIKeyAvailableForOwnedIdentity(within: notificationDelegate) { [weak self] (ownedIdentity, flowId) in - self?.processNoMoreFreeTrialAPIKeyAvailableForOwnedIdentity(ownedIdentity: ownedIdentity, flowId: flowId) - }, - ObvNetworkFetchNotificationNew.observeNewAPIKeyElementsForAPIKey(within: notificationDelegate) { [weak self] (serverURL, apiKey, apiKeyStatus, apiPermissions, apiKeyExpirationDate) in - self?.processNewAPIKeyElementsForAPIKeyNotification(serverURL: serverURL, apiKey: apiKey, apiKeyStatus: apiKeyStatus, apiPermissions: apiPermissions, apiKeyExpirationDate: apiKeyExpirationDate) - }, ObvNetworkFetchNotificationNew.observeNewAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(within: notificationDelegate) { [weak self] (ownedIdentity, apiKeyStatus, apiPermissions, apiKeyExpirationDate) in self?.processNewAPIKeyElementsForCurrentAPIKeyOfOwnedIdentityNotification(ownedIdentity: ownedIdentity, apiKeyStatus: apiKeyStatus, apiPermissions: apiPermissions, apiKeyExpirationDate: apiKeyExpirationDate) }, - ObvNetworkFetchNotificationNew.observeTurnCredentialsReceptionPermissionDenied(within: notificationDelegate) { [weak self] (ownedIdentity, callUuid, flowId) in - self?.processTurnCredentialsReceptionPermissionDeniedNotification(ownedIdentity: ownedIdentity, callUuid: callUuid, flowId: flowId) - }, - ObvNetworkFetchNotificationNew.observeTurnCredentialServerDoesNotSupportCalls(within: notificationDelegate) { [weak self] (ownedIdentity, callUuid, flowId) in - self?.processTurnCredentialServerDoesNotSupportCalls(ownedIdentity: ownedIdentity, callUuid: callUuid, flowId: flowId) - }, - ObvNetworkFetchNotificationNew.observeTurnCredentialsReceptionFailure(within: notificationDelegate) { [weak self] (ownedIdentity, callUuid, flowId) in - self?.processTurnCredentialsReceptionFailureNotification(ownedIdentity: ownedIdentity, callUuid: callUuid, flowId: flowId) - }, - ObvNetworkFetchNotificationNew.observeTurnCredentialsReceived(within: notificationDelegate) { [weak self] (ownedIdentity, callUuid, turnCredentialsWithTurnServers, flowId) in - self?.processTurnCredentialsReceivedNotification(ownedIdentity: ownedIdentity, callUuid: callUuid, turnCredentialsWithTurnServers: turnCredentialsWithTurnServers, flowId: flowId) - }, - ObvNetworkFetchNotificationNew.observeApiKeyStatusQueryFailed(within: notificationDelegate) { [weak self] (ownedIdentity, apiKey) in - self?.processApiKeyStatusQueryFailed(ownedIdentity: ownedIdentity, apiKey: apiKey) - }, ObvNetworkFetchNotificationNew.observeDownloadingMessageExtendedPayloadWasPerformed(within: notificationDelegate) { [weak self] (messageId, flowId) in self?.processDownloadingMessageExtendedPayloadWasPerformed(messageId: messageId, flowId: flowId) }, @@ -401,17 +400,15 @@ extension ObvEngine { ObvNetworkFetchNotificationNew.observeKeycloakTargetedPushNotificationReceivedViaWebsocket(within: notificationDelegate) { [weak self] ownedIdentity in self?.processKeycloakTargetedPushNotificationReceivedViaWebsocket(ownedIdentity: ownedIdentity) }, + ObvNetworkFetchNotificationNew.observeOwnedDevicesMessageReceivedViaWebsocket(within: notificationDelegate) { [weak self] ownedCryptoIdentity in + guard let appNotificationCenter = self?.appNotificationCenter else { return } + ObvEngineNotificationNew.serverRequiresAllActiveOwnedIdentitiesToRegisterToPushNotifications + .postOnBackgroundQueue(within: appNotificationCenter) + }, ]) } - private func processApiKeyStatusQueryFailed(ownedIdentity: ObvCryptoIdentity, apiKey: UUID) { - // We do not send the owned identity. In certain cases, we use a dummy owned identity to query the server. We should not send this dummy identity to the application. - ObvEngineNotificationNew.apiKeyStatusQueryFailed(serverURL: ownedIdentity.serverURL, apiKey: apiKey) - .postOnBackgroundQueue(within: appNotificationCenter) - } - - private func processMutualScanContactAdded(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, signature: Data) { guard let createContextDelegate = createContextDelegate else { @@ -452,8 +449,28 @@ extension ObvEngine { notificationCenterTokens.append(token) } + + /// If the protocol performing an owned device discovery reports that the current device is not part of the results returned by the server, we force a registration to push notifications. + /// If the current device was not part of the discovery because another owned device deactivated it, we will be notified by the server as a result of this re-register to push notifications. + /// In that case, the registration method will return a ``ObvNetworkFetchError.RegisterPushNotificationError.anotherDeviceIsAlreadyRegistered`` error, and this device will be deactivated. + private func processTheCurrentDeviceWasNotPartOfTheLastOwnedDeviceDiscoveryResults(ownedCryptoIdentity: ObvCryptoIdentity) { + let ownedCryptoId = ObvCryptoId(cryptoIdentity: ownedCryptoIdentity) + ObvEngineNotificationNew.engineRequiresOwnedIdentityToRegisterToPushNotifications(ownedCryptoId: ownedCryptoId) + .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) + } + + + + /// This is called when the protocol manager notifies that an ongoing owned identity transfer protocol did fail. In that case, it has been terminated. + /// Note that, on a target device, the owned identity indicated here is an ephemeral identity. + private func processAnOwnedIdentityTransferProtocolFailed(ownedCryptoIdentity: ObvCryptoIdentity, protocolInstanceUID: UID, error: Error) { + let ownedCryptoId = ObvCryptoId(cryptoIdentity: ownedCryptoIdentity) + ObvEngineNotificationNew.anOwnedIdentityTransferProtocolFailed(ownedCryptoId: ownedCryptoId, protocolInstanceUID: protocolInstanceUID, error: error) + .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) + } - private func processDownloadingMessageExtendedPayloadWasPerformed(messageId: MessageIdentifier, flowId: FlowIdentifier) { + + private func processDownloadingMessageExtendedPayloadWasPerformed(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { os_log("We received a DownloadingMessageExtendedPayloadWasPerformed notification for the message %{public}@.", log: log, type: .debug, messageId.debugDescription) @@ -467,9 +484,9 @@ extension ObvEngine { os_log("The network fetch delegate is not set", log: log, type: .fault) return } - - guard let identityDelegate = identityDelegate else { - os_log("The network fetch delegate is not set", log: log, type: .fault) + + guard let networkReceivedMessage = networkFetchDelegate.getDecryptedMessage(messageId: messageId, flowId: flowId) else { + os_log("Could not get an ObvNetworkReceivedMessageDecrypted for message %@", log: self.log, type: .fault, messageId.debugDescription) return } @@ -477,23 +494,40 @@ extension ObvEngine { guard let _self = self else { return } - let obvMessage: ObvMessage - do { - try obvMessage = ObvMessage(messageId: messageId, networkFetchDelegate: networkFetchDelegate, identityDelegate: identityDelegate, within: obvContext) - } catch { - os_log("Could not construct an ObvMessage from the network message and its attachments", log: _self.log, type: .fault, messageId.debugDescription) - return - } + if networkReceivedMessage.fromIdentity == networkReceivedMessage.messageId.ownedCryptoIdentity { - ObvEngineNotificationNew.messageExtendedPayloadAvailable(obvMessage: obvMessage) - .postOnBackgroundQueue(_self.queueForPostingNotificationsToTheApp, within: _self.appNotificationCenter) + let obvOwnedMessage: ObvOwnedMessage + do { + try obvOwnedMessage = ObvOwnedMessage(networkReceivedMessage: networkReceivedMessage, networkFetchDelegate: networkFetchDelegate, within: obvContext) + } catch { + os_log("Could not construct an ObvOwnedMessage from the network message and its attachments (1)", log: _self.log, type: .fault, messageId.debugDescription) + return + } + + ObvEngineNotificationNew.ownedMessageExtendedPayloadAvailable(obvOwnedMessage: obvOwnedMessage) + .postOnBackgroundQueue(_self.queueForPostingNotificationsToTheApp, within: _self.appNotificationCenter) + + } else { + + let obvMessage: ObvMessage + do { + try obvMessage = ObvMessage(networkReceivedMessage: networkReceivedMessage, networkFetchDelegate: networkFetchDelegate, within: obvContext) + } catch { + os_log("Could not construct an ObvMessage from the network message and its attachments (1)", log: _self.log, type: .fault, messageId.debugDescription) + return + } + + ObvEngineNotificationNew.contactMessageExtendedPayloadAvailable(obvMessage: obvMessage) + .postOnBackgroundQueue(_self.queueForPostingNotificationsToTheApp, within: _self.appNotificationCenter) + + } } } - private func processInboxAttachmentDownloadCancelledByServer(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + private func processInboxAttachmentDownloadCancelledByServer(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { os_log("We received an AttachmentDownloadCancelledByServer notification for the attachment %{public}@.", log: log, type: .debug, attachmentId.debugDescription) @@ -507,28 +541,51 @@ extension ObvEngine { return } - guard let identityDelegate = identityDelegate else { - os_log("The identity delegate is not set", log: log, type: .fault) - return - } - createContextDelegate.performBackgroundTask(flowId: flowId) { [weak self] (obvContext) in guard let _self = self else { return } - let obvAttachment: ObvAttachment - do { - try obvAttachment = ObvAttachment(attachmentId: attachmentId, networkFetchDelegate: networkFetchDelegate, identityDelegate: identityDelegate, within: obvContext) - } catch { - os_log("Could not construct an ObvAttachment of attachment %{public}@", log: _self.log, type: .fault, attachmentId.debugDescription) + guard let networkReceivedAttachment = networkFetchDelegate.getAttachment(withId: attachmentId, within: obvContext) else { + os_log("Could not get a network received attachment of message %{public}@ (4)", log: _self.log, type: .fault, attachmentId.messageId.debugDescription) return } - - // We notify the app - - ObvEngineNotificationNew.attachmentDownloadCancelledByServer(obvAttachment: obvAttachment) - .postOnBackgroundQueue(within: _self.appNotificationCenter) - + + if networkReceivedAttachment.fromCryptoIdentity == networkReceivedAttachment.attachmentId.messageId.ownedCryptoIdentity { + + let obvOwnedAttachment: ObvOwnedAttachment + do { + obvOwnedAttachment = try ObvOwnedAttachment(attachmentId: attachmentId, networkFetchDelegate: networkFetchDelegate, within: obvContext) + } catch { + os_log("Could not construct an ObvOwnedAttachment of message %{public}@ (1)", log: _self.log, type: .fault, attachmentId.messageId.debugDescription) + return + } + + // We notify the app + + ObvEngineNotificationNew.ownedAttachmentDownloadCancelledByServer(obvOwnedAttachment: obvOwnedAttachment) + .postOnBackgroundQueue(within: _self.appNotificationCenter) + + } else { + + let contactIdentifier = ObvContactIdentifier(contactCryptoIdentity: networkReceivedAttachment.fromCryptoIdentity, + ownedCryptoIdentity: networkReceivedAttachment.attachmentId.messageId.ownedCryptoIdentity) + + let obvAttachment: ObvAttachment + do { + try obvAttachment = ObvAttachment(attachmentId: attachmentId, fromContactIdentity: contactIdentifier, networkFetchDelegate: networkFetchDelegate, within: obvContext) + } catch { + os_log("Could not construct an ObvAttachment of message %{public}@ (4)", log: _self.log, type: .fault, attachmentId.messageId.debugDescription) + return + } + + // We notify the app + + ObvEngineNotificationNew.attachmentDownloadCancelledByServer(obvAttachment: obvAttachment) + .postOnBackgroundQueue(within: _self.appNotificationCenter) + + + } + } } @@ -537,11 +594,11 @@ extension ObvEngine { private func processDeletedConfirmedObliviousChannelNotifications(currentDeviceUid: UID, remoteCryptoIdentity: ObvCryptoIdentity, remoteDeviceUid: UID) { os_log("We received a DeletedConfirmedObliviousChannel notification", log: log, type: .info) - guard let createContextDelegate = createContextDelegate else { + guard let createContextDelegate else { os_log("The create context delegate is not set", log: log, type: .fault) return } - guard let identityDelegate = identityDelegate else { + guard let identityDelegate else { os_log("The identity delegate is not set", log: log, type: .fault) return } @@ -557,41 +614,34 @@ extension ObvEngine { // Determine the owned identity related to the current device uid guard let ownedCryptoIdentity = try? identityDelegate.getOwnedIdentityOfCurrentDeviceUid(currentDeviceUid, within: obvContext) else { - os_log("The device uid does not correspond to any owned identity", log: _self.log, type: .fault) + os_log("The device uid does not correspond to any owned identity. This is ok during a profile deletion.", log: _self.log, type: .error) return } - + // The remote device might either be : // - an owned remote device // - a contact device // For each case, we have an appropriate notification to send - if let remoteOwnedDevice = ObvRemoteOwnedDevice(remoteOwnedDeviceUid: remoteDeviceUid, ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate, within: obvContext) { + if ownedCryptoIdentity == remoteCryptoIdentity { - os_log("The deleted channel was one with had with a remote owned device %@", log: _self.log, type: .info, remoteOwnedDevice.description) - - } else if let contactDevice = ObvContactDevice(contactDeviceUid: remoteDeviceUid, contactCryptoIdentity: remoteCryptoIdentity, ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate, within: obvContext) { + os_log("The deleted channel was one with had with a remote owned device %@", log: _self.log, type: .info, remoteDeviceUid.description) - os_log("The deleted channel was one we had with a contact device", log: _self.log, type: .info) - - ObvEngineNotificationNew.DeletedObliviousChannelWithContactDevice(obvContactDevice: contactDevice) + ObvEngineNotificationNew.deletedObliviousChannelWithRemoteOwnedDevice .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) } else { - os_log("We could not determine any appropriate remote device. It might have been deleted already.", log: _self.log, type: .info) + os_log("The deleted channel was one we had with a contact device %@", log: _self.log, type: .info, remoteDeviceUid.description) + + let contactIdentifier = ObvContactIdentifier(contactCryptoIdentity: remoteCryptoIdentity, ownedCryptoIdentity: ownedCryptoIdentity) + + ObvEngineNotificationNew.deletedObliviousChannelWithContactDevice(obvContactIdentifier: contactIdentifier) + .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) - if let obvContactIdentity = ObvContactIdentity(contactCryptoIdentity: remoteCryptoIdentity, ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate, within: obvContext) { - - let contactDevice = ObvContactDevice(identifier: remoteDeviceUid.raw, contactIdentity: obvContactIdentity) - - os_log("The deleted channel was one we had with a contact device", log: _self.log, type: .info) - - ObvEngineNotificationNew.DeletedObliviousChannelWithContactDevice(obvContactDevice: contactDevice) - .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) - - } } + + } @@ -704,24 +754,12 @@ extension ObvEngine { private func processContactWasRevokedAsCompromised(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { - guard let identityDelegate = self.identityDelegate else { assertionFailure(); return } - guard let createContextDelegate = self.createContextDelegate else { assertionFailure(); return } let appNotificationCenter = self.appNotificationCenter - createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in - - guard let obvContactIdentity = ObvContactIdentity(contactCryptoIdentity: contactIdentity, - ownedCryptoIdentity: ownedIdentity, - identityDelegate: identityDelegate, within: obvContext) else { - os_log("Could not create an ObvContactIdentity structure", log: self.log, type: .fault) - assertionFailure() - return - } - - ObvEngineNotificationNew.contactWasRevokedAsCompromisedWithinEngine(obvContactIdentity: obvContactIdentity) - .postOnBackgroundQueue(within: appNotificationCenter) - - } + let obvContactIdentifier = ObvContactIdentifier(contactCryptoIdentity: contactIdentity, ownedCryptoIdentity: ownedIdentity) + + ObvEngineNotificationNew.contactWasRevokedAsCompromisedWithinEngine(obvContactIdentifier: obvContactIdentifier) + .postOnBackgroundQueue(within: appNotificationCenter) } @@ -770,6 +808,15 @@ extension ObvEngine { ObvEngineNotificationNew.groupV2UpdateDidFail(ownedIdentity: ObvCryptoId(cryptoIdentity: ownedIdentity), appGroupIdentifier: appGroupIdentifier) .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) } + + + private func processContactIntroductionInvitationSent(ownedIdentity: ObvCryptoIdentity, contactIdentityA: ObvCryptoIdentity, contactIdentityB: ObvCryptoIdentity) { + ObvEngineNotificationNew.contactIntroductionInvitationSent( + ownedIdentity: ObvCryptoId(cryptoIdentity: ownedIdentity), + contactIdentityA: ObvCryptoId(cryptoIdentity: contactIdentityA), + contactIdentityB: ObvCryptoId(cryptoIdentity: contactIdentityB)) + .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) + } private func processOwnedIdentityWasDeleted() { @@ -778,6 +825,47 @@ extension ObvEngine { } + /// When a new owned remote device is inserted in database, we notify the app, to make it possible to immediately see this device in the list of owned devices. + /// See also ``EngineCoordinator.processNewRemoteOwnedDevice(ownedCryptoId:remoteDeviceUid:)`` where we launch a channel creation. + private func processNewRemoteOwnedDevice(ownedCryptoId: ObvCryptoIdentity, remoteDeviceUid: UID) { + ObvEngineNotificationNew.newRemoteOwnedDevice + .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) + } + + + private func processAnOwnedDeviceWasUpdated(ownedCryptoId: ObvCryptoIdentity) { + ObvEngineNotificationNew.anOwnedDeviceWasUpdated(ownedCryptoId: ObvCryptoId(cryptoIdentity: ownedCryptoId)) + .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) + } + + + private func processAnOwnedDeviceWasDeleted(ownedCryptoId: ObvCryptoIdentity) { + ObvEngineNotificationNew.anOwnedDeviceWasDeleted(ownedCryptoId: ObvCryptoId(cryptoIdentity: ownedCryptoId)) + .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) + } + + + private func processNewContactDevice(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) { + let obvContactIdentifier = ObvContactIdentifier(contactCryptoIdentity: contactIdentity, ownedCryptoIdentity: ownedIdentity) + ObvEngineNotificationNew.newContactDevice(obvContactIdentifier: obvContactIdentifier) + .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) + } + + + /// When a the push topic of a keycloak group is created/updated, we want to re-register to push notification to make sure we inform the server we are interested by this new push topic. + private func processPushTopicOfKeycloakGroupWasUpdated(ownedIdentity: ObvCryptoIdentity) { + let ownedCryptoId = ObvCryptoId(cryptoIdentity: ownedIdentity) + ObvEngineNotificationNew.engineRequiresOwnedIdentityToRegisterToPushNotifications(ownedCryptoId: ownedCryptoId) + .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) + } + + + private func processKeycloakSynchronizationRequired(ownedIdentity: ObvCryptoIdentity) { + ObvEngineNotificationNew.keycloakSynchronizationRequired(ownCryptoId: ObvCryptoId(cryptoIdentity: ownedIdentity)) + .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) + } + + private func processContactObvCapabilitiesWereUpdated(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { guard let identityDelegate = self.identityDelegate else { assertionFailure(); return } @@ -856,77 +944,34 @@ extension ObvEngine { } - private func processOutboxMessagesAndAllTheirAttachmentsWereAcknowledgedNotifications(messageIdsAndTimestampsFromServer: [(messageId: MessageIdentifier, timestampFromServer: Date)], flowId: FlowIdentifier) { + private func processOutboxMessagesAndAllTheirAttachmentsWereAcknowledgedNotifications(messageIdsAndTimestampsFromServer: [(messageId: ObvMessageIdentifier, timestampFromServer: Date)], flowId: FlowIdentifier) { os_log("We received an OutboxMessagesAndAllTheirAttachmentsWereAcknowledged notification within flow %{public}@", log: log, type: .debug, flowId.debugDescription) let info = messageIdsAndTimestampsFromServer.map() { ($0.messageId.uid.raw, ObvCryptoId(cryptoIdentity: $0.messageId.ownedCryptoIdentity), $0.timestampFromServer) } ObvEngineNotificationNew.outboxMessagesAndAllTheirAttachmentsWereAcknowledged(messageIdsAndTimestampsFromServer: info) .postOnBackgroundQueue(within: appNotificationCenter) } - private func processOutboxMessageCouldNotBeSentToServer(messageId: MessageIdentifier, flowId: FlowIdentifier) { + private func processOutboxMessageCouldNotBeSentToServer(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { let messageIdentifierFromEngine = messageId.uid.raw let ownedIdentity = ObvCryptoId(cryptoIdentity: messageId.ownedCryptoIdentity) ObvEngineNotificationNew.outboxMessageCouldNotBeSentToServer(messageIdentifierFromEngine: messageIdentifierFromEngine, ownedIdentity: ownedIdentity) .postOnBackgroundQueue(within: appNotificationCenter) } - private func processTurnCredentialsReceptionPermissionDeniedNotification(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, flowId: FlowIdentifier) { - ObvEngineNotificationNew.callerTurnCredentialsReceptionPermissionDenied(ownedIdentity: ObvCryptoId(cryptoIdentity: ownedIdentity), callUuid: callUuid) - .postOnBackgroundQueue(within: appNotificationCenter) - } - - private func processTurnCredentialServerDoesNotSupportCalls(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, flowId: FlowIdentifier) { - ObvEngineNotificationNew.callerTurnCredentialsServerDoesNotSupportCalls(ownedIdentity: ObvCryptoId(cryptoIdentity: ownedIdentity), callUuid: callUuid) - .postOnBackgroundQueue(within: appNotificationCenter) - } - - private func processTurnCredentialsReceptionFailureNotification(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, flowId: FlowIdentifier) { - ObvEngineNotificationNew.callerTurnCredentialsReceptionFailure(ownedIdentity: ObvCryptoId(cryptoIdentity: ownedIdentity), callUuid: callUuid) - .postOnBackgroundQueue(within: appNotificationCenter) - } - - private func processTurnCredentialsReceivedNotification(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, turnCredentialsWithTurnServers credentials: TurnCredentialsWithTurnServers, flowId: FlowIdentifier) { - let obvTurnCredentials = ObvTurnCredentials(callerUsername: credentials.expiringUsername1, - callerPassword: credentials.password1, - recipientUsername: credentials.expiringUsername2, - recipientPassword: credentials.password2, - turnServersURL: credentials.turnServersURL) - let notification = ObvEngineNotificationNew.callerTurnCredentialsReceived(ownedIdentity: ObvCryptoId(cryptoIdentity: ownedIdentity), - callUuid: callUuid, - turnCredentials: obvTurnCredentials) - notification.postOnBackgroundQueue(within: appNotificationCenter) - } - - private func processFreeTrialIsStillAvailableForOwnedIdentity(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { - let identity = ObvCryptoId(cryptoIdentity: ownedIdentity) - ObvEngineNotificationNew.freeTrialIsStillAvailableForOwnedIdentity(ownedIdentity: identity) - .postOnBackgroundQueue(within: appNotificationCenter) - } - - private func processNoMoreFreeTrialAPIKeyAvailableForOwnedIdentity(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { - let identity = ObvCryptoId(cryptoIdentity: ownedIdentity) - ObvEngineNotificationNew.noMoreFreeTrialAPIKeyAvailableForOwnedIdentity(ownedIdentity: identity) - .postOnBackgroundQueue(within: appNotificationCenter) - } - - private func processNewAPIKeyElementsForAPIKeyNotification(serverURL: URL, apiKey: UUID, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?) { - ObvEngineNotificationNew.newAPIKeyElementsForAPIKey(serverURL: serverURL, apiKey: apiKey, apiKeyStatus: apiKeyStatus, apiPermissions: apiPermissions, apiKeyExpirationDate: EngineOptionalWrapper(apiKeyExpirationDate)) - .postOnBackgroundQueue(within: appNotificationCenter) - } - private func processNewAPIKeyElementsForCurrentAPIKeyOfOwnedIdentityNotification(ownedIdentity: ObvCryptoIdentity, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?) { let ownedIdentity = ObvCryptoId(cryptoIdentity: ownedIdentity) - ObvEngineNotificationNew.newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(ownedIdentity: ownedIdentity, apiKeyStatus: apiKeyStatus, apiPermissions: apiPermissions, apiKeyExpirationDate: EngineOptionalWrapper(apiKeyExpirationDate)) + ObvEngineNotificationNew.newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(ownedIdentity: ownedIdentity, apiKeyStatus: apiKeyStatus, apiPermissions: apiPermissions, apiKeyExpirationDate: apiKeyExpirationDate) .postOnBackgroundQueue(within: appNotificationCenter) } - private func processCannotReturnAnyProgressForMessageAttachmentsNotification(messageId: MessageIdentifier, flowId: FlowIdentifier) { - ObvEngineNotificationNew.cannotReturnAnyProgressForMessageAttachments(messageIdentifierFromEngine: messageId.uid.raw) + private func processCannotReturnAnyProgressForMessageAttachmentsNotification(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { + let ownedCryptoId = ObvCryptoId(cryptoIdentity: messageId.ownedCryptoIdentity) + ObvEngineNotificationNew.cannotReturnAnyProgressForMessageAttachments(ownedCryptoId: ownedCryptoId, messageIdentifierFromEngine: messageId.uid.raw) .postOnBackgroundQueue(within: appNotificationCenter) } - private func processOutboxMessageWasUploadedNotification(messageId: MessageIdentifier, timestampFromServer: Date, isAppMessageWithUserContent: Bool, isVoipMessage: Bool, flowId: FlowIdentifier) { + private func processOutboxMessageWasUploadedNotification(messageId: ObvMessageIdentifier, timestampFromServer: Date, isAppMessageWithUserContent: Bool, isVoipMessage: Bool, flowId: FlowIdentifier) { os_log("We received an OutboxMessageWasUploaded notification within flow %{public}@", log: log, type: .debug, flowId.debugDescription) @@ -940,7 +985,7 @@ extension ObvEngine { } - private func processAttachmentWasAcknowledgedNotification(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + private func processAttachmentWasAcknowledgedNotification(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { os_log("We received an AttachmentWasAcknowledged notification within flow %{public}@", log: log, type: .debug, flowId.debugDescription) @@ -1503,7 +1548,7 @@ extension ObvEngine { } - private func processMessageDecryptedNotification(messageId: MessageIdentifier, flowId: FlowIdentifier) { + private func processMessageDecryptedNotification(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { let log = self.log @@ -1517,13 +1562,13 @@ extension ObvEngine { return } - guard let identityDelegate = identityDelegate else { - os_log("The network fetch delegate is not set", log: log, type: .fault) + guard let flowDelegate = flowDelegate else { + os_log("The flow delegate is not set", log: log, type: .fault) return } - guard let flowDelegate = flowDelegate else { - os_log("The flow delegate is not set", log: log, type: .fault) + guard let networkReceivedMessage = networkFetchDelegate.getDecryptedMessage(messageId: messageId, flowId: flowId) else { + os_log("Could not get an ObvNetworkReceivedMessageDecrypted for message %@", log: self.log, type: .fault, messageId.debugDescription) return } @@ -1531,75 +1576,135 @@ extension ObvEngine { guard let _self = self else { return } - let obvMessage: ObvMessage - do { - try obvMessage = ObvMessage(messageId: messageId, networkFetchDelegate: networkFetchDelegate, identityDelegate: identityDelegate, within: obvContext) - } catch { - os_log("Could not construct an ObvMessage from the network message and its attachments", log: _self.log, type: .fault, messageId.debugDescription) - return - } - - // We create a completion handler that, once called, ask to delete the message if possible. - // It also specifies all the attachments that should be downloaded as soon as possible. - // All the other attachments should not be downloaded now. - - let allAttachments = Set(obvMessage.attachments) - let completionHandler: (Set) -> Void = { attachmentsToDownloadNow in + if networkReceivedMessage.fromIdentity == networkReceivedMessage.messageId.ownedCryptoIdentity { + + let obvOwnedMessage: ObvOwnedMessage + do { + try obvOwnedMessage = ObvOwnedMessage(networkReceivedMessage: networkReceivedMessage, networkFetchDelegate: networkFetchDelegate, within: obvContext) + } catch { + os_log("Could not construct an ObvOwnedMessage from the network message and its attachments", log: _self.log, type: .fault, messageId.debugDescription) + return + } - // Manage the attachments: download those tht should automatically downloaded. - // For all the others, inform the flow delegate that the decision not to download these attachments has been taken. - // This eventually allows to end the flow. + // We create a completion handler that, once called, ask to delete the message if possible. + // It also specifies all the attachments that should be downloaded as soon as possible. + // All the other attachments should not be downloaded now. - let attachmentsToDownload = allAttachments.intersection(attachmentsToDownloadNow) - let attachmentsNotToDownload = allAttachments.subtracting(attachmentsToDownloadNow) + let allAttachments = Set(obvOwnedMessage.attachments) + let completionHandler: (Set) -> Void = { attachmentsToDownloadNow in + + // Manage the attachments: download those tht should automatically downloaded. + // For all the others, inform the flow delegate that the decision not to download these attachments has been taken. + // This eventually allows to end the flow. + + let attachmentsToDownload = allAttachments.intersection(attachmentsToDownloadNow) + let attachmentsNotToDownload = allAttachments.subtracting(attachmentsToDownloadNow) - for attachment in attachmentsToDownload { - networkFetchDelegate.resumeDownloadOfAttachment(attachmentId: attachment.attachmentId, flowId: flowId) + for attachment in attachmentsToDownload { + networkFetchDelegate.resumeDownloadOfAttachment(attachmentId: attachment.attachmentId, forceResume: false, flowId: flowId) + } + + for attachment in attachmentsNotToDownload { + flowDelegate.attachmentDownloadDecisionHasBeenTaken(attachmentId: attachment.attachmentId, flowId: flowId) + } + + // Request the deletion of the message whenever possible + + createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in + do { + networkFetchDelegate.markMessageForDeletion(messageId: obvOwnedMessage.messageId, within: obvContext) + try obvContext.save(logOnFailure: _self.log) + } catch { + os_log("Could not call deleteMessageWhenPossible", log: _self.log, type: .error) + } + } + } + + // Before notifying the app about this new message, we start a flow allowing to wait until the return receipt is sent. + // In practice, the app will save the new message is database, create the return receipt, pass it to the engine that will send it. + // Once this is done, the engine will stop the flow. + do { + _ = try flowDelegate.startBackgroundActivityForPostingReturnReceipt(messageId: messageId, attachmentNumber: nil) + } catch { + assertionFailure() + os_log("🧾 Failed to start a flow allowing to wait for the message return receipt to be sent", log: log, type: .fault) + // In production, continue anyway } - for attachment in attachmentsNotToDownload { - flowDelegate.attachmentDownloadDecisionHasBeenTaken(attachmentId: attachment.attachmentId, flowId: flowId) + ObvEngineNotificationNew.newOwnedMessageReceived(obvOwnedMessage: obvOwnedMessage, completionHandler: completionHandler) + .postOnBackgroundQueue(_self.queueForPostingNotificationsToTheApp, within: _self.appNotificationCenter) + + } else { + + let obvMessage: ObvMessage + do { + try obvMessage = ObvMessage(networkReceivedMessage: networkReceivedMessage, networkFetchDelegate: networkFetchDelegate, within: obvContext) + } catch { + os_log("Could not construct an ObvMessage from the network message and its attachments (2)", log: _self.log, type: .fault, messageId.debugDescription) + return } - // Request the deletion of the message whenever possible + // We create a completion handler that, once called, ask to delete the message if possible. + // It also specifies all the attachments that should be downloaded as soon as possible. + // All the other attachments should not be downloaded now. - createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - do { - networkFetchDelegate.markMessageForDeletion(messageId: obvMessage.messageId, within: obvContext) - try obvContext.save(logOnFailure: _self.log) - } catch { - os_log("Could not call deleteMessageWhenPossible", log: _self.log, type: .error) + let allAttachments = Set(obvMessage.attachments) + let completionHandler: (Set) -> Void = { attachmentsToDownloadNow in + + // Manage the attachments: download those tht should automatically downloaded. + // For all the others, inform the flow delegate that the decision not to download these attachments has been taken. + // This eventually allows to end the flow. + + let attachmentsToDownload = allAttachments.intersection(attachmentsToDownloadNow) + let attachmentsNotToDownload = allAttachments.subtracting(attachmentsToDownloadNow) + + for attachment in attachmentsToDownload { + networkFetchDelegate.resumeDownloadOfAttachment(attachmentId: attachment.attachmentId, forceResume: false, flowId: flowId) + } + + for attachment in attachmentsNotToDownload { + flowDelegate.attachmentDownloadDecisionHasBeenTaken(attachmentId: attachment.attachmentId, flowId: flowId) + } + + // Request the deletion of the message whenever possible + + createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in + do { + networkFetchDelegate.markMessageForDeletion(messageId: obvMessage.messageId, within: obvContext) + try obvContext.save(logOnFailure: _self.log) + } catch { + os_log("Could not call deleteMessageWhenPossible", log: _self.log, type: .error) + } } } + + // Before notifying the app about this new message, we start a flow allowing to wait until the return receipt is sent. + // In practice, the app will save the new message is database, create the return receipt, pass it to the engine that will send it. + // Once this is done, the engine will stop the flow. + do { + _ = try flowDelegate.startBackgroundActivityForPostingReturnReceipt(messageId: messageId, attachmentNumber: nil) + } catch { + assertionFailure() + os_log("🧾 Failed to start a flow allowing to wait for the message return receipt to be sent", log: log, type: .fault) + // In production, continue anyway + } + + ObvEngineNotificationNew.newMessageReceived(obvMessage: obvMessage, completionHandler: completionHandler) + .postOnBackgroundQueue(_self.queueForPostingNotificationsToTheApp, within: _self.appNotificationCenter) + } - // Before notifying the app about this new message, we start a flow allowing to wait until the return receipt is sent. - // In practice, the app will save the new message is database, create the return receipt, pass it to the engine that will send it. - // Once this is done, the engine will stop the flow. - do { - _ = try flowDelegate.startBackgroundActivityForPostingReturnReceipt(messageId: messageId, attachmentNumber: nil) - } catch { - assertionFailure() - os_log("🧾 Failed to start a flow allowing to wait for the message return receipt to be sent", log: log, type: .fault) - // In production, continue anyway - } - - ObvEngineNotificationNew.newMessageReceived(obvMessage: obvMessage, completionHandler: completionHandler) - .postOnBackgroundQueue(_self.queueForPostingNotificationsToTheApp, within: _self.appNotificationCenter) - } } - private func processAttachmentDownloadedNotification(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + private func processAttachmentDownloadedNotification(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { let log = self.log os_log("We received an AttachmentDownloaded notification for the attachment %{public}@", log: log, type: .debug, attachmentId.debugDescription) - // We first check whether all the attachments of the message have been downloaded - guard let createContextDelegate = createContextDelegate else { os_log("The create context delegate is not set", log: log, type: .fault) return @@ -1610,11 +1715,6 @@ extension ObvEngine { return } - guard let identityDelegate = identityDelegate else { - os_log("The identity delegate is not set", log: log, type: .fault) - return - } - guard let flowDelegate = flowDelegate else { os_log("The flow delegate is not set", log: log, type: .fault) return @@ -1625,46 +1725,139 @@ extension ObvEngine { guard let _self = self else { return } - let obvAttachment: ObvAttachment - do { - try obvAttachment = ObvAttachment(attachmentId: attachmentId, networkFetchDelegate: networkFetchDelegate, identityDelegate: identityDelegate, within: obvContext) - } catch { - os_log("Could not construct an ObvAttachment of message %{public}@ (4)", log: _self.log, type: .fault, attachmentId.messageId.debugDescription) + guard let networkReceivedAttachment = networkFetchDelegate.getAttachment(withId: attachmentId, within: obvContext) else { + os_log("Could not get a network received attachment of message %{public}@ (4)", log: _self.log, type: .fault, attachmentId.messageId.debugDescription) return } - - // Before notifying the app about this downloaded attachment, we start a flow allowing to wait until the return receipt for this attachment is sent. - // In practice, the app will marks this attachment as "complete" in database, create the return receipt, pass it to the engine that will send it. - // Once this is done, the engine will stop the flow. - do { - _ = try flowDelegate.startBackgroundActivityForPostingReturnReceipt(messageId: attachmentId.messageId, attachmentNumber: attachmentId.attachmentNumber) - } catch { - assertionFailure() - os_log("🧾 Failed to start a flow allowing to wait for the message return receipt to be sent", log: log, type: .fault) - // In production, continue anyway + + if networkReceivedAttachment.fromCryptoIdentity == networkReceivedAttachment.attachmentId.messageId.ownedCryptoIdentity { + + let obvOwnedAttachment: ObvOwnedAttachment + do { + obvOwnedAttachment = try ObvOwnedAttachment(attachmentId: attachmentId, networkFetchDelegate: networkFetchDelegate, within: obvContext) + } catch { + os_log("Could not construct an ObvOwnedAttachment of message %{public}@ (4)", log: _self.log, type: .fault, attachmentId.messageId.debugDescription) + return + } + + // Before notifying the app about this downloaded attachment, we start a flow allowing to wait until the return receipt for this attachment is sent. + // In practice, the app will marks this attachment as "complete" in database, create the return receipt, pass it to the engine that will send it. + // Once this is done, the engine will stop the flow. + do { + _ = try flowDelegate.startBackgroundActivityForPostingReturnReceipt(messageId: attachmentId.messageId, attachmentNumber: attachmentId.attachmentNumber) + } catch { + assertionFailure() + os_log("🧾 Failed to start a flow allowing to wait for the message return receipt to be sent", log: log, type: .fault) + // In production, continue anyway + } + + // We notify the app + + ObvEngineNotificationNew.ownedAttachmentDownloaded(obvOwnedAttachment: obvOwnedAttachment) + .postOnBackgroundQueue(_self.queueForPostingNotificationsToTheApp, within: _self.appNotificationCenter) + + } else { + + let contactIdentifier = ObvContactIdentifier(contactCryptoIdentity: networkReceivedAttachment.fromCryptoIdentity, + ownedCryptoIdentity: networkReceivedAttachment.attachmentId.messageId.ownedCryptoIdentity) + + let obvAttachment: ObvAttachment + do { + try obvAttachment = ObvAttachment(attachmentId: attachmentId, fromContactIdentity: contactIdentifier, networkFetchDelegate: networkFetchDelegate, within: obvContext) + } catch { + os_log("Could not construct an ObvAttachment of message %{public}@ (4)", log: _self.log, type: .fault, attachmentId.messageId.debugDescription) + return + } + + // Before notifying the app about this downloaded attachment, we start a flow allowing to wait until the return receipt for this attachment is sent. + // In practice, the app will marks this attachment as "complete" in database, create the return receipt, pass it to the engine that will send it. + // Once this is done, the engine will stop the flow. + do { + _ = try flowDelegate.startBackgroundActivityForPostingReturnReceipt(messageId: attachmentId.messageId, attachmentNumber: attachmentId.attachmentNumber) + } catch { + assertionFailure() + os_log("🧾 Failed to start a flow allowing to wait for the message return receipt to be sent", log: log, type: .fault) + // In production, continue anyway + } + + // We notify the app + + ObvEngineNotificationNew.attachmentDownloaded(obvAttachment: obvAttachment) + .postOnBackgroundQueue(_self.queueForPostingNotificationsToTheApp, within: _self.appNotificationCenter) + + } - - // We notify the app - - ObvEngineNotificationNew.attachmentDownloaded(obvAttachment: obvAttachment) - .postOnBackgroundQueue(_self.queueForPostingNotificationsToTheApp, within: _self.appNotificationCenter) + } } - private func processInboxAttachmentDownloadWasResumed(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + private func processInboxAttachmentDownloadWasResumed(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { os_log("We received an InboxAttachmentDownloadWasResumed notification from the network fetch manager for the attachment %{public}@", log: log, type: .debug, attachmentId.debugDescription) - let ownCryptoId = ObvCryptoId(cryptoIdentity: attachmentId.messageId.ownedCryptoIdentity) - ObvEngineNotificationNew.attachmentDownloadWasResumed(ownCryptoId: ownCryptoId, messageIdentifierFromEngine: attachmentId.messageId.uid.raw, attachmentNumber: attachmentId.attachmentNumber) - .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) + + guard let createContextDelegate else { assertionFailure(); return } + guard let networkFetchDelegate = networkFetchDelegate else { assertionFailure(); return } + + let randomFlowId = FlowIdentifier() + createContextDelegate.performBackgroundTask(flowId: randomFlowId) { [weak self] (obvContext) in + + guard let _self = self else { return } + + guard let networkReceivedAttachment = networkFetchDelegate.getAttachment(withId: attachmentId, within: obvContext) else { + os_log("Could not get a network received attachment of message %{public}@ (4)", log: _self.log, type: .fault, attachmentId.messageId.debugDescription) + return + } + + let ownCryptoId = ObvCryptoId(cryptoIdentity: attachmentId.messageId.ownedCryptoIdentity) + + if networkReceivedAttachment.fromCryptoIdentity == networkReceivedAttachment.attachmentId.messageId.ownedCryptoIdentity { + + ObvEngineNotificationNew.ownedAttachmentDownloadWasResumed(ownCryptoId: ownCryptoId, messageIdentifierFromEngine: attachmentId.messageId.uid.raw, attachmentNumber: attachmentId.attachmentNumber) + .postOnBackgroundQueue(_self.queueForPostingNotificationsToTheApp, within: _self.appNotificationCenter) + + } else { + + ObvEngineNotificationNew.attachmentDownloadWasResumed(ownCryptoId: ownCryptoId, messageIdentifierFromEngine: attachmentId.messageId.uid.raw, attachmentNumber: attachmentId.attachmentNumber) + .postOnBackgroundQueue(_self.queueForPostingNotificationsToTheApp, within: _self.appNotificationCenter) + + } + + } } - private func processInboxAttachmentDownloadWasPaused(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + private func processInboxAttachmentDownloadWasPaused(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { os_log("We received an InboxAttachmentDownloadWasPaused notification from the network fetch manager for the attachment %{public}@", log: log, type: .debug, attachmentId.debugDescription) - let ownCryptoId = ObvCryptoId(cryptoIdentity: attachmentId.messageId.ownedCryptoIdentity) - ObvEngineNotificationNew.attachmentDownloadWasPaused(ownCryptoId: ownCryptoId, messageIdentifierFromEngine: attachmentId.messageId.uid.raw, attachmentNumber: attachmentId.attachmentNumber) - .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) + + guard let createContextDelegate else { assertionFailure(); return } + guard let networkFetchDelegate = networkFetchDelegate else { assertionFailure(); return } + + let randomFlowId = FlowIdentifier() + createContextDelegate.performBackgroundTask(flowId: randomFlowId) { [weak self] (obvContext) in + + guard let _self = self else { return } + + guard let networkReceivedAttachment = networkFetchDelegate.getAttachment(withId: attachmentId, within: obvContext) else { + os_log("Could not get a network received attachment of message %{public}@ (4)", log: _self.log, type: .fault, attachmentId.messageId.debugDescription) + return + } + + let ownCryptoId = ObvCryptoId(cryptoIdentity: attachmentId.messageId.ownedCryptoIdentity) + + if networkReceivedAttachment.fromCryptoIdentity == networkReceivedAttachment.attachmentId.messageId.ownedCryptoIdentity { + + ObvEngineNotificationNew.ownedAttachmentDownloadWasPaused(ownCryptoId: ownCryptoId, messageIdentifierFromEngine: attachmentId.messageId.uid.raw, attachmentNumber: attachmentId.attachmentNumber) + .postOnBackgroundQueue(_self.queueForPostingNotificationsToTheApp, within: _self.appNotificationCenter) + + + } else { + + ObvEngineNotificationNew.attachmentDownloadWasPaused(ownCryptoId: ownCryptoId, messageIdentifierFromEngine: attachmentId.messageId.uid.raw, attachmentNumber: attachmentId.attachmentNumber) + .postOnBackgroundQueue(_self.queueForPostingNotificationsToTheApp, within: _self.appNotificationCenter) + + } + + } } @@ -1682,17 +1875,17 @@ extension ObvEngine { .postOnBackgroundQueue(queueForPostingNotificationsToTheApp, within: appNotificationCenter) } - + /// Thanks to a internal notification within the Oblivious Engine, this method gets called when an Oblivious channel is confirmed. Within this method, we send a similar notification through the default notification center so as to let the App be notified. private func processNewConfirmedObliviousChannelNotification(currentDeviceUid: UID, remoteCryptoIdentity: ObvCryptoIdentity, remoteDeviceUid: UID) { os_log("We received a NewConfirmedObliviousChannel notification", log: log, type: .info) - guard let createContextDelegate = createContextDelegate else { + guard let createContextDelegate else { os_log("The create context delegate is not set", log: log, type: .fault) return } - guard let identityDelegate = identityDelegate else { + guard let identityDelegate else { os_log("The identity delegate is not set", log: log, type: .fault) return } @@ -1705,7 +1898,7 @@ extension ObvEngine { // Determine the owned identity related to the current device uid guard let ownedCryptoIdentity = try? identityDelegate.getOwnedIdentityOfCurrentDeviceUid(currentDeviceUid, within: obvContext) else { - os_log("The device uid does not correspond to any owned identity", log: _self.log, type: .fault) + os_log("The device uid does not correspond to any owned identity (6)", log: _self.log, type: .fault) return } @@ -1714,23 +1907,24 @@ extension ObvEngine { // - a contact device // For each case, we have an appropriate notification to send - if let remoteOwnedDevice = ObvRemoteOwnedDevice(remoteOwnedDeviceUid: remoteDeviceUid, ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate, within: obvContext) { - - os_log("The channel was created with a remote owned device %@", log: _self.log, type: .info, remoteOwnedDevice.description) - - } else if let contactDevice = ObvContactDevice(contactDeviceUid: remoteDeviceUid, contactCryptoIdentity: remoteCryptoIdentity, ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate, within: obvContext) { + if ownedCryptoIdentity == remoteCryptoIdentity { - os_log("The channel was created with a contact device", log: _self.log, type: .info) - - ObvEngineNotificationNew.newObliviousChannelWithContactDevice(obvContactDevice: contactDevice) + os_log("The channel was created with a remote owned device %@", log: _self.log, type: .info, remoteDeviceUid.description) + + ObvEngineNotificationNew.newConfirmedObliviousChannelWithRemoteOwnedDevice .postOnBackgroundQueue(within: _self.appNotificationCenter) - + } else { - assertionFailure() - os_log("We could not determine any appropriate remote device", log: _self.log, type: .fault) + os_log("The channel was created with a contact device %@", log: _self.log, type: .info, remoteDeviceUid.description) + + let obvContactIdentifier = ObvContactIdentifier(contactCryptoIdentity: remoteCryptoIdentity, ownedCryptoIdentity: ownedCryptoIdentity) + ObvEngineNotificationNew.newObliviousChannelWithContactDevice(obvContactIdentifier: obvContactIdentifier) + .postOnBackgroundQueue(within: _self.appNotificationCenter) + } + } } diff --git a/Engine/ObvEngine/ObvEngine/ObvEngine.swift b/Engine/ObvEngine/ObvEngine/ObvEngine.swift index 228fd1f2..c540bf7f 100644 --- a/Engine/ObvEngine/ObvEngine/ObvEngine.swift +++ b/Engine/ObvEngine/ObvEngine/ObvEngine.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -35,6 +35,7 @@ import ObvEncoder import UserNotifications import ObvServerInterface import ObvBackupManager +import ObvSyncSnapshotManager import OlvidUtils import JWS @@ -49,6 +50,7 @@ public final class ObvEngine: ObvManager { let appNotificationCenter: NotificationCenter let returnReceiptSender: ReturnReceiptSender private let transactionsHistoryReplayer: TransactionsHistoryReplayer + private let protocolWaiter: ProtocolWaiter static let defaultLogSubsystem = "io.olvid.engine" public var logSubsystem: String = ObvEngine.defaultLogSubsystem @@ -62,6 +64,12 @@ public final class ObvEngine: ObvManager { let dispatchQueueForPushNotificationRegistration = DispatchQueue(label: "dispatchQueueForPushNotificationRegistration") + private let queueForComposedOperations = { + let queue = OperationQueue() + queue.name = "ObvEngine/EngineCoordinator queue for composed operations" + return queue + }() + // We define a special queue for posting newObvReturnReceiptToProcess notifications to fix a bug occurring when a lot of return receipts are received at once. // In that case, creating one thread per receipt can lead to a complete hang of Olvid. Using one fixed thread (together with a fix made at the App level) should prevent the bug. let queueForPostingNewObvReturnReceiptToProcessNotifications = DispatchQueue(label: "Queue for posting a newObvReturnReceiptToProcess notification") @@ -106,11 +114,18 @@ public final class ObvEngine: ObvManager { prng: prng, sharedContainerIdentifier: sharedContainerIdentifier, supportBackgroundDownloadTasks: supportBackgroundTasks, - remoteNotificationByteIdentifierForServer: ObvEngineConstants.remoteNotificationByteIdentifierForServer)) + remoteNotificationByteIdentifierForServer: ObvEngineConstants.remoteNotificationByteIdentifierForServer, + logPrefix: logPrefix)) // ObvSolveChallengeDelegate, ObvKeyWrapperForIdentityDelegate, ObvIdentityDelegate, ObvKemForIdentityDelegate - obvManagers.append(ObvIdentityManagerImplementation(sharedContainerIdentifier: sharedContainerIdentifier, prng: prng, identityPhotosDirectory: identityPhotos)) + let identityManager = ObvIdentityManagerImplementation(sharedContainerIdentifier: sharedContainerIdentifier, prng: prng, identityPhotosDirectory: identityPhotos) + obvManagers.append(identityManager) + // ObvSyncSnapshotDelegate + let obvSyncSnapshotManagerImplementation = ObvSyncSnapshotManagerImplementation() + // obvSyncSnapshotManagerImplementation.registerIdentityObvSyncSnapshotNodeMaker(identityManager) + obvManagers.append(obvSyncSnapshotManagerImplementation) + // ObvProcessDownloadedMessageDelegate, ObvChannelDelegate let channelManager = ObvChannelManagerImplementation(readOnly: false) obvManagers.append(channelManager) @@ -261,8 +276,9 @@ public final class ObvEngine: ObvManager { self.appNotificationCenter = appNotificationCenter self.returnReceiptSender = ReturnReceiptSender(prng: prng) self.transactionsHistoryReplayer = TransactionsHistoryReplayer(sharedContainerIdentifier: sharedContainerIdentifier, appType: appType) - self.engineCoordinator = EngineCoordinator(logSubsystem: logSubsystem, prng: self.prng, appNotificationCenter: appNotificationCenter) + self.engineCoordinator = EngineCoordinator(logSubsystem: logSubsystem, prng: self.prng, queueForComposedOperations: queueForComposedOperations, appNotificationCenter: appNotificationCenter) delegateManager = ObvMetaManager() + self.protocolWaiter = ProtocolWaiter(delegateManager: delegateManager, prng: prng) prependLogSubsystem(with: logPrefix) @@ -279,6 +295,7 @@ public final class ObvEngine: ObvManager { try registerToInternalNotifications() self.transactionsHistoryReplayer.createContextDelegate = self.createContextDelegate self.transactionsHistoryReplayer.networkPostDelegate = self.networkPostDelegate + } public func finalizeInitialization(flowId: FlowIdentifier, runningLog: RunningLogError) throws {} @@ -359,6 +376,7 @@ extension ObvEngine { var createContextDelegate: ObvCreateContextDelegate? { if delegateManager.createContextDelegate == nil { os_log("The create context delegate is not set", log: log, type: .fault) + assertionFailure() } return delegateManager.createContextDelegate } @@ -366,6 +384,7 @@ extension ObvEngine { var identityDelegate: ObvIdentityDelegate? { if delegateManager.identityDelegate == nil { os_log("The identity delegate is not set", log: log, type: .fault) + assertionFailure() } return delegateManager.identityDelegate } @@ -373,6 +392,7 @@ extension ObvEngine { var solveChallengeDelegate: ObvSolveChallengeDelegate? { if delegateManager.solveChallengeDelegate == nil { os_log("The solve challenge delegate is not set", log: log, type: .fault) + assertionFailure() } return delegateManager.solveChallengeDelegate } @@ -380,6 +400,7 @@ extension ObvEngine { var notificationDelegate: ObvNotificationDelegate? { if delegateManager.notificationDelegate == nil { os_log("The notification delegate is not set", log: log, type: .fault) + assertionFailure() } return delegateManager.notificationDelegate } @@ -387,6 +408,7 @@ extension ObvEngine { var channelDelegate: ObvChannelDelegate? { if delegateManager.channelDelegate == nil { os_log("The channel delegate is not set", log: log, type: .fault) + assertionFailure() } return delegateManager.channelDelegate } @@ -394,6 +416,7 @@ extension ObvEngine { var protocolDelegate: ObvProtocolDelegate? { if delegateManager.protocolDelegate == nil { os_log("The protocol delegate is not set", log: log, type: .fault) + assertionFailure() } return delegateManager.protocolDelegate } @@ -401,6 +424,7 @@ extension ObvEngine { var networkFetchDelegate: ObvNetworkFetchDelegate? { if delegateManager.networkFetchDelegate == nil { os_log("The network fetch delegate is not set", log: log, type: .fault) + assertionFailure() } return delegateManager.networkFetchDelegate } @@ -408,6 +432,7 @@ extension ObvEngine { var networkPostDelegate: ObvNetworkPostDelegate? { if delegateManager.networkPostDelegate == nil { os_log("The network post delegate is not set", log: log, type: .fault) + assertionFailure() } return delegateManager.networkPostDelegate } @@ -415,6 +440,7 @@ extension ObvEngine { var flowDelegate: ObvFlowDelegate? { if delegateManager.flowDelegate == nil { os_log("The flow delegate is not set", log: log, type: .fault) + assertionFailure() } return delegateManager.flowDelegate } @@ -422,9 +448,19 @@ extension ObvEngine { var backupDelegate: ObvBackupDelegate? { if delegateManager.backupDelegate == nil { os_log("The backup delegate is not set", log: log, type: .fault) + assertionFailure() } return delegateManager.backupDelegate } + + var syncSnapshotDelegate: ObvSyncSnapshotDelegate? { + if delegateManager.syncSnapshotDelegate == nil { + os_log("The sync snapshot delegate is not set", log: log, type: .fault) + assertionFailure() + } + return delegateManager.syncSnapshotDelegate + } + } // MARK: - Public API for managing the database @@ -463,7 +499,7 @@ extension ObvEngine: ObvErrorMaker { assert(!Thread.isMainThread) guard let networkPostDelegate = networkPostDelegate else { assertionFailure(); return } let flowId = FlowIdentifier() - guard let messageIdentifier = MessageIdentifier(rawOwnedCryptoIdentity: ownedIdentity.cryptoIdentity.getIdentity(), rawUid: messageIdentifierFromEngine) else { + guard let messageIdentifier = ObvMessageIdentifier(rawOwnedCryptoIdentity: ownedIdentity.cryptoIdentity.getIdentity(), rawUid: messageIdentifierFromEngine) else { assertionFailure() return } @@ -478,8 +514,8 @@ extension ObvEngine { public func getOwnedIdentity(with cryptoId: ObvCryptoId) throws -> ObvOwnedIdentity { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let randomFlowId = FlowIdentifier() var obvOwnedIdentity: ObvOwnedIdentity! @@ -495,8 +531,8 @@ extension ObvEngine { public func getOwnedIdentities() throws -> Set { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let randomFlowId = FlowIdentifier() var ownedObvIdentities: Set! @@ -526,9 +562,9 @@ extension ObvEngine { } - public func generateOwnedIdentity(withApiKey apiKey: UUID, onServerURL serverURL: URL, with identityDetails: ObvIdentityDetails, keycloakState: ObvKeycloakState?) async throws -> ObvCryptoId { + public func generateOwnedIdentity(onServerURL serverURL: URL, with identityDetails: ObvIdentityDetails, nameForCurrentDevice: String, keycloakState: ObvKeycloakState?) async throws -> ObvCryptoId { return try await withCheckedThrowingContinuation { [weak self] continuation in - self?.generateOwnedIdentity(withApiKey: apiKey, onServerURL: serverURL, with: identityDetails, keycloakState: keycloakState, completion: { result in + self?.generateOwnedIdentity(onServerURL: serverURL, with: identityDetails, nameForCurrentDevice: nameForCurrentDevice, keycloakState: keycloakState, completion: { result in switch result { case .failure(let failure): continuation.resume(throwing: failure) @@ -540,26 +576,43 @@ extension ObvEngine { } - private func generateOwnedIdentity(withApiKey apiKey: UUID, onServerURL serverURL: URL, with identityDetails: ObvIdentityDetails, keycloakState: ObvKeycloakState?, completion: @escaping (Result) -> Void) { + private func generateOwnedIdentity(onServerURL serverURL: URL, with identityDetails: ObvIdentityDetails, nameForCurrentDevice: String, keycloakState: ObvKeycloakState?, completion: @escaping (Result) -> Void) { // At this point, we should not pass signed details to the identity manager. assert(identityDetails.coreDetails.signedUserDetails == nil) - guard let createContextDelegate = createContextDelegate else { completion(.failure(makeError(message: "The context delegate is not set"))); return } - guard let identityDelegate = identityDelegate else { completion(.failure(makeError(message: "The identity delegate is not set"))); return } + guard let createContextDelegate else { completion(.failure(ObvError.createContextDelegateIsNil)); return } + guard let identityDelegate else { completion(.failure(ObvError.identityDelegateIsNil)); return } let flowId = FlowIdentifier() do { try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { (obvContext) in - guard let ownedCryptoIdentity = identityDelegate.generateOwnedIdentity(withApiKey: apiKey, onServerURL: serverURL, with: identityDetails, keycloakState: keycloakState, using: prng, within: obvContext) else { + guard let ownedCryptoIdentity = identityDelegate.generateOwnedIdentity( + onServerURL: serverURL, + with: identityDetails, + nameForCurrentDevice: nameForCurrentDevice, + keycloakState: keycloakState, + using: prng, + within: obvContext) + else { throw makeError(message: "Could not generate owned identity") } + let publishedIdentityDetails = try identityDelegate.getPublishedIdentityDetailsOfOwnedIdentity(ownedCryptoIdentity, within: obvContext) let ownedCryptoId = ObvCryptoId(cryptoIdentity: ownedCryptoIdentity) try startIdentityDetailsPublicationProtocol(ownedIdentity: ownedCryptoId, publishedIdentityDetailsVersion: publishedIdentityDetails.ownedIdentityDetailsElements.version, within: obvContext) + + let ownedDeviceUID = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedCryptoId.cryptoIdentity, within: obvContext) + + try startOwnedDeviceManagementProtocolForSettingOwnedDeviceName( + ownedCryptoId: ownedCryptoId, + ownedDeviceUID: ownedDeviceUID, + ownedDeviceName: nameForCurrentDevice, + within: obvContext) + try obvContext.save(logOnFailure: log) completion(.success(ObvCryptoId(cryptoIdentity: ownedCryptoIdentity))) } @@ -571,80 +624,35 @@ extension ObvEngine { } - public func deleteOwnedIdentity(with ownedCryptoId: ObvCryptoId, notifyContacts: Bool) throws { + public func deleteOwnedIdentity(with ownedCryptoId: ObvCryptoId, globalOwnedIdentityDeletion: Bool) throws { - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let networkPostDelegate = networkPostDelegate else { throw makeError(message: "The network post delegate is not set") } - guard let networkFetchDelegate = networkFetchDelegate else { throw makeError(message: "networkFetchDelegate is not set") } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } let ownedCryptoIdentity = ownedCryptoId.cryptoIdentity let flowId = FlowIdentifier() - try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in - - // To delete an owned identity, we launch a protocol that will take care of everything except : - // - deleting sent/received messages - // - deleting ObvDialogs - // So we delete these items now. - - do { - let obvDialogs = try PersistedEngineDialog.getAll(appNotificationCenter: appNotificationCenter, within: obvContext) - for obvDialog in obvDialogs { - guard obvDialog.obvDialog?.ownedCryptoId == ownedCryptoId else { continue } - try? deleteDialog(with: obvDialog.uuid, within: obvContext) - } - } - - try protocolDelegate.prepareForOwnedIdentityDeletion(ownedCryptoIdentity: ownedCryptoIdentity, within: obvContext) - try networkPostDelegate.prepareForOwnedIdentityDeletion(ownedCryptoIdentity: ownedCryptoIdentity, within: obvContext) - try networkFetchDelegate.prepareForOwnedIdentityDeletion(ownedCryptoIdentity: ownedCryptoIdentity, within: obvContext) - - // We can now launch the protocol taking care of the rest - + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in let message = try protocolDelegate.getInitiateOwnedIdentityDeletionMessage( ownedCryptoIdentityToDelete: ownedCryptoIdentity, - notifyContacts: notifyContacts, - flowId: flowId) - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + globalOwnedIdentityDeletion: globalOwnedIdentityDeletion) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } } - public func getApiKeyForOwnedIdentity(with ownedCryptoId: ObvCryptoId) throws -> UUID { - - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - - let randomFlowId = FlowIdentifier() - var apiKey: UUID! - var error: Error? - createContextDelegate.performBackgroundTaskAndWait(flowId: randomFlowId) { (obvContext) in - do { - apiKey = try identityDelegate.getApiKeyOfOwnedIdentity(ownedCryptoId.cryptoIdentity, within: obvContext) - } catch let _error { - error = _error - } - } - guard error == nil else { - throw error! - } - return apiKey - - } - - - public func queryAPIKeyStatus(for identity: ObvCryptoId, apiKey: UUID) { + public func queryAPIKeyStatus(for identity: ObvCryptoId, apiKey: UUID) async throws -> APIKeyElements { + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } let randomFlowId = FlowIdentifier() - networkFetchDelegate?.queryAPIKeyStatus(for: identity.cryptoIdentity, apiKey: apiKey, flowId: randomFlowId) + return try await networkFetchDelegate.queryAPIKeyStatus(for: identity.cryptoIdentity, apiKey: apiKey, flowId: randomFlowId) } /// This is called during onboarding, when the user wants to check that the server and api key she entered is valid. - public func queryAPIKeyStatus(serverURL: URL, apiKey: UUID) { + public func queryAPIKeyStatus(serverURL: URL, apiKey: UUID) async throws -> APIKeyElements { do { let pkEncryptionImplemByteId = ObvCryptoSuite.sharedInstance.getDefaultPublicKeyEncryptionImplementationByteId() let authEmplemByteId = ObvCryptoSuite.sharedInstance.getDefaultAuthenticationImplementationByteId() @@ -653,219 +661,512 @@ extension ObvEngine { andPublicKeyEncryptionImplementationByteId: pkEncryptionImplemByteId, using: prng) let dummyOwnedCryptoId = ObvCryptoId(cryptoIdentity: dummyOwnedIdentity.getObvCryptoIdentity()) - queryAPIKeyStatus(for: dummyOwnedCryptoId, apiKey: apiKey) + return try await queryAPIKeyStatus(for: dummyOwnedCryptoId, apiKey: apiKey) } } - /// This method allows to set the api key of an owned identity. If the identity is managed by a keycloak server, the caller must pass the URL of this server, otherwise - /// this method fails. This protects agains setting "custom" (free trial or other) api keys for a managed owned identity. - public func setAPIKey(for identity: ObvCryptoId, apiKey: UUID, keycloakServerURL: URL? = nil) throws { + public func registerOwnedAPIKeyOnServerNow(ownedCryptoId: ObvCryptoId, apiKey: UUID) async throws -> ObvRegisterApiKeyResult { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "createContextDelegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "identityDelegate is not set") } - guard let networkFetchDelegate = networkFetchDelegate else { throw makeError(message: "networkFetchDelegate is not set") } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } - let log = self.log + let ownedCryptoIdentity = ownedCryptoId.cryptoIdentity + let flowId = FlowIdentifier() - queueForSynchronizingCallsToManagers.async { - let randomFlowId = FlowIdentifier() - createContextDelegate.performBackgroundTask(flowId: randomFlowId) { (obvContext) in + // Make sure the owned identity is active and that it is *not* keycloak managed + + guard try identityDelegate.isOwnedIdentityActive(ownedIdentity: ownedCryptoIdentity, flowId: flowId) else { + throw ObvError.ownedIdentityIsNotActive + } + + guard try await !isOwnedIdentityKeycloakManaged(ownedIdentity: ownedCryptoIdentity, flowId: flowId) else { + throw ObvError.ownedIdentityIsKeycloakManaged + } + + let result = try await networkFetchDelegate.registerOwnedAPIKeyOnServerNow(ownedCryptoIdentity: ownedCryptoIdentity, apiKey: apiKey, flowId: flowId) + + return result + + } + + + private func isOwnedIdentityKeycloakManaged(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> Bool { + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in do { - try identityDelegate.setAPIKey(apiKey, forOwnedIdentity: identity.cryptoIdentity, keycloakServerURL: keycloakServerURL, within: obvContext) - try networkFetchDelegate.resetServerSession(for: identity.cryptoIdentity, within: obvContext) + let isKeycloakManaged = try identityDelegate.isOwnedIdentityKeycloakManaged(ownedIdentity: ownedIdentity, within: obvContext) + continuation.resume(returning: isKeycloakManaged) } catch { - os_log("Could not set new API Key / reset user's server session: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - return + continuation.resume(throwing: error) } + } + } + } + + + public func registerThenSaveKeycloakAPIKey(ownedCryptoId: ObvCryptoId, apiKey: UUID) async throws { + + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } + + let ownedCryptoIdentity = ownedCryptoId.cryptoIdentity + let flowId = FlowIdentifier() + + // Make sure the owned identity is active and that it is keycloak managed + + guard try identityDelegate.isOwnedIdentityActive(ownedIdentity: ownedCryptoIdentity, flowId: flowId) else { + throw ObvError.ownedIdentityIsNotActive + } + + guard try await isOwnedIdentityKeycloakManaged(ownedIdentity: ownedCryptoIdentity, flowId: flowId) else { + throw ObvError.ownedIdentityIsNotKeycloakManaged + } + + let result = try await networkFetchDelegate.registerOwnedAPIKeyOnServerNow(ownedCryptoIdentity: ownedCryptoIdentity, apiKey: apiKey, flowId: flowId) + + switch result { + case .failed: + throw ObvError.couldNotRegisterAPIKey + case .invalidAPIKey: + throw ObvError.couldNotRegisterAPIKeyAsItIsInvalid + case .success: + break + } + + // If we reach this point, the api key registration was a success. We save it within the identity manager + + try await saveRegisteredKeycloakAPIKey(ownedCryptoIdentity: ownedCryptoIdentity, apiKey: apiKey, flowId: flowId) + + } + + + private func saveRegisteredKeycloakAPIKey(ownedCryptoIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) async throws { + + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + + let log = self.log + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in do { + try identityDelegate.saveRegisteredKeycloakAPIKey(ownedCryptoIdentity: ownedCryptoIdentity, apiKey: apiKey, within: obvContext) try obvContext.save(logOnFailure: log) + continuation.resume() } catch { - os_log("Could not set API Key: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - return + continuation.resume(throwing: error) } } } } - /// Queries the server associated to the owned identity for a free trial API Key. - public func queryServerForFreeTrial(for identity: ObvCryptoId, retrieveAPIKey: Bool) throws { - guard let networkFetchDelegate = networkFetchDelegate else { throw makeError(message: "networkFetchDelegate is not set") } + + public func getKeycloakAPIKey(ownedCryptoId: ObvCryptoId) async throws -> UUID? { + + let ownedCryptoIdentity = ownedCryptoId.cryptoIdentity let flowId = FlowIdentifier() - networkFetchDelegate.queryFreeTrial(for: identity.cryptoIdentity, retrieveAPIKey: retrieveAPIKey, flowId: flowId) + + return try await getRegisteredKeycloakAPIKey(ownedCryptoIdentity: ownedCryptoIdentity, flowId: flowId) + } - public func processAppStorePurchase(for ownedCryptoIds: Set, receiptData: String, transactionIdentifier: String) { - guard let networkFetchDelegate = networkFetchDelegate else { assertionFailure(); return } + private func getRegisteredKeycloakAPIKey(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> UUID? { + + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + let apiKey = try identityDelegate.getRegisteredKeycloakAPIKey(ownedCryptoIdentity: ownedCryptoIdentity, within: obvContext) + continuation.resume(returning: apiKey) + } catch { + continuation.resume(throwing: error) + } + } + } + + } + + + public func queryServerForFreeTrial(for identity: ObvCryptoId) async throws -> Bool { + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } let flowId = FlowIdentifier() - let ownedCryptoIdentities = ownedCryptoIds.map { $0.cryptoIdentity } - networkFetchDelegate.verifyReceipt(ownedCryptoIdentities: Array(ownedCryptoIdentities), receiptData: receiptData, transactionIdentifier: transactionIdentifier, flowId: flowId) + let freeTrialAvailable = try await networkFetchDelegate.queryFreeTrial(for: identity.cryptoIdentity, flowId: flowId) + return freeTrialAvailable } - public func refreshAPIPermissions(for identity: ObvCryptoId) throws { - - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "createContextDelegate is not set") } - guard let networkFetchDelegate = networkFetchDelegate else { throw makeError(message: "networkFetchDelegate is not set") } + public func startFreeTrial(for identity: ObvCryptoId) async throws -> APIKeyElements { + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } + let flowId = FlowIdentifier() + let newAPIKeyElements = try await networkFetchDelegate.startFreeTrial(for: identity.cryptoIdentity, flowId: flowId) + return newAPIKeyElements + } - let log = self.log + + public func processAppStorePurchase(signedAppStoreTransactionAsJWS: String, transactionIdentifier: UInt64) async throws -> [ObvCryptoId: ObvAppStoreReceipt.VerificationStatus] { + + guard let networkFetchDelegate else { assertionFailure(); throw ObvError.networkFetchDelegateIsNil } - let randomFlowId = FlowIdentifier() - createContextDelegate.performBackgroundTask(flowId: randomFlowId) { (obvContext) in - do { - try networkFetchDelegate.resetServerSession(for: identity.cryptoIdentity, within: obvContext) - } catch { - os_log("Could not reset user's server session: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - do { - try obvContext.save(logOnFailure: log) - } catch { - os_log("Could not set API Key: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - return - } + let flowId = FlowIdentifier() + + // The purchase must be processed for all active owned identities that are not keycloak managed + + let ownedCryptoIdentities = try await getActiveOwnedIdentitiesThatAreNotKeycloakManaged(flowId: flowId) + + guard !ownedCryptoIdentities.isEmpty else { + return [:] + } + + let appStoreReceiptElements = ObvAppStoreReceipt( + ownedCryptoIdentities: ownedCryptoIdentities, + signedAppStoreTransactionAsJWS: signedAppStoreTransactionAsJWS, + transactionIdentifier: transactionIdentifier) + + let results = try await networkFetchDelegate.verifyReceiptAndRefreshAPIPermissions(appStoreReceiptElements: appStoreReceiptElements, flowId: flowId) + return results.map({ ($0.key, $0.value) }).reduce(into: [:]) { dictToReturn, values in + dictToReturn[ObvCryptoId(cryptoIdentity: values.0)] = values.1 } } - public func registerToPushNotificationFor(deviceTokens: (pushToken: Data, voipToken: Data?)?, kickOtherDevices: Bool, useMultiDevice: Bool, completion: @escaping (Result) -> Void) throws { + public func refreshAPIPermissions(of ownedCryptoId: ObvCryptoId) async throws -> APIKeyElements { + + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let networkFetchDelegate = networkFetchDelegate else { throw makeError(message: "The network fetch delegate is not set") } + let flowId = FlowIdentifier() - let log = self.log + let apiKeyElements = try await networkFetchDelegate.refreshAPIPermissions(of: ownedCryptoId.cryptoIdentity, flowId: flowId) + + return apiKeyElements + + } + + + public func requestRegisterToPushNotificationsForAllActiveOwnedIdentities(deviceTokens: (pushToken: Data, voipToken: Data?)?, defaultDeviceNameForFirstRegistration: String) async throws { + + let flowId = FlowIdentifier() + + let activeOwnedIdentitiesAndCurrentDeviceNames = try await getActiveOwnedIdentitiesAndCurrentDeviceNames(flowId: flowId) - dispatchQueueForPushNotificationRegistration.async { + for (activeOwnedIdentity, currentDeviceName) in activeOwnedIdentitiesAndCurrentDeviceNames { - let flowId = FlowIdentifier() - createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in + try await requestRegisterToPushNotificationsForActiveOwnedIdentity( + ownedIdentity: activeOwnedIdentity, + deviceTokens: deviceTokens, + deviceNameForFirstRegistration: currentDeviceName ?? defaultDeviceNameForFirstRegistration, + optionalParameter: .none, + flowId: flowId) + + } - let ownedIdentities: Set + } + + + private func getActiveOwnedIdentitiesAndCurrentDeviceNames(flowId: FlowIdentifier) async throws -> [ObvCryptoIdentity: String?] { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation< [ObvCryptoIdentity: String?], Error>) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in do { - ownedIdentities = try identityDelegate.getOwnedIdentities(within: obvContext) + let values = try identityDelegate.getActiveOwnedIdentitiesAndCurrentDeviceName(within: obvContext) + continuation.resume(returning: values) } catch { - os_log("Could not register to push notifications: %{public}@", log: log, type: .fault, error.localizedDescription) - completion(.failure(error)) - return + continuation.resume(throwing: error) } + } + } + + } - guard !ownedIdentities.isEmpty else { - os_log("Could not register to push notifications: Could not find any owned identity in database", log: log, type: .fault) - completion(.failure(ObvEngine.makeError(message: "Could not register to push notifications: Could not find any owned identity in database"))) - return - } + + private func getActiveOwnedIdentitiesThatAreNotKeycloakManaged(flowId: FlowIdentifier) async throws -> Set { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } - ownedIdentities.forEach { (ownedIdentity) in - if let currentDeviceUid = try? identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext), - let maskingUID = try? identityDelegate.getFreshMaskingUIDForPushNotifications(for: ownedIdentity, within: obvContext), - let keycloakPushTopics = try? identityDelegate.getKeycloakPushTopics(ownedCryptoIdentity: ownedIdentity, within: obvContext) { - let remotePushNotification: ObvPushNotificationType - let parameters = ObvPushNotificationParameters(kickOtherDevices: kickOtherDevices, useMultiDevice: useMultiDevice, keycloakPushTopics: keycloakPushTopics) - if let tokens = deviceTokens { - remotePushNotification = ObvPushNotificationType.remote( - ownedCryptoId: ownedIdentity, - currentDeviceUID: currentDeviceUid, - pushToken: tokens.pushToken, - voipToken: tokens.voipToken, - maskingUID: maskingUID, - parameters: parameters) - } else { - remotePushNotification = ObvPushNotificationType.registerDeviceUid( - ownedCryptoId: ownedIdentity, - currentDeviceUID: currentDeviceUid, - parameters: parameters) - } - networkFetchDelegate.registerPushNotification(remotePushNotification, flowId: obvContext.flowId) - } - } - + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation< Set, Error>) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in do { - if obvContext.context.hasChanges { - try obvContext.save(logOnFailure: log) - } + let activeOwnedIdentities = try identityDelegate.getActiveOwnedIdentitiesThatAreNotKeycloakManaged(within: obvContext) + continuation.resume(returning: activeOwnedIdentities) } catch { - assertionFailure() + continuation.resume(throwing: error) } - - completion(.success(())) - } } } + - public func updatePublishedIdentityDetailsOfOwnedIdentity(with ownedCryptoId: ObvCryptoId, with newIdentityDetails: ObvIdentityDetails) throws { - - assert(!Thread.isMainThread) + public func reactivateOwnedIdentity(ownedCryptoId: ObvCryptoId, deviceTokens: (pushToken: Data, voipToken: Data?)?, deviceNameForFirstRegistration: String, replacedDeviceIdentifier: Data?) async throws { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } - let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() - try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in - try identityDelegate.updatePublishedIdentityDetailsOfOwnedIdentity(ownedCryptoId.cryptoIdentity, - with: newIdentityDetails, - within: obvContext) - let version = try identityDelegate.getPublishedIdentityDetailsOfOwnedIdentity(ownedCryptoId.cryptoIdentity, within: obvContext).ownedIdentityDetailsElements.version - try startIdentityDetailsPublicationProtocol(ownedIdentity: ownedCryptoId, publishedIdentityDetailsVersion: version, within: obvContext) - try obvContext.save(logOnFailure: log) + let replacedDeviceUid: UID? + if let replacedDeviceIdentifier { + replacedDeviceUid = UID(uid: replacedDeviceIdentifier) + } else { + replacedDeviceUid = nil } - } - - public func queryServerWellKnown(serverURL: URL) throws { - guard let networkFetchDelegate = networkFetchDelegate else { throw makeError(message: "The network fetch delegate is not set") } let flowId = FlowIdentifier() - networkFetchDelegate.queryServerWellKnown(serverURL: serverURL, flowId: flowId) - } - public func getOwnedIdentityKeycloakState(with ownedCryptoId: ObvCryptoId) throws -> (obvKeycloakState: ObvKeycloakState?, signedOwnedDetails: SignedObvKeycloakUserDetails?) { + guard try !identityDelegate.isOwnedIdentityActive(ownedIdentity: ownedCryptoId.cryptoIdentity, flowId: flowId) else { + return + } - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } + try await requestRegisterToPushNotificationsForActiveOwnedIdentity( + ownedIdentity: ownedCryptoId.cryptoIdentity, + deviceTokens: deviceTokens, + deviceNameForFirstRegistration: deviceNameForFirstRegistration, + optionalParameter: .reactivateCurrentDevice(replacedDeviceUid: replacedDeviceUid), + flowId: flowId) + + } + + + private func requestRegisterToPushNotificationsForActiveOwnedIdentity(ownedIdentity: ObvCryptoIdentity, deviceTokens: (pushToken: Data, voipToken: Data?)?, deviceNameForFirstRegistration: String, optionalParameter: ObvPushNotificationType.OptionalParameter, flowId: FlowIdentifier) async throws { + + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } - var keyCloakState: ObvKeycloakState? - var signedOwnedDetails: SignedObvKeycloakUserDetails? - let flowId = FlowIdentifier() - try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { (obvContext) in - (keyCloakState, signedOwnedDetails) = try identityDelegate.getOwnedIdentityKeycloakState( - ownedIdentity: ownedCryptoId.cryptoIdentity, - within: obvContext) + let (currentDeviceUid, keycloakPushTopics) = try await getInfosForRegisteringToPushNotification(ownedIdentity: ownedIdentity, flowId: flowId) + + let commonParameters = ObvPushNotificationType.CommonParameters( + keycloakPushTopics: keycloakPushTopics, + deviceNameForFirstRegistration: deviceNameForFirstRegistration) + + let pushNotification: ObvPushNotificationType + if let deviceTokens { + let maskingUID = try await getMaskingUIDForPushNotifications(activeOwnedIdentity: ownedIdentity, pushToken: deviceTokens.pushToken, flowId: flowId, log: log) + let remoteTypeParameters = ObvPushNotificationType.RemoteTypeParameters(pushToken: deviceTokens.pushToken, voipToken: deviceTokens.voipToken, maskingUID: maskingUID) + pushNotification = .remote(ownedCryptoId: ownedIdentity, currentDeviceUID: currentDeviceUid, commonParameters: commonParameters, optionalParameter: optionalParameter, remoteTypeParameters: remoteTypeParameters) + } else { + pushNotification = .registerDeviceUid(ownedCryptoId: ownedIdentity, currentDeviceUID: currentDeviceUid, commonParameters: commonParameters, optionalParameter: optionalParameter) } - return (keyCloakState, signedOwnedDetails) + + do { + + try await networkFetchDelegate.registerPushNotification(pushNotification, flowId: flowId) + + } catch { + + if let error = error as? ObvNetworkFetchError.RegisterPushNotificationError { + switch error { + case .anotherDeviceIsAlreadyRegistered: + // If the server reports that another device is already registered, we deactivate the current device of the owned identity, + // delete all the devices of her contacts, and delete all oblivious channels from her current device (including channels with other owned devices). + // Note that we do not delete other owned devices, we only delete any oblivious we have with them. + let op1 = DeactivateOwnedIdentityAndMore(ownedCryptoIdentity: ownedIdentity, identityDelegate: identityDelegate, channelDelegate: channelDelegate) + let composedOp = try createCompositionOfOneContextualOperation(op1: op1) + try await protocolDelegate.executeOnQueueForProtocolOperations(operation: composedOp) + case .couldNotParseReturnStatusFromServer: + break + case .deviceToReplaceIsNotRegistered: + break + case .invalidServerResponse: + break + case .theDelegateManagerIsNotSet: + break + } + throw error + } else { + assertionFailure("This error should be turned into a ObvNetworkFetchError.RegisterPushNotificationError") + throw error + } + + } + + // If we reach this point, the registration was succesfull. This can only happen if the identity is active or was just reactivated. + // So we make sure this device considers that the identity is active. + + try await reactivateOwnedIdentity(ownedCryptoIdentity: ownedIdentity, flowId: flowId) + } - public func getSignedContactDetails(ownedIdentity: ObvCryptoId, contactIdentity: ObvCryptoId, completion: @escaping (Result) -> Void) throws { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } - let flowId = FlowIdentifier() - createContextDelegate.performBackgroundTask(flowId: flowId) { (obvContext) in - do { - let signedContactDetails = try identityDelegate.getSignedContactDetails( - ownedIdentity: ownedIdentity.cryptoIdentity, - contactIdentity: contactIdentity.cryptoIdentity, - within: obvContext) - completion(.success(signedContactDetails)) - } catch { - completion(.failure(error)) - } - } + private func reactivateOwnedIdentity(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws { + + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + + let op1 = ActivateOwnedIdentityOperation(ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate) + let composedOp = try createCompositionOfOneContextualOperation(op1: op1) + + try await protocolDelegate.executeOnQueueForProtocolOperations(operation: composedOp) + } + - public func saveKeycloakAuthState(with ownedCryptoId: ObvCryptoId, rawAuthState: Data) throws { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } + private func getInfosForRegisteringToPushNotification(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> (currentDeviceUid: UID, keycloakPushTopics: Set) { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<(currentDeviceUid: UID, keycloakPushTopics: Set), Error>) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) + let keycloakPushTopics = try identityDelegate.getKeycloakPushTopics(ownedCryptoIdentity: ownedIdentity, within: obvContext) + continuation.resume(returning: (currentDeviceUid, keycloakPushTopics)) + } catch { + continuation.resume(throwing: error) + } + } + } + + } + + + public func getCurrentDeviceIdentifier(ownedCryptoId: ObvCryptoId) async throws -> Data { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + + let flowId = FlowIdentifier() + + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedCryptoId.cryptoIdentity, within: obvContext) + continuation.resume(returning: currentDeviceUid.raw) + } catch { + continuation.resume(throwing: error) + } + } + } + + } + + + private func getMaskingUIDForPushNotifications(activeOwnedIdentity: ObvCryptoIdentity, pushToken: Data, flowId: FlowIdentifier, log: OSLog) async throws -> UID { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + let maskingUID = try identityDelegate.getFreshMaskingUIDForPushNotifications(for: activeOwnedIdentity, pushToken: pushToken, within: obvContext) + try obvContext.save(logOnFailure: log) + continuation.resume(returning: maskingUID) + } catch { + continuation.resume(throwing: error) + } + } + } + + } + + + public func updatePublishedIdentityDetailsOfOwnedIdentity(with ownedCryptoId: ObvCryptoId, with newIdentityDetails: ObvIdentityDetails) async throws { + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + do { + try updatePublishedIdentityDetailsOfOwnedIdentityInternal(with: ownedCryptoId, with: newIdentityDetails) + continuation.resume() + } catch { + continuation.resume(throwing: error) + } + } + + } + + + private func updatePublishedIdentityDetailsOfOwnedIdentityInternal(with ownedCryptoId: ObvCryptoId, with newIdentityDetails: ObvIdentityDetails) throws { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + + let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in + try identityDelegate.updatePublishedIdentityDetailsOfOwnedIdentity(ownedCryptoId.cryptoIdentity, + with: newIdentityDetails, + within: obvContext) + let version = try identityDelegate.getPublishedIdentityDetailsOfOwnedIdentity(ownedCryptoId.cryptoIdentity, within: obvContext).ownedIdentityDetailsElements.version + try startIdentityDetailsPublicationProtocol(ownedIdentity: ownedCryptoId, publishedIdentityDetailsVersion: version, within: obvContext) + try obvContext.save(logOnFailure: log) + } + + } + + + public func queryServerWellKnown(serverURL: URL) throws { + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } + let flowId = FlowIdentifier() + networkFetchDelegate.queryServerWellKnown(serverURL: serverURL, flowId: flowId) + } + + public func getOwnedIdentityKeycloakState(with ownedCryptoId: ObvCryptoId) throws -> (obvKeycloakState: ObvKeycloakState?, signedOwnedDetails: SignedObvKeycloakUserDetails?) { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + + var keyCloakState: ObvKeycloakState? + var signedOwnedDetails: SignedObvKeycloakUserDetails? + let flowId = FlowIdentifier() + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { (obvContext) in + (keyCloakState, signedOwnedDetails) = try identityDelegate.getOwnedIdentityKeycloakState( + ownedIdentity: ownedCryptoId.cryptoIdentity, + within: obvContext) + } + return (keyCloakState, signedOwnedDetails) + } + + + public func getSignedContactDetails(ownedIdentity: ObvCryptoId, contactIdentity: ObvCryptoId, completion: @escaping (Result) -> Void) throws { + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + let flowId = FlowIdentifier() + createContextDelegate.performBackgroundTask(flowId: flowId) { (obvContext) in + do { + let signedContactDetails = try identityDelegate.getSignedContactDetails( + ownedIdentity: ownedIdentity.cryptoIdentity, + contactIdentity: contactIdentity.cryptoIdentity, + within: obvContext) + completion(.success(signedContactDetails)) + } catch { + completion(.failure(error)) + } + } + } + + + public func getSignedContactDetailsAsync(ownedIdentity: ObvCryptoId, contactIdentity: ObvCryptoId) async throws -> SignedObvKeycloakUserDetails? { + return try await withCheckedThrowingContinuation { [weak self] (continuation: CheckedContinuation) in + do { + try self?.getSignedContactDetails(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity) { result in + switch result { + case .success(let signedObvKeycloakUserDetails): + continuation.resume(returning: signedObvKeycloakUserDetails) + case .failure(let error): + continuation.resume(throwing: error) + } + } + } catch { + continuation.resume(throwing: error) + } + } + } + + + public func saveKeycloakAuthState(with ownedCryptoId: ObvCryptoId, rawAuthState: Data) throws { + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } os_log("🧥 Call to saveKeycloakAuthState", log: log, type: .info) @@ -879,8 +1180,8 @@ extension ObvEngine { } public func saveKeycloakJwks(with ownedCryptoId: ObvCryptoId, jwks: ObvJWKSet) throws { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let flowId = FlowIdentifier() try queueForSynchronizingCallsToManagers.sync { @@ -892,8 +1193,8 @@ extension ObvEngine { } public func getOwnedIdentityKeycloakUserId(with ownedCryptoId: ObvCryptoId) throws -> String? { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } var userId: String? let flowId = FlowIdentifier() @@ -904,8 +1205,8 @@ extension ObvEngine { } public func setOwnedIdentityKeycloakUserId(with ownedCryptoId: ObvCryptoId, userId: String?) throws { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let flowId = FlowIdentifier() try queueForSynchronizingCallsToManagers.sync { @@ -917,10 +1218,10 @@ extension ObvEngine { } public func addKeycloakContact(with ownedCryptoId: ObvCryptoId, signedContactDetails: SignedObvKeycloakUserDetails) throws { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw ObvEngine.makeError(message: "The protocol delegate is not set") } - guard let flowDelegate = flowDelegate else { return } - guard let channelDelegate = channelDelegate else { throw ObvEngine.makeError(message: "Channel Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } guard let contactIdentity = signedContactDetails.identity else { throw makeError(message: "Could not determine contact identity") } guard let contactIdentityToAdd = ObvCryptoIdentity(from: contactIdentity) else { throw makeError(message: "Could not parse contact identity") } @@ -934,7 +1235,7 @@ extension ObvEngine { try queueForSynchronizingCallsToManagers.sync { try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { (obvContext) in - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } } @@ -942,124 +1243,84 @@ extension ObvEngine { /// This method asynchronously binds an owned identity to a keycloak server. - public func bindOwnedIdentityToKeycloak(ownedCryptoId: ObvCryptoId, keycloakState: ObvKeycloakState, keycloakUserId: String, completion: @escaping (Result) -> Void) throws { + public func bindOwnedIdentityToKeycloak(ownedCryptoId: ObvCryptoId, keycloakState: ObvKeycloakState, keycloakUserId: String) async throws { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } - let appNotificationCenter = self.appNotificationCenter - let log = self.log + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } - let flowId = FlowIdentifier() - createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in - let cryptoIdsOfContactsCertifiedByOwnKeycloak: Set - do { - let contactsCertifiedByOwnKeycloak = try identityDelegate.bindOwnedIdentityToKeycloak(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, keycloakUserId: keycloakUserId, keycloakState: keycloakState, within: obvContext) - cryptoIdsOfContactsCertifiedByOwnKeycloak = Set(contactsCertifiedByOwnKeycloak.map({ ObvCryptoId(cryptoIdentity: $0) })) - try obvContext.save(logOnFailure: log) - } catch { - os_log("Failed to bind owned identity to keycloak server: %{public}@", log: log, type: .fault, error.localizedDescription) - completion(.failure(error)) - return - } - completion(.success(())) - ObvEngineNotificationNew.updatedSetOfContactsCertifiedByOwnKeycloak(ownedIdentity: ownedCryptoId, contactsCertifiedByOwnKeycloak: cryptoIdsOfContactsCertifiedByOwnKeycloak) - .postOnBackgroundQueue(within: appNotificationCenter) - } + let message = try protocolDelegate.getOwnedIdentityKeycloakBindingMessage( + ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, + keycloakState: keycloakState, + keycloakUserId: keycloakUserId) + + try await protocolWaiter.waitUntilEndOfProcessingOfProtocolMessage(message, log: log) + + // If we reach this point, the protocol message was processed (i.e., deleted from database) + // It does not necessarily mean that the protocol was a success. + // So we check the identity is indeed bound to keycloak - } - - - public func unbindOwnedIdentityFromKeycloakServer(ownedCryptoId: ObvCryptoId) async throws { - try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in - do { - try unbindOwnedIdentityFromKeycloakServer(ownedCryptoId: ownedCryptoId) { result in - switch result { - case .failure(let error): - continuation.resume(throwing: error) - case .success: - continuation.resume() - } - } - } catch { - continuation.resume(throwing: error) + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: FlowIdentifier()) { obvContext in + let isKeycloakManaged = try identityDelegate.isOwnedIdentityKeycloakManaged(ownedIdentity: ownedCryptoId.cryptoIdentity, within: obvContext) + guard isKeycloakManaged else { + throw Self.makeError(message: "The call to bindOwnedIdentityToKeycloak did fail") } } + } /// This method asynchronously unbinds an owned identity from a keycloak server. During this process, new details are published for owned identity, based on the previously published details, but after removing the signed user details. /// This method eventually posts an `ownedIdentityUnbindingFromKeycloakPerformed` notification containing the result of the unbinding process. - private func unbindOwnedIdentityFromKeycloakServer(ownedCryptoId: ObvCryptoId, completion: @escaping (Result) -> Void) throws { + public func unbindOwnedIdentityFromKeycloak(ownedCryptoId: ObvCryptoId) async throws { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } - let appNotificationCenter = self.appNotificationCenter - let log = self.log + do { + + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } - let flowId = FlowIdentifier() - queueForSynchronizingCallsToManagers.async { - createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { [weak self] obvContext in - guard let _self = self else { - completion(.failure(ObvEngine.makeError(message: "Engine was deallocated"))) - assertionFailure() - return - } - do { - try identityDelegate.unbindOwnedIdentityFromKeycloak(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, within: obvContext) - let version = try identityDelegate.getPublishedIdentityDetailsOfOwnedIdentity(ownedCryptoId.cryptoIdentity, within: obvContext).ownedIdentityDetailsElements.version - try _self.startIdentityDetailsPublicationProtocol(ownedIdentity: ownedCryptoId, publishedIdentityDetailsVersion: version, within: obvContext) - try obvContext.save(logOnFailure: log) - } catch { - os_log("Failed to unbind owned identity from keycloak server: %{public}@", log: log, type: .fault, error.localizedDescription) - completion(.failure(error)) - ObvEngineNotificationNew.ownedIdentityUnbindingFromKeycloakPerformed(ownedIdentity: ownedCryptoId, result: .failure(error)) - .postOnBackgroundQueue(within: appNotificationCenter) - return + let message = try protocolDelegate.getOwnedIdentityKeycloakUnbindingMessage(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity) + let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() + + try await protocolWaiter.waitUntilEndOfProcessingOfProtocolMessage(message, log: log) + + // If we reach this point, the protocol message was processed (i.e., deleted from database) + // It does not necessarily mean that the protocol was a success. + // So we check the identity is indeed bound to keycloak + + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in + let isKeycloakManaged = try identityDelegate.isOwnedIdentityKeycloakManaged(ownedIdentity: ownedCryptoId.cryptoIdentity, within: obvContext) + guard !isKeycloakManaged else { + throw Self.makeError(message: "The call to unbindOwnedIdentityFromKeycloak did fail") } - completion(.success(())) - ObvEngineNotificationNew.ownedIdentityUnbindingFromKeycloakPerformed(ownedIdentity: ownedCryptoId, result: .success(())) - .postOnBackgroundQueue(within: appNotificationCenter) } - } - - } - - - /// When an owned identity is bound to a keycloak server, it receives a list of all the existing contacts that are also bound to the keycloak server. It may have missed the notification. - /// This method, typically called during bootstrap, re-send the notification containing the latest set of all the contact bound to the same keycloak server as the owned identity. - /// Of course, if the owned identity is not bound to a keycloak server, this method eventually send an empty send within the notification. - public func requestSetOfContactsCertifiedByOwnKeycloakForAllOwnedCryptoIds() throws { - - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } - let appNotificationCenter = self.appNotificationCenter - let log = self.log - - let flowId = FlowIdentifier() - createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in - guard let ownedCryptoIdentities = try? identityDelegate.getOwnedIdentities(within: obvContext) else { assertionFailure(); return } - for ownedCryptoIdentity in ownedCryptoIdentities { - let cryptoIdsOfContactsCertifiedByOwnKeycloak: Set - do { - let contactsCertifiedByOwnKeycloak = try identityDelegate.getContactsCertifiedByOwnKeycloak(ownedCryptoIdentity: ownedCryptoIdentity, within: obvContext) - cryptoIdsOfContactsCertifiedByOwnKeycloak = Set(contactsCertifiedByOwnKeycloak.map({ ObvCryptoId(cryptoIdentity: $0) })) - } catch { - os_log("Failed to obtain the contacts of the owned identity that are bound to the same keycloak: %{public}@", log: log, type: .fault, error.localizedDescription) - return - } - let ownedCryptoId = ObvCryptoId(cryptoIdentity: ownedCryptoIdentity) - ObvEngineNotificationNew.updatedSetOfContactsCertifiedByOwnKeycloak(ownedIdentity: ownedCryptoId, contactsCertifiedByOwnKeycloak: cryptoIdsOfContactsCertifiedByOwnKeycloak) - .postOnBackgroundQueue(within: appNotificationCenter) + + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { [weak self] obvContext in + guard let _self = self else { return } + let version = try identityDelegate.getPublishedIdentityDetailsOfOwnedIdentity(ownedCryptoId.cryptoIdentity, within: obvContext).ownedIdentityDetailsElements.version + try _self.startIdentityDetailsPublicationProtocol(ownedIdentity: ownedCryptoId, publishedIdentityDetailsVersion: version, within: obvContext) + try obvContext.save(logOnFailure: _self.log) } + ObvEngineNotificationNew.ownedIdentityUnbindingFromKeycloakPerformed(ownedIdentity: ownedCryptoId, result: .success(())) + .postOnBackgroundQueue(within: appNotificationCenter) + + } catch { + + ObvEngineNotificationNew.ownedIdentityUnbindingFromKeycloakPerformed(ownedIdentity: ownedCryptoId, result: .failure(error)) + .postOnBackgroundQueue(within: appNotificationCenter) + throw error + } } - - + + public func setOwnedIdentityKeycloakSelfRevocationTestNonce(ownedCryptoId: ObvCryptoId, newSelfRevocationTestNonce: String?) throws { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let log = self.log let flowId = FlowIdentifier() // Synchronizing this call prevents a merge conflict with the operations made in updateKeycloakRevocationList(...) @@ -1078,7 +1339,7 @@ extension ObvEngine { public func getOwnedIdentityKeycloakSelfRevocationTestNonce(ownedCryptoId: ObvCryptoId) throws -> String? { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } let flowId = FlowIdentifier() var selfRevocationTestNonce: String? = nil try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in @@ -1089,8 +1350,8 @@ extension ObvEngine { public func setOwnedIdentityKeycloakSignatureKey(ownedCryptoId: ObvCryptoId, keycloakServersignatureVerificationKey: ObvJWK?) throws { - guard let createContextDelegate = createContextDelegate else { assertionFailure(); throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { assertionFailure(); throw ObvEngine.makeError(message: "Identity Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let flowId = FlowIdentifier() let log = self.log try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in @@ -1107,9 +1368,9 @@ extension ObvEngine { public func updateKeycloakRevocationList(ownedCryptoId: ObvCryptoId, latestRevocationListTimestamp: Date, signedRevocations: [String]) throws { - guard let createContextDelegate = createContextDelegate else { assertionFailure(); throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { assertionFailure(); throw ObvEngine.makeError(message: "Identity Delegate is not set") } - guard let channelDelegate = channelDelegate else { throw ObvEngine.makeError(message: "Channel Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } let flowId = FlowIdentifier() let log = self.log os_log("Updating the keycloak revocation list", log: log, type: .info) @@ -1136,33 +1397,76 @@ extension ObvEngine { } - public func updateKeycloakPushTopicsIfNeeded(ownedCryptoId: ObvCryptoId, pushTopics: Set) throws { - guard let createContextDelegate = createContextDelegate else { assertionFailure(); throw makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { assertionFailure(); throw makeError(message: "Identity Delegate is not set") } - guard let networkFetchDelegate = networkFetchDelegate else { throw makeError(message: "The network fetch delegate is not set") } + public func updateKeycloakPushTopicsIfNeeded(ownedCryptoId: ObvCryptoId, deviceTokens: (pushToken: Data, voipToken: Data?)?, deviceNameForFirstRegistration: String, pushTopics: Set) async throws { + + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + let flowId = FlowIdentifier() let log = self.log + os_log("Updating the keycloak push topics within the engine", log: log, type: .info) - try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in - let storedPushTopicsUpdated = try identityDelegate.updateKeycloakPushTopicsIfNeeded(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, pushTopics: pushTopics, within: obvContext) - if storedPushTopicsUpdated { - if let pushNotification = try networkFetchDelegate.getServerPushNotification(ownedCryptoId: ownedCryptoId.cryptoIdentity, within: obvContext) { - // Make sure we register all push topics (including those concerning keycloak groups, which are not included in the pushTopics received) - let allPushTopics = try identityDelegate.getKeycloakPushTopics(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, within: obvContext) - let newPushNotification = pushNotification.withUpdatedKeycloakPushTopics(allPushTopics) - networkFetchDelegate.registerPushNotification(newPushNotification, flowId: obvContext.flowId) + + let storedPushTopicsWereUpdated = try await updateKeycloakPushTopicsIfNeeded(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, pushTopics: pushTopics, flowId: flowId, log: log) + guard storedPushTopicsWereUpdated else { return } + + guard try identityDelegate.isOwnedIdentityActive(ownedIdentity: ownedCryptoId.cryptoIdentity, flowId: flowId) else { + assertionFailure() + return + } + + // The following call will take into account the new set of push topics + + try await requestRegisterToPushNotificationsForActiveOwnedIdentity( + ownedIdentity: ownedCryptoId.cryptoIdentity, + deviceTokens: deviceTokens, + deviceNameForFirstRegistration: deviceNameForFirstRegistration, + optionalParameter: .none, + flowId: flowId) + + } + + + private func getKeycloakPushTopics(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> Set { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation, Error>) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + let allPushTopics = try identityDelegate.getKeycloakPushTopics(ownedCryptoIdentity: ownedCryptoIdentity, within: obvContext) + continuation.resume(returning: allPushTopics) + } catch { + continuation.resume(throwing: error) } } - try obvContext.save(logOnFailure: log) } - + } + private func updateKeycloakPushTopicsIfNeeded(ownedCryptoIdentity: ObvCryptoIdentity, pushTopics: Set, flowId: FlowIdentifier, log: OSLog) async throws -> Bool { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + let storedPushTopicsUpdated = try identityDelegate.updateKeycloakPushTopicsIfNeeded(ownedCryptoIdentity: ownedCryptoIdentity, pushTopics: pushTopics, within: obvContext) + try obvContext.save(logOnFailure: log) + continuation.resume(returning: storedPushTopicsUpdated) + } catch { + continuation.resume(throwing: error) + } + } + } + } + public func getManagedOwnedIdentitiesAssociatedWithThePushTopic(_ pushTopic: String) throws -> Set { - guard let createContextDelegate = createContextDelegate else { assertionFailure(); throw makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { assertionFailure(); throw makeError(message: "Identity Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let flowId = FlowIdentifier() // No need to synchronize this call, its a simple query var ownedIdentities = Set() @@ -1178,8 +1482,8 @@ extension ObvEngine { public func getSignedOwnedDetails(ownedIdentity: ObvCryptoId, completion: @escaping (Result) -> Void) throws { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let flowId = FlowIdentifier() createContextDelegate.performBackgroundTask(flowId: flowId) { (obvContext) in do { @@ -1197,14 +1501,127 @@ extension ObvEngine { } +// MARK: - Public API for owned devices + +extension ObvEngine { + + public func getAllOwnedDevicesOfOwnedIdentity(_ ownedCryptoId: ObvCryptoId) throws -> Set { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + + let ownedCryptoIdentity = ownedCryptoId.cryptoIdentity + + var ownedDevices = Set() + + let flowId = FlowIdentifier() + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in + // Deal with the current device + let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedCryptoIdentity, within: obvContext) + let infos = try identityDelegate.getInfosAboutOwnedDevice(withUid: currentDeviceUid, ownedCryptoIdentity: ownedCryptoIdentity, within: obvContext) + let currentDevice = ObvOwnedDevice( + identifier: currentDeviceUid.raw, + ownedCryptoIdentity: ownedCryptoIdentity, + secureChannelStatus: .currentDevice, + name: infos.name, + expirationDate: infos.expirationDate, + latestRegistrationDate: infos.latestRegistrationDate) + ownedDevices.insert(currentDevice) + // Deal with remote owned devices + let otherDeviceUids = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedCryptoIdentity, within: obvContext) + for otherDeviceUid in otherDeviceUids { + // Check if a channel exists between the current device and the remote owned device + let channelExists = try channelDelegate.aConfirmedObliviousChannelExistsBetweenTheCurrentDeviceOf( + ownedIdentity: ownedCryptoIdentity, + andRemoteIdentity: ownedCryptoIdentity, + withRemoteDeviceUid: otherDeviceUid, + within: obvContext) + let secureChannelStatus = channelExists ? ObvOwnedDevice.SecureChannelStatus.created : .creationInProgress + let infos = try identityDelegate.getInfosAboutOwnedDevice(withUid: otherDeviceUid, ownedCryptoIdentity: ownedCryptoIdentity, within: obvContext) + let otherOwnedDevice = ObvOwnedDevice( + identifier: otherDeviceUid.raw, + ownedCryptoIdentity: ownedCryptoIdentity, + secureChannelStatus: secureChannelStatus, + name: infos.name, + expirationDate: infos.expirationDate, + latestRegistrationDate: infos.latestRegistrationDate) + ownedDevices.insert(otherOwnedDevice) + } + } + + return ownedDevices + } + + + /// If it exists, this method first delete the channel we have with the owned device. It then relaunches the channel creation with the owned device. + public func restartChannelEstablishmentProtocolsWithOwnedDevice(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data) async throws { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + + let log = self.log + let prng = self.prng + let ownedCryptoIdentity = ownedCryptoId.cryptoIdentity + guard let remoteOwnedDeviceUid = UID(uid: deviceIdentifier) else { + assertionFailure() + throw Self.makeError(message: "Could not turn device identifier into a device UID") + } + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + + let flowId = FlowIdentifier() + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + + do { + + let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedCryptoIdentity, within: obvContext) + + guard currentDeviceUid != remoteOwnedDeviceUid else { + assertionFailure() + throw Self.makeError(message: "Trying to restart channel establishement betwen the current device and itself, which makes no sense") + } + + guard try identityDelegate.isDevice(withUid: remoteOwnedDeviceUid, aRemoteDeviceOfOwnedIdentity: ownedCryptoIdentity, within: obvContext) else { + assertionFailure() + throw Self.makeError(message: "The remote device does not appear to exist") + } + + try channelDelegate.deleteObliviousChannelBetweenCurentDeviceWithUid( + currentDeviceUid: currentDeviceUid, + andTheRemoteDeviceWithUid: remoteOwnedDeviceUid, + ofRemoteIdentity: ownedCryptoIdentity, + within: obvContext) + + let message = try protocolDelegate.getInitialMessageForChannelCreationWithOwnedDeviceProtocol(ownedIdentity: ownedCryptoIdentity, remoteDeviceUid: remoteOwnedDeviceUid) + + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + try obvContext.save(logOnFailure: log) + + continuation.resume() + + } catch { + continuation.resume(throwing: error) + } + + } + + } + + } + +} + // MARK: - Public API for managing contact identities extension ObvEngine { public func getContactDeviceIdentifiersForWhichAChannelCreationProtocolExists(with contactCryptoId: ObvCryptoId, ofOwnedIdentityWith ownedCryptoId: ObvCryptoId) throws -> Set { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw ObvEngine.makeError(message: "Protocol Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } var channelIds: Set! @@ -1221,8 +1638,8 @@ extension ObvEngine { public func getContactDeviceIdentifiersOfContactIdentity(with contactCryptoId: ObvCryptoId, ofOwnedIdentityWith ownedCryptoId: ObvCryptoId) throws -> Set { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } var contactDeviceIdentifiers: Set! let flowId = FlowIdentifier() @@ -1239,8 +1656,8 @@ extension ObvEngine { public func getContactIdentity(with contactCryptoId: ObvCryptoId, ofOwnedIdentityWith ownedCryptoId: ObvCryptoId) throws -> ObvContactIdentity { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } var obvContactIdentity: ObvContactIdentity! @@ -1266,8 +1683,8 @@ extension ObvEngine { public func getContactsOfOwnedIdentity(with ownedCryptoId: ObvCryptoId) throws -> Set { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let contactIdentities: Set @@ -1303,11 +1720,11 @@ extension ObvEngine { public func deleteContactIdentity(with contactCryptoId: ObvCryptoId, ofOwnedIdentyWith ownedCryptoId: ObvCryptoId) throws { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let flowDelegate = flowDelegate else { throw ObvEngine.makeError(message: "The flow delegate is not set") } - guard let channelDelegate = channelDelegate else { throw ObvEngine.makeError(message: "Channel Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } // We prepare the appropriate message for starting the ObliviousChannelManagementProtocol step allowing to delete the contact @@ -1334,7 +1751,7 @@ extension ObvEngine { // If we reach this point, we know that the contact does not belong the a joined group. We can start the protocol allowing to delete this contact. do { - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } catch let _error { error = _error @@ -1348,8 +1765,8 @@ extension ObvEngine { public func getTrustOriginsOfContactIdentity(with contactCryptoId: ObvCryptoId, ofOwnedIdentyWith ownedCryptoId: ObvCryptoId) throws -> [ObvTrustOrigin] { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } var trustOrigins: [ObvTrustOrigin]! var error: Error? @@ -1368,69 +1785,90 @@ extension ObvEngine { } - /// This method returns the list of the contact's device uids for which a channel exist with the current device uid of the owned identity - public func getAllObliviousChannelsEstablishedWithContactIdentity(with contactCryptoId: ObvCryptoId, ofOwnedIdentyWith ownedCryptoId: ObvCryptoId) throws -> Set { + public func getAllObvContactDevicesOfContact(with contactIdentifier: ObvContactIdentifier) throws -> Set { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw ObvEngine.makeError(message: "Identity Delegate is not set") } - guard let channelDelegate = channelDelegate else { throw ObvEngine.makeError(message: "Channel Delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } - var error: Error? - var contactDevices: Set! - let randomFlowId = FlowIdentifier() - createContextDelegate.performBackgroundTaskAndWait(flowId: randomFlowId) { (obvContext) in - let contactDeviceUids: [UID] - do { - contactDeviceUids = try channelDelegate.getRemoteDeviceUidsOfRemoteIdentity(contactCryptoId.cryptoIdentity, forWhichAConfirmedObliviousChannelExistsWithTheCurrentDeviceOfOwnedIdentity: ownedCryptoId.cryptoIdentity, within: obvContext) - } catch let _error { - error = _error - return - } - contactDevices = Set() - contactDeviceUids.forEach { - if let contactDevice = ObvContactDevice(contactDeviceUid: $0, - contactCryptoIdentity: contactCryptoId.cryptoIdentity, - ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, - identityDelegate: identityDelegate, - within: obvContext) { - contactDevices.insert(contactDevice) + var contactDevices = Set() + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: FlowIdentifier()) { obvContext in + + let allDeviceUids = try identityDelegate.getDeviceUidsOfContactIdentity(contactIdentifier.contactCryptoId.cryptoIdentity, ofOwnedIdentity: contactIdentifier.ownedCryptoId.cryptoIdentity, within: obvContext) + let deviceUidsWithChannel = try channelDelegate.getRemoteDeviceUidsOfRemoteIdentity( + contactIdentifier.contactCryptoId.cryptoIdentity, forWhichAConfirmedObliviousChannelExistsWithTheCurrentDeviceOfOwnedIdentity: contactIdentifier.ownedCryptoId.cryptoIdentity, within: obvContext) + + contactDevices = Set(allDeviceUids.compactMap { deviceUid in + let secureChannelStatus: ObvContactDevice.SecureChannelStatus + if deviceUidsWithChannel.contains(where: { $0 == deviceUid }) { + secureChannelStatus = .created + } else { + secureChannelStatus = .creationInProgress } - } - } - guard error == nil else { - throw error! + return ObvContactDevice(remoteDeviceUid: deviceUid, contactIdentifier: contactIdentifier, secureChannelStatus: secureChannelStatus) + }) + } + return contactDevices + } - - public func updateTrustedIdentityDetailsOfContactIdentity(with contactCryptoId: ObvCryptoId, ofOwnedIdentityWithCryptoId ownedCryptoId: ObvCryptoId, with newTrustedIdentityDetails: ObvIdentityDetails) throws { + + public func updateTrustedIdentityDetailsOfContactIdentity(with contactCryptoId: ObvCryptoId, ofOwnedIdentityWithCryptoId ownedCryptoId: ObvCryptoId, with newTrustedIdentityDetails: ObvIdentityDetails) async throws { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } - let randomFlowId = FlowIdentifier() - var error: Error? - createContextDelegate.performBackgroundTaskAndWait(flowId: randomFlowId) { (obvContext) in - do { - try identityDelegate.updateTrustedIdentityDetailsOfContactIdentity(contactCryptoId.cryptoIdentity, - ofOwnedIdentity: ownedCryptoId.cryptoIdentity, - with: newTrustedIdentityDetails, - within: obvContext) - try obvContext.save(logOnFailure: log) - } catch let _error { - error = _error + let flowId = FlowIdentifier() + let prng = self.prng + let log = self.log + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + + // Trust the details locally + + try identityDelegate.updateTrustedIdentityDetailsOfContactIdentity(contactCryptoId.cryptoIdentity, + ofOwnedIdentity: ownedCryptoId.cryptoIdentity, + with: newTrustedIdentityDetails, + within: obvContext) + + // Since we updated the trusted details with the published details, we can request a trusted details and propagate them to our other owned devices + + let contactIdentityDetailsElements = try identityDelegate.getTrustedIdentityDetailsOfContactIdentity( + contactCryptoId.cryptoIdentity, + ofOwnedIdentity: ownedCryptoId.cryptoIdentity, + within: obvContext).contactIdentityDetailsElements + let serializedIdentityDetailsElements = try contactIdentityDetailsElements.jsonEncode() + let syncAtom = ObvSyncAtom.trustContactDetails(contactCryptoId: contactCryptoId, serializedIdentityDetailsElements: serializedIdentityDetailsElements) + let message = try protocolDelegate.getInitiateSyncAtomMessageForSynchronizationProtocol(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, syncAtom: syncAtom) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + + // Save the context + + try obvContext.save(logOnFailure: log) + + continuation.resume() + + } catch { + continuation.resume(throwing: error) + } } } - guard error == nil else { throw error! } - + } public func unblockContactIdentity(with contactCryptoId: ObvCryptoId, ofOwnedIdentityWithCryptoId ownedCryptoId: ObvCryptoId) throws { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + + let contactIdentifier = ObvContactIdentifier(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) let randomFlowId = FlowIdentifier() try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: randomFlowId) { obvContext in @@ -1440,7 +1878,9 @@ extension ObvEngine { contactIdentity: contactCryptoId.cryptoIdentity, forcefullyTrustedByUser: true, within: obvContext) - try reCreateAllChannelEstablishmentProtocolsWithContactIdentity(with: contactCryptoId.cryptoIdentity, ofOwnedIdentyWith: ownedCryptoId.cryptoIdentity, within: obvContext) + try deleteAllContactDevicesAndChannelsThenPerformContactDeviceDiscovery( + contactIdentifier: contactIdentifier, + within: obvContext) try obvContext.save(logOnFailure: log) } catch { os_log("Could not unblock contact: %{public}@", log: log, type: .fault, error.localizedDescription) @@ -1452,9 +1892,9 @@ extension ObvEngine { public func reblockContactIdentity(with contactCryptoId: ObvCryptoId, ofOwnedIdentityWithCryptoId ownedCryptoId: ObvCryptoId) throws { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } let randomFlowId = FlowIdentifier() try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: randomFlowId) { obvContext in @@ -1476,17 +1916,18 @@ extension ObvEngine { } + /// Starts a ``OneToOneContactInvitationProtocol``. In practice, this is called from a single place within the app (in the `ObvFlowController`) so as to make sure we always perform a simultaneous Keycloak invitation if possible. public func sendOneToOneInvitation(ownedIdentity: ObvCryptoId, contactIdentity: ObvCryptoId) throws { - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let channelDelegate = channelDelegate else { throw ObvEngine.makeError(message: "Channel Delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The createContextDelegate is not set") } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } let message = try protocolDelegate.getInitialMessageForOneToOneContactInvitationProtocol(ownedIdentity: ownedIdentity.cryptoIdentity, contactIdentity: contactIdentity.cryptoIdentity) let flowId = FlowIdentifier() createContextDelegate.performBackgroundTask(flowId: flowId) { [weak self] (obvContext) in guard let _self = self else { return } do { - _ = try channelDelegate.post(message, randomizedWith: _self.prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: _self.prng, within: obvContext) try obvContext.save(logOnFailure: _self.log) } catch { os_log("Could not post initial message for starting OneToOne contact invitation protocol: %{public}@", log: _self.log, type: .fault, error.localizedDescription) @@ -1498,16 +1939,16 @@ extension ObvEngine { public func downgradeOneToOneContact(ownedIdentity: ObvCryptoId, contactIdentity: ObvCryptoId) throws { - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let channelDelegate = channelDelegate else { throw ObvEngine.makeError(message: "Channel Delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The createContextDelegate is not set") } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } let message = try protocolDelegate.getInitialMessageForDowngradingOneToOneContact(ownedIdentity: ownedIdentity.cryptoIdentity, contactIdentity: contactIdentity.cryptoIdentity) let flowId = FlowIdentifier() createContextDelegate.performBackgroundTask(flowId: flowId) { [weak self] (obvContext) in guard let _self = self else { return } do { - _ = try channelDelegate.post(message, randomizedWith: _self.prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: _self.prng, within: obvContext) try obvContext.save(logOnFailure: _self.log) } catch { os_log("Could not post initial message for starting OneToOne contact invitation protocol: %{public}@", log: _self.log, type: .fault, error.localizedDescription) @@ -1520,9 +1961,9 @@ extension ObvEngine { public func requestOneStatusSyncRequest(ownedIdentity: ObvCryptoId, contactsToSync: Set) async throws { - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let channelDelegate = channelDelegate else { throw ObvEngine.makeError(message: "Channel Delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The createContextDelegate is not set") } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } let contactsToSync = Set(contactsToSync.map { $0.cryptoIdentity }) @@ -1531,7 +1972,7 @@ extension ObvEngine { let flowId = FlowIdentifier() do { try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) continuation.resume() return @@ -1553,8 +1994,8 @@ extension ObvEngine { public func getCapabilitiesOfAllContactsOfOwnedIdentity(_ ownedCryptoId: ObvCryptoId) throws -> [ObvCryptoId: Set] { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } var results = [ObvCryptoId: Set]() let randomFlowId = FlowIdentifier() @@ -1571,10 +2012,10 @@ extension ObvEngine { public func setCapabilitiesOfCurrentDeviceForAllOwnedIdentities(_ newObvCapabilities: Set) throws { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw ObvEngine.makeError(message: "Protocol Delegate is not set") } - guard let channelDelegate = channelDelegate else { throw ObvEngine.makeError(message: "Channel is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } let log = self.log let prng = self.prng @@ -1587,7 +2028,7 @@ extension ObvEngine { let message = try protocolDelegate.getInitialMessageForAddingOwnCapabilities( ownedIdentity: ownedIdentity, newOwnCapabilities: newObvCapabilities) - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) } try obvContext.save(logOnFailure: log) } catch { @@ -1603,8 +2044,8 @@ extension ObvEngine { public func getCapabilitiesOfOwnedIdentity(_ ownedCryptoId: ObvCryptoId) throws -> Set? { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } var capabilities: Set? = nil let randomFlowId = FlowIdentifier() @@ -1623,7 +2064,7 @@ extension ObvEngine { extension ObvEngine { public func deleteDialog(with uuid: UUID) throws { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } let randomFlowId = FlowIdentifier() try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: randomFlowId) { (obvContext) in try deleteDialog(with: uuid, within: obvContext) @@ -1633,8 +2074,8 @@ extension ObvEngine { public func abortProtocol(associatedTo obvDialog: ObvDialog) throws { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } // Like un cochon @@ -1664,7 +2105,7 @@ extension ObvEngine { /// When bootstraping the app, we want to resync the PersistedInvitations with the persisted dialogs of the engine. This methods allows to get all the dialogs. public func getAllDialogsWithinEngine() async throws -> [ObvDialog] { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } let randomFlowId = FlowIdentifier() return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<[ObvDialog], Error>) in do { @@ -1680,38 +2121,43 @@ extension ObvEngine { } - public func respondTo(_ obvDialog: ObvDialog) { + public func respondTo(_ obvDialog: ObvDialog) async throws { - assert(!Thread.isMainThread) - - guard let createContextDelegate = createContextDelegate else { assertionFailure(); return } - guard let channelDelegate = channelDelegate else { assertionFailure(); return } - guard let flowDelegate = flowDelegate else { assertionFailure(); return } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } // Responding to an ObvDialog is a critical long-running task, so we always extend the app runtime to make sure that responding to a dialog (and all the resulting network exchanges) eventually finish, even if the app moves to the background between the call to this method and the moment the data is actually sent to the server. guard let flowId = try? flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() else { return } + let log = self.log + let prng = self.prng - createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { [weak self] (obvContext) in - guard let _self = self else { return } - do { - guard let encodedResponse = obvDialog.encodedResponse else { throw Self.makeError(message: "Could not obtain encoded response") } - let timestamp = Date() - let channelDialogResponseMessageToSend = ObvChannelDialogResponseMessageToSend(uuid: obvDialog.uuid, - toOwnedIdentity: obvDialog.ownedCryptoId.cryptoIdentity, - timestamp: timestamp, - encodedUserDialogResponse: encodedResponse, - encodedElements: obvDialog.encodedElements) + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in do { - _ = try channelDelegate.post(channelDialogResponseMessageToSend, randomizedWith: _self.prng, within: obvContext) - try obvContext.save(logOnFailure: _self.log) + guard let encodedResponse = obvDialog.encodedResponse else { + let error = Self.makeError(message: "Could not obtain encoded response") + continuation.resume(throwing: error) + return + } + let timestamp = Date() + let channelDialogResponseMessageToSend = ObvChannelDialogResponseMessageToSend(uuid: obvDialog.uuid, + toOwnedIdentity: obvDialog.ownedCryptoId.cryptoIdentity, + timestamp: timestamp, + encodedUserDialogResponse: encodedResponse, + encodedElements: obvDialog.encodedElements) + _ = try channelDelegate.postChannelMessage(channelDialogResponseMessageToSend, randomizedWith: prng, within: obvContext) + try obvContext.save(logOnFailure: log) + continuation.resume() } catch { - os_log("Could not respond to obvDialog (1)", log: _self.log, type: .fault) + os_log("Could not respond to obvDialog", log: log, type: .fault) + let error = Self.makeError(message: "Could not respond to obvDialog") + continuation.resume(throwing: error) } - } catch { - os_log("Could not respond to obvDialog (2)", log: _self.log, type: .fault) } } + } } @@ -1723,11 +2169,11 @@ extension ObvEngine { public func startTrustEstablishmentProtocolOfRemoteIdentity(with remoteCryptoId: ObvCryptoId, withFullDisplayName remoteFullDisplayName: String, forOwnedIdentyWith ownedCryptoId: ObvCryptoId) throws { - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let log = self.log @@ -1758,7 +2204,7 @@ extension ObvEngine { usingProtocolInstanceUid: protocolInstanceUid) createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in do { - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } catch let _error { error = _error @@ -1774,79 +2220,38 @@ extension ObvEngine { assert(!Thread.isMainThread) - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } let log = self.log - var contact: ObvContactIdentity! - var otherContacts = Set() - var ownedIdentity: ObvOwnedIdentity! - do { - var error: Error? - let randomFlowId = FlowIdentifier() - createContextDelegate.performBackgroundTaskAndWait(flowId: randomFlowId) { (obvContext) in - guard let _contact = ObvContactIdentity(contactCryptoIdentity: remoteCryptoId.cryptoIdentity, - ownedCryptoIdentity: ownedId.cryptoIdentity, - identityDelegate: identityDelegate, within: obvContext) - else { - error = ObvEngine.makeError(message: "Could not find contact identity. We may be trying to start a ContactMutualIntroductionProtocol between two contacts of distinct owned identities.") - return - } - contact = _contact - ownedIdentity = _contact.ownedIdentity - for cryptoId in remoteCryptoIds { - guard let _otherContact = ObvContactIdentity(contactCryptoIdentity: cryptoId.cryptoIdentity, - ownedCryptoIdentity: ownedId.cryptoIdentity, - identityDelegate: identityDelegate, within: obvContext) - else { - error = ObvEngine.makeError(message: "Could not find contact identity. We may be trying to start a ContactMutualIntroductionProtocol between two contacts of distinct owned identities.") - return - } - guard _otherContact.ownedIdentity == ownedIdentity else { - error = ObvEngine.makeError(message: "All contacts should belong to the same owned identity") - return - } - otherContacts.insert(_otherContact) - } - - } - guard error == nil else { throw error! } - } - // Starting a ContactMutualIntroductionProtocol is a critical long-running task, so we always extend the app runtime to make sure that we can perform the required tasks, even if the app moves to the background between the call to this method and the moment the data is actually sent to the server. let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() var messages = [ObvChannelProtocolMessageToSend]() - for otherContact in otherContacts { + for otherRemoteCryptoId in remoteCryptoIds { let protocolInstanceUid = UID.gen(with: prng) - let message = try protocolDelegate.getInitialMessageForContactMutualIntroductionProtocol(of: contact.cryptoId.cryptoIdentity, - withContactIdentityCoreDetails: contact.currentIdentityDetails.coreDetails, - with: otherContact.cryptoId.cryptoIdentity, - withOtherContactIdentityCoreDetails: otherContact.currentIdentityDetails.coreDetails, - byOwnedIdentity: ownedIdentity.cryptoId.cryptoIdentity, + let message = try protocolDelegate.getInitialMessageForContactMutualIntroductionProtocol(of: remoteCryptoId.cryptoIdentity, + with: otherRemoteCryptoId.cryptoIdentity, + byOwnedIdentity: ownedId.cryptoIdentity, usingProtocolInstanceUid: protocolInstanceUid) messages.append(message) } - var error: Error? - createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { (obvContext) in do { for message in messages { - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) } try obvContext.save(logOnFailure: log) - } catch let _error { - error = _error + } catch { + assertionFailure(error.localizedDescription) + throw error } } - guard error == nil else { - throw error! - } } @@ -1855,41 +2260,149 @@ extension ObvEngine { assert(!Thread.isMainThread) - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let message = try protocolDelegate.getInitialMessageForIdentityDetailsPublicationProtocol(ownedIdentity: ownedIdentity.cryptoIdentity, publishedIdentityDetailsVersion: version) guard try identityDelegate.isOwned(ownedIdentity.cryptoIdentity, within: obvContext) else { throw makeError(message: "The identity is not owned") } - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + + } + + + private func startOwnedDeviceManagementProtocolForSettingOwnedDeviceName(ownedCryptoId: ObvCryptoId, ownedDeviceUID: UID, ownedDeviceName: String, within obvContext: ObvContext) throws { + + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + + let request = ObvOwnedDeviceManagementRequest.setOwnedDeviceName(ownedDeviceUID: ownedDeviceUID, ownedDeviceName: ownedDeviceName) + let message = try protocolDelegate.getInitiateOwnedDeviceManagementMessage(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, request: request) + + guard try identityDelegate.isOwned(ownedCryptoId.cryptoIdentity, within: obvContext) else { throw makeError(message: "The identity is not owned") } + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + + } + + + private func startOwnedDeviceManagementProtocolForDeactivatingOtherOwnedDevice(ownedCryptoId: ObvCryptoId, ownedDeviceUID: UID, within obvContext: ObvContext) throws { + + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + + let request = ObvOwnedDeviceManagementRequest.deactivateOtherOwnedDevice(ownedDeviceUID: ownedDeviceUID) + let message = try protocolDelegate.getInitiateOwnedDeviceManagementMessage(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, request: request) + + guard try identityDelegate.isOwned(ownedCryptoId.cryptoIdentity, within: obvContext) else { throw makeError(message: "The identity is not owned") } + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) } + private func startOwnedDeviceManagementProtocolForSettingUnexpiringDevice(ownedCryptoId: ObvCryptoId, ownedDeviceUID: UID, within obvContext: ObvContext) throws { + + guard let channelDelegate else { assertionFailure(); throw ObvError.channelDelegateIsNil } + guard let protocolDelegate else { assertionFailure(); throw ObvError.protocolDelegateIsNil } + guard let identityDelegate else { assertionFailure(); throw ObvError.identityDelegateIsNil } + + let request = ObvOwnedDeviceManagementRequest.setUnexpiringDevice(ownedDeviceUID: ownedDeviceUID) + let message = try protocolDelegate.getInitiateOwnedDeviceManagementMessage(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, request: request) + + guard try identityDelegate.isOwned(ownedCryptoId.cryptoIdentity, within: obvContext) else { throw makeError(message: "The identity is not owned") } + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + + } + + // This protocol is started when a group owner (an owned identity) publishes (latest) details for a (owned) contact group private func startOwnedGroupLatestDetailsPublicationProtocol(for groupStructure: GroupStructure, within obvContext: ObvContext) throws { - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } guard groupStructure.groupType == .owned else { throw Self.makeError(message: "Could not start owned group latest details publication protocol as the group type is not owned") } let message = try protocolDelegate.getOwnedGroupMembersChangedTriggerMessageForGroupManagementProtocol(groupUid: groupStructure.groupUid, ownedIdentity: groupStructure.groupOwner, within: obvContext) - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + + public func requestChangeOfOwnedDeviceName(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data, ownedDeviceName: String) async throws { + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + let log = self.log + guard let ownedDeviceUID = UID(uid: deviceIdentifier) else { assertionFailure(); throw Self.makeError(message: "Could not decode device identifier") } + try await withCheckedThrowingContinuation { continuation in + do { + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: FlowIdentifier()) { obvContext in + try startOwnedDeviceManagementProtocolForSettingOwnedDeviceName( + ownedCryptoId: ownedCryptoId, + ownedDeviceUID: ownedDeviceUID, + ownedDeviceName: ownedDeviceName, + within: obvContext) + try obvContext.save(logOnFailure: log) + continuation.resume() + } + } catch { + continuation.resume(throwing: error) + } + } + } + + + public func requestDeactivationOfOtherOwnedDevice(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data) async throws { + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + let log = self.log + guard let ownedDeviceUID = UID(uid: deviceIdentifier) else { assertionFailure(); throw Self.makeError(message: "Could not decode device identifier") } + try await withCheckedThrowingContinuation { continuation in + do { + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: FlowIdentifier()) { obvContext in + try startOwnedDeviceManagementProtocolForDeactivatingOtherOwnedDevice( + ownedCryptoId: ownedCryptoId, + ownedDeviceUID: ownedDeviceUID, + within: obvContext) + try obvContext.save(logOnFailure: log) + continuation.resume() + } + } catch { + continuation.resume(throwing: error) + } + } } - /// This is similar to reCreateAllChannelEstablishmentProtocolsWithContactIdentity, except that we only delete the devices for which no channel is established yet. No chanell gets deleted here. + public func requestSettingUnexpiringDevice(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data) async throws { + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + let log = self.log + guard let ownedDeviceUID = UID(uid: deviceIdentifier) else { assertionFailure(); throw Self.makeError(message: "Could not decode device identifier") } + try await withCheckedThrowingContinuation { continuation in + do { + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: FlowIdentifier()) { obvContext in + try startOwnedDeviceManagementProtocolForSettingUnexpiringDevice( + ownedCryptoId: ownedCryptoId, + ownedDeviceUID: ownedDeviceUID, + within: obvContext) + try obvContext.save(logOnFailure: log) + continuation.resume() + } + } catch { + continuation.resume(throwing: error) + } + } + } + + + /// This is similar to ``ObvEngine.deleteAllContactDevicesAndChannelsThenPerformContactDeviceDiscovery(with:ofOwnedIdentyWith:)``, except that we only delete the devices for which no channel is established yet. No chanel gets deleted here. public func restartAllOngoingChannelEstablishmentProtocolsWithContactIdentity(with contactCryptoId: ObvCryptoId, ofOwnedIdentyWith ownedCryptoId: ObvCryptoId) throws { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() @@ -1922,23 +2435,9 @@ extension ObvEngine { } // We then launch a device discovery - let message: ObvChannelProtocolMessageToSend - do { - message = try protocolDelegate.getInitialMessageForDeviceDiscoveryForContactIdentityProtocol(ownedIdentity: ownedCryptoId.cryptoIdentity, contactIdentity: contactCryptoId.cryptoIdentity) - } catch let error { - os_log("Could not get initial message for device discovery for contact identity protocol", log: log, type: .fault) - assertionFailure() - throw error - } - do { - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) - } catch let error { - os_log("Could not post a local protocol message allowing to start a device discovery for a contact", log: log, type: .fault) - assertionFailure() - throw error - } - + try performContactDeviceDiscoveryProtocol(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, contactCryptoIdentity: contactCryptoId.cryptoIdentity, within: obvContext) + do { try obvContext.save(logOnFailure: log) } catch let error { @@ -1952,19 +2451,21 @@ extension ObvEngine { } - /// This method first delete all channels and device uids with the contact identity. It then performs a device discovery. This enough, since the device discovery will eventually add devices and thus, new channels will be created. - public func reCreateAllChannelEstablishmentProtocolsWithContactIdentity(with contactCryptoId: ObvCryptoId, ofOwnedIdentyWith ownedCryptoId: ObvCryptoId) throws { + /// This method first delete all channels and device uids with the contact identity. It then performs a device discovery. This is enough, since the device discovery will eventually add devices and thus, new channels will be created. + public func deleteAllContactDevicesAndChannelsThenPerformContactDeviceDiscovery(contactIdentifier: ObvContactIdentifier) throws { assert(!Thread.isMainThread) - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { (obvContext) in - try reCreateAllChannelEstablishmentProtocolsWithContactIdentity(with: contactCryptoId.cryptoIdentity, ofOwnedIdentyWith: ownedCryptoId.cryptoIdentity, within: obvContext) + try deleteAllContactDevicesAndChannelsThenPerformContactDeviceDiscovery( + contactIdentifier: contactIdentifier, + within: obvContext) do { try obvContext.save(logOnFailure: log) @@ -1978,15 +2479,17 @@ extension ObvEngine { } - - private func reCreateAllChannelEstablishmentProtocolsWithContactIdentity(with contactCryptoIdentity: ObvCryptoIdentity, ofOwnedIdentyWith ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { + + private func deleteAllContactDevicesAndChannelsThenPerformContactDeviceDiscovery(contactIdentifier: ObvContactIdentifier, within obvContext: ObvContext) throws { assert(!Thread.isMainThread) - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + let ownedCryptoIdentity = contactIdentifier.ownedCryptoId.cryptoIdentity + let contactCryptoIdentity = contactIdentifier.contactCryptoId.cryptoIdentity + try obvContext.performAndWaitOrThrow { // We delete all oblivious channels with this contact @@ -2008,31 +2511,106 @@ extension ObvEngine { } // We then launch a device discovery - let message: ObvChannelProtocolMessageToSend + + try performContactDeviceDiscoveryProtocol(ownedCryptoIdentity: ownedCryptoIdentity, contactCryptoIdentity: contactCryptoIdentity, within: obvContext) + + } + + } + + + public func recreateChannelWithContactDevice(contactIdentifier: ObvContactIdentifier, contactDeviceIdentifier: Data) throws { + + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + + let ownedCryptoIdentity = contactIdentifier.ownedCryptoId.cryptoIdentity + let contactCryptoIdentity = contactIdentifier.contactCryptoId.cryptoIdentity + guard let contactDeviceUid = UID(uid: contactDeviceIdentifier) else { throw Self.makeError(message: "Could not decode device identifier") } + + os_log("🛟 [%{public}@] Since the app requested the re-creation of the channel with a device of the contact, we start a channel creation now", log: log, type: .info, contactCryptoIdentity.debugDescription) + + let msg: ObvChannelProtocolMessageToSend + do { + msg = try protocolDelegate.getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity: ownedCryptoIdentity, andTheDeviceUid: contactDeviceUid, ofTheContactIdentity: contactCryptoIdentity) + } catch { + os_log("Could get initial message for starting channel creation with contact device protocol", log: log, type: .fault) + assertionFailure() + return + } + + let flowId = FlowIdentifier() + let prng = self.prng + let log = self.log + + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in + do { - message = try protocolDelegate.getInitialMessageForDeviceDiscoveryForContactIdentityProtocol(ownedIdentity: ownedCryptoIdentity, contactIdentity: contactCryptoIdentity) - } catch let error { - os_log("Could not get initial message for device discovery for contact identity protocol", log: log, type: .fault) - assertionFailure() - throw error + _ = try channelDelegate.postChannelMessage(msg, randomizedWith: prng, within: obvContext) + } catch { + os_log("Could not start channel creation with contact device protocol", log: log, type: .fault) + throw Self.makeError(message: "Could not start channel creation with contact device protocol") } do { - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) - } catch let error { - os_log("Could not post a local protocol message allowing to start a device discovery for a contact", log: log, type: .fault) - assertionFailure() - throw error + try obvContext.save(logOnFailure: log) + } catch { + os_log("Could not perform channel creation with contact device protocol: %{public}@", log: log, type: .fault, error.localizedDescription) + throw Self.makeError(message: "Could not perform channel creation with contact device protocol: \(error.localizedDescription)") } - + + } + + } + + + public func performContactDeviceDiscovery(contactIdentifier: ObvContactIdentifier) throws { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + + let ownedCryptoIdentity = contactIdentifier.ownedCryptoId.cryptoIdentity + let contactCryptoIdentity = contactIdentifier.contactCryptoId.cryptoIdentity + let log = self.log + let flowId = FlowIdentifier() + + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { [weak self] obvContext in + try self?.performContactDeviceDiscoveryProtocol(ownedCryptoIdentity: ownedCryptoIdentity, contactCryptoIdentity: contactCryptoIdentity, within: obvContext) + try obvContext.save(logOnFailure: log) + } + + } + + + private func performContactDeviceDiscoveryProtocol(ownedCryptoIdentity: ObvCryptoIdentity, contactCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { + + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + + // We then launch a device discovery + let message: ObvChannelProtocolMessageToSend + do { + message = try protocolDelegate.getInitialMessageForContactDeviceDiscoveryProtocol(ownedIdentity: ownedCryptoIdentity, contactIdentity: contactCryptoIdentity) + } catch let error { + os_log("Could not get initial message for device discovery for contact identity protocol", log: log, type: .fault) + assertionFailure() + throw error + } + + do { + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } catch let error { + os_log("Could not post a local protocol message allowing to start a device discovery for a contact", log: log, type: .fault) + assertionFailure() + throw error } - + } public func computeMutualScanUrl(remoteIdentity: Data, ownedCryptoId: ObvCryptoId) throws -> ObvMutualScanUrl { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } guard let solveChallengeDelegate = solveChallengeDelegate else { throw makeError(message: "The solve challenge delegate is not set") } guard let remoteCryptoId = ObvCryptoIdentity(from: remoteIdentity) else { @@ -2068,9 +2646,9 @@ extension ObvEngine { public func startTrustEstablishmentWithMutualScanProtocol(ownedIdentity: ObvCryptoId, mutualScanUrl: ObvMutualScanUrl) throws { - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } // We then launch a device discovery let message: ObvChannelProtocolMessageToSend @@ -2086,7 +2664,7 @@ extension ObvEngine { try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: FlowIdentifier()) { obvContext in do { - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) } catch let error { os_log("Could not post a local protocol message allowing to start a device discovery for a contact", log: log, type: .fault) assertionFailure() @@ -2115,11 +2693,11 @@ extension ObvEngine { // The photoURL typically points to a photo stored in a cache directory managed by the app. // When requesting the protocol message to the protocol manager, it creates a local copy of this photo that it will manage. - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let log = self.log @@ -2152,7 +2730,7 @@ extension ObvEngine { } } - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } @@ -2161,8 +2739,8 @@ extension ObvEngine { public func getAllObvGroupV2OfOwnedIdentity(with ownedCryptoId: ObvCryptoId) throws -> Set { - guard let createContextDelegate = self.createContextDelegate else { throw makeError(message: "The create context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } var groups = Set() let randomFlowId = FlowIdentifier() try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: randomFlowId) { obvContext in @@ -2178,11 +2756,11 @@ extension ObvEngine { guard !changeset.isEmpty else { return } - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } guard let encodedGroupIdentifier = ObvEncoded(withRawData: groupIdentifier), let groupIdentifier = ObvGroupV2.Identifier(encodedGroupIdentifier) else { @@ -2222,31 +2800,61 @@ extension ObvEngine { // If we reach this point, we can update the group - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } } - public func replaceTrustedDetailsByPublishedDetailsOfGroupV2(ownedCryptoId: ObvCryptoId, groupIdentifier: Data) throws { + public func replaceTrustedDetailsByPublishedDetailsOfGroupV2(ownedCryptoId: ObvCryptoId, groupIdentifier: Data) async throws { - guard let createContextDelegate = self.createContextDelegate else { throw makeError(message: "The create context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } guard let encodedGroupIdentifier = ObvEncoded(withRawData: groupIdentifier), - let groupIdentifier = ObvGroupV2.Identifier(encodedGroupIdentifier) + let obvGroupIdentifier = ObvGroupV2.Identifier(encodedGroupIdentifier) else { assertionFailure() throw Self.makeError(message: "Could not parse group identifier") } - let randomFlowId = FlowIdentifier() - try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: randomFlowId) { obvContext in - try identityDelegate.replaceTrustedDetailsByPublishedDetailsOfGroupV2(withGroupWithIdentifier: GroupV2.Identifier(obvGroupV2Identifier: groupIdentifier), - of: ownedCryptoId.cryptoIdentity, - within: obvContext) - try obvContext.save(logOnFailure: log) + let flowId = FlowIdentifier() + let log = self.log + let prng = self.prng + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + + // Trust de details locally + + try identityDelegate.replaceTrustedDetailsByPublishedDetailsOfGroupV2( + withGroupWithIdentifier: GroupV2.Identifier(obvGroupV2Identifier: obvGroupIdentifier), + of: ownedCryptoId.cryptoIdentity, + within: obvContext) + + // Propagate to our other owned devices + + let groupVersion = try identityDelegate.getVersionOfGroupV2( + withGroupWithIdentifier: GroupV2.Identifier(obvGroupV2Identifier: obvGroupIdentifier), + of: ownedCryptoId.cryptoIdentity, + within: obvContext) + let syncAtom = ObvSyncAtom.trustGroupV2Details(groupIdentifier: groupIdentifier, version: groupVersion) + let message = try protocolDelegate.getInitiateSyncAtomMessageForSynchronizationProtocol(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, syncAtom: syncAtom) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + + // Save the context + + try obvContext.save(logOnFailure: log) + + continuation.resume() + } catch { + continuation.resume(throwing: error) + } + } } } @@ -2254,10 +2862,10 @@ extension ObvEngine { public func leaveGroupV2(ownedCryptoId: ObvCryptoId, groupIdentifier: Data) throws { - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } let log = self.log @@ -2275,7 +2883,7 @@ extension ObvEngine { flowId: flowId) try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } @@ -2284,10 +2892,10 @@ extension ObvEngine { public func performReDownloadOfGroupV2(ownedCryptoId: ObvCryptoId, groupIdentifier: Data) throws { - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } let log = self.log @@ -2300,13 +2908,164 @@ extension ObvEngine { let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() - let message = try protocolDelegate.getInitiateGroupReDownloadMessageForGroupV2Protocol(ownedIdentity: ownedCryptoId.cryptoIdentity, - groupIdentifier: GroupV2.Identifier(obvGroupV2Identifier: groupIdentifier), - flowId: flowId) + let message = try protocolDelegate.getInitiateGroupReDownloadMessageForGroupV2Protocol( + ownedIdentity: ownedCryptoId.cryptoIdentity, + groupIdentifier: GroupV2.Identifier(obvGroupV2Identifier: groupIdentifier), + flowId: flowId) try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + try obvContext.save(logOnFailure: log) + } + + } + + + /// Start a owned device discovery protocol for the specified owned identity. + public func performOwnedDeviceDiscovery(ownedCryptoId: ObvCryptoId) async throws { + + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + + let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() + let log = self.log + + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { [weak self] obvContext in + try self?.performOwnedDeviceDiscovery(ownedCryptoId: ownedCryptoId.cryptoIdentity, within: obvContext) try obvContext.save(logOnFailure: log) } + + } + + + /// Start a owned device discovery protocol for the specified owned identity and return the server answer. This is used, .e.g, when reactivating the current device in order to show the list of other owned devices to the user. + public func performOwnedDeviceDiscoveryNow(ownedCryptoId: ObvCryptoId) async throws -> ObvOwnedDeviceDiscoveryResult { + + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + + let flowId = FlowIdentifier() + + let encryptedOwnedDeviceDiscoveryResult = try await networkFetchDelegate.performOwnedDeviceDiscoveryNow(ownedCryptoId: ownedCryptoId.cryptoIdentity, flowId: FlowIdentifier()) + + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + let ownedDeviceDiscoveryResult = try identityDelegate.decryptEncryptedOwnedDeviceDiscoveryResult(encryptedOwnedDeviceDiscoveryResult, forOwnedCryptoId: ownedCryptoId.cryptoIdentity, within: obvContext) + let obvOwnedDeviceDiscoveryResult = ownedDeviceDiscoveryResult.obvOwnedDeviceDiscoveryResult + continuation.resume(returning: obvOwnedDeviceDiscoveryResult) + } catch { + continuation.resume(throwing: error) + } + } + } + + } + + + private func performOwnedDeviceDiscovery(ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws { + + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + + let message = try protocolDelegate.getInitiateOwnedDeviceDiscoveryMessage( + ownedCryptoIdentity: ownedCryptoId) + + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + + } + + + /// This method first delete all channels and other owned device. It then performs an owned device discovery. This is enough, since the owned device discovery will eventually add devices and thus, new channels will be created. + public func deleteAllOtherOwnedDevicesAndChannelsThenPerformOwnedDeviceDiscovery(ownedCryptoId: ObvCryptoId) async throws { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + + let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() + + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in + + try deleteAllOtherOwnedDevicesAndChannelsThenPerformOwnedDeviceDiscovery( + ownedCryptoId: ownedCryptoId.cryptoIdentity, + within: obvContext) + + do { + try obvContext.save(logOnFailure: log) + } catch let error { + os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + throw error + } + + } + + } + + + private func deleteAllOtherOwnedDevicesAndChannelsThenPerformOwnedDeviceDiscovery(ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws { + + assert(!Thread.isMainThread) + + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + + try obvContext.performAndWaitOrThrow { + + let currentDeviceUID = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedCryptoId, within: obvContext) + let otherOwnedDeviceUIDs = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedCryptoId, within: obvContext) + + // We delete all oblivious channels with this contact + do { + try otherOwnedDeviceUIDs.forEach { otherOwnedDeviceUID in + try channelDelegate.deleteObliviousChannelBetweenCurentDeviceWithUid(currentDeviceUid: currentDeviceUID, andTheRemoteDeviceWithUid: otherOwnedDeviceUID, ofRemoteIdentity: ownedCryptoId, within: obvContext) + } + } catch { + os_log("Could not recreate all channels with contact. We could not delete previous channels.", log: log, type: .fault) + assertionFailure() + throw error + } + + // We then delete all previous contact devices + do { + try otherOwnedDeviceUIDs.forEach { otherOwnedDeviceUID in + try identityDelegate.removeOtherDeviceForOwnedIdentity(ownedCryptoId, otherDeviceUid: otherOwnedDeviceUID, within: obvContext) + } + } catch let error { + os_log("Could not recreate all channels with contact. We could not delete previous devices.", log: log, type: .fault) + assertionFailure() + throw error + } + + // We then launch a device discovery + + try performOwnedDeviceDiscovery(ownedCryptoId: ownedCryptoId, within: obvContext) + + } + + } + + + + + public func performOwnedDeviceDiscoveryForAllOwnedIdentities() async throws { + try await performOwnedDeviceDiscoveryForAllOwnedIdentities(flowId: FlowIdentifier()) + } + + /// Start a owned device discovery protocol for all existing owned identities. + func performOwnedDeviceDiscoveryForAllOwnedIdentities(flowId: FlowIdentifier) async throws { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + + var allOwnedIdentities = Set() + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in + allOwnedIdentities = try identityDelegate.getOwnedIdentities(within: obvContext) + } + + for ownedIdentity in allOwnedIdentities { + try await performOwnedDeviceDiscovery(ownedCryptoId: ObvCryptoId(cryptoIdentity: ownedIdentity)) + } } @@ -2315,10 +3074,10 @@ extension ObvEngine { assert(!Thread.isMainThread) - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } let log = self.log @@ -2335,7 +3094,7 @@ extension ObvEngine { groupIdentifier: GroupV2.Identifier(obvGroupV2Identifier: groupIdentifier), flowId: flowId) try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } @@ -2352,10 +3111,10 @@ extension ObvEngine { assert(!Thread.isMainThread) - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } let log = self.log @@ -2373,7 +3132,7 @@ extension ObvEngine { keycloakCurrentTimestamp: keycloakCurrentTimestamp, flowId: flowId) try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } @@ -2396,11 +3155,11 @@ extension ObvEngine { guard !groupMembers.isEmpty else { return } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let log = self.log @@ -2433,7 +3192,7 @@ extension ObvEngine { var error: Error? createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in do { - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } catch let _error { error = _error @@ -2444,16 +3203,48 @@ extension ObvEngine { } } + + + public func disbandGroupV1(groupUid: UID, ownedCryptoId: ObvCryptoId) async throws { + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() + try await postDisbandGroupMessageForGroupManagementProtocol(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, groupUid: groupUid, flowId: flowId) + } + + + private func postDisbandGroupMessageForGroupManagementProtocol(ownedCryptoIdentity: ObvCryptoIdentity, groupUid: UID, flowId: FlowIdentifier) async throws { + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + let log = self.log + let prng = self.prng + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + let message = try protocolDelegate.getDisbandGroupMessageForGroupManagementProtocol( + groupUid: groupUid, + ownedIdentity: ownedCryptoIdentity, + within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + try obvContext.save(logOnFailure: log) + continuation.resume() + } catch { + assertionFailure() + continuation.resume(throwing: error) + } + } + } + } public func inviteContactsToGroupOwned(groupUid: UID, ownedCryptoId: ObvCryptoId, newGroupMembers: Set) throws { guard !newGroupMembers.isEmpty else { return } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } let log = self.log @@ -2469,7 +3260,7 @@ extension ObvEngine { ownedIdentity: ownedCryptoId.cryptoIdentity, newGroupMembers: newMembersCryptoIdentities, within: obvContext) - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } catch let _error { error = _error @@ -2486,11 +3277,11 @@ extension ObvEngine { let newGroupMembers = Set([pendingGroupMember]) - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let log = self.log @@ -2514,7 +3305,7 @@ extension ObvEngine { ownedIdentity: ownedCryptoId.cryptoIdentity, newGroupMembers: newMembersCryptoIdentities, within: obvContext) - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } catch let _error { error = _error @@ -2532,10 +3323,10 @@ extension ObvEngine { guard !removedGroupMembers.isEmpty else { return } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() @@ -2550,7 +3341,7 @@ extension ObvEngine { ownedIdentity: ownedCryptoId.cryptoIdentity, removedGroupMembers: removedMembersCryptoIdentities, within: obvContext) - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } catch let _error { error = _error @@ -2565,8 +3356,8 @@ extension ObvEngine { public func getAllContactGroupsForOwnedIdentity(with ownedCryptoId: ObvCryptoId) throws -> Set { - guard let createContextDelegate = self.createContextDelegate else { throw makeError(message: "The create context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } var obvContactGroups: Set! var error: Error? @@ -2596,8 +3387,8 @@ extension ObvEngine { public func getContactGroupOwned(groupUid: UID, ownedCryptoId: ObvCryptoId) throws -> ObvContactGroup { - guard let createContextDelegate = self.createContextDelegate else { throw makeError(message: "The create context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } var obvContactGroup: ObvContactGroup! var error: Error? @@ -2628,8 +3419,8 @@ extension ObvEngine { public func getContactGroupJoined(groupUid: UID, groupOwner: ObvCryptoId, ownedCryptoId: ObvCryptoId) throws -> ObvContactGroup { - guard let createContextDelegate = self.createContextDelegate else { throw makeError(message: "The create context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } var obvContactGroup: ObvContactGroup! var error: Error? @@ -2660,8 +3451,8 @@ extension ObvEngine { public func updateLatestDetailsOfOwnedContactGroup(using newGroupDetails: ObvGroupDetails, ownedCryptoId: ObvCryptoId, groupUid: UID) throws { - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } let randomFlowId = FlowIdentifier() try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: randomFlowId) { (obvContext) in @@ -2698,8 +3489,8 @@ extension ObvEngine { public func discardLatestDetailsOfOwnedContactGroup(ownedCryptoId: ObvCryptoId, groupUid: UID) throws { - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } do { var error: Error? @@ -2726,9 +3517,9 @@ extension ObvEngine { public func publishLatestDetailsOfOwnedContactGroup(ownedCryptoId: ObvCryptoId, groupUid: UID) throws { - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { (obvContext) in @@ -2747,59 +3538,66 @@ extension ObvEngine { } - public func trustPublishedDetailsOfJoinedContactGroup(ownedCryptoId: ObvCryptoId, groupUid: UID, groupOwner: ObvCryptoId) throws { + public func trustPublishedDetailsOfJoinedContactGroup(ownedCryptoId: ObvCryptoId, groupUid: UID, groupOwner: ObvCryptoId) async throws { - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } - do { - var error: Error? - let randomFlowId = FlowIdentifier() - createContextDelegate.performBackgroundTaskAndWait(flowId: randomFlowId) { (obvContext) in + let flowId = FlowIdentifier() + let log = self.log + let prng = self.prng + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in do { + + // Trust the published details locally + guard let groupStructure = try identityDelegate.getGroupJoinedStructure(ownedIdentity: ownedCryptoId.cryptoIdentity, groupUid: groupUid, groupOwner: groupOwner.cryptoIdentity, within: obvContext) else { throw Self.makeError(message: "Could not trust published details of joined contact group as we could not get the group joined structure") } + guard groupStructure.groupType == .joined else { throw Self.makeError(message: "Could not trust published details of joined contact group as the group type is not .joined") } + try identityDelegate.trustPublishedDetailsOfContactGroupJoined(ownedIdentity: ownedCryptoId.cryptoIdentity, groupUid: groupUid, groupOwner: groupOwner.cryptoIdentity, within: obvContext) + + // Propagate to other owned devices + + let groupDetailsElements = try identityDelegate.getGroupJoinedInformationAndPublishedPhoto( + ownedIdentity: ownedCryptoId.cryptoIdentity, + groupUid: groupUid, + groupOwner: groupOwner.cryptoIdentity, + within: obvContext).groupDetailsElementsWithPhoto.groupDetailsElements + let serializedGroupDetailsElements = try groupDetailsElements.jsonEncode() + let syncAtom = ObvSyncAtom.trustGroupV1Details(groupOwner: groupOwner, groupUid: groupUid, serializedGroupDetailsElements: serializedGroupDetailsElements) + let message = try protocolDelegate.getInitiateSyncAtomMessageForSynchronizationProtocol(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, syncAtom: syncAtom) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + + // Save the context + try obvContext.save(logOnFailure: log) - } catch let _error { - error = _error + + continuation.resume() + + } catch { + continuation.resume(throwing: error) } } - guard error == nil else { throw error! } } - - } - - - public func deleteOwnedContactGroup(ownedCryptoId: ObvCryptoId, groupUid: UID) throws { - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - let log = self.log - - let randomFlowId = FlowIdentifier() - createContextDelegate.performBackgroundTask(flowId: randomFlowId) { (obvContext) in - do { - try identityDelegate.deleteContactGroupOwned(ownedIdentity: ownedCryptoId.cryptoIdentity, groupUid: groupUid, deleteEvenIfGroupMembersStillExist: false, within: obvContext) - try obvContext.save(logOnFailure: log) - } catch { - os_log("Could not delete owned contact group: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure(error.localizedDescription) - } - } } - + // Called when the owned identity decides to leave a group she joined public func leaveContactGroupJoined(ownedCryptoId: ObvCryptoId, groupUid: UID, groupOwner: ObvCryptoId) throws { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } let log = self.log @@ -2811,7 +3609,7 @@ extension ObvEngine { groupUid: groupUid, groupOwner: groupOwner.cryptoIdentity, within: obvContext) - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } catch let _error { error = _error @@ -2824,9 +3622,9 @@ extension ObvEngine { public func refreshContactGroupJoined(ownedCryptoId: ObvCryptoId, groupUid: UID, groupOwner: ObvCryptoId) throws { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } let log = self.log @@ -2835,7 +3633,7 @@ extension ObvEngine { createContextDelegate.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in do { let message = try protocolDelegate.getInitiateGroupMembersQueryMessageForGroupManagementProtocol(groupUid: groupUid, ownedIdentity: ownedCryptoId.cryptoIdentity, groupOwner: groupOwner.cryptoIdentity, within: obvContext) - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) try obvContext.save(logOnFailure: log) } catch let _error { error = _error @@ -2852,7 +3650,7 @@ extension ObvEngine { /// This method returns the status of each register websocket. This is essentially used for debugging the websockets. public func getWebSocketState(ownedIdentity: ObvCryptoId) async throws -> (URLSessionTask.State,TimeInterval?) { - guard let networkFetchDelegate = networkFetchDelegate else { throw makeError(message: "The network fetch delegate is not set") } + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } return try await networkFetchDelegate.getWebSocketState(ownedIdentity: ownedIdentity.cryptoIdentity) } @@ -2867,15 +3665,15 @@ extension ObvEngine { os_log("🧾 Call to postReturnReceiptWithElements with nonce %{public}@ and attachmentNumber: %{public}@", log: log, type: .info, elements.nonce.hexString(), String(describing: attachmentNumber)) - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The create context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let flowDelegate = self.flowDelegate else { throw makeError(message: "The flow delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } let contactCryptoIdentity = contactCryptoId.cryptoIdentity let ownedCryptoIdentity = ownedCryptoId.cryptoIdentity guard let messageUid = UID(uid: messageIdentifierFromEngine) else { assertionFailure(); throw makeError(message: "Could not parse message identifier from engine") } - let messageId = MessageIdentifier(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, uid: messageUid) + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, uid: messageUid) // We do not need to start a flow in order to wait for the return receipt to be posted. // It was started when receiving the notification from the network manager informing the engine that a message / attachment is fully available. @@ -2930,18 +3728,18 @@ extension ObvEngine { /// - attachmentsToSend: An array of attachments to send alongside the message. /// - contactCryptoIds: The set of contacts to whom the message shall be sent. /// - ownedCryptoId: The owned cryptoId sending the message. + /// - alsoPostToOtherOwnedDevices: Set this to `true` to send the message to the other devices of the owned identity /// - completionHandler: A completion block, executed when the post has done was is required. Hint : for now, this is only used when calling this method from the share extension, in order to dismiss the share extension on post completion. - public func post(messagePayload: Data, extendedPayload: Data?, withUserContent: Bool, isVoipMessageForStartingCall: Bool, attachmentsToSend: [ObvAttachmentToSend], toContactIdentitiesWithCryptoId contactCryptoIds: Set, ofOwnedIdentityWithCryptoId ownedCryptoId: ObvCryptoId, completionHandler: (() -> Void)? = nil) throws -> [ObvCryptoId: Data] { + public func post(messagePayload: Data, extendedPayload: Data?, withUserContent: Bool, isVoipMessageForStartingCall: Bool, attachmentsToSend: [ObvAttachmentToSend], toContactIdentitiesWithCryptoId contactCryptoIds: Set, ofOwnedIdentityWithCryptoId ownedCryptoId: ObvCryptoId, alsoPostToOtherOwnedDevices: Bool, completionHandler: (() -> Void)? = nil) throws -> [ObvCryptoId: Data] { - guard !contactCryptoIds.isEmpty else { - assertionFailure("We should not be posting to an empty set of contacts. This might be a bug.") + guard !contactCryptoIds.isEmpty || alsoPostToOtherOwnedDevices else { completionHandler?() return [:] } - guard let createContextDelegate = self.createContextDelegate else { throw makeError(message: "The create context delegate is not set") } - guard let channelDelegate = self.channelDelegate else { throw makeError(message: "The channel delegate is not set") } - guard let flowDelegate = self.flowDelegate else { throw makeError(message: "The flow delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } let attachments: [ObvChannelApplicationMessageToSend.Attachment] = attachmentsToSend.map { @@ -2957,7 +3755,8 @@ extension ObvEngine { extendedMessagePayload: extendedPayload, withUserContent: withUserContent, isVoipMessageForStartingCall: isVoipMessageForStartingCall, - attachments: attachments) + attachments: attachments, + alsoPostToOtherOwnedDevices: alsoPostToOtherOwnedDevices) let flowId = try flowDelegate.startNewFlow(completionHandler: completionHandler) @@ -2968,10 +3767,10 @@ extension ObvEngine { assert(!Thread.isMainThread) - let messageIdentifiersForToIdentities = try channelDelegate.post(message, randomizedWith: _self.prng, within: obvContext) + let messageIdentifiersForToIdentities = try channelDelegate.postChannelMessage(message, randomizedWith: _self.prng, within: obvContext) try messageIdentifiersForToIdentities.keys.forEach { messageId in - let attachmentIds = (0.. ObvAttachment { - - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let networkFetchDelegate = networkFetchDelegate else { throw makeError(message: "The network fetch delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - - var refreshedObvAttachment: ObvAttachment! - var error: Error? - let randomFlowId = FlowIdentifier() - createContextDelegate.performBackgroundTaskAndWait(flowId: randomFlowId) { (obvContext) in - do { - refreshedObvAttachment = try ObvAttachment(attachmentId: attachmentId, - networkFetchDelegate: networkFetchDelegate, - identityDelegate: identityDelegate, - within: obvContext) - } catch let _error { - error = _error - } - } - guard error == nil else { - throw error! - } - return refreshedObvAttachment - } - - public func downloadAllMessagesForOwnedIdentities() { - guard let createContextDelegate = createContextDelegate else { assertionFailure(); return } - guard let networkFetchDelegate = networkFetchDelegate else { assertionFailure(); return } - guard let flowDelegate = flowDelegate else { assertionFailure(); return } - guard let identityDelegate = identityDelegate else { assertionFailure(); return } + guard let createContextDelegate else { assertionFailure(); return } + guard let networkFetchDelegate else { assertionFailure(); return } + guard let flowDelegate else { assertionFailure(); return } + guard let identityDelegate else { assertionFailure(); return } let log = self.log let randomFlowId = FlowIdentifier() @@ -3129,12 +3902,12 @@ extension ObvEngine { public func cancelDownloadOfMessage(withIdentifier messageIdRaw: Data, ownedCryptoId: ObvCryptoId) throws { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let networkFetchDelegate = networkFetchDelegate else { throw makeError(message: "The network fetch delegate is not set") } - guard let flowDelegate = flowDelegate else { throw makeError(message: "The flow delegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } guard let uid = UID(uid: messageIdRaw) else { throw ObvEngine.makeError(message: "Could not parse message id") } - let messageId = MessageIdentifier(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, uid: uid) + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, uid: uid) guard let flowId = flowDelegate.startBackgroundActivityForDeletingAMessage(messageId: messageId) else { throw Self.makeError(message: "Could not cancel download of message since we could not start a background activity for this") @@ -3156,27 +3929,28 @@ extension ObvEngine { } - public func resumeDownloadOfAttachment(_ attachmentNumber: Int, ofMessageWithIdentifier messageIdRaw: Data, ownedCryptoId: ObvCryptoId) throws { + /// The ``forceResume`` Boolean value is used when the engine notifies the app that an attachment was download, yet, the app detects that the downloaded file does not exist on disk. In that case, it requests a new download to the engine by calling this method while setting ``forceResume`` to `true`. + public func resumeDownloadOfAttachment(_ attachmentNumber: Int, ofMessageWithIdentifier messageIdRaw: Data, ownedCryptoId: ObvCryptoId, forceResume: Bool) throws { - guard let networkFetchDelegate = networkFetchDelegate else { throw makeError(message: "The network fetch delegate is not set") } + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } guard let uid = UID(uid: messageIdRaw) else { throw ObvEngine.makeError(message: "Could not parse message identifier") } - let messageId = MessageIdentifier(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, uid: uid) - let attachmentId = AttachmentIdentifier(messageId: messageId, attachmentNumber: attachmentNumber) + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, uid: uid) + let attachmentId = ObvAttachmentIdentifier(messageId: messageId, attachmentNumber: attachmentNumber) let randomFlowId = FlowIdentifier() - networkFetchDelegate.resumeDownloadOfAttachment(attachmentId: attachmentId, flowId: randomFlowId) + networkFetchDelegate.resumeDownloadOfAttachment(attachmentId: attachmentId, forceResume: forceResume, flowId: randomFlowId) } public func pauseDownloadOfAttachment(_ attachmentNumber: Int, ofMessageWithIdentifier messageIdRaw: Data, ownedCryptoId: ObvCryptoId) throws { - guard let networkFetchDelegate = networkFetchDelegate else { throw makeError(message: "The network fetch delegate is not set") } + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } guard let uid = UID(uid: messageIdRaw) else { throw ObvEngine.makeError(message: "Could not parse message identifier") } - let messageId = MessageIdentifier(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, uid: uid) - let attachmentId = AttachmentIdentifier(messageId: messageId, attachmentNumber: attachmentNumber) + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, uid: uid) + let attachmentId = ObvAttachmentIdentifier(messageId: messageId, attachmentNumber: attachmentNumber) let randomFlowId = FlowIdentifier() networkFetchDelegate.pauseDownloadOfAttachment(attachmentId: attachmentId, flowId: randomFlowId) @@ -3185,9 +3959,9 @@ extension ObvEngine { public func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async throws -> [(ownedCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, attachmentNumber: Int, progress: Float)] { - guard let networkFetchDelegate = networkFetchDelegate else { throw makeError(message: "The network fetch delegate is not set") } + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } let progresses = try await networkFetchDelegate.requestDownloadAttachmentProgressesUpdatedSince(date: date) - let progressesToReturn = progresses.map { (attachmentId: AttachmentIdentifier, progress: Float) in + let progressesToReturn = progresses.map { (attachmentId: ObvAttachmentIdentifier, progress: Float) in (ObvCryptoId(cryptoIdentity: attachmentId.messageId.ownedCryptoIdentity), attachmentId.messageId.uid.raw, attachmentId.attachmentNumber, progress) } return progressesToReturn @@ -3197,7 +3971,7 @@ extension ObvEngine { public func requestUploadAttachmentProgressesUpdatedSince(date: Date) async throws -> [(ownedCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, attachmentNumber: Int, progress: Float)] { guard let networkPostDelegate = networkPostDelegate else { throw makeError(message: "The network post delegate is not set") } let progresses = try await networkPostDelegate.requestUploadAttachmentProgressesUpdatedSince(date: date) - let progressesToReturn = progresses.map { (attachmentId: AttachmentIdentifier, progress: Float) in + let progressesToReturn = progresses.map { (attachmentId: ObvAttachmentIdentifier, progress: Float) in (ObvCryptoId(cryptoIdentity: attachmentId.messageId.ownedCryptoIdentity), attachmentId.messageId.uid.raw, attachmentId.attachmentNumber, progress) } return progressesToReturn @@ -3215,7 +3989,7 @@ extension ObvEngine { let flowId = FlowIdentifier() guard let networkPostDelegate = networkPostDelegate else { throw Self.makeError(message: "The network post delegate is not set") } - guard let networkFetchDelegate = networkFetchDelegate else { throw Self.makeError(message: "The network fetch delegate is not set") } + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } if networkPostDelegate.backgroundURLSessionIdentifierIsAppropriate(backgroundURLSessionIdentifier: backgroundURLSessionIdentifier) { os_log("🌊 The background URLSession Identifier %{public}@ is appropriate for the Network Post Delegate", log: log, type: .info, backgroundURLSessionIdentifier) @@ -3243,29 +4017,10 @@ extension ObvEngine { os_log("🌊 Call to the engine application(performFetchWithCompletionHandler:) method", log: log, type: .info) - guard let flowDelegate = flowDelegate else { - os_log("The flow delegate is not set", log: log, type: .fault) - completionHandler(.failed) - return - } - - guard let identityDelegate = delegateManager.identityDelegate else { - os_log("The identity delegate is not set", log: log, type: .fault) - completionHandler(.failed) - return - } - - guard let createContextDelegate = delegateManager.createContextDelegate else { - os_log("The create context delegate is not set", log: log, type: .fault) - completionHandler(.failed) - return - } - - guard let networkFetchDelegate = delegateManager.networkFetchDelegate else { - os_log("The network Fetch Delegate is not set", log: log, type: .fault) - completionHandler(.failed) - return - } + guard let flowDelegate else { completionHandler(.failed); return } + guard let identityDelegate else { completionHandler(.failed); return } + guard let createContextDelegate else { completionHandler(.failed); return } + guard let networkFetchDelegate else { completionHandler(.failed); return } do { @@ -3319,63 +4074,47 @@ extension ObvEngine { extension ObvEngine { - public func decrypt(encryptedPushNotification encryptedNotification: EncryptedPushNotification) throws -> ObvMessage { + public func decrypt(encryptedPushNotification encryptedNotification: ObvEncryptedPushNotification) async throws -> ObvMessage { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The context delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identity delegate is not set") } - guard let channelDelegate = channelDelegate else { throw makeError(message: "The channel delegate is not set") } - - let dummyFlowId = FlowIdentifier() - - var obvMessage: ObvMessage? - let randomFlowId = FlowIdentifier() - createContextDelegate.performBackgroundTaskAndWait(flowId: randomFlowId) { (obvContext) in - - let _ownedIdentity: ObvCryptoIdentity? - do { - _ownedIdentity = try identityDelegate.getOwnedIdentityAssociatedToMaskingUID(encryptedNotification.maskingUID, within: obvContext) - } catch { - os_log("The call to getOwnedIdentityAssociatedToMaskingUID failed: %{public}@", log: log, type: .fault, error.localizedDescription) - return - } - - guard let ownedIdentity = _ownedIdentity else { - os_log("We could not find an appropriate owned identity associated to the masking UID", log: log, type: .error) - return - } - - let messageId = MessageIdentifier(ownedCryptoIdentity: ownedIdentity, uid: encryptedNotification.messageIdFromServer) - let encryptedMessage = ObvNetworkReceivedMessageEncrypted( - messageId: messageId, - messageUploadTimestampFromServer: encryptedNotification.messageUploadTimestampFromServer, - downloadTimestampFromServer: encryptedNotification.messageUploadTimestampFromServer, /// Encrypted notifications do no have access to a download timestamp from server - localDownloadTimestamp: encryptedNotification.localDownloadTimestamp, - encryptedContent: encryptedNotification.encryptedContent, - wrappedKey: encryptedNotification.wrappedKey, - knownAttachmentCount: nil, - availableEncryptedExtendedContent: encryptedNotification.encryptedExtendedContent) - let decryptedMessage: ObvNetworkReceivedMessageDecrypted - do { - decryptedMessage = try channelDelegate.decrypt(encryptedMessage, within: dummyFlowId) - } catch { - os_log("The channel delegate failed to decrypt the encrypted message", log: log, type: .error) - return - } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + + let log = self.log - // We pass nil for the networkFetchDelegate since it is only used to decrypt attachements that are not yet available. - do { - obvMessage = try ObvMessage(networkReceivedMessage: decryptedMessage, networkFetchDelegate: nil, identityDelegate: identityDelegate, within: obvContext) - } catch { - os_log("Could not decrypt the encrypted content", log: log, type: .fault) - return + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + let randomFlowId = FlowIdentifier() + createContextDelegate.performBackgroundTask(flowId: randomFlowId) { (obvContext) in + do { + + guard let ownedIdentity = try identityDelegate.getOwnedIdentityAssociatedToMaskingUID(encryptedNotification.maskingUID, within: obvContext) else { + os_log("We could not find an appropriate owned identity associated to the masking UID", log: log, type: .error) + throw ObvError.noAppropriateOwnedIdentityFound + } + + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: ownedIdentity, uid: encryptedNotification.messageIdFromServer) + let encryptedMessage = ObvNetworkReceivedMessageEncrypted( + messageId: messageId, + messageUploadTimestampFromServer: encryptedNotification.messageUploadTimestampFromServer, + downloadTimestampFromServer: encryptedNotification.messageUploadTimestampFromServer, /// Encrypted notifications do no have access to a download timestamp from server + localDownloadTimestamp: encryptedNotification.localDownloadTimestamp, + encryptedContent: encryptedNotification.encryptedContent, + wrappedKey: encryptedNotification.wrappedKey, + knownAttachmentCount: nil, + availableEncryptedExtendedContent: encryptedNotification.encryptedExtendedContent) + + let decryptedMessage = try channelDelegate.decrypt(encryptedMessage, within: randomFlowId) + + // We pass nil for the networkFetchDelegate since it is only used to decrypt attachements that are not yet available. + let obvMessage = try ObvMessage(networkReceivedMessage: decryptedMessage, networkFetchDelegate: nil, within: obvContext) + + continuation.resume(returning: obvMessage) + + } catch { + continuation.resume(throwing: error) + } } } - - guard obvMessage != nil else { - os_log("Failed to return a decrypted obvMessage", log: log, type: .error) - throw makeError(message: "Cannot return a decrypted ObvMessage") - } - return obvMessage! } @@ -3399,6 +4138,13 @@ extension ObvEngine { replayTransactionsHistory() // 2022-02-24: Used to be called only if forTheFirstTime. We now want to empty the history as soon as possible. if forTheFirstTime { downloadAllMessagesForOwnedIdentities() + do { + try await performOwnedDeviceDiscoveryForAllOwnedIdentities(flowId: flowId) + // try await sendTriggerSyncSnapshotMessageToAllExistingSynchronizationProtocolInstances(flowId: flowId) + // try await initiateIfRequiredSynchronizationProtocolInstanceForEachChannelWithAnotherOwnedDevice(flowId: flowId) + } catch { + assertionFailure(error.localizedDescription) + } } } @@ -3408,9 +4154,9 @@ extension ObvEngine { assert(!Thread.isMainThread) - guard let createContextDelegate = createContextDelegate else { assertionFailure(); throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { assertionFailure(); throw makeError(message: "The identityDelegate is not set") } - guard let networkFetchDelegate = networkFetchDelegate else { assertionFailure(); throw makeError(message: "The networkFetchDelegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } let log = self.log let flowId = FlowIdentifier() @@ -3436,7 +4182,7 @@ extension ObvEngine { public func disconnectWebsockets() async throws { - guard let networkFetchDelegate = networkFetchDelegate else { assertionFailure(); throw makeError(message: "The networkFetchDelegate is not set") } + guard let networkFetchDelegate else { throw ObvError.networkFetchDelegateIsNil } let flowId = FlowIdentifier() await networkFetchDelegate.disconnectWebsockets(flowId: flowId) } @@ -3556,30 +4302,91 @@ extension ObvEngine { } - public func restoreFullBackup(backupRequestIdentifier: FlowIdentifier) async throws { + /// Returns the ObvCryptoIds of the restored owned identities. + public func restoreFullBackup(backupRequestIdentifier: FlowIdentifier, nameToGiveToCurrentDevice: String) async throws -> Set { os_log("Starting backup restore identified by %{public}@", log: log, type: .info, backupRequestIdentifier.debugDescription) - guard let backupDelegate = self.backupDelegate else { - assertionFailure() - throw makeError(message: "The backup delegate is not set") - } + guard let backupDelegate else { assertionFailure(); throw ObvError.backupDelegateIsNil } + + // Get a set of owned identities that exist before the backup restore + + let preExistingOwnedCryptoIds = try await getOwnedIdentities() + + // Restore the backup try await backupDelegate.restoreFullBackup(backupRequestIdentifier: backupRequestIdentifier) + // Get the set of restore owned identities + + let restoredOwnedIdentities = try await getOwnedIdentities().subtracting(preExistingOwnedCryptoIds) + // If we reach this point, the backup was successfully restored // We perform post-restore tasks + + // Set the current device name for all owned identities + // We only do it locally, the following request (for push notification), will inform the server + try setCurrentDeviceNameOfAllRestoredOwnedIdentitiesAfterBackupRestore(restoredOwnedIdentities: restoredOwnedIdentities, nameToGiveToCurrentDevice: nameToGiveToCurrentDevice) + // Re-register all active owned identities to push notifications + ObvEngineNotificationNew.serverRequiresAllActiveOwnedIdentitiesToRegisterToPushNotifications + .postOnBackgroundQueue(within: appNotificationCenter) + // Perform a re-download of all group v2 try performReDownloadOfAllGroupV2AfterBackupRestore(backupRequestIdentifier: backupRequestIdentifier) + // Since the notifications from the identity manager are not triggered during a backup restore, + // we call the appropriate method from the engine coordinator now + + for ownedCryptoIdentity in restoredOwnedIdentities { + engineCoordinator.processNewActiveOwnedIdentity(ownedCryptoIdentity: ownedCryptoIdentity, flowId: backupRequestIdentifier) + } + + return Set(restoredOwnedIdentities.map({ ObvCryptoId(cryptoIdentity: $0) })) + + } + + + /// Helper method used during a backup restore + private func getOwnedIdentities() async throws -> Set { + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + return try await withCheckedThrowingContinuation { continuation in + do { + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: FlowIdentifier()) { obvContext in + let ownedCryptoIds = try identityDelegate.getOwnedIdentities(within: obvContext) + continuation.resume(returning: ownedCryptoIds) + } + } catch { + continuation.resume(throwing: error) + } + } + } + + + private func setCurrentDeviceNameOfAllRestoredOwnedIdentitiesAfterBackupRestore(restoredOwnedIdentities: Set, nameToGiveToCurrentDevice: String) throws { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + + let log = self.log + try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: FlowIdentifier()) { obvContext in + + // We set the device names locally for all restored owned identities (active or not) + for restoredOwnedIdentity in restoredOwnedIdentities { + try identityDelegate.setCurrentDeviceNameOfOwnedIdentityAfterBackupRestore(ownedCryptoIdentity: restoredOwnedIdentity, nameForCurrentDevice: nameToGiveToCurrentDevice, within: obvContext) + } + + try obvContext.save(logOnFailure: log) + } + } private func performReDownloadOfAllGroupV2AfterBackupRestore(backupRequestIdentifier: FlowIdentifier) throws { - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identityDelegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } var allGroupsV2 = [ObvCryptoIdentity: Set]() try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: backupRequestIdentifier) { obvContext in @@ -3605,13 +4412,24 @@ extension ObvEngine { guard let backupDelegate = self.backupDelegate else { os_log("The backup delegate is not set", log: log, type: .fault) assertionFailure() - throw ObvEngine.makeError(message: "Internal error") + throw ObvError.backupDelegateIsNil } backupDelegate.registerAppBackupableObject(appBackupableObject) } + + public func registerAppSnapshotableObject(_ appSnapshotableObject: ObvAppSnapshotable) throws { + guard let syncSnapshotDelegate else { + os_log("The backup delegate is not set", log: log, type: .fault) + assertionFailure() + throw ObvError.syncSnapshotDelegateIsNil + } + syncSnapshotDelegate.registerAppSnapshotableObject(appSnapshotableObject) + } + } + // MARK: - Public API for User Data extension ObvEngine { @@ -3619,9 +4437,9 @@ extension ObvEngine { /// This is called when restoring a backup and after the migration to the first Olvid version that supports profile pictures public func downloadAllUserData() throws { - guard let flowDelegate = flowDelegate else { throw ObvEngine.makeError(message: "The flow delegate is not set") } - guard let createContextDelegate = createContextDelegate else { throw ObvEngine.makeError(message: "Create Context Delegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identityDelegate is not set") } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() @@ -3662,20 +4480,20 @@ extension ObvEngine { public func startDownloadIdentityPhotoProtocolWithinTransaction(within obvContext: ObvContext, ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactIdentityDetailsElements: IdentityDetailsElements) throws { - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let channelDelegate = channelDelegate else { throw ObvEngine.makeError(message: "Channel Delegate is not set") } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } let message = try protocolDelegate.getInitialMessageForDownloadIdentityPhotoChildProtocol(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, contactIdentityDetailsElements: contactIdentityDetailsElements) - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) } public func startDownloadGroupPhotoProtocolWithinTransaction(within obvContext: ObvContext, ownedIdentity: ObvCryptoIdentity, groupInformation: GroupInformation) throws { - guard let protocolDelegate = protocolDelegate else { throw makeError(message: "The protocol delegate is not set") } - guard let channelDelegate = channelDelegate else { throw ObvEngine.makeError(message: "Channel Delegate is not set") } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } let message = try protocolDelegate.getInitialMessageForDownloadGroupPhotoChildProtocol(ownedIdentity: ownedIdentity, groupInformation: groupInformation) - _ = try channelDelegate.post(message, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) } } @@ -3685,9 +4503,10 @@ extension ObvEngine { extension ObvEngine { - public func getTurnCredentials(ownedIdenty: ObvCryptoId, callUuid: UUID) { + public func getTurnCredentials(ownedCryptoId: ObvCryptoId) async throws -> ObvTurnCredentials { + guard let networkFetchDelegate else { assertionFailure(); throw ObvError.networkFetchDelegateIsNil } let flowId = FlowIdentifier() - networkFetchDelegate?.getTurnCredentials(ownedIdenty: ownedIdenty.cryptoIdentity, callUuid: callUuid, username1: "alice", username2: "bob", flowId: flowId) + return try await networkFetchDelegate.getTurnCredentials(ownedCryptoId: ownedCryptoId.cryptoIdentity, flowId: flowId) } } @@ -3703,8 +4522,8 @@ extension ObvEngine { public func computeTagForOwnedIdentity(with ownedIdentityCryptoId: ObvCryptoId, on data: Data) throws -> Data { - guard let createContextDelegate = createContextDelegate else { throw makeError(message: "The createContextDelegate is not set") } - guard let identityDelegate = identityDelegate else { throw makeError(message: "The identityDelegate is not set") } + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } var _tag: Data? try createContextDelegate.performBackgroundTaskAndWaitOrThrow(flowId: FlowIdentifier()) { (obvContext) in _tag = try identityDelegate.computeTagForOwnedIdentity(ownedIdentityCryptoId.cryptoIdentity, on: data, within: obvContext) @@ -3743,9 +4562,7 @@ extension ObvEngine: ObvUserInterfaceChannelDelegate { /// This database is in charge of sending a notification to the App. public func newUserDialogToPresent(obvChannelDialogMessageToSend: ObvChannelDialogMessageToSend, within obvContext: ObvContext) throws { - guard let identityDelegate = identityDelegate else { - throw Self.makeError(message: "The identity delegate is not set") - } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } let obvDialog: ObvDialog do { @@ -3800,16 +4617,6 @@ extension ObvEngine: ObvUserInterfaceChannelDelegate { guard let obvMediatorIdentity = ObvContactIdentity(contactCryptoIdentity: mediatorIdentity, ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate, within: obvContext) else { return } category = ObvDialog.Category.acceptMediatorInvite(contactIdentity: obvContactIdentity, mediatorIdentity: obvMediatorIdentity.getGenericIdentity()) - case .increaseMediatorTrustLevelRequired(contact: let contact, mediatorIdentity: let mediatorIdentity): - let obvContactIdentity = ObvGenericIdentity(cryptoIdentity: contact.cryptoIdentity, currentCoreIdentityDetails: contact.coreDetails) - guard let obvMediatorIdentity = ObvContactIdentity(contactCryptoIdentity: mediatorIdentity, ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate, within: obvContext) else { return } - category = ObvDialog.Category.increaseMediatorTrustLevelRequired(contactIdentity: obvContactIdentity, mediatorIdentity: obvMediatorIdentity.getGenericIdentity()) - - case .autoconfirmedContactIntroduction(contact: let contact, mediatorIdentity: let mediatorIdentity): - let obvContactIdentity = ObvGenericIdentity(cryptoIdentity: contact.cryptoIdentity, currentCoreIdentityDetails: contact.coreDetails) - guard let obvMediatorIdentity = ObvContactIdentity(contactCryptoIdentity: mediatorIdentity, ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate, within: obvContext) else { return } - category = ObvDialog.Category.autoconfirmedContactIntroduction(contactIdentity: obvContactIdentity, mediatorIdentity: obvMediatorIdentity.getGenericIdentity()) - case .mediatorInviteAccepted(contact: let contact, mediatorIdentity: let mediatorIdentity): let obvContactIdentity = ObvGenericIdentity(cryptoIdentity: contact.cryptoIdentity, currentCoreIdentityDetails: contact.coreDetails) guard let obvMediatorIdentity = ObvContactIdentity(contactCryptoIdentity: mediatorIdentity, ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate, within: obvContext) else { return } @@ -3829,16 +4636,6 @@ extension ObvEngine: ObvUserInterfaceChannelDelegate { groupOwner = _groupOwner.getGenericIdentity() } category = ObvDialog.Category.acceptGroupInvite(groupMembers: obvGroupMembers, groupOwner: groupOwner) - - case .increaseGroupOwnerTrustLevel(groupInformation: let groupInformation, pendingGroupMembers: _, receivedMessageTimestamp: _): - let groupOwner: ObvGenericIdentity - if groupInformation.groupOwnerIdentity == ownedCryptoIdentity { - return // Should never happen - } else { - guard let _groupOwner = ObvContactIdentity(contactCryptoIdentity: groupInformation.groupOwnerIdentity, ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate, within: obvContext) else { return } - groupOwner = _groupOwner.getGenericIdentity() - } - category = ObvDialog.Category.increaseGroupOwnerTrustLevelRequired(groupOwner: groupOwner) case .oneToOneInvitationSent(contact: let contact, ownedIdentity: let ownedIdentity): guard let obvContact = ObvContactIdentity(contactCryptoIdentity: contact, ownedCryptoIdentity: ownedIdentity, identityDelegate: identityDelegate, within: obvContext) else { @@ -3859,6 +4656,9 @@ extension ObvEngine: ObvUserInterfaceChannelDelegate { case .freezeGroupV2Invite(inviter: let inviter, group: let group): category = ObvDialog.Category.freezeGroupV2Invite(inviter: inviter, group: group) + + case .syncRequestReceivedFromOtherOwnedDevice(otherOwnedDeviceUID: let otherOwnedDeviceUID, syncAtom: let syncAtom): + category = ObvDialog.Category.syncRequestReceivedFromOtherOwnedDevice(otherOwnedDeviceIdentifier: otherOwnedDeviceUID.raw, syncAtom: syncAtom) case .delete: // This is a special case: we simply delete any existing realated PersistedEngineDialog and return @@ -3896,3 +4696,461 @@ extension ObvEngine: ObvUserInterfaceChannelDelegate { } } + + +// MARK: - Transfer protocol / Adding a new owned device + +extension ObvEngine { + + /// Called by the app in order to start an owned identity transfer protocol on the source device. + /// - Parameters: + /// - ownedCryptoId: The `ObvCryptoId` of the owned identity. + /// - onAvailableSessionNumber: This block will be called by the engine as soon as the session number is available, passing it as a parameter. Since getting this session number requires a network interaction with the transfer server, this block may take a "long" time before being called. + public func initiateOwnedIdentityTransferProtocolOnSourceDevice(ownedCryptoId: ObvCryptoId, onAvailableSessionNumber: @escaping (ObvOwnedIdentityTransferSessionNumber) -> Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void) async throws { + + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + + let ownedCryptoIdentity = ownedCryptoId.cryptoIdentity + let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() + + try await protocolDelegate.initiateOwnedIdentityTransferProtocolOnSourceDevice( + ownedCryptoIdentity: ownedCryptoIdentity, + onAvailableSessionNumber: onAvailableSessionNumber, + onAvailableSASExpectedOnInput: onAvailableSASExpectedOnInput, + flowId: flowId) + + } + + + public func initiateOwnedIdentityTransferProtocolOnTargetDevice(currentDeviceName: String, transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void) async throws { + + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + + let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() + + try await protocolDelegate.initiateOwnedIdentityTransferProtocolOnTargetDevice(currentDeviceName: currentDeviceName, transferSessionNumber: transferSessionNumber, onIncorrectTransferSessionNumber: onIncorrectTransferSessionNumber, onAvailableSas: onAvailableSas, flowId: flowId) + + } + + + public func appIsShowingSasAndExpectingEndOfProtocol(protocolInstanceUID: UID, onSyncSnapshotReception: @escaping () -> Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async { + guard let protocolDelegate else { assertionFailure(); return } + await protocolDelegate.appIsShowingSasAndExpectingEndOfProtocol( + protocolInstanceUID: protocolInstanceUID, + onSyncSnapshotReception: onSyncSnapshotReception, + onSuccessfulTransfer: onSuccessfulTransfer) + } + + + /// Called by the app during an owned identity transfer protocol on the source device, after the user entered a valid SAS. + public func userEnteredValidSASOnSourceDeviceForOwnedIdentityTransferProtocol(enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws { + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + try await protocolDelegate.continueOwnedIdentityTransferProtocolOnUserEnteredSASOnSourceDevice( + enteredSAS: enteredSAS, + deviceToKeepActive: deviceToKeepActive, + ownedCryptoId: ownedCryptoId, + protocolInstanceUID: protocolInstanceUID) + } + + + public func userWantsToCancelAllOwnedIdentityTransferProtocols() async throws { + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + let flowId = FlowIdentifier() + try await protocolDelegate.cancelAllOwnedIdentityTransferProtocols(flowId: flowId) + } + +} + + +// MARK: - Sync between owned devices + +extension ObvEngine { + + + /// Called by the app when, e.g., the user performs a modification that should be transferred to other owned devices. + /// - Parameters: + /// - syncAtom: The ObvSyncAtom created by the app that the engine should transfer to all other owned devices. + /// - ownedCryptoId: The owned identity making the change. + public func requestPropagationToOtherOwnedDevices(of syncAtom: ObvSyncAtom, for ownedCryptoId: ObvCryptoId) async throws { + + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + guard let flowDelegate else { throw ObvError.flowDelegateIsNil } + + let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() + + let message = try protocolDelegate.getInitiateSyncAtomMessageForSynchronizationProtocol(ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, syncAtom: syncAtom) + try await postChannelMessage(message, flowId: flowId) + + } + + + private func postChannelMessage(_ message: ObvChannelProtocolMessageToSend, flowId: FlowIdentifier) async throws { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + + let prng = self.prng + let log = self.log + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + try obvContext.save(logOnFailure: log) + continuation.resume() + } catch { + continuation.resume(throwing: error) + } + } + } + + } + + + /// Each time we start the app, we send a trigger message to all existing synchronization protocol instances. This allows to make sure they properly resend any diff to the app, which is important as they are kept in memory. +// private func sendTriggerSyncSnapshotMessageToAllExistingSynchronizationProtocolInstances(flowId: FlowIdentifier) async throws { +// +// guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } +// guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } +// +// let log = self.log +// +// try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in +// createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in +// do { +// try protocolDelegate.sendTriggerSyncSnapshotMessageToAllExistingSynchronizationProtocolInstances(within: obvContext) +// try obvContext.save(logOnFailure: log) +// continuation.resume() +// } catch { +// continuation.resume(throwing: error) +// } +// } +// } +// +// } + + + /// Each time we start the app, we look for other owned devices and make sure there is an oingoing SynchronizationProtocol between the current device and each of these remote devices. + /// To do so, we send an InitiateSyncSnapshotMessage for each found other owned device. In case a protocol instance already exists (which is very likely), this message will simply be discarded by the protocol. +// private func initiateIfRequiredSynchronizationProtocolInstanceForEachChannelWithAnotherOwnedDevice(flowId: FlowIdentifier) async throws { +// +// guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } +// guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } +// guard let channelDelegate else { throw ObvError.channelDelegateIsNil } +// guard let identityDelegate else { throw ObvError.identityDelegateIsNil } +// +// let log = self.log +// let prng = self.prng +// +// try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in +// createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in +// do { +// let ownedIdentities = try identityDelegate.getOwnedIdentities(within: obvContext) +// for ownedIdentity in ownedIdentities { +// let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) +// let otherOwnedDeviceUids = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) +// for otherOwnedDeviceUid in otherOwnedDeviceUids { +// let message = try protocolDelegate.getInitiateSyncSnapshotMessageForSynchronizationProtocol(ownedCryptoIdentity: ownedIdentity, currentDeviceUid: currentDeviceUid, otherOwnedDeviceUid: otherOwnedDeviceUid) +// _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) +// } +// } +// if obvContext.context.hasChanges { +// try obvContext.save(logOnFailure: log) +// } +// continuation.resume() +// } catch { +// continuation.resume(throwing: error) +// } +// } +// } +// +// } + + +// public func appRequestsTriggerOwnedDeviceSync(ownedCryptoId: ObvCryptoId) async throws { +// +// guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } +// guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } +// guard let channelDelegate else { throw ObvError.channelDelegateIsNil } +// guard let identityDelegate else { throw ObvError.identityDelegateIsNil } +// +// let log = self.log +// let prng = self.prng +// let flowId = FlowIdentifier() +// +// try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in +// createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in +// do { +// let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedCryptoId.cryptoIdentity, within: obvContext) +// let otherOwnedDeviceUids = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedCryptoId.cryptoIdentity, within: obvContext) +// for otherOwnedDeviceUid in otherOwnedDeviceUids { +// let message = try protocolDelegate.getTriggerSyncSnapshotMessageForSynchronizationProtocol( +// ownedCryptoIdentity: ownedCryptoId.cryptoIdentity, +// currentDeviceUid: currentDeviceUid, +// otherOwnedDeviceUid: otherOwnedDeviceUid, +// forceSendSnapshot: true) +// _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) +// } +// if obvContext.context.hasChanges { +// try obvContext.save(logOnFailure: log) +// } +// continuation.resume() +// } catch { +// continuation.resume(throwing: error) +// } +// } +// } +// +// } + +} + + +// Re-downloading profile pictures + +extension ObvEngine { + + /// This method allows the user to request the (re)download of potentially missing photos for owned identities. + public func downloadMissingProfilePicturesForOwnedIdentities() async throws { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + + let flowId = FlowIdentifier() + let prng = self.prng + let log = self.log + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + + let infos = try identityDelegate.getInformationsAboutOwnedIdentitiesWithMissingPictureOnDisk(within: obvContext) + + for info in infos { + + let message = try protocolDelegate.getInitialMessageForDownloadIdentityPhotoChildProtocol( + ownedIdentity: info.ownedCryptoId, + contactIdentity: info.ownedCryptoId, + contactIdentityDetailsElements: info.ownedIdentityDetailsElements) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + + } + + try obvContext.save(logOnFailure: log) + + continuation.resume() + + } catch { + continuation.resume(throwing: error) + } + } + } + + } + + + /// This method allows the user to request the (re)download of potentially missing photos for contact groups v2. + public func downloadMissingProfilePicturesForGroupsV2() async throws { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + + let flowId = FlowIdentifier() + let prng = self.prng + let log = self.log + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + + let infos = try identityDelegate.getInformationsAboutGroupsV2WithMissingContactPictureOnDisk(within: obvContext) + + for info in infos { + + let message = try protocolDelegate.getInitialMessageForDownloadGroupV2PhotoProtocol( + ownedIdentity: info.ownedIdentity, + groupIdentifier: info.groupIdentifier, + serverPhotoInfo: info.serverPhotoInfo) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + + } + + try obvContext.save(logOnFailure: log) + + continuation.resume() + + } catch { + continuation.resume(throwing: error) + } + } + } + + } + + + /// This method allows the user to request the (re)download of potentially missing photos for contact groups v1. + public func downloadMissingProfilePicturesForGroupsV1() async throws { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + + let flowId = FlowIdentifier() + let prng = self.prng + let log = self.log + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + + let infos = try identityDelegate.getInformationsAboutGroupsV1WithMissingContactPictureOnDisk(within: obvContext) + + for info in infos { + + let message = try protocolDelegate.getInitialMessageForDownloadGroupPhotoChildProtocol( + ownedIdentity: info.ownedIdentity, + groupInformation: info.groupInfo) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + + } + + try obvContext.save(logOnFailure: log) + + continuation.resume() + + } catch { + continuation.resume(throwing: error) + } + } + } + + } + + /// This method allows the user to request the (re)download of potentially missing photos for her contacts. + public func downloadMissingProfilePicturesForContacts() async throws { + + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + guard let identityDelegate else { throw ObvError.identityDelegateIsNil } + guard let channelDelegate else { throw ObvError.channelDelegateIsNil } + guard let protocolDelegate else { throw ObvError.protocolDelegateIsNil } + + let flowId = FlowIdentifier() + let prng = self.prng + let log = self.log + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + do { + + let infos = try identityDelegate.getInformationsAboutContactsWithMissingContactPictureOnDisk(within: obvContext) + + for info in infos { + + let message = try protocolDelegate.getInitialMessageForDownloadIdentityPhotoChildProtocol( + ownedIdentity: info.ownedCryptoId, + contactIdentity: info.contactCryptoId, + contactIdentityDetailsElements: info.contactIdentityDetailsElements) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + + } + + try obvContext.save(logOnFailure: log) + + continuation.resume() + + } catch { + continuation.resume(throwing: error) + } + } + } + + } + +} + + +// MARK: - Errors + +extension ObvEngine { + + enum ObvError: LocalizedError { + + case createContextDelegateIsNil + case protocolDelegateIsNil + case flowDelegateIsNil + case notificationDelegateIsNil + case channelDelegateIsNil + case identityDelegateIsNil + case backupDelegateIsNil + case syncSnapshotDelegateIsNil + case networkFetchDelegateIsNil + case ownedIdentityIsNotActive + case ownedIdentityIsKeycloakManaged + case ownedIdentityIsNotKeycloakManaged + case couldNotRegisterAPIKeyAsItIsInvalid + case couldNotRegisterAPIKey + case noAppropriateOwnedIdentityFound + + var errorDescription: String? { + switch self { + case .createContextDelegateIsNil: + return "Create context delegate is nil" + case .protocolDelegateIsNil: + return "Protocol delegate is nil" + case .flowDelegateIsNil: + return "Flow delegate is nil" + case .channelDelegateIsNil: + return "Channel delegate is nil" + case .identityDelegateIsNil: + return "Identity delegate is nil" + case .backupDelegateIsNil: + return "Backup delegate is nil" + case .networkFetchDelegateIsNil: + return "Network fetch delegate is nil" + case .ownedIdentityIsNotActive: + return "Owned identity is not active" + case .ownedIdentityIsKeycloakManaged: + return "Owned identity is keycloak managed" + case .ownedIdentityIsNotKeycloakManaged: + return "Owned identity is not keycloak managed" + case .couldNotRegisterAPIKeyAsItIsInvalid: + return "Could not register API key as it is invalid" + case .couldNotRegisterAPIKey: + return "Could not register API key" + case .syncSnapshotDelegateIsNil: + return "The sync snapshot delegate is nil" + case .notificationDelegateIsNil: + return "The notification delegate is nil" + case .noAppropriateOwnedIdentityFound: + return "No appropriate owned identity found" + } + } + + } + +} + + +// MARK: - Helpers for operations + +extension ObvEngine { + + private func createCompositionOfOneContextualOperation(op1: ContextualOperationWithSpecificReasonForCancel) throws -> CompositionOfOneContextualOperation { + guard let createContextDelegate else { throw ObvError.createContextDelegateIsNil } + let log = self.log + let composedOp = CompositionOfOneContextualOperation(op1: op1, contextCreator: createContextDelegate, queueForComposedOperations: queueForComposedOperations, log: log, flowId: FlowIdentifier()) + composedOp.completionBlock = { [weak composedOp] in + assert(composedOp != nil) + composedOp?.logReasonIfCancelled(log: log) + } + return composedOp + } + +} diff --git a/Engine/ObvEngine/ObvEngine/ObvEngineNotificationNew.swift b/Engine/ObvEngine/ObvEngine/ObvEngineNotificationNew.swift index 93cc9298..5d6a2f75 100644 --- a/Engine/ObvEngine/ObvEngine/ObvEngineNotificationNew.swift +++ b/Engine/ObvEngine/ObvEngine/ObvEngineNotificationNew.swift @@ -41,37 +41,29 @@ public enum ObvEngineNotificationNew { case contactGroupJoinedHasUpdatedTrustedDetails(obvContactGroup: ObvContactGroup) case contactGroupOwnedDiscardedLatestDetails(obvContactGroup: ObvContactGroup) case contactGroupOwnedHasUpdatedLatestDetails(obvContactGroup: ObvContactGroup) - case DeletedObliviousChannelWithContactDevice(obvContactDevice: ObvContactDevice) + case deletedObliviousChannelWithContactDevice(obvContactIdentifier: ObvContactIdentifier) case newTrustedContactIdentity(obvContactIdentity: ObvContactIdentity) case newBackupKeyGenerated(backupKeyString: String, obvBackupKeyInformation: ObvBackupKeyInformation) case ownedIdentityWasDeactivated(ownedIdentity: ObvCryptoId) case ownedIdentityWasReactivated(ownedIdentity: ObvCryptoId) case networkOperationFailedSinceOwnedIdentityIsNotActive(ownedIdentity: ObvCryptoId) - case serverRequiresThisDeviceToRegisterToPushNotifications(ownedIdentity: ObvCryptoId) + case serverRequiresAllActiveOwnedIdentitiesToRegisterToPushNotifications + case engineRequiresOwnedIdentityToRegisterToPushNotifications(ownedCryptoId: ObvCryptoId) case outboxMessagesAndAllTheirAttachmentsWereAcknowledged(messageIdsAndTimestampsFromServer: [(messageIdentifierFromEngine: Data, ownedCryptoId: ObvCryptoId, timestampFromServer: Date)]) case outboxMessageCouldNotBeSentToServer(messageIdentifierFromEngine: Data, ownedIdentity: ObvCryptoId) case callerTurnCredentialsReceived(ownedIdentity: ObvCryptoId, callUuid: UUID, turnCredentials: ObvTurnCredentials) - case callerTurnCredentialsReceptionFailure(ownedIdentity: ObvCryptoId, callUuid: UUID) - case callerTurnCredentialsReceptionPermissionDenied(ownedIdentity: ObvCryptoId, callUuid: UUID) - case callerTurnCredentialsServerDoesNotSupportCalls(ownedIdentity: ObvCryptoId, callUuid: UUID) case messageWasAcknowledged(ownedIdentity: ObvCryptoId, messageIdentifierFromEngine: Data, timestampFromServer: Date, isAppMessageWithUserContent: Bool, isVoipMessage: Bool) case newMessageReceived(obvMessage: ObvMessage, completionHandler: (Set) -> Void) case attachmentWasAcknowledgedByServer(ownedCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, attachmentNumber: Int) case attachmentDownloadCancelledByServer(obvAttachment: ObvAttachment) - case cannotReturnAnyProgressForMessageAttachments(messageIdentifierFromEngine: Data) + case cannotReturnAnyProgressForMessageAttachments(ownedCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data) case attachmentDownloaded(obvAttachment: ObvAttachment) case attachmentDownloadWasResumed(ownCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, attachmentNumber: Int) case attachmentDownloadWasPaused(ownCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, attachmentNumber: Int) case newObvReturnReceiptToProcess(obvReturnReceipt: ObvReturnReceipt) case contactWasDeleted(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) - case newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(ownedIdentity: ObvCryptoId, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: EngineOptionalWrapper) - case newAPIKeyElementsForAPIKey(serverURL: URL, apiKey: UUID, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: EngineOptionalWrapper) - case noMoreFreeTrialAPIKeyAvailableForOwnedIdentity(ownedIdentity: ObvCryptoId) - case freeTrialIsStillAvailableForOwnedIdentity(ownedIdentity: ObvCryptoId) - case appStoreReceiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: ObvCryptoId, transactionIdentifier: String) - case appStoreReceiptVerificationFailed(ownedIdentity: ObvCryptoId, transactionIdentifier: String) - case appStoreReceiptVerificationSucceededButSubscriptionIsExpired(ownedIdentity: ObvCryptoId, transactionIdentifier: String) - case newObliviousChannelWithContactDevice(obvContactDevice: ObvContactDevice) + case newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(ownedIdentity: ObvCryptoId, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?) + case newObliviousChannelWithContactDevice(obvContactIdentifier: ObvContactIdentifier) case latestPhotoOfContactGroupOwnedHasBeenUpdated(group: ObvContactGroup) case publishedPhotoOfContactGroupOwnedHasBeenUpdated(group: ObvContactGroup) case publishedPhotoOfContactGroupJoinedHasBeenUpdated(group: ObvContactGroup) @@ -82,15 +74,14 @@ public enum ObvEngineNotificationNew { case wellKnownDownloadedSuccess(serverURL: URL, appInfo: [String: AppInfo]) case wellKnownDownloadedFailure(serverURL: URL) case wellKnownUpdatedSuccess(serverURL: URL, appInfo: [String: AppInfo]) - case apiKeyStatusQueryFailed(serverURL: URL, apiKey: UUID) case updatedContactIdentity(obvContactIdentity: ObvContactIdentity, trustedIdentityDetailsWereUpdated: Bool, publishedIdentityDetailsWereUpdated: Bool) case ownedIdentityUnbindingFromKeycloakPerformed(ownedIdentity: ObvCryptoId, result: Result) - case updatedSetOfContactsCertifiedByOwnKeycloak(ownedIdentity: ObvCryptoId, contactsCertifiedByOwnKeycloak: Set) case updatedOwnedIdentity(obvOwnedIdentity: ObvOwnedIdentity) case mutualScanContactAdded(obvContactIdentity: ObvContactIdentity, signature: Data) - case messageExtendedPayloadAvailable(obvMessage: ObvMessage) + case contactMessageExtendedPayloadAvailable(obvMessage: ObvMessage) + case ownedMessageExtendedPayloadAvailable(obvOwnedMessage: ObvOwnedMessage) case contactIsActiveChangedWithinEngine(obvContactIdentity: ObvContactIdentity) - case contactWasRevokedAsCompromisedWithinEngine(obvContactIdentity: ObvContactIdentity) + case contactWasRevokedAsCompromisedWithinEngine(obvContactIdentifier: ObvContactIdentifier) case ContactObvCapabilitiesWereUpdated(contact: ObvContactIdentity) case OwnedIdentityCapabilitiesWereUpdated(ownedIdentity: ObvOwnedIdentity) case newUserDialogToPresent(obvDialog: ObvDialog) @@ -101,6 +92,20 @@ public enum ObvEngineNotificationNew { case aPushTopicWasReceivedViaWebsocket(pushTopic: String) case ownedIdentityWasDeleted case aKeycloakTargetedPushNotificationReceivedViaWebsocket(ownedIdentity: ObvCryptoId) + case deletedObliviousChannelWithRemoteOwnedDevice + case newConfirmedObliviousChannelWithRemoteOwnedDevice + case newOwnedMessageReceived(obvOwnedMessage: ObvOwnedMessage, completionHandler: (Set) -> Void) + case newRemoteOwnedDevice + case ownedAttachmentDownloaded(obvOwnedAttachment: ObvOwnedAttachment) + case ownedAttachmentDownloadWasResumed(ownCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, attachmentNumber: Int) + case ownedAttachmentDownloadWasPaused(ownCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, attachmentNumber: Int) + case keycloakSynchronizationRequired(ownCryptoId: ObvCryptoId) + case contactIntroductionInvitationSent(ownedIdentity: ObvCryptoId, contactIdentityA: ObvCryptoId, contactIdentityB: ObvCryptoId) + case anOwnedDeviceWasUpdated(ownedCryptoId: ObvCryptoId) + case anOwnedDeviceWasDeleted(ownedCryptoId: ObvCryptoId) + case ownedAttachmentDownloadCancelledByServer(obvOwnedAttachment: ObvOwnedAttachment) + case newContactDevice(obvContactIdentifier: ObvContactIdentifier) + case anOwnedIdentityTransferProtocolFailed(ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID, error: Error) private enum Name { case contactGroupHasUpdatedPendingMembersAndGroupMembers @@ -111,19 +116,17 @@ public enum ObvEngineNotificationNew { case contactGroupJoinedHasUpdatedTrustedDetails case contactGroupOwnedDiscardedLatestDetails case contactGroupOwnedHasUpdatedLatestDetails - case DeletedObliviousChannelWithContactDevice + case deletedObliviousChannelWithContactDevice case newTrustedContactIdentity case newBackupKeyGenerated case ownedIdentityWasDeactivated case ownedIdentityWasReactivated case networkOperationFailedSinceOwnedIdentityIsNotActive - case serverRequiresThisDeviceToRegisterToPushNotifications + case serverRequiresAllActiveOwnedIdentitiesToRegisterToPushNotifications + case engineRequiresOwnedIdentityToRegisterToPushNotifications case outboxMessagesAndAllTheirAttachmentsWereAcknowledged case outboxMessageCouldNotBeSentToServer case callerTurnCredentialsReceived - case callerTurnCredentialsReceptionFailure - case callerTurnCredentialsReceptionPermissionDenied - case callerTurnCredentialsServerDoesNotSupportCalls case messageWasAcknowledged case newMessageReceived case attachmentWasAcknowledgedByServer @@ -135,12 +138,6 @@ public enum ObvEngineNotificationNew { case newObvReturnReceiptToProcess case contactWasDeleted case newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity - case newAPIKeyElementsForAPIKey - case noMoreFreeTrialAPIKeyAvailableForOwnedIdentity - case freeTrialIsStillAvailableForOwnedIdentity - case appStoreReceiptVerificationSucceededAndSubscriptionIsValid - case appStoreReceiptVerificationFailed - case appStoreReceiptVerificationSucceededButSubscriptionIsExpired case newObliviousChannelWithContactDevice case latestPhotoOfContactGroupOwnedHasBeenUpdated case publishedPhotoOfContactGroupOwnedHasBeenUpdated @@ -152,13 +149,12 @@ public enum ObvEngineNotificationNew { case wellKnownDownloadedSuccess case wellKnownDownloadedFailure case wellKnownUpdatedSuccess - case apiKeyStatusQueryFailed case updatedContactIdentity case ownedIdentityUnbindingFromKeycloakPerformed - case updatedSetOfContactsCertifiedByOwnKeycloak case updatedOwnedIdentity case mutualScanContactAdded - case messageExtendedPayloadAvailable + case contactMessageExtendedPayloadAvailable + case ownedMessageExtendedPayloadAvailable case contactIsActiveChangedWithinEngine case contactWasRevokedAsCompromisedWithinEngine case ContactObvCapabilitiesWereUpdated @@ -171,6 +167,20 @@ public enum ObvEngineNotificationNew { case aPushTopicWasReceivedViaWebsocket case ownedIdentityWasDeleted case aKeycloakTargetedPushNotificationReceivedViaWebsocket + case deletedObliviousChannelWithRemoteOwnedDevice + case newConfirmedObliviousChannelWithRemoteOwnedDevice + case newOwnedMessageReceived + case newRemoteOwnedDevice + case ownedAttachmentDownloaded + case ownedAttachmentDownloadWasResumed + case ownedAttachmentDownloadWasPaused + case keycloakSynchronizationRequired + case contactIntroductionInvitationSent + case anOwnedDeviceWasUpdated + case anOwnedDeviceWasDeleted + case ownedAttachmentDownloadCancelledByServer + case newContactDevice + case anOwnedIdentityTransferProtocolFailed private var namePrefix: String { String(describing: ObvEngineNotificationNew.self) } @@ -191,19 +201,17 @@ public enum ObvEngineNotificationNew { case .contactGroupJoinedHasUpdatedTrustedDetails: return Name.contactGroupJoinedHasUpdatedTrustedDetails.name case .contactGroupOwnedDiscardedLatestDetails: return Name.contactGroupOwnedDiscardedLatestDetails.name case .contactGroupOwnedHasUpdatedLatestDetails: return Name.contactGroupOwnedHasUpdatedLatestDetails.name - case .DeletedObliviousChannelWithContactDevice: return Name.DeletedObliviousChannelWithContactDevice.name + case .deletedObliviousChannelWithContactDevice: return Name.deletedObliviousChannelWithContactDevice.name case .newTrustedContactIdentity: return Name.newTrustedContactIdentity.name case .newBackupKeyGenerated: return Name.newBackupKeyGenerated.name case .ownedIdentityWasDeactivated: return Name.ownedIdentityWasDeactivated.name case .ownedIdentityWasReactivated: return Name.ownedIdentityWasReactivated.name case .networkOperationFailedSinceOwnedIdentityIsNotActive: return Name.networkOperationFailedSinceOwnedIdentityIsNotActive.name - case .serverRequiresThisDeviceToRegisterToPushNotifications: return Name.serverRequiresThisDeviceToRegisterToPushNotifications.name + case .serverRequiresAllActiveOwnedIdentitiesToRegisterToPushNotifications: return Name.serverRequiresAllActiveOwnedIdentitiesToRegisterToPushNotifications.name + case .engineRequiresOwnedIdentityToRegisterToPushNotifications: return Name.engineRequiresOwnedIdentityToRegisterToPushNotifications.name case .outboxMessagesAndAllTheirAttachmentsWereAcknowledged: return Name.outboxMessagesAndAllTheirAttachmentsWereAcknowledged.name case .outboxMessageCouldNotBeSentToServer: return Name.outboxMessageCouldNotBeSentToServer.name case .callerTurnCredentialsReceived: return Name.callerTurnCredentialsReceived.name - case .callerTurnCredentialsReceptionFailure: return Name.callerTurnCredentialsReceptionFailure.name - case .callerTurnCredentialsReceptionPermissionDenied: return Name.callerTurnCredentialsReceptionPermissionDenied.name - case .callerTurnCredentialsServerDoesNotSupportCalls: return Name.callerTurnCredentialsServerDoesNotSupportCalls.name case .messageWasAcknowledged: return Name.messageWasAcknowledged.name case .newMessageReceived: return Name.newMessageReceived.name case .attachmentWasAcknowledgedByServer: return Name.attachmentWasAcknowledgedByServer.name @@ -215,12 +223,6 @@ public enum ObvEngineNotificationNew { case .newObvReturnReceiptToProcess: return Name.newObvReturnReceiptToProcess.name case .contactWasDeleted: return Name.contactWasDeleted.name case .newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity: return Name.newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity.name - case .newAPIKeyElementsForAPIKey: return Name.newAPIKeyElementsForAPIKey.name - case .noMoreFreeTrialAPIKeyAvailableForOwnedIdentity: return Name.noMoreFreeTrialAPIKeyAvailableForOwnedIdentity.name - case .freeTrialIsStillAvailableForOwnedIdentity: return Name.freeTrialIsStillAvailableForOwnedIdentity.name - case .appStoreReceiptVerificationSucceededAndSubscriptionIsValid: return Name.appStoreReceiptVerificationSucceededAndSubscriptionIsValid.name - case .appStoreReceiptVerificationFailed: return Name.appStoreReceiptVerificationFailed.name - case .appStoreReceiptVerificationSucceededButSubscriptionIsExpired: return Name.appStoreReceiptVerificationSucceededButSubscriptionIsExpired.name case .newObliviousChannelWithContactDevice: return Name.newObliviousChannelWithContactDevice.name case .latestPhotoOfContactGroupOwnedHasBeenUpdated: return Name.latestPhotoOfContactGroupOwnedHasBeenUpdated.name case .publishedPhotoOfContactGroupOwnedHasBeenUpdated: return Name.publishedPhotoOfContactGroupOwnedHasBeenUpdated.name @@ -232,13 +234,12 @@ public enum ObvEngineNotificationNew { case .wellKnownDownloadedSuccess: return Name.wellKnownDownloadedSuccess.name case .wellKnownDownloadedFailure: return Name.wellKnownDownloadedFailure.name case .wellKnownUpdatedSuccess: return Name.wellKnownUpdatedSuccess.name - case .apiKeyStatusQueryFailed: return Name.apiKeyStatusQueryFailed.name case .updatedContactIdentity: return Name.updatedContactIdentity.name case .ownedIdentityUnbindingFromKeycloakPerformed: return Name.ownedIdentityUnbindingFromKeycloakPerformed.name - case .updatedSetOfContactsCertifiedByOwnKeycloak: return Name.updatedSetOfContactsCertifiedByOwnKeycloak.name case .updatedOwnedIdentity: return Name.updatedOwnedIdentity.name case .mutualScanContactAdded: return Name.mutualScanContactAdded.name - case .messageExtendedPayloadAvailable: return Name.messageExtendedPayloadAvailable.name + case .contactMessageExtendedPayloadAvailable: return Name.contactMessageExtendedPayloadAvailable.name + case .ownedMessageExtendedPayloadAvailable: return Name.ownedMessageExtendedPayloadAvailable.name case .contactIsActiveChangedWithinEngine: return Name.contactIsActiveChangedWithinEngine.name case .contactWasRevokedAsCompromisedWithinEngine: return Name.contactWasRevokedAsCompromisedWithinEngine.name case .ContactObvCapabilitiesWereUpdated: return Name.ContactObvCapabilitiesWereUpdated.name @@ -251,6 +252,20 @@ public enum ObvEngineNotificationNew { case .aPushTopicWasReceivedViaWebsocket: return Name.aPushTopicWasReceivedViaWebsocket.name case .ownedIdentityWasDeleted: return Name.ownedIdentityWasDeleted.name case .aKeycloakTargetedPushNotificationReceivedViaWebsocket: return Name.aKeycloakTargetedPushNotificationReceivedViaWebsocket.name + case .deletedObliviousChannelWithRemoteOwnedDevice: return Name.deletedObliviousChannelWithRemoteOwnedDevice.name + case .newConfirmedObliviousChannelWithRemoteOwnedDevice: return Name.newConfirmedObliviousChannelWithRemoteOwnedDevice.name + case .newOwnedMessageReceived: return Name.newOwnedMessageReceived.name + case .newRemoteOwnedDevice: return Name.newRemoteOwnedDevice.name + case .ownedAttachmentDownloaded: return Name.ownedAttachmentDownloaded.name + case .ownedAttachmentDownloadWasResumed: return Name.ownedAttachmentDownloadWasResumed.name + case .ownedAttachmentDownloadWasPaused: return Name.ownedAttachmentDownloadWasPaused.name + case .keycloakSynchronizationRequired: return Name.keycloakSynchronizationRequired.name + case .contactIntroductionInvitationSent: return Name.contactIntroductionInvitationSent.name + case .anOwnedDeviceWasUpdated: return Name.anOwnedDeviceWasUpdated.name + case .anOwnedDeviceWasDeleted: return Name.anOwnedDeviceWasDeleted.name + case .ownedAttachmentDownloadCancelledByServer: return Name.ownedAttachmentDownloadCancelledByServer.name + case .newContactDevice: return Name.newContactDevice.name + case .anOwnedIdentityTransferProtocolFailed: return Name.anOwnedIdentityTransferProtocolFailed.name } } } @@ -291,9 +306,9 @@ public enum ObvEngineNotificationNew { info = [ "obvContactGroup": obvContactGroup, ] - case .DeletedObliviousChannelWithContactDevice(obvContactDevice: let obvContactDevice): + case .deletedObliviousChannelWithContactDevice(obvContactIdentifier: let obvContactIdentifier): info = [ - "obvContactDevice": obvContactDevice, + "obvContactIdentifier": obvContactIdentifier, ] case .newTrustedContactIdentity(obvContactIdentity: let obvContactIdentity): info = [ @@ -316,9 +331,11 @@ public enum ObvEngineNotificationNew { info = [ "ownedIdentity": ownedIdentity, ] - case .serverRequiresThisDeviceToRegisterToPushNotifications(ownedIdentity: let ownedIdentity): + case .serverRequiresAllActiveOwnedIdentitiesToRegisterToPushNotifications: + info = nil + case .engineRequiresOwnedIdentityToRegisterToPushNotifications(ownedCryptoId: let ownedCryptoId): info = [ - "ownedIdentity": ownedIdentity, + "ownedCryptoId": ownedCryptoId, ] case .outboxMessagesAndAllTheirAttachmentsWereAcknowledged(messageIdsAndTimestampsFromServer: let messageIdsAndTimestampsFromServer): info = [ @@ -335,21 +352,6 @@ public enum ObvEngineNotificationNew { "callUuid": callUuid, "turnCredentials": turnCredentials, ] - case .callerTurnCredentialsReceptionFailure(ownedIdentity: let ownedIdentity, callUuid: let callUuid): - info = [ - "ownedIdentity": ownedIdentity, - "callUuid": callUuid, - ] - case .callerTurnCredentialsReceptionPermissionDenied(ownedIdentity: let ownedIdentity, callUuid: let callUuid): - info = [ - "ownedIdentity": ownedIdentity, - "callUuid": callUuid, - ] - case .callerTurnCredentialsServerDoesNotSupportCalls(ownedIdentity: let ownedIdentity, callUuid: let callUuid): - info = [ - "ownedIdentity": ownedIdentity, - "callUuid": callUuid, - ] case .messageWasAcknowledged(ownedIdentity: let ownedIdentity, messageIdentifierFromEngine: let messageIdentifierFromEngine, timestampFromServer: let timestampFromServer, isAppMessageWithUserContent: let isAppMessageWithUserContent, isVoipMessage: let isVoipMessage): info = [ "ownedIdentity": ownedIdentity, @@ -373,8 +375,9 @@ public enum ObvEngineNotificationNew { info = [ "obvAttachment": obvAttachment, ] - case .cannotReturnAnyProgressForMessageAttachments(messageIdentifierFromEngine: let messageIdentifierFromEngine): + case .cannotReturnAnyProgressForMessageAttachments(ownedCryptoId: let ownedCryptoId, messageIdentifierFromEngine: let messageIdentifierFromEngine): info = [ + "ownedCryptoId": ownedCryptoId, "messageIdentifierFromEngine": messageIdentifierFromEngine, ] case .attachmentDownloaded(obvAttachment: let obvAttachment): @@ -407,42 +410,11 @@ public enum ObvEngineNotificationNew { "ownedIdentity": ownedIdentity, "apiKeyStatus": apiKeyStatus, "apiPermissions": apiPermissions, - "apiKeyExpirationDate": apiKeyExpirationDate, - ] - case .newAPIKeyElementsForAPIKey(serverURL: let serverURL, apiKey: let apiKey, apiKeyStatus: let apiKeyStatus, apiPermissions: let apiPermissions, apiKeyExpirationDate: let apiKeyExpirationDate): - info = [ - "serverURL": serverURL, - "apiKey": apiKey, - "apiKeyStatus": apiKeyStatus, - "apiPermissions": apiPermissions, - "apiKeyExpirationDate": apiKeyExpirationDate, - ] - case .noMoreFreeTrialAPIKeyAvailableForOwnedIdentity(ownedIdentity: let ownedIdentity): - info = [ - "ownedIdentity": ownedIdentity, - ] - case .freeTrialIsStillAvailableForOwnedIdentity(ownedIdentity: let ownedIdentity): - info = [ - "ownedIdentity": ownedIdentity, - ] - case .appStoreReceiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: let ownedIdentity, transactionIdentifier: let transactionIdentifier): - info = [ - "ownedIdentity": ownedIdentity, - "transactionIdentifier": transactionIdentifier, - ] - case .appStoreReceiptVerificationFailed(ownedIdentity: let ownedIdentity, transactionIdentifier: let transactionIdentifier): - info = [ - "ownedIdentity": ownedIdentity, - "transactionIdentifier": transactionIdentifier, + "apiKeyExpirationDate": OptionalWrapper(apiKeyExpirationDate), ] - case .appStoreReceiptVerificationSucceededButSubscriptionIsExpired(ownedIdentity: let ownedIdentity, transactionIdentifier: let transactionIdentifier): + case .newObliviousChannelWithContactDevice(obvContactIdentifier: let obvContactIdentifier): info = [ - "ownedIdentity": ownedIdentity, - "transactionIdentifier": transactionIdentifier, - ] - case .newObliviousChannelWithContactDevice(obvContactDevice: let obvContactDevice): - info = [ - "obvContactDevice": obvContactDevice, + "obvContactIdentifier": obvContactIdentifier, ] case .latestPhotoOfContactGroupOwnedHasBeenUpdated(group: let group): info = [ @@ -486,11 +458,6 @@ public enum ObvEngineNotificationNew { "serverURL": serverURL, "appInfo": appInfo, ] - case .apiKeyStatusQueryFailed(serverURL: let serverURL, apiKey: let apiKey): - info = [ - "serverURL": serverURL, - "apiKey": apiKey, - ] case .updatedContactIdentity(obvContactIdentity: let obvContactIdentity, trustedIdentityDetailsWereUpdated: let trustedIdentityDetailsWereUpdated, publishedIdentityDetailsWereUpdated: let publishedIdentityDetailsWereUpdated): info = [ "obvContactIdentity": obvContactIdentity, @@ -502,11 +469,6 @@ public enum ObvEngineNotificationNew { "ownedIdentity": ownedIdentity, "result": result, ] - case .updatedSetOfContactsCertifiedByOwnKeycloak(ownedIdentity: let ownedIdentity, contactsCertifiedByOwnKeycloak: let contactsCertifiedByOwnKeycloak): - info = [ - "ownedIdentity": ownedIdentity, - "contactsCertifiedByOwnKeycloak": contactsCertifiedByOwnKeycloak, - ] case .updatedOwnedIdentity(obvOwnedIdentity: let obvOwnedIdentity): info = [ "obvOwnedIdentity": obvOwnedIdentity, @@ -516,17 +478,21 @@ public enum ObvEngineNotificationNew { "obvContactIdentity": obvContactIdentity, "signature": signature, ] - case .messageExtendedPayloadAvailable(obvMessage: let obvMessage): + case .contactMessageExtendedPayloadAvailable(obvMessage: let obvMessage): info = [ "obvMessage": obvMessage, ] + case .ownedMessageExtendedPayloadAvailable(obvOwnedMessage: let obvOwnedMessage): + info = [ + "obvOwnedMessage": obvOwnedMessage, + ] case .contactIsActiveChangedWithinEngine(obvContactIdentity: let obvContactIdentity): info = [ "obvContactIdentity": obvContactIdentity, ] - case .contactWasRevokedAsCompromisedWithinEngine(obvContactIdentity: let obvContactIdentity): + case .contactWasRevokedAsCompromisedWithinEngine(obvContactIdentifier: let obvContactIdentifier): info = [ - "obvContactIdentity": obvContactIdentity, + "obvContactIdentifier": obvContactIdentifier, ] case .ContactObvCapabilitiesWereUpdated(contact: let contact): info = [ @@ -570,6 +536,65 @@ public enum ObvEngineNotificationNew { info = [ "ownedIdentity": ownedIdentity, ] + case .deletedObliviousChannelWithRemoteOwnedDevice: + info = nil + case .newConfirmedObliviousChannelWithRemoteOwnedDevice: + info = nil + case .newOwnedMessageReceived(obvOwnedMessage: let obvOwnedMessage, completionHandler: let completionHandler): + info = [ + "obvOwnedMessage": obvOwnedMessage, + "completionHandler": completionHandler, + ] + case .newRemoteOwnedDevice: + info = nil + case .ownedAttachmentDownloaded(obvOwnedAttachment: let obvOwnedAttachment): + info = [ + "obvOwnedAttachment": obvOwnedAttachment, + ] + case .ownedAttachmentDownloadWasResumed(ownCryptoId: let ownCryptoId, messageIdentifierFromEngine: let messageIdentifierFromEngine, attachmentNumber: let attachmentNumber): + info = [ + "ownCryptoId": ownCryptoId, + "messageIdentifierFromEngine": messageIdentifierFromEngine, + "attachmentNumber": attachmentNumber, + ] + case .ownedAttachmentDownloadWasPaused(ownCryptoId: let ownCryptoId, messageIdentifierFromEngine: let messageIdentifierFromEngine, attachmentNumber: let attachmentNumber): + info = [ + "ownCryptoId": ownCryptoId, + "messageIdentifierFromEngine": messageIdentifierFromEngine, + "attachmentNumber": attachmentNumber, + ] + case .keycloakSynchronizationRequired(ownCryptoId: let ownCryptoId): + info = [ + "ownCryptoId": ownCryptoId, + ] + case .contactIntroductionInvitationSent(ownedIdentity: let ownedIdentity, contactIdentityA: let contactIdentityA, contactIdentityB: let contactIdentityB): + info = [ + "ownedIdentity": ownedIdentity, + "contactIdentityA": contactIdentityA, + "contactIdentityB": contactIdentityB, + ] + case .anOwnedDeviceWasUpdated(ownedCryptoId: let ownedCryptoId): + info = [ + "ownedCryptoId": ownedCryptoId, + ] + case .anOwnedDeviceWasDeleted(ownedCryptoId: let ownedCryptoId): + info = [ + "ownedCryptoId": ownedCryptoId, + ] + case .ownedAttachmentDownloadCancelledByServer(obvOwnedAttachment: let obvOwnedAttachment): + info = [ + "obvOwnedAttachment": obvOwnedAttachment, + ] + case .newContactDevice(obvContactIdentifier: let obvContactIdentifier): + info = [ + "obvContactIdentifier": obvContactIdentifier, + ] + case .anOwnedIdentityTransferProtocolFailed(ownedCryptoId: let ownedCryptoId, protocolInstanceUID: let protocolInstanceUID, error: let error): + info = [ + "ownedCryptoId": ownedCryptoId, + "protocolInstanceUID": protocolInstanceUID, + "error": error, + ] } return info } @@ -649,11 +674,11 @@ public enum ObvEngineNotificationNew { } } - public static func observeDeletedObliviousChannelWithContactDevice(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvContactDevice) -> Void) -> NSObjectProtocol { - let name = Name.DeletedObliviousChannelWithContactDevice.name + public static func observeDeletedObliviousChannelWithContactDevice(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvContactIdentifier) -> Void) -> NSObjectProtocol { + let name = Name.deletedObliviousChannelWithContactDevice.name return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let obvContactDevice = notification.userInfo!["obvContactDevice"] as! ObvContactDevice - block(obvContactDevice) + let obvContactIdentifier = notification.userInfo!["obvContactIdentifier"] as! ObvContactIdentifier + block(obvContactIdentifier) } } @@ -698,11 +723,18 @@ public enum ObvEngineNotificationNew { } } - public static func observeServerRequiresThisDeviceToRegisterToPushNotifications(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId) -> Void) -> NSObjectProtocol { - let name = Name.serverRequiresThisDeviceToRegisterToPushNotifications.name + public static func observeServerRequiresAllActiveOwnedIdentitiesToRegisterToPushNotifications(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { + let name = Name.serverRequiresAllActiveOwnedIdentitiesToRegisterToPushNotifications.name return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoId - block(ownedIdentity) + block() + } + } + + public static func observeEngineRequiresOwnedIdentityToRegisterToPushNotifications(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId) -> Void) -> NSObjectProtocol { + let name = Name.engineRequiresOwnedIdentityToRegisterToPushNotifications.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + block(ownedCryptoId) } } @@ -733,33 +765,6 @@ public enum ObvEngineNotificationNew { } } - public static func observeCallerTurnCredentialsReceptionFailure(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, UUID) -> Void) -> NSObjectProtocol { - let name = Name.callerTurnCredentialsReceptionFailure.name - return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoId - let callUuid = notification.userInfo!["callUuid"] as! UUID - block(ownedIdentity, callUuid) - } - } - - public static func observeCallerTurnCredentialsReceptionPermissionDenied(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, UUID) -> Void) -> NSObjectProtocol { - let name = Name.callerTurnCredentialsReceptionPermissionDenied.name - return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoId - let callUuid = notification.userInfo!["callUuid"] as! UUID - block(ownedIdentity, callUuid) - } - } - - public static func observeCallerTurnCredentialsServerDoesNotSupportCalls(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, UUID) -> Void) -> NSObjectProtocol { - let name = Name.callerTurnCredentialsServerDoesNotSupportCalls.name - return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoId - let callUuid = notification.userInfo!["callUuid"] as! UUID - block(ownedIdentity, callUuid) - } - } - public static func observeMessageWasAcknowledged(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, Data, Date, Bool, Bool) -> Void) -> NSObjectProtocol { let name = Name.messageWasAcknowledged.name return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in @@ -799,11 +804,12 @@ public enum ObvEngineNotificationNew { } } - public static func observeCannotReturnAnyProgressForMessageAttachments(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (Data) -> Void) -> NSObjectProtocol { + public static func observeCannotReturnAnyProgressForMessageAttachments(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, Data) -> Void) -> NSObjectProtocol { let name = Name.cannotReturnAnyProgressForMessageAttachments.name return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId let messageIdentifierFromEngine = notification.userInfo!["messageIdentifierFromEngine"] as! Data - block(messageIdentifierFromEngine) + block(ownedCryptoId, messageIdentifierFromEngine) } } @@ -852,77 +858,23 @@ public enum ObvEngineNotificationNew { } } - public static func observeNewAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, APIKeyStatus, APIPermissions, EngineOptionalWrapper) -> Void) -> NSObjectProtocol { + public static func observeNewAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, APIKeyStatus, APIPermissions, Date?) -> Void) -> NSObjectProtocol { let name = Name.newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity.name return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoId let apiKeyStatus = notification.userInfo!["apiKeyStatus"] as! APIKeyStatus let apiPermissions = notification.userInfo!["apiPermissions"] as! APIPermissions - let apiKeyExpirationDate = notification.userInfo!["apiKeyExpirationDate"] as! EngineOptionalWrapper + let apiKeyExpirationDateWrapper = notification.userInfo!["apiKeyExpirationDate"] as! OptionalWrapper + let apiKeyExpirationDate = apiKeyExpirationDateWrapper.value block(ownedIdentity, apiKeyStatus, apiPermissions, apiKeyExpirationDate) } } - public static func observeNewAPIKeyElementsForAPIKey(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (URL, UUID, APIKeyStatus, APIPermissions, EngineOptionalWrapper) -> Void) -> NSObjectProtocol { - let name = Name.newAPIKeyElementsForAPIKey.name - return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let serverURL = notification.userInfo!["serverURL"] as! URL - let apiKey = notification.userInfo!["apiKey"] as! UUID - let apiKeyStatus = notification.userInfo!["apiKeyStatus"] as! APIKeyStatus - let apiPermissions = notification.userInfo!["apiPermissions"] as! APIPermissions - let apiKeyExpirationDate = notification.userInfo!["apiKeyExpirationDate"] as! EngineOptionalWrapper - block(serverURL, apiKey, apiKeyStatus, apiPermissions, apiKeyExpirationDate) - } - } - - public static func observeNoMoreFreeTrialAPIKeyAvailableForOwnedIdentity(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId) -> Void) -> NSObjectProtocol { - let name = Name.noMoreFreeTrialAPIKeyAvailableForOwnedIdentity.name - return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoId - block(ownedIdentity) - } - } - - public static func observeFreeTrialIsStillAvailableForOwnedIdentity(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId) -> Void) -> NSObjectProtocol { - let name = Name.freeTrialIsStillAvailableForOwnedIdentity.name - return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoId - block(ownedIdentity) - } - } - - public static func observeAppStoreReceiptVerificationSucceededAndSubscriptionIsValid(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, String) -> Void) -> NSObjectProtocol { - let name = Name.appStoreReceiptVerificationSucceededAndSubscriptionIsValid.name - return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoId - let transactionIdentifier = notification.userInfo!["transactionIdentifier"] as! String - block(ownedIdentity, transactionIdentifier) - } - } - - public static func observeAppStoreReceiptVerificationFailed(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, String) -> Void) -> NSObjectProtocol { - let name = Name.appStoreReceiptVerificationFailed.name - return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoId - let transactionIdentifier = notification.userInfo!["transactionIdentifier"] as! String - block(ownedIdentity, transactionIdentifier) - } - } - - public static func observeAppStoreReceiptVerificationSucceededButSubscriptionIsExpired(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, String) -> Void) -> NSObjectProtocol { - let name = Name.appStoreReceiptVerificationSucceededButSubscriptionIsExpired.name - return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoId - let transactionIdentifier = notification.userInfo!["transactionIdentifier"] as! String - block(ownedIdentity, transactionIdentifier) - } - } - - public static func observeNewObliviousChannelWithContactDevice(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvContactDevice) -> Void) -> NSObjectProtocol { + public static func observeNewObliviousChannelWithContactDevice(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvContactIdentifier) -> Void) -> NSObjectProtocol { let name = Name.newObliviousChannelWithContactDevice.name return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let obvContactDevice = notification.userInfo!["obvContactDevice"] as! ObvContactDevice - block(obvContactDevice) + let obvContactIdentifier = notification.userInfo!["obvContactIdentifier"] as! ObvContactIdentifier + block(obvContactIdentifier) } } @@ -1008,15 +960,6 @@ public enum ObvEngineNotificationNew { } } - public static func observeApiKeyStatusQueryFailed(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (URL, UUID) -> Void) -> NSObjectProtocol { - let name = Name.apiKeyStatusQueryFailed.name - return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let serverURL = notification.userInfo!["serverURL"] as! URL - let apiKey = notification.userInfo!["apiKey"] as! UUID - block(serverURL, apiKey) - } - } - public static func observeUpdatedContactIdentity(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvContactIdentity, Bool, Bool) -> Void) -> NSObjectProtocol { let name = Name.updatedContactIdentity.name return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in @@ -1036,15 +979,6 @@ public enum ObvEngineNotificationNew { } } - public static func observeUpdatedSetOfContactsCertifiedByOwnKeycloak(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, Set) -> Void) -> NSObjectProtocol { - let name = Name.updatedSetOfContactsCertifiedByOwnKeycloak.name - return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoId - let contactsCertifiedByOwnKeycloak = notification.userInfo!["contactsCertifiedByOwnKeycloak"] as! Set - block(ownedIdentity, contactsCertifiedByOwnKeycloak) - } - } - public static func observeUpdatedOwnedIdentity(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvOwnedIdentity) -> Void) -> NSObjectProtocol { let name = Name.updatedOwnedIdentity.name return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in @@ -1062,14 +996,22 @@ public enum ObvEngineNotificationNew { } } - public static func observeMessageExtendedPayloadAvailable(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvMessage) -> Void) -> NSObjectProtocol { - let name = Name.messageExtendedPayloadAvailable.name + public static func observeContactMessageExtendedPayloadAvailable(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvMessage) -> Void) -> NSObjectProtocol { + let name = Name.contactMessageExtendedPayloadAvailable.name return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in let obvMessage = notification.userInfo!["obvMessage"] as! ObvMessage block(obvMessage) } } + public static func observeOwnedMessageExtendedPayloadAvailable(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvOwnedMessage) -> Void) -> NSObjectProtocol { + let name = Name.ownedMessageExtendedPayloadAvailable.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let obvOwnedMessage = notification.userInfo!["obvOwnedMessage"] as! ObvOwnedMessage + block(obvOwnedMessage) + } + } + public static func observeContactIsActiveChangedWithinEngine(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvContactIdentity) -> Void) -> NSObjectProtocol { let name = Name.contactIsActiveChangedWithinEngine.name return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in @@ -1078,11 +1020,11 @@ public enum ObvEngineNotificationNew { } } - public static func observeContactWasRevokedAsCompromisedWithinEngine(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvContactIdentity) -> Void) -> NSObjectProtocol { + public static func observeContactWasRevokedAsCompromisedWithinEngine(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvContactIdentifier) -> Void) -> NSObjectProtocol { let name = Name.contactWasRevokedAsCompromisedWithinEngine.name return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in - let obvContactIdentity = notification.userInfo!["obvContactIdentity"] as! ObvContactIdentity - block(obvContactIdentity) + let obvContactIdentifier = notification.userInfo!["obvContactIdentifier"] as! ObvContactIdentifier + block(obvContactIdentifier) } } @@ -1169,4 +1111,122 @@ public enum ObvEngineNotificationNew { } } + public static func observeDeletedObliviousChannelWithRemoteOwnedDevice(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { + let name = Name.deletedObliviousChannelWithRemoteOwnedDevice.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + block() + } + } + + public static func observeNewConfirmedObliviousChannelWithRemoteOwnedDevice(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { + let name = Name.newConfirmedObliviousChannelWithRemoteOwnedDevice.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + block() + } + } + + public static func observeNewOwnedMessageReceived(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvOwnedMessage, @escaping (Set) -> Void) -> Void) -> NSObjectProtocol { + let name = Name.newOwnedMessageReceived.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let obvOwnedMessage = notification.userInfo!["obvOwnedMessage"] as! ObvOwnedMessage + let completionHandler = notification.userInfo!["completionHandler"] as! (Set) -> Void + block(obvOwnedMessage, completionHandler) + } + } + + public static func observeNewRemoteOwnedDevice(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { + let name = Name.newRemoteOwnedDevice.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + block() + } + } + + public static func observeOwnedAttachmentDownloaded(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvOwnedAttachment) -> Void) -> NSObjectProtocol { + let name = Name.ownedAttachmentDownloaded.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let obvOwnedAttachment = notification.userInfo!["obvOwnedAttachment"] as! ObvOwnedAttachment + block(obvOwnedAttachment) + } + } + + public static func observeOwnedAttachmentDownloadWasResumed(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, Data, Int) -> Void) -> NSObjectProtocol { + let name = Name.ownedAttachmentDownloadWasResumed.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let ownCryptoId = notification.userInfo!["ownCryptoId"] as! ObvCryptoId + let messageIdentifierFromEngine = notification.userInfo!["messageIdentifierFromEngine"] as! Data + let attachmentNumber = notification.userInfo!["attachmentNumber"] as! Int + block(ownCryptoId, messageIdentifierFromEngine, attachmentNumber) + } + } + + public static func observeOwnedAttachmentDownloadWasPaused(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, Data, Int) -> Void) -> NSObjectProtocol { + let name = Name.ownedAttachmentDownloadWasPaused.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let ownCryptoId = notification.userInfo!["ownCryptoId"] as! ObvCryptoId + let messageIdentifierFromEngine = notification.userInfo!["messageIdentifierFromEngine"] as! Data + let attachmentNumber = notification.userInfo!["attachmentNumber"] as! Int + block(ownCryptoId, messageIdentifierFromEngine, attachmentNumber) + } + } + + public static func observeKeycloakSynchronizationRequired(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId) -> Void) -> NSObjectProtocol { + let name = Name.keycloakSynchronizationRequired.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let ownCryptoId = notification.userInfo!["ownCryptoId"] as! ObvCryptoId + block(ownCryptoId) + } + } + + public static func observeContactIntroductionInvitationSent(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, ObvCryptoId, ObvCryptoId) -> Void) -> NSObjectProtocol { + let name = Name.contactIntroductionInvitationSent.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoId + let contactIdentityA = notification.userInfo!["contactIdentityA"] as! ObvCryptoId + let contactIdentityB = notification.userInfo!["contactIdentityB"] as! ObvCryptoId + block(ownedIdentity, contactIdentityA, contactIdentityB) + } + } + + public static func observeAnOwnedDeviceWasUpdated(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId) -> Void) -> NSObjectProtocol { + let name = Name.anOwnedDeviceWasUpdated.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + block(ownedCryptoId) + } + } + + public static func observeAnOwnedDeviceWasDeleted(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId) -> Void) -> NSObjectProtocol { + let name = Name.anOwnedDeviceWasDeleted.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + block(ownedCryptoId) + } + } + + public static func observeOwnedAttachmentDownloadCancelledByServer(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvOwnedAttachment) -> Void) -> NSObjectProtocol { + let name = Name.ownedAttachmentDownloadCancelledByServer.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let obvOwnedAttachment = notification.userInfo!["obvOwnedAttachment"] as! ObvOwnedAttachment + block(obvOwnedAttachment) + } + } + + public static func observeNewContactDevice(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvContactIdentifier) -> Void) -> NSObjectProtocol { + let name = Name.newContactDevice.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let obvContactIdentifier = notification.userInfo!["obvContactIdentifier"] as! ObvContactIdentifier + block(obvContactIdentifier) + } + } + + public static func observeAnOwnedIdentityTransferProtocolFailed(within appNotificationCenter: NotificationCenter, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, UID, Error) -> Void) -> NSObjectProtocol { + let name = Name.anOwnedIdentityTransferProtocolFailed.name + return appNotificationCenter.addObserver(forName: name, object: nil, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let protocolInstanceUID = notification.userInfo!["protocolInstanceUID"] as! UID + let error = notification.userInfo!["error"] as! Error + block(ownedCryptoId, protocolInstanceUID, error) + } + } + } diff --git a/Engine/ObvEngine/ObvEngine/ObvEngineNotificationNew.yml b/Engine/ObvEngine/ObvEngine/ObvEngineNotificationNew.yml deleted file mode 100644 index 99510abc..00000000 --- a/Engine/ObvEngine/ObvEngine/ObvEngineNotificationNew.yml +++ /dev/null @@ -1,258 +0,0 @@ -import: - - Foundation - - ObvTypes - - OlvidUtils - - ObvCrypto -options: - - {key: post, value: postOnBackgroundQueue} - - {key: notificationCenterName, value: appNotificationCenter} - - {key: notificationCenterType, value: NotificationCenter} - - {key: visibility, value: public} - - {key: objectInObserve, value: false} - - {key: nilObjectInPost, value: true} -notifications: -- name: contactGroupHasUpdatedPendingMembersAndGroupMembers - params: - - {name: obvContactGroup, type: ObvContactGroup} -- name: newContactGroup - params: - - {name: obvContactGroup, type: ObvContactGroup} -- name: newPendingGroupMemberDeclinedStatus - params: - - {name: obvContactGroup, type: ObvContactGroup} -- name: contactGroupDeleted - params: - - {name: ownedIdentity, type: ObvOwnedIdentity} - - {name: groupOwner, type: ObvCryptoId} - - {name: groupUid, type: UID} -- name: contactGroupHasUpdatedPublishedDetails - params: - - {name: obvContactGroup, type: ObvContactGroup} -- name: contactGroupJoinedHasUpdatedTrustedDetails - params: - - {name: obvContactGroup, type: ObvContactGroup} -- name: contactGroupOwnedDiscardedLatestDetails - params: - - {name: obvContactGroup, type: ObvContactGroup} -- name: contactGroupOwnedHasUpdatedLatestDetails - params: - - {name: obvContactGroup, type: ObvContactGroup} -- name: DeletedObliviousChannelWithContactDevice - params: - - {name: obvContactDevice, type: ObvContactDevice} -- name: newTrustedContactIdentity - params: - - {name: obvContactIdentity, type: ObvContactIdentity} -- name: newBackupKeyGenerated - params: - - {name: backupKeyString, type: String} - - {name: obvBackupKeyInformation, type: ObvBackupKeyInformation} -- name: ownedIdentityWasDeactivated - params: - - {name: ownedIdentity, type: ObvCryptoId} -- name: ownedIdentityWasReactivated - params: - - {name: ownedIdentity, type: ObvCryptoId} -- name: networkOperationFailedSinceOwnedIdentityIsNotActive - params: - - {name: ownedIdentity, type: ObvCryptoId} -- name: serverRequiresThisDeviceToRegisterToPushNotifications - params: - - {name: ownedIdentity, type: ObvCryptoId} -- name: outboxMessagesAndAllTheirAttachmentsWereAcknowledged - params: - - {name: messageIdsAndTimestampsFromServer, type: "[(messageIdentifierFromEngine: Data, ownedCryptoId: ObvCryptoId, timestampFromServer: Date)]"} -- name: outboxMessageCouldNotBeSentToServer - params: - - {name: messageIdentifierFromEngine, type: Data} - - {name: ownedIdentity, type: ObvCryptoId} -- name: callerTurnCredentialsReceived - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: callUuid, type: UUID} - - {name: turnCredentials, type: ObvTurnCredentials} -- name: callerTurnCredentialsReceptionFailure - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: callUuid, type: UUID} -- name: callerTurnCredentialsReceptionPermissionDenied - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: callUuid, type: UUID} -- name: callerTurnCredentialsServerDoesNotSupportCalls - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: callUuid, type: UUID} -- name: messageWasAcknowledged - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: messageIdentifierFromEngine, type: Data} - - {name: timestampFromServer, type: Date} - - {name: isAppMessageWithUserContent, type: Bool} - - {name: isVoipMessage, type: Bool} -- name: newMessageReceived - params: - - {name: obvMessage, type: ObvMessage} - - {name: completionHandler, type: "(Set) -> Void", escaping: true} -- name: attachmentWasAcknowledgedByServer - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: messageIdentifierFromEngine, type: Data} - - {name: attachmentNumber, type: Int} -- name: attachmentDownloadCancelledByServer - params: - - {name: obvAttachment, type: ObvAttachment} -- name: cannotReturnAnyProgressForMessageAttachments - params: - - {name: messageIdentifierFromEngine, type: Data} -- name: attachmentDownloaded - params: - - {name: obvAttachment, type: ObvAttachment} -- name: attachmentDownloadWasResumed - params: - - {name: ownCryptoId, type: ObvCryptoId} - - {name: messageIdentifierFromEngine, type: Data} - - {name: attachmentNumber, type: Int} -- name: attachmentDownloadWasPaused - params: - - {name: ownCryptoId, type: ObvCryptoId} - - {name: messageIdentifierFromEngine, type: Data} - - {name: attachmentNumber, type: Int} -- name: newObvReturnReceiptToProcess - params: - - {name: obvReturnReceipt, type: ObvReturnReceipt} -- name: contactWasDeleted - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: contactCryptoId, type: ObvCryptoId} -- name: newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: apiKeyStatus, type: APIKeyStatus} - - {name: apiPermissions, type: APIPermissions} - - {name: apiKeyExpirationDate, type: "EngineOptionalWrapper"} -- name: newAPIKeyElementsForAPIKey - params: - - {name: serverURL, type: URL} - - {name: apiKey, type: UUID} - - {name: apiKeyStatus, type: APIKeyStatus} - - {name: apiPermissions, type: APIPermissions} - - {name: apiKeyExpirationDate, type: "EngineOptionalWrapper"} -- name: noMoreFreeTrialAPIKeyAvailableForOwnedIdentity - params: - - {name: ownedIdentity, type: ObvCryptoId} -- name: freeTrialIsStillAvailableForOwnedIdentity - params: - - {name: ownedIdentity, type: ObvCryptoId} -- name: appStoreReceiptVerificationSucceededAndSubscriptionIsValid - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: transactionIdentifier, type: String} -- name: appStoreReceiptVerificationFailed - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: transactionIdentifier, type: String} -- name: appStoreReceiptVerificationSucceededButSubscriptionIsExpired - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: transactionIdentifier, type: String} -- name: newObliviousChannelWithContactDevice - params: - - {name: obvContactDevice, type: ObvContactDevice} -- name: latestPhotoOfContactGroupOwnedHasBeenUpdated - params: - - {name: group, type: ObvContactGroup} -- name: publishedPhotoOfContactGroupOwnedHasBeenUpdated - params: - - {name: group, type: ObvContactGroup} -- name: publishedPhotoOfContactGroupJoinedHasBeenUpdated - params: - - {name: group, type: ObvContactGroup} -- name: trustedPhotoOfContactGroupJoinedHasBeenUpdated - params: - - {name: group, type: ObvContactGroup} -- name: publishedPhotoOfOwnedIdentityHasBeenUpdated - params: - - {name: ownedIdentity, type: ObvOwnedIdentity} -- name: publishedPhotoOfContactIdentityHasBeenUpdated - params: - - {name: contactIdentity, type: ObvContactIdentity} -- name: trustedPhotoOfContactIdentityHasBeenUpdated - params: - - {name: contactIdentity, type: ObvContactIdentity} -- name: wellKnownDownloadedSuccess - params: - - {name: serverURL, type: URL} - - {name: appInfo, type: "[String: AppInfo]"} -- name: wellKnownDownloadedFailure - params: - - {name: serverURL, type: URL} -- name: wellKnownUpdatedSuccess - params: - - {name: serverURL, type: URL} - - {name: appInfo, type: "[String: AppInfo]"} -- name: apiKeyStatusQueryFailed - params: - - {name: serverURL, type: URL} - - {name: apiKey, type: UUID} -- name: updatedContactIdentity - params: - - {name: obvContactIdentity, type: ObvContactIdentity} - - {name: trustedIdentityDetailsWereUpdated, type: Bool} - - {name: publishedIdentityDetailsWereUpdated, type: Bool} -- name: ownedIdentityUnbindingFromKeycloakPerformed - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: result, type: "Result"} -- name: updatedSetOfContactsCertifiedByOwnKeycloak - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: contactsCertifiedByOwnKeycloak, type: Set} -- name: updatedOwnedIdentity - params: - - {name: obvOwnedIdentity, type: ObvOwnedIdentity} -- name: mutualScanContactAdded - params: - - {name: obvContactIdentity, type: ObvContactIdentity} - - {name: signature, type: Data} -- name: messageExtendedPayloadAvailable - params: - - {name: obvMessage, type: ObvMessage} -- name: contactIsActiveChangedWithinEngine - params: - - {name: obvContactIdentity, type: ObvContactIdentity} -- name: contactWasRevokedAsCompromisedWithinEngine - params: - - {name: obvContactIdentity, type: ObvContactIdentity} -- name: ContactObvCapabilitiesWereUpdated - params: - - {name: contact, type: ObvContactIdentity} -- name: OwnedIdentityCapabilitiesWereUpdated - params: - - {name: ownedIdentity, type: ObvOwnedIdentity} -- name: newUserDialogToPresent - params: - - {name: obvDialog, type: ObvDialog} -- name: aPersistedDialogWasDeleted - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: uuid, type: UUID} -- name: groupV2WasCreatedOrUpdated - params: - - {name: obvGroupV2, type: ObvGroupV2} - - {name: initiator, type: ObvGroupV2.CreationOrUpdateInitiator} -- name: groupV2WasDeleted - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: appGroupIdentifier, type: Data} -- name: groupV2UpdateDidFail - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: appGroupIdentifier, type: Data} -- name: aPushTopicWasReceivedViaWebsocket - params: - - {name: pushTopic, type: String} -- name: ownedIdentityWasDeleted -- name: aKeycloakTargetedPushNotificationReceivedViaWebsocket - params: - - {name: ownedIdentity, type: ObvCryptoId} diff --git a/Engine/ObvEngine/ObvEngine/ProtocolWaiter.swift b/Engine/ObvEngine/ObvEngine/ProtocolWaiter.swift new file mode 100644 index 00000000..227d3e16 --- /dev/null +++ b/Engine/ObvEngine/ObvEngine/ProtocolWaiter.swift @@ -0,0 +1,147 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import ObvCrypto +import ObvTypes +import ObvMetaManager + + +/// This actor allows the engine to post a protocol message and to wait until it is fully processed (i.e., deleted from the `ReceivedMessage` database of the protocol manager). +/// Note that the fact that a protocol message is deleted does not necessarily mean that the protocol step did succeed (or even that a protocol step was executed). +/// This actor was created while implementing the bind/unbind to keycloak protocol, making it possible to make sure the message allowing to bind the owned identity was processed before +/// registering the owned identity (at the app level). +actor ProtocolWaiter { + + private weak var delegateManager: ObvMetaManager? + private let prng: PRNGService + + init(delegateManager: ObvMetaManager, prng: PRNGService) { + self.delegateManager = delegateManager + self.prng = prng + } + + private var createContextDelegate: ObvCreateContextDelegate? { + delegateManager?.createContextDelegate + } + + private var channelDelegate: ObvChannelDelegate? { + delegateManager?.channelDelegate + } + + private var flowDelegate: ObvFlowDelegate? { + delegateManager?.flowDelegate + } + + private var notificationDelegate: ObvNotificationDelegate? { + delegateManager?.notificationDelegate + } + + /// Stores the continuations created in ``waitUntilEndOfProcessingOfProtocolMessage(_:log:)``. When a protocol ``ReceivedMessage`` is deleted, a notification is send. + /// We process this notification in this actor and check whether the received `messageId` corresponds to some store completion. If it is the case, we remove the `messageId` from the list of Ids. + /// Once the list is empty, we call the completion. + private var storedContinuations = [(continuation: CheckedContinuation, messageIds: [ObvMessageIdentifier])]() + + private var token: NSObjectProtocol? + + + private func observeProtocolReceivedMessageWasDeletedNotificationsIfRequired() throws { + guard token == nil else { return } + guard let notificationDelegate else { assertionFailure(); throw ObvError.notificationDelegateIsNil } + token = ObvProtocolNotification.observeProtocolReceivedMessageWasDeleted(within: notificationDelegate) { messageId in + Task { [weak self] in await self?.processProtocolReceivedMessageWasDeleted(messageId: messageId) } + } + } + + + private func processProtocolReceivedMessageWasDeleted(messageId: ObvMessageIdentifier) { + var continuationsToKeep = [(continuation: CheckedContinuation, messageIds: [ObvMessageIdentifier])]() + while let storedContinuation = storedContinuations.popLast() { + let continuation = storedContinuation.continuation + var messagesIds = storedContinuation.messageIds + messagesIds.removeAll(where: { $0 == messageId }) + if messagesIds.isEmpty { + storedContinuation.continuation.resume() + } else { + continuationsToKeep.append((continuation, messagesIds)) + } + } + storedContinuations = continuationsToKeep + } + + + func waitUntilEndOfProcessingOfProtocolMessage(_ message: ObvChannelProtocolMessageToSend, log: OSLog) async throws { + + guard let createContextDelegate = createContextDelegate else { assertionFailure(); throw ObvError.createContextDelegateIsNil } + guard let channelDelegate else { assertionFailure(); throw ObvError.channelDelegateIsNil } + guard let flowDelegate else { assertionFailure(); throw ObvError.flowDelegateIsNil } + + try observeProtocolReceivedMessageWasDeletedNotificationsIfRequired() + + let flowId = try flowDelegate.startBackgroundActivityForStartingOrResumingProtocol() + let prng = self.prng + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + createContextDelegate.performBackgroundTask(flowId: flowId) { obvContext in + let messageIds: [ObvMessageIdentifier] + do { + messageIds = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext).map({ $0.key }) + } catch { + assertionFailure() + continuation.resume(throwing: error) + return + } + self.storedContinuations.append((continuation, messageIds)) + do { + try obvContext.save(logOnFailure: log) + } catch { + assertionFailure() + continuation.resume(throwing: error) + return + } + } + } + + } + + // MARK: - Errors + + enum ObvError: LocalizedError { + + case createContextDelegateIsNil + case channelDelegateIsNil + case flowDelegateIsNil + case notificationDelegateIsNil + + var errorDescription: String? { + switch self { + case .createContextDelegateIsNil: + return "Create context delegate is nil" + case .flowDelegateIsNil: + return "Flow delegate is nil" + case .channelDelegateIsNil: + return "Channel delegate is nil" + case .notificationDelegateIsNil: + return "Notification delegate is nil" + } + } + + } +} diff --git a/Engine/ObvEngine/ObvEngine/ReturnReceiptSender/ReturnReceiptSender.swift b/Engine/ObvEngine/ObvEngine/ReturnReceiptSender/ReturnReceiptSender.swift index b52ae5d5..d22489af 100644 --- a/Engine/ObvEngine/ObvEngine/ReturnReceiptSender/ReturnReceiptSender.swift +++ b/Engine/ObvEngine/ObvEngine/ReturnReceiptSender/ReturnReceiptSender.swift @@ -58,7 +58,7 @@ final class ReturnReceiptSender: NSObject, ObvErrorMaker { } - func postReturnReceiptWithElements(_ elements: (nonce: Data, key: Data), andStatus status: Int, to contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId, withDeviceUids deviceUids: Set, messageId: MessageIdentifier, attachmentNumber: Int?, flowId: FlowIdentifier) async throws { + func postReturnReceiptWithElements(_ elements: (nonce: Data, key: Data), andStatus status: Int, to contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId, withDeviceUids deviceUids: Set, messageId: ObvMessageIdentifier, attachmentNumber: Int?, flowId: FlowIdentifier) async throws { guard let identityDelegate = self.identityDelegate else { os_log("The identity delegate is not set", log: log, type: .fault) @@ -86,13 +86,16 @@ final class ReturnReceiptSender: NSObject, ObvErrorMaker { deviceUids: Array(deviceUids), flowId: flowId) method.identityDelegate = identityDelegate - let urlRequest = try method.getURLRequest() + // Since the request of a upload task should not contain a body or a body stream, we use URLSession.upload(for:from:), passing the data to send via the `from` attribute. guard let dataToSend = method.dataToSend else { throw ReturnReceiptSender.makeError(message: "Could not get data to send") } + method.dataToSend = nil + + let urlRequest = try method.getURLRequest() - let (responseData, response) = try await URLSession.shared.obvUpload(for: urlRequest, from: dataToSend) + let (responseData, response) = try await URLSession.shared.upload(for: urlRequest, from: dataToSend) guard let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 else { throw Self.makeError(message: "Bad HTTPURLResponse") diff --git a/Engine/ObvEngine/ObvEngine/Types/Identities/ObvContactIdentity.swift b/Engine/ObvEngine/ObvEngine/Types/Identities/ObvContactIdentity.swift index 9b04e6c8..f379e4a4 100644 --- a/Engine/ObvEngine/ObvEngine/Types/Identities/ObvContactIdentity.swift +++ b/Engine/ObvEngine/ObvEngine/Types/Identities/ObvContactIdentity.swift @@ -40,6 +40,10 @@ public struct ObvContactIdentity: ObvIdentity { public var currentIdentityDetails: ObvIdentityDetails { return trustedIdentityDetails } + + public var contactIdentifier: ObvContactIdentifier { + ObvContactIdentifier(contactCryptoId: cryptoId, ownedCryptoId: ownedIdentity.cryptoId) + } init(cryptoIdentity: ObvCryptoIdentity, trustedIdentityDetails: ObvIdentityDetails, publishedIdentityDetails: ObvIdentityDetails?, ownedIdentity: ObvOwnedIdentity, isCertifiedByOwnKeycloak: Bool, isActive: Bool, isRevokedAsCompromised: Bool, isOneToOne: Bool) { self.cryptoId = ObvCryptoId(cryptoIdentity: cryptoIdentity) @@ -54,8 +58,7 @@ public struct ObvContactIdentity: ObvIdentity { public func getGenericIdentityWithPublishedOrTrustedDetails() -> ObvGenericIdentity { let details = publishedIdentityDetails ?? trustedIdentityDetails - return ObvGenericIdentity(cryptoIdentity: cryptoId.cryptoIdentity, - currentIdentityDetails: details) + return ObvGenericIdentity.init(cryptoId: cryptoId, currentIdentityDetails: details) } } diff --git a/Engine/ObvEngine/ObvEngine/Types/Identities/ObvOwnedIdentity.swift b/Engine/ObvEngine/ObvEngine/Types/Identities/ObvOwnedIdentity.swift index 2ea14ad2..c54a9069 100644 --- a/Engine/ObvEngine/ObvEngine/Types/Identities/ObvOwnedIdentity.swift +++ b/Engine/ObvEngine/ObvEngine/Types/Identities/ObvOwnedIdentity.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/Engine/ObvEngine/ObvEngine/Types/ObvContactDevice.swift b/Engine/ObvEngine/ObvEngine/Types/ObvContactDevice.swift index 21b2c7dc..730351fd 100644 --- a/Engine/ObvEngine/ObvEngine/Types/ObvContactDevice.swift +++ b/Engine/ObvEngine/ObvEngine/Types/ObvContactDevice.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -28,15 +28,18 @@ import OlvidUtils public struct ObvContactDevice: Hashable, CustomStringConvertible { public let identifier: Data - public let contactIdentity: ObvContactIdentity - - public var ownedIdentity: ObvOwnedIdentity { - contactIdentity.ownedIdentity + public let contactIdentifier: ObvContactIdentifier + public let secureChannelStatus: SecureChannelStatus + + public enum SecureChannelStatus { + case creationInProgress + case created } - public init(identifier: Data, contactIdentity: ObvContactIdentity) { - self.identifier = identifier - self.contactIdentity = contactIdentity + init(remoteDeviceUid: UID, contactIdentifier: ObvContactIdentifier, secureChannelStatus: SecureChannelStatus) { + self.identifier = remoteDeviceUid.raw + self.contactIdentifier = contactIdentifier + self.secureChannelStatus = secureChannelStatus } } @@ -45,21 +48,6 @@ public struct ObvContactDevice: Hashable, CustomStringConvertible { // MARK: Implementing CustomStringConvertible extension ObvContactDevice { public var description: String { - return "ObvContactDevice<\(contactIdentity.description), \(ownedIdentity.description)>" - } -} - - -internal extension ObvContactDevice { - - init?(contactDeviceUid: UID, contactCryptoIdentity: ObvCryptoIdentity, ownedCryptoIdentity: ObvCryptoIdentity, identityDelegate: ObvIdentityDelegate, within obvContext: ObvContext) { - guard let contactIdentity = ObvContactIdentity(contactCryptoIdentity: contactCryptoIdentity, ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate, within: obvContext) else { return nil } - do { - guard try identityDelegate.isDevice(withUid: contactDeviceUid, aDeviceOfContactIdentity: contactCryptoIdentity, ofOwnedIdentity: ownedCryptoIdentity, within: obvContext) else { return nil } - } catch { - return nil - } - self.contactIdentity = contactIdentity - self.identifier = contactDeviceUid.raw + return "ObvContactDevice<\(contactIdentifier.description), \(identifier.description)>" } } diff --git a/Engine/ObvEngine/ObvEngine/Types/ObvContactGroup.swift b/Engine/ObvEngine/ObvEngine/Types/ObvContactGroup.swift index 65b67aa1..23ecb157 100644 --- a/Engine/ObvEngine/ObvEngine/Types/ObvContactGroup.swift +++ b/Engine/ObvEngine/ObvEngine/Types/ObvContactGroup.swift @@ -45,6 +45,10 @@ public struct ObvContactGroup { } } + public var groupIdentifier: GroupV1Identifier { + return .init(groupUid: groupUid, groupOwner: groupOwner.cryptoId) + } + public enum GroupType { case owned case joined diff --git a/Engine/ObvEngine/ObvEngine/Types/ObvCurrentDevice.swift b/Engine/ObvEngine/ObvEngine/Types/ObvCurrentDevice.swift deleted file mode 100644 index 4b4fa365..00000000 --- a/Engine/ObvEngine/ObvEngine/Types/ObvCurrentDevice.swift +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import ObvCrypto -import ObvTypes -import ObvMetaManager -import OlvidUtils - -public struct ObvCurrentDevice: Hashable, CustomStringConvertible { - - public let identifier: Data - public let ownedIndentity: ObvOwnedIdentity - -} - -// MARK: Implementing CustomStringConvertible -extension ObvCurrentDevice { - public var description: String { - return "ObvCurrentDevice<\(ownedIndentity.description)>" - } -} - -internal extension ObvCurrentDevice { - - init?(currentDeviceUid: UID, identityDelegate: ObvIdentityDelegate, within obvContext: ObvContext) { - let ownedCryptoIdentity: ObvCryptoIdentity - do { - ownedCryptoIdentity = try identityDelegate.getOwnedIdentityOfCurrentDeviceUid(currentDeviceUid, within: obvContext) - } catch { - return nil - } - guard let obvOwnedIdentity = ObvOwnedIdentity(ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate, within: obvContext) else { return nil } - self.identifier = currentDeviceUid.raw - self.ownedIndentity = obvOwnedIdentity - } - -} diff --git a/Engine/ObvEngine/ObvEngine/Types/ObvMessage.swift b/Engine/ObvEngine/ObvEngine/Types/ObvMessage.swift deleted file mode 100644 index c4f4b2f5..00000000 --- a/Engine/ObvEngine/ObvEngine/Types/ObvMessage.swift +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import ObvMetaManager -import ObvTypes -import OlvidUtils - -public struct ObvMessage { - - public let fromContactIdentity: ObvContactIdentity - internal let messageId: MessageIdentifier - public let attachments: [ObvAttachment] - public let expectedAttachmentsCount: Int - public let messageUploadTimestampFromServer: Date - public let downloadTimestampFromServer: Date - public let localDownloadTimestamp: Date - public let messagePayload: Data - public let extendedMessagePayload: Data? - - public var messageIdentifierFromEngine: Data { - return messageId.uid.raw - } - - var toIdentity: ObvOwnedIdentity { - return fromContactIdentity.ownedIdentity - } - - var ownedCryptoId: ObvCryptoId { - return fromContactIdentity.ownedIdentity.cryptoId - } - - - private static func makeError(message: String, code: Int = 0) -> Error { - NSError(domain: "ObvMessage", code: code, userInfo: [NSLocalizedFailureReasonErrorKey: message]) - } - - - init(messageId: MessageIdentifier, networkFetchDelegate: ObvNetworkFetchDelegate, identityDelegate: ObvIdentityDelegate, within obvContext: ObvContext) throws { - - guard let networkReceivedMessage = networkFetchDelegate.getDecryptedMessage(messageId: messageId, flowId: obvContext.flowId) else { - throw Self.makeError(message: "The call to getDecryptedMessage did fail") - } - - try self.init(networkReceivedMessage: networkReceivedMessage, networkFetchDelegate: networkFetchDelegate, identityDelegate: identityDelegate, within: obvContext) - - } - - - init(networkReceivedMessage: ObvNetworkReceivedMessageDecrypted, networkFetchDelegate: ObvNetworkFetchDelegate?, identityDelegate: ObvIdentityDelegate, within obvContext: ObvContext) throws { - guard let obvContact = ObvContactIdentity(contactCryptoIdentity: networkReceivedMessage.fromIdentity, - ownedCryptoIdentity: networkReceivedMessage.messageId.ownedCryptoIdentity, - identityDelegate: identityDelegate, - within: obvContext) else { - throw Self.makeError(message: "Could not get ObvContactIdentity") - } - - self.fromContactIdentity = obvContact - self.messageId = networkReceivedMessage.messageId - self.messagePayload = networkReceivedMessage.messagePayload - self.messageUploadTimestampFromServer = networkReceivedMessage.messageUploadTimestampFromServer - self.downloadTimestampFromServer = networkReceivedMessage.downloadTimestampFromServer - self.localDownloadTimestamp = networkReceivedMessage.localDownloadTimestamp - self.extendedMessagePayload = networkReceivedMessage.extendedMessagePayload - self.expectedAttachmentsCount = networkReceivedMessage.attachmentIds.count - - if let networkFetchDelegate = networkFetchDelegate { - self.attachments = try networkReceivedMessage.attachmentIds.map { - return try ObvAttachment(attachmentId: $0, fromContactIdentity: obvContact, networkFetchDelegate: networkFetchDelegate, within: obvContext) - } - } else { - self.attachments = [] - } - } -} - - -// MARK: - Codable - -extension ObvMessage: Codable { - - /// ObvMessage is codable so as to be able to transfer a message from the notification service to the main app. - /// This serialization should **not** be used within long term storage since we may change it regularly. - /// See also `ObvContactIdentity` and `ObvAttachment`. - - enum CodingKeys: String, CodingKey { - case fromContactIdentity = "from_contact_identity" - case messageId = "message_id" - case attachments = "attachments" - case messageUploadTimestampFromServer = "messageUploadTimestampFromServer" - case downloadTimestampFromServer = "downloadTimestampFromServer" - case messagePayload = "message_payload" - case localDownloadTimestamp = "localDownloadTimestamp" - case extendedMessagePayload = "extendedMessagePayload" - case expectedAttachmentsCount = "expectedAttachmentsCount" - } - - public func encodeToJson() throws -> Data { - let encoder = JSONEncoder() - return try encoder.encode(self) - } - - public static func decodeFromJson(data: Data) throws -> ObvMessage { - let decoder = JSONDecoder() - return try decoder.decode(ObvMessage.self, from: data) - } -} diff --git a/Engine/ObvEngine/ObvEngine/Types/ObvOwnedDevice.swift b/Engine/ObvEngine/ObvEngine/Types/ObvOwnedDevice.swift new file mode 100644 index 00000000..2a8ee511 --- /dev/null +++ b/Engine/ObvEngine/ObvEngine/Types/ObvOwnedDevice.swift @@ -0,0 +1,61 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes +import ObvCrypto + +/// See also ``struct ObvRemoteOwnedDevice``. +public struct ObvOwnedDevice: Hashable, CustomStringConvertible { + + public let identifier: Data + public let ownedCryptoId: ObvCryptoId + public let secureChannelStatus: SecureChannelStatus + public let name: String? + public let expirationDate: Date? + public let latestRegistrationDate: Date? + + public enum SecureChannelStatus { + case currentDevice + case creationInProgress + case created + } + + var isCurrentDevice: Bool { + secureChannelStatus == .currentDevice + } + + init(identifier: Data, ownedCryptoIdentity: ObvCryptoIdentity, secureChannelStatus: SecureChannelStatus, name: String?, expirationDate: Date?, latestRegistrationDate: Date?) { + self.identifier = identifier + self.ownedCryptoId = ObvCryptoId(cryptoIdentity: ownedCryptoIdentity) + self.secureChannelStatus = secureChannelStatus + self.name = name + self.expirationDate = expirationDate + self.latestRegistrationDate = latestRegistrationDate + } + +} + + +// MARK: Implementing CustomStringConvertible +extension ObvOwnedDevice { + public var description: String { + return "ObvOwnedDevice<\(ownedCryptoId.description), \(identifier.description)>" + } +} diff --git a/Engine/ObvEngine/ObvEngine/Types/ObvRemoteOwnedDevice.swift b/Engine/ObvEngine/ObvEngine/Types/ObvRemoteOwnedDevice.swift index 438b595f..7deb2388 100644 --- a/Engine/ObvEngine/ObvEngine/Types/ObvRemoteOwnedDevice.swift +++ b/Engine/ObvEngine/ObvEngine/Types/ObvRemoteOwnedDevice.swift @@ -25,32 +25,26 @@ import ObvMetaManager import OlvidUtils +/// See also ``struct ObvOwnedDevice`` public struct ObvRemoteOwnedDevice: Hashable, CustomStringConvertible { public let identifier: Data - public let ownedIndentity: ObvOwnedIdentity + public let ownedCryptoId: ObvCryptoId + + init(remoteDeviceUid: UID, ownedCryptoIdentity: ObvCryptoIdentity) { + self.identifier = remoteDeviceUid.raw + self.ownedCryptoId = ObvCryptoId(cryptoIdentity: ownedCryptoIdentity) + } } // MARK: Implementing CustomStringConvertible -extension ObvRemoteOwnedDevice { - public var description: String { - return "ObvRemoteOwnedDevice<\(ownedIndentity.description)>" - } -} -internal extension ObvRemoteOwnedDevice { +extension ObvRemoteOwnedDevice { - init?(remoteOwnedDeviceUid: UID, ownedCryptoIdentity: ObvCryptoIdentity, identityDelegate: ObvIdentityDelegate, within obvContext: ObvContext) { - guard let ownedIdentity = ObvOwnedIdentity(ownedCryptoIdentity: ownedCryptoIdentity, identityDelegate: identityDelegate, within: obvContext) else { return nil } - do { - guard try identityDelegate.isDevice(withUid: remoteOwnedDeviceUid, aRemoteDeviceOfOwnedIdentity: ownedCryptoIdentity, within: obvContext) else { return nil } - } catch { - return nil - } - self.identifier = remoteOwnedDeviceUid.raw - self.ownedIndentity = ownedIdentity + public var description: String { + return "ObvRemoteOwnedDevice<\(ownedCryptoId.description)>" } } diff --git a/Engine/ObvFlowManager/ObvFlowManager/Coordinators/BackgroundTaskCoordinator.swift b/Engine/ObvFlowManager/ObvFlowManager/Coordinators/BackgroundTaskCoordinator.swift index d708fe26..cb69d065 100644 --- a/Engine/ObvFlowManager/ObvFlowManager/Coordinators/BackgroundTaskCoordinator.swift +++ b/Engine/ObvFlowManager/ObvFlowManager/Coordinators/BackgroundTaskCoordinator.swift @@ -280,7 +280,7 @@ extension BackgroundTaskCoordinator { try startFlowForBackgroundTask(with: Set(), completionHandler: completionHandler) } - func addBackgroundActivityForPostingApplicationMessageAttachmentsWithinFlow(withFlowId flowId: FlowIdentifier, messageId: MessageIdentifier, attachmentIds: [AttachmentIdentifier]) { + func addBackgroundActivityForPostingApplicationMessageAttachmentsWithinFlow(withFlowId flowId: FlowIdentifier, messageId: ObvMessageIdentifier, attachmentIds: [ObvAttachmentIdentifier]) { let expectations: Set if attachmentIds.isEmpty { @@ -301,7 +301,7 @@ extension BackgroundTaskCoordinator { /// It is called *before* notifying the app. The app will eventually post a return receipt. To do that, it will make a request to the engine that will eventually call the /// ``stopBackgroundActivityForPostingReturnReceipt(messageId: MessageIdentifier, attachmentNumber: Int?)`` bellow. /// - func startBackgroundActivityForPostingReturnReceipt(messageId: MessageIdentifier, attachmentNumber: Int?) throws -> FlowIdentifier { + func startBackgroundActivityForPostingReturnReceipt(messageId: ObvMessageIdentifier, attachmentNumber: Int?) throws -> FlowIdentifier { guard let delegateManager = delegateManager else { assertionFailure() throw Self.makeError(message: "🧾 The delegate manager is not set") @@ -309,7 +309,7 @@ extension BackgroundTaskCoordinator { let log = OSLog(subsystem: delegateManager.logSubsystem, category: BackgroundTaskCoordinator.logCategory) let expectations: Set if let attachmentNumber = attachmentNumber { - let attachmentId = AttachmentIdentifier(messageId: messageId, attachmentNumber: attachmentNumber) + let attachmentId = ObvAttachmentIdentifier(messageId: messageId, attachmentNumber: attachmentNumber) os_log("🧾 Starting background activity for attachmentId %{public}@", log: log, type: .debug, attachmentId.debugDescription) expectations = Set([.returnReceiptWasPostedForAttachment(attachmentId: attachmentId)]) } else { @@ -322,7 +322,7 @@ extension BackgroundTaskCoordinator { /// This method allows to stop the flow allowing to wait until a return receipt is posted. See the comment for the /// ``startBackgroundActivityForPostingReturnReceipt(messageId: MessageIdentifier, attachmentNumber: Int?) throws`` /// method above. - func stopBackgroundActivityForPostingReturnReceipt(messageId: MessageIdentifier, attachmentNumber: Int?) throws { + func stopBackgroundActivityForPostingReturnReceipt(messageId: ObvMessageIdentifier, attachmentNumber: Int?) throws { guard let delegateManager = delegateManager else { assertionFailure() throw Self.makeError(message: "The delegate manager is not set") @@ -330,7 +330,7 @@ extension BackgroundTaskCoordinator { let log = OSLog(subsystem: delegateManager.logSubsystem, category: BackgroundTaskCoordinator.logCategory) let expectationsToRemove: [Expectation] if let attachmentNumber = attachmentNumber { - let attachmentId = AttachmentIdentifier(messageId: messageId, attachmentNumber: attachmentNumber) + let attachmentId = ObvAttachmentIdentifier(messageId: messageId, attachmentNumber: attachmentNumber) os_log("🧾 Stopping background activity for attachmentId %{public}@", log: log, type: .debug, attachmentId.debugDescription) expectationsToRemove = [.returnReceiptWasPostedForAttachment(attachmentId: attachmentId)] } else { @@ -357,11 +357,11 @@ extension BackgroundTaskCoordinator { // Deleting a message or an attachment - func startBackgroundActivityForDeletingAMessage(messageId: MessageIdentifier) -> FlowIdentifier? { + func startBackgroundActivityForDeletingAMessage(messageId: ObvMessageIdentifier) -> FlowIdentifier? { return FlowIdentifier() } - func startBackgroundActivityForDeletingAnAttachment(attachmentId: AttachmentIdentifier) -> FlowIdentifier? { + func startBackgroundActivityForDeletingAnAttachment(attachmentId: ObvAttachmentIdentifier) -> FlowIdentifier? { return FlowIdentifier() } diff --git a/Engine/ObvFlowManager/ObvFlowManager/Coordinators/RemoteNotificationCoordinator.swift b/Engine/ObvFlowManager/ObvFlowManager/Coordinators/RemoteNotificationCoordinator.swift index fc862c79..5df0bc5e 100644 --- a/Engine/ObvFlowManager/ObvFlowManager/Coordinators/RemoteNotificationCoordinator.swift +++ b/Engine/ObvFlowManager/ObvFlowManager/Coordinators/RemoteNotificationCoordinator.swift @@ -389,7 +389,7 @@ extension RemoteNotificationCoordinator { try self.startFlow(ownedCryptoIds: ownedCryptoIds, completionHandler: completionHandler) } - public func attachmentDownloadDecisionHasBeenTaken(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + public func attachmentDownloadDecisionHasBeenTaken(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { return } let log = OSLog(subsystem: delegateManager.logSubsystem, category: RemoteNotificationCoordinator.logCategory) diff --git a/Engine/ObvFlowManager/ObvFlowManager/Expectation.swift b/Engine/ObvFlowManager/ObvFlowManager/Expectation.swift index 8278bd34..75f43270 100644 --- a/Engine/ObvFlowManager/ObvFlowManager/Expectation.swift +++ b/Engine/ObvFlowManager/ObvFlowManager/Expectation.swift @@ -25,27 +25,27 @@ import ObvCrypto enum Expectation: Equatable, Hashable, CustomDebugStringConvertible { // For outbox messages - case outboxMessageWasUploaded(messageId: MessageIdentifier) - case deletionOfOutboxMessage(withId: MessageIdentifier) + case outboxMessageWasUploaded(messageId: ObvMessageIdentifier) + case deletionOfOutboxMessage(withId: ObvMessageIdentifier) // For inbox messages case uidsOfMessagesToProcess(ownedCryptoIdentity: ObvCryptoIdentity) - case networkReceivedMessageWasProcessed(messageId: MessageIdentifier) - case applicationMessageDecrypted(messageId: MessageIdentifier) - case extendedMessagePayloadWasDownloaded(messageId: MessageIdentifier) + case networkReceivedMessageWasProcessed(messageId: ObvMessageIdentifier) + case applicationMessageDecrypted(messageId: ObvMessageIdentifier) + case extendedMessagePayloadWasDownloaded(messageId: ObvMessageIdentifier) case protocolMessageToProcess - case endOfProcessingOfProtocolMessage(withId: MessageIdentifier) - case deletionOfInboxMessage(withId: MessageIdentifier) + case endOfProcessingOfProtocolMessage(withId: ObvMessageIdentifier) + case deletionOfInboxMessage(withId: ObvMessageIdentifier) // For outbox attachments - case attachmentUploadRequestIsTakenCareOfForAttachment(withId: AttachmentIdentifier) + case attachmentUploadRequestIsTakenCareOfForAttachment(withId: ObvAttachmentIdentifier) // For inbox attachments - case decisionToDownloadAttachmentOrNotHasBeenTaken(attachmentId: AttachmentIdentifier) + case decisionToDownloadAttachmentOrNotHasBeenTaken(attachmentId: ObvAttachmentIdentifier) // For posting return receipts - case returnReceiptWasPostedForMessage(messageId: MessageIdentifier) - case returnReceiptWasPostedForAttachment(attachmentId: AttachmentIdentifier) + case returnReceiptWasPostedForMessage(messageId: ObvMessageIdentifier) + case returnReceiptWasPostedForAttachment(attachmentId: ObvAttachmentIdentifier) static func == (lhs: Expectation, rhs: Expectation) -> Bool { diff --git a/Engine/ObvFlowManager/ObvFlowManager/Internal Delegates/BackgroundTaskDelegate.swift b/Engine/ObvFlowManager/ObvFlowManager/Internal Delegates/BackgroundTaskDelegate.swift index 5b86b2ad..aabe664b 100644 --- a/Engine/ObvFlowManager/ObvFlowManager/Internal Delegates/BackgroundTaskDelegate.swift +++ b/Engine/ObvFlowManager/ObvFlowManager/Internal Delegates/BackgroundTaskDelegate.swift @@ -31,7 +31,7 @@ protocol BackgroundTaskDelegate { // Posting message and attachments - func addBackgroundActivityForPostingApplicationMessageAttachmentsWithinFlow(withFlowId flowId: FlowIdentifier, messageId: MessageIdentifier, attachmentIds: [AttachmentIdentifier]) + func addBackgroundActivityForPostingApplicationMessageAttachmentsWithinFlow(withFlowId flowId: FlowIdentifier, messageId: ObvMessageIdentifier, attachmentIds: [ObvAttachmentIdentifier]) // Resuming a protocol @@ -43,12 +43,12 @@ protocol BackgroundTaskDelegate { // Deleting a message or an attachment - func startBackgroundActivityForDeletingAMessage(messageId: MessageIdentifier) -> FlowIdentifier? - func startBackgroundActivityForDeletingAnAttachment(attachmentId: AttachmentIdentifier) -> FlowIdentifier? + func startBackgroundActivityForDeletingAMessage(messageId: ObvMessageIdentifier) -> FlowIdentifier? + func startBackgroundActivityForDeletingAnAttachment(attachmentId: ObvAttachmentIdentifier) -> FlowIdentifier? // Posting a return receipt (for message or an attachment) - func startBackgroundActivityForPostingReturnReceipt(messageId: MessageIdentifier, attachmentNumber: Int?) throws -> FlowIdentifier - func stopBackgroundActivityForPostingReturnReceipt(messageId: MessageIdentifier, attachmentNumber: Int?) throws + func startBackgroundActivityForPostingReturnReceipt(messageId: ObvMessageIdentifier, attachmentNumber: Int?) throws -> FlowIdentifier + func stopBackgroundActivityForPostingReturnReceipt(messageId: ObvMessageIdentifier, attachmentNumber: Int?) throws } diff --git a/Engine/ObvFlowManager/ObvFlowManager/Internal Delegates/RemoteNotificationDelegate.swift b/Engine/ObvFlowManager/ObvFlowManager/Internal Delegates/RemoteNotificationDelegate.swift index 07560d70..4c1800b0 100644 --- a/Engine/ObvFlowManager/ObvFlowManager/Internal Delegates/RemoteNotificationDelegate.swift +++ b/Engine/ObvFlowManager/ObvFlowManager/Internal Delegates/RemoteNotificationDelegate.swift @@ -29,6 +29,6 @@ protocol RemoteNotificationDelegate { func startBackgroundActivityForHandlingRemoteNotification(ownedCryptoIds: Set, withCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) throws -> FlowIdentifier - func attachmentDownloadDecisionHasBeenTaken(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) + func attachmentDownloadDecisionHasBeenTaken(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) } diff --git a/Engine/ObvFlowManager/ObvFlowManager/ObvFlowManager.swift b/Engine/ObvFlowManager/ObvFlowManager/ObvFlowManager.swift index debde9b3..e4342ce1 100644 --- a/Engine/ObvFlowManager/ObvFlowManager/ObvFlowManager.swift +++ b/Engine/ObvFlowManager/ObvFlowManager/ObvFlowManager.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -96,7 +96,7 @@ extension ObvFlowManager { return try backgroundTaskDelegate.startNewFlow(completionHandler: completionHandler) } - public func addBackgroundActivityForPostingApplicationMessageAttachmentsWithinFlow(withFlowId flowId: FlowIdentifier, messageId: MessageIdentifier, attachmentIds: [AttachmentIdentifier]) throws { + public func addBackgroundActivityForPostingApplicationMessageAttachmentsWithinFlow(withFlowId flowId: FlowIdentifier, messageId: ObvMessageIdentifier, attachmentIds: [ObvAttachmentIdentifier]) throws { guard let backgroundTaskDelegate = delegateManager.backgroundTaskDelegate else { throw Self.makeError(message: "The backgroundTaskDelegate is not set") } @@ -116,14 +116,14 @@ extension ObvFlowManager { // Posting a return receipt (for message or an attachment) - public func startBackgroundActivityForPostingReturnReceipt(messageId: MessageIdentifier, attachmentNumber: Int?) throws -> FlowIdentifier { + public func startBackgroundActivityForPostingReturnReceipt(messageId: ObvMessageIdentifier, attachmentNumber: Int?) throws -> FlowIdentifier { guard let backgroundTaskDelegate = delegateManager.backgroundTaskDelegate else { throw Self.makeError(message: "The backgroundTaskDelegate is not set") } return try backgroundTaskDelegate.startBackgroundActivityForPostingReturnReceipt(messageId: messageId, attachmentNumber: attachmentNumber) } - public func stopBackgroundActivityForPostingReturnReceipt(messageId: MessageIdentifier, attachmentNumber: Int?) throws { + public func stopBackgroundActivityForPostingReturnReceipt(messageId: ObvMessageIdentifier, attachmentNumber: Int?) throws { guard let backgroundTaskDelegate = delegateManager.backgroundTaskDelegate else { throw Self.makeError(message: "The backgroundTaskDelegate is not set") } @@ -139,12 +139,12 @@ extension ObvFlowManager { // Deleting a message or an attachment - public func startBackgroundActivityForDeletingAMessage(messageId: MessageIdentifier) -> FlowIdentifier? { + public func startBackgroundActivityForDeletingAMessage(messageId: ObvMessageIdentifier) -> FlowIdentifier? { return self.delegateManager.backgroundTaskDelegate?.startBackgroundActivityForDeletingAMessage(messageId: messageId) } - public func startBackgroundActivityForDeletingAnAttachment(attachmentId: AttachmentIdentifier) -> FlowIdentifier? { + public func startBackgroundActivityForDeletingAnAttachment(attachmentId: ObvAttachmentIdentifier) -> FlowIdentifier? { return self.delegateManager.backgroundTaskDelegate?.startBackgroundActivityForDeletingAnAttachment(attachmentId: attachmentId) } @@ -155,7 +155,7 @@ extension ObvFlowManager { try self.delegateManager.remoteNotificationDelegate.startBackgroundActivityForHandlingRemoteNotification(ownedCryptoIds: ownedCryptoIds, withCompletionHandler: handler) } - public func attachmentDownloadDecisionHasBeenTaken(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + public func attachmentDownloadDecisionHasBeenTaken(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { self.delegateManager.remoteNotificationDelegate.attachmentDownloadDecisionHasBeenTaken(attachmentId: attachmentId, flowId: flowId) } diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactDevice.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactDevice.swift index dfd2ae6b..b6913a86 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactDevice.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactDevice.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -63,6 +63,11 @@ final class ContactDevice: NSManagedObject, ObvManagedObject { private var changedKeys = Set() + /// This is only set while inserting a new `ContactDevice`. This is `true` iff the inserted instance was performed during a `ChannelCreationWithContactDeviceProtocol`. + /// + /// This value is used in the notification sent to the engine. When receiving the notification, the engine starts a new `ChannelCreationWithContactDeviceProtocol` *unless* this Boolean is `true`. + private var createdDuringChannelCreation: Bool? + // MARK: - Initializer /// This initializer makes sure that we do not insert a contact device if another one with the same (`uid`, `contactIdentity`) already exists. Note that a `contactIdentity` is identified by its cryptoIdentity and its ownedIdentity. If a previous entity exists, this initializer fails. @@ -71,7 +76,7 @@ final class ContactDevice: NSManagedObject, ObvManagedObject { /// - uid: The `UID` of the device /// - contactIdentity: The `ContactIdentity` that owns this device /// - delegateManager: The `ObvIdentityDelegateManager` - convenience init?(uid: UID, contactIdentity: ContactIdentity, flowId: FlowIdentifier, delegateManager: ObvIdentityDelegateManager) { + convenience init?(uid: UID, contactIdentity: ContactIdentity, createdDuringChannelCreation: Bool, flowId: FlowIdentifier, delegateManager: ObvIdentityDelegateManager) { let log = OSLog(subsystem: delegateManager.logSubsystem, category: "ContactDevice") guard let obvContext = contactIdentity.obvContext else { os_log("Could not get a context", log: log, type: .fault) @@ -89,13 +94,14 @@ final class ContactDevice: NSManagedObject, ObvManagedObject { self.rawCapabilities = nil // Set later self.contactIdentity = contactIdentity self.delegateManager = delegateManager + self.createdDuringChannelCreation = createdDuringChannelCreation } func deleteContactDevice() throws { guard let obvContext = self.obvContext else { assertionFailure() - throw ContactDevice.makeError(message: "Could not find contact --> could not delete device") + throw ContactDevice.makeError(message: "Could not find context --> could not delete device") } obvContext.delete(self) } @@ -143,7 +149,8 @@ extension ContactDevice { let values: Set = Set(items.compactMap { guard let contactIdentity = $0.contactIdentity else { return nil } guard let ownedIdentity = contactIdentity.ownedIdentity else { return nil } - return ObliviousChannelIdentifier(currentDeviceUid: ownedIdentity.currentDeviceUid, remoteCryptoIdentity: contactIdentity.cryptoIdentity, remoteDeviceUid: $0.uid) + guard let remoteCryptoIdentity = contactIdentity.cryptoIdentity else { assertionFailure(); return nil } + return ObliviousChannelIdentifier(currentDeviceUid: ownedIdentity.currentDeviceUid, remoteCryptoIdentity: remoteCryptoIdentity, remoteDeviceUid: $0.uid) }) return values } @@ -154,20 +161,22 @@ extension ContactDevice { extension ContactDevice { - override func willSave() { - super.willSave() + override func prepareForDeletion() { + super.prepareForDeletion() - if isDeleted { - if let contactIdentity = self.contactIdentity, let ownedIdentity = contactIdentity.ownedIdentity { - self.contactCryptoIdentityOnDeletion = contactIdentity.cryptoIdentity - self.ownedCryptoIdentityOnDeletion = ownedIdentity.ownedCryptoIdentity.getObvCryptoIdentity() - } + if let contactIdentity = self.contactIdentity, let ownedIdentity = contactIdentity.ownedIdentity { + self.contactCryptoIdentityOnDeletion = contactIdentity.cryptoIdentity + self.ownedCryptoIdentityOnDeletion = ownedIdentity.ownedCryptoIdentity.getObvCryptoIdentity() } + } + + override func willSave() { + super.willSave() changedKeys = Set(self.changedValues().keys) - } + override func didSave() { super.didSave() @@ -193,23 +202,31 @@ extension ContactDevice { if isInserted { - guard let contactIdentity, let ownedIdentity = contactIdentity.ownedIdentity else { + guard let contactIdentity, let ownedIdentity = contactIdentity.ownedIdentity, let contactIdentity = contactIdentity.cryptoIdentity else { assertionFailure() return } + assert(createdDuringChannelCreation != nil) + let createdDuringChannelCreation = self.createdDuringChannelCreation ?? false ObvIdentityNotificationNew.newContactDevice(ownedIdentity: ownedIdentity.ownedCryptoIdentity.getObvCryptoIdentity(), - contactIdentity: contactIdentity.cryptoIdentity, + contactIdentity: contactIdentity, contactDeviceUid: uid, + createdDuringChannelCreation: createdDuringChannelCreation, flowId: flowId) .postOnBackgroundQueue(within: delegateManager.notificationDelegate) } else if isDeleted { - guard let ownedCryptoIdentityOnDeletion = self.ownedCryptoIdentityOnDeletion, let contactCryptoIdentityOnDeletion = self.contactCryptoIdentityOnDeletion else { - os_log("ownedCryptoIdentityOnDeletion or contactCryptoIdentityOnDeletion is nil on deletion which is unexpected", log: log, type: .fault) + guard let ownedCryptoIdentityOnDeletion = self.ownedCryptoIdentityOnDeletion else { + os_log("ownedCryptoIdentityOnDeletion is nil on deletion which is unexpected", log: log, type: .fault) return } - + + guard let contactCryptoIdentityOnDeletion = self.contactCryptoIdentityOnDeletion else { + os_log("contactCryptoIdentityOnDeletion is nil on deletion which is unexpected", log: log, type: .fault) + return + } + let notification = ObvIdentityNotificationNew.deletedContactDevice(ownedIdentity: ownedCryptoIdentityOnDeletion, contactIdentity: contactCryptoIdentityOnDeletion, contactDeviceUid: uid, @@ -219,10 +236,10 @@ extension ContactDevice { } else if let ownedIdentity = contactIdentity?.ownedIdentity { guard let contactIdentity = self.contactIdentity else { assertionFailure(); return } - if changedKeys.contains(Predicate.Key.rawCapabilities.rawValue) { + if changedKeys.contains(Predicate.Key.rawCapabilities.rawValue), let contactIdentity = contactIdentity.cryptoIdentity { ObvIdentityNotificationNew.contactObvCapabilitiesWereUpdated( ownedIdentity: ownedIdentity.ownedCryptoIdentity.getObvCryptoIdentity(), - contactIdentity: contactIdentity.cryptoIdentity, + contactIdentity: contactIdentity, flowId: flowId) .postOnBackgroundQueue(within: delegateManager.notificationDelegate) } diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroup.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroup.swift index 1130b367..aa097d3b 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroup.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroup.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -109,7 +109,7 @@ class ContactGroup: NSManagedObject, ObvManagedObject { convenience init(groupInformationWithPhoto: GroupInformationWithPhoto, ownedIdentity: OwnedIdentity, groupMembers: Set, pendingGroupMembers: Set, delegateManager: ObvIdentityDelegateManager, forEntityName entityName: String) throws { guard let obvContext = ownedIdentity.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: ContactGroup.errorDomain) + throw ObvIdentityManagerError.contextIsNil } let entityDescription = NSEntityDescription.entity(forEntityName: entityName, in: obvContext)! @@ -121,7 +121,7 @@ class ContactGroup: NSManagedObject, ObvManagedObject { self.groupMembers = Set() for groupMember in groupMembers { guard let contact = try ContactIdentity.get(contactIdentity: groupMember, ownedIdentity: ownedIdentity.cryptoIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotContact.error(withDomain: ContactGroup.errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotContact } self.groupMembers.insert(contact) } @@ -172,13 +172,11 @@ extension ContactGroup { if groupDetailsElements.version <= self.publishedDetails.version { return } guard groupDetailsElements.version > self.publishedDetails.version else { - throw ObvIdentityManagerError.invalidGroupDetailsVersion.error(withDomain: ContactGroup.errorDomain) + throw ObvIdentityManagerError.invalidGroupDetailsVersion } - let errorDomain = ContactGroup.errorDomain - guard let obvContext = self.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: errorDomain) + throw ObvIdentityManagerError.contextIsNil } let oldPublishedDetails = self.publishedDetails @@ -235,7 +233,7 @@ extension ContactGroup { func resetGroupMembersVersionOfContactGroupJoined() throws { guard self is ContactGroupJoined else { - throw ObvIdentityManagerError.groupIsNotJoined.error(withDomain: ContactGroup.errorDomain) + throw ObvIdentityManagerError.groupIsNotJoined } self.groupMembersVersion = 0 } @@ -244,15 +242,15 @@ extension ContactGroup { func transferPendingMemberToGroupMembersForGroupOwned(contactIdentity: ContactIdentity) throws { guard self is ContactGroupOwned else { - throw ObvIdentityManagerError.groupIsNotOwned.error(withDomain: ContactGroup.errorDomain) + throw ObvIdentityManagerError.groupIsNotOwned } guard self.obvContext == contactIdentity.obvContext else { - throw ObvIdentityManagerError.contextMismatch.error(withDomain: ContactGroup.errorDomain) + throw ObvIdentityManagerError.contextMismatch } guard let obvContext = self.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: ContactGroup.errorDomain) + throw ObvIdentityManagerError.contextIsNil } // Remove the pending member from the list of pending group members @@ -274,11 +272,11 @@ extension ContactGroup { func transferGroupMemberToPendingMembersForGroupOwned(contactCryptoIdentity: ObvCryptoIdentity) throws { guard let delegateManager = self.delegateManager else { - throw ObvIdentityManagerError.delegateManagerIsNotSet.error(withDomain: ContactGroup.errorDomain) + throw ObvIdentityManagerError.delegateManagerIsNotSet } guard self is ContactGroupOwned else { - throw ObvIdentityManagerError.groupIsNotOwned.error(withDomain: ContactGroup.errorDomain) + throw ObvIdentityManagerError.groupIsNotOwned } // Remove the group member from the list of group members @@ -308,7 +306,7 @@ extension ContactGroup { } guard let obvContext = self.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: ContactGroup.errorDomain) + throw ObvIdentityManagerError.contextIsNil } let currentPendingMembersToDelete = self.pendingGroupMembers.subtracting(newVersionOfPendingMembers) @@ -432,11 +430,11 @@ extension ContactGroup { NotificationType.Key.ownedIdentity: groupOwned.ownedIdentity.cryptoIdentity] as [String: Any] delegateManager.notificationDelegate.post(name: NotificationType.name, userInfo: userInfo) - } else if let groupJoined = self as? ContactGroupJoined { + } else if let groupJoined = self as? ContactGroupJoined, let groupOwner = groupJoined.groupOwner.cryptoIdentity { let NotificationType = ObvIdentityNotification.ContactGroupJoinedHasUpdatedPublishedDetails.self let userInfo = [NotificationType.Key.groupUid: groupJoined.groupUid, - NotificationType.Key.groupOwner: groupJoined.groupOwner.cryptoIdentity, + NotificationType.Key.groupOwner: groupOwner, NotificationType.Key.ownedIdentity: self.ownedIdentity.cryptoIdentity] as [String: Any] delegateManager.notificationDelegate.post(name: NotificationType.name, userInfo: userInfo) @@ -463,11 +461,11 @@ extension ContactGroup { NotificationType.Key.ownedIdentity: groupOwned.ownedIdentity.cryptoIdentity] as [String: Any] delegateManager.notificationDelegate.post(name: NotificationType.name, userInfo: userInfo) - } else if let groupJoined = self as? ContactGroupJoined { + } else if let groupJoined = self as? ContactGroupJoined, let groupOwner = groupJoined.groupOwner.cryptoIdentity { let NotificationType = ObvIdentityNotification.ContactGroupJoinedHasUpdatedPendingMembersAndGroupMembers.self let userInfo = [NotificationType.Key.groupUid: groupJoined.groupUid, - NotificationType.Key.groupOwner: groupJoined.groupOwner.cryptoIdentity, + NotificationType.Key.groupOwner: groupOwner, NotificationType.Key.ownedIdentity: groupJoined.ownedIdentity.cryptoIdentity] as [String: Any] delegateManager.notificationDelegate.post(name: NotificationType.name, userInfo: userInfo) @@ -492,3 +490,295 @@ extension ContactGroup { } + +// MARK: - Helpers for snapshots + +extension ContactGroup { + + var groupV1Identifier: GroupV1Identifier? { + let groupUid = self.groupUid + if let groupJoined = self as? ContactGroupJoined { + guard let groupOwner = groupJoined.groupOwner.cryptoIdentity else { assertionFailure(); return nil } + return .init(groupUid: groupUid, groupOwner: ObvCryptoId(cryptoIdentity: groupOwner)) + } else if self is ContactGroupOwned { + return .init(groupUid: groupUid, groupOwner: ObvCryptoId(cryptoIdentity: ownedIdentity.cryptoIdentity)) + } else { + assertionFailure() + return nil + } + } + +} + + +// MARK: - For Snapshot purposes + + +extension ContactGroup { + + var syncSnapshot: ContactGroupSyncSnapshotNode { + .init(groupMembersVersion: groupMembersVersion, + groupMembers: groupMembers, + pendingGroupMembers: pendingGroupMembers, + publishedDetails: publishedDetails, + trustedDetails: (self as? ContactGroupJoined)?.trustedDetails, + latestDetails: (self as? ContactGroupOwned)?.latestDetails) + } + +} + + +struct ContactGroupSyncSnapshotNode: ObvSyncSnapshotNode { + + private let domain: Set + private let publishedDetails: ContactGroupDetailsSyncSnapshotNode? + private let trustedDetails: ContactGroupDetailsSyncSnapshotNode? // Not for owned groups + private let latestDetails: ContactGroupDetailsSyncSnapshotNode? // Not for joined groups, not used under Android, not serialized + let groupMembersVersion: Int? + private let groupMembers: Set + private let pendingGroupMembers: [ObvCryptoIdentity: PendingGroupMemberSyncSnapshotItem] + + let id = Self.generateIdentifier() + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case publishedDetails = "published_details" + case trustedDetails = "trusted_details" + case groupMembersVersion = "group_members_version" + case groupMembers = "members" + case pendingGroupMembers = "pending_members" + case domain = "domain" + } + + + private static let defaultDomainForGroupOwned = Set(CodingKeys.allCases.filter({ $0 != .domain && $0 != .trustedDetails })) + private static let defaultDomainForGroupJoined = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + + fileprivate init(groupMembersVersion: Int, groupMembers: Set, pendingGroupMembers: Set, publishedDetails: ContactGroupDetailsPublished, trustedDetails: ContactGroupDetailsTrusted?, latestDetails: ContactGroupDetailsLatest?) { + self.publishedDetails = publishedDetails.syncSnapshot + if let trustedDetails, trustedDetails.version != publishedDetails.version { + self.trustedDetails = trustedDetails.syncSnapshot + } else { + self.trustedDetails = nil + } + self.latestDetails = latestDetails?.syncSnapshot + self.groupMembersVersion = groupMembersVersion + self.groupMembers = Set(groupMembers.compactMap({ $0.cryptoIdentity })) + do { + let pairs: [(ObvCryptoIdentity, PendingGroupMemberSyncSnapshotItem)] = pendingGroupMembers.map { ($0.cryptoIdentity, $0.syncSnapshot) } + self.pendingGroupMembers = Dictionary(pairs, uniquingKeysWith: { (first, _) in assertionFailure(); return first }) + } + self.domain = Self.defaultDomainForGroupJoined + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(publishedDetails, forKey: .publishedDetails) + try container.encodeIfPresent(trustedDetails, forKey: .trustedDetails) + try container.encodeIfPresent(groupMembersVersion, forKey: .groupMembersVersion) + try container.encode(groupMembers.map({ $0.getIdentity() }), forKey: .groupMembers) + // Encode pendingGroupMembers using ObvCryptoIdentity as JSON keys + do { + let dict: [String: PendingGroupMemberSyncSnapshotItem] = .init(pendingGroupMembers, keyMapping: { $0.getIdentity().base64EncodedString() }, valueMapping: { $0 }) + try container.encode(dict, forKey: .pendingGroupMembers) + } + try container.encode(domain, forKey: .domain) + } + + + init(from decoder: Decoder) throws { + do { + let values = try decoder.container(keyedBy: CodingKeys.self) + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + self.groupMembersVersion = try values.decodeIfPresent(Int.self, forKey: .groupMembersVersion) + self.groupMembers = Set((try values.decodeIfPresent([Data].self, forKey: .groupMembers) ?? [Data]()).compactMap({ ObvCryptoIdentity(from: $0) })) + // Decode pendingGroupMembers using ObvCryptoIdentity as JSON keys + do { + let dict = try values.decodeIfPresent([String: PendingGroupMemberSyncSnapshotItem].self, forKey: .pendingGroupMembers) ?? [:] + self.pendingGroupMembers = .init(dict, keyMapping: { $0.base64EncodedToData?.identityToObvCryptoIdentity }, valueMapping: { $0 }) + } + // Special treatment for details. + // At this point, we don't know whether we are decoding a snapshot concerning an owned or a joined group, so we need to consider both cases. + do { + let publishedDetailsFromJSON = try values.decodeIfPresent(ContactGroupDetailsSyncSnapshotNode.self, forKey: .publishedDetails) + let trustedDetailsFromJSON = try values.decodeIfPresent(ContactGroupDetailsSyncSnapshotNode.self, forKey: .trustedDetails) + self.publishedDetails = publishedDetailsFromJSON ?? trustedDetailsFromJSON?.copyWithNewId() + self.trustedDetails = trustedDetailsFromJSON ?? publishedDetailsFromJSON?.copyWithNewId() + self.latestDetails = publishedDetailsFromJSON?.copyWithNewId() // Will be ignored if the group is joined + } + } catch { + assertionFailure() + throw error + } + } + + + func restoreInstance(within obvContext: ObvContext, ownedCryptoIdentity: ObvCryptoIdentity, groupV1Identifier: GroupV1Identifier, associations: inout SnapshotNodeManagedObjectAssociations) throws { + + let minimumDomain: Set + do { + let commonMinimumDomain: Set = Set([.groupMembersVersion, .groupMembers, .pendingGroupMembers]) + if ownedCryptoIdentity == groupV1Identifier.groupOwner.cryptoIdentity { + // Owned group + minimumDomain = commonMinimumDomain.union(Set([.publishedDetails])) + } else { + // Joined group + minimumDomain = commonMinimumDomain.union(Set([.trustedDetails])) + } + } + + guard minimumDomain.isSubset(of: domain) else { + assertionFailure() + throw ObvError.tryingToRestoreIncompleteNode + } + + // Details + + if ownedCryptoIdentity == groupV1Identifier.groupOwner.cryptoIdentity { + + // Owned group need both published and latest details + + guard let publishedDetails, let latestDetails else { + throw ObvError.tryingToRestoreIncompleteNode + } + + let contactGroupOwned = try ContactGroupOwned(snapshotNode: self, groupUid: groupV1Identifier.groupUid, within: obvContext) + try associations.associate(contactGroupOwned, to: self) + + try publishedDetails.restoreContactGroupDetailsPublishedInstance(within: obvContext, associations: &associations) + try latestDetails.restoreContactGroupDetailsLatestInstance(within: obvContext, associations: &associations) + + } else { + + // Joined group need both published and trusted details + + guard let publishedDetails, let trustedDetails else { + throw ObvError.tryingToRestoreIncompleteNode + } + + let contactGroupJoined = try ContactGroupJoined(snapshotNode: self, groupUid: groupV1Identifier.groupUid, within: obvContext) + try associations.associate(contactGroupJoined, to: self) + + try publishedDetails.restoreContactGroupDetailsPublishedInstance(within: obvContext, associations: &associations) + try trustedDetails.restoreContactGroupDetailsTrustedInstance(within: obvContext, associations: &associations) + + } + + // Group members do not need to be restored here: they are restored as contacts and will eventually be included in the associations + + // pending members + + if domain.contains(.pendingGroupMembers) { + try pendingGroupMembers.forEach { (cryptoIdentity, snapshotItem) in + try snapshotItem.restoreInstance(within: obvContext, cryptoIdentity: cryptoIdentity, associations: &associations) + } + } + + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, groupV1Identifier: GroupV1Identifier, contactIdentities: [ObvCryptoIdentity: ContactIdentity], within obvContext: ObvContext) throws { + + let contactGroup: ContactGroup = try associations.getObject(associatedTo: self, within: obvContext) + + // Restore the relationships of this instance + + let groupMembers: Set = Set(try self.groupMembers.map { contactCryptoIdentity in + guard let contactIdentity = contactIdentities[contactCryptoIdentity] else { + throw ObvError.groupMemberNotFoundInContacts + } + return contactIdentity + }) + + let pendingGroupMembers: Set = Set(try self.pendingGroupMembers.values.map { try associations.getObject(associatedTo: $0, within: obvContext) }) + + if let contactGroupOwned = contactGroup as? ContactGroupOwned { + + // Owned group need both published and latest details + + guard let publishedDetails, let latestDetails else { + throw ObvError.tryingToRestoreIncompleteNode + } + + let contactGroupDetailsPublished: ContactGroupDetailsPublished = try associations.getObject(associatedTo: publishedDetails, within: obvContext) + let contactGroupDetailsLatest: ContactGroupDetailsLatest = try associations.getObject(associatedTo: latestDetails, within: obvContext) + + contactGroupOwned.restoreRelationshipsOfContactGroupOwned( + latestDetails: contactGroupDetailsLatest, + groupMembers: groupMembers, + pendingGroupMembers: pendingGroupMembers, + publishedDetails: contactGroupDetailsPublished) + + // Restore the relationships of this instance relationships + + try publishedDetails.restoreRelationships(associations: associations, within: obvContext) + try latestDetails.restoreRelationships(associations: associations, within: obvContext) + + } else if let contactGroupJoined = contactGroup as? ContactGroupJoined { + + // Joined group need both published and trusted details + + guard let publishedDetails, let trustedDetails else { + throw ObvError.tryingToRestoreIncompleteNode + } + + let contactGroupDetailsPublished: ContactGroupDetailsPublished = try associations.getObject(associatedTo: publishedDetails, within: obvContext) + let contactGroupDetailsTrusted: ContactGroupDetailsTrusted = try associations.getObject(associatedTo: trustedDetails, within: obvContext) + + guard let groupOwner = contactIdentities[groupV1Identifier.groupOwner.cryptoIdentity] else { + assertionFailure() + throw ObvError.groupOwnerNotFoundInContacts + } + + contactGroupJoined.restoreRelationshipsOfContactGroupJoined( + groupOwner: groupOwner, + trustedDetails: contactGroupDetailsTrusted, + groupMembers: groupMembers, + pendingGroupMembers: pendingGroupMembers, + publishedDetails: contactGroupDetailsPublished) + + // Restore the relationships of this instance relationships + + try publishedDetails.restoreRelationships(associations: associations, within: obvContext) + try trustedDetails.restoreRelationships(associations: associations, within: obvContext) + + } + + try self.pendingGroupMembers.forEach { (cryptoIdentity, pendingMemberNode) in + try pendingMemberNode.restoreRelationships(associations: associations, within: obvContext) + } + + } + + + enum ObvError: Error { + case groupMemberNotFoundInContacts + case groupOwnerNotFoundInContacts + case tryingToRestoreIncompleteNode + } + +} + + +// MARK: - Private Helpers + +private extension String { + + var base64EncodedToData: Data? { + guard let data = Data(base64Encoded: self) else { assertionFailure(); return nil } + return data + } + +} + + +private extension Data { + + var identityToObvCryptoIdentity: ObvCryptoIdentity? { + guard let cryptoIdentity = ObvCryptoIdentity(from: self) else { assertionFailure(); return nil } + return cryptoIdentity + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetails.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetails.swift index 91a8d657..aa3d5e82 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetails.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetails.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -79,9 +79,15 @@ class ContactGroupDetails: NSManagedObject, ObvManagedObject { var obvContext: ObvContext? func getPhotoURL(identityPhotosDirectory: URL) -> URL? { + guard let url = getRawPhotoURL(identityPhotosDirectory: identityPhotosDirectory) else { return nil } + guard FileManager.default.fileExists(atPath: url.path) else { assertionFailure(); return nil } + return url + } + + + private func getRawPhotoURL(identityPhotosDirectory: URL) -> URL? { guard let photoFilename = photoFilename else { return nil } let url = identityPhotosDirectory.appendingPathComponent(photoFilename) - guard FileManager.default.fileExists(atPath: url.path) else { assertionFailure(); return nil } return url } @@ -122,6 +128,24 @@ extension ContactGroupDetails { } + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreater in a second step + convenience init(snapshotNode: ContactGroupDetailsSyncSnapshotNode, forEntityName entityName: String, within obvContext: ObvContext) { + let entityDescription = NSEntityDescription.entity(forEntityName: entityName, in: obvContext)! + self.init(entity: entityDescription, insertInto: obvContext) + if let photoServerKeyEncodedRaw = snapshotNode.photoServerKeyEncoded, + let photoServerKeyEncoded = ObvEncoded(withRawData: photoServerKeyEncodedRaw), + let label = snapshotNode.photoServerLabel, + let key = try? AuthenticatedEncryptionKeyDecoder.decode(photoServerKeyEncoded) { + self.photoServerKeyAndLabel = PhotoServerKeyAndLabel(key: key, label: label) + } else { + self.photoServerKeyAndLabel = nil + } + self.photoFilename = nil // It is ok not to call setPhotoURL(...) here + self.serializedCoreDetails = snapshotNode.serializedCoreDetails + self.version = snapshotNode.version + } + + func delete(identityPhotosDirectory: URL, within obvContext: ObvContext) throws { if let currentPhotoURL = self.getPhotoURL(identityPhotosDirectory: identityPhotosDirectory) { try obvContext.addContextDidSaveCompletionHandler { error in @@ -192,20 +216,20 @@ extension ContactGroupDetails { ObvIdentityNotificationNew.latestPhotoOfContactGroupOwnedHasBeenUpdated(groupUid: latestDetails.contactGroupOwned.groupUid, ownedIdentity: latestDetails.contactGroupOwned.ownedIdentity.cryptoIdentity) .postOnBackgroundQueue(within: notificationDelegate) - } else if let trustedDetails = self as? ContactGroupDetailsTrusted { + } else if let trustedDetails = self as? ContactGroupDetailsTrusted, let groupOwner = trustedDetails.contactGroupJoined.groupOwner.cryptoIdentity { ObvIdentityNotificationNew.trustedPhotoOfContactGroupJoinedHasBeenUpdated(groupUid: trustedDetails.contactGroupJoined.groupUid, ownedIdentity: trustedDetails.contactGroupJoined.ownedIdentity.cryptoIdentity, - groupOwner: trustedDetails.contactGroupJoined.groupOwner.cryptoIdentity) + groupOwner: groupOwner) .postOnBackgroundQueue(within: notificationDelegate) } else if let publishedDetails = self as? ContactGroupDetailsPublished { if let ownedGroup = publishedDetails.contactGroup as? ContactGroupOwned { ObvIdentityNotificationNew.publishedPhotoOfContactGroupOwnedHasBeenUpdated(groupUid: ownedGroup.groupUid, ownedIdentity: ownedGroup.ownedIdentity.cryptoIdentity) .postOnBackgroundQueue(within: notificationDelegate) - } else if let joinedGroup = publishedDetails.contactGroup as? ContactGroupJoined { + } else if let joinedGroup = publishedDetails.contactGroup as? ContactGroupJoined, let groupOwner = joinedGroup.groupOwner.cryptoIdentity { ObvIdentityNotificationNew.publishedPhotoOfContactGroupJoinedHasBeenUpdated(groupUid: joinedGroup.groupUid, ownedIdentity: joinedGroup.ownedIdentity.cryptoIdentity, - groupOwner: joinedGroup.groupOwner.cryptoIdentity) + groupOwner: groupOwner) .postOnBackgroundQueue(within: notificationDelegate) } else { assertionFailure() @@ -286,6 +310,9 @@ extension ContactGroupDetails { static var withoutPhotoFilename: NSPredicate { NSPredicate(withNilValueForKey: Key.photoFilename) } + static var withPhotoFilename: NSPredicate { + NSPredicate(withNonNilValueForKey: Key.photoFilename) + } static var withPhotoServerKey: NSPredicate { NSPredicate(withNonNilValueForKey: Key.photoServerKeyEncoded) } @@ -299,6 +326,57 @@ extension ContactGroupDetails { ]) } } + + + static func getInfosAboutGroupsHavingPhotoFilename(identityPhotosDirectory: URL, within obvContext: ObvContext) throws -> [(ownedIdentity: ObvCryptoIdentity, groupInformation: GroupInformation, photoURL: URL)] { + let request: NSFetchRequest = ContactGroupDetails.fetchRequest() + request.predicate = Predicate.withPhotoFilename + let items = try obvContext.fetch(request) + let results: [(ownedIdentity: ObvCryptoIdentity, groupInformation: GroupInformation, photoURL: URL)] = items.compactMap { details in + + guard let photoURL = details.getRawPhotoURL(identityPhotosDirectory: identityPhotosDirectory), + let contactGroup = try? details.getContactGroup(), + let coreDetails = try? ObvGroupCoreDetails(details.serializedCoreDetails), + let photoServerKeyAndLabel = details.photoServerKeyAndLabel else { + return nil + } + + let ownedIdentity = contactGroup.ownedIdentity.cryptoIdentity + + let groupDetailsElements = GroupDetailsElements( + version: details.version, + coreDetails: coreDetails, + photoServerKeyAndLabel: photoServerKeyAndLabel) + + if let contactGroupOwned = contactGroup as? ContactGroupOwned { + + guard let groupInformation = try? GroupInformation( + groupOwnerIdentity: contactGroupOwned.ownedIdentity.cryptoIdentity, + groupUid: contactGroupOwned.groupUid, + groupDetailsElements: groupDetailsElements) else { + return nil + } + return (ownedIdentity, groupInformation, photoURL) + + } else if let contactGroupJoined = contactGroup as? ContactGroupJoined { + + guard let groupOwnerIdentity = contactGroupJoined.groupOwner.cryptoIdentity else { return nil } + guard let groupInformation = try? GroupInformation( + groupOwnerIdentity: groupOwnerIdentity, + groupUid: contactGroupJoined.groupUid, + groupDetailsElements: groupDetailsElements) else { + return nil + } + return (ownedIdentity, groupInformation, photoURL) + + } else { + assertionFailure() + return nil + } + } + return results + } + static func getAllPhotoURLs(identityPhotosDirectory: URL, within obvContext: ObvContext) throws -> Set { let request: NSFetchRequest = ContactGroupDetails.fetchRequest() @@ -448,3 +526,156 @@ struct ContactGroupDetailsBackupItem: Codable, Hashable { } } + + +// MARK: - For Snapshot purposes + +extension ContactGroupDetails { + + var syncSnapshot: ContactGroupDetailsSyncSnapshotNode { + return .init(photoServerKeyEncoded: photoServerKeyEncoded, + photoServerLabel: photoServerLabel, + serializedCoreDetails: serializedCoreDetails, + version: version) + } + +} + + +struct ContactGroupDetailsSyncSnapshotNode: ObvSyncSnapshotNode { + + fileprivate let version: Int + fileprivate let serializedCoreDetails: Data + fileprivate let photoServerLabel: UID? + fileprivate let photoServerKeyEncoded: Data? + private let domain: Set + + let id = Self.generateIdentifier() + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case photoServerKeyEncoded = "photo_server_key" + case photoServerLabel = "photo_server_label" + case serializedCoreDetails = "serialized_details" + case version = "version" + case domain = "domain" + } + + private static let defaultDomain = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + + fileprivate init(photoServerKeyEncoded: Data?, photoServerLabel: UID?, serializedCoreDetails: Data, version: Int) { + self.photoServerKeyEncoded = photoServerKeyEncoded + self.photoServerLabel = photoServerLabel + self.serializedCoreDetails = serializedCoreDetails + self.version = version + self.domain = Self.defaultDomain + } + + + /// Sometimes, we use (e.g.) published snapshoted details to create published details *and* trusted details. In that case, we want two distinct nodes (different ids), but with identical other values. + /// This method allows to create such a copy. + func copyWithNewId() -> ContactGroupDetailsSyncSnapshotNode { + .init(photoServerKeyEncoded: photoServerKeyEncoded, + photoServerLabel: photoServerLabel, + serializedCoreDetails: serializedCoreDetails, + version: version) + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(photoServerKeyEncoded, forKey: .photoServerKeyEncoded) + try container.encodeIfPresent(photoServerLabel?.raw, forKey: .photoServerLabel) + guard let serializedCoreDetailsAsString = String(data: serializedCoreDetails, encoding: .utf8) else { + throw ObvError.couldNotRepresentSerializedCoreDetailsAsString + } + try container.encode(serializedCoreDetailsAsString, forKey: .serializedCoreDetails) + try container.encode(version, forKey: .version) + try container.encode(domain, forKey: .domain) + } + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + + guard domain.contains(.version) && domain.contains(.serializedCoreDetails) else { + assertionFailure() + throw ObvError.tryingToRestoreIncompleteSnapshot + } + + if domain.contains(.photoServerLabel) && domain.contains(.photoServerKeyEncoded) && values.allKeys.contains(.photoServerLabel) && values.allKeys.contains(.photoServerKeyEncoded) { + do { + self.photoServerKeyEncoded = try values.decode(Data.self, forKey: .photoServerKeyEncoded) + if let photoServerLabelAsData = try? values.decodeIfPresent(Data.self, forKey: .photoServerLabel), + let photoServerLabelAsUID = UID(uid: photoServerLabelAsData) { + // Expected + self.photoServerLabel = photoServerLabelAsUID + } else if let photoServerLabelAsUID = try values.decodeIfPresent(UID.self, forKey: .photoServerLabel) { + assertionFailure() + self.photoServerLabel = photoServerLabelAsUID + } else if let photoServerLabelAsString = try? values.decode(String.self, forKey: .photoServerLabel), + let photoServerLabelAsData = Data(base64Encoded: photoServerLabelAsString), + let photoServerLabelAsUID = UID(uid: photoServerLabelAsData) { + assertionFailure() + self.photoServerLabel = photoServerLabelAsUID + } else if let photoServerLabelAsString = try? values.decode(String.self, forKey: .photoServerLabel), + let photoServerLabelAsData = Data(hexString: photoServerLabelAsString), + let photoServerLabelAsUID = UID(uid: photoServerLabelAsData) { + assertionFailure() + self.photoServerLabel = photoServerLabelAsUID + } else { + assertionFailure() + throw ObvError.couldNotDecodePhotoServerLabel + } + } catch { + assertionFailure() + throw error + } + } else { + self.photoServerKeyEncoded = nil + self.photoServerLabel = nil + } + + let serializedCoreDetailsAsString = try values.decode(String.self, forKey: .serializedCoreDetails) + guard let serializedCoreDetailsAsData = serializedCoreDetailsAsString.data(using: .utf8) else { + throw ObvError.couldNotRepresentSerializedCoreDetailsAsData + } + self.serializedCoreDetails = serializedCoreDetailsAsData + self.version = try values.decode(Int.self, forKey: .version) + } + + + func restoreContactGroupDetailsLatestInstance(within obvContext: ObvContext, associations: inout SnapshotNodeManagedObjectAssociations) throws { + let contactGroupDetailsLatest = ContactGroupDetailsLatest(snapshotNode: self, within: obvContext) + try associations.associate(contactGroupDetailsLatest, to: self) + } + + + func restoreContactGroupDetailsPublishedInstance(within obvContext: ObvContext, associations: inout SnapshotNodeManagedObjectAssociations) throws { + let contactGroupDetailsPublished = ContactGroupDetailsPublished(snapshotNode: self, with: obvContext) + try associations.associate(contactGroupDetailsPublished, to: self) + } + + + func restoreContactGroupDetailsTrustedInstance(within obvContext: ObvContext, associations: inout SnapshotNodeManagedObjectAssociations) throws { + let contactGroupDetailsTrusted = ContactGroupDetailsTrusted(snapshotNode: self, within: obvContext) + try associations.associate(contactGroupDetailsTrusted, to: self) + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, within obvContext: ObvContext) throws { + // Nothing to do + } + + + enum ObvError: Error { + case couldNotRepresentSerializedCoreDetailsAsString + case tryingToRestoreIncompleteSnapshot + case couldNotDecodePhotoServerLabel + case couldNotRepresentSerializedCoreDetailsAsData + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetailsLatest.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetailsLatest.swift index cdaea98f..0705facd 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetailsLatest.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetailsLatest.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -54,7 +54,7 @@ final class ContactGroupDetailsLatest: ContactGroupDetails { convenience init(contactGroupOwned: ContactGroupOwned, groupDetailsElementsWithPhoto: GroupDetailsElementsWithPhoto, delegateManager: ObvIdentityDelegateManager) throws { guard let obvContext = contactGroupOwned.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: ContactGroupDetailsLatest.errorDomain) + throw ObvIdentityManagerError.contextIsNil } try self.init(groupDetailsElementsWithPhoto: groupDetailsElementsWithPhoto, @@ -71,4 +71,10 @@ final class ContactGroupDetailsLatest: ContactGroupDetails { self.init(backupItem: backupItem, forEntityName: ContactGroupDetailsLatest.entityName, within: obvContext) } + + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreater in a second step + convenience init(snapshotNode: ContactGroupDetailsSyncSnapshotNode, within obvContext: ObvContext) { + self.init(snapshotNode: snapshotNode, forEntityName: ContactGroupDetailsLatest.entityName, within: obvContext) + } + } diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetailsPublished.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetailsPublished.swift index c399d180..c4ed2336 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetailsPublished.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetailsPublished.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -54,7 +54,7 @@ final class ContactGroupDetailsPublished: ContactGroupDetails { convenience init(contactGroup: ContactGroup, groupDetailsElementsWithPhoto: GroupDetailsElementsWithPhoto, delegateManager: ObvIdentityDelegateManager) throws { guard let obvContext = contactGroup.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: ContactGroupDetailsPublished.errorDomain) + throw ObvIdentityManagerError.contextIsNil } try self.init(groupDetailsElementsWithPhoto: groupDetailsElementsWithPhoto, @@ -71,4 +71,10 @@ final class ContactGroupDetailsPublished: ContactGroupDetails { self.init(backupItem: backupItem, forEntityName: ContactGroupDetailsPublished.entityName, within: obvContext) } + + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreater in a second step + convenience init(snapshotNode: ContactGroupDetailsSyncSnapshotNode, with obvContext: ObvContext) { + self.init(snapshotNode: snapshotNode, forEntityName: ContactGroupDetailsPublished.entityName, within: obvContext) + } + } diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetailsTrusted.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetailsTrusted.swift index 6dcc0600..a5ef8aea 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetailsTrusted.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupDetailsTrusted.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -54,7 +54,7 @@ final class ContactGroupDetailsTrusted: ContactGroupDetails { convenience init(contactGroupJoined: ContactGroupJoined, groupDetailsElementsWithPhoto: GroupDetailsElementsWithPhoto, delegateManager: ObvIdentityDelegateManager) throws { guard let obvContext = contactGroupJoined.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: ContactGroupDetailsTrusted.errorDomain) + throw ObvIdentityManagerError.contextIsNil } try self.init(groupDetailsElementsWithPhoto: groupDetailsElementsWithPhoto, @@ -71,4 +71,9 @@ final class ContactGroupDetailsTrusted: ContactGroupDetails { self.init(backupItem: backupItem, forEntityName: ContactGroupDetailsTrusted.entityName, within: obvContext) } + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreater in a second step + convenience init(snapshotNode: ContactGroupDetailsSyncSnapshotNode, within obvContext: ObvContext) { + self.init(snapshotNode: snapshotNode, forEntityName: ContactGroupDetailsTrusted.entityName, within: obvContext) + } + } diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupJoined.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupJoined.swift index 662f6f70..ad01f430 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupJoined.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupJoined.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -34,7 +34,7 @@ final class ContactGroupJoined: ContactGroup, ObvErrorMaker { static let errorDomain = String(describing: ContactGroupJoined.self) private static let groupOwnerKey = "groupOwner" private static let trustedDetailsKey = "trustedDetails" - private static let groupOwnerCryptoIdentityKey = [groupOwnerKey, ContactIdentity.cryptoIdentityKey].joined(separator: ".") + private static let groupOwnerIdentityKey = [groupOwnerKey, ContactIdentity.Predicate.Key.rawIdentity.rawValue].joined(separator: ".") // MARK: Relationships @@ -69,7 +69,7 @@ final class ContactGroupJoined: ContactGroup, ObvErrorMaker { convenience init(groupInformation: GroupInformation, ownedIdentity: ObvCryptoIdentity, groupOwnerCryptoIdentity: ObvCryptoIdentity, pendingGroupMembers: Set, delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws { guard let groupOwner = try ContactIdentity.get(contactIdentity: groupInformation.groupOwnerIdentity, ownedIdentity: ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: ContactGroupJoined.errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let ownedIdentity = groupOwner.ownedIdentity else { @@ -77,14 +77,19 @@ final class ContactGroupJoined: ContactGroup, ObvErrorMaker { } guard try ContactGroupJoined.get(groupUid: groupInformation.groupUid, groupOwnerCryptoIdentity: groupInformation.groupOwnerIdentity, ownedIdentity: ownedIdentity, delegateManager: delegateManager) == nil else { - throw ObvIdentityManagerError.tryingToCreateContactGroupThatAlreadyExists.error(withDomain: ContactGroupJoined.errorDomain) + throw ObvIdentityManagerError.tryingToCreateContactGroupThatAlreadyExists + } + + guard let groupOwnerCryptoIdentity = groupOwner.cryptoIdentity else { + assertionFailure() + throw Self.makeError(message: "Could not get group owner crypto identity") } let groupInformationWithPhoto = GroupInformationWithPhoto(groupInformation: groupInformation, photoURL: nil) // Note that this will include inactive contacts in the group members. There is not much we can do. try self.init(groupInformationWithPhoto: groupInformationWithPhoto, ownedIdentity: ownedIdentity, - groupMembers: Set([groupOwner.cryptoIdentity]), + groupMembers: Set([groupOwnerCryptoIdentity]), pendingGroupMembers: pendingGroupMembers, delegateManager: delegateManager, forEntityName: ContactGroupJoined.entityName) @@ -105,6 +110,8 @@ final class ContactGroupJoined: ContactGroup, ObvErrorMaker { within: obvContext) } + + /// Used when restoring a backup fileprivate func restoreRelationshipsOfContactGroupJoined(trustedDetails: ContactGroupDetailsTrusted, groupMembers: Set, pendingGroupMembers: Set, publishedDetails: ContactGroupDetailsPublished) { /* groupOwner is set within ContactIdentity */ self.trustedDetails = trustedDetails @@ -113,13 +120,51 @@ final class ContactGroupJoined: ContactGroup, ObvErrorMaker { publishedDetails: publishedDetails) } + + /// Used when restoring a snapshot + func restoreRelationshipsOfContactGroupJoined(groupOwner: ContactIdentity, trustedDetails: ContactGroupDetailsTrusted, groupMembers: Set, pendingGroupMembers: Set, publishedDetails: ContactGroupDetailsPublished) { + self.groupOwner = groupOwner + self.trustedDetails = trustedDetails + self.restoreRelationshipsOfContactGroup(groupMembers: groupMembers, + pendingGroupMembers: pendingGroupMembers, + publishedDetails: publishedDetails) + } + + + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreater in a second step + convenience init(snapshotNode: ContactGroupSyncSnapshotNode, groupUid: UID, within obvContext: ObvContext) throws { + guard let groupMembersVersion = snapshotNode.groupMembersVersion else { + assertionFailure() + throw ContactGroupSyncSnapshotNode.ObvError.tryingToRestoreIncompleteNode + } + self.init(groupMembersVersion: groupMembersVersion, + groupUid: groupUid, + forEntityName: ContactGroupJoined.entityName, + within: obvContext) + } + + func updatePhoto(withData photoData: Data, ofDetailsWithVersion version: Int, delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws { + if self.publishedDetails.version == version { try self.publishedDetails.setGroupPhoto(data: photoData, delegateManager: delegateManager) } - if self.trustedDetails.version == version { + + // In the following, if the photo was ok for the published details and if publishedDetails.photoServerLabel == trustedDetails.photoServerLabel, we use the photo for the trusted details. + // Note that the equality test between keys and labels does deserialize keys to compare them. + + let trustedDetailsCanUseSamePhotoThanPublishedDetails: Bool + if let tskl = self.trustedDetails.photoServerKeyAndLabel, let pskl = self.publishedDetails.photoServerKeyAndLabel, tskl == pskl, + self.publishedDetails.version == version { + trustedDetailsCanUseSamePhotoThanPublishedDetails = true + } else { + trustedDetailsCanUseSamePhotoThanPublishedDetails = false + } + + if self.trustedDetails.version == version || trustedDetailsCanUseSamePhotoThanPublishedDetails { try self.trustedDetails.setGroupPhoto(data: photoData, delegateManager: delegateManager) } + } @@ -141,10 +186,8 @@ extension ContactGroupJoined { guard groupMembersVersion > self.groupMembersVersion else { return } - let errorDomain = ContactGroupJoined.errorDomain - guard let obvContext = self.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: errorDomain) + throw ObvIdentityManagerError.contextIsNil } // Check that no identity appears both within the (new) pending members and the (new) group members @@ -153,7 +196,7 @@ extension ContactGroupJoined { let groupMemberIdentitiesNew = Set(groupMembersWithCoreDetails.map { $0.cryptoIdentity }) let pendingGroupMemberIdentitiesNew = Set(pendingMembersWithCoreDetails.map { $0.cryptoIdentity }) guard groupMemberIdentitiesNew.intersection(pendingGroupMemberIdentitiesNew).isEmpty else { - throw ObvIdentityManagerError.anIdentityAppearsBothWithinPendingMembersAndGroupMembers.error(withDomain: errorDomain) + throw ObvIdentityManagerError.anIdentityAppearsBothWithinPendingMembersAndGroupMembers } } @@ -166,7 +209,11 @@ extension ContactGroupJoined { return contact } else { // The identity is not a contact yet, we create the contact and insert it in the list of group members - let trustOrigin = TrustOrigin.group(timestamp: Date(), groupOwner: groupOwner.cryptoIdentity) + guard let groupOwnerCryptoIdentity = groupOwner.cryptoIdentity else { + assertionFailure() + throw Self.makeError(message: "Could not get group owner crypto identity") + } + let trustOrigin = TrustOrigin.group(timestamp: Date(), groupOwner: groupOwnerCryptoIdentity) guard let contact = ContactIdentity(cryptoIdentity: groupMemberWithCoreDetails.cryptoIdentity, identityCoreDetails: groupMemberWithCoreDetails.coreDetails, trustOrigin: trustOrigin, @@ -174,7 +221,7 @@ extension ContactGroupJoined { isOneToOne: false, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.contactCreationFailed.error(withDomain: errorDomain) + throw ObvIdentityManagerError.contactCreationFailed } return contact } @@ -224,7 +271,11 @@ extension ContactGroupJoined { func getPublishedJoinedGroupInformation() throws -> GroupInformation { let groupDetailsElements = try publishedDetails.getGroupDetailsElements() - let groupInformation = try GroupInformation(groupOwnerIdentity: groupOwner.cryptoIdentity, + guard let groupOwnerCryptoIdentity = groupOwner.cryptoIdentity else { + assertionFailure() + throw Self.makeError(message: "Could not get group owner crypto identity") + } + let groupInformation = try GroupInformation(groupOwnerIdentity: groupOwnerCryptoIdentity, groupUid: groupUid, groupDetailsElements: groupDetailsElements) return groupInformation @@ -242,7 +293,11 @@ extension ContactGroupJoined { func getTrustedJoinedGroupInformation() throws -> GroupInformation { let groupDetailsElements = try trustedDetails.getGroupDetailsElements() - let groupInformation = try GroupInformation(groupOwnerIdentity: groupOwner.cryptoIdentity, + guard let groupOwnerCryptoIdentity = groupOwner.cryptoIdentity else { + assertionFailure() + throw Self.makeError(message: "Could not get group owner crypto identity") + } + let groupInformation = try GroupInformation(groupOwnerIdentity: groupOwnerCryptoIdentity, groupUid: groupUid, groupDetailsElements: groupDetailsElements) return groupInformation @@ -258,10 +313,9 @@ extension ContactGroupJoined { func trustDetailsPublished(within obvContext: ObvContext, delegateManager: ObvIdentityDelegateManager) throws { - let errorDomain = ContactGroupJoined.errorDomain - guard publishedDetails.version > trustedDetails.version else { - throw ObvIdentityManagerError.invalidGroupDetailsVersion.error(withDomain: errorDomain) - } + // guard publishedDetails.version > trustedDetails.version else { + // throw ObvIdentityManagerError.invalidGroupDetailsVersion + // } let groupDetailsElementsWithPhoto = try publishedDetails.getGroupDetailsElementsWithPhoto(identityPhotosDirectory: delegateManager.identityPhotosDirectory) try self.trustedDetails.delete(identityPhotosDirectory: delegateManager.identityPhotosDirectory, within: obvContext) _ = try ContactGroupDetailsTrusted(contactGroupJoined: self, @@ -306,12 +360,17 @@ extension ContactGroupJoined { func getJoinedGroupStructure(identityPhotosDirectory: URL) throws -> GroupStructure { - let groupMembers = Set(self.groupMembers.map { $0.cryptoIdentity }) + let groupMembers = Set(self.groupMembers.compactMap { $0.cryptoIdentity }) let pendingGroupMembers = self.getPendingGroupMembersWithCoreDetails() let groupMembersVersion = self.groupMembersVersion let publishedGroupDetailsWithPhoto = try self.publishedDetails.getGroupDetailsElementsWithPhoto(identityPhotosDirectory: identityPhotosDirectory) let trustedGroupDetails = try self.trustedDetails.getGroupDetailsElementsWithPhoto(identityPhotosDirectory: identityPhotosDirectory) + guard let groupOwnerCryptoIdentity = groupOwner.cryptoIdentity else { + assertionFailure() + throw Self.makeError(message: "Could not get group owner crypto identity") + } + let groupStructure = GroupStructure.createJoinedGroupStructure( groupUid: groupUid, publishedGroupDetailsWithPhoto: publishedGroupDetailsWithPhoto, @@ -320,7 +379,7 @@ extension ContactGroupJoined { groupMembers: groupMembers, pendingGroupMembers: pendingGroupMembers, groupMembersVersion: groupMembersVersion, - groupOwner: self.groupOwner.cryptoIdentity) + groupOwner: groupOwnerCryptoIdentity) return groupStructure @@ -329,6 +388,31 @@ extension ContactGroupJoined { } +// MARK: - Processing sync Atoms + +extension ContactGroupJoined { + + func processTrustGroupV1DetailsSyncAtom(serializedGroupDetailsElements: Data, delegateManager: ObvIdentityDelegateManager) throws { + + guard let obvContext else { + assertionFailure() + throw ObvIdentityManagerError.contextIsNil + } + + let atomGroupDetailsElements = try GroupDetailsElements(serializedGroupDetailsElements) + let localPublishedGroupDetailsElements = try self.publishedDetails.getGroupDetailsElements() + + // We compare the details that the owned identity trusted on another owned device with the local, published details for the group (without considering versions). + // If there is a match, we can immediately trust the local published details + if atomGroupDetailsElements.fieldsAreTheSameButVersionIsNotConsidered(than: localPublishedGroupDetailsElements) { + try trustDetailsPublished(within: obvContext, delegateManager: delegateManager) + } + + } + +} + + // MARK: - Convenience DB getters extension ContactGroupJoined { @@ -339,12 +423,12 @@ extension ContactGroupJoined { static func get(groupUid: UID, groupOwnerCryptoIdentity: ObvCryptoIdentity, ownedIdentity: OwnedIdentity, delegateManager: ObvIdentityDelegateManager) throws -> ContactGroupJoined? { guard let obvContext = ownedIdentity.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: ContactGroupJoined.errorDomain) + throw ObvIdentityManagerError.contextIsNil } let request: NSFetchRequest = ContactGroupJoined.fetchRequest() request.predicate = NSPredicate(format: "%K == %@ AND %K == %@ AND %K == %@", ContactGroup.groupUidKey, groupUid, - ContactGroupJoined.groupOwnerCryptoIdentityKey, groupOwnerCryptoIdentity, + ContactGroupJoined.groupOwnerIdentityKey, groupOwnerCryptoIdentity.getIdentity() as NSData, ContactGroup.ownedIdentityKey, ownedIdentity) request.fetchLimit = 1 let item = (try obvContext.fetch(request)).first @@ -377,21 +461,21 @@ extension ContactGroupJoined { return } - if isInserted { + if isInserted, let groupOwnerCryptoIdentity = groupOwner.cryptoIdentity { let NotificationType = ObvIdentityNotification.NewContactGroupJoined.self let userInfo = [NotificationType.Key.groupUid: self.groupUid, - NotificationType.Key.groupOwner: self.groupOwner.cryptoIdentity, + NotificationType.Key.groupOwner: groupOwnerCryptoIdentity, NotificationType.Key.ownedIdentity: self.ownedIdentity.cryptoIdentity] as [String: Any] delegateManager.notificationDelegate.post(name: NotificationType.name, userInfo: userInfo) } - if notificationRelatedChanges.contains(.updatedTrustedDetails) { + if notificationRelatedChanges.contains(.updatedTrustedDetails), let groupOwnerCryptoIdentity = groupOwner.cryptoIdentity { let NotificationType = ObvIdentityNotification.ContactGroupJoinedHasUpdatedTrustedDetails.self let userInfo = [NotificationType.Key.groupUid: self.groupUid, - NotificationType.Key.groupOwner: self.groupOwner.cryptoIdentity, + NotificationType.Key.groupOwner: groupOwnerCryptoIdentity, NotificationType.Key.ownedIdentity: self.ownedIdentity.cryptoIdentity] as [String: Any] delegateManager.notificationDelegate.post(name: NotificationType.name, userInfo: userInfo) @@ -453,7 +537,10 @@ struct ContactGroupJoinedBackupItem: Codable, Hashable { fileprivate init(groupMembersVersion: Int, groupUid: UID, groupMembers: Set, pendingGroupMembers: Set, publishedDetails: ContactGroupDetailsPublished, trustedDetails: ContactGroupDetailsTrusted) { self.groupMembersVersion = groupMembersVersion self.groupUid = groupUid - self.groupMembers = Set(groupMembers.map({ GroupMemberBackupItem(memberIdentity: $0.cryptoIdentity.getIdentity()) })) + self.groupMembers = Set(groupMembers.compactMap { + guard let memberIdentity = $0.cryptoIdentity?.getIdentity() else { assertionFailure(); return nil } + return GroupMemberBackupItem(memberIdentity: memberIdentity) + }) self.pendingGroupMembers = Set(pendingGroupMembers.map { $0.backupItem }) // If the published details are identical to the trusted details, we do not include them in the json file if publishedDetails.version == trustedDetails.version { @@ -524,7 +611,7 @@ struct ContactGroupJoinedBackupItem: Codable, Hashable { do { let allContacts = obvContext.registeredObjects.filter({ $0 is ContactIdentity }) as! Set for groupMember in self.groupMembers { - guard let groupMemberAsContact = allContacts.first(where: { $0.cryptoIdentity.getIdentity() == groupMember.memberIdentity }) else { + guard let groupMemberAsContact = allContacts.first(where: { $0.cryptoIdentity?.getIdentity() == groupMember.memberIdentity }) else { throw ContactGroupJoinedBackupItem.makeError(message: "Could not find the contact identity instance corresponding to the group member") } groupMembers.insert(groupMemberAsContact) diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupOwned.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupOwned.swift index 5dda657a..0ac7c98e 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupOwned.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupOwned.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -60,15 +60,15 @@ final class ContactGroupOwned: ContactGroup { convenience init(groupInformationWithPhoto: GroupInformationWithPhoto, ownedIdentity: ObvCryptoIdentity, pendingGroupMembers: Set, delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws { guard groupInformationWithPhoto.groupOwnerIdentity == ownedIdentity else { - throw ObvIdentityManagerError.inappropriateGroupInformation.error(withDomain: ContactGroupOwned.errorDomain) + throw ObvIdentityManagerError.inappropriateGroupInformation } guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: ContactGroupOwned.errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard try ContactGroupOwned.get(groupUid: groupInformationWithPhoto.groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) == nil else { - throw ObvIdentityManagerError.tryingToCreateContactGroupThatAlreadyExists.error(withDomain: ContactGroupOwned.errorDomain) + throw ObvIdentityManagerError.tryingToCreateContactGroupThatAlreadyExists } try self.init(groupInformationWithPhoto: groupInformationWithPhoto, @@ -92,12 +92,27 @@ final class ContactGroupOwned: ContactGroup { within: obvContext) } - fileprivate func restoreRelationshipsOfContactGroupOwned(latestDetails: ContactGroupDetailsLatest, groupMembers: Set, pendingGroupMembers: Set, publishedDetails: ContactGroupDetailsPublished) { + + func restoreRelationshipsOfContactGroupOwned(latestDetails: ContactGroupDetailsLatest, groupMembers: Set, pendingGroupMembers: Set, publishedDetails: ContactGroupDetailsPublished) { self.latestDetails = latestDetails self.restoreRelationshipsOfContactGroup(groupMembers: groupMembers, pendingGroupMembers: pendingGroupMembers, publishedDetails: publishedDetails) } + + + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreater in a second step + convenience init(snapshotNode: ContactGroupSyncSnapshotNode, groupUid: UID, within obvContext: ObvContext) throws { + guard let groupMembersVersion = snapshotNode.groupMembersVersion else { + assertionFailure() + throw ContactGroupSyncSnapshotNode.ObvError.tryingToRestoreIncompleteNode + } + self.init(groupMembersVersion: groupMembersVersion, + groupUid: groupUid, + forEntityName: ContactGroupOwned.entityName, + within: obvContext) + } + func updatePhoto(withData photoData: Data, ofDetailsWithVersion version: Int, delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws { @@ -121,6 +136,75 @@ final class ContactGroupOwned: ContactGroup { } +// MARK: - Updating the pending and group members + +extension ContactGroupOwned { + + func updatePendingMembersAndGroupMembers(groupMembersWithCoreDetails: Set, pendingMembersWithCoreDetails: Set, groupMembersVersion: Int, delegateManager: ObvIdentityDelegateManager, flowId: FlowIdentifier) throws { + + guard groupMembersVersion > self.groupMembersVersion else { return } + + guard let obvContext = self.obvContext else { + throw ObvIdentityManagerError.contextIsNil + } + + // Check that no identity appears both within the (new) pending members and the (new) group members + + do { + let groupMemberIdentitiesNew = Set(groupMembersWithCoreDetails.map { $0.cryptoIdentity }) + let pendingGroupMemberIdentitiesNew = Set(pendingMembersWithCoreDetails.map { $0.cryptoIdentity }) + guard groupMemberIdentitiesNew.intersection(pendingGroupMemberIdentitiesNew).isEmpty else { + throw ObvIdentityManagerError.anIdentityAppearsBothWithinPendingMembersAndGroupMembers + } + } + + // Create a new version of the group members + + let newVersionOfGroupMembers: Set = Set( try groupMembersWithCoreDetails.compactMap { (groupMemberWithCoreDetails) in + guard groupMemberWithCoreDetails.cryptoIdentity != ownedIdentity.cryptoIdentity else { return nil } + if let contact = try ContactIdentity.get(contactIdentity: groupMemberWithCoreDetails.cryptoIdentity, ownedIdentity: ownedIdentity.cryptoIdentity, delegateManager: delegateManager, within: obvContext) { + // The identity is already a contact, we simply insert it in the list of group members + return contact + } else { + let trustOrigin = TrustOrigin.group(timestamp: Date(), groupOwner: ownedIdentity.cryptoIdentity) + guard let contact = ContactIdentity(cryptoIdentity: groupMemberWithCoreDetails.cryptoIdentity, + identityCoreDetails: groupMemberWithCoreDetails.coreDetails, + trustOrigin: trustOrigin, + ownedIdentity: ownedIdentity, + isOneToOne: false, + delegateManager: delegateManager) + else { + throw ObvIdentityManagerError.contactCreationFailed + } + return contact + } + }) + + // Create a new version of the pending group members + + let newVersionOfPendingMembers: Set = Set( try pendingMembersWithCoreDetails.map { (pendingMemberWithCoreDetails) in + + if let pendingMember = try PendingGroupMember.get(cryptoIdentity: pendingMemberWithCoreDetails.cryptoIdentity, contactGroup: self, delegateManager: delegateManager) { + // The identity is already a pending member, we simply insert in the new list of pending members + return pendingMember + } else { + // The identity is not yet a PendingMember, we create it and insert it + let pendingMember = try PendingGroupMember(contactGroup: self, cryptoIdentityWithCoreDetails: pendingMemberWithCoreDetails, delegateManager: delegateManager) + return pendingMember + } + }) + + // Replace the old versions of the group members and of the pending members by the new ones and update the version number + + try super.updatePendingMembersAndGroupMembers(newVersionOfGroupMembers: newVersionOfGroupMembers, + newVersionOfPendingMembers: newVersionOfPendingMembers, + groupMembersVersion: groupMembersVersion) + + } + +} + + // MARK: - Convenience methods extension ContactGroupOwned { @@ -145,10 +229,10 @@ extension ContactGroupOwned { func updateDetailsLatest(with groupDetailsElementsWithPhoto: GroupDetailsElementsWithPhoto, delegateManager: ObvIdentityDelegateManager) throws { guard let obvContext = self.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: ContactGroupOwned.errorDomain) + throw ObvIdentityManagerError.contextIsNil } - guard groupDetailsElementsWithPhoto.version == 1 + publishedDetails.version else { - throw ObvIdentityManagerError.invalidGroupDetailsVersion.error(withDomain: ContactGroupOwned.errorDomain) + guard groupDetailsElementsWithPhoto.version >= 1 + publishedDetails.version else { + throw ObvIdentityManagerError.invalidGroupDetailsVersion } try self.latestDetails.delete(identityPhotosDirectory: delegateManager.identityPhotosDirectory, within: obvContext) self.latestDetails = try ContactGroupDetailsLatest(contactGroupOwned: self, @@ -160,7 +244,7 @@ extension ContactGroupOwned { func discardDetailsLatest(delegateManager: ObvIdentityDelegateManager) throws { guard let obvContext = self.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: ContactGroupOwned.errorDomain) + throw ObvIdentityManagerError.contextIsNil } try self.latestDetails.delete(identityPhotosDirectory: delegateManager.identityPhotosDirectory, within: obvContext) let groupDetailsElementsWithPhoto = try publishedDetails.getGroupDetailsElementsWithPhoto(identityPhotosDirectory: delegateManager.identityPhotosDirectory) @@ -190,7 +274,7 @@ extension ContactGroupOwned { func getOwnedGroupStructure(identityPhotosDirectory: URL) throws -> GroupStructure { - let groupMembers = Set(self.groupMembers.map { $0.cryptoIdentity }) + let groupMembers = Set(self.groupMembers.compactMap { $0.cryptoIdentity }) let pendingGroupMembers = self.getPendingGroupMembersWithCoreDetails() let groupMembersVersion = self.groupMembersVersion let publishedGroupDetailsWithPhoto = try self.publishedDetails.getGroupDetailsElementsWithPhoto(identityPhotosDirectory: identityPhotosDirectory) @@ -222,7 +306,7 @@ extension ContactGroupOwned { func markPendingMemberAsDeclined(pendingGroupMember: ObvCryptoIdentity) throws { guard let pendingGroupMemberObject = self.pendingGroupMembers.filter({ $0.cryptoIdentity == pendingGroupMember }).first else { - throw ObvIdentityManagerError.pendingGroupMemberDoesNotExist.error(withDomain: ContactGroupOwned.errorDomain) + throw ObvIdentityManagerError.pendingGroupMemberDoesNotExist } pendingGroupMemberObject.markAsDeclined(delegateManager: delegateManager) @@ -233,7 +317,7 @@ extension ContactGroupOwned { func unmarkDeclinedPendingMemberAsDeclined(pendingGroupMember: ObvCryptoIdentity) throws { guard let pendingGroupMemberObject = self.pendingGroupMembers.filter({ $0.cryptoIdentity == pendingGroupMember }).first else { - throw ObvIdentityManagerError.pendingGroupMemberDoesNotExist.error(withDomain: ContactGroupOwned.errorDomain) + throw ObvIdentityManagerError.pendingGroupMemberDoesNotExist } pendingGroupMemberObject.unmarkAsDeclined(delegateManager: delegateManager) @@ -243,15 +327,13 @@ extension ContactGroupOwned { func add(newPendingMembers: Set, delegateManager: ObvIdentityDelegateManager) throws { - let errorDomain = ContactGroupOwned.errorDomain - guard let obvContext = self.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: errorDomain) + throw ObvIdentityManagerError.contextIsNil } // Filter out the "new" pending members that are already pending members. Also filter out the members. let cryptoIdentitiesOfCurrentPendingMembers = Set(self.pendingGroupMembers.map { $0.cryptoIdentity }) - let cryptoIdentitiesOfCurrentMembers = Set(self.groupMembers.map { $0.cryptoIdentity }) + let cryptoIdentitiesOfCurrentMembers = Set(self.groupMembers.compactMap { $0.cryptoIdentity }) let reallyNewPendingMembers = newPendingMembers.subtracting(cryptoIdentitiesOfCurrentPendingMembers).subtracting(cryptoIdentitiesOfCurrentMembers) guard !reallyNewPendingMembers.isEmpty else { return } @@ -262,18 +344,19 @@ extension ContactGroupOwned { delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotContact.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotContact } return contact }) - let reallyNewPendingMemberObjects: Set = Set( try newPendingMemberIdentities.map { (contact) in + let reallyNewPendingMemberObjects: Set = Set( try newPendingMemberIdentities.compactMap { (contact) in let publishedCoreDetails = contact.publishedIdentityDetails?.getIdentityDetails(identityPhotosDirectory: delegateManager.identityPhotosDirectory)?.coreDetails guard let trustedCoreDetails = contact.trustedIdentityDetails.getIdentityDetails(identityPhotosDirectory: delegateManager.identityPhotosDirectory)?.coreDetails else { throw Self.makeError(message: "Could not get the trusted details of a contact") } let coreDetails = publishedCoreDetails ?? trustedCoreDetails - let cryptoIdentityWithCoreDetails = CryptoIdentityWithCoreDetails(cryptoIdentity: contact.cryptoIdentity, + guard let contactCryptoIdentity = contact.cryptoIdentity else { assertionFailure(); return nil } + let cryptoIdentityWithCoreDetails = CryptoIdentityWithCoreDetails(cryptoIdentity: contactCryptoIdentity, coreDetails: coreDetails) return try PendingGroupMember(contactGroup: self, cryptoIdentityWithCoreDetails: cryptoIdentityWithCoreDetails, @@ -296,7 +379,10 @@ extension ContactGroupOwned { func remove(pendingOrGroupMembers: Set) throws { - let groupMembersToRemove = Set(self.groupMembers.filter { pendingOrGroupMembers.contains($0.cryptoIdentity) }) + let groupMembersToRemove = Set(self.groupMembers.filter { + guard let cryptoIdentity = $0.cryptoIdentity else { assertionFailure(); return false } + return pendingOrGroupMembers.contains(cryptoIdentity) + }) let pendingMembersToRemove = Set(self.pendingGroupMembers.filter { pendingOrGroupMembers.contains($0.cryptoIdentity) }) let newVersionOfGroupMembers = self.groupMembers.subtracting(groupMembersToRemove) @@ -334,7 +420,7 @@ extension ContactGroupOwned { static func get(groupUid: UID, ownedIdentity: OwnedIdentity, delegateManager: ObvIdentityDelegateManager) throws -> ContactGroupOwned? { guard let obvContext = ownedIdentity.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: ContactGroupOwned.errorDomain) + throw ObvIdentityManagerError.contextIsNil } let request: NSFetchRequest = ContactGroupOwned.fetchRequest() request.predicate = NSPredicate(format: "%K == %@ AND %K == %@", @@ -463,7 +549,7 @@ struct ContactGroupOwnedBackupItem: Codable, Hashable { fileprivate init(groupMembersVersion: Int, groupUid: UID, groupMembers: Set, pendingGroupMembers: Set, publishedDetails: ContactGroupDetailsPublished, latestDetails: ContactGroupDetailsLatest) { self.groupMembersVersion = groupMembersVersion self.groupUid = groupUid - self.groupMembers = Set(groupMembers.map({ GroupMemberBackupItem(memberIdentity: $0.cryptoIdentity.getIdentity()) })) + self.groupMembers = Set(groupMembers.map({ GroupMemberBackupItem(memberIdentity: $0.identity) })) self.pendingGroupMembers = Set(pendingGroupMembers.map { $0.backupItem }) self.publishedDetails = publishedDetails.backupItem // If the latest details are identical to the published details, we do not include them in the json file @@ -540,7 +626,7 @@ struct ContactGroupOwnedBackupItem: Codable, Hashable { do { let allContacts = obvContext.registeredObjects.filter({ $0 is ContactIdentity }) as! Set for groupMember in self.groupMembers { - guard let groupMemberAsContact = allContacts.first(where: { $0.cryptoIdentity.getIdentity() == groupMember.memberIdentity }) else { + guard let groupMemberAsContact = allContacts.first(where: { $0.identity == groupMember.memberIdentity }) else { throw ContactGroupOwnedBackupItem.makeError(message: "Could not find the contact identity instance corresponding to the group member") } groupMembers.insert(groupMemberAsContact) diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2.swift index 90fddc1a..e449c720 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2.swift @@ -225,7 +225,6 @@ final class ContactGroupV2: NSManagedObject, ObvManagedObject, ObvErrorMaker { private var changedKeys = Set() private var valuesOnDeletion: (ownedIdentity: ObvCryptoIdentity, appGroupIdentifier: Data)? private var creationOrUpdateInitiator = ObvGroupV2.CreationOrUpdateInitiator.createdOrUpdatedBySomeoneElse // Kept in memory, reset to an appropriate value if required - /// Expected to be non-nil var identifierVersionAndKeys: GroupV2.IdentifierVersionAndKeys? { @@ -362,6 +361,58 @@ final class ContactGroupV2: NSManagedObject, ObvManagedObject, ObvErrorMaker { } + private var isInsertedWhileRestoringSyncSnapshot = false + + + /// Used *exclusively* during a snapshot restore for creating an instance, relationships are recreater in a second step + fileprivate convenience init(snapshotNode: ContactGroupV2SyncSnapshotNode, groupIdentifier: GroupV2.Identifier, ownedIdentity: Data, within obvContext: ObvContext) throws { + + let entityDescription = NSEntityDescription.entity(forEntityName: ContactGroupV2.entityName, in: obvContext)! + self.init(entity: entityDescription, insertInto: obvContext) + + switch groupIdentifier.category { + case .server: + guard let groupVersion = snapshotNode.groupVersion else { + assertionFailure() + throw ContactGroupV2SyncSnapshotNode.ObvError.tryingToRestoreIncompleteNode + } + self.groupVersion = groupVersion + case .keycloak: + self.groupVersion = 0 // Always 0 for a keycloak group + } + + guard let ownGroupInvitationNonce = snapshotNode.ownGroupInvitationNonce else { + assertionFailure() + throw ContactGroupV2SyncSnapshotNode.ObvError.tryingToRestoreIncompleteNode + } + + self.ownGroupInvitationNonce = ownGroupInvitationNonce + self.rawBlobMainSeed = snapshotNode.rawBlobMainSeed + self.rawBlobVersionSeed = snapshotNode.rawBlobVersionSeed + self.rawCategory = groupIdentifier.category.rawValue + self.rawGroupAdminServerAuthenticationPrivateKey = snapshotNode.rawGroupAdminServerAuthenticationPrivateKey + self.rawGroupUID = groupIdentifier.groupUID.raw + self.rawOwnedIdentityIdentity = ownedIdentity + self.rawOwnPermissions = snapshotNode.rawOwnPermissions.joined(separator: String(Self.separatorForPermissions)) + self.rawPushTopic = snapshotNode.rawPushTopic + self.rawServerURL = groupIdentifier.serverURL + self.rawVerifiedAdministratorsChain = snapshotNode.rawVerifiedAdministratorsChain + self.serializedSharedSettings = snapshotNode.serializedSharedSettings + self.rawLastModificationTimestamp = snapshotNode.lastModificationTimestamp // Set iff keycloak group + + switch groupIdentifier.category { + case .keycloak: + self.frozen = false // Always false for a keycloak group + case .server: + self.frozen = true // True when restoring a backup + } + + // Prevents the sending of notifications + isInsertedWhileRestoringSyncSnapshot = true + + } + + /// Called when creating a new group for which we are an administrator. This method is *not* the one to call when restoring a backup. static func createContactGroupV2AdministratedByOwnedIdentity(_ ownedIdentity: OwnedIdentity, serializedGroupCoreDetails: Data, photoURL: URL?, ownRawPermissions: Set, otherGroupMembers: Set, using prng: PRNGService, solveChallengeDelegate: ObvSolveChallengeDelegate, delegateManager: ObvIdentityDelegateManager) throws -> (contactGroup: ContactGroupV2, groupAdminServerAuthenticationPublicKey: PublicKeyForAuthentication) { @@ -468,7 +519,7 @@ final class ContactGroupV2: NSManagedObject, ObvManagedObject, ObvErrorMaker { /// Called when joigning a new group (we may be an administrator or not but if we are, we certainly did not create the group). This method is *not* the one to call when restoring a backup. - static func createContactGroupV2JoinedByOwnedIdentity(_ ownedIdentity: OwnedIdentity, groupIdentifier: GroupV2.Identifier, serverBlob: GroupV2.ServerBlob, blobKeys: GroupV2.BlobKeys, delegateManager: ObvIdentityDelegateManager) throws { + static func createContactGroupV2JoinedByOwnedIdentity(_ ownedIdentity: OwnedIdentity, groupIdentifier: GroupV2.Identifier, serverBlob: GroupV2.ServerBlob, blobKeys: GroupV2.BlobKeys, createdByMeOnOtherDevice: Bool, delegateManager: ObvIdentityDelegateManager) throws { guard let obvContext = ownedIdentity.obvContext else { assertionFailure(); throw Self.makeError(message: "Cannot find ObvContext in OwnedIdentity") } @@ -522,7 +573,11 @@ final class ContactGroupV2: NSManagedObject, ObvManagedObject, ObvErrorMaker { // Set an appropriate value for the initiator - group.creationOrUpdateInitiator = .createdOrUpdatedBySomeoneElse + if createdByMeOnOtherDevice { + group.creationOrUpdateInitiator = .createdByMe + } else { + group.creationOrUpdateInitiator = .createdOrUpdatedBySomeoneElse + } } @@ -853,7 +908,15 @@ extension ContactGroupV2 { isOneToOne: false, delegateManager: delegateManager) - // Now that we know for sure that the pending member is a contact, we can move it from the pending members to the members + // In the case of keycloak groups, make sure the contact is keycloak managed before moving her from the pending members to the other members + + if groupIdentifier.category == .keycloak { + guard contact.isCertifiedByOwnKeycloak else { + return + } + } + + // Now that we know for sure that the pending member is a contact and is keycloak managed, we can move her from the pending members to the members try ContactGroupV2Member.createMember(from: contact, inContactGroup: self, rawPermissions: pendingMember.allRawPermissions, groupInvitationNonce: pendingMember.groupInvitationNonce) try pendingMember.delete(delegateManager: delegateManager) @@ -1274,6 +1337,22 @@ extension ContactGroupV2 { } +// MARK: - Processing sync atoms between owned devices + +extension ContactGroupV2 { + + func processTrustGroupV2DetailsSyncAtom(version: Int, delegateManager: ObvIdentityDelegateManager) throws { + + guard self.groupVersion == version else { + return + } + + try replaceTrustedDetailsByPublishedDetails(identityPhotosDirectory: delegateManager.identityPhotosDirectory, delegateManager: delegateManager) + + } + +} + // MARK: - Convenience DB getters @@ -1321,9 +1400,9 @@ extension ContactGroupV2 { private static func withContactIdentityAmongOtherMembers(_ contactIdentity: ObvCryptoIdentity) -> NSPredicate { let predicateChain = [Key.rawOtherMembers.rawValue, ContactGroupV2Member.Predicate.Key.rawContactIdentity.rawValue, - ContactIdentity.Predicate.Key.cryptoIdentity.rawValue].joined(separator: ".") + ContactIdentity.Predicate.Key.rawIdentity.rawValue].joined(separator: ".") let predicateFormat = "ANY \(predicateChain) == %@" - return NSPredicate(format: predicateFormat, contactIdentity) + return NSPredicate(format: predicateFormat, contactIdentity.getIdentity() as NSData) } private static func withContactIdentityAmongPendingMembers(_ contactIdentity: ObvCryptoIdentity) -> NSPredicate { let predicateChain = [Key.rawPendingMembers.rawValue, @@ -1555,11 +1634,16 @@ extension ContactGroupV2 { changedKeys.removeAll() valuesOnDeletion = nil isRestoringBackup = false + isInsertedWhileRestoringSyncSnapshot = false creationOrUpdateInitiator = .createdOrUpdatedBySomeoneElse } // We do not send any notification after inserting an object during a backup restore. guard !isRestoringBackup else { assert(isInserted); return } + + // We do not send any notification after inserting an object during a snapshot restore. + guard !isInsertedWhileRestoringSyncSnapshot else { assert(isInserted); return } + guard let delegateManager = self.delegateManager else { assertionFailure(); return } guard let notificationDelegate = delegateManager.notificationDelegate else { assertionFailure(); return } @@ -1583,12 +1667,10 @@ extension ContactGroupV2 { .postOnBackgroundQueue(within: notificationDelegate) } - if (isInserted && pushTopic != nil) || (isUpdated && changedKeys.contains(Predicate.Key.rawPushTopic.rawValue) && pushTopic != nil) { - if let ownedCryptoId = ownedIdentity?.cryptoIdentity { + if (isInserted && pushTopic != nil) || (isUpdated && changedKeys.contains(Predicate.Key.rawPushTopic.rawValue)) || isDeleted { + if let ownedCryptoId = valuesOnDeletion?.ownedIdentity ?? ownedIdentity?.cryptoIdentity { ObvIdentityNotificationNew.pushTopicOfKeycloakGroupWasUpdated(ownedCryptoId: ownedCryptoId) .postOnBackgroundQueue(within: notificationDelegate) - } else { - assertionFailure() } } @@ -1808,7 +1890,13 @@ struct ContactGroupV2BackupItem: Codable, Hashable, ObvErrorMaker { self.serializedSharedSettings = try values.decodeIfPresent(String.self, forKey: .serializedSharedSettings) self.rawOtherMembers = try values.decode(Set.self, forKey: .rawOtherMembers) - self.rawPendingMembers = try values.decodeIfPresent(Set.self, forKey: .rawPendingMembers) ?? Set() + do { + self.rawPendingMembers = try values.decodeIfPresent(Set.self, forKey: .rawPendingMembers) ?? Set() + } catch { + // We don't want the whole backup restore the fail because we could not restore a pending members. In production, we just drop them. + assertionFailure(error.localizedDescription) + self.rawPendingMembers = Set() + } if values.allKeys.contains(.trustedDetailsIfThereArePublishedDetails) { self.rawPublishedDetails = try values.decodeIfPresent(ContactGroupV2DetailsBackupItem.self, forKey: .details) self.rawTrustedDetails = try values.decode(ContactGroupV2DetailsBackupItem.self, forKey: .trustedDetailsIfThereArePublishedDetails) @@ -1858,3 +1946,387 @@ struct ContactGroupV2BackupItem: Codable, Hashable, ObvErrorMaker { } } + + + +// MARK: - For Snapshot purposes + +extension ContactGroupV2 { + + var snapshotNode: ContactGroupV2SyncSnapshotNode? { + guard let category = self.groupIdentifier?.category else { return nil } + guard let rawTrustedDetails else { assertionFailure(); return nil } + switch category { + case .server: + guard let rawBlobMainSeed, let rawBlobVersionSeed, let rawVerifiedAdministratorsChain else { assertionFailure(); return nil } + return .init(groupVersion: groupVersion, + ownGroupInvitationNonce: ownGroupInvitationNonce, + rawBlobMainSeed: rawBlobMainSeed, + rawBlobVersionSeed: rawBlobVersionSeed, + rawOwnPermissions: rawOwnPermissions, + rawGroupAdminServerAuthenticationPrivateKey: rawGroupAdminServerAuthenticationPrivateKey, + rawVerifiedAdministratorsChain: rawVerifiedAdministratorsChain, + rawOtherMembers: rawOtherMembers, + rawPendingMembers: rawPendingMembers, + rawPublishedDetails: rawPublishedDetails, + rawTrustedDetails: rawTrustedDetails) + case .keycloak: + assert(groupIdentifier?.category == .keycloak) + assert(rawBlobMainSeed == nil) + assert(rawBlobVersionSeed == nil) + assert(rawVerifiedAdministratorsChain == nil) + return .init(groupVersion: groupVersion, + ownGroupInvitationNonce: ownGroupInvitationNonce, + rawPushTopic: rawPushTopic, + rawOwnPermissions: rawOwnPermissions, + serializedSharedSettings: serializedSharedSettings, + lastModificationTimestamp: lastModificationTimestamp, + rawOtherMembers: rawOtherMembers, + rawPendingMembers: rawPendingMembers, + rawPublishedDetails: rawPublishedDetails, + rawTrustedDetails: rawTrustedDetails) + } + } + +} + + +struct ContactGroupV2SyncSnapshotNode: ObvSyncSnapshotNode, Hashable { + + private let domain: Set + fileprivate let rawOwnPermissions: [String] + fileprivate let groupVersion: Int? + fileprivate let rawVerifiedAdministratorsChain: Data? + fileprivate let rawBlobMainSeed: Data? + fileprivate let rawBlobVersionSeed: Data? + fileprivate let rawGroupAdminServerAuthenticationPrivateKey: Data? + fileprivate let ownGroupInvitationNonce: Data? + fileprivate let lastModificationTimestamp: Date? + fileprivate let rawPushTopic: String? + fileprivate let serializedSharedSettings: String? + private let serializedGroupType: String? + private let rawPublishedDetails: ContactGroupV2DetailsSyncSnapshotNode? + private let rawTrustedDetails: ContactGroupV2DetailsSyncSnapshotNode? + private let rawOtherMembers: [ObvCryptoIdentity: ContactGroupV2MemberSyncSnapshotItem] + private let rawPendingMembers: [ObvCryptoIdentity: ContactGroupV2PendingMemberSyncSnapshotItem] + + let id = Self.generateIdentifier() + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case rawOwnPermissions = "permissions" + case groupVersion = "version" + case details = "details" // Cannot be nil + case ownGroupInvitationNonce = "invitation_nonce" + case rawVerifiedAdministratorsChain = "verified_admin_chain" + case rawBlobMainSeed = "main_seed" + case lastModificationTimestamp = "last_modification_timestamp" + case rawBlobVersionSeed = "version_seed" + case rawPushTopic = "push_topic" + case rawGroupAdminServerAuthenticationPrivateKey = "encoded_admin_key" + case serializedSharedSettings = "serialized_shared_settings" + case rawOtherMembers = "members" + case rawPendingMembers = "pending_members" + case trustedDetailsIfThereArePublishedDetails = "trusted_details" // Can be nil + case serializedGroupType = "serializedGroupType" + case domain = "domain" + } + + private static let defaultServerDomain: Set = Set([ + .rawOwnPermissions, + .groupVersion, + .details, + .trustedDetailsIfThereArePublishedDetails, + .rawVerifiedAdministratorsChain, + .rawBlobMainSeed, + .rawBlobVersionSeed, + .rawGroupAdminServerAuthenticationPrivateKey, + .ownGroupInvitationNonce, + .rawOtherMembers, + .rawPendingMembers]) + + private static let defaultKeycloakDomain: Set = Set([ + .rawOwnPermissions, + .details, + .ownGroupInvitationNonce, + .lastModificationTimestamp, + .rawPushTopic, + .serializedSharedSettings, + .rawOtherMembers, + .rawPendingMembers]) + + + /// Snapshoting a server group + fileprivate init(groupVersion: Int, ownGroupInvitationNonce: Data, rawBlobMainSeed: Data, rawBlobVersionSeed: Data, rawOwnPermissions: String, rawGroupAdminServerAuthenticationPrivateKey: Data?, rawVerifiedAdministratorsChain: Data, rawOtherMembers: Set, rawPendingMembers: Set, rawPublishedDetails: ContactGroupV2Details?, rawTrustedDetails: ContactGroupV2Details) { + self.groupVersion = groupVersion + self.ownGroupInvitationNonce = ownGroupInvitationNonce + self.rawBlobMainSeed = rawBlobMainSeed + self.rawBlobVersionSeed = rawBlobVersionSeed + self.rawGroupAdminServerAuthenticationPrivateKey = rawGroupAdminServerAuthenticationPrivateKey + self.rawOwnPermissions = rawOwnPermissions.split(separator: ContactGroupV2.separatorForPermissions).map({ String($0) }) + self.rawPushTopic = nil + self.rawVerifiedAdministratorsChain = rawVerifiedAdministratorsChain + self.serializedSharedSettings = nil + self.lastModificationTimestamp = nil // Only used for keycloak groups + // rawOtherMembers + do { + let keysAndValues: [(ObvCryptoIdentity, ContactGroupV2MemberSyncSnapshotItem)] = rawOtherMembers.compactMap({ + guard let cryptoIdentity = $0.cryptoIdentity else { assertionFailure(); return nil } + return (cryptoIdentity, $0.snapshotItem) + }) + self.rawOtherMembers = Dictionary(keysAndValues, uniquingKeysWith: { (first, _) in assertionFailure(); return first }) + } + // rawPendingMembers + do { + let keysAndValues: [(ObvCryptoIdentity, ContactGroupV2PendingMemberSyncSnapshotItem)] = rawPendingMembers.compactMap({ + guard let cryptoIdentity = $0.cryptoIdentity else { assertionFailure(); return nil } + return (cryptoIdentity, $0.snapshotItem) + }) + self.rawPendingMembers = Dictionary(keysAndValues, uniquingKeysWith: { (first, _) in assertionFailure(); return first }) + } + self.rawPublishedDetails = rawPublishedDetails?.snapshotNode + self.rawTrustedDetails = rawTrustedDetails.snapshotNode + self.domain = Self.defaultServerDomain + self.serializedGroupType = nil // For now, iOS does not support serializedGroupType + } + + + /// Snapshoting a keycloak group + fileprivate init(groupVersion: Int, ownGroupInvitationNonce: Data, rawPushTopic: String?, rawOwnPermissions: String, serializedSharedSettings: String?, lastModificationTimestamp: Date, rawOtherMembers: Set, rawPendingMembers: Set, rawPublishedDetails: ContactGroupV2Details?, rawTrustedDetails: ContactGroupV2Details) { + self.groupVersion = groupVersion + self.ownGroupInvitationNonce = ownGroupInvitationNonce + self.rawBlobMainSeed = nil + self.rawBlobVersionSeed = nil + self.rawGroupAdminServerAuthenticationPrivateKey = nil + self.rawOwnPermissions = rawOwnPermissions.split(separator: ContactGroupV2.separatorForPermissions).map({ String($0) }) + self.rawPushTopic = rawPushTopic + self.rawVerifiedAdministratorsChain = nil + self.serializedSharedSettings = serializedSharedSettings + self.lastModificationTimestamp = lastModificationTimestamp // Not used in server groups + // rawOtherMembers + do { + let keysAndValues: [(ObvCryptoIdentity, ContactGroupV2MemberSyncSnapshotItem)] = rawOtherMembers.compactMap({ + guard let cryptoIdentity = $0.cryptoIdentity else { assertionFailure(); return nil } + return (cryptoIdentity, $0.snapshotItem) + }) + self.rawOtherMembers = Dictionary(keysAndValues, uniquingKeysWith: { (first, _) in assertionFailure(); return first }) + } + // rawPendingMembers + do { + let keysAndValues: [(ObvCryptoIdentity, ContactGroupV2PendingMemberSyncSnapshotItem)] = rawPendingMembers.compactMap({ + guard let cryptoIdentity = $0.cryptoIdentity else { assertionFailure(); return nil } + return (cryptoIdentity, $0.snapshotItem) + }) + self.rawPendingMembers = Dictionary(keysAndValues, uniquingKeysWith: { (first, _) in assertionFailure(); return first }) + } + self.rawPublishedDetails = rawPublishedDetails?.snapshotNode + self.rawTrustedDetails = rawTrustedDetails.snapshotNode + self.domain = Self.defaultKeycloakDomain + self.serializedGroupType = nil // For now, iOS does not support serializedGroupType + } + + + func encode(to encoder: Encoder) throws { + + var container = encoder.container(keyedBy: CodingKeys.self) + + try container.encode(domain, forKey: .domain) + try container.encodeIfPresent(groupVersion, forKey: .groupVersion) + try container.encodeIfPresent(ownGroupInvitationNonce, forKey: .ownGroupInvitationNonce) + try container.encodeIfPresent(rawBlobMainSeed, forKey: .rawBlobMainSeed) + try container.encodeIfPresent(rawBlobVersionSeed, forKey: .rawBlobVersionSeed) + try container.encodeIfPresent(rawGroupAdminServerAuthenticationPrivateKey, forKey: .rawGroupAdminServerAuthenticationPrivateKey) + if let lastModificationTimestampInMs = lastModificationTimestamp?.epochInMs { + try container.encode(lastModificationTimestampInMs, forKey: .lastModificationTimestamp) + } + try container.encode(rawOwnPermissions, forKey: .rawOwnPermissions) + try container.encodeIfPresent(rawPushTopic, forKey: .rawPushTopic) + try container.encodeIfPresent(rawVerifiedAdministratorsChain, forKey: .rawVerifiedAdministratorsChain) + try container.encodeIfPresent(serializedSharedSettings, forKey: .serializedSharedSettings) + try container.encodeIfPresent(serializedGroupType, forKey: .serializedGroupType) + + // rawOtherMembers + do { + let dict: [String: ContactGroupV2MemberSyncSnapshotItem] = .init(rawOtherMembers, keyMapping: { $0.getIdentity().base64EncodedString() }, valueMapping: { $0 }) + try container.encode(dict, forKey: .rawOtherMembers) + } + // rawPendingMembers + do { + let dict: [String: ContactGroupV2PendingMemberSyncSnapshotItem] = .init(rawPendingMembers, keyMapping: { $0.getIdentity().base64EncodedString() }, valueMapping: { $0 }) + try container.encode(dict, forKey: .rawPendingMembers) + } + // Special rules for backuping the details in a way that also works for the Android version of Olvid + if let rawPublishedDetails { + try container.encode(rawPublishedDetails, forKey: .details) + try container.encodeIfPresent(rawTrustedDetails, forKey: .trustedDetailsIfThereArePublishedDetails) + } else { + try container.encodeIfPresent(rawTrustedDetails, forKey: .details) + // Nothing to do for the .trustedDetailsIfThereArePublishedDetails key + } + + } + + + init(from decoder: Decoder) throws { + + do { + + let values = try decoder.container(keyedBy: CodingKeys.self) + + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + self.groupVersion = try values.decodeIfPresent(Int.self, forKey: .groupVersion) + self.ownGroupInvitationNonce = try values.decodeIfPresent(Data.self, forKey: .ownGroupInvitationNonce) + self.rawBlobMainSeed = try values.decodeIfPresent(Data.self, forKey: .rawBlobMainSeed) + self.rawBlobVersionSeed = try values.decodeIfPresent(Data.self, forKey: .rawBlobVersionSeed) + self.rawGroupAdminServerAuthenticationPrivateKey = try values.decodeIfPresent(Data.self, forKey: .rawGroupAdminServerAuthenticationPrivateKey) + if let lastModificationTimestampInMs = try values.decodeIfPresent(Int.self, forKey: .lastModificationTimestamp) { + self.lastModificationTimestamp = Date(epochInMs: Int64(lastModificationTimestampInMs)) + } else { + self.lastModificationTimestamp = nil + } + self.rawOwnPermissions = try values.decodeIfPresent([String].self, forKey: .rawOwnPermissions) ?? [] + self.rawPushTopic = try values.decodeIfPresent(String.self, forKey: .rawPushTopic) + self.rawVerifiedAdministratorsChain = try values.decodeIfPresent(Data.self, forKey: .rawVerifiedAdministratorsChain) + self.serializedSharedSettings = try values.decodeIfPresent(String.self, forKey: .serializedSharedSettings) + self.serializedGroupType = try values.decodeIfPresent(String.self, forKey: .serializedGroupType) + + // rawOtherMembers + do { + let dict = try values.decodeIfPresent([String: ContactGroupV2MemberSyncSnapshotItem].self, forKey: .rawOtherMembers) ?? [:] + self.rawOtherMembers = .init(dict, keyMapping: { $0.base64EncodedToData?.identityToObvCryptoIdentity }, valueMapping: { $0 }) + } + // rawPendingMembers + do { + let dict = try values.decodeIfPresent([String: ContactGroupV2PendingMemberSyncSnapshotItem].self, forKey: .rawPendingMembers) ?? [:] + self.rawPendingMembers = .init(dict, keyMapping: { $0.base64EncodedToData?.identityToObvCryptoIdentity }, valueMapping: { $0 }) + } + if values.allKeys.contains(.trustedDetailsIfThereArePublishedDetails) { + self.rawPublishedDetails = try values.decodeIfPresent(ContactGroupV2DetailsSyncSnapshotNode.self, forKey: .details) + self.rawTrustedDetails = try values.decodeIfPresent(ContactGroupV2DetailsSyncSnapshotNode.self, forKey: .trustedDetailsIfThereArePublishedDetails) + } else { + self.rawTrustedDetails = try values.decodeIfPresent(ContactGroupV2DetailsSyncSnapshotNode.self, forKey: .details) + self.rawPublishedDetails = nil + } + + } catch { + + assertionFailure() + throw error + + } + + } + + + func restoreInstance(within obvContext: ObvContext, groupIdentifier: GroupV2.Identifier, ownedIdentity: Data, associations: inout SnapshotNodeManagedObjectAssociations) throws { + + let minimumDomain: Set + do { + let commonMinimumDomain: Set = Set([.rawOwnPermissions, .details, .ownGroupInvitationNonce, .rawOtherMembers, .rawPendingMembers]) + switch groupIdentifier.category { + case .server: + minimumDomain = commonMinimumDomain.union([.groupVersion, .rawVerifiedAdministratorsChain, .rawBlobMainSeed, .groupVersion, .rawGroupAdminServerAuthenticationPrivateKey]) + case .keycloak: + minimumDomain = commonMinimumDomain + } + } + + guard minimumDomain.isSubset(of: domain) else { + assertionFailure() + throw ObvError.tryingToRestoreIncompleteNode + } + + // Restore instance associated with this backup item + + let contactGroupV2 = try ContactGroupV2(snapshotNode: self, groupIdentifier: groupIdentifier, ownedIdentity: ownedIdentity, within: obvContext) + try associations.associate(contactGroupV2, to: self) + + // Restores the instances associated with the backup items depending on this backup item + + if domain.contains(.rawOtherMembers) { + try rawOtherMembers.forEach { (_, memberNode) in + try memberNode.restoreInstance(within: obvContext, associations: &associations) + } + } + + if domain.contains(.rawPendingMembers) { + try rawPendingMembers.forEach { (cryptoIdentity, pendingMemberNode) in + try pendingMemberNode.restoreInstance(within: obvContext, cryptoIdentity: cryptoIdentity, associations: &associations) + } + } + + try rawPublishedDetails?.restoreInstance(within: obvContext, associations: &associations) + + guard let rawTrustedDetails else { + assertionFailure() + throw ObvError.tryingToRestoreIncompleteNode + } + + try rawTrustedDetails.restoreInstance(within: obvContext, associations: &associations) + + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, ownedIdentity: Data, contactIdentities: [ObvCryptoIdentity: ContactIdentity], within obvContext: ObvContext) throws { + + let contactGroupV2: ContactGroupV2 = try associations.getObject(associatedTo: self, within: obvContext) + + // Restore the relationships of this instance (the rawOwnedIdentity relationship is set when restoring the relationships of the OwnedIdentity) + + contactGroupV2.otherMembers = Set(try self.rawOtherMembers.values.map { try associations.getObject(associatedTo: $0, within: obvContext) }) + + contactGroupV2.pendingMembers = Set(try self.rawPendingMembers.values.map({ try associations.getObject(associatedTo: $0, within: obvContext) })) + + contactGroupV2.publishedDetails = try associations.getObjectIfPresent(associatedTo: self.rawPublishedDetails, within: obvContext) + + guard let rawTrustedDetails else { + assertionFailure() + throw ObvError.tryingToRestoreIncompleteNode + } + + contactGroupV2.trustedDetails = try associations.getObject(associatedTo: rawTrustedDetails, within: obvContext) + + // Restore the relationships of this instance relationships + + try self.rawOtherMembers.forEach { (cryptoIdentity, otherMemberNode) in + try otherMemberNode.restoreRelationships(associations: associations, ownedIdentity: ownedIdentity, cryptoIdentity: cryptoIdentity, contactIdentities: contactIdentities, within: obvContext) + } + + try self.rawPendingMembers.forEach { (cryptoIdentity, pendingMemberNote) in + try pendingMemberNote.restoreRelationships(associations: associations, within: obvContext) + } + + try self.rawPublishedDetails?.restoreRelationships(associations: associations, within: obvContext) + + try self.rawTrustedDetails?.restoreRelationships(associations: associations, within: obvContext) + + } + + + enum ObvError: Error { + case tryingToRestoreIncompleteNode + } + +} + + +// MARK: - Private Helpers + +private extension String { + + var base64EncodedToData: Data? { + guard let data = Data(base64Encoded: self) else { assertionFailure(); return nil } + return data + } + +} + + +private extension Data { + + var identityToObvCryptoIdentity: ObvCryptoIdentity? { + guard let cryptoIdentity = ObvCryptoIdentity(from: self) else { assertionFailure(); return nil } + return cryptoIdentity + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2Details.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2Details.swift index a7315c86..abf7bc6c 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2Details.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2Details.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import OlvidUtils import ObvMetaManager import ObvCrypto import ObvEncoder +import ObvTypes import os.log @@ -138,6 +139,23 @@ final class ContactGroupV2Details: NSManagedObject, ObvManagedObject, ObvErrorMa } + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreated in a second step + fileprivate convenience init(snapshotNode: ContactGroupV2DetailsSyncSnapshotNode, within obvContext: ObvContext) throws { + let entityDescription = NSEntityDescription.entity(forEntityName: ContactGroupV2Details.entityName, in: obvContext)! + self.init(entity: entityDescription, insertInto: obvContext) + self.rawPhotoServerIdentity = snapshotNode.rawPhotoServerIdentity + self.rawPhotoServerKeyEncoded = snapshotNode.rawPhotoServerKeyEncoded + self.photoServerLabel = snapshotNode.photoServerLabel + guard let serializedCoreDetails = snapshotNode.serializedCoreDetails else { + assertionFailure() + throw ContactGroupV2DetailsSyncSnapshotNode.ObvError.tryingToRestoreIncompleteNode + } + self.serializedCoreDetails = serializedCoreDetails + self.isRestoringBackup = true + self.delegateManager = nil + } + + func delete(delegateManager: ObvIdentityDelegateManager) throws { let identityPhotosDirectory = delegateManager.identityPhotosDirectory guard let obvContext = obvContext else { assertionFailure(); throw Self.makeError(message: "Could not find context") } @@ -163,9 +181,14 @@ final class ContactGroupV2Details: NSManagedObject, ObvManagedObject, ObvErrorMa } func getPhotoURL(identityPhotosDirectory: URL) -> URL? { + guard let url = getRawPhotoURL(identityPhotosDirectory: identityPhotosDirectory) else { return nil } + guard FileManager.default.fileExists(atPath: url.path) else { assertionFailure(); return nil } + return url + } + + private func getRawPhotoURL(identityPhotosDirectory: URL) -> URL? { guard let photoFilename = photoFilename else { return nil } let url = identityPhotosDirectory.appendingPathComponent(photoFilename) - guard FileManager.default.fileExists(atPath: url.path) else { assertionFailure(); return nil } return url } @@ -407,6 +430,9 @@ final class ContactGroupV2Details: NSManagedObject, ObvManagedObject, ObvErrorMa static var withoutPhotoFilename: NSPredicate { NSPredicate(withNilValueForKey: Key.photoFilename) } + static var withPhotoFilename: NSPredicate { + NSPredicate(withNonNilValueForKey: Key.photoFilename) + } static var withoutContactGroup: NSPredicate { NSCompoundPredicate(andPredicateWithSubpredicates: [ NSPredicate(withNilValueForKey: Key.contactGroupInCaseTheDetailsArePublished), @@ -416,6 +442,27 @@ final class ContactGroupV2Details: NSManagedObject, ObvManagedObject, ObvErrorMa } + static func getInfosAboutGroupsHavingPhotoFilename(identityPhotosDirectory: URL, within obvContext: ObvContext) throws -> [(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, serverPhotoInfo: GroupV2.ServerPhotoInfo, photoURL: URL)] { + + let request: NSFetchRequest = ContactGroupV2Details.fetchRequest() + request.predicate = Predicate.withPhotoFilename + let items = try obvContext.fetch(request) + let results: [(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, serverPhotoInfo: GroupV2.ServerPhotoInfo, photoURL: URL)] = items.compactMap { details in + + guard let photoURL = details.getRawPhotoURL(identityPhotosDirectory: identityPhotosDirectory), + let group = details.contactGroupInCaseTheDetailsArePublished ?? details.contactGroupInCaseTheDetailsAreTrusted, + let ownedIdentity = group.ownedIdentity?.cryptoIdentity, + let groupIdentifier = group.groupIdentifier, + let serverPhotoInfo = details.serverPhotoInfo + else { + return nil + } + return (ownedIdentity, groupIdentifier, serverPhotoInfo, photoURL) + } + return results + } + + static func getAllPhotoURLs(identityPhotosDirectory: URL, within obvContext: ObvContext) throws -> Set { let request: NSFetchRequest = ContactGroupV2Details.fetchRequest() request.propertiesToFetch = [Predicate.Key.photoFilename.rawValue] @@ -569,3 +616,150 @@ struct ContactGroupV2DetailsBackupItem: Codable, Hashable, ObvErrorMaker { } } + + + +// MARK: - For Snapshot purposes + + +extension ContactGroupV2Details { + + var snapshotNode: ContactGroupV2DetailsSyncSnapshotNode { + .init(rawPhotoServerIdentity: self.rawPhotoServerIdentity, + rawPhotoServerKeyEncoded: self.rawPhotoServerKeyEncoded, + photoServerLabel: self.photoServerLabel, + serializedCoreDetails: self.serializedCoreDetails) + } + +} + + +struct ContactGroupV2DetailsSyncSnapshotNode: ObvSyncSnapshotNode, Equatable, Hashable { + + private let domain: Set + fileprivate let rawPhotoServerIdentity: Data? + fileprivate let rawPhotoServerKeyEncoded: Data? + fileprivate let photoServerLabel: UID? + fileprivate let serializedCoreDetails: Data? + + let id = Self.generateIdentifier() + + private static let defaultDomain = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case rawPhotoServerIdentity = "photo_server_identity" + case rawPhotoServerKeyEncoded = "photo_server_key" + case photoServerLabel = "photo_server_label" + case serializedCoreDetails = "serialized_details" + case domain = "domain" + } + + + fileprivate init(rawPhotoServerIdentity: Data?, rawPhotoServerKeyEncoded: Data?, photoServerLabel: UID?, serializedCoreDetails: Data) { + if let rawPhotoServerKeyEncoded = rawPhotoServerKeyEncoded, let photoServerLabel = photoServerLabel { + self.rawPhotoServerKeyEncoded = rawPhotoServerKeyEncoded + self.photoServerLabel = photoServerLabel + } else { + self.rawPhotoServerKeyEncoded = nil + self.photoServerLabel = nil + } + self.rawPhotoServerIdentity = rawPhotoServerIdentity // Nil for keycloak groups + self.serializedCoreDetails = serializedCoreDetails + self.domain = Self.defaultDomain + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(domain, forKey: .domain) + if let serializedCoreDetails { + guard let serializedCoreDetailsAsString = String(data: serializedCoreDetails, encoding: .utf8) else { + throw ObvError.couldNotSerializeCoreDetails + } + try container.encode(serializedCoreDetailsAsString, forKey: .serializedCoreDetails) + } + try container.encodeIfPresent(rawPhotoServerIdentity, forKey: .rawPhotoServerIdentity) + try container.encodeIfPresent(rawPhotoServerKeyEncoded, forKey: .rawPhotoServerKeyEncoded) + try container.encodeIfPresent(photoServerLabel?.raw, forKey: .photoServerLabel) + } + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + + if let serializedCoreDetailsAsString = try values.decodeIfPresent(String.self, forKey: .serializedCoreDetails) { + guard let serializedCoreDetailsAsData = serializedCoreDetailsAsString.data(using: .utf8) else { + throw ObvError.couldNotDeserializeCoreDetails + } + self.serializedCoreDetails = serializedCoreDetailsAsData + } else { + self.serializedCoreDetails = nil + } + + if values.allKeys.contains(.photoServerLabel) && values.allKeys.contains(.rawPhotoServerKeyEncoded) && values.allKeys.contains(.rawPhotoServerIdentity) { + do { + self.rawPhotoServerIdentity = try values.decodeIfPresent(Data.self, forKey: .rawPhotoServerIdentity) + self.rawPhotoServerKeyEncoded = try values.decodeIfPresent(Data.self, forKey: .rawPhotoServerKeyEncoded) + if let photoServerLabelAsData = try? values.decodeIfPresent(Data.self, forKey: .photoServerLabel), + let photoServerLabelAsUID = UID(uid: photoServerLabelAsData) { + // Expected + self.photoServerLabel = photoServerLabelAsUID + } else if let photoServerLabelAsUID = try values.decodeIfPresent(UID.self, forKey: .photoServerLabel) { + assertionFailure() + self.photoServerLabel = photoServerLabelAsUID + } else if let photoServerLabelAsString = try? values.decode(String.self, forKey: .photoServerLabel), + let photoServerLabelAsData = Data(base64Encoded: photoServerLabelAsString), + let photoServerLabelAsUID = UID(uid: photoServerLabelAsData) { + assertionFailure() + self.photoServerLabel = photoServerLabelAsUID + } else if let photoServerLabelAsString = try? values.decode(String.self, forKey: .photoServerLabel), + let photoServerLabelAsData = Data(hexString: photoServerLabelAsString), + let photoServerLabelAsUID = UID(uid: photoServerLabelAsData) { + assertionFailure() + self.photoServerLabel = photoServerLabelAsUID + } else { + throw ObvError.couldNotDecodePhotoServerLabel + } + } catch { + assertionFailure() + throw error + } + } else { + self.rawPhotoServerIdentity = nil + self.rawPhotoServerKeyEncoded = nil + self.photoServerLabel = nil + } + + } + + + func restoreInstance(within obvContext: ObvContext, associations: inout SnapshotNodeManagedObjectAssociations) throws { + + let minimumDomain: Set = Set([.serializedCoreDetails]) + guard minimumDomain.isSubset(of: domain) else { + assertionFailure() + throw ObvError.tryingToRestoreIncompleteNode + } + + let contactGroupV2Details = try ContactGroupV2Details(snapshotNode: self, within: obvContext) + try associations.associate(contactGroupV2Details, to: self) + + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, within obvContext: ObvContext) throws { + // Nothing to do here + } + + + enum ObvError: Error { + case couldNotSerializeCoreDetails + case couldNotDeserializeCoreDetails + case couldNotDecodePhotoServerLabel + case tryingToRestoreIncompleteNode + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2Member.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2Member.swift index 794ae98c..25526114 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2Member.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2Member.swift @@ -79,7 +79,8 @@ final class ContactGroupV2Member: NSManagedObject, ObvManagedObject, ObvErrorMak var identityAndPermissionsAndDetails: GroupV2.IdentityAndPermissionsAndDetails? { guard let contactIdentity = contactIdentity else { assertionFailure(); return nil } let coreDetails = contactIdentity.publishedIdentityDetails?.serializedIdentityCoreDetails ?? contactIdentity.trustedIdentityDetails.serializedIdentityCoreDetails - return GroupV2.IdentityAndPermissionsAndDetails(identity: contactIdentity.cryptoIdentity, + guard let contactCryptoId = contactIdentity.cryptoIdentity else { assertionFailure(); return nil } + return GroupV2.IdentityAndPermissionsAndDetails(identity: contactCryptoId, rawPermissions: allRawPermissions, serializedIdentityCoreDetails: coreDetails, groupInvitationNonce: groupInvitationNonce) @@ -112,6 +113,19 @@ final class ContactGroupV2Member: NSManagedObject, ObvManagedObject, ObvErrorMak } + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreater in a second step + fileprivate convenience init(snapshotItem: ContactGroupV2MemberSyncSnapshotItem, within obvContext: ObvContext) throws { + let entityDescription = NSEntityDescription.entity(forEntityName: ContactGroupV2Member.entityName, in: obvContext)! + self.init(entity: entityDescription, insertInto: obvContext) + guard let groupInvitationNonce = snapshotItem.groupInvitationNonce else { + assertionFailure() + throw ContactGroupV2MemberSyncSnapshotItem.ObvError.tryingToRestoreIncompleteNode + } + self.groupInvitationNonce = groupInvitationNonce + self.rawPermissions = snapshotItem.rawPermissions.joined(separator: String(Self.separatorForPermissions)) + } + + /// Shall only be called from a ContactGroupV2 instance (that must check that this member does not exist yet) static func createMember(from contact: ContactIdentity, inContactGroup group: ContactGroupV2, rawPermissions: Set, groupInvitationNonce: Data) throws { guard contact.obvContext == group.obvContext else { throw Self.makeError(message: "Cannot insert member as the contexts do not match") } @@ -196,7 +210,7 @@ struct ContactGroupV2MemberBackupItem: Codable, Hashable, ObvErrorMaker { fileprivate init(rawPermissions: String, groupInvitationNonce: Data, contactIdentity: ContactIdentity) { self.groupInvitationNonce = groupInvitationNonce self.rawPermissions = rawPermissions.split(separator: ContactGroupV2Member.separatorForPermissions).map({ String($0) }) - self.contactIdentity = contactIdentity.cryptoIdentity.getIdentity() + self.contactIdentity = contactIdentity.identity } enum CodingKeys: String, CodingKey { @@ -232,7 +246,7 @@ struct ContactGroupV2MemberBackupItem: Codable, Hashable, ObvErrorMaker { let allcontactIdentities = Set(obvContext.registeredObjects.compactMap({ $0 as? ContactIdentity })) let appropriateContact = allcontactIdentities.first(where: { - $0.ownedIdentityIdentity == ownedIdentity && $0.cryptoIdentity.getIdentity() == self.contactIdentity + $0.ownedIdentityIdentity == ownedIdentity && $0.identity == self.contactIdentity }) guard let appropriateContact = appropriateContact else { throw Self.makeError(message: "Could not find contact associated to group v2 member") @@ -243,3 +257,76 @@ struct ContactGroupV2MemberBackupItem: Codable, Hashable, ObvErrorMaker { } } + + + +// MARK: - For Snapshot purposes + +extension ContactGroupV2Member { + + var snapshotItem: ContactGroupV2MemberSyncSnapshotItem { + .init(rawPermissions: self.rawPermissions, + groupInvitationNonce: self.groupInvitationNonce) + } + +} + + +struct ContactGroupV2MemberSyncSnapshotItem: Codable, Hashable, Identifiable { + + fileprivate let rawPermissions: [String] + fileprivate let groupInvitationNonce: Data? + + let id = ObvSyncSnapshotNodeUtils.generateIdentifier() + + enum CodingKeys: String, CodingKey { + case groupInvitationNonce = "invitation_nonce" + case rawPermissions = "permissions" + } + + + fileprivate init(rawPermissions: String, groupInvitationNonce: Data) { + self.groupInvitationNonce = groupInvitationNonce + self.rawPermissions = rawPermissions.split(separator: ContactGroupV2Member.separatorForPermissions).map({ String($0) }) + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(groupInvitationNonce, forKey: .groupInvitationNonce) + try container.encode(rawPermissions, forKey: .rawPermissions) + } + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + self.groupInvitationNonce = try values.decodeIfPresent(Data.self, forKey: .groupInvitationNonce) + self.rawPermissions = try values.decodeIfPresent([String].self, forKey: .rawPermissions) ?? [] + } + + + func restoreInstance(within obvContext: ObvContext, associations: inout SnapshotNodeManagedObjectAssociations) throws { + let contactGroupV2Member = try ContactGroupV2Member(snapshotItem: self, within: obvContext) + try associations.associate(contactGroupV2Member, to: self) + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, ownedIdentity: Data, cryptoIdentity: ObvCryptoIdentity, contactIdentities: [ObvCryptoIdentity: ContactIdentity], within obvContext: ObvContext) throws { + + let contactGroupV2Member: ContactGroupV2Member = try associations.getObject(associatedTo: self, within: obvContext) + + guard let contactIdentity = contactIdentities[cryptoIdentity] else { + throw ObvError.couldNotFindContactAssociatedToGroupV2Member + } + + contactGroupV2Member.contactIdentity = contactIdentity + + } + + + enum ObvError: Error { + case couldNotFindContactAssociatedToGroupV2Member + case tryingToRestoreIncompleteNode + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2PendingMember.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2PendingMember.swift index 7d7f0f76..74fecb42 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2PendingMember.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactGroupV2PendingMember.swift @@ -123,7 +123,28 @@ final class ContactGroupV2PendingMember: NSManagedObject, ObvManagedObject, ObvE self.isRestoringBackup = true self.delegateManager = nil } - + + + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreater in a second step + fileprivate convenience init(snapshotNode: ContactGroupV2PendingMemberSyncSnapshotItem, cryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { + let entityDescription = NSEntityDescription.entity(forEntityName: ContactGroupV2PendingMember.entityName, in: obvContext)! + self.init(entity: entityDescription, insertInto: obvContext) + guard let groupInvitationNonce = snapshotNode.groupInvitationNonce else { + assertionFailure() + throw ContactGroupV2PendingMemberSyncSnapshotItem.ObvError.tryingToRestoreIncompleteNode + } + self.groupInvitationNonce = groupInvitationNonce + self.rawIdentity = cryptoIdentity.getIdentity() + self.rawPermissions = snapshotNode.rawPermissions.joined(separator: String(Self.separatorForPermissions)) + guard let serializedIdentityCoreDetails = snapshotNode.serializedIdentityCoreDetails else { + assertionFailure() + throw ContactGroupV2PendingMemberSyncSnapshotItem.ObvError.tryingToRestoreIncompleteNode + } + self.serializedIdentityCoreDetails = serializedIdentityCoreDetails + self.isRestoringBackup = true + self.delegateManager = nil + } + static func createAllPendingMembers(from otherGroupMembers: Set, in contactGroup: ContactGroupV2, delegateManager: ObvIdentityDelegateManager) throws -> Set { try Set(otherGroupMembers.map { member in @@ -244,6 +265,22 @@ extension ContactGroupV2PendingMember { NSPredicate(format: predicateFormat, ownedIdentity) ]) } + static func withOwnedCryptoIdentity(_ ownedCryptoIdentity: ObvCryptoIdentity) -> NSPredicate { + let predicateChain = [Key.rawContactGroup.rawValue, + ContactGroupV2.Predicate.Key.rawOwnedIdentityIdentity.rawValue].joined(separator: ".") + return NSCompoundPredicate(andPredicateWithSubpredicates: [ + contactGroupIsNotNil, + NSPredicate(predicateChain, EqualToData: ownedCryptoIdentity.getIdentity()), + ]) + } + static func inGroupWithCategory(_ category: GroupV2.Identifier.Category) -> NSPredicate { + let predicateChain = [Key.rawContactGroup.rawValue, + ContactGroupV2.Predicate.Key.rawCategory.rawValue].joined(separator: ".") + return NSCompoundPredicate(andPredicateWithSubpredicates: [ + contactGroupIsNotNil, + NSPredicate(predicateChain, EqualToInt: category.rawValue), + ]) + } } @@ -264,6 +301,20 @@ extension ContactGroupV2PendingMember { return Set(items) } + + + /// Returns a set of crypto ids of users that are pending in at least one group v2 of the given category, restricting to groups of the given owned identity. + static func getAllPendingMembersCorrespondingToOwnedIdentity(_ ownedCryptoIdentity: ObvCryptoIdentity, groupCategory: GroupV2.Identifier.Category, within context: NSManagedObjectContext) throws -> Set { + let request = Self.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withOwnedCryptoIdentity(ownedCryptoIdentity), + Predicate.inGroupWithCategory(groupCategory), + ]) + request.fetchBatchSize = 1_000 + request.propertiesToFetch = [Predicate.Key.rawIdentity.rawValue] + let items = try context.fetch(request) + return Set(items.compactMap(\.cryptoIdentity)) + } // MARK: - Sending notifications @@ -335,15 +386,30 @@ struct ContactGroupV2PendingMemberBackupItem: Codable, Hashable, ObvErrorMaker { try container.encode(groupInvitationNonce, forKey: .groupInvitationNonce) try container.encode(rawIdentity, forKey: .rawIdentity) try container.encode(rawPermissions, forKey: .rawPermissions) - try container.encode(serializedIdentityCoreDetails, forKey: .serializedIdentityCoreDetails) + guard let coreDetailsAsString = String(data: serializedIdentityCoreDetails, encoding: .utf8) else { + throw Self.makeError(message: "Could not represent serializedIdentityCoreDetails as String") + } + try container.encode(coreDetailsAsString, forKey: .serializedIdentityCoreDetails) } + init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) self.groupInvitationNonce = try values.decode(Data.self, forKey: .groupInvitationNonce) self.rawIdentity = try values.decode(Data.self, forKey: .rawIdentity) self.rawPermissions = try values.decode([String].self, forKey: .rawPermissions) - self.serializedIdentityCoreDetails = try values.decode(Data.self, forKey: .serializedIdentityCoreDetails) + + if let coreDetailsAsString = try? values.decode(String.self, forKey: .serializedIdentityCoreDetails), + let coreDetailsAsData = coreDetailsAsString.data(using: .utf8), + (try? ObvIdentityCoreDetails(coreDetailsAsData)) != nil { + self.serializedIdentityCoreDetails = coreDetailsAsData + } else if let coreDetailsAsData = try? values.decode(Data.self, forKey: .serializedIdentityCoreDetails), + (try? ObvIdentityCoreDetails(coreDetailsAsData)) != nil { + self.serializedIdentityCoreDetails = coreDetailsAsData + } else { + throw Self.makeError(message: "Could not decode serializedIdentityCoreDetails") + } + } func restoreInstance(within obvContext: ObvContext, associations: inout BackupItemObjectAssociations) throws { @@ -356,3 +422,93 @@ struct ContactGroupV2PendingMemberBackupItem: Codable, Hashable, ObvErrorMaker { } } + + +// MARK: - For Snapshot purposes + +extension ContactGroupV2PendingMember { + + var snapshotItem: ContactGroupV2PendingMemberSyncSnapshotItem { + return .init(groupInvitationNonce: self.groupInvitationNonce, + rawPermissions: self.rawPermissions, + serializedIdentityCoreDetails: self.serializedIdentityCoreDetails) + } + +} + + +struct ContactGroupV2PendingMemberSyncSnapshotItem: Codable, Hashable, Identifiable { + + fileprivate let groupInvitationNonce: Data? + fileprivate let rawPermissions: [String] + fileprivate let serializedIdentityCoreDetails: Data? + + let id = ObvSyncSnapshotNodeUtils.generateIdentifier() + + enum CodingKeys: String, CodingKey { + case groupInvitationNonce = "invitation_nonce" + case rawPermissions = "permissions" + case serializedIdentityCoreDetails = "serialized_details" + } + + // Allows to prevent association failures in two items have identical variables + private let transientUuid = UUID() + + + fileprivate init(groupInvitationNonce: Data, rawPermissions: String, serializedIdentityCoreDetails: Data) { + self.groupInvitationNonce = groupInvitationNonce + self.rawPermissions = rawPermissions.split(separator: ContactGroupV2PendingMember.separatorForPermissions).map({ String($0) }) + self.serializedIdentityCoreDetails = serializedIdentityCoreDetails + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(groupInvitationNonce, forKey: .groupInvitationNonce) + try container.encode(rawPermissions, forKey: .rawPermissions) + if let serializedIdentityCoreDetails { + guard let coreDetailsAsString = String(data: serializedIdentityCoreDetails, encoding: .utf8) else { + throw ObvError.couldNotSerializeCoreDetails + } + try container.encode(coreDetailsAsString, forKey: .serializedIdentityCoreDetails) + } + } + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + self.groupInvitationNonce = try values.decodeIfPresent(Data.self, forKey: .groupInvitationNonce) + self.rawPermissions = try values.decodeIfPresent([String].self, forKey: .rawPermissions) ?? [] + + if let coreDetailsAsString = try? values.decodeIfPresent(String.self, forKey: .serializedIdentityCoreDetails), + let coreDetailsAsData = coreDetailsAsString.data(using: .utf8), + (try? ObvIdentityCoreDetails(coreDetailsAsData)) != nil { + self.serializedIdentityCoreDetails = coreDetailsAsData + } else if let coreDetailsAsData = try? values.decodeIfPresent(Data.self, forKey: .serializedIdentityCoreDetails), + (try? ObvIdentityCoreDetails(coreDetailsAsData)) != nil { + self.serializedIdentityCoreDetails = coreDetailsAsData + } else { + self.serializedIdentityCoreDetails = nil + } + + } + + + func restoreInstance(within obvContext: ObvContext, cryptoIdentity: ObvCryptoIdentity, associations: inout SnapshotNodeManagedObjectAssociations) throws { + let contactGroupV2PendingMember = try ContactGroupV2PendingMember(snapshotNode: self, cryptoIdentity: cryptoIdentity, within: obvContext) + try associations.associate(contactGroupV2PendingMember, to: self) + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, within obvContext: ObvContext) throws { + // Nothing to do here + } + + + enum ObvError: Error { + case couldNotSerializeCoreDetails + case couldNotDeserializeCoreDetails + case tryingToRestoreIncompleteNode + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentity.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentity.swift index f12b30f3..3bd73faa 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentity.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentity.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -34,70 +34,68 @@ final class ContactIdentity: NSManagedObject, ObvManagedObject { // MARK: Internal constants private static let entityName = "ContactIdentity" - static let cryptoIdentityKey = "cryptoIdentity" - private static let devicesKey = "devices" - private static let groupMembershipsKey = "groupMemberships" - static let ownedIdentityKey = "ownedIdentity" - private static let ownedIdentityCryptoIdentityKey = [ownedIdentityKey, OwnedIdentity.Predicate.Key.cryptoIdentity.rawValue].joined(separator: ".") - private static let persistedTrustOriginsKey = "persistedTrustOrigins" - private static let trustOriginsKey = "trustOrigins" - private static let contactGroupsKey = "contactGroups" - private static let contactGroupsOwnedKey = "contactGroupsOwned" - private static let publishedIdentityDetailsKey = "publishedIdentityDetails" - private static let trustedIdentityDetailsKey = "trustedIdentityDetails" private static let errorDomain = "ContactIdentity" - private static let isRevokedAsCompromisedKey = "isRevokedAsCompromised" - private static let isForcefullyTrustedByUserKey = "isForcefullyTrustedByUser" private static func makeError(message: String) -> Error { NSError(domain: errorDomain, code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } private func makeError(message: String) -> Error { ContactIdentity.makeError(message: message) } // MARK: Attributes - @NSManaged private(set) var cryptoIdentity: ObvCryptoIdentity // Unique (together with `ownedIdentityIdentity`) @NSManaged private(set) var isCertifiedByOwnKeycloak: Bool @NSManaged private(set) var isForcefullyTrustedByUser: Bool @NSManaged private(set) var isRevokedAsCompromised: Bool @NSManaged private(set) var isOneToOne: Bool - @NSManaged private(set) var ownedIdentityIdentity: Data // Unique (together with `cryptoIdentity`) + @NSManaged private(set) var ownedIdentityIdentity: Data // Unique (together with `rawIdentity`) + @NSManaged private var rawDateOfLastBootstrappedContactDeviceDiscovery: Date? + @NSManaged private var rawIdentity: Data // Unique (together with `ownedIdentityIdentity`) @NSManaged private var trustLevelRaw: String // MARK: Relationships + // Expected to be non nil + var cryptoIdentity: ObvCryptoIdentity? { + guard let cryptoIdentity = ObvCryptoIdentity(from: rawIdentity) else { assertionFailure(); return nil } + return cryptoIdentity + } + + var identity: Data { + return rawIdentity + } + private(set) var contactGroups: Set { get { - let res = kvoSafePrimitiveValue(forKey: ContactIdentity.contactGroupsKey) as! Set + let res = kvoSafePrimitiveValue(forKey: Predicate.Key.contactGroups.rawValue) as! Set return Set(res.map { $0.delegateManager = delegateManager; $0.obvContext = self.obvContext; return $0 }) } set { - kvoSafeSetPrimitiveValue(newValue, forKey: ContactIdentity.contactGroupsKey) + kvoSafeSetPrimitiveValue(newValue, forKey: Predicate.Key.contactGroups.rawValue) } } private var contactGroupsOwned: Set { get { - let res = kvoSafePrimitiveValue(forKey: ContactIdentity.contactGroupsOwnedKey) as! Set + let res = kvoSafePrimitiveValue(forKey: Predicate.Key.contactGroupsOwned.rawValue) as! Set return Set(res.map { $0.delegateManager = delegateManager; $0.obvContext = self.obvContext; return $0 }) } set { - kvoSafeSetPrimitiveValue(newValue, forKey: ContactIdentity.contactGroupsOwnedKey) + kvoSafeSetPrimitiveValue(newValue, forKey: Predicate.Key.contactGroupsOwned.rawValue) } } private(set) var devices: Set { get { - let res = kvoSafePrimitiveValue(forKey: ContactIdentity.devicesKey) as! Set + let res = kvoSafePrimitiveValue(forKey: Predicate.Key.devices.rawValue) as! Set return Set(res.map { $0.delegateManager = delegateManager; $0.obvContext = self.obvContext; return $0 }) } set { - kvoSafeSetPrimitiveValue(newValue, forKey: ContactIdentity.devicesKey) + kvoSafeSetPrimitiveValue(newValue, forKey: Predicate.Key.devices.rawValue) } } private(set) var groupMemberships: Set { get { - let res = kvoSafePrimitiveValue(forKey: ContactIdentity.groupMembershipsKey) as! Set + let res = kvoSafePrimitiveValue(forKey: Predicate.Key.groupMemberships.rawValue) as! Set return Set(res.map { $0.obvContext = self.obvContext; return $0 }) } set { - kvoSafeSetPrimitiveValue(newValue, forKey: ContactIdentity.groupMembershipsKey) + kvoSafeSetPrimitiveValue(newValue, forKey: Predicate.Key.groupMemberships.rawValue) } } @@ -106,7 +104,7 @@ final class ContactIdentity: NSManagedObject, ObvManagedObject { // Unique (together with `cryptoIdentity`) private(set) var ownedIdentity: OwnedIdentity? { get { - guard let res = kvoSafePrimitiveValue(forKey: ContactIdentity.ownedIdentityKey) as? OwnedIdentity else { return nil } + guard let res = kvoSafePrimitiveValue(forKey: Predicate.Key.ownedIdentity.rawValue) as? OwnedIdentity else { return nil } res.delegateManager = delegateManager res.obvContext = self.obvContext return res @@ -114,41 +112,41 @@ final class ContactIdentity: NSManagedObject, ObvManagedObject { set { guard let newValue else { assertionFailure(); return } self.ownedIdentityIdentity = newValue.cryptoIdentity.getIdentity() - kvoSafeSetPrimitiveValue(newValue, forKey: ContactIdentity.ownedIdentityKey) + kvoSafeSetPrimitiveValue(newValue, forKey: Predicate.Key.ownedIdentity.rawValue) } } private(set) var persistedTrustOrigins: Set { get { - let items = kvoSafePrimitiveValue(forKey: ContactIdentity.persistedTrustOriginsKey) as! Set + let items = kvoSafePrimitiveValue(forKey: Predicate.Key.persistedTrustOrigins.rawValue) as! Set return Set(items.map { $0.obvContext = self.obvContext; return $0 }) } set { - kvoSafeSetPrimitiveValue(newValue, forKey: ContactIdentity.persistedTrustOriginsKey) + kvoSafeSetPrimitiveValue(newValue, forKey: Predicate.Key.persistedTrustOrigins.rawValue) } } private(set) var publishedIdentityDetails: ContactIdentityDetailsPublished? { get { - let res = kvoSafePrimitiveValue(forKey: ContactIdentity.publishedIdentityDetailsKey) as! ContactIdentityDetailsPublished? + let res = kvoSafePrimitiveValue(forKey: Predicate.Key.publishedIdentityDetails.rawValue) as! ContactIdentityDetailsPublished? res?.delegateManager = delegateManager res?.obvContext = self.obvContext return res } set { - kvoSafeSetPrimitiveValue(newValue, forKey: ContactIdentity.publishedIdentityDetailsKey) + kvoSafeSetPrimitiveValue(newValue, forKey: Predicate.Key.publishedIdentityDetails.rawValue) } } private(set) var trustedIdentityDetails: ContactIdentityDetailsTrusted { get { - let res = kvoSafePrimitiveValue(forKey: ContactIdentity.trustedIdentityDetailsKey) as! ContactIdentityDetailsTrusted + let res = kvoSafePrimitiveValue(forKey: Predicate.Key.trustedIdentityDetails.rawValue) as! ContactIdentityDetailsTrusted res.delegateManager = delegateManager res.obvContext = self.obvContext return res } set { - kvoSafeSetPrimitiveValue(newValue, forKey: ContactIdentity.trustedIdentityDetailsKey) + kvoSafeSetPrimitiveValue(newValue, forKey: Predicate.Key.trustedIdentityDetails.rawValue) } } @@ -160,6 +158,7 @@ final class ContactIdentity: NSManagedObject, ObvManagedObject { // The following vars are only used to implement the ContactDeleted notification private var ownedIdentityCryptoIdentityOnDeletion: ObvCryptoIdentity? + private var rawIdentityOnDeletion: Data? private var trustLevelWasIncreased = false @@ -206,7 +205,7 @@ final class ContactIdentity: NSManagedObject, ObvManagedObject { self.init(entity: entityDescription, insertInto: obvContext) // Simple attributes - self.cryptoIdentity = cryptoIdentity + self.rawIdentity = cryptoIdentity.getIdentity() self.isOneToOne = isOneToOne // Simple relationships @@ -246,7 +245,7 @@ final class ContactIdentity: NSManagedObject, ObvManagedObject { fileprivate convenience init(backupItem: ContactIdentityBackupItem, ownedIdentityIdentity: Data, within obvContext: ObvContext) { let entityDescription = NSEntityDescription.entity(forEntityName: ContactIdentity.entityName, in: obvContext)! self.init(entity: entityDescription, insertInto: obvContext) - self.cryptoIdentity = backupItem.cryptoIdentity + self.rawIdentity = backupItem.rawIdentity self.trustLevelRaw = backupItem.trustLevelRaw self.isRevokedAsCompromised = backupItem.isRevokedAsCompromised self.isForcefullyTrustedByUser = backupItem.isForcefullyTrustedByUser @@ -254,6 +253,8 @@ final class ContactIdentity: NSManagedObject, ObvManagedObject { self.ownedIdentityIdentity = ownedIdentityIdentity } + + /// Used when restoring a backup fileprivate func restoreRelationships(contactGroupsOwned: Set, persistedTrustOrigins: Set, publishedIdentityDetails: ContactIdentityDetailsPublished?, trustedIdentityDetails: ContactIdentityDetailsTrusted) { /* contactGroups is set within ContactGroup */ self.contactGroupsOwned = contactGroupsOwned @@ -265,13 +266,44 @@ final class ContactIdentity: NSManagedObject, ObvManagedObject { } + /// Used when restoring a snapshot + fileprivate func restoreRelationships(persistedTrustOrigins: Set, publishedIdentityDetails: ContactIdentityDetailsPublished?, trustedIdentityDetails: ContactIdentityDetailsTrusted) { + /* contactGroups is set within ContactGroup */ + /* contactGroupsOwned is set within ContactGroup */ + self.devices = Set() + /* ownedIdentity is set within OwnedIdentity */ + self.persistedTrustOrigins = persistedTrustOrigins + self.publishedIdentityDetails = publishedIdentityDetails + self.trustedIdentityDetails = trustedIdentityDetails + } + + private var isInsertedWhileRestoringSyncSnapshot = false + + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreater in a second step + fileprivate convenience init(snapshotNode: ContactIdentitySyncSnapshotNode, contactCryptoId: ObvCryptoIdentity, ownedIdentityIdentity: Data, within obvContext: ObvContext) throws { + let entityDescription = NSEntityDescription.entity(forEntityName: ContactIdentity.entityName, in: obvContext)! + self.init(entity: entityDescription, insertInto: obvContext) + self.rawIdentity = contactCryptoId.getIdentity() + self.trustLevelRaw = snapshotNode.trustLevelRaw ?? TrustLevel.zero.rawValue + self.isRevokedAsCompromised = snapshotNode.isRevokedAsCompromised ?? false + self.isForcefullyTrustedByUser = snapshotNode.isForcefullyTrustedByUser ?? false + self.isOneToOne = snapshotNode.isOneToOne ?? false + self.ownedIdentityIdentity = ownedIdentityIdentity + self.isCertifiedByOwnKeycloak = false // This is updated later, in the restoreRelationships(associations:prng:customDeviceName:delegateManager:within:) of OwnedIdentitySyncSnapshotNode + + // Prevents the sending of notifications + isInsertedWhileRestoringSyncSnapshot = true + } + + func delete(delegateManager: ObvIdentityDelegateManager, failIfContactIsPartOfACommonGroup: Bool, within obvContext: ObvContext) throws { self.delegateManager = delegateManager guard let ownedIdentity else { throw Self.makeError(message: "The owned identity associated to the contact is nil") } + guard let cryptoIdentity = self.cryptoIdentity else { assertionFailure(); throw makeError(message: "Could not decode identity") } if failIfContactIsPartOfACommonGroup { - let numberOfCommonGroupV2 = try ContactGroupV2.countAllContactGroupV2WithContact(ownedIdentity: ownedIdentity.cryptoIdentity, contactIdentity: self.cryptoIdentity, delegateManager: delegateManager, within: obvContext) + let numberOfCommonGroupV2 = try ContactGroupV2.countAllContactGroupV2WithContact(ownedIdentity: ownedIdentity.cryptoIdentity, contactIdentity: cryptoIdentity, delegateManager: delegateManager, within: obvContext) guard numberOfCommonGroupV2 == 0 else { assertionFailure() throw Self.makeError(message: "Cannot delete a contact if she is part of a common group v2") @@ -284,6 +316,10 @@ final class ContactIdentity: NSManagedObject, ObvManagedObject { obvContext.delete(self) } + func setDateOfLastBootstrappedContactDeviceDiscovery(to newDate: Date) { + self.rawDateOfLastBootstrappedContactDeviceDiscovery = newDate + } + } @@ -307,8 +343,10 @@ extension ContactIdentity { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ContactIdentity.entityName) guard let obvContext = self.obvContext else { assertionFailure(); throw makeError(message: "Could not find ObvContext") } + guard let cryptoIdentity = self.cryptoIdentity else { assertionFailure(); throw makeError(message: "Could not decode identity") } guard let ownedIdentity else { + assertionFailure() throw Self.makeError(message: "The owned identity associated to the contact is nil") } @@ -336,7 +374,7 @@ extension ContactIdentity { // Among the returned revocation, look for those that have a compromised type. If there is one, this contact should be revoked as compromised and we return. // If the identity is not compromised, look for revocations that are more recent than the details signature, and uncertify the identity if one is found - let revocations = try KeycloakRevokedIdentity.get(keycloakServer: ownKeycloakServer, identity: self.cryptoIdentity) + let revocations = try KeycloakRevokedIdentity.get(keycloakServer: ownKeycloakServer, identity: cryptoIdentity) do { let revocationsCompromised = revocations.filter({ (try? $0.revocationType) == .compromised }) @@ -413,8 +451,9 @@ extension ContactIdentity { .compactMap({ $0.contactGroup }) .filter({ $0.groupIdentifier?.category == .keycloak }) .forEach { keycloakGroup in + guard let cryptoIdentity else { assertionFailure(); return } do { - try keycloakGroup.moveOtherMemberToPendingMembersOfKeycloakGroup(otherMemberCryptoIdentity: self.cryptoIdentity, delegateManager: delegateManager) + try keycloakGroup.moveOtherMemberToPendingMembersOfKeycloakGroup(otherMemberCryptoIdentity: cryptoIdentity, delegateManager: delegateManager) } catch { assertionFailure(error.localizedDescription) } @@ -425,6 +464,7 @@ extension ContactIdentity { func getSignedUserDetails(identityPhotosDirectory: URL) throws -> SignedObvKeycloakUserDetails? { + guard isActive else { return nil } let details = publishedIdentityDetails ?? trustedIdentityDetails guard let identityDetails = details.getIdentityDetails(identityPhotosDirectory: identityPhotosDirectory) else { throw Self.makeError(message: "Failed to get signed details as we could not get the contact identity details") @@ -622,7 +662,7 @@ extension ContactIdentity { extension ContactIdentity { - func addIfNotExistDeviceWith(uid: UID, flowId: FlowIdentifier) throws { + func addIfNotExistDeviceWith(uid: UID, createdDuringChannelCreation: Bool, flowId: FlowIdentifier) throws { guard self.isActive else { throw makeError(message: "Cannot add a device to an inactive contact") } guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvIdentityDelegateManager.defaultLogSubsystem, category: "ContactIdentity") @@ -632,7 +672,7 @@ extension ContactIdentity { let log = OSLog(subsystem: delegateManager.logSubsystem, category: "ContactIdentity") let existingDeviceUids = devices.map { $0.uid } if !existingDeviceUids.contains(uid) { - guard ContactDevice(uid: uid, contactIdentity: self, flowId: flowId, delegateManager: delegateManager) != nil else { + guard ContactDevice(uid: uid, contactIdentity: self, createdDuringChannelCreation: createdDuringChannelCreation, flowId: flowId, delegateManager: delegateManager) != nil else { os_log("Could not add a contact device", log: log, type: .fault) throw ContactIdentity.makeError(message: "Could not add a contact device") } @@ -676,6 +716,7 @@ extension ContactIdentity { capabilities.insert(capability) } } + assert(capabilities.contains(.oneToOneContacts)) return capabilities } @@ -693,6 +734,37 @@ extension ContactIdentity { } +// MARK: - Syncing between owned devices + +extension ContactIdentity { + + func processTrustContactDetailsSyncAtom(serializedIdentityDetailsElements: Data, delegateManager: ObvIdentityDelegateManager) throws { + let identityDetailsElements = try IdentityDetailsElements(serializedIdentityDetailsElements) + guard let publishedIdentityDetails else { + // No published details to trust, nothing left to do + return + } + // If the local published for this contact do match the details the user decided to trust on another owned device, + // we trust these published now. + // First first construct a IdentityDetailsElements struct on the basis of the local, published details of the contact + guard let localPublishedIdentityDetailsElements = publishedIdentityDetails.getIdentityDetailsElements(identityPhotosDirectory: delegateManager.identityPhotosDirectory) else { + assertionFailure() + throw Self.makeError(message: "Could not construct local published identity details elements") + } + // We can compare the IdentityDetailsElements that were trusted on the other owned device with the published IdentityDetailsElements on this device + // If they are identical, we can trust the local published details + if identityDetailsElements.fieldsAreTheSameButVersionAndSignedDetailsAreNotConsidered(than: localPublishedIdentityDetailsElements) { + guard let obvIdentityDetails = publishedIdentityDetails.getIdentityDetails(identityPhotosDirectory: delegateManager.identityPhotosDirectory) else { + assertionFailure() + throw Self.makeError(message: "Could not construct local published identity details") + } + try self.updateTrustedDetailsWithPublishedDetails(obvIdentityDetails, delegateManager: delegateManager) + } + } + +} + + // MARK: - Convenience DB getters extension ContactIdentity { @@ -703,17 +775,71 @@ extension ContactIdentity { struct Predicate { enum Key: String { + // Attributes case isCertifiedByOwnKeycloak = "isCertifiedByOwnKeycloak" + case isForcefullyTrustedByUser = "isForcefullyTrustedByUser" case isOneToOne = "isOneToOne" - case cryptoIdentity = "cryptoIdentity" + case isRevokedAsCompromised = "isRevokedAsCompromised" + case ownedIdentityIdentity = "ownedIdentityIdentity" + case rawDateOfLastBootstrappedContactDeviceDiscovery = "rawDateOfLastBootstrappedContactDeviceDiscovery" + case rawIdentity = "rawIdentity" + case trustLevelRaw = "trustLevelRaw" + // Relationships + case contactGroups = "contactGroups" + case contactGroupsOwned = "contactGroupsOwned" + case devices = "devices" + case groupMemberships = "groupMemberships" + case ownedIdentity = "ownedIdentity" + case persistedTrustOrigins = "persistedTrustOrigins" + case publishedIdentityDetails = "publishedIdentityDetails" + case trustedIdentityDetails = "trustedIdentityDetails" + } + fileprivate static func withContactCryptoIdentity(_ contactIdentity: ObvCryptoIdentity) -> NSPredicate { + NSPredicate(Key.rawIdentity, EqualToData: contactIdentity.getIdentity()) + } + fileprivate static func withOwnedCryptoIdentity(_ ownedCryptoIdentity: ObvCryptoIdentity) -> NSPredicate { + NSPredicate(Key.ownedIdentityIdentity, EqualToData: ownedCryptoIdentity.getIdentity()) + } + fileprivate static func withOwnedIdentiy(_ ownedIdentity: OwnedIdentity) -> NSPredicate { + withOwnedCryptoIdentity(ownedIdentity.cryptoIdentity) + } + fileprivate static var withoutDevice: NSPredicate { + NSPredicate(withZeroCountForKey: Key.devices) + } + } + + static func getDateOfLastBootstrappedContactDeviceDiscovery(contactIdentity: ObvCryptoIdentity, ownedIdentity: ObvCryptoIdentity, within context: NSManagedObjectContext) throws -> Date { + let request: NSFetchRequest = ContactIdentity.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withContactCryptoIdentity(contactIdentity), + Predicate.withOwnedCryptoIdentity(ownedIdentity), + ]) + request.fetchLimit = 1 + guard let item = (try context.fetch(request)).first else { + throw Self.makeError(message: "Could not find contact") } + return item.rawDateOfLastBootstrappedContactDeviceDiscovery ?? .distantPast } static func get(contactIdentity: ObvCryptoIdentity, ownedIdentity: ObvCryptoIdentity, delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws -> ContactIdentity? { let request: NSFetchRequest = ContactIdentity.fetchRequest() - request.predicate = NSPredicate(format: "%K == %@ AND %K == %@", - ContactIdentity.cryptoIdentityKey, contactIdentity, - ContactIdentity.ownedIdentityCryptoIdentityKey, ownedIdentity) + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withContactCryptoIdentity(contactIdentity), + Predicate.withOwnedCryptoIdentity(ownedIdentity), + ]) + request.fetchLimit = 1 + let item = (try obvContext.fetch(request)).first + item?.delegateManager = delegateManager + return item + } + + static func get(contactIdentity: ObvCryptoIdentity, ownedIdentity: OwnedIdentity, delegateManager: ObvIdentityDelegateManager) throws -> ContactIdentity? { + guard let obvContext = ownedIdentity.obvContext else { throw ObvIdentityManagerError.contextIsNil } + let request: NSFetchRequest = ContactIdentity.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withContactCryptoIdentity(contactIdentity), + Predicate.withOwnedCryptoIdentity(ownedIdentity.cryptoIdentity), + ]) request.fetchLimit = 1 let item = (try obvContext.fetch(request)).first item?.delegateManager = delegateManager @@ -725,12 +851,25 @@ extension ContactIdentity { let items = try? obvContext.fetch(request) return items?.map { $0.delegateManager = delegateManager; return $0 } } + + static func getCryptoIdentitiesOfContactsWithoutDevice(ownedCryptoId: ObvCryptoIdentity, within context: NSManagedObjectContext) throws -> Set { + let request: NSFetchRequest = ContactIdentity.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withOwnedCryptoIdentity(ownedCryptoId), + Predicate.withoutDevice, + ]) + request.fetchBatchSize = 500 + let items = try context.fetch(request) + let contactCryptoIdentities = items.compactMap({ $0.cryptoIdentity }) + return Set(contactCryptoIdentities) + } static func exists(cryptoIdentity: ObvCryptoIdentity, ownedIdentity: OwnedIdentity, within obvContext: ObvContext) throws -> Bool { let request: NSFetchRequest = ContactIdentity.fetchRequest() - request.predicate = NSPredicate(format: "%K == %@ AND %K == %@", - ContactIdentity.cryptoIdentityKey, cryptoIdentity, - ContactIdentity.ownedIdentityCryptoIdentityKey, ownedIdentity.ownedCryptoIdentity.getObvCryptoIdentity()) + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withContactCryptoIdentity(cryptoIdentity), + Predicate.withOwnedIdentiy(ownedIdentity), + ]) return try obvContext.count(for: request) != 0 } } @@ -748,6 +887,7 @@ extension ContactIdentity { if let ownedIdentity { ownedIdentityCryptoIdentityOnDeletion = ownedIdentity.cryptoIdentity } + self.rawIdentityOnDeletion = rawIdentity } override func willSave() { @@ -764,6 +904,14 @@ extension ContactIdentity { defer { changedKeys.removeAll() + isInsertedWhileRestoringSyncSnapshot = false + } + + guard !isInsertedWhileRestoringSyncSnapshot else { + assert(isInserted) + let log = OSLog.init(subsystem: ObvIdentityDelegateManager.defaultLogSubsystem, category: String(describing: Self.self)) + os_log("Insertion of a ContactIdentity during a snapshot restore --> we don't send any notification", log: log, type: .info) + return } guard let delegateManager = delegateManager else { @@ -777,7 +925,7 @@ extension ContactIdentity { assert(obvContext != nil) let flowId = obvContext?.flowId ?? FlowIdentifier() - if isInserted, let ownedIdentity { + if isInserted, let ownedIdentity, let cryptoIdentity = self.cryptoIdentity { do { os_log("Sending a ContactIdentityIsNowTrusted notification", log: log, type: .debug) @@ -787,7 +935,7 @@ extension ContactIdentity { ObvIdentityNotificationNew.contactTrustLevelWasIncreased( ownedIdentity: ownedIdentity.cryptoIdentity, - contactIdentity: self.cryptoIdentity, + contactIdentity: cryptoIdentity, trustLevelOfContactIdentity: self.trustLevel, isOneToOne: self.isOneToOne, flowId: flowId) @@ -799,23 +947,23 @@ extension ContactIdentity { flowId: flowId) .postOnBackgroundQueue(within: delegateManager.notificationDelegate) - } else if isDeleted, let ownedIdentityCryptoIdentityOnDeletion { + } else if isDeleted, let ownedIdentityCryptoIdentityOnDeletion, let rawIdentityOnDeletion, let cryptoIdentity = ObvCryptoIdentity(from: rawIdentityOnDeletion) { os_log("Sending a ContactWasDeleted notification", log: log, type: .debug) ObvIdentityNotificationNew.contactWasDeleted(ownedCryptoIdentity: ownedIdentityCryptoIdentityOnDeletion, contactCryptoIdentity: cryptoIdentity) .postOnBackgroundQueue(within: delegateManager.notificationDelegate) - } else if let ownedIdentity { + } else if let ownedIdentity, let cryptoIdentity { if !changedKeys.isEmpty { - ObvIdentityNotificationNew.contactWasUpdatedWithinTheIdentityManager(ownedIdentity: ownedIdentity.cryptoIdentity, contactIdentity: self.cryptoIdentity, flowId: flowId) + ObvIdentityNotificationNew.contactWasUpdatedWithinTheIdentityManager(ownedIdentity: ownedIdentity.cryptoIdentity, contactIdentity: cryptoIdentity, flowId: flowId) .postOnBackgroundQueue(within: delegateManager.notificationDelegate) } - if changedKeys.contains(ContactIdentity.isForcefullyTrustedByUserKey) || changedKeys.contains(ContactIdentity.isRevokedAsCompromisedKey) { + if changedKeys.contains(Predicate.Key.isForcefullyTrustedByUser.rawValue) || changedKeys.contains(Predicate.Key.isRevokedAsCompromised.rawValue) { ObvIdentityNotificationNew.contactIsActiveChanged( ownedIdentity: ownedIdentity.cryptoIdentity, @@ -826,7 +974,7 @@ extension ContactIdentity { } - if changedKeys.contains(ContactIdentity.isRevokedAsCompromisedKey) && self.isRevokedAsCompromised { + if changedKeys.contains(Predicate.Key.isRevokedAsCompromised.rawValue) && self.isRevokedAsCompromised { ObvIdentityNotificationNew.contactWasRevokedAsCompromised( ownedIdentity: ownedIdentity.cryptoIdentity, @@ -858,11 +1006,11 @@ extension ContactIdentity { } - if trustLevelWasIncreased, let ownedIdentity { + if trustLevelWasIncreased, let ownedIdentity, let cryptoIdentity { ObvIdentityNotificationNew.contactTrustLevelWasIncreased( ownedIdentity: ownedIdentity.cryptoIdentity, - contactIdentity: self.cryptoIdentity, + contactIdentity: cryptoIdentity, trustLevelOfContactIdentity: self.trustLevel, isOneToOne: self.isOneToOne, flowId: flowId) @@ -881,7 +1029,7 @@ extension ContactIdentity { extension ContactIdentity { var backupItem: ContactIdentityBackupItem { - return ContactIdentityBackupItem(cryptoIdentity: cryptoIdentity, + return ContactIdentityBackupItem(rawIdentity: rawIdentity, persistedTrustOrigins: persistedTrustOrigins, publishedIdentityDetails: publishedIdentityDetails, trustedIdentityDetails: trustedIdentityDetails, @@ -897,7 +1045,7 @@ extension ContactIdentity { struct ContactIdentityBackupItem: Codable, Hashable { - fileprivate let cryptoIdentity: ObvCryptoIdentity + fileprivate let rawIdentity: Data fileprivate let persistedTrustOrigins: Set fileprivate let publishedIdentityDetails: ContactIdentityDetailsPublishedBackupItem? fileprivate let trustedIdentityDetails: ContactIdentityDetailsTrustedBackupItem @@ -914,8 +1062,8 @@ struct ContactIdentityBackupItem: Codable, Hashable { return NSError(domain: errorDomain, code: 0, userInfo: userInfo) } - fileprivate init(cryptoIdentity: ObvCryptoIdentity, persistedTrustOrigins: Set, publishedIdentityDetails: ContactIdentityDetailsPublished?, trustedIdentityDetails: ContactIdentityDetailsTrusted, contactGroupsOwned: Set, trustLevelRaw: String, isRevokedAsCompromised: Bool, isForcefullyTrustedByUser: Bool, isOneToOne: Bool) { - self.cryptoIdentity = cryptoIdentity + fileprivate init(rawIdentity: Data, persistedTrustOrigins: Set, publishedIdentityDetails: ContactIdentityDetailsPublished?, trustedIdentityDetails: ContactIdentityDetailsTrusted, contactGroupsOwned: Set, trustLevelRaw: String, isRevokedAsCompromised: Bool, isForcefullyTrustedByUser: Bool, isOneToOne: Bool) { + self.rawIdentity = rawIdentity self.persistedTrustOrigins = Set(persistedTrustOrigins.map { $0.backupItem }) self.publishedIdentityDetails = publishedIdentityDetails?.backupItem self.trustedIdentityDetails = trustedIdentityDetails.backupItem @@ -927,7 +1075,7 @@ struct ContactIdentityBackupItem: Codable, Hashable { } enum CodingKeys: String, CodingKey { - case cryptoIdentity = "contact_identity" + case rawIdentity = "contact_identity" case persistedTrustOrigins = "trust_origins" case publishedIdentityDetails = "published_details" case trustedIdentityDetails = "trusted_details" @@ -940,7 +1088,7 @@ struct ContactIdentityBackupItem: Codable, Hashable { func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) - try container.encode(cryptoIdentity.getIdentity(), forKey: .cryptoIdentity) + try container.encode(rawIdentity, forKey: .rawIdentity) try container.encode(persistedTrustOrigins, forKey: .persistedTrustOrigins) try container.encodeIfPresent(publishedIdentityDetails, forKey: .publishedIdentityDetails) try container.encode(trustedIdentityDetails, forKey: .trustedIdentityDetails) @@ -953,11 +1101,7 @@ struct ContactIdentityBackupItem: Codable, Hashable { init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) - let identity = try values.decode(Data.self, forKey: .cryptoIdentity) - guard let cryptoIdentity = ObvCryptoIdentity(from: identity) else { - throw ContactIdentityBackupItem.makeError(message: "Could not parse crypto identity") - } - self.cryptoIdentity = cryptoIdentity + self.rawIdentity = try values.decode(Data.self, forKey: .rawIdentity) self.persistedTrustOrigins = try values.decode(Set.self, forKey: .persistedTrustOrigins) self.publishedIdentityDetails = try values.decodeIfPresent(ContactIdentityDetailsPublishedBackupItem.self, forKey: .publishedIdentityDetails) self.trustedIdentityDetails = try values.decode(ContactIdentityDetailsTrustedBackupItem.self, forKey: .trustedIdentityDetails) @@ -996,3 +1140,143 @@ struct ContactIdentityBackupItem: Codable, Hashable { } } + + +// MARK: - For Snapshot purposes + +extension ContactIdentity { + + var syncSnapshot: ContactIdentitySyncSnapshotNode { + return ContactIdentitySyncSnapshotNode( + persistedTrustOrigins: persistedTrustOrigins, + publishedIdentityDetails: publishedIdentityDetails, + trustedIdentityDetails: trustedIdentityDetails, + trustLevelRaw: trustLevelRaw, + isRevokedAsCompromised: isRevokedAsCompromised, + isForcefullyTrustedByUser: isForcefullyTrustedByUser, + isOneToOne: isOneToOne) + } + +} + + + +struct ContactIdentitySyncSnapshotNode: ObvSyncSnapshotNode { + + private let domain: Set + private let trustedIdentityDetails: ContactIdentityDetailsTrustedSyncSnapShotNode? + private let publishedIdentityDetails: ContactIdentityDetailsPublishedSyncSnapshotNode? + private let persistedTrustOrigins: Set + fileprivate let isOneToOne: Bool? + fileprivate let isRevokedAsCompromised: Bool? + fileprivate let isForcefullyTrustedByUser: Bool? + fileprivate let trustLevelRaw: String? // only used for backup/transfer, not taken into account when comparing for synchronization + + let id = Self.generateIdentifier() + + private static let defaultDomain = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case trustedIdentityDetails = "trusted_details" + case publishedIdentityDetails = "published_details" + case isOneToOne = "one_to_one" + case isRevokedAsCompromised = "revoked" + case isForcefullyTrustedByUser = "forcefully_trusted" + case trustLevelRaw = "trust_level" + case persistedTrustOrigins = "trust_origins" + case domain = "domain" + } + + + fileprivate init(persistedTrustOrigins: Set, publishedIdentityDetails: ContactIdentityDetailsPublished?, trustedIdentityDetails: ContactIdentityDetailsTrusted, trustLevelRaw: String, isRevokedAsCompromised: Bool, isForcefullyTrustedByUser: Bool, isOneToOne: Bool) { + self.trustedIdentityDetails = trustedIdentityDetails.snapshotNode + self.publishedIdentityDetails = publishedIdentityDetails?.snapshotNode + self.persistedTrustOrigins = Set(persistedTrustOrigins.map { $0.snapshotItem }) + self.trustLevelRaw = trustLevelRaw + self.isRevokedAsCompromised = isRevokedAsCompromised ? true : nil + self.isForcefullyTrustedByUser = isForcefullyTrustedByUser ? true : nil + self.isOneToOne = isOneToOne ? true : nil + self.domain = Self.defaultDomain + } + + + // Synthesized implementation of encode(to encoder: Encoder) + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + self.trustedIdentityDetails = try values.decodeIfPresent(ContactIdentityDetailsTrustedSyncSnapShotNode.self, forKey: .trustedIdentityDetails) + self.publishedIdentityDetails = try values.decodeIfPresent(ContactIdentityDetailsPublishedSyncSnapshotNode.self, forKey: .publishedIdentityDetails) + self.persistedTrustOrigins = try values.decodeIfPresent(Set.self, forKey: .persistedTrustOrigins) ?? Set([]) + self.isOneToOne = try values.decodeIfPresent(Bool.self, forKey: .isOneToOne) + self.isRevokedAsCompromised = try values.decodeIfPresent(Bool.self, forKey: .isRevokedAsCompromised) + self.isForcefullyTrustedByUser = try values.decodeIfPresent(Bool.self, forKey: .isForcefullyTrustedByUser) + self.trustLevelRaw = try values.decodeIfPresent(String.self, forKey: .trustLevelRaw) + } + + + func restoreInstance(within obvContext: ObvContext, contactCryptoId: ObvCryptoIdentity, ownedIdentityIdentity: Data, associations: inout SnapshotNodeManagedObjectAssociations) throws { + + guard domain.contains(.trustedIdentityDetails) else { + throw ObvError.tryingToRestoreIncompleteSnapshot + } + + let contactIdentity = try ContactIdentity(snapshotNode: self, contactCryptoId: contactCryptoId, ownedIdentityIdentity: ownedIdentityIdentity, within: obvContext) + try associations.associate(contactIdentity, to: self) + + if domain.contains(.persistedTrustOrigins) { + try persistedTrustOrigins.forEach { trustOriginSnapshotItem in + try trustOriginSnapshotItem.restoreInstance(within: obvContext, associations: &associations) + } + } + + if domain.contains(.publishedIdentityDetails) { + try publishedIdentityDetails?.restoreInstance(within: obvContext, associations: &associations) + } + + try trustedIdentityDetails?.restoreInstance(within: obvContext, associations: &associations) + + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, within obvContext: ObvContext) throws { + + let contactIdentity: ContactIdentity = try associations.getObject(associatedTo: self, within: obvContext) + + // Restore the relationships of this instance + + let persistedTrustOrigins: Set = Set(try self.persistedTrustOrigins.map({ try associations.getObject(associatedTo: $0, within: obvContext) })) + + let publishedIdentityDetails: ContactIdentityDetailsPublished? = try associations.getObjectIfPresent(associatedTo: self.publishedIdentityDetails, within: obvContext) + + guard let trustedIdentityDetails else { + assertionFailure() + throw ObvError.tryingToRestoreIncompleteSnapshot + } + + let contactIdentityDetailsTrusted: ContactIdentityDetailsTrusted = try associations.getObject(associatedTo: trustedIdentityDetails, within: obvContext) + + contactIdentity.restoreRelationships(persistedTrustOrigins: persistedTrustOrigins, + publishedIdentityDetails: publishedIdentityDetails, + trustedIdentityDetails: contactIdentityDetailsTrusted) + + + // Restore the relationships with this instance relationships + + try self.persistedTrustOrigins.forEach { try $0.restoreRelationships(associations: associations, within: obvContext) } + + try self.publishedIdentityDetails?.restoreRelationships(associations: associations, within: obvContext) + + try self.trustedIdentityDetails?.restoreRelationships(associations: associations, within: obvContext) + + } + + + enum ObvError: Error { + case tryingToRestoreIncompleteSnapshot + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentityDetails.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentityDetails.swift index 3a139ce8..36e43d64 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentityDetails.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentityDetails.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -64,9 +64,14 @@ class ContactIdentityDetails: NSManagedObject, ObvManagedObject { } func getPhotoURL(identityPhotosDirectory: URL) -> URL? { + guard let url = getRawPhotoURL(identityPhotosDirectory: identityPhotosDirectory) else { return nil } + guard FileManager.default.fileExists(atPath: url.path) else { assertionFailure(); return nil } + return url + } + + private func getRawPhotoURL(identityPhotosDirectory: URL) -> URL? { guard let photoFilename = photoFilename else { return nil } let url = identityPhotosDirectory.appendingPathComponent(photoFilename) - guard FileManager.default.fileExists(atPath: url.path) else { assertionFailure(); return nil } return url } @@ -218,10 +223,10 @@ extension ContactIdentityDetails { let contactCryptoIdentity = self.contactIdentity.cryptoIdentity try obvContext.addContextDidSaveCompletionHandler { error in guard error == nil else { assertionFailure(); return } - if self is ContactIdentityDetailsPublished { + if self is ContactIdentityDetailsPublished, let contactCryptoIdentity { ObvIdentityNotificationNew.publishedPhotoOfContactIdentityHasBeenUpdated(ownedIdentity: ownedCryptoIdentity, contactIdentity: contactCryptoIdentity) .postOnBackgroundQueue(within: notificationDelegate) - } else if self is ContactIdentityDetailsTrusted { + } else if self is ContactIdentityDetailsTrusted, let contactCryptoIdentity { ObvIdentityNotificationNew.trustedPhotoOfContactIdentityHasBeenUpdated(ownedIdentity: ownedCryptoIdentity, contactIdentity: contactCryptoIdentity) .postOnBackgroundQueue(within: notificationDelegate) } else { @@ -249,6 +254,9 @@ extension ContactIdentityDetails { static var withoutPhotoFilename: NSPredicate { NSPredicate(withNilValueForKey: Key.photoFilename) } + static var withPhotoFilename: NSPredicate { + NSPredicate(withNonNilValueForKey: Key.photoFilename) + } static var withPhotoServerKey: NSPredicate { NSPredicate(withNonNilValueForKey: Key.photoServerKeyEncoded) } @@ -271,8 +279,25 @@ extension ContactIdentityDetails { let photoFilenames = Set(details.compactMap({ $0.photoFilename })) return photoFilenames } + + static func getInfosAboutContactsHavingPhotoFilename(identityPhotosDirectory: URL, within obvContext: ObvContext) throws -> [(ownedCryptoId: ObvCryptoIdentity, contactCryptoId: ObvCryptoIdentity, contactIdentityDetailsElements: IdentityDetailsElements, photoURL: URL)] { + let request: NSFetchRequest = ContactIdentityDetails.fetchRequest() + request.predicate = Predicate.withPhotoFilename + let items = try obvContext.fetch(request) + let results: [(ownedCryptoId: ObvCryptoIdentity, contactCryptoId: ObvCryptoIdentity, contactIdentityDetailsElements: IdentityDetailsElements, photoURL: URL)] = items.compactMap { details in + guard let contactCryptoId = details.contactIdentity.cryptoIdentity, + let ownedCryptoId = details.contactIdentity.ownedIdentity?.cryptoIdentity, + let contactIdentityDetailsElements = details.getIdentityDetailsElements(identityPhotosDirectory: identityPhotosDirectory), + let photoURL = details.getRawPhotoURL(identityPhotosDirectory: identityPhotosDirectory) else { + return nil + } + return (ownedCryptoId, contactCryptoId, contactIdentityDetailsElements, photoURL) + } + return results + } + static func getAllWithMissingPhotoFilename(within obvContext: ObvContext) throws -> [ContactIdentityDetails] { let request: NSFetchRequest = ContactIdentityDetails.fetchRequest() request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentityDetailsPublished.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentityDetailsPublished.swift index e0bac362..f26f4513 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentityDetailsPublished.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentityDetailsPublished.swift @@ -52,6 +52,7 @@ final class ContactIdentityDetailsPublished: ContactIdentityDetails, ObvErrorMak } + /// Used *exclusively* during a backup restore for creating an instance, relatioships are recreater in a second step fileprivate convenience init(backupItem: ContactIdentityDetailsPublishedBackupItem, within obvContext: ObvContext) { self.init(serializedIdentityCoreDetails: backupItem.serializedIdentityCoreDetails, @@ -61,6 +62,16 @@ final class ContactIdentityDetailsPublished: ContactIdentityDetails, ObvErrorMak within: obvContext) } + + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreater in a second step + fileprivate convenience init(snapshotNode: ContactIdentityDetailsPublishedSyncSnapshotNode, within obvContext: ObvContext) { + self.init(serializedIdentityCoreDetails: snapshotNode.serializedIdentityCoreDetails, + version: snapshotNode.version, + photoServerKeyAndLabel: snapshotNode.photoServerKeyAndLabel, + entityName: ContactIdentityDetailsPublished.entityName, + within: obvContext) + } + } @@ -116,11 +127,11 @@ extension ContactIdentityDetailsPublished { } - if !isDeleted, let ownedIdentity = contactIdentity.ownedIdentity { + if !isDeleted, let ownedIdentity = contactIdentity.ownedIdentity, let contactCryptoIdentity = self.contactIdentity.cryptoIdentity { if let publishedIdentityDetails = self.getIdentityDetails(identityPhotosDirectory: delegateManager.identityPhotosDirectory) { let NotificationType = ObvIdentityNotification.NewPublishedContactIdentityDetails.self - let userInfo = [NotificationType.Key.contactCryptoIdentity: self.contactIdentity.cryptoIdentity, + let userInfo = [NotificationType.Key.contactCryptoIdentity: contactCryptoIdentity, NotificationType.Key.ownedCryptoIdentity: ownedIdentity.cryptoIdentity, NotificationType.Key.publishedIdentityDetails: publishedIdentityDetails] as [String: Any] notificationDelegate.post(name: NotificationType.name, userInfo: userInfo) @@ -257,3 +268,142 @@ struct ContactIdentityDetailsPublishedBackupItem: Codable, Hashable { } } + + +// MARK: - For Snapshot purposes + +extension ContactIdentityDetailsPublished { + + var snapshotNode: ContactIdentityDetailsPublishedSyncSnapshotNode { + return ContactIdentityDetailsPublishedSyncSnapshotNode( + serializedIdentityCoreDetails: serializedIdentityCoreDetails, + photoServerKeyAndLabel: photoServerKeyAndLabel, + version: self.version) + } + +} + + +struct ContactIdentityDetailsPublishedSyncSnapshotNode: ObvSyncSnapshotNode { + + fileprivate let serializedIdentityCoreDetails: Data + fileprivate let photoServerKeyAndLabel: PhotoServerKeyAndLabel? + fileprivate let version: Int + + private let domain: Set + + private static let defaultDomain = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + let id = Self.generateIdentifier() + + func hash(into hasher: inout Hasher) { + hasher.combine(id) + } + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + // Attributes inherited from OwnedIdentityDetails + case serializedIdentityCoreDetails = "serialized_details" + case version = "version" + // Local attributes + case photoServerKeyEncoded = "photo_server_key" + case photoServerLabel = "photo_server_label" + // Domain + case domain = "domain" + } + + fileprivate init(serializedIdentityCoreDetails: Data, photoServerKeyAndLabel: PhotoServerKeyAndLabel?, version: Int) { + self.serializedIdentityCoreDetails = serializedIdentityCoreDetails + self.photoServerKeyAndLabel = photoServerKeyAndLabel + self.version = version + self.domain = Self.defaultDomain + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + // Attributes inherited from OwnedIdentityDetails + guard let serializedIdentityCoreDetailsAsString = String(data: serializedIdentityCoreDetails, encoding: .utf8) else { + throw ObvError.couldNotSerializeCoreDetails + } + try container.encode(serializedIdentityCoreDetailsAsString, forKey: .serializedIdentityCoreDetails) + try container.encode(version, forKey: .version) + // Local attributes + let photoServerKeyEncoded = photoServerKeyAndLabel?.key.obvEncode().rawData + try container.encodeIfPresent(photoServerKeyEncoded, forKey: .photoServerKeyEncoded) + try container.encodeIfPresent(photoServerKeyAndLabel?.label.raw, forKey: .photoServerLabel) + // Domain + try container.encode(domain, forKey: .domain) + } + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + guard domain.contains(.version) && domain.contains(.serializedIdentityCoreDetails) else { throw ObvError.tryingToRestoreIncompleteSnapshot } + + let serializedIdentityCoreDetailsAsString = try values.decode(String.self, forKey: .serializedIdentityCoreDetails) + guard let serializedIdentityCoreDetailsAsData = serializedIdentityCoreDetailsAsString.data(using: .utf8) else { + throw ObvError.couldNotDeserializeCoreDetails + } + self.serializedIdentityCoreDetails = serializedIdentityCoreDetailsAsData + self.version = try values.decode(Int.self, forKey: .version) + + if domain.contains(.photoServerLabel) && domain.contains(.photoServerKeyEncoded) && values.allKeys.contains(.photoServerLabel) && values.allKeys.contains(.photoServerKeyEncoded) { + do { + let photoServerKeyEncodedRaw = try values.decode(Data.self, forKey: .photoServerKeyEncoded) + guard let photoServerKeyEncoded = ObvEncoded(withRawData: photoServerKeyEncodedRaw) else { + throw ObvError.couldNotParsePhotoServerKey + } + let key = try AuthenticatedEncryptionKeyDecoder.decode(photoServerKeyEncoded) + if let photoServerLabelAsData = try? values.decodeIfPresent(Data.self, forKey: .photoServerLabel), + let photoServerLabelAsUID = UID(uid: photoServerLabelAsData) { + // Expected + self.photoServerKeyAndLabel = PhotoServerKeyAndLabel(key: key, label: photoServerLabelAsUID) + } else if let photoServerLabelAsUID = try values.decodeIfPresent(UID.self, forKey: .photoServerLabel) { + assertionFailure() + self.photoServerKeyAndLabel = PhotoServerKeyAndLabel(key: key, label: photoServerLabelAsUID) + } else if let photoServerLabelAsString = try? values.decode(String.self, forKey: .photoServerLabel), + let photoServerLabelAsData = Data(base64Encoded: photoServerLabelAsString), + let photoServerLabelAsUID = UID(uid: photoServerLabelAsData) { + assertionFailure() + self.photoServerKeyAndLabel = PhotoServerKeyAndLabel(key: key, label: photoServerLabelAsUID) + } else if let photoServerLabelAsString = try? values.decode(String.self, forKey: .photoServerLabel), + let photoServerLabelAsData = Data(hexString: photoServerLabelAsString), + let photoServerLabelAsUID = UID(uid: photoServerLabelAsData) { + assertionFailure() + self.photoServerKeyAndLabel = PhotoServerKeyAndLabel(key: key, label: photoServerLabelAsUID) + } else { + throw ObvError.couldNotDecodePhotoServerLabel + } + } catch { + assertionFailure() // In production, continue anyway + self.photoServerKeyAndLabel = nil + } + } else { + self.photoServerKeyAndLabel = nil + } + + } + + + func restoreInstance(within obvContext: ObvContext, associations: inout SnapshotNodeManagedObjectAssociations) throws { + let contactIdentityDetailsPublished = ContactIdentityDetailsPublished(snapshotNode: self, within: obvContext) + try associations.associate(contactIdentityDetailsPublished, to: self) + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, within obvContext: ObvContext) throws { + // Nothing do to here + } + + + enum ObvError: Error { + case couldNotSerializeCoreDetails + case couldNotDeserializeCoreDetails + case tryingToRestoreIncompleteSnapshot + case couldNotParsePhotoServerKey + case couldNotDecodePhotoServerLabel + } +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentityDetailsTrusted.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentityDetailsTrusted.swift index abcf779e..2cbbdf2c 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentityDetailsTrusted.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ContactIdentityDetailsTrusted.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -49,6 +49,7 @@ final class ContactIdentityDetailsTrusted: ContactIdentityDetails { delegateManager: delegateManager) } + /// Used *exclusively* during a backup restore for creating an instance, relatioships are recreater in a second step fileprivate convenience init(backupItem: ContactIdentityDetailsTrustedBackupItem, within obvContext: ObvContext) { self.init(serializedIdentityCoreDetails: backupItem.serializedIdentityCoreDetails, @@ -57,6 +58,17 @@ final class ContactIdentityDetailsTrusted: ContactIdentityDetails { entityName: ContactIdentityDetailsTrusted.entityName, within: obvContext) } + + + /// Used *exclusively* during a backup restore for creating an instance, relatioships are recreater in a second step + fileprivate convenience init(snapshotNode: ContactIdentityDetailsTrustedSyncSnapShotNode, within obvContext: ObvContext) { + self.init(serializedIdentityCoreDetails: snapshotNode.serializedIdentityCoreDetails, + version: snapshotNode.version, + photoServerKeyAndLabel: snapshotNode.photoServerKeyAndLabel, + entityName: ContactIdentityDetailsTrusted.entityName, + within: obvContext) + } + } @@ -127,9 +139,9 @@ extension ContactIdentityDetailsTrusted { if !isDeleted, let ownedIdentity = contactIdentity.ownedIdentity { - if let trustedIdentityDetails = self.getIdentityDetails(identityPhotosDirectory: delegateManager.identityPhotosDirectory) { + if let trustedIdentityDetails = self.getIdentityDetails(identityPhotosDirectory: delegateManager.identityPhotosDirectory), let contactCryptoIdentity = self.contactIdentity.cryptoIdentity { let NotificationType = ObvIdentityNotification.NewTrustedContactIdentityDetails.self - let userInfo = [NotificationType.Key.contactCryptoIdentity: self.contactIdentity.cryptoIdentity, + let userInfo = [NotificationType.Key.contactCryptoIdentity: contactCryptoIdentity, NotificationType.Key.ownedCryptoIdentity: ownedIdentity.cryptoIdentity, NotificationType.Key.trustedIdentityDetails: trustedIdentityDetails] as [String: Any] notificationDelegate.post(name: NotificationType.name, userInfo: userInfo) @@ -268,3 +280,129 @@ struct ContactIdentityDetailsTrustedBackupItem: Codable, Hashable { } } + + +// MARK: - For Snapshot purposes + +extension ContactIdentityDetailsTrusted { + + var snapshotNode: ContactIdentityDetailsTrustedSyncSnapShotNode { + return ContactIdentityDetailsTrustedSyncSnapShotNode( + serializedIdentityCoreDetails: serializedIdentityCoreDetails, + photoServerKeyAndLabel: photoServerKeyAndLabel, + version: self.version) + } + +} + + +struct ContactIdentityDetailsTrustedSyncSnapShotNode: ObvSyncSnapshotNode { + + fileprivate let serializedIdentityCoreDetails: Data + fileprivate let photoServerKeyAndLabel: PhotoServerKeyAndLabel? + fileprivate let version: Int + private let domain: Set + + let id = Self.generateIdentifier() + + private static let defaultDomain = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + // Allows to prevent association failures in two items have identical variables + private let transientUuid = UUID() + + static func == (lhs: ContactIdentityDetailsTrustedSyncSnapShotNode, rhs: ContactIdentityDetailsTrustedSyncSnapShotNode) -> Bool { + return lhs.transientUuid == rhs.transientUuid + } + + func hash(into hasher: inout Hasher) { + hasher.combine(transientUuid) + } + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + // Attributes inherited from OwnedIdentityDetails + case serializedIdentityCoreDetails = "serialized_details" + case version = "version" + // Local attributes + case photoServerKeyEncoded = "photo_server_key" + case photoServerLabel = "photo_server_label" + // Domain + case domain = "domain" + } + + fileprivate init(serializedIdentityCoreDetails: Data, photoServerKeyAndLabel: PhotoServerKeyAndLabel?, version: Int) { + self.serializedIdentityCoreDetails = serializedIdentityCoreDetails + self.photoServerKeyAndLabel = photoServerKeyAndLabel + self.version = version + self.domain = Self.defaultDomain + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + // Attributes inherited from OwnedIdentityDetails + guard let serializedIdentityCoreDetailsAsString = String(data: serializedIdentityCoreDetails, encoding: .utf8) else { + throw ObvError.couldNotSerializeCoreDetails + } + try container.encode(serializedIdentityCoreDetailsAsString, forKey: .serializedIdentityCoreDetails) + try container.encode(version, forKey: .version) + // Local attributes + let photoServerKeyEncoded = photoServerKeyAndLabel?.key.obvEncode().rawData + try container.encodeIfPresent(photoServerKeyEncoded, forKey: .photoServerKeyEncoded) + try container.encodeIfPresent(photoServerKeyAndLabel?.label.raw, forKey: .photoServerLabel) + // Domain + try container.encode(domain, forKey: .domain) + } + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + guard domain.contains(.version) && domain.contains(.serializedIdentityCoreDetails) else { throw ObvError.tryingToRestoreIncompleteSnapshot } + + let serializedIdentityCoreDetailsAsString = try values.decode(String.self, forKey: .serializedIdentityCoreDetails) + guard let serializedIdentityCoreDetailsAsData = serializedIdentityCoreDetailsAsString.data(using: .utf8) else { + throw ObvError.couldNotDeserializeCoreDetails + } + self.serializedIdentityCoreDetails = serializedIdentityCoreDetailsAsData + self.version = try values.decode(Int.self, forKey: .version) + + if domain.contains(.photoServerLabel) && domain.contains(.photoServerKeyEncoded) && values.allKeys.contains(.photoServerLabel) && values.allKeys.contains(.photoServerKeyEncoded) { + if let photoServerKeyEncodedRaw = try values.decodeIfPresent(Data.self, forKey: .photoServerKeyEncoded), + let photoServerKeyEncoded = ObvEncoded(withRawData: photoServerKeyEncodedRaw), + let key = try? AuthenticatedEncryptionKeyDecoder.decode(photoServerKeyEncoded), + let photoServerLabelRaw = try? values.decodeIfPresent(Data.self, forKey: .photoServerLabel), + let photoServerLabelAsUID = UID(uid: photoServerLabelRaw) { + self.photoServerKeyAndLabel = .init(key: key, label: photoServerLabelAsUID) + } else { + assert(!values.allKeys.contains(where: { $0 == .photoServerLabel }), "The key is present, but we did not manage to decode the value") + assert(!values.allKeys.contains(where: { $0 == .photoServerKeyEncoded }), "The key is present, but we did not manage to decode the value") + self.photoServerKeyAndLabel = nil + } + } else { + self.photoServerKeyAndLabel = nil + } + + } + + + func restoreInstance(within obvContext: ObvContext, associations: inout SnapshotNodeManagedObjectAssociations) throws { + let contactIdentityDetailsTrusted = ContactIdentityDetailsTrusted(snapshotNode: self, within: obvContext) + try associations.associate(contactIdentityDetailsTrusted, to: self) + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, within obvContext: ObvContext) throws { + // Nothing do to here + } + + + enum ObvError: Error { + case couldNotSerializeCoreDetails + case couldNotDeserializeCoreDetails + case tryingToRestoreIncompleteSnapshot + case couldNotParsePhotoServerKey + case couldNotDecodePhotoServerLabel + } +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/KeycloakServer.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/KeycloakServer.swift index fae73e80..34aec100 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/KeycloakServer.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/KeycloakServer.swift @@ -55,6 +55,7 @@ final class KeycloakServer: NSManagedObject, ObvManagedObject { @NSManaged private(set) var keycloakUserId: String? @NSManaged private(set) var latestGroupUpdateTimestamp: Date? // Given by the server @NSManaged private(set) var latestRevocationListTimetamp: Date? // Given by the server + @NSManaged private(set) var ownAPIKey: UUID? @NSManaged private(set) var rawAuthState: Data? @NSManaged private var rawJwks: Data @NSManaged private var rawOwnedIdentity: Data @@ -167,6 +168,36 @@ final class KeycloakServer: NSManagedObject, ObvManagedObject { self.rawServerSignatureKey = backupItem.rawServerSignatureKey } + + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreated in a second step + fileprivate convenience init(snapshotNode: KeycloakServerSnapshotNode, rawOwnedIdentity: Data, within obvContext: ObvContext) throws { + let entityDescription = NSEntityDescription.entity(forEntityName: KeycloakServer.entityName, in: obvContext)! + self.init(entity: entityDescription, insertInto: obvContext) + guard let clientId = snapshotNode.clientId else { + assertionFailure() + throw KeycloakServerSnapshotNode.ObvError.tryingToRestoreIncompleteSnapshot + } + self.clientId = clientId + self.clientSecret = snapshotNode.clientSecret + self.rawPushTopics = nil + self.keycloakUserId = snapshotNode.keycloakUserId + self.latestRevocationListTimetamp = nil + guard let rawJwks = snapshotNode.rawJwks else { + assertionFailure() + throw KeycloakServerSnapshotNode.ObvError.tryingToRestoreIncompleteSnapshot + } + self.rawJwks = rawJwks + guard let serverURL = snapshotNode.serverURL else { + assertionFailure() + throw KeycloakServerSnapshotNode.ObvError.tryingToRestoreIncompleteSnapshot + } + self.serverURL = serverURL + self.rawOwnedIdentity = rawOwnedIdentity + self.selfRevocationTestNonce = snapshotNode.selfRevocationTestNonce + self.rawServerSignatureKey = snapshotNode.rawServerSignatureKey + } + + func setAuthState(authState: Data?) { self.rawAuthState = authState } @@ -192,6 +223,11 @@ final class KeycloakServer: NSManagedObject, ObvManagedObject { self.serverSignatureVerificationKey = key } + func saveRegisteredKeycloakAPIKey(apiKey newAPIKey: UUID) { + guard self.ownAPIKey != newAPIKey else { return } + self.ownAPIKey = newAPIKey + } + // MARK: - Identity revocation /// Called from `OwnedIdentity`. Returns a set of compromised contacts that are not forcefully trusted by the user. @@ -261,8 +297,8 @@ final class KeycloakServer: NSManagedObject, ObvManagedObject { guard contact.isCertifiedByOwnKeycloak else { break } case .compromised: // User key is compromised: mark the contact as revoked and delete all devices/channels from this contact - if !contact.isForcefullyTrustedByUser { - compromisedContacts.insert(contact.cryptoIdentity) + if !contact.isForcefullyTrustedByUser, let contactCryptoIdentity = contact.cryptoIdentity { + compromisedContacts.insert(contactCryptoIdentity) } contact.revokeAsCompromised(delegateManager: delegateManager) // This deletes the devices of the contact } @@ -778,3 +814,123 @@ struct KeycloakGroupMemberKickedData: Decodable, ObvErrorMaker { } } + + +// MARK: - For snapshot purposes + + +extension KeycloakServer { + + var snapshotNode: KeycloakServerSnapshotNode { + return KeycloakServerSnapshotNode( + serverURL: serverURL, + clientId: clientId, + clientSecret: clientSecret, + keycloakUserId: keycloakUserId, + selfRevocationTestNonce: selfRevocationTestNonce, + rawJwks: rawJwks, + rawServerSignatureKey: rawServerSignatureKey) + } + +} + + +struct KeycloakServerSnapshotNode: ObvSyncSnapshotNode { + + fileprivate let serverURL: URL? + fileprivate let clientId: String? + fileprivate let clientSecret: String? + fileprivate let keycloakUserId: String? + fileprivate let selfRevocationTestNonce: String? + fileprivate let rawJwks: Data? + fileprivate let rawServerSignatureKey: Data? + + let id = Self.generateIdentifier() + + private let domain: Set + + private static let defaultDomain = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case serverURL = "server_url" + case clientId = "client_id" + case clientSecret = "client_secret" + case keycloakUserId = "keycloak_user_id" + case selfRevocationTestNonce = "self_revocation_test_nonce" + case domain = "domain" + case rawJwks = "jwks" + case rawServerSignatureKey = "signature_key" + } + + + fileprivate init(serverURL: URL, clientId: String, clientSecret: String?, keycloakUserId: String?, selfRevocationTestNonce: String?, rawJwks: Data, rawServerSignatureKey: Data?) { + self.serverURL = serverURL + self.clientId = clientId + self.clientSecret = clientSecret + self.keycloakUserId = keycloakUserId + self.selfRevocationTestNonce = selfRevocationTestNonce + self.rawJwks = rawJwks + self.rawServerSignatureKey = rawServerSignatureKey + self.domain = Self.defaultDomain + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(self.serverURL, forKey: .serverURL) + try container.encodeIfPresent(self.clientId, forKey: .clientId) + try container.encodeIfPresent(self.clientSecret, forKey: .clientSecret) + try container.encodeIfPresent(self.keycloakUserId, forKey: .keycloakUserId) + try container.encodeIfPresent(self.selfRevocationTestNonce, forKey: .selfRevocationTestNonce) + try container.encode(self.domain, forKey: .domain) + if let rawJwks { + let rawJwksAsString = String(data: rawJwks, encoding: .utf8) + try container.encodeIfPresent(rawJwksAsString, forKey: .rawJwks) + } + if let rawServerSignatureKey { + let rawServerSignatureKeyAsString = String(data: rawServerSignatureKey, encoding: .utf8) + try container.encodeIfPresent(rawServerSignatureKeyAsString, forKey: .rawServerSignatureKey) + } + } + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + self.serverURL = try values.decodeIfPresent(URL.self, forKey: .serverURL) + self.clientId = try values.decodeIfPresent(String.self, forKey: .clientId) + self.keycloakUserId = try values.decodeIfPresent(String.self, forKey: .keycloakUserId) + self.clientSecret = try values.decodeIfPresent(String.self, forKey: .clientSecret) + self.selfRevocationTestNonce = try values.decodeIfPresent(String.self, forKey: .selfRevocationTestNonce) + let rawJwksAsString = try values.decodeIfPresent(String.self, forKey: .rawJwks) + self.rawJwks = rawJwksAsString?.data(using: .utf8) + let rawServerSignatureKeyAsString = try values.decodeIfPresent(String.self, forKey: .rawServerSignatureKey) + self.rawServerSignatureKey = rawServerSignatureKeyAsString?.data(using: .utf8) + } + + + func restoreInstance(within obvContext: ObvContext, associations: inout SnapshotNodeManagedObjectAssociations, rawOwnedIdentity: Data) throws { + + let mandatoryDomain = Set([.serverURL, .clientId, .keycloakUserId, .clientSecret, .rawJwks]) + guard mandatoryDomain.isSubset(of: domain) else { + assertionFailure() + throw ObvError.tryingToRestoreIncompleteSnapshot + } + + let keycloakServer = try KeycloakServer(snapshotNode: self, rawOwnedIdentity: rawOwnedIdentity, within: obvContext) + try associations.associate(keycloakServer, to: self) + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, within obvContext: ObvContext) throws { + // Nothing do to here + } + + + enum ObvError: Error { + case tryingToRestoreIncompleteSnapshot + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedDevice.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedDevice.swift index 29675fa3..6c62b634 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedDevice.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedDevice.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -34,10 +34,12 @@ final class OwnedDevice: NSManagedObject, ObvManagedObject { // MARK: Attributes - @NSManaged private(set) var uid: UID // Unique (not enforced) + @NSManaged private var expirationDate: Date? + @NSManaged private var latestRegistrationDate: Date? + @NSManaged private(set) var name: String? @NSManaged private var rawCapabilities: String? + @NSManaged private(set) var uid: UID // Unique (not enforced) - // MARK: Relationships /// If this device the current device of an owned identity, then currentDeviceIdentity is not nil and remoteDeviceIdentity is nil. If this device is a remote device of an owned identity (thus the current device of this identity on some other physical device), then currentDeviceIdentity is nil and remoteDeviceIdentity is not nil. In both cases, one (and only one) of these two relationships is not nil. This is captured by the computed variable `identity`. @@ -63,63 +65,156 @@ final class OwnedDevice: NSManagedObject, ObvManagedObject { } } + var infos: (name: String?, expirationDate: Date?, latestRegistrationDate: Date?) { + return (self.name, self.expirationDate, self.latestRegistrationDate) + } // MARK: Other variables var obvContext: ObvContext? weak var delegateManager: ObvIdentityDelegateManager? - var identity: OwnedIdentity { - if currentDeviceIdentity != nil { - currentDeviceIdentity!.delegateManager = delegateManager - return currentDeviceIdentity! + var identity: OwnedIdentity? { + if let currentDeviceIdentity { + currentDeviceIdentity.delegateManager = delegateManager + return currentDeviceIdentity + } else if let remoteDeviceIdentity { + remoteDeviceIdentity.delegateManager = delegateManager + return remoteDeviceIdentity } else { - remoteDeviceIdentity!.delegateManager = delegateManager - return remoteDeviceIdentity! + // Happens if the device was just deleted + return nil } } + private var ownedCryptoIdentityOnDeletion: ObvCryptoIdentity? private var changedKeys = Set() + /// This is only set while inserting a new `OwnedDevice`. This is `true` iff the inserted instance was performed during a `ChannelCreationWithOwnedDeviceProtocol`. + /// + /// This value is used in the notification sent to the engine. When receiving the notification, the engine starts a new `ChannelCreationWithOwnedDeviceProtocol` *unless* this Boolean is `true`. + private var createdDuringChannelCreation: Bool? + // MARK: - Initializers - /// This initializer creates the current device of the owned identity. It should only be called at the time we create an owned identity - convenience init?(ownedIdentity: OwnedIdentity, with prng: PRNGService, delegateManager: ObvIdentityDelegateManager) { + /// This initializer creates the current device of the owned identity. It should only be called at the time we create an owned identity. + convenience init?(ownedIdentity: OwnedIdentity, name: String, with prng: PRNGService, delegateManager: ObvIdentityDelegateManager) { guard let obvContext = ownedIdentity.obvContext else { let log = OSLog(subsystem: delegateManager.logSubsystem, category: "OwnedDevice") os_log("Could not get a context", log: log, type: .fault) return nil } + let entityDescription = NSEntityDescription.entity(forEntityName: OwnedDevice.entityName, in: obvContext)! self.init(entity: entityDescription, insertInto: obvContext) - uid = UID.gen(with: prng) - currentDeviceIdentity = ownedIdentity - remoteDeviceIdentity = nil + + self.expirationDate = nil // Set later + self.latestRegistrationDate = nil // Set later + let trimmedName = name.trimmingWhitespacesAndNewlines() + self.name = trimmedName.isEmpty ? nil : trimmedName self.rawCapabilities = nil // Set later + self.uid = UID.gen(with: prng) + + self.currentDeviceIdentity = ownedIdentity + self.remoteDeviceIdentity = nil + self.delegateManager = delegateManager + self.createdDuringChannelCreation = false // As we are creating the current device } + /// This device adds a remote device to the owned identity. - convenience init?(remoteDeviceUid: UID, ownedIdentity: OwnedIdentity, delegateManager: ObvIdentityDelegateManager) { + convenience init?(remoteDeviceUid: UID, ownedIdentity: OwnedIdentity, createdDuringChannelCreation: Bool, delegateManager: ObvIdentityDelegateManager) { guard let obvContext = ownedIdentity.obvContext else { let log = OSLog(subsystem: delegateManager.logSubsystem, category: "OwnedDevice") os_log("Could not get a context", log: log, type: .fault) return nil } + let entityDescription = NSEntityDescription.entity(forEntityName: OwnedDevice.entityName, in: obvContext)! self.init(entity: entityDescription, insertInto: obvContext) - self.uid = remoteDeviceUid - currentDeviceIdentity = nil - remoteDeviceIdentity = ownedIdentity + + self.expirationDate = nil // Set later + self.latestRegistrationDate = nil // Set later + self.name = nil // Set later self.rawCapabilities = nil // Set later + self.uid = remoteDeviceUid + + self.currentDeviceIdentity = nil + self.remoteDeviceIdentity = ownedIdentity + self.delegateManager = delegateManager + self.createdDuringChannelCreation = createdDuringChannelCreation } - /// Used *exclusively* during a backup restore for creating an instance, relatioships are recreater in a second step + + /// Used *exclusively* during a backup restore for creating an instance, relatioships are recreated in a second step fileprivate convenience init(backupItem: OwnedDeviceBackupItem, within obvContext: ObvContext) { + let entityDescription = NSEntityDescription.entity(forEntityName: OwnedDevice.entityName, in: obvContext)! self.init(entity: entityDescription, insertInto: obvContext) + + self.expirationDate = nil // Set later + self.latestRegistrationDate = nil // Set later + self.name = nil // Set later by the engine, using `setCurrentDeviceNameAfterBackupRestore(newName:)`, right after backup restore + self.rawCapabilities = nil // Set later self.uid = backupItem.uid + + self.createdDuringChannelCreation = false + + } + + + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreated in a second step + fileprivate convenience init(snapshotItem: OwnedDeviceSnapshotItem, within obvContext: ObvContext) { + + let entityDescription = NSEntityDescription.entity(forEntityName: OwnedDevice.entityName, in: obvContext)! + self.init(entity: entityDescription, insertInto: obvContext) + + self.expirationDate = nil // Set later + self.latestRegistrationDate = nil // Set later + let trimmedName = snapshotItem.customDeviceName.trimmingWhitespacesAndNewlines() + self.name = trimmedName.isEmpty ? nil : trimmedName self.rawCapabilities = nil // Set later + self.uid = snapshotItem.uid + + self.createdDuringChannelCreation = false + + } + + + func setCurrentDeviceNameAfterBackupRestore(newName: String) { + assert(self.name == nil) + if self.name != newName { + self.name = newName + } + } + + + func updateThisDevice(with device: OwnedDeviceDiscoveryResult.Device) throws { + guard self.uid == device.uid else { + assertionFailure() + throw Self.makeError(message: "Unexpected UID") + } + + if self.expirationDate != device.expirationDate { + self.expirationDate = device.expirationDate + } + + if self.name != device.name { + self.name = device.name + } + + if self.latestRegistrationDate != device.latestRegistrationDate { + self.latestRegistrationDate = device.latestRegistrationDate + } + } + + + func deleteThisDevice(delegateManager: ObvIdentityDelegateManager) throws { + guard let context = managedObjectContext else { throw Self.makeError(message: "No context") } + ownedCryptoIdentityOnDeletion = identity?.cryptoIdentity + self.delegateManager = delegateManager + context.delete(self) } } @@ -198,8 +293,8 @@ extension OwnedDevice { let request: NSFetchRequest = OwnedDevice.fetchRequest() let items = try obvContext.fetch(request) let values: Set = Set(items.compactMap { - guard $0.identity.currentDeviceUid != $0.uid else { return nil } - return ObliviousChannelIdentifier(currentDeviceUid: $0.identity.currentDeviceUid, remoteCryptoIdentity: $0.identity.cryptoIdentity, remoteDeviceUid: $0.uid) + guard let identity = $0.identity, identity.currentDeviceUid != $0.uid else { return nil } + return ObliviousChannelIdentifier(currentDeviceUid: identity.currentDeviceUid, remoteCryptoIdentity: identity.cryptoIdentity, remoteDeviceUid: $0.uid) }) return values } @@ -227,7 +322,7 @@ extension OwnedDevice { guard let delegateManager = delegateManager else { let log = OSLog.init(subsystem: ObvIdentityDelegateManager.defaultLogSubsystem, category: OwnedDevice.entityName) - os_log("The delegate manager is not set (1) - Ok during a backup restore", log: log, type: .fault) + os_log("The delegate manager is not set (1) - Ok during a backup restore or when deleting the corresponding profile", log: log, type: .error) return } @@ -239,8 +334,28 @@ extension OwnedDevice { return } - if !isDeleted && changedKeys.contains(Predicate.Key.rawCapabilities.rawValue) { - ObvIdentityNotificationNew.ownedIdentityCapabilitiesWereUpdated(ownedIdentity: self.identity.cryptoIdentity, flowId: flowId) + if !isDeleted && changedKeys.contains(Predicate.Key.rawCapabilities.rawValue), let identity = self.identity { + // We do *not* send the device's capabilities. Eventually, the app will request the capabilities of the owned identity that will compute her capabilities on the basis of the capabilities of all her owned devices. + ObvIdentityNotificationNew.ownedIdentityCapabilitiesWereUpdated(ownedIdentity: identity.cryptoIdentity, flowId: flowId) + .postOnBackgroundQueue(within: delegateManager.notificationDelegate) + } + + if !isDeleted && !changedKeys.isEmpty, let identity = self.identity { + ObvIdentityNotificationNew.anOwnedDeviceWasUpdated(ownedCryptoId: identity.cryptoIdentity) + .postOnBackgroundQueue(within: delegateManager.notificationDelegate) + } + + if isInserted { + if let remoteDeviceIdentity { + assert(createdDuringChannelCreation != nil) + let createdDuringChannelCreation = self.createdDuringChannelCreation ?? false + ObvIdentityNotificationNew.newRemoteOwnedDevice(ownedCryptoId: remoteDeviceIdentity.cryptoIdentity, remoteDeviceUid: uid, createdDuringChannelCreation: createdDuringChannelCreation) + .postOnBackgroundQueue(within: delegateManager.notificationDelegate) + } + } + + if isDeleted, let ownedCryptoIdentityOnDeletion { + ObvIdentityNotificationNew.anOwnedDeviceWasDeleted(ownedCryptoId: ownedCryptoIdentityOnDeletion) .postOnBackgroundQueue(within: delegateManager.notificationDelegate) } @@ -292,10 +407,10 @@ struct OwnedDeviceBackupItem: Codable, Hashable { self.uid = uid } - func restoreInstance(within obvContext: ObvContext, associations: inout BackupItemObjectAssociations) throws { - let ownedDevice = OwnedDevice(backupItem: self, within: obvContext) - try associations.associate(ownedDevice, to: self) - } +// func restoreInstance(within obvContext: ObvContext, associations: inout BackupItemObjectAssociations) throws { +// let ownedDevice = OwnedDevice(backupItem: self, within: obvContext) +// try associations.associate(ownedDevice, to: self) +// } func restoreRelationships(associations: BackupItemObjectAssociations, within obvContext: ObvContext) throws { // Nothing do to here @@ -308,3 +423,24 @@ struct OwnedDeviceBackupItem: Codable, Hashable { return currentDevice } } + + +// For snapshot purposes + +struct OwnedDeviceSnapshotItem { + + let uid: UID + let customDeviceName: String + + private init(uid: UID, customDeviceName: String) { + self.uid = uid + self.customDeviceName = customDeviceName + } + + static func generateNewCurrentDevice(prng: PRNGService, customDeviceName: String, within obvContext: ObvContext) -> OwnedDevice { + let uid = UID.gen(with: prng) + let dummySnapshotItem = Self.init(uid: uid, customDeviceName: customDeviceName) + return .init(snapshotItem: dummySnapshotItem, within: obvContext) + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedIdentity.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedIdentity.swift index 4fcc81d1..bc6a6004 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedIdentity.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedIdentity.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -37,10 +37,9 @@ final class OwnedIdentity: NSManagedObject, ObvManagedObject, ObvErrorMaker { // MARK: Attributes - @NSManaged private(set) var apiKey: UUID // The following var is only used for filtering/searching purposes. It should *only* be set within the setter of `ownedCryptoIdentity` @NSManaged private(set) var cryptoIdentity: ObvCryptoIdentity // Unique (not enforced) - @NSManaged private(set) var isActive: Bool + @NSManaged private(set) var isActive: Bool // true iff the current device is registered on the server @NSManaged private(set) var isDeletionInProgress: Bool private(set) var ownedCryptoIdentity: ObvOwnedCryptoIdentity { get { @@ -132,16 +131,16 @@ final class OwnedIdentity: NSManagedObject, ObvManagedObject, ObvErrorMaker { } private var changedKeys = Set() - + private var ownedIdentityOnDeletion: ObvCryptoIdentity? + // MARK: - Initializer /// This initializer purpose is to create a longterm owned identity - convenience init?(apiKey: UUID, serverURL: URL, identityDetails: ObvIdentityDetails, accordingTo pkEncryptionImplemByteId: PublicKeyEncryptionImplementationByteId, and authEmplemByteId: AuthenticationImplementationByteId, keycloakState: ObvKeycloakState?, using prng: PRNGService, delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) { + convenience init?(serverURL: URL, identityDetails: ObvIdentityDetails, accordingTo pkEncryptionImplemByteId: PublicKeyEncryptionImplementationByteId, and authEmplemByteId: AuthenticationImplementationByteId, keycloakState: ObvKeycloakState?, nameForCurrentDevice: String, using prng: PRNGService, delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) { let log = OSLog(subsystem: delegateManager.logSubsystem, category: OwnedIdentity.entityName) let entityDescription = NSEntityDescription.entity(forEntityName: OwnedIdentity.entityName, in: obvContext)! self.init(entity: entityDescription, insertInto: obvContext) self.delegateManager = delegateManager - self.apiKey = apiKey // An owned identity is always active on creation. Several places within the engine assume this behaviour. self.isActive = true self.isDeletionInProgress = false @@ -150,7 +149,7 @@ final class OwnedIdentity: NSManagedObject, ObvManagedObject, ObvErrorMaker { andPublicKeyEncryptionImplementationByteId: pkEncryptionImplemByteId, using: prng) self.contactIdentities = Set() - guard let device = OwnedDevice(ownedIdentity: self, with: prng, delegateManager: delegateManager) else { + guard let device = OwnedDevice(ownedIdentity: self, name: nameForCurrentDevice, with: prng, delegateManager: delegateManager) else { os_log("Could not create a current device for the new owned identity", log: log, type: .fault) return nil } @@ -183,9 +182,7 @@ final class OwnedIdentity: NSManagedObject, ObvManagedObject, ObvErrorMaker { convenience init(backupItem: OwnedIdentityBackupItem, notificationDelegate: ObvNotificationDelegate, within obvContext: ObvContext) throws { let entityDescription = NSEntityDescription.entity(forEntityName: OwnedIdentity.entityName, in: obvContext)! self.init(entity: entityDescription, insertInto: obvContext) - self.apiKey = backupItem.apiKey - // We do *not* use the backupItem.isActive value. This information is used at the ObvIdentityManagerImplementation level, to decide whether to ask for reactivation of this owned identity or not. - self.isActive = false + self.isActive = backupItem.isActive self.isDeletionInProgress = false self.cryptoIdentity = backupItem.cryptoIdentity guard let ownedCryptoIdentity = backupItem.ownedCryptoIdentity else { @@ -198,7 +195,6 @@ final class OwnedIdentity: NSManagedObject, ObvManagedObject, ObvErrorMaker { ObvIdentityNotificationNew.newOwnedIdentityWithinIdentityManager(cryptoIdentity: backupItem.cryptoIdentity) .postOnBackgroundQueue(within: notificationDelegate) } - } @@ -214,6 +210,27 @@ final class OwnedIdentity: NSManagedObject, ObvManagedObject, ObvErrorMaker { } + private var isInsertedWhileRestoringSyncSnapshot = false + + /// Used *exclusively* during a snapshot restore for creating an instance. Relatioships are recreater in a second step. + convenience init(cryptoIdentity: ObvCryptoIdentity, snapshotNode: OwnedIdentitySyncSnapshotNode, within obvContext: ObvContext) throws { + + let entityDescription = NSEntityDescription.entity(forEntityName: OwnedIdentity.entityName, in: obvContext)! + self.init(entity: entityDescription, insertInto: obvContext) + self.isActive = true + self.isDeletionInProgress = false + self.cryptoIdentity = cryptoIdentity + guard let ownedCryptoIdentity = snapshotNode.privateIdentity?.getOwnedIdentity(cryptoIdentity: cryptoIdentity) else { + throw OwnedIdentity.makeError(message: "Could not recover owned crypto identity") + } + self.ownedCryptoIdentity = ownedCryptoIdentity + + // Prevents the sending of notifications + isInsertedWhileRestoringSyncSnapshot = true + + } + + /// When the user requests the deletion of an owned identity, a cryptographic protocol starts. The first action is to mark the owned identity for deletion before evenutally deleting it. /// /// This makes is possible to have a very responsive UI. @@ -237,27 +254,26 @@ final class OwnedIdentity: NSManagedObject, ObvManagedObject, ObvErrorMaker { extension OwnedIdentity { func updatePublishedDetailsWithNewDetails(_ newIdentityDetails: ObvIdentityDetails, delegateManager: ObvIdentityDelegateManager) throws { - guard let obvContext = self.obvContext else { - assertionFailure() - throw Self.makeError(message: "Could not find obv context") - } - try self.publishedIdentityDetails.updateWithNewIdentityDetails(newIdentityDetails, - delegateManager: delegateManager, - within: obvContext) + try self.publishedIdentityDetails.updateWithNewIdentityDetails(newIdentityDetails, delegateManager: delegateManager) } - func setAPIKey(to newApiKey: UUID, keycloakServerURL: URL?) throws { - if let currentKeycloakServerURL = keycloakServer?.serverURL { - guard currentKeycloakServerURL == keycloakServerURL else { - assertionFailure() - throw Self.makeError(message: "Error: trying to set an api key on a keycloak managed identity without specifying the keycloak server.") - } - } - self.apiKey = newApiKey + /// Returns `true` if we need to download a new profile picture + func updatePublishedDetailsWithOtherDetailsIfNewer(otherDetails: IdentityDetailsElements, delegateManager: ObvIdentityDelegateManager) throws -> Bool { + let photoDownloadNeeded = try self.publishedIdentityDetails.updateWithOtherDetailsIfNewer(otherDetails: otherDetails, delegateManager: delegateManager) + return photoDownloadNeeded } + func saveRegisteredKeycloakAPIKey(apiKey: UUID) throws { + guard self.isKeycloakManaged, let keycloakServer else { + assertionFailure() + throw ObvIdentityManagerError.ownedIdentityIsNotKeycloakManaged + } + keycloakServer.saveRegisteredKeycloakAPIKey(apiKey: apiKey) + } + + func updatePhoto(withData photoData: Data, version: Int, delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws { if self.publishedIdentityDetails.version == version { try self.publishedIdentityDetails.setOwnedIdentityPhoto(data: photoData, delegateManager: delegateManager) @@ -265,9 +281,18 @@ extension OwnedIdentity { } - func deactivate() { - isActive = false - /* After deactivating an owned identity, we must delete all devices and channels */ + func deactivateAndDeleteAllContactDevices(delegateManager: ObvIdentityDelegateManager) { + + if isActive { + isActive = false + } + + /* After deactivating an owned identity, we must delete all devices */ + + self.otherDevices.forEach { otherOwnedDevice in + try? otherOwnedDevice.deleteThisDevice(delegateManager: delegateManager) + } + self.contactIdentities.forEach { contactIdentity in contactIdentity.devices.forEach { contactDevice in try? contactDevice.deleteContactDevice() @@ -284,6 +309,62 @@ extension OwnedIdentity { } +// MARK: - Sync between owned devices + +extension OwnedIdentity { + + func processSyncAtom(_ syncAtom: ObvSyncAtom, delegateManager: ObvIdentityDelegateManager) throws { + + guard syncAtom.recipient == .identityManager else { + assertionFailure() + throw ObvIdentityManagerError.wrongSyncAtomRecipient + } + + switch syncAtom { + case .contactNickname, + .groupV1Nickname, + .groupV2Nickname, + .contactPersonalNote, + .groupV1PersonalNote, + .groupV2PersonalNote, + .ownProfileNickname, + .contactCustomHue, + .contactSendReadReceipt, + .groupV1ReadReceipt, + .groupV2ReadReceipt, + .settingDefaultSendReadReceipts, + .settingAutoJoinGroups, + .pinnedDiscussions: + throw ObvIdentityManagerError.wrongSyncAtomRecipient + case .trustContactDetails(contactCryptoId: let contactCryptoId, serializedIdentityDetailsElements: let serializedIdentityDetailsElements): + guard let contact = try ContactIdentity.get(contactIdentity: contactCryptoId.cryptoIdentity, ownedIdentity: self, delegateManager: delegateManager) else { + throw ObvIdentityManagerError.cryptoIdentityIsNotContact + } + try contact.processTrustContactDetailsSyncAtom(serializedIdentityDetailsElements: serializedIdentityDetailsElements, delegateManager: delegateManager) + case .trustGroupV1Details(groupOwner: let groupOwner, groupUid: let groupUid, serializedGroupDetailsElements: let serializedGroupDetailsElements): + guard let groupV1 = try ContactGroupJoined.get(groupUid: groupUid, groupOwnerCryptoIdentity: groupOwner.cryptoIdentity, ownedIdentity: self, delegateManager: delegateManager) else { + throw ObvIdentityManagerError.groupIsNotJoined + } + try groupV1.processTrustGroupV1DetailsSyncAtom(serializedGroupDetailsElements: serializedGroupDetailsElements, delegateManager: delegateManager) + case .trustGroupV2Details(groupIdentifier: let groupIdentifier, version: let version): + guard let encodedGroupIdentifier = ObvEncoded(withRawData: groupIdentifier), + let groupIdentifier = ObvGroupV2.Identifier(encodedGroupIdentifier) + else { + assertionFailure() + throw ObvIdentityManagerError.couldNotDecodeGroupIdentifier + } + + guard let groupV2 = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: GroupV2.Identifier(obvGroupV2Identifier: groupIdentifier), of: self, delegateManager: delegateManager) else { + throw ObvIdentityManagerError.groupDoesNotExist + } + try groupV2.processTrustGroupV2DetailsSyncAtom(version: version, delegateManager: delegateManager) + } + + } + +} + + // MARK: - Keycloak management @@ -315,7 +396,7 @@ extension OwnedIdentity { } - private func refreshCertifiedByOwnKeycloakAndTrustedDetailsForAllContacts(delegateManager: ObvIdentityDelegateManager) { + fileprivate func refreshCertifiedByOwnKeycloakAndTrustedDetailsForAllContacts(delegateManager: ObvIdentityDelegateManager) { for contact in contactIdentities { do { try contact.refreshCertifiedByOwnKeycloakAndTrustedDetails(delegateManager: delegateManager) @@ -447,19 +528,120 @@ extension OwnedIdentity { extension OwnedIdentity { - func addRemoteDeviceWith(uid: UID) throws { + func addIfNotExistRemoteDeviceWith(uid: UID, createdDuringChannelCreation: Bool) throws { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvIdentityDelegateManager.defaultLogSubsystem, category: "OwnedIdentity") os_log("The delegate manager is not set (6)", log: log, type: .fault) throw Self.makeError(message: "The delegate manager is not set (6)") } let log = OSLog(subsystem: delegateManager.logSubsystem, category: "OwnedIdentity") - guard OwnedDevice(remoteDeviceUid: uid, ownedIdentity: self, delegateManager: delegateManager) != nil else { + guard otherDevices.first(where: { $0.uid == uid }) == nil else { + // The device already exists + return + } + guard uid != currentDeviceUid else { + // Trying to add the current device as a remote device + return + } + guard OwnedDevice(remoteDeviceUid: uid, ownedIdentity: self, createdDuringChannelCreation: createdDuringChannelCreation, delegateManager: delegateManager) != nil else { + assertionFailure() os_log("Could not add a remote device", log: log, type: .fault) throw Self.makeError(message: "Could not add a remote device") } } + + func removeIfExistsOtherDeviceWith(uid: UID, delegateManager: ObvIdentityDelegateManager, flowId: FlowIdentifier) throws { + for device in otherDevices { + guard device.uid == uid else { continue } + try device.deleteThisDevice(delegateManager: delegateManager) + } + } + + + /// Returns a Boolean indicating whether the current device is part of the owned device discovery results. + func processEncryptedOwnedDeviceDiscoveryResult(_ encryptedOwnedDeviceDiscoveryResult: EncryptedData, delegateManager: ObvIdentityDelegateManager) throws -> Bool { + + let ownedDeviceDiscoveryResult = try OwnedDeviceDiscoveryResult.decrypt(encryptedOwnedDeviceDiscoveryResult: encryptedOwnedDeviceDiscoveryResult, for: self.ownedCryptoIdentity) + + // Update existing devices and add missing devices + + for device in ownedDeviceDiscoveryResult.devices { + + if let existingRemoteDevice = self.otherDevices.first(where: { $0.uid == device.uid }) { + + try existingRemoteDevice.updateThisDevice(with: device) + + } else if self.currentDevice.uid == device.uid { + + try self.currentDevice.updateThisDevice(with: device) + + } else { + + _ = OwnedDevice(remoteDeviceUid: device.uid, + ownedIdentity: self, + createdDuringChannelCreation: false, + delegateManager: delegateManager) + + } + + } + + // We don't deactivate the current device if not part of the owned device discovery. + // Instead, we notify the engine by returning a Boolean. + + let currentDeviceIsPartOfOwnedDeviceDiscoveryResult = ownedDeviceDiscoveryResult.devices.map({ $0.uid }).contains(where: { $0 == self.currentDevice.uid }) + + // Remove deactivated remote devices + + let otherDevicesToDeactivate = self.otherDevices.filter { otherDevice in + !ownedDeviceDiscoveryResult.devices.map({ $0.uid }).contains(where: { $0 == otherDevice.uid }) + } + + for otherDeviceToDeactivate in otherDevicesToDeactivate { + try otherDeviceToDeactivate.deleteThisDevice(delegateManager: delegateManager) + } + + // We don't care about the ownedDeviceDiscoveryResult.isMultidevice Boolean + + return currentDeviceIsPartOfOwnedDeviceDiscoveryResult + } + + + func decryptEncryptedOwnedDeviceDiscoveryResult(_ encryptedOwnedDeviceDiscoveryResult: EncryptedData) throws -> OwnedDeviceDiscoveryResult { + let ownedDeviceDiscoveryResult = try OwnedDeviceDiscoveryResult.decrypt(encryptedOwnedDeviceDiscoveryResult: encryptedOwnedDeviceDiscoveryResult, for: self.ownedCryptoIdentity) + return ownedDeviceDiscoveryResult + } + + + func decryptProtocolCiphertext(_ ciphertext: EncryptedData) throws -> Data { + + guard let cleartext = PublicKeyEncryption.decrypt(ciphertext, for: ownedCryptoIdentity) else { + assertionFailure() + throw Self.makeError(message: "Could not decrypt encrypted payload") + } + + return cleartext + } + + + func getInfosAboutOwnedDevice(withUid uid: UID) throws -> (name: String?, expirationDate: Date?, latestRegistrationDate: Date?) { + if currentDevice.uid == uid { + return currentDevice.infos + } else if let otherRemoteDevice = otherDevices.first(where: { $0.uid == uid }) { + return otherRemoteDevice.infos + } else { + assertionFailure() + throw Self.makeError(message: "Could not find other remote device") + } + } + + + func setCurrentDeviceNameAfterBackupRestore(newName: String) { + currentDevice.setCurrentDeviceNameAfterBackupRestore(newName: newName) + } + + } @@ -591,7 +773,6 @@ extension OwnedIdentity { struct Predicate { enum Key: String { // Attributes - case apiKey = "apiKey" case cryptoIdentity = "cryptoIdentity" case isActive = "isActive" case isDeletionInProgress = "isDeletionInProgress" @@ -609,12 +790,20 @@ extension OwnedIdentity { static func withCryptoIdentity(_ ownedCryptoIdentity: ObvCryptoIdentity) -> NSPredicate { NSPredicate(format: "%K == %@", Key.cryptoIdentity.rawValue, ownedCryptoIdentity) } + static func isKeycloakManaged(_ isKeycloakManaged: Bool) -> NSPredicate { + if isKeycloakManaged { + return NSPredicate(withNonNilValueForKey: Key.keycloakServer) + } else { + return NSPredicate(withNilValueForKey: Key.keycloakServer) + } + } } @nonobjc class func fetchRequest() -> NSFetchRequest { return NSFetchRequest(entityName: entityName) } + static func get(_ identity: ObvCryptoIdentity, delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws -> OwnedIdentity? { let request: NSFetchRequest = OwnedIdentity.fetchRequest() request.predicate = Predicate.withCryptoIdentity(identity) @@ -624,20 +813,35 @@ extension OwnedIdentity { return item } + static func getAll(delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws -> [OwnedIdentity] { let request: NSFetchRequest = OwnedIdentity.fetchRequest() + request.propertiesToFetch = [ + Predicate.Key.cryptoIdentity.rawValue, + Predicate.Key.ownedCryptoIdentity.rawValue, + ] let items = try obvContext.fetch(request) return items.map { $0.delegateManager = delegateManager; return $0 } } + - static func getApiKey(_ identity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> UUID? { + static func getAllCryptoIds(within context: NSManagedObjectContext) throws -> Set { let request: NSFetchRequest = OwnedIdentity.fetchRequest() - request.predicate = Predicate.withCryptoIdentity(identity) - request.fetchLimit = 1 - let item = try obvContext.fetch(request).first - return item?.apiKey + request.propertiesToFetch = [ + Predicate.Key.cryptoIdentity.rawValue, + ] + let items = try context.fetch(request) + return Set(items.map(\.cryptoIdentity)) } + + static func getAllKeycloakManaged(delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws -> [OwnedIdentity] { + let request: NSFetchRequest = OwnedIdentity.fetchRequest() + request.predicate = Predicate.isKeycloakManaged(true) + let items = try obvContext.fetch(request) + return items.map { $0.delegateManager = delegateManager; return $0 } + } + } @@ -647,6 +851,7 @@ extension OwnedIdentity { override func willSave() { super.willSave() + self.ownedIdentityOnDeletion = cryptoIdentity if !isInserted { changedKeys = Set(self.changedValues().keys) } @@ -657,6 +862,14 @@ extension OwnedIdentity { defer { changedKeys.removeAll() + isInsertedWhileRestoringSyncSnapshot = false + } + + guard !isInsertedWhileRestoringSyncSnapshot else { + assert(isInserted) + let log = OSLog.init(subsystem: ObvIdentityDelegateManager.defaultLogSubsystem, category: String(describing: Self.self)) + os_log("Insertion of an OwnedIdentity during a snapshot restore --> we don't send any notification", log: log, type: .info) + return } guard let delegateManager = delegateManager else { @@ -676,10 +889,18 @@ extension OwnedIdentity { if isInserted { os_log("A new owned identity was inserted", log: log, type: .debug) + if self.isActive { + guard let flowId = obvContext?.flowId else { assertionFailure(); return } + ObvIdentityNotificationNew.newActiveOwnedIdentity(ownedCryptoIdentity: self.ownedCryptoIdentity.getObvCryptoIdentity(), flowId: flowId) + .postOnBackgroundQueue(within: notificationDelegate) + } } else if isDeleted { - os_log("An owned identity was deleted", log: log, type: .debug) - ObvIdentityNotificationNew.ownedIdentityWasDeleted - .postOnBackgroundQueue(within: notificationDelegate) + assert(ownedIdentityOnDeletion != nil) + if let ownedIdentityOnDeletion { + os_log("An owned identity was deleted", log: log, type: .debug) + ObvIdentityNotificationNew.ownedIdentityWasDeleted(ownedIdentity: ownedIdentityOnDeletion) + .postOnBackgroundQueue(within: notificationDelegate) + } } if changedKeys.contains(Predicate.Key.isActive.rawValue) && !isDeleted { @@ -721,8 +942,7 @@ extension OwnedIdentity { var backupItem: OwnedIdentityBackupItem { let contactGroupsOwned = contactGroups.filter { $0 is ContactGroupOwned } as! Set - return OwnedIdentityBackupItem(apiKey: apiKey, - ownedCryptoIdentity: ownedCryptoIdentity, + return OwnedIdentityBackupItem(ownedCryptoIdentity: ownedCryptoIdentity, contactIdentities: contactIdentities, currentDevice: currentDevice, otherDevices: otherDevices, @@ -738,7 +958,6 @@ extension OwnedIdentity { struct OwnedIdentityBackupItem: Codable, Hashable, ObvErrorMaker { - fileprivate let apiKey: UUID fileprivate let privateIdentity: ObvOwnedCryptoIdentityPrivateBackupItem let cryptoIdentity: ObvCryptoIdentity fileprivate let contactIdentities: Set @@ -754,8 +973,7 @@ struct OwnedIdentityBackupItem: Codable, Hashable, ObvErrorMaker { return privateIdentity.getOwnedIdentity(cryptoIdentity: cryptoIdentity) } - fileprivate init(apiKey: UUID, ownedCryptoIdentity: ObvOwnedCryptoIdentity, contactIdentities: Set, currentDevice: OwnedDevice, otherDevices: Set, publishedIdentityDetails: OwnedIdentityDetailsPublished, contactGroupsOwned: Set, contactGroupsV2: Set, keycloakServer: KeycloakServer?, isActive: Bool) { - self.apiKey = apiKey + fileprivate init(ownedCryptoIdentity: ObvOwnedCryptoIdentity, contactIdentities: Set, currentDevice: OwnedDevice, otherDevices: Set, publishedIdentityDetails: OwnedIdentityDetailsPublished, contactGroupsOwned: Set, contactGroupsV2: Set, keycloakServer: KeycloakServer?, isActive: Bool) { self.cryptoIdentity = ownedCryptoIdentity.getObvCryptoIdentity() self.privateIdentity = ownedCryptoIdentity.privateBackupItem self.contactIdentities = Set(contactIdentities.map { $0.backupItem }) @@ -767,7 +985,6 @@ struct OwnedIdentityBackupItem: Codable, Hashable, ObvErrorMaker { } enum CodingKeys: String, CodingKey { - case apiKey = "api_key" case privateIdentity = "private_identity" case cryptoIdentity = "owned_identity" case contactIdentities = "contact_identities" @@ -780,7 +997,6 @@ struct OwnedIdentityBackupItem: Codable, Hashable, ObvErrorMaker { func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) - try container.encode(apiKey, forKey: .apiKey) try container.encode(cryptoIdentity.getIdentity(), forKey: .cryptoIdentity) try container.encode(privateIdentity, forKey: .privateIdentity) try container.encode(contactIdentities, forKey: .contactIdentities) @@ -798,7 +1014,6 @@ struct OwnedIdentityBackupItem: Codable, Hashable, ObvErrorMaker { init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) - self.apiKey = try values.decode(UUID.self, forKey: .apiKey) self.privateIdentity = try values.decode(ObvOwnedCryptoIdentityPrivateBackupItem.self, forKey: .privateIdentity) let identity = try values.decode(Data.self, forKey: .cryptoIdentity) guard let cryptoIdentity = ObvCryptoIdentity(from: identity) else { @@ -913,3 +1128,295 @@ struct OwnedIdentityBackupItem: Codable, Hashable, ObvErrorMaker { } } + + + +// MARK: - For snapshots + +extension OwnedIdentity { + + var syncSnapshotNode: OwnedIdentitySyncSnapshotNode { + .init(ownedCryptoIdentity: ownedCryptoIdentity, + contactIdentities: contactIdentities, + publishedIdentityDetails: publishedIdentityDetails, + keycloakServer: keycloakServer, + contactGroups: contactGroups, + contactGroupsV2: contactGroupsV2) + } + +} + + +struct OwnedIdentitySyncSnapshotNode: ObvSyncSnapshotNode, Codable { + + private let domain: Set + fileprivate let privateIdentity: ObvOwnedCryptoIdentityPrivateSnapshotItem? + private let publishedIdentityDetails: OwnedIdentityDetailsPublishedSyncSnapshotNode? + private let keycloakServer: KeycloakServerSnapshotNode? + private let contacts: [ObvCryptoIdentity: ContactIdentitySyncSnapshotNode] + private let groupsV1: [GroupV1Identifier: ContactGroupSyncSnapshotNode] + private let groupsV2: [GroupV2.Identifier: ContactGroupV2SyncSnapshotNode] + + let id = Self.generateIdentifier() + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case privateIdentity = "private_identity" + case publishedIdentityDetails = "published_details" + case keycloak = "keycloak" + case contacts = "contacts" + case groups = "groups" + case groups2 = "groups2" + case domain = "domain" + } + + private static let defaultDomain = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + + init(ownedCryptoIdentity: ObvOwnedCryptoIdentity, contactIdentities: Set, publishedIdentityDetails: OwnedIdentityDetailsPublished, keycloakServer: KeycloakServer?, contactGroups: Set, contactGroupsV2: Set) { + self.privateIdentity = ownedCryptoIdentity.snapshotItem + self.publishedIdentityDetails = publishedIdentityDetails.snapshotNode + self.keycloakServer = keycloakServer?.snapshotNode + // contacts + do { + let pairs: [(ObvCryptoIdentity, ContactIdentitySyncSnapshotNode)] = contactIdentities + .compactMap { contact in + guard let cryptoIdentity = contact.cryptoIdentity else { assertionFailure(); return nil } + return (cryptoIdentity, contact.syncSnapshot) + } + self.contacts = Dictionary(pairs, uniquingKeysWith: { (first, _) in assertionFailure(); return first }) + } + // groupsV1 + do { + let pairs: [(GroupV1Identifier, ContactGroupSyncSnapshotNode)] = contactGroups.compactMap { + guard let groupV1Identifier = $0.groupV1Identifier else { assertionFailure(); return nil } + return (groupV1Identifier, $0.syncSnapshot) + } + self.groupsV1 = Dictionary(pairs, uniquingKeysWith: { (first, _) in assertionFailure(); return first }) + } + // groupsV2 + do { + let keysAndValues: [(GroupV2.Identifier, ContactGroupV2SyncSnapshotNode)] = contactGroupsV2.compactMap { group in + guard let groupIdentifier = group.groupIdentifier else { assertionFailure(); return nil } + guard let snapshotNode = group.snapshotNode else { assertionFailure(); return nil } + return (groupIdentifier, snapshotNode) + } + self.groupsV2 = Dictionary(keysAndValues, uniquingKeysWith: { (first, _) in assertionFailure(); return first }) + } + self.domain = Self.defaultDomain + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(domain, forKey: .domain) + try container.encode(privateIdentity, forKey: .privateIdentity) + try container.encode(publishedIdentityDetails, forKey: .publishedIdentityDetails) + try container.encodeIfPresent(keycloakServer, forKey: .keycloak) + // Encode the contacts using the ObvCryptoIdentity as a JSON key + do { + let dict: [String: ContactIdentitySyncSnapshotNode] = .init(contacts, keyMapping: { $0.getIdentity().base64EncodedString() }, valueMapping: { $0 }) + try container.encode(dict, forKey: .contacts) + } + // Encode groupsV1 using the GroupV1Identifier as a JSON key + do { + let dict: [String: ContactGroupSyncSnapshotNode] = .init(groupsV1, keyMapping: { $0.description }, valueMapping: { $0 }) + try container.encode(dict, forKey: .groups) + } + // Encode groupsV2 using the GroupV2.Identifier as a JSON key + do { + let dict: [String: ContactGroupV2SyncSnapshotNode] = .init(groupsV2, keyMapping: { $0.description }, valueMapping: { $0 }) + try container.encode(dict, forKey: .groups2) + } + } + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + self.domain = try values.decode(Set.self, forKey: .domain) + self.privateIdentity = try values.decodeIfPresent(ObvOwnedCryptoIdentityPrivateSnapshotItem.self, forKey: .privateIdentity) + self.publishedIdentityDetails = try values.decodeIfPresent(OwnedIdentityDetailsPublishedSyncSnapshotNode.self, forKey: .publishedIdentityDetails) + self.keycloakServer = try values.decodeIfPresent(KeycloakServerSnapshotNode.self, forKey: .keycloak) + // Decode contacts (the keys are the contact identities) + do { + let dict = try values.decodeIfPresent([String: ContactIdentitySyncSnapshotNode].self, forKey: .contacts) ?? [:] + self.contacts = Dictionary(dict, keyMapping: { $0.base64EncodedToData?.identityToObvCryptoIdentity }, valueMapping: { $0 }) + } + // Decode groupsV1 (the keys are GroupV1Identifier) + do { + let dict = try values.decodeIfPresent([String: ContactGroupSyncSnapshotNode].self, forKey: .groups) ?? [:] + self.groupsV1 = Dictionary(dict, keyMapping: { GroupV1Identifier($0) }, valueMapping: { $0 }) + } + // Decode groupsV2 (the keys are GroupV2.Identifier) + do { + let dict = try values.decodeIfPresent([String: ContactGroupV2SyncSnapshotNode].self, forKey: .groups2) ?? [:] + self.groupsV2 = Dictionary(dict, keyMapping: { GroupV2.Identifier($0) }, valueMapping: { $0 }) + } + } + + + func restoreInstance(cryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext, associations: inout SnapshotNodeManagedObjectAssociations) throws { + + guard domain.contains(.privateIdentity) && domain.contains(.publishedIdentityDetails) else { + assertionFailure() + throw ObvError.tryingToRestoreIncompleteNode + } + + let ownedIdentity = try OwnedIdentity(cryptoIdentity: cryptoIdentity, snapshotNode: self, within: obvContext) + try associations.associate(ownedIdentity, to: self) + + let ownedCryptoIdentity = ownedIdentity.cryptoIdentity + let ownedIdentityIdentity = ownedIdentity.cryptoIdentity.getIdentity() + + if domain.contains(.contacts) { + try contacts.forEach { (cryptoIdentity, contactNode) in + try contactNode.restoreInstance(within: obvContext, contactCryptoId: cryptoIdentity, ownedIdentityIdentity: ownedIdentityIdentity, associations: &associations) + } + } + + guard let publishedIdentityDetails else { + assertionFailure() + throw ObvError.publishedIdentityDetailsAreNil + } + + try publishedIdentityDetails.restoreInstance(within: obvContext, associations: &associations) + + if domain.contains(.groups) { + try groupsV1.forEach { (groupV1Identifier, groupV1Node) in + try groupV1Node.restoreInstance(within: obvContext, ownedCryptoIdentity: ownedCryptoIdentity, groupV1Identifier: groupV1Identifier, associations: &associations) + } + } + + if domain.contains(.groups2) { + try groupsV2.forEach { (groupIdentifier, groupV2Node) in + try groupV2Node.restoreInstance(within: obvContext, groupIdentifier: groupIdentifier, ownedIdentity: ownedIdentityIdentity, associations: &associations) + } + } + + if domain.contains(.keycloak) { + try keycloakServer?.restoreInstance(within: obvContext, associations: &associations, rawOwnedIdentity: ownedIdentityIdentity) + } + + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, prng: PRNGService, customDeviceName: String, delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws { + + // Fetch all core data instances + + let ownedIdentity: OwnedIdentity = try associations.getObject(associatedTo: self, within: obvContext) + + let contactGroupsV1: [GroupV1Identifier: ContactGroup] = try .init(groupsV1, keyMapping: { $0 }, valueMapping: { try associations.getObject(associatedTo: $0, within: obvContext) }) + + let contactGroupsV2: [GroupV2.Identifier: ContactGroupV2] = try .init(groupsV2, keyMapping: { $0 }, valueMapping: { try associations.getObject(associatedTo: $0, within: obvContext) }) + + let contactIdentities: [ObvCryptoIdentity: ContactIdentity] = try .init(contacts, keyMapping: { $0 }, valueMapping: { try associations.getObject(associatedTo: $0, within: obvContext) }) + + let currentDevice = OwnedDeviceSnapshotItem.generateNewCurrentDevice(prng: prng, customDeviceName: customDeviceName, within: obvContext) + + guard let publishedIdentityDetails else { + assertionFailure() + throw ObvError.tryingToRestoreIncompleteNode + } + + let ownedIdentityDetailsPublished: OwnedIdentityDetailsPublished = try associations.getObject(associatedTo: publishedIdentityDetails, within: obvContext) + + let keycloakServer: KeycloakServer? = try associations.getObjectIfPresent(associatedTo: self.keycloakServer, within: obvContext) + + // Restore the relationships of this instance + + ownedIdentity.restoreRelationships( + contactGroups: Set(contactGroupsV1.values), + contactGroupsV2: Set(contactGroupsV2.values), + contactIdentities: Set(contactIdentities.values), + currentDevice: currentDevice, + publishedIdentityDetails: ownedIdentityDetailsPublished, + keycloakServer: keycloakServer) + + // Restore the relationships of this instance relationships + + try self.contacts.forEach { (contactCryptoIdentity, contactNode) in + try contactNode.restoreRelationships(associations: associations, within: obvContext) + } + + try self.publishedIdentityDetails?.restoreRelationships(associations: associations, within: obvContext) + + try self.groupsV1.forEach { (groupV1Identifier, groupV1Node) in + try groupV1Node.restoreRelationships(associations: associations, groupV1Identifier: groupV1Identifier, contactIdentities: contactIdentities, within: obvContext) + } + + try self.groupsV2.forEach { (groupIdentifier, groupV2Node) in + try groupV2Node.restoreRelationships(associations: associations, ownedIdentity: ownedIdentity.cryptoIdentity.getIdentity(), contactIdentities: contactIdentities, within: obvContext) + } + + try self.keycloakServer?.restoreRelationships(associations: associations, within: obvContext) + + // If there is a photoServerLabel within the published details, we create an instance of IdentityServerUserData + + if let photoServerLabel = publishedIdentityDetails.photoServerLabel { + _ = IdentityServerUserData.createForOwnedIdentityDetails(ownedIdentity: ownedIdentity.cryptoIdentity, + label: photoServerLabel, + within: obvContext) + } + + // We scan each owned group. For each, of there is a photoServerLabel within the published details, we create an instance of IdentityServerUserData + + for contactGroup in contactGroupsV1.values { + guard let ownedGroup = contactGroup as? ContactGroupOwned else { continue } + guard let photoServerLabel = ownedGroup.publishedDetails.photoServerLabel else { continue } + _ = GroupServerUserData.createForOwnedGroupDetails(ownedIdentity: ownedIdentity.cryptoIdentity, + label: photoServerLabel, + groupUid: ownedGroup.groupUid, + within: obvContext) + } + + // We scan each group V2 for which we are an administrator. If we are in charge of the profile picture (i.e., we are the uploader of the profile picture), we create a GroupV2ServerUserData entry + + for group in contactGroupsV2.values { + guard let serverPhotoInfo = group.trustedDetails?.serverPhotoInfo, let groupIdentifier = group.groupIdentifier else { continue } + if serverPhotoInfo.identity == ownedIdentity.cryptoIdentity { + _ = try? GroupV2ServerUserData.getOrCreateIfRequiredForAdministratedGroupV2Details( + ownedIdentity: ownedIdentity.cryptoIdentity, + label: serverPhotoInfo.photoServerKeyAndLabel.label, + groupIdentifier: groupIdentifier, + within: obvContext) + } + } + + // Refresh the keycloak badges + + ownedIdentity.refreshCertifiedByOwnKeycloakAndTrustedDetailsForAllContacts(delegateManager: delegateManager) + + } + + enum ObvError: Error { + case duplicateContact + case tryingToRestoreIncompleteNode + case mismatchBetweenDomainAndValues + case publishedIdentityDetailsAreNil + } + +} + + + + +// MARK: - Private Helpers + +private extension String { + + var base64EncodedToData: Data? { + guard let data = Data(base64Encoded: self) else { assertionFailure(); return nil } + return data + } + +} + + +private extension Data { + + var identityToObvCryptoIdentity: ObvCryptoIdentity? { + guard let cryptoIdentity = ObvCryptoIdentity(from: self) else { assertionFailure(); return nil } + return cryptoIdentity + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedIdentityDetailsPublished.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedIdentityDetailsPublished.swift index f8d328fc..3e34b50c 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedIdentityDetailsPublished.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedIdentityDetailsPublished.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -68,9 +68,14 @@ final class OwnedIdentityDetailsPublished: NSManagedObject, ObvManagedObject { } func getPhotoURL(identityPhotosDirectory: URL) -> URL? { + guard let url = getRawPhotoURL(identityPhotosDirectory: identityPhotosDirectory) else { return nil } + guard FileManager.default.fileExists(atPath: url.path) else { assertionFailure(); return nil } + return url + } + + private func getRawPhotoURL(identityPhotosDirectory: URL) -> URL? { guard let photoFilename = photoFilename else { return nil } let url = identityPhotosDirectory.appendingPathComponent(photoFilename) - guard FileManager.default.fileExists(atPath: url.path) else { assertionFailure(); return nil } return url } @@ -84,10 +89,12 @@ final class OwnedIdentityDetailsPublished: NSManagedObject, ObvManagedObject { private var ownedCryptoIdOnDeletion: ObvCryptoIdentity? var photoServerKeyAndLabel: PhotoServerKeyAndLabel? { - guard let photoServerKeyEncoded = self.photoServerKeyEncoded else { return nil } - let obvEncoded = ObvEncoded(withRawData: photoServerKeyEncoded)! - guard let key = try? AuthenticatedEncryptionKeyDecoder.decode(obvEncoded) else { return nil } - guard let label = photoServerLabel else { return nil } + guard let photoServerKeyEncoded = self.photoServerKeyEncoded, + let obvEncoded = ObvEncoded(withRawData: photoServerKeyEncoded), + let key = try? AuthenticatedEncryptionKeyDecoder.decode(obvEncoded), + let label = photoServerLabel else { + return nil + } return PhotoServerKeyAndLabel(key: key, label: label) } @@ -137,6 +144,22 @@ final class OwnedIdentityDetailsPublished: NSManagedObject, ObvManagedObject { } + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreater in a second step + fileprivate convenience init(snapshotNode: OwnedIdentityDetailsPublishedSyncSnapshotNode, with obvContext: ObvContext) throws { + let entityDescription = NSEntityDescription.entity(forEntityName: OwnedIdentityDetailsPublished.entityName, in: obvContext)! + self.init(entity: entityDescription, insertInto: obvContext) + self.photoServerKeyEncoded = snapshotNode.photoServerKeyEncoded + self.photoServerLabel = snapshotNode.photoServerLabel + self.photoFilename = nil // This is ok + guard let serializedIdentityCoreDetails = snapshotNode.serializedIdentityCoreDetails, + let version = snapshotNode.version else { + throw OwnedIdentityDetailsPublishedSyncSnapshotNode.ObvError.tryingToRestoreIncompleteSnapshot + } + self.serializedIdentityCoreDetails = serializedIdentityCoreDetails + self.version = version + } + + func delete(delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws { self.delegateManagerOnDeletion = delegateManager self.ownedCryptoIdOnDeletion = ownedIdentity?.cryptoIdentity @@ -230,7 +253,7 @@ extension OwnedIdentityDetailsPublished { } - func updateWithNewIdentityDetails(_ newIdentityDetails: ObvIdentityDetails, delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws { + func updateWithNewIdentityDetails(_ newIdentityDetails: ObvIdentityDetails, delegateManager: ObvIdentityDelegateManager) throws { var detailsWereUpdated = false let currentCoreDetails = self.getIdentityDetails(identityPhotosDirectory: delegateManager.identityPhotosDirectory).coreDetails let newCoreDetails = newIdentityDetails.coreDetails @@ -249,7 +272,52 @@ extension OwnedIdentityDetailsPublished { self.version += 1 } } + + + /// Returns `true` if we need to download a new profile picture + func updateWithOtherDetailsIfNewer(otherDetails: IdentityDetailsElements, delegateManager: ObvIdentityDelegateManager) throws -> Bool { + + // first, check the received details are newer than our own details + + guard otherDetails.version > self.version else { + return false + } + + // The other details are more recent -> update the current details + + let currentCoreDetails = self.getIdentityDetails(identityPhotosDirectory: delegateManager.identityPhotosDirectory).coreDetails + if otherDetails.coreDetails != currentCoreDetails { + self.serializedIdentityCoreDetails = try otherDetails.coreDetails.jsonEncode() + } + let photoDownloadNeeded: Bool + if otherDetails.photoServerKeyAndLabel != self.photoServerKeyAndLabel { + // The current photoServerKeyAndLabel must be discarded + if let newPhotoServerKeyAndLabel = otherDetails.photoServerKeyAndLabel { + // We have new photoServerKeyAndLabel. We keep them. + // We will request a download of the corresponding photo (for now, we keep the old one, it will soon be replaced) + set(photoServerKeyAndLabel: newPhotoServerKeyAndLabel) + photoDownloadNeeded = true + } else { + // The new photoServerKeyAndLabel are nil, meaning we should remove the current one and remove the photo + self.photoServerKeyEncoded = nil + self.labelToDelete = self.photoServerLabel + notificationRelatedChanges.insert(.photoServerLabel) + self.photoServerLabel = nil + _ = try setOwnedIdentityPhoto(with: nil, delegateManager: delegateManager) + photoDownloadNeeded = false + } + } else { + // The new photoServerKeyAndLabel are identical to the ones we have + photoDownloadNeeded = false + } + + self.version = otherDetails.version + + return photoDownloadNeeded + } + + func set(photoServerKeyAndLabel: PhotoServerKeyAndLabel) { self.photoServerKeyEncoded = photoServerKeyAndLabel.key.obvEncode().rawData self.labelToDelete = self.photoServerLabel @@ -278,6 +346,9 @@ extension OwnedIdentityDetailsPublished { static var withoutPhotoFilename: NSPredicate { NSPredicate(withNilValueForKey: Key.photoFilename) } + static var withPhotoFilename: NSPredicate { + NSPredicate(withNonNilValueForKey: Key.photoFilename) + } static var withPhotoServerKey: NSPredicate { NSPredicate(withNonNilValueForKey: Key.photoServerKeyEncoded) } @@ -295,6 +366,23 @@ extension OwnedIdentityDetailsPublished { } } + + static func getInfosAboutOwnedIdentitiesHavingPhotoFilename(identityPhotosDirectory: URL, within obvContext: ObvContext) throws -> [(ownedCryptoId: ObvCryptoIdentity, ownedIdentityDetailsElements: IdentityDetailsElements, photoURL: URL)] { + let request: NSFetchRequest = OwnedIdentityDetailsPublished.fetchRequest() + request.predicate = Predicate.withPhotoFilename + let items = try obvContext.fetch(request) + let results: [(ownedCryptoId: ObvCryptoIdentity, ownedIdentityDetailsElements: IdentityDetailsElements, photoURL: URL)] = items.compactMap { details in + guard let ownedCryptoId = details.ownedIdentity?.cryptoIdentity, + let photoURL = details.getRawPhotoURL(identityPhotosDirectory: identityPhotosDirectory) else { + return nil + } + let ownedIdentityDetailsElements = details.getIdentityDetailsElements(identityPhotosDirectory: identityPhotosDirectory) + return (ownedCryptoId, ownedIdentityDetailsElements, photoURL) + } + return results + } + + static func getAllWithMissingPhotoFilename(within obvContext: ObvContext) throws -> [OwnedIdentityDetailsPublished] { let request: NSFetchRequest = OwnedIdentityDetailsPublished.fetchRequest() request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ @@ -498,3 +586,126 @@ struct OwnedIdentityDetailsPublishedBackupItem: Codable, Hashable { } } + + +// MARK: - For snapshot purposes + +extension OwnedIdentityDetailsPublished { + + var snapshotNode: OwnedIdentityDetailsPublishedSyncSnapshotNode { + return OwnedIdentityDetailsPublishedSyncSnapshotNode(serializedIdentityCoreDetails: serializedIdentityCoreDetails, + photoServerKeyEncoded: photoServerKeyEncoded, + photoServerLabel: photoServerLabel, + version: version) + } + +} + + +struct OwnedIdentityDetailsPublishedSyncSnapshotNode: ObvSyncSnapshotNode { + + private let domain: Set + fileprivate let serializedIdentityCoreDetails: Data? + fileprivate let photoServerKeyEncoded: Data? + let photoServerLabel: UID? + fileprivate let version: Int? + + let id = Self.generateIdentifier() + + private static let defaultDomain = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + // Attributes inherited from OwnedIdentityDetails + case serializedIdentityCoreDetails = "serialized_details" + // Local attributes + case photoServerKeyEncoded = "photo_server_key" + case photoServerLabel = "photo_server_label" + case version = "version" + // Domain + case domain = "domain" + } + + + fileprivate init(serializedIdentityCoreDetails: Data, photoServerKeyEncoded: Data?, photoServerLabel: UID?, version: Int) { + self.domain = Self.defaultDomain + self.serializedIdentityCoreDetails = serializedIdentityCoreDetails + self.photoServerKeyEncoded = photoServerKeyEncoded + self.photoServerLabel = photoServerLabel + self.version = version + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + // Domain + try container.encode(domain, forKey: .domain) + // Attributes inherited from OwnedIdentityDetails + if let serializedIdentityCoreDetails { + guard let serializedIdentityCoreDetailsAsString = String(data: serializedIdentityCoreDetails, encoding: .utf8) else { + throw ObvError.couldNotSerializeCoreDetails + } + try container.encode(serializedIdentityCoreDetailsAsString, forKey: .serializedIdentityCoreDetails) + } + // Local attributes + try container.encodeIfPresent(photoServerKeyEncoded, forKey: .photoServerKeyEncoded) + try container.encodeIfPresent(photoServerLabel?.raw, forKey: .photoServerLabel) + try container.encode(version, forKey: .version) + } + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + + // Attributes inherited from OwnedIdentityDetails + + if let serializedIdentityCoreDetailsAsString = try values.decodeIfPresent(String.self, forKey: .serializedIdentityCoreDetails) { + guard let serializedIdentityCoreDetailsAsData = serializedIdentityCoreDetailsAsString.data(using: .utf8) else { + throw ObvError.couldNotDeserializeCoreDetails + } + self.serializedIdentityCoreDetails = serializedIdentityCoreDetailsAsData + } else { + self.serializedIdentityCoreDetails = nil + } + + if let photoServerKeyEncoded = try? values.decodeIfPresent(Data.self, forKey: .photoServerKeyEncoded), + let photoServerLabelAsData = try? values.decodeIfPresent(Data.self, forKey: .photoServerLabel), + let photoServerLabelAsUID = UID(uid: photoServerLabelAsData) { + self.photoServerKeyEncoded = photoServerKeyEncoded + self.photoServerLabel = photoServerLabelAsUID + } else { + assert(!values.allKeys.contains(where: { $0 == .photoServerKeyEncoded }), "The key is present, but we did not manage to decode the value") + assert(!values.allKeys.contains(where: { $0 == .photoServerLabel }), "The key is present, but we did not manage to decode the value") + self.photoServerKeyEncoded = nil + self.photoServerLabel = nil + } + + self.version = try values.decodeIfPresent(Int.self, forKey: .version) + } + + + func restoreInstance(within obvContext: ObvContext, associations: inout SnapshotNodeManagedObjectAssociations) throws { + guard domain.contains(.serializedIdentityCoreDetails) && domain.contains(.version) else { + throw ObvError.tryingToRestoreIncompleteSnapshot + } + let ownedIdentityDetailsPublished = try OwnedIdentityDetailsPublished(snapshotNode: self, with: obvContext) + try associations.associate(ownedIdentityDetailsPublished, to: self) + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, within obvContext: ObvContext) throws { + // Nothing to do here + } + + + enum ObvError: Error { + case tryingToRestoreIncompleteSnapshot + case couldNotSerializeCoreDetails + case couldNotDeserializeCoreDetails + case couldNotDeserializePhotoServerLabel + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedIdentityMaskingUID.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedIdentityMaskingUID.swift index 83449840..378cf98d 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedIdentityMaskingUID.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/OwnedIdentityMaskingUID.swift @@ -26,7 +26,7 @@ import ObvMetaManager import OlvidUtils @objc(OwnedIdentityMaskingUID) -final class OwnedIdentityMaskingUID: NSManagedObject, ObvManagedObject { +final class OwnedIdentityMaskingUID: NSManagedObject, ObvManagedObject, ObvErrorMaker { // MARK: Internal constants @@ -34,7 +34,7 @@ final class OwnedIdentityMaskingUID: NSManagedObject, ObvManagedObject { private static let ownedIdentityKey = "ownedIdentity" private static let maskingUIDKey = "maskingUID" - private static let errorDomain = "OwnedIdentityMaskingUID" + internal static let errorDomain = "OwnedIdentityMaskingUID" private static func makeError(message: String) -> Error { NSError(domain: errorDomain, code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } private func makeError(message: String) -> Error { NSError(domain: OwnedIdentityMaskingUID.errorDomain, code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } @@ -61,11 +61,11 @@ final class OwnedIdentityMaskingUID: NSManagedObject, ObvManagedObject { // MARK: - Initializer - private convenience init(ownedIdentity: OwnedIdentity, prng: PRNG) throws { + private convenience init(ownedIdentity: OwnedIdentity, pushToken: Data) throws { guard let obvContext = ownedIdentity.obvContext else { throw OwnedIdentityMaskingUID.makeError(message: "Coud not find ObvContext within the owned identity instance (1)") } let entityDescription = NSEntityDescription.entity(forEntityName: OwnedIdentityMaskingUID.entityName, in: obvContext)! self.init(entity: entityDescription, insertInto: obvContext) - self.maskingUID = UID.gen(with: prng) + self.maskingUID = try Self.generateDeterministricUID(ownedCryptoId: ownedIdentity.cryptoIdentity, pushToken: pushToken) self.ownedIdentity = ownedIdentity } @@ -80,7 +80,7 @@ extension OwnedIdentityMaskingUID { } - static func getOrCreate(for ownedIdentity: OwnedIdentity, prng: PRNG) throws -> UID { + static func getOrCreate(for ownedIdentity: OwnedIdentity, pushToken: Data) throws -> UID { guard let obvContext = ownedIdentity.obvContext else { throw makeError(message: "Could not find ObvContext within the owned identity instance") } @@ -89,9 +89,13 @@ extension OwnedIdentityMaskingUID { request.fetchLimit = 1 let item: OwnedIdentityMaskingUID if let _item = try obvContext.fetch(request).first { + let newMaskingUID = try generateDeterministricUID(ownedCryptoId: ownedIdentity.cryptoIdentity, pushToken: pushToken) + if _item.maskingUID != newMaskingUID { + _item.maskingUID = newMaskingUID + } item = _item } else { - item = try OwnedIdentityMaskingUID(ownedIdentity: ownedIdentity, prng: prng) + item = try .init(ownedIdentity: ownedIdentity, pushToken: pushToken) } return item.maskingUID } @@ -105,4 +109,13 @@ extension OwnedIdentityMaskingUID { return item?.ownedIdentity } + + private static func generateDeterministricUID(ownedCryptoId: ObvCryptoIdentity, pushToken: Data) throws -> UID { + let seedData = Data([ownedCryptoId.getIdentity(), pushToken].joined()) + guard let seed = Seed(with: seedData) else { assertionFailure(); throw Self.makeError(message: "Could not generate seed")} + let prng = ObvCryptoSuite.sharedInstance.concretePRNG().init(with: seed) + return UID.gen(with: prng) + } + + } diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/PendingGroupMember.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/PendingGroupMember.swift index 9bf36c53..c13930c6 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/PendingGroupMember.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/PendingGroupMember.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -79,7 +79,7 @@ final class PendingGroupMember: NSManagedObject, ObvManagedObject { convenience init(contactGroup: ContactGroup, cryptoIdentityWithCoreDetails: CryptoIdentityWithCoreDetails, delegateManager: ObvIdentityDelegateManager) throws { guard let obvContext = contactGroup.obvContext else { - throw ObvIdentityManagerError.contextIsNil.error(withDomain: PendingGroupMember.errorDomain) + throw ObvIdentityManagerError.contextIsNil } let entityDescription = NSEntityDescription.entity(forEntityName: PendingGroupMember.entityName, in: obvContext)! self.init(entity: entityDescription, insertInto: obvContext) @@ -90,6 +90,7 @@ final class PendingGroupMember: NSManagedObject, ObvManagedObject { self.delegateManager = delegateManager } + /// Used *exclusively* during a backup restore for creating an instance, relatioships are recreater in a second step fileprivate convenience init(backupItem: PendingGroupMemberBackupItem, within obvContext: ObvContext) { let entityDescription = NSEntityDescription.entity(forEntityName: PendingGroupMember.entityName, in: obvContext)! @@ -99,6 +100,16 @@ final class PendingGroupMember: NSManagedObject, ObvManagedObject { self.serializedIdentityCoreDetails = backupItem.serializedIdentityCoreDetails } + + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreater in a second step + fileprivate convenience init(cryptoIdentity: ObvCryptoIdentity, snapshotItem: PendingGroupMemberSyncSnapshotItem, within obvContext: ObvContext) { + let entityDescription = NSEntityDescription.entity(forEntityName: PendingGroupMember.entityName, in: obvContext)! + self.init(entity: entityDescription, insertInto: obvContext) + self.cryptoIdentity = cryptoIdentity + self.declined = snapshotItem.declined + self.serializedIdentityCoreDetails = snapshotItem.serializedIdentityCoreDetails + } + } @@ -108,12 +119,16 @@ extension PendingGroupMember { func markAsDeclined(delegateManager: ObvIdentityDelegateManager?) { self.delegateManager = delegateManager - self.declined = true + if !self.declined { + self.declined = true + } } func unmarkAsDeclined(delegateManager: ObvIdentityDelegateManager?) { self.delegateManager = delegateManager - self.declined = false + if self.declined { + self.declined = false + } } } @@ -293,3 +308,74 @@ struct PendingGroupMemberBackupItem: Codable, Hashable { } } + + +// MARK: - For Snapshot purposes + +extension PendingGroupMember { + + var syncSnapshot: PendingGroupMemberSyncSnapshotItem { + .init(declined: declined, + serializedIdentityCoreDetails: serializedIdentityCoreDetails) + } + +} + + +struct PendingGroupMemberSyncSnapshotItem: Codable, Hashable, Identifiable { + + fileprivate let declined: Bool + fileprivate let serializedIdentityCoreDetails: Data + + let id = ObvSyncSnapshotNodeUtils.generateIdentifier() + + enum CodingKeys: String, CodingKey { + case declined = "declined" + case serializedIdentityCoreDetails = "serialized_details" + } + + + fileprivate init(declined: Bool, serializedIdentityCoreDetails: Data) { + self.declined = declined + self.serializedIdentityCoreDetails = serializedIdentityCoreDetails + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(declined, forKey: .declined) + guard let serializedIdentityCoreDetailsAsString = String(data: serializedIdentityCoreDetails, encoding: .utf8) else { + throw ObvError.couldNotSerializeCoreDetails + } + try container.encode(serializedIdentityCoreDetailsAsString, forKey: .serializedIdentityCoreDetails) + } + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + self.declined = try values.decodeIfPresent(Bool.self, forKey: .declined) ?? false + let serializedIdentityCoreDetailsAsString = try values.decode(String.self, forKey: .serializedIdentityCoreDetails) + guard let serializedIdentityCoreDetailsAsData = serializedIdentityCoreDetailsAsString.data(using: .utf8) else { + throw ObvError.couldNotDeserializeCoreDetails + } + self.serializedIdentityCoreDetails = serializedIdentityCoreDetailsAsData + } + + + func restoreInstance(within obvContext: ObvContext, cryptoIdentity: ObvCryptoIdentity, associations: inout SnapshotNodeManagedObjectAssociations) throws { + let pendingGroupMember = PendingGroupMember(cryptoIdentity: cryptoIdentity, snapshotItem: self, within: obvContext) + try associations.associate(pendingGroupMember, to: self) + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, within obvContext: ObvContext) throws { + // Nothing to do here + } + + + enum ObvError: Error { + case couldNotSerializeCoreDetails + case couldNotDeserializeCoreDetails + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/PersistedTrustOrigin.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/PersistedTrustOrigin.swift index 9911858a..10507074 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/PersistedTrustOrigin.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/PersistedTrustOrigin.swift @@ -123,6 +123,20 @@ final class PersistedTrustOrigin: NSManagedObject, ObvManagedObject { self.trustTypeRaw = backupItem.trustTypeRaw self.rawObvGroupV2Identifier = backupItem.rawObvGroupV2Identifier } + + + /// Used *exclusively* during a snapshot restore for creating an instance, relatioships are recreater in a second step + fileprivate convenience init(snapshotItem: PersistedTrustOriginSyncSnapshotItem, within obvContext: ObvContext) { + let entityDescription = NSEntityDescription.entity(forEntityName: PersistedTrustOrigin.entityName, in: obvContext)! + self.init(entity: entityDescription, insertInto: obvContext) + self.identityServer = snapshotItem.identityServer + self.mediatorOrGroupOwnerCryptoIdentity = snapshotItem.mediatorOrGroupOwnerCryptoIdentity + self.mediatorOrGroupOwnerTrustLevelMajor = snapshotItem.mediatorOrGroupOwnerTrustLevelMajor + self.timestamp = snapshotItem.timestamp + self.trustTypeRaw = snapshotItem.trustTypeRaw + self.rawObvGroupV2Identifier = snapshotItem.rawObvGroupV2Identifier + } + } @@ -303,3 +317,105 @@ struct PersistedTrustOriginBackupItem: Codable, Hashable { // Nothing do to here } } + + +// MARK: - For Snapshot purposes + +extension PersistedTrustOrigin { + + var snapshotItem: PersistedTrustOriginSyncSnapshotItem { + return PersistedTrustOriginSyncSnapshotItem( + identityServer: identityServer, + mediatorOrGroupOwnerCryptoIdentity: mediatorOrGroupOwnerCryptoIdentity, + mediatorOrGroupOwnerTrustLevelMajor: mediatorOrGroupOwnerTrustLevelMajor, + timestamp: timestamp, + trustTypeRaw: trustTypeRaw, + rawObvGroupV2Identifier: rawObvGroupV2Identifier) + } + +} + + +struct PersistedTrustOriginSyncSnapshotItem: Codable, Hashable, Identifiable { + + fileprivate let identityServer: URL? + fileprivate let mediatorOrGroupOwnerCryptoIdentity: ObvCryptoIdentity? + fileprivate let mediatorOrGroupOwnerTrustLevelMajor: NSNumber? + fileprivate let timestamp: Date + fileprivate let trustTypeRaw: Int + fileprivate let rawObvGroupV2Identifier: Data? + + let id = ObvSyncSnapshotNodeUtils.generateIdentifier() + + enum CodingKeys: String, CodingKey { + case identityServer = "identity_server" + case mediatorOrGroupOwnerCryptoIdentity = "mediator_or_group_owner_identity" + case mediatorOrGroupOwnerTrustLevelMajor = "mediator_or_group_owner_trust_level_major" + case timestamp = "timestamp" + case trustTypeRaw = "trust_type" + case rawObvGroupV2Identifier = "raw_obv_group_v2_identifier" + case domain = "domain" + } + + + fileprivate init(identityServer: URL?, mediatorOrGroupOwnerCryptoIdentity: ObvCryptoIdentity?, mediatorOrGroupOwnerTrustLevelMajor: NSNumber?, timestamp: Date, trustTypeRaw: Int, rawObvGroupV2Identifier: Data?) { + self.identityServer = identityServer + self.mediatorOrGroupOwnerCryptoIdentity = mediatorOrGroupOwnerCryptoIdentity + self.mediatorOrGroupOwnerTrustLevelMajor = mediatorOrGroupOwnerTrustLevelMajor + self.timestamp = timestamp + self.trustTypeRaw = trustTypeRaw + self.rawObvGroupV2Identifier = rawObvGroupV2Identifier + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(identityServer, forKey: .identityServer) + try container.encodeIfPresent(mediatorOrGroupOwnerCryptoIdentity?.getIdentity(), forKey: .mediatorOrGroupOwnerCryptoIdentity) + try container.encodeIfPresent(mediatorOrGroupOwnerTrustLevelMajor?.intValue, forKey: .mediatorOrGroupOwnerTrustLevelMajor) + try container.encodeIfPresent(Int(timestamp.timeIntervalSince1970 * 1000), forKey: .timestamp) + try container.encodeIfPresent(trustTypeRaw, forKey: .trustTypeRaw) + try container.encodeIfPresent(rawObvGroupV2Identifier, forKey: .rawObvGroupV2Identifier) + } + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + self.identityServer = try values.decodeIfPresent(URL.self, forKey: .identityServer) + if let identity = try values.decodeIfPresent(Data.self, forKey: .mediatorOrGroupOwnerCryptoIdentity) { + guard let cryptoIdentity = ObvCryptoIdentity(from: identity) else { + throw ObvError.couldNotParseIdentity + } + self.mediatorOrGroupOwnerCryptoIdentity = cryptoIdentity + if let trustLevel = try values.decodeIfPresent(Int.self, forKey: .mediatorOrGroupOwnerTrustLevelMajor) { + self.mediatorOrGroupOwnerTrustLevelMajor = NSNumber(value: trustLevel) + } else { + self.mediatorOrGroupOwnerTrustLevelMajor = nil + } + } else { + self.mediatorOrGroupOwnerCryptoIdentity = nil + self.mediatorOrGroupOwnerTrustLevelMajor = nil + } + let timestamp = try values.decode(Int.self, forKey: .timestamp) + self.timestamp = Date(timeIntervalSince1970: Double(timestamp)/1000.0) + self.trustTypeRaw = try values.decode(Int.self, forKey: .trustTypeRaw) + self.rawObvGroupV2Identifier = try values.decodeIfPresent(Data.self, forKey: .rawObvGroupV2Identifier) + } + + + func restoreInstance(within obvContext: ObvContext, associations: inout SnapshotNodeManagedObjectAssociations) throws { + let persistedTrustOrigin = PersistedTrustOrigin(snapshotItem: self, within: obvContext) + try associations.associate(persistedTrustOrigin, to: self) + } + + + func restoreRelationships(associations: SnapshotNodeManagedObjectAssociations, within obvContext: ObvContext) throws { + // Nothing do to here + } + + + enum ObvError: Error { + case couldNotParseIdentity + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ServerUserData.swift b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ServerUserData.swift index 295472b7..627abf03 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ServerUserData.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/CoreData/ServerUserData.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,6 +25,9 @@ import ObvTypes import ObvMetaManager import OlvidUtils + + + @objc(ServerUserData) class ServerUserData: NSManagedObject, ObvManagedObject, ObvErrorMaker { diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/ObvIdentityManagerImplementation.swift b/Engine/ObvIdentityManager/ObvIdentityManager/ObvIdentityManagerImplementation.swift index b816b8b9..f8b3a809 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/ObvIdentityManagerImplementation.swift +++ b/Engine/ObvIdentityManager/ObvIdentityManager/ObvIdentityManagerImplementation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -72,6 +72,51 @@ public final class ObvIdentityManagerImplementation { } +// MARK: - Implementing ObvSnapshotable + +extension ObvIdentityManagerImplementation: ObvSnapshotable { + + public func getSyncSnapshotNode(for ownedCryptoId: ObvTypes.ObvCryptoId) throws -> any ObvSyncSnapshotNode { + let flowId = FlowIdentifier() + let ownedCryptoIdentity = ownedCryptoId.cryptoIdentity + return try delegateManager.contextCreator.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { obvContext in + return try getSyncSnapshotNode(ownedCryptoIdentity: ownedCryptoIdentity, within: obvContext) + } + } + + + private func getSyncSnapshotNode(ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvIdentityManagerSyncSnapshotNode { + try ObvIdentityManagerSyncSnapshotNode(ownedCryptoIdentity: ownedCryptoIdentity, delegateManager: delegateManager, within: obvContext) + } + + + public func serializeObvSyncSnapshotNode(_ syncSnapshotNode: any ObvSyncSnapshotNode) throws -> Data { + guard let node = syncSnapshotNode as? ObvIdentityManagerSyncSnapshotNode else { + assertionFailure() + throw Self.makeError(message: "Unexpected snapshot type") + } + let jsonEncoder = JSONEncoder() + return try jsonEncoder.encode(node) + } + + + public func deserializeObvSyncSnapshotNode(_ serializedSyncSnapshotNode: Data) throws -> any ObvSyncSnapshotNode { + let jsonDecoder = JSONDecoder() + return try jsonDecoder.decode(ObvIdentityManagerSyncSnapshotNode.self, from: serializedSyncSnapshotNode) + } + + + public func restoreObvSyncSnapshotNode(_ syncSnapshotNode: any ObvSyncSnapshotNode, customDeviceName: String, within obvContext: ObvContext) throws { + guard let node = syncSnapshotNode as? ObvIdentityManagerSyncSnapshotNode else { + assertionFailure() + throw Self.makeError(message: "Unexpected snapshot type") + } + try node.restore(prng: prng, customDeviceName: customDeviceName, delegateManager: delegateManager, within: obvContext) + } + +} + + // MARK: - Implementing ObvIdentityDelegate extension ObvIdentityManagerImplementation: ObvIdentityDelegate { @@ -137,11 +182,11 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { } os_log("📲 We have %d owned identities to restore within flow %{public}@. We restore them now.", log: log, type: .info, ownedIdentityBackupItems.count, backupRequestIdentifier.debugDescription) - - for (index, ownedIdentityBackupItem) in ownedIdentityBackupItems.enumerated() { + for (index, ownedIdentityBackupItem) in ownedIdentityBackupItems.enumerated() { + os_log("📲 Restoring the database owned identity instances %d out of %d within flow %{public}@...", log: log, type: .info, index+1, ownedIdentityBackupItems.count, backupRequestIdentifier.debugDescription) - + let associationsForRelationships: BackupItemObjectAssociations do { var associations = BackupItemObjectAssociations() @@ -150,17 +195,17 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { notificationDelegate: delegateManager.notificationDelegate) associationsForRelationships = associations } - + os_log("📲 The instances were re-created. We now recreate the relationships.", log: log, type: .info) try ownedIdentityBackupItem.restoreRelationships(associations: associationsForRelationships, prng: prng, within: obvContext) - + os_log("📲 The relationships were recreated.", log: log, type: .info) - + } - + os_log("📲 Saving the context", log: log, type: .info) - + try obvContext.save(logOnFailure: log) os_log("📲 Context saved. We successfully restored the owned identities. Yepee!", log: log, type: .info, backupRequestIdentifier.debugDescription) @@ -175,7 +220,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { } } } - + public func getAllOwnedIdentityWithMissingPhotoUrl(within obvContext: ObvContext) throws -> [(ObvCryptoIdentity, IdentityDetailsElements)] { let allDetails = try OwnedIdentityDetailsPublished.getAllWithMissingPhotoFilename(within: obvContext) @@ -220,27 +265,31 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { assertionFailure() return nil } + guard let contactCryptoIdentity = contactIdentityDetails.contactIdentity.cryptoIdentity else { + assertionFailure() + return nil + } return (ownedIdentity.cryptoIdentity, - contactIdentityDetails.contactIdentity.cryptoIdentity, + contactCryptoIdentity, identityDetailsElements) } return results } - + // MARK: API related to owned identities - + public func isOwned(_ identity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool { return try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) != nil } - - + + public func isOwnedIdentityActive(ownedIdentity identity: ObvCryptoIdentity, flowId: FlowIdentifier) throws -> Bool { var _isActive: Bool? try delegateManager.contextCreator.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { (obvContext) in guard let ownedIdentity = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } _isActive = ownedIdentity.isActive } @@ -252,52 +301,37 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { } - public func deactivateOwnedIdentity(ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { + public func deactivateOwnedIdentityAndDeleteContactDevices(ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { os_log("Deactivating owned identity %{public}@", log: log, type: .info, ownedIdentity.debugDescription) guard let ownedIdentityObj = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { assertionFailure() - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } - ownedIdentityObj.deactivate() + ownedIdentityObj.deactivateAndDeleteAllContactDevices(delegateManager: delegateManager) } public func reactivateOwnedIdentity(ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { os_log("Reactivating owned identity %{public}@", log: log, type: .info, ownedIdentity.debugDescription) guard let ownedIdentityObj = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } ownedIdentityObj.reactivate() } - - public func generateOwnedIdentity(withApiKey apiKey: UUID, onServerURL serverURL: URL, with identityDetails: ObvIdentityDetails, accordingTo pkEncryptionImplemByteId: PublicKeyEncryptionImplementationByteId, and authEmplemByteId: AuthenticationImplementationByteId, keycloakState: ObvKeycloakState?, using prng: PRNGService, within obvContext: ObvContext) -> ObvCryptoIdentity? { - guard let ownedIdentity = OwnedIdentity(apiKey: apiKey, - serverURL: serverURL, + + public func generateOwnedIdentity(onServerURL serverURL: URL, with identityDetails: ObvIdentityDetails, accordingTo pkEncryptionImplemByteId: PublicKeyEncryptionImplementationByteId, and authEmplemByteId: AuthenticationImplementationByteId, nameForCurrentDevice: String, keycloakState: ObvKeycloakState?, using prng: PRNGService, within obvContext: ObvContext) -> ObvCryptoIdentity? { + guard let ownedIdentity = OwnedIdentity(serverURL: serverURL, identityDetails: identityDetails, accordingTo: pkEncryptionImplemByteId, and: authEmplemByteId, keycloakState: keycloakState, + nameForCurrentDevice: nameForCurrentDevice, using: prng, delegateManager: delegateManager, within: obvContext) else { return nil } let ownedCryptoIdentity = ownedIdentity.ownedCryptoIdentity.getObvCryptoIdentity() return ownedCryptoIdentity } - - - public func getApiKeyOfOwnedIdentity(_ identity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> UUID { - guard let ownedIdentity = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) - } - return ownedIdentity.apiKey - } - - public func setAPIKey(_ apiKey: UUID, forOwnedIdentity identity: ObvCryptoIdentity, keycloakServerURL: URL?, within obvContext: ObvContext) throws { - guard let ownedIdentity = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) - } - try ownedIdentity.setAPIKey(to: apiKey, keycloakServerURL: keycloakServerURL) - } public func markOwnedIdentityForDeletion(_ identity: ObvCryptoIdentity, within obvContext: ObvContext) throws { @@ -312,14 +346,49 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { try identityObj.delete(delegateManager: delegateManager, within: obvContext) } } - + public func getOwnedIdentities(within obvContext: ObvContext) throws -> Set { + return try OwnedIdentity.getAllCryptoIds(within: obvContext.context) + } + + + public func getActiveOwnedIdentitiesAndCurrentDeviceName(within obvContext: ObvContext) throws -> [ObvCryptoIdentity: String?] { let ownedIdentities = try OwnedIdentity.getAll(delegateManager: delegateManager, within: obvContext) - let cryptoIdentities = ownedIdentities.map { $0.ownedCryptoIdentity.getObvCryptoIdentity() } + let cryptoIdentitiesAndNames = ownedIdentities + .filter({ $0.isActive }) + .map { ($0.ownedCryptoIdentity.getObvCryptoIdentity(), $0.currentDevice.name) } + return Dictionary(cryptoIdentitiesAndNames) { cryptoIdentity, _ in + assertionFailure() + return cryptoIdentity + } + } + + + public func getActiveOwnedIdentitiesThatAreNotKeycloakManaged(within obvContext: ObvContext) throws -> Set { + let ownedIdentities = try OwnedIdentity.getAll(delegateManager: delegateManager, within: obvContext) + let cryptoIdentities = ownedIdentities + .filter({ $0.isActive }) + .filter({ !$0.isKeycloakManaged }) + .map { $0.ownedCryptoIdentity.getObvCryptoIdentity() } return Set(cryptoIdentities) } - + + + public func saveRegisteredKeycloakAPIKey(ownedCryptoIdentity: ObvCryptoIdentity, apiKey: UUID, within obvContext: ObvContext) throws { + guard let ownedIdentityObj = try OwnedIdentity.get(ownedCryptoIdentity, delegateManager: delegateManager, within: obvContext) else { + throw ObvIdentityManagerError.ownedIdentityNotFound + } + try ownedIdentityObj.saveRegisteredKeycloakAPIKey(apiKey: apiKey) + } + + + public func getRegisteredKeycloakAPIKey(ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> UUID? { + guard let ownedIdentityObj = try OwnedIdentity.get(ownedCryptoIdentity, delegateManager: delegateManager, within: obvContext) else { + throw ObvIdentityManagerError.ownedIdentityNotFound + } + return ownedIdentityObj.keycloakServer?.ownAPIKey + } public func getOwnedIdentitiesAndCurrentDeviceUids(within obvContext: ObvContext) throws -> [(ownedCryptoIdentity: ObvCryptoIdentity, currentDeviceUid: UID)] { let ownedIdentities = try OwnedIdentity.getAll(delegateManager: delegateManager, within: obvContext) @@ -330,17 +399,17 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getIdentityDetailsOfOwnedIdentity(_ identity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> (publishedIdentityDetails: ObvIdentityDetails, isActive: Bool) { guard let ownedIdentityObj = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } return (ownedIdentityObj.publishedIdentityDetails.getIdentityDetails(identityPhotosDirectory: delegateManager.identityPhotosDirectory), ownedIdentityObj.isActive) } - + // Used within the protocol manager public func getPublishedIdentityDetailsOfOwnedIdentity(_ identity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> (ownedIdentityDetailsElements: IdentityDetailsElements, photoURL: URL?) { guard let ownedIdentityObj = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } let ownedIdentityDetailsElements = IdentityDetailsElements( @@ -353,7 +422,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func setPhotoServerKeyAndLabelForPublishedIdentityDetailsOfOwnedIdentity(_ identity: ObvCryptoIdentity, withPhotoServerKeyAndLabel photoServerKeyAndLabel: PhotoServerKeyAndLabel, within obvContext: ObvContext) throws -> IdentityDetailsElements { guard let ownedIdentity = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } ownedIdentity.publishedIdentityDetails.set(photoServerKeyAndLabel: photoServerKeyAndLabel) _ = IdentityServerUserData.createForOwnedIdentityDetails(ownedIdentity: identity, @@ -361,48 +430,67 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { within: obvContext) return ownedIdentity.publishedIdentityDetails.getIdentityDetailsElements(identityPhotosDirectory: delegateManager.identityPhotosDirectory) } - + public func updateDownloadedPhotoOfOwnedIdentity(_ identity: ObvCryptoIdentity, version: Int, photo: Data, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } try ownedIdentity.updatePhoto(withData: photo, version: version, delegateManager: delegateManager, within: obvContext) } - - + + public func updatePublishedIdentityDetailsOfOwnedIdentity(_ identity: ObvCryptoIdentity, with newIdentityDetails: ObvIdentityDetails, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } try ownedIdentity.updatePublishedDetailsWithNewDetails(newIdentityDetails, delegateManager: delegateManager) } + /// Typically called when creating an oblivious channel with another owned device. In that case, during the protocol, we received the other owned identity details from that remote device. We keep them if they are newer than the one we have locally. + /// In case we update the local details, we might be in a situation where the owned profile picture must be downloaded. + public func updateOwnedPublishedDetailsWithOtherDetailsIfNewer(_ ownedIdentity: ObvCryptoIdentity, with otherIdentityDetails: IdentityDetailsElements, within obvContext: ObvContext) throws -> Bool { + guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { + throw ObvIdentityManagerError.ownedIdentityNotFound + } + let photoDownloadNeeded = try ownedIdentity.updatePublishedDetailsWithOtherDetailsIfNewer(otherDetails: otherIdentityDetails, delegateManager: delegateManager) + return photoDownloadNeeded + } + + public func getDeterministicSeedForOwnedIdentity(_ identity: ObvCryptoIdentity, diversifiedUsing data: Data, within obvContext: ObvContext) throws -> Seed { guard let ownedIdentityObj = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } + return try getDeterministicSeed( + diversifiedUsing: data, + secretMACKey: ownedIdentityObj.ownedCryptoIdentity.secretMACKey, + forProtocol: .trustEstablishmentWithSAS) + } + + + public func getDeterministicSeed(diversifiedUsing data: Data, secretMACKey: MACKey, forProtocol seedProtocol: ObvConstants.SeedProtocol) throws -> Seed { guard !data.isEmpty else { - throw ObvIdentityManagerError.diversificationDataCannotBeEmpty.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.diversificationDataCannotBeEmpty } let sha256 = ObvCryptoSuite.sharedInstance.hashFunctionSha256() - let fixedByte = Data([0x55]) - var hashInput = try MAC.compute(forData: fixedByte, withKey: ownedIdentityObj.ownedCryptoIdentity.secretMACKey) + let fixedByte = Data([seedProtocol.fixedByte]) + var hashInput = try MAC.compute(forData: fixedByte, withKey: secretMACKey) hashInput.append(data) let r = sha256.hash(hashInput) guard let seed = Seed(with: r) else { - throw ObvIdentityManagerError.failedToTurnRandomIntoSeed.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.failedToTurnRandomIntoSeed } return seed } - public func getFreshMaskingUIDForPushNotifications(for identity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> UID { + public func getFreshMaskingUIDForPushNotifications(for identity: ObvCryptoIdentity, pushToken: Data, within obvContext: ObvContext) throws -> UID { guard let ownedIdentityObj = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } - let maskingUID = try OwnedIdentityMaskingUID.getOrCreate(for: ownedIdentityObj, prng: self.prng) + let maskingUID = try OwnedIdentityMaskingUID.getOrCreate(for: ownedIdentityObj, pushToken: pushToken) return maskingUID } @@ -414,40 +502,40 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func computeTagForOwnedIdentity(_ identity: ObvCryptoIdentity, on data: Data, within obvContext: ObvContext) throws -> Data { guard let ownedIdentity = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } let mac = ObvCryptoSuite.sharedInstance.mac() let dataToMac = "OwnedIdentityTag".data(using: .utf8)! + data return try mac.compute(forData: dataToMac, withKey: ownedIdentity.ownedCryptoIdentity.secretMACKey) } - + // MARK: - API related to contact groups V2 - + public func getGroupV2PhotoURLAndServerPhotoInfofOwnedIdentityIsUploader(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, within obvContext: ObvContext) throws -> (photoURL: URL, serverPhotoInfo: GroupV2.ServerPhotoInfo)? { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } - + guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { return nil } - + guard let photoURLAndServerPhotoInfo = try group.trustedDetails?.getPhotoURLAndServerPhotoInfo(identityPhotosDirectory: delegateManager.identityPhotosDirectory) else { return nil } // Check that the owned identity is the uploader guard photoURLAndServerPhotoInfo.serverPhotoInfo.identity == ownedIdentity else { return nil } return photoURLAndServerPhotoInfo - + } - + public func createContactGroupV2AdministratedByOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, serializedGroupCoreDetails: Data, photoURL: URL?, ownRawPermissions: Set, otherGroupMembers: Set, within obvContext: ObvContext) throws -> (groupIdentifier: GroupV2.Identifier, groupAdminServerAuthenticationPublicKey: PublicKeyForAuthentication, serverPhotoInfo: GroupV2.ServerPhotoInfo?, encryptedServerBlob: EncryptedData, photoURL: URL?) { - + guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } - + let (group, publicKey) = try ContactGroupV2.createContactGroupV2AdministratedByOwnedIdentity(ownedIdentity, serializedGroupCoreDetails: serializedGroupCoreDetails, photoURL: photoURL, @@ -466,23 +554,24 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { } - public func createContactGroupV2JoinedByOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, serverBlob: GroupV2.ServerBlob, blobKeys: GroupV2.BlobKeys, within obvContext: ObvContext) throws { - + public func createContactGroupV2JoinedByOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, serverBlob: GroupV2.ServerBlob, blobKeys: GroupV2.BlobKeys, createdByMeOnOtherDevice: Bool, within obvContext: ObvContext) throws { + guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } - + try ContactGroupV2.createContactGroupV2JoinedByOwnedIdentity(ownedIdentity, groupIdentifier: groupIdentifier, serverBlob: serverBlob, blobKeys: blobKeys, + createdByMeOnOtherDevice: createdByMeOnOtherDevice, delegateManager: delegateManager) } - + public func deleteGroupV2(withGroupIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { return } try group.delete() @@ -491,7 +580,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func removeOtherMembersOrPendingMembersFromGroupV2(withGroupIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, identitiesToRemove: Set, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { return } try group.removeOtherMembersOrPendingMembers(identitiesToRemove) @@ -500,16 +589,16 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func freezeGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { return } group.freeze() } - + public func unfreezeGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { return } group.unfreeze() @@ -518,7 +607,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getGroupV2BlobKeysOfGroup(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> GroupV2.BlobKeys { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") } guard let blobKeys = group.blobKeys else { assertionFailure(); throw Self.makeError(message: "Could not extract blob keys from group") } @@ -528,7 +617,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getPendingMembersAndPermissionsOfGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Set { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") } let pendingMembersAndPermissions = try group.getPendingMembersAndPermissions() @@ -538,7 +627,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getVersionOfGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Int { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") } return group.groupVersion @@ -547,12 +636,12 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func checkExistenceOfGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) return group != nil } - + public func updateGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, newBlobKeys: GroupV2.BlobKeys, consolidatedServerBlob: GroupV2.ServerBlob, groupUpdatedByOwnedIdentity: Bool, within obvContext: ObvContext) throws -> Set { // We create a local context that we can discard in case this method should throw @@ -560,7 +649,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { var insertedOrUpdatedIdentities: Set! try localContext.performAndWaitOrThrow { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: localContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") } insertedOrUpdatedIdentities = try group.updateGroupV2(newBlobKeys: newBlobKeys, @@ -571,11 +660,11 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { } return insertedOrUpdatedIdentities } - + public func getAllOtherMembersOrPendingMembersOfGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, memberOrPendingMemberInvitationNonce nonce: Data, within obvContext: ObvContext) throws -> Set { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") } return try group.getAllOtherMembersOrPendingMembersIdentifiedByNonce(nonce) @@ -584,7 +673,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func movePendingMemberToMembersOfGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, pendingMemberCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") } try group.movePendingMemberToOtherMembers(pendingMemberCryptoIdentity: pendingMemberCryptoIdentity, delegateManager: delegateManager) @@ -593,7 +682,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getOwnGroupInvitationNonceOfGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Data { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") } return group.ownGroupInvitationNonce @@ -602,7 +691,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func setDownloadedPhotoOfGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, serverPhotoInfo: GroupV2.ServerPhotoInfo, photo: Data, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") } try group.updatePhoto(withData: photo, serverPhotoInfo: serverPhotoInfo, delegateManager: delegateManager) @@ -610,16 +699,16 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func photoNeedsToBeDownloadedForGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, serverPhotoInfo: GroupV2.ServerPhotoInfo, within obvContext: ObvContext) throws -> Bool { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") } return group.photoNeedsToBeDownloaded(serverPhotoInfo: serverPhotoInfo, delegateManager: delegateManager) } - + public func getAllObvGroupV2(of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Set { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } let groups = try ContactGroupV2.getAllObvGroupV2(of: ownedIdentity, delegateManager: delegateManager) return groups @@ -628,7 +717,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getTrustedPhotoURLAndUploaderOfObvGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> (url: URL, uploader: ObvCryptoIdentity)? { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") } guard let photoURLAndUploader = group.trustedDetails?.getPhotoURLAndUploader(identityPhotosDirectory: delegateManager.identityPhotosDirectory) else { return nil } @@ -639,7 +728,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func replaceTrustedDetailsByPublishedDetailsOfGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") @@ -650,7 +739,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getAdministratorChainOfGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> GroupV2.AdministratorsChain { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") @@ -662,47 +751,55 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getAllOtherMembersOrPendingMembersOfGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Set { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") } return try group.getAllOtherMembersOrPendingMembers() - + } - + public func getAllNonPendingAdministratorsIdentitiesOfGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Set { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard let group = try ContactGroupV2.getContactGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, delegateManager: delegateManager) else { throw Self.makeError(message: "Could not find group") } return try group.getAllNonPendingAdministratorsIdentitites() } - + public func getAllGroupsV2IdentifierVersionAndKeysForContact(_ contactIdentity: ObvCryptoIdentity, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> [GroupV2.IdentifierVersionAndKeys] { guard let contact = try ContactIdentity.get(contactIdentity: contactIdentity, ownedIdentity: ownedIdentity, delegateManager: delegateManager, within: obvContext) else { throw makeError(message: "Could not find contact") } guard let ownedIdentity_ = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } let identifierVersionAndKeysOfGroupsWhereTheContactIsNotPending = contact.groupMemberships.compactMap { $0.contactGroup?.identifierVersionAndKeys } let identifierVersionAndKeysOfGroupsWhereTheContactIsPending = (try ContactGroupV2PendingMember.getPendingMemberEntriesCorrespondingToContactIdentity(contactIdentity, of: ownedIdentity_)).compactMap({ $0.contactGroup?.identifierVersionAndKeys }) - + let allIdentifierVersionAndKeys = identifierVersionAndKeysOfGroupsWhereTheContactIsNotPending + identifierVersionAndKeysOfGroupsWhereTheContactIsPending - + return allIdentifierVersionAndKeys } + public func getAllGroupsV2IdentifierVersionAndKeys(ofOwnedIdentity ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> [GroupV2.IdentifierVersionAndKeys] { + guard let ownedIdentity = try OwnedIdentity.get(ownedCryptoId, delegateManager: delegateManager, within: obvContext) else { + throw ObvIdentityManagerError.ownedIdentityNotFound + } + return ownedIdentity.contactGroupsV2.compactMap { $0.identifierVersionAndKeys } + } + + // MARK: - Keycloak pushed groups - + public func updateKeycloakGroups(ownedIdentity: ObvCryptoIdentity, signedGroupBlobs: Set, signedGroupDeletions: Set, signedGroupKicks: Set, keycloakCurrentTimestamp: Date, within obvContext: ObvContext) throws -> [KeycloakGroupV2UpdateOutput] { guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } - + let keycloakGroupV2UpdateOutputs = try ownedIdentityObject.updateKeycloakGroups(signedGroupBlobs: signedGroupBlobs, signedGroupDeletions: signedGroupDeletions, signedGroupKicks: signedGroupKicks, @@ -725,17 +822,40 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { let groupIdentifiers = try ContactGroupV2.getIdentifiersOfAllKeycloakGroupsWhereContactIsPending(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId, within: obvContext) return groupIdentifiers } - + + + public func getAllKeycloakContactsThatArePendingInSomeKeycloakGroup(within obvContext: ObvContext) throws -> [ObvCryptoIdentity: Set] { + + var returnValues = [ObvCryptoIdentity: Set]() + + let ownedCryptoIds = Set(try OwnedIdentity.getAllKeycloakManaged(delegateManager: delegateManager, within: obvContext) + .map(\.cryptoIdentity)) + + for ownedCryptoId in ownedCryptoIds { + let pendingMembers = try ContactGroupV2PendingMember.getAllPendingMembersCorrespondingToOwnedIdentity(ownedCryptoId, groupCategory: .keycloak, within: obvContext.context) + let pendingContactMembers = try pendingMembers.filter { pendingMember in + guard try isIdentity(pendingMember, aContactIdentityOfTheOwnedIdentity: ownedCryptoId, within: obvContext) else { return false } + guard try isContactCertifiedByOwnKeycloak(contactIdentity: pendingMember, ofOwnedIdentity: ownedCryptoId, within: obvContext) else { return false } + // The pending member is a contact and is keycloak managed, we keep her in the returned list + return true + } + returnValues[ownedCryptoId] = pendingContactMembers + } + + return returnValues + + } + // MARK: - API related to keycloak management - + public func isOwnedIdentityKeycloakManaged(ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool { guard let ownedIdentity_ = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } return ownedIdentity_.isKeycloakManaged } - + public func isContactCertifiedByOwnKeycloak(contactIdentity: ObvCryptoIdentity, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool { guard let contactObj = try ContactIdentity.get(contactIdentity: contactIdentity, ownedIdentity: ownedIdentity, delegateManager: delegateManager, within: obvContext) else { throw makeError(message: "Could not find contact") @@ -750,8 +870,8 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { } return try contactObj.getSignedUserDetails(identityPhotosDirectory: delegateManager.identityPhotosDirectory) } - - + + public func getOwnedIdentityKeycloakState(ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> (obvKeycloakState: ObvKeycloakState?, signedOwnedDetails: SignedObvKeycloakUserDetails?) { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { throw makeError(message: "Could not find Owned Identity in database") @@ -767,17 +887,17 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { assert(signedOwnedDetails != nil, "An invalid signature should not have been stored in the first place") return (obvKeycloakState, signedOwnedDetails) } - + public func saveKeycloakAuthState(ownedIdentity: ObvCryptoIdentity, rawAuthState: Data, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw makeError(message: "Could not find Owned Identity in database") + throw ObvIdentityManagerError.ownedIdentityNotFound } ownedIdentity.keycloakServer?.setAuthState(authState: rawAuthState) } - + public func saveKeycloakJwks(ownedIdentity: ObvCryptoIdentity, jwks: ObvJWKSet, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw makeError(message: "Could not find Owned Identity in database") + throw ObvIdentityManagerError.ownedIdentityNotFound } assert(ownedIdentity.keycloakServer != nil) try ownedIdentity.keycloakServer?.setJwks(jwks) @@ -785,43 +905,38 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getOwnedIdentityKeycloakUserId(ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> String? { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw makeError(message: "Could not find Owned Identity in database") + throw ObvIdentityManagerError.ownedIdentityNotFound } return ownedIdentity.keycloakServer?.keycloakUserId } - + public func setOwnedIdentityKeycloakUserId(ownedIdentity: ObvCryptoIdentity, keycloakUserId userId: String?, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw makeError(message: "Could not find Owned Identity in database") + throw ObvIdentityManagerError.ownedIdentityNotFound } ownedIdentity.keycloakServer?.setKeycloakUserId(keycloakUserId: userId) } - - public func bindOwnedIdentityToKeycloak(ownedCryptoIdentity: ObvCryptoIdentity, keycloakUserId userId: String, keycloakState: ObvKeycloakState, within obvContext: ObvContext) throws -> Set { - + + + public func bindOwnedIdentityToKeycloak(ownedCryptoIdentity: ObvCryptoIdentity, keycloakUserId userId: String, keycloakState: ObvKeycloakState, within obvContext: ObvContext) throws { + guard let ownedIdentity = try OwnedIdentity.get(ownedCryptoIdentity, delegateManager: delegateManager, within: obvContext) else { - throw makeError(message: "Could not find Owned Identity in database") + throw ObvIdentityManagerError.ownedIdentityNotFound } - + try ownedIdentity.bindToKeycloak(keycloakState: keycloakState, delegateManager: delegateManager) try setOwnedIdentityKeycloakUserId(ownedIdentity: ownedCryptoIdentity, keycloakUserId: userId, within: obvContext) assert(ownedIdentity.isKeycloakManaged) - - // Once our owned identity is bind, we create the updated list of the contact that are managed by the same keycloak than ours. - // This will be cached by the app. - let contactsCertifiedByOwnKeycloak = Set(ownedIdentity.contactIdentities.filter({ $0.isCertifiedByOwnKeycloak }).map({ $0.cryptoIdentity })) - - return contactsCertifiedByOwnKeycloak } public func getContactsCertifiedByOwnKeycloak(ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Set { guard let ownedIdentity = try OwnedIdentity.get(ownedCryptoIdentity, delegateManager: delegateManager, within: obvContext) else { - throw makeError(message: "Could not find Owned Identity in database") + throw ObvIdentityManagerError.ownedIdentityNotFound } guard ownedIdentity.isKeycloakManaged else { return Set() } - let contactsCertifiedByOwnKeycloak = Set(ownedIdentity.contactIdentities.filter({ $0.isCertifiedByOwnKeycloak }).map({ $0.cryptoIdentity })) + let contactsCertifiedByOwnKeycloak = Set(ownedIdentity.contactIdentities.filter({ $0.isCertifiedByOwnKeycloak }).compactMap({ $0.cryptoIdentity })) return contactsCertifiedByOwnKeycloak } @@ -832,10 +947,10 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { } try ownedIdentity.unbindFromKeycloak(delegateManager: delegateManager) assert(!ownedIdentity.isKeycloakManaged) - + let publishedDetails = ownedIdentity.publishedIdentityDetails.getIdentityDetails(identityPhotosDirectory: delegateManager.identityPhotosDirectory) let publishedDetailsWithoutSignedDetails = try publishedDetails.removingSignedUserDetails() - + try updatePublishedIdentityDetailsOfOwnedIdentity(ownedCryptoIdentity, with: publishedDetailsWithoutSignedDetails, within: obvContext) } @@ -898,7 +1013,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { } return try ownedIdentity.getPushTopicsForKeycloakServerAndForKeycloakManagedGroups() } - + public func getCryptoIdentitiesOfManagedOwnedIdentitiesAssociatedWithThePushTopic(_ pushTopic: String, within obvContext: ObvContext) throws -> Set { let ownedIdentities = try OwnedIdentity.getAll(delegateManager: delegateManager, within: obvContext) @@ -909,63 +1024,72 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { } // MARK: - API related to owned devices - + public func getDeviceUidsOfOwnedIdentity(_ identity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Set { guard let ownedIdentity = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } let devices = ownedIdentity.otherDevices.union([ownedIdentity.currentDevice]) return Set(devices.map { return $0.uid }) } - + public func getOwnedIdentityOfCurrentDeviceUid(_ currentDeviceUid: UID, within obvContext: ObvContext) throws -> ObvCryptoIdentity { guard let currentDevice = try OwnedDevice.get(currentDeviceUid: currentDeviceUid, delegateManager: delegateManager, within: obvContext) else { - assertionFailure() throw Self.makeError(message: "Could not find OwnedDevice") } - return currentDevice.identity.ownedCryptoIdentity.getObvCryptoIdentity() + guard let identity = currentDevice.identity else { + assertionFailure() + throw Self.makeError(message: "Could not find Owned identity") + } + return identity.ownedCryptoIdentity.getObvCryptoIdentity() } - + public func getOwnedIdentityOfRemoteDeviceUid(_ remoteDeviceUid: UID, within obvContext: ObvContext) throws -> ObvCryptoIdentity? { let remoteDevice = try OwnedDevice.get(remoteDeviceUid: remoteDeviceUid, delegateManager: delegateManager, within: obvContext) - return remoteDevice?.identity.ownedCryptoIdentity.getObvCryptoIdentity() + return remoteDevice?.identity?.ownedCryptoIdentity.getObvCryptoIdentity() } - + public func getCurrentDeviceUidOfOwnedIdentity(_ identity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> UID { guard let ownedIdentity = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } return ownedIdentity.currentDevice.uid } - + public func getOtherDeviceUidsOfOwnedIdentity(_ identity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Set { guard let ownedIdentity = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } return Set(ownedIdentity.otherDevices.map { return $0.uid }) } - - public func addDeviceForOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, withUid uid: UID, within obvContext: ObvContext) throws { + + public func addOtherDeviceForOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, withUid uid: UID, createdDuringChannelCreation: Bool, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } - try ownedIdentity.addRemoteDeviceWith(uid: uid) + try ownedIdentity.addIfNotExistRemoteDeviceWith(uid: uid, createdDuringChannelCreation: createdDuringChannelCreation) + } + + public func removeOtherDeviceForOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, otherDeviceUid: UID, within obvContext: ObvContext) throws { + guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { + throw ObvIdentityManagerError.ownedIdentityNotFound + } + try ownedIdentity.removeIfExistsOtherDeviceWith(uid: otherDeviceUid, delegateManager: delegateManager, flowId: obvContext.flowId) } - public func isDevice(withUid deviceUid: UID, aRemoteDeviceOfOwnedIdentity identity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool { guard let ownedIdentityObj = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } let ownedRemoteDeviceUids = ownedIdentityObj.otherDevices.map { return $0.uid } return ownedRemoteDeviceUids.contains(deviceUid) } - + public func getAllRemoteOwnedDevicesUidsAndContactDeviceUids(within obvContext: ObvContext) throws -> Set { let ownedRemoteDevices = try OwnedDevice.getAllOwnedRemoteDeviceUids(within: obvContext) @@ -974,24 +1098,96 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { } - // MARK: - API related to contact identities + /// Returns a Boolean indicating whether the current device is part of the owned device discovery results. + public func processEncryptedOwnedDeviceDiscoveryResult(_ encryptedOwnedDeviceDiscoveryResult: EncryptedData, forOwnedCryptoId ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool { + guard let ownedIdentityObj = try OwnedIdentity.get(ownedCryptoId, delegateManager: delegateManager, within: obvContext) else { + throw ObvIdentityManagerError.ownedIdentityNotFound + } + let currentDeviceIsPartOfOwnedDeviceDiscoveryResult = try ownedIdentityObj.processEncryptedOwnedDeviceDiscoveryResult(encryptedOwnedDeviceDiscoveryResult, delegateManager: delegateManager) + return currentDeviceIsPartOfOwnedDeviceDiscoveryResult + } + + + public func decryptEncryptedOwnedDeviceDiscoveryResult(_ encryptedOwnedDeviceDiscoveryResult: EncryptedData, forOwnedCryptoId ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> OwnedDeviceDiscoveryResult { + + guard let ownedIdentityObj = try OwnedIdentity.get(ownedCryptoId, delegateManager: delegateManager, within: obvContext) else { + throw ObvIdentityManagerError.ownedIdentityNotFound + } + + let ownedDeviceDiscoveryResult = try ownedIdentityObj.decryptEncryptedOwnedDeviceDiscoveryResult(encryptedOwnedDeviceDiscoveryResult) + + return ownedDeviceDiscoveryResult + + } + + + public func decryptProtocolCiphertext(_ ciphertext: EncryptedData, forOwnedCryptoId ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Data { + guard let ownedIdentityObj = try OwnedIdentity.get(ownedCryptoId, delegateManager: delegateManager, within: obvContext) else { + throw ObvIdentityManagerError.ownedIdentityNotFound + } + + let cleartext = try ownedIdentityObj.decryptProtocolCiphertext(ciphertext) + + return cleartext + + } + + + public func getInfosAboutOwnedDevice(withUid uid: UID, ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> (name: String?, expirationDate: Date?, latestRegistrationDate: Date?) { + + guard let ownedIdentityObj = try OwnedIdentity.get(ownedCryptoIdentity, delegateManager: delegateManager, within: obvContext) else { + throw ObvIdentityManagerError.ownedIdentityNotFound + } + + let infos = try ownedIdentityObj.getInfosAboutOwnedDevice(withUid: uid) + + return infos + + } + + + public func setCurrentDeviceNameOfOwnedIdentityAfterBackupRestore(ownedCryptoIdentity: ObvCryptoIdentity, nameForCurrentDevice: String, within obvContext: ObvContext) throws { + guard let ownedIdentity = try OwnedIdentity.get(ownedCryptoIdentity, delegateManager: delegateManager, within: obvContext) else { + throw ObvIdentityManagerError.ownedIdentityNotFound + } + ownedIdentity.setCurrentDeviceNameAfterBackupRestore(newName: nameForCurrentDevice) + } + + + // MARK: - API related to contact identities + + + public func getDateOfLastBootstrappedContactDeviceDiscovery(forContactCryptoId contactCryptoId: ObvCryptoIdentity, ofOwnedCryptoId ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Date { + return try ContactIdentity.getDateOfLastBootstrappedContactDeviceDiscovery(contactIdentity: contactCryptoId, ownedIdentity: ownedCryptoId, within: obvContext.context) + } + + + public func setDateOfLastBootstrappedContactDeviceDiscovery(forContactCryptoId contactCryptoId: ObvCryptoIdentity, ofOwnedCryptoId ownedCryptoId: ObvCryptoIdentity, to newDate: Date, within obvContext: ObvContext) throws { + guard let contact = try ContactIdentity.get(contactIdentity: contactCryptoId, ownedIdentity: ownedCryptoId, delegateManager: delegateManager, within: obvContext) else { + throw Self.makeError(message: "Could not find contact") + } + contact.setDateOfLastBootstrappedContactDeviceDiscovery(to: newDate) + } + + public func addContactIdentity(_ contactIdentity: ObvCryptoIdentity, with identityCoreDetails: ObvIdentityCoreDetails, andTrustOrigin trustOrigin: TrustOrigin, forOwnedIdentity ownedIdentity: ObvCryptoIdentity, setIsOneToOneTo newOneToOneValue: Bool, within obvContext: ObvContext) throws { guard let ownedIdentity = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } guard ContactIdentity(cryptoIdentity: contactIdentity, identityCoreDetails: identityCoreDetails, trustOrigin: trustOrigin, ownedIdentity: ownedIdentity, isOneToOne: newOneToOneValue, delegateManager: delegateManager) != nil else { throw makeError(message: "Could not create ContactIdentity instance") } } + - public func addTrustOriginIfTrustWouldBeIncreased(_ trustOrigin: TrustOrigin, toContactIdentity contactIdentity: ObvCryptoIdentity, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, setIsOneToOneTo newOneToOneValue: Bool, within obvContext: ObvContext) throws { + public func addTrustOriginIfTrustWouldBeIncreasedAndSetContactAsOneToOne(_ trustOrigin: TrustOrigin, toContactIdentity contactIdentity: ObvCryptoIdentity, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { guard let contactObj = try ContactIdentity.get(contactIdentity: contactIdentity, ownedIdentity: ownedIdentity, delegateManager: delegateManager, within: obvContext) else { assertionFailure() throw Self.makeError(message: "Could not find ContactIdentity") } try contactObj.addTrustOriginIfTrustWouldBeIncreased(trustOrigin, delegateManager: delegateManager) - contactObj.setIsOneToOne(to: newOneToOneValue) + contactObj.setIsOneToOne(to: true) } public func getTrustOrigins(forContactIdentity contactIdentity: ObvCryptoIdentity, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> [TrustOrigin] { @@ -1012,12 +1208,16 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getContactsOfOwnedIdentity(_ identity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Set { guard let ownedIdentity = try OwnedIdentity.get(identity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.ownedIdentityNotFound.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.ownedIdentityNotFound } - return Set(ownedIdentity.contactIdentities.map { return $0.cryptoIdentity }) + return Set(ownedIdentity.contactIdentities.compactMap { return $0.cryptoIdentity }) } - - + + + public func getContactsWithNoDeviceOfOwnedIdentity(_ ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Set { + return try ContactIdentity.getCryptoIdentitiesOfContactsWithoutDevice(ownedCryptoId: ownedCryptoId, within: obvContext.context) + } + public func getIdentityDetailsOfContactIdentity(_ contactIdentity: ObvCryptoIdentity, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> (publishedIdentityDetails: ObvIdentityDetails?, trustedIdentityDetails: ObvIdentityDetails) { guard let contactObj = try ContactIdentity.get(contactIdentity: contactIdentity, ownedIdentity: ownedIdentity, delegateManager: delegateManager, within: obvContext) else { throw makeError(message: "Could not find contact") } let publishedIdentityDetails = contactObj.publishedIdentityDetails?.getIdentityDetails(identityPhotosDirectory: delegateManager.identityPhotosDirectory) @@ -1026,7 +1226,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { } return (publishedIdentityDetails, trustedIdentityDetails) } - + public func getPublishedIdentityDetailsOfContactIdentity(_ identity: ObvCryptoIdentity, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> (contactIdentityDetailsElements: IdentityDetailsElements, photoURL: URL?)? { @@ -1042,7 +1242,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { photoServerKeyAndLabel: publishedIdentityDetails.photoServerKeyAndLabel) return (contactIdentityDetailsElements, publishedDetails.photoURL) } - + public func getTrustedIdentityDetailsOfContactIdentity(_ identity: ObvCryptoIdentity, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> (contactIdentityDetailsElements: IdentityDetailsElements, photoURL: URL?) { @@ -1058,29 +1258,29 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { photoServerKeyAndLabel: trustedIdentityDetails.photoServerKeyAndLabel) return (contactIdentityDetailsElements, trustedDetails.photoURL) } - + public func updateTrustedIdentityDetailsOfContactIdentity(_ identity: ObvCryptoIdentity, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, with newContactIdentityDetails: ObvIdentityDetails, within obvContext: ObvContext) throws { guard let contactIdentity = try ContactIdentity.get(contactIdentity: identity, ownedIdentity: ownedIdentity, delegateManager: delegateManager, within: obvContext) else { throw makeError(message: "Could not find contact") } try contactIdentity.updateTrustedDetailsWithPublishedDetails(newContactIdentityDetails, delegateManager: delegateManager) } - - + + public func updateDownloadedPhotoOfContactIdentity(_ identity: ObvCryptoIdentity, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, version: Int, photo: Data, within obvContext: ObvContext) throws { guard let contactIdentity = try ContactIdentity.get(contactIdentity: identity, ownedIdentity: ownedIdentity, delegateManager: delegateManager, within: obvContext) else { throw makeError(message: "Could not find contact") } try contactIdentity.updateContactPhoto(withData: photo, version: version, delegateManager: delegateManager, within: obvContext) } - - + + public func updatePublishedIdentityDetailsOfContactIdentity(_ identity: ObvCryptoIdentity, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, with newContactIdentityDetailsElements: IdentityDetailsElements, allowVersionDowngrade: Bool, within obvContext: ObvContext) throws { guard let contactIdentity = try ContactIdentity.get(contactIdentity: identity, ownedIdentity: ownedIdentity, delegateManager: delegateManager, within: obvContext) else { throw makeError(message: "Could not find contact") } try contactIdentity.updatePublishedDetailsAndTryToAutoTrustThem(with: newContactIdentityDetailsElements, allowVersionDowngrade: allowVersionDowngrade, delegateManager: delegateManager) } - + public func isIdentity(_ contactIdentity: ObvCryptoIdentity, aContactIdentityOfTheOwnedIdentity ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool { return try ContactIdentity.get(contactIdentity: contactIdentity, ownedIdentity: ownedIdentity, delegateManager: delegateManager, within: obvContext) != nil } - + public func deleteContactIdentity(_ contactIdentity: ObvCryptoIdentity, forOwnedIdentity ownedIdentity: ObvCryptoIdentity, failIfContactIsPartOfACommonGroup: Bool, within obvContext: ObvContext) throws { if let contactIdentityObject = try ContactIdentity.get(contactIdentity: contactIdentity, ownedIdentity: ownedIdentity, delegateManager: delegateManager, within: obvContext) { @@ -1108,7 +1308,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { guard let contactIdentityObject = try ContactIdentity.get(contactIdentity: contactIdentity, ownedIdentity: ownedIdentity, delegateManager: delegateManager, within: obvContext) else { throw makeError(message: "Could not find contact identity") } return contactIdentityObject.isRevokedAsCompromised } - + public func isContactIdentityActive(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool { guard let contactIdentityObject = try ContactIdentity.get(contactIdentity: contactIdentity, ownedIdentity: ownedIdentity, delegateManager: delegateManager, within: obvContext) else { throw makeError(message: "Could not find contact identity") } @@ -1134,24 +1334,24 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { // MARK: - API related to contact devices - public func addDeviceForContactIdentity(_ contactIdentity: ObvCryptoIdentity, withUid uid: UID, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { + public func addDeviceForContactIdentity(_ contactIdentity: ObvCryptoIdentity, withUid uid: UID, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, createdDuringChannelCreation: Bool, within obvContext: ObvContext) throws { guard let contactIdentity = try ContactIdentity.get(contactIdentity: contactIdentity, - ownedIdentity: ownedIdentity, - delegateManager: delegateManager, - within: obvContext) else { + ownedIdentity: ownedIdentity, + delegateManager: delegateManager, + within: obvContext) else { throw ObvIdentityManagerImplementation.makeError(message: "Could not find contact identity") } - try contactIdentity.addIfNotExistDeviceWith(uid: uid, flowId: obvContext.flowId) + try contactIdentity.addIfNotExistDeviceWith(uid: uid, createdDuringChannelCreation: createdDuringChannelCreation, flowId: obvContext.flowId) } public func removeDeviceForContactIdentity(_ contactIdentity: ObvCryptoIdentity, withUid uid: UID, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { guard let contactIdentity = try ContactIdentity.get(contactIdentity: contactIdentity, - ownedIdentity: ownedIdentity, - delegateManager: delegateManager, - within: obvContext) - else { - throw ObvIdentityManagerImplementation.makeError(message: "Could not get contact identity") + ownedIdentity: ownedIdentity, + delegateManager: delegateManager, + within: obvContext) + else { + throw ObvIdentityManagerImplementation.makeError(message: "Could not get contact identity") } try contactIdentity.removeIfExistsDeviceWith(uid: uid, flowId: obvContext.flowId) } @@ -1192,12 +1392,12 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { throw ObvIdentityManagerImplementation.makeError(message: "Could not get contact identity of owned identity") } for device in contactIdentityObj.devices { - obvContext.delete(device) + try device.deleteContactDevice() } } // MARK: - API related to contact groups - + /// This method returns the group information (and photo) corresponding to the published details of the joined group. /// If a photoURL is present in the `GroupInformationWithPhoto`, this method will copy this photo and create server label/key for it. public func createContactGroupOwned(ownedIdentity: ObvCryptoIdentity, groupInformationWithPhoto: GroupInformationWithPhoto, pendingGroupMembers: Set, within obvContext: ObvContext) throws -> GroupInformationWithPhoto { @@ -1206,13 +1406,17 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { let groupUid = groupInformationWithPhoto.groupUid - // Since we are creating a group, we expect that the GroupInformationWithPhoto does not contain a server key/label - assert(groupInformationWithPhoto.groupDetailsElementsWithPhoto.photoServerKeyAndLabel == nil) - // If the GroupInformationWithPhoto contains a photo, we need to generate a server key/label for it. // We then update the GroupInformationWithPhoto in order for this server key/label to be stored in the created owned group let updatedGroupInformationWithPhoto: GroupInformationWithPhoto - if groupInformationWithPhoto.photoURL == nil { + if let photoServerKeyAndLabel = groupInformationWithPhoto.groupDetailsElementsWithPhoto.photoServerKeyAndLabel { + // This group was clearely created on another owned device + _ = GroupServerUserData.createForOwnedGroupDetails(ownedIdentity: ownedIdentity, + label: photoServerKeyAndLabel.label, + groupUid: groupUid, + within: obvContext) + updatedGroupInformationWithPhoto = groupInformationWithPhoto + } else if groupInformationWithPhoto.photoURL == nil { updatedGroupInformationWithPhoto = groupInformationWithPhoto } else { let photoServerKeyAndLabel = PhotoServerKeyAndLabel.generate(with: prng) @@ -1229,12 +1433,12 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { delegateManager: delegateManager, within: obvContext) - + return try groupOwned.getPublishedOwnedGroupInformationWithPhoto(identityPhotosDirectory: delegateManager.identityPhotosDirectory) } - - + + public func createContactGroupJoined(ownedIdentity: ObvCryptoIdentity, groupInformation: GroupInformation, groupOwner: ObvCryptoIdentity, pendingGroupMembers: Set, within obvContext: ObvContext) throws { guard groupInformation.groupOwnerIdentity != ownedIdentity else { throw makeError(message: "The group owner is the owned identity") } _ = try ContactGroupJoined(groupInformation: groupInformation, @@ -1249,15 +1453,15 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func transferPendingMemberToGroupMembersOfContactGroupOwned(ownedIdentity: ObvCryptoIdentity, groupUid: UID, pendingMember: ObvCryptoIdentity, within obvContext: ObvContext, groupMembersChangedCallback: () throws -> Void) throws { guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let group = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } guard try isIdentity(pendingMember, aContactIdentityOfTheOwnedIdentity: ownedIdentity, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotContact.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotContact } guard try isContactIdentityActive(ownedIdentity: ownedIdentity, contactIdentity: pendingMember, within: obvContext) else { @@ -1265,7 +1469,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { } guard let contactIdentity = try ContactIdentity.get(contactIdentity: pendingMember, ownedIdentity: ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotContact.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotContact } try group.transferPendingMemberToGroupMembersForGroupOwned(contactIdentity: contactIdentity) @@ -1277,17 +1481,17 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func transferGroupMemberToPendingMembersOfContactGroupOwnedAndMarkPendingMemberAsDeclined(ownedIdentity: ObvCryptoIdentity, groupUid: UID, groupMember: ObvCryptoIdentity, within obvContext: ObvContext, groupMembersChangedCallback: () throws -> Void) throws { guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let group = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } guard try isIdentity(groupMember, aContactIdentityOfTheOwnedIdentity: ownedIdentity, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotContact.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotContact } - + try group.transferGroupMemberToPendingMembersForGroupOwned(contactCryptoIdentity: groupMember) try markPendingMemberAsDeclined(ownedIdentity: ownedIdentity, groupUid: groupUid, pendingMember: groupMember, within: obvContext) @@ -1300,47 +1504,47 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func addPendingMembersToContactGroupOwned(ownedIdentity: ObvCryptoIdentity, groupUid: UID, newPendingMembers: Set, within obvContext: ObvContext, groupMembersChangedCallback: () throws -> Void) throws { guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let group = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } - + try group.add(newPendingMembers: newPendingMembers, delegateManager: delegateManager) try groupMembersChangedCallback() - + } public func removePendingAndMembersToContactGroupOwned(ownedIdentity: ObvCryptoIdentity, groupUid: UID, pendingOrMembersToRemove: Set, within obvContext: ObvContext, groupMembersChangedCallback: () throws -> Void) throws { guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let group = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } - + try group.remove(pendingOrGroupMembers: pendingOrMembersToRemove) try groupMembersChangedCallback() - + } public func markPendingMemberAsDeclined(ownedIdentity: ObvCryptoIdentity, groupUid: UID, pendingMember: ObvCryptoIdentity, within obvContext: ObvContext) throws { guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } - + guard let groupOwned = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } - + try groupOwned.markPendingMemberAsDeclined(pendingGroupMember: pendingMember) } @@ -1349,56 +1553,52 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func unmarkDeclinedPendingMemberAsDeclined(ownedIdentity: ObvCryptoIdentity, groupUid: UID, pendingMember: ObvCryptoIdentity, within obvContext: ObvContext) throws { guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupOwned = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: ObvIdentityManagerImplementation.errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } try groupOwned.unmarkDeclinedPendingMemberAsDeclined(pendingGroupMember: pendingMember) } - - + + public func updatePublishedDetailsOfContactGroupJoined(ownedIdentity: ObvCryptoIdentity, groupInformation: GroupInformation, within obvContext: ObvContext) throws { - - let errorDomain = ObvIdentityManagerImplementation.errorDomain guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupJoined = try ContactGroupJoined.get(groupUid: groupInformation.groupUid, groupOwnerCryptoIdentity: groupInformation.groupOwnerIdentity, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } - + try groupJoined.updateDetailsPublished(with: groupInformation.groupDetailsElements, delegateManager: delegateManager) } - + public func updateDownloadedPhotoOfContactGroupJoined(ownedIdentity: ObvCryptoIdentity, groupOwner: ObvCryptoIdentity, groupUid: UID, version: Int, photo: Data, within obvContext: ObvContext) throws { - let errorDomain = ObvIdentityManagerImplementation.errorDomain guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupJoined = try ContactGroupJoined.get(groupUid: groupUid, groupOwnerCryptoIdentity: groupOwner, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } try groupJoined.updatePhoto(withData: photo, ofDetailsWithVersion: version, delegateManager: delegateManager, within: obvContext) } - + public func updateDownloadedPhotoOfContactGroupOwned(ownedIdentity: ObvCryptoIdentity, groupUid: UID, version: Int, photo: Data, within obvContext: ObvContext) throws { - let errorDomain = ObvIdentityManagerImplementation.errorDomain guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupOwned = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } try groupOwned.updatePhoto(withData: photo, ofDetailsWithVersion: version, delegateManager: delegateManager, within: obvContext) } @@ -1406,47 +1606,41 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func trustPublishedDetailsOfContactGroupJoined(ownedIdentity: ObvCryptoIdentity, groupUid: UID, groupOwner: ObvCryptoIdentity, within obvContext: ObvContext) throws { - let errorDomain = ObvIdentityManagerImplementation.errorDomain - guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupJoined = try ContactGroupJoined.get(groupUid: groupUid, groupOwnerCryptoIdentity: groupOwner, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } try groupJoined.trustDetailsPublished(within: obvContext, delegateManager: delegateManager) } - + public func updateLatestDetailsOfContactGroupOwned(ownedIdentity: ObvCryptoIdentity, groupUid: UID, with newGroupDetails: GroupDetailsElementsWithPhoto, within obvContext: ObvContext) throws { - let errorDomain = ObvIdentityManagerImplementation.errorDomain - guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } - + guard let groupOwned = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } - + try groupOwned.updateDetailsLatest(with: newGroupDetails, delegateManager: delegateManager) } - + public func setPhotoServerKeyAndLabelForContactGroupOwned(ownedIdentity: ObvCryptoIdentity, groupUid: UID, within obvContext: ObvContext) throws -> PhotoServerKeyAndLabel { - - let errorDomain = ObvIdentityManagerImplementation.errorDomain - + guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } - + guard let groupOwned = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } guard let publishedPhotoURL = groupOwned.publishedDetails.getPhotoURL(identityPhotosDirectory: delegateManager.identityPhotosDirectory) else { @@ -1469,42 +1663,38 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { return photoServerKeyAndLabel } - + public func discardLatestDetailsOfContactGroupOwned(ownedIdentity: ObvCryptoIdentity, groupUid: UID, within obvContext: ObvContext) throws { - let errorDomain = ObvIdentityManagerImplementation.errorDomain guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupOwned = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } try groupOwned.discardDetailsLatest(delegateManager: delegateManager) } public func publishLatestDetailsOfContactGroupOwned(ownedIdentity: ObvCryptoIdentity, groupUid: UID, within obvContext: ObvContext) throws { - let errorDomain = ObvIdentityManagerImplementation.errorDomain guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupOwned = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } try groupOwned.publishDetailsLatest(delegateManager: delegateManager) } - + public func updatePendingMembersAndGroupMembersOfContactGroupJoined(ownedIdentity: ObvCryptoIdentity, groupUid: UID, groupOwner: ObvCryptoIdentity, groupMembers: Set, pendingGroupMembers: Set, groupMembersVersion: Int, within obvContext: ObvContext) throws { - let errorDomain = ObvIdentityManagerImplementation.errorDomain - guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } - + guard let groupJoined = try ContactGroupJoined.get(groupUid: groupUid, groupOwnerCryptoIdentity: groupOwner, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } try groupJoined.updatePendingMembersAndGroupMembers(groupMembersWithCoreDetails: groupMembers, @@ -1512,21 +1702,38 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { groupMembersVersion: groupMembersVersion, delegateManager: delegateManager, flowId: obvContext.flowId) + + } + + + public func updatePendingMembersAndGroupMembersOfContactGroupOwned(ownedIdentity: ObvCryptoIdentity, groupUid: UID, groupMembers: Set, pendingGroupMembers: Set, groupMembersVersion: Int, within obvContext: ObvContext) throws { + guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned + } + + guard let groupOwned = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { + throw ObvIdentityManagerError.groupDoesNotExist + } + + try groupOwned.updatePendingMembersAndGroupMembers(groupMembersWithCoreDetails: groupMembers, + pendingMembersWithCoreDetails: pendingGroupMembers, + groupMembersVersion: groupMembersVersion, + delegateManager: delegateManager, + flowId: obvContext.flowId) + } /// When a contact deletes her owned identity, this method gets called to delete this identity from groups v1 that we joined, without waiting for a group update from the group owner. public func removeContactFromPendingAndGroupMembersOfContactGroupJoined(ownedIdentity: ObvCryptoIdentity, groupOwner: ObvCryptoIdentity, groupUid: UID, contactIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { - let errorDomain = ObvIdentityManagerImplementation.errorDomain - guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupJoined = try ContactGroupJoined.get(groupUid: groupUid, groupOwnerCryptoIdentity: groupOwner, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } try groupJoined.removeContactFromPendingAndGroupMembers(contactCryptoIdentity: contactIdentity) @@ -1535,9 +1742,8 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getGroupOwnedStructure(ownedIdentity: ObvCryptoIdentity, groupUid: UID, within obvContext: ObvContext) throws -> GroupStructure? { - let errorDomain = ObvIdentityManagerImplementation.errorDomain guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupOwned = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { return nil @@ -1547,9 +1753,8 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getGroupJoinedStructure(ownedIdentity: ObvCryptoIdentity, groupUid: UID, groupOwner: ObvCryptoIdentity, within obvContext: ObvContext) throws -> GroupStructure? { - let errorDomain = ObvIdentityManagerImplementation.errorDomain guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupJoined = try ContactGroupJoined.get(groupUid: groupUid, groupOwnerCryptoIdentity: groupOwner, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { // When the group cannot be found, we return nil to indicate that this is the case. @@ -1560,9 +1765,8 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getAllGroupStructures(ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Set { - let errorDomain = ObvIdentityManagerImplementation.errorDomain guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } let groups = try ContactGroup.getAll(ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) let groupStructures = Set(try groups.map({ try $0.getGroupStructure(identityPhotosDirectory: delegateManager.identityPhotosDirectory) })) @@ -1572,14 +1776,12 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getGroupOwnedInformationAndPublishedPhoto(ownedIdentity: ObvCryptoIdentity, groupUid: UID, within obvContext: ObvContext) throws -> GroupInformationWithPhoto { - let errorDomain = ObvIdentityManagerImplementation.errorDomain - guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupOwned = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } let groupInformationWithPhoto = try groupOwned.getPublishedOwnedGroupInformationWithPhoto(identityPhotosDirectory: delegateManager.identityPhotosDirectory) @@ -1589,14 +1791,12 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func getGroupJoinedInformationAndPublishedPhoto(ownedIdentity: ObvCryptoIdentity, groupUid: UID, groupOwner: ObvCryptoIdentity, within obvContext: ObvContext) throws -> GroupInformationWithPhoto { - let errorDomain = ObvIdentityManagerImplementation.errorDomain - guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupJoined = try ContactGroupJoined.get(groupUid: groupUid, groupOwnerCryptoIdentity: groupOwner, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } let groupInformationWithPhoto = try groupJoined.getPublishedJoinedGroupInformationWithPhoto(identityPhotosDirectory: delegateManager.identityPhotosDirectory) @@ -1607,10 +1807,8 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func deleteContactGroupJoined(ownedIdentity: ObvCryptoIdentity, groupUid: UID, groupOwner: ObvCryptoIdentity, within obvContext: ObvContext) throws { - let errorDomain = ObvIdentityManagerImplementation.errorDomain - guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupJoined = try ContactGroupJoined.get(groupUid: groupUid, groupOwnerCryptoIdentity: groupOwner, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { @@ -1624,10 +1822,8 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func deleteContactGroupOwned(ownedIdentity: ObvCryptoIdentity, groupUid: UID, deleteEvenIfGroupMembersStillExist: Bool, within obvContext: ObvContext) throws { - let errorDomain = ObvIdentityManagerImplementation.errorDomain - guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupOwned = try ContactGroupOwned.get(groupUid: groupUid, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { @@ -1636,7 +1832,7 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { if !deleteEvenIfGroupMembersStillExist { guard groupOwned.groupMembers.isEmpty && groupOwned.pendingGroupMembers.isEmpty else { - throw ObvIdentityManagerError.ownedContactGroupStillHasMembersOrPendingMembers.error(withDomain: errorDomain) + throw ObvIdentityManagerError.ownedContactGroupStillHasMembersOrPendingMembers } } @@ -1648,17 +1844,15 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { /// This method is exclusively called from the ProcessInvitationStep of the GroupInvitationProtocol. public func forceUpdateOfContactGroupJoined(ownedIdentity: ObvCryptoIdentity, authoritativeGroupInformation: GroupInformation, within obvContext: ObvContext) throws { - let errorDomain = ObvIdentityManagerImplementation.errorDomain - guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupJoined = try ContactGroupJoined.get(groupUid: authoritativeGroupInformation.groupUid, groupOwnerCryptoIdentity: authoritativeGroupInformation.groupOwnerIdentity, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } try groupJoined.resetGroupDetailsWithAuthoritativeDetailsIfRequired( @@ -1671,14 +1865,12 @@ extension ObvIdentityManagerImplementation: ObvIdentityDelegate { public func resetGroupMembersVersionOfContactGroupJoined(ownedIdentity: ObvCryptoIdentity, groupUid: UID, groupOwner: ObvCryptoIdentity, within obvContext: ObvContext) throws { - let errorDomain = ObvIdentityManagerImplementation.errorDomain - guard let ownedIdentityObject = try OwnedIdentity.get(ownedIdentity, delegateManager: delegateManager, within: obvContext) else { - throw ObvIdentityManagerError.cryptoIdentityIsNotOwned.error(withDomain: errorDomain) + throw ObvIdentityManagerError.cryptoIdentityIsNotOwned } guard let groupJoined = try ContactGroupJoined.get(groupUid: groupUid, groupOwnerCryptoIdentity: groupOwner, ownedIdentity: ownedIdentityObject, delegateManager: delegateManager) else { - throw ObvIdentityManagerError.groupDoesNotExist.error(withDomain: errorDomain) + throw ObvIdentityManagerError.groupDoesNotExist } try groupJoined.resetGroupMembersVersionOfContactGroupJoined() @@ -1811,12 +2003,7 @@ extension ObvIdentityManagerImplementation: ObvSolveChallengeDelegate { return response } - - public func getApiKeyForOwnedIdentity(_ identity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> UUID? { - return try OwnedIdentity.getApiKey(identity, within: obvContext) - } - } @@ -1855,7 +2042,8 @@ extension ObvIdentityManagerImplementation { } var result = [ObvCryptoIdentity: Set]() ownedIdentity.contactIdentities.forEach { contact in - result[contact.cryptoIdentity] = contact.allCapabilities + guard let contactCryptoIdentity = contact.cryptoIdentity else { assertionFailure(); return } + result[contactCryptoIdentity] = contact.allCapabilities } return result } @@ -1944,6 +2132,100 @@ extension ObvIdentityManagerImplementation { } +// MARK: - API related to sync between owned devices + +extension ObvIdentityManagerImplementation { + + public func processSyncAtom(_ syncAtom: ObvSyncAtom, ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { + guard let ownedIdentity = try OwnedIdentity.get(ownedCryptoIdentity, delegateManager: delegateManager, within: obvContext) else { + throw ObvIdentityManagerError.ownedIdentityNotFound + } + try ownedIdentity.processSyncAtom(syncAtom, delegateManager: delegateManager) + } + +} + + +// MARK: - Getting informations about missing photos + +extension ObvIdentityManagerImplementation { + + /// The user can request the (re)download of missing photos for her contacts. This is a helper method returnings the required informations about all the contacts that have a photoFilename that points to an URL on disk where no photo can be found. The engine uses this method to request the (re)download of all photos corresponding to the returned informations. + public func getInformationsAboutContactsWithMissingContactPictureOnDisk(within obvContext: ObvContext) throws -> [(ownedCryptoId: ObvCryptoIdentity, contactCryptoId: ObvCryptoIdentity, contactIdentityDetailsElements: IdentityDetailsElements)] { + + let identityPhotosDirectory = delegateManager.identityPhotosDirectory + let contatInfos = try ContactIdentityDetails.getInfosAboutContactsHavingPhotoFilename(identityPhotosDirectory: identityPhotosDirectory, within: obvContext) + + let allPhotoURLOnDisk = try getAllPhotoURLOnDisk() + + let contatInfosWithMissingPhotoOnDisk = contatInfos.filter { info in + return !allPhotoURLOnDisk.contains(info.photoURL) + } + + return contatInfosWithMissingPhotoOnDisk.map { infos in + (infos.ownedCryptoId, infos.contactCryptoId, infos.contactIdentityDetailsElements) + } + + } + + + public func getInformationsAboutOwnedIdentitiesWithMissingPictureOnDisk(within obvContext: ObvContext) throws -> [(ownedCryptoId: ObvCryptoIdentity, ownedIdentityDetailsElements: IdentityDetailsElements)] { + + let identityPhotosDirectory = delegateManager.identityPhotosDirectory + let ownedInfos = try OwnedIdentityDetailsPublished.getInfosAboutOwnedIdentitiesHavingPhotoFilename(identityPhotosDirectory: identityPhotosDirectory, within: obvContext) + + let allPhotoURLOnDisk = try getAllPhotoURLOnDisk() + + let ownedInfosWithMissingPhotoOnDisk = ownedInfos.filter { info in + return !allPhotoURLOnDisk.contains(info.photoURL) + } + + return ownedInfosWithMissingPhotoOnDisk.map { infos in + (infos.ownedCryptoId, infos.ownedIdentityDetailsElements) + } + + } + + + /// The user can request the (re)download of missing photos for her groups v1. This is a helper method returnings the required informations about all the groups that have a photoFilename that points to an URL on disk where no photo can be found. The engine uses this method to request the (re)download of all photos corresponding to the returned informations. + public func getInformationsAboutGroupsV1WithMissingContactPictureOnDisk(within obvContext: ObvContext) throws -> [(ownedIdentity: ObvCryptoIdentity, groupInfo: GroupInformation)] { + + let identityPhotosDirectory = delegateManager.identityPhotosDirectory + let groupInfos = try ContactGroupDetails.getInfosAboutGroupsHavingPhotoFilename(identityPhotosDirectory: identityPhotosDirectory, within: obvContext) + + let allPhotoURLOnDisk = try getAllPhotoURLOnDisk() + + let groupInfosWithMissingPhotoOnDisk = groupInfos.filter { info in + return !allPhotoURLOnDisk.contains(info.photoURL) + } + + return groupInfosWithMissingPhotoOnDisk.map { infos in + (infos.ownedIdentity, infos.groupInformation) + } + + } + + + /// The user can request the (re)download of missing photos for her groups v2. This is a helper method returnings the required informations about all the groups that have a photoFilename that points to an URL on disk where no photo can be found. The engine uses this method to request the (re)download of all photos corresponding to the returned informations. + public func getInformationsAboutGroupsV2WithMissingContactPictureOnDisk(within obvContext: ObvContext) throws -> [(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, serverPhotoInfo: GroupV2.ServerPhotoInfo)] { + + let identityPhotosDirectory = delegateManager.identityPhotosDirectory + let groupInfos = try ContactGroupV2Details.getInfosAboutGroupsHavingPhotoFilename(identityPhotosDirectory: identityPhotosDirectory, within: obvContext) + + let allPhotoURLOnDisk = try getAllPhotoURLOnDisk() + + let groupInfosWithMissingPhotoOnDisk = groupInfos.filter { info in + return !allPhotoURLOnDisk.contains(info.photoURL) + } + + return groupInfosWithMissingPhotoOnDisk.map { infos in + (infos.ownedIdentity, infos.groupIdentifier, infos.serverPhotoInfo) + } + + } + +} + // MARK: - Implementing ObvManager @@ -2051,7 +2333,10 @@ extension ObvIdentityManagerImplementation { private func getAllPhotoURLOnDisk() throws -> Set { - Set(try FileManager.default.contentsOfDirectory(at: self.identityPhotosDirectory, includingPropertiesForKeys: nil)) + Set( + try FileManager.default.contentsOfDirectory(at: self.identityPhotosDirectory, includingPropertiesForKeys: nil) + .map({ $0.resolvingSymlinksInPath() }) + ) } diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/OtherTypes/ObvIdentityManagerSyncSnapshotNode.swift b/Engine/ObvIdentityManager/ObvIdentityManager/OtherTypes/ObvIdentityManagerSyncSnapshotNode.swift new file mode 100644 index 00000000..35845c93 --- /dev/null +++ b/Engine/ObvIdentityManager/ObvIdentityManager/OtherTypes/ObvIdentityManagerSyncSnapshotNode.swift @@ -0,0 +1,89 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes +import ObvCrypto +import OlvidUtils +import ObvMetaManager + + +/// This is the top level `ObvSyncSnapshotNode` at the identity manager level. Its App counterpart is called `AppSyncSnapshotNode`. +struct ObvIdentityManagerSyncSnapshotNode: ObvSyncSnapshotNode, Codable { + + private let domain: Set + private let ownedCryptoIdentity: ObvCryptoIdentity + private let ownedIdentityNode: OwnedIdentitySyncSnapshotNode + + let id = Self.generateIdentifier() + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case ownedCryptoIdentity = "owned_identity" + case ownedIdentityNode = "owned_identity_node" + case domain = "domain" + } + + private static let defaultDomain: Set = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + + init(ownedCryptoIdentity: ObvCryptoIdentity, delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws { + self.ownedCryptoIdentity = ownedCryptoIdentity + guard let ownedIdentity = try OwnedIdentity.get(ownedCryptoIdentity, delegateManager: delegateManager, within: obvContext) else { + throw ObvError.couldNotFindOwnedIdentity + } + self.ownedIdentityNode = ownedIdentity.syncSnapshotNode + self.domain = Self.defaultDomain + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(domain, forKey: .domain) + try container.encode(ownedCryptoIdentity.getIdentity(), forKey: .ownedCryptoIdentity) + try container.encode(ownedIdentityNode, forKey: .ownedIdentityNode) + } + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + let ownedIdentityIdentity = try values.decode(Data.self, forKey: .ownedCryptoIdentity) + guard let ownedCryptoIdentity = ObvCryptoIdentity(from: ownedIdentityIdentity) else { + throw ObvError.couldNotParseOwnedIdentityIdentity + } + self.ownedCryptoIdentity = ownedCryptoIdentity + self.ownedIdentityNode = try values.decode(OwnedIdentitySyncSnapshotNode.self, forKey: .ownedIdentityNode) + } + + + func restore(prng: PRNGService, customDeviceName: String, delegateManager: ObvIdentityDelegateManager, within obvContext: ObvContext) throws { + var associations = SnapshotNodeManagedObjectAssociations() + try ownedIdentityNode.restoreInstance(cryptoIdentity: ownedCryptoIdentity, within: obvContext, associations: &associations) + try ownedIdentityNode.restoreRelationships(associations: associations, prng: prng, customDeviceName: customDeviceName, delegateManager: delegateManager, within: obvContext) + } + + + enum ObvError: Error { + case couldNotFindOwnedIdentity + case couldNotParseOwnedIdentityIdentity + case mismatchBetweenDomainAndValues + } + +} diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/OtherTypes/SnapshotNodeManagedObjectAssociations.swift b/Engine/ObvIdentityManager/ObvIdentityManager/OtherTypes/SnapshotNodeManagedObjectAssociations.swift new file mode 100644 index 00000000..02d606fe --- /dev/null +++ b/Engine/ObvIdentityManager/ObvIdentityManager/OtherTypes/SnapshotNodeManagedObjectAssociations.swift @@ -0,0 +1,74 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import OlvidUtils + +/// This type is used when restoring a snapshot +struct SnapshotNodeManagedObjectAssociations { + + private var association = [String: NSManagedObjectID]() + + mutating func associate>(_ object: NSManagedObject, to hashable: T) throws { + guard !association.keys.contains(hashable.id) else { + throw ObvError.theKeyAlreadyExists + } + association[hashable.id] = object.objectID + } + + + func getObject>(associatedTo hashable: G, within obvContext: ObvContext) throws -> T { + return try getObject(associatedTo: hashable, within: obvContext.context) + } + + + func getObject>(associatedTo hashable: G, within context: NSManagedObjectContext) throws -> T { + guard let objectID = association[hashable.id] else { + throw ObvError.objectNotFound + } + let object = try context.existingObject(with: objectID) + guard let typedObject = object as? T else { + throw ObvError.couldNotCastObject + } + return typedObject + } + + + func getObjectIfPresent>(associatedTo hashableOrNil: G?, within obvContext: ObvContext) throws -> T? { + return try getObjectIfPresent(associatedTo: hashableOrNil, within: obvContext.context) + } + + + func getObjectIfPresent>(associatedTo hashableOrNil: G?, within context: NSManagedObjectContext) throws -> T? { + guard let hashable = hashableOrNil else { + return nil + } + return try getObject(associatedTo: hashable, within: context) + } + + + enum ObvError: Error { + case theKeyAlreadyExists + case objectNotFound + case couldNotCastObject + case contextNotFound + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/Chunk.swift b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/Chunk.swift index 49630654..4388da97 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/Chunk.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/Chunk.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -70,6 +70,18 @@ public struct Chunk { } public func writeToURL(_ url: URL, offset: Int) throws { + + // Make sure the url exists + do { + let directory = url.deletingLastPathComponent() + if !FileManager.default.fileExists(atPath: directory.path) { + try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + } + if !FileManager.default.fileExists(atPath: url.path) { + FileManager.default.createFile(atPath: url.path, contents: nil) + } + } + let fd = open(url.path, O_RDWR) guard fd != -1 else { assertionFailure() @@ -112,12 +124,7 @@ public struct Chunk { public static func decrypt(encryptedChunkAtFileHandle fh: FileHandle, with key: AuthenticatedEncryptionKey) throws -> Chunk { fh.seek(toFileOffset: 0) - let encryptedChunkRaw: Data? - if #available(iOS 13.4, *) { - encryptedChunkRaw = try fh.readToEnd() - } else { - encryptedChunkRaw = fh.readDataToEndOfFile() - } + let encryptedChunkRaw = try fh.readToEnd() guard let data = encryptedChunkRaw else { throw Chunk.makeError(message: "No chunk data found at file handle") } let encryptedChunk = EncryptedData(data: data) return try decrypt(encryptedChunk: encryptedChunk, with: key) diff --git a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/DeviceNameUtils.swift b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/DeviceNameUtils.swift new file mode 100644 index 00000000..846a9312 --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/DeviceNameUtils.swift @@ -0,0 +1,57 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvCrypto +import ObvEncoder + + +public struct DeviceNameUtils { + + public static func encrypt(deviceName: String, for ownedIdentity: ObvCryptoIdentity, using prng: PRNGService) -> EncryptedData { + + let encodedDeviceName = [deviceName.trimmingWhitespacesAndNewlines().obvEncode()].obvEncode() + let unpaddedLength = encodedDeviceName.rawData.count + let paddedLength: Int = (1 + ((unpaddedLength-1)>>7)) << 7 // We pad to the smallest multiple of 128 larger than the actual length + let paddedEncodedDeviceName = encodedDeviceName.rawData + Data(count: paddedLength-unpaddedLength) + + let encryptedCurrentDeviceName = PublicKeyEncryption.encrypt(paddedEncodedDeviceName, using: ownedIdentity.publicKeyForPublicKeyEncryption, and: prng) + + return encryptedCurrentDeviceName + + } + + + public static func decrypt(encryptedDeviceName: EncryptedData, for ownedCryptoIdentity: ObvOwnedCryptoIdentity) -> String? { + + guard let paddedEncodedDeviceName = PublicKeyEncryption.decrypt(encryptedDeviceName, for: ownedCryptoIdentity), + let encodedDeviceName = ObvEncoded(withPaddedRawData: paddedEncodedDeviceName), + let listOfEncoded = [ObvEncoded](encodedDeviceName), + let encodedName = listOfEncoded.first, + let name = String(encodedName) + else { + assertionFailure() + return nil + } + + return name + + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/OwnedIdentityTransferRelayMessageResult.swift b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/OwnedIdentityTransferRelayMessageResult.swift new file mode 100644 index 00000000..b41d9e6e --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/OwnedIdentityTransferRelayMessageResult.swift @@ -0,0 +1,69 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvTypes + + +/// This type is used for a specific type of response of a server query, namely for the `ServerResponse.targetSendEphemeralIdentity` and the `ServerResponse.transferRelay` response. +public enum OwnedIdentityTransferRelayMessageResult: ObvCodable { + + case requestFailed + case requestSucceeded(payload: Data) + + + private var rawValue: Int { + switch self { + case .requestFailed: + return 0 + case .requestSucceeded: + return 1 + } + } + + + public func obvEncode() -> ObvEncoded { + switch self { + case .requestFailed: + return [rawValue.obvEncode()].obvEncode() + case .requestSucceeded(payload: let payload): + return [rawValue.obvEncode(), payload.obvEncode()].obvEncode() + } + } + + + public init?(_ obvEncoded: ObvEncoded) { + guard let listOfEncoded = [ObvEncoded](obvEncoded) else { return nil } + guard let encodedRawValue = listOfEncoded.first else { return nil } + guard let rawValue = Int(encodedRawValue) else { return nil } + switch rawValue { + case 0: + self = .requestFailed + case 1: + guard listOfEncoded.count == 2 else { assertionFailure(); return nil } + guard let payload = Data(listOfEncoded[1]) else { return nil } + self = .requestSucceeded(payload: payload) + default: + assertionFailure() + return nil + } + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/OwnedIdentityTransferWaitResult.swift b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/OwnedIdentityTransferWaitResult.swift new file mode 100644 index 00000000..45d01f1d --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/OwnedIdentityTransferWaitResult.swift @@ -0,0 +1,69 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvTypes + + +/// This type is used for a specific type of response of a server query concering the owned identity transfer protocol +public enum OwnedIdentityTransferWaitResult: ObvCodable { + + case requestFailed + case requestSucceeded(payload: Data) + + + private var rawValue: Int { + switch self { + case .requestFailed: + return 0 + case .requestSucceeded: + return 1 + } + } + + + public func obvEncode() -> ObvEncoded { + switch self { + case .requestFailed: + return [rawValue.obvEncode()].obvEncode() + case .requestSucceeded(payload: let payload): + return [rawValue.obvEncode(), payload.obvEncode()].obvEncode() + } + } + + + public init?(_ obvEncoded: ObvEncoded) { + guard let listOfEncoded = [ObvEncoded](obvEncoded) else { return nil } + guard let encodedRawValue = listOfEncoded.first else { return nil } + guard let rawValue = Int(encodedRawValue) else { return nil } + switch rawValue { + case 0: + self = .requestFailed + case 1: + guard listOfEncoded.count == 2 else { assertionFailure(); return nil } + guard let payload = Data(listOfEncoded[1]) else { return nil } + self = .requestSucceeded(payload: payload) + default: + assertionFailure() + return nil + } + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/SourceGetSessionNumberResult.swift b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/SourceGetSessionNumberResult.swift new file mode 100644 index 00000000..874bedca --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/SourceGetSessionNumberResult.swift @@ -0,0 +1,70 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvTypes + + +/// This type is used for a specific type of response of a server query, namely for the `ServerResponse.sourceGetSessionNumberMessage` response. +public enum SourceGetSessionNumberResult: ObvCodable { + + case requestFailed + case requestSucceeded(sourceConnectionId: String, sessionNumber: ObvOwnedIdentityTransferSessionNumber) + + + private var rawValue: Int { + switch self { + case .requestFailed: + return 0 + case .requestSucceeded: + return 1 + } + } + + + public func obvEncode() -> ObvEncoded { + switch self { + case .requestFailed: + return [rawValue.obvEncode()].obvEncode() + case .requestSucceeded(sourceConnectionId: let sourceConnectionId, sessionNumber: let sessionNumber): + return [rawValue.obvEncode(), sourceConnectionId.obvEncode(), sessionNumber.obvEncode()].obvEncode() + } + } + + + public init?(_ obvEncoded: ObvEncoded) { + guard let listOfEncoded = [ObvEncoded](obvEncoded) else { return nil } + guard let encodedRawValue = listOfEncoded.first else { return nil } + guard let rawValue = Int(encodedRawValue) else { return nil } + switch rawValue { + case 0: + self = .requestFailed + case 1: + guard listOfEncoded.count == 3 else { assertionFailure(); return nil } + guard let awsConnectionId = String(listOfEncoded[1]) else { return nil } + guard let sessionNumber = ObvOwnedIdentityTransferSessionNumber(listOfEncoded[2]) else { return nil } + self = .requestSucceeded(sourceConnectionId: awsConnectionId, sessionNumber: sessionNumber) + default: + assertionFailure() + return nil + } + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/SourceWaitForTargetConnectionResult.swift b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/SourceWaitForTargetConnectionResult.swift new file mode 100644 index 00000000..a94c8ef3 --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/SourceWaitForTargetConnectionResult.swift @@ -0,0 +1,70 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvTypes + + +/// This type is used for a specific type of response of a server query concering the owned identity transfer protocol +public enum SourceWaitForTargetConnectionResult: ObvCodable { + + case requestFailed + case requestSucceeded(targetConnectionId: String, payload: Data) + + + private var rawValue: Int { + switch self { + case .requestFailed: + return 0 + case .requestSucceeded: + return 1 + } + } + + + public func obvEncode() -> ObvEncoded { + switch self { + case .requestFailed: + return [rawValue.obvEncode()].obvEncode() + case .requestSucceeded(targetConnectionId: let targetConnectionId, payload: let payload): + return [rawValue.obvEncode(), targetConnectionId.obvEncode(), payload.obvEncode()].obvEncode() + } + } + + + public init?(_ obvEncoded: ObvEncoded) { + guard let listOfEncoded = [ObvEncoded](obvEncoded) else { return nil } + guard let encodedRawValue = listOfEncoded.first else { return nil } + guard let rawValue = Int(encodedRawValue) else { return nil } + switch rawValue { + case 0: + self = .requestFailed + case 1: + guard listOfEncoded.count == 3 else { assertionFailure(); return nil } + guard let targetConnectionId = String(listOfEncoded[1]) else { return nil } + guard let payload = Data(listOfEncoded[2]) else { return nil } + self = .requestSucceeded(targetConnectionId: targetConnectionId, payload: payload) + default: + assertionFailure() + return nil + } + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/TargetSendEphemeralIdentityResult.swift b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/TargetSendEphemeralIdentityResult.swift new file mode 100644 index 00000000..19f35329 --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/OwnedIdentityTransferWebSocketMessageResults/TargetSendEphemeralIdentityResult.swift @@ -0,0 +1,77 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvTypes + + +/// This type is used for a specific type of response of a server query, namely for the `ServerResponse.targetSendEphemeralIdentity` response. +public enum TargetSendEphemeralIdentityResult: ObvCodable { + + case requestSucceeded(otherConnectionId: String, payload: Data) + case incorrectTransferSessionNumber + case requestDidFail + + + private var rawValue: Int { + switch self { + case .requestSucceeded: + return 0 + case .incorrectTransferSessionNumber: + return 1 + case .requestDidFail: + return 2 + } + } + + + public func obvEncode() -> ObvEncoded { + switch self { + case .requestSucceeded(otherConnectionId: let otherConnectionId, payload: let payload): + return [rawValue.obvEncode(), otherConnectionId.obvEncode(), payload.obvEncode()].obvEncode() + case .incorrectTransferSessionNumber: + return [rawValue.obvEncode()].obvEncode() + case .requestDidFail: + return [rawValue.obvEncode()].obvEncode() + } + } + + + public init?(_ obvEncoded: ObvEncoded) { + guard let listOfEncoded = [ObvEncoded](obvEncoded) else { return nil } + guard let encodedRawValue = listOfEncoded.first else { return nil } + guard let rawValue = Int(encodedRawValue) else { return nil } + switch rawValue { + case 0: + guard listOfEncoded.count == 3 else { assertionFailure(); return nil } + guard let otherConnectionId = String(listOfEncoded[1]) else { return nil } + guard let payload = Data(listOfEncoded[2]) else { return nil } + self = .requestSucceeded(otherConnectionId: otherConnectionId, payload: payload) + case 1: + self = .incorrectTransferSessionNumber + case 2: + self = .requestDidFail + default: + assertionFailure() + return nil + } + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/TurnCredentials.swift b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/TurnCredentials.swift index de288c55..eac330e3 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/TurnCredentials.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/TurnCredentials.swift @@ -31,18 +31,3 @@ public struct TurnCredentials { self.password2 = password2 } } - -public struct TurnCredentialsWithTurnServers { - public let expiringUsername1: String - public let password1: String - public let expiringUsername2: String - public let password2: String - public let turnServersURL: [String] - public init(turnCredentials: TurnCredentials, turnServersURL: [String]) { - self.expiringUsername1 = turnCredentials.expiringUsername1 - self.password1 = turnCredentials.password1 - self.expiringUsername2 = turnCredentials.expiringUsername2 - self.password2 = turnCredentials.password2 - self.turnServersURL = turnServersURL - } -} diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvBackgroundTaskDelegate/ObvFlowDelegate.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvBackgroundTaskDelegate/ObvFlowDelegate.swift index ba27c7ca..43ad98b9 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvBackgroundTaskDelegate/ObvFlowDelegate.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvBackgroundTaskDelegate/ObvFlowDelegate.swift @@ -30,7 +30,7 @@ public protocol ObvFlowDelegate: ObvSimpleFlowDelegate { // Posting message and attachments - func addBackgroundActivityForPostingApplicationMessageAttachmentsWithinFlow(withFlowId flowId: FlowIdentifier, messageId: MessageIdentifier, attachmentIds: [AttachmentIdentifier]) throws + func addBackgroundActivityForPostingApplicationMessageAttachmentsWithinFlow(withFlowId flowId: FlowIdentifier, messageId: ObvMessageIdentifier, attachmentIds: [ObvAttachmentIdentifier]) throws // Resuming a protocol @@ -38,19 +38,19 @@ public protocol ObvFlowDelegate: ObvSimpleFlowDelegate { // Posting a return receipt (for message or an attachment) - func startBackgroundActivityForPostingReturnReceipt(messageId: MessageIdentifier, attachmentNumber: Int?) throws -> FlowIdentifier - func stopBackgroundActivityForPostingReturnReceipt(messageId: MessageIdentifier, attachmentNumber: Int?) throws + func startBackgroundActivityForPostingReturnReceipt(messageId: ObvMessageIdentifier, attachmentNumber: Int?) throws -> FlowIdentifier + func stopBackgroundActivityForPostingReturnReceipt(messageId: ObvMessageIdentifier, attachmentNumber: Int?) throws // Downloading messages, downloading/pausing attachment func startBackgroundActivityForDownloadingMessages(ownedIdentity: ObvCryptoIdentity) -> FlowIdentifier? - func attachmentDownloadDecisionHasBeenTaken(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) + func attachmentDownloadDecisionHasBeenTaken(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) // Deleting a message or an attachment - func startBackgroundActivityForDeletingAMessage(messageId: MessageIdentifier) -> FlowIdentifier? - func startBackgroundActivityForDeletingAnAttachment(attachmentId: AttachmentIdentifier) -> FlowIdentifier? + func startBackgroundActivityForDeletingAMessage(messageId: ObvMessageIdentifier) -> FlowIdentifier? + func startBackgroundActivityForDeletingAnAttachment(attachmentId: ObvAttachmentIdentifier) -> FlowIdentifier? // Handling the completion handler received together with a remote push notification diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvBackupDelegate/ObvBackupNotification.yml b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvBackupDelegate/ObvBackupNotification.yml deleted file mode 100644 index 9346d629..00000000 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvBackupDelegate/ObvBackupNotification.yml +++ /dev/null @@ -1,23 +0,0 @@ -import: - - Foundation - - ObvTypes - - ObvCrypto - - OlvidUtils -options: - - {key: post, value: postOnBackgroundQueue} - - {key: notificationCenterName, value: notificationDelegate} - - {key: notificationCenterType, value: ObvNotificationDelegate} - - {key: visibility, value: public} - - {key: objectInObserve, value: false} -notifications: -- name: newBackupSeedGenerated - params: - - {name: backupSeedString, type: String} - - {name: backupKeyInformation, type: BackupKeyInformation} - - {name: flowId, type: FlowIdentifier} -- name: backupSeedGenerationFailed - params: - - {name: flowId, type: FlowIdentifier} -- name: backupableManagerDatabaseContentChanged - params: - - {name: flowId, type: FlowIdentifier} diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelApplicationMessageToSend.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelApplicationMessageToSend.swift index 2d831335..5bff5db6 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelApplicationMessageToSend.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelApplicationMessageToSend.swift @@ -31,8 +31,12 @@ public struct ObvChannelApplicationMessageToSend: ObvChannelMessageToSend { public let withUserContent: Bool public let isVoipMessageForStartingCall: Bool - public init(toContactIdentities: Set, fromIdentity: ObvCryptoIdentity, messagePayload: Data, extendedMessagePayload: Data?, withUserContent: Bool, isVoipMessageForStartingCall: Bool, attachments: [Attachment]) { - self.channelType = ObvChannelSendChannelType.AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: toContactIdentities, fromOwnedIdentity: fromIdentity) + public init(toContactIdentities: Set, fromIdentity: ObvCryptoIdentity, messagePayload: Data, extendedMessagePayload: Data?, withUserContent: Bool, isVoipMessageForStartingCall: Bool, attachments: [Attachment], alsoPostToOtherOwnedDevices: Bool) { + if alsoPostToOtherOwnedDevices { + self.channelType = ObvChannelSendChannelType.AllConfirmedObliviousChannelsWithContactIdentitiesAndWithOtherDevicesOfOwnedIdentity(contactIdentities: toContactIdentities, fromOwnedIdentity: fromIdentity) + } else { + self.channelType = ObvChannelSendChannelType.AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: toContactIdentities, fromOwnedIdentity: fromIdentity) + } self.attachments = attachments self.messagePayload = messagePayload self.extendedMessagePayload = extendedMessagePayload diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelDialogMessageToSend.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelDialogMessageToSend.swift index 699cdae8..c35e88d9 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelDialogMessageToSend.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelDialogMessageToSend.swift @@ -41,28 +41,32 @@ public struct ObvChannelDialogMessageToSend: ObvChannelMessageToSend { } public enum ObvChannelDialogToSendType { + case inviteSent(contact: CryptoIdentityWithFullDisplayName) // Used within the protocol allowing establish trust case acceptInvite(contact: CryptoIdentityWithCoreDetails) // Used within the protocol allowing establish trust case invitationAccepted(contact: CryptoIdentityWithCoreDetails) // Used within the protocol allowing establish trust case sasExchange(contact: CryptoIdentityWithCoreDetails, sasToDisplay: Data, numberOfBadEnteredSas: Int) case sasConfirmed(contact: CryptoIdentityWithCoreDetails, sasToDisplay: Data, sasEntered: Data) case mutualTrustConfirmed(contact: CryptoIdentityWithCoreDetails) - case autoconfirmedContactIntroduction(contact: CryptoIdentityWithCoreDetails, mediatorIdentity: ObvCryptoIdentity) case acceptMediatorInvite(contact: CryptoIdentityWithCoreDetails, mediatorIdentity: ObvCryptoIdentity) - case increaseMediatorTrustLevelRequired(contact: CryptoIdentityWithCoreDetails, mediatorIdentity: ObvCryptoIdentity) case mediatorInviteAccepted(contact: CryptoIdentityWithCoreDetails, mediatorIdentity: ObvCryptoIdentity) case oneToOneInvitationSent(contact: ObvCryptoIdentity, ownedIdentity: ObvCryptoIdentity) case oneToOneInvitationReceived(contact: ObvCryptoIdentity, ownedIdentity: ObvCryptoIdentity) // Dialogs related to contact groups + case acceptGroupInvite(groupInformation: GroupInformation, pendingGroupMembers: Set, receivedMessageTimestamp: Date) - case increaseGroupOwnerTrustLevel(groupInformation: GroupInformation, pendingGroupMembers: Set, receivedMessageTimestamp: Date) // Dialogs related to contact groups V2 + case acceptGroupV2Invite(inviter: ObvCryptoId, group: ObvGroupV2) case freezeGroupV2Invite(inviter: ObvCryptoId, group: ObvGroupV2) + // Dialogs related to the synchronization between owned devices + + case syncRequestReceivedFromOtherOwnedDevice(otherOwnedDeviceUID: UID, syncAtom: ObvSyncAtom) // A special dialog allowing a protocol instance to notify the "user interface" that is should remove any previous dialog + case delete } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelServerQueryMessageToSend.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelServerQueryMessageToSend.swift index dc723473..c1194e5b 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelServerQueryMessageToSend.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelServerQueryMessageToSend.swift @@ -21,6 +21,7 @@ import Foundation import ObvEncoder import ObvCrypto import CryptoKit +import ObvTypes /// This structure allows to transfer a server query from the engine to the server. This is for example used to ask the server about the list of device uids of a given identity. public struct ObvChannelServerQueryMessageToSend: ObvChannelMessageToSend { @@ -56,6 +57,17 @@ extension ObvChannelServerQueryMessageToSend { case requestGroupBlobLock(groupIdentifier: GroupV2.Identifier, lockNonce: Data, signature: Data) case updateGroupBlob(groupIdentifier: GroupV2.Identifier, encodedServerAdminPublicKey: ObvEncoded, encryptedBlob: EncryptedData, lockNonce: Data, signature: Data) case getKeycloakData(serverURL: URL, serverLabel: UID) + case ownedDeviceDiscovery + case setOwnedDeviceName(ownedDeviceUID: UID, encryptedOwnedDeviceName: EncryptedData, isCurrentDevice: Bool) + case deactivateOwnedDevice(ownedDeviceUID: UID, isCurrentDevice: Bool) + case setUnexpiringOwnedDevice(ownedDeviceUID: UID) + // The following types concern the owned identity transfer protocol + case sourceGetSessionNumber(protocolInstanceUID: UID) + case sourceWaitForTargetConnection(protocolInstanceUID: UID) + case targetSendEphemeralIdentity(protocolInstanceUID: UID, transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, payload: Data) + case transferRelay(protocolInstanceUID: UID, connectionIdentifier: String, payload: Data, thenCloseWebSocket: Bool) + case transferWait(protocolInstanceUID: UID, connectionIdentifier: String) + case closeWebsocketConnection(protocolInstanceUID: UID) } } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelServerResponseMessageToSend.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelServerResponseMessageToSend.swift index 930e195b..f00ec183 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelServerResponseMessageToSend.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/MessageTypes/ObvChannelServerResponseMessageToSend.swift @@ -59,7 +59,13 @@ extension ObvChannelServerResponseMessageToSend { case requestGroupBlobLock(result: RequestGroupBlobLockResult) case updateGroupBlob(uploadResult: UploadResult) case getKeycloakData(result: GetUserDataResult) - + case ownedDeviceDiscovery(encryptedOwnedDeviceDiscoveryResult: EncryptedData) + case setOwnedDeviceName(success: Bool) + case sourceGetSessionNumberMessage(result: SourceGetSessionNumberResult) + case targetSendEphemeralIdentity(result: TargetSendEphemeralIdentityResult) + case transferRelay(result: OwnedIdentityTransferRelayMessageResult) + case transferWait(result: OwnedIdentityTransferWaitResult) + case sourceWaitForTargetConnection(result: SourceWaitForTargetConnectionResult) public func getEncodedInputs() -> [ObvEncoded] { switch self { @@ -86,6 +92,20 @@ extension ObvChannelServerResponseMessageToSend { return [uploadResult.obvEncode()] case .getKeycloakData(result: let result): return [result.obvEncode()] + case .ownedDeviceDiscovery(encryptedOwnedDeviceDiscoveryResult: let encryptedOwnedDeviceDiscoveryResult): + return [encryptedOwnedDeviceDiscoveryResult.obvEncode()] + case .setOwnedDeviceName(success: let success): + return [success.obvEncode()] + case .sourceGetSessionNumberMessage(result: let result): + return [result.obvEncode()] + case .targetSendEphemeralIdentity(result: let result): + return [result.obvEncode()] + case .transferRelay(result: let result): + return [result.obvEncode()] + case .transferWait(result: let result): + return [result.obvEncode()] + case .sourceWaitForTargetConnection(result: let result): + return [result.obvEncode()] } } } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelDelegate.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelDelegate.swift index 94c42fa8..29afbcd1 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelDelegate.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelDelegate.swift @@ -28,7 +28,7 @@ public protocol ObvChannelDelegate: ObvManager { // Posting a channel message to send /// The returned set contains all the crypto identities to which the message was successfully posted. - func post(_: ObvChannelMessageToSend, randomizedWith: PRNGService, within: ObvContext) throws -> [MessageIdentifier: Set] + func postChannelMessage(_: ObvChannelMessageToSend, randomizedWith: PRNGService, within: ObvContext) throws -> [ObvMessageIdentifier: Set] // Decrypting an application message @@ -51,6 +51,8 @@ public protocol ObvChannelDelegate: ObvManager { func updateReceiveSeedOfObliviousChannelBetweenTheCurrentDeviceOf(ownedIdentity: ObvCryptoIdentity, andRemoteIdentity: ObvCryptoIdentity, withRemoteDeviceUid: UID, with: Seed, within: ObvContext) throws func anObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ObvCryptoIdentity, andRemoteIdentity: ObvCryptoIdentity, withRemoteDeviceUid: UID, within: ObvContext) throws -> Bool + + func anObliviousChannelExistsBetweenCurrentDeviceUid(_ currentDeviceUid: UID, andRemoteDeviceUid remoteDeviceUid: UID, of remoteIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool func aConfirmedObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ObvCryptoIdentity, andRemoteIdentity: ObvCryptoIdentity, withRemoteDeviceUid: UID, within: ObvContext) throws -> Bool diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelNotification.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelNotification.swift index 131c60e6..1b4c9177 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelNotification.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelNotification.swift @@ -36,8 +36,8 @@ fileprivate struct OptionalWrapper { public enum ObvChannelNotification { case newConfirmedObliviousChannel(currentDeviceUid: UID, remoteCryptoIdentity: ObvCryptoIdentity, remoteDeviceUid: UID) case deletedConfirmedObliviousChannel(currentDeviceUid: UID, remoteCryptoIdentity: ObvCryptoIdentity, remoteDeviceUid: UID) - case networkReceivedMessageWasProcessed(messageId: MessageIdentifier, flowId: FlowIdentifier) - case protocolMessageDecrypted(protocolMessageId: MessageIdentifier, flowId: FlowIdentifier) + case networkReceivedMessageWasProcessed(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) + case protocolMessageDecrypted(protocolMessageId: ObvMessageIdentifier, flowId: FlowIdentifier) private enum Name { case newConfirmedObliviousChannel @@ -121,19 +121,19 @@ public enum ObvChannelNotification { } } - public static func observeNetworkReceivedMessageWasProcessed(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (MessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeNetworkReceivedMessageWasProcessed(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.networkReceivedMessageWasProcessed.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let messageId = notification.userInfo!["messageId"] as! MessageIdentifier + let messageId = notification.userInfo!["messageId"] as! ObvMessageIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(messageId, flowId) } } - public static func observeProtocolMessageDecrypted(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (MessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeProtocolMessageDecrypted(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.protocolMessageDecrypted.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let protocolMessageId = notification.userInfo!["protocolMessageId"] as! MessageIdentifier + let protocolMessageId = notification.userInfo!["protocolMessageId"] as! ObvMessageIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(protocolMessageId, flowId) } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelNotification.yml b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelNotification.yml deleted file mode 100644 index c4a3bddf..00000000 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelNotification.yml +++ /dev/null @@ -1,31 +0,0 @@ -import: - - Foundation - - CoreData - - ObvTypes - - ObvCrypto - - OlvidUtils -options: - - {key: post, value: postOnBackgroundQueue} - - {key: notificationCenterName, value: notificationDelegate} - - {key: notificationCenterType, value: ObvNotificationDelegate} - - {key: visibility, value: public} - - {key: objectInObserve, value: false} -notifications: -- name: newConfirmedObliviousChannel - params: - - {name: currentDeviceUid, type: UID} - - {name: remoteCryptoIdentity, type: ObvCryptoIdentity} - - {name: remoteDeviceUid, type: UID} -- name: deletedConfirmedObliviousChannel - params: - - {name: currentDeviceUid, type: UID} - - {name: remoteCryptoIdentity, type: ObvCryptoIdentity} - - {name: remoteDeviceUid, type: UID} -- name: networkReceivedMessageWasProcessed - params: - - {name: messageId, type: MessageIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: protocolMessageDecrypted - params: - - {name: protocolMessageId, type: MessageIdentifier} - - {name: flowId, type: FlowIdentifier} diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelSendChannelType.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelSendChannelType.swift index d1c0b683..fcc40d4e 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelSendChannelType.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvChannel/ObvChannelSendChannelType.swift @@ -29,12 +29,14 @@ public enum ObvChannelSendChannelType { case Local(ownedIdentity: ObvCryptoIdentity) // Send from/to this owned identity case AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: Set, fromOwnedIdentity: ObvCryptoIdentity) case AllConfirmedObliviousChannelsWithOtherDevicesOfOwnedIdentity(ownedIdentity: ObvCryptoIdentity) + case AllConfirmedObliviousChannelsWithContactIdentitiesAndWithOtherDevicesOfOwnedIdentity(contactIdentities: Set, fromOwnedIdentity: ObvCryptoIdentity) case ObliviousChannel(to: ObvCryptoIdentity, remoteDeviceUids: [UID], fromOwnedIdentity: ObvCryptoIdentity, necessarilyConfirmed: Bool) case AsymmetricChannel(to: ObvCryptoIdentity, remoteDeviceUids: [UID], fromOwnedIdentity: ObvCryptoIdentity) case AsymmetricChannelBroadcast(to: ObvCryptoIdentity, fromOwnedIdentity: ObvCryptoIdentity) case UserInterface(uuid: UUID, ownedIdentity: ObvCryptoIdentity, dialogType: ObvChannelDialogToSendType) case ServerQuery(ownedIdentity: ObvCryptoIdentity) // The identity is one of our own, used to receive the server response + /// Only owned identities can "send" on a channel. Note that when sending a message to self, the `fromOwnedIdentity` is identical to the `toIdentity` public var fromOwnedIdentity: ObvCryptoIdentity { switch self { @@ -45,11 +47,13 @@ public enum ObvChannelSendChannelType { .AsymmetricChannelBroadcast(to: _, fromOwnedIdentity: let fromOwnedIdentity), .UserInterface(uuid: _, ownedIdentity: let fromOwnedIdentity, dialogType: _), .ServerQuery(ownedIdentity: let fromOwnedIdentity), - .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: _, fromOwnedIdentity: let fromOwnedIdentity): + .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: _, fromOwnedIdentity: let fromOwnedIdentity), + .AllConfirmedObliviousChannelsWithContactIdentitiesAndWithOtherDevicesOfOwnedIdentity(contactIdentities: _, fromOwnedIdentity: let fromOwnedIdentity): return fromOwnedIdentity } } + /// The toIdentity can be a contact identity, or an owned identity, depending on the case. public var toIdentity: ObvCryptoIdentity? { switch self { @@ -61,11 +65,13 @@ public enum ObvChannelSendChannelType { .UserInterface(uuid: _, ownedIdentity: let toIdentity, dialogType: _), .ServerQuery(ownedIdentity: let toIdentity): return toIdentity - case .AllConfirmedObliviousChannelsWithContactIdentities: + case .AllConfirmedObliviousChannelsWithContactIdentities, + .AllConfirmedObliviousChannelsWithContactIdentitiesAndWithOtherDevicesOfOwnedIdentity: return nil } } + public var toIdentities: Set? { switch self { case .Local, @@ -76,9 +82,10 @@ public enum ObvChannelSendChannelType { .UserInterface, .ServerQuery: return nil - case .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: let toIdentities, fromOwnedIdentity: _): + case .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: let toIdentities, fromOwnedIdentity: _), + .AllConfirmedObliviousChannelsWithContactIdentitiesAndWithOtherDevicesOfOwnedIdentity(contactIdentities: let toIdentities, fromOwnedIdentity: _): return toIdentities } - } + } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvCreateContext/ObvCreateContextDelegate.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvCreateContext/ObvCreateContextDelegate.swift index 70e82580..5346ccc5 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvCreateContext/ObvCreateContextDelegate.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvCreateContext/ObvCreateContextDelegate.swift @@ -36,6 +36,9 @@ public protocol ObvCreateContextDelegate: ObvManager, ObvContextCreator { func performBackgroundTaskAndWaitOrThrow(file: StaticString, line: Int, function: StaticString, _ block: (NSManagedObjectContext) throws -> Void) throws func performBackgroundTaskAndWaitOrThrow(flowId: FlowIdentifier, file: StaticString, line: Int, function: StaticString, _ block: (ObvContext) throws -> Void) throws + func performBackgroundTaskAndWaitOrThrow(flowId: FlowIdentifier, file: StaticString, line: Int, function: StaticString, _ block: (ObvContext) throws -> T) throws -> T + func performBackgroundTaskAndWaitOrThrow(file: StaticString, line: Int, function: StaticString, _ block: (NSManagedObjectContext) throws -> T) throws -> T + func debugPrintCurrentBackgroundContexts() } @@ -66,5 +69,13 @@ extension ObvCreateContextDelegate { try self.performBackgroundTaskAndWaitOrThrow(flowId: flowId, file: file, line: line, function: function, block) } + public func performBackgroundTaskAndWaitOrThrow(flowId: FlowIdentifier, file: StaticString = #fileID, line: Int = #line, function: StaticString = #function, _ block: (ObvContext) throws -> T) throws -> T { + return try self.performBackgroundTaskAndWaitOrThrow(flowId: flowId, file: file, line: line, function: function, block) + } + + + func performBackgroundTaskAndWaitOrThrow(file: StaticString, line: Int, function: StaticString, _ block: (NSManagedObjectContext) throws -> T) throws -> T { + return try self.performBackgroundTaskAndWaitOrThrow(file: file, line: line, function: function, block) + } } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityDelegate.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityDelegate.swift index a5c08203..11736f01 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityDelegate.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityDelegate.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,7 +23,8 @@ import ObvTypes import OlvidUtils import JWS -public protocol ObvIdentityDelegate: ObvBackupableManager { +public protocol +ObvIdentityDelegate: ObvBackupableManager, ObvSnapshotable { // MARK: - API related to owned identities @@ -38,24 +39,28 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { func isOwnedIdentityActive(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) throws -> Bool - func deactivateOwnedIdentity(ownedIdentity: ObvCryptoIdentity, within: ObvContext) throws + func deactivateOwnedIdentityAndDeleteContactDevices(ownedIdentity: ObvCryptoIdentity, within: ObvContext) throws func reactivateOwnedIdentity(ownedIdentity: ObvCryptoIdentity, within: ObvContext) throws - func generateOwnedIdentity(withApiKey: UUID, onServerURL: URL, with: ObvIdentityDetails, accordingTo: PublicKeyEncryptionImplementationByteId, and: AuthenticationImplementationByteId, keycloakState: ObvKeycloakState?, using: PRNGService, within: ObvContext) -> ObvCryptoIdentity? - - func getApiKeyOfOwnedIdentity(_: ObvCryptoIdentity, within: ObvContext) throws -> UUID - - func setAPIKey(_ apiKey: UUID, forOwnedIdentity identity: ObvCryptoIdentity, keycloakServerURL: URL?, within obvContext: ObvContext) throws + func generateOwnedIdentity(onServerURL serverURL: URL, with identityDetails: ObvIdentityDetails, accordingTo pkEncryptionImplemByteId: PublicKeyEncryptionImplementationByteId, and authEmplemByteId: AuthenticationImplementationByteId, nameForCurrentDevice: String, keycloakState: ObvKeycloakState?, using prng: PRNGService, within obvContext: ObvContext) -> ObvCryptoIdentity? // Implemented within ObvIdentityDelegateExtension.swift - func generateOwnedIdentity(withApiKey: UUID, onServerURL: URL, with: ObvIdentityDetails, keycloakState: ObvKeycloakState?, using: PRNGService, within: ObvContext) -> ObvCryptoIdentity? + func generateOwnedIdentity(onServerURL serverURL: URL, with identityDetails: ObvIdentityDetails, nameForCurrentDevice: String, keycloakState: ObvKeycloakState?, using prng: PRNGService, within obvContext: ObvContext) -> ObvCryptoIdentity? func markOwnedIdentityForDeletion(_ identity: ObvCryptoIdentity, within obvContext: ObvContext) throws func deleteOwnedIdentity(_: ObvCryptoIdentity, within: ObvContext) throws func getOwnedIdentities(within: ObvContext) throws -> Set + + func getActiveOwnedIdentitiesAndCurrentDeviceName(within obvContext: ObvContext) throws -> [ObvCryptoIdentity: String?] + + func getActiveOwnedIdentitiesThatAreNotKeycloakManaged(within: ObvContext) throws -> Set + + func saveRegisteredKeycloakAPIKey(ownedCryptoIdentity: ObvCryptoIdentity, apiKey: UUID, within obvContext: ObvContext) throws + + func getRegisteredKeycloakAPIKey(ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> UUID? func getOwnedIdentitiesAndCurrentDeviceUids(within obvContext: ObvContext) throws -> [(ownedCryptoIdentity: ObvCryptoIdentity, currentDeviceUid: UID)] @@ -71,9 +76,14 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { func updatePublishedIdentityDetailsOfOwnedIdentity(_ identity: ObvCryptoIdentity, with newIdentityDetails: ObvIdentityDetails, within obvContext: ObvContext) throws + /// Returns `true` iff a new photo needs to be downloaded + func updateOwnedPublishedDetailsWithOtherDetailsIfNewer(_ ownedIdentity: ObvCryptoIdentity, with otherIdentityDetails: IdentityDetailsElements, within obvContext: ObvContext) throws -> Bool + func getDeterministicSeedForOwnedIdentity(_: ObvCryptoIdentity, diversifiedUsing: Data, within: ObvContext) throws -> Seed - func getFreshMaskingUIDForPushNotifications(for: ObvCryptoIdentity, within: ObvContext) throws -> UID + func getDeterministicSeed(diversifiedUsing data: Data, secretMACKey: MACKey, forProtocol seedProtocol: ObvConstants.SeedProtocol) throws -> Seed + + func getFreshMaskingUIDForPushNotifications(for identity: ObvCryptoIdentity, pushToken: Data, within obvContext: ObvContext) throws -> UID func getOwnedIdentityAssociatedToMaskingUID(_ maskingUID: UID, within obvContext: ObvContext) throws -> ObvCryptoIdentity? @@ -88,7 +98,7 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { func createContactGroupV2AdministratedByOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, serializedGroupCoreDetails: Data, photoURL: URL?, ownRawPermissions: Set, otherGroupMembers: Set, within obvContext: ObvContext) throws -> (groupIdentifier: GroupV2.Identifier, groupAdminServerAuthenticationPublicKey: PublicKeyForAuthentication, serverPhotoInfo: GroupV2.ServerPhotoInfo?, encryptedServerBlob: EncryptedData, photoURL: URL?) - func createContactGroupV2JoinedByOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, serverBlob: GroupV2.ServerBlob, blobKeys: GroupV2.BlobKeys, within obvContext: ObvContext) throws + func createContactGroupV2JoinedByOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, serverBlob: GroupV2.ServerBlob, blobKeys: GroupV2.BlobKeys, createdByMeOnOtherDevice: Bool, within obvContext: ObvContext) throws func removeOtherMembersOrPendingMembersFromGroupV2(withGroupIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, identitiesToRemove: Set, within obvContext: ObvContext) throws @@ -130,6 +140,8 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { func getAllGroupsV2IdentifierVersionAndKeysForContact(_ contactIdentity: ObvCryptoIdentity, ofOwnedIdentity ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> [GroupV2.IdentifierVersionAndKeys] + func getAllGroupsV2IdentifierVersionAndKeys(ofOwnedIdentity ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> [GroupV2.IdentifierVersionAndKeys] + func getAllNonPendingAdministratorsIdentitiesOfGroupV2(withGroupWithIdentifier groupIdentifier: GroupV2.Identifier, of ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Set @@ -141,6 +153,8 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { func getIdentifiersOfAllKeycloakGroupsWhereContactIsPending(ownedCryptoId: ObvCryptoIdentity, contactCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Set + func getAllKeycloakContactsThatArePendingInSomeKeycloakGroup(within obvContext: ObvContext) throws -> [ObvCryptoIdentity: Set] + // MARK: - API related to keycloak management func isOwnedIdentityKeycloakManaged(ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool @@ -159,8 +173,8 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { func setOwnedIdentityKeycloakUserId(ownedIdentity: ObvCryptoIdentity, keycloakUserId userId: String?, within obvContext: ObvContext) throws - /// This method binds an owned identity to a keycloak server. It returns a set of all the identities that are managed by the same keycloak server than the owned identity. - func bindOwnedIdentityToKeycloak(ownedCryptoIdentity: ObvCryptoIdentity, keycloakUserId userId: String, keycloakState: ObvKeycloakState, within obvContext: ObvContext) throws -> Set + /// This method binds an owned identity to a keycloak server. Upon context save, it notifies about the set of all the identities that are managed by the same keycloak server than the owned identity. + func bindOwnedIdentityToKeycloak(ownedCryptoIdentity: ObvCryptoIdentity, keycloakUserId userId: String, keycloakState: ObvKeycloakState, within obvContext: ObvContext) throws // This method unbinds the owned identity from any keycloak server and creates new published details for this identity using the currently published details, after removing any signed details. func unbindOwnedIdentityFromKeycloak(ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws @@ -194,7 +208,9 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { func getOtherDeviceUidsOfOwnedIdentity(_: ObvCryptoIdentity, within: ObvContext) throws -> Set - func addDeviceForOwnedIdentity(_: ObvCryptoIdentity, withUid: UID, within: ObvContext) throws + func addOtherDeviceForOwnedIdentity(_: ObvCryptoIdentity, withUid: UID, createdDuringChannelCreation: Bool, within: ObvContext) throws + + func removeOtherDeviceForOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, otherDeviceUid: UID, within obvContext: ObvContext) throws /// This method throws if the identity is not an owned identity. Otherwise it returns `true` iff the UID passed corresponds to the UID of a remote device of the owned identity. func isDevice(withUid: UID, aRemoteDeviceOfOwnedIdentity: ObvCryptoIdentity, within: ObvContext) throws -> Bool @@ -203,12 +219,21 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { func deleteAllDevicesOfContactIdentity(contactIdentity: ObvCryptoIdentity, ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws + func processEncryptedOwnedDeviceDiscoveryResult(_ encryptedOwnedDeviceDiscoveryResult: EncryptedData, forOwnedCryptoId ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Bool + + func decryptEncryptedOwnedDeviceDiscoveryResult(_ encryptedOwnedDeviceDiscoveryResult: EncryptedData, forOwnedCryptoId ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> OwnedDeviceDiscoveryResult + + func decryptProtocolCiphertext(_ ciphertext: EncryptedData, forOwnedCryptoId ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Data + + func getInfosAboutOwnedDevice(withUid uid: UID, ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> (name: String?, expirationDate: Date?, latestRegistrationDate: Date?) + func setCurrentDeviceNameOfOwnedIdentityAfterBackupRestore(ownedCryptoIdentity: ObvCryptoIdentity, nameForCurrentDevice: String, within obvContext: ObvContext) throws + // MARK: - API related to contact identities func addContactIdentity(_: ObvCryptoIdentity, with: ObvIdentityCoreDetails, andTrustOrigin: TrustOrigin, forOwnedIdentity: ObvCryptoIdentity, setIsOneToOneTo newOneToOneValue: Bool, within: ObvContext) throws - func addTrustOriginIfTrustWouldBeIncreased(_: TrustOrigin, toContactIdentity: ObvCryptoIdentity, ofOwnedIdentity: ObvCryptoIdentity, setIsOneToOneTo newOneToOneValue: Bool, within: ObvContext) throws + func addTrustOriginIfTrustWouldBeIncreasedAndSetContactAsOneToOne(_: TrustOrigin, toContactIdentity: ObvCryptoIdentity, ofOwnedIdentity: ObvCryptoIdentity, within: ObvContext) throws func getTrustOrigins(forContactIdentity: ObvCryptoIdentity, ofOwnedIdentity: ObvCryptoIdentity, within: ObvContext) throws -> [TrustOrigin] @@ -216,6 +241,8 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { func getContactsOfOwnedIdentity(_: ObvCryptoIdentity, within: ObvContext) throws -> Set + func getContactsWithNoDeviceOfOwnedIdentity(_ ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Set + /// This method throws if the second identity is not an owned identity or if the first identity is not a contact of that owned identity. Otherwise it returns the display name of the contact identity. func getIdentityDetailsOfContactIdentity(_: ObvCryptoIdentity, ofOwnedIdentity: ObvCryptoIdentity, within: ObvContext) throws -> (publishedIdentityDetails: ObvIdentityDetails?, trustedIdentityDetails: ObvIdentityDetails) @@ -233,10 +260,13 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { func deleteContactIdentity(_: ObvCryptoIdentity, forOwnedIdentity: ObvCryptoIdentity, failIfContactIsPartOfACommonGroup: Bool, within: ObvContext) throws + func getDateOfLastBootstrappedContactDeviceDiscovery(forContactCryptoId contactCryptoId: ObvCryptoIdentity, ofOwnedCryptoId ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> Date + + func setDateOfLastBootstrappedContactDeviceDiscovery(forContactCryptoId contactCryptoId: ObvCryptoIdentity, ofOwnedCryptoId ownedCryptoId: ObvCryptoIdentity, to newDate: Date, within obvContext: ObvContext) throws // MARK: - API related to contact devices - func addDeviceForContactIdentity(_: ObvCryptoIdentity, withUid: UID, ofOwnedIdentity: ObvCryptoIdentity, within: ObvContext) throws + func addDeviceForContactIdentity(_: ObvCryptoIdentity, withUid: UID, ofOwnedIdentity: ObvCryptoIdentity, createdDuringChannelCreation: Bool, within: ObvContext) throws func removeDeviceForContactIdentity(_: ObvCryptoIdentity, withUid: UID, ofOwnedIdentity: ObvCryptoIdentity, within: ObvContext) throws @@ -245,10 +275,9 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { /// This method throws if the second identity is not an owned identity or if the first identity is not a contact of that owned identity. Otherwise it returns `true` iff the UID passed corresponds to the UID of contact device of the contact identity. func isDevice(withUid: UID, aDeviceOfContactIdentity: ObvCryptoIdentity, ofOwnedIdentity: ObvCryptoIdentity, within: ObvContext) throws -> Bool - /// This method returns an array of all the device uids known within the identity manager. This includes *both* owned device and contact devices. + /// This method returns a set of all the device uids known within the identity manager. This includes *both* owned device and contact devices. func getAllRemoteOwnedDevicesUidsAndContactDeviceUids(within: ObvContext) throws -> Set - // MARK: - API related to contact groups func removeContactFromPendingAndGroupMembersOfContactGroupJoined(ownedIdentity: ObvCryptoIdentity, groupOwner: ObvCryptoIdentity, groupUid: UID, contactIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws @@ -285,6 +314,8 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { func publishLatestDetailsOfContactGroupOwned(ownedIdentity: ObvCryptoIdentity, groupUid: UID, within obvContext: ObvContext) throws + func updatePendingMembersAndGroupMembersOfContactGroupOwned(ownedIdentity: ObvCryptoIdentity, groupUid: UID, groupMembers: Set, pendingGroupMembers: Set, groupMembersVersion: Int, within obvContext: ObvContext) throws + func updatePendingMembersAndGroupMembersOfContactGroupJoined(ownedIdentity: ObvCryptoIdentity, groupUid: UID, groupOwner: ObvCryptoIdentity, groupMembers: Set, pendingGroupMembers: Set, groupMembersVersion: Int, within obvContext: ObvContext) throws func getGroupOwnedStructure(ownedIdentity: ObvCryptoIdentity, groupUid: UID, within obvContext: ObvContext) throws -> GroupStructure? @@ -346,6 +377,10 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { func setCapabilitiesOfCurrentDeviceOfOwnedIdentity(ownedIdentity: ObvCryptoIdentity, newCapabilities: Set, within obvContext: ObvContext) throws func setRawCapabilitiesOfOtherDeviceOfOwnedIdentity(ownedIdentity: ObvCryptoIdentity, deviceUID: UID, newRawCapabilities: Set, within obvContext: ObvContext) throws + + // MARK: - API related to sync between owned devices + + func processSyncAtom(_ syncAtom: ObvSyncAtom, ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws // MARK: - User Data @@ -357,4 +392,18 @@ public protocol ObvIdentityDelegate: ObvBackupableManager { func updateUserDataNextRefreshTimestamp(for ownedIdentity: ObvCryptoIdentity, with label: UID, within obvContext: ObvContext) + // MARK: - Getting informations about missing photos + + func getInformationsAboutContactsWithMissingContactPictureOnDisk(within obvContext: ObvContext) throws -> [(ownedCryptoId: ObvCryptoIdentity, contactCryptoId: ObvCryptoIdentity, contactIdentityDetailsElements: IdentityDetailsElements)] + + func getInformationsAboutOwnedIdentitiesWithMissingPictureOnDisk(within obvContext: ObvContext) throws -> [(ownedCryptoId: ObvCryptoIdentity, ownedIdentityDetailsElements: IdentityDetailsElements)] + + func getInformationsAboutGroupsV1WithMissingContactPictureOnDisk(within obvContext: ObvContext) throws -> [(ownedIdentity: ObvCryptoIdentity, groupInfo: GroupInformation)] + + func getInformationsAboutGroupsV2WithMissingContactPictureOnDisk(within obvContext: ObvContext) throws -> [(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, serverPhotoInfo: GroupV2.ServerPhotoInfo)] + + // MARK: - Restoring snapshots + + func restoreObvSyncSnapshotNode(_ syncSnapshotNode: any ObvSyncSnapshotNode, customDeviceName: String, within obvContext: ObvContext) throws + } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityDelegateExtension.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityDelegateExtension.swift index 3c243479..c9b4bd59 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityDelegateExtension.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityDelegateExtension.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,16 +26,16 @@ import ObvTypes public extension ObvIdentityDelegate { /// Generate an Owned Identity using the latest recommended types for the cryptographic keys. - func generateOwnedIdentity(withApiKey apiKey: UUID, onServerURL serverURL: URL, with identityDetails: ObvIdentityDetails, keycloakState: ObvKeycloakState?, using prng: PRNGService, within obvContext: ObvContext) -> ObvCryptoIdentity? { + func generateOwnedIdentity(onServerURL serverURL: URL, with identityDetails: ObvIdentityDetails, nameForCurrentDevice: String, keycloakState: ObvKeycloakState?, using prng: PRNGService, within obvContext: ObvContext) -> ObvCryptoIdentity? { let pkEncryptionImplemByteId = ObvCryptoSuite.sharedInstance.getDefaultPublicKeyEncryptionImplementationByteId() let authEmplemByteId = ObvCryptoSuite.sharedInstance.getDefaultAuthenticationImplementationByteId() - return generateOwnedIdentity(withApiKey: apiKey, - onServerURL: serverURL, + return generateOwnedIdentity(onServerURL: serverURL, with: identityDetails, accordingTo: pkEncryptionImplemByteId, and: authEmplemByteId, + nameForCurrentDevice: nameForCurrentDevice, keycloakState: keycloakState, using: prng, within: obvContext) diff --git a/Engine/ObvIdentityManager/ObvIdentityManager/ObvIdentityManagerError.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityManagerError.swift similarity index 68% rename from Engine/ObvIdentityManager/ObvIdentityManager/ObvIdentityManagerError.swift rename to Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityManagerError.swift index fb2bb972..623529e7 100644 --- a/Engine/ObvIdentityManager/ObvIdentityManager/ObvIdentityManagerError.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityManagerError.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -19,32 +19,39 @@ import Foundation -public enum ObvIdentityManagerError: Int { +public enum ObvIdentityManagerError: Error { - case cryptoIdentityIsNotOwned = 1 - case cryptoIdentityIsNotContact = 2 - case contextIsNil = 3 - case invalidPhotoServerKeyEncodedRaw = 4 - case cannotDecodeEncodedEncryptionKey = 5 - case tryingToCreateContactGroupThatAlreadyExists = 6 - case inappropriateGroupInformation = 7 - case groupDoesNotExist = 8 - case contextMismatch = 9 - case pendingGroupMemberDoesNotExist = 10 - case anIdentityAppearsBothWithinPendingMembersAndGroupMembers = 11 - case contactCreationFailed = 12 - case groupIsNotOwned = 13 - case invalidGroupDetailsVersion = 14 - case ownedContactGroupStillHasMembersOrPendingMembers = 15 - case ownedIdentityNotFound = 16 - case diversificationDataCannotBeEmpty = 17 - case failedToTurnRandomIntoSeed = 18 - case delegateManagerIsNotSet = 19 - case groupIsNotJoined = 20 + case cryptoIdentityIsNotOwned + case cryptoIdentityIsNotContact + case contextIsNil + case invalidPhotoServerKeyEncodedRaw + case cannotDecodeEncodedEncryptionKey + case tryingToCreateContactGroupThatAlreadyExists + case inappropriateGroupInformation + case groupDoesNotExist + case contextMismatch + case pendingGroupMemberDoesNotExist + case anIdentityAppearsBothWithinPendingMembersAndGroupMembers + case contactCreationFailed + case groupIsNotOwned + case invalidGroupDetailsVersion + case ownedContactGroupStillHasMembersOrPendingMembers + case ownedIdentityNotFound + case ownedIdentityIsNotKeycloakManaged + case diversificationDataCannotBeEmpty + case failedToTurnRandomIntoSeed + case delegateManagerIsNotSet + case groupIsNotJoined + case wrongSyncAtomRecipient + case couldNotDecodeGroupIdentifier + case contextCreatorIsNil - func error(withDomain domain: String) -> NSError { + + var localizedDescription: String { let message: String switch self { + case .ownedIdentityIsNotKeycloakManaged: + message = "Owned identity is not keycloak managed" case .cryptoIdentityIsNotOwned: message = "The crypto identity is not owned" case .cryptoIdentityIsNotContact: @@ -85,8 +92,13 @@ public enum ObvIdentityManagerError: Int { message = "Delegate manager is not set" case .groupIsNotJoined: message = "Group is not one we joined" + case .wrongSyncAtomRecipient: + message = "Wrong sync atom recipient" + case .couldNotDecodeGroupIdentifier: + message = "Could not decode group identifier" + case .contextCreatorIsNil: + message = "Context creator is nil" } - let userInfo = [NSLocalizedFailureReasonErrorKey: message] - return NSError(domain: domain, code: self.rawValue, userInfo: userInfo) + return message } } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityNotificationNew.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityNotificationNew.swift index c204cafa..04e663e0 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityNotificationNew.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityNotificationNew.swift @@ -38,7 +38,7 @@ public enum ObvIdentityNotificationNew { case ownedIdentityWasDeactivated(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) case ownedIdentityWasReactivated(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) case deletedContactDevice(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactDeviceUid: UID, flowId: FlowIdentifier) - case newContactDevice(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactDeviceUid: UID, flowId: FlowIdentifier) + case newContactDevice(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactDeviceUid: UID, createdDuringChannelCreation: Bool, flowId: FlowIdentifier) case serverLabelHasBeenDeleted(ownedIdentity: ObvCryptoIdentity, label: UID) case contactWasDeleted(ownedCryptoIdentity: ObvCryptoIdentity, contactCryptoIdentity: ObvCryptoIdentity) case latestPhotoOfContactGroupOwnedHasBeenUpdated(groupUid: UID, ownedIdentity: ObvCryptoIdentity) @@ -59,9 +59,13 @@ public enum ObvIdentityNotificationNew { case groupV2WasCreated(obvGroupV2: ObvGroupV2, initiator: ObvGroupV2.CreationOrUpdateInitiator) case groupV2WasUpdated(obvGroupV2: ObvGroupV2, initiator: ObvGroupV2.CreationOrUpdateInitiator) case groupV2WasDeleted(ownedIdentity: ObvCryptoIdentity, appGroupIdentifier: Data) - case ownedIdentityWasDeleted + case ownedIdentityWasDeleted(ownedIdentity: ObvCryptoIdentity) case contactIsCertifiedByOwnKeycloakStatusChanged(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, newIsCertifiedByOwnKeycloak: Bool) case pushTopicOfKeycloakGroupWasUpdated(ownedCryptoId: ObvCryptoIdentity) + case newRemoteOwnedDevice(ownedCryptoId: ObvCryptoIdentity, remoteDeviceUid: UID, createdDuringChannelCreation: Bool) + case anOwnedDeviceWasUpdated(ownedCryptoId: ObvCryptoIdentity) + case anOwnedDeviceWasDeleted(ownedCryptoId: ObvCryptoIdentity) + case newActiveOwnedIdentity(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) private enum Name { case contactIdentityIsNowTrusted @@ -93,6 +97,10 @@ public enum ObvIdentityNotificationNew { case ownedIdentityWasDeleted case contactIsCertifiedByOwnKeycloakStatusChanged case pushTopicOfKeycloakGroupWasUpdated + case newRemoteOwnedDevice + case anOwnedDeviceWasUpdated + case anOwnedDeviceWasDeleted + case newActiveOwnedIdentity private var namePrefix: String { String(describing: ObvIdentityNotificationNew.self) } @@ -134,6 +142,10 @@ public enum ObvIdentityNotificationNew { case .ownedIdentityWasDeleted: return Name.ownedIdentityWasDeleted.name case .contactIsCertifiedByOwnKeycloakStatusChanged: return Name.contactIsCertifiedByOwnKeycloakStatusChanged.name case .pushTopicOfKeycloakGroupWasUpdated: return Name.pushTopicOfKeycloakGroupWasUpdated.name + case .newRemoteOwnedDevice: return Name.newRemoteOwnedDevice.name + case .anOwnedDeviceWasUpdated: return Name.anOwnedDeviceWasUpdated.name + case .anOwnedDeviceWasDeleted: return Name.anOwnedDeviceWasDeleted.name + case .newActiveOwnedIdentity: return Name.newActiveOwnedIdentity.name } } } @@ -167,11 +179,12 @@ public enum ObvIdentityNotificationNew { "contactDeviceUid": contactDeviceUid, "flowId": flowId, ] - case .newContactDevice(ownedIdentity: let ownedIdentity, contactIdentity: let contactIdentity, contactDeviceUid: let contactDeviceUid, flowId: let flowId): + case .newContactDevice(ownedIdentity: let ownedIdentity, contactIdentity: let contactIdentity, contactDeviceUid: let contactDeviceUid, createdDuringChannelCreation: let createdDuringChannelCreation, flowId: let flowId): info = [ "ownedIdentity": ownedIdentity, "contactIdentity": contactIdentity, "contactDeviceUid": contactDeviceUid, + "createdDuringChannelCreation": createdDuringChannelCreation, "flowId": flowId, ] case .serverLabelHasBeenDeleted(ownedIdentity: let ownedIdentity, label: let label): @@ -284,8 +297,10 @@ public enum ObvIdentityNotificationNew { "ownedIdentity": ownedIdentity, "appGroupIdentifier": appGroupIdentifier, ] - case .ownedIdentityWasDeleted: - info = nil + case .ownedIdentityWasDeleted(ownedIdentity: let ownedIdentity): + info = [ + "ownedIdentity": ownedIdentity, + ] case .contactIsCertifiedByOwnKeycloakStatusChanged(ownedIdentity: let ownedIdentity, contactIdentity: let contactIdentity, newIsCertifiedByOwnKeycloak: let newIsCertifiedByOwnKeycloak): info = [ "ownedIdentity": ownedIdentity, @@ -296,6 +311,25 @@ public enum ObvIdentityNotificationNew { info = [ "ownedCryptoId": ownedCryptoId, ] + case .newRemoteOwnedDevice(ownedCryptoId: let ownedCryptoId, remoteDeviceUid: let remoteDeviceUid, createdDuringChannelCreation: let createdDuringChannelCreation): + info = [ + "ownedCryptoId": ownedCryptoId, + "remoteDeviceUid": remoteDeviceUid, + "createdDuringChannelCreation": createdDuringChannelCreation, + ] + case .anOwnedDeviceWasUpdated(ownedCryptoId: let ownedCryptoId): + info = [ + "ownedCryptoId": ownedCryptoId, + ] + case .anOwnedDeviceWasDeleted(ownedCryptoId: let ownedCryptoId): + info = [ + "ownedCryptoId": ownedCryptoId, + ] + case .newActiveOwnedIdentity(ownedCryptoIdentity: let ownedCryptoIdentity, flowId: let flowId): + info = [ + "ownedCryptoIdentity": ownedCryptoIdentity, + "flowId": flowId, + ] } return info } @@ -356,14 +390,15 @@ public enum ObvIdentityNotificationNew { } } - public static func observeNewContactDevice(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, ObvCryptoIdentity, UID, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeNewContactDevice(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, ObvCryptoIdentity, UID, Bool, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.newContactDevice.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity let contactIdentity = notification.userInfo!["contactIdentity"] as! ObvCryptoIdentity let contactDeviceUid = notification.userInfo!["contactDeviceUid"] as! UID + let createdDuringChannelCreation = notification.userInfo!["createdDuringChannelCreation"] as! Bool let flowId = notification.userInfo!["flowId"] as! FlowIdentifier - block(ownedIdentity, contactIdentity, contactDeviceUid, flowId) + block(ownedIdentity, contactIdentity, contactDeviceUid, createdDuringChannelCreation, flowId) } } @@ -557,10 +592,11 @@ public enum ObvIdentityNotificationNew { } } - public static func observeOwnedIdentityWasDeleted(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { + public static func observeOwnedIdentityWasDeleted(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity) -> Void) -> NSObjectProtocol { let name = Name.ownedIdentityWasDeleted.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - block() + let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity + block(ownedIdentity) } } @@ -582,4 +618,39 @@ public enum ObvIdentityNotificationNew { } } + public static func observeNewRemoteOwnedDevice(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, UID, Bool) -> Void) -> NSObjectProtocol { + let name = Name.newRemoteOwnedDevice.name + return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoIdentity + let remoteDeviceUid = notification.userInfo!["remoteDeviceUid"] as! UID + let createdDuringChannelCreation = notification.userInfo!["createdDuringChannelCreation"] as! Bool + block(ownedCryptoId, remoteDeviceUid, createdDuringChannelCreation) + } + } + + public static func observeAnOwnedDeviceWasUpdated(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity) -> Void) -> NSObjectProtocol { + let name = Name.anOwnedDeviceWasUpdated.name + return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoIdentity + block(ownedCryptoId) + } + } + + public static func observeAnOwnedDeviceWasDeleted(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity) -> Void) -> NSObjectProtocol { + let name = Name.anOwnedDeviceWasDeleted.name + return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoIdentity + block(ownedCryptoId) + } + } + + public static func observeNewActiveOwnedIdentity(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, FlowIdentifier) -> Void) -> NSObjectProtocol { + let name = Name.newActiveOwnedIdentity.name + return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in + let ownedCryptoIdentity = notification.userInfo!["ownedCryptoIdentity"] as! ObvCryptoIdentity + let flowId = notification.userInfo!["flowId"] as! FlowIdentifier + block(ownedCryptoIdentity, flowId) + } + } + } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityNotificationNew.yml b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityNotificationNew.yml deleted file mode 100644 index ad52951d..00000000 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/ObvIdentityNotificationNew.yml +++ /dev/null @@ -1,139 +0,0 @@ -import: - - Foundation - - ObvTypes - - ObvCrypto - - OlvidUtils -options: - - {key: post, value: postOnBackgroundQueue} - - {key: notificationCenterName, value: notificationDelegate} - - {key: notificationCenterType, value: ObvNotificationDelegate} - - {key: visibility, value: public} - - {key: objectInObserve, value: false} -notifications: -- name: contactIdentityIsNowTrusted - params: - - {name: contactIdentity, type: ObvCryptoIdentity} - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: newOwnedIdentityWithinIdentityManager - params: - - {name: cryptoIdentity, type: ObvCryptoIdentity} -- name: ownedIdentityWasDeactivated - params: - - {name: ownedCryptoIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: ownedIdentityWasReactivated - params: - - {name: ownedCryptoIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: deletedContactDevice - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: contactIdentity, type: ObvCryptoIdentity} - - {name: contactDeviceUid, type: UID} - - {name: flowId, type: FlowIdentifier} -- name: newContactDevice - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: contactIdentity, type: ObvCryptoIdentity} - - {name: contactDeviceUid, type: UID} - - {name: flowId, type: FlowIdentifier} -- name: serverLabelHasBeenDeleted - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: label, type: UID} -- name: contactWasDeleted - params: - - {name: ownedCryptoIdentity, type: ObvCryptoIdentity} - - {name: contactCryptoIdentity, type: ObvCryptoIdentity} -- name: latestPhotoOfContactGroupOwnedHasBeenUpdated - params: - - {name: groupUid, type: UID} - - {name: ownedIdentity, type: ObvCryptoIdentity} -- name: publishedPhotoOfContactGroupOwnedHasBeenUpdated - params: - - {name: groupUid, type: UID} - - {name: ownedIdentity, type: ObvCryptoIdentity} -- name: publishedPhotoOfContactGroupJoinedHasBeenUpdated - params: - - {name: groupUid, type: UID} - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: groupOwner, type: ObvCryptoIdentity} -- name: trustedPhotoOfContactGroupJoinedHasBeenUpdated - params: - - {name: groupUid, type: UID} - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: groupOwner, type: ObvCryptoIdentity} -- name: publishedPhotoOfOwnedIdentityHasBeenUpdated - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} -- name: publishedPhotoOfContactIdentityHasBeenUpdated - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: contactIdentity, type: ObvCryptoIdentity} -- name: trustedPhotoOfContactIdentityHasBeenUpdated - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: contactIdentity, type: ObvCryptoIdentity} -- name: ownedIdentityKeycloakServerChanged - params: - - {name: ownedCryptoIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: contactWasUpdatedWithinTheIdentityManager - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: contactIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: contactIsActiveChanged - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: contactIdentity, type: ObvCryptoIdentity} - - {name: isActive, type: Bool} - - {name: flowId, type: FlowIdentifier} -- name: contactWasRevokedAsCompromised - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: contactIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: contactObvCapabilitiesWereUpdated - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: contactIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: ownedIdentityCapabilitiesWereUpdated - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: contactIdentityOneToOneStatusChanged - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: contactIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: contactTrustLevelWasIncreased - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: contactIdentity, type: ObvCryptoIdentity} - - {name: trustLevelOfContactIdentity, type: TrustLevel} - - {name: isOneToOne, type: Bool} - - {name: flowId, type: FlowIdentifier} -- name: groupV2WasCreated - params: - - {name: obvGroupV2, type: ObvGroupV2} - - {name: initiator, type: ObvGroupV2.CreationOrUpdateInitiator} -- name: groupV2WasUpdated - params: - - {name: obvGroupV2, type: ObvGroupV2} - - {name: initiator, type: ObvGroupV2.CreationOrUpdateInitiator} -- name: groupV2WasDeleted - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: appGroupIdentifier, type: Data} -- name: ownedIdentityWasDeleted -- name: contactIsCertifiedByOwnKeycloakStatusChanged - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: contactIdentity, type: ObvCryptoIdentity} - - {name: newIsCertifiedByOwnKeycloak, type: Bool} -- name: pushTopicOfKeycloakGroupWasUpdated - params: - - {name: ownedCryptoId, type: ObvCryptoIdentity} diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/TrustOrigin.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/TrustOrigin.swift index 984bfc73..cdbc644b 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/TrustOrigin.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/TrustOrigin.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/GroupDetailsElements.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/GroupDetailsElements.swift index 31c4f7f6..59d4e8e2 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/GroupDetailsElements.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/GroupDetailsElements.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import ObvTypes import ObvEncoder /// This structure is used within the protocol allowing to publish group details. +/// The equivalent structure under Android is called JsonGroupDetailsWithVersionAndPhoto. public struct GroupDetailsElements: Equatable { public let version: Int @@ -39,6 +40,10 @@ public struct GroupDetailsElements: Equatable { GroupDetailsElements(version: self.version, coreDetails: self.coreDetails, photoServerKeyAndLabel: photoServerKeyAndLabel) } + public func fieldsAreTheSameButVersionIsNotConsidered(than other: GroupDetailsElements) -> Bool { + return self.coreDetails == other.coreDetails && self.photoServerKeyAndLabel == other.photoServerKeyAndLabel + } + } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/GroupV2+Structures.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/GroupV2+Structures.swift index 0bb56f9b..cbbd3d9c 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/GroupV2+Structures.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/GroupV2+Structures.swift @@ -254,6 +254,14 @@ public struct GroupV2 { return !lastBlocks[0].allAdministratorIdentities.subtracting(lastBlocks[1].allAdministratorIdentities).isEmpty } + /// Check whether this administrators chain was created by the given crypto identity. + /// + /// This is equivalent to checking whether the first block of the administrator chain was signed by the given identity. + public func isCreatedBy(_ identity: ObvCryptoIdentity) -> Bool { + guard let firstBlock = blocks.first else { return false } + return firstBlock.signatureOnInnerDataWasComputedBy(identity) + } + // Checking the chain integrity /// Checks the integrity of this `GroupAdministratorsChain` and returns an identical `GroupAdministratorsChain` such that `integrityChecked` is `true`. @@ -323,7 +331,7 @@ public struct GroupV2 { // MARK: - Identifier - public struct Identifier: ObvCodable, ObvErrorMaker, Equatable, Hashable { + public struct Identifier: ObvCodable, ObvErrorMaker, Equatable, Hashable, LosslessStringConvertible { public static let errorDomain = "GroupV2.Identifier" @@ -362,12 +370,37 @@ public struct GroupV2 { } } + + public init?(appGroupIdentifier: Data) { + guard let obvGroupV2Identifier = ObvGroupV2.Identifier(appGroupIdentifier: appGroupIdentifier) else { assertionFailure(); return nil } + self.init(obvGroupV2Identifier: obvGroupV2Identifier) + } + + public var toObvGroupV2Identifier: ObvGroupV2.Identifier { return ObvGroupV2.Identifier(groupUID: groupUID, serverURL: serverURL, category: category.toObvGroupV2IdentifierCategory) } + + public var appGroupIdentifier: Data { + toObvGroupV2Identifier.appGroupIdentifier + } + + // LosslessStringConvertible + + /// This is used in sync snapshots + public var description: String { + appGroupIdentifier.base64EncodedString() + } + + /// This is used in sync snapshots + public init?(_ description: String) { + guard let _appGroupIdentifier = Data(base64Encoded: description) else { assertionFailure(); return nil } + self.init(appGroupIdentifier: _appGroupIdentifier) + } + // ObvCodable public func obvEncode() -> ObvEncoded { @@ -854,7 +887,8 @@ public struct GroupV2 { } - public init(encryptedServerBlob: EncryptedData, blobMainSeed: Seed, blobVersionSeed: Seed, expectedGroupIdentifier: Identifier, solveChallengeDelegate: ObvSolveChallengeDelegate) throws { + + public static func decryptThenCheckSignature(encryptedServerBlob: EncryptedData, blobMainSeed: Seed, blobVersionSeed: Seed, expectedGroupIdentifier: Identifier, solveChallengeDelegate: ObvSolveChallengeDelegate) throws -> (blob: ServerBlob, signer: ObvCryptoIdentity) { guard let authEnc = ObvCryptoSuite.sharedInstance.authenticatedEncryption(forSuiteVersion: 0) else { assertionFailure(); throw Self.makeError(message: "Internal error") } let sharedBlobSecretKey = authEnc.generateKey(with: Seed(seeds: [blobMainSeed, blobVersionSeed])) @@ -923,13 +957,15 @@ public struct GroupV2 { } } - // Return the blob + // Return the blob and the signer + + let blobToReturn = Self.init(administratorsChain: checkedAdministratorsChain, + groupMembers: blob.groupMembers, + groupVersion: blob.groupVersion, + serializedGroupCoreDetails: blob.serializedGroupCoreDetails, + serverPhotoInfo: blob.serverPhotoInfo) - self.init(administratorsChain: checkedAdministratorsChain, - groupMembers: blob.groupMembers, - groupVersion: blob.groupVersion, - serializedGroupCoreDetails: blob.serializedGroupCoreDetails, - serverPhotoInfo: blob.serverPhotoInfo) + return (blobToReturn, signer) } @@ -1127,6 +1163,11 @@ public struct GroupV2 { return self.groupMembers.filter({ $0.identity != ownedIdentity }) } + + public func groupMembersInclude(_ identity: ObvCryptoIdentity) -> Bool { + return groupMembers.first(where: { $0.identity == identity }) != nil + } + } @@ -1292,6 +1333,11 @@ public struct GroupV2 { } + + public func invitersInclude(_ identity: ObvCryptoIdentity) -> Bool { + return inviterIdentityAndBlobMainSeedCandidates.first(where: { $0.key == identity }) != nil + } + } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/IdentityDetailsElements.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/IdentityDetailsElements.swift index 187090d7..5d513425 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/IdentityDetailsElements.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/IdentityDetailsElements.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import ObvTypes import ObvEncoder /// This structure is used to communicate contact identity details informations between the protocol manager and the identity manager. It is also used within the protocol allowing to publish owned details as well as within the channel creation (when sending the ack). +/// The equivalent structure under Android is called JsonIdentityDetailsWithVersionAndPhoto. public struct IdentityDetailsElements { public let version: Int @@ -34,6 +35,12 @@ public struct IdentityDetailsElements { self.coreDetails = coreDetails self.photoServerKeyAndLabel = photoServerKeyAndLabel } + + + public func fieldsAreTheSameButVersionAndSignedDetailsAreNotConsidered(than other: IdentityDetailsElements) -> Bool { + return self.coreDetails.fieldsAreTheSameAndSignedDetailsAreNotConsidered(than: other.coreDetails) && self.photoServerKeyAndLabel == other.photoServerKeyAndLabel + } + } extension IdentityDetailsElements: Codable { diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/OwnedDeviceDiscoveryResult.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/OwnedDeviceDiscoveryResult.swift new file mode 100644 index 00000000..493c0a1e --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvIdentity/Types/OwnedDeviceDiscoveryResult.swift @@ -0,0 +1,167 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import OlvidUtils +import ObvCrypto +import ObvTypes + + +public struct OwnedDeviceDiscoveryResult: ObvErrorMaker { + + public let devices: Set + public let isMultidevice: Bool? + + public static let errorDomain = "OwnedDeviceDiscoveryResult" + + private enum ObvCodingKeys: String, CaseIterable, CodingKey { + case isMultidevice = "multi" + case devices = "dev" + var key: Data { rawValue.data(using: .utf8)! } + } + + public static func decrypt(encryptedOwnedDeviceDiscoveryResult: EncryptedData, for ownedCryptoIdentity: ObvOwnedCryptoIdentity) throws -> Self { + + guard let rawOwnedDeviceDiscoveryResult = PublicKeyEncryption.decrypt(encryptedOwnedDeviceDiscoveryResult, for: ownedCryptoIdentity) else { + assertionFailure() + throw Self.makeError(message: "Could not decrypt the result of the owned device discovery query") + } + + guard let encodedOwnedDeviceDiscoveryResult = ObvEncoded(withRawData: rawOwnedDeviceDiscoveryResult) else { + assertionFailure() + throw Self.makeError(message: "Could not parse the decrypted result of the owned device discovery query") + } + + guard let obvDict = ObvDictionary(encodedOwnedDeviceDiscoveryResult) else { + assertionFailure() + throw Self.makeError(message: "Could not parse dictionary") + } + + return try .init(obvDict: obvDict, for: ownedCryptoIdentity) + } + + + private init(obvDict: ObvDictionary, for ownedCryptoIdentity: ObvOwnedCryptoIdentity) throws { + self.isMultidevice = try obvDict.obvDecodeIfPresent(Bool.self, forKey: ObvCodingKeys.isMultidevice) + self.devices = try Set(obvDict.obvDecode([Device].self, forKey: ObvCodingKeys.devices) + .map { device in + device.withDecryptedName(for: ownedCryptoIdentity) + }) + } + + + public struct Device: Hashable, ObvDecodable { + + public let uid: UID + public let expirationDate: Date? + private let encryptedName: EncryptedData? + public let latestRegistrationDate: Date? + public let name: String? + + + fileprivate func withDecryptedName(for ownedCryptoIdentity: ObvOwnedCryptoIdentity) -> Self { + guard let encryptedName else { return self } + guard let decryptedName = DeviceNameUtils.decrypt(encryptedDeviceName: encryptedName, for: ownedCryptoIdentity) + else { + assertionFailure() + return self + } + return .init( + uid: uid, + expirationDate: expirationDate, + encryptedName: encryptedName, + latestRegistrationDate: latestRegistrationDate, + name: decryptedName) + } + + + private init(uid: UID, expirationDate: Date?, encryptedName: EncryptedData?, latestRegistrationDate: Date?, name: String?) { + self.uid = uid + self.expirationDate = expirationDate + self.encryptedName = encryptedName + self.latestRegistrationDate = latestRegistrationDate + self.name = name + } + + + private enum ObvCodingKeys: String, CaseIterable, CodingKey { + case uid = "uid" + case expirationDate = "exp" + case latestRegistrationDate = "reg" + case encryptedName = "name" + var key: Data { rawValue.data(using: .utf8)! } + } + + + public init?(_ obvEncoded: ObvEncoded) { + guard let obvDict = ObvDictionary(obvEncoded) else { assertionFailure(); return nil } + do { + try self.init(obvDict: obvDict) + } catch { + assertionFailure(error.localizedDescription) + return nil + } + } + + + private init(obvDict: ObvDictionary) throws { + do { + let uid = try obvDict.obvDecode(UID.self, forKey: ObvCodingKeys.uid) + let expirationDate = try obvDict.obvDecodeIfPresent(Date.self, forKey: ObvCodingKeys.expirationDate) + let latestRegistrationDate = try obvDict.obvDecodeIfPresent(Date.self, forKey: ObvCodingKeys.latestRegistrationDate) + let encryptedName = try obvDict.obvDecodeIfPresent(EncryptedData.self, forKey: ObvCodingKeys.encryptedName) + self.init( + uid: uid, + expirationDate: expirationDate, + encryptedName: encryptedName, + latestRegistrationDate: latestRegistrationDate, + name: nil) + } catch { + assertionFailure(error.localizedDescription) + throw error + } + } + + } + +} + + +extension OwnedDeviceDiscoveryResult { + + public var obvOwnedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult { + ObvOwnedDeviceDiscoveryResult( + devices: Set(devices.map({ $0.obvOwnedDeviceDiscoveryResultDevice })), + isMultidevice: isMultidevice ?? false) + } + +} + + +extension OwnedDeviceDiscoveryResult.Device { + + var obvOwnedDeviceDiscoveryResultDevice: ObvOwnedDeviceDiscoveryResult.Device { + .init(identifier: uid.raw, + expirationDate: expirationDate, + latestRegistrationDate: latestRegistrationDate, + name: name) + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchDelegate.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchDelegate.swift index f2d67e4b..a1251f75 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchDelegate.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchDelegate.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -30,27 +30,26 @@ public protocol ObvNetworkFetchDelegate: ObvManager { func updatedListOfOwnedIdentites(ownedIdentities: Set, flowId: FlowIdentifier) func downloadMessages(for ownedIdentity: ObvCryptoIdentity, andDeviceUid deviceUid: UID, flowId: FlowIdentifier) - func getDecryptedMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) -> ObvNetworkReceivedMessageDecrypted? - func allAttachmentsCanBeDownloadedForMessage(withId: MessageIdentifier, within: ObvContext) throws -> Bool - func allAttachmentsHaveBeenDownloadedForMessage(withId: MessageIdentifier, within: ObvContext) throws -> Bool - func attachment(withId: AttachmentIdentifier, canBeDownloadedwithin: ObvContext) throws -> Bool + func getDecryptedMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) -> ObvNetworkReceivedMessageDecrypted? + func allAttachmentsCanBeDownloadedForMessage(withId: ObvMessageIdentifier, within: ObvContext) throws -> Bool + func allAttachmentsHaveBeenDownloadedForMessage(withId: ObvMessageIdentifier, within: ObvContext) throws -> Bool + func attachment(withId: ObvAttachmentIdentifier, canBeDownloadedwithin: ObvContext) throws -> Bool - func setRemoteCryptoIdentity(_ remoteCryptoIdentity: ObvCryptoIdentity, messagePayload: Data, extendedMessagePayloadKey: AuthenticatedEncryptionKey?, andAttachmentsInfos: [ObvNetworkFetchAttachmentInfos], forApplicationMessageWithmessageId: MessageIdentifier, within obvContext: ObvContext) throws + func setRemoteCryptoIdentity(_ remoteCryptoIdentity: ObvCryptoIdentity, messagePayload: Data, extendedMessagePayloadKey: AuthenticatedEncryptionKey?, andAttachmentsInfos: [ObvNetworkFetchAttachmentInfos], forApplicationMessageWithmessageId: ObvMessageIdentifier, within obvContext: ObvContext) throws - func getAttachment(withId attachmentId: AttachmentIdentifier, within obvContext: ObvContext) -> ObvNetworkFetchReceivedAttachment? + func getAttachment(withId attachmentId: ObvAttachmentIdentifier, within obvContext: ObvContext) -> ObvNetworkFetchReceivedAttachment? func backgroundURLSessionIdentifierIsAppropriate(backgroundURLSessionIdentifier: String) -> Bool func processCompletionHandler(_: @escaping () -> Void, forHandlingEventsForBackgroundURLSessionWithIdentifier: String, withinFlowId: FlowIdentifier) - func deleteMessageAndAttachments(messageId: MessageIdentifier, within: ObvContext) - func markMessageForDeletion(messageId: MessageIdentifier, within: ObvContext) - func markAttachmentForDeletion(attachmentId: AttachmentIdentifier, within: ObvContext) - func resumeDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - func pauseDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async throws -> [AttachmentIdentifier: Float] + func deleteMessageAndAttachments(messageId: ObvMessageIdentifier, within: ObvContext) + func markMessageForDeletion(messageId: ObvMessageIdentifier, within: ObvContext) + func markAttachmentForDeletion(attachmentId: ObvAttachmentIdentifier, within: ObvContext) + func resumeDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, forceResume: Bool, flowId: FlowIdentifier) + func pauseDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) + func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async throws -> [ObvAttachmentIdentifier: Float] - func registerPushNotification(_ pushNotification: ObvPushNotificationType, flowId: FlowIdentifier) - func getServerPushNotification(ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvPushNotificationType? + func registerPushNotification(_ pushNotification: ObvPushNotificationType, flowId: FlowIdentifier) async throws func sendDeleteReturnReceipt(ownedIdentity: ObvCryptoIdentity, serverUid: UID) async throws @@ -58,16 +57,22 @@ public protocol ObvNetworkFetchDelegate: ObvManager { func connectWebsockets(flowId: FlowIdentifier) async func disconnectWebsockets(flowId: FlowIdentifier) async - func getTurnCredentials(ownedIdenty: ObvCryptoIdentity, callUuid: UUID, username1: String, username2: String, flowId: FlowIdentifier) + func getTurnCredentials(ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> ObvTurnCredentials - func queryAPIKeyStatus(for identity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) - func resetServerSession(for identity: ObvCryptoIdentity, within obvContext: ObvContext) throws - func queryFreeTrial(for identity: ObvCryptoIdentity, retrieveAPIKey: Bool, flowId: FlowIdentifier) - func verifyReceipt(ownedCryptoIdentities: [ObvCryptoIdentity], receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier) + func refreshAPIPermissions(of ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> APIKeyElements + func queryAPIKeyStatus(for identity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) async throws -> APIKeyElements + func registerOwnedAPIKeyOnServerNow(ownedCryptoIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) async throws -> ObvRegisterApiKeyResult + func queryFreeTrial(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> Bool + func startFreeTrial(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> APIKeyElements + func verifyReceiptAndRefreshAPIPermissions(appStoreReceiptElements: ObvAppStoreReceipt, flowId: FlowIdentifier) async throws -> [ObvCryptoIdentity : ObvAppStoreReceipt.VerificationStatus] + // func verifyReceipt(ownedCryptoIdentities: [ObvCryptoIdentity], receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier) func queryServerWellKnown(serverURL: URL, flowId: FlowIdentifier) func postServerQuery(_: ServerQuery, within: ObvContext) func prepareForOwnedIdentityDeletion(ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws + func finalizeOwnedIdentityDeletion(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws + + func performOwnedDeviceDiscoveryNow(ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> EncryptedData } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchError.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchError.swift new file mode 100644 index 00000000..a8ec802d --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchError.swift @@ -0,0 +1,54 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation + + +public struct ObvNetworkFetchError { + + private static let descriptionPrefix = "[ObvNetworkFetchError]" + + public enum RegisterPushNotificationError: LocalizedError { + + case anotherDeviceIsAlreadyRegistered + case couldNotParseReturnStatusFromServer + case deviceToReplaceIsNotRegistered + case invalidServerResponse + case theDelegateManagerIsNotSet + + private static let descriptionPrefix = "[RegisterPushNotificationError]" + + public var errorDescription: String? { + let description: String + switch self { + case .anotherDeviceIsAlreadyRegistered: + description = "Another device is already registered" + case .couldNotParseReturnStatusFromServer: + description = "Could not parse the status returned by the server" + case .deviceToReplaceIsNotRegistered: + description = "Device to replace is not registered" + case .invalidServerResponse: + description = "Invalid server response" + case .theDelegateManagerIsNotSet: + description = "The delegate manager is not set" + } + return [ObvNetworkFetchError.descriptionPrefix, Self.descriptionPrefix, description].joined(separator: " ") + } + } +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchNotification.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchNotification.swift index 2fb7819e..98d2f728 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchNotification.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchNotification.swift @@ -32,10 +32,10 @@ public struct ObvNetworkFetchNotification { public static let messageId = "messageId" public static let flowId = "flowId" } - public static func parse(_ notification: Notification) -> (messageId: MessageIdentifier, flowId: FlowIdentifier)? { + public static func parse(_ notification: Notification) -> (messageId: ObvMessageIdentifier, flowId: FlowIdentifier)? { guard notification.name == name else { return nil } guard let userInfo = notification.userInfo else { return nil } - guard let messageId = userInfo[Key.messageId] as? MessageIdentifier else { return nil } + guard let messageId = userInfo[Key.messageId] as? ObvMessageIdentifier else { return nil } guard let flowId = userInfo[Key.flowId] as? FlowIdentifier else { return nil } return (messageId, flowId) } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchNotificationNew.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchNotificationNew.swift index 43fe4950..621b3b62 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchNotificationNew.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchNotificationNew.swift @@ -33,43 +33,28 @@ fileprivate struct OptionalWrapper { } public enum ObvNetworkFetchNotificationNew { - case serverReportedThatAnotherDeviceIsAlreadyRegistered(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) - case serverReportedThatThisDeviceWasSuccessfullyRegistered(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) case fetchNetworkOperationFailedSinceOwnedIdentityIsNotActive(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) case serverRequiresThisDeviceToRegisterToPushNotifications(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) - case inboxAttachmentWasDownloaded(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - case inboxAttachmentDownloadCancelledByServer(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - case inboxAttachmentDownloadWasResumed(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - case inboxAttachmentDownloadWasPaused(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - case inboxAttachmentWasTakenCareOf(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) + case inboxAttachmentWasDownloaded(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) + case inboxAttachmentDownloadCancelledByServer(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) + case inboxAttachmentDownloadWasResumed(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) + case inboxAttachmentDownloadWasPaused(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) + case inboxAttachmentWasTakenCareOf(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) case noInboxMessageToProcess(flowId: FlowIdentifier, ownedCryptoIdentity: ObvCryptoIdentity) - case newInboxMessageToProcess(messageId: MessageIdentifier, attachmentIds: [AttachmentIdentifier], flowId: FlowIdentifier) - case turnCredentialsReceived(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, turnCredentialsWithTurnServers: TurnCredentialsWithTurnServers, flowId: FlowIdentifier) - case turnCredentialsReceptionFailure(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, flowId: FlowIdentifier) - case turnCredentialsReceptionPermissionDenied(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, flowId: FlowIdentifier) - case turnCredentialServerDoesNotSupportCalls(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, flowId: FlowIdentifier) - case cannotReturnAnyProgressForMessageAttachments(messageId: MessageIdentifier, flowId: FlowIdentifier) + case newInboxMessageToProcess(messageId: ObvMessageIdentifier, attachmentIds: [ObvAttachmentIdentifier], flowId: FlowIdentifier) + case cannotReturnAnyProgressForMessageAttachments(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) case newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(ownedIdentity: ObvCryptoIdentity, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?) - case newAPIKeyElementsForAPIKey(serverURL: URL, apiKey: UUID, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?) - case newFreeTrialAPIKeyForOwnedIdentity(ownedIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) - case noMoreFreeTrialAPIKeyAvailableForOwnedIdentity(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) - case freeTrialIsStillAvailableForOwnedIdentity(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) - case appStoreReceiptVerificationFailed(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, flowId: FlowIdentifier) - case appStoreReceiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, apiKey: UUID, flowId: FlowIdentifier) - case appStoreReceiptVerificationSucceededButSubscriptionIsExpired(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, flowId: FlowIdentifier) case wellKnownHasBeenUpdated(serverURL: URL, appInfo: [String: AppInfo], flowId: FlowIdentifier) case wellKnownHasBeenDownloaded(serverURL: URL, appInfo: [String: AppInfo], flowId: FlowIdentifier) case wellKnownDownloadFailure(serverURL: URL, flowId: FlowIdentifier) - case apiKeyStatusQueryFailed(ownedIdentity: ObvCryptoIdentity, apiKey: UUID) - case applicationMessageDecrypted(messageId: MessageIdentifier, attachmentIds: [AttachmentIdentifier], hasEncryptedExtendedMessagePayload: Bool, flowId: FlowIdentifier) - case downloadingMessageExtendedPayloadWasPerformed(messageId: MessageIdentifier, flowId: FlowIdentifier) - case downloadingMessageExtendedPayloadFailed(messageId: MessageIdentifier, flowId: FlowIdentifier) + case applicationMessageDecrypted(messageId: ObvMessageIdentifier, attachmentIds: [ObvAttachmentIdentifier], hasEncryptedExtendedMessagePayload: Bool, flowId: FlowIdentifier) + case downloadingMessageExtendedPayloadWasPerformed(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) + case downloadingMessageExtendedPayloadFailed(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) case pushTopicReceivedViaWebsocket(pushTopic: String) case keycloakTargetedPushNotificationReceivedViaWebsocket(ownedIdentity: ObvCryptoIdentity) + case ownedDevicesMessageReceivedViaWebsocket(ownedIdentity: ObvCryptoIdentity) private enum Name { - case serverReportedThatAnotherDeviceIsAlreadyRegistered - case serverReportedThatThisDeviceWasSuccessfullyRegistered case fetchNetworkOperationFailedSinceOwnedIdentityIsNotActive case serverRequiresThisDeviceToRegisterToPushNotifications case inboxAttachmentWasDownloaded @@ -79,28 +64,17 @@ public enum ObvNetworkFetchNotificationNew { case inboxAttachmentWasTakenCareOf case noInboxMessageToProcess case newInboxMessageToProcess - case turnCredentialsReceived - case turnCredentialsReceptionFailure - case turnCredentialsReceptionPermissionDenied - case turnCredentialServerDoesNotSupportCalls case cannotReturnAnyProgressForMessageAttachments case newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity - case newAPIKeyElementsForAPIKey - case newFreeTrialAPIKeyForOwnedIdentity - case noMoreFreeTrialAPIKeyAvailableForOwnedIdentity - case freeTrialIsStillAvailableForOwnedIdentity - case appStoreReceiptVerificationFailed - case appStoreReceiptVerificationSucceededAndSubscriptionIsValid - case appStoreReceiptVerificationSucceededButSubscriptionIsExpired case wellKnownHasBeenUpdated case wellKnownHasBeenDownloaded case wellKnownDownloadFailure - case apiKeyStatusQueryFailed case applicationMessageDecrypted case downloadingMessageExtendedPayloadWasPerformed case downloadingMessageExtendedPayloadFailed case pushTopicReceivedViaWebsocket case keycloakTargetedPushNotificationReceivedViaWebsocket + case ownedDevicesMessageReceivedViaWebsocket private var namePrefix: String { String(describing: ObvNetworkFetchNotificationNew.self) } @@ -113,8 +87,6 @@ public enum ObvNetworkFetchNotificationNew { static func forInternalNotification(_ notification: ObvNetworkFetchNotificationNew) -> NSNotification.Name { switch notification { - case .serverReportedThatAnotherDeviceIsAlreadyRegistered: return Name.serverReportedThatAnotherDeviceIsAlreadyRegistered.name - case .serverReportedThatThisDeviceWasSuccessfullyRegistered: return Name.serverReportedThatThisDeviceWasSuccessfullyRegistered.name case .fetchNetworkOperationFailedSinceOwnedIdentityIsNotActive: return Name.fetchNetworkOperationFailedSinceOwnedIdentityIsNotActive.name case .serverRequiresThisDeviceToRegisterToPushNotifications: return Name.serverRequiresThisDeviceToRegisterToPushNotifications.name case .inboxAttachmentWasDownloaded: return Name.inboxAttachmentWasDownloaded.name @@ -124,44 +96,23 @@ public enum ObvNetworkFetchNotificationNew { case .inboxAttachmentWasTakenCareOf: return Name.inboxAttachmentWasTakenCareOf.name case .noInboxMessageToProcess: return Name.noInboxMessageToProcess.name case .newInboxMessageToProcess: return Name.newInboxMessageToProcess.name - case .turnCredentialsReceived: return Name.turnCredentialsReceived.name - case .turnCredentialsReceptionFailure: return Name.turnCredentialsReceptionFailure.name - case .turnCredentialsReceptionPermissionDenied: return Name.turnCredentialsReceptionPermissionDenied.name - case .turnCredentialServerDoesNotSupportCalls: return Name.turnCredentialServerDoesNotSupportCalls.name case .cannotReturnAnyProgressForMessageAttachments: return Name.cannotReturnAnyProgressForMessageAttachments.name case .newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity: return Name.newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity.name - case .newAPIKeyElementsForAPIKey: return Name.newAPIKeyElementsForAPIKey.name - case .newFreeTrialAPIKeyForOwnedIdentity: return Name.newFreeTrialAPIKeyForOwnedIdentity.name - case .noMoreFreeTrialAPIKeyAvailableForOwnedIdentity: return Name.noMoreFreeTrialAPIKeyAvailableForOwnedIdentity.name - case .freeTrialIsStillAvailableForOwnedIdentity: return Name.freeTrialIsStillAvailableForOwnedIdentity.name - case .appStoreReceiptVerificationFailed: return Name.appStoreReceiptVerificationFailed.name - case .appStoreReceiptVerificationSucceededAndSubscriptionIsValid: return Name.appStoreReceiptVerificationSucceededAndSubscriptionIsValid.name - case .appStoreReceiptVerificationSucceededButSubscriptionIsExpired: return Name.appStoreReceiptVerificationSucceededButSubscriptionIsExpired.name case .wellKnownHasBeenUpdated: return Name.wellKnownHasBeenUpdated.name case .wellKnownHasBeenDownloaded: return Name.wellKnownHasBeenDownloaded.name case .wellKnownDownloadFailure: return Name.wellKnownDownloadFailure.name - case .apiKeyStatusQueryFailed: return Name.apiKeyStatusQueryFailed.name case .applicationMessageDecrypted: return Name.applicationMessageDecrypted.name case .downloadingMessageExtendedPayloadWasPerformed: return Name.downloadingMessageExtendedPayloadWasPerformed.name case .downloadingMessageExtendedPayloadFailed: return Name.downloadingMessageExtendedPayloadFailed.name case .pushTopicReceivedViaWebsocket: return Name.pushTopicReceivedViaWebsocket.name case .keycloakTargetedPushNotificationReceivedViaWebsocket: return Name.keycloakTargetedPushNotificationReceivedViaWebsocket.name + case .ownedDevicesMessageReceivedViaWebsocket: return Name.ownedDevicesMessageReceivedViaWebsocket.name } } } private var userInfo: [AnyHashable: Any]? { let info: [AnyHashable: Any]? switch self { - case .serverReportedThatAnotherDeviceIsAlreadyRegistered(ownedIdentity: let ownedIdentity, flowId: let flowId): - info = [ - "ownedIdentity": ownedIdentity, - "flowId": flowId, - ] - case .serverReportedThatThisDeviceWasSuccessfullyRegistered(ownedIdentity: let ownedIdentity, flowId: let flowId): - info = [ - "ownedIdentity": ownedIdentity, - "flowId": flowId, - ] case .fetchNetworkOperationFailedSinceOwnedIdentityIsNotActive(ownedIdentity: let ownedIdentity, flowId: let flowId): info = [ "ownedIdentity": ownedIdentity, @@ -208,31 +159,6 @@ public enum ObvNetworkFetchNotificationNew { "attachmentIds": attachmentIds, "flowId": flowId, ] - case .turnCredentialsReceived(ownedIdentity: let ownedIdentity, callUuid: let callUuid, turnCredentialsWithTurnServers: let turnCredentialsWithTurnServers, flowId: let flowId): - info = [ - "ownedIdentity": ownedIdentity, - "callUuid": callUuid, - "turnCredentialsWithTurnServers": turnCredentialsWithTurnServers, - "flowId": flowId, - ] - case .turnCredentialsReceptionFailure(ownedIdentity: let ownedIdentity, callUuid: let callUuid, flowId: let flowId): - info = [ - "ownedIdentity": ownedIdentity, - "callUuid": callUuid, - "flowId": flowId, - ] - case .turnCredentialsReceptionPermissionDenied(ownedIdentity: let ownedIdentity, callUuid: let callUuid, flowId: let flowId): - info = [ - "ownedIdentity": ownedIdentity, - "callUuid": callUuid, - "flowId": flowId, - ] - case .turnCredentialServerDoesNotSupportCalls(ownedIdentity: let ownedIdentity, callUuid: let callUuid, flowId: let flowId): - info = [ - "ownedIdentity": ownedIdentity, - "callUuid": callUuid, - "flowId": flowId, - ] case .cannotReturnAnyProgressForMessageAttachments(messageId: let messageId, flowId: let flowId): info = [ "messageId": messageId, @@ -245,49 +171,6 @@ public enum ObvNetworkFetchNotificationNew { "apiPermissions": apiPermissions, "apiKeyExpirationDate": OptionalWrapper(apiKeyExpirationDate), ] - case .newAPIKeyElementsForAPIKey(serverURL: let serverURL, apiKey: let apiKey, apiKeyStatus: let apiKeyStatus, apiPermissions: let apiPermissions, apiKeyExpirationDate: let apiKeyExpirationDate): - info = [ - "serverURL": serverURL, - "apiKey": apiKey, - "apiKeyStatus": apiKeyStatus, - "apiPermissions": apiPermissions, - "apiKeyExpirationDate": OptionalWrapper(apiKeyExpirationDate), - ] - case .newFreeTrialAPIKeyForOwnedIdentity(ownedIdentity: let ownedIdentity, apiKey: let apiKey, flowId: let flowId): - info = [ - "ownedIdentity": ownedIdentity, - "apiKey": apiKey, - "flowId": flowId, - ] - case .noMoreFreeTrialAPIKeyAvailableForOwnedIdentity(ownedIdentity: let ownedIdentity, flowId: let flowId): - info = [ - "ownedIdentity": ownedIdentity, - "flowId": flowId, - ] - case .freeTrialIsStillAvailableForOwnedIdentity(ownedIdentity: let ownedIdentity, flowId: let flowId): - info = [ - "ownedIdentity": ownedIdentity, - "flowId": flowId, - ] - case .appStoreReceiptVerificationFailed(ownedIdentity: let ownedIdentity, transactionIdentifier: let transactionIdentifier, flowId: let flowId): - info = [ - "ownedIdentity": ownedIdentity, - "transactionIdentifier": transactionIdentifier, - "flowId": flowId, - ] - case .appStoreReceiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: let ownedIdentity, transactionIdentifier: let transactionIdentifier, apiKey: let apiKey, flowId: let flowId): - info = [ - "ownedIdentity": ownedIdentity, - "transactionIdentifier": transactionIdentifier, - "apiKey": apiKey, - "flowId": flowId, - ] - case .appStoreReceiptVerificationSucceededButSubscriptionIsExpired(ownedIdentity: let ownedIdentity, transactionIdentifier: let transactionIdentifier, flowId: let flowId): - info = [ - "ownedIdentity": ownedIdentity, - "transactionIdentifier": transactionIdentifier, - "flowId": flowId, - ] case .wellKnownHasBeenUpdated(serverURL: let serverURL, appInfo: let appInfo, flowId: let flowId): info = [ "serverURL": serverURL, @@ -305,11 +188,6 @@ public enum ObvNetworkFetchNotificationNew { "serverURL": serverURL, "flowId": flowId, ] - case .apiKeyStatusQueryFailed(ownedIdentity: let ownedIdentity, apiKey: let apiKey): - info = [ - "ownedIdentity": ownedIdentity, - "apiKey": apiKey, - ] case .applicationMessageDecrypted(messageId: let messageId, attachmentIds: let attachmentIds, hasEncryptedExtendedMessagePayload: let hasEncryptedExtendedMessagePayload, flowId: let flowId): info = [ "messageId": messageId, @@ -335,6 +213,10 @@ public enum ObvNetworkFetchNotificationNew { info = [ "ownedIdentity": ownedIdentity, ] + case .ownedDevicesMessageReceivedViaWebsocket(ownedIdentity: let ownedIdentity): + info = [ + "ownedIdentity": ownedIdentity, + ] } return info } @@ -348,24 +230,6 @@ public enum ObvNetworkFetchNotificationNew { } } - public static func observeServerReportedThatAnotherDeviceIsAlreadyRegistered(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, FlowIdentifier) -> Void) -> NSObjectProtocol { - let name = Name.serverReportedThatAnotherDeviceIsAlreadyRegistered.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity - let flowId = notification.userInfo!["flowId"] as! FlowIdentifier - block(ownedIdentity, flowId) - } - } - - public static func observeServerReportedThatThisDeviceWasSuccessfullyRegistered(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, FlowIdentifier) -> Void) -> NSObjectProtocol { - let name = Name.serverReportedThatThisDeviceWasSuccessfullyRegistered.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity - let flowId = notification.userInfo!["flowId"] as! FlowIdentifier - block(ownedIdentity, flowId) - } - } - public static func observeFetchNetworkOperationFailedSinceOwnedIdentityIsNotActive(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.fetchNetworkOperationFailedSinceOwnedIdentityIsNotActive.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in @@ -384,46 +248,46 @@ public enum ObvNetworkFetchNotificationNew { } } - public static func observeInboxAttachmentWasDownloaded(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (AttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeInboxAttachmentWasDownloaded(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvAttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.inboxAttachmentWasDownloaded.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let attachmentId = notification.userInfo!["attachmentId"] as! AttachmentIdentifier + let attachmentId = notification.userInfo!["attachmentId"] as! ObvAttachmentIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(attachmentId, flowId) } } - public static func observeInboxAttachmentDownloadCancelledByServer(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (AttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeInboxAttachmentDownloadCancelledByServer(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvAttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.inboxAttachmentDownloadCancelledByServer.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let attachmentId = notification.userInfo!["attachmentId"] as! AttachmentIdentifier + let attachmentId = notification.userInfo!["attachmentId"] as! ObvAttachmentIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(attachmentId, flowId) } } - public static func observeInboxAttachmentDownloadWasResumed(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (AttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeInboxAttachmentDownloadWasResumed(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvAttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.inboxAttachmentDownloadWasResumed.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let attachmentId = notification.userInfo!["attachmentId"] as! AttachmentIdentifier + let attachmentId = notification.userInfo!["attachmentId"] as! ObvAttachmentIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(attachmentId, flowId) } } - public static func observeInboxAttachmentDownloadWasPaused(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (AttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeInboxAttachmentDownloadWasPaused(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvAttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.inboxAttachmentDownloadWasPaused.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let attachmentId = notification.userInfo!["attachmentId"] as! AttachmentIdentifier + let attachmentId = notification.userInfo!["attachmentId"] as! ObvAttachmentIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(attachmentId, flowId) } } - public static func observeInboxAttachmentWasTakenCareOf(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (AttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeInboxAttachmentWasTakenCareOf(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvAttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.inboxAttachmentWasTakenCareOf.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let attachmentId = notification.userInfo!["attachmentId"] as! AttachmentIdentifier + let attachmentId = notification.userInfo!["attachmentId"] as! ObvAttachmentIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(attachmentId, flowId) } @@ -438,61 +302,20 @@ public enum ObvNetworkFetchNotificationNew { } } - public static func observeNewInboxMessageToProcess(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (MessageIdentifier, [AttachmentIdentifier], FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeNewInboxMessageToProcess(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier, [ObvAttachmentIdentifier], FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.newInboxMessageToProcess.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let messageId = notification.userInfo!["messageId"] as! MessageIdentifier - let attachmentIds = notification.userInfo!["attachmentIds"] as! [AttachmentIdentifier] + let messageId = notification.userInfo!["messageId"] as! ObvMessageIdentifier + let attachmentIds = notification.userInfo!["attachmentIds"] as! [ObvAttachmentIdentifier] let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(messageId, attachmentIds, flowId) } } - public static func observeTurnCredentialsReceived(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, UUID, TurnCredentialsWithTurnServers, FlowIdentifier) -> Void) -> NSObjectProtocol { - let name = Name.turnCredentialsReceived.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity - let callUuid = notification.userInfo!["callUuid"] as! UUID - let turnCredentialsWithTurnServers = notification.userInfo!["turnCredentialsWithTurnServers"] as! TurnCredentialsWithTurnServers - let flowId = notification.userInfo!["flowId"] as! FlowIdentifier - block(ownedIdentity, callUuid, turnCredentialsWithTurnServers, flowId) - } - } - - public static func observeTurnCredentialsReceptionFailure(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, UUID, FlowIdentifier) -> Void) -> NSObjectProtocol { - let name = Name.turnCredentialsReceptionFailure.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity - let callUuid = notification.userInfo!["callUuid"] as! UUID - let flowId = notification.userInfo!["flowId"] as! FlowIdentifier - block(ownedIdentity, callUuid, flowId) - } - } - - public static func observeTurnCredentialsReceptionPermissionDenied(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, UUID, FlowIdentifier) -> Void) -> NSObjectProtocol { - let name = Name.turnCredentialsReceptionPermissionDenied.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity - let callUuid = notification.userInfo!["callUuid"] as! UUID - let flowId = notification.userInfo!["flowId"] as! FlowIdentifier - block(ownedIdentity, callUuid, flowId) - } - } - - public static func observeTurnCredentialServerDoesNotSupportCalls(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, UUID, FlowIdentifier) -> Void) -> NSObjectProtocol { - let name = Name.turnCredentialServerDoesNotSupportCalls.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity - let callUuid = notification.userInfo!["callUuid"] as! UUID - let flowId = notification.userInfo!["flowId"] as! FlowIdentifier - block(ownedIdentity, callUuid, flowId) - } - } - - public static func observeCannotReturnAnyProgressForMessageAttachments(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (MessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeCannotReturnAnyProgressForMessageAttachments(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.cannotReturnAnyProgressForMessageAttachments.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let messageId = notification.userInfo!["messageId"] as! MessageIdentifier + let messageId = notification.userInfo!["messageId"] as! ObvMessageIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(messageId, flowId) } @@ -510,78 +333,6 @@ public enum ObvNetworkFetchNotificationNew { } } - public static func observeNewAPIKeyElementsForAPIKey(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (URL, UUID, APIKeyStatus, APIPermissions, Date?) -> Void) -> NSObjectProtocol { - let name = Name.newAPIKeyElementsForAPIKey.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let serverURL = notification.userInfo!["serverURL"] as! URL - let apiKey = notification.userInfo!["apiKey"] as! UUID - let apiKeyStatus = notification.userInfo!["apiKeyStatus"] as! APIKeyStatus - let apiPermissions = notification.userInfo!["apiPermissions"] as! APIPermissions - let apiKeyExpirationDateWrapper = notification.userInfo!["apiKeyExpirationDate"] as! OptionalWrapper - let apiKeyExpirationDate = apiKeyExpirationDateWrapper.value - block(serverURL, apiKey, apiKeyStatus, apiPermissions, apiKeyExpirationDate) - } - } - - public static func observeNewFreeTrialAPIKeyForOwnedIdentity(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, UUID, FlowIdentifier) -> Void) -> NSObjectProtocol { - let name = Name.newFreeTrialAPIKeyForOwnedIdentity.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity - let apiKey = notification.userInfo!["apiKey"] as! UUID - let flowId = notification.userInfo!["flowId"] as! FlowIdentifier - block(ownedIdentity, apiKey, flowId) - } - } - - public static func observeNoMoreFreeTrialAPIKeyAvailableForOwnedIdentity(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, FlowIdentifier) -> Void) -> NSObjectProtocol { - let name = Name.noMoreFreeTrialAPIKeyAvailableForOwnedIdentity.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity - let flowId = notification.userInfo!["flowId"] as! FlowIdentifier - block(ownedIdentity, flowId) - } - } - - public static func observeFreeTrialIsStillAvailableForOwnedIdentity(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, FlowIdentifier) -> Void) -> NSObjectProtocol { - let name = Name.freeTrialIsStillAvailableForOwnedIdentity.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity - let flowId = notification.userInfo!["flowId"] as! FlowIdentifier - block(ownedIdentity, flowId) - } - } - - public static func observeAppStoreReceiptVerificationFailed(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, String, FlowIdentifier) -> Void) -> NSObjectProtocol { - let name = Name.appStoreReceiptVerificationFailed.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity - let transactionIdentifier = notification.userInfo!["transactionIdentifier"] as! String - let flowId = notification.userInfo!["flowId"] as! FlowIdentifier - block(ownedIdentity, transactionIdentifier, flowId) - } - } - - public static func observeAppStoreReceiptVerificationSucceededAndSubscriptionIsValid(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, String, UUID, FlowIdentifier) -> Void) -> NSObjectProtocol { - let name = Name.appStoreReceiptVerificationSucceededAndSubscriptionIsValid.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity - let transactionIdentifier = notification.userInfo!["transactionIdentifier"] as! String - let apiKey = notification.userInfo!["apiKey"] as! UUID - let flowId = notification.userInfo!["flowId"] as! FlowIdentifier - block(ownedIdentity, transactionIdentifier, apiKey, flowId) - } - } - - public static func observeAppStoreReceiptVerificationSucceededButSubscriptionIsExpired(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, String, FlowIdentifier) -> Void) -> NSObjectProtocol { - let name = Name.appStoreReceiptVerificationSucceededButSubscriptionIsExpired.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity - let transactionIdentifier = notification.userInfo!["transactionIdentifier"] as! String - let flowId = notification.userInfo!["flowId"] as! FlowIdentifier - block(ownedIdentity, transactionIdentifier, flowId) - } - } - public static func observeWellKnownHasBeenUpdated(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (URL, [String: AppInfo], FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.wellKnownHasBeenUpdated.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in @@ -611,39 +362,30 @@ public enum ObvNetworkFetchNotificationNew { } } - public static func observeApiKeyStatusQueryFailed(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, UUID) -> Void) -> NSObjectProtocol { - let name = Name.apiKeyStatusQueryFailed.name - return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity - let apiKey = notification.userInfo!["apiKey"] as! UUID - block(ownedIdentity, apiKey) - } - } - - public static func observeApplicationMessageDecrypted(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (MessageIdentifier, [AttachmentIdentifier], Bool, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeApplicationMessageDecrypted(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier, [ObvAttachmentIdentifier], Bool, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.applicationMessageDecrypted.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let messageId = notification.userInfo!["messageId"] as! MessageIdentifier - let attachmentIds = notification.userInfo!["attachmentIds"] as! [AttachmentIdentifier] + let messageId = notification.userInfo!["messageId"] as! ObvMessageIdentifier + let attachmentIds = notification.userInfo!["attachmentIds"] as! [ObvAttachmentIdentifier] let hasEncryptedExtendedMessagePayload = notification.userInfo!["hasEncryptedExtendedMessagePayload"] as! Bool let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(messageId, attachmentIds, hasEncryptedExtendedMessagePayload, flowId) } } - public static func observeDownloadingMessageExtendedPayloadWasPerformed(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (MessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeDownloadingMessageExtendedPayloadWasPerformed(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.downloadingMessageExtendedPayloadWasPerformed.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let messageId = notification.userInfo!["messageId"] as! MessageIdentifier + let messageId = notification.userInfo!["messageId"] as! ObvMessageIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(messageId, flowId) } } - public static func observeDownloadingMessageExtendedPayloadFailed(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (MessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeDownloadingMessageExtendedPayloadFailed(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.downloadingMessageExtendedPayloadFailed.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let messageId = notification.userInfo!["messageId"] as! MessageIdentifier + let messageId = notification.userInfo!["messageId"] as! ObvMessageIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(messageId, flowId) } @@ -665,4 +407,12 @@ public enum ObvNetworkFetchNotificationNew { } } + public static func observeOwnedDevicesMessageReceivedViaWebsocket(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity) -> Void) -> NSObjectProtocol { + let name = Name.ownedDevicesMessageReceivedViaWebsocket.name + return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in + let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity + block(ownedIdentity) + } + } + } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchNotificationNew.yml b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchNotificationNew.yml deleted file mode 100644 index fb56c00c..00000000 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/ObvNetworkFetchNotificationNew.yml +++ /dev/null @@ -1,162 +0,0 @@ -import: - - Foundation - - ObvCrypto - - ObvTypes - - OlvidUtils -options: - - {key: post, value: postOnBackgroundQueue} - - {key: notificationCenterName, value: notificationDelegate} - - {key: notificationCenterType, value: ObvNotificationDelegate} - - {key: visibility, value: public} - - {key: objectInObserve, value: false} -notifications: -- name: serverReportedThatAnotherDeviceIsAlreadyRegistered - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: serverReportedThatThisDeviceWasSuccessfullyRegistered - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: fetchNetworkOperationFailedSinceOwnedIdentityIsNotActive - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: serverRequiresThisDeviceToRegisterToPushNotifications - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: inboxAttachmentWasDownloaded - params: - - {name: attachmentId, type: AttachmentIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: inboxAttachmentDownloadCancelledByServer - params: - - {name: attachmentId, type: AttachmentIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: inboxAttachmentDownloadWasResumed - params: - - {name: attachmentId, type: AttachmentIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: inboxAttachmentDownloadWasPaused - params: - - {name: attachmentId, type: AttachmentIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: inboxAttachmentWasTakenCareOf - params: - - {name: attachmentId, type: AttachmentIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: noInboxMessageToProcess - params: - - {name: flowId, type: FlowIdentifier} - - {name: ownedCryptoIdentity, type: ObvCryptoIdentity} -- name: newInboxMessageToProcess - params: - - {name: messageId, type: MessageIdentifier} - - {name: attachmentIds, type: [AttachmentIdentifier]} - - {name: flowId, type: FlowIdentifier} -- name: turnCredentialsReceived - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: callUuid, type: UUID} - - {name: turnCredentialsWithTurnServers, type: TurnCredentialsWithTurnServers} - - {name: flowId, type: FlowIdentifier} -- name: turnCredentialsReceptionFailure - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: callUuid, type: UUID} - - {name: flowId, type: FlowIdentifier} -- name: turnCredentialsReceptionPermissionDenied - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: callUuid, type: UUID} - - {name: flowId, type: FlowIdentifier} -- name: turnCredentialServerDoesNotSupportCalls - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: callUuid, type: UUID} - - {name: flowId, type: FlowIdentifier} -- name: cannotReturnAnyProgressForMessageAttachments - params: - - {name: messageId, type: MessageIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: apiKeyStatus, type: APIKeyStatus} - - {name: apiPermissions, type: APIPermissions} - - {name: apiKeyExpirationDate, type: "Date?"} -- name: newAPIKeyElementsForAPIKey - params: - - {name: serverURL, type: URL} - - {name: apiKey, type: UUID} - - {name: apiKeyStatus, type: APIKeyStatus} - - {name: apiPermissions, type: APIPermissions} - - {name: apiKeyExpirationDate, type: "Date?"} -- name: newFreeTrialAPIKeyForOwnedIdentity - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: apiKey, type: UUID} - - {name: flowId, type: FlowIdentifier} -- name: noMoreFreeTrialAPIKeyAvailableForOwnedIdentity - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: freeTrialIsStillAvailableForOwnedIdentity - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: appStoreReceiptVerificationFailed - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: transactionIdentifier, type: String} - - {name: flowId, type: FlowIdentifier} -- name: appStoreReceiptVerificationSucceededAndSubscriptionIsValid - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: transactionIdentifier, type: String} - - {name: apiKey, type: UUID} - - {name: flowId, type: FlowIdentifier} -- name: appStoreReceiptVerificationSucceededButSubscriptionIsExpired - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: transactionIdentifier, type: String} - - {name: flowId, type: FlowIdentifier} -- name: wellKnownHasBeenUpdated - params: - - {name: serverURL, type: URL} - - {name: appInfo, type: "[String: AppInfo]"} - - {name: flowId, type: FlowIdentifier} -- name: wellKnownHasBeenDownloaded - params: - - {name: serverURL, type: URL} - - {name: appInfo, type: "[String: AppInfo]"} - - {name: flowId, type: FlowIdentifier} -- name: wellKnownDownloadFailure - params: - - {name: serverURL, type: URL} - - {name: flowId, type: FlowIdentifier} -- name: apiKeyStatusQueryFailed - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: apiKey, type: UUID} -- name: applicationMessageDecrypted - params: - - {name: messageId, type: MessageIdentifier} - - {name: attachmentIds, type: [AttachmentIdentifier]} - - {name: hasEncryptedExtendedMessagePayload, type: Bool} - - {name: flowId, type: FlowIdentifier} -- name: downloadingMessageExtendedPayloadWasPerformed - params: - - {name: messageId, type: MessageIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: downloadingMessageExtendedPayloadFailed - params: - - {name: messageId, type: MessageIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: pushTopicReceivedViaWebsocket - params: - - {name: pushTopic, type: String} -- name: keycloakTargetedPushNotificationReceivedViaWebsocket - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/Types/ObvNetworkFetchReceivedAttachment.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/Types/ObvNetworkFetchReceivedAttachment.swift index d2d17096..b66141ac 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/Types/ObvNetworkFetchReceivedAttachment.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/Types/ObvNetworkFetchReceivedAttachment.swift @@ -44,7 +44,7 @@ public struct ObvNetworkFetchReceivedAttachment { public let fromCryptoIdentity: ObvCryptoIdentity - public let attachmentId: AttachmentIdentifier + public let attachmentId: ObvAttachmentIdentifier public let metadata: Data public let totalUnitCount: Int64 // Bytes of the plaintext public let url: URL @@ -52,7 +52,7 @@ public struct ObvNetworkFetchReceivedAttachment { public let messageUploadTimestampFromServer: Date public let downloadTimestampFromServer: Date - public init(fromCryptoIdentity: ObvCryptoIdentity, attachmentId: AttachmentIdentifier, messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, metadata: Data, totalUnitCount: Int64, url: URL, status: Status) { + public init(fromCryptoIdentity: ObvCryptoIdentity, attachmentId: ObvAttachmentIdentifier, messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, metadata: Data, totalUnitCount: Int64, url: URL, status: Status) { self.fromCryptoIdentity = fromCryptoIdentity self.attachmentId = attachmentId self.metadata = metadata diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/Types/ObvNetworkReceivedMessageDecrypted.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/Types/ObvNetworkReceivedMessageDecrypted.swift index 9a791a97..e3fef3e0 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/Types/ObvNetworkReceivedMessageDecrypted.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/Types/ObvNetworkReceivedMessageDecrypted.swift @@ -22,8 +22,8 @@ import ObvCrypto import ObvTypes public struct ObvNetworkReceivedMessageDecrypted { - public let messageId: MessageIdentifier - public let attachmentIds: [AttachmentIdentifier] + public let messageId: ObvMessageIdentifier + public let attachmentIds: [ObvAttachmentIdentifier] public let fromIdentity: ObvCryptoIdentity public let messagePayload: Data public let messageUploadTimestampFromServer: Date @@ -31,7 +31,7 @@ public struct ObvNetworkReceivedMessageDecrypted { public let localDownloadTimestamp: Date public let extendedMessagePayload: Data? - public init(messageId: MessageIdentifier, attachmentIds: [AttachmentIdentifier], fromIdentity: ObvCryptoIdentity, messagePayload: Data, messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, localDownloadTimestamp: Date, extendedMessagePayload: Data?) { + public init(messageId: ObvMessageIdentifier, attachmentIds: [ObvAttachmentIdentifier], fromIdentity: ObvCryptoIdentity, messagePayload: Data, messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, localDownloadTimestamp: Date, extendedMessagePayload: Data?) { self.messageId = messageId self.attachmentIds = attachmentIds self.fromIdentity = fromIdentity diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/Types/ObvNetworkReceivedMessageEncrypted.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/Types/ObvNetworkReceivedMessageEncrypted.swift index f88c12cc..fe3d89b1 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/Types/ObvNetworkReceivedMessageEncrypted.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkFetchDelegate/Types/ObvNetworkReceivedMessageEncrypted.swift @@ -24,7 +24,7 @@ import ObvTypes /// This struct represents an encrypted message received through the network, either via a push notification (in which case the number of attachments is not known, and the encryptedExtendedContent may be available) or via the normal connection we have with the server (in which case the number of attachments is known, while the encrypted content is not available as it is downloaded asynchronously). public struct ObvNetworkReceivedMessageEncrypted: Hashable { - public let messageId: MessageIdentifier + public let messageId: ObvMessageIdentifier public let encryptedContent: EncryptedData public let knownAttachmentCount: Int? public let messageUploadTimestampFromServer: Date @@ -33,7 +33,7 @@ public struct ObvNetworkReceivedMessageEncrypted: Hashable { public let wrappedKey: EncryptedData public let availableEncryptedExtendedContent: EncryptedData? - public init(messageId: MessageIdentifier, messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, localDownloadTimestamp: Date, encryptedContent: EncryptedData, wrappedKey: EncryptedData, knownAttachmentCount: Int?, availableEncryptedExtendedContent: EncryptedData?) { + public init(messageId: ObvMessageIdentifier, messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, localDownloadTimestamp: Date, encryptedContent: EncryptedData, wrappedKey: EncryptedData, knownAttachmentCount: Int?, availableEncryptedExtendedContent: EncryptedData?) { self.messageId = messageId self.encryptedContent = encryptedContent self.knownAttachmentCount = knownAttachmentCount diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkMessageToSend.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkMessageToSend.swift index e3cbe4e0..980df928 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkMessageToSend.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkMessageToSend.swift @@ -24,7 +24,7 @@ import ObvEncoder public struct ObvNetworkMessageToSend { - public let messageId: MessageIdentifier + public let messageId: ObvMessageIdentifier public let encryptedContent: EncryptedData public let encryptedExtendedMessagePayload: EncryptedData? public let serverURL: URL @@ -34,7 +34,7 @@ public struct ObvNetworkMessageToSend { public let attachments: [Attachment]? - public init(messageId: MessageIdentifier, encryptedContent: EncryptedData, encryptedExtendedMessagePayload: EncryptedData?, isAppMessageWithUserContent: Bool, isVoipMessageForStartingCall: Bool, serverURL: URL, headers: [Header], attachments: [Attachment]? = nil) { + public init(messageId: ObvMessageIdentifier, encryptedContent: EncryptedData, encryptedExtendedMessagePayload: EncryptedData?, isAppMessageWithUserContent: Bool, isVoipMessageForStartingCall: Bool, serverURL: URL, headers: [Header], attachments: [Attachment]? = nil) { self.messageId = messageId self.encryptedContent = encryptedContent self.encryptedExtendedMessagePayload = encryptedExtendedMessagePayload diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkPostDelegate.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkPostDelegate.swift index c381cf55..9cf18959 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkPostDelegate.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkPostDelegate.swift @@ -27,16 +27,16 @@ import ObvCrypto public protocol ObvNetworkPostDelegate: ObvManager { func post(_: ObvNetworkMessageToSend, within: ObvContext) throws - func cancelPostOfMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) throws + func cancelPostOfMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) throws func storeCompletionHandler(_: @escaping () -> Void, forHandlingEventsForBackgroundURLSessionWithIdentifier: String, withinFlowId: FlowIdentifier) func backgroundURLSessionIdentifierIsAppropriate(backgroundURLSessionIdentifier: String) -> Bool func replayTransactionsHistory(transactions: [NSPersistentHistoryTransaction], within obvContext: ObvContext) - func deleteHistoryConcerningTheAcknowledgementOfOutboxMessage(messageIdentifier: MessageIdentifier, flowId: FlowIdentifier) async + func deleteHistoryConcerningTheAcknowledgementOfOutboxMessage(messageIdentifier: ObvMessageIdentifier, flowId: FlowIdentifier) async func deleteHistoryConcerningTheAcknowledgementOfOutboxMessages(withTimestampFromServerEarlierOrEqualTo referenceDate: Date, flowId: FlowIdentifier) async - func requestUploadAttachmentProgressesUpdatedSince(date: Date) async throws -> [AttachmentIdentifier: Float] + func requestUploadAttachmentProgressesUpdatedSince(date: Date) async throws -> [ObvAttachmentIdentifier: Float] func prepareForOwnedIdentityDeletion(ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkPostNotification.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkPostNotification.swift index 04a77db6..8b4b9100 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkPostNotification.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkPostNotification.swift @@ -33,14 +33,14 @@ fileprivate struct OptionalWrapper { } public enum ObvNetworkPostNotification { - case newOutboxMessageAndAttachmentsToUpload(messageId: MessageIdentifier, attachmentIds: [AttachmentIdentifier], flowId: FlowIdentifier) - case outboxMessageAndAttachmentsDeleted(messageId: MessageIdentifier, flowId: FlowIdentifier) - case attachmentUploadRequestIsTakenCareOf(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) + case newOutboxMessageAndAttachmentsToUpload(messageId: ObvMessageIdentifier, attachmentIds: [ObvAttachmentIdentifier], flowId: FlowIdentifier) + case outboxMessageAndAttachmentsDeleted(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) + case attachmentUploadRequestIsTakenCareOf(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) case postNetworkOperationFailedSinceOwnedIdentityIsNotActive(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) - case outboxMessageWasUploaded(messageId: MessageIdentifier, timestampFromServer: Date, isAppMessageWithUserContent: Bool, isVoipMessage: Bool, flowId: FlowIdentifier) - case outboxAttachmentWasAcknowledged(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - case outboxMessagesAndAllTheirAttachmentsWereAcknowledged(messageIdsAndTimestampsFromServer: [(messageId: MessageIdentifier, timestampFromServer: Date)], flowId: FlowIdentifier) - case outboxMessageCouldNotBeSentToServer(messageId: MessageIdentifier, flowId: FlowIdentifier) + case outboxMessageWasUploaded(messageId: ObvMessageIdentifier, timestampFromServer: Date, isAppMessageWithUserContent: Bool, isVoipMessage: Bool, flowId: FlowIdentifier) + case outboxAttachmentWasAcknowledged(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) + case outboxMessagesAndAllTheirAttachmentsWereAcknowledged(messageIdsAndTimestampsFromServer: [(messageId: ObvMessageIdentifier, timestampFromServer: Date)], flowId: FlowIdentifier) + case outboxMessageCouldNotBeSentToServer(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) private enum Name { case newOutboxMessageAndAttachmentsToUpload @@ -134,29 +134,29 @@ public enum ObvNetworkPostNotification { } } - public static func observeNewOutboxMessageAndAttachmentsToUpload(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (MessageIdentifier, [AttachmentIdentifier], FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeNewOutboxMessageAndAttachmentsToUpload(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier, [ObvAttachmentIdentifier], FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.newOutboxMessageAndAttachmentsToUpload.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let messageId = notification.userInfo!["messageId"] as! MessageIdentifier - let attachmentIds = notification.userInfo!["attachmentIds"] as! [AttachmentIdentifier] + let messageId = notification.userInfo!["messageId"] as! ObvMessageIdentifier + let attachmentIds = notification.userInfo!["attachmentIds"] as! [ObvAttachmentIdentifier] let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(messageId, attachmentIds, flowId) } } - public static func observeOutboxMessageAndAttachmentsDeleted(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (MessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeOutboxMessageAndAttachmentsDeleted(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.outboxMessageAndAttachmentsDeleted.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let messageId = notification.userInfo!["messageId"] as! MessageIdentifier + let messageId = notification.userInfo!["messageId"] as! ObvMessageIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(messageId, flowId) } } - public static func observeAttachmentUploadRequestIsTakenCareOf(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (AttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeAttachmentUploadRequestIsTakenCareOf(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvAttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.attachmentUploadRequestIsTakenCareOf.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let attachmentId = notification.userInfo!["attachmentId"] as! AttachmentIdentifier + let attachmentId = notification.userInfo!["attachmentId"] as! ObvAttachmentIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(attachmentId, flowId) } @@ -171,10 +171,10 @@ public enum ObvNetworkPostNotification { } } - public static func observeOutboxMessageWasUploaded(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (MessageIdentifier, Date, Bool, Bool, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeOutboxMessageWasUploaded(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier, Date, Bool, Bool, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.outboxMessageWasUploaded.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let messageId = notification.userInfo!["messageId"] as! MessageIdentifier + let messageId = notification.userInfo!["messageId"] as! ObvMessageIdentifier let timestampFromServer = notification.userInfo!["timestampFromServer"] as! Date let isAppMessageWithUserContent = notification.userInfo!["isAppMessageWithUserContent"] as! Bool let isVoipMessage = notification.userInfo!["isVoipMessage"] as! Bool @@ -183,28 +183,28 @@ public enum ObvNetworkPostNotification { } } - public static func observeOutboxAttachmentWasAcknowledged(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (AttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeOutboxAttachmentWasAcknowledged(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvAttachmentIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.outboxAttachmentWasAcknowledged.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let attachmentId = notification.userInfo!["attachmentId"] as! AttachmentIdentifier + let attachmentId = notification.userInfo!["attachmentId"] as! ObvAttachmentIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(attachmentId, flowId) } } - public static func observeOutboxMessagesAndAllTheirAttachmentsWereAcknowledged(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping ([(messageId: MessageIdentifier, timestampFromServer: Date)], FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeOutboxMessagesAndAllTheirAttachmentsWereAcknowledged(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping ([(messageId: ObvMessageIdentifier, timestampFromServer: Date)], FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.outboxMessagesAndAllTheirAttachmentsWereAcknowledged.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let messageIdsAndTimestampsFromServer = notification.userInfo!["messageIdsAndTimestampsFromServer"] as! [(messageId: MessageIdentifier, timestampFromServer: Date)] + let messageIdsAndTimestampsFromServer = notification.userInfo!["messageIdsAndTimestampsFromServer"] as! [(messageId: ObvMessageIdentifier, timestampFromServer: Date)] let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(messageIdsAndTimestampsFromServer, flowId) } } - public static func observeOutboxMessageCouldNotBeSentToServer(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (MessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeOutboxMessageCouldNotBeSentToServer(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.outboxMessageCouldNotBeSentToServer.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let messageId = notification.userInfo!["messageId"] as! MessageIdentifier + let messageId = notification.userInfo!["messageId"] as! ObvMessageIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(messageId, flowId) } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkPostNotification.yml b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkPostNotification.yml deleted file mode 100644 index da8d721e..00000000 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ObvNetworkPostNotification.yml +++ /dev/null @@ -1,48 +0,0 @@ -import: - - Foundation - - ObvCrypto - - ObvTypes - - OlvidUtils -options: - - {key: post, value: postOnBackgroundQueue} - - {key: notificationCenterName, value: notificationDelegate} - - {key: notificationCenterType, value: ObvNotificationDelegate} - - {key: visibility, value: public} - - {key: objectInObserve, value: false} -notifications: -- name: newOutboxMessageAndAttachmentsToUpload - params: - - {name: messageId, type: MessageIdentifier} - - {name: attachmentIds, type: [AttachmentIdentifier]} - - {name: flowId, type: FlowIdentifier} -- name: outboxMessageAndAttachmentsDeleted - params: - - {name: messageId, type: MessageIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: attachmentUploadRequestIsTakenCareOf - params: - - {name: attachmentId, type: AttachmentIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: postNetworkOperationFailedSinceOwnedIdentityIsNotActive - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: flowId, type: FlowIdentifier} -- name: outboxMessageWasUploaded - params: - - {name: messageId, type: MessageIdentifier} - - {name: timestampFromServer, type: Date} - - {name: isAppMessageWithUserContent, type: Bool} - - {name: isVoipMessage, type: Bool} - - {name: flowId, type: FlowIdentifier} -- name: outboxAttachmentWasAcknowledged - params: - - {name: attachmentId, type: AttachmentIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: outboxMessagesAndAllTheirAttachmentsWereAcknowledged - params: - - {name: messageIdsAndTimestampsFromServer, type: "[(messageId: MessageIdentifier, timestampFromServer: Date)]"} - - {name: flowId, type: FlowIdentifier} -- name: outboxMessageCouldNotBeSentToServer - params: - - {name: messageId, type: MessageIdentifier} - - {name: flowId, type: FlowIdentifier} diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ServerQuery.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ServerQuery.swift index b3ff137f..ea6da887 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ServerQuery.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ServerQuery.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -35,6 +35,38 @@ public struct ServerQuery { } } +extension ServerQuery { + + public var isWebSocket: Bool { + switch self.queryType { + case .deviceDiscovery, + .putUserData, + .getUserData, + .checkKeycloakRevocation, + .createGroupBlob, + .getGroupBlob, + .deleteGroupBlob, + .putGroupLog, + .requestGroupBlobLock, + .updateGroupBlob, + .getKeycloakData, + .ownedDeviceDiscovery, + .setOwnedDeviceName, + .deactivateOwnedDevice, + .setUnexpiringOwnedDevice: + return false + case .sourceGetSessionNumber, + .sourceWaitForTargetConnection, + .targetSendEphemeralIdentity, + .transferRelay, + .closeWebsocketConnection, + .transferWait: + return true + } + } + +} + extension ServerQuery { public enum QueryType { @@ -49,7 +81,26 @@ extension ServerQuery { case requestGroupBlobLock(groupIdentifier: GroupV2.Identifier, lockNonce: Data, signature: Data) case updateGroupBlob(groupIdentifier: GroupV2.Identifier, encodedServerAdminPublicKey: ObvEncoded, encryptedBlob: EncryptedData, lockNonce: Data, signature: Data) case getKeycloakData(serverURL: URL, serverLabel: UID) + case ownedDeviceDiscovery + case setOwnedDeviceName(ownedDeviceUID: UID, encryptedOwnedDeviceName: EncryptedData, isCurrentDevice: Bool) + case deactivateOwnedDevice(ownedDeviceUID: UID, isCurrentDevice: Bool) + case setUnexpiringOwnedDevice(ownedDeviceUID: UID) + case sourceGetSessionNumber(protocolInstanceUID: UID) + case sourceWaitForTargetConnection(protocolInstanceUID: UID) + case targetSendEphemeralIdentity(protocolInstanceUID: UID, transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, payload: Data) + case transferRelay(protocolInstanceUID: UID, connectionIdentifier: String, payload: Data, thenCloseWebSocket: Bool) + case transferWait(protocolInstanceUID: UID, connectionIdentifier: String) + case closeWebsocketConnection(protocolInstanceUID: UID) + + public var isCheckKeycloakRevocation: Bool { + switch self { + case .checkKeycloakRevocation: + return true + default: return false + } + } + private var rawValue: Int { switch self { @@ -75,6 +126,26 @@ extension ServerQuery { return 9 case .getKeycloakData: return 10 + case .ownedDeviceDiscovery: + return 11 + case .setOwnedDeviceName: + return 12 + case .deactivateOwnedDevice: + return 13 + case .setUnexpiringOwnedDevice: + return 14 + case .sourceGetSessionNumber: + return 15 + case .sourceWaitForTargetConnection: + return 16 + case .targetSendEphemeralIdentity: + return 17 + case .transferRelay: + return 18 + case .transferWait: + return 19 + case .closeWebsocketConnection: + return 20 } } @@ -102,6 +173,26 @@ extension ServerQuery { return [rawValue.obvEncode(), groupIdentifier.obvEncode(), encodedServerAdminPublicKey, encryptedBlob.obvEncode(), lockNonce.obvEncode(), signature.obvEncode()].obvEncode() case .getKeycloakData(serverURL: let serverURL, serverLabel: let serverLabel): return [rawValue, serverURL, serverLabel].obvEncode() + case .ownedDeviceDiscovery: + return [rawValue].obvEncode() + case .setOwnedDeviceName(ownedDeviceUID: let ownedDeviceUID, encryptedOwnedDeviceName: let encryptedOwnedDeviceName, isCurrentDevice: let isCurrentDevice): + return [rawValue.obvEncode(), ownedDeviceUID.obvEncode(), encryptedOwnedDeviceName.obvEncode(), isCurrentDevice.obvEncode()].obvEncode() + case .deactivateOwnedDevice(ownedDeviceUID: let ownedDeviceUID, isCurrentDevice: let isCurrentDevice): + return [rawValue.obvEncode(), ownedDeviceUID.obvEncode(), isCurrentDevice.obvEncode()].obvEncode() + case .setUnexpiringOwnedDevice(ownedDeviceUID: let ownedDeviceUID): + return [rawValue.obvEncode(), ownedDeviceUID.obvEncode()].obvEncode() + case .sourceGetSessionNumber(protocolInstanceUID: let protocolInstanceUID): + return [rawValue, protocolInstanceUID].obvEncode() + case .sourceWaitForTargetConnection(protocolInstanceUID: let protocolInstanceUID): + return [rawValue, protocolInstanceUID].obvEncode() + case .targetSendEphemeralIdentity(protocolInstanceUID: let protocolInstanceUID, transferSessionNumber: let transferSessionNumber, payload: let payload): + return [rawValue, protocolInstanceUID, transferSessionNumber, payload].obvEncode() + case .transferRelay(protocolInstanceUID: let protocolInstanceUID, connectionIdentifier: let connectionIdentifier, payload: let payload, thenCloseWebSocket: let thenCloseWebSocket): + return [rawValue, protocolInstanceUID, connectionIdentifier, payload, thenCloseWebSocket].obvEncode() + case .transferWait(protocolInstanceUID: let protocolInstanceUID, connectionIdentifier: let connectionIdentifier): + return [rawValue, protocolInstanceUID, connectionIdentifier].obvEncode() + case .closeWebsocketConnection(protocolInstanceUID: let protocolInstanceUID): + return [rawValue, protocolInstanceUID].obvEncode() } } @@ -169,6 +260,54 @@ extension ServerQuery { guard let serverURL = URL(listOfEncoded[1]) else { assertionFailure(); return nil } guard let serverLabel = UID(listOfEncoded[2]) else { assertionFailure(); return nil } self = .getKeycloakData(serverURL: serverURL, serverLabel: serverLabel) + case 11: + guard listOfEncoded.count == 1 else { return nil } + self = .ownedDeviceDiscovery + case 12: + guard listOfEncoded.count == 4 else { return nil } + guard let ownedDeviceUID = UID(listOfEncoded[1]) else { assertionFailure(); return nil } + guard let encryptedOwnedDeviceName = EncryptedData(listOfEncoded[2]) else { assertionFailure(); return nil } + guard let isCurrentDevice = Bool(listOfEncoded[3]) else { assertionFailure(); return nil } + self = .setOwnedDeviceName(ownedDeviceUID: ownedDeviceUID, encryptedOwnedDeviceName: encryptedOwnedDeviceName, isCurrentDevice: isCurrentDevice) + case 13: + guard listOfEncoded.count == 3 else { return nil } + guard let ownedDeviceUID = UID(listOfEncoded[1]) else { assertionFailure(); return nil } + guard let isCurrentDevice = Bool(listOfEncoded[2]) else { assertionFailure(); return nil } + self = .deactivateOwnedDevice(ownedDeviceUID: ownedDeviceUID, isCurrentDevice: isCurrentDevice) + case 14: + guard listOfEncoded.count == 2 || listOfEncoded.count == 3 else { return nil } // 3, for legacy reasons + guard let ownedDeviceUID = UID(listOfEncoded[1]) else { assertionFailure(); return nil } + self = .setUnexpiringOwnedDevice(ownedDeviceUID: ownedDeviceUID) + case 15: + guard listOfEncoded.count == 2 else { return nil } + guard let protocolInstanceUID = UID(listOfEncoded[1]) else { assertionFailure(); return nil } + self = .sourceGetSessionNumber(protocolInstanceUID: protocolInstanceUID) + case 16: + guard listOfEncoded.count == 2 else { return nil } + guard let protocolInstanceUID = UID(listOfEncoded[1]) else { assertionFailure(); return nil } + self = .sourceWaitForTargetConnection(protocolInstanceUID: protocolInstanceUID) + case 17: + guard listOfEncoded.count == 4 else { return nil } + guard let protocolInstanceUID = UID(listOfEncoded[1]) else { assertionFailure(); return nil } + guard let transferSessionNumber = ObvOwnedIdentityTransferSessionNumber(listOfEncoded[2]) else { assertionFailure(); return nil } + guard let payload = Data(listOfEncoded[3]) else { assertionFailure(); return nil } + self = .targetSendEphemeralIdentity(protocolInstanceUID: protocolInstanceUID, transferSessionNumber: transferSessionNumber, payload: payload) + case 18: + guard listOfEncoded.count == 5 else { return nil } + guard let protocolInstanceUID = UID(listOfEncoded[1]) else { assertionFailure(); return nil } + guard let connectionIdentifier = String(listOfEncoded[2]) else { assertionFailure(); return nil } + guard let payload = Data(listOfEncoded[3]) else { assertionFailure(); return nil } + guard let thenCloseWebSocket = Bool(listOfEncoded[4]) else { assertionFailure(); return nil } + self = .transferRelay(protocolInstanceUID: protocolInstanceUID, connectionIdentifier: connectionIdentifier, payload: payload, thenCloseWebSocket: thenCloseWebSocket) + case 19: + guard listOfEncoded.count == 3 else { return nil } + guard let protocolInstanceUID = UID(listOfEncoded[1]) else { assertionFailure(); return nil } + guard let connectionIdentifier = String(listOfEncoded[2]) else { assertionFailure(); return nil } + self = .transferWait(protocolInstanceUID: protocolInstanceUID, connectionIdentifier: connectionIdentifier) + case 20: + guard listOfEncoded.count == 2 else { return nil } + guard let protocolInstanceUID = UID(listOfEncoded[1]) else { assertionFailure(); return nil } + self = .closeWebsocketConnection(protocolInstanceUID: protocolInstanceUID) default: assertionFailure() return nil diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ServerResponse.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ServerResponse.swift index 9e4f92f0..1d4ca23c 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ServerResponse.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvNetworkPostDelegate/ServerResponse.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -54,6 +54,13 @@ extension ServerResponse { case requestGroupBlobLock(result: RequestGroupBlobLockResult) case updateGroupBlob(uploadResult: UploadResult) case getKeycloakData(result: GetUserDataResult) + case ownedDeviceDiscovery(encryptedOwnedDeviceDiscoveryResult: EncryptedData) + case setOwnedDeviceName(success: Bool) + case sourceGetSessionNumberMessage(result: SourceGetSessionNumberResult) + case targetSendEphemeralIdentity(result: TargetSendEphemeralIdentityResult) + case transferRelay(result: OwnedIdentityTransferRelayMessageResult) + case transferWait(result: OwnedIdentityTransferWaitResult) + case sourceWaitForTargetConnection(result: SourceWaitForTargetConnectionResult) private var rawValue: Int { switch self { @@ -79,6 +86,20 @@ extension ServerResponse { return 9 case .getKeycloakData: return 10 + case .ownedDeviceDiscovery: + return 11 + case .setOwnedDeviceName: + return 12 + case .sourceGetSessionNumberMessage: + return 13 + case .targetSendEphemeralIdentity: + return 14 + case .transferRelay: + return 15 + case .transferWait: + return 16 + case .sourceWaitForTargetConnection: + return 17 } } @@ -107,6 +128,20 @@ extension ServerResponse { return [rawValue.obvEncode(), uploadResult.obvEncode()].obvEncode() case .getKeycloakData(result: let result): return [rawValue.obvEncode(), result.obvEncode()].obvEncode() + case .ownedDeviceDiscovery(encryptedOwnedDeviceDiscoveryResult: let encryptedOwnedDeviceDiscoveryResult): + return [rawValue.obvEncode(), encryptedOwnedDeviceDiscoveryResult.obvEncode()].obvEncode() + case .setOwnedDeviceName(success: let success): + return [rawValue.obvEncode(), success.obvEncode()].obvEncode() + case .sourceGetSessionNumberMessage(result: let result): + return [rawValue.obvEncode(), result.obvEncode()].obvEncode() + case .targetSendEphemeralIdentity(result: let result): + return [rawValue.obvEncode(), result.obvEncode()].obvEncode() + case .transferRelay(result: let result): + return [rawValue.obvEncode(), result.obvEncode()].obvEncode() + case .transferWait(result: let result): + return [rawValue.obvEncode(), result.obvEncode()].obvEncode() + case .sourceWaitForTargetConnection(result: let result): + return [rawValue.obvEncode(), result.obvEncode()].obvEncode() } } @@ -162,6 +197,34 @@ extension ServerResponse { guard listOfEncoded.count == 2 else { return nil } guard let result = GetUserDataResult(listOfEncoded[1]) else { return nil } self = .getKeycloakData(result: result) + case 11: + guard listOfEncoded.count == 2 else { return nil } + guard let encryptedOwnedDeviceDiscoveryResult = EncryptedData(listOfEncoded[1]) else { return nil } + self = .ownedDeviceDiscovery(encryptedOwnedDeviceDiscoveryResult: encryptedOwnedDeviceDiscoveryResult) + case 12: + guard listOfEncoded.count == 2 else { return nil } + guard let success = Bool(listOfEncoded[1]) else { return nil } + self = .setOwnedDeviceName(success: success) + case 13: + guard listOfEncoded.count == 2 else { return nil } + guard let result = SourceGetSessionNumberResult(listOfEncoded[1]) else { return nil } + self = .sourceGetSessionNumberMessage(result: result) + case 14: + guard listOfEncoded.count == 2 else { return nil } + guard let result = TargetSendEphemeralIdentityResult(listOfEncoded[1]) else { return nil } + self = .targetSendEphemeralIdentity(result: result) + case 15: + guard listOfEncoded.count == 2 else { return nil } + guard let result = OwnedIdentityTransferRelayMessageResult(listOfEncoded[1]) else { return nil } + self = .transferRelay(result: result) + case 16: + guard listOfEncoded.count == 2 else { return nil } + guard let result = OwnedIdentityTransferWaitResult(listOfEncoded[1]) else { return nil } + self = .transferWait(result: result) + case 17: + guard listOfEncoded.count == 2 else { return nil } + guard let result = SourceWaitForTargetConnectionResult(listOfEncoded[1]) else { return nil } + self = .sourceWaitForTargetConnection(result: result) default: assertionFailure() return nil diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvOwnedDeviceManagementRequest.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvOwnedDeviceManagementRequest.swift new file mode 100644 index 00000000..90f57dfa --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvOwnedDeviceManagementRequest.swift @@ -0,0 +1,80 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvCrypto +import ObvEncoder + +/// Type used by the initial message of the `OwnedDeviceManagementProtocol`. +public enum ObvOwnedDeviceManagementRequest: ObvCodable { + + case setOwnedDeviceName(ownedDeviceUID: UID, ownedDeviceName: String) + case deactivateOtherOwnedDevice(ownedDeviceUID: UID) + case setUnexpiringDevice(ownedDeviceUID: UID) + + + private var rawValue: Int { + switch self { + case .setOwnedDeviceName: + return 0 + case .deactivateOtherOwnedDevice: + return 1 + case .setUnexpiringDevice: + return 2 + } + } + + + public func obvEncode() -> ObvEncoder.ObvEncoded { + switch self { + case .setOwnedDeviceName(let ownedDeviceUID, let ownedDeviceName): + return [rawValue, ownedDeviceUID, ownedDeviceName].obvEncode() + case .deactivateOtherOwnedDevice(let ownedDeviceUID): + return [rawValue, ownedDeviceUID].obvEncode() + case .setUnexpiringDevice(let ownedDeviceUID): + return [rawValue, ownedDeviceUID].obvEncode() + } + } + + + public init?(_ obvEncoded: ObvEncoder.ObvEncoded) { + guard let listOfEncoded = [ObvEncoded](obvEncoded) else { assertionFailure(); return nil } + guard let encodedRawValue = listOfEncoded.first else { assertionFailure(); return nil } + guard let rawValue = Int(encodedRawValue) else { assertionFailure(); return nil } + switch rawValue { + case 0: + guard listOfEncoded.count == 3 else { assertionFailure(); return nil } + guard let ownedDeviceUID = UID(listOfEncoded[1]) else { assertionFailure(); return nil } + guard let ownedDeviceName = String(listOfEncoded[2]) else { assertionFailure(); return nil } + self = .setOwnedDeviceName(ownedDeviceUID: ownedDeviceUID, ownedDeviceName: ownedDeviceName) + case 1: + guard listOfEncoded.count == 2 else { assertionFailure(); return nil } + guard let ownedDeviceUID = UID(listOfEncoded[1]) else { assertionFailure(); return nil } + self = .deactivateOtherOwnedDevice(ownedDeviceUID: ownedDeviceUID) + case 2: + guard listOfEncoded.count == 2 else { assertionFailure(); return nil } + guard let ownedDeviceUID = UID(listOfEncoded[1]) else { assertionFailure(); return nil } + self = .setUnexpiringDevice(ownedDeviceUID: ownedDeviceUID) + default: + assertionFailure() + return nil + } + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolDelegate.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolDelegate.swift index e518ac48..819ef036 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolDelegate.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolDelegate.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -33,12 +33,16 @@ public protocol ObvProtocolDelegate: ObvManager { func getInitialMessageForTrustEstablishmentProtocol(of: ObvCryptoIdentity, withFullDisplayName: String, forOwnedIdentity: ObvCryptoIdentity, withOwnedIdentityCoreDetails: ObvIdentityCoreDetails, usingProtocolInstanceUid: UID) throws -> ObvChannelProtocolMessageToSend - func getInitialMessageForContactMutualIntroductionProtocol(of: ObvCryptoIdentity, withContactIdentityCoreDetails: ObvIdentityCoreDetails, with: ObvCryptoIdentity, withOtherContactIdentityCoreDetails: ObvIdentityCoreDetails, byOwnedIdentity: ObvCryptoIdentity, usingProtocolInstanceUid: UID) throws -> ObvChannelProtocolMessageToSend - + func getInitialMessageForContactMutualIntroductionProtocol(of identity1: ObvCryptoIdentity, with identity2: ObvCryptoIdentity, byOwnedIdentity ownedIdentity: ObvCryptoIdentity, usingProtocolInstanceUid protocolInstanceUid: UID) throws -> ObvChannelProtocolMessageToSend + func getInitiateGroupCreationMessageForGroupManagementProtocol(groupCoreDetails: ObvGroupCoreDetails, photoURL: URL?, pendingGroupMembers: Set, ownedIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend + func getDisbandGroupMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend + func getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity: ObvCryptoIdentity, andTheDeviceUid: UID, ofTheContactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend + func getInitialMessageForChannelCreationWithOwnedDeviceProtocol(ownedIdentity: ObvCryptoIdentity, remoteDeviceUid: UID) throws -> ObvChannelProtocolMessageToSend + func getInitialMessageForIdentityDetailsPublicationProtocol(ownedIdentity: ObvCryptoIdentity, publishedIdentityDetailsVersion: Int) throws -> ObvChannelProtocolMessageToSend func getOwnedGroupMembersChangedTriggerMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend @@ -57,10 +61,12 @@ public protocol ObvProtocolDelegate: ObvManager { func getTriggerReinviteMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, memberIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend - func getInitialMessageForDeviceDiscoveryForContactIdentityProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend + func getInitialMessageForContactDeviceDiscoveryProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend func getAllObliviousChannelIdentifiersHavingARunningChannelCreationWithContactDeviceProtocolInstances(within obvContext: ObvContext) throws -> Set + func getAllObliviousChannelIdentifiersHavingARunningChannelCreationWithOwnedDeviceProtocolInstances(within obvContext: ObvContext) throws -> Set + func getInitialMessageForDownloadIdentityPhotoChildProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactIdentityDetailsElements: IdentityDetailsElements) throws -> ObvChannelProtocolMessageToSend func getInitialMessageForDownloadGroupPhotoChildProtocol(ownedIdentity: ObvCryptoIdentity, groupInformation: GroupInformation) throws -> ObvChannelProtocolMessageToSend @@ -81,13 +87,15 @@ public protocol ObvProtocolDelegate: ObvManager { func getInitiateGroupUpdateMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, changeset: ObvGroupV2.Changeset, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend + func getInitialMessageForDownloadGroupV2PhotoProtocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, serverPhotoInfo: GroupV2.ServerPhotoInfo) throws -> ObvChannelProtocolMessageToSend + func getInitiateGroupLeaveMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend func getInitiateGroupReDownloadMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend func getInitiateInitiateGroupDisbandMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend - func getInitiateBatchKeysResendMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactDeviceUID: UID, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend + func getInitiateBatchKeysResendMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, remoteIdentity: ObvCryptoIdentity, remoteDeviceUID: UID, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend // MARK: - Keycloak pushed groups @@ -97,8 +105,43 @@ public protocol ObvProtocolDelegate: ObvManager { // MARK: - Owned identities - func prepareForOwnedIdentityDeletion(ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws + func getInitiateOwnedIdentityDeletionMessage(ownedCryptoIdentityToDelete: ObvCryptoIdentity, globalOwnedIdentityDeletion: Bool) throws -> ObvChannelProtocolMessageToSend + + func getInitiateOwnedDeviceDiscoveryMessage(ownedCryptoIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend + + func getInitiateOwnedDeviceManagementMessage(ownedCryptoIdentity: ObvCryptoIdentity, request: ObvOwnedDeviceManagementRequest) throws -> ObvChannelProtocolMessageToSend + + // func getInitiateTransferOnSourceDeviceMessageForOwnedIdentityTransferProtocol(ownedCryptoIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend + + // MARK: - Allow to execute external operations on the queue executing protocol steps + + func executeOnQueueForProtocolOperations(operation: OperationWithSpecificReasonForCancel) async throws + + // MARK: - Keycloak binding and unbinding + + func getOwnedIdentityKeycloakBindingMessage(ownedCryptoIdentity: ObvCryptoIdentity, keycloakState: ObvKeycloakState, keycloakUserId: String) throws -> ObvChannelProtocolMessageToSend + + func getOwnedIdentityKeycloakUnbindingMessage(ownedCryptoIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend + + // MARK: - SynchronizationProtocol + + func getInitiateSyncAtomMessageForSynchronizationProtocol(ownedCryptoIdentity: ObvCryptoIdentity, syncAtom: ObvSyncAtom) throws -> ObvChannelProtocolMessageToSend + + // MARK: - Owned identity transfer protocol + + /// Called by the engine in order to start an owned identity transfer protocol on the source device. + /// - Parameters: + /// - ownedCryptoIdentity: The crypto identity of the owned identity. + /// - onAvailableSessionNumber: This block will be called by the protocol manager as soon as the session number is available, passing it as a parameter. Since getting this session number requires a network interaction with the transfer server, this block may take a "long" time before being called. + /// - flowId: The flow identifier. + func initiateOwnedIdentityTransferProtocolOnSourceDevice(ownedCryptoIdentity: ObvCryptoIdentity, onAvailableSessionNumber: @escaping (ObvOwnedIdentityTransferSessionNumber) -> Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void, flowId: FlowIdentifier) async throws + + func initiateOwnedIdentityTransferProtocolOnTargetDevice(currentDeviceName: String, transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void, flowId: FlowIdentifier) async throws + + func continueOwnedIdentityTransferProtocolOnUserEnteredSASOnSourceDevice(enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws + + func appIsShowingSasAndExpectingEndOfProtocol(protocolInstanceUID: UID, onSyncSnapshotReception: @escaping () -> Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async - func getInitiateOwnedIdentityDeletionMessage(ownedCryptoIdentityToDelete: ObvCryptoIdentity, notifyContacts: Bool, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend + func cancelAllOwnedIdentityTransferProtocols(flowId: FlowIdentifier) async throws } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolNotification.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolNotification.swift index 849b0bbc..8bc1ae6c 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolNotification.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolNotification.swift @@ -34,15 +34,25 @@ fileprivate struct OptionalWrapper { public enum ObvProtocolNotification { case mutualScanContactAdded(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, signature: Data) - case protocolMessageToProcess(protocolMessageId: MessageIdentifier, flowId: FlowIdentifier) - case protocolMessageProcessed(protocolMessageId: MessageIdentifier, flowId: FlowIdentifier) + case protocolMessageToProcess(protocolMessageId: ObvMessageIdentifier, flowId: FlowIdentifier) + case protocolMessageProcessed(protocolMessageId: ObvMessageIdentifier, flowId: FlowIdentifier) case groupV2UpdateDidFail(ownedIdentity: ObvCryptoIdentity, appGroupIdentifier: Data, flowId: FlowIdentifier) + case protocolReceivedMessageWasDeleted(protocolMessageId: ObvMessageIdentifier) + case keycloakSynchronizationRequired(ownedIdentity: ObvCryptoIdentity) + case contactIntroductionInvitationSent(ownedIdentity: ObvCryptoIdentity, contactIdentityA: ObvCryptoIdentity, contactIdentityB: ObvCryptoIdentity) + case theCurrentDeviceWasNotPartOfTheLastOwnedDeviceDiscoveryResults(ownedIdentity: ObvCryptoIdentity) + case anOwnedIdentityTransferProtocolFailed(ownedCryptoIdentity: ObvCryptoIdentity, protocolInstanceUID: UID, error: Error) private enum Name { case mutualScanContactAdded case protocolMessageToProcess case protocolMessageProcessed case groupV2UpdateDidFail + case protocolReceivedMessageWasDeleted + case keycloakSynchronizationRequired + case contactIntroductionInvitationSent + case theCurrentDeviceWasNotPartOfTheLastOwnedDeviceDiscoveryResults + case anOwnedIdentityTransferProtocolFailed private var namePrefix: String { String(describing: ObvProtocolNotification.self) } @@ -59,6 +69,11 @@ public enum ObvProtocolNotification { case .protocolMessageToProcess: return Name.protocolMessageToProcess.name case .protocolMessageProcessed: return Name.protocolMessageProcessed.name case .groupV2UpdateDidFail: return Name.groupV2UpdateDidFail.name + case .protocolReceivedMessageWasDeleted: return Name.protocolReceivedMessageWasDeleted.name + case .keycloakSynchronizationRequired: return Name.keycloakSynchronizationRequired.name + case .contactIntroductionInvitationSent: return Name.contactIntroductionInvitationSent.name + case .theCurrentDeviceWasNotPartOfTheLastOwnedDeviceDiscoveryResults: return Name.theCurrentDeviceWasNotPartOfTheLastOwnedDeviceDiscoveryResults.name + case .anOwnedIdentityTransferProtocolFailed: return Name.anOwnedIdentityTransferProtocolFailed.name } } } @@ -87,6 +102,30 @@ public enum ObvProtocolNotification { "appGroupIdentifier": appGroupIdentifier, "flowId": flowId, ] + case .protocolReceivedMessageWasDeleted(protocolMessageId: let protocolMessageId): + info = [ + "protocolMessageId": protocolMessageId, + ] + case .keycloakSynchronizationRequired(ownedIdentity: let ownedIdentity): + info = [ + "ownedIdentity": ownedIdentity, + ] + case .contactIntroductionInvitationSent(ownedIdentity: let ownedIdentity, contactIdentityA: let contactIdentityA, contactIdentityB: let contactIdentityB): + info = [ + "ownedIdentity": ownedIdentity, + "contactIdentityA": contactIdentityA, + "contactIdentityB": contactIdentityB, + ] + case .theCurrentDeviceWasNotPartOfTheLastOwnedDeviceDiscoveryResults(ownedIdentity: let ownedIdentity): + info = [ + "ownedIdentity": ownedIdentity, + ] + case .anOwnedIdentityTransferProtocolFailed(ownedCryptoIdentity: let ownedCryptoIdentity, protocolInstanceUID: let protocolInstanceUID, error: let error): + info = [ + "ownedCryptoIdentity": ownedCryptoIdentity, + "protocolInstanceUID": protocolInstanceUID, + "error": error, + ] } return info } @@ -110,19 +149,19 @@ public enum ObvProtocolNotification { } } - public static func observeProtocolMessageToProcess(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (MessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeProtocolMessageToProcess(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.protocolMessageToProcess.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let protocolMessageId = notification.userInfo!["protocolMessageId"] as! MessageIdentifier + let protocolMessageId = notification.userInfo!["protocolMessageId"] as! ObvMessageIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(protocolMessageId, flowId) } } - public static func observeProtocolMessageProcessed(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (MessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { + public static func observeProtocolMessageProcessed(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier, FlowIdentifier) -> Void) -> NSObjectProtocol { let name = Name.protocolMessageProcessed.name return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in - let protocolMessageId = notification.userInfo!["protocolMessageId"] as! MessageIdentifier + let protocolMessageId = notification.userInfo!["protocolMessageId"] as! ObvMessageIdentifier let flowId = notification.userInfo!["flowId"] as! FlowIdentifier block(protocolMessageId, flowId) } @@ -138,4 +177,48 @@ public enum ObvProtocolNotification { } } + public static func observeProtocolReceivedMessageWasDeleted(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvMessageIdentifier) -> Void) -> NSObjectProtocol { + let name = Name.protocolReceivedMessageWasDeleted.name + return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in + let protocolMessageId = notification.userInfo!["protocolMessageId"] as! ObvMessageIdentifier + block(protocolMessageId) + } + } + + public static func observeKeycloakSynchronizationRequired(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity) -> Void) -> NSObjectProtocol { + let name = Name.keycloakSynchronizationRequired.name + return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in + let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity + block(ownedIdentity) + } + } + + public static func observeContactIntroductionInvitationSent(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, ObvCryptoIdentity, ObvCryptoIdentity) -> Void) -> NSObjectProtocol { + let name = Name.contactIntroductionInvitationSent.name + return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in + let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity + let contactIdentityA = notification.userInfo!["contactIdentityA"] as! ObvCryptoIdentity + let contactIdentityB = notification.userInfo!["contactIdentityB"] as! ObvCryptoIdentity + block(ownedIdentity, contactIdentityA, contactIdentityB) + } + } + + public static func observeTheCurrentDeviceWasNotPartOfTheLastOwnedDeviceDiscoveryResults(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity) -> Void) -> NSObjectProtocol { + let name = Name.theCurrentDeviceWasNotPartOfTheLastOwnedDeviceDiscoveryResults.name + return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in + let ownedIdentity = notification.userInfo!["ownedIdentity"] as! ObvCryptoIdentity + block(ownedIdentity) + } + } + + public static func observeAnOwnedIdentityTransferProtocolFailed(within notificationDelegate: ObvNotificationDelegate, queue: OperationQueue? = nil, block: @escaping (ObvCryptoIdentity, UID, Error) -> Void) -> NSObjectProtocol { + let name = Name.anOwnedIdentityTransferProtocolFailed.name + return notificationDelegate.addObserver(forName: name, queue: queue) { (notification) in + let ownedCryptoIdentity = notification.userInfo!["ownedCryptoIdentity"] as! ObvCryptoIdentity + let protocolInstanceUID = notification.userInfo!["protocolInstanceUID"] as! UID + let error = notification.userInfo!["error"] as! Error + block(ownedCryptoIdentity, protocolInstanceUID, error) + } + } + } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolNotification.yml b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolNotification.yml deleted file mode 100644 index bbacaa72..00000000 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolNotification.yml +++ /dev/null @@ -1,30 +0,0 @@ -import: - - Foundation - - ObvCrypto - - ObvTypes - - OlvidUtils -options: - - {key: post, value: postOnBackgroundQueue} - - {key: notificationCenterName, value: notificationDelegate} - - {key: notificationCenterType, value: ObvNotificationDelegate} - - {key: visibility, value: public} - - {key: objectInObserve, value: false} -notifications: -- name: mutualScanContactAdded - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: contactIdentity, type: ObvCryptoIdentity} - - {name: signature, type: Data} -- name: protocolMessageToProcess - params: - - {name: protocolMessageId, type: MessageIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: protocolMessageProcessed - params: - - {name: protocolMessageId, type: MessageIdentifier} - - {name: flowId, type: FlowIdentifier} -- name: groupV2UpdateDidFail - params: - - {name: ownedIdentity, type: ObvCryptoIdentity} - - {name: appGroupIdentifier, type: Data} - - {name: flowId, type: FlowIdentifier} diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolReceivedMessage.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolReceivedMessage.swift index 4b311137..64b95adb 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolReceivedMessage.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolReceivedMessage.swift @@ -27,10 +27,10 @@ public struct ObvProtocolReceivedMessage { public let receptionChannelInfo: ObvProtocolReceptionChannelInfo public let encodedElements: ObvEncoded // An encoded list containing three encoded items : the protocol instance UID, the protocol message raw id, and the encodedProtocolInstanceInputs - public let messageId: MessageIdentifier + public let messageId: ObvMessageIdentifier public let timestamp: Date // Either the messageUploadTimestampFromServer for messages received from the network, or a local timestamp otherwise - public init(messageId: MessageIdentifier, timestamp: Date, receptionChannelInfo: ObvProtocolReceptionChannelInfo, encodedElements: ObvEncoded) { + public init(messageId: ObvMessageIdentifier, timestamp: Date, receptionChannelInfo: ObvProtocolReceptionChannelInfo, encodedElements: ObvEncoded) { self.receptionChannelInfo = receptionChannelInfo self.encodedElements = encodedElements self.messageId = messageId diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolReceptionChannelInfo.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolReceptionChannelInfo.swift index 9d86d017..708fe955 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolReceptionChannelInfo.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvProtocol/ObvProtocolReceptionChannelInfo.swift @@ -25,7 +25,7 @@ import CoreData import OlvidUtils // The AnyObliviousChannelWithOwnedDevice is never actually set on a message. It is only used within protocol steps so as to allow a message to come from any other device of the current owned identity. -// Similarly, the AnyObliviousChannel is never actually set on a message. It is only used within protocol steps so as to allow a message to come from any Oblivious Channel with the current device. +// Similarly, the AnyObliviousChannel is never actually set on a message. It is only used within protocol steps so as to allow a message to come from any Oblivious Channel with the current device (including oblivious channels with our other owned devices) public enum ObvProtocolReceptionChannelInfo: ObvCodable, Equatable { @@ -117,15 +117,15 @@ public enum ObvProtocolReceptionChannelInfo: ObvCodable, Equatable { } self = ObvProtocolReceptionChannelInfo.ObliviousChannel(remoteCryptoIdentity: remoteCryptoIdentity, remoteDeviceUid: remoteDeviceUid) case 2: - guard listOfEncoded.count == 1 else { return nil } + guard listOfEncoded.count == 1 else { assertionFailure(); return nil } self = ObvProtocolReceptionChannelInfo.AsymmetricChannel case 3: guard listOfEncoded.count == 2 else { return nil } - guard let ownedIdentity = ObvCryptoIdentity(listOfEncoded[1]) else { return nil } + guard let ownedIdentity = ObvCryptoIdentity(listOfEncoded[1]) else { assertionFailure(); return nil } self = ObvProtocolReceptionChannelInfo.AnyObliviousChannelWithOwnedDevice(ownedIdentity: ownedIdentity) case 4: guard listOfEncoded.count == 2 else { return nil } - guard let ownedIdentity = ObvCryptoIdentity(listOfEncoded[1]) else { return nil } + guard let ownedIdentity = ObvCryptoIdentity(listOfEncoded[1]) else { assertionFailure(); return nil } self = ObvProtocolReceptionChannelInfo.AnyObliviousChannel(ownedIdentity: ownedIdentity) default: return nil @@ -178,17 +178,20 @@ extension ObvProtocolReceptionChannelInfo { case .ObliviousChannel(remoteCryptoIdentity: let remoteIdentity, remoteDeviceUid: _): return ownedIdentity == remoteIdentity default: + assertionFailure() return false } case .AnyObliviousChannel(ownedIdentity: let ownedIdentity): switch other { case .ObliviousChannel(remoteCryptoIdentity: let remoteCryptoIdentity, remoteDeviceUid: _): - guard try identityDelegate.isIdentity(remoteCryptoIdentity, aContactIdentityOfTheOwnedIdentity: ownedIdentity, within: obvContext), - try identityDelegate.isContactIdentityActive(ownedIdentity: ownedIdentity, contactIdentity: remoteCryptoIdentity, within: obvContext) - else { + if try identityDelegate.isIdentity(remoteCryptoIdentity, aContactIdentityOfTheOwnedIdentity: ownedIdentity, within: obvContext), + try identityDelegate.isContactIdentityActive(ownedIdentity: ownedIdentity, contactIdentity: remoteCryptoIdentity, within: obvContext) { + return true + } else if remoteCryptoIdentity == ownedIdentity { + return true + } else { return false } - return true default: return false } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvSolveChallenge/ObvSolveChallengeDelegate.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvSolveChallenge/ObvSolveChallengeDelegate.swift index 138c65a4..4829180d 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvSolveChallenge/ObvSolveChallengeDelegate.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvSolveChallenge/ObvSolveChallengeDelegate.swift @@ -27,7 +27,7 @@ public protocol ObvSolveChallengeDelegate: ObvManager { func solveChallenge(_ challengeType: ChallengeType, for: ObvCryptoIdentity, using: PRNGService, within obvContext: ObvContext) throws -> Data - func getApiKeyForOwnedIdentity(_: ObvCryptoIdentity, within obvContext: ObvContext) throws -> UUID? + // func getApiKeyForOwnedIdentity(_: ObvCryptoIdentity, within obvContext: ObvContext) throws -> UUID? } diff --git a/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvSyncSnapshotDelegate/ObvSyncSnapshotDelegate.swift b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvSyncSnapshotDelegate/ObvSyncSnapshotDelegate.swift new file mode 100644 index 00000000..f38defcf --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/Internal managers/ObvSyncSnapshotDelegate/ObvSyncSnapshotDelegate.swift @@ -0,0 +1,44 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes +import ObvEncoder +import ObvCrypto +import OlvidUtils + + +public protocol ObvSyncSnapshotDelegate: ObvManager { + + func registerAppSnapshotableObject(_ appSnapshotableObject: ObvAppSnapshotable) + func registerIdentitySnapshotableObject(_ identitySnapshotableObject: ObvSnapshotable) + + func getSyncSnapshotNode(for ownedCryptoId: ObvCryptoId) throws -> ObvSyncSnapshot + func getSyncSnapshotNodeAsObvDictionary(for ownedCryptoId: ObvCryptoId) throws -> ObvDictionary + + func decodeSyncSnapshot(from obvDictionary: ObvDictionary) throws -> ObvSyncSnapshot + + func syncEngineDatabaseThenUpdateAppDatabase(using obvSyncSnapshotNode: any ObvSyncSnapshotNode) async throws + func requestServerToKeepDeviceActive(ownedCryptoId: ObvCryptoId, deviceUidToKeepActive: UID) async throws + + // func makeObvSyncSnapshot(within obvContext: ObvContext) throws -> ObvSyncSnapshot + + // func newSyncDiffsToProcessOrShowToUser(_ diffs: Set, withOtherOwnedDeviceUid: UID) + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/ObvConstants.swift b/Engine/ObvMetaManager/ObvMetaManager/ObvConstants.swift index 4481541e..96f848df 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/ObvConstants.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/ObvConstants.swift @@ -55,7 +55,6 @@ public struct ObvConstants { // Backup related constants public static let maxTimeUntilBackupIsRequired: TimeInterval = 24 * 60 * 60 // In seconds, 24h - public static let compressBackupedData = true // We will set this to false in a later release // Keycloak revocation related constants public static let keycloakSignatureValidity: TimeInterval = 5_184_000 // In seconds, 60 days @@ -63,4 +62,27 @@ public struct ObvConstants { // Group V2 invitation nonce public static let groupInvitationNonceLength = 16 public static let groupLockNonceLength = 32 + + // Fake server used during the owned identity transfer protocol on a target device, when generating an ephemeral owned identity + public static let ephemeralIdentityServerURL = URL(string: "ephemeral_fake_server")! + + public static let transferWSServerURL = URL(string: "wss://transfer.olvid.io")! + + + // When a protocol requires to generate a "deterministic" seed, it must pass the appropriate enum value to the ``getDeterministicSeed(diversifiedUsing:secretMACKey:forProtocol:)`` method of the identity manager. + public enum SeedProtocol { + case trustEstablishmentWithSAS + case ownedIdentityTransfer + public var fixedByte: UInt8 { + switch self { + case .trustEstablishmentWithSAS: + return 0x55 + case .ownedIdentityTransfer: + return 0x56 + } + } + } + + public static let transferMaxPayloadSize = 10_000 // in Bytes + } diff --git a/Engine/ObvMetaManager/ObvMetaManager/ObvEngineDelegateType.swift b/Engine/ObvMetaManager/ObvMetaManager/ObvEngineDelegateType.swift index 8d5f0fbe..095ba733 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/ObvEngineDelegateType.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/ObvEngineDelegateType.swift @@ -35,4 +35,5 @@ public enum ObvEngineDelegateType: Int, Hashable, CaseIterable { case ObvNotificationDelegate case ObvFlowDelegate case ObvSimpleFlowDelegate + case ObvSyncSnapshotDelegate } diff --git a/Engine/ObvMetaManager/ObvMetaManager/ObvMetaManager.swift b/Engine/ObvMetaManager/ObvMetaManager/ObvMetaManager.swift index cd62658a..1e36a908 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/ObvMetaManager.swift +++ b/Engine/ObvMetaManager/ObvMetaManager/ObvMetaManager.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -36,6 +36,12 @@ public final class ObvMetaManager: ObvErrorMaker { fulfillPreviouslyRegisteredManagersRequirements(ofType: .ObvBackupDelegate, with: backupDelegate) } } + + public private(set) var syncSnapshotDelegate: ObvSyncSnapshotDelegate? { + didSet { + fulfillPreviouslyRegisteredManagersRequirements(ofType: .ObvSyncSnapshotDelegate, with: syncSnapshotDelegate) + } + } public private(set) var createContextDelegate: ObvCreateContextDelegate? { didSet { @@ -167,6 +173,15 @@ public final class ObvMetaManager: ObvErrorMaker { switch possibleDelegateType { + case .ObvSyncSnapshotDelegate: + if let manager = manager as? (any ObvSyncSnapshotDelegate) { + guard syncSnapshotDelegate == nil else { + throw Self.makeError(message: "Failed to instantiate delegate (ObvSyncSnapshotDelegate)") + } + syncSnapshotDelegate = manager + delegateRequirementsProvidedByTheRegisteredDelegates.insert(.ObvSyncSnapshotDelegate) + } + case .ObvBackupDelegate: if let manager = manager as? ObvBackupDelegate { guard backupDelegate == nil else { @@ -302,6 +317,15 @@ public final class ObvMetaManager: ObvErrorMaker { for requiredDelegate in internalManager.requiredDelegates { switch requiredDelegate { + case .ObvSyncSnapshotDelegate: + let delegateType = ObvEngineDelegateType.ObvSyncSnapshotDelegate + if let delegate = syncSnapshotDelegate { + try internalManager.fulfill(requiredDelegate: delegate, forDelegateType: delegateType) + } else { + let otherManagers = managersWithUnfulfilledRequirements[delegateType] ?? [ObvManager]() + managersWithUnfulfilledRequirements[delegateType] = otherManagers + [internalManager] + } + case .ObvBackupDelegate: let delegateType = ObvEngineDelegateType.ObvBackupDelegate if let delegate = backupDelegate { @@ -439,6 +463,10 @@ public final class ObvMetaManager: ObvErrorMaker { // We register all the backupable managers within the backup delegate let allBackupableManagers = registeredManagers.compactMap { $0 as? ObvBackupableManager } backupDelegate?.registerAllBackupableManagers(allBackupableManagers) + // We register the identity delegate as a snapshotable + if let identityDelegate { + syncSnapshotDelegate?.registerIdentitySnapshotableObject(identityDelegate) + } // We give a chance to all managers to finalize their own initialization guard let contextDelegate = registeredManagers.filter({$0 is ObvCreateContextDelegate}).first else { throw ObvMetaManager.makeError(message: "Could not find create context delegate") diff --git a/Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvAttachment+Initializer.swift b/Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvAttachment+Initializer.swift new file mode 100644 index 00000000..61a6fa55 --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvAttachment+Initializer.swift @@ -0,0 +1,80 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes +import OlvidUtils + + +public extension ObvAttachment { + + init(attachmentId: ObvAttachmentIdentifier, fromContactIdentity: ObvContactIdentifier, networkFetchDelegate: ObvNetworkFetchDelegate, within obvContext: ObvContext) throws { + guard let networkReceivedAttachment = networkFetchDelegate.getAttachment(withId: attachmentId, within: obvContext) else { + throw ObvError.couldNotGetAttachment + } + let fromContactIdentity = fromContactIdentity + let attachmentId = networkReceivedAttachment.attachmentId + let metadata = networkReceivedAttachment.metadata + let url = networkReceivedAttachment.url + let status = networkReceivedAttachment.status.toObvAttachmentStatus + let messageUploadTimestampFromServer = networkReceivedAttachment.messageUploadTimestampFromServer + let totalUnitCount = networkReceivedAttachment.totalUnitCount + self.init(fromContactIdentity: fromContactIdentity, + metadata: metadata, + totalUnitCount: totalUnitCount, + url: url, + status: status, + attachmentId: attachmentId, + messageUploadTimestampFromServer: messageUploadTimestampFromServer) + } + + + private init(networkReceivedAttachment: ObvNetworkFetchReceivedAttachment, within obvContext: ObvContext) throws { + let fromContactIdentity = ObvContactIdentifier(contactCryptoIdentity: networkReceivedAttachment.fromCryptoIdentity, ownedCryptoIdentity: networkReceivedAttachment.attachmentId.messageId.ownedCryptoIdentity) + let attachmentId = networkReceivedAttachment.attachmentId + let metadata = networkReceivedAttachment.metadata + let url = networkReceivedAttachment.url + let status = networkReceivedAttachment.status.toObvAttachmentStatus + let messageUploadTimestampFromServer = networkReceivedAttachment.messageUploadTimestampFromServer + let totalUnitCount = networkReceivedAttachment.totalUnitCount + self.init(fromContactIdentity: fromContactIdentity, + metadata: metadata, + totalUnitCount: totalUnitCount, + url: url, + status: status, + attachmentId: attachmentId, + messageUploadTimestampFromServer: messageUploadTimestampFromServer) + } + +} + + +extension ObvNetworkFetchReceivedAttachment.Status { + + var toObvAttachmentStatus: ObvAttachment.Status { + switch self { + case .paused: return .paused + case .resumed: return .resumed + case .downloaded: return .downloaded + case .cancelledByServer: return .cancelledByServer + case .markedForDeletion: return .markedForDeletion + } + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvMessage+Initializer.swift b/Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvMessage+Initializer.swift new file mode 100644 index 00000000..4918adf7 --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvMessage+Initializer.swift @@ -0,0 +1,59 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes +import OlvidUtils + + +public extension ObvMessage { + + init(networkReceivedMessage: ObvNetworkReceivedMessageDecrypted, networkFetchDelegate: ObvNetworkFetchDelegate?, within obvContext: ObvContext) throws { + guard networkReceivedMessage.fromIdentity != networkReceivedMessage.messageId.ownedCryptoIdentity else { + assertionFailure() + throw ObvError.fromIdentityIsEqualToOwnedIdentity + } + let fromContactIdentity = ObvContactIdentifier(contactCryptoIdentity: networkReceivedMessage.fromIdentity, ownedCryptoIdentity: networkReceivedMessage.messageId.ownedCryptoIdentity) + let messageId = networkReceivedMessage.messageId + let messagePayload = networkReceivedMessage.messagePayload + let messageUploadTimestampFromServer = networkReceivedMessage.messageUploadTimestampFromServer + let downloadTimestampFromServer = networkReceivedMessage.downloadTimestampFromServer + let localDownloadTimestamp = networkReceivedMessage.localDownloadTimestamp + let extendedMessagePayload = networkReceivedMessage.extendedMessagePayload + let expectedAttachmentsCount = networkReceivedMessage.attachmentIds.count + let attachments: [ObvAttachment] + if let networkFetchDelegate { + attachments = try networkReceivedMessage.attachmentIds.map { + try ObvAttachment(attachmentId: $0, fromContactIdentity: fromContactIdentity, networkFetchDelegate: networkFetchDelegate, within: obvContext) + } + } else { + attachments = [] + } + self.init(fromContactIdentity: fromContactIdentity, + messageId: messageId, + attachments: attachments, + expectedAttachmentsCount: expectedAttachmentsCount, + messageUploadTimestampFromServer: messageUploadTimestampFromServer, + downloadTimestampFromServer: downloadTimestampFromServer, + localDownloadTimestamp: localDownloadTimestamp, + messagePayload: messagePayload, + extendedMessagePayload: extendedMessagePayload) + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvOwnedAttachment+Initializer.swift b/Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvOwnedAttachment+Initializer.swift new file mode 100644 index 00000000..d9eb7c71 --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvOwnedAttachment+Initializer.swift @@ -0,0 +1,45 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes +import OlvidUtils + + +public extension ObvOwnedAttachment { + + init(attachmentId: ObvAttachmentIdentifier, networkFetchDelegate: ObvNetworkFetchDelegate, within obvContext: ObvContext) throws { + guard let networkReceivedAttachment = networkFetchDelegate.getAttachment(withId: attachmentId, within: obvContext) else { + throw ObvError.couldNotGetAttachment + } + let attachmentId = networkReceivedAttachment.attachmentId + let metadata = networkReceivedAttachment.metadata + let url = networkReceivedAttachment.url + let status = networkReceivedAttachment.status.toObvAttachmentStatus + let messageUploadTimestampFromServer = networkReceivedAttachment.messageUploadTimestampFromServer + let totalUnitCount = networkReceivedAttachment.totalUnitCount + self.init(metadata: metadata, + totalUnitCount: totalUnitCount, + url: url, + status: status, + attachmentId: attachmentId, + messageUploadTimestampFromServer: messageUploadTimestampFromServer) + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvOwnedMessage+Initializer.swift b/Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvOwnedMessage+Initializer.swift new file mode 100644 index 00000000..71181e95 --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/TypeExtensions/ObvOwnedMessage+Initializer.swift @@ -0,0 +1,57 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes +import OlvidUtils + + +public extension ObvOwnedMessage { + + init(networkReceivedMessage: ObvNetworkReceivedMessageDecrypted, networkFetchDelegate: ObvNetworkFetchDelegate?, within obvContext: ObvContext) throws { + guard networkReceivedMessage.fromIdentity == networkReceivedMessage.messageId.ownedCryptoIdentity else { + assertionFailure() + throw ObvError.fromIdentityIsDifferentFromTheOwnedIdentity + } + let messageId = networkReceivedMessage.messageId + let messagePayload = networkReceivedMessage.messagePayload + let messageUploadTimestampFromServer = networkReceivedMessage.messageUploadTimestampFromServer + let downloadTimestampFromServer = networkReceivedMessage.downloadTimestampFromServer + let localDownloadTimestamp = networkReceivedMessage.localDownloadTimestamp + let extendedMessagePayload = networkReceivedMessage.extendedMessagePayload + let expectedAttachmentsCount = networkReceivedMessage.attachmentIds.count + let attachments: [ObvOwnedAttachment] + if let networkFetchDelegate { + attachments = try networkReceivedMessage.attachmentIds.map { + try ObvOwnedAttachment(attachmentId: $0, networkFetchDelegate: networkFetchDelegate, within: obvContext) + } + } else { + attachments = [] + } + self.init(messageId: messageId, + attachments: attachments, + expectedAttachmentsCount: expectedAttachmentsCount, + messageUploadTimestampFromServer: messageUploadTimestampFromServer, + downloadTimestampFromServer: downloadTimestampFromServer, + localDownloadTimestamp: localDownloadTimestamp, + messagePayload: messagePayload, + extendedMessagePayload: extendedMessagePayload) + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/Utils/URLSessionTask+SerializedInfosInTaskDescription.swift b/Engine/ObvMetaManager/ObvMetaManager/Utils/URLSessionTask+SerializedInfosInTaskDescription.swift new file mode 100644 index 00000000..e96a7369 --- /dev/null +++ b/Engine/ObvMetaManager/ObvMetaManager/Utils/URLSessionTask+SerializedInfosInTaskDescription.swift @@ -0,0 +1,97 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import ObvCrypto + +extension URLSessionTask: ObvErrorMaker { + + public static var errorDomain: String { "URLSessionTask+OwnedCryptoIdAndFlowIdentifier" } + + + public func setTaskDescriptionWith(ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) throws { + let info = OwnedCryptoIdAndFlowIdentifier(ownedCryptoId: ownedCryptoId, flowId: flowId) + self.taskDescription = try info.jsonEncode() + } + + + public func getOwnedCryptoIdAndFlowIdentifierFromTaskDescription() throws -> (ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) { + guard let taskDescription else { assertionFailure(); throw Self.makeError(message: "The task description is nil") } + let info = try OwnedCryptoIdAndFlowIdentifier.jsonDecode(taskDescription) + return (info.ownedCryptoId, info.flowId) + } + + + private struct OwnedCryptoIdAndFlowIdentifier: Codable, ObvErrorMaker { + + static let errorDomain = "URLSessionTask+OwnedCryptoIdAndFlowIdentifier" + + let ownedCryptoId: ObvCryptoIdentity + let flowId: FlowIdentifier + + enum CodingKeys: String, CodingKey { + case ownedCryptoId = "ownedCryptoId" + case flowId = "flowId" + } + + init(ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) { + self.ownedCryptoId = ownedCryptoId + self.flowId = flowId + } + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(ownedCryptoId.getIdentity(), forKey: .ownedCryptoId) + try container.encode(flowId, forKey: .flowId) + } + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let identity = try values.decode(Data.self, forKey: .ownedCryptoId) + guard let ownedCryptoId = ObvCryptoIdentity(from: identity) else { + assertionFailure() + throw Self.makeError(message: "Could not decode owned identity") + } + let flowId = try values.decode(FlowIdentifier.self, forKey: .flowId) + self.init(ownedCryptoId: ownedCryptoId, flowId: flowId) + } + + func jsonEncode() throws -> String { + let encoder = JSONEncoder() + guard let encoded = String(data: try encoder.encode(self), encoding: .utf8) else { + assertionFailure() + throw Self.makeError(message: "Encoding failed") + } + return encoded + } + + + static func jsonDecode(_ string: String) throws -> OwnedCryptoIdAndFlowIdentifier { + guard let data = string.data(using: .utf8) else { + assertionFailure() + throw Self.makeError(message: "Decoding failed") + } + let decoder = JSONDecoder() + return try decoder.decode(OwnedCryptoIdAndFlowIdentifier.self, from: data) + } + + } + +} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/BootstrapWorker.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/BootstrapWorker.swift index 4a889900..0a59e922 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/BootstrapWorker.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/BootstrapWorker.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -53,8 +53,8 @@ final class BootstrapWorker { assertionFailure() return } + delegateManager.wellKnownCacheDelegate.initializateCache(flowId: flowId) - delegateManager.serverPushNotificationsDelegate.forceRegisteringOfServerPushNotificationsOnBootstrap(flowId: flowId) } @@ -73,12 +73,17 @@ final class BootstrapWorker { os_log("FetchManager: application did become active", log: log, type: .info) guard let contextCreator = delegateManager.contextCreator else { - os_log("The Context Creator is not set", log: log, type: .fault) assertionFailure() return } - + + guard let notificationDelegate = delegateManager.notificationDelegate else { + os_log("The notification delegate is not set", log: log, type: .fault) + assertionFailure() + return + } + // These operations used to be scheduled in the `finalizeInitialization` method. In order to speed up the boot process, we schedule them here instead internalQueue.addOperation { [weak self] in self?.deleteOrphanedDatabaseObjects(flowId: flowId, log: log, contextCreator: contextCreator) @@ -88,12 +93,15 @@ final class BootstrapWorker { if forTheFirstTime { internalQueue.addOperation { [weak self] in + self?.deleteAllWebSocketServerQueries(contextCreator: contextCreator, flowId: flowId, logOnFailure: log) // We cannot call this method in the finalizeInitialization method because the generated notifications would not be received by the app self?.rescheduleAllInboxMessagesAndAttachments(flowId: flowId, log: log, contextCreator: contextCreator, delegateManager: delegateManager) delegateManager.wellKnownCacheDelegate.downloadAndUpdateCache(flowId: flowId) + + self?.deletePendingServerQueryOfNonExistingOwnedIdentities(delegateManager: delegateManager, flowId: flowId) self?.postAllPendingServerQuery(delegateManager: delegateManager, flowId: flowId) self?.useExistingServerSessionTokenForWebsocketCoordinator(contextCreator: contextCreator, flowId: flowId) - + self?.reNotifyAboutAPIKeyStatus(contextCreator: contextCreator, notificationDelegate: notificationDelegate, flowId: flowId) } } @@ -120,10 +128,31 @@ final class BootstrapWorker { extension BootstrapWorker { + private func reNotifyAboutAPIKeyStatus(contextCreator: ObvCreateContextDelegate, notificationDelegate: ObvNotificationDelegate, flowId: FlowIdentifier) { + contextCreator.performBackgroundTaskAndWait(flowId: flowId) { obvContext in + do { + let serverSessions = try ServerSession.getAllServerSessions(within: obvContext.context).filter({ !$0.isDeleted }) + for serverSession in serverSessions { + guard let ownedCryptoId = try? serverSession.ownedCryptoIdentity else { assertionFailure(); continue } + guard let apiKeyStatus = serverSession.apiKeyStatus, let apiPermissions = serverSession.apiPermissions else { continue } + ObvNetworkFetchNotificationNew.newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity( + ownedIdentity: ownedCryptoId, + apiKeyStatus: apiKeyStatus, + apiPermissions: apiPermissions, + apiKeyExpirationDate: serverSession.apiKeyExpirationDate) + .postOnBackgroundQueue(within: notificationDelegate) + } + } catch { + assertionFailure(error.localizedDescription) + } + } + } + + /// If a server session (with a valid token) can be found in DB at first launch, we pass this token to the websocket coordinator. private func useExistingServerSessionTokenForWebsocketCoordinator(contextCreator: ObvCreateContextDelegate, flowId: FlowIdentifier) { contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - let ownedIdentitiesAndTokens = try? ServerSession.getAllTokens(within: obvContext) + let ownedIdentitiesAndTokens = try? ServerSession.getAllTokens(within: obvContext.context) ownedIdentitiesAndTokens?.forEach { (ownedCryptoId, token) in Task { await delegateManager?.webSocketDelegate.setServerSessionToken(to: token, for: ownedCryptoId) } } @@ -167,7 +196,7 @@ extension BootstrapWorker { private func reschedulePendingDeleteFromServers(flowId: FlowIdentifier, log: OSLog, delegateManager: ObvNetworkFetchDelegateManager, contextCreator: ObvCreateContextDelegate) { - var messageIdsWithPendingDeletes = [MessageIdentifier]() + var messageIdsWithPendingDeletes = [ObvMessageIdentifier]() contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in @@ -236,7 +265,7 @@ extension BootstrapWorker { continue } } - guard let messageId = msg.messageId else { assertionFailure(); continue } + guard let messageId = msg.messageId else { assert(msg.isDeleted); continue } delegateManager.networkFetchFlowDelegate.messagePayloadAndFromIdentityWereSet(messageId: messageId, attachmentIds: msg.attachmentIds, hasEncryptedExtendedMessagePayload: msg.hasEncryptedExtendedMessagePayload, flowId: flowId) } } @@ -350,4 +379,22 @@ extension BootstrapWorker { delegateManager.serverQueryDelegate.postAllPendingServerQuery(flowId: flowId) } + + private func deleteAllWebSocketServerQueries(contextCreator: ObvCreateContextDelegate, flowId: FlowIdentifier, logOnFailure: OSLog) { + contextCreator.performBackgroundTaskAndWait(flowId: flowId) { obvContext in + do { + try PendingServerQuery.deleteAllWebSocketServerQuery(within: obvContext) + guard obvContext.context.hasChanges else { return } + try obvContext.save(logOnFailure: logOnFailure) + } catch { + assertionFailure(error.localizedDescription) + } + } + } + + + private func deletePendingServerQueryOfNonExistingOwnedIdentities(delegateManager: ObvNetworkFetchDelegateManager, flowId: FlowIdentifier) { + delegateManager.serverQueryDelegate.deletePendingServerQueryOfNonExistingOwnedIdentities(flowId: flowId) + } + } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DeleteMessageAndAttachmentsFromServerCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DeleteMessageAndAttachmentsFromServerCoordinator.swift index 6b9e1659..825be77f 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DeleteMessageAndAttachmentsFromServerCoordinator.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DeleteMessageAndAttachmentsFromServerCoordinator.swift @@ -43,7 +43,7 @@ final class DeleteMessageAndAttachmentsFromServerCoordinator: NSObject { return URLSession(configuration: sessionConfiguration, delegate: self, delegateQueue: nil) }() - private var _currentTasks = [UIBackgroundTaskIdentifier: (messageId: MessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)]() + private var _currentTasks = [UIBackgroundTaskIdentifier: (messageId: ObvMessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)]() private var currentTasksQueue = DispatchQueue(label: "DeleteMessageAndAttachmentsFromServerAndLocalInboxesCoordinatorQueueForCurrentDownloadTasks") } @@ -52,7 +52,7 @@ final class DeleteMessageAndAttachmentsFromServerCoordinator: NSObject { extension DeleteMessageAndAttachmentsFromServerCoordinator { - private func currentTaskExistsForMessage(messageId: MessageIdentifier) -> Bool { + private func currentTaskExistsForMessage(messageId: ObvMessageIdentifier) -> Bool { var exist = true currentTasksQueue.sync { exist = _currentTasks.values.contains(where: { $0.messageId == messageId }) @@ -60,23 +60,23 @@ extension DeleteMessageAndAttachmentsFromServerCoordinator { return exist } - private func removeInfoFor(_ task: URLSessionTask) -> (messageId: MessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (MessageIdentifier, FlowIdentifier, Data)? = nil + private func removeInfoFor(_ task: URLSessionTask) -> (messageId: ObvMessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { + var info: (ObvMessageIdentifier, FlowIdentifier, Data)? = nil currentTasksQueue.sync { info = _currentTasks.removeValue(forKey: UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)) } return info } - private func getInfoFor(_ task: URLSessionTask) -> (messageId: MessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (MessageIdentifier, FlowIdentifier, Data)? = nil + private func getInfoFor(_ task: URLSessionTask) -> (messageId: ObvMessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { + var info: (ObvMessageIdentifier, FlowIdentifier, Data)? = nil currentTasksQueue.sync { info = _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] } return info } - private func insert(_ task: URLSessionTask, messageId: MessageIdentifier, flowId: FlowIdentifier) { + private func insert(_ task: URLSessionTask, messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { currentTasksQueue.sync { _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] = (messageId, flowId, Data()) } @@ -107,7 +107,7 @@ extension DeleteMessageAndAttachmentsFromServerCoordinator: DeleteMessageAndAtta } - func processPendingDeleteFromServer(messageId: MessageIdentifier, flowId: FlowIdentifier) throws { + func processPendingDeleteFromServer(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) throws { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) @@ -146,7 +146,7 @@ extension DeleteMessageAndAttachmentsFromServerCoordinator: DeleteMessageAndAtta let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(messageId.ownedCryptoIdentity, within: obvContext) - guard let serverSession = try ServerSession.get(within: obvContext, withIdentity: messageId.ownedCryptoIdentity) else { + guard let serverSession = try ServerSession.get(within: obvContext.context, withIdentity: messageId.ownedCryptoIdentity) else { syncQueueOutput = .serverSessionRequired(ownedIdentity: messageId.ownedCryptoIdentity, flowId: flowId) return } @@ -193,7 +193,15 @@ extension DeleteMessageAndAttachmentsFromServerCoordinator: DeleteMessageAndAtta case .serverSessionRequired(ownedIdentity: let identity, flowId: let flowId): os_log("Server session required for identity %{public}@", log: log, type: .debug, identity.debugDescription) - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: identity, flowId: flowId) + Task.detached { [weak self] in + do { + _ = try await self?.delegateManager?.networkFetchFlowDelegate.getValidServerSessionToken(for: identity, currentInvalidToken: nil, flowId: flowId) + } catch { + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) + assertionFailure() + } + } + return case .failedToCreateTask(error: let error): os_log("Could not create task for ObvServerDeleteMessageAndAttachmentsMethod: %{public}@", log: log, type: .error, error.localizedDescription) @@ -236,7 +244,9 @@ extension DeleteMessageAndAttachmentsFromServerCoordinator: URLSessionDataDelega guard error == nil else { os_log("The ObvServerDeleteMessageAndAttachmentsMethod download task failed for message %{public}@ within flow %{public}@: %@", log: log, type: .error, messageId.debugDescription, flowId.debugDescription, error!.localizedDescription) _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToProcessPendingDeleteFromServer(messageId: messageId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessPendingDeleteFromServer(messageId: messageId, flowId: flowId) + } return } @@ -245,7 +255,9 @@ extension DeleteMessageAndAttachmentsFromServerCoordinator: URLSessionDataDelega guard let status = ObvServerDeleteMessageAndAttachmentsMethod.parseObvServerResponse(responseData: responseData, using: log) else { os_log("Could not parse the server response for the ObvServerDeleteMessageAndAttachmentsMethod download task for message %{public}@ within flow %{public}@", log: log, type: .fault, messageId.debugDescription, flowId.debugDescription) _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToProcessPendingDeleteFromServer(messageId: messageId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessPendingDeleteFromServer(messageId: messageId, flowId: flowId) + } return } @@ -291,34 +303,27 @@ extension DeleteMessageAndAttachmentsFromServerCoordinator: URLSessionDataDelega let ownedCryptoIdentity = messageId.ownedCryptoIdentity - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: ownedCryptoIdentity) else { + guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: ownedCryptoIdentity), let token = serverSession.token else { _ = removeInfoFor(task) - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedCryptoIdentity, flowId: flowId) - } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() + Task.detached { [weak self] in + do { + _ = try await self?.delegateManager?.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedCryptoIdentity, currentInvalidToken: nil, flowId: flowId) + } catch { + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) + assertionFailure() + } } return } - guard let token = serverSession.token else { - _ = removeInfoFor(task) + _ = removeInfoFor(task) + Task.detached { [weak self] in do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedCryptoIdentity, flowId: flowId) + _ = try await self?.delegateManager?.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedCryptoIdentity, currentInvalidToken: token, flowId: flowId) } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) assertionFailure() } - return - } - - _ = removeInfoFor(task) - do { - try delegateManager.networkFetchFlowDelegate.serverSession(of: ownedCryptoIdentity, hasInvalidToken: token, flowId: flowId) - } catch { - os_log("Call to serverSession(of: ObvCryptoIdentity, hasInvalidToken: Data, flowId: FlowIdentifier) did fail", log: log, type: .fault) - assertionFailure() } } @@ -327,7 +332,9 @@ extension DeleteMessageAndAttachmentsFromServerCoordinator: URLSessionDataDelega case .generalError: os_log("Server reported general error during the ObvServerDeleteMessageAndAttachmentsMethod download task for message %{public}@ within flow %{public}@", log: log, type: .fault, messageId.debugDescription, flowId.debugDescription) _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToProcessPendingDeleteFromServer(messageId: messageId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessPendingDeleteFromServer(messageId: messageId, flowId: flowId) + } return } } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/DownloadAttachmentChunksCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/DownloadAttachmentChunksCoordinator.swift index 5f17ae5a..dd774f14 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/DownloadAttachmentChunksCoordinator.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/DownloadAttachmentChunksCoordinator.swift @@ -28,13 +28,15 @@ final class DownloadAttachmentChunksCoordinator { // MARK: - Instance variables - fileprivate let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem - fileprivate let logCategory = "DownloadAttachmentChunksCoordinator" private let internalQueueForHandlers = DispatchQueue(label: "Internal queue for handlers") private var _handlerForSessionIdentifier = [String: (() -> Void)]() private let localQueue = DispatchQueue(label: "DownloadAttachmentChunksCoordinatorQueue") private let queueForNotifications = DispatchQueue(label: "DownloadAttachmentChunksCoordinator queue for notifications") + private static let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem + private static let logCategory = "DownloadAttachmentChunksCoordinator" + private static var log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) + // We only use the `downloadAttachment` counter private var failedAttemptsCounterManager = FailedAttemptsCounterManager() private var retryManager = FetchRetryManager() @@ -66,7 +68,7 @@ final class DownloadAttachmentChunksCoordinator { // Maps an attachment identifier to its (exact) completed unit count typealias ChunkProgress = (totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) - private var _chunksProgressesForAttachment = [AttachmentIdentifier: (chunkProgresses: [ChunkProgress], dateOfLastUpdate: Date)]() + private var _chunksProgressesForAttachment = [ObvAttachmentIdentifier: (chunkProgresses: [ChunkProgress], dateOfLastUpdate: Date)]() private let queueForAttachmentsProgresses = DispatchQueue(label: "Internal queue for attachments progresses", attributes: .concurrent) private var _currentURLSessions = [WeakRef]() @@ -87,19 +89,19 @@ final class DownloadAttachmentChunksCoordinator { } // This array tracks the attachment identifiers that are currently refreshing their signed URLs, so as to prevent an infinite loop of refresh - private var _attachmentIdsRefreshingSignedURLs = Set() + private var _attachmentIdsRefreshingSignedURLs = Set() private let queueForAttachmentIdsRefreshingSignedURLs = DispatchQueue(label: "Queue for sync access to _attachmentIdsRefreshingSignedURLs") - private func attachmentStartsToRefreshSignedURLs(attachmentId: AttachmentIdentifier) { + private func attachmentStartsToRefreshSignedURLs(attachmentId: ObvAttachmentIdentifier) { queueForAttachmentIdsRefreshingSignedURLs.sync { _ = _attachmentIdsRefreshingSignedURLs.insert(attachmentId) } } - private func attachmentStoppedToRefreshSignedURLs(attachmentId: AttachmentIdentifier) { + private func attachmentStoppedToRefreshSignedURLs(attachmentId: ObvAttachmentIdentifier) { queueForAttachmentIdsRefreshingSignedURLs.sync { _ = _attachmentIdsRefreshingSignedURLs.remove(attachmentId) } } - private func attachmentIsAlreadyRefreshingSignedURLs(attachmentId: AttachmentIdentifier) -> Bool { + private func attachmentIsAlreadyRefreshingSignedURLs(attachmentId: ObvAttachmentIdentifier) -> Bool { var val = false queueForAttachmentIdsRefreshingSignedURLs.sync { val = _attachmentIdsRefreshingSignedURLs.contains(attachmentId) @@ -107,6 +109,12 @@ final class DownloadAttachmentChunksCoordinator { return val } + + init(logPrefix: String) { + let logSubsystem = "\(logPrefix).\(Self.defaultLogSubsystem)" + Self.log = OSLog(subsystem: logSubsystem, category: Self.logCategory) + } + } @@ -119,38 +127,35 @@ extension DownloadAttachmentChunksCoordinator: DownloadAttachmentChunksDelegate } - func processAllAttachmentsOfMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func processAllAttachmentsOfMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - os_log("🌊 Call to processAllAttachmentsOfMessage within flow %{public}@", log: log, type: .debug, flowId.debugDescription) + os_log("🌊 Call to processAllAttachmentsOfMessage within flow %{public}@", log: Self.log, type: .debug, flowId.debugDescription) guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) + os_log("The context creator manager is not set", log: Self.log, type: .fault) assertionFailure() return } - var attachmentsRequiringSignedURLs = [AttachmentIdentifier]() + var attachmentsRequiringSignedURLs = [ObvAttachmentIdentifier]() contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in let message: InboxMessage do { guard let _message = try InboxMessage.get(messageId: messageId, within: obvContext) else { - os_log("Could not find message in DB", log: log, type: .fault) + os_log("Could not find message in DB", log: Self.log, type: .fault) return } message = _message } catch { - os_log("Failed to get inbox message: %{public}@", log: log, type: .fault, error.localizedDescription) + os_log("Failed to get inbox message: %{public}@", log: Self.log, type: .fault, error.localizedDescription) return } @@ -173,25 +178,22 @@ extension DownloadAttachmentChunksCoordinator: DownloadAttachmentChunksDelegate /// We queue an operation that will delete all the signed URLs /// of the attachment, then an operation that resume a download task that gets signed URLs from the server. /// We do so after adding a barrier to the queue, so as to make sure not to interfere with other tasks. - private func downloadSignedURLsForAttachments(attachmentIds: [AttachmentIdentifier], flowId: FlowIdentifier) { + private func downloadSignedURLsForAttachments(attachmentIds: [ObvAttachmentIdentifier], flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) + os_log("The context creator manager is not set", log: Self.log, type: .fault) assertionFailure() return } guard let identityDelegate = delegateManager.identityDelegate else { - os_log("The identity delegate is not set", log: log, type: .fault) + os_log("The identity delegate is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -231,17 +233,14 @@ extension DownloadAttachmentChunksCoordinator: DownloadAttachmentChunksDelegate func processCompletionHandler(_ handler: @escaping () -> Void, forHandlingEventsForBackgroundURLSessionWithIdentifier identifier: String, withinFlowId flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) DispatchQueue.main.async { handler() } assertionFailure() return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) + os_log("The context creator manager is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -284,16 +283,13 @@ extension DownloadAttachmentChunksCoordinator: DownloadAttachmentChunksDelegate func cleanExistingOutboxAttachmentSessions(flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) + os_log("The context creator manager is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -302,13 +298,13 @@ extension DownloadAttachmentChunksCoordinator: DownloadAttachmentChunksDelegate guard let _self = self else { return } - var attachmentIds = [AttachmentIdentifier]() + var attachmentIds = [ObvAttachmentIdentifier]() contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in let attachmentSessions: [InboxAttachmentSession] do { attachmentSessions = try InboxAttachmentSession.getAll(within: obvContext) } catch { - os_log("Could not get attachments sessions", log: log, type: .fault) + os_log("Could not get attachments sessions", log: Self.log, type: .fault) return } attachmentIds = attachmentSessions.compactMap({ $0.attachment?.attachmentId }) @@ -327,17 +323,16 @@ extension DownloadAttachmentChunksCoordinator: DownloadAttachmentChunksDelegate self?.internalOperationQueue.addOperations(operationsToQueue, waitUntilFinished: true) } - } - func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async -> [AttachmentIdentifier: Float] { + func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async -> [ObvAttachmentIdentifier: Float] { - return await withCheckedContinuation { (continuation: CheckedContinuation<[AttachmentIdentifier: Float], Never>) in + return await withCheckedContinuation { (continuation: CheckedContinuation<[ObvAttachmentIdentifier: Float], Never>) in queueForAttachmentsProgresses.async { [weak self] in guard let _self = self else { continuation.resume(returning: [:]); return } - var progressesToReturn = [AttachmentIdentifier: Float]() + var progressesToReturn = [ObvAttachmentIdentifier: Float]() let appropriateChunksProgressesForAttachment = _self._chunksProgressesForAttachment.filter({ $0.value.dateOfLastUpdate > date }) for (attachmentId, value) in appropriateChunksProgressesForAttachment { let totalBytesWritten = value.chunkProgresses.map({ $0.totalBytesWritten }).reduce(0, +) @@ -355,33 +350,30 @@ extension DownloadAttachmentChunksCoordinator: DownloadAttachmentChunksDelegate func resumeMissingAttachmentDownloads(flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) + os_log("The context creator manager is not set", log: Self.log, type: .fault) assertionFailure() return } guard let identityDelegate = delegateManager.identityDelegate else { - os_log("The identity delegate is not set", log: log, type: .fault) + os_log("The identity delegate is not set", log: Self.log, type: .fault) assertionFailure() return } guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) assertionFailure() return } - var resumedAttachmentIds = [AttachmentIdentifier]() + var resumedAttachmentIds = [ObvAttachmentIdentifier]() localQueue.async { [weak self] in @@ -395,22 +387,22 @@ extension DownloadAttachmentChunksCoordinator: DownloadAttachmentChunksDelegate do { attachmentsToResume = (try InboxAttachment.getAllDownloadableWithoutSession(within: obvContext)) } catch { - os_log("Could not get attachments to upload", log: log, type: .fault) + os_log("Could not get attachments to download", log: Self.log, type: .fault) return } guard !attachmentsToResume.isEmpty else { - os_log("There is no downloadable attachment left", log: log, type: .info) + os_log("There is no downloadable attachment left", log: Self.log, type: .info) return } - os_log("👑 We found %{public}d attachment(s) to resume.", log: log, type: .info, attachmentsToResume.count) + os_log("👑 We found %{public}d attachment(s) to resume.", log: Self.log, type: .info, attachmentsToResume.count) attachmentsToResume.forEach { guard let attachmentId = $0.attachmentId else { assertionFailure(); return } - os_log("👑 Attachment %{public}@ has a total of %{public}d chunk(s), and %{public}d still need to be downloaded", log: log, type: .info, attachmentId.debugDescription, $0.chunks.count, $0.chunks.filter({ !$0.cleartextChunkWasWrittenToAttachmentFile }).count) + os_log("👑 Attachment %{public}@ has a total of %{public}d chunk(s), and %{public}d still need to be downloaded", log: Self.log, type: .info, attachmentId.debugDescription, $0.chunks.count, $0.chunks.filter({ !$0.cleartextChunkWasWrittenToAttachmentFile }).count) let ops = _self.getOperationsForResumingAttachment($0, flowId: flowId, logSubsystem: delegateManager.logSubsystem, inbox: delegateManager.inbox, contextCreator: contextCreator, identityDelegate: identityDelegate) - os_log("👑 We created %{public}d operations in order to download Attachment %{public}@", log: log, type: .info, ops.count, attachmentId.debugDescription) + os_log("👑 We created %{public}d operations in order to download Attachment %{public}@", log: Self.log, type: .info, ops.count, attachmentId.debugDescription) guard !ops.isEmpty else { assertionFailure(); return } operationsToQueue.append(contentsOf: ops) resumedAttachmentIds.append(attachmentId) @@ -435,31 +427,28 @@ extension DownloadAttachmentChunksCoordinator: DownloadAttachmentChunksDelegate } - func resumeAttachmentDownloadIfResumeIsRequested(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + func resumeAttachmentDownloadIfResumeIsRequested(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) + os_log("The context creator manager is not set", log: Self.log, type: .fault) assertionFailure() return } guard let identityDelegate = delegateManager.identityDelegate else { - os_log("The identity delegate is not set", log: log, type: .fault) + os_log("The identity delegate is not set", log: Self.log, type: .fault) assertionFailure() return } guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -480,13 +469,13 @@ extension DownloadAttachmentChunksCoordinator: DownloadAttachmentChunksDelegate guard _attachmentToResume.status == .resumeRequested else { return } attachmentToResume = _attachmentToResume } catch { - os_log("Could not get attachments to upload", log: log, type: .fault) + os_log("Could not get attachments to upload", log: Self.log, type: .fault) return } - os_log("👑 Attachment %{public}@ has a total of %{public}d chunk(s) and its download is about to be resumed", log: log, type: .info, attachmentId.debugDescription, attachmentToResume.chunks.count) + os_log("👑 Attachment %{public}@ has a total of %{public}d chunk(s) and its download is about to be resumed", log: Self.log, type: .info, attachmentId.debugDescription, attachmentToResume.chunks.count) operationsToQueue = _self.getOperationsForResumingAttachment(attachmentToResume, flowId: flowId, logSubsystem: delegateManager.logSubsystem, inbox: delegateManager.inbox, contextCreator: contextCreator, identityDelegate: identityDelegate) - os_log("👑 We created %{public}d operations in order to download Attachment %{public}@", log: log, type: .info, operationsToQueue.count, attachmentId.debugDescription) + os_log("👑 We created %{public}d operations in order to download Attachment %{public}@", log: Self.log, type: .info, operationsToQueue.count, attachmentId.debugDescription) } @@ -509,19 +498,16 @@ extension DownloadAttachmentChunksCoordinator: DownloadAttachmentChunksDelegate extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTracker { - func downloadAttachmentChunksSessionDidBecomeInvalid(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: DownloadAttachmentChunksSessionDelegate.ErrorForTracker?) { + func downloadAttachmentChunksSessionDidBecomeInvalid(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: DownloadAttachmentChunksSessionDelegate.ErrorForTracker?) { guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) + os_log("The context creator manager is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -533,7 +519,7 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr localQueue.sync { contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in guard let attachment = try? InboxAttachment.get(attachmentId: attachmentId, within: obvContext) else { - os_log("Could not find attachment in database", log: log, type: .info) + os_log("Could not find attachment in database", log: Self.log, type: .info) attachmentIsDownloaded = false return } @@ -542,9 +528,9 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr if let attachmentSession = attachment.session { obvContext.delete(attachmentSession) do { - try obvContext.save(logOnFailure: log) + try obvContext.save(logOnFailure: Self.log) } catch { - os_log("Could not delete InboxAttachmentSession although is was invalidated", log: log, type: .fault) + os_log("Could not delete InboxAttachmentSession although is was invalidated", log: Self.log, type: .fault) assertionFailure() return } @@ -581,9 +567,11 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr .atLeastOneChunkIsNotYetAvailableOnServer, .couldNotOpenEncryptedChunkFile, .unsupportedHTTPErrorStatusCode: - let delay = failedAttemptsCounterManager.incrementAndGetDelay(.downloadAttachment(attachmentId: attachmentId)) - retryManager.executeWithDelay(delay) { [weak self] in - self?.resumeAttachmentDownloadIfResumeIsRequested(attachmentId: attachmentId, flowId: flowId) + Task { [weak self] in + guard let self else { return } + let delay = failedAttemptsCounterManager.incrementAndGetDelay(.downloadAttachment(attachmentId: attachmentId)) + await retryManager.waitForDelay(milliseconds: delay) + resumeAttachmentDownloadIfResumeIsRequested(attachmentId: attachmentId, flowId: flowId) } case .atLeastOneChunkDownloadPrivateURLHasExpired: downloadSignedURLsForAttachments(attachmentIds: [attachmentId], flowId: flowId) @@ -604,7 +592,7 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr } - func attachmentChunkDidProgress(attachmentId: AttachmentIdentifier, chunkProgress: (chunkNumber: Int, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64), flowId: FlowIdentifier) { + func attachmentChunkDidProgress(attachmentId: ObvAttachmentIdentifier, chunkProgress: (chunkNumber: Int, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64), flowId: FlowIdentifier) { queueForAttachmentsProgresses.async(flags: .barrier) { [weak self] in guard let _self = self else { return } @@ -618,16 +606,13 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr } else { guard let delegateManager = _self.delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: _self.logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: _self.logCategory) - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) + os_log("The context creator manager is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -648,7 +633,7 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr /// This method is called by the delegate of the session managing a chunk download task. It is called as soon as an encrypted chunk was downloaded, decrypted then written to the appropriate location in the attachment file. - func attachmentChunkWasDecryptedAndWrittenToAttachmentFile(attachmentId: AttachmentIdentifier, chunkNumber: Int, flowId: FlowIdentifier) { + func attachmentChunkWasDecryptedAndWrittenToAttachmentFile(attachmentId: ObvAttachmentIdentifier, chunkNumber: Int, flowId: FlowIdentifier) { failedAttemptsCounterManager.reset(counter: .downloadAttachment(attachmentId: attachmentId)) queueForAttachmentsProgresses.async(flags: .barrier) { [weak self] in @@ -664,7 +649,7 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr } - func attachmentDownloadIsComplete(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + func attachmentDownloadIsComplete(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { // When an attachment is downloaded, we remove the progresses we stored in memory for its chunks @@ -675,8 +660,7 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr // We also immediately notify the network fetch flow delegate (so as to notify the app) guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -686,7 +670,7 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr } - private func createChunksProgressesForAttachment(attachmentId: AttachmentIdentifier, contextCreator: ObvCreateContextDelegate, flowId: FlowIdentifier) -> ([ChunkProgress], Date)? { + private func createChunksProgressesForAttachment(attachmentId: ObvAttachmentIdentifier, contextCreator: ObvCreateContextDelegate, flowId: FlowIdentifier) -> ([ChunkProgress], Date)? { /// Must be executed on queueForAttachmentsProgresses var chunksProgressess: ([ChunkProgress], Date)? contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in @@ -697,19 +681,16 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr } - func resumeDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + func resumeDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, forceResume: Bool, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) + os_log("The context creator manager is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -723,9 +704,16 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr // We prevent any interference with previous operations self?.internalOperationQueue.addBarrierBlock({}) - let op = MarkInboxAttachmentAsPausedOrResumedOperation(attachmentId: attachmentId, targetStatus: .resumed, logSubsystem: delegateManager.logSubsystem, flowId: flowId, contextCreator: contextCreator, delegate: self) + let op = MarkInboxAttachmentAsPausedOrResumedOperation( + attachmentId: attachmentId, + targetStatus: .resumed, + force: forceResume, + logSubsystem: delegateManager.logSubsystem, + flowId: flowId, + contextCreator: contextCreator, + delegate: self) self?.internalOperationQueue.addOperations([op], waitUntilFinished: true) - op.logReasonIfCancelled(log: log) + op.logReasonIfCancelled(log: Self.log) if op.isCancelled { guard let reasonForCancel = op.reasonForCancel else { assertionFailure() @@ -738,26 +726,25 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr case .cannotFindInboxAttachmentInDatabase, .attachmentIsMarkedForDeletion: return } + } else if forceResume { + self?.resumeMissingAttachmentDownloads(flowId: flowId) } } - + } - func pauseDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + func pauseDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) + os_log("The context creator manager is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -767,9 +754,16 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr // We prevent any interference with previous operations self?.internalOperationQueue.addBarrierBlock({}) - let op = MarkInboxAttachmentAsPausedOrResumedOperation(attachmentId: attachmentId, targetStatus: .paused, logSubsystem: delegateManager.logSubsystem, flowId: flowId, contextCreator: contextCreator, delegate: self) + let op = MarkInboxAttachmentAsPausedOrResumedOperation( + attachmentId: attachmentId, + targetStatus: .paused, + force: false, + logSubsystem: delegateManager.logSubsystem, + flowId: flowId, + contextCreator: contextCreator, + delegate: self) self?.internalOperationQueue.addOperations([op], waitUntilFinished: true) - op.logReasonIfCancelled(log: log) + op.logReasonIfCancelled(log: Self.log) if op.isCancelled { guard let reasonForCancel = op.reasonForCancel else { assertionFailure() @@ -795,27 +789,24 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunkDownloadProgressTr extension DownloadAttachmentChunksCoordinator: MarkInboxAttachmentAsPausedOrResumedOperationDelegate { - func inboxAttachmentWasJustMarkedAsPausedOrResumed(attachmentId: AttachmentIdentifier, pausedOrResumed: MarkInboxAttachmentAsPausedOrResumedOperation.PausedOrResumed, flowId: FlowIdentifier) { + func inboxAttachmentWasJustMarkedAsPausedOrResumed(attachmentId: ObvAttachmentIdentifier, pausedOrResumed: MarkInboxAttachmentAsPausedOrResumedOperation.PausedOrResumed, flowId: FlowIdentifier) { // If we reach this point, the attachment was just marked as "resumed" or as "paused". guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) + os_log("The context creator manager is not set", log: Self.log, type: .fault) assertionFailure() return } guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -870,15 +861,14 @@ extension DownloadAttachmentChunksCoordinator: MarkInboxAttachmentAsPausedOrResu extension DownloadAttachmentChunksCoordinator: AttachmentChunksSignedURLsTracker { - func getSignedURLsSessionDidBecomeInvalid(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: GetSignedURLsSessionDelegate.ErrorForTracker?) { + func getSignedURLsSessionDidBecomeInvalid(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: GetSignedURLsSessionDelegate.ErrorForTracker?) { defer { attachmentStoppedToRefreshSignedURLs(attachmentId: attachmentId) } guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -897,9 +887,11 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunksSignedURLsTracker .couldNotSaveContext, .generalErrorFromServer, .sessionInvalidationError: - let delay = failedAttemptsCounterManager.incrementAndGetDelay(.downloadAttachment(attachmentId: attachmentId)) - retryManager.executeWithDelay(delay) { [weak self] in - self?.downloadSignedURLsForAttachments(attachmentIds: [attachmentId], flowId: flowId) + Task { [weak self] in + guard let self else { return } + let delay = failedAttemptsCounterManager.incrementAndGetDelay(.downloadAttachment(attachmentId: attachmentId)) + await retryManager.waitForDelay(milliseconds: delay) + downloadSignedURLsForAttachments(attachmentIds: [attachmentId], flowId: flowId) } case .cannotFindAttachmentInDatabase: // We do nothing @@ -916,22 +908,13 @@ extension DownloadAttachmentChunksCoordinator: AttachmentChunksSignedURLsTracker extension DownloadAttachmentChunksCoordinator: FinalizeCleanExistingInboxAttachmentSessionsDelegate { - func cleanExistingInboxAttachmentSessionsIsFinished(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: CleanExistingInboxAttachmentSessions.ReasonForCancel?) { + func cleanExistingInboxAttachmentSessionsIsFinished(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: CleanExistingInboxAttachmentSessions.ReasonForCancel?) { failedAttemptsCounterManager.reset(counter: .downloadAttachment(attachmentId: attachmentId)) - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - assertionFailure() - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let error = error else { + guard let error else { // This is the best case, when no error occured - os_log("We successfully cleaned InboxAttachmentSession for attachment %{public}@", log: log, type: .info, attachmentId.debugDescription) + os_log("We successfully cleaned InboxAttachmentSession for attachment %{public}@", log: Self.log, type: .info, attachmentId.debugDescription) return } @@ -954,24 +937,15 @@ extension DownloadAttachmentChunksCoordinator: FinalizeCleanExistingInboxAttachm extension DownloadAttachmentChunksCoordinator: FinalizeSignedURLsOperationsDelegate { - func signedURLsOperationsAreFinished(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: ResumeTaskForGettingAttachmentSignedURLsOperation.ReasonForCancel?) { + func signedURLsOperationsAreFinished(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: ResumeTaskForGettingAttachmentSignedURLsOperation.ReasonForCancel?) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - assertionFailure() - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let error = error else { + guard let error else { // This is the best case, when no error occured - os_log("Signed URLs operations are finished for attachment %{public}@", log: log, type: .info, attachmentId.debugDescription) + os_log("Signed URLs operations are finished for attachment %{public}@", log: Self.log, type: .info, attachmentId.debugDescription) return } - os_log("Failed to obtain signed URLs for attachment %{public}@", log: log, type: .error, attachmentId.debugDescription) + os_log("Failed to obtain signed URLs for attachment %{public}@", log: Self.log, type: .error, attachmentId.debugDescription) attachmentStoppedToRefreshSignedURLs(attachmentId: attachmentId) @@ -986,15 +960,19 @@ extension DownloadAttachmentChunksCoordinator: FinalizeSignedURLsOperationsDeleg .nonNilSignedURLWasFound, .coreDataFailure, .failedToCreateTask: - let delay = failedAttemptsCounterManager.incrementAndGetDelay(.downloadAttachment(attachmentId: attachmentId)) - retryManager.executeWithDelay(delay) { [weak self] in - self?.downloadSignedURLsForAttachments(attachmentIds: [attachmentId], flowId: flowId) + Task { [weak self] in + guard let self else { return } + let delay = failedAttemptsCounterManager.incrementAndGetDelay(.downloadAttachment(attachmentId: attachmentId)) + await retryManager.waitForDelay(milliseconds: delay) + downloadSignedURLsForAttachments(attachmentIds: [attachmentId], flowId: flowId) } case .attachmentChunksSignedURLsTrackerNotSet: assertionFailure() - let delay = failedAttemptsCounterManager.incrementAndGetDelay(.downloadAttachment(attachmentId: attachmentId)) - retryManager.executeWithDelay(delay) { [weak self] in - self?.downloadSignedURLsForAttachments(attachmentIds: [attachmentId], flowId: flowId) + Task { [weak self] in + guard let self else { return } + let delay = failedAttemptsCounterManager.incrementAndGetDelay(.downloadAttachment(attachmentId: attachmentId)) + await retryManager.waitForDelay(milliseconds: delay) + downloadSignedURLsForAttachments(attachmentIds: [attachmentId], flowId: flowId) } } @@ -1007,23 +985,14 @@ extension DownloadAttachmentChunksCoordinator: FinalizeSignedURLsOperationsDeleg extension DownloadAttachmentChunksCoordinator: FinalizeDownloadChunksOperationsDelegate { - func downloadChunksOperationsAreFinished(attachmentId: AttachmentIdentifier, urlSession: URLSession?, flowId: FlowIdentifier, error: ResumeDownloadsOfMissingChunksOperation.ReasonForCancel?) { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - assertionFailure() - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) + func downloadChunksOperationsAreFinished(attachmentId: ObvAttachmentIdentifier, urlSession: URLSession?, flowId: FlowIdentifier, error: ResumeDownloadsOfMissingChunksOperation.ReasonForCancel?) { - guard let error = error else { + guard let error else { // This is the best case, when no error occured if let session = urlSession { addCurrentURLSession(session) } - os_log("All operations for downloading chunks of attachment %{public}@ are finished and did not cancel", log: log, type: .info, attachmentId.debugDescription) + os_log("All operations for downloading chunks of attachment %{public}@ are finished and did not cancel", log: Self.log, type: .info, attachmentId.debugDescription) return } @@ -1040,9 +1009,11 @@ extension DownloadAttachmentChunksCoordinator: FinalizeDownloadChunksOperationsD .failedToCreateTask, .coreDataFailure: urlSession?.invalidateAndCancel() - let delay = failedAttemptsCounterManager.incrementAndGetDelay(.downloadAttachment(attachmentId: attachmentId)) - retryManager.executeWithDelay(delay) { [weak self] in - self?.resumeAttachmentDownloadIfResumeIsRequested(attachmentId: attachmentId, flowId: flowId) + Task { [weak self] in + guard let self else { return } + let delay = failedAttemptsCounterManager.incrementAndGetDelay(.downloadAttachment(attachmentId: attachmentId)) + await retryManager.waitForDelay(milliseconds: delay) + resumeAttachmentDownloadIfResumeIsRequested(attachmentId: attachmentId, flowId: flowId) } case .allChunksAreAlreadyDownloaded: assert(urlSession != nil) @@ -1091,7 +1062,7 @@ extension DownloadAttachmentChunksCoordinator { } - private func getOperationsForDownloadingSignedURLsForAttachment(attachmentId: AttachmentIdentifier, logSubsystem: String, obvContext: ObvContext, identityDelegate: ObvIdentityDelegate) -> [Operation] { + private func getOperationsForDownloadingSignedURLsForAttachment(attachmentId: ObvAttachmentIdentifier, logSubsystem: String, obvContext: ObvContext, identityDelegate: ObvIdentityDelegate) -> [Operation] { var operations = [Operation]() @@ -1110,6 +1081,66 @@ extension DownloadAttachmentChunksCoordinator { } + + +// MARK: - Errors + +extension DownloadAttachmentChunksCoordinator { + + enum ObvError: LocalizedError { + + case theDelegateManagerIsNotSet + case theContextCreatorIsNotSet + case anOperationCancelled(localizedDescription: String?) + + var errorDescription: String? { + switch self { + case .theDelegateManagerIsNotSet: + return "The delegate manager is not set" + case .theContextCreatorIsNotSet: + return "The context creator is not set" + case .anOperationCancelled(localizedDescription: let localizedDescription): + return "An operation cancelled with reason: \(String(describing: localizedDescription))" + } + } + } + + +} + +// MARK: - Helpers + +extension DownloadAttachmentChunksCoordinator { + + private func createCompositionOfOneContextualOperation(op1: ContextualOperationWithSpecificReasonForCancel, flowId: FlowIdentifier) throws -> CompositionOfOneContextualOperation { + + guard let delegateManager else { + assertionFailure("The Delegate Manager is not set") + throw ObvError.theDelegateManagerIsNotSet + } + + guard let contextCreator = delegateManager.contextCreator else { + assertionFailure("The context creator manager is not set") + throw ObvError.theContextCreatorIsNotSet + } + + let queueForComposedOperations = delegateManager.queueForComposedOperations + + let composedOp = CompositionOfOneContextualOperation(op1: op1, contextCreator: contextCreator, queueForComposedOperations: queueForComposedOperations, log: Self.log, flowId: flowId) + + composedOp.completionBlock = { [weak composedOp] in + assert(composedOp != nil) + composedOp?.logReasonIfCancelled(log: Self.log) + } + return composedOp + + } + +} + + +// MARK: - Other stuff + fileprivate final class WeakRef where T: AnyObject { private(set) weak var value: T? init(to object: T) { diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/CleanExistingInboxAttachmentSessions/CleanExistingInboxAttachmentSessions.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/CleanExistingInboxAttachmentSessions/CleanExistingInboxAttachmentSessions.swift index b4afbdbd..882050bc 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/CleanExistingInboxAttachmentSessions/CleanExistingInboxAttachmentSessions.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/CleanExistingInboxAttachmentSessions/CleanExistingInboxAttachmentSessions.swift @@ -36,7 +36,7 @@ final class CleanExistingInboxAttachmentSessions: Operation { } private let uuid = UUID() - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let logSubsystem: String private let log: OSLog private let logCategory = String(describing: CleanExistingInboxAttachmentSessions.self) @@ -46,7 +46,7 @@ final class CleanExistingInboxAttachmentSessions: Operation { private(set) var reasonForCancel: ReasonForCancel? - init(attachmentId: AttachmentIdentifier, logSubsystem: String, contextCreator: ObvCreateContextDelegate, delegate: FinalizeCleanExistingInboxAttachmentSessionsDelegate, flowId: FlowIdentifier) { + init(attachmentId: ObvAttachmentIdentifier, logSubsystem: String, contextCreator: ObvCreateContextDelegate, delegate: FinalizeCleanExistingInboxAttachmentSessionsDelegate, flowId: FlowIdentifier) { self.attachmentId = attachmentId self.logSubsystem = logSubsystem self.log = OSLog(subsystem: logSubsystem, category: logCategory) @@ -126,6 +126,6 @@ final class CleanExistingInboxAttachmentSessions: Operation { protocol FinalizeCleanExistingInboxAttachmentSessionsDelegate: AnyObject { - func cleanExistingInboxAttachmentSessionsIsFinished(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: CleanExistingInboxAttachmentSessions.ReasonForCancel?) + func cleanExistingInboxAttachmentSessionsIsFinished(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: CleanExistingInboxAttachmentSessions.ReasonForCancel?) } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/DownloadingChunksOperations/ReCreateURLSessionWithNewDelegateForAttachmentDownloadOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/DownloadingChunksOperations/ReCreateURLSessionWithNewDelegateForAttachmentDownloadOperation.swift index 1e0caf30..21a17eeb 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/DownloadingChunksOperations/ReCreateURLSessionWithNewDelegateForAttachmentDownloadOperation.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/DownloadingChunksOperations/ReCreateURLSessionWithNewDelegateForAttachmentDownloadOperation.swift @@ -39,7 +39,7 @@ final class ReCreateURLSessionWithNewDelegateForAttachmentDownloadOperation: Ope } private let uuid = UUID() - let attachmentId: AttachmentIdentifier + let attachmentId: ObvAttachmentIdentifier private let logSubsystem: String private let log: OSLog private let flowId: FlowIdentifier @@ -52,7 +52,7 @@ final class ReCreateURLSessionWithNewDelegateForAttachmentDownloadOperation: Ope private(set) var reasonForCancel: ReasonForCancel? private(set) var urlSession: URLSession? - init(attachmentId: AttachmentIdentifier, logSubsystem: String, flowId: FlowIdentifier, inbox: URL, contextCreator: ObvCreateContextDelegate, attachmentChunkDownloadProgressTracker: AttachmentChunkDownloadProgressTracker) { + init(attachmentId: ObvAttachmentIdentifier, logSubsystem: String, flowId: FlowIdentifier, inbox: URL, contextCreator: ObvCreateContextDelegate, attachmentChunkDownloadProgressTracker: AttachmentChunkDownloadProgressTracker) { self.attachmentId = attachmentId self.logSubsystem = logSubsystem self.log = OSLog(subsystem: logSubsystem, category: logCategory) diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/DownloadingChunksOperations/ResumeDownloadsOfMissingChunksOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/DownloadingChunksOperations/ResumeDownloadsOfMissingChunksOperation.swift index 90aee467..7f327b85 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/DownloadingChunksOperations/ResumeDownloadsOfMissingChunksOperation.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/DownloadingChunksOperations/ResumeDownloadsOfMissingChunksOperation.swift @@ -44,7 +44,7 @@ final class ResumeDownloadsOfMissingChunksOperation: Operation { private let log: OSLog private let flowId: FlowIdentifier private let logCategory = String(describing: ResumeDownloadsOfMissingChunksOperation.self) - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private(set) var urlSession: URLSession? private weak var contextCreator: ObvCreateContextDelegate? @@ -53,7 +53,7 @@ final class ResumeDownloadsOfMissingChunksOperation: Operation { private(set) var reasonForCancel: ReasonForCancel? - init(attachmentId: AttachmentIdentifier, logSubsystem: String, flowId: FlowIdentifier, contextCreator: ObvCreateContextDelegate, identityDelegate: ObvIdentityDelegate, delegate: FinalizeDownloadChunksOperationsDelegate) { + init(attachmentId: ObvAttachmentIdentifier, logSubsystem: String, flowId: FlowIdentifier, contextCreator: ObvCreateContextDelegate, identityDelegate: ObvIdentityDelegate, delegate: FinalizeDownloadChunksOperationsDelegate) { self.flowId = flowId self.logSubsystem = logSubsystem self.log = OSLog(subsystem: logSubsystem, category: logCategory) @@ -188,6 +188,6 @@ extension ResumeDownloadsOfMissingChunksOperation { protocol FinalizeDownloadChunksOperationsDelegate: AnyObject { - func downloadChunksOperationsAreFinished(attachmentId: AttachmentIdentifier, urlSession: URLSession?, flowId: FlowIdentifier, error: ResumeDownloadsOfMissingChunksOperation.ReasonForCancel?) + func downloadChunksOperationsAreFinished(attachmentId: ObvAttachmentIdentifier, urlSession: URLSession?, flowId: FlowIdentifier, error: ResumeDownloadsOfMissingChunksOperation.ReasonForCancel?) } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/DeletePreviousAttachmentSignedURLsOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/DeletePreviousAttachmentSignedURLsOperation.swift index 26e482d0..b166c5eb 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/DeletePreviousAttachmentSignedURLsOperation.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/DeletePreviousAttachmentSignedURLsOperation.swift @@ -34,7 +34,7 @@ final class DeletePreviousAttachmentSignedURLsOperation: Operation { } private let uuid = UUID() - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let logSubsystem: String private let log: OSLog private let obvContext: ObvContext @@ -42,7 +42,7 @@ final class DeletePreviousAttachmentSignedURLsOperation: Operation { private(set) var reasonForCancel: ReasonForCancel? - init(attachmentId: AttachmentIdentifier, logSubsystem: String, obvContext: ObvContext) { + init(attachmentId: ObvAttachmentIdentifier, logSubsystem: String, obvContext: ObvContext) { self.attachmentId = attachmentId self.logSubsystem = logSubsystem self.log = OSLog(subsystem: logSubsystem, category: logCategory) diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/ResumeTaskForGettingAttachmentSignedURLsOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/ResumeTaskForGettingAttachmentSignedURLsOperation.swift index c3ff09b8..2cf358e9 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/ResumeTaskForGettingAttachmentSignedURLsOperation.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/ResumeTaskForGettingAttachmentSignedURLsOperation.swift @@ -39,7 +39,7 @@ final class ResumeTaskForGettingAttachmentSignedURLsOperation: Operation { } private let uuid = UUID() - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let logSubsystem: String private let log: OSLog private let obvContext: ObvContext @@ -52,7 +52,7 @@ final class ResumeTaskForGettingAttachmentSignedURLsOperation: Operation { private(set) var reasonForCancel: ReasonForCancel? - init(attachmentId: AttachmentIdentifier, logSubsystem: String, obvContext: ObvContext, identityDelegate: ObvIdentityDelegate, attachmentChunksSignedURLsTracker: AttachmentChunksSignedURLsTracker, delegate: FinalizeSignedURLsOperationsDelegate) { + init(attachmentId: ObvAttachmentIdentifier, logSubsystem: String, obvContext: ObvContext, identityDelegate: ObvIdentityDelegate, attachmentChunksSignedURLsTracker: AttachmentChunksSignedURLsTracker, delegate: FinalizeSignedURLsOperationsDelegate) { self.attachmentId = attachmentId self.logSubsystem = logSubsystem self.log = OSLog(subsystem: logSubsystem, category: logCategory) @@ -158,6 +158,6 @@ extension ResumeTaskForGettingAttachmentSignedURLsOperation { protocol FinalizeSignedURLsOperationsDelegate: AnyObject { - func signedURLsOperationsAreFinished(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: ResumeTaskForGettingAttachmentSignedURLsOperation.ReasonForCancel?) + func signedURLsOperationsAreFinished(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: ResumeTaskForGettingAttachmentSignedURLsOperation.ReasonForCancel?) } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/MarkInboxAttachmentAsPausedOrResumedOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/MarkInboxAttachmentAsPausedOrResumedOperation.swift index 2c66e4f6..e65eb739 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/MarkInboxAttachmentAsPausedOrResumedOperation.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/Operations/MarkInboxAttachmentAsPausedOrResumedOperation.swift @@ -77,7 +77,7 @@ final class MarkInboxAttachmentAsPausedOrResumedOperation: Operation { } private let uuid = UUID() - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let logSubsystem: String private let log: OSLog weak private var contextCreator: ObvCreateContextDelegate? @@ -85,10 +85,11 @@ final class MarkInboxAttachmentAsPausedOrResumedOperation: Operation { private let logCategory = String(describing: DeletePreviousAttachmentSignedURLsOperation.self) private let targetStatus: PausedOrResumed weak private var delegate: MarkInboxAttachmentAsPausedOrResumedOperationDelegate? + private let force: Bool private(set) var reasonForCancel: ReasonForCancel? - init(attachmentId: AttachmentIdentifier, targetStatus: PausedOrResumed, logSubsystem: String, flowId: FlowIdentifier, contextCreator: ObvCreateContextDelegate, delegate: MarkInboxAttachmentAsPausedOrResumedOperationDelegate?) { + init(attachmentId: ObvAttachmentIdentifier, targetStatus: PausedOrResumed, force: Bool, logSubsystem: String, flowId: FlowIdentifier, contextCreator: ObvCreateContextDelegate, delegate: MarkInboxAttachmentAsPausedOrResumedOperationDelegate?) { self.attachmentId = attachmentId self.logSubsystem = logSubsystem self.log = OSLog(subsystem: logSubsystem, category: logCategory) @@ -96,6 +97,7 @@ final class MarkInboxAttachmentAsPausedOrResumedOperation: Operation { self.flowId = flowId self.targetStatus = targetStatus self.delegate = delegate + self.force = force super.init() } @@ -137,7 +139,7 @@ final class MarkInboxAttachmentAsPausedOrResumedOperation: Operation { case .paused: try attachment.pauseDownload() case .resumed: - try attachment.resumeDownload() + try attachment.resumeDownload(force: force) } } catch { return cancel(withReason: .couldNotResumeOrPauseDownload) @@ -164,5 +166,5 @@ final class MarkInboxAttachmentAsPausedOrResumedOperation: Operation { protocol MarkInboxAttachmentAsPausedOrResumedOperationDelegate: AnyObject { - func inboxAttachmentWasJustMarkedAsPausedOrResumed(attachmentId: AttachmentIdentifier, pausedOrResumed: MarkInboxAttachmentAsPausedOrResumedOperation.PausedOrResumed, flowId: FlowIdentifier) + func inboxAttachmentWasJustMarkedAsPausedOrResumed(attachmentId: ObvAttachmentIdentifier, pausedOrResumed: MarkInboxAttachmentAsPausedOrResumedOperation.PausedOrResumed, flowId: FlowIdentifier) } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/SessionDelegates/DownloadAttachmentChunksSessionDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/SessionDelegates/DownloadAttachmentChunksSessionDelegate.swift index 1644e4c5..5f063fdb 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/SessionDelegates/DownloadAttachmentChunksSessionDelegate.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/SessionDelegates/DownloadAttachmentChunksSessionDelegate.swift @@ -28,7 +28,7 @@ final class DownloadAttachmentChunksSessionDelegate: NSObject { let uuid = UUID() private let logCategory = String(describing: DownloadAttachmentChunksSessionDelegate.self) private let log: OSLog - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let obvContext: ObvContext private let inbox: URL private let queueSynchronizingCallsToTracker = DispatchQueue(label: "Queue for sync tracker calls within DownloadAttachmentChunksSessionDelegate") @@ -61,7 +61,7 @@ final class DownloadAttachmentChunksSessionDelegate: NSObject { } } - init(attachmentId: AttachmentIdentifier, obvContext: ObvContext, logSubsystem: String, inbox: URL) { + init(attachmentId: ObvAttachmentIdentifier, obvContext: ObvContext, logSubsystem: String, inbox: URL) { self.log = OSLog(subsystem: logSubsystem, category: logCategory) self.attachmentId = attachmentId self.obvContext = obvContext @@ -80,11 +80,11 @@ final class DownloadAttachmentChunksSessionDelegate: NSObject { // MARK: - Tracker protocol AttachmentChunkDownloadProgressTracker: AnyObject { - func downloadAttachmentChunksSessionDidBecomeInvalid(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: DownloadAttachmentChunksSessionDelegate.ErrorForTracker?) + func downloadAttachmentChunksSessionDidBecomeInvalid(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: DownloadAttachmentChunksSessionDelegate.ErrorForTracker?) func urlSessionDidFinishEventsForSessionWithIdentifier(_ identifier: String) - func attachmentChunkDidProgress(attachmentId: AttachmentIdentifier, chunkProgress: (chunkNumber: Int, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64), flowId: FlowIdentifier) - func attachmentChunkWasDecryptedAndWrittenToAttachmentFile(attachmentId: AttachmentIdentifier, chunkNumber: Int, flowId: FlowIdentifier) - func attachmentDownloadIsComplete(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) + func attachmentChunkDidProgress(attachmentId: ObvAttachmentIdentifier, chunkProgress: (chunkNumber: Int, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64), flowId: FlowIdentifier) + func attachmentChunkWasDecryptedAndWrittenToAttachmentFile(attachmentId: ObvAttachmentIdentifier, chunkNumber: Int, flowId: FlowIdentifier) + func attachmentDownloadIsComplete(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) } // MARK: - URLSessionDelegate diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/SessionDelegates/GetSignedURLsSessionDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/SessionDelegates/GetSignedURLsSessionDelegate.swift index e842db07..16c68243 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/SessionDelegates/GetSignedURLsSessionDelegate.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/DownloadAttachmentChunksCoordinator/SessionDelegates/GetSignedURLsSessionDelegate.swift @@ -29,7 +29,7 @@ import OlvidUtils final class GetSignedURLsSessionDelegate: NSObject { private let uuid = UUID() - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let obvContext: ObvContext private let log: OSLog private var dataReceived = Data() @@ -62,7 +62,7 @@ final class GetSignedURLsSessionDelegate: NSObject { } } - init(attachmentId: AttachmentIdentifier, obvContext: ObvContext, logSubsystem: String, attachmentChunksSignedURLsTracker: AttachmentChunksSignedURLsTracker) { + init(attachmentId: ObvAttachmentIdentifier, obvContext: ObvContext, logSubsystem: String, attachmentChunksSignedURLsTracker: AttachmentChunksSignedURLsTracker) { self.attachmentId = attachmentId self.obvContext = obvContext self.log = OSLog(subsystem: logSubsystem, category: logCategory) @@ -76,7 +76,7 @@ final class GetSignedURLsSessionDelegate: NSObject { // MARK: - Tracker protocol AttachmentChunksSignedURLsTracker: AnyObject { - func getSignedURLsSessionDidBecomeInvalid(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: GetSignedURLsSessionDelegate.ErrorForTracker?) + func getSignedURLsSessionDidBecomeInvalid(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: GetSignedURLsSessionDelegate.ErrorForTracker?) } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/FreeTrialQueryCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/FreeTrialQueryCoordinator.swift index 2bf58d7f..93d3e348 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/FreeTrialQueryCoordinator.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/FreeTrialQueryCoordinator.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -19,359 +19,159 @@ import Foundation import os.log -import ObvCrypto import ObvTypes import ObvServerInterface -import ObvMetaManager import OlvidUtils +import ObvCrypto -final class FreeTrialQueryCoordinator: NSObject { +actor FreeTrialQueryCoordinator: FreeTrialQueryDelegate { - fileprivate let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem - fileprivate let logCategory = "FreeTrialQueryCoordinator" + private static let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem + private static let logCategory = "ServerPushNotificationsCoordinator" + private static var log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) weak var delegateManager: ObvNetworkFetchDelegateManager? - private let localQueue = DispatchQueue(label: "FreeTrialQueryCoordinatorQueue") - private let queueForNotifications = DispatchQueue(label: "FreeTrialQueryCoordinator queue for notifications") - - private lazy var session: URLSession! = { - let sessionConfiguration = URLSessionConfiguration.ephemeral - return URLSession(configuration: sessionConfiguration, delegate: self, delegateQueue: nil) - }() - - private var _currentTasks = [UIBackgroundTaskIdentifier: (ownedIdentity: ObvCryptoIdentity, retrieveAPIKey: Bool, flowId: FlowIdentifier, dataReceived: Data)]() - private var currentTasksQueue = DispatchQueue(label: "FreeTrialQueryCoordinatorQueueForCurrentTasks") - - private var queriesWaitingForNewServerSession = [(ownedIdentity: ObvCryptoIdentity, retrieveAPIKey: Bool, flowId: FlowIdentifier)]() -} - -// MARK: - Synchronized access to the current download tasks + private var failedAttemptsCounterManager = FailedAttemptsCounterManager() + private var retryManager = FetchRetryManager() -extension FreeTrialQueryCoordinator { - - private func currentTaskExistsFor(_ identity: ObvCryptoIdentity, retrieveAPIKey: Bool) -> Bool { - var exist = true - currentTasksQueue.sync { - exist = _currentTasks.values.contains(where: { $0.ownedIdentity == identity && $0.retrieveAPIKey == retrieveAPIKey }) - } - return exist - } - - private func removeInfoFor(_ task: URLSessionTask) -> (ownedIdentity: ObvCryptoIdentity, retrieveAPIKey: Bool, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (ObvCryptoIdentity, Bool, FlowIdentifier, Data)? = nil - currentTasksQueue.sync { - info = _currentTasks.removeValue(forKey: UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)) - } - return info - } - - private func getInfoFor(_ task: URLSessionTask) -> (ownedIdentity: ObvCryptoIdentity, retrieveAPIKey: Bool, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (ObvCryptoIdentity, Bool, FlowIdentifier, Data)? = nil - currentTasksQueue.sync { - info = _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] - } - return info + func setDelegateManager(_ delegateManager: ObvNetworkFetchDelegateManager) { + self.delegateManager = delegateManager } - private func insert(_ task: URLSessionTask, for identity: ObvCryptoIdentity, retrieveAPIKey: Bool, flowId: FlowIdentifier) { - currentTasksQueue.sync { - _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] = (identity, retrieveAPIKey, flowId, Data()) - } - } - - private func accumulate(_ data: Data, forTask task: URLSessionTask) { - currentTasksQueue.sync { - guard let (ownedIdentity, retrieveAPIKey, identifierForNotifications, currentData) = _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] else { return } - var newData = currentData - newData.append(data) - _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] = (ownedIdentity, retrieveAPIKey, identifierForNotifications, newData) - } - } - -} - - -// MARK: - FreeTrialQueryDelegate - -extension FreeTrialQueryCoordinator: FreeTrialQueryDelegate { - - private enum SyncQueueOutput { - case previousTaskExists - case serverSessionRequired - case newTaskToRun(task: URLSessionTask) - case failedToCreateTask(error: Error) - } - - - func queryFreeTrial(for identity: ObvCryptoIdentity, retrieveAPIKey: Bool, flowId: FlowIdentifier) { + func queryFreeTrial(for ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> Bool { guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) - return + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) + assertionFailure() + throw ObvError.theDelegateManagerIsNotSet } - var syncQueueOutput: SyncQueueOutput? // The state after the localQueue.sync is executed - - localQueue.sync { + let sessionToken = try await delegateManager.serverSessionDelegate.getValidServerSessionToken(for: ownedCryptoId, currentInvalidToken: nil, flowId: flowId).serverSessionToken + + let task = Task { + + let method = FreeTrialServerMethod(ownedIdentity: ownedCryptoId, token: sessionToken, retrieveAPIKey: false, flowId: flowId) + method.identityDelegate = delegateManager.identityDelegate + + let (data, response) = try await URLSession.shared.data(for: method.getURLRequest()) - guard !currentTaskExistsFor(identity, retrieveAPIKey: retrieveAPIKey) else { - syncQueueOutput = .previousTaskExists - return + guard let httpResponse = response as? HTTPURLResponse, + httpResponse.statusCode == 200 else { + throw ObvError.invalidServerResponse } - contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: identity) else { - syncQueueOutput = .serverSessionRequired - return - } - - guard let token = serverSession.token else { - syncQueueOutput = .serverSessionRequired - return - } - - let method = FreeTrialServerMethod(ownedIdentity: identity, token: token, retrieveAPIKey: retrieveAPIKey, flowId: flowId) - method.identityDelegate = delegateManager.identityDelegate - let task: URLSessionDataTask - do { - task = try method.dataTask(within: self.session) - } catch let error { - syncQueueOutput = .failedToCreateTask(error: error) - return - } - - insert(task, for: identity, retrieveAPIKey: retrieveAPIKey, flowId: flowId) - - syncQueueOutput = .newTaskToRun(task: task) - + guard let returnStatus = FreeTrialServerMethod.parseObvServerResponseWhenTestingWhetherFreeTrialIsStillAvailable(responseData: data, using: Self.log) else { + assertionFailure() + throw ObvError.couldNotParseReturnStatusFromServer } + + return returnStatus + } - - guard syncQueueOutput != nil else { - assertionFailure() - os_log("syncQueueOutput is nil", log: log, type: .fault) - return - } - - let queueForCallingDelegate = DispatchQueue(label: "FreeTrialQueryCoordinator queue for calling delegate in queryFreeTrial") - - switch syncQueueOutput! { - - case .previousTaskExists: - os_log("A running task already exists for identity %{public}@", log: log, type: .debug, identity.debugDescription) - assertionFailure() - case .serverSessionRequired: - os_log("Server session required for identity %@ with flow identifier %{public}@", log: log, type: .debug, identity.debugDescription, flowId.debugDescription) - queueForCallingDelegate.async { - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: identity, flowId: flowId) - } catch { - os_log("Call serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() - } + do { + let returnStatus = try await task.value + switch returnStatus { + case .invalidSession: + _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedCryptoId, currentInvalidToken: sessionToken, flowId: flowId) + return try await queryFreeTrial(for: ownedCryptoId, flowId: flowId) + case .ok: + return true + case .freeTrialAlreadyUsed: + return false + case .generalError: + let delay = failedAttemptsCounterManager.incrementAndGetDelay(.freeTrialQuery(ownedIdentity: ownedCryptoId)) + await retryManager.waitForDelay(milliseconds: delay) + _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedCryptoId, currentInvalidToken: sessionToken, flowId: flowId) + return try await queryFreeTrial(for: ownedCryptoId, flowId: flowId) } - - case .newTaskToRun(task: let task): - os_log("New task to run for identity %{public}@", log: log, type: .debug, identity.debugDescription) - task.resume() - - case .failedToCreateTask(error: let error): - os_log("Could not create task for FreeTrialServerMethod: %{public}@", log: log, type: .error, error.localizedDescription) + } catch { assertionFailure() - return - + throw error } - } - - - func processFreeTrialQueriesExpectingNewSession() { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - var queries = [(ownedIdentity: ObvCryptoIdentity, retrieveAPIKey: Bool, flowId: FlowIdentifier)]() - localQueue.sync { - queries = queriesWaitingForNewServerSession - queriesWaitingForNewServerSession.removeAll() - } - - os_log("Processing %d queries that were waiting for a new server session", log: log, type: .info, queries.count) - - for query in queries { - queryFreeTrial(for: query.ownedIdentity, retrieveAPIKey: query.retrieveAPIKey, flowId: query.flowId) - } } -} - - -// MARK: - URLSessionDataDelegate - -extension FreeTrialQueryCoordinator: URLSessionDataDelegate { - func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { - accumulate(data, forTask: dataTask) - } - - func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { + /// Starts a free trial and returns refresh API permission reflecting the result of starting the free trial. + func startFreeTrial(for ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> APIKeyElements { guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) + assertionFailure() + throw ObvError.theDelegateManagerIsNotSet } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) + let sessionToken = try await delegateManager.serverSessionDelegate.getValidServerSessionToken(for: ownedCryptoId, currentInvalidToken: nil, flowId: flowId).serverSessionToken - guard let (ownedIdentity, retrieveAPIKey, flowId, dataReceived) = getInfoFor(task) else { return } - - guard error == nil else { - os_log("The FreeTrialServerMethod task failed for identity %{public}@: %@", log: log, type: .error, ownedIdentity.debugDescription, error!.localizedDescription) - _ = removeInfoFor(task) - assertionFailure() - return - } + let task = Task { + + let method = FreeTrialServerMethod(ownedIdentity: ownedCryptoId, token: sessionToken, retrieveAPIKey: true, flowId: flowId) + method.identityDelegate = delegateManager.identityDelegate - // If we reach this point, the data task did complete without error - - if retrieveAPIKey { + let (data, response) = try await URLSession.shared.data(for: method.getURLRequest()) - guard let (status, returnedValues) = FreeTrialServerMethod.parseObvServerResponseWhenRetrievingFreeTrialAPIKey(responseData: dataReceived, using: log) else { - os_log("Could not parse the server response for the FreeTrialServerMethod while retrieving an API key task for identity %{public}@", log: log, type: .fault, ownedIdentity.debugDescription) - _ = removeInfoFor(task) - assertionFailure() - return + guard let httpResponse = response as? HTTPURLResponse, + httpResponse.statusCode == 200 else { + throw ObvError.invalidServerResponse } - switch status { - case .ok: - let apiKey = returnedValues! - _ = removeInfoFor(task) - queueForNotifications.async { - delegateManager.networkFetchFlowDelegate.newFreeTrialAPIKeyForOwnedIdentity(ownedIdentity, apiKey: apiKey, flowId: flowId) - } - return - - case .invalidSession: - os_log("The server session is invalid.", log: log, type: .info) - _ = removeInfoFor(task) - localQueue.sync { - queriesWaitingForNewServerSession.append((ownedIdentity, retrieveAPIKey, flowId)) - } - queueForNotifications.async { [weak self] in - self?.createNewServerSession(ownedIdentity: ownedIdentity, delegateManager: delegateManager, flowId: flowId, log: log) - } - return - - case .freeTrialAlreadyUsed: - os_log("The server reported that no more free trial is available for identity %{public}@", log: log, type: .info, ownedIdentity.debugDescription) - _ = removeInfoFor(task) - queueForNotifications.async { - delegateManager.networkFetchFlowDelegate.noMoreFreeTrialAPIKeyAvailableForOwnedIdentity(ownedIdentity, flowId: flowId) - } - return - - case .generalError: - os_log("The server reported a general error", log: log, type: .fault, ownedIdentity.debugDescription) + guard let (returnStatus, values) = FreeTrialServerMethod.parseObvServerResponseWhenRetrievingFreeTrialAPIKey(responseData: data, using: Self.log) else { assertionFailure() - _ = removeInfoFor(task) - return + throw ObvError.couldNotParseReturnStatusFromServer } - } else { + return (returnStatus, values) - guard let status = FreeTrialServerMethod.parseObvServerResponseWhenTestingWhetherFreeTrialIsStillAvailable(responseData: dataReceived, using: log) else { - os_log("Could not parse the server response for the FreeTrialServerMethod for identity %{public}@", log: log, type: .fault, ownedIdentity.debugDescription) - _ = removeInfoFor(task) - assertionFailure() - return - } + } - switch status { + do { + let (returnStatus, _) = try await task.value + switch returnStatus { case .ok: - _ = removeInfoFor(task) - queueForNotifications.async { - delegateManager.networkFetchFlowDelegate.freeTrialIsStillAvailableForOwnedIdentity(ownedIdentity, flowId: flowId) - } - return - + let newAPIKeyElements = try await delegateManager.networkFetchFlowDelegate.refreshAPIPermissions(of: ownedCryptoId, flowId: flowId) + return newAPIKeyElements case .invalidSession: - os_log("The server session is invalid.", log: log, type: .info) - _ = removeInfoFor(task) - localQueue.sync { - queriesWaitingForNewServerSession.append((ownedIdentity, retrieveAPIKey, flowId)) - } - queueForNotifications.async { [weak self] in - self?.createNewServerSession(ownedIdentity: ownedIdentity, delegateManager: delegateManager, flowId: flowId, log: log) - } - return - + _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedCryptoId, currentInvalidToken: sessionToken, flowId: flowId) + let newAPIKeyElements = try await startFreeTrial(for: ownedCryptoId, flowId: flowId) + return newAPIKeyElements case .freeTrialAlreadyUsed: - os_log("The server reported that no more free trial is available for identity %{public}@", log: log, type: .info, ownedIdentity.debugDescription) - _ = removeInfoFor(task) - queueForNotifications.async { - delegateManager.networkFetchFlowDelegate.noMoreFreeTrialAPIKeyAvailableForOwnedIdentity(ownedIdentity, flowId: flowId) - } - return - + throw ObvError.freeTrialAlreadyUsed case .generalError: - os_log("The server reported a general error", log: log, type: .fault, ownedIdentity.debugDescription) - _ = removeInfoFor(task) - assertionFailure() - return + let delay = failedAttemptsCounterManager.incrementAndGetDelay(.freeTrialQuery(ownedIdentity: ownedCryptoId)) + await retryManager.waitForDelay(milliseconds: delay) + _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedCryptoId, currentInvalidToken: sessionToken, flowId: flowId) + let newAPIKeyElements = try await startFreeTrial(for: ownedCryptoId, flowId: flowId) + return newAPIKeyElements } - + } catch { + assertionFailure() + throw error } - + } + - - private func createNewServerSession(ownedIdentity: ObvCryptoIdentity, delegateManager: ObvNetworkFetchDelegateManager, flowId: FlowIdentifier, log: OSLog) { - guard let contextCreator = delegateManager.contextCreator else { assertionFailure(); return } - contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: ownedIdentity) else { - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedIdentity, flowId: flowId) - } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() - } - return - } - - guard let token = serverSession.token else { - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedIdentity, flowId: flowId) - } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() - } - return - } - - do { - try delegateManager.networkFetchFlowDelegate.serverSession(of: ownedIdentity, hasInvalidToken: token, flowId: flowId) - } catch { - os_log("Call to to serverSession(of: ObvCryptoIdentity, hasInvalidToken: Data, flowId: FlowIdentifier) did fail", log: log, type: .fault) - assertionFailure() + enum ObvError: LocalizedError { + case theDelegateManagerIsNotSet + case invalidServerResponse + case couldNotParseReturnStatusFromServer + case freeTrialAlreadyUsed + + var errorDescription: String? { + switch self { + case .invalidServerResponse: + return "Invalid server response" + case .theDelegateManagerIsNotSet: + return "The delegate manager is not set" + case .couldNotParseReturnStatusFromServer: + return "Could not parse return status from server" + case .freeTrialAlreadyUsed: + return "Free trial already used" } } - } + } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetAndSolveChallengeCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetAndSolveChallengeCoordinator.swift deleted file mode 100644 index e86e863a..00000000 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetAndSolveChallengeCoordinator.swift +++ /dev/null @@ -1,342 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import os.log -import ObvServerInterface -import ObvTypes -import ObvOperation -import ObvCrypto -import ObvMetaManager -import OlvidUtils - -final class GetAndSolveChallengeCoordinator: NSObject { - - // MARK: - Instance variables - - fileprivate let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem - fileprivate let logCategory = "GetAndSolveChallengeCoordinator" - - weak var delegateManager: ObvNetworkFetchDelegateManager? - - private let localQueue = DispatchQueue(label: "GetAndSolveChallengeCoordinatorQueue") - - private lazy var session: URLSession! = { - let sessionConfiguration = URLSessionConfiguration.ephemeral - return URLSession(configuration: sessionConfiguration, delegate: self, delegateQueue: nil) - }() - - private var _currentTasks = [UIBackgroundTaskIdentifier: (ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier, dataReceived: Data)]() - private var currentTasksQueue = DispatchQueue(label: "GetAndSolveChallengeCoordinatorQueueForCurrentTasks") - -} - - -// MARK: - Synchronized access to the current download tasks - -extension GetAndSolveChallengeCoordinator { - - private func currentTaskExistsFor(_ identity: ObvCryptoIdentity) -> Bool { - var exist = true - currentTasksQueue.sync { - exist = _currentTasks.values.contains(where: { $0.ownedIdentity == identity }) - } - return exist - } - - private func removeInfoFor(_ task: URLSessionTask) -> (ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (ObvCryptoIdentity, FlowIdentifier, Data)? = nil - currentTasksQueue.sync { - info = _currentTasks.removeValue(forKey: UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)) - } - return info - } - - private func getInfoFor(_ task: URLSessionTask) -> (ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (ObvCryptoIdentity, FlowIdentifier, Data)? = nil - currentTasksQueue.sync { - info = _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] - } - return info - } - - private func insert(_ task: URLSessionTask, for identity: ObvCryptoIdentity, flowId: FlowIdentifier) { - currentTasksQueue.sync { - _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] = (identity, flowId, Data()) - } - } - - private func accumulate(_ data: Data, forTask task: URLSessionTask) { - currentTasksQueue.sync { - guard let (ownedIdentity, identifierForNotifications, currentData) = _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] else { return } - var newData = currentData - newData.append(data) - _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] = (ownedIdentity, identifierForNotifications, newData) - } - } -} - - -// MARK: - GetAndSolveChallengeDelegate - -extension GetAndSolveChallengeCoordinator: GetAndSolveChallengeDelegate { - - private enum SyncQueueOutput { - case noApiKey - case previousTaskExists - case existingTokenWasFound - case existingResponseWasFoundButNoTokenExists - case newTaskToRun(task: URLSessionTask) - case failedToCreateTask(error: Error) - } - - - func getAndSolveChallenge(forIdentity identity: ObvCryptoIdentity, currentInvalidToken: Data?, discardExistingToken: Bool, flowId: FlowIdentifier) throws { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let solveChallengeDelegate = delegateManager.solveChallengeDelegate else { - os_log("The solve challenge delegate is not set", log: log, type: .fault) - return - } - - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) - return - } - - var syncQueueOutput: SyncQueueOutput? // The state after the localQueue.sync is executed - - try localQueue.sync { - - try contextCreator.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { (obvContext) in - - guard !currentTaskExistsFor(identity) else { - syncQueueOutput = .previousTaskExists - return - } - - let serverSession = try ServerSession.getOrCreate(within: obvContext, withIdentity: identity) - - if let currentInvalidToken = currentInvalidToken { - // This operation was launched because of an invalid token. This operation is only useful if this token is still the one in DB. Otherwise, some other GetAndSolveChallengeOperation was executed in the meantime. - guard currentInvalidToken == serverSession.token else { return } - // If we reach this point, we are in charge of refreshing the token. - serverSession.resetSession() - } - - if discardExistingToken { - serverSession.resetSession() - } - - if serverSession.token != nil { - syncQueueOutput = .existingTokenWasFound - return - } - - if serverSession.response != nil { - syncQueueOutput = .existingResponseWasFoundButNoTokenExists - return - } - - // If we reach this point, we do need to ask a challenge to the server - - let prng = ObvCryptoSuite.sharedInstance.prngService() - serverSession.nonce = prng.genBytes(count: ObvConstants.serverSessionNonceLength) - - do { - try obvContext.save(logOnFailure: log) - } catch { - os_log("Could not save the generated nonce", log: log, type: .fault) - return - } - - guard let apiKey = try solveChallengeDelegate.getApiKeyForOwnedIdentity(identity, within: obvContext) else { - syncQueueOutput = .noApiKey - return - } - - let method = ObvServerRequestChallengeMethod(ownedIdentity: identity, apiKey: apiKey, nonce: serverSession.nonce!, toIdentity: identity, flowId: flowId) - method.identityDelegate = delegateManager.identityDelegate - let task: URLSessionDataTask - do { - task = try method.dataTask(within: self.session) - } catch let error { - syncQueueOutput = .failedToCreateTask(error: error) - return - } - - insert(task, for: identity, flowId: flowId) - - syncQueueOutput = .newTaskToRun(task: task) - - } - - } // End localQueue.sync - - guard syncQueueOutput != nil else { - os_log("syncQueueOutput is nil", log: log, type: .fault) - return - } - - switch syncQueueOutput! { - - case .previousTaskExists: - os_log("A running task already exists for identity %@", log: log, type: .debug, identity.debugDescription) - delegateManager.networkFetchFlowDelegate.getAndSolveChallengeWasNotNeeded(for: identity, flowId: flowId) - - case .newTaskToRun(task: let task): - os_log("New task to run for identity %@", log: log, type: .debug, identity.debugDescription) - task.resume() - - case .existingTokenWasFound: - os_log("Aborting getAndSolveChallenge since a previous token was found for identity %@", log: log, type: .info, identity.debugDescription) - - case .existingResponseWasFoundButNoTokenExists: - os_log("We already have a response to some challenge but no token", log: log, type: .debug) - try delegateManager.networkFetchFlowDelegate.newChallengeResponse(for: identity, flowId: flowId) - - case .failedToCreateTask(error: let error): - os_log("Could not create task for ObvServerRequestChallengeMethod: %{public}@", log: log, type: .error, error.localizedDescription) - return - - case .noApiKey: - os_log("Could not get API Key for owned identity %@", log: log, type: .fault, identity.debugDescription) - } - } -} - - -// MARK: - URLSessionDataDelegate - -extension GetAndSolveChallengeCoordinator: URLSessionDataDelegate { - - - func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { - accumulate(data, forTask: dataTask) - } - - - func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) - return - } - - guard let solveChallengeDelegate = delegateManager.solveChallengeDelegate else { - os_log("The solve challenge delegate is not set", log: log, type: .fault) - return - } - - guard let (identity, flowId, responseData) = getInfoFor(task) else { return } - - guard error == nil else { - os_log("The ObvServerRequestChallengeMethod task failed for identity %{public}@: %@", log: log, type: .error, identity.debugDescription, error!.localizedDescription) - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToGetOrSolveChallenge(for: identity, flowId: flowId) - return - } - - // If we reach this point, the data task did complete without error - - guard let (status, returnedValues) = ObvServerRequestChallengeMethod.parseObvServerResponse(responseData: responseData, using: log) else { - os_log("Could not parse the server response for the ObvServerRequestChallengeMethod task for identity %{public}@", log: log, type: .fault, identity.debugDescription) - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToGetOrSolveChallenge(for: identity, flowId: flowId) - return - } - - switch status { - case .ok: - let (challenge, serverNonce) = returnedValues! - - contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: identity) else { - os_log("Could not find any appropriate server session", log: log, type: .fault) - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToGetOrSolveChallenge(for: identity, flowId: flowId) - return - } - - if serverSession.response != nil || serverSession.token != nil { - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToGetOrSolveChallenge(for: identity, flowId: flowId) - return - } - - let prng = ObvCryptoSuite.sharedInstance.prngService() - let challengeType = ChallengeType.authentChallenge(challengeFromServer: challenge) - guard let response = try? solveChallengeDelegate.solveChallenge(challengeType, for: identity, using: prng, within: obvContext) else { - os_log("Could not solve the challenge", log: log, type: .error) - serverSession.nonce = nil - try? obvContext.save(logOnFailure: log) - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToGetOrSolveChallenge(for: identity, flowId: flowId) - return - } - - do { - try serverSession.store(response: response, ifCurrentNonceIs: serverNonce) - try obvContext.save(logOnFailure: log) - } catch { - os_log("Could not store the response", log: log, type: .fault) - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToGetOrSolveChallenge(for: identity, flowId: flowId) - return - } - - os_log("We successfully stored a challenge response for identity %@", log: log, type: .debug, identity.debugDescription) - _ = removeInfoFor(task) - do { - try delegateManager.networkFetchFlowDelegate.newChallengeResponse(for: identity, flowId: flowId) - } catch { - os_log("Call to newChallengeResponse did fail", log: log, type: .fault) - assertionFailure() - } - } - - return - - case .unkownApiKey, .apiKeyLicensesExhausted: - os_log("Server reported an error during the ObvServerRequestChallengeMethod download task for identity %@", log: log, type: .fault, identity.debugDescription) - _ = removeInfoFor(task) - - case .generalError: - os_log("Server reported general error during the ObvServerRequestChallengeMethod download task for identity %@", log: log, type: .fault, identity.debugDescription) - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToGetOrSolveChallenge(for: identity, flowId: flowId) - return - } - } -} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTokenCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTokenCoordinator.swift deleted file mode 100644 index f483aeb4..00000000 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTokenCoordinator.swift +++ /dev/null @@ -1,328 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import os.log -import ObvServerInterface -import ObvTypes -import ObvOperation -import ObvCrypto -import ObvMetaManager -import OlvidUtils - -final class GetTokenCoordinator: NSObject { - - // MARK: - Instance variables - - fileprivate let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem - fileprivate let logCategory = "GetTokenCoordinator" - - weak var delegateManager: ObvNetworkFetchDelegateManager? - - private let localQueue = DispatchQueue(label: "GetTokenCoordinatorQueue") - - private lazy var session: URLSession! = { - let sessionConfiguration = URLSessionConfiguration.ephemeral - return URLSession(configuration: sessionConfiguration, delegate: self, delegateQueue: nil) - }() - - private var _currentTasks = [UIBackgroundTaskIdentifier: (ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier, dataReceived: Data)]() - private var currentTasksQueue = DispatchQueue(label: "GetTokenCoordinatorQueueForCurrentTasks") - -} - - -// MARK: - Synchronized access to the current download tasks - -extension GetTokenCoordinator { - - private func currentTaskExistsFor(_ identity: ObvCryptoIdentity) -> Bool { - var exist = true - currentTasksQueue.sync { - exist = _currentTasks.values.contains(where: { $0.ownedIdentity == identity }) - } - return exist - } - - private func removeInfoFor(_ task: URLSessionTask) -> (ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (ObvCryptoIdentity, FlowIdentifier, Data)? = nil - currentTasksQueue.sync { - info = _currentTasks.removeValue(forKey: UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)) - } - return info - } - - private func getInfoFor(_ task: URLSessionTask) -> (ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (ObvCryptoIdentity, FlowIdentifier, Data)? = nil - currentTasksQueue.sync { - info = _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] - } - return info - } - - private func insert(_ task: URLSessionTask, for identity: ObvCryptoIdentity, flowId: FlowIdentifier) { - currentTasksQueue.sync { - _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] = (identity, flowId, Data()) - } - } - - private func accumulate(_ data: Data, forTask task: URLSessionTask) { - currentTasksQueue.sync { - guard let (ownedIdentity, identifierForNotifications, currentData) = _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] else { return } - var newData = currentData - newData.append(data) - _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] = (ownedIdentity, identifierForNotifications, newData) - } - } - -} - - -// MARK: - GetTokenDelegate - -extension GetTokenCoordinator: GetTokenDelegate { - - private enum SyncQueueOutput { - case previousTaskExists - case serverSessionRequired - case existingTokenWasFound - case newTaskToRun(task: URLSessionTask) - case failedToCreateTask(error: Error) - } - - func getToken(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) throws { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) - return - } - - var syncQueueOutput: SyncQueueOutput? // The state after the localQueue.sync is executed - - try localQueue.sync { - - guard !currentTaskExistsFor(identity) else { - syncQueueOutput = .previousTaskExists - return - } - - try contextCreator.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { (obvContext) in - - guard let serverSession = try ServerSession.get(within: obvContext, withIdentity: identity) else { - syncQueueOutput = .serverSessionRequired - return - } - - guard serverSession.token == nil else { - syncQueueOutput = .existingTokenWasFound - return - } - - guard let nonce = serverSession.nonce else { - syncQueueOutput = .serverSessionRequired - return - } - - guard let response = serverSession.response else { - syncQueueOutput = .serverSessionRequired - return - } - - // If we reach this point, we must get a token from the server - - let method = ObvServerGetTokenMethod(ownedIdentity: identity, response: response, nonce: nonce, toIdentity: identity, flowId: flowId) - method.identityDelegate = delegateManager.identityDelegate - let task: URLSessionDataTask - do { - task = try method.dataTask(within: self.session) - } catch let error { - syncQueueOutput = .failedToCreateTask(error: error) - return - } - - insert(task, for: identity, flowId: flowId) - - syncQueueOutput = .newTaskToRun(task: task) - } - - } // End of localQueue.sync - - guard syncQueueOutput != nil else { - os_log("syncQueueOutput is nil", log: log, type: .fault) - return - } - - switch syncQueueOutput! { - - case .previousTaskExists: - os_log("A running task already exists for identity %{public}@", log: log, type: .debug, identity.debugDescription) - delegateManager.networkFetchFlowDelegate.getTokenWasNotNeeded(for: identity, flowId: flowId) - - case .serverSessionRequired: - os_log("Server session required for identity %{public}@", log: log, type: .debug, identity.debugDescription) - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: identity, flowId: flowId) - - case .newTaskToRun(task: let task): - os_log("New task to run for identity %{public}@", log: log, type: .debug, identity.debugDescription) - task.resume() - - case .failedToCreateTask(error: let error): - os_log("Could not create task for ObvServerGetTokenMethod: %{public}@", log: log, type: .error, error.localizedDescription) - return - - case .existingTokenWasFound: - os_log("Aborting getToken because an existing token was found for identity %@", log: log, type: .info, identity.debugDescription) - } - - } -} - - -// MARK: - URLSessionDataDelegate - -extension GetTokenCoordinator: URLSessionDataDelegate { - - func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { - accumulate(data, forTask: dataTask) - } - - - func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) - return - } - - guard let (identity, flowId, responseData) = getInfoFor(task) else { return } - - guard error == nil else { - os_log("The ObvServerGetTokenMethod task failed for identity %{public}@: %@", log: log, type: .error, identity.debugDescription, error!.localizedDescription) - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToGetToken(for: identity, flowId: flowId) - return - } - - // If we reach this point, the data task did complete without error - - guard let (status, returnedValues) = ObvServerGetTokenMethod.parseObvServerResponse(responseData: responseData, using: log) else { - os_log("Could not parse the server response for the ObvServerGetTokenMethod download task for identity %{public}@", log: log, type: .fault, identity.debugDescription) - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToGetToken(for: identity, flowId: flowId) - return - } - - switch status { - case .ok: - let (token, serverNonce, apiKeyStatus, apiPermissions, apiKeyExpirationDate) = returnedValues! - - contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: identity) else { - os_log("Could not find any appropriate server session", log: log, type: .fault) - _ = removeInfoFor(task) - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: identity, flowId: flowId) - } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() - } - return - } - - guard serverSession.token == nil else { - _ = removeInfoFor(task) - return - } - - do { - try serverSession.store(token: token, ifCurrentNonceIs: serverNonce) - try obvContext.save(logOnFailure: log) - } catch { - os_log("Could not save token in server session", log: log, type: .fault) - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToGetToken(for: identity, flowId: flowId) - return - } - - } - - os_log("We successfully stored a token for identity %@", log: log, type: .debug, identity.debugDescription) - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.newToken(token, for: identity, flowId: flowId) - delegateManager.networkFetchFlowDelegate.newAPIKeyElementsForCurrentAPIKeyOf(identity, apiKeyStatus: apiKeyStatus, apiPermissions: apiPermissions, apiKeyExpirationDate: apiKeyExpirationDate, flowId: flowId) - - return - - case .serverDidNotFindChallengeCorrespondingToResponse: - os_log("The server could not find the challenge corresponding to the respond we just sent for identity %@", log: log, type: .fault, identity.debugDescription) - _ = removeInfoFor(task) - - contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: identity) else { - os_log("Could not find any appropriate server session", log: log, type: .fault) - _ = removeInfoFor(task) - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: identity, flowId: flowId) - } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() - } - return - } - - guard serverSession.token == nil else { - _ = removeInfoFor(task) - return - } - - serverSession.resetSession() - - try? obvContext.save(logOnFailure: log) - - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToGetOrSolveChallenge(for: identity, flowId: flowId) - } - - return - - case .generalError: - os_log("Server reported general error during the ObvServerGetTokenMethod download task for identity %@", log: log, type: .fault, identity.debugDescription) - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToGetToken(for: identity, flowId: flowId) - return - } - - } -} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTurnCredentials/GetTurnCredentialsCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTurnCredentials/GetTurnCredentialsCoordinator.swift index 7707ee1a..45827005 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTurnCredentials/GetTurnCredentialsCoordinator.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTurnCredentials/GetTurnCredentialsCoordinator.swift @@ -23,20 +23,16 @@ import ObvCrypto import ObvTypes import ObvMetaManager import OlvidUtils +import ObvServerInterface final class GetTurnCredentialsCoordinator { - fileprivate let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem - fileprivate let logCategory = "GetTurnCredentialsCoordinator" - private let localQueue = DispatchQueue(label: "GetTurnCredentialsCoordinatorQueue") + private static let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem + private static let logCategory = "ServerPushNotificationsCoordinator" + private static var log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) + private let queueForNotifications = DispatchQueue(label: "GetTurnCredentialsCoordinator queue for posting notifications") - private var internalOperationQueue: OperationQueue = { - let queue = OperationQueue() - queue.name = "Queue for GetTurnCredentialsCoordinator operations" - queue.maxConcurrentOperationCount = 1 - return queue - }() var delegateManager: ObvNetworkFetchDelegateManager? @@ -45,173 +41,273 @@ final class GetTurnCredentialsCoordinator { protocol GetTurnCredentialsDelegate: AnyObject { - func getTurnCredentials(ownedIdenty: ObvCryptoIdentity, callUuid: UUID, username1: String, username2: String, flowId: FlowIdentifier) + func getTurnCredentials(ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> ObvTurnCredentials } extension GetTurnCredentialsCoordinator: GetTurnCredentialsDelegate { - func getTurnCredentials(ownedIdenty: ObvCryptoIdentity, callUuid: UUID, username1: String, username2: String, flowId: FlowIdentifier) { + func getTurnCredentials(ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> ObvTurnCredentials { guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() - return + throw ObvError.theDelegateManagerIsNotSet } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator manager is not set", log: log, type: .fault) + guard let identityDelegate = delegateManager.identityDelegate else { + os_log("The identity delegate is not set", log: Self.log, type: .fault) assertionFailure() - return + throw ObvError.theIdentityDelegateIsNotSet } - guard let identityDelegate = delegateManager.identityDelegate else { - os_log("The identity deleate is not set", log: log, type: .fault) - assertionFailure() - return + let sessionToken = try await delegateManager.serverSessionDelegate.getValidServerSessionToken(for: ownedCryptoId, currentInvalidToken: nil, flowId: flowId).serverSessionToken + + let task = Task { + + let method = GetTurnCredentialsServerMethod( + ownedIdentity: ownedCryptoId, + token: sessionToken, + username1: "alice", + username2: "bob", + flowId: flowId, + identityDelegate: identityDelegate) + + let (data, response) = try await URLSession.shared.data(for: method.getURLRequest()) + + guard let httpResponse = response as? HTTPURLResponse, + httpResponse.statusCode == 200 else { + throw ObvError.invalidServerResponse + } + + guard let (status, turnCredentials) = GetTurnCredentialsServerMethod.parseObvServerResponse(responseData: data, using: Self.log) else { + assertionFailure() + throw ObvError.couldNotParseReturnStatusFromServer + } + + return (status, turnCredentials) + } - var operationsToQueue = [Operation]() - - contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - let operation = GetTurnCredentialsOperation(ownedIdentity: ownedIdenty, - callUuid: callUuid, - username1: username1, - username2: username2, - obvContext: obvContext, - logSubsystem: delegateManager.logSubsystem, - identityDelegate: identityDelegate, - tracker: self, - wellKnownCacheDelegate: delegateManager.wellKnownCacheDelegate) - operationsToQueue.append(operation) + do { + + let (status, turnCredentials) = try await task.value + + switch status { + + case .ok: + guard let turnCredentials else { + throw ObvError.okFromServerButNoCredentialsReturned + } + switch delegateManager.wellKnownCacheDelegate.getTurnURLs(for: ownedCryptoId.serverURL, flowId: flowId) { + case .success(let turnServersURL): + let obvTurnCredentials = ObvTurnCredentials(turnCredentials: turnCredentials, turnServersURL: turnServersURL) + os_log("☎️ Returning Turn Credentials received from server", log: Self.log, type: .info) + return obvTurnCredentials + case .failure(let error): + os_log("Cannot retrive turn server URLs %{public}@", log: Self.log, type: .error, error.localizedDescription) + throw ObvError.couldNotRetrieveTurnServers + } + + case .invalidSession: + _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedCryptoId, currentInvalidToken: sessionToken, flowId: flowId) + return try await getTurnCredentials(ownedCryptoId: ownedCryptoId, flowId: flowId) + + case .permissionDenied: + os_log("Server reported permission denied", log: Self.log, type: .error) + throw ObvError.permissionDenied + + case .generalError: + os_log("Server reported general error", log: Self.log, type: .fault) + throw ObvError.generalError + + } + + } catch { + assertionFailure() + throw error } - guard !operationsToQueue.isEmpty else { assertionFailure(); return } - - // We prevent any interference with previous operations - internalOperationQueue.addBarrierBlock({}) - internalOperationQueue.addOperations(operationsToQueue, waitUntilFinished: false) - } + +// func getTurnCredentials(ownedIdenty: ObvCryptoIdentity, callUuid: UUID, username1: String, username2: String, flowId: FlowIdentifier) { +// +// guard let delegateManager = delegateManager else { +// os_log("The Delegate Manager is not set", log: Self.log, type: .fault) +// assertionFailure() +// return +// } +// +// guard let contextCreator = delegateManager.contextCreator else { +// os_log("The context creator manager is not set", log: Self.log, type: .fault) +// assertionFailure() +// return +// } +// +// guard let identityDelegate = delegateManager.identityDelegate else { +// os_log("The identity deleate is not set", log: Self.log, type: .fault) +// assertionFailure() +// return +// } +// +// var operationsToQueue = [Operation]() +// +// contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in +// let operation = GetTurnCredentialsOperation(ownedIdentity: ownedIdenty, +// callUuid: callUuid, +// username1: username1, +// username2: username2, +// obvContext: obvContext, +// logSubsystem: delegateManager.logSubsystem, +// identityDelegate: identityDelegate, +// tracker: self, +// wellKnownCacheDelegate: delegateManager.wellKnownCacheDelegate) +// operationsToQueue.append(operation) +// } +// +// guard !operationsToQueue.isEmpty else { assertionFailure(); return } +// +// // We prevent any interference with previous operations +// internalOperationQueue.addBarrierBlock({}) +// internalOperationQueue.addOperations(operationsToQueue, waitUntilFinished: false) +// +// } + } // MARK: - Implementing GetTurnCredentialsCoordinator -extension GetTurnCredentialsCoordinator: GetTurnCredentialsTracker { - - func getTurnCredentialsSuccess(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, turnCredentials: TurnCredentials, flowId: FlowIdentifier) { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - assertionFailure() - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) - assertionFailure() - return - } - - switch delegateManager.wellKnownCacheDelegate.getTurnURLs(for: ownedIdentity.serverURL, flowId: flowId) { - case .success(let turnServersURL): - let turnCredentialsWithTurnServers = TurnCredentialsWithTurnServers(turnCredentials: turnCredentials, turnServersURL: turnServersURL) +//extension GetTurnCredentialsCoordinator: GetTurnCredentialsTracker { +// +// func getTurnCredentialsSuccess(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, turnCredentials: TurnCredentials, flowId: FlowIdentifier) { +// +// guard let delegateManager = delegateManager else { +// os_log("The Delegate Manager is not set", log: Self.log, type: .fault) +// assertionFailure() +// return +// } +// +// guard let notificationDelegate = delegateManager.notificationDelegate else { +// os_log("The notification delegate is not set", log: Self.log, type: .fault) +// assertionFailure() +// return +// } +// +// switch delegateManager.wellKnownCacheDelegate.getTurnURLs(for: ownedIdentity.serverURL, flowId: flowId) { +// case .success(let turnServersURL): +// let turnCredentialsWithTurnServers = TurnCredentialsWithTurnServers(turnCredentials: turnCredentials, turnServersURL: turnServersURL) +// +// os_log("☎️ Notifying about new Turn Credentials received from server", log: Self.log, type: .info) +// +// ObvNetworkFetchNotificationNew.turnCredentialsReceived(ownedIdentity: ownedIdentity, callUuid: callUuid, turnCredentialsWithTurnServers: turnCredentialsWithTurnServers, flowId: flowId) +// .postOnBackgroundQueue(queueForNotifications, within: notificationDelegate) +// case .failure(let error): +// os_log("Cannot retrive turn server URLs %{public}@", log: Self.log, type: .info, error.localizedDescription) +// return +// } +// +// } +// +// +// func getTurnCredentialsFailure(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, withError error: GetTurnCredentialsURLSessionDelegate.ErrorForTracker, flowId: FlowIdentifier) { +// +// guard let delegateManager = delegateManager else { +// os_log("The Delegate Manager is not set", log: Self.log, type: .fault) +// assertionFailure() +// return +// } +// +// os_log("☎️ Failed to receive new Turn Credentials from server: %{public}@", log: Self.log, type: .error, error.localizedDescription) +// +// +// guard let notificationDelegate = delegateManager.notificationDelegate else { +// os_log("The notification delegate is not set", log: Self.log, type: .fault) +// assertionFailure() +// return +// } +// +// guard let contextCreator = delegateManager.contextCreator else { +// os_log("The context creator is not set", log: Self.log, type: .fault) +// assertionFailure() +// return +// } +// +// switch error { +// case .invalidSession: +// +// contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in +// guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: ownedIdentity), let token = serverSession.token else { +// Task.detached { +// do { +// _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedIdentity, currentInvalidToken: nil, flowId: flowId) +// } catch { +// os_log("Call to getValidServerSessionToken did fail", log: Self.log, type: .fault) +// assertionFailure() +// } +// } +// return +// } +// Task.detached { +// do { +// _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedIdentity, currentInvalidToken: token, flowId: flowId) +// } catch { +// os_log("Call to getValidServerSessionToken did fail", log: Self.log, type: .fault) +// assertionFailure() +// } +// } +// } +// +// ObvNetworkFetchNotificationNew.turnCredentialsReceptionFailure(ownedIdentity: ownedIdentity, callUuid: callUuid, flowId: flowId) +// .postOnBackgroundQueue(queueForNotifications, within: notificationDelegate) +// +// case .aTaskDidBecomeInvalidWithError, +// .couldNotParseServerResponse, +// .generalErrorFromServer, +// .noOutputAvailable, +// .wellKnownNotCached: +// ObvNetworkFetchNotificationNew.turnCredentialsReceptionFailure(ownedIdentity: ownedIdentity, callUuid: callUuid, flowId: flowId) +// .postOnBackgroundQueue(queueForNotifications, within: notificationDelegate) +// case .permissionDenied: +// ObvNetworkFetchNotificationNew.turnCredentialsReceptionPermissionDenied(ownedIdentity: ownedIdentity, callUuid: callUuid, flowId: flowId) +// .postOnBackgroundQueue(queueForNotifications, within: notificationDelegate) +// case .serverDoesNotSupportCalls: +// ObvNetworkFetchNotificationNew.turnCredentialServerDoesNotSupportCalls(ownedIdentity: ownedIdentity, callUuid: callUuid, flowId: flowId) +// .postOnBackgroundQueue(queueForNotifications, within: notificationDelegate) +// } +// +// } +// +//} - os_log("☎️ Notifying about new Turn Credentials received from server", log: log, type: .info) - ObvNetworkFetchNotificationNew.turnCredentialsReceived(ownedIdentity: ownedIdentity, callUuid: callUuid, turnCredentialsWithTurnServers: turnCredentialsWithTurnServers, flowId: flowId) - .postOnBackgroundQueue(queueForNotifications, within: notificationDelegate) - case .failure(let error): - os_log("Cannot retrive turn server URLs %{public}@", log: log, type: .info, error.localizedDescription) - return - } - - } - +extension GetTurnCredentialsCoordinator { - func getTurnCredentialsFailure(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, withError error: GetTurnCredentialsURLSessionDelegate.ErrorForTracker, flowId: FlowIdentifier) { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - assertionFailure() - return - } + enum ObvError: Error { + case theDelegateManagerIsNotSet + case theIdentityDelegateIsNotSet + case invalidServerResponse + case couldNotParseReturnStatusFromServer + case okFromServerButNoCredentialsReturned + case permissionDenied + case generalError + case couldNotRetrieveTurnServers + } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - os_log("☎️ Failed to receive new Turn Credentials from server: %{public}@", log: log, type: .error, error.localizedDescription) +} - - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) - assertionFailure() - return - } - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator is not set", log: log, type: .fault) - assertionFailure() - return - } - - switch error { - case .invalidSession: - - contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: ownedIdentity) else { - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedIdentity, flowId: flowId) - } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() - } - return - } - - guard let token = serverSession.token else { - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedIdentity, flowId: flowId) - } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() - } - return - } - - do { - try delegateManager.networkFetchFlowDelegate.serverSession(of: ownedIdentity, hasInvalidToken: token, flowId: flowId) - } catch { - os_log("Call to to serverSession(of: ObvCryptoIdentity, hasInvalidToken: Data, flowId: FlowIdentifier) did fail", log: log, type: .fault) - assertionFailure() - } - } - - ObvNetworkFetchNotificationNew.turnCredentialsReceptionFailure(ownedIdentity: ownedIdentity, callUuid: callUuid, flowId: flowId) - .postOnBackgroundQueue(queueForNotifications, within: notificationDelegate) - - case .aTaskDidBecomeInvalidWithError, - .couldNotParseServerResponse, - .generalErrorFromServer, - .noOutputAvailable, - .wellKnownNotCached: - ObvNetworkFetchNotificationNew.turnCredentialsReceptionFailure(ownedIdentity: ownedIdentity, callUuid: callUuid, flowId: flowId) - .postOnBackgroundQueue(queueForNotifications, within: notificationDelegate) - case .permissionDenied: - ObvNetworkFetchNotificationNew.turnCredentialsReceptionPermissionDenied(ownedIdentity: ownedIdentity, callUuid: callUuid, flowId: flowId) - .postOnBackgroundQueue(queueForNotifications, within: notificationDelegate) - case .serverDoesNotSupportCalls: - ObvNetworkFetchNotificationNew.turnCredentialServerDoesNotSupportCalls(ownedIdentity: ownedIdentity, callUuid: callUuid, flowId: flowId) - .postOnBackgroundQueue(queueForNotifications, within: notificationDelegate) - } - - } +// MARK: - Helpers +fileprivate extension ObvTurnCredentials { + + init(turnCredentials: TurnCredentials, turnServersURL: [String]) { + self.init(callerUsername: turnCredentials.expiringUsername1, + callerPassword: turnCredentials.password1, + recipientUsername: turnCredentials.expiringUsername2, + recipientPassword: turnCredentials.password2, + turnServersURL: turnServersURL) + } + } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTurnCredentials/GetTurnCredentialsOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTurnCredentials/GetTurnCredentialsOperation.swift deleted file mode 100644 index 9574ab4b..00000000 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTurnCredentials/GetTurnCredentialsOperation.swift +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import ObvMetaManager -import ObvTypes -import ObvCrypto -import ObvServerInterface -import OlvidUtils - - -final class GetTurnCredentialsOperation: Operation { - - enum ReasonForCancel { - case identityDelegateIsNotSet - case serverSessionRequired - case serverSessionHasNoToken - case getTurnCredentialsTrackerNotSet - case failedToCreateTask(error: Error) - } - - private let ownedIdentity: ObvCryptoIdentity - private let callUuid: UUID - private let username1: String - private let username2: String - private let obvContext: ObvContext - private let logSubsystem: String - - private weak var identityDelegate: ObvIdentityDelegate? - private weak var tracker: GetTurnCredentialsTracker? - private weak var wellKnownCacheDelegate: WellKnownCacheDelegate? - - var flowId: FlowIdentifier { obvContext.flowId } - - init(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, username1: String, username2: String, obvContext: ObvContext, logSubsystem: String, identityDelegate: ObvIdentityDelegate, tracker: GetTurnCredentialsTracker, wellKnownCacheDelegate: WellKnownCacheDelegate) { - self.ownedIdentity = ownedIdentity - self.callUuid = callUuid - self.username1 = username1 - self.username2 = username2 - self.obvContext = obvContext - self.identityDelegate = identityDelegate - self.tracker = tracker - self.wellKnownCacheDelegate = wellKnownCacheDelegate - self.logSubsystem = logSubsystem - super.init() - } - - private(set) var reasonForCancel: ReasonForCancel? - - private func cancel(withReason reason: ReasonForCancel) { - assert(self.reasonForCancel == nil) - self.reasonForCancel = reason - self.cancel() - } - - - override func main() { - - guard let identityDelegate = identityDelegate else { - cancel(withReason: .identityDelegateIsNotSet) - return - } - - guard let tracker = self.tracker else { - return cancel(withReason: .getTurnCredentialsTrackerNotSet) - } - - guard let wellKnownCacheDelegate = self.wellKnownCacheDelegate else { - tracker.getTurnCredentialsFailure(ownedIdentity: self.ownedIdentity, callUuid: self.callUuid, withError: .wellKnownNotCached, flowId: self.flowId) - return cancel(withReason: .failedToCreateTask(error: GetTurnCredentialsURLSessionDelegate.ErrorForTracker.wellKnownNotCached)) - } - - guard case .success(let turnServerURLs) = wellKnownCacheDelegate.getTurnURLs(for: ownedIdentity.serverURL, flowId: self.flowId) else { - tracker.getTurnCredentialsFailure(ownedIdentity: self.ownedIdentity, callUuid: self.callUuid, withError: .wellKnownNotCached, flowId: self.flowId) - return cancel(withReason: .failedToCreateTask(error: GetTurnCredentialsURLSessionDelegate.ErrorForTracker.wellKnownNotCached)) - } - - guard !turnServerURLs.isEmpty else { - tracker.getTurnCredentialsFailure(ownedIdentity: self.ownedIdentity, callUuid: self.callUuid, withError: .serverDoesNotSupportCalls, flowId: self.flowId) - return cancel(withReason: .failedToCreateTask(error: GetTurnCredentialsURLSessionDelegate.ErrorForTracker.serverDoesNotSupportCalls)) - } - - obvContext.performAndWait { - - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: ownedIdentity) else { - cancel(withReason: .serverSessionRequired) - return - } - - guard let token = serverSession.token else { - cancel(withReason: .serverSessionHasNoToken) - return - } - - let sessionDelegate = GetTurnCredentialsURLSessionDelegate(ownedIdentity: ownedIdentity, callUuid: callUuid, flowId: flowId, logSubsystem: logSubsystem, tracker: tracker) - let sessionConfiguration = URLSessionConfiguration.ephemeral - let session = URLSession(configuration: sessionConfiguration, delegate: sessionDelegate, delegateQueue: nil) - defer { session.finishTasksAndInvalidate() } - - let method = GetTurnCredentialsServerMethod(ownedIdentity: ownedIdentity, - token: token, - username1: username1, - username2: username2, - flowId: flowId, - identityDelegate: identityDelegate) - - let task: URLSessionDataTask - do { - task = try method.dataTask(within: session) - } catch let error { - return cancel(withReason: .failedToCreateTask(error: error)) - } - task.resume() - - } - - } -} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTurnCredentials/GetTurnCredentialsURLSessionDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTurnCredentials/GetTurnCredentialsURLSessionDelegate.swift deleted file mode 100644 index 1416a40b..00000000 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/GetTurnCredentials/GetTurnCredentialsURLSessionDelegate.swift +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import os.log -import CoreData -import ObvMetaManager -import ObvTypes -import ObvServerInterface -import ObvCrypto -import OlvidUtils - -final class GetTurnCredentialsURLSessionDelegate: NSObject { - - private let uuid = UUID() - private let flowId: FlowIdentifier - private let log: OSLog - private var dataReceived = Data() - private let ownedIdentity: ObvCryptoIdentity - private let callUuid: UUID - private let logCategory = String(describing: GetTurnCredentialsURLSessionDelegate.self) - - private weak var tracker: GetTurnCredentialsTracker? - private(set) var turnCredentials: TurnCredentials? - - enum ErrorForTracker: Error { - case aTaskDidBecomeInvalidWithError(error: Error) - case couldNotParseServerResponse - case generalErrorFromServer - case noOutputAvailable - case invalidSession - case permissionDenied - case wellKnownNotCached - case serverDoesNotSupportCalls - - var localizedDescription: String { - switch self { - case .aTaskDidBecomeInvalidWithError(error: let error): - return "A task did become invalid with error (\(error.localizedDescription)" - case .couldNotParseServerResponse: - return "Could not parse the server response" - case .generalErrorFromServer: - return "The server returned a general error" - case .noOutputAvailable: - return "Internal error" - case .invalidSession: - return "The session is invalid" - case .permissionDenied: - return "Permission denied by server" - case .wellKnownNotCached: - return "Well Known is not cached" - case .serverDoesNotSupportCalls: - return "Server does not support calls" - } - } - } - - // First error "wins" - private var _error: ErrorForTracker? - private var errorForTracker: ErrorForTracker? { - get { _error } - set { - guard _error == nil && newValue != nil else { return } - _error = newValue - } - } - - init(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, flowId: FlowIdentifier, logSubsystem: String, tracker: GetTurnCredentialsTracker) { - self.flowId = flowId - self.ownedIdentity = ownedIdentity - self.callUuid = callUuid - self.log = OSLog(subsystem: logSubsystem, category: logCategory) - self.tracker = tracker - super.init() - } - -} - -protocol GetTurnCredentialsTracker: AnyObject { - func getTurnCredentialsSuccess(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, turnCredentials: TurnCredentials, flowId: FlowIdentifier) - func getTurnCredentialsFailure(ownedIdentity: ObvCryptoIdentity, callUuid: UUID, withError: GetTurnCredentialsURLSessionDelegate.ErrorForTracker, flowId: FlowIdentifier) -} - -// MARK: - URLSessionDataDelegate - -extension GetTurnCredentialsURLSessionDelegate: URLSessionDataDelegate { - - - func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { - dataReceived.append(data) - } - - - func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { - - guard error == nil else { - os_log("The GetTurnCredentialsURLSessionDelegate task failed: %@", log: log, type: .error, error!.localizedDescription) - self.errorForTracker = .aTaskDidBecomeInvalidWithError(error: error!) - return - } - - // If we reach this point, the data task did complete without error - - guard let (status, turnCredentials) = GetTurnCredentialsServerMethod.parseObvServerResponse(responseData: dataReceived, using: log) else { - os_log("Could not parse the server response for the GetTurnCredentialsServerMethod", log: log, type: .fault) - self.errorForTracker = .couldNotParseServerResponse - return - } - - switch status { - case .ok: - assert(self.turnCredentials == nil) - self.turnCredentials = turnCredentials! - os_log("We successfully set new Turn credentials", log: log, type: .info) - - case .invalidSession: - self.errorForTracker = .invalidSession - return - - case .permissionDenied: - self.errorForTracker = .permissionDenied - return - - case .generalError: - os_log("Server reported general error during the GetTurnCredentialsURLSessionDelegate", log: log, type: .fault) - self.errorForTracker = .generalErrorFromServer - return - } - - } - - - func urlSession(_ session: URLSession, didBecomeInvalidWithError error: Error?) { - - let tracker = self.tracker - let flowId = self.flowId - let ownedIdentity = self.ownedIdentity - let callUuid = self.callUuid - - if let turnCredentials = self.turnCredentials { - DispatchQueue(label: "Queue for calling getTurnCredentialsURLSessionDidBecomeInvalid").async { - tracker?.getTurnCredentialsSuccess(ownedIdentity: ownedIdentity, callUuid: callUuid, turnCredentials: turnCredentials, flowId: flowId) - } - } else { - let errorForTracker: ErrorForTracker = self.errorForTracker ?? .noOutputAvailable - DispatchQueue(label: "Queue for calling getTurnCredentialsURLSessionDidBecomeInvalid").async { - tracker?.getTurnCredentialsFailure(ownedIdentity: ownedIdentity, callUuid: callUuid, withError: errorForTracker, flowId: flowId) - } - } - - } - -} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/MessagesCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/MessagesCoordinator.swift index 96c58dd9..d62de4d0 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/MessagesCoordinator.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/MessagesCoordinator.swift @@ -44,14 +44,12 @@ final class MessagesCoordinator: NSObject { }() private var _currentTasks = [UIBackgroundTaskIdentifier: (ownedIdentity: ObvCryptoIdentity, currentDeviceUid: UID, flowId: FlowIdentifier, dataReceived: Data)]() - private var _currentExtendedPayloadDownloadTasks = [Int: (messageId: MessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)]() + private var _currentExtendedPayloadDownloadTasks = [Int: (messageId: ObvMessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)]() private var currentTasksQueue = DispatchQueue(label: "MessagesCoordinator queue for current task") private static func makeError(message: String) -> Error { NSError(domain: "MessagesCoordinator", code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } private func makeError(message: String) -> Error { MessagesCoordinator.makeError(message: message) } - private let queueForCallingDelegate = DispatchQueue(label: "MessagesCoordinator queue for calling delegate methods") - } // MARK: - Synchronized access to the current download tasks @@ -104,7 +102,7 @@ extension MessagesCoordinator { extension MessagesCoordinator { - private func extendedPayloadDownloadTaskExistsFor(_ messageId: MessageIdentifier) -> Bool { + private func extendedPayloadDownloadTaskExistsFor(_ messageId: ObvMessageIdentifier) -> Bool { var exist = true currentTasksQueue.sync { exist = _currentExtendedPayloadDownloadTasks.values.contains(where: { $0.messageId == messageId }) @@ -112,23 +110,23 @@ extension MessagesCoordinator { return exist } - private func removeInfoForExtendedPayloadDownloadTask(_ task: URLSessionTask) -> (messageId: MessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (MessageIdentifier, FlowIdentifier, Data)? = nil + private func removeInfoForExtendedPayloadDownloadTask(_ task: URLSessionTask) -> (messageId: ObvMessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { + var info: (ObvMessageIdentifier, FlowIdentifier, Data)? = nil currentTasksQueue.sync { info = _currentExtendedPayloadDownloadTasks.removeValue(forKey: task.taskIdentifier) } return info } - private func getInfoForExtendedPayloadDownloadTask(_ task: URLSessionTask) -> (messageId: MessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (MessageIdentifier, FlowIdentifier, Data)? = nil + private func getInfoForExtendedPayloadDownloadTask(_ task: URLSessionTask) -> (messageId: ObvMessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { + var info: (ObvMessageIdentifier, FlowIdentifier, Data)? = nil currentTasksQueue.sync { info = _currentExtendedPayloadDownloadTasks[task.taskIdentifier] } return info } - private func insertExtendedPayloadDownloadTask(_ task: URLSessionTask, for messageId: MessageIdentifier, flowId: FlowIdentifier) { + private func insertExtendedPayloadDownloadTask(_ task: URLSessionTask, for messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { currentTasksQueue.sync { _currentExtendedPayloadDownloadTasks[task.taskIdentifier] = (messageId, flowId, Data()) } @@ -187,7 +185,7 @@ extension MessagesCoordinator: MessagesDelegate { } contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: identity) else { + guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: identity) else { syncQueueOutput = .serverSessionRequired return } @@ -227,21 +225,22 @@ extension MessagesCoordinator: MessagesDelegate { case .previousTaskExists: os_log("A running task already exists for identity %@ with flow identifier %{public}@", log: log, type: .debug, identity.debugDescription, flowId.debugDescription) - queueForCallingDelegate.async { + Task { delegateManager.networkFetchFlowDelegate.downloadingMessagesAndListingAttachmentWasNotNeeded(for: identity, andDeviceUid: deviceUid, flowId: flowId) } case .serverSessionRequired: os_log("Server session required for identity %@ with flow identifier %{public}@", log: log, type: .debug, identity.debugDescription, flowId.debugDescription) - queueForCallingDelegate.async { + Task.detached { do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: identity, flowId: flowId) + _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: identity, currentInvalidToken: nil, flowId: flowId) } catch { - os_log("Call serverSessionRequired did fail", log: log, type: .fault) + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) assertionFailure() } } - + return + case .failedToCreateTask(error: let error): if let serverMethodError = error as? ObvServerMethodError { switch serverMethodError { @@ -249,10 +248,18 @@ extension MessagesCoordinator: MessagesDelegate { os_log("Could not create task for ObvServerDownloadMessagesAndListAttachmentsMethod (ownedIdentityIsActiveCheckerDelegateIsNotSet): %{public}@", log: log, type: .error, serverMethodError.localizedDescription) case .ownedIdentityIsNotActive: os_log("Could not create task for ObvServerDownloadMessagesAndListAttachmentsMethod (ownedIdentityIsNotActive): %{public}@", log: log, type: .error, serverMethodError.localizedDescription) - queueForCallingDelegate.async { + Task { delegateManager.networkFetchFlowDelegate.fetchNetworkOperationFailedSinceOwnedIdentityIsNotActive(ownedIdentity: identity, flowId: flowId) } return + case .couldNotParseServerResponse: + os_log("Could not create task for ObvServerDownloadMessagesAndListAttachmentsMethod: %{public}@", log: log, type: .error, serverMethodError.localizedDescription) + case .returnedServerStatusIsInvalid: + os_log("Could not create task for ObvServerDownloadMessagesAndListAttachmentsMethod: %{public}@", log: log, type: .error, serverMethodError.localizedDescription) + case .serverDidNotReturnTheExpectedNumberOfElements: + os_log("Could not create task for ObvServerDownloadMessagesAndListAttachmentsMethod: %{public}@", log: log, type: .error, serverMethodError.localizedDescription) + case .couldNotDecodeElementReturnByServer: + os_log("Could not create task for ObvServerDownloadMessagesAndListAttachmentsMethod: %{public}@", log: log, type: .error, serverMethodError.localizedDescription) } } else { os_log("Could not create task for ObvServerDownloadMessagesAndListAttachmentsMethod: %{public}@", log: log, type: .error, error.localizedDescription) @@ -272,7 +279,7 @@ extension MessagesCoordinator: MessagesDelegate { /// The reason why this method is defined within this coordinator is because this allows to synchronize it with the list of new messages. /// For this method to actually do something, the message and all its attachments must be marked for deletion, i.e., the `canBeDeleted` /// must return `true` when called on the message. - func processMarkForDeletionForMessageAndAttachmentsAndCreatePendingDeleteFromServer(messageId: MessageIdentifier, flowId: FlowIdentifier) throws { + func processMarkForDeletionForMessageAndAttachmentsAndCreatePendingDeleteFromServer(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) throws { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) @@ -303,7 +310,7 @@ extension MessagesCoordinator: MessagesDelegate { } for attachment in message.attachments { - try? attachment.deleteDownload(fromInbox: delegateManager.inbox) + try? attachment.deleteDownload(fromInbox: delegateManager.inbox, within: obvContext) } try? message.deleteAttachmentsDirectory(fromInbox: delegateManager.inbox) @@ -351,7 +358,7 @@ extension MessagesCoordinator: MessagesDelegate { guard idsOfNewMessages.count == 1 else { throw makeError(message: "Could not save message") } } - queueForCallingDelegate.async { [weak self] in + Task { [weak self] in self?.delegateManager?.networkFetchFlowDelegate.aMessageReceivedThroughTheWebsocketWasSavedByTheMessageDelegate(ownedCryptoIdentity: ownedIdentity, flowId: flowId) } @@ -373,7 +380,7 @@ extension MessagesCoordinator { } - func downloadExtendedMessagePayload(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func downloadExtendedMessagePayload(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) @@ -413,7 +420,7 @@ extension MessagesCoordinator { return } - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: messageId.ownedCryptoIdentity) else { + guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: messageId.ownedCryptoIdentity) else { syncQueueOutput = .serverSessionRequired return } @@ -458,15 +465,16 @@ extension MessagesCoordinator { case .serverSessionRequired: os_log("Server session required for identity %@ with flow identifier %{public}@", log: log, type: .debug, messageId.ownedCryptoIdentity.debugDescription, flowId.debugDescription) - queueForCallingDelegate.async { + Task.detached { do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: messageId.ownedCryptoIdentity, flowId: flowId) + _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: messageId.ownedCryptoIdentity, currentInvalidToken: nil, flowId: flowId) } catch { - os_log("Call serverSessionRequired did fail", log: log, type: .fault) + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) assertionFailure() } } - + return + case .failedToCreateTask(error: let error): if let serverMethodError = error as? ObvServerMethodError { switch serverMethodError { @@ -478,6 +486,14 @@ extension MessagesCoordinator { delegateManager.networkFetchFlowDelegate.fetchNetworkOperationFailedSinceOwnedIdentityIsNotActive(ownedIdentity: messageId.ownedCryptoIdentity, flowId: flowId) } return + case .couldNotParseServerResponse: + os_log("Could not create task for ObvServerDownloadMessageExtendedPayloadMethod: %{public}@", log: log, type: .error, serverMethodError.localizedDescription) + case .returnedServerStatusIsInvalid: + os_log("Could not create task for ObvServerDownloadMessageExtendedPayloadMethod: %{public}@", log: log, type: .error, serverMethodError.localizedDescription) + case .serverDidNotReturnTheExpectedNumberOfElements: + os_log("Could not create task for ObvServerDownloadMessageExtendedPayloadMethod: %{public}@", log: log, type: .error, serverMethodError.localizedDescription) + case .couldNotDecodeElementReturnByServer: + os_log("Could not create task for ObvServerDownloadMessageExtendedPayloadMethod: %{public}@", log: log, type: .error, serverMethodError.localizedDescription) } } else { os_log("Could not create task for ObvServerDownloadMessageExtendedPayloadMethod: %{public}@", log: log, type: .error, error.localizedDescription) @@ -542,8 +558,8 @@ extension MessagesCoordinator: URLSessionDataDelegate { guard error == nil else { os_log("The DownloadMessagesAndListAttachmentsCoordinator task failed for identity %{public}@: %{public}@", log: log, type: .error, ownedIdentity.debugDescription, error!.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.downloadingMessagesAndListingAttachmentFailed(for: ownedIdentity, andDeviceUid: deviceUid, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.downloadingMessagesAndListingAttachmentFailed(for: ownedIdentity, andDeviceUid: deviceUid, flowId: flowId) } return } @@ -553,8 +569,8 @@ extension MessagesCoordinator: URLSessionDataDelegate { guard let (status, timestampFromServer, returnedValues) = ObvServerDownloadMessagesAndListAttachmentsMethod.parseObvServerResponse(responseData: responseData, using: log) else { os_log("Could not parse the server response for the ObvServerDownloadMessagesAndListAttachmentsMethod for identity %{public}@", log: log, type: .fault, ownedIdentity.debugDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.downloadingMessagesAndListingAttachmentFailed(for: ownedIdentity, andDeviceUid: deviceUid, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.downloadingMessagesAndListingAttachmentFailed(for: ownedIdentity, andDeviceUid: deviceUid, flowId: flowId) } return } @@ -567,7 +583,7 @@ extension MessagesCoordinator: URLSessionDataDelegate { localQueue.sync { - let idsOfNewMessages: [MessageIdentifier] + let idsOfNewMessages: [ObvMessageIdentifier] do { idsOfNewMessages = try saveMessagesAndAttachmentsFromServer(listOfMessageAndAttachmentsOnServer, downloadTimestampFromServer: downloadTimestampFromServer, @@ -577,8 +593,8 @@ extension MessagesCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save the messages and list of attachments", log: log, type: .fault) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.downloadingMessagesAndListingAttachmentFailed(for: ownedIdentity, andDeviceUid: deviceUid, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.downloadingMessagesAndListingAttachmentFailed(for: ownedIdentity, andDeviceUid: deviceUid, flowId: flowId) } return } @@ -597,26 +613,13 @@ extension MessagesCoordinator: URLSessionDataDelegate { os_log("The session is invalid", log: log, type: .error) contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: ownedIdentity) else { - _ = removeInfoFor(task) - queueForCallingDelegate.async { - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedIdentity, flowId: flowId) - } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() - } - } - return - } - - guard let token = serverSession.token else { + guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: ownedIdentity), let token = serverSession.token else { _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task.detached { do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedIdentity, flowId: flowId) + _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedIdentity, currentInvalidToken: nil, flowId: flowId) } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) assertionFailure() } } @@ -624,11 +627,11 @@ extension MessagesCoordinator: URLSessionDataDelegate { } _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task.detached { do { - try delegateManager.networkFetchFlowDelegate.serverSession(of: ownedIdentity, hasInvalidToken: token, flowId: flowId) + _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedIdentity, currentInvalidToken: token, flowId: flowId) } catch { - os_log("Call to serverSession(of: ObvCryptoIdentity, hasInvalidToken: Data, flowId: FlowIdentifier) did fail", log: log, type: .fault) + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) assertionFailure() } } @@ -647,8 +650,8 @@ extension MessagesCoordinator: URLSessionDataDelegate { case .generalError: os_log("Server reported general error during the ObvServerListMessagesAndAttachmentsMethod download task for identity %@", log: log, type: .fault, ownedIdentity.debugDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.downloadingMessagesAndListingAttachmentFailed(for: ownedIdentity, andDeviceUid: deviceUid, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.downloadingMessagesAndListingAttachmentFailed(for: ownedIdentity, andDeviceUid: deviceUid, flowId: flowId) } return } @@ -715,26 +718,13 @@ extension MessagesCoordinator: URLSessionDataDelegate { os_log("The session is invalid", log: log, type: .error) contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: messageId.ownedCryptoIdentity) else { - _ = removeInfoForExtendedPayloadDownloadTask(task) - queueForCallingDelegate.async { - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: messageId.ownedCryptoIdentity, flowId: flowId) - } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() - } - } - return - } - - guard let token = serverSession.token else { + guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: messageId.ownedCryptoIdentity), let token = serverSession.token else { _ = removeInfoForExtendedPayloadDownloadTask(task) - queueForCallingDelegate.async { + Task.detached { do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: messageId.ownedCryptoIdentity, flowId: flowId) + _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: messageId.ownedCryptoIdentity, currentInvalidToken: nil, flowId: flowId) } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) assertionFailure() } } @@ -742,11 +732,11 @@ extension MessagesCoordinator: URLSessionDataDelegate { } _ = removeInfoForExtendedPayloadDownloadTask(task) - queueForCallingDelegate.async { + Task.detached { do { - try delegateManager.networkFetchFlowDelegate.serverSession(of: messageId.ownedCryptoIdentity, hasInvalidToken: token, flowId: flowId) + _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: messageId.ownedCryptoIdentity, currentInvalidToken: token, flowId: flowId) } catch { - os_log("Call to serverSession(of: ObvCryptoIdentity, hasInvalidToken: Data, flowId: FlowIdentifier) did fail", log: log, type: .fault) + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) assertionFailure() } } @@ -780,7 +770,7 @@ extension MessagesCoordinator: URLSessionDataDelegate { /// When receiving an encrypted extended message payload from the server, we call this method to fetch the message from database, use the decryption key to decrypt the /// extended payload, and store the decrypted payload back to database - private func decryptAndSaveExtendedMessagePayload(messageId: MessageIdentifier, encryptedExtendedMessagePayload: EncryptedData, flowId: FlowIdentifier) throws { + private func decryptAndSaveExtendedMessagePayload(messageId: ObvMessageIdentifier, encryptedExtendedMessagePayload: EncryptedData, flowId: FlowIdentifier) throws { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) @@ -820,7 +810,7 @@ extension MessagesCoordinator: URLSessionDataDelegate { /// If we fail to download an extended message payload (or if we cannot decrypt it), we remove any information about this payload from the database - private func removeExtendedMessagePayload(messageId: MessageIdentifier, flowId: FlowIdentifier) throws { + private func removeExtendedMessagePayload(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) throws { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) @@ -856,7 +846,7 @@ extension MessagesCoordinator: URLSessionDataDelegate { /// This method is used when receiving a list of messages (and their attachments) from the server. It saves each one in the `InboxMessage` database. It returns the `MessageIdentifier` of all the messages it manages to save. - private func saveMessagesAndAttachmentsFromServer(_ listOfMessageAndAttachmentsOnServer: [ObvServerDownloadMessagesAndListAttachmentsMethod.MessageAndAttachmentsOnServer], downloadTimestampFromServer: Date, localDownloadTimestamp: Date, ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) throws -> [MessageIdentifier] { + private func saveMessagesAndAttachmentsFromServer(_ listOfMessageAndAttachmentsOnServer: [ObvServerDownloadMessagesAndListAttachmentsMethod.MessageAndAttachmentsOnServer], downloadTimestampFromServer: Date, localDownloadTimestamp: Date, ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) throws -> [ObvMessageIdentifier] { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) @@ -871,13 +861,13 @@ extension MessagesCoordinator: URLSessionDataDelegate { throw makeError(message: "The context creator manager is not set") } - var idsOfNewMessages = [MessageIdentifier]() + var idsOfNewMessages = [ObvMessageIdentifier]() try contextCreator.performBackgroundTaskAndWaitOrThrow(flowId: flowId) { (obvContext) in for messageAndAttachmentsOnServer in listOfMessageAndAttachmentsOnServer { - let messageId = MessageIdentifier(ownedCryptoIdentity: ownedIdentity, uid: messageAndAttachmentsOnServer.messageUidFromServer) + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: ownedIdentity, uid: messageAndAttachmentsOnServer.messageUidFromServer) // Check that the message does not already exist in DB do { diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/NetworkFetchFlowCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/NetworkFetchFlowCoordinator.swift index 4b987b08..14001761 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/NetworkFetchFlowCoordinator.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/NetworkFetchFlowCoordinator.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,16 +26,19 @@ import ObvMetaManager import ObvEncoder import Network import OlvidUtils +import ObvServerInterface final class NetworkFetchFlowCoordinator: NetworkFetchFlowDelegate, ObvErrorMaker { - fileprivate let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem - fileprivate let logCategory = "NetworkFetchFlowCoordinator" - + private static let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem + private static let logCategory = "NetworkFetchFlowCoordinator" + private static var log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) + private let queueForPostingNotifications = DispatchQueue(label: "NetworkFetchFlowCoordinator queue for notifications") private let internalQueue = OperationQueue.createSerialQueue(name: "NetworkFetchFlowCoordinator internal operation queue") private let syncQueue = DispatchQueue(label: "NetworkFetchFlowCoordinator internal queue") + private let nwPathMonitor = NWPathMonitor() weak var delegateManager: ObvNetworkFetchDelegateManager? @@ -48,12 +51,13 @@ final class NetworkFetchFlowCoordinator: NetworkFetchFlowDelegate, ObvErrorMaker private var retryManager = FetchRetryManager() private let prng: PRNGService - init(prng: PRNGService) { + init(prng: PRNGService, logPrefix: String) { self.prng = prng + let logSubsystem = "\(logPrefix).\(Self.defaultLogSubsystem)" + Self.log = OSLog(subsystem: logSubsystem, category: Self.logCategory) monitorNetworkChanges() } - private var nwPathMonitor: NWPathMonitor? } @@ -62,9 +66,8 @@ final class NetworkFetchFlowCoordinator: NetworkFetchFlowDelegate, ObvErrorMaker extension NetworkFetchFlowCoordinator { func updatedListOfOwnedIdentites(ownedIdentities: Set, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -76,111 +79,59 @@ extension NetworkFetchFlowCoordinator { // MARK: - Session's Challenge/Response/Token related methods - func resetServerSession(for identity: ObvCryptoIdentity, within obvContext: ObvContext) throws { - try ServerSession.deleteAllSessionsOfIdentity(identity, within: obvContext) - try obvContext.addContextDidSaveCompletionHandler { [weak self] (error) in - guard error == nil else { return } - try? self?.serverSessionRequired(for: identity, flowId: obvContext.flowId) - } - } - - func serverSessionRequired(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) throws { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } - failedAttemptsCounterManager.reset(counter: .sessionCreation(ownedIdentity: identity)) - - try delegateManager.getAndSolveChallengeDelegate.getAndSolveChallenge(forIdentity: identity, - currentInvalidToken: nil, - discardExistingToken: false, - flowId: flowId) - } - - - func serverSession(of identity: ObvCryptoIdentity, hasInvalidToken invalidToken: Data, flowId: FlowIdentifier) throws { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } - failedAttemptsCounterManager.reset(counter: .sessionCreation(ownedIdentity: identity)) - try delegateManager.getAndSolveChallengeDelegate.getAndSolveChallenge(forIdentity: identity, - currentInvalidToken: invalidToken, - discardExistingToken: false, - flowId: flowId) - } - + func refreshAPIPermissions(of ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> APIKeyElements { - func getAndSolveChallengeWasNotNeeded(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) { - // We do nothing - } - - - func failedToGetOrSolveChallenge(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) { - let delay = failedAttemptsCounterManager.incrementAndGetDelay(.sessionCreation(ownedIdentity: identity)) - retryManager.executeWithDelay(delay) { [weak self] in - try? self?.delegateManager?.getAndSolveChallengeDelegate.getAndSolveChallenge(forIdentity: identity, - currentInvalidToken: nil, - discardExistingToken: false, - flowId: flowId) + guard let delegateManager else { + assertionFailure() + throw Self.makeError(message: "The delegate manager is not set") } + + try await delegateManager.serverSessionDelegate.deleteServerSession(of: ownedCryptoIdentity, flowId: flowId) + + let (_, apiKeyElements) = try await getValidServerSessionToken(for: ownedCryptoIdentity, currentInvalidToken: nil, flowId: flowId) + + return apiKeyElements + } - func newChallengeResponse(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) throws { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return + func getValidServerSessionToken(for ownedCryptoIdentity: ObvCryptoIdentity, currentInvalidToken: Data?, flowId: FlowIdentifier) async throws -> (serverSessionToken: Data, apiKeyElements: APIKeyElements) { + guard let delegateManager else { + assertionFailure() + throw Self.makeError(message: "The delegate manager is not set") } - failedAttemptsCounterManager.reset(counter: .sessionCreation(ownedIdentity: identity)) - try delegateManager.getTokenDelegate.getToken(for: identity, flowId: flowId) + let (serverSessionToken, apiKeyElements) = try await delegateManager.serverSessionDelegate.getValidServerSessionToken(for: ownedCryptoIdentity, currentInvalidToken: currentInvalidToken, flowId: flowId) + + newToken(serverSessionToken, for: ownedCryptoIdentity, flowId: flowId) + newAPIKeyElementsForCurrentAPIKeyOf(ownedCryptoIdentity, apiKeyStatus: apiKeyElements.status, apiPermissions: apiKeyElements.permissions, apiKeyExpirationDate: apiKeyElements.expirationDate, flowId: flowId) + + return (serverSessionToken, apiKeyElements) } - - func getTokenWasNotNeeded(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) { - // We do nothing - } - - func failedToGetToken(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) { - let delay = failedAttemptsCounterManager.incrementAndGetDelay(.sessionCreation(ownedIdentity: identity)) - retryManager.executeWithDelay(delay) { [weak self] in - try? self?.delegateManager?.getTokenDelegate.getToken(for: identity, flowId: flowId) - } - } - - - func newToken(_ token: Data, for identity: ObvCryptoIdentity, flowId: FlowIdentifier) { + private func newToken(_ token: Data, for identity: ObvCryptoIdentity, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator is not set", log: log, type: .fault) + os_log("The context creator is not set", log: Self.log, type: .fault) + assertionFailure() return } guard let identityDelegate = delegateManager.identityDelegate else { - os_log("The identity delegate is not set", log: log, type: .fault) + os_log("The identity delegate is not set", log: Self.log, type: .fault) + assertionFailure() return } - + failedAttemptsCounterManager.reset(counter: .sessionCreation(ownedIdentity: identity)) contextCreator.performBackgroundTask(flowId: flowId) { (obvContext) in - // We process any pending receipt validation and any pending Free trial query - delegateManager.verifyReceiptDelegate?.verifyReceiptsExpectingNewSesssion() - delegateManager.freeTrialQueryDelegate?.processFreeTrialQueriesExpectingNewSession() - // We relaunch incomplete attachments delegateManager.downloadAttachmentChunksDelegate.resumeMissingAttachmentDownloads(flowId: flowId) @@ -194,202 +145,181 @@ extension NetworkFetchFlowCoordinator { let deviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(identity, within: obvContext) delegateManager.messagesDelegate.downloadMessagesAndListAttachments(for: identity, andDeviceUid: deviceUid, flowId: flowId) } catch { - os_log("Could not call downloadMessagesAndListAttachments", log: log, type: .fault) + os_log("Could not call downloadMessagesAndListAttachments", log: Self.log, type: .fault) } - // We re-subscribe to push notifications - for pushNotificationType in ObvPushNotificationType.ByteId.allCases { - do { - try delegateManager.serverPushNotificationsDelegate.processServerPushNotificationsToRegister( - ownedCryptoId: identity, - pushNotificationType: pushNotificationType, - flowId: flowId) - } catch { - assertionFailure() - os_log("Could not call processServerPushNotificationsToRegister", log: log, type: .fault) - } - } - - // We pass the token to the WebSocket coordinator + // We pass the token to the WebSocket coordinator, this will allow re-scheduled tasks to be executed Task { await delegateManager.webSocketDelegate.setServerSessionToken(to: token, for: identity) } } } - - func newAPIKeyElementsForAPIKey(serverURL: URL, apiKey: UUID, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?, flowId: FlowIdentifier) { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) - return - } - - ObvNetworkFetchNotificationNew.newAPIKeyElementsForAPIKey(serverURL: serverURL, - apiKey: apiKey, - apiKeyStatus: apiKeyStatus, - apiPermissions: apiPermissions, - apiKeyExpirationDate: apiKeyExpirationDate) - .postOnBackgroundQueue(queueForPostingNotifications, within: notificationDelegate) - - } - - - func apiKeyStatusQueryFailed(ownedIdentity: ObvCryptoIdentity, apiKey: UUID) { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) - return - } - - ObvNetworkFetchNotificationNew.apiKeyStatusQueryFailed(ownedIdentity: ownedIdentity, apiKey: apiKey) - .postOnBackgroundQueue(queueForPostingNotifications, within: notificationDelegate) - } - - func verifyReceipt(ownedCryptoIdentities: [ObvCryptoIdentity], receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier) { + func verifyReceiptAndRefreshAPIPermissions(appStoreReceiptElements: ObvAppStoreReceipt, flowId: FlowIdentifier) async throws -> [ObvCryptoIdentity : ObvAppStoreReceipt.VerificationStatus] { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() - return + throw Self.makeError(message: "The Delegate Manager is not set") } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let verifyReceiptDelegate = delegateManager.verifyReceiptDelegate else { - os_log("The verifyReceiptDelegate delegate is not set", log: log, type: .fault) + os_log("The verifyReceiptDelegate delegate is not set", log: Self.log, type: .fault) assertionFailure() - return + throw Self.makeError(message: "The verifyReceiptDelegate delegate is not set") } - - verifyReceiptDelegate.verifyReceipt(ownedCryptoIdentities: ownedCryptoIdentities, receiptData: receiptData, transactionIdentifier: transactionIdentifier, flowId: flowId) - - } - func newAPIKeyElementsForCurrentAPIKeyOf(_ ownedIdentity: ObvCryptoIdentity, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?, flowId: FlowIdentifier) { + let receiptVerificationResults = try await verifyReceiptDelegate.verifyReceipt(appStoreReceiptElements: appStoreReceiptElements, flowId: flowId) - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return + for result in receiptVerificationResults { + switch result.value { + case .failed: + break + case .succeededAndSubscriptionIsValid, .succeededButSubscriptionIsExpired: + _ = try await refreshAPIPermissions(of: result.key, flowId: flowId) + } } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) + return receiptVerificationResults - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) - return + } + + + enum ObvError: LocalizedError { + case theDelegateManagerIsNotSet + case theIdentityDelegateIsNotSet + case invalidServerResponse + case serverReturnedGeneralError + + var errorDescription: String? { + switch self { + case .theDelegateManagerIsNotSet: + return "The delegate manager is not set" + case .theIdentityDelegateIsNotSet: + return "The identity delegate is not set" + case .invalidServerResponse: + return "Invalid server response" + case .serverReturnedGeneralError: + return "The server returned a general error" + } } - - ObvNetworkFetchNotificationNew.newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(ownedIdentity: ownedIdentity, - apiKeyStatus: apiKeyStatus, - apiPermissions: apiPermissions, - apiKeyExpirationDate: apiKeyExpirationDate) - .postOnBackgroundQueue(queueForPostingNotifications, within: notificationDelegate) - } - func newFreeTrialAPIKeyForOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) { + func queryAPIKeyStatus(for ownedCryptoIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) async throws -> APIKeyElements { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return + let method = QueryApiKeyStatusServerMethod(ownedIdentity: ownedCryptoIdentity, apiKey: apiKey, flowId: flowId) + let (data, response) = try await URLSession.shared.data(for: method.getURLRequest()) + + guard let httpResponse = response as? HTTPURLResponse, + httpResponse.statusCode == 200 else { + throw ObvError.invalidServerResponse } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) + let result = QueryApiKeyStatusServerMethod.parseObvServerResponse(responseData: data, using: Self.log) - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) - return + switch result { + case .failure: + throw ObvError.invalidServerResponse + case .success(let serverReturnStatus): + switch serverReturnStatus { + case .generalError: + throw ObvError.serverReturnedGeneralError + case .ok(apiKeyElements: let apiKeyElements): + return apiKeyElements + } } - - ObvNetworkFetchNotificationNew.newFreeTrialAPIKeyForOwnedIdentity(ownedIdentity: ownedIdentity, apiKey: apiKey, flowId: flowId) - .postOnBackgroundQueue(queueForPostingNotifications, within: notificationDelegate) + } - func noMoreFreeTrialAPIKeyAvailableForOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } + + func registerOwnedAPIKeyOnServerNow(ownedCryptoIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) async throws -> ObvRegisterApiKeyResult { - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) + assertionFailure() + throw ObvError.theDelegateManagerIsNotSet + } - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) - return + guard let identityDelegate = delegateManager.identityDelegate else { + os_log("The identity delegate is not set", log: Self.log, type: .fault) + assertionFailure() + throw ObvError.theIdentityDelegateIsNotSet + } + + let serverSessionToken = try await getValidServerSessionToken(for: ownedCryptoIdentity, currentInvalidToken: nil, flowId: flowId).serverSessionToken + + let method = ObvRegisterAPIKeyServerMethod(ownedIdentity: ownedCryptoIdentity, serverSessionToken: serverSessionToken, apiKey: apiKey, identityDelegate: identityDelegate, flowId: flowId) + let (data, response) = try await URLSession.shared.data(for: method.getURLRequest()) + + guard let httpResponse = response as? HTTPURLResponse, + httpResponse.statusCode == 200 else { + throw ObvError.invalidServerResponse + } + + let result = ObvRegisterAPIKeyServerMethod.parseObvServerResponse(responseData: data, using: Self.log) + + switch result { + case .failure(let error): + os_log("The call to ObvRegisterAPIKeyServerMethod did fail: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + return .failed + case .success(let serverReturnStatus): + switch serverReturnStatus { + case .ok: + // After registering a new API key on the server, we force the refresh of the session to make sure the API keys elements (permissions) are refreshed + _ = try? await getValidServerSessionToken(for: ownedCryptoIdentity, currentInvalidToken: serverSessionToken, flowId: flowId) + return .success + case .invalidSession: + _ = try await getValidServerSessionToken(for: ownedCryptoIdentity, currentInvalidToken: serverSessionToken, flowId: flowId) + return try await registerOwnedAPIKeyOnServerNow(ownedCryptoIdentity: ownedCryptoIdentity, apiKey: apiKey, flowId: flowId) + case .invalidAPIKey: + return .invalidAPIKey + case .generalError: + return .failed + } } - - ObvNetworkFetchNotificationNew.noMoreFreeTrialAPIKeyAvailableForOwnedIdentity(ownedIdentity: ownedIdentity, flowId: flowId) - .postOnBackgroundQueue(queueForPostingNotifications, within: notificationDelegate) + } - func freeTrialIsStillAvailableForOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + private func newAPIKeyElementsForCurrentAPIKeyOf(_ ownedIdentity: ObvCryptoIdentity, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?, flowId: FlowIdentifier) { + + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) return } - ObvNetworkFetchNotificationNew.freeTrialIsStillAvailableForOwnedIdentity(ownedIdentity: ownedIdentity, flowId: flowId) + ObvNetworkFetchNotificationNew.newAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(ownedIdentity: ownedIdentity, + apiKeyStatus: apiKeyStatus, + apiPermissions: apiPermissions, + apiKeyExpirationDate: apiKeyExpirationDate) .postOnBackgroundQueue(queueForPostingNotifications, within: notificationDelegate) - } + } + // MARK: - Downloading message and listing attachments - func downloadingMessagesAndListingAttachmentFailed(for ownedCryptoIdentity: ObvCryptoIdentity, andDeviceUid deviceUid: UID, flowId: FlowIdentifier) { + func downloadingMessagesAndListingAttachmentFailed(for ownedCryptoIdentity: ObvCryptoIdentity, andDeviceUid deviceUid: UID, flowId: FlowIdentifier) async { let delay = failedAttemptsCounterManager.incrementAndGetDelay(.downloadMessagesAndListAttachments(ownedIdentity: ownedCryptoIdentity)) - retryManager.executeWithDelay(delay) { [weak self] in - self?.delegateManager?.messagesDelegate.downloadMessagesAndListAttachments(for: ownedCryptoIdentity, andDeviceUid: deviceUid, flowId: flowId) - } + await retryManager.waitForDelay(milliseconds: delay) + delegateManager?.messagesDelegate.downloadMessagesAndListAttachments(for: ownedCryptoIdentity, andDeviceUid: deviceUid, flowId: flowId) } func downloadingMessagesAndListingAttachmentWasNotNeeded(for ownedCryptoIdentity: ObvCryptoIdentity, andDeviceUid deviceUid: UID, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - // Although we did not find any new message on the server, we might still have unprocessed messages to process. - os_log("Downloading messages was not needed. We still try to process (old) unprocessed messages", log: log, type: .info) + os_log("Downloading messages was not needed. We still try to process (old) unprocessed messages", log: Self.log, type: .info) processUnprocessedMessages(ownedCryptoIdentity: ownedCryptoIdentity, flowId: flowId) } @@ -410,26 +340,23 @@ extension NetworkFetchFlowCoordinator { assert(!Thread.isMainThread) - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) return } guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator is not set", log: log, type: .fault) + os_log("The context creator is not set", log: Self.log, type: .fault) return } guard let processDownloadedMessageDelegate = delegateManager.processDownloadedMessageDelegate else { - os_log("The processDownloadedMessageDelegate is not set", log: log, type: .fault) + os_log("The processDownloadedMessageDelegate is not set", log: Self.log, type: .fault) return } @@ -438,7 +365,7 @@ extension NetworkFetchFlowCoordinator { syncQueue.async { - os_log("Processing unprocessed messages within flow %{public}@", log: log, type: .debug, flowId.debugDescription) + os_log("Processing unprocessed messages within flow %{public}@", log: Self.log, type: .debug, flowId.debugDescription) var moreUnprocessedMessagesRemain = true var maxNumberOfOperations = 1_000 @@ -448,25 +375,25 @@ extension NetworkFetchFlowCoordinator { maxNumberOfOperations -= 1 assert(maxNumberOfOperations > 0, "May happen if there were many unprocessed messages. But this is unlikely and should be investigated.") - os_log("Initializing a ProcessBatchOfUnprocessedMessagesOperation (maxNumberOfOperations is %d)", log: log, type: .info, maxNumberOfOperations) + os_log("Initializing a ProcessBatchOfUnprocessedMessagesOperation (maxNumberOfOperations is %d)", log: Self.log, type: .info, maxNumberOfOperations) let op1 = ProcessBatchOfUnprocessedMessagesOperation(ownedCryptoIdentity: ownedCryptoIdentity, queueForPostingNotifications: queueForPostingNotifications, notificationDelegate: notificationDelegate, processDownloadedMessageDelegate: processDownloadedMessageDelegate, - log: log) + log: Self.log) let queueForComposedOperations = OperationQueue.createSerialQueue() - let composedOp = CompositionOfOneContextualOperation(op1: op1, contextCreator: contextCreator, queueForComposedOperations: queueForComposedOperations, log: log, flowId: flowId) + let composedOp = CompositionOfOneContextualOperation(op1: op1, contextCreator: contextCreator, queueForComposedOperations: queueForComposedOperations, log: Self.log, flowId: flowId) internalQueue.addOperations([composedOp], waitUntilFinished: true) - composedOp.logReasonIfCancelled(log: log) + composedOp.logReasonIfCancelled(log: Self.log) if composedOp.isCancelled { - os_log("The ProcessBatchOfUnprocessedMessagesOperation cancelled: %{public}@", log: log, type: .fault, composedOp.reasonForCancel?.localizedDescription ?? "No reason given") + os_log("The ProcessBatchOfUnprocessedMessagesOperation cancelled: %{public}@", log: Self.log, type: .fault, composedOp.reasonForCancel?.localizedDescription ?? "No reason given") assertionFailure(composedOp.reasonForCancel.debugDescription) moreUnprocessedMessagesRemain = false } else { - os_log("The ProcessBatchOfUnprocessedMessagesOperation succeeded", log: log, type: .info) + os_log("The ProcessBatchOfUnprocessedMessagesOperation succeeded", log: Self.log, type: .info) moreUnprocessedMessagesRemain = op1.moreUnprocessedMessagesRemain ?? false if moreUnprocessedMessagesRemain { - os_log("More unprocessed messages remain", log: log, type: .info) + os_log("More unprocessed messages remain", log: Self.log, type: .info) } } @@ -476,18 +403,15 @@ extension NetworkFetchFlowCoordinator { } - func messagePayloadAndFromIdentityWereSet(messageId: MessageIdentifier, attachmentIds: [AttachmentIdentifier], hasEncryptedExtendedMessagePayload: Bool, flowId: FlowIdentifier) { + func messagePayloadAndFromIdentityWereSet(messageId: ObvMessageIdentifier, attachmentIds: [ObvAttachmentIdentifier], hasEncryptedExtendedMessagePayload: Bool, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) return } @@ -501,18 +425,15 @@ extension NetworkFetchFlowCoordinator { // MARK: - Message's extended content related methods - func downloadingMessageExtendedPayloadFailed(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func downloadingMessageExtendedPayloadFailed(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) return } @@ -522,18 +443,15 @@ extension NetworkFetchFlowCoordinator { } - func downloadingMessageExtendedPayloadWasPerformed(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func downloadingMessageExtendedPayloadWasPerformed(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) return } @@ -545,24 +463,22 @@ extension NetworkFetchFlowCoordinator { // MARK: - Attachment's related methods - func resumeDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + func resumeDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, forceResume: Bool, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - delegateManager.downloadAttachmentChunksDelegate.resumeDownloadOfAttachment(attachmentId: attachmentId, flowId: flowId) + delegateManager.downloadAttachmentChunksDelegate.resumeDownloadOfAttachment(attachmentId: attachmentId, forceResume: forceResume, flowId: flowId) } - func pauseDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + func pauseDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } @@ -570,11 +486,10 @@ extension NetworkFetchFlowCoordinator { } - func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async throws -> [AttachmentIdentifier: Float] { + func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async throws -> [ObvAttachmentIdentifier: Float] { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) throw Self.makeError(message: "The Delegate Manager is not set") } @@ -582,18 +497,15 @@ extension NetworkFetchFlowCoordinator { } - func attachmentWasCancelledByServer(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + func attachmentWasCancelledByServer(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) return } @@ -602,15 +514,13 @@ extension NetworkFetchFlowCoordinator { } - func attachmentWasDownloaded(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + func attachmentWasDownloaded(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) return } ObvNetworkFetchNotificationNew.inboxAttachmentWasDownloaded(attachmentId: attachmentId, flowId: flowId) @@ -623,20 +533,17 @@ extension NetworkFetchFlowCoordinator { /// Called when a `PendingDeleteFromServer` was just created in DB. This also means that the message and its attachments have been deleted /// from the local inbox. - func newPendingDeleteToProcessForMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func newPendingDeleteToProcessForMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - do { try delegateManager.deleteMessageAndAttachmentsFromServerDelegate.processPendingDeleteFromServer(messageId: messageId, flowId: flowId) } catch { - os_log("Could not process pending delete from server", log: log, type: .fault) + os_log("Could not process pending delete from server", log: Self.log, type: .fault) assertionFailure() return } @@ -644,33 +551,27 @@ extension NetworkFetchFlowCoordinator { } - func failedToProcessPendingDeleteFromServer(messageId: MessageIdentifier, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + func failedToProcessPendingDeleteFromServer(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) async { + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - os_log("We could not delete message %{public}@ within flow %{public}@", log: log, type: .fault, messageId.debugDescription, flowId.debugDescription) + os_log("We could not delete message %{public}@ within flow %{public}@", log: Self.log, type: .fault, messageId.debugDescription, flowId.debugDescription) let delay = failedAttemptsCounterManager.incrementAndGetDelay(.processPendingDeleteFromServer(messageId: messageId)) - retryManager.executeWithDelay(delay) { - try? delegateManager.deleteMessageAndAttachmentsFromServerDelegate.processPendingDeleteFromServer(messageId: messageId, flowId: flowId) - } + await retryManager.waitForDelay(milliseconds: delay) + try? delegateManager.deleteMessageAndAttachmentsFromServerDelegate.processPendingDeleteFromServer(messageId: messageId, flowId: flowId) } - func messageAndAttachmentsWereDeletedFromServerAndInboxes(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func messageAndAttachmentsWereDeletedFromServerAndInboxes(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) return } @@ -683,96 +584,18 @@ extension NetworkFetchFlowCoordinator { // MARK: - Push notification's related methods - func serverReportedThatAnotherDeviceIsAlreadyRegistered(forOwnedIdentity ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { - - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - - guard let delegateManager = delegateManager else { - os_log("The Delegate Manager is not set", log: log, type: .fault) - assertionFailure() - return - } - - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) - return - } - - // Post a serverReportedThatAnotherDeviceIsAlreadyRegistered notification (this will allow the identity manager to deactiviate the owned identity) - ObvNetworkFetchNotificationNew.serverReportedThatAnotherDeviceIsAlreadyRegistered(ownedIdentity: ownedIdentity, flowId: flowId) - .postOnBackgroundQueue(queueForPostingNotifications, within: notificationDelegate) - - } - - func serverReportedThatThisDeviceWasSuccessfullyRegistered(forOwnedIdentity ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { - - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - - guard let delegateManager = delegateManager else { - os_log("The Delegate Manager is not set", log: log, type: .fault) - assertionFailure() - return - } - - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) - return - } - - ObvNetworkFetchNotificationNew.serverReportedThatThisDeviceWasSuccessfullyRegistered(ownedIdentity: ownedIdentity, flowId: flowId) - .postOnBackgroundQueue(queueForPostingNotifications, within: notificationDelegate) - - // We might have missed push notifications during the registration process, so we list and download messages now - - guard let contextCreator = delegateManager.contextCreator else { - os_log("The context creator is not set", log: log, type: .fault) - return - } - - guard let identityDelegate = delegateManager.identityDelegate else { - os_log("The identity delegate is not set", log: log, type: .fault) - return - } - - contextCreator.performBackgroundTask(flowId: flowId) { (obvContext) in - - // We relaunch incomplete attachments - delegateManager.downloadAttachmentChunksDelegate.resumeMissingAttachmentDownloads(flowId: flowId) - - guard let identities = try? identityDelegate.getOwnedIdentities(within: obvContext) else { - os_log("Could not get owned identities", log: log, type: .fault) - assertionFailure() - return - } - - // We download new messages and list their attachments - for identity in identities { - do { - let deviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(identity, within: obvContext) - delegateManager.messagesDelegate.downloadMessagesAndListAttachments(for: identity, andDeviceUid: deviceUid, flowId: flowId) - } catch { - os_log("Could not call downloadMessagesAndListAttachments", log: log, type: .fault) - } - } - - } - } - - func serverReportedThatThisDeviceIsNotRegistered(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) + os_log("We need to re-register to push notifications since the server reported that this device is not registered", log: Self.log, type: .info) - os_log("We need to re-register to push notifications since the server reported that this device is not registered", log: log, type: .info) - - guard let delegateManager = delegateManager else { - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) return } @@ -784,16 +607,14 @@ extension NetworkFetchFlowCoordinator { func fetchNetworkOperationFailedSinceOwnedIdentityIsNotActive(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - - guard let delegateManager = delegateManager else { - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() return } guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) return } @@ -806,9 +627,8 @@ extension NetworkFetchFlowCoordinator { func post(_ serverQuery: ServerQuery, within context: ObvContext) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The delegate manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The delegate manager is not set", log: Self.log, type: .fault) return } @@ -817,44 +637,48 @@ extension NetworkFetchFlowCoordinator { } - func newPendingServerQueryToProcessWithObjectId(_ pendingServerQueryObjectId: NSManagedObjectID, flowId: FlowIdentifier) { + /// Called when a `PendingServerQuery` is inserted in database. + func newPendingServerQueryToProcessWithObjectId(_ pendingServerQueryObjectId: NSManagedObjectID, isWebSocket: Bool, flowId: FlowIdentifier) async { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - delegateManager.serverQueryDelegate.postServerQuery(withObjectId: pendingServerQueryObjectId, flowId: flowId) + if isWebSocket { + do { + try await delegateManager.serverQueryWebSocketDelegate.handleServerQuery(pendingServerQueryObjectId: pendingServerQueryObjectId, flowId: flowId) + } catch { + assertionFailure(error.localizedDescription) + } + } else { + delegateManager.serverQueryDelegate.postServerQuery(withObjectId: pendingServerQueryObjectId, flowId: flowId) + } } - func failedToProcessServerQuery(withObjectId objectId: NSManagedObjectID, flowId: FlowIdentifier) { + func failedToProcessServerQuery(withObjectId objectId: NSManagedObjectID, flowId: FlowIdentifier) async { let delay = failedAttemptsCounterManager.incrementAndGetDelay(.serverQuery(objectID: objectId)) - retryManager.executeWithDelay(delay) { [weak self] in - self?.delegateManager?.serverQueryDelegate.postServerQuery(withObjectId: objectId, flowId: flowId) - } + await retryManager.waitForDelay(milliseconds: delay) + delegateManager?.serverQueryDelegate.postServerQuery(withObjectId: objectId, flowId: flowId) } func successfullProcessOfServerQuery(withObjectId objectId: NSManagedObjectID, flowId: FlowIdentifier) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let contextCreator = delegateManager.contextCreator else { - os_log("The Context Creator is not set", log: log, type: .fault) + os_log("The Context Creator is not set", log: Self.log, type: .fault) return } guard let channelDelegate = delegateManager.channelDelegate else { - os_log("The channel delegate is not set", log: log, type: .fault) + os_log("The channel delegate is not set", log: Self.log, type: .fault) return } @@ -862,17 +686,22 @@ extension NetworkFetchFlowCoordinator { let prng = self.prng contextCreator.performBackgroundTask(flowId: flowId) { (obvContext) in - + let serverQuery: PendingServerQuery do { - serverQuery = try PendingServerQuery.get(objectId: objectId, delegateManager: delegateManager, within: obvContext) + guard let _serverQuery = try PendingServerQuery.get(objectId: objectId, delegateManager: delegateManager, within: obvContext) else { + os_log("Could not find pending server query in database", log: Self.log, type: .error) + return + } + serverQuery = _serverQuery } catch { - os_log("Could not find pending server query in database", log: log, type: .fault) + os_log("Could not fetch pending server query in database: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() return } guard let serverResponseType = serverQuery.responseType else { - os_log("The server response type is not set", log: log, type: .fault) + os_log("The server response type is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -901,6 +730,20 @@ extension NetworkFetchFlowCoordinator { channelServerResponseType = ObvChannelServerResponseMessageToSend.ResponseType.updateGroupBlob(uploadResult: uploadResult) case .getKeycloakData(result: let result): channelServerResponseType = ObvChannelServerResponseMessageToSend.ResponseType.getKeycloakData(result: result) + case .ownedDeviceDiscovery(encryptedOwnedDeviceDiscoveryResult: let encryptedOwnedDeviceDiscoveryResult): + channelServerResponseType = ObvChannelServerResponseMessageToSend.ResponseType.ownedDeviceDiscovery(encryptedOwnedDeviceDiscoveryResult: encryptedOwnedDeviceDiscoveryResult) + case .setOwnedDeviceName(success: let success): + channelServerResponseType = ObvChannelServerResponseMessageToSend.ResponseType.setOwnedDeviceName(success: success) + case .sourceGetSessionNumberMessage(result: let result): + channelServerResponseType = ObvChannelServerResponseMessageToSend.ResponseType.sourceGetSessionNumberMessage(result: result) + case .targetSendEphemeralIdentity(result: let result): + channelServerResponseType = ObvChannelServerResponseMessageToSend.ResponseType.targetSendEphemeralIdentity(result: result) + case .transferRelay(result: let result): + channelServerResponseType = ObvChannelServerResponseMessageToSend.ResponseType.transferRelay(result: result) + case .transferWait(result: let result): + channelServerResponseType = ObvChannelServerResponseMessageToSend.ResponseType.transferWait(result: result) + case .sourceWaitForTargetConnection(result: let result): + channelServerResponseType = ObvChannelServerResponseMessageToSend.ResponseType.sourceWaitForTargetConnection(result: result) } let aResponseMessageShouldBePosted: Bool @@ -913,42 +756,44 @@ extension NetworkFetchFlowCoordinator { aResponseMessageShouldBePosted = true } + guard let ownedCryptoIdentity = try? serverQuery.ownedIdentity else { + assertionFailure() + serverQuery.deletePendingServerQuery(within: obvContext) + try? obvContext.save(logOnFailure: Self.log) + return + } + if aResponseMessageShouldBePosted { let serverTimestamp = Date() - let responseMessage = ObvChannelServerResponseMessageToSend(toOwnedIdentity: serverQuery.ownedIdentity, + let responseMessage = ObvChannelServerResponseMessageToSend(toOwnedIdentity: ownedCryptoIdentity, serverTimestamp: serverTimestamp, responseType: channelServerResponseType, encodedElements: serverQuery.encodedElements, flowId: flowId) do { - _ = try channelDelegate.post(responseMessage, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(responseMessage, randomizedWith: prng, within: obvContext) } catch { - os_log("Could not process response to server query", log: log, type: .fault) + os_log("Could not process response to server query", log: Self.log, type: .fault) return } } - serverQuery.delete(flowId: flowId) + serverQuery.deletePendingServerQuery(within: obvContext) - try? obvContext.save(logOnFailure: log) + try? obvContext.save(logOnFailure: Self.log) } } - func pendingServerQueryWasDeletedFromDatabase(objectId: NSManagedObjectID, flowId: FlowIdentifier) { - - } - // MARK: Handling with user data - func failedToProcessServerUserData(input: ServerUserDataInput, flowId: FlowIdentifier) { + func failedToProcessServerUserData(input: ServerUserDataInput, flowId: FlowIdentifier) async { let delay = failedAttemptsCounterManager.incrementAndGetDelay(.serverUserData(input: input)) - retryManager.executeWithDelay(delay) { [weak self] in - self?.delegateManager?.serverUserDataDelegate.postUserData(input: input, flowId: flowId) - } + await retryManager.waitForDelay(milliseconds: delay) + delegateManager?.serverUserDataDelegate.postUserData(input: input, flowId: flowId) } // MARK: - Forwarding urlSessionDidFinishEvents(forBackgroundURLSession session: URLSession) and notifying successfull/failed listing (for performing fetchCompletionHandlers within the engine) @@ -959,9 +804,8 @@ extension NetworkFetchFlowCoordinator { // MARK: - Monitor Network Path Status private func monitorNetworkChanges() { - nwPathMonitor = NWPathMonitor() - nwPathMonitor?.start(queue: DispatchQueue(label: "NetworkFetchMonitor")) - nwPathMonitor?.pathUpdateHandler = self.networkPathDidChange + nwPathMonitor.start(queue: DispatchQueue(label: "NetworkFetchMonitor")) + nwPathMonitor.pathUpdateHandler = self.networkPathDidChange } @@ -971,14 +815,14 @@ extension NetworkFetchFlowCoordinator { let flowId = FlowIdentifier() await delegateManager?.webSocketDelegate.disconnectAll(flowId: flowId) await delegateManager?.webSocketDelegate.connectAll(flowId: flowId) - resetAllFailedFetchAttempsCountersAndRetryFetching() + await resetAllFailedFetchAttempsCountersAndRetryFetching() } } - func resetAllFailedFetchAttempsCountersAndRetryFetching() { + func resetAllFailedFetchAttempsCountersAndRetryFetching() async { failedAttemptsCounterManager.resetAll() - retryManager.executeAllWithNoDelay() + await retryManager.executeAllWithNoDelay() } @@ -988,18 +832,15 @@ extension NetworkFetchFlowCoordinator { failedAttemptsCounterManager.reset(counter: .queryServerWellKnown(serverURL: server)) - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - os_log("New well known was cached", log: log, type: .info) + os_log("New well known was cached", log: Self.log, type: .info) guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -1019,16 +860,13 @@ extension NetworkFetchFlowCoordinator { failedAttemptsCounterManager.reset(counter: .queryServerWellKnown(serverURL: server)) - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -1046,16 +884,13 @@ extension NetworkFetchFlowCoordinator { failedAttemptsCounterManager.reset(counter: .queryServerWellKnown(serverURL: server)) - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notification delegate is not set", log: log, type: .fault) + os_log("The notification delegate is not set", log: Self.log, type: .fault) assertionFailure() return } @@ -1066,19 +901,17 @@ extension NetworkFetchFlowCoordinator { } - func failedToQueryServerWellKnown(serverURL: URL, flowId: FlowIdentifier) { + func failedToQueryServerWellKnown(serverURL: URL, flowId: FlowIdentifier) async { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } let delay = failedAttemptsCounterManager.incrementAndGetDelay(.queryServerWellKnown(serverURL: serverURL)) - retryManager.executeWithDelay(delay) { - delegateManager.wellKnownCacheDelegate.queryServerWellKnown(serverURL: serverURL, flowId: flowId) - } - + await retryManager.waitForDelay(milliseconds: delay) + delegateManager.wellKnownCacheDelegate.queryServerWellKnown(serverURL: serverURL, flowId: flowId) + } @@ -1086,9 +919,8 @@ extension NetworkFetchFlowCoordinator { func successfulWebSocketRegistration(identity: ObvCryptoIdentity, deviceUid: UID) { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) return } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/Operations/ProcessBatchOfUnprocessedMessagesOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/Operations/ProcessBatchOfUnprocessedMessagesOperation.swift index 85930fd7..62bdb868 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/Operations/ProcessBatchOfUnprocessedMessagesOperation.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/Operations/ProcessBatchOfUnprocessedMessagesOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,7 @@ import OlvidUtils import ObvMetaManager import os.log import ObvCrypto +import CoreData final class ProcessBatchOfUnprocessedMessagesOperation: ContextualOperationWithSpecificReasonForCancel { @@ -46,8 +47,7 @@ final class ProcessBatchOfUnprocessedMessagesOperation: ContextualOperationWithS super.init() } - - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { os_log("🔑 Starting ProcessAllUnprocessedMessagesOperation %{public}@", log: log, type: .info, debugUuid.debugDescription) defer { @@ -56,65 +56,58 @@ final class ProcessBatchOfUnprocessedMessagesOperation: ContextualOperationWithS } os_log("🔑 Ending ProcessAllUnprocessedMessagesOperation %{public}@", log: log, type: .info, debugUuid.debugDescription) } - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - + do { - try obvContext.performAndWaitOrThrow { - - // Find all inbox messages that still need to be processed - - let messages = try InboxMessage.getBatchOfUnprocessedMessages(ownedCryptoIdentity: ownedCryptoIdentity, batchSize: Self.batchSize, within: obvContext) - - guard !messages.isEmpty else { - moreUnprocessedMessagesRemain = false - ObvNetworkFetchNotificationNew.noInboxMessageToProcess(flowId: obvContext.flowId, ownedCryptoIdentity: ownedCryptoIdentity) - .postOnBackgroundQueue(queueForPostingNotifications, within: notificationDelegate) - return - } - - moreUnprocessedMessagesRemain = true - - for message in messages { - os_log("🔑 Will process message %{public}@", log: log, type: .info, message.messageId.debugDescription) - assert(message.extendedMessagePayloadKey == nil) - assert(message.messagePayload == nil) - assert(!message.markedForDeletion) - } - - // If we reach this point, we have at least one message to process. - // We notify about this. - - for message in messages { - guard let inboxMessageId = message.messageId else { assertionFailure(); continue } - ObvNetworkFetchNotificationNew.newInboxMessageToProcess(messageId: inboxMessageId, attachmentIds: message.attachmentIds, flowId: obvContext.flowId) - .postOnBackgroundQueue(queueForPostingNotifications, within: notificationDelegate) - } - - // We then create the appropriate struct that is appropriate to pass each message to our delegate (i.e., the channel manager). - - let networkReceivedEncryptedMessages: [ObvNetworkReceivedMessageEncrypted] = messages.compactMap { - guard let inboxMessageId = $0.messageId else { assertionFailure(); return nil } - return ObvNetworkReceivedMessageEncrypted( - messageId: inboxMessageId, - messageUploadTimestampFromServer: $0.messageUploadTimestampFromServer, - downloadTimestampFromServer: $0.downloadTimestampFromServer, - localDownloadTimestamp: $0.localDownloadTimestamp, - encryptedContent: $0.encryptedContent, - wrappedKey: $0.wrappedKey, - knownAttachmentCount: $0.attachments.count, - availableEncryptedExtendedContent: nil) // The encrypted extended content is not available yet - } - - // We ask our delegate to process these messages - - processDownloadedMessageDelegate.processNetworkReceivedEncryptedMessages(Set(networkReceivedEncryptedMessages), within: obvContext) - + // Find all inbox messages that still need to be processed + + let messages = try InboxMessage.getBatchOfUnprocessedMessages(ownedCryptoIdentity: ownedCryptoIdentity, batchSize: Self.batchSize, within: obvContext) + + guard !messages.isEmpty else { + moreUnprocessedMessagesRemain = false + ObvNetworkFetchNotificationNew.noInboxMessageToProcess(flowId: obvContext.flowId, ownedCryptoIdentity: ownedCryptoIdentity) + .postOnBackgroundQueue(queueForPostingNotifications, within: notificationDelegate) + return + } + + moreUnprocessedMessagesRemain = true + + for message in messages { + os_log("🔑 Will process message %{public}@", log: log, type: .info, message.messageId.debugDescription) + assert(message.extendedMessagePayloadKey == nil) + assert(message.messagePayload == nil) + assert(!message.markedForDeletion) } + // If we reach this point, we have at least one message to process. + // We notify about this. + + for message in messages { + guard let inboxMessageId = message.messageId else { assertionFailure(); continue } + ObvNetworkFetchNotificationNew.newInboxMessageToProcess(messageId: inboxMessageId, attachmentIds: message.attachmentIds, flowId: obvContext.flowId) + .postOnBackgroundQueue(queueForPostingNotifications, within: notificationDelegate) + } + + // We then create the appropriate struct that is appropriate to pass each message to our delegate (i.e., the channel manager). + + let networkReceivedEncryptedMessages: [ObvNetworkReceivedMessageEncrypted] = messages.compactMap { + guard let inboxMessageId = $0.messageId else { assertionFailure(); return nil } + return ObvNetworkReceivedMessageEncrypted( + messageId: inboxMessageId, + messageUploadTimestampFromServer: $0.messageUploadTimestampFromServer, + downloadTimestampFromServer: $0.downloadTimestampFromServer, + localDownloadTimestamp: $0.localDownloadTimestamp, + encryptedContent: $0.encryptedContent, + wrappedKey: $0.wrappedKey, + knownAttachmentCount: $0.attachments.count, + availableEncryptedExtendedContent: nil) // The encrypted extended content is not available yet + } + + // We ask our delegate to process these messages + + processDownloadedMessageDelegate.processNetworkReceivedEncryptedMessages(Set(networkReceivedEncryptedMessages), within: obvContext) + + } catch { return cancel(withReason: .coreDataError(error: error)) } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/CreateOrUpdateIfRequiredServerPushNotificationOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/CreateOrUpdateIfRequiredServerPushNotificationOperation.swift deleted file mode 100644 index e4909945..00000000 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/CreateOrUpdateIfRequiredServerPushNotificationOperation.swift +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2023 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import OlvidUtils -import ObvTypes -import ObvCrypto - - -final class CreateOrUpdateIfRequiredServerPushNotificationOperation: ContextualOperationWithSpecificReasonForCancel { - - private let pushNotification: ObvPushNotificationType - - private(set) var thereIsANewServerPushNotificationToRegister = false - - init(pushNotification: ObvPushNotificationType) { - self.pushNotification = pushNotification - super.init() - } - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - - let kickOtherDeviceToKeep: Bool - - if let serverPushNotification = try ServerPushNotification.getServerPushNotificationOfType(pushNotification.byteId, - ownedCryptoId: pushNotification.ownedCryptoId, - within: obvContext.context) { - let existingPushNotification = try serverPushNotification.pushNotification - guard existingPushNotification != pushNotification else { - // Nothing left to do, an identical ServerPushNotification entry already exists in database - return - } - kickOtherDeviceToKeep = existingPushNotification.kickOtherDevices - try serverPushNotification.delete() - - } else { - - kickOtherDeviceToKeep = false - - } - - // If we reach this point, we must create a new ServerPushNotification - - let serverPushNotification = try ServerPushNotification.createOrThrowIfOneAlreadyExists(pushNotificationType: pushNotification, within: obvContext.context) - - if kickOtherDeviceToKeep { - serverPushNotification.setKickOtherDevices(to: true) - } - - assert((try? serverPushNotification.serverRegistrationStatus.byteId) == .toRegister) - thereIsANewServerPushNotificationToRegister = true - - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - } - - } - -} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/MarkAllServerPushNotificationsAsToRegisterOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/MarkAllServerPushNotificationsAsToRegisterOperation.swift deleted file mode 100644 index a008a2de..00000000 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/MarkAllServerPushNotificationsAsToRegisterOperation.swift +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2023 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import OlvidUtils -import ObvCrypto -import ObvTypes - - -final class MarkAllServerPushNotificationsAsToRegisterOperation: ContextualOperationWithSpecificReasonForCancel { - - private(set) var serverPushNotificationsToRegister = [(ownedCryptoId: ObvCryptoIdentity, pushNotificationType: ObvPushNotificationType.ByteId)]() - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - - let serverPushNotifications = try ServerPushNotification.getAllServerPushNotification(within: obvContext.context) - - try serverPushNotifications.forEach { serverPushNotification in - - try serverPushNotification.switchToServerRegistrationStatus(.toRegister) - - let pushNotification = try serverPushNotification.pushNotification - - serverPushNotificationsToRegister.append((ownedCryptoId: pushNotification.ownedCryptoId, pushNotificationType: pushNotification.byteId)) - - } - - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - } - - } - -} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/ProcessCompletionOfURLSessionTaskForRegisteringPushNotificationOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/ProcessCompletionOfURLSessionTaskForRegisteringPushNotificationOperation.swift deleted file mode 100644 index 11ecfe8f..00000000 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/ProcessCompletionOfURLSessionTaskForRegisteringPushNotificationOperation.swift +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2023 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import OlvidUtils -import ObvServerInterface -import os.log -import ObvCrypto -import ObvTypes - - -final class ProcessCompletionOfURLSessionTaskForRegisteringPushNotificationOperation: ContextualOperationWithSpecificReasonForCancel { - - private let urlSessionTaskIdentifier: Int - private let responseData: Data - private let log: OSLog - - enum ServerReturnStatus { - case serverReturnedDataDiscardedAsItWasObsolete - case ok(ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) - case invalidSession(ownedCryptoId: ObvCryptoIdentity, pushNotificationType: ObvPushNotificationType.ByteId, flowId: FlowIdentifier) - case anotherDeviceIsAlreadyRegistered(ownedCryptoId: ObvCryptoIdentity, pushNotificationType: ObvPushNotificationType.ByteId, flowId: FlowIdentifier) - case generalError(ownedCryptoId: ObvCryptoIdentity, pushNotificationType: ObvPushNotificationType.ByteId, flowId: FlowIdentifier) - case couldNotParseServerResponse(ownedCryptoId: ObvCryptoIdentity, pushNotificationType: ObvPushNotificationType.ByteId, flowId: FlowIdentifier) - } - - private(set) var serverReturnStatus: ServerReturnStatus? = nil - - init(urlSessionTaskIdentifier: Int, responseData: Data, log: OSLog) { - self.urlSessionTaskIdentifier = urlSessionTaskIdentifier - self.responseData = responseData - self.log = log - super.init() - } - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - - guard let serverPushNotification = try ServerPushNotification.getRegisteringAndCorrespondingToURLSessionTaskIdentifier(urlSessionTaskIdentifier, within: obvContext.context) else { - // This happens if we had to relaunch a registration after launching a, now obsolete, request. In that case the ServerPushNotification entry which lead to the obsolete request may have been deleted. - // We simply discard the result of the obsolete URL request - serverReturnStatus = .serverReturnedDataDiscardedAsItWasObsolete - return - } - - let pushNotification = try serverPushNotification.pushNotification - - guard let status = ObvServerRegisterRemotePushNotificationMethod.parseObvServerResponse(responseData: responseData, using: log) else { - try serverPushNotification.switchToServerRegistrationStatus(.toRegister) - serverReturnStatus = .couldNotParseServerResponse(ownedCryptoId: pushNotification.ownedCryptoId, pushNotificationType: pushNotification.byteId, flowId: obvContext.flowId) - return - } - - switch status { - - case .ok: - os_log("The push notification registration was successfully received by the server for identity %{public}@. This device is registered 🥳.", log: log, type: .info, pushNotification.ownedCryptoId.debugDescription) - try serverPushNotification.switchToServerRegistrationStatus(.registered) - serverReturnStatus = .ok(ownedCryptoId: pushNotification.ownedCryptoId, flowId: obvContext.flowId) - return - - case .invalidSession: - try serverPushNotification.switchToServerRegistrationStatus(.toRegister) - serverReturnStatus = .invalidSession(ownedCryptoId: pushNotification.ownedCryptoId, pushNotificationType: pushNotification.byteId, flowId: obvContext.flowId) - return // the serverRetrunStatus was set, we will deal with this case in the completion handler of the operation - - case .anotherDeviceIsAlreadyRegistered: - try serverPushNotification.delete() - serverReturnStatus = .anotherDeviceIsAlreadyRegistered(ownedCryptoId: pushNotification.ownedCryptoId, pushNotificationType: pushNotification.byteId, flowId: obvContext.flowId) - return // the serverRetrunStatus was set, we will deal with this case in the completion handler of the operation - - case .generalError: - try serverPushNotification.switchToServerRegistrationStatus(.toRegister) - serverReturnStatus = .generalError(ownedCryptoId: pushNotification.ownedCryptoId, pushNotificationType: pushNotification.byteId, flowId: obvContext.flowId) - return // the serverRetrunStatus was set, we will deal with this case in the completion handler of the operation - - } - - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - } - - } - -} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/RegisterPushNotificationToRegisterOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/RegisterPushNotificationToRegisterOperation.swift deleted file mode 100644 index 8d13afc4..00000000 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/RegisterPushNotificationToRegisterOperation.swift +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2023 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import OlvidUtils -import ObvCrypto -import ObvServerInterface -import ObvMetaManager -import os.log -import ObvTypes - - -final class RegisterPushNotificationToRegisterOperation: ContextualOperationWithSpecificReasonForCancel { - - private let ownedCryptoId: ObvCryptoIdentity - private let pushNotificationType: ObvPushNotificationType.ByteId - private let remoteNotificationByteIdentifierForServer: Data - private let identityDelegate: ObvIdentityDelegate - private let session: URLSession - - init(ownedCryptoId: ObvCryptoIdentity, pushNotificationType: ObvPushNotificationType.ByteId, remoteNotificationByteIdentifierForServer: Data, session: URLSession, identityDelegate: ObvIdentityDelegate) { - self.ownedCryptoId = ownedCryptoId - self.pushNotificationType = pushNotificationType - self.remoteNotificationByteIdentifierForServer = remoteNotificationByteIdentifierForServer - self.session = session - self.identityDelegate = identityDelegate - super.init() - } - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - - guard let serverPushNotification = try ServerPushNotification.getServerPushNotificationOfType(pushNotificationType, ownedCryptoId: ownedCryptoId, within: obvContext.context) else { - // Nothing to do - return - } - - guard try serverPushNotification.serverRegistrationStatus.byteId == .toRegister else { - // Nothing to do - return - } - - guard let serverSession = try ServerSession.get(within: obvContext, withIdentity: ownedCryptoId) else { - return cancel(withReason: .serverSessionRequired) - } - - guard let token = serverSession.token else { - return cancel(withReason: .serverSessionRequired) - } - - let pushNotification = try serverPushNotification.pushNotification - - switch pushNotification { - - case .remote(let ownedCryptoId, let currentDeviceUID, let pushToken, let voipToken, let maskingUID, let parameters): - - let method = ObvServerRegisterRemotePushNotificationMethod(ownedIdentity: ownedCryptoId, - token: token, - deviceUid: currentDeviceUID, - remoteNotificationByteIdentifierForServer: remoteNotificationByteIdentifierForServer, - deviceTokensAndmaskingUID: (pushToken, voipToken, maskingUID), - parameters: parameters, - keycloakPushTopics: parameters.keycloakPushTopics, - flowId: obvContext.flowId) - method.identityDelegate = identityDelegate - - let task: URLSessionDataTask - do { - task = try method.dataTask(within: self.session) - } catch let error { - return cancel(withReason: .failedToCreateURLSessionDataTask(error: error)) - } - task.resume() - - try serverPushNotification.switchToServerRegistrationStatus(.registering(urlSessionTaskIdentifier: task.taskIdentifier)) - - case .registerDeviceUid(ownedCryptoId: let ownedCryptoId, currentDeviceUID: let currentDeviceUID, parameters: let parameters): - - let method = ObvServerRegisterRemotePushNotificationMethod(ownedIdentity: ownedCryptoId, - token: token, - deviceUid: currentDeviceUID, - remoteNotificationByteIdentifierForServer: Data([0xff]), - deviceTokensAndmaskingUID: nil, - parameters: parameters, - keycloakPushTopics: parameters.keycloakPushTopics, - flowId: obvContext.flowId) - method.identityDelegate = identityDelegate - - let task: URLSessionDataTask - do { - task = try method.dataTask(within: self.session) - } catch let error { - return cancel(withReason: .failedToCreateURLSessionDataTask(error: error)) - } - - task.resume() - - try serverPushNotification.switchToServerRegistrationStatus(.registering(urlSessionTaskIdentifier: task.taskIdentifier)) - - } - - - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - } - - } - -} - - -public enum RegisterUnregisteredPushNotificationOperationReasonForCancel: LocalizedErrorWithLogType { - - case coreDataError(error: Error) - case contextIsNil - case failedToCreateURLSessionDataTask(error: Error) - case serverSessionRequired - - public var logType: OSLogType { - switch self { - case .serverSessionRequired: - return .error - case .coreDataError, .contextIsNil, .failedToCreateURLSessionDataTask: - return .fault - } - } - - public var errorDescription: String? { - switch self { - case .contextIsNil: - return "Context is nil" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .failedToCreateURLSessionDataTask(error: let error): - return "Failed to create URLSessionDataTask: \(error.localizedDescription)" - case .serverSessionRequired: - return "Server session required" - } - } - -} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/ProcessRegisteredPushNotificationsCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/ProcessRegisteredPushNotificationsCoordinator.swift deleted file mode 100644 index 57e43ef5..00000000 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/ProcessRegisteredPushNotificationsCoordinator.swift +++ /dev/null @@ -1,414 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import os.log -import ObvServerInterface -import ObvTypes -import ObvOperation -import ObvCrypto -import ObvMetaManager -import OlvidUtils - - -final class ServerPushNotificationsCoordinator: NSObject, ObvErrorMaker { - - // MARK: - Instance variables - - fileprivate let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem - fileprivate let logCategory = "ServerPushNotificationsCoordinator" - static let errorDomain = "ServerPushNotificationsCoordinator" - - weak var delegateManager: ObvNetworkFetchDelegateManager? - - private lazy var session: URLSession! = { - let sessionConfiguration = URLSessionConfiguration.ephemeral - return URLSession(configuration: sessionConfiguration, delegate: self, delegateQueue: nil) - }() - - // Allows to store the data received while resuming the URL task - private var _currentTasks = [UIBackgroundTaskIdentifier: Data]() - private var currentTasksQueue = DispatchQueue(label: "GetTokenCoordinatorQueueForCurrentDownloadTasks") - - private let remoteNotificationByteIdentifierForServer: Data - - private let coordinatorsQueue: OperationQueue - private let queueForComposedOperations: OperationQueue - private var failedAttemptsCounterManager = FailedAttemptsCounterManager() - private var retryManager = FetchRetryManager() - - init(remoteNotificationByteIdentifierForServer: Data, coordinatorsQueue: OperationQueue, queueForComposedOperations: OperationQueue) { - self.remoteNotificationByteIdentifierForServer = remoteNotificationByteIdentifierForServer - self.coordinatorsQueue = coordinatorsQueue - self.queueForComposedOperations = queueForComposedOperations - super.init() - } - -} - -// MARK: - Synchronized access to the current download tasks - -extension ServerPushNotificationsCoordinator { - - private func removeDataReceivedFor(_ task: URLSessionTask) -> Data? { - var dataReceived: Data? - currentTasksQueue.sync { - dataReceived = _currentTasks.removeValue(forKey: UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)) - } - return dataReceived - } - - private func accumulate(_ data: Data, forTask task: URLSessionTask) { - currentTasksQueue.sync { - let currentData = _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] ?? Data() - var newData = currentData - newData.append(data) - _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] = newData - } - } - -} - -// MARK: - ServerPushNotificationsDelegate - -extension ServerPushNotificationsCoordinator: ServerPushNotificationsDelegate { - - func registerToPushNotification(_ pushNotification: ObvPushNotificationType, flowId: FlowIdentifier) { - - let op1 = CreateOrUpdateIfRequiredServerPushNotificationOperation(pushNotification: pushNotification) - - guard let composedOp = createCompositionOfOneContextualOperation(op1: op1) else { assertionFailure(); return } - defer { coordinatorsQueue.addOperation(composedOp) } - - let previousCompletion = composedOp.completionBlock - composedOp.completionBlock = { [weak self] in - - previousCompletion?() - - guard composedOp.isCancelled else { - self?.failedAttemptsCounterManager.reset(counter: .registerPushNotification(ownedIdentity: pushNotification.ownedCryptoId)) - if op1.thereIsANewServerPushNotificationToRegister { - do { - try self?.processServerPushNotificationsToRegister(ownedCryptoId: pushNotification.ownedCryptoId, pushNotificationType: pushNotification.byteId, flowId: flowId) - } catch { - assertionFailure(error.localizedDescription) // This never happens in practice - } - } - return - } - - guard let reasonForCancel = composedOp.reasonForCancel else { assertionFailure(); return } - switch reasonForCancel { - case .unknownReason: - assertionFailure("unknownReason") - case .coreDataError(error: let error): - assertionFailure(error.localizedDescription) - case .op1Cancelled(reason: let op1ReasonForCancel): - switch op1ReasonForCancel { - case .coreDataError(error: let error): - assertionFailure(error.localizedDescription) - case .contextIsNil: - assertionFailure("contextIsNil") - } - } - - guard let delay = self?.failedAttemptsCounterManager.incrementAndGetDelay(.registerPushNotification(ownedIdentity: pushNotification.ownedCryptoId)) else { return } - self?.retryManager.executeWithDelay(delay) { - self?.registerToPushNotification(pushNotification, flowId: flowId) - } - } - - } - - - func processServerPushNotificationsToRegister(ownedCryptoId: ObvCryptoIdentity, pushNotificationType: ObvPushNotificationType.ByteId, flowId: FlowIdentifier) throws { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - assertionFailure() - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let identityDelegate = delegateManager.identityDelegate else { - os_log("The identity delegate is not set", log: log, type: .fault) - assertionFailure() - return - } - - let op1 = RegisterPushNotificationToRegisterOperation( - ownedCryptoId: ownedCryptoId, - pushNotificationType: pushNotificationType, - remoteNotificationByteIdentifierForServer: remoteNotificationByteIdentifierForServer, - session: session, - identityDelegate: identityDelegate) - - guard let composedOp = createCompositionOfOneContextualOperation(op1: op1) else { assertionFailure(); return } - defer { coordinatorsQueue.addOperation(composedOp) } - - let previousCompletion = composedOp.completionBlock - composedOp.completionBlock = { [weak self] in - - previousCompletion?() - - guard composedOp.isCancelled else { - self?.failedAttemptsCounterManager.reset(counter: .registerPushNotification(ownedIdentity: ownedCryptoId)) - return - } - - guard let reasonForCancel = composedOp.reasonForCancel else { assertionFailure(); return } - switch reasonForCancel { - case .unknownReason: - assertionFailure("unknownReason") - case .coreDataError(error: let error): - assertionFailure(error.localizedDescription) - case .op1Cancelled(reason: let op1ReasonForCancel): - switch op1ReasonForCancel { - case .coreDataError(error: let error): - assertionFailure(error.localizedDescription) - case .contextIsNil: - assertionFailure("contextIsNil") - case .failedToCreateURLSessionDataTask(error: let error): - assertionFailure("failedToCreateURLSessionDataTask: \(error.localizedDescription)") - case .serverSessionRequired: - try? delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedCryptoId, flowId: flowId) - } - } - - self?.retryLaterProcessServerPushNotificationsToRegister(ownedCryptoId: ownedCryptoId, pushNotificationType: pushNotificationType, flowId: flowId) - - } - - } - - - func forceRegisteringOfServerPushNotificationsOnBootstrap(flowId: FlowIdentifier) { - - let op1 = MarkAllServerPushNotificationsAsToRegisterOperation() - - guard let composedOp = createCompositionOfOneContextualOperation(op1: op1) else { assertionFailure(); return } - defer { coordinatorsQueue.addOperation(composedOp) } - - let previousCompletion = composedOp.completionBlock - composedOp.completionBlock = { [weak self] in - - previousCompletion?() - - guard composedOp.isCancelled else { - for serverPushNotificationToRegister in op1.serverPushNotificationsToRegister { - do { - try self?.processServerPushNotificationsToRegister( - ownedCryptoId: serverPushNotificationToRegister.ownedCryptoId, - pushNotificationType: serverPushNotificationToRegister.pushNotificationType, - flowId: flowId) - } catch { - assertionFailure(error.localizedDescription) - } - } - return - } - - guard let reasonForCancel = composedOp.reasonForCancel else { assertionFailure(); return } - switch reasonForCancel { - case .unknownReason: - assertionFailure("unknownReason") - case .coreDataError(error: let error): - assertionFailure(error.localizedDescription) - case .op1Cancelled(reason: let op1ReasonForCancel): - switch op1ReasonForCancel { - case .coreDataError(error: let error): - assertionFailure(error.localizedDescription) - case .contextIsNil: - assertionFailure("contextIsNil") - } - } - - } - - } - - - private func retryLaterProcessServerPushNotificationsToRegister(ownedCryptoId: ObvCryptoIdentity, pushNotificationType: ObvPushNotificationType.ByteId, flowId: FlowIdentifier) { - let delay = failedAttemptsCounterManager.incrementAndGetDelay(.registerPushNotification(ownedIdentity: ownedCryptoId)) - retryManager.executeWithDelay(delay) { [weak self] in - try? self?.processServerPushNotificationsToRegister(ownedCryptoId: ownedCryptoId, pushNotificationType: pushNotificationType, flowId: flowId) - } - } - - - func deleteAllServerPushNotificationsOnOwnedIdentityDeletion(ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) { - - let op1 = DeleteAllServerPushNotificationsOnOwnedIdentityDeletionOperation(ownedCryptoId: ownedCryptoId) - guard let composedOp = createCompositionOfOneContextualOperation(op1: op1) else { assertionFailure(); return } - defer { coordinatorsQueue.addOperation(composedOp) } - - let previousCompletion = composedOp.completionBlock - composedOp.completionBlock = { - previousCompletion?() - guard composedOp.isCancelled else { return } - guard let reasonForCancel = composedOp.reasonForCancel else { assertionFailure(); return } - switch reasonForCancel { - case .unknownReason: - assertionFailure() - case .coreDataError(error: let error): - assertionFailure(error.localizedDescription) - case .op1Cancelled(reason: let op1ReasonForCancel): - switch op1ReasonForCancel { - case .coreDataError(error: let error): - assertionFailure(error.localizedDescription) - case .contextIsNil: - assertionFailure() - } - } - } - } - -} - - -// MARK: - URLSessionDataDelegate - -extension ServerPushNotificationsCoordinator: URLSessionDataDelegate { - - func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { - accumulate(data, forTask: dataTask) - } - - - func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - assertionFailure() - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - if let error { - os_log("The process registered push notification task failed (which also happens if there is no network): %{public}@", log: log, type: .error, error.localizedDescription) - _ = removeDataReceivedFor(task) - return - } - - guard let responseData = removeDataReceivedFor(task) else { assertionFailure(); return } - - let op1 = ProcessCompletionOfURLSessionTaskForRegisteringPushNotificationOperation(urlSessionTaskIdentifier: task.taskIdentifier, responseData: responseData, log: log) - - guard let composedOp = createCompositionOfOneContextualOperation(op1: op1) else { assertionFailure(); return } - defer { coordinatorsQueue.addOperation(composedOp) } - - let previousCompletion = composedOp.completionBlock - composedOp.completionBlock = { [weak self] in - - previousCompletion?() - - guard composedOp.isCancelled else { - - guard let serverReturnStatus = op1.serverReturnStatus else { assertionFailure(); return } - - switch serverReturnStatus { - - case .serverReturnedDataDiscardedAsItWasObsolete: - return - - case .ok(ownedCryptoId: let ownedCryptoId, flowId: let flowId): - delegateManager.networkFetchFlowDelegate.serverReportedThatThisDeviceWasSuccessfullyRegistered(forOwnedIdentity: ownedCryptoId, flowId: flowId) - return - - case .invalidSession(ownedCryptoId: let ownedCryptoId, pushNotificationType: let pushNotificationType, flowId: let flowId): - try? delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedCryptoId, flowId: flowId) - self?.retryLaterProcessServerPushNotificationsToRegister(ownedCryptoId: ownedCryptoId, pushNotificationType: pushNotificationType, flowId: flowId) - return - - case .anotherDeviceIsAlreadyRegistered(ownedCryptoId: let ownedCryptoId, pushNotificationType: let pushNotificationType, flowId: let flowId): - delegateManager.networkFetchFlowDelegate.serverReportedThatAnotherDeviceIsAlreadyRegistered(forOwnedIdentity: ownedCryptoId, flowId: flowId) - self?.retryLaterProcessServerPushNotificationsToRegister(ownedCryptoId: ownedCryptoId, pushNotificationType: pushNotificationType, flowId: flowId) - return - - case .generalError(ownedCryptoId: let ownedCryptoId, pushNotificationType: let pushNotificationType, flowId: let flowId): - self?.retryLaterProcessServerPushNotificationsToRegister(ownedCryptoId: ownedCryptoId, pushNotificationType: pushNotificationType, flowId: flowId) - return - - case .couldNotParseServerResponse(ownedCryptoId: let ownedCryptoId, pushNotificationType: let pushNotificationType, flowId: let flowId): - self?.retryLaterProcessServerPushNotificationsToRegister(ownedCryptoId: ownedCryptoId, pushNotificationType: pushNotificationType, flowId: flowId) - return - - } - } - - guard let reasonForCancel = composedOp.reasonForCancel else { assertionFailure(); return } - - switch reasonForCancel { - case .unknownReason: - assertionFailure() - return - case .coreDataError(error: let error): - assertionFailure(error.localizedDescription) - return - case .op1Cancelled(reason: let op1ReasonForCancel): - switch op1ReasonForCancel { - case .coreDataError(error: let error): - assertionFailure(error.localizedDescription) - return - case .contextIsNil: - assertionFailure() - return - } - } - - } - - } - -} - - -// MARK: - Helpers - -extension ServerPushNotificationsCoordinator { - - private func createCompositionOfOneContextualOperation(op1: ContextualOperationWithSpecificReasonForCancel) -> CompositionOfOneContextualOperation? { - - guard let delegateManager else { - assertionFailure("The Delegate Manager is not set") - return nil - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let contextCreator = delegateManager.contextCreator else { - assertionFailure("The context creator manager is not set") - return nil - } - - let composedOp = CompositionOfOneContextualOperation(op1: op1, contextCreator: contextCreator, queueForComposedOperations: queueForComposedOperations, log: log, flowId: FlowIdentifier()) - - composedOp.completionBlock = { [weak composedOp] in - assert(composedOp != nil) - composedOp?.logReasonIfCancelled(log: log) - } - return composedOp - - } - -} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/QueryApiKeyStatusCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/QueryApiKeyStatusCoordinator.swift deleted file mode 100644 index 1f5c1772..00000000 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/QueryApiKeyStatusCoordinator.swift +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import os.log -import ObvServerInterface -import ObvTypes -import ObvOperation -import ObvCrypto -import ObvMetaManager -import OlvidUtils - - -final class QueryApiKeyStatusCoordinator: NSObject { - - fileprivate let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem - fileprivate let logCategory = "QueryApiKeyStatusCoordinator" - - weak var delegateManager: ObvNetworkFetchDelegateManager? - - private let localQueue = DispatchQueue(label: "QueryApiKeyStatusCoordinatorQueue") - - private lazy var session: URLSession! = { - let sessionConfiguration = URLSessionConfiguration.ephemeral - return URLSession(configuration: sessionConfiguration, delegate: self, delegateQueue: nil) - }() - - private var _currentTasks = [UIBackgroundTaskIdentifier: (ownedIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier, dataReceived: Data)]() - private var currentTasksQueue = DispatchQueue(label: "QueryApiKeyStatusCoordinatorQueueForCurrentTasks") - -} - - -// MARK: - Synchronized access to the current download tasks - -extension QueryApiKeyStatusCoordinator { - - private func currentTaskExistsFor(_ identity: ObvCryptoIdentity, apiKey: UUID) -> Bool { - var exist = true - currentTasksQueue.sync { - exist = _currentTasks.values.contains(where: { $0.ownedIdentity == identity && $0.apiKey == apiKey }) - } - return exist - } - - private func removeInfoFor(_ task: URLSessionTask) -> (ownedIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (ObvCryptoIdentity, UUID, FlowIdentifier, Data)? = nil - currentTasksQueue.sync { - info = _currentTasks.removeValue(forKey: UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)) - } - return info - } - - private func getInfoFor(_ task: URLSessionTask) -> (ownedIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (ObvCryptoIdentity, UUID, FlowIdentifier, Data)? = nil - currentTasksQueue.sync { - info = _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] - } - return info - } - - private func insert(_ task: URLSessionTask, for identity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) { - currentTasksQueue.sync { - _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] = (identity, apiKey, flowId, Data()) - } - } - - private func accumulate(_ data: Data, forTask task: URLSessionTask) { - currentTasksQueue.sync { - guard let (ownedIdentity, apiKey, identifierForNotifications, currentData) = _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] else { return } - var newData = currentData - newData.append(data) - _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] = (ownedIdentity, apiKey, identifierForNotifications, newData) - } - } - -} - - -// MARK: - QueryApiKeyStatusDelegate - -extension QueryApiKeyStatusCoordinator: QueryApiKeyStatusDelegate { - - private enum SyncQueueOutput { - case previousTaskExists - case newTaskToRun(task: URLSessionTask) - case failedToCreateTask(error: Error) - } - - func queryAPIKeyStatus(for identity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - var syncQueueOutput: SyncQueueOutput? // The state after the localQueue.sync is executed - - localQueue.sync { - - guard !currentTaskExistsFor(identity, apiKey: apiKey) else { - syncQueueOutput = .previousTaskExists - return - } - - let method = QueryApiKeyStatusServerMethod(ownedIdentity: identity, apiKey: apiKey, flowId: flowId) - method.identityDelegate = delegateManager.identityDelegate - let task: URLSessionDataTask - do { - task = try method.dataTask(within: self.session) - } catch let error { - syncQueueOutput = .failedToCreateTask(error: error) - return - } - - insert(task, for: identity, apiKey: apiKey, flowId: flowId) - - syncQueueOutput = .newTaskToRun(task: task) - - } - - guard syncQueueOutput != nil else { - assertionFailure() - os_log("syncQueueOutput is nil", log: log, type: .fault) - return - } - - switch syncQueueOutput! { - - case .previousTaskExists: - os_log("A running task already exists for identity %{public}@ and keyId %{public}@", log: log, type: .debug, identity.debugDescription, apiKey.debugDescription) - assertionFailure() - - case .newTaskToRun(task: let task): - os_log("New task to run for identity %{public}@ and keyId %{public}@", log: log, type: .debug, identity.debugDescription, apiKey.debugDescription) - task.resume() - - case .failedToCreateTask(error: let error): - os_log("Could not create task for QueryApiKeyStatusServerMethod: %{public}@", log: log, type: .error, error.localizedDescription) - assertionFailure() - return - - } - } - -} - - -// MARK: - URLSessionDataDelegate - -extension QueryApiKeyStatusCoordinator: URLSessionDataDelegate { - - func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { - accumulate(data, forTask: dataTask) - } - - func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - guard let (ownedIdentity, apiKey, flowId, dataReceived) = getInfoFor(task) else { return } - - guard error == nil else { - os_log("💰 The QueryApiKeyStatusServerMethod task failed for identity %{public}@: %@", log: log, type: .error, ownedIdentity.debugDescription, error!.localizedDescription) - _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.apiKeyStatusQueryFailed(ownedIdentity: ownedIdentity, apiKey: apiKey) - return - } - - // If we reach this point, the data task did complete without error - - guard let (status, returnedValues) = QueryApiKeyStatusServerMethod.parseObvServerResponse(responseData: dataReceived, using: log) else { - os_log("💰 Could not parse the server response for the QueryApiKeyStatusServerMethod task for identity %{public}@ and apiKey", log: log, type: .fault, ownedIdentity.debugDescription, apiKey.debugDescription) - _ = removeInfoFor(task) - assertionFailure() - delegateManager.networkFetchFlowDelegate.apiKeyStatusQueryFailed(ownedIdentity: ownedIdentity, apiKey: apiKey) - return - } - - switch status { - case .ok: - let (apiKeyStatus, apiPermissions, apiKeyExpirationDate) = returnedValues! - os_log("💰 Server returned an API Key Status [%{public}@] with the following expiration date: %{public}@", log: log, type: .fault, apiKeyStatus.description, apiKeyExpirationDate?.debugDescription ?? "NONE") - delegateManager.networkFetchFlowDelegate.newAPIKeyElementsForAPIKey(serverURL: ownedIdentity.serverURL, apiKey: apiKey, apiKeyStatus: apiKeyStatus, apiPermissions: apiPermissions, apiKeyExpirationDate: apiKeyExpirationDate, flowId: flowId) - _ = removeInfoFor(task) - - case .generalError: - os_log("💰 Server reported general error during the QueryApiKeyStatusServerMethod task for identity %{public}@ for keyId %{public}@", log: log, type: .fault, ownedIdentity.debugDescription, apiKey.debugDescription) - _ = removeInfoFor(task) - assertionFailure() - delegateManager.networkFetchFlowDelegate.apiKeyStatusQueryFailed(ownedIdentity: ownedIdentity, apiKey: apiKey) - return - - } - } - -} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerPushNotificationsCoordinator/ServerPushNotificationsCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerPushNotificationsCoordinator/ServerPushNotificationsCoordinator.swift new file mode 100644 index 00000000..15bb6e0d --- /dev/null +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerPushNotificationsCoordinator/ServerPushNotificationsCoordinator.swift @@ -0,0 +1,197 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import ObvServerInterface +import ObvTypes +import ObvOperation +import ObvCrypto +import ObvMetaManager +import OlvidUtils + + +actor ServerPushNotificationsCoordinator: ServerPushNotificationsDelegate { + + private static let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem + private static let logCategory = "ServerPushNotificationsCoordinator" + private static var log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) + + weak var delegateManager: ObvNetworkFetchDelegateManager? + private let remoteNotificationByteIdentifierForServer: Data + private let prng: PRNGService + + private var failedAttemptsCounterManager = FailedAttemptsCounterManager() + private var retryManager = FetchRetryManager() + + init(remoteNotificationByteIdentifierForServer: Data, prng: PRNGService, logPrefix: String) { + self.remoteNotificationByteIdentifierForServer = remoteNotificationByteIdentifierForServer + self.prng = prng + let logSubsystem = "\(logPrefix).\(Self.defaultLogSubsystem)" + Self.log = OSLog(subsystem: logSubsystem, category: Self.logCategory) + } + + private enum RegistrationTask { + case inProgress(Task) + } + + private var cache = [ObvPushNotificationType: RegistrationTask]() + + + // MARK: - ServerPushNotificationsDelegate + + func registerPushNotification(_ pushNotification: ObvPushNotificationType, flowId: FlowIdentifier) async throws { + + let requestUUID = UUID() + + os_log("🫸[%{public}@] New pushNotification to register: %{public}@", log: Self.log, type: .info, requestUUID.debugDescription, pushNotification.debugDescription) + + try await registerPushNotification(pushNotification, flowId: flowId, requestUUID: requestUUID) + + os_log("🫸[%{public}@] Push notification processed", log: Self.log, type: .info, requestUUID.debugDescription) + + } + + + func setDelegateManager(_ delegateManager: ObvNetworkFetchDelegateManager) { + self.delegateManager = delegateManager + } + + + // MARK: - Helper methods + + + private func registerPushNotification(_ pushNotification: ObvPushNotificationType, flowId: FlowIdentifier, requestUUID: UUID) async throws { + + let returnStatus = try await self.registerPushNotificationOnServer(pushNotification, flowId: flowId, requestUUID: requestUUID) + + os_log("🫸[%{public}@] Status returned by the server: %{public}@", log: Self.log, type: .info, requestUUID.debugDescription, returnStatus.debugDescription) + + switch returnStatus { + case .ok: + return + case .invalidSession, .generalError: + // No need to inform the delegate that our session is invalid, this has been done already in registerPushNotificationOnServer(_:flowId:requestUUID:) + let delay = failedAttemptsCounterManager.incrementAndGetDelay(.registerPushNotification(ownedIdentity: pushNotification.ownedCryptoId)) + await retryManager.waitForDelay(milliseconds: delay) + try await registerPushNotification(pushNotification, flowId: flowId, requestUUID: requestUUID) + case .anotherDeviceIsAlreadyRegistered: + throw ObvError.anotherDeviceIsAlreadyRegistered + case .deviceToReplaceIsNotRegistered: + throw ObvError.deviceToReplaceIsNotRegistered + } + + } + + + private func registerPushNotificationOnServer(_ pushNotification: ObvPushNotificationType, flowId: FlowIdentifier, requestUUID: UUID) async throws -> ObvServerRegisterRemotePushNotificationMethod.PossibleReturnStatus { + + guard let delegateManager = delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) + assertionFailure() + throw ObvError.theDelegateManagerIsNotSet + } + + let sessionToken = try await delegateManager.serverSessionDelegate.getValidServerSessionToken(for: pushNotification.ownedCryptoId, currentInvalidToken: nil, flowId: flowId).serverSessionToken + + if let cached = cache[pushNotification] { + switch cached { + case .inProgress(let task): + os_log("🫸[%{public}@] Cache hit: in progress", log: Self.log, type: .info, requestUUID.debugDescription) + return try await task.value + } + } + + os_log("🫸[%{public}@] Not in cache", log: Self.log, type: .info, requestUUID.debugDescription) + + let task = Task { + + let method = ObvServerRegisterRemotePushNotificationMethod( + pushNotification: pushNotification, + sessionToken: sessionToken, + remoteNotificationByteIdentifierForServer: remoteNotificationByteIdentifierForServer, + flowId: flowId, + prng: prng) + + os_log("🫸[%{public}@] Performing server query using session token %{public}@", log: Self.log, type: .info, requestUUID.debugDescription, sessionToken.hexString()) + + let (data, response) = try await URLSession.shared.data(for: method.getURLRequest()) + + guard let httpResponse = response as? HTTPURLResponse, + httpResponse.statusCode == 200 else { + throw ObvError.invalidServerResponse + } + + guard let returnStatus = ObvServerRegisterRemotePushNotificationMethod.parseObvServerResponse(responseData: data, using: Self.log) else { + assertionFailure() + throw ObvError.couldNotParseReturnStatusFromServer + } + + return returnStatus + + } + + cache[pushNotification] = .inProgress(task) + + os_log("🫸[%{public}@] In progress", log: Self.log, type: .info, requestUUID.debugDescription) + + do { + let returnStatus = try await task.value + cache.removeValue(forKey: pushNotification) + switch returnStatus { + case .invalidSession: + os_log("🫸[%{public}@] We inform our delegate that the following session token is invalid: %{public}@", log: Self.log, type: .info, requestUUID.debugDescription, sessionToken.hexString()) + _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: pushNotification.ownedCryptoId, currentInvalidToken: sessionToken, flowId: flowId) + os_log("🫸[%{public}@] We informed our delegate that the following session token is invalid: %{public}@ and we try to register again", log: Self.log, type: .info, requestUUID.debugDescription, sessionToken.hexString()) + return try await registerPushNotificationOnServer(pushNotification, flowId: flowId, requestUUID: requestUUID) + default: + break + } + return returnStatus + } catch { + cache.removeValue(forKey: pushNotification) + throw error + } + + } + + enum ObvError: LocalizedError { + case invalidServerResponse + case theDelegateManagerIsNotSet + case couldNotParseReturnStatusFromServer + case anotherDeviceIsAlreadyRegistered + case deviceToReplaceIsNotRegistered + + var errorDescription: String? { + switch self { + case .invalidServerResponse: + return "Invalid server response" + case .theDelegateManagerIsNotSet: + return "The delegate manager is not set" + case .couldNotParseReturnStatusFromServer: + return "Could not parse return status from server" + case .anotherDeviceIsAlreadyRegistered: + return "Another device is already registered" + case .deviceToReplaceIsNotRegistered: + return "Device to replace is not registered" + } + } + } + +} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerQueryCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerQueryCoordinator.swift index 64faf267..4cf43c70 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerQueryCoordinator.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerQueryCoordinator.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import os.log import ObvServerInterface import ObvMetaManager import ObvTypes +import ObvEncoder import ObvCrypto import OlvidUtils @@ -52,12 +53,19 @@ final class ServerQueryCoordinator: NSObject { sessionConfiguration.useOlvidSettings(sharedContainerIdentifier: delegateManager?.sharedContainerIdentifier) return URLSession(configuration: sessionConfiguration, delegate: self, delegateQueue: nil) }() + + /// We create a specific session for the case when the query is a Keycloak revocation test. The reason: the keycloak might not be reachable (e.g., the keycloak is on a private network) + /// and we need the test to fail when it is the case. This is only possible if the `waitsForConnectivity` parameter is false. + private lazy var sessionForKeycloakRevocation: URLSession! = { + let sessionConfiguration = URLSessionConfiguration.ephemeral + sessionConfiguration.useOlvidSettings(sharedContainerIdentifier: delegateManager?.sharedContainerIdentifier) + sessionConfiguration.waitsForConnectivity = false // So as to fail early if the keycloak server is not available + return URLSession(configuration: sessionConfiguration, delegate: self, delegateQueue: nil) + }() private var _currentTasks = [UIBackgroundTaskIdentifier: (objectId: NSManagedObjectID, dataReceived: Data, flowId: FlowIdentifier)]() private var currentTasksQueue = DispatchQueue(label: "ServerQueryCoordinatorQueueForCurrentTasks") - private let queueForCallingDelegate = DispatchQueue(label: "ServerQueryCoordinator queue for calling delegate methods") - let prng: PRNGService let downloadedUserData: URL private var notificationCenterTokens = [NSObjectProtocol]() @@ -141,7 +149,7 @@ extension ServerQueryCoordinator { } contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in do { - let serverQueries = try PendingServerQuery.getAllServerQuery(for: ownedCryptoIdentity, delegateManager: delegateManager, within: obvContext) + let serverQueries = try PendingServerQuery.getAllServerQuery(for: ownedCryptoIdentity, isWebSocket: .bool(false), delegateManager: delegateManager, within: obvContext) for serverQuery in serverQueries { postServerQuery(withObjectId: serverQuery.objectID, flowId: flowId) } @@ -172,7 +180,13 @@ extension ServerQueryCoordinator { do { let serverQueries = try PendingServerQuery.getAllServerQuery(delegateManager: delegateManager, within: obvContext) for serverQuery in serverQueries { - postServerQuery(withObjectId: serverQuery.objectID, flowId: flowId) + if serverQuery.isWebSocket { + // WebSocket server queries should have been deleted by now: they relate to an obsolete owned identity transfer protocol + assertionFailure() + } else { + // Other server queries can be re-posted + postServerQuery(withObjectId: serverQuery.objectID, flowId: flowId) + } } } catch(let error) { os_log("Could fetch server queries for the given owned identity.", log: log, type: .error, error.localizedDescription) @@ -182,6 +196,57 @@ extension ServerQueryCoordinator { } } + + + // Used during boostrap + + func deletePendingServerQueryOfNonExistingOwnedIdentities(flowId: FlowIdentifier) { + + guard let delegateManager = delegateManager else { + let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) + os_log("The Delegate Manager is not set", log: log, type: .fault) + assertionFailure() + return + } + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) + + guard let identityDelegate = delegateManager.identityDelegate else { + os_log("The identity delegate is not set", log: log, type: .fault) + assertionFailure() + return + } + + guard let contextCreator = delegateManager.contextCreator else { + os_log("The context creator manager is not set", log: log, type: .fault) + assertionFailure() + return + } + + contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in + do { + let existingOwnedIdentities = try identityDelegate.getOwnedIdentities(within: obvContext) + let serverQueries = try PendingServerQuery.getAllServerQuery(delegateManager: delegateManager, within: obvContext) + for serverQuery in serverQueries { + guard !serverQuery.isDeleted else { continue } + if let ownedCryptoIdentity = try? serverQuery.ownedIdentity { + if !existingOwnedIdentities.contains(ownedCryptoIdentity) { + serverQuery.deletePendingServerQuery(within: obvContext) + } + } else { + assertionFailure() + serverQuery.deletePendingServerQuery(within: obvContext) + } + } + try obvContext.save(logOnFailure: log) + } catch(let error) { + os_log("Could fetch server queries for the given owned identity.", log: log, type: .error, error.localizedDescription) + return + + } + + } + } } @@ -192,12 +257,16 @@ extension ServerQueryCoordinator: ServerQueryDelegate { private enum SyncQueueOutput { case previousTaskExists + case serverqueryDeletedAsOwnedIdentityIsNotActive case couldNotFindServerQueryInDatabase case newTaskToRun(task: URLSessionTask) case failedToCreateTask(methodName: String, error: Error) case serverSessionRequired(for: ObvCryptoIdentity, flowId: FlowIdentifier) + case webSocketQueryHandledByAnotherCoordinator + case serverQueryOwnedIdentityCannotBeParsed } + func postServerQuery(withObjectId objectId: NSManagedObjectID, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { @@ -210,6 +279,13 @@ extension ServerQueryCoordinator: ServerQueryDelegate { guard let contextCreator = delegateManager.contextCreator else { os_log("The context creator manager is not set", log: log, type: .fault) + assertionFailure() + return + } + + guard let identityDelegate = delegateManager.identityDelegate else { + os_log("The identity delegate is not set", log: log, type: .fault) + assertionFailure() return } @@ -226,14 +302,37 @@ extension ServerQueryCoordinator: ServerQueryDelegate { let serverQuery: PendingServerQuery do { - serverQuery = try PendingServerQuery.get(objectId: objectId, - delegateManager: delegateManager, - within: obvContext) + let _serverQuery = try PendingServerQuery.get(objectId: objectId, delegateManager: delegateManager, within: obvContext) + guard let _serverQuery else { + syncQueueOutput = .couldNotFindServerQueryInDatabase + return + } + serverQuery = _serverQuery } catch { + assertionFailure() syncQueueOutput = .couldNotFindServerQueryInDatabase return } - let ownedIdentity = serverQuery.ownedIdentity + + guard let ownedIdentity = try? serverQuery.ownedIdentity else { + syncQueueOutput = .serverQueryOwnedIdentityCannotBeParsed + return + } + + // Make sure the owned identity still exists + + do { + guard try identityDelegate.isOwnedIdentityActive(ownedIdentity: ownedIdentity, flowId: flowId) else { + // The owned identity does not exist anymore, we delete the server query + serverQuery.deletePendingServerQuery(within: obvContext) + try obvContext.save(logOnFailure: log) + syncQueueOutput = .serverqueryDeletedAsOwnedIdentityIsNotActive + return + } + } catch { + assertionFailure(error.localizedDescription) + return + } // If we reach this point, we do need to send the server query to the server @@ -242,11 +341,12 @@ extension ServerQueryCoordinator: ServerQueryDelegate { os_log("Creating a ObvServerDeviceDiscoveryMethod of the contact identity %@", log: log, type: .debug, contactIdentity.debugDescription) - let method = ObvServerDeviceDiscoveryMethod(ownedIdentity: serverQuery.ownedIdentity, toIdentity: contactIdentity, flowId: flowId) + let method = ObvServerDeviceDiscoveryMethod(ownedIdentity: ownedIdentity, toIdentity: contactIdentity, flowId: flowId) method.identityDelegate = delegateManager.identityDelegate let task: URLSessionDataTask do { task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription } catch let error { assertionFailure(error.localizedDescription) syncQueueOutput = .failedToCreateTask(methodName: "ObvServerDeviceDiscoveryMethod", error: error) @@ -257,13 +357,139 @@ extension ServerQueryCoordinator: ServerQueryDelegate { syncQueueOutput = .newTaskToRun(task: task) return + + case .ownedDeviceDiscovery: + + os_log("Creating an ObvServerOwnedDeviceDiscoveryMethod of the owned identity %@", log: log, type: .debug, ownedIdentity.debugDescription) + + let method = ObvServerOwnedDeviceDiscoveryMethod(ownedIdentity: ownedIdentity, flowId: flowId) + method.identityDelegate = delegateManager.identityDelegate + let task: URLSessionDataTask + do { + task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription + } catch let error { + assertionFailure(error.localizedDescription) + syncQueueOutput = .failedToCreateTask(methodName: "ObvServerOwnedDeviceDiscoveryMethod", error: error) + return + } + + insert(task, forObjectId: objectId, flowId: flowId) + + syncQueueOutput = .newTaskToRun(task: task) + return + + case .setOwnedDeviceName(ownedDeviceUID: let ownedDeviceUID, encryptedOwnedDeviceName: let encryptedOwnedDeviceName, isCurrentDevice: _): + + os_log("Creating an ObvServerOwnedDeviceManagementMethod (setOwnedDeviceName) of the owned identity %@", log: log, type: .debug, ownedIdentity.debugDescription) + + guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: ownedIdentity) else { + syncQueueOutput = .serverSessionRequired(for: ownedIdentity, flowId: flowId) + return + } + guard let token = serverSession.token else { + syncQueueOutput = .serverSessionRequired(for: ownedIdentity, flowId: flowId) + return + } + + let method = OwnedDeviceManagementServerMethod( + ownedIdentity: ownedIdentity, + token: token, + queryType: .setOwnedDeviceName(ownedDeviceUID: ownedDeviceUID, encryptedOwnedDeviceName: encryptedOwnedDeviceName), + flowId: flowId) + + method.identityDelegate = delegateManager.identityDelegate + let task: URLSessionDataTask + do { + task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription + } catch let error { + assertionFailure(error.localizedDescription) + syncQueueOutput = .failedToCreateTask(methodName: "OwnedDeviceManagementServerMethod", error: error) + return + } + + insert(task, forObjectId: objectId, flowId: flowId) + + syncQueueOutput = .newTaskToRun(task: task) + return + + case .deactivateOwnedDevice(ownedDeviceUID: let ownedDeviceUID, isCurrentDevice: _): + + os_log("Creating an ObvServerOwnedDeviceManagementMethod (deactivateOwnedDevice) of the owned identity %@", log: log, type: .debug, ownedIdentity.debugDescription) + + guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: ownedIdentity) else { + syncQueueOutput = .serverSessionRequired(for: ownedIdentity, flowId: flowId) + return + } + guard let token = serverSession.token else { + syncQueueOutput = .serverSessionRequired(for: ownedIdentity, flowId: flowId) + return + } + + let method = OwnedDeviceManagementServerMethod( + ownedIdentity: ownedIdentity, + token: token, + queryType: .deactivateOwnedDevice(ownedDeviceUID: ownedDeviceUID), + flowId: flowId) + + method.identityDelegate = delegateManager.identityDelegate + let task: URLSessionDataTask + do { + task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription + } catch let error { + assertionFailure(error.localizedDescription) + syncQueueOutput = .failedToCreateTask(methodName: "OwnedDeviceManagementServerMethod", error: error) + return + } + + insert(task, forObjectId: objectId, flowId: flowId) + + syncQueueOutput = .newTaskToRun(task: task) + return + + case .setUnexpiringOwnedDevice(ownedDeviceUID: let ownedDeviceUID): + + os_log("Creating an ObvServerOwnedDeviceManagementMethod (setUnexpiringOwnedDevice) of the owned identity %@ for device %{public}@", log: log, type: .debug, ownedIdentity.debugDescription, ownedDeviceUID.debugDescription) + + guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: ownedIdentity) else { + syncQueueOutput = .serverSessionRequired(for: ownedIdentity, flowId: flowId) + return + } + guard let token = serverSession.token else { + syncQueueOutput = .serverSessionRequired(for: ownedIdentity, flowId: flowId) + return + } + + let method = OwnedDeviceManagementServerMethod( + ownedIdentity: ownedIdentity, + token: token, + queryType: .setUnexpiringOwnedDevice(ownedDeviceUID: ownedDeviceUID), + flowId: flowId) + + method.identityDelegate = delegateManager.identityDelegate + let task: URLSessionDataTask + do { + task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription + } catch let error { + assertionFailure(error.localizedDescription) + syncQueueOutput = .failedToCreateTask(methodName: "OwnedDeviceManagementServerMethod", error: error) + return + } + + insert(task, forObjectId: objectId, flowId: flowId) + + syncQueueOutput = .newTaskToRun(task: task) + return case .putUserData(label: let label, dataURL: let dataURL, dataKey: let dataKey): os_log("Creating a ObvServerPutUserDataMethod", log: log, type: .debug) let authEnc = ObvCryptoSuite.sharedInstance.authenticatedEncryption() - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: ownedIdentity) else { + guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: ownedIdentity) else { syncQueueOutput = .serverSessionRequired(for: ownedIdentity, flowId: flowId) return } @@ -295,6 +521,7 @@ extension ServerQueryCoordinator: ServerQueryDelegate { let task: URLSessionDataTask do { task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription } catch let error { syncQueueOutput = .failedToCreateTask(methodName: "ObvServerPutUserDataMethod", error: error) return @@ -309,12 +536,13 @@ extension ServerQueryCoordinator: ServerQueryDelegate { os_log("Creating a ObvServerGetUserDataMethod of the contact identity %@", log: log, type: .debug, contactIdentity.debugDescription) - let method = ObvServerGetUserDataMethod(ownedIdentity: serverQuery.ownedIdentity, toIdentity: contactIdentity, serverLabel: label, flowId: flowId) + let method = ObvServerGetUserDataMethod(ownedIdentity: ownedIdentity, toIdentity: contactIdentity, serverLabel: label, flowId: flowId) method.identityDelegate = delegateManager.identityDelegate let task: URLSessionDataTask do { task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription } catch let error { syncQueueOutput = .failedToCreateTask(methodName: "ObvServerGetUserDataMethod", error: error) return @@ -340,7 +568,8 @@ extension ServerQueryCoordinator: ServerQueryDelegate { let task: URLSessionDataTask do { - task = try method.dataTask(within: self.session) + task = try method.dataTask(within: self.sessionForKeycloakRevocation) + task.taskDescription = serverQuery.queryType.taskDescription } catch let error { syncQueueOutput = .failedToCreateTask(methodName: "ObvServerCheckKeycloakRevocationMethod", error: error) return @@ -353,7 +582,7 @@ extension ServerQueryCoordinator: ServerQueryDelegate { case .createGroupBlob(groupIdentifier: let groupIdentifier, serverAuthenticationPublicKey: let serverAuthenticationPublicKey, encryptedBlob: let encryptedBlob): - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: ownedIdentity) else { + guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: ownedIdentity) else { syncQueueOutput = .serverSessionRequired(for: ownedIdentity, flowId: flowId) return } @@ -373,8 +602,9 @@ extension ServerQueryCoordinator: ServerQueryDelegate { let task: URLSessionDataTask do { task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription } catch let error { - syncQueueOutput = .failedToCreateTask(methodName: "ObvServerCheckKeycloakRevocationMethod", error: error) + syncQueueOutput = .failedToCreateTask(methodName: "ObvServerCreateGroupBlobServerMethod", error: error) return } @@ -393,8 +623,9 @@ extension ServerQueryCoordinator: ServerQueryDelegate { let task: URLSessionDataTask do { task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription } catch let error { - syncQueueOutput = .failedToCreateTask(methodName: "ObvServerCheckKeycloakRevocationMethod", error: error) + syncQueueOutput = .failedToCreateTask(methodName: "ObvServerGetGroupBlobServerMethod", error: error) return } @@ -414,6 +645,7 @@ extension ServerQueryCoordinator: ServerQueryDelegate { let task: URLSessionDataTask do { task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription } catch let error { syncQueueOutput = .failedToCreateTask(methodName: "ObvServerDeleteGroupBlobServerMethod", error: error) return @@ -435,6 +667,7 @@ extension ServerQueryCoordinator: ServerQueryDelegate { let task: URLSessionDataTask do { task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription } catch let error { syncQueueOutput = .failedToCreateTask(methodName: "ObvServerPutGroupLogServerMethod", error: error) return @@ -457,6 +690,7 @@ extension ServerQueryCoordinator: ServerQueryDelegate { let task: URLSessionDataTask do { task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription } catch let error { syncQueueOutput = .failedToCreateTask(methodName: "ObvServerGroupBlobLockServerMethod", error: error) return @@ -481,6 +715,7 @@ extension ServerQueryCoordinator: ServerQueryDelegate { let task: URLSessionDataTask do { task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription } catch let error { syncQueueOutput = .failedToCreateTask(methodName: "ObvServerGroupBlobUpdateServerMethod", error: error) return @@ -499,6 +734,7 @@ extension ServerQueryCoordinator: ServerQueryDelegate { let task: URLSessionDataTask do { task = try method.dataTask(within: self.session) + task.taskDescription = serverQuery.queryType.taskDescription } catch let error { syncQueueOutput = .failedToCreateTask(methodName: "GetKeycloakDataServerMethod", error: error) return @@ -509,6 +745,12 @@ extension ServerQueryCoordinator: ServerQueryDelegate { syncQueueOutput = .newTaskToRun(task: task) return + case .sourceGetSessionNumber, .sourceWaitForTargetConnection, .targetSendEphemeralIdentity, .transferRelay, .transferWait, .closeWebsocketConnection: + + assertionFailure("This query is be handled by the ServerQueryWebSocketCoordinator, this one should not have been called") + syncQueueOutput = .webSocketQueryHandledByAnotherCoordinator + return + } } @@ -522,6 +764,10 @@ extension ServerQueryCoordinator: ServerQueryDelegate { } switch syncQueueOutput! { + + case .serverqueryDeletedAsOwnedIdentityIsNotActive: + os_log("Server query was deleted as the identity is not active", log: log, type: .error) + return case .previousTaskExists: os_log("A running task already exists for pending server query %{public}@", log: log, type: .debug, objectId.debugDescription) @@ -537,12 +783,28 @@ extension ServerQueryCoordinator: ServerQueryDelegate { case .serverSessionRequired(for: let ownedIdentity, flowId: let flowId): // REMARK we will be called again by NetworkFetchFlowCoordinator#newToken - queueForCallingDelegate.async { - try? delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedIdentity, flowId: flowId) + Task.detached { [weak self] in + do { + _ = try await self?.delegateManager?.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedIdentity, currentInvalidToken: nil, flowId: flowId) + } catch { + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) + assertionFailure() + } } + return case .newTaskToRun(task: let task): os_log("New task to run for the server query %{public}@", log: log, type: .debug, objectId.debugDescription) task.resume() + + case .webSocketQueryHandledByAnotherCoordinator: + os_log("This coordinator received a server query that should be handled by another coordinator", log: log, type: .fault) + return + + case .serverQueryOwnedIdentityCannotBeParsed: + os_log("This coordinator received a server query for which we could not parse the owned identity. This server query should be deleted during next bootstrap", log: log, type: .fault) + assertionFailure() + return + } } } @@ -575,9 +837,65 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { guard error == nil else { os_log("The task failed for server query %{public}@: %@", log: log, type: .error, objectId.debugDescription, error!.localizedDescription) + _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + + // 2023-12-08 + // If the error domain is NSURLErrorDomain and the code is NSURLErrorCannotConnectToHost and the task was a checkKeycloakRevocation, it means that the keycloak is not accessible. + // In that very specific case we can only rely on revocation lists and return + + if let nsError = error as? NSError, nsError.domain == NSURLErrorDomain, let queryType = ServerQuery.QueryType(taskDescription: task.taskDescription), queryType.isCheckKeycloakRevocation { + + contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in + + let serverQuery: PendingServerQuery + do { + let _serverQuery = try PendingServerQuery.get(objectId: objectId, delegateManager: delegateManager, within: obvContext) + guard let _serverQuery else { + os_log("Could not find server query in database", log: log, type: .error) + return + } + serverQuery = _serverQuery + } catch { + os_log("Could not fetch server query from database: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + return + } + + guard serverQuery.queryType.isCheckKeycloakRevocation else { + assertionFailure() + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + } + return + } + + let serverResponseType = ServerResponse.ResponseType.checkKeycloakRevocation(verificationSuccessful: true) + serverQuery.responseType = serverResponseType + + do { + try obvContext.save(logOnFailure: log) + } catch { + os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + } + return + } + + Task { + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) + } + return + + } + + } else { + + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + } + } return } @@ -588,12 +906,23 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { let serverQuery: PendingServerQuery do { - serverQuery = try PendingServerQuery.get(objectId: objectId, - delegateManager: delegateManager, - within: obvContext) + let _serverQuery = try PendingServerQuery.get(objectId: objectId, delegateManager: delegateManager, within: obvContext) + guard let _serverQuery else { + os_log("Could not find server query in database", log: log, type: .error) + _ = removeInfoFor(task) + return + } + serverQuery = _serverQuery } catch { - os_log("Could not find server query in database", log: log, type: .fault) + os_log("Could not fetch server query from database: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) + assertionFailure() + return + } + + guard let ownedIdentity = try? serverQuery.ownedIdentity else { + os_log("This coordinator received a server query for which we could not parse the owned identity in urlSession(_:task:didCompleteWithError:). This server query should be deleted during next bootstrap", log: log, type: .fault) + assertionFailure() return } @@ -604,8 +933,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { guard let (status, deviceUids) = ObvServerDeviceDiscoveryMethod.parseObvServerResponse(responseData: responseData, using: log) else { os_log("Could not parse the server response for the ObvServerDeviceDiscoveryMethod task of pending server query %{public}@", log: log, type: .fault, objectId.debugDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } @@ -623,14 +952,14 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task { delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -638,8 +967,259 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { case .generalError: os_log("Server reported general error during the ObvServerDeviceDiscoveryMethod task for pending server query %@", log: log, type: .fault, objectId.debugDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + } + return + } + + case .ownedDeviceDiscovery: + + let result = ObvServerOwnedDeviceDiscoveryMethod.parseObvServerResponse(responseData: responseData, using: log) + + switch result { + case .success(let status): + + os_log("The ObvServerOwnedDeviceDiscoveryMethod returned status is %{public}@", log: log, type: .debug, String(reflecting: status)) + + switch status { + case .ok(encryptedOwnedDeviceDiscoveryResult: let encryptedOwnedDeviceDiscoveryResult): + + let serverResponseType = ServerResponse.ResponseType.ownedDeviceDiscovery(encryptedOwnedDeviceDiscoveryResult: encryptedOwnedDeviceDiscoveryResult) + serverQuery.responseType = serverResponseType + + do { + try obvContext.save(logOnFailure: log) + } catch { + os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) + _ = removeInfoFor(task) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + } + return + } + + _ = removeInfoFor(task) + Task { + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) + } + return + + case .generalError: + + _ = removeInfoFor(task) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + } + return + + } + + case .failure(let error): + + os_log("The ObvServerOwnedDeviceDiscoveryMethod failed: %{public}@", log: log, type: .fault, error.localizedDescription) + _ = removeInfoFor(task) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + } + return + + } + + case .setOwnedDeviceName(ownedDeviceUID: _, encryptedOwnedDeviceName: _, isCurrentDevice: let isCurrentDevice): + + let result = OwnedDeviceManagementServerMethod.parseObvServerResponse(responseData: responseData, using: log) + + switch result { + case .success(let status): + + os_log("The OwnedDeviceManagementServerMethod returned status is %{public}@", log: log, type: .debug, String(reflecting: status)) + + switch status { + + case .invalidSession: + processInvalidSessionForTask(task, ownedIdentity: ownedIdentity, flowId: flowId) + return + + case .deviceNotRegistered: + // In case the device for which we are setting a new name is the current device, we try again. + // Otherwise, we fail + if isCurrentDevice { + _ = removeInfoFor(task) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + } + return + } else { + let serverResponseType = ServerResponse.ResponseType.setOwnedDeviceName(success: false) + serverQuery.responseType = serverResponseType + // Continues after the end of the status block + } + + case .ok: + + let serverResponseType = ServerResponse.ResponseType.setOwnedDeviceName(success: true) + serverQuery.responseType = serverResponseType + // Continues after the end of the status block + + case .generalError: + + let serverResponseType = ServerResponse.ResponseType.setOwnedDeviceName(success: false) + serverQuery.responseType = serverResponseType + // Continues after the end of the status block + + } + + // Common to .ok, .generalError, and .deviceNotRegistered (in case we are setting the name of a remote device, not of the current one) + + do { + try obvContext.save(logOnFailure: log) + } catch { + os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) + _ = removeInfoFor(task) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + } + return + } + + _ = removeInfoFor(task) + Task { + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) + } + return + + case .failure(let error): + os_log("Could not parse the server response for the ObvServerCreateGroupBlobServerMethod task of pending server query %{public}@: %{public}@", log: log, type: .fault, objectId.debugDescription, error.localizedDescription) + _ = removeInfoFor(task) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + } + return + } + + case .deactivateOwnedDevice(ownedDeviceUID: _, isCurrentDevice: _): + + let result = OwnedDeviceManagementServerMethod.parseObvServerResponse(responseData: responseData, using: log) + + switch result { + case .success(let status): + + os_log("The OwnedDeviceManagementServerMethod (deactivateOwnedDevice) returned status is %{public}@", log: log, type: .debug, String(reflecting: status)) + + switch status { + + case .invalidSession: + processInvalidSessionForTask(task, ownedIdentity: ownedIdentity, flowId: flowId) + return + + case .deviceNotRegistered: + // In case the device we are deactivating is not registered, there is nothing left to do for which we are setting a new name is the current device, we try again. + let serverResponseType = ServerResponse.ResponseType.setOwnedDeviceName(success: true) + serverQuery.responseType = serverResponseType + // Continues after the end of the status block + + case .ok: + + let serverResponseType = ServerResponse.ResponseType.setOwnedDeviceName(success: true) + serverQuery.responseType = serverResponseType + // Continues after the end of the status block + + case .generalError: + + let serverResponseType = ServerResponse.ResponseType.setOwnedDeviceName(success: false) + serverQuery.responseType = serverResponseType + // Continues after the end of the status block + + } + + // Common to .ok, .generalError, and .deviceNotRegistered + + do { + try obvContext.save(logOnFailure: log) + } catch { + os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) + _ = removeInfoFor(task) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + } + return + } + + _ = removeInfoFor(task) + Task { + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) + } + return + + case .failure(let error): + os_log("Could not parse the server response for the ObvServerCreateGroupBlobServerMethod task of pending server query %{public}@: %{public}@", log: log, type: .fault, objectId.debugDescription, error.localizedDescription) + _ = removeInfoFor(task) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + } + return + } + + case .setUnexpiringOwnedDevice(ownedDeviceUID: _): + + let result = OwnedDeviceManagementServerMethod.parseObvServerResponse(responseData: responseData, using: log) + + switch result { + case .success(let status): + + os_log("The OwnedDeviceManagementServerMethod (setUnexpiringOwnedDevice) returned status is %{public}@", log: log, type: .debug, String(reflecting: status)) + + switch status { + + case .invalidSession: + processInvalidSessionForTask(task, ownedIdentity: ownedIdentity, flowId: flowId) + return + + case .deviceNotRegistered: + // In case the device we are deactivating is not registered, there is nothing left to do for which we are setting a new name is the current device, we try again. + let serverResponseType = ServerResponse.ResponseType.setOwnedDeviceName(success: true) + serverQuery.responseType = serverResponseType + // Continues after the end of the status block + + case .ok: + + let serverResponseType = ServerResponse.ResponseType.setOwnedDeviceName(success: true) + serverQuery.responseType = serverResponseType + // Continues after the end of the status block + + case .generalError: + + let serverResponseType = ServerResponse.ResponseType.setOwnedDeviceName(success: false) + serverQuery.responseType = serverResponseType + // Continues after the end of the status block + + } + + // Common to .ok, .generalError, and .deviceNotRegistered + + do { + try obvContext.save(logOnFailure: log) + } catch { + os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) + _ = removeInfoFor(task) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + } + return + } + + _ = removeInfoFor(task) + Task { + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) + } + return + + case .failure(let error): + os_log("Could not parse the server response for the ObvServerCreateGroupBlobServerMethod task of pending server query %{public}@: %{public}@", log: log, type: .fault, objectId.debugDescription, error.localizedDescription) + _ = removeInfoFor(task) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } @@ -662,20 +1242,20 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task { delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) } return case .invalidSession: - processInvalidSessionForTask(task, ownedIdentity: serverQuery.ownedIdentity, flowId: flowId) + processInvalidSessionForTask(task, ownedIdentity: ownedIdentity, flowId: flowId) return case .generalError: @@ -686,8 +1266,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { case .failure(let error): os_log("Could not parse the server response for the ObvServerPutUserDataMethod task of pending server query %{public}@: %{public}@", log: log, type: .fault, objectId.debugDescription, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } @@ -697,8 +1277,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { guard let (status, userDataPath) = ObvServerGetUserDataMethod.parseObvServerResponse(responseData: responseData, using: log, downloadedUserData: downloadedUserData, serverLabel: label) else { os_log("Could not parse the server response for the ObvServerGetUserDataMethod task of pending server query %{public}@", log: log, type: .fault, objectId.debugDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } @@ -735,14 +1315,14 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task { delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -752,8 +1332,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { guard let (status, verificationSuccessful) = ObvServerCheckKeycloakRevocationMethod.parseObvServerResponse(responseData: responseData, using: log) else { os_log("Could not parse the server response for the ObvServerCheckKeycloakRevocationMethod task of pending server query %{public}@", log: log, type: .fault, objectId.debugDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } @@ -771,14 +1351,14 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task { delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -800,7 +1380,7 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { switch status { case .invalidSession, .generalError: - processInvalidSessionForTask(task, ownedIdentity: serverQuery.ownedIdentity, flowId: flowId) + processInvalidSessionForTask(task, ownedIdentity: ownedIdentity, flowId: flowId) return case .ok: @@ -824,14 +1404,14 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task { delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -839,8 +1419,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { case .failure(let error): os_log("Could not parse the server response for the ObvServerCreateGroupBlobServerMethod task of pending server query %{public}@: %{public}@", log: log, type: .fault, objectId.debugDescription, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } @@ -858,8 +1438,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { case .groupIsLocked: _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -890,14 +1470,14 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task { delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -905,8 +1485,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { case .failure(let error): os_log("Could not parse the server response for the ObvServerGetGroupBlobServerMethod task of pending server query %{public}@: %{public}@", log: log, type: .fault, objectId.debugDescription, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } @@ -924,8 +1504,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { case .groupIsLocked: _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -950,14 +1530,14 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task { delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -965,8 +1545,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { case .failure(let error): os_log("Could not parse the server response for the ObvServerDeleteGroupBlobServerMethod task of pending server query %{public}@: %{public}@", log: log, type: .fault, objectId.debugDescription, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } @@ -984,8 +1564,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { case .groupIsLocked, .generalError: _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -999,14 +1579,14 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task { delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -1016,8 +1596,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { case .failure(let error): os_log("Could not parse the server response for the ObvServerPutGroupLogServerMethod task of pending server query %{public}@: %{public}@", log: log, type: .fault, objectId.debugDescription, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } @@ -1036,8 +1616,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { case .groupIsLocked, .generalError: _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -1062,14 +1642,14 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task { delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -1078,8 +1658,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { case .failure(let error): os_log("Could not parse the server response for the ObvServerGroupBlobLockServerMethod task of pending server query %{public}@: %{public}@", log: log, type: .fault, objectId.debugDescription, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -1099,8 +1679,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { case .generalError, .groupIsLocked: _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -1131,14 +1711,14 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task { delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -1146,8 +1726,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { case .failure(let error): os_log("Could not parse the server response for the ObvServerGroupBlobUpdateServerMethod task of pending server query %{public}@: %{public}@", log: log, type: .fault, objectId.debugDescription, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return @@ -1159,8 +1739,8 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { assertionFailure() os_log("Could not parse the server response for the GetKeycloakDataServerMethod task of pending server query %{public}@", log: log, type: .fault, objectId.debugDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } @@ -1197,17 +1777,22 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - queueForCallingDelegate.async { - delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerQuery(withObjectId: objectId, flowId: flowId) } return } _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task { delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: objectId, flowId: flowId) } return + + case .sourceGetSessionNumber, .sourceWaitForTargetConnection, .targetSendEphemeralIdentity, .transferRelay, .transferWait, .closeWebsocketConnection: + + assertionFailure("This case should never happen as this type of server query is handled by the ServerQueryWebSocketCoordinator") + return } @@ -1235,26 +1820,13 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: ownedIdentity) else { - _ = removeInfoFor(task) - queueForCallingDelegate.async { - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedIdentity, flowId: flowId) - } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() - } - } - return - } - - guard let token = serverSession.token else { + guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: ownedIdentity), let token = serverSession.token else { _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task.detached { [weak self] in do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedIdentity, flowId: flowId) + _ = try await self?.delegateManager?.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedIdentity, currentInvalidToken: nil, flowId: flowId) } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) assertionFailure() } } @@ -1262,11 +1834,11 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } _ = removeInfoFor(task) - queueForCallingDelegate.async { + Task.detached { [weak self] in do { - try delegateManager.networkFetchFlowDelegate.serverSession(of: ownedIdentity, hasInvalidToken: token, flowId: flowId) + _ = try await self?.delegateManager?.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedIdentity, currentInvalidToken: token, flowId: flowId) } catch { - os_log("Call to serverSession(of: ObvCryptoIdentity, hasInvalidToken: Data, flowId: FlowIdentifier) did fail", log: log, type: .fault) + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) assertionFailure() } } @@ -1276,3 +1848,27 @@ extension ServerQueryCoordinator: URLSessionDataDelegate { } } + + + +// MARK: - Storing the ServerQuery.QueryType into the task description + +fileprivate extension ServerQuery.QueryType { + + var taskDescription: String { + self.obvEncode().rawData.base64EncodedString() + } + + init?(taskDescription: String?) { + guard let taskDescription else { assertionFailure(); return nil } + guard let rawData = Data(base64Encoded: taskDescription), + let obvEncoded = ObvEncoded(withRawData: rawData) else { + assertionFailure() + return nil + } + self.init(obvEncoded) + } + +} + + diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerQueryWebSocketCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerQueryWebSocketCoordinator.swift new file mode 100644 index 00000000..dc15103f --- /dev/null +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerQueryWebSocketCoordinator.swift @@ -0,0 +1,854 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import OlvidUtils +import ObvCrypto +import ObvMetaManager +import ObvTypes + + +/// This coordinator is, for now, only used to perform the message exchanges between two devices performing an owned device transfer protocol. +/// The device with the identity to transfer is called the *source device*, while the other is called the *target device*. +/// +/// ┌──────┐ ┌──────┐ ┌──────┐ +/// │Source│ │Server│ │Target│ +/// └──┬───┘ └──┬───┘ └──┬───┘ +/// │ Get SN │ │ +/// │ ─────────────────────────────────> │ +/// │ │ │ +/// │ SN | CIDs │ │ +/// │ <───────────────────────────────── │ +/// │ │ │ +/// │ SN │ +/// │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─> +/// │ │ │ +/// │ │ SN | payload_1 │ +/// │ │ <───────────────────────────────── +/// │ │ │ +/// │ CIDt | payload1 │ │ +/// │ <───────────────────────────────── │ +/// │ │ │ +/// │ CIDt | payload2 (containing CIDs)│ │ +/// │ ─────────────────────────────────> │ +/// │ │ │ +/// │ │ CIDs | payload2 (containing CIDs)│ +/// │ │ ─────────────────────────────────> +/// │ │ │ +/// │ │ │────┐ +/// │ │ │ │ Checks equality between CIDs received from server and in the payload +/// │ │ │<───┘ +/// ┌──┴───┐ ┌──┴───┐ ┌──┴───┐ +/// │Source│ │Server│ │Target│ +/// └──────┘ └──────┘ └──────┘ +/// +/// +actor ServerQueryWebSocketCoordinator: ServerQueryWebSocketDelegate { + + private static let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem + private static let logCategory = "ServerPushNotificationsCoordinator" + private static var log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) + + weak var delegateManager: ObvNetworkFetchDelegateManager? + + private var webSocketTaskForProtocolInstanceUID = [UID: URLSessionWebSocketTask]() + + init(logPrefix: String) { + let logSubsystem = "\(logPrefix).\(Self.defaultLogSubsystem)" + Self.log = OSLog(subsystem: logSubsystem, category: Self.logCategory) + } + + func setDelegateManager(_ delegateManager: ObvNetworkFetchDelegateManager) { + self.delegateManager = delegateManager + } + + + func handleServerQuery(pendingServerQueryObjectId: NSManagedObjectID, flowId: FlowIdentifier) throws { + + guard let delegateManager else { assertionFailure(); throw ObvError.theDelegateManagerIsNil } + guard let contextCreator = delegateManager.contextCreator else { assertionFailure(); throw ObvError.theContextCreatorIsNil } + + contextCreator.performBackgroundTask(flowId: flowId) { [weak self] obvContext in + do { + + guard let pendingServerQuery = try PendingServerQuery.get(objectId: pendingServerQueryObjectId, delegateManager: delegateManager, within: obvContext) else { + assertionFailure() + return + } + + guard pendingServerQuery.isWebSocket else { + assertionFailure() + return + } + + switch pendingServerQuery.queryType { + + case .deviceDiscovery, + .putUserData, + .getUserData, + .checkKeycloakRevocation, + .createGroupBlob, + .getGroupBlob, + .deleteGroupBlob, + .putGroupLog, + .requestGroupBlobLock, + .updateGroupBlob, + .getKeycloakData, + .ownedDeviceDiscovery, + .setOwnedDeviceName, + .deactivateOwnedDevice, + .setUnexpiringOwnedDevice: + assertionFailure("This serverquery is handled by another coordinator. This one should not have been called.") + return + + case .sourceGetSessionNumber(protocolInstanceUID: let protocolInstanceUID): + Task { [weak self] in + guard let self else { return } + do { + + let response = try await handleSourceGetSessionNumberMessage(pendingServerQueryObjectId: pendingServerQueryObjectId, protocolInstanceUID: protocolInstanceUID) + + let sourceConnectionId = response.sourceConnectionId + let sessionNumber = try ObvOwnedIdentityTransferSessionNumber(sessionNumber: response.sessionNumber) + + try obvContext.performAndWaitOrThrow { + pendingServerQuery.responseType = ServerResponse.ResponseType.sourceGetSessionNumberMessage(result: + .requestSucceeded(sourceConnectionId: sourceConnectionId, sessionNumber: sessionNumber)) + try obvContext.save(logOnFailure: Self.log) + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: pendingServerQueryObjectId, flowId: flowId) + } + } catch { + + await closeCachedWebSocket(protocolInstanceUID: protocolInstanceUID) + + try? obvContext.performAndWaitOrThrow { + pendingServerQuery.responseType = ServerResponse.ResponseType.sourceGetSessionNumberMessage(result: .requestFailed) + try obvContext.save(logOnFailure: Self.log) + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: pendingServerQueryObjectId, flowId: flowId) + } + + } + } + + case .sourceWaitForTargetConnection(protocolInstanceUID: let protocolInstanceUID): + + Task { [weak self] in + guard let self else { return } + do { + + let response = try await handleSourceWaitForTargetConnectionMessage(protocolInstanceUID: protocolInstanceUID) + let targetConnectionId = response.otherConnectionId + let payload = response.payload + + try obvContext.performAndWaitOrThrow { + pendingServerQuery.responseType = ServerResponse.ResponseType.sourceWaitForTargetConnection(result: .requestSucceeded(targetConnectionId: targetConnectionId, payload: payload)) + try obvContext.save(logOnFailure: Self.log) + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: pendingServerQueryObjectId, flowId: flowId) + } + + } catch { + + await closeCachedWebSocket(protocolInstanceUID: protocolInstanceUID) + + try? obvContext.performAndWaitOrThrow { + pendingServerQuery.responseType = ServerResponse.ResponseType.sourceWaitForTargetConnection(result: .requestFailed) + try obvContext.save(logOnFailure: Self.log) + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: pendingServerQueryObjectId, flowId: flowId) + } + + } + } + + case .targetSendEphemeralIdentity(protocolInstanceUID: let protocolInstanceUID, transferSessionNumber: let transferSessionNumber, payload: let payload): + + Task { [weak self] in + guard let self else { return } + do { + + let response = try await handleTargetSendEphemeralIdentity( + pendingServerQueryObjectId: pendingServerQueryObjectId, + protocolInstanceUID: protocolInstanceUID, + transferSessionNumber: transferSessionNumber, + payload: payload) + + switch response { + + case .success((let otherConnectionId, let payload)): + + try obvContext.performAndWaitOrThrow { + pendingServerQuery.responseType = ServerResponse.ResponseType.targetSendEphemeralIdentity(result: .requestSucceeded(otherConnectionId: otherConnectionId, payload: payload)) + try obvContext.save(logOnFailure: Self.log) + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: pendingServerQueryObjectId, flowId: flowId) + } + + case .failure: + + // This happens when the transfer session number is incorrect + + try obvContext.performAndWaitOrThrow { + pendingServerQuery.responseType = ServerResponse.ResponseType.targetSendEphemeralIdentity(result: .incorrectTransferSessionNumber) + try obvContext.save(logOnFailure: Self.log) + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: pendingServerQueryObjectId, flowId: flowId) + } + + } + + } catch { + + await closeCachedWebSocket(protocolInstanceUID: protocolInstanceUID) + + try obvContext.performAndWaitOrThrow { + pendingServerQuery.responseType = ServerResponse.ResponseType.targetSendEphemeralIdentity(result: .requestDidFail) + try obvContext.save(logOnFailure: Self.log) + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: pendingServerQueryObjectId, flowId: flowId) + } + + } + } + + case .transferRelay(protocolInstanceUID: let protocolInstanceUID, connectionIdentifier: let connectionIdentifier, payload: let payload, thenCloseWebSocket: let thenCloseWebSocket): + + Task { [weak self] in + guard let self else { return } + do { + + let responsePayload = try await handleTransferRelay( + protocolInstanceUID: protocolInstanceUID, + connectionIdentifier: connectionIdentifier, + payload: payload) + + try obvContext.performAndWaitOrThrow { + pendingServerQuery.responseType = ServerResponse.ResponseType.transferRelay(result: .requestSucceeded(payload: responsePayload)) + try obvContext.save(logOnFailure: Self.log) + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: pendingServerQueryObjectId, flowId: flowId) + } + + if thenCloseWebSocket { + await closeCachedWebSocket(protocolInstanceUID: protocolInstanceUID) + } + + } catch { + + await closeCachedWebSocket(protocolInstanceUID: protocolInstanceUID) + + try? obvContext.performAndWaitOrThrow { + pendingServerQuery.responseType = ServerResponse.ResponseType.transferRelay(result: .requestFailed) + try obvContext.save(logOnFailure: Self.log) + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: pendingServerQueryObjectId, flowId: flowId) + } + + } + } + + case .transferWait(protocolInstanceUID: let protocolInstanceUID, connectionIdentifier: let connectionIdentifier): + + Task { [weak self] in + guard let self else { return } + do { + + let responsePayload = try await handleTransferWait(protocolInstanceUID: protocolInstanceUID, connectionIdentifier: connectionIdentifier) + + try obvContext.performAndWaitOrThrow { + pendingServerQuery.responseType = ServerResponse.ResponseType.transferWait(result: .requestSucceeded(payload: responsePayload)) + try obvContext.save(logOnFailure: Self.log) + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: pendingServerQueryObjectId, flowId: flowId) + } + + } catch { + + await closeCachedWebSocket(protocolInstanceUID: protocolInstanceUID) + + try? obvContext.performAndWaitOrThrow { + pendingServerQuery.responseType = ServerResponse.ResponseType.transferWait(result: .requestFailed) + try obvContext.save(logOnFailure: Self.log) + delegateManager.networkFetchFlowDelegate.successfullProcessOfServerQuery(withObjectId: pendingServerQueryObjectId, flowId: flowId) + } + + } + } + + case .closeWebsocketConnection(protocolInstanceUID: let protocolInstanceUID): + + Task { [weak self] in + do { + + guard let self else { return } + + await closeCachedWebSocket(protocolInstanceUID: protocolInstanceUID) + + try obvContext.performAndWaitOrThrow { + pendingServerQuery.deletePendingServerQuery(within: obvContext) + try obvContext.save(logOnFailure: Self.log) + } + + } catch { + assertionFailure(error.localizedDescription) + } + } + + } + + } catch { + assertionFailure(error.localizedDescription) + } + } + + } + + + /// The source device sends the first message to the server, and receives a response back, containing the session number SN. + private func handleSourceGetSessionNumberMessage(pendingServerQueryObjectId: NSManagedObjectID, protocolInstanceUID: UID) async throws -> JsonRequestSourceResponse { + + // We do not expect the WebSocket to exist at this point, this is the first possible query made by the source device + + guard webSocketTaskForProtocolInstanceUID[protocolInstanceUID] == nil else { + assertionFailure() + throw ObvError.unexpectedNonNilWebSocketTask + } + + // Create, cache, and connect the WebScoket + + let webSocketTask = getOrCreateAndCacheWebSocket(protocolInstanceUID: protocolInstanceUID) + + // Send the JsonRequestSource message + + assert(webSocketTask.state == .running) + let message = try JsonRequestSource().getURLSessionWebSocketTaskMessage() + try await webSocketTask.send(message) + + // Wait for the response + + while true { + + let serverMessage = try await webSocketTask.receive() + + guard try !serverMessage.isEmptyMessage else { + // The message is empty (e.g., has an empty string), we wait for the next one + continue + } + + guard let requestSourceResponse = try? JsonRequestSourceResponse(serverMessage) else { + assertionFailure() + throw ObvError.responseParsingFailed + } + + return requestSourceResponse + + } + + } + + + private func handleSourceWaitForTargetConnectionMessage(protocolInstanceUID: UID) async throws -> JsonRequestTargetResponse { + + // At this point, we expect the WebSocket to exist already + + guard let webSocketTask = webSocketTaskForProtocolInstanceUID[protocolInstanceUID] else { + assertionFailure() + throw ObvError.unexpectedNilWebSocketTask + } + + // No message to send, we only wait for a message sent by the target device + + while true { + + let serverMessage = try await webSocketTask.receive() + + guard try !serverMessage.isEmptyMessage else { + // The message is empty (e.g., has an empty string), we wait for the next one + continue + } + + if let requestTargetResponse = try? JsonRequestTargetResponse(serverMessage) { + + // The message is an appropriate response structure + // At this point, we have no connection identifier to check against, since it is the first time we receive the target connection identifier + // We can safely return the response + + return requestTargetResponse + + } + + } + + } + + + /// The handled server query is sent by the owned identity transfer protocol on the target device + /// The transfer session number we got as a parameter was read by the user on the source device and entered by the user on this target device. + /// We send it to the server in the JsonRequestTarget message. We then receive a response. If the session number was incorrect, we return this information to the protocol. + /// If it is correct, we wait until we receive a JsonRequestTargetResponse from the source device. + private func handleTargetSendEphemeralIdentity(pendingServerQueryObjectId: NSManagedObjectID, protocolInstanceUID: UID, transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, payload: Data) async throws -> Result<(otherConnectionId: String, payload: Data), ObvError> { + + // We do not expect the WebSocket to exist at this point, this is the first possible query made by the target device + + guard webSocketTaskForProtocolInstanceUID[protocolInstanceUID] == nil else { + assertionFailure() + throw ObvError.unexpectedNonNilWebSocketTask + } + + // Create, cache, and connect the WebScoket + + let webSocketTask = getOrCreateAndCacheWebSocket(protocolInstanceUID: protocolInstanceUID) + + // Send the JsonRequestTarget message + + assert(webSocketTask.state == .running) + + if payload.count > ObvConstants.transferMaxPayloadSize { + let (fragments, totalFragments) = try Self.createPayloadFragmentsFromLargePayload(payload: payload, transferMaxPayloadSize: ObvConstants.transferMaxPayloadSize) + for (fragmentNumber, payloadFragment) in fragments { + let message = try JsonRequestTarget(sessionNumber: transferSessionNumber.sessionNumber, payload: payloadFragment, fragmentNumber: fragmentNumber, totalFragments: totalFragments).getURLSessionWebSocketTaskMessage() + try await webSocketTask.send(message) + } + } else { + let message = try JsonRequestTarget(sessionNumber: transferSessionNumber.sessionNumber, payload: payload, fragmentNumber: nil, totalFragments: nil).getURLSessionWebSocketTaskMessage() + try await webSocketTask.send(message) + } + + // Wait for an appropriate response + + var fragments = [Int: JsonRequestTargetResponse]() // Just in case the response appends to be fragmented + var otherConnectionId: String? + + while true { + + let serverMessage = try await webSocketTask.receive() + + guard try !serverMessage.isEmptyMessage else { + // The message is empty (e.g., has an empty string), we wait for the next one + continue + } + + if (try? JsonError(serverMessage)) != nil { + return .failure(ObvError.wrongSessionNumberIdentifier) + } + + if let requestTargetResponse = try? JsonRequestTargetResponse(serverMessage) { + + if otherConnectionId == nil { + otherConnectionId = requestTargetResponse.otherConnectionId + } else { + guard otherConnectionId == requestTargetResponse.otherConnectionId else { + assertionFailure() + throw ObvError.errorReceivedFromServer + } + } + + // If the response is fragmented, accumulate the fragments until they are all available. + // Otherwise, return the payload + + if let fragmentNumber = requestTargetResponse.fragmentNumber, let totalFragments = requestTargetResponse.totalFragments { + fragments[fragmentNumber] = requestTargetResponse + if fragments.count == totalFragments { + // We have all the fragments. We concatenate the payloads and return the resulting payload + let payload = fragments.concatenatePayloads() + let otherConnectionId = otherConnectionId ?? requestTargetResponse.otherConnectionId + return .success((otherConnectionId: otherConnectionId, payload: payload)) + } else { + // Wait for more fragments + continue + } + } else { + let payload = requestTargetResponse.payload + let otherConnectionId = otherConnectionId ?? requestTargetResponse.otherConnectionId + return .success((otherConnectionId: otherConnectionId, payload: payload)) + } + + } + + } + + } + + + /// Returns the payload of the JsonRequestTargetResponse + private func handleTransferRelay(protocolInstanceUID: UID, connectionIdentifier: String, payload: Data) async throws -> Data { + + // At this point, we expect the WebSocket to exist already + + guard let webSocketTask = webSocketTaskForProtocolInstanceUID[protocolInstanceUID] else { + assertionFailure() + throw ObvError.unexpectedNilWebSocketTask + } + + // Send the message to transfer to the other device + + assert(webSocketTask.state == .running) + + if payload.count > ObvConstants.transferMaxPayloadSize { + let (fragments, totalFragments) = try Self.createPayloadFragmentsFromLargePayload(payload: payload, transferMaxPayloadSize: ObvConstants.transferMaxPayloadSize) + for (fragmentNumber, payloadFragment) in fragments { + let message = try JsonRequestRelay(relayConnectionId: connectionIdentifier, payload: payloadFragment, fragmentNumber: fragmentNumber, totalFragments: totalFragments).getURLSessionWebSocketTaskMessage() + try await webSocketTask.send(message) + } + } else { + let message = try JsonRequestRelay(relayConnectionId: connectionIdentifier, payload: payload, fragmentNumber: nil, totalFragments: nil).getURLSessionWebSocketTaskMessage() + try await webSocketTask.send(message) + } + + // Wait for the response + + var fragments = [Int: JsonRequestTargetResponse]() // Just in case the response appends to be fragmented + + while true { + + let serverMessage = try await webSocketTask.receive() + + guard try !serverMessage.isEmptyMessage else { + // The message is empty (e.g., has an empty string), we wait for the next one + continue + } + + if (try? JsonError(serverMessage)) != nil { + throw ObvError.errorReceivedFromServer + } + + if let requestTargetResponse = try? JsonRequestTargetResponse(serverMessage) { + + // The message is an appropriate response structure + + // We check that the connection identifier is the one we expect + guard requestTargetResponse.otherConnectionId == connectionIdentifier else { + assertionFailure() + continue + } + + // If the response is fragmented, accumulate the fragments until they are all available. + // Otherwise, return the payload + + if let fragmentNumber = requestTargetResponse.fragmentNumber, let totalFragments = requestTargetResponse.totalFragments { + fragments[fragmentNumber] = requestTargetResponse + if fragments.count == totalFragments { + // We have all the fragments. We concatenate the payloads and return the resulting payload + let payload = fragments.concatenatePayloads() + return payload + } else { + // Wait for more fragments + continue + } + } else { + return requestTargetResponse.payload + } + + } + + } + + } + + + /// Returns the payload of the JsonRequestTargetResponse + private func handleTransferWait(protocolInstanceUID: UID, connectionIdentifier: String) async throws -> Data { + + // At this point, we expect the WebSocket to exist already + + guard let webSocketTask = webSocketTaskForProtocolInstanceUID[protocolInstanceUID] else { + assertionFailure() + throw ObvError.unexpectedNilWebSocketTask + } + + // Wait for the response + + var fragments = [Int: JsonRequestTargetResponse]() // Just in case the response appends to be fragmented + + while true { + + let serverMessage = try await webSocketTask.receive() + + guard try !serverMessage.isEmptyMessage else { + // The message is empty (e.g., has an empty string), we wait for the next one + continue + } + + if (try? JsonError(serverMessage)) != nil { + throw ObvError.errorReceivedFromServer + } + + if let requestTargetResponse = try? JsonRequestTargetResponse(serverMessage) { + + // The message is an appropriate response structure + + // We check that the connection identifier is the one we expect + guard requestTargetResponse.otherConnectionId == connectionIdentifier else { + assertionFailure() + continue + } + + // If the response is fragmented, accumulate the fragments until they are all available. + // Otherwise, return the payload + + if let fragmentNumber = requestTargetResponse.fragmentNumber, let totalFragments = requestTargetResponse.totalFragments { + fragments[fragmentNumber] = requestTargetResponse + if fragments.count == totalFragments { + // We have all the fragments. We concatenate the payloads and return the resulting payload + let payload = fragments.concatenatePayloads() + return payload + } else { + // Wait for more fragments + continue + } + } else { + return requestTargetResponse.payload + } + + } + + } + + } + + + private func getOrCreateAndCacheWebSocket(protocolInstanceUID: UID) -> URLSessionWebSocketTask { + if let webSocketTask = webSocketTaskForProtocolInstanceUID[protocolInstanceUID] { + return webSocketTask + } else { + let webSocketTask = URLSession.shared.webSocketTask(with: ObvConstants.transferWSServerURL) + webSocketTask.resume() + webSocketTaskForProtocolInstanceUID[protocolInstanceUID] = webSocketTask + return webSocketTask + } + } + + + private func closeCachedWebSocket(protocolInstanceUID: UID) { + guard let webSocketTask = webSocketTaskForProtocolInstanceUID.removeValue(forKey: protocolInstanceUID) else { return } + webSocketTask.cancel(with: .normalClosure, reason: nil) + } + + + + // Errors + + enum ObvError: Error { + case theDelegateManagerIsNil + case theContextCreatorIsNil + case unexpectedNonNilWebSocketTask + case unexpectedNilWebSocketTask + case responseParsingFailed + case wrongSessionNumberIdentifier + case errorReceivedFromServer + case overflow + } + +} + + + +// MARK: - Messages to send and receive on the WebSocket handling "WebSocket" server queries + +private struct JsonRequestSource: Encodable { + private let action = "source" + func getURLSessionWebSocketTaskMessage() throws -> URLSessionWebSocketTask.Message { + let encoder = JSONEncoder() + let data = try encoder.encode(self) + let string = String(data: data, encoding: .utf8)! + return URLSessionWebSocketTask.Message.string(string) + } +} + + +private struct JsonRequestSourceResponse: Decodable { + let sessionNumber: Int + let sourceConnectionId: String + enum CodingKeys: String, CodingKey { + case sessionNumber = "sessionNumber" + case sourceConnectionId = "awsConnectionId" + } + init(_ message: URLSessionWebSocketTask.Message) throws { + let decoder = JSONDecoder() + let receivedData: Data + switch message { + case .data(let data): + receivedData = data + case .string(let string): + guard let _receivedData = string.data(using: .utf8) else { + throw ObvError.couldNotParseString + } + receivedData = _receivedData + @unknown default: + assertionFailure() + throw ObvError.unexpectedType + } + self = try decoder.decode(Self.self, from: receivedData) + } + enum ObvError: Error { + case couldNotParseString + case unexpectedType + } +} + + +private struct JsonRequestTarget: Encodable { + private let action = "target" + let sessionNumber: Int + let payload: Data + let fragmentNumber: Int? + let totalFragments: Int? + + func getURLSessionWebSocketTaskMessage() throws -> URLSessionWebSocketTask.Message { + let encoder = JSONEncoder() + let data = try encoder.encode(self) + let string = String(data: data, encoding: .utf8)! + return URLSessionWebSocketTask.Message.string(string) + } +} + + +private struct JsonRequestTargetResponse: Decodable { + let otherConnectionId: String + let payload: Data + let fragmentNumber: Int? + let totalFragments: Int? + init(_ message: URLSessionWebSocketTask.Message) throws { + let decoder = JSONDecoder() + let receivedData: Data + switch message { + case .data(let data): + receivedData = data + case .string(let string): + guard let _receivedData = string.data(using: .utf8) else { + throw ObvError.couldNotParseString + } + receivedData = _receivedData + @unknown default: + assertionFailure() + throw ObvError.unexpectedType + } + self = try decoder.decode(Self.self, from: receivedData) + } + enum ObvError: Error { + case couldNotParseString + case unexpectedType + } +} + + +private struct JsonRequestRelay: Encodable { + private let action = "relay" + let relayConnectionId: String + let payload: Data + let fragmentNumber: Int? + let totalFragments: Int? + func getURLSessionWebSocketTaskMessage() throws -> URLSessionWebSocketTask.Message { + let encoder = JSONEncoder() + let data = try encoder.encode(self) + let string = String(data: data, encoding: .utf8)! + return URLSessionWebSocketTask.Message.string(string) + } +} + + +private struct JsonError: Decodable { + let errorCode: Int + init(_ message: URLSessionWebSocketTask.Message) throws { + let decoder = JSONDecoder() + let receivedData: Data + switch message { + case .data(let data): + receivedData = data + case .string(let string): + guard let _receivedData = string.data(using: .utf8) else { + throw ObvError.couldNotParseString + } + receivedData = _receivedData + @unknown default: + assertionFailure() + throw ObvError.unexpectedType + } + do { + self = try decoder.decode(Self.self, from: receivedData) + } catch { + throw error + } + } + enum ObvError: Error { + case couldNotParseString + case unexpectedType + } +} + + +// MARK: - Private Helpers + +fileprivate extension URLSessionWebSocketTask.Message { + + var isEmptyMessage: Bool { + get throws { + switch self { + case .data(let data): + return data.isEmpty + case .string(let string): + return string.isEmpty + @unknown default: + assertionFailure() + throw ObvError.unknownMessageKind + } + } + } + + enum ObvError: Error { + case unknownMessageKind + } + +} + + +fileprivate extension [Int : JsonRequestTargetResponse] { + + func concatenatePayloads() -> Data { + let payload = self + .sorted(by: { $0.key < $1.key }) + .map(\.value) + .map(\.payload) + .reduce(Data(), { $0 + $1 }) + return payload + } + +} + + +fileprivate extension ServerQueryWebSocketCoordinator { + + static func createPayloadFragmentsFromLargePayload(payload: Data, transferMaxPayloadSize: Int) throws -> (fragments: [Int : Data], totalFragments: Int) { + var fragments = [Int : Data]() + let totalFragments = 1 + (payload.count - 1) / ObvConstants.transferMaxPayloadSize + for fragmentNumber in 0..= payload.startIndex, upperIndex <= payload.endIndex, startIndex <= upperIndex else { + assertionFailure() + throw ObvError.overflow + } + let payloadFragment = payload[startIndex... + */ + +import Foundation +import OlvidUtils +import ObvCrypto +import CoreData +import os.log + + +final class DeleteServerSessionOperation: ContextualOperationWithSpecificReasonForCancel { + + private let ownedCryptoIdentity: ObvCryptoIdentity + + init(ownedCryptoIdentity: ObvCryptoIdentity) { + self.ownedCryptoIdentity = ownedCryptoIdentity + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + try ServerSession.deleteAllSessionsOfIdentity(ownedCryptoIdentity, within: obvContext.context) + + } catch { + + return cancel(withReason: .coreDataError(error: error)) + + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + + public var logType: OSLogType { + switch self { + case .coreDataError: + return .fault + } + } + + public var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + } + } + + } + +} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/Operations/GetLocalServerSessionTokenAndAPIKeyElementsOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/Operations/GetLocalServerSessionTokenAndAPIKeyElementsOperation.swift new file mode 100644 index 00000000..5a12186c --- /dev/null +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/Operations/GetLocalServerSessionTokenAndAPIKeyElementsOperation.swift @@ -0,0 +1,78 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import ObvCrypto +import CoreData +import os.log +import ObvTypes + + +final class GetLocalServerSessionTokenAndAPIKeyElementsOperation: ContextualOperationWithSpecificReasonForCancel { + + private let ownedCryptoIdentity: ObvCryptoIdentity + + init(ownedCryptoIdentity: ObvCryptoIdentity) { + self.ownedCryptoIdentity = ownedCryptoIdentity + super.init() + } + + private(set) var serverSessionTokenAndAPIKeyElements: (serverSessionToken: Data, apiKeyElements: APIKeyElements)? + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + let serverSession = try ServerSession.getOrCreate(within: obvContext.context, withIdentity: ownedCryptoIdentity) + + if let serverSessionToken = serverSession.token, let apiKeyElements = serverSession.apiKeyElements { + self.serverSessionTokenAndAPIKeyElements = (serverSessionToken, apiKeyElements) + } + + } catch { + + return cancel(withReason: .coreDataError(error: error)) + + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + + public var logType: OSLogType { + switch self { + case .coreDataError: + return .fault + } + } + + public var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + } + } + + } + +} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/Operations/ResetServerSessionCorrespondingToInvalidTokenOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/Operations/ResetServerSessionCorrespondingToInvalidTokenOperation.swift new file mode 100644 index 00000000..c535ad46 --- /dev/null +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/Operations/ResetServerSessionCorrespondingToInvalidTokenOperation.swift @@ -0,0 +1,81 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import ObvCrypto +import CoreData +import os.log + + +final class ResetServerSessionCorrespondingToInvalidTokenOperation: ContextualOperationWithSpecificReasonForCancel { + + private let ownedCryptoIdentity: ObvCryptoIdentity + private let invalidToken: Data + + init(ownedCryptoIdentity: ObvCryptoIdentity, invalidToken: Data) { + self.ownedCryptoIdentity = ownedCryptoIdentity + self.invalidToken = invalidToken + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + let serverSession = try ServerSession.getOrCreate(within: obvContext.context, withIdentity: ownedCryptoIdentity) + + guard serverSession.token == invalidToken else { + // The token of the current session is not the one that is invalid. + // There is nothing left to do + return + } + + serverSession.resetSession() + + } catch { + + return cancel(withReason: .coreDataError(error: error)) + + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + + public var logType: OSLogType { + switch self { + case .coreDataError: + return .fault + } + } + + public var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + } + } + + } + +} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/Operations/SaveServerSessionTokenAndAPIKeyElementsOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/Operations/SaveServerSessionTokenAndAPIKeyElementsOperation.swift new file mode 100644 index 00000000..5631a4e8 --- /dev/null +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/Operations/SaveServerSessionTokenAndAPIKeyElementsOperation.swift @@ -0,0 +1,79 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import ObvCrypto +import CoreData +import os.log +import ObvTypes + + +final class SaveServerSessionTokenAndAPIKeyElementsOperation: ContextualOperationWithSpecificReasonForCancel { + + private let ownedCryptoIdentity: ObvCryptoIdentity + private let serverSessionTokenAndAPIKeyElements: (serverSessionToken: Data, apiKeyElements: APIKeyElements) + + init(ownedCryptoIdentity: ObvCryptoIdentity, serverSessionTokenAndAPIKeyElements: (serverSessionToken: Data, apiKeyElements: APIKeyElements)) { + self.ownedCryptoIdentity = ownedCryptoIdentity + self.serverSessionTokenAndAPIKeyElements = serverSessionTokenAndAPIKeyElements + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + let serverSession = try ServerSession.getOrCreate(within: obvContext.context, withIdentity: ownedCryptoIdentity) + + serverSession.save( + serverSessionToken: serverSessionTokenAndAPIKeyElements.serverSessionToken, + apiKeyElements: serverSessionTokenAndAPIKeyElements.apiKeyElements) + + } catch { + + return cancel(withReason: .coreDataError(error: error)) + + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + + public var logType: OSLogType { + switch self { + case .coreDataError: + return .fault + } + } + + public var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + } + } + + } + +} + diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/ServerSessionCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/ServerSessionCoordinator.swift new file mode 100644 index 00000000..a86568b0 --- /dev/null +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerSessionCoordinator/ServerSessionCoordinator.swift @@ -0,0 +1,625 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import ObvServerInterface +import ObvCrypto +import ObvTypes +import OlvidUtils +import ObvMetaManager + + +actor ServerSessionCoordinator: ServerSessionDelegate { + + private static let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem + private static let logCategory = "ServerSessionCreator" + private static var log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) + + private let prng: PRNGService + + weak var delegateManager: ObvNetworkFetchDelegateManager? + + /// Keys are nonces, values are server session tokens + private var cache = [ObvCryptoIdentity: ServerSessionCreationTask]() + + private enum ServerSessionCreationTask { + case inProgress(Task<(serverSessionToken: Data, apiKeyElements: APIKeyElements), Error>) + case ready((serverSessionToken: Data, apiKeyElements: APIKeyElements)) + } + + + init(prng: PRNGService, logPrefix: String) { + self.prng = prng + let logSubsystem = "\(logPrefix).\(Self.defaultLogSubsystem)" + Self.log = OSLog(subsystem: logSubsystem, category: Self.logCategory) + } + + + func setDelegateManager(_ delegateManager: ObvNetworkFetchDelegateManager) { + self.delegateManager = delegateManager + } + + + func deleteServerSession(of ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws { + + let requestUUID = UUID() + + os_log("䷍[%{public}@] Deleting server session", log: Self.log, type: .info, requestUUID.debugDescription) + + if let cached = cache[ownedCryptoIdentity] { + switch cached { + case .inProgress: + break + case .ready: + cache.removeValue(forKey: ownedCryptoIdentity) + } + } + + try await executeDeleteServerSessionOperation(of: ownedCryptoIdentity, flowId: flowId) + + os_log("䷍[%{public}@] Server session deleted", log: Self.log, type: .info, requestUUID.debugDescription) + + } + + + /// Returns a valid server session token: either the one that is cached (if still valid), or a new one, provided by the server after performing a valid challenge/response. + func getValidServerSessionToken(for ownedCryptoIdentity: ObvCryptoIdentity, currentInvalidToken: Data?, flowId: FlowIdentifier) async throws -> (serverSessionToken: Data, apiKeyElements: APIKeyElements) { + + let requestUUID = UUID() + + os_log("䷍[%{public}@] getValidServerSessionToken called (currentInvalidToken: %{public}@)", log: Self.log, type: .info, requestUUID.debugDescription, currentInvalidToken?.hexString() ?? "nil") + + let result = try await getValidServerSessionToken(for: ownedCryptoIdentity, currentInvalidToken: currentInvalidToken, flowId: flowId, requestUUID: requestUUID) + + os_log("䷍[%{public}@] getValidServerSessionToken returns (token: %{public}@)", log: Self.log, type: .info, requestUUID.debugDescription, result.serverSessionToken.hexString()) + + return result + + } + + + + + // MARK: - Helper methods + + private func getValidServerSessionToken(for ownedCryptoIdentity: ObvCryptoIdentity, currentInvalidToken: Data?, flowId: FlowIdentifier, requestUUID: UUID) async throws -> (serverSessionToken: Data, apiKeyElements: APIKeyElements) { + + if let currentInvalidToken { + + // Clean the cache in case a .ready value contains the invalid token + if let cached = cache[ownedCryptoIdentity] { + switch cached { + case .inProgress: + break + case .ready(let (cachedToken, _)): + if cachedToken == currentInvalidToken { + os_log("䷍[%{public}@] Cached (ready) value found but the token is invalid. Removing the value from cache", log: Self.log, type: .info, requestUUID.debugDescription, cachedToken.hexString()) + cache.removeValue(forKey: ownedCryptoIdentity) + } + } + } + // Reset the ServerSession stode in Core Data in case is stores the invalid token + os_log("䷍[%{public}@] Calling resetServerSessionCorrespondingToInvalidToken", log: Self.log, type: .info, requestUUID.debugDescription) + try await resetServerSessionCorrespondingToInvalidToken( + for: ownedCryptoIdentity, + currentInvalidToken: currentInvalidToken, + flowId: flowId) + + } + + if let cached = cache[ownedCryptoIdentity] { + switch cached { + case .ready(let (cachedToken, cachedAPIKeyElements)): + if cachedToken != currentInvalidToken { + os_log("䷍[%{public}@] Cached (ready) value found (token: %{public}@)", log: Self.log, type: .info, requestUUID.debugDescription, cachedToken.hexString()) + return (cachedToken, cachedAPIKeyElements) + } else { + os_log("䷍[%{public}@] Cached (ready) value found but the token is invalid", log: Self.log, type: .info, requestUUID.debugDescription, cachedToken.hexString()) + cache.removeValue(forKey: ownedCryptoIdentity) + } + case .inProgress(let task): + os_log("䷍[%{public}@] Cached (inProgress) value found. Waiting for value...", log: Self.log, type: .info, requestUUID.debugDescription) + return try await task.value + } + } + + os_log("䷍[%{public}@] No cached value found", log: Self.log, type: .info, requestUUID.debugDescription) + + // If we reach this point, no valid token was found in cache. + + let task: Task<(serverSessionToken: Data, apiKeyElements: APIKeyElements), Error> = createTaskForGettingServerSession(for: ownedCryptoIdentity, requestUUID: requestUUID, flowId: flowId) + + cache[ownedCryptoIdentity] = .inProgress(task) + + os_log("䷍[%{public}@] Added an inProgress task in cache", log: Self.log, type: .info, requestUUID.debugDescription) + + do { + os_log("䷍[%{public}@] Waiting for value...", log: Self.log, type: .info, requestUUID.debugDescription) + let (serverSessionToken, apiKeyElements) = try await task.value + cache[ownedCryptoIdentity] = .ready((serverSessionToken, apiKeyElements)) + os_log("䷍[%{public}@] Returning value", log: Self.log, type: .info, requestUUID.debugDescription) + return (serverSessionToken, apiKeyElements) + } catch { + cache.removeValue(forKey: ownedCryptoIdentity) + throw error + } + + } + + + private func createTaskForGettingServerSession(for ownedCryptoIdentity: ObvCryptoIdentity, requestUUID: UUID, flowId: FlowIdentifier) -> Task<(serverSessionToken: Data, apiKeyElements: APIKeyElements), Error> { + + return Task { + + let localServerSessionTokenAndAPIKeyElements = try await getLocalServerSessionTokenAndAPIKeyElements(for: ownedCryptoIdentity, flowId: flowId) + + if let localServerSessionTokenAndAPIKeyElements { + // A cached session token exist, we return it + os_log("䷍[%{public}@] Found local value in database. Returning it now", log: Self.log, type: .info, requestUUID.debugDescription) + return localServerSessionTokenAndAPIKeyElements + } + + os_log("䷍[%{public}@] No local value found. Requesting a challenge to the server...", log: Self.log, type: .info, requestUUID.debugDescription) + + let nonce = prng.genBytes(count: ObvConstants.serverSessionNonceLength) + + let challenge = try await requestChallengeFromServer(for: ownedCryptoIdentity, nonce: nonce, flowId: flowId) + + os_log("䷍[%{public}@] Challenge received. Computing response", log: Self.log, type: .info, requestUUID.debugDescription) + + let response = try await solveChallenge(challenge: challenge, for: ownedCryptoIdentity, flowId: flowId) + + os_log("䷍[%{public}@] Using response to get server session token", log: Self.log, type: .info, requestUUID.debugDescription) + + let serverSessionTokenAndAPIKeyElements = try await requestSessionFromServer(for: ownedCryptoIdentity, response: response, nonce: nonce, flowId: flowId) + + os_log("䷍[%{public}@] Saving received server session token for next time", log: Self.log, type: .info, requestUUID.debugDescription) + + try await saveServerSessionTokenAndAPIKeyElements(for: ownedCryptoIdentity, serverSessionTokenAndAPIKeyElements: serverSessionTokenAndAPIKeyElements, flowId: flowId) + + os_log("䷍[%{public}@] Returning server session token and api key elements", log: Self.log, type: .info, requestUUID.debugDescription) + + return serverSessionTokenAndAPIKeyElements + + } + } + + + private func executeDeleteServerSessionOperation(of ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws { + + guard let delegateManager else { + assertionFailure("The Delegate Manager is not set") + throw ObvError.theDelegateManagerIsNotSet + } + + let coordinatorsQueue = delegateManager.queueSharedAmongCoordinators + + let op1 = DeleteServerSessionOperation(ownedCryptoIdentity: ownedCryptoIdentity) + let composedOp = try createCompositionOfOneContextualOperation(op1: op1, flowId: flowId) + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + defer { coordinatorsQueue.addOperation(composedOp) } + let previousCompletion = composedOp.completionBlock + composedOp.completionBlock = { + + previousCompletion?() + + guard composedOp.isCancelled else { + continuation.resume() + return + } + + guard let reasonForCancel = composedOp.reasonForCancel else { + assertionFailure() + continuation.resume(throwing: ObvError.operationFailedWithoutSpecifyingReason) + return + } + + switch reasonForCancel { + case .unknownReason: + assertionFailure() + continuation.resume(throwing: ObvError.operationFailedWithoutSpecifyingReason) + return + case .coreDataError(error: let error): + assertionFailure() + continuation.resume(throwing: ObvError.coreDataError(error: error)) + return + case .op1Cancelled(reason: let op1ReasonForCancel): + switch op1ReasonForCancel { + case .coreDataError(error: let error): + assertionFailure() + continuation.resume(throwing: ObvError.coreDataError(error: error)) + return + } + } + + } + + } + + } + + + private func saveServerSessionTokenAndAPIKeyElements(for ownedCryptoIdentity: ObvCryptoIdentity, serverSessionTokenAndAPIKeyElements: (serverSessionToken: Data, apiKeyElements: APIKeyElements), flowId: FlowIdentifier) async throws { + + guard let delegateManager else { + assertionFailure("The Delegate Manager is not set") + throw ObvError.theDelegateManagerIsNotSet + } + + let coordinatorsQueue = delegateManager.queueSharedAmongCoordinators + + let op1 = SaveServerSessionTokenAndAPIKeyElementsOperation( + ownedCryptoIdentity: ownedCryptoIdentity, + serverSessionTokenAndAPIKeyElements: serverSessionTokenAndAPIKeyElements) + let composedOp = try createCompositionOfOneContextualOperation(op1: op1, flowId: flowId) + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + defer { coordinatorsQueue.addOperation(composedOp) } + let previousCompletion = composedOp.completionBlock + composedOp.completionBlock = { + + previousCompletion?() + + guard composedOp.isCancelled else { + continuation.resume() + return + } + + guard let reasonForCancel = composedOp.reasonForCancel else { + assertionFailure() + continuation.resume(throwing: ObvError.operationFailedWithoutSpecifyingReason) + return + } + + switch reasonForCancel { + case .unknownReason: + assertionFailure() + continuation.resume(throwing: ObvError.operationFailedWithoutSpecifyingReason) + return + case .coreDataError(error: let error): + assertionFailure() + continuation.resume(throwing: ObvError.coreDataError(error: error)) + return + case .op1Cancelled(reason: let op1ReasonForCancel): + switch op1ReasonForCancel { + case .coreDataError(error: let error): + assertionFailure() + continuation.resume(throwing: ObvError.coreDataError(error: error)) + return + } + } + + } + + } + + } + + + private func requestSessionFromServer(for ownedCryptoIdentity: ObvCryptoIdentity, response: Data, nonce: Data, flowId: FlowIdentifier) async throws -> (serverSessionToken: Data, apiKeyElements: APIKeyElements) { + + let method = ObvServerGetTokenMethod( + ownedIdentity: ownedCryptoIdentity, + response: response, + nonce: nonce, + toIdentity: ownedCryptoIdentity, + flowId: flowId) + + let (data, response) = try await URLSession.shared.data(for: method.getURLRequest()) + + guard let httpResponse = response as? HTTPURLResponse, + httpResponse.statusCode == 200 else { + throw ObvError.invalidServerResponse + } + + let result = ObvServerGetTokenMethod.parseObvServerResponse(responseData: data, using: Self.log) + + switch result { + case .failure(let error): + throw ObvError.serverError(error: error) + case .success(let returnStatus): + switch returnStatus { + case .serverDidNotFindChallengeCorrespondingToResponse: + assertionFailure() + throw ObvError.serverReportedThatItDidNotFindChallengeCorrespondingToResponse + case .generalError: + assertionFailure() + throw ObvError.serverReportedGeneralError + case .ok(token: let token, serverNonce: let serverNonce, apiKeyStatus: let apiKeyStatus, apiPermissions: let apiPermissions, apiKeyExpirationDate: let apiKeyExpirationDate): + if nonce != serverNonce { + assertionFailure("Unexpected server nonce") + } + return (token, .init(status: apiKeyStatus, permissions: apiPermissions, expirationDate: apiKeyExpirationDate)) + } + } + + } + + + private func solveChallenge(challenge: Data, for ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> Data { + + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) + assertionFailure("The Delegate Manager is not set") + throw ObvError.theDelegateManagerIsNotSet + } + + guard let solveChallengeDelegate = delegateManager.solveChallengeDelegate else { + os_log("The solve challenge delegate is not set", log: Self.log, type: .fault) + assertionFailure("The solve challenge delegate is not set") + throw ObvError.theSolveChallengeDelegateIsNotSet + } + + guard let contextCreator = delegateManager.contextCreator else { + os_log("The context creator manager is not set", log: Self.log, type: .fault) + assertionFailure("The context creator manager is not set") + throw ObvError.theContextCreatorIsNotSet + } + + let prng = ObvCryptoSuite.sharedInstance.prngService() + let challengeType = ChallengeType.authentChallenge(challengeFromServer: challenge) + + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + contextCreator.performBackgroundTask(flowId: flowId) { obvContext in + do { + let response = try solveChallengeDelegate.solveChallenge(challengeType, for: ownedCryptoIdentity, using: prng, within: obvContext) + continuation.resume(returning: response) + } catch { + continuation.resume(throwing: ObvError.coreDataError(error: error)) + } + } + } + + } + + + private func requestChallengeFromServer(for ownedCryptoIdentity: ObvCryptoIdentity, nonce: Data, flowId: FlowIdentifier) async throws -> Data { + + // No cached server session token exists. To get a new one, we first request a challenge to the server + + let method = ObvServerRequestChallengeMethod( + ownedIdentity: ownedCryptoIdentity, + nonce: nonce, + toIdentity: ownedCryptoIdentity, + flowId: flowId) + + let (data, response) = try await URLSession.shared.data(for: method.getURLRequest()) + + guard let httpResponse = response as? HTTPURLResponse, + httpResponse.statusCode == 200 else { + throw ObvError.invalidServerResponse + } + + let result = ObvServerRequestChallengeMethod.parseObvServerResponse(responseData: data, using: Self.log) + + switch result { + case .failure(let error): + throw ObvError.serverError(error: error) + case .success(let returnStatus): + switch returnStatus { + case .generalError: + assertionFailure() + throw ObvError.serverReportedGeneralError + case .ok(challenge: let challenge, serverNonce: let serverNonce): + guard serverNonce == nonce else { + assertionFailure() + throw ObvError.serverNonceDiffersFromLocalNonce + } + return challenge + } + } + + } + + + private func resetServerSessionCorrespondingToInvalidToken(for ownedCryptoIdentity: ObvCryptoIdentity, currentInvalidToken: Data, flowId: FlowIdentifier) async throws { + + guard let delegateManager else { + assertionFailure("The Delegate Manager is not set") + throw ObvError.theDelegateManagerIsNotSet + } + + let coordinatorsQueue = delegateManager.queueSharedAmongCoordinators + + let op1 = ResetServerSessionCorrespondingToInvalidTokenOperation( + ownedCryptoIdentity: ownedCryptoIdentity, + invalidToken: currentInvalidToken) + let composedOp = try createCompositionOfOneContextualOperation(op1: op1, flowId: flowId) + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + defer { coordinatorsQueue.addOperation(composedOp) } + let previousCompletion = composedOp.completionBlock + composedOp.completionBlock = { + + previousCompletion?() + + guard composedOp.isCancelled else { + continuation.resume() + return + } + + guard let reasonForCancel = composedOp.reasonForCancel else { + assertionFailure() + continuation.resume(throwing: ObvError.operationFailedWithoutSpecifyingReason) + return + } + + switch reasonForCancel { + case .unknownReason: + assertionFailure() + continuation.resume(throwing: ObvError.operationFailedWithoutSpecifyingReason) + return + case .coreDataError(error: let error): + assertionFailure() + continuation.resume(throwing: ObvError.coreDataError(error: error)) + return + case .op1Cancelled(reason: let op1ReasonForCancel): + switch op1ReasonForCancel { + case .coreDataError(error: let error): + assertionFailure() + continuation.resume(throwing: ObvError.coreDataError(error: error)) + return + } + } + + } + + } + + } + + + private func getLocalServerSessionTokenAndAPIKeyElements(for ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> (serverSessionToken: Data, apiKeyElements: APIKeyElements)? { + + guard let delegateManager else { + assertionFailure("The Delegate Manager is not set") + throw ObvError.theDelegateManagerIsNotSet + } + + let coordinatorsQueue = delegateManager.queueSharedAmongCoordinators + + let op1 = GetLocalServerSessionTokenAndAPIKeyElementsOperation(ownedCryptoIdentity: ownedCryptoIdentity) + let composedOp = try createCompositionOfOneContextualOperation(op1: op1, flowId: flowId) + + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<(serverSessionToken: Data, apiKeyElements: APIKeyElements)?, Error>) in + defer { coordinatorsQueue.addOperation(composedOp) } + let previousCompletion = composedOp.completionBlock + composedOp.completionBlock = { + + previousCompletion?() + + guard composedOp.isCancelled else { + continuation.resume(returning: op1.serverSessionTokenAndAPIKeyElements) + return + } + + guard let reasonForCancel = composedOp.reasonForCancel else { + assertionFailure() + continuation.resume(throwing: ObvError.operationFailedWithoutSpecifyingReason) + return + } + + switch reasonForCancel { + case .unknownReason: + assertionFailure() + continuation.resume(throwing: ObvError.operationFailedWithoutSpecifyingReason) + return + case .coreDataError(error: let error): + assertionFailure() + continuation.resume(throwing: ObvError.coreDataError(error: error)) + return + case .op1Cancelled(reason: let op1ReasonForCancel): + switch op1ReasonForCancel { + case .coreDataError(error: let error): + assertionFailure() + continuation.resume(throwing: ObvError.coreDataError(error: error)) + return + } + } + + } + + } + + + } + + + // MARK: - Errors + + enum ObvError: LocalizedError { + + case theDelegateManagerIsNotSet + case theContextCreatorIsNotSet + case theSolveChallengeDelegateIsNotSet + case operationFailedWithoutSpecifyingReason + case coreDataError(error: Error) + case noAPIKey + case invalidServerResponse + case couldNotParseReturnStatusFromServer + case serverError(error: Error) + case serverReportedGeneralError + case serverNonceDiffersFromLocalNonce + case serverReportedThatItDidNotFindChallengeCorrespondingToResponse + + var errorDescription: String? { + switch self { + case .theDelegateManagerIsNotSet: + return "The delegate manager is not set" + case .theContextCreatorIsNotSet: + return "The context creator is not set" + case .operationFailedWithoutSpecifyingReason: + return "Operation failed without specifying reason" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .theSolveChallengeDelegateIsNotSet: + return "The solve challenge delegate is not set" + case .noAPIKey: + return "No API key could be found" + case .invalidServerResponse: + return "Invalid server response" + case .couldNotParseReturnStatusFromServer: + return "Could not parse return status from server" + case .serverError(error: let error): + return "Server error: \(error.localizedDescription)" + case .serverReportedGeneralError: + return "Server reported a general error" + case .serverNonceDiffersFromLocalNonce: + return "Server nonce differs from local nonce" + case .serverReportedThatItDidNotFindChallengeCorrespondingToResponse: + return "Server reported that no challenge corresponding to response could be found" + } + } + } + +} + + + +// MARK: - Helpers + +extension ServerSessionCoordinator { + + private func createCompositionOfOneContextualOperation(op1: ContextualOperationWithSpecificReasonForCancel, flowId: FlowIdentifier) throws -> CompositionOfOneContextualOperation { + + guard let delegateManager else { + assertionFailure("The Delegate Manager is not set") + throw ObvError.theDelegateManagerIsNotSet + } + + guard let contextCreator = delegateManager.contextCreator else { + assertionFailure("The context creator manager is not set") + throw ObvError.theContextCreatorIsNotSet + } + + let queueForComposedOperations = delegateManager.queueForComposedOperations + + let composedOp = CompositionOfOneContextualOperation(op1: op1, contextCreator: contextCreator, queueForComposedOperations: queueForComposedOperations, log: Self.log, flowId: flowId) + + composedOp.completionBlock = { [weak composedOp] in + assert(composedOp != nil) + composedOp?.logReasonIfCancelled(log: Self.log) + } + return composedOp + + } + +} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerUserDataCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerUserDataCoordinator.swift index 4093a042..f32d36e5 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerUserDataCoordinator.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ServerUserDataCoordinator.swift @@ -194,7 +194,7 @@ extension ServerUserDataCoordinator: ServerUserDataDelegate { return } - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: ownedIdentity) else { + guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: ownedIdentity) else { syncQueueOutput = .serverSessionRequired(flowId: flowId) return } @@ -239,7 +239,14 @@ extension ServerUserDataCoordinator: ServerUserDataDelegate { case .serverSessionRequired: /// REMARK we will be called again by NetworkFetchFlowCoordinator#newToken - try? delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedIdentity, flowId: flowId) + Task.detached { [weak self] in + do { + _ = try await self?.delegateManager?.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedIdentity, currentInvalidToken: nil, flowId: flowId) + } catch { + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) + assertionFailure() + } + } case .newTaskToRun(task: let task): os_log("New task to run for the label %{public}@", log: log, type: .debug, label) task.resume() @@ -366,7 +373,9 @@ extension ServerUserDataCoordinator: URLSessionDataDelegate { guard error == nil else { os_log("The task failed for server user data: %{public}@", log: log, type: .error, error!.localizedDescription) _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + } return } @@ -376,7 +385,9 @@ extension ServerUserDataCoordinator: URLSessionDataDelegate { guard let status = ObvServerRefreshUserDataMethod.parseObvServerResponse(responseData: responseData, using: log) else { os_log("Could not parse the server response for the ObvServerRefreshUserDataMethod task of pending server query %{public}@", log: log, type: .fault, input.label) _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + } return } switch status { @@ -388,7 +399,9 @@ extension ServerUserDataCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + } return } @@ -418,8 +431,7 @@ extension ServerUserDataCoordinator: URLSessionDataDelegate { dataKey = groupInformationWithPhoto.groupDetailsElementsWithPhoto.photoServerKeyAndLabel?.key case .groupV2(groupIdentifier: let groupIdentifier): guard let photoURLAndServerPhotoInfo = try identityDelegate.getGroupV2PhotoURLAndServerPhotoInfofOwnedIdentityIsUploader(ownedIdentity: userData.ownedIdentity, groupIdentifier: groupIdentifier, within: obvContext) else { - assertionFailure() - throw Self.makeError(message: "Could not get photoURLAndServerPhotoInfo for group v2") + throw Self.makeError(message: "Could not get photoURLAndServerPhotoInfo for group v2 (the owned identity might not be the uploader)") } dataURL = photoURLAndServerPhotoInfo.photoURL dataKey = photoURLAndServerPhotoInfo.serverPhotoInfo.photoServerKeyAndLabel.key @@ -437,7 +449,9 @@ extension ServerUserDataCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + } return } } @@ -450,14 +464,18 @@ extension ServerUserDataCoordinator: URLSessionDataDelegate { case .generalError: os_log("Server reported general error during the ObvServerRefreshUserDataMethod for label %{public}@ within flow %{public}@", log: log, type: .fault, input.label, flowId.debugDescription) _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + } return } case .deleted: guard let status = ObvServerDeleteUserDataMethod.parseObvServerResponse(responseData: responseData, using: log) else { os_log("Could not parse the server response for the ObvServerDeleteUserDataMethod task of pending server query %{public}@", log: log, type: .fault, input.label) _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + } return } switch status { @@ -469,7 +487,9 @@ extension ServerUserDataCoordinator: URLSessionDataDelegate { } catch { os_log("Could not save context: %{public}@", log: log, type: .fault, error.localizedDescription) _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + } return } @@ -484,7 +504,9 @@ extension ServerUserDataCoordinator: URLSessionDataDelegate { case .generalError: os_log("Server reported general error during the ObvServerDeleteUserDataMethod for label %{public}@ within flow %{public}@", log: log, type: .fault, input.label, flowId.debugDescription) _ = removeInfoFor(task) - delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToProcessServerUserData(input: input, flowId: flowId) + } return } } @@ -495,34 +517,27 @@ extension ServerUserDataCoordinator: URLSessionDataDelegate { } private func createSession(input: ServerUserDataInput, delegateManager: ObvNetworkFetchDelegateManager, task: URLSessionTask, log: OSLog, within obvContext: ObvContext, flowId: FlowIdentifier) { - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: input.ownedIdentity) else { + guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: input.ownedIdentity), let token = serverSession.token else { _ = removeInfoFor(task) - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: input.ownedIdentity, flowId: flowId) - } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() + Task.detached { [weak self] in + do { + _ = try await self?.delegateManager?.networkFetchFlowDelegate.getValidServerSessionToken(for: input.ownedIdentity, currentInvalidToken: nil, flowId: flowId) + } catch { + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) + assertionFailure() + } } return } - guard let token = serverSession.token else { - _ = removeInfoFor(task) + _ = removeInfoFor(task) + Task.detached { [weak self] in do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: input.ownedIdentity, flowId: flowId) + _ = try await self?.delegateManager?.networkFetchFlowDelegate.getValidServerSessionToken(for: input.ownedIdentity, currentInvalidToken: token, flowId: flowId) } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) assertionFailure() } - return - } - - _ = removeInfoFor(task) - do { - try delegateManager.networkFetchFlowDelegate.serverSession(of: input.ownedIdentity, hasInvalidToken: token, flowId: flowId) - } catch { - os_log("Call to serverSession(of: ObvCryptoIdentity, hasInvalidToken: Data, flowId: FlowIdentifier) did fail", log: log, type: .fault) - assertionFailure() } } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/VerifyReceiptCoordinator/Operations/VerifyReceiptOperation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/VerifyReceiptCoordinator/Operations/VerifyReceiptOperation.swift index 26930d34..14c3e7d8 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/VerifyReceiptCoordinator/Operations/VerifyReceiptOperation.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/VerifyReceiptCoordinator/Operations/VerifyReceiptOperation.swift @@ -25,143 +25,142 @@ import ObvServerInterface import OlvidUtils -protocol VerifyReceiptOperationDelegate: AnyObject { - func receiptVerificationFailed(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, error: Error, flowId: FlowIdentifier) - func receiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, apiKey: UUID, flowId: FlowIdentifier) - func receiptVerificationSucceededButSubscriptionIsExpired(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, flowId: FlowIdentifier) - func invalidSession(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, receiptData: String, flowId: FlowIdentifier) -} +//protocol VerifyReceiptOperationDelegate: AnyObject { +// func receiptVerificationFailed(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, error: Error, flowId: FlowIdentifier) +// func receiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, apiKey: UUID, flowId: FlowIdentifier) +// func receiptVerificationSucceededButSubscriptionIsExpired(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, flowId: FlowIdentifier) +// func invalidSession(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, receiptData: String, flowId: FlowIdentifier) +//} -final class VerifyReceiptOperation: Operation { - - enum ReasonForCancel: LocalizedError { - case dependencyCancelled - case delegateManagerIsNotSet - case delegateIsNotSet - case contextCreatorIsNotSet - case serverSessionRequired - case failedToCreateTask(error: Error) - - var logType: OSLogType { - switch self { - case .dependencyCancelled, .serverSessionRequired: - return .error - case .delegateManagerIsNotSet, .delegateIsNotSet, .contextCreatorIsNotSet, .failedToCreateTask: - return .fault - } - } - - var errorDescription: String? { - switch self { - case .dependencyCancelled: return "A dependency cancelled" - case .delegateManagerIsNotSet: return "The delegate manager is not set" - case .delegateIsNotSet: return "The delegate is not set" - case .contextCreatorIsNotSet: return "The context creator is not set" - case .serverSessionRequired: return "A new server session is required" - case .failedToCreateTask(error: let error): return "Could not create task: \(error.localizedDescription)" - } - } - - } - - func logReasonIfCancelled(log: OSLog) { - assert(isFinished) - guard isCancelled else { return } - guard let reason = self.reasonForCancel else { - os_log("💰 %{public}@ cancelled without providing a reason. This is a bug", log: log, type: .fault, String(describing: self)) - assertionFailure() - return - } - os_log("💰 %{public}@ cancelled: %{public}@", log: log, type: reason.logType, String(describing: self), reason.localizedDescription) - assertionFailure() - } - - private(set) var reasonForCancel: ReasonForCancel? - - private func cancel(withReason reason: ReasonForCancel) { - assert(self.reasonForCancel == nil) - self.reasonForCancel = reason - self.cancel() - } - - let identity: ObvCryptoIdentity - let flowId: FlowIdentifier - let receiptData: String - let transactionIdentifier: String - let log: OSLog - weak var delegateManager: ObvNetworkFetchDelegateManager? - weak var delegate: VerifyReceiptOperationDelegate? - - init(identity: ObvCryptoIdentity, receiptData: String, transactionIdentifier: String, log: OSLog, flowId: FlowIdentifier, delegateManager: ObvNetworkFetchDelegateManager, delegate: VerifyReceiptOperationDelegate) { - self.delegateManager = delegateManager - self.flowId = flowId - self.identity = identity - self.receiptData = receiptData - self.transactionIdentifier = transactionIdentifier - self.delegate = delegate - self.log = log - super.init() - } - - override func main() { - - guard dependencies.filter({ $0.isCancelled }).isEmpty else { - return cancel(withReason: .dependencyCancelled) - } - - guard let delegateManager = delegateManager else { - return cancel(withReason: .delegateManagerIsNotSet) - } - - guard let delegate = delegate else { - return cancel(withReason: .delegateIsNotSet) - } - - guard let contextCreator = delegateManager.contextCreator else { - return cancel(withReason: .contextCreatorIsNotSet) - } - - contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: identity) else { - return cancel(withReason: .serverSessionRequired) - } - - guard let token = serverSession.token else { - return cancel(withReason: .serverSessionRequired) - } - - let verifyReceiptResult = VerifyReceiptResult(ownedIdentity: identity, - transactionIdentifier: transactionIdentifier, - receiptData: receiptData, - flowId: flowId, - delegate: delegate, - log: log) - - let method = VerifyReceiptMethod(ownedIdentity: identity, - token: token, - receiptData: receiptData, - transactionIdentifier: transactionIdentifier, - flowId: flowId) - method.identityDelegate = delegateManager.identityDelegate - - let sessionConfiguration = URLSessionConfiguration.ephemeral - let session = URLSession(configuration: sessionConfiguration, delegate: verifyReceiptResult, delegateQueue: nil) - - let task: URLSessionDataTask - do { - task = try method.dataTask(within: session) - } catch { - return cancel(withReason: .failedToCreateTask(error: error)) - } - - task.resume() - - session.finishTasksAndInvalidate() - - } - - } - -} +//final class VerifyReceiptOperation: Operation { +// +// enum ReasonForCancel: LocalizedError { +// case dependencyCancelled +// case delegateManagerIsNotSet +// case delegateIsNotSet +// case contextCreatorIsNotSet +// case serverSessionRequired +// case failedToCreateTask(error: Error) +// +// var logType: OSLogType { +// switch self { +// case .dependencyCancelled, .serverSessionRequired: +// return .error +// case .delegateManagerIsNotSet, .delegateIsNotSet, .contextCreatorIsNotSet, .failedToCreateTask: +// return .fault +// } +// } +// +// var errorDescription: String? { +// switch self { +// case .dependencyCancelled: return "A dependency cancelled" +// case .delegateManagerIsNotSet: return "The delegate manager is not set" +// case .delegateIsNotSet: return "The delegate is not set" +// case .contextCreatorIsNotSet: return "The context creator is not set" +// case .serverSessionRequired: return "A new server session is required" +// case .failedToCreateTask(error: let error): return "Could not create task: \(error.localizedDescription)" +// } +// } +// +// } +// +// func logReasonIfCancelled(log: OSLog) { +// assert(isFinished) +// guard isCancelled else { return } +// guard let reason = self.reasonForCancel else { +// os_log("💰 %{public}@ cancelled without providing a reason. This is a bug", log: log, type: .fault, String(describing: self)) +// assertionFailure() +// return +// } +// os_log("💰 %{public}@ cancelled: %{public}@", log: log, type: reason.logType, String(describing: self), reason.localizedDescription) +// assertionFailure() +// } +// +// private(set) var reasonForCancel: ReasonForCancel? +// +// private func cancel(withReason reason: ReasonForCancel) { +// assert(self.reasonForCancel == nil) +// self.reasonForCancel = reason +// self.cancel() +// } +// +// let identity: ObvCryptoIdentity +// let flowId: FlowIdentifier +// let receiptData: String +// let transactionIdentifier: String +// let log: OSLog +// weak var delegateManager: ObvNetworkFetchDelegateManager? +// weak var delegate: VerifyReceiptOperationDelegate? +// +// init(identity: ObvCryptoIdentity, receiptData: String, transactionIdentifier: String, log: OSLog, flowId: FlowIdentifier, delegateManager: ObvNetworkFetchDelegateManager, delegate: VerifyReceiptOperationDelegate) { +// self.delegateManager = delegateManager +// self.flowId = flowId +// self.identity = identity +// self.receiptData = receiptData +// self.transactionIdentifier = transactionIdentifier +// self.delegate = delegate +// self.log = log +// super.init() +// } +// +// override func main() { +// +// guard dependencies.filter({ $0.isCancelled }).isEmpty else { +// return cancel(withReason: .dependencyCancelled) +// } +// +// guard let delegateManager = delegateManager else { +// return cancel(withReason: .delegateManagerIsNotSet) +// } +// +// guard let delegate = delegate else { +// return cancel(withReason: .delegateIsNotSet) +// } +// +// guard let contextCreator = delegateManager.contextCreator else { +// return cancel(withReason: .contextCreatorIsNotSet) +// } +// +// contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in +// +// guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: identity) else { +// return cancel(withReason: .serverSessionRequired) +// } +// +// guard let token = serverSession.token else { +// return cancel(withReason: .serverSessionRequired) +// } +// +// let verifyReceiptResult = VerifyReceiptResult(ownedIdentity: identity, +// transactionIdentifier: transactionIdentifier, +// receiptData: receiptData, +// flowId: flowId, +// delegate: delegate, +// log: log) +// +// let method = VerifyReceiptServerMethod(ownedIdentity: identity, +// token: token, +// receiptData: receiptData, +// flowId: flowId) +// method.identityDelegate = delegateManager.identityDelegate +// +// let sessionConfiguration = URLSessionConfiguration.ephemeral +// let session = URLSession(configuration: sessionConfiguration, delegate: verifyReceiptResult, delegateQueue: nil) +// +// let task: URLSessionDataTask +// do { +// task = try method.dataTask(within: session) +// } catch { +// return cancel(withReason: .failedToCreateTask(error: error)) +// } +// +// task.resume() +// +// session.finishTasksAndInvalidate() +// +// } +// +// } +// +//} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/VerifyReceiptCoordinator/Operations/VerifyReceiptResult.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/VerifyReceiptCoordinator/Operations/VerifyReceiptResult.swift index 788244c7..c1ef172b 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/VerifyReceiptCoordinator/Operations/VerifyReceiptResult.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/VerifyReceiptCoordinator/Operations/VerifyReceiptResult.swift @@ -27,89 +27,89 @@ import OlvidUtils /// A `VerifyReceiptResult` instance accumulates the data received by a `VerifyReceiptMethod`. It serves as a delegate of the URLSession /// of the task. When the task is over, it calls an appropriate method on its delegate (which is the `VerifyReceiptCoordinator`) -final class VerifyReceiptResult: NSObject, URLSessionDataDelegate { - - let delegateQueue: OperationQueue = { - let queue = OperationQueue() - queue.maxConcurrentOperationCount = 1 - queue.name = "VerifyReceiptSessionDelegate queue" - return queue - }() - - let transactionIdentifier: String - let ownedIdentity: ObvCryptoIdentity - let receiptData: String - let flowId: FlowIdentifier - let log: OSLog - private weak var delegate: VerifyReceiptOperationDelegate? - - private var receivedData = Data() - - deinit { - debugPrint("VerifyReceiptResultDelegate deinit") - } - - init(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, receiptData: String, flowId: FlowIdentifier, delegate: VerifyReceiptOperationDelegate, log: OSLog) { - self.ownedIdentity = ownedIdentity - self.receiptData = receiptData - self.flowId = flowId - self.transactionIdentifier = transactionIdentifier - self.delegate = delegate - self.log = log - super.init() - } - - private static func makeError(message: String) -> Error { NSError(domain: "VerifyReceiptResult", code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } - private func makeError(message: String) -> Error { VerifyReceiptResult.makeError(message: message) } - - - func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { - receivedData.append(data) - } - - - func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { - - os_log("💰 URLSession task for AppStore receipt verification did complete", log: log, type: .info) - - guard error == nil else { - assertionFailure() - delegate?.receiptVerificationFailed(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, error: error!, flowId: flowId) - return - } - - // If we reach this point, the data task did complete without error - - guard let (status, returnedValues) = VerifyReceiptMethod.parseObvServerResponse(responseData: receivedData, using: log) else { - let error = makeError(message: "Parsing error") - delegate?.receiptVerificationFailed(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, error: error, flowId: flowId) - assertionFailure() - return - } - - switch status { - case .ok: - os_log("💰 The server reported that the AppStore receipt received with transaction %{public}@ is valid", log: log, type: .info, transactionIdentifier) - let apiKey = returnedValues! - delegate?.receiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, apiKey: apiKey, flowId: flowId) - return - - case .invalidSession: - os_log("💰 The server session is invalid", log: log, type: .error) - delegate?.invalidSession(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, receiptData: receiptData, flowId: flowId) - return - - case .receiptIsExpired: - os_log("💰 The server reported that the receipt has expired for transaction identifier %{public}@ is invalid", log: log, type: .error, transactionIdentifier) - delegate?.receiptVerificationSucceededButSubscriptionIsExpired(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, flowId: flowId) - return - - case .generalError: - os_log("💰 The server reported a general error", log: log, type: .fault) - let error = makeError(message: "The server reported a general error") - delegate?.receiptVerificationFailed(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, error: error, flowId: flowId) - return - } - - } -} +//final class VerifyReceiptResult: NSObject, URLSessionDataDelegate { +// +// let delegateQueue: OperationQueue = { +// let queue = OperationQueue() +// queue.maxConcurrentOperationCount = 1 +// queue.name = "VerifyReceiptSessionDelegate queue" +// return queue +// }() +// +// let transactionIdentifier: String +// let ownedIdentity: ObvCryptoIdentity +// let receiptData: String +// let flowId: FlowIdentifier +// let log: OSLog +// private weak var delegate: VerifyReceiptOperationDelegate? +// +// private var receivedData = Data() +// +// deinit { +// debugPrint("VerifyReceiptResultDelegate deinit") +// } +// +// init(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, receiptData: String, flowId: FlowIdentifier, delegate: VerifyReceiptOperationDelegate, log: OSLog) { +// self.ownedIdentity = ownedIdentity +// self.receiptData = receiptData +// self.flowId = flowId +// self.transactionIdentifier = transactionIdentifier +// self.delegate = delegate +// self.log = log +// super.init() +// } +// +// private static func makeError(message: String) -> Error { NSError(domain: "VerifyReceiptResult", code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } +// private func makeError(message: String) -> Error { VerifyReceiptResult.makeError(message: message) } +// +// +// func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) { +// receivedData.append(data) +// } +// +// +// func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) { +// +// os_log("💰 URLSession task for AppStore receipt verification did complete", log: log, type: .info) +// +// guard error == nil else { +// assertionFailure() +// delegate?.receiptVerificationFailed(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, error: error!, flowId: flowId) +// return +// } +// +// // If we reach this point, the data task did complete without error +// +// guard let (status, returnedValues) = VerifyReceiptMethod.parseObvServerResponse(responseData: receivedData, using: log) else { +// let error = makeError(message: "Parsing error") +// delegate?.receiptVerificationFailed(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, error: error, flowId: flowId) +// assertionFailure() +// return +// } +// +// switch status { +// case .ok: +// os_log("💰 The server reported that the AppStore receipt received with transaction %{public}@ is valid", log: log, type: .info, transactionIdentifier) +// let apiKey = returnedValues! +// delegate?.receiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, apiKey: apiKey, flowId: flowId) +// return +// +// case .invalidSession: +// os_log("💰 The server session is invalid", log: log, type: .error) +// delegate?.invalidSession(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, receiptData: receiptData, flowId: flowId) +// return +// +// case .receiptIsExpired: +// os_log("💰 The server reported that the receipt has expired for transaction identifier %{public}@ is invalid", log: log, type: .error, transactionIdentifier) +// delegate?.receiptVerificationSucceededButSubscriptionIsExpired(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, flowId: flowId) +// return +// +// case .generalError: +// os_log("💰 The server reported a general error", log: log, type: .fault) +// let error = makeError(message: "The server reported a general error") +// delegate?.receiptVerificationFailed(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, error: error, flowId: flowId) +// return +// } +// +// } +//} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/VerifyReceiptCoordinator/VerifyReceiptCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/VerifyReceiptCoordinator/VerifyReceiptCoordinator.swift index bb61a835..949aaa98 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/VerifyReceiptCoordinator/VerifyReceiptCoordinator.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/VerifyReceiptCoordinator/VerifyReceiptCoordinator.swift @@ -23,26 +23,27 @@ import ObvCrypto import ObvTypes import ObvMetaManager import OlvidUtils +import ObvServerInterface -final class VerifyReceiptCoordinator: NSObject { + +actor VerifyReceiptCoordinator { - fileprivate let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem - fileprivate let logCategory = "VerifyReceiptCoordinator" + private static let defaultLogSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem + private static let logCategory = "VerifyReceiptCoordinator" + private static var log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - var delegateManager: ObvNetworkFetchDelegateManager? + weak var delegateManager: ObvNetworkFetchDelegateManager? - private let localQueue = DispatchQueue(label: "VerifyReceiptCoordinatorQueue") - private let queueForNotifications = DispatchQueue(label: "VerifyReceiptCoordinator queue for notifications") + init(logPrefix: String) { + let logSubsystem = "\(logPrefix).\(Self.defaultLogSubsystem)" + Self.log = OSLog(subsystem: logSubsystem, category: Self.logCategory) + } - private var internalOperationQueue: OperationQueue = { - let queue = OperationQueue() - queue.name = "Queue for VerifyReceiptCoordinator operations" - queue.maxConcurrentOperationCount = 1 - return queue - }() + private enum VerificationTask { + case inProgress(Task<[ObvCryptoIdentity : ObvAppStoreReceipt.VerificationStatus], Never>) + } - private var currentTransactions = Set() - private var receiptToVerifyWhenNewSessionIsAvailable = [(ownedIdentity: ObvCryptoIdentity, receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier)]() + private var cache = [ObvAppStoreReceipt: VerificationTask]() } @@ -50,221 +51,398 @@ final class VerifyReceiptCoordinator: NSObject { extension VerifyReceiptCoordinator: VerifyReceiptDelegate { - func verifyReceipt(ownedCryptoIdentities: [ObvCryptoIdentity], receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier) { + func verifyReceipt(appStoreReceiptElements: ObvAppStoreReceipt, flowId: FlowIdentifier) async throws -> [ObvCryptoIdentity : ObvAppStoreReceipt.VerificationStatus] { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("The Delegate Manager is not set", log: log, type: .fault) - assertionFailure() - return - } + let requestUUID = UUID() - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) + os_log("💰[%{public}@] Call to verifyReceipt", log: Self.log, type: .info, requestUUID.debugDescription) - os_log("💰🌊 Call to verifyReceipt within flow %{public}@ for transaction identifier %{public}@", log: log, type: .info, flowId.debugDescription, transactionIdentifier) - - localQueue.async { [weak self] in + let result = try await verifyReceipt(appStoreReceiptElements: appStoreReceiptElements, flowId: flowId, requestUUID: requestUUID) + + os_log("💰[%{public}@] End if call to verifyReceipt", log: Self.log, type: .info, requestUUID.debugDescription) - guard let _self = self else { return } - - guard !_self.currentTransactions.contains(transactionIdentifier) else { - assertionFailure() - return - } - - _self.currentTransactions.insert(transactionIdentifier) - - let ops = ownedCryptoIdentities.map({ - VerifyReceiptOperation(identity: $0, - receiptData: receiptData, - transactionIdentifier: transactionIdentifier, - log: log, - flowId: flowId, - delegateManager: delegateManager, - delegate: _self) }) - _self.internalOperationQueue.addOperations(ops, waitUntilFinished: true) - os_log("💰 VerifyReceiptOperation is finished", log: log, type: .info) - for op in ops { - op.logReasonIfCancelled(log: log) - } - - } + return result } - func verifyReceiptsExpectingNewSesssion() { + private func verifyReceipt(appStoreReceiptElements: ObvAppStoreReceipt, flowId: FlowIdentifier, requestUUID: UUID) async throws -> [ObvCryptoIdentity : ObvAppStoreReceipt.VerificationStatus] { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) - os_log("💰 The Delegate Manager is not set", log: log, type: .fault) - assertionFailure() - return - } + return try await requestAppStoreReceiptVerificationFromServer( + appStoreReceiptElements: appStoreReceiptElements, + flowId: flowId, + requestUUID: requestUUID) - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) + } - os_log("💰 Trying to verify receipts expecting a new server session...", log: log, type: .info) + + private func requestAppStoreReceiptVerificationFromServer(appStoreReceiptElements: ObvAppStoreReceipt, flowId: FlowIdentifier, requestUUID: UUID) async throws -> [ObvCryptoIdentity : ObvAppStoreReceipt.VerificationStatus] { - var receipts = [(ownedIdentity: ObvCryptoIdentity, receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier)]() - localQueue.sync { [weak self] in - guard let _self = self else { return } - receipts = _self.receiptToVerifyWhenNewSessionIsAvailable - _self.receiptToVerifyWhenNewSessionIsAvailable.removeAll() + if let cached = cache[appStoreReceiptElements] { + switch cached { + case .inProgress(let task): + os_log("💰[%{public}@] Cache hit: in progress", log: Self.log, type: .info, requestUUID.debugDescription) + return await task.value + } } - os_log("💰 We verify the %d receipt(s) that were exepecting a new server session", log: log, type: .info, receipts.count) - - for receipt in receipts { - verifyReceipt(ownedCryptoIdentities: [receipt.ownedIdentity], - receiptData: receipt.receiptData, - transactionIdentifier: receipt.transactionIdentifier, - flowId: receipt.flowId) - } - } -} + os_log("💰[%{public}@] Not in cache", log: Self.log, type: .info, requestUUID.debugDescription) + let task = try createTaskAllowingToVerifyReceiptForAllIdentities(appStoreReceiptElements: appStoreReceiptElements, flowId: flowId) + + cache[appStoreReceiptElements] = .inProgress(task) -// MARK: - Implementing VerifyReceiptOperationDelegate + os_log("💰[%{public}@] In progress", log: Self.log, type: .info, requestUUID.debugDescription) + + let results = await task.value + cache.removeValue(forKey: appStoreReceiptElements) + return results -extension VerifyReceiptCoordinator: VerifyReceiptOperationDelegate { + } - func receiptVerificationFailed(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, error: Error, flowId: FlowIdentifier) { + + /// Returns a task that, on execution, performs one `VerifyReceiptServerMethod` for each owned identity indicated in the receipt elements. + /// All the verifications are performed in parallel, and the same receipt is used for each owned identity. + /// The task never throws, and returns a dictionary mapping each owned identity to a Boolean indicating whether the receipt verification was successful (`true`) or not (`false`). + private func createTaskAllowingToVerifyReceiptForAllIdentities(appStoreReceiptElements: ObvAppStoreReceipt, flowId: FlowIdentifier) throws -> Task<[ObvCryptoIdentity : ObvAppStoreReceipt.VerificationStatus], Never> { - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("💰 The Delegate Manager is not set", log: log, type: .fault) + guard let delegateManager else { + os_log("The Delegate Manager is not set", log: Self.log, type: .fault) assertionFailure() - return + throw ObvError.theDelegateManagerIsNotSet } - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - os_log("💰 Receipt verification failed for transaction with identifier %{public}@", log: log, type: .error, transactionIdentifier) - - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notificationDelegate is not set", log: log, type: .fault) + guard let identityDelegate = delegateManager.identityDelegate else { + os_log("The identity delegate is not set", log: Self.log, type: .fault) assertionFailure() - return + throw ObvError.theIdentityDelegateIsNotSet } - localQueue.async { [weak self] in - guard let _self = self else { return } - _ = _self.currentTransactions.remove(transactionIdentifier) - os_log("💰 Receipt verification failed for transaction %{public}@: %{public}@", log: log, type: .error, transactionIdentifier, error.localizedDescription) - ObvNetworkFetchNotificationNew.appStoreReceiptVerificationFailed(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, flowId: flowId) - .postOnBackgroundQueue(_self.queueForNotifications, within: notificationDelegate) + let ownedCryptoIdentities = appStoreReceiptElements.ownedCryptoIdentities + let signedAppStoreTransactionAsJWS = appStoreReceiptElements.signedAppStoreTransactionAsJWS + + return Task { + + return await withTaskGroup(of: (ObvCryptoIdentity, ObvAppStoreReceipt.VerificationStatus).self) { group in + + for ownedCryptoIdentity in ownedCryptoIdentities { + + group.addTask { + + let verificationStatus: ObvAppStoreReceipt.VerificationStatus + + do { + + let serverSessionToken = try await delegateManager.serverSessionDelegate.getValidServerSessionToken(for: ownedCryptoIdentity, currentInvalidToken: nil, flowId: flowId).serverSessionToken + + let method = VerifyReceiptServerMethod( + ownedIdentity: ownedCryptoIdentity, + token: serverSessionToken, + signedAppStoreTransactionAsJWS: signedAppStoreTransactionAsJWS, + identityDelegate: identityDelegate, + flowId: flowId) + + let (data, response) = try await URLSession.shared.data(for: method.getURLRequest()) + + guard let httpResponse = response as? HTTPURLResponse, + httpResponse.statusCode == 200 else { + throw ObvError.invalidServerResponse + } + + let result = VerifyReceiptServerMethod.parseObvServerResponse(responseData: data, using: Self.log) + + switch result { + case .failure: + throw ObvError.couldNotParseReturnStatusFromServer + case .success(let returnStatus): + switch returnStatus { + case .ok(apiKey: _): + verificationStatus = .succeededAndSubscriptionIsValid + case .invalidSession: + throw ObvError.serverReportedInvalidSession + case .receiptIsExpired: + verificationStatus = .succeededButSubscriptionIsExpired + case .generalError: + throw ObvError.serverReportedGeneralError + } + } + + } catch { + assertionFailure(error.localizedDescription) + verificationStatus = .failed + } + + return (ownedCryptoIdentity, verificationStatus) + + } // end of group.addTask + + } // end of for ownedCryptoIdentity in ownedCryptoIdentities loop + + var results = [ObvCryptoIdentity: ObvAppStoreReceipt.VerificationStatus]() + for await (ownedCryptoIdentity, verificationStatus) in group { + results[ownedCryptoIdentity] = verificationStatus + } + return results + + } + } + } - func receiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, apiKey: UUID, flowId: FlowIdentifier) { + + func setDelegateManager(_ delegateManager: ObvNetworkFetchDelegateManager) { + self.delegateManager = delegateManager + } - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("💰 The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) + +// func verifyReceipt(ownedCryptoIdentities: [ObvCryptoIdentity], receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier) { +// +// guard let delegateManager = delegateManager else { +// let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) +// os_log("The Delegate Manager is not set", log: log, type: .fault) +// assertionFailure() +// return +// } +// +// let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) +// +// os_log("💰🌊 Call to verifyReceipt within flow %{public}@ for transaction identifier %{public}@", log: log, type: .info, flowId.debugDescription, transactionIdentifier) +// +// localQueue.async { [weak self] in +// +// guard let _self = self else { return } +// +// guard !_self.currentTransactions.contains(transactionIdentifier) else { +// assertionFailure() +// return +// } +// +// _self.currentTransactions.insert(transactionIdentifier) +// +// let ops = ownedCryptoIdentities.map({ +// VerifyReceiptOperation(identity: $0, +// receiptData: receiptData, +// transactionIdentifier: transactionIdentifier, +// log: log, +// flowId: flowId, +// delegateManager: delegateManager, +// delegate: _self) }) +// _self.internalOperationQueue.addOperations(ops, waitUntilFinished: true) +// os_log("💰 VerifyReceiptOperation is finished", log: log, type: .info) +// for op in ops { +// op.logReasonIfCancelled(log: log) +// } +// +// } +// +// } + + +// func verifyReceiptsExpectingNewSesssion() { +// +// guard let delegateManager = delegateManager else { +// let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) +// os_log("💰 The Delegate Manager is not set", log: log, type: .fault) +// assertionFailure() +// return +// } +// +// let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) +// +// os_log("💰 Trying to verify receipts expecting a new server session...", log: log, type: .info) +// +// var receipts = [(ownedIdentity: ObvCryptoIdentity, receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier)]() +// localQueue.sync { [weak self] in +// guard let _self = self else { return } +// receipts = _self.receiptToVerifyWhenNewSessionIsAvailable +// _self.receiptToVerifyWhenNewSessionIsAvailable.removeAll() +// } +// +// os_log("💰 We verify the %d receipt(s) that were exepecting a new server session", log: log, type: .info, receipts.count) +// +// for receipt in receipts { +// verifyReceipt(ownedCryptoIdentities: [receipt.ownedIdentity], +// receiptData: receipt.receiptData, +// transactionIdentifier: receipt.transactionIdentifier, +// flowId: receipt.flowId) +// } +// } +} - os_log("💰 Receipt verification succeeded for transaction with identifier %{public}@ and the subscription is valid", log: log, type: .info, transactionIdentifier) - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notificationDelegate is not set", log: log, type: .fault) - assertionFailure() - return - } +// MARK: - Implementing VerifyReceiptOperationDelegate - localQueue.async { [weak self] in - guard let _self = self else { return } - _ = _self.currentTransactions.remove(transactionIdentifier) - os_log("💰 Receipt verification succeed for transaction %{public}@", log: log, type: .info, transactionIdentifier) - ObvNetworkFetchNotificationNew.appStoreReceiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, apiKey: apiKey, flowId: flowId) - .postOnBackgroundQueue(_self.queueForNotifications, within: notificationDelegate) - } - } - - - func receiptVerificationSucceededButSubscriptionIsExpired(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, flowId: FlowIdentifier) { - - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("💰 The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) +//extension VerifyReceiptCoordinator: VerifyReceiptOperationDelegate { +// +// func receiptVerificationFailed(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, error: Error, flowId: FlowIdentifier) { +// +// guard let delegateManager = delegateManager else { +// let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) +// os_log("💰 The Delegate Manager is not set", log: log, type: .fault) +// assertionFailure() +// return +// } +// +// let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) +// +// os_log("💰 Receipt verification failed for transaction with identifier %{public}@", log: log, type: .error, transactionIdentifier) +// +// guard let notificationDelegate = delegateManager.notificationDelegate else { +// os_log("The notificationDelegate is not set", log: log, type: .fault) +// assertionFailure() +// return +// } +// +// localQueue.async { [weak self] in +// guard let _self = self else { return } +// _ = _self.currentTransactions.remove(transactionIdentifier) +// os_log("💰 Receipt verification failed for transaction %{public}@: %{public}@", log: log, type: .error, transactionIdentifier, error.localizedDescription) +// ObvNetworkFetchNotificationNew.appStoreReceiptVerificationFailed(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, flowId: flowId) +// .postOnBackgroundQueue(_self.queueForNotifications, within: notificationDelegate) +// } +// } +// +// func receiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, apiKey: UUID, flowId: FlowIdentifier) { +// +// guard let delegateManager = delegateManager else { +// let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) +// os_log("💰 The Delegate Manager is not set", log: log, type: .fault) +// return +// } +// +// let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) +// +// os_log("💰 Receipt verification succeeded for transaction with identifier %{public}@ and the subscription is valid", log: log, type: .info, transactionIdentifier) +// +// guard let notificationDelegate = delegateManager.notificationDelegate else { +// os_log("The notificationDelegate is not set", log: log, type: .fault) +// assertionFailure() +// return +// } +// +// localQueue.async { [weak self] in +// guard let _self = self else { return } +// _ = _self.currentTransactions.remove(transactionIdentifier) +// os_log("💰 Receipt verification succeed for transaction %{public}@", log: log, type: .info, transactionIdentifier) +// ObvNetworkFetchNotificationNew.appStoreReceiptVerificationSucceededAndSubscriptionIsValid(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, apiKey: apiKey, flowId: flowId) +// .postOnBackgroundQueue(_self.queueForNotifications, within: notificationDelegate) +// } +// } +// +// +// func receiptVerificationSucceededButSubscriptionIsExpired(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, flowId: FlowIdentifier) { +// +// guard let delegateManager = delegateManager else { +// let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) +// os_log("💰 The Delegate Manager is not set", log: log, type: .fault) +// return +// } +// +// let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) +// +// os_log("💰 Receipt verification succeeded for transaction with identifier %{public}@ but the subscription is expired", log: log, type: .error, transactionIdentifier) +// +// guard let notificationDelegate = delegateManager.notificationDelegate else { +// os_log("The notificationDelegate is not set", log: log, type: .fault) +// assertionFailure() +// return +// } +// +// localQueue.async { [weak self] in +// guard let _self = self else { return } +// _ = _self.currentTransactions.remove(transactionIdentifier) +// os_log("💰 Receipt verification succeed for transaction %{public}@ but the subscription is expired", log: log, type: .error, transactionIdentifier) +// ObvNetworkFetchNotificationNew.appStoreReceiptVerificationSucceededButSubscriptionIsExpired(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, flowId: flowId) +// .postOnBackgroundQueue(_self.queueForNotifications, within: notificationDelegate) +// } +// } +// +// func invalidSession(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, receiptData: String, flowId: FlowIdentifier) { +// +// guard let delegateManager = delegateManager else { +// let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) +// os_log("💰 The Delegate Manager is not set", log: log, type: .fault) +// return +// } +// +// let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) +// +// localQueue.async { [weak self] in +// guard let _self = self else { return } +// _ = _self.currentTransactions.remove(transactionIdentifier) +// _self.receiptToVerifyWhenNewSessionIsAvailable.append((ownedIdentity, receiptData, transactionIdentifier, flowId)) +// _self.queueForNotifications.async { [weak self] in +// self?.createNewServerSession(ownedIdentity: ownedIdentity, delegateManager: delegateManager, flowId: flowId, log: log) +// } +// } +// } +// +// +// private func createNewServerSession(ownedIdentity: ObvCryptoIdentity, delegateManager: ObvNetworkFetchDelegateManager, flowId: FlowIdentifier, log: OSLog) { +// guard let contextCreator = delegateManager.contextCreator else { assertionFailure(); return } +// contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in +// guard let serverSession = try? ServerSession.get(within: obvContext.context, withIdentity: ownedIdentity), let token = serverSession.token else { +// Task.detached { +// do { +// _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedIdentity, currentInvalidToken: nil, flowId: flowId) +// } catch { +// os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) +// assertionFailure() +// } +// } +// return +// } +// +// Task.detached { +// do { +// _ = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: ownedIdentity, currentInvalidToken: token, flowId: flowId) +// } catch { +// os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) +// assertionFailure() +// } +// } +// } +// +// } +// +// +// +// +//} - os_log("💰 Receipt verification succeeded for transaction with identifier %{public}@ but the subscription is expired", log: log, type: .error, transactionIdentifier) - guard let notificationDelegate = delegateManager.notificationDelegate else { - os_log("The notificationDelegate is not set", log: log, type: .fault) - assertionFailure() - return - } +// MARK: - Errors - localQueue.async { [weak self] in - guard let _self = self else { return } - _ = _self.currentTransactions.remove(transactionIdentifier) - os_log("💰 Receipt verification succeed for transaction %{public}@ but the subscription is expired", log: log, type: .error, transactionIdentifier) - ObvNetworkFetchNotificationNew.appStoreReceiptVerificationSucceededButSubscriptionIsExpired(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier, flowId: flowId) - .postOnBackgroundQueue(_self.queueForNotifications, within: notificationDelegate) - } - } +extension VerifyReceiptCoordinator { - func invalidSession(ownedIdentity: ObvCryptoIdentity, transactionIdentifier: String, receiptData: String, flowId: FlowIdentifier) { + enum ObvError: LocalizedError { + case theDelegateManagerIsNotSet + case theIdentityDelegateIsNotSet + case invalidServerResponse + case couldNotParseReturnStatusFromServer + case serverReportedInvalidSession + case serverReportedReceiptIsExpired + case serverReportedGeneralError - guard let delegateManager = delegateManager else { - let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) - os_log("💰 The Delegate Manager is not set", log: log, type: .fault) - return - } - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - - localQueue.async { [weak self] in - guard let _self = self else { return } - _ = _self.currentTransactions.remove(transactionIdentifier) - _self.receiptToVerifyWhenNewSessionIsAvailable.append((ownedIdentity, receiptData, transactionIdentifier, flowId)) - _self.queueForNotifications.async { [weak self] in - self?.createNewServerSession(ownedIdentity: ownedIdentity, delegateManager: delegateManager, flowId: flowId, log: log) - } - } - } - - - private func createNewServerSession(ownedIdentity: ObvCryptoIdentity, delegateManager: ObvNetworkFetchDelegateManager, flowId: FlowIdentifier, log: OSLog) { - guard let contextCreator = delegateManager.contextCreator else { assertionFailure(); return } - contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - guard let serverSession = try? ServerSession.get(within: obvContext, withIdentity: ownedIdentity) else { - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedIdentity, flowId: flowId) - } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() - } - return - } - - guard let token = serverSession.token else { - do { - try delegateManager.networkFetchFlowDelegate.serverSessionRequired(for: ownedIdentity, flowId: flowId) - } catch { - os_log("Call to serverSessionRequired did fail", log: log, type: .fault) - assertionFailure() - } - return - } - - do { - try delegateManager.networkFetchFlowDelegate.serverSession(of: ownedIdentity, hasInvalidToken: token, flowId: flowId) - } catch { - os_log("Call to to serverSession(of: ObvCryptoIdentity, hasInvalidToken: Data, flowId: FlowIdentifier) did fail", log: log, type: .fault) - assertionFailure() + var errorDescription: String? { + switch self { + case .theDelegateManagerIsNotSet: + return "The delegate manager is not set" + case .invalidServerResponse: + return "Invalid server response" + case .couldNotParseReturnStatusFromServer: + return "Could not parse return status from server" + case .serverReportedInvalidSession: + return "Server reported an invalid session" + case .serverReportedReceiptIsExpired: + return "Server reported that the receipt expired" + case .serverReportedGeneralError: + return "Server reported a general error" + case .theIdentityDelegateIsNotSet: + return "The identity delegate is not set" } } - } - } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/WebSocketCoordinator/WebSocketCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/WebSocketCoordinator/WebSocketCoordinator.swift index 3085ab4c..f9230648 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/WebSocketCoordinator/WebSocketCoordinator.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/WebSocketCoordinator/WebSocketCoordinator.swift @@ -46,6 +46,8 @@ actor WebSocketCoordinator: NSObject, ObvErrorMaker { /// - If the status is `.registered`, we should not send a register message as the identity is already registered. private var registerMessageStatusForIdentity = [ObvCryptoIdentity: RegisterMessageStatus]() + private var disconnectTimerForUUID = [UUID: Timer]() + private enum RegisterMessageStatus: CustomDebugStringConvertible { case registering case registered @@ -234,9 +236,17 @@ extension WebSocketCoordinator: WebSocketDelegate { switch state { case .running: let pingTime = Date() - try await task.sendPing() // Returns when a pong is received - let interval = Date().timeIntervalSince(pingTime) - return (state, interval) + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<(URLSessionTask.State,TimeInterval?), Error>) in + task.sendPing { error in + if let error { + continuation.resume(throwing: error) + return + } + // No error + let interval = Date().timeIntervalSince(pingTime) + continuation.resume(returning: (state, interval)) + } + } default: return (state, nil) } @@ -310,7 +320,26 @@ extension WebSocketCoordinator: WebSocketDelegate { /// a WebSocket (unless one is already available). private func tryConnectToWebSocketServer(of identity: ObvCryptoIdentity) { + guard let delegateManager = delegateManager else { + let log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) + os_log("🏓 The Delegate Manager is not set", log: log, type: .fault) + assertionFailure() + return + } + guard let infos = webSocketInfosForIdentity[identity] as? (deviceUid: UID, token: Data, webSocketServerURL: URL) else { + + if webSocketInfosForIdentity[identity]?.token == nil { + Task.detached { [weak self] in + do { + let (serverSessionToken, _) = try await delegateManager.networkFetchFlowDelegate.getValidServerSessionToken(for: identity, currentInvalidToken: nil, flowId: FlowIdentifier()) + await self?.setServerSessionToken(to: serverSessionToken, for: identity) + } catch { + assertionFailure(error.localizedDescription) + } + } + } + return } @@ -481,17 +510,25 @@ extension WebSocketCoordinator: WebSocketDelegate { disconnectFromWebSocketServerURL(webSocketServerURL) case .invalidServerSession: // Remove the server token from the infos - var identityRequiringNewToken: ObvCryptoIdentity? + var requiringNewToken = [(ownedCryptoId: ObvCryptoIdentity, currentInvalidToken: Data)]() for (identity, infos) in webSocketInfosForIdentity { - if infos.webSocketServerURL == webSocketServerURL { + if infos.webSocketServerURL == webSocketServerURL, let token = infos.token { + requiringNewToken.append((identity, token)) webSocketInfosForIdentity[identity] = (infos.deviceUid, nil, infos.webSocketServerURL) - identityRequiringNewToken = identity } } // As for a new server session token - if let identity = identityRequiringNewToken { + for (identity, token) in requiringNewToken { let flowId = FlowIdentifier() - try delegateManager?.networkFetchFlowDelegate.serverSessionRequired(for: identity, flowId: flowId) + let log = self.log + Task.detached { [weak self] in + do { + _ = try await self?.delegateManager?.networkFetchFlowDelegate.getValidServerSessionToken(for: identity, currentInvalidToken: token, flowId: flowId) + } catch { + os_log("Call to getValidServerSessionToken did fail", log: log, type: .fault) + assertionFailure() + } + } } disconnectFromWebSocketServerURL(webSocketServerURL) case .unknownError: @@ -512,19 +549,25 @@ extension WebSocketCoordinator: WebSocketDelegate { } } } else if let pushTopicMessage = try? PushTopicMessage(string: string) { - os_log("🏓 The server sent a keycloak topic message: %{public}@", log: log, type: .info, pushTopicMessage.topic) + os_log("🫸🏓 The server sent a keycloak topic message: %{public}@", log: log, type: .info, pushTopicMessage.topic) assert(delegateManager?.notificationDelegate != nil) if let notificationDelegate = delegateManager?.notificationDelegate { ObvNetworkFetchNotificationNew.pushTopicReceivedViaWebsocket(pushTopic: pushTopicMessage.topic) .postOnBackgroundQueue(within: notificationDelegate) } } else if let targetedKeycloakPushNotification = try? KeycloakTargetedPushNotification(string: string) { - os_log("🏓 The server sent a targeted keycloak push notification for identity: %{public}@", log: log, type: .info, targetedKeycloakPushNotification.identity.debugDescription) + os_log("🫸🏓 The server sent a targeted keycloak push notification for identity: %{public}@", log: log, type: .info, targetedKeycloakPushNotification.identity.debugDescription) assert(delegateManager?.notificationDelegate != nil) if let notificationDelegate = delegateManager?.notificationDelegate { ObvNetworkFetchNotificationNew.keycloakTargetedPushNotificationReceivedViaWebsocket(ownedIdentity: targetedKeycloakPushNotification.identity) .postOnBackgroundQueue(within: notificationDelegate) } + } else if let ownedDeviceMessage = try? OwnedDevicesMessage(string: string) { + os_log("🏓 The server sent an OwnedDevicesMessage for identity: %{public}@", log: log, type: .info, ownedDeviceMessage.identity.debugDescription) + if let notificationDelegate = delegateManager?.notificationDelegate { + ObvNetworkFetchNotificationNew.ownedDevicesMessageReceivedViaWebsocket(ownedIdentity: ownedDeviceMessage.identity) + .postOnBackgroundQueue(within: notificationDelegate) + } } } @@ -724,7 +767,7 @@ extension WebSocketCoordinator { pingRunningWebSocketsTimer = nil } - + /// This method executes a ping test for the web scoket task passed as a parameter. /// /// A ping test consists in sending a ping to the task. If the corresponding pong takes too much time to come back, @@ -736,6 +779,7 @@ extension WebSocketCoordinator { os_log("🏓 Could not determine the server URL of the web socket on which we were asked to perform a ping test.", log: log, type: .error) return } + let timerUUID = UUID() let disconnectTimer = Timer(timeInterval: maxTimeIntervalAllowedForPingTest, repeats: false) { [weak self] timer in guard timer.isValid else { return } os_log("🏓 The disconnect timer fired, we disconnect the corresponding web socket task.", log: log, type: .error) @@ -743,15 +787,26 @@ extension WebSocketCoordinator { await self?.disconnectFromWebSocketServerURL(webSocketServerURL) } } + disconnectTimerForUUID[timerUUID] = disconnectTimer RunLoop.main.add(disconnectTimer, forMode: .common) - do { - try await webSocketTask.sendPing() + + webSocketTask.sendPing { [weak self] error in + if let error { + os_log("🏓 Ping failed with error: %{public}@. We disconnect the web socket task.", log: log, type: .error, error.localizedDescription) + Task { [weak self] in await self?.disconnectFromWebSocketServerURL(webSocketServerURL) } + return + } + // No error os_log("🏓 One pong received", log: log, type: .info) - disconnectTimer.invalidate() - } catch { - os_log("🏓 Ping failed with error: %{public}@. We disconnect the web socket task.", log: log, type: .error, error.localizedDescription) - disconnectFromWebSocketServerURL(webSocketServerURL) + Task { [weak self] in await self?.invalidateTimerWithUUID(timerUUID) } } + + } + + + private func invalidateTimerWithUUID(_ timerUUID: UUID) { + guard let timer = disconnectTimerForUUID.removeValue(forKey: timerUUID) else { return } + timer.invalidate() } } @@ -1101,14 +1156,10 @@ fileprivate struct KeycloakTargetedPushNotification: Decodable, ObvErrorMaker { } let identityAsString = try values.decode(String.self, forKey: .identity) guard let identityAsData = Data(base64Encoded: identityAsString) else { - let message = "Could not parse the received identity" - let userInfo = [NSLocalizedFailureReasonErrorKey: message] - throw NSError(domain: KeycloakTargetedPushNotification.errorDomain, code: 0, userInfo: userInfo) + throw Self.makeError(message: "Could not parse the received identity") } guard let identity = ObvCryptoIdentity(from: identityAsData) else { - let message = "Could not parse the received JSON" - let userInfo = [NSLocalizedFailureReasonErrorKey: message] - throw NSError(domain: KeycloakTargetedPushNotification.errorDomain, code: 0, userInfo: userInfo) + throw Self.makeError(message: "Could not parse the received JSON") } self.identity = identity } @@ -1122,34 +1173,36 @@ fileprivate struct KeycloakTargetedPushNotification: Decodable, ObvErrorMaker { } +fileprivate struct OwnedDevicesMessage: Decodable, ObvErrorMaker { -// MARK: - Extending URLSessionWebSocketTask to adopt async/await + static let errorDomain = "OwnedDevicesMessage" + let identity: ObvCryptoIdentity -fileprivate extension URLSessionWebSocketTask { - - func send(_ message: URLSessionWebSocketTask.Message) async throws { - try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in - send(message) { error in - if let error { - continuation.resume(throwing: error) - } else { - continuation.resume(returning: ()) - } - } - } + enum CodingKeys: String, CodingKey { + case action = "action" + case identity = "identity" } - - func sendPing() async throws { - return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in - sendPing { error in - if let error { - continuation.resume(throwing: error) - } else { - continuation.resume(returning: ()) - } - } + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let action = try values.decode(String.self, forKey: .action) + guard action == "ownedDevices" else { + throw Self.makeError(message: "Unexpected action. Expecting ownedDevices, got \(action)") + } + let identityAsString = try values.decode(String.self, forKey: .identity) + guard let identityAsData = Data(base64Encoded: identityAsString) else { + throw Self.makeError(message: "Could not parse the received identity") + } + guard let identity = ObvCryptoIdentity(from: identityAsData) else { + throw Self.makeError(message: "Could not parse the received JSON") } + self.identity = identity } - + + init(string: String) throws { + guard let data = string.data(using: .utf8) else { assertionFailure(); throw Self.makeError(message: "The received JSON is not UTF8 encoded") } + let decoder = JSONDecoder() + self = try decoder.decode(OwnedDevicesMessage.self, from: data) + } + } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/WellKnownCoordinator/WellKnownCoordinator.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/WellKnownCoordinator/WellKnownCoordinator.swift index d8e0d8d4..a4814d86 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/WellKnownCoordinator/WellKnownCoordinator.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/WellKnownCoordinator/WellKnownCoordinator.swift @@ -264,7 +264,9 @@ extension WellKnownCoordinator: WellKnownDownloadOperationDelegate { return } - delegateManager.networkFetchFlowDelegate.failedToQueryServerWellKnown(serverURL: server, flowId: flowId) + Task { + await delegateManager.networkFetchFlowDelegate.failedToQueryServerWellKnown(serverURL: server, flowId: flowId) + } } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/InboxAttachment.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/InboxAttachment.swift index 5ff86023..25137389 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/InboxAttachment.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/InboxAttachment.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -49,20 +49,6 @@ final class InboxAttachment: NSManagedObject, ObvManagedObject { // MARK: Internal constants private static let entityName = "InboxAttachment" - private static let attachmentNumberKey = "attachmentNumber" - private static let currentByteCountToDownloadKey = "currentByteCountToDownload" - private static let encodedAuthenticatedEncryptionKeyKey = "encodedAuthenticatedDecryptionKey" - private static let timestampOfDownloadRequestKey = "timestampOfDownloadRequest" - private static let timestampOfNextFetchAttemptKey = "timestampOfNextFetchAttempt" - private static let messageKey = "message" - private static let metadataKey = "metadata" - private static let encodedChunkRangesToDownloadKey = "encodedChunkRangesToDownload" - private static let rawStatusKey = "rawStatus" - private static let rawMessageIdOwnedIdentityKey = "rawMessageIdOwnedIdentity" - private static let rawMessageIdUidKey = "rawMessageIdUid" - private static let chunksKey = "chunks" - private static let sessionKey = "session" - private static let messageFromCryptoIdentityKey = [messageKey, InboxMessage.Predicate.Key.fromCryptoIdentityKey.rawValue].joined(separator: ".") enum Status: Int, CustomDebugStringConvertible { case paused = 0 @@ -97,14 +83,14 @@ final class InboxAttachment: NSManagedObject, ObvManagedObject { @NSManaged private(set) var attachmentNumber: Int private var key: AuthenticatedEncryptionKey? { get { - guard let encodedKeyData = kvoSafePrimitiveValue(forKey: InboxAttachment.encodedAuthenticatedEncryptionKeyKey) as? Data else { return nil } + guard let encodedKeyData = kvoSafePrimitiveValue(forKey: Predicate.Key.encodedAuthenticatedDecryptionKey.rawValue) as? Data else { return nil } let encodedKey = ObvEncoded(withRawData: encodedKeyData)! return try! AuthenticatedEncryptionKeyDecoder.decode(encodedKey) } set { if newValue != nil { let encodedKey = newValue!.obvEncode() - kvoSafeSetPrimitiveValue(encodedKey.rawData, forKey: InboxAttachment.encodedAuthenticatedEncryptionKeyKey) + kvoSafeSetPrimitiveValue(encodedKey.rawData, forKey: Predicate.Key.encodedAuthenticatedDecryptionKey.rawValue) } } } @@ -119,38 +105,38 @@ final class InboxAttachment: NSManagedObject, ObvManagedObject { private(set) var chunks: [InboxAttachmentChunk] { get { - guard let unsortedChunks = kvoSafePrimitiveValue(forKey: InboxAttachment.chunksKey) as? Set else { return [] } + guard let unsortedChunks = kvoSafePrimitiveValue(forKey: Predicate.Key.chunks.rawValue) as? Set else { return [] } let items: [InboxAttachmentChunk] = unsortedChunks.sorted(by: { $0.chunkNumber < $1.chunkNumber }) for item in items { item.obvContext = self.obvContext } return items } set { - kvoSafeSetPrimitiveValue(newValue, forKey: InboxAttachment.chunksKey) + kvoSafeSetPrimitiveValue(newValue, forKey: Predicate.Key.chunks.rawValue) } } // We do not expect the message to be nil, since cascade deleting a message delete its attachments var message: InboxMessage? { get { - let value = kvoSafePrimitiveValue(forKey: InboxAttachment.messageKey) as? InboxMessage + let value = kvoSafePrimitiveValue(forKey: Predicate.Key.message.rawValue) as? InboxMessage value?.obvContext = self.obvContext return value } set { guard let value = newValue else { assertionFailure(); return } self.messageId = value.messageId - kvoSafeSetPrimitiveValue(value, forKey: InboxAttachment.messageKey) + kvoSafeSetPrimitiveValue(value, forKey: Predicate.Key.message.rawValue) } } private(set) var session: InboxAttachmentSession? { get { - let item = kvoSafePrimitiveValue(forKey: InboxAttachment.sessionKey) as? InboxAttachmentSession + let item = kvoSafePrimitiveValue(forKey: Predicate.Key.session.rawValue) as? InboxAttachmentSession item?.obvContext = self.obvContext return item } set { - kvoSafeSetPrimitiveValue(newValue, forKey: InboxAttachment.sessionKey) + kvoSafeSetPrimitiveValue(newValue, forKey: Predicate.Key.session.rawValue) } } @@ -171,7 +157,7 @@ final class InboxAttachment: NSManagedObject, ObvManagedObject { func tryChangeStatusToDownloaded() throws { let allChunksAreDownloaded = chunks.allSatisfy({ $0.cleartextChunkWasWrittenToAttachmentFile }) - guard allChunksAreDownloaded else { throw InboxAttachment.makeError(message: "Tryingin to change status to downloaded but at least one chunk is not downloaded yet") } + guard allChunksAreDownloaded else { throw InboxAttachment.makeError(message: "Trying to change the status to downloaded but at least one chunk is not downloaded yet") } self.status = .downloaded } @@ -191,11 +177,11 @@ final class InboxAttachment: NSManagedObject, ObvManagedObject { } /// This identifier is expected to be non nil, unless the associated `InboxMessage` was deleted on another thread. - private(set) var messageId: MessageIdentifier? { + private(set) var messageId: ObvMessageIdentifier? { get { guard let rawMessageIdOwnedIdentity else { return nil } guard let rawMessageIdUid else { return nil } - return MessageIdentifier(rawOwnedCryptoIdentity: rawMessageIdOwnedIdentity, rawUid: rawMessageIdUid) + return ObvMessageIdentifier(rawOwnedCryptoIdentity: rawMessageIdOwnedIdentity, rawUid: rawMessageIdUid) } set { guard let newValue else { assertionFailure(); return } @@ -205,9 +191,9 @@ final class InboxAttachment: NSManagedObject, ObvManagedObject { } /// This identifier is expected to be non nil, unless the associated `InboxMessage` was deleted on another thread. - var attachmentId: AttachmentIdentifier? { + var attachmentId: ObvAttachmentIdentifier? { guard let messageId else { return nil } - return AttachmentIdentifier(messageId: messageId, attachmentNumber: attachmentNumber) + return ObvAttachmentIdentifier(messageId: messageId, attachmentNumber: attachmentNumber) } func getURL(withinInbox inbox: URL) -> URL? { @@ -236,7 +222,7 @@ final class InboxAttachment: NSManagedObject, ObvManagedObject { throw Self.makeError(message: "Could not determine the InboxMessage identifier") } - let attachmentId = AttachmentIdentifier(messageId: inboxMessageId, attachmentNumber: attachmentNumber) + let attachmentId = ObvAttachmentIdentifier(messageId: inboxMessageId, attachmentNumber: attachmentNumber) guard try InboxAttachment.get(attachmentId: attachmentId, within: obvContext) == nil else { return nil } @@ -291,11 +277,16 @@ extension InboxAttachment { } } - private func changeStatus(to newStatus: Status) throws { - guard canTransistionToNewStatus(newStatus) else { + private func changeStatus(to newStatus: Status, force: Bool = false) throws { + guard newStatus != self.status else { return } + guard force || canTransistionToNewStatus(newStatus) else { throw InboxAttachment.makeError(message: "Cannot transition from \(status.debugDescription) to \(newStatus.debugDescription)") } - guard newStatus != self.status else { return } + if force && newStatus == .resumeRequested { + chunks.forEach { chunk in + chunk.resetDownload() + } + } self.status = newStatus } @@ -315,8 +306,8 @@ extension InboxAttachment { } } - func resumeDownload() throws { - try self.changeStatus(to: .resumeRequested) + func resumeDownload(force: Bool = false) throws { + try self.changeStatus(to: .resumeRequested, force: force) } @@ -325,18 +316,22 @@ extension InboxAttachment { } - func deleteDownload(fromInbox inbox: URL) throws { + func deleteDownload(fromInbox inbox: URL, within obvContext: ObvContext) throws { + guard self.managedObjectContext == obvContext.context else { assertionFailure(); throw Self.makeError(message: "Unexpected context") } guard let url = getURL(withinInbox: inbox) else { throw InboxAttachment.makeError(message: "Cannot get attachment URL") } try changeStatus(to: .markedForDeletion) // This cannot fail for chunk in chunks { - try chunk.resetDownload() + chunk.resetDownload() self.obvContext?.delete(chunk) } - if FileManager.default.fileExists(atPath: url.path) { - do { - try FileManager.default.removeItem(at: url) - } catch let error { - throw InternalError.couldNotDeleteAttachmentFile(atUrl: url, error: error) + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + if FileManager.default.fileExists(atPath: url.path) { + do { + try FileManager.default.removeItem(at: url) + } catch let error { + assertionFailure(error.localizedDescription) + } } } } @@ -482,18 +477,79 @@ extension InboxAttachment { extension InboxAttachment { + struct Predicate { + enum Key: String { + // Attributes + case attachmentNumber = "attachmentNumber" + case encodedAuthenticatedDecryptionKey = "encodedAuthenticatedDecryptionKey" + case expectedChunkLength = "expectedChunkLength" + case initialByteCountToDownload = "initialByteCountToDownload" + case metadata = "metadata" + case rawMessageIdOwnedIdentity = "rawMessageIdOwnedIdentity" + case rawMessageIdUid = "rawMessageIdUid" + case rawStatus = "rawStatus" + // Relationships + case chunks = "chunks" + case message = "message" + case session = "session" + } + private static func withMessageIdOwnedIdentity(_ ownedCryptoIdentity: ObvCryptoIdentity) -> NSPredicate { + NSPredicate(Key.rawMessageIdOwnedIdentity, EqualToData: ownedCryptoIdentity.getIdentity()) + } + private static func withMessageIdUID(_ messageUID: UID) -> NSPredicate { + NSPredicate(Key.rawMessageIdUid, EqualToData: messageUID.raw) + } + private static func withAttachmentNumber(_ attachmentNumber: Int) -> NSPredicate { + NSPredicate(Key.attachmentNumber, EqualToInt: attachmentNumber) + } + private static func withMessageIdentifier(_ messageId: ObvMessageIdentifier) -> NSPredicate { + NSCompoundPredicate(andPredicateWithSubpredicates: [ + withMessageIdUID(messageId.uid), + withMessageIdOwnedIdentity(messageId.ownedCryptoIdentity), + ]) + } + fileprivate static func withAttachmentIdentifier(_ attachmentId: ObvAttachmentIdentifier) -> NSPredicate { + NSCompoundPredicate(andPredicateWithSubpredicates: [ + withMessageIdentifier(attachmentId.messageId), + withAttachmentNumber(attachmentId.attachmentNumber), + ]) + } + fileprivate static var withNonNilMessage: NSPredicate { + NSPredicate(withNonNilValueForKey: Key.message) + } + fileprivate static var withNilMessage: NSPredicate { + NSPredicate(withNilValueForKey: Key.message) + } + fileprivate static var withNilSession: NSPredicate { + NSPredicate(withNilValueForKey: Key.session) + } + fileprivate static var withNonNilEncodedAuthenticatedDecryptionKey: NSPredicate { + NSPredicate(withNonNilValueForKey: Key.encodedAuthenticatedDecryptionKey) + } + fileprivate static var withNonNilMetadata: NSPredicate { + NSPredicate(withNonNilValueForKey: Key.metadata) + } + fileprivate static var withNonNilMessageFromCryptoIdentity: NSPredicate { + let messageFromCryptoIdentityKey = [Key.message.rawValue, InboxMessage.Predicate.Key.fromCryptoIdentityKey.rawValue].joined(separator: ".") + return NSPredicate(withNonNilValueForRawKey: messageFromCryptoIdentityKey) + + } + fileprivate static func withStatus(_ status: Status) -> NSPredicate { + NSPredicate(Key.rawStatus, EqualToInt: status.rawValue) + } + //private static let messageFromCryptoIdentityKey = [messageKey, InboxMessage.Predicate.Key.fromCryptoIdentityKey.rawValue].joined(separator: ".") + } + + @nonobjc class func fetchRequest() -> NSFetchRequest { return NSFetchRequest(entityName: InboxAttachment.entityName) } - static func get(attachmentId: AttachmentIdentifier, within obvContext: ObvContext) throws -> InboxAttachment? { + static func get(attachmentId: ObvAttachmentIdentifier, within obvContext: ObvContext) throws -> InboxAttachment? { let request: NSFetchRequest = InboxAttachment.fetchRequest() - request.predicate = NSPredicate(format: "%K == %@ AND %K == %@ AND %K == %d", - rawMessageIdOwnedIdentityKey, attachmentId.messageId.ownedCryptoIdentity.getIdentity() as NSData, - rawMessageIdUidKey, attachmentId.messageId.uid.raw as NSData, - attachmentNumberKey, attachmentId.attachmentNumber) - request.relationshipKeyPathsForPrefetching = [InboxAttachment.rawStatusKey] + request.predicate = Predicate.withAttachmentIdentifier(attachmentId) + request.relationshipKeyPathsForPrefetching = [Predicate.Key.rawStatus.rawValue] let item = (try obvContext.fetch(request)).first return item } @@ -501,14 +557,15 @@ extension InboxAttachment { static func getAllDownloadableWithoutSession(within obvContext: ObvContext) throws -> [InboxAttachment] { let request: NSFetchRequest = InboxAttachment.fetchRequest() - - request.predicate = NSPredicate(format: "%K != NIL AND %K == NIL AND %K != NIL AND %K != NIL AND %K != NIL AND %K == %d", - messageKey, - sessionKey, - encodedAuthenticatedEncryptionKeyKey, - metadataKey, - messageFromCryptoIdentityKey, - rawStatusKey, Status.resumeRequested.rawValue) + + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withNilSession, + Predicate.withNonNilMessage, + Predicate.withNonNilEncodedAuthenticatedDecryptionKey, + Predicate.withNonNilMetadata, + Predicate.withNonNilMessageFromCryptoIdentity, + Predicate.withStatus(.resumeRequested), + ]) let items = try obvContext.fetch(request) .filter { (attachment) -> Bool in let allChunksHaveSignedURLs = attachment.chunks.allSatisfy({ $0.signedURL != nil }) @@ -518,27 +575,12 @@ extension InboxAttachment { return items } - static func getAllNotResumed(within obvContext: ObvContext) throws -> [InboxAttachment] { - let request: NSFetchRequest = InboxAttachment.fetchRequest() - request.predicate = NSPredicate(format: "%K != %d", rawStatusKey, Status.resumeRequested.rawValue) - request.relationshipKeyPathsForPrefetching = [InboxAttachment.rawStatusKey] - return try obvContext.fetch(request) - } - - static func getAllMarkedForDeletion(within obvContext: ObvContext) throws -> [InboxAttachment] { - let request: NSFetchRequest = InboxAttachment.fetchRequest() - request.predicate = NSPredicate(format: "%K == %d", rawStatusKey, Status.markedForDeletion.rawValue) - request.relationshipKeyPathsForPrefetching = [InboxAttachment.rawStatusKey] - return try obvContext.fetch(request) - } - - static func deleteAllOrphaned(within obvContext: ObvContext) throws { let fetch = NSFetchRequest(entityName: InboxAttachment.entityName) - fetch.predicate = NSPredicate(format: "%K == NIL", messageKey) + fetch.predicate = Predicate.withNilMessage let request = NSBatchDeleteRequest(fetchRequest: fetch) _ = try obvContext.execute(request) } - + } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/InboxAttachmentChunk.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/InboxAttachmentChunk.swift index ed3aa74e..a83fa4da 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/InboxAttachmentChunk.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/InboxAttachmentChunk.swift @@ -71,11 +71,11 @@ final class InboxAttachmentChunk: NSManagedObject, ObvManagedObject { } /// This identifier is expected to be non nil, unless this `InboxAttachmentChunk` was deleted on another thread. - private(set) var messageId: MessageIdentifier? { + private(set) var messageId: ObvMessageIdentifier? { get { guard let rawMessageIdOwnedIdentity = self.rawMessageIdOwnedIdentity else { return nil } guard let rawMessageIdUid = self.rawMessageIdUid else { return nil } - return MessageIdentifier(rawOwnedCryptoIdentity: rawMessageIdOwnedIdentity, rawUid: rawMessageIdUid) + return ObvMessageIdentifier(rawOwnedCryptoIdentity: rawMessageIdOwnedIdentity, rawUid: rawMessageIdUid) } set { guard let newValue else { assertionFailure("We should not be setting a nil value"); return } @@ -85,10 +85,10 @@ final class InboxAttachmentChunk: NSManagedObject, ObvManagedObject { } /// This identifier is expected to be non nil, unless this `InboxAttachmentChunk` was deleted on another thread. - private(set) var attachmentId: AttachmentIdentifier? { + private(set) var attachmentId: ObvAttachmentIdentifier? { get { guard let messageId = self.messageId else { return nil } - return AttachmentIdentifier(messageId: messageId, attachmentNumber: self.attachmentNumber) + return ObvAttachmentIdentifier(messageId: messageId, attachmentNumber: self.attachmentNumber) } set { guard let newValue else { assertionFailure("We should not be setting a nil value"); return } @@ -120,7 +120,8 @@ final class InboxAttachmentChunk: NSManagedObject, ObvManagedObject { extension InboxAttachmentChunk { - func resetDownload() throws { + func resetDownload() { + guard self.cleartextChunkWasWrittenToAttachmentFile else { return } self.cleartextChunkWasWrittenToAttachmentFile = false } @@ -162,7 +163,7 @@ extension InboxAttachmentChunk { _ = try obvContext.execute(request) } - static func getAllMissingAttachmentChunks(ofAttachmentId attachmentId: AttachmentIdentifier, within obvContext: ObvContext) throws -> [InboxAttachmentChunk] { + static func getAllMissingAttachmentChunks(ofAttachmentId attachmentId: ObvAttachmentIdentifier, within obvContext: ObvContext) throws -> [InboxAttachmentChunk] { let request: NSFetchRequest = InboxAttachmentChunk.fetchRequest() request.predicate = NSPredicate(format: "%K == %@ AND %K == %@ AND %K == %d AND %K == FALSE", rawMessageIdOwnedIdentityKey, attachmentId.messageId.ownedCryptoIdentity.getIdentity() as NSData, diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/InboxMessage.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/InboxMessage.swift index 872b741d..e2b4b832 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/InboxMessage.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/InboxMessage.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -81,7 +81,7 @@ final class InboxMessage: NSManagedObject, ObvManagedObject, ObvErrorMaker { } } - var attachmentIds: [AttachmentIdentifier] { + var attachmentIds: [ObvAttachmentIdentifier] { return attachments.compactMap { $0.attachmentId } } @@ -100,11 +100,11 @@ final class InboxMessage: NSManagedObject, ObvManagedObject, ObvErrorMaker { } /// This identifier is expected to be non nil, unless this `InboxMessage` was deleted on another thread. - private(set) var messageId: MessageIdentifier? { + private(set) var messageId: ObvMessageIdentifier? { get { guard let rawMessageIdOwnedIdentity = self.rawMessageIdOwnedIdentity else { return nil } guard let rawMessageIdUid = self.rawMessageIdUid else { return nil } - return MessageIdentifier(rawOwnedCryptoIdentity: rawMessageIdOwnedIdentity, rawUid: rawMessageIdUid) + return ObvMessageIdentifier(rawOwnedCryptoIdentity: rawMessageIdOwnedIdentity, rawUid: rawMessageIdUid) } set { guard let newValue else { assertionFailure("We should not be setting a nil value"); return } @@ -130,14 +130,30 @@ final class InboxMessage: NSManagedObject, ObvManagedObject, ObvErrorMaker { /// We expect to return a non-nil URL, unless this `InboxMessage` was deleted on another thread. func getAttachmentDirectory(withinInbox inbox: URL) -> URL? { guard let messageId else { return nil } - let sha256 = ObvCryptoSuite.sharedInstance.hashFunctionSha256() - let directoryName = sha256.hash(messageId.rawValue).hexString() + // Return a legacy value if appropriate + if let url = Self.getLegacyAttachmentDirectoryIfItExistsOnDisk(withinInbox: inbox, messageId: messageId) { + return url + } + // Since we did not find any file at the legacy URL, we compute an appropriate, deterministic, URL. + let directoryName = messageId.directoryNameForMessageAttachments return inbox.appendingPathComponent(directoryName, isDirectory: true) } + + private static func getLegacyAttachmentDirectoryIfItExistsOnDisk(withinInbox inbox: URL, messageId: ObvMessageIdentifier) -> URL? { + let directoryNames = messageId.legacyDirectoryNamesForMessageAttachments + for directoryName in directoryNames { + let url = inbox.appendingPathComponent(directoryName, isDirectory: true) + if FileManager.default.fileExists(atPath: url.path) { + return url + } + } + return nil + } + // MARK: - Initializer - convenience init(messageId: MessageIdentifier, encryptedContent: EncryptedData, hasEncryptedExtendedMessagePayload: Bool, wrappedKey: EncryptedData, messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, localDownloadTimestamp: Date, within obvContext: ObvContext) throws { + convenience init(messageId: ObvMessageIdentifier, encryptedContent: EncryptedData, hasEncryptedExtendedMessagePayload: Bool, wrappedKey: EncryptedData, messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, localDownloadTimestamp: Date, within obvContext: ObvContext) throws { guard !Self.thisMessageWasRecentlyDeleted(messageId: messageId) else { throw InternalError.tryingToInsertAMessageThatWasAlreadyDeleted @@ -167,7 +183,7 @@ final class InboxMessage: NSManagedObject, ObvManagedObject, ObvErrorMaker { /// We keep in memory a list of all messages that were "recently" deleted. This prevents the re-creation of a message that we would list from the server and delete at the same time. /// Every 10 minutes or so, we remove old entries. - private static var _messagesRecentlyDeleted = [MessageIdentifier: Date]() + private static var _messagesRecentlyDeleted = [ObvMessageIdentifier: Date]() /// This queue allows to synchronise access to `_messagesRecentlyDeleted` private static var messagesRecentlyDeletedQueue = DispatchQueue(label: "MessagesRecentlyDeletedQueue", attributes: .concurrent) @@ -190,7 +206,7 @@ final class InboxMessage: NSManagedObject, ObvManagedObject, ObvErrorMaker { /// Returns `true` iff we recently deleted a message with the given message identifier. - private static func thisMessageWasRecentlyDeleted(messageId: MessageIdentifier) -> Bool { + private static func thisMessageWasRecentlyDeleted(messageId: ObvMessageIdentifier) -> Bool { removeOldEntriesFromMessagesRecentlyDeletedIfAppropriate() var result = false messagesRecentlyDeletedQueue.sync { @@ -200,7 +216,7 @@ final class InboxMessage: NSManagedObject, ObvManagedObject, ObvErrorMaker { } - private static func trackRecentlyDeletedMessage(messageId: MessageIdentifier) { + private static func trackRecentlyDeletedMessage(messageId: ObvMessageIdentifier) { messagesRecentlyDeletedQueue.async(flags: .barrier) { _messagesRecentlyDeleted[messageId] = Date() } @@ -313,7 +329,7 @@ extension InboxMessage { static func withMessageIdUid(_ uid: UID) -> NSPredicate { NSPredicate(Key.rawMessageIdUidKey, EqualToData: uid.raw) } - static func withMessageIdentifier(_ messageId: MessageIdentifier) -> NSPredicate { + static func withMessageIdentifier(_ messageId: ObvMessageIdentifier) -> NSPredicate { NSCompoundPredicate(andPredicateWithSubpredicates: [ withMessageIdOwnedCryptoId(messageId.ownedCryptoIdentity), withMessageIdUid(messageId.uid), @@ -369,7 +385,7 @@ extension InboxMessage { } - static func get(messageId: MessageIdentifier, within obvContext: ObvContext) throws -> InboxMessage? { + static func get(messageId: ObvMessageIdentifier, within obvContext: ObvContext) throws -> InboxMessage? { let request: NSFetchRequest = InboxMessage.fetchRequest() request.predicate = Predicate.withMessageIdentifier(messageId) request.fetchLimit = 1 diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/PendingDeleteFromServer.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/PendingDeleteFromServer.swift index 46aec237..3c717399 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/PendingDeleteFromServer.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/PendingDeleteFromServer.swift @@ -40,11 +40,11 @@ final class PendingDeleteFromServer: NSManagedObject, ObvManagedObject { // MARK: Other variables /// This identifier is expected to be non nil, unless this `PendingDeleteFromServer` was deleted on another thread. - private(set) var messageId: MessageIdentifier? { + private(set) var messageId: ObvMessageIdentifier? { get { guard let rawMessageIdOwnedIdentity = self.rawMessageIdOwnedIdentity else { return nil } guard let rawMessageIdUid = self.rawMessageIdUid else { return nil } - return MessageIdentifier(rawOwnedCryptoIdentity: rawMessageIdOwnedIdentity, rawUid: rawMessageIdUid) + return ObvMessageIdentifier(rawOwnedCryptoIdentity: rawMessageIdOwnedIdentity, rawUid: rawMessageIdUid) } set { guard let newValue else { assertionFailure("We should not be setting a nil value"); return } @@ -57,7 +57,7 @@ final class PendingDeleteFromServer: NSManagedObject, ObvManagedObject { // MARK: - Initializer - convenience init(messageId: MessageIdentifier, within obvContext: ObvContext) { + convenience init(messageId: ObvMessageIdentifier, within obvContext: ObvContext) { let entityDescription = NSEntityDescription.entity(forEntityName: PendingDeleteFromServer.entityName, in: obvContext)! self.init(entity: entityDescription, insertInto: obvContext) self.messageId = messageId @@ -81,7 +81,7 @@ extension PendingDeleteFromServer { static func withMessageIdUid(_ messageIdUid: UID) -> NSPredicate { NSPredicate(Key.rawMessageIdUid, EqualToData: messageIdUid.raw) } - static func withMessageId(_ messageId: MessageIdentifier) -> NSPredicate { + static func withMessageId(_ messageId: ObvMessageIdentifier) -> NSPredicate { NSCompoundPredicate(andPredicateWithSubpredicates: [ withOwnedCryptoIdentity(messageId.ownedCryptoIdentity), withMessageIdUid(messageId.uid), @@ -93,7 +93,7 @@ extension PendingDeleteFromServer { return NSFetchRequest(entityName: PendingDeleteFromServer.entityName) } - static func get(messageId: MessageIdentifier, within obvContext: ObvContext) throws -> PendingDeleteFromServer? { + static func get(messageId: ObvMessageIdentifier, within obvContext: ObvContext) throws -> PendingDeleteFromServer? { let request: NSFetchRequest = PendingDeleteFromServer.fetchRequest() request.predicate = Predicate.withMessageId(messageId) request.fetchLimit = 1 diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/PendingServerQuery.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/PendingServerQuery.swift index 0aa6e25d..15aafa37 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/PendingServerQuery.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/PendingServerQuery.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,61 +26,66 @@ import ObvCrypto import ObvTypes import OlvidUtils -@objc(PendingServerQuery) -class PendingServerQuery: NSManagedObject, ObvManagedObject, ObvErrorMaker { - // MARK: Internal constants +@objc(PendingServerQuery) +final class PendingServerQuery: NSManagedObject, ObvManagedObject { private static let entityName = "PendingServerQuery" - static let errorDomain = "PendingServerQuery" - private static let encodedElementsKey = "encodedElements" - private static let encodedQueryTypeKey = "encodedQueryType" - private static let encodedResponseTypeKey = "encodedResponseType" // MARK: Attributes - + + @NSManaged private(set) var isWebSocket: Bool + @NSManaged private var rawEncodedElements: Data + @NSManaged private var rawEncodedQueryType: Data + @NSManaged private var rawEncodedResponseType: Data? + @NSManaged private var rawOwnedIdentity: Data + + + // MARK: Accessors + private(set) var encodedElements: ObvEncoded { - get { - let rawData = kvoSafePrimitiveValue(forKey: PendingServerQuery.encodedElementsKey) as! Data - return ObvEncoded(withRawData: rawData)! - } - set { - kvoSafeSetPrimitiveValue(newValue.rawData, forKey: PendingServerQuery.encodedElementsKey) - } + get { ObvEncoded(withRawData: rawEncodedElements)! } + set { self.rawEncodedElements = newValue.rawData } } + + private(set) var queryType: ServerQuery.QueryType { - get { - let rawData = kvoSafePrimitiveValue(forKey: PendingServerQuery.encodedQueryTypeKey) as! Data - let encodedQueryType = ObvEncoded(withRawData: rawData)! - return ServerQuery.QueryType(encodedQueryType)! - } - set { - kvoSafeSetPrimitiveValue(newValue.obvEncode().rawData, forKey: PendingServerQuery.encodedQueryTypeKey) - } + get { ServerQuery.QueryType(ObvEncoded(withRawData: rawEncodedQueryType)!)! } + set { self.rawEncodedQueryType = newValue.obvEncode().rawData } } + + var responseType: ServerResponse.ResponseType? { get { - let rawData = kvoSafePrimitiveValue(forKey: PendingServerQuery.encodedResponseTypeKey) as! Data? - if let rawData = rawData { - let encodedResponseType = ObvEncoded(withRawData: rawData)! - return ServerResponse.ResponseType(encodedResponseType) - } else { - return nil - } + guard let rawEncodedResponseType else { return nil } + guard let encodedResponseType = ObvEncoded(withRawData: rawEncodedResponseType), + let responseType = ServerResponse.ResponseType(encodedResponseType) else { assertionFailure(); return nil } + return responseType } set { - if let newValue = newValue { - kvoSafeSetPrimitiveValue(newValue.obvEncode().rawData, forKey: PendingServerQuery.encodedResponseTypeKey) + guard let newValue else { assertionFailure("We do not expect to set a nil value"); return } + self.rawEncodedResponseType = newValue.obvEncode().rawData + } + } + + + var ownedIdentity: ObvCryptoIdentity { + get throws { + guard let ownedCryptoIdentity = ObvCryptoIdentity(from: rawOwnedIdentity) else { + if !isDeleted { assertionFailure() } + throw ObvError.couldNotParseOwnedIdentity } + return ownedCryptoIdentity } } - @NSManaged private(set) var ownedIdentity: ObvCryptoIdentity - + + // MARK: Other variables weak var delegateManager: ObvNetworkFetchDelegateManager? var obvContext: ObvContext? + // MARK: - Initializer convenience init(serverQuery: ServerQuery, delegateManager: ObvNetworkFetchDelegateManager, within obvContext: ObvContext) { @@ -90,8 +95,10 @@ class PendingServerQuery: NSManagedObject, ObvManagedObject, ObvErrorMaker { self.encodedElements = serverQuery.encodedElements self.queryType = serverQuery.queryType - self.ownedIdentity = serverQuery.ownedIdentity + self.rawOwnedIdentity = serverQuery.ownedIdentity.getIdentity() self.delegateManager = delegateManager + self.obvContext = obvContext + self.isWebSocket = serverQuery.isWebSocket } @@ -102,11 +109,12 @@ class PendingServerQuery: NSManagedObject, ObvManagedObject, ObvErrorMaker { extension PendingServerQuery { - func delete(flowId: FlowIdentifier) { - guard let obvContext = self.obvContext else { - assertionFailure("ObvContext is nil in PendingServerQuery") + func deletePendingServerQuery(within obvContext: ObvContext) { + guard self.managedObjectContext == obvContext.context else { + assertionFailure("Unexpected context") return } + self.obvContext = obvContext obvContext.delete(self) } @@ -118,44 +126,106 @@ extension PendingServerQuery { struct Predicate { enum Key: String { - case ownedIdentity = "ownedIdentity" + case isWebSocket = "isWebSocket" + case rawEncodedElements = "rawEncodedElements" + case rawEncodedQueryType = "rawEncodedQueryType" + case rawEncodedResponseType = "rawEncodedResponseType" + case rawOwnedIdentity = "rawOwnedIdentity" } static func withOwnedCryptoIdentity(_ ownedCryptoIdentity: ObvCryptoIdentity) -> NSPredicate { - NSPredicate(format: "%K == %@", Key.ownedIdentity.rawValue, ownedCryptoIdentity) + NSPredicate(Key.rawOwnedIdentity, EqualToData: ownedCryptoIdentity.getIdentity()) + } + static func whereIsWebSocketIs(_ isWebSocket: Bool) -> NSPredicate { + NSPredicate(Key.isWebSocket, is: isWebSocket) + } + static func withObjectID(_ objectID: NSManagedObjectID) -> NSPredicate { + NSPredicate(withObjectID: objectID) } } - @nonobjc class func fetchRequest() -> NSFetchRequest { - return NSFetchRequest(entityName: PendingServerQuery.entityName) + + @nonobjc static func fetchRequest() -> NSFetchRequest { + NSFetchRequest(entityName: PendingServerQuery.entityName) } - static func get(objectId: NSManagedObjectID, delegateManager: ObvNetworkFetchDelegateManager, within obvContext: ObvContext) throws -> PendingServerQuery { - guard let serverQuery = try obvContext.existingObject(with: objectId) as? PendingServerQuery else { - throw Self.makeError(message: "Could not find PendingServerQuery") - } - serverQuery.delegateManager = delegateManager - return serverQuery + + static func get(objectId: NSManagedObjectID, delegateManager: ObvNetworkFetchDelegateManager, within obvContext: ObvContext) throws -> PendingServerQuery? { + let request: NSFetchRequest = PendingServerQuery.fetchRequest() + request.predicate = Predicate.withObjectID(objectId) + request.fetchLimit = 1 + let item = try obvContext.fetch(request).first + item?.delegateManager = delegateManager + item?.obvContext = obvContext + return item } + - static func getAllServerQuery(for identity: ObvCryptoIdentity, delegateManager: ObvNetworkFetchDelegateManager, within obvContext: ObvContext) throws -> [PendingServerQuery] { + enum BoolOrAny { + case any + case bool(_ value: Bool) + } + + static func getAllServerQuery(for identity: ObvCryptoIdentity, isWebSocket: BoolOrAny, delegateManager: ObvNetworkFetchDelegateManager, within obvContext: ObvContext) throws -> [PendingServerQuery] { let request: NSFetchRequest = PendingServerQuery.fetchRequest() - request.predicate = Predicate.withOwnedCryptoIdentity(identity) - return try obvContext.fetch(request) + var subpredicates = [Predicate.withOwnedCryptoIdentity(identity)] + switch isWebSocket { + case .any: + break + case .bool(let isWebSocket): + subpredicates += [Predicate.whereIsWebSocketIs(isWebSocket)] + } + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: subpredicates) + let items = try obvContext.fetch(request) + items.forEach { item in + item.delegateManager = delegateManager + item.obvContext = obvContext + } + return items } + static func getAllServerQuery(delegateManager: ObvNetworkFetchDelegateManager, within obvContext: ObvContext) throws -> [PendingServerQuery] { let request: NSFetchRequest = PendingServerQuery.fetchRequest() request.fetchBatchSize = 1_000 - return try obvContext.fetch(request) + let items = try obvContext.fetch(request) + items.forEach { item in + item.delegateManager = delegateManager + item.obvContext = obvContext + } + return items } + static func deleteAllServerQuery(for identity: ObvCryptoIdentity, delegateManager: ObvNetworkFetchDelegateManager, within obvContext: ObvContext) throws { - let serverQueries = try getAllServerQuery(for: identity, delegateManager: delegateManager, within: obvContext) + let serverQueries = try getAllServerQuery(for: identity, isWebSocket: .any, delegateManager: delegateManager, within: obvContext) for serverQuery in serverQueries { - serverQuery.delete(flowId: obvContext.flowId) + serverQuery.deletePendingServerQuery(within: obvContext) } } + + static func deleteAllWebSocketServerQuery(within obvContext: ObvContext) throws { + let request: NSFetchRequest = PendingServerQuery.fetchRequest() + request.predicate = Predicate.whereIsWebSocketIs(true) + let items = try obvContext.fetch(request) + items.forEach { item in + item.deletePendingServerQuery(within: obvContext) + } + } + +} + + +// MARK: - Errors + +extension PendingServerQuery { + + enum ObvError: Error { + case theDelegateManagerIsNil + case couldNotFindPendingServerQuery + case couldNotParseOwnedIdentity + } + } // MARK: - Managing Change Events @@ -172,9 +242,9 @@ extension PendingServerQuery { } if isInserted, let flowId = self.obvContext?.flowId { - delegateManager.networkFetchFlowDelegate.newPendingServerQueryToProcessWithObjectId(self.objectID, flowId: flowId) - } else if isDeleted, let flowId = self.obvContext?.flowId { - delegateManager.networkFetchFlowDelegate.pendingServerQueryWasDeletedFromDatabase(objectId: self.objectID, flowId: flowId) + let objectID = self.objectID + let isWebSocket = self.isWebSocket + Task { await delegateManager.networkFetchFlowDelegate.newPendingServerQueryToProcessWithObjectId(objectID, isWebSocket: isWebSocket, flowId: flowId) } } } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/ServerPushNotification.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/ServerPushNotification.swift deleted file mode 100644 index 16c60b8f..00000000 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/ServerPushNotification.swift +++ /dev/null @@ -1,308 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import os.log -import ObvTypes -import ObvEncoder -import ObvCrypto -import ObvMetaManager -import OlvidUtils - - -@objc(ServerPushNotification) -final class ServerPushNotification: NSManagedObject, ObvErrorMaker { - - // MARK: Internal constants - - private static let entityName = "ServerPushNotification" - static let errorDomain = "ServerPushNotification" - - enum ServerRegistrationStatus { - case toRegister - case registering(urlSessionTaskIdentifier: Int) - case registered - - public enum ByteId: UInt8 { - case toRegister = 0 - case registering = 1 - case registered = 2 - } - - var byteId: ByteId { - switch self { - case .toRegister: return .toRegister - case .registering: return .registering - case .registered: return .registered - } - } - - } - - // MARK: Attributes - - @NSManaged private var creationDate: Date - @NSManaged private var kickOtherDevices: Bool // Part of ObvPushNotificationParameters - @NSManaged private var pushToken: Data? // Non nil for remote push notification type, always nil for the registerDeviceUid type. - @NSManaged private var rawCurrentDeviceUID: Data - @NSManaged private var rawKeycloakPushTopics: String? - @NSManaged private var rawMaskingUID: Data? // Non nil for remote push notification type, always nil for the registerDeviceUid type. - @NSManaged private var rawOwnedCryptoId: Data - @NSManaged private var rawPushNotificationByteId: Int // One byte, see ObvPushNotificationType - @NSManaged private var rawServerRegistrationStatus: Int - @NSManaged private var rawURLSessionTaskIdentifier: Int // Only makes sense when the ServerRegistrationStatus is "registering". It is set to -1 otherwise. - @NSManaged private var useMultiDevice: Bool // Part of ObvPushNotificationParameters - @NSManaged private var voipToken: Data? // Non nil for remote push notification type, always nil for the registerDeviceUid type. - - - var pushNotification: ObvPushNotificationType { - get throws { - guard let ownedCryptoId = ObvCryptoIdentity(from: rawOwnedCryptoId) else { - assertionFailure() - throw Self.makeError(message: "Unexpected rawOwnedCryptoId") - } - guard let currentDeviceUID = UID(uid: rawCurrentDeviceUID) else { - assertionFailure() - throw Self.makeError(message: "Unexpected rawCurrentDeviceUID") - } - guard let pushNotificationByteId = ObvPushNotificationType.ByteId(rawValue: UInt8(rawPushNotificationByteId)) else { - assertionFailure() - throw Self.makeError(message: "Unexpected rawPushNotificationByteId") - } - switch pushNotificationByteId { - case .remote: - guard let pushToken, let rawMaskingUID, let maskingUID = UID(uid: rawMaskingUID) else { - assertionFailure() - throw Self.makeError(message: "Could not reconstruct remote push notification") - } - let parameters = ObvPushNotificationParameters(kickOtherDevices: kickOtherDevices, useMultiDevice: useMultiDevice, keycloakPushTopics: keycloakPushTopics) - return .remote(ownedCryptoId: ownedCryptoId, currentDeviceUID: currentDeviceUID, pushToken: pushToken, voipToken: voipToken, maskingUID: maskingUID, parameters: parameters) - case .registerDeviceUid: - let parameters = ObvPushNotificationParameters(kickOtherDevices: kickOtherDevices, useMultiDevice: useMultiDevice, keycloakPushTopics: keycloakPushTopics) - return .registerDeviceUid(ownedCryptoId: ownedCryptoId, currentDeviceUID: currentDeviceUID, parameters: parameters) - } - } - } - - private var keycloakPushTopics: Set { - get { - guard let rawKeycloakPushTopics else { return Set() } - return Set(rawKeycloakPushTopics.split(separator: "|").map({ String($0) })) - } - set { - let newRawKeycloakPushTopics = newValue.sorted().joined(separator: "|") - if self.rawKeycloakPushTopics != newRawKeycloakPushTopics { - self.rawKeycloakPushTopics = newRawKeycloakPushTopics - } - } - } - - var serverRegistrationStatus: ServerRegistrationStatus { - get throws { - guard let byteId = ServerRegistrationStatus.ByteId(rawValue: UInt8(rawServerRegistrationStatus)) else { - assertionFailure() - throw Self.makeError(message: "Unexpected raw ServerRegistrationStatus.ByteId: \(rawServerRegistrationStatus)") - } - switch byteId { - case .toRegister: return .toRegister - case .registering: return .registering(urlSessionTaskIdentifier: rawURLSessionTaskIdentifier) - case .registered: return .registered - } - } - } - - // MARK: - Initializer - - private convenience init(pushNotificationType: ObvPushNotificationType, within context: NSManagedObjectContext) { - - let entityDescription = NSEntityDescription.entity(forEntityName: ServerPushNotification.entityName, in: context)! - self.init(entity: entityDescription, insertInto: context) - - self.creationDate = Date() - self.rawOwnedCryptoId = pushNotificationType.ownedCryptoId.getIdentity() - self.rawPushNotificationByteId = Int(pushNotificationType.byteId.rawValue) - self.rawServerRegistrationStatus = Int(ServerRegistrationStatus.toRegister.byteId.rawValue) - self.rawCurrentDeviceUID = pushNotificationType.currentDeviceUID.raw - self.rawURLSessionTaskIdentifier = -1 - - switch pushNotificationType { - case .remote(ownedCryptoId: _, currentDeviceUID: _, pushToken: let pushToken, voipToken: let voipToken, maskingUID: let maskingUID, parameters: let parameters): - self.kickOtherDevices = parameters.kickOtherDevices - self.keycloakPushTopics = parameters.keycloakPushTopics - self.pushToken = pushToken - self.rawMaskingUID = maskingUID.raw - self.useMultiDevice = parameters.useMultiDevice - self.voipToken = voipToken - case .registerDeviceUid(ownedCryptoId: _, currentDeviceUID: _, parameters: let parameters): - self.kickOtherDevices = parameters.kickOtherDevices - self.keycloakPushTopics = parameters.keycloakPushTopics - self.pushToken = nil - self.rawMaskingUID = nil - self.useMultiDevice = parameters.useMultiDevice - self.voipToken = nil - } - - } - - - static func createOrThrowIfOneAlreadyExists(pushNotificationType: ObvPushNotificationType, within context: NSManagedObjectContext) throws -> Self { - guard try ServerPushNotification.getServerPushNotificationOfType(pushNotificationType.byteId, ownedCryptoId: pushNotificationType.ownedCryptoId, within: context) == nil else { - assertionFailure() - throw Self.makeError(message: "An ServerPushNotification of type \(pushNotificationType.byteId.rawValue) already exists") - } - return Self.init(pushNotificationType: pushNotificationType, within: context) - } - - - func delete() throws { - guard let managedObjectContext else { - assertionFailure() - throw Self.makeError(message: "Could not find context") - } - managedObjectContext.delete(self) - } - - - func switchToServerRegistrationStatus(_ newServerRegistrationStatus: ServerRegistrationStatus) throws { - switch newServerRegistrationStatus { - case .toRegister: - if self.rawServerRegistrationStatus != ServerRegistrationStatus.ByteId.toRegister.rawValue { - self.rawServerRegistrationStatus = Int(ServerRegistrationStatus.ByteId.toRegister.rawValue) - } - if self.rawURLSessionTaskIdentifier != -1 { - self.rawURLSessionTaskIdentifier = -1 - } - case .registering(urlSessionTaskIdentifier: let urlSessionTaskIdentifier): - if self.rawServerRegistrationStatus != ServerRegistrationStatus.ByteId.registering.rawValue { - self.rawServerRegistrationStatus = Int(ServerRegistrationStatus.ByteId.registering.rawValue) - } - if self.rawURLSessionTaskIdentifier != urlSessionTaskIdentifier { - self.rawURLSessionTaskIdentifier = urlSessionTaskIdentifier - } - case .registered: - if self.rawServerRegistrationStatus != ServerRegistrationStatus.ByteId.registered.rawValue { - self.rawServerRegistrationStatus = Int(ServerRegistrationStatus.ByteId.registered.rawValue) - } - if self.rawURLSessionTaskIdentifier != -1 { - self.rawURLSessionTaskIdentifier = -1 - } - } - } - - func setKickOtherDevices(to newValue: Bool) { - if self.kickOtherDevices != newValue { - self.kickOtherDevices = newValue - } - } -} - - -// MARK: - Convenience DB getters - -extension ServerPushNotification { - - struct Predicate { - enum Key: String { - case creationDate = "creationDate" - case kickOtherDevices = "kickOtherDevices" - case pushToken = "pushToken" - case rawCurrentDeviceUID = "rawCurrentDeviceUID" - case rawKeycloakPushTopics = "rawKeycloakPushTopics" - case rawMaskingUID = "rawMaskingUID" - case rawOwnedCryptoId = "rawOwnedCryptoId" - case rawPushNotificationByteId = "rawPushNotificationByteId" - case rawServerRegistrationStatus = "rawServerRegistrationStatus" - case rawURLSessionTaskIdentifier = "rawURLSessionTaskIdentifier" - case useMultiDevice = "useMultiDevice" - case voipToken = "voipToken" - } - static func withOwnedCryptoId(_ ownedCryptoId: ObvCryptoIdentity) -> NSPredicate { - NSPredicate(Key.rawOwnedCryptoId, EqualToData: ownedCryptoId.getIdentity()) - } - static func withTypeByteId(_ typeByteId: ObvPushNotificationType.ByteId) -> NSPredicate { - NSPredicate(Key.rawPushNotificationByteId, EqualToInt: Int(typeByteId.rawValue)) - } - static func withServerRegistrationStatus(_ serverRegistrationStatus: ServerRegistrationStatus.ByteId) -> NSPredicate { - NSPredicate(Key.rawServerRegistrationStatus, EqualToInt: Int(serverRegistrationStatus.rawValue)) - } - static func withServerRegistrationStatusDistinctFrom(_ serverRegistrationStatus: ServerRegistrationStatus.ByteId) -> NSPredicate { - NSPredicate(Key.rawServerRegistrationStatus, DistinctFromInt: Int(serverRegistrationStatus.rawValue)) - } - static func withURLSessionTaskIdentifier(urlSessionTaskIdentifier: Int) -> NSPredicate { - NSPredicate(Key.rawURLSessionTaskIdentifier, EqualToInt: urlSessionTaskIdentifier) - } - } - - @nonobjc class func fetchRequest() -> NSFetchRequest { - return NSFetchRequest(entityName: ServerPushNotification.entityName) - } - - - static func getServerPushNotificationOfType(_ typeByteId: ObvPushNotificationType.ByteId, ownedCryptoId: ObvCryptoIdentity, within context: NSManagedObjectContext) throws -> ServerPushNotification? { - let request: NSFetchRequest = ServerPushNotification.fetchRequest() - request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ - Predicate.withOwnedCryptoId(ownedCryptoId), - Predicate.withTypeByteId(typeByteId), - ]) - request.fetchLimit = 1 - let item = try context.fetch(request).first - return item - } - - - static func getRegisteringAndCorrespondingToURLSessionTaskIdentifier(_ urlSessionTaskIdentifier: Int, within context: NSManagedObjectContext) throws -> ServerPushNotification? { - let request: NSFetchRequest = ServerPushNotification.fetchRequest() - request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ - Predicate.withServerRegistrationStatus(.registering), - Predicate.withURLSessionTaskIdentifier(urlSessionTaskIdentifier: urlSessionTaskIdentifier), - ]) - request.fetchBatchSize = 100 - let items = try context.fetch(request) - assert(items.count < 2, "More than one registering item found for that url session task identifier, not expected") - return items.first - } - - - static func deleteAllServerPushNotificationForOwnedCryptoIdentity(_ ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws { - let request: NSFetchRequest = ServerPushNotification.fetchRequest() - request.predicate = Predicate.withOwnedCryptoId(ownedCryptoId) - let deleteRequest = NSBatchDeleteRequest(fetchRequest: request) - deleteRequest.resultType = .resultTypeStatusOnly - _ = try obvContext.execute(deleteRequest) - } - - -// static func switchServerRegistrationStatusToToRegisterForAllServerPushNotification(within context: NSManagedObjectContext) throws { -// let request: NSFetchRequest = ServerPushNotification.fetchRequest() -// request.fetchBatchSize = 100 -// let items = try context.fetch(request) -// try items.forEach { item in -// try item.switchToServerRegistrationStatus(.toRegister) -// } -// } - - static func getAllServerPushNotification(within context: NSManagedObjectContext) throws -> Set { - let request: NSFetchRequest = ServerPushNotification.fetchRequest() - request.fetchBatchSize = 100 - let items = try context.fetch(request) - return Set(items) - } - -} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/ServerSession.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/ServerSession.swift index 6c44cddc..d76d1ce7 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/ServerSession.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/CoreData/ServerSession.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,37 +23,104 @@ import os.log import ObvTypes import ObvCrypto import OlvidUtils +import ObvMetaManager @objc(ServerSession) -final class ServerSession: NSManagedObject, ObvManagedObject, ObvErrorMaker { - - // MARK: Internal constants +final class ServerSession: NSManagedObject, ObvErrorMaker { private static let entityName = "ServerSession" static let errorDomain = "ServerSession" - private static let challengeKey = "challenge" - private static let cryptoIdentityKey = "cryptoIdentity" - private static let responseKey = "response" - private static let tokenKey = "token" // MARK: Attributes - @NSManaged private(set) var cryptoIdentity: ObvCryptoIdentity - @NSManaged var nonce: Data? - @NSManaged private(set) var response: Data? - @NSManaged var token: Data? - + @NSManaged private var rawAPIKeyExpirationDate: Date? + @NSManaged private var rawAPIKeyStatus: NSNumber? + @NSManaged private var rawAPIPermissions: NSNumber? + @NSManaged private var rawOwnedCryptoId: Data + @NSManaged private(set) var token: Data? + // MARK: Other variables - - var obvContext: ObvContext? - + + var ownedCryptoIdentity: ObvCryptoIdentity { + get throws { + guard let cryptoIdentity = ObvCryptoIdentity(from: rawOwnedCryptoId) else { + throw Self.makeError(message: "Could not decode rawOwnedCryptoId") + } + return cryptoIdentity + } + } + + + private(set) var apiKeyExpirationDate: Date? { + get { self.rawAPIKeyExpirationDate } + set { + if self.rawAPIKeyExpirationDate != newValue { + self.rawAPIKeyExpirationDate = newValue + } + } + } + + + private(set) var apiKeyStatus: APIKeyStatus? { + get { + guard let rawAPIKeyStatus else { return nil } + guard let currentValue = APIKeyStatus(rawValue: Int(truncating: rawAPIKeyStatus)) else { assertionFailure(); return nil } + return currentValue + } + set { + guard let newValue else { + if self.rawAPIKeyStatus != nil { + self.rawAPIKeyStatus = nil + } + return + } + let newAPIKeyStatus = NSNumber(integerLiteral: newValue.rawValue) + if self.rawAPIKeyStatus != newAPIKeyStatus { + self.rawAPIKeyStatus = newAPIKeyStatus + } + } + } + + + private(set) var apiPermissions: APIPermissions? { + get { + guard let rawAPIPermissions else { return nil } + let currentValue = APIPermissions(rawValue: Int(truncating: rawAPIPermissions)) + return currentValue + } + set { + guard let newValue else { + if self.rawAPIPermissions != nil { + self.rawAPIPermissions = nil + } + return + } + let newAPIPermissions = NSNumber(integerLiteral: newValue.rawValue) + if self.rawAPIPermissions != newAPIPermissions { + self.rawAPIPermissions = newAPIPermissions + } + } + } + + var apiKeyElements: APIKeyElements? { + guard let apiKeyStatus, let apiPermissions else { return nil } + return .init( + status: apiKeyStatus, + permissions: apiPermissions, + expirationDate: apiKeyExpirationDate) + } + // MARK: - Initializer - convenience init(identity: ObvCryptoIdentity, within obvContext: ObvContext) { - let entityDescription = NSEntityDescription.entity(forEntityName: ServerSession.entityName, in: obvContext)! - self.init(entity: entityDescription, insertInto: obvContext) - self.cryptoIdentity = identity + private convenience init(identity: ObvCryptoIdentity, within context: NSManagedObjectContext) { + let entityDescription = NSEntityDescription.entity(forEntityName: ServerSession.entityName, in: context)! + self.init(entity: entityDescription, insertInto: context) + self.rawAPIKeyExpirationDate = nil + self.rawAPIKeyStatus = nil + self.rawAPIPermissions = nil + self.rawOwnedCryptoId = identity.getIdentity() + self.token = nil } } @@ -63,39 +130,28 @@ final class ServerSession: NSManagedObject, ObvManagedObject, ObvErrorMaker { extension ServerSession { - // This method sets the identity's server session token to None only if its current value is equal to the token value passed as a parameter. This is used in many operations: at the beginning of their execute, they keep a local copy of the token. If they cancel because the token they use is invalid, they call this method to clean the identity's session. This way of doing things allows to make sure that the operation does not clean a fresh token that would have been create while the operation was executing. - func deleteToken(ifEqualTo token: Data) { - if self.token != nil, self.token! == token { - self.token = nil + func resetSession() { + if token != nil { + token = nil } } - - static func getToken(within obvContext: ObvContext, forIdentity identity: ObvCryptoIdentity) throws -> Data? { - var token: Data? = nil - try obvContext.performAndWaitOrThrow { - let serverSession = try ServerSession.get(within: obvContext, withIdentity: identity) - token = serverSession?.token + + + func save(serverSessionToken: Data, apiKeyElements: APIKeyElements) { + if self.token != serverSessionToken { + self.token = serverSessionToken + } + if self.apiKeyStatus != apiKeyElements.status { + self.apiKeyStatus = apiKeyElements.status + } + if self.apiPermissions != apiKeyElements.permissions { + self.apiPermissions = apiKeyElements.permissions + } + if self.apiKeyExpirationDate != apiKeyElements.expirationDate { + self.apiKeyExpirationDate = apiKeyElements.expirationDate } - return token - } - - func resetSession() { - nonce = nil - response = nil - token = nil - } - - func store(response: Data, ifCurrentNonceIs serverNonce: Data) throws { - guard let localNonce = nonce else { throw Self.makeError(message: "No local nonce") } - guard serverNonce == localNonce else { throw Self.makeError(message: "server nonce is distinct from local nonce") } - self.response = response } - func store(token: Data, ifCurrentNonceIs serverNonce: Data) throws { - guard let localNonce = nonce else { throw Self.makeError(message: "No local nonce") } - guard serverNonce == localNonce else { throw Self.makeError(message: "server nonce is distinct from local nonce") } - self.token = token - } } @@ -103,51 +159,66 @@ extension ServerSession { extension ServerSession { + private struct Predicate { + fileprivate enum Key: String { + case rawAPIKeyExpirationDate = "rawAPIKeyExpirationDate" + case rawAPIKeyStatus = "rawAPIKeyStatus" + case rawAPIPermissions = "rawAPIPermissions" + case rawOwnedCryptoId = "rawOwnedCryptoId" + case token = "token" + } + static func withOwnedCryptoId(_ ownedCryptoId: ObvCryptoIdentity) -> NSPredicate { + NSPredicate(Key.rawOwnedCryptoId, EqualToData: ownedCryptoId.getIdentity()) + } + } + @nonobjc class func fetchRequest() -> NSFetchRequest { return NSFetchRequest(entityName: ServerSession.entityName) } - class func get(within obvContext: ObvContext, withIdentity cryptoIdentity: ObvCryptoIdentity) throws -> ServerSession? { + + static func get(within context: NSManagedObjectContext, withIdentity cryptoIdentity: ObvCryptoIdentity) throws -> ServerSession? { let request: NSFetchRequest = ServerSession.fetchRequest() - request.predicate = NSPredicate(format: "%K == %@", ServerSession.cryptoIdentityKey, cryptoIdentity) - let item = (try obvContext.fetch(request)).first + request.predicate = Predicate.withOwnedCryptoId(cryptoIdentity) + let item = (try context.fetch(request)).first return item } - class func getOrCreate(within obvContext: ObvContext, withIdentity identity: ObvCryptoIdentity) throws -> ServerSession { - if let serverSession = try get(within: obvContext, withIdentity: identity) { + + static func getOrCreate(within context: NSManagedObjectContext, withIdentity identity: ObvCryptoIdentity) throws -> ServerSession { + if let serverSession = try get(within: context, withIdentity: identity) { return serverSession } else { - return ServerSession(identity: identity, within: obvContext) + return ServerSession(identity: identity, within: context) } } - - static func delete(ifTokenIs token: Data, for identity: ObvCryptoIdentity, within obvContext: ObvContext) { + + + static func getAllServerSessions(within context: NSManagedObjectContext) throws -> [ServerSession] { let request: NSFetchRequest = ServerSession.fetchRequest() - request.predicate = NSPredicate(format: "%K == %@", ServerSession.cryptoIdentityKey, identity) - if let item = (try? obvContext.fetch(request))?.first { - if item.token == token { - obvContext.delete(item) - } - } + request.fetchBatchSize = 100 + let items = try context.fetch(request) + return items } - static func deleteAllSessionsOfIdentity(_ identity: ObvCryptoIdentity, within obvContext: ObvContext) throws { + + static func deleteAllSessionsOfIdentity(_ ownedCryptoId: ObvCryptoIdentity, within context: NSManagedObjectContext) throws { let request: NSFetchRequest = ServerSession.fetchRequest() - request.predicate = NSPredicate(format: "%K == %@", ServerSession.cryptoIdentityKey, identity) - let items = try obvContext.fetch(request) + request.predicate = Predicate.withOwnedCryptoId(ownedCryptoId) + let items = try context.fetch(request) for item in items { - obvContext.delete(item) + context.delete(item) } } - static func getAllTokens(within obvContext: ObvContext) throws -> [(ownedCryptoId: ObvCryptoIdentity, token: Data)] { + + static func getAllTokens(within context: NSManagedObjectContext) throws -> [(ownedCryptoId: ObvCryptoIdentity, token: Data)] { let request: NSFetchRequest = ServerSession.fetchRequest() request.fetchBatchSize = 100 - let items = try obvContext.fetch(request) + let items = try context.fetch(request) return items.compactMap { item in guard let token = item.token else { return nil } - return (item.cryptoIdentity, token) + return try? (item.ownedCryptoIdentity, token) } } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/FailedAttemptsCounter.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/FailedAttemptsCounter.swift index d6b38383..5313530c 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/FailedAttemptsCounter.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/FailedAttemptsCounter.swift @@ -32,21 +32,23 @@ struct FailedAttemptsCounterManager { case sessionCreation(ownedIdentity: ObvCryptoIdentity) case registerPushNotification(ownedIdentity: ObvCryptoIdentity) case downloadMessagesAndListAttachments(ownedIdentity: ObvCryptoIdentity) - case downloadAttachment(attachmentId: AttachmentIdentifier) - case processPendingDeleteFromServer(messageId: MessageIdentifier) + case downloadAttachment(attachmentId: ObvAttachmentIdentifier) + case processPendingDeleteFromServer(messageId: ObvMessageIdentifier) case serverQuery(objectID: NSManagedObjectID) case serverUserData(input: ServerUserDataInput) case queryServerWellKnown(serverURL: URL) + case freeTrialQuery(ownedIdentity: ObvCryptoIdentity) } private var _downloadMessagesAndListAttachments = [ObvCryptoIdentity: Int]() private var _sessionCreation = [ObvCryptoIdentity: Int]() private var _registerPushNotification = [ObvCryptoIdentity: Int]() - private var _downloadAttachment = [AttachmentIdentifier: Int]() - private var _processPendingDeleteFromServer = [MessageIdentifier: Int]() + private var _downloadAttachment = [ObvAttachmentIdentifier: Int]() + private var _processPendingDeleteFromServer = [ObvMessageIdentifier: Int]() private var _serverQuery = [NSManagedObjectID: Int]() private var _serverUserData = [ServerUserDataInput: Int]() private var _queryServerWellKnown = [URL: Int]() + private var _freeTrialQuery = [ObvCryptoIdentity: Int]() private var count: Int = 0 @@ -62,7 +64,11 @@ struct FailedAttemptsCounterManager { case .sessionCreation(ownedIdentity: let identity): _sessionCreation[identity] = (_sessionCreation[identity] ?? 0) + increment localCounter = _sessionCreation[identity] ?? 0 - + + case .freeTrialQuery(ownedIdentity: let identity): + _freeTrialQuery[identity] = (_freeTrialQuery[identity] ?? 0) + increment + localCounter = _freeTrialQuery[identity] ?? 0 + case .registerPushNotification(ownedIdentity: let identity): _registerPushNotification[identity] = (_registerPushNotification[identity] ?? 0) + increment localCounter = _registerPushNotification[identity] ?? 0 @@ -102,6 +108,9 @@ struct FailedAttemptsCounterManager { case .sessionCreation(ownedIdentity: let identity): _sessionCreation.removeValue(forKey: identity) + case .freeTrialQuery(ownedIdentity: let identity): + _freeTrialQuery.removeValue(forKey: identity) + case .registerPushNotification(ownedIdentity: let identity): _registerPushNotification.removeValue(forKey: identity) @@ -126,6 +135,7 @@ struct FailedAttemptsCounterManager { mutating func resetAll() { queue.sync { + _freeTrialQuery.removeAll() _downloadMessagesAndListAttachments.removeAll() _sessionCreation.removeAll() _registerPushNotification.removeAll() diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/FetchRetryManager.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/FetchRetryManager.swift index 375a7415..4d4d8fb0 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/FetchRetryManager.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/FetchRetryManager.swift @@ -20,30 +20,55 @@ import Foundation import Network -struct FetchRetryManager { - - private var timers = [DispatchSourceTimer]() - private let privateQueue = DispatchQueue(label: "FetchRetryManager") +//struct FetchRetryManager { +// +// private var timers = [DispatchSourceTimer]() +// private let privateQueue = DispatchQueue(label: "FetchRetryManager") +// +// /// Execute the specified block in the future. +// /// - Parameters: +// /// - delay: A delay in milliseconds +// /// - block: The block to execute. +// mutating func executeWithDelay(_ delay: Int, block: @escaping () -> Void) { +// let timer = DispatchSource.makeTimerSource(flags: [], queue: privateQueue) +// timer.setEventHandler { +// block() +// } +// timers.append(timer) +// timer.schedule(deadline: .now() + .milliseconds(delay), repeating: .never) +// timer.resume() +// } +// +// +// mutating func executeAllWithNoDelay() { +// while let timer = timers.popLast() { +// timer.activate() +// } +// } +// +//} + - /// Execute the specified block in the future. - /// - Parameters: - /// - delay: A delay in milliseconds - /// - block: The block to execute. - mutating func executeWithDelay(_ delay: Int, block: @escaping () -> Void) { - let timer = DispatchSource.makeTimerSource(flags: [], queue: privateQueue) - timer.setEventHandler { - block() +actor FetchRetryManager { + + private var sleepTasks = [UUID: Task]() + + func waitForDelay(milliseconds: Int) async { + let uuid = UUID() + let task = Task { () -> Void in + do { try await Task.sleep(milliseconds: milliseconds) } catch {} } - timers.append(timer) - timer.schedule(deadline: .now() + .milliseconds(delay), repeating: .never) - timer.resume() + sleepTasks[uuid] = task + await task.value + _ = sleepTasks.removeValue(forKey: uuid) } - mutating func executeAllWithNoDelay() { - while let timer = timers.popLast() { - timer.activate() + func executeAllWithNoDelay() { + while let (_, task) = sleepTasks.popFirst() { + guard !task.isCancelled else { return } + task.cancel() } } - + } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/DeleteMessageAndAttachmentsFromServerDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/DeleteMessageAndAttachmentsFromServerDelegate.swift index 9ad4a37b..b89f0809 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/DeleteMessageAndAttachmentsFromServerDelegate.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/DeleteMessageAndAttachmentsFromServerDelegate.swift @@ -25,6 +25,6 @@ import OlvidUtils protocol DeleteMessageAndAttachmentsFromServerDelegate { - func processPendingDeleteFromServer(messageId: MessageIdentifier, flowId: FlowIdentifier) throws + func processPendingDeleteFromServer(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) throws } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/DownloadAttachmentChunksDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/DownloadAttachmentChunksDelegate.swift index 26a81528..a5dcb331 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/DownloadAttachmentChunksDelegate.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/DownloadAttachmentChunksDelegate.swift @@ -25,12 +25,12 @@ import OlvidUtils protocol DownloadAttachmentChunksDelegate { func backgroundURLSessionIdentifierIsAppropriate(backgroundURLSessionIdentifier: String) -> Bool - func processAllAttachmentsOfMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) + func processAllAttachmentsOfMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) func resumeMissingAttachmentDownloads(flowId: FlowIdentifier) - func resumeAttachmentDownloadIfResumeIsRequested(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - func resumeDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - func pauseDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async -> [AttachmentIdentifier: Float] + func resumeAttachmentDownloadIfResumeIsRequested(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) + func resumeDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, forceResume: Bool, flowId: FlowIdentifier) + func pauseDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) + func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async -> [ObvAttachmentIdentifier: Float] func processCompletionHandler(_: @escaping () -> Void, forHandlingEventsForBackgroundURLSessionWithIdentifier: String, withinFlowId: FlowIdentifier) func cleanExistingOutboxAttachmentSessions(flowId: FlowIdentifier) diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/DownloadPrivateURLsForAttachmentChunksDownloadDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/DownloadPrivateURLsForAttachmentChunksDownloadDelegate.swift index 1ec67774..23034b19 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/DownloadPrivateURLsForAttachmentChunksDownloadDelegate.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/DownloadPrivateURLsForAttachmentChunksDownloadDelegate.swift @@ -25,6 +25,6 @@ import OlvidUtils protocol DownloadPrivateURLsForAttachmentChunksDownloadDelegate { - func downloadPrivateUrlsForAttachmentWithId(_ attachmentId: AttachmentIdentifier, withinFlowId flowId: FlowIdentifier) + func downloadPrivateUrlsForAttachmentWithId(_ attachmentId: ObvAttachmentIdentifier, withinFlowId flowId: FlowIdentifier) } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/FreeTrialQueryDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/FreeTrialQueryDelegate.swift index 80ec929d..ff87a1a7 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/FreeTrialQueryDelegate.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/FreeTrialQueryDelegate.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,10 +22,9 @@ import ObvCrypto import ObvTypes import OlvidUtils - protocol FreeTrialQueryDelegate: AnyObject { - func queryFreeTrial(for identity: ObvCryptoIdentity, retrieveAPIKey: Bool, flowId: FlowIdentifier) - func processFreeTrialQueriesExpectingNewSession() - + func queryFreeTrial(for ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> Bool + func startFreeTrial(for ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> APIKeyElements + } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/MessagesDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/MessagesDelegate.swift index b26f0b34..6a7166bb 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/MessagesDelegate.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/MessagesDelegate.swift @@ -27,8 +27,8 @@ import ObvServerInterface protocol MessagesDelegate { func downloadMessagesAndListAttachments(for: ObvCryptoIdentity, andDeviceUid: UID, flowId: FlowIdentifier) - func processMarkForDeletionForMessageAndAttachmentsAndCreatePendingDeleteFromServer(messageId: MessageIdentifier, flowId: FlowIdentifier) throws + func processMarkForDeletionForMessageAndAttachmentsAndCreatePendingDeleteFromServer(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) throws func saveMessageReceivedOnWebsocket(message: ObvServerDownloadMessagesAndListAttachmentsMethod.MessageAndAttachmentsOnServer, downloadTimestampFromServer: Date, ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) throws - func downloadExtendedMessagePayload(messageId: MessageIdentifier, flowId: FlowIdentifier) + func downloadExtendedMessagePayload(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/NetworkFetchFlowDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/NetworkFetchFlowDelegate.swift index 39184496..896c63cb 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/NetworkFetchFlowDelegate.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/NetworkFetchFlowDelegate.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -30,74 +30,59 @@ protocol NetworkFetchFlowDelegate { // MARK: - Session's Challenge/Response/Token related methods - func resetServerSession(for identity: ObvCryptoIdentity, within obvContext: ObvContext) throws - func serverSessionRequired(for: ObvCryptoIdentity, flowId: FlowIdentifier) throws - func serverSession(of: ObvCryptoIdentity, hasInvalidToken: Data, flowId: FlowIdentifier) throws - func getAndSolveChallengeWasNotNeeded(for: ObvCryptoIdentity, flowId: FlowIdentifier) - func failedToGetOrSolveChallenge(for: ObvCryptoIdentity, flowId: FlowIdentifier) - - func newChallengeResponse(for: ObvCryptoIdentity, flowId: FlowIdentifier) throws - func getTokenWasNotNeeded(for: ObvCryptoIdentity, flowId: FlowIdentifier) - func failedToGetToken(for: ObvCryptoIdentity, flowId: FlowIdentifier) - func newToken(_ token: Data, for: ObvCryptoIdentity, flowId: FlowIdentifier) - func newAPIKeyElementsForCurrentAPIKeyOf(_ ownedIdentity: ObvCryptoIdentity, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?, flowId: FlowIdentifier) - func newAPIKeyElementsForAPIKey(serverURL: URL, apiKey: UUID, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?, flowId: FlowIdentifier) - func verifyReceipt(ownedCryptoIdentities: [ObvCryptoIdentity], receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier) - func apiKeyStatusQueryFailed(ownedIdentity: ObvCryptoIdentity, apiKey: UUID) - - func newFreeTrialAPIKeyForOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) - func noMoreFreeTrialAPIKeyAvailableForOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) - func freeTrialIsStillAvailableForOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) + func refreshAPIPermissions(of ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> APIKeyElements + func getValidServerSessionToken(for ownedCryptoIdentity: ObvCryptoIdentity, currentInvalidToken: Data?, flowId: FlowIdentifier) async throws -> (serverSessionToken: Data, apiKeyElements: APIKeyElements) + + func verifyReceiptAndRefreshAPIPermissions(appStoreReceiptElements: ObvAppStoreReceipt, flowId: FlowIdentifier) async throws -> [ObvCryptoIdentity : ObvAppStoreReceipt.VerificationStatus] + func queryAPIKeyStatus(for ownedCryptoIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) async throws -> APIKeyElements + func registerOwnedAPIKeyOnServerNow(ownedCryptoIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) async throws -> ObvRegisterApiKeyResult // MARK: - Downloading message and listing attachments - func downloadingMessagesAndListingAttachmentFailed(for: ObvCryptoIdentity, andDeviceUid: UID, flowId: FlowIdentifier) + func downloadingMessagesAndListingAttachmentFailed(for: ObvCryptoIdentity, andDeviceUid: UID, flowId: FlowIdentifier) async func downloadingMessagesAndListingAttachmentWasNotNeeded(for: ObvCryptoIdentity, andDeviceUid: UID, flowId: FlowIdentifier) func downloadingMessagesAndListingAttachmentWasPerformed(for: ObvCryptoIdentity, andDeviceUid: UID, flowId: FlowIdentifier) func aMessageReceivedThroughTheWebsocketWasSavedByTheMessageDelegate(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) - func messagePayloadAndFromIdentityWereSet(messageId: MessageIdentifier, attachmentIds: [AttachmentIdentifier], hasEncryptedExtendedMessagePayload: Bool, flowId: FlowIdentifier) + func messagePayloadAndFromIdentityWereSet(messageId: ObvMessageIdentifier, attachmentIds: [ObvAttachmentIdentifier], hasEncryptedExtendedMessagePayload: Bool, flowId: FlowIdentifier) // MARK: - Downloading encrypted extended message payload - func downloadingMessageExtendedPayloadFailed(messageId: MessageIdentifier, flowId: FlowIdentifier) - func downloadingMessageExtendedPayloadWasPerformed(messageId: MessageIdentifier, flowId: FlowIdentifier) + func downloadingMessageExtendedPayloadFailed(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) + func downloadingMessageExtendedPayloadWasPerformed(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) // MARK: - Attachment's related methods - func resumeDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - func pauseDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - func attachmentWasDownloaded(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - func attachmentWasCancelledByServer(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async throws -> [AttachmentIdentifier: Float] + func resumeDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, forceResume: Bool, flowId: FlowIdentifier) + func pauseDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) + func attachmentWasDownloaded(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) + func attachmentWasCancelledByServer(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) + func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async throws -> [ObvAttachmentIdentifier: Float] // MARK: - Deletion related methods - func newPendingDeleteToProcessForMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) - func failedToProcessPendingDeleteFromServer(messageId: MessageIdentifier, flowId: FlowIdentifier) - func messageAndAttachmentsWereDeletedFromServerAndInboxes(messageId: MessageIdentifier, flowId: FlowIdentifier) + func newPendingDeleteToProcessForMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) + func failedToProcessPendingDeleteFromServer(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) async + func messageAndAttachmentsWereDeletedFromServerAndInboxes(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) // MARK: - Push notification's related methods - func serverReportedThatAnotherDeviceIsAlreadyRegistered(forOwnedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) - func serverReportedThatThisDeviceWasSuccessfullyRegistered(forOwnedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) func serverReportedThatThisDeviceIsNotRegistered(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) func fetchNetworkOperationFailedSinceOwnedIdentityIsNotActive(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) // MARK: - Handling Server Queries func post(_: ServerQuery, within: ObvContext) - func newPendingServerQueryToProcessWithObjectId(_: NSManagedObjectID, flowId: FlowIdentifier) - func failedToProcessServerQuery(withObjectId: NSManagedObjectID, flowId: FlowIdentifier) + func newPendingServerQueryToProcessWithObjectId(_: NSManagedObjectID, isWebSocket: Bool, flowId: FlowIdentifier) async + func failedToProcessServerQuery(withObjectId: NSManagedObjectID, flowId: FlowIdentifier) async func successfullProcessOfServerQuery(withObjectId: NSManagedObjectID, flowId: FlowIdentifier) - func pendingServerQueryWasDeletedFromDatabase(objectId: NSManagedObjectID, flowId: FlowIdentifier) // MARK: - Handling user data - func failedToProcessServerUserData(input: ServerUserDataInput, flowId: FlowIdentifier) + func failedToProcessServerUserData(input: ServerUserDataInput, flowId: FlowIdentifier) async // MARK: - Finalizing the initialization and handling events - func resetAllFailedFetchAttempsCountersAndRetryFetching() + func resetAllFailedFetchAttempsCountersAndRetryFetching() async // MARK: - Forwarding urlSessionDidFinishEvents(forBackgroundURLSession session: URLSession) and notifying successfull/failed listing (for performing fetchCompletionHandlers within the engine) @@ -108,7 +93,7 @@ protocol NetworkFetchFlowDelegate { func newWellKnownWasCached(server: URL, newWellKnownJSON: WellKnownJSON, flowId: FlowIdentifier) func cachedWellKnownWasUpdated(server: URL, newWellKnownJSON: WellKnownJSON, flowId: FlowIdentifier) func currentCachedWellKnownCorrespondToThatOnServer(server: URL, wellKnownJSON: WellKnownJSON, flowId: FlowIdentifier) - func failedToQueryServerWellKnown(serverURL: URL, flowId: FlowIdentifier) + func failedToQueryServerWellKnown(serverURL: URL, flowId: FlowIdentifier) async // MARK: - Reacting to web socket changes diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ProcessRegisteredPushNotificationsDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ProcessRegisteredPushNotificationsDelegate.swift deleted file mode 100644 index e646c412..00000000 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ProcessRegisteredPushNotificationsDelegate.swift +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import ObvCrypto -import ObvTypes -import OlvidUtils - -protocol ServerPushNotificationsDelegate { - func registerToPushNotification(_ pushNotification: ObvPushNotificationType, flowId: FlowIdentifier) - func processServerPushNotificationsToRegister(ownedCryptoId: ObvCryptoIdentity, pushNotificationType: ObvPushNotificationType.ByteId, flowId: FlowIdentifier) throws - func deleteAllServerPushNotificationsOnOwnedIdentityDeletion(ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) - func forceRegisteringOfServerPushNotificationsOnBootstrap(flowId: FlowIdentifier) -} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/GetTokenDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerPushNotificationsDelegate.swift similarity index 82% rename from Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/GetTokenDelegate.swift rename to Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerPushNotificationsDelegate.swift index 097a2eea..cd130242 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/GetTokenDelegate.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerPushNotificationsDelegate.swift @@ -22,8 +22,6 @@ import ObvCrypto import ObvTypes import OlvidUtils -protocol GetTokenDelegate { - - func getToken(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) throws - +protocol ServerPushNotificationsDelegate { + func registerPushNotification(_ pushNotification: ObvPushNotificationType, flowId: FlowIdentifier) async throws } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerQueryDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerQueryDelegate.swift index be03e20d..97e2c9cb 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerQueryDelegate.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerQueryDelegate.swift @@ -29,4 +29,6 @@ protocol ServerQueryDelegate { func postAllPendingServerQuery(for ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) func postAllPendingServerQuery(flowId: FlowIdentifier) + func deletePendingServerQueryOfNonExistingOwnedIdentities(flowId: FlowIdentifier) + } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerQueryWebSocketDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerQueryWebSocketDelegate.swift new file mode 100644 index 00000000..212c78b0 --- /dev/null +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerQueryWebSocketDelegate.swift @@ -0,0 +1,30 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import OlvidUtils + + +protocol ServerQueryWebSocketDelegate { + + func handleServerQuery(pendingServerQueryObjectId: NSManagedObjectID, flowId: FlowIdentifier) async throws + + +} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/GetAndSolveChallengeDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerSessionDelegate.swift similarity index 65% rename from Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/GetAndSolveChallengeDelegate.swift rename to Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerSessionDelegate.swift index 500f5d8f..fe175fa0 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/GetAndSolveChallengeDelegate.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/ServerSessionDelegate.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -18,12 +18,14 @@ */ import Foundation -import ObvCrypto import ObvTypes import OlvidUtils +import ObvCrypto + -protocol GetAndSolveChallengeDelegate { - - func getAndSolveChallenge(forIdentity: ObvCryptoIdentity, currentInvalidToken: Data?, discardExistingToken: Bool, flowId: FlowIdentifier) throws +protocol ServerSessionDelegate { + + func getValidServerSessionToken(for ownedCryptoIdentity: ObvCryptoIdentity, currentInvalidToken: Data?, flowId: FlowIdentifier) async throws -> (serverSessionToken: Data, apiKeyElements: APIKeyElements) + func deleteServerSession(of ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/VerifyReceiptDelegate.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/VerifyReceiptDelegate.swift index 164143f8..853c298e 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/VerifyReceiptDelegate.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/VerifyReceiptDelegate.swift @@ -23,6 +23,9 @@ import ObvTypes import OlvidUtils protocol VerifyReceiptDelegate: AnyObject { - func verifyReceipt(ownedCryptoIdentities: [ObvCryptoIdentity], receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier) - func verifyReceiptsExpectingNewSesssion() + + func verifyReceipt(appStoreReceiptElements: ObvAppStoreReceipt, flowId: FlowIdentifier) async throws -> [ObvCryptoIdentity : ObvAppStoreReceipt.VerificationStatus] + + //func verifyReceipt(ownedCryptoIdentities: [ObvCryptoIdentity], receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier) + //func verifyReceiptsExpectingNewSesssion() } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/ObvNetworkFetchDelegateManager.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/ObvNetworkFetchDelegateManager.swift index bf209145..3ecba187 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/ObvNetworkFetchDelegateManager.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/ObvNetworkFetchDelegateManager.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,29 +29,34 @@ final class ObvNetworkFetchDelegateManager { static let defaultLogSubsystem = "io.olvid.network.fetch" private(set) var logSubsystem = ObvNetworkFetchDelegateManager.defaultLogSubsystem - func prependLogSubsystem(with prefix: String) { - logSubsystem = "\(prefix).\(logSubsystem)" - } - let inbox: URL let internalNotificationCenter = NotificationCenter() + // MARK: - Queues allowing to execute Core Data operations + + let queueSharedAmongCoordinators = OperationQueue.createSerialQueue(name: "Queue shared among coordinators of ObvNetworkFetchManagerImplementation", qualityOfService: .default) + let queueForComposedOperations = { + let queue = OperationQueue() + queue.name = "Queue for composed operations" + queue.qualityOfService = .default + return queue + }() + // MARK: Instance variables (internal delegates) let networkFetchFlowDelegate: NetworkFetchFlowDelegate - let getAndSolveChallengeDelegate: GetAndSolveChallengeDelegate - let getTokenDelegate: GetTokenDelegate + let serverSessionDelegate: ServerSessionDelegate let messagesDelegate: MessagesDelegate let downloadAttachmentChunksDelegate: DownloadAttachmentChunksDelegate let deleteMessageAndAttachmentsFromServerDelegate: DeleteMessageAndAttachmentsFromServerDelegate let serverPushNotificationsDelegate: ServerPushNotificationsDelegate let webSocketDelegate: WebSocketDelegate let getTurnCredentialsDelegate: GetTurnCredentialsDelegate? - let queryApiKeyStatusDelegate: QueryApiKeyStatusDelegate? let freeTrialQueryDelegate: FreeTrialQueryDelegate? let verifyReceiptDelegate: VerifyReceiptDelegate? let serverQueryDelegate: ServerQueryDelegate + let serverQueryWebSocketDelegate: ServerQueryWebSocketDelegate let serverUserDataDelegate: ServerUserDataDelegate let wellKnownCacheDelegate: WellKnownCacheDelegate @@ -67,26 +72,27 @@ final class ObvNetworkFetchDelegateManager { // MARK: Initialiazer - init(inbox: URL, sharedContainerIdentifier: String, supportBackgroundFetch: Bool, networkFetchFlowDelegate: NetworkFetchFlowDelegate, getAndSolveChallengeDelegate: GetAndSolveChallengeDelegate, getTokenDelegate: GetTokenDelegate, downloadMessagesAndListAttachmentsDelegate: MessagesDelegate, downloadAttachmentChunksDelegate: DownloadAttachmentChunksDelegate, deleteMessageAndAttachmentsFromServerDelegate: DeleteMessageAndAttachmentsFromServerDelegate, serverPushNotificationsDelegate: ServerPushNotificationsDelegate, webSocketDelegate: WebSocketDelegate, getTurnCredentialsDelegate: GetTurnCredentialsDelegate?, queryApiKeyStatusDelegate: QueryApiKeyStatusDelegate, freeTrialQueryDelegate: FreeTrialQueryDelegate, verifyReceiptDelegate: VerifyReceiptDelegate, serverQueryDelegate: ServerQueryDelegate, serverUserDataDelegate: ServerUserDataDelegate, wellKnownCacheDelegate: WellKnownCacheDelegate) { + init(inbox: URL, sharedContainerIdentifier: String, supportBackgroundFetch: Bool, logPrefix: String, networkFetchFlowDelegate: NetworkFetchFlowDelegate, serverSessionDelegate: ServerSessionDelegate, downloadMessagesAndListAttachmentsDelegate: MessagesDelegate, downloadAttachmentChunksDelegate: DownloadAttachmentChunksDelegate, deleteMessageAndAttachmentsFromServerDelegate: DeleteMessageAndAttachmentsFromServerDelegate, serverPushNotificationsDelegate: ServerPushNotificationsDelegate, webSocketDelegate: WebSocketDelegate, getTurnCredentialsDelegate: GetTurnCredentialsDelegate?, freeTrialQueryDelegate: FreeTrialQueryDelegate, verifyReceiptDelegate: VerifyReceiptDelegate, serverQueryDelegate: ServerQueryDelegate, serverQueryWebSocketDelegate: ServerQueryWebSocketDelegate, serverUserDataDelegate: ServerUserDataDelegate, wellKnownCacheDelegate: WellKnownCacheDelegate) { + self.logSubsystem = "\(logPrefix).\(logSubsystem)" self.inbox = inbox self.sharedContainerIdentifier = sharedContainerIdentifier self.supportBackgroundFetch = supportBackgroundFetch self.networkFetchFlowDelegate = networkFetchFlowDelegate - self.getAndSolveChallengeDelegate = getAndSolveChallengeDelegate - self.getTokenDelegate = getTokenDelegate + self.serverSessionDelegate = serverSessionDelegate self.messagesDelegate = downloadMessagesAndListAttachmentsDelegate self.downloadAttachmentChunksDelegate = downloadAttachmentChunksDelegate self.deleteMessageAndAttachmentsFromServerDelegate = deleteMessageAndAttachmentsFromServerDelegate self.serverPushNotificationsDelegate = serverPushNotificationsDelegate self.webSocketDelegate = webSocketDelegate self.getTurnCredentialsDelegate = getTurnCredentialsDelegate - self.queryApiKeyStatusDelegate = queryApiKeyStatusDelegate - self.freeTrialQueryDelegate = freeTrialQueryDelegate + //self.queryApiKeyStatusDelegate = queryApiKeyStatusDelegate self.verifyReceiptDelegate = verifyReceiptDelegate self.serverQueryDelegate = serverQueryDelegate + self.serverQueryWebSocketDelegate = serverQueryWebSocketDelegate self.serverUserDataDelegate = serverUserDataDelegate self.wellKnownCacheDelegate = wellKnownCacheDelegate + self.freeTrialQueryDelegate = freeTrialQueryDelegate } } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/ObvNetworkFetchManagerImplementation.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/ObvNetworkFetchManagerImplementation.swift index 4134a47e..94944c8a 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/ObvNetworkFetchManagerImplementation.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/ObvNetworkFetchManagerImplementation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,6 +25,7 @@ import ObvMetaManager import ObvCrypto import ObvTypes import ObvEncoder +import ObvServerInterface public final class ObvNetworkFetchManagerImplementation: ObvNetworkFetchDelegate { @@ -34,12 +35,13 @@ public final class ObvNetworkFetchManagerImplementation: ObvNetworkFetchDelegate private func makeError(message: String) -> Error { ObvNetworkFetchManagerImplementation.makeError(message: message) } public func prependLogSubsystem(with prefix: String) { - delegateManager.prependLogSubsystem(with: prefix) + // 2023-06-30 The log prefix was set in the init of this class, which is much more convenient than setting it afterwards } // MARK: Instance variables - private var log: OSLog + private static var logCategory = "ObvNetworkFetchManagerImplementation" + private static var log = OSLog(subsystem: ObvNetworkFetchDelegateManager.defaultLogSubsystem, category: logCategory) /// Strong reference to the delegate manager, which keeps strong references to all external and internal delegate requirements. let delegateManager: ObvNetworkFetchDelegateManager @@ -48,70 +50,61 @@ public final class ObvNetworkFetchManagerImplementation: ObvNetworkFetchDelegate // MARK: Initialiser - public init(inbox: URL, downloadedUserData: URL, prng: PRNGService, sharedContainerIdentifier: String, supportBackgroundDownloadTasks: Bool, remoteNotificationByteIdentifierForServer: Data) { + public init(inbox: URL, downloadedUserData: URL, prng: PRNGService, sharedContainerIdentifier: String, supportBackgroundDownloadTasks: Bool, remoteNotificationByteIdentifierForServer: Data, logPrefix: String) { + let logSubsystem = "\(logPrefix).\(ObvNetworkFetchDelegateManager.defaultLogSubsystem)" + Self.log = OSLog(subsystem: logSubsystem, category: Self.logCategory) + self.bootstrapWorker = BootstrapWorker(inbox: inbox) - - let queueSharedAmongCoordinators = OperationQueue.createSerialQueue(name: "Queue shared among coordinators of ObvNetworkFetchManagerImplementation", qualityOfService: .userInteractive) - let queueForComposedOperations = { - let queue = OperationQueue() - queue.name = "Queue for composed operations" - queue.qualityOfService = .userInteractive - return queue - }() - - let networkFetchFlowCoordinator = NetworkFetchFlowCoordinator(prng: prng) - let getAndSolveChallengeCoordinator = GetAndSolveChallengeCoordinator() - let getTokenCoordinator = GetTokenCoordinator() + + let networkFetchFlowCoordinator = NetworkFetchFlowCoordinator(prng: prng, logPrefix: logPrefix) + let serverSessionCoordinator = ServerSessionCoordinator(prng: prng, logPrefix: logPrefix) let downloadMessagesAndListAttachmentsCoordinator = MessagesCoordinator() - let downloadAttachmentChunksCoordinator = DownloadAttachmentChunksCoordinator() + let downloadAttachmentChunksCoordinator = DownloadAttachmentChunksCoordinator(logPrefix: logPrefix) let deleteMessageAndAttachmentsFromServerCoordinator = DeleteMessageAndAttachmentsFromServerCoordinator() let serverPushNotificationsCoordinator = ServerPushNotificationsCoordinator( - remoteNotificationByteIdentifierForServer: remoteNotificationByteIdentifierForServer, - coordinatorsQueue: queueSharedAmongCoordinators, - queueForComposedOperations: queueForComposedOperations) + remoteNotificationByteIdentifierForServer: remoteNotificationByteIdentifierForServer, prng: prng, logPrefix: logPrefix) let getTurnCredentialsCoordinator = GetTurnCredentialsCoordinator() - let queryApiKeyStatusCoordinator = QueryApiKeyStatusCoordinator() let freeTrialQueryCoordinator = FreeTrialQueryCoordinator() - let verifyReceiptCoordinator = VerifyReceiptCoordinator() + let verifyReceiptCoordinator = VerifyReceiptCoordinator(logPrefix: logPrefix) let serverQueryCoordinator = ServerQueryCoordinator(prng: prng, downloadedUserData: downloadedUserData) + let serverQueryWebSocketCoordinator = ServerQueryWebSocketCoordinator(logPrefix: logPrefix) let serverUserDataCoordinator = ServerUserDataCoordinator(prng: prng, downloadedUserData: downloadedUserData) let wellKnownCoordinator = WellKnownCoordinator() let webSocketCoordinator = WebSocketCoordinator() - delegateManager = ObvNetworkFetchDelegateManager(inbox: inbox, - sharedContainerIdentifier: sharedContainerIdentifier, - supportBackgroundFetch: supportBackgroundDownloadTasks, - networkFetchFlowDelegate: networkFetchFlowCoordinator, - getAndSolveChallengeDelegate: getAndSolveChallengeCoordinator, - getTokenDelegate: getTokenCoordinator, - downloadMessagesAndListAttachmentsDelegate: downloadMessagesAndListAttachmentsCoordinator, - downloadAttachmentChunksDelegate: downloadAttachmentChunksCoordinator, - deleteMessageAndAttachmentsFromServerDelegate: deleteMessageAndAttachmentsFromServerCoordinator, - serverPushNotificationsDelegate: serverPushNotificationsCoordinator, - webSocketDelegate: webSocketCoordinator, - getTurnCredentialsDelegate: getTurnCredentialsCoordinator, - queryApiKeyStatusDelegate: queryApiKeyStatusCoordinator, - freeTrialQueryDelegate: freeTrialQueryCoordinator, - verifyReceiptDelegate: verifyReceiptCoordinator, - serverQueryDelegate: serverQueryCoordinator, - serverUserDataDelegate: serverUserDataCoordinator, - wellKnownCacheDelegate: wellKnownCoordinator) - - self.log = OSLog(subsystem: delegateManager.logSubsystem, category: "ObvNetworkFetchManagerImplementation") - + delegateManager = ObvNetworkFetchDelegateManager( + inbox: inbox, + sharedContainerIdentifier: sharedContainerIdentifier, + supportBackgroundFetch: supportBackgroundDownloadTasks, + logPrefix: logPrefix, + networkFetchFlowDelegate: networkFetchFlowCoordinator, + serverSessionDelegate: serverSessionCoordinator, + downloadMessagesAndListAttachmentsDelegate: downloadMessagesAndListAttachmentsCoordinator, + downloadAttachmentChunksDelegate: downloadAttachmentChunksCoordinator, + deleteMessageAndAttachmentsFromServerDelegate: deleteMessageAndAttachmentsFromServerCoordinator, + serverPushNotificationsDelegate: serverPushNotificationsCoordinator, + webSocketDelegate: webSocketCoordinator, + getTurnCredentialsDelegate: getTurnCredentialsCoordinator, + freeTrialQueryDelegate: freeTrialQueryCoordinator, + verifyReceiptDelegate: verifyReceiptCoordinator, + serverQueryDelegate: serverQueryCoordinator, + serverQueryWebSocketDelegate: serverQueryWebSocketCoordinator, + serverUserDataDelegate: serverUserDataCoordinator, + wellKnownCacheDelegate: wellKnownCoordinator) + networkFetchFlowCoordinator.delegateManager = delegateManager // Weak reference - getAndSolveChallengeCoordinator.delegateManager = delegateManager // Weak reference - getTokenCoordinator.delegateManager = delegateManager + Task { await serverSessionCoordinator.setDelegateManager(delegateManager) } + serverQueryCoordinator.delegateManager = delegateManager downloadMessagesAndListAttachmentsCoordinator.delegateManager = delegateManager downloadAttachmentChunksCoordinator.delegateManager = delegateManager deleteMessageAndAttachmentsFromServerCoordinator.delegateManager = delegateManager - serverPushNotificationsCoordinator.delegateManager = delegateManager + Task { await serverPushNotificationsCoordinator.setDelegateManager(delegateManager) } getTurnCredentialsCoordinator.delegateManager = delegateManager - queryApiKeyStatusCoordinator.delegateManager = delegateManager - freeTrialQueryCoordinator.delegateManager = delegateManager - verifyReceiptCoordinator.delegateManager = delegateManager + Task { await freeTrialQueryCoordinator.setDelegateManager(delegateManager) } + Task { await verifyReceiptCoordinator.setDelegateManager(delegateManager) } serverQueryCoordinator.delegateManager = delegateManager + Task { await serverQueryWebSocketCoordinator.setDelegateManager(delegateManager) } serverUserDataCoordinator.delegateManager = delegateManager wellKnownCoordinator.delegateManager = delegateManager bootstrapWorker.delegateManager = delegateManager @@ -166,7 +159,6 @@ extension ObvNetworkFetchManagerImplementation { public func finalizeInitialization(flowId: FlowIdentifier, runningLog: RunningLogError) throws { - self.log = OSLog(subsystem: delegateManager.logSubsystem, category: "ObvNetworkFetchManagerImplementation") bootstrapWorker.finalizeInitialization(flowId: flowId) if let serverQueryCoordinator = delegateManager.serverQueryDelegate as? ServerQueryCoordinator { serverQueryCoordinator.finalizeInitialization() @@ -183,7 +175,7 @@ extension ObvNetworkFetchManagerImplementation { public func applicationAppearedOnScreen(forTheFirstTime: Bool, flowId: FlowIdentifier) async { if forTheFirstTime { - delegateManager.networkFetchFlowDelegate.resetAllFailedFetchAttempsCountersAndRetryFetching() + await delegateManager.networkFetchFlowDelegate.resetAllFailedFetchAttempsCountersAndRetryFetching() } await bootstrapWorker.applicationAppearedOnScreen(forTheFirstTime: forTheFirstTime, flowId: flowId) } @@ -202,10 +194,14 @@ extension ObvNetworkFetchManagerImplementation { delegateManager.networkFetchFlowDelegate.post(serverQuery, within: context) } - public func getTurnCredentials(ownedIdenty: ObvCryptoIdentity, callUuid: UUID, username1: String, username2: String, flowId: FlowIdentifier) { - delegateManager.getTurnCredentialsDelegate?.getTurnCredentials(ownedIdenty: ownedIdenty, callUuid: callUuid, username1: username1, username2: username2, flowId: flowId) + public func getTurnCredentials(ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> ObvTurnCredentials { + guard let getTurnCredentialsDelegate = delegateManager.getTurnCredentialsDelegate else { + assertionFailure() + throw Self.makeError(message: "The turn credentials delegate is not set") + } + return try await getTurnCredentialsDelegate.getTurnCredentials(ownedCryptoId: ownedCryptoId, flowId: flowId) } - + public func getWebSocketState(ownedIdentity: ObvCryptoIdentity) async throws -> (URLSessionTask.State,TimeInterval?) { return try await delegateManager.webSocketDelegate.getWebSocketState(ownedIdentity: ownedIdentity) } @@ -232,23 +228,23 @@ extension ObvNetworkFetchManagerImplementation { assert(!Thread.isMainThread) - os_log("Call to downloadMessages for owned identity %@ with identifier for notifications %{public}@", log: log, type: .debug, ownedIdentity.debugDescription, flowId.debugDescription) + os_log("Call to downloadMessages for owned identity %@ with identifier for notifications %{public}@", log: Self.log, type: .debug, ownedIdentity.debugDescription, flowId.debugDescription) delegateManager.messagesDelegate.downloadMessagesAndListAttachments(for: ownedIdentity, andDeviceUid: deviceUid, flowId: flowId) } - public func getDecryptedMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) -> ObvNetworkReceivedMessageDecrypted? { + public func getDecryptedMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) -> ObvNetworkReceivedMessageDecrypted? { guard let contextCreator = delegateManager.contextCreator else { - os_log("The Context Creator is not set", log: log, type: .fault) + os_log("The Context Creator is not set", log: Self.log, type: .fault) return nil } var message: ObvNetworkReceivedMessageDecrypted? contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in guard let inboxMessage = try? InboxMessage.get(messageId: messageId, within: obvContext) else { - os_log("Message does not exist in InboxMessage", log: log, type: .error) + os_log("Message does not exist in InboxMessage", log: Self.log, type: .error) return } @@ -268,10 +264,10 @@ extension ObvNetworkFetchManagerImplementation { } - public func allAttachmentsCanBeDownloadedForMessage(withId messageId: MessageIdentifier, within obvContext: ObvContext) throws -> Bool { + public func allAttachmentsCanBeDownloadedForMessage(withId messageId: ObvMessageIdentifier, within obvContext: ObvContext) throws -> Bool { guard let inboxMessage = try InboxMessage.get(messageId: messageId, within: obvContext) else { - os_log("Message does not exist in InboxMessage", log: log, type: .error) + os_log("Message does not exist in InboxMessage", log: Self.log, type: .error) throw makeError(message: "Message does not exist in InboxMessage") } @@ -281,10 +277,10 @@ extension ObvNetworkFetchManagerImplementation { } - public func attachment(withId attachmentId: AttachmentIdentifier, canBeDownloadedwithin obvContext: ObvContext) throws -> Bool { + public func attachment(withId attachmentId: ObvAttachmentIdentifier, canBeDownloadedwithin obvContext: ObvContext) throws -> Bool { guard let inboxAttachment = try InboxAttachment.get(attachmentId: attachmentId, within: obvContext) else { - os_log("Attachment does not exist in InboxAttachment (1)", log: log, type: .error) + os_log("Attachment does not exist in InboxAttachment (1)", log: Self.log, type: .error) throw makeError(message: "Attachment does not exist in InboxAttachment (1)") } @@ -292,10 +288,10 @@ extension ObvNetworkFetchManagerImplementation { } - public func allAttachmentsHaveBeenDownloadedForMessage(withId messageId: MessageIdentifier, within obvContext: ObvContext) throws -> Bool { + public func allAttachmentsHaveBeenDownloadedForMessage(withId messageId: ObvMessageIdentifier, within obvContext: ObvContext) throws -> Bool { guard let inboxMessage = try InboxMessage.get(messageId: messageId, within: obvContext) else { - os_log("Message does not exist in InboxMessage", log: log, type: .error) + os_log("Message does not exist in InboxMessage", log: Self.log, type: .error) throw makeError(message: "Message does not exist in InboxMessage") } @@ -307,20 +303,20 @@ extension ObvNetworkFetchManagerImplementation { // MARK: Other methods for attachments - public func setRemoteCryptoIdentity(_ remoteCryptoIdentity: ObvCryptoIdentity, messagePayload: Data, extendedMessagePayloadKey: AuthenticatedEncryptionKey?, andAttachmentsInfos attachmentsInfos: [ObvNetworkFetchAttachmentInfos], forApplicationMessageWithmessageId messageId: MessageIdentifier, within obvContext: ObvContext) throws { + public func setRemoteCryptoIdentity(_ remoteCryptoIdentity: ObvCryptoIdentity, messagePayload: Data, extendedMessagePayloadKey: AuthenticatedEncryptionKey?, andAttachmentsInfos attachmentsInfos: [ObvNetworkFetchAttachmentInfos], forApplicationMessageWithmessageId messageId: ObvMessageIdentifier, within obvContext: ObvContext) throws { guard let inboxMessage = try InboxMessage.get(messageId: messageId, within: obvContext) else { - os_log("Message does not exist in InboxMessage", log: log, type: .error) + os_log("Message does not exist in InboxMessage", log: Self.log, type: .error) assertionFailure() throw makeError(message: "Message does not exist in InboxMessage") } try inboxMessage.setFromCryptoIdentity(remoteCryptoIdentity, andMessagePayload: messagePayload, extendedMessagePayloadKey: extendedMessagePayloadKey, flowId: obvContext.flowId, delegateManager: delegateManager) guard inboxMessage.attachments.count == attachmentsInfos.count else { - os_log("Message does not have an appropriate number of attachments", log: log, type: .error) + os_log("Message does not have an appropriate number of attachments", log: Self.log, type: .error) assertionFailure() throw makeError(message: "Message does not have an appropriate number of attachments") } guard inboxMessage.attachments.count == attachmentsInfos.count else { - os_log("Invalid attachment count", log: log, type: .error) + os_log("Invalid attachment count", log: Self.log, type: .error) assertionFailure() throw makeError(message: "Invalid attachment count") } @@ -349,25 +345,25 @@ extension ObvNetworkFetchManagerImplementation { } - public func getAttachment(withId attachmentId: AttachmentIdentifier, within obvContext: ObvContext) -> ObvNetworkFetchReceivedAttachment? { + public func getAttachment(withId attachmentId: ObvAttachmentIdentifier, within obvContext: ObvContext) -> ObvNetworkFetchReceivedAttachment? { var receivedAttachment: ObvNetworkFetchReceivedAttachment? = nil obvContext.performAndWait { guard let inboxAttachment = try? InboxAttachment.get(attachmentId: attachmentId, within: obvContext) else { - os_log("Attachment does not exist in InboxAttachment (3)", log: log, type: .error) + os_log("Attachment does not exist in InboxAttachment (3)", log: Self.log, type: .error) return } guard let metadata = inboxAttachment.metadata, let fromCryptoIdentity = inboxAttachment.fromCryptoIdentity else { - os_log("Attachment is not ready yet", log: log, type: .error) + os_log("Attachment is not ready yet", log: Self.log, type: .error) return } guard let inboxAttachmentUrl = inboxAttachment.getURL(withinInbox: delegateManager.inbox) else { - os_log("Cannot determine the inbox attachment URL", log: log, type: .fault) + os_log("Cannot determine the inbox attachment URL", log: Self.log, type: .fault) return } guard let message = inboxAttachment.message else { - os_log("Could not find message associated to attachment, which is unexpected at this point", log: log, type: .fault) + os_log("Could not find message associated to attachment, which is unexpected at this point", log: Self.log, type: .fault) assertionFailure() return } @@ -376,7 +372,7 @@ extension ObvNetworkFetchManagerImplementation { totalUnitCount = 0 } else { guard let _totalUnitCount = inboxAttachment.plaintextLength else { - os_log("Could not find cleartext attachment size. The file might not exist yet (which is the case if the decryption key has not been set).", log: log, type: .fault) + os_log("Could not find cleartext attachment size. The file might not exist yet (which is the case if the decryption key has not been set).", log: Self.log, type: .fault) assertionFailure() return } @@ -425,18 +421,49 @@ extension ObvNetworkFetchManagerImplementation { try PendingServerQuery.deleteAllServerQuery(for: ownedCryptoIdentity, delegateManager: delegateManager, within: obvContext) - // Delete all registered push notifications relating to the owned identity - - try obvContext.addContextDidSaveCompletionHandler { [weak self] _ in - self?.delegateManager.serverPushNotificationsDelegate.deleteAllServerPushNotificationsOnOwnedIdentityDeletion(ownedCryptoId: ownedCryptoIdentity, flowId: obvContext.flowId) - } + // We do not delete the server sessions now, as the owned identity deletion protocol will need them to propagate information. + // Those session are deleted in finalizeOwnedIdentityDeletion(ownedCryptoIdentity:within:) + + } + + + public func finalizeOwnedIdentityDeletion(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws { // Delete all server sessions of owned identity - try ServerSession.deleteAllSessionsOfIdentity(ownedCryptoIdentity, within: obvContext) - + try await delegateManager.serverSessionDelegate.deleteServerSession(of: ownedCryptoIdentity, flowId: flowId) + } + + public func performOwnedDeviceDiscoveryNow(ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> EncryptedData { + + let method = ObvServerOwnedDeviceDiscoveryMethod(ownedIdentity: ownedCryptoId, flowId: flowId) + let (data, response) = try await URLSession.shared.data(for: method.getURLRequest()) + + guard let httpResponse = response as? HTTPURLResponse, + httpResponse.statusCode == 200 else { + throw Self.makeError(message: "Invalid server response") + } + + let result = ObvServerOwnedDeviceDiscoveryMethod.parseObvServerResponse(responseData: data, using: Self.log) + + switch result { + case .success(let status): + switch status { + case .ok(encryptedOwnedDeviceDiscoveryResult: let encryptedOwnedDeviceDiscoveryResult): + return encryptedOwnedDeviceDiscoveryResult + case .generalError: + let error = makeError(message: "ObvServerOwnedDeviceDiscoveryMethod returned a general error") + throw error + } + case .failure(let error): + assertionFailure() + throw error + } + + } + } @@ -448,11 +475,11 @@ extension ObvNetworkFetchManagerImplementation { /// attachments for deletion. This does not actually delete the message/attachments. Instead, this will triger a notification /// that will be catched internally by the appropriate coordinator that will atomically delete the message/attachments and /// create a PendingDeleteFromServer - public func deleteMessageAndAttachments(messageId: MessageIdentifier, within obvContext: ObvContext) { + public func deleteMessageAndAttachments(messageId: ObvMessageIdentifier, within obvContext: ObvContext) { let flowId = obvContext.flowId let delegateManager = self.delegateManager guard let message = try? InboxMessage.get(messageId: messageId, within: obvContext) else { - os_log("Could not find message, no need to delete it", log: log, type: .info) + os_log("Could not find message, no need to delete it", log: Self.log, type: .info) return } message.markForDeletion() @@ -472,7 +499,7 @@ extension ObvNetworkFetchManagerImplementation { /// In case the message is a protocol message (typically, new inputs for a protocol instance), then the channel manager has stored the result in one of its own databases, and calling this method ends up deleting the message from the inbox. /// /// In case the message is an application message, then it certainly has associated attachments. In that case, the message in the inbox will only be marked for deletion but not deleted yet. The application is expected to do something with the attachments (such as storing them in its own inboxes) before marking each of the them for deletion (using the `deleteAttachment` below). We this is done, the message and its attachments will indeed be deleted from their inboxes. - public func markMessageForDeletion(messageId: MessageIdentifier, within obvContext: ObvContext) { + public func markMessageForDeletion(messageId: ObvMessageIdentifier, within obvContext: ObvContext) { let flowId = obvContext.flowId let delegateManager = self.delegateManager guard let message = try? InboxMessage.get(messageId: messageId, within: obvContext) else { return } @@ -490,7 +517,7 @@ extension ObvNetworkFetchManagerImplementation { /// /// If the message and the other attachments are already marked for deletion, this will internally trigger /// the required steps to actually delete the message and the attachments from the inboxes (and from the inbox folder). - public func markAttachmentForDeletion(attachmentId: AttachmentIdentifier, within obvContext: ObvContext) { + public func markAttachmentForDeletion(attachmentId: ObvAttachmentIdentifier, within obvContext: ObvContext) { let flowId = obvContext.flowId let delegateManager = self.delegateManager guard let attachment = try? InboxAttachment.get(attachmentId: attachmentId, within: obvContext) else { return } @@ -505,16 +532,16 @@ extension ObvNetworkFetchManagerImplementation { } - public func resumeDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { - self.delegateManager.networkFetchFlowDelegate.resumeDownloadOfAttachment(attachmentId: attachmentId, flowId: flowId) + public func resumeDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, forceResume: Bool, flowId: FlowIdentifier) { + self.delegateManager.networkFetchFlowDelegate.resumeDownloadOfAttachment(attachmentId: attachmentId, forceResume: forceResume, flowId: flowId) } - public func pauseDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + public func pauseDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { self.delegateManager.networkFetchFlowDelegate.pauseDownloadOfAttachment(attachmentId: attachmentId, flowId: flowId) } - public func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async throws -> [AttachmentIdentifier: Float] { + public func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async throws -> [ObvAttachmentIdentifier: Float] { return try await self.delegateManager.networkFetchFlowDelegate.requestDownloadAttachmentProgressesUpdatedSince(date: date) } } @@ -524,20 +551,65 @@ extension ObvNetworkFetchManagerImplementation { extension ObvNetworkFetchManagerImplementation { - public func registerPushNotification(_ pushNotification: ObvPushNotificationType, flowId: FlowIdentifier) { - delegateManager.serverPushNotificationsDelegate.registerToPushNotification(pushNotification, flowId: flowId) - } - - - public func getServerPushNotification(ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvPushNotificationType? { + public func registerPushNotification(_ pushNotification: ObvPushNotificationType, flowId: FlowIdentifier) async throws { + + do { + try await delegateManager.serverPushNotificationsDelegate.registerPushNotification(pushNotification, flowId: flowId) + } catch { + if let error = error as? ServerPushNotificationsCoordinator.ObvError { + switch error { + case .anotherDeviceIsAlreadyRegistered: + throw ObvNetworkFetchError.RegisterPushNotificationError.anotherDeviceIsAlreadyRegistered + case .couldNotParseReturnStatusFromServer: + throw ObvNetworkFetchError.RegisterPushNotificationError.couldNotParseReturnStatusFromServer + case .deviceToReplaceIsNotRegistered: + throw ObvNetworkFetchError.RegisterPushNotificationError.deviceToReplaceIsNotRegistered + case .invalidServerResponse: + throw ObvNetworkFetchError.RegisterPushNotificationError.invalidServerResponse + case .theDelegateManagerIsNotSet: + throw ObvNetworkFetchError.RegisterPushNotificationError.theDelegateManagerIsNotSet + } + } else { + assertionFailure("Unrecognized error that should be casted to an ObvNetworkFetchError or dealt with earlier") + throw error + } + } + + // If we reach this point, we succefully registered to push notifications. + // In that case, we can result attachment downloads and list messages + + Task.detached { [weak self] in + + guard let _self = self else { return } + + let delegateManager = _self.delegateManager + guard let contextCreator = delegateManager.contextCreator else { assertionFailure(); return } + guard let identityDelegate = delegateManager.identityDelegate else { assertionFailure(); return } - if let serverPushNotification = try ServerPushNotification.getServerPushNotificationOfType(.remote, ownedCryptoId: ownedCryptoId, within: obvContext.context) { - return try serverPushNotification.pushNotification - } else if let serverPushNotification = try ServerPushNotification.getServerPushNotificationOfType(.registerDeviceUid, ownedCryptoId: ownedCryptoId, within: obvContext.context) { - return try serverPushNotification.pushNotification - } else { - return nil + contextCreator.performBackgroundTask(flowId: flowId) { (obvContext) in + + // We relaunch incomplete attachments + delegateManager.downloadAttachmentChunksDelegate.resumeMissingAttachmentDownloads(flowId: flowId) + + guard let identities = try? identityDelegate.getOwnedIdentities(within: obvContext) else { + os_log("Could not get owned identities", log: Self.log, type: .fault) + assertionFailure() + return + } + + // We download new messages and list their attachments + for identity in identities { + do { + let deviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(identity, within: obvContext) + delegateManager.messagesDelegate.downloadMessagesAndListAttachments(for: identity, andDeviceUid: deviceUid, flowId: flowId) + } catch { + os_log("Could not call downloadMessagesAndListAttachments", log: Self.log, type: .fault) + } + } + + } } + } @@ -548,20 +620,32 @@ extension ObvNetworkFetchManagerImplementation { extension ObvNetworkFetchManagerImplementation { - public func queryAPIKeyStatus(for identity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) { - delegateManager.queryApiKeyStatusDelegate?.queryAPIKeyStatus(for: identity, apiKey: apiKey, flowId: flowId) + public func queryAPIKeyStatus(for ownedCryptoIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) async throws -> APIKeyElements { + return try await delegateManager.networkFetchFlowDelegate.queryAPIKeyStatus(for: ownedCryptoIdentity, apiKey: apiKey, flowId: flowId) } - - public func resetServerSession(for identity: ObvCryptoIdentity, within obvContext: ObvContext) throws { - try delegateManager.networkFetchFlowDelegate.resetServerSession(for: identity, within: obvContext) + + public func refreshAPIPermissions(of ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> APIKeyElements { + return try await delegateManager.networkFetchFlowDelegate.refreshAPIPermissions(of: ownedCryptoIdentity, flowId: flowId) } - public func queryFreeTrial(for identity: ObvCryptoIdentity, retrieveAPIKey: Bool, flowId: FlowIdentifier) { - delegateManager.freeTrialQueryDelegate?.queryFreeTrial(for: identity, retrieveAPIKey: retrieveAPIKey, flowId: flowId) + public func queryFreeTrial(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> Bool { + guard let freeTrialQueryDelegate = delegateManager.freeTrialQueryDelegate else { assertionFailure(); throw Self.makeError(message: "freeTrialQueryDelegate is not set") } + let freeTrialAvailable = try await freeTrialQueryDelegate.queryFreeTrial(for: identity, flowId: flowId) + return freeTrialAvailable + } + + public func startFreeTrial(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> APIKeyElements { + guard let freeTrialQueryDelegate = delegateManager.freeTrialQueryDelegate else { assertionFailure(); throw Self.makeError(message: "freeTrialQueryDelegate is not set") } + let newAPIKeyElements = try await freeTrialQueryDelegate.startFreeTrial(for: identity, flowId: flowId) + return newAPIKeyElements + } + + public func registerOwnedAPIKeyOnServerNow(ownedCryptoIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) async throws -> ObvRegisterApiKeyResult { + return try await delegateManager.networkFetchFlowDelegate.registerOwnedAPIKeyOnServerNow(ownedCryptoIdentity: ownedCryptoIdentity, apiKey: apiKey, flowId: flowId) } - public func verifyReceipt(ownedCryptoIdentities: [ObvCryptoIdentity], receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier) { - delegateManager.networkFetchFlowDelegate.verifyReceipt(ownedCryptoIdentities: ownedCryptoIdentities, receiptData: receiptData, transactionIdentifier: transactionIdentifier, flowId: flowId) + public func verifyReceiptAndRefreshAPIPermissions(appStoreReceiptElements: ObvAppStoreReceipt, flowId: FlowIdentifier) async throws -> [ObvCryptoIdentity : ObvAppStoreReceipt.VerificationStatus] { + return try await delegateManager.networkFetchFlowDelegate.verifyReceiptAndRefreshAPIPermissions(appStoreReceiptElements: appStoreReceiptElements, flowId: flowId) } public func queryServerWellKnown(serverURL: URL, flowId: FlowIdentifier) { diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/ObvNetworkFetchManagerImplementationDummy.swift b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/ObvNetworkFetchManagerImplementationDummy.swift index 483470d0..43c8797d 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/ObvNetworkFetchManagerImplementationDummy.swift +++ b/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/ObvNetworkFetchManagerImplementationDummy.swift @@ -51,15 +51,15 @@ public final class ObvNetworkFetchManagerImplementationDummy: ObvNetworkFetchDel self.log = OSLog(subsystem: ObvNetworkFetchManagerImplementationDummy.defaultLogSubsystem, category: "ObvNetworkFetchManagerImplementationDummy") } + public func registerOwnedAPIKeyOnServerNow(ownedCryptoIdentity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) async throws -> ObvRegisterApiKeyResult { + os_log("registerOwnedAPIKeyOnServerNow does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "registerOwnedAPIKeyOnServerNow does nothing in this dummy implementation") + } + public func registerPushNotification(_ pushNotification: ObvPushNotificationType, flowId: FlowIdentifier) { os_log("registerPushNotification does nothing in this dummy implementation", log: log, type: .error) } - public func getServerPushNotification(ownedCryptoId: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvPushNotificationType? { - os_log("getServerPushNotification does nothing in this dummy implementation", log: log, type: .error) - return nil - } - public func updatedListOfOwnedIdentites(ownedIdentities: Set, flowId: FlowIdentifier) { os_log("updatedListOfOwnedIdentites does nothing in this dummy implementation", log: log, type: .error) } @@ -68,26 +68,36 @@ public final class ObvNetworkFetchManagerImplementationDummy: ObvNetworkFetchDel os_log("queryServerWellKnown does nothing in this dummy implementation", log: log, type: .error) } - public func verifyReceipt(ownedCryptoIdentities: [ObvCryptoIdentity], receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier) { - os_log("verifyReceipt does nothing in this dummy implementation", log: log, type: .error) + public func verifyReceiptAndRefreshAPIPermissions(appStoreReceiptElements: ObvAppStoreReceipt, flowId: FlowIdentifier) async throws -> [ObvCryptoIdentity : ObvAppStoreReceipt.VerificationStatus] { + os_log("verifyReceiptAndRefreshAPIPermissions does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "verifyReceiptAndRefreshAPIPermissions does nothing in this dummy implementation") } - public func queryFreeTrial(for identity: ObvCryptoIdentity, retrieveAPIKey: Bool, flowId: FlowIdentifier) { + public func queryFreeTrial(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> Bool { os_log("queryFreeTrial does nothing in this dummy implementation", log: log, type: .error) + return true } - public func resetServerSession(for identity: ObvCryptoIdentity, within obvContext: ObvContext) throws { - os_log("resetServerSession does nothing in this dummy implementation", log: log, type: .error) + public func startFreeTrial(for identity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> APIKeyElements { + os_log("startFreeTrial does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "startFreeTrial does nothing in this dummy implementation") + } + + public func refreshAPIPermissions(of ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> APIKeyElements { + os_log("refreshAPIPermissions does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "refreshAPIPermissions does nothing in this dummy implementation") } - public func queryAPIKeyStatus(for identity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) { + public func queryAPIKeyStatus(for identity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) async throws -> APIKeyElements { os_log("queryAPIKeyStatus does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "queryAPIKeyStatus does nothing in this dummy implementation") } - public func getTurnCredentials(ownedIdenty: ObvCryptoIdentity, callUuid: UUID, username1: String, username2: String, flowId: FlowIdentifier) { + public func getTurnCredentials(ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> ObvTurnCredentials { os_log("getTurnCredentials does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "getTurnCredentials does nothing in this dummy implementation") } - + public func getWebSocketState(ownedIdentity: ObvCrypto.ObvCryptoIdentity) async throws -> (URLSessionTask.State, TimeInterval?) { os_log("getWebSocketState does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getWebSocketState does nothing in this dummy implementation") @@ -105,37 +115,37 @@ public final class ObvNetworkFetchManagerImplementationDummy: ObvNetworkFetchDel os_log("downloadMessages(for: ObvCryptoIdentity, andDeviceUid: UID, flowId: FlowIdentifier) does nothing in this dummy implementation", log: log, type: .error) } - public func getEncryptedMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) -> ObvNetworkReceivedMessageEncrypted? { + public func getEncryptedMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) -> ObvNetworkReceivedMessageEncrypted? { os_log("getEncryptedMessage(messageId: MessageIdentifier) does nothing in this dummy implementation", log: log, type: .error) return nil } - public func getDecryptedMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) -> ObvNetworkReceivedMessageDecrypted? { + public func getDecryptedMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) -> ObvNetworkReceivedMessageDecrypted? { os_log("getDecryptedMessage(messageId: MessageIdentifier) does nothing in this dummy implementation", log: log, type: .error) return nil } - public func allAttachmentsCanBeDownloadedForMessage(withId: MessageIdentifier, within: ObvContext) throws -> Bool { + public func allAttachmentsCanBeDownloadedForMessage(withId: ObvMessageIdentifier, within: ObvContext) throws -> Bool { os_log("allAttachmentsCanBeDownloadedForMessage(withId: MessageIdentifier, within: ObvContext) does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "allAttachmentsCanBeDownloadedForMessage(withId: MessageIdentifier, within: ObvContext) does nothing in this dummy implementation") } - public func allAttachmentsHaveBeenDownloadedForMessage(withId: MessageIdentifier, within: ObvContext) throws -> Bool { + public func allAttachmentsHaveBeenDownloadedForMessage(withId: ObvMessageIdentifier, within: ObvContext) throws -> Bool { os_log("allAttachmentsHaveBeenDownloadedForMessage(withId: MessageIdentifier, within: ObvContext) does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "allAttachmentsHaveBeenDownloadedForMessage(withId: MessageIdentifier, within: ObvContext) does nothing in this dummy implementation") } - public func attachment(withId: AttachmentIdentifier, canBeDownloadedwithin: ObvContext) throws -> Bool { + public func attachment(withId: ObvAttachmentIdentifier, canBeDownloadedwithin: ObvContext) throws -> Bool { os_log("attachment(withId: AttachmentIdentifier, canBeDownloadedwithin: ObvContext) does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "attachment(withId: AttachmentIdentifier, canBeDownloadedwithin: ObvContext) does nothing in this dummy implementation") } - public func setRemoteCryptoIdentity(_ remoteCryptoIdentity: ObvCryptoIdentity, messagePayload: Data, extendedMessagePayloadKey: AuthenticatedEncryptionKey?, andAttachmentsInfos: [ObvNetworkFetchAttachmentInfos], forApplicationMessageWithmessageId: MessageIdentifier, within obvContext: ObvContext) throws { + public func setRemoteCryptoIdentity(_ remoteCryptoIdentity: ObvCryptoIdentity, messagePayload: Data, extendedMessagePayloadKey: AuthenticatedEncryptionKey?, andAttachmentsInfos: [ObvNetworkFetchAttachmentInfos], forApplicationMessageWithmessageId: ObvMessageIdentifier, within obvContext: ObvContext) throws { os_log("set(remoteCryptoIdentity: ObvCryptoIdentity, messagePayload: Data, andAttachmentsInfos: [ObvNetworkFetchAttachmentInfos], forApplicationMessageWithMessageId: MessageIdentifier, within obvContext: ObvContext) does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "set(remoteCryptoIdentity: ObvCryptoIdentity, messagePayload: Data, andAttachmentsInfos: [ObvNetworkFetchAttachmentInfos], forApplicationMessageWithMessageId: MessageIdentifier, within obvContext: ObvContext) does nothing in this dummy implementation") } - public func getAttachment(withId attachmentId: AttachmentIdentifier, within obvContext: ObvContext) -> ObvNetworkFetchReceivedAttachment? { + public func getAttachment(withId attachmentId: ObvAttachmentIdentifier, within obvContext: ObvContext) -> ObvNetworkFetchReceivedAttachment? { os_log("getAttachment(withId: AttachmentIdentifier) does nothing in this dummy implementation", log: log, type: .error) return nil } @@ -149,27 +159,27 @@ public final class ObvNetworkFetchManagerImplementationDummy: ObvNetworkFetchDel os_log("storeCompletionHandler(_: @escaping () -> Void, forHandlingEventsForBackgroundURLSessionWithIdentifier: String, withinFlowId: FlowIdentifier) does nothing in this dummy implementation", log: log, type: .error) } - public func deleteMessageAndAttachments(messageId: MessageIdentifier, within: ObvContext) { + public func deleteMessageAndAttachments(messageId: ObvMessageIdentifier, within: ObvContext) { os_log("deleteMessageAndAttachments(messageId: MessageIdentifier, within: ObvContext) does nothing in this dummy implementation", log: log, type: .error) } - public func markMessageForDeletion(messageId: MessageIdentifier, within: ObvContext) { + public func markMessageForDeletion(messageId: ObvMessageIdentifier, within: ObvContext) { os_log("markMessageForDeletion(messageId: MessageIdentifier, within: ObvContext) does nothing in this dummy implementation", log: log, type: .error) } - public func markAttachmentForDeletion(attachmentId: AttachmentIdentifier, within: ObvContext) { + public func markAttachmentForDeletion(attachmentId: ObvAttachmentIdentifier, within: ObvContext) { os_log("markAttachmentForDeletion(attachmentId: AttachmentIdentifier, within: ObvContext) does nothing in this dummy implementation", log: log, type: .error) } - public func resumeDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + public func resumeDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, forceResume: Bool, flowId: FlowIdentifier) { os_log("resumeDownloadOfAttachment does nothing in this dummy implementation", log: log, type: .error) } - public func pauseDownloadOfAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + public func pauseDownloadOfAttachment(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { os_log("pauseDownloadOfAttachment does nothing in this dummy implementation", log: log, type: .error) } - public func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async throws -> [AttachmentIdentifier: Float] { + public func requestDownloadAttachmentProgressesUpdatedSince(date: Date) async throws -> [ObvAttachmentIdentifier: Float] { os_log("requestDownloadAttachmentProgressesUpdatedSince does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "requestDownloadAttachmentProgressesUpdatedSince does nothing in this dummy implementation") } @@ -194,6 +204,15 @@ public final class ObvNetworkFetchManagerImplementationDummy: ObvNetworkFetchDel os_log("prepareForOwnedIdentityDeletion does nothing in this dummy implementation", log: log, type: .error) } + public func finalizeOwnedIdentityDeletion(ownedCryptoIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) throws { + os_log("finalizeOwnedIdentityDeletion does nothing in this dummy implementation", log: log, type: .error) + } + + public func performOwnedDeviceDiscoveryNow(ownedCryptoId: ObvCryptoIdentity, flowId: FlowIdentifier) async throws -> EncryptedData { + os_log("performOwnedDeviceDiscoveryNow does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "performOwnedDeviceDiscoveryNow does nothing in this dummy implementation") + } + // MARK: - Implementing ObvManager public let requiredDelegates = [ObvEngineDelegateType]() diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/BootstrapWorker.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/BootstrapWorker.swift index a5de3cc4..419e0278 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/BootstrapWorker.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/BootstrapWorker.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -168,7 +168,7 @@ extension BootstrapWorker { contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - let outboxMessageIdentifiers: [MessageIdentifier] + let outboxMessageIdentifiers: [ObvMessageIdentifier] do { let outboxMessages = try OutboxMessage.getAll(delegateManager: delegateManager, within: obvContext) outboxMessageIdentifiers = outboxMessages.compactMap { $0.messageId } @@ -233,7 +233,7 @@ extension BootstrapWorker { let relevantChanges = changes.filter { $0.changedObjectID.entity.name == OutboxMessage.entity().name && $0.changeType == .update } // Used to ensure we only post the relevant notification once - var notificationPosted = Set() + var notificationPosted = Set() for change in relevantChanges { guard let updatedProperties = change.updatedProperties else { continue } @@ -292,7 +292,7 @@ extension BootstrapWorker { } - public func deleteHistoryConcerningTheAcknowledgementOfOutboxMessage(messageIdentifier: MessageIdentifier, flowId: FlowIdentifier) async { + public func deleteHistoryConcerningTheAcknowledgementOfOutboxMessage(messageIdentifier: ObvMessageIdentifier, flowId: FlowIdentifier) async { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvNetworkSendDelegateManager.defaultLogSubsystem, category: logCategory) @@ -447,7 +447,7 @@ extension BootstrapWorker { contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - let existingMessageIds: Set + let existingMessageIds: Set do { let existingMessages = try OutboxMessage.getAll(delegateManager: delegateManager, within: obvContext) existingMessageIds = Set(existingMessages.compactMap({ $0.messageId })) @@ -456,8 +456,14 @@ extension BootstrapWorker { return } - let messageDirectoriesToKeep: Set = Set(existingMessageIds.map { outbox.appendingPathComponent($0.directoryName, isDirectory: true) }) - + let legacyMessageDirectoriesToKeep: Set = existingMessageIds.reduce(Set()) { partialResult, messageId in + Set(messageId.legacyDirectoryNamesForMessageAttachments.map { + outbox.appendingPathComponent($0, isDirectory: true) + }) + } + let nonLegacyMessageDirectoriesToKeep: Set = Set(existingMessageIds.map { outbox.appendingPathComponent($0.directoryNameForMessageAttachments, isDirectory: true) }) + let messageDirectoriesToKeep = legacyMessageDirectoriesToKeep.union(nonLegacyMessageDirectoriesToKeep) + messageDirectoriesToDelete = messageDirectories.subtracting(messageDirectoriesToKeep) } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/NetworkSendFlowCoordinator.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/NetworkSendFlowCoordinator.swift index ddad09ba..a0a2dc80 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/NetworkSendFlowCoordinator.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/NetworkSendFlowCoordinator.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -38,6 +38,7 @@ final class NetworkSendFlowCoordinator: ObvErrorMaker { private var failedFetchAttemptsCounterManager = FailedFetchAttemptsCounterManager() private var retryManager = SendRetryManager() private let outbox: URL + private let nwPathMonitor = NWPathMonitor() private let queueForPostingNotifications = DispatchQueue(label: "Queue for posting certain notifications from the NetworkSendFlowCoordinator") @@ -93,7 +94,7 @@ extension NetworkSendFlowCoordinator: NetworkSendFlowDelegate { wrappedKey: header.wrappedMessageKey) } - var attachmentIds = [AttachmentIdentifier]() + var attachmentIds = [ObvAttachmentIdentifier]() if let attachments = message.attachments { var attachmentNumber = 0 for attachment in attachments { @@ -103,7 +104,7 @@ extension NetworkSendFlowCoordinator: NetworkSendFlowDelegate { deleteAfterSend: attachment.deleteAfterSend, byteSize: attachment.byteSize, key: attachment.key) - let attachmentId = AttachmentIdentifier(messageId: message.messageId, attachmentNumber: attachmentNumber) + let attachmentId = ObvAttachmentIdentifier(messageId: message.messageId, attachmentNumber: attachmentNumber) attachmentIds.append(attachmentId) attachmentNumber += 1 @@ -124,7 +125,7 @@ extension NetworkSendFlowCoordinator: NetworkSendFlowDelegate { } - func newOutboxMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func newOutboxMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvNetworkSendDelegateManager.defaultLogSubsystem, category: logCategory) @@ -141,7 +142,7 @@ extension NetworkSendFlowCoordinator: NetworkSendFlowDelegate { } - func failedUploadAndGetUidOfMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func failedUploadAndGetUidOfMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvNetworkSendDelegateManager.defaultLogSubsystem, category: logCategory) @@ -160,7 +161,7 @@ extension NetworkSendFlowCoordinator: NetworkSendFlowDelegate { } - func successfulUploadOfMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func successfulUploadOfMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvNetworkSendDelegateManager.defaultLogSubsystem, category: logCategory) @@ -217,7 +218,7 @@ extension NetworkSendFlowCoordinator: NetworkSendFlowDelegate { - func messageAndAttachmentsWereExternallyCancelledAndCanSafelyBeDeletedNow(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func messageAndAttachmentsWereExternallyCancelledAndCanSafelyBeDeletedNow(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvNetworkSendDelegateManager.defaultLogSubsystem, category: logCategory) @@ -231,12 +232,12 @@ extension NetworkSendFlowCoordinator: NetworkSendFlowDelegate { - func newProgressForAttachment(attachmentId: AttachmentIdentifier) { + func newProgressForAttachment(attachmentId: ObvAttachmentIdentifier) { failedFetchAttemptsCounterManager.reset(counter: .uploadAttachment(attachmentId: attachmentId)) } - func requestUploadAttachmentProgressesUpdatedSince(date: Date) async throws -> [AttachmentIdentifier: Float] { + func requestUploadAttachmentProgressesUpdatedSince(date: Date) async throws -> [ObvAttachmentIdentifier: Float] { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvNetworkSendDelegateManager.defaultLogSubsystem, category: logCategory) os_log("The Delegate Manager is not set", log: log, type: .fault) @@ -283,7 +284,7 @@ extension NetworkSendFlowCoordinator: NetworkSendFlowDelegate { - func acknowledgedAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + func acknowledgedAttachment(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvNetworkSendDelegateManager.defaultLogSubsystem, category: logCategory) @@ -306,14 +307,14 @@ extension NetworkSendFlowCoordinator: NetworkSendFlowDelegate { } - func attachmentFailedToUpload(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + func attachmentFailedToUpload(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { let delay = failedFetchAttemptsCounterManager.incrementAndGetDelay(.uploadAttachment(attachmentId: attachmentId)) retryManager.executeWithDelay(delay) { [weak self] in self?.delegateManager?.uploadAttachmentChunksDelegate.resumeMissingAttachmentUploads(flowId: flowId) } } - func signedURLsDownloadFailedForAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + func signedURLsDownloadFailedForAttachment(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { let delay = failedFetchAttemptsCounterManager.incrementAndGetDelay(.uploadAttachment(attachmentId: attachmentId)) retryManager.executeWithDelay(delay) { [weak self] in self?.delegateManager?.uploadAttachmentChunksDelegate.downloadSignedURLsForAttachments(attachmentIds: [attachmentId], flowId: flowId) @@ -321,7 +322,7 @@ extension NetworkSendFlowCoordinator: NetworkSendFlowDelegate { } - func messageAndAttachmentsWereDeletedFromTheirOutboxes(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func messageAndAttachmentsWereDeletedFromTheirOutboxes(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { cleanOutboxForMessage(messageId) @@ -367,9 +368,8 @@ extension NetworkSendFlowCoordinator: NetworkSendFlowDelegate { // MARK: - Monitor Network Path Status private func monitorNetworkChanges() { - let monitor = NWPathMonitor() - monitor.start(queue: DispatchQueue(label: "NetworkSendMonitor")) - monitor.pathUpdateHandler = self.networkPathDidChange + nwPathMonitor.start(queue: DispatchQueue(label: "NetworkSendMonitor")) + nwPathMonitor.pathUpdateHandler = self.networkPathDidChange } @@ -391,7 +391,7 @@ extension NetworkSendFlowCoordinator: NetworkSendFlowDelegate { extension NetworkSendFlowCoordinator { - func cleanOutboxForMessage(_ messageId: MessageIdentifier) { + func cleanOutboxForMessage(_ messageId: ObvMessageIdentifier) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvNetworkSendDelegateManager.defaultLogSubsystem, category: logCategory) @@ -402,15 +402,30 @@ extension NetworkSendFlowCoordinator { let log = OSLog(subsystem: delegateManager.logSubsystem, category: logCategory) - let messageURL = outbox.appendingPathComponent(messageId.directoryName, isDirectory: true) - guard FileManager.default.fileExists(atPath: messageURL.path) else { return } - do { - try FileManager.default.removeItem(at: messageURL) - } catch { - os_log("Could not clean outbox for message %{public}@: %{public}@", log: log, type: .fault, messageId.debugDescription, error.localizedDescription) + // Legacy cleaning + for legacyDirectoryNameForMessageAttachments in messageId.legacyDirectoryNamesForMessageAttachments { + let messageURL = outbox.appendingPathComponent(legacyDirectoryNameForMessageAttachments, isDirectory: true) + if FileManager.default.fileExists(atPath: messageURL.path) { + do { + try FileManager.default.removeItem(at: messageURL) + } catch { + os_log("Could not clean outbox for message %{public}@: %{public}@", log: log, type: .fault, messageId.debugDescription, error.localizedDescription) + } + } } + // Non-legacy cleaning + do { + let messageURL = outbox.appendingPathComponent(messageId.directoryNameForMessageAttachments, isDirectory: true) + if FileManager.default.fileExists(atPath: messageURL.path) { + do { + try FileManager.default.removeItem(at: messageURL) + } catch { + os_log("Could not clean outbox for message %{public}@: %{public}@", log: log, type: .fault, messageId.debugDescription, error.localizedDescription) + } + } + } + } - } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/TryToDeleteMessageAndAttachmentsCoordinator.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/TryToDeleteMessageAndAttachmentsCoordinator.swift index f694d2f9..3d1b74a5 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/TryToDeleteMessageAndAttachmentsCoordinator.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/TryToDeleteMessageAndAttachmentsCoordinator.swift @@ -44,7 +44,7 @@ final class TryToDeleteMessageAndAttachmentsCoordinator: NSObject { return URLSession(configuration: sessionConfiguration, delegate: self, delegateQueue: nil) }() - private var _currentTasks = [UIBackgroundTaskIdentifier: (attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, dataReceived: Data)]() + private var _currentTasks = [UIBackgroundTaskIdentifier: (attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, dataReceived: Data)]() private let currentTasksQueue = DispatchQueue(label: "TryToDeleteMessageAndAttachmentsCoordinatorQueueForCurrentTasks") } @@ -54,7 +54,7 @@ final class TryToDeleteMessageAndAttachmentsCoordinator: NSObject { extension TryToDeleteMessageAndAttachmentsCoordinator { - private func currentTaskExistsForAttachment(withId attachmentId: AttachmentIdentifier) -> Bool { + private func currentTaskExistsForAttachment(withId attachmentId: ObvAttachmentIdentifier) -> Bool { var exist = true currentTasksQueue.sync { exist = _currentTasks.values.contains(where: { $0.attachmentId == attachmentId }) @@ -62,7 +62,7 @@ extension TryToDeleteMessageAndAttachmentsCoordinator { return exist } - private func taskExistsForAtLeastOneAttachmentAssociatedToMessage(withId messageId: MessageIdentifier) -> Bool { + private func taskExistsForAtLeastOneAttachmentAssociatedToMessage(withId messageId: ObvMessageIdentifier) -> Bool { var exist = true currentTasksQueue.sync { exist = _currentTasks.values.contains(where: { $0.attachmentId.messageId == messageId }) @@ -70,23 +70,23 @@ extension TryToDeleteMessageAndAttachmentsCoordinator { return exist } - private func removeInfoFor(_ task: URLSessionTask) -> (attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (AttachmentIdentifier, FlowIdentifier, Data)? = nil + private func removeInfoFor(_ task: URLSessionTask) -> (attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { + var info: (ObvAttachmentIdentifier, FlowIdentifier, Data)? = nil currentTasksQueue.sync { info = _currentTasks.removeValue(forKey: UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)) } return info } - private func getInfoFor(_ task: URLSessionTask) -> (mesattachmentIdsageId: AttachmentIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (AttachmentIdentifier, FlowIdentifier, Data)? = nil + private func getInfoFor(_ task: URLSessionTask) -> (mesattachmentIdsageId: ObvAttachmentIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { + var info: (ObvAttachmentIdentifier, FlowIdentifier, Data)? = nil currentTasksQueue.sync { info = _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] } return info } - private func insert(_ task: URLSessionTask, forAttachmentId attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + private func insert(_ task: URLSessionTask, forAttachmentId attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { currentTasksQueue.sync { _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] = (attachmentId, flowId, Data()) } @@ -108,7 +108,7 @@ extension TryToDeleteMessageAndAttachmentsCoordinator { extension TryToDeleteMessageAndAttachmentsCoordinator: TryToDeleteMessageAndAttachmentsDelegate { - func tryToDeleteMessageAndAttachments(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func tryToDeleteMessageAndAttachments(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) @@ -314,7 +314,7 @@ extension TryToDeleteMessageAndAttachmentsCoordinator: URLSessionDataDelegate { } - private func deleteMessageAndAttachmentsFromTheirOutboxes(messageId: MessageIdentifier, flowId: FlowIdentifier, contextCreator: ObvCreateContextDelegate, delegateManager: ObvNetworkSendDelegateManager, log: OSLog) { + private func deleteMessageAndAttachmentsFromTheirOutboxes(messageId: ObvMessageIdentifier, flowId: FlowIdentifier, contextCreator: ObvCreateContextDelegate, delegateManager: ObvNetworkSendDelegateManager, log: OSLog) { contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/CancellingAttachmentUploadOperations/DeleteOutboxAttachmentSessionOperation.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/CancellingAttachmentUploadOperations/DeleteOutboxAttachmentSessionOperation.swift index 1be76f13..00ef8add 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/CancellingAttachmentUploadOperations/DeleteOutboxAttachmentSessionOperation.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/CancellingAttachmentUploadOperations/DeleteOutboxAttachmentSessionOperation.swift @@ -67,7 +67,7 @@ final class DeleteOutboxAttachmentSessionOperation: Operation { private let uuid = UUID() - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let logSubsystem: String private let log: OSLog private let logCategory = String(describing: ManuallyAcknowledgeChunksThenInvalidateAndCancelAndDeleteOutboxAttachmentSessionOperation.self) @@ -76,7 +76,7 @@ final class DeleteOutboxAttachmentSessionOperation: Operation { private(set) var reasonForCancel: ReasonForCancel? - init(attachmentId: AttachmentIdentifier, logSubsystem: String, contextCreator: ObvCreateContextDelegate, flowId: FlowIdentifier) { + init(attachmentId: ObvAttachmentIdentifier, logSubsystem: String, contextCreator: ObvCreateContextDelegate, flowId: FlowIdentifier) { self.attachmentId = attachmentId self.logSubsystem = logSubsystem self.log = OSLog(subsystem: logSubsystem, category: logCategory) diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/CancellingAttachmentUploadOperations/MarkAttachmentAsCancelledOperation.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/CancellingAttachmentUploadOperations/MarkAttachmentAsCancelledOperation.swift index ffb01632..3ef8ded5 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/CancellingAttachmentUploadOperations/MarkAttachmentAsCancelledOperation.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/CancellingAttachmentUploadOperations/MarkAttachmentAsCancelledOperation.swift @@ -42,7 +42,7 @@ final class MarkAttachmentAsCancelledOperation: Operation { } private let uuid = UUID() - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let logSubsystem: String private let log: OSLog private let logCategory = String(describing: ManuallyAcknowledgeChunksThenInvalidateAndCancelAndDeleteOutboxAttachmentSessionOperation.self) @@ -51,7 +51,7 @@ final class MarkAttachmentAsCancelledOperation: Operation { private(set) var reasonForCancel: ReasonForCancel? - init(attachmentId: AttachmentIdentifier, logSubsystem: String, contextCreator: ObvCreateContextDelegate, flowId: FlowIdentifier) { + init(attachmentId: ObvAttachmentIdentifier, logSubsystem: String, contextCreator: ObvCreateContextDelegate, flowId: FlowIdentifier) { self.attachmentId = attachmentId self.logSubsystem = logSubsystem self.log = OSLog(subsystem: logSubsystem, category: logCategory) diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/CleanExistingOutboxAttachmentSessions/ManuallyAcknowledgeChunksThenInvalidateAndCancelAndDeleteOutboxAttachmentSessionOperation.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/CleanExistingOutboxAttachmentSessions/ManuallyAcknowledgeChunksThenInvalidateAndCancelAndDeleteOutboxAttachmentSessionOperation.swift index fcb2f9aa..0fa75db9 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/CleanExistingOutboxAttachmentSessions/ManuallyAcknowledgeChunksThenInvalidateAndCancelAndDeleteOutboxAttachmentSessionOperation.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/CleanExistingOutboxAttachmentSessions/ManuallyAcknowledgeChunksThenInvalidateAndCancelAndDeleteOutboxAttachmentSessionOperation.swift @@ -35,7 +35,7 @@ final class ManuallyAcknowledgeChunksThenInvalidateAndCancelAndDeleteOutboxAttac } private let uuid = UUID() - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let logSubsystem: String private let log: OSLog private let logCategory = String(describing: ManuallyAcknowledgeChunksThenInvalidateAndCancelAndDeleteOutboxAttachmentSessionOperation.self) @@ -51,7 +51,7 @@ final class ManuallyAcknowledgeChunksThenInvalidateAndCancelAndDeleteOutboxAttac } override var isFinished: Bool { _isFinished } - init(attachmentId: AttachmentIdentifier, logSubsystem: String, contextCreator: ObvCreateContextDelegate, flowId: FlowIdentifier, sharedContainerIdentifier: String) { + init(attachmentId: ObvAttachmentIdentifier, logSubsystem: String, contextCreator: ObvCreateContextDelegate, flowId: FlowIdentifier, sharedContainerIdentifier: String) { self.attachmentId = attachmentId self.logSubsystem = logSubsystem self.log = OSLog(subsystem: logSubsystem, category: logCategory) diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/DeletePreviousAttachmentSignedURLsOperation.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/DeletePreviousAttachmentSignedURLsOperation.swift index 92cbc748..f7bd0873 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/DeletePreviousAttachmentSignedURLsOperation.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/DeletePreviousAttachmentSignedURLsOperation.swift @@ -33,7 +33,7 @@ final class DeletePreviousAttachmentSignedURLsOperation: Operation { } private let uuid = UUID() - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let logSubsystem: String private let log: OSLog private let obvContext: ObvContext @@ -41,7 +41,7 @@ final class DeletePreviousAttachmentSignedURLsOperation: Operation { private(set) var reasonForCancel: ReasonForCancel? - init(attachmentId: AttachmentIdentifier, logSubsystem: String, obvContext: ObvContext) { + init(attachmentId: ObvAttachmentIdentifier, logSubsystem: String, obvContext: ObvContext) { self.attachmentId = attachmentId self.logSubsystem = logSubsystem self.log = OSLog(subsystem: logSubsystem, category: logCategory) diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/ResumeTaskForGettingAttachmentSignedURLsOperation.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/ResumeTaskForGettingAttachmentSignedURLsOperation.swift index b7d1e298..06f18566 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/ResumeTaskForGettingAttachmentSignedURLsOperation.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/GettingAttachmentSignedURLs/ResumeTaskForGettingAttachmentSignedURLsOperation.swift @@ -41,7 +41,7 @@ final class ResumeTaskForGettingAttachmentSignedURLsOperation: Operation { } private let uuid = UUID() - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let logSubsystem: String private let log: OSLog private let obvContext: ObvContext @@ -55,7 +55,7 @@ final class ResumeTaskForGettingAttachmentSignedURLsOperation: Operation { private(set) var reasonForCancel: ReasonForCancel? - init(attachmentId: AttachmentIdentifier, logSubsystem: String, obvContext: ObvContext, identityDelegate: ObvIdentityDelegate, attachmentChunksSignedURLsTracker: AttachmentChunksSignedURLsTracker, appType: AppType, delegate: FinalizeSignedURLsOperationsDelegate) { + init(attachmentId: ObvAttachmentIdentifier, logSubsystem: String, obvContext: ObvContext, identityDelegate: ObvIdentityDelegate, attachmentChunksSignedURLsTracker: AttachmentChunksSignedURLsTracker, appType: AppType, delegate: FinalizeSignedURLsOperationsDelegate) { self.attachmentId = attachmentId self.logSubsystem = logSubsystem self.log = OSLog(subsystem: logSubsystem, category: logCategory) @@ -180,6 +180,6 @@ extension ResumeTaskForGettingAttachmentSignedURLsOperation { protocol FinalizeSignedURLsOperationsDelegate: AnyObject { - func signedURLsOperationsAreFinished(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: ResumeTaskForGettingAttachmentSignedURLsOperation.ReasonForCancel?) + func signedURLsOperationsAreFinished(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: ResumeTaskForGettingAttachmentSignedURLsOperation.ReasonForCancel?) } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/QueryServerForAttachmentsProgressesSentByShareExtension/QueryServerForAttachmentsProgressesSentByShareExtensionOperation.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/QueryServerForAttachmentsProgressesSentByShareExtension/QueryServerForAttachmentsProgressesSentByShareExtensionOperation.swift index a42c312c..2a8b928b 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/QueryServerForAttachmentsProgressesSentByShareExtension/QueryServerForAttachmentsProgressesSentByShareExtensionOperation.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/QueryServerForAttachmentsProgressesSentByShareExtension/QueryServerForAttachmentsProgressesSentByShareExtensionOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -120,7 +120,7 @@ final class QueryServerForAttachmentsProgressesSentByShareExtensionOperation: Op let sessionConfiguration = URLSessionConfiguration.ephemeral sessionConfiguration.useOlvidSettings(sharedContainerIdentifier: nil) let session = URLSession(configuration: sessionConfiguration, delegate: sessionDelegate, delegateQueue: nil) - + let methods: [GetAttachmentUploadProgressMethod] = attachmentsSentByShareExtension.map { let method = GetAttachmentUploadProgressMethod(attachmentId: $0.attachmentId, serverURL: $0.serverURL, flowId: flowId) method.identityDelegate = identityDelegate @@ -129,7 +129,6 @@ final class QueryServerForAttachmentsProgressesSentByShareExtensionOperation: Op for method in methods { do { let task = try method.dataTask(within: session) - task.setAssociatedAttachmentId(method.attachmentId) sessionDelegate.insert(task, forAttachmentId: method.attachmentId, flowId: flowId) task.resume() } catch let error { @@ -146,7 +145,7 @@ final class QueryServerForAttachmentsProgressesSentByShareExtensionOperation: Op fileprivate struct AttachmentIdAndServerURL: Hashable { - let attachmentId: AttachmentIdentifier + let attachmentId: ObvAttachmentIdentifier let serverURL: URL } @@ -156,7 +155,7 @@ final class GetAttachmentUploadProgressMethodSessionDelegate: NSObject, URLSessi private weak var delegateManager: ObvNetworkSendDelegateManager? private weak var tracker: AttachmentChunkUploadProgressTracker? - private var _currentTasks = [UIBackgroundTaskIdentifier: (attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, dataReceived: Data)]() + private var _currentTasks = [UIBackgroundTaskIdentifier: (attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, dataReceived: Data)]() private let currentTasksQueue = DispatchQueue(label: "GetAttachmentUploadProgressMethodSessionDelegate") private let log: OSLog @@ -165,7 +164,7 @@ final class GetAttachmentUploadProgressMethodSessionDelegate: NSObject, URLSessi super.init() } - private func currentTaskExistsForAttachment(withId id: AttachmentIdentifier) -> Bool { + private func currentTaskExistsForAttachment(withId id: ObvAttachmentIdentifier) -> Bool { var exist = true currentTasksQueue.sync { exist = _currentTasks.values.contains(where: { $0.attachmentId == id }) @@ -173,23 +172,23 @@ final class GetAttachmentUploadProgressMethodSessionDelegate: NSObject, URLSessi return exist } - private func removeInfoFor(_ task: URLSessionTask) -> (attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (AttachmentIdentifier, FlowIdentifier, Data)? = nil + private func removeInfoFor(_ task: URLSessionTask) -> (attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { + var info: (ObvAttachmentIdentifier, FlowIdentifier, Data)? = nil currentTasksQueue.sync { info = _currentTasks.removeValue(forKey: UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)) } return info } - private func getInfoFor(_ task: URLSessionTask) -> (attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (AttachmentIdentifier, FlowIdentifier, Data)? = nil + private func getInfoFor(_ task: URLSessionTask) -> (attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { + var info: (ObvAttachmentIdentifier, FlowIdentifier, Data)? = nil currentTasksQueue.sync { info = _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] } return info } - fileprivate func insert(_ task: URLSessionTask, forAttachmentId attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) { + fileprivate func insert(_ task: URLSessionTask, forAttachmentId attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) { currentTasksQueue.sync { _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] = (attachmentId, flowId, Data()) } @@ -244,18 +243,3 @@ final class GetAttachmentUploadProgressMethodSessionDelegate: NSObject, URLSessi } } } - - -// MARK: - Extending URLSessionTask for storing chunk numbers within the description - -fileprivate extension URLSessionTask { - - func getAssociatedAttachmentId() -> AttachmentIdentifier? { - guard let taskDescription = self.taskDescription else { return nil } - return AttachmentIdentifier(taskDescription) - } - - func setAssociatedAttachmentId(_ attachmentId: AttachmentIdentifier) { - self.taskDescription = "\(attachmentId.description)" - } -} diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/UploadingChunksOperations/EncryptAttachmentChunkOperation.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/UploadingChunksOperations/EncryptAttachmentChunkOperation.swift index 4cc85a93..74560b04 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/UploadingChunksOperations/EncryptAttachmentChunkOperation.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/UploadingChunksOperations/EncryptAttachmentChunkOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -41,7 +41,7 @@ final class EncryptAttachmentChunkOperation: Operation, ObvErrorMaker { static let errorDomain = "EncryptAttachmentChunkOperation" private let uuid = UUID() - let attachmentId: AttachmentIdentifier + let attachmentId: ObvAttachmentIdentifier let chunkNumber: Int private let logSubsystem: String private let log: OSLog @@ -53,7 +53,7 @@ final class EncryptAttachmentChunkOperation: Operation, ObvErrorMaker { private(set) var reasonForCancel: ReasonForCancel? - init(attachmentId: AttachmentIdentifier, chunkNumber: Int, outbox: URL, logSubsystem: String, flowId: FlowIdentifier, contextCreator: ObvCreateContextDelegate) { + init(attachmentId: ObvAttachmentIdentifier, chunkNumber: Int, outbox: URL, logSubsystem: String, flowId: FlowIdentifier, contextCreator: ObvCreateContextDelegate) { self.attachmentId = attachmentId self.chunkNumber = chunkNumber self.flowId = flowId @@ -159,12 +159,12 @@ extension EncryptAttachmentChunkOperation { private func writeEncryptedChunkToTempFile(encryptedChunk: EncryptedData, outbox: URL) throws -> URL { // If required, create a directory for all that attachments of the message - let messageDirectory = outbox.appendingPathComponent(attachmentId.messageId.directoryName, isDirectory: true) + let messageDirectory = outbox.appendingPathComponent(attachmentId.messageId.directoryNameForMessageAttachments, isDirectory: true) if !FileManager.default.fileExists(atPath: messageDirectory.path) { try FileManager.default.createDirectory(at: messageDirectory, withIntermediateDirectories: true, attributes: nil) } // If required, create a directory for this attachment - let attachmentDirectory = messageDirectory.appendingPathComponent(attachmentId.directoryName, isDirectory: true) + let attachmentDirectory = messageDirectory.appendingPathComponent(attachmentId.directoryNameForAttachmentChunks, isDirectory: true) if !FileManager.default.fileExists(atPath: attachmentDirectory.path) { try FileManager.default.createDirectory(at: attachmentDirectory, withIntermediateDirectories: true, attributes: nil) } @@ -188,20 +188,3 @@ extension EncryptAttachmentChunkOperation { return size } } - - -extension MessageIdentifier { - - var directoryName: String { - let sha256 = ObvCryptoSuite.sharedInstance.hashFunctionSha256() - return sha256.hash(self.rawValue).hexString() - } - -} - -extension AttachmentIdentifier { - - var directoryName: String { - return "\(self.attachmentNumber)" - } -} diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/UploadingChunksOperations/FinalizePostAttachmentUploadRequestOperation.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/UploadingChunksOperations/FinalizePostAttachmentUploadRequestOperation.swift index 6bf79422..3ff37f61 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/UploadingChunksOperations/FinalizePostAttachmentUploadRequestOperation.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/UploadingChunksOperations/FinalizePostAttachmentUploadRequestOperation.swift @@ -50,7 +50,7 @@ final class FinalizePostAttachmentUploadRequestOperation: Operation { } private let uuid = UUID() - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let flowId: FlowIdentifier private let log: OSLog private let logCategory = String(describing: FinalizePostAttachmentUploadRequestOperation.self) @@ -58,7 +58,7 @@ final class FinalizePostAttachmentUploadRequestOperation: Operation { private weak var delegate: FinalizePostAttachmentUploadRequestOperationDelegate? - init(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, logSubsystem: String, notificationDelegate: ObvNotificationDelegate, delegate: FinalizePostAttachmentUploadRequestOperationDelegate) { + init(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, logSubsystem: String, notificationDelegate: ObvNotificationDelegate, delegate: FinalizePostAttachmentUploadRequestOperationDelegate) { self.attachmentId = attachmentId self.flowId = flowId self.notificationDelegate = notificationDelegate @@ -214,6 +214,6 @@ final class FinalizePostAttachmentUploadRequestOperation: Operation { protocol FinalizePostAttachmentUploadRequestOperationDelegate: AnyObject { - func postAttachmentUploadRequestOperationsAreFinished(attachmentId: AttachmentIdentifier, urlSession: URLSession?, flowId: FlowIdentifier, error: FinalizePostAttachmentUploadRequestOperation.ReasonForCancel?) + func postAttachmentUploadRequestOperationsAreFinished(attachmentId: ObvAttachmentIdentifier, urlSession: URLSession?, flowId: FlowIdentifier, error: FinalizePostAttachmentUploadRequestOperation.ReasonForCancel?) } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/UploadingChunksOperations/ReCreateURLSessionWithNewDelegateForAttachmentUploadOperation.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/UploadingChunksOperations/ReCreateURLSessionWithNewDelegateForAttachmentUploadOperation.swift index 7eabb8a3..e3cb0896 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/UploadingChunksOperations/ReCreateURLSessionWithNewDelegateForAttachmentUploadOperation.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/Operations/UploadingChunksOperations/ReCreateURLSessionWithNewDelegateForAttachmentUploadOperation.swift @@ -38,7 +38,7 @@ final class ReCreateURLSessionWithNewDelegateForAttachmentUploadOperation: Opera } private let uuid = UUID() - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let appType: AppType private let logSubsystem: String private let log: OSLog @@ -52,7 +52,7 @@ final class ReCreateURLSessionWithNewDelegateForAttachmentUploadOperation: Opera private(set) var reasonForCancel: ReasonForCancel? private(set) var urlSession: URLSession? - init(attachmentId: AttachmentIdentifier, appType: AppType, sharedContainerIdentifier: String, logSubsystem: String, flowId: FlowIdentifier, contextCreator: ObvCreateContextDelegate, attachmentChunkUploadProgressTracker: AttachmentChunkUploadProgressTracker) { + init(attachmentId: ObvAttachmentIdentifier, appType: AppType, sharedContainerIdentifier: String, logSubsystem: String, flowId: FlowIdentifier, contextCreator: ObvCreateContextDelegate, attachmentChunkUploadProgressTracker: AttachmentChunkUploadProgressTracker) { self.attachmentId = attachmentId self.flowId = flowId self.appType = appType diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/SessionDelegates/GetSignedURLsSessionDelegate.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/SessionDelegates/GetSignedURLsSessionDelegate.swift index 691a5183..7c515ef1 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/SessionDelegates/GetSignedURLsSessionDelegate.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/SessionDelegates/GetSignedURLsSessionDelegate.swift @@ -29,7 +29,7 @@ import OlvidUtils final class GetSignedURLsSessionDelegate: NSObject { private let uuid = UUID() - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let obvContext: ObvContext private let appType: AppType private let log: OSLog @@ -62,7 +62,7 @@ final class GetSignedURLsSessionDelegate: NSObject { } } - init(attachmentId: AttachmentIdentifier, obvContext: ObvContext, appType: AppType, logSubsystem: String, attachmentChunksSignedURLsTracker: AttachmentChunksSignedURLsTracker) { + init(attachmentId: ObvAttachmentIdentifier, obvContext: ObvContext, appType: AppType, logSubsystem: String, attachmentChunksSignedURLsTracker: AttachmentChunksSignedURLsTracker) { self.attachmentId = attachmentId self.obvContext = obvContext self.appType = appType @@ -77,7 +77,7 @@ final class GetSignedURLsSessionDelegate: NSObject { // MARK: - Tracker protocol AttachmentChunksSignedURLsTracker: AnyObject { - func getSignedURLsSessionDidBecomeInvalid(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: GetSignedURLsSessionDelegate.ErrorForTracker?) + func getSignedURLsSessionDidBecomeInvalid(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: GetSignedURLsSessionDelegate.ErrorForTracker?) } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/SessionDelegates/UploadAttachmentChunksSessionDelegate.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/SessionDelegates/UploadAttachmentChunksSessionDelegate.swift index e23b4ba6..59013272 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/SessionDelegates/UploadAttachmentChunksSessionDelegate.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/SessionDelegates/UploadAttachmentChunksSessionDelegate.swift @@ -29,7 +29,7 @@ final class UploadAttachmentChunksSessionDelegate: NSObject { let uuid = UUID() private let logCategory = String(describing: UploadAttachmentChunksSessionDelegate.self) private let log: OSLog - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let obvContext: ObvContext private let appType: AppType private let queueSynchronizingCallsToTracker = DispatchQueue(label: "Queue for sync tracker calls within UploadAttachmentChunksSessionDelegate") @@ -62,7 +62,7 @@ final class UploadAttachmentChunksSessionDelegate: NSObject { } } - init(attachmentId: AttachmentIdentifier, obvContext: ObvContext, appType: AppType, logSubsystem: String) { + init(attachmentId: ObvAttachmentIdentifier, obvContext: ObvContext, appType: AppType, logSubsystem: String) { self.log = OSLog(subsystem: logSubsystem, category: logCategory) self.attachmentId = attachmentId self.obvContext = obvContext @@ -81,10 +81,10 @@ final class UploadAttachmentChunksSessionDelegate: NSObject { // MARK: - Tracker protocol AttachmentChunkUploadProgressTracker: AnyObject { - func uploadAttachmentChunksSessionDidBecomeInvalid(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: UploadAttachmentChunksSessionDelegate.ErrorForTracker?) + func uploadAttachmentChunksSessionDidBecomeInvalid(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: UploadAttachmentChunksSessionDelegate.ErrorForTracker?) func urlSessionDidFinishEventsForSessionWithIdentifier(_ identifier: String) - func attachmentChunkDidProgress(attachmentId: AttachmentIdentifier, chunkProgress: (chunkNumber: Int, totalBytesSent: Int64, totalBytesExpectedToSend: Int64), flowId: FlowIdentifier) - func attachmentChunksAreAcknowledged(attachmentId: AttachmentIdentifier, chunkNumbers: [Int], flowId: FlowIdentifier) + func attachmentChunkDidProgress(attachmentId: ObvAttachmentIdentifier, chunkProgress: (chunkNumber: Int, totalBytesSent: Int64, totalBytesExpectedToSend: Int64), flowId: FlowIdentifier) + func attachmentChunksAreAcknowledged(attachmentId: ObvAttachmentIdentifier, chunkNumbers: [Int], flowId: FlowIdentifier) } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/UploadAttachmentChunksCoordinator.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/UploadAttachmentChunksCoordinator.swift index ed73264a..5d98fb5e 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/UploadAttachmentChunksCoordinator.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadAttachmentChunksCoordinator/UploadAttachmentChunksCoordinator.swift @@ -83,7 +83,7 @@ final class UploadAttachmentChunksCoordinator: NSObject { // Maps an attachment identifier to its (exact) completed unit count typealias ChunkProgress = (totalBytesSent: Int64, totalBytesExpectedToSend: Int64) - private var _chunksProgressesForAttachment = [AttachmentIdentifier: (chunkProgresses: [ChunkProgress], dateOfLastUpdate: Date)]() + private var _chunksProgressesForAttachment = [ObvAttachmentIdentifier: (chunkProgresses: [ChunkProgress], dateOfLastUpdate: Date)]() private let queueForAttachmentsProgresses = DispatchQueue(label: "Internal queue for attachments progresses", attributes: .concurrent) @@ -121,13 +121,13 @@ final class UploadAttachmentChunksCoordinator: NSObject { } // Calls must be in sync with localQueue - private var _stillUploadingCancelledAttachments = [MessageIdentifier: [AttachmentIdentifier]]() + private var _stillUploadingCancelledAttachments = [ObvMessageIdentifier: [ObvAttachmentIdentifier]]() private func addStillUploadingCancelledAttachmentsOfMessage(_ message: OutboxMessage) { guard let messageId = message.messageId else { assertionFailure(); return } _stillUploadingCancelledAttachments[messageId] = message.attachments.filter({ !$0.acknowledged }).map({ $0.attachmentId }) } /// This method removes the attachmentIds from the list of still uploading attachments of the message. - private func removeStillUploadingCancelledAttachments(attachmentId: AttachmentIdentifier) { + private func removeStillUploadingCancelledAttachments(attachmentId: ObvAttachmentIdentifier) { guard var remaining = _stillUploadingCancelledAttachments[attachmentId.messageId] else { return } remaining.removeAll(where: { $0 == attachmentId }) if remaining.isEmpty { @@ -136,24 +136,24 @@ final class UploadAttachmentChunksCoordinator: NSObject { _stillUploadingCancelledAttachments[attachmentId.messageId] = remaining } } - private func noMoreStillUploadingAttachments(messageId: MessageIdentifier) -> Bool { + private func noMoreStillUploadingAttachments(messageId: ObvMessageIdentifier) -> Bool { !_stillUploadingCancelledAttachments.keys.contains(messageId) } // This array tracks the attachment identifiers that are currently refreshing their signed URLs, so as to prevent an infinite loop of refresh - private var _attachmentIdsRefreshingSignedURLs = Set() + private var _attachmentIdsRefreshingSignedURLs = Set() private let queueForAttachmentIdsRefreshingSignedURLs = DispatchQueue(label: "Queue for sync access to _attachmentIdsRefreshingSignedURLs") - private func attachmentStartsToRefreshSignedURLs(attachmentId: AttachmentIdentifier) { + private func attachmentStartsToRefreshSignedURLs(attachmentId: ObvAttachmentIdentifier) { queueForAttachmentIdsRefreshingSignedURLs.sync { _ = _attachmentIdsRefreshingSignedURLs.insert(attachmentId) } } - private func attachmentStoppedToRefreshSignedURLs(attachmentId: AttachmentIdentifier) { + private func attachmentStoppedToRefreshSignedURLs(attachmentId: ObvAttachmentIdentifier) { queueForAttachmentIdsRefreshingSignedURLs.sync { _ = _attachmentIdsRefreshingSignedURLs.remove(attachmentId) } } - private func attachmentIsAlreadyRefreshingSignedURLs(attachmentId: AttachmentIdentifier) -> Bool { + private func attachmentIsAlreadyRefreshingSignedURLs(attachmentId: ObvAttachmentIdentifier) -> Bool { var val = false queueForAttachmentIdsRefreshingSignedURLs.sync { val = _attachmentIdsRefreshingSignedURLs.contains(attachmentId) @@ -174,7 +174,7 @@ extension UploadAttachmentChunksCoordinator: UploadAttachmentChunksDelegate { } - func processAllAttachmentsOfMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func processAllAttachmentsOfMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvNetworkSendDelegateManager.defaultLogSubsystem, category: logCategory) @@ -191,7 +191,7 @@ extension UploadAttachmentChunksCoordinator: UploadAttachmentChunksDelegate { return } - var attachmentsRequiringSignedURLs = [AttachmentIdentifier]() + var attachmentsRequiringSignedURLs = [ObvAttachmentIdentifier]() contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in @@ -218,7 +218,7 @@ extension UploadAttachmentChunksCoordinator: UploadAttachmentChunksDelegate { /// We queue an operation that will delete all the signed URLs /// of the attachment, then an operation that resume a download task that gets signed URLs from the server. /// We do so after adding a barrier to the queue, so as to make sure not to interfere with other tasks. - func downloadSignedURLsForAttachments(attachmentIds: [AttachmentIdentifier], flowId: FlowIdentifier) { + func downloadSignedURLsForAttachments(attachmentIds: [ObvAttachmentIdentifier], flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvNetworkSendDelegateManager.defaultLogSubsystem, category: logCategory) @@ -427,7 +427,7 @@ extension UploadAttachmentChunksCoordinator: UploadAttachmentChunksDelegate { localQueue.async { - var attachmentIds = [AttachmentIdentifier]() + var attachmentIds = [ObvAttachmentIdentifier]() contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in let outboxAttachmentSessions: [OutboxAttachmentSession] do { @@ -456,12 +456,12 @@ extension UploadAttachmentChunksCoordinator: UploadAttachmentChunksDelegate { } - func requestUploadAttachmentProgressesUpdatedSince(date: Date) async -> [AttachmentIdentifier: Float] { + func requestUploadAttachmentProgressesUpdatedSince(date: Date) async -> [ObvAttachmentIdentifier: Float] { - return await withCheckedContinuation { (continuation: CheckedContinuation<[AttachmentIdentifier: Float], Never>) in + return await withCheckedContinuation { (continuation: CheckedContinuation<[ObvAttachmentIdentifier: Float], Never>) in queueForAttachmentsProgresses.async { [weak self] in guard let _self = self else { continuation.resume(returning: [:]); return } - var progressesToReturn = [AttachmentIdentifier: Float]() + var progressesToReturn = [ObvAttachmentIdentifier: Float]() let appropriateChunksProgressesForAttachment = _self._chunksProgressesForAttachment.filter({ $0.value.dateOfLastUpdate > date }) for (attachmentId, value) in appropriateChunksProgressesForAttachment { let totalBytesSent = value.chunkProgresses.map({ $0.totalBytesSent }).reduce(0, +) @@ -511,7 +511,7 @@ extension UploadAttachmentChunksCoordinator: UploadAttachmentChunksDelegate { } - func cancelAllAttachmentsUploadOfMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) throws { + func cancelAllAttachmentsUploadOfMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) throws { assert(currentAppType == .mainApp) guard currentAppType == .mainApp else { return } @@ -632,7 +632,7 @@ extension UploadAttachmentChunksCoordinator { } - private func getOperationsForDownloadingSignedURLsForAttachment(attachmentId: AttachmentIdentifier, logSubsystem: String, obvContext: ObvContext, identityDelegate: ObvIdentityDelegate, appType: AppType) -> [Operation] { + private func getOperationsForDownloadingSignedURLsForAttachment(attachmentId: ObvAttachmentIdentifier, logSubsystem: String, obvContext: ObvContext, identityDelegate: ObvIdentityDelegate, appType: AppType) -> [Operation] { var operations = [Operation]() @@ -655,7 +655,7 @@ extension UploadAttachmentChunksCoordinator { extension UploadAttachmentChunksCoordinator: AttachmentChunksSignedURLsTracker { - func getSignedURLsSessionDidBecomeInvalid(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: GetSignedURLsSessionDelegate.ErrorForTracker?) { + func getSignedURLsSessionDidBecomeInvalid(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: GetSignedURLsSessionDelegate.ErrorForTracker?) { defer { attachmentStoppedToRefreshSignedURLs(attachmentId: attachmentId) @@ -698,7 +698,7 @@ extension UploadAttachmentChunksCoordinator: AttachmentChunksSignedURLsTracker { extension UploadAttachmentChunksCoordinator: AttachmentChunkUploadProgressTracker { - func attachmentChunkDidProgress(attachmentId: AttachmentIdentifier, chunkProgress: (chunkNumber: Int, totalBytesSent: Int64, totalBytesExpectedToSend: Int64), flowId: FlowIdentifier) { + func attachmentChunkDidProgress(attachmentId: ObvAttachmentIdentifier, chunkProgress: (chunkNumber: Int, totalBytesSent: Int64, totalBytesExpectedToSend: Int64), flowId: FlowIdentifier) { guard currentAppType == .mainApp else { return } @@ -743,7 +743,7 @@ extension UploadAttachmentChunksCoordinator: AttachmentChunkUploadProgressTracke } - func attachmentChunksAreAcknowledged(attachmentId: AttachmentIdentifier, chunkNumbers: [Int], flowId: FlowIdentifier) { + func attachmentChunksAreAcknowledged(attachmentId: ObvAttachmentIdentifier, chunkNumbers: [Int], flowId: FlowIdentifier) { guard currentAppType == .mainApp else { return } @@ -769,7 +769,7 @@ extension UploadAttachmentChunksCoordinator: AttachmentChunkUploadProgressTracke } - private func createChunksProgressesForAttachment(attachmentId: AttachmentIdentifier, contextCreator: ObvCreateContextDelegate, flowId: FlowIdentifier) -> ([ChunkProgress], Date)? { + private func createChunksProgressesForAttachment(attachmentId: ObvAttachmentIdentifier, contextCreator: ObvCreateContextDelegate, flowId: FlowIdentifier) -> ([ChunkProgress], Date)? { /// Must be executed on queueForAttachmentsProgresses assert(currentAppType == .mainApp) var chunksProgressess: ([ChunkProgress], Date)? @@ -781,7 +781,7 @@ extension UploadAttachmentChunksCoordinator: AttachmentChunkUploadProgressTracke } - func uploadAttachmentChunksSessionDidBecomeInvalid(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: UploadAttachmentChunksSessionDelegate.ErrorForTracker?) { + func uploadAttachmentChunksSessionDidBecomeInvalid(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: UploadAttachmentChunksSessionDelegate.ErrorForTracker?) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvNetworkSendDelegateManager.defaultLogSubsystem, category: logCategory) @@ -889,7 +889,7 @@ extension UploadAttachmentChunksCoordinator: AttachmentChunkUploadProgressTracke extension UploadAttachmentChunksCoordinator: FinalizeSignedURLsOperationsDelegate { - func signedURLsOperationsAreFinished(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier, error: ResumeTaskForGettingAttachmentSignedURLsOperation.ReasonForCancel?) { + func signedURLsOperationsAreFinished(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier, error: ResumeTaskForGettingAttachmentSignedURLsOperation.ReasonForCancel?) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvNetworkSendDelegateManager.defaultLogSubsystem, category: logCategory) @@ -939,7 +939,7 @@ extension UploadAttachmentChunksCoordinator: FinalizeSignedURLsOperationsDelegat extension UploadAttachmentChunksCoordinator: FinalizePostAttachmentUploadRequestOperationDelegate { - func postAttachmentUploadRequestOperationsAreFinished(attachmentId: AttachmentIdentifier, urlSession: URLSession?, flowId: FlowIdentifier, error: FinalizePostAttachmentUploadRequestOperation.ReasonForCancel?) { + func postAttachmentUploadRequestOperationsAreFinished(attachmentId: ObvAttachmentIdentifier, urlSession: URLSession?, flowId: FlowIdentifier, error: FinalizePostAttachmentUploadRequestOperation.ReasonForCancel?) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: ObvNetworkSendDelegateManager.defaultLogSubsystem, category: logCategory) diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadMessageAndGetUidsCoordinator.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadMessageAndGetUidsCoordinator.swift index d700dc78..d9f0fff8 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadMessageAndGetUidsCoordinator.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/Coordinators/UploadMessageAndGetUidsCoordinator.swift @@ -44,7 +44,7 @@ final class UploadMessageAndGetUidsCoordinator: NSObject { return URLSession(configuration: sessionConfiguration, delegate: self, delegateQueue: nil) }() - private var _currentTasks = [UIBackgroundTaskIdentifier: (messageId: MessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)]() + private var _currentTasks = [UIBackgroundTaskIdentifier: (messageId: ObvMessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)]() private let currentTasksQueue = DispatchQueue(label: "UploadMessageAndGetUidsCoordinatorQueueForCurrentTasks") } @@ -54,7 +54,7 @@ final class UploadMessageAndGetUidsCoordinator: NSObject { extension UploadMessageAndGetUidsCoordinator { - private func currentTaskExistsForMessage(withId id: MessageIdentifier) -> Bool { + private func currentTaskExistsForMessage(withId id: ObvMessageIdentifier) -> Bool { var exist = true currentTasksQueue.sync { exist = _currentTasks.values.contains(where: { $0.messageId == id }) @@ -62,23 +62,23 @@ extension UploadMessageAndGetUidsCoordinator { return exist } - private func removeInfoFor(_ task: URLSessionTask) -> (messageId: MessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (MessageIdentifier, FlowIdentifier, Data)? = nil + private func removeInfoFor(_ task: URLSessionTask) -> (messageId: ObvMessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { + var info: (ObvMessageIdentifier, FlowIdentifier, Data)? = nil currentTasksQueue.sync { info = _currentTasks.removeValue(forKey: UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)) } return info } - private func getInfoFor(_ task: URLSessionTask) -> (messageId: MessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { - var info: (MessageIdentifier, FlowIdentifier, Data)? = nil + private func getInfoFor(_ task: URLSessionTask) -> (messageId: ObvMessageIdentifier, flowId: FlowIdentifier, dataReceived: Data)? { + var info: (ObvMessageIdentifier, FlowIdentifier, Data)? = nil currentTasksQueue.sync { info = _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] } return info } - private func insert(_ task: URLSessionTask, forMessageId messageId: MessageIdentifier, flowId: FlowIdentifier) { + private func insert(_ task: URLSessionTask, forMessageId messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { currentTasksQueue.sync { _currentTasks[UIBackgroundTaskIdentifier(rawValue: task.taskIdentifier)] = (messageId, flowId, Data()) } @@ -109,7 +109,7 @@ extension UploadMessageAndGetUidsCoordinator: UploadMessageAndGetUidDelegate { case failedToCreateTask(error: Error) } - func getIdFromServerUploadMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) { + func getIdFromServerUploadMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) @@ -124,7 +124,7 @@ extension UploadMessageAndGetUidsCoordinator: UploadMessageAndGetUidDelegate { return } - os_log("Will try to get Id from server for message %{public}@ within flow %{public}@", log: log, type: .fault, messageId.debugDescription, flowId.debugDescription) + os_log("Will try to get Id from server for message %{public}@ within flow %{public}@", log: log, type: .info, messageId.debugDescription, flowId.debugDescription) var syncQueueOutput: SyncQueueOutput? // The state after the localQueue.sync is executed @@ -219,7 +219,7 @@ extension UploadMessageAndGetUidsCoordinator: UploadMessageAndGetUidDelegate { } - func cancelMessageUpload(messageId: MessageIdentifier, flowId: FlowIdentifier) throws { + func cancelMessageUpload(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) throws { guard let delegateManager = delegateManager else { let log = OSLog(subsystem: defaultLogSubsystem, category: logCategory) diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/DeletedOutboxMessage.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/DeletedOutboxMessage.swift index 182fef7f..0a39c035 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/DeletedOutboxMessage.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/DeletedOutboxMessage.swift @@ -44,15 +44,15 @@ final class DeletedOutboxMessage: NSManagedObject, ObvManagedObject { // MARK: Other variables - private(set) var messageId: MessageIdentifier { - get { return MessageIdentifier(rawOwnedCryptoIdentity: self.rawMessageIdOwnedIdentity, rawUid: self.rawMessageIdUid)! } + private(set) var messageId: ObvMessageIdentifier { + get { return ObvMessageIdentifier(rawOwnedCryptoIdentity: self.rawMessageIdOwnedIdentity, rawUid: self.rawMessageIdUid)! } set { self.rawMessageIdOwnedIdentity = newValue.ownedCryptoIdentity.getIdentity(); self.rawMessageIdUid = newValue.uid.raw } } weak var delegateManager: ObvNetworkSendDelegateManager? var obvContext: ObvContext? - private convenience init(messageId: MessageIdentifier, timestampFromServer: Date, delegateManager: ObvNetworkSendDelegateManager, within obvContext: ObvContext) { + private convenience init(messageId: ObvMessageIdentifier, timestampFromServer: Date, delegateManager: ObvNetworkSendDelegateManager, within obvContext: ObvContext) { let entityDescription = NSEntityDescription.entity(forEntityName: DeletedOutboxMessage.entityName, in: obvContext)! self.init(entity: entityDescription, insertInto: obvContext) self.messageId = messageId @@ -61,7 +61,7 @@ final class DeletedOutboxMessage: NSManagedObject, ObvManagedObject { self.insertionDate = Date() } - static func getOrCreate(messageId: MessageIdentifier, timestampFromServer: Date, delegateManager: ObvNetworkSendDelegateManager, within obvContext: ObvContext) throws -> DeletedOutboxMessage { + static func getOrCreate(messageId: ObvMessageIdentifier, timestampFromServer: Date, delegateManager: ObvNetworkSendDelegateManager, within obvContext: ObvContext) throws -> DeletedOutboxMessage { if let existingDeletedOutboxMessage = try DeletedOutboxMessage.getDeletedOutboxMessage(messageId: messageId, delegateManager: delegateManager, within: obvContext) { assertionFailure("In practice, this should never occur") return existingDeletedOutboxMessage @@ -85,7 +85,7 @@ extension DeletedOutboxMessage { case timestampFromServer = "timestampFromServer" } - static func withMessageId(_ messageId: MessageIdentifier) -> NSPredicate { + static func withMessageId(_ messageId: ObvMessageIdentifier) -> NSPredicate { NSCompoundPredicate(andPredicateWithSubpredicates: [ NSPredicate(Key.rawMessageIdOwnedIdentity, EqualToData: messageId.ownedCryptoIdentity.getIdentity()), NSPredicate(Key.rawMessageIdUid, EqualToData: messageId.uid.raw), @@ -113,7 +113,7 @@ extension DeletedOutboxMessage { return items.map { $0.delegateManager = delegateManager; return $0 } } - private static func getDeletedOutboxMessage(messageId: MessageIdentifier, delegateManager: ObvNetworkSendDelegateManager, within obvContext: ObvContext) throws -> DeletedOutboxMessage? { + private static func getDeletedOutboxMessage(messageId: ObvMessageIdentifier, delegateManager: ObvNetworkSendDelegateManager, within obvContext: ObvContext) throws -> DeletedOutboxMessage? { let request: NSFetchRequest = DeletedOutboxMessage.fetchRequest() request.predicate = Predicate.withMessageId(messageId) request.fetchLimit = 1 @@ -123,7 +123,7 @@ extension DeletedOutboxMessage { return item } - static func batchDelete(messageId: MessageIdentifier, within obvContext: ObvContext) throws { + static func batchDelete(messageId: ObvMessageIdentifier, within obvContext: ObvContext) throws { let fetchRequest = NSFetchRequest(entityName: DeletedOutboxMessage.entityName) fetchRequest.predicate = Predicate.withMessageId(messageId) let deleteRequest = NSBatchDeleteRequest(fetchRequest: fetchRequest) diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/MessageHeader.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/MessageHeader.swift index b1c1e72e..862e103e 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/MessageHeader.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/MessageHeader.swift @@ -66,8 +66,8 @@ final class MessageHeader: NSManagedObject, ObvManagedObject { // MARK: Other variables - private(set) var messageId: MessageIdentifier { - get { return MessageIdentifier(rawOwnedCryptoIdentity: self.rawMessageIdOwnedIdentity, rawUid: self.rawMessageIdUid)! } + private(set) var messageId: ObvMessageIdentifier { + get { return ObvMessageIdentifier(rawOwnedCryptoIdentity: self.rawMessageIdOwnedIdentity, rawUid: self.rawMessageIdUid)! } set { self.rawMessageIdOwnedIdentity = newValue.ownedCryptoIdentity.getIdentity(); self.rawMessageIdUid = newValue.uid.raw } } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/OutboxAttachment.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/OutboxAttachment.swift index 3f56d3af..43810623 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/OutboxAttachment.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/OutboxAttachment.swift @@ -112,13 +112,13 @@ final class OutboxAttachment: NSManagedObject, ObvManagedObject { return message.uploaded && !self.acknowledged && !self.cancelExternallyRequested } - private(set) var messageId: MessageIdentifier { - get { MessageIdentifier(rawOwnedCryptoIdentity: self.rawMessageIdOwnedIdentity, rawUid: self.rawMessageIdUid)! } + private(set) var messageId: ObvMessageIdentifier { + get { ObvMessageIdentifier(rawOwnedCryptoIdentity: self.rawMessageIdOwnedIdentity, rawUid: self.rawMessageIdUid)! } set { self.rawMessageIdOwnedIdentity = newValue.ownedCryptoIdentity.getIdentity(); self.rawMessageIdUid = newValue.uid.raw } } - var attachmentId: AttachmentIdentifier { - AttachmentIdentifier(messageId: self.messageId, attachmentNumber: self.attachmentNumber) + var attachmentId: ObvAttachmentIdentifier { + ObvAttachmentIdentifier(messageId: self.messageId, attachmentNumber: self.attachmentNumber) } var canBeDeleted: Bool { acknowledged || cancelExternallyRequested } @@ -153,7 +153,7 @@ final class OutboxAttachment: NSManagedObject, ObvManagedObject { guard let messageId = message.messageId else { throw Self.makeError(message: "Could not determine the message Id") } - guard try OutboxAttachment.get(attachmentId: AttachmentIdentifier(messageId: messageId, attachmentNumber: attachmentNumber), within: obvContext) == nil else { + guard try OutboxAttachment.get(attachmentId: ObvAttachmentIdentifier(messageId: messageId, attachmentNumber: attachmentNumber), within: obvContext) == nil else { throw Self.makeError(message: "An OutboxAttachment with the same primary key already exists") } let entityDescription = NSEntityDescription.entity(forEntityName: OutboxAttachment.entityName, in: obvContext)! @@ -291,7 +291,7 @@ extension OutboxAttachment { } - static func get(attachmentId: AttachmentIdentifier, within obvContext: ObvContext) throws -> OutboxAttachment? { + static func get(attachmentId: ObvAttachmentIdentifier, within obvContext: ObvContext) throws -> OutboxAttachment? { let request: NSFetchRequest = OutboxAttachment.fetchRequest() request.predicate = NSPredicate(format: "%K == %@ AND %K == %@ AND %K == %d", rawMessageIdOwnedIdentityKey, attachmentId.messageId.ownedCryptoIdentity.getIdentity() as NSData, diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/OutboxAttachmentChunk.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/OutboxAttachmentChunk.swift index 9744203f..841ac6b6 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/OutboxAttachmentChunk.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/OutboxAttachmentChunk.swift @@ -85,13 +85,13 @@ final class OutboxAttachmentChunk: NSManagedObject, ObvManagedObject { } } - private(set) var messageId: MessageIdentifier { - get { return MessageIdentifier(rawOwnedCryptoIdentity: self.rawMessageIdOwnedIdentity, rawUid: self.rawMessageIdUid)! } + private(set) var messageId: ObvMessageIdentifier { + get { return ObvMessageIdentifier(rawOwnedCryptoIdentity: self.rawMessageIdOwnedIdentity, rawUid: self.rawMessageIdUid)! } set { self.rawMessageIdOwnedIdentity = newValue.ownedCryptoIdentity.getIdentity(); self.rawMessageIdUid = newValue.uid.raw } } - private(set) var attachmentId: AttachmentIdentifier { - get { return AttachmentIdentifier(messageId: self.messageId, attachmentNumber: self.attachmentNumber) } + private(set) var attachmentId: ObvAttachmentIdentifier { + get { return ObvAttachmentIdentifier(messageId: self.messageId, attachmentNumber: self.attachmentNumber) } set { self.messageId = newValue.messageId; self.attachmentNumber = newValue.attachmentNumber } } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/OutboxMessage.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/OutboxMessage.swift index 485f4ffe..d912074a 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/OutboxMessage.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/CoreData/OutboxMessage.swift @@ -78,10 +78,10 @@ final class OutboxMessage: NSManagedObject, ObvManagedObject, ObvErrorMaker { // MARK: Other variables /// Expected to be non-nil. We never allow setting this identifier to `nil`. - private(set) var messageId: MessageIdentifier? { + private(set) var messageId: ObvMessageIdentifier? { get { guard !isDeleted else { return nil } - return MessageIdentifier(rawOwnedCryptoIdentity: self.rawMessageIdOwnedIdentity, rawUid: self.rawMessageIdUid) + return ObvMessageIdentifier(rawOwnedCryptoIdentity: self.rawMessageIdOwnedIdentity, rawUid: self.rawMessageIdUid) } set { guard let newValue = newValue else { assertionFailure(); return } @@ -90,7 +90,7 @@ final class OutboxMessage: NSManagedObject, ObvManagedObject, ObvErrorMaker { } /// Always `nil`, unless this outbox message get deleted - private var messageIdWhenDeleted: MessageIdentifier? + private var messageIdWhenDeleted: ObvMessageIdentifier? private(set) var messageUidFromServer: UID? { get { guard let uid = self.rawMessageUidFromServer else { return nil }; return UID(uid: uid) } @@ -125,7 +125,7 @@ final class OutboxMessage: NSManagedObject, ObvManagedObject, ObvErrorMaker { // MARK: - Initializer - convenience init?(messageId: MessageIdentifier, serverURL: URL, encryptedContent: EncryptedData, encryptedExtendedMessagePayload: EncryptedData?, isAppMessageWithUserContent: Bool, isVoipMessage: Bool, delegateManager: ObvNetworkSendDelegateManager, within obvContext: ObvContext) { + convenience init?(messageId: ObvMessageIdentifier, serverURL: URL, encryptedContent: EncryptedData, encryptedExtendedMessagePayload: EncryptedData?, isAppMessageWithUserContent: Bool, isVoipMessage: Bool, delegateManager: ObvNetworkSendDelegateManager, within obvContext: ObvContext) { do { guard try OutboxMessage.get(messageId: messageId, delegateManager: delegateManager, within: obvContext) == nil else { assertionFailure(); return nil } @@ -215,7 +215,7 @@ extension OutboxMessage { case unsortedAttachments = "unsortedAttachments" } - static func withMessageId(_ messageId: MessageIdentifier) -> NSPredicate { + static func withMessageId(_ messageId: ObvMessageIdentifier) -> NSPredicate { NSCompoundPredicate(andPredicateWithSubpredicates: [ NSPredicate(Key.rawMessageIdOwnedIdentity, EqualToData: messageId.ownedCryptoIdentity.getIdentity()), NSPredicate(Key.rawMessageIdUid, EqualToData: messageId.uid.raw), @@ -243,7 +243,7 @@ extension OutboxMessage { return NSFetchRequest(entityName: OutboxMessage.entityName) } - static func get(messageId: MessageIdentifier, delegateManager: ObvNetworkSendDelegateManager, within obvContext: ObvContext) throws -> OutboxMessage? { + static func get(messageId: ObvMessageIdentifier, delegateManager: ObvNetworkSendDelegateManager, within obvContext: ObvContext) throws -> OutboxMessage? { let request: NSFetchRequest = OutboxMessage.fetchRequest() request.predicate = Predicate.withMessageId(messageId) request.fetchLimit = 1 @@ -267,7 +267,7 @@ extension OutboxMessage { return items.map { $0.delegateManager = delegateManager; return $0 } } - static func delete(messageId: MessageIdentifier, delegateManager: ObvNetworkSendDelegateManager, within obvContext: ObvContext) throws { + static func delete(messageId: ObvMessageIdentifier, delegateManager: ObvNetworkSendDelegateManager, within obvContext: ObvContext) throws { let request: NSFetchRequest = OutboxMessage.fetchRequest() request.predicate = Predicate.withMessageId(messageId) guard let item = try obvContext.fetch(request).first else { return } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/FailedFetchAttemptsCounterManager.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/FailedFetchAttemptsCounterManager.swift index 229b8dee..acbb2e76 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/FailedFetchAttemptsCounterManager.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/FailedFetchAttemptsCounterManager.swift @@ -28,12 +28,12 @@ struct FailedFetchAttemptsCounterManager { private let queue = DispatchQueue(label: "FailedFetchAttemptsCounterManagerQueue") enum Counter { - case uploadMessage(messageId: MessageIdentifier) - case uploadAttachment(attachmentId: AttachmentIdentifier) + case uploadMessage(messageId: ObvMessageIdentifier) + case uploadAttachment(attachmentId: ObvAttachmentIdentifier) } - private var _uploadMessage = [MessageIdentifier: Int]() - private var _uploadAttachment = [AttachmentIdentifier: Int]() + private var _uploadMessage = [ObvMessageIdentifier: Int]() + private var _uploadAttachment = [ObvAttachmentIdentifier: Int]() mutating func incrementAndGetDelay(_ counter: Counter, increment: Int = 1) -> Int { var localCounter = 0 diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/DownloadPrivateURLsForAttachmentChunksUploadDelegate.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/DownloadPrivateURLsForAttachmentChunksUploadDelegate.swift index 2d2a4eb2..0168538a 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/DownloadPrivateURLsForAttachmentChunksUploadDelegate.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/DownloadPrivateURLsForAttachmentChunksUploadDelegate.swift @@ -26,6 +26,6 @@ import OlvidUtils protocol DownloadPrivateURLsForAttachmentChunksUploadDelegate { - func downloadPrivateUrlsForAttachmentWithId(_ attachmentId: AttachmentIdentifier, withinFlowId flowId: FlowIdentifier) + func downloadPrivateUrlsForAttachmentWithId(_ attachmentId: ObvAttachmentIdentifier, withinFlowId flowId: FlowIdentifier) } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/NetworkSendFlowDelegate.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/NetworkSendFlowDelegate.swift index d7a515fa..abb85966 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/NetworkSendFlowDelegate.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/NetworkSendFlowDelegate.swift @@ -27,22 +27,22 @@ protocol NetworkSendFlowDelegate { func post(_: ObvNetworkMessageToSend, within: ObvContext) throws - func newOutboxMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) + func newOutboxMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) - func failedUploadAndGetUidOfMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) - func successfulUploadOfMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) - func messageAndAttachmentsWereExternallyCancelledAndCanSafelyBeDeletedNow(messageId: MessageIdentifier, flowId: FlowIdentifier) + func failedUploadAndGetUidOfMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) + func successfulUploadOfMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) + func messageAndAttachmentsWereExternallyCancelledAndCanSafelyBeDeletedNow(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) - func newProgressForAttachment(attachmentId: AttachmentIdentifier) + func newProgressForAttachment(attachmentId: ObvAttachmentIdentifier) func storeCompletionHandler(_: @escaping () -> Void, forHandlingEventsForBackgroundURLSessionWithIdentifier: String, withinFlowId: FlowIdentifier) func backgroundURLSessionIdentifierIsAppropriate(backgroundURLSessionIdentifier: String) -> Bool - func signedURLsDownloadFailedForAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - func acknowledgedAttachment(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) - func attachmentFailedToUpload(attachmentId: AttachmentIdentifier, flowId: FlowIdentifier) + func signedURLsDownloadFailedForAttachment(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) + func acknowledgedAttachment(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) + func attachmentFailedToUpload(attachmentId: ObvAttachmentIdentifier, flowId: FlowIdentifier) - func requestUploadAttachmentProgressesUpdatedSince(date: Date) async throws -> [AttachmentIdentifier: Float] + func requestUploadAttachmentProgressesUpdatedSince(date: Date) async throws -> [ObvAttachmentIdentifier: Float] - func messageAndAttachmentsWereDeletedFromTheirOutboxes(messageId: MessageIdentifier, flowId: FlowIdentifier) + func messageAndAttachmentsWereDeletedFromTheirOutboxes(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) func sendNetworkOperationFailedSinceOwnedIdentityIsNotActive(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/TryToDeleteMessageAndAttachmentsDelegate.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/TryToDeleteMessageAndAttachmentsDelegate.swift index 7ad3237b..177c3038 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/TryToDeleteMessageAndAttachmentsDelegate.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/TryToDeleteMessageAndAttachmentsDelegate.swift @@ -24,6 +24,6 @@ import OlvidUtils protocol TryToDeleteMessageAndAttachmentsDelegate { - func tryToDeleteMessageAndAttachments(messageId: MessageIdentifier, flowId: FlowIdentifier) + func tryToDeleteMessageAndAttachments(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/UploadAttachmentChunksDelegate.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/UploadAttachmentChunksDelegate.swift index 4b7c7d5f..cbba8fa9 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/UploadAttachmentChunksDelegate.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/UploadAttachmentChunksDelegate.swift @@ -25,13 +25,13 @@ import OlvidUtils protocol UploadAttachmentChunksDelegate { func backgroundURLSessionIdentifierIsAppropriate(backgroundURLSessionIdentifier: String) -> Bool - func processAllAttachmentsOfMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) - func downloadSignedURLsForAttachments(attachmentIds: [AttachmentIdentifier], flowId: FlowIdentifier) + func processAllAttachmentsOfMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) + func downloadSignedURLsForAttachments(attachmentIds: [ObvAttachmentIdentifier], flowId: FlowIdentifier) func resumeMissingAttachmentUploads(flowId: FlowIdentifier) func processCompletionHandler(_ handler: @escaping () -> Void, forHandlingEventsForBackgroundURLSessionWithIdentifier identifer: String, withinFlowId flowId: FlowIdentifier) func cleanExistingOutboxAttachmentSessionsCreatedBy(_ creatorAppType: AppType, flowId: FlowIdentifier) - func requestUploadAttachmentProgressesUpdatedSince(date: Date) async -> [AttachmentIdentifier: Float] + func requestUploadAttachmentProgressesUpdatedSince(date: Date) async -> [ObvAttachmentIdentifier: Float] func queryServerOnSessionsTasksCreatedByShareExtension(flowId: FlowIdentifier) - func cancelAllAttachmentsUploadOfMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) throws + func cancelAllAttachmentsUploadOfMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) throws } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/UploadMessageAndGetUidDelegate.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/UploadMessageAndGetUidDelegate.swift index 968f18aa..0d87c8f4 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/UploadMessageAndGetUidDelegate.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/InternalDelegates/UploadMessageAndGetUidDelegate.swift @@ -23,6 +23,6 @@ import ObvMetaManager import OlvidUtils protocol UploadMessageAndGetUidDelegate { - func getIdFromServerUploadMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) - func cancelMessageUpload(messageId: MessageIdentifier, flowId: FlowIdentifier) throws + func getIdFromServerUploadMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) + func cancelMessageUpload(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) throws } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/ObvNetworkSendManagerImplementation.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/ObvNetworkSendManagerImplementation.swift index 7789ec1a..9c06ceb8 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/ObvNetworkSendManagerImplementation.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/ObvNetworkSendManagerImplementation.swift @@ -132,7 +132,7 @@ extension ObvNetworkSendManagerImplementation { } - public func cancelPostOfMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) throws { + public func cancelPostOfMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) throws { try delegateManager.uploadMessageAndGetUidsDelegate.cancelMessageUpload(messageId: messageId, flowId: flowId) try delegateManager.uploadAttachmentChunksDelegate.cancelAllAttachmentsUploadOfMessage(messageId: messageId, flowId: flowId) @@ -150,7 +150,7 @@ extension ObvNetworkSendManagerImplementation { return delegateManager.networkSendFlowDelegate.backgroundURLSessionIdentifierIsAppropriate(backgroundURLSessionIdentifier: backgroundURLSessionIdentifier) } - public func requestUploadAttachmentProgressesUpdatedSince(date: Date) async throws -> [AttachmentIdentifier: Float] { + public func requestUploadAttachmentProgressesUpdatedSince(date: Date) async throws -> [ObvAttachmentIdentifier: Float] { return try await delegateManager.networkSendFlowDelegate.requestUploadAttachmentProgressesUpdatedSince(date: date) } @@ -158,7 +158,7 @@ extension ObvNetworkSendManagerImplementation { bootstrapWorker.replayTransactionsHistory(transactions: transactions, within: obvContext) } - public func deleteHistoryConcerningTheAcknowledgementOfOutboxMessage(messageIdentifier: MessageIdentifier, flowId: FlowIdentifier) async { + public func deleteHistoryConcerningTheAcknowledgementOfOutboxMessage(messageIdentifier: ObvMessageIdentifier, flowId: FlowIdentifier) async { await bootstrapWorker.deleteHistoryConcerningTheAcknowledgementOfOutboxMessage(messageIdentifier: messageIdentifier, flowId: flowId) } diff --git a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/ObvNetworkSendManagerImplementationDummy.swift b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/ObvNetworkSendManagerImplementationDummy.swift index 59c67472..16bc26ba 100644 --- a/Engine/ObvNetworkSendManager/ObvNetworkSendManager/ObvNetworkSendManagerImplementationDummy.swift +++ b/Engine/ObvNetworkSendManager/ObvNetworkSendManager/ObvNetworkSendManagerImplementationDummy.swift @@ -57,7 +57,7 @@ public final class ObvNetworkSendManagerImplementationDummy: ObvNetworkPostDeleg os_log("post(_: ObvNetworkMessageToSend, within: ObvContext) does nothing in this dummy implementation", log: log, type: .error) } - public func cancelPostOfMessage(messageId: MessageIdentifier, flowId: FlowIdentifier) throws { + public func cancelPostOfMessage(messageId: ObvMessageIdentifier, flowId: FlowIdentifier) throws { os_log("cancelPostOfMessage(messageId: MessageIdentifier) does nothing in this dummy implementation", log: log, type: .error) } @@ -70,7 +70,7 @@ public final class ObvNetworkSendManagerImplementationDummy: ObvNetworkPostDeleg return false } - public func requestUploadAttachmentProgressesUpdatedSince(date: Date) async throws -> [AttachmentIdentifier: Float] { + public func requestUploadAttachmentProgressesUpdatedSince(date: Date) async throws -> [ObvAttachmentIdentifier: Float] { os_log("requestUploadAttachmentProgressesUpdatedSince does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "requestUploadAttachmentProgressesUpdatedSince does nothing in this dummy implementation") } @@ -90,7 +90,7 @@ public final class ObvNetworkSendManagerImplementationDummy: ObvNetworkPostDeleg public func replayTransactionsHistory(transactions: [NSPersistentHistoryTransaction], within: ObvContext) {} - public func deleteHistoryConcerningTheAcknowledgementOfOutboxMessage(messageIdentifier: MessageIdentifier, flowId: FlowIdentifier) async {} + public func deleteHistoryConcerningTheAcknowledgementOfOutboxMessage(messageIdentifier: ObvMessageIdentifier, flowId: FlowIdentifier) async {} public func deleteHistoryConcerningTheAcknowledgementOfOutboxMessages(withTimestampFromServerEarlierOrEqualTo referenceDate: Date, flowId: FlowIdentifier) async {} diff --git a/Engine/ObvOperation/ObvOperation/Operations/ObvOperation.swift b/Engine/ObvOperation/ObvOperation/Operations/ObvOperation.swift index dcf34910..d72abe46 100644 --- a/Engine/ObvOperation/ObvOperation/Operations/ObvOperation.swift +++ b/Engine/ObvOperation/ObvOperation/Operations/ObvOperation.swift @@ -28,7 +28,7 @@ import ObvCrypto static let defaultLogSubsystem = "io.olvid.operation" private let log = OSLog(subsystem: ObvOperation.defaultLogSubsystem, category: "ObvOperation") - open var className: String { return "ObvOperation" } + open var debugClassName: String { return "ObvOperation" } private static let internalDispatchQueue = DispatchQueue.init(label: "io.olvid.obvoperation.internal") @@ -134,7 +134,7 @@ import ObvCrypto let uid: UID? // This is essentially to prevent the execution of two `ObvOperation`s with the same uid lazy public var operationIdentifier: ObvOperationIdentifier? = { guard let uid = uid else { return nil } - return ObvOperationIdentifier.init(className: className, uid: uid) + return ObvOperationIdentifier.init(className: debugClassName, uid: uid) }() private static var identifiersOfOperationsCurrentlyExecuting = Set() @@ -239,7 +239,7 @@ import ObvCrypto /// This method is called by the operation queue override public final func start() { - os_log("This ObvOperation did start: %@", log: log, type: .debug, self.operationIdentifier?.debugDescription ?? self.className) + os_log("This ObvOperation did start: %@", log: log, type: .debug, self.operationIdentifier?.debugDescription ?? self.debugClassName) guard state == .Ready else { os_log("An ObvOperation must be queued on an operation queue", log: log, type: .fault) @@ -295,7 +295,7 @@ import ObvCrypto delegate?.operationDidFinish(operation: self) - os_log("ObvOperation did finish: %@", log: log, type: .debug, self.operationIdentifier?.debugDescription ?? self.className) + os_log("ObvOperation did finish: %@", log: log, type: .debug, self.operationIdentifier?.debugDescription ?? self.debugClassName) } } } diff --git a/Engine/ObvOperation/ObvOperation/Operations/ObvOperationWithPriorityWrapper.swift b/Engine/ObvOperation/ObvOperation/Operations/ObvOperationWithPriorityWrapper.swift index fdffb590..72246348 100644 --- a/Engine/ObvOperation/ObvOperation/Operations/ObvOperationWithPriorityWrapper.swift +++ b/Engine/ObvOperation/ObvOperation/Operations/ObvOperationWithPriorityWrapper.swift @@ -23,8 +23,8 @@ import os.log open class ObvOperationWithPriorityWrapper: ObvOperationWithPriority, OperationDelegate { - override open var className: String { - return "ObvOperationWithPriorityWrapper<\(wrappedOperation.className)>" + open override var debugClassName: String { + return "ObvOperationWithPriorityWrapper<\(wrappedOperation.debugClassName)>" } let log = OSLog(subsystem: ObvOperation.defaultLogSubsystem, category: "ObvOperationWithPriorityWrapper") diff --git a/Engine/ObvOperation/ObvOperation/Operations/ObvOperationWrapper.swift b/Engine/ObvOperation/ObvOperation/Operations/ObvOperationWrapper.swift index 911ba49a..d84378c8 100644 --- a/Engine/ObvOperation/ObvOperation/Operations/ObvOperationWrapper.swift +++ b/Engine/ObvOperation/ObvOperation/Operations/ObvOperationWrapper.swift @@ -22,8 +22,8 @@ import os.log open class ObvOperationWrapper: ObvOperation { - override open var className: String { - return "ObvOperationWrapper<\(wrappedOperation.className)>" + override open var debugClassName: String { + return "ObvOperationWrapper<\(wrappedOperation.debugClassName)>" } let log = OSLog(subsystem: ObvOperation.defaultLogSubsystem, category: "ObvOperationWrapper") @@ -118,6 +118,6 @@ open class ObvOperationWrapper: ObvOperat } deinit { - os_log("This wrapper operation will deinit: %@", log: log, type: .debug, className) + os_log("This wrapper operation will deinit: %@", log: log, type: .debug, debugClassName) } } diff --git a/Engine/ObvOperation/ObvOperation/Queue/ObvOperationNoDuplicateQueue.swift b/Engine/ObvOperation/ObvOperation/Queue/ObvOperationNoDuplicateQueue.swift index 1cfd6452..a1db920b 100644 --- a/Engine/ObvOperation/ObvOperation/Queue/ObvOperationNoDuplicateQueue.swift +++ b/Engine/ObvOperation/ObvOperation/Queue/ObvOperationNoDuplicateQueue.swift @@ -23,8 +23,8 @@ import ObvCrypto private class ObvOperationWrapperForNoDuplicateQueue: ObvOperationWrapper { - override var className: String { - return "ObvOperationWrapperForNoDuplicateQueue<\(String(describing: wrappedOperation.className))>" + override var debugClassName: String { + return "ObvOperationWrapperForNoDuplicateQueue<\(String(describing: wrappedOperation.debugClassName))>" } weak var queue: ObvOperationNoDuplicateQueue? diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Coordinators/ContactTrustLevelWatcher.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Coordinators/ContactTrustLevelWatcher.swift index c5011980..6ee9cb09 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Coordinators/ContactTrustLevelWatcher.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Coordinators/ContactTrustLevelWatcher.swift @@ -137,7 +137,7 @@ final class ContactTrustLevelWatcher { } do { - _ = try channelDelegate.post(protocolMessageToSend, randomizedWith: _self.prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(protocolMessageToSend, randomizedWith: _self.prng, within: obvContext) } catch { os_log("Could not post message", log: log, type: .fault) return @@ -220,7 +220,7 @@ final class ContactTrustLevelWatcher { } do { - _ = try channelDelegate.post(protocolMessageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(protocolMessageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not post message", log: log, type: .fault) return diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Coordinators/ProtocolStarterCoordinator.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Coordinators/ProtocolStarterCoordinator.swift index 318c43fb..bad96b04 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Coordinators/ProtocolStarterCoordinator.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Coordinators/ProtocolStarterCoordinator.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -51,111 +51,32 @@ final class ProtocolStarterCoordinator: ProtocolStarterDelegate { self.prng = prng } + + public func finalizeInitialization(flowId: FlowIdentifier, runningLog: RunningLogError) { + observeNotifications() + } + deinit { notificationCenterTokens.forEach { delegateManager?.notificationDelegate?.removeObserver($0) } } - - // MARK: - Observer notifications - - func tryToObserveIdentityNotifications() { - if let delegateManager = delegateManager, - delegateManager.contextCreator != nil, - let notificationDelegate = delegateManager.notificationDelegate, - delegateManager.identityDelegate != nil, - delegateManager.channelDelegate != nil, - delegateManager.solveChallengeDelegate != nil { - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - - // Listening to `NewContactDevice` notifications - notificationCenterTokens.append(ObvIdentityNotificationNew.observeNewContactDevice(within: notificationDelegate) { [weak self] (ownedIdentity, contactIdentity, contactDeviceUid, flowId) in - os_log("We received a New Contact Device notification", log: log, type: .debug) - do { - try self?.processNewContactDeviceNotification(ownedIdentity: ownedIdentity, - contactIdentity: contactIdentity, - contactDeviceUid: contactDeviceUid, - within: flowId) - } catch { - os_log("Could not process a New Contact Device notification", log: log, type: .fault) - } + private func observeNotifications() { + guard let notificationDelegate = delegateManager?.notificationDelegate else { assertionFailure(); return } + notificationCenterTokens.append(contentsOf: [ + notificationDelegate.addObserverOfOwnedIdentityTransferProtocolNotification(.ownedIdentityTransferProtocolFailed { [weak self] payload in + self?.postAbortMessageForOwnedIdentityTransferProtocol(ownedCryptoIdentity: payload.ownedCryptoIdentity, protocolInstanceUID: payload.protocolInstanceUID) + ObvProtocolNotification.anOwnedIdentityTransferProtocolFailed(ownedCryptoIdentity: payload.ownedCryptoIdentity, protocolInstanceUID: payload.protocolInstanceUID, error: payload.error) + .postOnBackgroundQueue(within: notificationDelegate) }) - - do { - let token = ObvIdentityNotificationNew.observeContactIdentityIsNowTrusted(within: notificationDelegate) { [weak self] (contactIdentity, ownedIdentity, flowId) in - do { - try self?.startDeviceDiscoveryProtocolOfContactIdentity(contactIdentity, forOwnedIdentity: ownedIdentity, within: flowId) - } catch { - os_log("Could not process a ContactIdentityIsNowTrusted notification", log: log, type: .fault) - } - } - notificationCenterTokens.append(token) - } - - } - } - - // MARK: - Process notifications - - private func processNewContactDeviceNotification(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactDeviceUid: UID, within flowId: FlowIdentifier) throws { - - try startChannelCreationWithContactDeviceProtocolBetweenTheCurrentDeviceOf(ownedIdentity, - andTheDeviceUid: contactDeviceUid, - ofTheContactIdentity: contactIdentity, - within: flowId) - + ]) } } // MARK: - Implementing ProtocolStarterDelegate -extension ProtocolStarterCoordinator { - - func startDeviceDiscoveryProtocolOfContactIdentity(_ contactIdentity: ObvCryptoIdentity, forOwnedIdentity ownedIdentity: ObvCryptoIdentity, within flowId: FlowIdentifier) throws { - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - - guard let contextCreator = delegateManager.contextCreator else { - assertionFailure() - os_log("The context creator is not set", log: log, type: .fault) - throw Self.makeError(message: "The context creator is not set") - } - - guard let channelDelegate = delegateManager.channelDelegate else { - assertionFailure() - os_log("The channel delegate is not set", log: log, type: .fault) - throw Self.makeError(message: "The channel delegate is not set") - } - - let protocolInstanceUid = UID.gen(with: prng) - let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .DeviceDiscoveryForContactIdentity, - protocolInstanceUid: protocolInstanceUid) - guard let messageToSend = DeviceDiscoveryForContactIdentityProtocol.InitialMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentity).generateObvChannelProtocolMessageToSend(with: prng) else { - assertionFailure() - os_log("Could create generic protocol message to send", log: log, type: .fault) - throw Self.makeError(message: "Could create generic protocol message to send") - } - let prng = self.prng - - var error: Error? = nil - contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - // Create the initial message to send to this new protocol instance and "send" it - do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) - try obvContext.save(logOnFailure: log) - } catch let _error { - error = _error - } - } - guard error == nil else { - throw error! - } - - } - +extension ProtocolStarterCoordinator { func getInitialMessageForTrustEstablishmentProtocol(of contactIdentity: ObvCryptoIdentity, withFullDisplayName contactFullDisplayName: String, forOwnedIdentity ownedIdentity: ObvCryptoIdentity, withOwnedIdentityCoreDetails ownIdentityCoreDetails: ObvIdentityCoreDetails, usingProtocolInstanceUid protocolInstanceUid: UID) throws -> ObvChannelProtocolMessageToSend { @@ -163,7 +84,7 @@ extension ProtocolStarterCoordinator { // Start the updated version of the TrustEstablishmentProtocol let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .TrustEstablishmentWithSAS, + cryptoProtocolId: .trustEstablishmentWithSAS, protocolInstanceUid: protocolInstanceUid) let initialMessage = TrustEstablishmentWithSASProtocol.InitialMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentity, @@ -177,9 +98,9 @@ extension ProtocolStarterCoordinator { return initialMessageToSend } - - - func getInitialMessageForContactMutualIntroductionProtocol(of identity1: ObvCryptoIdentity, withIdentityCoreDetails details1: ObvIdentityCoreDetails, with identity2: ObvCryptoIdentity, withOtherIdentityCoreDetails details2: ObvIdentityCoreDetails, byOwnedIdentity ownedIdentity: ObvCryptoIdentity, usingProtocolInstanceUid protocolInstanceUid: UID) throws -> ObvChannelProtocolMessageToSend { + + + func getInitialMessageForContactMutualIntroductionProtocol(of identity1: ObvCryptoIdentity, with identity2: ObvCryptoIdentity, byOwnedIdentity ownedIdentity: ObvCryptoIdentity, usingProtocolInstanceUid protocolInstanceUid: UID) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) @@ -188,101 +109,53 @@ extension ProtocolStarterCoordinator { protocolInstanceUid: protocolInstanceUid) let initialMessage = ContactMutualIntroductionProtocol.InitialMessage(coreProtocolMessage: coreMessage, contactIdentityA: identity1, - contactIdentityCoreDetailsA: details1, - contactIdentityB: identity2, - contactIdentityCoreDetailsB: details2) + contactIdentityB: identity2) guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure() os_log("Could create generic protocol message to send", log: log, type: .fault) throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } return initialMessageToSend - + } - - func startChannelCreationWithContactDeviceProtocolBetweenTheCurrentDeviceOf(_ ownedIdentity: ObvCryptoIdentity, andTheDeviceUid contactDeviceUid: UID, ofTheContactIdentity contactIdentity: ObvCryptoIdentity, within flowId: FlowIdentifier) throws { + + func getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity ownedIdentity: ObvCryptoIdentity, andTheDeviceUid contactDeviceUid: UID, ofTheContactIdentity contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - - os_log("Call to startChannelCreationWithContactDeviceProtocolBetweenTheCurrentDeviceOf", log: log, type: .debug) - - guard let contextCreator = delegateManager.contextCreator else { - assertionFailure() - os_log("The context creator is not set", log: log, type: .fault) - throw Self.makeError(message: "The context creator is not set") - } - guard let identityDelegate = delegateManager.identityDelegate else { - assertionFailure() - os_log("The identity delegate is not set", log: log, type: .fault) - throw Self.makeError(message: "The identity delegate is not set") - } + os_log("🛟 [%{public}@] Call to getInitialMessageForChannelCreationWithContactDeviceProtocol with contact", log: log, type: .info, contactIdentity.debugDescription) - guard let channelDelegate = delegateManager.channelDelegate else { + let protocolInstanceUid = UID.gen(with: prng) + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), + cryptoProtocolId: .channelCreationWithContactDevice, + protocolInstanceUid: protocolInstanceUid) + let initialMessage = ChannelCreationWithContactDeviceProtocol.InitialMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid) + guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure() - os_log("The channel delegate is not set", log: log, type: .fault) - throw Self.makeError(message: "The channel delegate is not set") - } - - var error: Error? = nil - contextCreator.performBackgroundTaskAndWait(flowId: flowId) { (obvContext) in - // We only start a channel creation if the contact is trusted by the owned identity (i.e. is part of the ContactIdentity database for the owned identity), if the contactDeviceUid indeed correspond to a device of the contact, and if a confirmed channel does not already exist - - guard (try? identityDelegate.isIdentity(contactIdentity, aContactIdentityOfTheOwnedIdentity: ownedIdentity, within: obvContext)) == true else { - os_log("The contact is not trusted yet, we do not trigger an Oblivious Channel Creation", log: log, type: .error) - return - } - - guard (try? identityDelegate.isContactIdentityActive(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, within: obvContext)) == true else { - os_log("The contact is inactive, we do not trigger an Oblivious Channel Creation", log: log, type: .error) - return - } - - do { - let contactDeviceUids = try identityDelegate.getDeviceUidsOfContactIdentity(contactIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) - guard contactDeviceUids.contains(contactDeviceUid) else { - os_log("The device uid is not part the contact's device uids", log: log, type: .error) - return - } - - guard try channelDelegate.aConfirmedObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, andRemoteIdentity: contactIdentity, withRemoteDeviceUid: contactDeviceUid, within: obvContext) == false else { - os_log("A confirmed Oblivious Channel already exist, we do not trigger an Oblivious Channel Creation", log: log, type: .debug) - return - } - - // Start a Create the initial message to send to this new protocol instance and "send" it - - let initialMessageToSend = try getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity: ownedIdentity, andTheDeviceUid: contactDeviceUid, ofTheContactIdentity: contactIdentity) - _ = try channelDelegate.post(initialMessageToSend, randomizedWith: prng, within: obvContext) - - try obvContext.save(logOnFailure: log) - } catch let _error { - error = _error - } - } - guard error == nil else { - throw error! + os_log("Could create generic protocol message to send", log: log, type: .fault) + throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - + return initialMessageToSend } - func getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity ownedIdentity: ObvCryptoIdentity, andTheDeviceUid contactDeviceUid: UID, ofTheContactIdentity contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { + func getInitialMessageForChannelCreationWithOwnedDeviceProtocol(ownedIdentity: ObvCryptoIdentity, remoteDeviceUid: UID) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .ChannelCreationWithContactDevice, + cryptoProtocolId: .channelCreationWithOwnedDevice, protocolInstanceUid: protocolInstanceUid) - let initialMessage = ChannelCreationWithContactDeviceProtocol.InitialMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid) + let initialMessage = ChannelCreationWithOwnedDeviceProtocol.InitialMessage(coreProtocolMessage: coreMessage, remoteDeviceUid: remoteDeviceUid) guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure() os_log("Could create generic protocol message to send", log: log, type: .fault) throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } return initialMessageToSend + } @@ -302,7 +175,7 @@ extension ProtocolStarterCoordinator { let protocolInstanceUid = groupInformationWithPhoto.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUid) let initialMessage = GroupManagementProtocol.GroupMembersChangedTriggerMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation) @@ -315,15 +188,15 @@ extension ProtocolStarterCoordinator { } - + func getInitiateGroupCreationMessageForGroupManagementProtocol(groupCoreDetails: ObvGroupCoreDetails, photoURL: URL?, pendingGroupMembers: Set, ownedIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { - + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) guard let contextCreator = delegateManager.contextCreator else { throw makeError(message: "The context creator is not set") } guard let identityDelegate = delegateManager.identityDelegate else { throw makeError(message: "The identity delegate is not set") } - + let randomFlowId = FlowIdentifier() try contextCreator.performBackgroundTaskAndWaitOrThrow(flowId: randomFlowId) { (obvContext) in for member in pendingGroupMembers { @@ -337,14 +210,14 @@ extension ProtocolStarterCoordinator { } } } - + let groupDetailsElements = GroupDetailsElements(version: 0, coreDetails: groupCoreDetails, photoServerKeyAndLabel: nil) let groupUid = UID.gen(with: prng) let groupInformationWithPhoto = try GroupInformationWithPhoto(groupOwnerIdentity: ownedIdentity, groupUid: groupUid, groupDetailsElements: groupDetailsElements, photoURL: photoURL) let protocolInstanceUid = groupInformationWithPhoto.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUid) let initialMessage = GroupManagementProtocol.InitiateGroupCreationMessage(coreProtocolMessage: coreMessage, groupInformationWithPhoto: groupInformationWithPhoto, @@ -357,29 +230,65 @@ extension ProtocolStarterCoordinator { } + func getDisbandGroupMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + + guard let identityDelegate = delegateManager.identityDelegate else { + assertionFailure() + os_log("The identity delegate is not set", log: log, type: .fault) + throw Self.makeError(message: "The identity delegate is not set") + } + + guard let groupStructure = try identityDelegate.getGroupOwnedStructure(ownedIdentity: ownedIdentity, groupUid: groupUid, within: obvContext) else { + throw Self.makeError(message: "Could not get group owned structure") + } + + guard groupStructure.groupType == .owned else { + throw Self.makeError(message: "The group type is not owned") + } + + let groupInformationWithPhoto = try identityDelegate.getGroupOwnedInformationAndPublishedPhoto(ownedIdentity: ownedIdentity, groupUid: groupUid, within: obvContext) + + let protocolInstanceUid = groupInformationWithPhoto.associatedProtocolUid + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), + cryptoProtocolId: .groupManagement, + protocolInstanceUid: protocolInstanceUid) + let initialMessage = GroupManagementProtocol.DisbandGroupMessage(coreProtocolMessage: coreMessage, + groupInformation: groupInformationWithPhoto.groupInformation) + guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + assertionFailure() + os_log("Could create generic protocol message to send", log: log, type: .fault) + throw Self.makeError(message: "Could create generic protocol message to send") + } + return initialMessageToSend + + } + + func getAddGroupMembersMessageForAddingMembersToContactGroupOwnedUsingGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, newGroupMembers: Set, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + guard let identityDelegate = delegateManager.identityDelegate else { assertionFailure() os_log("The identity delegate is not set", log: log, type: .fault) throw Self.makeError(message: "The identity delegate is not set") } - + guard let groupStructure = try identityDelegate.getGroupOwnedStructure(ownedIdentity: ownedIdentity, groupUid: groupUid, within: obvContext) else { throw Self.makeError(message: "Could not get group owned structure") } - + guard groupStructure.groupType == .owned else { throw Self.makeError(message: "The group type is not owned") } - + let groupInformationWithPhoto = try identityDelegate.getGroupOwnedInformationAndPublishedPhoto(ownedIdentity: ownedIdentity, groupUid: groupUid, within: obvContext) - + let protocolInstanceUid = groupInformationWithPhoto.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUid) let initialMessage = GroupManagementProtocol.AddGroupMembersMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation, @@ -397,7 +306,7 @@ extension ProtocolStarterCoordinator { func getRemoveGroupMembersMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, removedGroupMembers: Set, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + let initialMessage = try getRemoveGroupMembersMessageForStartingGroupManagementProtocol( groupUid: groupUid, ownedIdentity: ownedIdentity, @@ -410,7 +319,7 @@ extension ProtocolStarterCoordinator { throw Self.makeError(message: "Could create generic protocol message to send") } return initialMessageToSend - + } @@ -438,18 +347,18 @@ extension ProtocolStarterCoordinator { if simulateReceivedMessage { coreMessage = CoreProtocolMessage.getLocalCoreProtocolMessageForSimulatingReceivedMessage( ownedIdentity: ownedIdentity, - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUid) } else { coreMessage = CoreProtocolMessage( channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUid) } let initialMessage = GroupManagementProtocol.RemoveGroupMembersMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation, removedGroupMembers: removedGroupMembers) - + return initialMessage } @@ -461,7 +370,7 @@ extension ProtocolStarterCoordinator { let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .IdentityDetailsPublication, + cryptoProtocolId: .identityDetailsPublication, protocolInstanceUid: protocolInstanceUid) let initialMessage = IdentityDetailsPublicationProtocol.InitialMessage(coreProtocolMessage: coreMessage, version: publishedIdentityDetailsVersion) guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -469,22 +378,22 @@ extension ProtocolStarterCoordinator { throw makeError(message: "Could create generic protocol message to send for starting an IdentityDetailsPublicationProtocol") } return initialMessageToSend - + } - + func getLeaveGroupJoinedMessageForGroupManagementProtocol(ownedIdentity: ObvCryptoIdentity, groupUid: UID, groupOwner: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + let initialMessage = try getLeaveGroupJoinedMessageForStartingGroupManagementProtocol(ownedIdentity: ownedIdentity, groupUid: groupUid, groupOwner: groupOwner, simulateReceivedMessage: false, within: obvContext) - + guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { os_log("Could create generic protocol message to send", log: log, type: .fault) throw Self.makeError(message: "Could create generic protocol message to send") } return initialMessageToSend - + } @@ -515,46 +424,29 @@ extension ProtocolStarterCoordinator { if simulateReceivedMessage { coreMessage = CoreProtocolMessage.getLocalCoreProtocolMessageForSimulatingReceivedMessage( ownedIdentity: ownedIdentity, - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUid) } else { coreMessage = CoreProtocolMessage( channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUid) } let initialMessage = GroupManagementProtocol.LeaveGroupJoinedMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation) return initialMessage - + } - - func getInitiateContactDeletionMessageForContactManagementProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentityToDelete: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - let protocolInstanceUid = UID.gen(with: prng) - let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .ContactManagement, - protocolInstanceUid: protocolInstanceUid) - let initialMessage = ContactManagementProtocol.InitiateContactDeletionMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentityToDelete) - guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { - os_log("Could create generic protocol message to send", log: log, type: .fault) - throw Self.makeError(message: "Could create generic protocol message to send") - } - return initialMessageToSend - - } - func getInitiateAddKeycloakContactMessageForKeycloakContactAdditionProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentityToAdd: ObvCryptoIdentity, signedContactDetails: String) throws -> ObvChannelProtocolMessageToSend { - + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .KeycloakContactAddition, + cryptoProtocolId: .keycloakContactAddition, protocolInstanceUid: protocolInstanceUid) let initialMessage = KeycloakContactAdditionProtocol.InitialMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentityToAdd, signedContactDetails: signedContactDetails) guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -562,9 +454,9 @@ extension ProtocolStarterCoordinator { throw Self.makeError(message: "Could create generic protocol message to send") } return initialMessageToSend - + } - + func getInitiateGroupMembersQueryMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, groupOwner: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend { @@ -580,7 +472,7 @@ extension ProtocolStarterCoordinator { let protocolInstanceUid = groupInformationWithPhoto.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUid) let initialMessage = GroupManagementProtocol.InitiateGroupMembersQueryMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation) guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -600,12 +492,12 @@ extension ProtocolStarterCoordinator { os_log("The identity delegate is not set", log: log, type: .fault) throw ProtocolStarterCoordinator.makeError(message: "The identity delegate is not set") } - + let groupInformationWithPhoto = try identityDelegate.getGroupOwnedInformationAndPublishedPhoto(ownedIdentity: ownedIdentity, groupUid: groupUid, within: obvContext) - + let protocolInstanceUid = groupInformationWithPhoto.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUid) let initialMessage = GroupManagementProtocol.TriggerReinviteMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation, memberIdentity: memberIdentity) guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -613,34 +505,34 @@ extension ProtocolStarterCoordinator { throw ProtocolStarterCoordinator.makeError(message: "Could not generate ObvChannelProtocolMessageToSend instance for a TriggerReinviteAndUpdateMembersMessage") } return initialMessageToSend - + } - func getInitialMessageForDeviceDiscoveryForContactIdentityProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { + func getInitialMessageForContactDeviceDiscoveryProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .DeviceDiscoveryForContactIdentity, + cryptoProtocolId: .contactDeviceDiscovery, protocolInstanceUid: protocolInstanceUid) - let initialMessage = DeviceDiscoveryForContactIdentityProtocol.InitialMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentity) + let initialMessage = ContactDeviceDiscoveryProtocol.InitialMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentity) guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { os_log("Could create generic protocol message to send", log: log, type: .fault) throw ProtocolStarterCoordinator.makeError(message: "Could create generic protocol message to send") } return initialMessageToSend - + } - + func getInitialMessageForDownloadIdentityPhotoChildProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactIdentityDetailsElements: IdentityDetailsElements) throws -> ObvChannelProtocolMessageToSend { - + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .DownloadIdentityPhoto, - protocolInstanceUid: protocolInstanceUid) + cryptoProtocolId: .downloadIdentityPhoto, + protocolInstanceUid: protocolInstanceUid) let initialMessage = DownloadIdentityPhotoChildProtocol.InitialMessage( coreProtocolMessage: coreMessage, contactIdentity: contactIdentity, @@ -651,14 +543,14 @@ extension ProtocolStarterCoordinator { } return initialMessageToSend } - + func getInitialMessageForDownloadGroupPhotoChildProtocol(ownedIdentity: ObvCryptoIdentity, groupInformation: GroupInformation) throws -> ObvChannelProtocolMessageToSend { - + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .DownloadGroupPhoto, + cryptoProtocolId: .downloadGroupPhoto, protocolInstanceUid: protocolInstanceUid) let initialMessage = DownloadGroupPhotoChildProtocol.InitialMessage.init(coreProtocolMessage: coreMessage, groupInformation: groupInformation) guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -670,10 +562,10 @@ extension ProtocolStarterCoordinator { func getInitialMessageForTrustEstablishmentWithMutualScanProtocol(ownedIdentity: ObvCryptoIdentity, remoteIdentity: ObvCryptoIdentity, signature: Data) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .TrustEstablishmentWithMutualScan, + cryptoProtocolId: .trustEstablishmentWithMutualScan, protocolInstanceUid: protocolInstanceUid) let initialMessage = TrustEstablishmentWithMutualScanProtocol.InitialMessage(coreProtocolMessage: coreMessage, contactIdentity: remoteIdentity, signature: signature) guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -687,10 +579,10 @@ extension ProtocolStarterCoordinator { func getInitialMessageForAddingOwnCapabilities(ownedIdentity: ObvCryptoIdentity, newOwnCapabilities: Set) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .ContactCapabilitiesDiscovery, + cryptoProtocolId: .contactCapabilitiesDiscovery, protocolInstanceUid: protocolInstanceUid) let message = DeviceCapabilitiesDiscoveryProtocol.InitialForAddingOwnCapabilitiesMessage( coreProtocolMessage: coreMessage, @@ -705,12 +597,12 @@ extension ProtocolStarterCoordinator { func getInitialMessageForOneToOneContactInvitationProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { - + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .OneToOneContactInvitation, + cryptoProtocolId: .oneToOneContactInvitation, protocolInstanceUid: protocolInstanceUid) let message = OneToOneContactInvitationProtocol.InitialMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentity) guard let initialMessageToSend = message.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -719,36 +611,17 @@ extension ProtocolStarterCoordinator { throw ProtocolStarterCoordinator.makeError(message: "Could create generic protocol message to send") } return initialMessageToSend - + } - func getInitialMessageForDowngradingOneToOneContact(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - - let protocolInstanceUid = UID.gen(with: prng) - let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .ContactManagement, - protocolInstanceUid: protocolInstanceUid) - let message = ContactManagementProtocol.InitiateContactDowngradeMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentity) - guard let initialMessageToSend = message.generateObvChannelProtocolMessageToSend(with: prng) else { - os_log("Could create generic protocol message to send", log: log, type: .fault) - assertionFailure() - throw ProtocolStarterCoordinator.makeError(message: "Could create generic protocol message to send") - } - return initialMessageToSend - - } - - func getInitialMessageForOneStatusSyncRequest(ownedIdentity: ObvCryptoIdentity, contactsToSync: Set) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .OneToOneContactInvitation, + cryptoProtocolId: .oneToOneContactInvitation, protocolInstanceUid: protocolInstanceUid) let message = OneToOneContactInvitationProtocol.InitialOneToOneStatusSyncRequestMessage(coreProtocolMessage: coreMessage, contactsToSync: contactsToSync) guard let initialMessageToSend = message.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -757,18 +630,18 @@ extension ProtocolStarterCoordinator { throw ProtocolStarterCoordinator.makeError(message: "Could create generic protocol message to send") } return initialMessageToSend - + } // MARK: - Groups V2 func getInitiateGroupCreationMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, ownRawPermissions: Set, otherGroupMembers: Set, serializedGroupCoreDetails: Data, photoURL: URL?, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { - + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupV2, + cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) let initialMessage = GroupV2Protocol.InitiateGroupCreationMessage(coreProtocolMessage: coreMessage, ownRawPermissions: ownRawPermissions, @@ -781,15 +654,15 @@ extension ProtocolStarterCoordinator { } return initialMessageToSend } - + func getInitiateGroupUpdateMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, changeset: ObvGroupV2.Changeset, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { - + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) let protocolInstanceUid = try groupIdentifier.computeProtocolInstanceUid() let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupV2, + cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) let initialMessage = GroupV2Protocol.InitiateGroupUpdateMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, @@ -800,10 +673,30 @@ extension ProtocolStarterCoordinator { } return initialMessageToSend } - + + + func getInitialMessageForDownloadGroupV2PhotoProtocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, serverPhotoInfo: GroupV2.ServerPhotoInfo) throws -> ObvChannelProtocolMessageToSend { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + + let protocolInstanceUid = UID.gen(with: prng) + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), + cryptoProtocolId: .downloadGroupV2Photo, + protocolInstanceUid: protocolInstanceUid) + let initialMessage = DownloadGroupV2PhotoProtocol.InitialMessage( + coreProtocolMessage: coreMessage, + groupIdentifier: groupIdentifier, + serverPhotoInfo: serverPhotoInfo) + guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + os_log("Could create generic protocol message to send", log: log, type: .fault) + throw makeError(message: "Could create generic protocol message to send") + } + return initialMessageToSend + } + func getInitiateGroupLeaveMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { - + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) let initialMessage = try getInitiateGroupLeaveMessageForStartingGroupV2Protocol( @@ -828,18 +721,18 @@ extension ProtocolStarterCoordinator { if simulateReceivedMessage { coreMessage = CoreProtocolMessage.getLocalCoreProtocolMessageForSimulatingReceivedMessage( ownedIdentity: ownedIdentity, - cryptoProtocolId: .GroupV2, + cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) } else { coreMessage = CoreProtocolMessage( channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupV2, + cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) } let initialMessage = GroupV2Protocol.InitiateGroupLeaveMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier) - + return initialMessage } @@ -851,7 +744,7 @@ extension ProtocolStarterCoordinator { let protocolInstanceUid = try groupIdentifier.computeProtocolInstanceUid() let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupV2, + cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) let initialMessage = GroupV2Protocol.InitiateGroupReDownloadMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier) guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -859,14 +752,14 @@ extension ProtocolStarterCoordinator { throw makeError(message: "Could create generic protocol message to send") } return initialMessageToSend - + } - + func getInitiateInitiateGroupDisbandMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + let initialMessage = try getInitiateInitiateGroupDisbandMessageForStartingGroupV2Protocol( ownedIdentity: ownedIdentity, groupIdentifier: groupIdentifier, @@ -877,9 +770,9 @@ extension ProtocolStarterCoordinator { throw makeError(message: "Could create generic protocol message to send") } return initialMessageToSend - + } - + func getInitiateInitiateGroupDisbandMessageForStartingGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, simulateReceivedMessage: Bool, flowId: FlowIdentifier) throws -> GroupV2Protocol.InitiateGroupDisbandMessage { @@ -888,50 +781,50 @@ extension ProtocolStarterCoordinator { if simulateReceivedMessage { coreMessage = CoreProtocolMessage.getLocalCoreProtocolMessageForSimulatingReceivedMessage( ownedIdentity: ownedIdentity, - cryptoProtocolId: .GroupV2, + cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) } else { coreMessage = CoreProtocolMessage( channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupV2, + cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) } let initialMessage = GroupV2Protocol.InitiateGroupDisbandMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier) - + return initialMessage } - - func getInitiateBatchKeysResendMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactDeviceUID: UID, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { + + func getInitiateBatchKeysResendMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, remoteIdentity: ObvCryptoIdentity, remoteDeviceUID: UID, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) // Even if we are dealing with a step of the GroupV2 protocol, we do not need a specific protocol instance UID (since this would make no sense in that specific case) let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupV2, + cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) - let initialMessage = GroupV2Protocol.InitiateBatchKeysResendMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentity, contactDeviceUID: contactDeviceUID) + let initialMessage = GroupV2Protocol.InitiateBatchKeysResendMessage(coreProtocolMessage: coreMessage, remoteIdentity: remoteIdentity, remoteDeviceUID: remoteDeviceUID) guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { os_log("Could create generic protocol message to send", log: log, type: .fault) throw makeError(message: "Could create generic protocol message to send") } return initialMessageToSend - + } - + // MARK: - Keycloak pushed groups - + func getInitiateUpdateKeycloakGroupsMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, signedGroupBlobs: Set, signedGroupDeletions: Set, signedGroupKicks: Set, keycloakCurrentTimestamp: Date, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + // Even if we are dealing with a step of the GroupV2 protocol, we do not need a specific protocol instance UID (since this would make no sense in that specific case) let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupV2, + cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) let initialMessage = GroupV2Protocol.InitiateUpdateKeycloakGroupsMessage(coreProtocolMessage: coreMessage, signedGroupBlobs: signedGroupBlobs, @@ -944,17 +837,17 @@ extension ProtocolStarterCoordinator { throw makeError(message: "Could create generic protocol message to send") } return initialMessageToSend - + } - + func getInitiateTargetedPingMessageForKeycloakGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, pendingMemberIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + let protocolInstanceUid = try groupIdentifier.computeProtocolInstanceUid() let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupV2, + cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) let initialMessage = GroupV2Protocol.InitiateTargetedPingMessage( coreProtocolMessage: coreMessage, @@ -965,27 +858,481 @@ extension ProtocolStarterCoordinator { throw makeError(message: "Could create generic protocol message to send") } return initialMessageToSend - + } // MARK: - OwnedIdentity Deletion Protocol - func getInitiateOwnedIdentityDeletionMessage(ownedCryptoIdentityToDelete: ObvCryptoIdentity, notifyContacts: Bool, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { + func getInitiateOwnedIdentityDeletionMessage(ownedCryptoIdentityToDelete: ObvCryptoIdentity, globalOwnedIdentityDeletion: Bool) throws -> ObvChannelProtocolMessageToSend { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) - + let protocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedCryptoIdentityToDelete), cryptoProtocolId: .ownedIdentityDeletionProtocol, protocolInstanceUid: protocolInstanceUid) - let initialMessage = OwnedIdentityDeletionProtocol.InitiateOwnedIdentityDeletionMessage(coreProtocolMessage: coreMessage, ownedCryptoIdentityToDelete: ownedCryptoIdentityToDelete, notifyContacts: notifyContacts) + let initialMessage = OwnedIdentityDeletionProtocol.InitiateOwnedIdentityDeletionMessage(coreProtocolMessage: coreMessage, globalOwnedIdentityDeletion: globalOwnedIdentityDeletion) + guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + os_log("Could create generic protocol message to send", log: log, type: .fault) + throw makeError(message: "Could create generic protocol message to send") + } + return initialMessageToSend + + } + + + // MARK: Contact Device Management protocol + + func getInitiateContactDeletionMessageForContactManagementProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentityToDelete: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + + let protocolInstanceUid = UID.gen(with: prng) + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), + cryptoProtocolId: .contactManagement, + protocolInstanceUid: protocolInstanceUid) + let initialMessage = ContactManagementProtocol.InitiateContactDeletionMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentityToDelete) + guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + os_log("Could create generic protocol message to send", log: log, type: .fault) + throw Self.makeError(message: "Could create generic protocol message to send") + } + return initialMessageToSend + + } + + + func getInitialMessageForDowngradingOneToOneContact(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + + let protocolInstanceUid = UID.gen(with: prng) + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), + cryptoProtocolId: .contactManagement, + protocolInstanceUid: protocolInstanceUid) + let message = ContactManagementProtocol.InitiateContactDowngradeMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentity) + guard let initialMessageToSend = message.generateObvChannelProtocolMessageToSend(with: prng) else { + os_log("Could create generic protocol message to send", log: log, type: .fault) + assertionFailure() + throw ProtocolStarterCoordinator.makeError(message: "Could create generic protocol message to send") + } + return initialMessageToSend + + } + + + + // MARK: - Owned device protocols + + func getInitiateOwnedDeviceDiscoveryMessage(ownedCryptoIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + + let protocolInstanceUid = UID.gen(with: prng) + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedCryptoIdentity), + cryptoProtocolId: .ownedDeviceDiscovery, + protocolInstanceUid: protocolInstanceUid) + let initialMessage = OwnedDeviceDiscoveryProtocol.InitiateOwnedDeviceDiscoveryMessage(coreProtocolMessage: coreMessage) + guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + os_log("Could create generic protocol message to send", log: log, type: .fault) + throw makeError(message: "Could create generic protocol message to send") + } + return initialMessageToSend + } + + + func getInitiateOwnedDeviceManagementMessage(ownedCryptoIdentity: ObvCryptoIdentity, request: ObvOwnedDeviceManagementRequest) throws -> ObvChannelProtocolMessageToSend { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + + let protocolInstanceUid = UID.gen(with: prng) + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedCryptoIdentity), + cryptoProtocolId: .ownedDeviceManagement, + protocolInstanceUid: protocolInstanceUid) + let initialMessage = OwnedDeviceManagementProtocol.InitiateOwnedDeviceManagementMessage( + coreProtocolMessage: coreMessage, + request: request) + guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + os_log("Could create generic protocol message to send", log: log, type: .fault) + throw makeError(message: "Could create generic protocol message to send") + } + return initialMessageToSend + + } + + + + // MARK: - Owned identity transfer protocol + + private func postAbortMessageForOwnedIdentityTransferProtocol(ownedCryptoIdentity: ObvCryptoIdentity, protocolInstanceUID: UID) { + Task { + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedCryptoIdentity), + cryptoProtocolId: .ownedIdentityTransfer, + protocolInstanceUid: protocolInstanceUID) + let initialMessage = OwnedIdentityTransferProtocol.AbortProtocolMessage(coreProtocolMessage: coreMessage) + guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + assertionFailure() + os_log("Could create generic protocol message to send", log: log, type: .fault) + return + } + try? await postChannelMessage(initialMessageToSend, flowId: FlowIdentifier()) + } + } + + + func cancelAllOwnedIdentityTransferProtocols(flowId: FlowIdentifier) async throws { + guard let contextCreator = delegateManager.contextCreator else { throw ObvError.theContextCreatorIsNil } + let identitiesAndUIDs = try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<[(ownedCryptoIdentity: ObvCryptoIdentity, protocolInstanceUID: UID)], Error>) in + contextCreator.performBackgroundTask(flowId: flowId) { obvContext in + do { + let infos = try ProtocolInstance.getAllPrimaryKeysOfOwnedIdentityTransferProtocolInstances(within: obvContext) + continuation.resume(returning: infos) + } catch { + continuation.resume(throwing: error) + } + } + } + identitiesAndUIDs.forEach { (ownedCryptoIdentity, protocolInstanceUID) in + postAbortMessageForOwnedIdentityTransferProtocol(ownedCryptoIdentity: ownedCryptoIdentity, protocolInstanceUID: protocolInstanceUID) + } + } + + + func initiateOwnedIdentityTransferProtocolOnSourceDevice(ownedCryptoIdentity: ObvCryptoIdentity, onAvailableSessionNumber: @escaping (ObvOwnedIdentityTransferSessionNumber) -> Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void, flowId: FlowIdentifier) async throws { + + guard let notificationDelegate = delegateManager.notificationDelegate else { throw ObvError.theNotificationDelegateIsNil } + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + + // Create the InitiateTransferOnSourceDeviceMessage that will allow to start the ownedIdentityTransfer protocol + + let protocolInstanceUID = UID.gen(with: prng) + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedCryptoIdentity), + cryptoProtocolId: .ownedIdentityTransfer, + protocolInstanceUid: protocolInstanceUID) + let message = OwnedIdentityTransferProtocol.InitiateTransferOnSourceDeviceMessage(coreProtocolMessage: coreMessage) + guard let initialMessageToSend = message.generateObvChannelProtocolMessageToSend(with: prng) else { + os_log("Could create generic protocol message to send", log: log, type: .fault) + throw makeError(message: "Could create generic protocol message to send") + } + + + var localTokens = [NSObjectProtocol]() + + // Before starting the protocol: observe the notification sent by this protocol when the session number is available. + // This typically takes longer than the "cancel block", since getting this session number requires a network call to the transfer server. + // Uppon receiving this notification, we pass the session number back to the app using the `onAvailableSessionNumber` callback. + + do { + var token: NSObjectProtocol? + token = notificationDelegate.addObserverOfOwnedIdentityTransferProtocolNotification(.sourceDisplaySessionNumber { payload in + // Make sure the received notification concerns the protocol we launched here. + guard payload.protocolInstanceUID == protocolInstanceUID else { return } + let sessionNumber = payload.sessionNumber + // Remove the observer, since we do not expect to be notified again + notificationDelegate.removeObserver(token!) + // Transfer the session number back to the app + onAvailableSessionNumber(sessionNumber) + }) + localTokens.append(token!) + } + + // Before starting the protocol: observe the notification sent by this protocol when the SAS that we expect the user to enter on + // this source device is available. + + do { + var token: NSObjectProtocol? + token = notificationDelegate.addObserverOfOwnedIdentityTransferProtocolNotification(.waitingForSASOnSourceDevice { payload in + // Make sure the received notification concerns the protocol we launched here. + guard payload.protocolInstanceUID == protocolInstanceUID else { return } + // Remove the observer, since we do not expect to be notified again + notificationDelegate.removeObserver(token!) + // Transfer the sas to the app + onAvailableSASExpectedOnInput(payload.sasExpectedOnInput, payload.targetDeviceName, payload.protocolInstanceUID) + }) + localTokens.append(token!) + } + + + // Now that we observe the two important notifications allowing to call the two callbacks that we received in parameters, + // we can post the protocol message that will start the ownedIdentityTransfer protocol in this source device. + + do { + try await postChannelMessage(initialMessageToSend, flowId: flowId) + notificationCenterTokens.append(contentsOf: localTokens) + } catch { + localTokens.forEach { token in + notificationDelegate.removeObserver(token) + } + throw error + } + + } + + + func initiateOwnedIdentityTransferProtocolOnTargetDevice(currentDeviceName: String, transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void, flowId: FlowIdentifier) async throws { + + guard let notificationDelegate = delegateManager.notificationDelegate else { throw ObvError.theNotificationDelegateIsNil } + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + + // We generate an ephemeral identity valid during the owned identity transfer protocol only + + let authEmplemByteId = ObvCryptoSuite.sharedInstance.getDefaultAuthenticationImplementationByteId() + let pkEncryptionImplemByteId = ObvCryptoSuite.sharedInstance.getDefaultPublicKeyEncryptionImplementationByteId() + + let ephemeralOwnedIdentity = ObvOwnedCryptoIdentity.gen(withServerURL: ObvConstants.ephemeralIdentityServerURL, + forAuthenticationImplementationId: authEmplemByteId, + andPublicKeyEncryptionImplementationByteId: pkEncryptionImplemByteId, + using: prng) + + // Create the InitiateTransferOnTargetDeviceMessage that will allow to start the ownedIdentityTransfer protocol + + let protocolInstanceUID = UID.gen(with: prng) + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ephemeralOwnedIdentity.getObvCryptoIdentity()), + cryptoProtocolId: .ownedIdentityTransfer, + protocolInstanceUid: protocolInstanceUID) + // Note we don't need the ephemeral identity's privateKeyForAuthentication + let message = OwnedIdentityTransferProtocol.InitiateTransferOnTargetDeviceMessage( + coreProtocolMessage: coreMessage, + currentDeviceName: currentDeviceName, + transferSessionNumber: transferSessionNumber, + encryptionPrivateKey: ephemeralOwnedIdentity.privateKeyForPublicKeyEncryption, + macKey: ephemeralOwnedIdentity.secretMACKey) + guard let initialMessageToSend = message.generateObvChannelProtocolMessageToSend(with: prng) else { + os_log("Could create generic protocol message to send", log: log, type: .fault) + throw makeError(message: "Could create generic protocol message to send") + } + + var localTokens = [NSObjectProtocol]() + + // Before starting the protocol: observe the notification sent by this protocol when the transfer session number entered by the user is incorrect. + + do { + var token: NSObjectProtocol? + token = notificationDelegate.addObserverOfOwnedIdentityTransferProtocolNotification(.userEnteredIncorrectTransferSessionNumber(payload: { payload in + // Make sure the received notification concerns the protocol we launched here. + guard payload.protocolInstanceUID == protocolInstanceUID else { return } + // Remove all the observers added here, since we do not expect to be notified again + localTokens.forEach { notificationDelegate.removeObserver($0) } + // Transfer the information to the app + onIncorrectTransferSessionNumber() + })) + localTokens.append(token!) + } + + // Before starting the protocol: observe the notification sent by this protocol when the SAS is available and can be shown on this target device + + do { + var token: NSObjectProtocol? + token = notificationDelegate.addObserverOfOwnedIdentityTransferProtocolNotification(.sasIsAvailable(payload: { payload in + // Make sure the received notification concerns the protocol we launched here. + guard payload.protocolInstanceUID == protocolInstanceUID else { return } + // Remove all the observers added here, since we do not expect to be notified again + localTokens.forEach { notificationDelegate.removeObserver($0) } + // Transfer the information to the app + onAvailableSas(protocolInstanceUID, payload.sas) + })) + localTokens.append(token!) + } + + // Post the protocol message + + do { + try await postChannelMessage(initialMessageToSend, flowId: flowId) + notificationCenterTokens.append(contentsOf: localTokens) + } catch { + localTokens.forEach { token in + notificationDelegate.removeObserver(token) + } + throw error + } + + } + + + /// Called by the app during an owned identity transfer protocol on the target device, when the SAS is shown. The app calls this method to get notified of the various events occuring during the protocol finalisation, + /// like when the snapshot sent by the source device is received on this target device, or when the processing of this snapshot did end. + /// - Parameters: + /// - protocolInstanceUID: The identifier of the currently running owned identity transfer protocol. + /// - onSyncSnapshotReception: The block to call when the snapshot sent by the source device is received on this target device. + func appIsShowingSasAndExpectingEndOfProtocol(protocolInstanceUID: UID, onSyncSnapshotReception: @escaping () -> Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async { + + guard let notificationDelegate = delegateManager.notificationDelegate else { assertionFailure(); return } + + var localTokens = [NSObjectProtocol]() + + do { + var token: NSObjectProtocol? + token = notificationDelegate.addObserverOfOwnedIdentityTransferProtocolNotification(.processingReceivedSnapshotOntargetDevice { payload in + // Make sure the received notification concerns the protocol we launched here. + guard payload.protocolInstanceUID == protocolInstanceUID else { return } + // Transfer the information to the app + onSyncSnapshotReception() + }) + localTokens.append(token!) + } + + do { + var token: NSObjectProtocol? + token = notificationDelegate.addObserverOfOwnedIdentityTransferProtocolNotification(.successfulTransferOnTargetDevice { payload in + // Make sure the received notification concerns the protocol we launched here. + guard payload.protocolInstanceUID == protocolInstanceUID else { return } + // Remove all the observers added here, since we do not expect to be notified again + localTokens.forEach { notificationDelegate.removeObserver($0) } + // Transfer the information to the app + onSuccessfulTransfer(payload.transferredOwnedCryptoId, payload.postTransferError) + }) + localTokens.append(token!) + } + + notificationCenterTokens.append(contentsOf: localTokens) + + } + + + func continueOwnedIdentityTransferProtocolOnUserEnteredSASOnSourceDevice(enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedCryptoId.cryptoIdentity), + cryptoProtocolId: .ownedIdentityTransfer, + protocolInstanceUid: protocolInstanceUID) + let message = OwnedIdentityTransferProtocol.SourceSASInputMessage(coreProtocolMessage: coreMessage, enteredSAS: enteredSAS, deviceUIDToKeepActive: deviceToKeepActive) + guard let initialMessageToSend = message.generateObvChannelProtocolMessageToSend(with: prng) else { + os_log("Could create generic protocol message to send", log: log, type: .fault) + throw makeError(message: "Could create generic protocol message to send") + } + + try await postChannelMessage(initialMessageToSend, flowId: FlowIdentifier()) + + } + + + + // MARK: - Keycloak binding and unbinding + + func getOwnedIdentityKeycloakBindingMessage(ownedCryptoIdentity: ObvCryptoIdentity, keycloakState: ObvKeycloakState, keycloakUserId: String) throws -> ObvChannelProtocolMessageToSend { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + let protocolInstanceUid = UID.gen(with: prng) + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedCryptoIdentity), + cryptoProtocolId: .keycloakBindingAndUnbinding, + protocolInstanceUid: protocolInstanceUid) + let initialMessage = KeycloakBindingAndUnbindingProtocol.OwnedIdentityKeycloakBindingMessage( + coreProtocolMessage: coreMessage, + keycloakState: keycloakState, + keycloakUserId: keycloakUserId) guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { os_log("Could create generic protocol message to send", log: log, type: .fault) throw makeError(message: "Could create generic protocol message to send") } return initialMessageToSend + + } + + func getOwnedIdentityKeycloakUnbindingMessage(ownedCryptoIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + let protocolInstanceUid = UID.gen(with: prng) + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedCryptoIdentity), + cryptoProtocolId: .keycloakBindingAndUnbinding, + protocolInstanceUid: protocolInstanceUid) + let initialMessage = KeycloakBindingAndUnbindingProtocol.OwnedIdentityKeycloakUnbindingMessage(coreProtocolMessage: coreMessage) + guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + os_log("Could create generic protocol message to send", log: log, type: .fault) + throw makeError(message: "Could create generic protocol message to send") + } + return initialMessageToSend + } + + // MARK: - SynchronizationProtocol + + func getInitiateSyncAtomMessageForSynchronizationProtocol(ownedCryptoIdentity: ObvCryptoIdentity, syncAtom: ObvSyncAtom) throws -> ObvChannelProtocolMessageToSend { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + let protocolInstanceUid = UID.gen(with: prng) + let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedCryptoIdentity), + cryptoProtocolId: .synchronization, + protocolInstanceUid: protocolInstanceUid) + let initialMessage = SynchronizationProtocol.InitiateSyncAtomMessage(coreProtocolMessage: coreMessage, syncAtom: syncAtom) + guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + os_log("Could create generic protocol message to send", log: log, type: .fault) + throw makeError(message: "Could create generic protocol message to send") + } + return initialMessageToSend + + } + + +// func getTriggerSyncSnapshotMessageForSynchronizationProtocol(ownedCryptoIdentity: ObvCryptoIdentity, currentDeviceUid: UID, otherOwnedDeviceUid: UID, forceSendSnapshot: Bool) throws -> ObvChannelProtocolMessageToSend { +// +// let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) +// let protocolInstanceUid = try SynchronizationProtocol.computeOngoingProtocolInstanceUid(ownedCryptoId: ownedCryptoIdentity, currentDeviceUid: currentDeviceUid, otherOwnedDeviceUid: otherOwnedDeviceUid) +// let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedCryptoIdentity), +// cryptoProtocolId: .synchronization, +// protocolInstanceUid: protocolInstanceUid) +// let initialMessage = SynchronizationProtocol.TriggerSyncSnapshotMessage(coreProtocolMessage: coreMessage, forceSendSnapshot: forceSendSnapshot) +// guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { +// os_log("Could create generic protocol message to send", log: log, type: .fault) +// throw makeError(message: "Could create generic protocol message to send") +// } +// return initialMessageToSend +// +// } + + +// func getInitiateSyncSnapshotMessageForSynchronizationProtocol(ownedCryptoIdentity: ObvCryptoIdentity, currentDeviceUid: UID, otherOwnedDeviceUid: UID) throws -> ObvChannelProtocolMessageToSend { +// +// let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) +// let protocolInstanceUid = try SynchronizationProtocol.computeOngoingProtocolInstanceUid(ownedCryptoId: ownedCryptoIdentity, currentDeviceUid: currentDeviceUid, otherOwnedDeviceUid: otherOwnedDeviceUid) +// let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedCryptoIdentity), +// cryptoProtocolId: .synchronization, +// protocolInstanceUid: protocolInstanceUid) +// let initialMessage = SynchronizationProtocol.InitiateSyncSnapshotMessage(coreProtocolMessage: coreMessage, otherOwnedDeviceUID: otherOwnedDeviceUid) +// guard let initialMessageToSend = initialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { +// os_log("Could create generic protocol message to send", log: log, type: .fault) +// throw makeError(message: "Could create generic protocol message to send") +// } +// return initialMessageToSend +// +// } + + // MARK: - Helpers + + private func postChannelMessage(_ message: ObvChannelProtocolMessageToSend, flowId: FlowIdentifier) async throws { + + guard let contextCreator = delegateManager.contextCreator else { throw ObvError.theContextCreatorIsNil } + guard let channelDelegate = delegateManager.channelDelegate else { throw ObvError.theChannelDelegateIsNil } + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ProtocolStarterCoordinator.logCategory) + let prng = self.prng + + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + contextCreator.performBackgroundTask(flowId: flowId) { obvContext in + do { + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + try obvContext.save(logOnFailure: log) + continuation.resume() + } catch { + continuation.resume(throwing: error) + } + } + } + + } + + + + // MARK: - Errors + + enum ObvError: Error { + case theNotificationDelegateIsNil + case theContextCreatorIsNil + case theChannelDelegateIsNil + case theDelegateManagerIsNil + } + } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Coordinators/ReceivedMessageCoordinator.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Coordinators/ReceivedMessageCoordinator.swift index 80875e2a..58301f48 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Coordinators/ReceivedMessageCoordinator.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Coordinators/ReceivedMessageCoordinator.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -51,7 +51,7 @@ final class ReceivedMessageCoordinator: ReceivedMessageDelegate { // MARK: Queuing ProtocolInstanceInputsConsumerOperations - private func queueNewProtocolOperationIfThereIsNotAlreadyOne(receivedMessageId messageId: MessageIdentifier, flowId: FlowIdentifier) { + private func queueNewProtocolOperationIfThereIsNotAlreadyOne(receivedMessageId messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ReceivedMessageCoordinator.logCategory) os_log("Queuing a ProtocolOperation", log: log, type: .debug) let op = ProtocolOperation(receivedMessageId: messageId, @@ -65,9 +65,10 @@ final class ReceivedMessageCoordinator: ReceivedMessageDelegate { } // MARK: Implementing ProtocolInstanceInputsConsumerDelegate + extension ReceivedMessageCoordinator { - func processReceivedMessage(withId messageId: MessageIdentifier, flowId: FlowIdentifier) { + func processReceivedMessage(withId messageId: ObvMessageIdentifier, flowId: FlowIdentifier) { queueNewProtocolOperationIfThereIsNotAlreadyOne(receivedMessageId: messageId, flowId: flowId) } @@ -101,6 +102,45 @@ extension ReceivedMessageCoordinator { } + /// This method is called during boostrap. It deletes all `CryptoProtocolId.ownedIdentityTransfer` protocol instances. + /// We declare this method in this coordinator to make sure it does not interfere with the processing of protocol messages. + func deleteOwnedIdentityTransferProtocolInstances(flowId: FlowIdentifier) { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ReceivedMessageCoordinator.logCategory) + + guard let contextCreator = delegateManager.contextCreator else { + os_log("The context creator is not set", log: log, type: .fault) + assertionFailure() + return + } + + let op1 = DeleteOwnedIdentityTransferProtocolInstancesOperation() + let queueForComposedOperations = OperationQueue.createSerialQueue() + let composedOp = CompositionOfOneContextualOperation(op1: op1, contextCreator: contextCreator, queueForComposedOperations: queueForComposedOperations, log: log, flowId: flowId) + queueForProtocolOperations.addOperation(composedOp) + + } + + + /// This method is called during boostrap. It deletes all `ReceivedMessage` concerning a identity transfer protocol instance. + /// We declare this method in this coordinator to make sure it does not interfere with the processing of protocol messages. + func deleteReceivedMessagesConcerningAnOwnedIdentityTransferProtocol(flowId: FlowIdentifier) { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ReceivedMessageCoordinator.logCategory) + + guard let contextCreator = delegateManager.contextCreator else { + os_log("The context creator is not set", log: log, type: .fault) + assertionFailure() + return + } + + let op1 = DeleteReceivedMessagesConcerningAnOwnedIdentityTransferProtocolOperation() + let queueForComposedOperations = OperationQueue.createSerialQueue() + let composedOp = CompositionOfOneContextualOperation(op1: op1, contextCreator: contextCreator, queueForComposedOperations: queueForComposedOperations, log: log, flowId: flowId) + queueForProtocolOperations.addOperation(composedOp) + + } + /// This method is called during boostrap. It deletes all received messages that are older than 15 days and that have no associated protocol instance. func deleteObsoleteReceivedMessages(flowId: FlowIdentifier) { @@ -132,7 +172,7 @@ extension ReceivedMessageCoordinator { } queueForProtocolOperations.addOperation { [weak self] in - var messageIds = Set() + var messageIds = [ObvMessageIdentifier]() contextCreator.performBackgroundTaskAndWait(flowId: flowId) { obvContext in do { messageIds = try ReceivedMessage.getAllMessageIds(within: obvContext) @@ -281,7 +321,7 @@ final class ProtocolStepAndActionsOperationWrapper: ObvOperationWrapper(operation: OperationWithSpecificReasonForCancel) async throws { + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + let originalCompletionBlock = operation.completionBlock + operation.completionBlock = { + originalCompletionBlock?() + if let reasontForCancel = operation.reasonForCancel { + assert(operation.isCancelled) + continuation.resume(throwing: reasontForCancel) + } else { + assert(!operation.isCancelled) + continuation.resume() + } + } + queueForProtocolOperations.addOperation(operation) + } + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ChannelCreationWithContactDeviceProtocolInstance.swift b/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ChannelCreationWithContactDeviceProtocolInstance.swift index 61108942..7e2c774e 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ChannelCreationWithContactDeviceProtocolInstance.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ChannelCreationWithContactDeviceProtocolInstance.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -71,7 +71,7 @@ final class ChannelCreationWithContactDeviceProtocolInstance: NSManagedObject, O convenience init?(protocolInstanceUid: UID, ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactDeviceUid: UID, delegateManager: ObvProtocolDelegateManager, within obvContext: ObvContext) { let entityDescription = NSEntityDescription.entity(forEntityName: ChannelCreationWithContactDeviceProtocolInstance.entityName, in: obvContext)! self.init(entity: entityDescription, insertInto: obvContext) - guard let protocolInstance = ProtocolInstance.get(cryptoProtocolId: CryptoProtocolId.ChannelCreationWithContactDevice, + guard let protocolInstance = ProtocolInstance.get(cryptoProtocolId: CryptoProtocolId.channelCreationWithContactDevice, uid: protocolInstanceUid, ownedIdentity: ownedIdentity, delegateManager: delegateManager, @@ -91,16 +91,6 @@ extension ChannelCreationWithContactDeviceProtocolInstance { return NSFetchRequest(entityName: ChannelCreationWithContactDeviceProtocolInstance.entityName) } - static func getUidofChannelCreationProtocolInstanceBetween(contactIdentity: ObvCryptoIdentity, contactDeviceUid: UID, andOwnedIdentity ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) -> UID? { - let request: NSFetchRequest = ChannelCreationWithContactDeviceProtocolInstance.fetchRequest() - request.predicate = NSPredicate(format: "%K == %@ AND %K == %@ AND %K == %@", - contactIdentityKey, contactIdentity, - contactDeviceUidKey, contactDeviceUid, - protocolInstanceOwnedCryptoIdentityKey, ownedCryptoIdentity) - let item = (try? obvContext.fetch(request))?.first - return item?.protocolInstance.uid - } - static func delete(contactIdentity: ObvCryptoIdentity, contactDeviceUid: UID, andOwnedIdentity ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> UID? { let request: NSFetchRequest = ChannelCreationWithContactDeviceProtocolInstance.fetchRequest() request.predicate = NSPredicate(format: "%K == %@ AND %K == %@ AND %K == %@", diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ChannelCreationWithOwnedDeviceProtocolInstance.swift b/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ChannelCreationWithOwnedDeviceProtocolInstance.swift new file mode 100644 index 00000000..12a15aa3 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ChannelCreationWithOwnedDeviceProtocolInstance.swift @@ -0,0 +1,153 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import ObvCrypto +import OlvidUtils +import ObvMetaManager + + +/// This database is only used within the channel creation protocol (with an owned identity) between the current device of the owned identity and one of her other device. +@objc(ChannelCreationWithOwnedDeviceProtocolInstance) +final class ChannelCreationWithOwnedDeviceProtocolInstance: NSManagedObject { + + private static let entityName = "ChannelCreationWithOwnedDeviceProtocolInstance" + + // MARK: Attributes + + @NSManaged private var rawOwnedIdentityIdentity: Data // Part of the primary key + @NSManaged private var rawRemoteDeviceUid: Data // Part of the primary key + + // MARK: Relationships + + // This is necessarily a ChannelCreationWithOwnedDevice protocol instance. + // Expected to be non-nil (optional in the model, mandatory in practice) + @NSManaged private(set) var protocolInstance: ProtocolInstance? + + // MARK: Other variables + + // Expected to be non-nil. + var ownedCryptoIdentity: ObvCryptoIdentity? { + return ObvCryptoIdentity(from: rawOwnedIdentityIdentity) + } + + // Expected to be non-nil + var remoteDeviceUid: UID? { + UID(uid: self.rawRemoteDeviceUid) + } + + // MARK: - Initializer + + convenience init?(protocolInstanceUid: UID, ownedIdentity: ObvCryptoIdentity, remoteDeviceUid: UID, delegateManager: ObvProtocolDelegateManager, within obvContext: ObvContext) { + let entityDescription = NSEntityDescription.entity(forEntityName: Self.entityName, in: obvContext)! + self.init(entity: entityDescription, insertInto: obvContext) + guard let protocolInstance = ProtocolInstance.get(cryptoProtocolId: CryptoProtocolId.channelCreationWithOwnedDevice, + uid: protocolInstanceUid, + ownedIdentity: ownedIdentity, + delegateManager: delegateManager, + within: obvContext) else { return nil } + self.protocolInstance = protocolInstance + self.rawRemoteDeviceUid = remoteDeviceUid.raw + self.rawOwnedIdentityIdentity = protocolInstance.ownedCryptoIdentity.getIdentity() + } + + + private func deleteChannelCreationWithOwnedDeviceProtocolInstance() throws { + guard let context = self.managedObjectContext else { throw ObvError.couldNotFindContext } + context.delete(self) + } + + + // MARK: - Convenience DB getters + + @nonobjc class func fetchRequest() -> NSFetchRequest { + return NSFetchRequest(entityName: self.entityName) + } + + struct Predicate { + enum Key: String { + // Attributes + case rawOwnedIdentityIdentity = "rawOwnedIdentityIdentity" + case rawRemoteDeviceUid = "rawRemoteDeviceUid" + // Relationships + case protocolInstance = "protocolInstance" + } + static func withRemoteDeviceUid(_ remoteDeviceUid: UID) -> NSPredicate { + NSPredicate(Key.rawRemoteDeviceUid, EqualToData: remoteDeviceUid.raw) + } + static func withOwnedCryptoIdentity(_ ownedCryptoIdentity: ObvCryptoIdentity) -> NSPredicate { + return NSPredicate(Key.rawOwnedIdentityIdentity, EqualToData: ownedCryptoIdentity.getIdentity()) + } + } + + + /// Since we there must be at most one `ChannelCreationWithOwnedDeviceProtocolInstance` for a given owned identity and remote device, we expect the array returned by this method to contain either 0 or 1 entry. + /// Yet, to be more resilient, we return all items found so as to let the protocol stop all protocol instances in all cases. + static func deleteAll(ownedCryptoIdentity: ObvCryptoIdentity, remoteDeviceUid: UID, within obvContext: ObvContext) throws -> [UID] { + let request: NSFetchRequest = ChannelCreationWithOwnedDeviceProtocolInstance.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withOwnedCryptoIdentity(ownedCryptoIdentity), + Predicate.withRemoteDeviceUid(remoteDeviceUid), + ]) + let itemsToDelete = try obvContext.context.fetch(request) + let protocolInstanceUids = itemsToDelete.compactMap(\.protocolInstance?.uid) + try itemsToDelete.forEach { itemToDelete in + try itemToDelete.deleteChannelCreationWithOwnedDeviceProtocolInstance() + } + return protocolInstanceUids + } + + + static func exists(ownedCryptoIdentity: ObvCryptoIdentity, remoteDeviceUid: UID, within obvContext: ObvContext) throws -> Bool { + let request: NSFetchRequest = ChannelCreationWithOwnedDeviceProtocolInstance.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withOwnedCryptoIdentity(ownedCryptoIdentity), + Predicate.withRemoteDeviceUid(remoteDeviceUid), + ]) + let numberOfEntries = try obvContext.count(for: request) + return numberOfEntries != 0 + } + + + static func getAll(within obvContext: ObvContext) throws -> Set { + let request: NSFetchRequest = ChannelCreationWithOwnedDeviceProtocolInstance.fetchRequest() + request.fetchBatchSize = 1_000 + let items = try obvContext.context.fetch(request) + return Set(items.compactMap({ + guard let ownedCryptoIdentity = $0.ownedCryptoIdentity else { assertionFailure(); return nil } + guard let remoteDeviceUid = $0.remoteDeviceUid else { assertionFailure(); return nil } + return ObliviousChannelIdentifierAlt(ownedCryptoIdentity: ownedCryptoIdentity, remoteCryptoIdentity: ownedCryptoIdentity, remoteDeviceUid: remoteDeviceUid) + })) + } + + // MARK: - Errors + + enum ObvError: Error { + case couldNotFindContext + + var localizedDescription: String { + switch self { + case .couldNotFindContext: + return "Could not find context" + } + } + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ProtocolInstance.swift b/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ProtocolInstance.swift index 3f67d3d3..411711ef 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ProtocolInstance.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ProtocolInstance.swift @@ -24,6 +24,7 @@ import OlvidUtils import ObvEncoder import ObvTypes import ObvCrypto +import ObvMetaManager @objc(ProtocolInstance) final class ProtocolInstance: NSManagedObject, ObvManagedObject, ObvErrorMaker { @@ -79,11 +80,12 @@ final class ProtocolInstance: NSManagedObject, ObvManagedObject, ObvErrorMaker { } let entityDescription = NSEntityDescription.entity(forEntityName: ProtocolInstance.entityName, in: obvContext)! - // We check that the identity passed is indeed "owned" + // We check that the identity passed is indeed "owned" or, in the case of the owned identity transfer protocol, if the identity is ephemeral do { let identityIsOwned = try identityDelegate.isOwned(ownedCryptoIdentity, within: obvContext) - guard identityIsOwned else { return nil } + guard identityIsOwned || (cryptoProtocolId == .ownedIdentityTransfer && ownedCryptoIdentity.serverURL == ObvConstants.ephemeralIdentityServerURL) else { return nil } } catch { + assertionFailure() return nil } @@ -167,9 +169,25 @@ extension ProtocolInstance { let request: NSFetchRequest = ProtocolInstance.fetchRequest() let items = try? obvContext.fetch(request) return items?.map { $0.delegateManager = delegateManager; return $0 } - } + + static func getAll(cryptoProtocolId: CryptoProtocolId, delegateManager: ObvProtocolDelegateManager, within obvContext: ObvContext) throws -> [ProtocolInstance] { + let request: NSFetchRequest = ProtocolInstance.fetchRequest() + request.predicate = Predicate.withCryptoProtocolId(cryptoProtocolId) + let items = try obvContext.fetch(request) + return items.map { $0.delegateManager = delegateManager; return $0 } + } + + + static func getAllPrimaryKeysOfOwnedIdentityTransferProtocolInstances(within obvContext: ObvContext) throws -> [(ownedCryptoIdentity: ObvCryptoIdentity, protocolInstanceUID: UID)] { + let request: NSFetchRequest = ProtocolInstance.fetchRequest() + request.predicate = Predicate.withCryptoProtocolId(.ownedIdentityTransfer) + let items = try obvContext.fetch(request) + return items.map({ ($0.ownedCryptoIdentity, $0.uid) }) + } + + static func delete(uid: UID, ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { // We do not execute a batch delete since this method does not call the willSave/didSave methods, which are required. let request: NSFetchRequest = ProtocolInstance.fetchRequest() @@ -234,6 +252,19 @@ extension ProtocolInstance { } + static func deleteOwnedIdentityTransferProtocolInstances(within obvContext: ObvContext) throws { + + let request: NSFetchRequest = ProtocolInstance.fetchRequest() + request.predicate = Predicate.withCryptoProtocolId(.ownedIdentityTransfer) + request.propertiesToFetch = [] + request.fetchBatchSize = 100 + let items = try obvContext.fetch(request) + guard !items.isEmpty else { return } + items.forEach({ obvContext.delete($0) }) + + } + + static func deleteAllProtocolInstancesOfOwnedIdentity(_ ownedCryptoIdentity: ObvCryptoIdentity, withProtocolInstanceUidDistinctFrom protocolInstanceUid: UID, within obvContext: ObvContext) throws { let request: NSFetchRequest = ProtocolInstance.fetchRequest() request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ReceivedMessage.swift b/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ReceivedMessage.swift index 62b75d2e..86c6c87b 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ReceivedMessage.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/CoreData/ReceivedMessage.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -80,13 +80,14 @@ final class ReceivedMessage: NSManagedObject, ObvManagedObject, ObvErrorMaker { // MARK: Other variables - private(set) var messageId: MessageIdentifier { - get { return MessageIdentifier(rawOwnedCryptoIdentity: self.rawMessageIdOwnedIdentity, rawUid: self.rawMessageIdUid)! } + private(set) var messageId: ObvMessageIdentifier { + get { return ObvMessageIdentifier(rawOwnedCryptoIdentity: self.rawMessageIdOwnedIdentity, rawUid: self.rawMessageIdUid)! } set { self.rawMessageIdOwnedIdentity = newValue.ownedCryptoIdentity.getIdentity(); self.rawMessageIdUid = newValue.uid.raw } } weak var delegateManager: ObvProtocolDelegateManager? var obvContext: ObvContext? + private var messageIdOnDeletion: ObvMessageIdentifier? // MARK: - Initializer @@ -100,9 +101,25 @@ final class ReceivedMessage: NSManagedObject, ObvManagedObject, ObvErrorMaker { self.protocolMessageRawId = message.protocolMessageRawId self.cryptoProtocolId = message.cryptoProtocolId self.receptionChannelInfo = message.receptionChannelInfo - self.messageId = MessageIdentifier(ownedCryptoIdentity: message.toOwnedIdentity, uid: message.receivedMessageUID ?? UID.gen(with: prng)) + self.messageId = ObvMessageIdentifier(ownedCryptoIdentity: message.toOwnedIdentity, uid: message.receivedMessageUID ?? UID.gen(with: prng)) self.delegateManager = delegateManager self.timestamp = message.timestamp + + // Instead of using the didSave method to call the delegate method, we add a "didSave" completion to the obvContext. + // This allows to make sure the completions are executed in the right order (first in, first out). + // Since the ReceivedMessage received from the network are processed according to their timestamp, this allows to preserver that order. + + do { + let flowId = obvContext.flowId + let messageId = self.messageId + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + delegateManager.receivedMessageDelegate.processReceivedMessage(withId: messageId, flowId: flowId) + } + } catch { + assertionFailure(error.localizedDescription) + // Continue anyway + } } @@ -128,7 +145,7 @@ extension ReceivedMessage { case receptionChannelInfo = "receptionChannelInfo" case timestamp = "timestamp" } - static func withMessageIdentifier(_ messageId: MessageIdentifier) -> NSPredicate { + static func withMessageIdentifier(_ messageId: ObvMessageIdentifier) -> NSPredicate { NSCompoundPredicate(andPredicateWithSubpredicates: [ withOwnedCryptoIdentity(messageId.ownedCryptoIdentity), NSPredicate(Key.rawMessageIdUid, EqualToData: messageId.uid.raw), @@ -143,6 +160,9 @@ extension ReceivedMessage { static func withTimestamp(earlierThan timestamp: Date) -> NSPredicate { NSPredicate(Key.timestamp, earlierThan: timestamp) } + static func withCryptoProtocolId(_ cryptoProtocolId: CryptoProtocolId) -> NSPredicate { + NSPredicate(Key.protocolRawId, EqualToInt: cryptoProtocolId.rawValue) + } } @nonobjc class func fetchRequest() -> NSFetchRequest { @@ -156,7 +176,7 @@ extension ReceivedMessage { extension ReceivedMessage { - static func get(messageId: MessageIdentifier, delegateManager: ObvProtocolDelegateManager, within obvContext: ObvContext) -> ReceivedMessage? { + static func get(messageId: ObvMessageIdentifier, delegateManager: ObvProtocolDelegateManager, within obvContext: ObvContext) -> ReceivedMessage? { let request: NSFetchRequest = ReceivedMessage.fetchRequest() request.predicate = Predicate.withMessageIdentifier(messageId) request.fetchLimit = 1 @@ -172,13 +192,14 @@ extension ReceivedMessage { Predicate.withProtocolInstanceUid(protocolInstanceUid), Predicate.withOwnedCryptoIdentity(ownedCryptoIdentity), ]) + request.sortDescriptors = [NSSortDescriptor(key: Predicate.Key.timestamp.rawValue, ascending: true)] request.fetchBatchSize = 1_000 let items = (try? obvContext.fetch(request)) return items?.map { $0.delegateManager = delegateManager; return $0 } } - static func delete(messageId: MessageIdentifier, within obvContext: ObvContext) throws { + static func delete(messageId: ObvMessageIdentifier, within obvContext: ObvContext) throws { let request = NSFetchRequest(entityName: ReceivedMessage.entityName) request.predicate = Predicate.withMessageIdentifier(messageId) let deleteRequest = NSBatchDeleteRequest(fetchRequest: request) @@ -198,6 +219,14 @@ extension ReceivedMessage { } + static func deleteAllAssociatedWithOwnedIdentity(_ ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { + let request = NSFetchRequest(entityName: ReceivedMessage.entityName) + request.predicate = Predicate.withOwnedCryptoIdentity(ownedIdentity) + let deleteRequest = NSBatchDeleteRequest(fetchRequest: request) + _ = try obvContext.execute(deleteRequest) + } + + static func getAllReceivedMessageOlderThan(timestamp: Date, delegateManager: ObvProtocolDelegateManager, within obvContext: ObvContext) throws -> [ReceivedMessage] { let request: NSFetchRequest = ReceivedMessage.fetchRequest() request.predicate = Predicate.withTimestamp(earlierThan: timestamp) @@ -208,11 +237,12 @@ extension ReceivedMessage { } - static func getAllMessageIds(within obvContext: ObvContext) throws -> Set { + static func getAllMessageIds(within obvContext: ObvContext) throws -> [ObvMessageIdentifier] { let request: NSFetchRequest = ReceivedMessage.fetchRequest() request.propertiesToFetch = [Predicate.Key.rawMessageIdUid.rawValue, Predicate.Key.rawMessageIdOwnedIdentity.rawValue] + request.sortDescriptors = [NSSortDescriptor(key: Predicate.Key.timestamp.rawValue, ascending: true)] let items = try obvContext.fetch(request) - return Set(items.map { $0.messageId }) + return items.map { $0.messageId } } @@ -223,12 +253,30 @@ extension ReceivedMessage { _ = try obvContext.execute(request) } + + static func deleteReceivedMessagesConcerningAnOwnedIdentityTransferProtocol(within obvContext: ObvContext) throws { + let request: NSFetchRequest = ReceivedMessage.fetchRequest() + request.predicate = Predicate.withCryptoProtocolId(.ownedIdentityTransfer) + request.propertiesToFetch = [] + let items = try obvContext.fetch(request) + try items.forEach { try $0.deleteReceivedMessage() } + } + } // MARK: Managing notifications and calls to delegates extension ReceivedMessage { + override func willSave() { + super.willSave() + + if isDeleted { + messageIdOnDeletion = self.messageId + } + + } + override func didSave() { super.didSave() @@ -238,9 +286,15 @@ extension ReceivedMessage { return } - if isInserted, let flowId = self.obvContext?.flowId { - delegateManager.receivedMessageDelegate.processReceivedMessage(withId: messageId, flowId: flowId) + if isDeleted { + assert(messageIdOnDeletion != nil) + assert(delegateManager.notificationDelegate != nil) + if let messageIdOnDeletion, let notificationDelegate = delegateManager.notificationDelegate { + ObvProtocolNotification.protocolReceivedMessageWasDeleted(protocolMessageId: messageIdOnDeletion) + .postOnBackgroundQueue(within: notificationDelegate) + } } + } } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/GenericProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/GenericProtocolMessages.swift index 154b0d99..7f31b839 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/GenericProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/GenericProtocolMessages.swift @@ -132,10 +132,10 @@ struct GenericProtocolMessageToSend { init(channelType: ObvChannelSendChannelType, cryptoProtocolId: CryptoProtocolId, protocolInstanceUid: UID, protocolMessageRawId: Int, encodedInputs: [ObvEncoded], partOfFullRatchetProtocolOfTheSendSeed: Bool = false) { self.channelType = channelType - self.encodedElements = GenericProtocolMessageToSend.encode(cryptoProtocolId: cryptoProtocolId, - protocolInstanceUid: protocolInstanceUid, - protocolMessageRawId: protocolMessageRawId, - encodedInputs: encodedInputs) + self.encodedElements = Self.encode(cryptoProtocolId: cryptoProtocolId, + protocolInstanceUid: protocolInstanceUid, + protocolMessageRawId: protocolMessageRawId, + encodedInputs: encodedInputs) self.partOfFullRatchetProtocolOfTheSendSeed = partOfFullRatchetProtocolOfTheSendSeed self.timestamp = Date() } @@ -152,6 +152,7 @@ struct GenericProtocolMessageToSend { switch channelType { case .AllConfirmedObliviousChannelsWithOtherDevicesOfOwnedIdentity, .AllConfirmedObliviousChannelsWithContactIdentities, + .AllConfirmedObliviousChannelsWithContactIdentitiesAndWithOtherDevicesOfOwnedIdentity, .AsymmetricChannel, .AsymmetricChannelBroadcast, .Local, diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Internal Delegates/ProtocolStarterDelegate.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Internal Delegates/ProtocolStarterDelegate.swift index e5cd7e05..a0bf3520 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Internal Delegates/ProtocolStarterDelegate.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Internal Delegates/ProtocolStarterDelegate.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,20 +25,20 @@ import ObvTypes protocol ProtocolStarterDelegate { - func startDeviceDiscoveryProtocolOfContactIdentity(_: ObvCryptoIdentity, forOwnedIdentity: ObvCryptoIdentity, within: FlowIdentifier) throws - + func finalizeInitialization(flowId: FlowIdentifier, runningLog: RunningLogError) + func getInitialMessageForTrustEstablishmentProtocol(of: ObvCryptoIdentity, withFullDisplayName: String, forOwnedIdentity: ObvCryptoIdentity, withOwnedIdentityCoreDetails: ObvIdentityCoreDetails, usingProtocolInstanceUid: UID) throws -> ObvChannelProtocolMessageToSend - func getInitialMessageForContactMutualIntroductionProtocol(of: ObvCryptoIdentity, withIdentityCoreDetails: ObvIdentityCoreDetails, with: ObvCryptoIdentity, withOtherIdentityCoreDetails: ObvIdentityCoreDetails, byOwnedIdentity: ObvCryptoIdentity, usingProtocolInstanceUid: UID) throws -> ObvChannelProtocolMessageToSend + func getInitialMessageForContactMutualIntroductionProtocol(of identity1: ObvCryptoIdentity, with identity2: ObvCryptoIdentity, byOwnedIdentity ownedIdentity: ObvCryptoIdentity, usingProtocolInstanceUid protocolInstanceUid: UID) throws -> ObvChannelProtocolMessageToSend - func startChannelCreationWithContactDeviceProtocolBetweenTheCurrentDeviceOf(_: ObvCryptoIdentity, andTheDeviceUid: UID, ofTheContactIdentity: ObvCryptoIdentity, within: FlowIdentifier) throws - func getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity: ObvCryptoIdentity, andTheDeviceUid: UID, ofTheContactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend - func tryToObserveIdentityNotifications() + func getInitialMessageForChannelCreationWithOwnedDeviceProtocol(ownedIdentity: ObvCryptoIdentity, remoteDeviceUid: UID) throws -> ObvChannelProtocolMessageToSend func getInitiateGroupCreationMessageForGroupManagementProtocol(groupCoreDetails: ObvGroupCoreDetails, photoURL: URL?, pendingGroupMembers: Set, ownedIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend + func getDisbandGroupMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend + func getAddGroupMembersMessageForAddingMembersToContactGroupOwnedUsingGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, newGroupMembers: Set, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend func getInitialMessageForIdentityDetailsPublicationProtocol(ownedIdentity: ObvCryptoIdentity, publishedIdentityDetailsVersion: Int) throws -> ObvChannelProtocolMessageToSend @@ -53,15 +53,13 @@ protocol ProtocolStarterDelegate { func getLeaveGroupJoinedMessageForStartingGroupManagementProtocol(ownedIdentity: ObvCryptoIdentity, groupUid: UID, groupOwner: ObvCryptoIdentity, simulateReceivedMessage: Bool, within obvContext: ObvContext) throws -> GroupManagementProtocol.LeaveGroupJoinedMessage - func getInitiateContactDeletionMessageForContactManagementProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentityToDelete: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend - func getInitiateAddKeycloakContactMessageForKeycloakContactAdditionProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentityToAdd: ObvCryptoIdentity, signedContactDetails: String) throws -> ObvChannelProtocolMessageToSend func getInitiateGroupMembersQueryMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, groupOwner: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend func getTriggerReinviteMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, memberIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend - func getInitialMessageForDeviceDiscoveryForContactIdentityProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend + func getInitialMessageForContactDeviceDiscoveryProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend func getInitialMessageForDownloadIdentityPhotoChildProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactIdentityDetailsElements: IdentityDetailsElements) throws -> ObvChannelProtocolMessageToSend @@ -73,8 +71,6 @@ protocol ProtocolStarterDelegate { func getInitialMessageForOneToOneContactInvitationProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend - func getInitialMessageForDowngradingOneToOneContact(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend - func getInitialMessageForOneStatusSyncRequest(ownedIdentity: ObvCryptoIdentity, contactsToSync: Set) throws -> ObvChannelProtocolMessageToSend // MARK: - Groups V2 @@ -83,6 +79,8 @@ protocol ProtocolStarterDelegate { func getInitiateGroupUpdateMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, changeset: ObvGroupV2.Changeset, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend + func getInitialMessageForDownloadGroupV2PhotoProtocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, serverPhotoInfo: GroupV2.ServerPhotoInfo) throws -> ObvChannelProtocolMessageToSend + func getInitiateGroupLeaveMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend func getInitiateGroupLeaveMessageForStartingGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, simulateReceivedMessage: Bool, flowId: FlowIdentifier) throws -> GroupV2Protocol.InitiateGroupLeaveMessage @@ -93,7 +91,7 @@ protocol ProtocolStarterDelegate { func getInitiateInitiateGroupDisbandMessageForStartingGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, simulateReceivedMessage: Bool, flowId: FlowIdentifier) throws -> GroupV2Protocol.InitiateGroupDisbandMessage - func getInitiateBatchKeysResendMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactDeviceUID: UID, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend + func getInitiateBatchKeysResendMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, remoteIdentity: ObvCryptoIdentity, remoteDeviceUID: UID, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend // MARK: - Keycloak pushed groups @@ -103,6 +101,50 @@ protocol ProtocolStarterDelegate { // MARK: - Owned identities - func getInitiateOwnedIdentityDeletionMessage(ownedCryptoIdentityToDelete: ObvCryptoIdentity, notifyContacts: Bool, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend + func getInitiateOwnedIdentityDeletionMessage(ownedCryptoIdentityToDelete: ObvCryptoIdentity, globalOwnedIdentityDeletion: Bool) throws -> ObvChannelProtocolMessageToSend + + func getInitiateOwnedDeviceDiscoveryMessage(ownedCryptoIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend + + func getInitiateOwnedDeviceManagementMessage(ownedCryptoIdentity: ObvCryptoIdentity, request: ObvOwnedDeviceManagementRequest) throws -> ObvChannelProtocolMessageToSend + + // func getInitiateTransferOnSourceDeviceMessageForOwnedIdentityTransferProtocol(ownedCryptoIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend + // MARK: - Contact Device Management protocol + + func getInitiateContactDeletionMessageForContactManagementProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentityToDelete: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend + + func getInitialMessageForDowngradingOneToOneContact(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend + + // MARK: - Keycloak binding and unbinding + + func getOwnedIdentityKeycloakBindingMessage(ownedCryptoIdentity: ObvCryptoIdentity, keycloakState: ObvKeycloakState, keycloakUserId: String) throws -> ObvChannelProtocolMessageToSend + + func getOwnedIdentityKeycloakUnbindingMessage(ownedCryptoIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend + + // MARK: - SynchronizationProtocol + + func getInitiateSyncAtomMessageForSynchronizationProtocol(ownedCryptoIdentity: ObvCryptoIdentity, syncAtom: ObvSyncAtom) throws -> ObvChannelProtocolMessageToSend + + // func getTriggerSyncSnapshotMessageForSynchronizationProtocol(ownedCryptoIdentity: ObvCryptoIdentity, currentDeviceUid: UID, otherOwnedDeviceUid: UID, forceSendSnapshot: Bool) throws -> ObvChannelProtocolMessageToSend + + // func getInitiateSyncSnapshotMessageForSynchronizationProtocol(ownedCryptoIdentity: ObvCryptoIdentity, currentDeviceUid: UID, otherOwnedDeviceUid: UID) throws -> ObvChannelProtocolMessageToSend + + // MARK: - Owned identity transfer protocol + + /// Called by the engine in order to start an owned identity transfer protocol on the source device. + /// - Parameters: + /// - ownedCryptoIdentity: The crypto identity of the owned identity. + /// - onAvailableSessionNumber: This block will be called by the protocol manager as soon as the session number is available, passing it as a parameter. Since getting this session number requires a network interaction with the transfer server, this block may take a "long" time before being called. + /// - flowId: The flow identifier. + func initiateOwnedIdentityTransferProtocolOnSourceDevice(ownedCryptoIdentity: ObvCryptoIdentity, onAvailableSessionNumber: @escaping (ObvOwnedIdentityTransferSessionNumber) -> Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void, flowId: FlowIdentifier) async throws + + func initiateOwnedIdentityTransferProtocolOnTargetDevice(currentDeviceName: String, transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void, flowId: FlowIdentifier) async throws + + + func appIsShowingSasAndExpectingEndOfProtocol(protocolInstanceUID: UID, onSyncSnapshotReception: @escaping () -> Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async + + func continueOwnedIdentityTransferProtocolOnUserEnteredSASOnSourceDevice(enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws + + func cancelAllOwnedIdentityTransferProtocols(flowId: FlowIdentifier) async throws + } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Internal Delegates/ReceivedMessageDelegate.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Internal Delegates/ReceivedMessageDelegate.swift index fe547332..615b2a17 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Internal Delegates/ReceivedMessageDelegate.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Internal Delegates/ReceivedMessageDelegate.swift @@ -26,7 +26,7 @@ import OlvidUtils protocol ReceivedMessageDelegate { - func processReceivedMessage(withId: MessageIdentifier, flowId: FlowIdentifier) + func processReceivedMessage(withId: ObvMessageIdentifier, flowId: FlowIdentifier) func deleteObsoleteReceivedMessages(flowId: FlowIdentifier) func processAllReceivedMessages(flowId: FlowIdentifier) @@ -34,6 +34,11 @@ protocol ReceivedMessageDelegate { func abortProtocol(withProtocolInstanceUid: UID, forOwnedIdentity: ObvCryptoIdentity) func createBlockForAbortingProtocol(withProtocolInstanceUid uid: UID, forOwnedIdentity identity: ObvCryptoIdentity) -> (() -> Void) func createBlockForAbortingProtocol(withProtocolInstanceUid uid: UID, forOwnedIdentity identity: ObvCryptoIdentity, within obvContext: ObvContext) -> (() -> Void) + func deleteOwnedIdentityTransferProtocolInstances(flowId: FlowIdentifier) + func deleteReceivedMessagesConcerningAnOwnedIdentityTransferProtocol(flowId: FlowIdentifier) func deleteProtocolInstancesInAFinalState(flowId: FlowIdentifier) + // Allow to execute external operations on the queue executing protocol steps + func executeOnQueueForProtocolOperations(operation: OperationWithSpecificReasonForCancel) async throws + } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/ObvProtocolDelegateManager.swift b/Engine/ObvProtocolManager/ObvProtocolManager/ObvProtocolDelegateManager.swift index 2f69c6b8..a0f13ff1 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/ObvProtocolDelegateManager.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/ObvProtocolDelegateManager.swift @@ -46,30 +46,13 @@ final class ObvProtocolDelegateManager { // Only when the `contextCreator`, the `notificationDelegate`, and the `identityDelegate` are set, the `ProtocolStarterCoordinator` can observe notifications. We notify the `ProtocolStarterCoordinator` each time one of these delegates is set. The third time, the `ProtocolStarterCoordinator` will automatically subscribe to notifications. Thanks to a mecanism within the DelegateManager, we know for sure that these delegates will be instantiated by the time the Manager is fully initialized. So we can safely force unwrapping. weak var channelDelegate: ObvChannelDelegate? - - weak var contextCreator: ObvCreateContextDelegate? { - didSet { - protocolStarterDelegate.tryToObserveIdentityNotifications() - } - } - - weak var identityDelegate: ObvIdentityDelegate? { - didSet { - protocolStarterDelegate.tryToObserveIdentityNotifications() - } - } - - weak var notificationDelegate: ObvNotificationDelegate? { - didSet { - protocolStarterDelegate.tryToObserveIdentityNotifications() - } - } - - weak var solveChallengeDelegate: ObvSolveChallengeDelegate? { - didSet { - protocolStarterDelegate.tryToObserveIdentityNotifications() - } - } + weak var contextCreator: ObvCreateContextDelegate? + weak var identityDelegate: ObvIdentityDelegate? + weak var notificationDelegate: ObvNotificationDelegate? + weak var solveChallengeDelegate: ObvSolveChallengeDelegate? + weak var networkPostDelegate: ObvNetworkPostDelegate? + weak var networkFetchDelegate: ObvNetworkFetchDelegate? + weak var syncSnapshotDelegate: ObvSyncSnapshotDelegate? // MARK: Initialiazer init(downloadedUserData: URL, uploadingUserData: URL, receivedMessageDelegate: ReceivedMessageDelegate, protocolStarterDelegate: ProtocolStarterDelegate, contactTrustLevelWatcher: ContactTrustLevelWatcher) { diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/ObvProtocolManager.swift b/Engine/ObvProtocolManager/ObvProtocolManager/ObvProtocolManager.swift index 2bdaddce..5137c6c6 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/ObvProtocolManager.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/ObvProtocolManager.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -66,6 +66,10 @@ public final class ObvProtocolManager: ObvProtocolDelegate, ObvFullRatchetProtoc } + enum ObvError: Error { + case channelDelegateIsNotSet + } + } // MARK: - Implementing ObvManager @@ -77,7 +81,11 @@ extension ObvProtocolManager { ObvEngineDelegateType.ObvChannelDelegate, ObvEngineDelegateType.ObvIdentityDelegate, ObvEngineDelegateType.ObvSolveChallengeDelegate, - ObvEngineDelegateType.ObvNotificationDelegate] + ObvEngineDelegateType.ObvNotificationDelegate, + ObvEngineDelegateType.ObvNetworkPostDelegate, + ObvEngineDelegateType.ObvNetworkFetchDelegate, + ObvEngineDelegateType.ObvSyncSnapshotDelegate, + ] } public func fulfill(requiredDelegate delegate: AnyObject, forDelegateType delegateType: ObvEngineDelegateType) throws { @@ -107,6 +115,21 @@ extension ObvProtocolManager { throw Self.makeError(message: "The ObvSolveChallengeDelegate is not set") } delegateManager.solveChallengeDelegate = delegate + case .ObvNetworkPostDelegate: + guard let delegate = delegate as? ObvNetworkPostDelegate else { + throw Self.makeError(message: "The ObvNetworkPostDelegate is not set") + } + delegateManager.networkPostDelegate = delegate + case .ObvNetworkFetchDelegate: + guard let delegate = delegate as? ObvNetworkFetchDelegate else { + throw Self.makeError(message: "The ObvNetworkFetchDelegate is not set") + } + delegateManager.networkFetchDelegate = delegate + case .ObvSyncSnapshotDelegate: + guard let delegate = delegate as? ObvSyncSnapshotDelegate else { + throw Self.makeError(message: "The ObvSyncSnapshotDelegate is not set") + } + delegateManager.syncSnapshotDelegate = delegate default: throw Self.makeError(message: "Unexpected delegate type") } @@ -115,6 +138,7 @@ extension ObvProtocolManager { public func finalizeInitialization(flowId: FlowIdentifier, runningLog: RunningLogError) throws { delegateManager.contactTrustLevelWatcher.finalizeInitialization() + delegateManager.protocolStarterDelegate.finalizeInitialization(flowId: flowId, runningLog: runningLog) } @@ -126,6 +150,8 @@ extension ObvProtocolManager { Task(priority: .low) { await deleteOldUploadingUserData() } + delegateManager.receivedMessageDelegate.deleteOwnedIdentityTransferProtocolInstances(flowId: flowId) + delegateManager.receivedMessageDelegate.deleteReceivedMessagesConcerningAnOwnedIdentityTransferProtocol(flowId: flowId) delegateManager.receivedMessageDelegate.deleteProtocolInstancesInAFinalState(flowId: flowId) delegateManager.receivedMessageDelegate.deleteObsoleteReceivedMessages(flowId: flowId) // Now that we cleaned the databases, we can try to re-process all protocol's `ReceivedMessage`s @@ -207,7 +233,7 @@ extension ObvProtocolManager { bobDeviceUid: remoteDeviceUid) let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .FullRatchet, + cryptoProtocolId: .fullRatchet, protocolInstanceUid: protocolInstanceUid) let initialMessage = FullRatchetProtocol.InitialMessage(coreProtocolMessage: coreMessage, @@ -220,7 +246,7 @@ extension ObvProtocolManager { } debugPrint("🚨 Will post message for full ratchet \(obvContext.name)") - _ = try channelDelegate.post(initialMessageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(initialMessageToSend, randomizedWith: prng, within: obvContext) debugPrint("🚨 Did post message for full ratchet \(obvContext.name)") do { @@ -298,7 +324,7 @@ extension ObvProtocolManager { let receivedMessage: ReceivedMessage if let receivedMessageUID = genericReceivedMessage.receivedMessageUID { - let messageId = MessageIdentifier(ownedCryptoIdentity: genericReceivedMessage.toOwnedIdentity, uid: receivedMessageUID) + let messageId = ObvMessageIdentifier(ownedCryptoIdentity: genericReceivedMessage.toOwnedIdentity, uid: receivedMessageUID) if let existingReceivedMessage = ReceivedMessage.get(messageId: messageId, delegateManager: delegateManager, within: obvContext) { os_log("A ReceivedMessage with messageId %{public}@ already exist, we do not try to create a new one", log: log, type: .info, messageId.debugDescription) receivedMessage = existingReceivedMessage @@ -357,16 +383,27 @@ extension ObvProtocolManager { } + public func getDisbandGroupMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend { + return try delegateManager.protocolStarterDelegate.getDisbandGroupMessageForGroupManagementProtocol( + groupUid: groupUid, + ownedIdentity: ownedIdentity, + within: obvContext) + } + + public func getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity ownedIdentity: ObvCryptoIdentity, andTheDeviceUid contactDeviceUid: UID, ofTheContactIdentity contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { return try delegateManager.protocolStarterDelegate.getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity: ownedIdentity, andTheDeviceUid: contactDeviceUid, ofTheContactIdentity: contactIdentity) } - public func getInitialMessageForContactMutualIntroductionProtocol(of contact1: ObvCryptoIdentity, withContactIdentityCoreDetails contactCoreDetails1: ObvIdentityCoreDetails, with contact2: ObvCryptoIdentity, withOtherContactIdentityCoreDetails contactCoreDetails2: ObvIdentityCoreDetails, byOwnedIdentity ownedIdentity: ObvCryptoIdentity, usingProtocolInstanceUid protocolInstanceUid: UID) throws -> ObvChannelProtocolMessageToSend { - return try delegateManager.protocolStarterDelegate.getInitialMessageForContactMutualIntroductionProtocol(of: contact1, - withIdentityCoreDetails: contactCoreDetails1, - with: contact2, - withOtherIdentityCoreDetails: contactCoreDetails2, + public func getInitialMessageForChannelCreationWithOwnedDeviceProtocol(ownedIdentity: ObvCryptoIdentity, remoteDeviceUid: UID) throws -> ObvChannelProtocolMessageToSend { + return try delegateManager.protocolStarterDelegate.getInitialMessageForChannelCreationWithOwnedDeviceProtocol(ownedIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid) + } + + + public func getInitialMessageForContactMutualIntroductionProtocol(of identity1: ObvCryptoIdentity, with identity2: ObvCryptoIdentity, byOwnedIdentity ownedIdentity: ObvCryptoIdentity, usingProtocolInstanceUid protocolInstanceUid: UID) throws -> ObvChannelProtocolMessageToSend { + return try delegateManager.protocolStarterDelegate.getInitialMessageForContactMutualIntroductionProtocol(of: identity1, + with: identity2, byOwnedIdentity: ownedIdentity, usingProtocolInstanceUid: protocolInstanceUid) } @@ -419,15 +456,19 @@ extension ObvProtocolManager { } - public func getInitialMessageForDeviceDiscoveryForContactIdentityProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { - return try delegateManager.protocolStarterDelegate.getInitialMessageForDeviceDiscoveryForContactIdentityProtocol(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity) + public func getInitialMessageForContactDeviceDiscoveryProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { + return try delegateManager.protocolStarterDelegate.getInitialMessageForContactDeviceDiscoveryProtocol(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity) } public func getAllObliviousChannelIdentifiersHavingARunningChannelCreationWithContactDeviceProtocolInstances(within obvContext: ObvContext) throws -> Set { return try ChannelCreationWithContactDeviceProtocolInstance.getAll(within: obvContext) } - + + public func getAllObliviousChannelIdentifiersHavingARunningChannelCreationWithOwnedDeviceProtocolInstances(within obvContext: ObvContext) throws -> Set { + return try ChannelCreationWithOwnedDeviceProtocolInstance.getAll(within: obvContext) + } + public func getInitialMessageForDownloadIdentityPhotoChildProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactIdentityDetailsElements: IdentityDetailsElements) throws -> ObvChannelProtocolMessageToSend { return try delegateManager.protocolStarterDelegate.getInitialMessageForDownloadIdentityPhotoChildProtocol(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, contactIdentityDetailsElements: contactIdentityDetailsElements) } @@ -470,6 +511,10 @@ extension ObvProtocolManager { return try delegateManager.protocolStarterDelegate.getInitiateGroupUpdateMessageForGroupV2Protocol(ownedIdentity: ownedIdentity, groupIdentifier: groupIdentifier, changeset: changeset, flowId: flowId) } + public func getInitialMessageForDownloadGroupV2PhotoProtocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, serverPhotoInfo: GroupV2.ServerPhotoInfo) throws -> ObvChannelProtocolMessageToSend { + return try delegateManager.protocolStarterDelegate.getInitialMessageForDownloadGroupV2PhotoProtocol(ownedIdentity: ownedIdentity, groupIdentifier: groupIdentifier, serverPhotoInfo: serverPhotoInfo) + } + public func getInitiateGroupLeaveMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { return try delegateManager.protocolStarterDelegate.getInitiateGroupLeaveMessageForGroupV2Protocol(ownedIdentity: ownedIdentity, groupIdentifier: groupIdentifier, flowId: flowId) } @@ -483,8 +528,8 @@ extension ObvProtocolManager { } /// When a channel is (re)created with a contact device, the engine will call this method so as to make sure our contact knows about the group informations we have about groups v2 that we have in common. - public func getInitiateBatchKeysResendMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactDeviceUID: UID, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { - return try delegateManager.protocolStarterDelegate.getInitiateBatchKeysResendMessageForGroupV2Protocol(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, contactDeviceUID: contactDeviceUID, flowId: flowId) + public func getInitiateBatchKeysResendMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, remoteIdentity: ObvCryptoIdentity, remoteDeviceUID: UID, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { + return try delegateManager.protocolStarterDelegate.getInitiateBatchKeysResendMessageForGroupV2Protocol(ownedIdentity: ownedIdentity, remoteIdentity: remoteIdentity, remoteDeviceUID: remoteDeviceUID, flowId: flowId) } @@ -511,26 +556,117 @@ extension ObvProtocolManager { // MARK: - Owned identities - - /// Called when an owned identity is about to be deleted. - public func prepareForOwnedIdentityDeletion(ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { - - // Delete all received messages - - try ReceivedMessage.batchDeleteAllReceivedMessagesForOwnedCryptoIdentity(ownedCryptoIdentity, within: obvContext) - - // Delete signatures, commitments,... received relating to this owned identity - - try ChannelCreationPingSignatureReceived.batchDeleteAllChannelCreationPingSignatureReceivedForOwnedCryptoIdentity(ownedCryptoIdentity, within: obvContext) - try TrustEstablishmentCommitmentReceived.batchDeleteAllTrustEstablishmentCommitmentReceivedForOwnedCryptoIdentity(ownedCryptoIdentity, within: obvContext) - try MutualScanSignatureReceived.batchDeleteAllMutualScanSignatureReceivedForOwnedCryptoIdentity(ownedCryptoIdentity, within: obvContext) - try GroupV2SignatureReceived.deleteAllAssociatedWithOwnedIdentity(ownedCryptoIdentity, within: obvContext) - try ContactOwnedIdentityDeletionSignatureReceived.deleteAllAssociatedWithOwnedIdentity(ownedCryptoIdentity, within: obvContext) + public func getInitiateOwnedIdentityDeletionMessage(ownedCryptoIdentityToDelete: ObvCryptoIdentity, globalOwnedIdentityDeletion: Bool) throws -> ObvChannelProtocolMessageToSend { + return try delegateManager.protocolStarterDelegate.getInitiateOwnedIdentityDeletionMessage(ownedCryptoIdentityToDelete: ownedCryptoIdentityToDelete, globalOwnedIdentityDeletion: globalOwnedIdentityDeletion) + } + + public func getInitiateOwnedDeviceDiscoveryMessage(ownedCryptoIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { + return try delegateManager.protocolStarterDelegate.getInitiateOwnedDeviceDiscoveryMessage(ownedCryptoIdentity: ownedCryptoIdentity) + } + + + public func getInitiateOwnedDeviceManagementMessage(ownedCryptoIdentity: ObvCryptoIdentity, request: ObvOwnedDeviceManagementRequest) throws -> ObvChannelProtocolMessageToSend { + return try delegateManager.protocolStarterDelegate.getInitiateOwnedDeviceManagementMessage(ownedCryptoIdentity: ownedCryptoIdentity, request: request) + } + + // MARK: - Keycloak binding and unbinding + + public func getOwnedIdentityKeycloakBindingMessage(ownedCryptoIdentity: ObvCryptoIdentity, keycloakState: ObvKeycloakState, keycloakUserId: String) throws -> ObvChannelProtocolMessageToSend { + return try delegateManager.protocolStarterDelegate.getOwnedIdentityKeycloakBindingMessage( + ownedCryptoIdentity: ownedCryptoIdentity, + keycloakState: keycloakState, + keycloakUserId: keycloakUserId) + } + + public func getOwnedIdentityKeycloakUnbindingMessage(ownedCryptoIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { + return try delegateManager.protocolStarterDelegate.getOwnedIdentityKeycloakUnbindingMessage(ownedCryptoIdentity: ownedCryptoIdentity) + } + + + // MARK: - SynchronizationProtocol + + public func getInitiateSyncAtomMessageForSynchronizationProtocol(ownedCryptoIdentity: ObvCryptoIdentity, syncAtom: ObvSyncAtom) throws -> ObvChannelProtocolMessageToSend { + return try delegateManager.protocolStarterDelegate.getInitiateSyncAtomMessageForSynchronizationProtocol(ownedCryptoIdentity: ownedCryptoIdentity, syncAtom: syncAtom) } - public func getInitiateOwnedIdentityDeletionMessage(ownedCryptoIdentityToDelete: ObvCryptoIdentity, notifyContacts: Bool, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { - return try delegateManager.protocolStarterDelegate.getInitiateOwnedIdentityDeletionMessage(ownedCryptoIdentityToDelete: ownedCryptoIdentityToDelete, notifyContacts: notifyContacts, flowId: flowId) + +// public func sendTriggerSyncSnapshotMessageToAllExistingSynchronizationProtocolInstances(within obvContext: ObvContext) throws { +// guard let channelDelegate = delegateManager.channelDelegate else { +// throw ObvError.channelDelegateIsNotSet +// } +// let currentSynchronizationProtocolInstances = try ProtocolInstance.getAll(cryptoProtocolId: .synchronization, delegateManager: delegateManager, within: obvContext) +// for protocolInstance in currentSynchronizationProtocolInstances { +// let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: protocolInstance.ownedCryptoIdentity), +// cryptoProtocolId: .synchronization, +// protocolInstanceUid: protocolInstance.uid) +// let message = SynchronizationProtocol.TriggerSyncSnapshotMessage(coreProtocolMessage: coreMessage, forceSendSnapshot: false) +// guard let messageToSend = message.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); continue } +// _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) +// } +// } + + +// public func getTriggerSyncSnapshotMessageForSynchronizationProtocol(ownedCryptoIdentity: ObvCryptoIdentity, currentDeviceUid: UID, otherOwnedDeviceUid: UID, forceSendSnapshot: Bool) throws -> ObvChannelProtocolMessageToSend { +// return try delegateManager.protocolStarterDelegate.getTriggerSyncSnapshotMessageForSynchronizationProtocol(ownedCryptoIdentity: ownedCryptoIdentity, currentDeviceUid: currentDeviceUid, otherOwnedDeviceUid: otherOwnedDeviceUid, forceSendSnapshot: forceSendSnapshot) +// } + + +// public func getInitiateSyncSnapshotMessageForSynchronizationProtocol(ownedCryptoIdentity: ObvCryptoIdentity, currentDeviceUid: UID, otherOwnedDeviceUid: UID) throws -> ObvChannelProtocolMessageToSend { +// return try delegateManager.protocolStarterDelegate.getInitiateSyncSnapshotMessageForSynchronizationProtocol(ownedCryptoIdentity: ownedCryptoIdentity, currentDeviceUid: currentDeviceUid, otherOwnedDeviceUid: otherOwnedDeviceUid) +// } + + + // MARK: - Owned identity transfer protocol + + public func initiateOwnedIdentityTransferProtocolOnSourceDevice(ownedCryptoIdentity: ObvCryptoIdentity, onAvailableSessionNumber: @escaping (ObvOwnedIdentityTransferSessionNumber) -> Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void, flowId: FlowIdentifier) async throws { + try await delegateManager.protocolStarterDelegate.initiateOwnedIdentityTransferProtocolOnSourceDevice( + ownedCryptoIdentity: ownedCryptoIdentity, + onAvailableSessionNumber: onAvailableSessionNumber, + onAvailableSASExpectedOnInput: onAvailableSASExpectedOnInput, + flowId: flowId) + } + + public func initiateOwnedIdentityTransferProtocolOnTargetDevice(currentDeviceName: String, transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void, flowId: FlowIdentifier) async throws { + try await delegateManager.protocolStarterDelegate.initiateOwnedIdentityTransferProtocolOnTargetDevice( + currentDeviceName: currentDeviceName, + transferSessionNumber: transferSessionNumber, + onIncorrectTransferSessionNumber: onIncorrectTransferSessionNumber, + onAvailableSas: onAvailableSas, + flowId: flowId) + } + + + public func appIsShowingSasAndExpectingEndOfProtocol(protocolInstanceUID: UID, onSyncSnapshotReception: @escaping () -> Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async { + await delegateManager.protocolStarterDelegate.appIsShowingSasAndExpectingEndOfProtocol( + protocolInstanceUID: protocolInstanceUID, + onSyncSnapshotReception: onSyncSnapshotReception, + onSuccessfulTransfer: onSuccessfulTransfer) + } + + + public func continueOwnedIdentityTransferProtocolOnUserEnteredSASOnSourceDevice(enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws { + try await delegateManager.protocolStarterDelegate.continueOwnedIdentityTransferProtocolOnUserEnteredSASOnSourceDevice( + enteredSAS: enteredSAS, + deviceToKeepActive: deviceToKeepActive, + ownedCryptoId: ownedCryptoId, + protocolInstanceUID: protocolInstanceUID) + } + + + public func cancelAllOwnedIdentityTransferProtocols(flowId: FlowIdentifier) async throws { + try await delegateManager.protocolStarterDelegate.cancelAllOwnedIdentityTransferProtocols(flowId: flowId) + } + +} + + +// MARK: - Allow to execute external operations on the queue executing protocol steps + +extension ObvProtocolManager { + + public func executeOnQueueForProtocolOperations(operation: OperationWithSpecificReasonForCancel) async throws { + try await delegateManager.receivedMessageDelegate.executeOnQueueForProtocolOperations(operation: operation) } } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/ObvProtocolManagerDummy.swift b/Engine/ObvProtocolManager/ObvProtocolManager/ObvProtocolManagerDummy.swift index 91f5b6be..a47b9e03 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/ObvProtocolManagerDummy.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/ObvProtocolManagerDummy.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,7 +27,7 @@ import OlvidUtils public final class ObvProtocolManagerDummy: ObvProtocolDelegate, ObvFullRatchetProtocolStarterDelegate { - + static let defaultLogSubsystem = "io.olvid.protocol" lazy public var logSubsystem: String = { return ObvProtocolManagerDummy.defaultLogSubsystem @@ -39,14 +39,14 @@ public final class ObvProtocolManagerDummy: ObvProtocolDelegate, ObvFullRatchetP } public func applicationAppearedOnScreen(forTheFirstTime: Bool, flowId: FlowIdentifier) async {} - + private static let errorDomain = "ObvProtocolManagerDummy" private static func makeError(message: String) -> Error { let userInfo = [NSLocalizedFailureReasonErrorKey: message] return NSError(domain: errorDomain, code: 0, userInfo: userInfo) } - + // MARK: Instance variables private var log: OSLog @@ -56,13 +56,13 @@ public final class ObvProtocolManagerDummy: ObvProtocolDelegate, ObvFullRatchetP public init() { self.log = OSLog(subsystem: ObvProtocolManagerDummy.defaultLogSubsystem, category: "ObvProtocolManagerDummy") } - + public func deleteProtocolMetadataRelatingToContact(contactIdentity: ObvCryptoIdentity, ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { os_log("deleteProtocolMetadataRelatingToContact does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "deleteProtocolMetadataRelatingToContact does nothing in this dummy implementation") } - + public func processProtocolReceivedMessage(_: ObvProtocolReceivedMessage, within: ObvContext) throws { os_log("processProtocolReceivedMessage(_: ObvProtocolReceivedMessage, within: ObvContext) does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "processProtocolReceivedMessage(_: ObvProtocolReceivedMessage, within: ObvContext) does nothing in this dummy implementation") @@ -87,8 +87,8 @@ public final class ObvProtocolManagerDummy: ObvProtocolDelegate, ObvFullRatchetP os_log("getInitialMessageForTrustEstablishmentProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitialMessageForTrustEstablishmentProtocol does nothing in this dummy implementation") } - - public func getInitialMessageForContactMutualIntroductionProtocol(of: ObvCryptoIdentity, withContactIdentityCoreDetails: ObvIdentityCoreDetails, with: ObvCryptoIdentity, withOtherContactIdentityCoreDetails: ObvIdentityCoreDetails, byOwnedIdentity: ObvCryptoIdentity, usingProtocolInstanceUid: UID) throws -> ObvChannelProtocolMessageToSend { + + public func getInitialMessageForContactMutualIntroductionProtocol(of identity1: ObvCryptoIdentity, with identity2: ObvCryptoIdentity, byOwnedIdentity ownedIdentity: ObvCryptoIdentity, usingProtocolInstanceUid protocolInstanceUid: UID) throws -> ObvChannelProtocolMessageToSend { os_log("getInitialMessageForContactMutualIntroductionProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitialMessageForContactMutualIntroductionProtocol does nothing in this dummy implementation") } @@ -97,12 +97,22 @@ public final class ObvProtocolManagerDummy: ObvProtocolDelegate, ObvFullRatchetP os_log("getInitiateGroupCreationMessageForGroupManagementProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitiateGroupCreationMessageForGroupManagementProtocol does nothing in this dummy implementation") } - + + public func getDisbandGroupMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend { + os_log("getDisbandGroupMessageForGroupManagementProtocol does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "getDisbandGroupMessageForGroupManagementProtocol does nothing in this dummy implementation") + } + public func getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity: ObvCryptoIdentity, andTheDeviceUid: UID, ofTheContactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { os_log("getInitialMessageForChannelCreationWithContactDeviceProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitialMessageForChannelCreationWithContactDeviceProtocol does nothing in this dummy implementation") } + public func getInitialMessageForChannelCreationWithOwnedDeviceProtocol(ownedIdentity: ObvCryptoIdentity, remoteDeviceUid: UID) throws -> ObvChannelProtocolMessageToSend { + os_log("getInitialMessageForChannelCreationWithOwnedDeviceProtocol does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "getInitialMessageForChannelCreationWithOwnedDeviceProtocol does nothing in this dummy implementation") + } + public func startFullRatchetProtocolForObliviousChannelBetween(currentDeviceUid: UID, andRemoteDeviceUid remoteDeviceUid: UID, ofRemoteIdentity remoteIdentity: ObvCryptoIdentity) throws { os_log("startFullRatchetProtocolForObliviousChannelBetween does nothing in this dummy implementation", log: log, type: .error) } @@ -111,7 +121,7 @@ public final class ObvProtocolManagerDummy: ObvProtocolDelegate, ObvFullRatchetP os_log("getInitialMessageForIdentityDetailsPublicationProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitialMessageForIdentityDetailsPublicationProtocol does nothing in this dummy implementation") } - + public func getOwnedGroupMembersChangedTriggerMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend { os_log("getOwnedGroupMembersChangedTriggerMessageForGroupManagementProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getOwnedGroupMembersChangedTriggerMessageForGroupManagementProtocol does nothing in this dummy implementation") @@ -121,7 +131,7 @@ public final class ObvProtocolManagerDummy: ObvProtocolDelegate, ObvFullRatchetP os_log("getAddGroupMembersMessageForAddingMembersToContactGroupOwned does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getAddGroupMembersMessageForAddingMembersToContactGroupOwned does nothing in this dummy implementation") } - + public func getRemoveGroupMembersMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, removedGroupMembers: Set, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend { os_log("getRemoveGroupMembersMessageForGroupManagementProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getRemoveGroupMembersMessageForGroupManagementProtocol does nothing in this dummy implementation") @@ -136,12 +146,12 @@ public final class ObvProtocolManagerDummy: ObvProtocolDelegate, ObvFullRatchetP os_log("getInitiateContactDeletionMessageForContactManagementProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitiateContactDeletionMessageForContactManagementProtocol does nothing in this dummy implementation") } - + public func getInitiateAddKeycloakContactMessageForKeycloakContactAdditionProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentityToAdd contactIdentity: ObvCryptoIdentity, signedContactDetails: String) throws -> ObvChannelProtocolMessageToSend { os_log("getInitiateAddKeycloakContactMessageForKeycloakContactAdditionProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitiateAddKeycloakContactMessageForKeycloakContactAdditionProtocol does nothing in this dummy implementation") } - + public func getInitiateGroupMembersQueryMessageForGroupManagementProtocol(groupUid: UID, ownedIdentity: ObvCryptoIdentity, groupOwner: ObvCryptoIdentity, within obvContext: ObvContext) throws -> ObvChannelProtocolMessageToSend { os_log("getInitiateGroupMembersQueryMessageForGroupManagementProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitiateGroupMembersQueryMessageForGroupManagementProtocol does nothing in this dummy implementation") @@ -152,36 +162,41 @@ public final class ObvProtocolManagerDummy: ObvProtocolDelegate, ObvFullRatchetP throw Self.makeError(message: "getTriggerReinviteMessageForGroupManagementProtocol does nothing in this dummy implementation") } - public func getInitialMessageForDeviceDiscoveryForContactIdentityProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { - os_log("getInitialMessageForDeviceDiscoveryForContactIdentityProtocol does nothing in this dummy implementation", log: log, type: .error) - throw Self.makeError(message: "getInitialMessageForDeviceDiscoveryForContactIdentityProtocol does nothing in this dummy implementation") + public func getInitialMessageForContactDeviceDiscoveryProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { + os_log("getInitialMessageForContactDeviceDiscoveryProtocol does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "getInitialMessageForContactDeviceDiscoveryProtocol does nothing in this dummy implementation") } public func getAllObliviousChannelIdentifiersHavingARunningChannelCreationWithContactDeviceProtocolInstances(within obvContext: ObvContext) throws -> Set { os_log("getAllObliviousChannelIdentifiersHavingARunningChannelCreationWithContactDeviceProtocolInstances does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getAllObliviousChannelIdentifiersHavingARunningChannelCreationWithContactDeviceProtocolInstances does nothing in this dummy implementation") } - + + public func getAllObliviousChannelIdentifiersHavingARunningChannelCreationWithOwnedDeviceProtocolInstances(within obvContext: ObvContext) throws -> Set { + os_log("getAllObliviousChannelIdentifiersHavingARunningChannelCreationWithOwnedDeviceProtocolInstances does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "getAllObliviousChannelIdentifiersHavingARunningChannelCreationWithOwnedDeviceProtocolInstances does nothing in this dummy implementation") + } + public func getInitialMessageForDownloadIdentityPhotoChildProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactIdentityDetailsElements: IdentityDetailsElements) throws -> ObvChannelProtocolMessageToSend { os_log("getInitialMessageForDownloadIdentityPhotoChildProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitialMessageForDownloadIdentityPhotoChildProtocol does nothing in this dummy implementation") } - + public func getInitialMessageForDownloadGroupPhotoChildProtocol(ownedIdentity: ObvCryptoIdentity, groupInformation: GroupInformation) throws -> ObvChannelProtocolMessageToSend { os_log("getInitialMessageForDownloadGroupPhotoChildProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitialMessageForDownloadGroupPhotoChildProtocol does nothing in this dummy implementation") } - + public func getInitialMessageForTrustEstablishmentWithMutualScanProtocol(ownedIdentity: ObvCryptoIdentity, remoteIdentity: ObvCryptoIdentity, signature: Data) throws -> ObvChannelProtocolMessageToSend { os_log("getInitialMessageForTrustEstablishmentWithMutualScanProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitialMessageForTrustEstablishmentWithMutualScanProtocol does nothing in this dummy implementation") } - + public func getInitialMessageForAddingOwnCapabilities(ownedIdentity: ObvCryptoIdentity, newOwnCapabilities: Set) throws -> ObvChannelProtocolMessageToSend { os_log("getInitialMessageForAddingOwnCapabilities does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitialMessageForAddingOwnCapabilities does nothing in this dummy implementation") } - + public func getInitialMessageForOneToOneContactInvitationProtocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { os_log("getInitialMessageForOneToOneContactInvitationProtocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitialMessageForAddingOwnCapabilities does nothing in this dummy implementation") @@ -191,7 +206,7 @@ public final class ObvProtocolManagerDummy: ObvProtocolDelegate, ObvFullRatchetP os_log("getInitialMessageForDowngradingOneToOneContact does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitialMessageForDowngradingOneToOneContact does nothing in this dummy implementation") } - + public func getInitialMessageForOneStatusSyncRequest(ownedIdentity: ObvCryptoIdentity, contactsToSync: Set) throws -> ObvChannelProtocolMessageToSend { os_log("getInitialMessageForOneStatusSyncRequest does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitialMessageForOneStatusSyncRequest does nothing in this dummy implementation") @@ -201,12 +216,12 @@ public final class ObvProtocolManagerDummy: ObvProtocolDelegate, ObvFullRatchetP os_log("getInitiateGroupCreationMessageForGroupV2Protocol does nothing in this dummy implementation", log: log, type: .error) throw ObvProtocolManagerDummy.makeError(message: "getInitiateGroupCreationMessageForGroupV2Protocol does nothing in this dummy implementation") } - + public func getInitiateGroupUpdateMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, changeset: ObvGroupV2.Changeset, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { os_log("getInitiateGroupUpdateMessageForGroupV2Protocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitiateGroupUpdateMessageForGroupV2Protocol does nothing in this dummy implementation") } - + public func getInitiateGroupLeaveMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { os_log("getInitiateGroupLeaveMessageForGroupV2Protocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitiateGroupLeaveMessageForGroupV2Protocol does nothing in this dummy implementation") @@ -221,13 +236,13 @@ public final class ObvProtocolManagerDummy: ObvProtocolDelegate, ObvFullRatchetP os_log("getInitiateInitiateGroupDisbandMessageForGroupV2Protocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitiateInitiateGroupDisbandMessageForGroupV2Protocol does nothing in this dummy implementation") } - - public func getInitiateBatchKeysResendMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactDeviceUID: UID, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { + + public func getInitiateBatchKeysResendMessageForGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, remoteIdentity: ObvCryptoIdentity, remoteDeviceUID: UID, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { os_log("getInitiateBatchKeysResendMessageForGroupV2Protocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitiateBatchKeysResendMessageForGroupV2Protocol does nothing in this dummy implementation") } - public func getInitiateOwnedIdentityDeletionMessage(ownedCryptoIdentityToDelete: ObvCryptoIdentity, notifyContacts: Bool, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { + public func getInitiateOwnedIdentityDeletionMessage(ownedCryptoIdentityToDelete: ObvCryptoIdentity, globalOwnedIdentityDeletion: Bool) throws -> ObvChannelProtocolMessageToSend { os_log("getInitiateOwnedIdentityDeletionMessage does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitiateOwnedIdentityDeletionMessage does nothing in this dummy implementation") } @@ -246,12 +261,89 @@ public final class ObvProtocolManagerDummy: ObvProtocolDelegate, ObvFullRatchetP os_log("getInitiateUpdateKeycloakGroupsMessageForGroupV2Protocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitiateUpdateKeycloakGroupsMessageForGroupV2Protocol does nothing in this dummy implementation") } - + public func getInitiateTargetedPingMessageForKeycloakGroupV2Protocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, pendingMemberIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) throws -> ObvChannelProtocolMessageToSend { os_log("getInitiateTargetedPingMessageForKeycloakGroupV2Protocol does nothing in this dummy implementation", log: log, type: .error) throw Self.makeError(message: "getInitiateTargetedPingMessageForKeycloakGroupV2Protocol does nothing in this dummy implementation") } + + public func getInitiateOwnedDeviceDiscoveryMessage(ownedCryptoIdentity: ObvCrypto.ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { + os_log("getInitiateOwnedDeviceDiscoveryMessage does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "getInitiateOwnedDeviceDiscoveryMessage does nothing in this dummy implementation") + } + + public func executeOnQueueForProtocolOperations(operation: OperationWithSpecificReasonForCancel) async throws where ReasonForCancelType : LocalizedErrorWithLogType { + os_log("executeOnQueueForProtocolOperations does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "executeOnQueueForProtocolOperations does nothing in this dummy implementation") + } + + public func getOwnedIdentityKeycloakBindingMessage(ownedCryptoIdentity: ObvCryptoIdentity, keycloakState: ObvKeycloakState, keycloakUserId: String) throws -> ObvChannelProtocolMessageToSend { + os_log("getOwnedIdentityKeycloakBindingMessage does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "getOwnedIdentityKeycloakBindingMessage does nothing in this dummy implementation") + } + + public func getOwnedIdentityKeycloakUnbindingMessage(ownedCryptoIdentity: ObvCryptoIdentity) throws -> ObvChannelProtocolMessageToSend { + os_log("getOwnedIdentityKeycloakUnbindingMessage does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "getOwnedIdentityKeycloakUnbindingMessage does nothing in this dummy implementation") + } + + public func getInitiateOwnedDeviceManagementMessage(ownedCryptoIdentity: ObvCryptoIdentity, request: ObvOwnedDeviceManagementRequest) throws -> ObvChannelProtocolMessageToSend { + os_log("getInitiateOwnedDeviceManagementMessage does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "getInitiateOwnedDeviceManagementMessage does nothing in this dummy implementation") + } + + public func initiateOwnedIdentityTransferProtocolOnSourceDevice(ownedCryptoIdentity: ObvCryptoIdentity, onAvailableSessionNumber: @escaping (ObvOwnedIdentityTransferSessionNumber) -> Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void, flowId: FlowIdentifier) async throws { + os_log("initiateOwnedIdentityTransferProtocolOnSourceDevice does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "initiateOwnedIdentityTransferProtocolOnSourceDevice does nothing in this dummy implementation") + } + + public func cancelAllOwnedIdentityTransferProtocols(flowId: FlowIdentifier) async throws { + os_log("cancelAllOwnedIdentityTransferProtocols does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "cancelAllOwnedIdentityTransferProtocols does nothing in this dummy implementation") + } + + public func initiateOwnedIdentityTransferProtocolOnTargetDevice(currentDeviceName: String, transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void, flowId: FlowIdentifier) async throws { + os_log("initiateOwnedIdentityTransferProtocolOnTargetDevice does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "initiateOwnedIdentityTransferProtocolOnTargetDevice does nothing in this dummy implementation") + } + + public func continueOwnedIdentityTransferProtocolOnUserEnteredSASOnSourceDevice(enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws { + os_log("continueOwnedIdentityTransferProtocolOnUserEnteredSASOnSourceDevice does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "continueOwnedIdentityTransferProtocolOnUserEnteredSASOnSourceDevice does nothing in this dummy implementation") + } + + public func getInitiateSyncAtomMessageForSynchronizationProtocol(ownedCryptoIdentity: ObvCryptoIdentity, syncAtom: ObvSyncAtom) throws -> ObvChannelProtocolMessageToSend { + os_log("getInitiateSyncAtomMessageForSynchronizationProtocol does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "getInitiateSyncAtomMessageForSynchronizationProtocol does nothing in this dummy implementation") + } + + public func sendTriggerSyncSnapshotMessageToAllExistingSynchronizationProtocolInstances(within obvContext: OlvidUtils.ObvContext) throws { + os_log("sendTriggerSyncSnapshotMessageToAllExistingSynchronizationProtocolInstances does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "sendTriggerSyncSnapshotMessageToAllExistingSynchronizationProtocolInstances does nothing in this dummy implementation") + } + public func getInitiateSyncSnapshotMessageForSynchronizationProtocol(ownedCryptoIdentity: ObvCryptoIdentity, currentDeviceUid: UID, otherOwnedDeviceUid: UID) throws -> ObvChannelProtocolMessageToSend { + os_log("getInitiateSyncSnapshotMessageForSynchronizationProtocol does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "getInitiateSyncSnapshotMessageForSynchronizationProtocol does nothing in this dummy implementation") + } + + public func getTriggerSyncSnapshotMessageForSynchronizationProtocol(ownedCryptoIdentity: ObvCryptoIdentity, currentDeviceUid: UID, otherOwnedDeviceUid: UID, forceSendSnapshot: Bool) throws -> ObvChannelProtocolMessageToSend { + os_log("getTriggerSyncSnapshotMessageForSynchronizationProtocol does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "getTriggerSyncSnapshotMessageForSynchronizationProtocol does nothing in this dummy implementation") + } + + public func getInitialMessageForDownloadGroupV2PhotoProtocol(ownedIdentity: ObvCryptoIdentity, groupIdentifier: GroupV2.Identifier, serverPhotoInfo: GroupV2.ServerPhotoInfo) throws -> ObvChannelProtocolMessageToSend { + os_log("getInitialMessageForDownloadGroupV2PhotoProtocol does nothing in this dummy implementation", log: log, type: .error) + throw Self.makeError(message: "getInitialMessageForDownloadGroupV2PhotoProtocol does nothing in this dummy implementation") + } + + public func appIsShowingSasAndExpectingEndOfProtocol(protocolInstanceUID: UID, onSyncSnapshotReception: @escaping () -> Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async { + os_log("appIsShowingSasAndExpectingEndOfProtocol does nothing in this dummy implementation", log: log, type: .error) + } + + + + // MARK: - Implementing ObvManager public let requiredDelegates = [ObvEngineDelegateType]() diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteObsoleteReceivedMessagesOperation.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteObsoleteReceivedMessagesOperation.swift index 48acedb7..0c88f4bf 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteObsoleteReceivedMessagesOperation.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteObsoleteReceivedMessagesOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -19,6 +19,7 @@ import Foundation import OlvidUtils +import CoreData /// Operation executed during bootstrap. It deletes all received messages that are older than 15 days and that have no associated protocol instance. @@ -31,44 +32,37 @@ final class DeleteObsoleteReceivedMessagesOperation: ContextualOperationWithSpec super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + do { - do { - - // Find all old messages - - let fifteenDays = TimeInterval(days: 15) - let oldDate = Date(timeIntervalSinceNow: -fifteenDays) - assert(oldDate < Date()) - - let oldMessages = try ReceivedMessage.getAllReceivedMessageOlderThan(timestamp: oldDate, delegateManager: delegateManager, within: obvContext) - - guard !oldMessages.isEmpty else { return } - - // For each old message, delete the message if it has no associated protocol instance - - for oldMessage in oldMessages { - let protocolInstanceExistForMessage = try ProtocolInstance.exists(cryptoProtocolId: oldMessage.cryptoProtocolId, - uid: oldMessage.protocolInstanceUid, - ownedIdentity: oldMessage.messageId.ownedCryptoIdentity, - within: obvContext) - if !protocolInstanceExistForMessage { - try oldMessage.deleteReceivedMessage() - } - + // Find all old messages + + let fifteenDays = TimeInterval(days: 15) + let oldDate = Date(timeIntervalSinceNow: -fifteenDays) + assert(oldDate < Date()) + + let oldMessages = try ReceivedMessage.getAllReceivedMessageOlderThan(timestamp: oldDate, delegateManager: delegateManager, within: obvContext) + + guard !oldMessages.isEmpty else { return } + + // For each old message, delete the message if it has no associated protocol instance + + for oldMessage in oldMessages { + let protocolInstanceExistForMessage = try ProtocolInstance.exists(cryptoProtocolId: oldMessage.cryptoProtocolId, + uid: oldMessage.protocolInstanceUid, + ownedIdentity: oldMessage.messageId.ownedCryptoIdentity, + within: obvContext) + if !protocolInstanceExistForMessage { + try oldMessage.deleteReceivedMessage() } - } catch { - return cancel(withReason: .coreDataError(error: error)) } + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + + } } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteOwnedIdentityTransferProtocolInstancesOperation.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteOwnedIdentityTransferProtocolInstancesOperation.swift new file mode 100644 index 00000000..df027a20 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteOwnedIdentityTransferProtocolInstancesOperation.swift @@ -0,0 +1,36 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import CoreData + + +final class DeleteOwnedIdentityTransferProtocolInstancesOperation: ContextualOperationWithSpecificReasonForCancel { + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + try ProtocolInstance.deleteOwnedIdentityTransferProtocolInstances(within: obvContext) + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteProtocolInstancesInAFinalStateOperation.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteProtocolInstancesInAFinalStateOperation.swift index e340c611..82152de4 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteProtocolInstancesInAFinalStateOperation.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteProtocolInstancesInAFinalStateOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -19,25 +19,18 @@ import Foundation import OlvidUtils +import CoreData final class DeleteProtocolInstancesInAFinalStateOperation: ContextualOperationWithSpecificReasonForCancel { - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext else { - return cancel(withReason: .contextIsNil) + do { + try ProtocolInstance.deleteProtocolInstancesInAFinalState(within: obvContext) + } catch { + return cancel(withReason: .coreDataError(error: error)) } - obvContext.performAndWait { - - do { - try ProtocolInstance.deleteProtocolInstancesInAFinalState(within: obvContext) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - } - } } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteReceivedMessagesConcerningAnOwnedIdentityTransferProtocolOperation.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteReceivedMessagesConcerningAnOwnedIdentityTransferProtocolOperation.swift new file mode 100644 index 00000000..96791c49 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Operations/DeleteReceivedMessagesConcerningAnOwnedIdentityTransferProtocolOperation.swift @@ -0,0 +1,36 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import CoreData + + +final class DeleteReceivedMessagesConcerningAnOwnedIdentityTransferProtocolOperation: ContextualOperationWithSpecificReasonForCancel { + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + try ReceivedMessage.deleteReceivedMessagesConcerningAnOwnedIdentityTransferProtocol(within: obvContext) + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Operations/ProtocolOperation.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Operations/ProtocolOperation.swift index 09a635e1..79842130 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Operations/ProtocolOperation.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Operations/ProtocolOperation.swift @@ -33,7 +33,7 @@ final class ProtocolOperation: ObvOperation, ObvErrorMaker { private static let logCategory = "ProtocolOperation" let log: OSLog - override var className: String { + override var debugClassName: String { return "ProtocolOperation" } @@ -41,7 +41,7 @@ final class ProtocolOperation: ObvOperation, ObvErrorMaker { // MARK: Instance variables and constants - let receivedMessageId: MessageIdentifier + let receivedMessageId: ObvMessageIdentifier weak var delegateManager: ObvProtocolDelegateManager? = nil private(set) var reasonForCancel: PossibleReasonForCancel? = nil let prng: PRNGService @@ -86,7 +86,7 @@ final class ProtocolOperation: ObvOperation, ObvErrorMaker { // MARK: Initializer - init(receivedMessageId: MessageIdentifier, flowId: FlowIdentifier, delegateManager: ObvProtocolDelegateManager, prng: PRNGService) { + init(receivedMessageId: ObvMessageIdentifier, flowId: FlowIdentifier, delegateManager: ObvProtocolDelegateManager, prng: PRNGService) { self.receivedMessageId = receivedMessageId self.flowId = flowId self.delegateManager = delegateManager @@ -231,7 +231,7 @@ final class ProtocolOperation: ObvOperation, ObvErrorMaker { within: obvContext) for message in messagesToSend { guard let messageToSend = message.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } catch let error { os_log("Could not post a protocol message in order to notify the parent protocol instance: %@", log: log, type: .fault, error.localizedDescription) diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Operations/ProtocolStep.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Operations/ProtocolStep.swift index 93479fd4..3be1961b 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Operations/ProtocolStep.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Operations/ProtocolStep.swift @@ -42,6 +42,9 @@ class ProtocolStep { let solveChallengeDelegate: ObvSolveChallengeDelegate let notificationDelegate: ObvNotificationDelegate let protocolStarterDelegate: ProtocolStarterDelegate + let networkPostDelegate: ObvNetworkPostDelegate // Used when deleting an owned identity + let networkFetchDelegate: ObvNetworkFetchDelegate // Used when deleting an owned identity + let syncSnapshotDelegate: ObvSyncSnapshotDelegate var ownedIdentity: ObvCryptoIdentity { concreteCryptoProtocol.ownedIdentity @@ -92,6 +95,7 @@ class ProtocolStep { return nil } self.solveChallengeDelegate = _solveChallengeDelegate + guard let _notificationDelegate = concreteCryptoProtocol.delegateManager.notificationDelegate else { os_log("The notification delegate is not set", log: log, type: .fault) assertionFailure() @@ -99,6 +103,27 @@ class ProtocolStep { } self.notificationDelegate = _notificationDelegate + guard let _networkPostDelegate = concreteCryptoProtocol.delegateManager.networkPostDelegate else { + os_log("The networkPostDelegate is not set", log: log, type: .fault) + assertionFailure() + return nil + } + self.networkPostDelegate = _networkPostDelegate + + guard let _networkFetchDelegate = concreteCryptoProtocol.delegateManager.networkFetchDelegate else { + os_log("The networkPostDelegate is not set", log: log, type: .fault) + assertionFailure() + return nil + } + self.networkFetchDelegate = _networkFetchDelegate + + guard let _syncSnapshotDelegate = concreteCryptoProtocol.delegateManager.syncSnapshotDelegate else { + os_log("The networkPostDelegate is not set", log: log, type: .fault) + assertionFailure() + return nil + } + self.syncSnapshotDelegate = _syncSnapshotDelegate + do { guard try expectedReceptionChannelInfo.accepts(receivedMessageReceptionChannelInfo, identityDelegate: identityDelegate, within: concreteCryptoProtocol.obvContext) else { os_log("Unexpected receptionChannelInfo (%{public}@ does not accept %{public}@)", log: log, type: .error, expectedReceptionChannelInfo.debugDescription, receivedMessageReceptionChannelInfo.debugDescription) diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocol.swift similarity index 74% rename from Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocol.swift rename to Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocol.swift index df506a4b..9301b02d 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -28,11 +28,11 @@ public struct ChannelCreationWithContactDeviceProtocol: ConcreteCryptoProtocol, static let logCategory = "ChannelCreationWithContactDeviceProtocol" public static let errorDomain = "ChannelCreationWithContactDeviceProtocol" - static let id = CryptoProtocolId.ChannelCreationWithContactDevice + static let id = CryptoProtocolId.channelCreationWithContactDevice - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.Cancelled, - StateId.ChannelConfirmed, - StateId.PingSent] + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.cancelled, + StateId.channelConfirmed, + StateId.pingSent] let ownedIdentity: ObvCryptoIdentity let currentState: ConcreteProtocolState @@ -59,11 +59,7 @@ public struct ChannelCreationWithContactDeviceProtocol: ConcreteCryptoProtocol, return MessageId(rawValue: rawValue) } - static let allStepIds: [ConcreteProtocolStepId] = [StepId.SendPing, - StepId.SendPingOrEphemeralKey, - StepId.SendEphemeralKeyAndK1, - StepId.RecoverK1AndSendK2AndCreateChannel, - StepId.RecoverK2CreateChannelAndSendAck, - StepId.ConfirmChannelAndSendAck, - StepId.ConfirmChannel] + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolMessages.swift similarity index 90% rename from Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolMessages.swift rename to Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolMessages.swift index 8b6506c6..ea7e2709 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -32,23 +32,23 @@ import ObvMetaManager extension ChannelCreationWithContactDeviceProtocol { enum MessageId: Int, ConcreteProtocolMessageId { - case Initial = 0 - case Ping = 1 - case AliceIdentityAndEphemeralKey = 2 - case BobEphemeralKeyAndK1 = 3 - case K2 = 4 - case FirstAck = 5 - case SecondAck = 6 + case initial = 0 + case ping = 1 + case aliceIdentityAndEphemeralKey = 2 + case bobEphemeralKeyAndK1 = 3 + case k2 = 4 + case firstAck = 5 + case secondAck = 6 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { - case .Initial : return InitialMessage.self - case .Ping : return PingMessage.self - case .AliceIdentityAndEphemeralKey : return AliceIdentityAndEphemeralKeyMessage.self - case .BobEphemeralKeyAndK1 : return BobEphemeralKeyAndK1Message.self - case .K2 : return K2Message.self - case .FirstAck : return FirstAckMessage.self - case .SecondAck : return SecondAckMessage.self + case .initial : return InitialMessage.self + case .ping : return PingMessage.self + case .aliceIdentityAndEphemeralKey : return AliceIdentityAndEphemeralKeyMessage.self + case .bobEphemeralKeyAndK1 : return BobEphemeralKeyAndK1Message.self + case .k2 : return K2Message.self + case .firstAck : return FirstAckMessage.self + case .secondAck : return SecondAckMessage.self } } } @@ -58,7 +58,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct InitialMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.Initial + let id: ConcreteProtocolMessageId = MessageId.initial let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -89,7 +89,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct PingMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.Ping + let id: ConcreteProtocolMessageId = MessageId.ping let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -121,7 +121,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct AliceIdentityAndEphemeralKeyMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.AliceIdentityAndEphemeralKey + let id: ConcreteProtocolMessageId = MessageId.aliceIdentityAndEphemeralKey let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -166,7 +166,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct BobEphemeralKeyAndK1Message: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.BobEphemeralKeyAndK1 + let id: ConcreteProtocolMessageId = MessageId.bobEphemeralKeyAndK1 let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -205,7 +205,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct K2Message: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.K2 + let id: ConcreteProtocolMessageId = MessageId.k2 let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -234,7 +234,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct FirstAckMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.FirstAck + let id: ConcreteProtocolMessageId = MessageId.firstAck let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -265,7 +265,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct SecondAckMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.SecondAck + let id: ConcreteProtocolMessageId = MessageId.secondAck let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolStates.swift similarity index 84% rename from Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolStates.swift rename to Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolStates.swift index e29de1a1..07796650 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -32,28 +32,28 @@ extension ChannelCreationWithContactDeviceProtocol { enum StateId: Int, ConcreteProtocolStateId { - case InitialState = 0 + case initialState = 0 // Alice's side - case WaitingForK1 = 1 - case WaitForFirstAck = 2 + case waitingForK1 = 1 + case waitForFirstAck = 2 // Bob's side - case WaitingForK2 = 3 - case WaitForSecondAck = 5 + case waitingForK2 = 3 + case waitForSecondAck = 5 // On Alice's and Bob's sides - case PingSent = 6 - case ChannelConfirmed = 7 - case Cancelled = 8 + case pingSent = 6 + case channelConfirmed = 7 + case cancelled = 8 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .InitialState : return ConcreteProtocolInitialState.self - case .WaitingForK1 : return WaitingForK1State.self - case .WaitForFirstAck : return WaitForFirstAckState.self - case .WaitingForK2 : return WaitingForK2State.self - case .WaitForSecondAck : return WaitForSecondAckState.self - case .PingSent : return PingSentState.self - case .ChannelConfirmed : return ChannelConfirmedState.self - case .Cancelled : return CancelledState.self + case .initialState : return ConcreteProtocolInitialState.self + case .waitingForK1 : return WaitingForK1State.self + case .waitForFirstAck : return WaitForFirstAckState.self + case .waitingForK2 : return WaitingForK2State.self + case .waitForSecondAck : return WaitForSecondAckState.self + case .pingSent : return PingSentState.self + case .channelConfirmed : return ChannelConfirmedState.self + case .cancelled : return CancelledState.self } } } @@ -63,7 +63,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct WaitingForK1State: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.WaitingForK1 + let id: ConcreteProtocolStateId = StateId.waitingForK1 let contactIdentity: ObvCryptoIdentity let contactDeviceUid: UID @@ -97,7 +97,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct WaitForFirstAckState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.WaitForFirstAck + let id: ConcreteProtocolStateId = StateId.waitForFirstAck let contactIdentity: ObvCryptoIdentity let contactDeviceUid: UID @@ -123,7 +123,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct WaitingForK2State: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.WaitingForK2 + let id: ConcreteProtocolStateId = StateId.waitingForK2 let contactIdentity: ObvCryptoIdentity let contactDeviceUid: UID @@ -160,7 +160,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct WaitForSecondAckState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.WaitForSecondAck + let id: ConcreteProtocolStateId = StateId.waitForSecondAck let contactIdentity: ObvCryptoIdentity let contactDeviceUid: UID @@ -187,7 +187,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct PingSentState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.PingSent + let id: ConcreteProtocolStateId = StateId.pingSent init(_: ObvEncoded) {} @@ -201,7 +201,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct ChannelConfirmedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.ChannelConfirmed + let id: ConcreteProtocolStateId = StateId.channelConfirmed init(_: ObvEncoded) {} @@ -216,7 +216,7 @@ extension ChannelCreationWithContactDeviceProtocol { struct CancelledState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Cancelled + let id: ConcreteProtocolStateId = StateId.cancelled init(_: ObvEncoded) {} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolSteps.swift similarity index 74% rename from Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolSteps.swift rename to Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolSteps.swift index ba3682de..7bff3388 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithContactDeviceProtocol/ChannelCreationWithContactDeviceProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -31,38 +31,38 @@ import OlvidUtils extension ChannelCreationWithContactDeviceProtocol { - enum StepId: Int, ConcreteProtocolStepId { + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { - case SendPing = 0 - case SendPingOrEphemeralKey = 1 - case RecoverK1AndSendK2AndCreateChannel = 2 - case ConfirmChannelAndSendAck = 3 - case SendEphemeralKeyAndK1 = 4 - case RecoverK2CreateChannelAndSendAck = 5 - case ConfirmChannel = 6 + case sendPing = 0 + case sendPingOrEphemeralKey = 1 + case recoverK1AndSendK2AndCreateChannel = 2 + case confirmChannelAndSendAck = 3 + case sendEphemeralKeyAndK1 = 4 + case recoverK2CreateChannelAndSendAck = 5 + case confirmChannel = 6 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { - case .SendPing: + case .sendPing: let step = SendPingStep(from: concreteProtocol, and: receivedMessage) return step - case .SendPingOrEphemeralKey: + case .sendPingOrEphemeralKey: let step = SendPingOrEphemeralKeyStep(from: concreteProtocol, and: receivedMessage) return step - case .RecoverK1AndSendK2AndCreateChannel: + case .recoverK1AndSendK2AndCreateChannel: let step = RecoverK1AndSendK2AndCreateChannelStep(from: concreteProtocol, and: receivedMessage) return step - case .ConfirmChannelAndSendAck: + case .confirmChannelAndSendAck: let step = ConfirmChannelAndSendAckStep(from: concreteProtocol, and: receivedMessage) return step - case .SendEphemeralKeyAndK1: + case .sendEphemeralKeyAndK1: let step = SendEphemeralKeyAndK1Step(from: concreteProtocol, and: receivedMessage) return step - case .RecoverK2CreateChannelAndSendAck: + case .recoverK2CreateChannelAndSendAck: let step = RecoverK2CreateChannelAndSendAckStep(from: concreteProtocol, and: receivedMessage) return step - case .ConfirmChannel: + case .confirmChannel: let step = ConfirmChannelStep(from: concreteProtocol, and: receivedMessage) return step } @@ -96,34 +96,36 @@ extension ChannelCreationWithContactDeviceProtocol { let contactIdentity = receivedMessage.contactIdentity let contactDeviceUid = receivedMessage.contactDeviceUid + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep]", log: log, type: .info, contactIdentity.debugDescription) + // Check that the contact identity is trusted by the owned identity running this protocol, i.e., check that the contact identity is part of the owned identity's contacts guard (try? identityDelegate.isIdentity(contactIdentity, aContactIdentityOfTheOwnedIdentity: ownedIdentity, within: obvContext)) == true else { - os_log("The contact identity is not yet trusted", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep] The contact identity is not yet trusted", log: log, type: .error) return CancelledState() } guard try identityDelegate.isContactIdentityActive(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, within: obvContext) else { - os_log("The contact identity is not active", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep] The contact identity is not active", log: log, type: .error) return CancelledState() } // Clean any ongoing instance of this protocol - os_log("Cleaning any ongoing instances of the ChannelCreationWithContactDeviceProtocol", log: log, type: .debug) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep] Cleaning any ongoing instances of the ChannelCreationWithContactDeviceProtocol", log: log, type: .debug) do { if try ChannelCreationWithContactDeviceProtocolInstance.exists(contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid, andOwnedIdentity: ownedIdentity, within: obvContext) { - os_log("There exists a ChannelCreationWithContactDeviceProtocolInstance to clean", log: log, type: .debug) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep] There exists a ChannelCreationWithContactDeviceProtocolInstance to clean", log: log, type: .debug) if let protocolInstanceUid = try ChannelCreationWithContactDeviceProtocolInstance.delete(contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid, andOwnedIdentity: ownedIdentity, within: obvContext) { - os_log("The ChannelCreationWithContactDeviceProtocolInstance to clean has uid %{public}@", log: log, type: .debug, protocolInstanceUid.debugDescription) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep] The ChannelCreationWithContactDeviceProtocolInstance to clean has uid %{public}@", log: log, type: .debug, protocolInstanceUid.debugDescription) let abortProtocolBlock = delegateManager.receivedMessageDelegate.createBlockForAbortingProtocol(withProtocolInstanceUid: protocolInstanceUid, forOwnedIdentity: ownedIdentity, within: obvContext) - os_log("Executing the block allowing to abort the protocol with instance uid %{public}@", log: log, type: .debug, protocolInstanceUid.debugDescription) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep] Executing the block allowing to abort the protocol with instance uid %{public}@", log: log, type: .debug, protocolInstanceUid.debugDescription) abortProtocolBlock() - os_log("The block allowing to clest the protocol with instance uid %{public}@ was executed", log: log, type: .debug, protocolInstanceUid.debugDescription) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep] The block allowing to clest the protocol with instance uid %{public}@ was executed", log: log, type: .debug, protocolInstanceUid.debugDescription) } } } catch { - os_log("Could not check whether a previous instance of this protocol exists, or could not delete it", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep] Could not check whether a previous instance of this protocol exists, or could not delete it", log: log, type: .error) return CancelledState() } @@ -135,7 +137,7 @@ extension ChannelCreationWithContactDeviceProtocol { ofRemoteIdentity: contactIdentity, within: obvContext) } catch { - os_log("Could not delete previous oblivious channel", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep] Could not delete previous oblivious channel", log: log, type: .fault) assertionFailure() return CancelledState() } @@ -146,7 +148,7 @@ extension ChannelCreationWithContactDeviceProtocol { do { currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) } catch { - os_log("Could not get the current device uid", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep] Could not get the current device uid", log: log, type: .error) return CancelledState() } @@ -156,7 +158,7 @@ extension ChannelCreationWithContactDeviceProtocol { do { let challengeType = ChallengeType.channelCreation(firstDeviceUid: contactDeviceUid, secondDeviceUid: currentDeviceUid, firstIdentity: contactIdentity, secondIdentity: ownedIdentity) guard let res = try? solveChallengeDelegate.solveChallenge(challengeType, for: ownedIdentity, using: prng, within: obvContext) else { - os_log("Could not solve challenge", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep] Could not solve challenge", log: log, type: .fault) return CancelledState() } signature = res @@ -171,14 +173,16 @@ extension ChannelCreationWithContactDeviceProtocol { return CancelledState() } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { - os_log("Could not post message", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep] Could not post message", log: log, type: .fault) return CancelledState() } // Return the new state + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingStep] Returning the PingSentState", log: log, type: .info) + return PingSentState() } @@ -212,15 +216,17 @@ extension ChannelCreationWithContactDeviceProtocol { let contactDeviceUid = receivedMessage.contactDeviceUid let signature = receivedMessage.signature + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep]", log: log, type: .info, contactIdentity.debugDescription) + // Make sure the contact identity is trusted (i.e., is part of the ContactIdentity database of the owned identity) guard (try? identityDelegate.isIdentity(contactIdentity, aContactIdentityOfTheOwnedIdentity: ownedIdentity, within: obvContext)) == true else { - os_log("The contact identity is not yet trusted", log: log, type: .debug) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] The contact identity is not yet trusted", log: log, type: .debug) return CancelledState() } guard try identityDelegate.isContactIdentityActive(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, within: obvContext) else { - os_log("The contact identity is not active", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] The contact identity is not active", log: log, type: .error) return CancelledState() } @@ -230,11 +236,11 @@ extension ChannelCreationWithContactDeviceProtocol { let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) let challengeType = ChallengeType.channelCreation(firstDeviceUid: currentDeviceUid, secondDeviceUid: contactDeviceUid, firstIdentity: ownedIdentity, secondIdentity: contactIdentity) guard ObvSolveChallengeStruct.checkResponse(signature, to: challengeType, from: contactIdentity) else { - os_log("The signature is invalid", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] The signature is invalid", log: log, type: .error) return CancelledState() } } catch { - os_log("Could not check the signature", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] Could not check the signature", log: log, type: .fault) return CancelledState() } @@ -246,18 +252,18 @@ extension ChannelCreationWithContactDeviceProtocol { guard !(try ChannelCreationPingSignatureReceived.exists(ownedCryptoIdentity: ownedIdentity, signature: signature, within: obvContext)) else { - os_log("The signature received was already received in a previous protocol message. This should not happen but with a negligible probability. We cancel.", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] The signature received was already received in a previous protocol message. This should not happen but with a negligible probability. We cancel.", log: log, type: .fault) return CancelledState() } } catch { - os_log("We could not perform check whether the signature was already received: %{public}@", log: log, type: .fault, error.localizedDescription) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] We could not perform check whether the signature was already received: %{public}@", log: log, type: .fault, error.localizedDescription) return CancelledState() } guard ChannelCreationPingSignatureReceived(ownedCryptoIdentity: ownedIdentity, signature: signature, within: obvContext) != nil else { - os_log("We could not insert a new ChannelCreationPingSignatureReceived entry", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] We could not insert a new ChannelCreationPingSignatureReceived entry", log: log, type: .fault) return CancelledState() } @@ -271,7 +277,7 @@ extension ChannelCreationWithContactDeviceProtocol { } } } catch { - os_log("Could not check whether a previous instance of this protocol exists, or could not delete it", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] Could not check whether a previous instance of this protocol exists, or could not delete it", log: log, type: .error) return CancelledState() } @@ -284,7 +290,7 @@ extension ChannelCreationWithContactDeviceProtocol { ofRemoteIdentity: contactIdentity, within: obvContext) } catch { - os_log("Could not delete previous oblivious channel", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] Could not delete previous oblivious channel", log: log, type: .fault) assertionFailure() return CancelledState() } @@ -292,7 +298,7 @@ extension ChannelCreationWithContactDeviceProtocol { // Get our own current device UID in order to compare it to the contact device UID guard let currentDeviceUid = try? identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) else { - os_log("Could not find current device uid", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] Could not find current device uid", log: log, type: .fault) return CancelledState() } @@ -302,7 +308,7 @@ extension ChannelCreationWithContactDeviceProtocol { do { let challengeType = ChallengeType.channelCreation(firstDeviceUid: contactDeviceUid, secondDeviceUid: currentDeviceUid, firstIdentity: contactIdentity, secondIdentity: ownedIdentity) guard let res = try? solveChallengeDelegate.solveChallenge(challengeType, for: ownedIdentity, using: prng, within: obvContext) else { - os_log("Could not solve challenge (1)", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] Could not solve challenge (1)", log: log, type: .fault) return CancelledState() } ownSignature = res @@ -313,7 +319,7 @@ extension ChannelCreationWithContactDeviceProtocol { if currentDeviceUid >= contactDeviceUid || (currentDeviceUid == contactDeviceUid && ownedIdentity.getIdentity() >= contactIdentity.getIdentity()) { - os_log("We are *not* in charge of establishing the channel", log: log, type: .debug) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] We are *not* in charge of establishing the channel", log: log, type: .debug) // Send the ping message containing the signature @@ -321,20 +327,20 @@ extension ChannelCreationWithContactDeviceProtocol { let coreMessage = getCoreMessage(for: .AsymmetricChannel(to: contactIdentity, remoteDeviceUids: [contactDeviceUid], fromOwnedIdentity: ownedIdentity)) let concreteProtocolMessage = PingMessage(coreProtocolMessage: coreMessage, contactIdentity: ownedIdentity, contactDeviceUid: currentDeviceUid, signature: ownSignature) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { - os_log("Could not post message", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] Could not post message", log: log, type: .fault) return CancelledState() } // Return the new state - os_log("ChannelCreationWithContactDeviceProtocol: ending SendPingOrEphemeralKeyStep", log: log, type: .debug) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] ChannelCreationWithContactDeviceProtocol: ending SendPingOrEphemeralKeyStep", log: log, type: .debug) return PingSentState() } else { - os_log("We are in charge of establishing the channel", log: log, type: .debug) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] We are in charge of establishing the channel", log: log, type: .debug) // We are in charge of establishing the channel. @@ -361,11 +367,13 @@ extension ChannelCreationWithContactDeviceProtocol { signature: ownSignature, contactEphemeralPublicKey: ephemeralPublicKey) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendPingOrEphemeralKeyStep] Returning the WaitingForK1State", log: log, type: .info) + return WaitingForK1State(contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid, ephemeralPrivateKey: ephemeralPrivateKey) } @@ -400,15 +408,17 @@ extension ChannelCreationWithContactDeviceProtocol { let contactEphemeralPublicKey = receivedMessage.contactEphemeralPublicKey let signature = receivedMessage.signature + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendEphemeralKeyAndK1Step]", log: log, type: .info, contactIdentity.debugDescription) + // Make sure the contact identity is trusted (i.e., is part of the ContactIdentity database of the owned identity) guard (try? identityDelegate.isIdentity(contactIdentity, aContactIdentityOfTheOwnedIdentity: ownedIdentity, within: obvContext)) == true else { - os_log("The contact identity is not yet trusted", log: log, type: .debug) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendEphemeralKeyAndK1Step] The contact identity is not yet trusted", log: log, type: .debug) return CancelledState() } guard try identityDelegate.isContactIdentityActive(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, within: obvContext) else { - os_log("The contact identity is not active", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendEphemeralKeyAndK1Step] The contact identity is not active", log: log, type: .error) return CancelledState() } @@ -418,11 +428,11 @@ extension ChannelCreationWithContactDeviceProtocol { let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) let challengeType = ChallengeType.channelCreation(firstDeviceUid: currentDeviceUid, secondDeviceUid: contactDeviceUid, firstIdentity: ownedIdentity, secondIdentity: contactIdentity) guard ObvSolveChallengeStruct.checkResponse(signature, to: challengeType, from: contactIdentity) else { - os_log("The signature is invalid", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendEphemeralKeyAndK1Step] The signature is invalid", log: log, type: .error) return CancelledState() } } catch { - os_log("Could not check the signature", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendEphemeralKeyAndK1Step] Could not check the signature", log: log, type: .fault) return CancelledState() } @@ -434,12 +444,12 @@ extension ChannelCreationWithContactDeviceProtocol { guard !(try ChannelCreationPingSignatureReceived.exists(ownedCryptoIdentity: ownedIdentity, signature: signature, within: obvContext)) else { - os_log("The signature received was already received in a previous protocol message. This should not happen but with a negligible probability. We cancel.", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendEphemeralKeyAndK1Step] The signature received was already received in a previous protocol message. This should not happen but with a negligible probability. We cancel.", log: log, type: .fault) assertionFailure() return CancelledState() } } catch { - os_log("We could not perform check whether the signature was already received: %{public}@", log: log, type: .fault, error.localizedDescription) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendEphemeralKeyAndK1Step] We could not perform check whether the signature was already received: %{public}@", log: log, type: .fault, error.localizedDescription) assertionFailure() return CancelledState() } @@ -448,19 +458,22 @@ extension ChannelCreationWithContactDeviceProtocol { do { if try ChannelCreationWithContactDeviceProtocolInstance.exists(contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid, andOwnedIdentity: ownedIdentity, within: obvContext) { - os_log("A previous ChannelCreationWithContactDeviceProtocolInstance exists. We abort it", log: log, type: .info) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendEphemeralKeyAndK1Step] A previous ChannelCreationWithContactDeviceProtocolInstance exists. We abort it", log: log, type: .info) + if let protocolInstanceUid = try ChannelCreationWithContactDeviceProtocolInstance.delete(contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid, andOwnedIdentity: ownedIdentity, within: obvContext) { let abortProtocolBlock = delegateManager.receivedMessageDelegate.createBlockForAbortingProtocol(withProtocolInstanceUid: protocolInstanceUid, forOwnedIdentity: ownedIdentity, within: obvContext) abortProtocolBlock() } + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendEphemeralKeyAndK1Step] Restarting channel creation", log: log, type: .info, contactIdentity.debugDescription) + let initialMessageToSend = try delegateManager.protocolStarterDelegate.getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity: ownedIdentity, andTheDeviceUid: contactDeviceUid, ofTheContactIdentity: contactIdentity) - _ = try channelDelegate.post(initialMessageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(initialMessageToSend, randomizedWith: prng, within: obvContext) return CancelledState() } } catch { - os_log("Could not check whether a previous instance of this protocol exists, could not delete it, or could not initiate new ChannelCreationWithContactDeviceProtocol", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendEphemeralKeyAndK1Step] Could not check whether a previous instance of this protocol exists, could not delete it, or could not initiate new ChannelCreationWithContactDeviceProtocol", log: log, type: .error) return CancelledState() } @@ -494,11 +507,13 @@ extension ChannelCreationWithContactDeviceProtocol { contactEphemeralPublicKey: ephemeralPublicKey, c1: c1) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,SendEphemeralKeyAndK1Step] Returning the WaitingForK2State", log: log, type: .info) + return WaitingForK2State(contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid, ephemeralPrivateKey: ephemeralPrivateKey, k1: k1) } } @@ -533,6 +548,8 @@ extension ChannelCreationWithContactDeviceProtocol { let contactEphemeralPublicKey = receivedMessage.contactEphemeralPublicKey let c1 = receivedMessage.c1 + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK1AndSendK2AndCreateChannelStep]", log: log, type: .info, contactIdentity.debugDescription) + // Recover k1 guard let k1 = PublicKeyEncryption.kemDecrypt(c1, using: ephemeralPrivateKey) else { @@ -547,16 +564,16 @@ extension ChannelCreationWithContactDeviceProtocol { // Check the contact is not revoked guard try identityDelegate.isContactIdentityActive(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, within: obvContext) else { - os_log("The contact identity is not active", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK1AndSendK2AndCreateChannelStep] The contact identity is not active", log: log, type: .error) return CancelledState() } // Add the deviceUid for this contact (if it was not already there), and also trigger a device discovery do { - try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, within: obvContext) + try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, createdDuringChannelCreation: true, within: obvContext) } catch { - os_log("Could not add the device uid to the list of device uids of the contact identity", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK1AndSendK2AndCreateChannelStep] Could not add the device uid to the list of device uids of the contact identity", log: log, type: .fault) assertionFailure() // Continue anyway } @@ -573,8 +590,11 @@ extension ChannelCreationWithContactDeviceProtocol { ofRemoteIdentity: contactIdentity, within: obvContext) _ = try ChannelCreationWithContactDeviceProtocolInstance.delete(contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid, andOwnedIdentity: ownedIdentity, within: obvContext) + + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK1AndSendK2AndCreateChannelStep] Restarting channel creation", log: log, type: .info, contactIdentity.debugDescription) + let initialMessageToSend = try delegateManager.protocolStarterDelegate.getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity: ownedIdentity, andTheDeviceUid: contactDeviceUid, ofTheContactIdentity: contactIdentity) - _ = try channelDelegate.post(initialMessageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(initialMessageToSend, randomizedWith: prng, within: obvContext) return CancelledState() } @@ -582,7 +602,7 @@ extension ChannelCreationWithContactDeviceProtocol { do { guard let seed = Seed(withKeys: [k1, k2]) else { - os_log("Could not initialize seed for Oblivious Channel", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK1AndSendK2AndCreateChannelStep] Could not initialize seed for Oblivious Channel", log: log, type: .error) return CancelledState() } let cryptoSuiteVersion = 0 @@ -600,18 +620,20 @@ extension ChannelCreationWithContactDeviceProtocol { let coreMessage = getCoreMessage(for: .AsymmetricChannel(to: contactIdentity, remoteDeviceUids: [contactDeviceUid], fromOwnedIdentity: ownedIdentity)) let concreteProtocolMessage = K2Message(coreProtocolMessage: coreMessage, c2: c2) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Get our own current device UID guard let currentDeviceUid = try? identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) else { - os_log("Could not find current device uid", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK1AndSendK2AndCreateChannelStep] Could not find current device uid", log: log, type: .fault) return CancelledState() } // Return the new state + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK1AndSendK2AndCreateChannelStep] Returning the WaitForFirstAckState", log: log, type: .info) + return WaitForFirstAckState(contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid, currentDeviceUid: currentDeviceUid) } @@ -647,33 +669,35 @@ extension ChannelCreationWithContactDeviceProtocol { let c2 = receivedMessage.c2 + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK2CreateChannelAndSendAckStep]", log: log, type: .info, contactIdentity.debugDescription) + // Recover k2 guard let k2 = PublicKeyEncryption.kemDecrypt(c2, using: ephemeralPrivateKey) else { - os_log("Could not recover k2", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK2CreateChannelAndSendAckStep] Could not recover k2", log: log, type: .error) return CancelledState() } // Check the contact is not revoked guard try identityDelegate.isContactIdentityActive(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, within: obvContext) else { - os_log("The contact identity is not active", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK2CreateChannelAndSendAckStep] The contact identity is not active", log: log, type: .error) return CancelledState() } // Add the contact device uid to the contact identity (if needed) do { - try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, within: obvContext) + try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, createdDuringChannelCreation: true, within: obvContext) } catch { - os_log("Could not add device uid to contact identity", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK2CreateChannelAndSendAckStep] Could not add device uid to contact identity", log: log, type: .fault) return CancelledState() } // Create the seed that will allow to create the Oblivious Channel guard let seed = Seed(withKeys: [k1, k2]) else { - os_log("Could not initialize seed for Oblivious Channel", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK2CreateChannelAndSendAckStep] Could not initialize seed for Oblivious Channel", log: log, type: .error) return CancelledState() } @@ -684,13 +708,18 @@ extension ChannelCreationWithContactDeviceProtocol { // - We finish this protocol instance guard try !channelDelegate.anObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, andRemoteIdentity: contactIdentity, withRemoteDeviceUid: contactDeviceUid, within: obvContext) else { + try channelDelegate.deleteObliviousChannelBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, andTheRemoteDeviceWithUid: contactDeviceUid, ofRemoteIdentity: contactIdentity, within: obvContext) + _ = try ChannelCreationWithContactDeviceProtocolInstance.delete(contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid, andOwnedIdentity: ownedIdentity, within: obvContext) + + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK2CreateChannelAndSendAckStep] Restarting channel creation", log: log, type: .info, contactIdentity.debugDescription) + let initialMessageToSend = try delegateManager.protocolStarterDelegate.getInitialMessageForChannelCreationWithContactDeviceProtocol(betweenTheCurrentDeviceOfOwnedIdentity: ownedIdentity, andTheDeviceUid: contactDeviceUid, ofTheContactIdentity: contactIdentity) - _ = try channelDelegate.post(initialMessageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(initialMessageToSend, randomizedWith: prng, within: obvContext) return CancelledState() } @@ -714,21 +743,23 @@ extension ChannelCreationWithContactDeviceProtocol { let (ownedIdentityDetailsElements, _) = try identityDelegate.getPublishedIdentityDetailsOfOwnedIdentity(ownedIdentity, within: obvContext) let concreteProtocolMessage = FirstAckMessage(coreProtocolMessage: coreMessage, contactIdentityDetailsElements: ownedIdentityDetailsElements) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { - os_log("Could not post ack message", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK2CreateChannelAndSendAckStep] Could not post ack message", log: log, type: .fault) return CancelledState() } // Get our own current device UID guard let currentDeviceUid = try? identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) else { - os_log("Could not find current device uid", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK2CreateChannelAndSendAckStep] Could not find current device uid", log: log, type: .fault) return CancelledState() } // Return the new state + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,RecoverK2CreateChannelAndSendAckStep] Returning the WaitForSecondAckState", log: log, type: .info) + return WaitForSecondAckState(contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid, currentDeviceUid: currentDeviceUid) } @@ -762,6 +793,8 @@ extension ChannelCreationWithContactDeviceProtocol { let contactDeviceUid = startState.contactDeviceUid let contactIdentityDetailsElements = receivedMessage.contactIdentityDetailsElements + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelAndSendAckStep]", log: log, type: .info, contactIdentity.debugDescription) + // Confirm the Oblivious Channel do { @@ -770,7 +803,7 @@ extension ChannelCreationWithContactDeviceProtocol { withRemoteDeviceUid: contactDeviceUid, within: obvContext) } catch { - os_log("Could not confirm Oblivious channel", log: log, type: .error) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelAndSendAckStep] Could not confirm Oblivious channel", log: log, type: .error) return CancelledState() } @@ -779,7 +812,7 @@ extension ChannelCreationWithContactDeviceProtocol { do { try identityDelegate.updatePublishedIdentityDetailsOfContactIdentity(contactIdentity, ofOwnedIdentity: ownedIdentity, with: contactIdentityDetailsElements, allowVersionDowngrade: true, within: obvContext) } catch { - os_log("Could not update the published identity details (1)", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelAndSendAckStep] Could not update the published identity details (1)", log: log, type: .fault) return CancelledState() } @@ -789,7 +822,7 @@ extension ChannelCreationWithContactDeviceProtocol { appropriateDetails.contactIdentityDetailsElements.photoServerKeyAndLabel != nil { let childProtocolInstanceUid = UID.gen(with: prng) let coreMessage = getCoreMessageForOtherLocalProtocol( - otherCryptoProtocolId: .DownloadIdentityPhoto, + otherCryptoProtocolId: .downloadIdentityPhoto, otherProtocolInstanceUid: childProtocolInstanceUid) let childProtocolInitialMessage = DownloadIdentityPhotoChildProtocol.InitialMessage( coreProtocolMessage: coreMessage, @@ -799,11 +832,11 @@ extension ChannelCreationWithContactDeviceProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } catch { - os_log("Could get published/trusted identity details to check if a photo needs to be downloaded", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelAndSendAckStep] Could get published/trusted identity details to check if a photo needs to be downloaded", log: log, type: .fault) } // Delete the ChannelCreationProtocolInstance @@ -811,7 +844,7 @@ extension ChannelCreationWithContactDeviceProtocol { do { _ = try ChannelCreationWithContactDeviceProtocolInstance.delete(contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid, andOwnedIdentity: ownedIdentity, within: obvContext) } catch { - os_log("Could not delete the ChannelCreationWithContactDeviceProtocolInstance", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelAndSendAckStep] Could not delete the ChannelCreationWithContactDeviceProtocolInstance", log: log, type: .fault) return CancelledState() } @@ -826,9 +859,9 @@ extension ChannelCreationWithContactDeviceProtocol { let (ownedIdentityDetailsElements, _) = try identityDelegate.getPublishedIdentityDetailsOfOwnedIdentity(ownedIdentity, within: obvContext) let concreteProtocolMessage = SecondAckMessage(coreProtocolMessage: coreMessage, contactIdentityDetailsElements: ownedIdentityDetailsElements) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { - os_log("Could not post ack message", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelAndSendAckStep] Could not post ack message", log: log, type: .fault) return CancelledState() } @@ -839,7 +872,7 @@ extension ChannelCreationWithContactDeviceProtocol { let channel = ObvChannelSendChannelType.Local(ownedIdentity: ownedIdentity) let newProtocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: channel, - cryptoProtocolId: .ContactCapabilitiesDiscovery, + cryptoProtocolId: .contactCapabilitiesDiscovery, protocolInstanceUid: newProtocolInstanceUid) let message = DeviceCapabilitiesDiscoveryProtocol.InitialSingleContactDeviceMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentity, @@ -850,9 +883,9 @@ extension ChannelCreationWithContactDeviceProtocol { throw Self.makeError(message: "Implementation error") } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { - os_log("Failed to inform our contact of the current device capabilities", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelAndSendAckStep] Failed to inform our contact of the current device capabilities", log: log, type: .fault) assertionFailure() // Continue anyway } @@ -867,7 +900,7 @@ extension ChannelCreationWithContactDeviceProtocol { let channel = ObvChannelSendChannelType.Local(ownedIdentity: ownedIdentity) let newProtocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: channel, - cryptoProtocolId: .OneToOneContactInvitation, + cryptoProtocolId: .oneToOneContactInvitation, protocolInstanceUid: newProtocolInstanceUid) let message = OneToOneContactInvitationProtocol.InitialOneToOneStatusSyncRequestMessage(coreProtocolMessage: coreMessage, contactsToSync: Set([contactIdentity])) guard let messageToSend = message.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -875,9 +908,9 @@ extension ChannelCreationWithContactDeviceProtocol { throw Self.makeError(message: "Implementation error") } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { - os_log("Failed to request our own OneToOne status to our contact", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelAndSendAckStep] Failed to request our own OneToOne status to our contact", log: log, type: .fault) assertionFailure() // Continue anyway } @@ -886,6 +919,8 @@ extension ChannelCreationWithContactDeviceProtocol { // Return the new state + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelAndSendAckStep] Returning the ChannelConfirmedState", log: log, type: .info) + return ChannelConfirmedState() } @@ -919,6 +954,8 @@ extension ChannelCreationWithContactDeviceProtocol { let contactDeviceUid = startState.contactDeviceUid let contactIdentityDetailsElements = receivedMessage.contactIdentityDetailsElements + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelStep]", log: log, type: .info, contactIdentity.debugDescription) + // Confirm the Oblivious Channel do { @@ -927,7 +964,7 @@ extension ChannelCreationWithContactDeviceProtocol { withRemoteDeviceUid: contactDeviceUid, within: obvContext) } catch { - os_log("Could not confirm Oblivious channel", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelStep] Could not confirm Oblivious channel", log: log, type: .fault) return CancelledState() } @@ -936,7 +973,7 @@ extension ChannelCreationWithContactDeviceProtocol { do { try identityDelegate.updatePublishedIdentityDetailsOfContactIdentity(contactIdentity, ofOwnedIdentity: ownedIdentity, with: contactIdentityDetailsElements, allowVersionDowngrade: true, within: obvContext) } catch { - os_log("Could not update the published identity details (2)", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelStep] Could not update the published identity details (2)", log: log, type: .fault) return CancelledState() } @@ -946,7 +983,7 @@ extension ChannelCreationWithContactDeviceProtocol { appropriateDetails.contactIdentityDetailsElements.photoServerKeyAndLabel != nil { let childProtocolInstanceUid = UID.gen(with: prng) let coreMessage = getCoreMessageForOtherLocalProtocol( - otherCryptoProtocolId: .DownloadIdentityPhoto, + otherCryptoProtocolId: .downloadIdentityPhoto, otherProtocolInstanceUid: childProtocolInstanceUid) let childProtocolInitialMessage = DownloadIdentityPhotoChildProtocol.InitialMessage( coreProtocolMessage: coreMessage, @@ -956,11 +993,11 @@ extension ChannelCreationWithContactDeviceProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } catch { - os_log("Could get published/trusted identity details to check if a photo needs to be downloaded", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelStep] Could get published/trusted identity details to check if a photo needs to be downloaded", log: log, type: .fault) } // Delete the ChannelCreationProtocolInstance @@ -968,7 +1005,7 @@ extension ChannelCreationWithContactDeviceProtocol { do { _ = try ChannelCreationWithContactDeviceProtocolInstance.delete(contactIdentity: contactIdentity, contactDeviceUid: contactDeviceUid, andOwnedIdentity: ownedIdentity, within: obvContext) } catch { - os_log("Could not delete the ChannelCreationWithContactDeviceProtocolInstance", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelStep] Could not delete the ChannelCreationWithContactDeviceProtocolInstance", log: log, type: .fault) return CancelledState() } @@ -979,7 +1016,7 @@ extension ChannelCreationWithContactDeviceProtocol { let channel = ObvChannelSendChannelType.Local(ownedIdentity: ownedIdentity) let newProtocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: channel, - cryptoProtocolId: .ContactCapabilitiesDiscovery, + cryptoProtocolId: .contactCapabilitiesDiscovery, protocolInstanceUid: newProtocolInstanceUid) let message = DeviceCapabilitiesDiscoveryProtocol.InitialSingleContactDeviceMessage(coreProtocolMessage: coreMessage, contactIdentity: contactIdentity, @@ -990,9 +1027,9 @@ extension ChannelCreationWithContactDeviceProtocol { throw DeviceCapabilitiesDiscoveryProtocol.makeError(message: "Implementation error") } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { - os_log("Failed to inform our contact of the current device capabilities", log: log, type: .fault) + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelStep] Failed to inform our contact of the current device capabilities", log: log, type: .fault) assertionFailure() // Continue anyway } @@ -1001,6 +1038,8 @@ extension ChannelCreationWithContactDeviceProtocol { // Return the new state + os_log("🛟 [%{public}@] [ChannelCreationWithContactDeviceProtocol,ConfirmChannelStep] Returning the ChannelConfirmedState", log: log, type: .info) + return ChannelConfirmedState() } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocol.swift new file mode 100644 index 00000000..7a4434eb --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocol.swift @@ -0,0 +1,66 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import ObvTypes +import ObvCrypto +import OlvidUtils + +public struct ChannelCreationWithOwnedDeviceProtocol: ConcreteCryptoProtocol, ObvErrorMaker { + + static let logCategory = "ChannelCreationWithOwnedDeviceProtocol" + public static let errorDomain = "ChannelCreationWithOwnedDeviceProtocol" + + static let id = CryptoProtocolId.channelCreationWithOwnedDevice + + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.cancelled, + StateId.channelConfirmed, + StateId.pingSent] + + let ownedIdentity: ObvCryptoIdentity + let currentState: ConcreteProtocolState + + let delegateManager: ObvProtocolDelegateManager + let obvContext: ObvContext + let prng: PRNGService + let instanceUid: UID + + init(instanceUid: UID, currentState: ConcreteProtocolState, ownedCryptoIdentity: ObvCryptoIdentity, delegateManager: ObvProtocolDelegateManager, prng: PRNGService, within obvContext: ObvContext) { + self.currentState = currentState + self.ownedIdentity = ownedCryptoIdentity + self.delegateManager = delegateManager + self.obvContext = obvContext + self.prng = prng + self.instanceUid = instanceUid + } + + static func stateId(fromRawValue rawValue: Int) -> ConcreteProtocolStateId? { + return StateId(rawValue: rawValue) + } + + static func messageId(fromRawValue rawValue: Int) -> ConcreteProtocolMessageId? { + return MessageId(rawValue: rawValue) + } + + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } +} + diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocolMessages.swift new file mode 100644 index 00000000..d8fa673d --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocolMessages.swift @@ -0,0 +1,294 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvCrypto +import ObvEncoder +import ObvTypes +import ObvOperation +import ObvMetaManager + + +// MARK: - Protocol Messages + +extension ChannelCreationWithOwnedDeviceProtocol { + + enum MessageId: Int, ConcreteProtocolMessageId { + case initial = 0 + case ping = 1 + case aliceIdentityAndEphemeralKey = 2 + case bobEphemeralKeyAndK1 = 3 + case k2 = 4 + case firstAck = 5 + case secondAck = 6 + + var concreteProtocolMessageType: ConcreteProtocolMessage.Type { + switch self { + case .initial : return InitialMessage.self + case .ping : return PingMessage.self + case .aliceIdentityAndEphemeralKey : return AliceIdentityAndEphemeralKeyMessage.self + case .bobEphemeralKeyAndK1 : return BobEphemeralKeyAndK1Message.self + case .k2 : return K2Message.self + case .firstAck : return FirstAckMessage.self + case .secondAck : return SecondAckMessage.self + } + } + } + + + // MARK: - InitialMessage + + struct InitialMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.initial + let coreProtocolMessage: CoreProtocolMessage + + // Properties specific to this concrete protocol message + + let remoteDeviceUid: UID + + var encodedInputs: [ObvEncoded] { + return [remoteDeviceUid.obvEncode()] + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + self.remoteDeviceUid = try message.encodedInputs.obvDecode() + } + + init(coreProtocolMessage: CoreProtocolMessage, remoteDeviceUid: UID) { + self.coreProtocolMessage = coreProtocolMessage + self.remoteDeviceUid = remoteDeviceUid + } + } + + + // MARK: - PingMessage + + struct PingMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.ping + let coreProtocolMessage: CoreProtocolMessage + + // Properties specific to this concrete protocol message + + let remoteDeviceUid: UID + let signature: Data + + var encodedInputs: [ObvEncoded] { + return [remoteDeviceUid.obvEncode(), signature.obvEncode()] + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + let encodedElements = message.encodedInputs + (remoteDeviceUid, signature) = try encodedElements.obvDecode() + } + + init(coreProtocolMessage: CoreProtocolMessage, remoteDeviceUid: UID, signature: Data) { + self.coreProtocolMessage = coreProtocolMessage + self.remoteDeviceUid = remoteDeviceUid + self.signature = signature + } + } + + + // MARK: - AliceIdentityAndEphemeralKeyMessage + + struct AliceIdentityAndEphemeralKeyMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.aliceIdentityAndEphemeralKey + let coreProtocolMessage: CoreProtocolMessage + + // Properties specific to this concrete protocol message + + let remoteDeviceUid: UID + let signature: Data + let remoteEphemeralPublicKey: PublicKeyForPublicKeyEncryption + + var encodedInputs: [ObvEncoded] { + return [remoteDeviceUid.obvEncode(), signature.obvEncode(), remoteEphemeralPublicKey.obvEncode()] + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + let encodedElements = message.encodedInputs + guard encodedElements.count == 3 else { + throw ChannelCreationWithOwnedDeviceProtocol.makeError(message: "Expecting 3 encoded elements in AliceIdentityAndEphemeralKeyMessage, got \(encodedElements.count)") + } + remoteDeviceUid = try encodedElements[0].obvDecode() + signature = try encodedElements[1].obvDecode() + guard let pk = PublicKeyForPublicKeyEncryptionDecoder.obvDecode(encodedElements[2]) else { + throw Self.makeError(message: "Could not decode public key in AliceIdentityAndEphemeralKeyMessage") + } + remoteEphemeralPublicKey = pk + } + + init(coreProtocolMessage: CoreProtocolMessage, remoteDeviceUid: UID, signature: Data, remoteEphemeralPublicKey: PublicKeyForPublicKeyEncryption) { + self.coreProtocolMessage = coreProtocolMessage + self.remoteDeviceUid = remoteDeviceUid + self.signature = signature + self.remoteEphemeralPublicKey = remoteEphemeralPublicKey + } + } + + + // MARK: - BobEphemeralKeyAndK1Message + + struct BobEphemeralKeyAndK1Message: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.bobEphemeralKeyAndK1 + let coreProtocolMessage: CoreProtocolMessage + + // Properties specific to this concrete protocol message + + let remoteEphemeralPublicKey: PublicKeyForPublicKeyEncryption + let c1: EncryptedData + + var encodedInputs: [ObvEncoded] { + return [remoteEphemeralPublicKey.obvEncode(), c1.obvEncode()] + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + let encodedElements = message.encodedInputs + guard encodedElements.count == 2 else { + throw ChannelCreationWithOwnedDeviceProtocol.makeError(message: "Expecting 2 encoded elements in BobEphemeralKeyAndK1Message, got \(encodedElements.count)") + } + guard let pk = PublicKeyForPublicKeyEncryptionDecoder.obvDecode(encodedElements[0]) else { + throw Self.makeError(message: "Could not decode public key in BobEphemeralKeyAndK1Message") + } + remoteEphemeralPublicKey = pk + c1 = try encodedElements[1].obvDecode() + } + + init(coreProtocolMessage: CoreProtocolMessage, remoteEphemeralPublicKey: PublicKeyForPublicKeyEncryption, c1: EncryptedData) { + self.coreProtocolMessage = coreProtocolMessage + self.remoteEphemeralPublicKey = remoteEphemeralPublicKey + self.c1 = c1 + } + } + + + // MARK: - K2Message + + struct K2Message: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.k2 + let coreProtocolMessage: CoreProtocolMessage + + // Properties specific to this concrete protocol message + + let c2: EncryptedData + + var encodedInputs: [ObvEncoded] { + return [c2.obvEncode()] + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + c2 = try message.encodedInputs.obvDecode() + } + + init(coreProtocolMessage: CoreProtocolMessage, c2: EncryptedData) { + self.coreProtocolMessage = coreProtocolMessage + self.c2 = c2 + } + } + + + // MARK: - FirstAckMessage + + struct FirstAckMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.firstAck + let coreProtocolMessage: CoreProtocolMessage + + // Properties specific to this concrete protocol message + + let remoteIdentityDetailsElements: IdentityDetailsElements + + var encodedInputs: [ObvEncoded] { + get throws { + let encodedContactIdentityDetailsElements = try remoteIdentityDetailsElements.jsonEncode() + return [encodedContactIdentityDetailsElements.obvEncode()] + } + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + let encodedRemoteIdentityDetailsElements: Data = try message.encodedInputs.obvDecode() + self.remoteIdentityDetailsElements = try IdentityDetailsElements(encodedRemoteIdentityDetailsElements) + } + + init(coreProtocolMessage: CoreProtocolMessage, remoteIdentityDetailsElements: IdentityDetailsElements) { + self.coreProtocolMessage = coreProtocolMessage + self.remoteIdentityDetailsElements = remoteIdentityDetailsElements + } + } + + + // MARK: - SecondAckMessage + + struct SecondAckMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.secondAck + let coreProtocolMessage: CoreProtocolMessage + + // Properties specific to this concrete protocol message + + let remoteIdentityDetailsElements: IdentityDetailsElements + + var encodedInputs: [ObvEncoded] { + get throws { + let encodedContactIdentityDetailsElements = try remoteIdentityDetailsElements.jsonEncode() + return [encodedContactIdentityDetailsElements.obvEncode()] + } + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + let encodedRemoteIdentityDetailsElements: Data = try message.encodedInputs.obvDecode() + self.remoteIdentityDetailsElements = try IdentityDetailsElements(encodedRemoteIdentityDetailsElements) + } + + init(coreProtocolMessage: CoreProtocolMessage, remoteIdentityDetailsElements: IdentityDetailsElements) { + self.coreProtocolMessage = coreProtocolMessage + self.remoteIdentityDetailsElements = remoteIdentityDetailsElements + } + } + +} + diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocolStates.swift new file mode 100644 index 00000000..e23e4ba3 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocolStates.swift @@ -0,0 +1,233 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvCrypto +import ObvEncoder +import ObvTypes +import ObvOperation + + +// MARK: - Protocol States + +extension ChannelCreationWithOwnedDeviceProtocol { + + enum StateId: Int, ConcreteProtocolStateId { + + case initialState = 0 + // Current device's side + case waitingForK1 = 1 + case waitForFirstAck = 2 + // Remote device's side + case waitingForK2 = 3 + case waitForSecondAck = 5 + // On Alice's and Bob's sides + case pingSent = 6 + case channelConfirmed = 7 + case cancelled = 8 + + var concreteProtocolStateType: ConcreteProtocolState.Type { + switch self { + case .initialState : return ConcreteProtocolInitialState.self + case .waitingForK1 : return WaitingForK1State.self + case .waitForFirstAck : return WaitForFirstAckState.self + case .waitingForK2 : return WaitingForK2State.self + case .waitForSecondAck : return WaitForSecondAckState.self + case .pingSent : return PingSentState.self + case .channelConfirmed : return ChannelConfirmedState.self + case .cancelled : return CancelledState.self + } + } + } + + + // MARK: - WaitingForK1State + + struct WaitingForK1State: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.waitingForK1 + + let remoteDeviceUid: UID + let ephemeralPrivateKey: PrivateKeyForPublicKeyEncryption + + init(_ encoded: ObvEncoded) throws { + guard let encodedElements = [ObvEncoded](encoded, expectedCount: 2) else { + throw ChannelCreationWithOwnedDeviceProtocol.makeError(message: "Unexpected number of encoded elements in WaitingForK1State") + } + self.remoteDeviceUid = try encodedElements[0].obvDecode() + guard let ephemeralPrivateKey = PrivateKeyForPublicKeyEncryptionDecoder.obvDecode(encodedElements[1]) else { + throw ChannelCreationWithOwnedDeviceProtocol.makeError(message: "Could not decode private key in WaitingForK1State") + } + self.ephemeralPrivateKey = ephemeralPrivateKey + } + + init(remoteDeviceUid: UID, ephemeralPrivateKey: PrivateKeyForPublicKeyEncryption) { + self.remoteDeviceUid = remoteDeviceUid + self.ephemeralPrivateKey = ephemeralPrivateKey + } + + func obvEncode() -> ObvEncoded { + return [remoteDeviceUid, ephemeralPrivateKey].obvEncode() + } + } + + + // MARK: - WaitingForFirstAckState + + struct WaitForFirstAckState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.waitForFirstAck + + let remoteDeviceUid: UID + + init(_ encoded: ObvEncoded) throws { + do { + guard let encodedElements = [ObvEncoded](encoded, expectedCount: 1) else { + assertionFailure() + throw ChannelCreationWithOwnedDeviceProtocol.makeError(message: "Unexpected number of encoded elements in WaitingForK1State") + } + self.remoteDeviceUid = try encodedElements[0].obvDecode() + } catch { + assertionFailure() + throw error + } + } + + init(remoteDeviceUid: UID) { + self.remoteDeviceUid = remoteDeviceUid + } + + func obvEncode() -> ObvEncoded { + return [remoteDeviceUid].obvEncode() + } + } + + + // MARK: - WaitingForK2State + + struct WaitingForK2State: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.waitingForK2 + + let remoteDeviceUid: UID + let ephemeralPrivateKey: PrivateKeyForPublicKeyEncryption + let k1: AuthenticatedEncryptionKey + + init(_ encoded: ObvEncoded) throws { + guard let encodedElements = [ObvEncoded](encoded, expectedCount: 3) else { + throw ChannelCreationWithOwnedDeviceProtocol.makeError(message: "Unexpected number of encoded elements in WaitingForK2State") + } + self.remoteDeviceUid = try encodedElements[0].obvDecode() + guard let ephemeralPrivateKey = PrivateKeyForPublicKeyEncryptionDecoder.obvDecode(encodedElements[1]) else { + throw ChannelCreationWithOwnedDeviceProtocol.makeError(message: "Could not decode private key in WaitingForK2State") + } + self.ephemeralPrivateKey = ephemeralPrivateKey + k1 = try AuthenticatedEncryptionKeyDecoder.decode(encodedElements[2]) + } + + init(remoteDeviceUid: UID, ephemeralPrivateKey: PrivateKeyForPublicKeyEncryption, k1: AuthenticatedEncryptionKey) { + self.remoteDeviceUid = remoteDeviceUid + self.ephemeralPrivateKey = ephemeralPrivateKey + self.k1 = k1 + } + + func obvEncode() -> ObvEncoded { + return [remoteDeviceUid, ephemeralPrivateKey, k1].obvEncode() + } + } + + + // MARK: - WaitForSecondAckState + + struct WaitForSecondAckState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.waitForSecondAck + + let remoteDeviceUid: UID + + init(_ encoded: ObvEncoded) throws { + do { + guard let encodedElements = [ObvEncoded](encoded, expectedCount: 1) else { + assertionFailure() + throw ChannelCreationWithOwnedDeviceProtocol.makeError(message: "Unexpected number of encoded elements in WaitingForK1State") + } + self.remoteDeviceUid = try encodedElements[0].obvDecode() + } catch { + assertionFailure() + throw error + } + } + + init(remoteDeviceUid: UID) { + self.remoteDeviceUid = remoteDeviceUid + } + + func obvEncode() -> ObvEncoded { + return [remoteDeviceUid].obvEncode() + } + + } + + + // MARK: - PingSentState + + struct PingSentState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.pingSent + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + + } + + // MARK: - ChannelConfirmedState + + struct ChannelConfirmedState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.channelConfirmed + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + + } + + + // MARK: - CancelledState + + struct CancelledState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.cancelled + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + } + +} + diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocolSteps.swift new file mode 100644 index 00000000..8f69a055 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ChannelCreation/ChannelCreationWithOwnedDeviceProtocol/ChannelCreationWithOwnedDeviceProtocolSteps.swift @@ -0,0 +1,975 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvCrypto +import ObvEncoder +import ObvTypes +import ObvOperation +import ObvMetaManager +import OlvidUtils + +// MARK: - Protocol Steps + +extension ChannelCreationWithOwnedDeviceProtocol { + + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { + + case sendPing = 0 + case sendPingOrEphemeralKey = 1 + case recoverK1AndSendK2AndCreateChannel = 2 + case confirmChannelAndSendAck = 3 + case sendEphemeralKeyAndK1 = 4 + case recoverK2CreateChannelAndSendAck = 5 + case confirmChannel = 6 + + func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { + switch self { + + case .sendPing: + let step = SendPingStep(from: concreteProtocol, and: receivedMessage) + return step + case .sendPingOrEphemeralKey: + let step = SendPingOrEphemeralKeyStep(from: concreteProtocol, and: receivedMessage) + return step + case .recoverK1AndSendK2AndCreateChannel: + let step = RecoverK1AndSendK2AndCreateChannelStep(from: concreteProtocol, and: receivedMessage) + return step + case .confirmChannelAndSendAck: + let step = ConfirmChannelAndSendAckStep(from: concreteProtocol, and: receivedMessage) + return step + case .sendEphemeralKeyAndK1: + let step = SendEphemeralKeyAndK1Step(from: concreteProtocol, and: receivedMessage) + return step + case .recoverK2CreateChannelAndSendAck: + let step = RecoverK2CreateChannelAndSendAckStep(from: concreteProtocol, and: receivedMessage) + return step + case .confirmChannel: + let step = ConfirmChannelStep(from: concreteProtocol, and: receivedMessage) + return step + } + } + + } + + + // MARK: - SendPingStep + + final class SendPingStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: InitialMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: ChannelCreationWithOwnedDeviceProtocol.InitialMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ChannelCreationWithOwnedDeviceProtocol.logCategory) + + let remoteDeviceUid = receivedMessage.remoteDeviceUid + + // Check that the remote device Uid is not the current device Uid + + let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) + + guard remoteDeviceUid != currentDeviceUid else { + os_log("Trying to run a ChannelCreationWithOwnedDeviceProtocol with our currentDeviceUid", log: log, type: .fault) + assertionFailure() + return CancelledState() + } + + // Clean any ongoing instance of this protocol + + os_log("Cleaning any ongoing instances of the ChannelCreationWithOwnedDeviceProtocol", log: log, type: .debug) + do { + if try ChannelCreationWithOwnedDeviceProtocolInstance.exists(ownedCryptoIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid, within: obvContext) { + os_log("There exists a ChannelCreationWithOwnedDeviceProtocolInstance to clean", log: log, type: .debug) + let protocolInstanceUids = try ChannelCreationWithOwnedDeviceProtocolInstance.deleteAll(ownedCryptoIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid, within: obvContext) + for protocolInstanceUid in protocolInstanceUids { + os_log("The ChannelCreationWithOwnedDeviceProtocolInstance to clean has uid %{public}@", log: log, type: .debug, protocolInstanceUid.debugDescription) + let abortProtocolBlock = delegateManager.receivedMessageDelegate.createBlockForAbortingProtocol(withProtocolInstanceUid: protocolInstanceUid, forOwnedIdentity: ownedIdentity, within: obvContext) + os_log("Executing the block allowing to abort the protocol with instance uid %{public}@", log: log, type: .debug, protocolInstanceUid.debugDescription) + abortProtocolBlock() + os_log("The block allowing to clest the protocol with instance uid %{public}@ was executed", log: log, type: .debug, protocolInstanceUid.debugDescription) + } + } + } catch { + os_log("Could not check whether a previous instance of this protocol exists, or could not delete it", log: log, type: .error) + return CancelledState() + } + + // Clear any already created ObliviousChannel + + do { + try channelDelegate.deleteObliviousChannelBetweenCurentDeviceWithUid(currentDeviceUid: currentDeviceUid, + andTheRemoteDeviceWithUid: remoteDeviceUid, + ofRemoteIdentity: ownedIdentity, + within: obvContext) + } catch { + os_log("Could not delete previous oblivious channel", log: log, type: .fault) + assertionFailure() + return CancelledState() + } + + // Send a signed ping proving you trust the contact and have no channel with him + + let signature: Data + do { + let challengeType = ChallengeType.channelCreation(firstDeviceUid: remoteDeviceUid, secondDeviceUid: currentDeviceUid, firstIdentity: ownedIdentity, secondIdentity: ownedIdentity) + guard let res = try? solveChallengeDelegate.solveChallenge(challengeType, for: ownedIdentity, using: prng, within: obvContext) else { + os_log("Could not solve challenge", log: log, type: .fault) + return CancelledState() + } + signature = res + } + + // Send the ping message containing the signature + + do { + let coreMessage = getCoreMessage(for: .AsymmetricChannel(to: ownedIdentity, remoteDeviceUids: [remoteDeviceUid], fromOwnedIdentity: ownedIdentity)) + let concreteProtocolMessage = PingMessage(coreProtocolMessage: coreMessage, remoteDeviceUid: currentDeviceUid, signature: signature) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + return CancelledState() + } + + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } catch { + os_log("Could not post message", log: log, type: .fault) + return CancelledState() + } + + // Return the new state + + return PingSentState() + + } + + } + + + // MARK: - SendPingOrEphemeralKeyStep + + final class SendPingOrEphemeralKeyStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: PingMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: ChannelCreationWithOwnedDeviceProtocol.PingMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AsymmetricChannel, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ChannelCreationWithOwnedDeviceProtocol.logCategory) + + let remoteDeviceUid = receivedMessage.remoteDeviceUid + let signature = receivedMessage.signature + + // Check that the remote device Uid is not the current device Uid + + let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) + + guard remoteDeviceUid != currentDeviceUid else { + os_log("Trying to run a ChannelCreationWithOwnedDeviceProtocol with our currentDeviceUid", log: log, type: .fault) + assertionFailure() + return CancelledState() + } + + // Verify the signature + + let challengeType = ChallengeType.channelCreation(firstDeviceUid: currentDeviceUid, secondDeviceUid: remoteDeviceUid, firstIdentity: ownedIdentity, secondIdentity: ownedIdentity) + guard ObvSolveChallengeStruct.checkResponse(signature, to: challengeType, from: ownedIdentity) else { + os_log("The signature is invalid", log: log, type: .error) + return CancelledState() + } + + // If we reach this point, we have a valid signature => the remote device of our owned identity does not have an Oblivious channel with our current device + + // We make sure we are not facing a replay attack + + do { + guard !(try ChannelCreationPingSignatureReceived.exists(ownedCryptoIdentity: ownedIdentity, + signature: signature, + within: obvContext)) else { + os_log("The signature received was already received in a previous protocol message. This should not happen but with a negligible probability. We cancel.", log: log, type: .fault) + return CancelledState() + } + } catch { + os_log("We could not perform check whether the signature was already received: %{public}@", log: log, type: .fault, error.localizedDescription) + return CancelledState() + } + + guard ChannelCreationPingSignatureReceived(ownedCryptoIdentity: ownedIdentity, + signature: signature, + within: obvContext) != nil else { + os_log("We could not insert a new ChannelCreationPingSignatureReceived entry", log: log, type: .fault) + return CancelledState() + } + + // Clean any ongoing instance of this protocol + + do { + if try ChannelCreationWithOwnedDeviceProtocolInstance.exists(ownedCryptoIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid, within: obvContext) { + let protocolInstanceUids = try ChannelCreationWithOwnedDeviceProtocolInstance.deleteAll(ownedCryptoIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid, within: obvContext) + for protocolInstanceUid in protocolInstanceUids { + let abortProtocolBlock = delegateManager.receivedMessageDelegate.createBlockForAbortingProtocol(withProtocolInstanceUid: protocolInstanceUid, forOwnedIdentity: ownedIdentity, within: obvContext) + abortProtocolBlock() + } + } + } catch { + os_log("Could not check whether a previous instance of this protocol exists, or could not delete it", log: log, type: .error) + return CancelledState() + } + + + // Clear any already created ObliviousChannel + + do { + try channelDelegate.deleteObliviousChannelBetweenCurentDeviceWithUid(currentDeviceUid: currentDeviceUid, + andTheRemoteDeviceWithUid: remoteDeviceUid, + ofRemoteIdentity: ownedIdentity, + within: obvContext) + } catch { + os_log("Could not delete previous oblivious channel", log: log, type: .fault) + assertionFailure() + return CancelledState() + } + + // Compute a signature to prove we trust the contact and don't have any channel/ongoing protocol with him + + let ownSignature: Data + do { + let challengeType = ChallengeType.channelCreation(firstDeviceUid: remoteDeviceUid, secondDeviceUid: currentDeviceUid, firstIdentity: ownedIdentity, secondIdentity: ownedIdentity) + guard let res = try? solveChallengeDelegate.solveChallenge(challengeType, for: ownedIdentity, using: prng, within: obvContext) else { + os_log("Could not solve challenge (1)", log: log, type: .fault) + return CancelledState() + } + ownSignature = res + } + + // If we are "in charge" (small device uid), send an ephemeral key. + // Otherwise, simply send a ping back + + if currentDeviceUid >= remoteDeviceUid { + + os_log("We are *not* in charge of establishing the channel", log: log, type: .debug) + + // Send the ping message containing the signature + + do { + let coreMessage = getCoreMessage(for: .AsymmetricChannel(to: ownedIdentity, remoteDeviceUids: [remoteDeviceUid], fromOwnedIdentity: ownedIdentity)) + let concreteProtocolMessage = PingMessage(coreProtocolMessage: coreMessage, remoteDeviceUid: currentDeviceUid, signature: ownSignature) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } catch { + os_log("Could not post message", log: log, type: .fault) + return CancelledState() + } + + // Return the new state + + os_log("ChannelCreationWithOwnedDeviceProtocol: ending SendPingOrEphemeralKeyStep", log: log, type: .debug) + return PingSentState() + + } else { + + os_log("We are in charge of establishing the channel", log: log, type: .debug) + + // We are in charge of establishing the channel. + + // Create a new ChannelCreationWithOwnedDeviceProtocolInstance entry in database + + _ = ChannelCreationWithOwnedDeviceProtocolInstance(protocolInstanceUid: protocolInstanceUid, + ownedIdentity: ownedIdentity, + remoteDeviceUid: remoteDeviceUid, + delegateManager: delegateManager, + within: obvContext) + + // Generate an ephemeral pair of encryption keys + + let ephemeralPublicKey: PublicKeyForPublicKeyEncryption + let ephemeralPrivateKey: PrivateKeyForPublicKeyEncryption + do { + let PublicKeyEncryptionImplementation = ObvCryptoSuite.sharedInstance.getDefaultPublicKeyEncryptionImplementationByteId().algorithmImplementation + (ephemeralPublicKey, ephemeralPrivateKey) = PublicKeyEncryptionImplementation.generateKeyPair(with: prng) + } + + // Send the public key to Bob, together with our own identity and current device uid + + do { + let coreMessage = getCoreMessage(for: .AsymmetricChannel(to: ownedIdentity, remoteDeviceUids: [remoteDeviceUid], fromOwnedIdentity: ownedIdentity)) + let concreteProtocolMessage = AliceIdentityAndEphemeralKeyMessage(coreProtocolMessage: coreMessage, + remoteDeviceUid: currentDeviceUid, + signature: ownSignature, + remoteEphemeralPublicKey: ephemeralPublicKey) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + + // Return the new state + + return WaitingForK1State(remoteDeviceUid: remoteDeviceUid, ephemeralPrivateKey: ephemeralPrivateKey) + + } + } + } + + + // MARK: - SendEphemeralKeyAndK1Step + + final class SendEphemeralKeyAndK1Step: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: AliceIdentityAndEphemeralKeyMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: ChannelCreationWithOwnedDeviceProtocol.AliceIdentityAndEphemeralKeyMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AsymmetricChannel, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ChannelCreationWithOwnedDeviceProtocol.logCategory) + + let remoteDeviceUid = receivedMessage.remoteDeviceUid + let remoteEphemeralPublicKey = receivedMessage.remoteEphemeralPublicKey + let signature = receivedMessage.signature + + // Check that the remote device Uid is not the current device Uid + + let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) + + guard remoteDeviceUid != currentDeviceUid else { + os_log("Trying to run a ChannelCreationWithOwnedDeviceProtocol with our currentDeviceUid", log: log, type: .fault) + assertionFailure() + return CancelledState() + } + + // Verify the signature + + do { + let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) + let challengeType = ChallengeType.channelCreation(firstDeviceUid: currentDeviceUid, secondDeviceUid: remoteDeviceUid, firstIdentity: ownedIdentity, secondIdentity: ownedIdentity) + guard ObvSolveChallengeStruct.checkResponse(signature, to: challengeType, from: ownedIdentity) else { + os_log("The signature is invalid", log: log, type: .error) + return CancelledState() + } + } catch { + os_log("Could not check the signature", log: log, type: .fault) + return CancelledState() + } + + // If we reach this point, we have a valid signature => we have no Oblivious channel with our owned remote device + + // We make sure we are not facing a replay attack + + do { + guard !(try ChannelCreationPingSignatureReceived.exists(ownedCryptoIdentity: ownedIdentity, + signature: signature, + within: obvContext)) else { + os_log("The signature received was already received in a previous protocol message. This should not happen but with a negligible probability. We cancel.", log: log, type: .fault) + assertionFailure() + return CancelledState() + } + } catch { + os_log("We could not perform check whether the signature was already received: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + return CancelledState() + } + + // Check whether there already is an instance of this protocol running. If this is the case, abort it, terminate this protocol, and restart it with a fresh ping. + + do { + if try ChannelCreationWithOwnedDeviceProtocolInstance.exists(ownedCryptoIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid, within: obvContext) { + os_log("A previous ChannelCreationWithOwnedDeviceProtocolInstance exists. We abort it", log: log, type: .info) + let protocolInstanceUids = try ChannelCreationWithOwnedDeviceProtocolInstance.deleteAll(ownedCryptoIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid, within: obvContext) + for protocolInstanceUid in protocolInstanceUids { + let abortProtocolBlock = delegateManager.receivedMessageDelegate.createBlockForAbortingProtocol(withProtocolInstanceUid: protocolInstanceUid, forOwnedIdentity: ownedIdentity, within: obvContext) + abortProtocolBlock() + } + + let initialMessageToSend = try protocolStarterDelegate.getInitialMessageForChannelCreationWithOwnedDeviceProtocol(ownedIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid) + _ = try channelDelegate.postChannelMessage(initialMessageToSend, randomizedWith: prng, within: obvContext) + + return CancelledState() + } + } catch { + os_log("Could not check whether a previous instance of this protocol exists, could not delete it, or could not initiate new ChannelCreationWithOwnedDeviceProtocol", log: log, type: .error) + return CancelledState() + } + + // If we reach this point, there was no previous instance of this protocol. We create it now + + _ = ChannelCreationWithOwnedDeviceProtocolInstance(protocolInstanceUid: protocolInstanceUid, + ownedIdentity: ownedIdentity, + remoteDeviceUid: remoteDeviceUid, + delegateManager: delegateManager, + within: obvContext) + + // Generate an ephemeral pair of encryption keys + + let ephemeralPublicKey: PublicKeyForPublicKeyEncryption + let ephemeralPrivateKey: PrivateKeyForPublicKeyEncryption + do { + let PublicKeyEncryptionImplementation = ObvCryptoSuite.sharedInstance.getDefaultPublicKeyEncryptionImplementationByteId().algorithmImplementation + (ephemeralPublicKey, ephemeralPrivateKey) = PublicKeyEncryptionImplementation.generateKeyPair(with: prng) + } + + // Generate k1 + + let (c1, k1) = PublicKeyEncryption.kemEncrypt(using: remoteEphemeralPublicKey, with: prng) + + // Send the ephemeral public key and k1 to Alice + + do { + let coreMessage = getCoreMessage(for: .AsymmetricChannel(to: ownedIdentity, remoteDeviceUids: [remoteDeviceUid], fromOwnedIdentity: ownedIdentity)) + let concreteProtocolMessage = BobEphemeralKeyAndK1Message(coreProtocolMessage: coreMessage, + remoteEphemeralPublicKey: ephemeralPublicKey, + c1: c1) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + + // Return the new state + + return WaitingForK2State(remoteDeviceUid: remoteDeviceUid, ephemeralPrivateKey: ephemeralPrivateKey, k1: k1) + + } + } + + + // MARK: - RecoverK1AndSendK2AndCreateChannelStep + + final class RecoverK1AndSendK2AndCreateChannelStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: WaitingForK1State + let receivedMessage: BobEphemeralKeyAndK1Message + + init?(startState: WaitingForK1State, receivedMessage: ChannelCreationWithOwnedDeviceProtocol.BobEphemeralKeyAndK1Message, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AsymmetricChannel, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ChannelCreationWithOwnedDeviceProtocol.logCategory) + + let remoteDeviceUid = startState.remoteDeviceUid + let ephemeralPrivateKey = startState.ephemeralPrivateKey + + let remoteEphemeralPublicKey = receivedMessage.remoteEphemeralPublicKey + let c1 = receivedMessage.c1 + + // Check that the remote device Uid is not the current device Uid + + let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) + + guard remoteDeviceUid != currentDeviceUid else { + os_log("Trying to run a ChannelCreationWithOwnedDeviceProtocol with our currentDeviceUid", log: log, type: .fault) + assertionFailure() + return CancelledState() + } + + // Recover k1 + + guard let k1 = PublicKeyEncryption.kemDecrypt(c1, using: ephemeralPrivateKey) else { + os_log("Could not recover k1", log: log, type: .error) + return CancelledState() + } + + // Generate k2 + + let (c2, k2) = PublicKeyEncryption.kemEncrypt(using: remoteEphemeralPublicKey, with: prng) + + // Add the remoteDeviceUid for this owned identity (if it was not already there) + + do { + try identityDelegate.addOtherDeviceForOwnedIdentity(ownedIdentity, withUid: remoteDeviceUid, createdDuringChannelCreation: true, within: obvContext) + } catch { + os_log("Could not add the device uid to the list of device uids of the contact identity", log: log, type: .fault) + assertionFailure() + // Continue anyway + } + + // At this point, if a channel exist (rare case), we cannot create a new one. If this occurs: + // - We destroy it (as we are in a situation where we know we should create a new one) + // - Since we want to restart this protocol, we clean the ChannelCreationWithOwnedDeviceProtocolInstance entry + // - We send a ping to restart the whole process of creating a channel + // - We finish this protocol instance + + guard try !channelDelegate.anObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, andRemoteIdentity: ownedIdentity, withRemoteDeviceUid: remoteDeviceUid, within: obvContext) else { + try channelDelegate.deleteObliviousChannelBetweenCurentDeviceWithUid(currentDeviceUid: currentDeviceUid, + andTheRemoteDeviceWithUid: remoteDeviceUid, + ofRemoteIdentity: ownedIdentity, + within: obvContext) + _ = try ChannelCreationWithOwnedDeviceProtocolInstance.deleteAll(ownedCryptoIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid, within: obvContext) + let initialMessageToSend = try delegateManager.protocolStarterDelegate.getInitialMessageForChannelCreationWithOwnedDeviceProtocol(ownedIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid) + _ = try channelDelegate.postChannelMessage(initialMessageToSend, randomizedWith: prng, within: obvContext) + return CancelledState() + } + + // Create the Oblivious Channel using the seed derived from k1 and k2 + + do { + guard let seed = Seed(withKeys: [k1, k2]) else { + os_log("Could not initialize seed for Oblivious Channel", log: log, type: .error) + return CancelledState() + } + let cryptoSuiteVersion = 0 + try channelDelegate.createObliviousChannelBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, + andRemoteIdentity: ownedIdentity, + withRemoteDeviceUid: remoteDeviceUid, + with: seed, + cryptoSuiteVersion: cryptoSuiteVersion, + within: obvContext) + } + + // Send the k2 to Bob + + do { + let coreMessage = getCoreMessage(for: .AsymmetricChannel(to: ownedIdentity, remoteDeviceUids: [remoteDeviceUid], fromOwnedIdentity: ownedIdentity)) + let concreteProtocolMessage = K2Message(coreProtocolMessage: coreMessage, c2: c2) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + + // Return the new state + + return WaitForFirstAckState(remoteDeviceUid: remoteDeviceUid) + + } + } + + + // MARK: - RecoverK2CreateChannelAndSendAckStep + + final class RecoverK2CreateChannelAndSendAckStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: WaitingForK2State + let receivedMessage: K2Message + + init?(startState: WaitingForK2State, receivedMessage: ChannelCreationWithOwnedDeviceProtocol.K2Message, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AsymmetricChannel, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ChannelCreationWithOwnedDeviceProtocol.logCategory) + + let remoteDeviceUid = startState.remoteDeviceUid + let ephemeralPrivateKey = startState.ephemeralPrivateKey + let k1 = startState.k1 + + let c2 = receivedMessage.c2 + + // Check that the remote device Uid is not the current device Uid + + let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) + + guard remoteDeviceUid != currentDeviceUid else { + os_log("Trying to run a ChannelCreationWithOwnedDeviceProtocol with our currentDeviceUid", log: log, type: .fault) + assertionFailure() + return CancelledState() + } + + // Recover k2 + + guard let k2 = PublicKeyEncryption.kemDecrypt(c2, using: ephemeralPrivateKey) else { + os_log("Could not recover k2", log: log, type: .error) + return CancelledState() + } + + // Add the remoteDeviceUid for this owned identity (if it was not already there) + + do { + try identityDelegate.addOtherDeviceForOwnedIdentity(ownedIdentity, withUid: remoteDeviceUid, createdDuringChannelCreation: true, within: obvContext) + } catch { + os_log("Could not add the device uid to the list of device uids of the contact identity", log: log, type: .fault) + assertionFailure() + // Continue anyway + } + + // Create the seed that will allow to create the Oblivious Channel + + guard let seed = Seed(withKeys: [k1, k2]) else { + os_log("Could not initialize seed for Oblivious Channel", log: log, type: .error) + return CancelledState() + } + + // At this point, if a channel exist (rare case), we cannot create a new one. If this occurs: + // - We destroy it (as we are in a situation where we know we should create a new one) + // - Since we want to restart this protocol, we clean the ChannelCreationWithOwnedDeviceProtocolInstance entry + // - We send a ping to restart the whole process of creating a channel + // - We finish this protocol instance + + guard try !channelDelegate.anObliviousChannelExistsBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, andRemoteIdentity: ownedIdentity, withRemoteDeviceUid: remoteDeviceUid, within: obvContext) else { + try channelDelegate.deleteObliviousChannelBetweenCurentDeviceWithUid(currentDeviceUid: currentDeviceUid, + andTheRemoteDeviceWithUid: remoteDeviceUid, + ofRemoteIdentity: ownedIdentity, + within: obvContext) + _ = try ChannelCreationWithOwnedDeviceProtocolInstance.deleteAll(ownedCryptoIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid, within: obvContext) + let initialMessageToSend = try delegateManager.protocolStarterDelegate.getInitialMessageForChannelCreationWithOwnedDeviceProtocol(ownedIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid) + _ = try channelDelegate.postChannelMessage(initialMessageToSend, randomizedWith: prng, within: obvContext) + return CancelledState() + } + + // If reach this point, there is no existing channel between our current device and the contact device. + // We create the Oblivious Channel using the seed. + + do { + let cryptoSuiteVersion = 0 + try channelDelegate.createObliviousChannelBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, + andRemoteIdentity: ownedIdentity, + withRemoteDeviceUid: remoteDeviceUid, + with: seed, + cryptoSuiteVersion: cryptoSuiteVersion, + within: obvContext) + } + + // Send the message trigerring the next step, where we check that the contact identity is trusted and create the oblivious channel if this is the case + + do { + let coreMessage = getCoreMessage(for: .ObliviousChannel(to: ownedIdentity, remoteDeviceUids: [remoteDeviceUid], fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: false)) + let (ownedIdentityDetailsElements, _) = try identityDelegate.getPublishedIdentityDetailsOfOwnedIdentity(ownedIdentity, within: obvContext) + let concreteProtocolMessage = FirstAckMessage(coreProtocolMessage: coreMessage, remoteIdentityDetailsElements: ownedIdentityDetailsElements) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } catch { + os_log("Could not post ack message", log: log, type: .fault) + return CancelledState() + } + + // Return the new state + + return WaitForSecondAckState(remoteDeviceUid: remoteDeviceUid) + + } + } + + + // MARK: - ConfirmChannelAndSendAckStep + + final class ConfirmChannelAndSendAckStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: WaitForFirstAckState + let receivedMessage: FirstAckMessage + + init?(startState: WaitForFirstAckState, receivedMessage: ChannelCreationWithOwnedDeviceProtocol.FirstAckMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .ObliviousChannel(remoteCryptoIdentity: concreteCryptoProtocol.ownedIdentity, + remoteDeviceUid: startState.remoteDeviceUid), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ChannelCreationWithOwnedDeviceProtocol.logCategory) + + let remoteDeviceUid = startState.remoteDeviceUid + let remoteIdentityDetailsElements = receivedMessage.remoteIdentityDetailsElements + + // Confirm the Oblivious Channel + + do { + try channelDelegate.confirmObliviousChannelBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, + andRemoteIdentity: ownedIdentity, + withRemoteDeviceUid: remoteDeviceUid, + within: obvContext) + } catch { + os_log("Could not confirm Oblivious channel", log: log, type: .error) + return CancelledState() + } + + // Update the published details with the remote details if they are newer. In that case, we might need to re-download the photo + + let photoDownloadNeeded: Bool + do { + photoDownloadNeeded = try identityDelegate.updateOwnedPublishedDetailsWithOtherDetailsIfNewer(ownedIdentity, with: remoteIdentityDetailsElements, within: obvContext) + } catch { + os_log("Failed to update owned published details with other details: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + photoDownloadNeeded = false + // In production, continue + } + + do { + if photoDownloadNeeded { + let childProtocolInstanceUid = UID.gen(with: prng) + let coreMessage = getCoreMessageForOtherLocalProtocol( + otherCryptoProtocolId: .downloadIdentityPhoto, + otherProtocolInstanceUid: childProtocolInstanceUid) + let childProtocolInitialMessage = DownloadIdentityPhotoChildProtocol.InitialMessage( + coreProtocolMessage: coreMessage, + contactIdentity: ownedIdentity, + contactIdentityDetailsElements: remoteIdentityDetailsElements) + guard let messageToSend = childProtocolInitialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + assertionFailure() + throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + } catch { + os_log("Failed to request the download of the new owned profile picture: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + // In production, continue + } + + // Delete the ChannelCreationProtocolInstance + + do { + _ = try ChannelCreationWithOwnedDeviceProtocolInstance.deleteAll(ownedCryptoIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid, within: obvContext) + } catch { + os_log("Could not delete the ChannelCreationWithOwnedDeviceProtocolInstance", log: log, type: .fault) + return CancelledState() + } + + // Send ack to Bob + + do { + let channelType = ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, + remoteDeviceUids: [remoteDeviceUid], + fromOwnedIdentity: ownedIdentity, + necessarilyConfirmed: true) + let coreMessage = getCoreMessage(for: channelType) + let (ownedIdentityDetailsElements, _) = try identityDelegate.getPublishedIdentityDetailsOfOwnedIdentity(ownedIdentity, within: obvContext) + let concreteProtocolMessage = SecondAckMessage(coreProtocolMessage: coreMessage, remoteIdentityDetailsElements: ownedIdentityDetailsElements) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } catch { + os_log("Could not post ack message", log: log, type: .fault) + return CancelledState() + } + + // Make sure this device capabilities are sent to Bob's device + + do { + let channel = ObvChannelSendChannelType.Local(ownedIdentity: ownedIdentity) + let newProtocolInstanceUid = UID.gen(with: prng) + let coreMessage = CoreProtocolMessage(channelType: channel, + cryptoProtocolId: .contactCapabilitiesDiscovery, + protocolInstanceUid: newProtocolInstanceUid) + let message = DeviceCapabilitiesDiscoveryProtocol.InitialSingleOwnedDeviceMessage( + coreProtocolMessage: coreMessage, + otherOwnedDeviceUid: remoteDeviceUid, + isResponse: false) + guard let messageToSend = message.generateObvChannelProtocolMessageToSend(with: prng) else { + assertionFailure() + throw Self.makeError(message: "Implementation error") + } + do { + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } catch { + os_log("Failed to inform our contact of the current device capabilities", log: log, type: .fault) + assertionFailure() + // Continue anyway + } + } + + // Initiate a device synchronization protocol (that will be in an ongoing state for the lifetime of the new other device) + +// do { +// let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) +// let protocolInstanceUid = try SynchronizationProtocol.computeOngoingProtocolInstanceUid(ownedCryptoId: ownedIdentity, currentDeviceUid: currentDeviceUid, otherOwnedDeviceUid: remoteDeviceUid) +// let coreMessage = CoreProtocolMessage( +// channelType: .Local(ownedIdentity: ownedIdentity), +// cryptoProtocolId: .synchronization, +// protocolInstanceUid: protocolInstanceUid) +// let concreteProtocolMessage = SynchronizationProtocol.InitiateSyncSnapshotMessage(coreProtocolMessage: coreMessage, otherOwnedDeviceUID: remoteDeviceUid) +// guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); return nil } +// _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) +// } + + // Return the new state + + return ChannelConfirmedState() + + } + } + + + // MARK: - ConfirmChannelStep + + final class ConfirmChannelStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: WaitForSecondAckState + let receivedMessage: SecondAckMessage + + init?(startState: WaitForSecondAckState, receivedMessage: ChannelCreationWithOwnedDeviceProtocol.SecondAckMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .ObliviousChannel(remoteCryptoIdentity: concreteCryptoProtocol.ownedIdentity, + remoteDeviceUid: startState.remoteDeviceUid), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ChannelCreationWithOwnedDeviceProtocol.logCategory) + + let remoteDeviceUid = startState.remoteDeviceUid + let remoteIdentityDetailsElements = receivedMessage.remoteIdentityDetailsElements + + // Confirm the Oblivious Channel + + do { + try channelDelegate.confirmObliviousChannelBetweenTheCurrentDeviceOf(ownedIdentity: ownedIdentity, + andRemoteIdentity: ownedIdentity, + withRemoteDeviceUid: remoteDeviceUid, + within: obvContext) + } catch { + os_log("Could not confirm Oblivious channel", log: log, type: .fault) + return CancelledState() + } + + // Update the published details with the remote details if they are newer. In that case, we might need to re-download the photo + + let photoDownloadNeeded: Bool + do { + photoDownloadNeeded = try identityDelegate.updateOwnedPublishedDetailsWithOtherDetailsIfNewer(ownedIdentity, with: remoteIdentityDetailsElements, within: obvContext) + } catch { + os_log("Failed to update owned published details with other details: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + photoDownloadNeeded = false + // In production, continue + } + + do { + if photoDownloadNeeded { + let childProtocolInstanceUid = UID.gen(with: prng) + let coreMessage = getCoreMessageForOtherLocalProtocol( + otherCryptoProtocolId: .downloadIdentityPhoto, + otherProtocolInstanceUid: childProtocolInstanceUid) + let childProtocolInitialMessage = DownloadIdentityPhotoChildProtocol.InitialMessage( + coreProtocolMessage: coreMessage, + contactIdentity: ownedIdentity, + contactIdentityDetailsElements: remoteIdentityDetailsElements) + guard let messageToSend = childProtocolInitialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + assertionFailure() + throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + } catch { + os_log("Failed to request the download of the new owned profile picture: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + // In production, continue + } + + // Delete the ChannelCreationProtocolInstance + + do { + _ = try ChannelCreationWithOwnedDeviceProtocolInstance.deleteAll(ownedCryptoIdentity: ownedIdentity, remoteDeviceUid: remoteDeviceUid, within: obvContext) + } catch { + os_log("Could not delete the ChannelCreationWithOwnedDeviceProtocolInstance", log: log, type: .fault) + return CancelledState() + } + + // Make sure this device capabilities are sent to Alice's device + + do { + let channel = ObvChannelSendChannelType.Local(ownedIdentity: ownedIdentity) + let newProtocolInstanceUid = UID.gen(with: prng) + let coreMessage = CoreProtocolMessage(channelType: channel, + cryptoProtocolId: .contactCapabilitiesDiscovery, + protocolInstanceUid: newProtocolInstanceUid) + let message = DeviceCapabilitiesDiscoveryProtocol.InitialSingleOwnedDeviceMessage( + coreProtocolMessage: coreMessage, + otherOwnedDeviceUid: remoteDeviceUid, + isResponse: false) + guard let messageToSend = message.generateObvChannelProtocolMessageToSend(with: prng) else { + assertionFailure() + throw Self.makeError(message: "Implementation error") + } + do { + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } catch { + os_log("Failed to inform our contact of the current device capabilities", log: log, type: .fault) + assertionFailure() + // Continue anyway + } + } + + // Initiate a device synchronization protocol (that will be in an ongoing state for the lifetime of the new other device) + +// do { +// let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) +// let protocolInstanceUid = try SynchronizationProtocol.computeOngoingProtocolInstanceUid(ownedCryptoId: ownedIdentity, currentDeviceUid: currentDeviceUid, otherOwnedDeviceUid: remoteDeviceUid) +// let coreMessage = CoreProtocolMessage( +// channelType: .Local(ownedIdentity: ownedIdentity), +// cryptoProtocolId: .synchronization, +// protocolInstanceUid: protocolInstanceUid) +// let concreteProtocolMessage = SynchronizationProtocol.InitiateSyncSnapshotMessage(coreProtocolMessage: coreMessage, otherOwnedDeviceUID: remoteDeviceUid) +// guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); return nil } +// _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) +// } + + // Return the new state + + return ChannelConfirmedState() + + } + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocol.swift index 9aaf0230..8281367e 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,9 +27,9 @@ public struct ContactManagementProtocol: ConcreteCryptoProtocol { static let logCategory = "ContactManagementProtocol" - static let id = CryptoProtocolId.ContactManagement + static let id = CryptoProtocolId.contactManagement - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.Final, StateId.Cancelled] + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.final, StateId.cancelled] let ownedIdentity: ObvCryptoIdentity let currentState: ConcreteProtocolState diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocolMessages.swift index 18240ff7..03ae9990 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -30,21 +30,23 @@ extension ContactManagementProtocol { enum MessageId: Int, ConcreteProtocolMessageId { - case InitiateContactDeletion = 0 - case ContactDeletionNotification = 1 - case PropagateContactDeletion = 2 - case InitiateContactDowngrade = 3 - case DowngradeNotification = 4 - case PropagateDowngrade = 5 + case initiateContactDeletion = 0 + case contactDeletionNotification = 1 + case propagateContactDeletion = 2 + case initiateContactDowngrade = 3 + case downgradeNotification = 4 + case propagateDowngrade = 5 + case performContactDeviceDiscovery = 6 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { - case .InitiateContactDeletion : return InitiateContactDeletionMessage.self - case .ContactDeletionNotification : return ContactDeletionNotificationMessage.self - case .PropagateContactDeletion : return PropagateContactDeletionMessage.self - case .InitiateContactDowngrade : return InitiateContactDowngradeMessage.self - case .DowngradeNotification : return DowngradeNotificationMessage.self - case .PropagateDowngrade : return PropagateDowngradeMessage.self + case .initiateContactDeletion : return InitiateContactDeletionMessage.self + case .contactDeletionNotification : return ContactDeletionNotificationMessage.self + case .propagateContactDeletion : return PropagateContactDeletionMessage.self + case .initiateContactDowngrade : return InitiateContactDowngradeMessage.self + case .downgradeNotification : return DowngradeNotificationMessage.self + case .propagateDowngrade : return PropagateDowngradeMessage.self + case .performContactDeviceDiscovery: return PerformContactDeviceDiscoveryMessage.self } } } @@ -54,7 +56,7 @@ extension ContactManagementProtocol { struct InitiateContactDeletionMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.InitiateContactDeletion + let id: ConcreteProtocolMessageId = MessageId.initiateContactDeletion let coreProtocolMessage: CoreProtocolMessage let contactIdentity: ObvCryptoIdentity @@ -78,7 +80,7 @@ extension ContactManagementProtocol { struct ContactDeletionNotificationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.ContactDeletionNotification + let id: ConcreteProtocolMessageId = MessageId.contactDeletionNotification let coreProtocolMessage: CoreProtocolMessage var encodedInputs: [ObvEncoded] { return [] } @@ -98,7 +100,7 @@ extension ContactManagementProtocol { struct PropagateContactDeletionMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.PropagateContactDeletion + let id: ConcreteProtocolMessageId = MessageId.propagateContactDeletion let coreProtocolMessage: CoreProtocolMessage let contactIdentity: ObvCryptoIdentity @@ -122,7 +124,7 @@ extension ContactManagementProtocol { struct InitiateContactDowngradeMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.InitiateContactDowngrade + let id: ConcreteProtocolMessageId = MessageId.initiateContactDowngrade let coreProtocolMessage: CoreProtocolMessage let contactIdentity: ObvCryptoIdentity @@ -146,7 +148,7 @@ extension ContactManagementProtocol { struct DowngradeNotificationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.DowngradeNotification + let id: ConcreteProtocolMessageId = MessageId.downgradeNotification let coreProtocolMessage: CoreProtocolMessage var encodedInputs: [ObvEncoded] { return [] } @@ -166,7 +168,7 @@ extension ContactManagementProtocol { struct PropagateDowngradeMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.PropagateDowngrade + let id: ConcreteProtocolMessageId = MessageId.propagateDowngrade let coreProtocolMessage: CoreProtocolMessage let contactIdentity: ObvCryptoIdentity @@ -185,4 +187,24 @@ extension ContactManagementProtocol { } + + // MARK: - PerformContactDeviceDiscoveryMessage + + struct PerformContactDeviceDiscoveryMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.performContactDeviceDiscovery + let coreProtocolMessage: CoreProtocolMessage + + var encodedInputs: [ObvEncoded] { return [] } + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + } + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + } + + } + } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocolStates.swift index 83ac2767..1f2925e3 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,15 +29,15 @@ extension ContactManagementProtocol { enum StateId: Int, ConcreteProtocolStateId { - case InitialState = 0 - case Final = 1 - case Cancelled = 99 + case initialState = 0 + case final = 1 + case cancelled = 99 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .InitialState : return ConcreteProtocolInitialState.self - case .Final : return FinalState.self - case .Cancelled : return CancelledState.self + case .initialState : return ConcreteProtocolInitialState.self + case .final : return FinalState.self + case .cancelled : return CancelledState.self } } @@ -47,7 +47,7 @@ extension ContactManagementProtocol { struct FinalState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Final + let id: ConcreteProtocolStateId = StateId.final func obvEncode() -> ObvEncoded { return 0.obvEncode() } @@ -62,7 +62,7 @@ extension ContactManagementProtocol { struct CancelledState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Cancelled + let id: ConcreteProtocolStateId = StateId.cancelled init(_: ObvEncoded) throws {} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocolSteps.swift index 00d09301..30a91c5d 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactManagementProtocol/ContactManagementProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -31,36 +31,41 @@ extension ContactManagementProtocol { enum StepId: Int, ConcreteProtocolStepId, CaseIterable { - case DeleteContact = 0 - case ProcessContactDeletionNotification = 1 - case ProcessPropagatedContactDeletion = 2 + case deleteContact = 0 + case processContactDeletionNotification = 1 + case processPropagatedContactDeletion = 2 - case DowngradeContact = 3 - case ProcessDowngrade = 4 - case ProcessPropagatedDowngrade = 5 + case downgradeContact = 3 + case processDowngrade = 4 + case processPropagatedDowngrade = 5 + + case processPerformContactDeviceDiscoveryMessage = 6 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { - case .DeleteContact: + case .deleteContact: let step = DeleteContactStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessContactDeletionNotification: + case .processContactDeletionNotification: let step = ProcessContactDeletionNotificationStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessPropagatedContactDeletion: + case .processPropagatedContactDeletion: let step = ProcessPropagatedContactDeletionStep(from: concreteProtocol, and: receivedMessage) return step - case .DowngradeContact: + case .downgradeContact: let step = DowngradeContactStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessDowngrade: + case .processDowngrade: let step = ProcessDowngradeStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessPropagatedDowngrade: + case .processPropagatedDowngrade: let step = ProcessPropagatedDowngradeStep(from: concreteProtocol, and: receivedMessage) return step + case .processPerformContactDeviceDiscoveryMessage: + let step = ProcessPerformContactDeviceDiscoveryMessageStep(from: concreteProtocol, and: receivedMessage) + return step } } } @@ -103,7 +108,7 @@ extension ContactManagementProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return CancelledState() } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Notify contact (we need the oblivious channel --> before deleting the contact). Do so only if we still have a confirmed oblivious channel with this contact. @@ -125,7 +130,7 @@ extension ContactManagementProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return CancelledState() } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Delete all channels @@ -165,7 +170,7 @@ extension ContactManagementProtocol { } let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: groupInformationWithPhoto.associatedProtocolUid) let concreteProtocolMessage = GroupManagementProtocol.RemoveGroupMembersMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation, @@ -173,7 +178,7 @@ extension ContactManagementProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return CancelledState() } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } @@ -294,7 +299,7 @@ extension ContactManagementProtocol { } let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: groupInformationWithPhoto.associatedProtocolUid) let concreteProtocolMessage = GroupManagementProtocol.RemoveGroupMembersMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation, @@ -302,7 +307,7 @@ extension ContactManagementProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return CancelledState() } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } @@ -406,7 +411,7 @@ extension ContactManagementProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ProtocolMessageToSend for OneToOneInvitationMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Propagate the downgrade decision to our other owned devices @@ -420,7 +425,7 @@ extension ContactManagementProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not propagate OneToOne invitation to other devices.", log: log, type: .fault) assertionFailure() @@ -530,5 +535,49 @@ extension ContactManagementProtocol { } } + + + // MARK: - ProcessPerformContactDeviceDiscoveryMessageStep + + final class ProcessPerformContactDeviceDiscoveryMessageStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: PerformContactDeviceDiscoveryMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: PerformContactDeviceDiscoveryMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AnyObliviousChannel(ownedIdentity: concreteCryptoProtocol.ownedIdentity), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: IdentityDetailsPublicationProtocol.logCategory) + + // Determine the origin of the message + + guard let contactIdentity = receivedMessage.receptionChannelInfo?.getRemoteIdentity() else { + os_log("Could not determine the remote identity (ProcessNewMembersStep)", log: log, type: .error) + assertionFailure() + return CancelledState() + } + + // The contact who sent us this message certainly has updated her owned devices. We perform a contact device discovery to find out about the latest list of devices + + do { + let messageToSend = try protocolStarterDelegate.getInitialMessageForContactDeviceDiscoveryProtocol(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: concreteCryptoProtocol.prng, within: obvContext) + } + + return FinalState() + + } + + } } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocol.swift index 5690fd40..05aa4299 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -31,10 +31,10 @@ public struct ContactMutualIntroductionProtocol: ConcreteCryptoProtocol, ObvErro static let id = CryptoProtocolId.ContactMutualIntroduction - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.Cancelled, - StateId.ContactsIntroduced, - StateId.InvitationRejected, - StateId.MutualTrustEstablished] + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.cancelled, + StateId.contactsIntroduced, + StateId.invitationRejected, + StateId.mutualTrustEstablished] let ownedIdentity: ObvCryptoIdentity let currentState: ConcreteProtocolState @@ -63,24 +63,18 @@ public struct ContactMutualIntroductionProtocol: ConcreteCryptoProtocol, ObvErro return MessageId(rawValue: rawValue) } - static let allStepIds: [ConcreteProtocolStepId] = [StepId.IntroduceContacts, - StepId.CheckTrustLevelsAndShowDialog, - StepId.PropagateInviteResponse, - StepId.ProcessPropagatedInviteResponse, - StepId.PropagateNotificationAddTrustAndSendAck, - StepId.ProcessPropagatedNotificationAndAddTrust, - StepId.NotifyMutualTrustEstablished, - StepId.RecheckTrustLevelsAfterTrustLevelIncrease] - + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } } extension ContactMutualIntroductionProtocol { - // A introduced identity is either "accepted" because it already is part of our contacts (case 0), because the trust we have in the mediator is high enough (case 1), or requires an intervention of the user (case 2). This value is essentially used to determine which dialogs to send to the user during the protocol. + // A introduced identity is either "accepted" because it already is part of our contacts (case 0), because the trust we have in the mediator is high enough (case 1, legacy case, not used anymore), or requires an intervention of the user (case 2). This value is essentially used to determine which dialogs to send to the user during the protocol. struct AcceptType { static let alreadyTrusted = 0 - static let automatic = 1 + //static let automatic = 1 static let manual = 2 } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocolMessages.swift index 3767bf43..94a583d4 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,27 +29,29 @@ extension ContactMutualIntroductionProtocol { enum MessageId: Int, ConcreteProtocolMessageId { - case Initial = 0 - case MediatorInvitation = 1 - case AcceptMediatorInviteDialog = 2 - case PropagateConfirmation = 3 - case NotifyContactOfAcceptedInvitation = 4 - case PropagateContactNotificationOfAcceptedInvitation = 5 - case Ack = 6 - case DialogInformative = 7 - case TrustLevelIncreased = 8 + case initial = 0 + case mediatorInvitation = 1 + case acceptMediatorInviteDialog = 2 + case propagateConfirmation = 3 + case notifyContactOfAcceptedInvitation = 4 + case propagateContactNotificationOfAcceptedInvitation = 5 + case ack = 6 + case dialogInformative = 7 + case trustLevelIncreased = 8 + case propagatedInitial = 9 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { - case .Initial : return InitialMessage.self - case .MediatorInvitation : return MediatorInvitationMessage.self - case .AcceptMediatorInviteDialog : return AcceptMediatorInviteDialogMessage.self - case .PropagateConfirmation : return PropagateConfirmationMessage.self - case .NotifyContactOfAcceptedInvitation : return NotifyContactOfAcceptedInvitationMessage.self - case .PropagateContactNotificationOfAcceptedInvitation : return PropagateContactNotificationOfAcceptedInvitationMessage.self - case .Ack : return AckMessage.self - case .DialogInformative : return DialogInformativeMessage.self - case .TrustLevelIncreased : return TrustLevelIncreasedMessage.self + case .initial : return InitialMessage.self + case .mediatorInvitation : return MediatorInvitationMessage.self + case .acceptMediatorInviteDialog : return AcceptMediatorInviteDialogMessage.self + case .propagateConfirmation : return PropagateConfirmationMessage.self + case .notifyContactOfAcceptedInvitation : return NotifyContactOfAcceptedInvitationMessage.self + case .propagateContactNotificationOfAcceptedInvitation : return PropagateContactNotificationOfAcceptedInvitationMessage.self + case .ack : return AckMessage.self + case .dialogInformative : return DialogInformativeMessage.self + case .trustLevelIncreased : return TrustLevelIncreasedMessage.self + case .propagatedInitial : return PropagatedInitialMessage.self } } } @@ -59,37 +61,29 @@ extension ContactMutualIntroductionProtocol { struct InitialMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.Initial + let id: ConcreteProtocolMessageId = MessageId.initial let coreProtocolMessage: CoreProtocolMessage let contactIdentityA: ObvCryptoIdentity - let contactIdentityCoreDetailsA: ObvIdentityCoreDetails let contactIdentityB: ObvCryptoIdentity - let contactIdentityCoreDetailsB: ObvIdentityCoreDetails var encodedInputs: [ObvEncoded] { - let encodedContactIdentityCoreDetailsA = try! contactIdentityCoreDetailsA.jsonEncode() - let encodedContactIdentityCoreDetailsB = try! contactIdentityCoreDetailsB.jsonEncode() - return [contactIdentityA.obvEncode(), encodedContactIdentityCoreDetailsA.obvEncode(), contactIdentityB.obvEncode(), encodedContactIdentityCoreDetailsB.obvEncode()] + get throws { + return [contactIdentityA.obvEncode(), contactIdentityB.obvEncode()] + } } // Initializers init(with message: ReceivedMessage) throws { self.coreProtocolMessage = CoreProtocolMessage(with: message) - let encodedContactIdentityCoreDetailsA: Data - let encodedContactIdentityCoreDetailsB: Data - (contactIdentityA, encodedContactIdentityCoreDetailsA, contactIdentityB, encodedContactIdentityCoreDetailsB) = try message.encodedInputs.obvDecode() - self.contactIdentityCoreDetailsA = try ObvIdentityCoreDetails(encodedContactIdentityCoreDetailsA) - self.contactIdentityCoreDetailsB = try ObvIdentityCoreDetails(encodedContactIdentityCoreDetailsB) + (contactIdentityA, contactIdentityB) = try message.encodedInputs.obvDecode() } - init(coreProtocolMessage: CoreProtocolMessage, contactIdentityA: ObvCryptoIdentity, contactIdentityCoreDetailsA: ObvIdentityCoreDetails, contactIdentityB: ObvCryptoIdentity, contactIdentityCoreDetailsB: ObvIdentityCoreDetails) { + init(coreProtocolMessage: CoreProtocolMessage, contactIdentityA: ObvCryptoIdentity, contactIdentityB: ObvCryptoIdentity) { self.coreProtocolMessage = coreProtocolMessage self.contactIdentityA = contactIdentityA - self.contactIdentityCoreDetailsA = contactIdentityCoreDetailsA self.contactIdentityB = contactIdentityB - self.contactIdentityCoreDetailsB = contactIdentityCoreDetailsB } } @@ -99,15 +93,17 @@ extension ContactMutualIntroductionProtocol { struct MediatorInvitationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.MediatorInvitation + let id: ConcreteProtocolMessageId = MessageId.mediatorInvitation let coreProtocolMessage: CoreProtocolMessage let contactIdentity: ObvCryptoIdentity let contactIdentityCoreDetails: ObvIdentityCoreDetails var encodedInputs: [ObvEncoded] { - let encodedContactIdentityDetails = try! contactIdentityCoreDetails.jsonEncode() - return [contactIdentity.obvEncode(), encodedContactIdentityDetails.obvEncode()] + get throws { + let encodedContactIdentityDetails = try contactIdentityCoreDetails.jsonEncode() + return [contactIdentity.obvEncode(), encodedContactIdentityDetails.obvEncode()] + } } // Initializers @@ -132,7 +128,7 @@ extension ContactMutualIntroductionProtocol { struct AcceptMediatorInviteDialogMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.AcceptMediatorInviteDialog + let id: ConcreteProtocolMessageId = MessageId.acceptMediatorInviteDialog let coreProtocolMessage: CoreProtocolMessage let dialogUuid: UUID // Only used when this protocol receives this message @@ -167,7 +163,7 @@ extension ContactMutualIntroductionProtocol { struct PropagateConfirmationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.PropagateConfirmation + let id: ConcreteProtocolMessageId = MessageId.propagateConfirmation let coreProtocolMessage: CoreProtocolMessage let invitationAccepted: Bool @@ -176,8 +172,10 @@ extension ContactMutualIntroductionProtocol { let mediatorIdentity: ObvCryptoIdentity var encodedInputs: [ObvEncoded] { - let encodedContactIdentityDetails = try! contactIdentityCoreDetails.jsonEncode() - return [invitationAccepted.obvEncode(), contactIdentity.obvEncode(), encodedContactIdentityDetails.obvEncode(), mediatorIdentity.obvEncode()] + get throws { + let encodedContactIdentityDetails = try contactIdentityCoreDetails.jsonEncode() + return [invitationAccepted.obvEncode(), contactIdentity.obvEncode(), encodedContactIdentityDetails.obvEncode(), mediatorIdentity.obvEncode()] + } } // Initializers @@ -204,7 +202,7 @@ extension ContactMutualIntroductionProtocol { struct NotifyContactOfAcceptedInvitationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.NotifyContactOfAcceptedInvitation + let id: ConcreteProtocolMessageId = MessageId.notifyContactOfAcceptedInvitation let coreProtocolMessage: CoreProtocolMessage let contactDeviceUids: [UID] @@ -254,7 +252,7 @@ extension ContactMutualIntroductionProtocol { struct PropagateContactNotificationOfAcceptedInvitationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.PropagateContactNotificationOfAcceptedInvitation + let id: ConcreteProtocolMessageId = MessageId.propagateContactNotificationOfAcceptedInvitation let coreProtocolMessage: CoreProtocolMessage let contactDeviceUids: [UID] @@ -298,7 +296,7 @@ extension ContactMutualIntroductionProtocol { struct AckMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.Ack + let id: ConcreteProtocolMessageId = MessageId.ack let coreProtocolMessage: CoreProtocolMessage var encodedInputs: [ObvEncoded] { return [] } @@ -321,7 +319,7 @@ extension ContactMutualIntroductionProtocol { struct DialogInformativeMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.DialogInformative + let id: ConcreteProtocolMessageId = MessageId.dialogInformative let coreProtocolMessage: CoreProtocolMessage var encodedInputs: [ObvEncoded] { return [] } @@ -343,7 +341,7 @@ extension ContactMutualIntroductionProtocol { struct TrustLevelIncreasedMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.TrustLevelIncreased + let id: ConcreteProtocolMessageId = MessageId.trustLevelIncreased let coreProtocolMessage: CoreProtocolMessage let contactIdentity: ObvCryptoIdentity @@ -370,4 +368,37 @@ extension ContactMutualIntroductionProtocol { } } + + + // MARK: - PropagatedInitialMessage + + struct PropagatedInitialMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.propagatedInitial + let coreProtocolMessage: CoreProtocolMessage + + let contactIdentityA: ObvCryptoIdentity + let contactIdentityB: ObvCryptoIdentity + + var encodedInputs: [ObvEncoded] { + get throws { + return [contactIdentityA.obvEncode(), contactIdentityB.obvEncode()] + } + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + (contactIdentityA, contactIdentityB) = try message.encodedInputs.obvDecode() + } + + init(coreProtocolMessage: CoreProtocolMessage, contactIdentityA: ObvCryptoIdentity, contactIdentityB: ObvCryptoIdentity) { + self.coreProtocolMessage = coreProtocolMessage + self.contactIdentityA = contactIdentityA + self.contactIdentityB = contactIdentityB + } + + } + } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocolStates.swift index 3718f993..ba8d35f6 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,29 +29,29 @@ extension ContactMutualIntroductionProtocol { enum StateId: Int, ConcreteProtocolStateId { - case InitialState = 0 + case initialState = 0 // Mediator's side - case ContactsIntroduced = 1 + case contactsIntroduced = 1 // Contacts' sides - case InvitationReceived = 2 - case InvitationRejected = 4 - case InvitationAccepted = 3 - case WaitingForAck = 5 - case MutualTrustEstablished = 6 - case Cancelled = 7 + case invitationReceived = 2 + case invitationRejected = 4 + case invitationAccepted = 3 + case waitingForAck = 5 + case mutualTrustEstablished = 6 + case cancelled = 7 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .InitialState : return ConcreteProtocolInitialState.self - case .ContactsIntroduced : return ContactsIntroducedState.self - case .InvitationReceived : return InvitationReceivedState.self - case .InvitationRejected : return InvitationRejectedState.self - case .InvitationAccepted : return InvitationAcceptedState.self - case .WaitingForAck : return WaitingForAckState.self - case .MutualTrustEstablished : return MutualTrustEstablishedState.self - case .Cancelled : return CancelledState.self + case .initialState : return ConcreteProtocolInitialState.self + case .contactsIntroduced : return ContactsIntroducedState.self + case .invitationReceived : return InvitationReceivedState.self + case .invitationRejected : return InvitationRejectedState.self + case .invitationAccepted : return InvitationAcceptedState.self + case .waitingForAck : return WaitingForAckState.self + case .mutualTrustEstablished : return MutualTrustEstablishedState.self + case .cancelled : return CancelledState.self } } } @@ -61,7 +61,7 @@ extension ContactMutualIntroductionProtocol { struct ContactsIntroducedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.ContactsIntroduced + let id: ConcreteProtocolStateId = StateId.contactsIntroduced init(_: ObvEncoded) {} @@ -76,7 +76,7 @@ extension ContactMutualIntroductionProtocol { struct InvitationReceivedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.InvitationReceived + let id: ConcreteProtocolStateId = StateId.invitationReceived let contactIdentity: ObvCryptoIdentity let contactIdentityCoreDetails: ObvIdentityCoreDetails @@ -108,7 +108,7 @@ extension ContactMutualIntroductionProtocol { struct InvitationRejectedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.InvitationRejected + let id: ConcreteProtocolStateId = StateId.invitationRejected init(_: ObvEncoded) throws {} @@ -123,7 +123,7 @@ extension ContactMutualIntroductionProtocol { struct InvitationAcceptedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.InvitationAccepted + let id: ConcreteProtocolStateId = StateId.invitationAccepted let contactIdentity: ObvCryptoIdentity let contactIdentityCoreDetails: ObvIdentityCoreDetails @@ -158,7 +158,7 @@ extension ContactMutualIntroductionProtocol { struct WaitingForAckState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.WaitingForAck + let id: ConcreteProtocolStateId = StateId.waitingForAck let contactIdentity: ObvCryptoIdentity let contactIdentityCoreDetails: ObvIdentityCoreDetails @@ -193,7 +193,7 @@ extension ContactMutualIntroductionProtocol { struct MutualTrustEstablishedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.MutualTrustEstablished + let id: ConcreteProtocolStateId = StateId.mutualTrustEstablished init(_: ObvEncoded) throws {} @@ -208,7 +208,7 @@ extension ContactMutualIntroductionProtocol { struct CancelledState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Cancelled + let id: ConcreteProtocolStateId = StateId.cancelled init(_: ObvEncoded) throws {} @@ -218,6 +218,4 @@ extension ContactMutualIntroductionProtocol { } - - } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocolSteps.swift index 47da765e..2c03e10c 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/ContactMutualIntroductionProtocol/ContactMutualIntroductionProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -28,49 +28,53 @@ import OlvidUtils extension ContactMutualIntroductionProtocol { - enum StepId: Int, ConcreteProtocolStepId { + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { // Mediator's side - case IntroduceContacts = 0 + case introduceContacts = 0 // Contact's sides - case CheckTrustLevelsAndShowDialog = 1 - case PropagateInviteResponse = 2 - case ProcessPropagatedInviteResponse = 3 - case PropagateNotificationAddTrustAndSendAck = 4 - case ProcessPropagatedNotificationAndAddTrust = 5 - case NotifyMutualTrustEstablished = 6 - case RecheckTrustLevelsAfterTrustLevelIncrease = 7 + case checkTrustLevelsAndShowDialog = 1 + case propagateInviteResponse = 2 + case processPropagatedInviteResponse = 3 + case propagateNotificationAddTrustAndSendAck = 4 + case processPropagatedNotificationAndAddTrust = 5 + case notifyMutualTrustEstablished = 6 + case recheckTrustLevelsAfterTrustLevelIncrease = 7 + case processPropagatedInitialMessage = 8 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { // Mediator's side - case .IntroduceContacts: + case .introduceContacts: let step = IntroduceContactsStep(from: concreteProtocol, and: receivedMessage) return step - + case .processPropagatedInitialMessage: + let step = ProcessPropagatedInitialMessageStep(from: concreteProtocol, and: receivedMessage) + return step + // Contact's sides - case .CheckTrustLevelsAndShowDialog: + case .checkTrustLevelsAndShowDialog: let step = CheckTrustLevelsAndShowDialogStep(from: concreteProtocol, and: receivedMessage) return step - case .PropagateInviteResponse: + case .propagateInviteResponse: let step = PropagateInviteResponseStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessPropagatedInviteResponse: + case .processPropagatedInviteResponse: let step = ProcessPropagatedInviteResponseStep(from: concreteProtocol, and: receivedMessage) return step - case .PropagateNotificationAddTrustAndSendAck: + case .propagateNotificationAddTrustAndSendAck: let step = PropagateNotificationAddTrustAndSendAckStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessPropagatedNotificationAndAddTrust: + case .processPropagatedNotificationAndAddTrust: let step = ProcessPropagatedNotificationAndAddTrustStep(from: concreteProtocol, and: receivedMessage) return step - case .NotifyMutualTrustEstablished: + case .notifyMutualTrustEstablished: let step = NotifyMutualTrustEstablishedStep(from: concreteProtocol, and: receivedMessage) return step - case .RecheckTrustLevelsAfterTrustLevelIncrease: + case .recheckTrustLevelsAfterTrustLevelIncrease: let step = RecheckTrustLevelsAfterTrustLevelIncreaseStep(from: concreteProtocol, and: receivedMessage) return step @@ -102,9 +106,7 @@ extension ContactMutualIntroductionProtocol { let log = OSLog(subsystem: delegateManager.logSubsystem, category: ContactMutualIntroductionProtocol.logCategory) let contactIdentityA = receivedMessage.contactIdentityA - let contactIdentityCoreDetailsA = receivedMessage.contactIdentityCoreDetailsA let contactIdentityB = receivedMessage.contactIdentityB - let contactIdentityCoreDetailsB = receivedMessage.contactIdentityCoreDetailsB // Make sure both contacts are trusted (i.e., are part of the ContactIdentity database of the owned identity), active and OneToOne. @@ -122,6 +124,24 @@ extension ContactMutualIntroductionProtocol { return CancelledState() } } + + // Recover the current published core details of contact A + + let contactIdentityCoreDetailsA: ObvIdentityCoreDetails + do { + let publishedDetails = try identityDelegate.getPublishedIdentityDetailsOfContactIdentity(contactIdentityA, ofOwnedIdentity: ownedIdentity, within: obvContext) + let trustedDetails = try identityDelegate.getTrustedIdentityDetailsOfContactIdentity(contactIdentityA, ofOwnedIdentity: ownedIdentity, within: obvContext) + contactIdentityCoreDetailsA = publishedDetails?.contactIdentityDetailsElements.coreDetails ?? trustedDetails.contactIdentityDetailsElements.coreDetails + } + + // Recover the current published core details of contact b + + let contactIdentityCoreDetailsB: ObvIdentityCoreDetails + do { + let publishedDetails = try identityDelegate.getPublishedIdentityDetailsOfContactIdentity(contactIdentityB, ofOwnedIdentity: ownedIdentity, within: obvContext) + let trustedDetails = try identityDelegate.getTrustedIdentityDetailsOfContactIdentity(contactIdentityB, ofOwnedIdentity: ownedIdentity, within: obvContext) + contactIdentityCoreDetailsB = publishedDetails?.contactIdentityDetailsElements.coreDetails ?? trustedDetails.contactIdentityDetailsElements.coreDetails + } // Post an invitation message to contact A @@ -131,7 +151,7 @@ extension ContactMutualIntroductionProtocol { contactIdentity: contactIdentityB, contactIdentityCoreDetails: contactIdentityCoreDetailsB) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Post an invitation message to contact B @@ -142,7 +162,94 @@ extension ContactMutualIntroductionProtocol { contactIdentity: contactIdentityA, contactIdentityCoreDetails: contactIdentityCoreDetailsA) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + + // If we have other devices, propagate the invite so the invitation sent messages can be inserted in the relevant discussion + + let numberOfOtherDevicesOfOwnedIdentity = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext).count + + if numberOfOtherDevicesOfOwnedIdentity > 0 { + do { + let coreMessage = getCoreMessage(for: .AllConfirmedObliviousChannelsWithOtherDevicesOfOwnedIdentity(ownedIdentity: ownedIdentity)) + let concreteProtocolMessage = PropagatedInitialMessage( + coreProtocolMessage: coreMessage, + contactIdentityA: contactIdentityA, + contactIdentityB: contactIdentityB) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + assertionFailure() + throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } catch { + assertionFailure() + os_log("Could not propagate accept/reject invitation to other devices.", log: log, type: .fault) + } + } + + // Send a notification to insert invitation sent messages in relevant discussions + + do { + let notificationDelegate = self.notificationDelegate + let ownedCryptoId = self.ownedIdentity + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return} + ObvProtocolNotification.contactIntroductionInvitationSent( + ownedIdentity: ownedCryptoId, + contactIdentityA: contactIdentityA, + contactIdentityB: contactIdentityB) + .postOnBackgroundQueue(within: notificationDelegate) + } + } catch { + assertionFailure(error.localizedDescription) + } + + // Return the new state + + return ContactsIntroducedState() + + } + } + + + // MARK: - ProcessPropagatedInitialMessageStep + + final class ProcessPropagatedInitialMessageStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: PropagatedInitialMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: PropagatedInitialMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AnyObliviousChannelWithOwnedDevice(ownedIdentity: concreteCryptoProtocol.ownedIdentity), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let contactIdentityA = receivedMessage.contactIdentityA + let contactIdentityB = receivedMessage.contactIdentityB + + // Send a notification to insert invitation sent messages in relevant discussions + + do { + let notificationDelegate = self.notificationDelegate + let ownedCryptoId = self.ownedIdentity + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return} + ObvProtocolNotification.contactIntroductionInvitationSent( + ownedIdentity: ownedCryptoId, + contactIdentityA: contactIdentityA, + contactIdentityB: contactIdentityB) + .postOnBackgroundQueue(within: notificationDelegate) + } + } catch { + assertionFailure(error.localizedDescription) } // Return the new state @@ -151,6 +258,7 @@ extension ContactMutualIntroductionProtocol { } } + // MARK: - ShowInvitationDialogStep @@ -235,7 +343,7 @@ extension ContactMutualIntroductionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // If, in the future, the introduced contact becomes a OneToOne contact, we want end this protocol. @@ -252,7 +360,7 @@ extension ContactMutualIntroductionProtocol { _ = ProtocolInstanceWaitingForContactUpgradeToOneToOne( ownedCryptoIdentity: ownedIdentity, contactCryptoIdentity: contactIdentity, - messageToSendRawId: MessageId.TrustLevelIncreased.rawValue, + messageToSendRawId: MessageId.trustLevelIncreased.rawValue, protocolInstance: thisProtocolInstance, delegateManager: delegateManager) @@ -324,7 +432,7 @@ extension ContactMutualIntroductionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not propagate accept/reject invitation to other devices.", log: log, type: .fault) } @@ -342,7 +450,7 @@ extension ContactMutualIntroductionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) return InvitationRejectedState() } @@ -358,7 +466,7 @@ extension ContactMutualIntroductionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } do { @@ -429,7 +537,7 @@ extension ContactMutualIntroductionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) return InvitationRejectedState() } @@ -445,7 +553,7 @@ extension ContactMutualIntroductionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -508,14 +616,14 @@ extension ContactMutualIntroductionProtocol { let trustOrigin = TrustOrigin.introduction(timestamp: Date(), mediator: mediatorIdentity) if (try identityDelegate.isIdentity(contactIdentity, aContactIdentityOfTheOwnedIdentity: ownedIdentity, within: obvContext)) == true { - try identityDelegate.addTrustOriginIfTrustWouldBeIncreased(trustOrigin, toContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) + try identityDelegate.addTrustOriginIfTrustWouldBeIncreasedAndSetContactAsOneToOne(trustOrigin, toContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) } else { try identityDelegate.addContactIdentity(contactIdentity, with: contactIdentityCoreDetails, andTrustOrigin: trustOrigin, forOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) } try contactDeviceUids.forEach { (contactDeviceUid) in if try !identityDelegate.isDevice(withUid: contactDeviceUid, aDeviceOfContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) { - try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, within: obvContext) + try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, createdDuringChannelCreation: false, within: obvContext) } } } catch { @@ -535,7 +643,7 @@ extension ContactMutualIntroductionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not propagate notification to other devices.", log: log, type: .fault) } @@ -551,7 +659,7 @@ extension ContactMutualIntroductionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -603,14 +711,14 @@ extension ContactMutualIntroductionProtocol { let trustOrigin = TrustOrigin.introduction(timestamp: Date(), mediator: mediatorIdentity) if (try identityDelegate.isIdentity(contactIdentity, aContactIdentityOfTheOwnedIdentity: ownedIdentity, within: obvContext)) == true { - try identityDelegate.addTrustOriginIfTrustWouldBeIncreased(trustOrigin, toContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) + try identityDelegate.addTrustOriginIfTrustWouldBeIncreasedAndSetContactAsOneToOne(trustOrigin, toContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) } else { try identityDelegate.addContactIdentity(contactIdentity, with: contactIdentityCoreDetails, andTrustOrigin: trustOrigin, forOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) } try contactDeviceUids.forEach { (contactDeviceUid) in if try !identityDelegate.isDevice(withUid: contactDeviceUid, aDeviceOfContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) { - try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, within: obvContext) + try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, createdDuringChannelCreation: false, within: obvContext) } } } catch { @@ -654,7 +762,7 @@ extension ContactMutualIntroductionProtocol { let contactIdentityCoreDetails = startState.contactIdentityCoreDetails let dialogUuid = startState.dialogUuid let acceptType = startState.acceptType - let mediatorIdentity = startState.mediatorIdentity + // let mediatorIdentity = startState.mediatorIdentity // Display a mutual trust established dialog @@ -663,16 +771,6 @@ extension ContactMutualIntroductionProtocol { // We do not notify the user in this case break - case AcceptType.automatic: - let contact = CryptoIdentityWithCoreDetails(cryptoIdentity: contactIdentity, coreDetails: contactIdentityCoreDetails) - let dialogType = ObvChannelDialogToSendType.autoconfirmedContactIntroduction(contact: contact, mediatorIdentity: mediatorIdentity) - let coreMessage = getCoreMessage(for: .UserInterface(uuid: dialogUuid, ownedIdentity: ownedIdentity, dialogType: dialogType)) - let concreteProtocolMessage = DialogInformativeMessage(coreProtocolMessage: coreMessage) - guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { - throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") - } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) - case AcceptType.manual: let contact = CryptoIdentityWithCoreDetails(cryptoIdentity: contactIdentity, coreDetails: contactIdentityCoreDetails) let dialogType = ObvChannelDialogToSendType.mutualTrustConfirmed(contact: contact) @@ -681,7 +779,7 @@ extension ContactMutualIntroductionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) default: // Cannot happen @@ -749,7 +847,7 @@ extension ContactMutualIntroductionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } do { @@ -800,7 +898,7 @@ extension ContactMutualIntroductionProtocol { guard let _ = ProtocolInstanceWaitingForContactUpgradeToOneToOne(ownedCryptoIdentity: ownedIdentity, contactCryptoIdentity: contactIdentity, - messageToSendRawId: MessageId.TrustLevelIncreased.rawValue, + messageToSendRawId: MessageId.trustLevelIncreased.rawValue, protocolInstance: thisProtocolInstance, delegateManager: delegateManager) else { @@ -819,7 +917,7 @@ extension ContactMutualIntroductionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -871,7 +969,7 @@ extension ProtocolStep { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/CryptoProtocolId.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/CryptoProtocolId.swift index 20ea2a4e..2ad2d3c9 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/CryptoProtocolId.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/CryptoProtocolId.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,27 +26,33 @@ import OlvidUtils /// This is a list of all registered protocols enum CryptoProtocolId: Int, CustomDebugStringConvertible, CaseIterable { - case DeviceDiscoveryForContactIdentity = 0 + case contactDeviceDiscovery = 0 // 2023-01-28 We remove the legacy TrustEstablishment protocol - case ChannelCreationWithContactDevice = 2 - case DeviceDiscoveryForRemoteIdentity = 3 + case channelCreationWithContactDevice = 2 + case deviceDiscoveryForRemoteIdentity = 3 case ContactMutualIntroduction = 4 /* case GroupCreation = 5 */ - case IdentityDetailsPublication = 6 - case DownloadIdentityPhoto = 7 - case GroupInvitation = 8 - case GroupManagement = 9 - case ContactManagement = 10 - case TrustEstablishmentWithSAS = 11 - case TrustEstablishmentWithMutualScan = 12 - case FullRatchet = 13 - case DownloadGroupPhoto = 14 - case KeycloakContactAddition = 15 - case ContactCapabilitiesDiscovery = 16 - case OneToOneContactInvitation = 17 - case GroupV2 = 18 - case DownloadGroupV2Photo = 19 + case identityDetailsPublication = 6 + case downloadIdentityPhoto = 7 + case groupInvitation = 8 + case groupManagement = 9 + case contactManagement = 10 + case trustEstablishmentWithSAS = 11 + case trustEstablishmentWithMutualScan = 12 + case fullRatchet = 13 + case downloadGroupPhoto = 14 + case keycloakContactAddition = 15 + case contactCapabilitiesDiscovery = 16 + case oneToOneContactInvitation = 17 + case groupV2 = 18 + case downloadGroupV2Photo = 19 case ownedIdentityDeletionProtocol = 20 + case ownedDeviceDiscovery = 21 + case channelCreationWithOwnedDevice = 22 + case keycloakBindingAndUnbinding = 23 + case ownedDeviceManagement = 24 + case synchronization = 25 + case ownedIdentityTransfer = 26 func getConcreteCryptoProtocol(from instance: ProtocolInstance, prng: PRNGService) -> ConcreteCryptoProtocol? { return self.concreteCryptoProtocol.init(protocolInstance: instance, prng: prng) @@ -54,44 +60,56 @@ enum CryptoProtocolId: Int, CustomDebugStringConvertible, CaseIterable { private var concreteCryptoProtocol: ConcreteCryptoProtocol.Type { switch self { - case .DeviceDiscoveryForContactIdentity: - return DeviceDiscoveryForContactIdentityProtocol.self - case .ChannelCreationWithContactDevice: + case .contactDeviceDiscovery: + return ContactDeviceDiscoveryProtocol.self + case .channelCreationWithContactDevice: return ChannelCreationWithContactDeviceProtocol.self - case .DeviceDiscoveryForRemoteIdentity: + case .deviceDiscoveryForRemoteIdentity: return DeviceDiscoveryForRemoteIdentityProtocol.self case .ContactMutualIntroduction: return ContactMutualIntroductionProtocol.self - case .IdentityDetailsPublication: + case .identityDetailsPublication: return IdentityDetailsPublicationProtocol.self - case .DownloadIdentityPhoto: + case .downloadIdentityPhoto: return DownloadIdentityPhotoChildProtocol.self - case .GroupInvitation: + case .groupInvitation: return GroupInvitationProtocol.self - case .GroupManagement: + case .groupManagement: return GroupManagementProtocol.self - case .ContactManagement: + case .contactManagement: return ContactManagementProtocol.self - case .TrustEstablishmentWithSAS: + case .trustEstablishmentWithSAS: return TrustEstablishmentWithSASProtocol.self - case .TrustEstablishmentWithMutualScan: + case .trustEstablishmentWithMutualScan: return TrustEstablishmentWithMutualScanProtocol.self - case .FullRatchet: + case .fullRatchet: return FullRatchetProtocol.self - case .DownloadGroupPhoto: + case .downloadGroupPhoto: return DownloadGroupPhotoChildProtocol.self - case .KeycloakContactAddition: + case .keycloakContactAddition: return KeycloakContactAdditionProtocol.self - case .ContactCapabilitiesDiscovery: + case .contactCapabilitiesDiscovery: return DeviceCapabilitiesDiscoveryProtocol.self - case .OneToOneContactInvitation: + case .oneToOneContactInvitation: return OneToOneContactInvitationProtocol.self - case .GroupV2: + case .groupV2: return GroupV2Protocol.self - case .DownloadGroupV2Photo: + case .downloadGroupV2Photo: return DownloadGroupV2PhotoProtocol.self case .ownedIdentityDeletionProtocol: return OwnedIdentityDeletionProtocol.self + case .ownedDeviceDiscovery: + return OwnedDeviceDiscoveryProtocol.self + case .channelCreationWithOwnedDevice: + return ChannelCreationWithOwnedDeviceProtocol.self + case .keycloakBindingAndUnbinding: + return KeycloakBindingAndUnbindingProtocol.self + case .ownedDeviceManagement: + return OwnedDeviceManagementProtocol.self + case .synchronization: + return SynchronizationProtocol.self + case .ownedIdentityTransfer: + return OwnedIdentityTransferProtocol.self } } @@ -115,25 +133,31 @@ extension CryptoProtocolId { var debugDescription: String { switch self { - case .DeviceDiscoveryForContactIdentity: return "DeviceDiscoveryForContactIdentity" - case .ChannelCreationWithContactDevice: return "ChannelCreationWithContactDevice" - case .DeviceDiscoveryForRemoteIdentity: return "DeviceDiscoveryForRemoteIdentity" + case .contactDeviceDiscovery: return "ContactDeviceDiscoveryProtocol" + case .channelCreationWithContactDevice: return "ChannelCreationWithContactDevice" + case .deviceDiscoveryForRemoteIdentity: return "DeviceDiscoveryForRemoteIdentity" case .ContactMutualIntroduction: return "ContactMutualIntroduction" - case .IdentityDetailsPublication: return "IdentityDetailsPublication" - case .DownloadIdentityPhoto: return "DownloadIdentityPhoto" - case .GroupInvitation: return "GroupInvitation" - case .GroupManagement: return "GroupManagement" - case .ContactManagement: return "ContactManagement" - case .TrustEstablishmentWithSAS: return "TrustEstablishmentWithSAS" - case .FullRatchet: return "FullRatchet" - case .DownloadGroupPhoto: return "DownloadGroupPhoto" - case .KeycloakContactAddition: return "KeycloakContactAddition" - case .TrustEstablishmentWithMutualScan: return "TrustEstablishmentWithMutualScan" - case .ContactCapabilitiesDiscovery: return "ContactCapabilitiesDiscovery" - case .OneToOneContactInvitation: return "OneToOneContactInvitation" - case .GroupV2: return "GroupV2" - case .DownloadGroupV2Photo: return "DownloadGroupV2Photo" + case .identityDetailsPublication: return "IdentityDetailsPublication" + case .downloadIdentityPhoto: return "DownloadIdentityPhoto" + case .groupInvitation: return "GroupInvitation" + case .groupManagement: return "GroupManagement" + case .contactManagement: return "ContactManagement" + case .trustEstablishmentWithSAS: return "TrustEstablishmentWithSAS" + case .fullRatchet: return "FullRatchet" + case .downloadGroupPhoto: return "DownloadGroupPhoto" + case .keycloakContactAddition: return "KeycloakContactAddition" + case .trustEstablishmentWithMutualScan: return "TrustEstablishmentWithMutualScan" + case .contactCapabilitiesDiscovery: return "ContactCapabilitiesDiscovery" + case .oneToOneContactInvitation: return "OneToOneContactInvitation" + case .groupV2: return "GroupV2" + case .downloadGroupV2Photo: return "DownloadGroupV2Photo" case .ownedIdentityDeletionProtocol: return "OwnedIdentityDeletionProtocol" + case .ownedDeviceDiscovery: return "OwnedDeviceDiscoveryProtocol" + case .channelCreationWithOwnedDevice: return "ChannelCreationWithOwnedDeviceProtocol" + case .keycloakBindingAndUnbinding: return "KeycloakBindingAndUnbindingProtocol" + case .ownedDeviceManagement: return "OwnedDeviceManagementProtocol" + case .synchronization: return "SynchronizationProtocol" + case .ownedIdentityTransfer: return "OwnedIdentityTransferProtocol" } } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocol.swift index ceac6fed..6ca3e604 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,13 +27,13 @@ public struct DeviceCapabilitiesDiscoveryProtocol: ConcreteCryptoProtocol { static let logCategory = "ContactCapabilitiesDiscoveryProtocol" - static let id = CryptoProtocolId.ContactCapabilitiesDiscovery + static let id = CryptoProtocolId.contactCapabilitiesDiscovery private static let errorDomain = "ContactCapabilitiesDiscoveryProtocol" static func makeError(message: String) -> Error { NSError(domain: errorDomain, code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.Finished, StateId.Cancelled] + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.finished, StateId.cancelled] let ownedIdentity: ObvCryptoIdentity let currentState: ConcreteProtocolState @@ -60,11 +60,8 @@ public struct DeviceCapabilitiesDiscoveryProtocol: ConcreteCryptoProtocol { return MessageId(rawValue: rawValue) } - static let allStepIds: [ConcreteProtocolStepId] = [ - StepId.AddOwnCapabilitiesAndSendThemToAllContactsAndOwnedDevices, - StepId.SendOwnCapabilitiesToContactDevice, - StepId.ProcessReceivedContactDeviceCapabilities, - StepId.ProcessReceivedOwnedDeviceCapabilities, - ] + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocolMessages.swift index e2c967e5..d1bed004 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,19 +26,19 @@ extension DeviceCapabilitiesDiscoveryProtocol { enum MessageId: Int, ConcreteProtocolMessageId { - case InitialForAddingOwnCapabilities = 0 - case InitialSingleContactDevice = 1 - case InitialSingleOwnedDevice = 2 - case OwnCapabilitiesToContact = 3 - case OwnCapabilitiesToSelf = 4 + case initialForAddingOwnCapabilities = 0 + case initialSingleContactDevice = 1 + case initialSingleOwnedDevice = 2 + case ownCapabilitiesToContact = 3 + case ownCapabilitiesToSelf = 4 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { - case .InitialForAddingOwnCapabilities : return InitialForAddingOwnCapabilitiesMessage.self - case .InitialSingleContactDevice : return InitialSingleContactDeviceMessage.self - case .InitialSingleOwnedDevice : return InitialSingleOwnedDeviceMessage.self - case .OwnCapabilitiesToContact : return OwnCapabilitiesToContactMessage.self - case .OwnCapabilitiesToSelf : return OwnCapabilitiesToSelfMessage.self + case .initialForAddingOwnCapabilities : return InitialForAddingOwnCapabilitiesMessage.self + case .initialSingleContactDevice : return InitialSingleContactDeviceMessage.self + case .initialSingleOwnedDevice : return InitialSingleOwnedDeviceMessage.self + case .ownCapabilitiesToContact : return OwnCapabilitiesToContactMessage.self + case .ownCapabilitiesToSelf : return OwnCapabilitiesToSelfMessage.self } } @@ -49,7 +49,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { struct InitialForAddingOwnCapabilitiesMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.InitialForAddingOwnCapabilities + let id: ConcreteProtocolMessageId = MessageId.initialForAddingOwnCapabilities let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -91,7 +91,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { struct InitialSingleContactDeviceMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.InitialSingleContactDevice + let id: ConcreteProtocolMessageId = MessageId.initialSingleContactDevice let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -133,7 +133,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { struct InitialSingleOwnedDeviceMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.InitialSingleOwnedDevice + let id: ConcreteProtocolMessageId = MessageId.initialSingleOwnedDevice let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -172,7 +172,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { struct OwnCapabilitiesToContactMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.OwnCapabilitiesToContact + let id: ConcreteProtocolMessageId = MessageId.ownCapabilitiesToContact let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -212,7 +212,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { struct OwnCapabilitiesToSelfMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.OwnCapabilitiesToContact + let id: ConcreteProtocolMessageId = MessageId.ownCapabilitiesToSelf let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocolStates.swift index beeea808..84885f09 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,15 +25,15 @@ extension DeviceCapabilitiesDiscoveryProtocol { enum StateId: Int, ConcreteProtocolStateId { - case Initial = 0 - case Finished = 1 - case Cancelled = 2 + case initial = 0 + case finished = 1 + case cancelled = 2 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .Initial : return ConcreteProtocolInitialState.self - case .Finished : return FinishedState.self - case .Cancelled : return CancelledState.self + case .initial : return ConcreteProtocolInitialState.self + case .finished : return FinishedState.self + case .cancelled : return CancelledState.self } } @@ -42,7 +42,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { struct FinishedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Finished + let id: ConcreteProtocolStateId = StateId.finished init(_: ObvEncoded) {} @@ -55,7 +55,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { struct CancelledState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Cancelled + let id: ConcreteProtocolStateId = StateId.cancelled init(_: ObvEncoded) {} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocolSteps.swift index 96b52ac7..0e189384 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceCapabilitiesDiscoveryProtocol/DeviceCapabilitiesDiscoveryProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,29 +27,29 @@ import ObvCrypto extension DeviceCapabilitiesDiscoveryProtocol { - enum StepId: Int, ConcreteProtocolStepId { + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { - case AddOwnCapabilitiesAndSendThemToAllContactsAndOwnedDevices = 0 - case SendOwnCapabilitiesToContactDevice = 1 - case SendOwnCapabilitiesToOtherOwnedDevice = 2 - case ProcessReceivedContactDeviceCapabilities = 3 - case ProcessReceivedOwnedDeviceCapabilities = 4 + case addOwnCapabilitiesAndSendThemToAllContactsAndOwnedDevices = 0 + case sendOwnCapabilitiesToContactDevice = 1 + case sendOwnCapabilitiesToOtherOwnedDevice = 2 + case processReceivedContactDeviceCapabilities = 3 + case processReceivedOwnedDeviceCapabilities = 4 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { - case .AddOwnCapabilitiesAndSendThemToAllContactsAndOwnedDevices: + case .addOwnCapabilitiesAndSendThemToAllContactsAndOwnedDevices: let step = AddOwnCapabilitiesAndSendThemToAllContactsAndOwnedDevicesStep(from: concreteProtocol, and: receivedMessage) return step - case .SendOwnCapabilitiesToContactDevice: + case .sendOwnCapabilitiesToContactDevice: let step = SendOwnCapabilitiesToContactDeviceStep(from: concreteProtocol, and: receivedMessage) return step - case .SendOwnCapabilitiesToOtherOwnedDevice: + case .sendOwnCapabilitiesToOtherOwnedDevice: let step = SendOwnCapabilitiesToOtherOwnedDeviceStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessReceivedContactDeviceCapabilities: + case .processReceivedContactDeviceCapabilities: let step = ProcessReceivedContactDeviceCapabilitiesStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessReceivedOwnedDeviceCapabilities: + case .processReceivedOwnedDeviceCapabilities: let step = ProcessReceivedOwnedDeviceCapabilitiesStep(from: concreteProtocol, and: receivedMessage) return step } @@ -110,7 +110,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { let channel = ObvChannelSendChannelType.Local(ownedIdentity: ownedIdentity) let newProtocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: channel, - cryptoProtocolId: .OneToOneContactInvitation, + cryptoProtocolId: .oneToOneContactInvitation, protocolInstanceUid: newProtocolInstanceUid) let message = OneToOneContactInvitationProtocol.InitialOneToOneStatusSyncRequestMessage(coreProtocolMessage: coreMessage, contactsToSync: allContactIdentities) guard let messageToSend = message.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -118,7 +118,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { throw DeviceCapabilitiesDiscoveryProtocol.makeError(message: "Implementation error") } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Failed to request our own OneToOne status to our contact", log: log, type: .fault) throw error @@ -140,7 +140,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { throw DeviceCapabilitiesDiscoveryProtocol.makeError(message: "Implementation error") } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Failed to inform our contacts of the change of the current device new capabilities (2): %{public}@", log: log, type: .fault, error.localizedDescription) throw error @@ -161,7 +161,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { assertionFailure() throw DeviceCapabilitiesDiscoveryProtocol.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -215,7 +215,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { throw DeviceCapabilitiesDiscoveryProtocol.makeError(message: "Implementation error") } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Failed to inform one of our contacts of the change of the current device new capabilities (3)", log: log, type: .fault) throw error @@ -270,7 +270,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { throw DeviceCapabilitiesDiscoveryProtocol.makeError(message: "Implementation error") } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Failed to inform one of our contacts of the change of the current device new capabilities (3)", log: log, type: .fault) throw error @@ -344,7 +344,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { throw DeviceCapabilitiesDiscoveryProtocol.makeError(message: "Implementation error") } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Failed to inform our contact of the current device capabilities", log: log, type: .fault) throw error @@ -420,7 +420,7 @@ extension DeviceCapabilitiesDiscoveryProtocol { throw DeviceCapabilitiesDiscoveryProtocol.makeError(message: "Implementation error") } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Failed to inform our other owned device of the current device capabilities", log: log, type: .fault) throw error diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryForRemoteIdentityProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryForRemoteIdentityProtocol.swift deleted file mode 100644 index 9ed3ece5..00000000 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryForRemoteIdentityProtocol.swift +++ /dev/null @@ -1,497 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import os.log -import ObvCrypto -import ObvEncoder -import ObvTypes -import ObvOperation -import ObvMetaManager -import OlvidUtils - - -public struct DeviceDiscoveryForRemoteIdentityProtocol: ConcreteCryptoProtocol { - - static let logCategory = "DeviceDiscoveryForRemoteIdentityProtocol" - - static let id = CryptoProtocolId.DeviceDiscoveryForRemoteIdentity - - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.DeviceUidsReceived, StateId.DeviceUidsSent] - - let ownedIdentity: ObvCryptoIdentity - let currentState: ConcreteProtocolState - - let delegateManager: ObvProtocolDelegateManager - let obvContext: ObvContext - let prng: PRNGService - let instanceUid: UID - - init(instanceUid: UID, currentState: ConcreteProtocolState, ownedCryptoIdentity: ObvCryptoIdentity, delegateManager: ObvProtocolDelegateManager, prng: PRNGService, within obvContext: ObvContext) { - self.currentState = currentState - self.ownedIdentity = ownedCryptoIdentity - self.delegateManager = delegateManager - self.obvContext = obvContext - self.prng = prng - self.instanceUid = instanceUid - } - - static func stateId(fromRawValue rawValue: Int) -> ConcreteProtocolStateId? { - return StateId(rawValue: rawValue) - } - - static func messageId(fromRawValue rawValue: Int) -> ConcreteProtocolMessageId? { - return MessageId(rawValue: rawValue) - } - - static let allStepIds: [ConcreteProtocolStepId] = [StepId.SendServerRequest, - StepId.ProcessDeviceUidsFromServerOrSendrequest, - StepId.RespondToRequest, - StepId.ProcessDeviceUids] -} - -// MARK: - Protocol Steps - -extension DeviceDiscoveryForRemoteIdentityProtocol { - - enum StepId: Int, ConcreteProtocolStepId { - - case SendServerRequest = 3 - case ProcessDeviceUidsFromServerOrSendrequest = 0 - case RespondToRequest = 1 - case ProcessDeviceUids = 2 - - func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { - var concreteProtocolStep: ConcreteProtocolStep? - switch self { - case .SendServerRequest: - concreteProtocolStep = SendServerRequestStep(from: concreteProtocol, and: receivedMessage) - case .ProcessDeviceUidsFromServerOrSendrequest: - concreteProtocolStep = ProcessDeviceUidsFromServerOrSendRequestStep(from: concreteProtocol, and: receivedMessage) - case .RespondToRequest: - concreteProtocolStep = RespondToRequestStep(from: concreteProtocol, and: receivedMessage) - case .ProcessDeviceUids: - concreteProtocolStep = ProcessDeviceUidsStep(from: concreteProtocol, and: receivedMessage) - } - return concreteProtocolStep - } - } - - final class SendServerRequestStep: ProtocolStep, TypedConcreteProtocolStep { - - let startState: ConcreteProtocolInitialState - let receivedMessage: InitialMessage - - init?(startState: StartConcreteProtocolStateType, receivedMessage: ConcreteProtocolMessageType, concreteCryptoProtocol: ConcreteCryptoProtocol) { - - self.startState = startState - self.receivedMessage = receivedMessage - - super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, - expectedReceptionChannelInfo: .Local, - receivedMessage: receivedMessage, - concreteCryptoProtocol: concreteCryptoProtocol) - - } - - override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { - - let remoteIdentity = receivedMessage.remoteIdentity - - // Send the server query - - let coreMessage = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) - let concreteMessage = ServerQueryMessage(coreProtocolMessage: coreMessage) - let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.deviceDiscovery(of: remoteIdentity) - guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: concreteCryptoProtocol.prng, within: obvContext) - - // Return the new state - - return WaitingForDeviceUidsState.init(remoteIdentity: remoteIdentity) - } - } - - - final class ProcessDeviceUidsFromServerOrSendRequestStep: ProtocolStep, TypedConcreteProtocolStep { - - let startState: WaitingForDeviceUidsState - let receivedMessage: ServerQueryMessage - - init?(startState: StartConcreteProtocolStateType, receivedMessage: ConcreteProtocolMessageType, concreteCryptoProtocol: ConcreteCryptoProtocol) { - - self.startState = startState - self.receivedMessage = receivedMessage - - super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, - expectedReceptionChannelInfo: .Local, - receivedMessage: receivedMessage, - concreteCryptoProtocol: concreteCryptoProtocol) - - } - - override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { - - let log = OSLog(subsystem: delegateManager.logSubsystem, category: DeviceDiscoveryForRemoteIdentityProtocol.logCategory) - - let remoteIdentity = startState.remoteIdentity - guard let deviceUids = receivedMessage.deviceUids else { - os_log("The received server response does not contain device uids", log: log, type: .error) - return nil - } - - let nextState: ConcreteProtocolState - - // If we received no device uids, we send a new request directly to the remote identity. - // If we receive at least one device uid, we assume the server knows about all the device uids and go the final state right now - - if deviceUids.isEmpty { - - os_log("The server knows no device uid for the remote identity. We query the remote identity directly.", log: log, type: .debug) - - // Get current device uid - - let currentDeviceUid: UID - do { - currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) - } catch { - os_log("Could not get current device uid", log: log, type: .fault) - return nil - } - - // Send the message - - let coreMessage = getCoreMessage(for: .AsymmetricChannelBroadcast(to: remoteIdentity, fromOwnedIdentity: ownedIdentity)) - let concreteMessage = FromAliceMessage(coreProtocolMessage: coreMessage, remoteIdentity: ownedIdentity, remoteDeviceUid: currentDeviceUid) - guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: concreteCryptoProtocol.prng, within: obvContext) - - nextState = WaitingForDeviceUidsState.init(remoteIdentity: remoteIdentity) - - } else { - - os_log("The server knows %d device uids for the remote identity.", log: log, type: .debug, deviceUids.count) - - nextState = DeviceUidsReceivedState(remoteIdentity: remoteIdentity, deviceUids: deviceUids) - - } - - return nextState - } - } - - final class RespondToRequestStep: ProtocolStep, TypedConcreteProtocolStep { - - let startState: ConcreteProtocolInitialState - let receivedMessage: FromAliceMessage - - init?(startState: StartConcreteProtocolStateType, receivedMessage: ConcreteProtocolMessageType, concreteCryptoProtocol: ConcreteCryptoProtocol) { - - self.startState = startState - self.receivedMessage = receivedMessage - - super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, - expectedReceptionChannelInfo: .AsymmetricChannel, - receivedMessage: receivedMessage, - concreteCryptoProtocol: concreteCryptoProtocol) - - } - - override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { - - let remoteIdentity = receivedMessage.remoteIdentity - let remoteDeviceUid = receivedMessage.remoteDeviceUid - - // Get a set of all device uids of the owned identity - - let allDeviceUids = try identityDelegate.getDeviceUidsOfOwnedIdentity(concreteCryptoProtocol.ownedIdentity, within: obvContext) - - // Broadcast the longterm identity's device uids using an asymmetric channel with the fresh ephemeral identity - - do { - let coreMessage = getCoreMessage(for: .AsymmetricChannel(to: remoteIdentity, remoteDeviceUids: [remoteDeviceUid], fromOwnedIdentity: ownedIdentity)) - let concreteMessage = FromBobMessage(coreProtocolMessage: coreMessage, deviceUids: Array(allDeviceUids)) - guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) - } - - // Return the new state - return DeviceUidsSentState() - } - } - - - final class ProcessDeviceUidsStep: ProtocolStep, TypedConcreteProtocolStep { - - let startState: WaitingForDeviceUidsState - let receivedMessage: FromBobMessage - - init?(startState: StartConcreteProtocolStateType, receivedMessage: ConcreteProtocolMessageType, concreteCryptoProtocol: ConcreteCryptoProtocol) { - - self.startState = startState - self.receivedMessage = receivedMessage - - super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, - expectedReceptionChannelInfo: .AsymmetricChannel, - receivedMessage: receivedMessage, - concreteCryptoProtocol: concreteCryptoProtocol) - - } - - override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { - - let remoteIdentity = startState.remoteIdentity - let deviceUids = receivedMessage.deviceUids - - // Return the new state - return DeviceUidsReceivedState(remoteIdentity: remoteIdentity, deviceUids: deviceUids) - - } - } - -} - - -// MARK: - Protocol Messages - -extension DeviceDiscoveryForRemoteIdentityProtocol { - - enum MessageId: Int, ConcreteProtocolMessageId { - case Initial = 0 - case ServerQuery = 3 - case FromAlice = 1 - case FromBob = 2 - - var concreteProtocolMessageType: ConcreteProtocolMessage.Type { - switch self { - case .Initial : return InitialMessage.self - case .ServerQuery : return ServerQueryMessage.self - case .FromAlice : return FromAliceMessage.self - case .FromBob : return FromBobMessage.self - } - } - } - - - struct InitialMessage: ConcreteProtocolMessage { - - let id: ConcreteProtocolMessageId = MessageId.Initial - let coreProtocolMessage: CoreProtocolMessage - - // Properties specific to this concrete protocol message - - let remoteIdentity: ObvCryptoIdentity - - var encodedInputs: [ObvEncoded] { - return [remoteIdentity.obvEncode()] - } - - // Initializers - - init(with message: ReceivedMessage) throws { - self.coreProtocolMessage = CoreProtocolMessage(with: message) - remoteIdentity = try message.encodedInputs.obvDecode() - } - - init(coreProtocolMessage: CoreProtocolMessage, remoteIdentity: ObvCryptoIdentity) { - self.coreProtocolMessage = coreProtocolMessage - self.remoteIdentity = remoteIdentity - } - } - - - struct ServerQueryMessage: ConcreteProtocolMessage { - - let id: ConcreteProtocolMessageId = MessageId.ServerQuery - let coreProtocolMessage: CoreProtocolMessage - - // Properties specific to this concrete protocol message - - let deviceUids: [UID]? // Only set when the message is sent to this protocol, not when sending this message to the server - - var encodedInputs: [ObvEncoded] { return [] } - - // Initializers - - init(with message: ReceivedMessage) throws { - self.coreProtocolMessage = CoreProtocolMessage(with: message) - let encodedElements = message.encodedInputs - guard encodedElements.count == 1 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded elements") } - guard let listOfEncodedUids = [ObvEncoded](encodedElements[0]) else { assertionFailure(); throw Self.makeError(message: "Failed to get list of encoded inputs") } - var uids = [UID]() - for encodedUid in listOfEncodedUids { - guard let uid = UID(encodedUid) else { assertionFailure(); throw Self.makeError(message: "Failed to decode UID") } - uids.append(uid) - } - self.deviceUids = uids - } - - init(coreProtocolMessage: CoreProtocolMessage) { - self.coreProtocolMessage = coreProtocolMessage - self.deviceUids = nil - } - } - - - struct FromAliceMessage: ConcreteProtocolMessage { - - let id: ConcreteProtocolMessageId = MessageId.FromAlice - let coreProtocolMessage: CoreProtocolMessage - - // Properties specific to this concrete protocol message - - let remoteIdentity: ObvCryptoIdentity - let remoteDeviceUid: UID - - var encodedInputs: [ObvEncoded] { - return [remoteIdentity.obvEncode(), remoteDeviceUid.obvEncode()] - } - - // Initializers - - init(with message: ReceivedMessage) throws { - self.coreProtocolMessage = CoreProtocolMessage(with: message) - (remoteIdentity, remoteDeviceUid) = try message.encodedInputs.obvDecode() - } - - init(coreProtocolMessage: CoreProtocolMessage, remoteIdentity: ObvCryptoIdentity, remoteDeviceUid: UID) { - self.coreProtocolMessage = coreProtocolMessage - self.remoteIdentity = remoteIdentity - self.remoteDeviceUid = remoteDeviceUid - } - } - - - struct FromBobMessage: ConcreteProtocolMessage { - - let id: ConcreteProtocolMessageId = MessageId.FromBob - let coreProtocolMessage: CoreProtocolMessage - - // Properties specific to this concrete protocol message - - let deviceUids: [UID] - - var encodedInputs: [ObvEncoded] { - return [(deviceUids as [ObvEncodable]).obvEncode()] - } - - // Initializers - - init(with message: ReceivedMessage) throws { - self.coreProtocolMessage = CoreProtocolMessage(with: message) - guard message.encodedInputs.count == 1 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded inputs") } - let deviceUidsAsEncodedList = message.encodedInputs[0] - guard let listOfEncodedUids = [ObvEncoded](deviceUidsAsEncodedList) else { assertionFailure(); throw Self.makeError(message: "Failed to obtain encoded device uids") } - deviceUids = try listOfEncodedUids.map { try $0.obvDecode() } - } - - init(coreProtocolMessage: CoreProtocolMessage, deviceUids: [UID]) { - self.coreProtocolMessage = coreProtocolMessage - self.deviceUids = deviceUids - } - - } -} - -// MARK: - Protocol States - -extension DeviceDiscoveryForRemoteIdentityProtocol { - - - enum StateId: Int, ConcreteProtocolStateId { - - case InitialState = 0 - // Alice's side - case WaitingForDeviceUids = 1 - case DeviceUidsReceived = 2 // Final - // Bob's side - case DeviceUidsSent = 3 // Final - - var concreteProtocolStateType: ConcreteProtocolState.Type { - switch self { - case .InitialState : return ConcreteProtocolInitialState.self - case .WaitingForDeviceUids : return WaitingForDeviceUidsState.self - case .DeviceUidsReceived : return DeviceUidsReceivedState.self - case .DeviceUidsSent : return DeviceUidsSentState.self - } - } - } - - - struct WaitingForDeviceUidsState: TypeConcreteProtocolState { - - let id: ConcreteProtocolStateId = StateId.WaitingForDeviceUids - - let remoteIdentity: ObvCryptoIdentity - - init(_ encoded: ObvEncoded) throws { - (remoteIdentity) = try encoded.obvDecode() - } - - init(remoteIdentity: ObvCryptoIdentity) { - self.remoteIdentity = remoteIdentity - } - - func obvEncode() -> ObvEncoded { - return remoteIdentity.obvEncode() - } - - } - - - struct DeviceUidsReceivedState: TypeConcreteProtocolState { - - let id: ConcreteProtocolStateId = StateId.DeviceUidsReceived - - let remoteIdentity: ObvCryptoIdentity - let deviceUids: [UID] - - init(_ obvEncoded: ObvEncoded) throws { - guard let listOfEncoded = [ObvEncoded](obvEncoded, expectedCount: 2) else { assertionFailure(); throw Self.makeError(message: "Could not obtain list of encoded elements") } - remoteIdentity = try listOfEncoded[0].obvDecode() - guard let listOfEncodedDeviceUids = [ObvEncoded](listOfEncoded[1]) else { assertionFailure(); throw Self.makeError(message: "Failed to obtain encoded device uids") } - deviceUids = try listOfEncodedDeviceUids.map { return try $0.obvDecode() } - } - - init(remoteIdentity: ObvCryptoIdentity, deviceUids: [UID]) { - self.remoteIdentity = remoteIdentity - self.deviceUids = deviceUids - } - - func obvEncode() -> ObvEncoded { - let listOfEncodedDeviceUids = deviceUids.map { $0.obvEncode() } - let encodedDeviceUids = listOfEncodedDeviceUids.obvEncode() - let encodedRemoteIdentity = remoteIdentity.obvEncode() - return [encodedRemoteIdentity, encodedDeviceUids].obvEncode() - } - } - - struct DeviceUidsSentState: TypeConcreteProtocolState { - - let id: ConcreteProtocolStateId = StateId.DeviceUidsSent - - init(_: ObvEncoded) {} - - init() {} - - func obvEncode() -> ObvEncoded { return 0.obvEncode() } - } - -} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocol.swift new file mode 100644 index 00000000..b4451b02 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocol.swift @@ -0,0 +1,66 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvCrypto +import ObvEncoder +import ObvTypes +import ObvOperation +import OlvidUtils + + +public struct ContactDeviceDiscoveryProtocol: ConcreteCryptoProtocol { + + static let logCategory = "ContactDeviceDiscoveryProtocol" + + static let id = CryptoProtocolId.contactDeviceDiscovery + + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.childProtocolStateProcessed, StateId.cancelled] + + let ownedIdentity: ObvCryptoIdentity + let currentState: ConcreteProtocolState + + let delegateManager: ObvProtocolDelegateManager + let obvContext: ObvContext + let prng: PRNGService + let instanceUid: UID + + init(instanceUid: UID, currentState: ConcreteProtocolState, ownedCryptoIdentity: ObvCryptoIdentity, delegateManager: ObvProtocolDelegateManager, prng: PRNGService, within obvContext: ObvContext) { + self.currentState = currentState + self.ownedIdentity = ownedCryptoIdentity + self.delegateManager = delegateManager + self.obvContext = obvContext + self.prng = prng + self.instanceUid = instanceUid + } + + static func stateId(fromRawValue rawValue: Int) -> ConcreteProtocolStateId? { + return StateId(rawValue: rawValue) + } + + static func messageId(fromRawValue rawValue: Int) -> ConcreteProtocolMessageId? { + return MessageId(rawValue: rawValue) + } + + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocolMessages.swift new file mode 100644 index 00000000..64316adf --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocolMessages.swift @@ -0,0 +1,98 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvCrypto +import ObvEncoder +import ObvTypes +import ObvOperation +import OlvidUtils + + + +// MARK: - Protocol Messages + +extension ContactDeviceDiscoveryProtocol { + + enum MessageId: Int, ConcreteProtocolMessageId { + case initial = 0 + case childProtocolReachedExpectedState = 1 + + var concreteProtocolMessageType: ConcreteProtocolMessage.Type { + switch self { + case .initial : return InitialMessage.self + case .childProtocolReachedExpectedState : return ChildProtocolReachedExpectedStateMessage.self + } + } + } + + + struct InitialMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.initial + let coreProtocolMessage: CoreProtocolMessage + + // Properties specific to this concrete protocol message + + let contactIdentity: ObvCryptoIdentity + + var encodedInputs: [ObvEncoded] { + return [contactIdentity.obvEncode()] + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + contactIdentity = try message.encodedInputs.obvDecode() + } + + init(coreProtocolMessage: CoreProtocolMessage, contactIdentity: ObvCryptoIdentity) { + self.coreProtocolMessage = coreProtocolMessage + self.contactIdentity = contactIdentity + } + } + + + struct ChildProtocolReachedExpectedStateMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.childProtocolReachedExpectedState + let coreProtocolMessage: CoreProtocolMessage + + // Properties specific to this concrete protocol message + + let childToParentProtocolMessageInputs: ChildToParentProtocolMessageInputs + let deviceUidsSentState: DeviceDiscoveryForRemoteIdentityProtocol.DeviceUidsReceivedState + + var encodedInputs: [ObvEncoded] { + return childToParentProtocolMessageInputs.toListOfEncoded() + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard let inputs = ChildToParentProtocolMessageInputs(message.encodedInputs) else { assertionFailure(); throw Self.makeError(message: "Failed to obtain inputs") } + childToParentProtocolMessageInputs = inputs + deviceUidsSentState = try DeviceDiscoveryForRemoteIdentityProtocol.DeviceUidsReceivedState(childToParentProtocolMessageInputs.childProtocolInstanceEncodedReachedState) + } + } +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocolStates.swift new file mode 100644 index 00000000..d2292945 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocolStates.swift @@ -0,0 +1,98 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvCrypto +import ObvEncoder +import ObvTypes +import ObvOperation +import OlvidUtils + + + +// MARK: - Protocol States + +extension ContactDeviceDiscoveryProtocol { + + + enum StateId: Int, ConcreteProtocolStateId { + + case initialState = 0 + case waitingForChildProtocol = 1 + case childProtocolStateProcessed = 2 + case cancelled = 3 + + var concreteProtocolStateType: ConcreteProtocolState.Type { + switch self { + case .initialState : return ConcreteProtocolInitialState.self + case .waitingForChildProtocol : return WaitingForChildProtocolState.self + case .childProtocolStateProcessed : return ChildProtocolStateProcessedState.self + case .cancelled : return CancelledState.self + } + } + } + + struct WaitingForChildProtocolState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.waitingForChildProtocol + + let contactIdentity: ObvCryptoIdentity + + init(_ obvEncoded: ObvEncoded) throws { + do { + contactIdentity = try obvEncoded.obvDecode() + } catch let error { + throw error + } + } + + init(contactIdentity: ObvCryptoIdentity) { + self.contactIdentity = contactIdentity + } + + func obvEncode() -> ObvEncoded { + return contactIdentity.obvEncode() + } + } + + struct ChildProtocolStateProcessedState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.childProtocolStateProcessed + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + } + + struct CancelledState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.cancelled + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryForContactIdentityProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocolSteps.swift similarity index 56% rename from Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryForContactIdentityProtocol.swift rename to Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocolSteps.swift index 539e6a78..ae8009ee 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryForContactIdentityProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/ContactDeviceDiscoveryProtocol/ContactDeviceDiscoveryProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,55 +27,20 @@ import ObvOperation import OlvidUtils -public struct DeviceDiscoveryForContactIdentityProtocol: ConcreteCryptoProtocol { - - static let logCategory = "DeviceDiscoveryForContactIdentityProtocol" - - static let id = CryptoProtocolId.DeviceDiscoveryForContactIdentity - - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.ChildProtocolStateProcessed, StateId.Cancelled] - - let ownedIdentity: ObvCryptoIdentity - let currentState: ConcreteProtocolState - - let delegateManager: ObvProtocolDelegateManager - let obvContext: ObvContext - let prng: PRNGService - let instanceUid: UID - - init(instanceUid: UID, currentState: ConcreteProtocolState, ownedCryptoIdentity: ObvCryptoIdentity, delegateManager: ObvProtocolDelegateManager, prng: PRNGService, within obvContext: ObvContext) { - self.currentState = currentState - self.ownedIdentity = ownedCryptoIdentity - self.delegateManager = delegateManager - self.obvContext = obvContext - self.prng = prng - self.instanceUid = instanceUid - } - - static func stateId(fromRawValue rawValue: Int) -> ConcreteProtocolStateId? { - return StateId(rawValue: rawValue) - } - - static func messageId(fromRawValue rawValue: Int) -> ConcreteProtocolMessageId? { - return MessageId(rawValue: rawValue) - } - - static let allStepIds: [ConcreteProtocolStepId] = [StepId.StartChildProtocol, StepId.ProcessChildProtocolState] -} // MARK: - Protocol Steps -extension DeviceDiscoveryForContactIdentityProtocol { +extension ContactDeviceDiscoveryProtocol { - enum StepId: Int, ConcreteProtocolStepId { + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { - case StartChildProtocol = 0 - case ProcessChildProtocolState = 1 + case startChildProtocol = 0 + case processChildProtocolState = 1 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { - case .StartChildProtocol : return StartChildProtocolStep(from: concreteProtocol, and: receivedMessage) - case .ProcessChildProtocolState : return ProcessChildProtocolStateStep(from: concreteProtocol, and: receivedMessage) + case .startChildProtocol : return StartChildProtocolStep(from: concreteProtocol, and: receivedMessage) + case .processChildProtocolState : return ProcessChildProtocolStateStep(from: concreteProtocol, and: receivedMessage) } } } @@ -99,7 +64,7 @@ extension DeviceDiscoveryForContactIdentityProtocol { override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { - let log = OSLog(subsystem: delegateManager.logSubsystem, category: DeviceDiscoveryForContactIdentityProtocol.logCategory) + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ContactDeviceDiscoveryProtocol.logCategory) let contactIdentity = receivedMessage.contactIdentity @@ -126,8 +91,8 @@ extension DeviceDiscoveryForContactIdentityProtocol { } guard let _ = LinkBetweenProtocolInstances(parentProtocolInstance: thisProtocolInstance, childProtocolInstanceUid: childProtocolInstanceUid, - expectedChildStateRawId: DeviceDiscoveryForRemoteIdentityProtocol.StateId.DeviceUidsReceived.rawValue, - messageToSendRawId: MessageId.ChildProtocolReachedExpectedState.rawValue) + expectedChildStateRawId: DeviceDiscoveryForRemoteIdentityProtocol.StateId.deviceUidsReceived.rawValue, + messageToSendRawId: MessageId.childProtocolReachedExpectedState.rawValue) else { os_log("Could not create a link between protocol instances", log: log, type: .fault) return CancelledState() @@ -135,7 +100,7 @@ extension DeviceDiscoveryForContactIdentityProtocol { // To actually create the child protocol instance, we post an appropriate message on the loopback channel - let coreMessage = getCoreMessageForOtherLocalProtocol(otherCryptoProtocolId: .DeviceDiscoveryForRemoteIdentity, + let coreMessage = getCoreMessageForOtherLocalProtocol(otherCryptoProtocolId: .deviceDiscoveryForRemoteIdentity, otherProtocolInstanceUid: childProtocolInstanceUid) let childProtocolInitialMessage = DeviceDiscoveryForRemoteIdentityProtocol.InitialMessage(coreProtocolMessage: coreMessage, remoteIdentity: contactIdentity) @@ -143,7 +108,7 @@ extension DeviceDiscoveryForContactIdentityProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) // Return the new state @@ -171,7 +136,7 @@ extension DeviceDiscoveryForContactIdentityProtocol { override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { - let log = OSLog(subsystem: delegateManager.logSubsystem, category: DeviceDiscoveryForContactIdentityProtocol.logCategory) + let log = OSLog(subsystem: delegateManager.logSubsystem, category: ContactDeviceDiscoveryProtocol.logCategory) let contactIdentity: ObvCryptoIdentity do { @@ -218,7 +183,7 @@ extension DeviceDiscoveryForContactIdentityProtocol { for deviceUid in latestSetOfDeviceUids { do { - try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: deviceUid, ofOwnedIdentity: ownedIdentity, within: obvContext) + try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: deviceUid, ofOwnedIdentity: ownedIdentity, createdDuringChannelCreation: false, within: obvContext) } catch { os_log("Could not add a device to a contact identity", log: log, type: .fault) assertionFailure() @@ -233,142 +198,3 @@ extension DeviceDiscoveryForContactIdentityProtocol { } } } - - -// MARK: - Protocol Messages - -extension DeviceDiscoveryForContactIdentityProtocol { - - enum MessageId: Int, ConcreteProtocolMessageId { - case Initial = 0 - case ChildProtocolReachedExpectedState = 1 - - var concreteProtocolMessageType: ConcreteProtocolMessage.Type { - switch self { - case .Initial : return InitialMessage.self - case .ChildProtocolReachedExpectedState : return ChildProtocolReachedExpectedStateMessage.self - } - } - } - - - struct InitialMessage: ConcreteProtocolMessage { - - let id: ConcreteProtocolMessageId = MessageId.Initial - let coreProtocolMessage: CoreProtocolMessage - - // Properties specific to this concrete protocol message - - let contactIdentity: ObvCryptoIdentity - - var encodedInputs: [ObvEncoded] { - return [contactIdentity.obvEncode()] - } - - // Initializers - - init(with message: ReceivedMessage) throws { - self.coreProtocolMessage = CoreProtocolMessage(with: message) - contactIdentity = try message.encodedInputs.obvDecode() - } - - init(coreProtocolMessage: CoreProtocolMessage, contactIdentity: ObvCryptoIdentity) { - self.coreProtocolMessage = coreProtocolMessage - self.contactIdentity = contactIdentity - } - } - - - struct ChildProtocolReachedExpectedStateMessage: ConcreteProtocolMessage { - - let id: ConcreteProtocolMessageId = MessageId.ChildProtocolReachedExpectedState - let coreProtocolMessage: CoreProtocolMessage - - // Properties specific to this concrete protocol message - - let childToParentProtocolMessageInputs: ChildToParentProtocolMessageInputs - let deviceUidsSentState: DeviceDiscoveryForRemoteIdentityProtocol.DeviceUidsReceivedState - - var encodedInputs: [ObvEncoded] { - return childToParentProtocolMessageInputs.toListOfEncoded() - } - - // Initializers - - init(with message: ReceivedMessage) throws { - self.coreProtocolMessage = CoreProtocolMessage(with: message) - guard let inputs = ChildToParentProtocolMessageInputs(message.encodedInputs) else { assertionFailure(); throw Self.makeError(message: "Failed to obtain inputs") } - childToParentProtocolMessageInputs = inputs - deviceUidsSentState = try DeviceDiscoveryForRemoteIdentityProtocol.DeviceUidsReceivedState(childToParentProtocolMessageInputs.childProtocolInstanceEncodedReachedState) - } - } -} - -// MARK: - Protocol States - -extension DeviceDiscoveryForContactIdentityProtocol { - - - enum StateId: Int, ConcreteProtocolStateId { - - case InitialState = 0 - case WaitingForChildProtocol = 1 - case ChildProtocolStateProcessed = 2 - case Cancelled = 3 - - var concreteProtocolStateType: ConcreteProtocolState.Type { - switch self { - case .InitialState : return ConcreteProtocolInitialState.self - case .WaitingForChildProtocol : return WaitingForChildProtocolState.self - case .ChildProtocolStateProcessed : return ChildProtocolStateProcessedState.self - case .Cancelled : return CancelledState.self - } - } - } - - struct WaitingForChildProtocolState: TypeConcreteProtocolState { - - let id: ConcreteProtocolStateId = StateId.WaitingForChildProtocol - - let contactIdentity: ObvCryptoIdentity - - init(_ obvEncoded: ObvEncoded) throws { - do { - contactIdentity = try obvEncoded.obvDecode() - } catch let error { - throw error - } - } - - init(contactIdentity: ObvCryptoIdentity) { - self.contactIdentity = contactIdentity - } - - func obvEncode() -> ObvEncoded { - return contactIdentity.obvEncode() - } - } - - struct ChildProtocolStateProcessedState: TypeConcreteProtocolState { - - let id: ConcreteProtocolStateId = StateId.ChildProtocolStateProcessed - - init(_: ObvEncoded) {} - - init() {} - - func obvEncode() -> ObvEncoded { return 0.obvEncode() } - } - - struct CancelledState: TypeConcreteProtocolState { - - let id: ConcreteProtocolStateId = StateId.Cancelled - - init(_: ObvEncoded) {} - - init() {} - - func obvEncode() -> ObvEncoded { return 0.obvEncode() } - } - -} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocol.swift new file mode 100644 index 00000000..6ca36685 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocol.swift @@ -0,0 +1,69 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvCrypto +import ObvEncoder +import ObvTypes +import ObvOperation +import ObvMetaManager +import OlvidUtils + + +public struct DeviceDiscoveryForRemoteIdentityProtocol: ConcreteCryptoProtocol { + + static let logCategory = "DeviceDiscoveryForRemoteIdentityProtocol" + + static let id = CryptoProtocolId.deviceDiscoveryForRemoteIdentity + + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.deviceUidsReceived] + + let ownedIdentity: ObvCryptoIdentity + let currentState: ConcreteProtocolState + + let delegateManager: ObvProtocolDelegateManager + let obvContext: ObvContext + let prng: PRNGService + let instanceUid: UID + + init(instanceUid: UID, currentState: ConcreteProtocolState, ownedCryptoIdentity: ObvCryptoIdentity, delegateManager: ObvProtocolDelegateManager, prng: PRNGService, within obvContext: ObvContext) { + self.currentState = currentState + self.ownedIdentity = ownedCryptoIdentity + self.delegateManager = delegateManager + self.obvContext = obvContext + self.prng = prng + self.instanceUid = instanceUid + } + + static func stateId(fromRawValue rawValue: Int) -> ConcreteProtocolStateId? { + return StateId(rawValue: rawValue) + } + + static func messageId(fromRawValue rawValue: Int) -> ConcreteProtocolMessageId? { + return MessageId(rawValue: rawValue) + } + + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } + +} + diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocolMessages.swift new file mode 100644 index 00000000..8029fbfb --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocolMessages.swift @@ -0,0 +1,109 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvCrypto +import ObvEncoder +import ObvTypes +import ObvOperation +import ObvMetaManager +import OlvidUtils + + + +// MARK: - Protocol Messages + +extension DeviceDiscoveryForRemoteIdentityProtocol { + + enum MessageId: Int, ConcreteProtocolMessageId { + case initial = 0 + case serverQuery = 3 + + var concreteProtocolMessageType: ConcreteProtocolMessage.Type { + switch self { + case .initial : return InitialMessage.self + case .serverQuery : return ServerQueryMessage.self + } + } + } + + + struct InitialMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.initial + let coreProtocolMessage: CoreProtocolMessage + + // Properties specific to this concrete protocol message + + let remoteIdentity: ObvCryptoIdentity + + var encodedInputs: [ObvEncoded] { + return [remoteIdentity.obvEncode()] + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + remoteIdentity = try message.encodedInputs.obvDecode() + } + + init(coreProtocolMessage: CoreProtocolMessage, remoteIdentity: ObvCryptoIdentity) { + self.coreProtocolMessage = coreProtocolMessage + self.remoteIdentity = remoteIdentity + } + } + + + struct ServerQueryMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.serverQuery + let coreProtocolMessage: CoreProtocolMessage + + // Properties specific to this concrete protocol message + + let deviceUids: [UID]? // Only set when the message is sent to this protocol, not when sending this message to the server + + var encodedInputs: [ObvEncoded] { return [] } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + let encodedElements = message.encodedInputs + guard encodedElements.count == 1 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded elements") } + guard let listOfEncodedUids = [ObvEncoded](encodedElements[0]) else { assertionFailure(); throw Self.makeError(message: "Failed to get list of encoded inputs") } + var uids = [UID]() + for encodedUid in listOfEncodedUids { + guard let uid = UID(encodedUid) else { assertionFailure(); throw Self.makeError(message: "Failed to decode UID") } + uids.append(uid) + } + self.deviceUids = uids + } + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + self.deviceUids = nil + } + } + +} + diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocolStates.swift new file mode 100644 index 00000000..d2cb4d15 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocolStates.swift @@ -0,0 +1,100 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvCrypto +import ObvEncoder +import ObvTypes +import ObvOperation +import ObvMetaManager +import OlvidUtils + + + +// MARK: - Protocol States + +extension DeviceDiscoveryForRemoteIdentityProtocol { + + enum StateId: Int, ConcreteProtocolStateId { + + case initialState = 0 + case waitingForDeviceUids = 1 + case deviceUidsReceived = 2 // Final + + var concreteProtocolStateType: ConcreteProtocolState.Type { + switch self { + case .initialState : return ConcreteProtocolInitialState.self + case .waitingForDeviceUids : return WaitingForDeviceUidsState.self + case .deviceUidsReceived : return DeviceUidsReceivedState.self + } + } + } + + + struct WaitingForDeviceUidsState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.waitingForDeviceUids + + let remoteIdentity: ObvCryptoIdentity + + init(_ encoded: ObvEncoded) throws { + (remoteIdentity) = try encoded.obvDecode() + } + + init(remoteIdentity: ObvCryptoIdentity) { + self.remoteIdentity = remoteIdentity + } + + func obvEncode() -> ObvEncoded { + return remoteIdentity.obvEncode() + } + + } + + + struct DeviceUidsReceivedState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.deviceUidsReceived + + let remoteIdentity: ObvCryptoIdentity + let deviceUids: [UID] + + init(_ obvEncoded: ObvEncoded) throws { + guard let listOfEncoded = [ObvEncoded](obvEncoded, expectedCount: 2) else { assertionFailure(); throw Self.makeError(message: "Could not obtain list of encoded elements") } + remoteIdentity = try listOfEncoded[0].obvDecode() + guard let listOfEncodedDeviceUids = [ObvEncoded](listOfEncoded[1]) else { assertionFailure(); throw Self.makeError(message: "Failed to obtain encoded device uids") } + deviceUids = try listOfEncodedDeviceUids.map { return try $0.obvDecode() } + } + + init(remoteIdentity: ObvCryptoIdentity, deviceUids: [UID]) { + self.remoteIdentity = remoteIdentity + self.deviceUids = deviceUids + } + + func obvEncode() -> ObvEncoded { + let listOfEncodedDeviceUids = deviceUids.map { $0.obvEncode() } + let encodedDeviceUids = listOfEncodedDeviceUids.obvEncode() + let encodedRemoteIdentity = remoteIdentity.obvEncode() + return [encodedRemoteIdentity, encodedDeviceUids].obvEncode() + } + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocolSteps.swift new file mode 100644 index 00000000..834bfb8e --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/DeviceDiscoveryForRemoteIdentityProtocol/DeviceDiscoveryForRemoteIdentityProtocolSteps.swift @@ -0,0 +1,121 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvCrypto +import ObvEncoder +import ObvTypes +import ObvOperation +import ObvMetaManager +import OlvidUtils + + + +// MARK: - Protocol Steps + +extension DeviceDiscoveryForRemoteIdentityProtocol { + + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { + + case sendServerRequest + case processDeviceUids + + func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { + var concreteProtocolStep: ConcreteProtocolStep? + switch self { + case .sendServerRequest: + concreteProtocolStep = SendServerRequestStep(from: concreteProtocol, and: receivedMessage) + case .processDeviceUids: + concreteProtocolStep = ProcessDeviceUidsFromServerStep(from: concreteProtocol, and: receivedMessage) + } + return concreteProtocolStep + } + } + + final class SendServerRequestStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: InitialMessage + + init?(startState: StartConcreteProtocolStateType, receivedMessage: ConcreteProtocolMessageType, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let remoteIdentity = receivedMessage.remoteIdentity + + // Send the server query + + let coreMessage = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concreteMessage = ServerQueryMessage(coreProtocolMessage: coreMessage) + let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.deviceDiscovery(of: remoteIdentity) + guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: concreteCryptoProtocol.prng, within: obvContext) + + // Return the new state + + return WaitingForDeviceUidsState(remoteIdentity: remoteIdentity) + } + } + + + final class ProcessDeviceUidsFromServerStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: WaitingForDeviceUidsState + let receivedMessage: ServerQueryMessage + + init?(startState: StartConcreteProtocolStateType, receivedMessage: ConcreteProtocolMessageType, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: DeviceDiscoveryForRemoteIdentityProtocol.logCategory) + + let remoteIdentity = startState.remoteIdentity + guard let deviceUids = receivedMessage.deviceUids else { + os_log("The received server response does not contain device uids", log: log, type: .error) + return nil + } + + return DeviceUidsReceivedState(remoteIdentity: remoteIdentity, deviceUids: deviceUids) + + } + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocol.swift new file mode 100644 index 00000000..db4d197b --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocol.swift @@ -0,0 +1,65 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvCrypto +import ObvTypes +import ObvEncoder +import OlvidUtils + + +public struct OwnedDeviceDiscoveryProtocol: ConcreteCryptoProtocol { + + static let logCategory = "OwnedDeviceDiscoveryProtocol" + + static let id = CryptoProtocolId.ownedDeviceDiscovery + + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.cancelled, StateId.serverQueryProcessed] + + let ownedIdentity: ObvCryptoIdentity + let currentState: ConcreteProtocolState + + let delegateManager: ObvProtocolDelegateManager + let obvContext: ObvContext + let prng: PRNGService + let instanceUid: UID + + init(instanceUid: UID, currentState: ConcreteProtocolState, ownedCryptoIdentity: ObvCryptoIdentity, delegateManager: ObvProtocolDelegateManager, prng: PRNGService, within obvContext: ObvContext) { + self.currentState = currentState + self.ownedIdentity = ownedCryptoIdentity + self.delegateManager = delegateManager + self.obvContext = obvContext + self.prng = prng + self.instanceUid = instanceUid + } + + static func stateId(fromRawValue rawValue: Int) -> ConcreteProtocolStateId? { + return StateId(rawValue: rawValue) + } + + static func messageId(fromRawValue rawValue: Int) -> ConcreteProtocolMessageId? { + return MessageId(rawValue: rawValue) + } + + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } + +} + diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocolMessages.swift new file mode 100644 index 00000000..ff8d026b --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocolMessages.swift @@ -0,0 +1,124 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvCrypto + +// MARK: - Protocol Messages + +extension OwnedDeviceDiscoveryProtocol { + + enum MessageId: Int, ConcreteProtocolMessageId { + + case initiateOwnedDeviceDiscovery = 0 + case serverQuery = 1 + case initiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDevice = 2 + + var concreteProtocolMessageType: ConcreteProtocolMessage.Type { + switch self { + case .initiateOwnedDeviceDiscovery : return InitiateOwnedDeviceDiscoveryMessage.self + case .serverQuery : return ServerQueryMessage.self + case .initiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDevice: return InitiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessage.self + } + } + + } + + + // MARK: - InitiateOwnedDeviceDiscoveryMessage + + struct InitiateOwnedDeviceDiscoveryMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.initiateOwnedDeviceDiscovery + let coreProtocolMessage: CoreProtocolMessage + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + } + + } + + + struct ServerQueryMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.serverQuery + let coreProtocolMessage: CoreProtocolMessage + + // Properties specific to this concrete protocol message + + let encryptedOwnedDeviceDiscoveryResult: EncryptedData? // Only set when the message is sent to this protocol, not when sending this message to the server + + var encodedInputs: [ObvEncoded] { return [] } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + let encodedElements = message.encodedInputs + guard encodedElements.count == 1 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded elements") } + let encodedEncryptedOwnedDeviceDiscoveryResult = encodedElements[0] + guard let encryptedOwnedDeviceDiscoveryResult = EncryptedData(encodedEncryptedOwnedDeviceDiscoveryResult) else { + assertionFailure() + throw Self.makeError(message: "Failed to decode the encrypted result of the owned device discovery") + } + self.encryptedOwnedDeviceDiscoveryResult = encryptedOwnedDeviceDiscoveryResult + } + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + self.encryptedOwnedDeviceDiscoveryResult = nil + } + } + + + // MARK: - InitiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessage + + struct InitiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.initiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDevice + let coreProtocolMessage: CoreProtocolMessage + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + } + + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocolStates.swift new file mode 100644 index 00000000..78bb905e --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocolStates.swift @@ -0,0 +1,93 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvTypes +import ObvCrypto +import ObvMetaManager + + +// MARK: - Protocol States + +extension OwnedDeviceDiscoveryProtocol { + + enum StateId: Int, ConcreteProtocolStateId { + + case initial = 0 + case waitingForServerQueryResult = 1 + case serverQueryProcessed = 2 // Final + case cancelled = 100 // Final + + var concreteProtocolStateType: ConcreteProtocolState.Type { + switch self { + case .initial : return ConcreteProtocolInitialState.self + case .waitingForServerQueryResult : return WaitingForServerQueryResultState.self + case .serverQueryProcessed : return ServerQueryProcessedState.self + case .cancelled : return CancelledState.self + } + } + } + + + // MARK: - WaitingForServerQueryResultState + + struct WaitingForServerQueryResultState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.waitingForServerQueryResult + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + + } + + + // MARK: - ServerQueryProcessedState + + struct ServerQueryProcessedState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.serverQueryProcessed + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + + } + + + // MARK: - CancelledState + + struct CancelledState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.cancelled + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocolSteps.swift new file mode 100644 index 00000000..dc35ed6b --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DeviceDiscoveryProtocols/OwnedDeviceDiscoveryProtocol/OwnedDeviceDiscoveryProtocolSteps.swift @@ -0,0 +1,198 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation + + +import Foundation +import os.log +import ObvTypes +import ObvMetaManager +import ObvCrypto +import OlvidUtils +import ObvEncoder + +// MARK: - Protocol Steps + +extension OwnedDeviceDiscoveryProtocol { + + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { + + case sendServerQuery = 0 + case processServerQuery = 1 + + func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { + switch self { + + case .sendServerQuery: + if let step = SendServerQueryFromInitiateOwnedDeviceDiscoveryMessageStep(from: concreteProtocol, and: receivedMessage) { + return step + } else if let step = SendServerQueryStepFromInitiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessageStep(from: concreteProtocol, and: receivedMessage) { + return step + } else { + return nil + } + + case .processServerQuery: + let step = ProcessServerQueryStep(from: concreteProtocol, and: receivedMessage) + return step + + } + } + } + + // MARK: - SendServerQueryStep + + class SendServerQueryStep: ProtocolStep { + + private let startState: ConcreteProtocolInitialState + private let receivedMessage: ReceivedMessageType + + enum ReceivedMessageType { + case initiateOwnedDeviceDiscoveryMessage(receivedMessage: InitiateOwnedDeviceDiscoveryMessage) + case initiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessage(receivedMessage: InitiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessage) + } + + init?(startState: ConcreteProtocolInitialState, receivedMessage: ReceivedMessageType, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + switch receivedMessage { + case .initiateOwnedDeviceDiscoveryMessage(receivedMessage: let receivedMessage): + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + case .initiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessage(receivedMessage: let receivedMessage): + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AnyObliviousChannelWithOwnedDevice(ownedIdentity: concreteCryptoProtocol.ownedIdentity), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + // Send the server query + + let coreMessage = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concreteMessage = ServerQueryMessage(coreProtocolMessage: coreMessage) + let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.ownedDeviceDiscovery + guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: concreteCryptoProtocol.prng, within: obvContext) + + // Return the new state + + return WaitingForServerQueryResultState() + + } + + } + + + // MARK: SendServerQueryFromInitiateOwnedDeviceDiscoveryMessageStep + + final class SendServerQueryFromInitiateOwnedDeviceDiscoveryMessageStep: SendServerQueryStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: InitiateOwnedDeviceDiscoveryMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: InitiateOwnedDeviceDiscoveryMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: startState, + receivedMessage: .initiateOwnedDeviceDiscoveryMessage(receivedMessage: receivedMessage), + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + // MARK: SendServerQueryStepFromInitiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessageStep + + final class SendServerQueryStepFromInitiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessageStep: SendServerQueryStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: InitiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: InitiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: startState, + receivedMessage: .initiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessage(receivedMessage: receivedMessage), + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + + + + + + + + // MARK: - ProcessServerQueryStep + + final class ProcessServerQueryStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: WaitingForServerQueryResultState + let receivedMessage: ServerQueryMessage + + init?(startState: WaitingForServerQueryResultState, receivedMessage: ServerQueryMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: OwnedDeviceDiscoveryProtocol.logCategory) + + guard let encryptedOwnedDeviceDiscoveryResult = receivedMessage.encryptedOwnedDeviceDiscoveryResult else { + assertionFailure() + os_log("The ServerQueryMessage has no encryptedOwnedDeviceDiscoveryResult. This is a bug.", log: log, type: .fault) + return CancelledState() + } + + let currentDeviceIsPartOfOwnedDeviceDiscoveryResult = try identityDelegate.processEncryptedOwnedDeviceDiscoveryResult(encryptedOwnedDeviceDiscoveryResult, forOwnedCryptoId: ownedIdentity, within: obvContext) + + if !currentDeviceIsPartOfOwnedDeviceDiscoveryResult { + ObvProtocolNotification.theCurrentDeviceWasNotPartOfTheLastOwnedDeviceDiscoveryResults(ownedIdentity: ownedIdentity) + .postOnBackgroundQueue(within: notificationDelegate) + } + + // Return the new state + + return ServerQueryProcessedState() + + } + + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocol.swift index a54d76f3..76798a46 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,9 +27,9 @@ public struct DownloadIdentityPhotoChildProtocol: ConcreteCryptoProtocol { static let logCategory = "DownloadIdentityPhotoChildProtocol" - static let id = CryptoProtocolId.DownloadIdentityPhoto + static let id = CryptoProtocolId.downloadIdentityPhoto - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.PhotoDownloaded, StateId.Cancelled] + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.photoDownloaded, StateId.cancelled] let ownedIdentity: ObvCryptoIdentity let currentState: ConcreteProtocolState @@ -60,5 +60,4 @@ public struct DownloadIdentityPhotoChildProtocol: ConcreteCryptoProtocol { return StepId.allCases } - } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocolMessages.swift index fc7f5ac3..04819002 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocolStates.swift index 1219fd17..b5356d95 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -30,17 +30,17 @@ extension DownloadIdentityPhotoChildProtocol { enum StateId: Int, ConcreteProtocolStateId { - case InitialState = 0 - case DownloadingPhoto = 1 - case PhotoDownloaded = 2 - case Cancelled = 3 + case initialState = 0 + case downloadingPhoto = 1 + case photoDownloaded = 2 + case cancelled = 3 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .InitialState : return ConcreteProtocolInitialState.self - case .DownloadingPhoto : return DownloadingPhotoState.self - case .PhotoDownloaded : return PhotoDownloadedState.self - case .Cancelled : return CancelledState.self + case .initialState : return ConcreteProtocolInitialState.self + case .downloadingPhoto : return DownloadingPhotoState.self + case .photoDownloaded : return PhotoDownloadedState.self + case .cancelled : return CancelledState.self } } } @@ -49,7 +49,7 @@ extension DownloadIdentityPhotoChildProtocol { struct DownloadingPhotoState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.DownloadingPhoto + let id: ConcreteProtocolStateId = StateId.downloadingPhoto let contactIdentity: ObvCryptoIdentity let contactIdentityDetailsElements: IdentityDetailsElements @@ -78,7 +78,7 @@ extension DownloadIdentityPhotoChildProtocol { struct PhotoDownloadedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.PhotoDownloaded + let id: ConcreteProtocolStateId = StateId.photoDownloaded func obvEncode() -> ObvEncoded { return 0.obvEncode() } @@ -93,7 +93,7 @@ extension DownloadIdentityPhotoChildProtocol { struct CancelledState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Cancelled + let id: ConcreteProtocolStateId = StateId.cancelled init(_: ObvEncoded) throws {} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocolSteps.swift index 2988ce3e..103b92de 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/DownloadIdentityPhotoProtocol/DownloadIdentityPhotoChildProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -31,17 +31,17 @@ extension DownloadIdentityPhotoChildProtocol { enum StepId: Int, ConcreteProtocolStepId, CaseIterable { - case QueryServer = 0 - case DownloadingPhoto = 1 + case queryServer = 0 + case downloadingPhoto = 1 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { - case .QueryServer: + case .queryServer: let step = QueryServerStep(from: concreteProtocol, and: receivedMessage) return step - case .DownloadingPhoto: + case .downloadingPhoto: let step = ProcessPhotoStep(from: concreteProtocol, and: receivedMessage) return step } @@ -82,7 +82,7 @@ extension DownloadIdentityPhotoChildProtocol { let concreteMessage = ServerGetPhotoMessage(coreProtocolMessage: coreMessage) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.getUserData(of: receivedMessage.contactIdentity, label: label) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) return DownloadingPhotoState(contactIdentity: receivedMessage.contactIdentity, contactIdentityDetailsElements: receivedMessage.contactIdentityDetailsElements) } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocol.swift index 8c8effa1..1bcce259 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,7 +29,7 @@ public struct FullRatchetProtocol: ConcreteCryptoProtocol { static let logCategory = "FullRatchetProtocol" - static let id = CryptoProtocolId.FullRatchet + static let id = CryptoProtocolId.fullRatchet private static let errorDomain = "FullRatchetProtocol" @@ -38,7 +38,7 @@ public struct FullRatchetProtocol: ConcreteCryptoProtocol { return NSError(domain: errorDomain, code: 0, userInfo: userInfo) } - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.FullRatchetDone, StateId.Cancelled] + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.fullRatchetDone, StateId.cancelled] let ownedIdentity: ObvCryptoIdentity let currentState: ConcreteProtocolState @@ -65,17 +65,10 @@ public struct FullRatchetProtocol: ConcreteCryptoProtocol { return MessageId(rawValue: rawValue) } - static let allStepIds: [ConcreteProtocolStepId] = [ - StepId.AliceSendEphemeralKey, - StepId.AliceResendEphemeralKeyFromAliceWaitingForK1State, - StepId.AliceResendEphemeralKeyFromAliceWaitingForAckState, - StepId.BobSendEphemeralKeyAndK1FromInitialState, - StepId.BobSendEphemeralKeyAndK1BobWaitingForK2State, - StepId.AliceRecoverK1AndSendK2, - StepId.BobRecoverK2ToUpdateReceiveSeedAndSendAck, - StepId.AliceUpdateSendSeed, - ] - + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } + static func computeProtocolUid(aliceIdentity: ObvCryptoIdentity, bobIdentity: ObvCryptoIdentity, aliceDeviceUid: UID, bobDeviceUid: UID) throws -> UID { guard let seed1 = Seed(with: aliceIdentity.getIdentity()) else { throw makeError(message: "Could not compute protocol uid (seed1 error)") } guard let seed2 = Seed(with: bobIdentity.getIdentity()) else { throw makeError(message: "Could not compute protocol uid (seed2 error)") } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocolMessages.swift index dad21123..4f80abd4 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,19 +27,19 @@ import ObvCrypto extension FullRatchetProtocol { enum MessageId: Int, ConcreteProtocolMessageId { - case Initial = 0 - case AliceEphemeralKey = 1 - case BobEphemeralKeyAndK1 = 2 - case AliceK2 = 3 - case BobAck = 4 + case initial = 0 + case aliceEphemeralKey = 1 + case bobEphemeralKeyAndK1 = 2 + case aliceK2 = 3 + case bobAck = 4 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { - case .Initial : return InitialMessage.self - case .AliceEphemeralKey : return AliceEphemeralKeyMessage.self - case .BobEphemeralKeyAndK1 : return BobEphemeralKeyAndK1Message.self - case .AliceK2 : return AliceK2Message.self - case .BobAck : return BobAckMessage.self + case .initial : return InitialMessage.self + case .aliceEphemeralKey : return AliceEphemeralKeyMessage.self + case .bobEphemeralKeyAndK1 : return BobEphemeralKeyAndK1Message.self + case .aliceK2 : return AliceK2Message.self + case .bobAck : return BobAckMessage.self } } @@ -49,7 +49,7 @@ extension FullRatchetProtocol { struct InitialMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.Initial + let id: ConcreteProtocolMessageId = MessageId.initial let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -81,7 +81,7 @@ extension FullRatchetProtocol { struct AliceEphemeralKeyMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.AliceEphemeralKey + let id: ConcreteProtocolMessageId = MessageId.aliceEphemeralKey let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -117,7 +117,7 @@ extension FullRatchetProtocol { struct BobEphemeralKeyAndK1Message: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.BobEphemeralKeyAndK1 + let id: ConcreteProtocolMessageId = MessageId.bobEphemeralKeyAndK1 let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -156,7 +156,7 @@ extension FullRatchetProtocol { struct AliceK2Message: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.AliceK2 + let id: ConcreteProtocolMessageId = MessageId.aliceK2 let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -191,7 +191,7 @@ extension FullRatchetProtocol { struct BobAckMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.BobAck + let id: ConcreteProtocolMessageId = MessageId.bobAck let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocolStates.swift index c4af39cb..b39d983d 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -28,21 +28,21 @@ extension FullRatchetProtocol { enum StateId: Int, ConcreteProtocolStateId { - case InitialState = 0 - case AliceWaitingForK1 = 1 - case BobWaitingForK2 = 2 - case AliceWaitingForAck = 3 - case FullRatchetDone = 4 - case Cancelled = 5 + case initialState = 0 + case aliceWaitingForK1 = 1 + case bobWaitingForK2 = 2 + case aliceWaitingForAck = 3 + case fullRatchetDone = 4 + case cancelled = 5 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .InitialState : return ConcreteProtocolInitialState.self - case .AliceWaitingForK1 : return AliceWaitingForK1State.self - case .BobWaitingForK2 : return BobWaitingForK2State.self - case .AliceWaitingForAck : return AliceWaitingForAckState.self - case .FullRatchetDone : return FullRatchetDoneState.self - case .Cancelled : return CancelledState.self + case .initialState : return ConcreteProtocolInitialState.self + case .aliceWaitingForK1 : return AliceWaitingForK1State.self + case .bobWaitingForK2 : return BobWaitingForK2State.self + case .aliceWaitingForAck : return AliceWaitingForAckState.self + case .fullRatchetDone : return FullRatchetDoneState.self + case .cancelled : return CancelledState.self } } @@ -51,7 +51,7 @@ extension FullRatchetProtocol { struct AliceWaitingForK1State: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.AliceWaitingForK1 + let id: ConcreteProtocolStateId = StateId.aliceWaitingForK1 let contactIdentity: ObvCryptoIdentity let contactDeviceUid: UID @@ -83,7 +83,7 @@ extension FullRatchetProtocol { struct BobWaitingForK2State: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.BobWaitingForK2 + let id: ConcreteProtocolStateId = StateId.bobWaitingForK2 let contactIdentity: ObvCryptoIdentity let contactDeviceUid: UID @@ -118,7 +118,7 @@ extension FullRatchetProtocol { struct AliceWaitingForAckState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.AliceWaitingForAck + let id: ConcreteProtocolStateId = StateId.aliceWaitingForAck let contactIdentity: ObvCryptoIdentity let contactDeviceUid: UID @@ -149,7 +149,7 @@ extension FullRatchetProtocol { struct FullRatchetDoneState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.FullRatchetDone + let id: ConcreteProtocolStateId = StateId.fullRatchetDone init(_: ObvEncoded) {} @@ -162,7 +162,7 @@ extension FullRatchetProtocol { struct CancelledState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Cancelled + let id: ConcreteProtocolStateId = StateId.cancelled init(_: ObvEncoded) {} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocolSteps.swift index 704e01e4..c72f99bd 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/FullRatchetProtocol/FullRatchetProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -30,27 +30,27 @@ import OlvidUtils extension FullRatchetProtocol { - enum StepId: Int, ConcreteProtocolStepId { + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { - case AliceSendEphemeralKey = 0 // Normal path - case AliceResendEphemeralKeyFromAliceWaitingForK1State = 1 - case AliceResendEphemeralKeyFromAliceWaitingForAckState = 2 - case BobSendEphemeralKeyAndK1FromInitialState = 3 // Normal path - case BobSendEphemeralKeyAndK1BobWaitingForK2State = 4 - case AliceRecoverK1AndSendK2 = 5 // Normal path - case BobRecoverK2ToUpdateReceiveSeedAndSendAck = 6 - case AliceUpdateSendSeed = 7 + case aliceSendEphemeralKey = 0 // Normal path + case aliceResendEphemeralKeyFromAliceWaitingForK1State = 1 + case aliceResendEphemeralKeyFromAliceWaitingForAckState = 2 + case bobSendEphemeralKeyAndK1FromInitialState = 3 // Normal path + case bobSendEphemeralKeyAndK1BobWaitingForK2State = 4 + case aliceRecoverK1AndSendK2 = 5 // Normal path + case bobRecoverK2ToUpdateReceiveSeedAndSendAck = 6 + case aliceUpdateSendSeed = 7 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { - case .AliceSendEphemeralKey: return AliceSendEphemeralKeyStep(from: concreteProtocol, and: receivedMessage) - case .AliceResendEphemeralKeyFromAliceWaitingForK1State: return AliceResendEphemeralKeyFromAliceWaitingForK1StateStep(from: concreteProtocol, and: receivedMessage) - case .AliceResendEphemeralKeyFromAliceWaitingForAckState: return AliceResendEphemeralKeyFromAliceWaitingForAckStateStep(from: concreteProtocol, and: receivedMessage) - case .BobSendEphemeralKeyAndK1FromInitialState: return BobSendEphemeralKeyAndK1FromInitialStateStep(from: concreteProtocol, and: receivedMessage) - case .BobSendEphemeralKeyAndK1BobWaitingForK2State: return BobSendEphemeralKeyAndK1BobWaitingForK2StateStep(from: concreteProtocol, and: receivedMessage) - case .AliceRecoverK1AndSendK2: return AliceRecoverK1AndSendK2Step(from: concreteProtocol, and: receivedMessage) - case .BobRecoverK2ToUpdateReceiveSeedAndSendAck: return BobRecoverK2ToUpdateReceiveSeedAndSendAckStep(from: concreteProtocol, and: receivedMessage) - case .AliceUpdateSendSeed: return AliceUpdateSendSeedStep(from: concreteProtocol, and: receivedMessage) + case .aliceSendEphemeralKey: return AliceSendEphemeralKeyStep(from: concreteProtocol, and: receivedMessage) + case .aliceResendEphemeralKeyFromAliceWaitingForK1State: return AliceResendEphemeralKeyFromAliceWaitingForK1StateStep(from: concreteProtocol, and: receivedMessage) + case .aliceResendEphemeralKeyFromAliceWaitingForAckState: return AliceResendEphemeralKeyFromAliceWaitingForAckStateStep(from: concreteProtocol, and: receivedMessage) + case .bobSendEphemeralKeyAndK1FromInitialState: return BobSendEphemeralKeyAndK1FromInitialStateStep(from: concreteProtocol, and: receivedMessage) + case .bobSendEphemeralKeyAndK1BobWaitingForK2State: return BobSendEphemeralKeyAndK1BobWaitingForK2StateStep(from: concreteProtocol, and: receivedMessage) + case .aliceRecoverK1AndSendK2: return AliceRecoverK1AndSendK2Step(from: concreteProtocol, and: receivedMessage) + case .bobRecoverK2ToUpdateReceiveSeedAndSendAck: return BobRecoverK2ToUpdateReceiveSeedAndSendAckStep(from: concreteProtocol, and: receivedMessage) + case .aliceUpdateSendSeed: return AliceUpdateSendSeedStep(from: concreteProtocol, and: receivedMessage) } } @@ -100,7 +100,7 @@ extension FullRatchetProtocol { contactEphemeralPublicKey: ephemeralPublicKey, restartCounter: restartCounter) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not post AliceEphemeralKey message", log: log, type: .fault) return CancelledState() @@ -172,7 +172,7 @@ extension FullRatchetProtocol { contactEphemeralPublicKey: ephemeralPublicKey, restartCounter: restartCounter) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not post AliceEphemeralKey message", log: log, type: .fault) return CancelledState() @@ -244,7 +244,7 @@ extension FullRatchetProtocol { contactEphemeralPublicKey: ephemeralPublicKey, restartCounter: restartCounter) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not post AliceEphemeralKey message", log: log, type: .fault) return CancelledState() @@ -307,7 +307,7 @@ extension FullRatchetProtocol { c1: c1, restartCounter: restartCounter) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not post BobEphemeralKeyAndK1Message message", log: log, type: .fault) return CancelledState() @@ -377,7 +377,7 @@ extension FullRatchetProtocol { c1: c1, restartCounter: restartCounter) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not post BobEphemeralKeyAndK1Message message", log: log, type: .fault) return CancelledState() @@ -468,7 +468,7 @@ extension FullRatchetProtocol { let coreMessage = getCoreMessage(for: .ObliviousChannel(to: remoteIdentity, remoteDeviceUids: [remoteDeviceUid], fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true), partOfFullRatchetProtocolOfTheSendSeed: true) let concreteProtocolMessage = AliceK2Message(coreProtocolMessage: coreMessage, c2: c2, restartCounter: localRestartCounter) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not post BobEphemeralKeyAndK1Message message", log: log, type: .fault) return CancelledState() @@ -566,7 +566,7 @@ extension FullRatchetProtocol { let coreMessage = getCoreMessage(for: .ObliviousChannel(to: remoteIdentity, remoteDeviceUids: [remoteDeviceUid], fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true), partOfFullRatchetProtocolOfTheSendSeed: false) let concreteProtocolMessage = BobAckMessage(coreProtocolMessage: coreMessage, restartCounter: localRestartCounter) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not post BobAckMessage message", log: log, type: .fault) return CancelledState() diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocol.swift index 19478dce..c0bf4151 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,9 +27,9 @@ public struct DownloadGroupPhotoChildProtocol: ConcreteCryptoProtocol { static let logCategory = "DownloadGroupPhotoChildProtocol" - static let id = CryptoProtocolId.DownloadGroupPhoto + static let id = CryptoProtocolId.downloadGroupPhoto - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.PhotoDownloaded, StateId.Cancelled] + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.photoDownloaded, StateId.cancelled] let ownedIdentity: ObvCryptoIdentity let currentState: ConcreteProtocolState diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocolMessages.swift index 824ea3b6..9e5d0b1a 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocolStates.swift index 8d15f3de..48a2e065 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,17 +29,17 @@ extension DownloadGroupPhotoChildProtocol { enum StateId: Int, ConcreteProtocolStateId { - case InitialState = 0 - case DownloadingPhoto = 1 - case PhotoDownloaded = 2 - case Cancelled = 3 + case initialState = 0 + case downloadingPhoto = 1 + case photoDownloaded = 2 + case cancelled = 3 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .InitialState : return ConcreteProtocolInitialState.self - case .DownloadingPhoto : return DownloadingPhotoState.self - case .PhotoDownloaded : return PhotoDownloadedState.self - case .Cancelled : return CancelledState.self + case .initialState : return ConcreteProtocolInitialState.self + case .downloadingPhoto : return DownloadingPhotoState.self + case .photoDownloaded : return PhotoDownloadedState.self + case .cancelled : return CancelledState.self } } } @@ -48,7 +48,7 @@ extension DownloadGroupPhotoChildProtocol { struct DownloadingPhotoState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.DownloadingPhoto + let id: ConcreteProtocolStateId = StateId.downloadingPhoto let groupInformation: GroupInformation @@ -70,7 +70,7 @@ extension DownloadGroupPhotoChildProtocol { struct PhotoDownloadedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.PhotoDownloaded + let id: ConcreteProtocolStateId = StateId.photoDownloaded func obvEncode() -> ObvEncoded { return 0.obvEncode() } @@ -85,7 +85,7 @@ extension DownloadGroupPhotoChildProtocol { struct CancelledState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Cancelled + let id: ConcreteProtocolStateId = StateId.cancelled init(_: ObvEncoded) throws {} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocolSteps.swift index 6b8bc69d..9f750a53 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/DownloadGroupPhotoProtocol/DownloadGroupPhotoChildProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -31,16 +31,16 @@ extension DownloadGroupPhotoChildProtocol { enum StepId: Int, ConcreteProtocolStepId, CaseIterable { - case QueryServer = 0 - case DownloadingPhoto = 1 + case queryServer = 0 + case downloadingPhoto = 1 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { - case .QueryServer: + case .queryServer: let step = QueryServerStep(from: concreteProtocol, and: receivedMessage) return step - case .DownloadingPhoto: + case .downloadingPhoto: let step = ProcessPhotoStep(from: concreteProtocol, and: receivedMessage) return step } @@ -80,7 +80,7 @@ extension DownloadGroupPhotoChildProtocol { let concreteMessage = ServerGetPhotoMessage.init(coreProtocolMessage: coreMessage) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.getUserData(of: receivedMessage.groupInformation.groupOwnerIdentity, label: label) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) return DownloadingPhotoState(groupInformation: receivedMessage.groupInformation) } @@ -129,9 +129,20 @@ extension DownloadGroupPhotoChildProtocol { } if groupInformation.groupOwnerIdentity == ownedIdentity { - try identityDelegate.updateDownloadedPhotoOfContactGroupOwned(ownedIdentity: ownedIdentity, groupUid: groupInformation.groupUid, version: groupInformation.groupDetailsElements.version, photo: photo, within: obvContext) + try identityDelegate.updateDownloadedPhotoOfContactGroupOwned( + ownedIdentity: ownedIdentity, + groupUid: groupInformation.groupUid, + version: groupInformation.groupDetailsElements.version, + photo: photo, + within: obvContext) } else { - try identityDelegate.updateDownloadedPhotoOfContactGroupJoined(ownedIdentity: ownedIdentity, groupOwner: groupInformation.groupOwnerIdentity, groupUid: groupInformation.groupUid, version: groupInformation.groupDetailsElements.version, photo: photo, within: obvContext) + try identityDelegate.updateDownloadedPhotoOfContactGroupJoined( + ownedIdentity: ownedIdentity, + groupOwner: groupInformation.groupOwnerIdentity, + groupUid: groupInformation.groupUid, + version: groupInformation.groupDetailsElements.version, + photo: photo, + within: obvContext) } let downloadedUserData = delegateManager.downloadedUserData diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocol.swift index d54fc713..ad0bcef0 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -28,12 +28,12 @@ public struct GroupInvitationProtocol: ConcreteCryptoProtocol { static let logCategory = "GroupInvitationProtocol" - static let id = CryptoProtocolId.GroupInvitation + static let id = CryptoProtocolId.groupInvitation - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.InvitationSent, - StateId.ResponseSent, - StateId.ResponseReceived, - StateId.Cancelled] + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.invitationSent, + StateId.responseSent, + StateId.responseReceived, + StateId.cancelled] let ownedIdentity: ObvCryptoIdentity let currentState: ConcreteProtocolState diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocolMessages.swift index 11704ee8..82416df2 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,22 +29,22 @@ extension GroupInvitationProtocol { enum MessageId: Int, ConcreteProtocolMessageId { - case Initial = 0 - case GroupInvitation = 1 - case DialogAcceptGroupInvitation = 2 - case InvitationResponse = 3 - case PropagateInvitationResponse = 4 + case initial = 0 + case groupInvitation = 1 + case dialogAcceptGroupInvitation = 2 + case invitationResponse = 3 + case propagateInvitationResponse = 4 // We remove the TrustLevelIncreased case on 2022-01-27 when implementing the two-level address bool - case DialogInformative = 6 + case dialogInformative = 6 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { - case .Initial : return InitialMessage.self - case .GroupInvitation : return GroupInvitationMessage.self - case .DialogAcceptGroupInvitation : return DialogAcceptGroupInvitationMessage.self - case .InvitationResponse : return InvitationResponseMessage.self - case .PropagateInvitationResponse : return PropagateInvitationResponseMessage.self - case .DialogInformative : return DialogInformativeMessage.self + case .initial : return InitialMessage.self + case .groupInvitation : return GroupInvitationMessage.self + case .dialogAcceptGroupInvitation : return DialogAcceptGroupInvitationMessage.self + case .invitationResponse : return InvitationResponseMessage.self + case .propagateInvitationResponse : return PropagateInvitationResponseMessage.self + case .dialogInformative : return DialogInformativeMessage.self } } } @@ -54,7 +54,7 @@ extension GroupInvitationProtocol { struct InitialMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.Initial + let id: ConcreteProtocolMessageId = MessageId.initial let coreProtocolMessage: CoreProtocolMessage let contactIdentity: ObvCryptoIdentity @@ -94,7 +94,7 @@ extension GroupInvitationProtocol { struct GroupInvitationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.GroupInvitation + let id: ConcreteProtocolMessageId = MessageId.groupInvitation let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation @@ -130,7 +130,7 @@ extension GroupInvitationProtocol { struct DialogAcceptGroupInvitationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.DialogAcceptGroupInvitation + let id: ConcreteProtocolMessageId = MessageId.dialogAcceptGroupInvitation let coreProtocolMessage: CoreProtocolMessage let dialogUuid: UUID // Only used when this protocol receives this message @@ -163,7 +163,7 @@ extension GroupInvitationProtocol { struct InvitationResponseMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.InvitationResponse + let id: ConcreteProtocolMessageId = MessageId.invitationResponse let coreProtocolMessage: CoreProtocolMessage let groupUid: UID @@ -196,7 +196,7 @@ extension GroupInvitationProtocol { struct PropagateInvitationResponseMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.PropagateInvitationResponse + let id: ConcreteProtocolMessageId = MessageId.propagateInvitationResponse let coreProtocolMessage: CoreProtocolMessage let invitationAccepted: Bool @@ -225,7 +225,7 @@ extension GroupInvitationProtocol { struct DialogInformativeMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.DialogInformative + let id: ConcreteProtocolMessageId = MessageId.dialogInformative let coreProtocolMessage: CoreProtocolMessage var encodedInputs: [ObvEncoded] { return [] } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocolStates.swift index 4c98b3b7..ce2f6071 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,21 +29,21 @@ extension GroupInvitationProtocol { enum StateId: Int, ConcreteProtocolStateId { - case InitialState = 0 - case InvitationSent = 1 - case InvitationReceived = 2 - case ResponseSent = 3 - case ResponseReceived = 4 - case Cancelled = 5 + case initialState = 0 + case invitationSent = 1 + case invitationReceived = 2 + case responseSent = 3 + case responseReceived = 4 + case cancelled = 5 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .InitialState : return ConcreteProtocolInitialState.self - case .InvitationSent : return InvitationSentState.self - case .InvitationReceived : return InvitationReceivedState.self - case .ResponseSent : return ResponseSentState.self - case .ResponseReceived : return ResponseReceivedState.self - case .Cancelled : return CancelledState.self + case .initialState : return ConcreteProtocolInitialState.self + case .invitationSent : return InvitationSentState.self + case .invitationReceived : return InvitationReceivedState.self + case .responseSent : return ResponseSentState.self + case .responseReceived : return ResponseReceivedState.self + case .cancelled : return CancelledState.self } } } @@ -53,7 +53,7 @@ extension GroupInvitationProtocol { struct InvitationSentState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.InvitationSent + let id: ConcreteProtocolStateId = StateId.invitationSent init(_: ObvEncoded) {} @@ -68,7 +68,7 @@ extension GroupInvitationProtocol { struct InvitationReceivedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.InvitationReceived + let id: ConcreteProtocolStateId = StateId.invitationReceived let groupInformation: GroupInformation let dialogUuid: UUID @@ -102,7 +102,7 @@ extension GroupInvitationProtocol { struct ResponseSentState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.ResponseSent + let id: ConcreteProtocolStateId = StateId.responseSent init(_: ObvEncoded) {} @@ -117,7 +117,7 @@ extension GroupInvitationProtocol { struct ResponseReceivedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.ResponseReceived + let id: ConcreteProtocolStateId = StateId.responseReceived init(_: ObvEncoded) {} @@ -132,7 +132,7 @@ extension GroupInvitationProtocol { struct CancelledState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Cancelled + let id: ConcreteProtocolStateId = StateId.cancelled init(_: ObvEncoded) throws {} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocolSteps.swift index 7b74595a..718c005e 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupInvitationProtocol/GroupInvitationProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -30,30 +30,30 @@ extension GroupInvitationProtocol { enum StepId: Int, ConcreteProtocolStepId, CaseIterable { - case SendInvitation = 0 - case ProcessInvitation = 1 - case ProcessInvitationDialogResponse = 2 + case sendInvitation = 0 + case processInvitation = 1 + case processInvitationDialogResponse = 2 // Case ReCheckTrustLevel = 3 // Removed on the 2022-01-27 when implementing two-level address book - case ProcessPropagatedInvitationResponse = 4 - case ProcessResponse = 5 + case processPropagatedInvitationResponse = 4 + case processResponse = 5 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { - case .SendInvitation: + case .sendInvitation: let step = SendInvitationStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessInvitation: + case .processInvitation: let step = ProcessInvitationStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessInvitationDialogResponse: + case .processInvitationDialogResponse: let step = ProcessInvitationDialogResponseStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessPropagatedInvitationResponse: + case .processPropagatedInvitationResponse: let step = ProcessPropagatedInvitationResponseStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessResponse: + case .processResponse: let step = ProcessResponseStep(from: concreteProtocol, and: receivedMessage) return step } @@ -119,7 +119,7 @@ extension GroupInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) // Return the new state @@ -232,7 +232,7 @@ extension GroupInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Propagate the accept to other owned devices @@ -248,7 +248,7 @@ extension GroupInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -266,7 +266,7 @@ extension GroupInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -321,7 +321,7 @@ extension GroupInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Check that the group owner is an active contact @@ -339,9 +339,25 @@ extension GroupInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } + // Propagate the response to other owned devices + + guard let numberOfOtherDevicesOfOwnedIdentity = try? identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext).count else { + os_log("Could not determine whether the owned identity has other (remote) devices", log: log, type: .fault) + return CancelledState() + } + + if numberOfOtherDevicesOfOwnedIdentity > 0 { + let coreMessage = getCoreMessage(for: .AllConfirmedObliviousChannelsWithOtherDevicesOfOwnedIdentity(ownedIdentity: ownedIdentity)) + let concreteProtocolMessage = PropagateInvitationResponseMessage(coreProtocolMessage: coreMessage, invitationAccepted: invitationAccepted) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + // If the invitation was not accepted, we are done. guard invitationAccepted else { @@ -409,7 +425,7 @@ extension GroupInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Make sure the group owner is an active contact @@ -495,7 +511,7 @@ extension GroupInvitationProtocol { let protocolInstanceUidForGroupManagement = dummyGroupInformation.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: Set([remoteIdentity]), fromOwnedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUidForGroupManagement) let concreteProtocolMessage = GroupManagementProtocol.KickFromGroupMessage(coreProtocolMessage: coreMessage, groupInformation: dummyGroupInformation) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -503,7 +519,7 @@ extension GroupInvitationProtocol { } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not notify member that she has been kicked out from group that could not be found", log: log, type: .error) // Continue @@ -531,7 +547,7 @@ extension GroupInvitationProtocol { let protocolInstanceUidForGroupManagement = groupInformationWithPhoto.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: Set([remoteIdentity]), fromOwnedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUidForGroupManagement) let concreteProtocolMessage = GroupManagementProtocol.KickFromGroupMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -539,7 +555,7 @@ extension GroupInvitationProtocol { } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not notify member that she has been kicked out from group owned", log: log, type: .error) // Continue @@ -565,7 +581,7 @@ extension GroupInvitationProtocol { let protocolInstanceUidForGroupManagement = groupInformationWithPhoto.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUidForGroupManagement) let concreteProtocolMessage = GroupManagementProtocol.TriggerUpdateMembersMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation, memberIdentity: remoteIdentity) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -573,7 +589,7 @@ extension GroupInvitationProtocol { } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not send the latest version of the group members to a member if a group owned", log: log, type: .error) assertionFailure() @@ -610,7 +626,7 @@ extension GroupInvitationProtocol { let protocolInstanceUidForGroupManagement = groupInformationWithPhoto.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: Set([remoteIdentity]), fromOwnedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUidForGroupManagement) let concreteProtocolMessage = GroupManagementProtocol.KickFromGroupMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -618,7 +634,7 @@ extension GroupInvitationProtocol { } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not notify member that she has been kicked out from group owned", log: log, type: .error) // Continue @@ -702,14 +718,14 @@ extension GroupInvitationProtocol { let childProtocolInstanceUid = groupInformationWithPhoto.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: childProtocolInstanceUid) let childProtocolInitialMessage = GroupManagementProtocol.GroupMembersChangedTriggerMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation) guard let messageToSend = childProtocolInitialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocol.swift index 2ea197db..3234dfdb 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -28,10 +28,10 @@ public struct GroupManagementProtocol: ConcreteCryptoProtocol { static let logCategory = "GroupManagementProtocol" - static let id = CryptoProtocolId.GroupManagement + static let id = CryptoProtocolId.groupManagement - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.Final, - StateId.Cancelled] + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.final, + StateId.cancelled] let ownedIdentity: ObvCryptoIdentity let currentState: ConcreteProtocolState diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocolMessages.swift index 3d00393a..0c47ed3c 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,37 +29,47 @@ extension GroupManagementProtocol { enum MessageId: Int, ConcreteProtocolMessageId { - case InitiateGroupCreation = 0 - case PropagateGroupCreation = 1 - case GroupMembersChangedTrigger = 2 - case NewMembers = 3 - case AddGroupMembers = 4 - case RemoveGroupMembers = 5 - case KickFromGroup = 6 - case NotifyGroupLeft = 7 - case LeaveGroupJoined = 10 - case InitiateGroupMembersQuery = 11 - case QueryGroupMembers = 12 - case TriggerReinvite = 13 - case TriggerUpdateMembers = 14 - case UploadGroupPhoto = 15 + case initiateGroupCreation = 0 + case propagateGroupCreation = 1 + case groupMembersChangedTrigger = 2 + case newMembers = 3 + case addGroupMembers = 4 + case removeGroupMembers = 5 + case kickFromGroup = 6 + case notifyGroupLeft = 7 + // case reinvitePendingMember = 8 // Not implemented under iOS + case disbandGroup = 9 + case leaveGroupJoined = 10 + case initiateGroupMembersQuery = 11 + case queryGroupMembers = 12 + case triggerReinvite = 13 + case triggerUpdateMembers = 14 + case uploadGroupPhoto = 15 + case propagateReinvitePendingMember = 16 + case propagateDisbandGroup = 17 + case propagateLeaveGroup = 18 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { - case .InitiateGroupCreation : return InitiateGroupCreationMessage.self - case .PropagateGroupCreation : return PropagateGroupCreationMessage.self - case .GroupMembersChangedTrigger : return GroupMembersChangedTriggerMessage.self - case .NewMembers : return NewMembersMessage.self - case .AddGroupMembers : return AddGroupMembersMessage.self - case .RemoveGroupMembers : return RemoveGroupMembersMessage.self - case .KickFromGroup : return KickFromGroupMessage.self - case .LeaveGroupJoined : return LeaveGroupJoinedMessage.self - case .NotifyGroupLeft : return NotifyGroupLeftMessage.self - case .InitiateGroupMembersQuery : return InitiateGroupMembersQueryMessage.self - case .QueryGroupMembers : return QueryGroupMembersMessage.self - case .TriggerReinvite : return TriggerReinviteMessage.self - case .TriggerUpdateMembers : return TriggerUpdateMembersMessage.self - case .UploadGroupPhoto : return UploadGroupPhotoMessage.self + case .initiateGroupCreation : return InitiateGroupCreationMessage.self + case .propagateGroupCreation : return PropagateGroupCreationMessage.self + case .groupMembersChangedTrigger : return GroupMembersChangedTriggerMessage.self + case .newMembers : return NewMembersMessage.self + case .addGroupMembers : return AddGroupMembersMessage.self + case .removeGroupMembers : return RemoveGroupMembersMessage.self + case .kickFromGroup : return KickFromGroupMessage.self + case .leaveGroupJoined : return LeaveGroupJoinedMessage.self + case .notifyGroupLeft : return NotifyGroupLeftMessage.self + // case .reinvitePendingMember : return ReinvitePendingMemberMessage.self + case .disbandGroup : return DisbandGroupMessage.self + case .initiateGroupMembersQuery : return InitiateGroupMembersQueryMessage.self + case .queryGroupMembers : return QueryGroupMembersMessage.self + case .triggerReinvite : return TriggerReinviteMessage.self + case .triggerUpdateMembers : return TriggerUpdateMembersMessage.self + case .uploadGroupPhoto : return UploadGroupPhotoMessage.self + case .propagateReinvitePendingMember : return PropagateReinvitePendingMemberMessage.self + case .propagateDisbandGroup : return PropagateDisbandGroupMessage.self + case .propagateLeaveGroup : return PropagateLeaveGroupMessage.self } } } @@ -69,7 +79,7 @@ extension GroupManagementProtocol { struct InitiateGroupCreationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.InitiateGroupCreation + let id: ConcreteProtocolMessageId = MessageId.initiateGroupCreation let coreProtocolMessage: CoreProtocolMessage let groupInformationWithPhoto: GroupInformationWithPhoto @@ -103,7 +113,7 @@ extension GroupManagementProtocol { struct PropagateGroupCreationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.PropagateGroupCreation + let id: ConcreteProtocolMessageId = MessageId.propagateGroupCreation let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation @@ -139,7 +149,7 @@ extension GroupManagementProtocol { struct GroupMembersChangedTriggerMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.GroupMembersChangedTrigger + let id: ConcreteProtocolMessageId = MessageId.groupMembersChangedTrigger let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation @@ -169,7 +179,7 @@ extension GroupManagementProtocol { struct NewMembersMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.NewMembers + let id: ConcreteProtocolMessageId = MessageId.newMembers let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation @@ -214,7 +224,7 @@ extension GroupManagementProtocol { struct AddGroupMembersMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.AddGroupMembers + let id: ConcreteProtocolMessageId = MessageId.addGroupMembers let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation @@ -249,7 +259,7 @@ extension GroupManagementProtocol { struct RemoveGroupMembersMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.RemoveGroupMembers + let id: ConcreteProtocolMessageId = MessageId.removeGroupMembers let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation @@ -284,7 +294,7 @@ extension GroupManagementProtocol { struct KickFromGroupMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.KickFromGroup + let id: ConcreteProtocolMessageId = MessageId.kickFromGroup let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation @@ -313,7 +323,7 @@ extension GroupManagementProtocol { struct LeaveGroupJoinedMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.LeaveGroupJoined + let id: ConcreteProtocolMessageId = MessageId.leaveGroupJoined let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation @@ -342,7 +352,7 @@ extension GroupManagementProtocol { struct NotifyGroupLeftMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.NotifyGroupLeft + let id: ConcreteProtocolMessageId = MessageId.notifyGroupLeft let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation @@ -367,11 +377,172 @@ extension GroupManagementProtocol { } + // MARK: - ReinvitePendingMemberMessage (not implemented under iOS) + +// struct ReinvitePendingMemberMessage: ConcreteProtocolMessage { +// +// let id: ConcreteProtocolMessageId = MessageId.reinvitePendingMember +// let coreProtocolMessage: CoreProtocolMessage +// +// let groupInformation: GroupInformation +// let pendingMemberIdentity: ObvCryptoIdentity +// +// var encodedInputs: [ObvEncoded] { +// return [groupInformation.obvEncode(), pendingMemberIdentity.obvEncode()] +// } +// +// // Initializers +// +// init(with message: ReceivedMessage) throws { +// self.coreProtocolMessage = CoreProtocolMessage(with: message) +// guard message.encodedInputs.count == 2 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded inputs") } +// self.groupInformation = try message.encodedInputs[0].obvDecode() +// let rawPendingMemberIdentity: Data = try message.encodedInputs[1].obvDecode() +// guard let cryptoId = ObvCryptoIdentity(from: rawPendingMemberIdentity) else { assertionFailure(); throw ObvError.couldNotDecodeIdentity } +// self.pendingMemberIdentity = cryptoId +// } +// +// init(coreProtocolMessage: CoreProtocolMessage, groupInformation: GroupInformation, pendingMemberIdentity: ObvCryptoIdentity) { +// self.coreProtocolMessage = coreProtocolMessage +// self.groupInformation = groupInformation +// self.pendingMemberIdentity = pendingMemberIdentity +// } +// +// enum ObvError: Error { +// case couldNotDecodeIdentity +// } +// +// } + + + // MARK: - DisbandGroupMessage + + struct DisbandGroupMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.disbandGroup + let coreProtocolMessage: CoreProtocolMessage + + let groupInformation: GroupInformation + + var encodedInputs: [ObvEncoded] { + return [groupInformation.obvEncode()] + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 1 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded inputs") } + self.groupInformation = try message.encodedInputs[0].obvDecode() + } + + init(coreProtocolMessage: CoreProtocolMessage, groupInformation: GroupInformation) { + self.coreProtocolMessage = coreProtocolMessage + self.groupInformation = groupInformation + } + + } + + + // MARK: - PropagateReinvitePendingMemberMessage + + struct PropagateReinvitePendingMemberMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.propagateReinvitePendingMember + let coreProtocolMessage: CoreProtocolMessage + + let groupInformation: GroupInformation + let pendingMemberIdentity: ObvCryptoIdentity + + var encodedInputs: [ObvEncoded] { + return [groupInformation.obvEncode(), pendingMemberIdentity.obvEncode()] + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 2 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded inputs") } + self.groupInformation = try message.encodedInputs[0].obvDecode() + let rawPendingMemberIdentity: Data = try message.encodedInputs[1].obvDecode() + guard let cryptoId = ObvCryptoIdentity(from: rawPendingMemberIdentity) else { assertionFailure(); throw ObvError.couldNotDecodeIdentity } + self.pendingMemberIdentity = cryptoId + } + + init(coreProtocolMessage: CoreProtocolMessage, groupInformation: GroupInformation, pendingMemberIdentity: ObvCryptoIdentity) { + self.coreProtocolMessage = coreProtocolMessage + self.groupInformation = groupInformation + self.pendingMemberIdentity = pendingMemberIdentity + } + + enum ObvError: Error { + case couldNotDecodeIdentity + } + + } + + + // MARK: - PropagateDisbandGroupMessage + + struct PropagateDisbandGroupMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.propagateDisbandGroup + let coreProtocolMessage: CoreProtocolMessage + + let groupInformation: GroupInformation + + var encodedInputs: [ObvEncoded] { + return [groupInformation.obvEncode()] + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 1 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded inputs") } + self.groupInformation = try message.encodedInputs[0].obvDecode() + } + + init(coreProtocolMessage: CoreProtocolMessage, groupInformation: GroupInformation) { + self.coreProtocolMessage = coreProtocolMessage + self.groupInformation = groupInformation + } + + } + + // MARK: PropagateLeaveGroupMessage + + struct PropagateLeaveGroupMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.propagateLeaveGroup + let coreProtocolMessage: CoreProtocolMessage + + let groupInformation: GroupInformation + + var encodedInputs: [ObvEncoded] { + return [groupInformation.obvEncode()] + } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 1 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded inputs") } + self.groupInformation = try message.encodedInputs[0].obvDecode() + } + + init(coreProtocolMessage: CoreProtocolMessage, groupInformation: GroupInformation) { + self.coreProtocolMessage = coreProtocolMessage + self.groupInformation = groupInformation + } + + } + // MARK: - InitiateGroupMembersQueryMessage struct InitiateGroupMembersQueryMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.InitiateGroupMembersQuery + let id: ConcreteProtocolMessageId = MessageId.initiateGroupMembersQuery let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation @@ -400,7 +571,7 @@ extension GroupManagementProtocol { struct QueryGroupMembersMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.QueryGroupMembers + let id: ConcreteProtocolMessageId = MessageId.queryGroupMembers let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation @@ -429,7 +600,7 @@ extension GroupManagementProtocol { struct TriggerReinviteMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.TriggerReinvite + let id: ConcreteProtocolMessageId = MessageId.triggerReinvite let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation @@ -461,7 +632,7 @@ extension GroupManagementProtocol { struct TriggerUpdateMembersMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.TriggerUpdateMembers + let id: ConcreteProtocolMessageId = MessageId.triggerUpdateMembers let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation @@ -492,7 +663,7 @@ extension GroupManagementProtocol { struct UploadGroupPhotoMessage: ConcreteProtocolMessage { - var id: ConcreteProtocolMessageId = MessageId.UploadGroupPhoto + var id: ConcreteProtocolMessageId = MessageId.uploadGroupPhoto let coreProtocolMessage: CoreProtocolMessage let groupInformation: GroupInformation diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocolStates.swift index 41af5aca..1c02eda2 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,15 +29,15 @@ extension GroupManagementProtocol { enum StateId: Int, ConcreteProtocolStateId { - case InitialState = 0 - case Final = 1 - case Cancelled = 9 + case initialState = 0 + case final = 1 + case cancelled = 9 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .InitialState : return ConcreteProtocolInitialState.self - case .Final : return FinalState.self - case .Cancelled : return CancelledState.self + case .initialState : return ConcreteProtocolInitialState.self + case .final : return FinalState.self + case .cancelled : return CancelledState.self } } } @@ -47,7 +47,7 @@ extension GroupManagementProtocol { struct FinalState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Final + let id: ConcreteProtocolStateId = StateId.final init(_: ObvEncoded) {} @@ -62,7 +62,7 @@ extension GroupManagementProtocol { struct CancelledState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Cancelled + let id: ConcreteProtocolStateId = StateId.cancelled init(_: ObvEncoded) throws {} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocolSteps.swift index f0b2f83c..b605e878 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV1Protocols/GroupManagementProtocol/GroupManagementProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -30,65 +30,86 @@ extension GroupManagementProtocol { enum StepId: Int, ConcreteProtocolStepId, CaseIterable { - case InitiateGroupCreation = 0 - case NotifyMembersChanged = 1 - case ProcessNewMembers = 2 - case AddGroupMembers = 3 - case RemoveGroupMembers = 4 - case GetKicked = 5 - case LeaveGroupJoined = 6 - case ProcessGroupLeft = 7 - case QueryGroupMembers = 8 - case SendGroupMember = 9 - case Reinvite = 10 - case UpdateMembers = 11 - - case NotifyMembersChangedAfterPhotoUploading = 100 // Copy of NotifyMembersChanged + case initiateGroupCreation = 0 + case notifyMembersChanged = 1 + case processNewMembers = 2 + case addGroupMembers = 3 + case removeGroupMembers = 4 + case getKicked = 5 + case leaveGroupJoined = 6 + case processGroupLeft = 7 + case queryGroupMembers = 8 + case sendGroupMember = 9 + case reinvite = 10 + case updateMembers = 11 + case disbandGroup = 12 + case processPropagateDisbandGroupMessage = 13 + case processPropagateGroupCreationMessage = 14 + case processPropagateLeaveGroupMessage = 15 + // For now, the ReinvitePendingMemberStep is not implemented + case processPropagateReinvitePendingMember = 17 + + case notifyMembersChangedAfterPhotoUploading = 100 // Copy of NotifyMembersChanged func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { - case .InitiateGroupCreation: + case .initiateGroupCreation: let step = InitiateGroupCreationStep(from: concreteProtocol, and: receivedMessage) return step - case .NotifyMembersChanged: + case .notifyMembersChanged: let step = NotifyMembersChangedStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessNewMembers: + case .processNewMembers: let step = ProcessNewMembersStep(from: concreteProtocol, and: receivedMessage) return step - case .AddGroupMembers: + case .addGroupMembers: let step = AddGroupMembersStep(from: concreteProtocol, and: receivedMessage) return step - case .RemoveGroupMembers: + case .removeGroupMembers: let step = RemoveGroupMembersStep(from: concreteProtocol, and: receivedMessage) return step - case .GetKicked: + case .getKicked: let step = GetKickedStep(from: concreteProtocol, and: receivedMessage) return step - case .LeaveGroupJoined: + case .leaveGroupJoined: let step = LeaveGroupJoinedStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessGroupLeft: + case .processGroupLeft: let step = ProcessGroupLeftStep(from: concreteProtocol, and: receivedMessage) return step - case .QueryGroupMembers: + case .queryGroupMembers: let step = QueryGroupMembersStep(from: concreteProtocol, and: receivedMessage) return step - case .SendGroupMember: + case .sendGroupMember: let step = SendGroupMemberStep(from: concreteProtocol, and: receivedMessage) return step - case .Reinvite: + case .reinvite: let step = ReinviteStep(from: concreteProtocol, and: receivedMessage) return step - case .UpdateMembers: + case .updateMembers: let step = UpdateMembersStep(from: concreteProtocol, and: receivedMessage) return step - case .NotifyMembersChangedAfterPhotoUploading: + case .notifyMembersChangedAfterPhotoUploading: let step = NotifyMembersChangedAfterPhotoUploadingStep(from: concreteProtocol, and: receivedMessage) return step + case .disbandGroup: + let step = DisbandGroupStep(from: concreteProtocol, and: receivedMessage) + return step + case .processPropagateDisbandGroupMessage: + let step = ProcessPropagateDisbandGroupMessageStep(from: concreteProtocol, and: receivedMessage) + return step + case .processPropagateGroupCreationMessage: + let step = ProcessPropagateGroupCreationMessageStep(from: concreteProtocol, and: receivedMessage) + return step + case .processPropagateLeaveGroupMessage: + let step = ProcessPropagateLeaveGroupMessageStep(from: concreteProtocol, and: receivedMessage) + return step + case .processPropagateReinvitePendingMember: + let step = ProcessPropagateReinvitePendingMemberStep(from: concreteProtocol, and: receivedMessage) + return step } } } @@ -171,7 +192,7 @@ extension GroupManagementProtocol { let concreteMessage = GroupManagementProtocol.UploadGroupPhotoMessage.init(coreProtocolMessage: coreMessage, groupInformation: updatedGroupInformationWithPhoto.groupInformation) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.putUserData(label: photoServerLabel, dataURL: updatedPhotoURL, dataKey: photoServerKey) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Error: %{public}@", log: log, type: .error, error.localizedDescription) assertionFailure() @@ -188,18 +209,21 @@ extension GroupManagementProtocol { if numberOfOtherDevicesOfOwnedIdentity > 0 { let coreMessage = getCoreMessage(for: .AllConfirmedObliviousChannelsWithOtherDevicesOfOwnedIdentity(ownedIdentity: ownedIdentity)) - let concreteProtocolMessage = PropagateGroupCreationMessage(coreProtocolMessage: coreMessage, groupInformation: updatedGroupInformationWithPhoto.groupInformation, pendingGroupMembers: pendingGroupMembers) + let concreteProtocolMessage = PropagateGroupCreationMessage( + coreProtocolMessage: coreMessage, + groupInformation: updatedGroupInformationWithPhoto.groupInformation, + pendingGroupMembers: pendingGroupMembers) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Post an invitation to each group member by starting a child GroupInvitationProtocol for contactIdentity in pendingGroupMembers.map({ $0.cryptoIdentity }) { let childProtocolInstanceUid = UID.gen(with: prng) - let coreMessage = getCoreMessageForOtherLocalProtocol(otherCryptoProtocolId: .GroupInvitation, + let coreMessage = getCoreMessageForOtherLocalProtocol(otherCryptoProtocolId: .groupInvitation, otherProtocolInstanceUid: childProtocolInstanceUid) // We only pass *pending* group members to the initial message of the GroupInvitationProtocol since, at this point, there are no proper members yet let childProtocolInitialMessage = GroupInvitationProtocol.InitialMessage(coreProtocolMessage: coreMessage, @@ -210,7 +234,7 @@ extension GroupManagementProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -323,12 +347,23 @@ extension GroupManagementProtocol { // Get the group structure from database let groupStructureOrNil: GroupStructure? - do { - groupStructureOrNil = try identityDelegate.getGroupJoinedStructure(ownedIdentity: ownedIdentity, groupUid: newGroupInformation.groupUid, groupOwner: newGroupInformation.groupOwnerIdentity, within: obvContext) - } catch { - os_log("Could not access the group in database", log: log, type: .error) - return CancelledState() + + if remoteIdentity == ownedIdentity { + do { + groupStructureOrNil = try identityDelegate.getGroupOwnedStructure(ownedIdentity: ownedIdentity, groupUid: newGroupInformation.groupUid, within: obvContext) + } catch { + os_log("Could not access the group in database", log: log, type: .error) + return CancelledState() + } + } else { + do { + groupStructureOrNil = try identityDelegate.getGroupJoinedStructure(ownedIdentity: ownedIdentity, groupUid: newGroupInformation.groupUid, groupOwner: newGroupInformation.groupOwnerIdentity, within: obvContext) + } catch { + os_log("Could not access the group in database", log: log, type: .error) + return CancelledState() + } } + // If the group structure is nil, it means that we have not joined the group yet, which is not expected at this point. @@ -339,11 +374,19 @@ extension GroupManagementProtocol { // If we reach this point, we can update the group - // Check that the group is one we joined, not one we own - guard groupStructure.groupType == .joined else { - os_log("The group is not one we joined", log: log, type: .error) - return CancelledState() + if remoteIdentity == ownedIdentity { + // Check that the group is one we joined, not one we own + guard groupStructure.groupType == .owned else { + os_log("The group is not one we own", log: log, type: .error) + return CancelledState() + } + } else { + // Check that the group is one we joined, not one we own + guard groupStructure.groupType == .joined else { + os_log("The group is not one we joined", log: log, type: .error) + return CancelledState() + } } // Check that the received member version is more recent than the one we already know about @@ -360,11 +403,24 @@ extension GroupManagementProtocol { if newGroupDetails.photoServerKeyAndLabel != nil { let publishedDetailsWithPhoto: GroupInformationWithPhoto - do { - publishedDetailsWithPhoto = try identityDelegate.getGroupJoinedInformationAndPublishedPhoto(ownedIdentity: ownedIdentity, groupUid: newGroupInformation.groupUid, groupOwner: newGroupInformation.groupOwnerIdentity, within: obvContext) - } catch { - os_log("Could not get details of published group", log: log, type: .error) - return CancelledState() + if remoteIdentity == ownedIdentity { + + do { + publishedDetailsWithPhoto = try identityDelegate.getGroupOwnedInformationAndPublishedPhoto(ownedIdentity: ownedIdentity, groupUid: newGroupInformation.groupUid, within: obvContext) + } catch { + os_log("Could not get details of published group", log: log, type: .error) + return CancelledState() + } + + } else { + + do { + publishedDetailsWithPhoto = try identityDelegate.getGroupJoinedInformationAndPublishedPhoto(ownedIdentity: ownedIdentity, groupUid: newGroupInformation.groupUid, groupOwner: newGroupInformation.groupOwnerIdentity, within: obvContext) + } catch { + os_log("Could not get details of published group", log: log, type: .error) + return CancelledState() + } + } let currentGroupDetailsElementsWithPhoto = publishedDetailsWithPhoto.groupDetailsElementsWithPhoto @@ -377,7 +433,7 @@ extension GroupManagementProtocol { let childProtocolInstanceUid = UID.gen(with: prng) let coreMessage = getCoreMessageForOtherLocalProtocol( - otherCryptoProtocolId: .DownloadGroupPhoto, + otherCryptoProtocolId: .downloadGroupPhoto, otherProtocolInstanceUid: childProtocolInstanceUid) let childProtocolInitialMessage = DownloadGroupPhotoChildProtocol.InitialMessage( coreProtocolMessage: coreMessage, @@ -386,40 +442,70 @@ extension GroupManagementProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } - // Update the details of the group with the new details - do { - try identityDelegate.updatePublishedDetailsOfContactGroupJoined(ownedIdentity: ownedIdentity, - groupInformation: newGroupInformation, - within: obvContext) - } catch { - os_log("Could not update published details of the contact group joined", log: log, type: .error) - // We do not return - } + if remoteIdentity == ownedIdentity { + + do { + let groupDetailsElementsWithPhoto = GroupDetailsElementsWithPhoto(groupDetailsElements: newGroupInformation.groupDetailsElements, photoURL: nil) + try identityDelegate.updateLatestDetailsOfContactGroupOwned( + ownedIdentity: ownedIdentity, + groupUid: newGroupInformation.groupUid, + with: groupDetailsElementsWithPhoto, + within: obvContext) + try identityDelegate.publishLatestDetailsOfContactGroupOwned(ownedIdentity: ownedIdentity, groupUid: newGroupInformation.groupUid, within: obvContext) + } catch { + os_log("Could not update latest details of the contact group owned", log: log, type: .error) + // We do not return + } + + do { + try identityDelegate.updatePendingMembersAndGroupMembersOfContactGroupOwned(ownedIdentity: ownedIdentity, + groupUid: newGroupInformation.groupUid, + groupMembers: groupMembers, + pendingGroupMembers: pendingMembers, + groupMembersVersion: groupMembersVersion, + within: obvContext) + } catch { + os_log("Could not update pending members nor group members of the joined contact group", log: log, type: .error) + // We do not return + } + + } else { + do { + try identityDelegate.updatePublishedDetailsOfContactGroupJoined(ownedIdentity: ownedIdentity, + groupInformation: newGroupInformation, + within: obvContext) + } catch { + os_log("Could not update published details of the contact group joined", log: log, type: .error) + // We do not return + } + + // Update the pending members and the group members of the joined contact group + + do { + try identityDelegate.updatePendingMembersAndGroupMembersOfContactGroupJoined(ownedIdentity: ownedIdentity, + groupUid: newGroupInformation.groupUid, + groupOwner: newGroupInformation.groupOwnerIdentity, + groupMembers: groupMembers, + pendingGroupMembers: pendingMembers, + groupMembersVersion: groupMembersVersion, + within: obvContext) + } catch { + os_log("Could not update pending members nor group members of the joined contact group", log: log, type: .error) + // We do not return + } - // Update the pending members and the group members of the joined contact group - - do { - try identityDelegate.updatePendingMembersAndGroupMembersOfContactGroupJoined(ownedIdentity: ownedIdentity, - groupUid: newGroupInformation.groupUid, - groupOwner: newGroupInformation.groupOwnerIdentity, - groupMembers: groupMembers, - pendingGroupMembers: pendingMembers, - groupMembersVersion: groupMembersVersion, - within: obvContext) - } catch { - os_log("Could not update pending members nor group members of the joined contact group", log: log, type: .error) - // We do not return } - + + // Return the new state return FinalState() @@ -494,13 +580,13 @@ extension GroupManagementProtocol { let childProtocolInstanceUid = groupInformationWithPhoto.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: childProtocolInstanceUid) let childProtocolInitialMessage = GroupManagementProtocol.GroupMembersChangedTriggerMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation) guard let messageToSend = childProtocolInitialMessage.generateObvChannelProtocolMessageToSend(with: localPrng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: localPrng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: localPrng, within: obvContext) } @@ -544,7 +630,7 @@ extension GroupManagementProtocol { for contactIdentity in newGroupMembers { let childProtocolInstanceUid = UID.gen(with: prng) - let coreMessage = getCoreMessageForOtherLocalProtocol(otherCryptoProtocolId: .GroupInvitation, + let coreMessage = getCoreMessageForOtherLocalProtocol(otherCryptoProtocolId: .groupInvitation, otherProtocolInstanceUid: childProtocolInstanceUid) // Note that the initial message of the GroupInvitationProtocol expects the list of (pending) members to *not* include the group owned, i.e., *not* include the owned identity. let childProtocolInitialMessage = GroupInvitationProtocol.InitialMessage(coreProtocolMessage: coreMessage, @@ -555,7 +641,7 @@ extension GroupManagementProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } return FinalState() @@ -630,13 +716,13 @@ extension GroupManagementProtocol { let childProtocolInstanceUid = groupInformationWithPhoto.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: childProtocolInstanceUid) let childProtocolInitialMessage = GroupManagementProtocol.GroupMembersChangedTriggerMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation) guard let messageToSend = childProtocolInitialMessage.generateObvChannelProtocolMessageToSend(with: localPrng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: localPrng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: localPrng, within: obvContext) } @@ -655,7 +741,7 @@ extension GroupManagementProtocol { for removedGroupMember in removedGroupMembers { let coreMessage = CoreProtocolMessage(channelType: .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: Set([removedGroupMember]), fromOwnedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUid) let concreteProtocolMessage = KickFromGroupMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformation) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -663,7 +749,7 @@ extension GroupManagementProtocol { } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not notify member that she has been kicked out from group owned", log: log, type: .error) // Continue @@ -796,7 +882,7 @@ extension GroupManagementProtocol { let protocolInstanceUidForGroupManagement = groupInformation.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: Set([groupInformation.groupOwnerIdentity]), fromOwnedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUidForGroupManagement) let concreteProtocolMessage = GroupManagementProtocol.NotifyGroupLeftMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformation) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -805,13 +891,26 @@ extension GroupManagementProtocol { } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not notify the group owner that we wish to leave the group", log: log, type: .error) return CancelledState() } } + + // Propagate to our other owned devices + + let numberOfOtherDevicesOfOwnedIdentity = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext).count + + if numberOfOtherDevicesOfOwnedIdentity > 0 { + let coreMessage = getCoreMessage(for: .AllConfirmedObliviousChannelsWithOtherDevicesOfOwnedIdentity(ownedIdentity: ownedIdentity)) + let concreteProtocolMessage = PropagateLeaveGroupMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformation) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } // Delete the group within the identity manager @@ -900,13 +999,13 @@ extension GroupManagementProtocol { let childProtocolInstanceUid = groupInformationWithPhoto.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .Local(ownedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: childProtocolInstanceUid) let childProtocolInitialMessage = GroupManagementProtocol.GroupMembersChangedTriggerMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformationWithPhoto.groupInformation) guard let messageToSend = childProtocolInitialMessage.generateObvChannelProtocolMessageToSend(with: localPrng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: localPrng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: localPrng, within: obvContext) } @@ -965,7 +1064,7 @@ extension GroupManagementProtocol { let protocolInstanceUidForGroupManagement = groupInformation.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: Set([groupInformation.groupOwnerIdentity]), fromOwnedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUidForGroupManagement) let concreteProtocolMessage = GroupManagementProtocol.QueryGroupMembersMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformation) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -974,7 +1073,7 @@ extension GroupManagementProtocol { } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not ask the group owner about the latest version of the group members", log: log, type: .error) return CancelledState() @@ -1044,7 +1143,7 @@ extension GroupManagementProtocol { os_log("The remote identity asks for informations about a group that does not exists (it was deleted?). We kick this contact out.", log: log, type: .info) let coreMessage = CoreProtocolMessage(channelType: .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: Set([remoteIdentity]), fromOwnedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUid) let concreteProtocolMessage = KickFromGroupMessage(coreProtocolMessage: coreMessage, groupInformation: receivedGroupInformation) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -1052,7 +1151,7 @@ extension GroupManagementProtocol { } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not notify a remote identity that she was kicked from a group owned (that we cannot find, maybe because it was deleted in the past).", log: log, type: .error) // Continue @@ -1098,7 +1197,7 @@ extension GroupManagementProtocol { os_log("The remote identity is not part of the group members nor of the pending members. We kick this contact out.", log: log, type: .info) let coreMessage = CoreProtocolMessage(channelType: .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: Set([remoteIdentity]), fromOwnedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUid) let concreteProtocolMessage = KickFromGroupMessage(coreProtocolMessage: coreMessage, groupInformation: receivedGroupInformation) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -1106,7 +1205,7 @@ extension GroupManagementProtocol { } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not notify a remote identity that she was kicked from a group owned she doesn't belong to anyway", log: log, type: .error) // Continue @@ -1130,7 +1229,7 @@ extension GroupManagementProtocol { let protocolInstanceUidForGroupManagement = receivedGroupInformation.associatedProtocolUid let coreMessage = CoreProtocolMessage(channelType: .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: Set([remoteIdentity]), fromOwnedIdentity: ownedIdentity), - cryptoProtocolId: .GroupManagement, + cryptoProtocolId: .groupManagement, protocolInstanceUid: protocolInstanceUidForGroupManagement) let concreteProtocolMessage = NewMembersMessage(coreProtocolMessage: coreMessage, groupInformation: latestGroupInformationWithPhoto.groupInformation, groupMembers: groupMembersWithCoreDetails, pendingMembers: groupStructure.pendingGroupMembers, groupMembersVersion: groupStructure.groupMembersVersion) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { @@ -1139,7 +1238,7 @@ extension GroupManagementProtocol { } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not send the latest version of the group members to a group member", log: log, type: .error) return CancelledState() @@ -1243,7 +1342,7 @@ extension GroupManagementProtocol { // In addtion to the previous message, we send an invite. If the member is aware that she is part of the group, this invite will be silently discarded. If she is not, the previous message will certain be useless, since we need to invite her first. This is what we do here. let childProtocolInstanceUid = UID.gen(with: prng) - let coreMessage = getCoreMessageForOtherLocalProtocol(otherCryptoProtocolId: .GroupInvitation, + let coreMessage = getCoreMessageForOtherLocalProtocol(otherCryptoProtocolId: .groupInvitation, otherProtocolInstanceUid: childProtocolInstanceUid) // Note that the InitialMessage below expects that the membersAndPendingGroupMembers does *not* contain the owned identity, i.e., does *not* contain the group owner let childProtocolInitialMessage = GroupInvitationProtocol.InitialMessage(coreProtocolMessage: coreMessage, @@ -1255,7 +1354,7 @@ extension GroupManagementProtocol { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not post a (local) initial message for the GroupInvitationProtocol", log: log, type: .fault) return CancelledState() @@ -1379,7 +1478,7 @@ extension GroupManagementProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not post NewMembersMessage", log: log, type: .fault) return CancelledState() @@ -1390,6 +1489,362 @@ extension GroupManagementProtocol { } } + + // MARK: - DisbandGroupStep + + final class DisbandGroupStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: DisbandGroupMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: DisbandGroupMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: GroupManagementProtocol.logCategory) + + eraseReceivedMessagesAfterReachingAFinalState = false + + let groupInformation = receivedMessage.groupInformation + + // Check that the group owner corresponds the owned identity of this protocol instance + + guard groupInformation.groupOwnerIdentity == ownedIdentity else { + os_log("The group owner does not correspond to the owned identity", log: log, type: .error) + return CancelledState() + } + + // Check that the protocol uid of this protocol corresponds to the group information + + guard protocolInstanceUid == groupInformation.associatedProtocolUid else { + os_log("The protocol instance uid does not correspond to the one associated with the group", log: log, type: .error) + return CancelledState() + } + + // Get the group structure from database + + let groupStructure: GroupStructure + do { + guard let _groupStructure = try identityDelegate.getGroupOwnedStructure(ownedIdentity: ownedIdentity, groupUid: groupInformation.groupUid, within: obvContext) else { + os_log("The group does not exist. This is unexpected since this step should never have been started in that case.", log: log, type: .error) + return CancelledState() + } + groupStructure = _groupStructure + } catch { + os_log("Could not access the group in database", log: log, type: .error) + return CancelledState() + } + + // Send a KickFromGroupMessage to all members and pending members of the group + + do { + let coreMessage = CoreProtocolMessage(channelType: .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: groupStructure.groupMembers, fromOwnedIdentity: ownedIdentity), + cryptoProtocolId: .groupManagement, + protocolInstanceUid: protocolInstanceUid) + let concreteProtocolMessage = KickFromGroupMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformation) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + return CancelledState() + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + + do { + let coreMessage = CoreProtocolMessage(channelType: .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: groupStructure.pendingGroupMembersIdentities, fromOwnedIdentity: ownedIdentity), + cryptoProtocolId: .groupManagement, + protocolInstanceUid: protocolInstanceUid) + let concreteProtocolMessage = KickFromGroupMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformation) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + return CancelledState() + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + + // Propagate the disband to our other owned devices + + let numberOfOtherDevicesOfOwnedIdentity = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext).count + + if numberOfOtherDevicesOfOwnedIdentity > 0 { + let coreMessage = getCoreMessage(for: .AllConfirmedObliviousChannelsWithOtherDevicesOfOwnedIdentity(ownedIdentity: ownedIdentity)) + let concreteProtocolMessage = PropagateDisbandGroupMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformation) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + + // Delete the group + + try identityDelegate.deleteContactGroupOwned(ownedIdentity: ownedIdentity, groupUid: groupInformation.groupUid, deleteEvenIfGroupMembersStillExist: true, within: obvContext) + + // Return the final state + + return FinalState() + + } + } + + + // MARK: - ProcessPropagateDisbandGroupMessageStep + + final class ProcessPropagateDisbandGroupMessageStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: PropagateDisbandGroupMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: PropagateDisbandGroupMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AnyObliviousChannelWithOwnedDevice(ownedIdentity: concreteCryptoProtocol.ownedIdentity), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: GroupManagementProtocol.logCategory) + + eraseReceivedMessagesAfterReachingAFinalState = false + + let groupInformation = receivedMessage.groupInformation + + // Check that the group owner corresponds the owned identity of this protocol instance + + guard groupInformation.groupOwnerIdentity == ownedIdentity else { + os_log("The group owner does not correspond to the owned identity", log: log, type: .error) + return CancelledState() + } + + // Check that the protocol uid of this protocol corresponds to the group information + + guard protocolInstanceUid == groupInformation.associatedProtocolUid else { + os_log("The protocol instance uid does not correspond to the one associated with the group", log: log, type: .error) + return CancelledState() + } + + // Delete the group + + try identityDelegate.deleteContactGroupOwned(ownedIdentity: ownedIdentity, groupUid: groupInformation.groupUid, deleteEvenIfGroupMembersStillExist: true, within: obvContext) + + // Return the final state + + return FinalState() + + } + } + + + // MARK: - ProcessPropagateLeaveGroupMessageStep + + final class ProcessPropagateLeaveGroupMessageStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: PropagateLeaveGroupMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: PropagateLeaveGroupMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AnyObliviousChannelWithOwnedDevice(ownedIdentity: concreteCryptoProtocol.ownedIdentity), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: GroupManagementProtocol.logCategory) + + eraseReceivedMessagesAfterReachingAFinalState = false + + let groupInformation = receivedMessage.groupInformation + + // Check that the protocol uid of this protocol corresponds to the group information + + guard protocolInstanceUid == groupInformation.associatedProtocolUid else { + os_log("The protocol instance uid does not correspond to the one associated with the group", log: log, type: .error) + assertionFailure() + return CancelledState() + } + + // Check that we are not the group owner + + guard groupInformation.groupOwnerIdentity != ownedIdentity else { + os_log("Trying to leave a group for which we are the group owned", log: log, type: .error) + return CancelledState() + } + + // Delete the group + + try identityDelegate.deleteContactGroupJoined(ownedIdentity: ownedIdentity, groupUid: groupInformation.groupUid, groupOwner: groupInformation.groupOwnerIdentity, within: obvContext) + + // Return the final state + + return FinalState() + + } + } + + + // MARK: - ProcessPropagateReinvitePendingMemberStep + + // Note: This step has been implemented on 2023-10-08 to maintain compatibility with the Android version of Olvid. + // The step sending the PropagateReinvitePendingMemberMessage has not been implemented yet under iOS. + + final class ProcessPropagateReinvitePendingMemberStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: PropagateReinvitePendingMemberMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: PropagateReinvitePendingMemberMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AnyObliviousChannelWithOwnedDevice(ownedIdentity: concreteCryptoProtocol.ownedIdentity), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: GroupManagementProtocol.logCategory) + + eraseReceivedMessagesAfterReachingAFinalState = false + + let groupInformation = receivedMessage.groupInformation + let pendingMemberIdentity = receivedMessage.pendingMemberIdentity + + // Check that the group owner corresponds the owned identity of this protocol instance + + guard groupInformation.groupOwnerIdentity == ownedIdentity else { + os_log("The group owner does not correspond to the owned identity", log: log, type: .error) + return CancelledState() + } + + // Check that the protocol uid of this protocol corresponds to the group information + + guard protocolInstanceUid == groupInformation.associatedProtocolUid else { + os_log("The protocol instance uid does not correspond to the one associated with the group", log: log, type: .error) + return CancelledState() + } + + // Mark the pending member as "not declined" + + try identityDelegate.unmarkDeclinedPendingMemberAsDeclined(ownedIdentity: ownedIdentity, groupUid: groupInformation.groupUid, pendingMember: pendingMemberIdentity, within: obvContext) + + return FinalState() + + } + } + + + // MARK: - ProcessPropagateGroupCreationMessageStep + + final class ProcessPropagateGroupCreationMessageStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: PropagateGroupCreationMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: PropagateGroupCreationMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AnyObliviousChannelWithOwnedDevice(ownedIdentity: concreteCryptoProtocol.ownedIdentity), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: GroupManagementProtocol.logCategory) + + eraseReceivedMessagesAfterReachingAFinalState = false + + let groupInformation = receivedMessage.groupInformation + let pendingGroupMembers = receivedMessage.pendingGroupMembers + + // Check that the pending group members does not contain the owned identity + + guard !pendingGroupMembers.map({ $0.cryptoIdentity }).contains(ownedIdentity) else { + os_log("The group members contain the owned identity", log: log, type: .error) + assertionFailure() + return CancelledState() + } + + // Check that the group owner corresponds the owned identity of this protocol instance + + guard groupInformation.groupOwnerIdentity == ownedIdentity else { + os_log("The group owner does not correspond to the owned identity", log: log, type: .error) + return CancelledState() + } + + // Check that the protocol uid of this protocol corresponds to the group information + + guard protocolInstanceUid == groupInformation.associatedProtocolUid else { + os_log("The protocol instance uid does not correspond to the one associated with the group", log: log, type: .error) + return CancelledState() + } + + // Create the ContactGroup in database + + do { + // The createContactGroupOwned(...) returns an updated version of the GroupInformationWithPhoto instance + let groupInformationWithPhoto = GroupInformationWithPhoto(groupInformation: groupInformation, photoURL: nil) + _ = try identityDelegate.createContactGroupOwned(ownedIdentity: ownedIdentity, + groupInformationWithPhoto: groupInformationWithPhoto, + pendingGroupMembers: pendingGroupMembers, + within: obvContext) + } catch { + os_log("Could not create contact group", log: log, type: .error) + return CancelledState() + } + + // If there is a group photo, download it now + + if groupInformation.groupDetailsElements.photoServerKeyAndLabel != nil { + do { + let childProtocolInstanceUid = UID.gen(with: prng) + let coreMessage = getCoreMessageForOtherLocalProtocol( + otherCryptoProtocolId: .downloadGroupPhoto, + otherProtocolInstanceUid: childProtocolInstanceUid) + let childProtocolInitialMessage = DownloadGroupPhotoChildProtocol.InitialMessage( + coreProtocolMessage: coreMessage, + groupInformation: groupInformation) + guard let messageToSend = childProtocolInitialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + assertionFailure() + throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } catch { + os_log("Error: %{public}@", log: log, type: .error, error.localizedDescription) + assertionFailure() + // An error occured with the photo, this should not prevent group creation, so we do nothing + } + } + + // Return the final state + + return FinalState() + + } + } + } extension ProtocolStep { @@ -1468,10 +1923,10 @@ extension ProtocolStep { let updatedGroupInformation = try groupInformation.withPhotoServerKeyAndLabel(photoServerKeyAndLabel) let coreMessage = getCoreMessage(for: .ServerQuery(ownedIdentity: step.ownedIdentity)) - let concreteMessage = GroupManagementProtocol.UploadGroupPhotoMessage.init(coreProtocolMessage: coreMessage, groupInformation: updatedGroupInformation) + let concreteMessage = GroupManagementProtocol.UploadGroupPhotoMessage(coreProtocolMessage: coreMessage, groupInformation: updatedGroupInformation) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.putUserData(label: photoServerKeyAndLabel.label, dataURL: photoURL, dataKey: photoServerKeyAndLabel.key) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: step.prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: step.prng, within: obvContext) } catch { os_log("Error: %{public}@", log: log, type: .error, error.localizedDescription) @@ -1490,13 +1945,26 @@ extension ProtocolStep { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: step.prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: step.prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: step.prng, within: obvContext) } catch { os_log("Could not post NewMembersMessage", log: log, type: .fault) return GroupManagementProtocol.CancelledState() } } + // Also notify our other owned devices + + let numberOfOtherDevicesOfOwnedIdentity = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext).count + + if numberOfOtherDevicesOfOwnedIdentity > 0 { + let coreMessage = getCoreMessage(for: .AllConfirmedObliviousChannelsWithOtherDevicesOfOwnedIdentity(ownedIdentity: ownedIdentity)) + let concreteProtocolMessage = GroupManagementProtocol.NewMembersMessage(coreProtocolMessage: coreMessage, groupInformation: groupInformation, groupMembers: groupMembersWithCoreDetails, pendingMembers: groupStructure.pendingGroupMembers, groupMembersVersion: groupStructure.groupMembersVersion) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + } // Return the new state diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/DownloadGroupV2PhotoProtocol/DownloadGroupV2PhotoProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/DownloadGroupV2PhotoProtocol/DownloadGroupV2PhotoProtocol.swift index 64d580b8..f6576d05 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/DownloadGroupV2PhotoProtocol/DownloadGroupV2PhotoProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/DownloadGroupV2PhotoProtocol/DownloadGroupV2PhotoProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,7 +26,7 @@ public struct DownloadGroupV2PhotoProtocol: ConcreteCryptoProtocol { static let logCategory = "DownloadGroupV2PhotoProtocol" - static let id = CryptoProtocolId.DownloadGroupV2Photo + static let id = CryptoProtocolId.downloadGroupV2Photo static let finalStateIds: [ConcreteProtocolStateId] = [StateId.PhotoDownloaded, StateId.Cancelled] diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/DownloadGroupV2PhotoProtocol/DownloadGroupV2PhotoProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/DownloadGroupV2PhotoProtocol/DownloadGroupV2PhotoProtocolSteps.swift index 8d32d586..34adfa74 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/DownloadGroupV2PhotoProtocol/DownloadGroupV2PhotoProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/DownloadGroupV2PhotoProtocol/DownloadGroupV2PhotoProtocolSteps.swift @@ -84,7 +84,7 @@ extension DownloadGroupV2PhotoProtocol { } guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) return DownloadingPhotoState(groupIdentifier: groupIdentifier, serverPhotoInfo: serverPhotoInfo) diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2Protocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2Protocol.swift index 0a05a599..b2e5f214 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2Protocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2Protocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -28,7 +28,7 @@ public struct GroupV2Protocol: ConcreteCryptoProtocol { static let logCategory = "GroupV2Protocol" - static let id = CryptoProtocolId.GroupV2 + static let id = CryptoProtocolId.groupV2 static let finalStateIds: [ConcreteProtocolStateId] = [StateId.final] diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2ProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2ProtocolMessages.swift index 8b9df3db..d65f659d 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2ProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2ProtocolMessages.swift @@ -62,6 +62,7 @@ extension GroupV2Protocol { case dialogInformative = 50 case dialogFreezeGroupV2Invitation = 200 case initiateUpdateKeycloakGroups = 300 + case autoAcceptInvitation = 400 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { @@ -98,6 +99,7 @@ extension GroupV2Protocol { case .initiateTargetedPing : return InitiateTargetedPingMessage.self case .dialogFreezeGroupV2Invitation : return DialogFreezeGroupV2InvitationMessage.self case .initiateUpdateKeycloakGroups : return InitiateUpdateKeycloakGroupsMessage.self + case .autoAcceptInvitation : return AutoAcceptInvitationMessage.self } } } @@ -492,7 +494,7 @@ extension GroupV2Protocol { init(forSimulatingReceivedMessageForOwnedIdentity ownedIdentity: ObvCryptoIdentity, protocolInstanceUid: UID) { self.coreProtocolMessage = CoreProtocolMessage.getServerQueryCoreProtocolMessageForSimulatingReceivedMessage( ownedIdentity: ownedIdentity, - cryptoProtocolId: .GroupV2, + cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) self.groupDeletionWasSuccessful = true } @@ -1032,26 +1034,26 @@ extension GroupV2Protocol { // Properties specific to this concrete protocol message - let contactIdentity: ObvCryptoIdentity - let contactDeviceUID: UID + let remoteIdentity: ObvCryptoIdentity + let remoteDeviceUID: UID // Init when sending this message - init(coreProtocolMessage: CoreProtocolMessage, contactIdentity: ObvCryptoIdentity, contactDeviceUID: UID) { + init(coreProtocolMessage: CoreProtocolMessage, remoteIdentity: ObvCryptoIdentity, remoteDeviceUID: UID) { self.coreProtocolMessage = coreProtocolMessage - self.contactIdentity = contactIdentity - self.contactDeviceUID = contactDeviceUID + self.remoteIdentity = remoteIdentity + self.remoteDeviceUID = remoteDeviceUID } var encodedInputs: [ObvEncoded] { - [contactIdentity.obvEncode(), contactDeviceUID.obvEncode()] + [remoteIdentity.obvEncode(), remoteDeviceUID.obvEncode()] } // Init when receiving this message init(with message: ReceivedMessage) throws { self.coreProtocolMessage = CoreProtocolMessage(with: message) - (contactIdentity, contactDeviceUID) = try message.encodedInputs.obvDecode() + (remoteIdentity, remoteDeviceUID) = try message.encodedInputs.obvDecode() } } @@ -1300,4 +1302,29 @@ extension GroupV2Protocol { } } + + + // MARK: - AutoAcceptInvitationFromOwnedIdentityMessage + + struct AutoAcceptInvitationMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.autoAcceptInvitation + let coreProtocolMessage: CoreProtocolMessage + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + } + + } + } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2ProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2ProtocolStates.swift index c698c6c8..6a6876c4 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2ProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2ProtocolStates.swift @@ -104,18 +104,20 @@ extension GroupV2Protocol { let invitationCollectedData: GroupV2.InvitationCollectedData let expectedInternalServerQueryIdentifier: Int let lastKnownOwnInvitationNonceAndOtherMembers: (nonce: Data, otherGroupMembers: Set)? + let ownInvitationNonceOfInvitationsAcceptedOnOtherDevices: [Data] - init(groupIdentifier: GroupV2.Identifier, dialogUuid: UUID, invitationCollectedData: GroupV2.InvitationCollectedData, expectedInternalServerQueryIdentifier: Int, lastKnownOwnInvitationNonceAndOtherMembers: (nonce: Data, otherGroupMembers: Set)?) { + init(groupIdentifier: GroupV2.Identifier, dialogUuid: UUID, invitationCollectedData: GroupV2.InvitationCollectedData, expectedInternalServerQueryIdentifier: Int, ownInvitationNonceOfInvitationsAcceptedOnOtherDevices: [Data], lastKnownOwnInvitationNonceAndOtherMembers: (nonce: Data, otherGroupMembers: Set)?) { self.groupIdentifier = groupIdentifier self.dialogUuid = dialogUuid self.invitationCollectedData = invitationCollectedData + self.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = ownInvitationNonceOfInvitationsAcceptedOnOtherDevices self.lastKnownOwnInvitationNonceAndOtherMembers = lastKnownOwnInvitationNonceAndOtherMembers self.expectedInternalServerQueryIdentifier = expectedInternalServerQueryIdentifier } func obvEncode() throws -> ObvEncoded { let encodedCollectedData = try invitationCollectedData.obvEncode() - var encodedValues = [groupIdentifier.obvEncode(), dialogUuid.obvEncode(), encodedCollectedData, expectedInternalServerQueryIdentifier.obvEncode()] + var encodedValues = [groupIdentifier.obvEncode(), dialogUuid.obvEncode(), encodedCollectedData, expectedInternalServerQueryIdentifier.obvEncode(), ownInvitationNonceOfInvitationsAcceptedOnOtherDevices.map{ $0.obvEncode() }.obvEncode()] if let lastKnownOwnInvitationNonceAndOtherMembers = lastKnownOwnInvitationNonceAndOtherMembers { encodedValues.append(lastKnownOwnInvitationNonceAndOtherMembers.nonce.obvEncode()) encodedValues.append(Array(lastKnownOwnInvitationNonceAndOtherMembers.otherGroupMembers).map({ $0.obvEncode() }).obvEncode()) @@ -125,21 +127,59 @@ extension GroupV2Protocol { init(_ obvEncoded: ObvEncoded) throws { guard let encodedValues = [ObvEncoded](obvEncoded) else { assertionFailure(); throw Self.makeError(message: "Could not decode DownloadingGroupDataState") } - guard [4, 6].contains(encodedValues.count) else { assertionFailure(); throw Self.makeError(message: "Unexpected number of elements in encoded DownloadingGroupDataState") } + guard [4, 5, 6, 7].contains(encodedValues.count) else { assertionFailure(); throw Self.makeError(message: "Unexpected number of elements in encoded DownloadingGroupDataState") } self.groupIdentifier = try encodedValues[0].obvDecode() self.dialogUuid = try encodedValues[1].obvDecode() self.invitationCollectedData = try encodedValues[2].obvDecode() self.expectedInternalServerQueryIdentifier = try encodedValues[3].obvDecode() - if encodedValues.count == 6 { + switch encodedValues.count { + case 4: + // Legacy case, when we had no ownInvitationNonceOfInvitationsAcceptedOnOtherDevices + self.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = [] + self.lastKnownOwnInvitationNonceAndOtherMembers = nil + case 5: + guard let arrayOfEncoded = [ObvEncoded](encodedValues[4]) else { + assertionFailure() + throw Self.makeError(message: "Could not decode expectedInternalServerQueryIdentifier") + } + self.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = try arrayOfEncoded.map({ try $0.obvDecode() }) + self.lastKnownOwnInvitationNonceAndOtherMembers = nil + case 6: + // Legacy case, when we had no ownInvitationNonceOfInvitationsAcceptedOnOtherDevices let nonce: Data = try encodedValues[4].obvDecode() guard let encodedGroupMemberIdentities = [ObvEncoded](encodedValues[5]) else { assertionFailure(); throw Self.makeError(message: "Could not decode group member identities in DownloadingGroupDataState") } let groupMemberIdentities = Set(encodedGroupMemberIdentities.compactMap({ ObvCryptoIdentity($0) })) + self.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = [] self.lastKnownOwnInvitationNonceAndOtherMembers = (nonce, groupMemberIdentities) - } else { - self.lastKnownOwnInvitationNonceAndOtherMembers = nil + case 7: + guard let arrayOfEncoded = [ObvEncoded](encodedValues[4]) else { + assertionFailure() + throw Self.makeError(message: "Could not decode expectedInternalServerQueryIdentifier") + } + self.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = try arrayOfEncoded.map({ try $0.obvDecode() }) + let nonce: Data = try encodedValues[5].obvDecode() + guard let encodedGroupMemberIdentities = [ObvEncoded](encodedValues[6]) else { assertionFailure(); throw Self.makeError(message: "Could not decode group member identities in DownloadingGroupDataState") } + let groupMemberIdentities = Set(encodedGroupMemberIdentities.compactMap({ ObvCryptoIdentity($0) })) + self.lastKnownOwnInvitationNonceAndOtherMembers = (nonce, groupMemberIdentities) + default: + assertionFailure() + throw Self.makeError(message: "Could not decode DownloadingGroupDataState") } } - + + + func addingOwnInvitationNonceOfInvitationsAcceptedOnOtherDevice(nonce: Data) -> Self { + var nonces = self.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices + nonces.append(nonce) + return .init(groupIdentifier: groupIdentifier, + dialogUuid: dialogUuid, + invitationCollectedData: invitationCollectedData, + expectedInternalServerQueryIdentifier: expectedInternalServerQueryIdentifier, + ownInvitationNonceOfInvitationsAcceptedOnOtherDevices: nonces, + lastKnownOwnInvitationNonceAndOtherMembers: lastKnownOwnInvitationNonceAndOtherMembers) + } + + } @@ -152,18 +192,20 @@ extension GroupV2Protocol { let groupIdentifier: GroupV2.Identifier let dialogUuid: UUID let invitationCollectedData: GroupV2.InvitationCollectedData + let ownInvitationNonceOfInvitationsAcceptedOnOtherDevices: [Data] let lastKnownOwnInvitationNonceAndOtherMembers: (nonce: Data, otherGroupMembers: Set)? - init(groupIdentifier: GroupV2.Identifier, dialogUuid: UUID, invitationCollectedData: GroupV2.InvitationCollectedData, lastKnownOwnInvitationNonceAndOtherMembers: (nonce: Data, otherGroupMembers: Set)?) { + init(groupIdentifier: GroupV2.Identifier, dialogUuid: UUID, invitationCollectedData: GroupV2.InvitationCollectedData, ownInvitationNonceOfInvitationsAcceptedOnOtherDevices: [Data], lastKnownOwnInvitationNonceAndOtherMembers: (nonce: Data, otherGroupMembers: Set)?) { self.groupIdentifier = groupIdentifier self.dialogUuid = dialogUuid self.invitationCollectedData = invitationCollectedData + self.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = ownInvitationNonceOfInvitationsAcceptedOnOtherDevices self.lastKnownOwnInvitationNonceAndOtherMembers = lastKnownOwnInvitationNonceAndOtherMembers } func obvEncode() throws -> ObvEncoded { let encodedCollectedData = try invitationCollectedData.obvEncode() - var encodedValues = [groupIdentifier.obvEncode(), dialogUuid.obvEncode(), encodedCollectedData] + var encodedValues = [groupIdentifier.obvEncode(), dialogUuid.obvEncode(), encodedCollectedData, ownInvitationNonceOfInvitationsAcceptedOnOtherDevices.map({ $0.obvEncode() }).obvEncode()] if let lastKnownOwnInvitationNonceAndOtherMembers = lastKnownOwnInvitationNonceAndOtherMembers { encodedValues.append(lastKnownOwnInvitationNonceAndOtherMembers.nonce.obvEncode()) encodedValues.append(Array(lastKnownOwnInvitationNonceAndOtherMembers.otherGroupMembers).map({ $0.obvEncode() }).obvEncode()) @@ -173,20 +215,56 @@ extension GroupV2Protocol { init(_ obvEncoded: ObvEncoded) throws { guard let encodedValues = [ObvEncoded](obvEncoded) else { assertionFailure(); throw Self.makeError(message: "Could not decode INeedMoreSeedsState") } - guard [3, 5].contains(encodedValues.count) else { assertionFailure(); throw Self.makeError(message: "Unexpected number of elements in encoded INeedMoreSeedsState") } + guard [3, 4, 5, 6].contains(encodedValues.count) else { assertionFailure(); throw Self.makeError(message: "Unexpected number of elements in encoded INeedMoreSeedsState") } self.groupIdentifier = try encodedValues[0].obvDecode() self.dialogUuid = try encodedValues[1].obvDecode() self.invitationCollectedData = try encodedValues[2].obvDecode() - if encodedValues.count == 5 { - let nonce: Data = try encodedValues[3].obvDecode() - guard let encodedOtherGroupMembers = [ObvEncoded](encodedValues[4]) else { assertionFailure(); throw Self.makeError(message: "Could not decode group member identities in INeedMoreSeedsState") } - let otherGroupMembers = Set(encodedOtherGroupMembers.compactMap({ ObvCryptoIdentity($0) })) - self.lastKnownOwnInvitationNonceAndOtherMembers = (nonce, otherGroupMembers) - } else { + switch encodedValues.count { + case 3: + // Legacy case, when we had no ownInvitationNonceOfInvitationsAcceptedOnOtherDevices + self.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = [] self.lastKnownOwnInvitationNonceAndOtherMembers = nil + case 4: + guard let arrayOfEncoded = [ObvEncoded](encodedValues[3]) else { + assertionFailure() + throw Self.makeError(message: "Could not decode expectedInternalServerQueryIdentifier") + } + self.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = try arrayOfEncoded.map({ try $0.obvDecode() }) + self.lastKnownOwnInvitationNonceAndOtherMembers = nil + case 5: + // Legacy case, when we had no ownInvitationNonceOfInvitationsAcceptedOnOtherDevices + let nonce: Data = try encodedValues[3].obvDecode() + guard let encodedGroupMemberIdentities = [ObvEncoded](encodedValues[4]) else { assertionFailure(); throw Self.makeError(message: "Could not decode group member identities in DownloadingGroupDataState") } + let groupMemberIdentities = Set(encodedGroupMemberIdentities.compactMap({ ObvCryptoIdentity($0) })) + self.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = [] + self.lastKnownOwnInvitationNonceAndOtherMembers = (nonce, groupMemberIdentities) + case 6: + guard let arrayOfEncoded = [ObvEncoded](encodedValues[3]) else { + assertionFailure() + throw Self.makeError(message: "Could not decode expectedInternalServerQueryIdentifier") + } + self.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = try arrayOfEncoded.map({ try $0.obvDecode() }) + let nonce: Data = try encodedValues[4].obvDecode() + guard let encodedGroupMemberIdentities = [ObvEncoded](encodedValues[5]) else { assertionFailure(); throw Self.makeError(message: "Could not decode group member identities in DownloadingGroupDataState") } + let groupMemberIdentities = Set(encodedGroupMemberIdentities.compactMap({ ObvCryptoIdentity($0) })) + self.lastKnownOwnInvitationNonceAndOtherMembers = (nonce, groupMemberIdentities) + default: + assertionFailure() + throw Self.makeError(message: "Could not decode DownloadingGroupDataState") } } + + func addingOwnInvitationNonceOfInvitationsAcceptedOnOtherDevice(nonce: Data) -> Self { + var nonces = self.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices + nonces.append(nonce) + return .init(groupIdentifier: groupIdentifier, + dialogUuid: dialogUuid, + invitationCollectedData: invitationCollectedData, + ownInvitationNonceOfInvitationsAcceptedOnOtherDevices: nonces, + lastKnownOwnInvitationNonceAndOtherMembers: lastKnownOwnInvitationNonceAndOtherMembers) + } + } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2ProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2ProtocolSteps.swift index a5d81942..2e161705 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2ProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/GroupProtocols/GroupV2Protocols/GroupV2Protocol/GroupV2ProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,6 +25,7 @@ import ObvCrypto import OlvidUtils import ObvEncoder + // MARK: - Protocol Steps extension GroupV2Protocol { @@ -53,6 +54,7 @@ extension GroupV2Protocol { case finalizeGroupDisband = 19 case prepareBatchKeysMessage = 20 case processBatchKeysMessage = 21 + case sendKeycloakGroupTargetedPing = 22 case processInitiateUpdateKeycloakGroupsMessage = 300 @@ -126,14 +128,20 @@ extension GroupV2Protocol { return step } else if let step = ProcessPropagateInvitationDialogResponseMessageFromInvitationReceivedStateStep(from: concreteProtocol, and: receivedMessage) { return step + } else if let step = ProcessAutoAcceptInvitationFromOwnedIdentityMessageFromInvitationReceivedStateStep(from: concreteProtocol, and: receivedMessage) { + return step } else if let step = ProcessDialogAcceptGroupV2InvitationMessageFromDownloadingGroupBlobStateStep(from: concreteProtocol, and: receivedMessage) { return step } else if let step = ProcessPropagateInvitationDialogResponseMessageFromDownloadingGroupBlobStateStep(from: concreteProtocol, and: receivedMessage) { return step + } else if let step = ProcessAutoAcceptInvitationFromOwnedIdentityMessageFromDownloadingGroupBlobStateStep(from: concreteProtocol, and: receivedMessage) { + return step } else if let step = ProcessDialogAcceptGroupV2InvitationMessageFromINeedMoreSeedsStateStep(from: concreteProtocol, and: receivedMessage) { return step } else if let step = ProcessPropagateInvitationDialogResponseMessageFromINeedMoreSeedsStateStep(from: concreteProtocol, and: receivedMessage) { return step + } else if let step = ProcessAutoAcceptInvitationFromOwnedIdentityMessageFromINeedMoreSeedsStateStep(from: concreteProtocol, and: receivedMessage) { + return step } else { return nil } @@ -250,6 +258,10 @@ extension GroupV2Protocol { let step = ProcessBatchKeysMessageStep(from: concreteProtocol, and: receivedMessage) return step + case .sendKeycloakGroupTargetedPing: + let step = SendKeycloakGroupTargetedPingStep(from: concreteProtocol, and: receivedMessage) + return step + case .processInitiateUpdateKeycloakGroupsMessage: let step = ProcessInitiateUpdateKeycloakGroupsMessageStep(from: concreteProtocol, and: receivedMessage) return step @@ -311,7 +323,7 @@ extension GroupV2Protocol { let concreteMessage = UploadGroupPhotoMessage(coreProtocolMessage: coreMessage) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.putUserData(label: serverPhotoInfo.photoServerKeyAndLabel.label, dataURL: photoURLManagedByTheIdentityManager, dataKey: serverPhotoInfo.photoServerKeyAndLabel.key) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) uploadingPhoto = true } @@ -323,7 +335,7 @@ extension GroupV2Protocol { let concreteMessage = UploadGroupBlobMessage(coreProtocolMessage: coreMessage) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.createGroupBlob(groupIdentifier: groupIdentifier, serverAuthenticationPublicKey: groupAdminServerAuthenticationPublicKey, encryptedBlob: encryptedServerBlob) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -401,7 +413,7 @@ extension GroupV2Protocol { let coreMessage = getCoreMessage(for: .Local(ownedIdentity: ownedIdentity)) let concreteMessage = FinalizeGroupCreationMessage(coreProtocolMessage: coreMessage) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Could not generate FinalizeGroupCreationMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -531,18 +543,60 @@ extension GroupV2Protocol { do { try deviceUidsOfRemoteIdentity.forEach { (pendingMember, deviceUids) in - let coreMessage = CoreProtocolMessage(channelType: .ObliviousChannel(to: pendingMember, remoteDeviceUids: Array(deviceUids), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true), - cryptoProtocolId: .GroupV2, - protocolInstanceUid: invitationProtocolInstanceUid) - let concreteMessage = InvitationOrMembersUpdateMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, groupVersion: groupVersion, blobKeys: blobKeys, notifiedDeviceUIDs: deviceUids) - guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + let channelType: ObvChannelSendChannelType = .ObliviousChannel( + to: pendingMember, + remoteDeviceUids: Array(deviceUids), + fromOwnedIdentity: ownedIdentity, + necessarilyConfirmed: true) + let coreMessage = CoreProtocolMessage( + channelType: channelType, + cryptoProtocolId: .groupV2, + protocolInstanceUid: invitationProtocolInstanceUid) + let concreteMessage = InvitationOrMembersUpdateMessage( + coreProtocolMessage: coreMessage, + groupIdentifier: groupIdentifier, + groupVersion: groupVersion, + blobKeys: blobKeys, + notifiedDeviceUIDs: deviceUids) + guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + assertionFailure(); throw Self.makeError(message: "Implementation error") + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } catch { try deleteGroupBlobFromServer(groupIdentifier: groupIdentifier, groupAdminServerAuthenticationPrivateKey: groupAdminServerAuthenticationPrivateKey) try identityDelegate.deleteGroupV2(withGroupIdentifier: groupIdentifier, of: ownedIdentity, within: obvContext) return FinalState() } + + // Propagate the Notify our other owned devices + + do { + let otherDeviceUIDs = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) + let currentDeviceUID = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) + let allOwnedDeviceUids = Set(otherDeviceUIDs + [currentDeviceUID]) + if !otherDeviceUIDs.isEmpty { + let channelType: ObvChannelSendChannelType = .ObliviousChannel( + to: ownedIdentity, + remoteDeviceUids: Array(otherDeviceUIDs), + fromOwnedIdentity: ownedIdentity, + necessarilyConfirmed: true) + let coreMessage = CoreProtocolMessage( + channelType: channelType, + cryptoProtocolId: .groupV2, + protocolInstanceUid: invitationProtocolInstanceUid) + let concreteMessage = InvitationOrMembersUpdateMessage( + coreProtocolMessage: coreMessage, + groupIdentifier: groupIdentifier, + groupVersion: groupVersion, + blobKeys: blobKeys, + notifiedDeviceUIDs: allOwnedDeviceUids) + guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + assertionFailure(); throw Self.makeError(message: "Implementation error") + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + } // Unfreeze the group @@ -560,7 +614,7 @@ extension GroupV2Protocol { guard let signature = ObvSolveChallengeStruct.solveChallenge(.groupDelete, with: groupAdminServerAuthenticationPrivateKey, using: prng) else { assertionFailure(); throw Self.makeError(message: "Could not compute signature for deleting group") } let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.deleteGroupBlob(groupIdentifier: groupIdentifier, signature: signature) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -662,15 +716,18 @@ extension GroupV2Protocol { let returnedStateWhenDiscardingReceivedMessage: ConcreteProtocolState let dialogUuid: UUID let lastKnownOwnInvitationNonceAndOtherMembers: (nonce: Data, otherGroupMembers: Set)? + let ownInvitationNonceOfInvitationsAcceptedOnOtherDevices: [Data] switch startState { case .initial: returnedStateWhenDiscardingReceivedMessage = FinalState() dialogUuid = UUID() lastKnownOwnInvitationNonceAndOtherMembers = nil + ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = [] case .iNeedMoreSeed(startState: let startState): returnedStateWhenDiscardingReceivedMessage = startState dialogUuid = startState.dialogUuid lastKnownOwnInvitationNonceAndOtherMembers = startState.lastKnownOwnInvitationNonceAndOtherMembers + ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = startState.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices case .invitationReceived(startState: let startState): returnedStateWhenDiscardingReceivedMessage = startState dialogUuid = startState.dialogUuid @@ -681,6 +738,7 @@ extension GroupV2Protocol { } else { lastKnownOwnInvitationNonceAndOtherMembers = nil } + ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = [] } let groupIdentifier: GroupV2.Identifier @@ -741,7 +799,7 @@ extension GroupV2Protocol { let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(notNotifiedDeviceUIDs), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true)) let concreteMessage = InvitationOrMembersUpdatePropagatedMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, groupVersion: groupVersion, blobKeys: receivedBlobKeys, inviter: inviter) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -751,11 +809,12 @@ extension GroupV2Protocol { case .initial, .iNeedMoreSeed: break case .invitationReceived(let startState): - guard startState.serverBlob.groupVersion < groupVersion else { + + guard (startState.serverBlob.groupVersion < groupVersion) || (startState.serverBlob.groupVersion == groupVersion && inviter == ownedIdentity) else { return startState } - // The information we are processing is more recent than the one we had. + // The information we are processing is more recent than the one we had (or it is sent by another owned device). // Since the blob we have in an old version of the group blob, we freeze the invitation while we update the blob do { @@ -786,7 +845,7 @@ extension GroupV2Protocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -821,7 +880,7 @@ extension GroupV2Protocol { let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.AsymmetricChannelBroadcast(to: inviter, fromOwnedIdentity: ownedIdentity)) let concreteMessage = PingMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, groupInvitationNonce: ownGroupInvitationNonce, signatureOnGroupIdentifierAndInvitationNonceAndRecipientIdentity: signature, isReponse: false) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -876,7 +935,7 @@ extension GroupV2Protocol { let concreteMessage = DownloadGroupBlobMessage(coreProtocolMessage: coreMessage, internalServerQueryIdentifier: internalServerQueryIdentifier) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.getGroupBlob(groupIdentifier: groupIdentifier) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -884,7 +943,8 @@ extension GroupV2Protocol { return DownloadingGroupBlobState(groupIdentifier: groupIdentifier, dialogUuid: dialogUuid, invitationCollectedData: invitationCollectedData, - expectedInternalServerQueryIdentifier: internalServerQueryIdentifier, + expectedInternalServerQueryIdentifier: internalServerQueryIdentifier, + ownInvitationNonceOfInvitationsAcceptedOnOtherDevices: ownInvitationNonceOfInvitationsAcceptedOnOtherDevices, lastKnownOwnInvitationNonceAndOtherMembers: lastKnownOwnInvitationNonceAndOtherMembers) } @@ -1160,6 +1220,7 @@ extension GroupV2Protocol { let invitationCollectedData = self.startState.invitationCollectedData let lastKnownOwnInvitationNonceAndOtherMembers = self.startState.lastKnownOwnInvitationNonceAndOtherMembers let expectedInternalServerQueryIdentifier = startState.expectedInternalServerQueryIdentifier + let ownInvitationNonceOfInvitationsAcceptedOnOtherDevices = startState.ownInvitationNonceOfInvitationsAcceptedOnOtherDevices // Check that the received server query response corresponds to the one we were waiting for. // If not, we simply discard the message. @@ -1192,7 +1253,7 @@ extension GroupV2Protocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } return FinalState() @@ -1209,7 +1270,7 @@ extension GroupV2Protocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } if try identityDelegate.checkExistenceOfGroupV2(withGroupWithIdentifier: groupIdentifier, of: ownedIdentity, within: obvContext) { @@ -1231,11 +1292,12 @@ extension GroupV2Protocol { // We try to decrypt the encrypted blob - guard let (inviterIdentity, serverBlobToConsolidate, blobKeys) = tryToDecrypt(encryptedServerBlob: encryptedServerBlob, using: invitationCollectedData, groupAdminPublicKey: groupAdminPublicKey, expectedGroupIdentifier: groupIdentifier) else { + guard let (inviterIdentity, signerIdentity, serverBlobToConsolidate, blobKeys) = tryToDecrypt(encryptedServerBlob: encryptedServerBlob, using: invitationCollectedData, groupAdminPublicKey: groupAdminPublicKey, expectedGroupIdentifier: groupIdentifier) else { // We could not decrypt the blob, we need more keys return INeedMoreSeedsState(groupIdentifier: groupIdentifier, dialogUuid: dialogUuid, - invitationCollectedData: invitationCollectedData, + invitationCollectedData: invitationCollectedData, + ownInvitationNonceOfInvitationsAcceptedOnOtherDevices: ownInvitationNonceOfInvitationsAcceptedOnOtherDevices, lastKnownOwnInvitationNonceAndOtherMembers: lastKnownOwnInvitationNonceAndOtherMembers) } @@ -1267,6 +1329,7 @@ extension GroupV2Protocol { return INeedMoreSeedsState(groupIdentifier: groupIdentifier, dialogUuid: dialogUuid, invitationCollectedData: invitationCollectedData, + ownInvitationNonceOfInvitationsAcceptedOnOtherDevices: ownInvitationNonceOfInvitationsAcceptedOnOtherDevices, lastKnownOwnInvitationNonceAndOtherMembers: lastKnownOwnInvitationNonceAndOtherMembers) } } @@ -1285,12 +1348,15 @@ extension GroupV2Protocol { if groupExistsInDB { // Update the group in DB and get back the identities that are either new or which an update invite nonce. + // If the signer is the owned identity, it means the group was updated by the owned identity. + // In that case, the identity delegate won't prompt the user in case there are new details. + let groupUpdatedByOwnedIdentity = (signerIdentity == ownedIdentity) let identitiesToPing = try identityDelegate.updateGroupV2(withGroupWithIdentifier: groupIdentifier, of: ownedIdentity, newBlobKeys: blobKeys, consolidatedServerBlob: consolidatedServerBlob, - groupUpdatedByOwnedIdentity: false, + groupUpdatedByOwnedIdentity: groupUpdatedByOwnedIdentity, within: obvContext) // Send a ping to the identities returned by the identity manager. Doing so allow us to inform them that we agreed to be part of the group. @@ -1302,7 +1368,7 @@ extension GroupV2Protocol { let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.AsymmetricChannelBroadcast(to: identityToPing, fromOwnedIdentity: ownedIdentity)) let concreteMessage = PingMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, groupInvitationNonce: ownGroupInvitationNonce, signatureOnGroupIdentifierAndInvitationNonceAndRecipientIdentity: signature, isReponse: false) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -1319,14 +1385,14 @@ extension GroupV2Protocol { let childProtocolInstanceUid = UID.gen(with: prng) let coreMessage = getCoreMessageForOtherLocalProtocol( - otherCryptoProtocolId: .DownloadGroupV2Photo, + otherCryptoProtocolId: .downloadGroupV2Photo, otherProtocolInstanceUid: childProtocolInstanceUid) let childProtocolInitialMessage = DownloadGroupV2PhotoProtocol.InitialMessage( coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, serverPhotoInfo: serverPhotoInfo) guard let messageToSend = childProtocolInitialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate child protocol message") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -1342,9 +1408,46 @@ extension GroupV2Protocol { } // If we reach this point, the group does not exist in DB, meaning we are yet to accept to be part of it. - // Prompt the user to accept. + + // We want to determine whether we should prompt the user or not. We don't want to if the invitation was already accepted on another owned device, or if we created the group, + // or if the group already exists on another owned device. - do { + // If one of the nonces found in ownInvitationNonceOfInvitationsAcceptedOnOtherDevices corresponds to the blob's own invitation nonce, we know the invitation + // was accepted on another device. + + let invitationWasAcceptedOnOtherDevice = ownInvitationNonceOfInvitationsAcceptedOnOtherDevices.contains(where: { $0 == ownGroupInvitationNonce }) + + // To determine if we created the group or if it already exists on another owned device, we check if the owned identity appears among the inviters of the invitation collected data. + // Note that this data collects the main seed candidates, and were thus received through an Oblivious channel. + + let ownedIdentityJustCreatedTheGroupOrTheGroupExistsOnAnotherOwnedDevice = invitationCollectedData.invitersInclude(ownedIdentity) + + + if invitationWasAcceptedOnOtherDevice || ownedIdentityJustCreatedTheGroupOrTheGroupExistsOnAnotherOwnedDevice { + + // We want to auto-accept the invitation, without prompting the user. + // To do so, we post a local message that will immeditaly be processed from the InvitationReceivedState. + + let coreMessage = getCoreMessage(for: .Local(ownedIdentity: ownedIdentity)) + let concreteMessage = AutoAcceptInvitationMessage(coreProtocolMessage: coreMessage) + guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Could not generate FinalizeGroupCreationMessage") } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + + // Since we auto-accepted the invitation, we remove any existing invitation dialog + + do { + let dialogType = ObvChannelDialogToSendType.delete + let coreMessage = getCoreMessage(for: .UserInterface(uuid: dialogUuid, ownedIdentity: ownedIdentity, dialogType: dialogType)) + let concreteProtocolMessage = DialogInformativeMessage(coreProtocolMessage: coreMessage) + if let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() { + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + } + + } else { + + // Prompt the user to accept the invitation + let trustedDetailsAndPhoto = ObvGroupV2.DetailsAndPhoto(serializedGroupCoreDetails: consolidatedServerBlob.serializedGroupCoreDetails, photoURLFromEngine: .none) let otherMembers = Set(consolidatedServerBlob.getOtherGroupMembers(ownedIdentity: ownedIdentity).map({ $0.toObvGroupV2IdentityAndPermissionsAndDetails(isPending: true) })) assert(groupIdentifier.category == .server, "If we are dealing with anything else than .server, we cannot always set serializedSharedSettings to nil bellow") @@ -1363,7 +1466,8 @@ extension GroupV2Protocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } // Return the new state @@ -1379,14 +1483,20 @@ extension GroupV2Protocol { /// This method uses the collected data seeds one by one until a pair allows to decrypt the encrypted blob. /// In case the owned identity is a group admin, it should have received at least one authentication private key. To determine the correct one, we look for a private received key matching the group admin public key. - private func tryToDecrypt(encryptedServerBlob: EncryptedData, using invitationCollectedData: GroupV2.InvitationCollectedData, groupAdminPublicKey: PublicKeyForAuthentication, expectedGroupIdentifier: GroupV2.Identifier) -> (inviter: ObvCryptoIdentity, blob: GroupV2.ServerBlob, blobKeys: GroupV2.BlobKeys)? { + private func tryToDecrypt(encryptedServerBlob: EncryptedData, using invitationCollectedData: GroupV2.InvitationCollectedData, groupAdminPublicKey: PublicKeyForAuthentication, expectedGroupIdentifier: GroupV2.Identifier) -> (inviter: ObvCryptoIdentity, signer: ObvCryptoIdentity, blob: GroupV2.ServerBlob, blobKeys: GroupV2.BlobKeys)? { for (inviter, blobMainSeed) in invitationCollectedData.inviterIdentityAndBlobMainSeedCandidates { for blobVersionSeed in invitationCollectedData.blobVersionSeedCandidates { let blob: GroupV2.ServerBlob + let signer: ObvCryptoIdentity do { - blob = try GroupV2.ServerBlob(encryptedServerBlob: encryptedServerBlob, blobMainSeed: blobMainSeed, blobVersionSeed: blobVersionSeed, expectedGroupIdentifier: expectedGroupIdentifier, solveChallengeDelegate: solveChallengeDelegate) + (blob, signer) = try GroupV2.ServerBlob.decryptThenCheckSignature( + encryptedServerBlob: encryptedServerBlob, + blobMainSeed: blobMainSeed, + blobVersionSeed: blobVersionSeed, + expectedGroupIdentifier: expectedGroupIdentifier, + solveChallengeDelegate: solveChallengeDelegate) } catch { // We could not decrypt the blob with these seeds. Wy try another pair of candidates. debugPrint(error.localizedDescription) @@ -1407,7 +1517,7 @@ extension GroupV2Protocol { let blobKeys = GroupV2.BlobKeys(blobMainSeed: blobMainSeed, blobVersionSeed: blobVersionSeed, groupAdminServerAuthenticationPrivateKey: groupAdminServerAuthenticationPrivateKey) - return (inviter, blob, blobKeys) + return (inviter, signer, blob, blobKeys) } } @@ -1527,7 +1637,7 @@ extension GroupV2Protocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { assertionFailure(error.localizedDescription) // Continue anyway @@ -1579,7 +1689,7 @@ extension GroupV2Protocol { let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.AsymmetricChannelBroadcast(to: memberWhoSignedTheNonce.identity, fromOwnedIdentity: ownedIdentity)) let concreteMessage = PingMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, groupInvitationNonce: ownGroupInvitationNonce, signatureOnGroupIdentifierAndInvitationNonceAndRecipientIdentity: signature, isReponse: true) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -1642,6 +1752,7 @@ extension GroupV2Protocol { enum ReceivedMessageType { case dialogAcceptGroupV2InvitationMessage(receivedMessage: DialogAcceptGroupV2InvitationMessage) case propagateInvitationDialogResponseMessage(receivedMessage: PropagateInvitationDialogResponseMessage) + case autoAcceptInvitationFromOwnedIdentityMessage(receivedMessage: AutoAcceptInvitationMessage) } init?(startState: StartStateType, receivedMessage: ReceivedMessageType, concreteCryptoProtocol: ConcreteCryptoProtocol) { @@ -1654,6 +1765,11 @@ extension GroupV2Protocol { receivedMessage: receivedMessage, concreteCryptoProtocol: concreteCryptoProtocol) case .propagateInvitationDialogResponseMessage(let receivedMessage): + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AnyObliviousChannelWithOwnedDevice(ownedIdentity: concreteCryptoProtocol.ownedIdentity), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + case .autoAcceptInvitationFromOwnedIdentityMessage(let receivedMessage): super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, expectedReceptionChannelInfo: .Local, receivedMessage: receivedMessage, @@ -1686,23 +1802,36 @@ extension GroupV2Protocol { let dialogUuidFromMessage: UUID? let invitationAccepted: Bool let propagated: Bool + let autoAccepted: Bool let propagatedOwnGroupInvitationNonce: Data? + let createdByMeOnOtherDevice: Bool switch receivedMessage { case .dialogAcceptGroupV2InvitationMessage(let receivedMessage): dialogUuidFromMessage = receivedMessage.dialogUuid invitationAccepted = receivedMessage.invitationAccepted propagated = false + autoAccepted = false propagatedOwnGroupInvitationNonce = nil + createdByMeOnOtherDevice = false case .propagateInvitationDialogResponseMessage(let receivedMessage): dialogUuidFromMessage = nil invitationAccepted = receivedMessage.invitationAccepted propagated = true + autoAccepted = false propagatedOwnGroupInvitationNonce = receivedMessage.ownGroupInvitationNonce + createdByMeOnOtherDevice = false + case .autoAcceptInvitationFromOwnedIdentityMessage: + dialogUuidFromMessage = nil + invitationAccepted = true + propagated = false + autoAccepted = true + propagatedOwnGroupInvitationNonce = nil + createdByMeOnOtherDevice = true } // Check the dialog UUID (unless we are receiving a propagated response) - guard dialogUuid == dialogUuidFromMessage || propagated else { + guard dialogUuid == dialogUuidFromMessage || propagated || autoAccepted else { assertionFailure() @@ -1715,11 +1844,39 @@ extension GroupV2Protocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } return returnedStateWhenDiscardingReceivedMessage } + + // If we are not in the invitation received state, the only situation where we continue this step + // is when the invitation was not accepted. + + switch startState { + case .invitationReceivedState: + break + case .downloadingGroupBlobState(startState: let _startState): + guard !invitationAccepted else { + if let propagatedOwnGroupInvitationNonce { + // The invitation was accepted for the nonce is the received message on another owned device. + // We store this information in the start state before returning it. + return _startState.addingOwnInvitationNonceOfInvitationsAcceptedOnOtherDevice(nonce: propagatedOwnGroupInvitationNonce) + } else { + return _startState + } + } + case .iNeedMoreSeed(startState: let _startState): + guard !invitationAccepted else { + if let propagatedOwnGroupInvitationNonce { + // The invitation was accepted for the nonce is the received message on another owned device. + // We store this information in the start state before returning it. + return _startState.addingOwnInvitationNonceOfInvitationsAcceptedOnOtherDevice(nonce: propagatedOwnGroupInvitationNonce) + } else { + return _startState + } + } + } // Make sure we are part of the group. Abort otherwise. // Get our own group invitation nonce from the server blob or from the last known value. @@ -1776,13 +1933,13 @@ extension GroupV2Protocol { // If we are not already dealing with a propagated invitation response, we propagate the response now to our other devices - if !propagated { + if !propagated && !autoAccepted { let otherDeviceUIDs = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) if !otherDeviceUIDs.isEmpty { let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(otherDeviceUIDs), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true)) let concreteMessage = PropagateInvitationDialogResponseMessage(coreProtocolMessage: coreMessage, invitationAccepted: invitationAccepted, ownGroupInvitationNonce: ownGroupInvitationNonce) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -1796,7 +1953,7 @@ extension GroupV2Protocol { let concreteMessage = PutGroupLogOnServerMessage(coreProtocolMessage: coreMessage) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.putGroupLog(groupIdentifier: groupIdentifier, querySignature: leaveSignature) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } do { @@ -1806,7 +1963,7 @@ extension GroupV2Protocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } return RejectingInvitationOrLeavingGroupState(groupIdentifier: groupIdentifier, groupMembersToNotify: groupMembersToNotify) @@ -1830,11 +1987,13 @@ extension GroupV2Protocol { let serverBlobWithCheckedIntegrity = serverBlob.withForcedCheckedAdministratorsChainIntegrity() // We create the group in database on the basis of the information we already have. + // We use the createContactGroupV2JoinedByOwnedIdentity method even when the group was created by the onwed identity on another owned device. try identityDelegate.createContactGroupV2JoinedByOwnedIdentity(ownedIdentity, groupIdentifier: groupIdentifier, serverBlob: serverBlobWithCheckedIntegrity, blobKeys: blobKeys, + createdByMeOnOtherDevice: createdByMeOnOtherDevice, within: obvContext) // At this point, if we have a nil photoURL but have server photo info in the consolidated blob, we can launch a download if the photo is not available already. @@ -1850,14 +2009,14 @@ extension GroupV2Protocol { let childProtocolInstanceUid = UID.gen(with: prng) let coreMessage = getCoreMessageForOtherLocalProtocol( - otherCryptoProtocolId: .DownloadGroupV2Photo, + otherCryptoProtocolId: .downloadGroupV2Photo, otherProtocolInstanceUid: childProtocolInstanceUid) let childProtocolInitialMessage = DownloadGroupV2PhotoProtocol.InitialMessage( coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, serverPhotoInfo: serverPhotoInfo) guard let messageToSend = childProtocolInitialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate child protocol message") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -1868,14 +2027,13 @@ extension GroupV2Protocol { do { let ownGroupInvitationNonce = try identityDelegate.getOwnGroupInvitationNonceOfGroupV2(withGroupWithIdentifier: groupIdentifier, of: ownedIdentity, within: obvContext) let identitiesToPing = Set(serverBlobWithCheckedIntegrity.groupMembers.map({ $0.identity })).filter({ $0 != ownedIdentity }) - assert(!identitiesToPing.isEmpty) for identity in identitiesToPing { let challenge = ChallengeType.groupJoinNonce(groupIdentifier: groupIdentifier, groupInvitationNonce: ownGroupInvitationNonce, recipientIdentity: identity) let signature = try solveChallengeDelegate.solveChallenge(challenge, for: ownedIdentity, using: prng, within: obvContext) let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.AsymmetricChannelBroadcast(to: identity, fromOwnedIdentity: ownedIdentity)) let concreteMessage = PingMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, groupInvitationNonce: ownGroupInvitationNonce, signatureOnGroupIdentifierAndInvitationNonceAndRecipientIdentity: signature, isReponse: false) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -1888,7 +2046,7 @@ extension GroupV2Protocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -1905,7 +2063,7 @@ extension GroupV2Protocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } @@ -1952,6 +2110,26 @@ extension GroupV2Protocol { } + // MARK: InvitationReceivedState / AutoAcceptInvitationFromOwnedIdentityMessage + + final class ProcessAutoAcceptInvitationFromOwnedIdentityMessageFromInvitationReceivedStateStep: ProcessInvitationDialogResponseStep, TypedConcreteProtocolStep { + + let startState: InvitationReceivedState + let receivedMessage: AutoAcceptInvitationMessage + + init?(startState: InvitationReceivedState, receivedMessage: GroupV2Protocol.AutoAcceptInvitationMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: .invitationReceivedState(startState: startState), + receivedMessage: .autoAcceptInvitationFromOwnedIdentityMessage(receivedMessage: receivedMessage), + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + // MARK: DownloadingGroupBlobState / DialogAcceptGroupV2InvitationMessage final class ProcessDialogAcceptGroupV2InvitationMessageFromDownloadingGroupBlobStateStep: ProcessInvitationDialogResponseStep, TypedConcreteProtocolStep { @@ -1992,6 +2170,26 @@ extension GroupV2Protocol { } + // MARK: DownloadingGroupBlobState / AutoAcceptInvitationFromOwnedIdentityMessage + + final class ProcessAutoAcceptInvitationFromOwnedIdentityMessageFromDownloadingGroupBlobStateStep: ProcessInvitationDialogResponseStep, TypedConcreteProtocolStep { + + let startState: DownloadingGroupBlobState + let receivedMessage: AutoAcceptInvitationMessage + + init?(startState: DownloadingGroupBlobState, receivedMessage: GroupV2Protocol.AutoAcceptInvitationMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: .downloadingGroupBlobState(startState: startState), + receivedMessage: .autoAcceptInvitationFromOwnedIdentityMessage(receivedMessage: receivedMessage), + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + // MARK: INeedMoreSeedsState / DialogAcceptGroupV2InvitationMessage final class ProcessDialogAcceptGroupV2InvitationMessageFromINeedMoreSeedsStateStep: ProcessInvitationDialogResponseStep, TypedConcreteProtocolStep { @@ -2030,6 +2228,27 @@ extension GroupV2Protocol { // The step execution is defined in the superclass } + + + // MARK: INeedMoreSeedsState / AutoAcceptInvitationFromOwnedIdentityMessage + + final class ProcessAutoAcceptInvitationFromOwnedIdentityMessageFromINeedMoreSeedsStateStep: ProcessInvitationDialogResponseStep, TypedConcreteProtocolStep { + + let startState: INeedMoreSeedsState + let receivedMessage: AutoAcceptInvitationMessage + + init?(startState: INeedMoreSeedsState, receivedMessage: GroupV2Protocol.AutoAcceptInvitationMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: .iNeedMoreSeed(startState: startState), + receivedMessage: .autoAcceptInvitationFromOwnedIdentityMessage(receivedMessage: receivedMessage), + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + // MARK: - NotifyMembersOfRejectionStep @@ -2062,7 +2281,7 @@ extension GroupV2Protocol { let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.AsymmetricChannelBroadcast(to: groupMember, fromOwnedIdentity: ownedIdentity)) let concreteMessage = InvitationRejectedBroadcastMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } return FinalState() @@ -2160,7 +2379,7 @@ extension GroupV2Protocol { let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(otherDeviceUIDs), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true)) let concreteMessage = PropagateInvitationRejectedMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -2210,7 +2429,7 @@ extension GroupV2Protocol { let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.AsymmetricChannelBroadcast(to: identity, fromOwnedIdentity: ownedIdentity)) let concreteMessage = PingMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, groupInvitationNonce: ownGroupInvitationNonce, signatureOnGroupIdentifierAndInvitationNonceAndRecipientIdentity: signature, isReponse: false) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -2244,7 +2463,7 @@ extension GroupV2Protocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Store the own invitation nonce and other group members identities @@ -2266,7 +2485,7 @@ extension GroupV2Protocol { let concreteMessage = DownloadGroupBlobMessage(coreProtocolMessage: coreMessage, internalServerQueryIdentifier: internalServerQueryIdentifier) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.getGroupBlob(groupIdentifier: groupIdentifier) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Create an initial version of the invitation collected data @@ -2278,7 +2497,8 @@ extension GroupV2Protocol { return DownloadingGroupBlobState(groupIdentifier: groupIdentifier, dialogUuid: dialogUuid, invitationCollectedData: invitationCollectedData, - expectedInternalServerQueryIdentifier: internalServerQueryIdentifier, + expectedInternalServerQueryIdentifier: internalServerQueryIdentifier, + ownInvitationNonceOfInvitationsAcceptedOnOtherDevices: [], lastKnownOwnInvitationNonceAndOtherMembers: lastKnownOwnInvitationNonceAndOtherMembers) } @@ -2444,7 +2664,7 @@ extension GroupV2Protocol { let concreteMessage = RequestServerLockMessage(coreProtocolMessage: coreMessage) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.requestGroupBlobLock(groupIdentifier: groupIdentifier, lockNonce: lockNonce, signature: lockNonceSignature) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) // Since we will be waiting for "a long time", we freeze the group @@ -2607,7 +2827,7 @@ extension GroupV2Protocol { // We try to decrypt the encrypted blob - guard let serverBlobToConsolidate = tryToDecrypt(encryptedServerBlob: encryptedServerBlob, blobMainSeed: blobMainSeed, blobVersionSeed: blobKeys.blobVersionSeed, expectedGroupIdentifier: groupIdentifier) else { + guard let (serverBlobToConsolidate, _) = tryToDecrypt(encryptedServerBlob: encryptedServerBlob, blobMainSeed: blobMainSeed, blobVersionSeed: blobKeys.blobVersionSeed, expectedGroupIdentifier: groupIdentifier) else { // We could not decrypt the blob received from the server. // This typically happens if the group was updated by some other admin but we are not aware of it yet. // Indeed, in that case, our version seed is outdated and the decryption necessarily fails. @@ -2694,7 +2914,7 @@ extension GroupV2Protocol { lockNonce: lockNonce, signature: solveChallengeSignature) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -2719,11 +2939,17 @@ extension GroupV2Protocol { /// This method uses the collected data seeds one by one until a pair allows to decrypt the encrypted blob. /// In case the owned identity is a group admin, it should have received at least one authentication private key. To determine the correct one, we look for a private received key matching the group admin public key. - private func tryToDecrypt(encryptedServerBlob: EncryptedData, blobMainSeed: Seed, blobVersionSeed: Seed, expectedGroupIdentifier: GroupV2.Identifier) -> GroupV2.ServerBlob? { + private func tryToDecrypt(encryptedServerBlob: EncryptedData, blobMainSeed: Seed, blobVersionSeed: Seed, expectedGroupIdentifier: GroupV2.Identifier) -> (blob: GroupV2.ServerBlob, signer: ObvCryptoIdentity)? { let blob: GroupV2.ServerBlob + let signer: ObvCryptoIdentity do { - blob = try GroupV2.ServerBlob(encryptedServerBlob: encryptedServerBlob, blobMainSeed: blobMainSeed, blobVersionSeed: blobVersionSeed, expectedGroupIdentifier: expectedGroupIdentifier, solveChallengeDelegate: solveChallengeDelegate) + (blob, signer) = try GroupV2.ServerBlob.decryptThenCheckSignature( + encryptedServerBlob: encryptedServerBlob, + blobMainSeed: blobMainSeed, + blobVersionSeed: blobVersionSeed, + expectedGroupIdentifier: expectedGroupIdentifier, + solveChallengeDelegate: solveChallengeDelegate) } catch { // We could not decrypt the blob with these seeds. return nil @@ -2734,7 +2960,7 @@ extension GroupV2Protocol { return nil } - return blob + return (blob, signer) } @@ -2821,7 +3047,7 @@ extension GroupV2Protocol { let concreteMessage = RequestServerLockMessage(coreProtocolMessage: coreMessage) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.requestGroupBlobLock(groupIdentifier: groupIdentifier, lockNonce: lockNonce, signature: lockNonceSignature) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) // Increment fail counter and wait for the lock @@ -2847,13 +3073,13 @@ extension GroupV2Protocol { let concreteMessage = UploadGroupPhotoMessage(coreProtocolMessage: coreMessage) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.putUserData(label: serverPhotoInfo.photoServerKeyAndLabel.label, dataURL: groupPhotoURL, dataKey: serverPhotoInfo.photoServerKeyAndLabel.key) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) serverPhotoInfoOfNewUploadedPhoto = serverPhotoInfo } else { let coreMessage = getCoreMessage(for: .Local(ownedIdentity: ownedIdentity)) let concreteMessage = FinalizeGroupUpdateMessage(coreProtocolMessage: coreMessage) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Could not generate FinalizeGroupUpdateMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) serverPhotoInfoOfNewUploadedPhoto = nil } @@ -2915,7 +3141,7 @@ extension GroupV2Protocol { let coreMessage = getCoreMessage(for: .Local(ownedIdentity: ownedIdentity)) let concreteMessage = FinalizeGroupUpdateMessage(coreProtocolMessage: coreMessage) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Could not generate FinalizeGroupUpdateMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) return UploadingUpdatedGroupPhotoState(groupIdentifier: groupIdentifier, changeset: changeset, @@ -3037,24 +3263,40 @@ extension GroupV2Protocol { if let memberDeviceUids = deviceUidsOfRemoteIdentity[member.identity], !memberDeviceUids.isEmpty { let keysToSend = keysToSend(member.hasGroupAdminPermission, true) let channelType = ObvChannelSendChannelType.ObliviousChannel(to: member.identity, remoteDeviceUids: Array(memberDeviceUids), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true) - let coreMessage = CoreProtocolMessage(channelType: channelType, cryptoProtocolId: .GroupV2, protocolInstanceUid: protocolInstanceUid) + let coreMessage = CoreProtocolMessage(channelType: channelType, cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) let concreteMessage = InvitationOrMembersUpdateMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, groupVersion: uploadedServerBlob.groupVersion, blobKeys: keysToSend, notifiedDeviceUIDs: memberDeviceUids) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } else { let keysToSend = keysToSend(member.hasGroupAdminPermission, false) let channelType = ObvChannelSendChannelType.AsymmetricChannelBroadcast(to: member.identity, fromOwnedIdentity: ownedIdentity) - let coreMessage = CoreProtocolMessage(channelType: channelType, cryptoProtocolId: .GroupV2, protocolInstanceUid: protocolInstanceUid) + let coreMessage = CoreProtocolMessage(channelType: channelType, cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) let concreteMessage = InvitationOrMembersUpdateBroadcastMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, groupVersion: uploadedServerBlob.groupVersion, blobKeys: keysToSend) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + } + + do { + let otherDeviceUIDs = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) + if !otherDeviceUIDs.isEmpty { + let keysToSend = keysToSend(true, true) // We have admin permissions, and we send the keys through an Oblivious channel + let channelType = ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(otherDeviceUIDs), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true) + let coreMessage = CoreProtocolMessage(channelType: channelType, cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) + let concreteMessage = InvitationOrMembersUpdateMessage(coreProtocolMessage: coreMessage, + groupIdentifier: groupIdentifier, + groupVersion: uploadedServerBlob.groupVersion, + blobKeys: keysToSend, + notifiedDeviceUIDs: otherDeviceUIDs) + guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -3073,10 +3315,10 @@ extension GroupV2Protocol { let challenge = ChallengeType.groupKick(encryptedAdministratorChain: encryptedAdministratorChain, groupInvitationNonce: member.groupInvitationNonce) let signature = try solveChallengeDelegate.solveChallenge(challenge, for: ownedIdentity, using: prng, within: obvContext) let channelType = ObvChannelSendChannelType.AsymmetricChannelBroadcast(to: member.identity, fromOwnedIdentity: ownedIdentity) - let coreMessage = CoreProtocolMessage(channelType: channelType, cryptoProtocolId: .GroupV2, protocolInstanceUid: protocolInstanceUid) + let coreMessage = CoreProtocolMessage(channelType: channelType, cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) let concreteMessage = KickMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, encryptedAdministratorChain: encryptedAdministratorChain, signature: signature) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -3206,7 +3448,7 @@ extension GroupV2Protocol { let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(otherDeviceUIDs), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true)) let concreteMessage = PropagatedKickMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, encryptedAdministratorChain: encryptedAdministratorChain, signature: signature) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -3314,7 +3556,7 @@ extension GroupV2Protocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Delete the group @@ -3644,7 +3886,7 @@ extension GroupV2Protocol { let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(otherDeviceUIDs), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true)) let concreteMessage = PropagatedGroupLeaveMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, groupInvitationNonce: ownGroupInvitationNonce) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Put a group left log on server @@ -3654,7 +3896,7 @@ extension GroupV2Protocol { let concreteMessage = PutGroupLogOnServerMessage(coreProtocolMessage: coreMessage) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.putGroupLog(groupIdentifier: groupIdentifier, querySignature: leaveSignature) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) // Get the list of members to notify (before deleting the group) @@ -3937,7 +4179,7 @@ extension GroupV2Protocol { } let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.deleteGroupBlob(groupIdentifier: groupIdentifier, signature: signature) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) // Freeze the group @@ -4099,7 +4341,7 @@ extension GroupV2Protocol { let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(otherDeviceUIDs), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true)) let concreteMessage = PropagateGroupDisbandMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -4119,10 +4361,10 @@ extension GroupV2Protocol { let challenge = ChallengeType.groupKick(encryptedAdministratorChain: encryptedAdministratorChain, groupInvitationNonce: member.groupInvitationNonce) let signature = try solveChallengeDelegate.solveChallenge(challenge, for: ownedIdentity, using: prng, within: obvContext) let channelType = ObvChannelSendChannelType.AsymmetricChannelBroadcast(to: member.identity, fromOwnedIdentity: ownedIdentity) - let coreMessage = CoreProtocolMessage(channelType: channelType, cryptoProtocolId: .GroupV2, protocolInstanceUid: protocolInstanceUid) + let coreMessage = CoreProtocolMessage(channelType: channelType, cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) let concreteMessage = KickMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, encryptedAdministratorChain: encryptedAdministratorChain, signature: signature) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -4163,21 +4405,32 @@ extension GroupV2Protocol { eraseReceivedMessagesAfterReachingAFinalState = false - let contactIdentity = receivedMessage.contactIdentity - let contactDeviceUID = receivedMessage.contactDeviceUID + let remoteIdentity = receivedMessage.remoteIdentity + let remoteDeviceUID = receivedMessage.remoteDeviceUID - // Get all group identifiers, versions, and keys of groups shared with the contact + let allIdentifierVersionAndKeys: [GroupV2.IdentifierVersionAndKeys] - let allIdentifierVersionAndKeys = try identityDelegate.getAllGroupsV2IdentifierVersionAndKeysForContact(contactIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) + if remoteIdentity == ownedIdentity { + + allIdentifierVersionAndKeys = try identityDelegate.getAllGroupsV2IdentifierVersionAndKeys(ofOwnedIdentity: ownedIdentity, within: obvContext) + + } else { + + // Get all group identifiers, versions, and keys of groups shared with the contact + + let contactIdentity = remoteIdentity + allIdentifierVersionAndKeys = try identityDelegate.getAllGroupsV2IdentifierVersionAndKeysForContact(contactIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) + + } // Send the information to the contact if !allIdentifierVersionAndKeys.isEmpty { - let channelType = ObvChannelSendChannelType.ObliviousChannel(to: contactIdentity, remoteDeviceUids: [contactDeviceUID], fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: false) - let coreMessage = CoreProtocolMessage(channelType: channelType, cryptoProtocolId: .GroupV2, protocolInstanceUid: protocolInstanceUid) + let channelType = ObvChannelSendChannelType.ObliviousChannel(to: remoteIdentity, remoteDeviceUids: [remoteDeviceUID], fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: false) + let coreMessage = CoreProtocolMessage(channelType: channelType, cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUid) let concreteMessage = BlobKeysBatchAfterChannelCreationMessage(coreProtocolMessage: coreMessage, groupInfos: allIdentifierVersionAndKeys) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // We are done @@ -4220,20 +4473,20 @@ extension GroupV2Protocol { // Determine the origin of the message - guard let contactIdentity = receivedMessage.receptionChannelInfo?.getRemoteIdentity() else { + guard let remoteIdentity = receivedMessage.receptionChannelInfo?.getRemoteIdentity() else { assertionFailure() return FinalState() } let channelType = ObvChannelSendChannelType.Local(ownedIdentity: ownedIdentity) - let coreMessage = CoreProtocolMessage(channelType: channelType, cryptoProtocolId: .GroupV2, protocolInstanceUid: protocolInstanceUID) + let coreMessage = CoreProtocolMessage(channelType: channelType, cryptoProtocolId: .groupV2, protocolInstanceUid: protocolInstanceUID) let concreteMessage = BlobKeysAfterChannelCreationMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifierVersionAndKeys.groupIdentifier, groupVersion: groupIdentifierVersionAndKeys.groupVersion, blobKeys: groupIdentifierVersionAndKeys.blobKeys, - inviter: contactIdentity) + inviter: remoteIdentity) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } @@ -4297,14 +4550,14 @@ extension GroupV2Protocol { let childProtocolInstanceUid = UID.gen(with: prng) let coreMessage = getCoreMessageForOtherLocalProtocol( - otherCryptoProtocolId: .DownloadGroupV2Photo, + otherCryptoProtocolId: .downloadGroupV2Photo, otherProtocolInstanceUid: childProtocolInstanceUid) let childProtocolInitialMessage = DownloadGroupV2PhotoProtocol.InitialMessage( coreProtocolMessage: coreMessage, groupIdentifier: output.groupIdentifier, serverPhotoInfo: serverPhotoInfo) guard let messageToSend = childProtocolInitialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate child protocol message") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } @@ -4320,7 +4573,7 @@ extension GroupV2Protocol { otherProtocolInstanceUid: otherProtocolInstanceUid) let concreteMessage = PingMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, groupInvitationNonce: ownGroupInvitationNonce, signatureOnGroupIdentifierAndInvitationNonceAndRecipientIdentity: signature, isReponse: false) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } @@ -4369,6 +4622,15 @@ extension GroupV2Protocol { guard groupExistsInDB else { return FinalState() } + + // If the pending member is a contact already, make sure it is keycloak managed + + if try identityDelegate.isIdentity(pendingMemberIdentity, aContactIdentityOfTheOwnedIdentity: ownedIdentity, within: obvContext) { + guard try identityDelegate.isContactCertifiedByOwnKeycloak(contactIdentity: pendingMemberIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) else { + // The pending member is a contact, but it is not keycloak managed. We do not send a ping to her + return FinalState() + } + } // Get the group own invitation nonce @@ -4381,7 +4643,7 @@ extension GroupV2Protocol { let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.AsymmetricChannelBroadcast(to: pendingMemberIdentity, fromOwnedIdentity: ownedIdentity)) let concreteMessage = PingMessage(coreProtocolMessage: coreMessage, groupIdentifier: groupIdentifier, groupInvitationNonce: ownGroupInvitationNonce, signatureOnGroupIdentifierAndInvitationNonceAndRecipientIdentity: signature, isReponse: false) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) // We are done diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/IdentityDetailsPublicationProtocol/IdentityDetailsPublicationProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/IdentityDetailsPublicationProtocol/IdentityDetailsPublicationProtocol.swift index 002024a5..27cc0040 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/IdentityDetailsPublicationProtocol/IdentityDetailsPublicationProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/IdentityDetailsPublicationProtocol/IdentityDetailsPublicationProtocol.swift @@ -28,7 +28,7 @@ public struct IdentityDetailsPublicationProtocol: ConcreteCryptoProtocol { static let logCategory = "IdentityDetailsPublicationProtocol" - static let id = CryptoProtocolId.IdentityDetailsPublication + static let id = CryptoProtocolId.identityDetailsPublication static let finalStateIds: [ConcreteProtocolStateId] = [StateId.DetailsSent, StateId.DetailsReceived, diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/IdentityDetailsPublicationProtocol/IdentityDetailsPublicationProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/IdentityDetailsPublicationProtocol/IdentityDetailsPublicationProtocolMessages.swift index 287f079a..bcad65fb 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/IdentityDetailsPublicationProtocol/IdentityDetailsPublicationProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/IdentityDetailsPublicationProtocol/IdentityDetailsPublicationProtocolMessages.swift @@ -30,15 +30,17 @@ extension IdentityDetailsPublicationProtocol { enum MessageId: Int, ConcreteProtocolMessageId { - case Initial = 0 - case ServerPutPhoto = 1 - case SendDetails = 2 + case initial = 0 + case serverPutPhoto = 1 + case sendDetails = 2 + case propagateOwnDetails = 3 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { - case .Initial : return InitialMessage.self - case .ServerPutPhoto : return ServerPutPhotoMessage.self - case .SendDetails : return SendDetailsMessage.self + case .initial : return InitialMessage.self + case .serverPutPhoto : return ServerPutPhotoMessage.self + case .sendDetails : return SendDetailsMessage.self + case .propagateOwnDetails : return PropagateOwnDetailsMessage.self } } } @@ -48,7 +50,7 @@ extension IdentityDetailsPublicationProtocol { struct InitialMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.Initial + let id: ConcreteProtocolMessageId = MessageId.initial let coreProtocolMessage: CoreProtocolMessage let version: Int @@ -74,7 +76,7 @@ extension IdentityDetailsPublicationProtocol { struct ServerPutPhotoMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.ServerPutPhoto + let id: ConcreteProtocolMessageId = MessageId.serverPutPhoto let coreProtocolMessage: CoreProtocolMessage var encodedInputs: [ObvEncoded] { return [] } @@ -94,7 +96,7 @@ extension IdentityDetailsPublicationProtocol { struct SendDetailsMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.SendDetails + let id: ConcreteProtocolMessageId = MessageId.sendDetails let coreProtocolMessage: CoreProtocolMessage let contactIdentityDetailsElements: IdentityDetailsElements @@ -116,4 +118,35 @@ extension IdentityDetailsPublicationProtocol { } } + + + // MARK: - PropagateOwnDetailsMessage + + struct PropagateOwnDetailsMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.propagateOwnDetails + let coreProtocolMessage: CoreProtocolMessage + + let ownedIdentityDetailsElements: IdentityDetailsElements + + var encodedInputs: [ObvEncoded] { + get throws { + let encodedContactIdentityDetailsElements = try ownedIdentityDetailsElements.jsonEncode() + return [encodedContactIdentityDetailsElements.obvEncode()] + } + } + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + let encodedContactIdentityDetailsElements: Data = try message.encodedInputs.obvDecode() + self.ownedIdentityDetailsElements = try IdentityDetailsElements(encodedContactIdentityDetailsElements) + } + + init(coreProtocolMessage: CoreProtocolMessage, ownedIdentityDetailsElements: IdentityDetailsElements) { + self.coreProtocolMessage = coreProtocolMessage + self.ownedIdentityDetailsElements = ownedIdentityDetailsElements + } + + } + } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/IdentityDetailsPublicationProtocol/IdentityDetailsPublicationProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/IdentityDetailsPublicationProtocol/IdentityDetailsPublicationProtocolSteps.swift index 60d07466..6c091684 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/IdentityDetailsPublicationProtocol/IdentityDetailsPublicationProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/IdentityDetailsPublicationProtocol/IdentityDetailsPublicationProtocolSteps.swift @@ -31,23 +31,27 @@ extension IdentityDetailsPublicationProtocol { enum StepId: Int, ConcreteProtocolStepId, CaseIterable { - case StartPhotoUpload = 0 - case ReceiveDetails = 1 - case SendDetails = 2 + case startPhotoUpload = 0 + case receiveDetails = 1 + case sendDetails = 2 + case receiveOwnedDetails = 3 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { - case .StartPhotoUpload: + case .startPhotoUpload: let step = StartPhotoUploadStep(from: concreteProtocol, and: receivedMessage) return step - case .ReceiveDetails: + case .receiveDetails: let step = ReceiveDetailsStep(from: concreteProtocol, and: receivedMessage) return step - case .SendDetails: + case .sendDetails: let step = SendDetailsStep(from: concreteProtocol, and: receivedMessage) return step + case .receiveOwnedDetails: + let step = ReceiveOwnedDetailsStep(from: concreteProtocol, and: receivedMessage) + return step } } } @@ -115,7 +119,7 @@ extension IdentityDetailsPublicationProtocol { let concreteMessage = ServerPutPhotoMessage.init(coreProtocolMessage: coreMessage) let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.putUserData(label: photoServerKeyAndLabel.label, dataURL: photoURL, dataKey: photoServerKeyAndLabel.key) guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) return UploadingPhotoState(ownedIdentityDetailsElements: ownedIdentityDetailsElements) @@ -137,13 +141,24 @@ extension IdentityDetailsPublicationProtocol { contactIdentityDetailsElements: ownedIdentityDetailsElements) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not post SendDetailsMessage in StartPhotoUploadStep to the identity %@", log: log, type: .error, contactIndentity.debugDescription) } } + // Propagate the change to our other owned devices + + let otherDeviceUids = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) + if !otherDeviceUids.isEmpty { + let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(otherDeviceUids), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true)) + let concreteMessage = PropagateOwnDetailsMessage(coreProtocolMessage: coreMessage, + ownedIdentityDetailsElements: ownedIdentityDetailsElements) + guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + return DetailsSentState() } @@ -189,14 +204,24 @@ extension IdentityDetailsPublicationProtocol { contactIdentityDetailsElements: ownedIdentityDetailsElements) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } do { - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not post SendDetailsMessage in SendDetailsStep to identity %@", log: log, type: .error, contactIdentity.debugDescription) } } + // Propagate the change to our other owned devices + let otherDeviceUids = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) + if !otherDeviceUids.isEmpty { + let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(otherDeviceUids), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true)) + let concreteMessage = PropagateOwnDetailsMessage(coreProtocolMessage: coreMessage, + ownedIdentityDetailsElements: ownedIdentityDetailsElements) + guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + return DetailsSentState() } @@ -258,7 +283,7 @@ extension IdentityDetailsPublicationProtocol { // Launch a child protocol instance for downloading the photo. To do so, we post an appropriate message on the loopback channel. In this particular case, we do not need to "link" this protocol to the current protocol. let childProtocolInstanceUid = UID.gen(with: prng) - let coreMessage = getCoreMessageForOtherLocalProtocol(otherCryptoProtocolId: .DownloadIdentityPhoto, + let coreMessage = getCoreMessageForOtherLocalProtocol(otherCryptoProtocolId: .downloadIdentityPhoto, otherProtocolInstanceUid: childProtocolInstanceUid) let childProtocolInitialMessage = DownloadIdentityPhotoChildProtocol.InitialMessage( coreProtocolMessage: coreMessage, @@ -268,7 +293,7 @@ extension IdentityDetailsPublicationProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -288,4 +313,59 @@ extension IdentityDetailsPublicationProtocol { } + + // MARK: - ReceiveOwnedDetailsStep + + final class ReceiveOwnedDetailsStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: PropagateOwnDetailsMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: IdentityDetailsPublicationProtocol.PropagateOwnDetailsMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AnyObliviousChannelWithOwnedDevice(ownedIdentity: concreteCryptoProtocol.ownedIdentity), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let log = OSLog(subsystem: delegateManager.logSubsystem, category: IdentityDetailsPublicationProtocol.logCategory) + + let ownedIdentityDetailsElements = receivedMessage.ownedIdentityDetailsElements + + let photoDownloadNeeded = try identityDelegate.updateOwnedPublishedDetailsWithOtherDetailsIfNewer(ownedIdentity, with: ownedIdentityDetailsElements, within: obvContext) + + do { + if photoDownloadNeeded { + let childProtocolInstanceUid = UID.gen(with: prng) + let coreMessage = getCoreMessageForOtherLocalProtocol( + otherCryptoProtocolId: .downloadIdentityPhoto, + otherProtocolInstanceUid: childProtocolInstanceUid) + let childProtocolInitialMessage = DownloadIdentityPhotoChildProtocol.InitialMessage( + coreProtocolMessage: coreMessage, + contactIdentity: ownedIdentity, + contactIdentityDetailsElements: ownedIdentityDetailsElements) + guard let messageToSend = childProtocolInitialMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + assertionFailure() + throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + } catch { + os_log("Failed to request the download of the new owned profile picture: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + // In production, continue + } + + return DetailsReceivedState() + + } + + } + } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocol.swift new file mode 100644 index 00000000..7cc49c17 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocol.swift @@ -0,0 +1,73 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvCrypto +import ObvEncoder +import ObvTypes +import OlvidUtils + +public struct KeycloakBindingAndUnbindingProtocol: ConcreteCryptoProtocol { + + static let logCategory = "KeycloakBindingAndUnbindingProtocol" + + static let id = CryptoProtocolId.keycloakBindingAndUnbinding + + private static let errorDomain = "KeycloakBindingAndUnbindingProtocol" + + private static func makeError(message: String) -> Error { + let userInfo = [NSLocalizedFailureReasonErrorKey: message] + return NSError(domain: errorDomain, code: 0, userInfo: userInfo) + } + + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.Finished] + + let ownedIdentity: ObvCryptoIdentity + let currentState: ConcreteProtocolState + + let delegateManager: ObvProtocolDelegateManager + let obvContext: ObvContext + let prng: PRNGService + let instanceUid: UID + + init(instanceUid: UID, currentState: ConcreteProtocolState, ownedCryptoIdentity: ObvCryptoIdentity, delegateManager: ObvProtocolDelegateManager, prng: PRNGService, within obvContext: ObvContext) { + self.currentState = currentState + self.ownedIdentity = ownedCryptoIdentity + self.delegateManager = delegateManager + self.obvContext = obvContext + self.prng = prng + self.instanceUid = instanceUid + } + + static func stateId(fromRawValue rawValue: Int) -> ConcreteProtocolStateId? { + return StateId(rawValue: rawValue) + } + + static func messageId(fromRawValue rawValue: Int) -> ConcreteProtocolMessageId? { + return MessageId(rawValue: rawValue) + } + + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } + +} + diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocolMessages.swift new file mode 100644 index 00000000..a8907c35 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocolMessages.swift @@ -0,0 +1,191 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvTypes +import JWS + +// MARK: - Protocol Messages + +extension KeycloakBindingAndUnbindingProtocol { + + enum MessageId: Int, ConcreteProtocolMessageId { + + case ownedIdentityKeycloakBinding = 0 + case ownedIdentityKeycloakUnbinding = 1 + case propagateKeycloakBinding = 2 + case propagateKeycloakUnbinding = 3 + + var concreteProtocolMessageType: ConcreteProtocolMessage.Type { + switch self { + case .ownedIdentityKeycloakBinding : return OwnedIdentityKeycloakBindingMessage.self + case .ownedIdentityKeycloakUnbinding : return OwnedIdentityKeycloakUnbindingMessage.self + case .propagateKeycloakBinding : return PropagateKeycloakBindingMessage.self + case .propagateKeycloakUnbinding : return PropagateKeycloakUnbindingMessage.self + } + } + + } + + + // MARK: - OwnedIdentityKeycloakBindingMessage + + struct OwnedIdentityKeycloakBindingMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.ownedIdentityKeycloakBinding + let coreProtocolMessage: CoreProtocolMessage + + let keycloakState: ObvKeycloakState + let keycloakUserId: String + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage, keycloakState: ObvKeycloakState, keycloakUserId: String) { + self.coreProtocolMessage = coreProtocolMessage + self.keycloakState = keycloakState + self.keycloakUserId = keycloakUserId + } + + var encodedInputs: [ObvEncoded] { + get throws { + return [try keycloakState.obvEncode(), keycloakUserId.obvEncode()] + } + } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + let encodedElements = message.encodedInputs + (keycloakState, keycloakUserId) = try encodedElements.obvDecode() + } + + } + + + // MARK: - OwnedIdentityKeycloakUnbindingMessage + + struct OwnedIdentityKeycloakUnbindingMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.ownedIdentityKeycloakUnbinding + let coreProtocolMessage: CoreProtocolMessage + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + } + + } + + + // MARK: - PropagateKeycloakBindingMessage + + struct PropagateKeycloakBindingMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.propagateKeycloakBinding + let coreProtocolMessage: CoreProtocolMessage + + let keycloakState: ObvKeycloakState + let keycloakUserId: String + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage, keycloakUserId: String, keycloakState: ObvKeycloakState) { + assert(keycloakState.signatureVerificationKey != nil, "signatureVerificationKey is expected to be non-nil during a binding process") + self.coreProtocolMessage = coreProtocolMessage + self.keycloakState = keycloakState + self.keycloakUserId = keycloakUserId + } + + var encodedInputs: [ObvEncoded] { + get throws { + guard let signatureVerificationKey = keycloakState.signatureVerificationKey else { + assertionFailure() + throw Self.makeError(message: "The signatureVerificationKey is expected to be non nil") + } + return [ + keycloakUserId.obvEncode(), + keycloakState.keycloakServer.obvEncode(), + keycloakState.clientId.obvEncode(), + keycloakState.clientSecret?.obvEncode() ?? "".obvEncode(), + try keycloakState.jwks.obvEncode(), + try signatureVerificationKey.obvEncode(), + ] + } + } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 6 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded inputs") } + self.keycloakUserId = try message.encodedInputs[0].obvDecode() + let keycloakServer: URL = try message.encodedInputs[1].obvDecode() + let clientId: String = try message.encodedInputs[2].obvDecode() + let clientSecret: String = try message.encodedInputs[3].obvDecode() + let jwks: ObvJWKSet = try message.encodedInputs[4].obvDecode() + let signatureVerificationKey: ObvJWK = try message.encodedInputs[5].obvDecode() + self.keycloakState = ObvKeycloakState( + keycloakServer: keycloakServer, + clientId: clientId, + clientSecret: clientSecret.isEmpty ? nil : clientSecret, + jwks: jwks, + rawAuthState: nil, + signatureVerificationKey: signatureVerificationKey, + latestLocalRevocationListTimestamp: nil, + latestGroupUpdateTimestamp: nil) + } + + } + + + // MARK: - PropagateKeycloakUnbindingMessage + + struct PropagateKeycloakUnbindingMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.propagateKeycloakUnbinding + let coreProtocolMessage: CoreProtocolMessage + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/CallHelper.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocolStates.swift similarity index 50% rename from iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/CallHelper.swift rename to Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocolStates.swift index 882cf8d5..6ae0a491 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/CallHelper.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -16,23 +16,38 @@ * You should have received a copy of the GNU Affero General Public License * along with Olvid. If not, see . */ - import Foundation -import ObvUICoreData +import ObvEncoder +// MARK: - Protocol States -struct CallHelper { +extension KeycloakBindingAndUnbindingProtocol { - private init() {} + enum StateId: Int, ConcreteProtocolStateId { - static func getContactInfo(_ contactObjectID: TypeSafeManagedObjectID) -> ContactInfo? { - var contact: ContactInfo? - ObvStack.shared.viewContext.performAndWait { - if let persistedContact = try? PersistedObvContactIdentity.get(objectID: contactObjectID, within: ObvStack.shared.viewContext) { - contact = ContactInfoImpl(contact: persistedContact) + case InitialState = 0 + case Finished = 1 + + var concreteProtocolStateType: ConcreteProtocolState.Type { + switch self { + case .InitialState : return ConcreteProtocolInitialState.self + case .Finished : return FinishedState.self } } - return contact + + } + + struct FinishedState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.Finished + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + } } + diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocolSteps.swift new file mode 100644 index 00000000..1550b0c7 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakBindingAndUnbindingProtocol/KeycloakBindingAndUnbindingProtocolSteps.swift @@ -0,0 +1,310 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvCrypto +import ObvEncoder +import ObvTypes +import ObvMetaManager +import JWS +import OlvidUtils + + +// MARK: - Protocol Steps + +extension KeycloakBindingAndUnbindingProtocol { + + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { + case ownedIdentityKeycloakBinding = 0 + case ownedIdentityKeycloakUnbinding = 1 + + func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { + switch self { + case .ownedIdentityKeycloakBinding: + if let step = OwnedIdentityKeycloakBindingFromOwnedIdentityKeycloakBindingMessageStep(from: concreteProtocol, and: receivedMessage) { + return step + } else if let step = OwnedIdentityKeycloakBindingFromPropagateKeycloakBindingMessageStep(from: concreteProtocol, and: receivedMessage) { + return step + } else { + return nil + } + case .ownedIdentityKeycloakUnbinding: + if let step = OwnedIdentityKeycloakUnbindingFromOwnedIdentityKeycloakUnbindingMessageStep(from: concreteProtocol, and: receivedMessage) { + return step + } else if let step = OwnedIdentityKeycloakUnbindingFromPropagateKeycloakUnbindingMessageStep(from: concreteProtocol, and: receivedMessage) { + return step + } else { + return nil + } + } + } + + } + + + // MARK: - OwnedIdentityKeycloakBindingStep + + class OwnedIdentityKeycloakBindingStep: ProtocolStep { + + private let startState: ConcreteProtocolInitialState + private let receivedMessage: ReceivedMessageType + + enum ReceivedMessageType { + case ownedIdentityKeycloakBinding(receivedMessage: OwnedIdentityKeycloakBindingMessage) + case propagateKeycloakBinding(receivedMessage: PropagateKeycloakBindingMessage) + } + + init?(startState: ConcreteProtocolInitialState, receivedMessage: ReceivedMessageType, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + switch receivedMessage { + case .ownedIdentityKeycloakBinding(let receivedMessage): + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + case .propagateKeycloakBinding(let receivedMessage): + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AnyObliviousChannelWithOwnedDevice(ownedIdentity: concreteCryptoProtocol.ownedIdentity), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + eraseReceivedMessagesAfterReachingAFinalState = false + + let keycloakState: ObvKeycloakState + let keycloakUserId: String + let propagationNeeded: Bool + + switch receivedMessage { + case .ownedIdentityKeycloakBinding(let receivedMessage): + keycloakState = receivedMessage.keycloakState + keycloakUserId = receivedMessage.keycloakUserId + propagationNeeded = true + case .propagateKeycloakBinding(let receivedMessage): + keycloakState = receivedMessage.keycloakState + keycloakUserId = receivedMessage.keycloakUserId + propagationNeeded = false + } + + // Bind the owned identity + + try identityDelegate.bindOwnedIdentityToKeycloak( + ownedCryptoIdentity: ownedIdentity, + keycloakUserId: keycloakUserId, + keycloakState: keycloakState, + within: obvContext) + + // Propagate the binding to other owned devices + + if propagationNeeded { + + let otherDeviceUIDs = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) + if !otherDeviceUIDs.isEmpty { + let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(otherDeviceUIDs), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true)) + let concreteMessage = PropagateKeycloakBindingMessage( + coreProtocolMessage: coreMessage, + keycloakUserId: keycloakUserId, + keycloakState: keycloakState) + guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + + } else { + + do { + let notificationDelegate = self.notificationDelegate + let ownedIdentity = self.ownedIdentity + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + ObvProtocolNotification.keycloakSynchronizationRequired(ownedIdentity: ownedIdentity) + .postOnBackgroundQueue(within: notificationDelegate) + } + } catch { + assertionFailure(error.localizedDescription) // In production, continue anyway + } + + } + + // Return the final state + + return FinishedState() + + } + + } + + + // MARK: OwnedIdentityKeycloakBindingStep from OwnedIdentityKeycloakBindingMessage + + final class OwnedIdentityKeycloakBindingFromOwnedIdentityKeycloakBindingMessageStep: OwnedIdentityKeycloakBindingStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: OwnedIdentityKeycloakBindingMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: OwnedIdentityKeycloakBindingMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: startState, + receivedMessage: .ownedIdentityKeycloakBinding(receivedMessage: receivedMessage), + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + + // MARK: OwnedIdentityKeycloakBindingStep from PropagateKeycloakBindingMessage + + final class OwnedIdentityKeycloakBindingFromPropagateKeycloakBindingMessageStep: OwnedIdentityKeycloakBindingStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: PropagateKeycloakBindingMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: PropagateKeycloakBindingMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: startState, + receivedMessage: .propagateKeycloakBinding(receivedMessage: receivedMessage), + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + + // MARK: - OwnedIdentityKeycloakUnbindingStep + + class OwnedIdentityKeycloakUnbindingStep: ProtocolStep { + + private let startState: ConcreteProtocolInitialState + private let receivedMessage: ReceivedMessageType + + enum ReceivedMessageType { + case ownedIdentityKeycloakUnbinding(receivedMessage: OwnedIdentityKeycloakUnbindingMessage) + case propagateKeycloakUnbinding(receivedMessage: PropagateKeycloakUnbindingMessage) + } + + init?(startState: ConcreteProtocolInitialState, receivedMessage: ReceivedMessageType, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + switch receivedMessage { + case .ownedIdentityKeycloakUnbinding(let receivedMessage): + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + case .propagateKeycloakUnbinding(let receivedMessage): + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AnyObliviousChannelWithOwnedDevice(ownedIdentity: concreteCryptoProtocol.ownedIdentity), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + eraseReceivedMessagesAfterReachingAFinalState = false + + let propagationNeeded: Bool + + switch receivedMessage { + case .ownedIdentityKeycloakUnbinding: + propagationNeeded = true + case .propagateKeycloakUnbinding: + propagationNeeded = false + } + + // Unbind the owned identity + + try identityDelegate.unbindOwnedIdentityFromKeycloak( + ownedCryptoIdentity: ownedIdentity, + within: obvContext) + + // Propagate the binding to other owned devices + + if propagationNeeded { + + let otherDeviceUIDs = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) + if !otherDeviceUIDs.isEmpty { + let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(otherDeviceUIDs), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true)) + let concreteMessage = PropagateKeycloakUnbindingMessage(coreProtocolMessage: coreMessage) + guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + + } + + // Return the final state + + return FinishedState() + + } + + } + + + // MARK: OwnedIdentityKeycloakUnbindingStep from OwnedIdentityKeycloakUnbindingMessage + + final class OwnedIdentityKeycloakUnbindingFromOwnedIdentityKeycloakUnbindingMessageStep: OwnedIdentityKeycloakUnbindingStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: OwnedIdentityKeycloakUnbindingMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: OwnedIdentityKeycloakUnbindingMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: startState, + receivedMessage: .ownedIdentityKeycloakUnbinding(receivedMessage: receivedMessage), + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + + // MARK: OwnedIdentityKeycloakUnbindingStep from PropagateKeycloakUnbindingMessage + + final class OwnedIdentityKeycloakUnbindingFromPropagateKeycloakUnbindingMessageStep: OwnedIdentityKeycloakUnbindingStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: PropagateKeycloakUnbindingMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: PropagateKeycloakUnbindingMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: startState, + receivedMessage: .propagateKeycloakUnbinding(receivedMessage: receivedMessage), + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocol.swift similarity index 83% rename from Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocol.swift rename to Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocol.swift index c981d4a0..bc375676 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,7 +29,7 @@ public struct KeycloakContactAdditionProtocol: ConcreteCryptoProtocol { static let logCategory = "KeycloakContactAdditionProtocol" - static let id = CryptoProtocolId.KeycloakContactAddition + static let id = CryptoProtocolId.keycloakContactAddition private static let errorDomain = "KeycloakContactAdditionProtocol" @@ -38,7 +38,7 @@ public struct KeycloakContactAdditionProtocol: ConcreteCryptoProtocol { return NSError(domain: errorDomain, code: 0, userInfo: userInfo) } - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.Finished] + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.finished] let ownedIdentity: ObvCryptoIdentity let currentState: ConcreteProtocolState @@ -65,13 +65,8 @@ public struct KeycloakContactAdditionProtocol: ConcreteCryptoProtocol { return MessageId(rawValue: rawValue) } - static let allStepIds: [ConcreteProtocolStepId] = [ - StepId.VerifyContactAndStartDeviceDiscovery, - StepId.AddContactAndSendRequest, - StepId.ProcessPropagatedContactAddition, - StepId.ProcessReceivedKeycloakInvite, - StepId.AddContactAndSendConfirmation, - StepId.ProcessConfirmation - ] + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolMessages.swift similarity index 90% rename from Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolMessages.swift rename to Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolMessages.swift index 87ac7f9e..e41511f0 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,21 +25,21 @@ import ObvCrypto extension KeycloakContactAdditionProtocol { enum MessageId: Int, ConcreteProtocolMessageId { - case Initial = 0 - case DeviceDiscoveryDone = 1 - case PropagateContactAdditionToOtherDevices = 2 - case InviteKeycloakContact = 3 - case CheckForRevocationServerQuery = 4 - case Confirmation = 5 + case initial = 0 + case deviceDiscoveryDone = 1 + case propagateContactAdditionToOtherDevices = 2 + case inviteKeycloakContact = 3 + case checkForRevocationServerQuery = 4 + case confirmation = 5 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { - case .Initial : return InitialMessage.self - case .DeviceDiscoveryDone : return DeviceDiscoveryDoneMessage.self - case .PropagateContactAdditionToOtherDevices: return PropagateContactAdditionToOtherDevicesMessage.self - case .InviteKeycloakContact : return InviteKeycloakContactMessage.self - case .CheckForRevocationServerQuery : return CheckForRevocationServerQueryMessage.self - case .Confirmation : return ConfirmationMessage.self + case .initial : return InitialMessage.self + case .deviceDiscoveryDone : return DeviceDiscoveryDoneMessage.self + case .propagateContactAdditionToOtherDevices: return PropagateContactAdditionToOtherDevicesMessage.self + case .inviteKeycloakContact : return InviteKeycloakContactMessage.self + case .checkForRevocationServerQuery : return CheckForRevocationServerQueryMessage.self + case .confirmation : return ConfirmationMessage.self } } @@ -49,7 +49,7 @@ extension KeycloakContactAdditionProtocol { struct InitialMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.Initial + let id: ConcreteProtocolMessageId = MessageId.initial let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -81,7 +81,7 @@ extension KeycloakContactAdditionProtocol { struct DeviceDiscoveryDoneMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.DeviceDiscoveryDone + let id: ConcreteProtocolMessageId = MessageId.deviceDiscoveryDone let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -106,7 +106,7 @@ extension KeycloakContactAdditionProtocol { struct PropagateContactAdditionToOtherDevicesMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.PropagateContactAdditionToOtherDevices + let id: ConcreteProtocolMessageId = MessageId.propagateContactAdditionToOtherDevices let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -151,7 +151,7 @@ extension KeycloakContactAdditionProtocol { struct InviteKeycloakContactMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.InviteKeycloakContact + let id: ConcreteProtocolMessageId = MessageId.inviteKeycloakContact let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -191,7 +191,7 @@ extension KeycloakContactAdditionProtocol { struct CheckForRevocationServerQueryMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.CheckForRevocationServerQuery + let id: ConcreteProtocolMessageId = MessageId.checkForRevocationServerQuery let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -217,7 +217,7 @@ extension KeycloakContactAdditionProtocol { struct ConfirmationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.Confirmation + let id: ConcreteProtocolMessageId = MessageId.confirmation let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolStates.swift similarity index 87% rename from Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolStates.swift rename to Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolStates.swift index bc17269b..dc7b08c3 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -28,19 +28,19 @@ extension KeycloakContactAdditionProtocol { enum StateId: Int, ConcreteProtocolStateId { - case InitialState = 0 - case WaitingForDeviceDiscovery = 1 - case WaitingForConfirmation = 2 - case CheckingForRevocation = 3 - case Finished = 4 + case initialState = 0 + case waitingForDeviceDiscovery = 1 + case waitingForConfirmation = 2 + case checkingForRevocation = 3 + case finished = 4 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .InitialState : return ConcreteProtocolInitialState.self - case .WaitingForDeviceDiscovery : return WaitingForDeviceDiscoveryState.self - case .WaitingForConfirmation : return WaitingForConfirmationState.self - case .CheckingForRevocation : return CheckingForRevocationState.self - case .Finished : return FinishedState.self + case .initialState : return ConcreteProtocolInitialState.self + case .waitingForDeviceDiscovery : return WaitingForDeviceDiscoveryState.self + case .waitingForConfirmation : return WaitingForConfirmationState.self + case .checkingForRevocation : return CheckingForRevocationState.self + case .finished : return FinishedState.self } } @@ -48,7 +48,7 @@ extension KeycloakContactAdditionProtocol { struct WaitingForDeviceDiscoveryState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.WaitingForDeviceDiscovery + let id: ConcreteProtocolStateId = StateId.waitingForDeviceDiscovery let contactIdentity: ObvCryptoIdentity let identityCoreDetails: ObvIdentityCoreDetails @@ -81,7 +81,7 @@ extension KeycloakContactAdditionProtocol { struct WaitingForConfirmationState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.WaitingForConfirmation + let id: ConcreteProtocolStateId = StateId.waitingForConfirmation let contactIdentity: ObvCryptoIdentity let keycloakServerURL: URL @@ -105,7 +105,7 @@ extension KeycloakContactAdditionProtocol { struct CheckingForRevocationState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.CheckingForRevocation + let id: ConcreteProtocolStateId = StateId.checkingForRevocation let contactIdentity: ObvCryptoIdentity let identityCoreDetails: ObvIdentityCoreDetails @@ -138,7 +138,7 @@ extension KeycloakContactAdditionProtocol { struct FinishedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Finished + let id: ConcreteProtocolStateId = StateId.finished init(_: ObvEncoded) {} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolSteps.swift similarity index 90% rename from Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolSteps.swift rename to Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolSteps.swift index 1ded007e..5d487e65 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/KeycloakProtocols/KeycloakContactAdditionProtocol/KeycloakContactAdditionProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -32,32 +32,33 @@ import OlvidUtils extension KeycloakContactAdditionProtocol { - enum StepId: Int, ConcreteProtocolStepId { - case VerifyContactAndStartDeviceDiscovery = 0 - case AddContactAndSendRequest = 1 - case ProcessPropagatedContactAddition = 2 - case ProcessReceivedKeycloakInvite = 3 - case AddContactAndSendConfirmation = 4 - case ProcessConfirmation = 5 + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { + + case verifyContactAndStartDeviceDiscovery = 0 + case addContactAndSendRequest = 1 + case processPropagatedContactAddition = 2 + case processReceivedKeycloakInvite = 3 + case addContactAndSendConfirmation = 4 + case processConfirmation = 5 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { - case .VerifyContactAndStartDeviceDiscovery: + case .verifyContactAndStartDeviceDiscovery: let step = VerifyContactAndStartDeviceDiscoveryStep(from: concreteProtocol, and: receivedMessage) return step - case .AddContactAndSendRequest: + case .addContactAndSendRequest: let step = AddContactAndSendRequestStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessPropagatedContactAddition: + case .processPropagatedContactAddition: let step = ProcessPropagatedContactAdditionStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessReceivedKeycloakInvite: + case .processReceivedKeycloakInvite: let step = ProcessReceivedKeycloakInviteStep(from: concreteProtocol, and: receivedMessage) return step - case .AddContactAndSendConfirmation: + case .addContactAndSendConfirmation: let step = AddContactAndSendConfirmationStep(from: concreteProtocol, and: receivedMessage) return step - case .ProcessConfirmation: + case .processConfirmation: let step = ProcessConfirmationStep(from: concreteProtocol, and: receivedMessage) return step } @@ -129,8 +130,8 @@ extension KeycloakContactAdditionProtocol { } guard let _ = LinkBetweenProtocolInstances(parentProtocolInstance: thisProtocolInstance, childProtocolInstanceUid: childProtocolInstanceUid, - expectedChildStateRawId: DeviceDiscoveryForRemoteIdentityProtocol.StateId.DeviceUidsReceived.rawValue, - messageToSendRawId: DeviceDiscoveryForContactIdentityProtocol.MessageId.ChildProtocolReachedExpectedState.rawValue) + expectedChildStateRawId: DeviceDiscoveryForRemoteIdentityProtocol.StateId.deviceUidsReceived.rawValue, + messageToSendRawId: ContactDeviceDiscoveryProtocol.MessageId.childProtocolReachedExpectedState.rawValue) else { os_log("Could not create a link between protocol instances", log: log, type: .fault) return FinishedState() @@ -139,7 +140,7 @@ extension KeycloakContactAdditionProtocol { // To actually create the child protocol instance, we post an appropriate message on the loopback channel let coreMessage = getCoreMessageForOtherLocalProtocol( - otherCryptoProtocolId: .DeviceDiscoveryForRemoteIdentity, + otherCryptoProtocolId: .deviceDiscoveryForRemoteIdentity, otherProtocolInstanceUid: childProtocolInstanceUid) let childProtocolInitialMessage = DeviceDiscoveryForRemoteIdentityProtocol.InitialMessage( coreProtocolMessage: coreMessage, @@ -148,7 +149,7 @@ extension KeycloakContactAdditionProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) return WaitingForDeviceDiscoveryState(contactIdentity: contactIdentity, identityCoreDetails: userCoreDetails, keycloakServerURL: keycloakServerUrl, signedOwnedDetails: signedOwnedDetails.signedUserDetails) @@ -195,11 +196,11 @@ extension KeycloakContactAdditionProtocol { try identityDelegate.addContactIdentity(contactIdentity, with: identityCoreDetails, andTrustOrigin: trustOrigin, forOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) for contactDeviceUid in contactDeviceUids { - try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, within: obvContext) + try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, createdDuringChannelCreation: false, within: obvContext) } } else { contactCreated = false - try identityDelegate.addTrustOriginIfTrustWouldBeIncreased(trustOrigin, toContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) + try identityDelegate.addTrustOriginIfTrustWouldBeIncreasedAndSetContactAsOneToOne(trustOrigin, toContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) // No need to add devices, they should be in sync already } @@ -213,7 +214,7 @@ extension KeycloakContactAdditionProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Send an "invitation" to all contact devices @@ -221,7 +222,7 @@ extension KeycloakContactAdditionProtocol { let coreMessage = self.getCoreMessage(for: .AsymmetricChannel(to: contactIdentity, remoteDeviceUids: Array(contactDeviceUids), fromOwnedIdentity: ownedIdentity)) let concreteMessage = InviteKeycloakContactMessage(coreProtocolMessage: coreMessage, contactIdentity: ownedIdentity, signedContactDetails: signedOwnedDetails, contactDeviceUids: Array(ownedDeviceUids), keycloakServerURL: keycloakServerURL) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) if contactCreated { return WaitingForConfirmationState(contactIdentity: contactIdentity, keycloakServerUrl: keycloakServerURL) @@ -260,10 +261,10 @@ extension KeycloakContactAdditionProtocol { try identityDelegate.addContactIdentity(contactIdentity, with: identityCoreDetails, andTrustOrigin: trustOrigin, forOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) for contactDeviceUid in contactDeviceUids { - try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, within: obvContext) + try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, createdDuringChannelCreation: false, within: obvContext) } } else { - try identityDelegate.addTrustOriginIfTrustWouldBeIncreased(trustOrigin, toContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) + try identityDelegate.addTrustOriginIfTrustWouldBeIncreasedAndSetContactAsOneToOne(trustOrigin, toContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) // No need to add devices, they should be in sync already } @@ -306,7 +307,7 @@ extension KeycloakContactAdditionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: self.prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: self.prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: self.prng, within: obvContext) return FinishedState() } @@ -316,7 +317,7 @@ extension KeycloakContactAdditionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: .checkKeycloakRevocation(keycloakServerUrl: keycloakServerURL, signedContactDetails: signedContactDetails)) else { throw Self.makeError(message: "Could not generate ObvChannelServerQueryMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: self.prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: self.prng, within: obvContext) return CheckingForRevocationState(contactIdentity: contactIdentity, identityCoreDetails: userCoreDetails, contactDeviceUids: contactDeviceUids, keycloakServerURL: keycloakServerURL) } @@ -353,7 +354,7 @@ extension KeycloakContactAdditionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: self.prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: self.prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: self.prng, within: obvContext) return FinishedState() } @@ -366,10 +367,10 @@ extension KeycloakContactAdditionProtocol { try identityDelegate.addContactIdentity(contactIdentity, with: identityCoreDetails, andTrustOrigin: trustOrigin, forOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) for contactDeviceUid in contactDeviceUids { - try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, within: obvContext) + try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, createdDuringChannelCreation: false, within: obvContext) } } else { - try identityDelegate.addTrustOriginIfTrustWouldBeIncreased(trustOrigin, toContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) + try identityDelegate.addTrustOriginIfTrustWouldBeIncreasedAndSetContactAsOneToOne(trustOrigin, toContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) // No need to add devices, they should be in sync already } @@ -378,7 +379,7 @@ extension KeycloakContactAdditionProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: self.prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: self.prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: self.prng, within: obvContext) return FinishedState() } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocol.swift index 011abc5d..5b2ebc4d 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,13 +27,13 @@ public struct OneToOneContactInvitationProtocol: ConcreteCryptoProtocol { static let logCategory = "OneToOneContactInvitationProtocol" - static let id = CryptoProtocolId.OneToOneContactInvitation + static let id = CryptoProtocolId.oneToOneContactInvitation private static let errorDomain = "OneToOneContactInvitationProtocol" static func makeError(message: String) -> Error { NSError(domain: errorDomain, code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.Finished, StateId.Cancelled] + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.finished, StateId.cancelled] let ownedIdentity: ObvCryptoIdentity let currentState: ConcreteProtocolState diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocolMessages.swift index ef1959b8..b7a8440b 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,35 +26,35 @@ extension OneToOneContactInvitationProtocol { enum MessageId: Int, ConcreteProtocolMessageId { - case Initial = 0 - case OneToOneInvitation = 1 - case DialogInvitationSent = 2 - case PropagateOneToOneInvitation = 3 - case DialogAcceptOneToOneInvitation = 4 - case OneToOneResponse = 5 - case PropagateOneToOneResponse = 6 - case Abort = 7 - case ContactUpgradedToOneToOne = 8 - case PropagateAbort = 9 - case InitialOneToOneStatusSyncRequest = 10 - case OneToOneStatusSyncRequest = 11 - case DialogInformative = 100 + case initial = 0 + case oneToOneInvitation = 1 + case dialogInvitationSent = 2 + case propagateOneToOneInvitation = 3 + case dialogAcceptOneToOneInvitation = 4 + case oneToOneResponse = 5 + case propagateOneToOneResponse = 6 + case abort = 7 + case contactUpgradedToOneToOne = 8 + case propagateAbort = 9 + case initialOneToOneStatusSyncRequest = 10 + case oneToOneStatusSyncRequest = 11 + case dialogInformative = 100 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { - case .Initial : return InitialMessage.self - case .OneToOneInvitation : return OneToOneInvitationMessage.self - case .DialogInvitationSent : return DialogInvitationSentMessage.self - case .PropagateOneToOneInvitation : return PropagateOneToOneInvitationMessage.self - case .DialogAcceptOneToOneInvitation : return DialogAcceptOneToOneInvitationMessage.self - case .OneToOneResponse : return OneToOneResponseMessage.self - case .PropagateOneToOneResponse : return PropagateOneToOneResponseMessage.self - case .Abort : return AbortMessage.self - case .ContactUpgradedToOneToOne : return ContactUpgradedToOneToOneMessage.self - case .PropagateAbort : return PropagateAbortMessage.self - case .InitialOneToOneStatusSyncRequest : return InitialOneToOneStatusSyncRequestMessage.self - case .OneToOneStatusSyncRequest : return OneToOneStatusSyncRequestMessage.self - case .DialogInformative : return DialogInformativeMessage.self + case .initial : return InitialMessage.self + case .oneToOneInvitation : return OneToOneInvitationMessage.self + case .dialogInvitationSent : return DialogInvitationSentMessage.self + case .propagateOneToOneInvitation : return PropagateOneToOneInvitationMessage.self + case .dialogAcceptOneToOneInvitation : return DialogAcceptOneToOneInvitationMessage.self + case .oneToOneResponse : return OneToOneResponseMessage.self + case .propagateOneToOneResponse : return PropagateOneToOneResponseMessage.self + case .abort : return AbortMessage.self + case .contactUpgradedToOneToOne : return ContactUpgradedToOneToOneMessage.self + case .propagateAbort : return PropagateAbortMessage.self + case .initialOneToOneStatusSyncRequest : return InitialOneToOneStatusSyncRequestMessage.self + case .oneToOneStatusSyncRequest : return OneToOneStatusSyncRequestMessage.self + case .dialogInformative : return DialogInformativeMessage.self } } @@ -65,7 +65,7 @@ extension OneToOneContactInvitationProtocol { struct InitialMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.Initial + let id: ConcreteProtocolMessageId = MessageId.initial let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -95,7 +95,7 @@ extension OneToOneContactInvitationProtocol { struct DialogInvitationSentMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.DialogInvitationSent + let id: ConcreteProtocolMessageId = MessageId.dialogInvitationSent let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -130,7 +130,7 @@ extension OneToOneContactInvitationProtocol { struct OneToOneInvitationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.OneToOneInvitation + let id: ConcreteProtocolMessageId = MessageId.oneToOneInvitation let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -158,7 +158,7 @@ extension OneToOneContactInvitationProtocol { struct PropagateOneToOneInvitationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.PropagateOneToOneInvitation + let id: ConcreteProtocolMessageId = MessageId.propagateOneToOneInvitation let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -188,7 +188,7 @@ extension OneToOneContactInvitationProtocol { struct DialogAcceptOneToOneInvitationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.DialogAcceptOneToOneInvitation + let id: ConcreteProtocolMessageId = MessageId.dialogAcceptOneToOneInvitation let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -230,7 +230,7 @@ extension OneToOneContactInvitationProtocol { struct OneToOneResponseMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.OneToOneResponse + let id: ConcreteProtocolMessageId = MessageId.oneToOneResponse let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -262,7 +262,7 @@ extension OneToOneContactInvitationProtocol { struct PropagateOneToOneResponseMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.PropagateOneToOneResponse + let id: ConcreteProtocolMessageId = MessageId.propagateOneToOneResponse let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -294,7 +294,7 @@ extension OneToOneContactInvitationProtocol { struct AbortMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.Abort + let id: ConcreteProtocolMessageId = MessageId.abort let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -320,7 +320,7 @@ extension OneToOneContactInvitationProtocol { struct ContactUpgradedToOneToOneMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.ContactUpgradedToOneToOne + let id: ConcreteProtocolMessageId = MessageId.contactUpgradedToOneToOne let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -347,7 +347,7 @@ extension OneToOneContactInvitationProtocol { struct DialogInformativeMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.DialogInformative + let id: ConcreteProtocolMessageId = MessageId.dialogInformative let coreProtocolMessage: CoreProtocolMessage var encodedInputs: [ObvEncoded] { return [] } @@ -369,7 +369,7 @@ extension OneToOneContactInvitationProtocol { struct PropagateAbortMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.PropagateAbort + let id: ConcreteProtocolMessageId = MessageId.propagateAbort let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -395,7 +395,7 @@ extension OneToOneContactInvitationProtocol { struct InitialOneToOneStatusSyncRequestMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.InitialOneToOneStatusSyncRequest + let id: ConcreteProtocolMessageId = MessageId.initialOneToOneStatusSyncRequest let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -429,7 +429,7 @@ extension OneToOneContactInvitationProtocol { struct OneToOneStatusSyncRequestMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.OneToOneStatusSyncRequest + let id: ConcreteProtocolMessageId = MessageId.oneToOneStatusSyncRequest let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocolStates.swift index 741e2c59..051b9a3f 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,19 +26,19 @@ extension OneToOneContactInvitationProtocol { enum StateId: Int, ConcreteProtocolStateId { - case Initial = 0 - case InvitationSent = 1 - case InvitationReceived = 2 - case Finished = 3 - case Cancelled = 4 + case initial = 0 + case invitationSent = 1 + case invitationReceived = 2 + case finished = 3 + case cancelled = 4 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .Initial : return ConcreteProtocolInitialState.self - case .InvitationSent : return InvitationSentState.self - case .InvitationReceived : return InvitationReceivedState.self - case .Finished : return FinishedState.self - case .Cancelled : return CancelledState.self + case .initial : return ConcreteProtocolInitialState.self + case .invitationSent : return InvitationSentState.self + case .invitationReceived : return InvitationReceivedState.self + case .finished : return FinishedState.self + case .cancelled : return CancelledState.self } } @@ -47,7 +47,7 @@ extension OneToOneContactInvitationProtocol { struct InvitationSentState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.InvitationSent + let id: ConcreteProtocolStateId = StateId.invitationSent let contactIdentity: ObvCryptoIdentity let dialogUuid: UUID @@ -72,7 +72,7 @@ extension OneToOneContactInvitationProtocol { struct InvitationReceivedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.InvitationReceived + let id: ConcreteProtocolStateId = StateId.invitationReceived let contactIdentity: ObvCryptoIdentity let dialogUuid: UUID @@ -97,7 +97,7 @@ extension OneToOneContactInvitationProtocol { struct FinishedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Finished + let id: ConcreteProtocolStateId = StateId.finished init(_: ObvEncoded) {} @@ -110,7 +110,7 @@ extension OneToOneContactInvitationProtocol { struct CancelledState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Cancelled + let id: ConcreteProtocolStateId = StateId.cancelled init(_: ObvEncoded) {} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocolSteps.swift index 9c31ed81..2a59244e 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OneToOneContactInvitationProtocol/OneToOneContactInvitationProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,50 +29,50 @@ extension OneToOneContactInvitationProtocol { enum StepId: Int, ConcreteProtocolStepId, CaseIterable { - case AliceInvitesBob = 0 - case BobProcessesAlicesInvitation = 1 - case BobRespondsToAlicesInvitation = 2 - case AliceReceivesBobsResponse = 3 - case AliceAbortsHerInvitationToBob = 4 - case BobProcessesAbort = 5 - case ProcessContactUpgradedToOneToOneWhileInInvitationSentState = 6 - case ProcessContactUpgradedToOneToOneWhileInInvitationReceivedState = 7 - case ProcessPropagatedOneToOneInvitationMessage = 8 - case ProcessPropagatedOneToOneResponseMessage = 9 - case ProcessPropagatedAbortMessage = 10 - case AliceProcessesUnexpectedBobResponse = 11 - case AliceSendsOneToOneStatusSyncRequestMessages = 12 - case BobProcessesSyncRequest = 13 + case aliceInvitesBob = 0 + case bobProcessesAlicesInvitation = 1 + case bobRespondsToAlicesInvitation = 2 + case aliceReceivesBobsResponse = 3 + case aliceAbortsHerInvitationToBob = 4 + case bobProcessesAbort = 5 + case processContactUpgradedToOneToOneWhileInInvitationSentState = 6 + case processContactUpgradedToOneToOneWhileInInvitationReceivedState = 7 + case processPropagatedOneToOneInvitationMessage = 8 + case processPropagatedOneToOneResponseMessage = 9 + case processPropagatedAbortMessage = 10 + case aliceProcessesUnexpectedBobResponse = 11 + case aliceSendsOneToOneStatusSyncRequestMessages = 12 + case bobProcessesSyncRequest = 13 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { - case .AliceInvitesBob: + case .aliceInvitesBob: return AliceInvitesBobStep(from: concreteProtocol, and: receivedMessage) - case .BobProcessesAlicesInvitation: + case .bobProcessesAlicesInvitation: return BobProcessesAlicesInvitationStep(from: concreteProtocol, and: receivedMessage) - case .BobRespondsToAlicesInvitation: + case .bobRespondsToAlicesInvitation: return BobRespondsToAlicesInvitationStep(from: concreteProtocol, and: receivedMessage) - case .AliceReceivesBobsResponse: + case .aliceReceivesBobsResponse: return AliceReceivesBobsResponseStep(from: concreteProtocol, and: receivedMessage) - case .AliceAbortsHerInvitationToBob: + case .aliceAbortsHerInvitationToBob: return AliceAbortsHerInvitationToBobStep(from: concreteProtocol, and: receivedMessage) - case .BobProcessesAbort: + case .bobProcessesAbort: return BobProcessesAbortStep(from: concreteProtocol, and: receivedMessage) - case .ProcessContactUpgradedToOneToOneWhileInInvitationSentState: + case .processContactUpgradedToOneToOneWhileInInvitationSentState: return ProcessContactUpgradedToOneToOneWhileInInvitationSentStateStep(from: concreteProtocol, and: receivedMessage) - case .ProcessContactUpgradedToOneToOneWhileInInvitationReceivedState: + case .processContactUpgradedToOneToOneWhileInInvitationReceivedState: return ProcessContactUpgradedToOneToOneWhileInInvitationReceivedStateStep(from: concreteProtocol, and: receivedMessage) - case .ProcessPropagatedOneToOneInvitationMessage: + case .processPropagatedOneToOneInvitationMessage: return ProcessPropagatedOneToOneInvitationMessageStep(from: concreteProtocol, and: receivedMessage) - case .ProcessPropagatedOneToOneResponseMessage: + case .processPropagatedOneToOneResponseMessage: return ProcessPropagatedOneToOneResponseMessageStep(from: concreteProtocol, and: receivedMessage) - case .ProcessPropagatedAbortMessage: + case .processPropagatedAbortMessage: return ProcessPropagatedAbortMessageStep(from: concreteProtocol, and: receivedMessage) - case .AliceProcessesUnexpectedBobResponse: + case .aliceProcessesUnexpectedBobResponse: return AliceProcessesUnexpectedBobResponseStep(from: concreteProtocol, and: receivedMessage) - case .AliceSendsOneToOneStatusSyncRequestMessages: + case .aliceSendsOneToOneStatusSyncRequestMessages: return AliceSendsOneToOneStatusSyncRequestMessagesStep(from: concreteProtocol, and: receivedMessage) - case .BobProcessesSyncRequest: + case .bobProcessesSyncRequest: return BobProcessesSyncRequestStep(from: concreteProtocol, and: receivedMessage) } } @@ -107,10 +107,11 @@ extension OneToOneContactInvitationProtocol { // If Bob is already a OneToOne contact, there is nothing to do in theory. Yet, we decide to send the protocol message anyway. // Create an ObvDialog informing Alice that her request has been taken into account. This dialog also allows Alice to abort this - // Protocol. - + // Protocol. We only do this if Bob is not already oneToOne (as aborting the protocol using the dialog always reset the contact to + // non-oneToOne). + let dialogUuid = UUID() - do { + if try !identityDelegate.isOneToOneContact(ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, within: obvContext) { let dialogType = ObvChannelDialogToSendType.oneToOneInvitationSent(contact: contactIdentity, ownedIdentity: ownedIdentity) let channelType = ObvChannelSendChannelType.UserInterface(uuid: dialogUuid, ownedIdentity: ownedIdentity, dialogType: dialogType) let coreMessage = getCoreMessage(for: channelType) @@ -118,7 +119,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Send a OneToOne invitation to Bob @@ -130,7 +131,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ProtocolMessageToSend for OneToOneInvitationMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Create an entry in the ProtocolInstanceWaitingForContactUpgradeToOneToOne. This makes it possible to accept immediately in case @@ -144,7 +145,7 @@ extension OneToOneContactInvitationProtocol { guard let _ = ProtocolInstanceWaitingForContactUpgradeToOneToOne(ownedCryptoIdentity: ownedIdentity, contactCryptoIdentity: contactIdentity, - messageToSendRawId: MessageId.ContactUpgradedToOneToOne.rawValue, + messageToSendRawId: MessageId.contactUpgradedToOneToOne.rawValue, protocolInstance: thisProtocolInstance, delegateManager: delegateManager) else { @@ -163,7 +164,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not propagate OneToOne invitation to other devices.", log: log, type: .fault) assertionFailure() @@ -218,7 +219,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ProtocolMessageToSend for OneToOneInvitationMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } return FinishedState() @@ -234,7 +235,7 @@ extension OneToOneContactInvitationProtocol { let appropriateWaitingInstances = waitingInstances .compactMap({ $0.protocolInstance }) .filter({ $0.cryptoProtocolId == self.cryptoProtocolId }) - .filter({ $0.currentStateRawId == StateId.InvitationSent.rawValue }) + .filter({ $0.currentStateRawId == StateId.invitationSent.rawValue }) guard appropriateWaitingInstances.isEmpty else { // If we reach this point, we can indeed auto-accept the invitation @@ -257,7 +258,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ProtocolMessageToSend for OneToOneInvitationMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // We can finish this protocol instance @@ -279,7 +280,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // If Bob decides to send an invitation to Alice (e.g., because he did not see Alice's invitation), we want to properly finish @@ -293,7 +294,7 @@ extension OneToOneContactInvitationProtocol { guard let _ = ProtocolInstanceWaitingForContactUpgradeToOneToOne(ownedCryptoIdentity: ownedIdentity, contactCryptoIdentity: contactIdentity, - messageToSendRawId: MessageId.ContactUpgradedToOneToOne.rawValue, + messageToSendRawId: MessageId.contactUpgradedToOneToOne.rawValue, protocolInstance: thisProtocolInstance, delegateManager: delegateManager) else { @@ -344,7 +345,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) return FinishedState() } @@ -358,7 +359,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ProtocolMessageToSend for OneToOneInvitationMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Upgrade/downgrade Alice's OneToOne status @@ -377,7 +378,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Propagate the answer to the other owned devices of Bob @@ -391,7 +392,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not propagate accept/reject invitation to other devices.", log: log, type: .fault) assertionFailure() @@ -461,7 +462,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Finish the protocol. Note that the ProtocolInstanceWaitingForContactUpgradeToOneToOne instance created in the @@ -507,7 +508,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) return FinishedState() } @@ -528,7 +529,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ProtocolMessageToSend for AbortMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Downgrade Bob's OneToOne status @@ -547,7 +548,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Propagate the abort to the other owned devices of Alice @@ -561,7 +562,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not propagate abort OneToOne invitation to other devices.", log: log, type: .fault) assertionFailure() @@ -628,7 +629,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Finish the protocol @@ -681,7 +682,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Finish the protocol @@ -734,7 +735,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Finish the protocol @@ -786,7 +787,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Create an entry in the ProtocolInstanceWaitingForContactUpgradeToOneToOne. This makes it possible to accept immediately in case @@ -800,7 +801,7 @@ extension OneToOneContactInvitationProtocol { guard let _ = ProtocolInstanceWaitingForContactUpgradeToOneToOne(ownedCryptoIdentity: ownedIdentity, contactCryptoIdentity: contactIdentity, - messageToSendRawId: MessageId.ContactUpgradedToOneToOne.rawValue, + messageToSendRawId: MessageId.contactUpgradedToOneToOne.rawValue, protocolInstance: thisProtocolInstance, delegateManager: delegateManager) else { @@ -854,7 +855,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Finish this protocol. Note that the ProtocolInstanceWaitingForContactUpgradeToOneToOne instance created in the @@ -904,7 +905,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Finish the protocol. Note that the ProtocolInstanceWaitingForContactUpgradeToOneToOne instance created in the @@ -964,7 +965,7 @@ extension OneToOneContactInvitationProtocol { within: obvContext) let initialMessageToSend = try delegateManager.protocolStarterDelegate.getInitialMessageForDowngradingOneToOneContact(ownedIdentity: ownedIdentity, contactIdentity: remoteIdentity) - _ = try channelDelegate.post(initialMessageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(initialMessageToSend, randomizedWith: prng, within: obvContext) return FinishedState() @@ -1012,7 +1013,7 @@ extension OneToOneContactInvitationProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ProtocolMessageToSend for OneToOneStatusSyncRequestMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not sync OneToOne status with one of the contacts: %{public}@", log: log, type: .error, error.localizedDescription) assertionFailure() @@ -1089,7 +1090,7 @@ extension OneToOneContactInvitationProtocol { let appropriateWaitingInstances = waitingInstances .compactMap({ $0.protocolInstance }) .filter({ $0.cryptoProtocolId == self.cryptoProtocolId }) - .filter({ $0.currentStateRawId == StateId.InvitationSent.rawValue }) + .filter({ $0.currentStateRawId == StateId.invitationSent.rawValue }) guard appropriateWaitingInstances.isEmpty else { // Upgrade Alice's OneToOne status. When the context is saved, a notification will be send that the trust level was increased. @@ -1115,13 +1116,13 @@ extension OneToOneContactInvitationProtocol { let newProtocolInstanceUid = UID.gen(with: prng) let coreMessage = CoreProtocolMessage(channelType: .AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: Set([contactIdentity]), fromOwnedIdentity: ownedIdentity), - cryptoProtocolId: .OneToOneContactInvitation, + cryptoProtocolId: .oneToOneContactInvitation, protocolInstanceUid: newProtocolInstanceUid) let concreteProtocolMessage = OneToOneStatusSyncRequestMessage(coreProtocolMessage: coreMessage, aliceConsidersBobAsOneToOne: false) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw Self.makeError(message: "Could not generate ProtocolMessageToSend for OneToOneStatusSyncRequestMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) // Finish the protocol diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocol.swift new file mode 100644 index 00000000..292a2101 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocol.swift @@ -0,0 +1,65 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvCrypto +import ObvTypes +import ObvEncoder +import OlvidUtils + + +public struct OwnedDeviceManagementProtocol: ConcreteCryptoProtocol { + + static let logCategory = "OwnedDeviceManagementProtocol" + + static let id = CryptoProtocolId.ownedDeviceManagement + + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.cancelled, StateId.serverQueryProcessed] + + let ownedIdentity: ObvCryptoIdentity + let currentState: ConcreteProtocolState + + let delegateManager: ObvProtocolDelegateManager + let obvContext: ObvContext + let prng: PRNGService + let instanceUid: UID + + init(instanceUid: UID, currentState: ConcreteProtocolState, ownedCryptoIdentity: ObvCryptoIdentity, delegateManager: ObvProtocolDelegateManager, prng: PRNGService, within obvContext: ObvContext) { + self.currentState = currentState + self.ownedIdentity = ownedCryptoIdentity + self.delegateManager = delegateManager + self.obvContext = obvContext + self.prng = prng + self.instanceUid = instanceUid + } + + static func stateId(fromRawValue rawValue: Int) -> ConcreteProtocolStateId? { + return StateId(rawValue: rawValue) + } + + static func messageId(fromRawValue rawValue: Int) -> ConcreteProtocolMessageId? { + return MessageId(rawValue: rawValue) + } + + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } + +} + diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocolMessages.swift new file mode 100644 index 00000000..90dc1b61 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocolMessages.swift @@ -0,0 +1,167 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvCrypto +import ObvMetaManager + +// MARK: - Protocol Messages + +extension OwnedDeviceManagementProtocol { + + enum MessageId: Int, ConcreteProtocolMessageId { + + case initiateOwnedDeviceManagement = 0 + case setOwnedDeviceNameServerQuery = 1 + case deactivateOwnedDeviceServerQuery = 2 + case setUnexpiringOwnedDeviceServerQuery = 3 + + var concreteProtocolMessageType: ConcreteProtocolMessage.Type { + switch self { + case .initiateOwnedDeviceManagement : return InitiateOwnedDeviceManagementMessage.self + case .setOwnedDeviceNameServerQuery : return SetOwnedDeviceNameServerQueryMessage.self + case .deactivateOwnedDeviceServerQuery : return DeactivateOwnedDeviceServerQueryMessage.self + case .setUnexpiringOwnedDeviceServerQuery: return SetUnexpiringOwnedDeviceServerQueryMessage.self + } + } + + } + + + // MARK: - InitiateOwnedDeviceManagementMessage + + struct InitiateOwnedDeviceManagementMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.initiateOwnedDeviceManagement + let coreProtocolMessage: CoreProtocolMessage + + let request: ObvOwnedDeviceManagementRequest + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage, request: ObvOwnedDeviceManagementRequest) { + self.coreProtocolMessage = coreProtocolMessage + self.request = request + } + + var encodedInputs: [ObvEncoded] { + return [request.obvEncode()] + } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + request = try message.encodedInputs.obvDecode() + } + + } + + + struct SetOwnedDeviceNameServerQueryMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.setOwnedDeviceNameServerQuery + let coreProtocolMessage: CoreProtocolMessage + + let success: Bool // Only meaningfull when the message is sent to this protocol + + var encodedInputs: [ObvEncoded] { return [] } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + let encodedElements = message.encodedInputs + guard encodedElements.count == 1 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded elements") } + let encodedSuccess = encodedElements[0] + guard let success = Bool(encodedSuccess) else { + assertionFailure() + throw Self.makeError(message: "Failed to decode") + } + self.success = success + } + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + self.success = true + } + } + + + struct DeactivateOwnedDeviceServerQueryMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.deactivateOwnedDeviceServerQuery + let coreProtocolMessage: CoreProtocolMessage + + let success: Bool // Only meaningfull when the message is sent to this protocol + + var encodedInputs: [ObvEncoded] { return [] } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + let encodedElements = message.encodedInputs + guard encodedElements.count == 1 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded elements") } + let encodedSuccess = encodedElements[0] + guard let success = Bool(encodedSuccess) else { + assertionFailure() + throw Self.makeError(message: "Failed to decode") + } + self.success = success + } + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + self.success = true + } + } + + + struct SetUnexpiringOwnedDeviceServerQueryMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.setUnexpiringOwnedDeviceServerQuery + let coreProtocolMessage: CoreProtocolMessage + + let success: Bool // Only meaningfull when the message is sent to this protocol + + var encodedInputs: [ObvEncoded] { return [] } + + // Initializers + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + let encodedElements = message.encodedInputs + guard encodedElements.count == 1 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded elements") } + let encodedSuccess = encodedElements[0] + guard let success = Bool(encodedSuccess) else { + assertionFailure() + throw Self.makeError(message: "Failed to decode") + } + self.success = success + } + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + self.success = true + } + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocolStates.swift new file mode 100644 index 00000000..d060e48a --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocolStates.swift @@ -0,0 +1,93 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvTypes +import ObvCrypto +import ObvMetaManager + + +// MARK: - Protocol States + +extension OwnedDeviceManagementProtocol { + + enum StateId: Int, ConcreteProtocolStateId { + + case initial = 0 + case waitingForServerQueryResult = 1 + case serverQueryProcessed = 2 // Final + case cancelled = 100 // Final + + var concreteProtocolStateType: ConcreteProtocolState.Type { + switch self { + case .initial : return ConcreteProtocolInitialState.self + case .waitingForServerQueryResult : return WaitingForServerQueryResultState.self + case .serverQueryProcessed : return ServerQueryProcessedState.self + case .cancelled : return CancelledState.self + } + } + } + + + // MARK: - WaitingForServerQueryResultState + + struct WaitingForServerQueryResultState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.waitingForServerQueryResult + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + + } + + + // MARK: - ServerQueryProcessedState + + struct ServerQueryProcessedState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.serverQueryProcessed + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + + } + + + // MARK: - CancelledState + + struct CancelledState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.cancelled + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocolSteps.swift new file mode 100644 index 00000000..9ce73699 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedDeviceManagementProtocol/OwnedDeviceManagementProtocolSteps.swift @@ -0,0 +1,295 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation + + +import Foundation +import os.log +import ObvTypes +import ObvMetaManager +import ObvCrypto +import OlvidUtils +import ObvEncoder + +// MARK: - Protocol Steps + +extension OwnedDeviceManagementProtocol { + + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { + + case sendRequest = 0 + case processSetOwnedDeviceNameServerQuery = 1 + case processDeactivateOwnedDeviceServerQuery = 2 + case processSetUnexpiringOwnedDeviceServerQuery = 3 + + func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { + switch self { + + case .sendRequest: + let step = SendRequestStep(from: concreteProtocol, and: receivedMessage) + return step + + case .processSetOwnedDeviceNameServerQuery: + let step = ProcessSetOwnedDeviceNameServerQueryStep(from: concreteProtocol, and: receivedMessage) + return step + + case .processDeactivateOwnedDeviceServerQuery: + let step = ProcessDeactivateOwnedDeviceServerQueryStep(from: concreteProtocol, and: receivedMessage) + return step + + case .processSetUnexpiringOwnedDeviceServerQuery: + let step = ProcessSetUnexpiringOwnedDeviceServerQueryStep(from: concreteProtocol, and: receivedMessage) + return step + + } + } + } + + // MARK: - SendRequestStep + + final class SendRequestStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: InitiateOwnedDeviceManagementMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: InitiateOwnedDeviceManagementMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let request = receivedMessage.request + + switch request { + + case .setOwnedDeviceName(let ownedDeviceUID, let ownedDeviceName): + + // Check whether the device is the current device or a remote device of the owned identity + + let isCurrentDevice: Bool + if try ownedDeviceUID == identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) { + isCurrentDevice = true + } else if try identityDelegate.isDevice(withUid: ownedDeviceUID, aRemoteDeviceOfOwnedIdentity: ownedIdentity, within: obvContext) { + isCurrentDevice = false + } else { + assertionFailure() + return CancelledState() + } + + // Encrypt the device name + + let encryptedOwnedDeviceName = DeviceNameUtils.encrypt(deviceName: ownedDeviceName, for: ownedIdentity, using: prng) + + // Send the server query + + let coreMessage = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concreteMessage = SetOwnedDeviceNameServerQueryMessage(coreProtocolMessage: coreMessage) + let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.setOwnedDeviceName( + ownedDeviceUID: ownedDeviceUID, + encryptedOwnedDeviceName: encryptedOwnedDeviceName, + isCurrentDevice: isCurrentDevice) + guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: concreteCryptoProtocol.prng, within: obvContext) + + // Return the new state + + return WaitingForServerQueryResultState() + + case .deactivateOtherOwnedDevice(let ownedDeviceUID): + + // Make sure we are not deactivating the current device as deactivating the current device shall be done in the OwnedIdentityDeletionProtocol. + + guard try ownedDeviceUID != identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) else { + assertionFailure("We are trying to deactivate the current device, which should be done in the OwnedIdentityDeletionProtocol") + return CancelledState() + } + + // Check whether the device is the current device or a remote device of the owned identity + + let isCurrentDevice: Bool + if try ownedDeviceUID == identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) { + isCurrentDevice = true + } else if try identityDelegate.isDevice(withUid: ownedDeviceUID, aRemoteDeviceOfOwnedIdentity: ownedIdentity, within: obvContext) { + isCurrentDevice = false + } else { + return CancelledState() + } + + // Send the server query + + let coreMessage = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concreteMessage = DeactivateOwnedDeviceServerQueryMessage(coreProtocolMessage: coreMessage) + let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.deactivateOwnedDevice( + ownedDeviceUID: ownedDeviceUID, + isCurrentDevice: isCurrentDevice) + guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: concreteCryptoProtocol.prng, within: obvContext) + + // Return the new state + + return WaitingForServerQueryResultState() + + case .setUnexpiringDevice(let ownedDeviceUID): + + // Check whether the device is the current device or a remote device of the owned identity + + // Send the server query + + let coreMessage = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concreteMessage = SetUnexpiringOwnedDeviceServerQueryMessage(coreProtocolMessage: coreMessage) + let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.setUnexpiringOwnedDevice(ownedDeviceUID: ownedDeviceUID) + guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: concreteCryptoProtocol.prng, within: obvContext) + + return WaitingForServerQueryResultState() + + } + + + } + + } + + + // MARK: - ProcessSetOwnedDeviceNameServerQueryStep + + final class ProcessSetOwnedDeviceNameServerQueryStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: WaitingForServerQueryResultState + let receivedMessage: SetOwnedDeviceNameServerQueryMessage + + init?(startState: WaitingForServerQueryResultState, receivedMessage: SetOwnedDeviceNameServerQueryMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + // No need to set the device name locally, it will be updated during the following owned device discovery + + let messageToSend = try protocolStarterDelegate.getInitiateOwnedDeviceDiscoveryMessage(ownedCryptoIdentity: ownedIdentity) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: concreteCryptoProtocol.prng, within: obvContext) + + // Return the new state + + return ServerQueryProcessedState() + + } + + } + + + // MARK: - ProcessDeactivateOwnedDeviceServerQueryStep + + final class ProcessDeactivateOwnedDeviceServerQueryStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: WaitingForServerQueryResultState + let receivedMessage: DeactivateOwnedDeviceServerQueryMessage + + init?(startState: WaitingForServerQueryResultState, receivedMessage: DeactivateOwnedDeviceServerQueryMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + // Perform an owned device discovery + + do { + let messageToSend = try protocolStarterDelegate.getInitiateOwnedDeviceDiscoveryMessage(ownedCryptoIdentity: ownedIdentity) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: concreteCryptoProtocol.prng, within: obvContext) + } + + // Since we deactivated another owned device, we want to notify all our contacts, so that they perform a contact discovery + + let contactIdentites = try identityDelegate.getContactsOfOwnedIdentity(ownedIdentity, within: obvContext) + if !contactIdentites.isEmpty { + let channel = ObvChannelSendChannelType.AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: contactIdentites, fromOwnedIdentity: ownedIdentity) + let coreMessage = getCoreMessageForOtherProtocol(for: channel, otherCryptoProtocolId: .contactManagement, otherProtocolInstanceUid: UID.gen(with: prng)) + let concreteMessage = ContactManagementProtocol.PerformContactDeviceDiscoveryMessage(coreProtocolMessage: coreMessage) + guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { + assertionFailure() + throw Self.makeError(message: "Implementation error") + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + + // Return the new state + + return ServerQueryProcessedState() + + } + + } + + + // MARK: - ProcessSetUnexpiringOwnedDeviceServerQueryStep + + final class ProcessSetUnexpiringOwnedDeviceServerQueryStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: WaitingForServerQueryResultState + let receivedMessage: SetUnexpiringOwnedDeviceServerQueryMessage + + init?(startState: WaitingForServerQueryResultState, receivedMessage: SetUnexpiringOwnedDeviceServerQueryMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + + + let messageToSend = try protocolStarterDelegate.getInitiateOwnedDeviceDiscoveryMessage(ownedCryptoIdentity: ownedIdentity) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: concreteCryptoProtocol.prng, within: obvContext) + + // Return the new state + + return ServerQueryProcessedState() + + } + + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocol.swift index 01aeb32c..0054f759 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocolMessages.swift index 694e1d37..3047eff0 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -31,23 +31,17 @@ extension OwnedIdentityDeletionProtocol { case initiateOwnedIdentityDeletion = 0 case contactOwnedIdentityWasDeleted = 1 - case continueOwnedIdentityDeletion = 100 - case processOtherProtocolInstances = 101 - case processGroupsV1 = 102 - case processGroupsV2 = 103 - case processContacts = 104 - case processChannels = 105 + case propagateGlobalOwnedIdentityDeletion = 2 + case deactivateOwnedDeviceServerQuery = 106 + case finalizeOwnedIdentityDeletion = 107 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { - case .initiateOwnedIdentityDeletion : return InitiateOwnedIdentityDeletionMessage.self - case .continueOwnedIdentityDeletion : return ContinueOwnedIdentityDeletionMessage.self - case .processOtherProtocolInstances : return ProcessOtherProtocolInstancesMessage.self - case .processGroupsV1 : return ProcessGroupsV1Message.self - case .processGroupsV2 : return ProcessGroupsV2Message.self - case .processContacts : return ProcessContactsMessage.self - case .contactOwnedIdentityWasDeleted : return ContactOwnedIdentityWasDeletedMessage.self - case .processChannels : return ProcessChannelsMessage.self + case .initiateOwnedIdentityDeletion : return InitiateOwnedIdentityDeletionMessage.self + case .contactOwnedIdentityWasDeleted : return ContactOwnedIdentityWasDeletedMessage.self + case .deactivateOwnedDeviceServerQuery : return DeactivateOwnedDeviceServerQueryMessage.self + case .propagateGlobalOwnedIdentityDeletion : return PropagateGlobalOwnedIdentityDeletionMessage.self + case .finalizeOwnedIdentityDeletion : return FinalizeOwnedIdentityDeletionMessage.self } } } @@ -62,96 +56,47 @@ extension OwnedIdentityDeletionProtocol { // Properties specific to this concrete protocol message - let ownedCryptoIdentityToDelete: ObvCryptoIdentity - let notifyContacts: Bool + let globalOwnedIdentityDeletion: Bool // Init when sending this message - init(coreProtocolMessage: CoreProtocolMessage, ownedCryptoIdentityToDelete: ObvCryptoIdentity, notifyContacts: Bool) { + init(coreProtocolMessage: CoreProtocolMessage, globalOwnedIdentityDeletion: Bool) { self.coreProtocolMessage = coreProtocolMessage - self.ownedCryptoIdentityToDelete = ownedCryptoIdentityToDelete - self.notifyContacts = notifyContacts + self.globalOwnedIdentityDeletion = globalOwnedIdentityDeletion } var encodedInputs: [ObvEncoded] { - [ownedCryptoIdentityToDelete.obvEncode(), notifyContacts.obvEncode()] + [globalOwnedIdentityDeletion.obvEncode()] } // Init when receiving this message init(with message: ReceivedMessage) throws { self.coreProtocolMessage = CoreProtocolMessage(with: message) - guard message.encodedInputs.count == 2 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded inputs") } - self.ownedCryptoIdentityToDelete = try message.encodedInputs[0].obvDecode() - self.notifyContacts = try message.encodedInputs[1].obvDecode() - } - - } - - - // MARK: - ContinueOwnedIdentityDeletionMessage - - struct ContinueOwnedIdentityDeletionMessage: ConcreteProtocolMessage { - - let id: ConcreteProtocolMessageId = MessageId.continueOwnedIdentityDeletion - let coreProtocolMessage: CoreProtocolMessage - - // Init when sending this message - - init(coreProtocolMessage: CoreProtocolMessage) { - self.coreProtocolMessage = coreProtocolMessage - } - - var encodedInputs: [ObvEncoded] { [] } - - // Init when receiving this message - - init(with message: ReceivedMessage) throws { - self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 1 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded inputs") } + self.globalOwnedIdentityDeletion = try message.encodedInputs[0].obvDecode() } } + - - // MARK: - ProcessOtherProtocolInstancesMessage - - struct ProcessOtherProtocolInstancesMessage: ConcreteProtocolMessage { + // MARK: - PropagateGlobalOwnedIdentityDeletionMessage + + struct PropagateGlobalOwnedIdentityDeletionMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.processOtherProtocolInstances + let id: ConcreteProtocolMessageId = MessageId.propagateGlobalOwnedIdentityDeletion let coreProtocolMessage: CoreProtocolMessage - + // Init when sending this message init(coreProtocolMessage: CoreProtocolMessage) { self.coreProtocolMessage = coreProtocolMessage } - var encodedInputs: [ObvEncoded] { [] } - - // Init when receiving this message - - init(with message: ReceivedMessage) throws { - self.coreProtocolMessage = CoreProtocolMessage(with: message) - } - - } - - - // MARK: - ProcessGroupsV1Message - - struct ProcessGroupsV1Message: ConcreteProtocolMessage { - - let id: ConcreteProtocolMessageId = MessageId.processGroupsV1 - let coreProtocolMessage: CoreProtocolMessage - - // Init when sending this message - - init(coreProtocolMessage: CoreProtocolMessage) { - self.coreProtocolMessage = coreProtocolMessage + var encodedInputs: [ObvEncoded] { + [] } - var encodedInputs: [ObvEncoded] { [] } - // Init when receiving this message init(with message: ReceivedMessage) throws { @@ -159,13 +104,13 @@ extension OwnedIdentityDeletionProtocol { } } + + // MARK: - FinalizeOwnedIdentityDeletionMessage - // MARK: - ProcessGroupsV2Message - - struct ProcessGroupsV2Message: ConcreteProtocolMessage { + struct FinalizeOwnedIdentityDeletionMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.processGroupsV2 + let id: ConcreteProtocolMessageId = MessageId.finalizeOwnedIdentityDeletion let coreProtocolMessage: CoreProtocolMessage // Init when sending this message @@ -174,32 +119,10 @@ extension OwnedIdentityDeletionProtocol { self.coreProtocolMessage = coreProtocolMessage } - var encodedInputs: [ObvEncoded] { [] } - - // Init when receiving this message - - init(with message: ReceivedMessage) throws { - self.coreProtocolMessage = CoreProtocolMessage(with: message) - } - - } - - - // MARK: - ProcessContactsMessage - - struct ProcessContactsMessage: ConcreteProtocolMessage { - - let id: ConcreteProtocolMessageId = MessageId.processContacts - let coreProtocolMessage: CoreProtocolMessage - - // Init when sending this message - - init(coreProtocolMessage: CoreProtocolMessage) { - self.coreProtocolMessage = coreProtocolMessage + var encodedInputs: [ObvEncoded] { + [] } - var encodedInputs: [ObvEncoded] { [] } - // Init when receiving this message init(with message: ReceivedMessage) throws { @@ -207,7 +130,7 @@ extension OwnedIdentityDeletionProtocol { } } - + // MARK: - ContactOwnedIdentityWasDeletedMessage @@ -246,27 +169,33 @@ extension OwnedIdentityDeletionProtocol { } - // MARK: - ProcessChannelsMessage - - struct ProcessChannelsMessage: ConcreteProtocolMessage { + struct DeactivateOwnedDeviceServerQueryMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.processChannels + let id: ConcreteProtocolMessageId = MessageId.deactivateOwnedDeviceServerQuery let coreProtocolMessage: CoreProtocolMessage - // Init when sending this message + let success: Bool // Only meaningfull when the message is sent to this protocol - init(coreProtocolMessage: CoreProtocolMessage) { - self.coreProtocolMessage = coreProtocolMessage - } - - var encodedInputs: [ObvEncoded] { [] } - - // Init when receiving this message + var encodedInputs: [ObvEncoded] { return [] } + // Initializers + init(with message: ReceivedMessage) throws { self.coreProtocolMessage = CoreProtocolMessage(with: message) + let encodedElements = message.encodedInputs + guard encodedElements.count == 1 else { assertionFailure(); throw Self.makeError(message: "Unexpected number of encoded elements") } + let encodedSuccess = encodedElements[0] + guard let success = Bool(encodedSuccess) else { + assertionFailure() + throw Self.makeError(message: "Failed to decode") + } + self.success = success } + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + self.success = true + } } - + } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocolStates.swift index b5ccbc4d..5368eec9 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,118 +29,44 @@ import ObvMetaManager extension OwnedIdentityDeletionProtocol { enum StateId: Int, ConcreteProtocolStateId { - + case initialState = 0 - case deletionCurrentStatus = 1 + case firstDeletionStepPerformed = 1 case final = 100 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .initialState : return ConcreteProtocolInitialState.self - case .deletionCurrentStatus : return DeletionCurrentStatusState.self - case .final : return FinalState.self + case .initialState : return ConcreteProtocolInitialState.self + case .firstDeletionStepPerformed: return FirstDeletionStepPerformedState.self + case .final : return FinalState.self } } } - // MARK: - DeletionCurrentStatusState + // MARK: - FirstDeletionStepPerformedState - struct DeletionCurrentStatusState: TypeConcreteProtocolState { - - let id: ConcreteProtocolStateId = StateId.deletionCurrentStatus - let notifyContacts: Bool - let otherProtocolInstancesHaveBeenProcessed: Bool - let groupsV1HaveBeenProcessed: Bool - let groupsV2HaveBeenProcessed: Bool - let contactsHaveBeenProcessed: Bool - let channelsHaveBeenProcessed: Bool + struct FirstDeletionStepPerformedState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.firstDeletionStepPerformed + let globalOwnedIdentityDeletion: Bool + let propagationNeeded: Bool - init(notifyContacts: Bool) { - self.init(notifyContacts: notifyContacts, otherProtocolInstancesHaveBeenProcessed: false, groupsV1HaveBeenProcessed: false, groupsV2HaveBeenProcessed: false, contactsHaveBeenProcessed: false, channelsHaveBeenProcessed: false) + init(globalOwnedIdentityDeletion: Bool, propagationNeeded: Bool) { + self.globalOwnedIdentityDeletion = globalOwnedIdentityDeletion + self.propagationNeeded = propagationNeeded } - private init(notifyContacts: Bool, otherProtocolInstancesHaveBeenProcessed: Bool, groupsV1HaveBeenProcessed: Bool, groupsV2HaveBeenProcessed: Bool, contactsHaveBeenProcessed: Bool, channelsHaveBeenProcessed: Bool) { - self.notifyContacts = notifyContacts - self.otherProtocolInstancesHaveBeenProcessed = otherProtocolInstancesHaveBeenProcessed - self.groupsV1HaveBeenProcessed = groupsV1HaveBeenProcessed - self.groupsV2HaveBeenProcessed = groupsV2HaveBeenProcessed - self.contactsHaveBeenProcessed = contactsHaveBeenProcessed - self.channelsHaveBeenProcessed = channelsHaveBeenProcessed - } - func obvEncode() -> ObvEncoded { - [notifyContacts, - otherProtocolInstancesHaveBeenProcessed, - groupsV1HaveBeenProcessed, - groupsV2HaveBeenProcessed, - contactsHaveBeenProcessed, - channelsHaveBeenProcessed].obvEncode() + return [ + globalOwnedIdentityDeletion, + propagationNeeded, + ].obvEncode() } init(_ obvEncoded: ObvEncoded) throws { - guard let encodedValues = [ObvEncoded](obvEncoded, expectedCount: 6) else { assertionFailure(); throw Self.makeError(message: "Unexpected number of elements in encoded DeletionCurrentStatusState") } - self.notifyContacts = try encodedValues[0].obvDecode() - self.otherProtocolInstancesHaveBeenProcessed = try encodedValues[1].obvDecode() - self.groupsV1HaveBeenProcessed = try encodedValues[2].obvDecode() - self.groupsV2HaveBeenProcessed = try encodedValues[3].obvDecode() - self.contactsHaveBeenProcessed = try encodedValues[4].obvDecode() - self.channelsHaveBeenProcessed = try encodedValues[5].obvDecode() - } - - func getStateWhenOtherProtocolInstancesHaveBeenProcessed() -> DeletionCurrentStatusState { - DeletionCurrentStatusState( - notifyContacts: notifyContacts, - otherProtocolInstancesHaveBeenProcessed: true, - groupsV1HaveBeenProcessed: groupsV1HaveBeenProcessed, - groupsV2HaveBeenProcessed: groupsV2HaveBeenProcessed, - contactsHaveBeenProcessed: contactsHaveBeenProcessed, - channelsHaveBeenProcessed: channelsHaveBeenProcessed - ) - } - - func getStateWhenGroupsV1HaveBeenProcessed() -> DeletionCurrentStatusState { - DeletionCurrentStatusState( - notifyContacts: notifyContacts, - otherProtocolInstancesHaveBeenProcessed: otherProtocolInstancesHaveBeenProcessed, - groupsV1HaveBeenProcessed: true, - groupsV2HaveBeenProcessed: groupsV2HaveBeenProcessed, - contactsHaveBeenProcessed: contactsHaveBeenProcessed, - channelsHaveBeenProcessed: channelsHaveBeenProcessed - ) - } - - func getStateWhenGroupsV2HaveBeenProcessed() -> DeletionCurrentStatusState { - DeletionCurrentStatusState( - notifyContacts: notifyContacts, - otherProtocolInstancesHaveBeenProcessed: otherProtocolInstancesHaveBeenProcessed, - groupsV1HaveBeenProcessed: groupsV1HaveBeenProcessed, - groupsV2HaveBeenProcessed: true, - contactsHaveBeenProcessed: contactsHaveBeenProcessed, - channelsHaveBeenProcessed: channelsHaveBeenProcessed - ) - } - - func getStateWhenContactsHaveBeenProcessed() -> DeletionCurrentStatusState { - DeletionCurrentStatusState( - notifyContacts: notifyContacts, - otherProtocolInstancesHaveBeenProcessed: otherProtocolInstancesHaveBeenProcessed, - groupsV1HaveBeenProcessed: groupsV1HaveBeenProcessed, - groupsV2HaveBeenProcessed: groupsV2HaveBeenProcessed, - contactsHaveBeenProcessed: true, - channelsHaveBeenProcessed: channelsHaveBeenProcessed - ) - } - - func getStateWhenChannelsHaveBeenProcessed() -> DeletionCurrentStatusState { - DeletionCurrentStatusState( - notifyContacts: notifyContacts, - otherProtocolInstancesHaveBeenProcessed: otherProtocolInstancesHaveBeenProcessed, - groupsV1HaveBeenProcessed: groupsV1HaveBeenProcessed, - groupsV2HaveBeenProcessed: groupsV2HaveBeenProcessed, - contactsHaveBeenProcessed: contactsHaveBeenProcessed, - channelsHaveBeenProcessed: true - ) + guard let encodedValues = [ObvEncoded](obvEncoded, expectedCount: 2) else { assertionFailure(); throw Self.makeError(message: "Unexpected number of elements in encoded DeletionCurrentStatusState") } + (globalOwnedIdentityDeletion, propagationNeeded) = try encodedValues.obvDecode() } } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocolSteps.swift index 5a44db5c..3eaeef70 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityDeletionProtocol/OwnedIdentityDeletionProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,6 +25,7 @@ import ObvCrypto import OlvidUtils import ObvEncoder + // MARK: - Protocol Steps extension OwnedIdentityDeletionProtocol { @@ -32,46 +33,31 @@ extension OwnedIdentityDeletionProtocol { enum StepId: Int, ConcreteProtocolStepId, CaseIterable { case startDeletion = 0 - case determineNextStepToExecute = 1 - case processOtherProtocolInstances = 2 - case processGroupsV1 = 3 - case processGroupsV2 = 4 - case processContacts = 5 - case processChannels = 6 - case processContactOwnedIdentityWasDeletedMessage = 7 + case finalizeDeletion = 1 + case processContactOwnedIdentityWasDeletedMessage = 2 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { case .startDeletion: - let step = StartDeletionStep(from: concreteProtocol, and: receivedMessage) - return step - - case .determineNextStepToExecute: - let step = DetermineNextStepToExecuteStep(from: concreteProtocol, and: receivedMessage) - return step + if let step = StartDeletionFromInitiateOwnedIdentityDeletionMessageStep(from: concreteProtocol, and: receivedMessage) { + return step + } else if let step = StartDeletionFromPropagateOwnedIdentityDeletionMessageStep(from: concreteProtocol, and: receivedMessage) { + return step + } else { + return nil + } - case .processOtherProtocolInstances: - let step = ProcessOtherProtocolInstancesStep(from: concreteProtocol, and: receivedMessage) - return step - - case .processGroupsV1: - let step = ProcessGroupsV1Step(from: concreteProtocol, and: receivedMessage) - return step - - case .processGroupsV2: - let step = ProcessGroupsV2Step(from: concreteProtocol, and: receivedMessage) - return step + case .finalizeDeletion: + if let step = FinalizeDeletionStepFromDeactivateOwnedDeviceServerQueryMessageStep(from: concreteProtocol, and: receivedMessage) { + return step + } else if let step = FinalizeDeletionStepFromFinalizeOwnedIdentityDeletionMessageStep(from: concreteProtocol, and: receivedMessage) { + return step + } else { + return nil + } - case .processContacts: - let step = ProcessContactsStep(from: concreteProtocol, and: receivedMessage) - return step - - case .processChannels: - let step = ProcessChannelsStep(from: concreteProtocol, and: receivedMessage) - return step - case .processContactOwnedIdentityWasDeletedMessage: switch receivedMessage.receptionChannelInfo { case .AsymmetricChannel: @@ -92,181 +78,278 @@ extension OwnedIdentityDeletionProtocol { // MARK: - StartDeletionStep - final class StartDeletionStep: ProtocolStep, TypedConcreteProtocolStep { + class StartDeletionStep: ProtocolStep { - let startState: ConcreteProtocolInitialState - let receivedMessage: InitiateOwnedIdentityDeletionMessage - - init?(startState: ConcreteProtocolInitialState, receivedMessage: InitiateOwnedIdentityDeletionMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + private let startState: ConcreteProtocolInitialState + private let receivedMessage: ReceivedMessageType + + enum ReceivedMessageType { + case initiateOwnedIdentityDeletionMessage(receivedMessage: InitiateOwnedIdentityDeletionMessage) + case propagateGlobalOwnedIdentityDeletionMessage(receivedMessage: PropagateGlobalOwnedIdentityDeletionMessage) + } + + init?(startState: ConcreteProtocolInitialState, receivedMessage: ReceivedMessageType, concreteCryptoProtocol: ConcreteCryptoProtocol) { self.startState = startState self.receivedMessage = receivedMessage - super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, - expectedReceptionChannelInfo: .Local, - receivedMessage: receivedMessage, - concreteCryptoProtocol: concreteCryptoProtocol) + switch receivedMessage { + case .initiateOwnedIdentityDeletionMessage(receivedMessage: let receivedMessage): + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + case .propagateGlobalOwnedIdentityDeletionMessage(receivedMessage: let receivedMessage): + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AnyObliviousChannelWithOwnedDevice(ownedIdentity: concreteCryptoProtocol.ownedIdentity), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } } override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { - let ownedCryptoIdentityToDelete = receivedMessage.ownedCryptoIdentityToDelete - let notifyContacts = receivedMessage.notifyContacts + let globalOwnedIdentityDeletion: Bool + let propagationNeeded: Bool + switch receivedMessage { + case .initiateOwnedIdentityDeletionMessage(receivedMessage: let receivedMessage): + globalOwnedIdentityDeletion = receivedMessage.globalOwnedIdentityDeletion + propagationNeeded = true + case .propagateGlobalOwnedIdentityDeletionMessage: + globalOwnedIdentityDeletion = true + propagationNeeded = false + } - // Make sure that the current owned identity is the one we are deleting + // If the user request a global deletion, we make sure the identity is active - guard ownedIdentity == ownedCryptoIdentityToDelete else { - assertionFailure() - return FinalState() + let ownedIdentityIsActive = try identityDelegate.isOwnedIdentityActive(ownedIdentity: ownedIdentity, flowId: obvContext.flowId) + if globalOwnedIdentityDeletion { + guard ownedIdentityIsActive || !propagationNeeded else { + assertionFailure() + throw Self.makeError(message: "Owned identity must be active when requeting a global deletion") + } } - - // Mark the owned identity for deletion - try identityDelegate.markOwnedIdentityForDeletion(ownedCryptoIdentityToDelete, within: obvContext) + // Perform pre-deletion tasks (note that ObvDialogs are deleted asynchronously by the engine coordinator, when receiving the notification from the identity manager that the owned identity has been deleted). - // Post a local message for this protocol so at the launch the `DetermineNextStepToExecuteStep` - - let coreMessage = getCoreMessage(for: .Local(ownedIdentity: ownedIdentity)) - let concreteMessage = ContinueOwnedIdentityDeletionMessage(coreProtocolMessage: coreMessage) - guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Could not generate ContinueOwnedIdentityDeletionMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + try prepareForOwnedIdentityDeletion(ownedCryptoIdentity: ownedIdentity, within: obvContext) + try networkPostDelegate.prepareForOwnedIdentityDeletion(ownedCryptoIdentity: ownedIdentity, within: obvContext) + try networkFetchDelegate.prepareForOwnedIdentityDeletion(ownedCryptoIdentity: ownedIdentity, within: obvContext) + + // In case we are performing a *global* deletion, we want our other devices to execute this protocol too + // Note that in the case we perform a *local* deletion, we want our other owned devices to perform a simple owned device discovery. + // We wait until the end of the server query (that deactivates this device) before sending them a InitiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessage. - // Return the new state + if propagationNeeded && ownedIdentityIsActive && globalOwnedIdentityDeletion { + let otherDeviceUIDs = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) + if !otherDeviceUIDs.isEmpty { + let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(otherDeviceUIDs), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true)) + let concreteMessage = PropagateGlobalOwnedIdentityDeletionMessage(coreProtocolMessage: coreMessage) + guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + } + + // Mark the owned identity for deletion + + try identityDelegate.markOwnedIdentityForDeletion(ownedIdentity, within: obvContext) - return DeletionCurrentStatusState(notifyContacts: notifyContacts) + // If our owned identity is active on the current device, we want to deactivate it on the server. + // Otherwise, we simply want to immediately continue this deletion protocol. + + if ownedIdentityIsActive { + + let currentDeviceUID = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) + let coreMessage = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concreteMessage = DeactivateOwnedDeviceServerQueryMessage(coreProtocolMessage: coreMessage) + let serverQueryType = ObvChannelServerQueryMessageToSend.QueryType.deactivateOwnedDevice( + ownedDeviceUID: currentDeviceUID, + isCurrentDevice: true) + guard let messageToSend = concreteMessage.generateObvChannelServerQueryMessageToSend(serverQueryType: serverQueryType) else { return nil } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: concreteCryptoProtocol.prng, within: obvContext) + + } else { + + let coreMessage = getCoreMessage(for: .Local(ownedIdentity: ownedIdentity)) + let concreteMessage = FinalizeOwnedIdentityDeletionMessage(coreProtocolMessage: coreMessage) + guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Could not generate ContinueOwnedIdentityDeletionMessage") } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: concreteCryptoProtocol.prng, within: obvContext) + } + + return FirstDeletionStepPerformedState(globalOwnedIdentityDeletion: globalOwnedIdentityDeletion, propagationNeeded: propagationNeeded) + } + + private func prepareForOwnedIdentityDeletion(ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { + + // Delete all received messages + + try ReceivedMessage.batchDeleteAllReceivedMessagesForOwnedCryptoIdentity(ownedCryptoIdentity, within: obvContext) + + // Delete signatures, commitments,... received relating to this owned identity + + try ChannelCreationPingSignatureReceived.batchDeleteAllChannelCreationPingSignatureReceivedForOwnedCryptoIdentity(ownedCryptoIdentity, within: obvContext) + try TrustEstablishmentCommitmentReceived.batchDeleteAllTrustEstablishmentCommitmentReceivedForOwnedCryptoIdentity(ownedCryptoIdentity, within: obvContext) + try MutualScanSignatureReceived.batchDeleteAllMutualScanSignatureReceivedForOwnedCryptoIdentity(ownedCryptoIdentity, within: obvContext) + try GroupV2SignatureReceived.deleteAllAssociatedWithOwnedIdentity(ownedCryptoIdentity, within: obvContext) + try ContactOwnedIdentityDeletionSignatureReceived.deleteAllAssociatedWithOwnedIdentity(ownedCryptoIdentity, within: obvContext) + try ProtocolInstance.deleteAllProtocolInstancesOfOwnedIdentity(ownedIdentity, withProtocolInstanceUidDistinctFrom: self.protocolInstanceUid, within: obvContext) + try ReceivedMessage.deleteAllAssociatedWithOwnedIdentity(ownedCryptoIdentity, within: obvContext) + + } + } - // MARK: - DetermineNextStepToExecuteStep + // MARK: StartDeletionFromInitiateOwnedIdentityDeletionMessageStep - final class DetermineNextStepToExecuteStep: ProtocolStep, TypedConcreteProtocolStep { + final class StartDeletionFromInitiateOwnedIdentityDeletionMessageStep: StartDeletionStep, TypedConcreteProtocolStep { - let startState: DeletionCurrentStatusState - let receivedMessage: ContinueOwnedIdentityDeletionMessage - - init?(startState: DeletionCurrentStatusState, receivedMessage: ContinueOwnedIdentityDeletionMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { - + let startState: ConcreteProtocolInitialState + let receivedMessage: InitiateOwnedIdentityDeletionMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: InitiateOwnedIdentityDeletionMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { self.startState = startState self.receivedMessage = receivedMessage - - super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, - expectedReceptionChannelInfo: .Local, - receivedMessage: receivedMessage, + super.init(startState: startState, + receivedMessage: .initiateOwnedIdentityDeletionMessage(receivedMessage: receivedMessage), concreteCryptoProtocol: concreteCryptoProtocol) - } - - override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { - let coreMessage = getCoreMessage(for: .Local(ownedIdentity: ownedIdentity)) - let concreteMessage: GenericProtocolMessageToSendGenerator - - if !startState.otherProtocolInstancesHaveBeenProcessed { - concreteMessage = ProcessOtherProtocolInstancesMessage(coreProtocolMessage: coreMessage) - } else if !startState.groupsV1HaveBeenProcessed { - concreteMessage = ProcessGroupsV1Message(coreProtocolMessage: coreMessage) - } else if !startState.groupsV2HaveBeenProcessed { - concreteMessage = ProcessGroupsV2Message(coreProtocolMessage: coreMessage) - } else if !startState.contactsHaveBeenProcessed { - concreteMessage = ProcessContactsMessage(coreProtocolMessage: coreMessage) - } else if !startState.channelsHaveBeenProcessed { - concreteMessage = ProcessChannelsMessage(coreProtocolMessage: coreMessage) - } else { - - // When everything has been processed, we request the deletion of the owned identity - - do { - try identityDelegate.deleteOwnedIdentity(ownedIdentity, within: obvContext) - } catch { - assertionFailure(error.localizedDescription) - } - - return FinalState() - } + // The step execution is defined in the superclass + + } - guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Could not generate ContinueOwnedIdentityDeletionMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + + // MARK: StartDeletionFromPropagateOwnedIdentityDeletionMessageStep + + final class StartDeletionFromPropagateOwnedIdentityDeletionMessageStep: StartDeletionStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: PropagateGlobalOwnedIdentityDeletionMessage - return startState - + init?(startState: ConcreteProtocolInitialState, receivedMessage: PropagateGlobalOwnedIdentityDeletionMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: startState, + receivedMessage: .propagateGlobalOwnedIdentityDeletionMessage(receivedMessage: receivedMessage), + concreteCryptoProtocol: concreteCryptoProtocol) } + + // The step execution is defined in the superclass } + + // MARK: FinalizeDeletionStep - // MARK: - ProcessOtherProtocolInstancesStep - - /// By the end of this step, all (send and receive) network messages are deleted as well as other protocol instances. - final class ProcessOtherProtocolInstancesStep: ProtocolStep, TypedConcreteProtocolStep { - - let startState: DeletionCurrentStatusState - let receivedMessage: ProcessOtherProtocolInstancesMessage + class FinalizeDeletionStep: ProtocolStep { - init?(startState: DeletionCurrentStatusState, receivedMessage: ProcessOtherProtocolInstancesMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + private let startState: FirstDeletionStepPerformedState + private let receivedMessage: ReceivedMessageType + + enum ReceivedMessageType { + case deactivateOwnedDeviceServerQueryMessage(receivedMessage: DeactivateOwnedDeviceServerQueryMessage) + case finalizeOwnedIdentityDeletionMessage(receivedMessage: FinalizeOwnedIdentityDeletionMessage) + } + + init?(startState: FirstDeletionStepPerformedState, receivedMessage: ReceivedMessageType, concreteCryptoProtocol: ConcreteCryptoProtocol) { self.startState = startState self.receivedMessage = receivedMessage - super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, - expectedReceptionChannelInfo: .Local, - receivedMessage: receivedMessage, - concreteCryptoProtocol: concreteCryptoProtocol) + switch receivedMessage { + case .deactivateOwnedDeviceServerQueryMessage(receivedMessage: let receivedMessage): + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + case .finalizeOwnedIdentityDeletionMessage(receivedMessage: let receivedMessage): + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } } override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { - // Delete all other protocol instances + let globalOwnedIdentityDeletion = startState.globalOwnedIdentityDeletion + let propagationNeeded = startState.propagationNeeded - try ProtocolInstance.deleteAllProtocolInstancesOfOwnedIdentity(ownedIdentity, withProtocolInstanceUidDistinctFrom: self.protocolInstanceUid, within: obvContext) - - // Post a local message for this protocol so at the launch the `DetermineNextStepToExecuteStep` + let ownedIdentityIsActive = try identityDelegate.isOwnedIdentityActive(ownedIdentity: ownedIdentity, flowId: obvContext.flowId) + + // In case we are performing a *local* deletion, we want our other owned devices to perform a simple owned device discovery + + if propagationNeeded && ownedIdentityIsActive && !globalOwnedIdentityDeletion { + let otherDeviceUIDs = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) + if !otherDeviceUIDs.isEmpty { + let coreMessage = getCoreMessageForOtherProtocol( + for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(otherDeviceUIDs), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true), + otherCryptoProtocolId: .ownedDeviceDiscovery, + otherProtocolInstanceUid: UID.gen(with: prng)) + let concreteMessage = OwnedDeviceDiscoveryProtocol.InitiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessage(coreProtocolMessage: coreMessage) + guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + } - let coreMessage = getCoreMessage(for: .Local(ownedIdentity: ownedIdentity)) - let concreteMessage = ContinueOwnedIdentityDeletionMessage(coreProtocolMessage: coreMessage) - guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Could not generate ContinueOwnedIdentityDeletionMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + // Process groups v1 and v2 - // Return the new state + try processGroupsV1(globalOwnedIdentityDeletion: globalOwnedIdentityDeletion, propagationNeeded: propagationNeeded, ownedIdentityIsActive: ownedIdentityIsActive) + try processGroupsV2(globalOwnedIdentityDeletion: globalOwnedIdentityDeletion, propagationNeeded: propagationNeeded, ownedIdentityIsActive: ownedIdentityIsActive) + + // Process contacts + + try processContacts(globalOwnedIdentityDeletion: globalOwnedIdentityDeletion, propagationNeeded: propagationNeeded, ownedIdentityIsActive: ownedIdentityIsActive) + + // Process channels + + try processChannels(globalOwnedIdentityDeletion: globalOwnedIdentityDeletion, propagationNeeded: propagationNeeded, ownedIdentityIsActive: ownedIdentityIsActive) + + // When everything has been processed, we request the deletion of the owned identity + + do { + try identityDelegate.deleteOwnedIdentity(ownedIdentity, within: obvContext) + } catch { + assertionFailure(error.localizedDescription) + } - let newState = startState.getStateWhenOtherProtocolInstancesHaveBeenProcessed() - return newState + // Delete all server session (note that the InitiateOwnedDeviceDiscoveryRequestedByAnotherOwnedDeviceMessage posted above does not need one) - } - - } - + let flowId = obvContext.flowId + let networkFetchDelegate = self.networkFetchDelegate + let ownedIdentity = self.ownedIdentity + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { assertionFailure(); return } + Task { + do { + try await networkFetchDelegate.finalizeOwnedIdentityDeletion(ownedCryptoIdentity: ownedIdentity, flowId: flowId) + } catch { + assertionFailure("Could not delete server session of the deleted owned identity: \(error.localizedDescription)") + } + } - - // MARK: - ProcessGroupsV1Step - - /// By the end of this step, all groups V1 (both owned and joined) are deleted. If the state's `notifyContacts` Boolean is `true`, other group members are kicked or notified. - final class ProcessGroupsV1Step: ProtocolStep, TypedConcreteProtocolStep { - - let startState: DeletionCurrentStatusState - let receivedMessage: ProcessGroupsV1Message - - init?(startState: DeletionCurrentStatusState, receivedMessage: ProcessGroupsV1Message, concreteCryptoProtocol: ConcreteCryptoProtocol) { - - self.startState = startState - self.receivedMessage = receivedMessage + } + + // We are done - super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, - expectedReceptionChannelInfo: .Local, - receivedMessage: receivedMessage, - concreteCryptoProtocol: concreteCryptoProtocol) + return FinalState() } - override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { - + + /// Helper method for this step. + /// By the end of this method, all groups V1 (both owned and joined) are deleted. If `globalOwnedIdentityDeletion`, `propagationNeeded`, and `ownedIdentityIsActive` are `true`, other group members are kicked or notified. + private func processGroupsV1(globalOwnedIdentityDeletion: Bool, propagationNeeded: Bool, ownedIdentityIsActive: Bool) throws { + let allGroupStructures = try identityDelegate.getAllGroupStructures(ownedIdentity: ownedIdentity, within: obvContext) - if startState.notifyContacts { + if globalOwnedIdentityDeletion && propagationNeeded && ownedIdentityIsActive { // Leave all joined groups by executing now the LeaveGroupJoinedStep of the GroupManagementProtocol @@ -296,7 +379,7 @@ extension OwnedIdentityDeletionProtocol { continue } let groupManagementProtocolState = try leaveGroupJoinedStep.executeStep(within: obvContext) - guard groupManagementProtocolState?.rawId == GroupManagementProtocol.StateId.Final.rawValue else { + guard groupManagementProtocolState?.rawId == GroupManagementProtocol.StateId.final.rawValue else { assertionFailure() continue } @@ -331,7 +414,7 @@ extension OwnedIdentityDeletionProtocol { continue } let groupManagementProtocolState = try removeGroupMembersStep.executeStep(within: obvContext) - guard groupManagementProtocolState?.rawId == GroupManagementProtocol.StateId.Final.rawValue else { + guard groupManagementProtocolState?.rawId == GroupManagementProtocol.StateId.final.rawValue else { assertionFailure() continue } @@ -361,47 +444,15 @@ extension OwnedIdentityDeletionProtocol { } } - // Post a local message for this protocol so at the launch the `DetermineNextStepToExecuteStep` - - let coreMessage = getCoreMessage(for: .Local(ownedIdentity: ownedIdentity)) - let concreteMessage = ContinueOwnedIdentityDeletionMessage(coreProtocolMessage: coreMessage) - guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Could not generate ContinueOwnedIdentityDeletionMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) - - // Return the new state - - let newState = startState.getStateWhenGroupsV1HaveBeenProcessed() - return newState - } - - } - - // MARK: - ProcessGroupsV2Step - - final class ProcessGroupsV2Step: ProtocolStep, TypedConcreteProtocolStep { - let startState: DeletionCurrentStatusState - let receivedMessage: ProcessGroupsV2Message - - init?(startState: DeletionCurrentStatusState, receivedMessage: ProcessGroupsV2Message, concreteCryptoProtocol: ConcreteCryptoProtocol) { - - self.startState = startState - self.receivedMessage = receivedMessage - - super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, - expectedReceptionChannelInfo: .Local, - receivedMessage: receivedMessage, - concreteCryptoProtocol: concreteCryptoProtocol) - - } - - override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + /// Helper method for this step + private func processGroupsV2(globalOwnedIdentityDeletion: Bool, propagationNeeded: Bool, ownedIdentityIsActive: Bool) throws { let allGroups = try identityDelegate.getAllObvGroupV2(of: ownedIdentity, within: obvContext) - if startState.notifyContacts { + if globalOwnedIdentityDeletion && propagationNeeded && ownedIdentityIsActive { // Leave all groups that we joined or where we are *not* the only administrator. // Groups for which we are the sole administrator are disbanded. @@ -551,79 +602,59 @@ extension OwnedIdentityDeletionProtocol { } - // Post a local message for this protocol so at the launch the `DetermineNextStepToExecuteStep` - - let coreMessage = getCoreMessage(for: .Local(ownedIdentity: ownedIdentity)) - let concreteMessage = ContinueOwnedIdentityDeletionMessage(coreProtocolMessage: coreMessage) - guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Could not generate ContinueOwnedIdentityDeletionMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) - - // Return the new state - - let newState = startState.getStateWhenGroupsV2HaveBeenProcessed() - return newState - } - - } - - // MARK: - ProcessContactsStep - - final class ProcessContactsStep: ProtocolStep, TypedConcreteProtocolStep { - - let startState: DeletionCurrentStatusState - let receivedMessage: ProcessContactsMessage - init?(startState: DeletionCurrentStatusState, receivedMessage: ProcessContactsMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { - - self.startState = startState - self.receivedMessage = receivedMessage - - super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, - expectedReceptionChannelInfo: .Local, - receivedMessage: receivedMessage, - concreteCryptoProtocol: concreteCryptoProtocol) - - } - - override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + /// Helper method for this step + private func processContacts(globalOwnedIdentityDeletion: Bool, propagationNeeded: Bool, ownedIdentityIsActive: Bool) throws { let log = OSLog(subsystem: delegateManager.logSubsystem, category: OwnedIdentityDeletionProtocol.logCategory) let allContacts = try identityDelegate.getContactsOfOwnedIdentity(ownedIdentity, within: obvContext) - if startState.notifyContacts { - - // Notify all contacts that our own identity is about to be deleted. - - for contact in allContacts { - - // We first send a broadcast message allowing to be radical in the way our contacts will delete our own identity (and to delete it also with contacts without channels). - // This only works with contacts who understand this protocol. - - do { + if propagationNeeded && ownedIdentityIsActive { + if globalOwnedIdentityDeletion { + + // Notify all contacts that our own identity is about to be deleted. + + for contact in allContacts { + + // We first send a broadcast message allowing to be radical in the way our contacts will delete our own identity (and to delete it also with contacts without channels). + // This only works with contacts who understand this protocol. - let signature: Data do { - let challengeType = ChallengeType.ownedIdentityDeletion(notifiedContactIdentity: contact) - guard let sig = try? solveChallengeDelegate.solveChallenge(challengeType, for: ownedIdentity, using: prng, within: obvContext) else { - os_log("Could not compute signature", log: log, type: .fault) - assertionFailure() - // Continue with the next contact - continue + + let signature: Data + do { + let challengeType = ChallengeType.ownedIdentityDeletion(notifiedContactIdentity: contact) + guard let sig = try? solveChallengeDelegate.solveChallenge(challengeType, for: ownedIdentity, using: prng, within: obvContext) else { + os_log("Could not compute signature", log: log, type: .fault) + assertionFailure() + // Continue with the next contact + continue + } + signature = sig } - signature = sig + + let coreMessage = getCoreMessage(for: .AsymmetricChannelBroadcast(to: contact, fromOwnedIdentity: ownedIdentity)) + let concreteMessage = ContactOwnedIdentityWasDeletedMessage(coreProtocolMessage: coreMessage, deletedContactOwnedIdentity: ownedIdentity, signature: signature) + guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } - - let coreMessage = getCoreMessage(for: .AsymmetricChannelBroadcast(to: contact, fromOwnedIdentity: ownedIdentity)) - let concreteMessage = ContactOwnedIdentityWasDeletedMessage(coreProtocolMessage: coreMessage, deletedContactOwnedIdentity: ownedIdentity, signature: signature) + + } + + } else { + + if !allContacts.isEmpty { + let channel = ObvChannelSendChannelType.AllConfirmedObliviousChannelsWithContactIdentities(contactIdentities: allContacts, fromOwnedIdentity: ownedIdentity) + let coreMessage = getCoreMessageForOtherProtocol(for: channel, otherCryptoProtocolId: .contactManagement, otherProtocolInstanceUid: UID.gen(with: prng)) + let concreteMessage = ContactManagementProtocol.PerformContactDeviceDiscoveryMessage(coreProtocolMessage: coreMessage) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } - } // Locally delete all contacts and their associated channels @@ -643,65 +674,61 @@ extension OwnedIdentityDeletionProtocol { } } - // Post a local message for this protocol so at the launch the `DetermineNextStepToExecuteStep` - - let coreMessage = getCoreMessage(for: .Local(ownedIdentity: ownedIdentity)) - let concreteMessage = ContinueOwnedIdentityDeletionMessage(coreProtocolMessage: coreMessage) - guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Could not generate ContinueOwnedIdentityDeletionMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + } - // Return the new state + + /// Helper method for this step + private func processChannels(globalOwnedIdentityDeletion: Bool, propagationNeeded: Bool, ownedIdentityIsActive: Bool) throws { + + let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) + + try channelDelegate.deleteAllObliviousChannelsWithTheCurrentDeviceUid(currentDeviceUid, within: obvContext) + + } - let newState = startState.getStateWhenContactsHaveBeenProcessed() - return newState + } + + + // MARK: FinalizeDeletionStepFromDeactivateOwnedDeviceServerQueryMessageStep + + final class FinalizeDeletionStepFromDeactivateOwnedDeviceServerQueryMessageStep: FinalizeDeletionStep, TypedConcreteProtocolStep { + + let startState: FirstDeletionStepPerformedState + let receivedMessage: DeactivateOwnedDeviceServerQueryMessage + init?(startState: FirstDeletionStepPerformedState, receivedMessage: DeactivateOwnedDeviceServerQueryMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: startState, + receivedMessage: .deactivateOwnedDeviceServerQueryMessage(receivedMessage: receivedMessage), + concreteCryptoProtocol: concreteCryptoProtocol) } + + // The step execution is defined in the superclass } - - // MARK: - ProcessChannelsStep - final class ProcessChannelsStep: ProtocolStep, TypedConcreteProtocolStep { - - let startState: DeletionCurrentStatusState - let receivedMessage: ProcessChannelsMessage + // MARK: FinalizeDeletionStepFromFinalizeOwnedIdentityDeletionMessageStep + + final class FinalizeDeletionStepFromFinalizeOwnedIdentityDeletionMessageStep: FinalizeDeletionStep, TypedConcreteProtocolStep { - init?(startState: DeletionCurrentStatusState, receivedMessage: ProcessChannelsMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { - + let startState: FirstDeletionStepPerformedState + let receivedMessage: FinalizeOwnedIdentityDeletionMessage + + init?(startState: FirstDeletionStepPerformedState, receivedMessage: FinalizeOwnedIdentityDeletionMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { self.startState = startState self.receivedMessage = receivedMessage - - super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, - expectedReceptionChannelInfo: .Local, - receivedMessage: receivedMessage, + super.init(startState: startState, + receivedMessage: .finalizeOwnedIdentityDeletionMessage(receivedMessage: receivedMessage), concreteCryptoProtocol: concreteCryptoProtocol) - } - - override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { - - let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) - - try channelDelegate.deleteAllObliviousChannelsWithTheCurrentDeviceUid(currentDeviceUid, within: obvContext) - - // Post a local message for this protocol so at the launch the `DetermineNextStepToExecuteStep` - - let coreMessage = getCoreMessage(for: .Local(ownedIdentity: ownedIdentity)) - let concreteMessage = ContinueOwnedIdentityDeletionMessage(coreProtocolMessage: coreMessage) - guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Could not generate ContinueOwnedIdentityDeletionMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) - - // Return the new state - - let newState = startState.getStateWhenChannelsHaveBeenProcessed() - return newState - } + // The step execution is defined in the superclass } - + // MARK: - ProcessContactOwnedIdentityWasDeletedMessageStep class ProcessContactOwnedIdentityWasDeletedMessageStep: ProtocolStep { @@ -778,7 +805,7 @@ extension OwnedIdentityDeletionProtocol { let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: Array(otherDeviceUIDs), fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true)) let concreteMessage = ContactOwnedIdentityWasDeletedMessage(coreProtocolMessage: coreMessage, deletedContactOwnedIdentity: deletedContactOwnedIdentity, signature: signature) guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -857,7 +884,7 @@ extension OwnedIdentityDeletionProtocol { continue } let groupManagementProtocolState = try removeGroupMembersStep.executeStep(within: obvContext) - guard groupManagementProtocolState?.rawId == GroupManagementProtocol.StateId.Final.rawValue else { + guard groupManagementProtocolState?.rawId == GroupManagementProtocol.StateId.final.rawValue else { assertionFailure() continue } @@ -900,7 +927,7 @@ extension OwnedIdentityDeletionProtocol { changeset: changeset, flowId: obvContext.flowId) - _ = try channelDelegate.post(initiateGroupUpdateMessage, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(initiateGroupUpdateMessage, randomizedWith: prng, within: obvContext) } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocol.swift new file mode 100644 index 00000000..d3c2dfeb --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocol.swift @@ -0,0 +1,62 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvCrypto +import OlvidUtils + + +public struct OwnedIdentityTransferProtocol: ConcreteCryptoProtocol { + + static let logCategory = "OwnedIdentityTransferProtocol" + + static let id = CryptoProtocolId.ownedIdentityTransfer + + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.final] + + let ownedIdentity: ObvCryptoIdentity + let currentState: ConcreteProtocolState + + let delegateManager: ObvProtocolDelegateManager + let obvContext: ObvContext + let prng: PRNGService + let instanceUid: UID + + init(instanceUid: UID, currentState: ConcreteProtocolState, ownedCryptoIdentity: ObvCryptoIdentity, delegateManager: ObvProtocolDelegateManager, prng: PRNGService, within obvContext: ObvContext) { + self.currentState = currentState + self.ownedIdentity = ownedCryptoIdentity + self.delegateManager = delegateManager + self.obvContext = obvContext + self.prng = prng + self.instanceUid = instanceUid + } + + static func stateId(fromRawValue rawValue: Int) -> ConcreteProtocolStateId? { + return StateId(rawValue: rawValue) + } + + static func messageId(fromRawValue rawValue: Int) -> ConcreteProtocolMessageId? { + return MessageId(rawValue: rawValue) + } + + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolMessages.swift new file mode 100644 index 00000000..aa431b65 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolMessages.swift @@ -0,0 +1,512 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvMetaManager +import ObvCrypto +import ObvTypes + + +// MARK: - Protocol Messages + +extension OwnedIdentityTransferProtocol { + + enum MessageId: Int, ConcreteProtocolMessageId { + + case initiateTransferOnSourceDevice = 0 + case initiateTransferOnTargetDevice = 1 + case sourceGetSessionNumber = 2 + case sourceWaitForTargetConnection = 4 +// case targetGetSessionNumber = 5 + case targetSendEphemeralIdentity = 6 + case sourceSendCommitment = 7 + case targetSeed = 8 + case sourceSASInput = 9 + case sourceDecommitment = 10 + case targetWaitForSnapshot = 11 + case sourceSnapshot = 12 + case closeWebsocketConnection = 99 + case abortProtocol = 100 + + var concreteProtocolMessageType: ConcreteProtocolMessage.Type { + switch self { + case .initiateTransferOnSourceDevice: + return InitiateTransferOnSourceDeviceMessage.self + case .initiateTransferOnTargetDevice: + return InitiateTransferOnTargetDeviceMessage.self + case .sourceGetSessionNumber: + return SourceGetSessionNumberMessage.self + case .targetSendEphemeralIdentity: + return TargetSendEphemeralIdentityMessage.self + case .targetSeed: + return TargetSeedMessage.self + case .targetWaitForSnapshot: + return TargetWaitForSnapshotMessage.self + case .closeWebsocketConnection: + return CloseWebsocketConnectionMessage.self + case .abortProtocol: + return AbortProtocolMessage.self + case .sourceWaitForTargetConnection: + return SourceWaitForTargetConnectionMessage.self + case .sourceSendCommitment: + return SourceSendCommitmentMessage.self + case .sourceDecommitment: + return SourceDecommitmentMessage.self + case .sourceSASInput: + return SourceSASInputMessage.self + case .sourceSnapshot: + return SourceSnapshotMessage.self + } + } + + } + + + // MARK: - InitiateTransferOnSourceDeviceMessage + + struct InitiateTransferOnSourceDeviceMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.initiateTransferOnSourceDevice + let coreProtocolMessage: CoreProtocolMessage + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + } + + } + + + // MARK: - InitiateTransferOnTargetDeviceMessage + + struct InitiateTransferOnTargetDeviceMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.initiateTransferOnTargetDevice + let coreProtocolMessage: CoreProtocolMessage + + let currentDeviceName: String + let transferSessionNumber: ObvOwnedIdentityTransferSessionNumber + let encryptionPrivateKey: PrivateKeyForPublicKeyEncryption + let macKey: MACKey + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage, currentDeviceName: String, transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, encryptionPrivateKey: PrivateKeyForPublicKeyEncryption, macKey: MACKey) { + self.coreProtocolMessage = coreProtocolMessage + self.currentDeviceName = currentDeviceName + self.transferSessionNumber = transferSessionNumber + self.encryptionPrivateKey = encryptionPrivateKey + self.macKey = macKey + } + + var encodedInputs: [ObvEncoded] { + [ + currentDeviceName.obvEncode(), + transferSessionNumber.obvEncode(), + encryptionPrivateKey.obvEncode(), + macKey.obvEncode() + ] + } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 4 else { assertionFailure(); throw ObvError.unexpectedNumberOfEncodedElements } + self.currentDeviceName = try message.encodedInputs[0].obvDecode() + self.transferSessionNumber = try message.encodedInputs[1].obvDecode() + self.encryptionPrivateKey = try PrivateKeyForPublicKeyEncryptionDecoder.obvDecodeOrThrow(message.encodedInputs[2]) + self.macKey = try MACKeyDecoder.obvDecodeOrThrow(message.encodedInputs[3]) + } + + enum ObvError: Error { + case unexpectedNumberOfEncodedElements + } + + } + + + // MARK: - SourceSASInputMessage + + struct SourceSASInputMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.sourceSASInput + let coreProtocolMessage: CoreProtocolMessage + + let enteredSAS: ObvOwnedIdentityTransferSas + let deviceUIDToKeepActive: UID? + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage, enteredSAS: ObvOwnedIdentityTransferSas, deviceUIDToKeepActive: UID?) { + self.coreProtocolMessage = coreProtocolMessage + self.enteredSAS = enteredSAS + self.deviceUIDToKeepActive = deviceUIDToKeepActive + } + + var encodedInputs: [ObvEncoded] { + var encoded = [enteredSAS.obvEncode()] + if let deviceUIDToKeepActive { + encoded += [deviceUIDToKeepActive.obvEncode()] + } + return encoded + } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + if message.encodedInputs.count == 1 { + self.enteredSAS = try message.encodedInputs[0].obvDecode() + self.deviceUIDToKeepActive = nil + } else if message.encodedInputs.count == 2 { + self.enteredSAS = try message.encodedInputs[0].obvDecode() + self.deviceUIDToKeepActive = try message.encodedInputs[1].obvDecode() + } else { + throw ObvError.unexpectedNumberOfEncodedElements + } + } + + enum ObvError: Error { + case unexpectedNumberOfEncodedElements + } + + } + + + // MARK: - SourceGetSessionNumberMessage + + struct SourceGetSessionNumberMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.sourceGetSessionNumber + let coreProtocolMessage: CoreProtocolMessage + + // Not used when posting this message from the protocol manager + let result: SourceGetSessionNumberResult + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + self.result = .requestFailed // Not used anyway + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 1 else { assertionFailure(); throw ObvError.unexpectedNumberOfEncodedElements } + self.result = try message.encodedInputs[0].obvDecode() + } + + enum ObvError: Error { + case unexpectedNumberOfEncodedElements + } + + } + + + // MARK: - SourceGetSessionNumberMessage + + struct SourceWaitForTargetConnectionMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.sourceWaitForTargetConnection + let coreProtocolMessage: CoreProtocolMessage + + // Not used when posting this message from the protocol manager + let result: SourceWaitForTargetConnectionResult + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + self.result = .requestFailed // Not used anyway + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 1 else { assertionFailure(); throw ObvError.unexpectedNumberOfEncodedElements } + self.result = try message.encodedInputs[0].obvDecode() + } + + enum ObvError: Error { + case unexpectedNumberOfEncodedElements + } + + } + + + // MARK: - SourceSendCommitmentMessage + + struct SourceSendCommitmentMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.sourceSendCommitment + let coreProtocolMessage: CoreProtocolMessage + + // Not used when posting this message from the protocol manager + let result: OwnedIdentityTransferRelayMessageResult + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + self.result = .requestFailed // Not used anyway + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 1 else { assertionFailure(); throw ObvError.unexpectedNumberOfEncodedElements } + self.result = try message.encodedInputs[0].obvDecode() + } + + enum ObvError: Error { + case unexpectedNumberOfEncodedElements + } + + } + + + // MARK: - SourceDecommitmentMessage + + struct SourceDecommitmentMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.sourceDecommitment + let coreProtocolMessage: CoreProtocolMessage + + // Not used when posting this message from the protocol manager + let result: OwnedIdentityTransferRelayMessageResult + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + self.result = .requestFailed // Not used anyway + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 1 else { assertionFailure(); throw ObvError.unexpectedNumberOfEncodedElements } + self.result = try message.encodedInputs[0].obvDecode() + } + + enum ObvError: Error { + case unexpectedNumberOfEncodedElements + } + + } + + + // MARK: - TargetSendEphemeralIdentityMessage + + struct TargetSendEphemeralIdentityMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.targetSendEphemeralIdentity + let coreProtocolMessage: CoreProtocolMessage + + // Not used when posting this message from the protocol manager + let result: TargetSendEphemeralIdentityResult + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + self.result = .requestDidFail // Not used anyway + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 1 else { assertionFailure(); throw ObvError.unexpectedNumberOfEncodedElements } + self.result = try message.encodedInputs[0].obvDecode() + } + + enum ObvError: Error { + case unexpectedNumberOfEncodedElements + } + + } + + + // MARK: - TargetSeedMessage + + struct TargetSeedMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.targetSeed + let coreProtocolMessage: CoreProtocolMessage + + // Not used when posting this message from the protocol manager + let result: OwnedIdentityTransferRelayMessageResult + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + self.result = .requestFailed // Not used anyway + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 1 else { assertionFailure(); throw ObvError.unexpectedNumberOfEncodedElements } + self.result = try message.encodedInputs[0].obvDecode() + } + + enum ObvError: Error { + case unexpectedNumberOfEncodedElements + } + + } + + + // MARK: - TargetWaitForSnapshotMessage + + struct TargetWaitForSnapshotMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.targetWaitForSnapshot + let coreProtocolMessage: CoreProtocolMessage + + // Not used when posting this message from the protocol manager + let result: OwnedIdentityTransferWaitResult + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + self.result = .requestFailed // Not used anyway + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + guard message.encodedInputs.count == 1 else { assertionFailure(); throw ObvError.unexpectedNumberOfEncodedElements } + self.result = try message.encodedInputs[0].obvDecode() + } + + enum ObvError: Error { + case unexpectedNumberOfEncodedElements + } + + } + + + // MARK: - AbortProtocolMessage + + struct AbortProtocolMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.abortProtocol + let coreProtocolMessage: CoreProtocolMessage + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + } + + } + + + // MARK: - CloseWebsocketConnectionMessage + + struct CloseWebsocketConnectionMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.closeWebsocketConnection + let coreProtocolMessage: CoreProtocolMessage + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message (never called as we don't expect an answer to this server query) + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + } + + } + + + // MARK: - SourceSnapshotMessage + + struct SourceSnapshotMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.sourceSnapshot + let coreProtocolMessage: CoreProtocolMessage + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message (never called as we don't expect an answer to this server query) + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + } + + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolNotifications.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolNotifications.swift new file mode 100644 index 00000000..58723033 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolNotifications.swift @@ -0,0 +1,444 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvMetaManager +import ObvCrypto +import ObvTypes + + +struct OwnedIdentityTransferProtocolNotification { + + struct NotificationDescriptor { + let name: Notification.Name + let convert: (Notification) -> Payload + } + + enum KindForObserving { + case sourceDisplaySessionNumber(payload: (SourceDisplaySessionNumber.Payload) -> Void) + case ownedIdentityTransferProtocolFailed(payload: (OwnedIdentityTransferProtocolFailed.Payload) -> Void) + case userEnteredIncorrectTransferSessionNumber(payload: (UserEnteredIncorrectTransferSessionNumber.Payload) -> Void) + case sasIsAvailable(payload: (SasIsAvailable.Payload) -> Void) + case processingReceivedSnapshotOntargetDevice(payload: (ProcessingReceivedSnapshotOntargetDevice.Payload) -> Void) + case successfulTransferOnTargetDevice(payload: (SuccessfulTransferOnTargetDevice.Payload) -> Void) + case waitingForSASOnSourceDevice(payload: (WaitingForSASOnSourceDevice.Payload) -> Void) + } + + enum KindForPosting { + case sourceDisplaySessionNumber(payload: SourceDisplaySessionNumber.Payload) + case ownedIdentityTransferProtocolFailed(payload: OwnedIdentityTransferProtocolFailed.Payload) + case userEnteredIncorrectTransferSessionNumber(payload: UserEnteredIncorrectTransferSessionNumber.Payload) + case sasIsAvailable(payload: SasIsAvailable.Payload) + case processingReceivedSnapshotOntargetDevice(payload: ProcessingReceivedSnapshotOntargetDevice.Payload) + case successfulTransferOnTargetDevice(payload: SuccessfulTransferOnTargetDevice.Payload) + case waitingForSASOnSourceDevice(payload: WaitingForSASOnSourceDevice.Payload) + } + + + struct SourceDisplaySessionNumber { + + fileprivate static let name: Notification.Name = .init("io.olvid.protocolmanager.OwnedIdentityTransferProtocolNotification.SourceDisplaySessionNumber") + + struct Payload { + let protocolInstanceUID: UID + let sessionNumber: ObvOwnedIdentityTransferSessionNumber + enum Key: String { + case protocolInstanceUID = "protocolInstanceUID" + case sessionNumber = "sessionNumber" + } + } + + let payload: Payload + + } + + + struct OwnedIdentityTransferProtocolFailed { + + fileprivate static let name: Notification.Name = .init("io.olvid.protocolmanager.OwnedIdentityTransferProtocolNotification.OwnedIdentityTransferProtocolFailed") + + struct Payload { + let ownedCryptoIdentity: ObvCryptoIdentity + let protocolInstanceUID: UID + let error: Error + enum Key: String { + case ownedCryptoIdentity = "ownedCryptoIdentity" + case protocolInstanceUID = "protocolInstanceUID" + case error = "Error" + } + } + + let payload: Payload + + } + + + struct UserEnteredIncorrectTransferSessionNumber { + + fileprivate static let name: Notification.Name = .init("io.olvid.protocolmanager.OwnedIdentityTransferProtocolNotification.UserEnteredIncorrectTransferSessionNumber") + + struct Payload { + let protocolInstanceUID: UID + enum Key: String { + case protocolInstanceUID = "protocolInstanceUID" + } + } + + let payload: Payload + + } + + + struct SasIsAvailable { + + fileprivate static let name: Notification.Name = .init("io.olvid.protocolmanager.OwnedIdentityTransferProtocolNotification.SasIsAvailable") + + struct Payload { + let protocolInstanceUID: UID + let sas: ObvOwnedIdentityTransferSas + enum Key: String { + case protocolInstanceUID = "protocolInstanceUID" + case sas = "sas" + } + } + + let payload: Payload + + } + + + struct ProcessingReceivedSnapshotOntargetDevice { + + fileprivate static let name: Notification.Name = .init("io.olvid.protocolmanager.OwnedIdentityTransferProtocolNotification.ProcessingReceivedSnapshotOntargetDevice") + + struct Payload { + let protocolInstanceUID: UID + enum Key: String { + case protocolInstanceUID = "protocolInstanceUID" + } + } + + let payload: Payload + + } + + + struct SuccessfulTransferOnTargetDevice { + + fileprivate static let name: Notification.Name = .init("io.olvid.protocolmanager.OwnedIdentityTransferProtocolNotification.SuccessfulTransferOnTargetDevice") + + struct Payload { + let protocolInstanceUID: UID + let transferredOwnedCryptoId: ObvCryptoId + let postTransferError: Error? + enum Key: String { + case protocolInstanceUID = "protocolInstanceUID" + case transferredOwnedCryptoId = "transferredOwnedCryptoId" + case postTransferError = "postTransferError" + } + } + + let payload: Payload + + } + + + struct WaitingForSASOnSourceDevice { + + fileprivate static let name: Notification.Name = .init("io.olvid.protocolmanager.OwnedIdentityTransferProtocolNotification.WaitingForSASOnSourceDevice") + + struct Payload { + let protocolInstanceUID: UID + let sasExpectedOnInput: ObvOwnedIdentityTransferSas + let targetDeviceName: String + enum Key: String { + case protocolInstanceUID = "protocolInstanceUID" + case sasExpectedOnInput = "sasExpectedOnInput" + case targetDeviceName = "targetDeviceName" + } + } + + let payload: Payload + + } + +} + + +fileprivate extension OwnedIdentityTransferProtocolNotification.SourceDisplaySessionNumber.Payload { + + init(notification: Notification) { + let Key = OwnedIdentityTransferProtocolNotification.SourceDisplaySessionNumber.Payload.Key.self + self.protocolInstanceUID = notification.userInfo![Key.protocolInstanceUID.rawValue] as! UID + self.sessionNumber = notification.userInfo![Key.sessionNumber.rawValue] as! ObvOwnedIdentityTransferSessionNumber + } + +} + + +fileprivate extension OwnedIdentityTransferProtocolNotification.OwnedIdentityTransferProtocolFailed.Payload { + + init(notification: Notification) { + let Key = OwnedIdentityTransferProtocolNotification.OwnedIdentityTransferProtocolFailed.Payload.Key.self + self.ownedCryptoIdentity = notification.userInfo![Key.ownedCryptoIdentity.rawValue] as! ObvCryptoIdentity + self.protocolInstanceUID = notification.userInfo![Key.protocolInstanceUID.rawValue] as! UID + self.error = notification.userInfo![Key.error.rawValue] as! Error + } + +} + + +fileprivate extension OwnedIdentityTransferProtocolNotification.UserEnteredIncorrectTransferSessionNumber.Payload { + + init(notification: Notification) { + let Key = OwnedIdentityTransferProtocolNotification.UserEnteredIncorrectTransferSessionNumber.Payload.Key.self + self.protocolInstanceUID = notification.userInfo![Key.protocolInstanceUID.rawValue] as! UID + } + +} + + +fileprivate extension OwnedIdentityTransferProtocolNotification.SasIsAvailable.Payload { + + init(notification: Notification) { + let Key = OwnedIdentityTransferProtocolNotification.SasIsAvailable.Payload.Key.self + self.protocolInstanceUID = notification.userInfo![Key.protocolInstanceUID.rawValue] as! UID + self.sas = notification.userInfo![Key.sas.rawValue] as! ObvOwnedIdentityTransferSas + } + +} + + +fileprivate extension OwnedIdentityTransferProtocolNotification.ProcessingReceivedSnapshotOntargetDevice.Payload { + + init(notification: Notification) { + let Key = OwnedIdentityTransferProtocolNotification.SasIsAvailable.Payload.Key.self + self.protocolInstanceUID = notification.userInfo![Key.protocolInstanceUID.rawValue] as! UID + } + +} + + +fileprivate extension OwnedIdentityTransferProtocolNotification.SuccessfulTransferOnTargetDevice.Payload { + + init(notification: Notification) { + let Key = OwnedIdentityTransferProtocolNotification.SuccessfulTransferOnTargetDevice.Payload.Key.self + self.protocolInstanceUID = notification.userInfo![Key.protocolInstanceUID.rawValue] as! UID + self.transferredOwnedCryptoId = notification.userInfo![Key.transferredOwnedCryptoId.rawValue] as! ObvCryptoId + self.postTransferError = notification.userInfo![Key.postTransferError.rawValue] as? Error + } + +} + + +fileprivate extension OwnedIdentityTransferProtocolNotification.WaitingForSASOnSourceDevice.Payload { + + init(notification: Notification) { + let Key = OwnedIdentityTransferProtocolNotification.WaitingForSASOnSourceDevice.Payload.Key.self + self.protocolInstanceUID = notification.userInfo![Key.protocolInstanceUID.rawValue] as! UID + self.sasExpectedOnInput = notification.userInfo![Key.sasExpectedOnInput.rawValue] as! ObvOwnedIdentityTransferSas + self.targetDeviceName = notification.userInfo![Key.targetDeviceName.rawValue] as! String + } + +} + + +fileprivate extension Notification { + + init(payload: OwnedIdentityTransferProtocolNotification.SourceDisplaySessionNumber.Payload) { + let Type = OwnedIdentityTransferProtocolNotification.SourceDisplaySessionNumber.self + let userInfo: [String : Any] = [ + Type.Payload.Key.protocolInstanceUID.rawValue: payload.protocolInstanceUID, + Type.Payload.Key.sessionNumber.rawValue: payload.sessionNumber, + ] + self.init(name: Type.name, object: nil, userInfo: userInfo) + } + + + init(payload: OwnedIdentityTransferProtocolNotification.OwnedIdentityTransferProtocolFailed.Payload) { + let Type = OwnedIdentityTransferProtocolNotification.OwnedIdentityTransferProtocolFailed.self + let userInfo: [String : Any] = [ + Type.Payload.Key.ownedCryptoIdentity.rawValue: payload.ownedCryptoIdentity, + Type.Payload.Key.protocolInstanceUID.rawValue: payload.protocolInstanceUID, + Type.Payload.Key.error.rawValue: payload.error, + ] + self.init(name: Type.name, object: nil, userInfo: userInfo) + } + + + init(payload: OwnedIdentityTransferProtocolNotification.UserEnteredIncorrectTransferSessionNumber.Payload) { + let Type = OwnedIdentityTransferProtocolNotification.UserEnteredIncorrectTransferSessionNumber.self + let userInfo: [String : Any] = [ + Type.Payload.Key.protocolInstanceUID.rawValue: payload.protocolInstanceUID, + ] + self.init(name: Type.name, object: nil, userInfo: userInfo) + } + + + init(payload: OwnedIdentityTransferProtocolNotification.SasIsAvailable.Payload) { + let Type = OwnedIdentityTransferProtocolNotification.SasIsAvailable.self + let userInfo: [String : Any] = [ + Type.Payload.Key.protocolInstanceUID.rawValue: payload.protocolInstanceUID, + Type.Payload.Key.sas.rawValue: payload.sas, + ] + self.init(name: Type.name, object: nil, userInfo: userInfo) + } + + + init(payload: OwnedIdentityTransferProtocolNotification.ProcessingReceivedSnapshotOntargetDevice.Payload) { + let Type = OwnedIdentityTransferProtocolNotification.ProcessingReceivedSnapshotOntargetDevice.self + let userInfo: [String : Any] = [ + Type.Payload.Key.protocolInstanceUID.rawValue: payload.protocolInstanceUID, + ] + self.init(name: Type.name, object: nil, userInfo: userInfo) + } + + + init(payload: OwnedIdentityTransferProtocolNotification.SuccessfulTransferOnTargetDevice.Payload) { + let Type = OwnedIdentityTransferProtocolNotification.SuccessfulTransferOnTargetDevice.self + let userInfo: [String : Any] = [ + Type.Payload.Key.protocolInstanceUID.rawValue: payload.protocolInstanceUID, + Type.Payload.Key.transferredOwnedCryptoId.rawValue: payload.transferredOwnedCryptoId, + Type.Payload.Key.postTransferError.rawValue: payload.postTransferError as Any, + ] + self.init(name: Type.name, object: nil, userInfo: userInfo) + } + + + init(payload: OwnedIdentityTransferProtocolNotification.WaitingForSASOnSourceDevice.Payload) { + let Type = OwnedIdentityTransferProtocolNotification.WaitingForSASOnSourceDevice.self + let userInfo: [String : Any] = [ + Type.Payload.Key.protocolInstanceUID.rawValue: payload.protocolInstanceUID, + Type.Payload.Key.sasExpectedOnInput.rawValue: payload.sasExpectedOnInput, + Type.Payload.Key.targetDeviceName.rawValue: payload.targetDeviceName, + ] + self.init(name: Type.name, object: nil, userInfo: userInfo) + } + +} + + +extension ObvNotificationDelegate { + + private func addObserverOfOwnedIdentityTransferProtocolNotification(descriptor: OwnedIdentityTransferProtocolNotification.NotificationDescriptor, using block: @escaping (Payload) -> Void) -> NSObjectProtocol { + let token = addObserver(forName: descriptor.name, queue: nil) { notification in + let payload = descriptor.convert(notification) + Task { + block(payload) + } + } + return token + } + + + func addObserverOfOwnedIdentityTransferProtocolNotification(_ kind: OwnedIdentityTransferProtocolNotification.KindForObserving) -> NSObjectProtocol { + switch kind { + case .sourceDisplaySessionNumber(payload: let payload): + let Type = OwnedIdentityTransferProtocolNotification.SourceDisplaySessionNumber.self + let notificationDescriptor: OwnedIdentityTransferProtocolNotification.NotificationDescriptor = .init(name: Type.name, convert: Type.Payload.init) + return addObserverOfOwnedIdentityTransferProtocolNotification(descriptor: notificationDescriptor, using: payload) + case .ownedIdentityTransferProtocolFailed(payload: let payload): + let Type = OwnedIdentityTransferProtocolNotification.OwnedIdentityTransferProtocolFailed.self + let notificationDescriptor: OwnedIdentityTransferProtocolNotification.NotificationDescriptor = .init(name: Type.name, convert: Type.Payload.init) + return addObserverOfOwnedIdentityTransferProtocolNotification(descriptor: notificationDescriptor, using: payload) + case .userEnteredIncorrectTransferSessionNumber(payload: let payload): + let Type = OwnedIdentityTransferProtocolNotification.UserEnteredIncorrectTransferSessionNumber.self + let notificationDescriptor: OwnedIdentityTransferProtocolNotification.NotificationDescriptor = .init(name: Type.name, convert: Type.Payload.init) + return addObserverOfOwnedIdentityTransferProtocolNotification(descriptor: notificationDescriptor, using: payload) + case .sasIsAvailable(payload: let payload): + let Type = OwnedIdentityTransferProtocolNotification.SasIsAvailable.self + let notificationDescriptor: OwnedIdentityTransferProtocolNotification.NotificationDescriptor = .init(name: Type.name, convert: Type.Payload.init) + return addObserverOfOwnedIdentityTransferProtocolNotification(descriptor: notificationDescriptor, using: payload) + case .processingReceivedSnapshotOntargetDevice(payload: let payload): + let Type = OwnedIdentityTransferProtocolNotification.ProcessingReceivedSnapshotOntargetDevice.self + let notificationDescriptor: OwnedIdentityTransferProtocolNotification.NotificationDescriptor = .init(name: Type.name, convert: Type.Payload.init) + return addObserverOfOwnedIdentityTransferProtocolNotification(descriptor: notificationDescriptor, using: payload) + case .successfulTransferOnTargetDevice(payload: let payload): + let Type = OwnedIdentityTransferProtocolNotification.SuccessfulTransferOnTargetDevice.self + let notificationDescriptor: OwnedIdentityTransferProtocolNotification.NotificationDescriptor = .init(name: Type.name, convert: Type.Payload.init) + return addObserverOfOwnedIdentityTransferProtocolNotification(descriptor: notificationDescriptor, using: payload) + case .waitingForSASOnSourceDevice(payload: let payload): + let Type = OwnedIdentityTransferProtocolNotification.WaitingForSASOnSourceDevice.self + let notificationDescriptor: OwnedIdentityTransferProtocolNotification.NotificationDescriptor = .init(name: Type.name, convert: Type.Payload.init) + return addObserverOfOwnedIdentityTransferProtocolNotification(descriptor: notificationDescriptor, using: payload) + } + } + + + func postOwnedIdentityTransferProtocolNotification(_ kind: OwnedIdentityTransferProtocolNotification.KindForPosting) { + Task { + let notification: Notification + switch kind { + case .sourceDisplaySessionNumber(payload: let payload): + notification = .init(payload: payload) + case .ownedIdentityTransferProtocolFailed(payload: let payload): + notification = .init(payload: payload) + case .userEnteredIncorrectTransferSessionNumber(payload: let payload): + notification = .init(payload: payload) + case .sasIsAvailable(payload: let payload): + notification = .init(payload: payload) + case .processingReceivedSnapshotOntargetDevice(payload: let payload): + notification = .init(payload: payload) + case .successfulTransferOnTargetDevice(payload: let payload): + notification = .init(payload: payload) + case .waitingForSASOnSourceDevice(payload: let payload): + notification = .init(payload: payload) + } + post(name: notification.name, userInfo: notification.userInfo) + } + } + +} + + +//extension NotificationCenter { +// +// private func addObserverOfOwnedIdentityTransferProtocolNotification(descriptor: OwnedIdentityTransferProtocolNotification.NotificationDescriptor, using block: @escaping (Payload) -> Void) -> NSObjectProtocol { +// let token = addObserver(forName: descriptor.name, object: nil, queue: nil) { notification in +// let payload = descriptor.convert(notification) +// Task { +// block(payload) +// } +// } +// return token +// } +// +// +// func addObserverOfOwnedIdentityTransferProtocolNotification(_ kind: OwnedIdentityTransferProtocolNotification.KindForObserving) -> NSObjectProtocol { +// switch kind { +// case .cancelOwnedIdentityTransferProtocol(using: let block): +// let Type = OwnedIdentityTransferProtocolNotification.CancelOwnedIdentityTransferProtocol.self +// let notificationDescriptor: OwnedIdentityTransferProtocolNotification.NotificationDescriptor = .init(name: Type.name, convert: Type.Payload.init) +// return addObserverOfOwnedIdentityTransferProtocolNotification(descriptor: notificationDescriptor, using: block) +// } +// } +// +// +// func postOwnedIdentityTransferProtocolNotification(_ kind: OwnedIdentityTransferProtocolNotification.KindForPosting) { +// Task { +// let notification: Notification +// switch kind { +// case .cancelOwnedIdentityTransferProtocol(payload: let payload): +// notification = .init(payload: payload) +// } +// post(notification) +// } +// } +// +//} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolStates.swift new file mode 100644 index 00000000..6d6e5908 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolStates.swift @@ -0,0 +1,311 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvCrypto +import ObvTypes + + +// MARK: - Protocol States + +extension OwnedIdentityTransferProtocol { + + enum StateId: Int, ConcreteProtocolStateId { + + case initialState = 0 + case sourceWaitingForSessionNumber = 1 + case sourceWaitingForTargetConnection = 2 + // No need for a targetWaitingForSessionNumber state (defined under Android) + case targetWaitingForTransferredIdentity = 4 + case sourceWaitingForTargetSeed = 5 + case targetWaitingForDecommitment = 6 + case sourceWaitingForSASInput = 7 + case targetWaitingForSnapshot = 8 + case final = 99 + + var concreteProtocolStateType: ConcreteProtocolState.Type { + switch self { + case .initialState: return ConcreteProtocolInitialState.self + case .sourceWaitingForSessionNumber: return SourceWaitingForSessionNumberState.self + case .sourceWaitingForTargetConnection: return SourceWaitingForTargetConnectionState.self + case .targetWaitingForTransferredIdentity: return TargetWaitingForTransferredIdentityState.self + case .targetWaitingForDecommitment: return TargetWaitingForDecommitmentState.self + case .targetWaitingForSnapshot: return TargetWaitingForSnapshotState.self + case .final: return FinalState.self + case .sourceWaitingForTargetSeed: return SourceWaitingForTargetSeedState.self + case .sourceWaitingForSASInput: return SourceWaitingForSASInputState.self + } + } + + } + + + + // MARK: - SourceWaitingForSessionNumberState + + struct SourceWaitingForSessionNumberState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.sourceWaitingForSessionNumber + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + + init(_ obvEncoded: ObvEncoded) throws {} + + } + + + // MARK: - SourceWaitingForTargetConnectionState + + struct SourceWaitingForTargetConnectionState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.sourceWaitingForTargetConnection + + let sourceConnectionId: String + + init(sourceConnectionId: String) { + self.sourceConnectionId = sourceConnectionId + } + + func obvEncode() -> ObvEncoded { return [sourceConnectionId].obvEncode() } + + init(_ obvEncoded: ObvEncoded) throws { + guard let encodedValues = [ObvEncoded](obvEncoded) else { assertionFailure(); throw ObvStateError.couldNotDecodeState} + guard encodedValues.count == 1 else { assertionFailure(); throw ObvStateError.unexpectedNumberOfEncodedValues } + self.sourceConnectionId = try encodedValues[0].obvDecode() + } + + } + + + // MARK: - TargetWaitingForTransferredIdentityState + + struct TargetWaitingForTransferredIdentityState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.targetWaitingForTransferredIdentity + + let currentDeviceName: String + let encryptionPrivateKey: PrivateKeyForPublicKeyEncryption + let macKey: MACKey + + init(currentDeviceName: String, encryptionPrivateKey: PrivateKeyForPublicKeyEncryption, macKey: MACKey) { + self.currentDeviceName = currentDeviceName + self.encryptionPrivateKey = encryptionPrivateKey + self.macKey = macKey + } + + func obvEncode() -> ObvEncoded { + [currentDeviceName, + encryptionPrivateKey, + macKey, + ].obvEncode() + } + + init(_ obvEncoded: ObvEncoded) throws { + guard let encodedValues = [ObvEncoded](obvEncoded) else { assertionFailure(); throw ObvStateError.couldNotDecodeState} + guard encodedValues.count == 3 else { assertionFailure(); throw ObvStateError.unexpectedNumberOfEncodedValues } + self.currentDeviceName = try encodedValues[0].obvDecode() + self.encryptionPrivateKey = try PrivateKeyForPublicKeyEncryptionDecoder.obvDecodeOrThrow(encodedValues[1]) + self.macKey = try MACKeyDecoder.obvDecodeOrThrow(encodedValues[2]) + } + + } + + + // MARK: - TargetWaitingForDecommitmentState + + struct TargetWaitingForDecommitmentState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.targetWaitingForDecommitment + + let currentDeviceName: String + let encryptionPrivateKey: PrivateKeyForPublicKeyEncryption + let otherConnectionIdentifier: String + let transferredIdentity: ObvCryptoIdentity + let commitment: Data + let seedTargetForSas: Seed + + init(currentDeviceName: String, encryptionPrivateKey: PrivateKeyForPublicKeyEncryption, otherConnectionIdentifier: String, transferredIdentity: ObvCryptoIdentity, commitment: Data, seedTargetForSas: Seed) { + self.currentDeviceName = currentDeviceName + self.encryptionPrivateKey = encryptionPrivateKey + self.otherConnectionIdentifier = otherConnectionIdentifier + self.transferredIdentity = transferredIdentity + self.commitment = commitment + self.seedTargetForSas = seedTargetForSas + } + + func obvEncode() -> ObvEncoded { + [currentDeviceName, + encryptionPrivateKey, + otherConnectionIdentifier, + transferredIdentity, + commitment, + seedTargetForSas, + ].obvEncode() + } + + init(_ obvEncoded: ObvEncoded) throws { + guard let encodedValues = [ObvEncoded](obvEncoded) else { assertionFailure(); throw ObvStateError.couldNotDecodeState} + guard encodedValues.count == 6 else { assertionFailure(); throw ObvStateError.unexpectedNumberOfEncodedValues } + self.currentDeviceName = try encodedValues[0].obvDecode() + self.encryptionPrivateKey = try PrivateKeyForPublicKeyEncryptionDecoder.obvDecodeOrThrow(encodedValues[1]) + self.otherConnectionIdentifier = try encodedValues[2].obvDecode() + self.transferredIdentity = try encodedValues[3].obvDecode() + self.commitment = try encodedValues[4].obvDecode() + self.seedTargetForSas = try encodedValues[5].obvDecode() + } + + } + + + + // MARK: - TargetWaitingForSnapshotState + + struct TargetWaitingForSnapshotState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.targetWaitingForSnapshot + + let currentDeviceName: String // ok + let encryptionPrivateKey: PrivateKeyForPublicKeyEncryption // ok + let transferredIdentity: ObvCryptoIdentity // ok + + init(currentDeviceName: String, encryptionPrivateKey: PrivateKeyForPublicKeyEncryption, transferredIdentity: ObvCryptoIdentity) { + self.currentDeviceName = currentDeviceName + self.encryptionPrivateKey = encryptionPrivateKey + self.transferredIdentity = transferredIdentity + } + + func obvEncode() -> ObvEncoded { + [currentDeviceName, + encryptionPrivateKey, + transferredIdentity, + ].obvEncode() + } + + init(_ obvEncoded: ObvEncoded) throws { + guard let encodedValues = [ObvEncoded](obvEncoded) else { assertionFailure(); throw ObvStateError.couldNotDecodeState} + guard encodedValues.count == 3 else { assertionFailure(); throw ObvStateError.unexpectedNumberOfEncodedValues } + self.currentDeviceName = try encodedValues[0].obvDecode() + self.encryptionPrivateKey = try PrivateKeyForPublicKeyEncryptionDecoder.obvDecodeOrThrow(encodedValues[1]) + self.transferredIdentity = try encodedValues[2].obvDecode() + } + + } + + + // MARK: - SourceWaitingForTargetSeedState + + struct SourceWaitingForTargetSeedState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.sourceWaitingForTargetSeed + + let targetConnectionId: String + let targetEphemeralIdentity: ObvCryptoIdentity + let seedSourceForSas: Seed + let decommitment: Data + + init(targetConnectionId: String, targetEphemeralIdentity: ObvCryptoIdentity, seedSourceForSas: Seed, decommitment: Data) { + self.targetConnectionId = targetConnectionId + self.targetEphemeralIdentity = targetEphemeralIdentity + self.seedSourceForSas = seedSourceForSas + self.decommitment = decommitment + } + + func obvEncode() -> ObvEncoded { + [ + targetConnectionId, + targetEphemeralIdentity, + seedSourceForSas, + decommitment, + ].obvEncode() + } + + init(_ obvEncoded: ObvEncoded) throws { + guard let encodedValues = [ObvEncoded](obvEncoded) else { assertionFailure(); throw ObvStateError.couldNotDecodeState} + guard encodedValues.count == 4 else { assertionFailure(); throw ObvStateError.unexpectedNumberOfEncodedValues } + self.targetConnectionId = try encodedValues[0].obvDecode() + self.targetEphemeralIdentity = try encodedValues[1].obvDecode() + self.seedSourceForSas = try encodedValues[2].obvDecode() + self.decommitment = try encodedValues[3].obvDecode() + } + + } + + + // MARK: - SourceWaitingForSASInputState + + struct SourceWaitingForSASInputState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.sourceWaitingForSASInput + + let targetConnectionId: String + let targetEphemeralIdentity: ObvCryptoIdentity + let fullSas: ObvOwnedIdentityTransferSas + + + init(targetConnectionId: String, targetEphemeralIdentity: ObvCryptoIdentity, fullSas: ObvOwnedIdentityTransferSas) { + self.targetConnectionId = targetConnectionId + self.targetEphemeralIdentity = targetEphemeralIdentity + self.fullSas = fullSas + } + + func obvEncode() -> ObvEncoded { + [ + targetConnectionId, + targetEphemeralIdentity, + fullSas, + ].obvEncode() + } + + init(_ obvEncoded: ObvEncoded) throws { + guard let encodedValues = [ObvEncoded](obvEncoded) else { assertionFailure(); throw ObvStateError.couldNotDecodeState} + guard encodedValues.count == 3 else { assertionFailure(); throw ObvStateError.unexpectedNumberOfEncodedValues } + self.targetConnectionId = try encodedValues[0].obvDecode() + self.targetEphemeralIdentity = try encodedValues[1].obvDecode() + self.fullSas = try encodedValues[2].obvDecode() + } + + } + + + // MARK: - FinalState + + struct FinalState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.final + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + + } + + + // Errors + + enum ObvStateError: Error { + case couldNotDecodeState + case unexpectedNumberOfEncodedValues + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolSteps.swift new file mode 100644 index 00000000..46b35277 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/OwnedIdentityTransferProtocol/OwnedIdentityTransferProtocolSteps.swift @@ -0,0 +1,1530 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import ObvMetaManager +import ObvCrypto +import ObvEncoder +import ObvTypes + + +// MARK: - Protocol Steps + +extension OwnedIdentityTransferProtocol { + + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { + + // Steps executed on the source device + + case initiateTransferOnSourceDevice = 0 + case sourceDisplaysSessionNumber = 1 + case sourceSendsTransferredIdentityAndCommitment = 2 + case sourceSendsDecommitmentAndShowsSasInput = 3 + case sourceCheckSasInputAndSendSnapshot = 4 + + // Steps executed on the target device + + case initiateTransferOnTargetDevice = 10 + case targetSendsSeed = 11 + case targetShowsSas = 12 + case targetProcessesSnapshot = 13 + + // Abort step + + case abortProtocol = 100 + + func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { + switch self { + + // Steps executed on the source device + + case .initiateTransferOnSourceDevice: + let step = InitiateTransferOnSourceDeviceStep(from: concreteProtocol, and: receivedMessage) + return step + case .sourceDisplaysSessionNumber: + let step = SourceDisplaysSessionNumberStep(from: concreteProtocol, and: receivedMessage) + return step + case .sourceSendsTransferredIdentityAndCommitment: + let step = SourceSendsTransferredIdentityAndCommitmentStep(from: concreteProtocol, and: receivedMessage) + return step + case .sourceSendsDecommitmentAndShowsSasInput: + let step = SourceSendsDecommitmentAndShowsSasInputStep(from: concreteProtocol, and: receivedMessage) + return step + case .sourceCheckSasInputAndSendSnapshot: + let step = SourceCheckSasInputAndSendSnapshotStep(from: concreteProtocol, and: receivedMessage) + return step + + // Steps executed on the target device + + case .initiateTransferOnTargetDevice: + let step = InitiateTransferOnTargetDeviceStep(from: concreteProtocol, and: receivedMessage) + return step + case .targetSendsSeed: + let step = TargetSendsSeedStep(from: concreteProtocol, and: receivedMessage) + return step + case .targetShowsSas: + let step = TargetShowsSasStep(from: concreteProtocol, and: receivedMessage) + return step + case .targetProcessesSnapshot: + let step = TargetProcessesSnapshotStep(from: concreteProtocol, and: receivedMessage) + return step + + // Abort step + + case .abortProtocol: + if let step = AbortProtocolStepFromSourceWaitingForSessionNumberState(from: concreteProtocol, and: receivedMessage) { + return step + } else if let step = AbortProtocolStepFromSourceWaitingForTargetConnectionState(from: concreteProtocol, and: receivedMessage) { + return step + } else if let step = AbortProtocolStepFromSourceWaitingForTargetSeedState(from: concreteProtocol, and: receivedMessage) { + return step + } else if let step = AbortProtocolStepFromTargetWaitingForTransferredIdentityState(from: concreteProtocol, and: receivedMessage) { + return step + } else if let step = AbortProtocolStepFromTargetWaitingForDecommitmentState(from: concreteProtocol, and: receivedMessage) { + return step + } else if let step = AbortProtocolStepFromSourceWaitingForSASInputState(from: concreteProtocol, and: receivedMessage) { + return step + } else if let step = AbortProtocolStepFromTargetWaitingForSnapshotState(from: concreteProtocol, and: receivedMessage) { + return step + } else { + return nil + } + } + } + + } + + + // MARK: - InitiateTransferOnSourceDeviceStep + + final class InitiateTransferOnSourceDeviceStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: InitiateTransferOnSourceDeviceMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: OwnedIdentityTransferProtocol.InitiateTransferOnSourceDeviceMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + do { + + // Connect to the transfer server and get a session number + + do { + let type = ObvChannelServerQueryMessageToSend.QueryType.sourceGetSessionNumber(protocolInstanceUID: protocolInstanceUid) + let core = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concrete = SourceGetSessionNumberMessage(coreProtocolMessage: core) + guard let message = concrete.generateObvChannelServerQueryMessageToSend(serverQueryType: type) else { + throw ObvError.couldNotGenerateObvChannelServerQueryMessageToSend + } + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + // Return the new state + + return SourceWaitingForSessionNumberState() + + } catch { + + assertionFailure() + postOwnedIdentityTransferProtocolNotification(withError: error) + return startState + + } + + } + + + /// Called by the step when things got really wrong. This notification will be catched by the protocol starter delegate that will properly abort this protocol and notify the app. + private func postOwnedIdentityTransferProtocolNotification(withError: Error) { + let notificationDelegate = self.notificationDelegate + let ownedCryptoIdentity = self.ownedIdentity + let protocolInstanceUID = self.protocolInstanceUid + try? obvContext.addContextDidSaveCompletionHandler { error in + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.ownedIdentityTransferProtocolFailed(payload: .init( + ownedCryptoIdentity: ownedCryptoIdentity, + protocolInstanceUID: protocolInstanceUID, + error: withError))) + } + } + + + } + + + // MARK: - SourceDisplaysSessionNumberStep + + final class SourceDisplaysSessionNumberStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: SourceWaitingForSessionNumberState + let receivedMessage: SourceGetSessionNumberMessage + + init?(startState: SourceWaitingForSessionNumberState, receivedMessage: SourceGetSessionNumberMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + do { + + let result = receivedMessage.result + + switch result { + + case .requestFailed: + + throw ObvError.serverRequestFailed + + case .requestSucceeded(sourceConnectionId: let sourceConnectionId, sessionNumber: let sessionNumber): + + // On save, notify that the session number is available + + do { + let notificationDelegate = self.notificationDelegate + let protocolInstanceUid = self.protocolInstanceUid + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.sourceDisplaySessionNumber(payload: .init(protocolInstanceUID: protocolInstanceUid, sessionNumber: sessionNumber))) + } + } + + // Wait for the transfer server's target connection message + + do { + let type = ObvChannelServerQueryMessageToSend.QueryType.sourceWaitForTargetConnection(protocolInstanceUID: protocolInstanceUid) + let core = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concrete = SourceWaitForTargetConnectionMessage(coreProtocolMessage: core) + guard let message = concrete.generateObvChannelServerQueryMessageToSend(serverQueryType: type) else { + throw ObvError.couldNotGenerateObvChannelServerQueryMessageToSend + } + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + // Return the new state + + return SourceWaitingForTargetConnectionState(sourceConnectionId: sourceConnectionId) + + } + + } catch { + + assertionFailure() + postOwnedIdentityTransferProtocolNotification(withError: error) + return startState + + } + + } + + + /// Called by the step when things got really wrong. This notification will be catched by the protocol starter delegate that will properly abort this protocol and notify the app. + private func postOwnedIdentityTransferProtocolNotification(withError: Error) { + let notificationDelegate = self.notificationDelegate + let ownedCryptoIdentity = self.ownedIdentity + let protocolInstanceUID = self.protocolInstanceUid + try? obvContext.addContextDidSaveCompletionHandler { error in + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.ownedIdentityTransferProtocolFailed(payload: .init( + ownedCryptoIdentity: ownedCryptoIdentity, + protocolInstanceUID: protocolInstanceUID, + error: withError))) + } + } + + } + + + // MARK: - SourceSendsTransferredIdentityAndCommitmentStep + + final class SourceSendsTransferredIdentityAndCommitmentStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: SourceWaitingForTargetConnectionState + let receivedMessage: SourceWaitForTargetConnectionMessage + + init?(startState: SourceWaitingForTargetConnectionState, receivedMessage: SourceWaitForTargetConnectionMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + do { + + let sourceConnectionId = startState.sourceConnectionId + + switch receivedMessage.result { + + case .requestFailed: + + throw ObvError.serverRequestFailed + + case .requestSucceeded(targetConnectionId: let targetConnectionId, payload: let payload): + + // Decode the payload to get the target ephemeral identity + + let targetEphemeralIdentity: ObvCryptoIdentity + do { + guard let obvEncoded = ObvEncoded(withRawData: payload), + let identity = ObvCryptoIdentity(obvEncoded) else { + throw ObvError.decodingFailed + } + targetEphemeralIdentity = identity + } + + // Generate a seed for the SAS and commit on it + + let seedSourceForSas = prng.genSeed() + let commitmentScheme = ObvCryptoSuite.sharedInstance.commitmentScheme() + let (commitment, decommitment) = commitmentScheme.commit( + onTag: ownedIdentity.getIdentity(), + andValue: seedSourceForSas.raw, + with: prng) + + // Compute the encrypted payload, containing our sourceConnectionIdentifier, the identity to transfer, and the commitment + + let payload: EncryptedData + do { + let cleartextPayload: Data = [ + sourceConnectionId.obvEncode(), + ownedIdentity.obvEncode(), + commitment.obvEncode(), + ].obvEncode().rawData + payload = PublicKeyEncryption.encrypt(cleartextPayload, for: targetEphemeralIdentity, randomizedWith: prng) + } + + // Send the encrypted payload + + do { + let type = ObvChannelServerQueryMessageToSend.QueryType.transferRelay(protocolInstanceUID: protocolInstanceUid, connectionIdentifier: targetConnectionId, payload: payload.raw, thenCloseWebSocket: false) + let core = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concrete = SourceSendCommitmentMessage(coreProtocolMessage: core) + guard let message = concrete.generateObvChannelServerQueryMessageToSend(serverQueryType: type) else { + throw ObvError.couldNotGenerateObvChannelServerQueryMessageToSend + } + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + return SourceWaitingForTargetSeedState(targetConnectionId: targetConnectionId, targetEphemeralIdentity: targetEphemeralIdentity, seedSourceForSas: seedSourceForSas, decommitment: decommitment) + + } + + } catch { + + assertionFailure() + postOwnedIdentityTransferProtocolNotification(withError: error) + return startState + + } + + } + + + /// Called by the step when things got really wrong. This notification will be catched by the protocol starter delegate that will properly abort this protocol and notify the app. + private func postOwnedIdentityTransferProtocolNotification(withError: Error) { + let notificationDelegate = self.notificationDelegate + let ownedCryptoIdentity = self.ownedIdentity + let protocolInstanceUID = self.protocolInstanceUid + try? obvContext.addContextDidSaveCompletionHandler { error in + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.ownedIdentityTransferProtocolFailed(payload: .init( + ownedCryptoIdentity: ownedCryptoIdentity, + protocolInstanceUID: protocolInstanceUID, + error: withError))) + } + } + + + } + + + // MARK: - SourceSendsDecommitmentAndShowsSasInputStep + + final class SourceSendsDecommitmentAndShowsSasInputStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: SourceWaitingForTargetSeedState + let receivedMessage: SourceSendCommitmentMessage + + init?(startState: SourceWaitingForTargetSeedState, receivedMessage: SourceSendCommitmentMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + do { + + let targetConnectionId = startState.targetConnectionId + let targetEphemeralIdentity = startState.targetEphemeralIdentity + let seedSourceForSas = startState.seedSourceForSas + let decommitment = startState.decommitment + + switch receivedMessage.result { + + case .requestFailed: + + throw ObvError.serverRequestFailed + + case .requestSucceeded(let payload): + + // Decrypt the payload + + let cleartextPayload: Data + do { + let encryptedPayload = EncryptedData(data: payload) + guard let _cleartextPayload = try? identityDelegate.decryptProtocolCiphertext(encryptedPayload, forOwnedCryptoId: ownedIdentity, within: obvContext) else { + throw ObvError.decryptionFailed + } + cleartextPayload = _cleartextPayload + } + + // Decode the cleartext payload to get the seedTargetForSas and the target device name + + let targetDeviceName: String + let seedTargetForSas: Seed + do { + guard let encoded = ObvEncoded(withRawData: cleartextPayload), + let dict = [ObvEncoded](encoded), + dict.count == 2 else { + throw ObvError.decodingFailed + } + targetDeviceName = try dict[0].obvDecode() + seedTargetForSas = try dict[1].obvDecode() + } + + // Send the decommitment to the target device + + do { + let payload = PublicKeyEncryption.encrypt(decommitment, for: targetEphemeralIdentity, randomizedWith: prng) + let type = ObvChannelServerQueryMessageToSend.QueryType.transferRelay(protocolInstanceUID: protocolInstanceUid, connectionIdentifier: targetConnectionId, payload: payload.raw, thenCloseWebSocket: false) + let core = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concrete = SourceDecommitmentMessage(coreProtocolMessage: core) + guard let message = concrete.generateObvChannelServerQueryMessageToSend(serverQueryType: type) else { + throw ObvError.couldNotGenerateObvChannelServerQueryMessageToSend + } + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + // Compute the complete SAS + + let fullSas: ObvOwnedIdentityTransferSas + do { + let Sas = try SAS.compute(seedAlice: seedSourceForSas, seedBob: seedTargetForSas, identityBob: targetEphemeralIdentity, numberOfDigits: ObvConstants.defaultNumberOfDigitsForSAS * 2) + fullSas = try .init(fullSas: Sas) + } + + // Send the SAS to the UI so that it can wait and check for the SAS user input + + do { + let notificationDelegate = self.notificationDelegate + let protocolInstanceUid = self.protocolInstanceUid + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + notificationDelegate.postOwnedIdentityTransferProtocolNotification( + .waitingForSASOnSourceDevice(payload: .init(protocolInstanceUID: protocolInstanceUid, + sasExpectedOnInput: fullSas, + targetDeviceName: targetDeviceName + ))) + } + } + + // Return the new state + + return SourceWaitingForSASInputState(targetConnectionId: targetConnectionId, targetEphemeralIdentity: targetEphemeralIdentity, fullSas: fullSas) + + } + + } catch { + + assertionFailure() + postOwnedIdentityTransferProtocolNotification(withError: error) + return startState + + } + + } + + + /// Called by the step when things got really wrong. This notification will be catched by the protocol starter delegate that will properly abort this protocol and notify the app. + private func postOwnedIdentityTransferProtocolNotification(withError: Error) { + let notificationDelegate = self.notificationDelegate + let ownedCryptoIdentity = self.ownedIdentity + let protocolInstanceUID = self.protocolInstanceUid + try? obvContext.addContextDidSaveCompletionHandler { error in + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.ownedIdentityTransferProtocolFailed(payload: .init( + ownedCryptoIdentity: ownedCryptoIdentity, + protocolInstanceUID: protocolInstanceUID, + error: withError))) + } + } + + } + + + // MARK: - SourceCheckSasInputAndSendSnapshotStep + + final class SourceCheckSasInputAndSendSnapshotStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: SourceWaitingForSASInputState + let receivedMessage: SourceSASInputMessage + + init?(startState: SourceWaitingForSASInputState, receivedMessage: SourceSASInputMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + do { + + let targetConnectionId = startState.targetConnectionId + let targetEphemeralIdentity = startState.targetEphemeralIdentity + let fullSas = startState.fullSas + + let enteredSAS = receivedMessage.enteredSAS + let deviceUIDToKeepActive = receivedMessage.deviceUIDToKeepActive + + // Make sure the SAS entered by the user is correct (it should work as this was tested in the UI already) + + guard enteredSAS == fullSas else { + throw ObvError.incorrectSAS + } + + // The SAS is correct, we can send the snapshot + + // Compute the cleartext containing the snapshot and, optionally, the UID of the device to keep active (nil means "do nothing", i.e., the target device will remain active) + + let syncSnapshotAsObvDict = try syncSnapshotDelegate.getSyncSnapshotNodeAsObvDictionary(for: ObvCryptoId(cryptoIdentity: ownedIdentity)) + let cleartext: Data + if let deviceUIDToKeepActive { + cleartext = [ + syncSnapshotAsObvDict.obvEncode(), + deviceUIDToKeepActive.obvEncode(), + ].obvEncode().rawData + } else { + cleartext = [ + syncSnapshotAsObvDict.obvEncode(), + ].obvEncode().rawData + } + + // Encrypt using the target device ephemeral identity + + let ciphertext = PublicKeyEncryption.encrypt(cleartext, for: targetEphemeralIdentity, randomizedWith: prng) + + // Post the message + + do { + let type = ObvChannelServerQueryMessageToSend.QueryType.transferRelay(protocolInstanceUID: protocolInstanceUid, connectionIdentifier: targetConnectionId, payload: ciphertext.raw, thenCloseWebSocket: true) + let core = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concrete = SourceSnapshotMessage(coreProtocolMessage: core) + guard let message = concrete.generateObvChannelServerQueryMessageToSend(serverQueryType: type) else { + throw ObvError.couldNotGenerateObvChannelServerQueryMessageToSend + } + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + return FinalState() + + } catch { + + assertionFailure() + postOwnedIdentityTransferProtocolNotification(withError: error) + return startState + + } + + } + + /// Called by the step when things got really wrong. This notification will be catched by the protocol starter delegate that will properly abort this protocol and notify the app. + private func postOwnedIdentityTransferProtocolNotification(withError: Error) { + let notificationDelegate = self.notificationDelegate + let ownedCryptoIdentity = self.ownedIdentity + let protocolInstanceUID = self.protocolInstanceUid + try? obvContext.addContextDidSaveCompletionHandler { error in + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.ownedIdentityTransferProtocolFailed(payload: .init( + ownedCryptoIdentity: ownedCryptoIdentity, + protocolInstanceUID: protocolInstanceUID, + error: withError))) + } + } + + + } + + + // MARK: - InitiateTransferOnTargetDeviceStep + + final class InitiateTransferOnTargetDeviceStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: InitiateTransferOnTargetDeviceMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: OwnedIdentityTransferProtocol.InitiateTransferOnTargetDeviceMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + do { + + let currentDeviceName = receivedMessage.currentDeviceName + let transferSessionNumber = receivedMessage.transferSessionNumber + let encryptionPrivateKey = receivedMessage.encryptionPrivateKey + let macKey = receivedMessage.macKey + + // Send the ephemeral owned identity to the source (note that the current owned identity is an ephemeral identity, generated to execute this protocol step) + + do { + let payload = ownedIdentity.obvEncode().rawData // This is an ephemeral identity generated for this protocol only + let type = ObvChannelServerQueryMessageToSend.QueryType.targetSendEphemeralIdentity(protocolInstanceUID: protocolInstanceUid, transferSessionNumber: transferSessionNumber, payload: payload) + let core = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concrete = TargetSendEphemeralIdentityMessage(coreProtocolMessage: core) + guard let message = concrete.generateObvChannelServerQueryMessageToSend(serverQueryType: type) else { + throw ObvError.couldNotGenerateObvChannelServerQueryMessageToSend + } + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + // Return the new state + + return TargetWaitingForTransferredIdentityState(currentDeviceName: currentDeviceName, encryptionPrivateKey: encryptionPrivateKey, macKey: macKey) + + } catch { + + assertionFailure() + postOwnedIdentityTransferProtocolNotification(withError: error) + return startState + + } + } + + + /// Called by the step when things got really wrong. This notification will be catched by the protocol starter delegate that will properly abort this protocol and notify the app. + private func postOwnedIdentityTransferProtocolNotification(withError: Error) { + let notificationDelegate = self.notificationDelegate + let ownedCryptoIdentity = self.ownedIdentity + let protocolInstanceUID = self.protocolInstanceUid + try? obvContext.addContextDidSaveCompletionHandler { error in + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.ownedIdentityTransferProtocolFailed(payload: .init( + ownedCryptoIdentity: ownedCryptoIdentity, + protocolInstanceUID: protocolInstanceUID, + error: withError))) + } + } + + + } + + + // MARK: - TargetSendsSeedStep + + final class TargetSendsSeedStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: TargetWaitingForTransferredIdentityState + let receivedMessage: TargetSendEphemeralIdentityMessage + + init?(startState: TargetWaitingForTransferredIdentityState, receivedMessage: TargetSendEphemeralIdentityMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + do { + + let currentDeviceName = startState.currentDeviceName + let encryptionPrivateKey = startState.encryptionPrivateKey + let macKey = startState.macKey + let result = receivedMessage.result + + switch result { + + case .requestDidFail: + + throw ObvError.serverRequestFailed + + case .incorrectTransferSessionNumber: + + // On save, notify that the transfer session number entered by the user is incorrect + + do { + let notificationDelegate = self.notificationDelegate + let protocolInstanceUid = self.protocolInstanceUid + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.userEnteredIncorrectTransferSessionNumber(payload: .init(protocolInstanceUID: protocolInstanceUid))) + } + } + + // Return the start state + + return startState + + case .requestSucceeded(otherConnectionId: let otherConnectionId, payload: let payload): + + // Decrypt the payload + + let cleartextPayload: Data + do { + let encryptedPayload = EncryptedData(data: payload) + guard let _cleartextPayload = PublicKeyEncryption.decrypt(encryptedPayload, using: encryptionPrivateKey) else { + throw ObvError.decryptionFailed + } + cleartextPayload = _cleartextPayload + } + + // Decode the payload + + let decryptedOtherConnectionIdentifier: String + let transferredIdentity: ObvCryptoIdentity + let commitment: Data + do { + guard let encoded = ObvEncoded(withRawData: cleartextPayload), + let encodedPayloadValues = [ObvEncoded](encoded), + encodedPayloadValues.count == 3, + let _decryptedOtherConnectionIdentifier: String = try? encodedPayloadValues[0].obvDecode(), + let _transferredIdentity: ObvCryptoIdentity = try? encodedPayloadValues[1].obvDecode(), + let _commitment: Data = try? encodedPayloadValues[2].obvDecode() else { + throw ObvError.decodingFailed + } + decryptedOtherConnectionIdentifier = _decryptedOtherConnectionIdentifier + transferredIdentity = _transferredIdentity + commitment = _commitment + } + + // Make sure the connection identifier match + + guard otherConnectionId == decryptedOtherConnectionIdentifier else { + throw ObvError.connectionIdsDoNotMatch + } + + // Makre sure that the owned identity we are about to transfer from the source device to this target device is not one that we have already + + guard try !identityDelegate.isOwned(transferredIdentity, within: obvContext) else { + throw ObvError.tryingToTransferAnOwnedIdentityThatAlreadyExistsOnTargetDevice + } + + // Compute the target part of the SAS + + let seedTargetForSas = try identityDelegate.getDeterministicSeed( + diversifiedUsing: commitment, + secretMACKey: macKey, + forProtocol: .ownedIdentityTransfer) + + // Encrypt the payload to be sent to the source device + + let payload: Data + do { + let dataToSend: ObvEncoded = [ + currentDeviceName.obvEncode(), + seedTargetForSas.obvEncode(), + ].obvEncode() + let encryptedPayload = PublicKeyEncryption.encrypt(dataToSend.rawData, using: transferredIdentity.publicKeyForPublicKeyEncryption, and: prng) + payload = encryptedPayload.raw + } + + // Send the seedTargetForSas to the source device + + do { + let type = ObvChannelServerQueryMessageToSend.QueryType.transferRelay(protocolInstanceUID: protocolInstanceUid, connectionIdentifier: otherConnectionId, payload: payload, thenCloseWebSocket: false) + let core = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concrete = TargetSeedMessage(coreProtocolMessage: core) + guard let message = concrete.generateObvChannelServerQueryMessageToSend(serverQueryType: type) else { + throw ObvError.couldNotGenerateObvChannelServerQueryMessageToSend + } + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + // Return the new state + + return TargetWaitingForDecommitmentState( + currentDeviceName: currentDeviceName, + encryptionPrivateKey: encryptionPrivateKey, + otherConnectionIdentifier: otherConnectionId, + transferredIdentity: transferredIdentity, + commitment: commitment, + seedTargetForSas: seedTargetForSas) + + } + + } catch { + + assertionFailure() + postOwnedIdentityTransferProtocolNotification(withError: error) + return startState + + } + + } + + + /// Called by the step when things got really wrong. This notification will be catched by the protocol starter delegate that will properly abort this protocol and notify the app. + private func postOwnedIdentityTransferProtocolNotification(withError: Error) { + let notificationDelegate = self.notificationDelegate + let ownedCryptoIdentity = self.ownedIdentity + let protocolInstanceUID = self.protocolInstanceUid + try? obvContext.addContextDidSaveCompletionHandler { error in + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.ownedIdentityTransferProtocolFailed(payload: .init( + ownedCryptoIdentity: ownedCryptoIdentity, + protocolInstanceUID: protocolInstanceUID, + error: withError))) + } + } + + } + + + + // MARK: - TargetShowsSasStep + + final class TargetShowsSasStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: TargetWaitingForDecommitmentState + let receivedMessage: TargetSeedMessage + + init?(startState: TargetWaitingForDecommitmentState, receivedMessage: TargetSeedMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + do { + + let currentDeviceName = startState.currentDeviceName + let encryptionPrivateKey = startState.encryptionPrivateKey + let otherConnectionIdentifier = startState.otherConnectionIdentifier + let transferredIdentity = startState.transferredIdentity + let commitment = startState.commitment + let seedTargetForSas = startState.seedTargetForSas + + let result = receivedMessage.result + + switch result { + + case .requestFailed: + + throw ObvError.serverRequestFailed + + case .requestSucceeded(payload: let payload): + + // Decrypt the payload to get the decommitment + + let decommitment: Data + do { + let encryptedPayload = EncryptedData(data: payload) + guard let _cleartextPayload = PublicKeyEncryption.decrypt(encryptedPayload, using: encryptionPrivateKey) else { + throw ObvError.decryptionFailed + } + decommitment = _cleartextPayload + } + + // Open the commitment to recover the full SAS + + let fullSas: ObvOwnedIdentityTransferSas + do { + let commitmentScheme = ObvCryptoSuite.sharedInstance.commitmentScheme() + guard let rawContactSeedForSAS = commitmentScheme.open(commitment: commitment, onTag: transferredIdentity.getIdentity(), usingDecommitToken: decommitment) else { + throw ObvError.couldNotOpenCommitment + } + guard let seedSourceForSas = Seed(with: rawContactSeedForSAS) else { + throw ObvError.couldNotComputeSeed + } + let Sas = try SAS.compute(seedAlice: seedSourceForSas, seedBob: seedTargetForSas, identityBob: ownedIdentity, numberOfDigits: ObvConstants.defaultNumberOfDigitsForSAS * 2) + fullSas = try .init(fullSas: Sas) + } + + // On save, notify that the SAS is now available on this target device + + do { + let notificationDelegate = self.notificationDelegate + let protocolInstanceUid = self.protocolInstanceUid + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.sasIsAvailable(payload: .init( + protocolInstanceUID: protocolInstanceUid, + sas: fullSas))) + } + } + + // Send a server query allowing to wait for the ObvSyncSnapshot to restore + + do { + let type = ObvChannelServerQueryMessageToSend.QueryType.transferWait(protocolInstanceUID: protocolInstanceUid, connectionIdentifier: otherConnectionIdentifier) + let core = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concrete = TargetWaitForSnapshotMessage(coreProtocolMessage: core) + guard let message = concrete.generateObvChannelServerQueryMessageToSend(serverQueryType: type) else { + throw ObvError.couldNotGenerateObvChannelServerQueryMessageToSend + } + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + return TargetWaitingForSnapshotState( + currentDeviceName: currentDeviceName, + encryptionPrivateKey: encryptionPrivateKey, + transferredIdentity: transferredIdentity) + + } + + } catch { + + assertionFailure() + postOwnedIdentityTransferProtocolNotification(withError: error) + return startState + + } + + } + + + /// Called by the step when things got really wrong. This notification will be catched by the protocol starter delegate that will properly abort this protocol and notify the app. + private func postOwnedIdentityTransferProtocolNotification(withError: Error) { + let notificationDelegate = self.notificationDelegate + let ownedCryptoIdentity = self.ownedIdentity + let protocolInstanceUID = self.protocolInstanceUid + try? obvContext.addContextDidSaveCompletionHandler { error in + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.ownedIdentityTransferProtocolFailed(payload: .init( + ownedCryptoIdentity: ownedCryptoIdentity, + protocolInstanceUID: protocolInstanceUID, + error: withError))) + } + } + + } + + + // MARK: - TargetProcessesSnapshotStep + + final class TargetProcessesSnapshotStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: TargetWaitingForSnapshotState + let receivedMessage: TargetWaitForSnapshotMessage + + init?(startState: TargetWaitingForSnapshotState, receivedMessage: TargetWaitForSnapshotMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + do { + + let currentDeviceName = startState.currentDeviceName + let encryptionPrivateKey = startState.encryptionPrivateKey + let transferredIdentity = startState.transferredIdentity + + let result = receivedMessage.result + + switch result { + + case .requestFailed: + + throw ObvError.serverRequestFailed + + case .requestSucceeded(let payload): + + // Decrypt the payload + + let encryptedPayload = EncryptedData(data: payload) + guard let cleartextPayload = PublicKeyEncryption.decrypt(encryptedPayload, using: encryptionPrivateKey) else { + throw ObvError.decryptionFailed + } + guard let encoded = ObvEncoded(withRawData: cleartextPayload), + let listOfEncoded = [ObvEncoded](encoded), + listOfEncoded.count >= 1, + let obvDictionary = ObvDictionary(listOfEncoded[0]) + else { + throw ObvError.couldNotDecodeSyncSnapshot + } + + // Get the sync snapshot + + let syncSnapshot = try syncSnapshotDelegate.decodeSyncSnapshot(from: obvDictionary) + + // Notify that the sync snapshot was is received and is about to be processed + + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.processingReceivedSnapshotOntargetDevice(payload: .init(protocolInstanceUID: protocolInstanceUid))) + + // Restore the identity part of the snapshot with the identity manager + + try identityDelegate.restoreObvSyncSnapshotNode(syncSnapshot.identityNode, customDeviceName: currentDeviceName, within: obvContext) + + // At this point, we don't want the protocol to fail if something goes wrong, + // We juste want the user to know about it. + // So we create a set of errors that will post back to the user if not empty + + var nonDefinitiveErrors = [Error]() + + // Download all missing user data (typically, photos) + + do { + try downloadAllUserData(within: obvContext) + } catch { + assertionFailure() + nonDefinitiveErrors.append(error) // Continue anyway + } + + // Re-download all groups V2 + + do { + try requestReDownloadOfAllNonKeycloakGroupV2(ownedCryptoIdentity: transferredIdentity, within: obvContext) + } catch { + assertionFailure() + nonDefinitiveErrors.append(error) // Continue anyway + } + + // Start an owned device discovery protocol + + do { + try startOwnedDeviceDiscoveryProtocol(for: transferredIdentity, within: obvContext) + } catch { + assertionFailure() + nonDefinitiveErrors.append(error) // Continue anyway + } + + // Start contact discovery protocol for all contacts + + do { + try startDeviceDiscoveryForAllContactsOfOwnedIdentity(transferredIdentity, within: obvContext) + } catch { + assertionFailure() + nonDefinitiveErrors.append(error) // Continue anyway + } + + // Inform the network fetch delegate about the new owned identity. + // This will open a websocket for her, and update the well known cache. + // We need to perform this after the context is saved, as the network needs to access the + // identity manager's database + + do { + let allOwnedIdentities = try identityDelegate.getOwnedIdentities(within: obvContext) + let flowId = obvContext.flowId + let networkFetchDelegate = self.networkFetchDelegate + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + networkFetchDelegate.updatedListOfOwnedIdentites(ownedIdentities: allOwnedIdentities, flowId: flowId) + } + } catch { + assertionFailure() + nonDefinitiveErrors.append(error) // Continue anyway + } + + // Get the device to keep active + + let deviceUidToKeepActive: UID? + if listOfEncoded.count >= 2 { + deviceUidToKeepActive = try listOfEncoded[1].obvDecode() + } else { + deviceUidToKeepActive = nil + } + + // At this point, we restored the identity (engine) snapshot. + // On context save, we need to: + // - sync the engine database with the app database + // - restore the app snapshot + + let localSyncSnapshotDelegate = syncSnapshotDelegate + let transferredOwnedCryptoId = ObvCryptoId(cryptoIdentity: transferredIdentity) + let notificationDelegate = self.notificationDelegate + let protocolInstanceUid = self.protocolInstanceUid + let ownedIdentity = self.ownedIdentity + let nonDefinitiveErrorsFromEngine = nonDefinitiveErrors + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.ownedIdentityTransferProtocolFailed(payload: .init(ownedCryptoIdentity: ownedIdentity, protocolInstanceUID: protocolInstanceUid, error: error!))) + return + } + Task { + + // We will collect errors the occur during the restore at the app level. + // We start with an array made of the non-definitive errors that occured at the engine level. + // If not empty, one of these errors will be sent back to the app. + // At some point, it might be a good idea to send them all back to the app. + var errors = nonDefinitiveErrorsFromEngine + + do { + try await localSyncSnapshotDelegate.syncEngineDatabaseThenUpdateAppDatabase(using: syncSnapshot.appNode) + } catch { + errors.append(error) + } + + do { + if let deviceUidToKeepActive { + try await localSyncSnapshotDelegate.requestServerToKeepDeviceActive(ownedCryptoId: transferredOwnedCryptoId, deviceUidToKeepActive: deviceUidToKeepActive) + } + } catch { + errors.append(error) + } + + assert(errors.isEmpty) + + // Notify that the transfer is finished and successful on this target device + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.successfulTransferOnTargetDevice(payload: .init(protocolInstanceUID: protocolInstanceUid, transferredOwnedCryptoId: transferredOwnedCryptoId, postTransferError: errors.first))) + + } + } + + + // Close the websocket connection + + do { + let type = ObvChannelServerQueryMessageToSend.QueryType.closeWebsocketConnection(protocolInstanceUID: protocolInstanceUid) + let core = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concrete = CloseWebsocketConnectionMessage(coreProtocolMessage: core) + guard let message = concrete.generateObvChannelServerQueryMessageToSend(serverQueryType: type) else { + throw ObvError.couldNotGenerateObvChannelServerQueryMessageToSend + } + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + // Return the final state + + return FinalState() + + } + + } catch { + + assertionFailure() + postOwnedIdentityTransferProtocolNotification(withError: error) + return startState + + } + + } + + + /// Called by the step when things got really wrong. This notification will be catched by the protocol starter delegate that will properly abort this protocol and notify the app. + private func postOwnedIdentityTransferProtocolNotification(withError: Error) { + let notificationDelegate = self.notificationDelegate + let ownedCryptoIdentity = self.ownedIdentity + let protocolInstanceUID = self.protocolInstanceUid + try? obvContext.addContextDidSaveCompletionHandler { error in + notificationDelegate.postOwnedIdentityTransferProtocolNotification(.ownedIdentityTransferProtocolFailed(payload: .init( + ownedCryptoIdentity: ownedCryptoIdentity, + protocolInstanceUID: protocolInstanceUID, + error: withError))) + } + } + + + // MARK: Downloading user data + + private func downloadAllUserData(within obvContext: ObvContext) throws { + + var errorToThrowInTheEnd: Error? + + do { + let items = try identityDelegate.getAllOwnedIdentityWithMissingPhotoUrl(within: obvContext) + for (ownedIdentity, details) in items { + do { + try startDownloadIdentityPhotoProtocolWithinTransaction(within: obvContext, ownedIdentity: ownedIdentity, contactIdentity: ownedIdentity, contactIdentityDetailsElements: details) + } catch { + errorToThrowInTheEnd = error + } + } + } + + do { + let items = try identityDelegate.getAllContactsWithMissingPhotoUrl(within: obvContext) + for (ownedIdentity, contactIdentity, details) in items { + do { + try startDownloadIdentityPhotoProtocolWithinTransaction(within: obvContext, ownedIdentity: ownedIdentity, contactIdentity: contactIdentity, contactIdentityDetailsElements: details) + } catch { + errorToThrowInTheEnd = error + } + } + } + + do { + let items = try identityDelegate.getAllGroupsWithMissingPhotoUrl(within: obvContext) + for (ownedIdentity, groupInformation) in items { + do { + try startDownloadGroupPhotoProtocolWithinTransaction(within: obvContext, ownedIdentity: ownedIdentity, groupInformation: groupInformation) + } catch { + errorToThrowInTheEnd = error + } + } + } + + if let errorToThrowInTheEnd { + assertionFailure() + throw errorToThrowInTheEnd + } + + } + + + private func startDownloadIdentityPhotoProtocolWithinTransaction(within obvContext: ObvContext, ownedIdentity: ObvCryptoIdentity, contactIdentity: ObvCryptoIdentity, contactIdentityDetailsElements: IdentityDetailsElements) throws { + let message = try protocolStarterDelegate.getInitialMessageForDownloadIdentityPhotoChildProtocol( + ownedIdentity: ownedIdentity, + contactIdentity: contactIdentity, + contactIdentityDetailsElements: contactIdentityDetailsElements) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + + private func startDownloadGroupPhotoProtocolWithinTransaction(within obvContext: ObvContext, ownedIdentity: ObvCryptoIdentity, groupInformation: GroupInformation) throws { + let message = try protocolStarterDelegate.getInitialMessageForDownloadGroupPhotoChildProtocol( + ownedIdentity: ownedIdentity, + groupInformation: groupInformation) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + + // MARK: Re-download of Groups V2 + + /// After a successful restore within the engine, we need to re-download all groups v2 + private func requestReDownloadOfAllNonKeycloakGroupV2(ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { + + var errorToThrowInTheEnd: Error? + + let allNonKeycloakGroups = try identityDelegate.getAllObvGroupV2(of: ownedCryptoIdentity, within: obvContext) + .filter({ !$0.keycloakManaged }) + for group in allNonKeycloakGroups { + do { + try requestReDownloadOfGroup( + ownedCryptoIdentity: ownedCryptoIdentity, + group: group, + within: obvContext) + } catch { + errorToThrowInTheEnd = error + } + } + + if let errorToThrowInTheEnd { + assertionFailure() + throw errorToThrowInTheEnd + } + + } + + + private func requestReDownloadOfGroup(ownedCryptoIdentity: ObvCryptoIdentity, group: ObvGroupV2, within obvContext: ObvContext) throws { + guard let groupIdentifier = GroupV2.Identifier(appGroupIdentifier: group.appGroupIdentifier) else { + assertionFailure(); return + } + let message = try protocolStarterDelegate.getInitiateGroupReDownloadMessageForGroupV2Protocol( + ownedIdentity: ownedCryptoIdentity, + groupIdentifier: groupIdentifier, + flowId: obvContext.flowId) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + + // MARK: Start Owned device discovery protocol + + private func startOwnedDeviceDiscoveryProtocol(for ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { + + let message = try protocolStarterDelegate.getInitiateOwnedDeviceDiscoveryMessage(ownedCryptoIdentity: ownedCryptoIdentity) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + + } + + + // MARK: Start contact discovery protocol for all contacts + + private func startDeviceDiscoveryForAllContactsOfOwnedIdentity(_ ownedCryptoIdentity: ObvCryptoIdentity, within obvContext: ObvContext) throws { + + var errorToThrowInTheEnd: Error? + + let contacts = try identityDelegate.getContactsOfOwnedIdentity(ownedCryptoIdentity, within: obvContext) + for contact in contacts { + do { + let message = try protocolStarterDelegate.getInitialMessageForContactDeviceDiscoveryProtocol( + ownedIdentity: ownedCryptoIdentity, + contactIdentity: contact) + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } catch { + errorToThrowInTheEnd = error + } + } + + if let errorToThrowInTheEnd { + assertionFailure() + throw errorToThrowInTheEnd + } + + } + + } + + + // MARK: - AbortProtocolStep + + class AbortProtocolStep: ProtocolStep { + + private let startState: StartStateType + private let receivedMessage: AbortProtocolMessage + + enum StartStateType { + case sourceWaitingForSessionNumberState(startState: SourceWaitingForSessionNumberState) + case sourceWaitingForTargetConnectionState(startState: SourceWaitingForTargetConnectionState) + case sourceWaitingForTargetSeedState(startState: SourceWaitingForTargetSeedState) + case targetWaitingForTransferredIdentityState(startState: TargetWaitingForTransferredIdentityState) + case targetWaitingForDecommitmentState(startState: TargetWaitingForDecommitmentState) + case sourceWaitingForSASInputState(startState: SourceWaitingForSASInputState) + case targetWaitingForSnapshotState(startState: TargetWaitingForSnapshotState) + } + + init?(startState: StartStateType, receivedMessage: AbortProtocolMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + // Close the websocket connection + + do { + let type = ObvChannelServerQueryMessageToSend.QueryType.closeWebsocketConnection(protocolInstanceUID: protocolInstanceUid) + let core = getCoreMessage(for: .ServerQuery(ownedIdentity: ownedIdentity)) + let concrete = CloseWebsocketConnectionMessage(coreProtocolMessage: core) + guard let message = concrete.generateObvChannelServerQueryMessageToSend(serverQueryType: type) else { + assertionFailure() + throw ObvError.couldNotGenerateObvChannelServerQueryMessageToSend + } + _ = try channelDelegate.postChannelMessage(message, randomizedWith: prng, within: obvContext) + } + + return FinalState() + + } + + } + + + // MARK: AbortProtocolStep from SourceWaitingForSessionNumberState + + final class AbortProtocolStepFromSourceWaitingForSessionNumberState: AbortProtocolStep, TypedConcreteProtocolStep { + + let startState: SourceWaitingForSessionNumberState + let receivedMessage: AbortProtocolMessage + + init?(startState: SourceWaitingForSessionNumberState, receivedMessage: AbortProtocolMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: .sourceWaitingForSessionNumberState(startState: startState), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + + // MARK: AbortProtocolStep from SourceWaitingForTargetConnectionState + + final class AbortProtocolStepFromSourceWaitingForTargetConnectionState: AbortProtocolStep, TypedConcreteProtocolStep { + + let startState: SourceWaitingForTargetConnectionState + let receivedMessage: AbortProtocolMessage + + init?(startState: SourceWaitingForTargetConnectionState, receivedMessage: AbortProtocolMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: .sourceWaitingForTargetConnectionState(startState: startState), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + + // MARK: AbortProtocolStep from SourceWaitingForTargetSeedState + + final class AbortProtocolStepFromSourceWaitingForTargetSeedState: AbortProtocolStep, TypedConcreteProtocolStep { + + let startState: SourceWaitingForTargetSeedState + let receivedMessage: AbortProtocolMessage + + init?(startState: SourceWaitingForTargetSeedState, receivedMessage: AbortProtocolMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: .sourceWaitingForTargetSeedState(startState: startState), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + + // MARK: AbortProtocolStep from TargetWaitingForTransferredIdentityState + + final class AbortProtocolStepFromTargetWaitingForTransferredIdentityState: AbortProtocolStep, TypedConcreteProtocolStep { + + let startState: TargetWaitingForTransferredIdentityState + let receivedMessage: AbortProtocolMessage + + init?(startState: TargetWaitingForTransferredIdentityState, receivedMessage: AbortProtocolMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: .targetWaitingForTransferredIdentityState(startState: startState), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + + // MARK: AbortProtocolStep from TargetWaitingForDecommitmentState + + final class AbortProtocolStepFromTargetWaitingForDecommitmentState: AbortProtocolStep, TypedConcreteProtocolStep { + + let startState: TargetWaitingForDecommitmentState + let receivedMessage: AbortProtocolMessage + + init?(startState: TargetWaitingForDecommitmentState, receivedMessage: AbortProtocolMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: .targetWaitingForDecommitmentState(startState: startState), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + + // MARK: AbortProtocolStep from SourceWaitingForSASInputState + + final class AbortProtocolStepFromSourceWaitingForSASInputState: AbortProtocolStep, TypedConcreteProtocolStep { + + let startState: SourceWaitingForSASInputState + let receivedMessage: AbortProtocolMessage + + init?(startState: SourceWaitingForSASInputState, receivedMessage: AbortProtocolMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: .sourceWaitingForSASInputState(startState: startState), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + + // MARK: AbortProtocolStep from TargetWaitingForSnapshotState + + final class AbortProtocolStepFromTargetWaitingForSnapshotState: AbortProtocolStep, TypedConcreteProtocolStep { + + let startState: TargetWaitingForSnapshotState + let receivedMessage: AbortProtocolMessage + + init?(startState: TargetWaitingForSnapshotState, receivedMessage: AbortProtocolMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + self.startState = startState + self.receivedMessage = receivedMessage + super.init(startState: .targetWaitingForSnapshotState(startState: startState), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + // The step execution is defined in the superclass + + } + + + // MARK: - Errors + + enum ObvError: Error { + case couldNotGenerateObvChannelServerQueryMessageToSend + case couldNotDecodeSyncSnapshot + case decryptionFailed + case decodingFailed + case incorrectSAS + case serverRequestFailed + case connectionIdsDoNotMatch + case tryingToTransferAnOwnedIdentityThatAlreadyExistsOnTargetDevice + case couldNotOpenCommitment + case couldNotComputeSeed + } +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocol.swift new file mode 100644 index 00000000..b14f2c80 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocol.swift @@ -0,0 +1,87 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvCrypto +import ObvTypes +import ObvEncoder +import OlvidUtils + + +public struct SynchronizationProtocol: ConcreteCryptoProtocol { + + static let logCategory = "SynchronizationProtocol" + + static let id = CryptoProtocolId.synchronization + + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.final] + + let ownedIdentity: ObvCryptoIdentity + let currentState: ConcreteProtocolState + + let delegateManager: ObvProtocolDelegateManager + let obvContext: ObvContext + let prng: PRNGService + let instanceUid: UID + + init(instanceUid: UID, currentState: ConcreteProtocolState, ownedCryptoIdentity: ObvCryptoIdentity, delegateManager: ObvProtocolDelegateManager, prng: PRNGService, within obvContext: ObvContext) { + self.currentState = currentState + self.ownedIdentity = ownedCryptoIdentity + self.delegateManager = delegateManager + self.obvContext = obvContext + self.prng = prng + self.instanceUid = instanceUid + } + + static func stateId(fromRawValue rawValue: Int) -> ConcreteProtocolStateId? { + return StateId(rawValue: rawValue) + } + + static func messageId(fromRawValue rawValue: Int) -> ConcreteProtocolMessageId? { + return MessageId(rawValue: rawValue) + } + + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } + + + static func computeOngoingProtocolInstanceUid(ownedCryptoId: ObvCryptoIdentity, currentDeviceUid: UID, otherOwnedDeviceUid: UID) throws -> UID { + let ownedIdentity = ownedCryptoId.getIdentity() + let rawSeed: Data + if currentDeviceUid < otherOwnedDeviceUid { + rawSeed = ownedIdentity + currentDeviceUid.raw + otherOwnedDeviceUid.raw + } else { + rawSeed = ownedIdentity + otherOwnedDeviceUid.raw + currentDeviceUid.raw + } + guard let seed = Seed(with: rawSeed) else { + assertionFailure() + throw ObvError.rawSeedIsTooSmal + } + let prng = ObvCryptoSuite.sharedInstance.concretePRNG().init(with: seed) + return UID.gen(with: prng) + } + + + enum ObvError: Error { + case rawSeedIsTooSmal + } + +} + diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocolMessages.swift new file mode 100644 index 00000000..0d79f2a8 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocolMessages.swift @@ -0,0 +1,264 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvCrypto +import ObvMetaManager +import ObvTypes + +// MARK: - Protocol Messages + +extension SynchronizationProtocol { + + enum MessageId: Int, ConcreteProtocolMessageId { + + // For Atoms + case initiateSyncAtom = 0 + case syncAtom = 1 + case syncAtomDialog = 100 + // For Snapshots +// case initiateSyncSnapshot = 2 +// case triggerSyncSnapshot = 3 +// case transferSyncSnapshot = 4 +// case atomProcessed = 5 + + var concreteProtocolMessageType: ConcreteProtocolMessage.Type { + switch self { + + case .initiateSyncAtom : return InitiateSyncAtomMessage.self + case .syncAtom: return SyncAtomMessage.self + case .syncAtomDialog: return SyncAtomDialogMessage.self + +// case .initiateSyncSnapshot: return InitiateSyncSnapshotMessage.self +// case .triggerSyncSnapshot: return TriggerSyncSnapshotMessage.self +// case .transferSyncSnapshot: return TransferSyncSnapshotMessage.self +// case .atomProcessed: return AtomProcessedMessage.self + + } + } + + } + + + // MARK: - InitiateSyncAtomMessage + + struct InitiateSyncAtomMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.initiateSyncAtom + let coreProtocolMessage: CoreProtocolMessage + + let syncAtom: ObvSyncAtom + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage, syncAtom: ObvSyncAtom) { + self.coreProtocolMessage = coreProtocolMessage + self.syncAtom = syncAtom + } + + var encodedInputs: [ObvEncoded] { + return [syncAtom.obvEncode()] + } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + syncAtom = try message.encodedInputs.obvDecode() + } + + } + + + // MARK: - SyncAtomMessage + + struct SyncAtomMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.syncAtom + let coreProtocolMessage: CoreProtocolMessage + + let syncAtom: ObvSyncAtom + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage, syncAtom: ObvSyncAtom) { + self.coreProtocolMessage = coreProtocolMessage + self.syncAtom = syncAtom + } + + var encodedInputs: [ObvEncoded] { + return [syncAtom.obvEncode()] + } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + self.coreProtocolMessage = CoreProtocolMessage(with: message) + syncAtom = try message.encodedInputs.obvDecode() + } + + } + + + // MARK: - InitiateSyncSnapshotMessage + +// struct InitiateSyncSnapshotMessage: ConcreteProtocolMessage { +// +// let id: ConcreteProtocolMessageId = MessageId.initiateSyncSnapshot +// let coreProtocolMessage: CoreProtocolMessage +// +// let otherOwnedDeviceUID: UID +// +// // Init when sending this message +// +// init(coreProtocolMessage: CoreProtocolMessage, otherOwnedDeviceUID: UID) { +// self.coreProtocolMessage = coreProtocolMessage +// self.otherOwnedDeviceUID = otherOwnedDeviceUID +// } +// +// var encodedInputs: [ObvEncoded] { +// return [otherOwnedDeviceUID.obvEncode()] +// } +// +// // Init when receiving this message +// +// init(with message: ReceivedMessage) throws { +// self.coreProtocolMessage = CoreProtocolMessage(with: message) +// otherOwnedDeviceUID = try message.encodedInputs.obvDecode() +// } +// +// } + + + // MARK: - TriggerSyncSnapshotMessage + +// struct TriggerSyncSnapshotMessage: ConcreteProtocolMessage { +// +// let id: ConcreteProtocolMessageId = MessageId.triggerSyncSnapshot +// let coreProtocolMessage: CoreProtocolMessage +// +// let forceSendSnapshot: Bool +// +// // Init when sending this message +// +// init(coreProtocolMessage: CoreProtocolMessage, forceSendSnapshot: Bool) { +// self.coreProtocolMessage = coreProtocolMessage +// self.forceSendSnapshot = forceSendSnapshot +// } +// +// var encodedInputs: [ObvEncoded] { +// return [forceSendSnapshot.obvEncode()] +// } +// +// // Init when receiving this message +// +// init(with message: ReceivedMessage) throws { +// self.coreProtocolMessage = CoreProtocolMessage(with: message) +// forceSendSnapshot = try message.encodedInputs.obvDecode() +// } +// +// } + + + // MARK: - TransferSyncSnapshotMessage + +// struct TransferSyncSnapshotMessage: ConcreteProtocolMessage { +// +// let id: ConcreteProtocolMessageId = MessageId.transferSyncSnapshot +// let coreProtocolMessage: CoreProtocolMessage +// +// // Naming reflecting the understanding of the receiver of this message +// let remoteSyncSnapshotAndVersion: ObvSyncSnapshotAndVersion +// let localVersionKnownBySender: Int? +// +// // Init when sending this message +// +// init(coreProtocolMessage: CoreProtocolMessage, remoteSyncSnapshotAndVersion: ObvSyncSnapshotAndVersion, localVersionKnownBySender: Int?) { +// self.coreProtocolMessage = coreProtocolMessage +// self.remoteSyncSnapshotAndVersion = remoteSyncSnapshotAndVersion +// self.localVersionKnownBySender = localVersionKnownBySender +// } +// +// var encodedInputs: [ObvEncoded] { +// get throws { +// return [remoteSyncSnapshotAndVersion.version.obvEncode(), (localVersionKnownBySender ?? -1).obvEncode(), try remoteSyncSnapshotAndVersion.syncSnapshot.obvEncode()] +// } +// } +// +// // Init when receiving this message +// +// init(with message: ReceivedMessage) throws { +// self.coreProtocolMessage = CoreProtocolMessage(with: message) +// let (removeVersion, localVersion, remoteSnapshot): (Int, Int, ObvSyncSnapshot) = try message.encodedInputs.obvDecode() +// self.remoteSyncSnapshotAndVersion = ObvSyncSnapshotAndVersion(version: removeVersion, syncSnapshot: remoteSnapshot) +// self.localVersionKnownBySender = (localVersion == -1) ? nil : localVersion +// } +// +// } + + + // MARK: - AtomProcessedMessage + +// struct AtomProcessedMessage: ConcreteProtocolMessage { +// +// let id: ConcreteProtocolMessageId = MessageId.atomProcessed +// let coreProtocolMessage: CoreProtocolMessage +// +// // Init when sending this message +// +// init(coreProtocolMessage: CoreProtocolMessage) { +// self.coreProtocolMessage = coreProtocolMessage +// } +// +// var encodedInputs: [ObvEncoded] { [] } +// +// // Init when receiving this message +// +// init(with message: ReceivedMessage) throws { +// self.coreProtocolMessage = CoreProtocolMessage(with: message) +// } +// +// } + + + // MARK: - SyncAtomDialogMessage + + struct SyncAtomDialogMessage: ConcreteProtocolMessage { + + let id: ConcreteProtocolMessageId = MessageId.syncAtomDialog + let coreProtocolMessage: CoreProtocolMessage + + // Init when sending this message + + init(coreProtocolMessage: CoreProtocolMessage) { + self.coreProtocolMessage = coreProtocolMessage + } + + var encodedInputs: [ObvEncoded] { [] } + + // Init when receiving this message + + init(with message: ReceivedMessage) throws { + throw Self.makeError(message: "This message is only expected to be sent from the protocol manager to the engine, and never received by the protocol manager") + } + + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocolStates.swift new file mode 100644 index 00000000..0ec72fd7 --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocolStates.swift @@ -0,0 +1,116 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvTypes +import ObvCrypto +import ObvMetaManager + + +// MARK: - Protocol States + +extension SynchronizationProtocol { + + enum StateId: Int, ConcreteProtocolStateId { + + case initial = 0 + // case ongoingSyncSnapshot = 1 + case final = 100 + + var concreteProtocolStateType: ConcreteProtocolState.Type { + switch self { + case .initial : return ConcreteProtocolInitialState.self + // case .ongoingSyncSnapshot: return OngoingSyncSnapshotState.self + case .final : return FinalState.self + } + } + } + + + // MARK: - OngoingSyncState + +// struct OngoingSyncSnapshotState: TypeConcreteProtocolState { +// +// let id: ConcreteProtocolStateId = StateId.ongoingSyncSnapshot +// +// let otherOwnedDeviceUid: UID +// let localSnapshot: ObvSyncSnapshotAndVersion +// let remoteSnapshot: ObvSyncSnapshotAndVersion? +// let currentlyShowingDiff: Bool +// +// init(otherOwnedDeviceUid: UID, localSnapshot: ObvSyncSnapshotAndVersion, remoteSnapshot: ObvSyncSnapshotAndVersion?, currentlyShowingDiff: Bool) { +// self.otherOwnedDeviceUid = otherOwnedDeviceUid +// self.localSnapshot = localSnapshot +// self.remoteSnapshot = remoteSnapshot +// self.currentlyShowingDiff = currentlyShowingDiff +// } +// +// public func obvEncode() throws -> ObvEncoder.ObvEncoded { +// var arrayOfEncoded = [ +// otherOwnedDeviceUid.obvEncode(), +// try localSnapshot.obvEncode(), +// currentlyShowingDiff.obvEncode(), +// ] +// +// if let remoteSnapshot { +// arrayOfEncoded.append(try remoteSnapshot.obvEncode()) +// } +// +// return arrayOfEncoded.obvEncode() +// } +// +// +// init(_ obvEncoded: ObvEncoded) throws { +// guard let arrayOfEncoded = [ObvEncoded](obvEncoded) else { +// throw ObvError.couldNotDecode +// } +// switch arrayOfEncoded.count { +// case 3: +// (otherOwnedDeviceUid, localSnapshot, currentlyShowingDiff) = try obvEncoded.obvDecode() +// remoteSnapshot = nil +// case 4: +// (otherOwnedDeviceUid, localSnapshot, currentlyShowingDiff, remoteSnapshot) = try obvEncoded.obvDecode() +// default: +// throw ObvError.couldNotDecode +// } +// } +// +// enum ObvError: Error { +// case couldNotDecode +// } +// +// } + + + // MARK: - FinalState + + struct FinalState: TypeConcreteProtocolState { + + let id: ConcreteProtocolStateId = StateId.final + + init(_: ObvEncoded) {} + + init() {} + + func obvEncode() -> ObvEncoded { return 0.obvEncode() } + + } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocolSteps.swift new file mode 100644 index 00000000..64a0035f --- /dev/null +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/SynchronizationProtocol/SynchronizationProtocolSteps.swift @@ -0,0 +1,654 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation + + +import Foundation +import os.log +import ObvTypes +import ObvMetaManager +import ObvCrypto +import OlvidUtils +import ObvEncoder + +// MARK: - Protocol Steps + +extension SynchronizationProtocol { + + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { + + case sendSyncAtomRequest = 0 + case processSyncAtomRequest = 1 + // case updateStateAndSendSyncSnapshot = 2 + + func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { + switch self { + + case .sendSyncAtomRequest: + let step = SendSyncAtomRequestStep(from: concreteProtocol, and: receivedMessage) + return step + + case .processSyncAtomRequest: + let step = ProcessSyncAtomRequestStep(from: concreteProtocol, and: receivedMessage) + return step + +// case .updateStateAndSendSyncSnapshot: +// if let step = UpdateStateAndSendSyncSnapshotOnInitiateSyncSnapshotMessageFromConcreteProtocolInitialState(from: concreteProtocol, and: receivedMessage) { +// return step +// } else if let step = UpdateStateAndSendSyncSnapshotOnTriggerSyncSnapshotMessageFromConcreteProtocolInitialState(from: concreteProtocol, and: receivedMessage) { +// return step +// } else if let step = UpdateStateAndSendSyncSnapshotOnTransferSyncSnapshotMessageFromConcreteProtocolInitialState(from: concreteProtocol, and: receivedMessage) { +// return step +// } else if let step = UpdateStateAndSendSyncSnapshotOnAtomProcessedMessageFromConcreteProtocolInitialState(from: concreteProtocol, and: receivedMessage) { +// return step +// } else if let step = UpdateStateAndSendSyncSnapshotOnInitiateSyncSnapshotMessageFromOngoingSyncSnapshotState(from: concreteProtocol, and: receivedMessage) { +// return step +// } else if let step = UpdateStateAndSendSyncSnapshotOnTriggerSyncSnapshotMessageFromOngoingSyncSnapshotState(from: concreteProtocol, and: receivedMessage) { +// return step +// } else if let step = UpdateStateAndSendSyncSnapshotOnTransferSyncSnapshotMessageFromOngoingSyncSnapshotState(from: concreteProtocol, and: receivedMessage) { +// return step +// } else if let step = UpdateStateAndSendSyncSnapshotOnAtomProcessedMessageFromOngoingSyncSnapshotState(from: concreteProtocol, and: receivedMessage) { +// return step +// } else { +// return nil +// } + + } + } + } + + // MARK: - SendSyncAtomRequestStep + + final class SendSyncAtomRequestStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: InitiateSyncAtomMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: InitiateSyncAtomMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .Local, + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let syncAtom = receivedMessage.syncAtom + + // Send the sync atom to our other owned devices + + let otherDeviceUids = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) + + if otherDeviceUids.count > 0 { + do { + let coreMessage = getCoreMessage(for: .AllConfirmedObliviousChannelsWithOtherDevicesOfOwnedIdentity(ownedIdentity: ownedIdentity)) + let concreteProtocolMessage = SyncAtomMessage(coreProtocolMessage: coreMessage, syncAtom: syncAtom) + guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + } + } + + // Send an AtomProcessedMessage to all ongoing instances of the synchronisation protocol + +// let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) +// for otherDeviceUid in otherDeviceUids { +// let otherProtocolInstanceUid = try SynchronizationProtocol.computeOngoingProtocolInstanceUid(ownedCryptoId: ownedIdentity, currentDeviceUid: currentDeviceUid, otherOwnedDeviceUid: otherDeviceUid) +// let coreMessage = getCoreMessageForOtherLocalProtocol(otherCryptoProtocolId: .synchronization, otherProtocolInstanceUid: otherProtocolInstanceUid) +// let concreteProtocolMessage = AtomProcessedMessage(coreProtocolMessage: coreMessage) +// guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { +// assertionFailure() +// throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") +// } +// _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) +// } + + return FinalState() + + } + + } + + + // MARK: - ProcessSyncAtomRequestStep + + final class ProcessSyncAtomRequestStep: ProtocolStep, TypedConcreteProtocolStep { + + let startState: ConcreteProtocolInitialState + let receivedMessage: SyncAtomMessage + + init?(startState: ConcreteProtocolInitialState, receivedMessage: SyncAtomMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { + + self.startState = startState + self.receivedMessage = receivedMessage + + super.init(expectedToIdentity: concreteCryptoProtocol.ownedIdentity, + expectedReceptionChannelInfo: .AnyObliviousChannelWithOwnedDevice(ownedIdentity: concreteCryptoProtocol.ownedIdentity), + receivedMessage: receivedMessage, + concreteCryptoProtocol: concreteCryptoProtocol) + } + + override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { + + let syncAtom = receivedMessage.syncAtom + + // Determine the origin of the message + + guard let otherOwnedDeviceUID = receivedMessage.receptionChannelInfo?.getRemoteDeviceUid() else { + assertionFailure() + return FinalState() + } + + // The received ObvSyncAtom shall either be transferred to the app, or to the identity manager. + + switch syncAtom.recipient { + + case .app: + + let dialogUuid = UUID() + let dialogType = ObvChannelDialogToSendType.syncRequestReceivedFromOtherOwnedDevice(otherOwnedDeviceUID: otherOwnedDeviceUID, syncAtom: syncAtom) + let coreMessage = getCoreMessage(for: .UserInterface(uuid: dialogUuid, ownedIdentity: ownedIdentity, dialogType: dialogType)) + let concreteProtocolMessage = SyncAtomDialogMessage(coreProtocolMessage: coreMessage) + guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { + throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") + } + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) + + case .identityManager: + + do { + try identityDelegate.processSyncAtom(syncAtom, ownedCryptoIdentity: ownedIdentity, within: obvContext) + } catch { + assertionFailure(error.localizedDescription) + throw error + } + + case .notImplementedOniOS: + + break + + } + + // Send an AtomProcessedMessage to all ongoing instances of the synchronisation protocol + +// let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) +// let otherDeviceUids = try identityDelegate.getOtherDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) +// for otherDeviceUid in otherDeviceUids { +// let otherProtocolInstanceUid = try SynchronizationProtocol.computeOngoingProtocolInstanceUid(ownedCryptoId: ownedIdentity, currentDeviceUid: currentDeviceUid, otherOwnedDeviceUid: otherDeviceUid) +// let coreMessage = getCoreMessageForOtherLocalProtocol(otherCryptoProtocolId: .synchronization, otherProtocolInstanceUid: otherProtocolInstanceUid) +// let concreteProtocolMessage = AtomProcessedMessage(coreProtocolMessage: coreMessage) +// guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { +// assertionFailure() +// throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") +// } +// _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) +// } + + return FinalState() + + } + + } + + + // MARK: - UpdateStateAndSendSyncSnapshotStep + +// class UpdateStateAndSendSyncSnapshotStep: ProtocolStep { +// +// enum StartStateType { +// case initial(startState: ConcreteProtocolInitialState) +// case ongoingSyncSnapshot(startState: OngoingSyncSnapshotState) +// } +// +// enum ReceivedMessageType { +// case initiateSyncSnapshotMessage(receivedMessage: InitiateSyncSnapshotMessage) +// case triggerSyncSnapshotMessage(receivedMessage: TriggerSyncSnapshotMessage) +// case transferSyncSnapshot(receivedMessage: TransferSyncSnapshotMessage) +// case atomProcessed(receivedMessage: AtomProcessedMessage) +// } +// +// +// private let startState: StartStateType +// private let receivedMessage: ReceivedMessageType +// +// init?(startState: StartStateType, receivedMessage: ReceivedMessageType, concreteCryptoProtocol: ConcreteCryptoProtocol) { +// self.startState = startState +// self.receivedMessage = receivedMessage +// switch receivedMessage { +// case .initiateSyncSnapshotMessage(let receivedMessage): +// super.init( +// expectedToIdentity: concreteCryptoProtocol.ownedIdentity, +// expectedReceptionChannelInfo: .Local, +// receivedMessage: receivedMessage, +// concreteCryptoProtocol: concreteCryptoProtocol) +// case .triggerSyncSnapshotMessage(let receivedMessage): +// super.init( +// expectedToIdentity: concreteCryptoProtocol.ownedIdentity, +// expectedReceptionChannelInfo: .Local, +// receivedMessage: receivedMessage, +// concreteCryptoProtocol: concreteCryptoProtocol) +// case .transferSyncSnapshot(let receivedMessage): +// super.init( +// expectedToIdentity: concreteCryptoProtocol.ownedIdentity, +// expectedReceptionChannelInfo: .AnyObliviousChannelWithOwnedDevice(ownedIdentity: concreteCryptoProtocol.ownedIdentity), +// receivedMessage: receivedMessage, +// concreteCryptoProtocol: concreteCryptoProtocol) +// case .atomProcessed(let receivedMessage): +// super.init( +// expectedToIdentity: concreteCryptoProtocol.ownedIdentity, +// expectedReceptionChannelInfo: .Local, +// receivedMessage: receivedMessage, +// concreteCryptoProtocol: concreteCryptoProtocol) +// } +// } +// +// override func executeStep(within obvContext: ObvContext) throws -> ConcreteProtocolState? { +// +// let defaultStateToReturn: ConcreteProtocolState +// let otherOwnedDeviceUid: UID +// let currentlyShowingDiff: Bool +// +// let localSnapshot: ObvSyncSnapshotAndVersion? +// let localSnapshotVersionKnownByRemote: Int? +// +// let previouslyReceivedRemoteSnapshot: ObvSyncSnapshotAndVersion? +// let justReceivedRemoteSnapshot: ObvSyncSnapshotAndVersion? +// +// var sendOurSnapshot = false +// +// switch (startState, receivedMessage) { +// +// case (.initial, .initiateSyncSnapshotMessage(let receivedMessage)): +// defaultStateToReturn = FinalState() +// otherOwnedDeviceUid = receivedMessage.otherOwnedDeviceUID +// currentlyShowingDiff = false +// localSnapshot = nil +// localSnapshotVersionKnownByRemote = nil +// previouslyReceivedRemoteSnapshot = nil +// justReceivedRemoteSnapshot = nil +// +// case (.initial, .triggerSyncSnapshotMessage): +// return FinalState() +// +// case (.initial(let startState), .transferSyncSnapshot(let receivedMessage)): +// defaultStateToReturn = FinalState() +// guard let remoteDeviceUid = receivedMessage.receptionChannelInfo?.getRemoteDeviceUid() else { +// assertionFailure() +// return startState +// } +// otherOwnedDeviceUid = remoteDeviceUid +// currentlyShowingDiff = false +// localSnapshot = nil +// localSnapshotVersionKnownByRemote = receivedMessage.localVersionKnownBySender +// previouslyReceivedRemoteSnapshot = nil +// justReceivedRemoteSnapshot = receivedMessage.remoteSyncSnapshotAndVersion +// +// case (.initial, .atomProcessed): +// return FinalState() +// +// case (.ongoingSyncSnapshot(let startState), .initiateSyncSnapshotMessage): +// return startState +// +// case (.ongoingSyncSnapshot(let startState), .triggerSyncSnapshotMessage(let receivedMessage)): +// defaultStateToReturn = startState +// otherOwnedDeviceUid = startState.otherOwnedDeviceUid +// currentlyShowingDiff = startState.currentlyShowingDiff +// localSnapshot = startState.localSnapshot +// localSnapshotVersionKnownByRemote = nil +// previouslyReceivedRemoteSnapshot = startState.remoteSnapshot +// justReceivedRemoteSnapshot = nil +// sendOurSnapshot = receivedMessage.forceSendSnapshot +// +// case (.ongoingSyncSnapshot(let startState), .transferSyncSnapshot(let receivedMessage)): +// defaultStateToReturn = startState +// guard let remoteDeviceUid = receivedMessage.receptionChannelInfo?.getRemoteDeviceUid() else { +// assertionFailure() +// return startState +// } +// guard remoteDeviceUid == startState.otherOwnedDeviceUid else { +// assertionFailure() +// return startState +// } +// otherOwnedDeviceUid = remoteDeviceUid +// currentlyShowingDiff = startState.currentlyShowingDiff +// localSnapshot = startState.localSnapshot +// localSnapshotVersionKnownByRemote = receivedMessage.localVersionKnownBySender +// previouslyReceivedRemoteSnapshot = startState.remoteSnapshot +// justReceivedRemoteSnapshot = receivedMessage.remoteSyncSnapshotAndVersion +// +// case (.ongoingSyncSnapshot(let startState), .atomProcessed): +// defaultStateToReturn = startState +// otherOwnedDeviceUid = startState.otherOwnedDeviceUid +// currentlyShowingDiff = startState.currentlyShowingDiff +// localSnapshot = startState.localSnapshot +// localSnapshotVersionKnownByRemote = nil +// previouslyReceivedRemoteSnapshot = startState.remoteSnapshot +// justReceivedRemoteSnapshot = nil +// +// } +// +// // Check that the protocolUid matches what we expect +// +// let currentDeviceUid = try identityDelegate.getCurrentDeviceUidOfOwnedIdentity(ownedIdentity, within: obvContext) +// guard try self.protocolInstanceUid == SynchronizationProtocol.computeOngoingProtocolInstanceUid(ownedCryptoId: ownedIdentity, currentDeviceUid: currentDeviceUid, otherOwnedDeviceUid: otherOwnedDeviceUid) else { +// assertionFailure() +// return defaultStateToReturn +// } +// +// // In case we received a snapshot or have a previously received snapshot, we want to determine the one that is the most appropriate to continue with (we call it the "last seen" snapshot) +// +// let updatedRemoteSnapshot: ObvSyncSnapshotAndVersion? +// +// switch determineUpdatedRemoteSnapshot(justReceivedRemoteSnapshot: justReceivedRemoteSnapshot, previouslyReceivedRemoteSnapshot: previouslyReceivedRemoteSnapshot) { +// case .stopStep: +// return defaultStateToReturn +// case .updatedRemoteSnapshot(let snapshot): +// updatedRemoteSnapshot = snapshot +// } +// +// // In rare cases, we might have restarted this protocol and, consequently, reset the version of the localSnapshot back to 0. +// // In that situation, the remote device might have previously received from us a snapshot with a version larger than ours. +// // If we do nothing, the snapshot we would send her now would be discarder. So we update our version if required. +// // In case we update our version, we always decide to eventually send our local snapshot back. +// +// let updatedLocalSnapshot: ObvSyncSnapshotAndVersion +// +// do { +// +// let localSnapshotWithUpdatedVersion: ObvSyncSnapshotAndVersion? +// +// if let localSnapshotVersionKnownByRemote, let localSnapshot, localSnapshotVersionKnownByRemote > localSnapshot.version { +// +// localSnapshotWithUpdatedVersion = ObvSyncSnapshotAndVersion( +// version: localSnapshotVersionKnownByRemote + 1, +// syncSnapshot: localSnapshot.syncSnapshot) +// +// sendOurSnapshot = true +// +// } else { +// +// localSnapshotWithUpdatedVersion = localSnapshot +// +// } +// +// // Now that the version of the local snapshot is correct, we want it to reflect the latest state of the current device. +// +// let syncSnapshot = try syncSnapshotDelegate.makeObvSyncSnapshot(within: obvContext) +// let localSnapshotChanged = syncSnapshot.isContentIdenticalTo(other: localSnapshotWithUpdatedVersion?.syncSnapshot) +// let version: Int +// +// if localSnapshotChanged { +// version = (localSnapshotWithUpdatedVersion?.version ?? 0) + 1 +// sendOurSnapshot = true +// } else { +// version = (localSnapshotWithUpdatedVersion?.version ?? 0) +// } +// +// updatedLocalSnapshot = ObvSyncSnapshotAndVersion(version: version, syncSnapshot: syncSnapshot) +// +// } +// +// // Decide whether we should compute a diff to show to the user. This will be the case if: +// // - We have a remote snapshot to compare to (obviously) +// // - AND: +// // - we are currently showing a diff +// // - OR we received a snapshot with a localSnapshotKnownByRemote.version == updatedLocalSnapshot.version +// // In both cases, if the diff we compute is empty, we stop showing a diff to the user +// +// let computedDiffsToShow: Set? +// if let updatedRemoteSnapshot { +// let shouldComputeDiff = currentlyShowingDiff || (localSnapshotVersionKnownByRemote == updatedLocalSnapshot.version) +// if shouldComputeDiff { +// computedDiffsToShow = updatedLocalSnapshot.syncSnapshot.computeDiff(withOther: updatedRemoteSnapshot.syncSnapshot) +// } else { +// computedDiffsToShow = nil +// } +// } else { +// computedDiffsToShow = nil +// } +// +// // If we decided to send our updated local snapshot, do it now +// +// if sendOurSnapshot { +// let coreMessage = getCoreMessage(for: ObvChannelSendChannelType.ObliviousChannel(to: ownedIdentity, remoteDeviceUids: [otherOwnedDeviceUid], fromOwnedIdentity: ownedIdentity, necessarilyConfirmed: true)) +// let concreteMessage = TransferSyncSnapshotMessage(coreProtocolMessage: coreMessage, remoteSyncSnapshotAndVersion: updatedLocalSnapshot, localVersionKnownBySender: updatedRemoteSnapshot?.version) +// guard let messageToSend = concreteMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure(); throw Self.makeError(message: "Implementation error") } +// _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) +// } +// +// // If we decided to show diffs to the user, do it now +// +// if let computedDiffsToShow { +// syncSnapshotDelegate.newSyncDiffsToProcessOrShowToUser(computedDiffsToShow, withOtherOwnedDeviceUid: otherOwnedDeviceUid) +// } +// +// // We stay in an ongoing state "forever" (until the remote device is removed) +// +// return OngoingSyncSnapshotState( +// otherOwnedDeviceUid: otherOwnedDeviceUid, +// localSnapshot: updatedLocalSnapshot, +// remoteSnapshot: updatedRemoteSnapshot, +// currentlyShowingDiff: computedDiffsToShow != nil) +// +// } +// +// +// private enum LastSeenReceivedSnapShotAndVersionOrStopStep { +// case updatedRemoteSnapshot(snapshot: ObvSyncSnapshotAndVersion?) +// case stopStep +// } +// +// +// /// Returns the most appropriate snapshot and version to consider in the rest of the step. In some occasions, we want to stop the step execution. +// private func determineUpdatedRemoteSnapshot(justReceivedRemoteSnapshot: ObvSyncSnapshotAndVersion?, previouslyReceivedRemoteSnapshot: ObvSyncSnapshotAndVersion?) -> LastSeenReceivedSnapShotAndVersionOrStopStep { +// +// if let justReceivedRemoteSnapshot { +// +// if let previouslyReceivedRemoteSnapshot { +// +// // We have both a previously received snapshot and a just received snapshot +// if justReceivedRemoteSnapshot.version < previouslyReceivedRemoteSnapshot.version { +// // The snapshot we just received is older than the one we already knew about, we discard it and there is nothing left to do +// return .stopStep +// } else if justReceivedRemoteSnapshot.version == previouslyReceivedRemoteSnapshot.version { +// // Weird, the snapshot we just received has the same version than the one we already knew about. If the content are the same, we can ignore the received message. +// if justReceivedRemoteSnapshot.syncSnapshot.isContentIdenticalTo(other: previouslyReceivedRemoteSnapshot.syncSnapshot) { +// return .stopStep +// } else { +// // The just received snapshot "replaces" the previous one +// return .updatedRemoteSnapshot(snapshot: justReceivedRemoteSnapshot) +// } +// } else { +// // The snapshot we received is more recent than the one we received previously, we keep the most recent one +// return .updatedRemoteSnapshot(snapshot: justReceivedRemoteSnapshot) +// } +// +// } else { +// +// return .updatedRemoteSnapshot(snapshot: justReceivedRemoteSnapshot) +// +// } +// +// } else { +// +// return .updatedRemoteSnapshot(snapshot: previouslyReceivedRemoteSnapshot) +// +// } +// +// } +// +// } + + + // MARK: UpdateStateAndSendSyncSnapshotStep on InitiateSyncSnapshotMessage from ConcreteProtocolInitialState + +// final class UpdateStateAndSendSyncSnapshotOnInitiateSyncSnapshotMessageFromConcreteProtocolInitialState: UpdateStateAndSendSyncSnapshotStep, TypedConcreteProtocolStep { +// +// let startState: ConcreteProtocolInitialState +// let receivedMessage: InitiateSyncSnapshotMessage +// +// init?(startState: ConcreteProtocolInitialState, receivedMessage: InitiateSyncSnapshotMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { +// self.startState = startState +// self.receivedMessage = receivedMessage +// super.init( +// startState: .initial(startState: startState), +// receivedMessage: .initiateSyncSnapshotMessage(receivedMessage: receivedMessage), +// concreteCryptoProtocol: concreteCryptoProtocol) +// } +// +// } + + + // MARK: UpdateStateAndSendSyncSnapshotStep on TriggerSyncSnapshotMessage from ConcreteProtocolInitialState + +// final class UpdateStateAndSendSyncSnapshotOnTriggerSyncSnapshotMessageFromConcreteProtocolInitialState: UpdateStateAndSendSyncSnapshotStep, TypedConcreteProtocolStep { +// +// let startState: ConcreteProtocolInitialState +// let receivedMessage: TriggerSyncSnapshotMessage +// +// init?(startState: ConcreteProtocolInitialState, receivedMessage: TriggerSyncSnapshotMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { +// self.startState = startState +// self.receivedMessage = receivedMessage +// super.init( +// startState: .initial(startState: startState), +// receivedMessage: .triggerSyncSnapshotMessage(receivedMessage: receivedMessage), +// concreteCryptoProtocol: concreteCryptoProtocol) +// } +// +// } + + + // MARK: UpdateStateAndSendSyncSnapshotStep on TransferSyncSnapshotMessage from ConcreteProtocolInitialState + +// final class UpdateStateAndSendSyncSnapshotOnTransferSyncSnapshotMessageFromConcreteProtocolInitialState: UpdateStateAndSendSyncSnapshotStep, TypedConcreteProtocolStep { +// +// let startState: ConcreteProtocolInitialState +// let receivedMessage: TransferSyncSnapshotMessage +// +// init?(startState: ConcreteProtocolInitialState, receivedMessage: TransferSyncSnapshotMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { +// self.startState = startState +// self.receivedMessage = receivedMessage +// super.init( +// startState: .initial(startState: startState), +// receivedMessage: .transferSyncSnapshot(receivedMessage: receivedMessage), +// concreteCryptoProtocol: concreteCryptoProtocol) +// } +// +// } + + + // MARK: UpdateStateAndSendSyncSnapshotStep on AtomProcessedMessage from ConcreteProtocolInitialState + +// final class UpdateStateAndSendSyncSnapshotOnAtomProcessedMessageFromConcreteProtocolInitialState: UpdateStateAndSendSyncSnapshotStep, TypedConcreteProtocolStep { +// +// let startState: ConcreteProtocolInitialState +// let receivedMessage: AtomProcessedMessage +// +// init?(startState: ConcreteProtocolInitialState, receivedMessage: AtomProcessedMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { +// self.startState = startState +// self.receivedMessage = receivedMessage +// super.init( +// startState: .initial(startState: startState), +// receivedMessage: .atomProcessed(receivedMessage: receivedMessage), +// concreteCryptoProtocol: concreteCryptoProtocol) +// } +// +// } + + + // MARK: UpdateStateAndSendSyncSnapshotStep on InitiateSyncSnapshotMessage from OngoingSyncSnapshotState + +// final class UpdateStateAndSendSyncSnapshotOnInitiateSyncSnapshotMessageFromOngoingSyncSnapshotState: UpdateStateAndSendSyncSnapshotStep, TypedConcreteProtocolStep { +// +// let startState: OngoingSyncSnapshotState +// let receivedMessage: InitiateSyncSnapshotMessage +// +// init?(startState: OngoingSyncSnapshotState, receivedMessage: InitiateSyncSnapshotMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { +// self.startState = startState +// self.receivedMessage = receivedMessage +// super.init( +// startState: .ongoingSyncSnapshot(startState: startState), +// receivedMessage: .initiateSyncSnapshotMessage(receivedMessage: receivedMessage), +// concreteCryptoProtocol: concreteCryptoProtocol) +// } +// +// } + + + // MARK: UpdateStateAndSendSyncSnapshotStep on TriggerSyncSnapshotMessage from OngoingSyncSnapshotState + +// final class UpdateStateAndSendSyncSnapshotOnTriggerSyncSnapshotMessageFromOngoingSyncSnapshotState: UpdateStateAndSendSyncSnapshotStep, TypedConcreteProtocolStep { +// +// let startState: OngoingSyncSnapshotState +// let receivedMessage: TriggerSyncSnapshotMessage +// +// init?(startState: OngoingSyncSnapshotState, receivedMessage: TriggerSyncSnapshotMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { +// self.startState = startState +// self.receivedMessage = receivedMessage +// super.init( +// startState: .ongoingSyncSnapshot(startState: startState), +// receivedMessage: .triggerSyncSnapshotMessage(receivedMessage: receivedMessage), +// concreteCryptoProtocol: concreteCryptoProtocol) +// } +// +// } + + + // MARK: UpdateStateAndSendSyncSnapshotStep on TransferSyncSnapshotMessage from OngoingSyncSnapshotState + +// final class UpdateStateAndSendSyncSnapshotOnTransferSyncSnapshotMessageFromOngoingSyncSnapshotState: UpdateStateAndSendSyncSnapshotStep, TypedConcreteProtocolStep { +// +// let startState: OngoingSyncSnapshotState +// let receivedMessage: TransferSyncSnapshotMessage +// +// init?(startState: OngoingSyncSnapshotState, receivedMessage: TransferSyncSnapshotMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { +// self.startState = startState +// self.receivedMessage = receivedMessage +// super.init( +// startState: .ongoingSyncSnapshot(startState: startState), +// receivedMessage: .transferSyncSnapshot(receivedMessage: receivedMessage), +// concreteCryptoProtocol: concreteCryptoProtocol) +// } +// +// } + + + // MARK: UpdateStateAndSendSyncSnapshotStep on AtomProcessedMessage from OngoingSyncSnapshotState + +// final class UpdateStateAndSendSyncSnapshotOnAtomProcessedMessageFromOngoingSyncSnapshotState: UpdateStateAndSendSyncSnapshotStep, TypedConcreteProtocolStep { +// +// let startState: OngoingSyncSnapshotState +// let receivedMessage: AtomProcessedMessage +// +// init?(startState: OngoingSyncSnapshotState, receivedMessage: AtomProcessedMessage, concreteCryptoProtocol: ConcreteCryptoProtocol) { +// self.startState = startState +// self.receivedMessage = receivedMessage +// super.init( +// startState: .ongoingSyncSnapshot(startState: startState), +// receivedMessage: .atomProcessed(receivedMessage: receivedMessage), +// concreteCryptoProtocol: concreteCryptoProtocol) +// } +// +// } + +} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocol.swift index ff8a1705..321e4511 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,13 +27,13 @@ public struct TrustEstablishmentWithMutualScanProtocol: ConcreteCryptoProtocol { static let logCategory = "TrustEstablishmentWithMutualScanProtocol" - static let id = CryptoProtocolId.TrustEstablishmentWithMutualScan + static let id = CryptoProtocolId.trustEstablishmentWithMutualScan private static let errorDomain = "TrustEstablishmentWithMutualScanProtocol" static func makeError(message: String) -> Error { NSError(domain: errorDomain, code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.Finished, StateId.Cancelled] + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.finished, StateId.cancelled] let ownedIdentity: ObvCryptoIdentity let currentState: ConcreteProtocolState @@ -60,13 +60,8 @@ public struct TrustEstablishmentWithMutualScanProtocol: ConcreteCryptoProtocol { return MessageId(rawValue: rawValue) } - static let allStepIds: [ConcreteProtocolStepId] = [ - StepId.AliceSend, - StepId.AliceHandlesPropagatedQRCode, - StepId.AliceAddsContact, - StepId.BobAddsContactAndConfirms, - StepId.BobHandlesPropagatedSignature, - ] - + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocolMessages.swift index 7f0281f8..c747f7c7 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,19 +26,20 @@ import ObvTypes extension TrustEstablishmentWithMutualScanProtocol { enum MessageId: Int, ConcreteProtocolMessageId { - case Initial = 0 - case AliceSendsSignatureToBob = 1 - case AlicePropagatesQRCode = 2 - case BobSendsConfirmationAndDetailsToAlice = 3 - case BobPropagatesSignature = 4 + + case initial = 0 + case aliceSendsSignatureToBob = 1 + case alicePropagatesQRCode = 2 + case bobSendsConfirmationAndDetailsToAlice = 3 + case bobPropagatesSignature = 4 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { - case .Initial : return InitialMessage.self - case .AliceSendsSignatureToBob : return AliceSendsSignatureToBobMessage.self - case .AlicePropagatesQRCode : return AlicePropagatesQRCodeMessage.self - case .BobSendsConfirmationAndDetailsToAlice : return BobSendsConfirmationAndDetailsToAliceMessage.self - case .BobPropagatesSignature : return BobPropagatesSignatureMessage.self + case .initial : return InitialMessage.self + case .aliceSendsSignatureToBob : return AliceSendsSignatureToBobMessage.self + case .alicePropagatesQRCode : return AlicePropagatesQRCodeMessage.self + case .bobSendsConfirmationAndDetailsToAlice : return BobSendsConfirmationAndDetailsToAliceMessage.self + case .bobPropagatesSignature : return BobPropagatesSignatureMessage.self } } @@ -49,7 +50,7 @@ extension TrustEstablishmentWithMutualScanProtocol { struct InitialMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.Initial + let id: ConcreteProtocolMessageId = MessageId.initial let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -81,7 +82,7 @@ extension TrustEstablishmentWithMutualScanProtocol { struct AliceSendsSignatureToBobMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.AliceSendsSignatureToBob + let id: ConcreteProtocolMessageId = MessageId.aliceSendsSignatureToBob let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -127,7 +128,7 @@ extension TrustEstablishmentWithMutualScanProtocol { struct AlicePropagatesQRCodeMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.AlicePropagatesQRCode + let id: ConcreteProtocolMessageId = MessageId.alicePropagatesQRCode let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -159,7 +160,7 @@ extension TrustEstablishmentWithMutualScanProtocol { struct BobSendsConfirmationAndDetailsToAliceMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.BobSendsConfirmationAndDetailsToAlice + let id: ConcreteProtocolMessageId = MessageId.bobSendsConfirmationAndDetailsToAlice let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -195,7 +196,7 @@ extension TrustEstablishmentWithMutualScanProtocol { struct BobPropagatesSignatureMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.BobPropagatesSignature + let id: ConcreteProtocolMessageId = MessageId.bobPropagatesSignature let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocolMessagesSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocolMessagesSteps.swift index 3b9d2366..44a886a8 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocolMessagesSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocolMessagesSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,36 +25,36 @@ import ObvMetaManager extension TrustEstablishmentWithMutualScanProtocol { - enum StepId: Int, ConcreteProtocolStepId { + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { // Alice's side - case AliceSend = 0 - case AliceHandlesPropagatedQRCode = 1 - case AliceAddsContact = 2 + case aliceSend = 0 + case aliceHandlesPropagatedQRCode = 1 + case aliceAddsContact = 2 // Bob's side - case BobAddsContactAndConfirms = 3 - case BobHandlesPropagatedSignature = 4 + case bobAddsContactAndConfirms = 3 + case bobHandlesPropagatedSignature = 4 func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { // Alice's side - case .AliceSend: + case .aliceSend: let step = AliceSendStep(from: concreteProtocol, and: receivedMessage) return step - case .AliceHandlesPropagatedQRCode: + case .aliceHandlesPropagatedQRCode: let step = AliceHandlesPropagatedQRCodeStep(from: concreteProtocol, and: receivedMessage) return step - case .AliceAddsContact: + case .aliceAddsContact: let step = AliceAddsContactStep(from: concreteProtocol, and: receivedMessage) return step // Bob's side - case .BobAddsContactAndConfirms: + case .bobAddsContactAndConfirms: let step = BobAddsContactAndConfirmsStep(from: concreteProtocol, and: receivedMessage) return step - case .BobHandlesPropagatedSignature: + case .bobHandlesPropagatedSignature: let step = BobHandlesPropagatedSignatureStep(from: concreteProtocol, and: receivedMessage) return step } @@ -108,7 +108,7 @@ extension TrustEstablishmentWithMutualScanProtocol { aliceCoreDetails: aliceCoreDetails, aliceDeviceUids: Array(aliceDeviceUids)) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw TrustEstablishmentWithMutualScanProtocol.makeError(message: "Could not generate ObvChannelProtocolMessageToSend for AliceSendsSignatureToBobMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) // Send propagate messages @@ -119,7 +119,7 @@ extension TrustEstablishmentWithMutualScanProtocol { bobIdentity: contactIdentity, signature: signature) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw TrustEstablishmentWithMutualScanProtocol.makeError(message: "Could not generate ObvChannelProtocolMessageToSend for AlicePropagatesQRCodeMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -226,26 +226,26 @@ extension TrustEstablishmentWithMutualScanProtocol { os_log("Contact is not active", log: log, type: .error) return CancelledState() } - try identityDelegate.addTrustOriginIfTrustWouldBeIncreased(.direct(timestamp: Date()), toContactIdentity: aliceIdentity, ofOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) + try identityDelegate.addTrustOriginIfTrustWouldBeIncreasedAndSetContactAsOneToOne(.direct(timestamp: Date()), toContactIdentity: aliceIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) } else { try identityDelegate.addContactIdentity(aliceIdentity, with: aliceCoreDetails, andTrustOrigin: .direct(timestamp: Date()), forOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) } for uid in aliceDeviceUids { - try identityDelegate.addDeviceForContactIdentity(aliceIdentity, withUid: uid, ofOwnedIdentity: ownedIdentity, within: obvContext) + try identityDelegate.addDeviceForContactIdentity(aliceIdentity, withUid: uid, ofOwnedIdentity: ownedIdentity, createdDuringChannelCreation: false, within: obvContext) } // Notify Alice she was added and send her our details let bobDeviceUids = try identityDelegate.getDeviceUidsOfOwnedIdentity(ownedIdentity, within: obvContext) let bobCoreDetails = try identityDelegate.getIdentityDetailsOfOwnedIdentity(ownedIdentity, within: obvContext).publishedIdentityDetails.coreDetails - let coreMessage = getCoreMessage(for: .AsymmetricChannelBroadcast(to: aliceIdentity, fromOwnedIdentity: ownedIdentity)) + let coreMessage = getCoreMessage(for: .AsymmetricChannel(to: aliceIdentity, remoteDeviceUids: aliceDeviceUids, fromOwnedIdentity: ownedIdentity)) let concreteProtocolMessage = BobSendsConfirmationAndDetailsToAliceMessage(coreProtocolMessage: coreMessage, bobCoreDetails: bobCoreDetails, bobDeviceUids: Array(bobDeviceUids)) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw TrustEstablishmentWithMutualScanProtocol.makeError(message: "Could not generate ObvChannelProtocolMessageToSend for BobSendsConfirmationAndDetailsToAliceMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) // Propagate the message to other devices @@ -260,7 +260,7 @@ extension TrustEstablishmentWithMutualScanProtocol { guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { throw TrustEstablishmentWithMutualScanProtocol.makeError(message: "Could not generate ObvChannelProtocolMessageToSend for BobPropagatesSignatureMessage") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Send a notification so the app can automatically open the contact discussion @@ -335,12 +335,12 @@ extension TrustEstablishmentWithMutualScanProtocol { // Signature is valid and is fresh --> create the contact (if it does not already exists) if (try? identityDelegate.isIdentity(aliceIdentity, aContactIdentityOfTheOwnedIdentity: ownedIdentity, within: obvContext)) == true { - try identityDelegate.addTrustOriginIfTrustWouldBeIncreased(.direct(timestamp: Date()), toContactIdentity: aliceIdentity, ofOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) + try identityDelegate.addTrustOriginIfTrustWouldBeIncreasedAndSetContactAsOneToOne(.direct(timestamp: Date()), toContactIdentity: aliceIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) } else { try identityDelegate.addContactIdentity(aliceIdentity, with: aliceCoreDetails, andTrustOrigin: .direct(timestamp: Date()), forOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) } for uid in aliceDeviceUids { - try identityDelegate.addDeviceForContactIdentity(aliceIdentity, withUid: uid, ofOwnedIdentity: ownedIdentity, within: obvContext) + try identityDelegate.addDeviceForContactIdentity(aliceIdentity, withUid: uid, ofOwnedIdentity: ownedIdentity, createdDuringChannelCreation: false, within: obvContext) } // Send a notification so the app can automatically open the contact discussion @@ -396,12 +396,12 @@ extension TrustEstablishmentWithMutualScanProtocol { os_log("The identity is not active", log: log, type: .fault) return CancelledState() } - try identityDelegate.addTrustOriginIfTrustWouldBeIncreased(.direct(timestamp: Date()), toContactIdentity: bobIdentity, ofOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) + try identityDelegate.addTrustOriginIfTrustWouldBeIncreasedAndSetContactAsOneToOne(.direct(timestamp: Date()), toContactIdentity: bobIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) } else { try identityDelegate.addContactIdentity(bobIdentity, with: bobCoreDetails, andTrustOrigin: .direct(timestamp: Date()), forOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) } for uid in bobDeviceUids { - try identityDelegate.addDeviceForContactIdentity(bobIdentity, withUid: uid, ofOwnedIdentity: ownedIdentity, within: obvContext) + try identityDelegate.addDeviceForContactIdentity(bobIdentity, withUid: uid, ofOwnedIdentity: ownedIdentity, createdDuringChannelCreation: false, within: obvContext) } // Return the new state diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocolStates.swift index 5ef3d71b..0ab15d03 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithMutualScanProtocol/TrustEstablishmentWithMutualScanProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,17 +26,17 @@ extension TrustEstablishmentWithMutualScanProtocol { enum StateId: Int, ConcreteProtocolStateId { - case Initial = 0 - case WaitingForConfirmation = 1 - case Finished = 2 - case Cancelled = 3 + case initial = 0 + case waitingForConfirmation = 1 + case finished = 2 + case cancelled = 3 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .Initial : return ConcreteProtocolInitialState.self - case .WaitingForConfirmation : return WaitingForConfirmationState.self - case .Finished : return FinishedState.self - case .Cancelled: return CancelledState.self + case .initial : return ConcreteProtocolInitialState.self + case .waitingForConfirmation : return WaitingForConfirmationState.self + case .finished : return FinishedState.self + case .cancelled: return CancelledState.self } } @@ -45,7 +45,7 @@ extension TrustEstablishmentWithMutualScanProtocol { struct WaitingForConfirmationState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.WaitingForConfirmation + let id: ConcreteProtocolStateId = StateId.waitingForConfirmation let bobIdentity: ObvCryptoIdentity @@ -65,7 +65,7 @@ extension TrustEstablishmentWithMutualScanProtocol { struct FinishedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Finished + let id: ConcreteProtocolStateId = StateId.finished init(_: ObvEncoded) {} @@ -78,7 +78,7 @@ extension TrustEstablishmentWithMutualScanProtocol { struct CancelledState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Cancelled + let id: ConcreteProtocolStateId = StateId.cancelled init(_: ObvEncoded) {} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocol.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocol.swift index 2dc11414..2456565c 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocol.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -32,9 +32,9 @@ public struct TrustEstablishmentWithSASProtocol: ConcreteCryptoProtocol, ObvErro static let logCategory = "TrustEstablishmentWithSASProtocol" - static let id = CryptoProtocolId.TrustEstablishmentWithSAS + static let id = CryptoProtocolId.trustEstablishmentWithSAS - static let finalStateIds: [ConcreteProtocolStateId] = [StateId.Cancelled, StateId.MutualTrustConfirmed] + static let finalStateIds: [ConcreteProtocolStateId] = [StateId.cancelled, StateId.mutualTrustConfirmed] public static let errorDomain = "TrustEstablishmentWithSASProtocol" @@ -63,18 +63,10 @@ public struct TrustEstablishmentWithSASProtocol: ConcreteCryptoProtocol, ObvErro return MessageId(rawValue: rawValue) } - static let allStepIds: [ConcreteProtocolStepId] = [StepId.SendCommitment, - StepId.StoreDecommitment, - StepId.ShowSasDialogAndSendDecommitment, - StepId.StoreAndPropagateCommitmentAndAskForConfirmation, - StepId.StoreCommitmentAndAskForConfirmation, - StepId.SendSeedAndPropagateConfirmation, - StepId.ReceiveConfirmationFromOtherDevice, - StepId.ShowSasDialog, - StepId.CheckSas, - StepId.CheckPropagatedSas, - StepId.NotifiedMutualTrustEstablishedLegacy, - StepId.AddTrust] + static var allStepIds: [ConcreteProtocolStepId] { + return StepId.allCases + } + } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocolMessages.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocolMessages.swift index d7acd5e6..0808cfd7 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocolMessages.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocolMessages.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -32,35 +32,36 @@ import ObvMetaManager extension TrustEstablishmentWithSASProtocol { enum MessageId: Int, ConcreteProtocolMessageId { - case Initial = 0 - case AliceSendsCommitment = 1 - case AlicePropagatesHerInviteToOtherDevices = 2 - case BobPropagatesCommitmentToOtherDevices = 4 - case BobDialogInvitationConfirmation = 5 - case BobPropagatesConfirmationToOtherDevices = 6 - case BobSendsSeed = 8 - case AliceSendsDecommitment = 9 - case DialogSasExchange = 10 - case PropagateEnteredSasToOtherDevices = 12 - case MutualTrustConfirmation = 13 - case DialogForMutualTrustConfirmation = 14 - case DialogInformative = 15 + + case initial = 0 + case aliceSendsCommitment = 1 + case alicePropagatesHerInviteToOtherDevices = 2 + case bobPropagatesCommitmentToOtherDevices = 4 + case bobDialogInvitationConfirmation = 5 + case bobPropagatesConfirmationToOtherDevices = 6 + case bobSendsSeed = 8 + case aliceSendsDecommitment = 9 + case dialogSasExchange = 10 + case propagateEnteredSasToOtherDevices = 12 + case mutualTrustConfirmation = 13 + case dialogForMutualTrustConfirmation = 14 + case dialogInformative = 15 var concreteProtocolMessageType: ConcreteProtocolMessage.Type { switch self { - case .Initial : return InitialMessage.self - case .AliceSendsCommitment : return AliceSendsCommitmentMessage.self - case .AlicePropagatesHerInviteToOtherDevices : return AlicePropagatesHerInviteToOtherDevicesMessage.self - case .BobPropagatesCommitmentToOtherDevices : return BobPropagatesCommitmentToOtherDevicesMessage.self - case .BobDialogInvitationConfirmation : return BobDialogInvitationConfirmationMessage.self - case .BobPropagatesConfirmationToOtherDevices : return BobPropagatesConfirmationToOtherDevicesMessage.self - case .BobSendsSeed : return BobSendsSeedMessage.self - case .AliceSendsDecommitment : return AliceSendsDecommitmentMessage.self - case .DialogSasExchange : return DialogSasExchangeMessage.self - case .PropagateEnteredSasToOtherDevices : return PropagateEnteredSasToOtherDevicesMessage.self - case .MutualTrustConfirmation : return MutualTrustConfirmationMessageMessage.self - case .DialogForMutualTrustConfirmation : return DialogForMutualTrustConfirmationMessage.self - case .DialogInformative : return DialogInformativeMessage.self + case .initial : return InitialMessage.self + case .aliceSendsCommitment : return AliceSendsCommitmentMessage.self + case .alicePropagatesHerInviteToOtherDevices : return AlicePropagatesHerInviteToOtherDevicesMessage.self + case .bobPropagatesCommitmentToOtherDevices : return BobPropagatesCommitmentToOtherDevicesMessage.self + case .bobDialogInvitationConfirmation : return BobDialogInvitationConfirmationMessage.self + case .bobPropagatesConfirmationToOtherDevices : return BobPropagatesConfirmationToOtherDevicesMessage.self + case .bobSendsSeed : return BobSendsSeedMessage.self + case .aliceSendsDecommitment : return AliceSendsDecommitmentMessage.self + case .dialogSasExchange : return DialogSasExchangeMessage.self + case .propagateEnteredSasToOtherDevices : return PropagateEnteredSasToOtherDevicesMessage.self + case .mutualTrustConfirmation : return MutualTrustConfirmationMessageMessage.self + case .dialogForMutualTrustConfirmation : return DialogForMutualTrustConfirmationMessage.self + case .dialogInformative : return DialogInformativeMessage.self } } } @@ -68,7 +69,7 @@ extension TrustEstablishmentWithSASProtocol { struct InitialMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.Initial + let id: ConcreteProtocolMessageId = MessageId.initial let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -104,7 +105,7 @@ extension TrustEstablishmentWithSASProtocol { struct AliceSendsCommitmentMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.AliceSendsCommitment + let id: ConcreteProtocolMessageId = MessageId.aliceSendsCommitment let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -144,7 +145,7 @@ extension TrustEstablishmentWithSASProtocol { struct AlicePropagatesHerInviteToOtherDevicesMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.AlicePropagatesHerInviteToOtherDevices + let id: ConcreteProtocolMessageId = MessageId.alicePropagatesHerInviteToOtherDevices let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -178,7 +179,7 @@ extension TrustEstablishmentWithSASProtocol { struct BobPropagatesCommitmentToOtherDevicesMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.BobPropagatesCommitmentToOtherDevices + let id: ConcreteProtocolMessageId = MessageId.bobPropagatesCommitmentToOtherDevices let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -218,7 +219,7 @@ extension TrustEstablishmentWithSASProtocol { struct BobDialogInvitationConfirmationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.BobDialogInvitationConfirmation + let id: ConcreteProtocolMessageId = MessageId.bobDialogInvitationConfirmation let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -248,7 +249,7 @@ extension TrustEstablishmentWithSASProtocol { struct BobPropagatesConfirmationToOtherDevicesMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.BobPropagatesConfirmationToOtherDevices + let id: ConcreteProtocolMessageId = MessageId.bobPropagatesConfirmationToOtherDevices let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -275,7 +276,7 @@ extension TrustEstablishmentWithSASProtocol { struct BobSendsSeedMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.BobSendsSeed + let id: ConcreteProtocolMessageId = MessageId.bobSendsSeed let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -312,7 +313,7 @@ extension TrustEstablishmentWithSASProtocol { struct AliceSendsDecommitmentMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.AliceSendsDecommitment + let id: ConcreteProtocolMessageId = MessageId.aliceSendsDecommitment let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -339,7 +340,7 @@ extension TrustEstablishmentWithSASProtocol { struct DialogSasExchangeMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.DialogSasExchange + let id: ConcreteProtocolMessageId = MessageId.dialogSasExchange let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -369,7 +370,7 @@ extension TrustEstablishmentWithSASProtocol { struct PropagateEnteredSasToOtherDevicesMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.PropagateEnteredSasToOtherDevices + let id: ConcreteProtocolMessageId = MessageId.propagateEnteredSasToOtherDevices let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -396,7 +397,7 @@ extension TrustEstablishmentWithSASProtocol { struct MutualTrustConfirmationMessageMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.MutualTrustConfirmation + let id: ConcreteProtocolMessageId = MessageId.mutualTrustConfirmation let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -418,7 +419,7 @@ extension TrustEstablishmentWithSASProtocol { struct DialogForMutualTrustConfirmationMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.DialogForMutualTrustConfirmation + let id: ConcreteProtocolMessageId = MessageId.dialogForMutualTrustConfirmation let coreProtocolMessage: CoreProtocolMessage // Properties specific to this concrete protocol message @@ -455,7 +456,7 @@ extension TrustEstablishmentWithSASProtocol { struct DialogInformativeMessage: ConcreteProtocolMessage { - let id: ConcreteProtocolMessageId = MessageId.DialogInformative + let id: ConcreteProtocolMessageId = MessageId.dialogInformative let coreProtocolMessage: CoreProtocolMessage var encodedInputs: [ObvEncoded] { return [] } diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocolStates.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocolStates.swift index c89cda60..a9c90691 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocolStates.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocolStates.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -32,30 +32,30 @@ extension TrustEstablishmentWithSASProtocol { enum StateId: Int, ConcreteProtocolStateId { - case InitialState = 0 + case initialState = 0 // Alice's side - case WaitingForSeed = 1 + case waitingForSeed = 1 // Bob's side - case WaitingForConfirmation = 2 - case WaitingForDecommitment = 6 + case waitingForConfirmation = 2 + case waitingForDecommitment = 6 // On Alice's and Bob's sides - case WaitingForUserSAS = 7 - case ContactIdentityTrustedLegacy = 8 - case ContactSASChecked = 11 - case MutualTrustConfirmed = 9 - case Cancelled = 10 + case waitingForUserSAS = 7 + case contactIdentityTrustedLegacy = 8 + case contactSASChecked = 11 + case mutualTrustConfirmed = 9 + case cancelled = 10 var concreteProtocolStateType: ConcreteProtocolState.Type { switch self { - case .InitialState : return ConcreteProtocolInitialState.self - case .WaitingForSeed : return WaitingForSeedState.self - case .WaitingForConfirmation : return WaitingForConfirmationState.self - case .WaitingForDecommitment : return WaitingForDecommitmentState.self - case .WaitingForUserSAS : return WaitingForUserSASState.self - case .ContactIdentityTrustedLegacy : return ContactIdentityTrustedLegacyState.self - case .ContactSASChecked : return ContactSASCheckedState.self - case .MutualTrustConfirmed : return MutualTrustConfirmedState.self - case .Cancelled : return CancelledState.self + case .initialState : return ConcreteProtocolInitialState.self + case .waitingForSeed : return WaitingForSeedState.self + case .waitingForConfirmation : return WaitingForConfirmationState.self + case .waitingForDecommitment : return WaitingForDecommitmentState.self + case .waitingForUserSAS : return WaitingForUserSASState.self + case .contactIdentityTrustedLegacy : return ContactIdentityTrustedLegacyState.self + case .contactSASChecked : return ContactSASCheckedState.self + case .mutualTrustConfirmed : return MutualTrustConfirmedState.self + case .cancelled : return CancelledState.self } } @@ -64,7 +64,7 @@ extension TrustEstablishmentWithSASProtocol { struct WaitingForSeedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.WaitingForSeed + let id: ConcreteProtocolStateId = StateId.waitingForSeed let contactIdentity: ObvCryptoIdentity // The contact identity we seek to trust let decommitment: Data @@ -91,7 +91,7 @@ extension TrustEstablishmentWithSASProtocol { struct WaitingForConfirmationState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.WaitingForConfirmation + let id: ConcreteProtocolStateId = StateId.waitingForConfirmation let contactIdentity: ObvCryptoIdentity // The contact identity we seek to trust let contactIdentityCoreDetails: ObvIdentityCoreDetails @@ -132,7 +132,7 @@ extension TrustEstablishmentWithSASProtocol { struct WaitingForDecommitmentState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.WaitingForDecommitment + let id: ConcreteProtocolStateId = StateId.waitingForDecommitment let contactIdentity: ObvCryptoIdentity // The contact identity we seek to trust let contactIdentityCoreDetails: ObvIdentityCoreDetails @@ -176,7 +176,7 @@ extension TrustEstablishmentWithSASProtocol { struct WaitingForUserSASState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.WaitingForUserSAS + let id: ConcreteProtocolStateId = StateId.waitingForUserSAS let contactIdentity: ObvCryptoIdentity // The contact identity we seek to trust let contactIdentityCoreDetails: ObvIdentityCoreDetails @@ -222,7 +222,7 @@ extension TrustEstablishmentWithSASProtocol { struct ContactIdentityTrustedLegacyState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.ContactIdentityTrustedLegacy + let id: ConcreteProtocolStateId = StateId.contactIdentityTrustedLegacy let contactIdentity: ObvCryptoIdentity let contactIdentityCoreDetails: ObvIdentityCoreDetails @@ -251,7 +251,7 @@ extension TrustEstablishmentWithSASProtocol { struct ContactSASCheckedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.ContactSASChecked + let id: ConcreteProtocolStateId = StateId.contactSASChecked let contactIdentity: ObvCryptoIdentity let contactIdentityCoreDetails: ObvIdentityCoreDetails @@ -285,7 +285,7 @@ extension TrustEstablishmentWithSASProtocol { struct MutualTrustConfirmedState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.MutualTrustConfirmed + let id: ConcreteProtocolStateId = StateId.mutualTrustConfirmed init(_: ObvEncoded) {} @@ -298,7 +298,7 @@ extension TrustEstablishmentWithSASProtocol { struct CancelledState: TypeConcreteProtocolState { - let id: ConcreteProtocolStateId = StateId.Cancelled + let id: ConcreteProtocolStateId = StateId.cancelled init(_: ObvEncoded) {} diff --git a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocolSteps.swift b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocolSteps.swift index 851afba2..c034cd42 100644 --- a/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocolSteps.swift +++ b/Engine/ObvProtocolManager/ObvProtocolManager/Protocols/TrustEstablishmentWithSAS/TrustEstablishmentWithSASProtocolSteps.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -31,68 +31,68 @@ import OlvidUtils extension TrustEstablishmentWithSASProtocol { - enum StepId: Int, ConcreteProtocolStepId { + enum StepId: Int, ConcreteProtocolStepId, CaseIterable { // Alice's side - case SendCommitment = 0 - case StoreDecommitment = 1 - case ShowSasDialogAndSendDecommitment = 2 + case sendCommitment = 0 + case storeDecommitment = 1 + case showSasDialogAndSendDecommitment = 2 // Bob's side - case StoreAndPropagateCommitmentAndAskForConfirmation = 3 - case StoreCommitmentAndAskForConfirmation = 4 - case SendSeedAndPropagateConfirmation = 5 - case ReceiveConfirmationFromOtherDevice = 6 - case ShowSasDialog = 7 + case storeAndPropagateCommitmentAndAskForConfirmation = 3 + case storeCommitmentAndAskForConfirmation = 4 + case sendSeedAndPropagateConfirmation = 5 + case receiveConfirmationFromOtherDevice = 6 + case showSasDialog = 7 // Both sides - case CheckSas = 8 // 2020-03-02 Used to be CheckSasAndAddTrust - case CheckPropagatedSas = 9 // 2020-03-02 Used to be CheckPropagatedSasAndAddTrust - case NotifiedMutualTrustEstablishedLegacy = 10 // 2020-03-02 Used to be NotifiedMutualTrustEstablished - case AddTrust = 11 // 2020-03-02 New step + case checkSas = 8 // 2020-03-02 Used to be CheckSasAndAddTrust + case checkPropagatedSas = 9 // 2020-03-02 Used to be CheckPropagatedSasAndAddTrust + case notifiedMutualTrustEstablishedLegacy = 10 // 2020-03-02 Used to be NotifiedMutualTrustEstablished + case addTrust = 11 // 2020-03-02 New step func getConcreteProtocolStep(_ concreteProtocol: ConcreteCryptoProtocol, _ receivedMessage: ConcreteProtocolMessage) -> ConcreteProtocolStep? { switch self { // Alice's side - case .SendCommitment: + case .sendCommitment: let step = SendCommitmentStep(from: concreteProtocol, and: receivedMessage) return step - case .StoreDecommitment: + case .storeDecommitment: let step = StoreDecommitmentStep(from: concreteProtocol, and: receivedMessage) return step - case .ShowSasDialogAndSendDecommitment: + case .showSasDialogAndSendDecommitment: let step = ShowSasDialogAndSendDecommitmentStep(from: concreteProtocol, and: receivedMessage) return step // Bob's side - case .StoreAndPropagateCommitmentAndAskForConfirmation: + case .storeAndPropagateCommitmentAndAskForConfirmation: let step = StoreAndPropagateCommitmentAndAskForConfirmationStep(from: concreteProtocol, and: receivedMessage) return step - case .StoreCommitmentAndAskForConfirmation: + case .storeCommitmentAndAskForConfirmation: let step = StoreCommitmentAndAskForConfirmationStep(from: concreteProtocol, and: receivedMessage) return step - case .SendSeedAndPropagateConfirmation: + case .sendSeedAndPropagateConfirmation: let step = SendSeedAndPropagateConfirmationStep(from: concreteProtocol, and: receivedMessage) return step - case .ReceiveConfirmationFromOtherDevice: + case .receiveConfirmationFromOtherDevice: let step = ReceiveConfirmationFromOtherDeviceStep(from: concreteProtocol, and: receivedMessage) return step - case .ShowSasDialog: + case .showSasDialog: let step = ShowSasDialogStep(from: concreteProtocol, and: receivedMessage) return step // Both Sides - case .CheckSas: + case .checkSas: let step = CheckSasStep(from: concreteProtocol, and: receivedMessage) return step - case .CheckPropagatedSas: + case .checkPropagatedSas: let step = CheckPropagatedSasStep(from: concreteProtocol, and: receivedMessage) return step - case .NotifiedMutualTrustEstablishedLegacy: + case .notifiedMutualTrustEstablishedLegacy: let step = NotifiedMutualTrustEstablishedLegacyStep(from: concreteProtocol, and: receivedMessage) return step - case .AddTrust: + case .addTrust: let step = AddTrustStep(from: concreteProtocol, and: receivedMessage) return step } @@ -128,9 +128,10 @@ extension TrustEstablishmentWithSASProtocol { let seedAliceForSas = prng.genSeed() let commitmentScheme = ObvCryptoSuite.sharedInstance.commitmentScheme() - let (commitment, decommitment) = commitmentScheme.commit(onTag: ownedIdentity.getIdentity(), - andValue: seedAliceForSas.raw, - with: prng) + let (commitment, decommitment) = commitmentScheme.commit( + onTag: ownedIdentity.getIdentity(), + andValue: seedAliceForSas.raw, + with: prng) // Propagate the invitation, the seed, and the decommitment to our other owned devices @@ -151,7 +152,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not propagate invite to other devices.", log: log, type: .fault) } @@ -177,7 +178,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Send a dialog to Alice to notify her that the invitation was sent @@ -190,7 +191,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -236,7 +237,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -286,7 +287,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Bob accepted the invitation. We have all the information we need to compute and show a SAS dialog to Alice. @@ -309,7 +310,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -382,7 +383,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Propagate Alice's invitation (with the commitment) to the other owned devices of Bob @@ -401,7 +402,7 @@ extension TrustEstablishmentWithSASProtocol { contactDeviceUids: contactDeviceUids, commitment: commitment) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } } @@ -449,7 +450,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -515,7 +516,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not propagate accept/reject invitation to other devices.", log: log, type: .fault) } @@ -536,7 +537,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } return CancelledState() @@ -555,7 +556,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Send a seed for the SAS to Alice @@ -576,15 +577,16 @@ extension TrustEstablishmentWithSASProtocol { do { let coreMessage = getCoreMessage(for: .AsymmetricChannel(to: contactIdentity, remoteDeviceUids: contactDeviceUids, fromOwnedIdentity: ownedIdentity)) - let concreteProtocolMessage = BobSendsSeedMessage(coreProtocolMessage: coreMessage, - seedBobForSas: seedBobForSas, - contactIdentityCoreDetails: ownedIdentityCoreDetails, - contactDeviceUids: [UID](ownedDeviceUids)) + let concreteProtocolMessage = BobSendsSeedMessage( + coreProtocolMessage: coreMessage, + seedBobForSas: seedBobForSas, + contactIdentityCoreDetails: ownedIdentityCoreDetails, + contactDeviceUids: [UID](ownedDeviceUids)) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -639,7 +641,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } return CancelledState() @@ -658,7 +660,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Compute the seed for the SAS (that was sent to Alice by the other device) @@ -748,7 +750,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -824,7 +826,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // We go back to the WaitingForUserSAS state (only the number of bad entered sas changes) @@ -857,7 +859,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelProtocolMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } catch { os_log("Could not propagate sas to other devices.", log: log, type: .fault) } @@ -873,7 +875,7 @@ extension TrustEstablishmentWithSASProtocol { let coreMessage = getCoreMessage(for: .UserInterface(uuid: dialogUuid, ownedIdentity: ownedIdentity, dialogType: dialogType)) let concreteProtocolMessage = DialogInformativeMessage(coreProtocolMessage: coreMessage) guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // 2020-03-02 : We used to add the contact identity to the contact database (or simply add a new trust origin if the contact already exists) and add all the contact device uids @@ -885,7 +887,7 @@ extension TrustEstablishmentWithSASProtocol { let coreMessage = getCoreMessage(for: .AsymmetricChannel(to: contactIdentity, remoteDeviceUids: contactDeviceUids, fromOwnedIdentity: ownedIdentity)) let concreteProtocolMessage = MutualTrustConfirmationMessageMessage(coreProtocolMessage: coreMessage) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -947,7 +949,7 @@ extension TrustEstablishmentWithSASProtocol { assertionFailure() throw Self.makeError(message: "Could not generate ObvChannelDialogMessageToSend") } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } return CancelledState() } @@ -964,7 +966,7 @@ extension TrustEstablishmentWithSASProtocol { let coreMessage = getCoreMessage(for: .UserInterface(uuid: dialogUuid, ownedIdentity: ownedIdentity, dialogType: dialogType)) let concreteProtocolMessage = DialogInformativeMessage(coreProtocolMessage: coreMessage) guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // 2020-03-02 : We used to add the contact identity to the contact database (or simply add a new trust origin if the contact already exists) and add all the contact device uids @@ -976,7 +978,7 @@ extension TrustEstablishmentWithSASProtocol { let coreMessage = getCoreMessage(for: .AsymmetricChannel(to: contactIdentity, remoteDeviceUids: contactDeviceUids, fromOwnedIdentity: ownedIdentity)) let concreteProtocolMessage = MutualTrustConfirmationMessageMessage(coreProtocolMessage: coreMessage) guard let messageToSend = concreteProtocolMessage.generateObvChannelProtocolMessageToSend(with: prng) else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -1016,7 +1018,7 @@ extension TrustEstablishmentWithSASProtocol { let coreMessage = getCoreMessage(for: channelType) let concreteProtocolMessage = DialogInformativeMessage(coreProtocolMessage: coreMessage) guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state @@ -1056,13 +1058,13 @@ extension TrustEstablishmentWithSASProtocol { let trustOrigin = TrustOrigin.direct(timestamp: Date()) if (try? identityDelegate.isIdentity(contactIdentity, aContactIdentityOfTheOwnedIdentity: ownedIdentity, within: obvContext)) == true { - try identityDelegate.addTrustOriginIfTrustWouldBeIncreased(trustOrigin, toContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) + try identityDelegate.addTrustOriginIfTrustWouldBeIncreasedAndSetContactAsOneToOne(trustOrigin, toContactIdentity: contactIdentity, ofOwnedIdentity: ownedIdentity, within: obvContext) } else { try identityDelegate.addContactIdentity(contactIdentity, with: contactIdentityCoreDetails, andTrustOrigin: trustOrigin, forOwnedIdentity: ownedIdentity, setIsOneToOneTo: true, within: obvContext) } try contactDeviceUids.forEach { (contactDeviceUid) in - try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, within: obvContext) + try identityDelegate.addDeviceForContactIdentity(contactIdentity, withUid: contactDeviceUid, ofOwnedIdentity: ownedIdentity, createdDuringChannelCreation: false, within: obvContext) } } catch { os_log("Could not add the contact identity to the contact identities database, or could not add a device uid to this contact", log: log, type: .fault) @@ -1078,7 +1080,7 @@ extension TrustEstablishmentWithSASProtocol { let coreMessage = getCoreMessage(for: channelType) let concreteProtocolMessage = DialogInformativeMessage(coreProtocolMessage: coreMessage) guard let messageToSend = concreteProtocolMessage.generateObvChannelDialogMessageToSend() else { return nil } - _ = try channelDelegate.post(messageToSend, randomizedWith: prng, within: obvContext) + _ = try channelDelegate.postChannelMessage(messageToSend, randomizedWith: prng, within: obvContext) } // Return the new state diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvS3Method/Methods/Fetch/ObvS3DownloadAttachmentChunkMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvS3Method/Methods/Fetch/ObvS3DownloadAttachmentChunkMethod.swift index a1cbd5d7..1c5a5ace 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvS3Method/Methods/Fetch/ObvS3DownloadAttachmentChunkMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvS3Method/Methods/Fetch/ObvS3DownloadAttachmentChunkMethod.swift @@ -30,7 +30,7 @@ public final class ObvS3DownloadAttachmentChunkMethod: ObvS3DownloadMethod { static let log = OSLog(subsystem: "io.olvid.server.interface.ObvS3DownloadAttachmentChunkMethod", category: "ObvServerInterface") public var signedURL: URL - private let attachmentId: AttachmentIdentifier + private let attachmentId: ObvAttachmentIdentifier private let chunkNumber: Int public let isActiveOwnedIdentityRequired = true public let flowId: FlowIdentifier @@ -40,7 +40,7 @@ public final class ObvS3DownloadAttachmentChunkMethod: ObvS3DownloadMethod { weak public var identityDelegate: ObvIdentityDelegate? - public init(attachmentId: AttachmentIdentifier, chunkNumber: Int, signedURL: URL, flowId: FlowIdentifier) { + public init(attachmentId: ObvAttachmentIdentifier, chunkNumber: Int, signedURL: URL, flowId: FlowIdentifier) { self.flowId = flowId self.signedURL = signedURL self.attachmentId = attachmentId diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvS3Method/Methods/Send/ObvS3UploadAttachmentChunkMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvS3Method/Methods/Send/ObvS3UploadAttachmentChunkMethod.swift index 1590ce5c..0c62d691 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvS3Method/Methods/Send/ObvS3UploadAttachmentChunkMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvS3Method/Methods/Send/ObvS3UploadAttachmentChunkMethod.swift @@ -35,7 +35,7 @@ public final class ObvS3UploadAttachmentChunkMethod: ObvS3UploadMethod { public let countOfBytesClientExpectsToReceive = 100 private let typicalHeaderCountOfBytes = 500 public let isActiveOwnedIdentityRequired = true - public let attachmentId: AttachmentIdentifier + public let attachmentId: ObvAttachmentIdentifier public let flowId: FlowIdentifier public var ownedIdentity: ObvCryptoIdentity { return attachmentId.messageId.ownedCryptoIdentity @@ -43,7 +43,7 @@ public final class ObvS3UploadAttachmentChunkMethod: ObvS3UploadMethod { weak public var identityDelegate: ObvIdentityDelegate? - public init(attachmentId: AttachmentIdentifier, fileURL: URL, fileSize: Int, chunkNumber: Int, signedURL: URL, flowId: FlowIdentifier) { + public init(attachmentId: ObvAttachmentIdentifier, fileURL: URL, fileSize: Int, chunkNumber: Int, signedURL: URL, flowId: FlowIdentifier) { self.flowId = flowId self.attachmentId = attachmentId self.signedURL = signedURL diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerInterfaceConstants.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerInterfaceConstants.swift index 4f79e0d0..275cb3c9 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerInterfaceConstants.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerInterfaceConstants.swift @@ -21,6 +21,6 @@ import Foundation public struct ObvServerInterfaceConstants { - public static let serverAPIVersion = 13 + public static let serverAPIVersion = 15 } diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerDeleteMessageAndAttachmentsMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerDeleteMessageAndAttachmentsMethod.swift index 2419ad58..646f82c4 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerDeleteMessageAndAttachmentsMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerDeleteMessageAndAttachmentsMethod.swift @@ -33,7 +33,7 @@ public final class ObvServerDeleteMessageAndAttachmentsMethod: ObvServerDataMeth public var serverURL: URL { return messageId.ownedCryptoIdentity.serverURL } private let token: Data - private let messageId: MessageIdentifier + private let messageId: ObvMessageIdentifier private let deviceUid: UID public let flowId: FlowIdentifier public let isActiveOwnedIdentityRequired = false @@ -44,7 +44,7 @@ public final class ObvServerDeleteMessageAndAttachmentsMethod: ObvServerDataMeth weak public var identityDelegate: ObvIdentityDelegate? = nil - public init(token: Data, messageId: MessageIdentifier, deviceUid: UID, flowId: FlowIdentifier) { + public init(token: Data, messageId: ObvMessageIdentifier, deviceUid: UID, flowId: FlowIdentifier) { self.flowId = flowId self.token = token self.messageId = messageId diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerDownloadMessageExtendedPayloadMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerDownloadMessageExtendedPayloadMethod.swift index 51189242..66516c16 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerDownloadMessageExtendedPayloadMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerDownloadMessageExtendedPayloadMethod.swift @@ -36,14 +36,14 @@ public final class ObvServerDownloadMessageExtendedPayloadMethod: ObvServerDataM public var ownedIdentity: ObvCryptoIdentity { messageId.ownedCryptoIdentity } - private let messageId: MessageIdentifier + private let messageId: ObvMessageIdentifier private let token: Data public let flowId: FlowIdentifier public let isActiveOwnedIdentityRequired = true weak public var identityDelegate: ObvIdentityDelegate? = nil - public init(messageId: MessageIdentifier, token: Data, flowId: FlowIdentifier) { + public init(messageId: ObvMessageIdentifier, token: Data, flowId: FlowIdentifier) { self.messageId = messageId self.flowId = flowId self.token = token diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerGetTokenMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerGetTokenMethod.swift index 867e9748..2ae33cdd 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerGetTokenMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerGetTokenMethod.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -49,70 +49,99 @@ public final class ObvServerGetTokenMethod: ObvServerDataMethod { self.nonce = nonce } - public enum PossibleReturnStatus: UInt8 { + private enum ServerReturnStatus: UInt8 { case ok = 0x00 case serverDidNotFindChallengeCorrespondingToResponse = 0x04 case generalError = 0xff } + public enum PossibleReturnStatus { + case ok(token: Data, serverNonce: Data, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?) + case serverDidNotFindChallengeCorrespondingToResponse + case generalError + public var debugDescription: String { + switch self { + case .ok: + return "ok" + case .serverDidNotFindChallengeCorrespondingToResponse: + return "serverDidNotFindChallengeCorrespondingToResponse" + case .generalError: + return "generalError" + } + } + } + lazy public var dataToSend: Data? = { return [toIdentity.getIdentity(), response, nonce].obvEncode().rawData }() - public static func parseObvServerResponse(responseData: Data, using log: OSLog) -> (status: PossibleReturnStatus, (token: Data, serverNonce: Data, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?)?)? { + public static func parseObvServerResponse(responseData: Data, using log: OSLog) -> Result { guard let (rawServerReturnedStatus, listOfReturnedDatas) = genericParseObvServerResponse(responseData: responseData, using: log) else { - os_log("Could not parse the server response", log: log, type: .error) - return nil + assertionFailure() + let error = ObvServerMethodError.couldNotParseServerResponse + os_log("%{public}@", log: log, type: .error, error.localizedDescription) + return .failure(error) } - guard let serverReturnedStatus = PossibleReturnStatus(rawValue: rawServerReturnedStatus) else { + guard let serverReturnedStatus = ServerReturnStatus(rawValue: rawServerReturnedStatus) else { + assertionFailure() os_log("The returned server status is invalid", log: log, type: .error) - return nil + let error = Self.makeError(message: "The returned server status is invalid") + return .failure(error) } switch serverReturnedStatus { case .ok: guard listOfReturnedDatas.count == 5 else { + assertionFailure() os_log("The server did not return the expected number of elements", log: log, type: .error) - return nil + let error = Self.makeError(message: "The server did not return the expected number of elements") + return .failure(error) } guard let token = Data(listOfReturnedDatas[0]) else { + assertionFailure() os_log("We could not decode the token returned by the server", log: log, type: .error) - return nil + let error = Self.makeError(message: "We could not decode the token returned by the server") + return .failure(error) } guard let serverNonce = Data(listOfReturnedDatas[1]) else { os_log("We could not decode the nonce returned by the server", log: log, type: .error) - return nil + let error = Self.makeError(message: "We could not decode the nonce returned by the server") + return .failure(error) } guard let rawApiKeyStatus = Int(listOfReturnedDatas[2]) else { os_log("We could not recover the raw api key status", log: log, type: .error) - return nil + let error = Self.makeError(message: "We could not recover the raw api key status") + return .failure(error) } guard let apiKeyStatus = APIKeyStatus(rawValue: rawApiKeyStatus) else { os_log("We could not cast the raw api key status", log: log, type: .error) - return nil + let error = Self.makeError(message: "We could not cast the raw api key status") + return .failure(error) } guard let rawApiPermissions = Int(listOfReturnedDatas[3]) else { os_log("We could not recover the raw api permissions", log: log, type: .error) - return nil + let error = Self.makeError(message: "We could not recover the raw api permissions") + return .failure(error) } let apiPermissions = APIPermissions(rawValue: rawApiPermissions) guard let apiKeyExpirationInMilliseconds = Int(listOfReturnedDatas[4]) else { os_log("We could not recover the API Key expiration", log: log, type: .error) - return nil + let error = Self.makeError(message: "We could not recover the API Key expiration") + return .failure(error) } let apiKeyExpiration = apiKeyExpirationInMilliseconds > 0 ? Date(timeIntervalSince1970: Double(apiKeyExpirationInMilliseconds)/1000.0) : nil os_log("We received a proper token, server nonce, API Key Status/Permissions/Expiration", log: log, type: .debug) - return (serverReturnedStatus, (token, serverNonce, apiKeyStatus, apiPermissions, apiKeyExpiration)) + return .success(.ok(token: token, serverNonce: serverNonce, apiKeyStatus: apiKeyStatus, apiPermissions: apiPermissions, apiKeyExpirationDate: apiKeyExpiration)) case .serverDidNotFindChallengeCorrespondingToResponse: - os_log("The server could not find the challenge corresponding to the respond we just sent", log: log, type: .error) - return (serverReturnedStatus, nil) + os_log("The server could not find the challenge corresponding to the response we just sent", log: log, type: .error) + return .success(.serverDidNotFindChallengeCorrespondingToResponse) case .generalError: os_log("The server reported a general error", log: log, type: .error) - return (serverReturnedStatus, nil) + return .success(.generalError) } } diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerRegisterPushNotificationMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerRegisterPushNotificationMethod.swift index dd5dc006..2f3ef591 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerRegisterPushNotificationMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerRegisterPushNotificationMethod.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -30,60 +30,77 @@ public final class ObvServerRegisterRemotePushNotificationMethod: ObvServerDataM static let log = OSLog(subsystem: "io.olvid.server.interface.ObvServerRegisterRemotePushNotificationMethod", category: "ObvServerInterface") public let pathComponent = "/registerPushNotification" - + public var serverURL: URL { return toIdentity.serverURL } - public let toIdentity: ObvCryptoIdentity - public let ownedIdentity: ObvCryptoIdentity - private let token: Data - private let deviceUid: UID + private let pushNotification: ObvPushNotificationType + private let sessionToken: Data private let remoteNotificationByteIdentifierForServer: Data // One byte - private let deviceTokensAndmaskingUID: (pushToken: Data, voipToken: Data?, maskingUID: UID)? - private let parameters: ObvPushNotificationParameters - public let isActiveOwnedIdentityRequired = false public let flowId: FlowIdentifier - private let keycloakPushTopics: [Data] + public let isActiveOwnedIdentityRequired = false + let prng: PRNGService weak public var identityDelegate: ObvIdentityDelegate? = nil + - public init(ownedIdentity: ObvCryptoIdentity, token: Data, deviceUid: UID, remoteNotificationByteIdentifierForServer: Data, deviceTokensAndmaskingUID: (pushToken: Data, voipToken: Data?, maskingUID: UID)?, parameters: ObvPushNotificationParameters, keycloakPushTopics: Set, flowId: FlowIdentifier) { - self.flowId = flowId - self.ownedIdentity = ownedIdentity - self.toIdentity = ownedIdentity - self.token = token - self.deviceUid = deviceUid + public init(pushNotification: ObvPushNotificationType, sessionToken: Data, remoteNotificationByteIdentifierForServer: Data, flowId: FlowIdentifier, prng: PRNGService) { + self.pushNotification = pushNotification + self.sessionToken = sessionToken self.remoteNotificationByteIdentifierForServer = remoteNotificationByteIdentifierForServer - self.deviceTokensAndmaskingUID = deviceTokensAndmaskingUID - self.parameters = parameters - self.keycloakPushTopics = keycloakPushTopics.compactMap({ $0.data(using: .utf8) }) + self.flowId = flowId + self.toIdentity = pushNotification.ownedCryptoId + self.ownedIdentity = pushNotification.ownedCryptoId + self.prng = prng } - - public enum PossibleReturnStatus: UInt8 { + + + public enum PossibleReturnStatus: UInt8, CustomDebugStringConvertible { case ok = 0x00 case invalidSession = 0x04 case anotherDeviceIsAlreadyRegistered = 0x0a + case deviceToReplaceIsNotRegistered = 0x0b case generalError = 0xff + + public var debugDescription: String { + switch self { + case .ok: return "ok" + case .invalidSession: return "invalidSession" + case .anotherDeviceIsAlreadyRegistered: return "anotherDeviceIsAlreadyRegistered" + case .deviceToReplaceIsNotRegistered: return "deviceToReplaceIsNotRegistered" + case .generalError: return "generalError" + } + } + } + lazy public var dataToSend: Data? = { - let listOfEncodedKeycloakPushTopics = keycloakPushTopics.map({ $0.obvEncode() }) - let encodedList: ObvEncoded - encodedList = [toIdentity.getIdentity().obvEncode(), - token.obvEncode(), - deviceUid.obvEncode(), - remoteNotificationByteIdentifierForServer.obvEncode(), - extraInfo, - parameters.kickOtherDevices.obvEncode(), - parameters.useMultiDevice.obvEncode(), - listOfEncodedKeycloakPushTopics.obvEncode()].obvEncode() + let listOfEncodedKeycloakPushTopics = pushNotification.commonParameters.keycloakPushTopics.map({ $0.obvEncode() }) + var listToEncode = [ + toIdentity.getIdentity().obvEncode(), // 0 + sessionToken.obvEncode(), // 1 + pushNotification.currentDeviceUID.obvEncode(), // 2 + pushNotification.remoteNotificationByteIdentifierForServer(from: remoteNotificationByteIdentifierForServer).obvEncode(), // 3 + extraInfo, // 4 + pushNotification.optionalParameter.reactivateCurrentDevice.obvEncode(), // 5 + listOfEncodedKeycloakPushTopics.obvEncode(), // 6 + DeviceNameUtils.encrypt(deviceName: pushNotification.commonParameters.deviceNameForFirstRegistration, for: ownedIdentity, using: prng).raw.obvEncode(), // 7 + ] + if pushNotification.optionalParameter.reactivateCurrentDevice, let replacedDeviceUid = pushNotification.optionalParameter.replacedDeviceUid { + listToEncode.append(replacedDeviceUid.obvEncode()) // 8 + } + let encodedList: ObvEncoded = listToEncode.obvEncode() return encodedList.rawData }() + lazy private var extraInfo: ObvEncoded = { - if let (pushToken, voipToken, maskingUID) = self.deviceTokensAndmaskingUID { - if let _voipToken = voipToken { - return [pushToken.obvEncode(), maskingUID.obvEncode(), _voipToken.obvEncode()].obvEncode() + if let remoteTypeParameters = pushNotification.remoteTypeParameters { + let pushToken = remoteTypeParameters.pushToken + let maskingUID = remoteTypeParameters.maskingUID + if let voipToken = remoteTypeParameters.voipToken { + return [pushToken.obvEncode(), maskingUID.obvEncode(), voipToken.obvEncode()].obvEncode() } else { return [pushToken.obvEncode(), maskingUID.obvEncode()].obvEncode() } @@ -92,6 +109,7 @@ public final class ObvServerRegisterRemotePushNotificationMethod: ObvServerDataM } }() + public static func parseObvServerResponse(responseData: Data, using log: OSLog) -> PossibleReturnStatus? { guard let (rawServerReturnedStatus, _) = genericParseObvServerResponse(responseData: responseData, using: log) else { diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerRequestChallengeMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerRequestChallengeMethod.swift index 3a901737..583cae9f 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerRequestChallengeMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/ObvServerRequestChallengeMethod.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -35,73 +35,77 @@ public final class ObvServerRequestChallengeMethod: ObvServerDataMethod { public let ownedIdentity: ObvCryptoIdentity public let toIdentity: ObvCryptoIdentity private let nonce: Data - private let apiKey: UUID public let flowId: FlowIdentifier public let isActiveOwnedIdentityRequired = false weak public var identityDelegate: ObvIdentityDelegate? = nil - public init(ownedIdentity: ObvCryptoIdentity, apiKey: UUID, nonce: Data, toIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { + public init(ownedIdentity: ObvCryptoIdentity, nonce: Data, toIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { self.flowId = flowId self.ownedIdentity = ownedIdentity self.toIdentity = toIdentity self.nonce = nonce - self.apiKey = apiKey } - public enum PossibleReturnStatus: UInt8 { + + private enum ServerReturnStatus: UInt8 { case ok = 0x00 - case unkownApiKey = 0x07 - case apiKeyLicensesExhausted = 0x08 case generalError = 0xff } + + public enum PossibleReturnStatus { + case ok(challenge: Data, serverNonce: Data) + case generalError + } + lazy public var dataToSend: Data? = { - return [toIdentity.getIdentity(), nonce, apiKey].obvEncode().rawData + return [toIdentity.getIdentity(), nonce].obvEncode().rawData }() - public static func parseObvServerResponse(responseData: Data, using log: OSLog) -> (status: PossibleReturnStatus, (challenge: Data, serverNonce: Data)?)? { + public static func parseObvServerResponse(responseData: Data, using log: OSLog) -> Result { guard let (rawServerReturnedStatus, listOfReturnedDatas) = genericParseObvServerResponse(responseData: responseData, using: log) else { + assertionFailure() os_log("Could not parse the server response", log: log, type: .error) - return nil + let error = Self.makeError(message: "Could not parse the server response") + return .failure(error) } - guard let serverReturnedStatus = PossibleReturnStatus(rawValue: rawServerReturnedStatus) else { + guard let serverReturnedStatus = ServerReturnStatus(rawValue: rawServerReturnedStatus) else { + assertionFailure() os_log("The returned server status is invalid", log: log, type: .error) - return nil + let error = Self.makeError(message: "The returned server status is invalid") + return .failure(error) } switch serverReturnedStatus { case .ok: guard listOfReturnedDatas.count == 2 else { + assertionFailure() os_log("The server did not return the expected number of elements", log: log, type: .error) - return nil + let error = Self.makeError(message: "The server did not return the expected number of elements") + return .failure(error) } guard let challenge = Data(listOfReturnedDatas[0]) else { + assertionFailure() os_log("We could not decode the challenge returned by the server", log: log, type: .error) - return nil + let error = Self.makeError(message: "We could not decode the challenge returned by the server") + return .failure(error) } guard let serverNonce = Data(listOfReturnedDatas[1]) else { os_log("We could not decode the nonce returned by the server", log: log, type: .error) - return nil + let error = Self.makeError(message: "We could not decode the nonce returned by the server") + return .failure(error) } os_log("We received a proper challenge and server nonce", log: log, type: .debug) - return (serverReturnedStatus, (challenge, serverNonce)) - - case .unkownApiKey: - os_log("The server returned an Unknown API Key error", log: log, type: .error) - return (serverReturnedStatus, nil) - - case .apiKeyLicensesExhausted: - os_log("The server returned an API Key Licenses Exhausted error", log: log, type: .error) - return (serverReturnedStatus, nil) + return .success(.ok(challenge: challenge, serverNonce: serverNonce)) case .generalError: os_log("The server reported a general error", log: log, type: .error) - return (serverReturnedStatus, nil) + return .success(.generalError) } } diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/QueryApiKeyStatusServerMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/QueryApiKeyStatusServerMethod.swift index ef6a6ea9..07f0d10c 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/QueryApiKeyStatusServerMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/QueryApiKeyStatusServerMethod.swift @@ -45,58 +45,66 @@ public final class QueryApiKeyStatusServerMethod: ObvServerDataMethod { self.flowId = flowId } - public enum PossibleReturnStatus: UInt8 { + private enum ServerReturnStatus: UInt8 { case ok = 0x00 case generalError = 0xff } + + public enum PossibleReturnStatus { + case ok(apiKeyElements: APIKeyElements) + case generalError + } lazy public var dataToSend: Data? = { return [ownedIdentity.getIdentity(), apiKey].obvEncode().rawData }() - - public static func parseObvServerResponse(responseData: Data, using log: OSLog) -> (status: PossibleReturnStatus, (apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?)?)? { + + public static func parseObvServerResponse(responseData: Data, using log: OSLog) -> Result { guard let (rawServerReturnedStatus, listOfReturnedDatas) = genericParseObvServerResponse(responseData: responseData, using: log) else { - os_log("Could not parse the server response", log: log, type: .error) - return nil + let error = ObvServerMethodError.couldNotParseServerResponse + os_log("%{public}@", log: log, type: .error, error.localizedDescription) + return .failure(error) } - guard let serverReturnedStatus = PossibleReturnStatus(rawValue: rawServerReturnedStatus) else { - os_log("The returned server status is invalid", log: log, type: .error) - return nil + guard let serverReturnedStatus = ServerReturnStatus(rawValue: rawServerReturnedStatus) else { + let error = ObvServerMethodError.returnedServerStatusIsInvalid + os_log("%{public}@", log: log, type: .error, error.localizedDescription) + return .failure(error) } switch serverReturnedStatus { case .ok: guard listOfReturnedDatas.count == 3 else { - os_log("The server did not return the expected number of elements", log: log, type: .error) - return nil - } - guard let rawApiKeyStatus = Int(listOfReturnedDatas[0]) else { - os_log("We could not recover the raw api key status", log: log, type: .error) - return nil + let error = ObvServerMethodError.serverDidNotReturnTheExpectedNumberOfElements + os_log("%{public}@", log: log, type: .error, error.localizedDescription) + return .failure(error) } - guard let apiKeyStatus = APIKeyStatus(rawValue: rawApiKeyStatus) else { - os_log("We could not cast the raw api key status", log: log, type: .error) - return nil + guard let rawApiKeyStatus = Int(listOfReturnedDatas[0]), let apiKeyStatus = APIKeyStatus(rawValue: rawApiKeyStatus) else { + let error = ObvServerMethodError.couldNotDecodeElementReturnByServer(elementName: "rawApiKeyStatus") + os_log("%{public}@", log: log, type: .error, error.localizedDescription) + return .failure(error) } guard let rawApiPermissions = Int(listOfReturnedDatas[1]) else { - os_log("We could not recover the raw api permissions", log: log, type: .error) - return nil + let error = ObvServerMethodError.couldNotDecodeElementReturnByServer(elementName: "rawApiPermissions") + os_log("%{public}@", log: log, type: .error, error.localizedDescription) + return .failure(error) } let apiPermissions = APIPermissions(rawValue: rawApiPermissions) guard let apiKeyExpirationInMilliseconds = Int(listOfReturnedDatas[2]) else { - os_log("We could not recover the API Key expiration", log: log, type: .error) - return nil + let error = ObvServerMethodError.couldNotDecodeElementReturnByServer(elementName: "apiKeyExpirationInMilliseconds") + os_log("%{public}@", log: log, type: .error, error.localizedDescription) + return .failure(error) } let apiKeyExpiration = apiKeyExpirationInMilliseconds > 0 ? Date(timeIntervalSince1970: Double(apiKeyExpirationInMilliseconds)/1000.0) : nil os_log("We received a proper token, server nonce, API Key Status/Permissions/Expiration", log: log, type: .debug) - return (serverReturnedStatus, (apiKeyStatus, apiPermissions, apiKeyExpiration)) + let apiKeyElements = APIKeyElements(status: apiKeyStatus, permissions: apiPermissions, expirationDate: apiKeyExpiration) + return .success(.ok(apiKeyElements: apiKeyElements)) case .generalError: os_log("The server reported a general error", log: log, type: .error) - return (serverReturnedStatus, nil) + return .success(.generalError) } } diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/RefreshInboxAttachmentSignedUrlServerMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/RefreshInboxAttachmentSignedUrlServerMethod.swift index 24292f9f..238fd7d2 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/RefreshInboxAttachmentSignedUrlServerMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/RefreshInboxAttachmentSignedUrlServerMethod.swift @@ -34,7 +34,7 @@ public final class RefreshInboxAttachmentSignedUrlServerMethod: ObvServerDataMet public var serverURL: URL { return identity.serverURL } public let identity: ObvCryptoIdentity - public let attachmentId: AttachmentIdentifier + public let attachmentId: ObvAttachmentIdentifier public let expectedChunkCount: Int public let flowId: FlowIdentifier public let isActiveOwnedIdentityRequired = true @@ -45,7 +45,7 @@ public final class RefreshInboxAttachmentSignedUrlServerMethod: ObvServerDataMet weak public var identityDelegate: ObvIdentityDelegate? = nil - public init(identity: ObvCryptoIdentity, attachmentId: AttachmentIdentifier, expectedChunkCount: Int, flowId: FlowIdentifier) { + public init(identity: ObvCryptoIdentity, attachmentId: ObvAttachmentIdentifier, expectedChunkCount: Int, flowId: FlowIdentifier) { self.flowId = flowId self.identity = identity self.attachmentId = attachmentId diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/VerifyReceiptMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/VerifyReceiptServerMethod.swift similarity index 63% rename from Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/VerifyReceiptMethod.swift rename to Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/VerifyReceiptServerMethod.swift index 72724cb4..d541d64c 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/VerifyReceiptMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Fetch/VerifyReceiptServerMethod.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,7 +25,7 @@ import ObvTypes import OlvidUtils -public final class VerifyReceiptMethod: ObvServerDataMethod { +public final class VerifyReceiptServerMethod: ObvServerDataMethod { static let log = OSLog(subsystem: "io.olvid.server.interface.VerifyReceiptMethod", category: "ObvServerInterface") @@ -35,45 +35,53 @@ public final class VerifyReceiptMethod: ObvServerDataMethod { public let ownedIdentity: ObvCryptoIdentity private let token: Data - private let receiptData: String - private let transactionIdentifier: String + private let signedAppStoreTransactionAsJWS: String public let flowId: FlowIdentifier public let isActiveOwnedIdentityRequired = true - private let iOSStoreId = Data([0x00]) + private let iOSStoreId = Data([0x02]) // StoreKit1 used 0x00, StoreKit2 uses 0x02. weak public var identityDelegate: ObvIdentityDelegate? = nil - public init(ownedIdentity: ObvCryptoIdentity, token: Data, receiptData: String, transactionIdentifier: String, flowId: FlowIdentifier) { + public init(ownedIdentity: ObvCryptoIdentity, token: Data, signedAppStoreTransactionAsJWS: String, identityDelegate: ObvIdentityDelegate, flowId: FlowIdentifier) { self.flowId = flowId self.ownedIdentity = ownedIdentity self.token = token - self.receiptData = receiptData - self.transactionIdentifier = transactionIdentifier + self.signedAppStoreTransactionAsJWS = signedAppStoreTransactionAsJWS + self.identityDelegate = identityDelegate } - public enum PossibleReturnStatus: UInt8 { + private enum ServerReturnStatus: UInt8 { case ok = 0x00 case invalidSession = 0x04 case receiptIsExpired = 0x10 case generalError = 0xff } + + public enum PossibleReturnStatus { + case ok(apiKey: UUID) + case invalidSession + case receiptIsExpired + case generalError + } lazy public var dataToSend: Data? = { - return [ownedIdentity.getIdentity(), token, iOSStoreId, receiptData].obvEncode().rawData + return [ownedIdentity.getIdentity(), token, iOSStoreId, signedAppStoreTransactionAsJWS].obvEncode().rawData }() - public static func parseObvServerResponse(responseData: Data, using log: OSLog) -> (status: PossibleReturnStatus, apiKey: UUID?)? { + public static func parseObvServerResponse(responseData: Data, using log: OSLog) -> Result { os_log("💰 Parsing the server response...", log: log, type: .info) guard let (rawServerReturnedStatus, listOfReturnedDatas) = genericParseObvServerResponse(responseData: responseData, using: log) else { os_log("💰 Could not parse the server response", log: log, type: .error) - return nil + let error = Self.makeError(message: "💰 Could not parse the server response") + return .failure(error) } - guard let serverReturnedStatus = PossibleReturnStatus(rawValue: rawServerReturnedStatus) else { + guard let serverReturnedStatus = ServerReturnStatus(rawValue: rawServerReturnedStatus) else { os_log("💰 The returned server status is invalid", log: log, type: .error) - return nil + let error = Self.makeError(message: "💰 The returned server status is invalid") + return .failure(error) } switch serverReturnedStatus { @@ -82,32 +90,35 @@ public final class VerifyReceiptMethod: ObvServerDataMethod { guard listOfReturnedDatas.count == 1 else { os_log("💰 The server did not return the expected number of elements", log: log, type: .error) - return nil + let error = Self.makeError(message: "💰 The server did not return the expected number of elements") + return .failure(error) } guard let rawApiKey = String(listOfReturnedDatas[0]) else { os_log("💰 We could not recover the raw api key", log: log, type: .error) - return nil + let error = Self.makeError(message: "💰 We could not recover the raw api key") + return .failure(error) } guard let apiKey = UUID(uuidString: rawApiKey) else { os_log("💰 We could not cast the raw api key", log: log, type: .error) - return nil + let error = Self.makeError(message: "💰 We could not cast the raw api key") + return .failure(error) } - return (serverReturnedStatus, apiKey) + return .success(.ok(apiKey: apiKey)) case .invalidSession: os_log("The server reported that the session is invalid", log: log, type: .error) - return (serverReturnedStatus, nil) + return .success(.invalidSession) case .receiptIsExpired: os_log("💰 The server reported that the receipt is expired", log: log, type: .error) - return (serverReturnedStatus, nil) + return .success(.receiptIsExpired) case .generalError: os_log("💰 The server reported a general error", log: log, type: .error) - return (serverReturnedStatus, nil) - + return .success(.generalError) + } } diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/GetAttachmentUploadProgressMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/GetAttachmentUploadProgressMethod.swift index a4c2f878..18002203 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/GetAttachmentUploadProgressMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/GetAttachmentUploadProgressMethod.swift @@ -33,14 +33,14 @@ public final class GetAttachmentUploadProgressMethod: ObvServerDataMethod { public var ownedIdentity: ObvCryptoIdentity { return attachmentId.messageId.ownedCryptoIdentity } - public let attachmentId: AttachmentIdentifier + public let attachmentId: ObvAttachmentIdentifier public let isActiveOwnedIdentityRequired = true public let serverURL: URL public let flowId: FlowIdentifier weak public var identityDelegate: ObvIdentityDelegate? = nil - public init(attachmentId: AttachmentIdentifier, serverURL: URL, flowId: FlowIdentifier) { + public init(attachmentId: ObvAttachmentIdentifier, serverURL: URL, flowId: FlowIdentifier) { self.attachmentId = attachmentId self.serverURL = serverURL self.flowId = flowId diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvRegisterAPIKeyServerMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvRegisterAPIKeyServerMethod.swift new file mode 100644 index 00000000..849c9190 --- /dev/null +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvRegisterAPIKeyServerMethod.swift @@ -0,0 +1,82 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import ObvCrypto +import ObvTypes +import ObvEncoder +import ObvMetaManager +import OlvidUtils + +public final class ObvRegisterAPIKeyServerMethod: ObvServerDataMethod { + + static let log = OSLog(subsystem: "io.olvid.server.interface.ObvRegisterAPIKeyServerMethod", category: "ObvServerInterface") + + public let pathComponent = "/registerApiKey" + + public let ownedIdentity: ObvCryptoIdentity + public let isActiveOwnedIdentityRequired = true + public var serverURL: URL { return ownedIdentity.serverURL } + public let flowId: FlowIdentifier + private let apiKey: UUID + private let serverSessionToken: Data + + weak public var identityDelegate: ObvIdentityDelegate? = nil + + public init(ownedIdentity: ObvCryptoIdentity, serverSessionToken: Data, apiKey: UUID, identityDelegate: ObvIdentityDelegate, flowId: FlowIdentifier) { + self.flowId = flowId + self.ownedIdentity = ownedIdentity + self.identityDelegate = identityDelegate + self.serverSessionToken = serverSessionToken + self.apiKey = apiKey + } + + public enum ServerReturnStatus: UInt8 { + case ok = 0x00 + case invalidSession = 0x04 + case invalidAPIKey = 0x16 + case generalError = 0xff + } + + lazy public var dataToSend: Data? = { + return [self.ownedIdentity, self.serverSessionToken, self.apiKey].obvEncode().rawData + }() + + public static func parseObvServerResponse(responseData: Data, using log: OSLog) -> Result { + + guard let (rawServerReturnedStatus, _) = genericParseObvServerResponse(responseData: responseData, using: log) else { + os_log("Could not parse the server response", log: log, type: .error) + let error = Self.makeError(message: "Could not parse the server response") + assertionFailure() + return .failure(error) + } + + guard let serverReturnedStatus = ServerReturnStatus(rawValue: rawServerReturnedStatus) else { + os_log("The returned server status is invalid", log: log, type: .error) + let error = Self.makeError(message: "The returned server status is invalid") + assertionFailure() + return .failure(error) + } + + return .success(serverReturnedStatus) + + } + +} diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerDeviceDiscoveryMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerDeviceDiscoveryMethod.swift index 8945ed80..d2187ab1 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerDeviceDiscoveryMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerDeviceDiscoveryMethod.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -98,6 +98,4 @@ public final class ObvServerDeviceDiscoveryMethod: ObvServerDataMethod { } - - } diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerGetPoWChallengeMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerGetPoWChallengeMethod.swift deleted file mode 100644 index 2ef2f4ce..00000000 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerGetPoWChallengeMethod.swift +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import os.log -import ObvCrypto -import ObvTypes -import ObvEncoder -import ObvMetaManager -import OlvidUtils - -public final class ObvServerGetPoWChallengeMethod: ObvServerDownloadMethod { - - static let log = OSLog(subsystem: "io.olvid.server.interface.ObvServerGetPoWChallengeMethod", category: "ObvServerInterface") - - public let pathComponent = "/getPoWChallenge" - - public let ownedIdentity: ObvCryptoIdentity - public let isActiveOwnedIdentityRequired = true - public let serverURL: URL - public let flowId: FlowIdentifier - - weak public var identityDelegate: ObvIdentityDelegate? = nil - - public init(ownedIdentity: ObvCryptoIdentity, serverURL: URL, flowId: FlowIdentifier) { - self.flowId = flowId - self.ownedIdentity = ownedIdentity - self.serverURL = serverURL - } - - public enum PossibleReturnStatus: UInt8 { - case ok = 0x00 - case generalError = 0xff - } - - public let dataToSend: Data? = nil - - public static func parseObvServerResponse(responseData: Data, using log: OSLog) -> (status: PossibleReturnStatus, (proofOfWorkUid: UID, proofOfWorkEncodedChallenge: ObvEncoded)?)? { - - guard let (rawServerReturnedStatus, listOfReturnedDatas) = genericParseObvServerResponse(responseData: responseData, using: log) else { - os_log("Could not parse the server response", log: log, type: .error) - return nil - } - - guard let serverReturnedStatus = PossibleReturnStatus(rawValue: rawServerReturnedStatus) else { - os_log("The returned server status is invalid", log: log, type: .error) - return nil - } - - switch serverReturnedStatus { - - case .ok: - - guard listOfReturnedDatas.count == 2 else { - os_log("The server did not return the expected number of elements", log: log, type: .error) - return nil - } - let proofOfWorkEncodedUid = listOfReturnedDatas[0] - let proofOfWorkEncodedChallenge = listOfReturnedDatas[1] - guard let proofOfWorkUid = UID(proofOfWorkEncodedUid) else { - os_log("We could decode the proof of work UID returned by the server", log: log, type: .error) - return nil - } - os_log("The message received a new proof of work from the server", log: log, type: .debug) - return (serverReturnedStatus, (proofOfWorkUid, proofOfWorkEncodedChallenge)) - - case .generalError: - os_log("The server reported a general error", log: log, type: .error) - return (serverReturnedStatus, nil) - - } - - } - -} diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerOwnedDeviceDiscoveryMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerOwnedDeviceDiscoveryMethod.swift new file mode 100644 index 00000000..7320e961 --- /dev/null +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerOwnedDeviceDiscoveryMethod.swift @@ -0,0 +1,104 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import ObvCrypto +import ObvTypes +import ObvEncoder +import ObvMetaManager +import OlvidUtils + +public final class ObvServerOwnedDeviceDiscoveryMethod: ObvServerDataMethod { + + static let log = OSLog(subsystem: "io.olvid.server.interface.ObvServerOwnedDeviceDiscoveryMethod", category: "ObvServerInterface") + + public let pathComponent = "/ownedDeviceDiscovery" + + public let ownedIdentity: ObvCryptoIdentity + public let isActiveOwnedIdentityRequired = false + public var serverURL: URL { return ownedIdentity.serverURL } + public let flowId: FlowIdentifier + + weak public var identityDelegate: ObvIdentityDelegate? = nil + + public init(ownedIdentity: ObvCryptoIdentity, flowId: FlowIdentifier) { + self.flowId = flowId + self.ownedIdentity = ownedIdentity + } + + private enum ServerReturnStatus: UInt8 { + case ok = 0x00 + case generalError = 0xff + } + + public enum PossibleReturnStatus { + case ok(encryptedOwnedDeviceDiscoveryResult: EncryptedData) + case generalError + } + + lazy public var dataToSend: Data? = { + return [self.ownedIdentity].obvEncode().rawData + }() + + public static func parseObvServerResponse(responseData: Data, using log: OSLog) -> Result { + + guard let (rawServerReturnedStatus, listOfReturnedDatas) = genericParseObvServerResponse(responseData: responseData, using: log) else { + os_log("Could not parse the server response", log: log, type: .error) + let error = Self.makeError(message: "Could not parse the server response") + assertionFailure() + return .failure(error) + } + + guard let serverReturnedStatus = ServerReturnStatus(rawValue: rawServerReturnedStatus) else { + os_log("The returned server status is invalid", log: log, type: .error) + let error = Self.makeError(message: "The returned server status is invalid") + assertionFailure() + return .failure(error) + } + + switch serverReturnedStatus { + + case .ok: + + guard listOfReturnedDatas.count == 1 else { + os_log("The server did not return the expected number of elements", log: log, type: .error) + let error = Self.makeError(message: "The server did not return the expected number of elements") + assertionFailure() + return .failure(error) + } + let encodedEncryptedOwnedDeviceDiscoveryResult = listOfReturnedDatas[0] + guard let encryptedOwnedDeviceDiscoveryResult = EncryptedData(encodedEncryptedOwnedDeviceDiscoveryResult) else { + os_log("We could not recover the encrypted owned device discovery result", log: log, type: .error) + let error = Self.makeError(message: "We could not recover the encrypted owned device discovery result") + assertionFailure() + return .failure(error) + } + os_log("We received the encrypted result of the device discovery", log: log, type: .debug) + return .success(.ok(encryptedOwnedDeviceDiscoveryResult: encryptedOwnedDeviceDiscoveryResult)) + + case .generalError: + os_log("The server reported a general error", log: log, type: .error) + return .success(.generalError) + + } + + } + +} diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerUploadMessageAndGetUidsMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerUploadMessageAndGetUidsMethod.swift index 6650688e..0af68c4b 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerUploadMessageAndGetUidsMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/ObvServerUploadMessageAndGetUidsMethod.swift @@ -42,6 +42,7 @@ public final class ObvServerUploadMessageAndGetUidsMethod: ObvServerDataMethod { private let isAppMessageWithUserContent: Bool private let isVoipMessageForStartingCall: Bool public let isActiveOwnedIdentityRequired = true + public let isDeletedOwnedIdentitySufficient = true // When deleting an owned identity, we (sometimes) send messages to let our contacts know about this. This Boolean makes it possible to send the messages even if the owned identity cannot be found. public let flowId: FlowIdentifier weak public var identityDelegate: ObvIdentityDelegate? = nil diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/OwnedDeviceManagementServerMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/OwnedDeviceManagementServerMethod.swift new file mode 100644 index 00000000..dd4cee98 --- /dev/null +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/Methods/Send/OwnedDeviceManagementServerMethod.swift @@ -0,0 +1,118 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import ObvCrypto +import ObvTypes +import ObvEncoder +import ObvMetaManager +import OlvidUtils + +public final class OwnedDeviceManagementServerMethod: ObvServerDataMethod { + + static let log = OSLog(subsystem: "io.olvid.server.interface.OwnedDeviceManagementServerMethod", category: "ObvServerInterface") + + public let pathComponent = "/deviceManagement" + + public let ownedIdentity: ObvCryptoIdentity + public let isActiveOwnedIdentityRequired = true + public var serverURL: URL { return ownedIdentity.serverURL } + public let flowId: FlowIdentifier + let queryType: QueryType + let token: Data + + public enum QueryType { + case setOwnedDeviceName(ownedDeviceUID: UID, encryptedOwnedDeviceName: EncryptedData) + case deactivateOwnedDevice(ownedDeviceUID: UID) + case setUnexpiringOwnedDevice(ownedDeviceUID: UID) + + fileprivate var byteIdentifier: UInt8 { + switch self { + case .setOwnedDeviceName: + return 0x00 + case .deactivateOwnedDevice: + return 0x01 + case .setUnexpiringOwnedDevice: + return 0x02 + } + } + } + + weak public var identityDelegate: ObvIdentityDelegate? = nil + + public init(ownedIdentity: ObvCryptoIdentity, token: Data, queryType: QueryType, flowId: FlowIdentifier) { + self.flowId = flowId + self.ownedIdentity = ownedIdentity + self.queryType = queryType + self.token = token + } + + public enum PossibleReturnStatus: UInt8 { + case ok = 0x00 + case invalidSession = 0x04 + case deviceNotRegistered = 0x0b + case generalError = 0xff + public var debugDescription: String { + switch self { + case .ok: + return "ok" + case .invalidSession: + return "invalidSession" + case .deviceNotRegistered: + return "deviceNotRegistered" + case .generalError: + return "generalError" + } + } + } + + lazy public var dataToSend: Data? = { + switch queryType { + case .setOwnedDeviceName(let ownedDeviceUID, let encryptedDeviceName): + return [self.ownedIdentity, token, queryType.byteIdentifier, ownedDeviceUID, encryptedDeviceName.raw].obvEncode().rawData + case .deactivateOwnedDevice(ownedDeviceUID: let ownedDeviceUID): + return [self.ownedIdentity, token, queryType.byteIdentifier, ownedDeviceUID].obvEncode().rawData + case .setUnexpiringOwnedDevice(ownedDeviceUID: let ownedDeviceUID): + return [self.ownedIdentity, token, queryType.byteIdentifier, ownedDeviceUID].obvEncode().rawData + } + }() + + + public static func parseObvServerResponse(responseData: Data, using log: OSLog) -> Result { + + guard let (rawServerReturnedStatus, _) = genericParseObvServerResponse(responseData: responseData, using: log) else { + assertionFailure() + os_log("Could not parse the server response", log: log, type: .error) + let error = Self.makeError(message: "Could not parse the server response") + return .failure(error) + } + + guard let serverReturnedStatus = PossibleReturnStatus(rawValue: rawServerReturnedStatus) else { + assertionFailure() + os_log("The returned server status is invalid", log: log, type: .error) + let error = Self.makeError(message: "The returned server status is invalid") + return .failure(error) + } + + return .success(serverReturnedStatus) + + } + +} diff --git a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/ObvServerMethod.swift b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/ObvServerMethod.swift index d5e7eb75..0f69775f 100644 --- a/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/ObvServerMethod.swift +++ b/Engine/ObvServerInterface/ObvServerInterface/ObvServerMethod/ObvServerMethod.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -30,6 +30,7 @@ public protocol ObvServerMethod { var serverURL: URL { get } var pathComponent: String { get } var isActiveOwnedIdentityRequired: Bool { get } + var isDeletedOwnedIdentitySufficient: Bool { get } var ownedIdentity: ObvCryptoIdentity { get } var identityDelegate: ObvIdentityDelegate? { get set } var flowId: FlowIdentifier { get } @@ -39,14 +40,26 @@ public protocol ObvServerMethod { public extension ObvServerMethod { + var isDeletedOwnedIdentitySufficient: Bool { + return false + } + func getURLRequest(dataToSend: Data?) throws -> URLRequest { - guard let identityDelegate = self.identityDelegate else { - assertionFailure() - throw ObvServerMethodError.ownedIdentityIsActiveCheckerDelegateIsNotSet - } if isActiveOwnedIdentityRequired { - guard try identityDelegate.isOwnedIdentityActive(ownedIdentity: self.ownedIdentity, flowId: flowId) else { - throw ObvServerMethodError.ownedIdentityIsNotActive + guard let identityDelegate = self.identityDelegate else { + assertionFailure() + throw ObvServerMethodError.ownedIdentityIsActiveCheckerDelegateIsNotSet + } + do { + guard try identityDelegate.isOwnedIdentityActive(ownedIdentity: self.ownedIdentity, flowId: flowId) else { + throw ObvServerMethodError.ownedIdentityIsNotActive + } + } catch { + if isDeletedOwnedIdentitySufficient, let identityManagerError = error as? ObvIdentityManagerError, identityManagerError == .ownedIdentityNotFound { + // The owned identity cannot be found but, since isDeletedOwnedIdentitySufficient is true, we continue + } else { + throw error + } } } var request = URLRequest(url: serverURL.appendingPathComponent(pathComponent)) @@ -90,13 +103,28 @@ public extension ObvServerMethod { } public enum ObvServerMethodError: Error { + case ownedIdentityIsActiveCheckerDelegateIsNotSet case ownedIdentityIsNotActive - + case couldNotParseServerResponse + case returnedServerStatusIsInvalid + case serverDidNotReturnTheExpectedNumberOfElements + case couldNotDecodeElementReturnByServer(elementName: String) + var localizedDescription: String { switch self { - case .ownedIdentityIsActiveCheckerDelegateIsNotSet: return "The (identity) delegate allowing to check whether the owned identity is active has not been set" - case .ownedIdentityIsNotActive: return "The owned identity is not active but is required to be active for this server method" + case .ownedIdentityIsActiveCheckerDelegateIsNotSet: + return "The (identity) delegate allowing to check whether the owned identity is active has not been set" + case .ownedIdentityIsNotActive: + return "The owned identity is not active but is required to be active for this server method" + case .couldNotParseServerResponse: + return "Could not parse the server response" + case .returnedServerStatusIsInvalid: + return "The returned server status is invalid" + case .serverDidNotReturnTheExpectedNumberOfElements: + return "The server did not return the expected number of elements" + case .couldNotDecodeElementReturnByServer(elementName: let elementName): + return "We could not decode the following element returned by the server: \(elementName)" } } } diff --git a/Engine/ObvSyncSnapshotManager/ObvSyncSnapshotManager/ObvSyncSnapshotManagerImplementation.swift b/Engine/ObvSyncSnapshotManager/ObvSyncSnapshotManager/ObvSyncSnapshotManagerImplementation.swift new file mode 100644 index 00000000..f01c1b51 --- /dev/null +++ b/Engine/ObvSyncSnapshotManager/ObvSyncSnapshotManager/ObvSyncSnapshotManagerImplementation.swift @@ -0,0 +1,144 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes +import ObvMetaManager +import OlvidUtils +import ObvEncoder +import ObvCrypto +import os.log + + +public final class ObvSyncSnapshotManagerImplementation: ObvSyncSnapshotDelegate { + + private weak var appSnapshotableObject: (any ObvAppSnapshotable)? + private weak var identitySnapshotableObject: (any ObvSnapshotable)? + + public init() { + } + + + // MARK: - ObvManager + + private static let defaultLogSubsystem = "io.olvid.syncSnapshot" + public private(set) var logSubsystem = ObvSyncSnapshotManagerImplementation.defaultLogSubsystem + + public func prependLogSubsystem(with prefix: String) { + logSubsystem = [prefix, Self.defaultLogSubsystem].joined(separator: ".") + } + + public func fulfill(requiredDelegate delegate: AnyObject, forDelegateType delegateType: ObvEngineDelegateType) throws { + } + + + public var requiredDelegates: [ObvEngineDelegateType] { + return [] + } + + + public func finalizeInitialization(flowId: FlowIdentifier, runningLog: RunningLogError) throws { + } + + + public func applicationAppearedOnScreen(forTheFirstTime: Bool, flowId: FlowIdentifier) async { + assert(appSnapshotableObject != nil, "registerAppSnapshotableObject(_:) should have been called by now") + assert(identitySnapshotableObject != nil, "registerIdentitySnapshotableObject(_:) should have been called by now") + } + + + // MARK: - ObvSyncSnapshotDelegate + + + public func registerAppSnapshotableObject(_ appSnapshotableObject: ObvAppSnapshotable) { + assert(self.appSnapshotableObject == nil, "We do not expect this method to be called twice") + self.appSnapshotableObject = appSnapshotableObject + } + + + public func registerIdentitySnapshotableObject(_ identitySnapshotableObject: ObvSnapshotable) { + assert(self.identitySnapshotableObject == nil, "We do not expect this method to be called twice") + self.identitySnapshotableObject = identitySnapshotableObject + } + + + public func getSyncSnapshotNode(for ownedCryptoId: ObvCryptoId) throws -> ObvSyncSnapshot { + + guard let appSnapshotableObject else { + throw ObvError.appSnapshotableObjectIsNil + } + + guard let identitySnapshotableObject else { + throw ObvError.identitySnapshotableObjectIsNil + } + + return try ObvSyncSnapshot(ownedCryptoId: ownedCryptoId, appSnapshotableObject: appSnapshotableObject, identitySnapshotableObject: identitySnapshotableObject) + + } + + + public func getSyncSnapshotNodeAsObvDictionary(for ownedCryptoId: ObvCryptoId) throws -> ObvDictionary { + + guard let appSnapshotableObject else { + throw ObvError.appSnapshotableObjectIsNil + } + + guard let identitySnapshotableObject else { + throw ObvError.identitySnapshotableObjectIsNil + } + + let syncSnapshotNode = try getSyncSnapshotNode(for: ownedCryptoId) + let obvDict = try syncSnapshotNode.toObvDictionary(appSnapshotableObject: appSnapshotableObject, identitySnapshotableObject: identitySnapshotableObject) + + return obvDict + + } + + public func decodeSyncSnapshot(from obvDictionary: ObvDictionary) throws -> ObvSyncSnapshot { + + guard let appSnapshotableObject else { + throw ObvError.appSnapshotableObjectIsNil + } + + guard let identitySnapshotableObject else { + throw ObvError.identitySnapshotableObjectIsNil + } + + return try ObvSyncSnapshot.fromObvDictionary(obvDictionary, appSnapshotableObject: appSnapshotableObject, identitySnapshotableObject: identitySnapshotableObject) + + } + + + public func syncEngineDatabaseThenUpdateAppDatabase(using obvSyncSnapshotNode: any ObvSyncSnapshotNode) async throws { + try await appSnapshotableObject?.syncEngineDatabaseThenUpdateAppDatabase(using: obvSyncSnapshotNode) + } + + + public func requestServerToKeepDeviceActive(ownedCryptoId: ObvCryptoId, deviceUidToKeepActive: UID) async throws { + try await appSnapshotableObject?.requestServerToKeepDeviceActive(ownedCryptoId: ownedCryptoId, deviceUidToKeepActive: deviceUidToKeepActive) + } + + // MARK: ObvError + + enum ObvError: Error { + case appSnapshotableObjectIsNil + case identitySnapshotableObjectIsNil + } + +} diff --git a/Engine/ObvTypes/ObvTypes/APIKeyStatus.swift b/Engine/ObvTypes/ObvTypes/APIKeyStatus.swift index 4c21a6f6..12bc7d76 100644 --- a/Engine/ObvTypes/ObvTypes/APIKeyStatus.swift +++ b/Engine/ObvTypes/ObvTypes/APIKeyStatus.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -19,12 +19,27 @@ import Foundation -/// valid: cle unipersonnelle, valide, pas expireee. Elle peut ne pas avoir de date d'expiration. -/// unknown: the server does not know the key. Access to free features only. C'est aussi ce qui est envoyé pour une clée normalement "free" ou "freeTrial" mais expirée. -/// licensesExhausted: attribuée a qqun d'autre. -/// expired: the key is valid, known in DB, unipersonnelle, mais expirée -/// free: (nombre de licence à -1 sur serveur), quand c'est free et encore actif. C'est une cle pour beta. -/// freeTrial: quand c'est freeTrial et encore actif. Technique clé de MAC. + +public struct APIKeyElements { + + public let status: APIKeyStatus + public let permissions: APIPermissions + public let expirationDate: Date? + + public init(status: APIKeyStatus, permissions: APIPermissions, expirationDate: Date?) { + self.status = status + self.permissions = permissions + self.expirationDate = expirationDate + } + +} + +/// `valid`: personal, valid, not expired key. This kind of key cannot have an expiration date. +/// `unknown`: the server does not know the key. Access to free features only. C'est aussi ce qui est envoyé pour une clée normalement "free" ou "freeTrial" mais expirée. +/// `licensesExhausted`: attribuée a qqun d'autre. +/// `expired`: the key is valid, known in DB, unipersonnelle, mais expirée +/// `free`: (nombre de licence à -1 sur serveur), quand c'est free et encore actif. C'est une cle pour beta. +/// `freeTrial`: quand c'est freeTrial et encore actif. Technique clé de MAC. public enum APIKeyStatus: Int, CustomStringConvertible { case valid = 0 @@ -64,16 +79,30 @@ public enum APIKeyStatus: Int, CustomStringConvertible { } -public struct APIPermissions: OptionSet { +public struct APIPermissions: OptionSet, CustomStringConvertible { public let rawValue: Int public static let canCall = APIPermissions(rawValue: 1 << 0) - public static let androidWebClient = APIPermissions(rawValue: 1 << 1) + // public static let androidWebClient = APIPermissions(rawValue: 1 << 1) public static let multidevice = APIPermissions(rawValue: 1 << 2) public init(rawValue: Int) { assert(rawValue < 8) self.rawValue = rawValue } + + public var description: String { + var permissionsAsTring = [String]() + if self.contains(.canCall) { + permissionsAsTring.append("SecureCalls") + } +// if self.contains(.androidWebClient) { +// permissionsAsTring.append("AndroidWebClient") +// } + if self.contains(.multidevice) { + permissionsAsTring.append("MultiDevice") + } + return "APIPermissions<\(permissionsAsTring.joined(separator: ","))>" + } } diff --git a/Engine/ObvTypes/ObvTypes/GroupV1Identifier.swift b/Engine/ObvTypes/ObvTypes/GroupV1Identifier.swift new file mode 100644 index 00000000..78bba26b --- /dev/null +++ b/Engine/ObvTypes/ObvTypes/GroupV1Identifier.swift @@ -0,0 +1,78 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvCrypto + + +/// 2023-09-23 Type introduced for sync snapshots. It should have been introduced earlier... +public struct GroupV1Identifier: Hashable, LosslessStringConvertible { + + public let groupUid: UID + public let groupOwner: ObvCryptoId + + public init(groupUid: UID, groupOwner: ObvCryptoId) { + self.groupUid = groupUid + self.groupOwner = groupOwner + } + + var rawData: Data { + groupOwner.getIdentity() + groupUid.raw + } + + init(rawData: Data) throws { + guard rawData.count > UID.length else { + throw ObvError.notEnoughData + } + let identity = rawData[0..<(rawData.count-UID.length)] + self.groupOwner = try ObvCryptoId(identity: identity) + guard let groupUid = UID(uid: rawData[(rawData.count-UID.length)... */ +import Foundation -"DISCUSSIONS_FILTER_CELL_PICKER_TEXT" = "Filtrer les discussions"; -"DISCUSSIONS_LIST_SELECTION_PLACEHOLDER_CELL" = "Sélectionnez une ou plusieurs discussions"; +/// 2023-09-23 Type introduced for sync snapshots. It should have been introduced earlier... +public typealias GroupV2Identifier = Data diff --git a/Engine/ObvTypes/ObvTypes/ObvAppStoreReceipt.swift b/Engine/ObvTypes/ObvTypes/ObvAppStoreReceipt.swift new file mode 100644 index 00000000..48f10ca9 --- /dev/null +++ b/Engine/ObvTypes/ObvTypes/ObvAppStoreReceipt.swift @@ -0,0 +1,47 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvCrypto + + +public struct ObvAppStoreReceipt: Hashable { + + public let ownedCryptoIdentities: Set + public let signedAppStoreTransactionAsJWS: String + public let transactionIdentifier: UInt64 + + public init(ownedCryptoIdentities: Set, signedAppStoreTransactionAsJWS: String, transactionIdentifier: UInt64) { + self.ownedCryptoIdentities = ownedCryptoIdentities + self.signedAppStoreTransactionAsJWS = signedAppStoreTransactionAsJWS + self.transactionIdentifier = transactionIdentifier + } + + public func hash(into hasher: inout Hasher) { + hasher.combine(transactionIdentifier) + } + + + public enum VerificationStatus { + case succeededAndSubscriptionIsValid + case succeededButSubscriptionIsExpired + case failed + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/AttachmentIdentifier.swift b/Engine/ObvTypes/ObvTypes/ObvAttachmentIdentifier.swift similarity index 51% rename from Engine/ObvMetaManager/ObvMetaManager/CommonTypes/AttachmentIdentifier.swift rename to Engine/ObvTypes/ObvTypes/ObvAttachmentIdentifier.swift index d80ac0f8..2b16da49 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/AttachmentIdentifier.swift +++ b/Engine/ObvTypes/ObvTypes/ObvAttachmentIdentifier.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,19 +20,23 @@ import Foundation import ObvEncoder -public struct AttachmentIdentifier: Equatable, Hashable { +public struct ObvAttachmentIdentifier: Equatable, Hashable { - public let messageId: MessageIdentifier + public let messageId: ObvMessageIdentifier public let attachmentNumber: Int - public init(messageId: MessageIdentifier, attachmentNumber: Int) { + public init(messageId: ObvMessageIdentifier, attachmentNumber: Int) { self.messageId = messageId self.attachmentNumber = attachmentNumber } + public var directoryNameForAttachmentChunks: String { + return "\(self.attachmentNumber)" + } + } -extension AttachmentIdentifier: CustomDebugStringConvertible { +extension ObvAttachmentIdentifier: CustomDebugStringConvertible { public var debugDescription: String { return "Attachment<\(messageId.debugDescription),\(attachmentNumber)>" @@ -40,7 +44,8 @@ extension AttachmentIdentifier: CustomDebugStringConvertible { } -extension AttachmentIdentifier: Codable { + +extension ObvAttachmentIdentifier: Codable { enum CodingKeys: String, CodingKey { case messageId = "message_id" @@ -48,31 +53,3 @@ extension AttachmentIdentifier: Codable { } } - -extension AttachmentIdentifier: RawRepresentable { - - public var rawValue: Data { - let encoder = JSONEncoder() - return try! encoder.encode(self) - } - - public init?(rawValue: Data) { - let decoder = JSONDecoder() - guard let attachmentId = try? decoder.decode(AttachmentIdentifier.self, from: rawValue) else { return nil } - self = attachmentId - } - -} - -extension AttachmentIdentifier: LosslessStringConvertible { - - public var description: String { - return String(data: self.rawValue, encoding: .utf8)! - } - - public init?(_ description: String) { - guard let rawValue = description.data(using: .utf8) else { assertionFailure(); return nil } - self.init(rawValue: rawValue) - } - -} diff --git a/Engine/ObvTypes/ObvTypes/ObvContactIdentifier.swift b/Engine/ObvTypes/ObvTypes/ObvContactIdentifier.swift new file mode 100644 index 00000000..704f0755 --- /dev/null +++ b/Engine/ObvTypes/ObvTypes/ObvContactIdentifier.swift @@ -0,0 +1,74 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvCrypto + + +public struct ObvContactIdentifier: Hashable, CustomStringConvertible { + + public let contactCryptoId: ObvCryptoId + public let ownedCryptoId: ObvCryptoId + + public init(contactCryptoIdentity: ObvCryptoIdentity, ownedCryptoIdentity: ObvCryptoIdentity) { + assert(contactCryptoIdentity != ownedCryptoIdentity) + self.contactCryptoId = ObvCryptoId(cryptoIdentity: contactCryptoIdentity) + self.ownedCryptoId = ObvCryptoId(cryptoIdentity: ownedCryptoIdentity) + } + + public init(contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId) { + assert(contactCryptoId != ownedCryptoId) + self.contactCryptoId = contactCryptoId + self.ownedCryptoId = ownedCryptoId + } + +} + + +// MARK: Implementing CustomStringConvertible + +extension ObvContactIdentifier { + public var description: String { + return "ObvContactIdentifier<\(contactCryptoId.description), \(ownedCryptoId.description)>" + } +} + + +// MARK: - Codable + +extension ObvContactIdentifier: Codable { + + /// `ObvContactIdentifier` so that `ObvMessage` and `ObvAttachment` can also conform to Codable. This makes it possible to transfer a message from the notification service to the main app. + /// This serialization should **not** be used within long term storage since we may change it regularly. + + enum CodingKeys: String, CodingKey { + case contactCryptoId = "contact_crypto_id" + case ownedCryptoId = "owned_crypto_id" + } + + public func encodeToJson() throws -> Data { + let encoder = JSONEncoder() + return try encoder.encode(self) + } + + public static func decodeFromJson(data: Data) throws -> ObvMessage { + let decoder = JSONDecoder() + return try decoder.decode(ObvMessage.self, from: data) + } +} diff --git a/Engine/ObvEngine/ObvEngine/Types/ObvDialog.swift b/Engine/ObvTypes/ObvTypes/ObvDialog.swift similarity index 83% rename from Engine/ObvEngine/ObvEngine/Types/ObvDialog.swift rename to Engine/ObvTypes/ObvTypes/ObvDialog.swift index 22c33055..a3ec1a6b 100644 --- a/Engine/ObvEngine/ObvEngine/Types/ObvDialog.swift +++ b/Engine/ObvTypes/ObvTypes/ObvDialog.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,18 +20,16 @@ import Foundation import ObvEncoder import ObvCrypto -import ObvTypes -import ObvMetaManager public struct ObvDialog: ObvFailableCodable, Equatable { // Allow to store the encodedElements public let uuid: UUID - internal let encodedElements: ObvEncoded + public let encodedElements: ObvEncoded public let ownedCryptoId: ObvCryptoId public let category: Category - internal var encodedResponse: ObvEncoded? + public private(set) var encodedResponse: ObvEncoded? private static func makeError(message: String) -> Error { NSError(domain: String(describing: Self.self), code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } @@ -42,7 +40,7 @@ public struct ObvDialog: ObvFailableCodable, Equatable { return true } - init(uuid: UUID, encodedElements: ObvEncoded, ownedCryptoId: ObvCryptoId, category: Category) { + public init(uuid: UUID, encodedElements: ObvEncoded, ownedCryptoId: ObvCryptoId, category: Category) { self.uuid = uuid self.encodedElements = encodedElements self.ownedCryptoId = ownedCryptoId @@ -59,6 +57,12 @@ public struct ObvDialog: ObvFailableCodable, Equatable { } } + public func settingResponseToAcceptInvite(acceptInvite: Bool) throws -> Self { + var localCopy = self + try localCopy.setResponseToAcceptInvite(acceptInvite: acceptInvite) + return localCopy + } + public mutating func setResponseToSasExchange(otherSas: Data) throws { switch category { case .sasExchange: @@ -78,6 +82,13 @@ public struct ObvDialog: ObvFailableCodable, Equatable { } + public func settingResponseToAcceptMediatorInvite(acceptInvite: Bool) throws -> Self { + var localCopy = self + try localCopy.setResponseToAcceptMediatorInvite(acceptInvite: acceptInvite) + return localCopy + } + + public mutating func setResponseToAcceptGroupInvite(acceptInvite: Bool) throws { switch category { case .acceptGroupInvite: @@ -86,17 +97,14 @@ public struct ObvDialog: ObvFailableCodable, Equatable { throw Self.makeError(message: "Bad category") } } + - - public mutating func rejectIncreaseGroupOwnerTrustLevelRequired() throws { - switch category { - case .increaseGroupOwnerTrustLevelRequired: - encodedResponse = false.obvEncode() - default: - throw Self.makeError(message: "Bad category") - } + public func settingResponseToAcceptGroupInvite(acceptInvite: Bool) throws -> Self { + var localCopy = self + try localCopy.setResponseToAcceptGroupInvite(acceptInvite: acceptInvite) + return localCopy } - + public mutating func setResponseToOneToOneInvitationReceived(invitationAccepted: Bool) throws { switch category { @@ -108,6 +116,13 @@ public struct ObvDialog: ObvFailableCodable, Equatable { } + public func settingResponseToOneToOneInvitationReceived(invitationAccepted: Bool) throws -> Self { + var localCopy = self + try localCopy.setResponseToOneToOneInvitationReceived(invitationAccepted: invitationAccepted) + return localCopy + } + + public mutating func cancelOneToOneInvitationSent() throws { switch category { case .oneToOneInvitationSent: @@ -116,6 +131,13 @@ public struct ObvDialog: ObvFailableCodable, Equatable { throw Self.makeError(message: "Bad category") } } + + + public func cancellingOneToOneInvitationSent() throws -> Self { + var localCopy = self + try localCopy.cancelOneToOneInvitationSent() + return localCopy + } public mutating func setResponseToAcceptGroupV2Invite(acceptInvite: Bool) throws { @@ -126,7 +148,14 @@ public struct ObvDialog: ObvFailableCodable, Equatable { throw Self.makeError(message: "Bad category") } } - + + + public func settingResponseToAcceptGroupV2Invite(acceptInvite: Bool) throws -> Self { + var localCopy = self + try localCopy.setResponseToAcceptGroupV2Invite(acceptInvite: acceptInvite) + return localCopy + } + public var actionRequired: Bool { switch self.category { @@ -135,17 +164,15 @@ public struct ObvDialog: ObvFailableCodable, Equatable { .mutualTrustConfirmed, .mediatorInviteAccepted, .oneToOneInvitationSent, - .autoconfirmedContactIntroduction, - .freezeGroupV2Invite: + .freezeGroupV2Invite, + .syncRequestReceivedFromOtherOwnedDevice: return false case .acceptInvite, .sasExchange, .sasConfirmed, .acceptMediatorInvite, .acceptGroupInvite, - .increaseMediatorTrustLevelRequired, .oneToOneInvitationReceived, - .increaseGroupOwnerTrustLevelRequired, .acceptGroupV2Invite: return true } @@ -166,13 +193,10 @@ extension ObvDialog { // Dialogs related to mediator invites case acceptMediatorInvite(contactIdentity: ObvGenericIdentity, mediatorIdentity: ObvGenericIdentity) // The mediatorIdentity corresponds to a ObvContactIdentity - case increaseMediatorTrustLevelRequired(contactIdentity: ObvGenericIdentity, mediatorIdentity: ObvGenericIdentity) // The mediatorIdentity corresponds to a ObvContactIdentity case mediatorInviteAccepted(contactIdentity: ObvGenericIdentity, mediatorIdentity: ObvGenericIdentity) // The mediatorIdentity corresponds to a ObvContactIdentity - case autoconfirmedContactIntroduction(contactIdentity: ObvGenericIdentity, mediatorIdentity: ObvGenericIdentity) // Dialogs related to contact groups case acceptGroupInvite(groupMembers: Set, groupOwner: ObvGenericIdentity) - case increaseGroupOwnerTrustLevelRequired(groupOwner: ObvGenericIdentity) // Dialogs related to OneToOne invitations case oneToOneInvitationSent(contactIdentity: ObvGenericIdentity) @@ -182,6 +206,9 @@ extension ObvDialog { case acceptGroupV2Invite(inviter: ObvCryptoId, group: ObvGroupV2) case freezeGroupV2Invite(inviter: ObvCryptoId, group: ObvGroupV2) + // Dialogs related to the synchronization between owned devices + case syncRequestReceivedFromOtherOwnedDevice(otherOwnedDeviceIdentifier: Data, syncAtom: ObvSyncAtom) + private var raw: Int { switch self { case .inviteSent: return 0 @@ -193,13 +220,14 @@ extension ObvDialog { case .acceptMediatorInvite: return 6 case .mediatorInviteAccepted: return 7 case .acceptGroupInvite: return 8 - case .increaseMediatorTrustLevelRequired: return 11 - case .increaseGroupOwnerTrustLevelRequired: return 12 - case .autoconfirmedContactIntroduction: return 13 + // case .increaseMediatorTrustLevelRequired: return 11 + // case .increaseGroupOwnerTrustLevelRequired: return 12 + // case .autoconfirmedContactIntroduction: return 13 case .oneToOneInvitationSent: return 14 case .oneToOneInvitationReceived: return 15 case .acceptGroupV2Invite: return 16 case .freezeGroupV2Invite: return 17 + case .syncRequestReceivedFromOtherOwnedDevice: return 18 } } @@ -261,13 +289,6 @@ extension ObvDialog { default: return false } - case .increaseMediatorTrustLevelRequired(contactIdentity: let a1, mediatorIdentity: let b1): - switch rhs { - case .increaseMediatorTrustLevelRequired(contactIdentity: let a2, mediatorIdentity: let b2): - return a1 == a2 && b1 == b2 - default: - return false - } case .acceptGroupInvite(groupMembers: let a1, groupOwner: let b1): switch rhs { case .acceptGroupInvite(groupMembers: let a2, groupOwner: let b2): @@ -275,20 +296,6 @@ extension ObvDialog { default: return false } - case .increaseGroupOwnerTrustLevelRequired(groupOwner: let a1): - switch rhs { - case .increaseGroupOwnerTrustLevelRequired(groupOwner: let a2): - return a1 == a2 - default: - return false - } - case .autoconfirmedContactIntroduction(contactIdentity: let a1): - switch rhs { - case .autoconfirmedContactIntroduction(contactIdentity: let a2): - return a1 == a2 - default: - return false - } case .oneToOneInvitationSent(contactIdentity: let a1): switch rhs { case .oneToOneInvitationSent(contactIdentity: let a2): @@ -317,6 +324,13 @@ extension ObvDialog { default: return false } + case .syncRequestReceivedFromOtherOwnedDevice(otherOwnedDeviceIdentifier: let a1, syncAtom: let b1): + switch rhs { + case .syncRequestReceivedFromOtherOwnedDevice(otherOwnedDeviceIdentifier: let a2, syncAtom: let b2): + return a1 == a2 && b1 == b2 + default: + return false + } } } @@ -337,18 +351,12 @@ extension ObvDialog { encodedVars = [contactIdentity].obvEncode() case .acceptMediatorInvite(contactIdentity: let contactIdentity, mediatorIdentity: let mediatorIdentity): encodedVars = [contactIdentity, mediatorIdentity].obvEncode() - case .increaseMediatorTrustLevelRequired(contactIdentity: let contactIdentity, mediatorIdentity: let mediatorIdentity): - encodedVars = [contactIdentity, mediatorIdentity].obvEncode() case .mediatorInviteAccepted(contactIdentity: let contactIdentity, mediatorIdentity: let mediatorIdentity): encodedVars = [contactIdentity, mediatorIdentity].obvEncode() - case .autoconfirmedContactIntroduction(contactIdentity: let contactIdentity, mediatorIdentity: let mediatorIdentity): - encodedVars = [contactIdentity, mediatorIdentity].obvEncode() case .acceptGroupInvite(groupMembers: let groupMembers, groupOwner: let groupOwner): let encodedGroupMembers = (groupMembers.map { $0.obvEncode() }).obvEncode() let encodedGroupOwner = groupOwner.obvEncode() encodedVars = [encodedGroupMembers, encodedGroupOwner].obvEncode() - case .increaseGroupOwnerTrustLevelRequired(groupOwner: let groupOwner): - encodedVars = [groupOwner].obvEncode() case .oneToOneInvitationSent(contactIdentity: let contactIdentity): encodedVars = [contactIdentity].obvEncode() case .oneToOneInvitationReceived(contactIdentity: let contactIdentity): @@ -357,6 +365,8 @@ extension ObvDialog { encodedVars = [inviter.obvEncode(), try group.obvEncode()].obvEncode() case .freezeGroupV2Invite(inviter: let inviter, group: let group): encodedVars = [inviter.obvEncode(), try group.obvEncode()].obvEncode() + case .syncRequestReceivedFromOtherOwnedDevice(otherOwnedDeviceIdentifier: let otherOwnedDeviceIdentifier, syncAtom: let syncAtom): + encodedVars = [otherOwnedDeviceIdentifier, syncAtom].obvEncode() } let encodedObvDialog = [raw.obvEncode(), encodedVars].obvEncode() return encodedObvDialog @@ -424,23 +434,12 @@ extension ObvDialog { } guard let groupOwner = try? encodedVars[1].obvDecode() as ObvGenericIdentity else { return nil } self = .acceptGroupInvite(groupMembers: groupMembers, groupOwner: groupOwner) - case 11: - /* increaseMediatorTrustLevelRequired */ - guard let encodedVars = [ObvEncoded](listOfEncoded[1], expectedCount: 2) else { return nil } - guard let contactIdentity = try? encodedVars[0].obvDecode() as ObvGenericIdentity else { return nil } - guard let mediatorIdentity = try? encodedVars[1].obvDecode() as ObvGenericIdentity else { return nil } - self = .increaseMediatorTrustLevelRequired(contactIdentity: contactIdentity, mediatorIdentity: mediatorIdentity) - case 12: - /* increaseGroupOwnerTrustLevelRequired */ - guard let encodedVars = [ObvEncoded](listOfEncoded[1], expectedCount: 1) else { return nil } - guard let groupOwner = try? encodedVars[0].obvDecode() as ObvGenericIdentity else { return nil } - self = .increaseGroupOwnerTrustLevelRequired(groupOwner: groupOwner) - case 13: - /* autoconfirmedContactIntroduction */ - guard let encodedVars = [ObvEncoded](listOfEncoded[1], expectedCount: 2) else { return nil } - guard let contactIdentity = try? encodedVars[0].obvDecode() as ObvGenericIdentity else { return nil } - guard let mediatorIdentity = try? encodedVars[1].obvDecode() as ObvGenericIdentity else { return nil } - self = .autoconfirmedContactIntroduction(contactIdentity: contactIdentity, mediatorIdentity: mediatorIdentity) +// case 11: +// /* Was increaseMediatorTrustLevelRequired */ +// case 12: +// /* Was increaseGroupOwnerTrustLevelRequired */ +// case 13: +// /* Was autoconfirmedContactIntroduction */ case 14: /* oneToOneInvitationSent */ guard let encodedVars = [ObvEncoded](listOfEncoded[1], expectedCount: 1) else { return nil } @@ -463,6 +462,12 @@ extension ObvDialog { guard let inviter = try? encodedVars[0].obvDecode() as ObvCryptoId else { assertionFailure(); return nil } guard let group = try? encodedVars[1].obvDecode() as ObvGroupV2 else { assertionFailure(); return nil } self = .freezeGroupV2Invite(inviter: inviter, group: group) + case 18: + /* syncRequestReceivedFromOtherOwnedDevice */ + guard let encodedVars = [ObvEncoded](listOfEncoded[1], expectedCount: 2) else { assertionFailure(); return nil } + guard let otherOwnedDeviceIdentifier = try? encodedVars[0].obvDecode() as Data else { assertionFailure(); return nil } + guard let syncAtom = try? encodedVars[1].obvDecode() as ObvSyncAtom else { assertionFailure(); return nil } + self = .syncRequestReceivedFromOtherOwnedDevice(otherOwnedDeviceIdentifier: otherOwnedDeviceIdentifier, syncAtom: syncAtom) default: return nil } @@ -484,16 +489,10 @@ extension ObvDialog { return "mutualTrustConfirmed" case .acceptMediatorInvite: return "acceptMediatorInvite" - case .increaseMediatorTrustLevelRequired: - return "increaseMediatorTrustLevelRequired" case .mediatorInviteAccepted: return "mediatorInviteAccepted" case .acceptGroupInvite: return "acceptGroupInvite" - case .increaseGroupOwnerTrustLevelRequired: - return "increaseGroupOwnerTrustLevelRequired" - case .autoconfirmedContactIntroduction: - return "autoconfirmedContactIntroduction" case .oneToOneInvitationSent: return "oneToOneInvitationSent" case .oneToOneInvitationReceived: @@ -502,6 +501,8 @@ extension ObvDialog { return "acceptGroupV2Invite" case .freezeGroupV2Invite: return "freezeGroupV2Invite" + case .syncRequestReceivedFromOtherOwnedDevice: + return "syncRequestReceivedFromOtherOwnedDevice" } } diff --git a/Engine/ObvEngine/ObvEngine/Types/EncryptedPushNotification.swift b/Engine/ObvTypes/ObvTypes/ObvEncryptedPushNotification.swift similarity index 89% rename from Engine/ObvEngine/ObvEngine/Types/EncryptedPushNotification.swift rename to Engine/ObvTypes/ObvTypes/ObvEncryptedPushNotification.swift index 5c2713f4..7bd946b1 100644 --- a/Engine/ObvEngine/ObvEngine/Types/EncryptedPushNotification.swift +++ b/Engine/ObvTypes/ObvTypes/ObvEncryptedPushNotification.swift @@ -18,17 +18,16 @@ */ import Foundation -import ObvTypes import ObvCrypto -public struct EncryptedPushNotification { +public struct ObvEncryptedPushNotification { - let messageIdFromServer: UID - let wrappedKey: EncryptedData - let encryptedContent: EncryptedData - let encryptedExtendedContent: EncryptedData? - let maskingUID: UID + public let messageIdFromServer: UID + public let wrappedKey: EncryptedData + public let encryptedContent: EncryptedData + public let encryptedExtendedContent: EncryptedData? + public let maskingUID: UID public let messageUploadTimestampFromServer: Date // Note that we have no downloadTimestampFromServer since this information is not avaible from APNS public let localDownloadTimestamp: Date @@ -60,4 +59,5 @@ public struct EncryptedPushNotification { self.messageUploadTimestampFromServer = messageUploadTimestampFromServer self.localDownloadTimestamp = localDownloadTimestamp } + } diff --git a/Engine/ObvEngine/ObvEngine/Types/Identities/ObvGenericIdentity.swift b/Engine/ObvTypes/ObvTypes/ObvGenericIdentity.swift similarity index 89% rename from Engine/ObvEngine/ObvEngine/Types/Identities/ObvGenericIdentity.swift rename to Engine/ObvTypes/ObvTypes/ObvGenericIdentity.swift index d01911de..f253c0a1 100644 --- a/Engine/ObvEngine/ObvEngine/Types/Identities/ObvGenericIdentity.swift +++ b/Engine/ObvTypes/ObvTypes/ObvGenericIdentity.swift @@ -20,7 +20,6 @@ import Foundation import ObvCrypto import ObvEncoder -import ObvTypes public struct ObvGenericIdentity: ObvIdentity { @@ -28,7 +27,7 @@ public struct ObvGenericIdentity: ObvIdentity { public let cryptoId: ObvCryptoId public let currentIdentityDetails: ObvIdentityDetails - init(cryptoIdentity: ObvCryptoIdentity, currentIdentityDetails: ObvIdentityDetails) { + public init(cryptoIdentity: ObvCryptoIdentity, currentIdentityDetails: ObvIdentityDetails) { self.cryptoId = ObvCryptoId(cryptoIdentity: cryptoIdentity) self.currentIdentityDetails = currentIdentityDetails } @@ -38,7 +37,7 @@ public struct ObvGenericIdentity: ObvIdentity { self.currentIdentityDetails = currentIdentityDetails } - init(cryptoIdentity: ObvCryptoIdentity, currentCoreIdentityDetails: ObvIdentityCoreDetails) { + public init(cryptoIdentity: ObvCryptoIdentity, currentCoreIdentityDetails: ObvIdentityCoreDetails) { self.cryptoId = ObvCryptoId(cryptoIdentity: cryptoIdentity) self.currentIdentityDetails = ObvIdentityDetails(coreDetails: currentCoreIdentityDetails, photoURL: nil) } @@ -50,6 +49,12 @@ public struct ObvGenericIdentity: ObvIdentity { let detail = ObvIdentityDetails(coreDetails: coreDetails, photoURL: nil) self.init(cryptoId: cryptoId, currentIdentityDetails: detail) } + + + public func getDisplayNameWithStyle(_ style: ObvIdentityCoreDetails.DisplayNameStyle) -> String { + return currentIdentityDetails.getDisplayNameWithStyle(style) + } + } diff --git a/Engine/ObvTypes/ObvTypes/ObvGroupCoreDetails.swift b/Engine/ObvTypes/ObvTypes/ObvGroupCoreDetails.swift index 3298e280..67feded5 100644 --- a/Engine/ObvTypes/ObvTypes/ObvGroupCoreDetails.swift +++ b/Engine/ObvTypes/ObvTypes/ObvGroupCoreDetails.swift @@ -53,7 +53,7 @@ extension ObvGroupCoreDetails: Codable { public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(name, forKey: .name) - try container.encodeIfPresent(description, forKey: .description) + try container.encodeIfPresent(description?.isEmpty == true ? nil : description, forKey: .description) } @@ -67,7 +67,13 @@ extension ObvGroupCoreDetails: Codable { let values = try decoder.container(keyedBy: CodingKeys.self) let name = (try values.decode(String.self, forKey: .name)) let description = try values.decodeIfPresent(String.self, forKey: .description) - self.init(name: name, description: description) + let appropriateDescription: String? + if let description { + appropriateDescription = description.isEmpty ? nil : description + } else { + appropriateDescription = description + } + self.init(name: name, description: appropriateDescription) } } diff --git a/Engine/ObvTypes/ObvTypes/ObvGroupV2.swift b/Engine/ObvTypes/ObvTypes/ObvGroupV2.swift index 03cb991a..7889b906 100644 --- a/Engine/ObvTypes/ObvTypes/ObvGroupV2.swift +++ b/Engine/ObvTypes/ObvTypes/ObvGroupV2.swift @@ -64,7 +64,7 @@ public struct ObvGroupV2: ObvErrorMaker, ObvFailableCodable, Equatable, Hashable self.lastModificationTimestamp = lastModificationTimestamp } - public var appGroupIdentifier: Data { + public var appGroupIdentifier: GroupV2Identifier { groupIdentifier.appGroupIdentifier } @@ -165,6 +165,11 @@ public struct ObvGroupV2: ObvErrorMaker, ObvFailableCodable, Equatable, Hashable } + public init?(appGroupIdentifier: Data) { + guard let obvEncoded = ObvEncoded(withRawData: appGroupIdentifier) else { assertionFailure(); return nil } + self.init(obvEncoded) + } + // ObvCodable public func obvEncode() -> ObvEncoded { diff --git a/Engine/ObvEngine/ObvEngine/Types/Identities/ObvIdentity.swift b/Engine/ObvTypes/ObvTypes/ObvIdentity.swift similarity index 96% rename from Engine/ObvEngine/ObvEngine/Types/Identities/ObvIdentity.swift rename to Engine/ObvTypes/ObvTypes/ObvIdentity.swift index 3ccd100e..dd6b0694 100644 --- a/Engine/ObvEngine/ObvEngine/Types/Identities/ObvIdentity.swift +++ b/Engine/ObvTypes/ObvTypes/ObvIdentity.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -18,10 +18,9 @@ */ import Foundation - import ObvCrypto import ObvEncoder -import ObvTypes + public protocol ObvIdentity: Hashable { diff --git a/Engine/ObvTypes/ObvTypes/ObvIdentityCoreDetails.swift b/Engine/ObvTypes/ObvTypes/ObvIdentityCoreDetails.swift index e4325ced..1b09cdb8 100644 --- a/Engine/ObvTypes/ObvTypes/ObvIdentityCoreDetails.swift +++ b/Engine/ObvTypes/ObvTypes/ObvIdentityCoreDetails.swift @@ -99,6 +99,52 @@ public struct ObvIdentityCoreDetails: Equatable { pnc.givenName = firstName return pnc } + + + public var initial: String { + if let letter = firstName?.trimmingWhitespacesAndNewlines().first, !letter.isWhitespace { + return String(letter) + } else if let letter = lastName?.trimmingWhitespacesAndNewlines().first, !letter.isWhitespace { + return String(letter) + } else { + assertionFailure() + return "?" + } + } + + + public enum DisplayNameStyle { + + case firstNameThenLastName + case positionAtCompany + case full + case short + } + + + public func getDisplayNameWithStyle(_ style: DisplayNameStyle) -> String { + switch style { + case .firstNameThenLastName: + let _firstName = firstName ?? "" + let _lastName = lastName ?? "" + return [_firstName, _lastName].joined(separator: " ").trimmingCharacters(in: .whitespacesAndNewlines) + + case .positionAtCompany: + return positionAtCompany() + + case .full: + let firstNameThenLastName = getDisplayNameWithStyle(.firstNameThenLastName) + if let positionAtCompany = getDisplayNameWithStyle(.positionAtCompany).mapToNilIfZeroLength() { + return [firstNameThenLastName, "(\(positionAtCompany))"].joined(separator: " ") + } else { + return firstNameThenLastName + } + + case .short: + return firstName ?? lastName ?? "" + } + } + } diff --git a/Engine/ObvTypes/ObvTypes/ObvIdentityDetails.swift b/Engine/ObvTypes/ObvTypes/ObvIdentityDetails.swift index 41e02b64..c4b555b4 100644 --- a/Engine/ObvTypes/ObvTypes/ObvIdentityDetails.swift +++ b/Engine/ObvTypes/ObvTypes/ObvIdentityDetails.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -51,6 +51,11 @@ public struct ObvIdentityDetails: Equatable { return true } + + public func getDisplayNameWithStyle(_ style: ObvIdentityCoreDetails.DisplayNameStyle) -> String { + return coreDetails.getDisplayNameWithStyle(style) + } + } diff --git a/Engine/ObvTypes/ObvTypes/ObvKeycloakState.swift b/Engine/ObvTypes/ObvTypes/ObvKeycloakState.swift index a084a5e8..9ebd8062 100644 --- a/Engine/ObvTypes/ObvTypes/ObvKeycloakState.swift +++ b/Engine/ObvTypes/ObvTypes/ObvKeycloakState.swift @@ -19,8 +19,13 @@ import Foundation import JWS +import ObvEncoder +import OlvidUtils + +public struct ObvKeycloakState: ObvErrorMaker { + + public static var errorDomain = "ObvKeycloakState" -public struct ObvKeycloakState { public let keycloakServer: URL public let clientId: String @@ -43,3 +48,69 @@ public struct ObvKeycloakState { } } + + +/// Implements `ObvFailableCodable` as `ObvKeycloakState` is used within protocol messages. +/// Note that `latestLocalRevocationListTimestamp` and `latestGroupUpdateTimestamp` are lost in the encoding process. +extension ObvKeycloakState: ObvFailableCodable { + + private enum ObvCodingKeys: String, CaseIterable, CodingKey { + + case keycloakServer = "ks" + case clientId = "ci" + case clientSecret = "cs" + case jwks = "jwks" + case rawAuthState = "sas" + case signatureVerificationKey = "sk" + + var key: Data { rawValue.data(using: .utf8)! } + + } + + public func obvEncode() throws -> ObvEncoded { + var obvDict = [Data: ObvEncoded]() + for codingKey in ObvCodingKeys.allCases { + switch codingKey { + case .keycloakServer: + try obvDict.obvEncode(keycloakServer, forKey: codingKey) + case .clientId: + try obvDict.obvEncode(clientId, forKey: codingKey) + case .clientSecret: + try obvDict.obvEncodeIfPresent(clientSecret, forKey: codingKey) + case .jwks: + try obvDict.obvEncode(jwks, forKey: codingKey) + case .rawAuthState: + try obvDict.obvEncodeIfPresent(rawAuthState, forKey: codingKey) + case .signatureVerificationKey: + try obvDict.obvEncodeIfPresent(signatureVerificationKey, forKey: codingKey) + } + } + return obvDict.obvEncode() + } + + + public init?(_ obvEncoded: ObvEncoder.ObvEncoded) { + guard let obvDict = ObvDictionary(obvEncoded) else { assertionFailure(); return nil } + do { + let keycloakServer = try obvDict.obvDecode(URL.self, forKey: ObvCodingKeys.keycloakServer) + let clientId = try obvDict.obvDecode(String.self, forKey: ObvCodingKeys.clientId) + let clientSecret = try obvDict.obvDecodeIfPresent(String.self, forKey: ObvCodingKeys.clientSecret) + let jwks = try obvDict.obvDecode(ObvJWKSet.self, forKey: ObvCodingKeys.jwks) + let rawAuthState = try obvDict.obvDecodeIfPresent(Data.self, forKey: ObvCodingKeys.rawAuthState) + let signatureVerificationKey = try obvDict.obvDecodeIfPresent(ObvJWK.self, forKey: ObvCodingKeys.signatureVerificationKey) + self.init( + keycloakServer: keycloakServer, + clientId: clientId, + clientSecret: clientSecret, + jwks: jwks, + rawAuthState: rawAuthState, + signatureVerificationKey: signatureVerificationKey, + latestLocalRevocationListTimestamp: nil, + latestGroupUpdateTimestamp: nil) + } catch { + assertionFailure(error.localizedDescription) + return nil + } + } + +} diff --git a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/MessageIdentifier.swift b/Engine/ObvTypes/ObvTypes/ObvMessageIdentifier.swift similarity index 52% rename from Engine/ObvMetaManager/ObvMetaManager/CommonTypes/MessageIdentifier.swift rename to Engine/ObvTypes/ObvTypes/ObvMessageIdentifier.swift index cf299e2d..202a74b0 100644 --- a/Engine/ObvMetaManager/ObvMetaManager/CommonTypes/MessageIdentifier.swift +++ b/Engine/ObvTypes/ObvTypes/ObvMessageIdentifier.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,9 +20,9 @@ import Foundation import ObvCrypto import ObvEncoder -import ObvTypes -public struct MessageIdentifier: Equatable, Hashable, CustomDebugStringConvertible { + +public struct ObvMessageIdentifier: Equatable, Hashable, CustomDebugStringConvertible { public let uid: UID public let ownedCryptoIdentity: ObvCryptoIdentity @@ -38,7 +38,7 @@ public struct MessageIdentifier: Equatable, Hashable, CustomDebugStringConvertib self.init(ownedCryptoIdentity: ownedCryptoIdentity, uid: uid) } - public static func == (lhs: MessageIdentifier, rhs: MessageIdentifier) -> Bool { + public static func == (lhs: ObvMessageIdentifier, rhs: ObvMessageIdentifier) -> Bool { return lhs.uid == rhs.uid && lhs.ownedCryptoIdentity == rhs.ownedCryptoIdentity } @@ -50,9 +50,58 @@ public struct MessageIdentifier: Equatable, Hashable, CustomDebugStringConvertib public var debugDescription: String { return uid.debugDescription } + + + public var directoryNameForMessageAttachments: String { + let sha256 = ObvCryptoSuite.sharedInstance.hashFunctionSha256() + let rawValue = ownedCryptoIdentity.getIdentity() + uid.raw + let directoryName = sha256.hash(rawValue) + return directoryName.hexString() + } + + + /// 2023-07-07 This was the old way of computing the name of the directory allowing to store attachments for this message (in upload and download). + /// This method is not deterministic, leading to potential bug. It is only here for delaing with legacy situations and shall not be used for any other reason. + /// Use ``directoryNameForMessageAttachments`` instead. + public var legacyDirectoryNamesForMessageAttachments: Set { + var namesToReturn = Set() + let encoder = JSONEncoder() + let sha256 = ObvCryptoSuite.sharedInstance.hashFunctionSha256() + do { + encoder.outputFormatting = .sortedKeys + if let rawValue = try? encoder.encode(self) { + let directoryName = sha256.hash(rawValue).hexString() + namesToReturn.insert(directoryName) + } else { + assertionFailure() + } + } + // The previous name was constructed on the basis of a json with the .sortedKeys option. + // We manually construct the json with reversed keys. + if let ownedCryptoIdentityValueData = try? encoder.encode(self.ownedCryptoIdentity.getIdentity()), + let ownedCryptoIdentityValue = String(data: ownedCryptoIdentityValueData, encoding: .utf8), + let uidRaw = try? encoder.encode(self.uid), + let uidValue = String(data: uidRaw, encoding: .utf8), + let rawValue = [ + "{", + [ + ["\"uid\"", uidValue].joined(separator: ":"), + ["\"owned_crypto_identity\"", ownedCryptoIdentityValue].joined(separator: ":"), + ].joined(separator: ","), + "}", + ].joined().data(using: .utf8) { + let directoryName = sha256.hash(rawValue).hexString() + namesToReturn.insert(directoryName) + } else { + assertionFailure() + } + return namesToReturn + } + } -extension MessageIdentifier: Codable { + +extension ObvMessageIdentifier: Codable { private static let errorDomain = "MessageIdentifier" @@ -78,38 +127,8 @@ extension MessageIdentifier: Codable { let identity = try values.decode(Data.self, forKey: .ownedCryptoIdentity) guard let ownedIdentity = ObvCryptoIdentity(from: identity) else { assertionFailure() - throw MessageIdentifier.makeError(message: "Decode error") + throw ObvMessageIdentifier.makeError(message: "Decode error") } self.ownedCryptoIdentity = ownedIdentity } } - - -extension MessageIdentifier: RawRepresentable { - - public var rawValue: Data { - let encoder = JSONEncoder() - return try! encoder.encode(self) - } - - public init?(rawValue: Data) { - let decoder = JSONDecoder() - guard let messageId = try? decoder.decode(MessageIdentifier.self, from: rawValue) else { return nil } - self = messageId - } - -} - - -extension MessageIdentifier: LosslessStringConvertible { - - public var description: String { - return String(data: self.rawValue, encoding: .utf8)! - } - - public init?(_ description: String) { - guard let rawValue = description.data(using: .utf8) else { assertionFailure(); return nil } - self.init(rawValue: rawValue) - } - -} diff --git a/Engine/ObvTypes/ObvTypes/ObvOwnedDeviceDiscoveryResult.swift b/Engine/ObvTypes/ObvTypes/ObvOwnedDeviceDiscoveryResult.swift new file mode 100644 index 00000000..5b8f6446 --- /dev/null +++ b/Engine/ObvTypes/ObvTypes/ObvOwnedDeviceDiscoveryResult.swift @@ -0,0 +1,53 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation + +/// Used to inform the app about the result of a call to the owned device discovery server method. +public struct ObvOwnedDeviceDiscoveryResult { + + public let devices: Set + public let isMultidevice: Bool + + public init(devices: Set, isMultidevice: Bool) { + self.devices = devices + self.isMultidevice = isMultidevice + } + + public struct Device: Hashable, Identifiable { + + public let identifier: Data + public let expirationDate: Date? + public let latestRegistrationDate: Date? + public let name: String? + + public var id: Data { + identifier + } + + public init(identifier: Data, expirationDate: Date?, latestRegistrationDate: Date?, name: String?) { + self.identifier = identifier + self.expirationDate = expirationDate + self.latestRegistrationDate = latestRegistrationDate + self.name = name + } + + } + +} diff --git a/Engine/ObvTypes/ObvTypes/ObvPushNotificationType.swift b/Engine/ObvTypes/ObvTypes/ObvPushNotificationType.swift index cea2fcb7..572d21e1 100644 --- a/Engine/ObvTypes/ObvTypes/ObvPushNotificationType.swift +++ b/Engine/ObvTypes/ObvTypes/ObvPushNotificationType.swift @@ -22,10 +22,125 @@ import ObvEncoder import ObvCrypto -public enum ObvPushNotificationType: Equatable, CustomDebugStringConvertible { +public enum ObvPushNotificationType: Hashable, Equatable, CustomDebugStringConvertible { - case remote(ownedCryptoId: ObvCryptoIdentity, currentDeviceUID: UID, pushToken: Data, voipToken: Data?, maskingUID: UID, parameters: ObvPushNotificationParameters) - case registerDeviceUid(ownedCryptoId: ObvCryptoIdentity, currentDeviceUID: UID, parameters: ObvPushNotificationParameters) // Used by the simulator + case remote(ownedCryptoId: ObvCryptoIdentity, currentDeviceUID: UID, commonParameters: CommonParameters, optionalParameter: OptionalParameter, remoteTypeParameters: RemoteTypeParameters) + case registerDeviceUid(ownedCryptoId: ObvCryptoIdentity, currentDeviceUID: UID, commonParameters: CommonParameters, optionalParameter: OptionalParameter = .none) // Used by the simulator + + public var debugDescription: String { + switch self { + case .remote(let ownedCryptoId, let currentDeviceUID, let commonParameters, let optionalParameter, let remoteTypeParameters): + let values = [ + ownedCryptoId.debugDescription, + currentDeviceUID.debugDescription, + commonParameters.debugDescription, + optionalParameter.debugDescription, + remoteTypeParameters.debugDescription, + ] + return "ObvPushNotificationType-remote<\(values.joined(separator: ","))>" + case .registerDeviceUid(let ownedCryptoId, let currentDeviceUID, let commonParameters, let optionalParameter): + let values = [ + ownedCryptoId.debugDescription, + currentDeviceUID.debugDescription, + commonParameters.debugDescription, + optionalParameter.debugDescription, + ] + return "ObvPushNotificationType-registerDeviceUid<\(values.joined(separator: ","))>" + } + } + + + public struct CommonParameters: Hashable, Equatable, CustomDebugStringConvertible { + + public let keycloakPushTopics: Set + public let deviceNameForFirstRegistration: String + + public init(keycloakPushTopics: Set, deviceNameForFirstRegistration: String) { + self.keycloakPushTopics = keycloakPushTopics + self.deviceNameForFirstRegistration = deviceNameForFirstRegistration + } + + public var debugDescription: String { + let values = [ + keycloakPushTopics.debugDescription, + deviceNameForFirstRegistration, + ] + return "CommonParameters<\(values.joined(separator: ","))>" + } + + } + + + public func remoteNotificationByteIdentifierForServer(from originalRemoteNotificationByteIdentifierForServer: Data) -> Data { + switch self { + case .remote: + return originalRemoteNotificationByteIdentifierForServer + case .registerDeviceUid: + return Data([0xff]) + } + } + + + public struct RemoteTypeParameters: Hashable, Equatable, CustomDebugStringConvertible { + + public let pushToken: Data + public let voipToken: Data? + public let maskingUID: UID + + public var debugDescription: String { + let values = [ + String(pushToken.hexString().prefix(8)), + String(voipToken?.hexString().prefix(8) ?? "nil"), + maskingUID.debugDescription, + ] + return "RemoteTypeParameters<\(values.joined(separator: ","))>" + } + + public init(pushToken: Data, voipToken: Data?, maskingUID: UID) { + self.pushToken = pushToken + self.voipToken = voipToken + self.maskingUID = maskingUID + } + + } + + public enum OptionalParameter: Hashable, Equatable, CustomDebugStringConvertible { + case none + case reactivateCurrentDevice(replacedDeviceUid: UID?) + case forceRegister + + public var debugDescription: String { + let value: String + switch self { + case .none: + value = "none" + case .reactivateCurrentDevice(let replacedDeviceUid): + value = "reactivateCurrentDevice(\(replacedDeviceUid?.debugDescription ?? "nil")" + case .forceRegister: + value = "forceRegister" + } + return "OptionalParameter<\(value)>" + } + + public var reactivateCurrentDevice: Bool { + switch self { + case .none, .forceRegister: + return false + case .reactivateCurrentDevice: + return true + } + } + + public var replacedDeviceUid: UID? { + switch self { + case .none, .forceRegister: + return nil + case .reactivateCurrentDevice(let replacedDeviceUid): + return replacedDeviceUid + } + } + + } public enum ByteId: UInt8, CaseIterable { case remote = 0x00 // For iOS (the code is 0x01 for Android) @@ -47,114 +162,192 @@ public enum ObvPushNotificationType: Equatable, CustomDebugStringConvertible { } } - public var ownedCryptoId: ObvCryptoIdentity { - switch self { - case .remote(let ownedCryptoId, _, _, _, _, _): - return ownedCryptoId - case .registerDeviceUid(let ownedCryptoId, _, _): - return ownedCryptoId - } - } public var currentDeviceUID: UID { switch self { - case .remote(_, let currentDeviceUID, _, _, _, _): + case .registerDeviceUid(ownedCryptoId: _, currentDeviceUID: let currentDeviceUID, commonParameters: _, optionalParameter: _): return currentDeviceUID - case .registerDeviceUid(_, let currentDeviceUID, _): + case .remote(ownedCryptoId: _, currentDeviceUID: let currentDeviceUID, commonParameters: _, optionalParameter: _, remoteTypeParameters: _): return currentDeviceUID } } + - public var kickOtherDevices: Bool { + public var optionalParameter: OptionalParameter { switch self { - case .remote(_, _, _, _, _, let parameters): - return parameters.kickOtherDevices - case .registerDeviceUid(_, _, let parameters): - return parameters.kickOtherDevices + case .registerDeviceUid(ownedCryptoId: _, currentDeviceUID: _, commonParameters: _, optionalParameter: let optionalParameter): + return optionalParameter + case .remote(ownedCryptoId: _, currentDeviceUID: _, commonParameters: _, optionalParameter: let optionalParameter, remoteTypeParameters: _): + return optionalParameter } } + - public func hasSameType(than other: ObvPushNotificationType) -> Bool { - return self.byteId == other.byteId + public var commonParameters: CommonParameters { + switch self { + case .registerDeviceUid(ownedCryptoId: _, currentDeviceUID: _, commonParameters: let commonParameters, optionalParameter: _): + return commonParameters + case .remote(ownedCryptoId: _, currentDeviceUID: _, commonParameters: let commonParameters, optionalParameter: _, remoteTypeParameters: _): + return commonParameters + } } - public static func == (lhs: ObvPushNotificationType, rhs: ObvPushNotificationType) -> Bool { - switch lhs { - case .remote(ownedCryptoId: let ownedCryptoId, currentDeviceUID: let currentDeviceUID, pushToken: let deviceToken, voipToken: let voipToken, maskingUID: let maskingUID, parameters: let parameters): - switch rhs { - case .remote(ownedCryptoId: let otherOwnedCryptoId, currentDeviceUID: let otherCurrentDeviceUID, pushToken: let otherDeviceToken, voipToken: let otherVoipToken, maskingUID: let otherMaskingUID, parameters: let otherParameters): - return ownedCryptoId == otherOwnedCryptoId && currentDeviceUID == otherCurrentDeviceUID && deviceToken == otherDeviceToken && voipToken == otherVoipToken && maskingUID == otherMaskingUID && parameters == otherParameters - default: - return false - } - case .registerDeviceUid(ownedCryptoId: let ownedCryptoId, currentDeviceUID: let currentDeviceUID, parameters: let parameters): - switch rhs { - case .registerDeviceUid(ownedCryptoId: let otherOwnedCryptoId, currentDeviceUID: let otherCurrentDeviceUID, parameters: let otherParameters): - return ownedCryptoId == otherOwnedCryptoId && currentDeviceUID == otherCurrentDeviceUID && parameters == otherParameters - default: - return false - } + public var remoteTypeParameters: RemoteTypeParameters? { + switch self { + case .registerDeviceUid: + return nil + case .remote(ownedCryptoId: _, currentDeviceUID: _, commonParameters: _, optionalParameter: _, remoteTypeParameters: let remoteTypeParameters): + return remoteTypeParameters } } - - public func withUpdatedKeycloakPushTopics(_ newKeycloakPushTopics: Set) -> ObvPushNotificationType { + + public var ownedCryptoId: ObvCryptoIdentity { switch self { - case .remote(let ownedCryptoId, let currentDeviceUID, let pushToken, let voipToken, let maskingUID, let parameters): - return .remote( - ownedCryptoId: ownedCryptoId, - currentDeviceUID: currentDeviceUID, - pushToken: pushToken, - voipToken: voipToken, - maskingUID: maskingUID, - parameters: parameters.withUpdatedKeycloakPushTopics(newKeycloakPushTopics)) - case .registerDeviceUid(let ownedCryptoId, let currentDeviceUID, let parameters): - return .registerDeviceUid( - ownedCryptoId: ownedCryptoId, - currentDeviceUID: currentDeviceUID, - parameters: parameters.withUpdatedKeycloakPushTopics(newKeycloakPushTopics)) + case .registerDeviceUid(ownedCryptoId: let ownedCryptoId, currentDeviceUID: _, commonParameters: _, optionalParameter: _): + return ownedCryptoId + case .remote(ownedCryptoId: let ownedCryptoId, currentDeviceUID: _, commonParameters: _, optionalParameter: _, remoteTypeParameters: _): + return ownedCryptoId } } + +// public var ownedCryptoId: ObvCryptoIdentity { +// switch self { +// case .remote(let ownedCryptoId, _, _, _, _, _): +// return ownedCryptoId +// case .registerDeviceUid(let ownedCryptoId, _, _): +// return ownedCryptoId +// } +// } +// +// public var currentDeviceUID: UID { +// switch self { +// case .remote(_, let currentDeviceUID, _, _, _, _): +// return currentDeviceUID +// case .registerDeviceUid(_, let currentDeviceUID, _): +// return currentDeviceUID +// } +// } +// +// +// public var parameters: ObvPushNotificationParameters { +// switch self { +// case .remote(_, _, _, _, _, let parameters): +// return parameters +// case .registerDeviceUid(_, _, let parameters): +// return parameters +// } +// } + -} - - -// MARK: - CustomDebugStringConvertible - -public extension ObvPushNotificationType { - - var debugDescription: String { - switch self { - case .remote(ownedCryptoId: let ownedCryptoId, currentDeviceUID: let currentDeviceUID, pushToken: let pushToken, voipToken: let voipToken, maskingUID: let maskingUID, parameters: let parameters): - return "ObvPushNotificationType" - case .registerDeviceUid(ownedCryptoId: let ownedCryptoId, currentDeviceUID: let currentDeviceUID, parameters: let parameters): - return "ObvPushNotificationType" - } - } +// public func hasSameType(than other: ObvPushNotificationType) -> Bool { +// return self.byteId == other.byteId +// } +// +// +// public static func == (lhs: ObvPushNotificationType, rhs: ObvPushNotificationType) -> Bool { +// switch lhs { +// case .remote(ownedCryptoId: let ownedCryptoId, currentDeviceUID: let currentDeviceUID, pushToken: let deviceToken, voipToken: let voipToken, maskingUID: let maskingUID, parameters: let parameters): +// switch rhs { +// case .remote(ownedCryptoId: let otherOwnedCryptoId, currentDeviceUID: let otherCurrentDeviceUID, pushToken: let otherDeviceToken, voipToken: let otherVoipToken, maskingUID: let otherMaskingUID, parameters: let otherParameters): +// return ownedCryptoId == otherOwnedCryptoId && currentDeviceUID == otherCurrentDeviceUID && deviceToken == otherDeviceToken && voipToken == otherVoipToken && maskingUID == otherMaskingUID && parameters == otherParameters +// default: +// return false +// } +// case .registerDeviceUid(ownedCryptoId: let ownedCryptoId, currentDeviceUID: let currentDeviceUID, parameters: let parameters): +// switch rhs { +// case .registerDeviceUid(ownedCryptoId: let otherOwnedCryptoId, currentDeviceUID: let otherCurrentDeviceUID, parameters: let otherParameters): +// return ownedCryptoId == otherOwnedCryptoId && currentDeviceUID == otherCurrentDeviceUID && parameters == otherParameters +// default: +// return false +// } +// } +// } + +// public func withUpdatedKeycloakPushTopics(_ newKeycloakPushTopics: Set) -> ObvPushNotificationType { +// switch self { +// case .remote(let ownedCryptoId, let currentDeviceUID, let pushToken, let voipToken, let maskingUID, let parameters): +// return .remote( +// ownedCryptoId: ownedCryptoId, +// currentDeviceUID: currentDeviceUID, +// pushToken: pushToken, +// voipToken: voipToken, +// maskingUID: maskingUID, +// parameters: parameters.withUpdatedKeycloakPushTopics(newKeycloakPushTopics)) +// case .registerDeviceUid(let ownedCryptoId, let currentDeviceUID, let parameters): +// return .registerDeviceUid( +// ownedCryptoId: ownedCryptoId, +// currentDeviceUID: currentDeviceUID, +// parameters: parameters.withUpdatedKeycloakPushTopics(newKeycloakPushTopics)) +// } +// } +// +// public func withForcedRegister() -> ObvPushNotificationType { +// switch self { +// case .remote(let ownedCryptoId, let currentDeviceUID, let pushToken, let voipToken, let maskingUID, let parameters): +// return .remote( +// ownedCryptoId: ownedCryptoId, +// currentDeviceUID: currentDeviceUID, +// pushToken: pushToken, +// voipToken: voipToken, +// maskingUID: maskingUID, +// parameters: parameters.withForcedRegister()) +// case .registerDeviceUid(let ownedCryptoId, let currentDeviceUID, let parameters): +// return .registerDeviceUid( +// ownedCryptoId: ownedCryptoId, +// currentDeviceUID: currentDeviceUID, +// parameters: parameters.withForcedRegister()) +// } +// } + } -public struct ObvPushNotificationParameters: Equatable, CustomDebugStringConvertible { - - public let kickOtherDevices: Bool - public let useMultiDevice: Bool - public let keycloakPushTopics: Set +// MARK: - CustomDebugStringConvertible - public init(kickOtherDevices: Bool, useMultiDevice: Bool, keycloakPushTopics: Set) { - self.kickOtherDevices = kickOtherDevices - self.useMultiDevice = useMultiDevice - self.keycloakPushTopics = keycloakPushTopics - } +//public extension ObvPushNotificationType { +// +// var debugDescription: String { +// switch self { +// case .remote(ownedCryptoId: let ownedCryptoId, currentDeviceUID: let currentDeviceUID, pushToken: let pushToken, voipToken: let voipToken, maskingUID: let maskingUID, parameters: let parameters): +// return "ObvPushNotificationType" +// case .registerDeviceUid(ownedCryptoId: let ownedCryptoId, currentDeviceUID: let currentDeviceUID, parameters: let parameters): +// return "ObvPushNotificationType" +// } +// } +// +//} - public var debugDescription: String { - return "kickOtherDevices: \(kickOtherDevices), useMultiDevice: \(useMultiDevice), keycloakPushTopics: \(keycloakPushTopics.joined(separator: ", "))" - } - - func withUpdatedKeycloakPushTopics(_ newKeycloakPushTopics: Set) -> ObvPushNotificationParameters { - return ObvPushNotificationParameters(kickOtherDevices: kickOtherDevices, useMultiDevice: useMultiDevice, keycloakPushTopics: newKeycloakPushTopics) - } - -} +//public struct ObvPushNotificationParameters: Hashable, Equatable, CustomDebugStringConvertible { +// +// public let reactivateCurrentDevice: Bool +// public let replacedDeviceUid: UID? +// public let keycloakPushTopics: Set +// public let encryptedDeviceNameForFirstRegistration: EncryptedData +// public let forceRegister: Bool +// +// public init(reactivateCurrentDevice: Bool, replacedDeviceUid: UID?, keycloakPushTopics: Set, encryptedDeviceNameForFirstRegistration: EncryptedData, forceRegister: Bool) { +// self.reactivateCurrentDevice = reactivateCurrentDevice +// self.replacedDeviceUid = replacedDeviceUid +// self.keycloakPushTopics = keycloakPushTopics +// self.encryptedDeviceNameForFirstRegistration = encryptedDeviceNameForFirstRegistration +// self.forceRegister = forceRegister +// } +// +// +// public var debugDescription: String { +// return "reactivateCurrentDevice: \(reactivateCurrentDevice), keycloakPushTopics: \(keycloakPushTopics.joined(separator: ", "))" +// } +// +// func withUpdatedKeycloakPushTopics(_ newKeycloakPushTopics: Set) -> ObvPushNotificationParameters { +// return ObvPushNotificationParameters(reactivateCurrentDevice: reactivateCurrentDevice, replacedDeviceUid: replacedDeviceUid, keycloakPushTopics: newKeycloakPushTopics, encryptedDeviceNameForFirstRegistration: encryptedDeviceNameForFirstRegistration, forceRegister: forceRegister) +// } +// +// func withForcedRegister() -> ObvPushNotificationParameters { +// return ObvPushNotificationParameters(reactivateCurrentDevice: reactivateCurrentDevice, replacedDeviceUid: replacedDeviceUid, keycloakPushTopics: keycloakPushTopics, encryptedDeviceNameForFirstRegistration: encryptedDeviceNameForFirstRegistration, forceRegister: true) +// } +// +//} diff --git a/Modules/OlvidUI/ObvUI/ObvUI/en.lproj/Localizable.strings b/Engine/ObvTypes/ObvTypes/ObvRegisterApiKeyResult.swift similarity index 83% rename from Modules/OlvidUI/ObvUI/ObvUI/en.lproj/Localizable.strings rename to Engine/ObvTypes/ObvTypes/ObvRegisterApiKeyResult.swift index 7566abb3..9950c620 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/en.lproj/Localizable.strings +++ b/Engine/ObvTypes/ObvTypes/ObvRegisterApiKeyResult.swift @@ -17,7 +17,11 @@ * along with Olvid. If not, see . */ +import Foundation -"DISCUSSIONS_FILTER_CELL_PICKER_TEXT" = "Filter discussions"; -"DISCUSSIONS_LIST_SELECTION_PLACEHOLDER_CELL" = "Select one or more discussions"; +public enum ObvRegisterApiKeyResult { + case success + case failed + case invalidAPIKey +} diff --git a/Engine/ObvTypes/ObvTypes/ObvSyncAtom.swift b/Engine/ObvTypes/ObvTypes/ObvSyncAtom.swift new file mode 100644 index 00000000..eee88716 --- /dev/null +++ b/Engine/ObvTypes/ObvTypes/ObvSyncAtom.swift @@ -0,0 +1,517 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder +import ObvCrypto + + +public enum ObvSyncAtom: ObvCodable, Equatable, CustomDebugStringConvertible { + + case contactNickname(contactCryptoId: ObvCryptoId, contactNickname: String?) + case groupV1Nickname(groupOwner: ObvCryptoId, groupUid: UID, groupNickname: String?) + case groupV2Nickname(groupIdentifier: Data, groupNickname: String?) + case contactPersonalNote(contactCryptoId: ObvCryptoId, note: String?) + case groupV1PersonalNote(groupOwner: ObvCryptoId, groupUid: UID, note: String?) + case groupV2PersonalNote(groupIdentifier: Data, note: String?) + case ownProfileNickname(nickname: String?) + case contactCustomHue(contactCryptoId: ObvCryptoId, customHue: Int?) // Not implemented under iOS + case contactSendReadReceipt(contactCryptoId: ObvCryptoId, doSendReadReceipt: Bool?) + case groupV1ReadReceipt(groupOwner: ObvCryptoId, groupUid: UID, doSendReadReceipt: Bool?) + case groupV2ReadReceipt(groupIdentifier: Data, doSendReadReceipt: Bool?) + case pinnedDiscussions(discussionIdentifiers: [DiscussionIdentifier], ordered: Bool) + case trustContactDetails(contactCryptoId: ObvCryptoId, serializedIdentityDetailsElements: Data) + case trustGroupV1Details(groupOwner: ObvCryptoId, groupUid: UID, serializedGroupDetailsElements: Data) + case trustGroupV2Details(groupIdentifier: Data, version: Int) + case settingDefaultSendReadReceipts(sendReadReceipt: Bool) + case settingAutoJoinGroups(category: AutoJoinGroupsCategory) + + public enum AutoJoinGroupsCategory: String, ObvCodable { + case everyone = "everyone" + case contacts = "contacts" + case nobody = "nobody" + public func obvEncode() -> ObvEncoded { + return self.rawValue.obvEncode() + } + public init?(_ obvEncoded: ObvEncoded) { + guard let rawValue: String = try? obvEncoded.obvDecode(), + let value = AutoJoinGroupsCategory(rawValue: rawValue) else { assertionFailure(); return nil } + self = value + } + } + + /// This enum is used in certain `ObvSyncAtom` (well, for now, only in the pinnedDiscussions atom) + public enum DiscussionIdentifier: Equatable, Hashable, ObvCodable { + + case oneToOne(contactCryptoId: ObvCryptoId) + case groupV1(groupIdentifier: GroupV1Identifier) + case groupV2(groupIdentifier: GroupV2Identifier) + + private enum DiscussionIdentifierRawValue: Int, CaseIterable, ObvCodable { + + case oneToOne = 0 + case groupV1 = 1 + case groupV2 = 2 + + init?(_ obvEncoded: ObvEncoder.ObvEncoded) { + guard let rawValue: Int = try? obvEncoded.obvDecode() else { assertionFailure(); return nil } + guard let value = DiscussionIdentifierRawValue(rawValue: rawValue) else { assertionFailure(); return nil } + self = value + } + + func obvEncode() -> ObvEncoder.ObvEncoded { + self.rawValue.obvEncode() + } + + } + + public func obvEncode() -> ObvEncoded { + switch self { + case .oneToOne(contactCryptoId: let contactCryptoId): + return [DiscussionIdentifierRawValue.oneToOne, contactCryptoId].obvEncode() + case .groupV1(groupIdentifier: let groupIdentifier): + return [DiscussionIdentifierRawValue.groupV1, groupIdentifier.groupOwner, groupIdentifier.groupUid].obvEncode() + case .groupV2(groupIdentifier: let groupIdentifier): + return [DiscussionIdentifierRawValue.groupV2, groupIdentifier].obvEncode() + } + } + + public init?(_ obvEncoded: ObvEncoded) { + guard let listOfEncoded = [ObvEncoded](obvEncoded) else { assertionFailure(); return nil } + guard let encodedRawValue = listOfEncoded.first else { assertionFailure(); return nil } + let remainingEncodedElements = [ObvEncoded](listOfEncoded.dropFirst()) + guard let discussionIdentifierRawValue = DiscussionIdentifierRawValue(encodedRawValue) else { assertionFailure(); return nil } + do { + switch discussionIdentifierRawValue { + case .oneToOne: + guard remainingEncodedElements.count == 1 else { assertionFailure(); return nil } + let contactCryptoId: ObvCryptoId = try remainingEncodedElements.obvDecode() + self = .oneToOne(contactCryptoId: contactCryptoId) + case .groupV1: + guard remainingEncodedElements.count == 2 else { assertionFailure(); return nil } + let (groupOwner, groupUid): (ObvCryptoId, UID) = try remainingEncodedElements.obvDecode() + self = .groupV1(groupIdentifier: GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner)) + case .groupV2: + guard remainingEncodedElements.count == 1 else { assertionFailure(); return nil } + let groupIdentifier: Data = try remainingEncodedElements.obvDecode() + self = .groupV2(groupIdentifier: groupIdentifier) + } + } catch { + assertionFailure() + return nil + } + } + + } + + public func obvEncode() -> ObvEncoded { + switch self { + case .contactNickname(let contactCryptoId, let contactNickname): + if let contactNickname { + return [ObvSyncAtomRawValue.contactNickname, contactCryptoId, contactNickname].obvEncode() + } else { + return [ObvSyncAtomRawValue.contactNickname, contactCryptoId].obvEncode() + } + case .groupV1Nickname(let groupOwner, let groupUid, let groupNickname): + if let groupNickname { + return [ObvSyncAtomRawValue.groupV1Nickname, groupOwner, groupUid, groupNickname].obvEncode() + } else { + return [ObvSyncAtomRawValue.groupV1Nickname, groupOwner, groupUid].obvEncode() + } + case .groupV2Nickname(let groupIdentifier, let groupNickname): + if let groupNickname { + return [ObvSyncAtomRawValue.groupV2Nickname, groupIdentifier, groupNickname].obvEncode() + } else { + return [ObvSyncAtomRawValue.groupV2Nickname, groupIdentifier].obvEncode() + } + case .contactPersonalNote(let contactCryptoId, let note): + if let note { + return [ObvSyncAtomRawValue.contactPersonalNote, contactCryptoId, note].obvEncode() + } else { + return [ObvSyncAtomRawValue.contactPersonalNote, contactCryptoId].obvEncode() + } + case .groupV1PersonalNote(let groupOwner, let groupUid, let note): + if let note { + return [ObvSyncAtomRawValue.groupV1PersonalNote, groupOwner, groupUid, note].obvEncode() + } else { + return [ObvSyncAtomRawValue.groupV1PersonalNote, groupOwner, groupUid].obvEncode() + } + case .groupV2PersonalNote(let groupIdentifier, let note): + if let note { + return [ObvSyncAtomRawValue.groupV2PersonalNote, groupIdentifier, note].obvEncode() + } else { + return [ObvSyncAtomRawValue.groupV2PersonalNote, groupIdentifier].obvEncode() + } + case .ownProfileNickname(let nickname): + if let nickname, !nickname.isEmpty { + return [ObvSyncAtomRawValue.ownProfileNickname, nickname].obvEncode() + } else { + return [ObvSyncAtomRawValue.ownProfileNickname].obvEncode() + } + case .contactCustomHue(let contactCryptoId, let customHue): + if let customHue { + return [ObvSyncAtomRawValue.contactCustomHue, contactCryptoId, customHue].obvEncode() + } else { + return [ObvSyncAtomRawValue.contactCustomHue, contactCryptoId].obvEncode() + } + case .contactSendReadReceipt(let contactCryptoId, let doSendReadReceipt): + if let doSendReadReceipt { + return [ObvSyncAtomRawValue.contactSendReadReceipt, contactCryptoId, doSendReadReceipt].obvEncode() + } else { + return [ObvSyncAtomRawValue.contactSendReadReceipt, contactCryptoId].obvEncode() + } + case .groupV1ReadReceipt(let groupOwner, let groupUid, let doSendReadReceipt): + if let doSendReadReceipt { + return [ObvSyncAtomRawValue.groupV1ReadReceipt, groupOwner, groupUid, doSendReadReceipt].obvEncode() + } else { + return [ObvSyncAtomRawValue.groupV1ReadReceipt, groupOwner, groupUid].obvEncode() + } + case .groupV2ReadReceipt(let groupIdentifier, let doSendReadReceipt): + if let doSendReadReceipt { + return [ObvSyncAtomRawValue.groupV2ReadReceipt, groupIdentifier, doSendReadReceipt].obvEncode() + } else { + return [ObvSyncAtomRawValue.groupV2ReadReceipt, groupIdentifier].obvEncode() + } + case .pinnedDiscussions(let discussionIdentifiers, let ordered): + let encodedDiscussionIdentifiers: [ObvEncoded] = discussionIdentifiers.map { $0.obvEncode() } + return [ObvSyncAtomRawValue.pinnedDiscussions.obvEncode(), encodedDiscussionIdentifiers.obvEncode(), ordered.obvEncode()].obvEncode() + case .trustContactDetails(contactCryptoId: let contactCryptoId, serializedIdentityDetailsElements: let serializedIdentityDetailsElements): + return [ObvSyncAtomRawValue.trustContactDetails, contactCryptoId, serializedIdentityDetailsElements].obvEncode() + case .trustGroupV1Details(let groupOwner, let groupUid, let serializedGroupDetailsElements): + return [ObvSyncAtomRawValue.trustGroupV1Details, groupOwner, groupUid, serializedGroupDetailsElements].obvEncode() + case .trustGroupV2Details(let groupIdentifier, let version): + return [ObvSyncAtomRawValue.trustGroupV2Details, groupIdentifier, version].obvEncode() + case .settingDefaultSendReadReceipts(let sendReadReceipt): + return [ObvSyncAtomRawValue.settingDefaultSendReadReceipts, sendReadReceipt].obvEncode() + case .settingAutoJoinGroups(let category): + return [ObvSyncAtomRawValue.settingAutoJoinGroups, category].obvEncode() + } + } + + + public init?(_ obvEncoded: ObvEncoded) { + guard let listOfEncoded = [ObvEncoded](obvEncoded) else { assertionFailure(); return nil } + guard let encodedRawValue = listOfEncoded.first else { assertionFailure(); return nil } + let remainingEncodedElements = [ObvEncoded](listOfEncoded.dropFirst()) + guard let syncAtomRawValue = ObvSyncAtomRawValue(encodedRawValue) else { assertionFailure(); return nil} + do { + switch syncAtomRawValue { + case .contactNickname: + switch remainingEncodedElements.count { + case 1: + let contactCryptoId: ObvCryptoId = try remainingEncodedElements.obvDecode() + self = .contactNickname(contactCryptoId: contactCryptoId, contactNickname: nil) + case 2: + let (contactCryptoId, contactNickname): (ObvCryptoId, String) = try remainingEncodedElements.obvDecode() + self = .contactNickname(contactCryptoId: contactCryptoId, contactNickname: contactNickname) + default: + assertionFailure() + return nil + } + case .groupV1Nickname: + switch remainingEncodedElements.count { + case 2: + let (groupOwner, groupUid): (ObvCryptoId, UID) = try remainingEncodedElements.obvDecode() + self = .groupV1Nickname(groupOwner: groupOwner, groupUid: groupUid, groupNickname: nil) + case 3: + let (groupOwner, groupUid, groupNickname): (ObvCryptoId, UID, String) = try remainingEncodedElements.obvDecode() + self = .groupV1Nickname(groupOwner: groupOwner, groupUid: groupUid, groupNickname: groupNickname) + default: + assertionFailure() + return nil + } + case .groupV2Nickname: + switch remainingEncodedElements.count { + case 1: + let groupIdentifier: Data = try remainingEncodedElements.obvDecode() + self = .groupV2Nickname(groupIdentifier: groupIdentifier, groupNickname: nil) + case 2: + let (groupIdentifier, groupNickname): (Data, String) = try remainingEncodedElements.obvDecode() + self = .groupV2Nickname(groupIdentifier: groupIdentifier, groupNickname: groupNickname) + default: + assertionFailure() + return nil + } + case .contactPersonalNote: + switch remainingEncodedElements.count { + case 1: + let contactCryptoId: ObvCryptoId = try remainingEncodedElements.obvDecode() + self = .contactPersonalNote(contactCryptoId: contactCryptoId, note: nil) + case 2: + let (contactCryptoId, note): (ObvCryptoId, String?) = try remainingEncodedElements.obvDecode() + self = .contactPersonalNote(contactCryptoId: contactCryptoId, note: note) + default: + assertionFailure() + return nil + } + case .groupV1PersonalNote: + switch remainingEncodedElements.count { + case 2: + let (groupOwner, groupUid): (ObvCryptoId, UID) = try remainingEncodedElements.obvDecode() + self = .groupV1PersonalNote(groupOwner: groupOwner, groupUid: groupUid, note: nil) + case 3: + let (groupOwner, groupUid, note): (ObvCryptoId, UID, String) = try remainingEncodedElements.obvDecode() + self = .groupV1PersonalNote(groupOwner: groupOwner, groupUid: groupUid, note: note) + default: + assertionFailure() + return nil + } + case .groupV2PersonalNote: + switch remainingEncodedElements.count { + case 1: + let groupIdentifier: Data = try remainingEncodedElements.obvDecode() + self = .groupV2PersonalNote(groupIdentifier: groupIdentifier, note: nil) + case 2: + let (groupIdentifier, note): (Data, String) = try remainingEncodedElements.obvDecode() + self = .groupV2PersonalNote(groupIdentifier: groupIdentifier, note: note) + default: + assertionFailure() + return nil + } + case .ownProfileNickname: + switch remainingEncodedElements.count { + case 0: + self = .ownProfileNickname(nickname: nil) + case 1: + let nickname: String = try remainingEncodedElements.obvDecode() + self = .ownProfileNickname(nickname: nickname) + default: + assertionFailure() + return nil + } + case .contactCustomHue: + switch remainingEncodedElements.count { + case 1: + let contactCryptoId: ObvCryptoId = try remainingEncodedElements.obvDecode() + self = .contactCustomHue(contactCryptoId: contactCryptoId, customHue: nil) + case 2: + let (contactCryptoId, customHue): (ObvCryptoId, Int) = try remainingEncodedElements.obvDecode() + self = .contactCustomHue(contactCryptoId: contactCryptoId, customHue: customHue) + default: + assertionFailure() + return nil + } + case .contactSendReadReceipt: + switch remainingEncodedElements.count { + case 1: + let contactCryptoId: ObvCryptoId = try remainingEncodedElements.obvDecode() + self = .contactSendReadReceipt(contactCryptoId: contactCryptoId, doSendReadReceipt: nil) + case 2: + let (contactCryptoId, doSendReadReceipt): (ObvCryptoId, Bool) = try remainingEncodedElements.obvDecode() + self = .contactSendReadReceipt(contactCryptoId: contactCryptoId, doSendReadReceipt: doSendReadReceipt) + default: + assertionFailure() + return nil + } + case .groupV1ReadReceipt: + switch remainingEncodedElements.count { + case 2: + let (groupOwner, groupUid): (ObvCryptoId, UID) = try remainingEncodedElements.obvDecode() + self = .groupV1ReadReceipt(groupOwner: groupOwner, groupUid: groupUid, doSendReadReceipt: nil) + case 3: + let (groupOwner, groupUid, doSendReadReceipt): (ObvCryptoId, UID, Bool) = try remainingEncodedElements.obvDecode() + self = .groupV1ReadReceipt(groupOwner: groupOwner, groupUid: groupUid, doSendReadReceipt: doSendReadReceipt) + default: + assertionFailure() + return nil + } + case .groupV2ReadReceipt: + switch remainingEncodedElements.count { + case 1: + let groupIdentifier: Data = try remainingEncodedElements.obvDecode() + self = .groupV2ReadReceipt(groupIdentifier: groupIdentifier, doSendReadReceipt: nil) + case 2: + let (groupIdentifier, doSendReadReceipt): (Data, Bool) = try remainingEncodedElements.obvDecode() + self = .groupV2ReadReceipt(groupIdentifier: groupIdentifier, doSendReadReceipt: doSendReadReceipt) + default: + assertionFailure() + return nil + } + case .pinnedDiscussions: + switch remainingEncodedElements.count { + case 2: + guard let encodedDiscussionIdentifiers = [ObvEncoded](remainingEncodedElements[0]) else { assertionFailure(); return nil } + let discussionIdentifiers = encodedDiscussionIdentifiers.compactMap { DiscussionIdentifier($0) } + guard let ordered = Bool(remainingEncodedElements[1]) else { assertionFailure(); return nil } + self = .pinnedDiscussions(discussionIdentifiers: discussionIdentifiers, ordered: ordered) + default: + assertionFailure() + return nil + } + case .trustContactDetails: + switch remainingEncodedElements.count { + case 2: + let (contactCryptoId, serializedIdentityDetailsElements): (ObvCryptoId, Data) = try remainingEncodedElements.obvDecode() + self = .trustContactDetails(contactCryptoId: contactCryptoId, serializedIdentityDetailsElements: serializedIdentityDetailsElements) + default: + assertionFailure() + return nil + } + case .trustGroupV1Details: + switch remainingEncodedElements.count { + case 3: + let (groupOwner, groupUid, serializedGroupDetailsElements): (ObvCryptoId, UID, Data) = try remainingEncodedElements.obvDecode() + self = .trustGroupV1Details(groupOwner: groupOwner, groupUid: groupUid, serializedGroupDetailsElements: serializedGroupDetailsElements) + default: + assertionFailure() + return nil + } + case .trustGroupV2Details: + switch remainingEncodedElements.count { + case 2: + let (groupIdentifier, version): (Data, Int) = try remainingEncodedElements.obvDecode() + self = .trustGroupV2Details(groupIdentifier: groupIdentifier, version: version) + default: + assertionFailure() + return nil + } + case .settingDefaultSendReadReceipts: + switch remainingEncodedElements.count { + case 1: + let sendReadReceipt: Bool = try remainingEncodedElements.obvDecode() + self = .settingDefaultSendReadReceipts(sendReadReceipt: sendReadReceipt) + default: + assertionFailure() + return nil + } + case .settingAutoJoinGroups: + switch remainingEncodedElements.count { + case 1: + let category: AutoJoinGroupsCategory = try remainingEncodedElements.obvDecode() + self = .settingAutoJoinGroups(category: category) + default: + assertionFailure() + return nil + } + } + } catch { + assertionFailure() + return nil + } + } + + + public enum SyncAtomRecipient { + case app + case identityManager + case notImplementedOniOS + } + + public var recipient: SyncAtomRecipient { + switch self { + case .contactNickname, + .groupV1Nickname, + .groupV2Nickname, + .contactPersonalNote, + .groupV1PersonalNote, + .groupV2PersonalNote, + .ownProfileNickname, + .contactSendReadReceipt, + .groupV1ReadReceipt, + .groupV2ReadReceipt, + .settingDefaultSendReadReceipts, + .settingAutoJoinGroups, + .pinnedDiscussions: + return .app + case .trustContactDetails, + .trustGroupV1Details, + .trustGroupV2Details: + return .identityManager + case .contactCustomHue: + return .notImplementedOniOS + } + } + + public var debugDescription: String { + let prefix = "ObvSyncAtom" + let suffix: String + switch self { + case .contactNickname: + suffix = "contactNickname" + case .groupV1Nickname: + suffix = "groupV1Nickname" + case .groupV2Nickname: + suffix = "groupV2Nickname" + case .contactPersonalNote: + suffix = "contactPersonalNote" + case .groupV1PersonalNote: + suffix = "groupV1PersonalNote" + case .groupV2PersonalNote: + suffix = "groupV2PersonalNote" + case .ownProfileNickname: + suffix = "ownProfileNickname" + case .contactCustomHue: + suffix = "contactCustomHue" + case .contactSendReadReceipt: + suffix = "contactSendReadReceipt" + case .groupV1ReadReceipt: + suffix = "groupV1ReadReceipt" + case .groupV2ReadReceipt: + suffix = "groupV2ReadReceipt" + case .trustContactDetails: + suffix = "trustContactDetails" + case .trustGroupV1Details: + suffix = "trustGroupV1Details" + case .trustGroupV2Details: + suffix = "trustGroupV2Details" + case .pinnedDiscussions: + suffix = "pinnedDiscussions" + case .settingDefaultSendReadReceipts: + suffix = "settingDefaultSendReadReceipts" + case .settingAutoJoinGroups: + suffix = "settingAutoJoinGroups" + } + return [prefix, suffix].joined(separator: ".") + } + +} + + + +private enum ObvSyncAtomRawValue: Int, CaseIterable, ObvCodable { + + case contactNickname = 0 + case groupV1Nickname = 1 + case groupV2Nickname = 2 + case contactPersonalNote = 3 + case groupV1PersonalNote = 4 + case groupV2PersonalNote = 5 + case ownProfileNickname = 6 + case contactCustomHue = 7 // Only available under Android + case contactSendReadReceipt = 8 + case groupV1ReadReceipt = 9 + case groupV2ReadReceipt = 10 + case pinnedDiscussions = 11 + case trustContactDetails = 12 + case trustGroupV1Details = 13 + case trustGroupV2Details = 14 + case settingDefaultSendReadReceipts = 15 + case settingAutoJoinGroups = 16 + + init?(_ obvEncoded: ObvEncoder.ObvEncoded) { + guard let rawValue: Int = try? obvEncoded.obvDecode() else { assertionFailure(); return nil } + guard let value = ObvSyncAtomRawValue(rawValue: rawValue) else { assertionFailure(); return nil } + self = value + } + + func obvEncode() -> ObvEncoder.ObvEncoded { + self.rawValue.obvEncode() + } + +} diff --git a/Engine/ObvEngine/ObvEngine/Types/ObvTurnCredentials.swift b/Engine/ObvTypes/ObvTypes/ObvTurnCredentials.swift similarity index 100% rename from Engine/ObvEngine/ObvEngine/Types/ObvTurnCredentials.swift rename to Engine/ObvTypes/ObvTypes/ObvTurnCredentials.swift diff --git a/Engine/ObvEngine/ObvEngine/Types/Identities/ObvURLIdentity.swift b/Engine/ObvTypes/ObvTypes/ObvURLIdentity.swift similarity index 96% rename from Engine/ObvEngine/ObvEngine/Types/Identities/ObvURLIdentity.swift rename to Engine/ObvTypes/ObvTypes/ObvURLIdentity.swift index 41bdfa3e..b68acc4d 100644 --- a/Engine/ObvEngine/ObvEngine/Types/Identities/ObvURLIdentity.swift +++ b/Engine/ObvTypes/ObvTypes/ObvURLIdentity.swift @@ -20,7 +20,6 @@ import Foundation import ObvCrypto import ObvEncoder -import ObvTypes public struct ObvURLIdentity { @@ -28,13 +27,13 @@ public struct ObvURLIdentity { public let cryptoId: ObvCryptoId public let fullDisplayName: String - init(cryptoId: ObvCryptoId, fullDisplayName: String) { + public init(cryptoId: ObvCryptoId, fullDisplayName: String) { self.cryptoId = cryptoId self.fullDisplayName = fullDisplayName } - init(cryptoIdentity: ObvCryptoIdentity, fullDisplayName: String) { + public init(cryptoIdentity: ObvCryptoIdentity, fullDisplayName: String) { self.init(cryptoId: ObvCryptoId.init(cryptoIdentity: cryptoIdentity), fullDisplayName: fullDisplayName) } diff --git a/Engine/ObvEngine/ObvEngine/Types/ObvAttachment.swift b/Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvAttachment.swift similarity index 52% rename from Engine/ObvEngine/ObvEngine/Types/ObvAttachment.swift rename to Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvAttachment.swift index 1a7956e7..2b80ed96 100644 --- a/Engine/ObvEngine/ObvEngine/Types/ObvAttachment.swift +++ b/Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvAttachment.swift @@ -19,8 +19,6 @@ import Foundation import CoreData -import ObvMetaManager -import ObvTypes import ObvCrypto import OlvidUtils @@ -44,12 +42,12 @@ public struct ObvAttachment: Hashable { } } - public let fromContactIdentity: ObvContactIdentity + public let fromContactIdentity: ObvContactIdentifier public let metadata: Data public let totalUnitCount: Int64 public let url: URL public let status: Status - internal let attachmentId: AttachmentIdentifier + public let attachmentId: ObvAttachmentIdentifier public let messageUploadTimestampFromServer: Date public var messageIdentifier: Data { @@ -59,82 +57,43 @@ public struct ObvAttachment: Hashable { return attachmentId.attachmentNumber } - var toIdentity: ObvOwnedIdentity { - return fromContactIdentity.ownedIdentity - } - - public var ownedCryptoId: ObvCryptoId { - return fromContactIdentity.ownedIdentity.cryptoId - } - public var downloadPaused: Bool { return self.status == .paused } - - - private static func makeError(message: String, code: Int = 0) -> Error { - NSError(domain: "ObvAttachment", code: code, userInfo: [NSLocalizedFailureReasonErrorKey: message]) - } - - init(attachmentId: AttachmentIdentifier, networkFetchDelegate: ObvNetworkFetchDelegate, identityDelegate: ObvIdentityDelegate, within obvContext: ObvContext) throws { - guard let networkReceivedAttachment = networkFetchDelegate.getAttachment(withId: attachmentId, within: obvContext) else { - throw Self.makeError(message: "Coult not get attachment") - } - try self.init(networkReceivedAttachment: networkReceivedAttachment, identityDelegate: identityDelegate, within: obvContext) - } - init(attachmentId: AttachmentIdentifier, fromContactIdentity: ObvContactIdentity, networkFetchDelegate: ObvNetworkFetchDelegate, within obvContext: ObvContext) throws { - guard let networkReceivedAttachment = networkFetchDelegate.getAttachment(withId: attachmentId, within: obvContext) else { - throw Self.makeError(message: "Coult not get attachment") - } + public init(fromContactIdentity: ObvContactIdentifier, metadata: Data, totalUnitCount: Int64, url: URL, status: Status, attachmentId: ObvAttachmentIdentifier, messageUploadTimestampFromServer: Date) { self.fromContactIdentity = fromContactIdentity - self.attachmentId = networkReceivedAttachment.attachmentId - metadata = networkReceivedAttachment.metadata - url = networkReceivedAttachment.url - status = networkReceivedAttachment.status.toObvAttachmentStatus - self.messageUploadTimestampFromServer = networkReceivedAttachment.messageUploadTimestampFromServer - self.totalUnitCount = networkReceivedAttachment.totalUnitCount - } - - private init(networkReceivedAttachment: ObvNetworkFetchReceivedAttachment, identityDelegate: ObvIdentityDelegate, within obvContext: ObvContext) throws { - - guard let obvContact = ObvContactIdentity(contactCryptoIdentity: networkReceivedAttachment.fromCryptoIdentity, - ownedCryptoIdentity: networkReceivedAttachment.attachmentId.messageId.ownedCryptoIdentity, - identityDelegate: identityDelegate, - within: obvContext) else { - throw Self.makeError(message: "Could not get ObvContactIdentity") - } - self.fromContactIdentity = obvContact - self.attachmentId = networkReceivedAttachment.attachmentId - metadata = networkReceivedAttachment.metadata - url = networkReceivedAttachment.url - status = networkReceivedAttachment.status.toObvAttachmentStatus - self.messageUploadTimestampFromServer = networkReceivedAttachment.messageUploadTimestampFromServer - self.totalUnitCount = networkReceivedAttachment.totalUnitCount + self.metadata = metadata + self.totalUnitCount = totalUnitCount + self.url = url + self.status = status + self.attachmentId = attachmentId + self.messageUploadTimestampFromServer = messageUploadTimestampFromServer } - public func hash(into hasher: inout Hasher) { hasher.combine(attachmentId) } -} - - -fileprivate extension ObvNetworkFetchReceivedAttachment.Status { - var toObvAttachmentStatus: ObvAttachment.Status { - switch self { - case .paused: return .paused - case .resumed: return .resumed - case .downloaded: return .downloaded - case .cancelledByServer: return .cancelledByServer - case .markedForDeletion: return .markedForDeletion + + public enum ObvError: Error { + case couldNotGetAttachment + case couldNotDecodeStatus + + var localizedDescription: String { + switch self { + case .couldNotGetAttachment: + return "Could not get attachment" + case .couldNotDecodeStatus: + return "Could not decode status" + } } } - + } + // MARK: - Codable extension ObvAttachment: Codable { @@ -166,16 +125,16 @@ extension ObvAttachment: Codable { public init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) - self.fromContactIdentity = try values.decode(ObvContactIdentity.self, forKey: .fromContactIdentity) + self.fromContactIdentity = try values.decode(ObvContactIdentifier.self, forKey: .fromContactIdentity) self.metadata = try values.decode(Data.self, forKey: .metadata) self.totalUnitCount = try values.decode(Int64.self, forKey: .progressTotalUnitCount) self.url = try values.decode(URL.self, forKey: .url) let rawStatus = try values.decode(Int.self, forKey: .status) guard let status = Status(rawValue: rawStatus) else { - throw Self.makeError(message: "Could not decode status") + throw ObvError.couldNotDecodeStatus } self.status = status - self.attachmentId = try values.decode(AttachmentIdentifier.self, forKey: .attachmentId) + self.attachmentId = try values.decode(ObvAttachmentIdentifier.self, forKey: .attachmentId) self.messageUploadTimestampFromServer = try values.decode(Date.self, forKey: .messageUploadTimestampFromServer) } diff --git a/Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvMessage.swift b/Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvMessage.swift new file mode 100644 index 00000000..ef87e367 --- /dev/null +++ b/Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvMessage.swift @@ -0,0 +1,103 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import ObvCrypto + + +public struct ObvMessage { + + public let fromContactIdentity: ObvContactIdentifier + public let messageId: ObvMessageIdentifier + public let attachments: [ObvAttachment] + public let expectedAttachmentsCount: Int + public let messageUploadTimestampFromServer: Date + public let downloadTimestampFromServer: Date + public let localDownloadTimestamp: Date + public let messagePayload: Data + public let extendedMessagePayload: Data? + + /// Legacy variable. Use `messageUID` instead. + public var messageIdentifierFromEngine: Data { + return messageId.uid.raw + } + + public var messageUID: UID { + return messageId.uid + } + + + public init(fromContactIdentity: ObvContactIdentifier, messageId: ObvMessageIdentifier, attachments: [ObvAttachment], expectedAttachmentsCount: Int, messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, localDownloadTimestamp: Date, messagePayload: Data, extendedMessagePayload: Data?) { + self.fromContactIdentity = fromContactIdentity + self.messageId = messageId + self.attachments = attachments + self.expectedAttachmentsCount = expectedAttachmentsCount + self.messageUploadTimestampFromServer = messageUploadTimestampFromServer + self.downloadTimestampFromServer = downloadTimestampFromServer + self.localDownloadTimestamp = localDownloadTimestamp + self.messagePayload = messagePayload + self.extendedMessagePayload = extendedMessagePayload + } + + + public enum ObvError: Error { + case fromIdentityIsEqualToOwnedIdentity + + var localizedDescription: String { + switch self { + case .fromIdentityIsEqualToOwnedIdentity: + return "From identity is equal to the owned identity" + } + } + } + +} + + +// MARK: - Codable + +extension ObvMessage: Codable { + + /// ObvMessage is codable so as to be able to transfer a message from the notification service to the main app. + /// This serialization should **not** be used within long term storage since we may change it regularly. + /// See also `ObvContactIdentity` and `ObvAttachment`. + + enum CodingKeys: String, CodingKey { + case fromContactIdentity = "from_contact_identity" + case messageId = "message_id" + case attachments = "attachments" + case messageUploadTimestampFromServer = "messageUploadTimestampFromServer" + case downloadTimestampFromServer = "downloadTimestampFromServer" + case messagePayload = "message_payload" + case localDownloadTimestamp = "localDownloadTimestamp" + case extendedMessagePayload = "extendedMessagePayload" + case expectedAttachmentsCount = "expectedAttachmentsCount" + } + + public func encodeToJson() throws -> Data { + let encoder = JSONEncoder() + return try encoder.encode(self) + } + + public static func decodeFromJson(data: Data) throws -> ObvMessage { + let decoder = JSONDecoder() + return try decoder.decode(ObvMessage.self, from: data) + } +} diff --git a/Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvOwnedAttachment.swift b/Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvOwnedAttachment.swift new file mode 100644 index 00000000..03bb671b --- /dev/null +++ b/Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvOwnedAttachment.swift @@ -0,0 +1,75 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils + + +/// An attachment sent by one of the other owned devices of an owned identity. +public struct ObvOwnedAttachment: Hashable { + + public let metadata: Data + public let totalUnitCount: Int64 + public let url: URL + public let status: ObvAttachment.Status + public let attachmentId: ObvAttachmentIdentifier + public let messageUploadTimestampFromServer: Date + + public var messageIdentifier: Data { + return attachmentId.messageId.uid.raw + } + public var number: Int { + return attachmentId.attachmentNumber + } + + public var ownedCryptoId: ObvCryptoId { + ObvCryptoId(cryptoIdentity: attachmentId.messageId.ownedCryptoIdentity) + } + + public var downloadPaused: Bool { + return self.status == .paused + } + + + public init(metadata: Data, totalUnitCount: Int64, url: URL, status: ObvAttachment.Status, attachmentId: ObvAttachmentIdentifier, messageUploadTimestampFromServer: Date) { + self.metadata = metadata + self.totalUnitCount = totalUnitCount + self.url = url + self.status = status + self.attachmentId = attachmentId + self.messageUploadTimestampFromServer = messageUploadTimestampFromServer + } + + + public func hash(into hasher: inout Hasher) { + hasher.combine(attachmentId) + } + + public enum ObvError: Error { + case couldNotGetAttachment + + var localizedDescription: String { + switch self { + case .couldNotGetAttachment: + return "Could not get attachment" + } + } + } + +} diff --git a/Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvOwnedMessage.swift b/Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvOwnedMessage.swift new file mode 100644 index 00000000..e17d3ba5 --- /dev/null +++ b/Engine/ObvTypes/ObvTypes/ReceivedMessagesAndAttachments/ObvOwnedMessage.swift @@ -0,0 +1,72 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import ObvCrypto + + +/// An application message sent by one of the other owned devices of an owned identity. +public struct ObvOwnedMessage { + + public let messageId: ObvMessageIdentifier + public let attachments: [ObvOwnedAttachment] + public let expectedAttachmentsCount: Int + public let messageUploadTimestampFromServer: Date + public let downloadTimestampFromServer: Date + public let localDownloadTimestamp: Date + public let messagePayload: Data + public let extendedMessagePayload: Data? + + /// Legacy variable. Use ``messageUID`` instead. + public var messageIdentifierFromEngine: Data { + return messageId.uid.raw + } + + public var messageUID: UID { + return messageId.uid + } + + public var ownedCryptoId: ObvCryptoId { + ObvCryptoId(cryptoIdentity: messageId.ownedCryptoIdentity) + } + + public init(messageId: ObvMessageIdentifier, attachments: [ObvOwnedAttachment], expectedAttachmentsCount: Int, messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, localDownloadTimestamp: Date, messagePayload: Data, extendedMessagePayload: Data?) { + self.messageId = messageId + self.attachments = attachments + self.expectedAttachmentsCount = expectedAttachmentsCount + self.messageUploadTimestampFromServer = messageUploadTimestampFromServer + self.downloadTimestampFromServer = downloadTimestampFromServer + self.localDownloadTimestamp = localDownloadTimestamp + self.messagePayload = messagePayload + self.extendedMessagePayload = extendedMessagePayload + } + + public enum ObvError: Error { + case fromIdentityIsDifferentFromTheOwnedIdentity + + var localizedDescription: String { + switch self { + case .fromIdentityIsDifferentFromTheOwnedIdentity: + return "From identity is different from the owned identity" + } + } + } + +} diff --git a/Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSnapshotable.swift b/Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSnapshotable.swift new file mode 100644 index 00000000..5f2f135d --- /dev/null +++ b/Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSnapshotable.swift @@ -0,0 +1,39 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvCrypto + +/// Equivalent of ObvBackupAndSyncDelegate in the Android code +/// See also `ObvBackupable` in `OlvidUtils` +public protocol ObvSnapshotable: AnyObject { + + func getSyncSnapshotNode(for ownedCryptoId: ObvCryptoId) throws -> any ObvSyncSnapshotNode + func serializeObvSyncSnapshotNode(_ syncSnapshotNode: any ObvSyncSnapshotNode) throws -> Data + func deserializeObvSyncSnapshotNode(_ serializedSyncSnapshotNode: Data) throws -> any ObvSyncSnapshotNode + +} + + +public protocol ObvAppSnapshotable: ObvSnapshotable { + + func syncEngineDatabaseThenUpdateAppDatabase(using syncSnapshotNode: any ObvSyncSnapshotNode) async throws + func requestServerToKeepDeviceActive(ownedCryptoId: ObvCryptoId, deviceUidToKeepActive: UID) async throws + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Protocols/Sound.swift b/Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSyncDiff.swift similarity index 80% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Protocols/Sound.swift rename to Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSyncDiff.swift index d8a159f8..8d54b105 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Protocols/Sound.swift +++ b/Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSyncDiff.swift @@ -18,11 +18,8 @@ */ import Foundation -import UIKit -public protocol Sound: Hashable { - var filename: String? { get } - var loops: Bool { get } - var feedback: UINotificationFeedbackGenerator.FeedbackType? { get } +public enum ObvSyncDiff: Hashable { + // TODO only used to notify the app, no need to be encodable as it will remain in memory } diff --git a/Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSyncSnapshot.swift b/Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSyncSnapshot.swift new file mode 100644 index 00000000..fac65031 --- /dev/null +++ b/Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSyncSnapshot.swift @@ -0,0 +1,138 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder + + +//public struct ObvSyncSnapshotAndVersion: ObvFailableCodable { +// public let version: Int +// public let syncSnapshot: ObvSyncSnapshot +// public init(version: Int, syncSnapshot: ObvSyncSnapshot) { +// self.version = version +// self.syncSnapshot = syncSnapshot +// } +// public func obvEncode() throws -> ObvEncoder.ObvEncoded { +// return [version.obvEncode(), try syncSnapshot.obvEncode()].obvEncode() +// } +// public init?(_ obvEncoded: ObvEncoded) { +// do { +// (version, syncSnapshot) = try obvEncoded.obvDecode() +// } catch { +// assertionFailure(error.localizedDescription) +// return nil +// } +// } +//} + + +public struct ObvSyncSnapshot { + + private enum Tag: String, CaseIterable { + case appNode = "app" + case identityNode = "identity" + } + + + public let appNode: any ObvSyncSnapshotNode + public let identityNode: any ObvSyncSnapshotNode + + + private init(appNode: any ObvSyncSnapshotNode, identityNode: any ObvSyncSnapshotNode) { + self.appNode = appNode + self.identityNode = identityNode + } + + + public init(ownedCryptoId: ObvCryptoId, appSnapshotableObject: ObvSnapshotable, identitySnapshotableObject: ObvSnapshotable) throws { + let appNode = try appSnapshotableObject.getSyncSnapshotNode(for: ownedCryptoId) + let identityNode = try identitySnapshotableObject.getSyncSnapshotNode(for: ownedCryptoId) + self.init(appNode: appNode, identityNode: identityNode) + } + + + public static func fromObvDictionary(_ obvDictionary: ObvDictionary, appSnapshotableObject: ObvSnapshotable, identitySnapshotableObject: ObvSnapshotable) throws -> Self { + + let dict: [Tag: Data] = .init( + obvDictionary, + keyMapping: { + guard let rawTag = String(data: $0, encoding: .utf8), let tag = Tag(rawValue: rawTag) else { return nil } + return tag + }, + valueMapping: { + Data($0) + }) + + guard let serializedAppNode = dict[.appNode], let serializedIdentityNode = dict[.identityNode] else { + throw ObvError.missingNode + } + + let identityNode = try identitySnapshotableObject.deserializeObvSyncSnapshotNode(serializedIdentityNode) + let appNode = try appSnapshotableObject.deserializeObvSyncSnapshotNode(serializedAppNode) + + return .init(appNode: appNode, identityNode: identityNode) + + } + + + public func toObvDictionary(appSnapshotableObject: ObvSnapshotable, identitySnapshotableObject: ObvSnapshotable) throws -> ObvDictionary { + + let dict: [Tag: Data] = [ + .appNode: try appSnapshotableObject.serializeObvSyncSnapshotNode(appNode), + .identityNode: try identitySnapshotableObject.serializeObvSyncSnapshotNode(identityNode), + ] + + let obvDict: ObvDictionary = .init(dict, keyMapping: { $0.rawValue.data(using: .utf8) }, valueMapping: { $0.obvEncode() }) + + return obvDict + + } + + + /// Returns `true` if both ObvSyncSnapshotNode are exactly the same (deep compare). +// public func isContentIdenticalTo(other syncSnapshot: ObvSyncSnapshot?) -> Bool { +// guard let syncSnapshot else { return false } +// let diffs = computeDiff(withOther: syncSnapshot) +// return diffs.isEmpty +// } + + +// public func computeDiff(withOther syncSnapshot: ObvSyncSnapshot) -> Set { +// var diffs = Set() +// for tag in Tag.allCases { +// switch tag { +// case .appNode: +// diffs.formUnion(self.appNode.computeDiff(withOther: syncSnapshot.appNode)) +// case .identityNode: +// diffs.formUnion(self.identityNode.computeDiff(withOther: syncSnapshot.identityNode)) +// } +// } +// return diffs +// } + + + public enum ObvError: Error { + case cannotEncodeTag + case duplicateKeys + case unexpectedObvDict + case cannotDecodeTag + case missingNode + } + +} diff --git a/Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSyncSnapshotNode.swift b/Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSyncSnapshotNode.swift new file mode 100644 index 00000000..1ef2aafc --- /dev/null +++ b/Engine/ObvTypes/ObvTypes/SyncSnapshots/ObvSyncSnapshotNode.swift @@ -0,0 +1,60 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder + + +public protocol ObvSyncSnapshotNode: Codable, Hashable, Identifiable { + + /// Computes a list of differences between the current snapshot and the other snapshot. + //func computeDiff(withOther syncSnapshotNode: Self) -> Set + +} + + +public extension ObvSyncSnapshotNode { + + static func generateIdentifier() -> String { + ObvSyncSnapshotNodeUtils.generateIdentifier() + } + +} + + +public struct ObvSyncSnapshotNodeUtils { + + public static func generateIdentifier() -> String { + return [UUID(), UUID(), UUID(), UUID()].map({ $0.uuidString }).joined() + } + +} + + +//public extension ObvSyncSnapshotNode { +// +// /// Returns `true` if both ObvSyncSnapshotNode are exactly the same (deep compare). +// /// If the `other` ObvSyncSnapshotNode is `nil`, this method returns `false`. +// func isContentIdenticalTo(other syncSnapshotNode: Self?) -> Bool { +// guard let syncSnapshotNode else { return false } +// let diff = self.computeDiff(withOther: syncSnapshotNode) +// return diff.isEmpty +// } +// +//} diff --git a/Engine/ObvTypes/ObvTypes/TypesForOwnedIdentityTransfer/ObvOwnedIdentityTransferSas.swift b/Engine/ObvTypes/ObvTypes/TypesForOwnedIdentityTransfer/ObvOwnedIdentityTransferSas.swift new file mode 100644 index 00000000..97642824 --- /dev/null +++ b/Engine/ObvTypes/ObvTypes/TypesForOwnedIdentityTransfer/ObvOwnedIdentityTransferSas.swift @@ -0,0 +1,59 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder + + +public struct ObvOwnedIdentityTransferSas: CustomDebugStringConvertible, ObvCodable, Equatable { + + public let digits: [Character] + private let rawFullSas: Data + + public init(fullSas: Data) throws { + guard let sasAsString = String(data: fullSas, encoding: .utf8)?.trimmingWhitespacesAndNewlines() else { + throw ObvError.couldNotParseSasAsString + } + assert(sasAsString.count == 8) + self.digits = sasAsString.map { $0 } + self.rawFullSas = fullSas + } + + enum ObvError: Error { + case couldNotParseSasAsString + } + + public var debugDescription: String { + return digits.reduce("") { $0 + String($1) } + } + + // ObvCodable + + public func obvEncode() -> ObvEncoded { + self.rawFullSas.obvEncode() + } + + public init?(_ obvEncoded: ObvEncoded) { + guard let fullSas = Data(obvEncoded) else { assertionFailure(); return nil } + guard let sas = try? Self.init(fullSas: fullSas) else { assertionFailure(); return nil } + self = sas + } + +} + diff --git a/Engine/ObvTypes/ObvTypes/TypesForOwnedIdentityTransfer/ObvOwnedIdentityTransferSessionNumber.swift b/Engine/ObvTypes/ObvTypes/TypesForOwnedIdentityTransfer/ObvOwnedIdentityTransferSessionNumber.swift new file mode 100644 index 00000000..6e401cc3 --- /dev/null +++ b/Engine/ObvTypes/ObvTypes/TypesForOwnedIdentityTransfer/ObvOwnedIdentityTransferSessionNumber.swift @@ -0,0 +1,71 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEncoder + + +/// When performing an owned identity transfer protocol, the transfer server communicates a session number made of (up to) 8 digits. +/// We use this type to encapsulate the returned value. +public struct ObvOwnedIdentityTransferSessionNumber: CustomDebugStringConvertible, ObvCodable { + + public static let expectedCount = 8 + public let digits: [Character] + public let sessionNumber: Int + + private static let digitFromInt = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map { Character("\($0)") } + + public init(sessionNumber: Int) throws { + self.sessionNumber = sessionNumber + guard sessionNumber >= 0 else { assertionFailure(); throw ObvError.invalidIntegerSessionNumber } + var digits = [Character]() + var currentValue = sessionNumber + while currentValue > 0 { + let digit = Self.digitFromInt[currentValue % 10] + currentValue = currentValue / 10 + digits.insert(digit, at: 0) + } + guard digits.count <= Self.expectedCount else { assertionFailure(); throw ObvError.invalidIntegerSessionNumber } + while digits.count < Self.expectedCount { + digits.insert("0", at: 0) + } + self.digits = digits + } + + enum ObvError: Error { + case invalidIntegerSessionNumber + } + + public var debugDescription: String { + return digits.reduce("") { $0 + String($1) } + } + + // ObvCodable + + public func obvEncode() -> ObvEncoder.ObvEncoded { + sessionNumber.obvEncode() + } + + + public init?(_ obvEncoded: ObvEncoder.ObvEncoded) { + guard let sessionNumber: Int = try? obvEncoded.obvDecode() else { return nil } + try? self.init(sessionNumber: sessionNumber) + } + +} diff --git a/Engine/Project.swift b/Engine/Project.swift index 1fd6d9c4..505be017 100644 --- a/Engine/Project.swift +++ b/Engine/Project.swift @@ -3,7 +3,7 @@ import ProjectDescriptionHelpers // MARK: SPM Packages let gmpPackage = TargetDependency.SPMDependency.gmp -let joseSwiftSPM = TargetDependency.SPMDependency.joseSwift +//let joseSwiftSPM = TargetDependency.SPMDependency.joseSwift // MARK: - // MARK: External Targets @@ -33,7 +33,12 @@ let jws = Target.swiftLibrary(name: "JWS", isExtensionSafe: true, sources: "JWS/JWS/*.swift", dependencies: [ - .init(joseSwiftSPM) + .package(product: "JOSESwift"), + //.init(.appAuth), + //.init(joseSwiftSPM), + //.init(.joseSwift), + .target(name: "ObvEncoder"), + olvidUtils, ], resources: []) // MARK: - @@ -48,6 +53,17 @@ let obvBackupManager = Target.swiftLibrary(name: "ObvBackupManager", resources: []) // MARK: - +// MARK: ObvSyncSnapshotManager +let obvSyncSnapshotManager = Target.swiftLibrary(name: "ObvSyncSnapshotManager", + isExtensionSafe: true, + sources: "ObvSyncSnapshotManager/ObvSyncSnapshotManager/**/*.swift", + dependencies: [ + .target(name: "ObvTypes"), + .target(name: "ObvMetaManager"), + ], + resources: []) +// MARK: - + // MARK: ObvChannelManager let obvChannelManager = Target.swiftLibrary(name: "ObvChannelManager", isExtensionSafe: true, @@ -83,7 +99,9 @@ let obvDatabaseManager = Target.swiftLibrary(name: "ObvDatabaseManager", dependencies: [ .target(name: "ObvTypes"), .target(name: "ObvMetaManager"), - coreDataStack + .target(name: "ObvEncoder"), + .target(name: "ObvCrypto"), + coreDataStack, ], resources: [], coreDataModels: [ @@ -118,10 +136,12 @@ let obvEngine = Target.swiftLibrary(name: "ObvEngine", .target(name: "ObvNotificationCenter"), .target(name: "ObvNetworkSendManager"), .target(name: "ObvNetworkFetchManager"), + .target(name: "ObvTypes"), olvidUtils, .target(name: "ObvMetaManager"), .target(name: "ObvIdentityManager"), .target(name: "ObvBackupManager"), + .target(name: "ObvSyncSnapshotManager"), .target(name: "ObvChannelManager"), ], resources: [], @@ -266,25 +286,62 @@ let obvTypesTests = Target.swiftLibraryTests(name: "ObvTypesTests", // MARK: - +let projectPackages: [Package] = [ + // .remote(url: "https://github.com/olvid-io/AppAuth-iOS-for-Olvid", requirement: .branch("targetfix")), + .remote(url: "https://github.com/olvid-io/JOSESwift-for-Olvid", requirement: .branch("targetfix")), +] + +enum OlvidProjectPackage: CaseIterable { + + case appAuth + case joseSwift + + var package: Package { + switch self { + case .appAuth: + return .remote(url: "https://github.com/olvid-io/AppAuth-iOS-for-Olvid", requirement: .branch("targetfix")) + case .joseSwift: + return .remote(url: "https://github.com/olvid-io/JOSESwift-for-Olvid", requirement: .branch("targetfix")) + } + } + + var name: String { + switch self { + case .appAuth: + return "AppAuth" + case .joseSwift: + return "JOSESwift" + } + } + + static var packages: [Package] { + Self.allCases.map(\.package) + } + +} + + let project = Project.createProject(name: "Engine", - packages: [], - targets: [bigInt, - bigIntTests, - jws, - obvBackupManager, - obvChannelManager, - obvCrypto, - obvDatabaseManager, - obvEncoder, - obvEngine, - obvFlowManager, - obvIdentityManager, - obvMetaManager, - obvNetworkFetchManager, - obvNetworkSendManager, - obvNotificationCenter, - obvOperation, - obvProtocolManager, - obvServerInterface, - obvTypes, - obvTypesTests]) + packages: OlvidProjectPackage.packages, + targets: [ + bigInt, + bigIntTests, + jws, + obvBackupManager, + obvSyncSnapshotManager, + obvChannelManager, + obvCrypto, + obvDatabaseManager, + obvEncoder, + obvEngine, + obvFlowManager, + obvIdentityManager, + obvMetaManager, + obvNetworkFetchManager, + obvNetworkSendManager, + obvNotificationCenter, + obvOperation, + obvProtocolManager, + obvServerInterface, + obvTypes, + obvTypesTests]) diff --git a/Modules/Components/TextInputShortcutsResultView/Project.swift b/Modules/Components/TextInputShortcutsResultView/Project.swift index c53c8931..0a68f6e1 100644 --- a/Modules/Components/TextInputShortcutsResultView/Project.swift +++ b/Modules/Components/TextInputShortcutsResultView/Project.swift @@ -10,7 +10,8 @@ let textInputShortcutsResultView = Target.swiftLibrary( dependencies: [ .Modules.Platform.base, .Modules.obvUI, - .Modules.UI.CircledInitialsView.configuration, + .Modules.UI.obvCircledInitials, + //.Modules.UI.CircledInitialsView.configuration, ] ) diff --git a/Modules/Components/TextInputShortcutsResultView/TextInputShortcutsResultView/TextInputShortcutsResultView.swift b/Modules/Components/TextInputShortcutsResultView/TextInputShortcutsResultView/TextInputShortcutsResultView.swift index f06da96d..ab1599d3 100644 --- a/Modules/Components/TextInputShortcutsResultView/TextInputShortcutsResultView/TextInputShortcutsResultView.swift +++ b/Modules/Components/TextInputShortcutsResultView/TextInputShortcutsResultView/TextInputShortcutsResultView.swift @@ -19,7 +19,7 @@ import UIKit import Platform_Base -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials import class ObvUI.NewCircledInitialsView /// This view is supposed to be displayed inline within a discussion. At the time of writing (2023-04-03), it is only used for displaying a collection of mentionnable users. @@ -107,13 +107,9 @@ public final class TextInputShortcutsResultView: UIView { $0.backgroundColor = .clear $0.showsSeparators = true - - if #available(iOS 14.5, *) { - $0.separatorConfiguration = .init(listAppearance: Constants.listAppearance)..{ - if #available(iOS 15, *) { - $0.visualEffect = UIVibrancyEffect(blurEffect: blurEffect, style: .separator) - } - } + + $0.separatorConfiguration = .init(listAppearance: Constants.listAppearance)..{ + $0.visualEffect = UIVibrancyEffect(blurEffect: blurEffect, style: .separator) } } diff --git a/Modules/Components/TextInputShortcutsResultView/TextInputShortcutsResultView/TextShortcutItem.swift b/Modules/Components/TextInputShortcutsResultView/TextInputShortcutsResultView/TextShortcutItem.swift index 95bd2a68..1b35a3d0 100644 --- a/Modules/Components/TextInputShortcutsResultView/TextInputShortcutsResultView/TextShortcutItem.swift +++ b/Modules/Components/TextInputShortcutsResultView/TextInputShortcutsResultView/TextShortcutItem.swift @@ -18,7 +18,7 @@ */ import Foundation -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials @available(iOSApplicationExtension 14.0, *) public extension TextInputShortcutsResultView { diff --git a/Modules/CoreDataStack/CoreDataStack/CoreDataStack.swift b/Modules/CoreDataStack/CoreDataStack/CoreDataStack.swift index 86d9eb7c..b2d0f791 100644 --- a/Modules/CoreDataStack/CoreDataStack/CoreDataStack.swift +++ b/Modules/CoreDataStack/CoreDataStack/CoreDataStack.swift @@ -140,6 +140,25 @@ final public class CoreDataStack } + public func performBackgroundTaskAndWaitOrThrow(_ block: (NSManagedObjectContext) throws -> T) throws -> T { + let context = persistentContainer.newBackgroundContext() + context.transactionAuthor = transactionAuthor + var error: Error? = nil + var returnedValue: T! + context.performAndWait { + do { + returnedValue = try block(context) + } catch let _error { + error = _error + } + } + if let error = error { + throw error + } + return returnedValue + } + + public func managedObjectID(forURIRepresentation url: URL) -> NSManagedObjectID? { return persistentContainer.persistentStoreCoordinator.managedObjectID(forURIRepresentation: url) } diff --git a/Modules/CoreDataStack/CoreDataStack/DataMigrationManager.swift b/Modules/CoreDataStack/CoreDataStack/DataMigrationManager.swift index c517334c..e20f9e9a 100644 --- a/Modules/CoreDataStack/CoreDataStack/DataMigrationManager.swift +++ b/Modules/CoreDataStack/CoreDataStack/DataMigrationManager.swift @@ -163,11 +163,7 @@ open class DataMigrationManager private func getSourceStoreMetadata(storeURL: URL) throws -> [String: Any] { let dict: [String: Any] - if #available(iOS 15, *) { - dict = try NSPersistentStoreCoordinator.metadataForPersistentStore(type: .sqlite, at: storeURL) - } else { - dict = try NSPersistentStoreCoordinator.metadataForPersistentStore(ofType: NSSQLiteStoreType, at: storeURL) - } + dict = try NSPersistentStoreCoordinator.metadataForPersistentStore(type: .sqlite, at: storeURL) return dict } @@ -276,7 +272,13 @@ open class DataMigrationManager let destinationManagedObjectModel = try getDestinationManagedObjectModel() migrationRunningLog.addEvent(message: "Destination Managed Object Model: \(destinationManagedObjectModel.versionIdentifier)") - os_log("Destination Managed Object Model: %{public}@", log: log, type: .info, destinationManagedObjectModel.versionIdentifier) + let versionChecksum: String + if #available(iOS 17, *) { + versionChecksum = destinationManagedObjectModel.versionChecksum + } else { + versionChecksum = "Only available in iOS17+" + } + os_log("Destination Managed Object Model: %{public}@ with version checksum: %{public}@", log: log, type: .info, destinationManagedObjectModel.versionIdentifier, versionChecksum) let sourceStoreMetadata: [String: Any] do { diff --git a/Modules/Discussions/AttachmentsDropView/AttachmentsDropView.swift b/Modules/Discussions/AttachmentsDropView/AttachmentsDropView.swift deleted file mode 100644 index 4df4d703..00000000 --- a/Modules/Discussions/AttachmentsDropView/AttachmentsDropView.swift +++ /dev/null @@ -1,361 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2023 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit -import UniformTypeIdentifiers -import Platform_Sequence_KeyPathSorting -import Platform_NSItemProvider_UTType_Backport - -/// Protocol exposing delegation methods for ``AttachmentsDropView`` -@available(iOSApplicationExtension 14, *) -@MainActor -public protocol AttachmentsDropViewDelegate: AnyObject { - /// Delegate method that gets called prior the start of a drop session - /// - Parameter view: The view requesting the start of a drop session - /// - Returns: If the drop session should begin - func attachmentsDropViewShouldBegingDropSession(_ view: AttachmentsDropView) -> Bool - - /// Delegate method called when the user has dropped items to be appended as attachments to the current discussion - /// - Parameters: - /// - view: An instance of ``AttachmentsDropView`` responsible for this call - /// - items: An array of items `NSItemProvider`s to append as attachments - func attachmentsDropView(_ view: AttachmentsDropView, didDrop items: [NSItemProvider]) -} - -@available(iOSApplicationExtension 14, *) -public final class AttachmentsDropView: UIView { - private enum Constants { - // If an item provider has a registered type identifier that conforms to one of the types bellow, - // we load it as a file (i.e., not as text) and restrict to the conforming type identifier when creating the DroppedItemProvider. - static let typeIdentifiersToLoadAsFile: [UTType] = [.movie, .image, .pdf] - } - - /// The drop view's delegate - public weak var delegate: AttachmentsDropViewDelegate? - - /// An array of allowed `UTType`s for the attachments - private let allowedTypes: [UTType] - - private let directoryForTemporaryFiles: URL - - private weak var targetDropView: _AttachmentsTargetDropZoneView! - - /// Creates a view that accepts content to be attached to a message :), via a drop operation - /// - Parameters: - /// - allowedTypes: The types that are allowed to be dropped - /// - directoryForTemporaryFiles: The root directory where to store some stuff - public init(allowedTypes: [UTType], directoryForTemporaryFiles: URL) { - self.allowedTypes = allowedTypes - self.directoryForTemporaryFiles = directoryForTemporaryFiles - - super.init(frame: .zero) - - _setupViews() - } - - @available(*, unavailable) - public required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - #if DEBUG - deinit { - if FileManager.default.fileExists(atPath: directoryForTemporaryFiles.path) { - do { - let directoryChildrenURLs = try FileManager.default.contentsOfDirectory(at: directoryForTemporaryFiles, - includingPropertiesForKeys: [], - options: .skipsSubdirectoryDescendants) - - precondition(directoryChildrenURLs.isEmpty, "expected to no-longer have any temp items…, have: \(directoryChildrenURLs)") - } catch { - fatalError("failed to fetch contents with error: \(error)") - } - } - } - #endif - - private func _setupViews() { - backgroundColor = .clear - - isOpaque = false - - isUserInteractionEnabled = false - - translatesAutoresizingMaskIntoConstraints = false - - layoutMargins = .zero - - let targetDropView = _AttachmentsTargetDropZoneView() - - targetDropView.isHidden = true - - targetDropView.translatesAutoresizingMaskIntoConstraints = false - - addSubview(targetDropView) - - self.targetDropView = targetDropView - - _setupConstraints() - } - - private func _setupConstraints() { - let viewsDictionary = ["targetDropView": targetDropView!] - - NSLayoutConstraint.activate(NSLayoutConstraint.constraints(withVisualFormat: "H:|-[targetDropView]-|", - options: [], - metrics: nil, - views: viewsDictionary)) - - NSLayoutConstraint.activate(NSLayoutConstraint.constraints(withVisualFormat: "V:|-[targetDropView]-|", - options: [], - metrics: nil, - views: viewsDictionary)) - } - - /// Updates the subviews for a given drop location - /// - Parameter dropLocation: The current location of the drop, within `self`'s coordinate space - private func _updateSubviews(for dropLocation: CGPoint, isFinished: Bool) { - if isFinished { - targetDropView.stopMarchingAntsAnimation() - - targetDropView.isHidden = true - } else { - targetDropView.isHidden = !bounds.contains(dropLocation) - - targetDropView.startMarchingAntsAnimation() - } - } -} - -@available(iOSApplicationExtension 14, *) -extension AttachmentsDropView: UIDropInteractionDelegate { - - public func dropInteraction(_ interaction: UIDropInteraction, canHandle session: UIDropSession) -> Bool { - guard let delegate else { - assertionFailure("we're missing our delegate") - - return false - } - - guard delegate.attachmentsDropViewShouldBegingDropSession(self) else { - return false - } - - let conforms = session.hasItemsConforming(toTypeIdentifiers: allowedTypes.map(\.identifier)) - - return conforms - } - - - public func dropInteraction(_ interaction: UIDropInteraction, sessionDidUpdate session: UIDropSession) -> UIDropProposal { - let dropLocation = session.location(in: self) - - _updateSubviews(for: dropLocation, isFinished: false) - - let dropOperation: UIDropOperation - - if bounds.contains(dropLocation) { - dropOperation = .copy - } else { - dropOperation = .cancel - } - - return .init(operation: dropOperation) - } - - - public func dropInteraction(_ interaction: UIDropInteraction, performDrop session: UIDropSession) { - - guard let delegate else { - assertionFailure("we're missing our delegate") - return - } - - // We create a dispatch group to synchronize all the file representations loading - - let group = DispatchGroup() - - // We will fill the following dictionary with the loaded file representations. The keys are the dropped files' indexes. - - var droppedItemProviderFromIndex: [Int: NSItemProvider] = [:] - - // Enumerate the session items, load each one, and populate the droppedItemProviderFromIndex dictionnary - - for (itemIndex, sessionItem) in session.items.map(\.itemProvider).enumerated() { - - group.enter() - - // Special cases for session items conforming to our predefined types within `Constants.typeIdentifiersToLoadAsFile` - let preferredTypeIdentifierToLoadAsFile: UTType? = Constants.typeIdentifiersToLoadAsFile.reduce(nil) { partialResult, uti -> UTType? in - if let partialResult { - return partialResult - } else { - let contentTypes: [UTType] - - if #available(iOSApplicationExtension 16, *) { - contentTypes = sessionItem.registeredContentTypes - } else { - contentTypes = sessionItem - .registeredTypeIdentifiers - .compactMap(UTType.init) /// there should be **no** cases where `UTType`'s initializer would fail, since at the end of the day the type exists within `MobileCoreServices` - - assert(contentTypes.count == sessionItem.registeredTypeIdentifiers.count, "we're missing a casted UTType…") - } - - return contentTypes - .first { - return $0.conforms(to: uti) - } - } - } - - if sessionItem.hasItemConformingToTypeIdentifier(UTType.url), - preferredTypeIdentifierToLoadAsFile == nil { - - _ = sessionItem.loadObject(ofClass: URL.self) { value, error in - - if let error { - assertionFailure("failed to load textual representation of URL with error: \(error)") - group.leave() - return - } - - guard let value else { - assertionFailure("failed to retrieve URL value for item…") - group.leave() - return - } - - let droppedItem = NSItemProvider(object: value.absoluteString as NSString) - - DispatchQueue.main.async { - droppedItemProviderFromIndex[itemIndex] = droppedItem - group.leave() - } - - } - - } else if sessionItem.hasItemConformingToTypeIdentifier(UTType.text), - preferredTypeIdentifierToLoadAsFile == nil { - - _ = sessionItem.loadObject(ofClass: String.self) { value, error in - - if let error { - assertionFailure("failed to load textual representation of String with error: \(error)") - group.leave() - return - } - - guard let value else { - assertionFailure("failed to retrieve String value for item…") - group.leave() - return - } - - let droppedItem = NSItemProvider(object: value as NSString) - - DispatchQueue.main.async { - droppedItemProviderFromIndex[itemIndex] = droppedItem - group.leave() - } - } - - } else { - - sessionItem.loadFileRepresentation(forTypeIdentifier: UTType.data.identifier) { url, error in - - if let error { - assertionFailure("failed to load file representation with error: \(error)") - group.leave() - return - } - - guard let url else { - assertionFailure("failed to retrieve URL for file…") - group.leave() - return - } - - let droppedItem: DroppedItemProvider - - let typesToRegister: [UTType] - - if let preferredTypeIdentifierToLoadAsFile { - typesToRegister = [preferredTypeIdentifierToLoadAsFile] - } else { - typesToRegister = sessionItem - .registeredTypeIdentifiers - .compactMap(UTType.init) /// there should be **no** cases where `UTType`'s initializer would fail, since at the end of the day the type exists within `MobileCoreServices` - - assert(typesToRegister.count == sessionItem.registeredTypeIdentifiers.count, "we're missing a casted UTType…") - } - - do { - droppedItem = try DroppedItemProvider( - url: url, - directoryForTemporaryFiles: self.directoryForTemporaryFiles, - typeIdentifiersToRegister: typesToRegister - ) - } catch { - assertionFailure("failed to copy item, with error: \(error)") - group.leave() - return - } - - DispatchQueue.main.async { - droppedItemProviderFromIndex[itemIndex] = droppedItem - group.leave() - } - - } - } - } - - // We wait until all the file representations are loaded - group.notify(qos: .userInitiated, queue: DispatchQueue.main) { - - guard !droppedItemProviderFromIndex.isEmpty else { - assertionFailure("expected to have items to handle…") - return - } - - let sortedItems = droppedItemProviderFromIndex - .sorted(by: \.key) - .map(\.value) - - delegate.attachmentsDropView(self, didDrop: sortedItems) - - } - } - - - public func dropInteraction(_ interaction: UIDropInteraction, sessionDidEnd session: UIDropSession) { - let dropLocation = session.location(in: self) - - _updateSubviews(for: dropLocation, isFinished: true) - } - - - public func dropInteraction(_ interaction: UIDropInteraction, sessionDidExit session: UIDropSession) { - let dropLocation = session.location(in: self) - - _updateSubviews(for: dropLocation, isFinished: true) - } - -} diff --git a/Modules/Discussions/AttachmentsDropView/_AttachmentsTargetDropZoneView.swift b/Modules/Discussions/AttachmentsDropView/_AttachmentsTargetDropZoneView.swift deleted file mode 100644 index 45492939..00000000 --- a/Modules/Discussions/AttachmentsDropView/_AttachmentsTargetDropZoneView.swift +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2023 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit -import UI_SystemIcon -import UI_SystemIcon_UIKit - -/// Internal subclass belonging to the `Discussions_AttachmentsDropView` module; do not use me -final class _AttachmentsTargetDropZoneView: UIView { - - private enum Constants { - static let marchingAntsAnimationKey = "io.olvid.messenger.discussions.attachemnts-drop-view-private.attachements-target-drop-zone-view.marching-ants-animation-key" - - static let lineDashPattern: [CGFloat] = [6, 8] - } - - private weak var marchingAntsLayer: CAShapeLayer! - - private weak var stackView: UIStackView! - - private weak var dropImageView: UIImageView! - - private weak var dropLabel: UILabel! - - override init(frame: CGRect) { - super.init(frame: frame) - - _setupViews() - } - - @available(*, unavailable) - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - private func _createShape() -> CGPath { - let bezier = UIBezierPath(roundedRect: bounds, - cornerRadius: 20) - - return bezier.cgPath - } - - private func _setupViews() { - let marchingAntsLayer = CAShapeLayer() - - marchingAntsLayer.path = _createShape() - - marchingAntsLayer.lineWidth = 3 - - marchingAntsLayer.frame = bounds - - marchingAntsLayer.backgroundColor = UIColor.clear.cgColor - - marchingAntsLayer.fillColor = UIColor.secondarySystemBackground.withAlphaComponent(0.7).cgColor - - marchingAntsLayer.strokeColor = UIColor.secondaryLabel.cgColor - - marchingAntsLayer.lineDashPhase = 0 - - marchingAntsLayer.lineDashPattern = Constants.lineDashPattern as [NSNumber] - - let textStyle: UIFont.TextStyle = .headline - - let dropImageView = UIImageView(image: .init(systemIcon: .rectangleDashedAndPaperclip)) - - dropImageView.isAccessibilityElement = false - - dropImageView.preferredSymbolConfiguration = .init(textStyle: textStyle, scale: .large) - - dropImageView.tintColor = .secondaryLabel - - dropImageView.translatesAutoresizingMaskIntoConstraints = false - - let dropLabel = UILabel() - - dropLabel.adjustsFontForContentSizeCategory = true - - dropLabel.font = UIFont.preferredFont(forTextStyle: textStyle) - - dropLabel.textColor = .secondaryLabel - - dropLabel.text = DiscussionsAttachmentsDropViewStrings.AttachmentsTargetDropZoneView.DropLabel.text - - dropLabel.textAlignment = .center - - dropLabel.translatesAutoresizingMaskIntoConstraints = false - - let stackView = UIStackView(arrangedSubviews: [dropImageView, dropLabel]) - - stackView.spacing = UIStackView.spacingUseSystem - - stackView.axis = .vertical - - stackView.alignment = .center - - stackView.distribution = .fill - - stackView.translatesAutoresizingMaskIntoConstraints = false - - backgroundColor = .clear - - layer.addSublayer(marchingAntsLayer) - - addSubview(stackView) - - self.marchingAntsLayer = marchingAntsLayer - - self.stackView = stackView - - self.dropImageView = dropImageView - - self.dropLabel = dropLabel - - NSLayoutConstraint.activate([ - stackView.centerXAnchor.constraint(equalTo: centerXAnchor), - stackView.centerYAnchor.constraint(equalTo: centerYAnchor) - ]) - } - - override func layoutSubviews() { - super.layoutSubviews() - - CATransaction.begin() - - CATransaction.setDisableActions(true) - - marchingAntsLayer.frame = bounds - - marchingAntsLayer.path = _createShape() - - CATransaction.commit() - } - - func startMarchingAntsAnimation() { - guard marchingAntsLayer.animation(forKey: Constants.marchingAntsAnimationKey) == nil else { - return - } - - let animation = CABasicAnimation(keyPath: #keyPath(CAShapeLayer.lineDashPhase)) - - animation.fromValue = 0 - - animation.toValue = Constants.lineDashPattern.reduce(0, -) - - animation.duration = 0.5 - - animation.repeatCount = .infinity - - marchingAntsLayer.add(animation, forKey: Constants.marchingAntsAnimationKey) - } - - func stopMarchingAntsAnimation() { - marchingAntsLayer.removeAnimation(forKey: Constants.marchingAntsAnimationKey) - } -} diff --git a/Modules/Discussions/AttachmentsDropView/_DroppedItemProvider.swift b/Modules/Discussions/AttachmentsDropView/_DroppedItemProvider.swift deleted file mode 100644 index fac3b192..00000000 --- a/Modules/Discussions/AttachmentsDropView/_DroppedItemProvider.swift +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2023 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import UniformTypeIdentifiers - -/// When a drop interaction is performed, we receive a `UIDropSession`. This session contains one or more `NSItemProvider` instances whose scope is limited -/// to the UIDropInteractionDelegate's implementation of ``-dropInteraction:performDrop:``. For this reason, we load each of these items in that delegate method, -/// and create a ``DroppedItemProvider`` for each: these new items have a scope valid until they are deallocated. -@available(iOSApplicationExtension 14, *) -final class DroppedItemProvider: NSItemProvider { - - /// Copies a given file, at `url`, into `directory` - /// - Parameters: - /// - url: The source `URL` to copy - /// - directory: An `URL` to the temporary directory - /// - Returns: The copied file's info - /// - /// - SeeAlso: ``CopiedItemInfo`` - private static func copyFile(at url: URL, intoRandomDirectoryIn directory: URL) throws -> CopiedItemInfo { - let uuid = UUID() - let directoryForCopyingFileURL = directory.appendingPathComponent(uuid.uuidString) - try FileManager.default.createDirectory(at: directoryForCopyingFileURL, withIntermediateDirectories: true) - let toURL = directoryForCopyingFileURL.appendingPathComponent(url.lastPathComponent) - try FileManager.default.copyItem(at: url, to: toURL) - - return .init( - parentDirectoryURL: directoryForCopyingFileURL, - locallyReferencedFileURL: toURL - ) - } - - /// This is the directory that contains ``locallyReferencedFileURL`` - /// The rational behind this directory is to prevent name collisions - private let locallyReferencedFileParentDirectoryURL: URL - - /// This file has been locally copied, and is ours to keep when in use. Most importantly, must delete after we're done - private let locallyReferencedFileURL: URL - - /// Designated initializer, will make a local copy of `url` - /// - Parameters: - /// - url: The `URL` of the _locally_ available file, a copy will be available during the lifetime of the returned object - /// - directoryForTemporaryFiles: The source root directory of where we will store our temporary files - /// - typeIdentifiersToRegister: An array of `UTType`s that are handled originally handled by the source item provider - /// - /// - Throws: - /// - ``ProviderError`` - /// - Errors thrown by `FileManager` - public init(url: URL, directoryForTemporaryFiles: URL, typeIdentifiersToRegister: [UTType]) throws { - // Copy the file at `url` into the `directoryForTemporaryFiles` (where we create a new "random" directory to store the file) - let copiedItemInfo = try Self.copyFile(at: url, intoRandomDirectoryIn: directoryForTemporaryFiles) - - locallyReferencedFileParentDirectoryURL = copiedItemInfo.parentDirectoryURL - - // Keep a reference to the created file in order to delete it when we are deallocated - let locallyReferencedFileURL = copiedItemInfo.locallyReferencedFileURL - - self.locallyReferencedFileURL = locallyReferencedFileURL - - super.init() - - // Register all type identifiers for the file - - typeIdentifiersToRegister.forEach { typeIdentifier in - @Sendable - func loadHandler(completion: @escaping (URL?, Bool, Error?) -> Void) -> Progress? { - guard FileManager.default.fileExists(atPath: locallyReferencedFileURL.path) else { - completion(nil, false, ProviderError.referencedFileDoesNotExist(at: locallyReferencedFileURL)) - - return nil - } - - completion(locallyReferencedFileURL, false, nil) - - return nil - } - - if #available(iOS 16, *) { - registerFileRepresentation( - for: typeIdentifier, - visibility: .ownProcess, - loadHandler: loadHandler - ) - } else { - registerFileRepresentation( - forTypeIdentifier: typeIdentifier.identifier, - visibility: .ownProcess, - loadHandler: loadHandler) - } - } - } - - deinit { - if FileManager.default.fileExists(atPath: locallyReferencedFileURL.path) { - do { - try FileManager.default.removeItem(at: locallyReferencedFileURL) - } catch { - assertionFailure("failed to delete file at \(locallyReferencedFileURL) with error: \(error)") - } - - do { - try FileManager.default.removeItem(at: locallyReferencedFileParentDirectoryURL) - } catch { - assertionFailure("failed to delete parent directory at \(locallyReferencedFileParentDirectoryURL) with error: \(error)") - } - } else { - assertionFailure("expected to have our file exist at \(locallyReferencedFileURL)") - } - } -} - -@available(iOSApplicationExtension 14, *) -extension DroppedItemProvider { - /// Denotes the possible errors thrown by an instance of ``DroppedItemProvider`` - /// - /// - referencedFileDoesNotExist: Error thrown when the file at the given `URL` does not exist - enum ProviderError: Error { - /// Error thrown when the file at the given `URL` does not exist - case referencedFileDoesNotExist(at: URL) - } -} - -@available(iOSApplicationExtension 14, *) -extension DroppedItemProvider { - /// Structure containing info regarding the copied item - struct CopiedItemInfo { - /// This is the directory that contains ``locallyReferencedFileURL`` - let parentDirectoryURL: URL - - /// The `URL` of the copied item - let locallyReferencedFileURL: URL - } -} diff --git a/Modules/Discussions/AttachmentsDropView/en.lproj/Localizable.strings b/Modules/Discussions/AttachmentsDropView/en.lproj/Localizable.strings deleted file mode 100644 index 8fecea0b..00000000 --- a/Modules/Discussions/AttachmentsDropView/en.lproj/Localizable.strings +++ /dev/null @@ -1,3 +0,0 @@ -/* Text shown above within the drop zone view, informin the user that they can drop the given attachment to attach it within the conversation */ -"attachments-target-drop-zone-view.drop-label.text" = "Drop to attach"; - diff --git a/Modules/Discussions/AttachmentsDropView/fr.lproj/Localizable.strings b/Modules/Discussions/AttachmentsDropView/fr.lproj/Localizable.strings deleted file mode 100644 index 51d78dfa..00000000 --- a/Modules/Discussions/AttachmentsDropView/fr.lproj/Localizable.strings +++ /dev/null @@ -1,3 +0,0 @@ -/* Text shown above within the drop zone view, informin the user that they can drop the given attachment to attach it within the conversation */ -"attachments-target-drop-zone-view.drop-label.text" = "Déposer pour ajouter"; - diff --git a/Modules/Discussions/Project.swift b/Modules/Discussions/Project.swift index 8a05f6cd..0f35b957 100644 --- a/Modules/Discussions/Project.swift +++ b/Modules/Discussions/Project.swift @@ -56,20 +56,6 @@ let discussionsScrollToBottomButton = Target.swiftLibrary( ], resources: []) -let discussionsAttachmentsDropView = Target.swiftLibrary( - name: "Discussions_AttachmentsDropView", - isExtensionSafe: true, - sources: "AttachmentsDropView/*.swift", - dependencies: [ - .Modules.Platform.sequenceKeyPathSorting, - .Modules.Platform.nsItemProviderUTTypeBackport, - .Modules.UI.systemIcon, - .Modules.UI.systemIconUIKit, - ], - resources: [ - "AttachmentsDropView/*.lproj/Localizable.strings" - ]) - let project = Project.createProject(name: "Discussions", packages: [], targets: [discussionsMentionsAutoGrowingTextViewTextViewDelegateProxy, @@ -77,7 +63,6 @@ let project = Project.createProject(name: "Discussions", discussionsMentionsBuilderInternals, discussionsMentionsComposeMessageBuilder, discussionsMentionsTextBubbleBuilder, - discussionsScrollToBottomButton, - discussionsAttachmentsDropView], + discussionsScrollToBottomButton], shouldEnableDefaultResourceSynthesizers: true) diff --git a/Modules/Discussions/ScrollToBottomButton/ScrollToBottomButton.swift b/Modules/Discussions/ScrollToBottomButton/ScrollToBottomButton.swift index d7d6f061..651bc3c1 100644 --- a/Modules/Discussions/ScrollToBottomButton/ScrollToBottomButton.swift +++ b/Modules/Discussions/ScrollToBottomButton/ScrollToBottomButton.swift @@ -124,19 +124,17 @@ public final class ScrollToBottomButton: UIButton { let circlePathBaseRect = CGRect(origin: .zero, size: Constants.size) - if #available(iOS 13.4, *) { - isPointerInteractionEnabled = true - - pointerStyleProvider = { button, proposedEffect, proposedShape -> UIPointerStyle? in - let targetedPreview = proposedEffect.preview - - let convertedRect = button.convert(circlePathBaseRect, to: targetedPreview.target.container) - - let bezier = UIBezierPath(ovalIn: convertedRect) - - return .init(effect: .highlight(targetedPreview), - shape: .path(bezier)) - } + isPointerInteractionEnabled = true + + pointerStyleProvider = { button, proposedEffect, proposedShape -> UIPointerStyle? in + let targetedPreview = proposedEffect.preview + + let convertedRect = button.convert(circlePathBaseRect, to: targetedPreview.target.container) + + let bezier = UIBezierPath(ovalIn: convertedRect) + + return .init(effect: .highlight(targetedPreview), + shape: .path(bezier)) } let circlePath = UIBezierPath(ovalIn: circlePathBaseRect) diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/IdentityColorStyle.swift b/Modules/ObvDesignSystem/IdentityColorStyle.swift similarity index 100% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/IdentityColorStyle.swift rename to Modules/ObvDesignSystem/IdentityColorStyle.swift diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Elements/AppTheme/AppTheme.swift b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppTheme.swift similarity index 91% rename from Modules/OlvidUI/ObvUI/ObvUI/Elements/AppTheme/AppTheme.swift rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppTheme.swift index 56483be7..ca140ed8 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Elements/AppTheme/AppTheme.swift +++ b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppTheme.swift @@ -18,11 +18,9 @@ */ -import Foundation import UIKit import ObvTypes import ObvCrypto -import ObvUICoreData public final class AppTheme { @@ -86,7 +84,8 @@ extension AppTheme { }() - public func identityColors(for cryptoId: ObvCryptoId, using style: IdentityColorStyle = ObvMessengerSettings.Interface.identityColorStyle) -> (background: UIColor, text: UIColor) { + //public func identityColors(for cryptoId: ObvCryptoId, using style: IdentityColorStyle = ObvMessengerSettings.Interface.identityColorStyle) -> (background: UIColor, text: UIColor) { + public func identityColors(for cryptoId: ObvCryptoId, using style: IdentityColorStyle) -> (background: UIColor, text: UIColor) { switch style { case .hue: let hue = hueFromBytes(cryptoId.getIdentity()) @@ -101,7 +100,8 @@ extension AppTheme { } - public func groupColors(forGroupUid groupUid: UID, using style: IdentityColorStyle = ObvMessengerSettings.Interface.identityColorStyle) -> (background: UIColor, text: UIColor) { + //public func groupColors(forGroupUid groupUid: UID, using style: IdentityColorStyle = ObvMessengerSettings.Interface.identityColorStyle) -> (background: UIColor, text: UIColor) { + public func groupColors(forGroupUid groupUid: UID, using style: IdentityColorStyle) -> (background: UIColor, text: UIColor) { switch style { case .hue: let hue = hueFromBytes(groupUid.raw) diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/CallBarColor.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/CallBarColor.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/CallBarColor.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/CallBarColor.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondBlackTextDisabled.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondBlackTextDisabled.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondBlackTextDisabled.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondBlackTextDisabled.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondBlackTextHighEmphasis.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondBlackTextHighEmphasis.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondBlackTextHighEmphasis.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondBlackTextHighEmphasis.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondBlackTextMediumEmphasis.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondBlackTextMediumEmphasis.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondBlackTextMediumEmphasis.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondBlackTextMediumEmphasis.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondGreen.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondGreen.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondGreen.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondGreen.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondPrimary300.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondPrimary300.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondPrimary300.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondPrimary300.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondPrimary400.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondPrimary400.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondPrimary400.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondPrimary400.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondPrimary700.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondPrimary700.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondPrimary700.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondPrimary700.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondPrimary800.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondPrimary800.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondPrimary800.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondPrimary800.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondPrimary900.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondPrimary900.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondPrimary900.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondPrimary900.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSecondary600.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSecondary600.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSecondary600.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSecondary600.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSecondary700.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSecondary700.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSecondary700.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSecondary700.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSecondary800.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSecondary800.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSecondary800.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSecondary800.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSecondary900.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSecondary900.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSecondary900.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSecondary900.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSurfaceDark.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSurfaceDark.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSurfaceDark.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSurfaceDark.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSurfaceLight.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSurfaceLight.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSurfaceLight.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSurfaceLight.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSurfaceMedium.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSurfaceMedium.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondSurfaceMedium.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondSurfaceMedium.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondTextOnPrimaryDisabled.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondTextOnPrimaryDisabled.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondTextOnPrimaryDisabled.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondTextOnPrimaryDisabled.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondTextOnPrimaryHighEmphasis.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondTextOnPrimaryHighEmphasis.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondTextOnPrimaryHighEmphasis.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondTextOnPrimaryHighEmphasis.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondTextOnPrimaryMediumEmphasis.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondTextOnPrimaryMediumEmphasis.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondTextOnPrimaryMediumEmphasis.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondTextOnPrimaryMediumEmphasis.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondTextOnSecondaryDisabled.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondTextOnSecondaryDisabled.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondTextOnSecondaryDisabled.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondTextOnSecondaryDisabled.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondTextOnSecondaryHighEmphasis.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondTextOnSecondaryHighEmphasis.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondTextOnSecondaryHighEmphasis.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondTextOnSecondaryHighEmphasis.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondTextOnSecondaryMediumEmphasis.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondTextOnSecondaryMediumEmphasis.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondTextOnSecondaryMediumEmphasis.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondTextOnSecondaryMediumEmphasis.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondWhiteTextDisabled.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondWhiteTextDisabled.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondWhiteTextDisabled.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondWhiteTextDisabled.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondWhiteTextHighEmphasis.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondWhiteTextHighEmphasis.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondWhiteTextHighEmphasis.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondWhiteTextHighEmphasis.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondWhiteTextMediumEmphasis.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondWhiteTextMediumEmphasis.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/EdmondWhiteTextMediumEmphasis.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/EdmondWhiteTextMediumEmphasis.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/OldSentCellBackground.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/OldSentCellBackground.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/OldSentCellBackground.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/OldSentCellBackground.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/OlvidDark.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/OlvidDark.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/OlvidDark.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/OlvidDark.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/OlvidLight.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/OlvidLight.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/OlvidLight.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/OlvidLight.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/OlvidPurple.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/OlvidPurple.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/OlvidPurple.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/OlvidPurple.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/OlvidRed.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/OlvidRed.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/OlvidRed.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/OlvidRed.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/QRCodeScannerTransparentBackground.colorset/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/QRCodeScannerTransparentBackground.colorset/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Colors/QRCodeScannerTransparentBackground.colorset/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Colors/QRCodeScannerTransparentBackground.colorset/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Contents.json b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Contents.json similarity index 100% rename from Modules/OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets/Contents.json rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets/Contents.json diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Elements/AppTheme/AppThemeColorScheme.swift b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeColorScheme.swift similarity index 99% rename from Modules/OlvidUI/ObvUI/ObvUI/Elements/AppTheme/AppThemeColorScheme.swift rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeColorScheme.swift index 9a993ccb..9b895af1 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Elements/AppTheme/AppThemeColorScheme.swift +++ b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeColorScheme.swift @@ -18,7 +18,6 @@ */ -import Foundation import UIKit diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Elements/AppTheme/AppThemeIcons.swift b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeIcons.swift similarity index 98% rename from Modules/OlvidUI/ObvUI/ObvUI/Elements/AppTheme/AppThemeIcons.swift rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeIcons.swift index 0e549b27..0272c7f9 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Elements/AppTheme/AppThemeIcons.swift +++ b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeIcons.swift @@ -18,7 +18,6 @@ */ -import Foundation import UI_SystemIcon public struct AppThemeIcons { diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Elements/AppTheme/AppThemeImages.swift b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeImages.swift similarity index 97% rename from Modules/OlvidUI/ObvUI/ObvUI/Elements/AppTheme/AppThemeImages.swift rename to Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeImages.swift index 09a79c7a..f92c2d35 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Elements/AppTheme/AppThemeImages.swift +++ b/Modules/ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeImages.swift @@ -18,7 +18,6 @@ */ -import Foundation import UIKit import UI_SystemIcon_UIKit diff --git a/Modules/ObvSettings/Localizable.xcstrings b/Modules/ObvSettings/Localizable.xcstrings new file mode 100644 index 00000000..b0ecef4a --- /dev/null +++ b/Modules/ObvSettings/Localizable.xcstrings @@ -0,0 +1,233 @@ +{ + "sourceLanguage" : "en", + "strings" : { + "CHOOSE_FILE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Attach file" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisir un fichier" + } + } + } + }, + "CHOOSE_IMAGE_FROM_LIBRARY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Photo & video library" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bibliothèque de photos & vidéos" + } + } + } + }, + "COMPOSE_MESSAGE_SETTINGS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Customize" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Personnaliser" + } + } + } + }, + "discussion-mention-notification-mode.display-title.always" : { + "comment" : "Display title for the `always` value for mention notification mode", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Always" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toujours" + } + } + } + }, + "discussion-mention-notification-mode.display-title.default" : { + "comment" : "Display title for the `default` value for mention notification mode. Takes one argument, the global discussion notification mode", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Default (%1$@)" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Par défaut (%1$@)" + } + } + } + }, + "discussion-mention-notification-mode.display-title.never" : { + "comment" : "Display title for the `never` value for mention notification mode", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Never" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jamais" + } + } + } + }, + "EPHEMERAL_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ephemeral message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message éphémère" + } + } + } + }, + "Introduce" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Introduce" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Présenter" + } + } + } + }, + "NOTIFICATION_SOUNDS_ALARM_CATEGORY_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alarms" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alarmes" + } + } + } + }, + "NOTIFICATION_SOUNDS_ANIMAL_CATEGORY_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Animals" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Animaux" + } + } + } + }, + "NOTIFICATION_SOUNDS_NEUTRAL_CATEGORY_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Neutral" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Neutre" + } + } + } + }, + "NOTIFICATION_SOUNDS_TOY_CATEGORY_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toys" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jouets" + } + } + } + }, + "SCAN_DOCUMENT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scan a document" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scanner un document" + } + } + } + }, + "SHOOT_PHOTO_OR_MOVIE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Camera" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appareil photo" + } + } + } + } + }, + "version" : "1.0" +} \ No newline at end of file diff --git a/Modules/ObvSettings/LocalizableClassForObvSettingsBundle.swift b/Modules/ObvSettings/LocalizableClassForObvSettingsBundle.swift new file mode 100644 index 00000000..3270858d --- /dev/null +++ b/Modules/ObvSettings/LocalizableClassForObvSettingsBundle.swift @@ -0,0 +1,45 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI + + +/// This is a dummy class, allowing to specify the appropriate module when declaring a localized string, so that the localized string key is looked up in the correct `Localizable.xcstrings` file. +final class LocalizableClassForObvSettingsBundle {} + + +func NSLocalizedString(_ key: String, comment: String) -> String { + return NSLocalizedString(key, tableName: "Localizable", bundle: Bundle(for: LocalizableClassForObvSettingsBundle.self), comment: comment) +} + + +func NSLocalizedString(_ key: String) -> String { + return NSLocalizedString(key, tableName: "Localizable", bundle: Bundle(for: LocalizableClassForObvSettingsBundle.self), comment: "Within ObvSettings") +} + + +extension Text { + + init(_ key: LocalizedStringKey, comment: StaticString? = nil) { + self.init(key, tableName: "Localizable", bundle: Bundle(for: LocalizableClassForObvSettingsBundle.self), comment: comment ?? "Within ObvSettings") + } + +} + diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/ObvMessengerSettings.swift b/Modules/ObvSettings/ObvMessengerSettings.swift similarity index 84% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/ObvMessengerSettings.swift rename to Modules/ObvSettings/ObvMessengerSettings.swift index fbeadc61..59691446 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/ObvMessengerSettings.swift +++ b/Modules/ObvSettings/ObvMessengerSettings.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -18,6 +18,8 @@ */ import Foundation +import ObvTypes +import ObvDesignSystem public struct ObvMessengerSettings { @@ -53,7 +55,7 @@ public struct ObvMessengerSettings { case noOne = "nobody" } - public static var autoAcceptGroupInviteFrom: AutoAcceptGroupInviteFrom { + public private(set) static var autoAcceptGroupInviteFrom: AutoAcceptGroupInviteFrom { get { let raw = userDefaults.stringOrNil(forKey: Keys.autoAcceptGroupInviteFrom) ?? AutoAcceptGroupInviteFrom.oneToOneContactsOnly.rawValue return AutoAcceptGroupInviteFrom(rawValue: raw) ?? .oneToOneContactsOnly @@ -63,6 +65,12 @@ public struct ObvMessengerSettings { } } + public static func setAutoAcceptGroupInviteFrom(to newValue: AutoAcceptGroupInviteFrom, changeMadeFromAnotherOwnedDevice: Bool, ownedCryptoId: ObvCryptoId?) { + guard newValue != autoAcceptGroupInviteFrom else { return } + autoAcceptGroupInviteFrom = newValue + ObvMessengerSettingsObservableObject.shared.autoAcceptGroupInviteFrom = (autoAcceptGroupInviteFrom, changeMadeFromAnotherOwnedDevice, ownedCryptoId) + } + } public struct Interface { @@ -70,7 +78,6 @@ public struct ObvMessengerSettings { enum Key: String { case identityColorStyle = "identityColorStyle" case contactsSortOrder = "contactsSortOrder" - case useOldDiscussionInterface = "useOldDiscussionInterface" case preferredComposeMessageViewActions = "preferredComposeMessageViewActions" private var kInterface: String { "interface" } @@ -106,16 +113,6 @@ public struct ObvMessengerSettings { } - public static var useOldDiscussionInterface: Bool { - get { - return userDefaults.boolOrNil(forKey: Key.useOldDiscussionInterface.path) ?? false - } - set { - userDefaults.set(newValue, forKey: Key.useOldDiscussionInterface.path) - } - } - - public static var preferredComposeMessageViewActions: [NewComposeMessageViewAction] { get { guard let rawValues = userDefaults.array(forKey: Key.preferredComposeMessageViewActions.path) as? [Int] else { return NewComposeMessageViewAction.defaultActions } @@ -163,7 +160,7 @@ public struct ObvMessengerSettings { // MARK: Read receipts - public static var doSendReadReceipt: Bool { + public private(set) static var doSendReadReceipt: Bool { get { return userDefaults.boolOrNil(forKey: Key.doSendReadReceipt.path) ?? false } @@ -172,6 +169,12 @@ public struct ObvMessengerSettings { } } + public static func setDoSendReadReceipt(to newValue: Bool, changeMadeFromAnotherOwnedDevice: Bool, ownedCryptoId: ObvCryptoId?) { + guard newValue != doSendReadReceipt else { return } + self.doSendReadReceipt = newValue + ObvMessengerSettingsObservableObject.shared.doSendReadReceipt = (doSendReadReceipt, changeMadeFromAnotherOwnedDevice, ownedCryptoId) + } + // MARK: Rich link previews public enum FetchContentRichURLsMetadataChoice: Int, CaseIterable, Identifiable { @@ -426,12 +429,12 @@ public struct ObvMessengerSettings { // MARK: Local Authentication Policy - public static var localAuthenticationPolicy: LocalAuthenticationPolicy { + public static var localAuthenticationPolicy: ObvLocalAuthenticationPolicy { get { guard let rawPolicy = userDefaults.integerOrNil(forKey: Key.localAuthenticationPolicy.path) else { return .none } - guard let policy = LocalAuthenticationPolicy(rawValue: rawPolicy) else { + guard let policy = ObvLocalAuthenticationPolicy(rawValue: rawPolicy) else { assertionFailure(); return .none } return policy @@ -596,25 +599,38 @@ public struct ObvMessengerSettings { public struct VoIP { - public static var isCallKitEnabled: Bool { + enum Key: String { + case receiveCallsOnThisDevice = "receiveCallsOnThisDevice" + + private var kVoIP: String { "voip" } + + var path: String { + [kSettingsKeyPath, kVoIP, self.rawValue].joined(separator: ".") + } + + } + + + public static var receiveCallsOnThisDevice: Bool { get { - guard ObvUICoreDataConstants.isRunningOnRealDevice else { return false } - return userDefaults.boolOrNil(forKey: "settings.voip.isCallKitEnabled") ?? true + return userDefaults.boolOrNil(forKey: Key.receiveCallsOnThisDevice.path) ?? true } set { - guard ObvUICoreDataConstants.isRunningOnRealDevice else { return } - guard newValue != isCallKitEnabled else { return } - userDefaults.set(newValue, forKey: "settings.voip.isCallKitEnabled") - ObvMessengerSettingsNotifications.isCallKitEnabledSettingDidChange + guard newValue != receiveCallsOnThisDevice else { return } + userDefaults.set(newValue, forKey: Key.receiveCallsOnThisDevice.path) + ObvMessengerSettingsNotifications.receiveCallsOnThisDeviceSettingDidChange .postOnDispatchQueue() } } + public static var isIncludesCallsInRecentsEnabled: Bool { get { + guard !ObvUICoreDataConstants.targetEnvironmentIsMacCatalyst else { return false } return userDefaults.boolOrNil(forKey: "settings.voip.isIncludesCallsInRecentsEnabled") ?? true } set { + assert(!ObvUICoreDataConstants.targetEnvironmentIsMacCatalyst) guard newValue != isIncludesCallsInRecentsEnabled else { return } userDefaults.set(newValue, forKey: "settings.voip.isIncludesCallsInRecentsEnabled") ObvMessengerSettingsNotifications.isIncludesCallsInRecentsEnabledSettingDidChange @@ -622,8 +638,10 @@ public struct ObvMessengerSettings { } } + public static let maxaveragebitratePossibleValues: [Int?] = [nil, 8_000, 16_000, 24_000, 32_000] + // See https://datatracker.ietf.org/doc/html/draft-spittka-payload-rtp-opus public static var maxaveragebitrate: Int? { get { @@ -842,9 +860,13 @@ public final class ObvMessengerSettingsObservableObject: ObservableObject { public static let shared = ObvMessengerSettingsObservableObject() @Published public fileprivate(set) var defaultEmojiButton: String? + @Published public fileprivate(set) var doSendReadReceipt: (doSendReadReceipt: Bool, changeMadeFromAnotherOwnedDevice: Bool, ownedCryptoId: ObvCryptoId?) + @Published public fileprivate(set) var autoAcceptGroupInviteFrom: (autoAcceptGroupInviteFrom: ObvMessengerSettings.ContactsAndGroups.AutoAcceptGroupInviteFrom, changeMadeFromAnotherOwnedDevice: Bool, ownedCryptoId: ObvCryptoId?) private init() { defaultEmojiButton = ObvMessengerSettings.Emoji.defaultEmojiButton + doSendReadReceipt = (ObvMessengerSettings.Discussions.doSendReadReceipt, false, nil) + autoAcceptGroupInviteFrom = (ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom, false, nil) } } @@ -883,3 +905,81 @@ public extension UserDefaults { } } + + + +// MARK: - For snapshot purposes + +public extension ObvMessengerSettings { + + static var syncSnapshotNode: GlobalSettingsSyncSnapshotNode { + .init( + autoAcceptGroupInviteFrom: ContactsAndGroups.autoAcceptGroupInviteFrom, + doSendReadReceipt: Discussions.doSendReadReceipt) + } + +} + + +public struct GlobalSettingsSyncSnapshotNode: ObvSyncSnapshotNode { + + private let domain: Set + private let autoAcceptGroupInviteFrom: ObvMessengerSettings.ContactsAndGroups.AutoAcceptGroupInviteFrom? + private let doSendReadReceipt: Bool? + + public let id = Self.generateIdentifier() + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case autoAcceptGroupInviteFrom = "auto_join_groups" + case doSendReadReceipt = "send_read_receipt" + case domain = "domain" + } + + private static let defaultDomain = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + + init(autoAcceptGroupInviteFrom: ObvMessengerSettings.ContactsAndGroups.AutoAcceptGroupInviteFrom, doSendReadReceipt: Bool) { + self.autoAcceptGroupInviteFrom = autoAcceptGroupInviteFrom + self.doSendReadReceipt = doSendReadReceipt + self.domain = Self.defaultDomain + } + + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(domain, forKey: .domain) + try container.encodeIfPresent(autoAcceptGroupInviteFrom?.rawValue, forKey: .autoAcceptGroupInviteFrom) + try container.encodeIfPresent(doSendReadReceipt, forKey: .doSendReadReceipt) + } + + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + if let rawAutoAcceptGroupInviteFrom = try values.decodeIfPresent(String.self, forKey: .autoAcceptGroupInviteFrom), + let _autoAcceptGroupInviteFrom = ObvMessengerSettings.ContactsAndGroups.AutoAcceptGroupInviteFrom(rawValue: rawAutoAcceptGroupInviteFrom) { + self.autoAcceptGroupInviteFrom = _autoAcceptGroupInviteFrom + } else { + self.autoAcceptGroupInviteFrom = nil + } + self.doSendReadReceipt = try values.decodeIfPresent(Bool.self, forKey: .doSendReadReceipt) + } + + public func useToUpdateGlobalSettings() { + + if domain.contains(.autoAcceptGroupInviteFrom), let autoAcceptGroupInviteFrom { + ObvMessengerSettings.ContactsAndGroups.setAutoAcceptGroupInviteFrom(to: autoAcceptGroupInviteFrom, changeMadeFromAnotherOwnedDevice: false, ownedCryptoId: nil) + } + + if domain.contains(.doSendReadReceipt), let doSendReadReceipt { + ObvMessengerSettings.Discussions.setDoSendReadReceipt(to: doSendReadReceipt, changeMadeFromAnotherOwnedDevice: false, ownedCryptoId: nil) + } + + } + + enum ObvError: Error { + case couldNotDeserializeAutoAcceptGroupInvite + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/ObvMessengerSettingsNotifications.swift b/Modules/ObvSettings/ObvMessengerSettingsNotifications.swift similarity index 91% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/ObvMessengerSettingsNotifications.swift rename to Modules/ObvSettings/ObvMessengerSettingsNotifications.swift index 712fcd92..bf93f00b 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/ObvMessengerSettingsNotifications.swift +++ b/Modules/ObvSettings/ObvMessengerSettingsNotifications.swift @@ -32,18 +32,18 @@ fileprivate struct OptionalWrapper { public enum ObvMessengerSettingsNotifications { case contactsSortOrderDidChange case preferredComposeMessageViewActionsDidChange - case isCallKitEnabledSettingDidChange case isIncludesCallsInRecentsEnabledSettingDidChange case performInteractionDonationSettingDidChange case identityColorStyleDidChange + case receiveCallsOnThisDeviceSettingDidChange private enum Name { case contactsSortOrderDidChange case preferredComposeMessageViewActionsDidChange - case isCallKitEnabledSettingDidChange case isIncludesCallsInRecentsEnabledSettingDidChange case performInteractionDonationSettingDidChange case identityColorStyleDidChange + case receiveCallsOnThisDeviceSettingDidChange private var namePrefix: String { String(describing: ObvMessengerSettingsNotifications.self) } @@ -58,10 +58,10 @@ public enum ObvMessengerSettingsNotifications { switch notification { case .contactsSortOrderDidChange: return Name.contactsSortOrderDidChange.name case .preferredComposeMessageViewActionsDidChange: return Name.preferredComposeMessageViewActionsDidChange.name - case .isCallKitEnabledSettingDidChange: return Name.isCallKitEnabledSettingDidChange.name case .isIncludesCallsInRecentsEnabledSettingDidChange: return Name.isIncludesCallsInRecentsEnabledSettingDidChange.name case .performInteractionDonationSettingDidChange: return Name.performInteractionDonationSettingDidChange.name case .identityColorStyleDidChange: return Name.identityColorStyleDidChange.name + case .receiveCallsOnThisDeviceSettingDidChange: return Name.receiveCallsOnThisDeviceSettingDidChange.name } } } @@ -72,14 +72,14 @@ public enum ObvMessengerSettingsNotifications { info = nil case .preferredComposeMessageViewActionsDidChange: info = nil - case .isCallKitEnabledSettingDidChange: - info = nil case .isIncludesCallsInRecentsEnabledSettingDidChange: info = nil case .performInteractionDonationSettingDidChange: info = nil case .identityColorStyleDidChange: info = nil + case .receiveCallsOnThisDeviceSettingDidChange: + info = nil } return info } @@ -123,13 +123,6 @@ public enum ObvMessengerSettingsNotifications { } } - public static func observeIsCallKitEnabledSettingDidChange(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { - let name = Name.isCallKitEnabledSettingDidChange.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - block() - } - } - public static func observeIsIncludesCallsInRecentsEnabledSettingDidChange(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { let name = Name.isIncludesCallsInRecentsEnabledSettingDidChange.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in @@ -151,4 +144,11 @@ public enum ObvMessengerSettingsNotifications { } } + public static func observeReceiveCallsOnThisDeviceSettingDidChange(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { + let name = Name.receiveCallsOnThisDeviceSettingDidChange.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + block() + } + } + } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataConstants.swift b/Modules/ObvSettings/ObvUICoreDataConstants.swift similarity index 87% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataConstants.swift rename to Modules/ObvSettings/ObvUICoreDataConstants.swift index 4435b798..dc0da1f3 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataConstants.swift +++ b/Modules/ObvSettings/ObvUICoreDataConstants.swift @@ -23,11 +23,11 @@ import ObvTypes public struct ObvUICoreDataConstants { - static let logSubsystem = "io.olvid.obvuicoredata" + public static let logSubsystem = "io.olvid.obvuicoredata" public static let minimumLengthOfPasswordForHiddenProfiles = 4 - static let seedLengthForHiddenProfiles = 8 + public static let seedLengthForHiddenProfiles = 8 static let appGroupIdentifier = Bundle.main.infoDictionary!["OBV_APP_GROUP_IDENTIFIER"]! as! String @@ -55,6 +55,21 @@ public struct ObvUICoreDataConstants { }() + static let targetEnvironmentIsMacCatalyst: Bool = { + #if targetEnvironment(macCatalyst) + return true + #else + return false + #endif + }() + + + /// We use CallKit under iOS and iPadOS only (not on a mac). And we do not use it when running Olvid in a simulator. + public static let useCallKit: Bool = { + Self.isRunningOnRealDevice && !Self.targetEnvironmentIsMacCatalyst + }() + + // Keys of userDefault properties shared between app and extensions public enum SharedUserDefaultsKey: String { @@ -107,8 +122,8 @@ public struct ObvUICoreDataConstants { /// This is for a place to store and process dropped attachments case forTemporaryDroppedItems - private var securityApplicationGroupURL: URL { - FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: ObvUICoreDataConstants.appGroupIdentifier)! + public static var securityApplicationGroupURL: URL { + FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: ObvUICoreDataConstants.appGroupIdentifier)!.resolvingSymlinksInPath() } public func appendingPathComponent(_ pathComponent: String) -> URL { @@ -126,9 +141,9 @@ public struct ObvUICoreDataConstants { public var url: URL { switch self { case .mainAppContainer: - return securityApplicationGroupURL.appendingPathComponent("Application", isDirectory: true) + return Self.securityApplicationGroupURL.appendingPathComponent("Application", isDirectory: true) case .mainEngineContainer: - return securityApplicationGroupURL.appendingPathComponent("Engine", isDirectory: true) + return Self.securityApplicationGroupURL.appendingPathComponent("Engine", isDirectory: true) case .forDatabase: return Self.mainAppContainer.url.appendingPathComponent("Database", isDirectory: true) case .forFyles: @@ -138,7 +153,7 @@ public struct ObvUICoreDataConstants { case .forTempFiles: return FileManager.default.temporaryDirectory case .forMessagesDecryptedWithinNotificationExtension: - return securityApplicationGroupURL.appendingPathComponent("MessagesDecryptedWithinNotificationExtension", isDirectory: true) + return Self.securityApplicationGroupURL.appendingPathComponent("MessagesDecryptedWithinNotificationExtension", isDirectory: true) case .forCache: return Self.mainAppContainer.url.appendingPathComponent("Cache", isDirectory: true) case .forTrash: @@ -152,7 +167,7 @@ public struct ObvUICoreDataConstants { case .forProfilePicturesCache: return Self.forCache.url.appendingPathComponent("ProfilePicture", isDirectory: true) case .forNotificationAttachments: - return securityApplicationGroupURL.appendingPathComponent("NotificationAttachments", isDirectory: true) + return Self.securityApplicationGroupURL.appendingPathComponent("NotificationAttachments", isDirectory: true) case .forFylesHardlinksWithinMainApp: return Self.mainAppContainer.url.appendingPathComponent("FylesHardLinks", isDirectory: true).appendingPathComponent(ObvUICoreDataConstants.AppType.mainApp.pathComponent, isDirectory: true) case .forFylesHardlinksWithinShareExtension: diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/Types/AuthenticationMethod.swift b/Modules/ObvSettings/Types/AuthenticationMethod.swift similarity index 92% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/Types/AuthenticationMethod.swift rename to Modules/ObvSettings/Types/AuthenticationMethod.swift index 595f5f56..bd18398c 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/Types/AuthenticationMethod.swift +++ b/Modules/ObvSettings/Types/AuthenticationMethod.swift @@ -45,12 +45,16 @@ public enum AuthenticationMethod { // We first check whether Touch ID or Face ID is unavailable or not enrolled if let biometryType = currentBiometricEnrollement() { switch biometryType { - case .none: break + case .none: + break case .touchID: return .touchID case .faceID: return .faceID - @unknown default: assertionFailure() + case .opticID: + break + @unknown default: + assertionFailure() } } else { // No authentication with biometrics, check if passcode is available diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/VoIPNotification/CallUpdateKind.swift b/Modules/ObvSettings/Types/ContactsSortOrder.swift similarity index 82% rename from iOSClient/ObvMessenger/ObvMessenger/VoIP/VoIPNotification/CallUpdateKind.swift rename to Modules/ObvSettings/Types/ContactsSortOrder.swift index c515b909..1f316a61 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/VoIPNotification/CallUpdateKind.swift +++ b/Modules/ObvSettings/Types/ContactsSortOrder.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -16,13 +16,11 @@ * You should have received a copy of the GNU Affero General Public License * along with Olvid. If not, see . */ - import Foundation -enum CallUpdateKind { - case state(newState: CallState) - case mute - case callParticipantChange +public enum ContactsSortOrder: Int, CaseIterable { + case byFirstName = 0 + case byLastName = 1 } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/Types/DurationOption.swift b/Modules/ObvSettings/Types/DurationOption.swift similarity index 100% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/Types/DurationOption.swift rename to Modules/ObvSettings/Types/DurationOption.swift diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/Types/LocalAuthenticationPolicy.swift b/Modules/ObvSettings/Types/LocalAuthenticationPolicy.swift similarity index 97% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/Types/LocalAuthenticationPolicy.swift rename to Modules/ObvSettings/Types/LocalAuthenticationPolicy.swift index cbd96c9a..4ab69531 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/Types/LocalAuthenticationPolicy.swift +++ b/Modules/ObvSettings/Types/LocalAuthenticationPolicy.swift @@ -20,7 +20,7 @@ import Foundation -public enum LocalAuthenticationPolicy: Int, CaseIterable { +public enum ObvLocalAuthenticationPolicy: Int, CaseIterable { // No authentication case none // User authentication with biometry, Apple Watch, or the device passcode. diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/Types/MentionNotificationMode.swift b/Modules/ObvSettings/Types/MentionNotificationMode.swift similarity index 100% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/Types/MentionNotificationMode.swift rename to Modules/ObvSettings/Types/MentionNotificationMode.swift diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/Types/NewComposeMessageViewAction.swift b/Modules/ObvSettings/Types/NewComposeMessageViewAction.swift similarity index 100% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/Types/NewComposeMessageViewAction.swift rename to Modules/ObvSettings/Types/NewComposeMessageViewAction.swift diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Enums/NotificationSound.swift b/Modules/ObvSettings/Types/NotificationSound.swift similarity index 97% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Enums/NotificationSound.swift rename to Modules/ObvSettings/Types/NotificationSound.swift index 17077441..3ee4f729 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Enums/NotificationSound.swift +++ b/Modules/ObvSettings/Types/NotificationSound.swift @@ -160,3 +160,10 @@ public enum NotificationSound: String, Sound, CaseIterable { return Category(rawValue: rawCategory) } } + + +public protocol Sound: Hashable { + var filename: String? { get } + var loops: Bool { get } + var feedback: UINotificationFeedbackGenerator.FeedbackType? { get } +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/UserDefaults+Extension.swift b/Modules/ObvSettings/UserDefaults+Extension.swift similarity index 100% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/UserDefaults+Extension.swift rename to Modules/ObvSettings/UserDefaults+Extension.swift diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Elements/Buttons/ObvImageButton.swift b/Modules/OlvidUI/ObvUI/ObvUI/Elements/Buttons/ObvImageButton.swift index 3b649c3a..89ae78b9 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Elements/Buttons/ObvImageButton.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Elements/Buttons/ObvImageButton.swift @@ -20,6 +20,8 @@ import UIKit import UI_SystemIcon import UI_SystemIcon_UIKit +import ObvDesignSystem + /// This `UIButton` subclass is the UIKit equivalent of the `OlvidButton` used in our SwiftUI structs. public final class ObvImageButton: UIButton { @@ -42,8 +44,8 @@ public final class ObvImageButton: UIButton { layer.cornerRadius = 12.0 layer.cornerCurve = .continuous resetColors() - titleEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) - imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 8) + //titleEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) + //imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 8) } @@ -92,7 +94,7 @@ public final class ObvImageButton: UIButton { internal func resetColors() { setTitleColor(.white, for: .normal) setTitleColor(.white.withAlphaComponent(0.2), for: .highlighted) - adjustsImageWhenHighlighted = false + // adjustsImageWhenHighlighted = false if !isEnabled { self.backgroundColor = AppTheme.shared.colorScheme.secondarySystemFill } else { diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/CircledInitialsConfiguration+Utils.swift b/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/CircledInitialsConfiguration+Utils.swift index 7d7df6fd..b84a2eb2 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/CircledInitialsConfiguration+Utils.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/CircledInitialsConfiguration+Utils.swift @@ -21,10 +21,14 @@ import Foundation import ObvUICoreData import UIKit import ObvTypes -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials import UI_SystemIcon +import ObvDesignSystem + extension CircledInitialsConfiguration { + + public enum ContentType { case none case icon(SystemIcon, UIColor) @@ -32,13 +36,14 @@ extension CircledInitialsConfiguration { case picture(UIImage) } - public var icon: SystemIcon? { - switch self { - case .contact: return nil - case .group, .groupV2: return .person3Fill - case .icon(let icon): return icon.icon - } - } +// public var icon: SystemIcon { +// switch self { +// case .contact: return .person +// case .group, .groupV2: return .person3Fill +// case .icon(let icon): return icon.icon +// } +// } + public func contentType(using style: IdentityColorStyle) -> ContentType { if let image = self.photo { @@ -52,36 +57,36 @@ extension CircledInitialsConfiguration { } } - public func backgroundColor(appTheme: AppTheme, using style: IdentityColorStyle = ObvMessengerSettings.Interface.identityColorStyle) -> UIColor { - switch self { - case .contact(initial: _, photoURL: _, showGreenShield: _, showRedShield: _, cryptoId: let cryptoId, tintAdjustementMode: _): - return appTheme.identityColors(for: cryptoId, using: style).background - case .group(photoURL: _, groupUid: let groupUid): - return appTheme.groupColors(forGroupUid: groupUid, using: style).background - case .groupV2(photoURL: _, groupIdentifier: let groupIdentifier, showGreenShield: _): - return appTheme.groupV2Colors(forGroupIdentifier: groupIdentifier).background - case .icon: - return appTheme.colorScheme.systemFill - } - } - - - public func foregroundColor(appTheme: AppTheme, using style: IdentityColorStyle = ObvMessengerSettings.Interface.identityColorStyle) -> UIColor { - switch self { - case .contact(initial: _, photoURL: _, showGreenShield: _, showRedShield: _, cryptoId: let cryptoId, tintAdjustementMode: _): - return appTheme.identityColors(for: cryptoId, using: style).text - case .group(photoURL: _, groupUid: let groupUid): - return appTheme.groupColors(forGroupUid: groupUid, using: style).text - case .groupV2(photoURL: _, groupIdentifier: let groupIdentifier, showGreenShield: _): - return appTheme.groupV2Colors(forGroupIdentifier: groupIdentifier).text - case .icon: - return appTheme.colorScheme.secondaryLabel - } - } + +// public func backgroundColor(appTheme: AppTheme, using style: IdentityColorStyle = ObvMessengerSettings.Interface.identityColorStyle) -> UIColor { +// switch self { +// case .contact(initial: _, photo: _, showGreenShield: _, showRedShield: _, cryptoId: let cryptoId, tintAdjustementMode: _): +// return appTheme.identityColors(for: cryptoId, using: style).background +// case .group(photo: _, groupUid: let groupUid): +// return appTheme.groupColors(forGroupUid: groupUid, using: style).background +// case .groupV2(photo: _, groupIdentifier: let groupIdentifier, showGreenShield: _): +// return appTheme.groupV2Colors(forGroupIdentifier: groupIdentifier).background +// case .icon: +// return appTheme.colorScheme.systemFill +// } +// } +// +// +// public func foregroundColor(appTheme: AppTheme, using style: IdentityColorStyle = ObvMessengerSettings.Interface.identityColorStyle) -> UIColor { +// switch self { +// case .contact(initial: _, photo: _, showGreenShield: _, showRedShield: _, cryptoId: let cryptoId, tintAdjustementMode: _): +// return appTheme.identityColors(for: cryptoId, using: style).text +// case .group(photo: _, groupUid: let groupUid): +// return appTheme.groupColors(forGroupUid: groupUid, using: style).text +// case .groupV2(photo: _, groupIdentifier: let groupIdentifier, showGreenShield: _): +// return appTheme.groupV2Colors(forGroupIdentifier: groupIdentifier).text +// case .icon: +// return appTheme.colorScheme.secondaryLabel +// } +// } private func iconInfo(using style: IdentityColorStyle) -> (icon: SystemIcon, tintColor: UIColor)? { - guard let icon else { return nil } return (icon, foregroundColor(appTheme: AppTheme.shared, using: style)) } } diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/CircledInitialsView.swift b/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/CircledInitialsView.swift index 0d7c536e..fc7344c2 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/CircledInitialsView.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/CircledInitialsView.swift @@ -16,14 +16,15 @@ * You should have received a copy of the GNU Affero General Public License * along with Olvid. If not, see . */ - import Foundation import ObvUICoreData import SwiftUI -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials import UI_SystemIcon import UI_SystemIcon_SwiftUI +import ObvDesignSystem + // MARK: - SwiftUINewCircledInitialsView public struct CircledInitialsView: View { @@ -91,7 +92,7 @@ fileprivate struct RoundedClipView: View { case .icon(let icon, let color): return AnyView(createIconView(using: icon, color: color)) case .initial(let text, let color): return AnyView(createInitialView(using: text, color: color)) case .picture(let image): return AnyView(createPictureView(using: image)) - case .none: return AnyView(Text("")) + case .none: return AnyView(Text(verbatim: "")) } } diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/NewCircledInitialsView.swift b/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/NewCircledInitialsView.swift index 557fd699..82ddf5f7 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/NewCircledInitialsView.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/NewCircledInitialsView.swift @@ -20,8 +20,11 @@ import SwiftUI import UIKit import ObvUICoreData -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials import UI_SystemIcon +import ObvDesignSystem +import ObvSettings + // MARK: - NewCircledInitialsView /// Square view, with a rounded clip view allowing to display either an icon, an initial (letter), or a photo. @@ -53,7 +56,7 @@ public final class NewCircledInitialsView: UIView { setupIconView(icon: configuration.icon, tintColor: configuration.foregroundColor(appTheme: AppTheme.shared, using: ObvMessengerSettings.Interface.identityColorStyle)) switch configuration { - case .contact(let initial, let photoURL, let showGreenShield, let showRedShield, let cryptoId, let tintAdjustmentMode): + case .contact(let initial, let photo, let showGreenShield, let showRedShield, let cryptoId, let tintAdjustmentMode): let textColor: UIColor let roundedClipViewBackgroundColor: UIColor @@ -72,20 +75,24 @@ public final class NewCircledInitialsView: UIView { setupInitialView(string: initial, textColor: textColor) roundedClipView.backgroundColor = roundedClipViewBackgroundColor - setupPictureView(imageURL: photoURL) + setupPictureView(photo: photo) greenShieldView.isHidden = !showGreenShield redShieldView.isHidden = !showRedShield - case .group(let photoURL, _): - setupPictureView(imageURL: photoURL) + case .group(let photo, _): + setupPictureView(photo: photo) greenShieldView.isHidden = true redShieldView.isHidden = true - case .groupV2(photoURL: let photoURL, groupIdentifier: _, showGreenShield: let showGreenShield): - setupPictureView(imageURL: photoURL) + case .groupV2(photo: let photo, groupIdentifier: _, showGreenShield: let showGreenShield): + setupPictureView(photo: photo) greenShieldView.isHidden = !showGreenShield redShieldView.isHidden = true case .icon: greenShieldView.isHidden = true redShieldView.isHidden = true + case .photo(photo: let photo): + setupPictureView(photo: photo) + greenShieldView.isHidden = true + redShieldView.isHidden = true } } @@ -126,28 +133,45 @@ public final class NewCircledInitialsView: UIView { } - private func setupPictureView(imageURL: URL?) { - guard let imageURL = imageURL else { - pictureView.image = nil - pictureView.isHidden = true - return - } - guard FileManager.default.fileExists(atPath: imageURL.path) else { - // This happens when we are in the middle of a group details edition. - // The imageURL should soon be changed to a valid one. + private func setupPictureView(photo: CircledInitialsConfiguration.Photo?) { + guard let photo else { pictureView.image = nil pictureView.isHidden = true return } - guard let data = try? Data(contentsOf: imageURL) else { - pictureView.image = nil - pictureView.isHidden = true - return - } - guard let image = UIImage(data: data) else { - pictureView.image = nil - pictureView.isHidden = true - return + let image: UIImage + switch photo { + case .url(let imageURL): + guard let imageURL = imageURL else { + pictureView.image = nil + pictureView.isHidden = true + return + } + guard FileManager.default.fileExists(atPath: imageURL.path) else { + // This happens when we are in the middle of a group details edition. + // The imageURL should soon be changed to a valid one. + pictureView.image = nil + pictureView.isHidden = true + return + } + guard let data = try? Data(contentsOf: imageURL) else { + pictureView.image = nil + pictureView.isHidden = true + return + } + guard let _image = UIImage(data: data) else { + pictureView.image = nil + pictureView.isHidden = true + return + } + image = _image + case .image(let _image): + guard let _image else { + pictureView.image = nil + pictureView.isHidden = true + return + } + image = _image } pictureView.image = image pictureView.isHidden = false diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/SwiftUI/BlurView.swift b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/SwiftUI/BlurView.swift similarity index 76% rename from iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/SwiftUI/BlurView.swift rename to Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/SwiftUI/BlurView.swift index ff53a78b..029a023a 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/SwiftUI/BlurView.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/SwiftUI/BlurView.swift @@ -22,21 +22,21 @@ import SwiftUI -struct BlurView: UIViewRepresentable { - typealias UIViewType = UIVisualEffectView +public struct BlurView: UIViewRepresentable { + public typealias UIViewType = UIVisualEffectView let style: UIBlurEffect.Style - init(style: UIBlurEffect.Style = .systemUltraThinMaterial) { + public init(style: UIBlurEffect.Style = .systemUltraThinMaterial) { self.style = style } - func makeUIView(context: Context) -> UIVisualEffectView { + public func makeUIView(context: Context) -> UIVisualEffectView { let blurEffect = UIBlurEffect(style: style) return UIVisualEffectView(effect: blurEffect) } - func updateUIView(_ uiView: UIVisualEffectView, context: Context) { + public func updateUIView(_ uiView: UIVisualEffectView, context: Context) { let blurEffect = UIBlurEffect(style: style) uiView.effect = blurEffect } diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/SwiftUI/HUDView.swift b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/SwiftUI/HUDView.swift similarity index 81% rename from iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/SwiftUI/HUDView.swift rename to Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/SwiftUI/HUDView.swift index 6660defa..ece1cc47 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/SwiftUI/HUDView.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/SwiftUI/HUDView.swift @@ -17,25 +17,32 @@ * along with Olvid. If not, see . */ -import ObvUI import SwiftUI +import ObvDesignSystem -struct HUDView: View { +public struct HUDView: View { - enum Category { + public enum Category { case progress case checkmark + case xmark } let category: Category + + public init(category: Category) { + self.category = category + } - var body: some View { + public var body: some View { switch category { case .progress: HUDInnerView(category: .progress) case .checkmark: HUDInnerView(category: .checkmark) + case .xmark: + HUDInnerView(category: .xmark) } } @@ -57,10 +64,15 @@ fileprivate struct HUDInnerView: View { Group { switch category { case .progress: - ObvActivityIndicator(isAnimating: .constant(true), style: .large, color: nil) + ProgressView() + .controlSize(.large) .frame(width: width, height: height, alignment: .center) case .checkmark: - Image(systemName: "checkmark.circle") + Image(systemIcon: .checkmarkCircle) + .font(Font.system(size: 80)) + .foregroundColor(Color(AppTheme.shared.colorScheme.tertiaryLabel)) + case .xmark: + Image(systemIcon: .xmarkCircle) .font(Font.system(size: 80)) .foregroundColor(Color(AppTheme.shared.colorScheme.tertiaryLabel)) } @@ -94,7 +106,7 @@ struct HUDView_Previews: PreviewProvider { HUDView(category: .progress) .padding() ZStack { - Text("Some string for testing only") + Text(verbatim: "Some string for testing only") .frame(width: 200, height: 200 , alignment: .center) HUDView(category: .checkmark) diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/HUDs/ObvHUDView.swift b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/HUDs/ObvHUDView.swift similarity index 96% rename from iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/HUDs/ObvHUDView.swift rename to Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/HUDs/ObvHUDView.swift index fb6298d2..ee13b041 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/HUDs/ObvHUDView.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/HUDs/ObvHUDView.swift @@ -37,7 +37,7 @@ class ObvHUDView: UIView { self.clipsToBounds = true self.layer.cornerRadius = 8 - backgroundColor = appTheme.colorScheme.secondarySystemFill + backgroundColor = .secondarySystemFill let blurEffect = UIBlurEffect(style: .systemThinMaterial) let blurEffectView = UIVisualEffectView(effect: blurEffect) diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/HUDs/ObvIconHUD.swift b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/HUDs/ObvIconHUD.swift similarity index 95% rename from iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/HUDs/ObvIconHUD.swift rename to Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/HUDs/ObvIconHUD.swift index 00ffe7e6..6142c2dc 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/HUDs/ObvIconHUD.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/HUDs/ObvIconHUD.swift @@ -17,7 +17,6 @@ * along with Olvid. If not, see . */ -import ObvUI import UIKit import UI_SystemIcon import UI_SystemIcon_UIKit @@ -46,7 +45,7 @@ final class ObvIconHUD: ObvHUDView { addSubview(imageView) imageView.translatesAutoresizingMaskIntoConstraints = false imageView.contentMode = .scaleAspectFit - imageView.tintColor = appTheme.colorScheme.secondaryLabel + imageView.tintColor = .secondaryLabel let constraints = [ imageView.centerXAnchor.constraint(equalTo: centerXAnchor), diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/HUDs/ObvLoadingHUD.swift b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/HUDs/ObvLoadingHUD.swift similarity index 100% rename from iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/HUDs/ObvLoadingHUD.swift rename to Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/HUDs/ObvLoadingHUD.swift diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/HUDs/ObvTextHUD.swift b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/HUDs/ObvTextHUD.swift similarity index 96% rename from iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/HUDs/ObvTextHUD.swift rename to Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/HUDs/ObvTextHUD.swift index 3175d0d8..5fcabcea 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/HUDs/ObvTextHUD.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/HUDs/ObvTextHUD.swift @@ -42,7 +42,7 @@ final class ObvTextHUD: ObvHUDView { addSubview(uiLabel) uiLabel.translatesAutoresizingMaskIntoConstraints = false - uiLabel.textColor = appTheme.colorScheme.secondaryLabel + uiLabel.textColor = .secondaryLabel uiLabel.backgroundColor = .clear uiLabel.font = UIFont.preferredFont(forTextStyle: .largeTitle) uiLabel.textAlignment = .center diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/ObvCanShowHUD.swift b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/ObvCanShowHUD.swift similarity index 96% rename from iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/ObvCanShowHUD.swift rename to Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/ObvCanShowHUD.swift index 2236e3b1..8478496f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/ObvCanShowHUD.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/ObvCanShowHUD.swift @@ -20,7 +20,7 @@ import Foundation -protocol ObvCanShowHUD { +public protocol ObvCanShowHUD { func showHUD(type: ObvHUDType, completionHandler: (() -> Void)?) func hideHUD() diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/ObvHUDType.swift b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/ObvHUDType.swift similarity index 96% rename from iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/ObvHUDType.swift rename to Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/ObvHUDType.swift index d2ca23d4..9677ecbf 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/ObvHUDType.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/ObvHUDType.swift @@ -18,10 +18,9 @@ */ import Foundation -import ObvUI import UI_SystemIcon -enum ObvHUDType { +public enum ObvHUDType { case checkmark case xmark case spinner diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/UIViewController+ObvCanShowHUD.swift b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/UIViewController+ObvCanShowHUD.swift similarity index 90% rename from iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/UIViewController+ObvCanShowHUD.swift rename to Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/UIViewController+ObvCanShowHUD.swift index d60081e7..21f45144 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/HUD/UIKit/UIViewController+ObvCanShowHUD.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Elements/HUD/UIKit/UIViewController+ObvCanShowHUD.swift @@ -22,7 +22,15 @@ import UIKit extension UIViewController: ObvCanShowHUD { - func showHUD(type: ObvHUDType, completionHandler: (() -> Void)? = nil) { + public func showHUDAndAwaitAnimationEnd(type: ObvHUDType) async { + await withCheckedContinuation { (continuation: CheckedContinuation) in + showHUD(type: type) { + continuation.resume() + } + } + } + + public func showHUD(type: ObvHUDType, completionHandler: (() -> Void)? = nil) { assert(Thread.isMainThread) hideHUD() @@ -87,7 +95,7 @@ extension UIViewController: ObvCanShowHUD { } - func hudIsShown() -> Bool { + public func hudIsShown() -> Bool { for subview in view.subviews { if subview is ObvHUDView { return true @@ -103,7 +111,7 @@ extension UIViewController: ObvCanShowHUD { } - func hideHUD() { + public func hideHUD() { let hudViews = findAllHUDs() guard !hudViews.isEmpty else { return } diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Localizable.xcstrings b/Modules/OlvidUI/ObvUI/ObvUI/Localizable.xcstrings new file mode 100644 index 00000000..1d838579 --- /dev/null +++ b/Modules/OlvidUI/ObvUI/ObvUI/Localizable.xcstrings @@ -0,0 +1,1777 @@ +{ + "sourceLanguage" : "en", + "strings" : { + "ARE_YOU_KIDDING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Are you kidding?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous plaisantez ?" + } + } + } + }, + "BASSOON" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bassoon" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Basson" + } + } + } + }, + "BELL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bell" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cloche" + } + } + } + }, + "BIRD_CARDINAL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cardinal" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cardinal" + } + } + } + }, + "BIRD_COQUI" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Coqui" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Francolin coqui" + } + } + } + }, + "BIRD_CROW" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Crow" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Corbeau" + } + } + } + }, + "BIRD_CUCKOO" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cuckoo" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Coucou" + } + } + } + }, + "BIRD_DUCK_QUACK" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Duck" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Canard" + } + } + } + }, + "BIRD_DUCK_QUACKS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Duck quacks" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Coin-coin" + } + } + } + }, + "BIRD_EAGLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eagle" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aigle" + } + } + } + }, + "BIRD_IN_FOREST" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bird in the forest" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oiseau dans la forêt" + } + } + } + }, + "BIRD_MAGPIE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Magpie" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pie" + } + } + } + }, + "BIRD_OWL_HORNED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Horned owl" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hibou à cornes" + } + } + } + }, + "BIRD_OWL_TAWNY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tawny owl" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chouette hulotte" + } + } + } + }, + "BIRD_TWEET" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bird Tweet" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cui-cui" + } + } + } + }, + "BIRD_WARNING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hawk" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Buse" + } + } + } + }, + "BLOCK" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Block" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bloquer" + } + } + } + }, + "BRASS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Brass" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cuivres" + } + } + } + }, + "BRING_THE_DRAMA" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bring the drama" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Feu aux poudres" + } + } + } + }, + "BUSY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Busy" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Occupé" + } + } + } + }, + "CALM" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Calm" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Calme" + } + } + } + }, + "CHICKEN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chicken" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Poulet" + } + } + } + }, + "CHICKEN_ROOSTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rooster 1" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Coq 1" + } + } + } + }, + "CHICKEN_ROSTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rooster 2" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Coq 2" + } + } + } + }, + "CHIME" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chime" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Carillon" + } + } + } + }, + "CICADA" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cicada" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cigale" + } + } + } + }, + "CIRCUS_CLOWN_HORN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Circus clown horn" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Corne de clown" + } + } + } + }, + "CLARINET" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clarinet" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clarinette" + } + } + } + }, + "CLAV_FLY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kemence" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Guitare" + } + } + } + }, + "CLAV_GUITAR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cura" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cura" + } + } + } + }, + "CLOUD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cloud" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nuage" + } + } + } + }, + "COW_MOO" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cow" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vache" + } + } + } + }, + "DISCUSSIONS_LIST_SELECTION_PLACEHOLDER_CELL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Select one or more discussions" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sélectionnez une ou plusieurs discussions" + } + } + } + }, + "ELEPHANT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Elephant" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Éléphant" + } + } + } + }, + "ENOUGH_WITH_THE_TALKING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enough with the talking" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Assez parlé" + } + } + } + }, + "FIFTEEN_DAYS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "15 days" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "15 jours" + } + } + } + }, + "FIVE_MINUTE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "5 minutes" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "5 minutes" + } + } + } + }, + "FIVE_SECONDS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "5 seconds" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "5 secondes" + } + } + } + }, + "FIVE_YEAR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "5 years" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "5 ans" + } + } + } + }, + "FLUTE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Flute" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Flûte" + } + } + } + }, + "FRENZY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Frenzy" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Frénésie" + } + } + } + }, + "FROG" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Frog" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Grenouille" + } + } + } + }, + "FUNNY_FANFARE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Funny fanfare" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Drôle de fanfare" + } + } + } + }, + "GLOCKENSPIEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Glockenspiel" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Carillon" + } + } + } + }, + "GOAT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Goat" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chèvre" + } + } + } + }, + "HARP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Harp" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Harpe" + } + } + } + }, + "HEY_CHAMP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hey champ" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hé, champion !" + } + } + } + }, + "HORN_BOAT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fog horn" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Corne de brume" + } + } + } + }, + "HORN_BUS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bus Horn" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Klaxon de bus" + } + } + } + }, + "HORN_CAR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Car Horn" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Klaxon automobile" + } + } + } + }, + "HORN_DIXIE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "1916 car horn" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Klaxon 1916" + } + } + } + }, + "HORN_TAXI" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Taxi horn" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Klaxon de taxi" + } + } + } + }, + "HORN_TRAIN_1" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Train horn 1" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Train 1" + } + } + } + }, + "HORN_TRAIN_2" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Train horn 2" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Train 2" + } + } + } + }, + "HORSE_WHINNIES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Horse" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cheval" + } + } + } + }, + "KOTO" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Koto" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Koto" + } + } + } + }, + "MODULAR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modular" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modulaire" + } + } + } + }, + "NESTLING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nestling" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nid d'abeilles" + } + } + } + }, + "NICE_CUT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nice cut" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jolie coupe" + } + } + } + }, + "NINETY_DAYS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "90 days" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "90 jours" + } + } + } + }, + "NO_SOUNDS" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "None" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun" + } + } + } + }, + "OBOE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oboe" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hautbois" + } + } + } + }, + "OH_REALLY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oh really" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oh vraiment" + } + } + } + }, + "ONE_DAY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 day" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 jour" + } + } + } + }, + "ONE_HOUR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 hour" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 heure" + } + } + } + }, + "ONE_HUNDRED_AND_HEIGHTY_DAYS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "180 days" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "180 jours" + } + } + } + }, + "ONE_MINUTE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 minute" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 minute" + } + } + } + }, + "ONE_YEAR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 year" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 an" + } + } + } + }, + "ORINGZ" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oring" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Anneau" + } + } + } + }, + "PANTHERA" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Panthera" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Panthère" + } + } + } + }, + "PARANOID" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paranoid" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paranoïaque" + } + } + } + }, + "PIANO" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Piano" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Piano" + } + } + } + }, + "PIPA" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pipa" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pipa" + } + } + } + }, + "POLITE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Polite" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Poli" + } + } + } + }, + "PUPPY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Puppy" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chiot" + } + } + } + }, + "SAXO" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Saxo" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Saxo" + } + } + } + }, + "SEVEN_DAYS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "7 days" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "7 jours" + } + } + } + }, + "SHEEP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sheep" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mouton" + } + } + } + }, + "SIX_HOUR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "6 hours" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "6 heures" + } + } + } + }, + "SONAR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sonar" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sonar" + } + } + } + }, + "SPRINGY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Springy" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ressort" + } + } + } + }, + "STRIKE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Strike" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Frappe" + } + } + } + }, + "STRINGS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Strings" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cordes" + } + } + } + }, + "SYNTH_AIRSHIP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synth Airship" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synthé airship" + } + } + } + }, + "SYNTH_CHORDAL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synth Chordal" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synthé cordes" + } + } + } + }, + "SYNTH_COSMIC" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synth Cosmic" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synthé cosmique" + } + } + } + }, + "SYNTH_DROPLETS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synth Droplets" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synthé gouttelettes" + } + } + } + }, + "SYNTH_EMOTIVE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synth Emotive" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synthé émotif" + } + } + } + }, + "SYNTH_FM" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synth FM" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synthé FM" + } + } + } + }, + "SYNTH_LUSHARP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synth LushArp" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synthé luxuriant" + } + } + } + }, + "SYNTH_PECUSSIVE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synth Percussive" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synthé percussif" + } + } + } + }, + "SYNTH_QUANTIZER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synth Quantizer" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synthé quantizer" + } + } + } + }, + "SYSTEM_SOUND" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "System sound" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Son système" + } + } + } + }, + "TAP_TO_CANCEL" : { + "localizations" : { + "en" : { + "variations" : { + "device" : { + "mac" : { + "stringUnit" : { + "state" : "translated", + "value" : "Click to cancel" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tap to cancel" + } + } + } + } + }, + "fr" : { + "variations" : { + "device" : { + "mac" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cliquez pour annuler" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touchez pour annuler" + } + } + } + } + } + } + }, + "TEN_SECONDS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "10 seconds" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "10 secondes" + } + } + } + }, + "THIRTY_DAYS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 days" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 jours" + } + } + } + }, + "THIRTY_MINUTES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 minutes" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 minutes" + } + } + } + }, + "THIRTY_SECONDS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 seconds" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 secondes" + } + } + } + }, + "THREE_YEAR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 years" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 ans" + } + } + } + }, + "TIGER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tiger" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tigre" + } + } + } + }, + "TURKEY_GOBBLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Turkey" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dinde" + } + } + } + }, + "TURKEY_NOISES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Turkeys" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dindes" + } + } + } + }, + "TWELVE_HOURS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "12 hours" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "12 heures" + } + } + } + }, + "TWO_DAYS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "2 days" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "2 jours" + } + } + } + }, + "Unlimited" : { + "comment" : "Unlimited word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unlimited" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Illimité" + } + } + } + }, + "UNPHASED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unphased" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Déphasé" + } + } + } + }, + "UNSTRUNG" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unstrung" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Décordé" + } + } + } + }, + "WEIRD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Weird" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bizarre" + } + } + } + }, + "WOODBLOCK" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Woodblock" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Woodblock" + } + } + } + } + }, + "version" : "1.0" +} \ No newline at end of file diff --git a/Modules/OlvidUI/ObvUI/ObvUI/LocalizableClassForObvUIBundle.swift b/Modules/OlvidUI/ObvUI/ObvUI/LocalizableClassForObvUIBundle.swift new file mode 100644 index 00000000..e6abd813 --- /dev/null +++ b/Modules/OlvidUI/ObvUI/ObvUI/LocalizableClassForObvUIBundle.swift @@ -0,0 +1,44 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI + + +/// This is a dummy class, allowing to specify the appropriate module when declaring a localized string, so that the localized string key is looked up in the correct `Localizable.xcstrings` file. +final class LocalizableClassForObvUIBundle {} + + +func NSLocalizedString(_ key: String, comment: String) -> String { + return NSLocalizedString(key, tableName: "Localizable", bundle: Bundle(for: LocalizableClassForObvUIBundle.self), comment: comment) +} + + +func NSLocalizedString(_ key: String) -> String { + return NSLocalizedString(key, tableName: "Localizable", bundle: Bundle(for: LocalizableClassForObvUIBundle.self), comment: "Within ObvUI") +} + + +extension Text { + + init(_ key: LocalizedStringKey, comment: StaticString? = nil) { + self.init(key, tableName: "Localizable", bundle: Bundle(for: LocalizableClassForObvUIBundle.self), comment: comment ?? "Within ObvUI") + } + +} diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Modules/DiscussionsSelectionViewController/DiscussionsSelectionViewController.swift b/Modules/OlvidUI/ObvUI/ObvUI/Modules/DiscussionsSelectionViewController/DiscussionsSelectionViewController.swift index d1a63411..bc398892 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Modules/DiscussionsSelectionViewController/DiscussionsSelectionViewController.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Modules/DiscussionsSelectionViewController/DiscussionsSelectionViewController.swift @@ -20,9 +20,9 @@ import UIKit import CoreData -import ObvEngine import ObvTypes import ObvUICoreData +import ObvDesignSystem public protocol DiscussionsSelectionViewControllerDelegate: AnyObject { diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/Cell/NewDiscussionsSelectionViewControllerCell.swift b/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/Cell/NewDiscussionsSelectionViewControllerCell.swift index bd5dd9a2..73b1c8ac 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/Cell/NewDiscussionsSelectionViewControllerCell.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/Cell/NewDiscussionsSelectionViewControllerCell.swift @@ -20,6 +20,8 @@ import Foundation import SwiftUI import UIKit +import ObvDesignSystem + @available(iOS 16.0, *) private let kCircledInitialsViewSize = CircledInitialsView.Size.small diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/Cell/NewDiscussionsSelectionViewControllerCellViewModel.swift b/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/Cell/NewDiscussionsSelectionViewControllerCellViewModel.swift index 91699694..a616c6cc 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/Cell/NewDiscussionsSelectionViewControllerCellViewModel.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/Cell/NewDiscussionsSelectionViewControllerCellViewModel.swift @@ -20,7 +20,10 @@ import Foundation import CoreData import ObvUICoreData -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvDesignSystem +import ObvSettings + @available(iOS 16.0, *) extension NewDiscussionsSelectionViewController.Cell { diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/HorizontalListOfSelectedDiscussionsViewController/Cell/HorizontalListOfSelectedDiscussionsCell.swift b/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/HorizontalListOfSelectedDiscussionsViewController/Cell/HorizontalListOfSelectedDiscussionsCell.swift index 4bc85776..9204fda3 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/HorizontalListOfSelectedDiscussionsViewController/Cell/HorizontalListOfSelectedDiscussionsCell.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/HorizontalListOfSelectedDiscussionsViewController/Cell/HorizontalListOfSelectedDiscussionsCell.swift @@ -23,7 +23,9 @@ import Foundation import ObvUICoreData import SwiftUI import UIKit -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvDesignSystem + @available(iOS 16.0, *) extension HorizontalListOfSelectedDiscussionsViewController { diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/HorizontalListOfSelectedDiscussionsViewController/Cell/HorizontalListOfSelectedDiscussionsCellViewModel.swift b/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/HorizontalListOfSelectedDiscussionsViewController/Cell/HorizontalListOfSelectedDiscussionsCellViewModel.swift index 2e706f80..6b8409c7 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/HorizontalListOfSelectedDiscussionsViewController/Cell/HorizontalListOfSelectedDiscussionsCellViewModel.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/HorizontalListOfSelectedDiscussionsViewController/Cell/HorizontalListOfSelectedDiscussionsCellViewModel.swift @@ -16,14 +16,16 @@ * You should have received a copy of the GNU Affero General Public License * along with Olvid. If not, see . */ - import Foundation import Combine import CoreData import ObvUICoreData import os.log -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvDesignSystem +import ObvSettings + @available(iOS 16, *) extension HorizontalListOfSelectedDiscussionsViewController.Cell { @@ -60,7 +62,7 @@ extension HorizontalListOfSelectedDiscussionsViewController.Cell.ViewModel { case .groupV2(withGroup: let group): if let group { - subtitle = String.localizedStringWithFormat(NSLocalizedString("WITH_N_PARTICIPANTS", comment: ""), group.otherMembers.count) + subtitle = String(format: "WITH_N_PARTICIPANTS", group.otherMembers.count) } else { subtitle = nil } @@ -68,7 +70,7 @@ extension HorizontalListOfSelectedDiscussionsViewController.Cell.ViewModel { case .groupV1(withContactGroup: let group): if let group { - subtitle = String.localizedStringWithFormat(NSLocalizedString("WITH_N_PARTICIPANTS", comment: ""), group.contactIdentities.count) + subtitle = String(format: "WITH_N_PARTICIPANTS", group.contactIdentities.count) } else { subtitle = nil } diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/HorizontalListOfSelectedDiscussionsViewController/Cell/HorizontalListOfSelectedDiscussionsPlaceholderCell.swift b/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/HorizontalListOfSelectedDiscussionsViewController/Cell/HorizontalListOfSelectedDiscussionsPlaceholderCell.swift index 87daaac5..d038865d 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/HorizontalListOfSelectedDiscussionsViewController/Cell/HorizontalListOfSelectedDiscussionsPlaceholderCell.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Modules/NewDiscussionsSelectionViewController/HorizontalListOfSelectedDiscussionsViewController/Cell/HorizontalListOfSelectedDiscussionsPlaceholderCell.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -21,6 +21,7 @@ import Foundation import SwiftUI import UIKit +import ObvDesignSystem @available(iOS 16.0, *) @@ -35,7 +36,7 @@ extension HorizontalListOfSelectedDiscussionsViewController { override func updateConfiguration(using state: UICellConfigurationState) { contentConfiguration = UIHostingConfiguration { HStack(alignment: .center) { - Text(NSLocalizedString("DISCUSSIONS_LIST_SELECTION_PLACEHOLDER_CELL", bundle: Bundle(for: Self.self), comment: "")) + Text("DISCUSSIONS_LIST_SELECTION_PLACEHOLDER_CELL") .foregroundColor(Color(AppTheme.shared.colorScheme.label)) .font(.headline) } diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Utils/DurationOption+Utils.swift b/Modules/OlvidUI/ObvUI/ObvUI/Utils/DurationOption+Utils.swift index 6f3c2109..04fa0e77 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Utils/DurationOption+Utils.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Utils/DurationOption+Utils.swift @@ -19,6 +19,7 @@ import Foundation import ObvUICoreData +import ObvSettings extension DurationOption: CustomStringConvertible { diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Utils/DurationOptionAlt+Utils.swift b/Modules/OlvidUI/ObvUI/ObvUI/Utils/DurationOptionAlt+Utils.swift index 177a92da..d10fc79b 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Utils/DurationOptionAlt+Utils.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Utils/DurationOptionAlt+Utils.swift @@ -19,6 +19,7 @@ import Foundation import ObvUICoreData +import ObvSettings extension DurationOptionAlt: CustomStringConvertible { diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Utils/NewComposeMessageViewAction+Utils.swift b/Modules/OlvidUI/ObvUI/ObvUI/Utils/NewComposeMessageViewAction+Utils.swift index a6840e45..6413601b 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Utils/NewComposeMessageViewAction+Utils.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Utils/NewComposeMessageViewAction+Utils.swift @@ -20,6 +20,8 @@ import Foundation import ObvUICoreData import UI_SystemIcon +import ObvSettings + public extension NewComposeMessageViewAction { diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Utils/NotificationSound+Utils.swift b/Modules/OlvidUI/ObvUI/ObvUI/Utils/NotificationSound+Utils.swift index e6856166..dba3b326 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Utils/NotificationSound+Utils.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Utils/NotificationSound+Utils.swift @@ -19,6 +19,7 @@ import Foundation import ObvUICoreData +import ObvSettings extension NotificationSound { @@ -28,105 +29,97 @@ extension NotificationSound { case .none: return CommonString.Title.noNotificationSounds case .system: return CommonString.Title.systemSound - case .busy: return "BUSY".localizedString - case .chime: return "CHIME".localizedString - case .cinemaBringTheDrama: return "BRING_THE_DRAMA".localizedString - case .frenzy: return "FRENZY".localizedString - case .hornBoat: return "HORN_BOAT".localizedString - case .hornBus: return "HORN_BUS".localizedString - case .hornCar: return "HORN_CAR".localizedString - case .hornDixie: return "HORN_DIXIE".localizedString - case .hornTaxi: return "HORN_TAXI".localizedString - case .hornTrain1: return "HORN_TRAIN_1".localizedString - case .hornTrain2: return "HORN_TRAIN_2".localizedString - case .paranoid: return "PARANOID".localizedString - case .weird: return "WEIRD".localizedString + case .busy: return NSLocalizedString("BUSY", comment: "") + case .chime: return NSLocalizedString("CHIME", comment: "") + case .cinemaBringTheDrama: return NSLocalizedString("BRING_THE_DRAMA", comment: "") + case .frenzy: return NSLocalizedString("FRENZY", comment: "") + case .hornBoat: return NSLocalizedString("HORN_BOAT", comment: "") + case .hornBus: return NSLocalizedString("HORN_BUS", comment: "") + case .hornCar: return NSLocalizedString("HORN_CAR", comment: "") + case .hornDixie: return NSLocalizedString("HORN_DIXIE", comment: "") + case .hornTaxi: return NSLocalizedString("HORN_TAXI", comment: "") + case .hornTrain1: return NSLocalizedString("HORN_TRAIN_1", comment: "") + case .hornTrain2: return NSLocalizedString("HORN_TRAIN_2", comment: "") + case .paranoid: return NSLocalizedString("PARANOID", comment: "") + case .weird: return NSLocalizedString("WEIRD", comment: "") - case .birdCardinal: return "BIRD_CARDINAL".localizedString - case .birdCoqui: return "BIRD_COQUI".localizedString - case .birdCrow: return "BIRD_CROW".localizedString - case .birdCuckoo: return "BIRD_CUCKOO".localizedString - case .birdDuckQuack: return "BIRD_DUCK_QUACK".localizedString - case .birdDuckQuacks: return "BIRD_DUCK_QUACKS".localizedString - case .birdEagle: return "BIRD_EAGLE".localizedString - case .birdInForest: return "BIRD_IN_FOREST".localizedString - case .birdMagpie: return "BIRD_MAGPIE".localizedString - case .birdOwlHorned: return "BIRD_OWL_HORNED".localizedString - case .birdOwlTawny: return "BIRD_OWL_TAWNY".localizedString - case .birdTweet: return "BIRD_TWEET".localizedString - case .birdWarning: return "BIRD_WARNING".localizedString - case .chickenRooster: return "CHICKEN_ROOSTER".localizedString - case .chickenRoster: return "CHICKEN_ROSTER".localizedString - case .chicken: return "CHICKEN".localizedString - case .cicada: return "CICADA".localizedString - case .cowMoo: return "COW_MOO".localizedString - case .elephant: return "ELEPHANT".localizedString - case .felinePanthera: return "PANTHERA".localizedString - case .felineTiger: return "TIGER".localizedString - case .frog: return "FROG".localizedString - case .goat: return "GOAT".localizedString - case .horseWhinnies: return "HORSE_WHINNIES".localizedString - case .puppy: return "PUPPY".localizedString - case .sheep: return "SHEEP".localizedString - case .turkeyGobble: return "TURKEY_GOBBLE".localizedString - case .turkeyNoises: return "TURKEY_NOISES".localizedString + case .birdCardinal: return NSLocalizedString("BIRD_CARDINAL", comment: "") + case .birdCoqui: return NSLocalizedString("BIRD_COQUI", comment: "") + case .birdCrow: return NSLocalizedString("BIRD_CROW", comment: "") + case .birdCuckoo: return NSLocalizedString("BIRD_CUCKOO", comment: "") + case .birdDuckQuack: return NSLocalizedString("BIRD_DUCK_QUACK", comment: "") + case .birdDuckQuacks: return NSLocalizedString("BIRD_DUCK_QUACKS", comment: "") + case .birdEagle: return NSLocalizedString("BIRD_EAGLE", comment: "") + case .birdInForest: return NSLocalizedString("BIRD_IN_FOREST", comment: "") + case .birdMagpie: return NSLocalizedString("BIRD_MAGPIE", comment: "") + case .birdOwlHorned: return NSLocalizedString("BIRD_OWL_HORNED", comment: "") + case .birdOwlTawny: return NSLocalizedString("BIRD_OWL_TAWNY", comment: "") + case .birdTweet: return NSLocalizedString("BIRD_TWEET", comment: "") + case .birdWarning: return NSLocalizedString("BIRD_WARNING", comment: "") + case .chickenRooster: return NSLocalizedString("CHICKEN_ROOSTER", comment: "") + case .chickenRoster: return NSLocalizedString("CHICKEN_ROSTER", comment: "") + case .chicken: return NSLocalizedString("CHICKEN", comment: "") + case .cicada: return NSLocalizedString("CICADA", comment: "") + case .cowMoo: return NSLocalizedString("COW_MOO", comment: "") + case .elephant: return NSLocalizedString("ELEPHANT", comment: "") + case .felinePanthera: return NSLocalizedString("PANTHERA", comment: "") + case .felineTiger: return NSLocalizedString("TIGER", comment: "") + case .frog: return NSLocalizedString("FROG", comment: "") + case .goat: return NSLocalizedString("GOAT", comment: "") + case .horseWhinnies: return NSLocalizedString("HORSE_WHINNIES", comment: "") + case .puppy: return NSLocalizedString("PUPPY", comment: "") + case .sheep: return NSLocalizedString("SHEEP", comment: "") + case .turkeyGobble: return NSLocalizedString("TURKEY_GOBBLE", comment: "") + case .turkeyNoises: return NSLocalizedString("TURKEY_NOISES", comment: "") - case .bell: return "BELL".localizedString - case .block: return "BLOCK".localizedString - case .calm: return "CALM".localizedString - case .cloud: return "CLOUD".localizedString - case .heyChamp: return "HEY_CHAMP".localizedString - case .kotoNeutral: return "KOTO".localizedString - case .modular: return "MODULAR".localizedString - case .oringz452: return "ORINGZ".localizedString - case .polite: return "POLITE".localizedString - case .sonar: return "SONAR".localizedString - case .strike: return "STRIKE".localizedString - case .unphased: return "UNPHASED".localizedString - case .unstrung: return "UNSTRUNG".localizedString - case .woodblock: return "WOODBLOCK".localizedString + case .bell: return NSLocalizedString("BELL", comment: "") + case .block: return NSLocalizedString("BLOCK", comment: "") + case .calm: return NSLocalizedString("CALM", comment: "") + case .cloud: return NSLocalizedString("CLOUD", comment: "") + case .heyChamp: return NSLocalizedString("HEY_CHAMP", comment: "") + case .kotoNeutral: return NSLocalizedString("KOTO", comment: "") + case .modular: return NSLocalizedString("MODULAR", comment: "") + case .oringz452: return NSLocalizedString("ORINGZ", comment: "") + case .polite: return NSLocalizedString("POLITE", comment: "") + case .sonar: return NSLocalizedString("SONAR", comment: "") + case .strike: return NSLocalizedString("STRIKE", comment: "") + case .unphased: return NSLocalizedString("UNPHASED", comment: "") + case .unstrung: return NSLocalizedString("UNSTRUNG", comment: "") + case .woodblock: return NSLocalizedString("WOODBLOCK", comment: "") - case .areYouKidding: return "ARE_YOU_KIDDING".localizedString - case .circusClownHorn: return "CIRCUS_CLOWN_HORN".localizedString - case .enoughWithTheRalking: return "ENOUGH_WITH_THE_TALKING".localizedString - case .funnyFanfare: return "FUNNY_FANFARE".localizedString - case .nestling: return "NESTLING".localizedString - case .niceCut: return "NICE_CUT".localizedString - case .ohReally: return "OH_REALLY".localizedString - case .springy: return "SPRINGY".localizedString + case .areYouKidding: return NSLocalizedString("ARE_YOU_KIDDING", comment: "") + case .circusClownHorn: return NSLocalizedString("CIRCUS_CLOWN_HORN", comment: "") + case .enoughWithTheRalking: return NSLocalizedString("ENOUGH_WITH_THE_TALKING", comment: "") + case .funnyFanfare: return NSLocalizedString("FUNNY_FANFARE", comment: "") + case .nestling: return NSLocalizedString("NESTLING", comment: "") + case .niceCut: return NSLocalizedString("NICE_CUT", comment: "") + case .ohReally: return NSLocalizedString("OH_REALLY", comment: "") + case .springy: return NSLocalizedString("SPRINGY", comment: "") - case .bassoon: return "BASSOON".localizedString - case .brass: return "BRASS".localizedString - case .clarinet: return "CLARINET".localizedString - case .clav_fly: return "CLAV_FLY".localizedString - case .clav_guitar: return "CLAV_GUITAR".localizedString - case .flute: return "FLUTE".localizedString - case .glockenspiel: return "GLOCKENSPIEL".localizedString - case .harp: return "HARP".localizedString - case .koto: return "KOTO".localizedString - case .oboe: return "OBOE".localizedString - case .piano: return "PIANO".localizedString - case .pipa: return "PIPA".localizedString - case .saxo: return "SAXO".localizedString - case .strings: return "STRINGS".localizedString - case .synth_airship: return "SYNTH_AIRSHIP".localizedString - case .synth_chordal: return "SYNTH_CHORDAL".localizedString - case .synth_cosmic: return "SYNTH_COSMIC".localizedString - case .synth_droplets: return "SYNTH_DROPLETS".localizedString - case .synth_emotive: return "SYNTH_EMOTIVE".localizedString - case .synth_fm: return "SYNTH_FM".localizedString - case .synth_lush_arp: return "SYNTH_LUSHARP".localizedString - case .synth_pecussive: return "SYNTH_PECUSSIVE".localizedString - case .synth_quantizer: return "SYNTH_QUANTIZER".localizedString + case .bassoon: return NSLocalizedString("BASSOON", comment: "") + case .brass: return NSLocalizedString("BRASS", comment: "") + case .clarinet: return NSLocalizedString("CLARINET", comment: "") + case .clav_fly: return NSLocalizedString("CLAV_FLY", comment: "") + case .clav_guitar: return NSLocalizedString("CLAV_GUITAR", comment: "") + case .flute: return NSLocalizedString("FLUTE", comment: "") + case .glockenspiel: return NSLocalizedString("GLOCKENSPIEL", comment: "") + case .harp: return NSLocalizedString("HARP", comment: "") + case .koto: return NSLocalizedString("KOTO", comment: "") + case .oboe: return NSLocalizedString("OBOE", comment: "") + case .piano: return NSLocalizedString("PIANO", comment: "") + case .pipa: return NSLocalizedString("PIPA", comment: "") + case .saxo: return NSLocalizedString("SAXO", comment: "") + case .strings: return NSLocalizedString("STRINGS", comment: "") + case .synth_airship: return NSLocalizedString("SYNTH_AIRSHIP", comment: "") + case .synth_chordal: return NSLocalizedString("SYNTH_CHORDAL", comment: "") + case .synth_cosmic: return NSLocalizedString("SYNTH_COSMIC", comment: "") + case .synth_droplets: return NSLocalizedString("SYNTH_DROPLETS", comment: "") + case .synth_emotive: return NSLocalizedString("SYNTH_EMOTIVE", comment: "") + case .synth_fm: return NSLocalizedString("SYNTH_FM", comment: "") + case .synth_lush_arp: return NSLocalizedString("SYNTH_LUSHARP", comment: "") + case .synth_pecussive: return NSLocalizedString("SYNTH_PECUSSIVE", comment: "") + case .synth_quantizer: return NSLocalizedString("SYNTH_QUANTIZER", comment: "") } } - -} - - -fileprivate extension String { - var localizedString: String { - NSLocalizedString(self, comment: "") - } } diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Utils/ObvCryptoId+Colors.swift b/Modules/OlvidUI/ObvUI/ObvUI/Utils/ObvCryptoId+Colors.swift index 478d4cd1..d4f3e83e 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Utils/ObvCryptoId+Colors.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Utils/ObvCryptoId+Colors.swift @@ -20,6 +20,9 @@ import Foundation import ObvTypes import ObvUICoreData +import ObvDesignSystem +import ObvSettings + public extension ObvCryptoId { diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Utils/ObvUTIUtils+Extensions.swift b/Modules/OlvidUI/ObvUI/ObvUI/Utils/ObvUTIUtils+Extensions.swift index 09fa9c84..7e226b2b 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Utils/ObvUTIUtils+Extensions.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Utils/ObvUTIUtils+Extensions.swift @@ -22,45 +22,41 @@ import ObvUICoreData import UniformTypeIdentifiers import UI_SystemIcon -extension ObvUTIUtils { +extension UTType { - @available(iOS 14.0, *) - public static func getIcon(forUTI uti: String) -> SystemIcon { - if let utType = UTType(uti) { - if utType.conforms(to: .image) { - return .photoOnRectangleAngled - } else if utType.conforms(to: .pdf) { - return .docRichtext - } else if utType.conforms(to: .audio) { - return .musicNote - } else if utType.conforms(to: .vCard) { - return .personTextRectangle - } else if utType.conforms(to: .calendarEvent) { - return .calendar - } else if utType.conforms(to: .font) { - return .textformat - } else if utType.conforms(to: .spreadsheet) { - return .rectangleSplit3x3 - } else if utType.conforms(to: .presentation) { - return .display - } else if utType.conforms(to: .bookmark) { - return .bookmark - } else if utType.conforms(to: .archive) { - return .rectangleCompressVertical - } else if utType.conforms(to: .webArchive) { - return .archiveboxFill - } else if utType.conforms(to: .xml) || utType.conforms(to: .html) { - return .chevronLeftForwardslashChevronRight - } else if utType.conforms(to: .executable) { - return .docBadgeGearshape - } else if ObvUTIUtils.uti(uti, conformsTo: "org.openxmlformats.wordprocessingml.document" as CFString) || ObvUTIUtils.uti(uti, conformsTo: "com.microsoft.word.doc" as CFString) { - // Word (docx) document - return .docFill - } else { - return .paperclip - } + public var systemIcon: SystemIcon { + if self.conforms(to: .image) { + return .photoOnRectangleAngled + } else if self.conforms(to: .pdf) { + return .docRichtext + } else if self.conforms(to: .audio) { + return .musicNote + } else if self.conforms(to: .vCard) { + return .personTextRectangle + } else if self.conforms(to: .calendarEvent) { + return .calendar + } else if self.conforms(to: .font) { + return .textformat + } else if self.conforms(to: .spreadsheet) { + return .rectangleSplit3x3 + } else if self.conforms(to: .presentation) { + return .display + } else if self.conforms(to: .bookmark) { + return .bookmark + } else if self.conforms(to: .archive) { + return .rectangleCompressVertical + } else if self.conforms(to: .webArchive) { + return .archiveboxFill + } else if self.conforms(to: .xml) || self.conforms(to: .html) { + return .chevronLeftForwardslashChevronRight + } else if self.conforms(to: .executable) { + return .docBadgeGearshape + } else if self.conforms(to: UTType.OpenXML.docx) || self.conforms(to: .doc) { + // Word (docx or doc) document + return .docFill } else { return .paperclip } } + } diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Utils/PersistedDiscussion+Utils.swift b/Modules/OlvidUI/ObvUI/ObvUI/Utils/PersistedDiscussion+Utils.swift index e57e4043..d48234bc 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Utils/PersistedDiscussion+Utils.swift +++ b/Modules/OlvidUI/ObvUI/ObvUI/Utils/PersistedDiscussion+Utils.swift @@ -21,6 +21,7 @@ import CoreData import ObvUICoreData import os.log import UIKit +import ObvDesignSystem extension PersistedDiscussion { diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Enums/RequesterOfMessageDeletion.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Enums/RequesterOfMessageDeletion.swift deleted file mode 100644 index a8a76404..00000000 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Enums/RequesterOfMessageDeletion.swift +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import Foundation -import ObvTypes - - -public enum RequesterOfMessageDeletion { - case ownedIdentity(ownedCryptoId: ObvCryptoId, deletionType: DeletionType) - case contact(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId, messageUploadTimestampFromServer: Date) -} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/ObvMessengerSettingsBackup.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Extensions/GlobalSettingsBackupItem+Utils.swift similarity index 89% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/ObvMessengerSettingsBackup.swift rename to Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Extensions/GlobalSettingsBackupItem+Utils.swift index 79dc1aae..63c068cf 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/ObvMessengerSettingsBackup.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Extensions/GlobalSettingsBackupItem+Utils.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -16,9 +16,10 @@ * You should have received a copy of the GNU Affero General Public License * along with Olvid. If not, see . */ - import Foundation +import ObvSettings + public extension GlobalSettingsBackupItem { @@ -27,7 +28,7 @@ public extension GlobalSettingsBackupItem { // Contacts and groups if let value = self.autoAcceptGroupInviteFrom { - ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom = value + ObvMessengerSettings.ContactsAndGroups.setAutoAcceptGroupInviteFrom(to: value, changeMadeFromAnotherOwnedDevice: false, ownedCryptoId: nil) } // Downloads @@ -44,14 +45,11 @@ public extension GlobalSettingsBackupItem { if let value = self.contactsSortOrder { ObvMessengerSettings.Interface.contactsSortOrder = value } - if let value = self.useOldDiscussionInterface { - ObvMessengerSettings.Interface.useOldDiscussionInterface = value - } // Discussions if let value = self.sendReadReceipt { - ObvMessengerSettings.Discussions.doSendReadReceipt = value + ObvMessengerSettings.Discussions.setDoSendReadReceipt(to: value, changeMadeFromAnotherOwnedDevice: false, ownedCryptoId: nil) } if let value = self.doFetchContentRichURLsMetadata { ObvMessengerSettings.Discussions.doFetchContentRichURLsMetadata = value @@ -100,12 +98,6 @@ public extension GlobalSettingsBackupItem { ObvMessengerSettings.Privacy.timeIntervalForBackgroundHiddenProfileClosePolicy = value } - // VoIP - - if let value = self.isCallKitEnabled { - ObvMessengerSettings.VoIP.isCallKitEnabled = value - } - // Advanced if let value = self.allowCustomKeyboards { diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Localizable.xcstrings b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Localizable.xcstrings new file mode 100644 index 00000000..4b5061d6 --- /dev/null +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Localizable.xcstrings @@ -0,0 +1,1459 @@ +{ + "sourceLanguage" : "en", + "strings" : { + "%@_ACCEPTED_TO_JOIN_THIS_GROUP" : { + "comment" : "System message displayed within a group discussion", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ has joined this group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ a rejoint ce groupe" + } + } + } + }, + "%@_ACCEPTED_TO_JOIN_THIS_GROUP_AT_%@" : { + "comment" : "System message displayed within a group discussion", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ has joined this group - %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ a rejoint ce groupe - %@" + } + } + } + }, + "%@_LEFT_THIS_GROUP" : { + "comment" : "System message displayed within a group discussion", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ left this group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ a quitté ce groupe" + } + } + } + }, + "%@_LEFT_THIS_GROUP_AT_%@" : { + "comment" : "System message displayed within a group discussion", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ left this group - %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ a quitté ce groupe - %@" + } + } + } + }, + "A (now deleted) contact" : { + "comment" : "Can serve as a name in the sentence \\\"%@ accepted to join this group\\\"", + "extractionState" : "migrated", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deleted contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contact supprimé" + } + } + } + }, + "ACCEPTED_INCOMING_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Incoming call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel entrant" + } + } + } + }, + "ACCEPTED_OUTGOING_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Outgoing call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel sortant" + } + } + } + }, + "AND_%@_OTHERS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "and %@ others" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "et %@ autres" + } + } + } + }, + "AND_ONE_OTHER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "and one other" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "et un autre" + } + } + } + }, + "ANSWERED_ON_OTHER_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Call accepted on another device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel accepté depuis un autre appareil" + } + } + } + }, + "ANY_INCOMING_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Incoming call..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel entrant..." + } + } + } + }, + "ANY_OUTGOING_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Outgoing call..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel sortant..." + } + } + } + }, + "BUSY_OUTGOING_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Busy outgoing call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel sortant occupé" + } + } + } + }, + "Choose" : { + "comment" : "Choose word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisir" + } + } + } + }, + "Close" : { + "comment" : "Close word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Close" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fermer" + } + } + } + }, + "CONTACT_%@_IS_ONE_TO_ONE_AGAIN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ is part of your contacts again, you can continue your discussion where you left off 🤗." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ fait à nouveau partie de vos contacts, vous pouvez reprendre la discussion là où vous l'aviez laissée 🤗." + } + } + } + }, + "CONTACT_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ took a screenshot of a sensitive message." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ a fait une capture d'un message sensible." + } + } + } + }, + "CONTACT_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE_WHEN_CONTACT_IS_UNKNOWN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "A participant took a screenshot of a sensitive message." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Un particpant a fait une capture d'un message sensible." + } + } + } + }, + "CONTACT_REVOKED_BY_COMPANY_IDENTITY_PROVIDER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contact revoked by your company's identity provider" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contact revoqué par le fournisseur d'identités de votre société" + } + } + } + }, + "count attachments" : { + "comment" : "Number of attachments in message", + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "One attachment" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u attachments" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "No attachment" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une pièce jointe" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u pièces jointes" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune pièce jointe" + } + } + } + } + } + } + }, + "count new messages" : { + "comment" : "Number of new messages", + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 new message" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u new messages" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "No new message" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 nouveau message" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u nouveaux messages" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun nouveau message" + } + } + } + } + } + } + }, + "Default" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Default" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Par défaut" + } + } + } + }, + "DISCUSSION_SHARED_SETTINGS_WERE_UPDATED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discussion shared settings were updated" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les paramètres partagés de la discussion ont été mis à jour" + } + } + } + }, + "Edited" : { + "comment" : "Edited word, capitalized", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifié" + } + } + } + }, + "EIGHT_HOURS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "8 hours" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "8 heures" + } + } + } + }, + "EPHEMERAL_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ephemeral message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message éphémère" + } + } + } + }, + "FIFTEEN_DAYS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "15 days" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "15 jours" + } + } + } + }, + "FIVE_YEAR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "5 years" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "5 ans" + } + } + } + }, + "Forward" : { + "comment" : "Forward word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Forward" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Transférer" + } + } + } + }, + "FROM_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "from %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "de %@" + } + } + } + }, + "GROUP_TITLE_WHEN_NO_SPECIFIC_TITLE_IS_GIVEN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group with no name 😅" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Groupe sans nom 😅" + } + } + } + }, + "INDEFINITELY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "indefinitely" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Indéfiniment" + } + } + } + }, + "LAST_MESSAGE_WAS_REMOTELY_WIPED" : { + "comment" : "Subtitle displayed within a discussion cell when the message to preview was remotely wiped", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Last message was remotely wiped" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dernier message éliminé à distance" + } + } + } + }, + "Latest Discussions" : { + "comment" : "Small string used in tab controller to sort by latest discussions", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Latest" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Récentes" + } + } + } + }, + "Mark all as read" : { + "comment" : "Action title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mark all as read" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tout marquer comme lu" + } + } + } + }, + "MEMBERS_OF_GROUP_V2_WERE_UPDATED_SYSTEM_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group members have been updated. Tap to learn more." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les membres du groupe ont été mis à jour. Touchez pour en savoir plus." + } + } + } + }, + "MESSAGE_WAS_WIPED" : { + "comment" : "Subtitle displayed within a discussion cell when the message to preview is a wiped ephemeral message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Last message was wiped 🧹" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dernier message expiré 🧹" + } + } + } + }, + "Messages posted in this discussion are protected using end-to-end encryption. Their confidentiality, their authenticity, and the identity of their sender are guaranteed through cryptography." : { + "comment" : "System message displayed at the top of each conversation.", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "🔒 Messages posted in this discussion are protected using end-to-end encryption. Their confidentiality, their authenticity, and the identity of their sender are guaranteed through cryptography." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "🔒 Les messages postés dans cette discussion sont protégés par du chiffrement de bout-en-bout. Leur confidentialité, leur authenticité et l'identité de leur expéditeur sont garanties grâce à la cryptographie." + } + } + } + }, + "MISSED_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Missed Call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel manqué" + } + } + } + }, + "MISSED_CALL_FILTERED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Missed call while you were in \"Focus\" mode." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel manqué alors que vous étiez en mode « Concentration »." + } + } + } + }, + "NINETY_DAYS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "90 days" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "90 jours" + } + } + } + }, + "No message yet." : { + "comment" : "Subtitle displayed within a discussion cell when there is no message preview to display", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No message yet." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun message pour le moment." + } + } + } + }, + "NOT_PART_OF_THE_GROUP_ANYMORE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are not part of this group anymore, either because you left it, because an administrator removed you, or because the group was deleted 🥲." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous ne faites plus partie de ce groupe, parce que vous l'avez quitté, parce qu'un administrateur vous a retiré du groupe, ou tout simplement parce que le groupe a été supprimé 🥲." + } + } + } + }, + "ONE_DAY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 day" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 jour" + } + } + } + }, + "ONE_HOUR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 hour" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 heure" + } + } + } + }, + "ONE_HUNDRED_AND_HEIGHTY_DAYS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "180 days" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "180 jours" + } + } + } + }, + "ONE_YEAR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 year" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 an" + } + } + } + }, + "Read" : { + "comment" : "Read word, capitalized", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Lu" + } + } + } + }, + "REJECTED_INCOMING_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rejected incoming call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel entrant rejeté" + } + } + } + }, + "REJECTED_INCOMING_CALL_AS_RECEIVE_CALL_SETTINGS_IS_FALSE" : { + "localizations" : { + "en" : { + "variations" : { + "device" : { + "mac" : { + "stringUnit" : { + "state" : "translated", + "value" : "An incoming secure call was automatically rejected as you chose not to receive calls on this device. Click this message to show the setting." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "An incoming secure call was automatically rejected as you chose not to receive calls on this device. Tap this message to show the setting." + } + } + } + } + }, + "fr" : { + "variations" : { + "device" : { + "mac" : { + "stringUnit" : { + "state" : "translated", + "value" : "Un appel entrant a été automatiquement refusé puisque vous avez choisi de ne pas recevoir d'appel sur cet appareil. Cliquez ce message pour afficher le paramètre." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Un appel entrant a été automatiquement refusé puisque vous avez choisi de ne pas recevoir d'appel sur cet appareil. Touchez cette notification pour afficher le paramètre." + } + } + } + } + } + } + }, + "REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_DENIED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The incoming call was rejected because Olvid is not allowed to access the Microphone. To never miss a call again, please go to Settings and grant Olvid access to the microphone." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'appel entrant n'a pas abouti car Olvid n'a pas l'autorisation d'accéder au micro. Pour ne plus rater d'appel, allez dans les Réglages et autorisez l'accès au micro pour Olvid." + } + } + } + }, + "REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_GRANTED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The incoming call was rejected because Olvid was not allowed to access the Microphone. Fortunately, since then, this autorisation was granted. You won't miss a call again 🥳!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'appel entrant n'a pas abouti car Olvid n'avait pas l'autorisation d'accéder au micro. Fort heureusement, l'autorisation a été accordée. Vous ne raterez plus aucun appel 🥳 !" + } + } + } + }, + "REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_UNDETERMINED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The incoming call was rejected because Olvid is not allowed to access the microphone. Please tap on this message to allow Olvid to access the Microphone." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'appel entrant n'a pas abouti car Olvid n'a pas l'autorisation d'accéder au micro. Cliquez sur ce message pour autoriser l'accès au micro." + } + } + } + }, + "REJECTED_ON_OTHER_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Call rejected on another device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel rejeté depuis un autre appareil" + } + } + } + }, + "REJECTED_OUTGOING_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your contact is not available" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre correspondant est indisponible" + } + } + } + }, + "REJOINED_GROUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are again part of this group ✌️." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous faites à nouveau partie du groupe ✌️" + } + } + } + }, + "Remotely wiped" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remotely wiped" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Éliminé à distance" + } + } + } + }, + "SEVEN_DAYS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "7 days" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "7 jours" + } + } + } + }, + "SIX_HOUR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "6 hours" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "6 heures" + } + } + } + }, + "THIRTY_DAYS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 days" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 jours" + } + } + } + }, + "This contact was deleted from your contacts, either because you did or because this contact deleted you." : { + "comment" : "System message displayed within a group discussion", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This contact was deleted from your Olvid contacts, either because you did or because this contact deleted you from their own contacts." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ce contact a été supprimé de vos contacts Olvid, soit par vous-même, soit parce que ce contact vous a supprimé de ses propres contacts." + } + } + } + }, + "This discussion was remotely wiped by %@" : { + "comment" : "System message displayed within a group discussion", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This discussion was remotely wiped by %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cette discussion a été effacée à distance par %@" + } + } + } + }, + "This discussion was remotely wiped by %@ on %@" : { + "comment" : "System message displayed within a group discussion", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This discussion was remotely wiped by %@ on %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cette discussion a été effacée à distance par %@ le %@" + } + } + } + }, + "THREE_YEAR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "3 years" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "3 ans" + } + } + } + }, + "TWELVE_HOURS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "12 hours" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "12 heures" + } + } + } + }, + "TWO_DAYS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "2 days" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "2 jours" + } + } + } + }, + "UNANSWERED_OUTGOING_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unanswered outgoing call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel sortant sans réponse" + } + } + } + }, + "UNCOMPLETED_OUTGOING_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uncompleted outgoing call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel sortant non abouti" + } + } + } + }, + "UNKNOWN_USER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unknown user" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Utilisateur inconnu" + } + } + } + }, + "Unlimited" : { + "comment" : "Unlimited word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unlimited" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Illimité" + } + } + } + }, + "UNREAD_EPHEMERAL_MESSAGE" : { + "comment" : "Subtitle displayed within a discussion cell when the message to preview is an unread ephemeral message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unread ephemeral message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message éphémère non lu" + } + } + } + }, + "Wiped" : { + "comment" : "Wiped word, capitalized", + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expiré" + } + } + } + }, + "WITH_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "with %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "avec %@" + } + } + } + }, + "WITH_N_PARTICIPANTS" : { + "extractionState" : "migrated", + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "with one participant" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "with %u participants" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "without any participant" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "avec un participant" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "avec %u participants" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "sans aucun participant" + } + } + } + } + } + } + }, + "You" : { + "comment" : "You word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous" + } + } + } + }, + "YOU_ARE_NO_LONGER_PART_OF_THE_ADMINISTRATORS_OF_THIS_GROUP_V2" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are no longer a group administrator." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous n'êtes plus administrateur de ce groupe." + } + } + } + }, + "YOU_ARE_NOW_PART_OF_THE_ADMINISTRATORS_OF_THIS_GROUP_V2" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are now a group administrator 😎." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous êtes maintenant un administrateur de ce groupe 😎." + } + } + } + }, + "YOU_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You took a screenshot of a sensitive message, other participants have been notified." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez fait une capture d'un message sensible, les participants de cette discussion ont été notifiés." + } + } + } + }, + "YOU_INTRODUCED_%@_TO_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You introduced %@ to %@." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez présenté %@ à %@." + } + } + } + }, + "YOU_INTRODUCED_%@_TO_ANOTHER_CONTACT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You introduced %@ to another contact." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez présenté %@ à un autre contact." + } + } + } + }, + "YOU_INTRODUCED_THIS_CONTACT_TO_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You introduced this contact to %@." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez présenté ce contact à %@." + } + } + } + }, + "YOU_INTRODUCED_THIS_CONTACT_TO_ANOTHER_ONE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You introduced this contact to another one." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez présenté ce contact à un autre." + } + } + } + } + }, + "version" : "1.0" +} \ No newline at end of file diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/LocalizableClassForObvUICoreDataBundle.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/LocalizableClassForObvUICoreDataBundle.swift new file mode 100644 index 00000000..2ea96ae2 --- /dev/null +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/LocalizableClassForObvUICoreDataBundle.swift @@ -0,0 +1,34 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation + + +/// This is a dummy class, allowing to specify the appropriate module when declaring a localized string, so that the localized string key is looked up in the correct `Localizable.xcstrings` file. +final class LocalizableClassForObvUICoreDataBundle {} + + +func NSLocalizedString(_ key: String, comment: String) -> String { + return NSLocalizedString(key, tableName: "Localizable", bundle: Bundle(for: LocalizableClassForObvUICoreDataBundle.self), comment: comment) +} + + +func NSLocalizedString(_ key: String) -> String { + return NSLocalizedString(key, tableName: "Localizable", bundle: Bundle(for: LocalizableClassForObvUICoreDataBundle.self), comment: "Within ObvUICoreData") +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Localization/CommonString.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Localization/CommonString.swift index 8b8c163a..b4691692 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Localization/CommonString.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Localization/CommonString.swift @@ -21,17 +21,21 @@ import Foundation public struct CommonString { + private static let bundle = Bundle(for: LocalizableClassForObvUICoreDataBundle.self) + public struct Word { - public static let Choose = NSLocalizedString("Choose", comment: "Choose word, capitalized") - public static let Edited = NSLocalizedString("Edited", comment: "Edited word, capitalized") - public static let Forward = NSLocalizedString("Forward", comment: "Forward word, capitalized") - public static let Read = NSLocalizedString("Read", comment: "Read word, capitalized") - public static let Wiped = NSLocalizedString("Wiped", comment: "Wiped word, capitalized") + public static let Choose = NSLocalizedString("Choose", bundle: CommonString.bundle, comment: "Choose word, capitalized") + public static let Edited = NSLocalizedString("Edited", bundle: CommonString.bundle, comment: "Edited word, capitalized") + public static let Forward = NSLocalizedString("Forward", bundle: CommonString.bundle, comment: "Forward word, capitalized") + public static let Read = NSLocalizedString("Read", bundle: CommonString.bundle, comment: "Read word, capitalized") + public static let Wiped = NSLocalizedString("Wiped", bundle: CommonString.bundle, comment: "Wiped word, capitalized") + public static let You = NSLocalizedString("You", bundle: CommonString.bundle, comment: "You word, capitalized") + public static let Close = NSLocalizedString("Close", bundle: CommonString.bundle, comment: "Close word, capitalized") } - + public struct Title { } - public static let deletedContact = NSLocalizedString("A (now deleted) contact", comment: "Can serve as a name in the sentence %@ accepted to join this group") + public static let deletedContact = String(format: "A (now deleted) contact") } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Localization/PersistedMessageSystem+Strings.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Localization/PersistedMessageSystem+Strings.swift index 88ae9bbf..493dcd47 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Localization/PersistedMessageSystem+Strings.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Localization/PersistedMessageSystem+Strings.swift @@ -32,6 +32,19 @@ extension PersistedMessageSystem { struct Strings { + static let contactWasIntroducedToAnotherContact = { (discussionContactDisplayName: String?, otherContactDisplayName: String?) in + switch (discussionContactDisplayName, otherContactDisplayName) { + case (.some(let discussionContactDisplayName), .some(let otherContactDisplayName)): + return String.localizedStringWithFormat(NSLocalizedString("YOU_INTRODUCED_%@_TO_%@", bundle: Bundle(for: PersistedMessageSystem.self), comment: ""), discussionContactDisplayName, otherContactDisplayName) + case (.some(let discussionContactDisplayName), .none): + return String.localizedStringWithFormat(NSLocalizedString("YOU_INTRODUCED_%@_TO_ANOTHER_CONTACT", bundle: Bundle(for: PersistedMessageSystem.self), comment: ""), discussionContactDisplayName) + case (.none, .some(let otherContactDisplayName)): + return String.localizedStringWithFormat(NSLocalizedString("YOU_INTRODUCED_THIS_CONTACT_TO_%@", bundle: Bundle(for: PersistedMessageSystem.self), comment: ""), otherContactDisplayName) + case (.none, .none): + return NSLocalizedString("YOU_INTRODUCED_THIS_CONTACT_TO_ANOTHER_ONE", bundle: Bundle(for: PersistedMessageSystem.self), comment: "") + } + } + static let ownedIdentityDidCaptureSensitiveMessages = NSLocalizedString("YOU_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE", comment: "") static let contactIdentityDidCaptureSensitiveMessages: (String?) -> String = { (contactDisplayName: String?) in if let contactDisplayName { @@ -89,7 +102,7 @@ extension PersistedMessageSystem { } } else if let otherCount = content.othersCount, otherCount >= 1 { result += " " - result += String.localizedStringWithFormat(NSLocalizedString("WITH_N_PARTICIPANTS", comment: ""), otherCount) + result += String(format: "WITH_N_PARTICIPANTS", otherCount) } if let dateString = content.dateString { result += " - " @@ -107,6 +120,21 @@ extension PersistedMessageSystem { callMessageContent(content: content, title: NSLocalizedString("MISSED_CALL_FILTERED", comment: "")) } + + static let answeredOnOtherDevice = { (content: CallMessageContent) in + callMessageContent(content: content, + title: NSLocalizedString("ANSWERED_ON_OTHER_DEVICE", comment: "")) + } + + static let rejectedOnOtherDevice = { (content: CallMessageContent) in + callMessageContent(content: content, + title: NSLocalizedString("REJECTED_ON_OTHER_DEVICE", comment: "")) + } + + static let rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse = { (content: CallMessageContent) in + callMessageContent(content: content, + title: NSLocalizedString("REJECTED_INCOMING_CALL_AS_RECEIVE_CALL_SETTINGS_IS_FALSE", comment: "")) + } static let acceptedOutgoingCall = { (content: CallMessageContent) in callMessageContent(content: content, diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/ContactGroupV1/PersistedContactGroup.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/ContactGroupV1/PersistedContactGroup.swift index e5728641..2a1f0483 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/ContactGroupV1/PersistedContactGroup.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/ContactGroupV1/PersistedContactGroup.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,7 +24,9 @@ import ObvTypes import os.log import ObvCrypto import OlvidUtils -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvSettings + @objc(PersistedContactGroup) public class PersistedContactGroup: NSManagedObject { @@ -38,6 +40,7 @@ public class PersistedContactGroup: NSManagedObject { @NSManaged public private(set) var groupName: String @NSManaged private var groupUidRaw: Data + @NSManaged public private(set) var note: String? @NSManaged public private(set) var ownerIdentity: Data // MUST be kept in sync with the owner relationship of subclasses @NSManaged private var photoURL: URL? // Reset with the engine photo URL when it changes and during bootstrap @NSManaged private var rawCategory: Int @@ -101,11 +104,7 @@ public class PersistedContactGroup: NSManagedObject { } } - public func getGroupId() throws -> (groupUid: UID, groupOwner: ObvCryptoId) { - let groupOwner = try ObvCryptoId(identity: self.ownerIdentity) - return (self.groupUid, groupOwner) - } - + public var sortedContactIdentities: [PersistedObvContactIdentity] { contactIdentities.sorted(by: { $0.sortDisplayName < $1.sortDisplayName }) } @@ -122,28 +121,348 @@ public class PersistedContactGroup: NSManagedObject { public var circledInitialsConfiguration: CircledInitialsConfiguration { - .group(photoURL: displayPhotoURL, groupUid: groupUid) + .group(photo: .url(url: displayPhotoURL), groupUid: groupUid) + } + + + /// Returns `true` iff the personal note had to be updated in database + func setNote(to newNote: String?) -> Bool { + if self.note != newNote { + self.note = newNote + return true + } else { + return false + } } -} + public func getGroupId() throws -> GroupV1Identifier { + let groupOwner = try ObvCryptoId(identity: self.ownerIdentity) + return GroupV1Identifier(groupUid: self.groupUid, groupOwner: groupOwner) + } -// MARK: - Errors + + public func getGroupV1Identifier() throws -> GroupV1Identifier? { + let groupId = try self.getGroupId() + return .init(groupUid: groupId.groupUid, groupOwner: groupId.groupOwner) + } + + + // MARK: - Receiving discussion shared configurations + + /// Called when receiving a ``DiscussionSharedConfigurationJSON`` from a contact or an owned identity indicating this particular group as the target. This method makes sure the contact or the owned identity is allowed to change the configuration, i.e., that she is the group owner. + /// + /// Note that ``PersistedContactGroupJoined`` subclass overrides this method to check the permissions. + /// + func mergeReceivedDiscussionSharedConfiguration(discussionSharedConfiguration: PersistedDiscussion.SharedConfiguration, receivedFrom cryptoId: ObvCryptoId) throws -> (sharedSettingHadToBeUpdated: Bool, weShouldSendBackOurSharedSettings: Bool) { + + guard self.ownerIdentity == cryptoId.getIdentity() else { + throw ObvError.initiatorOfTheChangeIsNotTheGroupOwner + } + + let (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettingsIfAllowedTo) = try discussion.mergeReceivedDiscussionSharedConfiguration(discussionSharedConfiguration) + + return (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettingsIfAllowedTo) + + } + + + func replaceReceivedDiscussionSharedConfiguration(with expiration: ExpirationJSON, receivedFrom ownedIdentity: PersistedObvOwnedIdentity) throws -> Bool { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + guard self.ownerIdentity == ownedIdentity.identity else { + throw ObvError.initiatorOfTheChangeIsNotTheGroupOwner + } + + let sharedSettingHadToBeUpdated = try discussion.replaceReceivedDiscussionSharedConfiguration(with: expiration) + + return sharedSettingHadToBeUpdated + + } + + + // MARK: - Processing wipe requests + + func processWipeMessageRequest(of messagesToDelete: [MessageReferenceJSON], receivedFrom contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws -> [InfoAboutWipedOrDeletedPersistedMessage] { + + guard self.contactIdentities.contains(contact) || self.ownerIdentity == contact.cryptoId.getIdentity() else { + throw ObvError.unexpectedContact + } + + let infos = try discussion.processWipeMessageRequest(of: messagesToDelete, from: contact.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return infos + + } + + + func processWipeMessageRequest(of messagesToDelete: [MessageReferenceJSON], receivedFrom ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws -> [InfoAboutWipedOrDeletedPersistedMessage] { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + let infos = try discussion.processWipeMessageRequest(of: messagesToDelete, from: ownedIdentity.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return infos + + } + + + // MARK: - Processing discussion (all messages) wipe requests + + + func processRemoteRequestToWipeAllMessagesWithinThisGroupDiscussion(from contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws { + + guard self.contactIdentities.contains(contact) || self.ownerIdentity == contact.cryptoId.getIdentity() else { + throw ObvError.unexpectedContact + } + + try discussion.processRemoteRequestToWipeAllMessagesWithinThisDiscussion(from: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } -extension PersistedContactGroup { - struct ObvError: LocalizedError { + func processRemoteRequestToWipeAllMessagesWithinThisGroupDiscussion(from ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws { - let kind: Kind + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + try discussion.processRemoteRequestToWipeAllMessagesWithinThisDiscussion(from: ownedIdentity, messageUploadTimestampFromServer: messageUploadTimestampFromServer) - enum Kind { - case unexpecterCountOfOwnedIdentities(expected: Int, received: Int) + } + + + // MARK: - Processing delete requests from the owned identity + + func processMessageDeletionRequestRequestedFromCurrentDevice(of ownedIdentity: PersistedObvOwnedIdentity, messageToDelete: PersistedMessage, deletionType: DeletionType) throws -> InfoAboutWipedOrDeletedPersistedMessage { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity } + + let info = try self.discussion.processMessageDeletionRequestRequestedFromCurrentDevice(of: ownedIdentity, messageToDelete: messageToDelete, deletionType: deletionType) + + return info + + } + + + func processDiscussionDeletionRequestFromCurrentDevice(of ownedIdentity: PersistedObvOwnedIdentity, deletionType: DeletionType) throws { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + try self.discussion.processDiscussionDeletionRequestFromCurrentDevice(of: ownedIdentity, deletionType: deletionType) + + } + + + // MARK: - Receiving messages and attachments from a contact or another owned device + + func createOrOverridePersistedMessageReceived(from contact: PersistedObvContactIdentity, obvMessage: ObvMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?, overridePreviousPersistedMessage: Bool) throws -> (discussionPermanentID: DiscussionPermanentID, attachmentFullyReceivedOrCancelledByServer: [ObvAttachment]) { + + guard self.contactIdentities.contains(contact) else { + throw ObvError.unexpectedContact + } + + return try discussion.createOrOverridePersistedMessageReceived( + from: contact, + obvMessage: obvMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + overridePreviousPersistedMessage: overridePreviousPersistedMessage) + + } + + + func createPersistedMessageSentFromOtherOwnedDevice(from ownedIdentity: PersistedObvOwnedIdentity, obvOwnedMessage: ObvOwnedMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?) throws -> [ObvOwnedAttachment] { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + let attachmentFullyReceivedOrCancelledByServer = try discussion.createPersistedMessageSentFromOtherOwnedDevice( + from: ownedIdentity, + obvOwnedMessage: obvOwnedMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON) + + return attachmentFullyReceivedOrCancelledByServer + + } + + + // MARK: - Processing edit requests + + func processUpdateMessageRequest(_ updateMessageJSON: UpdateMessageJSON, receivedFrom contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + guard self.contactIdentities.contains(contact) else { + throw ObvError.unexpectedContact + } + + let updatedMessage = try discussion.processUpdateMessageRequest(updateMessageJSON, receivedFromContactCryptoId: contact.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } + + + func processUpdateMessageRequest(_ updateMessageJSON: UpdateMessageJSON, receivedFrom ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedContact + } + + let updatedMessage = try discussion.processUpdateMessageRequest(updateMessageJSON, receivedFromOwnedCryptoId: ownedIdentity.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return updatedMessage + + } + + + func processLocalUpdateMessageRequest(from ownedIdentity: PersistedObvOwnedIdentity, for messageSent: PersistedMessageSent, newTextBody: String?) throws { + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedContact + } + + try discussion.processLocalUpdateMessageRequest(from: ownedIdentity, for: messageSent, newTextBody: newTextBody) + + } + + + // MARK: - Process reaction requests + + func processSetOrUpdateReactionOnMessageLocalRequest(from ownedIdentity: PersistedObvOwnedIdentity, for message: PersistedMessage, newEmoji: String?) throws { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedContact + } + + try discussion.processSetOrUpdateReactionOnMessageLocalRequest(from: ownedIdentity, for: message, newEmoji: newEmoji) + + } + + + func processSetOrUpdateReactionOnMessageRequest(_ reactionJSON: ReactionJSON, receivedFrom contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + guard self.contactIdentities.contains(contact) else { + throw ObvError.unexpectedContact + } + + let updatedMessage = try discussion.processSetOrUpdateReactionOnMessageRequest(reactionJSON, receivedFrom: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } + + + func processSetOrUpdateReactionOnMessageRequest(_ reactionJSON: ReactionJSON, receivedFrom ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + let updatedMessage = try discussion.processSetOrUpdateReactionOnMessageRequest(reactionJSON, receivedFrom: ownedIdentity, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return updatedMessage + + } + + + // MARK: - Process screen capture detections + + func processDetectionThatSensitiveMessagesWereCaptured(_ screenCaptureDetectionJSON: ScreenCaptureDetectionJSON, from contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws { + + guard self.contactIdentities.contains(contact) else { + throw ObvError.unexpectedContact + } + + try discussion.processDetectionThatSensitiveMessagesWereCaptured(screenCaptureDetectionJSON, from: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + + func processDetectionThatSensitiveMessagesWereCaptured(_ screenCaptureDetectionJSON: ScreenCaptureDetectionJSON, from ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + try discussion.processDetectionThatSensitiveMessagesWereCaptured(screenCaptureDetectionJSON, from: ownedIdentity, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + + func processLocalDetectionThatSensitiveMessagesWereCapturedInThisDiscussion(by ownedIdentity: PersistedObvOwnedIdentity) throws { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + try discussion.processLocalDetectionThatSensitiveMessagesWereCapturedInThisDiscussion(by: ownedIdentity) + + } + + + // MARK: - Process requests for group v1 shared settings + + func processQuerySharedSettingsRequest(from contact: PersistedObvContactIdentity, querySharedSettingsJSON: QuerySharedSettingsJSON) throws -> (weShouldSendBackOurSharedSettings: Bool, discussionId: DiscussionIdentifier) { + + guard self.ownedIdentity == contact.ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + let discussionId = try discussion.identifier + let weShouldSendBackOurSharedSettings = try discussion.processQuerySharedSettingsRequest(querySharedSettingsJSON: querySharedSettingsJSON) + + return (weShouldSendBackOurSharedSettings, discussionId) + + } + + + func processQuerySharedSettingsRequest(from ownedIdentity: PersistedObvOwnedIdentity, querySharedSettingsJSON: QuerySharedSettingsJSON) throws -> (weShouldSendBackOurSharedSettings: Bool, discussionId: DiscussionIdentifier) { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + let discussionId = try discussion.identifier + let weShouldSendBackOurSharedSettings = try discussion.processQuerySharedSettingsRequest(querySharedSettingsJSON: querySharedSettingsJSON) + + return (weShouldSendBackOurSharedSettings, discussionId) + + } + + +} + + +// MARK: - Errors + +extension PersistedContactGroup { + + enum ObvError: LocalizedError { + + case unexpecterCountOfOwnedIdentities(expected: Int, received: Int) + case initiatorOfTheChangeIsNotTheGroupOwner + case unexpectedContact + case unexpectedOwnedIdentity + var errorDescription: String? { - switch kind { + switch self { case .unexpecterCountOfOwnedIdentities(expected: let expected, received: let received): return "Unexpected number of owned identites. Expecting \(expected), got \(received)." + case .initiatorOfTheChangeIsNotTheGroupOwner: + return "The initiator of the change is not the group owner" + case .unexpectedContact: + return "Unexpected contact" + case .unexpectedOwnedIdentity: + return "Unexpected owned identity" } } @@ -170,7 +489,7 @@ extension PersistedContactGroup { self.ownerIdentity = contactGroup.groupOwner.cryptoId.getIdentity() self.photoURL = contactGroup.trustedOrLatestPhotoURL - let _contactIdentities = try contactGroup.groupMembers.compactMap { try PersistedObvContactIdentity.get(persisted: $0, whereOneToOneStatusIs: .any, within: context) } + let _contactIdentities = try contactGroup.groupMembers.compactMap { try PersistedObvContactIdentity.get(persisted: $0.contactIdentifier, whereOneToOneStatusIs: .any, within: context) } self.contactIdentities = Set(_contactIdentities) if let discussion = try PersistedGroupDiscussion.getWithGroupUID(contactGroup.groupUid, @@ -276,7 +595,7 @@ extension PersistedContactGroup { // We make sure all contact identities concern the same owned identity let ownedIdentities = Set(contactIdentities.map { $0.ownedIdentity }) guard ownedIdentities.count == 1 else { - throw ObvError(kind: .unexpecterCountOfOwnedIdentities(expected: 1, received: ownedIdentities.count)) + throw ObvError.unexpecterCountOfOwnedIdentities(expected: 1, received: ownedIdentities.count) } let ownedIdentity = ownedIdentities.first!.cryptoId // Get the persisted contacts corresponding to the contact identities @@ -344,7 +663,7 @@ extension PersistedContactGroup { static func withContactIdentity(_ contactIdentity: PersistedObvContactIdentity) -> NSPredicate { NSPredicate(Key.contactIdentities, contains: contactIdentity) } - static func withGroupId(_ groupId: (groupUid: UID, groupOwner: ObvCryptoId)) -> NSPredicate { + static func withGroupIdentifier(_ groupId: GroupV1Identifier) -> NSPredicate { NSCompoundPredicate(andPredicateWithSubpredicates: [ NSPredicate(Key.groupUidRaw, EqualToData: groupId.groupUid.raw), NSPredicate(Key.ownerIdentity, EqualToData: groupId.groupOwner.getIdentity()), @@ -358,11 +677,11 @@ extension PersistedContactGroup { } - public static func getContactGroup(groupId: (groupUid: UID, groupOwner: ObvCryptoId), ownedIdentity: PersistedObvOwnedIdentity) throws -> PersistedContactGroup? { + public static func getContactGroup(groupIdentifier: GroupV1Identifier, ownedIdentity: PersistedObvOwnedIdentity) throws -> PersistedContactGroup? { guard let context = ownedIdentity.managedObjectContext else { throw Self.makeError(message: "Context is nil") } let request: NSFetchRequest = PersistedContactGroup.fetchRequest() request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ - Predicate.withGroupId(groupId), + Predicate.withGroupIdentifier(groupIdentifier), Predicate.withPersistedObvOwnedIdentity(ownedIdentity), ]) request.fetchLimit = 1 @@ -370,10 +689,10 @@ extension PersistedContactGroup { } - public static func getContactGroup(groupId: (groupUid: UID, groupOwner: ObvCryptoId), ownedCryptoId: ObvCryptoId, within context: NSManagedObjectContext) throws -> PersistedContactGroup? { + public static func getContactGroup(groupIdentifier: GroupV1Identifier, ownedCryptoId: ObvCryptoId, within context: NSManagedObjectContext) throws -> PersistedContactGroup? { let request: NSFetchRequest = PersistedContactGroup.fetchRequest() request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ - Predicate.withGroupId(groupId), + Predicate.withGroupIdentifier(groupIdentifier), Predicate.withOwnCryptoId(ownedCryptoId), ]) request.fetchLimit = 1 @@ -468,3 +787,77 @@ extension PersistedContactGroup { } } + + +// MARK: - For snapshot purposes + +extension PersistedContactGroup { + + var syncSnapshotNode: PersistedContactGroupSyncSnapshotNode { + .init(groupNameCustom: (self as? PersistedContactGroupJoined)?.groupNameCustom, + note: note, + discussion: discussion) + } + +} + + +struct PersistedContactGroupSyncSnapshotNode: ObvSyncSnapshotNode { + + private let domain: Set + private let groupNameCustom: String? // Only for joined group under iOS + private let note: String? + private let discussionConfiguration: PersistedDiscussionConfigurationSyncSnapshotNode? + + let id = Self.generateIdentifier() + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case groupNameCustom = "custom_name" + case note = "personal_note" + case discussionConfiguration = "discussion_customization" + case domain = "domain" + } + + private static let defaultDomain = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + + init(groupNameCustom: String?, note: String?, discussion: PersistedGroupDiscussion?) { + self.groupNameCustom = groupNameCustom + self.note = note + self.discussionConfiguration = discussion?.syncSnapshotNode + self.domain = Self.defaultDomain + } + + + // Synthesized implementation of encode(to encoder: Encoder) + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + self.groupNameCustom = try values.decodeIfPresent(String.self, forKey: .groupNameCustom) + self.note = try values.decodeIfPresent(String.self, forKey: .note) + self.discussionConfiguration = try values.decodeIfPresent(PersistedDiscussionConfigurationSyncSnapshotNode.self, forKey: .discussionConfiguration) + } + + + func useToUpdate(_ contactGroup: PersistedContactGroup) { + + if domain.contains(.groupNameCustom) { + if let contactGroupJoined = contactGroup as? PersistedContactGroupJoined { + _ = try? contactGroupJoined.setGroupNameCustom(to: groupNameCustom) + } + } + + if domain.contains(.note) { + _ = contactGroup.setNote(to: note) + } + + if domain.contains(.discussionConfiguration) { + discussionConfiguration?.useToUpdate(contactGroup.discussion) + } + + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/ContactGroupV1/PersistedContactGroupJoined.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/ContactGroupV1/PersistedContactGroupJoined.swift index 8cd6e256..5b0f3d3c 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/ContactGroupV1/PersistedContactGroupJoined.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/ContactGroupV1/PersistedContactGroupJoined.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,7 @@ import CoreData import ObvEngine import ObvTypes import OlvidUtils +import ObvSettings @objc(PersistedContactGroupJoined) @@ -52,13 +53,9 @@ public final class PersistedContactGroupJoined: PersistedContactGroup, ObvErrorM return ObvUICoreDataConstants.ContainerURL.forCustomGroupProfilePictures.appendingPathComponent(customPhotoFilename) } -} - -// MARK: - Initializer + // MARK: - Initializer -extension PersistedContactGroupJoined { - public convenience init(contactGroup: ObvContactGroup, within context: NSManagedObjectContext) throws { guard contactGroup.groupType == .joined else { @@ -86,6 +83,23 @@ extension PersistedContactGroupJoined { self.owner = owner self.customPhotoFilename = nil } + + + // MARK: - Receiving discussion shared configurations + + + /// Called when receiving a ``DiscussionSharedConfigurationJSON`` from a contact or an owned identity indicating this particular group as the target. This method makes sure the contact or the owned identity is allowed to change the configuration, i.e., that she is the group owner. + override func mergeReceivedDiscussionSharedConfiguration(discussionSharedConfiguration: PersistedDiscussion.SharedConfiguration, receivedFrom cryptoId: ObvCryptoId) throws -> (sharedSettingHadToBeUpdated: Bool, weShouldSendBackOurSharedSettings: Bool) { + + let (sharedSettingHadToBeUpdated, _) = try super.mergeReceivedDiscussionSharedConfiguration(discussionSharedConfiguration: discussionSharedConfiguration, receivedFrom: cryptoId) + + // Since we joined this group, we are not allowed to change its shared settings, so we never send ours back + + let weShouldSendBackOurSharedSettings = false + + return (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettings) + + } } @@ -94,23 +108,35 @@ extension PersistedContactGroupJoined { extension PersistedContactGroupJoined { - public func setGroupNameCustom(to groupNameCustom: String) throws { - let newGroupNameCustom = groupNameCustom.trimmingCharacters(in: .whitespacesAndNewlines) - guard !newGroupNameCustom.isEmpty else { throw Self.makeError(message: "Cannot use an empty string as a custom group name") } - self.groupNameCustom = newGroupNameCustom - try resetDiscussionTitle() - } - - - public func removeGroupNameCustom() throws { - self.groupNameCustom = nil - try resetDiscussionTitle() + func setGroupNameCustom(to groupNameCustom: String?) throws -> Bool { + let groupNameCustomHadToBeUpdated: Bool + let newGroupNameCustom = groupNameCustom?.trimmingCharacters(in: .whitespacesAndNewlines) + if let newGroupNameCustom, !newGroupNameCustom.isEmpty { + if self.groupNameCustom != newGroupNameCustom { + self.groupNameCustom = newGroupNameCustom + groupNameCustomHadToBeUpdated = true + } else { + groupNameCustomHadToBeUpdated = false + } + } else { + if self.groupNameCustom != nil { + self.groupNameCustom = nil + groupNameCustomHadToBeUpdated = true + } else { + groupNameCustomHadToBeUpdated = false + } + } + if groupNameCustomHadToBeUpdated { + try discussion.resetTitle(to: self.displayName) + } + return groupNameCustomHadToBeUpdated } public func setStatus(to newStatus: PublishedDetailsStatusType) { guard self.rawStatus != newStatus.rawValue else { return } self.rawStatus = newStatus.rawValue + try? createOrUpdateTheAssociatedDisplayedContactGroup() } } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/ContactGroupV2/PersistedGroupV2.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/ContactGroupV2/PersistedGroupV2.swift index 18a79742..3ef99bcd 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/ContactGroupV2/PersistedGroupV2.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/ContactGroupV2/PersistedGroupV2.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -16,7 +16,6 @@ * You should have received a copy of the GNU Affero General Public License * along with Olvid. If not, see . */ - import Foundation import CoreData @@ -25,7 +24,10 @@ import ObvTypes import CryptoKit import os.log import Platform_Base -import UI_CircledInitialsView_CircledInitialsConfiguration +import ObvEngine +import UI_ObvCircledInitials +import ObvSettings + @objc(PersistedGroupV2) public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { @@ -45,7 +47,7 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { @NSManaged private var ownPermissionEditOrRemoteDeleteOwnMessages: Bool @NSManaged private var ownPermissionRemoteDeleteAnything: Bool @NSManaged private var ownPermissionSendMessage: Bool - @NSManaged private var personalNote: String? + @NSManaged public private(set) var personalNote: String? @NSManaged private var rawOwnedIdentityIdentity: Data // Part of primary key @NSManaged private var rawPublishedDetailsStatus: Int @NSManaged public private(set) var updateInProgress: Bool @@ -130,13 +132,12 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { public var circledInitialsConfiguration: CircledInitialsConfiguration { - .groupV2(photoURL: self.displayPhotoURL, groupIdentifier: groupIdentifier, showGreenShield: keycloakManaged) + .groupV2(photo: .url(url: self.displayPhotoURL), groupIdentifier: groupIdentifier, showGreenShield: keycloakManaged) } public var circledInitialsConfigurationPublished: CircledInitialsConfiguration { - let photoURL = self.displayPhotoURLPublished - return .groupV2(photoURL: photoURL, groupIdentifier: groupIdentifier, showGreenShield: keycloakManaged) + return .groupV2(photo: .url(url: self.displayPhotoURLPublished), groupIdentifier: groupIdentifier, showGreenShield: keycloakManaged) } // Initializer @@ -186,7 +187,6 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { self.ownPermissionEditOrRemoteDeleteOwnMessages = obvGroupV2.ownPermissions.contains(.editOrRemoteDeleteOwnMessages) self.ownPermissionRemoteDeleteAnything = obvGroupV2.ownPermissions.contains(.remoteDeleteAnything) self.ownPermissionSendMessage = obvGroupV2.ownPermissions.contains(.sendMessage) - self.personalNote = nil self.rawOwnedIdentityIdentity = obvGroupV2.ownIdentity.getIdentity() self.updateInProgress = obvGroupV2.updateInProgress displayedContactGroup?.updateUsingUnderlyingGroup() @@ -194,22 +194,29 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { } + /// Returns `true` iff the personal note had to be updated in database + func setNote(to newNote: String?) -> Bool { + if self.personalNote != newNote { + self.personalNote = newNote + return true + } else { + return false + } + } + + /// The `namesOfOtherMembers` attribute is essentially used to display a group name when no specific name was specified. /// This method allows to update this attribute. private func updateNamesOfOtherMembers() { let names = otherMembers.map({ $0.displayedCustomDisplayNameOrFirstNameOrLastName ?? "" }).sorted() - if #available(iOS 15, *) { - self.namesOfOtherMembers = names.formatted(.list(type: .and, width: .short)) - } else { - self.namesOfOtherMembers = names.joined(separator: ", ") - } + self.namesOfOtherMembers = names.formatted(.list(type: .and, width: .short)) displayedContactGroup?.updateUsingUnderlyingGroup() try? discussion?.resetTitle(to: self.displayName) } - /// This method moves the photo at the indicated URL to a proper location. - public func updateCustomPhotoWithPhotoAtURL(_ url: URL?, within obvContext: ObvContext) throws { + /// This method saves the photo to a proper location. + func updateCustomPhotoWithPhoto(_ newPhoto: UIImage?, within obvContext: ObvContext) throws { defer { displayedContactGroup?.updateUsingUnderlyingGroup() @@ -238,28 +245,26 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { self.customPhotoFilename = nil - // If received url is nil, there is nothing left to do + // If received new photo is nil, there is nothing left to do - guard let url = url else { return } + guard let newPhoto else { return } - // Make sure there is a file a the received URL - - guard FileManager.default.fileExists(atPath: url.path) else { - throw Self.makeError(message: "Could not find file at url \(url.debugDescription)") - } - - // Move the file at the received URL to a proper location (if the context saves without error) + // Create a file at a proper location let newCustomFilename = UUID().uuidString self.customPhotoFilename = newCustomFilename let customPhotoURL = ObvUICoreDataConstants.ContainerURL.forCustomGroupProfilePictures.appendingPathComponent(newCustomFilename) - + guard let jpegData = newPhoto.jpegData(compressionQuality: 0.75) else { + assertionFailure() + throw Self.makeError(message: "Could not extract jpeg data for custom group photo") + } do { - try FileManager.default.linkItem(at: url, to: customPhotoURL) + try jpegData.write(to: customPhotoURL) } catch { - try FileManager.default.copyItem(at: url, to: customPhotoURL) + assertionFailure() + throw Self.makeError(message: "Could not write custom photo to file") } - + // If the context saves with an error, remove the file we just created try obvContext.addContextDidSaveCompletionHandler { error in @@ -271,11 +276,15 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { } - public func updateCustomNameWith(with newCustomName: String?) throws { - guard self.customName != newCustomName else { return } + /// Returns `true` iff the group custom name had to be updated. + func updateCustomNameWith(with newCustomName: String?) throws -> Bool { + guard self.customName != newCustomName else { + return false + } self.customName = newCustomName displayedContactGroup?.updateUsingUnderlyingGroup() try discussion?.resetTitle(to: self.displayName) + return true } @@ -423,12 +432,12 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { if obvGroupV2.keycloakManaged { do { - if let serializedSharedSettings = obvGroupV2.serializedSharedSettings, let lastModificationTimestamp = obvGroupV2.lastModificationTimestamp { + if let serializedSharedSettings = obvGroupV2.serializedSharedSettings { if let serializedSharedSettingsAsData = serializedSharedSettings.data(using: .utf8) { let discussionSharedConfigurationForKeycloakGroupJSON = try DiscussionSharedConfigurationForKeycloakGroupJSON.jsonDecode(serializedSharedSettingsAsData) if let expirationJSON = discussionSharedConfigurationForKeycloakGroupJSON.expiration { assert(rawDiscussion != nil) - _ = try rawDiscussion?.sharedConfiguration.replacePersistedDiscussionSharedConfiguration(with: expirationJSON, initiator: .keycloak(lastModificationTimestamp: lastModificationTimestamp)) + _ = try rawDiscussion?.sharedConfiguration.replacePersistedDiscussionSharedConfiguration(with: expirationJSON) } } else { assertionFailure("We could not parse the shared settings sent by the keycloak server") // In production, continue anyway @@ -465,7 +474,7 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { } - public static func createOrUpdate(obvGroupV2: ObvGroupV2, createdByMe: Bool, within context: NSManagedObjectContext) throws -> PersistedGroupV2 { + static func createOrUpdate(obvGroupV2: ObvGroupV2, createdByMe: Bool, within context: NSManagedObjectContext) throws -> PersistedGroupV2 { if let persistedGroup = try PersistedGroupV2.getWithObvGroupV2(obvGroupV2, within: context) { persistedGroup.updateAttributes(obvGroupV2: obvGroupV2) try persistedGroup.updateRelationships(obvGroupV2: obvGroupV2, @@ -514,12 +523,16 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { public func setUpdateInProgress() { assert(!keycloakManaged) - self.updateInProgress = true + if !self.updateInProgress { + self.updateInProgress = true + } } public func removeUpdateInProgress() { - self.updateInProgress = false + if self.updateInProgress { + self.updateInProgress = false + } } @@ -542,6 +555,7 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { case rawOwnedIdentityIdentity = "rawOwnedIdentityIdentity" case updateInProgress = "updateInProgress" case rawOtherMembers = "rawOtherMembers" + case customPhotoFilename = "customPhotoFilename" } static func withOwnedIdentity(_ ownedIdentity: PersistedObvOwnedIdentity) -> NSPredicate { NSPredicate(Key.rawOwnedIdentityIdentity, EqualToData: ownedIdentity.identity) @@ -565,6 +579,9 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { NSPredicate(format: predicateFormat, contactIdentity) ]) } + public static var withCustomPhotoFilename: NSPredicate { + NSPredicate(withNonNilValueForKey: Key.customPhotoFilename) + } } @@ -573,6 +590,16 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { } + public static func getAllCustomPhotoURLs(within context: NSManagedObjectContext) throws -> Set { + let request: NSFetchRequest = PersistedGroupV2.fetchRequest() + request.predicate = Predicate.withCustomPhotoFilename + request.propertiesToFetch = [Predicate.Key.customPhotoFilename.rawValue] + let details = try context.fetch(request) + let photoURLs = Set(details.compactMap({ $0.customPhotoURL })) + return photoURLs + } + + public static func getWithPrimaryKey(ownCryptoId: ObvCryptoId, groupIdentifier: Data, within context: NSManagedObjectContext) throws -> PersistedGroupV2? { let request: NSFetchRequest = PersistedGroupV2.fetchRequest() request.predicate = Predicate.withPrimaryKey(ownCryptoId: ownCryptoId, groupIdentifier: groupIdentifier) @@ -594,7 +621,7 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { } - public static func get(ownIdentity: ObvCryptoId, appGroupIdentifier: Data, within context: NSManagedObjectContext) throws -> PersistedGroupV2? { + public static func get(ownIdentity: ObvCryptoId, appGroupIdentifier: GroupV2Identifier, within context: NSManagedObjectContext) throws -> PersistedGroupV2? { return try getWithPrimaryKey(ownCryptoId: ownIdentity, groupIdentifier: appGroupIdentifier, within: context) } @@ -816,12 +843,598 @@ public final class PersistedGroupV2: NSManagedObject, ObvErrorMaker { ObvMessengerCoreDataNotification.persistedGroupV2WasDeleted(objectID: self.typedObjectID) .postOnDispatchQueue() } else if changedKeys.contains(Predicate.Key.updateInProgress.rawValue) && self.updateInProgress == false { - ObvMessengerCoreDataNotification.persistedGroupV2UpdateIsFinished(objectID: self.typedObjectID) - .postOnDispatchQueue() + if let ownedCryptoId = try? self.ownCryptoId { + ObvMessengerCoreDataNotification.persistedGroupV2UpdateIsFinished(objectID: self.typedObjectID, ownedCryptoId: ownedCryptoId, groupIdentifier: self.groupIdentifier) + .postOnDispatchQueue() + } + } + + if isInserted { + if let ownedCryptoId = try? self.ownCryptoId { + ObvMessengerCoreDataNotification.aPersistedGroupV2WasInsertedInDatabase(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier) + .postOnDispatchQueue() + } + } + + } + + + // MARK: - Receiving discussion shared configurations + + /// Called when receiving a shared discussion configuration from a contact indicating this particular group as the target. This method makes sure the contact is allowed to change the configuration. + func mergeReceivedDiscussionSharedConfiguration(discussionSharedConfiguration: PersistedDiscussion.SharedConfiguration, receivedFrom contact: PersistedObvContactIdentity) throws -> (sharedSettingHadToBeUpdated: Bool, weShouldSendBackOurSharedSettings: Bool) { + + let contactIdentity = contact.identity + + guard self.ownedIdentityIdentity == contact.ownedIdentity?.identity else { + throw Self.makeError(message: "Owned identity is not part of group") + } + + guard let initiatorAsMember = self.otherMembers.first(where: { $0.identity == contactIdentity }) else { + throw Self.makeError(message: "The initiator is not part of the group") + } + + guard initiatorAsMember.isAllowedToChangeSettings else { + throw Self.makeError(message: "The initiator is not allowed to change settings") + } + + guard let discussion = self.discussion else { + throw Self.makeError(message: "Could not find discussion") + } + + let (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettingsIfAllowedTo) = try discussion.mergeReceivedDiscussionSharedConfiguration(discussionSharedConfiguration) + + let weShouldSendBackOurSharedSettings: Bool + if self.ownPermissionChangeSettings { + weShouldSendBackOurSharedSettings = weShouldSendBackOurSharedSettingsIfAllowedTo + } else { + weShouldSendBackOurSharedSettings = false + } + + return (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettings) + + } + + + /// Called when receiving a shared discussion configuration from another device of an owned identity indicating this particular group as the target. This method makes sure the contact is allowed to change the configuration. + func mergeReceivedDiscussionSharedConfiguration(discussionSharedConfiguration: PersistedDiscussion.SharedConfiguration, receivedFrom ownedIdentity: PersistedObvOwnedIdentity) throws -> (sharedSettingHadToBeUpdated: Bool, weShouldSendBackOurSharedSettings: Bool) { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw Self.makeError(message: "Owned identity is not part of group") + } + + guard self.ownedIdentityIsAllowedToChangeSettings else { + throw Self.makeError(message: "The owned identity is not allowed to change settings") + } + + guard let discussion = self.discussion else { + throw Self.makeError(message: "Could not find discussion") + } + + let (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettingsIfAllowedTo) = try discussion.mergeReceivedDiscussionSharedConfiguration(discussionSharedConfiguration) + + let weShouldSendBackOurSharedSettings: Bool + if self.ownPermissionChangeSettings { + weShouldSendBackOurSharedSettings = weShouldSendBackOurSharedSettingsIfAllowedTo + } else { + weShouldSendBackOurSharedSettings = false + } + + return (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettings) + + } + + func replaceReceivedDiscussionSharedConfiguration(with expiration: ExpirationJSON, receivedFrom ownedIdentity: PersistedObvOwnedIdentity) throws -> Bool { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw Self.makeError(message: "Owned identity is not part of group") + } + + guard self.ownedIdentityIsAllowedToChangeSettings else { + throw Self.makeError(message: "The owned identity is not allowed to change settings") + } + + guard let discussion = self.discussion else { + throw Self.makeError(message: "Could not find discussion") + } + + let sharedSettingHadToBeUpdated = try discussion.replaceReceivedDiscussionSharedConfiguration(with: expiration) + + return sharedSettingHadToBeUpdated + + } + + + // MARK: - Processing wipe requests from contacts and other owned devices + + func processWipeMessageRequest(of messagesToDelete: [MessageReferenceJSON], receivedFrom contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws -> [InfoAboutWipedOrDeletedPersistedMessage] { + + guard self.ownedIdentityIdentity == contact.ownedIdentity?.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let requester = self.otherMembers.first(where: { $0.identity == contact.cryptoId.getIdentity() }) else { + throw ObvError.wipeRequestedByNonGroupMember + } + + guard requester.isAllowedToRemoteDeleteAnything || requester.isAllowedToEditOrRemoteDeleteOwnMessages else { + assertionFailure() + throw ObvError.wipeRequestedByMemberNotAllowedToRemoteDelete + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + let infos = try discussion.processWipeMessageRequest(of: messagesToDelete, from: contact.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return infos + + } + + + func processWipeMessageRequest(of messagesToDelete: [MessageReferenceJSON], receivedFrom ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws -> [InfoAboutWipedOrDeletedPersistedMessage] { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + // We do not check whether the owned identity is allowed to wipe + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + let infos = try discussion.processWipeMessageRequest(of: messagesToDelete, from: ownedIdentity.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return infos + + } + + + // MARK: - Processing delete requests from the owned identity (made on this device) + + func processMessageDeletionRequestRequestedFromCurrentDevice(of ownedIdentity: PersistedObvOwnedIdentity, messageToDelete: PersistedMessage, deletionType: DeletionType) throws -> InfoAboutWipedOrDeletedPersistedMessage { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + switch deletionType { + case .local: + break + case .global: + guard self.ownedIdentityIsAllowedToRemoteDeleteAnything || (self.ownedIdentityIsAllowedToEditOrRemoteDeleteOwnMessages && messageToDelete is PersistedMessageSent) else { + assertionFailure() + throw ObvError.ownedIdentityIsNotAllowedToDeleteThisMessage + } + } + + let info = try discussion.processMessageDeletionRequestRequestedFromCurrentDevice( + of: ownedIdentity, + messageToDelete: messageToDelete, + deletionType: deletionType) + + return info + + } + + + // MARK: - Receiving messages and attachments from a contact or another owned device + + func createOrOverridePersistedMessageReceived(from contact: PersistedObvContactIdentity, obvMessage: ObvMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?, overridePreviousPersistedMessage: Bool) throws -> (discussionPermanentID: DiscussionPermanentID, attachmentFullyReceivedOrCancelledByServer: [ObvAttachment]) { + + guard self.ownedIdentityIdentity == contact.ownedIdentity?.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let requester = self.otherMembers.first(where: { $0.identity == contact.cryptoId.getIdentity() }) else { + throw ObvError.wipeRequestedByNonGroupMember + } + + guard requester.isAllowedToSendMessage else { + throw ObvError.messageReceivedByMemberNotAllowedToSendMessage + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + return try discussion.createOrOverridePersistedMessageReceived( + from: contact, + obvMessage: obvMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + overridePreviousPersistedMessage: overridePreviousPersistedMessage) + + } + + + func createPersistedMessageSentFromOtherOwnedDevice(from ownedIdentity: PersistedObvOwnedIdentity, obvOwnedMessage: ObvOwnedMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?) throws -> [ObvOwnedAttachment] { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard ownedIdentityIsAllowedToSendMessage else { + throw ObvError.ownedIdentityIsNotAllowedToSendMessages + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + let attachmentFullyReceivedOrCancelledByServer = try discussion.createPersistedMessageSentFromOtherOwnedDevice( + from: ownedIdentity, + obvOwnedMessage: obvOwnedMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON) + + return attachmentFullyReceivedOrCancelledByServer + + } + + + // MARK: - Processing edit requests + + func processUpdateMessageRequest(_ updateMessageJSON: UpdateMessageJSON, receivedFrom contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + guard self.ownedIdentityIdentity == contact.ownedIdentity?.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let requester = self.otherMembers.first(where: { $0.identity == contact.cryptoId.getIdentity() }) else { + throw ObvError.wipeRequestedByNonGroupMember + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + // Check that the contact is allowed to edit her messages. Note that the check whether the message was written by her is done later. + + guard requester.isAllowedToEditOrRemoteDeleteOwnMessages else { + throw ObvError.updateRequestReceivedByMemberNotAllowedToToEditOrRemoteDeleteOwnMessages + } + + // Request the update + + let updatedMessage = try discussion.processUpdateMessageRequest(updateMessageJSON, receivedFromContactCryptoId: contact.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } + + + func processUpdateMessageRequest(_ updateMessageJSON: UpdateMessageJSON, receivedFrom ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + // Check that the owned identity is allowed to edit her messages. Note that the check whether the message was written by her is done later. + + guard ownedIdentityIsAllowedToEditOrRemoteDeleteOwnMessages else { + throw ObvError.ownedIdentityIsNotAllowedToEditOrRemoteDeleteOwnMessages + } + + // Request the update + + let updatedMessage = try discussion.processUpdateMessageRequest(updateMessageJSON, receivedFromOwnedCryptoId: ownedIdentity.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } + + + func processLocalUpdateMessageRequest(from ownedIdentity: PersistedObvOwnedIdentity, for messageSent: PersistedMessageSent, newTextBody: String?) throws { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion } + + // Check that the owned identity is allowed to edit her messages. + + guard ownedIdentityIsAllowedToEditOrRemoteDeleteOwnMessages else { + throw ObvError.ownedIdentityIsNotAllowedToEditOrRemoteDeleteOwnMessages + } + + // Request the update + + try discussion.processLocalUpdateMessageRequest(from: ownedIdentity, for: messageSent, newTextBody: newTextBody) + + } + + + // MARK: - Processing discussion (all messages) remote wipe requests + + + func processRemoteRequestToWipeAllMessagesWithinThisGroupDiscussion(from contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws { + + guard self.ownedIdentityIdentity == contact.ownedIdentity?.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let requester = self.otherMembers.first(where: { $0.identity == contact.cryptoId.getIdentity() }) else { + throw ObvError.wipeRequestedByNonGroupMember + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + // Check that the contact is allowed to make this request + + guard requester.isAllowedToRemoteDeleteAnything else { + throw ObvError.requestToDeleteAllMessagesWithinThisGroupDiscussionFromContactNotAllowedToDoSo + } + + try discussion.processRemoteRequestToWipeAllMessagesWithinThisDiscussion(from: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + + func processRemoteRequestToWipeAllMessagesWithinThisGroupDiscussion(from ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + // Check that the owned identity is allowed to perform a remote deletion + guard self.ownedIdentityIsAllowedToRemoteDeleteAnything else { + throw ObvError.ownedIdentityIsNotAllowedToDeleteDiscussion + } + + try discussion.processRemoteRequestToWipeAllMessagesWithinThisDiscussion(from: ownedIdentity, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + + func processDiscussionDeletionRequestFromCurrentDevice(of ownedIdentity: PersistedObvOwnedIdentity, deletionType: DeletionType) throws { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + switch deletionType { + case .local: + break + case .global: + guard self.ownedIdentityIsAllowedToRemoteDeleteAnything else { + throw ObvError.ownedIdentityIsNotAllowedToDeleteDiscussion + } + } + + try discussion.processDiscussionDeletionRequestFromCurrentDevice(of: ownedIdentity, deletionType: deletionType) + + } + + + // MARK: - Process reaction requests + + func processSetOrUpdateReactionOnMessageLocalRequest(from ownedIdentity: PersistedObvOwnedIdentity, for message: PersistedMessage, newEmoji: String?) throws { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + guard ownedIdentityIsAllowedToSendMessage else { + throw ObvError.ownedIdentityIsNotAllowedToSendMessages + } + + try discussion.processSetOrUpdateReactionOnMessageLocalRequest(from: ownedIdentity, for: message, newEmoji: newEmoji) + + } + + + func processSetOrUpdateReactionOnMessageRequest(_ reactionJSON: ReactionJSON, receivedFrom contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + guard self.ownedIdentityIdentity == contact.ownedIdentity?.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let requester = self.otherMembers.first(where: { $0.identity == contact.cryptoId.getIdentity() }) else { + throw ObvError.wipeRequestedByNonGroupMember + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + // Check that the contact is allowed to react + + guard requester.isAllowedToSendMessage else { + throw ObvError.messageReceivedByMemberNotAllowedToSendMessage + } + + let updatedMessage = try discussion.processSetOrUpdateReactionOnMessageRequest(reactionJSON, receivedFrom: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return updatedMessage + + } + + + func processSetOrUpdateReactionOnMessageRequest(_ reactionJSON: ReactionJSON, receivedFrom ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + guard ownedIdentityIsAllowedToSendMessage else { + throw ObvError.ownedIdentityIsNotAllowedToSendMessages + } + + let updatedMessage = try discussion.processSetOrUpdateReactionOnMessageRequest(reactionJSON, receivedFrom: ownedIdentity, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return updatedMessage + + } + + + // MARK: - Process screen capture detections + + func processDetectionThatSensitiveMessagesWereCaptured(_ screenCaptureDetectionJSON: ScreenCaptureDetectionJSON, from contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws { + + guard self.ownedIdentityIdentity == contact.ownedIdentity?.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard self.otherMembers.first(where: { $0.identity == contact.cryptoId.getIdentity() }) != nil else { + throw ObvError.wipeRequestedByNonGroupMember + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + try discussion.processDetectionThatSensitiveMessagesWereCaptured(screenCaptureDetectionJSON, from: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + + func processDetectionThatSensitiveMessagesWereCaptured(_ screenCaptureDetectionJSON: ScreenCaptureDetectionJSON, from ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + try discussion.processDetectionThatSensitiveMessagesWereCaptured(screenCaptureDetectionJSON, from: ownedIdentity, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + + func processLocalDetectionThatSensitiveMessagesWereCapturedInThisDiscussion(by ownedIdentity: PersistedObvOwnedIdentity) throws { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + try discussion.processLocalDetectionThatSensitiveMessagesWereCapturedInThisDiscussion(by: ownedIdentity) + + } + + + // MARK: - Process requests for group v2 shared settings + + func processQuerySharedSettingsRequest(from contact: PersistedObvContactIdentity, querySharedSettingsJSON: QuerySharedSettingsJSON) throws -> (weShouldSendBackOurSharedSettings: Bool, discussionId: DiscussionIdentifier) { + + guard self.ownedIdentityIdentity == contact.ownedIdentity?.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard self.otherMembers.first(where: { $0.identity == contact.cryptoId.getIdentity() }) != nil else { + throw ObvError.wipeRequestedByNonGroupMember + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + let discussionId = try discussion.identifier + let weShouldSendBackOurSharedSettings = try discussion.processQuerySharedSettingsRequest(querySharedSettingsJSON: querySharedSettingsJSON) + + return (weShouldSendBackOurSharedSettings, discussionId) } + + + func processQuerySharedSettingsRequest(from ownedIdentity: PersistedObvOwnedIdentity, querySharedSettingsJSON: QuerySharedSettingsJSON) throws -> (weShouldSendBackOurSharedSettings: Bool, discussionId: DiscussionIdentifier) { + + guard self.ownedIdentityIdentity == ownedIdentity.identity else { + throw ObvError.ownedIdentityIsNotPartOfThisGroup + } + + guard let discussion else { + throw ObvError.couldNotFindGroupDiscussion + } + + let discussionId = try discussion.identifier + let weShouldSendBackOurSharedSettings = try discussion.processQuerySharedSettingsRequest(querySharedSettingsJSON: querySharedSettingsJSON) + + return (weShouldSendBackOurSharedSettings, discussionId) + + } + + // MARK: - ObvError + + public enum ObvError: LocalizedError { + + case wipeRequestedByNonGroupMember + case wipeRequestedByMemberNotAllowedToRemoteDelete + case couldNotFindGroupDiscussion + case messageReceivedByMemberNotAllowedToSendMessage + case ownedIdentityIsNotPartOfThisGroup + case ownedIdentityIsNotAllowedToSendMessages + case ownedIdentityIsNotAllowedToDeleteThisMessage + case updateRequestReceivedByMemberNotAllowedToToEditOrRemoteDeleteOwnMessages + case ownedIdentityIsNotAllowedToEditOrRemoteDeleteOwnMessages + case requestToDeleteAllMessagesWithinThisGroupDiscussionFromContactNotAllowedToDoSo + case ownedIdentityIsNotAllowedToDeleteDiscussion + + public var errorDescription: String? { + switch self { + case .wipeRequestedByNonGroupMember: + return "Wipe requested by non group member" + case .wipeRequestedByMemberNotAllowedToRemoteDelete: + return "Wipe requested by member not allowed to remote delete" + case .couldNotFindGroupDiscussion: + return "Could not find group discussion" + case .messageReceivedByMemberNotAllowedToSendMessage: + return "Message received by a group member not allowed to send messages" + case .ownedIdentityIsNotPartOfThisGroup: + return "Owned identity is not part of this group" + case .ownedIdentityIsNotAllowedToSendMessages: + return "Owned identity is not allowed to send messages" + case .ownedIdentityIsNotAllowedToDeleteThisMessage: + return "Owned identity is not allowed to delete this message" + case .updateRequestReceivedByMemberNotAllowedToToEditOrRemoteDeleteOwnMessages: + return "Update request received from a group member who is not allowed to update her messages" + case .ownedIdentityIsNotAllowedToEditOrRemoteDeleteOwnMessages: + return "Owned identity is not allowed to edit or remote delete own messages" + case .requestToDeleteAllMessagesWithinThisGroupDiscussionFromContactNotAllowedToDoSo: + return "Request to delete all messages within this group discussion received from a contact who is not allowed to do so" + case .ownedIdentityIsNotAllowedToDeleteDiscussion: + return "Owned identity is not allowed to delete this group discussion" + } + } + + } + } @@ -1397,13 +2010,11 @@ extension PersistedGroupV2Member: MentionableIdentity { } guard let cryptoId else { - assertionFailure("failed to create cryptoId for un-synced contact") - return .icon(.lockFill) } return .contact(initial: mentionPersistedName, //ignore the nickname, the user hasn't been synced yet - photoURL: nil, + photo: nil, showGreenShield: false, showRedShield: false, cryptoId: cryptoId, @@ -1430,3 +2041,78 @@ extension PersistedGroupV2Member: MentionableIdentity { return .groupV2Member(typedObjectID) } } + + + +// MARK: - For snapshot purposes + +extension PersistedGroupV2 { + + var syncSnapshotNode: PersistedGroupV2SyncSnapshotNode { + .init(customName: customName, + personalNote: personalNote, + discussion: discussion) + } + +} + + +struct PersistedGroupV2SyncSnapshotNode: ObvSyncSnapshotNode { + + private let domain: Set + private let customName: String? + private let personalNote: String? + private let discussionConfiguration: PersistedDiscussionConfigurationSyncSnapshotNode? + + let id = Self.generateIdentifier() + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case customName = "custom_name" + case personalNote = "personal_note" + case discussionConfiguration = "discussion_customization" + case domain = "domain" + } + + private static let defaultDomain = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + + init(customName: String?, personalNote: String?, discussion: PersistedGroupV2Discussion?) { + self.customName = customName + self.personalNote = personalNote + self.discussionConfiguration = discussion?.syncSnapshotNode + self.domain = Self.defaultDomain + } + + + // Synthesized implementation of encode(to encoder: Encoder) + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + self.customName = try values.decodeIfPresent(String.self, forKey: .customName) + self.personalNote = try values.decodeIfPresent(String.self, forKey: .personalNote) + self.discussionConfiguration = try values.decodeIfPresent(PersistedDiscussionConfigurationSyncSnapshotNode.self, forKey: .discussionConfiguration) + } + + + func useToUpdate(_ group: PersistedGroupV2) { + + if domain.contains(.customName) { + _ = try? group.updateCustomNameWith(with: customName) + } + + if domain.contains(.personalNote) { + _ = group.setNote(to: personalNote) + } + + if domain.contains(.discussionConfiguration) { + if let discussion = group.discussion { + discussionConfiguration?.useToUpdate(discussion) + } + } + + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/DisplayedContactGroup.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/DisplayedContactGroup.swift index 064607a3..971291d1 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/DisplayedContactGroup.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ContactGroup/DisplayedContactGroup.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,7 +23,9 @@ import CoreData import OlvidUtils import ObvTypes import OSLog -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvSettings + @objc(DisplayedContactGroup) public final class DisplayedContactGroup: NSManagedObject, ObvErrorMaker, Identifiable, ObvIdentifiableManagedObject { @@ -94,6 +96,7 @@ public final class DisplayedContactGroup: NSManagedObject, ObvErrorMaker, Identi } public var displayedImage: UIImage? { + guard !isDeleted else { return nil } guard let photoURL = self.photoURL else { return nil } guard FileManager.default.fileExists(atPath: photoURL.path) else { assertionFailure(); return nil } return UIImage(contentsOfFile: photoURL.path) diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/PersistedObvContactDevice.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Devices/PersistedObvContactDevice.swift similarity index 55% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/PersistedObvContactDevice.swift rename to Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Devices/PersistedObvContactDevice.swift index 7b5939e8..e55c3062 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/PersistedObvContactDevice.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Devices/PersistedObvContactDevice.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -37,7 +37,8 @@ public final class PersistedObvContactDevice: NSManagedObject, Identifiable, Obv @NSManaged public private(set) var identifier: Data @NSManaged private var rawIdentityIdentity: Data // Required for core data constraints @NSManaged private var rawOwnedIdentityIdentity: Data // Required for core data constraints - + @NSManaged private var rawSecureChannelStatus: Int + // MARK: Relationships // If nil, the following entity is eventually cascade-deleted @@ -45,6 +46,8 @@ public final class PersistedObvContactDevice: NSManagedObject, Identifiable, Obv // MARK: Other variables + private var changedKeys = Set() + public private(set) var identity: PersistedObvContactIdentity? { get { return self.rawIdentity @@ -59,33 +62,86 @@ public final class PersistedObvContactDevice: NSManagedObject, Identifiable, Obv } + public var contactIdentifier: ObvContactIdentifier { + get throws { + let ownedCryptoId = try ObvCryptoId(identity: rawOwnedIdentityIdentity) + let contactCryptoId = try ObvCryptoId(identity: rawIdentityIdentity) + return ObvContactIdentifier( + contactCryptoId: contactCryptoId, + ownedCryptoId: ownedCryptoId) + } + } + + + public enum SecureChannelStatus: Int { + case creationInProgress = 0 + case created = 1 + + init(_ status: ObvContactDevice.SecureChannelStatus) { + switch status { + case .creationInProgress: + self = .creationInProgress + case .created: + self = .created + } + } + } + + + // Expected to be non-nil + public private(set) var secureChannelStatus: SecureChannelStatus? { + get { + return SecureChannelStatus(rawValue: rawSecureChannelStatus) + } + set { + guard let newValue else { assertionFailure(); return } + self.rawSecureChannelStatus = newValue.rawValue + } + } + + // MARK: - Initializer /// Shall **only** be called from the ``func insert(_ device: ObvContactDevice) throws`` method of a `PersistedObvContactIdentity`. - convenience init(obvContactDevice device: ObvContactDevice, within context: NSManagedObjectContext) throws { + convenience init(obvContactDevice device: ObvContactDevice, persistedContact: PersistedObvContactIdentity) throws { + + guard let context = persistedContact.managedObjectContext else { + throw ObvError.couldNotFindContext + } let entityDescription = NSEntityDescription.entity(forEntityName: PersistedObvContactDevice.entityName, in: context)! self.init(entity: entityDescription, insertInto: context) - let persistedContact: PersistedObvContactIdentity - if let _identity = try PersistedObvContactIdentity.get(persisted: device.contactIdentity, whereOneToOneStatusIs: .any, within: context) { - persistedContact = _identity - } else { - let _identity = try PersistedObvContactIdentity(contactIdentity: device.contactIdentity, within: context) - persistedContact = _identity - } - self.identifier = device.identifier - self.rawIdentityIdentity = device.contactIdentity.cryptoId.getIdentity() - self.rawOwnedIdentityIdentity = device.contactIdentity.ownedIdentity.cryptoId.getIdentity() + self.rawIdentityIdentity = device.contactIdentifier.contactCryptoId.getIdentity() + self.rawOwnedIdentityIdentity = device.contactIdentifier.ownedCryptoId.getIdentity() self.identity = persistedContact + self.secureChannelStatus = SecureChannelStatus(device.secureChannelStatus) } + + + func updateWith(obvContactDevice device: ObvContactDevice) throws { + guard try self.identity?.obvContactIdentifier == device.contactIdentifier, self.identifier == device.identifier else { + assertionFailure() + throw Self.makeError(message: "Unexpected device identifier") + } + if self.secureChannelStatus != SecureChannelStatus(device.secureChannelStatus) { + self.secureChannelStatus = SecureChannelStatus(device.secureChannelStatus) + } + } // MARK: - For deletion private var contactIdentityCryptoIdForDeletion: ObvCryptoId? + func deleteThisDevice() throws { + guard let context = managedObjectContext else { + throw Self.makeError(message: "Could not find context") + } + context.delete(self) + } + } @@ -99,6 +155,7 @@ extension PersistedObvContactDevice { case identifier = "identifier" case rawIdentityIdentity = "rawIdentityIdentity" case rawOwnedIdentityIdentity = "rawOwnedIdentityIdentity" + case rawSecureChannelStatus = "rawSecureChannelStatus" // Relationships case rawIdentity = "rawIdentity" } @@ -118,23 +175,7 @@ extension PersistedObvContactDevice { return NSFetchRequest(entityName: self.entityName) } - - public static func delete(contactDeviceIdentifier: Data, contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId, within context: NSManagedObjectContext) throws { - - let request: NSFetchRequest = self.fetchRequest() - request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ - Predicate.withContactDeviceIdentifier(contactDeviceIdentifier), - Predicate.withContactCryptoId(contactCryptoId), - Predicate.withOwnedCryptoId(ownedCryptoId), - ]) - request.fetchLimit = 1 - guard let object = try context.fetch(request).first else { return } - assert(object.identity != nil) - object.contactIdentityCryptoIdForDeletion = object.identity?.cryptoId - context.delete(object) - } - public static func get(contactDeviceObjectID: NSManagedObjectID, within context: NSManagedObjectContext) throws -> PersistedObvContactDevice? { return try context.existingObject(with: contactDeviceObjectID) as? PersistedObvContactDevice } @@ -146,9 +187,26 @@ extension PersistedObvContactDevice { extension PersistedObvContactDevice { + public override func prepareForDeletion() { + super.prepareForDeletion() + guard managedObjectContext?.concurrencyType != .mainQueueConcurrencyType else { return } + self.contactIdentityCryptoIdForDeletion = rawIdentity?.cryptoId + } + + + public override func willSave() { + super.willSave() + changedKeys = Set(self.changedValues().keys) + } + + public override func didSave() { super.didSave() + defer { + changedKeys.removeAll() + } + if isInserted, let contactCryptoId = self.identity?.cryptoId { ObvMessengerCoreDataNotification.newPersistedObvContactDevice(contactDeviceObjectID: self.objectID, contactCryptoId: contactCryptoId) @@ -160,6 +218,34 @@ extension PersistedObvContactDevice { .postOnDispatchQueue() } + + if !isDeleted && changedKeys.contains(Predicate.Key.rawSecureChannelStatus.rawValue), let secureChannelStatus { + switch secureChannelStatus { + case .creationInProgress: + break + case .created: + ObvMessengerCoreDataNotification.aSecureChannelWithContactDeviceWasJustCreated(contactDeviceObjectID: self.typedObjectID) + .postOnDispatchQueue() + } + } + } + +} + + +// MARK: - Errors + +extension PersistedObvContactDevice { + + enum ObvError: Error { + case couldNotFindContext + + var localizedDescription: String { + switch self { + case .couldNotFindContext: + return "Could not find context" + } + } } } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Devices/PersistedObvOwnedDevice.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Devices/PersistedObvOwnedDevice.swift new file mode 100644 index 00000000..2d229232 --- /dev/null +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Devices/PersistedObvOwnedDevice.swift @@ -0,0 +1,290 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import ObvTypes +import ObvEngine +import OlvidUtils + + +@objc(PersistedObvOwnedDevice) +public final class PersistedObvOwnedDevice: NSManagedObject, Identifiable { + + // MARK: - Internal constants + + private static let entityName = "PersistedObvOwnedDevice" + + // MARK: Properties + + @NSManaged public private(set) var expirationDate: Date? + @NSManaged public private(set) var identifier: Data // Required for core data constraints + @NSManaged public private(set) var latestRegistrationDate: Date? + @NSManaged private(set) var objectInsertionDate: Date + @NSManaged private(set) var rawOwnedIdentityIdentity: Data // Required for core data constraints + @NSManaged private(set) var rawSecureChannelStatus: Int + @NSManaged private var specifiedName: String? + + // MARK: Relationships + + // If nil, the following entity is eventually cascade-deleted + @NSManaged private var rawOwnedIdentity: PersistedObvOwnedIdentity? // *Never* accessed directly, except from ``PersistedObvOwnedDevice.getter:ownedIdentity`` + + // MARK: Other variables + + public var name: String { + specifiedName ?? String(identifier.hexString().prefix(4)) + } + + public var ownedCryptoId: ObvCryptoId { + get throws { + try ObvCryptoId(identity: rawOwnedIdentityIdentity) + } + } + + public private(set) var ownedIdentity: PersistedObvOwnedIdentity? { + get { + return self.rawOwnedIdentity + } + set { + assert(newValue != nil) + guard let newValue else { assertionFailure(); return } + self.rawOwnedIdentityIdentity = newValue.cryptoId.getIdentity() + self.rawOwnedIdentity = newValue + } + } + + public enum SecureChannelStatus: Int { + case currentDevice = 0 + case creationInProgress = 1 + case created = 2 + + init(_ status: ObvOwnedDevice.SecureChannelStatus) { + switch status { + case .currentDevice: + self = .currentDevice + case .creationInProgress: + self = .creationInProgress + case .created: + self = .created + } + } + } + + // Expected to be non-nil + public private(set) var secureChannelStatus: SecureChannelStatus? { + get { + return SecureChannelStatus(rawValue: rawSecureChannelStatus) + } + set { + guard let newValue else { assertionFailure(); return } + self.rawSecureChannelStatus = newValue.rawValue + } + } + + + // MARK: - Initializer + + private convenience init(identifier: Data, secureChannelStatus: SecureChannelStatus, name: String?, expirationDate: Date?, latestRegistrationDate: Date?, ownedIdentity: PersistedObvOwnedIdentity) throws { + + guard let context = ownedIdentity.managedObjectContext else { + assertionFailure() + throw ObvError.noContextProvided + } + + let entityDescription = NSEntityDescription.entity(forEntityName: PersistedObvOwnedDevice.entityName, in: context)! + self.init(entity: entityDescription, insertInto: context) + + self.identifier = identifier + self.ownedIdentity = ownedIdentity + self.secureChannelStatus = secureChannelStatus + self.objectInsertionDate = Date() + self.specifiedName = name + self.expirationDate = expirationDate + self.latestRegistrationDate = latestRegistrationDate + + } + + + /// Shall **only** be called from ``PersistedObvOwnedIdentity.updateOrCreateOwnedDevice(identifier:secureChannelStatus:)`` + static func createIfRequired(obvOwnedDevice: ObvOwnedDevice, ownedIdentity: PersistedObvOwnedIdentity) throws { + + guard let context = ownedIdentity.managedObjectContext else { assertionFailure(); throw ObvError.noContextProvided } + guard obvOwnedDevice.ownedCryptoId == ownedIdentity.cryptoId else { assertionFailure(); throw ObvError.unexpectedOwnedCryptoId } + + guard try Self.fetchPersistedObvOwnedDevice(obvOwnedDevice: obvOwnedDevice, within: context) == nil else { return } + + _ = try self.init( + identifier: obvOwnedDevice.identifier, + secureChannelStatus: SecureChannelStatus(obvOwnedDevice.secureChannelStatus), + name: obvOwnedDevice.name, + expirationDate: obvOwnedDevice.expirationDate, + latestRegistrationDate: obvOwnedDevice.latestRegistrationDate, + ownedIdentity: ownedIdentity) + } + + + func updatePersistedObvOwnedDevice(with obvOwnedDevice: ObvOwnedDevice) throws { + + guard let ownedIdentity else { assertionFailure(); throw ObvError.ownedIdentityIsNil } + guard obvOwnedDevice.ownedCryptoId == ownedIdentity.cryptoId else { assertionFailure(); throw ObvError.unexpectedOwnedCryptoId } + guard obvOwnedDevice.identifier == identifier else { assertionFailure(); throw ObvError.unexpectedIdentifier } + + if self.secureChannelStatus != SecureChannelStatus(obvOwnedDevice.secureChannelStatus) { + self.secureChannelStatus = SecureChannelStatus(obvOwnedDevice.secureChannelStatus) + } + + if self.specifiedName != obvOwnedDevice.name { + self.specifiedName = obvOwnedDevice.name + } + + if self.expirationDate != obvOwnedDevice.expirationDate { + self.expirationDate = obvOwnedDevice.expirationDate + } + + if self.latestRegistrationDate != obvOwnedDevice.latestRegistrationDate { + self.latestRegistrationDate = obvOwnedDevice.latestRegistrationDate + } + + } + + + private static func secureChannelStatus(from secureChannelStatus: ObvOwnedDevice.SecureChannelStatus) -> SecureChannelStatus { + switch secureChannelStatus { + case .currentDevice: + return .currentDevice + case .creationInProgress: + return .creationInProgress + case .created: + return .created + } + } + + + func deletePersistedObvOwnedDevice() throws { + guard let context = self.managedObjectContext else { + throw ObvError.noContextProvided + } + context.delete(self) + } + +} + + +// MARK: - Convenience DB getters + +extension PersistedObvOwnedDevice { + + struct Predicate { + enum Key: String { + // Properties + case identifier = "identifier" + case rawOwnedIdentityIdentity = "rawOwnedIdentityIdentity" + case specifiedName = "specifiedName" + case rawSecureChannelStatus = "rawSecureChannelStatus" + // Relationships + case rawOwnedIdentity = "rawOwnedIdentity" + } + static func withIdentifier(_ identifier: Data) -> NSPredicate { + NSPredicate(Key.identifier, EqualToData: identifier) + } + static func withOwnedCryptoId(_ ownedCryptoId: ObvCryptoId) -> NSPredicate { + NSPredicate(Key.rawOwnedIdentityIdentity, EqualToData: ownedCryptoId.getIdentity()) + } + static var withoutSpecifiedName: NSPredicate { + NSPredicate(withNilValueForKey: Key.specifiedName) + } + static func withSecureChannelStatus(_ secureChannelStatus: SecureChannelStatus) -> NSPredicate { + NSPredicate(Key.rawSecureChannelStatus, EqualToInt: secureChannelStatus.rawValue) + } + } + + + @nonobjc class func fetchRequest() -> NSFetchRequest { + return NSFetchRequest(entityName: self.entityName) + } + + + public static func delete(identifier: Data, ownedCryptoId: ObvCryptoId, within context: NSManagedObjectContext) throws { + guard let ownedDevice = try Self.fetchPersistedObvOwnedDevice(identifier: identifier, ownedCryptoId: ownedCryptoId, within: context) else { return } + try ownedDevice.deletePersistedObvOwnedDevice() + } + + + public static func fetchPersistedObvOwnedDevice(identifier: Data, ownedCryptoId: ObvCryptoId, within context: NSManagedObjectContext) throws -> PersistedObvOwnedDevice? { + let request: NSFetchRequest = self.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withIdentifier(identifier), + Predicate.withOwnedCryptoId(ownedCryptoId), + ]) + request.fetchLimit = 1 + return try context.fetch(request).first + } + + + static func fetchPersistedObvOwnedDevice(obvOwnedDevice: ObvOwnedDevice, within context: NSManagedObjectContext) throws -> PersistedObvOwnedDevice? { + let request: NSFetchRequest = self.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withIdentifier(obvOwnedDevice.identifier), + Predicate.withOwnedCryptoId(obvOwnedDevice.ownedCryptoId), + ]) + request.fetchLimit = 1 + return try context.fetch(request).first + } + + + public static func fetchCurrentPersistedObvOwnedDeviceWithNoSpecifiedName(within context: NSManagedObjectContext) throws -> [PersistedObvOwnedDevice] { + let request: NSFetchRequest = self.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withoutSpecifiedName, + Predicate.withSecureChannelStatus(.currentDevice), + ]) + request.fetchBatchSize = 500 + return try context.fetch(request) + } + +} + + +// MARK: - Error handling + +extension PersistedObvOwnedDevice { + + enum ObvError: Error { + case noContextProvided + case unexpectedOwnedCryptoId + case unexpectedIdentifier + case ownedIdentityIsNil + + var localizedDescription: String { + switch self { + case .noContextProvided: + return "No context provided" + case .unexpectedOwnedCryptoId: + return "Unexpected owned cryptoId" + case .unexpectedIdentifier: + return "Unexpected owned device identifier" + case .ownedIdentityIsNil: + return "Owned identity is nil" + } + } + + } +} + diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/DraftFyleJoin/FyleJoin.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/DraftFyleJoin/FyleJoin.swift index 19178549..3a85ea85 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/DraftFyleJoin/FyleJoin.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/DraftFyleJoin/FyleJoin.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -18,10 +18,12 @@ */ import Foundation +import UniformTypeIdentifiers public protocol FyleJoin { var fyle: Fyle? { get } var fileName: String { get } var uti: String { get } + var contentType: UTType { get } var index: Int { get } } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/DraftFyleJoin/PersistedDraftFyleJoin.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/DraftFyleJoin/PersistedDraftFyleJoin.swift index bcfdf3be..bf2c6a7a 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/DraftFyleJoin/PersistedDraftFyleJoin.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/DraftFyleJoin/PersistedDraftFyleJoin.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,6 +20,7 @@ import Foundation import CoreData import OlvidUtils +import UniformTypeIdentifiers @objc(PersistedDraftFyleJoin) public final class PersistedDraftFyleJoin: NSManagedObject, FyleJoin, ObvIdentifiableManagedObject, ObvErrorMaker { @@ -38,13 +39,18 @@ public final class PersistedDraftFyleJoin: NSManagedObject, FyleJoin, ObvIdentif @NSManaged public private(set) var draft: PersistedDraft? // If nil, this entity is eventually cascade-deleted @NSManaged private(set) public var fyle: Fyle? // If nil, this entity is eventually cascade-deleted - + // MARK: Computed properties - + public var objectPermanentID: ObvManagedObjectPermanentID { ObvManagedObjectPermanentID(uuid: self.permanentUUID) } - + + public var contentType: UTType { + assert(UTType(uti) != nil) + return UTType(uti) ?? .data + } + } @@ -169,7 +175,7 @@ extension PersistedDraftFyleJoin { } - public static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { + static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { let request: NSFetchRequest = PersistedDraftFyleJoin.fetchRequest() request.predicate = Predicate.withoutDraft let deleteRequest = NSBatchDeleteRequest(fetchRequest: request) diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Fyle.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Fyle.swift index e1d26066..893c1915 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Fyle.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Fyle.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,13 +20,17 @@ import Foundation import CoreData import os.log -import ObvEngine +import ObvTypes import OlvidUtils +import ObvCrypto +import ObvSettings + @objc(Fyle) public final class Fyle: NSManagedObject { private static let entityName = "Fyle" + private static let log = OSLog(subsystem: ObvUICoreDataConstants.logSubsystem, category: "Fyle") // MARK: - Properties @@ -41,7 +45,7 @@ public final class Fyle: NSManagedObject { // MARK: - Initializer - public convenience init?(sha256: Data, within context: NSManagedObjectContext) { + private convenience init(sha256: Data, within context: NSManagedObjectContext) { let entityDescription = NSEntityDescription.entity(forEntityName: Fyle.entityName, in: context)! self.init(entity: entityDescription, insertInto: context) self.sha256 = sha256 @@ -54,13 +58,63 @@ public final class Fyle: NSManagedObject { if let previousFyle = try Fyle.get(sha256: sha256, within: context) { return previousFyle } else { - guard let newFyle = Fyle(sha256: sha256, within: context) else { - throw ObvError.couldNotCreateNewFyleInstance - } + let newFyle = Fyle(sha256: sha256, within: context) return newFyle } } + + func updateFyle(with obvAttachment: ObvAttachment) throws { + try updateFyle(obvAttachmentStatus: obvAttachment.status, + obvAttachmentURL: obvAttachment.url) + } + + + func updateFyle(with obvOwnedAttachment: ObvOwnedAttachment) throws { + try updateFyle(obvAttachmentStatus: obvOwnedAttachment.status, + obvAttachmentURL: obvOwnedAttachment.url) + } + + + private func updateFyle(obvAttachmentStatus: ObvAttachment.Status, obvAttachmentURL: URL) throws { + + // Make sure the file was downloaded and that we do not already have a local (app) version of this file + + guard obvAttachmentStatus == .downloaded && self.getFileSize() == nil else { + os_log("Although the engine indicates that the attachment is downloaded, we could not find the file on disk", log: Self.log, type: .error) + return + } + + // Make sure the file is indeed available at the obvAttachmentURL. + // If this is not the case, we throw. The exception will eventually be processed by the operation (at the app level) and a new download will be requested to the engine. + guard FileManager.default.fileExists(atPath: obvAttachmentURL.path) else { + throw ObvError.couldNotFindSourceFile + } + + // Compute the sha256 of the (complete) file indicated within the obvAttachment and compare it to what was expected + + let realHash: Data + do { + let sha256 = ObvCryptoSuite.sharedInstance.hashFunctionSha256() + realHash = try sha256.hash(fileAtUrl: obvAttachmentURL) + } catch { + throw ObvError.couldNotComputeSHA256 + } + + guard realHash == self.sha256 else { + os_log("OMG, the sha256 of the received file does not match the one we expected. Expecting %{public}@ but the hash of the received file is %{public}@", log: Self.log, type: .error, self.sha256.hexString(), realHash.hexString()) + assertionFailure() + throw ObvError.sha256OfReceivedFileReferenceByObvAttachmentDoesNotMatchWhatWeExpect + } + + // If we reach this point, the sha256 is correct. We move the received file to a permanent location + + try self.moveFileToPermanentURL(from: obvAttachmentURL, logTo: Self.log) + + os_log("We moved a downloaded file to a permanent location", log: Self.log, type: .debug) + + } + } @@ -84,6 +138,7 @@ extension Fyle { ObvUICoreDataConstants.ContainerURL.forFyles.appendingPathComponent(lastPathComponent) } + public func getFileSize() -> Int64? { guard FileManager.default.fileExists(atPath: url.path) else { return nil } guard let fileAttributes = try? FileManager.default.attributesOfItem(atPath: url.path) else { return nil } @@ -168,9 +223,11 @@ extension Fyle { return NSFetchRequest(entityName: Fyle.entityName) } + static func get(objectID: NSManagedObjectID, within context: NSManagedObjectContext) throws -> Fyle? { return try context.existingObject(with: objectID) as? Fyle } + /// Returns a `Fyle` if one can be found for the given sha256. public static func get(sha256: Data, within context: NSManagedObjectContext) throws -> Fyle? { @@ -229,6 +286,8 @@ extension Fyle { public enum ObvError: Error { case couldNotCreateNewFyleInstance case couldNotFindSourceFile + case couldNotComputeSHA256 + case sha256OfReceivedFileReferenceByObvAttachmentDoesNotMatchWhatWeExpect var localizedDescription: String { switch self { @@ -236,6 +295,10 @@ extension Fyle { return "Could not create new Fyle instance" case .couldNotFindSourceFile: return "Could not find the source file" + case .couldNotComputeSHA256: + return "Could not compute the SHA256" + case .sha256OfReceivedFileReferenceByObvAttachmentDoesNotMatchWhatWeExpect: + return "The SHA256 of the received file referenced by the ObvAttachment does not match what we expect" } } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/FyleMessageJoinWithStatus.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/FyleMessageJoinWithStatus.swift index a8730183..f3f4abfd 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/FyleMessageJoinWithStatus.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/FyleMessageJoinWithStatus.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,8 @@ import CoreData import os.log import UIKit import OlvidUtils +import UniformTypeIdentifiers +import ObvSettings @objc(FyleMessageJoinWithStatus) @@ -33,12 +35,13 @@ public class FyleMessageJoinWithStatus: NSManagedObject, ObvErrorMaker, FyleJoin // MARK: - Properties + @NSManaged public private(set) var downsizedThumbnail: Data? @NSManaged private(set) public var fileName: String @NSManaged private(set) public var index: Int // Corresponds to the index of this attachment in the message. Used together with messageSortIndex to sort all joins received in a discussion @NSManaged public private(set) var isWiped: Bool @NSManaged private(set) var messageSortIndex: Double // Equal to the message sortIndex, used to sort FyleMessageJoinWithStatus instances in the gallery @NSManaged private var permanentUUID: UUID - @NSManaged public var rawStatus: Int + @NSManaged public internal(set) var rawStatus: Int @NSManaged public private(set) var totalByteCount: Int64 // Was totalUnitCount @NSManaged private(set) public var uti: String @@ -54,6 +57,11 @@ public class FyleMessageJoinWithStatus: NSManagedObject, ObvErrorMaker, FyleJoin // MARK: - Other variables + public var contentType: UTType { + assert(UTType(uti) != nil) + return UTType(uti) ?? .data + } + public var message: PersistedMessage? { assertionFailure("Must be overriden by subclasses") return nil @@ -74,11 +82,12 @@ public class FyleMessageJoinWithStatus: NSManagedObject, ObvErrorMaker, FyleJoin // MARK: - Initializer - public convenience init(totalByteCount: Int64, fileName: String, uti: String, rawStatus: Int, messageSortIndex: Double, index: Int, fyle: Fyle, forEntityName entityName: String, within context: NSManagedObjectContext) { + convenience init(sha256: Data, totalByteCount: Int64, fileName: String, uti: String, rawStatus: Int, messageSortIndex: Double, index: Int, forEntityName entityName: String, within context: NSManagedObjectContext) throws { let entityDescription = NSEntityDescription.entity(forEntityName: entityName, in: context)! self.init(entity: entityDescription, insertInto: context) + self.downsizedThumbnail = nil // Will be received later self.index = index self.fileName = fileName self.uti = uti @@ -87,10 +96,26 @@ public class FyleMessageJoinWithStatus: NSManagedObject, ObvErrorMaker, FyleJoin self.permanentUUID = UUID() self.isWiped = false self.totalByteCount = totalByteCount - - self.fyle = fyle + + try getOrCreateFyle(sha256: sha256) + + } + + func getOrCreateFyle(sha256: Data) throws { + guard let context = self.managedObjectContext else { + throw Self.makeError(message: "Could not find context") + } + self.fyle = try Fyle.getOrCreate(sha256: sha256, within: context) + } + + + /// Shall only be called by one of the subclasses + func setTotalByteCount(to newTotalByteCount: Int64) { + guard self.totalByteCount != newTotalByteCount else { return } + self.totalByteCount = newTotalByteCount + } public func wipe() throws { self.isWiped = true @@ -98,6 +123,7 @@ public class FyleMessageJoinWithStatus: NSManagedObject, ObvErrorMaker, FyleJoin self.fileName = "" self.totalByteCount = 0 self.uti = "" + deleteDownsizedThumbnail() } @@ -112,6 +138,22 @@ public class FyleMessageJoinWithStatus: NSManagedObject, ObvErrorMaker, FyleJoin return dcf }() + + // MARK: - Managing the downsized thumbnail + + func deleteDownsizedThumbnail() { + guard self.downsizedThumbnail != nil else { return } + self.downsizedThumbnail = nil + } + + + /// Exclusively called from ``SentFyleMessageJoinWithStatus.setDownsizedThumbnailIfRequired(data:)`` and from ``ReceivedFyleMessageJoinWithStatus.setDownsizedThumbnailIfRequired(data:)``. + func setDownsizedThumbnailIfRequired(data: Data) -> Bool { + guard self.downsizedThumbnail != data else { return false } + self.downsizedThumbnail = data + return true + } + } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvContactIdentity+Backup.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvContactIdentity+Backup.swift index 17a0607a..6faedf18 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvContactIdentity+Backup.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvContactIdentity+Backup.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -48,8 +48,8 @@ extension PersistedObvContactIdentityBackupItem { func updateExistingInstance(_ contact: PersistedObvContactIdentity) { - try? contact.setCustomDisplayName(to: self.customDisplayName) - contact.setNote(to: self.note) + _ = try? contact.setCustomDisplayName(to: self.customDisplayName) + _ = contact.setNote(to: self.note) if let oneToOneDiscussion = contact.oneToOneDiscussion { self.discussionConfigurationBackupItem?.updateExistingInstance(oneToOneDiscussion.localConfiguration) diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvContactIdentity.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvContactIdentity.swift index caf70670..4e1eda1e 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvContactIdentity.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvContactIdentity.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,7 +24,9 @@ import ObvTypes import os.log import OlvidUtils import Platform_Base -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvSettings + @objc(PersistedObvContactIdentity) public final class PersistedObvContactIdentity: NSManagedObject, ObvErrorMaker, ObvIdentifiableManagedObject { @@ -35,17 +37,18 @@ public final class PersistedObvContactIdentity: NSManagedObject, ObvErrorMaker, // MARK: - Attributes + @NSManaged public private(set) var atLeastOneDeviceAllowsThisContactToReceiveMessages: Bool @NSManaged private var capabilityGroupsV2: Bool @NSManaged private var capabilityOneToOneContacts: Bool @NSManaged private var capabilityWebrtcContinuousICE: Bool @NSManaged public private(set) var customDisplayName: String? - @NSManaged public var customPhotoFilename: String? + @NSManaged public private(set) var customPhotoFilename: String? @NSManaged public private(set) var fullDisplayName: String @NSManaged private(set) var identity: Data @NSManaged public private(set) var isActive: Bool @NSManaged public private(set) var isCertifiedByOwnKeycloak: Bool @NSManaged public private(set) var isOneToOne: Bool - @NSManaged private(set) var note: String? + @NSManaged public private(set) var note: String? @NSManaged private var permanentUUID: UUID @NSManaged public private(set) var photoURL: URL? @NSManaged private var rawOwnedIdentityIdentity: Data // Required for core data constraints @@ -155,7 +158,6 @@ public final class PersistedObvContactIdentity: NSManagedObject, ObvErrorMaker, public var oneToOneDiscussion: PersistedOneToOneDiscussion? { if isOneToOne { // In case the contact is OneToOne, we expect the discussion to be non-nil and active. - assert(rawOneToOneDiscussion != nil && rawOneToOneDiscussion?.status == .active) return rawOneToOneDiscussion } else { // In case the contact is not OneToOne, the discussion is likely to be nil. @@ -168,6 +170,13 @@ public final class PersistedObvContactIdentity: NSManagedObject, ObvErrorMaker, } } + + public var obvContactIdentifier: ObvContactIdentifier { + get throws { + let ownedCryptoId = try ObvCryptoId(identity: rawOwnedIdentityIdentity) + return ObvContactIdentifier(contactCryptoId: cryptoId, ownedCryptoId: ownedCryptoId) + } + } public var customPhotoURL: URL? { guard let customPhotoFilename = customPhotoFilename else { return nil } @@ -196,11 +205,11 @@ public final class PersistedObvContactIdentity: NSManagedObject, ObvErrorMaker, return identityCoreDetails?.firstName } - var firstName: String? { + public var firstName: String? { return identityCoreDetails?.firstName } - var lastName: String? { + public var lastName: String? { return identityCoreDetails?.lastName } @@ -226,7 +235,7 @@ public final class PersistedObvContactIdentity: NSManagedObject, ObvErrorMaker, public var circledInitialsConfiguration: CircledInitialsConfiguration { .contact(initial: customOrFullDisplayName, - photoURL: customPhotoURL ?? photoURL, + photo: .url(url: customPhotoURL ?? photoURL), showGreenShield: isCertifiedByOwnKeycloak, showRedShield: !isActive, cryptoId: cryptoId, @@ -236,6 +245,46 @@ public final class PersistedObvContactIdentity: NSManagedObject, ObvErrorMaker, public func setCustomPhotoURL(with url: URL?) { guard url != self.customPhotoURL else { return } + removeCurrentCustomPhoto() + if let url = url { + assert(url.deletingLastPathComponent() == ObvUICoreDataConstants.ContainerURL.forCustomContactProfilePictures.url) + self.customPhotoFilename = url.lastPathComponent + } else { + self.customPhotoFilename = nil + } + } + + + public func setCustomPhoto(with newCustomPhoto: UIImage?) throws { + removeCurrentCustomPhoto() + if let newCustomPhoto { + guard let url = saveCustomPhoto(newCustomPhoto) else { + throw Self.makeError(message: "Could not save photo") + } + setCustomPhotoURL(with: url) + } + } + + + private func saveCustomPhoto(_ image: UIImage) -> URL? { + guard let jpegData = image.jpegData(compressionQuality: 0.75) else { + assertionFailure() + return nil + } + let filename = [UUID().uuidString, "jpeg"].joined(separator: ".") + let filepath = ObvUICoreDataConstants.ContainerURL.forCustomContactProfilePictures.url.appendingPathComponent(filename) + do { + try jpegData.write(to: filepath) + } catch { + assertionFailure() + return nil + } + return filepath + } + + + + private func removeCurrentCustomPhoto() { if let currentCustomPhotoURL = self.customPhotoURL { do { try FileManager.default.removeItem(at: currentCustomPhotoURL) @@ -246,12 +295,6 @@ public final class PersistedObvContactIdentity: NSManagedObject, ObvErrorMaker, return } } - if let url = url { - assert(url.deletingLastPathComponent() == ObvUICoreDataConstants.ContainerURL.forCustomContactProfilePictures.url) - self.customPhotoFilename = url.lastPathComponent - } else { - self.customPhotoFilename = nil - } } @@ -271,7 +314,7 @@ public final class PersistedObvContactIdentity: NSManagedObject, ObvErrorMaker, extension PersistedObvContactIdentity { - public convenience init(contactIdentity: ObvContactIdentity, within context: NSManagedObjectContext) throws { + private convenience init(contactIdentity: ObvContactIdentity, within context: NSManagedObjectContext) throws { let entityDescription = NSEntityDescription.entity(forEntityName: PersistedObvContactIdentity.entityName, in: context)! self.init(entity: entityDescription, insertInto: context) guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: contactIdentity.ownedIdentity, within: context) else { @@ -285,6 +328,7 @@ extension PersistedObvContactIdentity { self.serializedIdentityCoreDetails = try contactIdentity.trustedIdentityDetails.coreDetails.jsonEncode() self.identity = contactIdentity.cryptoId.getIdentity() self.isActive = true + self.atLeastOneDeviceAllowsThisContactToReceiveMessages = false self.isOneToOne = contactIdentity.isOneToOne self.isCertifiedByOwnKeycloak = contactIdentity.isCertifiedByOwnKeycloak self.note = nil @@ -301,7 +345,7 @@ extension PersistedObvContactIdentity { try discussion.setStatus(to: .active) self.rawOneToOneDiscussion = discussion } else { - self.rawOneToOneDiscussion = try PersistedOneToOneDiscussion(contactIdentity: self, status: .active) + self.rawOneToOneDiscussion = try PersistedOneToOneDiscussion.createPersistedOneToOneDiscussion(for: self, status: .active) } } else { if let discussion = try PersistedOneToOneDiscussion.getWithContactCryptoId(contactIdentity.cryptoId, ofOwnedCryptoId: contactIdentity.ownedIdentity.cryptoId, within: context) { @@ -325,6 +369,12 @@ extension PersistedObvContactIdentity { } + public static func createPersistedObvContactIdentity(contactIdentity: ObvContactIdentity, within context: NSManagedObjectContext) throws -> PersistedObvContactIdentity { + let contact = try PersistedObvContactIdentity(contactIdentity: contactIdentity, within: context) + return contact + } + + public func deleteAndLockOneToOneDiscussion() throws { guard let context = self.managedObjectContext else { throw PersistedObvContactIdentity.makeError(message: "No context found") } @@ -374,6 +424,19 @@ extension PersistedObvContactIdentity { self.serializedIdentityCoreDetails = newSerializedIdentityCoreDetails } self.updatePhotoURL(with: contactIdentity.trustedIdentityDetails.photoURL) + // Status + if let publishedIdentityDetails = contactIdentity.publishedIdentityDetails, + publishedIdentityDetails != contactIdentity.trustedIdentityDetails { + switch status { + case .noNewPublishedDetails: + setContactStatus(to: .unseenPublishedDetails) + case .unseenPublishedDetails, .seenPublishedDetails: + break // Don't change the status + } + } else { + setContactStatus(to: .noNewPublishedDetails) + } + // The rest let newFullDisplayName = newCoreDetails.getDisplayNameWithStyle(.full) if self.fullDisplayName != newFullDisplayName { self.fullDisplayName = newFullDisplayName @@ -397,7 +460,7 @@ extension PersistedObvContactIdentity { self.rawOneToOneDiscussion = discussion } } else { - self.rawOneToOneDiscussion = try PersistedOneToOneDiscussion(contactIdentity: self, status: .active) + self.rawOneToOneDiscussion = try PersistedOneToOneDiscussion.createPersistedOneToOneDiscussion(for: self, status: .active) } } else { try self.rawOneToOneDiscussion?.setStatus(to: .locked) @@ -408,7 +471,9 @@ extension PersistedObvContactIdentity { public func markAsCertifiedByOwnKeycloak() { - isCertifiedByOwnKeycloak = true + if !isCertifiedByOwnKeycloak { + isCertifiedByOwnKeycloak = true + } } public func updatePhotoURL(with url: URL?) { @@ -417,22 +482,43 @@ extension PersistedObvContactIdentity { } } - public func setCustomDisplayName(to displayName: String?) throws { + + /// Set the custom display name (or nickname) of this contact + /// - Parameter displayName: The new display name + /// - Returns: `true` if the display name had to be updated (i.e., the previous one was disctinct from the new one) and `false` otherwise. + public func setCustomDisplayName(to displayName: String?) throws -> Bool { + let customDisplayNameWasUpdated: Bool if let newCustomDisplayName = displayName, !newCustomDisplayName.isEmpty { if self.customDisplayName != newCustomDisplayName { self.customDisplayName = newCustomDisplayName + customDisplayNameWasUpdated = true + } else { + customDisplayNameWasUpdated = false } } else { if self.customDisplayName != nil { self.customDisplayName = nil + customDisplayNameWasUpdated = true + } else { + customDisplayNameWasUpdated = false } } - try self.oneToOneDiscussion?.resetTitle(to: self.customDisplayName ?? self.fullDisplayName) - self.updateSortOrder(with: ObvMessengerSettings.Interface.contactsSortOrder) + if customDisplayNameWasUpdated { + try self.oneToOneDiscussion?.resetTitle(to: self.customDisplayName ?? self.fullDisplayName) + self.updateSortOrder(with: ObvMessengerSettings.Interface.contactsSortOrder) + } + return customDisplayNameWasUpdated } - func setNote(to newNote: String?) { - self.note = newNote + + /// Returns `true` iff the personal note had to be updated in database + func setNote(to newNote: String?) -> Bool { + if self.note != newNote { + self.note = newNote + return true + } else { + return false + } } } @@ -441,15 +527,69 @@ extension PersistedObvContactIdentity { extension PersistedObvContactIdentity { - public func insert(_ device: ObvContactDevice) throws { - guard let context = self.managedObjectContext else { - throw Self.makeError(message: "Could not find context") + public func synchronizeDevices(with devicesFromEngine: Set) throws { + + // Make sure all devices belong to this contact + + if !devicesFromEngine.isEmpty { + let obvContactIdentifier = try self.obvContactIdentifier + let contactIdentifiersReferencedByDevices = Set(devicesFromEngine.map({ $0.contactIdentifier })) + guard contactIdentifiersReferencedByDevices.count == 1 && contactIdentifiersReferencedByDevices.first == obvContactIdentifier else { + assertionFailure() + throw Self.makeError(message: "Unexpected contact identifier in the set of devices") + } + } + + // Update existing devices + + let localContactDevicesIdentifiers = Set(devices.map { $0.identifier }) + let engineContactDeviceIdentifiers = devicesFromEngine.map { $0.identifier } + + let identifiersOfDeviceToUpdate = localContactDevicesIdentifiers.intersection(engineContactDeviceIdentifiers) + for indentifierOfDeviceToUpdated in identifiersOfDeviceToUpdate { + guard let device = self.devices.first(where: { $0.identifier == indentifierOfDeviceToUpdated }) else { assertionFailure(); continue } + guard let deviceFromEngine = devicesFromEngine.first(where: { $0.identifier == indentifierOfDeviceToUpdated }) else { assertionFailure(); continue } + try device.updateWith(obvContactDevice: deviceFromEngine) + } + + // Add missing devices + + let missingDevices = devicesFromEngine.filter { !localContactDevicesIdentifiers.contains($0.identifier) } + for missingDevice in missingDevices { + try self.insertDevice(missingDevice) + } + + // Delete obsolete devices + + let devicesToDelete = self.devices.filter { device in + return !engineContactDeviceIdentifiers.contains(where: { $0 == device.identifier }) } - guard device.contactIdentity.cryptoId == self.cryptoId, device.contactIdentity.ownedIdentity.cryptoId.getIdentity() == self.rawOwnedIdentityIdentity else { + try devicesToDelete.forEach { deviceToDelete in + try deviceToDelete.deleteThisDevice() + } + + // Update the atLeastOneDeviceAllowsThisContactToReceiveMessages Boolean + + resetValueOfAtLeastOneDeviceAllowsThisContactToReceiveMessages() + + } + + + private func resetValueOfAtLeastOneDeviceAllowsThisContactToReceiveMessages() { + let newValue = !devices.filter({ !$0.isDeleted }).filter({ $0.secureChannelStatus == .created }).isEmpty + if self.atLeastOneDeviceAllowsThisContactToReceiveMessages != newValue { + self.atLeastOneDeviceAllowsThisContactToReceiveMessages = newValue + } + } + + + private func insertDevice(_ device: ObvContactDevice) throws { + guard device.contactIdentifier.contactCryptoId == self.cryptoId, + device.contactIdentifier.ownedCryptoId.getIdentity() == self.rawOwnedIdentityIdentity else { throw Self.makeError(message: "Unexpected contact identity") } let knownDeviceIdentifiers: Set = Set(self.devices.compactMap { $0.identifier }) if !knownDeviceIdentifiers.contains(device.identifier) { - _ = try PersistedObvContactDevice(obvContactDevice: device, within: context) + _ = try PersistedObvContactDevice(obvContactDevice: device, persistedContact: self) } } @@ -503,6 +643,607 @@ extension PersistedObvContactIdentity { } +// MARK: - Receiving messages and attachments from a contact + +extension PersistedObvContactIdentity { + + /// When receiving an `ObvMessage`, we fetch the persisted contact indicated in the message and then call this method to create the `PersistedMessageReceived`. + /// Returns all the `ObvAttachment` that are fully received, i.e., such that the `ReceivedFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk. + func createOrOverridePersistedMessageReceived(obvMessage: ObvMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?, overridePreviousPersistedMessage: Bool) throws -> (discussionPermanentID: DiscussionPermanentID, attachmentFullyReceivedOrCancelledByServer: [ObvAttachment]) { + + guard try obvMessage.fromContactIdentity == self.obvContactIdentifier else { + throw ObvUICoreDataError.unexpectedFromContactIdentity + } + + // Determine the discussion or the group where the new PersistedMessageReceived should be inserted + + let attachmentsFullyReceivedOrCancelledByServer: [ObvAttachment] + let discussionPermanentId: DiscussionPermanentID + + if let oneToOneIdentifier = messageJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + (discussionPermanentId, attachmentsFullyReceivedOrCancelledByServer) = try oneToneDiscussion.createOrOverridePersistedMessageReceived( + from: self, + obvMessage: obvMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + overridePreviousPersistedMessage: overridePreviousPersistedMessage) + + } else if let groupIdentifier = messageJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + (discussionPermanentId, attachmentsFullyReceivedOrCancelledByServer) = try group.createOrOverridePersistedMessageReceived( + from: self, + obvMessage: obvMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + overridePreviousPersistedMessage: overridePreviousPersistedMessage) + + case .v2(group: let group): + + (discussionPermanentId, attachmentsFullyReceivedOrCancelledByServer) = try group.createOrOverridePersistedMessageReceived( + from: self, + obvMessage: obvMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + overridePreviousPersistedMessage: overridePreviousPersistedMessage) + + } + + } else { + + let oneToneDiscussion = try fetchOneToOneDiscussionLegacy() + (discussionPermanentId, attachmentsFullyReceivedOrCancelledByServer) = try oneToneDiscussion.createOrOverridePersistedMessageReceived( + from: self, + obvMessage: obvMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + overridePreviousPersistedMessage: overridePreviousPersistedMessage) + + } + + return (discussionPermanentId, attachmentsFullyReceivedOrCancelledByServer) + + } + + + /// Returns `true` if the attachment is fully received, i.e., if the `ReceivedFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk. + /// Also returns `true` if the attachment was cancelled by the server. + public func process(obvAttachment: ObvAttachment) throws -> Bool { + + guard try obvAttachment.fromContactIdentity == self.obvContactIdentifier else { + throw ObvUICoreDataError.unexpectedFromContactIdentity + } + + guard let receivedMessage = try PersistedMessageReceived.get(messageIdentifierFromEngine: obvAttachment.messageIdentifier, from: self) else { + throw ObvUICoreDataError.couldNotFindPersistedMessageReceived + } + + let attachmentFullyReceivedOrCancelledByServer = try receivedMessage.processObvAttachment(obvAttachment) + + return attachmentFullyReceivedOrCancelledByServer + + } + + + /// Returns the OneToOne discussion corresponding to the identifier. This method makes sure the discussion is the one we have with this contact. + private func fetchOneToOneDiscussion(with oneToOneIdentifier: OneToOneIdentifierJSON) throws -> PersistedOneToOneDiscussion { + + guard self.isOneToOne else { + throw ObvUICoreDataError.contactIsNotOneToOne + } + + guard let ownedIdentity else { + throw ObvUICoreDataError.couldNotFindOwnedIdentity + } + + let ownedCryptoId = ownedIdentity.cryptoId + + guard let contactCryptoIdSpecifiedInOneToOneIdentifier = oneToOneIdentifier.getContactIdentity(ownedIdentity: ownedCryptoId) else { + throw ObvUICoreDataError.inconsistentOneToOneDiscussionIdentifier + } + + guard contactCryptoIdSpecifiedInOneToOneIdentifier == self.cryptoId else { + throw ObvUICoreDataError.inconsistentOneToOneDiscussionIdentifier + } + + guard let oneToOneDiscussion = self.oneToOneDiscussion else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + return oneToOneDiscussion + + } + + + // Legacy case. Old versions of Olvid don't send the oneToOneIdentifier for OneToOne discussions. + private func fetchOneToOneDiscussionLegacy() throws -> PersistedOneToOneDiscussion { + + guard self.isOneToOne else { + assertionFailure() + throw ObvUICoreDataError.cannotInsertMessageInOneToOneDiscussionFromNonOneToOneContact + } + + + guard let oneToOneDiscussion = self.oneToOneDiscussion else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + return oneToOneDiscussion + + } + + + private enum Group { + case v1(group: PersistedContactGroup) + case v2(group: PersistedGroupV2) + } + + + /// Helper method that fetches the group correspongin the ``GroupIdentifier``and that makes sure this contact is part of the group. + private func fetchGroup(with groupIdentifier: GroupIdentifier) throws -> Group { + + guard let ownedIdentity else { + throw ObvUICoreDataError.couldNotFindOwnedIdentity + } + + switch groupIdentifier { + + case .groupV1(groupV1Identifier: let groupV1Identifier): + + guard let group = try PersistedContactGroup.getContactGroup(groupIdentifier: groupV1Identifier, ownedIdentity: ownedIdentity) else { + throw ObvUICoreDataError.couldNotFindGroupV1InDatabase(groupIdentifier: groupV1Identifier) + } + + guard group.contactIdentities.contains(self) || group.ownerIdentity == self.identity else { + assertionFailure() + throw ObvUICoreDataError.contactNeitherGroupOwnerNorPartOfGroupMembers + } + + return .v1(group: group) + + case .groupV2(groupV2Identifier: let groupV2Identifier): + + guard let group = try PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: groupV2Identifier) else { + throw ObvUICoreDataError.couldNotFindGroupV2InDatabase(groupIdentifier: groupV2Identifier) + } + + guard group.otherMembers.contains(where: { $0.cryptoId == self.cryptoId }) else { + assertionFailure() + throw ObvUICoreDataError.contactIsNotPartOfTheGroup + } + + return .v2(group: group) + + } + + } + + + /// Helper method that fetches the group discussion correspongin the ``GroupIdentifier``and that makes sure this contact is part of the group. + private func fetchGroupDiscussion(with groupIdentifier: GroupIdentifier) throws -> PersistedDiscussion { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + case .v1(group: let group): + + return group.discussion + + case .v2(group: let group): + + guard let discussion = group.discussion else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + return discussion + + } + + } + + + /// Called when an extended payload is received. If at least one extended payload was saved for one of the attachments, this method returns the objectID of the message. Otherwise, it returns `nil`. + public func saveExtendedPayload(foundIn attachementImages: [NotificationAttachmentImage], for obvMessage: ObvMessage) throws -> TypeSafeManagedObjectID? { + + guard try obvMessage.fromContactIdentity == self.obvContactIdentifier else { + throw ObvUICoreDataError.unexpectedFromContactIdentity + } + + guard let receivedMessage = try PersistedMessageReceived.get(messageIdentifierFromEngine: obvMessage.messageIdentifierFromEngine, from: self) else { + throw ObvUICoreDataError.couldNotFindPersistedMessageReceived + } + + let atLeastOneExtendedPayloadCouldBeSaved = try receivedMessage.saveExtendedPayload(foundIn: attachementImages) + + return atLeastOneExtendedPayloadCouldBeSaved ? receivedMessage.typedObjectID : nil + + } + +} + + +// MARK: - Receiving discussion shared configurations + +extension PersistedObvContactIdentity { + + /// Called when receiving a ``DiscussionSharedConfigurationJSON`` from this ``PersistedObvContactIdentity``. + /// + /// This methods fetches the appropriate OneToOne discussion, or the group, where the shared configuration should be merged, and then calls the merge methods on them. + func mergeReceivedDiscussionSharedConfigurationSentByThisContact(discussionSharedConfiguration: DiscussionSharedConfigurationJSON, messageUploadTimestampFromServer: Date) throws -> (discussionId: DiscussionIdentifier, weShouldSendBackOurSharedSettings: Bool) { + + let returnedValues: (discussion: PersistedDiscussion, weShouldSendBackOurSharedSettings: Bool) + let sharedSettingHadToBeUpdated: Bool + + if let oneToOneIdentifier = discussionSharedConfiguration.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + + let (_sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettings) = try oneToneDiscussion.mergeDiscussionSharedConfiguration( + discussionSharedConfiguration: discussionSharedConfiguration.sharedConfig, + receivedFrom: self) + + sharedSettingHadToBeUpdated = _sharedSettingHadToBeUpdated + returnedValues = (oneToneDiscussion, weShouldSendBackOurSharedSettings) + + } else if let groupIdentifier = discussionSharedConfiguration.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + let (_sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettings) = try group.mergeReceivedDiscussionSharedConfiguration( + discussionSharedConfiguration: discussionSharedConfiguration.sharedConfig, + receivedFrom: self.cryptoId) + + sharedSettingHadToBeUpdated = _sharedSettingHadToBeUpdated + returnedValues = (group.discussion, weShouldSendBackOurSharedSettings) + + case .v2(group: let group): + + guard let groupDiscussion = group.discussion else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + let (_sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettings) = try group.mergeReceivedDiscussionSharedConfiguration( + discussionSharedConfiguration: discussionSharedConfiguration.sharedConfig, + receivedFrom: self) + + sharedSettingHadToBeUpdated = _sharedSettingHadToBeUpdated + returnedValues = (groupDiscussion, weShouldSendBackOurSharedSettings) + + } + + } else { + + let oneToneDiscussion = try fetchOneToOneDiscussionLegacy() + let (_sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettings) = try oneToneDiscussion.mergeDiscussionSharedConfiguration( + discussionSharedConfiguration: discussionSharedConfiguration.sharedConfig, + receivedFrom: self) + + sharedSettingHadToBeUpdated = _sharedSettingHadToBeUpdated + returnedValues = (oneToneDiscussion, weShouldSendBackOurSharedSettings) + + } + + // In all cases, if the shared settings had to be updated, we insert an appropriate message in the discussion + + if sharedSettingHadToBeUpdated { + try returnedValues.discussion.insertSystemMessageIndicatingThatDiscussionSharedConfigurationWasUpdatedByContact( + persistedContact: self, + messageUploadTimestampFromServer: messageUploadTimestampFromServer) + } + + // Return values + + return try (returnedValues.discussion.identifier, returnedValues.weShouldSendBackOurSharedSettings) + + } + +} + + +// MARK: - Processing messages wipe requests + +extension PersistedObvContactIdentity { + + public func processWipeMessageRequestFromThisContact(deleteMessagesJSON: DeleteMessagesJSON, messageUploadTimestampFromServer: Date) throws -> [InfoAboutWipedOrDeletedPersistedMessage] { + + let messagesToDelete = deleteMessagesJSON.messagesToDelete + + let infos: [InfoAboutWipedOrDeletedPersistedMessage] + + if let oneToOneIdentifier = deleteMessagesJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + infos = try oneToneDiscussion.processWipeMessageRequest(of: messagesToDelete, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } else if let groupIdentifier = deleteMessagesJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + infos = try group.processWipeMessageRequest(of: messagesToDelete, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + case .v2(group: let group): + + infos = try group.processWipeMessageRequest(of: messagesToDelete, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + } else { + + let oneToneDiscussion = try fetchOneToOneDiscussionLegacy() + infos = try oneToneDiscussion.processWipeMessageRequest(of: messagesToDelete, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + return infos + + } + +} + + +// MARK: - Processing discussion (all messages) wipe requests + +extension PersistedObvContactIdentity { + + public func processThisContactRemoteRequestToWipeAllMessagesWithinDiscussion(deleteDiscussionJSON: DeleteDiscussionJSON, messageUploadTimestampFromServer: Date) throws { + + if let oneToOneIdentifier = deleteDiscussionJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + try oneToneDiscussion.processRemoteRequestToWipeAllMessagesWithinThisDiscussion(from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } else if let groupIdentifier = deleteDiscussionJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + try group.processRemoteRequestToWipeAllMessagesWithinThisGroupDiscussion(from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + case .v2(group: let group): + + try group.processRemoteRequestToWipeAllMessagesWithinThisGroupDiscussion(from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + } else { + + let oneToneDiscussion = try fetchOneToOneDiscussionLegacy() + try oneToneDiscussion.processRemoteRequestToWipeAllMessagesWithinThisDiscussion(from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + } + + + /// When receiving a `DeleteDiscussionJSON` request, we need to request the engine to cancel any processing sent message. This method allows to determine which sent messages are still processing. + public func getObjectIDsOfPersistedMessageSentStillProcessing(deleteDiscussionJSON: DeleteDiscussionJSON) throws -> [TypeSafeManagedObjectID] { + + guard let context = self.managedObjectContext else { + throw ObvUICoreDataError.noContext + } + + let persistedDiscussionObjectID: NSManagedObjectID + + if let oneToOneIdentifier = deleteDiscussionJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + persistedDiscussionObjectID = oneToneDiscussion.objectID + + } else if let groupIdentifier = deleteDiscussionJSON.groupIdentifier { + + let groupDiscussion = try fetchGroupDiscussion(with: groupIdentifier) + persistedDiscussionObjectID = groupDiscussion.objectID + + } else if let oneToOneDiscussion { + + persistedDiscussionObjectID = oneToOneDiscussion.objectID + + } else { + + throw ObvUICoreDataError.couldNotFindDiscussion + + } + + let allProcessingMessageSent = try PersistedMessageSent.getAllProcessingWithinDiscussion(persistedDiscussionObjectID: persistedDiscussionObjectID, within: context) + return allProcessingMessageSent.map { $0.typedObjectID } + + } + +} + + +// MARK: - Processing edit requests + +extension PersistedObvContactIdentity { + + public func processUpdateMessageRequestFromThisContact(updateMessageJSON: UpdateMessageJSON, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + if let oneToOneIdentifier = updateMessageJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + let updatedMessage = try oneToneDiscussion.processUpdateMessageRequest(updateMessageJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } else if let groupIdentifier = updateMessageJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + let updatedMessage = try group.processUpdateMessageRequest(updateMessageJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + case .v2(group: let group): + + let updatedMessage = try group.processUpdateMessageRequest(updateMessageJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } + + } else { + + let oneToneDiscussion = try fetchOneToOneDiscussionLegacy() + let updatedMessage = try oneToneDiscussion.processUpdateMessageRequest(updateMessageJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } + + } + +} + + +// MARK: - Process reaction requests + +extension PersistedObvContactIdentity { + + public func processSetOrUpdateReactionOnMessageRequestFromThisContact(reactionJSON: ReactionJSON, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + if let oneToOneIdentifier = reactionJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + let updatedMessage = try oneToneDiscussion.processSetOrUpdateReactionOnMessageRequest(reactionJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } else if let groupIdentifier = reactionJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + let updatedMessage = try group.processSetOrUpdateReactionOnMessageRequest(reactionJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + case .v2(group: let group): + + let updatedMessage = try group.processSetOrUpdateReactionOnMessageRequest(reactionJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } + + } else { + + let oneToneDiscussion = try fetchOneToOneDiscussionLegacy() + let updatedMessage = try oneToneDiscussion.processSetOrUpdateReactionOnMessageRequest(reactionJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } + + } + +} + + +// MARK: - Process screen capture detections + +extension PersistedObvContactIdentity { + + public func processDetectionThatSensitiveMessagesWereCapturedByThisContact(screenCaptureDetectionJSON: ScreenCaptureDetectionJSON, messageUploadTimestampFromServer: Date) throws { + + if let oneToOneIdentifier = screenCaptureDetectionJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + try oneToneDiscussion.processDetectionThatSensitiveMessagesWereCaptured(screenCaptureDetectionJSON, from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } else if let groupIdentifier = screenCaptureDetectionJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + try group.processDetectionThatSensitiveMessagesWereCaptured(screenCaptureDetectionJSON, from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + case .v2(group: let group): + + try group.processDetectionThatSensitiveMessagesWereCaptured(screenCaptureDetectionJSON, from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + } else { + + let oneToneDiscussion = try fetchOneToOneDiscussionLegacy() + try oneToneDiscussion.processDetectionThatSensitiveMessagesWereCaptured(screenCaptureDetectionJSON, from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + } + + + // MARK: - Process requests for discussions shared settings + + /// Returns our groupV2 discussion's shared settings in case we detect that it is pertinent to send them back to this contact + public func processQuerySharedSettingsRequestFromThisContact(querySharedSettingsJSON: QuerySharedSettingsJSON) throws -> (weShouldSendBackOurSharedSettings: Bool, discussionId: DiscussionIdentifier) { + + if let oneToOneIdentifier = querySharedSettingsJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + let discussionId = try oneToneDiscussion.identifier + + let weShouldSendBackOurSharedSettings = try oneToneDiscussion.processQuerySharedSettingsRequest(querySharedSettingsJSON: querySharedSettingsJSON) + + return (weShouldSendBackOurSharedSettings, discussionId) + + } else if let groupIdentifier = querySharedSettingsJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + let (weShouldSendBackOurSharedSettings, discussionId) = try group.processQuerySharedSettingsRequest(from: self, querySharedSettingsJSON: querySharedSettingsJSON) + + return (weShouldSendBackOurSharedSettings, discussionId) + + case .v2(group: let group): + + let (weShouldSendBackOurSharedSettings, discussionId) = try group.processQuerySharedSettingsRequest(from: self, querySharedSettingsJSON: querySharedSettingsJSON) + + return (weShouldSendBackOurSharedSettings, discussionId) + + } + + } else { + + let oneToneDiscussion = try fetchOneToOneDiscussionLegacy() + let discussionId = try oneToneDiscussion.identifier + + let weShouldSendBackOurSharedSettings = try oneToneDiscussion.processQuerySharedSettingsRequest(querySharedSettingsJSON: querySharedSettingsJSON) + + return (weShouldSendBackOurSharedSettings, discussionId) + + } + + } + + +} + + // MARK: - Other functions extension PersistedObvContactIdentity { @@ -513,6 +1254,21 @@ extension PersistedObvContactIdentity { } } + + public func getReceivedMessageIdentifiers(messageIdentifierFromEngine: Data) throws -> (discussionId: DiscussionIdentifier, receivedMessageId: ReceivedMessageIdentifier)? { + + guard let message = try PersistedMessageReceived.get(messageIdentifierFromEngine: messageIdentifierFromEngine, from: self) else { + return nil + } + + guard let discussion = message.discussion else { + return nil + } + + return (try discussion.identifier, message.receivedMessageIdentifier) + + } + } @@ -566,10 +1322,10 @@ extension PersistedObvContactIdentity { static func ofOwnedIdentityWithCryptoId(_ ownedIdentityCryptoId: ObvCryptoId) -> NSPredicate { NSPredicate(Key.ownedIdentityIdentity, EqualToData: ownedIdentityCryptoId.getIdentity()) } - static func correspondingToObvContactIdentity(_ obvContactIdentity: ObvContactIdentity) -> NSPredicate { + static func correspondingToObvContactIdentity(_ obvContactIdentity: ObvContactIdentifier) -> NSPredicate { NSCompoundPredicate(andPredicateWithSubpredicates: [ - withCryptoId(obvContactIdentity.cryptoId), - ofOwnedIdentityWithCryptoId(obvContactIdentity.ownedIdentity.cryptoId), + withCryptoId(obvContactIdentity.contactCryptoId), + ofOwnedIdentityWithCryptoId(obvContactIdentity.ownedCryptoId), ]) } static func excludedContactCryptoIds(excludedIdentities: Set) -> NSPredicate { @@ -650,7 +1406,7 @@ extension PersistedObvContactIdentity { } - public static func get(persisted obvContactIdentity: ObvContactIdentity, whereOneToOneStatusIs oneToOneStatus: OneToOneStatus, within context: NSManagedObjectContext) throws -> PersistedObvContactIdentity? { + public static func get(persisted obvContactIdentity: ObvContactIdentifier, whereOneToOneStatusIs oneToOneStatus: OneToOneStatus, within context: NSManagedObjectContext) throws -> PersistedObvContactIdentity? { let request: NSFetchRequest = PersistedObvContactIdentity.fetchRequest() request.predicate = Predicate.correspondingToObvContactIdentity(obvContactIdentity) request.fetchLimit = 1 @@ -859,9 +1615,15 @@ extension PersistedObvContactIdentity { if isInserted { - ObvMessengerCoreDataNotification.persistedContactWasInserted(contactPermanentID: objectPermanentID) - .postOnDispatchQueue() - + if let ownedCryptoId = self.ownedIdentity?.cryptoId { + let contactCryptoId = self.cryptoId + ObvMessengerCoreDataNotification.persistedContactWasInserted(contactPermanentID: objectPermanentID, ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) + .postOnDispatchQueue() + } else { + assertionFailure() + } + + } else if isDeleted { let notification = ObvMessengerCoreDataNotification.persistedContactWasDeleted(objectID: objectID, identity: identity) @@ -950,3 +1712,84 @@ extension PersistedObvContactIdentity: MentionableIdentity { return .contact(typedObjectID) } } + + +// MARK: - For snapshot purposes + +extension PersistedObvContactIdentity { + + var syncSnapshotNode: PersistedObvContactIdentitySyncSnapshotNode { + .init(customDisplayName: customDisplayName, + note: note, + rawOneToOneDiscussion: rawOneToOneDiscussion) + } + +} + + +struct PersistedObvContactIdentitySyncSnapshotNode: ObvSyncSnapshotNode { + + private let domain: Set + private let customDisplayName: String? + // No custom hue (this only exists under Android) + private let note: String? + private let discussionConfiguration: PersistedDiscussionConfigurationSyncSnapshotNode? + + let id = Self.generateIdentifier() + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case customDisplayName = "custom_name" + case note = "personal_note" + case discussionConfiguration = "discussion_customization" + case domain = "domain" + } + + private static let defaultDomain = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + + init(customDisplayName: String?, note: String?, rawOneToOneDiscussion: PersistedOneToOneDiscussion?) { + self.customDisplayName = customDisplayName + self.note = note + self.discussionConfiguration = rawOneToOneDiscussion?.syncSnapshotNode + self.domain = Self.defaultDomain + } + + // Synthesized implementation of encode(to encoder: Encoder) + + + init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + self.customDisplayName = try values.decodeIfPresent(String.self, forKey: .customDisplayName) + self.note = try values.decodeIfPresent(String.self, forKey: .note) + self.discussionConfiguration = try values.decodeIfPresent(PersistedDiscussionConfigurationSyncSnapshotNode.self, forKey: .discussionConfiguration) + } + + + func useToUpdate(_ contact: PersistedObvContactIdentity) { + + if domain.contains(.customDisplayName) { + _ = try? contact.setCustomDisplayName(to: customDisplayName) + } + + if domain.contains(.note) { + _ = contact.setNote(to: self.note) + } + + if domain.contains(.discussionConfiguration) && contact.isOneToOne { + assert(contact.oneToOneDiscussion != nil) + if let oneToOneDiscussion = contact.oneToOneDiscussion { + discussionConfiguration?.useToUpdate(oneToOneDiscussion) + } + } + + + } + + + enum ObvError: Error { + case couldNotFindContact + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvOwnedIdentity+Backup.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvOwnedIdentity+Backup.swift index 59d06750..b71d692e 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvOwnedIdentity+Backup.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvOwnedIdentity+Backup.swift @@ -50,7 +50,7 @@ public extension PersistedObvOwnedIdentityBackupItem { throw PersistedObvOwnedIdentityBackupItem.makeError(message: "Could not find owned identity corresponding to backup item") } ownedIdentity.isBeingRestoredFromBackup = true - ownedIdentity.setOwnedCustomDisplayName(to: customDisplayName) + _ = ownedIdentity.setOwnedCustomDisplayName(to: customDisplayName) if let hiddenProfileHash, let hiddenProfileSalt { ownedIdentity.setHiddenProfileHashAndSaltDuringBackupRestore(hash: hiddenProfileHash, salt: hiddenProfileSalt) } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvOwnedIdentity.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvOwnedIdentity.swift index 898d9063..a07dc5fd 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvOwnedIdentity.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/Identities/PersistedObvOwnedIdentity.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,7 +24,11 @@ import ObvEngine import os.log import OlvidUtils import ObvCrypto -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvSettings +import ObvEncoder +import Contacts + @objc(PersistedObvOwnedIdentity) public final class PersistedObvOwnedIdentity: NSManagedObject, Identifiable, ObvErrorMaker, ObvIdentifiableManagedObject { @@ -59,10 +63,21 @@ public final class PersistedObvOwnedIdentity: NSManagedObject, Identifiable, Obv @NSManaged private(set) var contactGroups: Set @NSManaged private(set) var contactGroupsV2: Set @NSManaged public private(set) var contacts: Set - @NSManaged private(set) var invitations: Set + @NSManaged public private(set) var invitations: Set + @NSManaged public private(set) var devices: Set // MARK: Variables + public var sortedDevices: [PersistedObvOwnedDevice] { + devices.sorted { device1, device2 in + return device1.objectInsertionDate < device2.objectInsertionDate + } + } + + public var hasAnotherDeviceWithChannel: Bool { + return devices.first(where: { $0.secureChannelStatus == .created }) != nil + } + public var isHidden: Bool { hiddenProfileHash != nil && hiddenProfileSalt != nil } @@ -102,11 +117,60 @@ public final class PersistedObvOwnedIdentity: NSManagedObject, Identifiable, Obv } } - public private(set) var apiPermissions: APIPermissions { - get { APIPermissions(rawValue: rawAPIPermissions) } - set { rawAPIPermissions = newValue.rawValue } + private var apiPermissions: APIPermissions { + get { + return APIPermissions(rawValue: rawAPIPermissions) + } + set { + rawAPIPermissions = newValue.rawValue + } + } + + + /// If this owned identity has the canCall permission, this method returns her crypto Id. Otherwise, it looks for another owned identity allowed to emit a call. If one is found, this methods returns her owned identity. + /// If no owned identity has the canCall permission, this method returns `nil`. + public var ownedCryptoIdAllowedToEmitSecureCall: ObvCryptoId? { + if apiPermissions.contains(.canCall) { + return self.cryptoId + } else { + // This owned identity hasn't the canCall permission. But if any other active non-hidden owned identity has the permission, we know this one will be allowed to make calls too. + if let context = managedObjectContext { + let anotherProfileThatHasCanCallPermission = try? PersistedObvOwnedIdentity.getAllNonHiddenOwnedIdentities(within: context) + .filter({ $0.cryptoId != self.cryptoId }) + .first(where: { + // We do not directly access the apiPermissions var to prevent an infinite loop + let otherAPIPermissions = APIPermissions(rawValue: $0.rawAPIPermissions) + return otherAPIPermissions.contains(.canCall) + + }) + return anotherProfileThatHasCanCallPermission?.cryptoId + } else { + return nil + } + } + } + + + /// The api permissions of this owned identity, taking into account the permissions of other owned identities that may "augment" the permissions. + /// This variable is typically used when displaying the permissions to the user. + public var effectiveAPIPermissions: APIPermissions { + var effectiveAPIPermissions = self.apiPermissions + if ownedCryptoIdAllowedToEmitSecureCall != nil { + effectiveAPIPermissions.insert(.canCall) + } + return effectiveAPIPermissions + } + + + + public var apiKeyElements: APIKeyElements { + return APIKeyElements( + status: apiKeyStatus, + permissions: apiPermissions, + expirationDate: apiKeyExpirationDate) } + public var objectPermanentID: ObvManagedObjectPermanentID { ObvManagedObjectPermanentID(uuid: self.permanentUUID) } @@ -114,7 +178,7 @@ public final class PersistedObvOwnedIdentity: NSManagedObject, Identifiable, Obv public var circledInitialsConfiguration: CircledInitialsConfiguration { .contact(initial: customDisplayName ?? fullDisplayName, - photoURL: photoURL, + photo: .url(url: photoURL), showGreenShield: isKeycloakManaged, showRedShield: false, cryptoId: cryptoId, @@ -125,6 +189,29 @@ public final class PersistedObvOwnedIdentity: NSManagedObject, Identifiable, Obv return badgeCountForDiscussionsTab + badgeCountForInvitationsTab } + + public var asCNContact: CNContact { + let contact = CNMutableContact() + if let firstName = identityCoreDetails.firstName { + contact.givenName = firstName + } + if let lastName = identityCoreDetails.lastName { + contact.familyName = lastName + } + if let company = identityCoreDetails.company { + contact.organizationName = company + } + if let position = identityCoreDetails.position { + contact.jobTitle = position + } + if let customDisplayName { + contact.nickname = customDisplayName + } + contact.contactType = .person + return contact + } + + // MARK: - Initializer public convenience init?(ownedIdentity: ObvOwnedIdentity, within context: NSManagedObjectContext) { @@ -168,25 +255,34 @@ public final class PersistedObvOwnedIdentity: NSManagedObject, Identifiable, Obv } public func deactivate() { - self.isActive = false + if self.isActive { + self.isActive = false + } } public func activate() { - self.isActive = true + if !self.isActive { + self.isActive = true + } } public func delete() throws { guard let context = managedObjectContext else { - throw Self.makeError(message: "Could not delete owned identity as we could not find any context") + throw ObvUICoreDataError.noContext } context.delete(self) } - - public func setOwnedCustomDisplayName(to newCustomDisplayName: String?) { - guard self.customDisplayName != newCustomDisplayName else { return } - self.customDisplayName = newCustomDisplayName?.trimmingWhitespacesAndNewlinesAndMapToNilIfZeroLength() + + + /// Returns `true` iff the custom name had to be changed in database + public func setOwnedCustomDisplayName(to newCustomDisplayName: String?) -> Bool { + let trimmed = newCustomDisplayName?.trimmingWhitespacesAndNewlinesAndMapToNilIfZeroLength() + guard self.customDisplayName != trimmed else { return false } + self.customDisplayName = trimmed + return true } + // MARK: - Helpers for backups var hiddenProfileHashAndSaltForBackup: (hash: Data, salt: Data)? { @@ -205,7 +301,7 @@ public final class PersistedObvOwnedIdentity: NSManagedObject, Identifiable, Obv } -// MARK: - Capabilities +// MARK: - Contact Capabilities extension PersistedObvOwnedIdentity { @@ -248,135 +344,1503 @@ extension PersistedObvOwnedIdentity { public func supportsCapability(_ capability: ObvCapability) -> Bool { allCapabilitites.contains(capability) } - + +} + + +// MARK: - Owned devices + +extension PersistedObvOwnedIdentity { + + public func syncWith(ownedDevicesWithinEngine: Set) throws { + + guard ownedDevicesWithinEngine.allSatisfy({ + $0.ownedCryptoId == self.cryptoId + }) else { + throw ObvUICoreDataError.unexpectedOwnedCryptoId + } + + let deviceIdentifiersWithinApp = Set(devices.map(\.identifier)) + let deviceIdentifiersWithinEngine = Set(ownedDevicesWithinEngine.map(\.identifier)) + + // Determine the devices to add/remove/update + + let deviceIdentifiersToRemove = deviceIdentifiersWithinApp.subtracting(deviceIdentifiersWithinEngine) + let deviceIdentifiersToAdd = deviceIdentifiersWithinEngine.subtracting(deviceIdentifiersWithinApp) + let deviceIdentifiersToUpdate = deviceIdentifiersWithinApp.intersection(deviceIdentifiersWithinEngine) + + // Remove devices + + let devicesToRemove = devices.filter({ deviceIdentifiersToRemove.contains($0.identifier) }) + for deviceToRemove in devicesToRemove { + try deviceToRemove.deletePersistedObvOwnedDevice() + } + + // Insert devices + + let devicesToAdd = ownedDevicesWithinEngine.filter({ deviceIdentifiersToAdd.contains($0.identifier) }) + for deviceToAdd in devicesToAdd { + try PersistedObvOwnedDevice.createIfRequired(obvOwnedDevice: deviceToAdd, ownedIdentity: self) + } + + // Update devices + + let devicesToUpdate = ownedDevicesWithinEngine.filter({ deviceIdentifiersToUpdate.contains($0.identifier) }) + for obvOwned in devicesToUpdate { + try self.devices + .first(where: { $0.identifier == obvOwned.identifier })? + .updatePersistedObvOwnedDevice(with: obvOwned) + } + + } + +} + + +// MARK: - Hide/Unhide profile + +extension PersistedObvOwnedIdentity { + + public func hideProfileWithPassword(_ password: String) throws { + guard password.count >= ObvUICoreDataConstants.minimumLengthOfPasswordForHiddenProfiles else { + throw Self.makeError(message: "Password is too short to hide profile") + } + guard try !anotherPasswordIfAPrefixOfThisPassword(password: password) else { + throw Self.makeError(message: "Another password is the prefix of this password") + } + let prng = ObvCryptoSuite.sharedInstance.prngService() + let newHiddenProfileSalt = prng.genBytes(count: ObvUICoreDataConstants.seedLengthForHiddenProfiles) + let newHiddenProfileHash = try Self.computehiddenProfileHash(password, salt: newHiddenProfileSalt) + self.hiddenProfileSalt = newHiddenProfileSalt + self.hiddenProfileHash = newHiddenProfileHash + } + + + public func unhideProfile() { + if self.hiddenProfileHash != nil { + self.hiddenProfileHash = nil + } + if self.hiddenProfileSalt != nil { + self.hiddenProfileSalt = nil + } + } + + + private func anotherPasswordIfAPrefixOfThisPassword(password: String) throws -> Bool { + guard let context = self.managedObjectContext else { throw Self.makeError(message: "Could not find context") } + let allHiddenOwnedIdentities = try Self.getAllHiddenOwnedIdentities(within: context) + for hiddenOwnedIdentity in allHiddenOwnedIdentities { + guard let hiddenProfileSalt = hiddenOwnedIdentity.hiddenProfileSalt, let hiddenProfileHash = hiddenOwnedIdentity.hiddenProfileHash else { assertionFailure(); continue } + for length in ObvUICoreDataConstants.minimumLengthOfPasswordForHiddenProfiles...password.count { + let prefix = String(password.prefix(length)) + let hashObtained = try Self.computehiddenProfileHash(prefix, salt: hiddenProfileSalt) + if hashObtained == hiddenProfileHash { + return true + } + } + } + return false + } + + + private static func computehiddenProfileHash(_ password: String, salt: Data) throws -> Data { + return try PBKDF.pbkdf2sha1(password: password, salt: salt, rounds: 1000, derivedKeyLength: 20) + } + + + private func isUnlockedUsingPassword(_ password: String) throws -> Bool { + guard let hiddenProfileHash, let hiddenProfileSalt else { return false } + let computedHash = try Self.computehiddenProfileHash(password, salt: hiddenProfileSalt) + return hiddenProfileHash == computedHash + } + + + public static func passwordCanUnlockSomeHiddenOwnedIdentity(password: String, within context: NSManagedObjectContext) throws -> Bool { + guard password.count >= ObvUICoreDataConstants.minimumLengthOfPasswordForHiddenProfiles else { return false } + let hiddenOwnedIdentities = try Self.getAllHiddenOwnedIdentities(within: context) + for hiddenOwnedIdentity in hiddenOwnedIdentities { + if try hiddenOwnedIdentity.isUnlockedUsingPassword(password) { + return true + } + } + return false + } + + + public var isLastUnhiddenOwnedIdentity: Bool { + get throws { + guard let context = self.managedObjectContext else { throw Self.makeError(message: "Could not find owned identity") } + if isHidden { return false } + let unhiddenOwnedIdentities = try PersistedObvOwnedIdentity.getAllNonHiddenOwnedIdentities(within: context) + assert(unhiddenOwnedIdentities.contains(self)) + return unhiddenOwnedIdentities.count <= 1 + } + } + +} + +// MARK: - Receiving messages and attachments sent from a contact + +extension PersistedObvOwnedIdentity { + + + /// When receiving an `ObvMessage` from a contact, we fetch the persisted contact indicated in the message and then call this method to create the `PersistedMessageReceived`. + /// Returns all the `ObvAttachment` that are fully received, i.e., such that the `ReceivedFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk. + public func createOrOverridePersistedMessageReceived(obvMessage: ObvMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?, overridePreviousPersistedMessage: Bool) throws -> (discussionPermanentID: DiscussionPermanentID, attachmentFullyReceivedOrCancelledByServer: [ObvAttachment]) { + + guard obvMessage.fromContactIdentity.ownedCryptoId == self.cryptoId else { + assertionFailure() + throw ObvUICoreDataError.unexpectedOwnedCryptoId + } + + guard let contact = try PersistedObvContactIdentity.get(cryptoId: obvMessage.fromContactIdentity.contactCryptoId, ownedIdentity: self, whereOneToOneStatusIs: .any) else { + throw ObvUICoreDataError.couldNotFindContact + } + + let values = try contact.createOrOverridePersistedMessageReceived( + obvMessage: obvMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + overridePreviousPersistedMessage: overridePreviousPersistedMessage) + + return values + + } + +} + + +// MARK: - Receiving messages and attachments sent from another owned device + +extension PersistedObvOwnedIdentity { + + /// When receiving an `ObvOwnedMessage` from another owned device, we fetch the persisted owned identity indicated in the message and then call this method to create the `PersistedMessageSent`. + /// Returns all the `ObvOwnedAttachment` that are fully received, i.e., such that the `SentFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk. + public func createPersistedMessageSentFromOtherOwnedDevice(obvOwnedMessage: ObvOwnedMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?) throws -> [ObvOwnedAttachment] { + + guard obvOwnedMessage.ownedCryptoId == self.cryptoId else { + throw ObvUICoreDataError.unexpectedOwnedCryptoId + } + + // Determine the discussion or the group where the new PersistedMessageReceived should be inserted + + let attachmentFullyReceivedOrCancelledByServer: [ObvOwnedAttachment] + + if let oneToOneIdentifier = messageJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + attachmentFullyReceivedOrCancelledByServer = try oneToneDiscussion.createPersistedMessageSentFromOtherOwnedDevice( + from: self, + obvOwnedMessage: obvOwnedMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON) + + } else if let groupIdentifier = messageJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + attachmentFullyReceivedOrCancelledByServer = try group.createPersistedMessageSentFromOtherOwnedDevice( + from: self, + obvOwnedMessage: obvOwnedMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON) + + case .v2(group: let group): + + attachmentFullyReceivedOrCancelledByServer = try group.createPersistedMessageSentFromOtherOwnedDevice( + from: self, + obvOwnedMessage: obvOwnedMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON) + + } + + } else { + + throw ObvUICoreDataError.couldNotDetermineTheOneToOneDiscussion + + } + + return attachmentFullyReceivedOrCancelledByServer + + } + + + /// Returns `true` iff the attachment is cancelled or fully received (i.e., if the `SentFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk). + public func processObvOwnedAttachmentFromOtherOwnedDevice(obvOwnedAttachment: ObvOwnedAttachment) throws -> Bool { + + guard obvOwnedAttachment.ownedCryptoId == self.cryptoId else { + throw ObvUICoreDataError.unexpectedOwnedCryptoId + } + + guard let sentMessage = try PersistedMessageSent.getPersistedMessageSentFromOtherOwnedDevice(messageIdentifierFromEngine: obvOwnedAttachment.messageIdentifier, from: self) else { + throw ObvUICoreDataError.couldNotFindPersistedMessageSent + } + + let attachmentFullyReceivedOrCancelledByServer = try sentMessage.processObvOwnedAttachmentFromOtherOwnedDevice(obvOwnedAttachment) + + return attachmentFullyReceivedOrCancelledByServer + + } + + + public func markAttachmentFromOwnedDeviceAsResumed(messageIdentifierFromEngine: Data, attachmentNumber: Int) throws { + + guard let sentMessage = try PersistedMessageSent.getPersistedMessageSentFromOtherOwnedDevice(messageIdentifierFromEngine: messageIdentifierFromEngine, from: self) else { + throw ObvUICoreDataError.couldNotFindPersistedMessageSent + } + + try sentMessage.markAttachmentFromOwnedDeviceAsResumed(attachmentNumber: attachmentNumber) + + } + + + public func markAttachmentFromOwnedDeviceAsPaused(messageIdentifierFromEngine: Data, attachmentNumber: Int) throws { + + guard let sentMessage = try PersistedMessageSent.getPersistedMessageSentFromOtherOwnedDevice(messageIdentifierFromEngine: messageIdentifierFromEngine, from: self) else { + throw ObvUICoreDataError.couldNotFindPersistedMessageSent + } + + try sentMessage.markAttachmentFromOwnedDeviceAsPaused(attachmentNumber: attachmentNumber) + + } + + + /// Returns the OneToOne discussion corresponding to the identifier. This method makes sure the discussion is one of this owned identity. + private func fetchOneToOneDiscussion(with oneToOneIdentifier: OneToOneIdentifierJSON) throws -> PersistedOneToOneDiscussion { + + guard let contactCryptoId = oneToOneIdentifier.getContactIdentity(ownedIdentity: self.cryptoId) else { + assertionFailure("This is really unexpected. This method should not have been called in the first place.") + throw ObvUICoreDataError.couldNotDetermineContactCryptoId + } + + guard let contact = try PersistedObvContactIdentity.get(cryptoId: contactCryptoId, ownedIdentity: self, whereOneToOneStatusIs: .any) else { + throw ObvUICoreDataError.couldNotFindContactWithId(contactIdentifier: .init(contactCryptoId: contactCryptoId, ownedCryptoId: self.cryptoId)) + } + + guard let oneToOneDiscussion = contact.oneToOneDiscussion else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + return oneToOneDiscussion + + } + + + private enum Group { + case v1(group: PersistedContactGroup) + case v2(group: PersistedGroupV2) + } + + + /// Helper method that fetches the group correspongin the ``GroupIdentifier``and that makes sure this contact is part of the group. + private func fetchGroup(with groupIdentifier: GroupIdentifier) throws -> Group { + + switch groupIdentifier { + + case .groupV1(groupV1Identifier: let groupV1Identifier): + + guard let contactGroup = try PersistedContactGroup.getContactGroup(groupIdentifier: groupV1Identifier, ownedIdentity: self) else { + throw ObvUICoreDataError.couldNotFindGroupV1InDatabase(groupIdentifier: groupV1Identifier) + } + + return .v1(group: contactGroup) + + case .groupV2(groupV2Identifier: let groupV2Identifier): + + guard let group = try PersistedGroupV2.get(ownIdentity: self, appGroupIdentifier: groupV2Identifier) else { + throw ObvUICoreDataError.couldNotFindGroupV2InDatabase(groupIdentifier: groupV2Identifier) + } + + return .v2(group: group) + + } + + } + + + /// Helper method that fetches the group discussion correspongin the ``GroupIdentifier``and that makes sure this contact is part of the group. + private func fetchGroupDiscussion(with groupIdentifier: GroupIdentifier) throws -> PersistedDiscussion { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + case .v1(group: let group): + + return group.discussion + + case .v2(group: let group): + + guard let discussion = group.discussion else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + return discussion + + } + + } + + + /// Called when an extended payload is received for a message sent from another device of the owned identity. If at least one extended payload was saved for one of the attachments, this method returns the objectID of the message. Otherwise, it returns `nil`. + public func saveExtendedPayload(foundIn attachementImages: [NotificationAttachmentImage], for obvOwnedMessage: ObvOwnedMessage) throws -> TypeSafeManagedObjectID? { + + guard obvOwnedMessage.ownedCryptoId == self.cryptoId else { + throw ObvUICoreDataError.unexpectedOwnedCryptoId + } + + guard let sentMessage = try PersistedMessageSent.getPersistedMessageSentFromOtherOwnedDevice(messageIdentifierFromEngine: obvOwnedMessage.messageIdentifierFromEngine, from: self) else { + throw ObvUICoreDataError.couldNotFindPersistedMessageSent + } + + let atLeastOneExtendedPayloadCouldBeSaved = try sentMessage.saveExtendedPayload(foundIn: attachementImages) + + return atLeastOneExtendedPayloadCouldBeSaved ? sentMessage.typedObjectID : nil + + } + + +} + + +// MARK: - Receiving discussion shared configurations + +extension PersistedObvOwnedIdentity { + + /// Called when receiving a ``DiscussionSharedConfigurationJSON`` from a contact + public func mergeReceivedDiscussionSharedConfigurationSentByContact(discussionSharedConfiguration: DiscussionSharedConfigurationJSON, messageUploadTimestampFromServer: Date, messageLocalDownloadTimestamp: Date, contactCryptoId: ObvCryptoId) throws -> (discussionId: DiscussionIdentifier, weShouldSendBackOurSharedSettings: Bool) { + + guard let persistedContact = try PersistedObvContactIdentity.get(cryptoId: contactCryptoId, ownedIdentity: self, whereOneToOneStatusIs: .any) else { + throw ObvUICoreDataError.couldNotFindContact + } + + let values = try persistedContact.mergeReceivedDiscussionSharedConfigurationSentByThisContact( + discussionSharedConfiguration: discussionSharedConfiguration, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return values + + } + + + /// Called when receiving a ``DiscussionSharedConfigurationJSON`` from another owned device of this ``PersistedObvOwnedIdentity``. + public func mergeReceivedDiscussionSharedConfigurationSentByThisOwnedIdentity(discussionSharedConfiguration: DiscussionSharedConfigurationJSON, messageUploadTimestampFromServer: Date) throws -> (discussionId: DiscussionIdentifier, weShouldSendBackOurSharedSettings: Bool) { + + let returnedValues: (discussion: PersistedDiscussion, weShouldSendBackOurSharedSettings: Bool) + let sharedSettingHadToBeUpdated: Bool + + if let oneToOneIdentifier = discussionSharedConfiguration.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + + let (_sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettings) = try oneToneDiscussion.mergeDiscussionSharedConfiguration( + discussionSharedConfiguration: discussionSharedConfiguration.sharedConfig, + receivedFrom: self) + + sharedSettingHadToBeUpdated = _sharedSettingHadToBeUpdated + returnedValues = (oneToneDiscussion, weShouldSendBackOurSharedSettings) + + } else if let groupIdentifier = discussionSharedConfiguration.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + let (_sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettings) = try group.mergeReceivedDiscussionSharedConfiguration( + discussionSharedConfiguration: discussionSharedConfiguration.sharedConfig, + receivedFrom: self.cryptoId) + + sharedSettingHadToBeUpdated = _sharedSettingHadToBeUpdated + returnedValues = (group.discussion, weShouldSendBackOurSharedSettings) + + case .v2(group: let group): + + guard let groupDiscussion = group.discussion else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + let (_sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettings) = try group.mergeReceivedDiscussionSharedConfiguration( + discussionSharedConfiguration: discussionSharedConfiguration.sharedConfig, + receivedFrom: self) + + sharedSettingHadToBeUpdated = _sharedSettingHadToBeUpdated + returnedValues = (groupDiscussion, weShouldSendBackOurSharedSettings) + + } + + } else { + + throw ObvUICoreDataError.couldNotFindDiscussion + + } + + // In all cases, if the shared settings had to be updated, we insert an appropriate message in the discussion + + if sharedSettingHadToBeUpdated { + try returnedValues.discussion.insertSystemMessageIndicatingThatDiscussionSharedConfigurationWasUpdatedByOwnedIdentity(messageUploadTimestampFromServer: messageUploadTimestampFromServer) + } + + return try (returnedValues.discussion.identifier, returnedValues.weShouldSendBackOurSharedSettings) + + } + + + /// Called when the owned identity decided to change the shared configuration of a discussion on the current device. + public func replaceDiscussionSharedConfigurationSentByThisOwnedIdentity(with expiration: ExpirationJSON, inDiscussionWithId discussionId: DiscussionIdentifier) throws { + + guard let discussion = try PersistedDiscussion.getPersistedDiscussion(ownedIdentity: self, discussionId: discussionId) else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + guard discussion.ownedIdentity == self else { + throw ObvUICoreDataError.unexpectedOwnedCryptoId + } + + let sharedSettingHadToBeUpdated: Bool + + switch try discussion.kind { + + case .oneToOne: + + guard let oneToOneDiscussion = discussion as? PersistedOneToOneDiscussion else { + assertionFailure() + throw ObvUICoreDataError.couldNotFindDiscussion + } + + sharedSettingHadToBeUpdated = try oneToOneDiscussion.replaceDiscussionSharedConfiguration(with: expiration, receivedFrom: self) + + case .groupV1(withContactGroup: let group): + + guard let group else { + throw ObvUICoreDataError.couldNotDetemineGroupV1 + } + + sharedSettingHadToBeUpdated = try group.replaceReceivedDiscussionSharedConfiguration(with: expiration, receivedFrom: self) + + case .groupV2(withGroup: let group): + + guard let group else { + throw ObvUICoreDataError.couldNotDetemineGroupV2 + } + + sharedSettingHadToBeUpdated = try group.replaceReceivedDiscussionSharedConfiguration(with: expiration, receivedFrom: self) + + } + + if sharedSettingHadToBeUpdated { + try? discussion.insertSystemMessageIndicatingThatDiscussionSharedConfigurationWasUpdatedByOwnedIdentity( + messageUploadTimestampFromServer: nil) + } + + } + +} + + +// MARK: - Processing delete requests from the owned identity + +extension PersistedObvOwnedIdentity { + + public func processWipeMessageRequestFromOtherOwnedDevice(deleteMessagesJSON: DeleteMessagesJSON, messageUploadTimestampFromServer: Date) throws -> [InfoAboutWipedOrDeletedPersistedMessage] { + + let messagesToDelete = deleteMessagesJSON.messagesToDelete + + let infos: [InfoAboutWipedOrDeletedPersistedMessage] + + if let oneToOneIdentifier = deleteMessagesJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + infos = try oneToneDiscussion.processWipeMessageRequest(of: messagesToDelete, from: self.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } else if let groupIdentifier = deleteMessagesJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + infos = try group.processWipeMessageRequest(of: messagesToDelete, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + case .v2(group: let group): + + infos = try group.processWipeMessageRequest(of: messagesToDelete, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + } else { + + throw ObvUICoreDataError.couldNotFindDiscussion + + } + + return infos + + + } + + + public func processMessageDeletionRequestRequestedFromCurrentDeviceOfThisOwnedIdentity(persistedMessageObjectIDs: Set, deletionType: DeletionType) throws -> [InfoAboutWipedOrDeletedPersistedMessage] { + + let infos = try persistedMessageObjectIDs.compactMap { + try processMessageDeletionRequestRequestedFromCurrentDeviceOfThisOwnedIdentity(persistedMessageObjectID: $0, deletionType: deletionType) + } + + return infos + + } + + + func processMessageDeletionRequestRequestedFromCurrentDeviceOfThisOwnedIdentity(persistedMessageObjectID: NSManagedObjectID, deletionType: DeletionType) throws -> InfoAboutWipedOrDeletedPersistedMessage? { + + guard let context = self.managedObjectContext else { + throw ObvUICoreDataError.noContext + } + + guard let messageToDelete = try PersistedMessage.get(with: persistedMessageObjectID, within: context) else { return nil } + + let info: InfoAboutWipedOrDeletedPersistedMessage + + if let oneToOneDiscussion = messageToDelete.discussion as? PersistedOneToOneDiscussion { + + info = try oneToOneDiscussion.processMessageDeletionRequestRequestedFromCurrentDevice( + of: self, + messageToDelete: messageToDelete, + deletionType: deletionType) + + } else if let groupDiscussion = (messageToDelete.discussion as? PersistedGroupDiscussion) { + + if let group = groupDiscussion.contactGroup { + info = try group.processMessageDeletionRequestRequestedFromCurrentDevice( + of: self, + messageToDelete: messageToDelete, + deletionType: deletionType) + } else { + // Happens for disbanded groups + info = try groupDiscussion.processMessageDeletionRequestRequestedFromCurrentDevice( + of: self, + messageToDelete: messageToDelete, + deletionType: deletionType) + } + + } else if let groupDiscussion = messageToDelete.discussion as? PersistedGroupV2Discussion { + + if let group = groupDiscussion.group { + info = try group.processMessageDeletionRequestRequestedFromCurrentDevice( + of: self, + messageToDelete: messageToDelete, + deletionType: deletionType) + } else { + // Happens for disbanded groups + info = try groupDiscussion.processMessageDeletionRequestRequestedFromCurrentDevice( + of: self, + messageToDelete: messageToDelete, + deletionType: deletionType) + } + + } else { + + assertionFailure() + throw ObvUICoreDataError.couldNotFindDiscussion + + } + + return info + + } + + + public func processDiscussionDeletionRequestFromCurrentDeviceOfThisOwnedIdentity(discussionObjectID: TypeSafeManagedObjectID, deletionType: DeletionType) throws { + + guard let context = self.managedObjectContext else { + throw ObvUICoreDataError.noContext + } + + guard let discussion = try PersistedDiscussion.get(objectID: discussionObjectID.objectID, within: context) else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + switch try discussion.kind { + + case .oneToOne: + + guard let oneToOneDiscussion = discussion as? PersistedOneToOneDiscussion else { + assertionFailure() + throw ObvUICoreDataError.couldNotFindDiscussion + } + + try oneToOneDiscussion.processDiscussionDeletionRequestFromCurrentDevice(of: self, deletionType: deletionType) + if oneToOneDiscussion.status == .locked { + incrementBadgeCountForDiscussionsTab(by: -discussion.numberOfNewMessages) + } + + case .groupV1(withContactGroup: let group): + + if let group { + try group.processDiscussionDeletionRequestFromCurrentDevice(of: self, deletionType: deletionType) + } else { + // This happens when the group has been disbanded + incrementBadgeCountForDiscussionsTab(by: -discussion.numberOfNewMessages) + try discussion.processDiscussionDeletionRequestFromCurrentDevice(of: self, deletionType: deletionType) + } + + case .groupV2(withGroup: let group): + + if let group { + try group.processDiscussionDeletionRequestFromCurrentDevice(of: self, deletionType: deletionType) + } else { + // This happens when the group has been disbanded + incrementBadgeCountForDiscussionsTab(by: -discussion.numberOfNewMessages) + try discussion.processDiscussionDeletionRequestFromCurrentDevice(of: self, deletionType: deletionType) + } + + } + + } + +} + + +// MARK: - Processing discussion (all messages) remote wipe requests + +extension PersistedObvOwnedIdentity { + + /// Called when receiving a request to wipe a discussion from another owned device. + public func processThisOwnedIdentityRemoteRequestToWipeAllMessagesWithinDiscussion(deleteDiscussionJSON: DeleteDiscussionJSON, messageUploadTimestampFromServer: Date) throws { + + if let oneToOneIdentifier = deleteDiscussionJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + try oneToneDiscussion.processRemoteRequestToWipeAllMessagesWithinThisDiscussion(from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } else if let groupIdentifier = deleteDiscussionJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + try group.processRemoteRequestToWipeAllMessagesWithinThisGroupDiscussion(from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + case .v2(group: let group): + + try group.processRemoteRequestToWipeAllMessagesWithinThisGroupDiscussion(from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + } else { + + throw ObvUICoreDataError.couldNotFindDiscussion + + } + + } + + + /// When receiving a `DeleteDiscussionJSON` request, we need to request the engine to cancel any processing sent message. This method allows to determine which sent messages are still processing. + public func getObjectIDsOfPersistedMessageSentStillProcessing(deleteDiscussionJSON: DeleteDiscussionJSON) throws -> [TypeSafeManagedObjectID] { + + guard let context = self.managedObjectContext else { + throw ObvUICoreDataError.noContext + } + + let persistedDiscussionObjectID: NSManagedObjectID + + if let oneToOneIdentifier = deleteDiscussionJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + persistedDiscussionObjectID = oneToneDiscussion.objectID + + } else if let groupIdentifier = deleteDiscussionJSON.groupIdentifier { + + let groupDiscussion = try fetchGroupDiscussion(with: groupIdentifier) + persistedDiscussionObjectID = groupDiscussion.objectID + + } else { + + throw ObvUICoreDataError.couldNotFindDiscussion + + } + + let allProcessingMessageSent = try PersistedMessageSent.getAllProcessingWithinDiscussion(persistedDiscussionObjectID: persistedDiscussionObjectID, within: context) + return allProcessingMessageSent.map { $0.typedObjectID } + + } + +} + + + +// MARK: - Processing edit requests + +extension PersistedObvOwnedIdentity { + + public func processUpdateMessageRequestFromThisOwnedIdentity(updateMessageJSON: UpdateMessageJSON, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + if let oneToOneIdentifier = updateMessageJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + let updatedMessage = try oneToneDiscussion.processUpdateMessageRequest(updateMessageJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } else if let groupIdentifier = updateMessageJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + let updatedMessage = try group.processUpdateMessageRequest(updateMessageJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + case .v2(group: let group): + + let updatedMessage = try group.processUpdateMessageRequest(updateMessageJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } + + } else { + + throw ObvUICoreDataError.couldNotFindDiscussion + + } + + } + + + public func processLocalUpdateMessageRequestFromThisOwnedIdentity(persistedSentMessageObjectID: TypeSafeManagedObjectID, newTextBody: String?) throws -> PersistedMessage? { + + guard let context = self.managedObjectContext else { + throw ObvUICoreDataError.noContext + } + + guard let messageSent = try PersistedMessageSent.getPersistedMessageSent(objectID: persistedSentMessageObjectID, within: context) else { + throw ObvUICoreDataError.couldNotFindPersistedMessageSent + } + + guard let discussion = messageSent.discussion else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + switch try discussion.kind { + + case .oneToOne: + + guard let oneToOneDiscussion = discussion as? PersistedOneToOneDiscussion else { + assertionFailure() + throw ObvUICoreDataError.couldNotFindDiscussion + } + + try oneToOneDiscussion.processLocalUpdateMessageRequest(from: self, for: messageSent, newTextBody: newTextBody) + + case .groupV1(withContactGroup: let group): + + guard let group else { + throw ObvUICoreDataError.couldNotDetemineGroupV1 + } + + try group.processLocalUpdateMessageRequest(from: self, for: messageSent, newTextBody: newTextBody) + + case .groupV2(withGroup: let group): + + guard let group else { + throw ObvUICoreDataError.couldNotDetemineGroupV2 + } + + try group.processLocalUpdateMessageRequest(from: self, for: messageSent, newTextBody: newTextBody) + + } + + return messageSent + + } + + + // MARK: - Process reaction requests + + /// Called when the owned identity requested to set (or update) a reaction on a message from the current device. + public func processSetOrUpdateReactionOnMessageLocalRequestFromThisOwnedIdentity(messageObjectID: TypeSafeManagedObjectID, newEmoji: String?) throws -> PersistedMessage? { + + guard let context = self.managedObjectContext else { + throw ObvUICoreDataError.noContext + } + + guard let message = try PersistedMessage.get(with: messageObjectID, within: context) else { + throw ObvUICoreDataError.couldNotFindPersistedMessage + } + + guard let discussion = message.discussion else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + switch try discussion.kind { + + case .oneToOne: + + guard let oneToOneDiscussion = discussion as? PersistedOneToOneDiscussion else { + assertionFailure() + throw ObvUICoreDataError.couldNotFindDiscussion + } + + try oneToOneDiscussion.processSetOrUpdateReactionOnMessageLocalRequest(from: self, for: message, newEmoji: newEmoji) + + case .groupV1(withContactGroup: let group): + + guard let group else { + throw ObvUICoreDataError.couldNotDetemineGroupV1 + } + + try group.processSetOrUpdateReactionOnMessageLocalRequest(from: self, for: message, newEmoji: newEmoji) + + case .groupV2(withGroup: let group): + + guard let group else { + throw ObvUICoreDataError.couldNotDetemineGroupV2 + } + + try group.processSetOrUpdateReactionOnMessageLocalRequest(from: self, for: message, newEmoji: newEmoji) + + } + + return message + + + } + + + public func processSetOrUpdateReactionOnMessageRequestFromThisOwnedIdentity(reactionJSON: ReactionJSON, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + if let oneToOneIdentifier = reactionJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + let updatedMessage = try oneToneDiscussion.processSetOrUpdateReactionOnMessageRequest(reactionJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } else if let groupIdentifier = reactionJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + let updatedMessage = try group.processSetOrUpdateReactionOnMessageRequest(reactionJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + case .v2(group: let group): + + let updatedMessage = try group.processSetOrUpdateReactionOnMessageRequest(reactionJSON, receivedFrom: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + return updatedMessage + + } + + } else { + + throw ObvUICoreDataError.couldNotFindDiscussion + + } + + } + + + // MARK: - Process screen capture detections + + public func processLocalDetectionThatSensitiveMessagesWereCapturedByThisOwnedIdentity(discussionPermanentID: ObvManagedObjectPermanentID) throws -> (screenCaptureDetectionJSON: ScreenCaptureDetectionJSON, recipients: Set) { + + guard let context = self.managedObjectContext else { + throw ObvUICoreDataError.noContext + } + + guard let discussion = try PersistedDiscussion.getManagedObject(withPermanentID: discussionPermanentID, within: context) else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + let screenCaptureDetectionJSON: ScreenCaptureDetectionJSON + let recipients: Set + + switch try discussion.kind { + + case .oneToOne: + + guard let oneToOneDiscussion = discussion as? PersistedOneToOneDiscussion else { + assertionFailure() + throw ObvUICoreDataError.couldNotFindDiscussion + } + + try oneToOneDiscussion.processLocalDetectionThatSensitiveMessagesWereCapturedInThisDiscussion(by: self) + + screenCaptureDetectionJSON = ScreenCaptureDetectionJSON(oneToOneIdentifier: try oneToOneDiscussion.oneToOneIdentifier) + recipients = Set([oneToOneDiscussion.contactIdentity?.cryptoId].compactMap({$0})) + + case .groupV1(withContactGroup: let group): + + guard let group else { + throw ObvUICoreDataError.couldNotDetemineGroupV1 + } + + try group.processLocalDetectionThatSensitiveMessagesWereCapturedInThisDiscussion(by: self) + + screenCaptureDetectionJSON = ScreenCaptureDetectionJSON(groupV1Identifier: try group.getGroupId()) + recipients = Set(group.contactIdentities.compactMap({ $0.cryptoId })) + + case .groupV2(withGroup: let group): + + guard let group else { + throw ObvUICoreDataError.couldNotDetemineGroupV2 + } + + try group.processLocalDetectionThatSensitiveMessagesWereCapturedInThisDiscussion(by: self) + + screenCaptureDetectionJSON = ScreenCaptureDetectionJSON(groupV2Identifier: group.groupIdentifier) + recipients = Set(group.contactsAmongOtherPendingAndNonPendingMembers.map({ $0.cryptoId })) + + } + + return (screenCaptureDetectionJSON, recipients) + + } + + + public func processDetectionThatSensitiveMessagesWereCapturedByThisOwnedIdentity(screenCaptureDetectionJSON: ScreenCaptureDetectionJSON, messageUploadTimestampFromServer: Date) throws { + + if let oneToOneIdentifier = screenCaptureDetectionJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + try oneToneDiscussion.processDetectionThatSensitiveMessagesWereCaptured(screenCaptureDetectionJSON, from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } else if let groupIdentifier = screenCaptureDetectionJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + try group.processDetectionThatSensitiveMessagesWereCaptured(screenCaptureDetectionJSON, from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + case .v2(group: let group): + + try group.processDetectionThatSensitiveMessagesWereCaptured(screenCaptureDetectionJSON, from: self, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + } else { + + throw ObvUICoreDataError.couldNotFindDiscussion + + } + + } + + + // MARK: - Process requests for group v2 shared settings + + /// Returns our groupV2 discussion's shared settings in case we detect that it is pertinent to send them back to this contact + public func processQuerySharedSettingsRequestFromThisOwnedIdentity(querySharedSettingsJSON: QuerySharedSettingsJSON) throws -> (weShouldSendBackOurSharedSettings: Bool, discussionId: DiscussionIdentifier) { + + if let oneToOneIdentifier = querySharedSettingsJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + let discussionId = try oneToneDiscussion.identifier + + let weShouldSendBackOurSharedSettings = try oneToneDiscussion.processQuerySharedSettingsRequest(querySharedSettingsJSON: querySharedSettingsJSON) + + return (weShouldSendBackOurSharedSettings, discussionId) + + } else if let groupIdentifier = querySharedSettingsJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + let (weShouldSendBackOurSharedSettings, discussionId) = try group.processQuerySharedSettingsRequest(from: self, querySharedSettingsJSON: querySharedSettingsJSON) + + return (weShouldSendBackOurSharedSettings, discussionId) + + case .v2(group: let group): + + let (weShouldSendBackOurSharedSettings, discussionId) = try group.processQuerySharedSettingsRequest(from: self, querySharedSettingsJSON: querySharedSettingsJSON) + + return (weShouldSendBackOurSharedSettings, discussionId) + } + + } else { + + throw ObvUICoreDataError.couldNotFindDiscussion + + } + + } + + + // MARK: - Inserting system messages within discussions + + public func processContactIntroductionInvitationSentByThisOwnedIdentity(contactCryptoIdA: ObvCryptoId, contactCryptoIdB: ObvCryptoId) throws { + + try processIntroductionOfContact(contactCryptoIdA, to: contactCryptoIdB) + try processIntroductionOfContact(contactCryptoIdB, to: contactCryptoIdA) + + } + + + private func processIntroductionOfContact(_ contactCryptoIdA: ObvCryptoId, to contactCryptoIdB: ObvCryptoId) throws { + + guard let contactA = try PersistedObvContactIdentity.get(cryptoId: contactCryptoIdA, ownedIdentity: self, whereOneToOneStatusIs: .oneToOne) else { + throw ObvUICoreDataError.couldNotFindOneToOneContact + } + + guard let contactB = try PersistedObvContactIdentity.get(cryptoId: contactCryptoIdB, ownedIdentity: self, whereOneToOneStatusIs: .any) else { + throw ObvUICoreDataError.couldNotFindOneToOneContact + } + + guard let oneToOneDiscussion = contactA.oneToOneDiscussion else { + throw ObvUICoreDataError.couldNotDetermineTheOneToOneDiscussion + } + + try oneToOneDiscussion.oneToOneContactWasIntroducedTo(otherContact: contactB) + + } + +} + +// MARK: - Group v1 + +extension PersistedObvOwnedIdentity { + + /// Returns `true` iff the custom display name of the joined group had to be updated in database + public func setCustomNameOfJoinedGroupV1(groupIdentifier: GroupV1Identifier, to newGroupNameCustom: String?) throws -> Bool { + + guard let group = try PersistedContactGroupJoined.getContactGroup(groupIdentifier: groupIdentifier, ownedIdentity: self) as? PersistedContactGroupJoined else { + throw ObvUICoreDataError.couldNotFindGroupV1InDatabase(groupIdentifier: groupIdentifier) + } + + let groupNameCustomHadToBeUpdated = try group.setGroupNameCustom(to: newGroupNameCustom) + + return groupNameCustomHadToBeUpdated + + } + + + /// Returns `true` iff the personal note had to be updated in database + public func setPersonalNoteOnGroupV1(groupIdentifier: GroupV1Identifier, newText: String?) throws -> Bool { + + guard let group = try PersistedContactGroup.getContactGroup(groupIdentifier: groupIdentifier, ownedIdentity: self) else { + throw ObvUICoreDataError.couldNotFindGroupV1InDatabase(groupIdentifier: groupIdentifier) + } + + let noteHadToBeUpdatedInDatabase = group.setNote(to: newText) + + return noteHadToBeUpdatedInDatabase + + } + +} + + +// MARK: - Group v2 + +extension PersistedObvOwnedIdentity { + + public func createOrUpdateGroupV2(obvGroupV2: ObvGroupV2, createdByMe: Bool) throws -> PersistedGroupV2 { + + guard obvGroupV2.ownIdentity == self.cryptoId else { + assertionFailure() + throw ObvUICoreDataError.unexpectedOwnedCryptoId + } + + guard let context = self.managedObjectContext else { + assertionFailure() + throw ObvUICoreDataError.noContext + } + + let group = try PersistedGroupV2.createOrUpdate(obvGroupV2: obvGroupV2, createdByMe: createdByMe, within: context) + + return group + + } + + + /// Returns `true` iff the custom display name of the joined group had to be updated in database + public func setCustomNameOfGroupV2(groupIdentifier: Data, to newGroupNameCustom: String?) throws -> Bool { + + guard let group = try PersistedGroupV2.get(ownIdentity: self, appGroupIdentifier: groupIdentifier) else { + throw ObvUICoreDataError.couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + } + + let groupNameCustomHadToBeUpdated = try group.updateCustomNameWith(with: newGroupNameCustom) + + return groupNameCustomHadToBeUpdated + + } + + + public func updateCustomPhotoOfGroupV2(withGroupIdentifier groupIdentifier: Data, withPhoto newPhoto: UIImage?, within obvContext: ObvContext) throws { + + guard obvContext.context == self.managedObjectContext else { + assertionFailure() + throw ObvUICoreDataError.inappropriateContext + } + + guard let group = try PersistedGroupV2.get(ownIdentity: self, appGroupIdentifier: groupIdentifier) else { + throw ObvUICoreDataError.couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + } + + try group.updateCustomPhotoWithPhoto(newPhoto, within: obvContext) + + } + + + /// Returns `true` iff the personal note had to be updated in database + public func setPersonalNoteOnGroupV2(groupIdentifier: Data, newText: String?) throws -> Bool { + + guard let group = try PersistedGroupV2.get(ownIdentity: self, appGroupIdentifier: groupIdentifier) else { + throw ObvUICoreDataError.couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + } + + let noteHadToBeUpdatedInDatabase = group.setNote(to: newText) + + return noteHadToBeUpdatedInDatabase + + } + +} + + +// MARK: - Other methods for contacts + +extension PersistedObvOwnedIdentity { + + /// Returns `true` iff the personal note had to be updated in database + public func setPersonalNoteOnContact(contactCryptoId: ObvCryptoId, newText: String?) throws -> Bool { + + guard let contact = try PersistedObvContactIdentity.get(cryptoId: contactCryptoId, ownedIdentity: self, whereOneToOneStatusIs: .any) else { + throw ObvUICoreDataError.couldNotFindContact + } + + let noteHadToBeUpdatedInDatabase = contact.setNote(to: newText) + + return noteHadToBeUpdatedInDatabase + + } + +} + + +// MARK: - Utils + +extension PersistedObvOwnedIdentity { + + public func set(apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?) { + if self.apiKeyStatus != apiKeyStatus { + self.apiKeyStatus = apiKeyStatus + } + if self.apiPermissions != apiPermissions { + self.apiPermissions = apiPermissions + } + if self.apiKeyExpirationDate != apiKeyExpirationDate { + self.apiKeyExpirationDate = apiKeyExpirationDate + } + } + + + public func getPersistedMessageReceivedCorrespondingTo(limitedVisibilityMessageOpenedJSON: LimitedVisibilityMessageOpenedJSON) throws -> PersistedMessageReceived? { + + if let oneToOneIdentifier = limitedVisibilityMessageOpenedJSON.oneToOneIdentifier { + + let oneToneDiscussion = try fetchOneToOneDiscussion(with: oneToOneIdentifier) + return try oneToneDiscussion.getPersistedMessageReceivedCorrespondingTo(messageReference: limitedVisibilityMessageOpenedJSON.messageReference) + + } else if let groupIdentifier = limitedVisibilityMessageOpenedJSON.groupIdentifier { + + let group = try fetchGroup(with: groupIdentifier) + + switch group { + + case .v1(group: let group): + + return try group.discussion.getPersistedMessageReceivedCorrespondingTo(messageReference: limitedVisibilityMessageOpenedJSON.messageReference) + + case .v2(group: let group): + + guard let discussion = group.discussion else{ + throw ObvUICoreDataError.couldNotFindDiscussion + } + + return try discussion.getPersistedMessageReceivedCorrespondingTo(messageReference: limitedVisibilityMessageOpenedJSON.messageReference) + + } + + } else { + + throw ObvUICoreDataError.couldNotDetermineTheOneToOneDiscussion + + } + + } + + + public func isDiscussionActive(discussionId: DiscussionIdentifier) throws -> Bool { + + guard let discussion = try PersistedDiscussion.getPersistedDiscussion(ownedIdentity: self, discussionId: discussionId) else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + return discussion.status == .active + + } + +} + + +// MARK: - Handling badge counts for tabs + +extension PersistedObvOwnedIdentity { + + /// Refreshes the badge count for the discussions tab. Called during bootstrap. + /// Note that this **cannot** be called in a context including pending changes since those will **not** be taken into account (this is a limitation of Core Data, see https://developer.apple.com/documentation/coredata/nsfetchrequest/1506724-includespendingchanges). + public func refreshBadgeCountForDiscussionsTab() throws { + guard self.managedObjectContext != nil else { assertionFailure(); throw Self.makeError(message: "Cannot find context") } + let newNumberOfNewMessages = try PersistedDiscussion.countSumOfNewMessagesWithinUnmutedDiscussionsForOwnedIdentity(self) + let numberOfMutedDiscussionsMentioningOwnedIdentity = try PersistedDiscussion.countNumberOfMutedDiscussionsWithNewMessageMentioningOwnedIdentity(self) + let newBadgeCountForDiscussionsTab = newNumberOfNewMessages + numberOfMutedDiscussionsMentioningOwnedIdentity + if self.badgeCountForDiscussionsTab != newBadgeCountForDiscussionsTab { + self.badgeCountForDiscussionsTab = newBadgeCountForDiscussionsTab + } + } + + + /// Refreshes the badge count for the discussions tab. Called during bootstrap and each time a significant change occurs at the ``PersistedInvitation`` level. + /// To the contrary of ``PersistedObvOwnedIdentity.refreshBadgeCountForDiscussionsTab()``, this method can be called within the context that updated a ``PersistedInvitation`` since the count method we used does take pending changes into account. + public func refreshBadgeCountForInvitationsTab() throws { + guard self.managedObjectContext != nil else { assertionFailure(); throw Self.makeError(message: "Cannot find context") } + let newBadgeCountForInvitationsTab = try PersistedInvitation.computeBadgeCountForInvitationsTab(of: self) + if self.badgeCountForInvitationsTab != newBadgeCountForInvitationsTab { + self.badgeCountForInvitationsTab = newBadgeCountForInvitationsTab + } + } + + + /// Called exclusively by a persisted discussion of this owned identity, when it updates its own number of new messages, or when it updates the Boolean indicating that a new message mentions an this owned identity. + /// This method is required as ``PersistedObvOwnedIdentity.refreshBadgeCountForDiscussionsTab()`` cannot be called atomically with changes made at the ``PersistedDiscussion`` level. + func incrementBadgeCountForDiscussionsTab(by value: Int) { + guard value != 0 else { return } + self.badgeCountForDiscussionsTab = max(0, self.badgeCountForDiscussionsTab + value) + } + } -// MARK: - Hide/Unhide profile +// MARK: - Allow reading messages with limited visibility extension PersistedObvOwnedIdentity { - public func hideProfileWithPassword(_ password: String) throws { - guard password.count >= ObvUICoreDataConstants.minimumLengthOfPasswordForHiddenProfiles else { - throw Self.makeError(message: "Password is too short to hide profile") - } - guard try !anotherPasswordIfAPrefixOfThisPassword(password: password) else { - throw Self.makeError(message: "Another password is the prefix of this password") + public func userWantsToReadReceivedMessageWithLimitedVisibility(discussionId: DiscussionIdentifier, messageId: ReceivedMessageIdentifier, dateWhenMessageWasRead: Date, requestedOnAnotherOwnedDevice: Bool) throws -> InfoAboutWipedOrDeletedPersistedMessage? { + + guard let discussion = try PersistedDiscussion.getPersistedDiscussion(ownedIdentity: self, discussionId: discussionId) else { + throw ObvUICoreDataError.couldNotFindDiscussionWithId(discussionId: discussionId) } - let prng = ObvCryptoSuite.sharedInstance.prngService() - let newHiddenProfileSalt = prng.genBytes(count: ObvUICoreDataConstants.seedLengthForHiddenProfiles) - let newHiddenProfileHash = try Self.computehiddenProfileHash(password, salt: newHiddenProfileSalt) - self.hiddenProfileSalt = newHiddenProfileSalt - self.hiddenProfileHash = newHiddenProfileHash + + return try discussion.userWantsToReadReceivedMessageWithLimitedVisibility(messageId: messageId, dateWhenMessageWasRead: dateWhenMessageWasRead, requestedOnAnotherOwnedDevice: requestedOnAnotherOwnedDevice) + } - public func unhideProfile() { - self.hiddenProfileHash = nil - self.hiddenProfileSalt = nil + /// Returns an array of the received message identifiers that were read. + public func userWantsToAllowReadingAllReceivedMessagesReceivedThatRequireUserAction(discussionId: DiscussionIdentifier, dateWhenMessageWasRead: Date) throws -> ([InfoAboutWipedOrDeletedPersistedMessage], [ReceivedMessageIdentifier]) { + + guard let discussion = try PersistedDiscussion.getPersistedDiscussion(ownedIdentity: self, discussionId: discussionId) else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + return try discussion.userWantsToAllowReadingAllReceivedMessagesReceivedThatRequireUserAction(dateWhenMessageWasRead: dateWhenMessageWasRead) + } + - private func anotherPasswordIfAPrefixOfThisPassword(password: String) throws -> Bool { - guard let context = self.managedObjectContext else { throw Self.makeError(message: "Could not find context") } - let allHiddenOwnedIdentities = try Self.getAllHiddenOwnedIdentities(within: context) - for hiddenOwnedIdentity in allHiddenOwnedIdentities { - guard let hiddenProfileSalt = hiddenOwnedIdentity.hiddenProfileSalt, let hiddenProfileHash = hiddenOwnedIdentity.hiddenProfileHash else { assertionFailure(); continue } - for length in ObvUICoreDataConstants.minimumLengthOfPasswordForHiddenProfiles...password.count { - let prefix = String(password.prefix(length)) - let hashObtained = try Self.computehiddenProfileHash(prefix, salt: hiddenProfileSalt) - if hashObtained == hiddenProfileHash { - return true - } - } + public func getLimitedVisibilityMessageOpenedJSON(discussionId: DiscussionIdentifier, messageId: ReceivedMessageIdentifier) throws -> LimitedVisibilityMessageOpenedJSON { + + guard let discussion = try PersistedDiscussion.getPersistedDiscussion(ownedIdentity: self, discussionId: discussionId) else { + throw ObvUICoreDataError.couldNotFindDiscussion } - return false + + return try discussion.getLimitedVisibilityMessageOpenedJSON(messageId: messageId) } +} + + +// MARK: - Marking received messages as not new + +extension PersistedObvOwnedIdentity { - private static func computehiddenProfileHash(_ password: String, salt: Data) throws -> Data { - return try PBKDF.pbkdf2sha1(password: password, salt: salt, rounds: 1000, derivedKeyLength: 20) + public func markReceivedMessageAsNotNew(discussionId: DiscussionIdentifier, receivedMessageId: ReceivedMessageIdentifier, dateWhenMessageTurnedNotNew: Date) throws -> Date? { + + guard let discussion = try PersistedDiscussion.getPersistedDiscussion(ownedIdentity: self, discussionId: discussionId) else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + let lastReadMessageServerTimestamp = try discussion.markReceivedMessageAsNotNew(receivedMessageId: receivedMessageId, dateWhenMessageTurnedNotNew: dateWhenMessageTurnedNotNew) + + return lastReadMessageServerTimestamp + } + - - private func isUnlockedUsingPassword(_ password: String) throws -> Bool { - guard let hiddenProfileHash, let hiddenProfileSalt else { return false } - let computedHash = try Self.computehiddenProfileHash(password, salt: hiddenProfileSalt) - return hiddenProfileHash == computedHash + public func markAllMessagesAsNotNew(discussionId: DiscussionIdentifier, untilDate: Date?, dateWhenMessageTurnedNotNew: Date) throws -> Date? { + + guard let discussion = try PersistedDiscussion.getPersistedDiscussion(ownedIdentity: self, discussionId: discussionId) else { + throw ObvUICoreDataError.couldNotFindDiscussionWithId(discussionId: discussionId) + } + + let lastReadMessageServerTimestamp = try discussion.markAllMessagesAsNotNew(untilDate: untilDate, dateWhenMessageTurnedNotNew: dateWhenMessageTurnedNotNew) + + return lastReadMessageServerTimestamp + } + - - public static func passwordCanUnlockSomeHiddenOwnedIdentity(password: String, within context: NSManagedObjectContext) throws -> Bool { - guard password.count >= ObvUICoreDataConstants.minimumLengthOfPasswordForHiddenProfiles else { return false } - let hiddenOwnedIdentities = try Self.getAllHiddenOwnedIdentities(within: context) - for hiddenOwnedIdentity in hiddenOwnedIdentities { - if try hiddenOwnedIdentity.isUnlockedUsingPassword(password) { - return true - } + public func markAllMessagesAsNotNew(discussionId: DiscussionIdentifier, messageIds: [MessageIdentifier], dateWhenMessageTurnedNotNew: Date) throws -> Date? { + + guard let discussion = try PersistedDiscussion.getPersistedDiscussion(ownedIdentity: self, discussionId: discussionId) else { + throw ObvUICoreDataError.couldNotFindDiscussionWithId(discussionId: discussionId) } - return false + + let lastReadMessageServerTimestamp = try discussion.markAllMessagesAsNotNew(messageIds: messageIds, dateWhenMessageTurnedNotNew: dateWhenMessageTurnedNotNew) + + return lastReadMessageServerTimestamp + } - public var isLastUnhiddenOwnedIdentity: Bool { - get throws { - guard let context = self.managedObjectContext else { throw Self.makeError(message: "Could not find owned identity") } - if isHidden { return false } - let unhiddenOwnedIdentities = try PersistedObvOwnedIdentity.getAllNonHiddenOwnedIdentities(within: context) - assert(unhiddenOwnedIdentities.contains(self)) - return unhiddenOwnedIdentities.count <= 1 + public func getDiscussionReadJSON(discussionId: DiscussionIdentifier, lastReadMessageServerTimestamp: Date) throws -> DiscussionReadJSON { + + guard let discussion = try PersistedDiscussion.getPersistedDiscussion(ownedIdentity: self, discussionId: discussionId) else { + throw ObvUICoreDataError.couldNotFindDiscussionWithId(discussionId: discussionId) + } + + switch try discussion.kind { + case .oneToOne(withContactIdentity: let contact): + guard let contactCryptoId = contact?.cryptoId else { + throw ObvUICoreDataError.couldNotFindContact + } + return DiscussionReadJSON( + lastReadMessageServerTimestamp: lastReadMessageServerTimestamp, + oneToOneIdentifier: .init(ownedCryptoId: self.cryptoId, contactCryptoId: contactCryptoId)) + case .groupV1(withContactGroup: let group): + guard let groupV1Identifier = try group?.getGroupId() else { + throw ObvUICoreDataError.couldNotDetemineGroupV1 + } + return DiscussionReadJSON( + lastReadMessageServerTimestamp: lastReadMessageServerTimestamp, + groupV1Identifier: groupV1Identifier) + case .groupV2(withGroup: let group): + guard let groupV2Identifier = group?.groupIdentifier else { + throw ObvUICoreDataError.couldNotDetemineGroupV2 + } + return DiscussionReadJSON( + lastReadMessageServerTimestamp: lastReadMessageServerTimestamp, + groupV2Identifier: groupV2Identifier) } - } + } + } -// MARK: - Utils +// MARK: - Getting discussions extension PersistedObvOwnedIdentity { - public func set(apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?) { - self.apiKeyStatus = apiKeyStatus - self.apiPermissions = apiPermissions - self.apiKeyExpirationDate = apiKeyExpirationDate - } + public func getPersistedDiscussion(withDiscussionId discussionId: DiscussionIdentifier) throws -> PersistedDiscussion { + + guard let discussion = try PersistedDiscussion.getPersistedDiscussion(ownedIdentity: self, discussionId: discussionId) else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + return discussion + } + } -// MARK: - Handling badge counts for tabs +// MARK: - Getting messages objectIDs for refreshing them in the view context and other extension PersistedObvOwnedIdentity { - /// Refreshes the badge count for the discussions tab. Called during bootstrap. - /// Note that this **cannot** be called in a context including pending changes since those will **not** be taken into account (this is a limitation of Core Data, see https://developer.apple.com/documentation/coredata/nsfetchrequest/1506724-includespendingchanges). - public func refreshBadgeCountForDiscussionsTab() throws { - guard self.managedObjectContext != nil else { assertionFailure(); throw Self.makeError(message: "Cannot find context") } - let newNumberOfNewMessages = try PersistedDiscussion.countSumOfNewMessagesWithinUnmutedDiscussionsForOwnedIdentity(self) - let numberOfMutedDiscussionsMentioningOwnedIdentity = try PersistedDiscussion.countNumberOfMutedDiscussionsWithNewMessageMentioningOwnedIdentity(self) - let newBadgeCountForDiscussionsTab = newNumberOfNewMessages + numberOfMutedDiscussionsMentioningOwnedIdentity - if self.badgeCountForDiscussionsTab != newBadgeCountForDiscussionsTab { - self.badgeCountForDiscussionsTab = newBadgeCountForDiscussionsTab + public func getObjectIDOfReceivedMessage(discussionId: DiscussionIdentifier, messageId: ReceivedMessageIdentifier) throws -> NSManagedObjectID { + + guard let discussion = try PersistedDiscussion.getPersistedDiscussion(ownedIdentity: self, discussionId: discussionId) else { + throw ObvUICoreDataError.couldNotFindDiscussion } + + return try discussion.getObjectIDOfReceivedMessage(messageId: messageId) + } - /// Refreshes the badge count for the discussions tab. Called during bootstrap and each time a significant change occurs at the ``PersistedInvitation`` level. - /// To the contrary of ``PersistedObvOwnedIdentity.refreshBadgeCountForDiscussionsTab()``, this method can be called within the context that updated a ``PersistedInvitation`` since the count method we used does take pending changes into account. - public func refreshBadgeCountForInvitationsTab() throws { - guard self.managedObjectContext != nil else { assertionFailure(); throw Self.makeError(message: "Cannot find context") } - let newBadgeCountForInvitationsTab = try PersistedInvitation.computeBadgeCountForInvitationsTab(of: self) - if self.badgeCountForInvitationsTab != newBadgeCountForInvitationsTab { - self.badgeCountForInvitationsTab = newBadgeCountForInvitationsTab + public func getReceivedMessageTypedObjectID(discussionId: DiscussionIdentifier, receivedMessageId: ReceivedMessageIdentifier) throws -> TypeSafeManagedObjectID { + + guard let discussion = try PersistedDiscussion.getPersistedDiscussion(ownedIdentity: self, discussionId: discussionId) else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + return try discussion.getReceivedMessageTypedObjectID(receivedMessageId: receivedMessageId) + + } + + + public static func getDiscussionIdentifiers(from persistedDiscussionObjectID: TypeSafeManagedObjectID, within context: NSManagedObjectContext) throws -> (ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier) { + + guard let discussion = try PersistedDiscussion.get(objectID: persistedDiscussionObjectID.objectID, within: context) else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + guard let ownedIdentity = discussion.ownedIdentity else { + throw ObvUICoreDataError.couldNotFindOwnedIdentity } + + return (ownedIdentity.cryptoId, try discussion.identifier) + } + + public static func getDiscussionIdentifiers(from draftPermanentID: ObvManagedObjectPermanentID, within context: NSManagedObjectContext) throws -> (ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier) { + + guard let draft = try PersistedDraft.getManagedObject(withPermanentID: draftPermanentID, within: context) else { + throw ObvUICoreDataError.couldNotFindDraft + } + + let discussion = draft.discussion + + guard let ownedIdentity = discussion.ownedIdentity else { + throw ObvUICoreDataError.couldNotFindOwnedIdentity + } - /// Called exclusively by a persisted discussion of this owned identity, when it updates its own number of new messages, or when it updates the Boolean indicating that a new message mentions an this owned identity. - /// This method is required as ``PersistedObvOwnedIdentity.refreshBadgeCountForDiscussionsTab()`` cannot be called atomically with changes made at the ``PersistedDiscussion`` level. - func incrementBadgeCountForDiscussionsTab(by value: Int) { - guard value != 0 else { return } - self.badgeCountForDiscussionsTab = max(0, self.badgeCountForDiscussionsTab + value) + return (ownedIdentity.cryptoId, try discussion.identifier) + + } + + + public func getDiscussionObjectID(discussionId: DiscussionIdentifier) throws -> NSManagedObjectID { + + guard let discussion = try PersistedDiscussion.getPersistedDiscussion(ownedIdentity: self, discussionId: discussionId) else { + throw ObvUICoreDataError.couldNotFindDiscussion + } + + return discussion.objectID + } } @@ -435,6 +1899,12 @@ extension PersistedObvOwnedIdentity { ]) return value ? isHiddenPredicate : NSCompoundPredicate(notPredicateWithSubpredicate: isHiddenPredicate) } + static func whereIsActiveIs(_ isActive: Bool) -> NSPredicate { + NSPredicate(Key.isActive, is: isActive) + } + static func isKeycloakManaged(is value: Bool) -> NSPredicate { + NSPredicate(Key.isKeycloakManaged, is: value) + } } @@ -443,6 +1913,12 @@ extension PersistedObvOwnedIdentity { } + public static func deleteOwnedIdentity(ownedCryptoId: ObvCryptoId, within context: NSManagedObjectContext) throws { + guard let ownedIdentity = try get(cryptoId: ownedCryptoId, within: context) else { return } + try ownedIdentity.delete() + } + + static func getManagedObject(withPermanentID permanentID: ObvManagedObjectPermanentID, within context: NSManagedObjectContext) throws -> PersistedObvOwnedIdentity? { let request: NSFetchRequest = PersistedObvOwnedIdentity.fetchRequest() request.predicate = Predicate.withPermanentID(permanentID) @@ -483,6 +1959,26 @@ extension PersistedObvOwnedIdentity { } + public static func getCryptoIdsOfAllActiveOwnedIdentities(within context: NSManagedObjectContext) throws -> Set { + let request: NSFetchRequest = PersistedObvOwnedIdentity.fetchRequest() + request.predicate = Predicate.whereIsActiveIs(true) + request.propertiesToFetch = [Predicate.Key.identity.rawValue] + let ownedIdentities = try context.fetch(request) + return Set(ownedIdentities.map({ $0.cryptoId })) + } + + + public static func countCryptoIdsOfAllActiveNonHiddenNonKeycloakOwnedIdentities(within context: NSManagedObjectContext) throws -> Int { + let request: NSFetchRequest = PersistedObvOwnedIdentity.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.whereIsActiveIs(true), + Predicate.isHidden(false), + Predicate.isKeycloakManaged(is: false), + ]) + return try context.count(for: request) + } + + static func get(objectID: NSManagedObjectID, within context: NSManagedObjectContext) throws -> PersistedObvOwnedIdentity? { return try context.existingObject(with: objectID) as? PersistedObvOwnedIdentity } @@ -680,3 +2176,258 @@ extension PersistedObvOwnedIdentity: MentionableIdentity { return .owned(typedObjectID) } } + + +// MARK: - For snapshot purposes + +extension PersistedObvOwnedIdentity { + + var syncSnapshotNode: PersistedObvOwnedIdentitySyncSnapshotNode { + get throws { + guard let managedObjectContext else { throw ObvUICoreDataError.noContext } + return try .init(ownedCryptoId: cryptoId, + customDisplayName: customDisplayName, + contacts: contacts, + contactGroups: contactGroups, + contactGroupsV2: contactGroupsV2, + within: managedObjectContext) + } + } + +} + + +struct PersistedObvOwnedIdentitySyncSnapshotNode: ObvSyncSnapshotNode { + + private let domain: Set + private let customDisplayName: String? + private let contacts: [ObvCryptoId: PersistedObvContactIdentitySyncSnapshotNode] + private let groupsV1: [GroupV1Identifier: PersistedContactGroupSyncSnapshotNode] + private let groupsV2: [GroupV2Identifier: PersistedGroupV2SyncSnapshotNode] + private let pinnedDiscussions: [ObvSyncAtom.DiscussionIdentifier] // Part of the pinned domain + private let hasPinnedDiscussions: Bool? // Part of the pinned domain + private let orderedPinnedDiscussions: Bool // Always true under iOS + + let id = Self.generateIdentifier() + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case customDisplayName = "custom_name" + case contacts = "contacts" + case groupsV1 = "groups" + case groupsV2 = "groups2" + case pinnedDiscussions = "pinned_discussions" // not used as a domain + case pinned = "pinned" + case domain = "domain" + case orderedPinnedDiscussions = "pinned_sorted" + } + + private static let defaultDomain: Set = Set(CodingKeys.allCases.filter({ $0 != .domain && $0 != .pinnedDiscussions })) + + + init(ownedCryptoId: ObvCryptoId, customDisplayName: String?, contacts: Set, contactGroups: Set, contactGroupsV2: Set, within context: NSManagedObjectContext) throws { + + self.domain = Self.defaultDomain + + self.customDisplayName = customDisplayName + // contacts + do { + let keysAndValues: [(ObvCryptoId, PersistedObvContactIdentitySyncSnapshotNode)] = contacts.compactMap { ($0.cryptoId, $0.syncSnapshotNode) } + self.contacts = Dictionary(keysAndValues, uniquingKeysWith: { (first, _) in assertionFailure(); return first }) + } + // groupsV1 + do { + let keysAndValues: [(GroupV1Identifier, PersistedContactGroupSyncSnapshotNode)] = contactGroups.compactMap { + guard let groupV1Identifier = try? $0.getGroupV1Identifier() else { return nil } + return (groupV1Identifier, $0.syncSnapshotNode) } + self.groupsV1 = Dictionary(keysAndValues, uniquingKeysWith: { (first, _) in assertionFailure(); return first }) + } + // groupsV2 + do { + let keysAndValues: [(GroupV2Identifier, PersistedGroupV2SyncSnapshotNode)] = contactGroupsV2.compactMap { ($0.groupIdentifier, $0.syncSnapshotNode) } + self.groupsV2 = Dictionary(keysAndValues, uniquingKeysWith: { (first, _) in assertionFailure(); return first }) + } + // hasPinnedDiscussions and pinnedDiscussions + do { + let pinnedDiscussions = try PersistedDiscussion.getAllPinnedDiscussions(ownedCryptoId: ownedCryptoId, with: context) + self.hasPinnedDiscussions = !pinnedDiscussions.isEmpty + self.pinnedDiscussions = pinnedDiscussions.compactMap({ Self.getObvSyncAtomDiscussionIdentifierFrom(persistedDiscussion: $0) }) + } + + self.orderedPinnedDiscussions = true + + } + + + func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(customDisplayName, forKey: .customDisplayName) + // contacts + do { + let dict: [String: PersistedObvContactIdentitySyncSnapshotNode] = .init(contacts, keyMapping: { $0.getIdentity().base64EncodedString() }, valueMapping: { $0 }) + try container.encode(dict, forKey: .contacts) + } + // groupsV1 + do { + let dict: [String: PersistedContactGroupSyncSnapshotNode] = .init(groupsV1, keyMapping: { $0.description }, valueMapping: { $0 }) + try container.encode(dict, forKey: .groupsV1) + } + // groupsV2 + do { + let dict: [String: PersistedGroupV2SyncSnapshotNode] = .init(groupsV2, keyMapping: { $0.base64EncodedString() }, valueMapping: { $0 }) + try container.encode(dict, forKey: .groupsV2) + } + // pinned + try container.encode(hasPinnedDiscussions, forKey: .pinned) + try container.encode(pinnedDiscussions.map({ $0.obvEncode().rawData }), forKey: .pinnedDiscussions) + try container.encode(orderedPinnedDiscussions, forKey: .orderedPinnedDiscussions) + // domain + try container.encode(domain, forKey: .domain) + } + + + init(from decoder: Decoder) throws { + do { + let values = try decoder.container(keyedBy: CodingKeys.self) + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + self.customDisplayName = try values.decodeIfPresent(String.self, forKey: .customDisplayName) + // Decode contacts (the keys are the contact identities) + do { + let dict = try values.decodeIfPresent([String: PersistedObvContactIdentitySyncSnapshotNode].self, forKey: .contacts) ?? [:] + self.contacts = Dictionary(dict, keyMapping: { $0.base64EncodedToData?.identityToObvCryptoId }, valueMapping: { $0 }) + } + // Decode groupsV1 (the keys are GroupV1Identifier) + do { + let dict = try values.decodeIfPresent([String: PersistedContactGroupSyncSnapshotNode].self, forKey: .groupsV1) ?? [:] + self.groupsV1 = Dictionary(dict, keyMapping: { GroupV1Identifier($0) }, valueMapping: { $0 }) + } + // Decode groupsV2 (the keys are GroupV2.Identifier) + do { + let dict = try values.decodeIfPresent([String: PersistedGroupV2SyncSnapshotNode].self, forKey: .groupsV2) ?? [:] + self.groupsV2 = Dictionary(dict, keyMapping: { GroupV2Identifier(base64Encoded: $0) }, valueMapping: { $0 }) + } + // hasPinnedDiscussions and pinnedDiscussions + do { + self.hasPinnedDiscussions = try values.decodeIfPresent(Bool.self, forKey: .pinned) + self.orderedPinnedDiscussions = try values.decodeIfPresent(Bool.self, forKey: .orderedPinnedDiscussions) ?? false + let rawPinned = try values.decodeIfPresent([Data].self, forKey: .pinnedDiscussions) ?? [] + self.pinnedDiscussions = rawPinned + .compactMap({ ObvEncoded(withRawData: $0) }) + .compactMap({ ObvSyncAtom.DiscussionIdentifier($0) }) + } + } catch { + assertionFailure() + throw error + } + } + + + /// User the values of this node to udate the `PersistedObvOwnedIdentity` + /// - Parameter ownedIdentity: The `PersistedObvOwnedIdentity` instance to update + func useToUpdate(_ ownedIdentity: PersistedObvOwnedIdentity) { + + if domain.contains(.customDisplayName) { + _ = ownedIdentity.setOwnedCustomDisplayName(to: self.customDisplayName) + } + + if domain.contains(.contacts) { + contacts.forEach { (contactCryptoId, contactNode) in + guard let contact = try? PersistedObvContactIdentity.get(cryptoId: contactCryptoId, ownedIdentity: ownedIdentity, whereOneToOneStatusIs: .any) else { + assertionFailure() + return + } + contactNode.useToUpdate(contact) + } + } + + if domain.contains(.groupsV1) { + groupsV1.forEach { (groupId, groupNode) in + guard let group = try? PersistedContactGroup.getContactGroup(groupIdentifier: groupId, ownedIdentity: ownedIdentity) else { + assertionFailure() + return + } + groupNode.useToUpdate(group) + } + } + + if domain.contains(.groupsV2) { + groupsV2.forEach { (groupId, groupNode) in + guard let group = try? PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: groupId) else { + assertionFailure() + return + } + groupNode.useToUpdate(group) + } + } + + if domain.contains(.pinned) { + let discussionObjectIDs: [NSManagedObjectID] = pinnedDiscussions.compactMap { discussionIdentifier in + switch discussionIdentifier { + case .oneToOne(let contactCryptoId): + return try? PersistedOneToOneDiscussion.getPersistedOneToOneDiscussion(ownedIdentity: ownedIdentity, oneToOneDiscussionId: .contactCryptoId(contactCryptoId: contactCryptoId))?.objectID + case .groupV1(groupIdentifier: let groupIdentifier): + return try? PersistedGroupDiscussion.getPersistedGroupDiscussion(ownedIdentity: ownedIdentity, groupV1DiscussionId: .groupV1Identifier(groupV1Identifier: groupIdentifier))?.objectID + case .groupV2(let groupIdentifier): + return try? PersistedGroupV2Discussion.getPersistedGroupV2Discussion(ownedIdentity: ownedIdentity, groupV2DiscussionId: .groupV2Identifier(groupV2Identifier: groupIdentifier))?.objectID + } + } + assert(ownedIdentity.managedObjectContext != nil) + if let context = ownedIdentity.managedObjectContext { + _ = try? PersistedDiscussion.setPinnedDiscussions( + persistedDiscussionObjectIDs: discussionObjectIDs, + ordered: orderedPinnedDiscussions, + ownedCryptoId: ownedIdentity.cryptoId, + within: context) + } + } + + } + + + enum ObvError: Error { + case ownedIdentityDoesNotExist + case contextIsNil + } + + // Helpers + + private static func getObvSyncAtomDiscussionIdentifierFrom(persistedDiscussion: PersistedDiscussion) -> ObvSyncAtom.DiscussionIdentifier? { + guard let discussionKind = try? persistedDiscussion.kind else { assertionFailure(); return nil } + switch discussionKind { + case .oneToOne(withContactIdentity: let persistedContact): + guard let persistedContact else { assertionFailure(); return nil } + return .oneToOne(contactCryptoId: persistedContact.cryptoId) + case .groupV1(withContactGroup: let groupV1): + guard let groupV1 else { assertionFailure(); return nil } + guard let groupId = try? groupV1.getGroupId() else { assertionFailure(); return nil } + return .groupV1(groupIdentifier: groupId) + case .groupV2(withGroup: let groupV2): + guard let groupV2 else { assertionFailure(); return nil } + return .groupV2(groupIdentifier: groupV2.groupIdentifier) + } + + } + +} + + +// MARK: - Private Helpers + +private extension String { + + var base64EncodedToData: Data? { + guard let data = Data(base64Encoded: self) else { assertionFailure(); return nil } + return data + } + +} + + +private extension Data { + + var identityToObvCryptoId: ObvCryptoId? { + guard let cryptoId = try? ObvCryptoId(identity: self) else { assertionFailure(); return nil } + return cryptoId + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/Configuration/PersistedDiscussionLocalConfiguration+Backup.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/Configuration/PersistedDiscussionLocalConfiguration+Backup.swift index 935f7f5e..fa10096f 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/Configuration/PersistedDiscussionLocalConfiguration+Backup.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/Configuration/PersistedDiscussionLocalConfiguration+Backup.swift @@ -24,7 +24,7 @@ extension PersistedDiscussionConfigurationBackupItem { func updateExistingInstance(_ configuration: PersistedDiscussionLocalConfiguration) { - configuration.doSendReadReceipt = self.sendReadReceipt + _ = configuration.setDoSendReadReceipt(to: self.sendReadReceipt) if let muteNotificationsEndDate = self.muteNotificationsEndDate { configuration.setMuteNotificationsEndDate(with: muteNotificationsEndDate) } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/Configuration/PersistedDiscussionLocalConfiguration.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/Configuration/PersistedDiscussionLocalConfiguration.swift index 36675e6a..5f315bdf 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/Configuration/PersistedDiscussionLocalConfiguration.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/Configuration/PersistedDiscussionLocalConfiguration.swift @@ -22,7 +22,8 @@ import CoreData import os.log import ObvEngine import OlvidUtils -import struct ObvTypes.ObvCryptoId +import ObvSettings +import ObvTypes @objc(PersistedDiscussionLocalConfiguration) @@ -96,7 +97,7 @@ public final class PersistedDiscussionLocalConfiguration: NSManagedObject, ObvEr } } - public var doSendReadReceipt: Bool? { + public private(set) var doSendReadReceipt: Bool? { get { rawDoSendReadReceipt?.boolValue } @@ -106,6 +107,15 @@ public final class PersistedDiscussionLocalConfiguration: NSManagedObject, ObvEr } } + + /// Returns `true` iff the value had to be changed in database + func setDoSendReadReceipt(to newValue: Bool?) -> Bool { + guard doSendReadReceipt != newValue else { return false } + doSendReadReceipt = newValue + return true + } + + public var doFetchContentRichURLsMetadata: ObvMessengerSettings.Discussions.FetchContentRichURLsMetadataChoice? { get { guard let raw = rawDoFetchContentRichURLsMetadata else { return nil } @@ -488,3 +498,37 @@ extension PersistedDiscussionLocalConfiguration { self.muteNotificationsEndDate = muteNotificationsEndDate } } + + +// MARK: - For snapshot purposes + +extension PersistedDiscussionLocalConfiguration { + + var syncSnapshotNode: PersistedDiscussionLocalConfigurationSyncSnapshotItem { + .init(doSendReadReceipt: doSendReadReceipt) + } + +} + + +struct PersistedDiscussionLocalConfigurationSyncSnapshotItem: Codable, Hashable { + + private let doSendReadReceipt: Bool? + + init(doSendReadReceipt: Bool?) { + self.doSendReadReceipt = doSendReadReceipt + } + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case doSendReadReceipt = "send_read_receipt" + } + + // Synthesized implementation of encode(to encoder: Encoder) + + // Synthesized implementation of init(from decoder: Decoder) + + func useToUpdate(_ configuration: PersistedDiscussionLocalConfiguration) { + _ = configuration.setDoSendReadReceipt(to: doSendReadReceipt) + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/Configuration/PersistedDiscussionSharedConfiguration.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/Configuration/PersistedDiscussionSharedConfiguration.swift index 6907447d..272d7a8c 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/Configuration/PersistedDiscussionSharedConfiguration.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/Configuration/PersistedDiscussionSharedConfiguration.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,7 @@ import ObvEngine import ObvTypes import ObvCrypto import OlvidUtils +import ObvSettings @objc(PersistedDiscussionSharedConfiguration) @@ -73,33 +74,24 @@ public enum PersistedDiscussionSharedConfigurationValue { case readOnce(readOnce: Bool) case existenceDuration(existenceDuration: TimeInterval?) case visibilityDuration(visibilityDuration: TimeInterval?) -} - - -extension PersistedDiscussionSharedConfigurationValue { - - public func updatePersistedDiscussionSharedConfigurationValue(with configuration: PersistedDiscussionSharedConfiguration, initiatorAsOwnedCryptoId ownedCryptoId: ObvCryptoId) throws { - let newExpiration: ExpirationJSON + + public func toExpirationJSON(overriding config: PersistedDiscussionSharedConfiguration) -> ExpirationJSON { switch self { - case .readOnce(readOnce: let readOnce): - newExpiration = ExpirationJSON( - readOnce: readOnce, - visibilityDuration: configuration.visibilityDuration, - existenceDuration: configuration.existenceDuration) - case .existenceDuration(existenceDuration: let existenceDuration): - newExpiration = ExpirationJSON( - readOnce: configuration.readOnce, - visibilityDuration: configuration.visibilityDuration, - existenceDuration: existenceDuration) - case .visibilityDuration(visibilityDuration: let visibilityDuration): - newExpiration = ExpirationJSON( - readOnce: configuration.readOnce, - visibilityDuration: visibilityDuration, - existenceDuration: configuration.existenceDuration) + case .readOnce(let readOnce): + return ExpirationJSON(readOnce: readOnce, + visibilityDuration: config.visibilityDuration, + existenceDuration: config.existenceDuration) + case .existenceDuration(let existenceDuration): + return ExpirationJSON(readOnce: config.readOnce, + visibilityDuration: config.visibilityDuration, + existenceDuration: existenceDuration) + case .visibilityDuration(let visibilityDuration): + return ExpirationJSON(readOnce: config.readOnce, + visibilityDuration: visibilityDuration, + existenceDuration: config.existenceDuration) } - try configuration.replacePersistedDiscussionSharedConfiguration(with: newExpiration, initiator: .ownedIdentity(ownedCryptoId: ownedCryptoId)) } - + } @@ -138,200 +130,86 @@ extension PersistedDiscussionSharedConfiguration { self.visibilityDuration != other.visibilityDuration } + public enum Initiator { case ownedIdentity(ownedCryptoId: ObvCryptoId) case contact(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId, messageUploadTimestampFromServer: Date) case keycloak(lastModificationTimestamp: Date) } - public func replacePersistedDiscussionSharedConfiguration(with expirationJSON: ExpirationJSON, initiator: Initiator) throws { - - try ensureInitiatorIsAllowedToModifyThisSharedConfiguration(initiator: initiator) + func replacePersistedDiscussionSharedConfiguration(with expirationJSON: ExpirationJSON) throws -> Bool { + guard self.readOnce != expirationJSON.readOnce || self.existenceDuration != expirationJSON.existenceDuration || self.visibilityDuration != expirationJSON.visibilityDuration else { - return + let sharedSettingHadToBeUpdated = false + return sharedSettingHadToBeUpdated } self.readOnce = expirationJSON.readOnce self.existenceDuration = expirationJSON.existenceDuration self.visibilityDuration = expirationJSON.visibilityDuration self.version += 1 - // Insert a message into the discussion indicating that the shared settings - - do { - try insertSystemMessageIndicatingThatDiscussionSharedConfigurationWasUpdated(initiator: initiator) - } catch { - assertionFailure(error.localizedDescription) // In producation, continue anyway - } + let sharedSettingHadToBeUpdated = true + return sharedSettingHadToBeUpdated } - - - public func mergePersistedDiscussionSharedConfiguration(with remoteConfig: DiscussionSharedConfigurationJSON, initiator: Initiator) throws { - - try ensureInitiatorIsAllowedToModifyThisSharedConfiguration(initiator: initiator) - guard let discussion = self.discussion else { - throw Self.makeError(message: "Cannot find discussion. It may have been deleted recently.") - } - + + /// Exclusively called from ``PersistedDiscussion.mergeReceivedDiscussionSharedConfiguration(_:)``. Shall not be called from elsewhere. + func mergePersistedDiscussionSharedConfiguration(with remoteConfig: PersistedDiscussion.SharedConfiguration) throws -> (sharedSettingHadToBeUpdated: Bool, weShouldSendBackOurSharedSettings: Bool) { + + let weShouldSendBackOurSharedSettingsIfAllowedTo: Bool + let sharedSettingHadToBeUpdated: Bool + if remoteConfig.version < self.version { + // We ignore the received remote config - ObvMessengerCoreDataNotification.anOldDiscussionSharedConfigurationWasReceived(persistedDiscussionObjectID: discussion.objectID) - .postOnDispatchQueue() - return + sharedSettingHadToBeUpdated = false + weShouldSendBackOurSharedSettingsIfAllowedTo = true + } else if remoteConfig.version == self.version { - // The version numbers are identical. If the config are identical, we do nothing. - // Otherwise, we keep the "gcd" of the two configurations (the other party will do the same) - // Note that we intentionally do not change the version - guard self.readOnce != remoteConfig.expiration.readOnce || - self.existenceDuration != remoteConfig.expiration.existenceDuration || - self.visibilityDuration != remoteConfig.expiration.visibilityDuration else { - return + + // The version numbers are identical. + // We compute the pgcd of the two configs and replace our shared settings we this pgcd. + // Then, if our resulting shared settings are different from those we received, we send them back. + + let pgcdReadOnce = self.readOnce || remoteConfig.expiration.readOnce + let pgcdExistenceDuration = TimeInterval.optionalMin(self.existenceDuration, remoteConfig.expiration.existenceDuration) + let pgcdVisibilityDuration = TimeInterval.optionalMin(self.visibilityDuration, remoteConfig.expiration.visibilityDuration) + + if self.readOnce != pgcdReadOnce || self.existenceDuration != pgcdExistenceDuration || self.visibilityDuration != pgcdVisibilityDuration { + self.readOnce = pgcdReadOnce + self.existenceDuration = pgcdExistenceDuration + self.visibilityDuration = pgcdVisibilityDuration + sharedSettingHadToBeUpdated = true + } else { + sharedSettingHadToBeUpdated = false + } + + if self.readOnce != remoteConfig.expiration.readOnce || + self.existenceDuration != remoteConfig.expiration.existenceDuration || + self.visibilityDuration != remoteConfig.expiration.visibilityDuration { + weShouldSendBackOurSharedSettingsIfAllowedTo = true + } else { + weShouldSendBackOurSharedSettingsIfAllowedTo = false } - self.readOnce = self.readOnce || remoteConfig.expiration.readOnce - self.existenceDuration = TimeInterval.optionalMin(self.existenceDuration, remoteConfig.expiration.existenceDuration) - self.visibilityDuration = TimeInterval.optionalMin(self.visibilityDuration, remoteConfig.expiration.visibilityDuration) + } else { + // The remote config is more recent that ours, so we replace ours self.readOnce = remoteConfig.expiration.readOnce self.existenceDuration = remoteConfig.expiration.existenceDuration self.visibilityDuration = remoteConfig.expiration.visibilityDuration self.version = remoteConfig.version // This necessarily updates our version number + sharedSettingHadToBeUpdated = true + weShouldSendBackOurSharedSettingsIfAllowedTo = false + } - // Insert a message into the discussion indicating that the shared settings - - do { - try insertSystemMessageIndicatingThatDiscussionSharedConfigurationWasUpdated(initiator: initiator) - } catch { - assertionFailure(error.localizedDescription) // In producation, continue anyway - } - - } - - - private func insertSystemMessageIndicatingThatDiscussionSharedConfigurationWasUpdated(initiator: Initiator) throws { - - guard let managedObjectContext else { - throw Self.makeError(message: "Cannot find context") - } - - guard let discussion else { - throw Self.makeError(message: "Cannot find discussion") - } - - let optionalContactIdentity: PersistedObvContactIdentity? - let markAsRead: Bool - let messageUploadTimestampFromServer: Date? + return (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettingsIfAllowedTo) - switch initiator { - case .contact(ownedCryptoId: let ownedCryptoId, contactCryptoId: let contactCryptoId, messageUploadTimestampFromServer: let timestamp): - optionalContactIdentity = try PersistedObvContactIdentity.get(contactCryptoId: contactCryptoId, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: managedObjectContext) - markAsRead = false - messageUploadTimestampFromServer = timestamp - case .keycloak(lastModificationTimestamp: let timestamp): - optionalContactIdentity = nil - markAsRead = false - messageUploadTimestampFromServer = timestamp - case .ownedIdentity: - optionalContactIdentity = nil - markAsRead = true - messageUploadTimestampFromServer = nil - } - - try PersistedMessageSystem.insertUpdatedDiscussionSharedSettingsSystemMessage( - within: discussion, - optionalContactIdentity: optionalContactIdentity, - expirationJSON: self.toExpirationJSON(), - messageUploadTimestampFromServer: messageUploadTimestampFromServer, - markAsRead: markAsRead) - - } - - - private func ensureInitiatorIsAllowedToModifyThisSharedConfiguration(initiator: Initiator) throws { - - guard let discussion = self.discussion else { assertionFailure(); return } - - switch discussion.status { - - case .locked: - throw Self.makeError(message: "The discussion is locked") - - case .preDiscussion: - throw Self.makeError(message: "The discussion is a pre-discussion") - - case .active: - - switch try? discussion.kind { - - case .oneToOne(withContactIdentity: let contactIdentity): - switch initiator { - case .ownedIdentity(ownedCryptoId: let ownedCryptoId): - guard discussion.ownedIdentity?.cryptoId == ownedCryptoId else { - throw Self.makeError(message: "The initiator (owned identity) is not the owned identity of the one-to-one discussion") - } - case .contact(ownedCryptoId: let ownedCryptoId, contactCryptoId: let contactCryptoId, messageUploadTimestampFromServer: _): - guard discussion.ownedIdentity?.cryptoId == ownedCryptoId && contactIdentity?.cryptoId == contactCryptoId else { - throw Self.makeError(message: "The initiator is neither the contact or the owned identity of the one-to-one discussion") - } - case .keycloak: - throw Self.makeError(message: "The share configuration of a oneToOne discussion cannot be modified by keycloak") - } - - case .groupV1(withContactGroup: let contactGroup): - guard let contactGroup = contactGroup else { - throw Self.makeError(message: "Cannot find contact group") - } - switch initiator { - case .ownedIdentity(ownedCryptoId: let ownedCryptoId): - guard contactGroup.ownerIdentity == ownedCryptoId.getIdentity() else { - throw Self.makeError(message: "The initiator of the change is not the group owner") - } - case .contact(ownedCryptoId: let ownedCryptoId, contactCryptoId: let contactCryptoId, messageUploadTimestampFromServer: _): - guard contactGroup.ownerIdentity == contactCryptoId.getIdentity() && contactGroup.ownedIdentity?.cryptoId == ownedCryptoId else { - throw Self.makeError(message: "The initiator of the change is not the group owner") - } - case .keycloak: - throw Self.makeError(message: "The share configuration of a groupV1 discussion cannot be modified by keycloak") - } - - case .groupV2(withGroup: let group): - guard let group = group else { - throw Self.makeError(message: "Cannot find group v2") - } - switch initiator { - case .ownedIdentity(ownedCryptoId: let ownedCryptoId): - guard group.ownedIdentityIdentity == ownedCryptoId.getIdentity() else { - throw Self.makeError(message: "Unexpected owned identity") - } - guard group.ownedIdentityIsAllowedToChangeSettings else { - throw Self.makeError(message: "The initiator is not allowed to change settings") - } - case .contact(ownedCryptoId: let ownedCryptoId, contactCryptoId: let contactCryptoId, messageUploadTimestampFromServer: _): - guard group.ownedIdentityIdentity == ownedCryptoId.getIdentity() else { - throw Self.makeError(message: "Unexpected owned identity") - } - guard let initiatorAsMember = group.otherMembers.first(where: { $0.identity == contactCryptoId.getIdentity() }) else { - throw Self.makeError(message: "The initiator is not part of the group") - } - guard initiatorAsMember.isAllowedToChangeSettings else { - throw Self.makeError(message: "The initiator is not allowed to change settings") - } - case .keycloak: - guard group.keycloakManaged else { - throw Self.makeError(message: "A Keycloak server cannot change the configuration of a non-keycloak group") - } - } - - case .none: - assertionFailure() - throw Self.makeError(message: "Unknown discussion type") - } - } } @@ -410,7 +288,14 @@ extension PersistedDiscussionSharedConfiguration { let expiration = self.toExpirationJSON() switch try discussion?.kind { case .oneToOne, .none: - return DiscussionSharedConfigurationJSON(version: self.version, expiration: expiration) + guard let oneToOneIdentifier = try (discussion as? PersistedOneToOneDiscussion)?.oneToOneIdentifier else { + assertionFailure() + throw Self.makeError(message: "Could not determine oneToOneIdentifier") + } + return DiscussionSharedConfigurationJSON( + version: self.version, + expiration: expiration, + oneToOneIdentifier: oneToOneIdentifier) case .groupV1(withContactGroup: let contactGroup): guard let contactGroup = contactGroup else { throw Self.makeError(message: "Could not find contact group of group discussion") } let groupV1Identifier = try contactGroup.getGroupId() @@ -450,3 +335,63 @@ extension PersistedDiscussionSharedConfiguration { } } + + + +// MARK: - For snapshot purposes + +extension PersistedDiscussionSharedConfiguration { + + var syncSnapshotNode: PersistedDiscussionSharedConfigurationSyncSnapshotItem { + .init(version: version, + existenceDuration: existenceDuration, + visibilityDuration: visibilityDuration, + readOnce: readOnce) + } + +} + + +struct PersistedDiscussionSharedConfigurationSyncSnapshotItem: Codable, Hashable { + + private let version: Int + private let existenceDuration: TimeInterval? + private let visibilityDuration: TimeInterval? + private let readOnce: Bool + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case version = "version" + case existenceDuration = "existence_duration" + case visibilityDuration = "visibility_duration" + case readOnce = "read_once" + } + + + + init(version: Int, existenceDuration: TimeInterval?, visibilityDuration: TimeInterval?, readOnce: Bool) { + self.version = version + self.existenceDuration = existenceDuration + self.visibilityDuration = visibilityDuration + self.readOnce = readOnce + } + + + // Synthesized implementation of encode(to encoder: Encoder) + + init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + self.version = try container.decodeIfPresent(Int.self, forKey: .version) ?? 0 + self.existenceDuration = try container.decodeIfPresent(TimeInterval.self, forKey: .existenceDuration) + self.visibilityDuration = try container.decodeIfPresent(TimeInterval.self, forKey: .visibilityDuration) + self.readOnce = try container.decodeIfPresent(Bool.self, forKey: .readOnce) ?? false + } + + + func useToUpdate(_ configuration: PersistedDiscussionSharedConfiguration) { + configuration.setVersion(with: version) + configuration.setExistenceDuration(with: existenceDuration) + configuration.setVisibilityDuration(with: visibilityDuration) + configuration.setReadOnce(with: readOnce) + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedDiscussion.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedDiscussion.swift index e43c43a2..8b166698 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedDiscussion.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedDiscussion.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -21,7 +21,10 @@ import Foundation import CoreData import os.log import ObvTypes -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvEngine +import ObvSettings + @objc(PersistedDiscussion) public class PersistedDiscussion: NSManagedObject { @@ -45,8 +48,8 @@ public class PersistedDiscussion: NSManagedObject { @NSManaged public private(set) var aNewReceivedMessageDoesMentionOwnedIdentity: Bool // True iff a new received message has doesMentionOwnedIdentity set to True @NSManaged public private(set) var isArchived: Bool - @NSManaged var lastOutboundMessageSequenceNumber: Int - @NSManaged var lastSystemMessageSequenceNumber: Int + @NSManaged private var lastOutboundMessageSequenceNumber: Int + @NSManaged private var lastSystemMessageSequenceNumber: Int @NSManaged private var normalizedSearchKey: String? @NSManaged public private(set) var numberOfNewMessages: Int // Set to 0 when this discussion is muted (not to be used when displaying the number of new messages when entering the discussion) @NSManaged private var onChangeFlag: Int // Only used internally to trigger UI updates, transient @@ -54,7 +57,7 @@ public class PersistedDiscussion: NSManagedObject { @NSManaged private var rawPinnedIndex: NSNumber? @NSManaged private(set) var pinnedSectionKeyPath: String // Shall only be modified in the setter of pinnedIndex @NSManaged private var rawStatus: Int - @NSManaged private(set) var senderThreadIdentifier: UUID + @NSManaged private(set) var senderThreadIdentifier: UUID // Of the owned identity, on this device (it is different for the same owned identity on her other owned devices) @NSManaged public private(set) var timestampOfLastMessage: Date @NSManaged public private(set) var title: String @@ -66,11 +69,24 @@ public class PersistedDiscussion: NSManagedObject { @NSManaged public private(set) var localConfiguration: PersistedDiscussionLocalConfiguration @NSManaged public private(set) var messages: Set @NSManaged public private(set) var ownedIdentity: PersistedObvOwnedIdentity? // If nil, this entity is eventually cascade-deleted - @NSManaged private(set) var remoteDeleteAndEditRequests: Set @NSManaged public private(set) var sharedConfiguration: PersistedDiscussionSharedConfiguration // Other variables + /// 2023-07-17: This is the most appropriate identifier to use in, e.g., notifications + public var identifier: DiscussionIdentifier { + get throws { + switch try self.kind { + case .oneToOne: + return .oneToOne(id: .objectID(objectID: self.objectID)) + case .groupV1: + return .groupV1(id: .objectID(objectID: self.objectID)) + case .groupV2: + return .groupV2(id: .objectID(objectID: self.objectID)) + } + } + } + private var changedKeys = Set() public private(set) var status: Status { @@ -128,6 +144,34 @@ public class PersistedDiscussion: NSManagedObject { } } + + public func getLimitedVisibilityMessageOpenedJSON(for message: PersistedMessage) throws -> LimitedVisibilityMessageOpenedJSON { + guard self == message.discussion else { + throw ObvError.unexpectedDiscussionForMessage + } + guard let messageReference = message.toMessageReferenceJSON() else { + throw ObvError.couldNotConstructMessageReferenceJSON + } + switch try self.kind { + case .oneToOne: + guard let oneToOneIdentifier = try (self as? PersistedOneToOneDiscussion)?.oneToOneIdentifier else { + throw ObvError.couldNotDetermineDiscussionIdentifier + } + return LimitedVisibilityMessageOpenedJSON(messageReference: messageReference, oneToOneIdentifier: oneToOneIdentifier) + case .groupV1(withContactGroup: let contactGroup): + guard let groupId = try contactGroup?.getGroupId() else { + throw ObvError.couldNotDetermineDiscussionIdentifier + } + return LimitedVisibilityMessageOpenedJSON(messageReference: messageReference, groupV1Identifier: groupId) + case .groupV2(withGroup: let group): + guard let groupIdentifier = group?.groupIdentifier else { + throw ObvError.couldNotDetermineDiscussionIdentifier + } + return LimitedVisibilityMessageOpenedJSON(messageReference: messageReference, groupV2Identifier: groupIdentifier) + } + } + + public var discussionPermanentID: ObvManagedObjectPermanentID { ObvManagedObjectPermanentID(entityName: PersistedDiscussion.entityName, uuid: self.permanentUUID) } @@ -198,7 +242,7 @@ public class PersistedDiscussion: NSManagedObject { // MARK: - Initializer - convenience init(title: String, ownedIdentity: PersistedObvOwnedIdentity, forEntityName entityName: String, status: Status, shouldApplySharedConfigurationFromGlobalSettings: Bool, sharedConfigurationToKeep: PersistedDiscussionSharedConfiguration? = nil, localConfigurationToKeep: PersistedDiscussionLocalConfiguration? = nil, permanentUUIDToKeep: UUID?, draftToKeep: PersistedDraft?, pinnedIndexToKeep: Int?, timestampOfLastMessageToKeep: Date?) throws { + convenience init(title: String, ownedIdentity: PersistedObvOwnedIdentity, forEntityName entityName: String, status: Status, shouldApplySharedConfigurationFromGlobalSettings: Bool) throws { guard let context = ownedIdentity.managedObjectContext else { throw Self.makeError(message: "Could not find context") @@ -212,33 +256,28 @@ public class PersistedDiscussion: NSManagedObject { self.lastSystemMessageSequenceNumber = 0 self.normalizedSearchKey = nil self.numberOfNewMessages = 0 - self.permanentUUID = permanentUUIDToKeep ?? UUID() - self.rawPinnedIndex = pinnedIndexToKeep as? NSNumber - self.pinnedSectionKeyPath = (pinnedIndexToKeep == nil) ? PinnedSectionKeyPathValue.unpinned.rawValue : PinnedSectionKeyPathValue.pinned.rawValue + self.permanentUUID = UUID() + self.rawPinnedIndex = nil + self.pinnedSectionKeyPath = PinnedSectionKeyPathValue.unpinned.rawValue self.onChangeFlag = 0 self.senderThreadIdentifier = UUID() - self.timestampOfLastMessage = timestampOfLastMessageToKeep ?? Date() + self.timestampOfLastMessage = Date() self.title = title self.status = status self.aNewReceivedMessageDoesMentionOwnedIdentity = false - if sharedConfigurationToKeep != nil { - self.sharedConfiguration = sharedConfigurationToKeep! - } else { - let sharedConfiguration = try PersistedDiscussionSharedConfiguration(discussion: self) - if shouldApplySharedConfigurationFromGlobalSettings { - sharedConfiguration.setValuesUsingSettings() - } - self.sharedConfiguration = sharedConfiguration + let sharedConfiguration = try PersistedDiscussionSharedConfiguration(discussion: self) + if shouldApplySharedConfigurationFromGlobalSettings { + sharedConfiguration.setValuesUsingSettings() } + self.sharedConfiguration = sharedConfiguration - let localConfiguration = try (localConfigurationToKeep ?? PersistedDiscussionLocalConfiguration(discussion: self)) + let localConfiguration = try PersistedDiscussionLocalConfiguration(discussion: self) self.localConfiguration = localConfiguration self.sharedConfiguration = sharedConfiguration - self.draft = try draftToKeep ?? PersistedDraft(within: self) + self.draft = try PersistedDraft(within: self) self.messages = Set() self.ownedIdentity = ownedIdentity - self.remoteDeleteAndEditRequests = Set() } @@ -275,154 +314,930 @@ public class PersistedDiscussion: NSManagedObject { // MARK: Performing deletions - /// Deletes this discussion after making sure the `requester` is allowed to do so. If the `requester` is `nil`, this discussion is deleted without any check. This makes it possible to easily perform cleaning. - public func deleteDiscussion(requester: RequesterOfMessageDeletion?) throws { + private func deletePersistedDiscussion() throws { + guard let context = managedObjectContext else { + throw ObvError.noContext + } + context.delete(self) + } + + + /// This is expected to be called from the UI in order to determine if it can shows the global delete options for this discussion. + /// + /// This is implemented by creating a child context in which we simulated the global deletion of the discussion. This method returns `true` iff the deletion succeeds. + /// Of course, the child context is not saved to prevent any side-effect (view contexts are never saved anyway). + public var globalDeleteActionCanBeMadeAvailable: Bool { + guard let context = self.managedObjectContext else { + assertionFailure() + return false + } + guard context.concurrencyType == .mainQueueConcurrencyType else { + assertionFailure() + return false + } + + // We don't want to show that a global deletion is available when it makes no sense, e.g., for a group v2 discussion when we have no contact (i.e., discussion with self) and no other owned device + if let groupV2Discussion = self as? PersistedGroupV2Discussion, let group = groupV2Discussion.group, let ownedIdentity { + if group.otherMembers.isEmpty && ownedIdentity.devices.count < 2 { + return false + } + } - // Make sure the deletion is allowed + // The following code makes sure a call to a global deletion would succeed. + // We return true iff it is the case - if let requester = requester { - try throwIfRequesterIsNotAllowedToDeleteDiscussion(requester: requester) + let childViewContext = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType) + childViewContext.parent = context + guard let discussionInChildViewContext = try? PersistedDiscussion.get(objectID: self.objectID, within: childViewContext) else { assertionFailure(); return false } + guard let ownedIdentity = discussionInChildViewContext.ownedIdentity else { assertionFailure(); return false } + do { + try ownedIdentity.processDiscussionDeletionRequestFromCurrentDeviceOfThisOwnedIdentity(discussionObjectID: discussionInChildViewContext.typedObjectID, deletionType: .global) + return true + } catch { + return false } - - // The deletion is allowed, we can perform it now + } + + + private func setLastOutboundMessageSequenceNumber(to newLastOutboundMessageSequenceNumber: Int) { + if self.lastOutboundMessageSequenceNumber != newLastOutboundMessageSequenceNumber { + self.lastOutboundMessageSequenceNumber = newLastOutboundMessageSequenceNumber + } + } + + + func incrementLastOutboundMessageSequenceNumber() -> Int { + setLastOutboundMessageSequenceNumber(to: lastOutboundMessageSequenceNumber + 1) + return lastOutboundMessageSequenceNumber + } + + + private func setLastSystemMessageSequenceNumber(to newLastSystemMessageSequenceNumber: Int) { + if self.lastSystemMessageSequenceNumber != newLastSystemMessageSequenceNumber { + self.lastSystemMessageSequenceNumber = newLastSystemMessageSequenceNumber + } + } + + + func incrementLastSystemMessageSequenceNumber() -> Int { + self.setLastSystemMessageSequenceNumber(to: lastSystemMessageSequenceNumber + 1) + return lastSystemMessageSequenceNumber + } + + // MARK: - Status management + + func setStatus(to newStatus: Status) throws { + self.status = newStatus + } + + + // MARK: - Receiving discussion shared configurations + + /// We mark this method as `final` just because, at the time of writing, we don't need to override it in subclasses. + final func mergeReceivedDiscussionSharedConfiguration(_ remoteSharedConfiguration: SharedConfiguration) throws -> (sharedSettingHadToBeUpdated: Bool, weShouldSendBackOurSharedSettings: Bool) { - guard let context = self.managedObjectContext else { - throw Self.makeError(message: "Could not find context") + switch self.status { + + case .locked: + + throw ObvError.cannotChangeShareConfigurationOfLockedDiscussion + + case .preDiscussion: + + throw ObvError.cannotChangeShareConfigurationOfPreDiscussion + + case .active: + + let (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettingsIfAllowedTo) = try self.sharedConfiguration.mergePersistedDiscussionSharedConfiguration(with: remoteSharedConfiguration) + return (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettingsIfAllowedTo) + } - context.delete(self) } - /// This methods throws an error if the requester of the discussion deletion is not allowed to perform such a deletion. - /// - /// The `deletionType` parameter only makes sense when the requester is an owned identity, and the discussion is a group v2 discussion: - /// - for a `.local` deletion, deletion is always allowed - /// - for a `.global` deletion, we make sure the owned identity is allowed to perform a global deletion in the corresponding group - func throwIfRequesterIsNotAllowedToDeleteDiscussion(requester: RequesterOfMessageDeletion) throws { + func replaceReceivedDiscussionSharedConfiguration(with expiration: ExpirationJSON) throws -> Bool { + + switch self.status { + + case .locked: + throw ObvError.cannotChangeShareConfigurationOfLockedDiscussion + + case .preDiscussion: + throw ObvError.cannotChangeShareConfigurationOfPreDiscussion + + case .active: + let sharedSettingHadToBeUpdated = try self.sharedConfiguration.replacePersistedDiscussionSharedConfiguration(with: expiration) + return sharedSettingHadToBeUpdated + + } + + } + + + func insertSystemMessageIndicatingThatDiscussionSharedConfigurationWasUpdatedByOwnedIdentity(messageUploadTimestampFromServer: Date?) throws { - // Locked and preDiscussion can only be locally deleted by an owned identity + try PersistedMessageSystem.insertUpdatedDiscussionSharedSettingsSystemMessage( + within: self, + optionalContactIdentity: nil, + expirationJSON: self.sharedConfiguration.toExpirationJSON(), + messageUploadTimestampFromServer: messageUploadTimestampFromServer, + markAsRead: true) + + } + + + func insertSystemMessageIndicatingThatDiscussionSharedConfigurationWasUpdatedByContact(persistedContact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date?) throws { - switch status { - case .locked, .preDiscussion: - switch requester { - case .contact: - throw Self.makeError(message: "A contact cannot delete a locked or preDiscussion") - case .ownedIdentity(let ownedCryptoId, let deletionType): - guard let discussionOwnedCryptoId = ownedIdentity?.cryptoId else { - return // Rare case, we allow deletion - } - guard (discussionOwnedCryptoId == ownedCryptoId) else { - assertionFailure() - throw Self.makeError(message: "Unexpected owned identity for deleting this discussion") + try PersistedMessageSystem.insertUpdatedDiscussionSharedSettingsSystemMessage( + within: self, + optionalContactIdentity: persistedContact, + expirationJSON: self.sharedConfiguration.toExpirationJSON(), + messageUploadTimestampFromServer: messageUploadTimestampFromServer, + markAsRead: false) + + } + + + struct SharedConfiguration { + let version: Int + let expiration: ExpirationJSON + } + + + // MARK: - Processing wipe requests + + /// Called when receiving a wipe message request from a contact or from another owned device + func processWipeMessageRequest(of messagesToDelete: [MessageReferenceJSON], from requester: ObvCryptoId, messageUploadTimestampFromServer: Date) throws -> [InfoAboutWipedOrDeletedPersistedMessage] { + + switch self.status { + + case .locked: + + throw ObvError.aContactCannotWipeMessageFromLockedDiscussion + + case .preDiscussion: + + throw ObvError.aContactCannotWipeMessageFromPrediscussion + + case .active: + + let infosForSent = try self.processWipeMessageRequestForPersistedMessageSent( + among: messagesToDelete, + from: requester, + messageUploadTimestampFromServer: messageUploadTimestampFromServer) + let infosForReceived = try self.processWipeMessageRequestForPersistedMessageReceived( + among: messagesToDelete, + from: requester, + messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + let infos = infosForSent + infosForReceived + + return infos + + } + + } + + + private func processWipeMessageRequestForPersistedMessageSent(among messagesToDelete: [MessageReferenceJSON], from requesterCryptoId: ObvCryptoId, messageUploadTimestampFromServer: Date) throws -> [InfoAboutWipedOrDeletedPersistedMessage] { + + guard let ownedIdentity else { + throw ObvError.ownedIdentityIsNil + } + + // Get the sent messages to wipe + + var sentMessagesToWipe = [PersistedMessageSent]() + do { + let sentMessages = messagesToDelete + .filter({ $0.senderIdentifier == ownedIdentity.cryptoId.getIdentity() }) + for sentMessage in sentMessages { + if let persistedMessageSent = try PersistedMessageSent.get(senderSequenceNumber: sentMessage.senderSequenceNumber, + senderThreadIdentifier: sentMessage.senderThreadIdentifier, + ownedIdentity: sentMessage.senderIdentifier, + discussion: self), + !persistedMessageSent.isWiped { + sentMessagesToWipe.append(persistedMessageSent) + } else { + _ = try RemoteRequestSavedForLater.createWipeOrDeleteRequest( + requesterCryptoId: requesterCryptoId, + messageReference: sentMessage, + serverTimestamp: messageUploadTimestampFromServer, + discussion: self) } - switch deletionType { - case .local: - return // Allow deletion - case .global: - throw Self.makeError(message: "We cannot globally delete a locked or preDiscussion") + } + } + + // Wipe each message and notify on context change + + var infos = [InfoAboutWipedOrDeletedPersistedMessage]() + + for message in sentMessagesToWipe { + + do { + try message.wipeThisMessage(requesterCryptoId: requesterCryptoId) + } catch { + assertionFailure(error.localizedDescription) // In production, continue with next message + continue + } + + let info = InfoAboutWipedOrDeletedPersistedMessage( + kind: .wiped, + discussionPermanentID: self.discussionPermanentID, + messagePermanentID: message.messagePermanentID) + + infos.append(info) + + } + + return infos + + } + + + private func processWipeMessageRequestForPersistedMessageReceived(among messagesToDelete: [MessageReferenceJSON], from requesterCryptoId: ObvCryptoId, messageUploadTimestampFromServer: Date) throws -> [InfoAboutWipedOrDeletedPersistedMessage] { + + guard let ownedIdentity else { + throw ObvError.ownedIdentityIsNil + } + + // Get received messages to wipe. If a message cannot be found, save the request for later if `saveRequestIfMessageCannotBeFound` is true + + var receivedMessagesToWipe = [PersistedMessageReceived]() + do { + let receivedMessages = messagesToDelete + .filter({ $0.senderIdentifier != ownedIdentity.cryptoId.getIdentity() }) + for receivedMessage in receivedMessages { + if let persistedMessageReceived = try PersistedMessageReceived.get(senderSequenceNumber: receivedMessage.senderSequenceNumber, + senderThreadIdentifier: receivedMessage.senderThreadIdentifier, + contactIdentity: receivedMessage.senderIdentifier, + discussion: self), + !persistedMessageReceived.isWiped { + receivedMessagesToWipe.append(persistedMessageReceived) + } else { + _ = try RemoteRequestSavedForLater.createWipeOrDeleteRequest( + requesterCryptoId: requesterCryptoId, + messageReference: receivedMessage, + serverTimestamp: messageUploadTimestampFromServer, + discussion: self) } } + } + + var infos = [InfoAboutWipedOrDeletedPersistedMessage]() + + for message in receivedMessagesToWipe { + + do { + try message.wipeThisMessage(requesterCryptoId: requesterCryptoId) + } catch { + assertionFailure(error.localizedDescription) // In production, continue with next message + continue + } + + let info = InfoAboutWipedOrDeletedPersistedMessage( + kind: .wiped, + discussionPermanentID: self.discussionPermanentID, + messagePermanentID: message.messagePermanentID) + + infos.append(info) + + } + + return infos + + } + + + // MARK: - Processing discussion (all messages) remote delete requests + + func processRemoteRequestToWipeAllMessagesWithinThisDiscussion(from contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws { + + switch self.status { + + case .locked: + + throw ObvError.aContactCannotDeleteAllMessagesWithinLockedDiscussion + case .preDiscussion: + + throw ObvError.aContactCannotDeleteAllMessagesWithinPreDiscussion + case .active: - break // We need to consider the discussion kind to decide whether we should throw or not + + guard !self.messages.isEmpty else { + return + } + + self.messages.removeAll() + + do { + try self.insertSystemMessagesIfDiscussionIsEmpty(markAsRead: false, messageTimestamp: messageUploadTimestampFromServer) + _ = try PersistedMessageSystem(.discussionWasRemotelyWiped, optionalContactIdentity: contact, optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: self, timestamp: messageUploadTimestampFromServer) + } catch { + assertionFailure(error.localizedDescription) + } + } + + } + + + /// Called when receiving a wipe discussion request from another owned device. + func processRemoteRequestToWipeAllMessagesWithinThisDiscussion(from ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws { - // If we reach this point, we are considering an active discussion + // The owned identity can only globally delete a discussion when it is active. + switch status { + + case .locked: + + throw ObvError.ownedIdentityCannotGloballyDeleteLockedDiscussion + + case .preDiscussion: + + throw ObvError.ownedIdentityCannotGloballyDeletePrediscussion + + case .active: + + self.messages.removeAll() - switch try kind { + do { + try self.insertSystemMessagesIfDiscussionIsEmpty(markAsRead: false, messageTimestamp: messageUploadTimestampFromServer) + _ = try PersistedMessageSystem(.discussionWasRemotelyWiped, optionalContactIdentity: nil, optionalOwnedCryptoId: ownedIdentity.cryptoId, optionalCallLogItem: nil, discussion: self, timestamp: messageUploadTimestampFromServer) + } catch { + assertionFailure(error.localizedDescription) + } + + } + + } + + + // MARK: - Processing delete requests from the owned identity + + func processMessageDeletionRequestRequestedFromCurrentDevice(of ownedIdentity: PersistedObvOwnedIdentity, messageToDelete: PersistedMessage, deletionType: DeletionType) throws -> InfoAboutWipedOrDeletedPersistedMessage { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + guard messageToDelete.discussion == self else { + throw ObvError.unexpectedDiscussionForMessageToDelete + } + + // We can only globally delete a message from an active discussion + + switch deletionType { + case .local: + break + case .global: + switch self.status { + case .locked, .preDiscussion: + throw ObvError.cannotGloballyDeleteMessageFromLockedOrPrediscussion + case .active: + break + } + } + + let info = try messageToDelete.processMessageDeletionRequestRequestedFromCurrentDevice(deletionType: deletionType) + + return info + + } + + + func processDiscussionDeletionRequestFromCurrentDevice(of ownedIdentity: PersistedObvOwnedIdentity, deletionType: DeletionType) throws { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + // We can only globally delete a discussion from an active discussion + + switch deletionType { + case .local: + break + case .global: + switch self.status { + case .locked, .preDiscussion: + throw ObvError.cannotGloballyDeleteLockedOrPrediscussion + case .active: + break + } + } + + self.messages.removeAll() + + do { + try self.insertSystemMessagesIfDiscussionIsEmpty(markAsRead: true, messageTimestamp: Date()) + } catch { + assertionFailure(error.localizedDescription) + } + + switch self.status { + case .active, .preDiscussion: + try self.archive() + case .locked: + try self.deletePersistedDiscussion() + } + + } + + + // MARK: - Receiving messages and attachments from a contact or another owned device + + func createOrOverridePersistedMessageReceived(from contact: PersistedObvContactIdentity, obvMessage: ObvMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?, overridePreviousPersistedMessage: Bool) throws -> (discussionPermanentID: DiscussionPermanentID, attachmentFullyReceivedOrCancelledByServer: [ObvAttachment]) { + + // Try to insert a EndToEndEncryptedSystemMessage if the discussion is empty. + + try? self.insertSystemMessagesIfDiscussionIsEmpty(markAsRead: true, messageTimestamp: Date()) + + // If overridePreviousPersistedMessage is true, we update any previously stored message from DB. If no such message exists, we create it. + // If overridePreviousPersistedMessage is false, we make sure that no existing PersistedMessageReceived exists in DB. If this is the case, we create the message. + // Note that processing attachments requires overridePreviousPersistedMessage to be true + + let attachmentsFullyReceivedOrCancelledByServer: [ObvAttachment] + let createdOrUpdatedMessage: PersistedMessageReceived + + if overridePreviousPersistedMessage { + + os_log("Creating or updating a persisted message (overridePreviousPersistedMessage: %{public}@)", log: Self.log, type: .debug, overridePreviousPersistedMessage.description) + + (createdOrUpdatedMessage, attachmentsFullyReceivedOrCancelledByServer) = try PersistedMessageReceived.createOrUpdatePersistedMessageReceived( + obvMessage: obvMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + from: contact, + in: self) + + } else { + + // Make sure the message does not already exists in DB + + guard try PersistedMessageReceived.get(messageIdentifierFromEngine: obvMessage.messageIdentifierFromEngine, from: contact) == nil else { + return (self.discussionPermanentID, []) + } + + // We make sure that message has a body (for now, this message comes from the notification extension, and there is no point in creating a `PersistedMessageReceived` if there is no body. + + guard messageJSON.body?.isEmpty == false else { + return (self.discussionPermanentID, []) + } + + // Create the PersistedMessageReceived + + os_log("Creating a persisted message (overridePreviousPersistedMessage: %{public}@)", log: Self.log, type: .debug, overridePreviousPersistedMessage.description) + + (createdOrUpdatedMessage, attachmentsFullyReceivedOrCancelledByServer) = try PersistedMessageReceived.createPersistedMessageReceived( + obvMessage: obvMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + from: contact, + in: self) + + } + + do { + try RemoteRequestSavedForLater.applyRemoteRequestsSavedForLater(for: createdOrUpdatedMessage) + } catch { + assertionFailure(error.localizedDescription) // Continue anyway + } + + return (self.discussionPermanentID, attachmentsFullyReceivedOrCancelledByServer) + + } + + + func createPersistedMessageSentFromOtherOwnedDevice(from ownedIdentity: PersistedObvOwnedIdentity, obvOwnedMessage: ObvOwnedMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?) throws -> [ObvOwnedAttachment] { + + // Make sure the received message is not a read once message. If this is the case, we don't want to show the message on this (other) owned device + + if let expiration = messageJSON.expiration { + guard !expiration.readOnce else { + return obvOwnedMessage.attachments + } + } + + guard let context = self.managedObjectContext else { + throw ObvError.noContext + } + + // Try to insert a EndToEndEncryptedSystemMessage if the discussion is empty + + try? PersistedDiscussion.insertSystemMessagesIfDiscussionIsEmpty(discussionObjectID: self.objectID, markAsRead: true, within: context) + + // Make sure the message does not already exists in DB + + guard try PersistedMessageSent.getPersistedMessageSentFromOtherOwnedDevice(messageIdentifierFromEngine: obvOwnedMessage.messageIdentifierFromEngine, in: self) == nil else { + return [] + } + + // Create the PersistedMessageSent + + let (createdMessage, attachmentFullyReceivedOrCancelledByServer) = try PersistedMessageSent.createPersistedMessageSentFromOtherOwnedDevice( + obvOwnedMessage: obvOwnedMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + in: self) + + do { + try RemoteRequestSavedForLater.applyRemoteRequestsSavedForLater(for: createdMessage) + } catch { + assertionFailure(error.localizedDescription) // Continue anyway + } + + return attachmentFullyReceivedOrCancelledByServer + + } + + + // MARK: - Processing edit requests + + func processUpdateMessageRequest(_ updateMessageJSON: UpdateMessageJSON, receivedFromContactCryptoId contactCryptoId: ObvCryptoId, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + switch self.status { - case .oneToOne, .groupV1: + case .locked: + + throw ObvError.aMessageCannotBeUpdatedInLockedDiscussion + + case .preDiscussion: - // It is always ok to delete a oneToOne or a groupV1 discussion - return + throw ObvError.aMessageCannotBeUpdatedInPrediscussion + + case .active: + + // Since the request comes from a contact, we restrict the message search to received messages. + // If the message cannot be found, save the request for later. + + let messageToEdit = updateMessageJSON.messageToEdit - case .groupV2(withGroup: let group): - - guard let group = group else { + if let message = try PersistedMessageReceived.get(senderSequenceNumber: messageToEdit.senderSequenceNumber, + senderThreadIdentifier: messageToEdit.senderThreadIdentifier, + contactIdentity: messageToEdit.senderIdentifier, + discussion: self) { - // If the group cannot be found (which is unexpected), we allow the deletion of the discussion only if the request comes from an owned identity. - - switch requester { - case .ownedIdentity(ownedCryptoId: _, deletionType: let deletionType): - switch deletionType { - case .local: - return // Allow deletion - case .global: - throw Self.makeError(message: "Since we cannot find the group, we disallow global deletion by owned identity") - } - case .contact: - assertionFailure() - throw Self.makeError(message: "Since we cannot find the group, we disallow deletion by a contact") + guard message.contactIdentity?.cryptoId == contactCryptoId else { + throw ObvError.aContactRequestedUpdateOnMessageFromSomeoneElse } - + + try message.processUpdateReceivedMessageRequest( + newTextBody: updateMessageJSON.newTextBody, + newUserMentions: updateMessageJSON.userMentions, + messageUploadTimestampFromServer: messageUploadTimestampFromServer, + requester: contactCryptoId) + + return message + + } else { + + _ = try RemoteRequestSavedForLater.createEditRequest( + requesterCryptoId: contactCryptoId, + updateMessageJSON: updateMessageJSON, + serverTimestamp: messageUploadTimestampFromServer, + discussion: self) + + return nil + } - // For a group v2 discussion, we make sure the requester is either the owned identity or a member with the appropriate rights. + } - switch requester { + } + + + func processUpdateMessageRequest(_ updateMessageJSON: UpdateMessageJSON, receivedFromOwnedCryptoId ownedCryptoId: ObvCryptoId, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + guard self.ownedIdentity?.cryptoId == ownedCryptoId else { + throw ObvError.unexpectedOwnedIdentity + } + + switch self.status { + + case .locked: - case .ownedIdentity(ownedCryptoId: let ownedCryptoId, deletionType: let deletionType): + throw ObvError.aMessageCannotBeUpdatedInLockedDiscussion + + case .preDiscussion: + + throw ObvError.aMessageCannotBeUpdatedInPrediscussion + + case .active: + + // Since the request comes from an owned identity, we restrict the message search to sent messages. + // If the message cannot be found, save the request for later. + + let messageToEdit = updateMessageJSON.messageToEdit + + if let message = try PersistedMessageSent.get(senderSequenceNumber: messageToEdit.senderSequenceNumber, + senderThreadIdentifier: messageToEdit.senderThreadIdentifier, + ownedIdentity: messageToEdit.senderIdentifier, + discussion: self) { - guard (try group.ownCryptoId == ownedCryptoId) else { - assertionFailure() - throw Self.makeError(message: "Unexpected owned identity for deleting this discussion") - } - switch deletionType { - case .local: - return // Allow deletion - case .global: - guard group.ownedIdentityIsAllowedToRemoteDeleteAnything else { - throw Self.makeError(message: "Owned identity is not allowed to perform a global (remote) delete") - } - return // Allow deletion + guard message.discussion?.ownedIdentity?.cryptoId == ownedCryptoId else { + throw ObvError.unexpectedOwnedIdentity } - case .contact(let ownedCryptoId, let contactCryptoId, _): + try message.processUpdateSentMessageRequest( + newTextBody: updateMessageJSON.newTextBody, + newUserMentions: updateMessageJSON.userMentions, + messageUploadTimestampFromServer: messageUploadTimestampFromServer, + requester: ownedCryptoId) + + return message + + } else { + + _ = try RemoteRequestSavedForLater.createEditRequest( + requesterCryptoId: ownedCryptoId, + updateMessageJSON: updateMessageJSON, + serverTimestamp: messageUploadTimestampFromServer, + discussion: self) + + return nil + + } + + } + + } + + + func processLocalUpdateMessageRequest(from ownedIdentity: PersistedObvOwnedIdentity, for messageSent: PersistedMessageSent, newTextBody: String?) throws { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + guard messageSent.discussion == self else { + throw ObvError.unexpectedDiscussionForMessageToEdit + } + + switch self.status { + + case .locked: + + throw ObvError.aMessageCannotBeUpdatedInLockedDiscussion + + case .preDiscussion: + + throw ObvError.aMessageCannotBeUpdatedInPrediscussion + + case .active: + + try messageSent.replaceContentWith(newBody: newTextBody, newMentions: Set()) + + } + + } + + + // MARK: - Process reaction requests + + func processSetOrUpdateReactionOnMessageLocalRequest(from ownedIdentity: PersistedObvOwnedIdentity, for message: PersistedMessage, newEmoji: String?) throws { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + guard message.discussion == self else { + throw ObvError.unexpectedDiscussionForMessageToEdit + } + + switch self.status { + + case .locked: + + throw ObvError.aMessageCannotBeUpdatedInLockedDiscussion + + case .preDiscussion: + + throw ObvError.aMessageCannotBeUpdatedInPrediscussion + + case .active: + + try message.setReactionFromOwnedIdentity(withEmoji: newEmoji, messageUploadTimestampFromServer: nil) + + } + + } + + + func processSetOrUpdateReactionOnMessageRequest(_ reactionJSON: ReactionJSON, receivedFrom contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + switch self.status { + + case .locked: + + throw ObvError.aMessageCannotBeUpdatedInLockedDiscussion + + case .preDiscussion: + + throw ObvError.aMessageCannotBeUpdatedInPrediscussion + + case .active: + + let messageToEdit = reactionJSON.messageReference + + if let message = try PersistedMessageReceived.get(senderSequenceNumber: messageToEdit.senderSequenceNumber, + senderThreadIdentifier: messageToEdit.senderThreadIdentifier, + contactIdentity: messageToEdit.senderIdentifier, + discussion: self) { + + try message.setReactionFromContact(contact, withEmoji: reactionJSON.emoji, reactionTimestamp: messageUploadTimestampFromServer) + + return message + + } else if let message = try PersistedMessageSent.get(senderSequenceNumber: messageToEdit.senderSequenceNumber, + senderThreadIdentifier: messageToEdit.senderThreadIdentifier, + ownedIdentity: messageToEdit.senderIdentifier, + discussion: self) { + + try message.setReactionFromContact(contact, withEmoji: reactionJSON.emoji, reactionTimestamp: messageUploadTimestampFromServer) + + return message + + } else { + + _ = try RemoteRequestSavedForLater.createSetOrUpdateReactionRequest( + requesterCryptoId: contact.cryptoId, + reactionJSON: reactionJSON, + serverTimestamp: messageUploadTimestampFromServer, + discussion: self) + + return nil + + } + + } + + } + + + func processSetOrUpdateReactionOnMessageRequest(_ reactionJSON: ReactionJSON, receivedFrom ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + switch self.status { + + case .locked: + + throw ObvError.aMessageCannotBeUpdatedInLockedDiscussion + + case .preDiscussion: + + throw ObvError.aMessageCannotBeUpdatedInPrediscussion + + case .active: + + let messageToEdit = reactionJSON.messageReference + + if let message = try PersistedMessageReceived.get(senderSequenceNumber: messageToEdit.senderSequenceNumber, + senderThreadIdentifier: messageToEdit.senderThreadIdentifier, + contactIdentity: messageToEdit.senderIdentifier, + discussion: self) { + + try message.setReactionFromOwnedIdentity(withEmoji: reactionJSON.emoji, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return message + + } else if let message = try PersistedMessageSent.get(senderSequenceNumber: messageToEdit.senderSequenceNumber, + senderThreadIdentifier: messageToEdit.senderThreadIdentifier, + ownedIdentity: messageToEdit.senderIdentifier, + discussion: self) { + + try message.setReactionFromOwnedIdentity(withEmoji: reactionJSON.emoji, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return message + + } else { + + _ = try RemoteRequestSavedForLater.createSetOrUpdateReactionRequest( + requesterCryptoId: ownedIdentity.cryptoId, + reactionJSON: reactionJSON, + serverTimestamp: messageUploadTimestampFromServer, + discussion: self) + + return nil + + } + + } + + } + + + // MARK: - Process screen capture detections + + func processDetectionThatSensitiveMessagesWereCaptured(_ screenCaptureDetectionJSON: ScreenCaptureDetectionJSON, from contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws { + + switch self.status { + + case .locked: + + throw ObvError.aMessageCannotBeUpdatedInLockedDiscussion + + case .preDiscussion: + + throw ObvError.aMessageCannotBeUpdatedInPrediscussion + + case .active: + + _ = try PersistedMessageSystem.insertContactIdentityDidCaptureSensitiveMessages(within: self, contact: contact, timestamp: messageUploadTimestampFromServer) + + } + + } + + + func processDetectionThatSensitiveMessagesWereCaptured(_ screenCaptureDetectionJSON: ScreenCaptureDetectionJSON, from ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws { + + switch self.status { + + case .locked: + + throw ObvError.aMessageCannotBeUpdatedInLockedDiscussion + + case .preDiscussion: + + throw ObvError.aMessageCannotBeUpdatedInPrediscussion + + case .active: + + _ = try PersistedMessageSystem.insertOwnedIdentityDidCaptureSensitiveMessages(within: self, ownedCryptoId: ownedIdentity.cryptoId, timestamp: messageUploadTimestampFromServer) + + } + + } + + func processLocalDetectionThatSensitiveMessagesWereCapturedInThisDiscussion(by ownedIdentity: PersistedObvOwnedIdentity) throws { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + switch self.status { + + case .locked: - guard (try group.ownCryptoId == ownedCryptoId) else { - assertionFailure() - throw Self.makeError(message: "Unexpected owned identity associated to contact for deleting this discussion") - } - guard let member = group.otherMembers.first(where: { $0.identity == contactCryptoId.getIdentity() }) else { - throw Self.makeError(message: "The deletion requester is not part of the group") - } - guard member.isAllowedToRemoteDeleteAnything else { - assertionFailure() - throw Self.makeError(message: "The member is not allowed to delete this discussion") - } - return // Allow deletion - } + throw ObvError.aMessageCannotBeUpdatedInLockedDiscussion + + case .preDiscussion: + + throw ObvError.aMessageCannotBeUpdatedInPrediscussion + + case .active: + + _ = try PersistedMessageSystem.insertOwnedIdentityDidCaptureSensitiveMessages(within: self) } - + } +} + + +// MARK: - Process requests for this discussion shared settings + +extension PersistedDiscussion { - func requesterIsAllowedToDeleteDiscussion(requester: RequesterOfMessageDeletion) -> Bool { - do { - try throwIfRequesterIsNotAllowedToDeleteDiscussion(requester: requester) - } catch { + func processQuerySharedSettingsRequest(querySharedSettingsJSON: QuerySharedSettingsJSON) throws -> Bool { + + let sharedSettingsVersionKnownByContact = querySharedSettingsJSON.knownSharedSettingsVersion ?? Int.min + let sharedExpirationKnownByContact = querySharedSettingsJSON.knownSharedExpiration + + // Get the values known locally + + let sharedSettingsVersionKnownLocally = sharedConfiguration.version + let sharedExpirationKnownLocally: ExpirationJSON? + if sharedSettingsVersionKnownLocally >= 0 { + sharedExpirationKnownLocally = sharedConfiguration.toExpirationJSON() + } else { + sharedExpirationKnownLocally = nil + } + + // If the locally known values are identical to the values known to the contact, we are done, we do not need to answer the query + + guard sharedSettingsVersionKnownByContact <= sharedSettingsVersionKnownLocally || sharedExpirationKnownByContact != sharedExpirationKnownLocally else { return false } - return true - } - - - public var globalDeleteActionCanBeMadeAvailable: Bool { - guard let ownedCryptoId = ownedIdentity?.cryptoId else { return false } - let requester = RequesterOfMessageDeletion.ownedIdentity(ownedCryptoId: ownedCryptoId, deletionType: .global) - return requesterIsAllowedToDeleteDiscussion(requester: requester) - } - - - // MARK: - Status management - func setStatus(to newStatus: Status) throws { - self.status = newStatus - } + // If we reach this point, something differed between the shared settings of our contact and ours -} + var weShouldSentBackTheSharedSettings = false + if sharedSettingsVersionKnownLocally > sharedSettingsVersionKnownByContact { + weShouldSentBackTheSharedSettings = true + } else if sharedSettingsVersionKnownLocally == sharedSettingsVersionKnownByContact && sharedExpirationKnownByContact != sharedExpirationKnownLocally { + weShouldSentBackTheSharedSettings = true + } + return weShouldSentBackTheSharedSettings + + } + +} // MARK: - Utility methods for PersistedSystemMessage showing the number of new messages @@ -590,20 +1405,50 @@ extension PersistedDiscussion { } - public static func setPinnedDiscussions(persistedDiscussionObjectIDs: [NSManagedObjectID], ownedCryptoId: ObvCryptoId, within context: NSManagedObjectContext) throws { + /// Returns `true` iff at least one discussion's pinnedIndex was updated in database + public static func setPinnedDiscussions(persistedDiscussionObjectIDs: [NSManagedObjectID], ordered: Bool, ownedCryptoId: ObvCryptoId, within context: NSManagedObjectContext) throws -> Bool { + + let pinnedDiscussionBeforeUpdate = try PersistedDiscussion.getAllPinnedDiscussions(ownedCryptoId: ownedCryptoId, with: context).map({ $0.objectID }) + + let orderedObjectIDsOfPinnedDiscussions: [NSManagedObjectID] + + if ordered { + + orderedObjectIDsOfPinnedDiscussions = persistedDiscussionObjectIDs + + } else { + + // This happens when receiving a list of pinned discussions from an Android device, where the pinned discussion behaviour is different (they are not sorted) + + let objectIDsOfCurrentlyPinnedDiscussions = try Self.getObjectIDsOfAllPinnedDiscussions(ownedCryptoId: ownedCryptoId, with: context) + let setOfReceivedPinnedDiscussions = Set(persistedDiscussionObjectIDs) + let objectIDsToKeepPinned = objectIDsOfCurrentlyPinnedDiscussions.filter({ setOfReceivedPinnedDiscussions.contains($0) }) + let setOfObjectIDsToKeepPinned = Set(objectIDsToKeepPinned) + let objectIDsToAdd = persistedDiscussionObjectIDs.filter({ !setOfObjectIDsToKeepPinned.contains($0) }) + orderedObjectIDsOfPinnedDiscussions = objectIDsToKeepPinned + objectIDsToAdd + + } try removePinnedFromPinnedDiscussionsForOwnedIdentity(ownedCryptoId, within: context) - let retrievedDiscussions = try persistedDiscussionObjectIDs + let retrievedDiscussions = try orderedObjectIDsOfPinnedDiscussions .compactMap({ try PersistedDiscussion.get(objectID: $0, within: context) }) .filter({ $0.ownedIdentity?.cryptoId == ownedCryptoId }) - assert(retrievedDiscussions.count == persistedDiscussionObjectIDs.count) + assert(retrievedDiscussions.count == orderedObjectIDsOfPinnedDiscussions.count) for (index, discussion) in retrievedDiscussions.enumerated() { - discussion.pinnedIndex = index + if discussion.pinnedIndex != index { + discussion.pinnedIndex = index + } } + let pinnedDiscussionAfterUpdate = try PersistedDiscussion.getAllPinnedDiscussions(ownedCryptoId: ownedCryptoId, with: context).map({ $0.objectID }) + + let atLeastOnePinnedIndexWasChanged = pinnedDiscussionBeforeUpdate != pinnedDiscussionAfterUpdate + + return atLeastOnePinnedIndexWasChanged + } } @@ -622,9 +1467,9 @@ extension PersistedDiscussion { public func insertSystemMessagesIfDiscussionIsEmpty(markAsRead: Bool, messageTimestamp: Date) throws { guard self.messages.isEmpty else { return } - let systemMessage = try PersistedMessageSystem(.discussionIsEndToEndEncrypted, optionalContactIdentity: nil, optionalCallLogItem: nil, discussion: self, timestamp: messageTimestamp) + let systemMessage = try PersistedMessageSystem(.discussionIsEndToEndEncrypted, optionalContactIdentity: nil, optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: self, timestamp: messageTimestamp) if markAsRead { - systemMessage.status = .read + systemMessage.markAsRead() } insertUpdatedDiscussionSharedSettingsSystemMessageIfRequired(markAsRead: markAsRead) } @@ -790,18 +1635,40 @@ extension PersistedDiscussion { guard self.normalizedSearchKey != newNormalizedSearchKey else { return } self.normalizedSearchKey = newNormalizedSearchKey } + + + func getPersistedMessageReceivedCorrespondingTo(messageReference: MessageReferenceJSON) throws -> PersistedMessageReceived? { + return try PersistedMessageReceived.get( + senderSequenceNumber: messageReference.senderSequenceNumber, + senderThreadIdentifier: messageReference.senderThreadIdentifier, + contactIdentity: messageReference.senderIdentifier, + discussion: self) + } + + + public static func getIdentifiers(for discussionPermanentID: DiscussionPermanentID, within context: NSManagedObjectContext) throws -> (ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier) { + + guard let discussion = try PersistedDiscussion.getManagedObject(withPermanentID: discussionPermanentID, within: context) else { + throw ObvError.couldNotDetermineDiscussionIdentifier + } + + guard let ownedCryptoId = discussion.ownedIdentity?.cryptoId else { + throw ObvError.ownedIdentityIsNil + } + + let discussionId = try discussion.identifier + + return (ownedCryptoId, discussionId) + + } + } + // MARK: - Retention related methods extension PersistedDiscussion { - public func sendNotificationIndicatingThatAnOldDiscussionSharedConfigurationWasReceived() { - ObvMessengerCoreDataNotification.anOldDiscussionSharedConfigurationWasReceived(persistedDiscussionObjectID: self.objectID) - .postOnDispatchQueue() - } - - /// If `nil`, no message should be deleted because of time retention. Otherwise, the return /// date is the limit date for retention. /// @@ -874,7 +1741,7 @@ extension PersistedDiscussion { public func unarchiveAndUpdateTimestampOfLastMessage() { unarchive() - timestampOfLastMessage = Date() + resetTimestampOfLastMessageIfCurrentValueIsEarlierThan(Date()) } public func archive() throws { @@ -882,8 +1749,7 @@ extension PersistedDiscussion { guard !isArchived else { return } isArchived = true - try PersistedMessageReceived.markAllAsNotNew(within: self) - try PersistedMessageSystem.markAllAsNotNew(within: self) + _ = try markAllMessagesAsNotNew(untilDate: nil, dateWhenMessageTurnedNotNew: Date()) self.pinnedIndex = nil @@ -891,6 +1757,200 @@ extension PersistedDiscussion { } + +// MARK: - Allow reading messages with limited visibility + +extension PersistedDiscussion { + + func userWantsToReadReceivedMessageWithLimitedVisibility(messageId: ReceivedMessageIdentifier, dateWhenMessageWasRead: Date, requestedOnAnotherOwnedDevice: Bool) throws -> InfoAboutWipedOrDeletedPersistedMessage? { + + guard let receivedMessage = try PersistedMessageReceived.getPersistedMessageReceived(discussion: self, messageId: messageId) else { + throw ObvError.couldNotFindMessage + } + + let infos = try receivedMessage.userWantsToReadThisReceivedMessageWithLimitedVisibility(dateWhenMessageWasRead: dateWhenMessageWasRead, requestedOnAnotherOwnedDevice: requestedOnAnotherOwnedDevice) + + return infos + + } + + + /// Returns an array of the received message identifiers that were read + func userWantsToAllowReadingAllReceivedMessagesReceivedThatRequireUserAction(dateWhenMessageWasRead: Date) throws -> ([InfoAboutWipedOrDeletedPersistedMessage], [ReceivedMessageIdentifier]) { + + // Since this method is expected to be called for implementing the discussion auto-read feature, we check whether autoRead is `true` + + guard self.autoRead else { return ([], []) } + + let receivedMessagesThatRequireUserActionForReading = try PersistedMessageReceived.getAllReceivedMessagesThatRequireUserActionForReading(discussion: self) + + var identifiersOfReadReceivedMessages = [ReceivedMessageIdentifier]() + var allInfos = [InfoAboutWipedOrDeletedPersistedMessage]() + + for receivedMessage in receivedMessagesThatRequireUserActionForReading { + + // Check that the message ephemerality is at least that of the discussion, otherwise, do not auto read + + guard receivedMessage.ephemeralityIsAtLeastAsPermissiveThanDiscussionSharedConfiguration else { + continue + } + + let infos = try receivedMessage.userWantsToReadThisReceivedMessageWithLimitedVisibility(dateWhenMessageWasRead: dateWhenMessageWasRead, requestedOnAnotherOwnedDevice: false) + + if let infos { + allInfos.append(infos) + } + identifiersOfReadReceivedMessages.append(receivedMessage.receivedMessageIdentifier) + + } + + return (allInfos, identifiersOfReadReceivedMessages) + + } + + + + func getLimitedVisibilityMessageOpenedJSON(messageId: ReceivedMessageIdentifier) throws -> LimitedVisibilityMessageOpenedJSON { + + guard let receivedMessage = try PersistedMessageReceived.getPersistedMessageReceived(discussion: self, messageId: messageId) else { + throw ObvError.couldNotFindMessage + } + + guard let ownedCryptoId = ownedIdentity?.cryptoId else { + throw ObvError.ownedIdentityIsNil + } + + let messageReference = receivedMessage.toReceivedMessageReferenceJSON() + + switch try kind { + case .oneToOne(withContactIdentity: let contactIdentity): + guard let contactCryptoId = contactIdentity?.cryptoId else { + throw ObvError.contactIdentityIsNil + } + return .init(messageReference: messageReference, + oneToOneIdentifier: .init( + ownedCryptoId: ownedCryptoId, + contactCryptoId: contactCryptoId)) + case .groupV1(withContactGroup: let group): + guard let group else { + throw ObvError.groupIsNil + } + return .init(messageReference: messageReference, + groupV1Identifier: try group.getGroupId()) + case .groupV2(withGroup: let group): + guard let group else { + throw ObvError.groupIsNil + } + return .init(messageReference: messageReference, + groupV2Identifier: group.groupIdentifier) + } + + } + +} + + +// MARK: - Marking received messages as not new + +extension PersistedDiscussion { + + func markReceivedMessageAsNotNew(receivedMessageId: ReceivedMessageIdentifier, dateWhenMessageTurnedNotNew: Date) throws -> Date? { + + guard let receivedMessage = try PersistedMessageReceived.getPersistedMessageReceived(discussion: self, messageId: receivedMessageId) else { + throw ObvError.couldNotFindMessage + } + + let lastReadMessageServerTimestamp = try receivedMessage.markAsNotNew(dateWhenMessageTurnedNotNew: dateWhenMessageTurnedNotNew) + + return lastReadMessageServerTimestamp + + } + + + func markAllMessagesAsNotNew(untilDate: Date?, dateWhenMessageTurnedNotNew: Date) throws -> Date? { + + let lastReadReceivedMessageServerTimestamp: Date? + if let untilDate { + lastReadReceivedMessageServerTimestamp = try PersistedMessageReceived.markAllAsNotNew(within: self, untilDate: untilDate, dateWhenMessageTurnedNotNew: dateWhenMessageTurnedNotNew) + } else { + lastReadReceivedMessageServerTimestamp = try PersistedMessageReceived.markAllAsNotNew(within: self, dateWhenMessageTurnedNotNew: dateWhenMessageTurnedNotNew) + } + let lastReadSystemMessageServerTimestamp = try PersistedMessageSystem.markAllAsNotNew(within: self, untilDate: untilDate) + + switch (lastReadReceivedMessageServerTimestamp, lastReadSystemMessageServerTimestamp) { + case (.some(let date1), .some(let date2)): + return max(date1, date2) + case (.some(let date), .none): + return date + case (.none, .some(let date)): + return date + case (.none, .none): + return nil + } + + } + + + func markAllMessagesAsNotNew(messageIds: [MessageIdentifier], dateWhenMessageTurnedNotNew: Date) throws -> Date? { + + guard !messageIds.isEmpty else { return nil } + + var lastReadMessageServerTimestamp = Date.distantPast + + for messageId in messageIds { + guard let message = try PersistedMessage.getPersistedMessage(discussion: self, messageId: messageId) else { + // This can happen when dealing with ephemeral messages + continue + } + switch message.kind { + case .received: + assert(message is PersistedMessageReceived) + _ = try (message as? PersistedMessageReceived)?.markAsNotNew(dateWhenMessageTurnedNotNew: dateWhenMessageTurnedNotNew) + lastReadMessageServerTimestamp = max(lastReadMessageServerTimestamp, message.timestamp) + case .system: + (message as? PersistedMessageSystem)?.markAsRead() + lastReadMessageServerTimestamp = max(lastReadMessageServerTimestamp, message.timestamp) + default: + assertionFailure() + throw ObvError.unexpectedMessageKind + } + } + + return lastReadMessageServerTimestamp + + } + + +} + + +// MARK: - Getting messages objectIDS for refreshing them in the view context + +extension PersistedDiscussion { + + func getObjectIDOfReceivedMessage(messageId: ReceivedMessageIdentifier) throws -> NSManagedObjectID { + + guard let receivedMessage = try PersistedMessageReceived.getPersistedMessageReceived(discussion: self, messageId: messageId) else { + throw ObvError.couldNotFindMessage + } + + return receivedMessage.objectID + + } + + func getReceivedMessageTypedObjectID(receivedMessageId: ReceivedMessageIdentifier) throws -> TypeSafeManagedObjectID { + + guard let receivedMessage = try PersistedMessageReceived.getPersistedMessageReceived(discussion: self, messageId: receivedMessageId) else { + throw ObvError.couldNotFindMessage + } + + return receivedMessage.typedObjectID + + } + +} + + // MARK: - Convenience DB getters extension PersistedDiscussion { @@ -917,7 +1977,6 @@ extension PersistedDiscussion { case localConfiguration = "localConfiguration" case messages = "messages" case ownedIdentity = "ownedIdentity" - case remoteDeleteAndEditRequests = "remoteDeleteAndEditRequests" case sharedConfiguration = "sharedConfiguration" static let ownedIdentityIdentity = [Key.ownedIdentity.rawValue, PersistedObvOwnedIdentity.Predicate.Key.identity.rawValue].joined(separator: ".") static let muteNotificationsEndDate = [Predicate.Key.localConfiguration.rawValue, PersistedDiscussionLocalConfiguration.Predicate.Key.muteNotificationsEndDate.rawValue].joined(separator: ".") @@ -932,6 +1991,9 @@ extension PersistedDiscussion { static func withOwnCryptoId(_ ownCryptoId: ObvCryptoId) -> NSPredicate { NSPredicate(Key.ownedIdentityIdentity, EqualToData: ownCryptoId.getIdentity()) } + static func withOwnedIdentity(_ ownedIdentity: PersistedObvOwnedIdentity) -> NSPredicate { + withOwnCryptoId(ownedIdentity.cryptoId) + } static func persistedDiscussion(withObjectID objectID: NSManagedObjectID) -> NSPredicate { NSPredicate(withObjectID: objectID) } @@ -1025,7 +2087,7 @@ extension PersistedDiscussion { let emptyLockedDiscussions = try context.fetch(request) for discussion in emptyLockedDiscussions { do { - try discussion.deleteDiscussion(requester: nil) + try discussion.deletePersistedDiscussion() } catch { os_log("One of the empty locked discussion could not be deleted", log: log, type: .fault) assertionFailure() @@ -1132,6 +2194,18 @@ extension PersistedDiscussion { return try context.count(for: request) } + + static func getPersistedDiscussion(ownedIdentity: PersistedObvOwnedIdentity, discussionId: DiscussionIdentifier) throws -> PersistedDiscussion? { + switch discussionId { + case .oneToOne(let id): + return try PersistedOneToOneDiscussion.getPersistedOneToOneDiscussion(ownedIdentity: ownedIdentity, oneToOneDiscussionId: id) + case .groupV1(let id): + return try PersistedGroupDiscussion.getPersistedGroupDiscussion(ownedIdentity: ownedIdentity, groupV1DiscussionId: id) + case .groupV2(let id): + return try PersistedGroupV2Discussion.getPersistedGroupV2Discussion(ownedIdentity: ownedIdentity, groupV2DiscussionId: id) + } + } + } @@ -1150,6 +2224,32 @@ extension PersistedDiscussion { } + /// When changing the pinned index of a discussion, we must propagate the change to our other owned devices. This requires a list of discussion identifiers. We use this method to make it possible to build this list. + public static func getAllPinnedDiscussions(ownedCryptoId: ObvCryptoId, with context: NSManagedObjectContext) throws -> [PersistedDiscussion] { + let request: NSFetchRequest = PersistedDiscussion.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withOwnCryptoId(ownedCryptoId), + Predicate.whereIsPinnedIs(true), + ]) + request.sortDescriptors = [NSSortDescriptor(key: Predicate.Key.rawPinnedIndex.rawValue, ascending: true)] + request.fetchBatchSize = 100 + return try context.fetch(request) + } + + + static func getObjectIDsOfAllPinnedDiscussions(ownedCryptoId: ObvCryptoId, with context: NSManagedObjectContext) throws -> [NSManagedObjectID] { + let request = NSFetchRequest(entityName: PersistedDiscussion.entityName) + request.resultType = .managedObjectIDResultType + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withOwnCryptoId(ownedCryptoId), + Predicate.whereIsPinnedIs(true), + ]) + request.sortDescriptors = [NSSortDescriptor(key: Predicate.Key.rawPinnedIndex.rawValue, ascending: true)] + request.fetchBatchSize = 100 + return try context.fetch(request) + + } + /// Returns a `NSFetchRequest` for all the group discussions (both V1 and V2) of the owned identity, sorted by the discussion title. public static func getFetchRequestForAllGroupDiscussionsSortedByTitleForOwnedIdentity(with ownedCryptoId: ObvCryptoId) -> FetchRequestControllerModel { let fetchRequest: NSFetchRequest = PersistedDiscussion.fetchRequest() @@ -1279,6 +2379,12 @@ extension PersistedDiscussion { if isDeleted { assert(self.managedObjectContext?.concurrencyType != .mainQueueConcurrencyType) self.discussionPermanentIDOnDeletion = self.discussionPermanentID + } else { + // If the illustrative message is not part of the messages anymore (which happens when we wipe all messages of a discussion), we remove it. + // Note that setting the illustrativeMessage to nil ensures we don't enter an infinite loop as the test won't trigger twice. + if let illustrativeMessage, illustrativeMessage.discussion == nil { + self.illustrativeMessage = nil + } } } @@ -1310,8 +2416,10 @@ extension PersistedDiscussion { .postOnDispatchQueue() } - if isInserted { - ObvMessengerCoreDataNotification.persistedDiscussionWasInserted(discussionPermanentID: discussionPermanentID, objectID: typedObjectID) + if isInserted || (changedKeys.contains(Predicate.Key.rawStatus.rawValue) && self.status == .active) { + guard let ownedCryptoId = ownedIdentity?.cryptoId, + let discussionIdentifier = try? self.identifier else { assertionFailure(); return } + ObvMessengerCoreDataNotification.persistedDiscussionWasInsertedOrReactivated(ownedCryptoId: ownedCryptoId, discussionIdentifier: discussionIdentifier) .postOnDispatchQueue() } @@ -1337,3 +2445,167 @@ extension ObvManagedObjectPermanentID where T: PersistedDiscussion { // MARK: - DiscussionPermanentID public typealias DiscussionPermanentID = ObvManagedObjectPermanentID + + +extension PersistedDiscussion { + + public enum ObvError: Error { + case cannotChangeShareConfigurationOfLockedDiscussion + case cannotChangeShareConfigurationOfPreDiscussion + case ownedIdentityIsNil + case contactIdentityIsNil + case groupIsNil + case aContactCannotWipeMessageFromLockedDiscussion + case aContactCannotWipeMessageFromPrediscussion + case noContext + case unexpectedOwnedIdentity + case unexpectedDiscussionForMessageToDelete + case cannotGloballyDeleteMessageFromLockedOrPrediscussion + case aMessageCannotBeUpdatedInLockedDiscussion + case aMessageCannotBeUpdatedInPrediscussion + case aContactRequestedUpdateOnMessageFromSomeoneElse + case aContactCannotDeleteAllMessagesWithinLockedDiscussion + case aContactCannotDeleteAllMessagesWithinPreDiscussion + case ownedIdentityCannotGloballyDeleteLockedDiscussion + case ownedIdentityCannotGloballyDeletePrediscussion + case cannotGloballyDeleteLockedOrPrediscussion + case unexpectedDiscussionForMessageToEdit + case unexpectedDiscussionForMessage + case couldNotConstructMessageReferenceJSON + case couldNotDetermineDiscussionIdentifier + case incoherentDiscussionKind + case couldNotFindMessage + case unexpectedMessageKind + + var localizedDescription: String { + switch self { + case .unexpectedMessageKind: + return "Unexpected message kind" + case .cannotChangeShareConfigurationOfLockedDiscussion: + return "Cannot change configuration of locked discussion" + case .cannotChangeShareConfigurationOfPreDiscussion: + return "Cannot change configuration of pre-discussion" + case .ownedIdentityIsNil: + return "Owned identity is nil" + case .contactIdentityIsNil: + return "Contact identity is nil" + case .groupIsNil: + return "Group is nil" + case .aContactCannotWipeMessageFromLockedDiscussion: + return "A contact cannot wipe a message from a locked discussion" + case .aContactCannotWipeMessageFromPrediscussion: + return "A contact cannot wipe a message from a prediscussion" + case .noContext: + return "No context" + case .unexpectedOwnedIdentity: + return "Unexpected owned identity" + case .unexpectedDiscussionForMessageToDelete: + return "Unexpected discussion for message to delete" + case .cannotGloballyDeleteMessageFromLockedOrPrediscussion: + return "Cannot globally delete a message from a locked or a prediscussion" + case .aMessageCannotBeUpdatedInLockedDiscussion: + return "A message cannot be updated in a locked discussion" + case .aMessageCannotBeUpdatedInPrediscussion: + return "A message cannot be updated in a prediscussion" + case .aContactRequestedUpdateOnMessageFromSomeoneElse: + return "A contact requested an update on a message from someone else" + case .aContactCannotDeleteAllMessagesWithinLockedDiscussion: + return "A message cannot be delete all messages within a locked discussion" + case .aContactCannotDeleteAllMessagesWithinPreDiscussion: + return "A message cannot be delete all messages within a prediscussion" + case .ownedIdentityCannotGloballyDeleteLockedDiscussion: + return "Owned identity cannot globally delete a locked discussion" + case .ownedIdentityCannotGloballyDeletePrediscussion: + return "Owned identity cannot globally delete a prediscussion" + case .cannotGloballyDeleteLockedOrPrediscussion: + return "Cannot globally delete a locked or pre-discussion" + case .unexpectedDiscussionForMessageToEdit: + return "Unexpected discussion for message to edit" + case .unexpectedDiscussionForMessage: + return "Unexpected discussion for message" + case .couldNotConstructMessageReferenceJSON: + return "Could not construct message reference JSON from message" + case .couldNotDetermineDiscussionIdentifier: + return "Could not determine discussion identifier" + case .incoherentDiscussionKind: + return "Incoherent discussion kind" + case .couldNotFindMessage: + return "Could not find message" + } + } + + } + +} + +extension DiscussionSharedConfigurationJSON { + + var sharedConfig: PersistedDiscussion.SharedConfiguration { + .init(version: self.version, + expiration: self.expiration) + } + +} + + + +// MARK: - For snapshot purposes + +extension PersistedDiscussion { + + var syncSnapshotNode: PersistedDiscussionConfigurationSyncSnapshotNode { + .init(localConfiguration: localConfiguration, + sharedConfiguration: sharedConfiguration) + } + +} + + +struct PersistedDiscussionConfigurationSyncSnapshotNode: ObvSyncSnapshotNode { + + private let domain: Set + private let localConfiguration: PersistedDiscussionLocalConfigurationSyncSnapshotItem? + private let sharedConfiguration: PersistedDiscussionSharedConfigurationSyncSnapshotItem? + + let id = Self.generateIdentifier() + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case localConfiguration = "local_settings" + case sharedConfiguration = "shared_settings" + case domain = "domain" + } + + private static let defaultDomain = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + init(localConfiguration: PersistedDiscussionLocalConfiguration, sharedConfiguration: PersistedDiscussionSharedConfiguration) { + self.domain = Self.defaultDomain + self.localConfiguration = localConfiguration.syncSnapshotNode + self.sharedConfiguration = sharedConfiguration.syncSnapshotNode + } + + + // Synthesized implementation of encode(to encoder: Encoder) + + + init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + let rawKeys = try container.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + self.localConfiguration = try container.decodeIfPresent(PersistedDiscussionLocalConfigurationSyncSnapshotItem.self, forKey: .localConfiguration) + self.sharedConfiguration = try container.decodeIfPresent(PersistedDiscussionSharedConfigurationSyncSnapshotItem.self, forKey: .sharedConfiguration) + } + + + func useToUpdate(_ discussion: PersistedDiscussion) { + + if domain.contains(.localConfiguration) { + localConfiguration?.useToUpdate(discussion.localConfiguration) + } + + if domain.contains(.sharedConfiguration) { + sharedConfiguration?.useToUpdate(discussion.sharedConfiguration) + } + + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedGroupDiscussion.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedGroupDiscussion.swift index 85787b4b..2894cd11 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedGroupDiscussion.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedGroupDiscussion.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,8 @@ import ObvEngine import ObvTypes import ObvCrypto import OlvidUtils +import ObvSettings + @objc(PersistedGroupDiscussion) public final class PersistedGroupDiscussion: PersistedDiscussion, ObvErrorMaker, ObvIdentifiableManagedObject { @@ -63,24 +65,18 @@ public final class PersistedGroupDiscussion: PersistedDiscussion, ObvErrorMaker, // MARK: - Initializer - public convenience init(contactGroup: PersistedContactGroup, groupName: String, ownedIdentity: PersistedObvOwnedIdentity, status: Status, sharedConfigurationToKeep: PersistedDiscussionSharedConfiguration? = nil, localConfigurationToKeep: PersistedDiscussionLocalConfiguration? = nil, permanentUUIDToKeep: UUID? = nil, draftToKeep: PersistedDraft? = nil, pinnedIndexToKeep: Int? = nil, timestampOfLastMessageToKeep: Date? = nil) throws { + public convenience init(contactGroup: PersistedContactGroup, groupName: String, ownedIdentity: PersistedObvOwnedIdentity, status: Status) throws { try self.init(title: groupName, ownedIdentity: ownedIdentity, forEntityName: PersistedGroupDiscussion.entityName, status: status, - shouldApplySharedConfigurationFromGlobalSettings: contactGroup.category == .owned, - sharedConfigurationToKeep: sharedConfigurationToKeep, - localConfigurationToKeep: localConfigurationToKeep, - permanentUUIDToKeep: permanentUUIDToKeep, - draftToKeep: draftToKeep, - pinnedIndexToKeep: pinnedIndexToKeep, - timestampOfLastMessageToKeep: timestampOfLastMessageToKeep) + shouldApplySharedConfigurationFromGlobalSettings: contactGroup.category == .owned) self.contactGroup = contactGroup - if sharedConfigurationToKeep == nil && contactGroup.category == .owned { + if contactGroup.category == .owned { self.sharedConfiguration.setValuesUsingSettings() } - try? insertSystemMessagesIfDiscussionIsEmpty(markAsRead: false, messageTimestamp: timestampOfLastMessageToKeep ?? Date()) + try? insertSystemMessagesIfDiscussionIsEmpty(markAsRead: false, messageTimestamp: Date()) } @@ -121,12 +117,21 @@ extension PersistedGroupDiscussion { static func withGroupUID(_ groupUID: UID) -> NSPredicate { NSPredicate(Key.rawGroupUID, EqualToData: groupUID.raw) } - static func withGroupOwnedCryptoId(_ groupOwnerCryptoId: ObvCryptoId) -> NSPredicate { + static func withGroupOwnerCryptoId(_ groupOwnerCryptoId: ObvCryptoId) -> NSPredicate { NSPredicate(Key.rawOwnerIdentityIdentity, EqualToData: groupOwnerCryptoId.getIdentity()) } static func withOwnedCryptoId(_ ownedCryptoId: ObvCryptoId) -> NSPredicate { NSPredicate(PersistedDiscussion.Predicate.Key.ownedIdentityIdentity, EqualToData: ownedCryptoId.getIdentity()) } + static func withObjectID(_ objectID: NSManagedObjectID) -> NSPredicate { + PersistedDiscussion.Predicate.persistedDiscussion(withObjectID: objectID) + } + static func withGroupV1Identifier(_ groupV1Identifier: GroupV1Identifier) -> NSPredicate { + NSCompoundPredicate(andPredicateWithSubpredicates: [ + withGroupUID(groupV1Identifier.groupUid), + withGroupOwnerCryptoId(groupV1Identifier.groupOwner), + ]) + } } @@ -144,13 +149,32 @@ extension PersistedGroupDiscussion { let request: NSFetchRequest = NSFetchRequest(entityName: PersistedGroupDiscussion.entityName) request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ Predicate.withGroupUID(groupUID), - Predicate.withGroupOwnedCryptoId(groupOwnerCryptoId), + Predicate.withGroupOwnerCryptoId(groupOwnerCryptoId), Predicate.withOwnedCryptoId(ownedCryptoId), ]) request.fetchLimit = 1 return (try context.fetch(request)).first } + static func getPersistedGroupDiscussion(ownedIdentity: PersistedObvOwnedIdentity, groupV1DiscussionId: GroupV1DiscussionIdentifier) throws -> PersistedGroupDiscussion? { + guard let context = ownedIdentity.managedObjectContext else { assertionFailure(); throw ObvError.noContext } + let request: NSFetchRequest = PersistedGroupDiscussion.fetchRequest() + switch groupV1DiscussionId { + case .objectID(let objectID): + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withObjectID(objectID), + Predicate.withOwnedCryptoId(ownedIdentity.cryptoId), + ]) + case .groupV1Identifier(groupV1Identifier: let groupV1Identifier): + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withOwnedCryptoId(ownedIdentity.cryptoId), + Predicate.withGroupV1Identifier(groupV1Identifier), + ]) + } + request.fetchLimit = 1 + return try context.fetch(request).first + } + } public extension TypeSafeManagedObjectID where T == PersistedGroupDiscussion { diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedGroupV2Discussion.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedGroupV2Discussion.swift index 11b79171..740b77cb 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedGroupV2Discussion.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedGroupV2Discussion.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import CoreData import os.log import OlvidUtils import ObvTypes +import ObvSettings @objc(PersistedGroupV2Discussion) @@ -61,7 +62,7 @@ public final class PersistedGroupV2Discussion: PersistedDiscussion, ObvErrorMake // Initializer - public convenience init(persistedGroupV2: PersistedGroupV2, shouldApplySharedConfigurationFromGlobalSettings: Bool, sharedConfigurationToKeep: PersistedDiscussionSharedConfiguration? = nil, localConfigurationToKeep: PersistedDiscussionLocalConfiguration? = nil, permanentUUIDToKeep: UUID? = nil, draftToKeep: PersistedDraft? = nil, pinnedIndexToKeep: Int? = nil, timestampOfLastMessageToKeep: Date? = nil) throws { + public convenience init(persistedGroupV2: PersistedGroupV2, shouldApplySharedConfigurationFromGlobalSettings: Bool) throws { guard let context = persistedGroupV2.managedObjectContext else { throw Self.makeError(message: "Could not find context") @@ -79,20 +80,14 @@ public final class PersistedGroupV2Discussion: PersistedDiscussion, ObvErrorMake ownedIdentity: persistedOwnedIdentity, forEntityName: PersistedGroupV2Discussion.entityName, status: .active, - shouldApplySharedConfigurationFromGlobalSettings: shouldApplySharedConfigurationFromGlobalSettings, - sharedConfigurationToKeep: sharedConfigurationToKeep, - localConfigurationToKeep: localConfigurationToKeep, - permanentUUIDToKeep: permanentUUIDToKeep, - draftToKeep: draftToKeep, - pinnedIndexToKeep: pinnedIndexToKeep, - timestampOfLastMessageToKeep: timestampOfLastMessageToKeep) + shouldApplySharedConfigurationFromGlobalSettings: shouldApplySharedConfigurationFromGlobalSettings) self.groupIdentifier = persistedGroupV2.groupIdentifier self.rawOwnedIdentityIdentity = try persistedGroupV2.ownCryptoId.getIdentity() self.group = persistedGroupV2 - try? insertSystemMessagesIfDiscussionIsEmpty(markAsRead: false, messageTimestamp: timestampOfLastMessageToKeep ?? Date()) + try? insertSystemMessagesIfDiscussionIsEmpty(markAsRead: false, messageTimestamp: Date()) } @@ -133,7 +128,7 @@ public final class PersistedGroupV2Discussion: PersistedDiscussion, ObvErrorMake try PersistedMessageSystem.insertOwnedIdentityIsNoLongerPartOfGroupV2AdminsMessage(within: self) } - + // MARK: - Convenience DB getters struct Predicate { @@ -147,6 +142,9 @@ public final class PersistedGroupV2Discussion: PersistedDiscussion, ObvErrorMake static func withOwnCryptoId(_ ownCryptoId: ObvCryptoId) -> NSPredicate { NSPredicate(Key.rawOwnedIdentityIdentity, EqualToData: ownCryptoId.getIdentity()) } + static func withObjectID(_ objectID: NSManagedObjectID) -> NSPredicate { + PersistedDiscussion.Predicate.persistedDiscussion(withObjectID: objectID) + } } @@ -165,6 +163,26 @@ public final class PersistedGroupV2Discussion: PersistedDiscussion, ObvErrorMake return try context.fetch(request).first } + + static func getPersistedGroupV2Discussion(ownedIdentity: PersistedObvOwnedIdentity, groupV2DiscussionId: GroupV2DiscussionIdentifier) throws -> PersistedGroupV2Discussion? { + guard let context = ownedIdentity.managedObjectContext else { assertionFailure(); throw ObvError.noContext } + let request: NSFetchRequest = PersistedGroupV2Discussion.fetchRequest() + switch groupV2DiscussionId { + case .objectID(let objectID): + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withObjectID(objectID), + Predicate.withOwnCryptoId(ownedIdentity.cryptoId), + ]) + case .groupV2Identifier(groupV2Identifier: let groupV2Identifier): + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withOwnCryptoId(ownedIdentity.cryptoId), + Predicate.withGroupIdentifier(groupV2Identifier), + ]) + } + request.fetchLimit = 1 + return try context.fetch(request).first + } + } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedOneToOneDiscussion.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedOneToOneDiscussion.swift index 6a497466..96ae056e 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedOneToOneDiscussion.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedDiscussion/PersistedOneToOneDiscussion.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,8 @@ import ObvEngine import OlvidUtils import ObvCrypto import ObvTypes +import ObvSettings + @objc(PersistedOneToOneDiscussion) @@ -61,10 +63,21 @@ public final class PersistedOneToOneDiscussion: PersistedDiscussion, ObvErrorMak ObvManagedObjectPermanentID(uuid: self.permanentUUID) } + public var oneToOneIdentifier: OneToOneIdentifierJSON { + get throws { + guard let ownedCryptoId = ownedIdentity?.cryptoId else { + throw Self.makeError(message: "Could not get ownedCryptoId") + } + guard let contactCryptoId = contactIdentity?.cryptoId else { + throw Self.makeError(message: "Could not get contactCryptoId") + } + return OneToOneIdentifierJSON(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) + } + } // MARK: - Initializer - public convenience init(contactIdentity: PersistedObvContactIdentity, status: Status, sharedConfigurationToKeep: PersistedDiscussionSharedConfiguration? = nil, localConfigurationToKeep: PersistedDiscussionLocalConfiguration? = nil, permanentUUIDToKeep: UUID? = nil, draftToKeep: PersistedDraft? = nil, pinnedIndexToKeep: Int? = nil, timestampOfLastMessageToKeep: Date? = nil) throws { + private convenience init(contactIdentity: PersistedObvContactIdentity, status: Status) throws { guard let ownedIdentity = contactIdentity.ownedIdentity else { os_log("Could not find owned identity. This is ok if it was just deleted.", log: PersistedOneToOneDiscussion.log, type: .error) throw Self.makeError(message: "Could not find owned identity. This is ok if it was just deleted.") @@ -73,21 +86,21 @@ public final class PersistedOneToOneDiscussion: PersistedDiscussion, ObvErrorMak ownedIdentity: ownedIdentity, forEntityName: PersistedOneToOneDiscussion.entityName, status: status, - shouldApplySharedConfigurationFromGlobalSettings: true, - sharedConfigurationToKeep: sharedConfigurationToKeep, - localConfigurationToKeep: localConfigurationToKeep, - permanentUUIDToKeep: permanentUUIDToKeep, - draftToKeep: draftToKeep, - pinnedIndexToKeep: pinnedIndexToKeep, - timestampOfLastMessageToKeep: timestampOfLastMessageToKeep) + shouldApplySharedConfigurationFromGlobalSettings: true) self.contactIdentity = contactIdentity - try? insertSystemMessagesIfDiscussionIsEmpty(markAsRead: false, messageTimestamp: timestampOfLastMessageToKeep ?? Date()) + try? insertSystemMessagesIfDiscussionIsEmpty(markAsRead: false, messageTimestamp: Date()) } + static func createPersistedOneToOneDiscussion(for contactIdentity: PersistedObvContactIdentity, status: Status) throws -> PersistedOneToOneDiscussion { + let oneToOneDiscussion = try self.init(contactIdentity: contactIdentity, status: status) + return oneToOneDiscussion + } + + // MARK: - Status management override func setStatus(to newStatus: PersistedDiscussion.Status) throws { @@ -103,6 +116,7 @@ public final class PersistedOneToOneDiscussion: PersistedDiscussion, ObvErrorMak if newStatus == .locked { _ = try PersistedMessageSystem(.contactWasDeleted, optionalContactIdentity: nil, + optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: self, timestamp: Date()) @@ -122,6 +136,285 @@ public final class PersistedOneToOneDiscussion: PersistedDiscussion, ObvErrorMak } } + + // MARK: - Receiving discussion shared configurations + + /// Called when receiving a shared configuration from a contact. Returns `true` iff the shared configuration had to be updated. + /// + /// Since a contact of a OneToOne discussion is always allowed to change the shared configuration, no particular check is made here, and we can call the super implementation. + func mergeDiscussionSharedConfiguration(discussionSharedConfiguration: SharedConfiguration, receivedFrom contact: PersistedObvContactIdentity) throws -> (sharedSettingHadToBeUpdated: Bool, weShouldSendBackOurSharedSettings: Bool) { + + guard self.contactIdentity == contact else { + throw ObvError.unexpectedContact + } + + let (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettingsIfAllowedTo) = try super.mergeReceivedDiscussionSharedConfiguration(discussionSharedConfiguration) + + // We are always allowed to change the settings of a oneToOne discussion + let weShouldSendBackOurSharedSettings = weShouldSendBackOurSharedSettingsIfAllowedTo + + return (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettings) + + } + + + /// Called when receiving a ``DiscussionSharedConfigurationJSON`` from an owned identity. Returns `true` iff the shared configuration had to be updated. + /// + /// Since an owned identiy of a OneToOne discussion is always allowed to change the shared configuration, no particular check is made here, and we can call the super implementation. + func mergeDiscussionSharedConfiguration(discussionSharedConfiguration: SharedConfiguration, receivedFrom ownedIdentity: PersistedObvOwnedIdentity) throws -> (sharedSettingHadToBeUpdated: Bool, weShouldSendBackOurSharedSettings: Bool) { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + let (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettingsIfAllowedTo) = try super.mergeReceivedDiscussionSharedConfiguration(discussionSharedConfiguration) + + // We are always allowed to change the settings of a oneToOne discussion + let weShouldSendBackOurSharedSettings = weShouldSendBackOurSharedSettingsIfAllowedTo + + return (sharedSettingHadToBeUpdated, weShouldSendBackOurSharedSettings) + + } + + + /// Called when an owned identity decided to change this discussion's shared configuration from the current device. + func replaceDiscussionSharedConfiguration(with expiration: ExpirationJSON, receivedFrom ownedIdentity: PersistedObvOwnedIdentity) throws -> Bool { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + let sharedSettingHadToBeUpdated = try super.replaceReceivedDiscussionSharedConfiguration(with: expiration) + + return sharedSettingHadToBeUpdated + + } + + + // MARK: - Processing wipe requests + + func processWipeMessageRequest(of messagesToDelete: [MessageReferenceJSON], receivedFrom contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws -> [InfoAboutWipedOrDeletedPersistedMessage] { + + guard self.contactIdentity == contact else { + throw ObvError.unexpectedContact + } + + let infos = try super.processWipeMessageRequest(of: messagesToDelete, from: contact.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return infos + + } + + + func processWipeMessageRequest(of messagesToDelete: [MessageReferenceJSON], receivedFrom ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws -> [InfoAboutWipedOrDeletedPersistedMessage] { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + let infos = try super.processWipeMessageRequest(of: messagesToDelete, from: ownedIdentity.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return infos + + } + + + // MARK: - Processing discussion (all messages) wipe requests + + + override func processRemoteRequestToWipeAllMessagesWithinThisDiscussion(from contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws { + + guard self.contactIdentity == contact else { + throw ObvError.unexpectedContact + } + + try super.processRemoteRequestToWipeAllMessagesWithinThisDiscussion(from: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + + override func processRemoteRequestToWipeAllMessagesWithinThisDiscussion(from ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + try super.processRemoteRequestToWipeAllMessagesWithinThisDiscussion(from: ownedIdentity, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + + // MARK: - Processing delete requests from the owned identity + + override func processMessageDeletionRequestRequestedFromCurrentDevice(of ownedIdentity: PersistedObvOwnedIdentity, messageToDelete: PersistedMessage, deletionType: DeletionType) throws -> InfoAboutWipedOrDeletedPersistedMessage { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + let info = try super.processMessageDeletionRequestRequestedFromCurrentDevice(of: ownedIdentity, messageToDelete: messageToDelete, deletionType: deletionType) + + return info + + } + + + override func processDiscussionDeletionRequestFromCurrentDevice(of ownedIdentity: PersistedObvOwnedIdentity, deletionType: DeletionType) throws { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + try super.processDiscussionDeletionRequestFromCurrentDevice(of: ownedIdentity, deletionType: deletionType) + + } + + + // MARK: - Receiving messages and attachments from a contact or another owned device + + override func createOrOverridePersistedMessageReceived(from contact: PersistedObvContactIdentity, obvMessage: ObvMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?, overridePreviousPersistedMessage: Bool) throws -> (discussionPermanentID: DiscussionPermanentID, attachmentFullyReceivedOrCancelledByServer: [ObvAttachment]) { + + guard self.contactIdentity == contact else { + throw ObvError.unexpectedContact + } + + return try super.createOrOverridePersistedMessageReceived( + from: contact, + obvMessage: obvMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + overridePreviousPersistedMessage: overridePreviousPersistedMessage) + + } + + + override func createPersistedMessageSentFromOtherOwnedDevice(from ownedIdentity: PersistedObvOwnedIdentity, obvOwnedMessage: ObvOwnedMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?) throws -> [ObvOwnedAttachment] { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedContact + } + + let attachmentFullyReceivedOrCancelledByServer = try super.createPersistedMessageSentFromOtherOwnedDevice( + from: ownedIdentity, + obvOwnedMessage: obvOwnedMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON) + + return attachmentFullyReceivedOrCancelledByServer + + + } + + + // MARK: - Processing edit requests + + func processUpdateMessageRequest(_ updateMessageJSON: UpdateMessageJSON, receivedFrom contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + guard self.contactIdentity == contact else { + throw ObvError.unexpectedContact + } + + let updatedMessage = try super.processUpdateMessageRequest(updateMessageJSON, receivedFromContactCryptoId: contact.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return updatedMessage + + } + + + func processUpdateMessageRequest(_ updateMessageJSON: UpdateMessageJSON, receivedFrom ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + let updatedMessage = try super.processUpdateMessageRequest(updateMessageJSON, receivedFromOwnedCryptoId: ownedIdentity.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return updatedMessage + + } + + + override func processLocalUpdateMessageRequest(from ownedIdentity: PersistedObvOwnedIdentity, for messageSent: PersistedMessageSent, newTextBody: String?) throws { + + try super.processLocalUpdateMessageRequest(from: ownedIdentity, for: messageSent, newTextBody: newTextBody) + + } + + + // MARK: - Process reaction requests + + override func processSetOrUpdateReactionOnMessageLocalRequest(from ownedIdentity: PersistedObvOwnedIdentity, for message: PersistedMessage, newEmoji: String?) throws { + + try super.processSetOrUpdateReactionOnMessageLocalRequest(from: ownedIdentity, for: message, newEmoji: newEmoji) + + } + + + override func processSetOrUpdateReactionOnMessageRequest(_ reactionJSON: ReactionJSON, receivedFrom contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + guard self.contactIdentity == contact else { + throw ObvError.unexpectedContact + } + + let updatedMessage = try super.processSetOrUpdateReactionOnMessageRequest(reactionJSON, receivedFrom: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return updatedMessage + + } + + + override func processSetOrUpdateReactionOnMessageRequest(_ reactionJSON: ReactionJSON, receivedFrom ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws -> PersistedMessage? { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + let updatedMessage = try super.processSetOrUpdateReactionOnMessageRequest(reactionJSON, receivedFrom: ownedIdentity, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + return updatedMessage + + } + + + // MARK: - Process screen capture detections + + override func processDetectionThatSensitiveMessagesWereCaptured(_ screenCaptureDetectionJSON: ScreenCaptureDetectionJSON, from contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date) throws { + + guard self.contactIdentity == contact else { + throw ObvError.unexpectedContact + } + + try super.processDetectionThatSensitiveMessagesWereCaptured(screenCaptureDetectionJSON, from: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + + override func processDetectionThatSensitiveMessagesWereCaptured(_ screenCaptureDetectionJSON: ScreenCaptureDetectionJSON, from ownedIdentity: PersistedObvOwnedIdentity, messageUploadTimestampFromServer: Date) throws { + + guard self.ownedIdentity == ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + try super.processDetectionThatSensitiveMessagesWereCaptured(screenCaptureDetectionJSON, from: ownedIdentity, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + + override func processLocalDetectionThatSensitiveMessagesWereCapturedInThisDiscussion(by ownedIdentity: PersistedObvOwnedIdentity) throws { + + try super.processLocalDetectionThatSensitiveMessagesWereCapturedInThisDiscussion(by: ownedIdentity) + + } + + + // MARK: - Inserting system messages within discussions + + func oneToOneContactWasIntroducedTo(otherContact: PersistedObvContactIdentity) throws { + + guard otherContact.ownedIdentity == self.ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + + try PersistedMessageSystem.insertContactWasIntroducedToAnotherContact(within: self, otherContact: otherContact) + + } + } @@ -147,6 +440,9 @@ extension PersistedOneToOneDiscussion { static func withPermanentID(_ permanentID: ObvManagedObjectPermanentID) -> NSPredicate { PersistedDiscussion.Predicate.withPermanentID(permanentID.downcast) } + static func withObjectID(_ objectID: NSManagedObjectID) -> NSPredicate { + PersistedDiscussion.Predicate.persistedDiscussion(withObjectID: objectID) + } } @@ -155,6 +451,21 @@ extension PersistedOneToOneDiscussion { } + /// Fetches the `PersistedOneToOneDiscussion` on the basis of the `oneToOneIdentifier` of the discussion (which, for now, corresponds to the identity of the contact). + public static func fetchPersistedOneToOneDiscussion(oneToOneIdentifier: OneToOneIdentifierJSON, ownedCryptoId: ObvCryptoId, within context: NSManagedObjectContext) throws -> PersistedOneToOneDiscussion? { + guard let contactCryptoId = oneToOneIdentifier.getContactIdentity(ownedIdentity: ownedCryptoId) else { + throw ObvError.inconsistentOneToOneIdentifier + } + let request: NSFetchRequest = PersistedOneToOneDiscussion.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withOwnedCryptoId(ownedCryptoId), + Predicate.withContactCryptoId(contactCryptoId), + ]) + request.fetchLimit = 1 + return (try context.fetch(request)).first + } + + /// Returns a `NSFetchRequest` for all the one-tone discussions of the owned identity, sorted by the discussion title. public static func getFetchRequestForAllActiveOneToOneDiscussionsSortedByTitleForOwnedIdentity(with ownedCryptoId: ObvCryptoId) -> FetchRequestControllerModel { let request: NSFetchRequest = NSFetchRequest(entityName: PersistedOneToOneDiscussion.entityName) @@ -205,6 +516,61 @@ extension PersistedOneToOneDiscussion { return try context.fetch(request).first } + + static func getPersistedOneToOneDiscussion(ownedIdentity: PersistedObvOwnedIdentity, oneToOneDiscussionId: OneToOneDiscussionIdentifier) throws -> PersistedOneToOneDiscussion? { + guard let context = ownedIdentity.managedObjectContext else { assertionFailure(); throw ObvError.noContext } + let request: NSFetchRequest = PersistedOneToOneDiscussion.fetchRequest() + switch oneToOneDiscussionId { + case .objectID(let objectID): + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withObjectID(objectID), + Predicate.withOwnedCryptoId(ownedIdentity.cryptoId), + ]) + case .contactCryptoId(let contactCryptoId): + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withOwnedCryptoId(ownedIdentity.cryptoId), + Predicate.withContactCryptoId(contactCryptoId), + ]) + } + request.fetchLimit = 1 + return try context.fetch(request).first + } + +} + + +extension PersistedOneToOneDiscussion { + + enum ObvError: Error { + case inconsistentOneToOneIdentifier + case unexpectedContact + case unexpectedOwnedIdentity + case aContactCannotWipeMessageFromLockedOrPrediscussion + case unexpectedDiscussionForMessageToDelete + case noContext + case unexpectedDiscussionKind + + var localizedDescription: String { + switch self { + case .inconsistentOneToOneIdentifier: + return "Inconsitent one2one identifier" + case .unexpectedContact: + return "Unexpected contact" + case .unexpectedOwnedIdentity: + return "Unexpected owned identity" + case .aContactCannotWipeMessageFromLockedOrPrediscussion: + return "A contact cannot wipe a message from a locked or a pre-discussion" + case .unexpectedDiscussionForMessageToDelete: + return "Unexpected discussion for message to delete" + case .noContext: + return "No context" + case .unexpectedDiscussionKind: + return "Unexpected discussion kind" + } + } + + } + } public extension TypeSafeManagedObjectID where T == PersistedOneToOneDiscussion { diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedInvitation/PersistedInvitation.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedInvitation/PersistedInvitation.swift index 3ce26814..19f26a7b 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedInvitation/PersistedInvitation.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedInvitation/PersistedInvitation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -58,7 +58,9 @@ public class PersistedInvitation: NSManagedObject { // MARK: Computed properties public var status: Status { - return Status(rawValue: self.rawStatus)! + let status = Status(rawValue: self.rawStatus) + assert(status != nil) + return status ?? .old } public enum Status: Int { @@ -206,19 +208,19 @@ extension PersistedInvitation { } - public static func markAllAsOld(for ownedIdentity: PersistedObvOwnedIdentity) throws { - guard let context = ownedIdentity.managedObjectContext else { throw Self.makeError(message: "Could not find context") } + public static func markAllAsOld(for ownedCryptoId: ObvCryptoId, within context: NSManagedObjectContext) throws { let request: NSFetchRequest = PersistedInvitation.fetchRequest() request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ - Predicate.withPersistedObvOwnedIdentity(ownedIdentity), + Predicate.withOwnedIdentity(ownedCryptoId), Predicate.withStatusDistinctFrom(.old), ]) + request.propertiesToFetch = [] let results = try context.fetch(request) results.forEach { $0.setStatus(to: Status.old) } } - + static func computeBadgeCountForInvitationsTab(of ownedIdentity: PersistedObvOwnedIdentity) throws -> Int { guard let context = ownedIdentity.managedObjectContext else { assertionFailure(); throw Self.makeError(message: "Could not find context") } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/CallLog/PersistedCallLogContact.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/CallLog/PersistedCallLogContact.swift index 8c39a946..0565e6b9 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/CallLog/PersistedCallLogContact.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/CallLog/PersistedCallLogContact.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -36,6 +36,9 @@ public enum CallReportKind: Int, CustomDebugStringConvertible, CaseIterable { case anyIncomingCall = 11 /// incoming call without informations case anyOutgoingCall = 12 /// outgoing call without informations case filteredIncomingCall = 13 + case answeredOnOtherDevice = 14 + case rejectedOnOtherDevice = 15 + case rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse = 16 public var debugDescription: String { switch self { @@ -53,6 +56,9 @@ public enum CallReportKind: Int, CustomDebugStringConvertible, CaseIterable { case .anyIncomingCall: return "anyIncomingCall" case .anyOutgoingCall: return "anyOutgoingCall" case .filteredIncomingCall: return "filteredIncomingCall" + case .answeredOnOtherDevice: return "answeredOnOtherDevice" + case .rejectedOnOtherDevice: return "rejectedOnOtherDevice" + case .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse: return "rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse" } } @@ -60,6 +66,7 @@ public enum CallReportKind: Int, CustomDebugStringConvertible, CaseIterable { switch self { case .missedIncomingCall, .rejectedIncomingCallBecauseOfDeniedRecordPermission, + .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse, .filteredIncomingCall: return true case .rejectedIncomingCall, @@ -72,6 +79,8 @@ public enum CallReportKind: Int, CustomDebugStringConvertible, CaseIterable { .newParticipantInIncomingCall, .newParticipantInOutgoingCall, .anyIncomingCall, + .answeredOnOtherDevice, + .rejectedOnOtherDevice, .anyOutgoingCall: return false } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/CallLog/PersistedCallLogItem.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/CallLog/PersistedCallLogItem.swift index 5d86ab5e..e8c7d86d 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/CallLog/PersistedCallLogItem.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/CallLog/PersistedCallLogItem.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,8 @@ import ObvEngine import ObvTypes import ObvCrypto import OlvidUtils +import ObvSettings + @objc(PersistedCallLogItem) public final class PersistedCallLogItem: NSManagedObject, ObvErrorMaker { @@ -70,7 +72,7 @@ public final class PersistedCallLogItem: NSManagedObject, ObvErrorMaker { // MARK: - Inits - public convenience init(callUUID: UUID, ownedCryptoId: ObvCryptoId, isIncoming: Bool, unknownContactsCount: Int, groupIdentifier: GroupIdentifierBasedOnObjectID?, within context: NSManagedObjectContext) throws { + public convenience init(callUUID: UUID, ownedCryptoId: ObvCryptoId, isIncoming: Bool, unknownContactsCount: Int, groupIdentifier: GroupIdentifier?, within context: NSManagedObjectContext) throws { // Make sure no other PersistedCallLogItem exist with the same UUID @@ -84,18 +86,19 @@ public final class PersistedCallLogItem: NSManagedObject, ObvErrorMaker { self.callUUID = callUUID self.endDate = nil switch groupIdentifier { - case .groupV1(let objectID): - if let group = try? PersistedContactGroup.get(objectID: objectID.objectID, within: context) { + case .groupV1(let groupV1Identifier): + if let group = try? PersistedContactGroup.getContactGroup(groupIdentifier: groupV1Identifier, ownedCryptoId: ownedCryptoId, within: context) { self.groupOwnerIdentity = group.ownerIdentity self.groupUidRaw = group.groupUid.raw } - case .groupV2(let objectID): - if let group = try? PersistedGroupV2.get(objectID: objectID, within: context) { + case .groupV2(let groupV2Identifier): + if let group = try? PersistedGroupV2.get(ownIdentity: ownedCryptoId, appGroupIdentifier: groupV2Identifier, within: context) { self.groupV2Identifier = group.groupIdentifier } - case .none: + case nil: break } + self.initialParticipantCount = nil // Set later self.rawOwnedCryptoId = ownedCryptoId.getIdentity() self.isIncoming = isIncoming @@ -106,8 +109,8 @@ public final class PersistedCallLogItem: NSManagedObject, ObvErrorMaker { // MARK: - Variables - var ownedCryptoId: ObvCryptoId { - return try! ObvCryptoId(identity: rawOwnedCryptoId) + public var ownedCryptoId: ObvCryptoId? { + return try? ObvCryptoId(identity: rawOwnedCryptoId) } /// We need to store callReportKind to be able to build predicate isMissedCall @@ -149,9 +152,13 @@ public final class PersistedCallLogItem: NSManagedObject, ObvErrorMaker { public func getGroupIdentifier() throws -> GroupIdentifierBasedOnObjectID? { guard let context = self.managedObjectContext else { assertionFailure(); throw Self.makeError(message: "Could not find context") } + guard let ownedCryptoId else { + throw ObvError.couldNotDetermineOwnedCryptoId + } if let groupUid = groupUid, let groupOwnerIdentity = groupOwnerIdentity { let groupOwner = try ObvCryptoId(identity: groupOwnerIdentity) - guard let persistedContactGroup = try? PersistedContactGroup.getContactGroup(groupId: (groupUid, groupOwner), ownedCryptoId: ownedCryptoId, within: context) else { return nil } + let groupIdentifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) + guard let persistedContactGroup = try? PersistedContactGroup.getContactGroup(groupIdentifier: groupIdentifier, ownedCryptoId: ownedCryptoId, within: context) else { return nil } return .groupV1(persistedContactGroup.typedObjectID) } else if let groupV2Identifier = groupV2Identifier { guard let group = try? PersistedGroupV2.get(ownIdentity: ownedCryptoId, appGroupIdentifier: groupV2Identifier, within: context) else { @@ -163,9 +170,10 @@ public final class PersistedCallLogItem: NSManagedObject, ObvErrorMaker { } } - var groupIdentifier: GroupIdentifier? { + public var groupIdentifier: GroupIdentifier? { if let groupUid = groupUid, let groupOwnerIdentity = groupOwnerIdentity, let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) { - return .groupV1(groupV1Identifier: (groupUid, groupOwner)) + let groupIdentifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) + return .groupV1(groupV1Identifier: groupIdentifier) } else if let groupV2Identifier = groupV2Identifier { return .groupV2(groupV2Identifier: groupV2Identifier) } else { @@ -184,6 +192,12 @@ public final class PersistedCallLogItem: NSManagedObject, ObvErrorMaker { return .rejectedIncomingCall } else if contact.callReportKind == .rejectedIncomingCallBecauseOfDeniedRecordPermission { return .rejectedIncomingCallBecauseOfDeniedRecordPermission + } else if contact.callReportKind == .answeredOnOtherDevice { + return .answeredOnOtherDevice + } else if contact.callReportKind == .rejectedOnOtherDevice { + return .rejectedOnOtherDevice + } else if contact.callReportKind == .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse { + return .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse } } if logContacts.contains(where: { $0.callReportKind == .acceptedIncomingCall }) { @@ -246,3 +260,14 @@ extension PersistedCallLogItem { } } + + +// MARK: - Errors + +extension PersistedCallLogItem { + + enum ObvError: Error { + case couldNotDetermineOwnedCryptoId + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForReceivedMessageWithLimitedExistence.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForReceivedMessageWithLimitedExistence.swift index 84af3daa..fb2941d9 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForReceivedMessageWithLimitedExistence.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForReceivedMessageWithLimitedExistence.swift @@ -58,7 +58,7 @@ extension PersistedExpirationForReceivedMessageWithLimitedExistence { return NSFetchRequest(entityName: PersistedExpirationForReceivedMessageWithLimitedExistence.entityName) } - public static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { + static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { let request: NSFetchRequest = PersistedExpirationForReceivedMessageWithLimitedExistence.fetchRequest() request.predicate = Predicate.withNoMessage let deleteRequest = NSBatchDeleteRequest(fetchRequest: request) diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForReceivedMessageWithLimitedVisibility.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForReceivedMessageWithLimitedVisibility.swift index 01a9e14d..31223ecc 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForReceivedMessageWithLimitedVisibility.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForReceivedMessageWithLimitedVisibility.swift @@ -55,7 +55,7 @@ extension PersistedExpirationForReceivedMessageWithLimitedVisibility { return NSFetchRequest(entityName: PersistedExpirationForReceivedMessageWithLimitedVisibility.entityName) } - public static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { + static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { let request: NSFetchRequest = PersistedExpirationForReceivedMessageWithLimitedVisibility.fetchRequest() request.predicate = Predicate.withNoMessage let deleteRequest = NSBatchDeleteRequest(fetchRequest: request) diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForSentMessageWithLimitedExistence.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForSentMessageWithLimitedExistence.swift index 6b435e9b..1da8a338 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForSentMessageWithLimitedExistence.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForSentMessageWithLimitedExistence.swift @@ -56,7 +56,7 @@ extension PersistedExpirationForSentMessageWithLimitedExistence { return NSFetchRequest(entityName: PersistedExpirationForSentMessageWithLimitedExistence.entityName) } - public static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { + static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { let request: NSFetchRequest = PersistedExpirationForSentMessageWithLimitedExistence.fetchRequest() request.predicate = Predicate.withNoMessage let deleteRequest = NSBatchDeleteRequest(fetchRequest: request) diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForSentMessageWithLimitedVisibility.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForSentMessageWithLimitedVisibility.swift index 83a22d0d..faf4c69a 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForSentMessageWithLimitedVisibility.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/Expirations/PersistedExpirationForSentMessageWithLimitedVisibility.swift @@ -65,7 +65,7 @@ extension PersistedExpirationForSentMessageWithLimitedVisibility { return NSFetchRequest(entityName: PersistedExpirationForSentMessageWithLimitedVisibility.entityName) } - public static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { + static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { let request: NSFetchRequest = PersistedExpirationForSentMessageWithLimitedVisibility.fetchRequest() request.predicate = Predicate.withNoMessage let deleteRequest = NSBatchDeleteRequest(fetchRequest: request) diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PendingMessageReaction.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PendingMessageReaction.swift deleted file mode 100644 index 4077ccc8..00000000 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PendingMessageReaction.swift +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import os.log -import OlvidUtils - - -@objc(PendingMessageReaction) -public final class PendingMessageReaction: NSManagedObject, ObvErrorMaker { - - private static let entityName = "PendingMessageReaction" - public static let errorDomain = "PendingMessageReaction" - private let log = OSLog(subsystem: ObvUICoreDataConstants.logSubsystem, category: "PendingMessageReaction") - - // MARK: - Attributes - - @NSManaged public private(set) var emoji: String? - @NSManaged private var senderIdentifier: Data - @NSManaged private var senderSequenceNumber: Int - @NSManaged private var senderThreadIdentifier: UUID - @NSManaged public private(set) var serverTimestamp: Date - - // MARK: - Relationships - - @NSManaged private var discussion: PersistedDiscussion? // Expected to be non-nil - - // MARK: - Other variables - - public var messageReferenceJSON: MessageReferenceJSON { - MessageReferenceJSON(senderSequenceNumber: senderSequenceNumber, senderThreadIdentifier: senderThreadIdentifier, senderIdentifier: senderIdentifier) - } - - // MARK: - Init - - private convenience init(emoji: String?, senderIdentifier: Data, senderSequenceNumber: Int, senderThreadIdentifier: UUID, serverTimestamp: Date, discussion: PersistedDiscussion) throws { - - guard let context = discussion.managedObjectContext else { throw Self.makeError(message: "Could not find context") } - - let entityDescription = NSEntityDescription.entity(forEntityName: PendingMessageReaction.entityName, in: context)! - self.init(entity: entityDescription, insertInto: context) - - self.emoji = emoji - self.senderIdentifier = senderIdentifier - self.senderSequenceNumber = senderSequenceNumber - self.senderThreadIdentifier = senderThreadIdentifier - self.serverTimestamp = serverTimestamp - self.discussion = discussion - } - - public static func createPendingMessageReactionIfAppropriate(emoji: String?, messageReference: MessageReferenceJSON, serverTimestamp: Date, discussion: PersistedDiscussion) throws { - - // We ignore this reaction if there exists a more recent request - guard try countPendingReactionsMoreRecentThanServerTimestamp( - serverTimestamp, - discussion: discussion, - senderIdentifier: messageReference.senderIdentifier, - senderThreadIdentifier: messageReference.senderThreadIdentifier, - senderSequenceNumber: messageReference.senderSequenceNumber) == 0 else { return } - - // If we reach this point, we will add a new pending reaction. We first delete any previous pending reactions. - try deleteAllPendingReactions(discussion: discussion, senderIdentifier: messageReference.senderIdentifier, senderThreadIdentifier: messageReference.senderThreadIdentifier, senderSequenceNumber: messageReference.senderSequenceNumber) - - _ = try PendingMessageReaction(emoji: emoji, - senderIdentifier: messageReference.senderIdentifier, - senderSequenceNumber: messageReference.senderSequenceNumber, - senderThreadIdentifier: messageReference.senderThreadIdentifier, - serverTimestamp: serverTimestamp, - discussion: discussion) - } - - // MARK: - Convenience DB getters - - public func delete() throws { - guard let context = self.managedObjectContext else { throw Self.makeError(message: "Cannot find context") } - context.delete(self) - } - - @nonobjc private static func fetchRequest() -> NSFetchRequest { - return NSFetchRequest(entityName: PendingMessageReaction.entityName) - } - - private struct Predicate { - - enum Key: String { - case senderIdentifier = "senderIdentifier" - case senderThreadIdentifier = "senderThreadIdentifier" - case senderSequenceNumber = "senderSequenceNumber" - case serverTimestamp = "serverTimestamp" - case discussion = "discussion" - } - - static func withPrimaryKey(discussion: PersistedDiscussion, senderIdentifier: Data, senderThreadIdentifier: UUID, senderSequenceNumber: Int) -> NSPredicate { - NSCompoundPredicate(andPredicateWithSubpredicates: [ - NSPredicate(Key.discussion, equalTo: discussion), - NSPredicate(Key.senderIdentifier, EqualToData: senderIdentifier), - NSPredicate(Key.senderThreadIdentifier, EqualToUuid: senderThreadIdentifier), - NSPredicate(Key.senderSequenceNumber, EqualToInt: senderSequenceNumber), - ]) - } - static func olderThanServerTimestamp(_ serverTimestamp: Date) -> NSPredicate { - NSPredicate(Key.serverTimestamp, earlierThan: serverTimestamp) - } - static func moreRecentThanServerTimestamp(_ serverTimestamp: Date) -> NSPredicate { - NSPredicate(Key.serverTimestamp, laterThan: serverTimestamp) - } - static var withoutAssociatedDiscussion: NSPredicate { - NSPredicate(withNilValueForKey: Key.discussion) - } - } - - private static func countPendingReactionsMoreRecentThanServerTimestamp(_ serverTimestamp: Date, discussion: PersistedDiscussion, senderIdentifier: Data, senderThreadIdentifier: UUID, senderSequenceNumber: Int) throws -> Int { - guard let context = discussion.managedObjectContext else { throw makeError(message: "Could not find context") } - let request: NSFetchRequest = PendingMessageReaction.fetchRequest() - request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ - Predicate.withPrimaryKey(discussion: discussion, senderIdentifier: senderIdentifier, senderThreadIdentifier: senderThreadIdentifier, senderSequenceNumber: senderSequenceNumber), - Predicate.moreRecentThanServerTimestamp(serverTimestamp), - ]) - return try context.count(for: request) - } - - private static func deleteAllPendingReactions(discussion: PersistedDiscussion, senderIdentifier: Data, senderThreadIdentifier: UUID, senderSequenceNumber: Int) throws { - guard let context = discussion.managedObjectContext else { throw makeError(message: "Could not find context") } - let request: NSFetchRequest = PendingMessageReaction.fetchRequest() - request.predicate = Predicate.withPrimaryKey(discussion: discussion, senderIdentifier: senderIdentifier, senderThreadIdentifier: senderThreadIdentifier, senderSequenceNumber: senderSequenceNumber) - let results = try context.fetch(request) - for result in results { - context.delete(result) - } - } - - public static func deleteRequestsOlderThanDate(_ date: Date, within context: NSManagedObjectContext) throws { - let request: NSFetchRequest = PendingMessageReaction.fetchRequest() - request.predicate = Predicate.olderThanServerTimestamp(date) - let batchDeleteRequest = NSBatchDeleteRequest(fetchRequest: request) - try context.execute(batchDeleteRequest) - } - - public static func deleteOrphaned(within context: NSManagedObjectContext) throws { - let request: NSFetchRequest = PendingMessageReaction.fetchRequest() - request.predicate = Predicate.withoutAssociatedDiscussion - let batchDeleteRequest = NSBatchDeleteRequest(fetchRequest: request) - try context.execute(batchDeleteRequest) - } - - public static func getPendingMessageReaction(discussion: PersistedDiscussion, senderIdentifier: Data, senderThreadIdentifier: UUID, senderSequenceNumber: Int) throws -> PendingMessageReaction? { - guard let context = discussion.managedObjectContext else { throw makeError(message: "Could not find context") } - let request: NSFetchRequest = PendingMessageReaction.fetchRequest() - request.predicate = Predicate.withPrimaryKey(discussion: discussion, senderIdentifier: senderIdentifier, senderThreadIdentifier: senderThreadIdentifier, senderSequenceNumber: senderSequenceNumber) - let results = try context.fetch(request) - switch results.count { - case 0, 1: - return results.first - default: - // We expect 0 or 1 request in database - assertionFailure() - // In production, we return the most recent reaction - return results.sorted(by: { $0.serverTimestamp > $1.serverTimestamp }).first - } - } - - -} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessage+Utils.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessage+Utils.swift index 8f2f997b..3b0d6679 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessage+Utils.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessage+Utils.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -189,6 +189,9 @@ extension PersistedMessage { } } + /// Returns `true` iff the edit body action can be made available for this message. This is expected to be called on the main thread to allow the UI to determine if the edit action can be shown to the user. + /// + /// We implement this by simulating what would happen if the edit action was performed. We return `true` iff the call succeeds. This is performed on a child view context to prevent any unwanted side-effect. public var editBodyActionCanBeMadeAvailable: Bool { if let sentMessage = self as? PersistedMessageSent { return sentMessage.editBodyActionCanBeMadeAvailableForSentMessage @@ -205,6 +208,7 @@ extension PersistedMessage { } } + public var deleteOwnReactionActionCanBeMadeAvailable: Bool { if let receivedMessage = self as? PersistedMessageReceived { return receivedMessage.deleteOwnReactionActionCanBeMadeAvailableForReceivedMessage @@ -217,26 +221,74 @@ extension PersistedMessage { /// Returns `true` iff the owned identity is allowed to locally delete this message. + /// + /// This is expected to be called on the main thread, from the UI, in order to determine if the delete action can be made available for this message. + /// We return `true` iff the call to the deletion method would succeed. To do so, we create a child view context on which we simulate the call. public var deleteMessageActionCanBeMadeAvailable: Bool { - guard let ownedCryptoId = self.discussion.ownedIdentity?.cryptoId else { assertionFailure(); return false } - return requesterIsAllowedToDeleteMessage(requester: .ownedIdentity(ownedCryptoId: ownedCryptoId, deletionType: .local)) + assert(Thread.isMainThread) + + guard let context = self.managedObjectContext else { + assertionFailure() + return false + } + guard context.concurrencyType == .mainQueueConcurrencyType else { + assertionFailure() + return false + } + + let childViewContext = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType) + childViewContext.parent = context + guard let messageInChildViewContext = try? PersistedMessage.get(with: self.typedObjectID, within: childViewContext) else { + assertionFailure() + return false + } + guard let ownedIdentity = messageInChildViewContext.discussion?.ownedIdentity else { + assertionFailure() + return false + } + + do { + _ = try ownedIdentity.processMessageDeletionRequestRequestedFromCurrentDeviceOfThisOwnedIdentity(persistedMessageObjectID: messageInChildViewContext.objectID, deletionType: .local) + return true + } catch { + return false + } } /// Returns `true` iff the owned identity is allowed to perform a remote (global) delete of this message. + /// + /// This is expected to be called on the main thread, from the UI, in order to determine if the global delete action can be made available for this message. + /// We return `true` iff the call to the global deletion method would succeed. To do so, we create a child view context on which we simulate the call. public var globalDeleteMessageActionCanBeMadeAvailable: Bool { - guard let ownedCryptoId = self.discussion.ownedIdentity?.cryptoId else { assertionFailure(); return false } - return requesterIsAllowedToDeleteMessage(requester: .ownedIdentity(ownedCryptoId: ownedCryptoId, deletionType: .global)) - } - - - func requesterIsAllowedToDeleteMessage(requester: RequesterOfMessageDeletion) -> Bool { + assert(Thread.isMainThread) + + guard let context = self.managedObjectContext else { + assertionFailure() + return false + } + guard context.concurrencyType == .mainQueueConcurrencyType else { + assertionFailure() + return false + } + + let childViewContext = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType) + childViewContext.parent = context + guard let messageInChildViewContext = try? PersistedMessage.get(with: self.typedObjectID, within: childViewContext) else { + assertionFailure() + return false + } + guard let ownedIdentity = messageInChildViewContext.discussion?.ownedIdentity else { + assertionFailure() + return false + } + do { - try throwIfRequesterIsNotAllowedToDeleteMessage(requester: requester) + _ = try ownedIdentity.processMessageDeletionRequestRequestedFromCurrentDeviceOfThisOwnedIdentity(persistedMessageObjectID: messageInChildViewContext.objectID, deletionType: .global) + return true } catch { return false } - return true } - + } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessage.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessage.swift index e41eccb5..3c8d19f0 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessage.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessage.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,7 @@ import ObvEngine import os.log import OlvidUtils import UniformTypeIdentifiers +import ObvSettings public enum PersistedMessageKind { @@ -56,18 +57,37 @@ public class PersistedMessage: NSManagedObject, ObvErrorMaker { @NSManaged public private(set) var sortIndex: Double @NSManaged public private(set) var timestamp: Date + // MARK: - Relationships - @NSManaged public private(set) var discussion: PersistedDiscussion + @NSManaged public private(set) var discussion: PersistedDiscussion? // Expected to be non-nil, except while deleting/wiping a discussion @NSManaged private var illustrativeMessageForDiscussion: PersistedDiscussion? + @NSManaged public private(set) var mentions: Set + @NSManaged private var messageRepliedToIdentifier: PendingRepliedTo? @NSManaged private var persistedMetadata: Set @NSManaged private(set) var rawMessageRepliedTo: PersistedMessage? // Should *only* be accessed from subentities @NSManaged private var rawReactions: [PersistedMessageReaction]? @NSManaged private var replies: Set - @NSManaged public private(set) var mentions: Set // MARK: - Other variables + + /// 2023-07-17: This is the most appropriate identifier to use in, e.g., notifications + public var identifier: MessageIdentifier { + get throws { + if self is PersistedMessageSent { + return .sent(id: .objectID(objectID: self.objectID)) + } else if self is PersistedMessageReceived { + return .received(id: .objectID(objectID: self.objectID)) + } else { + throw ObvError.noMessageIdentifierForThisMessageType + } + } + } + var messageRepliedToIdentifierIsNonNil: Bool { + messageRepliedToIdentifier != nil + } + public var kind: PersistedMessageKind { assertionFailure("Kind must be overriden in subclasses") return .none @@ -108,6 +128,17 @@ public class PersistedMessage: NSManagedObject, ObvErrorMaker { self.resetDoesMentionOwnedIdentityValue() } + /// Called when receiving a wipe request from a contact or another owned device. + /// + /// Shall only be called from ``PersistedMessageReceived.wipeThisMessage(requesterCryptoId:)`` and ``PersistedMessageSent.wipeThisMessage(requesterCryptoId:)``. + func wipeThisMessage(requesterCryptoId: ObvCryptoId) throws { + self.deleteBodyAndMentions() + self.reactions.forEach { try? $0.delete() } + self.reactions.forEach { try? $0.delete() } + try addMetadata(kind: .remoteWiped(remoteCryptoId: requesterCryptoId), date: Date()) + } + + public var initialExistenceDuration: TimeInterval? { if let sentMessage = self as? PersistedMessageSent { return sentMessage.existenceDuration @@ -139,21 +170,43 @@ public class PersistedMessage: NSManagedObject, ObvErrorMaker { public var isWiped: Bool { isLocallyWiped || isRemoteWiped } - /// In general, a message cannot be edited. Note that we expect `PersistedMessageSent` and `PersistedMessageReceived` to override this variable in return `true` when appropriate. - var textBodyCanBeEdited: Bool { false } - /// Shall only be called from methods in `PersistedMessage`, `PersistedMessageReceived`, or `PersistedMessageSent`. It shall thus not be made public. - func replaceContentWith(newBody: String?, newMentions: Set) throws { - + func processUpdateMessageRequest(newTextBody: String?, newUserMentions: [MessageJSON.UserMention]) throws { + defer { self.resetDoesMentionOwnedIdentityValue() } - guard self.textBodyCanBeEdited else { - throw Self.makeError(message: "The text body of this message cannot be edited now") + guard let newTextBody else { + if self.body != nil { + self.body = nil + } + deleteAllAssociatedMentions() + return + } + + let (trimmedBody, mentionsInTrimmedBody) = newTextBody.trimmingWhitespacesAndNewlines(updating: Array(newUserMentions)) + + if self.body != trimmedBody { + self.body = trimmedBody } + deleteAllAssociatedMentions() + mentionsInTrimmedBody.forEach { mention in + _ = try? PersistedUserMentionInMessage(mention: mention, message: self) + } + + } + + + /// Shall only be called from methods in `PersistedMessageSent`. + func replaceContentWith(newBody: String?, newMentions: Set) throws { + + defer { + self.resetDoesMentionOwnedIdentityValue() + } + guard let newBody else { if self.body != nil { self.body = nil @@ -167,12 +220,12 @@ public class PersistedMessage: NSManagedObject, ObvErrorMaker { if self.body != trimmedBody { self.body = trimmedBody } - + deleteAllAssociatedMentions() mentionsInTrimmedBody.forEach { mention in _ = try? PersistedUserMentionInMessage(mention: mention, message: self) } - + } @@ -234,12 +287,48 @@ public class PersistedMessage: NSManagedObject, ObvErrorMaker { } public var retainWipedOutboundMessages: Bool { - self.discussion.retainWipedOutboundMessages + self.discussion?.retainWipedOutboundMessages ?? false } /// Helper property that returns `discussion.autoRead` public var autoRead: Bool { - self.discussion.autoRead + self.discussion?.autoRead ?? false + } + + + /// Exclusively called from ``PersistedObvContactIdentity.saveExtendedPayload(within:)`` when receiving an extended message payload for a message sent from a contact, and from ``PersistedObvOwnedIdentity.saveExtendedPayload(foundIn:for:)`` when receiving an extended message payload for a message sent from another device of the owned identity. + /// Returns `true` iff at least one extended payload could be saved. + func saveExtendedPayload(foundIn attachementImages: [NotificationAttachmentImage]) throws -> Bool { + + var atLeastOneExtendedPayloadCouldBeSaved = false + + guard let fyleMessageJoinWithStatus else { + assertionFailure() + return false + } + + assert(!fyleMessageJoinWithStatus.isEmpty) + + for attachementImage in attachementImages { + let attachmentNumber = attachementImage.attachmentNumber + guard attachmentNumber < fyleMessageJoinWithStatus.count else { + throw ObvError.unexpectedAttachmentNumber + } + + guard case .data(let data) = attachementImage.dataOrURL else { + continue + } + + let fyleMessageJoinWithStatus = fyleMessageJoinWithStatus[attachmentNumber] + + if fyleMessageJoinWithStatus.setDownsizedThumbnailIfRequired(data: data) { + // the setDownsizedThumbnailIfRequired returned true, meaning that the downsized thumbnail has been set. We will need to refresh the message in the view context. + atLeastOneExtendedPayloadCouldBeSaved = true + } + } + + return atLeastOneExtendedPayloadCouldBeSaved + } } @@ -248,18 +337,41 @@ public class PersistedMessage: NSManagedObject, ObvErrorMaker { extension PersistedMessage { - struct ObvError: LocalizedError { + public enum ObvError: LocalizedError { - let kind: Kind - - enum Kind { - case managedContextIsNil - } - - var errorDescription: String? { - switch kind { + case managedContextIsNil + case unexpectedAttachmentNumber + case unexpectedOwnedIdentity + case unexpectedContactIdentity + case thisSpecificSystemMessageCannotBeDeleted + case cannotGloballyDeleteSystemMessage + case cannotGloballyDeleteMessageFromLockedOrPrediscussion + case cannotGloballyDeleteWipedMessage + case discussionIsNil + case noMessageIdentifierForThisMessageType + + public var errorDescription: String? { + switch self { case .managedContextIsNil: return "The managed context is nil, which is unexpected" + case .unexpectedAttachmentNumber: + return "Unexpected attachment number" + case .unexpectedOwnedIdentity: + return "Unexpected owned identity" + case .thisSpecificSystemMessageCannotBeDeleted: + return "This specific system message cannot be deleted" + case .cannotGloballyDeleteSystemMessage: + return "Cannot globally delete a system message" + case .cannotGloballyDeleteMessageFromLockedOrPrediscussion: + return "Cannot globally delete a message from a locked or prediscussion" + case .cannotGloballyDeleteWipedMessage: + return "Cannot globally delete a wiped message" + case .discussionIsNil: + return "The discussion is nil (occurs while deleting/wiping a discussion)" + case .unexpectedContactIdentity: + return "Unexpected contact identity" + case .noMessageIdentifierForThisMessageType: + return "No message identifier for this message type" } } @@ -272,7 +384,12 @@ extension PersistedMessage { extension PersistedMessage { - convenience init(timestamp: Date, body: String?, rawStatus: Int, senderSequenceNumber: Int, sortIndex: Double, isReplyToAnotherMessage: Bool, replyTo: PersistedMessage?, discussion: PersistedDiscussion, readOnce: Bool, visibilityDuration: TimeInterval?, forwarded: Bool, mentions: [MessageJSON.UserMention], forEntityName entityName: String) throws { + enum ReplyToType { + case json(replyToJSON: MessageReferenceJSON) + case message(messageRepliedTo: PersistedMessage) + } + + convenience init(timestamp: Date, body: String?, rawStatus: Int, senderSequenceNumber: Int, sortIndex: Double, replyTo: ReplyToType?, discussion: PersistedDiscussion, readOnce: Bool, visibilityDuration: TimeInterval?, forwarded: Bool, mentions: [MessageJSON.UserMention], thisMessageTimestampCanResetDiscussionTimestampOfLastMessage: Bool = true, forEntityName entityName: String) throws { guard let context = discussion.managedObjectContext else { assertionFailure(); throw PersistedMessage.makeError(message: "Could not find context") } @@ -280,9 +397,7 @@ extension PersistedMessage { self.init(entity: entityDescription, insertInto: context) self.body = body - self.isReplyToAnotherMessage = isReplyToAnotherMessage self.permanentUUID = UUID() - self.rawMessageRepliedTo = replyTo self.rawStatus = rawStatus self.sectionIdentifier = try PersistedMessage.computeSectionIdentifier(fromTimestamp: timestamp, sortIndex: sortIndex, discussion: discussion) self.senderSequenceNumber = senderSequenceNumber @@ -297,8 +412,30 @@ extension PersistedMessage { mentions.forEach { mention in _ = try? PersistedUserMentionInMessage(mention: mention, message: self) } - - discussion.resetTimestampOfLastMessageIfCurrentValueIsEarlierThan(self.timestamp) + + switch replyTo { + case .none: + self.isReplyToAnotherMessage = false + self.rawMessageRepliedTo = nil + self.messageRepliedToIdentifier = nil + case .message(messageRepliedTo: let messageRepliedTo): + self.isReplyToAnotherMessage = true + self.rawMessageRepliedTo = messageRepliedTo + self.messageRepliedToIdentifier = nil + case .json(replyToJSON: let replyToJSON): + self.isReplyToAnotherMessage = true + if let messageRepliedTo = try PersistedMessage.findMessageFrom(reference: replyToJSON, within: discussion) { + self.rawMessageRepliedTo = messageRepliedTo + self.messageRepliedToIdentifier = nil + } else { + self.rawMessageRepliedTo = nil + self.messageRepliedToIdentifier = PendingRepliedTo(replyToJSON: replyToJSON, within: context) + } + } + + if thisMessageTimestampCanResetDiscussionTimestampOfLastMessage { + discussion.resetTimestampOfLastMessageIfCurrentValueIsEarlierThan(self.timestamp) + } discussion.unarchive() // Update the value of the doesMentionOwnedIdentity attribute @@ -306,11 +443,62 @@ extension PersistedMessage { resetDoesMentionOwnedIdentityValue() } + + + /// When creating a new `PersistedMessage`, we need to search for previous `PersistedMessage` that are a reply to this message. + /// These messages have a non-nil `messageRepliedToIdentifier` relationship that references this message. This method searches for these + /// messages, delete the `messageRepliedToIdentifier` and replaces it by a non-nil `messageRepliedTo` relationship. + /// This is called from the init of `PersistedMessageSent` and `PersistedMessageReceived`, not from the init of `PersistedMessage` are all necessary variables are not available at the end of the `PersistedMessage` init. + func updateMessagesReplyingToThisMessage() throws { + + guard let context = self.managedObjectContext else { throw Self.makeError(message: "Could not find context") } + guard let discussion else { assertionFailure(); throw ObvError.discussionIsNil } + + let senderIdentifier: Data + let senderThreadIdentifier: UUID + switch self.kind { + case .received: + guard let selfAsReceived = (self as? PersistedMessageReceived) else { assertionFailure(); return } + senderIdentifier = selfAsReceived.senderIdentifier + senderThreadIdentifier = selfAsReceived.senderThreadIdentifier + case .sent: + guard let selfAsSent = (self as? PersistedMessageSent) else { assertionFailure(); return } + guard let _senderIdentifier = selfAsSent.discussion?.ownedIdentity?.identity else { + assertionFailure() + return + } + senderIdentifier = _senderIdentifier + senderThreadIdentifier = selfAsSent.senderThreadIdentifier + case .none, .system: + return + } + + let pendingRepliedTos = try PendingRepliedTo.getAll(senderIdentifier: senderIdentifier, + senderSequenceNumber: self.senderSequenceNumber, + senderThreadIdentifier: senderThreadIdentifier, + discussion: discussion, + within: context) + + pendingRepliedTos.forEach { pendingRepliedTo in + guard let reply = pendingRepliedTo.message else { + assertionFailure() + try? pendingRepliedTo.delete() + return + } + assert(reply.isReplyToAnotherMessage) + reply.rawMessageRepliedTo = self + reply.messageRepliedToIdentifier = nil + try? pendingRepliedTo.delete() + } + + } + /// This `update()` method shall *only* be called from the similar `update()` from the subclass `PersistedMessageReceived`. func update(body: String?, newMentions: Set, senderSequenceNumber: Int, replyTo: PersistedMessage?, discussion: PersistedDiscussion) throws { - guard self.discussion.objectID == discussion.objectID else { assertionFailure(); throw Self.makeError(message: "Invalid discussion") } + guard let localDiscussion = self.discussion else { assertionFailure(); throw ObvError.discussionIsNil } + guard localDiscussion.objectID == discussion.objectID else { assertionFailure(); throw Self.makeError(message: "Invalid discussion") } guard self.senderSequenceNumber == senderSequenceNumber else { assertionFailure(); throw Self.makeError(message: "Invalid sender sequence number") } try self.replaceContentWith(newBody: body, newMentions: newMentions) self.rawMessageRepliedTo = replyTo @@ -318,12 +506,6 @@ extension PersistedMessage { } - /// Should *only* be called from `PersistedMessageReceived` - func setRawMessageRepliedTo(with rawMessageRepliedTo: PersistedMessage) { - assert(kind == .received) - self.rawMessageRepliedTo = rawMessageRepliedTo - } - func setHasUpdate() { onChangeFlag += 1 } @@ -338,6 +520,28 @@ extension PersistedMessage { } } + + /// Helper method. + /// Determine an appropriate `messageUploadTimestampFromServer`, needed to create the `PersistedMessageReceived` instance. + /// For oneToOne and GroupV1 discussions, this is simply the date indicated in the ObvMessage. + /// For GroupV2 discussions, we look for the original server timestamp that may exist in the messageJSON. If it exists, we use it (this is usefull to properly sort many "old" messages that were sent in a Group v2 discussion before we our acceptance to become a group member). + static func determineMessageUploadTimestampFromServer(messageUploadTimestampFromServerInObvMessage: Date, messageJSON: MessageJSON, discussionKind: PersistedDiscussion.Kind) -> Date { + + let messageUploadTimestampFromServer: Date + switch discussionKind { + case .oneToOne, .groupV1: + messageUploadTimestampFromServer = messageUploadTimestampFromServerInObvMessage + case .groupV2: + if let originalServerTimestamp = messageJSON.originalServerTimestamp { + messageUploadTimestampFromServer = min(originalServerTimestamp, messageUploadTimestampFromServerInObvMessage) + } else { + messageUploadTimestampFromServer = messageUploadTimestampFromServerInObvMessage + } + } + return messageUploadTimestampFromServer + + } + } @@ -345,218 +549,100 @@ extension PersistedMessage { extension PersistedMessage { - /// This is the function to call to delete this message. - /// This method makes sure the `requester` is allowed to delete this message. If the `requester` is `nil`, deletion is performed. - public func delete(requester: RequesterOfMessageDeletion?) throws -> InfoAboutWipedOrDeletedPersistedMessage { - if let requester = requester { - try throwIfRequesterIsNotAllowedToDeleteMessage(requester: requester) + /// This is the function to call to delete this message in case some expiration was reached. + public func deleteExpiredMessage() throws -> InfoAboutWipedOrDeletedPersistedMessage { + guard let context = self.managedObjectContext else { + assertionFailure() + throw ObvError.managedContextIsNil + } + guard let discussionPermanentID = discussion?.discussionPermanentID else { + throw ObvError.discussionIsNil } - guard let context = self.managedObjectContext else { assertionFailure(); throw Self.makeError(message: "Could not find context") } let deletedInfo = InfoAboutWipedOrDeletedPersistedMessage(kind: .deleted, - discussionPermanentID: self.discussion.discussionPermanentID, + discussionPermanentID: discussionPermanentID, + messagePermanentID: self.messagePermanentID) + context.delete(self) + return deletedInfo + } + + + /// Called from this class only, after checks have been made + private func deletePersistedMessage() throws -> InfoAboutWipedOrDeletedPersistedMessage { + guard let discussion else { + throw ObvError.discussionIsNil + } + guard let context = self.managedObjectContext else { + throw ObvError.managedContextIsNil + } + let deletedInfo = InfoAboutWipedOrDeletedPersistedMessage(kind: .deleted, + discussionPermanentID: discussion.discussionPermanentID, messagePermanentID: self.messagePermanentID) context.delete(self) return deletedInfo } - - /// This methods throws an error if the requester of this message deletion is not allowed to perform such a deletion. - func throwIfRequesterIsNotAllowedToDeleteMessage(requester: RequesterOfMessageDeletion) throws { - - // We fist consider the message kind + + func processMessageDeletionRequestRequestedFromCurrentDevice(deletionType: DeletionType) throws -> InfoAboutWipedOrDeletedPersistedMessage { + + assert(self.discussion?.status == .active || deletionType == .local, "This should have been checked already") switch self.kind { - + case .none: - + assertionFailure() - return // Allow deletion + return try deletePersistedMessage() case .system: - + guard let systemMessage = self as? PersistedMessageSystem else { // Unexpected, this is a bug assertionFailure() - return // Allow deletion + return try deletePersistedMessage() } - // A system message can only (and almost always) be locally deleted by an owned identity - - switch requester { - case .contact: - throw Self.makeError(message: "A system message cannot be deleted by a contact") - case .ownedIdentity(let ownedCryptoId, let deletionType): - guard let discussionOwnedCryptoId = discussion.ownedIdentity?.cryptoId else { - return // Rare case, we allow deletion - } - guard (discussionOwnedCryptoId == ownedCryptoId) else { - assertionFailure() - throw Self.makeError(message: "Unexpected owned identity for deleting this message") - } - switch deletionType { - case .local: - switch systemMessage.category { - case .contactJoinedGroup, - .contactLeftGroup, - .contactWasDeleted, - .callLogItem, - .updatedDiscussionSharedSettings, - .contactRevokedByIdentityProvider, - .discussionWasRemotelyWiped, - .notPartOfTheGroupAnymore, - .rejoinedGroup, - .contactIsOneToOneAgain, - .membersOfGroupV2WereUpdated, - .ownedIdentityIsPartOfGroupV2Admins, - .ownedIdentityIsNoLongerPartOfGroupV2Admins, - .ownedIdentityDidCaptureSensitiveMessages, - .contactIdentityDidCaptureSensitiveMessages: - return // Allow deletion - case .numberOfNewMessages, - .discussionIsEndToEndEncrypted: - throw Self.makeError(message: "Specific system message that cannot be deleted") - } - case .global: - throw Self.makeError(message: "We cannot globally delete a system message") + switch deletionType { + case .local: + switch systemMessage.category { + case .contactJoinedGroup, + .contactLeftGroup, + .contactWasDeleted, + .callLogItem, + .updatedDiscussionSharedSettings, + .contactRevokedByIdentityProvider, + .discussionWasRemotelyWiped, + .notPartOfTheGroupAnymore, + .rejoinedGroup, + .contactIsOneToOneAgain, + .membersOfGroupV2WereUpdated, + .ownedIdentityIsPartOfGroupV2Admins, + .ownedIdentityIsNoLongerPartOfGroupV2Admins, + .ownedIdentityDidCaptureSensitiveMessages, + .contactWasIntroducedToAnotherContact, + .contactIdentityDidCaptureSensitiveMessages: + return try deletePersistedMessage() + case .numberOfNewMessages, + .discussionIsEndToEndEncrypted: + throw ObvError.thisSpecificSystemMessageCannotBeDeleted } + case .global: + throw ObvError.cannotGloballyDeleteSystemMessage } case .received, .sent: - - // We are considering a received or sent message. We need more information be fore deciding whether we should throw or not. - break - - } - - assert(self.kind == .received || self.kind == .sent) - - // If we reach this point, we are considering a received or a sent message - - // Received or sent messages from locked and preDiscussion can only (and always) be locally deleted by an owned identity - - switch discussion.status { - case .locked, .preDiscussion: - switch requester { - case .contact: - throw Self.makeError(message: "A contact cannot delete a message from a locked or preDiscussion") - case .ownedIdentity(let ownedCryptoId, let deletionType): - guard let discussionOwnedCryptoId = discussion.ownedIdentity?.cryptoId else { - return // Rare case, we allow deletion - } - guard (discussionOwnedCryptoId == ownedCryptoId) else { - assertionFailure() - throw Self.makeError(message: "Unexpected owned identity for deleting this message") - } - switch deletionType { - case .local: - return // Allow deletion - case .global: - throw Self.makeError(message: "We cannot globally delete a message from a locked or preDiscussion") - } - } - case .active: - break // We need to consider more aspects about the message in order to decide whether we should throw or not - } - // If we reach this point, we are considering a received or a sent message in an active discussion - - // Messages that are wiped cannot be globally deleted by the owned identity and cannot be deleted by a contact - - guard !isRemoteWiped else { - switch requester { - case .contact: - throw Self.makeError(message: "A contact cannot delete a wiped message") - case .ownedIdentity(let ownedCryptoId, let deletionType): - guard let discussionOwnedCryptoId = discussion.ownedIdentity?.cryptoId else { - return // Rare case, we allow deletion - } - guard (discussionOwnedCryptoId == ownedCryptoId) else { - assertionFailure() - throw Self.makeError(message: "Unexpected owned identity for deleting this message") - } + if isRemoteWiped { switch deletionType { case .local: - return // Allow deletion + return try deletePersistedMessage() case .global: - throw Self.makeError(message: "We cannot globally delete a wiped message") - } - } - } - - // If we reach this point, we are considering a (non-wiped) received or a sent message in an active discussion - - switch try discussion.kind { - - case .oneToOne, .groupV1: - - // It is always ok to (locally or globally) delete a non-wiped received or sent message in a oneToOne or a groupV1 discussion - return // Allow deletion - - case .groupV2(withGroup: let group): - - // For a group v2 discussion, we make sure the requester has the appropriate rights - - guard let group = group else { - - // If the group cannot be found (which is unexpected), we only allow local deletion of the message from an owned identity - - switch requester { - case .contact: assertionFailure() - throw Self.makeError(message: "Since we cannot find the group, we disallow deletion by a contact") - case .ownedIdentity(ownedCryptoId: _, deletionType: let deletionType): - switch deletionType { - case .local: - return // Allow deletion - case .global: - throw Self.makeError(message: "Since we cannot find the group, we disallow global deletion by owned identity") - } - } - - } - - // We make sure the requester has the appropriate rights - - switch requester { - - case .ownedIdentity(ownedCryptoId: let ownedCryptoId, deletionType: let deletionType): - - guard (try group.ownCryptoId == ownedCryptoId) else { - assertionFailure() - throw Self.makeError(message: "Unexpected owned identity for deleting this discussion") - } - switch deletionType { - case .local: - return // Allow deletion - case .global: - if group.ownedIdentityIsAllowedToRemoteDeleteAnything { - return // Allow deletion - } else if group.ownedIdentityIsAllowedToEditOrRemoteDeleteOwnMessages && self is PersistedMessageSent { - return // Allow deletion - } else { - throw Self.makeError(message: "Owned identity is not allowed to perform a global (remote) delete in this case") - } - } - - case .contact(let ownedCryptoId, let contactCryptoId, _): - - guard (try group.ownCryptoId == ownedCryptoId) else { - assertionFailure() - throw Self.makeError(message: "Unexpected owned identity associated to contact for deleting this discussion") - } - guard let member = group.otherMembers.first(where: { $0.identity == contactCryptoId.getIdentity() }) else { - throw Self.makeError(message: "The deletion requester is not part of the group") - } - if member.isAllowedToRemoteDeleteAnything { - return // Allow deletion - } else if member.isAllowedToEditOrRemoteDeleteOwnMessages && (self as? PersistedMessageReceived)?.contactIdentity?.cryptoId == contactCryptoId { - return // Allow deletion - } else { - assertionFailure() - throw Self.makeError(message: "The member is not allowed to delete this message") + throw ObvError.cannotGloballyDeleteWipedMessage } + } else { + return try deletePersistedMessage() } - + } } @@ -601,74 +687,60 @@ extension PersistedMessage { } - public func setReactionFromOwnedIdentity(withEmoji emoji: String?, reactionTimestamp: Date) throws { + /// Set `messageUploadTimestampFromServer` to `nil` if the request is made on the current device + func setReactionFromOwnedIdentity(withEmoji emoji: String?, messageUploadTimestampFromServer: Date?) throws { // Never set an emoji on a wiped message guard !self.isWiped else { return } - // Make sure we are allowed to set a reaction - guard try ownedIdentityIsAllowedToSetReaction else { - throw Self.makeError(message: "Trying to set an own reaction in a group v2 discussion where we are not allowed to write") - } - // Set the reaction + // Set or update the reaction if let reaction = reactionFromOwnedIdentity() { - try reaction.updateEmoji(with: emoji, at: reactionTimestamp) + try reaction.updateEmoji(with: emoji, at: Date()) } else if let emoji = emoji { - _ = try PersistedMessageReactionSent(emoji: emoji, timestamp: reactionTimestamp, message: self) + _ = try PersistedMessageReactionSent(emoji: emoji, timestamp: messageUploadTimestampFromServer ?? Date(), message: self) } else { // The new emoji is nil (meaning we should remove a previous reaction) and no previous reaction can be found. There is nothing to do. } } + /// Expected to be called on the main thread as it allows the UI to determine if the owned identity is allowed to set a reaction on this message. + /// + /// This computed variable actually creates a child view context to simulate the call to the reaction setter for the owned identity. It returns `true` iff the call would work. public var ownedIdentityIsAllowedToSetReaction: Bool { get throws { - switch try discussion.kind { - case .oneToOne, .groupV1: - return true - case .groupV2(withGroup: let group): - guard let group = group else { - assertionFailure() - throw Self.makeError(message: "Could not determine group v2 while setting own reaction to a message") - } - return group.ownedIdentityIsAllowedToSendMessage - } - } - } - - - public func setReactionFromContact(_ contact: PersistedObvContactIdentity, withEmoji emoji: String?, reactionTimestamp: Date) throws { - // Never set an emoji on a wiped message - guard !self.isWiped else { return } - // Make sure the contact is allowed to set a reaction - switch try discussion.kind { - case .oneToOne(withContactIdentity: let discussionContact): - guard discussionContact == contact else { - assertionFailure() - throw Self.makeError(message: "Unexpected contact reaction") - } - case .groupV1(withContactGroup: let group): - guard let group = group else { + assert(Thread.isMainThread) + + guard let context = self.managedObjectContext else { assertionFailure() - throw Self.makeError(message: "Could not determine group while setting reaction from contact") + return false } - guard group.contactIdentities.contains(contact) else { + guard context.concurrencyType == .mainQueueConcurrencyType else { assertionFailure() - throw Self.makeError(message: "Unexpected contact reaction is group") + return false } - case .groupV2(withGroup: let group): - guard let group = group else { + + let childViewContext = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType) + childViewContext.parent = context + guard let messageInChildViewContext = try? PersistedMessage.get(with: self.typedObjectID, within: childViewContext) else { assertionFailure() - throw Self.makeError(message: "Could not determine group v2 while setting reaction from contact") + return false } - guard let member = group.otherMembers.first(where: { $0.identity == contact.identity }) else { + guard let ownedIdentity = messageInChildViewContext.discussion?.ownedIdentity else { assertionFailure() - throw Self.makeError(message: "Unexpected contact reaction is group v2") + return false } - guard member.isAllowedToSendMessage else { - assertionFailure() - throw Self.makeError(message: "Received a reaction from a contact that is now allowed to send messages") + // We return true iff the update would succeed + do { + _ = try ownedIdentity.processSetOrUpdateReactionOnMessageLocalRequestFromThisOwnedIdentity(messageObjectID: self.typedObjectID, newEmoji: nil) + return true + } catch { + return false } } - + } + + + func setReactionFromContact(_ contact: PersistedObvContactIdentity, withEmoji emoji: String?, reactionTimestamp: Date) throws { + guard !self.isWiped else { return } if let contactReaction = reactionFromContact(with: contact.cryptoId) { try contactReaction.updateEmoji(with: emoji, at: reactionTimestamp) } else { @@ -678,6 +750,7 @@ extension PersistedMessage { } + // MARK: - Utils for section identifiers extension PersistedMessage { @@ -740,11 +813,15 @@ extension PersistedMessage { extension PersistedMessage { private func resetDoesMentionOwnedIdentityValue() { + guard let discussion else { + assertionFailure("The discussion is nil") + return + } guard let ownedCryptoId = discussion.ownedIdentity?.cryptoId else { assertionFailure("Could not determine the owned crypto id which is unexpected at this point") if self.doesMentionOwnedIdentity { self.doesMentionOwnedIdentity = false - self.discussion.resetNewReceivedMessageDoesMentionOwnedIdentityValue() + discussion.resetNewReceivedMessageDoesMentionOwnedIdentityValue() } return } @@ -760,7 +837,7 @@ extension PersistedMessage { if self.doesMentionOwnedIdentity != newDoesMentionOwnedIdentity { self.doesMentionOwnedIdentity = newDoesMentionOwnedIdentity - self.discussion.resetNewReceivedMessageDoesMentionOwnedIdentityValue() + discussion.resetNewReceivedMessageDoesMentionOwnedIdentityValue() } } @@ -800,7 +877,6 @@ extension PersistedMessage { static let muteNotificationsEndDate = [discussion.rawValue, PersistedDiscussion.Predicate.Key.localConfiguration.rawValue, PersistedDiscussionLocalConfiguration.Predicate.Key.muteNotificationsEndDate.rawValue].joined(separator: ".") static let ownedIdentity = [discussion.rawValue, PersistedDiscussion.Predicate.Key.ownedIdentity.rawValue].joined(separator: ".") static let ownedIdentityIdentity = [discussion.rawValue, PersistedDiscussion.Predicate.Key.ownedIdentityIdentity].joined(separator: ".") - static let senderThreadIdentifier = [discussion.rawValue, PersistedDiscussion.Predicate.Key.senderThreadIdentifier.rawValue].joined(separator: ".") static let ownedIdentityHiddenProfileHash = [ownedIdentity, PersistedObvOwnedIdentity.Predicate.Key.hiddenProfileHash.rawValue].joined(separator: ".") static let ownedIdentityHiddenProfileSalt = [ownedIdentity, PersistedObvOwnedIdentity.Predicate.Key.hiddenProfileSalt.rawValue].joined(separator: ".") } @@ -815,9 +891,6 @@ extension PersistedMessage { static var doesMentionOwnedIdentity: NSPredicate { NSPredicate(Key.doesMentionOwnedIdentity, is: true) } - static func withSenderThreadIdentifier(_ senderThreadIdentifier: UUID) -> NSPredicate { - NSPredicate(Key.senderThreadIdentifier, EqualToUuid: senderThreadIdentifier) - } static func withOwnedIdentity(_ ownedIdentity: PersistedObvOwnedIdentity) -> NSPredicate { NSPredicate(Key.ownedIdentity, equalTo: ownedIdentity) } @@ -910,6 +983,9 @@ extension PersistedMessage { return NSPredicate(withEntity: PersistedMessageSystem.entity()) } } + static var withNoDiscussion: NSPredicate { + NSPredicate(withNilValueForKey: Key.discussion) + } } @nonobjc static func fetchRequest() -> NSFetchRequest { @@ -921,7 +997,19 @@ extension PersistedMessage { return NSFetchRequest(entityName: PersistedMessage.entityName) } + + static func getPersistedMessage(discussion: PersistedDiscussion, messageId: MessageIdentifier) throws -> PersistedMessage? { + switch messageId { + case .sent(let id): + return try PersistedMessageSent.getPersistedMessageSent(discussion: discussion, messageId: id) + case .received(let id): + return try PersistedMessageReceived.getPersistedMessageReceived(discussion: discussion, messageId: id) + case .system(let id): + return try PersistedMessageSystem.getPersistedMessageSystem(discussion: discussion, messageId: id) + } + } + public static func get(with objectID: TypeSafeManagedObjectID, within context: NSManagedObjectContext) throws -> PersistedMessage? { return try get(with: objectID.objectID, within: context) } @@ -1048,6 +1136,23 @@ extension PersistedMessage { return try context.fetch(request).first } + + static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { + let request: NSFetchRequest = PersistedMessage.fetchRequest() + request.predicate = Predicate.withNoDiscussion + request.propertiesToFetch = [] + request.fetchBatchSize = 1_000 + let items = try context.fetch(request) + items.forEach { item in + context.delete(item) // We do not call deletePersistedMessage as the discussion is nil + } + } + + + public static func batchDeletePendingRepliedToEntriesOlderThan(_ date: Date, within context: NSManagedObjectContext) throws { + try PendingRepliedTo.batchDeleteEntriesOlderThan(date, within: context) + } + } @@ -1065,17 +1170,17 @@ extension PersistedMessage { * Note that the `hasChanges` test is imporant: a call to `discussion.setHasUpdates()` marks the managed context as `dirty` * triggering a new call to willSave(). Without the `discussion.hasChanges` test, we would create an infinite loop. */ - if isUpdated && !self.changedValues().isEmpty && !self.discussion.hasChanges { + if let discussion, isUpdated, !self.changedValues().isEmpty, !discussion.hasChanges { discussion.setHasUpdates() } // When inserting or updating a message, we use it as a candidate for the illustrative message of the discussion. - if (isInserted || isUpdated) && !self.changedValues().isEmpty { + if let discussion, (isInserted || isUpdated), !self.changedValues().isEmpty { discussion.resetIllustrativeMessageWithMessageIfAppropriate(newMessage: self) } // When inserting a new message, and when the status of a message changes, the discussion must recompute the number of new messages - if isInserted || (isUpdated && self.changedValues().keys.contains(Predicate.Key.rawStatus.rawValue)) { + if let discussion, (isInserted || (isUpdated && self.changedValues().keys.contains(Predicate.Key.rawStatus.rawValue))) { do { try discussion.refreshNumberOfNewMessages() } catch { @@ -1192,7 +1297,7 @@ extension PersistedMessage { /// Shall *only* be called from one of the `PersistedMessage` subclasses func addMetadata(kind: MetadataKind, date: Date) throws { - os_log("Call to addMetadata for message %{public}@ of kind %{public}@", log: log, type: .error, objectID.debugDescription, kind.description) + os_log("Call to addMetadata for message %{public}@ of kind %{public}@", log: log, type: .info, objectID.debugDescription, kind.description) os_log("Creating a new PersistedMessageTimestampedMetadata for message %{public}@ with kind %{public}@", log: log, type: .info, objectID.debugDescription, kind.description) guard let pm = PersistedMessageTimestampedMetadata(kind: kind, date: date, message: self) else { assertionFailure(); throw Self.makeError(message: "Could not add timestamped metadata") } self.persistedMetadata.insert(pm) @@ -1259,14 +1364,6 @@ public final class PersistedMessageTimestampedMetadata: NSManagedObject, ObvErro context.delete(self) } - public override func didSave() { - super.didSave() - if isInserted { - guard let message = self.message else { assertionFailure(); return } - ObvMessengerCoreDataNotification.persistedMessageHasNewMetadata(persistedMessageObjectID: message.objectID) - .postOnDispatchQueue() - } - } struct Predicate { enum Key: String { @@ -1344,3 +1441,92 @@ extension ObvManagedObjectPermanentID where T: PersistedMessage { } } + + + +// MARK: - PendingRepliedTo + +/// When receiving a message that replies to another message, it might happen that this replied-to message is not available +/// because it did not arrive yet. This entity makes it possible to save the elements (`senderIdentifier`, etc.) referencing +/// this replied-to message for later. Each time a new message arrive, we check the `PendingRepliedTo` entities and look +/// for all those that reference this arriving message. This allows to associate message with its replied-to message a posteriori. +@objc(PendingRepliedTo) +fileprivate final class PendingRepliedTo: NSManagedObject, ObvErrorMaker { + + private static let entityName = "PendingRepliedTo" + static let errorDomain = "PendingRepliedTo" + + @NSManaged private var creationDate: Date + @NSManaged private var senderIdentifier: Data + @NSManaged private var senderSequenceNumber: Int + @NSManaged private var senderThreadIdentifier: UUID + + @NSManaged private(set) var message: PersistedMessage? + + convenience init?(replyToJSON: MessageReferenceJSON, within context: NSManagedObjectContext) { + + let entityDescription = NSEntityDescription.entity(forEntityName: PendingRepliedTo.entityName, in: context)! + self.init(entity: entityDescription, insertInto: context) + + self.creationDate = Date() + self.senderSequenceNumber = replyToJSON.senderSequenceNumber + self.senderThreadIdentifier = replyToJSON.senderThreadIdentifier + self.senderIdentifier = replyToJSON.senderIdentifier + + } + + + fileprivate func delete() throws { + guard let context = self.managedObjectContext else { throw Self.makeError(message: "Could not find context") } + context.delete(self) + } + + + private struct Predicate { + enum Key: String { + case creationDate = "creationDate" + case senderIdentifier = "senderIdentifier" + case senderSequenceNumber = "senderSequenceNumber" + case senderThreadIdentifier = "senderThreadIdentifier" + case message = "message" + } + static func with(senderIdentifier: Data, senderSequenceNumber: Int, senderThreadIdentifier: UUID, discussion: PersistedDiscussion) -> NSPredicate { + let discussionKey = [Key.message.rawValue, PersistedMessage.Predicate.Key.discussion.rawValue].joined(separator: ".") + return NSCompoundPredicate(andPredicateWithSubpredicates: [ + NSPredicate(Key.senderIdentifier, EqualToData: senderIdentifier), + NSPredicate(Key.senderSequenceNumber, EqualToInt: senderSequenceNumber), + NSPredicate(Key.senderThreadIdentifier, EqualToUuid: senderThreadIdentifier), + NSPredicate(format: "%K == %@", discussionKey, discussion.objectID), + ]) + } + static func createBefore(_ date: Date) -> NSPredicate { + NSPredicate(Key.creationDate, earlierThan: date) + } + } + + + @nonobjc static func fetchRequest() -> NSFetchRequest { + return NSFetchRequest(entityName: PendingRepliedTo.entityName) + } + + + fileprivate static func getAll(senderIdentifier: Data, senderSequenceNumber: Int, senderThreadIdentifier: UUID, discussion: PersistedDiscussion, within context: NSManagedObjectContext) throws -> [PendingRepliedTo] { + let request = PendingRepliedTo.fetchRequest() + request.predicate = Predicate.with(senderIdentifier: senderIdentifier, + senderSequenceNumber: senderSequenceNumber, + senderThreadIdentifier: senderThreadIdentifier, + discussion: discussion) + request.fetchBatchSize = 1_000 + return try context.fetch(request) + } + + + static func batchDeleteEntriesOlderThan(_ date: Date, within context: NSManagedObjectContext) throws { + let fetchRequest: NSFetchRequest = NSFetchRequest(entityName: PendingRepliedTo.entityName) + fetchRequest.predicate = Predicate.createBefore(date) + let batchDeleteRequest = NSBatchDeleteRequest(fetchRequest: fetchRequest) + batchDeleteRequest.resultType = .resultTypeStatusOnly + _ = try context.execute(batchDeleteRequest) + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageReaction.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageReaction.swift index dc1c963d..722b3dab 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageReaction.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageReaction.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -53,25 +53,28 @@ public class PersistedMessageReaction: NSManagedObject { let entityDescription = NSEntityDescription.entity(forEntityName: entityName, in: context)! self.init(entity: entityDescription, insertInto: context) - try self.setEmoji(with: emoji, at: timestamp) + self.rawEmoji = emoji + self.timestamp = timestamp self.message = message } func updateEmoji(with newEmoji: String?, at newTimestamp: Date) throws { + guard self.timestamp < newTimestamp else { return } - try self.setEmoji(with: newEmoji, at: newTimestamp) - } - - - private func setEmoji(with newEmoji: String?, at reactionTimestamp: Date) throws { + if let newEmoji { guard newEmoji.count == 1 else { throw PersistedMessageReaction.makeError(message: "Invalid emoji: \(newEmoji)") } } - self.rawEmoji = newEmoji - self.timestamp = reactionTimestamp + if self.rawEmoji != newEmoji { + self.rawEmoji = newEmoji + } + if self.timestamp != newTimestamp { + self.timestamp = newTimestamp + } } + func delete() throws { guard let context = self.managedObjectContext else { throw PersistedMessageReaction.makeError(message: "Cannot find context") } context.delete(self) diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageReceived.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageReceived.swift index 19883f7f..ae41797b 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageReceived.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageReceived.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,7 @@ import ObvEngine import ObvTypes import MobileCoreServices import OlvidUtils +import ObvSettings @objc(PersistedMessageReceived) @@ -52,7 +53,6 @@ public final class PersistedMessageReceived: PersistedMessage, ObvIdentifiableMa @NSManaged public private(set) var contactIdentity: PersistedObvContactIdentity? @NSManaged public private(set) var expirationForReceivedLimitedExistence: PersistedExpirationForReceivedMessageWithLimitedExistence? @NSManaged public private(set) var expirationForReceivedLimitedVisibility: PersistedExpirationForReceivedMessageWithLimitedVisibility? - @NSManaged private var messageRepliedToIdentifier: PendingRepliedTo? @NSManaged private var unsortedFyleMessageJoinWithStatus: Set @@ -67,6 +67,15 @@ public final class PersistedMessageReceived: PersistedMessage, ObvIdentifiableMa public override var kind: PersistedMessageKind { .received } + /// 2023-07-17: This is the most appropriate identifier to use in, e.g., notifications + public override var identifier: MessageIdentifier { + return .received(id: self.receivedMessageIdentifier) + } + + public var receivedMessageIdentifier: ReceivedMessageIdentifier { + return .objectID(objectID: self.objectID) + } + public override var textBody: String? { if readingRequiresUserAction { return NSLocalizedString("EPHEMERAL_MESSAGE", comment: "") @@ -92,21 +101,7 @@ public final class PersistedMessageReceived: PersistedMessage, ObvIdentifiableMa set { guard self.status != newValue else { return } self.rawStatus = newValue.rawValue - discussion.resetNewReceivedMessageDoesMentionOwnedIdentityValue() - switch self.status { - case .new: - break - case .unread: - break - case .read: - // When a received message is marked as "read", we check whether it has a limited visibility. - // If this is the case, we immediately create an appropriate expiration for this message. - if let visibilityDuration = self.visibilityDuration { - assert(self.expirationForReceivedLimitedVisibility == nil) - self.expirationForReceivedLimitedVisibility = PersistedExpirationForReceivedMessageWithLimitedVisibility(messageReceivedWithLimitedVisibility: self, - visibilityDuration: visibilityDuration) - } - } + discussion?.resetNewReceivedMessageDoesMentionOwnedIdentityValue() } } @@ -141,48 +136,31 @@ public final class PersistedMessageReceived: PersistedMessage, ObvIdentifiableMa self.readOnce || self.visibilityDuration != nil } - /// Called when a received message was globally wiped by a contact - public func wipeByContact(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId, messageUploadTimestampFromServer: Date) throws -> InfoAboutWipedOrDeletedPersistedMessage { - let info = InfoAboutWipedOrDeletedPersistedMessage(kind: .wiped, - discussionPermanentID: discussion.discussionPermanentID, - messagePermanentID: self.messagePermanentID) - let requester = RequesterOfMessageDeletion.contact(ownedCryptoId: ownedCryptoId, - contactCryptoId: contactCryptoId, - messageUploadTimestampFromServer: messageUploadTimestampFromServer) - try throwIfRequesterIsNotAllowedToDeleteMessage(requester: requester) + + // MARK: - Processing wipe requests + + /// Called when receiving a wipe request from a contact or another owned device. Shall only be called from ``PersistedDiscussion.processWipeMessageRequestForPersistedMessageReceived(among:from:messageUploadTimestampFromServer:)``. + override func wipeThisMessage(requesterCryptoId: ObvCryptoId) throws { for join in fyleMessageJoinWithStatuses { try join.wipe() } - self.deleteBodyAndMentions() - try? self.reactions.forEach { try $0.delete() } - try addMetadata(kind: .remoteWiped(remoteCryptoId: contactCryptoId), date: Date()) - return info + try super.wipeThisMessage(requesterCryptoId: requesterCryptoId) } - - public func replaceContentWith(newBody: String?, newMentions: Set, requester: ObvCryptoId, messageUploadTimestampFromServer: Date) throws { + // MARK: - Updating a message + + func processUpdateReceivedMessageRequest(newTextBody: String?, newUserMentions: [MessageJSON.UserMention], messageUploadTimestampFromServer: Date, requester: ObvCryptoId) throws { guard self.contactIdentity?.cryptoId == requester else { throw Self.makeError(message: "The requester is not the contact who created the original message") } - guard self.textBody != newBody else { return } - try super.replaceContentWith(newBody: newBody, newMentions: newMentions) + try super.processUpdateMessageRequest(newTextBody: newTextBody, newUserMentions: newUserMentions) try deleteMetadataOfKind(.edited) try addMetadata(kind: .edited, date: messageUploadTimestampFromServer) } - /// `true` when this instance can be edited after being received - override var textBodyCanBeEdited: Bool { - switch discussion.status { - case .active: - guard !self.isLocallyWiped else { return false } - guard !self.isRemoteWiped else { return false } - return true - case .preDiscussion, .locked: - return false - } - } + // MARK: - Other methods - public func updateMissedMessageCount(with missedMessageCount: Int) { + guard self.missedMessageCount != missedMessageCount else { return } self.missedMessageCount = missedMessageCount } @@ -205,7 +183,7 @@ public final class PersistedMessageReceived: PersistedMessage, ObvIdentifiableMa extension PersistedMessageReceived { - public convenience init(messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, localDownloadTimestamp: Date, messageJSON: MessageJSON, contactIdentity: PersistedObvContactIdentity, messageIdentifierFromEngine: Data, returnReceiptJSON: ReturnReceiptJSON?, missedMessageCount: Int, discussion: PersistedDiscussion, obvMessageContainsAttachments: Bool) throws { + private convenience init(messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, localDownloadTimestamp: Date, messageJSON: MessageJSON, contactIdentity: PersistedObvContactIdentity, messageIdentifierFromEngine: Data, returnReceiptJSON: ReturnReceiptJSON?, missedMessageCount: Int, discussion: PersistedDiscussion, obvMessageContainsAttachments: Bool) throws { // Disallow the creation of an "empty" message let messageBodyIsEmpty = (messageJSON.body == nil || messageJSON.body?.isEmpty == true) @@ -214,8 +192,6 @@ extension PersistedMessageReceived { throw Self.makeError(message: "Trying to create an empty PersistedMessageReceived") } - guard let context = discussion.managedObjectContext else { throw PersistedMessageReceived.makeError(message: "Could not find context") } - // Received messages can only be created when the discussion status is 'active' switch discussion.status { @@ -269,29 +245,18 @@ extension PersistedMessageReceived { timestamp: messageUploadTimestampFromServer, within: discussion) - let isReplyToAnotherMessage: Bool - let replyTo: PersistedMessage? - let messageRepliedToIdentifier: PendingRepliedTo? + let replyTo: ReplyToType? if let replyToJSON = messageJSON.replyTo { - isReplyToAnotherMessage = true - replyTo = try PersistedMessage.findMessageFrom(reference: replyToJSON, within: discussion) - if replyTo == nil { - messageRepliedToIdentifier = PendingRepliedTo(replyToJSON: replyToJSON, within: context) - } else { - messageRepliedToIdentifier = nil - } + replyTo = .json(replyToJSON: replyToJSON) } else { - isReplyToAnotherMessage = false replyTo = nil - messageRepliedToIdentifier = nil } - + try self.init(timestamp: adjustedTimestamp, body: messageJSON.body, rawStatus: MessageStatus.new.rawValue, senderSequenceNumber: messageJSON.senderSequenceNumber, sortIndex: sortIndex, - isReplyToAnotherMessage: isReplyToAnotherMessage, replyTo: replyTo, discussion: discussion, readOnce: messageJSON.expiration?.readOnce ?? false, @@ -300,7 +265,6 @@ extension PersistedMessageReceived { mentions: messageJSON.userMentions, forEntityName: PersistedMessageReceived.entityName) - self.messageRepliedToIdentifier = messageRepliedToIdentifier self.contactIdentity = contactIdentity self.senderIdentifier = contactIdentity.cryptoId.getIdentity() self.senderThreadIdentifier = messageJSON.senderThreadIdentifier @@ -313,13 +277,14 @@ extension PersistedMessageReceived { // If this is the case, we immediately create an appropriate expiration for this message. if let existenceDuration = messageJSON.expiration?.existenceDuration { assert(self.expirationForReceivedLimitedExistence == nil) - self.expirationForReceivedLimitedExistence = PersistedExpirationForReceivedMessageWithLimitedExistence(messageReceivedWithLimitedExistence: self, - existenceDuration: existenceDuration, - messageUploadTimestampFromServer: messageUploadTimestampFromServer, - downloadTimestampFromServer: downloadTimestampFromServer, - localDownloadTimestamp: localDownloadTimestamp) + self.expirationForReceivedLimitedExistence = PersistedExpirationForReceivedMessageWithLimitedExistence( + messageReceivedWithLimitedExistence: self, + existenceDuration: existenceDuration, + messageUploadTimestampFromServer: messageUploadTimestampFromServer, + downloadTimestampFromServer: downloadTimestampFromServer, + localDownloadTimestamp: localDownloadTimestamp) } - + // Now that this message is created, we can look for all the messages that have a `messageRepliedToIdentifier` referencing this message. // For these messages, we delete this reference and, instead, reference this message using the `messageRepliedTo` relationship. @@ -328,40 +293,177 @@ extension PersistedMessageReceived { } - /// When creating a new `PersistedMessageReceived`, we need to search for previous `PersistedMessageReceived` that are a reply to this message. - /// These messages have a non-nil `messageRepliedToIdentifier` relationship that references this message. This method searches for these - /// messages, delete the `messageRepliedToIdentifier` and replaces it by a non-nil `messageRepliedTo` relationship. - private func updateMessagesReplyingToThisMessage() throws { - - guard let context = self.managedObjectContext else { throw Self.makeError(message: "Could not find context") } + /// This method shall be called exclusively from ``PersistedObvContactIdentity.createOrOverridePersistedMessageReceived(obvMessage:messageJSON:returnReceiptJSON:overridePreviousPersistedMessage:)`` or from ``static PersistedMessageReceived.createOrUpdatePersistedMessageReceived(obvMessage:messageJSON:returnReceiptJSON:from:in:)``. + /// Returns all the `ObvAttachment` that are fully received, i.e., such that the `ReceivedFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk. + static func createPersistedMessageReceived(obvMessage: ObvMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?, from persistedContact: PersistedObvContactIdentity, in discussion: PersistedDiscussion) throws -> (createdMessage: PersistedMessageReceived, attachmentsFullyReceivedOrCancelledByServer: [ObvAttachment]) { + + guard try PersistedMessageReceived.get(messageIdentifierFromEngine: obvMessage.messageIdentifierFromEngine, from: persistedContact) == nil else { + throw ObvError.persistedMessageReceivedAlreadyExist + } + + guard persistedContact.managedObjectContext == discussion.managedObjectContext else { + throw ObvError.distinctContexts + } + + let missedMessageCount = updateNextMessageMissedMessageCountAndGetCurrentMissedMessageCount( + discussion: discussion, + contactIdentity: persistedContact, + senderThreadIdentifier: messageJSON.senderThreadIdentifier, + senderSequenceNumber: messageJSON.senderSequenceNumber) + + let discussionKind = try discussion.kind + + let messageUploadTimestampFromServer = PersistedMessage.determineMessageUploadTimestampFromServer( + messageUploadTimestampFromServerInObvMessage: obvMessage.messageUploadTimestampFromServer, + messageJSON: messageJSON, + discussionKind: discussionKind) + + let message = try Self.init( + messageUploadTimestampFromServer: messageUploadTimestampFromServer, + downloadTimestampFromServer: obvMessage.downloadTimestampFromServer, + localDownloadTimestamp: obvMessage.localDownloadTimestamp, + messageJSON: messageJSON, + contactIdentity: persistedContact, + messageIdentifierFromEngine: obvMessage.messageIdentifierFromEngine, + returnReceiptJSON: returnReceiptJSON, + missedMessageCount: missedMessageCount, + discussion: discussion, + obvMessageContainsAttachments: !obvMessage.attachments.isEmpty) + + // Process the attachments within the message - let pendingRepliedTos = try PendingRepliedTo.getAll(senderIdentifier: self.senderIdentifier, - senderSequenceNumber: self.senderSequenceNumber, - senderThreadIdentifier: self.senderThreadIdentifier, - discussion: self.discussion, - within: context) - pendingRepliedTos.forEach { pendingRepliedTo in - guard let reply = pendingRepliedTo.message else { - assertionFailure() - try? pendingRepliedTo.delete() - return + let attachmentsFullyReceivedOrCancelledByServer = message.processObvAttachments(of: obvMessage) + + return (message, attachmentsFullyReceivedOrCancelledByServer) + + } + + + /// Returns all the `ObvAttachment` that are fully received, i.e., such that the `ReceivedFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk. + private func processObvAttachments(of obvMessage: ObvMessage) -> [ObvAttachment] { + var attachmentsFullyReceivedOrCancelledByServer = [ObvAttachment]() + for obvAttachment in obvMessage.attachments { + do { + let attachmentFullyReceivedOrCancelledByServer = try processObvAttachment(obvAttachment) + if attachmentFullyReceivedOrCancelledByServer { + attachmentsFullyReceivedOrCancelledByServer.append(obvAttachment) + } + } catch { + os_log("Could not process one of the message's attachments: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + // We continue anyway } - assert(reply.isReplyToAnotherMessage) - reply.setRawMessageRepliedTo(with: self) - reply.messageRepliedToIdentifier = nil - try? pendingRepliedTo.delete() } + return attachmentsFullyReceivedOrCancelledByServer + } + + + /// Returns `true` if the attachment is fully received, i.e., if the `ReceivedFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk. + /// Also returns `true` if the attachment was cancelled by the server. + func processObvAttachment(_ obvAttachment: ObvAttachment) throws -> Bool { + + guard let context = self.managedObjectContext else { + throw ObvError.noContext + } + + let attachmentFullyReceivedOrCancelledByServer = try ReceivedFyleMessageJoinWithStatus.createOrUpdateReceivedFyleMessageJoinWithStatus(with: obvAttachment, within: context) + + return attachmentFullyReceivedOrCancelledByServer + + } + + + /// This method shall be called exclusively from ``PersistedObvContactIdentity.createOrOverridePersistedMessageReceived(obvMessage:messageJSON:returnReceiptJSON:overridePreviousPersistedMessage:)``. + /// Returns all the `ObvAttachment` that are fully received, i.e., such that the `ReceivedFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk. + static func createOrUpdatePersistedMessageReceived(obvMessage: ObvMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?, from persistedContact: PersistedObvContactIdentity, in discussion: PersistedDiscussion) throws -> (createdOrUpdatedMessage: PersistedMessageReceived, attachmentsFullyReceived: [ObvAttachment]) { + + let attachmentsFullyReceivedOrCancelledByServer: [ObvAttachment] + let createdOrUpdatedMessage: PersistedMessageReceived + + if let previousMessage = try PersistedMessageReceived.get(messageIdentifierFromEngine: obvMessage.messageIdentifierFromEngine, from: persistedContact) { + + os_log("Updating a previous received message...", log: log, type: .info) + + attachmentsFullyReceivedOrCancelledByServer = try previousMessage.updatePersistedMessageReceived( + withMessageJSON: messageJSON, + obvMessage: obvMessage, + returnReceiptJSON: returnReceiptJSON, + discussion: discussion) + + createdOrUpdatedMessage = previousMessage + + } else { + + os_log("Creating a persisted message...", log: log, type: .debug) + + (createdOrUpdatedMessage, attachmentsFullyReceivedOrCancelledByServer) = try PersistedMessageReceived.createPersistedMessageReceived( + obvMessage: obvMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + from: persistedContact, + in: discussion) + + } + + return (createdOrUpdatedMessage, attachmentsFullyReceivedOrCancelledByServer) + + } + + + /// Helper method for ``static PersistedMessageReceived.create(messageIdentifierFromEngine:persistedContact:)``. + private static func updateNextMessageMissedMessageCountAndGetCurrentMissedMessageCount(discussion: PersistedDiscussion, contactIdentity: PersistedObvContactIdentity, senderThreadIdentifier: UUID, senderSequenceNumber: Int) -> Int { + let latestDiscussionSenderSequenceNumber: PersistedLatestDiscussionSenderSequenceNumber? + do { + latestDiscussionSenderSequenceNumber = try PersistedLatestDiscussionSenderSequenceNumber.get(discussion: discussion, contactIdentity: contactIdentity, senderThreadIdentifier: senderThreadIdentifier) + } catch { + os_log("Could not get PersistedLatestDiscussionSenderSequenceNumber: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + return 0 + } + + if let latestDiscussionSenderSequenceNumber = latestDiscussionSenderSequenceNumber { + if senderSequenceNumber < latestDiscussionSenderSequenceNumber.latestSequenceNumber { + guard let nextMessage = PersistedMessageReceived.getNextMessageBySenderSequenceNumber(senderSequenceNumber, senderThreadIdentifier: senderThreadIdentifier, contactIdentity: contactIdentity, within: discussion) else { + return 0 + } + if nextMessage.missedMessageCount < nextMessage.senderSequenceNumber - senderSequenceNumber { + // The message is older than the number of messages missed in the following message --> nothing to do + return 0 + } + let remainingMissedCount = nextMessage.missedMessageCount - (nextMessage.senderSequenceNumber - senderSequenceNumber) + + nextMessage.updateMissedMessageCount(with: nextMessage.senderSequenceNumber - senderSequenceNumber - 1) + + return remainingMissedCount + } else if senderSequenceNumber > latestDiscussionSenderSequenceNumber.latestSequenceNumber { + let missingCount = senderSequenceNumber - latestDiscussionSenderSequenceNumber.latestSequenceNumber - 1 + latestDiscussionSenderSequenceNumber.updateLatestSequenceNumber(with: senderSequenceNumber) + return missingCount + } else { + // Unexpected: senderSequenceNumber == latestSequenceNumber (this should normally not happen...) + return 0 + } + } else { + _ = PersistedLatestDiscussionSenderSequenceNumber(discussion: discussion, + contactIdentity: contactIdentity, + senderThreadIdentifier: senderThreadIdentifier, + latestSequenceNumber: senderSequenceNumber) + return 0 + } } - public func update(withMessageJSON json: MessageJSON, messageIdentifierFromEngine: Data, returnReceiptJSON: ReturnReceiptJSON?, messageUploadTimestampFromServer: Date, downloadTimestampFromServer: Date, localDownloadTimestamp: Date, discussion: PersistedDiscussion) throws { + + /// Returns all the `ObvAttachment` that are fully received, i.e., such that the `ReceivedFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk. + private func updatePersistedMessageReceived(withMessageJSON json: MessageJSON, obvMessage: ObvMessage, returnReceiptJSON: ReturnReceiptJSON?, discussion: PersistedDiscussion) throws -> [ObvAttachment] { + guard self.messageIdentifierFromEngine == messageIdentifierFromEngine else { throw Self.makeError(message: "Invalid message identifier from engine") } guard !isWiped else { - return + os_log("Trying to update a wiped received message. We don't do that an return immediately.", log: Self.log, type: .info) + return obvMessage.attachments } let replyTo: PersistedMessage? @@ -380,7 +482,7 @@ extension PersistedMessageReceived { do { self.serializedReturnReceipt = try returnReceiptJSON?.jsonEncode() } catch let error { - os_log("Could not encode a return receipt while create a persisted message received: %{public}@", log: PersistedMessageReceived.log, type: .fault, error.localizedDescription) + os_log("Could not encode a return receipt while create a persisted message received: %{public}@", log: Self.log, type: .fault, error.localizedDescription) assertionFailure() } @@ -392,14 +494,28 @@ extension PersistedMessageReceived { self.visibilityDuration = expirationJson.visibilityDuration } if self.expirationForReceivedLimitedExistence == nil && expirationJson.existenceDuration != nil { - self.expirationForReceivedLimitedExistence = PersistedExpirationForReceivedMessageWithLimitedExistence(messageReceivedWithLimitedExistence: self, - existenceDuration: expirationJson.existenceDuration!, - messageUploadTimestampFromServer: messageUploadTimestampFromServer, - downloadTimestampFromServer: downloadTimestampFromServer, - localDownloadTimestamp: localDownloadTimestamp) + let discussionKind = try discussion.kind + let messageUploadTimestampFromServer = Self.determineMessageUploadTimestampFromServer( + messageUploadTimestampFromServerInObvMessage: obvMessage.messageUploadTimestampFromServer, + messageJSON: json, + discussionKind: discussionKind) + self.expirationForReceivedLimitedExistence = PersistedExpirationForReceivedMessageWithLimitedExistence( + messageReceivedWithLimitedExistence: self, + existenceDuration: expirationJson.existenceDuration!, + messageUploadTimestampFromServer: messageUploadTimestampFromServer, + downloadTimestampFromServer: obvMessage.downloadTimestampFromServer, + localDownloadTimestamp: obvMessage.localDownloadTimestamp) } } + + // Process the attachments within the message + + let attachmentsFullyReceivedOrCancelledByServer = processObvAttachments(of: obvMessage) + + return attachmentsFullyReceivedOrCancelledByServer + } + static private func determineAppropriateSortIndex(forSenderSequenceNumber senderSequenceNumber: Int, senderThreadIdentifier: UUID, contactIdentity: PersistedObvContactIdentity, timestamp: Date, within discussion: PersistedDiscussion) throws -> (sortIndex: Double, adjustedTimestamp: Date) { @@ -435,26 +551,34 @@ extension PersistedMessageReceived { } - public func allowReading(now: Date) throws { + func userWantsToReadThisReceivedMessageWithLimitedVisibility(dateWhenMessageWasRead: Date, requestedOnAnotherOwnedDevice: Bool) throws -> InfoAboutWipedOrDeletedPersistedMessage? { assert(isEphemeralMessageWithUserAction) guard isEphemeralMessageWithUserAction else { assertionFailure("There is no reason why this is called on a message that is not marked as readOnce or with a certain visibility") - return + return nil + } + if requestedOnAnotherOwnedDevice && self.readOnce { + let infos = try self.deleteExpiredMessage() + return infos + } else { + try self.markAsRead(dateWhenMessageWasRead: dateWhenMessageWasRead) + return nil } - try self.markAsRead(now: now) } + /// This allows to prevent auto-read for messages received with a more restrictive ephemerality than that of the discussion. public var ephemeralityIsAtLeastAsPermissiveThanDiscussionSharedConfiguration: Bool { if self.readOnce { - guard discussion.sharedConfiguration.readOnce else { return false } + guard let discussionSharedConfigurationReadOnce = self.discussion?.sharedConfiguration.readOnce else { assertionFailure(); return false } + guard discussionSharedConfigurationReadOnce else { return false } } if let messageVisibilityDuration = self.visibilityDuration { - guard let discussionVisibilityDuration = self.discussion.sharedConfiguration.visibilityDuration else { return false } + guard let discussionVisibilityDuration = self.discussion?.sharedConfiguration.visibilityDuration else { return false } guard messageVisibilityDuration >= discussionVisibilityDuration else { return false } } if let messageExistenceDuration = self.initialExistenceDuration { - guard let discussionExistenceDuration = self.discussion.sharedConfiguration.existenceDuration else { return false } + guard let discussionExistenceDuration = self.discussion?.sharedConfiguration.existenceDuration else { return false } guard messageExistenceDuration >= discussionExistenceDuration else { return false } } return true @@ -485,6 +609,7 @@ extension PersistedMessageReceived { } var replyToActionCanBeMadeAvailableForReceivedMessage: Bool { + guard let discussion else { return false } guard discussion.status == .active else { return false } if readOnce { return status == .read @@ -506,7 +631,7 @@ extension PersistedMessageReceived { var repliesTo: RepliedMessage { if let messageRepliedTo = self.rawMessageRepliedTo { return .available(message: messageRepliedTo) - } else if self.messageRepliedToIdentifier != nil { + } else if self.messageRepliedToIdentifierIsNonNil { return .notAvailableYet } else if self.isReplyToAnotherMessage { return .deleted @@ -522,25 +647,43 @@ extension PersistedMessageReceived { extension PersistedMessageReceived { - public func markAsNotNew(now: Date) throws { + func markAsNotNew(dateWhenMessageTurnedNotNew: Date) throws -> Date? { switch self.status { case .new: if isEphemeralMessageWithUserAction { self.status = .unread } else { - try markAsRead(now: now) + try markAsRead(dateWhenMessageWasRead: dateWhenMessageTurnedNotNew) } + return self.timestamp case .unread, .read: - break + return nil } } - private func markAsRead(now: Date) throws { + + private func markAsRead(dateWhenMessageWasRead: Date) throws { os_log("Call to markAsRead in PersistedMessageReceived for message %{public}@", log: PersistedMessageReceived.log, type: .debug, self.objectID.debugDescription) + if self.status != .read { + self.status = .read - try self.addMetadata(kind: .read, date: now) + + // When a received message is marked as "read", we check whether it has a limited visibility. + // If this is the case, we immediately create an appropriate expiration for this message. + + if let visibilityDuration = self.visibilityDuration { + assert(self.expirationForReceivedLimitedVisibility == nil) + let visibilityDurationCorrection = max(0, Date().timeIntervalSince(dateWhenMessageWasRead)) + self.expirationForReceivedLimitedVisibility = PersistedExpirationForReceivedMessageWithLimitedVisibility( + messageReceivedWithLimitedVisibility: self, + visibilityDuration: max(0, visibilityDuration - visibilityDurationCorrection)) + } + + try self.addMetadata(kind: .read, date: dateWhenMessageWasRead) + } + } @@ -555,7 +698,7 @@ extension PersistedMessageReceived { } - func toReceivedMessageReferenceJSON() -> MessageReferenceJSON? { + func toReceivedMessageReferenceJSON() -> MessageReferenceJSON { return MessageReferenceJSON(senderSequenceNumber: self.senderSequenceNumber, senderThreadIdentifier: self.senderThreadIdentifier, senderIdentifier: self.senderIdentifier) @@ -649,6 +792,9 @@ extension PersistedMessageReceived { static func createdBefore(date: Date) -> NSPredicate { NSPredicate(PersistedMessage.Predicate.Key.timestamp, earlierThan: date) } + static func createdBeforeOrAt(date: Date) -> NSPredicate { + NSPredicate(PersistedMessage.Predicate.Key.timestamp, earlierOrAt: date) + } static func withLargerSortIndex(than message: PersistedMessage) -> NSPredicate { NSPredicate(PersistedMessage.Predicate.Key.sortIndex, LargerThanDouble: message.sortIndex) } @@ -661,6 +807,13 @@ extension PersistedMessageReceived { static var isDiscussionUnmuted: NSPredicate { PersistedMessage.Predicate.isDiscussionUnmuted } + static func withMessageWriterIdentifier(_ identifier: MessageWriterIdentifier) -> NSPredicate { + NSCompoundPredicate(andPredicateWithSubpredicates: [ + withContactIdentityIdentity(identifier.senderIdentifier), + PersistedMessage.Predicate.withSenderSequenceNumberEqualTo(identifier.senderSequenceNumber), + withSenderThreadIdentifier(identifier.senderThreadIdentifier), + ]) + } } @@ -669,6 +822,26 @@ extension PersistedMessageReceived { } + static func getPersistedMessageReceived(discussion: PersistedDiscussion, messageId: ReceivedMessageIdentifier) throws -> PersistedMessageReceived? { + guard let context = discussion.managedObjectContext else { assertionFailure(); throw ObvError.noContext } + let request: NSFetchRequest = PersistedMessageReceived.fetchRequest() + switch messageId { + case .objectID(let objectID): + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withObjectID(objectID), + Predicate.withinDiscussion(discussion), + ]) + case .authorIdentifier(let writerIdentifier): + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withinDiscussion(discussion), + Predicate.withMessageWriterIdentifier(writerIdentifier), + ]) + } + request.fetchLimit = 1 + return try context.fetch(request).first + } + + public static func get(with objectID: TypeSafeManagedObjectID, within context: NSManagedObjectContext) throws -> PersistedMessageReceived? { let request: NSFetchRequest = PersistedMessageReceived.fetchRequest() request.predicate = Predicate.withObjectID(objectID.objectID) @@ -677,7 +850,7 @@ extension PersistedMessageReceived { } - public static func getNextMessageBySenderSequenceNumber(_ sequenceNumber: Int, senderThreadIdentifier: UUID, contactIdentity: PersistedObvContactIdentity, within discussion: PersistedDiscussion) -> PersistedMessageReceived? { + private static func getNextMessageBySenderSequenceNumber(_ sequenceNumber: Int, senderThreadIdentifier: UUID, contactIdentity: PersistedObvContactIdentity, within discussion: PersistedDiscussion) -> PersistedMessageReceived? { guard let context = discussion.managedObjectContext else { return nil } let request: NSFetchRequest = PersistedMessageReceived.fetchRequest() request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ @@ -692,7 +865,7 @@ extension PersistedMessageReceived { } - static func getPreviousMessageBySenderSequenceNumber(_ sequenceNumber: Int, senderThreadIdentifier: UUID, contactIdentity: PersistedObvContactIdentity, within discussion: PersistedDiscussion) -> PersistedMessageReceived? { + private static func getPreviousMessageBySenderSequenceNumber(_ sequenceNumber: Int, senderThreadIdentifier: UUID, contactIdentity: PersistedObvContactIdentity, within discussion: PersistedDiscussion) -> PersistedMessageReceived? { guard let context = discussion.managedObjectContext else { return nil } let request: NSFetchRequest = PersistedMessageReceived.fetchRequest() request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ @@ -710,9 +883,9 @@ extension PersistedMessageReceived { /// Each message of the discussion that is in the status `new` changes status as follows: /// - If the message is such that `hasWipeAfterRead` is `true`, the new status is `unread` /// - Otherwise, the new status is `read`. - public static func markAllAsNotNew(within discussion: PersistedDiscussion) throws { + static func markAllAsNotNew(within discussion: PersistedDiscussion, dateWhenMessageTurnedNotNew: Date) throws -> Date? { os_log("Call to markAllAsNotNew in PersistedMessageReceived for discussion %{public}@", log: log, type: .debug, discussion.objectID.debugDescription) - guard let context = discussion.managedObjectContext else { return } + guard let context = discussion.managedObjectContext else { assertionFailure(); return nil } let request: NSFetchRequest = PersistedMessageReceived.fetchRequest() request.includesSubentities = true request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ @@ -720,11 +893,30 @@ extension PersistedMessageReceived { Predicate.isNew, ]) let messages = try context.fetch(request) - guard !messages.isEmpty else { return } - let now = Date() + guard !messages.isEmpty else { return nil } try messages.forEach { - try $0.markAsNotNew(now: now) + _ = try $0.markAsNotNew(dateWhenMessageTurnedNotNew: dateWhenMessageTurnedNotNew) } + return messages.map({ $0.timestamp }).max() + } + + + static func markAllAsNotNew(within discussion: PersistedDiscussion, untilDate: Date, dateWhenMessageTurnedNotNew: Date) throws -> Date? { + os_log("Call to markAllAsNotNew in PersistedMessageReceived for discussion %{public}@", log: log, type: .debug, discussion.objectID.debugDescription) + guard let context = discussion.managedObjectContext else { assertionFailure(); return nil } + let request: NSFetchRequest = PersistedMessageReceived.fetchRequest() + request.includesSubentities = true + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.createdBeforeOrAt(date: untilDate), + Predicate.withinDiscussion(discussion), + Predicate.isNew, + ]) + let messages = try context.fetch(request) + guard !messages.isEmpty else { return nil } + try messages.forEach { + _ = try $0.markAsNotNew(dateWhenMessageTurnedNotNew: dateWhenMessageTurnedNotNew) + } + return messages.map({ $0.timestamp }).max() } @@ -783,6 +975,8 @@ extension PersistedMessageReceived { /// This method returns "all" the received messages with the given identifier from engine. In practice, we do not expect more than on message within the array. + /// For now, this is used in the notification service, when we fail to decrypt a notification. In that case, we assume the message was received by the app first (which is the reason it could not be decrypted in the notification extension) and we create the notification + /// by fetching the message from database. public static func getAll(messageIdentifierFromEngine: Data, within context: NSManagedObjectContext) throws -> [PersistedMessageReceived] { let request: NSFetchRequest = PersistedMessageReceived.fetchRequest() request.predicate = Predicate.withMessageIdentifierFromEngine(messageIdentifierFromEngine) @@ -791,6 +985,18 @@ extension PersistedMessageReceived { } + /// This method returns "all" the received messages with the given identifier from engine. In practice, we do not expect more than on message within the array. + public static func getAll(ownedCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, within context: NSManagedObjectContext) throws -> [PersistedMessageReceived] { + let request: NSFetchRequest = PersistedMessageReceived.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.forOwnedCryptoId(ownedCryptoId), + Predicate.withMessageIdentifierFromEngine(messageIdentifierFromEngine), + ]) + request.fetchBatchSize = 10 + return try context.fetch(request) + } + + public static func get(messageIdentifierFromEngine: Data, ownedCryptoId: ObvCryptoId, within context: NSManagedObjectContext) throws -> PersistedMessageReceived? { let request: NSFetchRequest = PersistedMessageReceived.fetchRequest() request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ @@ -802,7 +1008,7 @@ extension PersistedMessageReceived { } - public static func get(messageIdentifierFromEngine: Data, from contact: ObvContactIdentity, within context: NSManagedObjectContext) throws -> PersistedMessageReceived? { + public static func get(messageIdentifierFromEngine: Data, from contact: ObvContactIdentifier, within context: NSManagedObjectContext) throws -> PersistedMessageReceived? { guard let persistedContact = try? PersistedObvContactIdentity.get(persisted: contact, whereOneToOneStatusIs: .any, within: context) else { return nil } return try get(messageIdentifierFromEngine: messageIdentifierFromEngine, from: persistedContact) } @@ -941,10 +1147,11 @@ extension PersistedMessageReceived { } - public static func getAllReceivedMessagesThatRequireUserActionForReading(discussionPermanentID: ObvManagedObjectPermanentID, within context: NSManagedObjectContext) throws -> [PersistedMessageReceived] { + static func getAllReceivedMessagesThatRequireUserActionForReading(discussion: PersistedDiscussion) throws -> [PersistedMessageReceived] { + guard let context = discussion.managedObjectContext else { assertionFailure(); throw ObvError.noContext } let request: NSFetchRequest = PersistedMessageReceived.fetchRequest() request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ - Predicate.withinDiscussion(discussionPermanentID), + Predicate.withinDiscussion(discussion), NSCompoundPredicate(orPredicateWithSubpredicates: [ Predicate.isNew, Predicate.isUnread, @@ -957,13 +1164,7 @@ extension PersistedMessageReceived { request.fetchBatchSize = 1_000 return try context.fetch(request) } - - - public static func batchDeletePendingRepliedToEntriesOlderThan(_ date: Date, within context: NSManagedObjectContext) throws { - try PendingRepliedTo.batchDeleteEntriesOlderThan(date, within: context) - } - } @@ -975,7 +1176,7 @@ extension PersistedMessageReceived { } public var fyleMessageJoinWithStatusesOfAudioType: [ReceivedFyleMessageJoinWithStatus] { - fyleMessageJoinWithStatuses.filter({ ObvUTIUtils.uti($0.uti, conformsTo: kUTTypeAudio) }) + fyleMessageJoinWithStatuses.filter({ $0.contentType.conforms(to: .audio) }) } public var fyleMessageJoinWithStatusesOfOtherTypes: [ReceivedFyleMessageJoinWithStatus] { @@ -1004,12 +1205,12 @@ extension PersistedMessageReceived { // Note that the following line may return nil if we are currently deleting a message that is part of a locked discussion. // In that case, we do not notify that the message is being deleted, but this is not an issue at this time - if let ownedCryptoId = contactIdentity?.ownedIdentity?.cryptoId { + if let discussionObjectID = discussion?.typedObjectID, let ownedCryptoId = contactIdentity?.ownedIdentity?.cryptoId { userInfoForDeletion = ["objectID": objectID, "messageIdentifierFromEngine": messageIdentifierFromEngine, "ownedCryptoId": ownedCryptoId, "sortIndex": sortIndex, - "discussionObjectID": discussion.typedObjectID] + "discussionObjectID": discussionObjectID] } @@ -1065,96 +1266,35 @@ extension PersistedMessageReceived { } } -public extension TypeSafeManagedObjectID where T == PersistedMessageReceived { - var downcast: TypeSafeManagedObjectID { - TypeSafeManagedObjectID(objectID: objectID) - } -} - -// MARK: - PendingRepliedTo - -/// When receiving a message that replies to another message, it might happen that this replied-to message is not available -/// because it did not arrive yet. This entity makes it possible to save the elements (`senderIdentifier`, etc.) referencing -/// this replied-to message for later. Each time a new message arrive, we check the `PendingRepliedTo` entities and look -/// for all those that reference this arriving message. This allows to associate message with its replied-to message a posteriori. -@objc(PendingRepliedTo) -fileprivate final class PendingRepliedTo: NSManagedObject, ObvErrorMaker { - - private static let entityName = "PendingRepliedTo" - static let errorDomain = "PendingRepliedTo" - - @NSManaged private var creationDate: Date - @NSManaged private var senderIdentifier: Data - @NSManaged private var senderSequenceNumber: Int - @NSManaged private var senderThreadIdentifier: UUID +extension PersistedMessageReceived { + + public enum ObvError: LocalizedError { - @NSManaged private(set) var message: PersistedMessageReceived? - - convenience init?(replyToJSON: MessageReferenceJSON, within context: NSManagedObjectContext) { + case noContext + case persistedMessageReceivedAlreadyExist + case distinctContexts + case discussionIsNil - let entityDescription = NSEntityDescription.entity(forEntityName: PendingRepliedTo.entityName, in: context)! - self.init(entity: entityDescription, insertInto: context) - - self.creationDate = Date() - self.senderSequenceNumber = replyToJSON.senderSequenceNumber - self.senderThreadIdentifier = replyToJSON.senderThreadIdentifier - self.senderIdentifier = replyToJSON.senderIdentifier - - } - - - fileprivate func delete() throws { - guard let context = self.managedObjectContext else { throw Self.makeError(message: "Could not find context") } - context.delete(self) - } - - - private struct Predicate { - enum Key: String { - case creationDate = "creationDate" - case senderIdentifier = "senderIdentifier" - case senderSequenceNumber = "senderSequenceNumber" - case senderThreadIdentifier = "senderThreadIdentifier" - case message = "message" - } - static func with(senderIdentifier: Data, senderSequenceNumber: Int, senderThreadIdentifier: UUID, discussion: PersistedDiscussion) -> NSPredicate { - let discussionKey = [Key.message.rawValue, PersistedMessage.Predicate.Key.discussion.rawValue].joined(separator: ".") - return NSCompoundPredicate(andPredicateWithSubpredicates: [ - NSPredicate(Key.senderIdentifier, EqualToData: senderIdentifier), - NSPredicate(Key.senderSequenceNumber, EqualToInt: senderSequenceNumber), - NSPredicate(Key.senderThreadIdentifier, EqualToUuid: senderThreadIdentifier), - NSPredicate(format: "%K == %@", discussionKey, discussion.objectID), - ]) - } - static func createBefore(_ date: Date) -> NSPredicate { - NSPredicate(Key.creationDate, earlierThan: date) + public var errorDescription: String? { + switch self { + case .persistedMessageReceivedAlreadyExist: + return "PersistedMessageReceived already exists" + case .noContext: + return "No context" + case .distinctContexts: + return "Distinct contexts" + case .discussionIsNil: + return "Discussion is nil" + } } + } - - @nonobjc static func fetchRequest() -> NSFetchRequest { - return NSFetchRequest(entityName: PendingRepliedTo.entityName) - } +} - - fileprivate static func getAll(senderIdentifier: Data, senderSequenceNumber: Int, senderThreadIdentifier: UUID, discussion: PersistedDiscussion, within context: NSManagedObjectContext) throws -> [PendingRepliedTo] { - let request = PendingRepliedTo.fetchRequest() - request.predicate = Predicate.with(senderIdentifier: senderIdentifier, - senderSequenceNumber: senderSequenceNumber, - senderThreadIdentifier: senderThreadIdentifier, - discussion: discussion) - request.fetchBatchSize = 1_000 - return try context.fetch(request) - } - - - static func batchDeleteEntriesOlderThan(_ date: Date, within context: NSManagedObjectContext) throws { - let fetchRequest: NSFetchRequest = NSFetchRequest(entityName: PendingRepliedTo.entityName) - fetchRequest.predicate = Predicate.createBefore(date) - let batchDeleteRequest = NSBatchDeleteRequest(fetchRequest: fetchRequest) - batchDeleteRequest.resultType = .resultTypeStatusOnly - _ = try context.execute(batchDeleteRequest) +public extension TypeSafeManagedObjectID where T == PersistedMessageReceived { + var downcast: TypeSafeManagedObjectID { + TypeSafeManagedObjectID(objectID: objectID) } - } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSent+Utils.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSent+Utils.swift index c9ec91b7..7e706f1f 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSent+Utils.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSent+Utils.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -41,30 +41,16 @@ extension PersistedMessageSent { return try context.count(for: request) } - - /// Called when a sent message with limited visibility reached the end of this visibility (in which case the `requester` is `nil`) - /// or when a message was globally wiped (in which case the requester is non nil) - public func wipe(requester: RequesterOfMessageDeletion?) throws { - if let requester { - try throwIfRequesterIsNotAllowedToDeleteMessage(requester: requester) - } - switch requester { - case .ownedIdentity, .none: - guard !isLocallyWiped else { return } - case .contact: - guard !isRemoteWiped else { return } - } + + /// Called when a sent message with limited visibility reached the end of this visibility. + private func wipeExpiredMessageSent() throws { + guard !isLocallyWiped else { return } for join in fyleMessageJoinWithStatuses { try join.wipe() } self.deleteBodyAndMentions() try? self.reactions.forEach { try $0.delete() } - switch requester { - case .ownedIdentity, .none: - try addMetadata(kind: .wiped, date: Date()) - case .contact(_, let contactCryptoId, _): - try addMetadata(kind: .remoteWiped(remoteCryptoId: contactCryptoId), date: Date()) - } + try addMetadata(kind: .wiped, date: Date()) // It makes no sense to keep an existing visibility expiration (if one exists) since we just wiped the message. try expirationForSentLimitedVisibility?.delete() // It makes no sense to keep unprocessed PersistedMessageSentRecipientInfos since we won't resend this message anymore @@ -75,20 +61,23 @@ extension PersistedMessageSent { /// If `retainWipedOutboundMessages` is `true`, this method only wipes the message. Otherwise, it deletes it. /// For now, this method is always used with a `nil` requester (meaning that no check will be performed before wiping or deleting messages), since it is called on expired sent messages. - public func wipeOrDelete(requester: RequesterOfMessageDeletion?) throws -> InfoAboutWipedOrDeletedPersistedMessage { + public func wipeOrDeleteExpiredMessageSent() throws -> InfoAboutWipedOrDeletedPersistedMessage { if retainWipedOutboundMessages { + guard let discussion else { + throw ObvError.discussionIsNil + } do { let wipeInfo = InfoAboutWipedOrDeletedPersistedMessage(kind: .wiped, - discussionPermanentID: self.discussion.discussionPermanentID, + discussionPermanentID: discussion.discussionPermanentID, messagePermanentID: self.messagePermanentID) - try wipe(requester: requester) + try wipeExpiredMessageSent() return wipeInfo } catch { assertionFailure() - return try delete(requester: requester) + return try deleteExpiredMessage() } } else { - return try delete(requester: requester) + return try deleteExpiredMessage() } } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSent.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSent.swift index 699dec68..5a4a84db 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSent.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSent.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,17 +23,29 @@ import ObvEngine import ObvTypes import os.log import MobileCoreServices +import ObvSettings + +/// A message sent by an owned identity. +/// +/// *About the `senderThreadIdentifier`* +/// +/// In general, the `senderThreadIdentifier` is identical to the one found in the `PersistedDiscussion` and is the thread identifier of the owned identity in that discussion. +/// It differs when the `PersistedMessageSent` was actually sent from another device, in which case, the `senderThreadIdentifier` found here corresponds to the `senderThreadIdentifier` found in the `PersistedDiscussion` of the other owned device. +/// This is the case since, for a given discussion, the same owned identity has distinct `senderThreadIdentifier` on each of her owned devices. @objc(PersistedMessageSent) public final class PersistedMessageSent: PersistedMessage, ObvIdentifiableManagedObject { public static let entityName = "PersistedMessageSent" + private static let log = OSLog(subsystem: ObvUICoreDataConstants.logSubsystem, category: "PersistedMessageSent") private let log = OSLog(subsystem: ObvUICoreDataConstants.logSubsystem, category: "PersistedMessageSent") private static func makeError(message: String) -> Error { NSError(domain: String(describing: Self.self), code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } // MARK: Attributes + @NSManaged private(set) var messageIdentifierFromEngine: Data? // Only set for message sent from another device, always nil for messages sent from this device @NSManaged private var rawExistenceDuration: NSNumber? + @NSManaged private(set) var senderThreadIdentifier: UUID // MARK: Relationships @@ -44,7 +56,7 @@ public final class PersistedMessageSent: PersistedMessage, ObvIdentifiableManage // MARK: MessageStatus - public enum MessageStatus: Int, Comparable, CaseIterable { + public enum MessageStatus: Int, CaseIterable { case unprocessed = 0 case processing = 1 case sent = 2 @@ -52,10 +64,11 @@ public final class PersistedMessageSent: PersistedMessage, ObvIdentifiableManage case read = 4 case couldNotBeSentToOneOrMoreRecipients = 5 case hasNoRecipient = 6 + case sentFromAnotherOwnedDevice = 7 - public static func < (lhs: PersistedMessageSent.MessageStatus, rhs: PersistedMessageSent.MessageStatus) -> Bool { - return lhs.rawValue < rhs.rawValue - } +// public static func < (lhs: PersistedMessageSent.MessageStatus, rhs: PersistedMessageSent.MessageStatus) -> Bool { +// return lhs.rawValue < rhs.rawValue +// } } @@ -72,7 +85,7 @@ public final class PersistedMessageSent: PersistedMessage, ObvIdentifiableManage switch status { case .unprocessed, .processing: return false - case .sent, .delivered, .read, .couldNotBeSentToOneOrMoreRecipients, .hasNoRecipient: + case .sent, .delivered, .read, .couldNotBeSentToOneOrMoreRecipients, .hasNoRecipient, .sentFromAnotherOwnedDevice: return true } } @@ -87,14 +100,22 @@ public final class PersistedMessageSent: PersistedMessage, ObvIdentifiableManage private func setStatus(newValue: MessageStatus) { + guard self.rawStatus != newValue.rawValue else { return } + + // If the message was sent from another device, we never update it + guard self.status != .sentFromAnotherOwnedDevice else { + assertionFailure("We should not be trying to update the status of a message sent from another owned device") + return + } + self.rawStatus = newValue.rawValue switch self.status { case .unprocessed: break case .processing: break - case .sent, .couldNotBeSentToOneOrMoreRecipients, .hasNoRecipient, .delivered, .read: + case .sent, .couldNotBeSentToOneOrMoreRecipients, .hasNoRecipient, .delivered, .read, .sentFromAnotherOwnedDevice: // When a sent message is marked as "sent", we check whether it has a limited visibility. // If this is the case, we immediately create an appropriate expiration for this message. if let visibilityDuration = self.visibilityDuration, self.expirationForSentLimitedVisibility == nil { @@ -135,6 +156,11 @@ public final class PersistedMessageSent: PersistedMessage, ObvIdentifiableManage /// - **read**: If all infos that have an identifier from engine also are such that `timestampRead` is not `nil`. public func refreshStatus() { + guard self.status != .sentFromAnotherOwnedDevice else { + assertionFailure("We should not be trying to refresh the status of a message sent from another device") + return + } + guard !unsortedRecipientsInfos.isEmpty else { // We created a sent message with no recipient. This happens when writing a message to self, i.e., at this time (2023-01-20), when sending a message in an empty groupV2. self.setStatus(newValue: .hasNoRecipient) @@ -190,21 +216,9 @@ public final class PersistedMessageSent: PersistedMessage, ObvIdentifiableManage } - /// `true` when this instance can be edited after being sent - override var textBodyCanBeEdited: Bool { - switch discussion.status { - case .active: - guard !self.isLocallyWiped else { return false } - guard !self.isRemoteWiped else { return false } - return true - case .preDiscussion, .locked: - return false - } - } - - - public override func replaceContentWith(newBody: String?, newMentions: Set) throws { - guard self.textBodyCanBeEdited else { + /// Called when the owned identity requests a message edition from the current device + override func replaceContentWith(newBody: String?, newMentions: Set) throws { + guard !self.isLocallyWiped && !self.isRemoteWiped else { throw Self.makeError(message: "The text body of this sent message cannot be edited now") } guard self.textBody != newBody else { return } @@ -227,7 +241,7 @@ public final class PersistedMessageSent: PersistedMessage, ObvIdentifiableManage } public override var genericRepliesTo: PersistedMessage.RepliedMessage { - repliesTo.toRepliedMessage + repliesTo } @@ -235,30 +249,60 @@ public final class PersistedMessageSent: PersistedMessage, ObvIdentifiableManage return super.shouldBeDeleted } -} + // MARK: - Processing wipe requests -// MARK: - Reply-to + /// Called when receiving a wipe request from a contact or another owned device. Shall only be called from ``PersistedDiscussion.processWipeMessageRequestForPersistedMessageSent(among:from:messageUploadTimestampFromServer:)``. + override func wipeThisMessage(requesterCryptoId: ObvCryptoId) throws { + for join in fyleMessageJoinWithStatuses { + try join.wipe() + } + try super.wipeThisMessage(requesterCryptoId: requesterCryptoId) + } -extension PersistedMessageSent { - private enum RepliedMessageForMessageSent { - case none - case available(message: PersistedMessage) - case deleted + // MARK: - Updating a message - var toRepliedMessage: RepliedMessage { - switch self { - case .none: return .none - case .available(let message): return .available(message: message) - case .deleted: return .deleted - } + /// Called when receiving a remote request from another owned device + func processUpdateSentMessageRequest(newTextBody: String?, newUserMentions: [MessageJSON.UserMention], messageUploadTimestampFromServer: Date, requester: ObvCryptoId) throws { + guard let discussion else { throw ObvError.discussionIsNil } + guard discussion.ownedIdentity?.cryptoId == requester else { throw Self.makeError(message: "The requester is not the owned identity who created the original message") } + guard !self.isLocallyWiped && !self.isRemoteWiped else { + throw Self.makeError(message: "The text body of this sent message cannot be edited now") } + try super.processUpdateMessageRequest(newTextBody: newTextBody, newUserMentions: newUserMentions) + try deleteMetadataOfKind(.edited) + try addMetadata(kind: .edited, date: messageUploadTimestampFromServer) } - private var repliesTo: RepliedMessageForMessageSent { + +} + + +// MARK: - Reply-to + +extension PersistedMessageSent { + +// private enum RepliedMessageForMessageSent { +// case none +// case notAvailableYet +// case available(message: PersistedMessage) +// case deleted +// +// var toRepliedMessage: RepliedMessage { +// switch self { +// case .none: return .none +// case .available(let message): return .available(message: message) +// case .deleted: return .deleted +// } +// } +// } + + private var repliesTo: RepliedMessage { if let messageRepliedTo = self.rawMessageRepliedTo { return .available(message: messageRepliedTo) + } else if self.messageRepliedToIdentifierIsNonNil { + return .notAvailableYet } else if self.isReplyToAnotherMessage { return .deleted } else { @@ -272,8 +316,8 @@ extension PersistedMessageSent { // MARK: - Initializer extension PersistedMessageSent { - - public convenience init(body: String?, replyTo: PersistedMessage?, fyleJoins: [FyleJoin], discussion: PersistedDiscussion, readOnce: Bool, visibilityDuration: TimeInterval?, existenceDuration: TimeInterval?, forwarded: Bool, mentions: [MessageJSON.UserMention]) throws { + + private convenience init(body: String?, replyTo: ReplyToType?, fyleJoins: [FyleJoin], discussion: PersistedDiscussion, readOnce: Bool, visibilityDuration: TimeInterval?, existenceDuration: TimeInterval?, forwarded: Bool, mentions: [MessageJSON.UserMention], timestamp: Date, messageIdentifierFromEngine: Data?, infosFromOtherOwnedDevice: (senderThreadIdentifier: UUID, messageSequenceNumber: Int)?) throws { guard let context = discussion.managedObjectContext else { assertionFailure(); throw PersistedMessageSent.makeError(message: "Could not find context") } // Sent messages can only be created when the discussion status is 'active' @@ -291,24 +335,42 @@ extension PersistedMessageSent { throw Self.makeError(message: "The owned identity is not allowed to send messages in this discussion") } - try? discussion.insertSystemMessagesIfDiscussionIsEmpty(markAsRead: true, messageTimestamp: Date()) + try? discussion.insertSystemMessagesIfDiscussionIsEmpty(markAsRead: true, messageTimestamp: timestamp.addingTimeInterval(-1/100.0)) // We remove 10 milliseconds - let timestamp = Date() - - let lastSortIndex = try PersistedMessage.getLargestSortIndex(in: discussion) - let sortIndex = 1/100.0 + ceil(lastSortIndex) // We add "10 milliseconds" + let sortIndex: Double + let adjustedTimestamp: Date + if let (senderThreadIdentifier, messageSequenceNumber) = infosFromOtherOwnedDevice { + (sortIndex, adjustedTimestamp) = try Self.determineAppropriateSortIndexForMessageReceivedFromOtherOwnedDevice(forSenderSequenceNumber: messageSequenceNumber, senderThreadIdentifier: senderThreadIdentifier, timestamp: timestamp, within: discussion) + + } else { + let lastSortIndex = try PersistedMessage.getLargestSortIndex(in: discussion) + sortIndex = 1/100.0 + ceil(lastSortIndex) // We add "10 milliseconds" + adjustedTimestamp = timestamp + } let readOnce = discussion.sharedConfiguration.readOnce || readOnce let visibilityDuration: TimeInterval? = TimeInterval.optionalMin(discussion.sharedConfiguration.visibilityDuration, visibilityDuration) let existenceDuration: TimeInterval? = TimeInterval.optionalMin(discussion.sharedConfiguration.existenceDuration, existenceDuration) - let isReplyToAnotherMessage = replyTo != nil - try self.init(timestamp: timestamp, + // `infosFromOtherOwnedDevice` is `nil` iff the message was sent from the current device. Otherwise, it contains informations about the senderThreadIdentifier and the messageSequenceNumber on the other remote device. + // Thus, if set, we use the values found in these infos in order to set the values of the `senderThreadIdentifier` and the `senderSequenceNumber` for this message. + // If not, we use the values found in the discussion. + + let senderSequenceNumberForThisMessage: Int + let senderThreadIdentifierForThisMessage: UUID + if let infosFromOtherOwnedDevice { + senderSequenceNumberForThisMessage = infosFromOtherOwnedDevice.messageSequenceNumber + senderThreadIdentifierForThisMessage = infosFromOtherOwnedDevice.senderThreadIdentifier + } else { + senderSequenceNumberForThisMessage = discussion.incrementLastOutboundMessageSequenceNumber() + senderThreadIdentifierForThisMessage = discussion.senderThreadIdentifier + } + + try self.init(timestamp: adjustedTimestamp, body: body, rawStatus: MessageStatus.unprocessed.rawValue, - senderSequenceNumber: discussion.lastOutboundMessageSequenceNumber + 1, + senderSequenceNumber: senderSequenceNumberForThisMessage, sortIndex: sortIndex, - isReplyToAnotherMessage: isReplyToAnotherMessage, replyTo: replyTo, discussion: discussion, readOnce: readOnce, @@ -317,100 +379,343 @@ extension PersistedMessageSent { mentions: mentions, forEntityName: PersistedMessageSent.entityName) + + self.senderThreadIdentifier = senderThreadIdentifierForThisMessage self.existenceDuration = existenceDuration self.unsortedFyleMessageJoinWithStatuses = Set() + self.messageIdentifierFromEngine = messageIdentifierFromEngine // Non-nil iff the message was sent from another owned device fyleJoins.forEach { - if let sentFyleMessageJoinWithStatuses = SentFyleMessageJoinWithStatus(fyleJoin: $0, persistedMessageSentObjectID: self.typedObjectID, within: context) { + if let sentFyleMessageJoinWithStatuses = try? SentFyleMessageJoinWithStatus(fyleJoin: $0, persistedMessageSentObjectID: self.typedObjectID, within: context) { self.unsortedFyleMessageJoinWithStatuses.insert(sentFyleMessageJoinWithStatuses) } else { debugPrint("Could not create SentFyleMessageJoinWithStatus") } } - // Create the recipient infos entries for the contact(s) that are part of the discussion + // If the message was sent from this device, create the recipient infos entries for the contact(s) that are part of the discussion - self.unsortedRecipientsInfos = Set() - - switch try? discussion.kind { + if infosFromOtherOwnedDevice == nil { - case .oneToOne(withContactIdentity: let contactIdentity): + self.unsortedRecipientsInfos = Set() - guard let contactIdentity = contactIdentity else { - os_log("Could not find contact identity. This is ok if it has just been deleted.", log: log, type: .error) - throw Self.makeError(message: "Could not find contact identity. This is ok if it has just been deleted.") - } - guard contactIdentity.isActive else { - os_log("Trying to create PersistedMessageSentRecipientInfos for an inactive contact, which is not allowed.", log: log, type: .error) - throw Self.makeError(message: "Trying to create PersistedMessageSentRecipientInfos for an inactive contact, which is not allowed.") - } - let recipientIdentity = contactIdentity.cryptoId.getIdentity() - let infos = try PersistedMessageSentRecipientInfos(recipientIdentity: recipientIdentity, - messageSent: self) - self.unsortedRecipientsInfos.insert(infos) - - case .groupV1(withContactGroup: let contactGroup): - - guard let contactGroup = contactGroup else { - os_log("Could find contact group (this is ok if it was just deleted)", log: log, type: .error) - throw Self.makeError(message: "Could find contact group (this is ok if it was just deleted)") - } - for recipient in contactGroup.contactIdentities { - guard recipient.isActive else { - os_log("One of the group contacts is inactive. We do not create PersistedMessageSentRecipientInfos for this contact.", log: log, type: .error) - continue + switch try? discussion.kind { + + case .oneToOne(withContactIdentity: let contactIdentity): + + guard let contactIdentity = contactIdentity else { + os_log("Could not find contact identity. This is ok if it has just been deleted.", log: log, type: .error) + throw Self.makeError(message: "Could not find contact identity. This is ok if it has just been deleted.") } - let recipientIdentity = recipient.cryptoId.getIdentity() - let infos = try PersistedMessageSentRecipientInfos(recipientIdentity: recipientIdentity, messageSent: self) + guard contactIdentity.isActive else { + os_log("Trying to create PersistedMessageSentRecipientInfos for an inactive contact, which is not allowed.", log: log, type: .error) + throw Self.makeError(message: "Trying to create PersistedMessageSentRecipientInfos for an inactive contact, which is not allowed.") + } + let recipientIdentity = contactIdentity.cryptoId.getIdentity() + let infos = try PersistedMessageSentRecipientInfos(recipientIdentity: recipientIdentity, + messageSent: self) self.unsortedRecipientsInfos.insert(infos) - } - guard !self.unsortedRecipientsInfos.isEmpty else { - os_log("We created no recipient infos. This happens when all the contacts of a group are inactive. We do not create a PersistedMessageSent in this case", log: log, type: .error) - throw Self.makeError(message: "We created no recipient infos. This happens when all the contacts of a group are inactive. We do not create a PersistedMessageSent in this case") - } - - case .groupV2(withGroup: let group): - - guard let group = group else { - os_log("Could find group v2 (this is ok if it was just deleted)", log: log, type: .error) - throw Self.makeError(message: "Could find group v2 (this is ok if it was just deleted)") - } - for recipient in group.otherMembers { - if let contact = recipient.contact { - guard contact.isActive else { + + case .groupV1(withContactGroup: let contactGroup): + + guard let contactGroup = contactGroup else { + os_log("Could find contact group (this is ok if it was just deleted)", log: log, type: .error) + throw Self.makeError(message: "Could find contact group (this is ok if it was just deleted)") + } + for recipient in contactGroup.contactIdentities { + guard recipient.isActive else { os_log("One of the group contacts is inactive. We do not create PersistedMessageSentRecipientInfos for this contact.", log: log, type: .error) continue } + let recipientIdentity = recipient.cryptoId.getIdentity() + let infos = try PersistedMessageSentRecipientInfos(recipientIdentity: recipientIdentity, messageSent: self) + self.unsortedRecipientsInfos.insert(infos) } - let recipientIdentity = recipient.identity - let infos = try PersistedMessageSentRecipientInfos(recipientIdentity: recipientIdentity, messageSent: self) - self.unsortedRecipientsInfos.insert(infos) + guard !self.unsortedRecipientsInfos.isEmpty else { + os_log("We created no recipient infos. This happens when all the contacts of a group are inactive. We do not create a PersistedMessageSent in this case", log: log, type: .error) + throw Self.makeError(message: "We created no recipient infos. This happens when all the contacts of a group are inactive. We do not create a PersistedMessageSent in this case") + } + + case .groupV2(withGroup: let group): + + guard let group = group else { + os_log("Could find group v2 (this is ok if it was just deleted)", log: log, type: .error) + throw Self.makeError(message: "Could find group v2 (this is ok if it was just deleted)") + } + for recipient in group.otherMembers { + if let contact = recipient.contact { + guard contact.isActive else { + os_log("One of the group contacts is inactive. We do not create PersistedMessageSentRecipientInfos for this contact.", log: log, type: .error) + continue + } + } + let recipientIdentity = recipient.identity + let infos = try PersistedMessageSentRecipientInfos(recipientIdentity: recipientIdentity, messageSent: self) + self.unsortedRecipientsInfos.insert(infos) + } + + case .none: + throw Self.makeError(message: "Unexpected discussion type.") } - case .none: - throw Self.makeError(message: "Unexpected discussion type.") } - discussion.lastOutboundMessageSequenceNumber = self.senderSequenceNumber + // Now that this message is created, we can look for all the messages that have a `messageRepliedToIdentifier` referencing this message. + // For these messages, we delete this reference and, instead, reference this message using the `messageRepliedTo` relationship. + + try self.updateMessagesReplyingToThisMessage() + // Refresh the status + refreshStatus() } + + + static private func determineAppropriateSortIndexForMessageReceivedFromOtherOwnedDevice(forSenderSequenceNumber senderSequenceNumber: Int, senderThreadIdentifier: UUID, timestamp: Date, within discussion: PersistedDiscussion) throws -> (sortIndex: Double, adjustedTimestamp: Date) { + + let nextMsg = Self.getNextMessageBySenderSequenceNumber( + senderSequenceNumber, + senderThreadIdentifier: senderThreadIdentifier, + within: discussion) + + if nextMsg == nil || nextMsg!.timestamp > timestamp { + let prevMsg = Self.getPreviousMessageBySenderSequenceNumber( + senderSequenceNumber, + senderThreadIdentifier: senderThreadIdentifier, + within: discussion) + if prevMsg == nil || prevMsg!.timestamp < timestamp { + return (timestamp.timeIntervalSince1970, timestamp) + } else { + // The previous message's timestamp is larger than the received message timestamp. Rare case. We adjust the timestamp of the received message in order to avoid weird timelines + let msgRightAfterPrevMsg = try getMessage(afterSortIndex: prevMsg!.sortIndex, in: discussion) + let sortIndexRightAfterPrevMsgSortIndex = msgRightAfterPrevMsg?.sortIndex ?? (prevMsg!.sortIndex + 1/100.0) + let adjustedTimestamp = prevMsg!.timestamp + let sortIndex = (sortIndexRightAfterPrevMsgSortIndex + prevMsg!.sortIndex) / 2.0 + return (sortIndex, adjustedTimestamp) + } + } else { + // There is a next message by the same sender, and its timestamp is smaller than the received message. Rare case. We adjust the timestamp of the received message in order to avoid weird timelines + let msgRightBeforeNextMsg = try getMessage(beforeSortIndex: nextMsg!.sortIndex, in: discussion) + let sortIndexRightBeforeNextMsgSortIndex = msgRightBeforeNextMsg?.sortIndex ?? (nextMsg!.sortIndex - 1/100.0) + let adjustedTimestamp = nextMsg!.timestamp + let sortIndex = (sortIndexRightBeforeNextMsgSortIndex + nextMsg!.sortIndex) / 2.0 + return (sortIndex, adjustedTimestamp) + } + + } + + + + public static func createPersistedMessageSentFromDraft(_ draft: PersistedDraft) throws -> PersistedMessageSent { + let replyTo: ReplyToType? + if let messageRepliedTo = draft.replyTo { + replyTo = .message(messageRepliedTo: messageRepliedTo) + } else { + replyTo = nil + } + let persistedMessageSent = try self.init( + body: draft.body, + replyTo: replyTo, + fyleJoins: draft.fyleJoins, + discussion: draft.discussion, + readOnce: draft.readOnce, + visibilityDuration: draft.visibilityDuration, + existenceDuration: draft.existenceDuration, + forwarded: false, + mentions: draft.mentions.compactMap({ try? $0.userMention }), + timestamp: Date(), + messageIdentifierFromEngine: nil, // since this message is sent from the current device + infosFromOtherOwnedDevice: nil) + return persistedMessageSent + } + + + public static func createPersistedMessageSentFromShareExtension(body: String, fyleJoins: [FyleJoin], discussion: PersistedDiscussion) throws -> PersistedMessageSent { + let persistedMessageSent = try PersistedMessageSent( + body: body, + replyTo: nil, + fyleJoins: fyleJoins, + discussion: discussion, + readOnce: false, + visibilityDuration: nil, + existenceDuration: nil, + forwarded: false, + mentions: [], + timestamp: Date(), + messageIdentifierFromEngine: nil, // since this message is sent from the current device + infosFromOtherOwnedDevice: nil) + return persistedMessageSent + } + + + public static func createPersistedMessageSentWhenReplyingFromTheNotificationExtensionNotification(body: String, discussion: PersistedDiscussion, effectiveReplyTo: PersistedMessageReceived?) throws -> PersistedMessageSent { + let replyTo: ReplyToType? + if let effectiveReplyTo { + replyTo = .message(messageRepliedTo: effectiveReplyTo) + } else { + replyTo = nil + } + let persistedMessageSent = try PersistedMessageSent( + body: body, + replyTo: replyTo, + fyleJoins: [], + discussion: discussion, + readOnce: false, + visibilityDuration: nil, + existenceDuration: nil, + forwarded: false, + mentions: [], + timestamp: Date(), + messageIdentifierFromEngine: nil, // since this message is sent from the current device + infosFromOtherOwnedDevice: nil) + return persistedMessageSent + } - public convenience init(draft: PersistedDraft) throws { - try self.init(body: draft.body, - replyTo: draft.replyTo, - fyleJoins: draft.fyleJoins, - discussion: draft.discussion, - readOnce: draft.readOnce, - visibilityDuration: draft.visibilityDuration, - existenceDuration: draft.existenceDuration, - forwarded: false, - mentions: draft.mentions.compactMap({ try? $0.userMention })) + + public static func createPersistedMessageSentWhenForwardingAMessage(messageToForward: PersistedMessage, discussion: PersistedDiscussion, forwarded: Bool) throws -> PersistedMessageSent { + let persistedMessageSent = try PersistedMessageSent( + body: messageToForward.textBody, + replyTo: nil, + fyleJoins: messageToForward.fyleMessageJoinWithStatus ?? [], + discussion: discussion, + readOnce: false, + visibilityDuration: nil, + existenceDuration: nil, + forwarded: forwarded, + mentions: messageToForward.mentions.compactMap({ try? $0.userMention }), + timestamp: Date(), + messageIdentifierFromEngine: nil, // Since this message is sent from the current device + infosFromOtherOwnedDevice: nil) + return persistedMessageSent } } +// MARK: Processing message sent from other owned devices + +extension PersistedMessageSent { + + /// This method shall be called exclusively from ``PersistedObvOwnedIdentity.createPersistedMessageSentFromOtherOwnedDevice(obvOwnedMessage:messageJSON:returnReceiptJSON:)``. + /// Returns all the `ObvOwnedAttachment` that are fully received, i.e., such that the `SentFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk. + static func createPersistedMessageSentFromOtherOwnedDevice(obvOwnedMessage: ObvOwnedMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?,in discussion: PersistedDiscussion) throws -> (createdMessage: PersistedMessageSent, attachmentFullyReceivedOrCancelledByServer: [ObvOwnedAttachment]) { + + guard try PersistedMessageSent.getPersistedMessageSentFromOtherOwnedDevice(messageIdentifierFromEngine: obvOwnedMessage.messageIdentifierFromEngine, in: discussion) == nil else { + throw ObvError.persistedMessageSentAlreadyExist + } + + let discussionKind = try discussion.kind + + let messageUploadTimestampFromServer = PersistedMessage.determineMessageUploadTimestampFromServer( + messageUploadTimestampFromServerInObvMessage: obvOwnedMessage.messageUploadTimestampFromServer, + messageJSON: messageJSON, + discussionKind: discussionKind) + + let replyTo: ReplyToType? + if let replyToJson = messageJSON.replyTo { + replyTo = .json(replyToJSON: replyToJson) + } else { + replyTo = nil + } + + let fyleJoins = [SentFyleMessageJoinWithStatus]() // Set later, when receiving the attachments + + let readOnce: Bool + let visibilityDuration: TimeInterval? + let existenceDuration: TimeInterval? + if let expiration = messageJSON.expiration { + readOnce = expiration.readOnce + visibilityDuration = expiration.visibilityDuration + existenceDuration = expiration.existenceDuration + } else { + readOnce = false + visibilityDuration = nil + existenceDuration = nil + } + + let infosFromOtherOwnedDevice = (messageJSON.senderThreadIdentifier, messageJSON.senderSequenceNumber) + + let message = try self.init( + body: messageJSON.body, + replyTo: replyTo, + fyleJoins: fyleJoins, + discussion: discussion, + readOnce: readOnce, + visibilityDuration: visibilityDuration, + existenceDuration: existenceDuration, + forwarded: messageJSON.forwarded, + mentions: messageJSON.userMentions, + timestamp: messageUploadTimestampFromServer, + messageIdentifierFromEngine: obvOwnedMessage.messageIdentifierFromEngine, + infosFromOtherOwnedDevice: infosFromOtherOwnedDevice) + + message.setStatus(newValue: .sentFromAnotherOwnedDevice) + + // Process the attachments within the message + + let attachmentFullyReceivedOrCancelledByServer = message.processObvOwnedAttachmentsFromOtherOwnedDevice(of: obvOwnedMessage) + + return (message, attachmentFullyReceivedOrCancelledByServer) + + } + + + /// Returns all the `ObvOwnedAttachment` that are fully received, i.e., such that the `SentFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk. + private func processObvOwnedAttachmentsFromOtherOwnedDevice(of obvOwnedMessage: ObvOwnedMessage) -> [ObvOwnedAttachment] { + var attachmentsFullyReceivedOrCancelledByServer = [ObvOwnedAttachment]() + for obvOwnedAttachment in obvOwnedMessage.attachments { + do { + let attachmentFullyReceivedOrCancelledByServer = try processObvOwnedAttachmentFromOtherOwnedDevice(obvOwnedAttachment) + if attachmentFullyReceivedOrCancelledByServer { + attachmentsFullyReceivedOrCancelledByServer.append(obvOwnedAttachment) + } + } catch { + os_log("Could not process one of the message's attachments: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + // We continue anyway + } + } + return attachmentsFullyReceivedOrCancelledByServer + } + + + /// Returns `true` iff the attachment is cancelled or fully received (i.e., if the `SentFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk). + func processObvOwnedAttachmentFromOtherOwnedDevice(_ obvOwnedAttachment: ObvOwnedAttachment) throws -> Bool { + + let attachmentFullyReceivedOrCancelledByServer = try SentFyleMessageJoinWithStatus.createOrUpdateSentFyleMessageJoinWithStatusFromOtherOwnedDevice(with: obvOwnedAttachment, messageSent: self) + + return attachmentFullyReceivedOrCancelledByServer + + } + + + func markAttachmentFromOwnedDeviceAsResumed(attachmentNumber: Int) throws { + + guard attachmentNumber < fyleMessageJoinWithStatuses.count else { + throw ObvError.unexpectedAttachmentNumber + } + + let join = fyleMessageJoinWithStatuses[attachmentNumber] + + join.tryToSetStatusTo(.downloading) + + } + + + func markAttachmentFromOwnedDeviceAsPaused(attachmentNumber: Int) throws { + + guard attachmentNumber < fyleMessageJoinWithStatuses.count else { + throw ObvError.unexpectedAttachmentNumber + } + + let join = fyleMessageJoinWithStatuses[attachmentNumber] + + join.tryToSetStatusTo(.downloadable) + + } + +} + + // MARK: Setting delivered or read timestamps extension PersistedMessageSent { @@ -478,9 +783,9 @@ extension PersistedMessageSent { func toSentMessageReferenceJSON() -> MessageReferenceJSON? { - guard let senderIdentifier = self.discussion.ownedIdentity?.cryptoId.getIdentity() else { return nil } + guard let senderIdentifier = self.discussion?.ownedIdentity?.cryptoId.getIdentity() else { return nil } return MessageReferenceJSON(senderSequenceNumber: self.senderSequenceNumber, - senderThreadIdentifier: self.discussion.senderThreadIdentifier, + senderThreadIdentifier: self.senderThreadIdentifier, senderIdentifier: senderIdentifier) } @@ -491,17 +796,33 @@ extension PersistedMessageSent { switch self.repliesTo { case .available(message: let replyTo): replyToJSON = replyTo.toMessageReferenceJSON() - case .none, .deleted: + case .none, .deleted, .notAvailableYet: replyToJSON = nil } - switch try? discussion.kind { + guard let discussionKind = try? discussion?.kind else { + assertionFailure() + return nil + } + + switch discussionKind { + + case .oneToOne(withContactIdentity: let contactIdentity): - case .oneToOne, .none: + guard let oneToOneDiscussion = contactIdentity?.oneToOneDiscussion else { + os_log("Could find contact identity (this is ok if it was just deleted)", log: log, type: .error) + return nil + } + + guard let oneToOneIdentifier = try? oneToOneDiscussion.oneToOneIdentifier else { + os_log("Could not determine one2one discussion identifier", log: log, type: .error) + return nil + } return MessageJSON(senderSequenceNumber: self.senderSequenceNumber, - senderThreadIdentifier: self.discussion.senderThreadIdentifier, + senderThreadIdentifier: self.senderThreadIdentifier, body: self.textBodyToSend, + oneToOneIdentifier: oneToOneIdentifier, replyTo: replyToJSON, expiration: self.expirationJSON, forwarded: self.forwarded, @@ -529,10 +850,10 @@ extension PersistedMessageSent { } else { return nil } - let groupV1Identifier = (groupUid, groupOwner) + let groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) return MessageJSON(senderSequenceNumber: self.senderSequenceNumber, - senderThreadIdentifier: self.discussion.senderThreadIdentifier, + senderThreadIdentifier: self.senderThreadIdentifier, body: self.textBodyToSend, groupV1Identifier: groupV1Identifier, replyTo: replyToJSON, @@ -550,7 +871,7 @@ extension PersistedMessageSent { let originalServerTimestamp = unsortedRecipientsInfos.compactMap({ $0.timestampMessageSent }).min() return MessageJSON(senderSequenceNumber: self.senderSequenceNumber, - senderThreadIdentifier: self.discussion.senderThreadIdentifier, + senderThreadIdentifier: self.senderThreadIdentifier, body: self.textBodyToSend, groupV2Identifier: groupV2Identifier, replyTo: replyToJSON, @@ -619,15 +940,43 @@ extension PersistedMessageSent { } var replyToActionCanBeMadeAvailableForSentMessage: Bool { - guard discussion.status == .active else { return false } + guard discussion?.status == .active else { return false } if readOnce { return status == .read } return true } + var editBodyActionCanBeMadeAvailableForSentMessage: Bool { - return textBodyCanBeEdited + assert(Thread.isMainThread) + + guard let context = self.managedObjectContext else { + assertionFailure() + return false + } + guard context.concurrencyType == .mainQueueConcurrencyType else { + assertionFailure() + return false + } + + let childViewContext = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType) + childViewContext.parent = context + guard let sentMessageInChildViewContext = try? PersistedMessageSent.getPersistedMessageSent(objectID: self.typedObjectID, within: childViewContext) else { + assertionFailure() + return false + } + guard let ownedIdentity = sentMessageInChildViewContext.discussion?.ownedIdentity else { + assertionFailure() + return false + } + // We return true iff the update would succeed + do { + _ = try ownedIdentity.processLocalUpdateMessageRequestFromThisOwnedIdentity(persistedSentMessageObjectID: self.typedObjectID, newTextBody: nil) + return true + } catch { + return false + } } var deleteOwnReactionActionCanBeMadeAvailableForSentMessage: Bool { @@ -644,7 +993,9 @@ extension PersistedMessageSent { struct Predicate { enum Key: String { // Attributes + case messageIdentifierFromEngine = "messageIdentifierFromEngine" case rawExistenceDuration = "rawExistenceDuration" + case senderThreadIdentifier = "senderThreadIdentifier" // Relationships case expirationForSentLimitedExistence = "expirationForSentLimitedExistence" case expirationForSentLimitedVisibility = "expirationForSentLimitedVisibility" @@ -653,6 +1004,7 @@ extension PersistedMessageSent { // Others static let expirationForSentLimitedVisibilityExpirationDate = [expirationForSentLimitedVisibility.rawValue, PersistedMessageExpiration.Predicate.Key.expirationDate.rawValue].joined(separator: ".") static let expirationForSentLimitedExistenceExpirationDate = [expirationForSentLimitedExistence.rawValue, PersistedMessageExpiration.Predicate.Key.expirationDate.rawValue].joined(separator: ".") + static let ownedIdentityIdentity = [PersistedMessage.Predicate.Key.discussion.rawValue, PersistedDiscussion.Predicate.Key.ownedIdentityIdentity].joined(separator: ".") } static var wasSent: NSPredicate { NSPredicate(PersistedMessage.Predicate.Key.rawStatus, largerThanOrEqualToInt: MessageStatus.sent.rawValue) @@ -696,12 +1048,110 @@ extension PersistedMessageSent { PersistedMessage.Predicate.withPermanentID(permanentID.downcast), ]) } + static func withSenderThreadIdentifier(_ senderThreadIdentifier: UUID) -> NSPredicate { + NSPredicate(Key.senderThreadIdentifier, EqualToUuid: senderThreadIdentifier) + } + static func withMessageIdentifierFromEngine(_ messageIdentifierFromEngine: Data) -> NSPredicate { + NSPredicate(Key.messageIdentifierFromEngine, EqualToData: messageIdentifierFromEngine) + } + static func fromOwnedCryptoId(_ ownedCryptoId: ObvCryptoId) -> NSPredicate { + NSPredicate(Key.ownedIdentityIdentity, EqualToData: ownedCryptoId.getIdentity()) + } + static func fromPersistedObvOwnedIdentity(_ ownedIdentity: PersistedObvOwnedIdentity) -> NSPredicate { + fromOwnedCryptoId(ownedIdentity.cryptoId) + } + static func withObjectID(_ objectID: NSManagedObjectID) -> NSPredicate { + NSPredicate(withObjectID: objectID) + } + static func withMessageWriterIdentifier(_ identifier: MessageWriterIdentifier) -> NSPredicate { + NSCompoundPredicate(andPredicateWithSubpredicates: [ + PersistedMessage.Predicate.withOwnedIdentityIdentity(identifier.senderIdentifier), + PersistedMessage.Predicate.withSenderSequenceNumberEqualTo(identifier.senderSequenceNumber), + withSenderThreadIdentifier(identifier.senderThreadIdentifier), + ]) + } } @nonobjc static func fetchRequest() -> NSFetchRequest { return NSFetchRequest(entityName: PersistedMessageSent.entityName) } + + + static func getPersistedMessageSent(discussion: PersistedDiscussion, messageId: SentMessageIdentifier) throws -> PersistedMessageSent? { + guard let context = discussion.managedObjectContext else { assertionFailure(); throw ObvError.noContext } + let request: NSFetchRequest = PersistedMessageSent.fetchRequest() + switch messageId { + case .objectID(let objectID): + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withObjectID(objectID), + Predicate.withinDiscussion(discussion), + ]) + case .authorIdentifier(let writerIdentifier): + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withinDiscussion(discussion), + Predicate.withMessageWriterIdentifier(writerIdentifier), + ]) + } + request.fetchLimit = 1 + return try context.fetch(request).first + } + + + private static func getNextMessageBySenderSequenceNumber(_ sequenceNumber: Int, senderThreadIdentifier: UUID, within discussion: PersistedDiscussion) -> PersistedMessageReceived? { + guard let context = discussion.managedObjectContext else { return nil } + let request: NSFetchRequest = PersistedMessageReceived.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withinDiscussion(discussion), + Predicate.withSenderThreadIdentifier(senderThreadIdentifier), + PersistedMessage.Predicate.withSenderSequenceNumberLargerThan(sequenceNumber), + ]) + request.sortDescriptors = [NSSortDescriptor(key: PersistedMessage.Predicate.Key.senderSequenceNumber.rawValue, ascending: true)] + request.fetchLimit = 1 + do { return try context.fetch(request).first } catch { return nil } + } + + + private static func getPreviousMessageBySenderSequenceNumber(_ sequenceNumber: Int, senderThreadIdentifier: UUID, within discussion: PersistedDiscussion) -> PersistedMessageReceived? { + guard let context = discussion.managedObjectContext else { return nil } + let request: NSFetchRequest = PersistedMessageReceived.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withinDiscussion(discussion), + Predicate.withSenderThreadIdentifier(senderThreadIdentifier), + PersistedMessage.Predicate.withSenderSequenceNumberLessThan(sequenceNumber), + ]) + request.sortDescriptors = [NSSortDescriptor(key: PersistedMessage.Predicate.Key.senderSequenceNumber.rawValue, ascending: false)] + request.fetchLimit = 1 + do { return try context.fetch(request).first } catch { return nil } + } + + + static func getPersistedMessageSentFromOtherOwnedDevice(messageIdentifierFromEngine: Data, in discussion: PersistedDiscussion) throws -> PersistedMessageSent? { + guard let context = discussion.managedObjectContext else { + throw Self.makeError(message: "PersistedDiscussion's context is nil") + } + let request: NSFetchRequest = PersistedMessageSent.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withMessageIdentifierFromEngine(messageIdentifierFromEngine), + Predicate.withinDiscussion(discussion), + ]) + request.fetchLimit = 1 + return try context.fetch(request).first + } + + + static func getPersistedMessageSentFromOtherOwnedDevice(messageIdentifierFromEngine: Data, from ownedIdentity: PersistedObvOwnedIdentity) throws -> PersistedMessageSent? { + guard let context = ownedIdentity.managedObjectContext else { + throw Self.makeError(message: "PersistedObvOwnedIdentity's context is nil") + } + let request: NSFetchRequest = PersistedMessageSent.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withMessageIdentifierFromEngine(messageIdentifierFromEngine), + Predicate.fromPersistedObvOwnedIdentity(ownedIdentity), + ]) + request.fetchLimit = 1 + return try context.fetch(request).first + } public static func getPersistedMessageSent(objectID: TypeSafeManagedObjectID, within context: NSManagedObjectContext) throws -> PersistedMessageSent? { @@ -736,7 +1186,7 @@ extension PersistedMessageSent { request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ Predicate.withinDiscussion(discussion), PersistedMessage.Predicate.withSenderSequenceNumberEqualTo(senderSequenceNumber), - PersistedMessage.Predicate.withSenderThreadIdentifier(senderThreadIdentifier), + Predicate.withSenderThreadIdentifier(senderThreadIdentifier), PersistedMessage.Predicate.withOwnedIdentityIdentity(ownedIdentity), ]) request.fetchLimit = 1 @@ -846,7 +1296,7 @@ extension PersistedMessageSent { } public var fyleMessageJoinWithStatusesOfAudioType: [SentFyleMessageJoinWithStatus] { - fyleMessageJoinWithStatuses.filter({ ObvUTIUtils.uti($0.uti, conformsTo: kUTTypeAudio) }) + fyleMessageJoinWithStatuses.filter({ $0.contentType.conforms(to: .audio) }) } public var fyleMessageJoinWithStatusesOfOtherTypes: [SentFyleMessageJoinWithStatus] { @@ -877,9 +1327,9 @@ extension PersistedMessageSent { defer { changedKeys.removeAll() } // When a readOnce message is sent, we notify. This is catched by the coordinator that checks whether the user is in the message's discussion or not. If this is the case, nothing happens. Otherwise the coordiantor deletes this readOnce message. - if changedKeys.contains(PersistedMessage.Predicate.Key.rawStatus.rawValue) && self.status == .sent && self.readOnce { + if let discussion, changedKeys.contains(PersistedMessage.Predicate.Key.rawStatus.rawValue), self.status == .sent, self.readOnce { ObvMessengerCoreDataNotification.aReadOncePersistedMessageSentWasSent(persistedMessageSentPermanentID: self.objectPermanentID, - persistedDiscussionPermanentID: self.discussion.discussionPermanentID) + persistedDiscussionPermanentID: discussion.discussionPermanentID) .postOnDispatchQueue() } @@ -887,6 +1337,36 @@ extension PersistedMessageSent { } + +// MARK: - Error + +extension PersistedMessageSent { + + public enum ObvError: LocalizedError { + + case noContext + case persistedMessageSentAlreadyExist + case unexpectedAttachmentNumber + case discussionIsNil + + public var errorDescription: String? { + switch self { + case .persistedMessageSentAlreadyExist: + return "PersistedMessageSent already exists" + case .noContext: + return "No context" + case .unexpectedAttachmentNumber: + return "Unexpected attachment number" + case .discussionIsNil: + return "Discussion is nil" + } + } + + } + +} + + public extension TypeSafeManagedObjectID where T == PersistedMessageSent { var downcast: TypeSafeManagedObjectID { TypeSafeManagedObjectID(objectID: objectID) diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSentRecipientInfos.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSentRecipientInfos.swift index 00d84a44..e2df3d89 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSentRecipientInfos.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSentRecipientInfos.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,8 @@ import ObvCrypto import os.log import ObvTypes import OlvidUtils +import ObvSettings + @objc(PersistedMessageSentRecipientInfos) public final class PersistedMessageSentRecipientInfos: NSManagedObject, ObvErrorMaker { @@ -58,7 +60,10 @@ public final class PersistedMessageSentRecipientInfos: NSManagedObject, ObvError } public func getRecipient() throws -> PersistedObvContactIdentity? { - guard let ownedIdentity = self.messageSent.discussion.ownedIdentity else { + guard let discussion = messageSent.discussion else { + throw ObvError.discussionIsNil + } + guard let ownedIdentity = discussion.ownedIdentity else { os_log("Could not find owned identity. This is ok if it has just been deleted.", log: log, type: .error) return nil } @@ -313,3 +318,23 @@ public final class PersistedMessageSentRecipientInfos: NSManagedObject, ObvError } } + + +// MARK: - Errors + +extension PersistedMessageSentRecipientInfos { + + public enum ObvError: LocalizedError { + + case discussionIsNil + + public var errorDescription: String? { + switch self { + case .discussionIsNil: + return "The discussion is nil (occurs while deleting/wiping a discussion)" + } + } + + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSystem.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSystem.swift index 653d2fe8..0c17552b 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSystem.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/PersistedMessageSystem.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,8 @@ import CoreData import ObvEngine import os.log import OlvidUtils +import ObvTypes +import ObvSettings @objc(PersistedMessageSystem) @@ -50,6 +52,7 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana case ownedIdentityIsNoLongerPartOfGroupV2Admins = 14 case ownedIdentityDidCaptureSensitiveMessages = 15 case contactIdentityDidCaptureSensitiveMessages = 16 + case contactWasIntroducedToAnotherContact = 17 public var description: String { @@ -71,6 +74,7 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana case .ownedIdentityIsNoLongerPartOfGroupV2Admins: return "ownedIdentityIsNoLongerPartOfGroupV2Admins" case .ownedIdentityDidCaptureSensitiveMessages: return "ownedIdentityDidCaptureSensitiveMessages" case .contactIdentityDidCaptureSensitiveMessages: return "contactIdentityDidCaptureSensitiveMessages" + case .contactWasIntroducedToAnotherContact: return "contactWasIntroducedToAnotherContact" } } @@ -94,7 +98,8 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana .ownedIdentityIsPartOfGroupV2Admins, .ownedIdentityIsNoLongerPartOfGroupV2Admins, .ownedIdentityDidCaptureSensitiveMessages, - .contactIdentityDidCaptureSensitiveMessages: + .contactIdentityDidCaptureSensitiveMessages, + .contactWasIntroducedToAnotherContact: return false } } @@ -115,7 +120,8 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana .ownedIdentityIsPartOfGroupV2Admins, .ownedIdentityIsNoLongerPartOfGroupV2Admins, .ownedIdentityDidCaptureSensitiveMessages, - .contactIdentityDidCaptureSensitiveMessages: + .contactIdentityDidCaptureSensitiveMessages, + .contactWasIntroducedToAnotherContact: return true case .numberOfNewMessages, @@ -144,6 +150,7 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana case .numberOfNewMessages: return false case .discussionIsEndToEndEncrypted: return false + case .contactWasIntroducedToAnotherContact: return false } } @@ -163,9 +170,10 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana // MARK: - Attributes - @NSManaged var rawCategory: Int @NSManaged private var associatedData: Data? @NSManaged public private(set) var numberOfUnreadReceivedMessages: Int // Only used when the message is of the category numberOfUnreadMessages. + @NSManaged private var optionalOwnedIdentityIdentity: Data? // Used, e.g., to specify that a remote discussion wipe was performed from another owned device + @NSManaged var rawCategory: Int // MARK: - Relationships @@ -174,12 +182,33 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana // MARK: - Computed variables + var optionalOwnedCryptoId: ObvCryptoId? { + get { + guard let optionalOwnedIdentityIdentity else { return nil } + guard let ownedCryptoId = try? ObvCryptoId(identity: optionalOwnedIdentityIdentity) else { assertionFailure(); return nil } + return ownedCryptoId + } + set { + self.optionalOwnedIdentityIdentity = newValue?.getIdentity() + } + } + public var objectPermanentID: ObvManagedObjectPermanentID { ObvManagedObjectPermanentID(uuid: self.permanentUUID) } public override var kind: PersistedMessageKind { .system } + /// 2023-07-17: This is the most appropriate identifier to use in, e.g., notifications + public override var identifier: MessageIdentifier { + return .system(id: self.systemMessageIdentifier) + } + + public var systemMessageIdentifier: SystemMessageIdentifier { + return .objectID(objectID: self.objectID) + } + + override var isNumberOfNewMessagesMessageSystem: Bool { return category == .numberOfNewMessages } @@ -193,7 +222,7 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana } } - public var status: MessageStatus { + public private(set) var status: MessageStatus { get { return MessageStatus(rawValue: self.rawStatus)! } @@ -202,6 +231,12 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana } } + func markAsRead() { + if self.status != .read { + self.status = .read + } + } + public func setNumberOfUnreadReceivedMessages(to newValue: Int) { assert(Thread.isMainThread, "We do not expect this variable to be set on a background context") if self.numberOfUnreadReceivedMessages != newValue { @@ -222,8 +257,19 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana df.dateStyle = Calendar.current.isDateInToday(self.timestamp) ? .none : .medium df.timeStyle = .short let dateString = df.string(from: self.timestamp) - let contactDisplayName = self.optionalContactIdentity?.customDisplayName ?? self.optionalContactIdentity?.identityCoreDetails?.getDisplayNameWithStyle(.full) ?? CommonString.deletedContact + let contactDisplayName: String + if let optionalContactIdentity { + contactDisplayName = optionalContactIdentity.customDisplayName ?? optionalContactIdentity.identityCoreDetails?.getDisplayNameWithStyle(.full) ?? CommonString.deletedContact + } else if optionalOwnedCryptoId != nil { + contactDisplayName = CommonString.Word.You.lowercased() + } else { + contactDisplayName = CommonString.deletedContact + } switch self.category { + case .contactWasIntroducedToAnotherContact: + let discussionContactDisplayName: String? = (discussion as? PersistedOneToOneDiscussion)?.contactIdentity?.customOrShortDisplayName + let otherContactDisplayName: String? = optionalContactIdentity?.customOrNormalDisplayName + return Strings.contactWasIntroducedToAnotherContact(discussionContactDisplayName, otherContactDisplayName) case .ownedIdentityDidCaptureSensitiveMessages: return Strings.ownedIdentityDidCaptureSensitiveMessages case .contactIdentityDidCaptureSensitiveMessages: @@ -262,7 +308,7 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana case .rejoinedGroup: return Strings.rejoinedGroup case .contactIsOneToOneAgain: - switch try? discussion.kind { + switch try? discussion?.kind { case .oneToOne(withContactIdentity: let contactIdentity): if let contactIdentity = contactIdentity { return Strings.contactIsOneToOneAgain(contactName: contactIdentity.customOrNormalDisplayName) @@ -341,6 +387,12 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana return Strings.anyOutgoingCall(content) case .filteredIncomingCall: return Strings.filteredIncomingCall(content) + case .answeredOnOtherDevice: + return Strings.answeredOnOtherDevice(content) + case .rejectedOnOtherDevice: + return Strings.rejectedOnOtherDevice(content) + case .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse: + return Strings.rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse(content) } } } @@ -349,10 +401,14 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana let contactDisplayName: String if let optionalContactIdentity { contactDisplayName = optionalContactIdentity.customDisplayName ?? optionalContactIdentity.identityCoreDetails?.getDisplayNameWithStyle(.full) ?? optionalContactIdentity.fullDisplayName + } else if optionalOwnedCryptoId != nil { + contactDisplayName = CommonString.Word.You.lowercased() } else { contactDisplayName = CommonString.deletedContact } switch self.category { + case .contactWasIntroducedToAnotherContact: + return textBody case .ownedIdentityDidCaptureSensitiveMessages: return textBody case .contactIdentityDidCaptureSensitiveMessages: @@ -443,6 +499,12 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana return Strings.anyOutgoingCall(content) case .filteredIncomingCall: return Strings.filteredIncomingCall(content) + case .answeredOnOtherDevice: + return Strings.answeredOnOtherDevice(content) + case .rejectedOnOtherDevice: + return Strings.rejectedOnOtherDevice(content) + case .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse: + return Strings.rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse(content) } } } @@ -457,7 +519,7 @@ public final class PersistedMessageSystem: PersistedMessage, ObvIdentifiableMana extension PersistedMessageSystem { /// At this time, the `messageUploadTimestampFromServer` is only relevant when receiving an `updatedDiscussionSharedSettings` system message. - public convenience init(_ category: Category, optionalContactIdentity: PersistedObvContactIdentity?, optionalCallLogItem: PersistedCallLogItem?, discussion: PersistedDiscussion, messageUploadTimestampFromServer: Date? = nil, timestamp: Date) throws { + public convenience init(_ category: Category, optionalContactIdentity: PersistedObvContactIdentity?, optionalOwnedCryptoId: ObvCryptoId?, optionalCallLogItem: PersistedCallLogItem?, discussion: PersistedDiscussion, messageUploadTimestampFromServer: Date? = nil, timestamp: Date, thisMessageTimestampCanResetDiscussionTimestampOfLastMessage: Bool = true) throws { guard category != .numberOfNewMessages else { assertionFailure(); throw PersistedMessageSystem.makeError(message: "Inappropriate initializer called") } @@ -475,27 +537,29 @@ extension PersistedMessageSystem { sortIndex = 1/100.0 + ceil(lastSortIndex) // We add "10 milliseconds" } + let senderSequenceNumber = discussion.incrementLastSystemMessageSequenceNumber() + try self.init(timestamp: timestamp, body: nil, rawStatus: MessageStatus.new.rawValue, - senderSequenceNumber: discussion.lastSystemMessageSequenceNumber + 1, + senderSequenceNumber: senderSequenceNumber, sortIndex: sortIndex, - isReplyToAnotherMessage: false, replyTo: nil, discussion: discussion, readOnce: false, visibilityDuration: nil, forwarded: false, mentions: [], // For now, we have no mentions in system messages + thisMessageTimestampCanResetDiscussionTimestampOfLastMessage: thisMessageTimestampCanResetDiscussionTimestampOfLastMessage, forEntityName: PersistedMessageSystem.entityName) self.rawCategory = category.rawValue self.associatedData = nil + self.optionalOwnedCryptoId = optionalOwnedCryptoId self.optionalContactIdentity = optionalContactIdentity self.optionalCallLogItem = optionalCallLogItem - discussion.lastSystemMessageSequenceNumber = self.senderSequenceNumber } /// This initialiser is specific to `numberOfNewMessages` system messages @@ -520,7 +584,6 @@ extension PersistedMessageSystem { rawStatus: MessageStatus.read.rawValue, senderSequenceNumber: 0, sortIndex: sortIndexForFirstNewMessageLimit, - isReplyToAnotherMessage: false, replyTo: nil, discussion: discussion, readOnce: false, @@ -565,6 +628,7 @@ extension PersistedMessageSystem { public static func insertUpdatedDiscussionSharedSettingsSystemMessage(within discussion: PersistedDiscussion, optionalContactIdentity: PersistedObvContactIdentity?, expirationJSON: ExpirationJSON?, messageUploadTimestampFromServer: Date?, markAsRead: Bool) throws { let message = try self.init(.updatedDiscussionSharedSettings, optionalContactIdentity: optionalContactIdentity, + optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, messageUploadTimestampFromServer: messageUploadTimestampFromServer, @@ -579,6 +643,7 @@ extension PersistedMessageSystem { public static func insertDiscussionWasRemotelyWipedSystemMessage(within discussion: PersistedDiscussion, byContact contact: PersistedObvContactIdentity, messageUploadTimestampFromServer: Date?) throws { _ = try self.init(.discussionWasRemotelyWiped, optionalContactIdentity: contact, + optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, messageUploadTimestampFromServer: messageUploadTimestampFromServer, @@ -589,6 +654,7 @@ extension PersistedMessageSystem { static func insertNotPartOfTheGroupAnymoreSystemMessage(within discussion: PersistedGroupDiscussion) throws { _ = try self.init(.notPartOfTheGroupAnymore, optionalContactIdentity: nil, + optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, timestamp: Date()) @@ -598,6 +664,7 @@ extension PersistedMessageSystem { static func insertNotPartOfTheGroupAnymoreSystemMessage(within discussion: PersistedGroupV2Discussion) throws { _ = try self.init(.notPartOfTheGroupAnymore, optionalContactIdentity: nil, + optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, timestamp: Date()) @@ -607,6 +674,7 @@ extension PersistedMessageSystem { static func insertRejoinedGroupSystemMessage(within discussion: PersistedGroupDiscussion) throws { _ = try self.init(.rejoinedGroup, optionalContactIdentity: nil, + optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, timestamp: Date()) @@ -616,6 +684,7 @@ extension PersistedMessageSystem { static func insertRejoinedGroupSystemMessage(within discussion: PersistedGroupV2Discussion) throws { _ = try self.init(.rejoinedGroup, optionalContactIdentity: nil, + optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, timestamp: Date()) @@ -625,6 +694,7 @@ extension PersistedMessageSystem { static func insertContactIsOneToOneAgainSystemMessage(within discussion: PersistedOneToOneDiscussion) throws { let message = try self.init(.contactIsOneToOneAgain, optionalContactIdentity: discussion.contactIdentity, + optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, timestamp: Date()) @@ -635,6 +705,7 @@ extension PersistedMessageSystem { public static func insertMembersOfGroupV2WereUpdatedSystemMessage(within discussion: PersistedGroupV2Discussion) throws { _ = try self.init(.membersOfGroupV2WereUpdated, optionalContactIdentity: nil, + optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, timestamp: Date()) @@ -644,6 +715,7 @@ extension PersistedMessageSystem { public static func insertOwnedIdentityIsPartOfGroupV2AdminsMessage(within discussion: PersistedGroupV2Discussion) throws { _ = try self.init(.ownedIdentityIsPartOfGroupV2Admins, optionalContactIdentity: nil, + optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, timestamp: Date()) @@ -653,40 +725,63 @@ extension PersistedMessageSystem { public static func insertOwnedIdentityIsNoLongerPartOfGroupV2AdminsMessage(within discussion: PersistedGroupV2Discussion) throws { _ = try self.init(.ownedIdentityIsNoLongerPartOfGroupV2Admins, optionalContactIdentity: nil, + optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, timestamp: Date()) } - public static func insertOwnedIdentityDidCaptureSensitiveMessages(within discussion: PersistedDiscussion) throws { + static func insertOwnedIdentityDidCaptureSensitiveMessages(within discussion: PersistedDiscussion) throws { _ = try self.init(.ownedIdentityDidCaptureSensitiveMessages, optionalContactIdentity: nil, + optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, timestamp: Date()) } - - public static func insertContactIdentityDidCaptureSensitiveMessages(within discussion: PersistedDiscussion, contact: PersistedObvContactIdentity) throws { + + static func insertContactIdentityDidCaptureSensitiveMessages(within discussion: PersistedDiscussion, contact: PersistedObvContactIdentity, timestamp: Date) throws { // Make a few sanity checks before inserting the system message guard discussion.managedObjectContext == contact.managedObjectContext else { assertionFailure(); throw Self.makeError(message: "Distinct contexts") } - guard discussion.ownedIdentity == contact.ownedIdentity else { assertionFailure(); throw Self.makeError(message: "Discting owned identities between discussion and contact.") } - switch try discussion.kind { - case .oneToOne(withContactIdentity: let discussionContact): - guard discussionContact?.cryptoId == contact.cryptoId else { assertionFailure(); throw Self.makeError(message: "Mismatch between discussion contact and contact") } - case .groupV1(withContactGroup: let contactGroup): - guard contactGroup?.contactIdentities.contains(contact) == true else { assertionFailure(); throw Self.makeError(message: "Contact is not part of the group v1") } - case .groupV2(withGroup: let group): - guard group?.contactsAmongOtherPendingAndNonPendingMembers.contains(contact) == true else { assertionFailure(); throw Self.makeError(message: "Contact is not part of the group v2") } - } _ = try self.init(.contactIdentityDidCaptureSensitiveMessages, optionalContactIdentity: contact, + optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, - timestamp: Date()) + timestamp: timestamp) + } + + + static func insertOwnedIdentityDidCaptureSensitiveMessages(within discussion: PersistedDiscussion, ownedCryptoId: ObvCryptoId, timestamp: Date) throws { + _ = try self.init(.ownedIdentityDidCaptureSensitiveMessages, + optionalContactIdentity: nil, + optionalOwnedCryptoId: ownedCryptoId, + optionalCallLogItem: nil, + discussion: discussion, + timestamp: timestamp) } + + static func insertContactWasIntroducedToAnotherContact(within oneToOneDiscussion: PersistedOneToOneDiscussion, otherContact: PersistedObvContactIdentity) throws { + guard oneToOneDiscussion.ownedIdentity == otherContact.ownedIdentity else { + throw ObvError.unexpectedOwnedIdentity + } + guard oneToOneDiscussion.contactIdentity != otherContact else { + throw ObvError.unexpectedContactIdentity + } + // We set thisMessageTimestampCanResetDiscussionTimestampOfLastMessage to false as we do not want discussions to "move" in the list of recent discussions just because we introduced a contact to another. + // This would particularly not make sense when introducing one contact to many other contacts. + _ = try self.init(.contactWasIntroducedToAnotherContact, + optionalContactIdentity: otherContact, + optionalOwnedCryptoId: nil, + optionalCallLogItem: nil, + discussion: oneToOneDiscussion, + timestamp: Date(), + thisMessageTimestampCanResetDiscussionTimestampOfLastMessage: false) + } + } @@ -716,7 +811,7 @@ extension PersistedMessageSystem { var callActionCanBeMadeAvailableForSystemMessage: Bool { guard category == .callLogItem else { return false } guard optionalCallLogItem != nil else { return false } - return discussion.isCallAvailable + return discussion?.isCallAvailable ?? false } } @@ -758,6 +853,9 @@ extension PersistedMessageSystem { static func withCategory(_ category: Category) -> NSPredicate { NSPredicate(Key.rawCategory, EqualToInt: category.rawValue) } + static func createdBefore(date: Date) -> NSPredicate { + NSPredicate(PersistedMessage.Predicate.Key.timestamp, earlierThan: date) + } static var isNumberOfNewMessages: NSPredicate { withCategory(.numberOfNewMessages) } static var isContactJoinedGroup: NSPredicate { withCategory(.contactJoinedGroup) } static var isContactLeftGroup: NSPredicate { withCategory(.contactLeftGroup) } @@ -802,6 +900,9 @@ extension PersistedMessageSystem { static func withOwnedIdentity(for ownedIdentity: PersistedObvOwnedIdentity) -> NSPredicate { PersistedMessage.Predicate.withOwnedIdentity(ownedIdentity) } + static func withObjectID(_ objectID: NSManagedObjectID) -> NSPredicate { + NSPredicate(withObjectID: objectID) + } } @@ -810,18 +911,41 @@ extension PersistedMessageSystem { } - public static func markAllAsNotNew(within discussion: PersistedDiscussion) throws { + static func getPersistedMessageSystem(discussion: PersistedDiscussion, messageId: SystemMessageIdentifier) throws -> PersistedMessageSystem? { + guard let context = discussion.managedObjectContext else { assertionFailure(); throw ObvError.managedContextIsNil } + let request: NSFetchRequest = PersistedMessageSystem.fetchRequest() + switch messageId { + case .objectID(let objectID): + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.withObjectID(objectID), + Predicate.withinDiscussion(discussion), + ]) + } + request.fetchLimit = 1 + return try context.fetch(request).first + } + + + static func markAllAsNotNew(within discussion: PersistedDiscussion, untilDate: Date?) throws -> Date? { os_log("Call to markAllAsNotNew in PersistedMessageSystem for discussion %{public}@", log: log, type: .debug, discussion.objectID.debugDescription) - guard let context = discussion.managedObjectContext else { return } + guard let context = discussion.managedObjectContext else { return nil } let request: NSFetchRequest = PersistedMessageSystem.fetchRequest() request.includesSubentities = true + let untilDatePredicate: NSPredicate + if let untilDate { + untilDatePredicate = Predicate.createdBefore(date: untilDate) + } else { + untilDatePredicate = NSPredicate(value: true) + } request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + untilDatePredicate, Predicate.withinDiscussion(discussion), Predicate.isNew, ]) let messages = try context.fetch(request) - guard !messages.isEmpty else { return } + guard !messages.isEmpty else { return nil } messages.forEach { $0.status = .read } + return messages.map({ $0.timestamp }).max() } @@ -969,8 +1093,9 @@ extension PersistedMessageSystem { super.prepareForDeletion() guard let managedObjectContext else { assertionFailure(); return } guard managedObjectContext.concurrencyType != .mainQueueConcurrencyType else { return } + guard let discussionObjectID = discussion?.typedObjectID else { return } userInfoForDeletion = ["objectID": objectID, - "discussionObjectID": discussion.typedObjectID] + "discussionObjectID": discussionObjectID] } public override func didSave() { diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/RemoteDeleteAndEditRequest.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/RemoteDeleteAndEditRequest.swift deleted file mode 100644 index 32a7d518..00000000 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/RemoteDeleteAndEditRequest.swift +++ /dev/null @@ -1,288 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import os.log -import OlvidUtils - - -@objc(RemoteDeleteAndEditRequest) -public final class RemoteDeleteAndEditRequest: NSManagedObject, ObvErrorMaker { - - private static let entityName = "RemoteDeleteAndEditRequest" - public static let errorDomain = "RemoteDeleteAndEditRequest" - private let log = OSLog(subsystem: ObvUICoreDataConstants.logSubsystem, category: "RemoteDeleteAndEditRequest") - - public enum RequestType: Int { - case delete = 0 - case edit = 1 - } - - // MARK: Attributes - - @NSManaged public private(set) var body: String? - @NSManaged private var rawRequestType: Int - @NSManaged private var remoteDeleterIdentity: Data? - @NSManaged private var senderIdentifier: Data - @NSManaged private var senderSequenceNumber: Int - @NSManaged private var senderThreadIdentifier: UUID - @NSManaged public private(set) var serverTimestamp: Date - - // MARK: Relationships - - @NSManaged private var discussion: PersistedDiscussion? // Expected to be non-nil - - // MARK: Other variables - - public var requestType: RequestType { - get { RequestType(rawValue: rawRequestType)! } - set { self.rawRequestType = newValue.rawValue } - } - - public var messageReferenceJSON: MessageReferenceJSON { - MessageReferenceJSON(senderSequenceNumber: senderSequenceNumber, senderThreadIdentifier: senderThreadIdentifier, senderIdentifier: senderIdentifier) - } - - // MARK: - Creating and deleting - - private convenience init(body: String?, requestType: RequestType, remoteDeleterIdentity: Data?, senderIdentifier: Data, senderSequenceNumber: Int, senderThreadIdentifier: UUID, serverTimestamp: Date, discussion: PersistedDiscussion) throws { - - assert((requestType == .delete && remoteDeleterIdentity != nil && body == nil) || (requestType == .edit && remoteDeleterIdentity == nil && body != nil)) - guard let context = discussion.managedObjectContext else { throw RemoteDeleteAndEditRequest.makeError(message: "Could not find context") } - - let entityDescription = NSEntityDescription.entity(forEntityName: RemoteDeleteAndEditRequest.entityName, in: context)! - self.init(entity: entityDescription, insertInto: context) - - self.body = body - self.requestType = requestType - self.remoteDeleterIdentity = remoteDeleterIdentity - self.senderIdentifier = senderIdentifier - self.senderSequenceNumber = senderSequenceNumber - self.senderThreadIdentifier = senderThreadIdentifier - self.serverTimestamp = serverTimestamp - self.discussion = discussion - - } - - /// This is the method to call to create a `RemoteDeleteAndEditRequest` instance of type `edit`. Note that this method only creates a new instance if appropriate. - /// - /// In the following situations, this method does nothing: - /// - An older entry of type "delete" is found with the same constaints. - /// - A more recent entry (of any type) is found with the same constraints - /// - /// In all other cases, this method : - /// - Deletes any existing entry with the same constraints - /// - Creates a new entry using the parameters passed to that method. - public static func createEditRequestIfAppropriate(body: String?, messageReference: MessageReferenceJSON, serverTimestamp: Date, discussion: PersistedDiscussion) throws { - - // If an older delete request exists, we ignore this request whatever its type - guard try countDeleteRequestsOlderThanServerTimestamp(serverTimestamp, - discussion: discussion, - senderIdentifier: messageReference.senderIdentifier, - senderThreadIdentifier: messageReference.senderThreadIdentifier, - senderSequenceNumber: messageReference.senderSequenceNumber) == 0 else { return } - - // We ignore this new edit request if there exists a more recent request - guard try countRequestsMoreRecentThanServerTimestamp(serverTimestamp, - discussion: discussion, - senderIdentifier: messageReference.senderIdentifier, - senderThreadIdentifier: messageReference.senderThreadIdentifier, - senderSequenceNumber: messageReference.senderSequenceNumber) == 0 else { return } - - // If we reach this point, we will create a new edit request. We first delete any previous request. - try deleteAllRequests(discussion: discussion, senderIdentifier: messageReference.senderIdentifier, senderThreadIdentifier: messageReference.senderThreadIdentifier, senderSequenceNumber: messageReference.senderSequenceNumber) - _ = try RemoteDeleteAndEditRequest(body: body, - requestType: .edit, - remoteDeleterIdentity: nil, - senderIdentifier: messageReference.senderIdentifier, - senderSequenceNumber: messageReference.senderSequenceNumber, - senderThreadIdentifier: messageReference.senderThreadIdentifier, - serverTimestamp: serverTimestamp, - discussion: discussion) - } - - - /// This is the method to call to create a `RemoteDeleteAndEditRequest` instance of type `delete`. - /// - /// This method : - /// - Deletes any existing entry with the same constraints - /// - Creates a new entry using the parameters passed to that method. - public static func createDeleteRequest(remoteDeleterIdentity: Data, messageReference: MessageReferenceJSON, serverTimestamp: Date, discussion: PersistedDiscussion) throws { - - // Check that the remote deleter identity is allowed to perform deletion - - // When inserting a delete request, we delete all other previous requests concering this message. - // As a consequence, if there is anything to be deleted, we want to make sure that the new delete request is legitimate. - // If it is not, we throw it away. - // If there is no request to delete for this message, we always store the new delete request, the test will be performed later. - - if try getRemoteDeleteAndEditRequest(discussion: discussion, - senderIdentifier: messageReference.senderIdentifier, - senderThreadIdentifier: messageReference.senderThreadIdentifier, - senderSequenceNumber: messageReference.senderSequenceNumber) != nil { - // Since there already is a RemoteDeleteAndEditRequest in DB, we check whether the new delete request is legitimate - switch try discussion.kind { - case .oneToOne, .groupV1: - break // Always allow creation of the new delete request - case .groupV2(withGroup: let group): - guard let group = group else { assertionFailure(); return } - guard let member = group.otherMembers.first(where: { $0.identity == remoteDeleterIdentity }) else { - // The deleter is not part of the group members, we discard the new delete request - return - } - guard member.isAllowedToRemoteDeleteAnything || (member.isAllowedToEditOrRemoteDeleteOwnMessages && member.identity == messageReference.senderIdentifier) else { - // The deleter is not allowed to delete this message, we discard the new delete request - return - } - } - } - - // If we reach this point, we can delete previous requests concerning this message and create the new delete request - - try deleteAllRequests(discussion: discussion, - senderIdentifier: messageReference.senderIdentifier, - senderThreadIdentifier: messageReference.senderThreadIdentifier, - senderSequenceNumber: messageReference.senderSequenceNumber) - _ = try RemoteDeleteAndEditRequest(body: nil, - requestType: .delete, - remoteDeleterIdentity: remoteDeleterIdentity, - senderIdentifier: messageReference.senderIdentifier, - senderSequenceNumber: messageReference.senderSequenceNumber, - senderThreadIdentifier: messageReference.senderThreadIdentifier, - serverTimestamp: serverTimestamp, - discussion: discussion) - } - - - public func delete() throws { - guard let context = self.managedObjectContext else { throw Self.makeError(message: "Cannot find context") } - context.delete(self) - } - - - // MARK: - Convenience DB getters - - @nonobjc private static func fetchRequest() -> NSFetchRequest { - return NSFetchRequest(entityName: RemoteDeleteAndEditRequest.entityName) - } - - - private struct Predicate { - enum Key: String { - // Attributes - case rawRequestType = "rawRequestType" - case senderIdentifier = "senderIdentifier" - case senderSequenceNumber = "senderSequenceNumber" - case senderThreadIdentifier = "senderThreadIdentifier" - case serverTimestamp = "serverTimestamp" - // Relationships - case discussion = "discussion" - } - static func withPrimaryKey(discussion: PersistedDiscussion, senderIdentifier: Data, senderThreadIdentifier: UUID, senderSequenceNumber: Int) -> NSPredicate { - NSCompoundPredicate(andPredicateWithSubpredicates: [ - NSPredicate(Key.discussion, equalTo: discussion), - NSPredicate(Key.senderIdentifier, EqualToData: senderIdentifier), - NSPredicate(Key.senderThreadIdentifier, EqualToUuid: senderThreadIdentifier), - NSPredicate(Key.senderSequenceNumber, EqualToInt: senderSequenceNumber), - ]) - } - static func olderThanServerTimestamp(_ serverTimestamp: Date) -> NSPredicate { - NSPredicate(Key.serverTimestamp, earlierThan: serverTimestamp) - } - static func moreRecentThanServerTimestamp(_ serverTimestamp: Date) -> NSPredicate { - NSPredicate(Key.serverTimestamp, laterThan: serverTimestamp) - } - static func ofRequestType(_ requestType: RequestType) -> NSPredicate { - NSPredicate(Key.rawRequestType, EqualToInt: requestType.rawValue) - } - static var withoutAssociatedDiscussion: NSPredicate { - NSPredicate(withNilValueForKey: Key.discussion) - } - } - - - private static func countDeleteRequestsOlderThanServerTimestamp(_ serverTimestamp: Date, discussion: PersistedDiscussion, senderIdentifier: Data, senderThreadIdentifier: UUID, senderSequenceNumber: Int) throws -> Int { - guard let context = discussion.managedObjectContext else { throw makeError(message: "Could not find context") } - let request: NSFetchRequest = RemoteDeleteAndEditRequest.fetchRequest() - request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ - Predicate.withPrimaryKey(discussion: discussion, senderIdentifier: senderIdentifier, senderThreadIdentifier: senderThreadIdentifier, senderSequenceNumber: senderSequenceNumber), - Predicate.olderThanServerTimestamp(serverTimestamp), - Predicate.ofRequestType(.delete), - ]) - return try context.count(for: request) - } - - - private static func countRequestsMoreRecentThanServerTimestamp(_ serverTimestamp: Date, discussion: PersistedDiscussion, senderIdentifier: Data, senderThreadIdentifier: UUID, senderSequenceNumber: Int) throws -> Int { - guard let context = discussion.managedObjectContext else { throw makeError(message: "Could not find context") } - let request: NSFetchRequest = RemoteDeleteAndEditRequest.fetchRequest() - request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ - Predicate.withPrimaryKey(discussion: discussion, senderIdentifier: senderIdentifier, senderThreadIdentifier: senderThreadIdentifier, senderSequenceNumber: senderSequenceNumber), - Predicate.moreRecentThanServerTimestamp(serverTimestamp), - ]) - return try context.count(for: request) - } - - - private static func deleteAllRequests(discussion: PersistedDiscussion, senderIdentifier: Data, senderThreadIdentifier: UUID, senderSequenceNumber: Int) throws { - guard let context = discussion.managedObjectContext else { throw makeError(message: "Could not find context") } - let request: NSFetchRequest = RemoteDeleteAndEditRequest.fetchRequest() - request.predicate = Predicate.withPrimaryKey(discussion: discussion, senderIdentifier: senderIdentifier, senderThreadIdentifier: senderThreadIdentifier, senderSequenceNumber: senderSequenceNumber) - let results = try context.fetch(request) - for result in results { - context.delete(result) - } - } - - - public static func getRemoteDeleteAndEditRequest(discussion: PersistedDiscussion, senderIdentifier: Data, senderThreadIdentifier: UUID, senderSequenceNumber: Int) throws -> RemoteDeleteAndEditRequest? { - guard let context = discussion.managedObjectContext else { throw makeError(message: "Could not find context") } - let request: NSFetchRequest = RemoteDeleteAndEditRequest.fetchRequest() - request.predicate = Predicate.withPrimaryKey(discussion: discussion, senderIdentifier: senderIdentifier, senderThreadIdentifier: senderThreadIdentifier, senderSequenceNumber: senderSequenceNumber) - let results = try context.fetch(request) - switch results.count { - case 0, 1: - return results.first - default: - // We expect 0 or 1 request in database - assertionFailure() - // In production, we return either a deletion request or the most recent edit request - return results.first(where: { $0.requestType == .delete }) ?? results.sorted(by: { $0.serverTimestamp > $1.serverTimestamp }).first - } - } - - - /// Deletes obsolete `RemoteDeleteAndEditRequest` instances, regardless of the owned identity or discussion. - public static func deleteRequestsOlderThanDate(_ date: Date, within context: NSManagedObjectContext) throws { - let request: NSFetchRequest = RemoteDeleteAndEditRequest.fetchRequest() - request.predicate = Predicate.olderThanServerTimestamp(date) - let batchDeleteRequest = NSBatchDeleteRequest(fetchRequest: request) - try context.execute(batchDeleteRequest) - } - - - public static func deleteOrphaned(within context: NSManagedObjectContext) throws { - let request: NSFetchRequest = RemoteDeleteAndEditRequest.fetchRequest() - request.predicate = Predicate.withoutAssociatedDiscussion - let batchDeleteRequest = NSBatchDeleteRequest(fetchRequest: request) - try context.execute(batchDeleteRequest) - } - -} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/RemoteRequestSavedForLater.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/RemoteRequestSavedForLater.swift new file mode 100644 index 00000000..0565e838 --- /dev/null +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/RemoteRequestSavedForLater.swift @@ -0,0 +1,518 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import OlvidUtils +import ObvTypes + +@objc(RemoteRequestSavedForLater) +final class RemoteRequestSavedForLater: NSManagedObject { + + private static let entityName = "RemoteRequestSavedForLater" + + public enum RequestType: Int { + case delete = 0 + case edit = 1 + case reaction = 2 + } + + // MARK: Attributes + + @NSManaged private var rawRequesterIdentity: Data // Either the owned identity of the discussion, or one of her contacts + @NSManaged private var rawRequestType: Int + @NSManaged private var senderIdentifier: Data // From MessageReferenceJSON + @NSManaged private var senderSequenceNumber: Int // From MessageReferenceJSON + @NSManaged private var senderThreadIdentifier: UUID // From MessageReferenceJSON + @NSManaged private var serializedMessageJSON: Data? + @NSManaged private(set) var serverTimestamp: Date + + // MARK: Relationships + + @NSManaged private var discussion: PersistedDiscussion? // Expected to be non-nil + + // MARK: Other variables + + /// Expected to be non-nil + private(set) var requestType: RequestType? { + get { + RequestType(rawValue: rawRequestType) + } + set { + guard let newValue else { assertionFailure(); return } + self.rawRequestType = newValue.rawValue + } + } + + + /// Expected to be non-nil + private(set) var requesterCryptoId: ObvCryptoId? { + get { + try? ObvCryptoId(identity: rawRequesterIdentity) + } + set { + guard let newValue else { assertionFailure(); return } + self.rawRequesterIdentity = newValue.getIdentity() + } + } + + + // MARK: - Init + + private convenience init(requestType: RequestType, requesterCryptoId: ObvCryptoId, senderIdentifier: Data, senderSequenceNumber: Int, senderThreadIdentifier: UUID, serverTimestamp: Date, serializedMessageJSON: Data?, for discussion: PersistedDiscussion) throws { + + guard let context = discussion.managedObjectContext else { + throw ObvError.noContext + } + + let entityDescription = NSEntityDescription.entity(forEntityName: Self.entityName, in: context)! + self.init(entity: entityDescription, insertInto: context) + + self.requesterCryptoId = requesterCryptoId + self.requestType = requestType + self.senderIdentifier = senderIdentifier + self.senderSequenceNumber = senderSequenceNumber + self.senderThreadIdentifier = senderThreadIdentifier + self.serverTimestamp = serverTimestamp + self.serializedMessageJSON = serializedMessageJSON + + self.discussion = discussion + + } + + + /// This method is called after checking that the contact or the owned identity requesting the wipe is allowed to do so. + /// When creating a wipe request, we delete all other previous requests concering this message before inserting this wipe request. + static func createWipeOrDeleteRequest(requesterCryptoId: ObvCryptoId, messageReference: MessageReferenceJSON, serverTimestamp: Date, discussion: PersistedDiscussion) throws { + + try? deleteAllRemoteRequestsSavedForLater(for: messageReference, in: discussion) + + let _ = try RemoteRequestSavedForLater( + requestType: .delete, + requesterCryptoId: requesterCryptoId, + senderIdentifier: messageReference.senderIdentifier, + senderSequenceNumber: messageReference.senderSequenceNumber, + senderThreadIdentifier: messageReference.senderThreadIdentifier, + serverTimestamp: serverTimestamp, + serializedMessageJSON: nil, // Can be reconstructed + for: discussion) + + } + + + /// At this point, most checks have been made on the validity of the edit request. One (important) is missing: the fact that the requester is the creator of the message. This check will be performed when applying this request on receiving the message. + static func createEditRequest(requesterCryptoId: ObvCryptoId, updateMessageJSON: UpdateMessageJSON, serverTimestamp: Date, discussion: PersistedDiscussion) throws { + + let messageToEdit = updateMessageJSON.messageToEdit + + // If there exists a delete request for this message, we discard this edit request + + let deleteRequests = try RemoteRequestSavedForLater.fetchAllRemoteRequestsSavedForLater(for: messageToEdit, in: discussion, ofType: .delete) + guard deleteRequests.isEmpty else { + return + } + + // If there exist a more recent edit request, we discard this edit request + + let previousEditRequest = try RemoteRequestSavedForLater.fetchAllRemoteRequestsSavedForLater(for: messageToEdit, in: discussion, ofType: .edit) + guard !previousEditRequest.contains(where: { $0.serverTimestamp > serverTimestamp }) else { + return + } + + // At this point, we can save this request for later + + let serializedMessageJSON = try updateMessageJSON.jsonEncode() + + let _ = try RemoteRequestSavedForLater( + requestType: .edit, + requesterCryptoId: requesterCryptoId, + senderIdentifier: messageToEdit.senderIdentifier, + senderSequenceNumber: messageToEdit.senderSequenceNumber, + senderThreadIdentifier: messageToEdit.senderThreadIdentifier, + serverTimestamp: serverTimestamp, + serializedMessageJSON: serializedMessageJSON, + for: discussion) + + } + + + static func createSetOrUpdateReactionRequest(requesterCryptoId: ObvCryptoId, reactionJSON: ReactionJSON, serverTimestamp: Date, discussion: PersistedDiscussion) throws { + + let messageToEdit = reactionJSON.messageReference + + // If there exists a delete request for this message, we discard this edit request + + let deleteRequests = try RemoteRequestSavedForLater.fetchAllRemoteRequestsSavedForLater(for: messageToEdit, in: discussion, ofType: .delete) + guard deleteRequests.isEmpty else { + return + } + + // Save the request for later + + let serializedMessageJSON = try reactionJSON.jsonEncode() + + let _ = try RemoteRequestSavedForLater( + requestType: .reaction, + requesterCryptoId: requesterCryptoId, + senderIdentifier: messageToEdit.senderIdentifier, + senderSequenceNumber: messageToEdit.senderSequenceNumber, + senderThreadIdentifier: messageToEdit.senderThreadIdentifier, + serverTimestamp: serverTimestamp, + serializedMessageJSON: serializedMessageJSON, + for: discussion) + + } + + + + private func delete() throws { + guard let context = self.managedObjectContext else { + throw ObvError.noContext + } + context.delete(self) + } + + // MARK: - Applying remote requests saved for later on a newly created message + + private static var messagesForWhichWeHaveApplyiedRemoteRequestsSavedForLater = Set>() + + static func applyRemoteRequestsSavedForLater(for message: PersistedMessage) throws { + + guard !Self.messagesForWhichWeHaveApplyiedRemoteRequestsSavedForLater.contains(message.typedObjectID) else { + assertionFailure("Preventing an infinite loop") + return + } + + Self.messagesForWhichWeHaveApplyiedRemoteRequestsSavedForLater.insert(message.typedObjectID) + + guard let messageReference = message.toMessageReferenceJSON() else { + throw ObvError.couldNotDetermineMessageReferenceFromPersistedMessage + } + + guard let discussion = message.discussion else { + throw ObvError.discussionIsNil + } + + defer { + try? deleteAllRemoteRequestsSavedForLater(for: messageReference, in: discussion) + } + + // Fetch all remote requests concerning this message. The most recent is last in the returned array, so we can process them in order. + + let remoteRequestsSavedForLater = try fetchAllRemoteRequestsSavedForLater(for: messageReference, in: discussion) + + guard !remoteRequestsSavedForLater.isEmpty else { + return + } + + // If there is a delete request, we only process that request + + if let deleteOrWipeRequest = remoteRequestsSavedForLater.first(where: { $0.requestType == .delete }) { + + do { + try deleteOrWipeRequest.apply(to: message) + } catch { + try deleteOrWipeRequest.delete() + try applyRemoteRequestsSavedForLater(for: message) + return + } + + } + + // If we reach this point, there are not delete request. We can apply them in order + + for remoteRequestSavedForLater in remoteRequestsSavedForLater { + + try? remoteRequestSavedForLater.apply(to: message) + try? remoteRequestSavedForLater.delete() + + } + + } + + + private func apply(to message: PersistedMessage) throws { + + guard let context = message.managedObjectContext else { + throw ObvError.noContext + } + + guard let requestType = self.requestType else { + throw ObvError.couldNotDetermineRequestType + } + + guard let requesterCryptoId else { + throw ObvError.couldNotDetermineRequester + } + + guard let discussion = message.discussion else { + throw ObvError.discussionIsNil + } + + guard let discussionOwnedIdentity = discussion.ownedIdentity else { + throw ObvError.couldNotDetermineOwnedCryptoId + } + + let oneToOneIdentifier: OneToOneIdentifierJSON? = try (discussion as? PersistedOneToOneDiscussion)?.oneToOneIdentifier + + let groupIdentifier: GroupIdentifier? + if let group = (discussion as? PersistedGroupDiscussion)?.contactGroup { + let groupV1Identifier = try GroupV1Identifier(groupUid: group.groupUid, groupOwner: ObvCryptoId(identity: group.ownerIdentity)) + groupIdentifier = .groupV1(groupV1Identifier: groupV1Identifier) + } else if let group = (discussion as? PersistedGroupV2Discussion)?.group { + let groupV2Identifier = group.groupIdentifier + groupIdentifier = .groupV2(groupV2Identifier: groupV2Identifier) + } else { + groupIdentifier = nil + } + + guard (oneToOneIdentifier != nil || groupIdentifier != nil) && (oneToOneIdentifier == nil || groupIdentifier == nil) else { + assertionFailure() + throw ObvError.unexpectedIdentifiers + } + + if requesterCryptoId == discussionOwnedIdentity.cryptoId { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get( + cryptoId: requesterCryptoId, + within: context) else { + throw ObvError.couldNotDetermineOwnedIdentity + } + + switch requestType { + + case .delete: + + let deleteMessagesJSON = try DeleteMessagesJSON(persistedMessagesToDelete: [message]) + + _ = try ownedIdentity.processWipeMessageRequestFromOtherOwnedDevice( + deleteMessagesJSON: deleteMessagesJSON, + messageUploadTimestampFromServer: serverTimestamp) + + case .edit: + + guard let serializedMessageJSON else { + assertionFailure("Edit request *must* be stored") + throw ObvError.couldNotFindSerializedMessageJSON + } + + let updateMessageJSON = try UpdateMessageJSON.jsonDecode(serializedMessageJSON) + + _ = try ownedIdentity.processUpdateMessageRequestFromThisOwnedIdentity( + updateMessageJSON: updateMessageJSON, + messageUploadTimestampFromServer: serverTimestamp) + + case .reaction: + + guard let serializedMessageJSON else { + assertionFailure("Reaction request *must* be stored") + throw ObvError.couldNotFindSerializedMessageJSON + } + + let reactionJSON = try ReactionJSON.jsonDecode(serializedMessageJSON) + + _ = try ownedIdentity.processSetOrUpdateReactionOnMessageRequestFromThisOwnedIdentity( + reactionJSON: reactionJSON, + messageUploadTimestampFromServer: serverTimestamp) + + } + + } else { + + guard let contact = try PersistedObvContactIdentity.get( + contactCryptoId: requesterCryptoId, + ownedIdentityCryptoId: discussionOwnedIdentity.cryptoId, + whereOneToOneStatusIs: .any, + within: context) else { + throw ObvError.couldNotDeterminePersistedObvContact + } + + switch requestType { + + case .delete: + + let deleteMessagesJSON = try DeleteMessagesJSON(persistedMessagesToDelete: [message]) + + _ = try contact.processWipeMessageRequestFromThisContact( + deleteMessagesJSON: deleteMessagesJSON, + messageUploadTimestampFromServer: serverTimestamp) + + case .edit: + + guard let serializedMessageJSON else { + assertionFailure("Edit request *must* be stored") + throw ObvError.couldNotFindSerializedMessageJSON + } + + let updateMessageJSON = try UpdateMessageJSON.jsonDecode(serializedMessageJSON) + + _ = try contact.processUpdateMessageRequestFromThisContact( + updateMessageJSON: updateMessageJSON, + messageUploadTimestampFromServer: serverTimestamp) + + case .reaction: + + guard let serializedMessageJSON else { + assertionFailure("Reaction request *must* be stored") + throw ObvError.couldNotFindSerializedMessageJSON + } + + let reactionJSON = try ReactionJSON.jsonDecode(serializedMessageJSON) + + _ = try contact.processSetOrUpdateReactionOnMessageRequestFromThisContact( + reactionJSON: reactionJSON, + messageUploadTimestampFromServer: serverTimestamp) + + } + + } + + } + + + // MARK: - Convenience DB getters + + private struct Predicate { + enum Key: String { + // Attributes + case rawRequesterIdentity = "rawRequesterIdentity" + case rawRequestType = "rawRequestType" + case senderIdentifier = "senderIdentifier" + case senderSequenceNumber = "senderSequenceNumber" + case senderThreadIdentifier = "senderThreadIdentifier" + case serverTimestamp = "serverTimestamp" + // Relationships + case discussion = "discussion" + } + static func forMessageReference(_ messageReference: MessageReferenceJSON) -> NSPredicate { + NSCompoundPredicate(andPredicateWithSubpredicates: [ + NSPredicate(Key.senderSequenceNumber, EqualToInt: messageReference.senderSequenceNumber), + NSPredicate(Key.senderThreadIdentifier, EqualToUuid: messageReference.senderThreadIdentifier), + NSPredicate(Key.senderIdentifier, EqualToData: messageReference.senderIdentifier), + ]) + } + static func withinDiscussion(_ discussion: PersistedDiscussion) -> NSPredicate { + NSPredicate(Key.discussion, equalTo: discussion) + } + static func withRequestType(_ requestType: RequestType) -> NSPredicate { + NSPredicate(Key.rawRequestType, EqualToInt: requestType.rawValue) + } + static func withServerTimestamp(earlierThan date: Date) -> NSPredicate { + NSPredicate(Key.serverTimestamp, earlierThan: date) + } + } + + + @nonobjc static func fetchRequest() -> NSFetchRequest { + return NSFetchRequest(entityName: Self.entityName) + } + + + private static func deleteAllRemoteRequestsSavedForLater(for messageReference: MessageReferenceJSON, in discussion: PersistedDiscussion) throws { + let remoteRequestsSavedForLater = try fetchAllRemoteRequestsSavedForLater(for: messageReference, in: discussion) + remoteRequestsSavedForLater.forEach { remoteRequest in + try? remoteRequest.delete() + } + } + + + private static func fetchAllRemoteRequestsSavedForLater(for messageReference: MessageReferenceJSON, in discussion: PersistedDiscussion) throws -> [RemoteRequestSavedForLater] { + guard let context = discussion.managedObjectContext else { + throw ObvError.noContext + } + let request: NSFetchRequest = RemoteRequestSavedForLater.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.forMessageReference(messageReference), + Predicate.withinDiscussion(discussion), + ]) + request.sortDescriptors = [NSSortDescriptor(key: Predicate.Key.serverTimestamp.rawValue, ascending: true)] // Most recent last + request.fetchBatchSize = 1_000 + let remoteRequestsSavedForLater = try context.fetch(request) + return remoteRequestsSavedForLater + } + + + private static func fetchAllRemoteRequestsSavedForLater(for messageReference: MessageReferenceJSON, in discussion: PersistedDiscussion, ofType requestType: RequestType) throws -> [RemoteRequestSavedForLater] { + guard let context = discussion.managedObjectContext else { + throw ObvError.noContext + } + let request: NSFetchRequest = RemoteRequestSavedForLater.fetchRequest() + request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ + Predicate.forMessageReference(messageReference), + Predicate.withinDiscussion(discussion), + Predicate.withRequestType(requestType), + ]) + request.sortDescriptors = [NSSortDescriptor(key: Predicate.Key.serverTimestamp.rawValue, ascending: true)] // Most recent last + request.fetchBatchSize = 1_000 + let remoteRequestsSavedForLater = try context.fetch(request) + return remoteRequestsSavedForLater + } + + + static func deleteRemoteRequestsSavedForLaterEarlierThan(_ deletionDate: Date, within context: NSManagedObjectContext) throws { + let request: NSFetchRequest = RemoteRequestSavedForLater.fetchRequest() + request.predicate = Predicate.withServerTimestamp(earlierThan: deletionDate) + let batchDeleteRequest = NSBatchDeleteRequest(fetchRequest: request) + _ = try context.execute(batchDeleteRequest) + } + + + // MARK: - ObvError + + enum ObvError: Error { + case noContext + case couldNotDetermineMessageReferenceFromPersistedMessage + case couldNotDetermineOwnedCryptoId + case couldNotDetermineRequestType + case couldNotDetermineRequester + case couldNotDeterminePersistedObvContact + case couldNotDetermineOwnedIdentity + case unexpectedIdentifiers + case couldNotFindSerializedMessageJSON + case discussionIsNil + + var localizedDescription: String { + switch self { + case .noContext: + return "No context" + case .couldNotDetermineMessageReferenceFromPersistedMessage: + return "Could not determine message reference from persisted message" + case .couldNotDetermineOwnedCryptoId: + return "Could not determine owned cryptoId" + case .couldNotDetermineRequestType: + return "Could not determine request type" + case .couldNotDetermineRequester: + return "Could not determine requester" + case .couldNotDeterminePersistedObvContact: + return "Could not determine contact" + case .couldNotDetermineOwnedIdentity: + return "Could not determine owned identity" + case .unexpectedIdentifiers: + return "Unexpected identifiers" + case .couldNotFindSerializedMessageJSON: + return "Could not find serialized message JSON" + case .discussionIsNil: + return "Discussion is nil" + } + } + + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedContactGroup+ThreadSafeStructure.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedContactGroup+ThreadSafeStructure.swift index b2aa0699..ed1aeafb 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedContactGroup+ThreadSafeStructure.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedContactGroup+ThreadSafeStructure.swift @@ -20,6 +20,7 @@ import Foundation import ObvCrypto import os.log +import ObvSettings // MARK: - Thread safe struct diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedDiscussionLocalConfiguration+ThreadSafeStruct.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedDiscussionLocalConfiguration+ThreadSafeStruct.swift index e4b4c90a..90fcd4b8 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedDiscussionLocalConfiguration+ThreadSafeStruct.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedDiscussionLocalConfiguration+ThreadSafeStruct.swift @@ -19,6 +19,7 @@ import Foundation import ObvTypes +import ObvSettings // MARK: - Thread safe struct diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedGroupV2+ThreadSafeStructure.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedGroupV2+ThreadSafeStructure.swift index 4da8b6b4..cb84da18 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedGroupV2+ThreadSafeStructure.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedGroupV2+ThreadSafeStructure.swift @@ -19,6 +19,7 @@ import Foundation import os.log +import ObvSettings // MARK: - Thread safe struct diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedMessage+ThreadSafeStructure.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedMessage+ThreadSafeStructure.swift index e9b4a212..e9dd75b8 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedMessage+ThreadSafeStructure.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedMessage+ThreadSafeStructure.swift @@ -41,6 +41,9 @@ extension PersistedMessage { } public func toAbstractStructure() throws -> AbstractStructure { + guard let discussion else { + throw ObvError.discussionIsNil + } let discussionKind = try discussion.toStructKind() let isPersistedMessageSent = self is PersistedMessageSent return AbstractStructure(objectPermanentID: self.messagePermanentID, diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedObvContactIdentity+ThreadSafeStructure.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedObvContactIdentity+ThreadSafeStructure.swift index 6a0160aa..2e900a5e 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedObvContactIdentity+ThreadSafeStructure.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedObvContactIdentity+ThreadSafeStructure.swift @@ -20,6 +20,7 @@ import Foundation import ObvTypes import os.log +import ObvSettings // MARK: - Thread safe struct diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedObvOwnedIdentity+ThreadSafeStructure.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedObvOwnedIdentity+ThreadSafeStructure.swift index 76fd6b13..b4b8148f 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedObvOwnedIdentity+ThreadSafeStructure.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/PersistedMessage/ThreadSafeStructures/PersistedObvOwnedIdentity+ThreadSafeStructure.swift @@ -21,6 +21,7 @@ import Foundation import ObvCrypto import ObvTypes import os.log +import ObvSettings // MARK: - Thread safe structure diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ReceivedFyleMessageJoinWithStatus.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ReceivedFyleMessageJoinWithStatus.swift index 5690f780..7baced28 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ReceivedFyleMessageJoinWithStatus.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/ReceivedFyleMessageJoinWithStatus.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,13 +20,16 @@ import Foundation import CoreData import CoreServices -import ObvEngine +import ObvTypes +import os.log +import ObvSettings @objc(ReceivedFyleMessageJoinWithStatus) public final class ReceivedFyleMessageJoinWithStatus: FyleMessageJoinWithStatus, Identifiable { private static let entityName = "ReceivedFyleMessageJoinWithStatus" + private static let log = OSLog(subsystem: ObvUICoreDataConstants.logSubsystem, category: "ReceivedFyleMessageJoinWithStatus") public enum FyleStatus: Int { case downloadable = 0 @@ -37,7 +40,6 @@ public final class ReceivedFyleMessageJoinWithStatus: FyleMessageJoinWithStatus, // MARK: Properties - @NSManaged public private(set) var downsizedThumbnail: Data? @NSManaged public private(set) var wasOpened: Bool // MARK: Relationships @@ -62,8 +64,9 @@ public final class ReceivedFyleMessageJoinWithStatus: FyleMessageJoinWithStatus, // MARK: - Initializer - // Called when a fyle is already available - public convenience init(metadata: FyleMetadata, obvAttachment: ObvAttachment, within context: NSManagedObjectContext) throws { + private convenience init(obvAttachment: ObvAttachment, within context: NSManagedObjectContext) throws { + + let metadata = try FyleMetadata.jsonDecode(obvAttachment.metadata) guard let receivedMessage = try PersistedMessageReceived.get(messageIdentifierFromEngine: obvAttachment.messageIdentifier, from: obvAttachment.fromContactIdentity, @@ -73,62 +76,127 @@ public final class ReceivedFyleMessageJoinWithStatus: FyleMessageJoinWithStatus, throw Self.makeError(message: "Trying to create a ReceivedFyleMessageJoinWithStatus for a wiped received message") } - // Pre-compute a few things - - let fyle: Fyle - do { - let _fyle = try Fyle.get(sha256: metadata.sha256, within: context) - guard _fyle != nil else { throw Self.makeError(message: "Could not get Fyle (1)") } - fyle = _fyle! + try self.init(sha256: metadata.sha256, + totalByteCount: 0, // Reset bellow + fileName: metadata.fileName, + uti: metadata.contentType.identifier, + rawStatus: FyleStatus.complete.rawValue, // Reset later + messageSortIndex: receivedMessage.sortIndex, + index: obvAttachment.number, + forEntityName: ReceivedFyleMessageJoinWithStatus.entityName, + within: context) + + guard let fyle else { + assertionFailure() + throw Self.makeError(message: "The fyle should have been created by the superclass initializer") } - - let rawStatus: Int - let totalByteCount: Int64 + if let fileSize = fyle.getFileSize() { - rawStatus = FyleStatus.complete.rawValue - totalByteCount = fileSize + self.rawStatus = FyleStatus.complete.rawValue + self.setTotalByteCount(to: fileSize) } else { - rawStatus = obvAttachment.downloadPaused ? FyleStatus.downloadable.rawValue : FyleStatus.downloading.rawValue - totalByteCount = obvAttachment.totalUnitCount + self.rawStatus = obvAttachment.downloadPaused ? FyleStatus.downloadable.rawValue : FyleStatus.downloading.rawValue + self.setTotalByteCount(to: obvAttachment.totalUnitCount) } - - // Call the superclass initializer - - self.init(totalByteCount: totalByteCount, - fileName: metadata.fileName, - uti: metadata.uti, - rawStatus: rawStatus, - messageSortIndex: receivedMessage.sortIndex, - index: obvAttachment.number, - fyle: fyle, - forEntityName: ReceivedFyleMessageJoinWithStatus.entityName, - within: context) // Set the remaining properties and relationships - self.downsizedThumbnail = nil self.receivedMessage = receivedMessage } + /// Returns `true` if the attachment is fully received, i.e., if the `ReceivedFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk. + /// Also returns `true` if the attachment was cancelled by the server. + static func createOrUpdateReceivedFyleMessageJoinWithStatus(with obvAttachment: ObvAttachment, within context: NSManagedObjectContext) throws -> Bool { + + let join: ReceivedFyleMessageJoinWithStatus + if let previousJoin = try ReceivedFyleMessageJoinWithStatus.get(obvAttachment: obvAttachment, within: context) { + join = previousJoin + if join.fyle == nil { + assertionFailure("This is unexpected as the join should have been cascade deleted when the fyle was deleted") + let metadata = try FyleMetadata.jsonDecode(obvAttachment.metadata) + try join.getOrCreateFyle(sha256: metadata.sha256) + } + } else { + join = try Self.init( + obvAttachment: obvAttachment, + within: context) + assert(join.fyle != nil, "The fyle should have been created by the init of the superclass") + } + + let attachmentFullyReceivedOrCancelledByServer = try join.updateReceivedFyleMessageJoinWithStatus(with: obvAttachment) + + return attachmentFullyReceivedOrCancelledByServer + + } + + + /// Returns `true` if the attachment is fully received, i.e., if the `ReceivedFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk. + /// Also returns `true` if the attachment was cancelled by the server. + private func updateReceivedFyleMessageJoinWithStatus(with obvAttachment: ObvAttachment) throws -> Bool { + + // Update the status of the ReceivedFyleMessageJoinWithStatus depending on the status of the ObvAttachment + + var attachmentCancelledByServer = false + var attachmentFullyReceived = false + + switch obvAttachment.status { + + case .paused: + tryToSetStatusTo(.downloadable) + + case .resumed: + tryToSetStatusTo(.downloading) + + case .downloaded: + guard let fyle else { + assertionFailure("Could not find fyle although this join should have been cascade deleted when the fyle was deleted") + throw Self.makeError(message: "Could not find fyle") + } + try fyle.updateFyle(with: obvAttachment) + attachmentFullyReceived = (fyle.getFileSize() == totalByteCount) + if attachmentFullyReceived { + tryToSetStatusTo(.complete) + deleteDownsizedThumbnail() + } + + case .cancelledByServer: + tryToSetStatusTo(.cancelledByServer) + attachmentCancelledByServer = true + + case .markedForDeletion: + break + + } + + return attachmentFullyReceived || attachmentCancelledByServer + + } + + public override func wipe() throws { try super.wipe() tryToSetStatusTo(.complete) - deleteDownsizedThumbnail() } + + /// Set the downsized thumbnail if required. Returns `true` if this was the case, or `false` otherwise. + /// + /// Exclusively called from ``PersistedMessageReceived.saveExtendedPayload(foundIn:)``. + override func setDownsizedThumbnailIfRequired(data: Data) -> Bool { + assert(self.downsizedThumbnail == nil) + guard !isWiped else { assertionFailure(); return false } + guard requiresDownsizedThumbnail() else { return false } + return super.setDownsizedThumbnailIfRequired(data: data) + } + } // MARK: - Other methods extension ReceivedFyleMessageJoinWithStatus { - public func deleteDownsizedThumbnail() { - self.downsizedThumbnail = nil - } - - - public func tryToSetStatusTo(_ newStatus: FyleStatus) { + private func tryToSetStatusTo(_ newStatus: FyleStatus) { guard self.status != .complete else { return } self.rawStatus = newStatus.rawValue self.message?.setHasUpdate() @@ -140,6 +208,19 @@ extension ReceivedFyleMessageJoinWithStatus { } } + public func tryToSetStatusToCancelledByServer() { + tryToSetStatusTo(.cancelledByServer) + } + + public func tryToSetStatusToDownloading() { + tryToSetStatusTo(.downloading) + } + + public func tryToSetStatusToDownloadable() { + tryToSetStatusTo(.downloadable) + } + + public func markAsOpened() { guard !self.wasOpened else { return } self.wasOpened = true @@ -157,7 +238,7 @@ extension ReceivedFyleMessageJoinWithStatus { func attachementImage() -> NotificationAttachmentImage? { guard !receivedMessage.readingRequiresUserAction else { return nil } if let fyleElement = fyleElementOfReceivedJoin(), fyleElement.fullFileIsAvailable { - guard ObvUTIUtils.uti(fyleElement.uti, conformsTo: kUTTypeJPEG) else { return nil } + guard fyleElement.contentType.conforms(to: .jpeg) else { return nil } return .url(attachmentNumber: index, fyleElement.fyleURL) } else if let data = downsizedThumbnail { return .data(attachmentNumber: index, data) @@ -167,21 +248,11 @@ extension ReceivedFyleMessageJoinWithStatus { } // `true` if this join is not complete, or if the fyle is not completely available on disk - func requiresDownsizedThumbnail() -> Bool { + private func requiresDownsizedThumbnail() -> Bool { guard let fyle = self.fyle else { return true } return self.status != .complete || fyle.getFileSize() != self.totalByteCount } - /// Set the downsized thumbnail if required. Returns `true` if this was the case, or `false` otherwise. - public func setDownsizedThumbnailIfRequired(data: Data) -> Bool { - assert(self.downsizedThumbnail == nil) - guard !isWiped else { assertionFailure(); return false } - guard requiresDownsizedThumbnail() else { return false } - guard self.downsizedThumbnail != data else { return false } - self.downsizedThumbnail = data - return true - } - } @@ -234,10 +305,14 @@ extension ReceivedFyleMessageJoinWithStatus { } - public static func get(metadata: FyleMetadata, obvAttachment: ObvAttachment, within context: NSManagedObjectContext) throws -> ReceivedFyleMessageJoinWithStatus? { - guard let receivedMessage = try PersistedMessageReceived.get(messageIdentifierFromEngine: obvAttachment.messageIdentifier, - from: obvAttachment.fromContactIdentity, - within: context) else { throw makeError(message: "Could not find the associated PersistedMessageReceived") } + private static func get(obvAttachment: ObvAttachment, within context: NSManagedObjectContext) throws -> ReceivedFyleMessageJoinWithStatus? { + let metadata = try FyleMetadata.jsonDecode(obvAttachment.metadata) + guard let receivedMessage = try PersistedMessageReceived.get( + messageIdentifierFromEngine: obvAttachment.messageIdentifier, + from: obvAttachment.fromContactIdentity, + within: context) else { + throw makeError(message: "Could not find the associated PersistedMessageReceived") + } let request: NSFetchRequest = ReceivedFyleMessageJoinWithStatus.fetchRequest() request.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [ FyleMessageJoinWithStatus.Predicate.withSha256(metadata.sha256), @@ -249,7 +324,7 @@ extension ReceivedFyleMessageJoinWithStatus { } - public static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { + static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { let request: NSFetchRequest = ReceivedFyleMessageJoinWithStatus.fetchRequest() request.predicate = NSPredicate(format: "%K == NIL", Predicate.Key.receivedMessage.rawValue) let deleteRequest = NSBatchDeleteRequest(fetchRequest: request) @@ -263,7 +338,16 @@ extension ReceivedFyleMessageJoinWithStatus { } -// Reacting to changes +// MARK: - Downcasting + +public extension TypeSafeManagedObjectID where T == ReceivedFyleMessageJoinWithStatus { + var downcast: TypeSafeManagedObjectID { + TypeSafeManagedObjectID(objectID: objectID) + } +} + + +// MARK: - Reacting to changes extension ReceivedFyleMessageJoinWithStatus { diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/SentFyleMessageJoinWithStatus.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/SentFyleMessageJoinWithStatus.swift index d0f1595c..45703301 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/SentFyleMessageJoinWithStatus.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Models/SentFyleMessageJoinWithStatus.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,7 +20,8 @@ import Foundation import CoreData import MobileCoreServices -import ObvEngine +import ObvTypes +import UniformTypeIdentifiers @objc(SentFyleMessageJoinWithStatus) public final class SentFyleMessageJoinWithStatus: FyleMessageJoinWithStatus, Identifiable { @@ -37,6 +38,8 @@ public final class SentFyleMessageJoinWithStatus: FyleMessageJoinWithStatus, Ide // MARK: Other variables + private var changedKeys = Set() + public private(set) var status: FyleStatus { get { return FyleStatus(rawValue: self.rawStatus)! @@ -59,12 +62,25 @@ public final class SentFyleMessageJoinWithStatus: FyleMessageJoinWithStatus, Ide public override var message: PersistedMessage? { sentMessage } - public override var fullFileIsAvailable: Bool { !isWiped } + + public override var fullFileIsAvailable: Bool { + switch status { + case .uploadable, .uploading, .complete: + guard !isWiped else { return false } + guard let fyle, FileManager.default.fileExists(atPath: fyle.url.path) else { return false } + return true + case .downloadable, .downloading, .cancelledByServer: + return false + } + } public enum FyleStatus: Int { case uploadable = 0 case uploading = 1 - case complete = 2 + case complete = 2 // For both locally sent attachments and attachments sent from other device when fully downloaded + case downloadable = 3 // When sent from other owned device + case downloading = 4 // When sent from other owned device + case cancelledByServer = 5 // When sent from other owned device } public enum FyleReceptionStatus: Int { @@ -83,16 +99,11 @@ public final class SentFyleMessageJoinWithStatus: FyleMessageJoinWithStatus, Ide guard let fyle = self.fyle else { return nil } - let uti: String - if let _uti = ObvUTIUtils.utiOfFile(withName: self.fileName) { - uti = _uti - } else { - uti = String(kUTTypeData) - } + let contentType = UTType(filenameExtension: (self.fileName as NSString).pathExtension) ?? .data return FyleMetadata(fileName: self.fileName, sha256: fyle.sha256, - uti: uti) + contentType: contentType) } @@ -100,28 +111,38 @@ public final class SentFyleMessageJoinWithStatus: FyleMessageJoinWithStatus, Ide tryToSetStatusTo(.complete) } + // Non-nil iff the message was sent from another owned device + public var messageIdentifierFromEngine: Data? { + return sentMessage.messageIdentifierFromEngine + } // MARK: - Initializer - convenience init?(fyleJoin: FyleJoin, persistedMessageSentObjectID: TypeSafeManagedObjectID, within context: NSManagedObjectContext) { + convenience init(fyleJoin: FyleJoin, persistedMessageSentObjectID: TypeSafeManagedObjectID, within context: NSManagedObjectContext) throws { - guard let fyle = fyleJoin.fyle else { return nil } + guard let fyle = fyleJoin.fyle else { + assertionFailure() + throw Self.makeError(message: "No fyle available") + } // Pre-compute a few things - guard let persistedMessageSent = try? PersistedMessageSent.getPersistedMessageSent(objectID: persistedMessageSentObjectID, within: context) else { return nil } + guard let persistedMessageSent = try PersistedMessageSent.getPersistedMessageSent(objectID: persistedMessageSentObjectID, within: context) else { + assertionFailure() + throw Self.makeError(message: "Could not find PersistedMessageSent") + } // Call the superclass initializer - self.init(totalByteCount: fyle.getFileSize() ?? 0, - fileName: fyleJoin.fileName, - uti: fyleJoin.uti, - rawStatus: FyleStatus.uploadable.rawValue, - messageSortIndex: persistedMessageSent.sortIndex, - index: fyleJoin.index, - fyle: fyle, - forEntityName: SentFyleMessageJoinWithStatus.entityName, - within: context) + try self.init(sha256: fyle.sha256, + totalByteCount: fyle.getFileSize() ?? 0, + fileName: fyleJoin.fileName, + uti: fyleJoin.uti, + rawStatus: FyleStatus.uploadable.rawValue, + messageSortIndex: persistedMessageSent.sortIndex, + index: fyleJoin.index, + forEntityName: SentFyleMessageJoinWithStatus.entityName, + within: context) // Set the remaining properties and relationships @@ -129,6 +150,115 @@ public final class SentFyleMessageJoinWithStatus: FyleMessageJoinWithStatus, Ide } + + /// Called when receiving an attachment sent from another owned device + private convenience init(obvOwnedAttachment: ObvOwnedAttachment, messageSent: PersistedMessageSent) throws { + + let metadata = try FyleMetadata.jsonDecode(obvOwnedAttachment.metadata) + + guard !messageSent.isWiped else { + throw Self.makeError(message: "Trying to create a SentFyleMessageJoinWithStatus for a wiped received message") + } + + guard let context = messageSent.managedObjectContext else { + throw ObvError.noContext + } + + try self.init(sha256: metadata.sha256, + totalByteCount: 0, // Reset bellow + fileName: metadata.fileName, + uti: metadata.contentType.identifier, + rawStatus: FyleStatus.downloadable.rawValue, + messageSortIndex: messageSent.sortIndex, + index: obvOwnedAttachment.number, + forEntityName: SentFyleMessageJoinWithStatus.entityName, + within: context) + + guard let fyle else { + assertionFailure() + throw Self.makeError(message: "The fyle should have been created by the superclass initializer") + } + + if let fileSize = fyle.getFileSize() { + self.rawStatus = FyleStatus.complete.rawValue + self.setTotalByteCount(to: fileSize) + } else { + self.rawStatus = obvOwnedAttachment.downloadPaused ? FyleStatus.downloadable.rawValue : FyleStatus.downloading.rawValue + self.setTotalByteCount(to: obvOwnedAttachment.totalUnitCount) + } + + // Set the remaining properties and relationships + + self.sentMessage = messageSent + + } + + + /// Returns `true` iff the attachment is cancelled or fully received (i.e., if the `SentFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk). + static func createOrUpdateSentFyleMessageJoinWithStatusFromOtherOwnedDevice(with obvOwnedAttachment: ObvOwnedAttachment, messageSent: PersistedMessageSent) throws -> Bool { + + let join: SentFyleMessageJoinWithStatus + if obvOwnedAttachment.number < messageSent.fyleMessageJoinWithStatuses.count { + let previousJoin = messageSent.fyleMessageJoinWithStatuses[obvOwnedAttachment.number] + join = previousJoin + if join.fyle == nil { + assertionFailure("This is unexpected as the join should have been cascade deleted when the fyle was deleted") + let metadata = try FyleMetadata.jsonDecode(obvOwnedAttachment.metadata) + try join.getOrCreateFyle(sha256: metadata.sha256) + } + } else { + join = try Self.init(obvOwnedAttachment: obvOwnedAttachment, + messageSent: messageSent) + assert(join.fyle != nil, "The fyle should have been created by the init of the superclass") + } + + let attachmentFullyReceivedOrCancelledByServer = try join.updateSentFyleMessageJoinWithStatusFromOtherOwnedDevice(with: obvOwnedAttachment) + + return attachmentFullyReceivedOrCancelledByServer + + } + + + /// Returns `true` iff the attachment is cancelled or fully received (i.e., if the `SentFyleMessageJoinWithStatus` status is `.complete` and if the `Fyle` has a full file on disk). + private func updateSentFyleMessageJoinWithStatusFromOtherOwnedDevice(with obvOwnedAttachment: ObvOwnedAttachment) throws -> Bool { + + // Update the status of the ReceivedFyleMessageJoinWithStatus depending on the status of the ObvAttachment + + var attachmentCancelledByServer = false + + switch obvOwnedAttachment.status { + case .paused: + tryToSetStatusTo(.downloadable) + case .resumed: + tryToSetStatusTo(.downloading) + case .downloaded: + tryToSetStatusTo(.complete) + case .cancelledByServer: + tryToSetStatusTo(.cancelledByServer) + attachmentCancelledByServer = true + case .markedForDeletion: + break + } + + guard let fyle else { + assertionFailure("Could not find fyle although this join should have been cascade deleted when the fyle was deleted") + throw Self.makeError(message: "Could not find fyle") + } + + try fyle.updateFyle(with: obvOwnedAttachment) + + // If the status is downloaded and the fyle is available, we can delete any existing downsized preview + + let attachmentFullyReceived = (status == .complete) && (fyle.getFileSize() == totalByteCount) + + if attachmentFullyReceived { + deleteDownsizedThumbnail() + } + + return attachmentFullyReceived || attachmentCancelledByServer + + } + public func fyleElementOfSentJoin() -> FyleElement? { try? FyleElementForFyleMessageJoinWithStatus.init(self) @@ -158,6 +288,24 @@ public final class SentFyleMessageJoinWithStatus: FyleMessageJoinWithStatus, Ide self.receptionStatus = newReceptionStatus } + + /// Set the downsized thumbnail if required. Returns `true` if this was the case, or `false` otherwise. + /// + /// Exclusively called from ``PersistedMessageReceived.saveExtendedPayload(foundIn:)``. + override func setDownsizedThumbnailIfRequired(data: Data) -> Bool { + assert(self.downsizedThumbnail == nil) + guard !isWiped else { assertionFailure(); return false } + guard requiresDownsizedThumbnail() else { return false } + return super.setDownsizedThumbnailIfRequired(data: data) + } + + + // `true` if this join is not complete, or if the fyle is not completely available on disk + private func requiresDownsizedThumbnail() -> Bool { + guard let fyle = self.fyle else { return true } + return self.status != .complete || fyle.getFileSize() != self.totalByteCount + } + } @@ -186,6 +334,7 @@ extension SentFyleMessageJoinWithStatus { struct Predicate { enum Key: String { + case rawReceptionStatus = "rawReceptionStatus" case sentMessage = "sentMessage" } static var isIncomplete: NSPredicate { @@ -200,22 +349,78 @@ extension SentFyleMessageJoinWithStatus { return NSFetchRequest(entityName: SentFyleMessageJoinWithStatus.entityName) } - static func getSentFyleMessageJoinWithStatus(objectID: NSManagedObjectID, within context: NSManagedObjectContext) -> SentFyleMessageJoinWithStatus? { - let sentFyleMessageJoinWithStatus: SentFyleMessageJoinWithStatus - do { - guard let res = try context.existingObject(with: objectID) as? SentFyleMessageJoinWithStatus else { throw Self.makeError(message: "Could not find SentFyleMessageJoinWithStatus") } - sentFyleMessageJoinWithStatus = res - } catch { - return nil - } - return sentFyleMessageJoinWithStatus + public static func getSentFyleMessageJoinWithStatus(objectID: NSManagedObjectID, within context: NSManagedObjectContext) throws -> SentFyleMessageJoinWithStatus? { + return try context.existingObject(with: objectID) as? SentFyleMessageJoinWithStatus } - public static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { + static func deleteAllOrphaned(within context: NSManagedObjectContext) throws { let request: NSFetchRequest = SentFyleMessageJoinWithStatus.fetchRequest() request.predicate = Predicate.withoutSentMessage let deleteRequest = NSBatchDeleteRequest(fetchRequest: request) try context.execute(deleteRequest) } } + + +// MARK: - Errors + +extension SentFyleMessageJoinWithStatus { + + public enum ObvError: LocalizedError { + + case noContext + + public var errorDescription: String? { + switch self { + case .noContext: + return "No context" + } + } + + } + +} + + +// MARK: - Downcasting + +public extension TypeSafeManagedObjectID where T == SentFyleMessageJoinWithStatus { + var downcast: TypeSafeManagedObjectID { + TypeSafeManagedObjectID(objectID: objectID) + } +} + + +// MARK: - Notifying on changes + +extension SentFyleMessageJoinWithStatus { + + public override func willSave() { + super.willSave() + if !isInserted, !isDeleted, isUpdated { + changedKeys = Set(self.changedValues().keys) + } + } + + + public override func didSave() { + super.didSave() + + defer { + self.changedKeys.removeAll() + } + + if !isDeleted, changedKeys.contains(PersistedMessage.Predicate.Key.rawStatus.rawValue), let discussion = self.sentMessage.discussion { + let messageID = self.sentMessage.typedObjectID + let discussionID = discussion.typedObjectID + ObvMessengerCoreDataNotification.statusOfSentFyleMessageJoinDidChange( + sentJoinID: self.typedObjectID, + messageID: messageID, + discussionID: discussionID) + .postOnDispatchQueue() + } + + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Notification/ObvMessengerCoreDataNotification.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Notification/ObvMessengerCoreDataNotification.swift index 91ff152c..f1b64c9c 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Notification/ObvMessengerCoreDataNotification.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Notification/ObvMessengerCoreDataNotification.swift @@ -22,7 +22,7 @@ import CoreData import ObvEngine import ObvCrypto import ObvTypes -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials fileprivate struct OptionalWrapper { let value: T? @@ -37,9 +37,8 @@ fileprivate struct OptionalWrapper { public enum ObvMessengerCoreDataNotification { case newDraftToSend(draftPermanentID: ObvManagedObjectPermanentID) case draftWasSent(persistedDraftObjectID: TypeSafeManagedObjectID) - case persistedMessageHasNewMetadata(persistedMessageObjectID: NSManagedObjectID) case newOrUpdatedPersistedInvitation(concernedOwnedIdentityIsHidden: Bool, obvDialog: ObvDialog, persistedInvitationUUID: UUID) - case persistedContactWasInserted(contactPermanentID: ObvManagedObjectPermanentID) + case persistedContactWasInserted(contactPermanentID: ObvManagedObjectPermanentID, ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) case persistedContactWasDeleted(objectID: NSManagedObjectID, identity: Data) case persistedContactHasNewCustomDisplayName(contactCryptoId: ObvCryptoId) case persistedContactHasNewStatus(contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId) @@ -53,16 +52,15 @@ public enum ObvMessengerCoreDataNotification { case deletedPersistedObvContactDevice(contactCryptoId: ObvCryptoId) case persistedDiscussionHasNewTitle(objectID: TypeSafeManagedObjectID, title: String) case persistedDiscussionWasDeleted(discussionPermanentID: ObvManagedObjectPermanentID, objectIDOfDeletedDiscussion: TypeSafeManagedObjectID) - case persistedDiscussionWasInserted(discussionPermanentID: ObvManagedObjectPermanentID, objectID: TypeSafeManagedObjectID) + case persistedDiscussionWasInsertedOrReactivated(ownedCryptoId: ObvCryptoId, discussionIdentifier: DiscussionIdentifier) case newPersistedObvOwnedIdentity(ownedCryptoId: ObvCryptoId, isActive: Bool) case ownedIdentityWasReactivated(ownedIdentityObjectID: NSManagedObjectID) case ownedIdentityWasDeactivated(ownedIdentityObjectID: NSManagedObjectID) - case anOldDiscussionSharedConfigurationWasReceived(persistedDiscussionObjectID: NSManagedObjectID) case persistedMessageSystemWasDeleted(objectID: NSManagedObjectID, discussionObjectID: TypeSafeManagedObjectID) case persistedMessagesWereDeleted(discussionPermanentID: ObvManagedObjectPermanentID, messagePermanentIDs: Set>) case persistedMessagesWereWiped(discussionPermanentID: ObvManagedObjectPermanentID, messagePermanentIDs: Set>) case persistedDiscussionStatusChanged(discussionPermanentID: ObvManagedObjectPermanentID, newStatus: PersistedDiscussion.Status) - case persistedGroupV2UpdateIsFinished(objectID: TypeSafeManagedObjectID) + case persistedGroupV2UpdateIsFinished(objectID: TypeSafeManagedObjectID, ownedCryptoId: ObvCryptoId, groupIdentifier: GroupV2Identifier) case persistedGroupV2WasDeleted(objectID: TypeSafeManagedObjectID) case aPersistedGroupV2MemberChangedFromPendingToNonPending(contactObjectID: TypeSafeManagedObjectID) case ownedCircledInitialsConfigurationDidChange(ownedIdentityPermanentID: ObvManagedObjectPermanentID, ownedCryptoId: ObvCryptoId, newOwnedCircledInitialsConfiguration: CircledInitialsConfiguration) @@ -70,7 +68,7 @@ public enum ObvMessengerCoreDataNotification { case ownedIdentityHiddenStatusChanged(ownedCryptoId: ObvCryptoId, isHidden: Bool) case badgeCountForDiscussionsOrInvitationsTabChangedForOwnedIdentity(ownedCryptoId: ObvCryptoId) case displayedContactGroupWasJustCreated(permanentID: ObvManagedObjectPermanentID) - case groupV2TrustedDetailsShouldBeReplacedByPublishedDetails(ownCryptoId: ObvCryptoId, groupIdentifier: Data) + case groupV2TrustedDetailsShouldBeReplacedByPublishedDetails(ownCryptoId: ObvCryptoId, groupIdentifier: GroupV2Identifier) case receivedFyleJoinHasBeenMarkAsOpened(receivedFyleJoinID: TypeSafeManagedObjectID) case aDeliveredReturnReceiptShouldBeSentForAReceivedFyleMessageJoinWithStatus(returnReceipt: ReturnReceiptJSON, contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, attachmentNumber: Int) case persistedMessageReceivedWasDeleted(objectID: NSManagedObjectID, messageIdentifierFromEngine: Data, ownedCryptoId: ObvCryptoId, sortIndex: Double, discussionObjectID: TypeSafeManagedObjectID) @@ -82,11 +80,13 @@ public enum ObvMessengerCoreDataNotification { case fyleMessageJoinWithStatusWasInserted(fyleMessageJoinObjectID: TypeSafeManagedObjectID) case fyleMessageJoinWithStatusWasUpdated(fyleMessageJoinObjectID: TypeSafeManagedObjectID) case discussionLocalConfigurationHasBeenUpdated(newValue: PersistedDiscussionLocalConfigurationValue, localConfigurationObjectID: TypeSafeManagedObjectID) + case statusOfSentFyleMessageJoinDidChange(sentJoinID: TypeSafeManagedObjectID, messageID: TypeSafeManagedObjectID, discussionID: TypeSafeManagedObjectID) + case aSecureChannelWithContactDeviceWasJustCreated(contactDeviceObjectID: TypeSafeManagedObjectID) + case aPersistedGroupV2WasInsertedInDatabase(ownedCryptoId: ObvCryptoId, groupIdentifier: GroupV2Identifier) private enum Name { case newDraftToSend case draftWasSent - case persistedMessageHasNewMetadata case newOrUpdatedPersistedInvitation case persistedContactWasInserted case persistedContactWasDeleted @@ -102,11 +102,10 @@ public enum ObvMessengerCoreDataNotification { case deletedPersistedObvContactDevice case persistedDiscussionHasNewTitle case persistedDiscussionWasDeleted - case persistedDiscussionWasInserted + case persistedDiscussionWasInsertedOrReactivated case newPersistedObvOwnedIdentity case ownedIdentityWasReactivated case ownedIdentityWasDeactivated - case anOldDiscussionSharedConfigurationWasReceived case persistedMessageSystemWasDeleted case persistedMessagesWereDeleted case persistedMessagesWereWiped @@ -131,6 +130,9 @@ public enum ObvMessengerCoreDataNotification { case fyleMessageJoinWithStatusWasInserted case fyleMessageJoinWithStatusWasUpdated case discussionLocalConfigurationHasBeenUpdated + case statusOfSentFyleMessageJoinDidChange + case aSecureChannelWithContactDeviceWasJustCreated + case aPersistedGroupV2WasInsertedInDatabase private var namePrefix: String { String(describing: ObvMessengerCoreDataNotification.self) } @@ -145,7 +147,6 @@ public enum ObvMessengerCoreDataNotification { switch notification { case .newDraftToSend: return Name.newDraftToSend.name case .draftWasSent: return Name.draftWasSent.name - case .persistedMessageHasNewMetadata: return Name.persistedMessageHasNewMetadata.name case .newOrUpdatedPersistedInvitation: return Name.newOrUpdatedPersistedInvitation.name case .persistedContactWasInserted: return Name.persistedContactWasInserted.name case .persistedContactWasDeleted: return Name.persistedContactWasDeleted.name @@ -161,11 +162,10 @@ public enum ObvMessengerCoreDataNotification { case .deletedPersistedObvContactDevice: return Name.deletedPersistedObvContactDevice.name case .persistedDiscussionHasNewTitle: return Name.persistedDiscussionHasNewTitle.name case .persistedDiscussionWasDeleted: return Name.persistedDiscussionWasDeleted.name - case .persistedDiscussionWasInserted: return Name.persistedDiscussionWasInserted.name + case .persistedDiscussionWasInsertedOrReactivated: return Name.persistedDiscussionWasInsertedOrReactivated.name case .newPersistedObvOwnedIdentity: return Name.newPersistedObvOwnedIdentity.name case .ownedIdentityWasReactivated: return Name.ownedIdentityWasReactivated.name case .ownedIdentityWasDeactivated: return Name.ownedIdentityWasDeactivated.name - case .anOldDiscussionSharedConfigurationWasReceived: return Name.anOldDiscussionSharedConfigurationWasReceived.name case .persistedMessageSystemWasDeleted: return Name.persistedMessageSystemWasDeleted.name case .persistedMessagesWereDeleted: return Name.persistedMessagesWereDeleted.name case .persistedMessagesWereWiped: return Name.persistedMessagesWereWiped.name @@ -190,6 +190,9 @@ public enum ObvMessengerCoreDataNotification { case .fyleMessageJoinWithStatusWasInserted: return Name.fyleMessageJoinWithStatusWasInserted.name case .fyleMessageJoinWithStatusWasUpdated: return Name.fyleMessageJoinWithStatusWasUpdated.name case .discussionLocalConfigurationHasBeenUpdated: return Name.discussionLocalConfigurationHasBeenUpdated.name + case .statusOfSentFyleMessageJoinDidChange: return Name.statusOfSentFyleMessageJoinDidChange.name + case .aSecureChannelWithContactDeviceWasJustCreated: return Name.aSecureChannelWithContactDeviceWasJustCreated.name + case .aPersistedGroupV2WasInsertedInDatabase: return Name.aPersistedGroupV2WasInsertedInDatabase.name } } } @@ -204,19 +207,17 @@ public enum ObvMessengerCoreDataNotification { info = [ "persistedDraftObjectID": persistedDraftObjectID, ] - case .persistedMessageHasNewMetadata(persistedMessageObjectID: let persistedMessageObjectID): - info = [ - "persistedMessageObjectID": persistedMessageObjectID, - ] case .newOrUpdatedPersistedInvitation(concernedOwnedIdentityIsHidden: let concernedOwnedIdentityIsHidden, obvDialog: let obvDialog, persistedInvitationUUID: let persistedInvitationUUID): info = [ "concernedOwnedIdentityIsHidden": concernedOwnedIdentityIsHidden, "obvDialog": obvDialog, "persistedInvitationUUID": persistedInvitationUUID, ] - case .persistedContactWasInserted(contactPermanentID: let contactPermanentID): + case .persistedContactWasInserted(contactPermanentID: let contactPermanentID, ownedCryptoId: let ownedCryptoId, contactCryptoId: let contactCryptoId): info = [ "contactPermanentID": contactPermanentID, + "ownedCryptoId": ownedCryptoId, + "contactCryptoId": contactCryptoId, ] case .persistedContactWasDeleted(objectID: let objectID, identity: let identity): info = [ @@ -279,10 +280,10 @@ public enum ObvMessengerCoreDataNotification { "discussionPermanentID": discussionPermanentID, "objectIDOfDeletedDiscussion": objectIDOfDeletedDiscussion, ] - case .persistedDiscussionWasInserted(discussionPermanentID: let discussionPermanentID, objectID: let objectID): + case .persistedDiscussionWasInsertedOrReactivated(ownedCryptoId: let ownedCryptoId, discussionIdentifier: let discussionIdentifier): info = [ - "discussionPermanentID": discussionPermanentID, - "objectID": objectID, + "ownedCryptoId": ownedCryptoId, + "discussionIdentifier": discussionIdentifier, ] case .newPersistedObvOwnedIdentity(ownedCryptoId: let ownedCryptoId, isActive: let isActive): info = [ @@ -297,10 +298,6 @@ public enum ObvMessengerCoreDataNotification { info = [ "ownedIdentityObjectID": ownedIdentityObjectID, ] - case .anOldDiscussionSharedConfigurationWasReceived(persistedDiscussionObjectID: let persistedDiscussionObjectID): - info = [ - "persistedDiscussionObjectID": persistedDiscussionObjectID, - ] case .persistedMessageSystemWasDeleted(objectID: let objectID, discussionObjectID: let discussionObjectID): info = [ "objectID": objectID, @@ -321,9 +318,11 @@ public enum ObvMessengerCoreDataNotification { "discussionPermanentID": discussionPermanentID, "newStatus": newStatus, ] - case .persistedGroupV2UpdateIsFinished(objectID: let objectID): + case .persistedGroupV2UpdateIsFinished(objectID: let objectID, ownedCryptoId: let ownedCryptoId, groupIdentifier: let groupIdentifier): info = [ "objectID": objectID, + "ownedCryptoId": ownedCryptoId, + "groupIdentifier": groupIdentifier, ] case .persistedGroupV2WasDeleted(objectID: let objectID): info = [ @@ -415,6 +414,21 @@ public enum ObvMessengerCoreDataNotification { "newValue": newValue, "localConfigurationObjectID": localConfigurationObjectID, ] + case .statusOfSentFyleMessageJoinDidChange(sentJoinID: let sentJoinID, messageID: let messageID, discussionID: let discussionID): + info = [ + "sentJoinID": sentJoinID, + "messageID": messageID, + "discussionID": discussionID, + ] + case .aSecureChannelWithContactDeviceWasJustCreated(contactDeviceObjectID: let contactDeviceObjectID): + info = [ + "contactDeviceObjectID": contactDeviceObjectID, + ] + case .aPersistedGroupV2WasInsertedInDatabase(ownedCryptoId: let ownedCryptoId, groupIdentifier: let groupIdentifier): + info = [ + "ownedCryptoId": ownedCryptoId, + "groupIdentifier": groupIdentifier, + ] } return info } @@ -460,14 +474,6 @@ public enum ObvMessengerCoreDataNotification { } } - public static func observePersistedMessageHasNewMetadata(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (NSManagedObjectID) -> Void) -> NSObjectProtocol { - let name = Name.persistedMessageHasNewMetadata.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let persistedMessageObjectID = notification.userInfo!["persistedMessageObjectID"] as! NSManagedObjectID - block(persistedMessageObjectID) - } - } - public static func observeNewOrUpdatedPersistedInvitation(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (Bool, ObvDialog, UUID) -> Void) -> NSObjectProtocol { let name = Name.newOrUpdatedPersistedInvitation.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in @@ -478,11 +484,13 @@ public enum ObvMessengerCoreDataNotification { } } - public static func observePersistedContactWasInserted(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvManagedObjectPermanentID) -> Void) -> NSObjectProtocol { + public static func observePersistedContactWasInserted(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvManagedObjectPermanentID, ObvCryptoId, ObvCryptoId) -> Void) -> NSObjectProtocol { let name = Name.persistedContactWasInserted.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in let contactPermanentID = notification.userInfo!["contactPermanentID"] as! ObvManagedObjectPermanentID - block(contactPermanentID) + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let contactCryptoId = notification.userInfo!["contactCryptoId"] as! ObvCryptoId + block(contactPermanentID, ownedCryptoId, contactCryptoId) } } @@ -599,12 +607,12 @@ public enum ObvMessengerCoreDataNotification { } } - public static func observePersistedDiscussionWasInserted(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvManagedObjectPermanentID, TypeSafeManagedObjectID) -> Void) -> NSObjectProtocol { - let name = Name.persistedDiscussionWasInserted.name + public static func observePersistedDiscussionWasInsertedOrReactivated(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, DiscussionIdentifier) -> Void) -> NSObjectProtocol { + let name = Name.persistedDiscussionWasInsertedOrReactivated.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let discussionPermanentID = notification.userInfo!["discussionPermanentID"] as! ObvManagedObjectPermanentID - let objectID = notification.userInfo!["objectID"] as! TypeSafeManagedObjectID - block(discussionPermanentID, objectID) + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let discussionIdentifier = notification.userInfo!["discussionIdentifier"] as! DiscussionIdentifier + block(ownedCryptoId, discussionIdentifier) } } @@ -633,14 +641,6 @@ public enum ObvMessengerCoreDataNotification { } } - public static func observeAnOldDiscussionSharedConfigurationWasReceived(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (NSManagedObjectID) -> Void) -> NSObjectProtocol { - let name = Name.anOldDiscussionSharedConfigurationWasReceived.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let persistedDiscussionObjectID = notification.userInfo!["persistedDiscussionObjectID"] as! NSManagedObjectID - block(persistedDiscussionObjectID) - } - } - public static func observePersistedMessageSystemWasDeleted(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (NSManagedObjectID, TypeSafeManagedObjectID) -> Void) -> NSObjectProtocol { let name = Name.persistedMessageSystemWasDeleted.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in @@ -677,11 +677,13 @@ public enum ObvMessengerCoreDataNotification { } } - public static func observePersistedGroupV2UpdateIsFinished(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (TypeSafeManagedObjectID) -> Void) -> NSObjectProtocol { + public static func observePersistedGroupV2UpdateIsFinished(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (TypeSafeManagedObjectID, ObvCryptoId, GroupV2Identifier) -> Void) -> NSObjectProtocol { let name = Name.persistedGroupV2UpdateIsFinished.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in let objectID = notification.userInfo!["objectID"] as! TypeSafeManagedObjectID - block(objectID) + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let groupIdentifier = notification.userInfo!["groupIdentifier"] as! GroupV2Identifier + block(objectID, ownedCryptoId, groupIdentifier) } } @@ -743,11 +745,11 @@ public enum ObvMessengerCoreDataNotification { } } - public static func observeGroupV2TrustedDetailsShouldBeReplacedByPublishedDetails(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, Data) -> Void) -> NSObjectProtocol { + public static func observeGroupV2TrustedDetailsShouldBeReplacedByPublishedDetails(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, GroupV2Identifier) -> Void) -> NSObjectProtocol { let name = Name.groupV2TrustedDetailsShouldBeReplacedByPublishedDetails.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in let ownCryptoId = notification.userInfo!["ownCryptoId"] as! ObvCryptoId - let groupIdentifier = notification.userInfo!["groupIdentifier"] as! Data + let groupIdentifier = notification.userInfo!["groupIdentifier"] as! GroupV2Identifier block(ownCryptoId, groupIdentifier) } } @@ -852,4 +854,31 @@ public enum ObvMessengerCoreDataNotification { } } + public static func observeStatusOfSentFyleMessageJoinDidChange(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (TypeSafeManagedObjectID, TypeSafeManagedObjectID, TypeSafeManagedObjectID) -> Void) -> NSObjectProtocol { + let name = Name.statusOfSentFyleMessageJoinDidChange.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let sentJoinID = notification.userInfo!["sentJoinID"] as! TypeSafeManagedObjectID + let messageID = notification.userInfo!["messageID"] as! TypeSafeManagedObjectID + let discussionID = notification.userInfo!["discussionID"] as! TypeSafeManagedObjectID + block(sentJoinID, messageID, discussionID) + } + } + + public static func observeASecureChannelWithContactDeviceWasJustCreated(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (TypeSafeManagedObjectID) -> Void) -> NSObjectProtocol { + let name = Name.aSecureChannelWithContactDeviceWasJustCreated.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let contactDeviceObjectID = notification.userInfo!["contactDeviceObjectID"] as! TypeSafeManagedObjectID + block(contactDeviceObjectID) + } + } + + public static func observeAPersistedGroupV2WasInsertedInDatabase(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, GroupV2Identifier) -> Void) -> NSObjectProtocol { + let name = Name.aPersistedGroupV2WasInsertedInDatabase.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let groupIdentifier = notification.userInfo!["groupIdentifier"] as! GroupV2Identifier + block(ownedCryptoId, groupIdentifier) + } + } + } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Notification/ObvMessengerCoreDataNotification.yml b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Notification/ObvMessengerCoreDataNotification.yml deleted file mode 100644 index 21a3b913..00000000 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Notification/ObvMessengerCoreDataNotification.yml +++ /dev/null @@ -1,182 +0,0 @@ -import: - - Foundation - - CoreData - - ObvEngine - - ObvCrypto - - ObvTypes - - UI_CircledInitialsView_CircledInitialsConfiguration -options: - - {key: visibility, value: public} -notifications: -- name: newDraftToSend - params: - - {name: draftPermanentID, type: ObvManagedObjectPermanentID} -- name: draftWasSent - params: - - {name: persistedDraftObjectID, type: TypeSafeManagedObjectID} -- name: persistedMessageHasNewMetadata - params: - - {name: persistedMessageObjectID, type: NSManagedObjectID} -- name: newOrUpdatedPersistedInvitation - params: - - {name: concernedOwnedIdentityIsHidden, type: Bool} - - {name: obvDialog, type: ObvDialog} - - {name: persistedInvitationUUID, type: UUID} -- name: persistedContactWasInserted - params: - - {name: contactPermanentID, type: ObvManagedObjectPermanentID} -- name: persistedContactWasDeleted - params: - - {name: objectID, type: NSManagedObjectID} - - {name: identity, type: Data} -- name: persistedContactHasNewCustomDisplayName - params: - - {name: contactCryptoId, type: ObvCryptoId} -- name: persistedContactHasNewStatus - params: - - {name: contactCryptoId, type: ObvCryptoId} - - {name: ownedCryptoId, type: ObvCryptoId} -- name: persistedContactIsActiveChanged - params: - - {name: contactID, type: TypeSafeManagedObjectID} -- name: newMessageExpiration - params: - - {name: expirationDate, type: Date} -- name: persistedMessageReactionReceivedWasDeletedOnSentMessage - params: - - {name: messagePermanentID, type: ObvManagedObjectPermanentID} - - {name: contactPermanentID, type: ObvManagedObjectPermanentID} -- name: persistedMessageReactionReceivedWasInsertedOrUpdated - params: - - {name: objectID, type: TypeSafeManagedObjectID} -- name: persistedContactGroupHasUpdatedContactIdentities - params: - - {name: persistedContactGroupObjectID, type: NSManagedObjectID} - - {name: insertedContacts, type: Set} - - {name: removedContacts, type: Set} -- name: aReadOncePersistedMessageSentWasSent - params: - - {name: persistedMessageSentPermanentID, type: ObvManagedObjectPermanentID} - - {name: persistedDiscussionPermanentID, type: ObvManagedObjectPermanentID} -- name: newPersistedObvContactDevice - params: - - {name: contactDeviceObjectID, type: NSManagedObjectID} - - {name: contactCryptoId, type: ObvCryptoId} -- name: deletedPersistedObvContactDevice - params: - - {name: contactCryptoId, type: ObvCryptoId} -- name: persistedDiscussionHasNewTitle - params: - - {name: objectID, type: TypeSafeManagedObjectID} - - {name: title, type: String} -- name: persistedDiscussionWasDeleted - params: - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} - - {name: objectIDOfDeletedDiscussion, type: TypeSafeManagedObjectID} -- name: persistedDiscussionWasInserted - params: - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} - - {name: objectID, type: TypeSafeManagedObjectID} -- name: newPersistedObvOwnedIdentity - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: isActive, type: Bool} -- name: ownedIdentityWasReactivated - params: - - {name: ownedIdentityObjectID, type: NSManagedObjectID} -- name: ownedIdentityWasDeactivated - params: - - {name: ownedIdentityObjectID, type: NSManagedObjectID} -- name: anOldDiscussionSharedConfigurationWasReceived - params: - - {name: persistedDiscussionObjectID, type: NSManagedObjectID} -- name: persistedMessageSystemWasDeleted - params: - - {name: objectID, type: NSManagedObjectID} - - {name: discussionObjectID, type: TypeSafeManagedObjectID} -- name: persistedMessagesWereDeleted - params: - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} - - {name: messagePermanentIDs, type: Set>} -- name: persistedMessagesWereWiped - params: - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} - - {name: messagePermanentIDs, type: Set>} -- name: persistedDiscussionStatusChanged - params: - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} - - {name: newStatus, type: PersistedDiscussion.Status} -- name: persistedGroupV2UpdateIsFinished - params: - - {name: objectID, type: TypeSafeManagedObjectID} -- name: persistedGroupV2WasDeleted - params: - - {name: objectID, type: TypeSafeManagedObjectID} -- name: aPersistedGroupV2MemberChangedFromPendingToNonPending - params: - - {name: contactObjectID, type: TypeSafeManagedObjectID} -- name: ownedCircledInitialsConfigurationDidChange - params: - - {name: ownedIdentityPermanentID, type: ObvManagedObjectPermanentID} - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: newOwnedCircledInitialsConfiguration, type: CircledInitialsConfiguration} -- name: persistedObvOwnedIdentityWasDeleted -- name: ownedIdentityHiddenStatusChanged - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: isHidden, type: Bool} -- name: badgeCountForDiscussionsOrInvitationsTabChangedForOwnedIdentity - params: - - {name: ownedCryptoId, type: ObvCryptoId} -- name: displayedContactGroupWasJustCreated - params: - - {name: permanentID, type: ObvManagedObjectPermanentID} -- name: groupV2TrustedDetailsShouldBeReplacedByPublishedDetails - params: - - {name: ownCryptoId, type: ObvCryptoId} - - {name: groupIdentifier, type: Data} -- name: receivedFyleJoinHasBeenMarkAsOpened - params: - - {name: receivedFyleJoinID, type: TypeSafeManagedObjectID} -- name: aDeliveredReturnReceiptShouldBeSentForAReceivedFyleMessageJoinWithStatus - params: - - {name: returnReceipt, type: ReturnReceiptJSON} - - {name: contactCryptoId, type: ObvCryptoId} - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: messageIdentifierFromEngine, type: Data} - - {name: attachmentNumber, type: Int} -- name: persistedMessageReceivedWasDeleted - params: - - {name: objectID, type: NSManagedObjectID} - - {name: messageIdentifierFromEngine, type: Data} - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: sortIndex, type: Double} - - {name: discussionObjectID, type: TypeSafeManagedObjectID} -- name: persistedMessageReceivedWasRead - params: - - {name: persistedMessageReceivedObjectID, type: TypeSafeManagedObjectID} -- name: aDeliveredReturnReceiptShouldBeSentForPersistedMessageReceived - params: - - {name: returnReceipt, type: ReturnReceiptJSON} - - {name: contactCryptoId, type: ObvCryptoId} - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: messageIdentifierFromEngine, type: Data} -- name: theBodyOfPersistedMessageReceivedDidChange - params: - - {name: persistedMessageReceivedObjectID, type: NSManagedObjectID} -- name: persistedDiscussionWasArchived - params: - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} -- name: persistedContactWasUpdated - params: - - {name: contactObjectID, type: TypeSafeManagedObjectID} -- name: fyleMessageJoinWithStatusWasInserted - params: - - {name: fyleMessageJoinObjectID, type: TypeSafeManagedObjectID} -- name: fyleMessageJoinWithStatusWasUpdated - params: - - {name: fyleMessageJoinObjectID, type: TypeSafeManagedObjectID} -- name: discussionLocalConfigurationHasBeenUpdated - params: - - {name: newValue, type: PersistedDiscussionLocalConfigurationValue} - - {name: localConfigurationObjectID, type: TypeSafeManagedObjectID} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelper.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelper.swift new file mode 100644 index 00000000..bbe579e1 --- /dev/null +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelper.swift @@ -0,0 +1,36 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import OlvidUtils + + +public struct ObvUICoreDataHelper { + + public static func getOperationsForDeletingOldOrOrphanedDatabaseEntries() -> [ContextualOperationWithSpecificReasonForCancel] { + return [ + DeleteOldRemoteRequestsSavedForLaterOperation(), + DeleteOrphanedExpirationsOperation(), + DeleteAllOrphanedPersistedMessagesOperation(), + DeleteAllOrphanedFyleMessageJoinWithStatusOperation(), + ] + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllOrphanedFyleMessageJoinWithStatusOperation.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteAllOrphanedFyleMessageJoinWithStatusOperation.swift similarity index 53% rename from iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllOrphanedFyleMessageJoinWithStatusOperation.swift rename to Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteAllOrphanedFyleMessageJoinWithStatusOperation.swift index b3e43f2a..e39745e8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllOrphanedFyleMessageJoinWithStatusOperation.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteAllOrphanedFyleMessageJoinWithStatusOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,28 +20,21 @@ import Foundation import CoreData import OlvidUtils -import ObvUICoreData +import CoreData /// This operation deletes all `FyleMessageJoinWithStatus` that have no associated `PersistedMessage` (or no draft) -final class DeleteAllOrphanedFyleMessageJoinWithStatusOperation: ContextualOperationWithSpecificReasonForCancel { +public final class DeleteAllOrphanedFyleMessageJoinWithStatusOperation: ContextualOperationWithSpecificReasonForCancel { - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + public override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - - do { - try ReceivedFyleMessageJoinWithStatus.deleteAllOrphaned(within: obvContext.context) - try SentFyleMessageJoinWithStatus.deleteAllOrphaned(within: obvContext.context) - try PersistedDraftFyleJoin.deleteAllOrphaned(within: obvContext.context) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - + do { + try ReceivedFyleMessageJoinWithStatus.deleteAllOrphaned(within: obvContext.context) + try SentFyleMessageJoinWithStatus.deleteAllOrphaned(within: obvContext.context) + try PersistedDraftFyleJoin.deleteAllOrphaned(within: obvContext.context) + } catch { + assertionFailure(error.localizedDescription) + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteAllOrphanedPersistedMessagesOperation.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteAllOrphanedPersistedMessagesOperation.swift new file mode 100644 index 00000000..9110312f --- /dev/null +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteAllOrphanedPersistedMessagesOperation.swift @@ -0,0 +1,40 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import OlvidUtils + + +/// This operation deletes all `PersistedMessage` that have no associated `PersistedDiscussion`. It is typically used when deleting a discussion (where we "only" emty the discussion's list of messages, which deletes the +public final class DeleteAllOrphanedPersistedMessagesOperation: ContextualOperationWithSpecificReasonForCancel { + + public override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + try PersistedMessage.deleteAllOrphaned(within: obvContext.context) + } catch { + assertionFailure(error.localizedDescription) + return cancel(withReason: .coreDataError(error: error)) + } + + } + +} + diff --git a/iOSClient/ObvMessenger/ObvMessenger/Localization/MessageCollectionViewCell+Strings.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteOldRemoteRequestsSavedForLaterOperation.swift similarity index 51% rename from iOSClient/ObvMessenger/ObvMessenger/Localization/MessageCollectionViewCell+Strings.swift rename to Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteOldRemoteRequestsSavedForLaterOperation.swift index 689e8052..a62bd9af 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Localization/MessageCollectionViewCell+Strings.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteOldRemoteRequestsSavedForLaterOperation.swift @@ -18,19 +18,24 @@ */ import Foundation +import OlvidUtils +import CoreData -extension MessageCollectionViewCell { - struct Strings { +final class DeleteOldRemoteRequestsSavedForLaterOperation: ContextualOperationWithSpecificReasonForCancel { + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + let deletionTimeInterval: TimeInterval = TimeInterval(days: 30) + let deletionDate: Date = Date(timeIntervalSinceNow: -deletionTimeInterval) - static let seeAttachments = { (count: Int) in - return String.localizedStringWithFormat(NSLocalizedString("see count attachments", comment: "Number of attachments"), count) + do { + try RemoteRequestSavedForLater.deleteRemoteRequestsSavedForLaterEarlierThan(deletionDate, within: obvContext.context) + } catch { + assertionFailure(error.localizedDescription) + return cancel(withReason: .coreDataError(error: error)) } - - static let replyToMessageWasDeleted = NSLocalizedString("Deleted message", comment: "Body displayed when a reply-to message was deleted.") - static let replyToMessageUnavailable = NSLocalizedString("UNAVAILABLE_MESSAGE", comment: "Body displayed when a reply-to message cannot be found.") - } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Message Retention/DeleteOrphanedExpirationsOperation.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteOrphanedExpirationsOperation.swift similarity index 74% rename from iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Message Retention/DeleteOrphanedExpirationsOperation.swift rename to Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteOrphanedExpirationsOperation.swift index b841c20e..b6ce8d06 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Message Retention/DeleteOrphanedExpirationsOperation.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/ObvUICoreDataHelperOperations/DeleteOrphanedExpirationsOperation.swift @@ -21,7 +21,6 @@ import Foundation import CoreData import os.log import OlvidUtils -import ObvUICoreData /// This operations deletes all orphaned expirations, i.e., expirations that have no associated message. @@ -35,21 +34,15 @@ import ObvUICoreData /// /// that have no associated received/sent message. Note that the we could expect not to find any such instance, thanks to the cascade delete feature of Core Data. /// In practice, cleaning these instances proved to be useful. -final class DeleteOrphanedExpirationsOperation: OperationWithSpecificReasonForCancel { +final class DeleteOrphanedExpirationsOperation: ContextualOperationWithSpecificReasonForCancel { - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: DeleteOrphanedExpirationsOperation.self)) - - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - ObvStack.shared.performBackgroundTaskAndWait { context in - - do { - try PersistedMessageExpiration.deleteAllOrphanedExpirations(within: context) - try context.save(logOnFailure: log) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - + do { + try PersistedMessageExpiration.deleteAllOrphanedExpirations(within: obvContext.context) + } catch { + assertionFailure(error.localizedDescription) + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Protocols/FyleElement.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Protocols/FyleElement.swift index 192f50ce..998098a6 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Protocols/FyleElement.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Protocols/FyleElement.swift @@ -18,10 +18,12 @@ */ import Foundation +import UniformTypeIdentifiers public protocol FyleElement { var fileName: String { get } - var uti: String { get } + // var uti: String { get } + var contentType: UTType { get } var fullFileIsAvailable: Bool { get } var fyleURL: URL { get } var sha256: Data { get } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Protocols/Mentions/MentionableIdentity.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Protocols/Mentions/MentionableIdentity.swift index 6a4baec0..ebe7c17f 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Protocols/Mentions/MentionableIdentity.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Protocols/Mentions/MentionableIdentity.swift @@ -19,7 +19,7 @@ import Foundation import CoreData.NSManagedObject -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials import ObvTypes public enum MentionableIdentityTypes { diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/ObvMessengerSettingsNotifications.yml b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/ObvMessengerSettingsNotifications.yml deleted file mode 100644 index d3a4ba98..00000000 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Settings/ObvMessengerSettingsNotifications.yml +++ /dev/null @@ -1,11 +0,0 @@ -import: - - Foundation -options: - - {key: visibility, value: public} -notifications: -- name: contactsSortOrderDidChange -- name: preferredComposeMessageViewActionsDidChange -- name: isCallKitEnabledSettingDidChange -- name: isIncludesCallsInRecentsEnabledSettingDidChange -- name: performInteractionDonationSettingDidChange -- name: identityColorStyleDidChange diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/AppBackupItem.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/AppBackupItem.swift index 6b46d054..368ce9a6 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/AppBackupItem.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/AppBackupItem.swift @@ -21,6 +21,8 @@ import Foundation import ObvTypes import SwiftUI import ObvCrypto +import ObvSettings +import ObvDesignSystem public struct AppBackupItem: Codable, Hashable { @@ -401,7 +403,6 @@ public struct GlobalSettingsBackupItem: Codable, Hashable { let identityColorStyle: IdentityColorStyle? let contactsSortOrder: ContactsSortOrder? - let useOldDiscussionInterface: Bool? // Discussions @@ -423,10 +424,6 @@ public struct GlobalSettingsBackupItem: Codable, Hashable { let hiddenProfileClosePolicy: ObvMessengerSettings.Privacy.HiddenProfileClosePolicy? let timeIntervalForBackgroundHiddenProfileClosePolicy: ObvMessengerSettings.Privacy.TimeIntervalForBackgroundHiddenProfileClosePolicy? - // VoIP - - let isCallKitEnabled: Bool? - // Advanced let allowCustomKeyboards: Bool? @@ -447,7 +444,6 @@ public struct GlobalSettingsBackupItem: Codable, Hashable { case maxAttachmentSizeForAutomaticDownload = "auto_download_size" case identityColorStyle = "identity_color_style_ios" case contactsSortOrder = "contact_sort_last_name" - case useOldDiscussionInterface = "use_old_discussion_interface_ios" case sendReadReceipt = "send_read_receipt" case doFetchContentRichURLsMetadata = "do_fetch_content_rich_urls_metadata_ios" case readOnce = "default_read_once" @@ -461,7 +457,6 @@ public struct GlobalSettingsBackupItem: Codable, Hashable { case hideNotificationContentAndroid = "hide_notification_contents" case allowCustomKeyboards = "allow_custom_keyboards" case showBetaSettings = "beta" - case isCallKitEnabled = "is_call_kit_enabled" case autoAcceptGroupInviteFrom = "auto_join_groups" case preferredEmojisList = "preferred_reactions" case performInteractionDonation = "perform_interaction_donation" @@ -485,7 +480,6 @@ public struct GlobalSettingsBackupItem: Codable, Hashable { self.maxAttachmentSizeForAutomaticDownload = ObvMessengerSettings.Downloads.maxAttachmentSizeForAutomaticDownload self.identityColorStyle = ObvMessengerSettings.Interface.identityColorStyle self.contactsSortOrder = ObvMessengerSettings.Interface.contactsSortOrder - self.useOldDiscussionInterface = ObvMessengerSettings.Interface.useOldDiscussionInterface self.sendReadReceipt = ObvMessengerSettings.Discussions.doSendReadReceipt self.doFetchContentRichURLsMetadata = ObvMessengerSettings.Discussions.doFetchContentRichURLsMetadata self.readOnce = ObvMessengerSettings.Discussions.readOnce @@ -499,7 +493,6 @@ public struct GlobalSettingsBackupItem: Codable, Hashable { self.hideNotificationContent = ObvMessengerSettings.Privacy.hideNotificationContent self.allowCustomKeyboards = ObvMessengerSettings.Advanced.allowCustomKeyboards self.showBetaSettings = ObvMessengerSettings.BetaConfiguration.showBetaSettings - self.isCallKitEnabled = ObvMessengerSettings.VoIP.isCallKitEnabled self.autoAcceptGroupInviteFrom = ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom self.preferredEmojisList = ObvMessengerSettings.Emoji.preferredEmojisList self.hiddenProfileClosePolicy = ObvMessengerSettings.Privacy.hiddenProfileClosePolicy @@ -514,7 +507,6 @@ public struct GlobalSettingsBackupItem: Codable, Hashable { try container.encodeIfPresent(maxAttachmentSizeForAutomaticDownload, forKey: .maxAttachmentSizeForAutomaticDownload) try container.encodeIfPresent(identityColorStyle?.rawValue, forKey: .identityColorStyle) try container.encodeIfPresent(contactsSortOrder == .byLastName, forKey: .contactsSortOrder) - try container.encodeIfPresent(useOldDiscussionInterface, forKey: .useOldDiscussionInterface) try container.encodeIfPresent(sendReadReceipt, forKey: .sendReadReceipt) try container.encodeIfPresent(doFetchContentRichURLsMetadata?.rawValue, forKey: .doFetchContentRichURLsMetadata) try container.encodeIfPresent(readOnce, forKey: .readOnce) @@ -528,7 +520,6 @@ public struct GlobalSettingsBackupItem: Codable, Hashable { try container.encodeIfPresent(hideNotificationContentAndroid, forKey: .hideNotificationContentAndroid) try container.encodeIfPresent(allowCustomKeyboards, forKey: .allowCustomKeyboards) try container.encodeIfPresent(showBetaSettings, forKey: .showBetaSettings) - try container.encodeIfPresent(isCallKitEnabled, forKey: .isCallKitEnabled) try container.encodeIfPresent(autoAcceptGroupInviteFrom?.rawValue, forKey: .autoAcceptGroupInviteFrom) try container.encodeIfPresent(preferredEmojisList, forKey: .preferredEmojisList) try container.encodeIfPresent(performInteractionDonation, forKey: .performInteractionDonation) @@ -553,7 +544,6 @@ public struct GlobalSettingsBackupItem: Codable, Hashable { } else { self.contactsSortOrder = nil } - self.useOldDiscussionInterface = try values.decodeIfPresent(Bool.self, forKey: .useOldDiscussionInterface) self.sendReadReceipt = try values.decodeIfPresent(Bool.self, forKey: .sendReadReceipt) if let raw = try values.decodeIfPresent(Int.self, forKey: .doFetchContentRichURLsMetadata) { self.doFetchContentRichURLsMetadata = ObvMessengerSettings.Discussions.FetchContentRichURLsMetadataChoice(rawValue: raw) @@ -589,7 +579,6 @@ public struct GlobalSettingsBackupItem: Codable, Hashable { } self.allowCustomKeyboards = try values.decodeIfPresent(Bool.self, forKey: .allowCustomKeyboards) self.showBetaSettings = try values.decodeIfPresent(Bool.self, forKey: .showBetaSettings) - self.isCallKitEnabled = try values.decodeIfPresent(Bool.self, forKey: .isCallKitEnabled) if let rawValue = try values.decodeIfPresent(String.self, forKey: .autoAcceptGroupInviteFrom) { self.autoAcceptGroupInviteFrom = ObvMessengerSettings.ContactsAndGroups.AutoAcceptGroupInviteFrom(rawValue: rawValue) } else { diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/AppSyncSnapshotNode.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/AppSyncSnapshotNode.swift new file mode 100644 index 00000000..03272a9d --- /dev/null +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/AppSyncSnapshotNode.swift @@ -0,0 +1,98 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import ObvTypes +import ObvSettings + + +/// This is the top level `ObvSyncSnapshotNode` at the app level (its identity manager counterpart at the engine level is called `ObvIdentityManagerSyncSnapshotNode`). +public struct AppSyncSnapshotNode: ObvSyncSnapshotNode, Codable { + + private let domain: Set + private let ownedCryptoId: ObvCryptoId + private let ownedIdentityNode: PersistedObvOwnedIdentitySyncSnapshotNode? + private let globalSettingsNode: GlobalSettingsSyncSnapshotNode? + + public let id = Self.generateIdentifier() + + enum CodingKeys: String, CodingKey, CaseIterable, Codable { + case ownedCryptoId = "owned_identity" + case ownedIdentityNode = "owned_identity_node" + case globalSettingsNode = "settings" + case domain = "domain" + } + + private static let defaultDomain: Set = Set(CodingKeys.allCases.filter({ $0 != .domain })) + + + public init(ownedCryptoId: ObvCryptoId, within context: NSManagedObjectContext) throws { + self.ownedCryptoId = ownedCryptoId + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: context) else { + throw ObvError.couldNotFindOwnedIdentity + } + self.ownedIdentityNode = try ownedIdentity.syncSnapshotNode + self.globalSettingsNode = ObvMessengerSettings.syncSnapshotNode + self.domain = Self.defaultDomain + } + + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(domain, forKey: .domain) + try container.encode(ownedCryptoId.getIdentity(), forKey: .ownedCryptoId) + try container.encodeIfPresent(ownedIdentityNode, forKey: .ownedIdentityNode) + try container.encodeIfPresent(globalSettingsNode, forKey: .globalSettingsNode) + } + + + public init(from decoder: Decoder) throws { + do { + let values = try decoder.container(keyedBy: CodingKeys.self) + let identity = try values.decode(Data.self, forKey: .ownedCryptoId) + let rawKeys = try values.decode(Set.self, forKey: .domain) + self.domain = Set(rawKeys.compactMap({ CodingKeys(rawValue: $0) })) + self.ownedCryptoId = try ObvCryptoId(identity: identity) + self.ownedIdentityNode = try values.decodeIfPresent(PersistedObvOwnedIdentitySyncSnapshotNode.self, forKey: .ownedIdentityNode) + self.globalSettingsNode = try values.decodeIfPresent(GlobalSettingsSyncSnapshotNode.self, forKey: .globalSettingsNode) + } catch { + assertionFailure() + throw error + } + } + + + public func useToUpdateAppDatabase(within context: NSManagedObjectContext) throws { + if domain.contains(.ownedIdentityNode) { + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: context) else { + assertionFailure() + throw ObvError.couldNotFindOwnedIdentity + } + ownedIdentityNode?.useToUpdate(ownedIdentity) + } + globalSettingsNode?.useToUpdateGlobalSettings() + } + + + enum ObvError: Error { + case couldNotFindOwnedIdentity + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/DiscussionIdentifier.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/DiscussionIdentifier.swift new file mode 100644 index 00000000..5406ad89 --- /dev/null +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/DiscussionIdentifier.swift @@ -0,0 +1,102 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes +import ObvCrypto +import CoreData + + +public enum DiscussionIdentifier: CustomDebugStringConvertible { + case oneToOne(id: OneToOneDiscussionIdentifier) + case groupV1(id: GroupV1DiscussionIdentifier) + case groupV2(id: GroupV2DiscussionIdentifier) + + public var debugDescription: String { + let prefix = "DiscussionIdentifier" + let suffix: String + switch self { + case .oneToOne(let id): + suffix = ["oneToOne", id.debugDescription].joined(separator: ".") + case .groupV1(let id): + suffix = ["groupV1", id.debugDescription].joined(separator: ".") + case .groupV2(let id): + suffix = ["groupV2", id.debugDescription].joined(separator: ".") + } + return [prefix, suffix].joined(separator: ".") + } + +} + + +public enum OneToOneDiscussionIdentifier: CustomDebugStringConvertible { + case objectID(objectID: NSManagedObjectID) + case contactCryptoId(contactCryptoId: ObvCryptoId) + + public var debugDescription: String { + let prefix = "OneToOneDiscussionIdentifier" + let suffix: String + switch self { + case .objectID: + suffix = "objectID" + case .contactCryptoId: + suffix = "contactCryptoId" + } + return [prefix, suffix].joined(separator: ".") + } + +} + + +public enum GroupV1DiscussionIdentifier: CustomDebugStringConvertible { + case objectID(objectID: NSManagedObjectID) + case groupV1Identifier(groupV1Identifier: GroupV1Identifier) + + public var debugDescription: String { + let prefix = "GroupV1DiscussionIdentifier" + let suffix: String + switch self { + case .objectID: + suffix = "objectID" + case .groupV1Identifier: + suffix = "groupV1Identifier" + } + return [prefix, suffix].joined(separator: ".") + } + +} + + +public enum GroupV2DiscussionIdentifier: CustomDebugStringConvertible { + case objectID(objectID: NSManagedObjectID) + case groupV2Identifier(groupV2Identifier: GroupV2Identifier) + + public var debugDescription: String { + let prefix = "GroupV2DiscussionIdentifier" + let suffix: String + switch self { + case .objectID: + suffix = "objectID" + case .groupV2Identifier: + suffix = "groupV2Identifier" + } + return [prefix, suffix].joined(separator: ".") + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/FyleElement/FyleElementForFyleMessageJoinWithStatus.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/FyleElement/FyleElementForFyleMessageJoinWithStatus.swift index 5bb9f508..cadc8766 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/FyleElement/FyleElementForFyleMessageJoinWithStatus.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/FyleElement/FyleElementForFyleMessageJoinWithStatus.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -18,13 +18,16 @@ */ import Foundation +import UniformTypeIdentifiers +import ObvSettings public struct FyleElementForFyleMessageJoinWithStatus: FyleElement { public let fyleURL: URL public let fileName: String - public let uti: String + //public let uti: String + public let contentType: UTType public let sha256: Data public let fullFileIsAvailable: Bool @@ -32,10 +35,10 @@ public struct FyleElementForFyleMessageJoinWithStatus: FyleElement { let messagePermanentID: ObvManagedObjectPermanentID let fyleMessageJoinPermanentID: ObvManagedObjectPermanentID - public init(fyleURL: URL, fileName: String, uti: String, sha256: Data, fullFileIsAvailable: Bool, discussionPermanentID: ObvManagedObjectPermanentID, messagePermanentID: ObvManagedObjectPermanentID, fyleMessageJoinPermanentID: ObvManagedObjectPermanentID) { + public init(fyleURL: URL, fileName: String, contentType: UTType, sha256: Data, fullFileIsAvailable: Bool, discussionPermanentID: ObvManagedObjectPermanentID, messagePermanentID: ObvManagedObjectPermanentID, fyleMessageJoinPermanentID: ObvManagedObjectPermanentID) { self.fyleURL = fyleURL self.fileName = fileName - self.uti = uti + self.contentType = contentType self.sha256 = sha256 self.fullFileIsAvailable = fullFileIsAvailable self.discussionPermanentID = discussionPermanentID @@ -44,29 +47,34 @@ public struct FyleElementForFyleMessageJoinWithStatus: FyleElement { } init?(_ fyleMessageJoinWithStatus: FyleMessageJoinWithStatus) throws { + guard let fyle = fyleMessageJoinWithStatus.fyle else { return nil } guard let message = fyleMessageJoinWithStatus.message else { return nil } let fyleURL = fyle.url + guard let discussionPermanentID = message.discussion?.discussionPermanentID else { + throw Self.makeError(message: "Could not find discussion") + } + self.init(fyleURL: fyleURL, fileName: fyleMessageJoinWithStatus.fileName, - uti: fyleMessageJoinWithStatus.uti, + contentType: fyleMessageJoinWithStatus.contentType, sha256: fyle.sha256, fullFileIsAvailable: fyleMessageJoinWithStatus.fullFileIsAvailable, - discussionPermanentID: message.discussion.discussionPermanentID, + discussionPermanentID: discussionPermanentID, messagePermanentID: message.messagePermanentID, fyleMessageJoinPermanentID: fyleMessageJoinWithStatus.fyleMessageJoinPermanentID) } public func replacingFullFileIsAvailable(with newFullFileIsAvailable: Bool) -> FyleElement { - FyleElementForFyleMessageJoinWithStatus(fyleURL: fyleURL, - fileName: fileName, - uti: uti, - sha256: sha256, - fullFileIsAvailable: newFullFileIsAvailable, - discussionPermanentID: discussionPermanentID, - messagePermanentID: messagePermanentID, - fyleMessageJoinPermanentID: fyleMessageJoinPermanentID) + Self.init(fyleURL: fyleURL, + fileName: fileName, + contentType: contentType, + sha256: sha256, + fullFileIsAvailable: newFullFileIsAvailable, + discussionPermanentID: discussionPermanentID, + messagePermanentID: messagePermanentID, + fyleMessageJoinPermanentID: fyleMessageJoinPermanentID) } public static func makeError(message: String) -> Error { NSError(domain: "FyleElementForFyleMessageJoinWithStatus", code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/FyleElement/FyleElementForPersistedDraftFyleJoin.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/FyleElement/FyleElementForPersistedDraftFyleJoin.swift index 599b1428..c372638a 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/FyleElement/FyleElementForPersistedDraftFyleJoin.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/FyleElement/FyleElementForPersistedDraftFyleJoin.swift @@ -18,12 +18,16 @@ */ import Foundation +import UniformTypeIdentifiers +import ObvSettings + public struct FyleElementForPersistedDraftFyleJoin: FyleElement { public let fyleURL: URL public let fileName: String - public let uti: String + public let contentType: UTType + //public let uti: String public let sha256: Data public let fullFileIsAvailable: Bool @@ -36,7 +40,7 @@ public struct FyleElementForPersistedDraftFyleJoin: FyleElement { guard let draft = persistedDraftFyleJoin.draft else { return nil } self.fyleURL = fyle.url self.fileName = persistedDraftFyleJoin.fileName - self.uti = persistedDraftFyleJoin.uti + self.contentType = persistedDraftFyleJoin.contentType self.sha256 = fyle.sha256 self.discussionPermanentID = draft.discussion.discussionPermanentID self.draftPermanentID = draft.objectPermanentID @@ -45,10 +49,10 @@ public struct FyleElementForPersistedDraftFyleJoin: FyleElement { } - private init(fyleURL: URL, fileName: String, uti: String, sha256: Data, fullFileIsAvailable: Bool, discussionPermanentID: ObvManagedObjectPermanentID, draftPermanentID: ObvManagedObjectPermanentID, draftFyleJoinPermanentID: ObvManagedObjectPermanentID) { + private init(fyleURL: URL, fileName: String, contentType: UTType, sha256: Data, fullFileIsAvailable: Bool, discussionPermanentID: ObvManagedObjectPermanentID, draftPermanentID: ObvManagedObjectPermanentID, draftFyleJoinPermanentID: ObvManagedObjectPermanentID) { self.fyleURL = fyleURL self.fileName = fileName - self.uti = uti + self.contentType = contentType self.sha256 = sha256 self.fullFileIsAvailable = fullFileIsAvailable self.discussionPermanentID = discussionPermanentID @@ -58,14 +62,14 @@ public struct FyleElementForPersistedDraftFyleJoin: FyleElement { public func replacingFullFileIsAvailable(with newFullFileIsAvailable: Bool) -> FyleElement { - FyleElementForPersistedDraftFyleJoin(fyleURL: fyleURL, - fileName: fileName, - uti: uti, - sha256: sha256, - fullFileIsAvailable: newFullFileIsAvailable, - discussionPermanentID: discussionPermanentID, - draftPermanentID: draftPermanentID, - draftFyleJoinPermanentID: draftFyleJoinPermanentID) + Self.init(fyleURL: fyleURL, + fileName: fileName, + contentType: contentType, + sha256: sha256, + fullFileIsAvailable: newFullFileIsAvailable, + discussionPermanentID: discussionPermanentID, + draftPermanentID: draftPermanentID, + draftFyleJoinPermanentID: draftFyleJoinPermanentID) } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/FyleMetadata.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/FyleMetadata.swift index 2c2f8369..dee59676 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/FyleMetadata.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/FyleMetadata.swift @@ -20,7 +20,8 @@ import Foundation import os.log import ObvEngine -import MobileCoreServices +import UniformTypeIdentifiers +import ObvSettings public struct FyleMetadata: Codable { @@ -29,7 +30,7 @@ public struct FyleMetadata: Codable { let fileName: String public let sha256: Data - let uti: String + let contentType: UTType enum CodingKeys: String, CodingKey { case fileName = "file_name" @@ -37,10 +38,10 @@ public struct FyleMetadata: Codable { case type = "type" // MIME type } - init(fileName: String, sha256: Data, uti: String) { + init(fileName: String, sha256: Data, contentType: UTType) { self.fileName = fileName self.sha256 = sha256 - self.uti = uti + self.contentType = contentType } @@ -48,24 +49,24 @@ public struct FyleMetadata: Codable { let values = try decoder.container(keyedBy: CodingKeys.self) let mimeType = try values.decode(String.self, forKey: .type) self.fileName = try values.decode(String.self, forKey: .fileName) - // The MIME type has precedence over the extension for determining the UTI - if let utiFromMIMEType = ObvUTIUtils.utiOfMIMEType(mimeType) { - self.uti = utiFromMIMEType - } else if let utiFromExtension = ObvUTIUtils.utiOfFile(withExtension: (self.fileName as NSString).pathExtension) { - self.uti = utiFromExtension + // The MIME type has precedence over the extension for determining the content type + if let contentTypeFromMIMEType = UTType(mimeType: mimeType) { + self.contentType = contentTypeFromMIMEType + } else if let contentTypeFromExtension = UTType(filenameExtension: (self.fileName as NSString).pathExtension) { + self.contentType = contentTypeFromExtension } else { - self.uti = "public.item" + self.contentType = .item } self.sha256 = try values.decode(Data.self, forKey: .sha256) } public func encode(to encoder: Encoder) throws { let mimeType: String - if let _mimeType = ObvUTIUtils.preferredTagWithClass(inUTI: self.uti, inTagClass: .MIMEType) { + if let _mimeType = contentType.preferredMIMEType { mimeType = _mimeType } else { - os_log("Could not find appropriate MIME type for uti %{public}@. We fallback on Data", log: log, type: .error, self.uti) - mimeType = ObvUTIUtils.preferredTagWithClass(inUTI: String(kUTTypeData), inTagClass: .MIMEType) ?? "application/octet-stream" + os_log("Could not find appropriate MIME type for content type %{public}@. We fallback on Data", log: log, type: .error, self.contentType.debugDescription) + mimeType = "application/octet-stream" } var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(mimeType, forKey: .type) diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/GroupIdentifier.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/GroupIdentifier.swift index 2704a41c..28a53396 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/GroupIdentifier.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/GroupIdentifier.swift @@ -28,6 +28,6 @@ public enum GroupIdentifierBasedOnObjectID { } public enum GroupIdentifier { - case groupV1(groupV1Identifier: (groupUid: UID, groupOwner: ObvCryptoId)) - case groupV2(groupV2Identifier: Data) + case groupV1(groupV1Identifier: GroupV1Identifier) + case groupV2(groupV2Identifier: GroupV2Identifier) } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/GroupV2CoreDetails.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/GroupV2CoreDetails.swift index 39da988d..f1484dec 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/GroupV2CoreDetails.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/GroupV2CoreDetails.swift @@ -23,7 +23,7 @@ import Foundation public struct GroupV2CoreDetails: Codable, Equatable { - let groupName: String? + public let groupName: String? let groupDescription: String? public init(groupName: String?, groupDescription: String?) { @@ -41,7 +41,7 @@ public struct GroupV2CoreDetails: Codable, Equatable { return try encoder.encode(self) } - static func jsonDecode(serializedGroupCoreDetails: Data) throws -> Self { + public static func jsonDecode(serializedGroupCoreDetails: Data) throws -> Self { let decoder = JSONDecoder() return try decoder.decode(Self.self, from: serializedGroupCoreDetails) } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/MessageIdentifier.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/MessageIdentifier.swift new file mode 100644 index 00000000..a9fc17a4 --- /dev/null +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/MessageIdentifier.swift @@ -0,0 +1,73 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData + + +public enum MessageIdentifier { + case sent(id: SentMessageIdentifier) + case received(id: ReceivedMessageIdentifier) + case system(id: SystemMessageIdentifier) + + public var objectID: NSManagedObjectID? { + switch self { + case .sent(let id): + switch id { + case .objectID(let objectID): + return objectID + default: + return nil + } + case .received(let id): + switch id { + case .objectID(let objectID): + return objectID + default: + return nil + } + case .system(let id): + switch id { + case .objectID(let objectID): + return objectID + } + } + } + +} + +public enum SentMessageIdentifier { + case objectID(objectID: NSManagedObjectID) + case authorIdentifier(writerIdentifier: MessageWriterIdentifier) +} + +public enum ReceivedMessageIdentifier { + case objectID(objectID: NSManagedObjectID) + case authorIdentifier(writerIdentifier: MessageWriterIdentifier) +} + +public enum SystemMessageIdentifier { + case objectID(objectID: NSManagedObjectID) +} + +public struct MessageWriterIdentifier { + public let senderSequenceNumber: Int + public let senderThreadIdentifier: UUID + public let senderIdentifier: Data // Bytes of the identity of the writer +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/ObvUICoreDataError.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/ObvUICoreDataError.swift new file mode 100644 index 00000000..972940d8 --- /dev/null +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/ObvUICoreDataError.swift @@ -0,0 +1,116 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes + + +public enum ObvUICoreDataError: Error { + + case inconsistentOneToOneDiscussionIdentifier + case cannotInsertMessageInOneToOneDiscussionFromNonOneToOneContact + case couldNotFindDiscussion + case couldNotFindDiscussionWithId(discussionId: DiscussionIdentifier) + case couldNotFindOwnedIdentity + case couldNotFindGroupV1InDatabase(groupIdentifier: GroupV1Identifier) + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case couldNotDetemineGroupV1 + case couldNotDetemineGroupV2 + case couldNotFindPersistedMessage + case couldNotFindPersistedMessageReceived + case couldNotFindPersistedMessageSent + case noContext + case inappropriateContext + case unexpectedFromContactIdentity + case cannotUpdateConfigurationOfOneToOneDiscussionFromNonOneToOneContact + case atLeastOneOfOneToOneIdentifierAndGroupIdentifierIsExpectedToBeNil + case contactNeitherGroupOwnerNorPartOfGroupMembers + case contactIsNotPartOfTheGroup + case contactIsNotOneToOne + case unexpectedOwnedCryptoId + case ownedDeviceNotFound + case couldNotDetermineTheOneToOneDiscussion + case couldNotFindOneToOneContact + case couldNotFindContact + case couldNotFindContactWithId(contactIdentifier: ObvContactIdentifier) + case couldNotFindDraft + case couldNotDetermineContactCryptoId + + public var errorDescription: String? { + switch self { + case .couldNotDetemineGroupV1: + return "Could not determine group V1" + case .couldNotDetemineGroupV2: + return "Could not determine group V2" + case .inconsistentOneToOneDiscussionIdentifier: + return "Inconsistent OneToOne discussion identifier" + case .cannotInsertMessageInOneToOneDiscussionFromNonOneToOneContact: + return "Cannot insert a message in a OneToOne discussion from a contact that is not OneToOne" + case .couldNotFindDiscussion: + return "Could not find discussion" + case .couldNotFindDiscussionWithId: + return "Could not find discussion given for the identifier" + case .couldNotFindOwnedIdentity: + return "Could not find the owned identity corresponding to this contact" + case .couldNotFindGroupV1InDatabase: + return "Could not find group V1 in database" + case .couldNotFindGroupV2InDatabase: + return "Could not find group V2 in database" + case .noContext: + return "No context available" + case .couldNotFindPersistedMessageReceived: + return "Could not find PersistedMessageReceived" + case .unexpectedFromContactIdentity: + return "UnexpectedFromContactIdentity" + case .cannotUpdateConfigurationOfOneToOneDiscussionFromNonOneToOneContact: + return "Cannot update OneToOne discussion shared settings sent by a contact that is not OneToOne" + case .atLeastOneOfOneToOneIdentifierAndGroupIdentifierIsExpectedToBeNil: + return "We expect at least one of OneOfOneToOneIdentifier and GroupIdentifier to be nil" + case .contactNeitherGroupOwnerNorPartOfGroupMembers: + return "This contact is not the group owner nor part of the group members" + case .contactIsNotPartOfTheGroup: + return "The contact is not part of the group" + case .contactIsNotOneToOne: + return "Contact is not OneToOne" + case .inappropriateContext: + return "Inappropriate context" + case .unexpectedOwnedCryptoId: + return "Unexpected owned cryptoId" + case .ownedDeviceNotFound: + return "Owned device not found" + case .couldNotDetermineTheOneToOneDiscussion: + return "Could not determine the OneToOne discussion" + case .couldNotFindPersistedMessageSent: + return "Could not find persisted message sent" + case .couldNotFindPersistedMessage: + return "Could not find persisted message" + case .couldNotFindOneToOneContact: + return "Could not find one2one contact" + case .couldNotFindContact: + return "Could not find contact" + case .couldNotFindContactWithId: + return "Could not find contact with Id" + case .couldNotFindDraft: + return "Could not find draft" + case .couldNotDetermineContactCryptoId: + return "Could not determine contact crypto id" + } + } + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/PersistedMessageJSON.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/PersistedMessageJSON.swift index 56a641c5..0e405397 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/PersistedMessageJSON.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Types/PersistedMessageJSON.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import ObvEngine import ObvTypes import ObvCrypto import OlvidUtils +import ObvSettings public struct PersistedItemJSON: Codable { @@ -37,6 +38,8 @@ public struct PersistedItemJSON: Codable { public let updateMessageJSON: UpdateMessageJSON? public let reactionJSON: ReactionJSON? public let screenCaptureDetectionJSON: ScreenCaptureDetectionJSON? + public let limitedVisibilityMessageOpenedJSON: LimitedVisibilityMessageOpenedJSON? + public let discussionRead: DiscussionReadJSON? enum CodingKeys: String, CodingKey { case message = "message" @@ -49,6 +52,8 @@ public struct PersistedItemJSON: Codable { case updateMessageJSON = "upm" case reactionJSON = "reacm" case screenCaptureDetectionJSON = "scd" + case limitedVisibilityMessageOpenedJSON = "lvo" + case discussionRead = "dr" } public init(messageJSON: MessageJSON) { @@ -62,6 +67,8 @@ public struct PersistedItemJSON: Codable { self.updateMessageJSON = nil self.reactionJSON = nil self.screenCaptureDetectionJSON = nil + self.limitedVisibilityMessageOpenedJSON = nil + self.discussionRead = nil } public init(returnReceiptJSON: ReturnReceiptJSON) { @@ -75,6 +82,8 @@ public struct PersistedItemJSON: Codable { self.updateMessageJSON = nil self.reactionJSON = nil self.screenCaptureDetectionJSON = nil + self.limitedVisibilityMessageOpenedJSON = nil + self.discussionRead = nil } public init(messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON) { @@ -88,6 +97,8 @@ public struct PersistedItemJSON: Codable { self.updateMessageJSON = nil self.reactionJSON = nil self.screenCaptureDetectionJSON = nil + self.limitedVisibilityMessageOpenedJSON = nil + self.discussionRead = nil } public init(webrtcMessage: WebRTCMessageJSON) { @@ -101,6 +112,8 @@ public struct PersistedItemJSON: Codable { self.updateMessageJSON = nil self.reactionJSON = nil self.screenCaptureDetectionJSON = nil + self.limitedVisibilityMessageOpenedJSON = nil + self.discussionRead = nil } public init(discussionSharedConfiguration: DiscussionSharedConfigurationJSON) { @@ -114,6 +127,8 @@ public struct PersistedItemJSON: Codable { self.updateMessageJSON = nil self.reactionJSON = nil self.screenCaptureDetectionJSON = nil + self.limitedVisibilityMessageOpenedJSON = nil + self.discussionRead = nil } public init(deleteMessagesJSON: DeleteMessagesJSON) { @@ -127,6 +142,8 @@ public struct PersistedItemJSON: Codable { self.updateMessageJSON = nil self.reactionJSON = nil self.screenCaptureDetectionJSON = nil + self.limitedVisibilityMessageOpenedJSON = nil + self.discussionRead = nil } public init(deleteDiscussionJSON: DeleteDiscussionJSON) { @@ -140,6 +157,8 @@ public struct PersistedItemJSON: Codable { self.updateMessageJSON = nil self.reactionJSON = nil self.screenCaptureDetectionJSON = nil + self.limitedVisibilityMessageOpenedJSON = nil + self.discussionRead = nil } public init(querySharedSettingsJSON: QuerySharedSettingsJSON) { @@ -153,6 +172,8 @@ public struct PersistedItemJSON: Codable { self.updateMessageJSON = nil self.reactionJSON = nil self.screenCaptureDetectionJSON = nil + self.limitedVisibilityMessageOpenedJSON = nil + self.discussionRead = nil } public init(updateMessageJSON: UpdateMessageJSON) { @@ -166,6 +187,8 @@ public struct PersistedItemJSON: Codable { self.updateMessageJSON = updateMessageJSON self.reactionJSON = nil self.screenCaptureDetectionJSON = nil + self.limitedVisibilityMessageOpenedJSON = nil + self.discussionRead = nil } public init(reactionJSON: ReactionJSON) { @@ -179,6 +202,8 @@ public struct PersistedItemJSON: Codable { self.updateMessageJSON = nil self.reactionJSON = reactionJSON self.screenCaptureDetectionJSON = nil + self.limitedVisibilityMessageOpenedJSON = nil + self.discussionRead = nil } public init(screenCaptureDetectionJSON: ScreenCaptureDetectionJSON) { @@ -192,6 +217,38 @@ public struct PersistedItemJSON: Codable { self.updateMessageJSON = nil self.reactionJSON = nil self.screenCaptureDetectionJSON = screenCaptureDetectionJSON + self.limitedVisibilityMessageOpenedJSON = nil + self.discussionRead = nil + } + + public init(limitedVisibilityMessageOpenedJSON: LimitedVisibilityMessageOpenedJSON) { + self.message = nil + self.returnReceipt = nil + self.webrtcMessage = nil + self.discussionSharedConfiguration = nil + self.deleteMessagesJSON = nil + self.deleteDiscussionJSON = nil + self.querySharedSettingsJSON = nil + self.updateMessageJSON = nil + self.reactionJSON = nil + self.screenCaptureDetectionJSON = nil + self.limitedVisibilityMessageOpenedJSON = limitedVisibilityMessageOpenedJSON + self.discussionRead = nil + } + + public init(discussionRead: DiscussionReadJSON) { + self.message = nil + self.returnReceipt = nil + self.webrtcMessage = nil + self.discussionSharedConfiguration = nil + self.deleteMessagesJSON = nil + self.deleteDiscussionJSON = nil + self.querySharedSettingsJSON = nil + self.updateMessageJSON = nil + self.reactionJSON = nil + self.screenCaptureDetectionJSON = nil + self.limitedVisibilityMessageOpenedJSON = nil + self.discussionRead = discussionRead } public func jsonEncode() throws -> Data { @@ -215,8 +272,9 @@ public struct DiscussionSharedConfigurationJSON: Codable { let version: Int let expiration: ExpirationJSON - let groupV1Identifier: (groupUid: UID, groupOwner: ObvCryptoId)? - let groupV2Identifier: Data? + let oneToOneIdentifier: OneToOneIdentifierJSON? + let groupV1Identifier: GroupV1Identifier? + let groupV2Identifier: GroupV2Identifier? public var groupIdentifier: GroupIdentifier? { if let groupV1Identifier = groupV1Identifier { @@ -234,25 +292,29 @@ public struct DiscussionSharedConfigurationJSON: Codable { case groupUid = "guid" // For group V1 case groupOwner = "go" // For group V1 case groupV2Identifier = "gid2" + case oneToOneIdentifier = "o2oi" // For one-to-one discussions } - init(version: Int, expiration: ExpirationJSON) { + init(version: Int, expiration: ExpirationJSON, oneToOneIdentifier: OneToOneIdentifierJSON) { self.version = version self.expiration = expiration + self.oneToOneIdentifier = oneToOneIdentifier self.groupV1Identifier = nil self.groupV2Identifier = nil } - init(version: Int, expiration: ExpirationJSON, groupV1Identifier: (groupUid: UID, groupOwner: ObvCryptoId)) { + init(version: Int, expiration: ExpirationJSON, groupV1Identifier: GroupV1Identifier) { self.version = version self.expiration = expiration + self.oneToOneIdentifier = nil self.groupV1Identifier = groupV1Identifier self.groupV2Identifier = nil } - init(version: Int, expiration: ExpirationJSON, groupV2Identifier: Data) { + init(version: Int, expiration: ExpirationJSON, groupV2Identifier: GroupV2Identifier) { self.version = version self.expiration = expiration + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier } @@ -269,6 +331,7 @@ public struct DiscussionSharedConfigurationJSON: Codable { public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(oneToOneIdentifier, forKey: .oneToOneIdentifier) if let groupV1Identifier = groupV1Identifier { try container.encode(groupV1Identifier.groupUid.raw, forKey: .groupUid) try container.encode(groupV1Identifier.groupOwner.getIdentity(), forKey: .groupOwner) @@ -289,21 +352,31 @@ public struct DiscussionSharedConfigurationJSON: Codable { self.expiration = ExpirationJSON(readOnce: false, visibilityDuration: nil, existenceDuration: nil) } + let oneToOneIdentifier = try values.decodeIfPresent(OneToOneIdentifierJSON.self, forKey: .oneToOneIdentifier) + let groupUidRaw = try values.decodeIfPresent(Data.self, forKey: .groupUid) let groupOwnerIdentity = try values.decodeIfPresent(Data.self, forKey: .groupOwner) let groupV2Identifier = try values.decodeIfPresent(Data.self, forKey: .groupV2Identifier) - if let groupUidRaw = groupUidRaw, + if let oneToOneIdentifier { + self.oneToOneIdentifier = oneToOneIdentifier + self.groupV1Identifier = nil + self.groupV2Identifier = nil + } else if let groupUidRaw = groupUidRaw, let groupOwnerIdentity = groupOwnerIdentity, let groupUid = UID(uid: groupUidRaw), let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) { - self.groupV1Identifier = (groupUid, groupOwner) + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) self.groupV2Identifier = nil } else if let groupV2Identifier = groupV2Identifier { + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier } else { + // This happens when receiving a message for a one2one discussion from a device running an old version of Olvid, which didn't use to send the oneToOneIdentifier) + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = nil } @@ -395,6 +468,48 @@ public struct ReturnReceiptJSON: Codable { } +public struct OneToOneIdentifierJSON: Codable, Equatable { + + private let identity1: ObvCryptoId + private let identity2: ObvCryptoId + + var identities: Set { + return Set([identity1, identity2]) + } + + public func getContactIdentity(ownedIdentity: ObvCryptoId) -> ObvCryptoId? { + if identity1 == ownedIdentity { + return identity2 + } else if identity2 == ownedIdentity { + return identity1 + } else { + assertionFailure() + return nil + } + } + + public init(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) { + self.identity1 = ownedCryptoId + self.identity2 = contactCryptoId + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.unkeyedContainer() + try container.encode(self.identity1.getIdentity()) + try container.encode(self.identity2.getIdentity()) + } + + public init(from decoder: Decoder) throws { + var container = try decoder.unkeyedContainer() + let rawIdentity1 = try container.decode(Data.self) + let rawIdentity2 = try container.decode(Data.self) + self.identity1 = try ObvCryptoId(identity: rawIdentity1) + self.identity2 = try ObvCryptoId(identity: rawIdentity2) + } + +} + + public struct ExpirationJSON: Codable, Equatable { public let readOnce: Bool @@ -471,8 +586,9 @@ public struct MessageJSON: Codable { public let senderSequenceNumber: Int public let senderThreadIdentifier: UUID public let body: String? - public let groupV1Identifier: (groupUid: UID, groupOwner: ObvCryptoId)? - public let groupV2Identifier: Data? + public let oneToOneIdentifier: OneToOneIdentifierJSON? + public let groupV1Identifier: GroupV1Identifier? + public let groupV2Identifier: GroupV2Identifier? public let replyTo: MessageReferenceJSON? public let expiration: ExpirationJSON? let forwarded: Bool @@ -498,6 +614,7 @@ public struct MessageJSON: Codable { case groupUid = "guid" // For group v1 case groupOwner = "go" // For group v1 case groupV2Identifier = "gid2" // For group v2 + case oneToOneIdentifier = "o2oi" // For one-to-one discussions case body = "body" case replyTo = "re" case expiration = "exp" @@ -506,10 +623,11 @@ public struct MessageJSON: Codable { case userMentions = "um" } - public init(senderSequenceNumber: Int, senderThreadIdentifier: UUID, body: String?, replyTo: MessageReferenceJSON?, expiration: ExpirationJSON?, forwarded: Bool, userMentions: [UserMention]) { + public init(senderSequenceNumber: Int, senderThreadIdentifier: UUID, body: String?, oneToOneIdentifier: OneToOneIdentifierJSON, replyTo: MessageReferenceJSON?, expiration: ExpirationJSON?, forwarded: Bool, userMentions: [UserMention]) { self.senderSequenceNumber = senderSequenceNumber self.senderThreadIdentifier = senderThreadIdentifier self.body = body + self.oneToOneIdentifier = oneToOneIdentifier self.groupV1Identifier = nil self.groupV2Identifier = nil self.replyTo = replyTo @@ -519,10 +637,11 @@ public struct MessageJSON: Codable { self.userMentions = userMentions } - public init(senderSequenceNumber: Int, senderThreadIdentifier: UUID, body: String?, groupV1Identifier: (groupUid: UID, groupOwner: ObvCryptoId), replyTo: MessageReferenceJSON?, expiration: ExpirationJSON?, forwarded: Bool, userMentions: [UserMention]) { + public init(senderSequenceNumber: Int, senderThreadIdentifier: UUID, body: String?, groupV1Identifier: GroupV1Identifier, replyTo: MessageReferenceJSON?, expiration: ExpirationJSON?, forwarded: Bool, userMentions: [UserMention]) { self.senderSequenceNumber = senderSequenceNumber self.senderThreadIdentifier = senderThreadIdentifier self.body = body + self.oneToOneIdentifier = nil self.groupV1Identifier = groupV1Identifier self.groupV2Identifier = nil self.replyTo = replyTo @@ -532,10 +651,11 @@ public struct MessageJSON: Codable { self.userMentions = userMentions } - public init(senderSequenceNumber: Int, senderThreadIdentifier: UUID, body: String?, groupV2Identifier: Data, replyTo: MessageReferenceJSON?, expiration: ExpirationJSON?, forwarded: Bool, originalServerTimestamp: Date?, userMentions: [UserMention]) { + public init(senderSequenceNumber: Int, senderThreadIdentifier: UUID, body: String?, groupV2Identifier: GroupV2Identifier, replyTo: MessageReferenceJSON?, expiration: ExpirationJSON?, forwarded: Bool, originalServerTimestamp: Date?, userMentions: [UserMention]) { self.senderSequenceNumber = senderSequenceNumber self.senderThreadIdentifier = senderThreadIdentifier self.body = body + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier self.replyTo = replyTo @@ -554,21 +674,31 @@ public struct MessageJSON: Codable { self.body = body + let oneToOneIdentifier = try values.decodeIfPresent(OneToOneIdentifierJSON.self, forKey: .oneToOneIdentifier) + let groupUidRaw = try values.decodeIfPresent(Data.self, forKey: .groupUid) let groupOwnerIdentity = try values.decodeIfPresent(Data.self, forKey: .groupOwner) let groupV2Identifier = try values.decodeIfPresent(Data.self, forKey: .groupV2Identifier) - if let groupUidRaw = groupUidRaw, + if let oneToOneIdentifier { + self.oneToOneIdentifier = oneToOneIdentifier + self.groupV1Identifier = nil + self.groupV2Identifier = nil + } else if let groupUidRaw = groupUidRaw, let groupOwnerIdentity = groupOwnerIdentity, let groupUid = UID(uid: groupUidRaw), let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) { - self.groupV1Identifier = (groupUid, groupOwner) + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) self.groupV2Identifier = nil } else if let groupV2Identifier = groupV2Identifier { + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier } else { + // This happens when receiving a message for a one2one discussion from a device running an old version of Olvid, which didn't use to send the oneToOneIdentifier) + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = nil } @@ -589,25 +719,14 @@ public struct MessageJSON: Codable { try values.decodeNil(forKey: .userMentions) == false { let decodingBlock: (Decoder) throws -> UserMention? - if #available(iOS 15, *) { - let configuration = UserMention.Configuration(message: body) - - decodingBlock = { decoder -> UserMention? in - do { - return try UserMention(from: decoder, configuration: configuration) - } catch let error as UserMention.MentionError.DecodingError { - assertionFailure("failed to decode with error: \(error)") //used for debugging - return nil - } - } - } else { - decodingBlock = { decoder -> UserMention? in - do { - return try UserMention(from: decoder, messageBody: body) - } catch let error as UserMention.MentionError.DecodingError { - assertionFailure("failed to decode with error: \(error)") //used for debugging - return nil - } + let configuration = UserMention.Configuration(message: body) + + decodingBlock = { decoder -> UserMention? in + do { + return try UserMention(from: decoder, configuration: configuration) + } catch let error as UserMention.MentionError.DecodingError { + assertionFailure("failed to decode with error: \(error)") //used for debugging + return nil } } @@ -629,6 +748,7 @@ public struct MessageJSON: Codable { public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(oneToOneIdentifier, forKey: .oneToOneIdentifier) if let groupV1Identifier = groupV1Identifier { try container.encode(groupV1Identifier.groupUid.raw, forKey: .groupUid) try container.encode(groupV1Identifier.groupOwner.getIdentity(), forKey: .groupOwner) @@ -650,23 +770,9 @@ public struct MessageJSON: Codable { } try container.encode(forwarded, forKey: .forwarded) - if let body, - userMentions.isEmpty == false { - if #available(iOS 15, *) { - let configuration = UserMention.Configuration(message: body) - - try container.encode(userMentions, forKey: .userMentions, configuration: configuration) - } else { - let encoder = container.superEncoder(forKey: .userMentions) - - var _innerContainer = encoder.unkeyedContainer() - - for aMention in userMentions { - let _currentDecoder = _innerContainer.superEncoder() - - try aMention.encode(to: _currentDecoder, messageBody: body) - } - } + if let body, userMentions.isEmpty == false { + let configuration = UserMention.Configuration(message: body) + try container.encode(userMentions, forKey: .userMentions, configuration: configuration) } } @@ -715,65 +821,65 @@ extension MessageJSON { } } -@available(iOS, deprecated: 15, message: "Please use `CodableWithConfiguration` conformance now") -extension MessageJSON.UserMention: Codable { - @available(*, deprecated, renamed: "init(from:messageBody:)") - public init(from decoder: Decoder) throws { - fatalError("init(from:) has not been implemented, please use init(from:messageBody:)") - } - - @available(*, deprecated, renamed: "encode(to:messageBody:)") - public func encode(to encoder: Encoder) throws { - fatalError("encode(to:) has not been implemented, please use encode(to:messageBody:)") - } - - public init(from decoder: Decoder, messageBody: String) throws { - let container = try decoder.container(keyedBy: CodingKeys.self) - - let data = try container.decode(Data.self, forKey: .mentionedCryptoId) - - mentionedCryptoId = try ObvCryptoId(identity: data) - - let rangeStart = try container.decode(Int.self, forKey: .rangeStart) - - let rangeEnd = try container.decode(Int.self, forKey: .rangeEnd) - - let startIndex = String.Index(utf16Offset: rangeStart, in: messageBody) - - let endIndex = String.Index(utf16Offset: rangeEnd, in: messageBody) - - let messageBodyRange = messageBody.startIndex..= startIndex else { - throw MentionError.DecodingError.mentionRangeInvalid(lower: startIndex, upper: endIndex) - } - - if endIndex > messageBody.startIndex { - guard messageBodyRange.contains(startIndex), - messageBodyRange.contains(messageBody.index(before: endIndex)) else { - throw MentionError.DecodingError.mentionRangeNotWithinMessageRange(mentionRange: startIndex..= startIndex else { +// throw MentionError.DecodingError.mentionRangeInvalid(lower: startIndex, upper: endIndex) +// } +// +// if endIndex > messageBody.startIndex { +// guard messageBodyRange.contains(startIndex), +// messageBodyRange.contains(messageBody.index(before: endIndex)) else { +// throw MentionError.DecodingError.mentionRangeNotWithinMessageRange(mentionRange: startIndex.., message: String) + // case mentionRangeNotWithinMessageRange(mentionRange: Range, message: String) } } } -@available(iOS 15, *) extension MessageJSON.UserMention: CodableWithConfiguration { public typealias DecodingConfiguration = Configuration public typealias EncodingConfiguration = Configuration @@ -802,7 +907,14 @@ extension MessageJSON.UserMention: CodableWithConfiguration { let message: String } + private enum CodingKeys: String, CodingKey { + case mentionedCryptoId = "uid" + case rangeStart = "rs" + case rangeEnd = "re" + } + public init(from decoder: Decoder, configuration: DecodingConfiguration) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) let data = try container.decode(Data.self, forKey: .mentionedCryptoId) @@ -819,18 +931,16 @@ extension MessageJSON.UserMention: CodableWithConfiguration { let endIndex = String.Index(utf16Offset: rangeEnd, in: messageBody) - let messageBodyRange = messageBody.startIndex..= startIndex else { + guard endIndex > startIndex, startIndex >= messageBody.startIndex, endIndex <= messageBody.endIndex else { throw MentionError.DecodingError.mentionRangeInvalid(lower: startIndex, upper: endIndex) } - if endIndex > messageBody.startIndex { - guard messageBodyRange.contains(startIndex), - messageBodyRange.contains(messageBody.index(before: endIndex)) else { - throw MentionError.DecodingError.mentionRangeNotWithinMessageRange(mentionRange: startIndex.. messageBody.startIndex { +// guard messageBodyRange.contains(startIndex), +// messageBodyRange.contains(messageBody.index(before: endIndex)) else { +// throw MentionError.DecodingError.mentionRangeNotWithinMessageRange(mentionRange: startIndex.. MessageIdentifier { + let authorIdentifier = MessageWriterIdentifier( + senderSequenceNumber: senderSequenceNumber, + senderThreadIdentifier: senderThreadIdentifier, + senderIdentifier: senderIdentifier) + if senderIdentifier == ownedCryptoId.getIdentity() { + return .sent(id: .authorIdentifier(writerIdentifier: authorIdentifier)) + } else { + return .received(id: .authorIdentifier(writerIdentifier: authorIdentifier)) + } + } + + public init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) self.senderSequenceNumber = try values.decode(Int.self, forKey: .senderSequenceNumber) @@ -892,8 +1015,9 @@ public struct DeleteMessagesJSON: Codable { private static func makeError(message: String) -> Error { NSError(domain: String(describing: self), code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } private func makeError(message: String) -> Error { DeleteMessagesJSON.makeError(message: message) } - let groupV1Identifier: (groupUid: UID, groupOwner: ObvCryptoId)? - let groupV2Identifier: Data? + public let oneToOneIdentifier: OneToOneIdentifierJSON? + let groupV1Identifier: GroupV1Identifier? + let groupV2Identifier: GroupV2Identifier? public let messagesToDelete: [MessageReferenceJSON] public var groupIdentifier: GroupIdentifier? { @@ -911,6 +1035,7 @@ public struct DeleteMessagesJSON: Codable { case groupOwner = "go" // For group V1 case groupV2Identifier = "gid2" // For group V2 case messagesToDelete = "refs" + case oneToOneIdentifier = "o2oi" // For one-to-one discussions } public init(persistedMessagesToDelete: [PersistedMessage]) throws { @@ -919,16 +1044,23 @@ public struct DeleteMessagesJSON: Codable { let discussion: PersistedDiscussion do { - let discussions = Set(persistedMessagesToDelete.map { $0.discussion }) + let discussions = Set(persistedMessagesToDelete.compactMap { $0.discussion }) guard discussions.count == 1 else { throw DeleteMessagesJSON.makeError(message: "Could not construct DeleteMessagesJSON. Expecting one discussion, got \(discussions.count)") } - discussion = discussions.first! + guard let _discussion = discussions.first else { + throw DeleteMessagesJSON.makeError(message: "Could not construct DeleteMessagesJSON. Expecting one discussion") + } + discussion = _discussion } self.messagesToDelete = persistedMessagesToDelete.compactMap { $0.toMessageReferenceJSON() } switch try discussion.kind { case .oneToOne: + guard let ownedCryptoId = discussion.ownedIdentity?.cryptoId, let contactCryptoId = (discussion as? PersistedOneToOneDiscussion)?.contactIdentity?.cryptoId else { + throw DeleteMessagesJSON.makeError(message: "Could not determine OneToOneIdentifierJSON") + } + self.oneToOneIdentifier = OneToOneIdentifierJSON(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) self.groupV1Identifier = nil self.groupV2Identifier = nil case .groupV1(withContactGroup: let contactGroup): @@ -937,12 +1069,14 @@ public struct DeleteMessagesJSON: Codable { let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) else { throw DeleteMessagesJSON.makeError(message: "Could not determine group v1 id") } - self.groupV1Identifier = (groupUid, groupOwner) + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) self.groupV2Identifier = nil case .groupV2(withGroup: let group): guard let groupV2Identifier = group?.groupIdentifier else { throw DeleteMessagesJSON.makeError(message: "Could not determine group v2 id") } + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier } @@ -951,6 +1085,7 @@ public struct DeleteMessagesJSON: Codable { public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(oneToOneIdentifier, forKey: .oneToOneIdentifier) if let groupV1Identifier = groupV1Identifier { try container.encode(groupV1Identifier.groupUid.raw, forKey: .groupUid) try container.encode(groupV1Identifier.groupOwner.getIdentity(), forKey: .groupOwner) @@ -967,18 +1102,27 @@ public struct DeleteMessagesJSON: Codable { let groupUidRaw = try values.decodeIfPresent(Data.self, forKey: .groupUid) let groupOwnerIdentity = try values.decodeIfPresent(Data.self, forKey: .groupOwner) + let oneToOneIdentifier = try values.decodeIfPresent(OneToOneIdentifierJSON.self, forKey: .oneToOneIdentifier) let groupV2Identifier = try values.decodeIfPresent(Data.self, forKey: .groupV2Identifier) - if let groupUidRaw = groupUidRaw, + if let oneToOneIdentifier { + self.oneToOneIdentifier = oneToOneIdentifier + self.groupV1Identifier = nil + self.groupV2Identifier = nil + } else if let groupUidRaw = groupUidRaw, let groupOwnerIdentity = groupOwnerIdentity, let groupUid = UID(uid: groupUidRaw), let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) { - self.groupV1Identifier = (groupUid, groupOwner) + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) self.groupV2Identifier = nil } else if let groupV2Identifier = groupV2Identifier { + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier } else { + // This happens when receiving a message for a one2one discussion from a device running an old version of Olvid, which didn't use to send the oneToOneIdentifier) + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = nil } @@ -997,8 +1141,9 @@ public struct DeleteDiscussionJSON: Codable { private static func makeError(message: String) -> Error { NSError(domain: String(describing: self), code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } private func makeError(message: String) -> Error { DeleteDiscussionJSON.makeError(message: message) } - let groupV1Identifier: (groupUid: UID, groupOwner: ObvCryptoId)? - let groupV2Identifier: Data? + public let oneToOneIdentifier: OneToOneIdentifierJSON? + let groupV1Identifier: GroupV1Identifier? + let groupV2Identifier: GroupV2Identifier? public var groupIdentifier: GroupIdentifier? { if let groupV1Identifier = groupV1Identifier { @@ -1014,11 +1159,17 @@ public struct DeleteDiscussionJSON: Codable { case groupUid = "guid" // For group V1 case groupOwner = "go" // For group V1 case groupV2Identifier = "gid2" + case oneToOneIdentifier = "o2oi" // For one-to-one discussions } public init(persistedDiscussionToDelete discussion: PersistedDiscussion) throws { switch try discussion.kind { case .oneToOne: + guard let oneToOneDiscussion = discussion as? PersistedOneToOneDiscussion else { + assertionFailure() + throw DeleteDiscussionJSON.makeError(message: "Could not cast discussion into a one2one discussion. Unexpected, this is a bug") + } + self.oneToOneIdentifier = try oneToOneDiscussion.oneToOneIdentifier self.groupV1Identifier = nil self.groupV2Identifier = nil case .groupV1(withContactGroup: let contactGroup): @@ -1027,12 +1178,14 @@ public struct DeleteDiscussionJSON: Codable { let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) else { throw DeleteDiscussionJSON.makeError(message: "Could not determine group v1 id") } - self.groupV1Identifier = (groupUid, groupOwner) + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) self.groupV2Identifier = nil case .groupV2(withGroup: let group): guard let groupV2Identifier = group?.groupIdentifier else { throw DeleteDiscussionJSON.makeError(message: "Could not determine group v2 id") } + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier } @@ -1040,6 +1193,7 @@ public struct DeleteDiscussionJSON: Codable { public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(oneToOneIdentifier, forKey: .oneToOneIdentifier) if let groupV1Identifier = groupV1Identifier { try container.encode(groupV1Identifier.groupUid.raw, forKey: .groupUid) try container.encode(groupV1Identifier.groupOwner.getIdentity(), forKey: .groupOwner) @@ -1055,18 +1209,26 @@ public struct DeleteDiscussionJSON: Codable { let groupUidRaw = try values.decodeIfPresent(Data.self, forKey: .groupUid) let groupOwnerIdentity = try values.decodeIfPresent(Data.self, forKey: .groupOwner) + let oneToOneIdentifier = try values.decodeIfPresent(OneToOneIdentifierJSON.self, forKey: .oneToOneIdentifier) let groupV2Identifier = try values.decodeIfPresent(Data.self, forKey: .groupV2Identifier) - if let groupUidRaw = groupUidRaw, + if let oneToOneIdentifier { + self.oneToOneIdentifier = oneToOneIdentifier + self.groupV1Identifier = nil + self.groupV2Identifier = nil + } else if let groupUidRaw = groupUidRaw, let groupOwnerIdentity = groupOwnerIdentity, let groupUid = UID(uid: groupUidRaw), let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) { - self.groupV1Identifier = (groupUid, groupOwner) + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) self.groupV2Identifier = nil } else if let groupV2Identifier = groupV2Identifier { + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier } else { + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = nil } @@ -1080,22 +1242,108 @@ public struct QuerySharedSettingsJSON: Codable, ObvErrorMaker { public static let errorDomain = "QuerySharedSettingsJSON" - public let groupV2Identifier: Data + public let oneToOneIdentifier: OneToOneIdentifierJSON? + public let groupV1Identifier: GroupV1Identifier? + public let groupV2Identifier: GroupV2Identifier? public let knownSharedSettingsVersion: Int? public let knownSharedExpiration: ExpirationJSON? - public init(groupV2Identifier: Data, knownSharedSettingsVersion: Int?, knownSharedExpiration: ExpirationJSON?) { - self.groupV2Identifier = groupV2Identifier + public init(oneToOneIdentifier: OneToOneIdentifierJSON, knownSharedSettingsVersion: Int?, knownSharedExpiration: ExpirationJSON?) { self.knownSharedSettingsVersion = knownSharedSettingsVersion self.knownSharedExpiration = knownSharedExpiration + self.oneToOneIdentifier = oneToOneIdentifier + self.groupV1Identifier = nil + self.groupV2Identifier = nil } - + + public init(groupV1Identifier: GroupV1Identifier, knownSharedSettingsVersion: Int?, knownSharedExpiration: ExpirationJSON?) { + self.knownSharedSettingsVersion = knownSharedSettingsVersion + self.knownSharedExpiration = knownSharedExpiration + self.oneToOneIdentifier = nil + self.groupV1Identifier = groupV1Identifier + self.groupV2Identifier = nil + } + + public init(groupV2Identifier: GroupV2Identifier, knownSharedSettingsVersion: Int?, knownSharedExpiration: ExpirationJSON?) { + self.knownSharedSettingsVersion = knownSharedSettingsVersion + self.knownSharedExpiration = knownSharedExpiration + self.oneToOneIdentifier = nil + self.groupV1Identifier = nil + self.groupV2Identifier = groupV2Identifier + } + enum CodingKeys: String, CodingKey { + case groupUid = "guid" // For group V1 + case groupOwner = "go" // For group V1 case groupV2Identifier = "gid2" case knownSharedSettingsVersion = "ksv" case knownSharedExpiration = "exp" + case oneToOneIdentifier = "o2oi" // For one-to-one discussions + } + + + public var groupIdentifier: GroupIdentifier? { + if let groupV1Identifier = groupV1Identifier { + return .groupV1(groupV1Identifier: groupV1Identifier) + } else if let groupV2Identifier = groupV2Identifier { + return .groupV2(groupV2Identifier: groupV2Identifier) + } else { + return nil + } } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(oneToOneIdentifier, forKey: .oneToOneIdentifier) + if let groupV1Identifier = groupV1Identifier { + try container.encode(groupV1Identifier.groupUid.raw, forKey: .groupUid) + try container.encode(groupV1Identifier.groupOwner.getIdentity(), forKey: .groupOwner) + } + if let groupV2Identifier = groupV2Identifier { + try container.encode(groupV2Identifier, forKey: .groupV2Identifier) + } + try container.encodeIfPresent(knownSharedSettingsVersion, forKey: .knownSharedSettingsVersion) + try container.encodeIfPresent(knownSharedExpiration, forKey: .knownSharedExpiration) + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + + let oneToOneIdentifier = try values.decodeIfPresent(OneToOneIdentifierJSON.self, forKey: .oneToOneIdentifier) + + let groupUidRaw = try values.decodeIfPresent(Data.self, forKey: .groupUid) + let groupOwnerIdentity = try values.decodeIfPresent(Data.self, forKey: .groupOwner) + + let groupV2Identifier = try values.decodeIfPresent(Data.self, forKey: .groupV2Identifier) + + if let oneToOneIdentifier { + self.oneToOneIdentifier = oneToOneIdentifier + self.groupV1Identifier = nil + self.groupV2Identifier = nil + } else if let groupUidRaw = groupUidRaw, + let groupOwnerIdentity = groupOwnerIdentity, + let groupUid = UID(uid: groupUidRaw), + let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) { + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) + self.groupV2Identifier = nil + } else if let groupV2Identifier = groupV2Identifier { + self.oneToOneIdentifier = nil + self.groupV1Identifier = nil + self.groupV2Identifier = groupV2Identifier + } else { + // This happens when receiving a message for a one2one discussion from a device running an old version of Olvid, which didn't use to send the oneToOneIdentifier) + self.oneToOneIdentifier = nil + self.groupV1Identifier = nil + self.groupV2Identifier = nil + } + + self.knownSharedSettingsVersion = try values.decodeIfPresent(Int.self, forKey: .knownSharedSettingsVersion) + self.knownSharedExpiration = try values.decodeIfPresent(ExpirationJSON.self, forKey: .knownSharedExpiration) + + } + } @@ -1107,8 +1355,9 @@ public struct UpdateMessageJSON: Codable { private func makeError(message: String) -> Error { UpdateMessageJSON.makeError(message: message) } public let messageToEdit: MessageReferenceJSON - let groupV1Identifier: (groupUid: UID, groupOwner: ObvCryptoId)? - let groupV2Identifier: Data? + public let oneToOneIdentifier: OneToOneIdentifierJSON? + let groupV1Identifier: GroupV1Identifier? + let groupV2Identifier: GroupV2Identifier? public let newTextBody: String? public let userMentions: [MessageJSON.UserMention] @@ -1129,6 +1378,7 @@ public struct UpdateMessageJSON: Codable { case body = "body" case messageToEdit = "ref" case userMentions = "um" + case oneToOneIdentifier = "o2oi" // For one-to-one discussions } public init(persistedMessageSentToEdit msg: PersistedMessageSent, newTextBody: String?, userMentions: [MessageJSON.UserMention]) throws { @@ -1136,9 +1386,20 @@ public struct UpdateMessageJSON: Codable { guard let msgRef = msg.toMessageReferenceJSON() else { throw UpdateMessageJSON.makeError(message: "Could not create MessageReferenceJSON") } + guard let discussion = msg.discussion else { + throw UpdateMessageJSON.makeError(message: "Discussion is nil") + } self.messageToEdit = msgRef - switch try msg.discussion.kind { + guard let discussionKind = try msg.discussion?.kind else { + throw UpdateMessageJSON.makeError(message: "Could not find discussion") + } + switch discussionKind { case .oneToOne: + guard let oneToOneDiscussion = discussion as? PersistedOneToOneDiscussion else { + assertionFailure() + throw UpdateMessageJSON.makeError(message: "Could not cast discussion into a one2one discussion. Unexpected, this is a bug") + } + self.oneToOneIdentifier = try oneToOneDiscussion.oneToOneIdentifier self.groupV1Identifier = nil self.groupV2Identifier = nil case .groupV1(withContactGroup: let contactGroup): @@ -1147,12 +1408,14 @@ public struct UpdateMessageJSON: Codable { let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) else { throw UpdateMessageJSON.makeError(message: "Could not determine group v1 uid") } - self.groupV1Identifier = (groupUid, groupOwner) + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) self.groupV2Identifier = nil case .groupV2(withGroup: let group): guard let groupV2Identifier = group?.groupIdentifier else { throw UpdateMessageJSON.makeError(message: "Could not determine group v2 uid") } + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier } @@ -1161,6 +1424,7 @@ public struct UpdateMessageJSON: Codable { public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(oneToOneIdentifier, forKey: .oneToOneIdentifier) if let groupV1Identifier = groupV1Identifier { try container.encode(groupV1Identifier.groupUid.raw, forKey: .groupUid) try container.encode(groupV1Identifier.groupOwner.getIdentity(), forKey: .groupOwner) @@ -1173,44 +1437,40 @@ public struct UpdateMessageJSON: Codable { } try container.encode(messageToEdit, forKey: .messageToEdit) - if let newTextBody, - userMentions.isEmpty == false { - if #available(iOS 15, *) { - let configuration = MessageJSON.UserMention.Configuration(message: newTextBody) - - try container.encode(userMentions, forKey: .userMentions, configuration: configuration) - } else { - let encoder = container.superEncoder(forKey: .userMentions) - - var _innerContainer = encoder.unkeyedContainer() - - for aMention in userMentions { - let _currentDecoder = _innerContainer.superEncoder() - - try aMention.encode(to: _currentDecoder, messageBody: newTextBody) - } - } + if let newTextBody, userMentions.isEmpty == false { + let configuration = MessageJSON.UserMention.Configuration(message: newTextBody) + try container.encode(userMentions, forKey: .userMentions, configuration: configuration) } } public init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) + let oneToOneIdentifier = try values.decodeIfPresent(OneToOneIdentifierJSON.self, forKey: .oneToOneIdentifier) + let groupUidRaw = try values.decodeIfPresent(Data.self, forKey: .groupUid) let groupOwnerIdentity = try values.decodeIfPresent(Data.self, forKey: .groupOwner) let groupV2Identifier = try values.decodeIfPresent(Data.self, forKey: .groupV2Identifier) - if let groupUidRaw = groupUidRaw, + if let oneToOneIdentifier { + self.oneToOneIdentifier = oneToOneIdentifier + self.groupV1Identifier = nil + self.groupV2Identifier = nil + } else if let groupUidRaw = groupUidRaw, let groupOwnerIdentity = groupOwnerIdentity, let groupUid = UID(uid: groupUidRaw), let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) { - self.groupV1Identifier = (groupUid, groupOwner) + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) self.groupV2Identifier = nil } else if let groupV2Identifier = groupV2Identifier { + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier } else { + // This happens when receiving a message for a one2one discussion from a device running an old version of Olvid, which didn't use to send the oneToOneIdentifier) + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = nil } @@ -1224,25 +1484,14 @@ public struct UpdateMessageJSON: Codable { try values.decodeNil(forKey: .userMentions) == false { let decodingBlock: (Decoder) throws -> MessageJSON.UserMention? - if #available(iOS 15, *) { - let configuration = MessageJSON.UserMention.Configuration(message: newTextBody) - - decodingBlock = { decoder -> MessageJSON.UserMention? in - do { - return try MessageJSON.UserMention(from: decoder, configuration: configuration) - } catch let error as MessageJSON.UserMention.MentionError.DecodingError { - assert(false, "failed to decode with error: \(error)") //used for debugging - return nil - } - } - } else { - decodingBlock = { decoder -> MessageJSON.UserMention? in - do { - return try MessageJSON.UserMention(from: decoder, messageBody: newTextBody) - } catch let error as MessageJSON.UserMention.MentionError.DecodingError { - assert(false, "failed to decode with error: \(error)") //used for debugging - return nil - } + let configuration = MessageJSON.UserMention.Configuration(message: newTextBody) + + decodingBlock = { decoder -> MessageJSON.UserMention? in + do { + return try MessageJSON.UserMention(from: decoder, configuration: configuration) + } catch let error as MessageJSON.UserMention.MentionError.DecodingError { + assert(false, "failed to decode with error: \(error)") //used for debugging + return nil } } @@ -1262,6 +1511,20 @@ public struct UpdateMessageJSON: Codable { } } + + /// Allows to serialize this request when it must be saved for later in the `RemoteRequestSavedForLater` database + public func jsonEncode() throws -> Data { + let encoder = JSONEncoder() + return try encoder.encode(self) + } + + + /// Allows to deserialize this message when it was saved for later in the `RemoteRequestSavedForLater` database + public static func jsonDecode(_ data: Data) throws -> UpdateMessageJSON { + let decoder = JSONDecoder() + return try decoder.decode(UpdateMessageJSON.self, from: data) + } + } public struct ReactionJSON: Codable { @@ -1272,8 +1535,9 @@ public struct ReactionJSON: Codable { private func makeError(message: String) -> Error { ReactionJSON.makeError(message: message) } public let messageReference: MessageReferenceJSON - public let groupV1Identifier: (groupUid: UID, groupOwner: ObvCryptoId)? - public let groupV2Identifier: Data? + let oneToOneIdentifier: OneToOneIdentifierJSON? + public let groupV1Identifier: GroupV1Identifier? + public let groupV2Identifier: GroupV2Identifier? public let emoji: String? public var groupIdentifier: GroupIdentifier? { @@ -1292,6 +1556,7 @@ public struct ReactionJSON: Codable { case groupV2Identifier = "gid2" case emoji = "reac" case messageReference = "ref" + case oneToOneIdentifier = "o2oi" // For one-to-one discussions } public init(persistedMessageToReact msg: PersistedMessage, emoji: String?) throws { @@ -1299,9 +1564,19 @@ public struct ReactionJSON: Codable { guard let msgRef = msg.toMessageReferenceJSON() else { throw ReactionJSON.makeError(message: "Could not create MessageReferenceJSON") } + guard let discussion = msg.discussion else { + throw ReactionJSON.makeError(message: "Discussion is nil") + } self.messageReference = msgRef - switch try msg.discussion.kind { + guard let discussionKind = try msg.discussion?.kind else { + throw ReactionJSON.makeError(message: "Could not find discussion") + } + switch discussionKind { case .oneToOne: + guard let ownedCryptoId = discussion.ownedIdentity?.cryptoId, let contactCryptoId = (discussion as? PersistedOneToOneDiscussion)?.contactIdentity?.cryptoId else { + throw ReactionJSON.makeError(message: "Could not determine OneToOneIdentifierJSON") + } + self.oneToOneIdentifier = OneToOneIdentifierJSON(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) self.groupV1Identifier = nil self.groupV2Identifier = nil case .groupV1(withContactGroup: let contactGroup): @@ -1310,12 +1585,14 @@ public struct ReactionJSON: Codable { let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) else { throw ReactionJSON.makeError(message: "Could not determine group v1 uid") } - self.groupV1Identifier = (groupUid, groupOwner) + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) self.groupV2Identifier = nil case .groupV2(withGroup: let group): guard let groupV2Identifier = group?.groupIdentifier else { throw ReactionJSON.makeError(message: "Could not determine group v2 uid") } + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier } @@ -1323,6 +1600,7 @@ public struct ReactionJSON: Codable { public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(oneToOneIdentifier, forKey: .oneToOneIdentifier) if let groupV1Identifier = groupV1Identifier { try container.encode(groupV1Identifier.groupUid.raw, forKey: .groupUid) try container.encode(groupV1Identifier.groupOwner.getIdentity(), forKey: .groupOwner) @@ -1340,18 +1618,26 @@ public struct ReactionJSON: Codable { let groupUidRaw = try values.decodeIfPresent(Data.self, forKey: .groupUid) let groupOwnerIdentity = try values.decodeIfPresent(Data.self, forKey: .groupOwner) + let oneToOneIdentifier = try values.decodeIfPresent(OneToOneIdentifierJSON.self, forKey: .oneToOneIdentifier) let groupV2Identifier = try values.decodeIfPresent(Data.self, forKey: .groupV2Identifier) - - if let groupUidRaw = groupUidRaw, + + if let oneToOneIdentifier { + self.oneToOneIdentifier = oneToOneIdentifier + self.groupV1Identifier = nil + self.groupV2Identifier = nil + } else if let groupUidRaw = groupUidRaw, let groupOwnerIdentity = groupOwnerIdentity, let groupUid = UID(uid: groupUidRaw), let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) { - self.groupV1Identifier = (groupUid, groupOwner) + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) self.groupV2Identifier = nil } else if let groupV2Identifier = groupV2Identifier { + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier } else { + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = nil } @@ -1360,16 +1646,30 @@ public struct ReactionJSON: Codable { self.messageReference = try values.decode(MessageReferenceJSON.self, forKey: .messageReference) } + /// Allows to serialize this request when it must be saved for later in the `RemoteRequestSavedForLater` database + public func jsonEncode() throws -> Data { + let encoder = JSONEncoder() + return try encoder.encode(self) + } + + + /// Allows to deserialize this message when it was saved for later in the `RemoteRequestSavedForLater` database + public static func jsonDecode(_ data: Data) throws -> ReactionJSON { + let decoder = JSONDecoder() + return try decoder.decode(ReactionJSON.self, from: data) + } + } public struct ScreenCaptureDetectionJSON: Codable, ObvErrorMaker { - private let log = OSLog(subsystem: ObvUICoreDataConstants.logSubsystem, category: "DiscussionSharedConfigurationJSON") + private let log = OSLog(subsystem: ObvUICoreDataConstants.logSubsystem, category: "ScreenCaptureDetectionJSON") public static let errorDomain = "ScreenCaptureDetectionJSON" - let groupV1Identifier: (groupUid: UID, groupOwner: ObvCryptoId)? - let groupV2Identifier: Data? + public let oneToOneIdentifier: OneToOneIdentifierJSON? + let groupV1Identifier: GroupV1Identifier? + let groupV2Identifier: GroupV2Identifier? public var groupIdentifier: GroupIdentifier? { if let groupV1Identifier = groupV1Identifier { @@ -1385,19 +1685,23 @@ public struct ScreenCaptureDetectionJSON: Codable, ObvErrorMaker { case groupUid = "guid" // For group V1 case groupOwner = "go" // For group V1 case groupV2Identifier = "gid2" + case oneToOneIdentifier = "o2oi" // For one-to-one discussions } - public init() { + public init(oneToOneIdentifier: OneToOneIdentifierJSON) { + self.oneToOneIdentifier = oneToOneIdentifier self.groupV1Identifier = nil self.groupV2Identifier = nil } - public init(groupV1Identifier: (groupUid: UID, groupOwner: ObvCryptoId)) { + public init(groupV1Identifier: GroupV1Identifier) { + self.oneToOneIdentifier = nil self.groupV1Identifier = groupV1Identifier self.groupV2Identifier = nil } - public init(groupV2Identifier: Data) { + public init(groupV2Identifier: GroupV2Identifier) { + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier } @@ -1414,6 +1718,7 @@ public struct ScreenCaptureDetectionJSON: Codable, ObvErrorMaker { public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) + try container.encodeIfPresent(oneToOneIdentifier, forKey: .oneToOneIdentifier) if let groupV1Identifier = groupV1Identifier { try container.encode(groupV1Identifier.groupUid.raw, forKey: .groupUid) try container.encode(groupV1Identifier.groupOwner.getIdentity(), forKey: .groupOwner) @@ -1429,21 +1734,280 @@ public struct ScreenCaptureDetectionJSON: Codable, ObvErrorMaker { let groupUidRaw = try values.decodeIfPresent(Data.self, forKey: .groupUid) let groupOwnerIdentity = try values.decodeIfPresent(Data.self, forKey: .groupOwner) + let oneToOneIdentifier = try values.decodeIfPresent(OneToOneIdentifierJSON.self, forKey: .oneToOneIdentifier) + let groupV2Identifier = try values.decodeIfPresent(Data.self, forKey: .groupV2Identifier) + + if let oneToOneIdentifier { + self.oneToOneIdentifier = oneToOneIdentifier + self.groupV1Identifier = nil + self.groupV2Identifier = nil + } else if let groupUidRaw = groupUidRaw, + let groupOwnerIdentity = groupOwnerIdentity, + let groupUid = UID(uid: groupUidRaw), + let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) { + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) + self.groupV2Identifier = nil + } else if let groupV2Identifier = groupV2Identifier { + self.oneToOneIdentifier = nil + self.groupV1Identifier = nil + self.groupV2Identifier = groupV2Identifier + } else { + self.oneToOneIdentifier = nil + self.groupV1Identifier = nil + self.groupV2Identifier = nil + } + } + +} + + +public struct LimitedVisibilityMessageOpenedJSON: Codable { + + let messageReference: MessageReferenceJSON + let oneToOneIdentifier: OneToOneIdentifierJSON? + let groupV1Identifier: GroupV1Identifier? + let groupV2Identifier: GroupV2Identifier? + + public var groupIdentifier: GroupIdentifier? { + if let groupV1Identifier { + return .groupV1(groupV1Identifier: groupV1Identifier) + } else if let groupV2Identifier { + return .groupV2(groupV2Identifier: groupV2Identifier) + } else { + return nil + } + } + + + public func getMessageId(ownedCryptoId: ObvCryptoId) throws -> ReceivedMessageIdentifier { + let messageId = messageReference.getMessageId(ownedCryptoId: ownedCryptoId) + switch messageId { + case .sent, .system: + throw ObvError.doesNotReferenceReceivedMessage + case .received(let id): + return id + } + } + + + public func getDiscussionId(ownedCryptoId: ObvCryptoId) throws -> DiscussionIdentifier { + if let groupV1Identifier { + return .groupV1(id: .groupV1Identifier(groupV1Identifier: groupV1Identifier)) + } else if let groupV2Identifier { + return .groupV2(id: .groupV2Identifier(groupV2Identifier: groupV2Identifier)) + } else if let oneToOneIdentifier { + guard let contactCryptoId = oneToOneIdentifier.getContactIdentity(ownedIdentity: ownedCryptoId) else { + assertionFailure() + throw ObvError.couldNotDetermineDiscussionIdentifier + } + return .oneToOne(id: .contactCryptoId(contactCryptoId: contactCryptoId)) + } else { + throw ObvError.noDiscussionWasSpecified + } + } + + enum CodingKeys: String, CodingKey { + case messageReference = "m" + case groupUid = "guid" // For group V1 + case groupOwner = "go" // For group V1 + case groupV2Identifier = "gid2" + case oneToOneIdentifier = "o2oi" // For one-to-one discussions + } + + public init(messageReference: MessageReferenceJSON, oneToOneIdentifier: OneToOneIdentifierJSON) { + self.messageReference = messageReference + self.oneToOneIdentifier = oneToOneIdentifier + self.groupV1Identifier = nil + self.groupV2Identifier = nil + } + + public init(messageReference: MessageReferenceJSON, groupV1Identifier: GroupV1Identifier) { + self.messageReference = messageReference + self.oneToOneIdentifier = nil + self.groupV1Identifier = groupV1Identifier + self.groupV2Identifier = nil + } + + public init(messageReference: MessageReferenceJSON, groupV2Identifier: GroupV2Identifier) { + self.messageReference = messageReference + self.oneToOneIdentifier = nil + self.groupV1Identifier = nil + self.groupV2Identifier = groupV2Identifier + } + + func jsonEncode() throws -> Data { + let encoder = JSONEncoder() + return try encoder.encode(self) + } + + static func jsonDecode(_ data: Data) throws -> ScreenCaptureDetectionJSON { + let decoder = JSONDecoder() + return try decoder.decode(ScreenCaptureDetectionJSON.self, from: data) + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(messageReference, forKey: .messageReference) + try container.encodeIfPresent(oneToOneIdentifier, forKey: .oneToOneIdentifier) + if let groupV1Identifier = groupV1Identifier { + try container.encode(groupV1Identifier.groupUid.raw, forKey: .groupUid) + try container.encode(groupV1Identifier.groupOwner.getIdentity(), forKey: .groupOwner) + } + try container.encodeIfPresent(groupV2Identifier, forKey: .groupV2Identifier) + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + + self.messageReference = try values.decode(MessageReferenceJSON.self, forKey: .messageReference) + + let oneToOneIdentifier = try values.decodeIfPresent(OneToOneIdentifierJSON.self, forKey: .oneToOneIdentifier) + + let groupUidRaw = try values.decodeIfPresent(Data.self, forKey: .groupUid) + let groupOwnerIdentity = try values.decodeIfPresent(Data.self, forKey: .groupOwner) + let groupV2Identifier = try values.decodeIfPresent(Data.self, forKey: .groupV2Identifier) - if let groupUidRaw = groupUidRaw, + if let oneToOneIdentifier { + self.oneToOneIdentifier = oneToOneIdentifier + self.groupV1Identifier = nil + self.groupV2Identifier = nil + } else if let groupUidRaw = groupUidRaw, let groupOwnerIdentity = groupOwnerIdentity, let groupUid = UID(uid: groupUidRaw), let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) { - self.groupV1Identifier = (groupUid, groupOwner) + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) self.groupV2Identifier = nil } else if let groupV2Identifier = groupV2Identifier { + self.oneToOneIdentifier = nil self.groupV1Identifier = nil self.groupV2Identifier = groupV2Identifier } else { + throw ObvError.noDiscussionWasSpecified + } + } + + enum ObvError: LocalizedError { + case noDiscussionWasSpecified + case couldNotDetermineDiscussionIdentifier + case doesNotReferenceReceivedMessage + } + +} + + +public struct DiscussionReadJSON: Codable { + + public let lastReadMessageServerTimestamp: Date + public let oneToOneIdentifier: OneToOneIdentifierJSON? + public let groupV1Identifier: GroupV1Identifier? + public let groupV2Identifier: GroupV2Identifier? + + public func getDiscussionId(ownedCryptoId: ObvCryptoId) throws -> DiscussionIdentifier { + if let groupV1Identifier { + return .groupV1(id: .groupV1Identifier(groupV1Identifier: groupV1Identifier)) + } else if let groupV2Identifier { + return .groupV2(id: .groupV2Identifier(groupV2Identifier: groupV2Identifier)) + } else if let oneToOneIdentifier { + guard let contactCryptoId = oneToOneIdentifier.getContactIdentity(ownedIdentity: ownedCryptoId) else { + assertionFailure() + throw ObvError.couldNotDetermineDiscussionIdentifier + } + return .oneToOne(id: .contactCryptoId(contactCryptoId: contactCryptoId)) + } else { + throw ObvError.noDiscussionWasSpecified + } + } + + enum CodingKeys: String, CodingKey { + case lastReadMessageServerTimestamp = "tim" + case groupUid = "guid" // For group V1 + case groupOwner = "go" // For group V1 + case groupV2Identifier = "gid2" + case oneToOneIdentifier = "o2oi" // For one-to-one discussions + } + + public init(lastReadMessageServerTimestamp: Date, oneToOneIdentifier: OneToOneIdentifierJSON) { + self.lastReadMessageServerTimestamp = lastReadMessageServerTimestamp + self.oneToOneIdentifier = oneToOneIdentifier + self.groupV1Identifier = nil + self.groupV2Identifier = nil + } + + public init(lastReadMessageServerTimestamp: Date, groupV1Identifier: GroupV1Identifier) { + self.lastReadMessageServerTimestamp = lastReadMessageServerTimestamp + self.oneToOneIdentifier = nil + self.groupV1Identifier = groupV1Identifier + self.groupV2Identifier = nil + } + + public init(lastReadMessageServerTimestamp: Date, groupV2Identifier: GroupV2Identifier) { + self.lastReadMessageServerTimestamp = lastReadMessageServerTimestamp + self.oneToOneIdentifier = nil + self.groupV1Identifier = nil + self.groupV2Identifier = groupV2Identifier + } + + func jsonEncode() throws -> Data { + let encoder = JSONEncoder() + return try encoder.encode(self) + } + + static func jsonDecode(_ data: Data) throws -> ScreenCaptureDetectionJSON { + let decoder = JSONDecoder() + return try decoder.decode(ScreenCaptureDetectionJSON.self, from: data) + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(lastReadMessageServerTimestamp.epochInMs, forKey: .lastReadMessageServerTimestamp) + try container.encodeIfPresent(oneToOneIdentifier, forKey: .oneToOneIdentifier) + if let groupV1Identifier = groupV1Identifier { + try container.encode(groupV1Identifier.groupUid.raw, forKey: .groupUid) + try container.encode(groupV1Identifier.groupOwner.getIdentity(), forKey: .groupOwner) + } + try container.encodeIfPresent(groupV2Identifier, forKey: .groupV2Identifier) + } + + public init(from decoder: Decoder) throws { + let values = try decoder.container(keyedBy: CodingKeys.self) + + let lastReadMessageServerTimestampInMilliseconds = try values.decode(Int64.self, forKey: .lastReadMessageServerTimestamp) + self.lastReadMessageServerTimestamp = Date(epochInMs: lastReadMessageServerTimestampInMilliseconds) + + let oneToOneIdentifier = try values.decodeIfPresent(OneToOneIdentifierJSON.self, forKey: .oneToOneIdentifier) + + let groupUidRaw = try values.decodeIfPresent(Data.self, forKey: .groupUid) + let groupOwnerIdentity = try values.decodeIfPresent(Data.self, forKey: .groupOwner) + + let groupV2Identifier = try values.decodeIfPresent(Data.self, forKey: .groupV2Identifier) + + if let oneToOneIdentifier { + self.oneToOneIdentifier = oneToOneIdentifier self.groupV1Identifier = nil self.groupV2Identifier = nil + } else if let groupUidRaw = groupUidRaw, + let groupOwnerIdentity = groupOwnerIdentity, + let groupUid = UID(uid: groupUidRaw), + let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) { + self.oneToOneIdentifier = nil + self.groupV1Identifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) + self.groupV2Identifier = nil + } else if let groupV2Identifier = groupV2Identifier { + self.oneToOneIdentifier = nil + self.groupV1Identifier = nil + self.groupV2Identifier = groupV2Identifier + } else { + throw ObvError.noDiscussionWasSpecified } } + enum ObvError: LocalizedError { + case noDiscussionWasSpecified + case couldNotDetermineDiscussionIdentifier + case doesNotReferenceReceivedMessage + } + } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ContactsSortOrder.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ContactsSortOrder+Utils.swift similarity index 93% rename from Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ContactsSortOrder.swift rename to Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ContactsSortOrder+Utils.swift index c22fde0f..0c12bdbe 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ContactsSortOrder.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ContactsSortOrder+Utils.swift @@ -18,10 +18,10 @@ */ import Foundation +import ObvSettings -public enum ContactsSortOrder: Int, CaseIterable { - case byFirstName = 0 - case byLastName = 1 + +extension ContactsSortOrder { func computeNormalizedSortAndSearchKey(customDisplayName: String?, firstName: String?, lastName: String?, position: String?, company: String?) -> String { @@ -40,6 +40,5 @@ public enum ContactsSortOrder: Int, CaseIterable { .folding(options: [.diacriticInsensitive, .caseInsensitive, .widthInsensitive], locale: .current) }).joined(separator: "_") } - } diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ObvDisplayNameStyle.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ObvDisplayNameStyle.swift deleted file mode 100644 index 76f25ac1..00000000 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ObvDisplayNameStyle.swift +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import ObvTypes - -public enum DisplayNameStyle { - - case firstNameThenLastName - case positionAtCompany - case full - case short -} - -public extension ObvIdentityCoreDetails { - - func getDisplayNameWithStyle(_ style: DisplayNameStyle) -> String { - switch style { - case .firstNameThenLastName: - let _firstName = firstName ?? "" - let _lastName = lastName ?? "" - return [_firstName, _lastName].joined(separator: " ").trimmingCharacters(in: .whitespacesAndNewlines) - - case .positionAtCompany: - return positionAtCompany() - - case .full: - let firstNameThenLastName = getDisplayNameWithStyle(.firstNameThenLastName) - if let positionAtCompany = getDisplayNameWithStyle(.positionAtCompany).mapToNilIfZeroLength() { - return [firstNameThenLastName, "(\(positionAtCompany))"].joined(separator: " ") - } else { - return firstNameThenLastName - } - - case .short: - return firstName ?? lastName ?? "" - } - } -} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ObvUTIUtils.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ObvUTIUtils.swift deleted file mode 100644 index 280ca4a9..00000000 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/ObvUTIUtils.swift +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import MobileCoreServices -import UniformTypeIdentifiers - - -public final class ObvUTIUtils { - - public static let kUTTypeOlvidBackup = "io.olvid.type.olvidbackup" as CFString - - public enum TagClass { - case FilenameExtension - case MIMEType - - fileprivate var cfString: CFString { - switch self { - case .FilenameExtension: - return kUTTagClassFilenameExtension - case .MIMEType: - return kUTTagClassMIMEType - } - } - } - - public static func utiOfFile(atURL url: URL) -> String? { - let fileExtension = url.pathExtension - return utiOfFile(withExtension: fileExtension) - } - - - static func utiOfFile(withExtension fileExtension: String) -> String? { - guard !fileExtension.isEmpty else { return nil } - guard let utiFromExtension = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, fileExtension as CFString, nil)?.takeRetainedValue() else { return nil } - return String(utiFromExtension) - } - - public static func utiOfFile(withName fileName: String) -> String? { - let fileExtension = NSString.init(string: fileName).pathExtension - return utiOfFile(withExtension: fileExtension) - } - - public static func preferredTagWithClass(inUTI uti: String, inTagClass tagClass: TagClass) -> String? { - guard let _tag = UTTypeCopyPreferredTagWithClass(uti as CFString, tagClass.cfString) else { return nil } - let tag = _tag.takeRetainedValue() - return String(tag) - } - - - static func utiOfMIMEType(_ mimeType: String) -> String? { - guard let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, mimeType as CFString, nil)?.takeRetainedValue() else { return nil } - return String(uti) - } - - static func preferredMIMEType(forUTI uti: String) -> String? { - let _tag = UTTypeCopyPreferredTagWithClass(uti as CFString, kUTTagClassMIMEType)! - let tag = _tag.takeRetainedValue() - return String(tag) - } - - - public static func uti(_ uti: String, conformsTo conformingUTI: CFString) -> Bool { - return UTTypeConformsTo(uti as CFString, conformingUTI) - } - - - public static func jpegExtension() -> String { - let _tag = UTTypeCopyPreferredTagWithClass(kUTTypeJPEG, kUTTagClassFilenameExtension)! - let tag = _tag.takeRetainedValue() - return String(tag) - } - - - public static func pngExtension() -> String { - let _tag = UTTypeCopyPreferredTagWithClass(kUTTypePNG, kUTTagClassFilenameExtension)! - let tag = _tag.takeRetainedValue() - return String(tag) - } - - static func pdfExtension() -> String { - let _tag = UTTypeCopyPreferredTagWithClass(kUTTypePDF, kUTTagClassFilenameExtension)! - let tag = _tag.takeRetainedValue() - return String(tag) - } - - public static func guessUTIOfBinaryFile(atURL url: URL) -> String? { - - let jpegPrefix = Data([0xff, 0xd8]) - let pngPrefix = Data([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A]) - let pdfPrefix = Data([0x25, 0x50, 0x44, 0x46, 0x2D]) - let mp4Signatures = ["ftyp", "mdat", "moov", "pnot", "udta", "uuid", "moof", "free", "skip", "jP2 ", "wide", "load", "ctab", "imap", "matt", "kmat", "clip", "crgn", "sync", "chap", "tmcd", "scpt", "ssrc", "PICT"].map { Data([UInt8]($0.utf8)) } - - guard let fileData = try? Data(contentsOf: url) else { - return nil - } - - if fileData.starts(with: jpegPrefix) { - return kUTTypeJPEG as String - } else if fileData.starts(with: pngPrefix) { - return kUTTypePNG as String - } else if fileData.starts(with: pdfPrefix) { - return kUTTypePDF as String - } else if mp4Signatures.contains(fileData.advanced(by: 4)[0..<4]) { - return kUTTypeMPEG4 as String - } else { - return nil - } - - } - - - public static func getHumanReadableType(forUTI uti: String) -> String? { - switch uti { - case String(kUTTypeGIF): return "GIF" - case String(kUTTypeJPEG): return "JPEG" - case String(kUTTypeBMP): return "BMP" - case String(kUTTypePDF): return "PDF" - case String(kUTTypePNG): return "PNG" - case String(kUTTypeRTF): return "RTF" - case String(kUTTypeData): return "Data" - case String(kUTTypeZipArchive): return "Zip" - case "org.openxmlformats.wordprocessingml.document": return "Word" - default: return nil - } - } -} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/UTType+Extension.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/UTType+Extension.swift new file mode 100644 index 00000000..6cc701db --- /dev/null +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/Utils/UTType+Extension.swift @@ -0,0 +1,47 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import MobileCoreServices +import UniformTypeIdentifiers + + +// MARK: - Declaring the UTType for Olvid's backup files + +extension UTType { + + /// The type for Olvid's backup files. Since we created this type, we export it. + /// See https://developer.apple.com/videos/play/tech-talks/10696 + public static let olvidBackup = UTType(exportedAs: "io.olvid.type.olvidbackup") + + public struct OpenXML { + public static let docx = UTType("org.openxmlformats.wordprocessingml.document") ?? .utf8PlainText + public static let pptx = UTType("org.openxmlformats.presentationml.presentation") ?? .presentation + public static let xlsx = UTType("org.openxmlformats.spreadsheetml.sheet") ?? .spreadsheet + } + + // Since we don't own the type and the system doesn't declare it, we added this type as an imported type identifier. + public static let doc = UTType(exportedAs: "com.microsoft.word.doc") + + public static let m4a = UTType(exportedAs: "com.apple.m4a-audio") + + // The sytem declares com.apple.internet-location but performing a drag and drop of a web location resulted in the following type. Since we don't own the type and the system doesn't declare it, we added this type as an imported type identifier. + public static let webInternetLocation = UTType(exportedAs: "com.apple.web-internet-location") + +} diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/VoIP/JSON Messages/WebRTCMessageJSON.swift b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/VoIP/JSON Messages/WebRTCMessageJSON.swift index 53d4adb1..1369ddd8 100644 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/VoIP/JSON Messages/WebRTCMessageJSON.swift +++ b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/VoIP/JSON Messages/WebRTCMessageJSON.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -34,6 +34,7 @@ public struct WebRTCMessageJSON: Codable { case kick = 9 case newIceCandidate = 10 case removeIceCandidates = 11 + case answeredOrRejectedOnOtherDevice = 12 public var description: String { switch self { @@ -49,12 +50,13 @@ public struct WebRTCMessageJSON: Codable { case .kick: return "kick" case .newIceCandidate: return "newIceCandidate" case .removeIceCandidates: return "removeIceCandidates" + case .answeredOrRejectedOnOtherDevice: return "answeredOrRejectedOnOtherDevice" } } public var isAllowedToBeRelayed: Bool { switch self { - case .startCall, .answerCall, .rejectCall, .ringing, .busy, .kick: + case .startCall, .answerCall, .rejectCall, .ringing, .busy, .kick, .answeredOrRejectedOnOtherDevice: return false case .hangedUp, .reconnect, .newParticipantOffer, .newParticipantAnswer, .newIceCandidate, .removeIceCandidates: return true diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/en.lproj/Localizable.strings b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/en.lproj/Localizable.strings deleted file mode 100644 index a2fec654..00000000 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/en.lproj/Localizable.strings +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2023 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -"No message yet." = "No message yet."; - -"Mark all as read" = "Mark all as read"; - -"count attachments" = "count attachments"; - -"Latest Discussions" = "Latest"; - -"UNREAD_EPHEMERAL_MESSAGE" = "Unread ephemeral message"; - -"MESSAGE_WAS_WIPED" = "Last message was wiped 🧹"; - -"LAST_MESSAGE_WAS_REMOTELY_WIPED" = "Last message was remotely wiped"; - -"Default" = "Default"; - -"Unlimited" = "Unlimited"; - -"SIX_HOUR" = "6 hours"; - -"TWELVE_HOURS" = "12 hours"; - -"ONE_DAY" = "1 day"; - -"TWO_DAYS" = "2 days"; - -"SEVEN_DAYS" = "7 days"; - -"FIFTEEN_DAYS" = "15 days"; - -"THIRTY_DAYS" = "30 days"; - -"NINETY_DAYS" = "90 days"; - -"ONE_HUNDRED_AND_HEIGHTY_DAYS" = "180 days"; - -"ONE_YEAR" = "1 year"; - -"THREE_YEAR" = "3 years"; - -"FIVE_YEAR" = "5 years"; - -"YOU_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE" = "You took a screenshot of a sensitive message, other participants have been notified."; - -"CONTACT_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE_%@" = "%@ took a screenshot of a sensitive message."; - -"CONTACT_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE_WHEN_CONTACT_IS_UNKNOWN" = "A participant took a screenshot of a sensitive message."; - -"YOU_ARE_NOW_PART_OF_THE_ADMINISTRATORS_OF_THIS_GROUP_V2" = "You are now a group administrator 😎."; - -"YOU_ARE_NO_LONGER_PART_OF_THE_ADMINISTRATORS_OF_THIS_GROUP_V2" = "You are no longer a group administrator."; - -"MEMBERS_OF_GROUP_V2_WERE_UPDATED_SYSTEM_MESSAGE" = "Group members have been updated. Tap to learn more."; - -/* System message displayed within a group discussion */ -"%@_ACCEPTED_TO_JOIN_THIS_GROUP_AT_%@" = "%@ has joined this group - %@"; - -"%@_ACCEPTED_TO_JOIN_THIS_GROUP" = "%@ has joined this group"; - -/* System message displayed within a group discussion */ -"%@_LEFT_THIS_GROUP_AT_%@" = "%@ left this group - %@"; - -"%@_LEFT_THIS_GROUP" = "%@ left this group"; - -/* System message displayed at the top of each conversation. */ -"Messages posted in this discussion are protected using end-to-end encryption. Their confidentiality, their authenticity, and the identity of their sender are guaranteed through cryptography." = "🔒 Messages posted in this discussion are protected using end-to-end encryption. Their confidentiality, their authenticity, and the identity of their sender are guaranteed through cryptography."; - -/* System message displayed within a group discussion */ -"This contact was deleted from your contacts, either because you did or because this contact deleted you." = "This contact was deleted from your Olvid contacts, either because you did or because this contact deleted you from their own contacts."; - -"FROM_%@" = "from %@"; - -"WITH_%@" = "with %@"; - -"AND_ONE_OTHER" = "and one other"; - -"AND_%@_OTHERS" = "and %@ others"; - -"MISSED_CALL" = "Missed Call"; - -"MISSED_CALL_FILTERED" = "Missed call while you were in \"Focus\" mode."; - -"ACCEPTED_OUTGOING_CALL" = "Outgoing call"; - -"ACCEPTED_INCOMING_CALL" = "Incoming call"; - -"REJECTED_OUTGOING_CALL" = "Rejected outgoing call"; - -"REJECTED_INCOMING_CALL" = "Rejected incoming call"; - -"BUSY_OUTGOING_CALL" = "Busy outgoing call"; - -"UNANSWERED_OUTGOING_CALL" = "Unanswered outgoing call"; - -"UNCOMPLETED_OUTGOING_CALL" = "Uncompleted outgoing call"; - -"ANY_INCOMING_CALL" = "Incoming call..."; - -"ANY_OUTGOING_CALL" = "Outgoing call..."; - -"CONTACT_REVOKED_BY_COMPANY_IDENTITY_PROVIDER" = "Contact revoked by your company's identity provider"; - -"NOT_PART_OF_THE_GROUP_ANYMORE" = "You are not part of this group anymore, either because you left it, because an administrator removed you, or because the group was deleted 🥲."; - -"REJOINED_GROUP" = "You are again part of this group ✌️."; - -"CONTACT_%@_IS_ONE_TO_ONE_AGAIN" = "%@ is part of your contacts again, you can continue your discussion where you left off 🤗."; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_UNDETERMINED" = "The incoming call was rejected because Olvid is not allowed to access the microphone. Please tap on this message to allow Olvid to access the Microphone."; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_GRANTED" = "The incoming call was rejected because Olvid was not allowed to access the Microphone. Fortunately, since then, this autorisation was granted. You won't miss a call again 🥳!"; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_DENIED" = "The incoming call was rejected because Olvid is not allowed to access the Microphone. To never miss a call again, please go to Settings and grant Olvid access to the microphone."; - -"REJECTED_INCOMING_CALL" = "Rejected incoming call"; - -"DISCUSSION_SHARED_SETTINGS_WERE_UPDATED" = "Discussion shared settings were updated"; - -"This discussion was remotely wiped by %@ on %@" = "This discussion was remotely wiped by %@ on %@"; - -"This discussion was remotely wiped by %@" = "This discussion was remotely wiped by %@"; - -"NO_SOUNDS" = "None"; - -"SYSTEM_SOUND" = "System sound"; - -"CALL_STATE_NEW" = "New call..."; - -"CALL_STATE_GETTING_TURN_CREDENTIALS" = "Authentication..."; - -"CALL_STATE_KICKED" = "Excluded"; - -"CALL_STATE_INITIALIZING_CALL" = "Initializing call..."; - -"CALL_STATE_RINGING" = "Ringing..."; - -"CALL_STATE_CALL_REJECTED" = "Call rejected"; - -"SECURE_CALL_IN_PROGRESS" = "Secure call in progress"; - -"CALL_STATE_HANGED_UP" = "Hanged up"; - -"CALL_STATE_PERMISSION_DENIED_BY_SERVER" = "Connection denied by the server"; - -"UNANSWERED" = "Unanswered"; - -"CALL_INITIALISATION_NOT_SUPPORTED" = "Secure calls are not supported"; - -"CALL_FAILED" = "Call failed 😟"; - -"ONE_HOUR" = "1 hour"; - -"EIGHT_HOURS" = "8 hours"; - -"SEVEN_DAYS" = "7 days"; - -"INDEFINITELY" = "indefinitely"; - -/* Can serve as a name in the sentence \"%@ accepted to join this group\" */ -"A (now deleted) contact" = "Deleted contact"; - -"Read" = "Read"; - -"Wiped" = "Wiped"; - -"Remotely wiped" = "Remotely wiped"; - -"Edited" = "Edited"; diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/en.lproj/Localizable.stringsdict b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/en.lproj/Localizable.stringsdict deleted file mode 100644 index 1e7a2e86..00000000 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/en.lproj/Localizable.stringsdict +++ /dev/null @@ -1,60 +0,0 @@ - - - - - count new messages - - NSStringLocalizedFormatKey - %#@VARIABLE@ - VARIABLE - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - No new message - one - 1 new message - other - %u new messages - - - count attachments - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - No attachment - one - One attachment - other - %u attachments - - - WITH_N_PARTICIPANTS - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - without any participant - one - with one participant - other - with %u participants - - - - diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/fr.lproj/Localizable.strings b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/fr.lproj/Localizable.strings deleted file mode 100644 index f617ea98..00000000 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/fr.lproj/Localizable.strings +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2023 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -"No message yet." = "Aucun message pour le moment."; - -"Mark all as read" = "Tout marquer comme lu"; - -"count attachments" = "count attachments"; - -"Latest Discussions" = "Récentes"; - -"UNREAD_EPHEMERAL_MESSAGE" = "Message éphémère non lu"; - -"MESSAGE_WAS_WIPED" = "Dernier message expiré 🧹"; - -"LAST_MESSAGE_WAS_REMOTELY_WIPED" = "Dernier message éliminé à distance"; - -"Default" = "Par défaut"; - -"Unlimited" = "Illimité"; - -"SIX_HOUR" = "6 heures"; - -"TWELVE_HOURS" = "12 heures"; - -"ONE_DAY" = "1 jour"; - -"TWO_DAYS" = "2 jours"; - -"SEVEN_DAYS" = "7 jours"; - -"FIFTEEN_DAYS" = "15 jours"; - -"THIRTY_DAYS" = "30 jours"; - -"NINETY_DAYS" = "90 jours"; - -"ONE_HUNDRED_AND_HEIGHTY_DAYS" = "180 jours"; - -"ONE_YEAR" = "1 an"; - -"THREE_YEAR" = "3 ans"; - -"FIVE_YEAR" = "5 ans"; - -"YOU_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE" = "Vous avez fait une capture d'un message sensible, les participants de cette discussion ont été notifiés."; - -"CONTACT_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE_%@" = "%@ a fait une capture d'un message sensible."; - -"CONTACT_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE_WHEN_CONTACT_IS_UNKNOWN" = "Un particpant a fait une capture d'un message sensible."; - -"YOU_ARE_NOW_PART_OF_THE_ADMINISTRATORS_OF_THIS_GROUP_V2" = "Vous êtes maintenant un administrateur de ce groupe 😎."; - -"YOU_ARE_NO_LONGER_PART_OF_THE_ADMINISTRATORS_OF_THIS_GROUP_V2" = "Vous n'êtes plus administrateur de ce groupe."; - -"MEMBERS_OF_GROUP_V2_WERE_UPDATED_SYSTEM_MESSAGE" = "Les membres du groupe ont été mis à jour. Touchez pour en savoir plus."; - -/* System message displayed within a group discussion */ -"%@_ACCEPTED_TO_JOIN_THIS_GROUP_AT_%@" = "%@ a rejoint ce groupe - %@"; - -"%@_ACCEPTED_TO_JOIN_THIS_GROUP" = "%@ a rejoint ce groupe"; - -/* System message displayed within a group discussion */ -"%@_LEFT_THIS_GROUP_AT_%@" = "%@ a quitté ce groupe - %@"; - -"%@_LEFT_THIS_GROUP" = "%@ a quitté ce groupe"; - -/* System message displayed at the top of each conversation. */ -"Messages posted in this discussion are protected using end-to-end encryption. Their confidentiality, their authenticity, and the identity of their sender are guaranteed through cryptography." = "🔒 Les messages postés dans cette discussion sont protégés par du chiffrement de bout-en-bout. Leur confidentialité, leur authenticité et l'identité de leur expéditeur sont garanties grâce à la cryptographie."; - -/* System message displayed within a group discussion */ -"This contact was deleted from your contacts, either because you did or because this contact deleted you." = "Ce contact a été supprimé de vos contacts Olvid, soit par vous-même, soit parce que ce contact vous a supprimé de ses propres contacts."; - -"FROM_%@" = "de %@"; - -"WITH_%@" = "avec %@"; - -"AND_ONE_OTHER" = "et un autre"; - -"AND_%@_OTHERS" = "et %@ autres"; - -"MISSED_CALL" = "Appel manqué"; - -"MISSED_CALL_FILTERED" = "Appel manqué alors que vous étiez en mode « Concentration »."; - -"ACCEPTED_OUTGOING_CALL" = "Appel sortant"; - -"ACCEPTED_INCOMING_CALL" = "Appel entrant"; - -"REJECTED_OUTGOING_CALL" = "Appel sortant rejeté"; - -"REJECTED_INCOMING_CALL" = "Appel entrant rejeté"; - -"BUSY_OUTGOING_CALL" = "Appel sortant occupé"; - -"UNANSWERED_OUTGOING_CALL" = "Appel sortant sans réponse"; - -"UNCOMPLETED_OUTGOING_CALL" = "Appel sortant non abouti"; - -"ANY_INCOMING_CALL" = "Appel entrant..."; - -"ANY_OUTGOING_CALL" = "Appel sortant..."; - -"CONTACT_REVOKED_BY_COMPANY_IDENTITY_PROVIDER" = "Contact revoqué par le fournisseur d'identités de votre société"; - -"NOT_PART_OF_THE_GROUP_ANYMORE" = "Vous ne faites plus partie de ce groupe, parce que vous l'avez quitté, parce qu'un administrateur vous a retiré du groupe, ou tout simplement parce que le groupe a été supprimé 🥲."; - -"REJOINED_GROUP" = "Vous faites à nouveau partie du groupe ✌️"; - -"CONTACT_%@_IS_ONE_TO_ONE_AGAIN" = "%@ fait à nouveau partie de vos contacts, vous pouvez reprendre la discussion là où vous l'aviez laissée 🤗."; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_UNDETERMINED" = "L'appel entrant n'a pas abouti car Olvid n'a pas l'autorisation d'accéder au micro. Cliquez sur ce message pour autoriser l'accès au micro."; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_GRANTED" = "L'appel entrant n'a pas abouti car Olvid n'avait pas l'autorisation d'accéder au micro. Fort heureusement, l'autorisation a été accordée. Vous ne raterez plus aucun appel 🥳 !"; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_DENIED" = "L'appel entrant n'a pas abouti car Olvid n'a pas l'autorisation d'accéder au micro. Pour ne plus rater d'appel, allez dans les Réglages et autorisez l'accès au micro pour Olvid."; - -"REJECTED_INCOMING_CALL" = "Appel entrant rejeté"; - -"DISCUSSION_SHARED_SETTINGS_WERE_UPDATED" = "Les paramètres partagés de la discussion ont été mis à jour"; - -"This discussion was remotely wiped by %@ on %@" = "Cette discussion a été effacée à distance par %@ le %@"; - -"This discussion was remotely wiped by %@" = "Cette discussion a été effacée à distance par %@"; - -"NO_SOUNDS" = "Aucun"; - -"SYSTEM_SOUND" = "Son système"; - -"CALL_STATE_NEW" = "Nouvel appel..."; - -"CALL_STATE_GETTING_TURN_CREDENTIALS" = "Authentification..."; - -"CALL_STATE_KICKED" = "Exclue"; - -"CALL_STATE_INITIALIZING_CALL" = "Initialisation de l'appel..."; - -"CALL_STATE_RINGING" = "Sonnerie..."; - -"CALL_STATE_CALL_REJECTED" = "Appel refusé"; - -"SECURE_CALL_IN_PROGRESS" = "Appel sécurisé en cours"; - -"CALL_STATE_HANGED_UP" = "Appel raccroché"; - -"CALL_STATE_PERMISSION_DENIED_BY_SERVER" = "Connexion refusée par le serveur"; - -"UNANSWERED" = "Sans réponse"; - -"CALL_INITIALISATION_NOT_SUPPORTED" = "Appels non supportés"; - -"CALL_FAILED" = "L'appel a échoué 😟"; - -"ONE_HOUR" = "1 heure"; - -"EIGHT_HOURS" = "8 heures"; - -"SEVEN_DAYS" = "7 jours"; - -"INDEFINITELY" = "Indéfiniment"; - -/* Can serve as a name in the sentence \"%@ accepted to join this group\" */ -"A (now deleted) contact" = "Contact supprimé"; - -"Read" = "Lu"; - -"Wiped" = "Expiré"; - -"Remotely wiped" = "Éliminé à distance"; - -"Edited" = "Modifié"; diff --git a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/fr.lproj/Localizable.stringsdict b/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/fr.lproj/Localizable.stringsdict deleted file mode 100644 index 13ed3a7f..00000000 --- a/Modules/OlvidUI/ObvUICoreData/ObvUICoreData/fr.lproj/Localizable.stringsdict +++ /dev/null @@ -1,340 +0,0 @@ - - - - - You are about to introduce X to Y and count other contacts. - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Vous allez présenter %2$@ à %3$@. - one - Vous allez présenter %2$@ à %3$@ et un autre contact. - other - Vous allez présenter %2$@ à %3$@ et %1$d autres contacts. - - - You successfully introduced X to Y and count other contacts. - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Vous avez présenté %2$@ à %3$@. - one - Vous avez présenté %2$@ à %3$@ et un autre contact. - other - Vous avez présenté %2$@ à %3$@ et %1$d autres contacts. - - - see count attachments - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - → Voir la pièce jointe - other - → Voir les %u pièces jointes - zero - Aucune pièce jointe - - - count new messages - - NSStringLocalizedFormatKey - %#@VARIABLE@ - VARIABLE - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - 1 nouveau message - other - %u nouveaux messages - zero - Aucun nouveau message - - - count attachments - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - Une pièce jointe - other - %u pièces jointes - zero - Aucune pièce jointe - - - share count photos - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - Partager la photo - other - Partager les %u photos - zero - Aucune photo à partager - - - share count attachments - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Aucune pièce jointe - one - Partager la pièce jointe - other - Partager les %u pièces jointes - - - You are about to delete a message together with its count attachments - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Vous vous apprêtez à supprimer un message. - one - Vous vous apprêtez à supprimer un message et sa pièce jointe. - other - Vous vous apprêtez à supprimer un message et ses %d pièces jointes. - - - recent backups count - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Aucune sauvegarde - one - Une sauvegarde - other - %u sauvegardes les plus récentes - - - backups count - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Aucune sauvegarde - one - Une sauvegarde - other - %u sauvegardes - - - missed messages count - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - 1 message manquant - other - %u messages manquants - - - clean in progress count - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Pas de sauvegardes supprimées - one - Une sauvegarde supprimée - other - %u sauvegardes supprimées - - - KEYCLOAK_MISSING_SEARCH_RESULT - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - Un résultat supplémentaire est disponible. Veuillez affiner votre recherche. - other - %u résultats supplémentaires sont disponibles. Veuillez affiner votre recherche. - - - AUTO_ACCEPT_GROUP_INVITATIONS_ALERT_MESSAGE - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - Pour changer ce paramètre, vous devez accepter une invitation de groupe en attente. - other - Pour changer ce paramètre, vous devez accepter %u invitations de groupe en attente. - - - AUTO_ACCEPT_GROUP_INVITATIONS_ALERT_ACCEPT_ACTION_TITLE - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - Accepter l'invitation de groupe maintenant - other - Accepter les %u invitations de groupe maintenant - - - CHOOSE_OR_NUMBER_OF_CHOSEN_DISCUSSION - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - choisir - one - une sélectionnée - other - %u sélectionnées - - - NUMBER_OF_ITEMS_SELECTED - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Sélectionner des éléments - one - 1 élément sélectionné - other - %u éléments sélectionnés - - - NUMBER_OF_ELEMENTS - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Aucun élément - one - 1 élément - other - %u éléments - - - WITH_N_PARTICIPANTS - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - sans aucun participant - one - avec un participant - other - avec %u participants - - - - diff --git a/Modules/OlvidUtils/OlvidUtils/CoreDataUtils/NSManagedObjectContext+PerformAndWaitWithReturnType.swift b/Modules/OlvidUtils/OlvidUtils/CoreDataUtils/NSManagedObjectContext+PerformAndWaitWithReturnType.swift deleted file mode 100644 index 559564d5..00000000 --- a/Modules/OlvidUtils/OlvidUtils/CoreDataUtils/NSManagedObjectContext+PerformAndWaitWithReturnType.swift +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2023 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData.NSManagedObjectContext - -public extension NSManagedObjectContext { - - /// Helper method that wraps around `NSManagedObjectContext.performAndWait(_:)` if we're on iOS 15+ - func obvPerformAndWait(_ block: () -> T) -> T { - if #available(iOS 15, *) { - return performAndWait(block) - } else { - var result: T! - - performAndWait { () -> Void in - result = block() - } - - return result - } - } - - /// Helper method that wraps around `NSManagedObjectContext.performAndWait(_:)` if we're on iOS 15+ - func obvPerformAndWait(_ block: () throws -> T) throws -> T { - if #available(iOS 15, *) { - return try performAndWait(block) - } else { - var result: Result! - - performAndWait { () -> Void in - result = .init(catching: block) - } - - return try result.get() - } - } -} diff --git a/Modules/OlvidUtils/OlvidUtils/CoreDataUtils/NSPredicate+Initializers.swift b/Modules/OlvidUtils/OlvidUtils/CoreDataUtils/NSPredicate+Initializers.swift index 5dc78c90..eaee59ff 100644 --- a/Modules/OlvidUtils/OlvidUtils/CoreDataUtils/NSPredicate+Initializers.swift +++ b/Modules/OlvidUtils/OlvidUtils/CoreDataUtils/NSPredicate+Initializers.swift @@ -108,6 +108,14 @@ public extension NSPredicate { self.init(format: "%K < %@", rawKey, date as NSDate) } + convenience init(_ key: T, earlierOrAt date: Date) where T.RawValue == String { + self.init(key.rawValue, earlierOrAt: date) + } + + convenience init(_ rawKey: String, earlierOrAt date: Date) { + self.init(format: "%K <= %@", rawKey, date as NSDate) + } + convenience init(_ key: T, earlierOrEqualTo date: Date) where T.RawValue == String { self.init(key.rawValue, earlierOrEqualTo: date) } diff --git a/Modules/OlvidUtils/OlvidUtils/CoreDataUtils/ObvContext.swift b/Modules/OlvidUtils/OlvidUtils/CoreDataUtils/ObvContext.swift index 49d4172c..2294c993 100644 --- a/Modules/OlvidUtils/OlvidUtils/CoreDataUtils/ObvContext.swift +++ b/Modules/OlvidUtils/OlvidUtils/CoreDataUtils/ObvContext.swift @@ -112,16 +112,10 @@ public final class ObvContext: Hashable { } - func makeAssertionChecks() { - assert(contextDidSaveCompletionHandlers.isEmpty) - } - deinit { if let token { NotificationCenter.default.removeObserver(token) } - assert(contextDidSaveCompletionHandlers.isEmpty) - assert(endOfScopeCompletionHandlers.isEmpty) } private func performAllContextWillSaveCompletionHandlers() { diff --git a/Modules/OlvidUtils/OlvidUtils/Operations/AsyncOperationWithSpecificReasonForCancel.swift b/Modules/OlvidUtils/OlvidUtils/Operations/AsyncOperationWithSpecificReasonForCancel.swift new file mode 100644 index 00000000..6147a8a4 --- /dev/null +++ b/Modules/OlvidUtils/OlvidUtils/Operations/AsyncOperationWithSpecificReasonForCancel.swift @@ -0,0 +1,60 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation + + +open class AsyncOperationWithSpecificReasonForCancel: OperationWithSpecificReasonForCancel { + + + private var _isFinished = false { + willSet { willChangeValue(for: \.isFinished) } + didSet { didChangeValue(for: \.isFinished) } + } + + + final public override var isFinished: Bool { _isFinished } + + + final public override func cancel(withReason reason: ReasonForCancelType) { + super.cancel(withReason: reason) + _isFinished = true + } + + + final public func finish() { + _isFinished = true + } + + + final public override func main() { + Task { + await main() + } + } + + /// This method is the one to override in subclasses, instead of the ``main()`` method. + /// The override *must* call either ``finish()`` or ``cancel(withReason:)`` in order to finish this operation (and preventing a potential deadlock if the queue is a serial queue). + open func main() async { + // Expected to be overridden in subclasses + assertionFailure("Expected to be overridden in subclasses") + return finish() + } + +} diff --git a/Modules/OlvidUtils/OlvidUtils/Operations/Composition/CompositionOfFiveContextualOperations.swift b/Modules/OlvidUtils/OlvidUtils/Operations/Composition/CompositionOfFiveContextualOperations.swift index c361621b..f29f3969 100644 --- a/Modules/OlvidUtils/OlvidUtils/Operations/Composition/CompositionOfFiveContextualOperations.swift +++ b/Modules/OlvidUtils/OlvidUtils/Operations/Composition/CompositionOfFiveContextualOperations.swift @@ -119,7 +119,6 @@ public final class CompositionOfFiveContextualOperations let queueForComposedOperations: OperationQueue + public private(set) var executionStartDate: Date? public init(op1: ContextualOperationWithSpecificReasonForCancel, contextCreator: ObvContextCreator, queueForComposedOperations: OperationQueue, log: OSLog, flowId: FlowIdentifier) { self.contextCreator = contextCreator @@ -46,10 +47,13 @@ public final class CompositionOfOneContextualOperation took %f seconds", log: log, type: .info, op1Description, duration) + } + } + } diff --git a/Modules/OlvidUtils/OlvidUtils/Operations/Composition/CompositionOfThreeContextualOperations.swift b/Modules/OlvidUtils/OlvidUtils/Operations/Composition/CompositionOfThreeContextualOperations.swift index 5b0702d9..33e3d415 100644 --- a/Modules/OlvidUtils/OlvidUtils/Operations/Composition/CompositionOfThreeContextualOperations.swift +++ b/Modules/OlvidUtils/OlvidUtils/Operations/Composition/CompositionOfThreeContextualOperations.swift @@ -94,7 +94,6 @@ public final class CompositionOfThreeContextualOperations: OperationWithSpecificReasonForCancel, ContextualOperation { +open class ContextualOperationWithSpecificReasonForCancel: OperationWithSpecificReasonForCancel, ContextualOperation, ObvErrorMaker { + + public static var errorDomain: String { String(describing: self) } public var obvContext: ObvContext? public var viewContext: NSManagedObjectContext? @@ -38,4 +40,25 @@ open class ContextualOperationWithSpecificReasonForCancel" } + final public override func main() { + guard let obvContext else { + assertionFailure() + self.cancel() + return + } + guard let viewContext else { + assertionFailure() + self.cancel() + return + } + obvContext.performAndWait { + main(obvContext: obvContext, viewContext: viewContext) + } + } + + /// This method is the one to override in subclasses, instead of the ``main()`` method. It is executed on a thread that is appropriate for the `ObvContext`. + open func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + // Expected to be overridden in subclasses + } + } diff --git a/Modules/OlvidUtils/OlvidUtils/Operations/OperationQueue+addAndAwaitOperation.swift b/Modules/OlvidUtils/OlvidUtils/Operations/OperationQueue+addAndAwaitOperation.swift new file mode 100644 index 00000000..3672f53d --- /dev/null +++ b/Modules/OlvidUtils/OlvidUtils/Operations/OperationQueue+addAndAwaitOperation.swift @@ -0,0 +1,45 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation + + +extension OperationQueue { + + /// Adds the specified operation to the queue and wait until the operation is finished. + public func addAndAwaitOperation(_ op: Operation) async { + await withCheckedContinuation { (continuation: CheckedContinuation) in + let currentCompletion = op.completionBlock + op.completionBlock = { + continuation.resume() + currentCompletion?() + } + self.addOperation(op) + } + } + + /// Adds the specified operations to the queue and wait until the operations are finished. + public func addAndAwaitOperations(_ ops: [Operation]) async { + await withCheckedContinuation { (continuation: CheckedContinuation) in + self.addOperations(ops, waitUntilFinished: true) + continuation.resume() + } + } + +} diff --git a/Modules/OlvidUtils/OlvidUtils/Operations/OperationWithSpecificReasonForCancel.swift b/Modules/OlvidUtils/OlvidUtils/Operations/OperationWithSpecificReasonForCancel.swift index 111d7b2a..d1bc9b23 100644 --- a/Modules/OlvidUtils/OlvidUtils/Operations/OperationWithSpecificReasonForCancel.swift +++ b/Modules/OlvidUtils/OlvidUtils/Operations/OperationWithSpecificReasonForCancel.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -69,19 +69,16 @@ public protocol LocalizedErrorWithLogType: LocalizedError { public enum CoreDataOperationReasonForCancel: LocalizedErrorWithLogType { case coreDataError(error: Error) - case contextIsNil public var logType: OSLogType { switch self { - case .coreDataError, .contextIsNil: + case .coreDataError: return .fault } } public var errorDescription: String? { switch self { - case .contextIsNil: - return "Context is nil" case .coreDataError(error: let error): return "Core Data error: \(error.localizedDescription)" } diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/SwiftUIUtils.swift b/Modules/OlvidUtils/OlvidUtils/SwiftUI/SwiftUIUtils.swift similarity index 56% rename from iOSClient/ObvMessenger/ObvMessenger/UIElements/SwiftUIUtils.swift rename to Modules/OlvidUtils/OlvidUtils/SwiftUI/SwiftUIUtils.swift index c7768f10..56a2d198 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/SwiftUIUtils.swift +++ b/Modules/OlvidUtils/OlvidUtils/SwiftUI/SwiftUIUtils.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,36 +20,9 @@ import SwiftUI -extension List { - - @ViewBuilder - func obvListStyle() -> some View { - if #available(iOS 15.0, *) { - self.listStyle(InsetGroupedListStyle()) - } else { - self.listStyle(DefaultListStyle()) - } - } - -} - - - -struct ObvProgressView: View { - var body: some View { - if #available(iOS 14, *) { - ProgressView() - } else { - ObvActivityIndicator(isAnimating: .constant(true), style: .large, color: nil) - } - } -} - - - extension View { @ViewBuilder - func `if`(_ condition: Bool, transform: (Self) -> Transform) -> some View { + public func `if`(_ condition: Bool, transform: (Self) -> Transform) -> some View { if condition { transform(self) } else { @@ -57,67 +30,68 @@ extension View { } } - @ViewBuilder - public func bottomListRowSeparatorTint(_ condition: Bool, _ color: Color?) -> some View { - if #available(iOS 15.0, *), condition { - self.listRowSeparatorTint(color, edges: .bottom) - } else { - self - } - } - - @ViewBuilder - public func obvNavigationTitle(_ title: Text) -> some View { - if #available(iOS 14.0, *) { - self.navigationTitle(title) - } else { - self - } - } } -struct DottedCircle: View { +public struct DottedCircle: View { let radius: CGFloat let pi = Double.pi let dotCount = 14 let dotLength: CGFloat = 4 let spaceLength: CGFloat - init(radius: CGFloat) { + public init(radius: CGFloat) { self.radius = radius let circumerence: CGFloat = CGFloat(2.0 * pi) * radius self.spaceLength = circumerence / CGFloat(dotCount) - dotLength } - var body: some View { + public var body: some View { Circle() .stroke(.gray, style: StrokeStyle(lineWidth: 2, lineCap: .butt, lineJoin: .miter, miterLimit: 0, dash: [dotLength, spaceLength], dashPhase: 0)) .frame(width: radius * 2, height: radius * 2) } } -struct Positions: PreferenceKey { - static var defaultValue: [String: Anchor] = [:] - static func reduce(value: inout [String: Anchor], nextValue: () -> [String: Anchor]) { + +public struct Positions: PreferenceKey { + public static var defaultValue: [String: Anchor] = [:] + public static func reduce(value: inout [String: Anchor], nextValue: () -> [String: Anchor]) { value.merge(nextValue(), uniquingKeysWith: { current, _ in return current }) } } -struct PositionReader: View { + +public struct PositionReader: View { + let tag: String - var body: some View { + + public init(tag: String) { + self.tag = tag + } + + public var body: some View { Color.clear .anchorPreference(key: Positions.self, value: .center) { (anchor) in [tag: anchor] } } + } + extension Task where Success == Never, Failure == Never { - static func sleep(seconds: Double) async throws { + public static func sleep(seconds: Double) async throws { let duration = UInt64(seconds * 1_000_000_000) try await Task.sleep(nanoseconds: duration) } + public static func sleep(for timeInterval: TimeInterval) async throws { + let duration = UInt64(timeInterval * 1_000_000_000) + try await Task.sleep(nanoseconds: duration) + } + public static func sleep(milliseconds: Int) async throws { + let duration = UInt64(milliseconds * 1_000_000) + try await Task.sleep(nanoseconds: duration) + } } diff --git a/Modules/OlvidUtils/OlvidUtils/TypeExtensions/Dictionary+MapKeysAndValues.swift b/Modules/OlvidUtils/OlvidUtils/TypeExtensions/Dictionary+MapKeysAndValues.swift new file mode 100644 index 00000000..65a4a759 --- /dev/null +++ b/Modules/OlvidUtils/OlvidUtils/TypeExtensions/Dictionary+MapKeysAndValues.swift @@ -0,0 +1,65 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation + + +public extension Dictionary { + + /// Creates a new dictionary from `self`, applying `keyMapping` to each key of `self.keys` and applying `valueMapping` to each value of `self.values`. + /// + /// Note that both `keyMapping` and `valueMapping` may return `nil`. When they do, the original dictionary entry is omitted. + /// + /// Usage example: + /// ``` + /// let dict: [String: Int] = ["Alice": 0, "Bob": 1] + /// let newDict: [Data: Double] = .init(dict, + /// keyMapping: { $0.data(using: .utf8) }, + /// valueMapping: { Double($0) }) + /// ``` + init(_ originalDictionary: Dictionary, keyMapping: (K) -> Key?, valueMapping: (V) -> Value?) { + let newKeysAndValues: [(Key,Value)] = originalDictionary.compactMap { (key, value) in + guard let newKey = keyMapping(key) else { assertionFailure(); return nil } + guard let newValue = valueMapping(value) else { assertionFailure(); return nil } + return (newKey, newValue) + } + self.init(newKeysAndValues) { (first, _) in assertionFailure(); return first } + } + + /// Creates a new dictionary from `self`, applying `keyMapping` to each key of `self.keys` and applying `valueMapping` to each value of `self.values`. + /// + /// Note that both `keyMapping` and `valueMapping` may return `nil`. When they do, the original dictionary entry is omitted. + /// + /// Usage example: + /// ``` + /// let dict: [String: Int] = ["Alice": 0, "Bob": 1] + /// let newDict: [Data: Double] = .init(dict, + /// keyMapping: { $0.data(using: .utf8) }, + /// valueMapping: { Double($0) }) + /// ``` + init(_ originalDictionary: Dictionary, keyMapping: (K) throws -> Key?, valueMapping: (V) throws -> Value?) rethrows { + let newKeysAndValues: [(Key,Value)] = try originalDictionary.compactMap { (key, value) in + guard let newKey = try keyMapping(key) else { assertionFailure(); return nil } + guard let newValue = try valueMapping(value) else { assertionFailure(); return nil } + return (newKey, newValue) + } + self.init(newKeysAndValues) { (first, _) in assertionFailure(); return first } + } + +} diff --git a/Modules/OlvidUtils/OlvidUtils/TypeExtensions/Operation+Utils.swift b/Modules/OlvidUtils/OlvidUtils/TypeExtensions/Operation+Utils.swift new file mode 100644 index 00000000..cb4ad9ed --- /dev/null +++ b/Modules/OlvidUtils/OlvidUtils/TypeExtensions/Operation+Utils.swift @@ -0,0 +1,33 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation + + +public extension Operation { + + func appendCompletionBlock(_ newCompletionBlock: @escaping () -> Void) { + let previousCompletionBlock = self.completionBlock + self.completionBlock = { + previousCompletionBlock?() + newCompletionBlock() + } + } + +} diff --git a/Modules/OlvidUtils/OlvidUtils/TypeExtensions/UIDevice+CurrentDeviceName.swift b/Modules/OlvidUtils/OlvidUtils/TypeExtensions/UIDevice+CurrentDeviceName.swift new file mode 100644 index 00000000..3b03f889 --- /dev/null +++ b/Modules/OlvidUtils/OlvidUtils/TypeExtensions/UIDevice+CurrentDeviceName.swift @@ -0,0 +1,165 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit + + +public extension UIDevice { + + private var currentDeviceCode: String { + #if targetEnvironment(simulator) + let machine = ProcessInfo.processInfo.environment["SIMULATOR_MODEL_IDENTIFIER"] ?? "couldNotDetermineSimulatorModel" + return machine + #elseif targetEnvironment(macCatalyst) + let service = IOServiceGetMatchingService(kIOMasterPortDefault, + IOServiceMatching("IOPlatformExpertDevice")) + var modelIdentifier: String? + if let modelData = IORegistryEntryCreateCFProperty(service, "model" as CFString, kCFAllocatorDefault, 0).takeRetainedValue() as? Data { + modelIdentifier = String(data: modelData, encoding: .utf8)?.trimmingCharacters(in: .controlCharacters) + } + + IOObjectRelease(service) + return modelIdentifier ?? "macCatalyst" + #else + var systemInfo = utsname() + uname(&systemInfo) + let machine = withUnsafePointer(to: &systemInfo.machine) { unsafePointer in + unsafePointer.withMemoryRebound(to: CChar.self, capacity: MemoryLayout.size(ofValue: unsafePointer)) { pointer in + String(cString: pointer) + } + } + return machine + #endif + } + + + var preciseModel: String { + debugPrint(currentDeviceCode) + switch currentDeviceCode { + + // iPhones (restricting to specific models) + + case "iPhone8,1": + return "iPhone 6s" + case "iPhone8,2": + return "iPhone 6s Plus" + case "iPhone8,4": + return "iPhone SE" + case "iPhone9,1": + return "iPhone 7" + case "iPhone9,2": + return "iPhone 7 Plus" + case "iPhone9,3": + return "iPhone 7" + case "iPhone9,4": + return "iPhone 7 Plus" + case "iPhone10,1": + return "iPhone 8" + case "iPhone10,2": + return "iPhone 8 Plus" + case "iPhone10,3": + return "iPhone X" + case "iPhone10,4": + return "iPhone 8" + case "iPhone10,5": + return "iPhone 8 Plus" + case "iPhone10,6": + return "iPhone X" + case "iPhone11,2": + return "iPhone XS" + case "iPhone11,4": + return "iPhone XS Max" + case "iPhone11,6": + return "iPhone XS Max" + case "iPhone11,8": + return "iPhone XR" + case "iPhone12,1": + return "iPhone 11" + case "iPhone12,3": + return "iPhone 11 Pro" + case "iPhone12,5": + return "iPhone 11 Pro Max" + case "iPhone12,8": + return "iPhone SE 2nd Gen" + case "iPhone13,1": + return "iPhone 12 Mini" + case "iPhone13,2": + return "iPhone 12" + case "iPhone13,3": + return "iPhone 12 Pro" + case "iPhone13,4": + return "iPhone 12 Pro Max" + case "iPhone14,2": + return "iPhone 13 Pro" + case "iPhone14,3": + return "iPhone 13 Pro Max" + case "iPhone14,4": + return "iPhone 13 Mini" + case "iPhone14,5": + return "iPhone 13" + case "iPhone14,6": + return "iPhone SE" + case "iPhone14,7": + return "iPhone 14" + case "iPhone14,8": + return "iPhone 14 Plus" + case "iPhone15,2": + return "iPhone 14 Pro" + case "iPhone15,3": + return "iPhone 14 Pro Max" + case "iPhone15,4": + return "iPhone 15" + case "iPhone16,1": + return "iPhone 15 Pro" + case "iPhone15,5": + return "iPhone 15 Plus" + case "iPhone16,2": + return "iPhone 15 Pro Max" + + case "Mac13,2": + return "Mac Studio (2022)" + case "Mac14,5", "Mac14,9": + return "MacBook Pro (2023)" + case "Mac14,6", "Mac14,10": + return "MacBook Pro (2023)" + case "Mac 14,7": + return "MacBook Pro (2022)" + case "MacBookPro18,3", "MacBookPro18,4": + return "MacBook Pro (2021)" + case "MacBookPro18,1", "MacBookPro18,2": + return "MacBook Pro (2021)" + case "MacBookPro17,1": + return "MacBook Pro (2020)" + case "MacBookPro16,3": + return "MacBook Pro (2020)" + case "MacBookPro16,2": + return "MacBook Pro (2020)" + case "MacBookPro16,1", "MacBookPro16,4": + return "MacBook Pro (2020)" + + default: + #if targetEnvironment(macCatalyst) + return "Mac" + #else + return UIDevice.current.localizedModel + #endif + } + } + +} diff --git a/Modules/OlvidUtils/OlvidUtils/TypeExtensions/UIViewController+AsyncAwaitSuspend.swift b/Modules/OlvidUtils/OlvidUtils/TypeExtensions/UIViewController+AsyncAwaitSuspend.swift new file mode 100644 index 00000000..05e8271a --- /dev/null +++ b/Modules/OlvidUtils/OlvidUtils/TypeExtensions/UIViewController+AsyncAwaitSuspend.swift @@ -0,0 +1,63 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import UIKit +import SwiftUI + + +extension UIViewController { + + @MainActor + public func suspendDuringTimeInterval(_ timeInterval: TimeInterval) async { + await withCheckedContinuation { (continuation: CheckedContinuation) in + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(Int(timeInterval * 1000))) { + continuation.resume() + } + } + } + +} + + +extension View { + + @MainActor + public func suspendDuringTimeInterval(_ timeInterval: TimeInterval) async { + await withCheckedContinuation { (continuation: CheckedContinuation) in + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(Int(timeInterval * 1000))) { + continuation.resume() + } + } + } + +} + + +public struct TaskUtils { + + public static func suspendDuringTimeInterval(_ timeInterval: TimeInterval) async { + await withCheckedContinuation { (continuation: CheckedContinuation) in + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(Int(timeInterval * 1000))) { + continuation.resume() + } + } + } + +} diff --git a/Modules/OlvidUtils/OlvidUtils/TypeExtensions/URLSession+Async.swift b/Modules/OlvidUtils/OlvidUtils/TypeExtensions/URLSession+Async.swift deleted file mode 100644 index 2bb65295..00000000 --- a/Modules/OlvidUtils/OlvidUtils/TypeExtensions/URLSession+Async.swift +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import Foundation - - -extension URLSession { - - public func obvUpload(for request: URLRequest, from bodyData: Data, delegate: URLSessionTaskDelegate? = nil) async throws -> (Data, URLResponse) { - if #available(iOS 15, *) { - return try await upload(for: request, from: bodyData, delegate: delegate) - } else { - assert(delegate == nil, "The delegate is only supported for iOS 15+") - return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<(Data, URLResponse), Error>) in - let task = uploadTask(with: request, from: bodyData) { responseData, response, error in - if let error = error { - continuation.resume(throwing: error) - } else { - guard let responseData = responseData, let response = response else { - assertionFailure() - let userInfo = [NSLocalizedFailureReasonErrorKey: "Unexpected error in obvUpload"] - let error = NSError(domain: "OlvidUtils", code: 0, userInfo: userInfo) - continuation.resume(throwing: error) - return - } - continuation.resume(returning: (responseData, response)) - } - } - task.resume() - } - } - } - - -} diff --git a/Modules/OlvidUtils/OlvidUtils/Types/ObvBackupable.swift b/Modules/OlvidUtils/OlvidUtils/Types/ObvBackupable.swift index 0cc088a1..28b8e9d6 100644 --- a/Modules/OlvidUtils/OlvidUtils/Types/ObvBackupable.swift +++ b/Modules/OlvidUtils/OlvidUtils/Types/ObvBackupable.swift @@ -19,6 +19,7 @@ import Foundation +/// See also `ObvSnapshotable` in `ObvTypes` public protocol ObvBackupable: AnyObject { var backupSource: ObvBackupableObjectSource { get } diff --git a/Modules/Project.swift b/Modules/Project.swift index 626349a0..20ff6d98 100644 --- a/Modules/Project.swift +++ b/Modules/Project.swift @@ -18,11 +18,12 @@ let obvUICoreData = Target.swiftLibrary(name: "ObvUICoreData", .Engine.obvEngine, .target(olvidUtils), .sdk(name: "UniformTypeIdentifiers", type: .framework, status: .optional), - .Modules.UI.CircledInitialsView.configuration, + .Modules.UI.obvCircledInitials, + .Modules.obvSettings, + //.Modules.UI.CircledInitialsView.configuration, ], resources: [ - "OlvidUI/ObvUICoreData/ObvUICoreData/*.lproj/*.strings", - "OlvidUI/ObvUICoreData/ObvUICoreData/*.lproj/*.stringsdict", + "OlvidUI/ObvUICoreData/ObvUICoreData/*.xcstrings", ]) let obvUI = Target.swiftLibrary(name: "ObvUI", @@ -35,27 +36,64 @@ let obvUI = Target.swiftLibrary(name: "ObvUI", .Modules.UI.systemIcon, .Modules.UI.systemIconSwiftUI, .Modules.UI.systemIconUIKit, + .Modules.UI.obvImageEditor, + .Modules.UI.obvPhotoButton, .sdk(name: "SwiftUI", type: .framework), .sdk(name: "UIKit", type: .framework), .sdk(name: "UniformTypeIdentifiers", type: .framework, status: .optional) ], resources: [ - "OlvidUI/ObvUI/ObvUI/*.lproj/*.strings", - "OlvidUI/ObvUI/ObvUI/ObvUIAssets.xcassets" + "OlvidUI/ObvUI/ObvUI/*.xcstrings", ]) -let coreDataStack = Target.swiftLibrary(name: "CoreDataStack", - isExtensionSafe: true, - sources: "CoreDataStack/CoreDataStack/*.swift", - dependencies: [ - .target(olvidUtils) - ], - resources: []) - -let project = Project.createProject(name: "Modules", - packages: [], - targets: [obvUICoreData, - obvUI, - olvidUtils, - coreDataStack]) +let coreDataStack = Target.swiftLibrary( + name: "CoreDataStack", + isExtensionSafe: true, + sources: "CoreDataStack/CoreDataStack/*.swift", + dependencies: [ + .target(olvidUtils) + ], + resources: []) + + +let obvDesignSystem = Target.swiftLibrary( + name: "ObvDesignSystem", + isExtensionSafe: true, + sources: "ObvDesignSystem/**/*.swift", + dependencies: [ + .Engine.obvTypes, + .Engine.obvCrypto, + .Modules.UI.systemIcon, + .Modules.UI.systemIconUIKit, + ], + resources: [ + "ObvDesignSystem/ObvDesignSystem/AppTheme/AppThemeAssets.xcassets", + ]) + + +let obvSettings = Target.swiftLibrary( + name: "ObvSettings", + isExtensionSafe: true, + sources: "ObvSettings/**/*.swift", + dependencies: [ + .Engine.obvTypes, + .Modules.obvDesignSystem, + ], + resources: [ + "ObvSettings/*.xcstrings", + ]) + + +let project = Project.createProject( + name: "Modules", + packages: [], + targets: [ + obvUICoreData, + obvUI, + olvidUtils, + coreDataStack, + obvDesignSystem, + obvSettings, + ], + shouldEnableDefaultResourceSynthesizers: true) diff --git a/Modules/UI/CircledInitialsView/CircledInitialsConfiguration/CircledInitialsConfiguration.swift b/Modules/UI/CircledInitialsView/CircledInitialsConfiguration/CircledInitialsConfiguration.swift deleted file mode 100644 index 40ab3bc1..00000000 --- a/Modules/UI/CircledInitialsView/CircledInitialsConfiguration/CircledInitialsConfiguration.swift +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import Foundation -import ObvTypes -import UIKit -import ObvCrypto -import UI_SystemIcon - -// MARK: - CircledInitialsConfiguration -public enum CircledInitialsConfiguration: Hashable { - /// Possible tint adjustment modes for the avatar view - /// - /// - normal: A normal tint mode - /// - disabled: A disabled tint mode, for example when a contact hasn't been synced - public enum TintAdjustementMode { - /// A normal tint mode - case normal - - /// A disabled tint mode, for example when a contact hasn't been synced - case disabled - } - - case contact(initial: String, photoURL: URL?, showGreenShield: Bool, showRedShield: Bool, cryptoId: ObvCryptoId, tintAdjustementMode: TintAdjustementMode) - case group(photoURL: URL?, groupUid: UID) - case groupV2(photoURL: URL?, groupIdentifier: Data, showGreenShield: Bool) - case icon(_ icon: CircledInitialsIcon) - - public var photo: UIImage? { - let url: URL? - switch self { - case .contact(initial: _, photoURL: let photoURL, showGreenShield: _, showRedShield: _, cryptoId: _, tintAdjustementMode: _): - url = photoURL - case .group(photoURL: let photoURL, groupUid: _): - url = photoURL - case .groupV2(photoURL: let photoURL, groupIdentifier: _, showGreenShield: _): - url = photoURL - case .icon: - url = nil - } - guard let url = url else { return nil } - return UIImage(contentsOfFile: url.path) - } - - public var showGreenShield: Bool { - switch self { - case .contact(initial: _, photoURL: _, showGreenShield: let showGreenShield, showRedShield: _, cryptoId: _, tintAdjustementMode: _): - return showGreenShield - case .groupV2(photoURL: _, groupIdentifier: _, showGreenShield: let showGreenShield): - return showGreenShield - case .group, .icon: - return false - } - } - - public var showRedShield: Bool { - switch self { - case .contact(initial: _, photoURL: _, showGreenShield: _, showRedShield: let showRedShield, cryptoId: _, tintAdjustementMode: _): return showRedShield - default: return false - } - } - - public var initials: (text: String, cryptoId: ObvCryptoId)? { - switch self { - case .contact(initial: let initial, photoURL: _, showGreenShield: _, showRedShield: _, cryptoId: let cryptoId, tintAdjustementMode: _): - guard let str = initial.trimmingCharacters(in: .whitespacesAndNewlines).first else { return nil } - return (String(str), cryptoId) - default: return nil - } - } - -} diff --git a/Modules/UI/ObvCircledInitials/CircledInitialsConfiguration.swift b/Modules/UI/ObvCircledInitials/CircledInitialsConfiguration.swift new file mode 100644 index 00000000..bcb822d9 --- /dev/null +++ b/Modules/UI/ObvCircledInitials/CircledInitialsConfiguration.swift @@ -0,0 +1,202 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes +import UIKit +import ObvCrypto +import UI_SystemIcon +import ObvDesignSystem +import ObvSettings + + +public enum CircledInitialsConfiguration: Hashable { + + /// Possible tint adjustment modes for the avatar view + /// + /// - normal: A normal tint mode + /// - disabled: A disabled tint mode, for example when a contact hasn't been synced + public enum TintAdjustementMode { + /// A normal tint mode + case normal + + /// A disabled tint mode, for example when a contact hasn't been synced + case disabled + } + + + public enum Photo: Equatable, Hashable { + case url(url: URL?) + case image(image: UIImage?) + } + + + case contact(initial: String, photo: Photo?, showGreenShield: Bool, showRedShield: Bool, cryptoId: ObvCryptoId, tintAdjustementMode: TintAdjustementMode) + case group(photo: Photo?, groupUid: UID) + case groupV2(photo: Photo?, groupIdentifier: Data, showGreenShield: Bool) + case icon(_ icon: CircledInitialsIcon) + case photo(photo: Photo) + + + public var photo: UIImage? { + let photo: Photo? + switch self { + case .contact(initial: _, photo: let _photo, showGreenShield: _, showRedShield: _, cryptoId: _, tintAdjustementMode: _): + photo = _photo + case .group(photo: let _photo, groupUid: _): + photo = _photo + case .groupV2(photo: let _photo, groupIdentifier: _, showGreenShield: _): + photo = _photo + case .icon: + photo = nil + case .photo(photo: let _photo): + photo = _photo + } + guard let photo else { return nil } + switch photo { + case .url(let url): + guard let url else { return nil } + return UIImage(contentsOfFile: url.path) + case .image(let image): + return image + } + } + + + public var circledInitialsIcon: CircledInitialsIcon { + switch self { + case .contact: + return .person + case .group, .groupV2: + return .person3Fill + case .icon(let icon): + return icon + case .photo: + return .person + } + } + + + public var showGreenShield: Bool { + switch self { + case .contact(initial: _, photo: _, showGreenShield: let showGreenShield, showRedShield: _, cryptoId: _, tintAdjustementMode: _): + return showGreenShield + case .groupV2(photo: _, groupIdentifier: _, showGreenShield: let showGreenShield): + return showGreenShield + case .group, .icon: + return false + case .photo: + return false + } + } + + + public var showRedShield: Bool { + switch self { + case .contact(initial: _, photo: _, showGreenShield: _, showRedShield: let showRedShield, cryptoId: _, tintAdjustementMode: _): return showRedShield + default: return false + } + } + + + public var initials: (text: String, cryptoId: ObvCryptoId)? { + switch self { + case .contact(initial: let initial, photo: _, showGreenShield: _, showRedShield: _, cryptoId: let cryptoId, tintAdjustementMode: _): + guard let str = initial.trimmingCharacters(in: .whitespacesAndNewlines).first else { return nil } + return (String(str), cryptoId) + default: return nil + } + } + + + public func replacingPhoto(with newPhoto: Photo?) -> Self { + switch self { + case .contact(let initial, _, let showGreenShield, let showRedShield, let cryptoId, let tintAdjustementMode): + return .contact(initial: initial, photo: newPhoto, showGreenShield: showGreenShield, showRedShield: showRedShield, cryptoId: cryptoId, tintAdjustementMode: tintAdjustementMode) + case .group(_, let groupUid): + return .group(photo: newPhoto, groupUid: groupUid) + case .groupV2(_, let groupIdentifier, let showGreenShield): + return .groupV2(photo: newPhoto, groupIdentifier: groupIdentifier, showGreenShield: showGreenShield) + case .icon(let icon): + return .icon(icon) + case .photo: + guard let newPhoto else { return .icon(.person) } + return .photo(photo: newPhoto) + } + } + + + public func replacingInitials(with newInitials: String) -> Self { + switch self { + case .contact(_, let photo, let showGreenShield, let showRedShield, let cryptoId, let tintAdjustementMode): + return .contact(initial: newInitials, photo: photo, showGreenShield: showGreenShield, showRedShield: showRedShield, cryptoId: cryptoId, tintAdjustementMode: tintAdjustementMode) + case .group: + return self + case .groupV2: + return self + case .icon: + return self + case .photo: + return self + } + } + + + public var icon: SystemIcon { + switch self { + case .contact: return .person + case .group, .groupV2: return .person3Fill + case .icon(let icon): return icon.icon + case .photo: return .person + } + } + + + public func backgroundColor(appTheme: AppTheme, using style: IdentityColorStyle = ObvMessengerSettings.Interface.identityColorStyle) -> UIColor { + switch self { + case .contact(initial: _, photo: _, showGreenShield: _, showRedShield: _, cryptoId: let cryptoId, tintAdjustementMode: _): + return appTheme.identityColors(for: cryptoId, using: style).background + case .group(photo: _, groupUid: let groupUid): + return appTheme.groupColors(forGroupUid: groupUid, using: style).background + case .groupV2(photo: _, groupIdentifier: let groupIdentifier, showGreenShield: _): + return appTheme.groupV2Colors(forGroupIdentifier: groupIdentifier).background + case .icon: + return appTheme.colorScheme.systemFill + case .photo: + return appTheme.colorScheme.systemFill + } + } + + + public func foregroundColor(appTheme: AppTheme, using style: IdentityColorStyle = ObvMessengerSettings.Interface.identityColorStyle) -> UIColor { + switch self { + case .contact(initial: _, photo: _, showGreenShield: _, showRedShield: _, cryptoId: let cryptoId, tintAdjustementMode: _): + return appTheme.identityColors(for: cryptoId, using: style).text + case .group(photo: _, groupUid: let groupUid): + return appTheme.groupColors(forGroupUid: groupUid, using: style).text + case .groupV2(photo: _, groupIdentifier: let groupIdentifier, showGreenShield: _): + return appTheme.groupV2Colors(forGroupIdentifier: groupIdentifier).text + case .icon: + return appTheme.colorScheme.secondaryLabel + case .photo: + return appTheme.colorScheme.secondaryLabel + } + } + +} diff --git a/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/CircledInitialsIcon+Utils.swift b/Modules/UI/ObvCircledInitials/CircledInitialsIcon.swift similarity index 84% rename from Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/CircledInitialsIcon+Utils.swift rename to Modules/UI/ObvCircledInitials/CircledInitialsIcon.swift index 0952a933..ccde7294 100644 --- a/Modules/OlvidUI/ObvUI/ObvUI/Elements/CircledInitials/CircledInitialsIcon+Utils.swift +++ b/Modules/UI/ObvCircledInitials/CircledInitialsIcon.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2023 Olvid SAS + * Copyright © 2019-2022 Olvid SAS * * This file is part of Olvid for iOS. * @@ -16,13 +16,20 @@ * You should have received a copy of the GNU Affero General Public License * along with Olvid. If not, see . */ + import Foundation -import ObvUICoreData -import UI_CircledInitialsView_CircledInitialsConfiguration import UI_SystemIcon -extension CircledInitialsIcon { + +public enum CircledInitialsIcon: Hashable { + + case lockFill + case person + case person3Fill + case personFillXmark + case plus + public var icon: SystemIcon { switch self { case .lockFill: return .lock(.fill) @@ -32,4 +39,5 @@ extension CircledInitialsIcon { case .plus: return .plus } } + } diff --git a/Modules/UI/ObvCircledInitials/InitialCircleViewNew.swift b/Modules/UI/ObvCircledInitials/InitialCircleViewNew.swift new file mode 100644 index 00000000..15441d43 --- /dev/null +++ b/Modules/UI/ObvCircledInitials/InitialCircleViewNew.swift @@ -0,0 +1,105 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + + +import SwiftUI +import ObvDesignSystem +import ObvSettings +import UI_SystemIcon +import UI_SystemIcon_SwiftUI +import UI_SystemIcon_UIKit + + +public protocol InitialCircleViewNewModelProtocol: ObservableObject { + + var circledInitialsConfiguration: CircledInitialsConfiguration { get } + +} + + +/// 2023-07-13: Replaces InitialCircleView and ProfilePictureView. +public struct InitialCircleViewNew: View { + + @ObservedObject var model: Model + let state: State + + public init(model: Model, state: State) { + self.model = model + self.state = state + } + + public struct State { + let circleDiameter: CGFloat + public init(circleDiameter: CGFloat) { + self.circleDiameter = circleDiameter + } + } + + private var iconSizeAdjustement: CGFloat { + switch model.circledInitialsConfiguration.icon { + case .person: return 2 + case .person3Fill: return 3 + case .personFillXmark: return 2 + default: return 1 + } + } + + + public var body: some View { + Group { + if let profilePicture = model.circledInitialsConfiguration.photo { + Image(uiImage: profilePicture) + .resizable() + .scaledToFill() // 2023-09-07 was .scaledToFit() + .frame(width: state.circleDiameter, height: state.circleDiameter) + .clipShape(Circle()) + } else { + ZStack { + Circle() + .frame(width: state.circleDiameter, height: state.circleDiameter) + .foregroundColor(Color(model.circledInitialsConfiguration.backgroundColor(appTheme: AppTheme.shared))) + if let text = model.circledInitialsConfiguration.initials?.text { + Text(text) + .font(Font.system(size: state.circleDiameter/2.0, weight: .black, design: .rounded)) + .foregroundColor(Color(model.circledInitialsConfiguration.foregroundColor(appTheme: AppTheme.shared))) + } else { + Image(systemIcon: model.circledInitialsConfiguration.icon) + .font(Font.system(size: state.circleDiameter/iconSizeAdjustement, weight: .semibold, design: .default)) + .foregroundColor(Color(model.circledInitialsConfiguration.foregroundColor(appTheme: AppTheme.shared))) + } + } + } + } + .overlay( + Image(systemName: "checkmark.shield.fill") + .font(.system(size: (state.circleDiameter) / 4)) + .foregroundColor(model.circledInitialsConfiguration.showGreenShield ? Color(AppTheme.shared.colorScheme.green) : .clear), + alignment: .topTrailing + ) + .overlay( + Image(systemIcon: .exclamationmarkShieldFill) + .font(.system(size: (state.circleDiameter) / 2)) + .foregroundColor(model.circledInitialsConfiguration.showRedShield ? .red : .clear), + alignment: .center + ) + } + +} + + diff --git a/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/.gitignore b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/.gitignore new file mode 100644 index 00000000..40b8c3f9 --- /dev/null +++ b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/.gitignore @@ -0,0 +1 @@ +!ObvImageEditorViewControllerExample.xcodeproj diff --git a/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample.xcodeproj/project.pbxproj b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample.xcodeproj/project.pbxproj new file mode 100644 index 00000000..61cf0e97 --- /dev/null +++ b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample.xcodeproj/project.pbxproj @@ -0,0 +1,371 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + C46088DB2AA916CF00D1E942 /* SimpleImageViewerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46088DA2AA916CF00D1E942 /* SimpleImageViewerViewController.swift */; }; + C46088DD2AA916F700D1E942 /* ObvImageEditorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C46088DC2AA916F700D1E942 /* ObvImageEditorViewController.swift */; }; + C462DAFB2AA9163E008CBE9F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C462DAFA2AA9163E008CBE9F /* AppDelegate.swift */; }; + C462DAFD2AA9163E008CBE9F /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C462DAFC2AA9163E008CBE9F /* SceneDelegate.swift */; }; + C462DAFF2AA9163E008CBE9F /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C462DAFE2AA9163E008CBE9F /* ViewController.swift */; }; + C462DB022AA9163E008CBE9F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C462DB002AA9163E008CBE9F /* Main.storyboard */; }; + C462DB042AA9163F008CBE9F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C462DB032AA9163F008CBE9F /* Assets.xcassets */; }; + C462DB072AA9163F008CBE9F /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C462DB052AA9163F008CBE9F /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + C46088DA2AA916CF00D1E942 /* SimpleImageViewerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SimpleImageViewerViewController.swift; sourceTree = ""; }; + C46088DC2AA916F700D1E942 /* ObvImageEditorViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ObvImageEditorViewController.swift; path = ../../Sources/ObvImageEditorViewController.swift; sourceTree = ""; }; + C462DAF72AA9163E008CBE9F /* ObvImageEditorViewControllerExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ObvImageEditorViewControllerExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; + C462DAFA2AA9163E008CBE9F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + C462DAFC2AA9163E008CBE9F /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + C462DAFE2AA9163E008CBE9F /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + C462DB012AA9163E008CBE9F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + C462DB032AA9163F008CBE9F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + C462DB062AA9163F008CBE9F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + C462DB082AA9163F008CBE9F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + C462DAF42AA9163E008CBE9F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + C462DAEE2AA9163E008CBE9F = { + isa = PBXGroup; + children = ( + C46088DC2AA916F700D1E942 /* ObvImageEditorViewController.swift */, + C462DAF92AA9163E008CBE9F /* ObvImageEditorViewControllerExample */, + C462DAF82AA9163E008CBE9F /* Products */, + ); + sourceTree = ""; + }; + C462DAF82AA9163E008CBE9F /* Products */ = { + isa = PBXGroup; + children = ( + C462DAF72AA9163E008CBE9F /* ObvImageEditorViewControllerExample.app */, + ); + name = Products; + sourceTree = ""; + }; + C462DAF92AA9163E008CBE9F /* ObvImageEditorViewControllerExample */ = { + isa = PBXGroup; + children = ( + C46088DA2AA916CF00D1E942 /* SimpleImageViewerViewController.swift */, + C462DAFA2AA9163E008CBE9F /* AppDelegate.swift */, + C462DAFC2AA9163E008CBE9F /* SceneDelegate.swift */, + C462DAFE2AA9163E008CBE9F /* ViewController.swift */, + C462DB002AA9163E008CBE9F /* Main.storyboard */, + C462DB032AA9163F008CBE9F /* Assets.xcassets */, + C462DB052AA9163F008CBE9F /* LaunchScreen.storyboard */, + C462DB082AA9163F008CBE9F /* Info.plist */, + ); + path = ObvImageEditorViewControllerExample; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + C462DAF62AA9163E008CBE9F /* ObvImageEditorViewControllerExample */ = { + isa = PBXNativeTarget; + buildConfigurationList = C462DB0B2AA9163F008CBE9F /* Build configuration list for PBXNativeTarget "ObvImageEditorViewControllerExample" */; + buildPhases = ( + C462DAF32AA9163E008CBE9F /* Sources */, + C462DAF42AA9163E008CBE9F /* Frameworks */, + C462DAF52AA9163E008CBE9F /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ObvImageEditorViewControllerExample; + productName = ObvImageEditorViewControllerExample; + productReference = C462DAF72AA9163E008CBE9F /* ObvImageEditorViewControllerExample.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C462DAEF2AA9163E008CBE9F /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1430; + LastUpgradeCheck = 1430; + TargetAttributes = { + C462DAF62AA9163E008CBE9F = { + CreatedOnToolsVersion = 14.3.1; + }; + }; + }; + buildConfigurationList = C462DAF22AA9163E008CBE9F /* Build configuration list for PBXProject "ObvImageEditorViewControllerExample" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = C462DAEE2AA9163E008CBE9F; + productRefGroup = C462DAF82AA9163E008CBE9F /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + C462DAF62AA9163E008CBE9F /* ObvImageEditorViewControllerExample */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + C462DAF52AA9163E008CBE9F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C462DB072AA9163F008CBE9F /* LaunchScreen.storyboard in Resources */, + C462DB042AA9163F008CBE9F /* Assets.xcassets in Resources */, + C462DB022AA9163E008CBE9F /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + C462DAF32AA9163E008CBE9F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C46088DD2AA916F700D1E942 /* ObvImageEditorViewController.swift in Sources */, + C462DAFF2AA9163E008CBE9F /* ViewController.swift in Sources */, + C462DAFB2AA9163E008CBE9F /* AppDelegate.swift in Sources */, + C46088DB2AA916CF00D1E942 /* SimpleImageViewerViewController.swift in Sources */, + C462DAFD2AA9163E008CBE9F /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + C462DB002AA9163E008CBE9F /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + C462DB012AA9163E008CBE9F /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + C462DB052AA9163F008CBE9F /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + C462DB062AA9163F008CBE9F /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C462DB092AA9163F008CBE9F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + C462DB0A2AA9163F008CBE9F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + C462DB0C2AA9163F008CBE9F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ""; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ObvImageEditorViewControllerExample/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = io.olvid.ObvImageEditorViewControllerExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + C462DB0D2AA9163F008CBE9F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ""; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ObvImageEditorViewControllerExample/Info.plist; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = io.olvid.ObvImageEditorViewControllerExample; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C462DAF22AA9163E008CBE9F /* Build configuration list for PBXProject "ObvImageEditorViewControllerExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C462DB092AA9163F008CBE9F /* Debug */, + C462DB0A2AA9163F008CBE9F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C462DB0B2AA9163F008CBE9F /* Build configuration list for PBXNativeTarget "ObvImageEditorViewControllerExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C462DB0C2AA9163F008CBE9F /* Debug */, + C462DB0D2AA9163F008CBE9F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = C462DAEF2AA9163E008CBE9F /* Project object */; +} diff --git a/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/AppDelegate.swift b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/AppDelegate.swift new file mode 100644 index 00000000..67017102 --- /dev/null +++ b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/AppDelegate.swift @@ -0,0 +1,48 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit + +@main +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Assets.xcassets/AccentColor.colorset/Contents.json b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 00000000..eb878970 --- /dev/null +++ b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Assets.xcassets/AppIcon.appiconset/Contents.json b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..13613e3e --- /dev/null +++ b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Assets.xcassets/Contents.json b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Assets.xcassets/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Base.lproj/LaunchScreen.storyboard b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..642c8160 --- /dev/null +++ b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Base.lproj/Main.storyboard b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Base.lproj/Main.storyboard new file mode 100644 index 00000000..88076c75 --- /dev/null +++ b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Base.lproj/Main.storyboard @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Info.plist b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Info.plist new file mode 100644 index 00000000..c9bf4577 --- /dev/null +++ b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/Info.plist @@ -0,0 +1,27 @@ + + + + + NSCameraUsageDescription + Resize a photo taken with the camera + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + + diff --git a/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/SceneDelegate.swift b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/SceneDelegate.swift new file mode 100644 index 00000000..1b2809c4 --- /dev/null +++ b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/SceneDelegate.swift @@ -0,0 +1,64 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/SimpleImageViewerViewController.swift b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/SimpleImageViewerViewController.swift new file mode 100644 index 00000000..6dd13aac --- /dev/null +++ b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/SimpleImageViewerViewController.swift @@ -0,0 +1,58 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit + + +final class SimpleImageViewerViewController: UIViewController { + + private let imageView = UIImageView() + + init(image: UIImage) { + imageView.image = image + super.init(nibName: nil, bundle: nil) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func viewDidLoad() { + super.viewDidLoad() + setupViews() + } + + private func setupViews() { + + self.view.backgroundColor = .black + + self.view.addSubview(imageView) + imageView.translatesAutoresizingMaskIntoConstraints = false + imageView.contentMode = .scaleAspectFit + + NSLayoutConstraint.activate([ + imageView.topAnchor.constraint(equalTo: self.view.topAnchor), + imageView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor), + imageView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor), + imageView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor), + ]) + + } + +} diff --git a/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/ViewController.swift b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/ViewController.swift new file mode 100644 index 00000000..d9c2bfc0 --- /dev/null +++ b/Modules/UI/ObvImageEditor/Examples/ObvImageEditorViewControllerExample/ObvImageEditorViewControllerExample/ViewController.swift @@ -0,0 +1,129 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import PhotosUI + +class ViewController: UIViewController, PHPickerViewControllerDelegate, ObvImageEditorViewControllerDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate { + + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view. + } + + @IBAction func libraryButtonTapped(_ sender: Any) { + + var configuration = PHPickerConfiguration() + configuration.selectionLimit = 1 + let phPickerViewController = PHPickerViewController(configuration: configuration) + phPickerViewController.delegate = self + + present(phPickerViewController, animated: true) + + } + + + @IBAction func cameraButtonTapped(_ sender: Any) { + + let picker = UIImagePickerController() + picker.delegate = self + picker.allowsEditing = false + picker.sourceType = .camera + picker.cameraDevice = .front + + present(picker, animated: true) + + } + + + // MARK: - PHPickerViewControllerDelegate + + func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { + + picker.dismiss(animated: true) { + + guard let itemProvider = results.first?.itemProvider else { return } + + let canLoadImage = itemProvider.canLoadObject(ofClass: UIImage.self) + guard canLoadImage else { return } + + itemProvider.loadObject(ofClass: UIImage.self) { item, error in + if let error { + assertionFailure(error.localizedDescription) + return + } + guard let uiImage = item as? UIImage else { return } + + Task { [weak self] in + await self?.presentObvImageEditor(for: uiImage) + } + + } + + } + + } + + + // MARK: - UIImagePickerControllerDelegate + + func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { + assert(Thread.isMainThread) + picker.dismiss(animated: true) { + guard let image = info[.originalImage] as? UIImage else { return } + Task { [weak self] in + await self?.presentObvImageEditor(for: image) + } + } + } + + + func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { + assert(Thread.isMainThread) + picker.dismiss(animated: true) + } + + + + @MainActor + func presentObvImageEditor(for image: UIImage) async { + + let imageEditorViewController = ObvImageEditorViewController(originalImage: image, showZoomButtons: true, maxReturnedImageSize: (1024, 1024), delegate: self) + present(imageEditorViewController, animated: true) + + } + + + func userCancelledImageEdition(_ imageEditor: ObvImageEditorViewController) async { + imageEditor.dismiss(animated: true) + } + + func userConfirmedImageEdition(_ imageEditor: ObvImageEditorViewController, image: UIImage) async { + presentedViewController?.dismiss(animated: true) + imageEditor.dismiss(animated: true) { [weak self] in + self?.presentImage(image: image) + } + } + + func presentImage(image: UIImage) { + let vc = SimpleImageViewerViewController(image: image) + present(vc, animated: true) + } + +} diff --git a/Modules/UI/ObvImageEditor/Sources/ObvImageEditorViewController.swift b/Modules/UI/ObvImageEditor/Sources/ObvImageEditorViewController.swift new file mode 100644 index 00000000..795cf8c5 --- /dev/null +++ b/Modules/UI/ObvImageEditor/Sources/ObvImageEditorViewController.swift @@ -0,0 +1,593 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit + +public protocol ObvImageEditorViewControllerDelegate: AnyObject { + func userCancelledImageEdition(_ imageEditor: ObvImageEditorViewController) async + func userConfirmedImageEdition(_ imageEditor: ObvImageEditorViewController, image: UIImage) async +} + + +public final class ObvImageEditorViewController: UIViewController, UIScrollViewDelegate { + + private let originalImage: UIImage + private let imageViewContainer = ObvImageViewContainer() + private let scrollView = UIScrollView() + private let loadingView = LoadingView() + private let cropView = UIView() + private let alphaView = AlphaView() + private let showZoomButtons: Bool + private let maxReturnedImageSize: (width: Int, height: Int)? // In pixels + + private var imageViewTopAnchorConstraint: NSLayoutConstraint! + private var imageViewTrailingAnchorConstraint: NSLayoutConstraint! + private var imageViewBottomAnchorConstraint: NSLayoutConstraint! + private var imageViewLeadingAnchorConstraint: NSLayoutConstraint! + + weak var delegate: ObvImageEditorViewControllerDelegate? + + public init(originalImage: UIImage, showZoomButtons: Bool, maxReturnedImageSize: (width: Int, height: Int)?, delegate: ObvImageEditorViewControllerDelegate) { + self.originalImage = originalImage + self.showZoomButtons = showZoomButtons + self.maxReturnedImageSize = maxReturnedImageSize + self.delegate = delegate + super.init(nibName: nil, bundle: nil) + } + + deinit { + debugPrint("ObvImageEditorViewController deinit") + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + // MARK: View controller lifecycle + + public override func viewDidLoad() { + super.viewDidLoad() + + // Prevents the interactive dismissal of the view controller while it is onscreen + //self.isModalInPresentation = true + + scrollView.translatesAutoresizingMaskIntoConstraints = false + self.view.addSubview(scrollView) + scrollView.backgroundColor = .black + scrollView.contentInsetAdjustmentBehavior = .never + + NSLayoutConstraint.activate([ + scrollView.topAnchor.constraint(equalTo: self.view.topAnchor), + scrollView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor), + scrollView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor), + scrollView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor), + ]) + + alphaView.translatesAutoresizingMaskIntoConstraints = false + self.view.addSubview(alphaView) + NSLayoutConstraint.activate([ + alphaView.topAnchor.constraint(equalTo: self.view.topAnchor), + alphaView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor), + alphaView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor), + alphaView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor), + ]) + + cropView.translatesAutoresizingMaskIntoConstraints = false + self.view.addSubview(cropView) + cropView.isUserInteractionEnabled = false + NSLayoutConstraint.activate([ + cropView.topAnchor.constraint(equalTo: alphaView.centerView.topAnchor), + cropView.trailingAnchor.constraint(equalTo: alphaView.centerView.trailingAnchor), + cropView.bottomAnchor.constraint(equalTo: alphaView.centerView.bottomAnchor), + cropView.leadingAnchor.constraint(equalTo: alphaView.centerView.leadingAnchor), + ]) + + loadingView.translatesAutoresizingMaskIntoConstraints = false + self.view.addSubview(loadingView) + + NSLayoutConstraint.activate([ + loadingView.topAnchor.constraint(equalTo: self.view.topAnchor), + loadingView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor), + loadingView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor), + loadingView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor), + ]) + + imageViewContainer.image = originalImage + imageViewContainer.translatesAutoresizingMaskIntoConstraints = false + imageViewContainer.contentMode = .scaleAspectFit + scrollView.addSubview(imageViewContainer) + + imageViewTopAnchorConstraint = imageViewContainer.topAnchor.constraint(equalTo: scrollView.topAnchor) + imageViewTrailingAnchorConstraint = imageViewContainer.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor) + imageViewBottomAnchorConstraint = imageViewContainer.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor) + imageViewLeadingAnchorConstraint = imageViewContainer.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor) + + NSLayoutConstraint.activate([ + imageViewTopAnchorConstraint, + imageViewTrailingAnchorConstraint, + imageViewBottomAnchorConstraint, + imageViewLeadingAnchorConstraint, + ]) + + scrollView.delegate = self + + scrollView.minimumZoomScale = 0.01 + scrollView.maximumZoomScale = 10 + + // Configure the buttons + + var buttonConfiguration = UIButton.Configuration.filled() + buttonConfiguration.buttonSize = .large + buttonConfiguration.cornerStyle = .capsule + + let cancelButton = UIButton(type: .system, primaryAction: UIAction(handler: { [weak self] _ in + Task { [weak self] in await self?.userTappedTheCancelButton() } + })) + cancelButton.setImage(UIImage(systemName: "xmark"), for: .normal) + buttonConfiguration.baseBackgroundColor = .systemRed + cancelButton.configuration = buttonConfiguration + self.view.addSubview(cancelButton) + cancelButton.translatesAutoresizingMaskIntoConstraints = false + + NSLayoutConstraint.activate([ + cancelButton.leadingAnchor.constraint(equalTo: self.view.leadingAnchor, constant: 50), + cancelButton.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: -50), + ]) + + let okButton = UIButton(type: .system, primaryAction: UIAction(handler: { [weak self] _ in + Task { [weak self] in await self?.userTappedTheOkButton() } + })) + okButton.setImage(UIImage(systemName: "checkmark"), for: .normal) + buttonConfiguration.baseBackgroundColor = .systemGreen + okButton.configuration = buttonConfiguration + self.view.addSubview(okButton) + okButton.translatesAutoresizingMaskIntoConstraints = false + + NSLayoutConstraint.activate([ + okButton.trailingAnchor.constraint(equalTo: self.view.trailingAnchor, constant: -50), + okButton.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: -50), + ]) + + // Configure the zoom buttons + + if showZoomButtons { + + let stack = UIStackView() + self.view.addSubview(stack) + stack.translatesAutoresizingMaskIntoConstraints = false + stack.axis = .horizontal + stack.distribution = .fillEqually + stack.spacing = 12 + + NSLayoutConstraint.activate([ + stack.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 50), + stack.trailingAnchor.constraint(equalTo: self.view.trailingAnchor, constant: -50), + ]) + + var configuration = UIButton.Configuration.filled() + configuration.buttonSize = .small + configuration.cornerStyle = .capsule + configuration.baseBackgroundColor = .systemGray + + let minusButton = UIButton(type: .system, primaryAction: UIAction(handler: { [weak self] _ in + self?.userTappedZoomButtonMinus() + })) + minusButton.configuration = configuration + minusButton.setImage(UIImage(systemName: "minus.magnifyingglass"), for: .normal) + stack.addArrangedSubview(minusButton) + + let plusButton = UIButton(type: .system, primaryAction: UIAction(handler: { [weak self] _ in + self?.userTappedZoomButtonPlus() + })) + plusButton.configuration = configuration + plusButton.setImage(UIImage(systemName: "plus.magnifyingglass"), for: .normal) + stack.addArrangedSubview(plusButton) + + } + + } + + + public override func viewDidLayoutSubviews() { + super.viewDidLayoutSubviews() + + recomputeMinimumZoomScale() + resetImageContainerPadding() + + } + + + public override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + recomputeMinimumZoomScale() + scrollView.zoomScale = scrollView.minimumZoomScale + resetImageContainerPadding() + recenterImageIfAppropriate() + + removeLoadingViewIfRequired() + + } + + + // MARK: Buttons actions + + private func userTappedTheCancelButton() async { + await delegate?.userCancelledImageEdition(self) + } + + + private func userTappedTheOkButton() async { + guard let croppedImage = await cropImage() else { assertionFailure(); return } + await delegate?.userConfirmedImageEdition(self, image: croppedImage) + } + + + @MainActor + private func cropImage() async -> UIImage? { + guard let originalCGImage = originalImage.cgImage?.toUpOrientation(from: originalImage.imageOrientation) else { assertionFailure(); return nil } + let cropSize = CGSize( + width: cropView.bounds.width / scrollView.zoomScale, + height: cropView.bounds.height / scrollView.zoomScale) + let cropOrigin = CGPoint( + x: scrollView.contentOffset.x / scrollView.zoomScale, + y: scrollView.contentOffset.y / scrollView.zoomScale) + let cropRect = CGRect( + origin: cropOrigin, + size: cropSize) + guard let croppedCGImage = originalCGImage.cropping(to: cropRect) else { return nil } + let croppedImage = UIImage(cgImage: croppedCGImage) + let resizedImage: UIImage + if let maxReturnedImageSize { + resizedImage = Self.resizeImage(croppedImage, maxSize: maxReturnedImageSize) ?? croppedImage + } else { + resizedImage = croppedImage + } + debugPrint(resizedImage) + return resizedImage + } + + + private static func resizeImage(_ image: UIImage, maxSize: (width: Int, height: Int)) -> UIImage? { + + guard let cgImage = image.cgImage?.toUpOrientation(from: image.imageOrientation) else { assertionFailure(); return nil } + + let ratio = min(Double(maxSize.width) / Double(cgImage.width), Double(maxSize.height) / Double(cgImage.height)) + guard ratio < 1 else { return image } + + let width = Int(ceil(Double(cgImage.width) * ratio)) + let height = Int(ceil(Double(cgImage.height) * ratio)) + + let context = CGContext( + data: nil, + width: width, + height: height, + bitsPerComponent: cgImage.bitsPerComponent, + bytesPerRow: 0, + space: cgImage.colorSpace ?? CGColorSpace(name: CGColorSpace.sRGB)!, + bitmapInfo: cgImage.bitmapInfo.rawValue) + context?.interpolationQuality = .high + context?.draw(cgImage, in: CGRect(origin: .zero, size: .init(width: width, height: height))) + + guard let scaledImage = context?.makeImage() else { return nil } + + return UIImage(cgImage: scaledImage, scale: 1.0, orientation: image.imageOrientation) + + } + + + + + private func userTappedZoomButtonPlus() { + let newZoomScale = scrollView.zoomScale * 1.1 + scrollView.zoomScale = min(scrollView.maximumZoomScale, newZoomScale) + } + + + private func userTappedZoomButtonMinus() { + let newZoomScale = scrollView.zoomScale * 0.9 + scrollView.zoomScale = max(scrollView.minimumZoomScale, newZoomScale) + } + + + // MARK: UIScrollViewDelegate + + public func viewForZooming(in scrollView: UIScrollView) -> UIView? { + imageViewContainer + } + + + public func scrollViewDidZoom(_ scrollView: UIScrollView) { + resetImageContainerPadding() + } + + + // MARK: Helper methods + + + private func resetImageContainerPadding() { + imageViewContainer.resetPadding( + viewBounds: self.view.bounds, + cropViewFrame: cropView.frame, + scrollViewZoomScale: scrollView.zoomScale) + } + + + + /// Makes sure the image is always centered, even it is zoomed out + private func recenterImageIfAppropriate() { + let offsetX = max((imageViewContainer.intrinsicContentSize.width * scrollView.zoomScale - scrollView.bounds.width) / 2.0, 0) + let offsetY = max((imageViewContainer.intrinsicContentSize.height * scrollView.zoomScale - scrollView.bounds.height) / 2.0, 0) + let newContentOffset = CGPoint(x: offsetX, y: offsetY) + scrollView.setContentOffset(newContentOffset, animated: false) + } + + + private func removeLoadingViewIfRequired() { + guard loadingView.superview != nil else { return } + UIViewPropertyAnimator.runningPropertyAnimator( + withDuration: 0.2, + delay: 0.0, + animations: { [weak self] in + self?.loadingView.alpha = 0.0 + }, + completion: { [weak self] _ in + self?.loadingView.removeFromSuperview() + }) + } + + + private func recomputeMinimumZoomScale() { + let minimumZoomScaleFromWidth: CGFloat = cropView.bounds.size.width / originalImage.size.width + let minimumZoomScaleFromHeight: CGFloat = cropView.bounds.size.height / originalImage.size.height + let newMinimumZoomScale = max(minimumZoomScaleFromWidth, minimumZoomScaleFromHeight) + if scrollView.minimumZoomScale != newMinimumZoomScale { + scrollView.minimumZoomScale = newMinimumZoomScale + scrollView.zoomScale = max(scrollView.zoomScale, scrollView.minimumZoomScale) + } + } + +} + + + +// MARK: - LoadingView + +private final class LoadingView: UIView { + + convenience init() { + self.init(frame: .zero) + } + + override init(frame: CGRect) { + super.init(frame: frame) + backgroundColor = .black + let activityIndicatorView = UIActivityIndicatorView(style: .large) + activityIndicatorView.translatesAutoresizingMaskIntoConstraints = false + activityIndicatorView.startAnimating() + activityIndicatorView.color = .white + self.addSubview(activityIndicatorView) + NSLayoutConstraint.activate([ + activityIndicatorView.centerXAnchor.constraint(equalTo: self.centerXAnchor), + activityIndicatorView.centerYAnchor.constraint(equalTo: self.centerYAnchor), + ]) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} + + + +// MARK: - ImageViewContainer + +private final class ObvImageViewContainer: UIView { + + private let imageView = UIImageView() + + private lazy var topPadding: NSLayoutConstraint = { imageView.topAnchor.constraint(equalTo: self.topAnchor) }() + private lazy var trailingPadding: NSLayoutConstraint = { imageView.trailingAnchor.constraint(equalTo: self.trailingAnchor) }() + private lazy var bottomPadding: NSLayoutConstraint = { imageView.bottomAnchor.constraint(equalTo: self.bottomAnchor) }() + private lazy var leadingPadding: NSLayoutConstraint = { imageView.leadingAnchor.constraint(equalTo: self.leadingAnchor) }() + + var image: UIImage? { + get { imageView.image } + set { imageView.image = newValue } + } + + convenience init() { + self.init(frame: .zero) + setupViews() + } + + func resetPadding(viewBounds: CGRect, cropViewFrame: CGRect, scrollViewZoomScale: CGFloat) { + topPadding.constant = cropViewFrame.origin.y / scrollViewZoomScale + leadingPadding.constant = cropViewFrame.origin.x / scrollViewZoomScale + trailingPadding.constant = -max(0, (viewBounds.width - (cropViewFrame.origin.x + cropViewFrame.width)) / scrollViewZoomScale) + bottomPadding.constant = -max(0, (viewBounds.height - (cropViewFrame.origin.y + cropViewFrame.height)) / scrollViewZoomScale) + } + + private func setupViews() { + backgroundColor = .black + self.imageView.translatesAutoresizingMaskIntoConstraints = false + self.addSubview(self.imageView) + NSLayoutConstraint.activate([topPadding, trailingPadding, bottomPadding, leadingPadding]) + } + + override var intrinsicContentSize: CGSize { + return .init( + width: abs(leadingPadding.constant) + imageView.intrinsicContentSize.width + abs(trailingPadding.constant), + height: abs(topPadding.constant) + imageView.intrinsicContentSize.height + abs(bottomPadding.constant)) + } + +} + + + +// MARK: - CropView + +private final class AlphaView: UIView { + + private static let alphaComponent: CGFloat = 0.5 + private static let centerViewSideSize: CGFloat = 300.0 + + let centerView = UIView() + + convenience init() { + self.init(frame: .zero) + setupViews() + } + + private func setupViews() { + + self.isUserInteractionEnabled = false + + let topView = UIView() + self.addSubview(topView) + topView.translatesAutoresizingMaskIntoConstraints = false + topView.backgroundColor = .black.withAlphaComponent(Self.alphaComponent) + + let trailingView = UIView() + self.addSubview(trailingView) + trailingView.translatesAutoresizingMaskIntoConstraints = false + trailingView.backgroundColor = .black.withAlphaComponent(Self.alphaComponent) + + let bottomView = UIView() + self.addSubview(bottomView) + bottomView.translatesAutoresizingMaskIntoConstraints = false + bottomView.backgroundColor = .black.withAlphaComponent(Self.alphaComponent) + + let leadingView = UIView() + self.addSubview(leadingView) + leadingView.translatesAutoresizingMaskIntoConstraints = false + leadingView.backgroundColor = .black.withAlphaComponent(Self.alphaComponent) + + self.addSubview(centerView) + centerView.translatesAutoresizingMaskIntoConstraints = false + + let circleView = UIView() + centerView.addSubview(circleView) + circleView.translatesAutoresizingMaskIntoConstraints = false + + NSLayoutConstraint.activate([ + + centerView.widthAnchor.constraint(equalToConstant: Self.centerViewSideSize), + centerView.heightAnchor.constraint(equalToConstant: Self.centerViewSideSize), + centerView.centerXAnchor.constraint(equalTo: self.centerXAnchor), + centerView.centerYAnchor.constraint(equalTo: self.centerYAnchor), + + topView.topAnchor.constraint(equalTo: self.topAnchor), + topView.trailingAnchor.constraint(equalTo: self.trailingAnchor), + topView.bottomAnchor.constraint(equalTo: centerView.topAnchor), + topView.leadingAnchor.constraint(equalTo: self.leadingAnchor), + + trailingView.topAnchor.constraint(equalTo: topView.bottomAnchor), + trailingView.trailingAnchor.constraint(equalTo: self.trailingAnchor), + trailingView.bottomAnchor.constraint(equalTo: bottomView.topAnchor), + trailingView.leadingAnchor.constraint(equalTo: centerView.trailingAnchor), + + bottomView.topAnchor.constraint(equalTo: centerView.bottomAnchor), + bottomView.trailingAnchor.constraint(equalTo: self.trailingAnchor), + bottomView.bottomAnchor.constraint(equalTo: self.bottomAnchor), + bottomView.leadingAnchor.constraint(equalTo: self.leadingAnchor), + + leadingView.topAnchor.constraint(equalTo: topView.bottomAnchor), + leadingView.trailingAnchor.constraint(equalTo: centerView.leadingAnchor), + leadingView.bottomAnchor.constraint(equalTo: bottomView.topAnchor), + leadingView.leadingAnchor.constraint(equalTo: self.leadingAnchor), + + circleView.topAnchor.constraint(equalTo: centerView.topAnchor), + circleView.trailingAnchor.constraint(equalTo: centerView.trailingAnchor), + circleView.bottomAnchor.constraint(equalTo: centerView.bottomAnchor), + circleView.leadingAnchor.constraint(equalTo: centerView.leadingAnchor), + + ]) + + // Add white border + + centerView.layer.borderWidth = 0.5 + centerView.layer.borderColor = CGColor(gray: 1, alpha: 1) + + circleView.layer.borderWidth = 0.5 + circleView.layer.borderColor = CGColor(gray: 1, alpha: 1) + circleView.layer.cornerRadius = Self.centerViewSideSize / 2 + + } + +} + + +fileprivate extension CGImagePropertyOrientation { + init(_ uiOrientation: UIImage.Orientation) { + switch uiOrientation { + case .up: self = .up + case .upMirrored: self = .upMirrored + case .down: self = .down + case .downMirrored: self = .downMirrored + case .left: self = .left + case .leftMirrored: self = .leftMirrored + case .right: self = .right + case .rightMirrored: self = .rightMirrored + @unknown default: + assertionFailure() + self = .up + } + } +} + + +fileprivate extension UIImage.Orientation { + init(_ cgOrientation: CGImagePropertyOrientation) { + switch cgOrientation { + case .up: self = .up + case .upMirrored: self = .upMirrored + case .down: self = .down + case .downMirrored: self = .downMirrored + case .left: self = .left + case .leftMirrored: self = .leftMirrored + case .right: self = .right + case .rightMirrored: self = .rightMirrored + } + } +} + + +fileprivate extension CGImage { + + /// Assuming that the orientation of self is (the Core graphics equivalent of) `uiOrientation`, this method returns a `CGImage` obtained by transforming `self` to obtain an image if the `up` orientation. + func toUpOrientation(from uiOrientation: UIImage.Orientation) -> CGImage? { + + guard uiOrientation != .up else { return self } + + let cgOrientation = CGImagePropertyOrientation(uiOrientation) + let ciImage = CIImage(cgImage: self) + let upCIImage = ciImage.oriented(cgOrientation) + let ciContext = CIContext() + let upCGImage = ciContext.createCGImage(upCIImage, from: upCIImage.extent) + + guard let upCGImage else { assertionFailure(); return nil } + + return upCGImage + + } + +} diff --git a/Modules/UI/ObvImageEditor/Sources/ObvImageEditorViewControllerRepresentable.swift b/Modules/UI/ObvImageEditor/Sources/ObvImageEditorViewControllerRepresentable.swift new file mode 100644 index 00000000..1224c3bb --- /dev/null +++ b/Modules/UI/ObvImageEditor/Sources/ObvImageEditorViewControllerRepresentable.swift @@ -0,0 +1,72 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import UIKit + +/// Allows to use the ``ObvImageEditorViewController`` in a SwiftUI view +public struct ObvImageEditorViewControllerRepresentable: UIViewControllerRepresentable { + + public let originalImage: UIImage + public let showZoomButtons: Bool + public let maxReturnedImageSize: (width: Int, height: Int) // In pixels + private let delegate: Delegate + fileprivate let completion: (UIImage?) -> Void + + public init(originalImage: UIImage, showZoomButtons: Bool, maxReturnedImageSize: (width: Int, height: Int), completion: @escaping (UIImage?) -> Void) { + self.originalImage = originalImage + self.showZoomButtons = showZoomButtons + self.maxReturnedImageSize = maxReturnedImageSize + self.completion = completion + self.delegate = Delegate() + self.delegate.view = self + } + + public func makeUIViewController(context: Context) -> ObvImageEditorViewController { + ObvImageEditorViewController( + originalImage: originalImage, + showZoomButtons: showZoomButtons, + maxReturnedImageSize: maxReturnedImageSize, + delegate: delegate) + } + + public func updateUIViewController(_ imageEditor: ObvImageEditorViewController, context: UIViewControllerRepresentableContext) {} + +} + + +private final class Delegate: ObvImageEditorViewControllerDelegate { + + deinit { + debugPrint("deinit Delegate: ObvImageEditorViewControllerDelegate") + } + + fileprivate var view: ObvImageEditorViewControllerRepresentable? + + @MainActor + func userCancelledImageEdition(_ imageEditor: ObvImageEditorViewController) async { + view?.completion(nil) + } + + @MainActor + func userConfirmedImageEdition(_ imageEditor: ObvImageEditorViewController, image: UIImage) async { + view?.completion(image) + } + +} diff --git a/Modules/UI/ObvPhotoButton/Localizable.xcstrings b/Modules/UI/ObvPhotoButton/Localizable.xcstrings new file mode 100644 index 00000000..f7180539 --- /dev/null +++ b/Modules/UI/ObvPhotoButton/Localizable.xcstrings @@ -0,0 +1,54 @@ +{ + "sourceLanguage" : "en", + "strings" : { + "ONBOARDING_PROFILE_PICTURE_CHOOSER_BUTTON_TITLE_CHOOSE_PICTURE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose a photo" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisir une photo" + } + } + } + }, + "ONBOARDING_PROFILE_PICTURE_CHOOSER_BUTTON_TITLE_REMOVE_PICTURE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remove the photo" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer la photo" + } + } + } + }, + "ONBOARDING_PROFILE_PICTURE_CHOOSER_BUTTON_TITLE_TAKE_PICTURE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Take a photo" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prendre une photo" + } + } + } + } + }, + "version" : "1.0" +} \ No newline at end of file diff --git a/Modules/UI/ObvPhotoButton/LocalizableClassForObvPhotoButtonBundle.swift b/Modules/UI/ObvPhotoButton/LocalizableClassForObvPhotoButtonBundle.swift new file mode 100644 index 00000000..697e1b0c --- /dev/null +++ b/Modules/UI/ObvPhotoButton/LocalizableClassForObvPhotoButtonBundle.swift @@ -0,0 +1,58 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI +import UI_SystemIcon + + +/// This is a dummy class, allowing to specify the appropriate module when declaring a localized string, so that the localized string key is looked up in the correct `Localizable.xcstrings` file. +final class LocalizableClassForObvPhotoButtonBundle {} + + +func NSLocalizedString(_ key: String, comment: String) -> String { + return NSLocalizedString(key, tableName: "Localizable", bundle: Bundle(for: LocalizableClassForObvPhotoButtonBundle.self), comment: comment) +} + + +func NSLocalizedString(_ key: String) -> String { + return NSLocalizedString(key, tableName: "Localizable", bundle: Bundle(for: LocalizableClassForObvPhotoButtonBundle.self), comment: "Within ObvPhotoButton") +} + + +extension Text { + + init(_ key: LocalizedStringKey, comment: StaticString? = nil) { + self.init(key, tableName: "Localizable", bundle: Bundle(for: LocalizableClassForObvPhotoButtonBundle.self), comment: comment ?? "Within ObvPhotoButton") + } + +} + + +extension Label where Title == Text, Icon == Image { + + init(_ titleKey: LocalizedStringKey, systemIcon icon: SystemIcon) { + self.init(title: { + Text(titleKey) + }, icon: { + Image(systemIcon: icon) + }) + } + +} diff --git a/Modules/UI/ObvPhotoButton/ObvPhotoButtonView.swift b/Modules/UI/ObvPhotoButton/ObvPhotoButtonView.swift new file mode 100644 index 00000000..2893ca18 --- /dev/null +++ b/Modules/UI/ObvPhotoButton/ObvPhotoButtonView.swift @@ -0,0 +1,92 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import UI_ObvCircledInitials +import UI_SystemIcon_SwiftUI + + +public protocol ObvPhotoButtonViewActionsProtocol { + func userWantsToAddProfilPictureWithCamera() + func userWantsToAddProfilPictureWithPhotoLibrary() + func userWantsToRemoveProfilePicture() +} + + +public protocol ObvPhotoButtonViewModelProtocol: InitialCircleViewNewModelProtocol { + + var photoThatCannotBeRemoved: UIImage? { get } + +} + + +/// View used during onboarding when editing the unmanaged details of an owned identity. Also used when editing the custom photo of a contact. +public struct ObvPhotoButtonView: View { + + private let actions: ObvPhotoButtonViewActionsProtocol + @ObservedObject private var model: Model + @State private var isPopoverPresented = false + private let circleDiameter: CGFloat = 128 + + public init(actions: ObvPhotoButtonViewActionsProtocol, model: Model) { + self.actions = actions + self.model = model + } + + private func buttonTapped() { + isPopoverPresented = true + } + + public var body: some View { + InitialCircleViewNew(model: model, state: .init(circleDiameter: circleDiameter)) + .frame(width: circleDiameter, height: circleDiameter) + .overlay(alignment: .init(horizontal: .trailing, vertical: .bottom)) { + Menu { + if UIImagePickerController.isCameraDeviceAvailable(.front) { + Button(action: actions.userWantsToAddProfilPictureWithCamera, label: { + Label("ONBOARDING_PROFILE_PICTURE_CHOOSER_BUTTON_TITLE_TAKE_PICTURE", systemIcon: .camera(.none)) + }) + } + Button(action: actions.userWantsToAddProfilPictureWithPhotoLibrary, label: { + Label("ONBOARDING_PROFILE_PICTURE_CHOOSER_BUTTON_TITLE_CHOOSE_PICTURE", systemIcon: .photo) + }) + if model.circledInitialsConfiguration.photo != nil && model.circledInitialsConfiguration.photo != model.photoThatCannotBeRemoved { + Button(action: actions.userWantsToRemoveProfilePicture, label: { + Label("ONBOARDING_PROFILE_PICTURE_CHOOSER_BUTTON_TITLE_REMOVE_PICTURE", systemIcon: .trash) + }) + } + } label: { + ZStack { + Circle() + .fill(.background) + .frame(width: circleDiameter/4+10, height: circleDiameter/4+10) + Circle() + .fill(.white) + .frame(width: circleDiameter/4-1, height: circleDiameter/4-1) + Image(systemIcon: .camera(.circleFill)) + .font(.system(size: circleDiameter/4)) + .foregroundStyle(Color("Blue01")) + .offset(x: 0, y: 0) + } + } + + } + } + +} diff --git a/Modules/UI/Project.swift b/Modules/UI/Project.swift index 4a5b16b0..7c74d560 100644 --- a/Modules/UI/Project.swift +++ b/Modules/UI/Project.swift @@ -2,41 +2,73 @@ import ProjectDescription import ProjectDescriptionHelpers -let circledInitialsViewConfiguration = Target.swiftLibrary( - name: "UI_CircledInitialsView_CircledInitialsConfiguration", +let obvCircledInitials = Target.swiftLibrary( + name: "UI_ObvCircledInitials", isExtensionSafe: true, - sources: "CircledInitialsView/CircledInitialsConfiguration/*.swift", + sources: "ObvCircledInitials/*.swift", dependencies: [ .Engine.obvCrypto, .Engine.obvTypes, + .Modules.obvDesignSystem, + .Modules.obvSettings, ] ) -let uiSystemIcon = Target.swiftLibrary(name: "UI_SystemIcon", - isExtensionSafe: true, - sources: "SystemIcon/*.swift", - dependencies: [], - resources: []) - -let uiSystemIconSwiftUI = Target.swiftLibrary(name: "UI_SystemIcon_SwiftUI", - isExtensionSafe: true, - sources: "SystemIcon_SwiftUI/*.swift", - dependencies: [ - .target(uiSystemIcon) - ], - resources: []) - -let uiSystemIconUIKit = Target.swiftLibrary(name: "UI_SystemIcon_UIKit", - isExtensionSafe: true, - sources: "SystemIcon_UIKit/*.swift", - dependencies: [ - .target(uiSystemIcon) - ], - resources: []) - -let project = Project.createProject(name: "UI", - packages: [], - targets: [uiSystemIcon, - uiSystemIconSwiftUI, - uiSystemIconUIKit, - circledInitialsViewConfiguration]) +let uiSystemIcon = Target.swiftLibrary( + name: "UI_SystemIcon", + isExtensionSafe: true, + sources: "SystemIcon/*.swift", + dependencies: [], + resources: []) + +let uiSystemIconSwiftUI = Target.swiftLibrary( + name: "UI_SystemIcon_SwiftUI", + isExtensionSafe: true, + sources: "SystemIcon_SwiftUI/*.swift", + dependencies: [ + .target(uiSystemIcon) + ], + resources: []) + +let uiSystemIconUIKit = Target.swiftLibrary( + name: "UI_SystemIcon_UIKit", + isExtensionSafe: true, + sources: "SystemIcon_UIKit/*.swift", + dependencies: [ + .target(uiSystemIcon) + ], + resources: []) + +let obvImageEditor = Target.swiftLibrary( + name: "UI_ObvImageEditor", + isExtensionSafe: true, + sources: "ObvImageEditor/Sources/*.swift", + dependencies: [], + resources: []) + + +let obvPhotoButton = Target.swiftLibrary( + name: "UI_ObvPhotoButton", + isExtensionSafe: true, + sources: "ObvPhotoButton/*.swift", + dependencies: [ + .target(obvCircledInitials), + .target(uiSystemIconSwiftUI), + ], + resources: [ + "ObvPhotoButton/*.xcstrings", + ] +) + + +let project = Project.createProject( + name: "UI", + packages: [], + targets: [ + uiSystemIcon, + uiSystemIconSwiftUI, + uiSystemIconUIKit, + obvCircledInitials, + obvPhotoButton, + obvImageEditor, + ]) diff --git a/Modules/UI/SystemIcon/SystemIcon.swift b/Modules/UI/SystemIcon/SystemIcon.swift index 4ed297ad..ce9c3720 100644 --- a/Modules/UI/SystemIcon/SystemIcon.swift +++ b/Modules/UI/SystemIcon/SystemIcon.swift @@ -13,7 +13,7 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License + * You should have received a copy of the GNU Affero General Public Licensecase a * along with Olvid. If not, see . */ @@ -23,12 +23,17 @@ import Foundation public enum SystemIcon: Hashable { + case airplayaudio + case airpods + case airpodsmax + case airpodspro case at case atCircle case atCircleFill case alarm case archivebox case archiveboxFill + case arrow2Squarepath case arrowClockwise case arrowCounterclockwise case arrowCounterclockwiseCircle @@ -54,6 +59,7 @@ public enum SystemIcon: Hashable { case book case bookmark case bubbleLeftAndBubbleRight + case bubbleLeftAndBubbleRightFill case calendar case calendarBadgeClock case camera(_: SystemIconFillCircleCircleFillOption? = nil) @@ -62,6 +68,7 @@ public enum SystemIcon: Hashable { case checkmarkCircle case checkmarkCircleFill case checkmarkSealFill + case checkmarkShield case checkmarkShieldFill case checkmarkSquareFill case chevronLeftForwardslashChevronRight @@ -76,6 +83,7 @@ public enum SystemIcon: Hashable { case creditcardFill case display case docBadgeGearshape + case doc case docFill case docOnClipboardFill case docOnDoc @@ -84,6 +92,8 @@ public enum SystemIcon: Hashable { case ellipsisCircle case ellipsisCircleFill case ellipsisRectangle + case envelope + case envelopeBadge case envelopeOpenFill case exclamationmarkCircle case exclamationmarkShieldFill @@ -94,6 +104,7 @@ public enum SystemIcon: Hashable { case eyesInverse case figureStandLineDottedFigureStand case flameFill + case folder case folderCircle case folderFill case forwardFill @@ -105,18 +116,27 @@ public enum SystemIcon: Hashable { case handThumbsup case handThumbsupFill case hare + case headphones case hourglass case icloud(_: SystemIconFillOption = .none) case infoCircle + case ipadLandscape + case iphone case iphoneGen3CircleFill + case laptopcomputerAndIphone case link case lock(_: SystemIconFillOption = .none, _: SystemIconShieldOption = .none) case network + case laptopcomputer + case macbookAndIphone + case magnifyingglass case micCircle case micCircleFill + case mic case micFill case minusCircle case minusCircleFill + case micSlashFill case moonZzzFill case multiply case muliplyCircleFill @@ -134,6 +154,7 @@ public enum SystemIcon: Hashable { case person2Circle case person3 case person3Fill + case personBadgeShieldCheckmark case personCropCircle case personCropCircleBadgeCheckmark case personCropCircleBadgeQuestionmark @@ -141,13 +162,18 @@ public enum SystemIcon: Hashable { case personCropCircleFillBadgeCheckmark case personCropCircleFillBadgeMinus case personCropCircleFillBadgeXmark + case personCropRectangle case personTextRectangle case personFillQuestionmark case personFillViewfinder case personFillXmark + case personLineDottedPerson case personLineDottedPersonFill case phoneCircleFill + case phoneDownFill case phoneFill + case phoneArrowDownLeftFill + case phoneArrowUpRightFill case photo case photoOnRectangleAngled case pin @@ -156,6 +182,7 @@ public enum SystemIcon: Hashable { case playCircleFill case plus case plusCircle + case poweroff case qrcode case qrcodeViewfinder case questionmarkCircle @@ -171,6 +198,7 @@ public enum SystemIcon: Hashable { case shieldFill case speakerWave3Fill case speakerSlashFill + case squareAndArrowDownOnSquare case squareAndArrowUp case squareAndPencil case star @@ -182,18 +210,29 @@ public enum SystemIcon: Hashable { case trash case trashFill case trashCircle + case tray case uiwindowSplit2x1 case umbrella case unpin + case waveform case xmark case xmarkCircle case xmarkCircleFill case xmarkOctagon case xmarkOctagonFill + case xmarkSealFill case heartSlashFill public var systemName: String { switch self { + case .airplayaudio: + return "airplayaudio" + case .airpods: + return "airpods" + case .airpodsmax: + return "airpodsmax" + case .airpodspro: + return "airpodspro" case .at: return "at" case .atCircle: @@ -264,6 +303,8 @@ public enum SystemIcon: Hashable { return "trash.fill" case .trashCircle: return "trash.circle" + case .tray: + return "tray" case .uiwindowSplit2x1: return "uiwindow.split.2x1" case .scanner: @@ -288,6 +329,18 @@ public enum SystemIcon: Hashable { return "doc.on.doc" case .infoCircle: return "info.circle" + case .ipadLandscape: + if #available(iOS 14.0, *) { + return "ipad.landscape" + } else { + return "dot.square" + } + case .iphone: + if #available(iOS 14.0, *) { + return "iphone" + } else { + return "dot.square" + } case .iphoneGen3CircleFill: if #available(iOS 16.1, *) { return "iphone.gen3.circle.fill" @@ -296,6 +349,12 @@ public enum SystemIcon: Hashable { } else { return "checkmark.circle" } + case .laptopcomputerAndIphone: + if #available(iOS 14, *) { + return "laptopcomputer.and.iphone" + } else { + return "desktopcomputer" + } case .personFillQuestionmark: if #available(iOS 14, *) { return "person.fill.questionmark" @@ -314,6 +373,12 @@ public enum SystemIcon: Hashable { } else { return "qrcode.viewfinder" } + case .personLineDottedPerson: + if #available(iOS 16, *) { + return "person.line.dotted.person" + } else { + return "person.2" + } case .personLineDottedPersonFill: if #available(iOS 16, *) { return "person.line.dotted.person.fill" @@ -330,8 +395,12 @@ public enum SystemIcon: Hashable { return "eye.slash" case .hare: return "hare" + case .headphones: + return "headphones" case .hourglass: return "hourglass" + case .folder: + return "folder" case .folderCircle: return "folder.circle" case .arrowshapeTurnUpForward: @@ -354,6 +423,8 @@ public enum SystemIcon: Hashable { return "checkmark.circle" case .qrcodeViewfinder: return "qrcode.viewfinder" + case .arrow2Squarepath: + return "arrow.2.squarepath" case .arrowClockwise: return "arrow.clockwise" case .arrowCounterclockwise: @@ -400,6 +471,8 @@ public enum SystemIcon: Hashable { } else { return "checkmark" } + case .checkmarkShield: + return "checkmark.shield" case .checkmarkShieldFill: return "checkmark.shield.fill" case .icloud(let fill): @@ -434,6 +507,12 @@ public enum SystemIcon: Hashable { return "person.3" case .person3Fill: return "person.3.fill" + case .personBadgeShieldCheckmark: + if #available(iOS 16, *) { + return "person.badge.shield.checkmark" + } else { + return "person" + } case .chevronDown: return "chevron.down" case .chevronRight: @@ -446,8 +525,22 @@ public enum SystemIcon: Hashable { return "text.bubble.fill" case .phoneCircleFill: return "phone.circle.fill" + case .phoneDownFill: + return "phone.down.fill" case .phoneFill: return "phone.fill" + case .phoneArrowDownLeftFill: + if #available(iOS 16.0, *) { + return "phone.arrow.down.left.fill" + } else { + return "phone.fill" + } + case .phoneArrowUpRightFill: + if #available(iOS 16.0, *) { + return "phone.arrow.up.right.fill" + } else { + return "phone.fill" + } case .ellipsisCircleFill: return "ellipsis.circle.fill" case .ellipsisCircle: @@ -464,6 +557,8 @@ public enum SystemIcon: Hashable { } case .minusCircleFill: return "minus.circle.fill" + case .micSlashFill: + return "mic.slash.fill" case .minusCircle: return "minus.circle" case .arrowshapeTurnUpForwardFill: @@ -482,6 +577,8 @@ public enum SystemIcon: Hashable { } case .paperplaneFill: return "paperplane.fill" + case .waveform: + return "waveform" case .xmark: return "xmark" case .xmarkCircle: @@ -492,6 +589,10 @@ public enum SystemIcon: Hashable { return "xmark.octagon" case .xmarkOctagonFill: return "xmark.octagon.fill" + case .xmarkSealFill: + return "xmark.seal.fill" + case .squareAndArrowDownOnSquare: + return "square.and.arrow.down.on.square" case .squareAndArrowUp: return "square.and.arrow.up" case .checkmarkCircleFill: @@ -552,12 +653,20 @@ public enum SystemIcon: Hashable { return "book" case .bubbleLeftAndBubbleRight: return "bubble.left.and.bubble.right" + case .bubbleLeftAndBubbleRightFill: + return "bubble.left.and.bubble.right.fill" case .arrowUpArrowDownCircle: return "arrow.up.arrow.down.circle" case .speakerSlashFill: return "speaker.slash.fill" case .plusCircle: return "plus.circle" + case .poweroff: + if #available(iOS 14.0, *) { + return "poweroff" + } else { + return "circle" + } case .arrowForward: return "arrow.forward" case .pencilSlash: @@ -568,6 +677,8 @@ public enum SystemIcon: Hashable { return "mic.circle" case .micCircleFill: return "mic.circle.fill" + case .mic: + return "mic" case .micFill: return "mic.fill" case .playCircle: @@ -600,6 +711,22 @@ public enum SystemIcon: Hashable { } else { return "link" } + case .laptopcomputer: + if #available(iOS 14.0, *) { + return "laptopcomputer" + } else { + return "desktopcomputer" + } + case .macbookAndIphone: + if #available(iOS 16.1, *) { + return "macbook.and.iphone" + } else if #available(iOS 15.0, *) { + return "ipad.and.iphone" + } else { + return "desktopcomputer" + } + case .magnifyingglass: + return "magnifyingglass" case .star: return "star" case .starFill: @@ -612,6 +739,8 @@ public enum SystemIcon: Hashable { return "archivebox" case .archiveboxFill: return "archivebox.fill" + case .doc: + return "doc" case .docFill: return "doc.fill" case .rectangleDashedAndPaperclip: @@ -622,6 +751,10 @@ public enum SystemIcon: Hashable { } case .rectangleCompressVertical: return "rectangle.compress.vertical" + case .envelope: + return "envelope" + case .envelopeBadge: + return "envelope.badge" case .envelopeOpenFill: return "envelope.open.fill" case .speakerWave3Fill: @@ -638,6 +771,8 @@ public enum SystemIcon: Hashable { } case .musicNoteList: return "music.note.list" + case .personCropRectangle: + return "person.crop.rectangle" case .personTextRectangle: if #available(iOS 15.0, *) { return "person.text.rectangle" diff --git a/Modules/UI/SystemIcon_SwiftUI/Label+SystemIcon.swift b/Modules/UI/SystemIcon_SwiftUI/Label+SystemIcon.swift index 6ddfa301..39e102c1 100644 --- a/Modules/UI/SystemIcon_SwiftUI/Label+SystemIcon.swift +++ b/Modules/UI/SystemIcon_SwiftUI/Label+SystemIcon.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,8 +29,4 @@ public extension Label where Title == Text, Icon == Image { self.init(titleKey, systemImage: icon.systemName) } - init(_ title: S, systemIcon icon: SystemIcon) where S: StringProtocol { - self.init(title, systemImage: icon.systemName) - } - } diff --git a/delete_DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER_from_all_project_pbxproj b/delete_DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER_from_all_project_pbxproj new file mode 100755 index 00000000..eb732053 --- /dev/null +++ b/delete_DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER_from_all_project_pbxproj @@ -0,0 +1,8 @@ +#!/bin/bash + +# As of version 3.21.1, Tuist generates a DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER in all pbxproj files. +# This is an obsolete key that should not be part of the project files. +# This script removes the lines containing this key from all project files. + +find . -iname '*.pbxproj' -exec sed -i .todelete '/DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = YES/d' {} \; +find . -iname '*.pbxproj.todelete' -exec rm {} \; diff --git a/iOSClient/ObvMessenger/ObvMessenger/AppDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/AppDelegate.swift index 1301d491..69f0d4aa 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/AppDelegate.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/AppDelegate.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,10 +26,8 @@ import CoreDataStack import AppAuth import OlvidUtils import ObvUICoreData +import ObvSettings -#if OLVID_SHOULD_ENABLE_ATLANTIS_PROXY -import Atlantis -#endif @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, ObvErrorMaker { @@ -53,10 +51,18 @@ class AppDelegate: UIResponder, UIApplicationDelegate, ObvErrorMaker { await appMainManager.appBackupDelegate } } + + var storeKitDelegate: StoreKitDelegate? { + get async { + await appMainManager.storeKitDelegate + } + } func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - #if OLVID_SHOULD_ENABLE_ATLANTIS_PROXY - Atlantis.start() + + #if DEBUG + // This prevents certain SwiftUI previews from crashing + if ProcessInfo.processInfo.environment["XCODE_RUNNING_FOR_PREVIEWS"] == "1" { return true } #endif os_log("🧦 Application did finish launching with options", log: log, type: .info) @@ -152,7 +158,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, ObvErrorMaker { } func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { - os_log("🌊 Application did receive remote notification", log: log, type: .info) + os_log("🫸🌊 Application did receive remote notification", log: log, type: .info) Task { [weak self] in await self?.appMainManager.application(application, didReceiveRemoteNotification: userInfo, fetchCompletionHandler: completionHandler) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/I.colorset/Contents.json b/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/I.colorset/Contents.json new file mode 100644 index 00000000..22c4bb0a --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/I.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/Blue01.colorset/Contents.json b/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/Blue01.colorset/Contents.json new file mode 100644 index 00000000..6360eb5c --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/Blue01.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xF5", + "green" : "0x65", + "red" : "0x2F" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xF5", + "green" : "0x65", + "red" : "0x2F" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/Contents.json b/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/OnboardingBackgroundColor.colorset/Contents.json b/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/OnboardingBackgroundColor.colorset/Contents.json new file mode 100644 index 00000000..36c3948c --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/OnboardingBackgroundColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xF9", + "green" : "0xF1", + "red" : "0xEF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x2C", + "green" : "0x2C", + "red" : "0x2C" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/TextFieldBackgroundColor.colorset/Contents.json b/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/TextFieldBackgroundColor.colorset/Contents.json new file mode 100644 index 00000000..36c3948c --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Assets.xcassets/NewColors/TextFieldBackgroundColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xF9", + "green" : "0xF1", + "red" : "0xEF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x2C", + "green" : "0x2C", + "red" : "0x2C" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/CollectionViewControllers/FyleMessageJoinsWithStatus/Cells/FyleCollectionViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/CollectionViewControllers/FyleMessageJoinsWithStatus/Cells/FyleCollectionViewCell.swift index aee4e943..96c6dddc 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/CollectionViewControllers/FyleMessageJoinsWithStatus/Cells/FyleCollectionViewCell.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/CollectionViewControllers/FyleMessageJoinsWithStatus/Cells/FyleCollectionViewCell.swift @@ -24,6 +24,7 @@ import MobileCoreServices import AVKit import ObvUI import ObvUICoreData +import ObvDesignSystem class FyleCollectionViewCell: UICollectionViewCell { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Constants/ObvMessengerConstants.swift b/iOSClient/ObvMessenger/ObvMessenger/Constants/ObvMessengerConstants.swift index 50e2b3d6..c67f75a8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Constants/ObvMessengerConstants.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Constants/ObvMessengerConstants.swift @@ -23,6 +23,8 @@ import ObvTypes import ObvUI import ObvUICoreData import UI_SystemIcon +import ObvSettings + enum ObvMessengerConstants { @@ -43,17 +45,7 @@ enum ObvMessengerConstants { } static let serverURL = URL(string: Bundle.main.infoDictionary!["OBV_SERVER_URL"]! as! String)! - - static let hardcodedAPIKey: UUID? = { - guard Bundle.main.infoDictionary!.keys.contains("HARDCODED_API_KEY") else { return nil } - return UUID(uuidString: Bundle.main.infoDictionary!["HARDCODED_API_KEY"]! as! String) - }() - - static let defaultServerAndAPIKey: ServerAndAPIKey? = { - guard let hardcodedAPIKey = ObvMessengerConstants.hardcodedAPIKey else { return nil } - return ServerAndAPIKey(server: serverURL, apiKey: hardcodedAPIKey) - }() - + static let toEmailForSendingInitializationFailureErrorMessage = "feedback@olvid.io" static let iCloudContainerIdentifierForEngineBackup = "iCloud.io.olvid.messenger.backup" @@ -91,6 +83,14 @@ enum ObvMessengerConstants { return true #endif } + + static var targetEnvironmentIsMacCatalyst: Bool { + #if targetEnvironment(macCatalyst) + return true + #else + return false + #endif + } /// Helper indicating if remote notifications are available or not /// @@ -167,4 +167,8 @@ enum ObvMessengerConstants { [.webrtcContinuousICE, .oneToOneContacts, .groupsV2] }() + // Other + + public static let maximumTimeIntervalForKeptForLaterMessages = TimeInterval(days: 2) + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/AppCoordinatorsHolder.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/AppCoordinatorsHolder.swift index 9efbeb3d..e58f9249 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/AppCoordinatorsHolder.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/AppCoordinatorsHolder.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,15 +20,22 @@ import Foundation import ObvEngine +import ObvTypes +import ObvUICoreData +import Combine +import ObvSettings -final class AppCoordinatorsHolder { +final class AppCoordinatorsHolder: ObvSyncAtomRequestDelegate { + private let obvEngine: ObvEngine private let persistedDiscussionsUpdatesCoordinator: PersistedDiscussionsUpdatesCoordinator private let bootstrapCoordinator: BootstrapCoordinator private let obvOwnedIdentityCoordinator: ObvOwnedIdentityCoordinator private let contactIdentityCoordinator: ContactIdentityCoordinator private let contactGroupCoordinator: ContactGroupCoordinator + private let appSyncSnapshotableCoordinator: AppSyncSnapshotableCoordinator + private var cancellables = Set() init(obvEngine: ObvEngine) { @@ -42,26 +49,153 @@ final class AppCoordinatorsHolder { return queue }() - self.persistedDiscussionsUpdatesCoordinator = PersistedDiscussionsUpdatesCoordinator(obvEngine: obvEngine, coordinatorsQueue: queueSharedAmongCoordinators, queueForComposedOperations: queueForComposedOperations) - self.bootstrapCoordinator = BootstrapCoordinator(obvEngine: obvEngine, coordinatorsQueue: queueSharedAmongCoordinators, queueForComposedOperations: queueForComposedOperations) - self.obvOwnedIdentityCoordinator = ObvOwnedIdentityCoordinator(obvEngine: obvEngine, coordinatorsQueue: queueSharedAmongCoordinators, queueForComposedOperations: queueForComposedOperations) - self.contactIdentityCoordinator = ContactIdentityCoordinator(obvEngine: obvEngine, coordinatorsQueue: queueSharedAmongCoordinators, queueForComposedOperations: queueForComposedOperations) - self.contactGroupCoordinator = ContactGroupCoordinator(obvEngine: obvEngine, coordinatorsQueue: queueSharedAmongCoordinators, queueForComposedOperations: queueForComposedOperations) + self.obvEngine = obvEngine + let messagesKeptForLaterManager = MessagesKeptForLaterManager() + + self.persistedDiscussionsUpdatesCoordinator = PersistedDiscussionsUpdatesCoordinator( + obvEngine: obvEngine, + coordinatorsQueue: queueSharedAmongCoordinators, + queueForComposedOperations: queueForComposedOperations, + messagesKeptForLaterManager: messagesKeptForLaterManager) + self.bootstrapCoordinator = BootstrapCoordinator( + obvEngine: obvEngine, + coordinatorsQueue: queueSharedAmongCoordinators, + queueForComposedOperations: queueForComposedOperations) + self.obvOwnedIdentityCoordinator = ObvOwnedIdentityCoordinator( + obvEngine: obvEngine, + coordinatorsQueue: queueSharedAmongCoordinators, + queueForComposedOperations: queueForComposedOperations) + self.contactIdentityCoordinator = ContactIdentityCoordinator( + obvEngine: obvEngine, + coordinatorsQueue: queueSharedAmongCoordinators, + queueForComposedOperations: queueForComposedOperations) + self.contactGroupCoordinator = ContactGroupCoordinator( + obvEngine: obvEngine, + coordinatorsQueue: queueSharedAmongCoordinators, + queueForComposedOperations: queueForComposedOperations) + self.appSyncSnapshotableCoordinator = AppSyncSnapshotableCoordinator( + obvEngine: obvEngine, + coordinatorsQueue: queueSharedAmongCoordinators, + queueForComposedOperations: queueForComposedOperations) + + self.persistedDiscussionsUpdatesCoordinator.syncAtomRequestDelegate = self + self.obvOwnedIdentityCoordinator.syncAtomRequestDelegate = self + self.contactIdentityCoordinator.syncAtomRequestDelegate = self + self.contactGroupCoordinator.syncAtomRequestDelegate = self + self.bootstrapCoordinator.syncAtomRequestDelegate = self + // No syncAtomRequestDelegate for the AppSyncSnapshotableCoordinator + + } + + + deinit { + cancellables.forEach { $0.cancel() } + cancellables.removeAll() } func applicationAppearedOnScreen(forTheFirstTime: Bool) async { + if forTheFirstTime { + observeSettingsChangeToSyncThemWithOtherOwnedDevices() + } await self.persistedDiscussionsUpdatesCoordinator.applicationAppearedOnScreen(forTheFirstTime: forTheFirstTime) await self.bootstrapCoordinator.applicationAppearedOnScreen(forTheFirstTime: forTheFirstTime) await self.obvOwnedIdentityCoordinator.applicationAppearedOnScreen(forTheFirstTime: forTheFirstTime) await self.contactIdentityCoordinator.applicationAppearedOnScreen(forTheFirstTime: forTheFirstTime) await self.contactGroupCoordinator.applicationAppearedOnScreen(forTheFirstTime: forTheFirstTime) + await self.appSyncSnapshotableCoordinator.applicationAppearedOnScreen(forTheFirstTime: forTheFirstTime) } } +// MARK: - ObvSyncAtomRequestDelegate + +extension AppCoordinatorsHolder { + + func requestPropagationToOtherOwnedDevices(of syncAtom: ObvSyncAtom, for ownedCryptoId: ObvCryptoId) async { + + do { + try await obvEngine.requestPropagationToOtherOwnedDevices(of: syncAtom, for: ownedCryptoId) + } catch { + assertionFailure(error.localizedDescription) + } + + } + + + func deleteDialog(with uuid: UUID) throws { + try obvEngine.deleteDialog(with: uuid) + } + +} + + +// MARK: - Sync ObvMessengerSettings with other owned devices + +extension AppCoordinatorsHolder { + + private func observeSettingsChangeToSyncThemWithOtherOwnedDevices() { + + ObvMessengerSettingsObservableObject.shared.$autoAcceptGroupInviteFrom + .compactMap { (autoAcceptGroupInviteFrom, changeMadeFromAnotherOwnedDevice, ownedCryptoId) in + // Filter out changes made from another device since we don't need to sync with them + guard !changeMadeFromAnotherOwnedDevice else { return nil } + guard let ownedCryptoId else { return nil } + return (autoAcceptGroupInviteFrom, ownedCryptoId) + } + .compactMap { (autoAcceptGroupInviteFrom: ObvMessengerSettings.ContactsAndGroups.AutoAcceptGroupInviteFrom, ownedCryptoId: ObvCryptoId) in + // Create the ObvSyncAtom + let category = Self.getObvSyncAtomAutoJoinGroupsCategory(from: autoAcceptGroupInviteFrom) + let syncAtom = ObvSyncAtom.settingAutoJoinGroups(category: category) + return (syncAtom, ownedCryptoId) + } + .sink { [weak self] (syncAtom: ObvSyncAtom, ownedCryptoId: ObvCryptoId) in + // Request the sync of the ObvSyncAtom to the engine + Task { [weak self] in + await self?.requestPropagationToOtherOwnedDevices(of: syncAtom, for: ownedCryptoId) + } + } + .store(in: &cancellables) + + ObvMessengerSettingsObservableObject.shared.$doSendReadReceipt + .compactMap { (doSendReadReceipt: Bool, changeMadeFromAnotherOwnedDevice: Bool, ownedCryptoId: ObvCryptoId?) in + // Filter out changes made from another device since we don't need to sync with them + guard !changeMadeFromAnotherOwnedDevice else { return nil } + guard let ownedCryptoId else { return nil } + return (doSendReadReceipt, ownedCryptoId) + } + .compactMap { (doSendReadReceipt: Bool, ownedCryptoId: ObvCryptoId) in + // Create the ObvSyncAtom + let syncAtom = ObvSyncAtom.settingDefaultSendReadReceipts(sendReadReceipt: doSendReadReceipt) + return (syncAtom, ownedCryptoId) + } + .sink { [weak self] (syncAtom: ObvSyncAtom, ownedCryptoId: ObvCryptoId) in + // Request the sync of the ObvSyncAtom to the engine + Task { [weak self] in + await self?.requestPropagationToOtherOwnedDevices(of: syncAtom, for: ownedCryptoId) + } + } + .store(in: &cancellables) + + } + + + private static func getObvSyncAtomAutoJoinGroupsCategory(from category: ObvMessengerSettings.ContactsAndGroups.AutoAcceptGroupInviteFrom) -> ObvSyncAtom.AutoJoinGroupsCategory { + switch category { + case .everyone: + return .everyone + case .noOne: + return .nobody + case .oneToOneContactsOnly: + return .contacts + } + } + + +} + final class LoggedOperationQueue: OperationQueue { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/AppSyncSnapshotableCoordinator/AppSyncSnapshotableCoordinator.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/AppSyncSnapshotableCoordinator/AppSyncSnapshotableCoordinator.swift new file mode 100644 index 00000000..4321612c --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/AppSyncSnapshotableCoordinator/AppSyncSnapshotableCoordinator.swift @@ -0,0 +1,206 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvEngine +import os.log +import ObvTypes +import CoreData +import ObvUICoreData +import ObvCrypto +import OlvidUtils + + + +final class AppSyncSnapshotableCoordinator: ObvAppSnapshotable { + + private let obvEngine: ObvEngine + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: AppSyncSnapshotableCoordinator.self)) + private let coordinatorsQueue: OperationQueue + private let queueForComposedOperations: OperationQueue + + init(obvEngine: ObvEngine, coordinatorsQueue: OperationQueue, queueForComposedOperations: OperationQueue) { + self.obvEngine = obvEngine + self.coordinatorsQueue = coordinatorsQueue + self.queueForComposedOperations = queueForComposedOperations + do { + try obvEngine.registerAppSnapshotableObject(self) + } catch { + os_log("Could not register the app within the engine for performing App data backup", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + } + } + + func applicationAppearedOnScreen(forTheFirstTime: Bool) async {} + + + // MARK: - ObvSnapshotable + + func getSyncSnapshotNode(for ownedCryptoId: ObvCryptoId) throws -> any ObvSyncSnapshotNode { + return try ObvStack.shared.performBackgroundTaskAndWaitOrThrow { context in + return try AppSyncSnapshotNode(ownedCryptoId: ownedCryptoId, within: context) + } + } + + + /// Called by the protocol restoring a sync snapshot during an owned identity transfer protocol + func syncEngineDatabaseThenUpdateAppDatabase(using syncSnapshotNode: any ObvSyncSnapshotNode) async throws { + + // If the sync fails, the rest cannot be perfomed + do { + try await syncAppDatabasesWithEngine() + } catch { + assertionFailure() + throw error + } + + var errorToThrowInTheEnd: Error? + + do { + guard let appSyncSnapshotNode = syncSnapshotNode as? AppSyncSnapshotNode else { + assertionFailure() + throw ObvError.unexpectedSnapshotType + } + try await updateAppDatabase(using: appSyncSnapshotNode) + } catch { + assertionFailure() + errorToThrowInTheEnd = error + } + + await ObvPushNotificationManager.shared.requestRegisterToPushNotificationsForAllActiveOwnedIdentities() + + if let errorToThrowInTheEnd { + assertionFailure() + throw errorToThrowInTheEnd + } + + } + + + func requestServerToKeepDeviceActive(ownedCryptoId: ObvCryptoId, deviceUidToKeepActive: UID) async throws { + do { + // We first make sure the current device is known to the server + await ObvPushNotificationManager.shared.requestRegisterToPushNotificationsForAllActiveOwnedIdentities() + // We then make an engine request allowing to keep the device active + try await obvEngine.requestSettingUnexpiringDevice(ownedCryptoId: ownedCryptoId, deviceIdentifier: deviceUidToKeepActive.raw) + } catch { + assertionFailure() + throw error + } + } + + + private func syncAppDatabasesWithEngine() async throws { + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + ObvMessengerInternalNotification.requestSyncAppDatabasesWithEngine(queuePriority: .veryHigh) { result in + switch result { + case .failure(let error): + continuation.resume(throwing: error) + case .success: + continuation.resume() + } + }.postOnDispatchQueue() + } + } + + + private func updateAppDatabase(using appSyncSnapshotNode: AppSyncSnapshotNode) async throws { + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + + let op1 = UpdateAppDatabaseWithAppSyncSnapshotNodeOperation(appSyncSnapshotNode: appSyncSnapshotNode) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + composedOp.queuePriority = .high + + composedOp.appendCompletionBlock { + guard !op1.isCancelled else { + if let reasonForCancel = op1.reasonForCancel { + continuation.resume(throwing: reasonForCancel) + return + } else { + let error = ObvError.updateAppDatabaseFailedWithoutSpecifyingError + continuation.resume(throwing: error) + return + } + } + continuation.resume() + } + + coordinatorsQueue.addOperation(composedOp) + } + } + + + func serializeObvSyncSnapshotNode(_ syncSnapshotNode: any ObvSyncSnapshotNode) throws -> Data { + guard let node = syncSnapshotNode as? AppSyncSnapshotNode else { + assertionFailure() + throw ObvError.unexpectedSnapshotType + } + let jsonEncoder = JSONEncoder() + return try jsonEncoder.encode(node) + } + + + func deserializeObvSyncSnapshotNode(_ serializedSyncSnapshotNode: Data) throws -> any ObvSyncSnapshotNode { + let jsonDecoder = JSONDecoder() + return try jsonDecoder.decode(AppSyncSnapshotNode.self, from: serializedSyncSnapshotNode) + } + + + enum ObvError: Error { + case unexpectedSnapshotType + case updateAppDatabaseFailedWithoutSpecifyingError + } + +} + + +// MARK: - Helpers + +extension AppSyncSnapshotableCoordinator { + + private func createCompositionOfOneContextualOperation(op1: ContextualOperationWithSpecificReasonForCancel) -> CompositionOfOneContextualOperation { + let composedOp = CompositionOfOneContextualOperation(op1: op1, contextCreator: ObvStack.shared, queueForComposedOperations: queueForComposedOperations, log: Self.log, flowId: FlowIdentifier()) + composedOp.completionBlock = { [weak composedOp] in + assert(composedOp != nil) + composedOp?.logReasonIfCancelled(log: Self.log) + } + return composedOp + } + + + private func createCompositionOfTwoContextualOperation(op1: ContextualOperationWithSpecificReasonForCancel, op2: ContextualOperationWithSpecificReasonForCancel) -> CompositionOfTwoContextualOperations { + let composedOp = CompositionOfTwoContextualOperations(op1: op1, op2: op2, contextCreator: ObvStack.shared, queueForComposedOperations: queueForComposedOperations, log: Self.log, flowId: FlowIdentifier()) + composedOp.completionBlock = { [weak composedOp] in + assert(composedOp != nil) + composedOp?.logReasonIfCancelled(log: Self.log) + } + return composedOp + } + + + private func createCompositionOfFourContextualOperation(op1: ContextualOperationWithSpecificReasonForCancel, op2: ContextualOperationWithSpecificReasonForCancel, op3: ContextualOperationWithSpecificReasonForCancel, op4: ContextualOperationWithSpecificReasonForCancel) -> CompositionOfFourContextualOperations { + let composedOp = CompositionOfFourContextualOperations(op1: op1, op2: op2, op3: op3, op4: op4, contextCreator: ObvStack.shared, queueForComposedOperations: queueForComposedOperations, log: Self.log, flowId: FlowIdentifier()) + composedOp.completionBlock = { [weak composedOp] in + assert(composedOp != nil) + composedOp?.logReasonIfCancelled(log: Self.log) + } + return composedOp + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/AppSyncSnapshotableCoordinator/Operations/UpdateAppDatabaseWithAppSyncSnapshotNodeOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/AppSyncSnapshotableCoordinator/Operations/UpdateAppDatabaseWithAppSyncSnapshotNodeOperation.swift new file mode 100644 index 00000000..6b54d595 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/AppSyncSnapshotableCoordinator/Operations/UpdateAppDatabaseWithAppSyncSnapshotNodeOperation.swift @@ -0,0 +1,52 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import ObvEngine +import os.log +import CoreData +import ObvTypes +import ObvUICoreData + + +final class UpdateAppDatabaseWithAppSyncSnapshotNodeOperation: ContextualOperationWithSpecificReasonForCancel { + + private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: SyncPersistedObvContactDevicesWithEngineOperation.self)) + + let appSyncSnapshotNode: AppSyncSnapshotNode + + init(appSyncSnapshotNode: AppSyncSnapshotNode) { + self.appSyncSnapshotNode = appSyncSnapshotNode + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + try appSyncSnapshotNode.useToUpdateAppDatabase(within: obvContext.context) + + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/BoostrapCoordinator.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/BoostrapCoordinator.swift index 89087ac7..2bb8967c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/BoostrapCoordinator.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/BoostrapCoordinator.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,6 +25,7 @@ import LinkPresentation import OlvidUtils import ObvEngine import ObvUICoreData +import ObvSettings final class BootstrapCoordinator: ObvErrorMaker { @@ -34,6 +35,7 @@ final class BootstrapCoordinator: ObvErrorMaker { private var observationTokens = [NSObjectProtocol]() private let coordinatorsQueue: OperationQueue private let queueForComposedOperations: OperationQueue + weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? static let errorDomain = "BootstrapCoordinator" @@ -65,7 +67,7 @@ final class BootstrapCoordinator: ObvErrorMaker { resetOwnObvCapabilities() autoAcceptPendingGroupInvitesIfPossible() if forTheFirstTime { - processRequestSyncAppDatabasesWithEngine(completion: { _ in }) + processRequestSyncAppDatabasesWithEngine(queuePriority: .veryLow, completion: { _ in }) deleteOrphanedPersistedAttachmentSentRecipientInfosOperation() } } @@ -76,11 +78,11 @@ final class BootstrapCoordinator: ObvErrorMaker { // Internal Notifications observationTokens.append(contentsOf: [ - ObvMessengerCoreDataNotification.observePersistedContactWasInserted { [weak self] contactPermanentID in + ObvMessengerCoreDataNotification.observePersistedContactWasInserted { [weak self] contactPermanentID, _, _ in self?.processPersistedContactWasInsertedNotification(contactPermanentID: contactPermanentID) }, - ObvMessengerInternalNotification.observeRequestSyncAppDatabasesWithEngine { [weak self] completion in - self?.processRequestSyncAppDatabasesWithEngine(completion: completion) + ObvMessengerInternalNotification.observeRequestSyncAppDatabasesWithEngine { [weak self] (queuePriority, completion) in + self?.processRequestSyncAppDatabasesWithEngine(queuePriority: queuePriority, completion: completion) }, ]) @@ -138,8 +140,9 @@ extension BootstrapCoordinator { private func resyncPersistedInvitationsWithEngine() { Task(priority: .utility) { do { + guard let syncAtomRequestDelegate else { assertionFailure(); return } let obvDialogsFromEngine = try await obvEngine.getAllDialogsWithinEngine() - let op1 = SyncPersistedInvitationsWithEngineOperation(obvDialogsFromEngine: obvDialogsFromEngine, obvEngine: obvEngine) + let op1 = SyncPersistedInvitationsWithEngineOperation(obvDialogsFromEngine: obvDialogsFromEngine, obvEngine: obvEngine, syncAtomRequestDelegate: syncAtomRequestDelegate) let composedOp = createCompositionOfOneContextualOperation(op1: op1) composedOp.queuePriority = .veryLow coordinatorsQueue.addOperation(composedOp) @@ -158,28 +161,75 @@ extension BootstrapCoordinator { } - private func processRequestSyncAppDatabasesWithEngine(completion: @escaping (Result) -> Void) { + private func processRequestSyncAppDatabasesWithEngine(queuePriority: Operation.QueuePriority, completion: @escaping (Result) -> Void) { assert(!Thread.isMainThread) - let op1 = SyncPersistedObvOwnedIdentitiesWithEngineOperation(obvEngine: obvEngine) - let op2 = SyncPersistedObvContactIdentitiesWithEngineOperation(obvEngine: obvEngine) - let op3 = SyncPersistedContactGroupsWithEngineOperation(obvEngine: obvEngine) - let op4 = SyncPersistedContactGroupsV2WithEngineOperation(obvEngine: obvEngine) - let composedOp = createCompositionOfFourContextualOperation(op1: op1, op2: op2, op3: op3, op4: op4) - composedOp.queuePriority = .veryLow + + var operationsToQueue = [Operation]() + + do { + let op1 = SyncPersistedObvOwnedIdentitiesWithEngineOperation(obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + composedOp.queuePriority = queuePriority + composedOp.logExecutionDuration(log: Self.log) + operationsToQueue.append(composedOp) + } + + do { + let op1 = SyncPersistedObvOwnedDevicesWithEngineOperation(obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + composedOp.queuePriority = queuePriority + composedOp.logExecutionDuration(log: Self.log) + operationsToQueue.append(composedOp) + } + + do { + let op1 = SyncPersistedObvContactIdentitiesWithEngineOperation(obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + composedOp.queuePriority = queuePriority + composedOp.logExecutionDuration(log: Self.log) + operationsToQueue.append(composedOp) + } + + do { + let op1 = SyncPersistedObvContactDevicesWithEngineOperation(obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + composedOp.queuePriority = queuePriority + composedOp.logExecutionDuration(log: Self.log) + operationsToQueue.append(composedOp) + } + + do { + let op1 = SyncPersistedContactGroupsWithEngineOperation(obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + composedOp.queuePriority = queuePriority + composedOp.logExecutionDuration(log: Self.log) + operationsToQueue.append(composedOp) + } + + do { + let op1 = SyncPersistedContactGroupsV2WithEngineOperation(obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + composedOp.queuePriority = queuePriority + composedOp.logExecutionDuration(log: Self.log) + operationsToQueue.append(composedOp) + } let blockOp = BlockOperation() blockOp.completionBlock = { - if composedOp.isCancelled { - let reasonForCancel = composedOp.reasonForCancel ?? Self.makeError(message: "Request sync of app database with engine did fail without specifying a proper reason. This is a bug") + guard operationsToQueue.allSatisfy({ $0.isFinished && !$0.isCancelled }) else { + let reasonForCancel = Self.makeError(message: "One of the sync methods failed") assertionFailure() completion(.failure(reasonForCancel)) - } else { - completion(.success(())) + return } + completion(.success(())) } + operationsToQueue.append(blockOp) - blockOp.addDependency(composedOp) - coordinatorsQueue.addOperations([composedOp, blockOp], waitUntilFinished: false) + operationsToQueue.makeEachOperationDependentOnThePreceedingOne() + + coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/AutoAcceptPendingGroupInvitesIfPossibleOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/AutoAcceptPendingGroupInvitesIfPossibleOperation.swift index 2b20dd98..a37de205 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/AutoAcceptPendingGroupInvitesIfPossibleOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/AutoAcceptPendingGroupInvitesIfPossibleOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,8 @@ import OlvidUtils import ObvEngine import os.log import ObvUICoreData +import CoreData +import ObvSettings final class AutoAcceptPendingGroupInvitesIfPossibleOperation: ContextualOperationWithSpecificReasonForCancel { @@ -34,78 +36,82 @@ final class AutoAcceptPendingGroupInvitesIfPossibleOperation: ContextualOperatio super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { // If the app settings is sich that we should never auto-accept group invitations, we are done. guard ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom != .noOne else { return } - obvContext.performAndWait { - - do { - - let allGroupInvites = try PersistedInvitation.getAllGroupInvitesForAllOwnedIdentities(within: obvContext.context) - - for groupInvite in allGroupInvites { - - guard let ownedIdentity = groupInvite.ownedIdentity else { continue } - guard let obvDialog = groupInvite.obvDialog else { assertionFailure(); continue } - - switch obvDialog.category { - - case .acceptGroupInvite(groupMembers: _, groupOwner: let groupOwner): - - switch ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom { - case .noOne: - continue - case .oneToOneContactsOnly: - let groupOwner = try PersistedObvContactIdentity.get(cryptoId: groupOwner.cryptoId, ownedIdentity: ownedIdentity, whereOneToOneStatusIs: .oneToOne) - let groupOwnerIsAOneToOneContact = (groupOwner != nil) - if groupOwnerIsAOneToOneContact { - var localDialog = obvDialog - try localDialog.setResponseToAcceptGroupInvite(acceptInvite: true) - obvEngine.respondTo(localDialog) - } - case .everyone: + do { + + let allGroupInvites = try PersistedInvitation.getAllGroupInvitesForAllOwnedIdentities(within: obvContext.context) + + for groupInvite in allGroupInvites { + + guard let ownedIdentity = groupInvite.ownedIdentity else { continue } + guard let obvDialog = groupInvite.obvDialog else { assertionFailure(); continue } + + switch obvDialog.category { + + case .acceptGroupInvite(groupMembers: _, groupOwner: let groupOwner): + + switch ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom { + case .noOne: + continue + case .oneToOneContactsOnly: + let groupOwner = try PersistedObvContactIdentity.get(cryptoId: groupOwner.cryptoId, ownedIdentity: ownedIdentity, whereOneToOneStatusIs: .oneToOne) + let groupOwnerIsAOneToOneContact = (groupOwner != nil) + if groupOwnerIsAOneToOneContact { var localDialog = obvDialog try localDialog.setResponseToAcceptGroupInvite(acceptInvite: true) - obvEngine.respondTo(localDialog) - } - - case .acceptGroupV2Invite(inviter: let inviter, group: _): - - switch ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom { - case .noOne: - continue - case .oneToOneContactsOnly: - let inviterContact = try PersistedObvContactIdentity.get(cryptoId: inviter, ownedIdentity: ownedIdentity, whereOneToOneStatusIs: .oneToOne) - let groupOwnerIsAOneToOneContact = (inviterContact != nil) - if groupOwnerIsAOneToOneContact { - var localDialog = obvDialog - try localDialog.setResponseToAcceptGroupV2Invite(acceptInvite: true) - obvEngine.respondTo(localDialog) + let dialogForEngine = localDialog + Task { + try? await obvEngine.respondTo(dialogForEngine) } - case .everyone: + } + case .everyone: + var localDialog = obvDialog + try localDialog.setResponseToAcceptGroupInvite(acceptInvite: true) + let dialogForEngine = localDialog + Task { + try? await obvEngine.respondTo(dialogForEngine) + } + } + + case .acceptGroupV2Invite(inviter: let inviter, group: _): + + switch ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom { + case .noOne: + continue + case .oneToOneContactsOnly: + let inviterContact = try PersistedObvContactIdentity.get(cryptoId: inviter, ownedIdentity: ownedIdentity, whereOneToOneStatusIs: .oneToOne) + let groupOwnerIsAOneToOneContact = (inviterContact != nil) + if groupOwnerIsAOneToOneContact { var localDialog = obvDialog try localDialog.setResponseToAcceptGroupV2Invite(acceptInvite: true) - obvEngine.respondTo(localDialog) + let dialogForEngine = localDialog + Task { + try? await obvEngine.respondTo(dialogForEngine) + } + } + case .everyone: + var localDialog = obvDialog + try localDialog.setResponseToAcceptGroupV2Invite(acceptInvite: true) + let dialogForEngine = localDialog + Task { + try? await obvEngine.respondTo(dialogForEngine) } - - default: - - assertionFailure("There is a bug with the getAllGroupInvites query") - continue - } + + default: + + assertionFailure("There is a bug with the getAllGroupInvites query") + continue + } - - } catch { - return cancel(withReason: .coreDataError(error: error)) } + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/DeleteOldPendingRepliedToOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/DeleteOldPendingRepliedToOperation.swift index 81d161fc..ee2bbed8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/DeleteOldPendingRepliedToOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/DeleteOldPendingRepliedToOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,22 +22,18 @@ import Foundation import OlvidUtils import os.log import ObvUICoreData +import CoreData final class DeleteOldPendingRepliedToOperation: ContextualOperationWithSpecificReasonForCancel { - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - try PersistedMessageReceived.batchDeletePendingRepliedToEntriesOlderThan(Date(timeIntervalSinceNow: -TimeInterval(months: 1)), within: obvContext.context) - } catch let error { - return cancel(withReason: .coreDataError(error: error)) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + try PersistedMessageReceived.batchDeletePendingRepliedToEntriesOlderThan(Date(timeIntervalSinceNow: -TimeInterval(months: 1)), within: obvContext.context) + } catch let error { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/DeleteOrphanedPersistedAttachmentSentRecipientInfosOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/DeleteOrphanedPersistedAttachmentSentRecipientInfosOperation.swift index 39478b3f..b9f478cc 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/DeleteOrphanedPersistedAttachmentSentRecipientInfosOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/DeleteOrphanedPersistedAttachmentSentRecipientInfosOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,22 +22,18 @@ import Foundation import OlvidUtils import os.log import ObvUICoreData +import CoreData final class DeleteOrphanedPersistedAttachmentSentRecipientInfosOperation: ContextualOperationWithSpecificReasonForCancel { - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - try PersistedAttachmentSentRecipientInfos.deleteOrphaned(within: obvContext) - } catch let error { - return cancel(withReason: .coreDataError(error: error)) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + try PersistedAttachmentSentRecipientInfos.deleteOrphaned(within: obvContext) + } catch let error { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/DeletePersistedInvitationTheCannotBeParsedAnymoreOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/DeletePersistedInvitationTheCannotBeParsedAnymoreOperation.swift index 24474b09..51889596 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/DeletePersistedInvitationTheCannotBeParsedAnymoreOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/DeletePersistedInvitationTheCannotBeParsedAnymoreOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -21,6 +21,7 @@ import Foundation import OlvidUtils import ObvUICoreData +import CoreData /// This operation is used during bootstrap to delete any `PersistedInvitation` that cannot be properly parsed, i.e., that returns a `nil` ObvDialog. @@ -28,26 +29,18 @@ import ObvUICoreData /// the corresponding obsolete `PersistedInvitation` instances. final class DeletePersistedInvitationTheCannotBeParsedAnymoreOperation: ContextualOperationWithSpecificReasonForCancel { - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { - let allInvitations = try PersistedInvitation.getAllForAllOwnedIdentities(within: obvContext.context) - let invitationsToDelete = allInvitations.filter { $0.obvDialog == nil } - guard !invitationsToDelete.isEmpty else { return } - try invitationsToDelete.forEach { - try $0.delete() - } - } catch { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + do { + let allInvitations = try PersistedInvitation.getAllForAllOwnedIdentities(within: obvContext.context) + let invitationsToDelete = allInvitations.filter { $0.obvDialog == nil } + guard !invitationsToDelete.isEmpty else { return } + try invitationsToDelete.forEach { + try $0.delete() } - + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SendUnsentDraftsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SendUnsentDraftsOperation.swift index 69e9d192..6a59921e 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SendUnsentDraftsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SendUnsentDraftsOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -21,29 +21,22 @@ import Foundation import OlvidUtils import ObvUICoreData +import CoreData final class SendUnsentDraftsOperation: ContextualOperationWithSpecificReasonForCancel { - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { - - let unsentDrafts = try PersistedDraft.getAllUnsent(within: obvContext.context) - unsentDrafts.forEach { $0.forceResend() } - - - } catch { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) - } + do { + + let unsentDrafts = try PersistedDraft.getAllUnsent(within: obvContext.context) + unsentDrafts.forEach { $0.forceResend() } + + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedContactGroupsV2WithEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedContactGroupsV2WithEngineOperation.swift index 7dbc8d70..fdb53c61 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedContactGroupsV2WithEngineOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedContactGroupsV2WithEngineOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,7 @@ import ObvEngine import os.log import ObvTypes import ObvUICoreData +import CoreData final class SyncPersistedContactGroupsV2WithEngineOperation: ContextualOperationWithSpecificReasonForCancel { @@ -36,87 +37,78 @@ final class SyncPersistedContactGroupsV2WithEngineOperation: ContextualOperation super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { os_log("Syncing Persisted Contact Groups V2 with Engine Contact Groups V2", log: log, type: .info) - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + do { + + // Delete orphaned `PersistedGroupV2Member` entities + + try PersistedGroupV2Member.deleteOrphanedPersistedGroupV2Members(within: obvContext.context) + + // Loop over all owned identities + + let ownedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) - do { + try ownedIdentities.forEach { ownedIdentity in - // Delete orphaned `PersistedGroupV2Member` entities + let groups: Set + do { + groups = try obvEngine.getAllObvGroupV2OfOwnedIdentity(with: ownedIdentity.cryptoId) + } catch { + assertionFailure() + os_log("Could not get all group v2 from engine for an owned identity: %{public}@", log: log, type: .fault, error.localizedDescription) + return + } - try PersistedGroupV2Member.deleteOrphanedPersistedGroupV2Members(within: obvContext.context) + // Create or update the PersistedGroupV2 instances - // Loop over all owned identities + groups.forEach { obvGroupV2 in + do { + _ = try ownedIdentity.createOrUpdateGroupV2(obvGroupV2: obvGroupV2, createdByMe: false) + } catch { + os_log("Could not create or update a PersistedGroupV2: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + // Continue anyway + } + } - let ownedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) + // Remove any PersistedGroupV2 that does not exist within the engine - try ownedIdentities.forEach { ownedIdentity in - - let groups: Set + let persistedGroups = try PersistedGroupV2.getAllPersistedGroupV2(ownedIdentity: ownedIdentity) + let appGroupIdentifierToKeep = Set(groups.map({ $0.appGroupIdentifier })) + for persistedGroup in persistedGroups { + if appGroupIdentifierToKeep.contains(persistedGroup.groupIdentifier) { continue } do { - groups = try obvEngine.getAllObvGroupV2OfOwnedIdentity(with: ownedIdentity.cryptoId) + try persistedGroup.delete() } catch { assertionFailure() - os_log("Could not get all group v2 from engine for an owned identity: %{public}@", log: log, type: .fault, error.localizedDescription) - return - } - - // Create or update the PersistedGroupV2 instances - - groups.forEach { obvGroupV2 in - do { - _ = try PersistedGroupV2.createOrUpdate(obvGroupV2: obvGroupV2, - createdByMe: false, - within: obvContext.context) - } catch { - os_log("Could not create or update a PersistedGroupV2: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - // Continue anyway - } + os_log("Could not delete one of the PersistedGroupV2 present within the app but not within the engine: %{public}@", log: log, type: .fault, error.localizedDescription) + continue } - - // Remove any PersistedGroupV2 that does not exist within the engine - - let persistedGroups = try PersistedGroupV2.getAllPersistedGroupV2(ownedIdentity: ownedIdentity) - let appGroupIdentifierToKeep = Set(groups.map({ $0.appGroupIdentifier })) - for persistedGroup in persistedGroups { - if appGroupIdentifierToKeep.contains(persistedGroup.groupIdentifier) { continue } - do { - try persistedGroup.delete() - } catch { - assertionFailure() - os_log("Could not delete one of the PersistedGroupV2 present within the app but not within the engine: %{public}@", log: log, type: .fault, error.localizedDescription) - continue - } - } - - // Make sure that all remaining persisted contact groups do have an associated display contact group. - // For those that have one, make sure it is in sync. - - for group in persistedGroups { - guard !group.isDeleted else { continue } - do { - try group.createOrUpdateTheAssociatedDisplayedContactGroup() - } catch { - os_log("Could not create or update the underlying displayed contact group of a persisted contact group: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() // In production, continue anyway - } - } - - } // End ownedIdentities.forEach + } - } catch { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) - } + // Make sure that all remaining persisted contact groups do have an associated display contact group. + // For those that have one, make sure it is in sync. - } // End obvContext.performAndWait + for group in persistedGroups { + guard !group.isDeleted else { continue } + do { + try group.createOrUpdateTheAssociatedDisplayedContactGroup() + } catch { + os_log("Could not create or update the underlying displayed contact group of a persisted contact group: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() // In production, continue anyway + } + } + + } // End ownedIdentities.forEach + + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedContactGroupsWithEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedContactGroupsWithEngineOperation.swift index 8fc89b36..35e4bdb7 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedContactGroupsWithEngineOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedContactGroupsWithEngineOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import OlvidUtils import ObvEngine import os.log import ObvUICoreData +import CoreData @@ -36,135 +37,140 @@ final class SyncPersistedContactGroupsWithEngineOperation: ContextualOperationWi super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { os_log("Syncing Persisted Contact Groups with Engine Contact Groups", log: log, type: .info) - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) + let ownedIdentities: [PersistedObvOwnedIdentity] + do { + ownedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } - obvContext.performAndWait { + ownedIdentities.forEach { ownedIdentity in - let ownedIdentities: [PersistedObvOwnedIdentity] + let obvContactGroups: Set do { - ownedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) + obvContactGroups = try obvEngine.getAllContactGroupsForOwnedIdentity(with: ownedIdentity.cryptoId) } catch { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + os_log("Could not get all group identifiers from engine: %{public}@", log: log, type: .fault, error.localizedDescription) + return } - ownedIdentities.forEach { ownedIdentity in - - let obvContactGroups: Set + // Split the set of obvContactGroups into missing and existing contact groups + + var missingObvContactGroups: Set // Groups that exist within the engine, but not within the app + var existingObvContactGroups: Set // Groups that exist both within the engine and within the app + do { + missingObvContactGroups = try obvContactGroups.filter({ + let groupIdentifier = $0.groupIdentifier + return (try PersistedContactGroup.getContactGroup(groupIdentifier: groupIdentifier, ownedIdentity: ownedIdentity)) == nil + }) + existingObvContactGroups = obvContactGroups.subtracting(missingObvContactGroups) + } catch { + os_log("Could not construct a list of missing obv contact groups", log: log, type: .fault) + return + } + + os_log("Number of contact groups existing within the engine but missing within the app: %{public}d", log: log, type: .info, missingObvContactGroups.count) + os_log("Number of contact groups existing within the engine and present within the app: %{public}d", log: log, type: .info, existingObvContactGroups.count) + + // Create a persisted contact group for each missing obv contact group. + // Each time a contact group is created within the app, add this group to the list of existing contact group within the app + + while let obvContactGroup = missingObvContactGroups.popFirst() { + switch obvContactGroup.groupType { + case .joined: + guard (try? PersistedContactGroupJoined(contactGroup: obvContactGroup, within: obvContext.context)) != nil else { + os_log("Could not create a missing persisted contact group joined", log: log, type: .error) + continue + } + case .owned: + guard (try? PersistedContactGroupOwned(contactGroup: obvContactGroup, within: obvContext.context)) != nil else { + os_log("Could not create a missing persisted contact group owned", log: log, type: .error) + continue + } + } + // If we reach this line, a new contact group was created within the app. We can add it to the list of existingObvContactGroups. + existingObvContactGroups.insert(obvContactGroup) + } + + // Sync each existing persisted contact group with its engine's counterpart + + for obvContactGroup in existingObvContactGroups { + let groupIdentifier = obvContactGroup.groupIdentifier + guard let persistedContactGroup = try? PersistedContactGroup.getContactGroup(groupIdentifier: groupIdentifier, ownedIdentity: ownedIdentity) else { continue } do { - obvContactGroups = try obvEngine.getAllContactGroupsForOwnedIdentity(with: ownedIdentity.cryptoId) - } catch { - os_log("Could not get all group identifiers from engine: %{public}@", log: log, type: .fault, error.localizedDescription) - return + try persistedContactGroup.setContactIdentities(to: obvContactGroup.groupMembers) + } catch let error { + os_log("Could not set the contacts of a contact group while bootstrapping: %{public}@", log: log, type: .fault, error.localizedDescription) } - - // Split the set of obvContactGroups into missing and existing contact groups - - var missingObvContactGroups: Set // Groups that exist within the engine, but not within the app - var existingObvContactGroups: Set // Groups that exist both within the engine and within the app do { - missingObvContactGroups = try obvContactGroups.filter({ - let groupId = ($0.groupUid, $0.groupOwner.cryptoId) - return (try PersistedContactGroup.getContactGroup(groupId: groupId, ownedIdentity: ownedIdentity)) == nil - }) - existingObvContactGroups = obvContactGroups.subtracting(missingObvContactGroups) + try persistedContactGroup.setPendingMembers(to: obvContactGroup.pendingGroupMembers) } catch { - os_log("Could not construct a list of missing obv contact groups", log: log, type: .fault) - return + return cancel(withReason: .coreDataError(error: error)) } - - os_log("Number of contact groups existing within the engine but missing within the app: %{public}d", log: log, type: .info, missingObvContactGroups.count) - os_log("Number of contact groups existing within the engine and present within the app: %{public}d", log: log, type: .info, existingObvContactGroups.count) - - // Create a persisted contact group for each missing obv contact group. - // Each time a contact group is created within the app, add this group to the list of existing contact group within the app - - while let obvContactGroup = missingObvContactGroups.popFirst() { - switch obvContactGroup.groupType { - case .joined: - guard (try? PersistedContactGroupJoined(contactGroup: obvContactGroup, within: obvContext.context)) != nil else { - os_log("Could not create a missing persisted contact group joined", log: log, type: .error) - continue - } - case .owned: - guard (try? PersistedContactGroupOwned(contactGroup: obvContactGroup, within: obvContext.context)) != nil else { - os_log("Could not create a missing persisted contact group owned", log: log, type: .error) - continue + persistedContactGroup.updatePhoto(with: obvContactGroup.trustedOrLatestPhotoURL) + if let groupJoined = persistedContactGroup as? PersistedContactGroupJoined { + if obvContactGroup.publishedDetailsAndTrustedOrLatestDetailsAreEquivalentForTheUser() { + groupJoined.setStatus(to: .noNewPublishedDetails) + } else { + switch groupJoined.status { + case .noNewPublishedDetails: + groupJoined.setStatus(to: .unseenPublishedDetails) + case .unseenPublishedDetails, .seenPublishedDetails: + break // Don't change the status } } - // If we reach this line, a new contact group was created within the app. We can add it to the list of existingObvContactGroups. - existingObvContactGroups.insert(obvContactGroup) } - - // Sync each existing persisted contact group with its engine's counterpart - - for obvContactGroup in existingObvContactGroups { - let groupId = (obvContactGroup.groupUid, obvContactGroup.groupOwner.cryptoId) - guard let persistedContactGroup = try? PersistedContactGroup.getContactGroup(groupId: groupId, ownedIdentity: ownedIdentity) else { continue } + } + + // Remove any persisted contact group that does not exist within the engine + + if let persistedGroups = try? PersistedContactGroup.getAllContactGroups(ownedIdentity: ownedIdentity, within: obvContext.context) { + let uidsOfGroupsToKeep = existingObvContactGroups.map { $0.groupUid } + let persistedGroupsToDelete = persistedGroups.filter { !uidsOfGroupsToKeep.contains($0.groupUid) } + os_log("Number of contact groups existing within the app that must be deleted: %{public}d", log: log, type: .info, persistedGroupsToDelete.count) + for group in persistedGroupsToDelete { + + let persistedGroupDiscussion = group.discussion + do { - try persistedContactGroup.setContactIdentities(to: obvContactGroup.groupMembers) - } catch let error { - os_log("Could not set the contacts of a contact group while bootstrapping: %{public}@", log: log, type: .fault, error.localizedDescription) + try persistedGroupDiscussion.setStatus(to: .locked) + } catch { + os_log("Could not lock the persisted group discussion", log: log, type: .error) + return } + do { - try persistedContactGroup.setPendingMembers(to: obvContactGroup.pendingGroupMembers) + try group.delete() } catch { - return cancel(withReason: .coreDataError(error: error)) - } - persistedContactGroup.updatePhoto(with: obvContactGroup.trustedOrLatestPhotoURL) - } - - // Remove any persisted contact group that does not exist within the engine - - if let persistedGroups = try? PersistedContactGroup.getAllContactGroups(ownedIdentity: ownedIdentity, within: obvContext.context) { - let uidsOfGroupsToKeep = existingObvContactGroups.map { $0.groupUid } - let persistedGroupsToDelete = persistedGroups.filter { !uidsOfGroupsToKeep.contains($0.groupUid) } - os_log("Number of contact groups existing within the app that must be deleted: %{public}d", log: log, type: .info, persistedGroupsToDelete.count) - for group in persistedGroupsToDelete { - - let persistedGroupDiscussion = group.discussion - - do { - try persistedGroupDiscussion.setStatus(to: .locked) - } catch { - os_log("Could not lock the persisted group discussion", log: log, type: .error) - return - } - - do { - try group.delete() - } catch { - os_log("Could not delete one of the group present within the app but not within the engine: %{public}@", log: log, type: .fault, error.localizedDescription) - continue - } - + os_log("Could not delete one of the group present within the app but not within the engine: %{public}@", log: log, type: .fault, error.localizedDescription) + continue } + } - - // Make sure that all remaining persisted contact groups do have an associated display contact group. - // For those that have one, make sure it is in sync. - - if let persistedGroups = try? PersistedContactGroup.getAllContactGroups(ownedIdentity: ownedIdentity, within: obvContext.context) { - for group in persistedGroups { - guard !group.isDeleted else { continue } - do { - try group.createOrUpdateTheAssociatedDisplayedContactGroup() - } catch { - os_log("Could not create or update the underlying displayed contact group of a persisted contact group: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() // In production, continue anyway - } + } + + // Make sure that all remaining persisted contact groups do have an associated display contact group. + // For those that have one, make sure it is in sync. + + if let persistedGroups = try? PersistedContactGroup.getAllContactGroups(ownedIdentity: ownedIdentity, within: obvContext.context) { + for group in persistedGroups { + guard !group.isDeleted else { continue } + do { + try group.createOrUpdateTheAssociatedDisplayedContactGroup() + } catch { + os_log("Could not create or update the underlying displayed contact group of a persisted contact group: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() // In production, continue anyway } } - - } // End ownedIdentities.forEach + } - } // End obvContext.performAndWait + } // End ownedIdentities.forEach + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedInvitationsWithEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedInvitationsWithEngineOperation.swift index 377ae637..8ce8fafb 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedInvitationsWithEngineOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedInvitationsWithEngineOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,7 @@ import ObvEngine import os.log import ObvTypes import ObvUICoreData +import CoreData final class SyncPersistedInvitationsWithEngineOperation: ContextualOperationWithSpecificReasonForCancel { @@ -31,26 +32,17 @@ final class SyncPersistedInvitationsWithEngineOperation: ContextualOperationWith let obvDialogsFromEngine: [ObvDialog] let obvEngine: ObvEngine private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: SyncPersistedInvitationsWithEngineOperation.self)) + private let syncAtomRequestDelegate: ObvSyncAtomRequestDelegate - // If this operation finishes, this variable stores the engine's dialog that should be processed - private(set) var obvDialogsFromEngineToProcess = [ObvDialog]() - - init(obvDialogsFromEngine: [ObvDialog], obvEngine: ObvEngine) { + init(obvDialogsFromEngine: [ObvDialog], obvEngine: ObvEngine, syncAtomRequestDelegate: ObvSyncAtomRequestDelegate) { self.obvDialogsFromEngine = obvDialogsFromEngine self.obvEngine = obvEngine + self.syncAtomRequestDelegate = syncAtomRequestDelegate super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - guard let viewContext = self.viewContext else { - return cancel(withReason: .contextIsNil) - } - let uuidsWithinEngineForOwnedCryptoId: [ObvCryptoId: Set] = obvDialogsFromEngine.reduce(into: [ObvCryptoId: Set]()) { dict, obvDialog in if var existingSet = dict[obvDialog.ownedCryptoId] { existingSet.insert(obvDialog.uuid) @@ -59,22 +51,26 @@ final class SyncPersistedInvitationsWithEngineOperation: ContextualOperationWith dict[obvDialog.ownedCryptoId] = Set([obvDialog.uuid]) } } - - obvContext.performAndWait { + + do { + + // Get the owned identities within the app - for (ownedCryptoId, uuidsWithinEngine) in uuidsWithinEngineForOwnedCryptoId { + let ownedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) + let ownedCryptoIdsWithApp = ownedIdentities.map({ $0.cryptoId }) - // Get the persisted invitations within the app + for ownedCryptoIdWithApp in ownedCryptoIdsWithApp { - let invitations: [PersistedInvitation] - do { - invitations = try PersistedInvitation.getAll(ownedCryptoId: ownedCryptoId, within: obvContext.context) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } + // Get the persisted invitations for this owned identity within the app within the app - // Determine the invitations to create, delete, or update + let invitations = try PersistedInvitation.getAll(ownedCryptoId: ownedCryptoIdWithApp, within: obvContext.context) + + // Determine the invitations for this owned identity within the engine + + let uuidsWithinEngine = uuidsWithinEngineForOwnedCryptoId[ownedCryptoIdWithApp] ?? Set() + // Determine the invitations to create, delete, or update + let uuidsWithinApp = Set(invitations.map { $0.uuid }) let missingUuids = uuidsWithinEngine.subtracting(uuidsWithinApp) let uuidsToDelete = uuidsWithinApp.subtracting(uuidsWithinEngine) @@ -85,7 +81,11 @@ final class SyncPersistedInvitationsWithEngineOperation: ContextualOperationWith do { let dialogsToProcess = obvDialogsFromEngine.filter({ missingUuids.contains($0.uuid) }) - let ops = dialogsToProcess.map { ProcessObvDialogOperation(obvDialog: $0, obvEngine: obvEngine) } + let ops = dialogsToProcess.map { + ProcessObvDialogOperation(obvDialog: $0, + obvEngine: obvEngine, + syncAtomRequestDelegate: syncAtomRequestDelegate) + } ops.forEach { $0.obvContext = obvContext @@ -101,7 +101,11 @@ final class SyncPersistedInvitationsWithEngineOperation: ContextualOperationWith do { let dialogsToProcess = obvDialogsFromEngine.filter({ uuidsToUpdate.contains($0.uuid) }) - let ops = dialogsToProcess.map { ProcessObvDialogOperation(obvDialog: $0, obvEngine: obvEngine) } + let ops = dialogsToProcess.map { + ProcessObvDialogOperation(obvDialog: $0, + obvEngine: obvEngine, + syncAtomRequestDelegate: syncAtomRequestDelegate) + } ops.forEach { $0.obvContext = obvContext @@ -115,7 +119,7 @@ final class SyncPersistedInvitationsWithEngineOperation: ContextualOperationWith uuidsToDelete.forEach { uuid in do { - if let invitation = try PersistedInvitation.getPersistedInvitation(uuid: uuid, ownedCryptoId: ownedCryptoId, within: obvContext.context) { + if let invitation = try PersistedInvitation.getPersistedInvitation(uuid: uuid, ownedCryptoId: ownedCryptoIdWithApp, within: obvContext.context) { try invitation.delete() } } catch { @@ -124,11 +128,13 @@ final class SyncPersistedInvitationsWithEngineOperation: ContextualOperationWith // Continue anyway } } - + } + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvContactDevicesWithEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvContactDevicesWithEngineOperation.swift new file mode 100644 index 00000000..16321ea5 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvContactDevicesWithEngineOperation.swift @@ -0,0 +1,71 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import ObvEngine +import os.log +import CoreData +import ObvTypes +import ObvUICoreData + + +final class SyncPersistedObvContactDevicesWithEngineOperation: ContextualOperationWithSpecificReasonForCancel { + + private let obvEngine: ObvEngine + private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: SyncPersistedObvContactDevicesWithEngineOperation.self)) + + init(obvEngine: ObvEngine) { + self.obvEngine = obvEngine + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + os_log("Syncing Persisted Contacts Devices with Engine Devices", log: log, type: .info) + + do { + + let ownedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) + + ownedIdentities.forEach { ownedIdentity in + + for contact in ownedIdentity.contacts { + + guard let contactIdentifier = (try? contact.obvContactIdentifier) else { assertionFailure(); continue } + guard let devicesFromEngine = try? obvEngine.getAllObvContactDevicesOfContact(with: contactIdentifier) else { assertionFailure(); continue } + + do { + try contact.synchronizeDevices(with: devicesFromEngine) + } catch { + assertionFailure(error.localizedDescription) + // Continue anyway + } + + } + + } + + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvContactIdentitiesWithEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvContactIdentitiesWithEngineOperation.swift index 11ecc092..9db5058e 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvContactIdentitiesWithEngineOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvContactIdentitiesWithEngineOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -36,139 +36,159 @@ final class SyncPersistedObvContactIdentitiesWithEngineOperation: ContextualOper super.init() } - override func main() { - + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + os_log("Syncing Persisted Contacts with Engine Contacts", log: log, type: .info) - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) + let ownedIdentities: [PersistedObvOwnedIdentity] + do { + ownedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } - obvContext.performAndWait { + ownedIdentities.forEach { ownedIdentity in - let ownedIdentities: [PersistedObvOwnedIdentity] + let obvContactIdentities: Set do { - ownedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) + obvContactIdentities = try obvEngine.getContactsOfOwnedIdentity(with: ownedIdentity.cryptoId) } catch { + os_log("Could not get contacts of owned identity from engine", log: log, type: .fault) assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + return } - ownedIdentities.forEach { ownedIdentity in - - let obvContactIdentities: Set + // Split the set of obvContactIdentities into missing and existing contacts + var missingContacts: Set // Contacts that exist within the engine, but not within the app + var existingContacts: Set // Contacts that exist both within the engine and within the app + do { + missingContacts = try obvContactIdentities.filter({ + return (try PersistedObvContactIdentity.get(persisted: $0.contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context)) == nil + }) + existingContacts = obvContactIdentities.subtracting(missingContacts) + } catch let error { + os_log("Could not construct a list of missing obv contacts: %{public}@", log: log, type: .fault, error.localizedDescription) + return + } + + os_log("Number of contacts existing within the engine but missing within the app: %{public}d", log: log, type: .info, missingContacts.count) + os_log("Number of contacts existing within the engine and present within the app: %{public}d", log: log, type: .info, existingContacts.count) + + // Create a persisted contact for each missing obv contact. + // Each time a contact is created within the app, add this contact to the list of existing contacts within the app + + while let obvContact = missingContacts.popFirst() { do { - obvContactIdentities = try obvEngine.getContactsOfOwnedIdentity(with: ownedIdentity.cryptoId) + let newContact = try PersistedObvContactIdentity.createPersistedObvContactIdentity(contactIdentity: obvContact, within: obvContext.context) + requestSendingOneToOneDiscussionSharedConfiguration(with: newContact, within: obvContext) } catch { - os_log("Could not get contacts of owned identity from engine", log: log, type: .fault) - assertionFailure() - return + os_log("Could not create a missing persisted contact: %{public}@", log: log, type: .fault, error.localizedDescription) + continue } - - // Split the set of obvContactIdentities into missing and existing contacts - var missingContacts: Set // Contacts that exist within the engine, but not within the app - var existingContacts: Set // Contacts that exist both within the engine and within the app - do { - missingContacts = try obvContactIdentities.filter({ - return (try PersistedObvContactIdentity.get(persisted: $0, whereOneToOneStatusIs: .any, within: obvContext.context)) == nil - }) - existingContacts = obvContactIdentities.subtracting(missingContacts) - } catch let error { - os_log("Could not construct a list of missing obv contacts: %{public}@", log: log, type: .fault, error.localizedDescription) - return + // If we reach this line, the insertion of the missing contact was successfull, we add it to the list of existing contacts + existingContacts.insert(obvContact) + } + + // Remove any persisted contact that does not exist within the engine + + do { + let persistedContacts = try PersistedObvContactIdentity.getAllContactOfOwnedIdentity(with: ownedIdentity.cryptoId, whereOneToOneStatusIs: .any, within: obvContext.context) + let cryptoIdsToKeep = existingContacts.map { $0.cryptoId } + let persistedContactsToDelete = persistedContacts.filter { !cryptoIdsToKeep.contains($0.cryptoId) } + os_log("Number of contacts existing within the app that must be deleted: %{public}d", log: log, type: .info, persistedContactsToDelete.count) + for contact in persistedContactsToDelete { + do { + try contact.deleteAndLockOneToOneDiscussion() + } catch { + os_log("Could not delete a contact during bootstrap: %{public}@", log: log, type: .fault, error.localizedDescription) + } } - - os_log("Number of contacts existing within the engine but missing within the app: %{public}d", log: log, type: .info, missingContacts.count) - os_log("Number of contacts existing within the engine and present within the app: %{public}d", log: log, type: .info, existingContacts.count) - - // Create a persisted contact for each missing obv contact. - // Each time a contact is created within the app, add this contact to the list of existing contacts within the app - - while let obvContact = missingContacts.popFirst() { - guard (try? PersistedObvContactIdentity(contactIdentity: obvContact, within: obvContext.context)) != nil else { - os_log("Could not create a missing persisted contact", log: log, type: .error) + } catch let error { + os_log("Could not get a set of all contacts of the owned identity: %{public}@", log: log, type: .error, error.localizedDescription) + assertionFailure() + // We continue anyway + } + + // For each existing contact within the app, make sure the information is in sync with the information within the engine + + var objectIDsOfContactsToRefreshInViewContext = Set() + + do { + let persistedContacts = try PersistedObvContactIdentity.getAllContactOfOwnedIdentity(with: ownedIdentity.cryptoId, whereOneToOneStatusIs: .any, within: obvContext.context) + for contact in persistedContacts { + guard let obvContact = existingContacts.first(where: { contact.cryptoId == $0.cryptoId }) else { + assertionFailure() continue } - // If we reach this line, the insertion of the missing contact was successfull, we add it to the list of existing contacts - existingContacts.insert(obvContact) - } - - // Remove any persisted contact that does not exist within the engine - - do { - let persistedContacts = try PersistedObvContactIdentity.getAllContactOfOwnedIdentity(with: ownedIdentity.cryptoId, whereOneToOneStatusIs: .any, within: obvContext.context) - let cryptoIdsToKeep = existingContacts.map { $0.cryptoId } - let persistedContactsToDelete = persistedContacts.filter { !cryptoIdsToKeep.contains($0.cryptoId) } - os_log("Number of contacts existing within the app that must be deleted: %{public}d", log: log, type: .info, persistedContactsToDelete.count) - for contact in persistedContactsToDelete { - do { - try contact.deleteAndLockOneToOneDiscussion() - } catch { - os_log("Could not delete a contact during bootstrap: %{public}@", log: log, type: .fault, error.localizedDescription) - } + try contact.updateContact(with: obvContact) + if !contact.changedValues().isEmpty { + objectIDsOfContactsToRefreshInViewContext.insert(contact.typedObjectID.objectID) } - } catch let error { - os_log("Could not get a set of all contacts of the owned identity: %{public}@", log: log, type: .error, error.localizedDescription) - assertionFailure() - // We continue anyway } - - // For each existing contact within the app, make sure the information is in sync with the information within the engine - - var objectIDsOfContactsToRefreshInViewContext = Set() - - do { - let persistedContacts = try PersistedObvContactIdentity.getAllContactOfOwnedIdentity(with: ownedIdentity.cryptoId, whereOneToOneStatusIs: .any, within: obvContext.context) - for contact in persistedContacts { - guard let obvContact = existingContacts.first(where: { contact.cryptoId == $0.cryptoId }) else { - assertionFailure() - continue - } - try contact.updateContact(with: obvContact) - if !contact.changedValues().isEmpty { - objectIDsOfContactsToRefreshInViewContext.insert(contact.typedObjectID.objectID) - } + } catch { + os_log("Could sync the existing persisted contacts with the information received from the engine: %{public}@", log: log, type: .error, error.localizedDescription) + assertionFailure() + // We continue anyway + } + + // For each existing contact within the app, make sure the capabilities are in sync with the information within the engine + + do { + let persistedContacts = try PersistedObvContactIdentity.getAllContactOfOwnedIdentity(with: ownedIdentity.cryptoId, whereOneToOneStatusIs: .any, within: obvContext.context) + let contactCapabilities = try obvEngine.getCapabilitiesOfAllContactsOfOwnedIdentity(ownedIdentity.cryptoId) + for contact in persistedContacts { + guard let capabilities = contactCapabilities[contact.cryptoId] else { + // The contact capabilities are not known yet + continue } - } catch { - os_log("Could sync the existing persisted contacts with the information received from the engine: %{public}@", log: log, type: .error, error.localizedDescription) - assertionFailure() - // We continue anyway - } - - // For each existing contact within the app, make sure the capabilities are in sync with the information within the engine - - do { - let persistedContacts = try PersistedObvContactIdentity.getAllContactOfOwnedIdentity(with: ownedIdentity.cryptoId, whereOneToOneStatusIs: .any, within: obvContext.context) - let contactCapabilities = try obvEngine.getCapabilitiesOfAllContactsOfOwnedIdentity(ownedIdentity.cryptoId) - for contact in persistedContacts { - let capabilities = contactCapabilities[contact.cryptoId] ?? Set() - contact.setContactCapabilities(to: capabilities) - if !contact.changedValues().isEmpty { - objectIDsOfContactsToRefreshInViewContext.insert(contact.typedObjectID.objectID) - } + contact.setContactCapabilities(to: capabilities) + if !contact.changedValues().isEmpty { + objectIDsOfContactsToRefreshInViewContext.insert(contact.typedObjectID.objectID) } - } catch { - os_log("Could sync the existing persisted contacts with the information received from the engine: %{public}@", log: log, type: .error, error.localizedDescription) - assertionFailure() - // We continue anyway } - - - // The view context may have to refresh certain contacts at this point - - if !objectIDsOfContactsToRefreshInViewContext.isEmpty { - DispatchQueue.main.async { - let objectsToRefresh = ObvStack.shared.viewContext.registeredObjects - .filter({ objectIDsOfContactsToRefreshInViewContext.contains($0.objectID) }) - objectsToRefresh.forEach { objectID in - ObvStack.shared.viewContext.refresh(objectID, mergeChanges: true) - } + } catch { + os_log("Could sync the existing persisted contacts with the information received from the engine: %{public}@", log: log, type: .error, error.localizedDescription) + assertionFailure() + // We continue anyway + } + + + // The view context may have to refresh certain contacts at this point + + if !objectIDsOfContactsToRefreshInViewContext.isEmpty { + DispatchQueue.main.async { + let objectsToRefresh = ObvStack.shared.viewContext.registeredObjects + .filter({ objectIDsOfContactsToRefreshInViewContext.contains($0.objectID) }) + objectsToRefresh.forEach { objectID in + ObvStack.shared.viewContext.refresh(objectID, mergeChanges: true) } } - } - + } - + } + + + // When creating a new contact, we create/unlock a one2one discussion. In that case, we want to (re)send the discussion shared settings to our contact. + // This allows to make sure those settings are in sync. + private func requestSendingOneToOneDiscussionSharedConfiguration(with contact: PersistedObvContactIdentity, within obvContext: ObvContext) { + do { + // We had to create a contact, meaning we had to create/unlock a one2one discussion. In that case, we want to (re)send the discussion shared settings to our contact. + // This allows to make sure those settings are in sync. + let contactIdentifier = try contact.contactIdentifier + guard let discussionId = try contact.oneToOneDiscussion?.identifier else { return } + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + ObvMessengerInternalNotification.aDiscussionSharedConfigurationIsNeededByContact( + contactIdentifier: contactIdentifier, + discussionId: discussionId) + .postOnDispatchQueue() + } + } catch { + assertionFailure(error.localizedDescription) + } + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvOwnedDevicesWithEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvOwnedDevicesWithEngineOperation.swift new file mode 100644 index 00000000..03fc9f32 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvOwnedDevicesWithEngineOperation.swift @@ -0,0 +1,110 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import ObvEngine +import os.log +import ObvUICoreData +import CoreData + + +/// Updates the list of owned devices of all owned identities found at the app level. +final class SyncPersistedObvOwnedDevicesWithEngineOperation: ContextualOperationWithSpecificReasonForCancel { + + private let obvEngine: ObvEngine + private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: SyncPersistedObvOwnedIdentitiesWithEngineOperation.self)) + + init(obvEngine: ObvEngine) { + self.obvEngine = obvEngine + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + // Get the owned identities within the app + + let ownedIdentitiesWithApp: [PersistedObvOwnedIdentity] + do { + ownedIdentitiesWithApp = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + + // Loop through all owned identities + + for ownedIdentity in ownedIdentitiesWithApp { + + // Ask the engine for the latest list of owned devices of the owned identity + + let ownedDevicesWithinEngine: Set + do { + ownedDevicesWithinEngine = try obvEngine.getAllOwnedDevicesOfOwnedIdentity(ownedIdentity.cryptoId) + } catch { + // This happens if the owned identity was just deleted + return cancel(withReason: .couldNotGetOwnedDevicesFromEngine(error: error)) + } + + // Sync the devices of the owned identity + + try ownedIdentity.syncWith(ownedDevicesWithinEngine: ownedDevicesWithinEngine) + + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } + +} + + +enum SyncPersistedObvOwnedDevicesWithEngineOperationReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case contextIsNil + case couldNotGetOwnedDevicesFromEngine(error: Error) + + public var logType: OSLogType { + switch self { + case .coreDataError, + .contextIsNil: + return .fault + case .couldNotGetOwnedDevicesFromEngine: + return .error + } + } + + public var errorDescription: String? { + switch self { + case .contextIsNil: + return "Context is nil" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotGetOwnedDevicesFromEngine: + return "Could not get owned devices within engine." + } + } + + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvOwnedIdentitiesWithEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvOwnedIdentitiesWithEngineOperation.swift index 07761deb..3eaf4201 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvOwnedIdentitiesWithEngineOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/BoostrapCoordinator/Operations/SyncPersistedObvOwnedIdentitiesWithEngineOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,7 @@ import OlvidUtils import ObvEngine import ObvUICoreData import os.log +import CoreData final class SyncPersistedObvOwnedIdentitiesWithEngineOperation: ContextualOperationWithSpecificReasonForCancel { @@ -34,11 +35,7 @@ final class SyncPersistedObvOwnedIdentitiesWithEngineOperation: ContextualOperat super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { // Get all owned identities within the engine @@ -51,107 +48,99 @@ final class SyncPersistedObvOwnedIdentitiesWithEngineOperation: ContextualOperat } let cryptoIdsWithinEngine = Set(obvOwnedIdentitiesWithinEngine.map { $0.cryptoId }) - obvContext.performAndWait { - - // Get the owned identities within the app - - let ownedIdentitiesWithApp: [PersistedObvOwnedIdentity] + // Get the owned identities within the app + + let ownedIdentitiesWithApp: [PersistedObvOwnedIdentity] + do { + ownedIdentitiesWithApp = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + + // Determine the owned identities to create, delete, or update + + let cryptoIdsWithinApp = Set(ownedIdentitiesWithApp.map { $0.cryptoId }) + let missingCryptoIds = cryptoIdsWithinEngine.subtracting(cryptoIdsWithinApp) + let cryptoIdsToDelete = cryptoIdsWithinApp.subtracting(cryptoIdsWithinEngine) + let cryptoIdsToUpdate = cryptoIdsWithinApp.subtracting(cryptoIdsToDelete) + + // Delete the owned identity that exist at the app level but not at the engine level + + for ownedCryptoId in cryptoIdsToDelete { do { - ownedIdentitiesWithApp = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) + guard let persistedOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { continue } + try persistedOwnedIdentity.delete() } catch { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + assertionFailure(error.localizedDescription) + // In production, continue anyway } - - // Determine the owned identities to create, delete, or update - - let cryptoIdsWithinApp = Set(ownedIdentitiesWithApp.map { $0.cryptoId }) - let missingCryptoIds = cryptoIdsWithinEngine.subtracting(cryptoIdsWithinApp) - let cryptoIdsToDelete = cryptoIdsWithinApp.subtracting(cryptoIdsWithinEngine) - let cryptoIdsToUpdate = cryptoIdsWithinApp.subtracting(cryptoIdsToDelete) - - os_log("Bootstrap: Number of missing owned identities to create : %d", log: log, type: .info, missingCryptoIds.count) - os_log("Bootstrap: Number of existing owned identities to delete : %d", log: log, type: .info, cryptoIdsToDelete.count) - os_log("Bootstrap: Number of existing owned identities to refresh : %d", log: log, type: .info, cryptoIdsToUpdate.count) + } + + // Create the missing owned identities + + for ownedCryptoId in missingCryptoIds { - // Delete the owned identity that exist at the app level but not at the engine level + guard let obvOwnedIdentity = obvOwnedIdentitiesWithinEngine.filter({ $0.cryptoId == ownedCryptoId }).first else { + os_log("Could not find owned identity to add, unexpected", log: log, type: .fault) + assertionFailure() + continue + } - for ownedCryptoId in cryptoIdsToDelete { - do { - guard let persistedOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { continue } - try persistedOwnedIdentity.delete() - } catch { - assertionFailure(error.localizedDescription) - // In production, continue anyway - } + guard PersistedObvOwnedIdentity(ownedIdentity: obvOwnedIdentity, within: obvContext.context) != nil else { + os_log("Failed to create persisted owned identity", log: log, type: .fault) + assertionFailure() + continue } - - // Create the missing owned identities - for ownedCryptoId in missingCryptoIds { - - guard let obvOwnedIdentity = obvOwnedIdentitiesWithinEngine.filter({ $0.cryptoId == ownedCryptoId }).first else { - os_log("Could not find owned identity to add, unexpected", log: log, type: .fault) - assertionFailure() - continue - } - - guard PersistedObvOwnedIdentity(ownedIdentity: obvOwnedIdentity, within: obvContext.context) != nil else { - os_log("Failed to create persisted owned identity", log: log, type: .fault) - assertionFailure() - continue - } - + } + + // Update the pre-existing identities + + for ownedCryptoId in cryptoIdsToUpdate { + + guard let obvOwnedIdentityFromEngine = obvOwnedIdentitiesWithinEngine.filter({ $0.cryptoId == ownedCryptoId }).first else { + os_log("Could not find owned identity to update within engine, unexpected", log: log, type: .fault) + assertionFailure() + continue } - - // Update the pre-existing identities - for ownedCryptoId in cryptoIdsToUpdate { - - guard let obvOwnedIdentityFromEngine = obvOwnedIdentitiesWithinEngine.filter({ $0.cryptoId == ownedCryptoId }).first else { - os_log("Could not find owned identity to update within engine, unexpected", log: log, type: .fault) - assertionFailure() - continue - } - - guard let ownedIdentityWithApp = ownedIdentitiesWithApp.filter({ $0.cryptoId == ownedCryptoId }).first else { - os_log("Could not find owned identity to update within app, unexpected", log: log, type: .fault) - assertionFailure() - continue - } - - do { - try ownedIdentityWithApp.update(with: obvOwnedIdentityFromEngine) - } catch { - os_log("Could not update app owned identity with engine owned identity: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - } - + guard let ownedIdentityWithApp = ownedIdentitiesWithApp.filter({ $0.cryptoId == ownedCryptoId }).first else { + os_log("Could not find owned identity to update within app, unexpected", log: log, type: .fault) + assertionFailure() + continue } - - // For each existing owned within the app, make sure the capabilities are in sync with the information within the engine do { - let persistedOwnedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) - persistedOwnedIdentities.forEach { persistedOwnedIdentity in - do { - if let capabilities = try obvEngine.getCapabilitiesOfOwnedIdentity(persistedOwnedIdentity.cryptoId) { - persistedOwnedIdentity.setContactCapabilities(to: capabilities) - } - } catch { - os_log("Could sync the capabilities of one of the owned identity: %{public}@", log: log, type: .error, error.localizedDescription) - assertionFailure() - // We continue anyway - } - } + try ownedIdentityWithApp.update(with: obvOwnedIdentityFromEngine) } catch { - os_log("Could sync the existing persisted owned identities capabilities with the information received from the engine: %{public}@", log: log, type: .error, error.localizedDescription) + os_log("Could not update app owned identity with engine owned identity: %{public}@", log: log, type: .fault, error.localizedDescription) assertionFailure() - // We continue anyway } } + // For each existing owned within the app, make sure the capabilities are in sync with the information within the engine + + do { + let persistedOwnedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) + persistedOwnedIdentities.forEach { persistedOwnedIdentity in + do { + if let capabilities = try obvEngine.getCapabilitiesOfOwnedIdentity(persistedOwnedIdentity.cryptoId) { + persistedOwnedIdentity.setContactCapabilities(to: capabilities) + } + } catch { + os_log("Could sync the capabilities of one of the owned identity: %{public}@", log: log, type: .error, error.localizedDescription) + assertionFailure() + // We continue anyway + } + } + } catch { + os_log("Could sync the existing persisted owned identities capabilities with the information received from the engine: %{public}@", log: log, type: .error, error.localizedDescription) + assertionFailure() + // We continue anyway + } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/ContactGroupCoordinator.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/ContactGroupCoordinator.swift index 7e47ac3e..929a1af1 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/ContactGroupCoordinator.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/ContactGroupCoordinator.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -37,6 +37,7 @@ final class ContactGroupCoordinator: ObvErrorMaker { static let errorDomain = "ContactGroupCoordinator" private let coordinatorsQueue: OperationQueue private let queueForComposedOperations: OperationQueue + weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? init(obvEngine: ObvEngine, coordinatorsQueue: OperationQueue, queueForComposedOperations: OperationQueue) { self.obvEngine = obvEngine @@ -75,12 +76,21 @@ extension ContactGroupCoordinator { ObvMessengerInternalNotification.observeUserWantsToUpdateGroupV2() { [weak self] groupObjectID, changeset in self?.processUserWantsToUpdateGroupV2(groupObjectID: groupObjectID, changeset: changeset) }, - ObvMessengerInternalNotification.observeUserWantsToUpdateCustomNameAndGroupV2Photo() { [weak self] groupObjectID, customName, customPhotoURL in - self?.processUserWantsToUpdateCustomNameAndGroupV2Photo(groupObjectID: groupObjectID, customName: customName, customPhotoURL: customPhotoURL) + ObvMessengerInternalNotification.observeUserWantsToUpdateCustomNameAndGroupV2Photo() { [weak self] ownedCryptoId, groupIdentifier, customName, customPhoto in + self?.processUserWantsToUpdateCustomNameAndGroupV2Photo(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier, customName: customName, customPhoto: customPhoto) }, ObvMessengerInternalNotification.observeUserHasSeenPublishedDetailsOfGroupV2() { [weak self] groupObjectID in self?.processUserHasSeenPublishedDetailsOfGroupV2(groupObjectID: groupObjectID) }, + ObvMessengerInternalNotification.observeUserWantsToSetCustomNameOfJoinedGroupV1() { [weak self] (ownedCryptoId, groupIdentifier, groupNameCustom) in + self?.processUserWantsToSetCustomNameOfJoinedGroupV1(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier, groupNameCustom: groupNameCustom) + }, + ObvMessengerInternalNotification.observeUserWantsToUpdatePersonalNoteOnGroupV1 { [weak self] ownedCryptoId, groupIdentifier, newText in + self?.processUserWantsToUpdatePersonalNoteOnGroupV1(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier, newText: newText) + }, + ObvMessengerInternalNotification.observeUserWantsToUpdatePersonalNoteOnGroupV2 { [weak self] ownedCryptoId, groupIdentifier, newText in + self?.processUserWantsToUpdatePersonalNoteOnGroupV2(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier, newText: newText) + }, ]) // ObvEngine Notifications @@ -276,8 +286,13 @@ extension ContactGroupCoordinator { } - private func processUserWantsToUpdateCustomNameAndGroupV2Photo(groupObjectID: TypeSafeManagedObjectID, customName: String?, customPhotoURL: URL?) { - let op1 = UpdateCustomNameAndGroupV2PhotoOperation(groupObjectID: groupObjectID, customName: customName, customPhotoURL: customPhotoURL) + private func processUserWantsToUpdateCustomNameAndGroupV2Photo(ownedCryptoId: ObvCryptoId, groupIdentifier: Data, customName: String?, customPhoto: UIImage?) { + let op1 = UpdateCustomNameAndGroupV2PhotoOperation( + ownedCryptoId: ownedCryptoId, + groupIdentifier: groupIdentifier, + update: .customNameAndCustomPhoto(customName: customName, customPhoto: customPhoto), + makeSyncAtomRequest: true, + syncAtomRequestDelegate: syncAtomRequestDelegate) let composedOp = createCompositionOfOneContextualOperation(op1: op1) coordinatorsQueue.addOperation(composedOp) } @@ -290,11 +305,35 @@ extension ContactGroupCoordinator { } + private func processUserWantsToSetCustomNameOfJoinedGroupV1(ownedCryptoId: ObvCryptoId, groupIdentifier: GroupV1Identifier, groupNameCustom: String?) { + let op1 = SetCustomNameOfJoinedGroupV1Operation(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier, groupNameCustom: groupNameCustom, makeSyncAtomRequest: true, syncAtomRequestDelegate: syncAtomRequestDelegate) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + coordinatorsQueue.addOperation(composedOp) + } + + + private func processUserWantsToUpdatePersonalNoteOnGroupV1(ownedCryptoId: ObvCryptoId, groupIdentifier: GroupV1Identifier, newText: String?) { + let op1 = UpdatePersonalNoteOnGroupV1Operation(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier, newText: newText, makeSyncAtomRequest: true, syncAtomRequestDelegate: syncAtomRequestDelegate) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + coordinatorsQueue.addOperation(composedOp) + } + + + private func processUserWantsToUpdatePersonalNoteOnGroupV2(ownedCryptoId: ObvCryptoId, groupIdentifier: Data, newText: String?) { + let op1 = UpdatePersonalNoteOnGroupV2Operation(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier, newText: newText, makeSyncAtomRequest: true, syncAtomRequestDelegate: syncAtomRequestDelegate) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + coordinatorsQueue.addOperation(composedOp) + } + + private func processGroupV2TrustedDetailsShouldBeReplacedByPublishedDetails(ownCryptoId: ObvCryptoId, groupIdentifier: Data) { - do { - try obvEngine.replaceTrustedDetailsByPublishedDetailsOfGroupV2(ownedCryptoId: ownCryptoId, groupIdentifier: groupIdentifier) - } catch { - assertionFailure(error.localizedDescription) + let obvEngine = self.obvEngine + Task.detached { + do { + try await obvEngine.replaceTrustedDetailsByPublishedDetailsOfGroupV2(ownedCryptoId: ownCryptoId, groupIdentifier: groupIdentifier) + } catch { + assertionFailure(error.localizedDescription) + } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/CreateOrUpdatePersistedGroupV2Operation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/CreateOrUpdatePersistedGroupV2Operation.swift index e8c6a340..11f2d348 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/CreateOrUpdatePersistedGroupV2Operation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/CreateOrUpdatePersistedGroupV2Operation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -19,13 +19,15 @@ import Foundation +import os.log import OlvidUtils import ObvTypes import ObvEngine import ObvUICoreData +import CoreData -final class CreateOrUpdatePersistedGroupV2Operation: ContextualOperationWithSpecificReasonForCancel { +final class CreateOrUpdatePersistedGroupV2Operation: ContextualOperationWithSpecificReasonForCancel { private let obvGroupV2: ObvGroupV2 private let initiator: ObvGroupV2.CreationOrUpdateInitiator @@ -38,23 +40,16 @@ final class CreateOrUpdatePersistedGroupV2Operation: ContextualOperationWithSpec super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + do { - let group: PersistedGroupV2 - do { - group = try PersistedGroupV2.createOrUpdate(obvGroupV2: obvGroupV2, - createdByMe: initiator == .createdByMe, - within: obvContext.context) - } catch { - return cancel(withReason: .coreDataError(error: error)) + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: obvGroupV2.ownIdentity, within: obvContext.context) else { + return cancel(withReason: .couldNotFindPersistedOwnedIdentity) } + let group = try ownedIdentity.createOrUpdateGroupV2(obvGroupV2: obvGroupV2, createdByMe: initiator == .createdByMe) + /* If we the group was updated by someone else and if the list of users that can change the discussion shared setttings was changed (compared to the one we knew about), * we might be in a situation where one of the new members allowed to change these shared settings did change the settings while we were not aware of her rights to do so. * In that case, we have thrown away her change request. @@ -101,7 +96,8 @@ final class CreateOrUpdatePersistedGroupV2Operation: ContextualOperationWithSpec isVoipMessageForStartingCall: false, attachmentsToSend: [], toContactIdentitiesWithCryptoId: toContactIdentitiesWithCryptoId, - ofOwnedIdentityWithCryptoId: obvGroupV2.ownIdentity) + ofOwnedIdentityWithCryptoId: obvGroupV2.ownIdentity, + alsoPostToOtherOwnedDevices: true) } } catch { @@ -112,7 +108,37 @@ final class CreateOrUpdatePersistedGroupV2Operation: ContextualOperationWithSpec } // End of if initiator == .createdOrUpdatedBySomeoneElse... + } catch { + return cancel(withReason: .coreDataError(error: error)) } } + + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindPersistedOwnedIdentity + + var logType: OSLogType { + switch self { + case .coreDataError, + .couldNotFindPersistedOwnedIdentity: + return .fault + } + } + + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindPersistedOwnedIdentity: + return "Could not find persisted owned identity" + } + } + + } + + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/DeletePersistedGroupV2Operation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/DeletePersistedGroupV2Operation.swift index 4b1619ab..11368f50 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/DeletePersistedGroupV2Operation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/DeletePersistedGroupV2Operation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,7 @@ import Foundation import OlvidUtils import ObvTypes import ObvUICoreData +import CoreData final class DeletePersistedGroupV2Operation: ContextualOperationWithSpecificReasonForCancel { @@ -34,23 +35,16 @@ final class DeletePersistedGroupV2Operation: ContextualOperationWithSpecificReas super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - guard let persistedGroupV2 = try PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: appGroupIdentifier, within: obvContext.context) else { - // We could not find the group, no need to delete it - return - } - try persistedGroupV2.delete() - } catch { - return cancel(withReason: .coreDataError(error: error)) + do { + guard let persistedGroupV2 = try PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: appGroupIdentifier, within: obvContext.context) else { + // We could not find the group, no need to delete it + return } - + try persistedGroupV2.delete() + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/MarkPublishedDetailsOfGroupV2AsSeenOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/MarkPublishedDetailsOfGroupV2AsSeenOperation.swift index f5dde281..448026d8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/MarkPublishedDetailsOfGroupV2AsSeenOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/MarkPublishedDetailsOfGroupV2AsSeenOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,8 @@ import Foundation import OlvidUtils import ObvTypes import ObvUICoreData +import CoreData + final class MarkPublishedDetailsOfGroupV2AsSeenOperation: ContextualOperationWithSpecificReasonForCancel { @@ -32,20 +34,13 @@ final class MarkPublishedDetailsOfGroupV2AsSeenOperation: ContextualOperationWit super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - do { - let group = try PersistedGroupV2.get(objectID: groupV2ObjectID, within: obvContext.context) - group?.markPublishedDetailsAsSeen() - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - + do { + let group = try PersistedGroupV2.get(objectID: groupV2ObjectID, within: obvContext.context) + group?.markPublishedDetailsAsSeen() + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupDeletedOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupDeletedOperation.swift index 6040a0c5..07d1e9e6 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupDeletedOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupDeletedOperation.swift @@ -40,39 +40,31 @@ final class ProcessContactGroupDeletedOperation: ContextualOperationWithSpecific super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { - do { - - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: obvOwnedIdentity.cryptoId, within: obvContext.context) else { - assertionFailure() - return - } - - let groupId = (groupUid, groupOwner) - - guard let group = try PersistedContactGroup.getContactGroup(groupId: groupId, ownedIdentity: persistedObvOwnedIdentity) else { - return - } - - let persistedGroupDiscussion = group.discussion - - try persistedGroupDiscussion.setStatus(to: .locked) - - try group.delete() - - } catch { + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: obvOwnedIdentity.cryptoId, within: obvContext.context) else { assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + return + } + + let groupIdentifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) + + guard let group = try PersistedContactGroup.getContactGroup(groupIdentifier: groupIdentifier, ownedIdentity: persistedObvOwnedIdentity) else { + return } + let persistedGroupDiscussion = group.discussion + + try persistedGroupDiscussion.setStatus(to: .locked) + + try group.delete() + + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupHasUpdatedPendingMembersAndGroupMembersOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupHasUpdatedPendingMembersAndGroupMembersOperation.swift index fab9a876..b2b0fa35 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupHasUpdatedPendingMembersAndGroupMembersOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupHasUpdatedPendingMembersAndGroupMembersOperation.swift @@ -36,55 +36,44 @@ final class ProcessContactGroupHasUpdatedPendingMembersAndGroupMembersOperation: super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { - do { - - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { - return - } - - let persistedObvContactIdentities: Set = Set(obvContactGroup.groupMembers.compactMap { - guard let persistedContact = try? PersistedObvContactIdentity.get(persisted: $0, whereOneToOneStatusIs: .any, within: obvContext.context) else { - os_log("One of the group members is not among our persisted contacts. The group members will be updated when this contact will be added to the persisted contact.", log: Self.log, type: .info) - return nil - } - return persistedContact - }) - - let groupUid = obvContactGroup.groupUid - let groupOwner = obvContactGroup.groupOwner.cryptoId - let groupId = (groupUid, groupOwner) - guard let contactGroup = try PersistedContactGroup.getContactGroup(groupId: groupId, ownedIdentity: persistedObvOwnedIdentity) else { - return cancel(withReason: .couldNotFindContactGroup) + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { + return + } + + let persistedObvContactIdentities: Set = Set(obvContactGroup.groupMembers.compactMap { + guard let persistedContact = try? PersistedObvContactIdentity.get(persisted: $0.contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) else { + os_log("One of the group members is not among our persisted contacts. The group members will be updated when this contact will be added to the persisted contact.", log: Self.log, type: .info) + return nil } - - contactGroup.set(persistedObvContactIdentities) - try contactGroup.setPendingMembers(to: obvContactGroup.pendingGroupMembers) - - if let groupOwned = contactGroup as? PersistedContactGroupOwned { - if obvContactGroup.groupType == .owned { - let declinedMemberIdentites = Set(obvContactGroup.declinedPendingGroupMembers.map { $0.cryptoId }) - for pendingMember in groupOwned.pendingMembers { - pendingMember.declined = declinedMemberIdentites.contains(pendingMember.cryptoId) - } + return persistedContact + }) + + guard let contactGroup = try PersistedContactGroup.getContactGroup(groupIdentifier: obvContactGroup.groupIdentifier, ownedIdentity: persistedObvOwnedIdentity) else { + return cancel(withReason: .couldNotFindContactGroup) + } + + contactGroup.set(persistedObvContactIdentities) + try contactGroup.setPendingMembers(to: obvContactGroup.pendingGroupMembers) + + if let groupOwned = contactGroup as? PersistedContactGroupOwned { + if obvContactGroup.groupType == .owned { + let declinedMemberIdentites = Set(obvContactGroup.declinedPendingGroupMembers.map { $0.cryptoId }) + for pendingMember in groupOwned.pendingMembers { + pendingMember.declined = declinedMemberIdentites.contains(pendingMember.cryptoId) } } - - - } catch { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) } + + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupHasUpdatedPublishedDetailsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupHasUpdatedPublishedDetailsOperation.swift index 45c49e86..5f4c3172 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupHasUpdatedPublishedDetailsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupHasUpdatedPublishedDetailsOperation.swift @@ -34,50 +34,42 @@ final class ProcessContactGroupHasUpdatedPublishedDetailsOperation: ContextualOp super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { + + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { + assertionFailure() + return + } + + let groupIdentifier = obvContactGroup.groupIdentifier - do { + switch obvContactGroup.groupType { + case .owned: - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { + guard let groupOwned = try PersistedContactGroupOwned.getContactGroup(groupIdentifier: groupIdentifier, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupOwned else { assertionFailure() return } - let groupId = (obvContactGroup.groupUid, obvContactGroup.groupOwner.cryptoId) + try groupOwned.resetGroupName(to: obvContactGroup.publishedCoreDetails.name) + groupOwned.setStatus(to: .noLatestDetails) + + case .joined: - switch obvContactGroup.groupType { - case .owned: - - guard let groupOwned = try PersistedContactGroupOwned.getContactGroup(groupId: groupId, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupOwned else { - assertionFailure() - return - } - - try groupOwned.resetGroupName(to: obvContactGroup.publishedCoreDetails.name) - groupOwned.setStatus(to: .noLatestDetails) - - case .joined: - - guard let groupJoined = try PersistedContactGroupJoined.getContactGroup(groupId: groupId, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupJoined else { - assertionFailure() - return - } - - groupJoined.setStatus(to: .unseenPublishedDetails) - + guard let groupJoined = try PersistedContactGroupJoined.getContactGroup(groupIdentifier: groupIdentifier, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupJoined else { + assertionFailure() + return } - } catch { - return cancel(withReason: .coreDataError(error: error)) + groupJoined.setStatus(to: .unseenPublishedDetails) + } + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupJoinedHasUpdatedTrustedDetailsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupJoinedHasUpdatedTrustedDetailsOperation.swift index 41a845a7..3df30c77 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupJoinedHasUpdatedTrustedDetailsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupJoinedHasUpdatedTrustedDetailsOperation.swift @@ -34,37 +34,29 @@ final class ProcessContactGroupJoinedHasUpdatedTrustedDetailsOperation: Contextu super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { - do { - - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { - assertionFailure() - return - } - - let groupId = (obvContactGroup.groupUid, obvContactGroup.groupOwner.cryptoId) - - guard let groupJoined = try PersistedContactGroupJoined.getContactGroup(groupId: groupId, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupJoined else { - assertionFailure() - return - } - - try groupJoined.resetGroupName(to: obvContactGroup.trustedOrLatestCoreDetails.name) - groupJoined.setStatus(to: .noNewPublishedDetails) - groupJoined.updatePhoto(with: obvContactGroup.trustedOrLatestPhotoURL) - - } catch { - return cancel(withReason: .coreDataError(error: error)) + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { + assertionFailure() + return } - + + let groupIdentifier = obvContactGroup.groupIdentifier + + guard let groupJoined = try PersistedContactGroupJoined.getContactGroup(groupIdentifier: groupIdentifier, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupJoined else { + assertionFailure() + return + } + + try groupJoined.resetGroupName(to: obvContactGroup.trustedOrLatestCoreDetails.name) + groupJoined.setStatus(to: .noNewPublishedDetails) + groupJoined.updatePhoto(with: obvContactGroup.trustedOrLatestPhotoURL) + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupOwnedDiscardedLatestDetailsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupOwnedDiscardedLatestDetailsOperation.swift index 0c0077e1..e31e7efc 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupOwnedDiscardedLatestDetailsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupOwnedDiscardedLatestDetailsOperation.swift @@ -34,35 +34,27 @@ final class ProcessContactGroupOwnedDiscardedLatestDetailsOperation: ContextualO super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { - do { - - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { - assertionFailure() - return - } - - let groupId = (obvContactGroup.groupUid, obvContactGroup.groupOwner.cryptoId) - - guard let groupOwned = try PersistedContactGroupOwned.getContactGroup(groupId: groupId, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupOwned else { - assertionFailure() - return - } - - groupOwned.setStatus(to: .noLatestDetails) - - } catch { - return cancel(withReason: .coreDataError(error: error)) + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { + assertionFailure() + return } - + + let groupIdentifier = obvContactGroup.groupIdentifier + + guard let groupOwned = try PersistedContactGroupOwned.getContactGroup(groupIdentifier: groupIdentifier, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupOwned else { + assertionFailure() + return + } + + groupOwned.setStatus(to: .noLatestDetails) + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupOwnedHasUpdatedLatestDetailsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupOwnedHasUpdatedLatestDetailsOperation.swift index 38aa6a7a..c9493191 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupOwnedHasUpdatedLatestDetailsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessContactGroupOwnedHasUpdatedLatestDetailsOperation.swift @@ -34,35 +34,27 @@ final class ProcessContactGroupOwnedHasUpdatedLatestDetailsOperation: Contextual super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { - do { - - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { - assertionFailure() - return - } - - let groupId = (obvContactGroup.groupUid, obvContactGroup.groupOwner.cryptoId) - - guard let groupOwned = try PersistedContactGroupOwned.getContactGroup(groupId: groupId, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupOwned else { - assertionFailure() - return - } - - groupOwned.setStatus(to: .withLatestDetails) - - } catch { - return cancel(withReason: .coreDataError(error: error)) + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { + assertionFailure() + return } - + + let groupIdentifier = obvContactGroup.groupIdentifier + + guard let groupOwned = try PersistedContactGroupOwned.getContactGroup(groupIdentifier: groupIdentifier, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupOwned else { + assertionFailure() + return + } + + groupOwned.setStatus(to: .withLatestDetails) + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessNewContactGroupOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessNewContactGroupOperation.swift index b1760de9..931ff033 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessNewContactGroupOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessNewContactGroupOperation.swift @@ -34,31 +34,23 @@ final class ProcessNewContactGroupOperation: ContextualOperationWithSpecificReas super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { - do { - - // We create a new persisted contact group associated to this engine's contact group - - switch obvContactGroup.groupType { - case .owned: - _ = try PersistedContactGroupOwned(contactGroup: obvContactGroup, within: obvContext.context) - case .joined: - _ = try PersistedContactGroupJoined(contactGroup: obvContactGroup, within: obvContext.context) - } - - } catch { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + // We create a new persisted contact group associated to this engine's contact group + + switch obvContactGroup.groupType { + case .owned: + _ = try PersistedContactGroupOwned(contactGroup: obvContactGroup, within: obvContext.context) + case .joined: + _ = try PersistedContactGroupJoined(contactGroup: obvContactGroup, within: obvContext.context) } + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessNewPendingGroupMemberDeclinedStatusOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessNewPendingGroupMemberDeclinedStatusOperation.swift index 3720091f..4e11a6a5 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessNewPendingGroupMemberDeclinedStatusOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessNewPendingGroupMemberDeclinedStatusOperation.swift @@ -34,43 +34,35 @@ final class ProcessNewPendingGroupMemberDeclinedStatusOperation: ContextualOpera super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { guard obvContactGroup.groupType == .owned else { assertionFailure(); return } - - obvContext.performAndWait { + + do { - do { - - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { - assertionFailure() - return - } - - let groupId = (obvContactGroup.groupUid, obvContactGroup.groupOwner.cryptoId) - - guard let groupOwned = try PersistedContactGroupOwned.getContactGroup(groupId: groupId, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupOwned else { - assertionFailure() - return - } - - let declinedMemberIdentites = Set(obvContactGroup.declinedPendingGroupMembers.map { $0.cryptoId }) - for pendingMember in groupOwned.pendingMembers { - let newDeclined = declinedMemberIdentites.contains(pendingMember.cryptoId) - if pendingMember.declined != newDeclined { - pendingMember.declined = newDeclined - } + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { + assertionFailure() + return + } + + let groupIdentifier = obvContactGroup.groupIdentifier + + guard let groupOwned = try PersistedContactGroupOwned.getContactGroup(groupIdentifier: groupIdentifier, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupOwned else { + assertionFailure() + return + } + + let declinedMemberIdentites = Set(obvContactGroup.declinedPendingGroupMembers.map { $0.cryptoId }) + for pendingMember in groupOwned.pendingMembers { + let newDeclined = declinedMemberIdentites.contains(pendingMember.cryptoId) + if pendingMember.declined != newDeclined { + pendingMember.declined = newDeclined } - - } catch { - return cancel(withReason: .coreDataError(error: error)) } + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessPublishedPhotoOfContactGroupOwnedHasBeenUpdatedOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessPublishedPhotoOfContactGroupOwnedHasBeenUpdatedOperation.swift index 51558762..5700ebe5 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessPublishedPhotoOfContactGroupOwnedHasBeenUpdatedOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessPublishedPhotoOfContactGroupOwnedHasBeenUpdatedOperation.swift @@ -34,34 +34,26 @@ final class ProcessPublishedPhotoOfContactGroupOwnedHasBeenUpdatedOperation: Con super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { - do { - - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { - return - } - - let groupId = (obvContactGroup.groupUid, obvContactGroup.groupOwner.cryptoId) - - guard let groupOwned = try PersistedContactGroupOwned.getContactGroup(groupId: groupId, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupOwned else { - return - } - - groupOwned.updatePhoto(with: obvContactGroup.publishedPhotoURL) - - } catch { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { + return + } + + let groupIdentifier = obvContactGroup.groupIdentifier + + guard let groupOwned = try PersistedContactGroupOwned.getContactGroup(groupIdentifier: groupIdentifier, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupOwned else { + return } + groupOwned.updatePhoto(with: obvContactGroup.publishedPhotoURL) + + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessTrustedPhotoOfContactGroupJoinedHasBeenUpdatedOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessTrustedPhotoOfContactGroupJoinedHasBeenUpdatedOperation.swift index f00a5890..69b0c6ec 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessTrustedPhotoOfContactGroupJoinedHasBeenUpdatedOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/ProcessTrustedPhotoOfContactGroupJoinedHasBeenUpdatedOperation.swift @@ -34,34 +34,26 @@ final class ProcessTrustedPhotoOfContactGroupJoinedHasBeenUpdatedOperation: Cont super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { - do { - - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { - return - } - - let groupId = (obvContactGroup.groupUid, obvContactGroup.groupOwner.cryptoId) - - guard let groupJoined = try PersistedContactGroupJoined.getContactGroup(groupId: groupId, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupJoined else { - return - } - - groupJoined.updatePhoto(with: obvContactGroup.trustedOrLatestPhotoURL) - - } catch { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvContactGroup.ownedIdentity, within: obvContext.context) else { + return } + let groupIdentifier = obvContactGroup.groupIdentifier + + guard let groupJoined = try PersistedContactGroupJoined.getContactGroup(groupIdentifier: groupIdentifier, ownedIdentity: persistedObvOwnedIdentity) as? PersistedContactGroupJoined else { + return + } + + groupJoined.updatePhoto(with: obvContactGroup.trustedOrLatestPhotoURL) + + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/RemoveUpdateInProgressForGroupV2Operation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/RemoveUpdateInProgressForGroupV2Operation.swift index 91e3c5fb..11bdaa65 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/RemoveUpdateInProgressForGroupV2Operation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/RemoveUpdateInProgressForGroupV2Operation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,8 @@ import Foundation import OlvidUtils import ObvTypes import ObvUICoreData +import CoreData + final class RemoveUpdateInProgressForGroupV2Operation: ContextualOperationWithSpecificReasonForCancel { @@ -34,22 +36,15 @@ final class RemoveUpdateInProgressForGroupV2Operation: ContextualOperationWithSp super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - do { - guard let group = try PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: appGroupIdentifier, within: obvContext.context) else { - return - } - group.removeUpdateInProgress() - } catch { - return cancel(withReason: .coreDataError(error: error)) + do { + guard let group = try PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: appGroupIdentifier, within: obvContext.context) else { + return } - + group.removeUpdateInProgress() + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/SetCustomNameOfJoinedGroupV1Operation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/SetCustomNameOfJoinedGroupV1Operation.swift new file mode 100644 index 00000000..e64358f8 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/SetCustomNameOfJoinedGroupV1Operation.swift @@ -0,0 +1,102 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import ObvTypes +import ObvCrypto +import CoreData +import ObvUICoreData +import os.log + + +final class SetCustomNameOfJoinedGroupV1Operation: ContextualOperationWithSpecificReasonForCancel { + + private let ownedCryptoId: ObvCryptoId + private let groupIdentifier: GroupV1Identifier + private let groupNameCustom: String? + + private let makeSyncAtomRequest: Bool + private weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? + + init(ownedCryptoId: ObvCryptoId, groupIdentifier: GroupV1Identifier, groupNameCustom: String?, makeSyncAtomRequest: Bool, syncAtomRequestDelegate: ObvSyncAtomRequestDelegate?) { + self.ownedCryptoId = ownedCryptoId + self.groupIdentifier = groupIdentifier + self.groupNameCustom = groupNameCustom + self.syncAtomRequestDelegate = syncAtomRequestDelegate + self.makeSyncAtomRequest = makeSyncAtomRequest + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + let customDisplayNameWasUpdated = try ownedIdentity.setCustomNameOfJoinedGroupV1(groupIdentifier: groupIdentifier, to: groupNameCustom) + + // If the custom display name was updated, we propagate the change to our other owned devices + + if makeSyncAtomRequest && customDisplayNameWasUpdated { + assert(self.syncAtomRequestDelegate != nil) + if let syncAtomRequestDelegate = self.syncAtomRequestDelegate { + let ownedCryptoId = self.ownedCryptoId + let syncAtom = ObvSyncAtom.groupV1Nickname(groupOwner: groupIdentifier.groupOwner, groupUid: groupIdentifier.groupUid, groupNickname: groupNameCustom) + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + Task.detached { + await syncAtomRequestDelegate.requestPropagationToOtherOwnedDevices(of: syncAtom, for: ownedCryptoId) + } + } + } + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindOwnedIdentity + + var logType: OSLogType { + switch self { + case .coreDataError, .couldNotFindOwnedIdentity: + return .fault + } + } + + var errorDescription: String? { + switch self { + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdateCustomNameAndGroupV2PhotoOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdateCustomNameAndGroupV2PhotoOperation.swift index 7a4aa8d9..6b147f85 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdateCustomNameAndGroupV2PhotoOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdateCustomNameAndGroupV2PhotoOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,60 +22,103 @@ import Foundation import OlvidUtils import ObvTypes import ObvUICoreData +import CoreData +import os.log -final class UpdateCustomNameAndGroupV2PhotoOperation: ContextualOperationWithSpecificReasonForCancel { + +final class UpdateCustomNameAndGroupV2PhotoOperation: ContextualOperationWithSpecificReasonForCancel { + + enum Update { + case customName(customName: String?) + case customNameAndCustomPhoto(customName: String?, customPhoto: UIImage?) + } - private let groupObjectID: TypeSafeManagedObjectID - private let customName: String? - private let customPhotoURL: URL? + private let ownedCryptoId: ObvCryptoId + private let groupIdentifier: Data + private let update: Update - init(groupObjectID: TypeSafeManagedObjectID, customName: String?, customPhotoURL: URL?) { - self.groupObjectID = groupObjectID - self.customName = customName - self.customPhotoURL = customPhotoURL + private let makeSyncAtomRequest: Bool + private weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? + + init(ownedCryptoId: ObvCryptoId, groupIdentifier: Data, update: Update, makeSyncAtomRequest: Bool, syncAtomRequestDelegate: ObvSyncAtomRequestDelegate?) { + self.ownedCryptoId = ownedCryptoId + self.groupIdentifier = groupIdentifier + self.update = update + self.makeSyncAtomRequest = makeSyncAtomRequest + self.syncAtomRequestDelegate = syncAtomRequestDelegate super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - - guard let group = try PersistedGroupV2.get(objectID: groupObjectID, within: obvContext.context) else { - return - } - - do { - try group.updateCustomNameWith(with: customName) - try group.updateCustomPhotoWithPhotoAtURL(customPhotoURL, within: obvContext) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + // Update the custom name + + switch update { + case .customNameAndCustomPhoto(customName: let customName, customPhoto: _), + .customName(customName: let customName): - // Since the previous call did copy the photo to a proper location, we can delete the photo at the passed URL - // We do so, even if there is an error during the context save + let groupNameCustomHadToBeUpdated = try ownedIdentity.setCustomNameOfGroupV2(groupIdentifier: groupIdentifier, to: customName) + + // If the custom display name was updated, we propagate the change to our other owned devices - if let customPhotoURL = customPhotoURL { - do { - try obvContext.addContextDidSaveCompletionHandler { _ in - try? FileManager.default.removeItem(at: customPhotoURL) + if makeSyncAtomRequest && groupNameCustomHadToBeUpdated { + assert(self.syncAtomRequestDelegate != nil) + if let syncAtomRequestDelegate = self.syncAtomRequestDelegate { + let ownedCryptoId = self.ownedCryptoId + let syncAtom = ObvSyncAtom.groupV2Nickname(groupIdentifier: groupIdentifier, groupNickname: customName) + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + Task.detached { + await syncAtomRequestDelegate.requestPropagationToOtherOwnedDevices(of: syncAtom, for: ownedCryptoId) + } } - } catch { - return cancel(withReason: .coreDataError(error: error)) } - } - - } catch { - return cancel(withReason: .coreDataError(error: error)) + } + // Update the custom photo + + switch update { + case .customName: + break + case .customNameAndCustomPhoto(customName: _, customPhoto: let customPhoto): + + try ownedIdentity.updateCustomPhotoOfGroupV2(withGroupIdentifier: groupIdentifier, withPhoto: customPhoto, within: obvContext) + + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) } } + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case couldNotFindOwnedIdentity + case coreDataError(error: Error) + + var logType: OSLogType { + return .fault + } + + var errorDescription: String? { + switch self { + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + } + } + + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdateGroupV2Operation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdateGroupV2Operation.swift index 6b076333..b8002900 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdateGroupV2Operation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdateGroupV2Operation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,9 @@ import ObvTypes import ObvEngine import os.log import ObvUICoreData +import CoreData +import ObvSettings + /// Operation executed when the local user updates a group v2 (as an administrator) final class UpdateGroupV2Operation: ContextualOperationWithSpecificReasonForCancel { @@ -39,40 +42,33 @@ final class UpdateGroupV2Operation: ContextualOperationWithSpecificReasonForCanc super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { + + guard let group = try PersistedGroupV2.get(objectID: groupObjectID, within: obvContext.context) else { assertionFailure(); return } + guard group.ownedIdentityIsAdmin else { assertionFailure(); return } + + // If the changeset contains no specific information about the owned identity, we add the default admin permissions for her + let updatedChangeSet: ObvGroupV2.Changeset + if !changeset.concernedMembers.contains(try group.ownCryptoId) && !changeset.isEmpty { + updatedChangeSet = try changeset.adding(newChanges: Set([.ownPermissionsChanged(permissions: ObvUICoreDataConstants.defaultObvGroupV2PermissionsForAdmin)])) + } else { + updatedChangeSet = changeset + } + + guard !updatedChangeSet.isEmpty else { + return + } + do { - - guard let group = try PersistedGroupV2.get(objectID: groupObjectID, within: obvContext.context) else { assertionFailure(); return } - guard group.ownedIdentityIsAdmin else { assertionFailure(); return } - - // If the changeset contains no specific information about the owned identity, we add the default admin permissions for her - let updatedChangeSet: ObvGroupV2.Changeset - if !changeset.concernedMembers.contains(try group.ownCryptoId) && !changeset.isEmpty { - updatedChangeSet = try changeset.adding(newChanges: Set([.ownPermissionsChanged(permissions: ObvUICoreDataConstants.defaultObvGroupV2PermissionsForAdmin)])) - } else { - updatedChangeSet = changeset - } - - guard !updatedChangeSet.isEmpty else { - return - } - - do { - try obvEngine.updateGroupV2(ownedCryptoId: group.ownCryptoId, groupIdentifier: group.groupIdentifier, changeset: updatedChangeSet) - } catch { - return cancel(withReason: .theEngineRequestFailed(error: error)) - } - + try obvEngine.updateGroupV2(ownedCryptoId: group.ownCryptoId, groupIdentifier: group.groupIdentifier, changeset: updatedChangeSet) } catch { - return cancel(withReason: .coreDataError(error: error)) + return cancel(withReason: .theEngineRequestFailed(error: error)) } + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdatePersonalNoteOnGroupV1Operation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdatePersonalNoteOnGroupV1Operation.swift new file mode 100644 index 00000000..6d63078f --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdatePersonalNoteOnGroupV1Operation.swift @@ -0,0 +1,101 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import CoreData +import os.log +import ObvEngine +import ObvUICoreData +import ObvTypes +import ObvCrypto + + +final class UpdatePersonalNoteOnGroupV1Operation: ContextualOperationWithSpecificReasonForCancel { + + private let ownedCryptoId: ObvCryptoId + private let groupIdentifier: GroupV1Identifier + private let newText: String? + + private let makeSyncAtomRequest: Bool + private weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? + + init(ownedCryptoId: ObvCryptoId, groupIdentifier: GroupV1Identifier, newText: String?, makeSyncAtomRequest: Bool, syncAtomRequestDelegate: ObvSyncAtomRequestDelegate?) { + self.ownedCryptoId = ownedCryptoId + self.groupIdentifier = groupIdentifier + self.newText = newText + self.makeSyncAtomRequest = makeSyncAtomRequest + self.syncAtomRequestDelegate = syncAtomRequestDelegate + super.init() + } + + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + let noteHadToBeUpdatedInDatabase = try ownedIdentity.setPersonalNoteOnGroupV1(groupIdentifier: groupIdentifier, newText: newText) + + if makeSyncAtomRequest && noteHadToBeUpdatedInDatabase { + assert(self.syncAtomRequestDelegate != nil) + if let syncAtomRequestDelegate = self.syncAtomRequestDelegate { + let ownedCryptoId = self.ownedCryptoId + let syncAtom = ObvSyncAtom.groupV1PersonalNote(groupOwner: groupIdentifier.groupOwner, groupUid: groupIdentifier.groupUid, note: newText) + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + Task.detached { + await syncAtomRequestDelegate.requestPropagationToOtherOwnedDevices(of: syncAtom, for: ownedCryptoId) + } + } + } + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindOwnedIdentity + + var logType: OSLogType { + return .fault + } + + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + } + } + + } + + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdatePersonalNoteOnGroupV2Operation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdatePersonalNoteOnGroupV2Operation.swift new file mode 100644 index 00000000..d9815bf4 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdatePersonalNoteOnGroupV2Operation.swift @@ -0,0 +1,101 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import CoreData +import os.log +import ObvEngine +import ObvUICoreData +import ObvTypes +import ObvCrypto + + +final class UpdatePersonalNoteOnGroupV2Operation: ContextualOperationWithSpecificReasonForCancel { + + private let ownedCryptoId: ObvCryptoId + private let groupIdentifier: Data + private let newText: String? + + private let makeSyncAtomRequest: Bool + private weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? + + init(ownedCryptoId: ObvCryptoId, groupIdentifier: Data, newText: String?, makeSyncAtomRequest: Bool, syncAtomRequestDelegate: ObvSyncAtomRequestDelegate?) { + self.ownedCryptoId = ownedCryptoId + self.groupIdentifier = groupIdentifier + self.newText = newText + self.makeSyncAtomRequest = makeSyncAtomRequest + self.syncAtomRequestDelegate = syncAtomRequestDelegate + super.init() + } + + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + let noteHadToBeUpdatedInDatabase = try ownedIdentity.setPersonalNoteOnGroupV2(groupIdentifier: groupIdentifier, newText: newText) + + if makeSyncAtomRequest && noteHadToBeUpdatedInDatabase { + assert(self.syncAtomRequestDelegate != nil) + if let syncAtomRequestDelegate = self.syncAtomRequestDelegate { + let ownedCryptoId = self.ownedCryptoId + let syncAtom = ObvSyncAtom.groupV2PersonalNote(groupIdentifier: groupIdentifier, note: newText) + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + Task.detached { + await syncAtomRequestDelegate.requestPropagationToOtherOwnedDevices(of: syncAtom, for: ownedCryptoId) + } + } + } + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindOwnedIdentity + + var logType: OSLogType { + return .fault + } + + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + } + } + + } + + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/ContactIdentityCoordinator.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/ContactIdentityCoordinator.swift index 9de8b15f..d6b19296 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/ContactIdentityCoordinator.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/ContactIdentityCoordinator.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,6 +25,7 @@ import CoreDataStack import OlvidUtils import ObvTypes import ObvUICoreData +import ObvSettings final class ContactIdentityCoordinator: ObvErrorMaker { @@ -34,6 +35,7 @@ final class ContactIdentityCoordinator: ObvErrorMaker { private var observationTokens = [NSObjectProtocol]() private let coordinatorsQueue: OperationQueue private let queueForComposedOperations: OperationQueue + weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? static let errorDomain = "ContactIdentityCoordinator" @@ -56,17 +58,14 @@ final class ContactIdentityCoordinator: ObvErrorMaker { ObvMessengerInternalNotification.observeUserWantsToDeleteContact { [weak self] contactCryptoId, ownedCryptoId, viewController, completionHandler in Task { [weak self] in await self?.processUserWantsToDeleteContact(with: contactCryptoId, ownedCryptoId: ownedCryptoId, viewController: viewController, completionHandler: completionHandler) } }, - ObvMessengerInternalNotification.observeResyncContactIdentityDevicesWithEngine { [weak self] contactCryptoId, ownedCryptoId in - self?.processResyncContactIdentityDevicesWithEngineNotification(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) - }, - ObvMessengerInternalNotification.observeResyncContactIdentityDetailsStatusWithEngine { [weak self] contactCryptoId, ownedCryptoId in - self?.processResyncContactIdentityDetailsStatusWithEngineNotification(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) + ObvMessengerInternalNotification.observeResyncContactIdentityDevicesWithEngine { [weak self] obvContactIdentifier in + self?.processResyncContactIdentityDevicesWithEngineNotification(obvContactIdentifier: obvContactIdentifier) }, ObvMessengerInternalNotification.observeUserDidSeeNewDetailsOfContact { [weak self] contactCryptoId, ownedCryptoId in self?.processUserDidSeeNewDetailsOfContactNotification(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) }, - ObvMessengerInternalNotification.observeUserWantsToEditContactNicknameAndPicture { [weak self] persistedContactObjectID, customDisplayName, customPhotoURL in - self?.updateCustomNicknameAndPictureForContact(persistedContactObjectID: persistedContactObjectID, customDisplayName: customDisplayName, customPhotoURL: customPhotoURL) + ObvMessengerInternalNotification.observeUserWantsToEditContactNicknameAndPicture { [weak self] persistedContactObjectID, customDisplayName, customPhoto in + self?.updateCustomNicknameAndPictureForContact(persistedContactObjectID: persistedContactObjectID, customDisplayName: customDisplayName, customPhoto: customPhoto) }, ObvMessengerInternalNotification.observeUserWantsToChangeContactsSortOrder { [weak self] ownedCryptoId, sortOrder in self?.processUserWantToChangeContactsSortOrderNotification(ownedCryptoId: ownedCryptoId, sortOrder: sortOrder) @@ -89,26 +88,26 @@ final class ContactIdentityCoordinator: ObvErrorMaker { ObvMessengerInternalNotification.observeUiRequiresSignedContactDetails { [weak self] ownedIdentityCryptoId, contactCryptoId, completion in self?.processUiRequiresSignedContactDetails(ownedIdentityCryptoId: ownedIdentityCryptoId, contactCryptoId: contactCryptoId, completion: completion) }, + ObvMessengerInternalNotification.observeUserWantsToUpdatePersonalNoteOnContact { [weak self] contactIdentifier, newText in + self?.processUserWantsToUpdatePersonalNoteOnContact(contactIdentifier: contactIdentifier, newText: newText) + }, ]) // Listening to ObvEngine Notification observationTokens.append(contentsOf: [ - ObvEngineNotificationNew.observeDeletedObliviousChannelWithContactDevice(within: NotificationCenter.default) { [weak self] obvContactDevice in - self?.processDeletedObliviousChannelWithContactDevice(obvContactDevice: obvContactDevice) + ObvEngineNotificationNew.observeDeletedObliviousChannelWithContactDevice(within: NotificationCenter.default) { [weak self] obvContactIdentifier in + self?.processDeletedObliviousChannelWithContactDevice(obvContactIdentifier: obvContactIdentifier) }, ObvEngineNotificationNew.observeNewTrustedContactIdentity(within: NotificationCenter.default) { [weak self] obvContactIdentity in self?.processNewTrustedContactIdentity(obvContactIdentity: obvContactIdentity) }, - ObvEngineNotificationNew.observeNewObliviousChannelWithContactDevice(within: NotificationCenter.default) { [weak self] obvContactDevice in - self?.processNewObliviousChannelWithContactDevice(obvContactDevice: obvContactDevice) + ObvEngineNotificationNew.observeNewObliviousChannelWithContactDevice(within: NotificationCenter.default) { [weak self] obvContactIdentifier in + self?.processNewObliviousChannelWithContactDevice(obvContactIdentifier: obvContactIdentifier) }, ObvEngineNotificationNew.observeTrustedPhotoOfContactIdentityHasBeenUpdated(within: NotificationCenter.default) { [weak self] obvContactIdentity in self?.processTrustedPhotoOfContactIdentityHasBeenUpdated(obvContactIdentity: obvContactIdentity) }, - ObvEngineNotificationNew.observeUpdatedSetOfContactsCertifiedByOwnKeycloak(within: NotificationCenter.default) { [weak self] ownedIdentity, contactsCertifiedByOwnKeycloak in - self?.processUpdatedSetOfContactsCertifiedByOwnKeycloakNotification(ownedIdentity: ownedIdentity, contactsCertifiedByOwnKeycloak: contactsCertifiedByOwnKeycloak) - }, ObvEngineNotificationNew.observeOwnedIdentityUnbindingFromKeycloakPerformed(within: NotificationCenter.default) { [weak self] ownedIdentity, result in self?.processOwnedIdentityUnbindingFromKeycloakPerformedNotification(ownedIdentity: ownedIdentity, result: result) }, @@ -124,18 +123,15 @@ final class ContactIdentityCoordinator: ObvErrorMaker { ObvEngineNotificationNew.observeContactWasDeleted(within: NotificationCenter.default) { [weak self] ownedCryptoId, contactCryptoId in self?.processContactWasDeleted(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) }, + ObvEngineNotificationNew.observeNewContactDevice(within: NotificationCenter.default) { [weak self] obvContactIdentifier in + self?.processNewContactDevice(obvContactIdentifier: obvContactIdentifier) + }, ]) } - func applicationAppearedOnScreen(forTheFirstTime: Bool) async { - do { - try obvEngine.requestSetOfContactsCertifiedByOwnKeycloakForAllOwnedCryptoIds() - } catch { - os_log("Could not bootstrap list of all contactact certified by same keycloak server as owned identity", log: Self.log, type: .fault) - } - } + func applicationAppearedOnScreen(forTheFirstTime: Bool) async {} } @@ -207,24 +203,29 @@ extension ContactIdentityCoordinator { completion(nil) } } - - private func updateCustomNicknameAndPictureForContact(persistedContactObjectID: NSManagedObjectID, customDisplayName: String?, customPhotoURL: URL?) { - let op1 = UpdateCustomNicknameAndPictureForContactOperation(persistedContactObjectID: persistedContactObjectID, customDisplayName: customDisplayName, customPhotoURL: customPhotoURL) + + private func processUserWantsToUpdatePersonalNoteOnContact(contactIdentifier: ObvContactIdentifier, newText: String?) { + let op1 = UpdatePersonalNoteOnContactOperation(contactIdentifier: contactIdentifier, newText: newText, makeSyncAtomRequest: true, syncAtomRequestDelegate: syncAtomRequestDelegate) let composedOp = createCompositionOfOneContextualOperation(op1: op1) self.coordinatorsQueue.addOperation(composedOp) } - private func processResyncContactIdentityDevicesWithEngineNotification(contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId) { - let op1 = ResyncContactIdentityDevicesWithEngineOperation(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId, obvEngine: obvEngine) + private func updateCustomNicknameAndPictureForContact(persistedContactObjectID: NSManagedObjectID, customDisplayName: String?, customPhoto: UIImage?) { + let op1 = UpdateCustomNicknameAndPictureForContactOperation( + persistedContactObjectID: persistedContactObjectID, + customDisplayName: customDisplayName, + customPhoto: .image(image: customPhoto), + makeSyncAtomRequest: true, + syncAtomRequestDelegate: syncAtomRequestDelegate) let composedOp = createCompositionOfOneContextualOperation(op1: op1) self.coordinatorsQueue.addOperation(composedOp) } - - - private func processResyncContactIdentityDetailsStatusWithEngineNotification(contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId) { - let op1 = ResyncContactIdentityDetailsStatusWithEngineOperation(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId, obvEngine: obvEngine) + + + private func processResyncContactIdentityDevicesWithEngineNotification(obvContactIdentifier: ObvContactIdentifier) { + let op1 = ResyncContactIdentityDevicesWithEngineOperation(contactIdentifier: obvContactIdentifier, obvEngine: obvEngine) let composedOp = createCompositionOfOneContextualOperation(op1: op1) self.coordinatorsQueue.addOperation(composedOp) } @@ -434,7 +435,8 @@ extension ContactIdentityCoordinator { private func processNewTrustedContactIdentity(obvContactIdentity: ObvContactIdentity) { let op1 = ProcessNewTrustedContactIdentityOperation(obvContactIdentity: obvContactIdentity) - let composedOp = createCompositionOfOneContextualOperation(op1: op1) + let op2 = ResyncContactIdentityDevicesWithEngineOperation(contactIdentifier: obvContactIdentity.contactIdentifier, obvEngine: obvEngine) + let composedOp = createCompositionOfTwoContextualOperation(op1: op1, op2: op2) self.coordinatorsQueue.addOperation(composedOp) } @@ -444,17 +446,24 @@ extension ContactIdentityCoordinator { let composedOp = createCompositionOfOneContextualOperation(op1: op1) self.coordinatorsQueue.addOperation(composedOp) } - - private func processNewObliviousChannelWithContactDevice(obvContactDevice: ObvContactDevice) { - let op1 = ProcessNewObliviousChannelWithContactDeviceOperation(obvContactDevice: obvContactDevice) + + private func processNewObliviousChannelWithContactDevice(obvContactIdentifier: ObvContactIdentifier) { + let op1 = ResyncContactIdentityDevicesWithEngineOperation(contactIdentifier: obvContactIdentifier, obvEngine: obvEngine) let composedOp = createCompositionOfOneContextualOperation(op1: op1) self.coordinatorsQueue.addOperation(composedOp) } - private func processDeletedObliviousChannelWithContactDevice(obvContactDevice: ObvContactDevice) { - let op1 = ProcessDeletedObliviousChannelWithContactDeviceOperation(obvContactDevice: obvContactDevice) + private func processNewContactDevice(obvContactIdentifier: ObvContactIdentifier) { + let op1 = ResyncContactIdentityDevicesWithEngineOperation(contactIdentifier: obvContactIdentifier, obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + self.coordinatorsQueue.addOperation(composedOp) + } + + + private func processDeletedObliviousChannelWithContactDevice(obvContactIdentifier: ObvContactIdentifier) { + let op1 = ResyncContactIdentityDevicesWithEngineOperation(contactIdentifier: obvContactIdentifier, obvEngine: obvEngine) let composedOp = createCompositionOfOneContextualOperation(op1: op1) self.coordinatorsQueue.addOperation(composedOp) } @@ -494,14 +503,7 @@ extension ContactIdentityCoordinator { self.coordinatorsQueue.addOperation(composedOp) } - - private func processUpdatedSetOfContactsCertifiedByOwnKeycloakNotification(ownedIdentity: ObvCryptoId, contactsCertifiedByOwnKeycloak: Set) { - let op1 = UpdateListOfContactsCertifiedByOwnKeycloakOperation(ownedIdentity: ownedIdentity, contactsCertifiedByOwnKeycloak: contactsCertifiedByOwnKeycloak) - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - self.coordinatorsQueue.addOperation(composedOp) - } - - + private func processOwnedIdentityUnbindingFromKeycloakPerformedNotification(ownedIdentity: ObvCryptoId, result: Result) { let op1 = UpdateListOfContactsCertifiedByOwnKeycloakOperation(ownedIdentity: ownedIdentity, contactsCertifiedByOwnKeycloak: Set([])) let composedOp = createCompositionOfOneContextualOperation(op1: op1) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessContactWasDeletedOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessContactWasDeletedOperation.swift index c50f5097..295665cc 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessContactWasDeletedOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessContactWasDeletedOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,7 @@ import OlvidUtils import ObvTypes import os.log import ObvUICoreData +import CoreData final class ProcessContactWasDeletedOperation: ContextualOperationWithSpecificReasonForCancel { @@ -35,24 +36,16 @@ final class ProcessContactWasDeletedOperation: ContextualOperationWithSpecificRe super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + do { - do { - - let contact = try PersistedObvContactIdentity.get(contactCryptoId: contactCryptoId, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: obvContext.context) - try contact?.deleteAndLockOneToOneDiscussion() - - } catch { - - return cancel(withReason: .coreDataError(error: error)) - - } + let contact = try PersistedObvContactIdentity.get(contactCryptoId: contactCryptoId, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: obvContext.context) + try contact?.deleteAndLockOneToOneDiscussion() + + } catch { + + return cancel(withReason: .coreDataError(error: error)) } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessDeletedObliviousChannelWithContactDeviceOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessDeletedObliviousChannelWithContactDeviceOperation.swift deleted file mode 100644 index 53692611..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessDeletedObliviousChannelWithContactDeviceOperation.swift +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import OlvidUtils -import ObvEngine -import os.log -import ObvUICoreData - - -final class ProcessDeletedObliviousChannelWithContactDeviceOperation: ContextualOperationWithSpecificReasonForCancel { - - let obvContactDevice: ObvContactDevice - - init(obvContactDevice: ObvContactDevice) { - self.obvContactDevice = obvContactDevice - super.init() - } - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { - - try PersistedObvContactDevice.delete(contactDeviceIdentifier: obvContactDevice.identifier, - contactCryptoId: obvContactDevice.contactIdentity.cryptoId, - ownedCryptoId: obvContactDevice.contactIdentity.ownedIdentity.cryptoId, - within: obvContext.context) - - } catch { - - return cancel(withReason: .coreDataError(error: error)) - - } - - } - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessNewObliviousChannelWithContactDeviceOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessNewObliviousChannelWithContactDeviceOperation.swift index e918e03d..b7e21abd 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessNewObliviousChannelWithContactDeviceOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessNewObliviousChannelWithContactDeviceOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,41 +27,41 @@ import ObvUICoreData /// When a new channel is created with a contact device: /// - we create a contact device /// - we send the one-to-one discussion shared settings to the contact (well, we notify that it should be sent) -final class ProcessNewObliviousChannelWithContactDeviceOperation: ContextualOperationWithSpecificReasonForCancel { - - let obvContactDevice: ObvContactDevice - - init(obvContactDevice: ObvContactDevice) { - self.obvContactDevice = obvContactDevice - super.init() - } - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { - guard let contact = try PersistedObvContactIdentity.get(persisted: obvContactDevice.contactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { - return cancel(withReason: .couldNotFindContactIdentityInDatabase) - } - - try contact.insert(obvContactDevice) - - } catch { - - return cancel(withReason: .coreDataError(error: error)) - - } - - } - - } - -} +//final class ProcessNewObliviousChannelWithContactDeviceOperation: ContextualOperationWithSpecificReasonForCancel { +// +// let obvContactDevice: ObvContactDevice +// +// init(obvContactDevice: ObvContactDevice) { +// self.obvContactDevice = obvContactDevice +// super.init() +// } +// +// override func main() { +// +// guard let obvContext = self.obvContext else { +// return cancel(withReason: .contextIsNil) +// } +// +// obvContext.performAndWait { +// +// do { +// guard let contact = try PersistedObvContactIdentity.get(persisted: obvContactDevice.contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) else { +// return cancel(withReason: .couldNotFindContactIdentityInDatabase) +// } +// +// try contact.insert(obvContactDevice) +// +// } catch { +// +// return cancel(withReason: .coreDataError(error: error)) +// +// } +// +// } +// +// } +// +//} enum ProcessNewObliviousChannelWithContactDeviceOperationReasonForCancel: LocalizedErrorWithLogType { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessNewTrustedContactIdentityOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessNewTrustedContactIdentityOperation.swift index 72ce5281..7e1036b0 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessNewTrustedContactIdentityOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessNewTrustedContactIdentityOperation.swift @@ -34,27 +34,49 @@ final class ProcessNewTrustedContactIdentityOperation: ContextualOperationWithSp super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { - do { + let existingPersistedObvContactIdentity = try PersistedObvContactIdentity.get(persisted: obvContactIdentity.contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) - let existingPersistedObvContactIdentity = try PersistedObvContactIdentity.get(persisted: obvContactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) - guard existingPersistedObvContactIdentity == nil else { - return - } - _ = try PersistedObvContactIdentity(contactIdentity: obvContactIdentity, within: obvContext.context) - - } catch { - return cancel(withReason: .coreDataError(error: error)) + if let existingPersistedObvContactIdentity { + + try existingPersistedObvContactIdentity.updateContact(with: obvContactIdentity) + + } else { + + let contact = try PersistedObvContactIdentity.createPersistedObvContactIdentity(contactIdentity: obvContactIdentity, within: obvContext.context) + + requestSendingOneToOneDiscussionSharedConfiguration(with: contact, within: obvContext) + } - + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } + + + // We had to create a contact, meaning we had to create/unlock a one2one discussion. In that case, we want to (re)send the discussion shared settings to our contact. + // This allows to make sure those settings are in sync. + private func requestSendingOneToOneDiscussionSharedConfiguration(with contact: PersistedObvContactIdentity, within obvContext: ObvContext) { + do { + // We had to create a contact, meaning we had to create/unlock a one2one discussion. In that case, we want to (re)send the discussion shared settings to our contact. + // This allows to make sure those settings are in sync. + let contactIdentifier = try contact.contactIdentifier + guard let discussionId = try contact.oneToOneDiscussion?.identifier else { return } + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + ObvMessengerInternalNotification.aDiscussionSharedConfigurationIsNeededByContact( + contactIdentifier: contactIdentifier, + discussionId: discussionId) + .postOnDispatchQueue() + } + } catch { + assertionFailure(error.localizedDescription) + } + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessTrustedPhotoOfContactIdentityHasBeenUpdatedOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessTrustedPhotoOfContactIdentityHasBeenUpdatedOperation.swift index 7badf11b..507bbd9b 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessTrustedPhotoOfContactIdentityHasBeenUpdatedOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ProcessTrustedPhotoOfContactIdentityHasBeenUpdatedOperation.swift @@ -34,24 +34,16 @@ final class ProcessTrustedPhotoOfContactIdentityHasBeenUpdatedOperation: Context super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { - do { - - guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: obvContactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { return } - persistedContactIdentity.updatePhotoURL(with: obvContactIdentity.trustedIdentityDetails.photoURL) - - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - + guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: obvContactIdentity.contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) else { return } + persistedContactIdentity.updatePhotoURL(with: obvContactIdentity.trustedIdentityDetails.photoURL) + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ResyncContactIdentityDetailsStatusWithEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ResyncContactIdentityDetailsStatusWithEngineOperation.swift deleted file mode 100644 index 900dc33c..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ResyncContactIdentityDetailsStatusWithEngineOperation.swift +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2023 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import OlvidUtils -import os.log -import ObvTypes -import ObvEngine -import ObvUICoreData - - -final class ResyncContactIdentityDetailsStatusWithEngineOperation: ContextualOperationWithSpecificReasonForCancel { - - let ownedCryptoId: ObvCryptoId - let contactCryptoId: ObvCryptoId - let obvEngine: ObvEngine - - private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "ResyncContactIdentityDetailsStatusWithEngineOperation") - - init(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId, obvEngine: ObvEngine) { - self.ownedCryptoId = ownedCryptoId - self.contactCryptoId = contactCryptoId - self.obvEngine = obvEngine - super.init() - } - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - let obvContactIdentity: ObvContactIdentity - do { - obvContactIdentity = try obvEngine.getContactIdentity(with: contactCryptoId, ofOwnedIdentityWith: ownedCryptoId) - } catch { - os_log("While trying to re-sync a persisted contact, we could not find her in the engine", log: Self.log, type: .fault) - return cancel(withReason: .couldNotGetObvContactIdentityFromEngine) - } - - obvContext.performAndWait { - - do { - - guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: obvContactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { - return cancel(withReason: .couldNotFindPersistedContact) - } - guard let receivedPublishedDetails = obvContactIdentity.publishedIdentityDetails else { return } - if obvContactIdentity.trustedIdentityDetails == receivedPublishedDetails { - persistedContactIdentity.setContactStatus(to: .noNewPublishedDetails) - } else { - persistedContactIdentity.setContactStatus(to: .unseenPublishedDetails) - } - - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - } - - } -} - - - -enum ResyncContactIdentityDetailsStatusWithEngineOperationReasonForCancel: LocalizedErrorWithLogType { - - case coreDataError(error: Error) - case contextIsNil - case couldNotGetObvContactIdentityFromEngine - case couldNotFindPersistedContact - - var logType: OSLogType { - switch self { - case .coreDataError, - .contextIsNil, - .couldNotFindPersistedContact, - .couldNotGetObvContactIdentityFromEngine: - return .fault - } - } - - var errorDescription: String? { - switch self { - case .contextIsNil: - return "Context is nil" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .couldNotFindPersistedContact: - return "Could not find contact" - case .couldNotGetObvContactIdentityFromEngine: - return "Could not get ObvContactIdentity from engine" - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ResyncContactIdentityDevicesWithEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ResyncContactIdentityDevicesWithEngineOperation.swift index f57abb4e..8a46c9a2 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ResyncContactIdentityDevicesWithEngineOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/ResyncContactIdentityDevicesWithEngineOperation.swift @@ -23,71 +23,69 @@ import os.log import ObvTypes import ObvEngine import ObvUICoreData +import CoreData final class ResyncContactIdentityDevicesWithEngineOperation: ContextualOperationWithSpecificReasonForCancel { - let ownedCryptoId: ObvCryptoId - let contactCryptoId: ObvCryptoId + let contactIdentifier: ObvContactIdentifier let obvEngine: ObvEngine private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "ResyncContactIdentityDevicesWithEngineOperation") - init(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId, obvEngine: ObvEngine) { - self.ownedCryptoId = ownedCryptoId - self.contactCryptoId = contactCryptoId + init(contactIdentifier: ObvContactIdentifier, obvEngine: ObvEngine) { + self.contactIdentifier = contactIdentifier self.obvEngine = obvEngine super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { let engineContactDevices: Set do { - engineContactDevices = try obvEngine.getAllObliviousChannelsEstablishedWithContactIdentity(with: contactCryptoId, ofOwnedIdentyWith: ownedCryptoId) + engineContactDevices = try obvEngine.getAllObvContactDevicesOfContact(with: contactIdentifier) } catch { - os_log("Could not get all Oblivious Channels established with contact. Could not sync with engine.", log: Self.log, type: .fault) - return cancel(withReason: .couldNotGetAllObliviousChannelsEstablishedWithContactIdentity(error: error)) + os_log("Could not get all Oblivious Channels established with contact. Could not sync with engine. This is ok if the contact was just deleted.", log: Self.log, type: .fault) + return cancel(withReason: .couldNotGetContactDevicesFromEngine(error: error)) } - obvContext.performAndWait { + do { + + guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) else { + os_log("The contact cannot be found, it might be added in a few seconds.", log: Self.log, type: .error) + return + } + + var objectIDsOfDevicesToRefreshInViewContext = Set(persistedContactIdentity.devices.map({ $0.objectID })) + + try persistedContactIdentity.synchronizeDevices(with: engineContactDevices) + + objectIDsOfDevicesToRefreshInViewContext.formUnion(Set(persistedContactIdentity.devices.map({ $0.objectID }))) + let objectIdOfContact = persistedContactIdentity.objectID do { - - guard let persistedOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { - os_log("Could not get the persisted owned identity", log: Self.log, type: .fault) - assertionFailure() - return cancel(withReason: .couldNotFindPersistedObvOwnedIdentity) + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + DispatchQueue.main.async { + let devicesInViewContext = ObvStack.shared.viewContext.registeredObjects + .filter { object in + objectIDsOfDevicesToRefreshInViewContext.contains(where: { $0 == object.objectID }) + } + devicesInViewContext.forEach { object in + ObvStack.shared.viewContext.refresh(object, mergeChanges: false) + } + if let contactInViewContext = ObvStack.shared.viewContext.registeredObjects.first(where: { $0.objectID == objectIdOfContact }) { + ObvStack.shared.viewContext.refresh(contactInViewContext, mergeChanges: false) + } + + } } - - guard let persistedContactIdentity = try PersistedObvContactIdentity.get(cryptoId: contactCryptoId, ownedIdentity: persistedOwnedIdentity, whereOneToOneStatusIs: .any) else { - os_log("Could not get the persisted obv contact identity", log: Self.log, type: .fault) - assertionFailure() - return cancel(withReason: .couldNotFindPersistedContact) - } - - let localContactDevicesIdentifiers = Set(persistedContactIdentity.devices.map { $0.identifier }) - let missingDevices = engineContactDevices.filter { !localContactDevicesIdentifiers.contains($0.identifier) } - for missingDevice in missingDevices { - try persistedContactIdentity.insert(missingDevice) - } - - let engineContactDeviceIdentifiers = engineContactDevices.map { $0.identifier } - let identifiersOfDevicesToRemove = localContactDevicesIdentifiers.filter { !engineContactDeviceIdentifiers.contains($0) } - for contactDeviceIdentifier in identifiersOfDevicesToRemove { - try PersistedObvContactDevice.delete(contactDeviceIdentifier: contactDeviceIdentifier, contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId, within: obvContext.context) - } - - } catch { - return cancel(withReason: .coreDataError(error: error)) } - + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } @@ -97,7 +95,7 @@ enum ResyncContactIdentityDevicesWithEngineOperationReasonForCancel: LocalizedEr case coreDataError(error: Error) case contextIsNil - case couldNotGetAllObliviousChannelsEstablishedWithContactIdentity(error: Error) + case couldNotGetContactDevicesFromEngine(error: Error) case couldNotFindPersistedObvOwnedIdentity case couldNotFindPersistedContact @@ -106,9 +104,10 @@ enum ResyncContactIdentityDevicesWithEngineOperationReasonForCancel: LocalizedEr case .coreDataError, .contextIsNil, .couldNotFindPersistedObvOwnedIdentity, - .couldNotFindPersistedContact, - .couldNotGetAllObliviousChannelsEstablishedWithContactIdentity: + .couldNotFindPersistedContact: return .fault + case .couldNotGetContactDevicesFromEngine: + return .error } } @@ -118,8 +117,8 @@ enum ResyncContactIdentityDevicesWithEngineOperationReasonForCancel: LocalizedEr return "Context is nil" case .coreDataError(error: let error): return "Core Data error: \(error.localizedDescription)" - case .couldNotGetAllObliviousChannelsEstablishedWithContactIdentity(error: let error): - return "Could not get all oblivious channels established with contact identity: \(error.localizedDescription)" + case .couldNotGetContactDevicesFromEngine(error: let error): + return "Could not get contact devices from engine: \(error.localizedDescription)" case .couldNotFindPersistedObvOwnedIdentity: return "Could not find persisted owned identity" case .couldNotFindPersistedContact: diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdateContactsSortOrderOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdateContactsSortOrderOperation.swift index 95079467..7389f700 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdateContactsSortOrderOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdateContactsSortOrderOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,8 @@ import os.log import ObvTypes import OlvidUtils import ObvUICoreData +import CoreData +import ObvSettings final class UpdateContactsSortOrderOperation: ContextualOperationWithSpecificReasonForCancel { @@ -35,39 +37,32 @@ final class UpdateContactsSortOrderOperation: ContextualOperationWithSpecificRea super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { + do { + + // Update the sort order of PersistedObvContactIdentity instances + + let persistedObvContactIdentites = try PersistedObvContactIdentity.getAllContactOfOwnedIdentity(with: ownedCryptoId, whereOneToOneStatusIs: .any, within: obvContext.context) + + for persistedObvContactIdentity in persistedObvContactIdentites { + persistedObvContactIdentity.updateSortOrder(with: newSortOrder) + } + + // Update the sort order of PersistedGroupV2Member instances (some where already updated thanks to the update made to the PersistedObvContactIdentity instances, but not all) + + let persistedGroupV2Members = try PersistedGroupV2Member.getAllPersistedGroupV2MemberOfOwnedIdentity(with: ownedCryptoId, within: obvContext.context) - // Update the sort order of PersistedObvContactIdentity instances - - let persistedObvContactIdentites = try PersistedObvContactIdentity.getAllContactOfOwnedIdentity(with: ownedCryptoId, whereOneToOneStatusIs: .any, within: obvContext.context) - - for persistedObvContactIdentity in persistedObvContactIdentites { - persistedObvContactIdentity.updateSortOrder(with: newSortOrder) - } - - // Update the sort order of PersistedGroupV2Member instances (some where already updated thanks to the update made to the PersistedObvContactIdentity instances, but not all) - - let persistedGroupV2Members = try PersistedGroupV2Member.getAllPersistedGroupV2MemberOfOwnedIdentity(with: ownedCryptoId, within: obvContext.context) - - for persistedGroupV2Member in persistedGroupV2Members { - persistedGroupV2Member.updateNormalizedSortAndSearchKeys(with: newSortOrder) - } - - } catch { - return cancel(withReason: .coreDataError(error: error)) + for persistedGroupV2Member in persistedGroupV2Members { + persistedGroupV2Member.updateNormalizedSortAndSearchKeys(with: newSortOrder) } - ObvMessengerSettings.Interface.contactsSortOrder = newSortOrder + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + + ObvMessengerSettings.Interface.contactsSortOrder = newSortOrder + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdateCustomNicknameAndPictureForContactOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdateCustomNicknameAndPictureForContactOperation.swift index 28e0674e..3d4e6597 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdateCustomNicknameAndPictureForContactOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdateCustomNicknameAndPictureForContactOperation.swift @@ -29,34 +29,74 @@ final class UpdateCustomNicknameAndPictureForContactOperation: ContextualOperati let persistedContactObjectID: NSManagedObjectID let customDisplayName: String? - let customPhotoURL: URL? + let customPhoto: PhotoKind + private let makeSyncAtomRequest: Bool + private weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? - init(persistedContactObjectID: NSManagedObjectID, customDisplayName: String?, customPhotoURL: URL?) { + enum PhotoKind { + case url(url: URL?) + case image(image: UIImage?) + } + + init(persistedContactObjectID: NSManagedObjectID, customDisplayName: String?, customPhoto: PhotoKind, makeSyncAtomRequest: Bool, syncAtomRequestDelegate: ObvSyncAtomRequestDelegate?) { self.persistedContactObjectID = persistedContactObjectID self.customDisplayName = customDisplayName - self.customPhotoURL = customPhotoURL + self.customPhoto = customPhoto + self.makeSyncAtomRequest = makeSyncAtomRequest + self.syncAtomRequestDelegate = syncAtomRequestDelegate super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { - do { - - guard let contact = try PersistedObvContactIdentity.get(objectID: persistedContactObjectID, within: obvContext.context) else { assertionFailure(); return } - try contact.setCustomDisplayName(to: customDisplayName) - contact.setCustomPhotoURL(with: customPhotoURL) - - } catch { - return cancel(withReason: .coreDataError(error: error)) + guard let contact = try PersistedObvContactIdentity.get(objectID: persistedContactObjectID, within: obvContext.context) else { assertionFailure(); return } + let customDisplayNameWasUpdated = try contact.setCustomDisplayName(to: customDisplayName) + switch customPhoto { + case .url(let url): + contact.setCustomPhotoURL(with: url) + case .image(let image): + try contact.setCustomPhoto(with: image) } + // If the custom display name was updated, we propagate the change to our other owned devices + + if makeSyncAtomRequest && customDisplayNameWasUpdated { + if let ownedCryptoId = contact.ownedIdentity?.cryptoId, let syncAtomRequestDelegate = self.syncAtomRequestDelegate { + let contactCryptoId = contact.cryptoId + let syncAtom = ObvSyncAtom.contactNickname(contactCryptoId: contactCryptoId, contactNickname: customDisplayName) + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + Task.detached { + await syncAtomRequestDelegate.requestPropagationToOtherOwnedDevices(of: syncAtom, for: ownedCryptoId) + } + } + } else { + assertionFailure("Could not propagate the new nickname to our other owned devices") + } + } + + // If the contact is updated, we want to refresh it in the view context to update the UI + + if contact.isUpdated { + do { + let contactObjectID = contact.objectID + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + viewContext.perform { + guard let contactInViewContext = viewContext.registeredObjects.first(where: { $0.objectID == contactObjectID }) else { return } + viewContext.refresh(contactInViewContext, mergeChanges: false) + } + } + } catch { + assertionFailure(error.localizedDescription) + } + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdateListOfContactsCertifiedByOwnKeycloakOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdateListOfContactsCertifiedByOwnKeycloakOperation.swift index 762221ef..c412afc9 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdateListOfContactsCertifiedByOwnKeycloakOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdateListOfContactsCertifiedByOwnKeycloakOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,7 @@ import OlvidUtils import ObvTypes import os.log import ObvUICoreData +import CoreData /// This operation is typically called when binding an owned identity to a keycloak server. In that case, the engine will return a list of all the contacts that are bound to the same keycloak server. @@ -39,33 +40,24 @@ final class UpdateListOfContactsCertifiedByOwnKeycloakOperation: ContextualOpera private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: UpdateListOfContactsCertifiedByOwnKeycloakOperation.self)) - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + // We first mark *all* the contacts of the owned identity as *not* keycloak managed + + do { + try PersistedObvContactIdentity.markAllContactOfOwnedIdentityAsNotCertifiedBySameKeycloak(ownedCryptoId: ownedIdentity, within: obvContext.context) - // We first mark *all* the contacts of the owned identity as *not* keycloak managed + // We then fetch all the contacts corresponding to the contact Id's received in the new list and mark the corresponding + // `PersistedObvContactIdentity` instances as certified by the same keycloak - do { - try PersistedObvContactIdentity.markAllContactOfOwnedIdentityAsNotCertifiedBySameKeycloak(ownedCryptoId: ownedIdentity, within: obvContext.context) - - // We then fetch all the contacts corresponding to the contact Id's received in the new list and mark the corresponding - // `PersistedObvContactIdentity` instances as certified by the same keycloak - - for contactCryptoId in contactsCertifiedByOwnKeycloak { - let contact = try PersistedObvContactIdentity.get(contactCryptoId: contactCryptoId, ownedIdentityCryptoId: ownedIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) - contact?.markAsCertifiedByOwnKeycloak() - } - - } catch { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + for contactCryptoId in contactsCertifiedByOwnKeycloak { + let contact = try PersistedObvContactIdentity.get(contactCryptoId: contactCryptoId, ownedIdentityCryptoId: ownedIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) + contact?.markAsCertifiedByOwnKeycloak() } - + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdatePersistedContactIdentityStatusWithInfoFromEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdatePersistedContactIdentityStatusWithInfoFromEngineOperation.swift index d5e76926..ce8500d4 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdatePersistedContactIdentityStatusWithInfoFromEngineOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdatePersistedContactIdentityStatusWithInfoFromEngineOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,7 @@ import OlvidUtils import ObvEngine import os.log import ObvUICoreData +import CoreData final class UpdatePersistedContactIdentityStatusWithInfoFromEngineOperation: ContextualOperationWithSpecificReasonForCancel { @@ -36,47 +37,41 @@ final class UpdatePersistedContactIdentityStatusWithInfoFromEngineOperation: Con super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - - guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: obvContactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { - return cancel(withReason: .couldNotFindContactIdentityInDatabase) - } - - if trustedIdentityDetailsWereUpdated { - persistedContactIdentity.setContactStatus(to: .noNewPublishedDetails) - } - - if publishedIdentityDetailsWereUpdated { - assert(obvContactIdentity.publishedIdentityDetails != nil) - if let receivedPublishedDetails = obvContactIdentity.publishedIdentityDetails { - let identicalPhotos: Bool - if obvContactIdentity.trustedIdentityDetails.photoURL == receivedPublishedDetails.photoURL { - identicalPhotos = true - } else if let trustedPhotoURL = obvContactIdentity.trustedIdentityDetails.photoURL, let newPhotoURL = receivedPublishedDetails.photoURL { - identicalPhotos = FileManager.default.contentsEqual(atPath: trustedPhotoURL.path, andPath: newPhotoURL.path) - } else { - identicalPhotos = false - } - if obvContactIdentity.trustedIdentityDetails.coreDetails == receivedPublishedDetails.coreDetails && identicalPhotos { - persistedContactIdentity.setContactStatus(to: .noNewPublishedDetails) - } else { - persistedContactIdentity.setContactStatus(to: .unseenPublishedDetails) - } + do { + + guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: obvContactIdentity.contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) else { + return cancel(withReason: .couldNotFindContactIdentityInDatabase) + } + + if trustedIdentityDetailsWereUpdated { + persistedContactIdentity.setContactStatus(to: .noNewPublishedDetails) + } + + if publishedIdentityDetailsWereUpdated { + assert(obvContactIdentity.publishedIdentityDetails != nil) + if let receivedPublishedDetails = obvContactIdentity.publishedIdentityDetails { + let identicalPhotos: Bool + if obvContactIdentity.trustedIdentityDetails.photoURL == receivedPublishedDetails.photoURL { + identicalPhotos = true + } else if let trustedPhotoURL = obvContactIdentity.trustedIdentityDetails.photoURL, let newPhotoURL = receivedPublishedDetails.photoURL { + identicalPhotos = FileManager.default.contentsEqual(atPath: trustedPhotoURL.path, andPath: newPhotoURL.path) + } else { + identicalPhotos = false + } + if obvContactIdentity.trustedIdentityDetails.coreDetails == receivedPublishedDetails.coreDetails && identicalPhotos { + persistedContactIdentity.setContactStatus(to: .noNewPublishedDetails) + } else { + persistedContactIdentity.setContactStatus(to: .unseenPublishedDetails) } } - - } catch { - return cancel(withReason: .coreDataError(error: error)) } + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdatePersistedContactIdentityWithObvContactIdentityOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdatePersistedContactIdentityWithObvContactIdentityOperation.swift index c9b67f32..d79e0f0c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdatePersistedContactIdentityWithObvContactIdentityOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdatePersistedContactIdentityWithObvContactIdentityOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,7 @@ import OlvidUtils import os.log import ObvEngine import ObvUICoreData +import CoreData final class UpdatePersistedContactIdentityWithObvContactIdentityOperation: ContextualOperationWithSpecificReasonForCancel { @@ -33,30 +34,22 @@ final class UpdatePersistedContactIdentityWithObvContactIdentityOperation: Conte super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + do { + + guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: obvContactIdentity.contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) else { + return cancel(withReason: .couldNotFindContactIdentityInDatabase) + } do { - - guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: obvContactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { - return cancel(withReason: .couldNotFindContactIdentityInDatabase) - } - - do { - try persistedContactIdentity.updateContact(with: obvContactIdentity) - } catch { - return cancel(withReason: .failedToUpdatePersistedObvContactIdentity(error: error)) - } - + try persistedContactIdentity.updateContact(with: obvContactIdentity) } catch { - return cancel(withReason: .coreDataError(error: error)) + return cancel(withReason: .failedToUpdatePersistedObvContactIdentity(error: error)) } - + + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdatePersonalNoteOnContactOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdatePersonalNoteOnContactOperation.swift new file mode 100644 index 00000000..34ff5498 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/UpdatePersonalNoteOnContactOperation.swift @@ -0,0 +1,98 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import CoreData +import os.log +import ObvEngine +import ObvUICoreData +import ObvTypes + + +final class UpdatePersonalNoteOnContactOperation: ContextualOperationWithSpecificReasonForCancel { + + private let contactIdentifier: ObvContactIdentifier + private let newText: String? + + private let makeSyncAtomRequest: Bool + private weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? + + init(contactIdentifier: ObvContactIdentifier, newText: String?, makeSyncAtomRequest: Bool, syncAtomRequestDelegate: ObvSyncAtomRequestDelegate?) { + self.contactIdentifier = contactIdentifier + self.newText = newText + self.makeSyncAtomRequest = makeSyncAtomRequest + self.syncAtomRequestDelegate = syncAtomRequestDelegate + super.init() + } + + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: contactIdentifier.ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + let noteHadToBeUpdatedInDatabase = try ownedIdentity.setPersonalNoteOnContact(contactCryptoId: contactIdentifier.contactCryptoId, newText: newText) + + if makeSyncAtomRequest && noteHadToBeUpdatedInDatabase { + assert(self.syncAtomRequestDelegate != nil) + if let syncAtomRequestDelegate = self.syncAtomRequestDelegate { + let ownedCryptoId = self.contactIdentifier.ownedCryptoId + let syncAtom = ObvSyncAtom.contactPersonalNote(contactCryptoId: self.contactIdentifier.contactCryptoId, note: newText) + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + Task.detached { + await syncAtomRequestDelegate.requestPropagationToOtherOwnedDevices(of: syncAtom, for: ownedCryptoId) + } + } + } + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindOwnedIdentity + + var logType: OSLogType { + return .fault + } + + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + } + } + + } + + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/processUserDidSeeNewDetailsOfContactOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/processUserDidSeeNewDetailsOfContactOperation.swift index 62bdf5e9..f9776735 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/processUserDidSeeNewDetailsOfContactOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ContactIdentityCoordinator/Operations/processUserDidSeeNewDetailsOfContactOperation.swift @@ -23,6 +23,7 @@ import os.log import ObvTypes import ObvEngine import ObvUICoreData +import CoreData final class processUserDidSeeNewDetailsOfContactOperation: ContextualOperationWithSpecificReasonForCancel { @@ -36,31 +37,23 @@ final class processUserDidSeeNewDetailsOfContactOperation: ContextualOperationWi super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { - do { - - guard let persistedContactIdentity = try PersistedObvContactIdentity.get(contactCryptoId: contactCryptoId, - ownedIdentityCryptoId: ownedCryptoId, - whereOneToOneStatusIs: .any, - within: obvContext.context) - else { - return - } - guard persistedContactIdentity.status == .unseenPublishedDetails else { return } - persistedContactIdentity.setContactStatus(to: .seenPublishedDetails) - - } catch { - return cancel(withReason: .coreDataError(error: error)) + guard let persistedContactIdentity = try PersistedObvContactIdentity.get(contactCryptoId: contactCryptoId, + ownedIdentityCryptoId: ownedCryptoId, + whereOneToOneStatusIs: .any, + within: obvContext.context) + else { + return } - + guard persistedContactIdentity.status == .unseenPublishedDetails else { return } + persistedContactIdentity.setContactStatus(to: .seenPublishedDetails) + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/CoordinatorsDelegates/ObvSyncAtomRequestDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/CoordinatorsDelegates/ObvSyncAtomRequestDelegate.swift new file mode 100644 index 00000000..dfddbd5a --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/CoordinatorsDelegates/ObvSyncAtomRequestDelegate.swift @@ -0,0 +1,29 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes + + +protocol ObvSyncAtomRequestDelegate: AnyObject { + + func requestPropagationToOtherOwnedDevices(of syncAtom: ObvSyncAtom, for ownedCryptoId: ObvCryptoId) async + func deleteDialog(with uuid: UUID) throws + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/MessagesKeptForLaterManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/MessagesKeptForLaterManager.swift new file mode 100644 index 00000000..13a5a25d --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/MessagesKeptForLaterManager.swift @@ -0,0 +1,104 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes +import ObvUICoreData + + +/// This manager is used by the `PersistedDiscussionsUpdatesCoordinator`. It is used when a receiving an `ObvMessage` or an `ObvOwnedMessage` "too early". This is for example the case +/// when a contact creates a group while our second device is offline. Our first device accepts the invitation and exchanges a few messages. When our second device comes back online, it first receive the protocol +/// messages allowing to create the group. As a consequence, the engine starts downloading the group blob. This can take a "long" time. In the meantime, the app receives all the messages, discussion shared settings, etc. +/// for that group. The issue: the group does not exist yet at that time, it has yet to be created. This is where this manager comes into play: we use it to store the `ObvMessage` and `ObvOwnedMessage` that +/// must wait until the group is created. When it is created, we "replay" all the messages. +/// Note that, although we keep those messages in memory only, this process is resilient. The reason is that we do **not** call the engine completion handler when we put an `Obv(Owned)Message` to wait and thus, +/// the engine does not mark it for deletion (it keeps it in the inbox). If the app is killed, the engine will replay the exact sames messages during bootstrap. +/// When replaying a message, we do call the completion handler in the end. +actor MessagesKeptForLaterManager { + + enum KindOfMessageToKeepForLater { + case obvMessageForGroupV2(groupIdentifier: GroupV2Identifier, obvMessage: ObvMessage, completionHandler: (Set) -> Void) + case obvOwnedMessageForGroupV2(groupIdentifier: GroupV2Identifier, obvOwnedMessage: ObvOwnedMessage, completionHandler: (Set) -> Void) + case obvMessageExpectingContact(contactCryptoId: ObvCryptoId, obvMessage: ObvMessage, completionHandler: (Set) -> Void) + case obvOwnedMessageExpectingContact(contactCryptoId: ObvCryptoId, obvOwnedMessage: ObvOwnedMessage, completionHandler: (Set) -> Void) + } + + private var keptGroupV2MessagesForOwnedCryptoId = [ObvCryptoId: [GroupV2Identifier: [KindOfMessageToKeepForLater]]]() + private var keptMessagesExpectingContactForOwnedCryptoId = [ObvCryptoId: [ObvCryptoId: [KindOfMessageToKeepForLater]]]() + + // Keep for later PersistedMessageReceived for Groups V2 + + func keepForLater(_ kind: KindOfMessageToKeepForLater) { + + switch kind { + + case .obvMessageForGroupV2(let groupIdentifier, let obvMessage, _): + let ownedCryptoId = obvMessage.fromContactIdentity.ownedCryptoId + var keptGroupV2Messages = keptGroupV2MessagesForOwnedCryptoId[ownedCryptoId, default: [GroupV2Identifier : [KindOfMessageToKeepForLater]]()] + var keptMessages = keptGroupV2Messages[groupIdentifier, default: [KindOfMessageToKeepForLater]()] + keptMessages.append(kind) + keptGroupV2Messages[groupIdentifier] = keptMessages + keptGroupV2MessagesForOwnedCryptoId[ownedCryptoId] = keptGroupV2Messages + + case .obvOwnedMessageForGroupV2(groupIdentifier: let groupIdentifier, obvOwnedMessage: let obvOwnedMessage, _): + let ownedCryptoId = obvOwnedMessage.ownedCryptoId + var keptGroupV2Messages = keptGroupV2MessagesForOwnedCryptoId[ownedCryptoId, default: [GroupV2Identifier : [KindOfMessageToKeepForLater]]()] + var keptMessages = keptGroupV2Messages[groupIdentifier, default: [KindOfMessageToKeepForLater]()] + keptMessages.append(kind) + keptGroupV2Messages[groupIdentifier] = keptMessages + keptGroupV2MessagesForOwnedCryptoId[ownedCryptoId] = keptGroupV2Messages + + case .obvMessageExpectingContact(contactCryptoId: let contactCryptoId, obvMessage: let obvMessage, completionHandler: _): + let ownedCryptoId = obvMessage.fromContactIdentity.ownedCryptoId + var keptMessagesExpectingContact = keptMessagesExpectingContactForOwnedCryptoId[ownedCryptoId, default: [ObvCryptoId : [KindOfMessageToKeepForLater]]()] + var keptMessages = keptMessagesExpectingContact[contactCryptoId, default: [KindOfMessageToKeepForLater]()] + keptMessages.append(kind) + keptMessagesExpectingContact[contactCryptoId] = keptMessages + keptMessagesExpectingContactForOwnedCryptoId[ownedCryptoId] = keptMessagesExpectingContact + + case .obvOwnedMessageExpectingContact(contactCryptoId: let contactCryptoId, obvOwnedMessage: let obvOwnedMessage, completionHandler: _): + let ownedCryptoId = obvOwnedMessage.ownedCryptoId + var keptMessagesExpectingContact = keptMessagesExpectingContactForOwnedCryptoId[ownedCryptoId, default: [ObvCryptoId : [KindOfMessageToKeepForLater]]()] + var keptMessages = keptMessagesExpectingContact[contactCryptoId, default: [KindOfMessageToKeepForLater]()] + keptMessages.append(kind) + keptMessagesExpectingContact[contactCryptoId] = keptMessages + keptMessagesExpectingContactForOwnedCryptoId[ownedCryptoId] = keptMessagesExpectingContact + + } + + } + + + func getGroupV2MessagesKeptForLaterForOwnedCryptoId(_ ownedCryptoId: ObvCryptoId, groupIdentifier: GroupV2Identifier) -> [KindOfMessageToKeepForLater] { + guard var keptGroupV2Messages = keptGroupV2MessagesForOwnedCryptoId[ownedCryptoId] else { return [] } + let keptForLater = keptGroupV2Messages.removeValue(forKey: groupIdentifier) ?? [KindOfMessageToKeepForLater]() + keptGroupV2MessagesForOwnedCryptoId[ownedCryptoId] = keptGroupV2Messages + return keptForLater + } + + + func getMessagesExpectingContactForOwnedCryptoId(_ ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) -> [KindOfMessageToKeepForLater] { + guard var keptMessagesExpectingContact = keptMessagesExpectingContactForOwnedCryptoId[ownedCryptoId] else { return [] } + guard let keptForLater = keptMessagesExpectingContact.removeValue(forKey: contactCryptoId) else { return [] } + keptMessagesExpectingContactForOwnedCryptoId[ownedCryptoId] = keptMessagesExpectingContact + return keptForLater + } + + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/ObvOwnedIdentityCoordinator.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/ObvOwnedIdentityCoordinator.swift index e01c8179..d4489c6f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/ObvOwnedIdentityCoordinator.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/ObvOwnedIdentityCoordinator.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -34,7 +34,8 @@ final class ObvOwnedIdentityCoordinator { private var observationTokens = [NSObjectProtocol]() private let coordinatorsQueue: OperationQueue private let queueForComposedOperations: OperationQueue - + weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? + init(obvEngine: ObvEngine, coordinatorsQueue: OperationQueue, queueForComposedOperations: OperationQueue) { self.obvEngine = obvEngine self.coordinatorsQueue = coordinatorsQueue @@ -61,7 +62,7 @@ final class ObvOwnedIdentityCoordinator { self?.ownedIdentityWasReactivated(ownedCryptoId: ownedCryptoId) }, ObvEngineNotificationNew.observeNewAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(within: NotificationCenter.default) { [weak self] (ownedIdentity, apiKeyStatus, apiPermissions, apiKeyExpirationDate) in - self?.processNewAPIKeyElementsForCurrentAPIKeyOfOwnedIdentityNotification(ownedIdentity: ownedIdentity, apiKeyStatus: apiKeyStatus, apiPermissions: apiPermissions, apiKeyExpirationDate: apiKeyExpirationDate.value) + self?.processNewAPIKeyElementsForCurrentAPIKeyOfOwnedIdentityNotification(ownedIdentity: ownedIdentity, apiKeyStatus: apiKeyStatus, apiPermissions: apiPermissions, apiKeyExpirationDate: apiKeyExpirationDate) }, ObvEngineNotificationNew.observePublishedPhotoOfOwnedIdentityHasBeenUpdated(within: NotificationCenter.default) { [weak self] ownedIdentity in self?.processOwnedIdentityPhotoHasBeenUpdated(ownedIdentity: ownedIdentity) @@ -72,6 +73,24 @@ final class ObvOwnedIdentityCoordinator { ObvEngineNotificationNew.observeOwnedIdentityWasDeleted(within: NotificationCenter.default) { [weak self] in self?.processOwnedIdentityWasDeleted() }, + ObvEngineNotificationNew.observeKeycloakSynchronizationRequired(within: NotificationCenter.default) { [weak self] ownedCryptoId in + Task { [weak self] in await self?.processKeycloakSynchronizationRequired(ownedCryptoId: ownedCryptoId) } + }, + ObvEngineNotificationNew.observeDeletedObliviousChannelWithRemoteOwnedDevice(within: NotificationCenter.default) { [weak self] in + self?.syncPersistedObvOwnedDevicesWithEngine() + }, + ObvEngineNotificationNew.observeNewConfirmedObliviousChannelWithRemoteOwnedDevice(within: NotificationCenter.default) { [weak self] in + self?.syncPersistedObvOwnedDevicesWithEngine() + }, + ObvEngineNotificationNew.observeNewRemoteOwnedDevice(within: NotificationCenter.default) { [weak self] in + self?.syncPersistedObvOwnedDevicesWithEngine() + }, + ObvEngineNotificationNew.observeAnOwnedDeviceWasUpdated(within: NotificationCenter.default) { [weak self] ownedCryptoId in + self?.syncPersistedObvOwnedDevicesWithEngine() + }, + ObvEngineNotificationNew.observeAnOwnedDeviceWasDeleted(within: NotificationCenter.default) { [weak self] ownedCryptoId in + self?.syncPersistedObvOwnedDevicesWithEngine() + }, ]) // Internal Notifications @@ -80,8 +99,10 @@ final class ObvOwnedIdentityCoordinator { ObvMessengerCoreDataNotification.observeNewPersistedObvOwnedIdentity { [weak self] (ownedCryptoId, isActive) in self?.processNewPersistedObvOwnedIdentity(ownedCryptoId: ownedCryptoId, isActive: isActive) }, - ObvMessengerInternalNotification.observeUserWantsToBindOwnedIdentityToKeycloak { [weak self] (ownedCryptoId, obvKeycloakState, keycloakUserId, completionHandler) in - self?.processUserWantsToBindOwnedIdentityToKeycloakNotification(ownedCryptoId: ownedCryptoId, obvKeycloakState: obvKeycloakState, keycloakUserId: keycloakUserId, completionHandler: completionHandler) + ObvMessengerInternalNotification.observeUserWantsToBindOwnedIdentityToKeycloak { (ownedCryptoId, obvKeycloakState, keycloakUserId, completionHandler) in + Task { [weak self] in + await self?.processUserWantsToBindOwnedIdentityToKeycloakNotification(ownedCryptoId: ownedCryptoId, obvKeycloakState: obvKeycloakState, keycloakUserId: keycloakUserId, completionHandler: completionHandler) + } }, ObvMessengerInternalNotification.observeUserWantsToUnbindOwnedIdentityFromKeycloak { (ownedCryptoId, completionHandler) in Task { [weak self] in await self?.processUserWantsToUnbindOwnedIdentityFromKeycloakNotification(ownedCryptoId: ownedCryptoId, completion: completionHandler) } @@ -95,8 +116,8 @@ final class ObvOwnedIdentityCoordinator { ObvMessengerInternalNotification.observeUserWantsToUnhideOwnedIdentity { [weak self] ownedCryptoId in self?.processUserWantsToUnhideOwnedIdentity(ownedCryptoId: ownedCryptoId) }, - ObvMessengerInternalNotification.observeUserWantsToDeleteOwnedIdentityAndHasConfirmed { [weak self] (ownedCryptoId, notifyContacts) in - self?.processUserWantsToDeleteOwnedIdentityAndHasConfirmed(ownedCryptoId: ownedCryptoId, notifyContacts: notifyContacts) + ObvMessengerInternalNotification.observeUserWantsToDeleteOwnedIdentityAndHasConfirmed { [weak self] ownedCryptoId, globalOwnedIdentityDeletion in + self?.processUserWantsToDeleteOwnedIdentityAndHasConfirmed(ownedCryptoId: ownedCryptoId, globalOwnedIdentityDeletion: globalOwnedIdentityDeletion) }, ObvMessengerInternalNotification.observeRecomputeRecomputeBadgeCountForDiscussionsTabForAllOwnedIdentities { [weak self] in self?.recomputeBadgeCountsForAllOwnedIdentities() @@ -104,6 +125,12 @@ final class ObvOwnedIdentityCoordinator { ObvMessengerInternalNotification.observeUserWantsToUpdateOwnedCustomDisplayName { [weak self] ownedCryptoId, newCustomDisplayName in self?.updateOwnedNickname(ownedCryptoId: ownedCryptoId, newCustomDisplayName: newCustomDisplayName) }, + ObvMessengerInternalNotification.observeSingleOwnedIdentityFlowViewControllerDidAppear { [weak self] ownedCryptoId in + Task { [weak self] in await self?.processSingleOwnedIdentityFlowViewControllerDidAppear(ownedCryptoId: ownedCryptoId) } + }, + ObvMessengerInternalNotification.observeAllPersistedInvitationCanBeMarkedAsOld { ownedCryptoId in + Task { [weak self] in await self?.processAllPersistedInvitationCanBeMarkedAsOld(ownedCryptoId: ownedCryptoId) } + }, ]) } @@ -111,6 +138,7 @@ final class ObvOwnedIdentityCoordinator { func applicationAppearedOnScreen(forTheFirstTime: Bool) async { if forTheFirstTime { recomputeBadgeCountsForAllOwnedIdentities() + nameCurrentDeviceWithoutSpecifiedName() } } @@ -119,8 +147,26 @@ final class ObvOwnedIdentityCoordinator { extension ObvOwnedIdentityCoordinator { + /// When the `SingleOwnedIdentityFlowViewController` is presented to the user, we want to refresh the list of devices. + /// To do so, we always perform an owned device discovery. + private func processSingleOwnedIdentityFlowViewControllerDidAppear(ownedCryptoId: ObvCryptoId) async { + do { + try await obvEngine.performOwnedDeviceDiscovery(ownedCryptoId: ownedCryptoId) + } catch { + assertionFailure(error.localizedDescription) + } + } + + + private func processAllPersistedInvitationCanBeMarkedAsOld(ownedCryptoId: ObvCryptoId) async { + let op1 = MarkAllPersistedInvitationAsOldOperation(ownedCryptoId: ownedCryptoId) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + self.coordinatorsQueue.addOperation(composedOp) + } + + private func updateOwnedNickname(ownedCryptoId: ObvCryptoId, newCustomDisplayName: String?) { - let op1 = UpdateOwnedCustomDisplayNameOperation(ownedCryptoId: ownedCryptoId, newCustomDisplayName: newCustomDisplayName) + let op1 = UpdateOwnedCustomDisplayNameOperation(ownedCryptoId: ownedCryptoId, newCustomDisplayName: newCustomDisplayName, makeSyncAtomRequest: true, syncAtomRequestDelegate: syncAtomRequestDelegate) let composedOp = createCompositionOfOneContextualOperation(op1: op1) self.coordinatorsQueue.addOperation(composedOp) } @@ -133,8 +179,15 @@ extension ObvOwnedIdentityCoordinator { } - private func processUserWantsToDeleteOwnedIdentityAndHasConfirmed(ownedCryptoId: ObvCryptoId, notifyContacts: Bool) { - let op1 = DeleteOwnedIdentityOperation(ownedCryptoId: ownedCryptoId, obvEngine: obvEngine, notifyContacts: notifyContacts, delegate: self) + private func nameCurrentDeviceWithoutSpecifiedName() { + let op1 = NameCurrentDeviceWithoutSpecifiedNameOperation(obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + self.coordinatorsQueue.addOperation(composedOp) + } + + + private func processUserWantsToDeleteOwnedIdentityAndHasConfirmed(ownedCryptoId: ObvCryptoId, globalOwnedIdentityDeletion: Bool) { + let op1 = DeleteOwnedIdentityOperation(ownedCryptoId: ownedCryptoId, obvEngine: obvEngine, globalOwnedIdentityDeletion: globalOwnedIdentityDeletion, delegate: self) let composedOp = createCompositionOfOneContextualOperation(op1: op1) composedOp.queuePriority = .veryHigh self.coordinatorsQueue.addOperation(composedOp) @@ -176,22 +229,10 @@ extension ObvOwnedIdentityCoordinator { private func processNewPersistedObvOwnedIdentity(ownedCryptoId: ObvCryptoId, isActive: Bool) { - Task { try? await obvEngine.downloadMessagesAndConnectWebsockets() } Task { - if isActive { - // If the owned identity is active, we want to kick other devices on next register to push notifications. - // This works because: - // Case 1: the owned identity is new, created on this device, and the kick does nothing - // Case 2: the owned identity was restored from a backup, and we *do* want to kick other devices - await ObvPushNotificationManager.shared.doKickOtherDevicesOnNextRegister() - } - await ObvPushNotificationManager.shared.tryToRegisterToPushNotifications() - // When a new owned identity is created, we request an update of the owned identity capabilities - do { - try obvEngine.setCapabilitiesOfCurrentDeviceForAllOwnedIdentities(ObvMessengerConstants.supportedObvCapabilities) - } catch { - assertionFailure("Could not set capabilities") - } + await ObvPushNotificationManager.shared.requestRegisterToPushNotificationsForAllActiveOwnedIdentities() + try? await obvEngine.downloadMessagesAndConnectWebsockets() + try? obvEngine.setCapabilitiesOfCurrentDeviceForAllOwnedIdentities(ObvMessengerConstants.supportedObvCapabilities) } } @@ -203,6 +244,14 @@ extension ObvOwnedIdentityCoordinator { } + /// Called whenever we receive a notification indicating that a secure channel has been deleted/confirmed with a remote owned device. + private func syncPersistedObvOwnedDevicesWithEngine() { + let op1 = SyncPersistedObvOwnedDevicesWithEngineOperation(obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + self.coordinatorsQueue.addOperation(composedOp) + } + + private func ownedIdentityWasReactivated(ownedCryptoId: ObvCryptoId) { let op1 = UpdateOwnedIdentityAsItWasReactivatedOperation(ownedCryptoId: ownedCryptoId) let composedOp = createCompositionOfOneContextualOperation(op1: op1) @@ -246,44 +295,47 @@ extension ObvOwnedIdentityCoordinator { } - private func processUserWantsToBindOwnedIdentityToKeycloakNotification(ownedCryptoId: ObvCryptoId, obvKeycloakState: ObvKeycloakState, keycloakUserId: String, completionHandler: @escaping (Bool) -> Void) { + private func processKeycloakSynchronizationRequired(ownedCryptoId: ObvCryptoId) async { do { - try obvEngine.bindOwnedIdentityToKeycloak(ownedCryptoId: ownedCryptoId, keycloakState: obvKeycloakState, keycloakUserId: keycloakUserId) { result in - DispatchQueue.main.async { - Task { - assert(Thread.isMainThread) - switch result { - case .failure(let error): - os_log("Engine failed to bind owned identity to keycloak server: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - assertionFailure() - completionHandler(false) - return - case .success: - await KeycloakManagerSingleton.shared.registerKeycloakManagedOwnedIdentity(ownedCryptoId: ownedCryptoId, firstKeycloakBinding: true) - do { - try await KeycloakManagerSingleton.shared.uploadOwnIdentity(ownedCryptoId: ownedCryptoId) - } catch let error as KeycloakManager.UploadOwnedIdentityError { - os_log("Could not upload owned identity to the Keycloak server: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - completionHandler(false) - return - } catch { - os_log("Could not upload owned identity to the Keycloak server: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - assertionFailure("Unexpected error") - completionHandler(false) - return - } - completionHandler(true) - return - } - } - } - } + try await KeycloakManagerSingleton.shared.syncAllManagedIdentities() + } catch { + assertionFailure(error.localizedDescription) + } + } + + + private func processUserWantsToBindOwnedIdentityToKeycloakNotification(ownedCryptoId: ObvCryptoId, obvKeycloakState: ObvKeycloakState, keycloakUserId: String, completionHandler: @escaping (Bool) -> Void) async { + + do { + try await obvEngine.bindOwnedIdentityToKeycloak(ownedCryptoId: ownedCryptoId, keycloakState: obvKeycloakState, keycloakUserId: keycloakUserId) } catch { os_log("The call to bindOwnedIdentityToKeycloak failed: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - completionHandler(false) assertionFailure() + completionHandler(false) + return } + await KeycloakManagerSingleton.shared.registerKeycloakManagedOwnedIdentity(ownedCryptoId: ownedCryptoId, firstKeycloakBinding: true) + + do { + try await KeycloakManagerSingleton.shared.uploadOwnIdentity(ownedCryptoId: ownedCryptoId) + } catch let error as KeycloakManager.UploadOwnedIdentityError { + os_log("Could not upload owned identity to the Keycloak server: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + completionHandler(false) + return + } catch { + os_log("Could not upload owned identity to the Keycloak server: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure("Unexpected error") + completionHandler(false) + return + } + + completionHandler(true) + + // Last, make sure we always try to perform a sync + + try? await KeycloakManagerSingleton.shared.syncAllManagedIdentities() + } @@ -303,8 +355,8 @@ extension ObvOwnedIdentityCoordinator { extension ObvOwnedIdentityCoordinator: DeleteOwnedIdentityOperationDelegate { - func deleteHiddenOwnedIdentityAsTheLastVisibleOwnedIdentityIsBeingDeleted(hiddenOwnedCryptoId: ObvCryptoId, notifyContacts: Bool) { - processUserWantsToDeleteOwnedIdentityAndHasConfirmed(ownedCryptoId: hiddenOwnedCryptoId, notifyContacts: notifyContacts) + func deleteHiddenOwnedIdentityAsTheLastVisibleOwnedIdentityIsBeingDeleted(hiddenOwnedCryptoId: ObvCryptoId, globalOwnedIdentityDeletion: Bool) { + processUserWantsToDeleteOwnedIdentityAndHasConfirmed(ownedCryptoId: hiddenOwnedCryptoId, globalOwnedIdentityDeletion: globalOwnedIdentityDeletion) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/DeleteOwnedIdentityOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/DeleteOwnedIdentityOperation.swift index 9a5d4116..fea1478b 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/DeleteOwnedIdentityOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/DeleteOwnedIdentityOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,10 +24,11 @@ import os.log import ObvTypes import ObvEngine import ObvUICoreData +import CoreData protocol DeleteOwnedIdentityOperationDelegate: AnyObject { - func deleteHiddenOwnedIdentityAsTheLastVisibleOwnedIdentityIsBeingDeleted(hiddenOwnedCryptoId: ObvCryptoId, notifyContacts: Bool) + func deleteHiddenOwnedIdentityAsTheLastVisibleOwnedIdentityIsBeingDeleted(hiddenOwnedCryptoId: ObvCryptoId, globalOwnedIdentityDeletion: Bool) } @@ -35,54 +36,57 @@ final class DeleteOwnedIdentityOperation: ContextualOperationWithSpecificReasonF private let ownedCryptoId: ObvCryptoId private let obvEngine: ObvEngine - private let notifyContacts: Bool + private let globalOwnedIdentityDeletion: Bool private weak var delegate: DeleteOwnedIdentityOperationDelegate? - init(ownedCryptoId: ObvCryptoId, obvEngine: ObvEngine, notifyContacts: Bool, delegate: DeleteOwnedIdentityOperationDelegate) { + init(ownedCryptoId: ObvCryptoId, obvEngine: ObvEngine, globalOwnedIdentityDeletion: Bool, delegate: DeleteOwnedIdentityOperationDelegate) { self.ownedCryptoId = ownedCryptoId self.obvEngine = obvEngine - self.notifyContacts = notifyContacts + self.globalOwnedIdentityDeletion = globalOwnedIdentityDeletion self.delegate = delegate super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - do { - guard let ownedIdentityToDelete = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { assertionFailure(); return } - - // If the owned identity to delete is the last unhidden owned identity, we also delete all hidden identities - - let hiddenCryptoIdsToDelete: [ObvCryptoId] - if try ownedIdentityToDelete.isLastUnhiddenOwnedIdentity { - hiddenCryptoIdsToDelete = try PersistedObvOwnedIdentity.getAllHiddenOwnedIdentities(within: obvContext.context).map({ $0.cryptoId }) - } else { - hiddenCryptoIdsToDelete = [] - } + do { + guard let ownedIdentityToDelete = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { assertionFailure(); return } + + // If the owned identity to delete is the last unhidden owned identity, we also delete all hidden identities + + let hiddenCryptoIdsToDelete: [ObvCryptoId] + if try ownedIdentityToDelete.isLastUnhiddenOwnedIdentity { + hiddenCryptoIdsToDelete = try PersistedObvOwnedIdentity.getAllHiddenOwnedIdentities(within: obvContext.context).map({ $0.cryptoId }) + } else { + hiddenCryptoIdsToDelete = [] + } + + if !hiddenCryptoIdsToDelete.isEmpty { - if !hiddenCryptoIdsToDelete.isEmpty { - - // If we reach this point, we have hidden profiles to delete. To do so, we request the deletion to our delegate - assert(delegate != nil) - for hiddenCryptoIdToDelete in hiddenCryptoIdsToDelete { - delegate?.deleteHiddenOwnedIdentityAsTheLastVisibleOwnedIdentityIsBeingDeleted(hiddenOwnedCryptoId: hiddenCryptoIdToDelete, notifyContacts: notifyContacts) - } - + // If we reach this point, we have hidden profiles to delete. To do so, we request the deletion to our delegate + assert(delegate != nil) + for hiddenCryptoIdToDelete in hiddenCryptoIdsToDelete { + delegate?.deleteHiddenOwnedIdentityAsTheLastVisibleOwnedIdentityIsBeingDeleted(hiddenOwnedCryptoId: hiddenCryptoIdToDelete, globalOwnedIdentityDeletion: globalOwnedIdentityDeletion) } - // We can perform the request deletion of the ownedCryptoId - - try obvEngine.deleteOwnedIdentity(with: ownedCryptoId, notifyContacts: notifyContacts) - + } + + // We can perform the requested deletion of the ownedCryptoId + + try obvEngine.deleteOwnedIdentity(with: ownedCryptoId, globalOwnedIdentityDeletion: globalOwnedIdentityDeletion) + + // We can delete the owned identity immediately + + do { + try PersistedObvOwnedIdentity.deleteOwnedIdentity(ownedCryptoId: ownedCryptoId, within: obvContext.context) } catch { - return cancel(withReason: .coreDataError(error: error)) + assertionFailure(error.localizedDescription) + // Continue anyway, the owned identity will eventually be deleted once the owned identity deletion protocol is performed. } + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/HideOwnedIdentityOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/HideOwnedIdentityOperation.swift index 0a84fb73..095d5cd2 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/HideOwnedIdentityOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/HideOwnedIdentityOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import OlvidUtils import os.log import ObvTypes import ObvUICoreData +import CoreData final class HideOwnedIdentityOperation: ContextualOperationWithSpecificReasonForCancel { @@ -36,30 +37,25 @@ final class HideOwnedIdentityOperation: ContextualOperationWithSpecificReasonFor super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + guard password.count >= ObvMessengerConstants.minimumLengthOfPasswordForHiddenProfiles else { return cancel(withReason: .passwordTooShort) } - obvContext.performAndWait { - do { - let nonHiddenOwnedIdentities = try PersistedObvOwnedIdentity.getAllNonHiddenOwnedIdentities(within: obvContext.context) - guard let ownedIdentity = nonHiddenOwnedIdentities.first(where: { $0.cryptoId == ownedCryptoId }) else { - return cancel(withReason: .couldNotFindOwnedIdentity) - } - guard nonHiddenOwnedIdentities.count > 1 else { - return cancel(withReason: .cannotHideTheSoleOwnedIdentity) - } - try ownedIdentity.hideProfileWithPassword(password) - } catch { - return cancel(withReason: .coreDataError(error: error)) + do { + let nonHiddenOwnedIdentities = try PersistedObvOwnedIdentity.getAllNonHiddenOwnedIdentities(within: obvContext.context) + guard let ownedIdentity = nonHiddenOwnedIdentities.first(where: { $0.cryptoId == ownedCryptoId }) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + guard nonHiddenOwnedIdentities.count > 1 else { + return cancel(withReason: .cannotHideTheSoleOwnedIdentity) } + try ownedIdentity.hideProfileWithPassword(password) + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/DeleteAllServerPushNotificationsOnOwnedIdentityDeletionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/MarkAllPersistedInvitationAsOldOperation.swift similarity index 54% rename from Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/DeleteAllServerPushNotificationsOnOwnedIdentityDeletionOperation.swift rename to iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/MarkAllPersistedInvitationAsOldOperation.swift index b0dc5e90..d6d0a95b 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/Coordinators/ProcessRegisteredPushNotificationsCoordinator/Operations/DeleteAllServerPushNotificationsOnOwnedIdentityDeletionOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/MarkAllPersistedInvitationAsOldOperation.swift @@ -18,33 +18,27 @@ */ import Foundation +import CoreData +import ObvTypes import OlvidUtils -import ObvCrypto +import ObvUICoreData +final class MarkAllPersistedInvitationAsOldOperation: ContextualOperationWithSpecificReasonForCancel { -final class DeleteAllServerPushNotificationsOnOwnedIdentityDeletionOperation: ContextualOperationWithSpecificReasonForCancel { + private let ownedCryptoId: ObvCryptoId - let ownedCryptoId: ObvCryptoIdentity - - init(ownedCryptoId: ObvCryptoIdentity) { + init(ownedCryptoId: ObvCryptoId) { self.ownedCryptoId = ownedCryptoId super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - do { - try ServerPushNotification.deleteAllServerPushNotificationForOwnedCryptoIdentity(ownedCryptoId, within: obvContext) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } + do { + try PersistedInvitation.markAllAsOld(for: ownedCryptoId, within: obvContext.context) + } catch { + return cancel(withReason: .coreDataError(error: error)) } } - } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/NameCurrentDeviceWithoutSpecifiedNameOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/NameCurrentDeviceWithoutSpecifiedNameOperation.swift new file mode 100644 index 00000000..ebd81248 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/NameCurrentDeviceWithoutSpecifiedNameOperation.swift @@ -0,0 +1,66 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import CoreData +import ObvUICoreData +import ObvEngine + + +/// This operation is intended to be executed during bootstrap. Its fetches all current devices that have no specified name and set a default name, based on the model of the physical device. +final class NameCurrentDeviceWithoutSpecifiedNameOperation: ContextualOperationWithSpecificReasonForCancel { + + let obvEngine: ObvEngine + + init(obvEngine: ObvEngine) { + self.obvEngine = obvEngine + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + let obvEngine = self.obvEngine + + let currentOwnedDevices = try PersistedObvOwnedDevice.fetchCurrentPersistedObvOwnedDeviceWithNoSpecifiedName(within: obvContext.context) + + for currentOwnedDevice in currentOwnedDevices { + + let deviceIdentifier = currentOwnedDevice.deviceIdentifier + guard let ownedCryptoId = currentOwnedDevice.ownedIdentity?.cryptoId else { continue } + let ownedDeviceName = UIDevice.current.preciseModel + + Task.detached { + try? await obvEngine.requestChangeOfOwnedDeviceName( + ownedCryptoId: ownedCryptoId, + deviceIdentifier: deviceIdentifier, + ownedDeviceName: ownedDeviceName) + } + + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/RefreshBadgeCountsForAllOwnedIdentitiesOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/RefreshBadgeCountsForAllOwnedIdentitiesOperation.swift index 4a62d937..718c77fc 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/RefreshBadgeCountsForAllOwnedIdentitiesOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/RefreshBadgeCountsForAllOwnedIdentitiesOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,35 +23,31 @@ import OlvidUtils import os.log import ObvTypes import ObvUICoreData +import CoreData final class RefreshBadgeCountsForAllOwnedIdentitiesOperation: ContextualOperationWithSpecificReasonForCancel { - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - do { - let ownedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) - ownedIdentities.forEach { ownedIdentity in - do { - try ownedIdentity.refreshBadgeCountForDiscussionsTab() - } catch { - assertionFailure(error.localizedDescription) - // In production, continue anyway - } - do { - try ownedIdentity.refreshBadgeCountForInvitationsTab() - } catch { - assertionFailure(error.localizedDescription) - // In production, continue anyway - } + do { + let ownedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) + ownedIdentities.forEach { ownedIdentity in + do { + try ownedIdentity.refreshBadgeCountForDiscussionsTab() + } catch { + assertionFailure(error.localizedDescription) + // In production, continue anyway + } + do { + try ownedIdentity.refreshBadgeCountForInvitationsTab() + } catch { + assertionFailure(error.localizedDescription) + // In production, continue anyway } - } catch { - return cancel(withReason: .coreDataError(error: error)) } + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UnhideOwnedIdentityOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UnhideOwnedIdentityOperation.swift index c9df4ca8..ac2e96f2 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UnhideOwnedIdentityOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UnhideOwnedIdentityOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import OlvidUtils import os.log import ObvTypes import ObvUICoreData +import CoreData final class UnhideOwnedIdentityOperation: ContextualOperationWithSpecificReasonForCancel { @@ -34,19 +35,14 @@ final class UnhideOwnedIdentityOperation: ContextualOperationWithSpecificReasonF super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - do { - guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { assertionFailure(); return } - ownedIdentity.unhideProfile() - } catch { - return cancel(withReason: .coreDataError(error: error)) - } + do { + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { assertionFailure(); return } + ownedIdentity.unhideProfile() + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateAPIKeyStatusAndPermissionsOfOwnedIdentityOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateAPIKeyStatusAndPermissionsOfOwnedIdentityOperation.swift index 29e4d718..14650d60 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateAPIKeyStatusAndPermissionsOfOwnedIdentityOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateAPIKeyStatusAndPermissionsOfOwnedIdentityOperation.swift @@ -22,6 +22,7 @@ import OlvidUtils import os.log import ObvTypes import ObvUICoreData +import CoreData final class UpdateAPIKeyStatusAndPermissionsOfOwnedIdentityOperation: ContextualOperationWithSpecificReasonForCancel { @@ -39,19 +40,17 @@ final class UpdateAPIKeyStatusAndPermissionsOfOwnedIdentityOperation: Contextual super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - do { - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { assertionFailure(); return } - persistedObvOwnedIdentity.set(apiKeyStatus: apiKeyStatus, apiPermissions: apiPermissions, apiKeyExpirationDate: apiKeyExpirationDate) - } catch { - return cancel(withReason: .coreDataError(error: error)) + do { + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + // This happens if the owned identity just got deleted + return } + persistedObvOwnedIdentity.set(apiKeyStatus: apiKeyStatus, apiPermissions: apiPermissions, apiKeyExpirationDate: apiKeyExpirationDate) + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedCustomDisplayNameOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedCustomDisplayNameOperation.swift index ddf5da20..f5c9772c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedCustomDisplayNameOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedCustomDisplayNameOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import OlvidUtils import os.log import ObvTypes import ObvUICoreData +import CoreData final class UpdateOwnedCustomDisplayNameOperation: ContextualOperationWithSpecificReasonForCancel { @@ -30,25 +31,44 @@ final class UpdateOwnedCustomDisplayNameOperation: ContextualOperationWithSpecif let ownedCryptoId: ObvCryptoId let newCustomDisplayName: String? - init(ownedCryptoId: ObvCryptoId, newCustomDisplayName: String?) { + private let makeSyncAtomRequest: Bool + private weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? + + init(ownedCryptoId: ObvCryptoId, newCustomDisplayName: String?, makeSyncAtomRequest: Bool, syncAtomRequestDelegate: ObvSyncAtomRequestDelegate?) { self.ownedCryptoId = ownedCryptoId self.newCustomDisplayName = newCustomDisplayName + self.makeSyncAtomRequest = makeSyncAtomRequest + self.syncAtomRequestDelegate = syncAtomRequestDelegate super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - do { - guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { assertionFailure(); return } - ownedIdentity.setOwnedCustomDisplayName(to: newCustomDisplayName) - } catch { - return cancel(withReason: .coreDataError(error: error)) + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { assertionFailure(); return } + + let customDisplayNameHadToBeUpdatedInDatabase = ownedIdentity.setOwnedCustomDisplayName(to: newCustomDisplayName) + let customDisplayNameToSend = ownedIdentity.customDisplayName + + if makeSyncAtomRequest && customDisplayNameHadToBeUpdatedInDatabase { + assert(self.syncAtomRequestDelegate != nil) + if let syncAtomRequestDelegate = self.syncAtomRequestDelegate { + let ownedCryptoId = self.ownedCryptoId + let syncAtom = ObvSyncAtom.ownProfileNickname(nickname: customDisplayNameToSend) + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + Task.detached { + await syncAtomRequestDelegate.requestPropagationToOtherOwnedDevices(of: syncAtom, for: ownedCryptoId) + } + } + } } + + + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedIdentityAsItWasDeactivatedOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedIdentityAsItWasDeactivatedOperation.swift index 4fa2e8fe..eaf6ef1f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedIdentityAsItWasDeactivatedOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedIdentityAsItWasDeactivatedOperation.swift @@ -22,6 +22,7 @@ import OlvidUtils import os.log import ObvTypes import ObvUICoreData +import CoreData final class UpdateOwnedIdentityAsItWasDeactivatedOperation: ContextualOperationWithSpecificReasonForCancel { @@ -33,19 +34,14 @@ final class UpdateOwnedIdentityAsItWasDeactivatedOperation: ContextualOperationW super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - do { - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { assertionFailure(); return } - persistedObvOwnedIdentity.deactivate() - } catch { - return cancel(withReason: .coreDataError(error: error)) - } + do { + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { return } + persistedObvOwnedIdentity.deactivate() + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedIdentityAsItWasReactivatedOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedIdentityAsItWasReactivatedOperation.swift index c8c53236..f47a2680 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedIdentityAsItWasReactivatedOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedIdentityAsItWasReactivatedOperation.swift @@ -22,6 +22,7 @@ import OlvidUtils import os.log import ObvTypes import ObvUICoreData +import CoreData final class UpdateOwnedIdentityAsItWasReactivatedOperation: ContextualOperationWithSpecificReasonForCancel { @@ -33,19 +34,14 @@ final class UpdateOwnedIdentityAsItWasReactivatedOperation: ContextualOperationW super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - do { - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { assertionFailure(); return } - persistedObvOwnedIdentity.activate() - } catch { - return cancel(withReason: .coreDataError(error: error)) - } + do { + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { assertionFailure(); return } + persistedObvOwnedIdentity.activate() + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedIdentityOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedIdentityOperation.swift index 8d87fd01..90ba0102 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedIdentityOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateOwnedIdentityOperation.swift @@ -22,6 +22,7 @@ import OlvidUtils import os.log import ObvEngine import ObvUICoreData +import CoreData final class UpdateOwnedIdentityOperation: ContextualOperationWithSpecificReasonForCancel { @@ -33,19 +34,14 @@ final class UpdateOwnedIdentityOperation: ContextualOperationWithSpecificReasonF super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - do { - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvOwnedIdentity, within: obvContext.context) else { return } - try persistedObvOwnedIdentity.update(with: obvOwnedIdentity) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } + do { + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvOwnedIdentity, within: obvContext.context) else { return } + try persistedObvOwnedIdentity.update(with: obvOwnedIdentity) + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateProfilePictureOfOwnedIdentityOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateProfilePictureOfOwnedIdentityOperation.swift index 51745150..1ab8e453 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateProfilePictureOfOwnedIdentityOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/ObvOwnedIdentityCoordinator/Operations/UpdateProfilePictureOfOwnedIdentityOperation.swift @@ -22,6 +22,7 @@ import OlvidUtils import os.log import ObvEngine import ObvUICoreData +import CoreData final class UpdateProfilePictureOfOwnedIdentityOperation: ContextualOperationWithSpecificReasonForCancel { @@ -33,19 +34,14 @@ final class UpdateProfilePictureOfOwnedIdentityOperation: ContextualOperationWit super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) + do { + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvOwnedIdentity, within: obvContext.context) else { return } + persistedObvOwnedIdentity.updatePhotoURL(with: obvOwnedIdentity.publishedIdentityDetails.photoURL) + } catch { + return cancel(withReason: .coreDataError(error: error)) } - obvContext.performAndWait { - do { - guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: obvOwnedIdentity, within: obvContext.context) else { return } - persistedObvOwnedIdentity.updatePhotoURL(with: obvOwnedIdentity.publishedIdentityDetails.photoURL) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/DeletePersistedMessageSentRecipientInfosWithoutMessageIdentifierFromEngineAndAssociatedToDeletedContactIdentityOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/DeletePersistedMessageSentRecipientInfosWithoutMessageIdentifierFromEngineAndAssociatedToDeletedContactIdentityOperation.swift index 3675c465..303322b0 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/DeletePersistedMessageSentRecipientInfosWithoutMessageIdentifierFromEngineAndAssociatedToDeletedContactIdentityOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/DeletePersistedMessageSentRecipientInfosWithoutMessageIdentifierFromEngineAndAssociatedToDeletedContactIdentityOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/RefreshNumberOfNewMessagesForAllDiscussionsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/RefreshNumberOfNewMessagesForAllDiscussionsOperation.swift index 8140606d..0f8425d0 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/RefreshNumberOfNewMessagesForAllDiscussionsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/RefreshNumberOfNewMessagesForAllDiscussionsOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,30 +27,22 @@ import ObvUICoreData final class RefreshNumberOfNewMessagesForAllDiscussionsOperation: ContextualOperationWithSpecificReasonForCancel { - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { - let discussions = try PersistedDiscussion.getAllActiveDiscussionsForAllOwnedIdentities(within: obvContext.context) - for discussion in discussions { - do { - try discussion.refreshNumberOfNewMessages() - } catch { - assertionFailure() - // In production, continue anyway - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + let discussions = try PersistedDiscussion.getAllActiveDiscussionsForAllOwnedIdentities(within: obvContext.context) + for discussion in discussions { + do { + try discussion.refreshNumberOfNewMessages() + } catch { + assertionFailure() + // In production, continue anyway } - } catch { - return cancel(withReason: .coreDataError(error: error)) } - + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/SynchronizeDiscussionsIllustrativeMessageOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/SynchronizeDiscussionsIllustrativeMessageOperation.swift index 9066bed5..86afb869 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/SynchronizeDiscussionsIllustrativeMessageOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/SynchronizeDiscussionsIllustrativeMessageOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,30 +27,22 @@ import ObvUICoreData final class SynchronizeDiscussionsIllustrativeMessageOperation: ContextualOperationWithSpecificReasonForCancel { - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { - let discussions = try PersistedDiscussion.getAllDiscussionsForAllOwnedIdentities(within: obvContext.context) - for discussion in discussions { - do { - try discussion.resetIllustrativeMessage() - } catch { - assertionFailure() - // In production, continue anyway - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + let discussions = try PersistedDiscussion.getAllDiscussionsForAllOwnedIdentities(within: obvContext.context) + for discussion in discussions { + do { + try discussion.resetIllustrativeMessage() + } catch { + assertionFailure() + // In production, continue anyway } - } catch { - return cancel(withReason: .coreDataError(error: error)) } - + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/TrashFilesThatHaveNoAssociatedFyleOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/TrashFilesThatHaveNoAssociatedFyleOperation.swift index 1806ef9d..2c846c22 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/TrashFilesThatHaveNoAssociatedFyleOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Bootstrap/TrashFilesThatHaveNoAssociatedFyleOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/CallLog/CleanCallLogContactsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/CallLog/CleanCallLogContactsOperation.swift index c33e0bd4..c6db112f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/CallLog/CleanCallLogContactsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/CallLog/CleanCallLogContactsOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/CallLog/ReportCallEventOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/CallLog/ReportCallEventOperation.swift index bf3814c3..bf72fae9 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/CallLog/ReportCallEventOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/CallLog/ReportCallEventOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -33,10 +33,10 @@ final class ReportCallEventOperation: OperationWithSpecificReasonForCancel { - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - try PersistedDiscussionLocalConfiguration.deleteAllExpiredMuteNotifications(within: obvContext) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } + do { + try PersistedDiscussionLocalConfiguration.deleteAllExpiredMuteNotifications(within: obvContext) + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Debug/CreateRandomDraftDebugOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Debug/CreateRandomDraftDebugOperation.swift index 1a0fe8e3..13d16740 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Debug/CreateRandomDraftDebugOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Debug/CreateRandomDraftDebugOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -21,6 +21,7 @@ import Foundation import OlvidUtils import os.log import ObvUICoreData +import CoreData final class CreateRandomDraftDebugOperation: ContextualOperationWithSpecificReasonForCancel { @@ -32,29 +33,21 @@ final class CreateRandomDraftDebugOperation: ContextualOperationWithSpecificReas super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { - guard let discussion = try PersistedDiscussion.get(objectID: discussionObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDiscussion) - } - - discussion.draft.reset() - - let randomBodySize = Int.random(in: Range.init(uncheckedBounds: (lower: 2, upper: 200))) - let randomBody = CreateRandomDraftDebugOperation.randomString(length: randomBodySize) - discussion.draft.replaceContentWith(newBody: randomBody, newMentions: Set()) - - } catch { - return cancel(withReason: .coreDataError(error: error)) + do { + guard let discussion = try PersistedDiscussion.get(objectID: discussionObjectID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindDiscussion) } + discussion.draft.reset() + + let randomBodySize = Int.random(in: Range.init(uncheckedBounds: (lower: 2, upper: 200))) + let randomBody = CreateRandomDraftDebugOperation.randomString(length: randomBodySize) + discussion.draft.replaceContentWith(newBody: randomBody, newMentions: Set()) + + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Debug/CreateRandomMessageReceivedDebugOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Debug/CreateRandomMessageReceivedDebugOperation.swift index 9148201d..f1e513e2 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Debug/CreateRandomMessageReceivedDebugOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Debug/CreateRandomMessageReceivedDebugOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,208 +26,218 @@ import ObvEngine import ObvUICoreData -final class CreateRandomMessageReceivedDebugOperation: ContextualOperationWithSpecificReasonForCancel { - - private let discussionObjectID: TypeSafeManagedObjectID - - init(discussionObjectID: TypeSafeManagedObjectID) { - self.discussionObjectID = discussionObjectID - super.init() - } - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - let prng = ObvCryptoSuite.sharedInstance.prngService() - - obvContext.performAndWait { - - do { - guard let discussion = try PersistedDiscussion.get(objectID: discussionObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDiscussion) - } - - guard let persistedContactIdentity = chooseRandomContact(from: discussion) else { - return cancel(withReason: .internalError) - } - - try? PersistedDiscussion.insertSystemMessagesIfDiscussionIsEmpty(discussionObjectID: discussion.objectID, markAsRead: true, within: obvContext.context) - - let randomBodySize = Int.random(in: Range.init(uncheckedBounds: (lower: 2, upper: 200))) - - let bodyHasMention = Bool.random() - - let mentionedContactIdentity: PersistedObvContactIdentity? = try { - switch try discussion.kind { - case .oneToOne: - return .none - - case .groupV1(withContactGroup: let contactGroup): - guard let contactGroup else { - return nil - } - - return contactGroup.contactIdentities.randomElement() - - case .groupV2(withGroup: let group): - guard let group else { - return nil - } - - return group.otherMembers.randomElement()?.contact - } - }() - - let (randomBody, mentions): (String, [MessageJSON.UserMention]) = { - guard bodyHasMention, - let mentionedContactIdentity else { - return CreateRandomMessageReceivedDebugOperation.randomString(length: randomBodySize, mentionedContactIdentity: nil) - } - - return CreateRandomMessageReceivedDebugOperation.randomString(length: randomBodySize, mentionedContactIdentity: mentionedContactIdentity) - }() - - let messageJSON: MessageJSON - - switch try discussion.kind { - case .oneToOne: - - messageJSON = MessageJSON(senderSequenceNumber: 0, - senderThreadIdentifier: UUID(), - body: randomBody, - replyTo: nil, - expiration: nil, - forwarded: false, - userMentions: mentions) - - case .groupV1(withContactGroup: let contactGroup): - guard let contactGroup = contactGroup else { - return cancel(withReason: .internalError) - } - guard let groupOwner = try? ObvCryptoId(identity: contactGroup.ownerIdentity) else { - return cancel(withReason: .internalError) - } - let groupV1Identifier = (contactGroup.groupUid, groupOwner) - messageJSON = MessageJSON(senderSequenceNumber: 0, - senderThreadIdentifier: UUID(), - body: randomBody, - groupV1Identifier: groupV1Identifier, - replyTo: nil, - expiration: nil, - forwarded: false, - userMentions: mentions) - - case .groupV2(withGroup: let group): - guard let groupV2Identifier = group?.groupIdentifier else { - return cancel(withReason: .internalError) - } - messageJSON = MessageJSON(senderSequenceNumber: 0, - senderThreadIdentifier: UUID(), - body: randomBody, - groupV2Identifier: groupV2Identifier, - replyTo: nil, - expiration: nil, - forwarded: false, - originalServerTimestamp: nil, - userMentions: mentions) - } - - let randomMessageIdentifierFromEngine = UID.gen(with: prng).raw - - guard (try? PersistedMessageReceived(messageUploadTimestampFromServer: Date(), - downloadTimestampFromServer: Date(), - localDownloadTimestamp: Date(), - messageJSON: messageJSON, - contactIdentity: persistedContactIdentity, - messageIdentifierFromEngine: randomMessageIdentifierFromEngine, - returnReceiptJSON: nil, - missedMessageCount: 0, - discussion: discussion, - obvMessageContainsAttachments: false)) != nil else { - return cancel(withReason: .internalError) - } - - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - - } - - } - - private func chooseRandomContact(from discussion: PersistedDiscussion) -> PersistedObvContactIdentity? { - switch try? discussion.kind { - case .oneToOne(withContactIdentity: let contactIdentity): - return contactIdentity - case .groupV1(withContactGroup: let contactGroup): - return contactGroup?.contactIdentities.randomElement() - case .groupV2(withGroup: let group): - return group?.contactsAmongNonPendingOtherMembers.randomElement() - case .none: - return nil - } - } - - - static func randomString(length: Int, mentionedContactIdentity: PersistedObvContactIdentity?) -> (String, [MessageJSON.UserMention]) { - let letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 " - - let randomBody = String((0...length-1).map { _ in letters.randomElement()! }) - - guard let mentionedContactIdentity else { - return (randomBody, []) - } - - let mentionedName = mentionedContactIdentity.fullDisplayName - - let mentionedBody = "\n\nmention: @\(mentionedName)" - - let finalBody = randomBody + mentionedBody - - let mentionedUserRange = finalBody.range(of: "@\(mentionedName)")! - - let userMention = MessageJSON.UserMention(mentionedCryptoId: mentionedContactIdentity.cryptoId, - range: mentionedUserRange) - - return (finalBody, [userMention]) - } -} - - -enum CreateRandomMessageReceivedDebugOperationReasonForCancel: LocalizedErrorWithLogType { - - case coreDataError(error: Error) - case couldNotFindDiscussion - case contextIsNil - case internalError - - var logType: OSLogType { - switch self { - case .coreDataError, - .contextIsNil, - .internalError: - return .fault - case .couldNotFindDiscussion: - return .error - } - } - - var errorDescription: String? { - switch self { - case .internalError: - return "Internal error" - case .contextIsNil: - return "Context is nil" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .couldNotFindDiscussion: - return "Could not find discussion in database" - } - } - - -} +//final class CreateRandomMessageReceivedDebugOperation: ContextualOperationWithSpecificReasonForCancel { +// +// private let discussionObjectID: TypeSafeManagedObjectID +// +// init(discussionObjectID: TypeSafeManagedObjectID) { +// self.discussionObjectID = discussionObjectID +// super.init() +// } +// +// override func main() { +// +// guard let obvContext = self.obvContext else { +// return cancel(withReason: .contextIsNil) +// } +// +// let prng = ObvCryptoSuite.sharedInstance.prngService() +// +// obvContext.performAndWait { +// +// do { +// guard let discussion = try PersistedDiscussion.get(objectID: discussionObjectID, within: obvContext.context) else { +// return cancel(withReason: .couldNotFindDiscussion) +// } +// +// guard let persistedContactIdentity = chooseRandomContact(from: discussion) else { +// return cancel(withReason: .internalError) +// } +// +// try? PersistedDiscussion.insertSystemMessagesIfDiscussionIsEmpty(discussionObjectID: discussion.objectID, markAsRead: true, within: obvContext.context) +// +// let randomBodySize = Int.random(in: Range.init(uncheckedBounds: (lower: 2, upper: 200))) +// +// let bodyHasMention = Bool.random() +// +// let mentionedContactIdentity: PersistedObvContactIdentity? = try { +// switch try discussion.kind { +// case .oneToOne: +// return .none +// +// case .groupV1(withContactGroup: let contactGroup): +// guard let contactGroup else { +// return nil +// } +// +// return contactGroup.contactIdentities.randomElement() +// +// case .groupV2(withGroup: let group): +// guard let group else { +// return nil +// } +// +// return group.otherMembers.randomElement()?.contact +// } +// }() +// +// let (randomBody, mentions): (String, [MessageJSON.UserMention]) = { +// guard bodyHasMention, +// let mentionedContactIdentity else { +// return CreateRandomMessageReceivedDebugOperation.randomString(length: randomBodySize, mentionedContactIdentity: nil) +// } +// +// return CreateRandomMessageReceivedDebugOperation.randomString(length: randomBodySize, mentionedContactIdentity: mentionedContactIdentity) +// }() +// +// let messageJSON: MessageJSON +// +// switch try discussion.kind { +// case .oneToOne(withContactIdentity: let contact): +// +// guard let ownedCryptoId = contact?.ownedIdentity?.cryptoId else { +// return cancel(withReason: .internalError) +// } +// +// guard let contactCryptoId = contact?.cryptoId else { +// return cancel(withReason: .internalError) +// } +// +// let oneToOneIdentifier = OneToOneIdentifierJSON(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) +// messageJSON = MessageJSON(senderSequenceNumber: 0, +// senderThreadIdentifier: UUID(), +// body: randomBody, +// oneToOneIdentifier: oneToOneIdentifier, +// replyTo: nil, +// expiration: nil, +// forwarded: false, +// userMentions: mentions) +// +// case .groupV1(withContactGroup: let contactGroup): +// guard let contactGroup = contactGroup else { +// return cancel(withReason: .internalError) +// } +// guard let groupOwner = try? ObvCryptoId(identity: contactGroup.ownerIdentity) else { +// return cancel(withReason: .internalError) +// } +// let groupV1Identifier = (contactGroup.groupUid, groupOwner) +// messageJSON = MessageJSON(senderSequenceNumber: 0, +// senderThreadIdentifier: UUID(), +// body: randomBody, +// groupV1Identifier: groupV1Identifier, +// replyTo: nil, +// expiration: nil, +// forwarded: false, +// userMentions: mentions) +// +// case .groupV2(withGroup: let group): +// guard let groupV2Identifier = group?.groupIdentifier else { +// return cancel(withReason: .internalError) +// } +// messageJSON = MessageJSON(senderSequenceNumber: 0, +// senderThreadIdentifier: UUID(), +// body: randomBody, +// groupV2Identifier: groupV2Identifier, +// replyTo: nil, +// expiration: nil, +// forwarded: false, +// originalServerTimestamp: nil, +// userMentions: mentions) +// } +// +// let randomMessageIdentifierFromEngine = UID.gen(with: prng).raw +// +// guard (try? PersistedMessageReceived(messageUploadTimestampFromServer: Date(), +// downloadTimestampFromServer: Date(), +// localDownloadTimestamp: Date(), +// messageJSON: messageJSON, +// contactIdentity: persistedContactIdentity, +// messageIdentifierFromEngine: randomMessageIdentifierFromEngine, +// returnReceiptJSON: nil, +// missedMessageCount: 0, +// discussion: discussion, +// obvMessageContainsAttachments: false)) != nil else { +// return cancel(withReason: .internalError) +// } +// +// } catch { +// return cancel(withReason: .coreDataError(error: error)) +// } +// +// +// } +// +// } +// +// private func chooseRandomContact(from discussion: PersistedDiscussion) -> PersistedObvContactIdentity? { +// switch try? discussion.kind { +// case .oneToOne(withContactIdentity: let contactIdentity): +// return contactIdentity +// case .groupV1(withContactGroup: let contactGroup): +// return contactGroup?.contactIdentities.randomElement() +// case .groupV2(withGroup: let group): +// return group?.contactsAmongNonPendingOtherMembers.randomElement() +// case .none: +// return nil +// } +// } +// +// +// static func randomString(length: Int, mentionedContactIdentity: PersistedObvContactIdentity?) -> (String, [MessageJSON.UserMention]) { +// let letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 " +// +// let randomBody = String((0...length-1).map { _ in letters.randomElement()! }) +// +// guard let mentionedContactIdentity else { +// return (randomBody, []) +// } +// +// let mentionedName = mentionedContactIdentity.fullDisplayName +// +// let mentionedBody = "\n\nmention: @\(mentionedName)" +// +// let finalBody = randomBody + mentionedBody +// +// let mentionedUserRange = finalBody.range(of: "@\(mentionedName)")! +// +// let userMention = MessageJSON.UserMention(mentionedCryptoId: mentionedContactIdentity.cryptoId, +// range: mentionedUserRange) +// +// return (finalBody, [userMention]) +// } +//} +// +// +//enum CreateRandomMessageReceivedDebugOperationReasonForCancel: LocalizedErrorWithLogType { +// +// case coreDataError(error: Error) +// case couldNotFindDiscussion +// case contextIsNil +// case internalError +// +// var logType: OSLogType { +// switch self { +// case .coreDataError, +// .contextIsNil, +// .internalError: +// return .fault +// case .couldNotFindDiscussion: +// return .error +// } +// } +// +// var errorDescription: String? { +// switch self { +// case .internalError: +// return "Internal error" +// case .contextIsNil: +// return "Context is nil" +// case .coreDataError(error: let error): +// return "Core Data error: \(error.localizedDescription)" +// case .couldNotFindDiscussion: +// return "Could not find discussion in database" +// } +// } +// +// +//} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Debug/MarkSentMessageAsDeliveredDebugOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Debug/MarkSentMessageAsDeliveredDebugOperation.swift index 0f5f2bcb..22ed218a 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Debug/MarkSentMessageAsDeliveredDebugOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Debug/MarkSentMessageAsDeliveredDebugOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,15 +23,12 @@ import os.log import ObvTypes import ObvCrypto import ObvUICoreData +import CoreData final class MarkSentMessageAsDeliveredDebugOperation: ContextualOperationWithSpecificReasonForCancel { - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { let appropriateDependencies = dependencies.compactMap({ $0 as? CreateUnprocessedPersistedMessageSentFromPersistedDraftOperation }) guard appropriateDependencies.count == 1, let messageSentPermanentID = appropriateDependencies.first!.messageSentPermanentID else { @@ -39,37 +36,32 @@ final class MarkSentMessageAsDeliveredDebugOperation: ContextualOperationWithSpe } let prng = ObvCryptoSuite.sharedInstance.prngService() - - obvContext.performAndWait { - - do { - guard let persistedMessageSent = try PersistedMessageSent.getManagedObject(withPermanentID: messageSentPermanentID, within: obvContext.context) else { - return cancel(withReason: .internalError) - } - - // Simulate the sending and reception of the message - - for recipientInfos in persistedMessageSent.unsortedRecipientsInfos { - let randomMessageIdentifierFromEngine = UID.gen(with: prng).raw - let randomNonce = prng.genBytes(count: 16) - let randomKey = prng.genBytes(count: 32) - recipientInfos.setMessageIdentifierFromEngine(to: randomMessageIdentifierFromEngine, - andReturnReceiptElementsTo: (randomNonce, randomKey)) - } - - for recipientInfos in persistedMessageSent.unsortedRecipientsInfos { - recipientInfos.setTimestampMessageSent(to: Date()) - } - - for recipientInfos in persistedMessageSent.unsortedRecipientsInfos { - persistedMessageSent.messageSentWasDeliveredToRecipient(withCryptoId: recipientInfos.recipientCryptoId, noLaterThan: Date(), andRead: false) - } - - } catch { - return cancel(withReason: .coreDataError(error: error)) + + do { + guard let persistedMessageSent = try PersistedMessageSent.getManagedObject(withPermanentID: messageSentPermanentID, within: obvContext.context) else { + return cancel(withReason: .internalError) + } + + // Simulate the sending and reception of the message + + for recipientInfos in persistedMessageSent.unsortedRecipientsInfos { + let randomMessageIdentifierFromEngine = UID.gen(with: prng).raw + let randomNonce = prng.genBytes(count: 16) + let randomKey = prng.genBytes(count: 32) + recipientInfos.setMessageIdentifierFromEngine(to: randomMessageIdentifierFromEngine, + andReturnReceiptElementsTo: (randomNonce, randomKey)) } + for recipientInfos in persistedMessageSent.unsortedRecipientsInfos { + recipientInfos.setTimestampMessageSent(to: Date()) + } + + for recipientInfos in persistedMessageSent.unsortedRecipientsInfos { + persistedMessageSent.messageSentWasDeliveredToRecipient(withCryptoId: recipientInfos.recipientCryptoId, noLaterThan: Date(), andRead: false) + } + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/ArchiveDiscussionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/ArchiveDiscussionOperation.swift index 63cbe08f..bd46d7df 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/ArchiveDiscussionOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/ArchiveDiscussionOperation.swift @@ -20,6 +20,7 @@ import Foundation import OlvidUtils import ObvUICoreData +import CoreData final class ArchiveDiscussionOperation: ContextualOperationWithSpecificReasonForCancel { @@ -38,31 +39,27 @@ final class ArchiveDiscussionOperation: ContextualOperationWithSpecificReasonFor super.init() } - override func main() { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - guard let discussion = try PersistedDiscussion.getManagedObject(withPermanentID: discussionPermanentID, within: obvContext.context) else { return } - switch action { - case .archive: - try discussion.archive() - case .unarchive(updateTimestampOfLastMessage: let updateTimestampOfLastMessage): - if updateTimestampOfLastMessage { - // Unarchive and update the timestampOfLastMessage so that the unarchived discussion is shown at the top of the list. - // The reasoning behind this is that when a user unarchives a discussion, the intention is to interact with it. - // Not updating the timestamp would mean that in a long discussions list, the previously archived discussion would be - // shown at the very bottom. - discussion.unarchiveAndUpdateTimestampOfLastMessage() - } else { - discussion.unarchive() - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + guard let discussion = try PersistedDiscussion.getManagedObject(withPermanentID: discussionPermanentID, within: obvContext.context) else { return } + switch action { + case .archive: + try discussion.archive() + case .unarchive(updateTimestampOfLastMessage: let updateTimestampOfLastMessage): + if updateTimestampOfLastMessage { + // Unarchive and update the timestampOfLastMessage so that the unarchived discussion is shown at the top of the list. + // The reasoning behind this is that when a user unarchives a discussion, the intention is to interact with it. + // Not updating the timestamp would mean that in a long discussions list, the previously archived discussion would be + // shown at the very bottom. + discussion.unarchiveAndUpdateTimestampOfLastMessage() + } else { + discussion.unarchive() } - } catch { - return cancel(withReason: .coreDataError(error: error)) } + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/CancelUploadOrDownloadOfPersistedMessagesOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/CancelUploadOrDownloadOfPersistedMessagesOperation.swift index 4ef172ce..f24d8cb8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/CancelUploadOrDownloadOfPersistedMessagesOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/CancelUploadOrDownloadOfPersistedMessagesOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -21,8 +21,10 @@ import Foundation import os.log import CoreData import ObvEngine +import ObvTypes import OlvidUtils import ObvUICoreData +import CoreData final class CancelUploadOrDownloadOfPersistedMessagesOperation: ContextualOperationWithSpecificReasonForCancel { @@ -35,91 +37,105 @@ final class CancelUploadOrDownloadOfPersistedMessagesOperation: ContextualOperat enum Input { case messages(persistedMessageObjectIDs: [NSManagedObjectID]) case discussion(persistedDiscussionObjectID: NSManagedObjectID) + case remoteDiscussionDeletionRequestFromContact(deleteDiscussionJSON: DeleteDiscussionJSON, obvMessage: ObvMessage) + case remoteDiscussionDeletionRequestFromOtherOwnedDevice(deleteDiscussionJSON: DeleteDiscussionJSON, obvOwnedMessage: ObvOwnedMessage) } - init(persistedMessageObjectIDs: [NSManagedObjectID], obvEngine: ObvEngine) { - self.input = .messages(persistedMessageObjectIDs: persistedMessageObjectIDs) + init(input: Input, obvEngine: ObvEngine) { + self.input = input self.obvEngine = obvEngine super.init() } - init(persistedDiscussionObjectID: NSManagedObjectID, obvEngine: ObvEngine) { - self.input = .discussion(persistedDiscussionObjectID: persistedDiscussionObjectID) - self.obvEngine = obvEngine - super.init() - } - - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { + do { + + let persistedMessageObjectIDs: [NSManagedObjectID] + + switch input { + case .messages(persistedMessageObjectIDs: let _persistedMessageObjectIDs): + persistedMessageObjectIDs = _persistedMessageObjectIDs + case .discussion(persistedDiscussionObjectID: let persistedDiscussionObjectID): + let allProcessingMessageSent = try PersistedMessageSent.getAllProcessingWithinDiscussion(persistedDiscussionObjectID: persistedDiscussionObjectID, within: obvContext.context) + persistedMessageObjectIDs = allProcessingMessageSent.map({ $0.objectID }) + case .remoteDiscussionDeletionRequestFromContact(deleteDiscussionJSON: let deleteDiscussionJSON, obvMessage: let obvMessage): + guard let contact = try PersistedObvContactIdentity.get(persisted: obvMessage.fromContactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { + return cancel(withReason: .couldNotFindContact) + } + persistedMessageObjectIDs = try contact.getObjectIDsOfPersistedMessageSentStillProcessing(deleteDiscussionJSON: deleteDiscussionJSON).map({ $0.objectID }) + case .remoteDiscussionDeletionRequestFromOtherOwnedDevice(deleteDiscussionJSON: let deleteDiscussionJSON, obvOwnedMessage: let obvOwnedMessage): + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: obvOwnedMessage.ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + persistedMessageObjectIDs = try ownedIdentity.getObjectIDsOfPersistedMessageSentStillProcessing(deleteDiscussionJSON: deleteDiscussionJSON).map({ $0.objectID }) + } + + for persistedMessageObjectID in persistedMessageObjectIDs { - let persistedMessageObjectIDs: [NSManagedObjectID] - switch input { - case .messages(persistedMessageObjectIDs: let _persistedMessageObjectIDs): - persistedMessageObjectIDs = _persistedMessageObjectIDs - case .discussion(persistedDiscussionObjectID: let persistedDiscussionObjectID): - let allProcessingMessageSent = try PersistedMessageSent.getAllProcessingWithinDiscussion(persistedDiscussionObjectID: persistedDiscussionObjectID, within: obvContext.context) - persistedMessageObjectIDs = allProcessingMessageSent.map({ $0.objectID }) + guard let messageToDelete = try PersistedMessage.get(with: persistedMessageObjectID, within: obvContext.context) else { + continue + } + guard !(messageToDelete is PersistedMessageSystem) else { + os_log("We do not need to cancel the upload/download of a PersistedMessageSystem", log: log, type: .info) + continue } - for persistedMessageObjectID in persistedMessageObjectIDs { - - guard let messageToDelete = try PersistedMessage.get(with: persistedMessageObjectID, within: obvContext.context) else { - continue - } - guard !(messageToDelete is PersistedMessageSystem) else { - os_log("We do not need to cancel the upload/download of a PersistedMessageSystem", log: log, type: .info) - continue - } + guard let discussion = messageToDelete.discussion else { + return cancel(withReason: .discussionIsNil) + } + + guard let ownedIdentity = discussion.ownedIdentity else { + return cancel(withReason: .persistedObvOwnedIdentityIsNil) + } + + if let sendMessageToDelete = messageToDelete as? PersistedMessageSent { - guard let ownedIdentity = messageToDelete.discussion.ownedIdentity else { - return cancel(withReason: .persistedObvOwnedIdentityIsNil) - } + let messadeIdentifiersFromEngine = Set(sendMessageToDelete.unsortedRecipientsInfos.compactMap { $0.messageIdentifierFromEngine }) - if let sendMessageToDelete = messageToDelete as? PersistedMessageSent { - - let messadeIdentifiersFromEngine = Set(sendMessageToDelete.unsortedRecipientsInfos.compactMap { $0.messageIdentifierFromEngine }) - - for messageIdentifierFromEngine in messadeIdentifiersFromEngine { - do { - try obvEngine.cancelPostOfMessage(withIdentifier: messageIdentifierFromEngine, ownedCryptoId: ownedIdentity.cryptoId) - } catch { - assertionFailure(error.localizedDescription) - continue - } - } - - } else if let receivedMessageToDelete = messageToDelete as? PersistedMessageReceived { - - // If the message is a received message, we ask the engine to cancel any download of this message - + for messageIdentifierFromEngine in messadeIdentifiersFromEngine { do { - try obvEngine.cancelDownloadOfMessage(withIdentifier: receivedMessageToDelete.messageIdentifierFromEngine, ownedCryptoId: ownedIdentity.cryptoId) + try obvEngine.cancelPostOfMessage(withIdentifier: messageIdentifierFromEngine, ownedCryptoId: ownedIdentity.cryptoId) } catch { assertionFailure(error.localizedDescription) continue } - - } else { - - return cancel(withReason: .unexpectedMessageType) - } + } else if let receivedMessageToDelete = messageToDelete as? PersistedMessageReceived { + + // If the message is a received message, we ask the engine to cancel any download of this message + + do { + try obvEngine.cancelDownloadOfMessage(withIdentifier: receivedMessageToDelete.messageIdentifierFromEngine, ownedCryptoId: ownedIdentity.cryptoId) + } catch { + assertionFailure(error.localizedDescription) + continue + } + + } else { + + return cancel(withReason: .unexpectedMessageType) + } - } catch { - assertionFailure(error.localizedDescription) + } + + } catch { + if let error = error as? ObvUICoreDataError { + switch error { + case .couldNotFindGroupV2InDatabase: + // No assert in this case, this can happen. See the comment in the description of MessagesKeptForLaterManager. + return + default: + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + } else { + assertionFailure() return cancel(withReason: .coreDataError(error: error)) } - - } // End obvContext.performAndWait + } } @@ -128,18 +144,25 @@ final class CancelUploadOrDownloadOfPersistedMessagesOperation: ContextualOperat enum CancelUploadOrDownloadOfPersistedMessageOperationReasonForCancel: LocalizedErrorWithLogType { + case discussionIsNil case persistedObvOwnedIdentityIsNil case unexpectedMessageType case coreDataError(error: Error) case contextIsNil - + case couldNotFindContact + case couldNotFindOwnedIdentity + var logType: OSLogType { switch self { case .persistedObvOwnedIdentityIsNil, + .discussionIsNil, .unexpectedMessageType, .coreDataError, .contextIsNil: return .fault + case .couldNotFindContact, + .couldNotFindOwnedIdentity: + return .error } } @@ -153,6 +176,12 @@ enum CancelUploadOrDownloadOfPersistedMessageOperationReasonForCancel: Localized return "Core Data error: \(error.localizedDescription)" case .contextIsNil: return "Context is nil" + case .couldNotFindContact: + return "Could not find contact" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + case .discussionIsNil: + return "Discussion is nil" } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllEmptyLockedDiscussionsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllEmptyLockedDiscussionsOperation.swift index 1ba7efd1..f254535c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllEmptyLockedDiscussionsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllEmptyLockedDiscussionsOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -28,19 +28,13 @@ final class DeleteAllEmptyLockedDiscussionsOperation: ContextualOperationWithSpe private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: DeleteAllEmptyLockedDiscussionsOperation.self)) - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - try PersistedDiscussion.deleteAllLockedDiscussionsWithNoMessage(within: obvContext.context, log: log) - } catch { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) - } + do { + try PersistedDiscussion.deleteAllLockedDiscussionsWithNoMessage(within: obvContext.context, log: log) + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllPersistedMessagesWithinDiscussionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllPersistedMessagesWithinDiscussionOperation.swift deleted file mode 100644 index 99b83ae5..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllPersistedMessagesWithinDiscussionOperation.swift +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import os.log -import OlvidUtils -import ObvTypes -import ObvUICoreData - - -/// This operation replaces the discussion (either one-to-one or group) by another empty discussion of the same type. -/// Before saving the context, this operation deletes the old discussion, which cascade deletes its messages. -/// If this operation finishes without cancelling, `newDiscussionObjectID` is set to the objectID of the new discussion if a new discussion was created during this operation. -final class DeleteAllPersistedMessagesWithinDiscussionOperation: ContextualOperationWithSpecificReasonForCancel, ObvErrorMaker { - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: DeleteAllPersistedMessagesWithinDiscussionOperation.self)) - - private let persistedDiscussionObjectID: NSManagedObjectID - private let requester: RequesterOfMessageDeletion - - static let errorDomain = "DeleteAllPersistedMessagesWithinDiscussionOperation" - - init(persistedDiscussionObjectID: NSManagedObjectID, requester: RequesterOfMessageDeletion) { - self.persistedDiscussionObjectID = persistedDiscussionObjectID - self.requester = requester - super.init() - } - - private(set) var newDiscussionObjectID: NSManagedObjectID? - private(set) var atLeastOneIllustrativeMessageWasDeleted = false - private(set) var contactRequesterIdentityObjectID: NSManagedObjectID? - - private var newCreatedDiscussion: PersistedDiscussion? - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { - guard let discussion = try PersistedDiscussion.get(objectID: persistedDiscussionObjectID, - within: obvContext.context) else { return } - // Deleting all messages is implemented as a deletion of a discussion. - // If the deleted discussion is active, it is replaced by a new one with the same configuration. - // In practice, this behavior allows to efficiently delete all messages. - atLeastOneIllustrativeMessageWasDeleted = discussion.illustrativeMessage != nil - switch discussion.status { - case .preDiscussion, .locked: - switch requester { - case .ownedIdentity: - do { - try discussion.deleteDiscussion(requester: nil) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - case .contact: - return cancel(withReason: .coreDataError(error: Self.makeError(message: "A contact cannot delete a pre or locked discussion") )) - } - case .active: - let sharedConfigurationToKeep = discussion.sharedConfiguration - let localConfigurationToKeep = discussion.localConfiguration - let permanentUUIDToKeep = discussion.permanentUUID - let draftToKeep = discussion.draft - let pinnedIndexToKeep = discussion.pinnedIndex - let timestampOfLastMessageToKeep = discussion.timestampOfLastMessage - do { - switch try discussion.kind { - case .oneToOne(withContactIdentity: let contactIdentity): - if let contactIdentity = contactIdentity { - do { - try discussion.deleteDiscussion(requester: requester) // Must be called before creating the new discussion - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - let newDiscussion = try PersistedOneToOneDiscussion( - contactIdentity: contactIdentity, - status: .active, - sharedConfigurationToKeep: sharedConfigurationToKeep, - localConfigurationToKeep: localConfigurationToKeep, - permanentUUIDToKeep: permanentUUIDToKeep, - draftToKeep: draftToKeep, - pinnedIndexToKeep: pinnedIndexToKeep, - timestampOfLastMessageToKeep: timestampOfLastMessageToKeep) - try obvContext.context.obtainPermanentIDs(for: [newDiscussion]) - assert(newDiscussionObjectID == nil) - newDiscussionObjectID = newDiscussion.objectID - newCreatedDiscussion = newDiscussion - } - case .groupV1(withContactGroup: let contactGroup): - if let contactGroup = contactGroup, let ownedIdentity = discussion.ownedIdentity { - let groupName = discussion.title - do { - try discussion.deleteDiscussion(requester: requester) // Must be called before creating the new discussion - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - let newDiscussion = try PersistedGroupDiscussion( - contactGroup: contactGroup, - groupName: groupName, - ownedIdentity: ownedIdentity, - status: .active, - sharedConfigurationToKeep: sharedConfigurationToKeep, - localConfigurationToKeep: localConfigurationToKeep, - permanentUUIDToKeep: permanentUUIDToKeep, - draftToKeep: draftToKeep, - pinnedIndexToKeep: pinnedIndexToKeep, - timestampOfLastMessageToKeep: timestampOfLastMessageToKeep) - try obvContext.context.obtainPermanentIDs(for: [newDiscussion]) - assert(newDiscussionObjectID == nil) - newDiscussionObjectID = newDiscussion.objectID - newCreatedDiscussion = newDiscussion - } - case .groupV2(withGroup: let group): - if let group = group { - do { - try discussion.deleteDiscussion(requester: requester) // Must be called before creating the new discussion - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - let newDiscussion = try PersistedGroupV2Discussion( - persistedGroupV2: group, - shouldApplySharedConfigurationFromGlobalSettings: false, - sharedConfigurationToKeep: sharedConfigurationToKeep, - localConfigurationToKeep: localConfigurationToKeep, - permanentUUIDToKeep: permanentUUIDToKeep, - draftToKeep: draftToKeep, - pinnedIndexToKeep: pinnedIndexToKeep, - timestampOfLastMessageToKeep: timestampOfLastMessageToKeep) - try obvContext.context.obtainPermanentIDs(for: [newDiscussion]) - assert(newDiscussionObjectID == nil) - newDiscussionObjectID = newDiscussion.objectID - newCreatedDiscussion = newDiscussion - } - } - } catch { - return cancel(withReason: .unknownDiscussionType) - } - } - - // If the deletion was requested by a contact, find its objectID (so other operations can use it) - // If it was requested by us, archive the created discussion (if there is one) to remove it from the list of recent discussions - - switch requester { - case .ownedIdentity: - try newCreatedDiscussion?.archive() - case .contact(let ownedCryptoId, let contactCryptoId, _): - // This happens when this discussion was globally deleted by a contact. - assert(newDiscussionObjectID != nil) - if let contact = try? PersistedObvContactIdentity.get(contactCryptoId: contactCryptoId, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: obvContext.context) { - contactRequesterIdentityObjectID = contact.objectID - } - } - - // If no illustrative message was deleted from the previous discussion, we don't need to show the new one in the list of recent discussion. - // So we immediately archive it. - - if !atLeastOneIllustrativeMessageWasDeleted { - try newCreatedDiscussion?.archive() - } - - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - } - - } - -} - -enum DeleteAllPersistedMessagesWithinDiscussionOperationReasonForCancel: LocalizedErrorWithLogType { - - case unknownDiscussionType - case coreDataError(error: Error) - case contextIsNil - - var logType: OSLogType { - switch self { - case .unknownDiscussionType, - .coreDataError, - .contextIsNil: - return .fault - } - } - - var errorDescription: String? { - switch self { - case .contextIsNil: - return "Context is nil" - case .unknownDiscussionType: - return "Unknown discussion type" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteJsonMessageSavedByNotificationExtension.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteJsonMessageSavedByNotificationExtension.swift index af5361b5..214c9c11 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteJsonMessageSavedByNotificationExtension.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteJsonMessageSavedByNotificationExtension.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import os.log import ObvEngine import OlvidUtils import ObvUICoreData +import ObvSettings final class DeleteAllJsonMessagesSavedByNotificationExtension: OperationWithSpecificReasonForCancel { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeletePersistedDiscussionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeletePersistedDiscussionOperation.swift new file mode 100644 index 00000000..9eeab1d9 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeletePersistedDiscussionOperation.swift @@ -0,0 +1,88 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import OlvidUtils +import ObvUICoreData +import ObvTypes + + + +/// Called when processing the message deletion requested by an owned identity from the current device. +final class DeletePersistedDiscussionOperation: ContextualOperationWithSpecificReasonForCancel { + + private let ownedCryptoId: ObvCryptoId + private let discussionObjectID: TypeSafeManagedObjectID + private let deletionType: DeletionType + + + init(ownedCryptoId: ObvCryptoId, discussionObjectID: TypeSafeManagedObjectID, deletionType: DeletionType) { + self.ownedCryptoId = ownedCryptoId + self.discussionObjectID = discussionObjectID + self.deletionType = deletionType + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .cannotFindOwnedIdentity) + } + + try ownedIdentity.processDiscussionDeletionRequestFromCurrentDeviceOfThisOwnedIdentity(discussionObjectID: discussionObjectID, deletionType: deletionType) + + } catch { + assertionFailure(error.localizedDescription) + return cancel(withReason: .coreDataError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case contextIsNil + case cannotFindOwnedIdentity + + var logType: OSLogType { + switch self { + case .coreDataError, .contextIsNil, .cannotFindOwnedIdentity: + return .fault + } + } + + var errorDescription: String? { + switch self { + case .contextIsNil: + return "Context is nil" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .cannotFindOwnedIdentity: + return "Cannot find owned identity" + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeletePersistedMessagesOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeletePersistedMessagesOperation.swift index 995376eb..1f132a32 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeletePersistedMessagesOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeletePersistedMessagesOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,21 +22,21 @@ import CoreData import os.log import OlvidUtils import ObvUICoreData +import ObvTypes -final class DeletePersistedMessagesOperation: ContextualOperationWithSpecificReasonForCancel { +/// Called when processing the message deletion requested by an owned identity from the current device. +final class DeletePersistedMessagesOperation: ContextualOperationWithSpecificReasonForCancel { - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: DeletePersistedMessagesOperation.self)) - private enum Input { - case persistedMessageObjectIDs(_: Set, requester: RequesterOfMessageDeletion) + case persistedMessageObjectIDs(_: Set, ownedCryptoId: ObvCryptoId, deletionType: DeletionType) case provider(_: OperationProvidingPersistedMessageObjectIDsToDelete) } private let input: Input - init(persistedMessageObjectIDs: Set, requester: RequesterOfMessageDeletion) { - self.input = .persistedMessageObjectIDs(persistedMessageObjectIDs, requester: requester) + init(persistedMessageObjectIDs: Set, ownedCryptoId: ObvCryptoId, deletionType: DeletionType) { + self.input = .persistedMessageObjectIDs(persistedMessageObjectIDs, ownedCryptoId: ownedCryptoId, deletionType: deletionType) super.init() } @@ -47,88 +47,90 @@ final class DeletePersistedMessagesOperation: ContextualOperationWithSpecificRea } - override func main() { - + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + let persistedMessageObjectIDs: Set - let requester: RequesterOfMessageDeletion + let ownedCryptoId: ObvCryptoId + let deletionType: DeletionType switch input { - case .persistedMessageObjectIDs(let objectIDs, let _requester): + case .persistedMessageObjectIDs(let objectIDs, let _ownedCryptoId, let _deletionType): persistedMessageObjectIDs = objectIDs - requester = _requester + ownedCryptoId = _ownedCryptoId + deletionType = _deletionType case .provider(let provider): persistedMessageObjectIDs = Set(provider.persistedMessageObjectIDsToDelete.map({ $0.objectID })) - requester = provider.requester + ownedCryptoId = provider.ownedCryptoId + deletionType = provider.deletionType } guard !persistedMessageObjectIDs.isEmpty else { return } - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - var infos = [InfoAboutWipedOrDeletedPersistedMessage]() - - for persistedMessageObjectID in persistedMessageObjectIDs { - do { - guard let messageToDelete = try PersistedMessage.get(with: persistedMessageObjectID, within: obvContext.context) else { return } - let info = try messageToDelete.delete(requester: requester) - infos += [info] - } catch { - return cancel(withReason: .coreDataError(error: error)) - } + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .cannotFindOwnedIdentity) } + let infos = try ownedIdentity.processMessageDeletionRequestRequestedFromCurrentDeviceOfThisOwnedIdentity( + persistedMessageObjectIDs: persistedMessageObjectIDs, + deletionType: deletionType) do { try obvContext.addContextDidSaveCompletionHandler { error in guard error == nil else { return } + // We deleted some persisted messages. We notify about that. - InfoAboutWipedOrDeletedPersistedMessage.notifyThatMessagesWereWipedOrDeleted(infos) - + // Refresh objects in the view context if let viewContext = self.viewContext { InfoAboutWipedOrDeletedPersistedMessage.refresh(viewContext: viewContext, infos) } + } } catch { - return cancel(withReason: .coreDataError(error: error)) + assertionFailure() // In production, continue anyway } - + + } catch { + assertionFailure(error.localizedDescription) + return cancel(withReason: .coreDataError(error: error)) } } + -} + enum ReasonForCancel: LocalizedErrorWithLogType { + case coreDataError(error: Error) + case contextIsNil + case cannotFindOwnedIdentity + + var logType: OSLogType { + switch self { + case .coreDataError, .contextIsNil, .cannotFindOwnedIdentity: + return .fault + } + } + + var errorDescription: String? { + switch self { + case .contextIsNil: + return "Context is nil" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .cannotFindOwnedIdentity: + return "Cannot find owned identity" + } + } + + } -protocol OperationProvidingPersistedMessageObjectIDsToDelete: Operation { - var persistedMessageObjectIDsToDelete: Set> { get } - var requester: RequesterOfMessageDeletion { get } } -enum DeletePersistedMessageOperationReasonForCancel: LocalizedErrorWithLogType { - - case coreDataError(error: Error) - case contextIsNil - - var logType: OSLogType { - switch self { - case .coreDataError, .contextIsNil: - return .fault - } - } - - var errorDescription: String? { - switch self { - case .contextIsNil: - return "Context is nil" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - } - } - +protocol OperationProvidingPersistedMessageObjectIDsToDelete: Operation { + var persistedMessageObjectIDsToDelete: Set> { get } + var ownedCryptoId: ObvCryptoId { get } + var deletionType: DeletionType { get } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeletingOrphanedItems/DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation.swift similarity index 68% rename from iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation.swift rename to iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeletingOrphanedItems/DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation.swift index ba6775ac..c4579bcf 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/DeletingOrphanedItems/DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -30,34 +30,26 @@ final class DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation: Contex private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation.self)) - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) + let orphanedFyles: [Fyle] + do { + orphanedFyles = try Fyle.getAllOrphaned(within: obvContext.context) + } catch { + return cancel(withReason: .coreDataError(error: error)) } - obvContext.performAndWait { - - let orphanedFyles: [Fyle] + guard !orphanedFyles.isEmpty else { return } + + for fyle in orphanedFyles { do { - orphanedFyles = try Fyle.getAllOrphaned(within: obvContext.context) + try fyle.moveFileToTrash() + obvContext.context.delete(fyle) } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - guard !orphanedFyles.isEmpty else { return } - - for fyle in orphanedFyles { - do { - try fyle.moveFileToTrash() - obvContext.context.delete(fyle) - } catch { - os_log("One of the fyles could not be trashed: %{public}@", type: .fault, error.localizedDescription) - assertionFailure() - // Continue anyway - } + os_log("One of the fyles could not be trashed: %{public}@", type: .fault, error.localizedDescription) + assertionFailure() + // Continue anyway } - } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/ProcessRemoteWipeDiscussionRequestOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/ProcessRemoteWipeDiscussionRequestOperation.swift new file mode 100644 index 00000000..1b339eca --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/ProcessRemoteWipeDiscussionRequestOperation.swift @@ -0,0 +1,141 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import OlvidUtils +import ObvTypes +import ObvUICoreData +import ObvEngine + + +/// This operation is called when receiving a request to wipe all messages in a particular discussion. This request can come either from a contact of the discussion or from another owned device. +final class ProcessRemoteWipeDiscussionRequestOperation: ContextualOperationWithSpecificReasonForCancel { + + enum Requester { + case contact(contactIdentifier: ObvContactIdentifier) + case ownedIdentity(ownedCryptoId: ObvCryptoId) + } + + private let deleteDiscussionJSON: DeleteDiscussionJSON + private let requester: Requester + private let messageUploadTimestampFromServer: Date + + init(deleteDiscussionJSON: DeleteDiscussionJSON, requester: Requester, messageUploadTimestampFromServer: Date) { + self.deleteDiscussionJSON = deleteDiscussionJSON + self.requester = requester + self.messageUploadTimestampFromServer = messageUploadTimestampFromServer + super.init() + } + + + enum Result { + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case processed + } + + private(set) var result: Result? + + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + switch requester { + + case .contact(contactIdentifier: let contactIdentifier): + + // Get the PersistedObvContactIdentity + + guard let contact = try PersistedObvContactIdentity.get(persisted: contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) else { + return cancel(withReason: .couldNotFindContact) + } + + // Request a deletion of all messages within the discussion + + try contact.processThisContactRemoteRequestToWipeAllMessagesWithinDiscussion(deleteDiscussionJSON: deleteDiscussionJSON, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + case .ownedIdentity(ownedCryptoId: let ownedCryptoId): + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + // Request a deletion of all messages within the discussion + + try ownedIdentity.processThisOwnedIdentityRemoteRequestToWipeAllMessagesWithinDiscussion(deleteDiscussionJSON: deleteDiscussionJSON, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + result = .processed + + } catch { + if let error = error as? ObvUICoreDataError { + switch error { + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + result = .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + return + default: + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + } else { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case contextIsNil + case couldNotFindContact + case couldNotFindOwnedIdentity + + var logType: OSLogType { + switch self { + case .coreDataError, + .contextIsNil: + return .fault + case .couldNotFindContact, + .couldNotFindOwnedIdentity: + return .error + } + } + + var errorDescription: String? { + switch self { + case .contextIsNil: + return "Context is nil" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindContact: + return "Could not find contact" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/ProcessRemoteWipeMessagesRequestOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/ProcessRemoteWipeMessagesRequestOperation.swift new file mode 100644 index 00000000..30ee9812 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/ProcessRemoteWipeMessagesRequestOperation.swift @@ -0,0 +1,161 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvEngine +import ObvTypes +import OlvidUtils +import ObvCrypto +import ObvUICoreData + + +/// This method is typically called when we receive a request to delete some messages by a contact willing to globally delete these messages +final class ProcessRemoteWipeMessagesRequestOperation: ContextualOperationWithSpecificReasonForCancel { + + enum Requester { + case contact(contactIdentifier: ObvContactIdentifier) + case ownedIdentity(ownedCryptoId: ObvCryptoId) + } + + private let deleteMessagesJSON: DeleteMessagesJSON + private let requester: Requester + private let messageUploadTimestampFromServer: Date + + init(deleteMessagesJSON: DeleteMessagesJSON, requester: Requester, messageUploadTimestampFromServer: Date) { + self.deleteMessagesJSON = deleteMessagesJSON + self.requester = requester + self.messageUploadTimestampFromServer = messageUploadTimestampFromServer + super.init() + } + + enum Result { + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case processed + } + + private(set) var result: Result? + + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + guard !deleteMessagesJSON.messagesToDelete.isEmpty else { + result = .processed + assertionFailure() + return + } + + do { + + let infosAboutWipedMessages: [InfoAboutWipedOrDeletedPersistedMessage] + + switch requester { + + case .contact(contactIdentifier: let contactIdentifier): + + // Get the PersistedObvContactIdentity who requested the wipe + + guard let contact = try PersistedObvContactIdentity.get(persisted: contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) else { + return cancel(withReason: .couldNotFindContact) + } + + // Try to wipe + + infosAboutWipedMessages = try contact.processWipeMessageRequestFromThisContact( + deleteMessagesJSON: deleteMessagesJSON, + messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + case .ownedIdentity(ownedCryptoId: let ownedCryptoId): + + // Get the PersistedObvContactIdentity who requested the wipe + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + infosAboutWipedMessages = try ownedIdentity.processWipeMessageRequestFromOtherOwnedDevice( + deleteMessagesJSON: deleteMessagesJSON, + messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + result = .processed + + // Refresh objects in the view context + + if !infosAboutWipedMessages.isEmpty { + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + + // We deleted some persisted messages. We notify about that. + InfoAboutWipedOrDeletedPersistedMessage.notifyThatMessagesWereWipedOrDeleted(infosAboutWipedMessages) + + // Refresh objects in the view context + if let viewContext = self.viewContext { + InfoAboutWipedOrDeletedPersistedMessage.refresh(viewContext: viewContext, infosAboutWipedMessages) + } + + } + } + + } catch { + if let error = error as? ObvUICoreDataError { + switch error { + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + result = .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + return + default: + return cancel(withReason: .coreDataError(error: error)) + } + } else { + return cancel(withReason: .coreDataError(error: error)) + } + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindOwnedIdentity + case couldNotFindContact + + var logType: OSLogType { + switch self { + case .coreDataError, .couldNotFindOwnedIdentity, .couldNotFindContact: + return .fault + } + } + + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + case .couldNotFindContact: + return "Could not find the contact identity" + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/SendGlobalDeleteDiscussionJSONOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/SendGlobalDeleteDiscussionJSONOperation.swift index aa31f613..80ea73c1 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/SendGlobalDeleteDiscussionJSONOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/SendGlobalDeleteDiscussionJSONOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -43,60 +43,64 @@ final class SendGlobalDeleteDiscussionJSONOperation: OperationWithSpecificReason ObvStack.shared.performBackgroundTaskAndWait { (context) in - // We create the PersistedItemJSON instance to send - - let discussion: PersistedDiscussion do { - guard let _discussion = try PersistedDiscussion.get(objectID: persistedDiscussionObjectID, within: context) else { + + // We create the PersistedItemJSON instance to send + + guard let discussion = try PersistedDiscussion.get(objectID: persistedDiscussionObjectID, within: context) else { return cancel(withReason: .couldNotFindDiscussion) } - discussion = _discussion + + let deleteDiscussionJSON: DeleteDiscussionJSON + do { + deleteDiscussionJSON = try DeleteDiscussionJSON(persistedDiscussionToDelete: discussion) + } catch { + return cancel(withReason: .couldNotConstructDeleteDiscussionJSON(error: error)) + } + let itemJSON = PersistedItemJSON(deleteDiscussionJSON: deleteDiscussionJSON) + + // Find all the contacts to which this item should be sent. + + let contactCryptoIds: Set + let ownCryptoId: ObvCryptoId + do { + (ownCryptoId, contactCryptoIds) = try discussion.getAllActiveParticipants() + } catch { + return cancel(withReason: .couldNotGetCryptoIdOfDiscussionParticipants(error: error)) + } + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownCryptoId, within: context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + // Create a payload of the PersistedItemJSON we just created and send it. + // We do not keep track of the message identifiers from engine. + + let payload: Data + do { + payload = try itemJSON.jsonEncode() + } catch { + return cancel(withReason: .failedToEncodePersistedItemJSON) + } + + guard !contactCryptoIds.isEmpty || ownedIdentity.devices.count > 1 else { return } + + do { + _ = try obvEngine.post(messagePayload: payload, + extendedPayload: nil, + withUserContent: false, + isVoipMessageForStartingCall: false, + attachmentsToSend: [], + toContactIdentitiesWithCryptoId: contactCryptoIds, + ofOwnedIdentityWithCryptoId: ownCryptoId, + alsoPostToOtherOwnedDevices: true) + } catch { + return cancel(withReason: .couldNotPostMessageWithinEngine) + } + } catch { return cancel(withReason: .coreDataError(error: error)) } - - let deleteDiscussionJSON: DeleteDiscussionJSON - do { - deleteDiscussionJSON = try DeleteDiscussionJSON(persistedDiscussionToDelete: discussion) - } catch { - return cancel(withReason: .couldNotConstructDeleteDiscussionJSON(error: error)) - } - let itemJSON = PersistedItemJSON(deleteDiscussionJSON: deleteDiscussionJSON) - - // Find all the contacts to which this item should be sent. - - let contactCryptoIds: Set - let ownCryptoId: ObvCryptoId - do { - (ownCryptoId, contactCryptoIds) = try discussion.getAllActiveParticipants() - } catch { - return cancel(withReason: .couldNotGetCryptoIdOfDiscussionParticipants(error: error)) - } - - // Create a payload of the PersistedItemJSON we just created and send it. - // We do not keep track of the message identifiers from engine. - - let payload: Data - do { - payload = try itemJSON.jsonEncode() - } catch { - return cancel(withReason: .failedToEncodePersistedItemJSON) - } - - guard !contactCryptoIds.isEmpty else { return } - - do { - _ = try obvEngine.post(messagePayload: payload, - extendedPayload: nil, - withUserContent: false, - isVoipMessageForStartingCall: false, - attachmentsToSend: [], - toContactIdentitiesWithCryptoId: contactCryptoIds, - ofOwnedIdentityWithCryptoId: ownCryptoId) - } catch { - return cancel(withReason: .couldNotPostMessageWithinEngine) - } - } } @@ -112,6 +116,7 @@ enum SendGlobalDeleteDiscussionJSONOperationReasonForCancel: LocalizedErrorWithL case couldNotGetCryptoIdOfDiscussionParticipants(error: Error) case failedToEncodePersistedItemJSON case couldNotPostMessageWithinEngine + case couldNotFindOwnedIdentity var logType: OSLogType { switch self { @@ -120,6 +125,7 @@ enum SendGlobalDeleteDiscussionJSONOperationReasonForCancel: LocalizedErrorWithL .couldNotGetCryptoIdOfDiscussionParticipants, .failedToEncodePersistedItemJSON, .couldNotPostMessageWithinEngine, + .couldNotFindOwnedIdentity, .couldNotConstructDeleteDiscussionJSON: return .fault } @@ -139,6 +145,8 @@ enum SendGlobalDeleteDiscussionJSONOperationReasonForCancel: LocalizedErrorWithL return "We failed to encode the persisted item JSON" case .couldNotPostMessageWithinEngine: return "We failed to post the serialized DeleteMessagesJSON within the engine" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/SendGlobalDeleteMessagesJSONOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/SendGlobalDeleteMessagesJSONOperation.swift index 682636fd..e94f7cb4 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/SendGlobalDeleteMessagesJSONOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/SendGlobalDeleteMessagesJSONOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,6 +26,7 @@ import ObvEngine import ObvUICoreData +/// Called prior the processing the message deletion requested by an owned identity from the current device, when the deletionType is .global. final class SendGlobalDeleteMessagesJSONOperation: OperationWithSpecificReasonForCancel { private let persistedMessageObjectIDs: [NSManagedObjectID] @@ -56,7 +57,7 @@ final class SendGlobalDeleteMessagesJSONOperation: OperationWithSpecificReasonFo let discussion: PersistedDiscussion do { - let discussions = Set(messages.map { $0.discussion }) + let discussions = Set(messages.compactMap { $0.discussion }) guard discussions.count == 1 else { return cancel(withReason: .unexpectedNumberOfDiscussions(discussionCount: discussions.count)) } @@ -99,7 +100,8 @@ final class SendGlobalDeleteMessagesJSONOperation: OperationWithSpecificReasonFo isVoipMessageForStartingCall: false, attachmentsToSend: [], toContactIdentitiesWithCryptoId: contactCryptoIds, - ofOwnedIdentityWithCryptoId: ownCryptoId) + ofOwnedIdentityWithCryptoId: ownCryptoId, + alsoPostToOtherOwnedDevices: true) } catch { return cancel(withReason: .couldNotPostMessageWithinEngine) } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeAllReadOnceAndLimitedVisibilityMessagesAfterLockOutOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeAllReadOnceAndLimitedVisibilityMessagesAfterLockOutOperation.swift index c2ff0919..5958a491 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeAllReadOnceAndLimitedVisibilityMessagesAfterLockOutOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeAllReadOnceAndLimitedVisibilityMessagesAfterLockOutOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,7 @@ import os.log import OlvidUtils import UserNotifications import ObvUICoreData +import ObvSettings /// After too many wrong passcode attempts, we wipe all read once and limited visibility messages until now, if the user decided to choose this option. This wipe is performed by this operation. @@ -57,7 +58,7 @@ final class WipeAllReadOnceAndLimitedVisibilityMessagesAfterLockOutOperation: Co super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { // If this operation was launched to finish a wipe started by the share extension, we make sure there is indeed a wipe to finish. This is the case iff `userDefaults.getExtensionFailedToWipeAllEphemeralMessagesBeforeDate` is non-nil. Indeed, if a wipe was start, but not finished, by the share extension, this user defaults variable was necessarily set. @@ -66,7 +67,7 @@ final class WipeAllReadOnceAndLimitedVisibilityMessagesAfterLockOutOperation: Co case .startWipeFromAppOrShareExtension: guard ObvMessengerSettings.Privacy.lockoutCleanEphemeral else { return } - + case .finishIfRequiredWipeStartedByAnExtension: guard userDefaults?.getExtensionFailedToWipeAllEphemeralMessagesBeforeDate != nil else { @@ -75,113 +76,106 @@ final class WipeAllReadOnceAndLimitedVisibilityMessagesAfterLockOutOperation: Co } - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + do { + + // Determine the date until which read-once and limited visibility messages must be wiped + + let timestampOfLastMessageToWipe: Date - do { + switch wipeType { - // Determine the date until which read-once and limited visibility messages must be wiped + case .startWipeFromAppOrShareExtension: - let timestampOfLastMessageToWipe: Date + // Get the latest message to wipe in order to get its date - switch wipeType { - - case .startWipeFromAppOrShareExtension: - - // Get the latest message to wipe in order to get its date - - let dateSent = try PersistedMessageSent.getDateOfLatestSentMessageWithLimitedVisibilityOrReadOnce(within: obvContext.context) - let dateReceived = try PersistedMessageReceived.getDateOfLatestReceivedMessageWithLimitedVisibilityOrReadOnce(within: obvContext.context) - - guard dateSent != nil || dateReceived != nil else { - // No message to wipe, we are done - return - } - - timestampOfLastMessageToWipe = max(dateSent ?? .distantPast, dateReceived ?? .distantPast) - - case .finishIfRequiredWipeStartedByAnExtension: - - // When the share extension starts a wipe without finishing it, it sets a date in the user defaults. This date corresponds to the date of the last message to wipe. - // We will use this date here to wipe this message and all those (read-once and with limited visibility) with an earlier date. This makes it possible to preserve messages that may have arrived after this message. - - guard let date = userDefaults?.getExtensionFailedToWipeAllEphemeralMessagesBeforeDate else { - assertionFailure() - return - } - timestampOfLastMessageToWipe = date - + let dateSent = try PersistedMessageSent.getDateOfLatestSentMessageWithLimitedVisibilityOrReadOnce(within: obvContext.context) + let dateReceived = try PersistedMessageReceived.getDateOfLatestReceivedMessageWithLimitedVisibilityOrReadOnce(within: obvContext.context) + + guard dateSent != nil || dateReceived != nil else { + // No message to wipe, we are done + return } - // If we reach this point, we must wipe read-once and limited visibility messages until the date specified in `wipeMessageUntilDate`. + timestampOfLastMessageToWipe = max(dateSent ?? .distantPast, dateReceived ?? .distantPast) - var messagesToDelete = [PersistedMessage]() + case .finishIfRequiredWipeStartedByAnExtension: - if !earlyAbortWipe { - messagesToDelete += try PersistedMessageSent.getAllReadOnceAndLimitedVisibilitySentMessagesToDelete(until: timestampOfLastMessageToWipe, within: obvContext.context) - } + // When the share extension starts a wipe without finishing it, it sets a date in the user defaults. This date corresponds to the date of the last message to wipe. + // We will use this date here to wipe this message and all those (read-once and with limited visibility) with an earlier date. This makes it possible to preserve messages that may have arrived after this message. - if !earlyAbortWipe { - messagesToDelete += try PersistedMessageReceived.getAllReadOnceAndLimitedVisibilityReceivedMessagesToDelete(until: timestampOfLastMessageToWipe, within: obvContext.context) + guard let date = userDefaults?.getExtensionFailedToWipeAllEphemeralMessagesBeforeDate else { + assertionFailure() + return } + timestampOfLastMessageToWipe = date - // Wipe messages - - var infos = [InfoAboutWipedOrDeletedPersistedMessage]() - for message in messagesToDelete { - guard !earlyAbortWipe else { break } - do { - let info = try message.delete(requester: nil) - infos += [info] - } catch { - assertionFailure(error.localizedDescription) - // In production, continue anyway + } + + // If we reach this point, we must wipe read-once and limited visibility messages until the date specified in `wipeMessageUntilDate`. + + var messagesToDelete = [PersistedMessage]() + + if !earlyAbortWipe { + messagesToDelete += try PersistedMessageSent.getAllReadOnceAndLimitedVisibilitySentMessagesToDelete(until: timestampOfLastMessageToWipe, within: obvContext.context) + } + + if !earlyAbortWipe { + messagesToDelete += try PersistedMessageReceived.getAllReadOnceAndLimitedVisibilityReceivedMessagesToDelete(until: timestampOfLastMessageToWipe, within: obvContext.context) + } + + // Wipe messages + + var infos = [InfoAboutWipedOrDeletedPersistedMessage]() + for message in messagesToDelete { + guard !earlyAbortWipe else { break } + do { + let info = try message.deleteExpiredMessage() + infos += [info] + } catch { + assertionFailure(error.localizedDescription) + // In production, continue anyway + } + } + + // If the wipe was aborted early, we want to set an appropriate date in the user defaults. If not, we want to remove any prior date from the user defaults + + let userDefaults = self.userDefaults + let earlyAbortWipe = self.earlyAbortWipe + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + // The following dispatch queue allows to make sure we do not create a deadlock by modifying the user defaults: + // Since these defaults are observed by a coordinator that launches this operation again, we want to make sure the value changes on an independent queue. + DispatchQueue(label: "Queue created in WipeAllReadOnceAndLimitedVisibilityMessagesAfterLockOutOperation").async { + if earlyAbortWipe { + userDefaults?.setExtensionFailedToWipeAllEphemeralMessagesBeforeDate(with: timestampOfLastMessageToWipe) + } else { + userDefaults?.setExtensionFailedToWipeAllEphemeralMessagesBeforeDate(with: nil) } } - - // If the wipe was aborted early, we want to set an appropriate date in the user defaults. If not, we want to remove any prior date from the user defaults - - let userDefaults = self.userDefaults - let earlyAbortWipe = self.earlyAbortWipe + } + + // If we indeed deleted at least one message, we must refresh the view context + + if !infos.isEmpty { + let viewContext = self.viewContext try obvContext.addContextDidSaveCompletionHandler { error in guard error == nil else { return } - // The following dispatch queue allows to make sure we do not create a deadlock by modifying the user defaults: - // Since these defaults are observed by a coordinator that launches this operation again, we want to make sure the value changes on an independent queue. - DispatchQueue(label: "Queue created in WipeAllReadOnceAndLimitedVisibilityMessagesAfterLockOutOperation").async { - if earlyAbortWipe { - userDefaults?.setExtensionFailedToWipeAllEphemeralMessagesBeforeDate(with: timestampOfLastMessageToWipe) - } else { - userDefaults?.setExtensionFailedToWipeAllEphemeralMessagesBeforeDate(with: nil) - } - } - } - - // If we indeed deleted at least one message, we must refresh the view context - - if !infos.isEmpty { - let viewContext = self.viewContext - try obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { return } - // We deleted some persisted messages. We notify about that. - - InfoAboutWipedOrDeletedPersistedMessage.notifyThatMessagesWereWipedOrDeleted(infos) - - // Refresh objects in the view context - - if let viewContext = viewContext { - InfoAboutWipedOrDeletedPersistedMessage.refresh(viewContext: viewContext, infos) - } + // We deleted some persisted messages. We notify about that. + + InfoAboutWipedOrDeletedPersistedMessage.notifyThatMessagesWereWipedOrDeleted(infos) + + // Refresh objects in the view context + + if let viewContext = viewContext { + InfoAboutWipedOrDeletedPersistedMessage.refresh(viewContext: viewContext, infos) } } - - } catch { - return cancel(withReason: .coreDataError(error: error)) } + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeExpiredMessagesOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeExpiredMessagesOperation.swift index c05b4bf1..da86da22 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeExpiredMessagesOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeExpiredMessagesOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -35,77 +35,69 @@ final class WipeExpiredMessagesOperation: ContextualOperationWithSpecificReasonF super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + var infos = [InfoAboutWipedOrDeletedPersistedMessage]() - obvContext.performAndWait { - - var infos = [InfoAboutWipedOrDeletedPersistedMessage]() - - // Deal with sent messages - - do { - let now = Date() - let expiredMessages = try PersistedMessageSent.getSentMessagesThatExpired(before: now, within: obvContext.context) - for message in expiredMessages { - if let expirationForSentLimitedExistence = message.expirationForSentLimitedExistence, expirationForSentLimitedExistence.expirationDate < now { - let info = try message.delete(requester: nil) + // Deal with sent messages + + do { + let now = Date() + let expiredMessages = try PersistedMessageSent.getSentMessagesThatExpired(before: now, within: obvContext.context) + for message in expiredMessages { + if let expirationForSentLimitedExistence = message.expirationForSentLimitedExistence, expirationForSentLimitedExistence.expirationDate < now { + let info = try message.deleteExpiredMessage() + infos += [info] + } else if let expirationForSentLimitedVisibility = message.expirationForSentLimitedVisibility, expirationForSentLimitedVisibility.expirationDate < now { + do { + let info = try message.wipeOrDeleteExpiredMessageSent() infos += [info] - } else if let expirationForSentLimitedVisibility = message.expirationForSentLimitedVisibility, expirationForSentLimitedVisibility.expirationDate < now { - do { - let info = try message.wipeOrDelete(requester: nil) - infos += [info] - } catch { - os_log("Could not wipe a message sent with expired visibility", log: log, type: .fault) - assertionFailure() - // Continue anyway - } - } else { - assertionFailure("A message that we fetched because it expired has not expiration before now. Weird.") + } catch { + os_log("Could not wipe a message sent with expired visibility", log: log, type: .fault) + assertionFailure() + // Continue anyway } + } else { + assertionFailure("A message that we fetched because it expired has not expiration before now. Weird.") } - } catch { - cancel(withReason: .coreDataError(error: error)) - return } - - // Deal with received messages - - do { - let expiredMessages = try PersistedMessageReceived.getReceivedMessagesThatExpired(within: obvContext.context) - for message in expiredMessages { - let info = try message.delete(requester: nil) - infos += [info] - } - } catch { - cancel(withReason: .coreDataError(error: error)) - return + } catch { + cancel(withReason: .coreDataError(error: error)) + return + } + + // Deal with received messages + + do { + let expiredMessages = try PersistedMessageReceived.getReceivedMessagesThatExpired(within: obvContext.context) + for message in expiredMessages { + let info = try message.deleteExpiredMessage() + infos += [info] } - - // Notify on context save - - do { - if !infos.isEmpty { - try obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { return } - // We wiped/deleted some persisted messages. We notify about that. - - InfoAboutWipedOrDeletedPersistedMessage.notifyThatMessagesWereWipedOrDeleted(infos) - - // Refresh objects in the view context - - if let viewContext = self.viewContext { - InfoAboutWipedOrDeletedPersistedMessage.refresh(viewContext: viewContext, infos) - } + } catch { + cancel(withReason: .coreDataError(error: error)) + return + } + + // Notify on context save + + do { + if !infos.isEmpty { + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + // We wiped/deleted some persisted messages. We notify about that. + + InfoAboutWipedOrDeletedPersistedMessage.notifyThatMessagesWereWipedOrDeleted(infos) + + // Refresh objects in the view context + + if let viewContext = self.viewContext { + InfoAboutWipedOrDeletedPersistedMessage.refresh(viewContext: viewContext, infos) } } - } catch { - return cancel(withReason: .coreDataError(error: error)) } - + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeFyleMessageJoinsWithStatusOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeFyleMessageJoinsWithStatusOperation.swift index ae67ab45..47137484 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeFyleMessageJoinsWithStatusOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeFyleMessageJoinsWithStatusOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -21,101 +21,130 @@ import Foundation import OlvidUtils import ObvUICoreData +import ObvTypes +import CoreData /// This operation is typically called when the user selects several "attachments" (more precisely, `FyleMessageJoinWithStatus` instances) in the gallery of a discussion, and then requests their deletion. In practice, these joins are wiped. -final class WipeFyleMessageJoinsWithStatusOperation: ContextualOperationWithSpecificReasonForCancel, OperationProvidingPersistedMessageObjectIDsToDelete, ObvErrorMaker { +final class WipeFyleMessageJoinsWithStatusOperation: ContextualOperationWithSpecificReasonForCancel, OperationProvidingPersistedMessageObjectIDsToDelete { private let joinObjectIDs: Set> - static let errorDomain = "WipeFyleMessageJoinsWithStatusOperation" /// When wiping an attachment (aka `FyleMessageJoinWithStatus`), we might end with an "empty" message. In that case we want to delete this message atomically. /// We do *not* delete this message in this operation. Instead we add its objectID to this set. The coordinator is in charge of queueing the appropriate operation that will delete /// the message properly. private(set) var persistedMessageObjectIDsToDelete = Set>() - let requester: RequesterOfMessageDeletion + let ownedCryptoId: ObvCryptoId + let deletionType: DeletionType private let queueForPostingNotifications = DispatchQueue(label: "WipeFyleMessageJoinsWithStatusOperation internal queue for posting notifications") - init(joinObjectIDs: Set>, requester: RequesterOfMessageDeletion) { + init(joinObjectIDs: Set>, ownedCryptoId: ObvCryptoId, deletionType: DeletionType) { self.joinObjectIDs = joinObjectIDs - self.requester = requester + self.ownedCryptoId = ownedCryptoId + self.deletionType = deletionType super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - guard !joinObjectIDs.isEmpty else { return } - switch requester { - case .ownedIdentity: - break - case .contact: - assertionFailure() - return cancel(withReason: .coreDataError(error: Self.makeError(message: "Unexpected deletion requester"))) - } - - obvContext.performAndWait { + do { - do { + for joinObjectID in joinObjectIDs { - for joinObjectID in joinObjectIDs { - - guard let join = try FyleMessageJoinWithStatus.get(objectID: joinObjectID.objectID, within: obvContext.context) else { continue } - - if let sentJoin = join as? SentFyleMessageJoinWithStatus { - do { - try sentJoin.wipe() - if sentJoin.sentMessage.shouldBeDeleted { - persistedMessageObjectIDsToDelete.insert(sentJoin.sentMessage.typedObjectID.downcast) - } - } catch { - assertionFailure() - continue + guard let join = try FyleMessageJoinWithStatus.get(objectID: joinObjectID.objectID, within: obvContext.context) else { continue } + + var messagesToRefreshInViewContext = Set>() + + if let sentJoin = join as? SentFyleMessageJoinWithStatus { + do { + try sentJoin.wipe() + if sentJoin.sentMessage.shouldBeDeleted { + persistedMessageObjectIDsToDelete.insert(sentJoin.sentMessage.typedObjectID.downcast) + } else { + messagesToRefreshInViewContext.insert(sentJoin.sentMessage.typedObjectID.downcast) } - } else if let receivedJoin = join as? ReceivedFyleMessageJoinWithStatus { - do { - try receivedJoin.wipe() - if receivedJoin.receivedMessage.shouldBeDeleted { - persistedMessageObjectIDsToDelete.insert(receivedJoin.receivedMessage.typedObjectID.downcast) - } - } catch { - assertionFailure() - continue + } catch { + assertionFailure() + continue + } + } else if let receivedJoin = join as? ReceivedFyleMessageJoinWithStatus { + do { + try receivedJoin.wipe() + if receivedJoin.receivedMessage.shouldBeDeleted { + persistedMessageObjectIDsToDelete.insert(receivedJoin.receivedMessage.typedObjectID.downcast) + } else { + messagesToRefreshInViewContext.insert(receivedJoin.receivedMessage.typedObjectID.downcast) } - } else { - assertionFailure("Unexpected FyleMessageJoinWithStatus subclass") + } catch { + assertionFailure() continue } - - // If the context is successfully saved, we want to notify that the join was wiped (so as to deleted hard links) - - if let discussionPermanentID = join.message?.discussion.discussionPermanentID, - let messagePermanentID = join.message?.messagePermanentID { - let fyleMessageJoinPermanentID = join.fyleMessageJoinPermanentID - do { - let queueForPostingNotifications = self.queueForPostingNotifications - try obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { return } - ObvMessengerInternalNotification.fyleMessageJoinWasWiped(discussionPermanentID: discussionPermanentID, - messagePermanentID: messagePermanentID, - fyleMessageJoinPermanentID: fyleMessageJoinPermanentID) - .postOnDispatchQueue(queueForPostingNotifications) + } else { + assertionFailure("Unexpected FyleMessageJoinWithStatus subclass") + continue + } + + // If the context is successfully saved, we want to notify that the join was wiped (so as to deleted hard links) + + if let discussionPermanentID = join.message?.discussion?.discussionPermanentID, + let messagePermanentID = join.message?.messagePermanentID { + let fyleMessageJoinPermanentID = join.fyleMessageJoinPermanentID + do { + let queueForPostingNotifications = self.queueForPostingNotifications + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + ObvMessengerInternalNotification.fyleMessageJoinWasWiped(discussionPermanentID: discussionPermanentID, + messagePermanentID: messagePermanentID, + fyleMessageJoinPermanentID: fyleMessageJoinPermanentID) + .postOnDispatchQueue(queueForPostingNotifications) + } + } catch { + assertionFailure() // Continue anyway + } + } + + // Since we modified attachments, we probably need to refresh their associated messages. + // All the messages that need to be refreshed in the view context are indicated in messagesToRefreshInViewContext. + // In the following completion handler, we look for those that are indeed registered in the view context and refresh them. + // If a refreshed message is an illustrative message for a discussion (and, as such, does appear in the list of recent discussions), + // we also refresh the associated discussion. + + if !messagesToRefreshInViewContext.isEmpty { + do { + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + ObvStack.shared.viewContext.perform { + let messagesInViewContext = ObvStack.shared.viewContext.registeredObjects + .filter({ !$0.isDeleted }) + .compactMap({ $0 as? PersistedMessage }) + .filter({ messagesToRefreshInViewContext.contains($0.typedObjectID) }) + for message in messagesInViewContext { + ObvStack.shared.viewContext.refresh(message, mergeChanges: false) + if let discussion = message.discussion, discussion.illustrativeMessage == message { + // The refreshed message is the illustrative message of its discussion. If that discussion is registered in the view context, we refresh it. + if let discussionInViewContext = ObvStack.shared.viewContext.registeredObjects + .filter({ !$0.isDeleted }) + .first(where: { $0.objectID == discussion.objectID }) { + ObvStack.shared.viewContext.refresh(discussionInViewContext, mergeChanges: false) + } + + } + } } - } catch { - assertionFailure() // Continue anyway } + } catch { + assertionFailure() // Continue anyway } - } - } catch { - return cancel(withReason: .coreDataError(error: error)) } + + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeMessagesOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeMessagesOperation.swift deleted file mode 100644 index e9ddefbd..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeMessagesOperation.swift +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import os.log -import ObvEngine -import ObvTypes -import OlvidUtils -import ObvCrypto -import ObvUICoreData - - -/// This method is typically called when we receive a request to delete some messages by a contact willing to globally delete these messages -final class WipeMessagesOperation: ContextualOperationWithSpecificReasonForCancel { - - private let groupIdentifier: GroupIdentifier? - private let messagesToDelete: [MessageReferenceJSON] - private let requester: ObvContactIdentity - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: WipeMessagesOperation.self)) - private let saveRequestIfMessageCannotBeFound: Bool - private let messageUploadTimestampFromServer: Date - - init(messagesToDelete: [MessageReferenceJSON], groupIdentifier: GroupIdentifier?, requester: ObvContactIdentity, messageUploadTimestampFromServer: Date, saveRequestIfMessageCannotBeFound: Bool) { - self.messagesToDelete = messagesToDelete - self.groupIdentifier = groupIdentifier - self.requester = requester - self.saveRequestIfMessageCannotBeFound = saveRequestIfMessageCannotBeFound - self.messageUploadTimestampFromServer = messageUploadTimestampFromServer - super.init() - } - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - guard !messagesToDelete.isEmpty else { assertionFailure(); return } - - obvContext.performAndWait { - - // Get the contact and the owned identities - - let contact: PersistedObvContactIdentity - do { - do { - guard let _contact = try PersistedObvContactIdentity.get(persisted: requester, whereOneToOneStatusIs: .any, within: obvContext.context) else { - return cancel(withReason: .couldNotFindContact) - } - contact = _contact - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - } - - guard let ownedIdentity = contact.ownedIdentity else { - return cancel(withReason: .couldNotFindOwnedIdentity) - } - - // Recover the appropriate discussion. In case of a group discussion, make sure the contact is part of the group - - let discussion: PersistedDiscussion - do { - if let groupIdentifier = self.groupIdentifier { - switch groupIdentifier { - case .groupV1(let groupV1Identifier): - guard let group = try PersistedContactGroup.getContactGroup(groupId: groupV1Identifier, ownedIdentity: ownedIdentity) else { - return cancel(withReason: .couldNotFindGroupDiscussion) - } - guard group.contactIdentities.contains(contact) || group.ownerIdentity == requester.cryptoId.getIdentity() else { - return cancel(withReason: .wipeRequestedByNonGroupMember) - } - discussion = group.discussion - case .groupV2(let groupV2Identifier): - guard let group = try PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: groupV2Identifier) else { - return cancel(withReason: .couldNotFindGroupDiscussion) - } - guard let requester = group.otherMembers.first(where: { $0.identity == requester.cryptoId.getIdentity() }) else { - return cancel(withReason: .wipeRequestedByNonGroupMember) - } - guard requester.isAllowedToRemoteDeleteAnything || requester.isAllowedToEditOrRemoteDeleteOwnMessages else { - assertionFailure() - return cancel(withReason: .wipeRequestedByMemberNotAllowedToRemoteDelete) - } - guard let _discussion = group.discussion else { - return cancel(withReason: .couldNotFindGroupDiscussion) - } - discussion = _discussion - } - } else if let oneToOneDiscussion = contact.oneToOneDiscussion { - discussion = oneToOneDiscussion - } else { - return cancel(withReason: .couldNotFindDiscussion) - } - } catch { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) - } - - // Get the sent messages to wipe - - let sentMessagesToWipe = messagesToDelete - .filter({ $0.senderIdentifier == ownedIdentity.cryptoId.getIdentity() }) - .compactMap({ - try? PersistedMessageSent.get(senderSequenceNumber: $0.senderSequenceNumber, - senderThreadIdentifier: $0.senderThreadIdentifier, - ownedIdentity: $0.senderIdentifier, - discussion: discussion) - }) - - // Get received messages to wipe. If a message cannot be found, save the request for later if `saveRequestIfMessageCannotBeFound` is true - - var receivedMessagesToWipe = [PersistedMessageReceived]() - do { - let receivedMessages = messagesToDelete - .filter({ $0.senderIdentifier != ownedIdentity.cryptoId.getIdentity() }) - for receivedMessage in receivedMessages { - if let persistedMessageReceived = try PersistedMessageReceived.get(senderSequenceNumber: receivedMessage.senderSequenceNumber, - senderThreadIdentifier: receivedMessage.senderThreadIdentifier, - contactIdentity: receivedMessage.senderIdentifier, - discussion: discussion) { - receivedMessagesToWipe.append(persistedMessageReceived) - } else if saveRequestIfMessageCannotBeFound { - _ = try RemoteDeleteAndEditRequest.createDeleteRequest(remoteDeleterIdentity: requester.cryptoId.getIdentity(), - messageReference: receivedMessage, - serverTimestamp: messageUploadTimestampFromServer, - discussion: discussion) - } - } - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - // Wipe each message and notify on context change - - var infos = [InfoAboutWipedOrDeletedPersistedMessage]() - - for message in sentMessagesToWipe { - let requesterOfDeletion = RequesterOfMessageDeletion.contact(ownedCryptoId: ownedIdentity.cryptoId, - contactCryptoId: contact.cryptoId, - messageUploadTimestampFromServer: messageUploadTimestampFromServer) - if let info = try? message.wipeOrDelete(requester: requesterOfDeletion) { - infos.append(info) - } - } - - for message in receivedMessagesToWipe { - if let info = try? message.wipeByContact(ownedCryptoId: ownedIdentity.cryptoId, - contactCryptoId: contact.cryptoId, - messageUploadTimestampFromServer: messageUploadTimestampFromServer) { - infos.append(info) - } - } - - // We notify on context save - - do { - if let viewContext, !infos.isEmpty { - try obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { return } - // We wiped/deleted some persisted messages. We notify about that. - - InfoAboutWipedOrDeletedPersistedMessage.notifyThatMessagesWereWipedOrDeleted(infos) - - // Refresh objects in the view context - InfoAboutWipedOrDeletedPersistedMessage.refresh(viewContext: viewContext, infos) - } - } - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - } - - } -} - - -enum WipeMessagesOperationReasonForCancel: LocalizedErrorWithLogType { - - case coreDataError(error: Error) - case contextIsNil - case couldNotFindOwnedIdentity - case couldNotFindGroupDiscussion - case couldNotFindContact - case wipeRequestedByNonGroupMember - case wipeRequestedByMemberNotAllowedToRemoteDelete - case couldNotFindDiscussion - - var logType: OSLogType { - switch self { - case .wipeRequestedByMemberNotAllowedToRemoteDelete: - return .error - case .coreDataError, .couldNotFindOwnedIdentity, .couldNotFindGroupDiscussion, .couldNotFindContact, .wipeRequestedByNonGroupMember, .contextIsNil, .couldNotFindDiscussion: - return .fault - } - } - - var errorDescription: String? { - switch self { - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .contextIsNil: - return "The context is not set" - case .couldNotFindOwnedIdentity: - return "Could not find owned identity" - case .couldNotFindGroupDiscussion: - return "Could not find group discussion" - case .couldNotFindContact: - return "Could not find the contact identity" - case .wipeRequestedByNonGroupMember: - return "The message wipe was requested by a contact that is not part of the group" - case .couldNotFindDiscussion: - return "Could not find discussion" - case .wipeRequestedByMemberNotAllowedToRemoteDelete: - return "The message wipe was requested by a member who is not allowed to perform remote delete" - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeOrDeleteReadOnceMessagesOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeOrDeleteReadOnceMessagesOperation.swift index e12161c5..3fbbac94 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeOrDeleteReadOnceMessagesOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeOrDeleteReadOnceMessagesOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -43,85 +43,77 @@ final class WipeOrDeleteReadOnceMessagesOperation: ContextualOperationWithSpecif super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) + // We deal with sent messages + + let sentMessages: [PersistedMessageSent] + do { + sentMessages = try PersistedMessageSent.getReadOnceThatWasSent( + restrictToDiscussionWithPermanentID: restrictToDiscussionWithPermanentID, + within: obvContext.context) + } catch { + os_log("Could not get all readOnce sent messages that should be deleted: %{public}@", log: log, type: .fault, error.localizedDescription) + assertionFailure() + cancel(withReason: .coreDataError(error: error)) + return } - obvContext.performAndWait { - - // We deal with sent messages + var infos = [InfoAboutWipedOrDeletedPersistedMessage]() + + for sentMessage in sentMessages { + do { + let info = try sentMessage.wipeOrDeleteExpiredMessageSent() + infos += [info] + } catch { + os_log("Could not wipe readOnce sent message: %{public}@", log: log, type: .fault, error.localizedDescription) + } + } + + // We deal with received messages + + if !preserveReceivedMessages { - let sentMessages: [PersistedMessageSent] + let receivedMessages: [PersistedMessageReceived] do { - sentMessages = try PersistedMessageSent.getReadOnceThatWasSent( + receivedMessages = try PersistedMessageReceived.getReadOnceMarkedAsRead( restrictToDiscussionWithPermanentID: restrictToDiscussionWithPermanentID, within: obvContext.context) } catch { - os_log("Could not get all readOnce sent messages that should be deleted: %{public}@", log: log, type: .fault, error.localizedDescription) + os_log("Could not get all readOnce received messages that should be deleted: %{public}@", log: log, type: .fault, error.localizedDescription) assertionFailure() cancel(withReason: .coreDataError(error: error)) return } - - var infos = [InfoAboutWipedOrDeletedPersistedMessage]() - - for sentMessage in sentMessages { - do { - let info = try sentMessage.wipeOrDelete(requester: nil) - infos += [info] - } catch { - os_log("Could not wipe readOnce sent message: %{public}@", log: log, type: .fault, error.localizedDescription) - } - } - - // We deal with received messages - if !preserveReceivedMessages { - - let receivedMessages: [PersistedMessageReceived] + for receivedMessage in receivedMessages { do { - receivedMessages = try PersistedMessageReceived.getReadOnceMarkedAsRead( - restrictToDiscussionWithPermanentID: restrictToDiscussionWithPermanentID, - within: obvContext.context) + let info = try receivedMessage.deleteExpiredMessage() + infos += [info] } catch { - os_log("Could not get all readOnce received messages that should be deleted: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - cancel(withReason: .coreDataError(error: error)) - return - } - - for receivedMessage in receivedMessages { - do { - let info = try receivedMessage.delete(requester: nil) - infos += [info] - } catch { - os_log("Could not delete readOnce received message: %{public}@", log: log, type: .fault, error.localizedDescription) - } + os_log("Could not delete readOnce received message: %{public}@", log: log, type: .fault, error.localizedDescription) } } - - // We notify on context save - - do { - if !infos.isEmpty { - try obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { return } - // We wiped/deleted some persisted messages. We notify about that. - - InfoAboutWipedOrDeletedPersistedMessage.notifyThatMessagesWereWipedOrDeleted(infos) - - // Refresh objects in the view context - if let viewContext = self.viewContext { - InfoAboutWipedOrDeletedPersistedMessage.refresh(viewContext: viewContext, infos) - } + } + + // We notify on context save + + do { + if !infos.isEmpty { + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + // We wiped/deleted some persisted messages. We notify about that. + + InfoAboutWipedOrDeletedPersistedMessage.notifyThatMessagesWereWipedOrDeleted(infos) + + // Refresh objects in the view context + if let viewContext = self.viewContext { + InfoAboutWipedOrDeletedPersistedMessage.refresh(viewContext: viewContext, infos) } } - } catch { - return cancel(withReason: .coreDataError(error: error)) } - + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/DetermineDiscussionForReportingCallOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/DetermineDiscussionForReportingCallOperation.swift index 281260ae..403896ca 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/DetermineDiscussionForReportingCallOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/DetermineDiscussionForReportingCallOperation.swift @@ -21,6 +21,7 @@ import Foundation import OlvidUtils import os.log import ObvUICoreData +import CoreData final class DetermineDiscussionForReportingCallOperation: ContextualOperationWithSpecificReasonForCancel, OperationProvidingPersistedDiscussion { @@ -34,67 +35,59 @@ final class DetermineDiscussionForReportingCallOperation: ContextualOperationWit super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + do { - do { - - guard let item = try PersistedCallLogItem.get(objectID: persistedCallLogItemObjectID, within: obvContext.context) else { - return cancel(withReason: .cannotFindPersistedCallLogItem) + guard let item = try PersistedCallLogItem.get(objectID: persistedCallLogItemObjectID, within: obvContext.context) else { + return cancel(withReason: .cannotFindPersistedCallLogItem) + } + + if let groupId = try item.getGroupIdentifier() { + switch groupId { + case .groupV1(let objectID): + guard let contactGroup = try PersistedContactGroup.get(objectID: objectID.objectID, within: obvContext.context) else { + return cancel(withReason: .cannotFindPersistedContactGroup) + } + persistedDiscussionObjectID = contactGroup.discussion.typedObjectID.downcast + return + case .groupV2(let objectID): + guard let group = try PersistedGroupV2.get(objectID: objectID, within: obvContext.context) else { + return cancel(withReason: .cannotFindPersistedGroupV2) + } + guard let discussion = group.discussion else { + return cancel(withReason: .cannotFindPersistedGroupV2Discussion) + } + persistedDiscussionObjectID = discussion.typedObjectID.downcast + return } - - if let groupId = try item.getGroupIdentifier() { - switch groupId { - case .groupV1(let objectID): - guard let contactGroup = try PersistedContactGroup.get(objectID: objectID.objectID, within: obvContext.context) else { - return cancel(withReason: .cannotFindPersistedContactGroup) - } - persistedDiscussionObjectID = contactGroup.discussion.typedObjectID.downcast - return - case .groupV2(let objectID): - guard let group = try PersistedGroupV2.get(objectID: objectID, within: obvContext.context) else { - return cancel(withReason: .cannotFindPersistedGroupV2) - } - guard let discussion = group.discussion else { - return cancel(withReason: .cannotFindPersistedGroupV2Discussion) - } - persistedDiscussionObjectID = discussion.typedObjectID.downcast - return + } else { + if item.isIncoming { + guard let caller = item.logContacts.first(where: {$0.isCaller}), + let callerIdentity = caller.contactIdentity else { + return cancel(withReason: .cannotFindCaller) } - } else { - if item.isIncoming { - guard let caller = item.logContacts.first(where: {$0.isCaller}), - let callerIdentity = caller.contactIdentity else { - return cancel(withReason: .cannotFindCaller) - } - if let oneToOneDiscussion = callerIdentity.oneToOneDiscussion { - persistedDiscussionObjectID = oneToOneDiscussion.typedObjectID.downcast - return - } else { - // Do not report this call. - return - } - } else if item.logContacts.count == 1, - let contact = item.logContacts.first, - let contactIdentity = contact.contactIdentity, - let oneToOneDiscussion = contactIdentity.oneToOneDiscussion { + if let oneToOneDiscussion = callerIdentity.oneToOneDiscussion { persistedDiscussionObjectID = oneToOneDiscussion.typedObjectID.downcast + return } else { // Do not report this call. return } - + } else if item.logContacts.count == 1, + let contact = item.logContacts.first, + let contactIdentity = contact.contactIdentity, + let oneToOneDiscussion = contactIdentity.oneToOneDiscussion { + persistedDiscussionObjectID = oneToOneDiscussion.typedObjectID.downcast + } else { + // Do not report this call. + return } - } catch { - return cancel(withReason: .coreDataError(error: error)) } + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/AddReplyToOnDraftOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/AddReplyToOnDraftOperation.swift index f55e9ad2..07729cde 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/AddReplyToOnDraftOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/AddReplyToOnDraftOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,7 @@ import OlvidUtils import os.log import CoreData import ObvUICoreData +import CoreData final class AddReplyToOnDraftOperation: ContextualOperationWithSpecificReasonForCancel { @@ -36,30 +37,24 @@ final class AddReplyToOnDraftOperation: ContextualOperationWithSpecificReasonFor } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - do { - guard let draft = try PersistedDraft.get(objectID: draftObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDraftInDatabase) - } - guard let repliedTo = try PersistedMessage.get(with: messageObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindMessageInDatabase) - } - guard draft.discussion == repliedTo.discussion else { - return cancel(withReason: .incoherentDiscussion) - } - guard repliedTo is PersistedMessageReceived || repliedTo is PersistedMessageSent else { - return cancel(withReason: .repliedToMessageIsNeitherSentOrReceived) - } - draft.setReplyTo(to: repliedTo) - } catch { - return cancel(withReason: .coreDataError(error: error)) + do { + guard let draft = try PersistedDraft.get(objectID: draftObjectID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindDraftInDatabase) + } + guard let repliedTo = try PersistedMessage.get(with: messageObjectID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindMessageInDatabase) + } + guard draft.discussion == repliedTo.discussion else { + return cancel(withReason: .incoherentDiscussion) + } + guard repliedTo is PersistedMessageReceived || repliedTo is PersistedMessageSent else { + return cancel(withReason: .repliedToMessageIsNeitherSentOrReceived) } + draft.setReplyTo(to: repliedTo) + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/DeleteAllDraftFyleJoinOfDraftOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/DeleteAllDraftFyleJoinOfDraftOperation.swift index c3c01a0e..cbe806be 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/DeleteAllDraftFyleJoinOfDraftOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/DeleteAllDraftFyleJoinOfDraftOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -35,23 +35,17 @@ final class DeleteAllDraftFyleJoinOfDraftOperation: ContextualOperationWithSpeci super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - guard let draft = try PersistedDraft.get(objectID: draftObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDraftInDatabase) - } - draft.removeAllDraftFyleJoin() - } catch { - return cancel(withReason: .coreDataError(error: error)) + do { + guard let draft = try PersistedDraft.get(objectID: draftObjectID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindDraftInDatabase) } + draft.removeAllDraftFyleJoin() + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/DeleteDraftFyleJoin.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/DeleteDraftFyleJoin.swift index 9f397e4b..66bcca96 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/DeleteDraftFyleJoin.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/DeleteDraftFyleJoin.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/LoadFileRepresentationsThenCreateDraftFyleJoinsCompositeOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/LoadFileRepresentationsThenCreateDraftFyleJoinsCompositeOperation.swift index fa926bc5..c0fa6713 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/LoadFileRepresentationsThenCreateDraftFyleJoinsCompositeOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/LoadFileRepresentationsThenCreateDraftFyleJoinsCompositeOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import os.log import CoreData import ObvCrypto import ObvUICoreData +import UniformTypeIdentifiers /// This is a legacy operation, use `NewLoadFileRepresentationsThenCreateDraftFyleJoinsCompositeOperation` instead @@ -116,7 +117,7 @@ fileprivate final class CreateDraftFyleJoinsFromLoadedFileRepresentationsOperati switch loadedItemProvider { - case .file(tempURL: let tempURL, uti: let uti, filename: let filename): + case .file(tempURL: let tempURL, fileType: let fileType, filename: let filename): // Compute the sha256 of the file let sha256: Data @@ -137,7 +138,7 @@ fileprivate final class CreateDraftFyleJoinsFromLoadedFileRepresentationsOperati // Create a PersistedDraftFyleJoin (if required) do { - try createDraftFyleJoin(draftPermanentID: draftPermanentID, fileName: filename, uti: uti, fyle: fyle, within: context) + try createDraftFyleJoin(draftPermanentID: draftPermanentID, fileName: filename, fileType: fileType, fyle: fyle, within: context) } catch { cancelAndContinue(withReason: .couldNotCreateDraftFyleJoin) tempURLsToDelete.append(tempURL) @@ -195,9 +196,9 @@ fileprivate final class CreateDraftFyleJoinsFromLoadedFileRepresentationsOperati } - private func createDraftFyleJoin(draftPermanentID: ObvManagedObjectPermanentID, fileName: String, uti: String, fyle: Fyle, within context: NSManagedObjectContext) throws { + private func createDraftFyleJoin(draftPermanentID: ObvManagedObjectPermanentID, fileName: String, fileType: UTType, fyle: Fyle, within context: NSManagedObjectContext) throws { if try PersistedDraftFyleJoin.get(draftPermanentID: draftPermanentID, fyleObjectID: fyle.objectID, within: context) == nil { - guard PersistedDraftFyleJoin(draftPermanentID: draftPermanentID, fyleObjectID: fyle.objectID, fileName: fileName, uti: uti, within: context) != nil else { + guard PersistedDraftFyleJoin(draftPermanentID: draftPermanentID, fyleObjectID: fyle.objectID, fileName: fileName, uti: fileType.identifier, within: context) != nil else { throw makeError(message: "Could not create PersistedDraftFyleJoin") } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/NewCreateDraftFyleJoinsFromLoadedFileRepresentationsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/NewCreateDraftFyleJoinsFromLoadedFileRepresentationsOperation.swift index 40f77265..269d5617 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/NewCreateDraftFyleJoinsFromLoadedFileRepresentationsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/NewCreateDraftFyleJoinsFromLoadedFileRepresentationsOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,7 @@ import ObvEngine import ObvCrypto import ObvUICoreData import OlvidUtils +import UniformTypeIdentifiers /// This operation takes an array of loaded file representations as an input. This array is typically the output of a several `LoadFileRepresentationOperation` operations. @@ -69,13 +70,7 @@ final class NewCreateDraftFyleJoinsFromLoadedFileRepresentationsOperation: Conte super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - assertionFailure() - completionHandler?(false) - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { let loadedItemProviders: [LoadedItemProvider] switch loadedItemProvidersType { @@ -85,123 +80,120 @@ final class NewCreateDraftFyleJoinsFromLoadedFileRepresentationsOperation: Conte assert(operations.allSatisfy({$0.isFinished})) loadedItemProviders = operations.compactMap({ $0.loadedItemProvider }) } - + // We add as many attachments as we can - obvContext.performAndWait { - - var tempURLsToDelete = [URL]() - - for loadedItemProvider in loadedItemProviders { + + var tempURLsToDelete = [URL]() + + for loadedItemProvider in loadedItemProviders { + + switch loadedItemProvider { - switch loadedItemProvider { + case .file(tempURL: let tempURL, fileType: let fileType, filename: let filename): - case .file(tempURL: let tempURL, uti: let uti, filename: let filename): - - // Compute the sha256 of the file - let sha256: Data - do { - sha256 = try Sha256.hash(fileAtUrl: tempURL) - } catch { - cancelAndContinue(withReason: .couldNotComputeSha256) - tempURLsToDelete.append(tempURL) - continue - } - - // Get or create a Fyle - guard let fyle: Fyle = try? Fyle.getOrCreate(sha256: sha256, within: obvContext.context) else { - cancelAndContinue(withReason: .couldNotGetOrCreateFyle) - tempURLsToDelete.append(tempURL) - continue - } - - // Create a PersistedDraftFyleJoin (if required) - do { - try createDraftFyleJoin(draftPermanentID: draftPermanentID, fileName: filename, uti: uti, fyle: fyle, within: obvContext.context) - } catch { - cancelAndContinue(withReason: .couldNotCreateDraftFyleJoin) - tempURLsToDelete.append(tempURL) - continue - } - - // We move the received file to a permanent location - - do { - try fyle.moveFileToPermanentURL(from: tempURL, logTo: log) - } catch { - cancelAndContinue(withReason: .couldNotMoveFileToPermanentURL(error: error)) - tempURLsToDelete.append(tempURL) - continue - } - - case .text(content: let textContent): - - let qBegin = Locale.current.quotationBeginDelimiter ?? "\"" - let qEnd = Locale.current.quotationEndDelimiter ?? "\"" - - let textToAppend = [qBegin, textContent, qEnd].joined(separator: "") - - guard let draft = try? PersistedDraft.getManagedObject(withPermanentID: draftPermanentID, within: obvContext.context) else { - cancelAndContinue(withReason: .couldNotGetDraft) - continue - } - - draft.appendContentToBody(textToAppend) - - case .url(content: let url): - - guard let draft = try? PersistedDraft.getManagedObject(withPermanentID: draftPermanentID, within: obvContext.context) else { - cancelAndContinue(withReason: .couldNotGetDraft) - continue - } - draft.appendContentToBody(url.absoluteString) - + // Compute the sha256 of the file + let sha256: Data + do { + sha256 = try Sha256.hash(fileAtUrl: tempURL) + } catch { + cancelAndContinue(withReason: .couldNotComputeSha256) + tempURLsToDelete.append(tempURL) + continue + } + + // Get or create a Fyle + guard let fyle: Fyle = try? Fyle.getOrCreate(sha256: sha256, within: obvContext.context) else { + cancelAndContinue(withReason: .couldNotGetOrCreateFyle) + tempURLsToDelete.append(tempURL) + continue + } + + // Create a PersistedDraftFyleJoin (if required) + do { + try createDraftFyleJoin(draftPermanentID: draftPermanentID, fileName: filename, fileType: fileType, fyle: fyle, within: obvContext.context) + } catch { + cancelAndContinue(withReason: .couldNotCreateDraftFyleJoin) + tempURLsToDelete.append(tempURL) + continue + } + + // We move the received file to a permanent location + + do { + try fyle.moveFileToPermanentURL(from: tempURL, logTo: log) + } catch { + cancelAndContinue(withReason: .couldNotMoveFileToPermanentURL(error: error)) + tempURLsToDelete.append(tempURL) + continue } + case .text(content: let textContent): + + let qBegin = Locale.current.quotationBeginDelimiter ?? "\"" + let qEnd = Locale.current.quotationEndDelimiter ?? "\"" + + let textToAppend = [qBegin, textContent, qEnd].joined(separator: "") + + guard let draft = try? PersistedDraft.getManagedObject(withPermanentID: draftPermanentID, within: obvContext.context) else { + cancelAndContinue(withReason: .couldNotGetDraft) + continue + } + + draft.appendContentToBody(textToAppend) + + case .url(content: let url): + + guard let draft = try? PersistedDraft.getManagedObject(withPermanentID: draftPermanentID, within: obvContext.context) else { + cancelAndContinue(withReason: .couldNotGetDraft) + continue + } + draft.appendContentToBody(url.absoluteString) + } - for urlToDelete in tempURLsToDelete { - try? urlToDelete.moveToTrash() - } - - if isCancelled { - completionHandler?(false) - } else { - let localCompletionHandler = self.completionHandler - if obvContext.context.hasChanges { - do { - let draftPermanentID = self.draftPermanentID - try obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { - localCompletionHandler?(false) - return - } - ObvStack.shared.viewContext.perform { - if let draftInViewContext = ObvStack.shared.viewContext.registeredObjects - .filter({ !$0.isDeleted }) - .first(where: { ($0 as? PersistedDraft)?.objectPermanentID == draftPermanentID }) { - ObvStack.shared.viewContext.refresh(draftInViewContext, mergeChanges: true) - } - localCompletionHandler?(true) + } + + for urlToDelete in tempURLsToDelete { + try? urlToDelete.moveToTrash() + } + + if isCancelled { + completionHandler?(false) + } else { + let localCompletionHandler = self.completionHandler + if obvContext.context.hasChanges { + do { + let draftPermanentID = self.draftPermanentID + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { + localCompletionHandler?(false) + return + } + ObvStack.shared.viewContext.perform { + if let draftInViewContext = ObvStack.shared.viewContext.registeredObjects + .filter({ !$0.isDeleted }) + .first(where: { ($0 as? PersistedDraft)?.objectPermanentID == draftPermanentID }) { + ObvStack.shared.viewContext.refresh(draftInViewContext, mergeChanges: true) } + localCompletionHandler?(true) } - } catch { - localCompletionHandler?(false) - } - } else { - obvContext.addEndOfScopeCompletionHandler { - localCompletionHandler?(true) } + } catch { + localCompletionHandler?(false) + } + } else { + obvContext.addEndOfScopeCompletionHandler { + localCompletionHandler?(true) } } - } - + } - private func createDraftFyleJoin(draftPermanentID: ObvManagedObjectPermanentID, fileName: String, uti: String, fyle: Fyle, within context: NSManagedObjectContext) throws { + private func createDraftFyleJoin(draftPermanentID: ObvManagedObjectPermanentID, fileName: String, fileType: UTType, fyle: Fyle, within context: NSManagedObjectContext) throws { if try PersistedDraftFyleJoin.get(draftPermanentID: draftPermanentID, fyleObjectID: fyle.objectID, within: context) == nil { - guard PersistedDraftFyleJoin(draftPermanentID: draftPermanentID, fyleObjectID: fyle.objectID, fileName: fileName, uti: uti, within: context) != nil else { + guard PersistedDraftFyleJoin(draftPermanentID: draftPermanentID, fyleObjectID: fyle.objectID, fileName: fileName, uti: fileType.identifier, within: context) != nil else { throw makeError(message: "Could not create PersistedDraftFyleJoin") } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/RemoveReplyToOnDraftOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/RemoveReplyToOnDraftOperation.swift index 6a618306..2b5951c8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/RemoveReplyToOnDraftOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/RemoveReplyToOnDraftOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -34,21 +34,15 @@ final class RemoveReplyToOnDraftOperation: ContextualOperationWithSpecificReason } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - guard let draft = try PersistedDraft.get(objectID: draftObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDraftInDatabase) - } - draft.removeReplyTo() - } catch { - return cancel(withReason: .coreDataError(error: error)) + do { + guard let draft = try PersistedDraft.get(objectID: draftObjectID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindDraftInDatabase) } + draft.removeReplyTo() + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/RequestedSendingOfDraftOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/RequestedSendingOfDraftOperation.swift index 1591d828..4d1ada3f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/RequestedSendingOfDraftOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/RequestedSendingOfDraftOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -33,24 +33,18 @@ final class RequestedSendingOfDraftOperation: ContextualOperationWithSpecificRea super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - guard let draft = try PersistedDraft.getManagedObject(withPermanentID: draftPermanentID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDraftInDatabase) - } - guard draft.isNotEmpty else { - return cancel(withReason: .draftIsEmpty) - } - draft.send() - } catch { - return cancel(withReason: .coreDataError(error: error)) + do { + guard let draft = try PersistedDraft.getManagedObject(withPermanentID: draftPermanentID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindDraftInDatabase) + } + guard draft.isNotEmpty else { + return cancel(withReason: .draftIsEmpty) } + draft.send() + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/SaveBodyTextAndMentionsOfPersistedDraftOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/SaveBodyTextAndMentionsOfPersistedDraftOperation.swift index 0f61de62..ed86540b 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/SaveBodyTextAndMentionsOfPersistedDraftOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/SaveBodyTextAndMentionsOfPersistedDraftOperation.swift @@ -42,24 +42,19 @@ final class SaveBodyTextAndMentionsOfPersistedDraftOperation: ContextualOperatio super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - guard let draft = try PersistedDraft.getManagedObject(withPermanentID: draftPermanentID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDraftInDatabase) - } - - draft.replaceContentWith(newBody: bodyText, newMentions: mentions) - - } catch { - return cancel(withReason: .coreDataError(error: error)) + do { + guard let draft = try PersistedDraft.getManagedObject(withPermanentID: draftPermanentID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindDraftInDatabase) } + + draft.replaceContentWith(newBody: bodyText, newMentions: mentions) + + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/UpdateDraftBodyAndMentionsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/UpdateDraftBodyAndMentionsOperation.swift index cda30152..e654c95d 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/UpdateDraftBodyAndMentionsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Drafts/UpdateDraftBodyAndMentionsOperation.swift @@ -39,24 +39,20 @@ final class UpdateDraftBodyAndMentionsOperation: ContextualOperationWithSpecific super.init() } - override func main() { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - - guard let draft = try PersistedDraft.get(objectID: draftObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDraft) - } - - draft.replaceContentWith(newBody: draftBody, newMentions: mentions) - - } catch { - return cancel(withReason: .coreDataError(error: error)) + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let draft = try PersistedDraft.get(objectID: draftObjectID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindDraft) } + + draft.replaceContentWith(newBody: draftBody, newMentions: mentions) + + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Editing sent message/EditTextBodyOfReceivedMessageOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Editing sent message/EditTextBodyOfReceivedMessageOperation.swift index 2bbe2aed..f804ce67 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Editing sent message/EditTextBodyOfReceivedMessageOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Editing sent message/EditTextBodyOfReceivedMessageOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,176 +27,143 @@ import ObvCrypto import ObvUICoreData -final class EditTextBodyOfReceivedMessageOperation: ContextualOperationWithSpecificReasonForCancel { +final class EditTextBodyOfReceivedMessageOperation: ContextualOperationWithSpecificReasonForCancel { - private let groupIdentifier: GroupIdentifier? - private let requester: ObvContactIdentity - private let newTextBody: String? - private let receivedMessageToEdit: MessageReferenceJSON + enum Requester { + case contact(contactIdentifier: ObvContactIdentifier) + case ownedIdentity(ownedCryptoId: ObvCryptoId) + } + + private let updateMessageJSON: UpdateMessageJSON + private let requester: Requester private let messageUploadTimestampFromServer: Date - private let saveRequestIfMessageCannotBeFound: Bool - private let newMentions: [MessageJSON.UserMention] - init(newTextBody: String?, requester: ObvContactIdentity, groupIdentifier: GroupIdentifier?, receivedMessageToEdit: MessageReferenceJSON, messageUploadTimestampFromServer: Date, saveRequestIfMessageCannotBeFound: Bool, newMentions: [MessageJSON.UserMention]) { - self.newTextBody = newTextBody - self.groupIdentifier = groupIdentifier + init(updateMessageJSON: UpdateMessageJSON, requester: Requester, messageUploadTimestampFromServer: Date) { self.requester = requester + self.updateMessageJSON = updateMessageJSON self.messageUploadTimestampFromServer = messageUploadTimestampFromServer - self.receivedMessageToEdit = receivedMessageToEdit - self.saveRequestIfMessageCannotBeFound = saveRequestIfMessageCannotBeFound - self.newMentions = newMentions super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + + enum Result { + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case processed + } - obvContext.performAndWait { + private(set) var result: Result? + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { - // Get the contact and the owned identities + let updatedMessage: PersistedMessage? - let contact: PersistedObvContactIdentity - do { - do { - guard let _contact = try PersistedObvContactIdentity.get(persisted: requester, whereOneToOneStatusIs: .any, within: obvContext.context) else { - return cancel(withReason: .couldNotFindContact) - } - contact = _contact - } catch { - return cancel(withReason: .coreDataError(error: error)) + switch requester { + + case .contact(contactIdentifier: let contactIdentifier): + + // Get the PersistedObvContactIdentity who requested the edit + + guard let contact = try PersistedObvContactIdentity.get(persisted: contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) else { + return cancel(withReason: .couldNotFindContact) } + + // Process the edit request. If the message is updated, the call returns this updated message + + updatedMessage = try contact.processUpdateMessageRequestFromThisContact( + updateMessageJSON: updateMessageJSON, + messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + case .ownedIdentity(ownedCryptoId: let ownedCryptoId): + + // Get the PersistedObvContactIdentity who requested the edit + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + // Process the edit request. If the message is updated, the call returns this updated message + + updatedMessage = try ownedIdentity.processUpdateMessageRequestFromThisOwnedIdentity( + updateMessageJSON: updateMessageJSON, + messageUploadTimestampFromServer: messageUploadTimestampFromServer) + } - guard let ownedIdentity = contact.ownedIdentity else { - return cancel(withReason: .couldNotFindOwnedIdentity) - } - - // Make sure the requester is the one indicated as the identity of the MessageReferenceJSON - - guard contact.cryptoId.getIdentity() == receivedMessageToEdit.senderIdentifier else { - return cancel(withReason: .requesterIsNotTheOneWhoSentTheOriginalMessage) - } - - // Recover the appropriate discussion - - let discussion: PersistedDiscussion - do { - switch groupIdentifier { - case .none: - guard let oneToOneDiscussion = contact.oneToOneDiscussion else { - return cancel(withReason: .couldNotFindAnyDiscussion) - } - discussion = oneToOneDiscussion - case .groupV1(groupV1Identifier: let groupV1Identifier): - guard let group = try PersistedContactGroup.getContactGroup(groupId: groupV1Identifier, ownedIdentity: ownedIdentity) else { - return cancel(withReason: .couldNotFindGroupDiscussion) - } - discussion = group.discussion - case .groupV2(groupV2Identifier: let groupV2Identifier): - guard let group = try PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: groupV2Identifier) else { - return cancel(withReason: .couldNotFindGroupDiscussion) - } - guard let _discussion = group.discussion else { - return cancel(withReason: .couldNotFindAnyDiscussion) - } - discussion = _discussion - } - } catch { - return cancel(withReason: .coreDataError(error: error)) - } + result = .processed - // If the message to edit can be found, edit it. If not save the request for later if `saveRequestIfMessageCannotBeFound` is true + // If the message appears as a reply-to in some other messages, we must refresh those messages in the view context + // Similarly, if a draft is replying to this message, we must refresh the draft in the view context - do { - if let receivedMessage = try PersistedMessageReceived.get(senderSequenceNumber: receivedMessageToEdit.senderSequenceNumber, - senderThreadIdentifier: receivedMessageToEdit.senderThreadIdentifier, - contactIdentity: contact.cryptoId.getIdentity(), - discussion: discussion) { - try receivedMessage.replaceContentWith(newBody: newTextBody, newMentions: Set(newMentions), requester: contact.cryptoId, messageUploadTimestampFromServer: messageUploadTimestampFromServer) - - // If the message appears as a reply-to in some other messages, we must refresh those messages in the view context - // Similarly, if a draft is replying to this message, we must refresh the draft in the view context - - do { - let repliesObjectIDs = receivedMessage.repliesObjectIDs.map({ $0.objectID }) - let draftObjectIDs = try PersistedDraft.getObjectIDsOfAllDraftsReplyingTo(message: receivedMessage).map({ $0.objectID }) - let objectIDsToRefresh = repliesObjectIDs + draftObjectIDs - if !objectIDsToRefresh.isEmpty { - try? obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { return } - DispatchQueue.main.async { - let objectsToRefresh = ObvStack.shared.viewContext.registeredObjects - .filter({ objectIDsToRefresh.contains($0.objectID) }) - objectsToRefresh.forEach { objectID in - ObvStack.shared.viewContext.refresh(objectID, mergeChanges: true) - } + if let updatedMessage { + do { + let repliesObjectIDs = updatedMessage.repliesObjectIDs.map({ $0.objectID }) + let draftObjectIDs = try PersistedDraft.getObjectIDsOfAllDraftsReplyingTo(message: updatedMessage).map({ $0.objectID }) + let objectIDsToRefresh = [updatedMessage.objectID] + repliesObjectIDs + draftObjectIDs + if !objectIDsToRefresh.isEmpty { + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + DispatchQueue.main.async { + let objectsToRefresh = ObvStack.shared.viewContext.registeredObjects + .filter({ objectIDsToRefresh.contains($0.objectID) }) + objectsToRefresh.forEach { objectID in + ObvStack.shared.viewContext.refresh(objectID, mergeChanges: true) } } } - } catch { - assertionFailure() - // In production, continue anyway } - - } else if saveRequestIfMessageCannotBeFound { - try RemoteDeleteAndEditRequest.createEditRequestIfAppropriate(body: newTextBody, - messageReference: receivedMessageToEdit, - serverTimestamp: messageUploadTimestampFromServer, - discussion: discussion) + } catch { + assertionFailure() + // In production, continue anyway + } + } + + } catch { + if let error = error as? ObvUICoreDataError { + switch error { + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + result = .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + return + default: + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } - } catch { + } else { + assertionFailure() return cancel(withReason: .coreDataError(error: error)) } - } } -} - - -enum EditTextBodyOfReceivedMessageOperationReasonForCancel: LocalizedErrorWithLogType { - case coreDataError(error: Error) - case contextIsNil - case couldNotFindContact - case couldNotFindOwnedIdentity - case couldNotFindGroupDiscussion - case requesterIsNotTheOneWhoSentTheOriginalMessage - case cannotFindMessageReceived - case couldNotEditMessage(error: Error) - case couldNotFindAnyDiscussion - var logType: OSLogType { - switch self { - case .coreDataError, .couldNotFindContact, .couldNotFindOwnedIdentity, .requesterIsNotTheOneWhoSentTheOriginalMessage, .couldNotFindGroupDiscussion, .cannotFindMessageReceived, .couldNotEditMessage, .contextIsNil, .couldNotFindAnyDiscussion: - return .fault + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindContact + case couldNotFindOwnedIdentity + + var logType: OSLogType { + switch self { + case .coreDataError, + .couldNotFindContact, + .couldNotFindOwnedIdentity: + return .fault + } } - } - - var errorDescription: String? { - switch self { - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .contextIsNil: - return "The context is not set" - case .couldNotFindOwnedIdentity: - return "Could not find owned identity" - case .couldNotFindContact: - return "Could not find the contact identity" - case .couldNotFindGroupDiscussion: - return "Could not find group discussion" - case .requesterIsNotTheOneWhoSentTheOriginalMessage: - return "The requester is not the one who sent the original message" - case .cannotFindMessageReceived: - return "Could not find received message to edit" - case .couldNotEditMessage(error: let error): - return "Could not edit message: \(error.localizedDescription)" - case .couldNotFindAnyDiscussion: - return "Could not find any discussion" + + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + case .couldNotFindContact: + return "Could not find the contact identity" + } } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Editing sent message/EditTextBodyOfSentMessageOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Editing sent message/EditTextBodyOfSentMessageOperation.swift index 6273c1b4..b9169fb8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Editing sent message/EditTextBodyOfSentMessageOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Editing sent message/EditTextBodyOfSentMessageOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,16 +23,19 @@ import os.log import ObvEngine import OlvidUtils import ObvUICoreData +import ObvTypes -final class EditTextBodyOfSentMessageOperation: ContextualOperationWithSpecificReasonForCancel { +final class EditTextBodyOfSentMessageOperation: ContextualOperationWithSpecificReasonForCancel { - private let persistedSentMessageObjectID: NSManagedObjectID + private let ownedCryptoId: ObvCryptoId + private let persistedSentMessageObjectID: TypeSafeManagedObjectID private let newTextBody: String? private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: EditTextBodyOfSentMessageOperation.self)) - init(persistedSentMessageObjectID: NSManagedObjectID, newTextBody: String?) { + init(ownedCryptoId: ObvCryptoId, persistedSentMessageObjectID: TypeSafeManagedObjectID, newTextBody: String?) { + self.ownedCryptoId = ownedCryptoId self.persistedSentMessageObjectID = persistedSentMessageObjectID if let newTextBody { self.newTextBody = newTextBody.isEmpty ? nil : newTextBody @@ -42,91 +45,75 @@ final class EditTextBodyOfSentMessageOperation: ContextualOperationWithSpecificR super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { - let messageSent: PersistedMessageSent - do { - guard let _messageSent = try PersistedMessageSent.get(with: persistedSentMessageObjectID, within: obvContext.context) as? PersistedMessageSent else { - return cancel(withReason: .cannotFindMessageSent) - } - messageSent = _messageSent - } catch { - return cancel(withReason: .coreDataError(error: error)) + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) } - // If we reach this point, we can edit the text body - // Note that, for now, we do not handle the update of mentions when the users edits the content of a message. We simply remove them. - do { - try messageSent.replaceContentWith(newBody: newTextBody, newMentions: Set()) - } catch { - return cancel(withReason: .failedToEditTextBody(error: error)) - } + let updatedMessage = try ownedIdentity.processLocalUpdateMessageRequestFromThisOwnedIdentity(persistedSentMessageObjectID: persistedSentMessageObjectID, newTextBody: newTextBody) // If the message appears as a reply-to in some other messages, we must refresh those messages in the view context // Similarly, if a draft is replying to this message, we must refresh the draft in the view context - - do { - let repliesObjectIDs = messageSent.repliesObjectIDs.map({ $0.objectID }) - let draftObjectIDs = try PersistedDraft.getObjectIDsOfAllDraftsReplyingTo(message: messageSent).map({ $0.objectID }) - let objectIDsToRefresh = repliesObjectIDs + draftObjectIDs - if !objectIDsToRefresh.isEmpty { - try? obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { return } - DispatchQueue.main.async { - let objectsToRefresh = ObvStack.shared.viewContext.registeredObjects - .filter({ objectIDsToRefresh.contains($0.objectID) }) - objectsToRefresh.forEach { objectID in - ObvStack.shared.viewContext.refresh(objectID, mergeChanges: true) + + if let updatedMessage { + do { + let repliesObjectIDs = updatedMessage.repliesObjectIDs.map({ $0.objectID }) + let draftObjectIDs = try PersistedDraft.getObjectIDsOfAllDraftsReplyingTo(message: updatedMessage).map({ $0.objectID }) + let objectIDsToRefresh = [updatedMessage.objectID] + repliesObjectIDs + draftObjectIDs + if !objectIDsToRefresh.isEmpty { + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + DispatchQueue.main.async { + let objectsToRefresh = ObvStack.shared.viewContext.registeredObjects + .filter({ objectIDsToRefresh.contains($0.objectID) }) + objectsToRefresh.forEach { objectID in + ObvStack.shared.viewContext.refresh(objectID, mergeChanges: true) + } } } } + } catch { + assertionFailure() + // In production, continue anyway } - } catch { - assertionFailure() - // In production, continue anyway } + } catch { + return cancel(withReason: .coreDataError(error: error)) } } - -} - + -enum EditTextBodyOfSentMessageOperationReasonForCancel: LocalizedErrorWithLogType { - - case coreDataError(error: Error) - case cannotFindMessageSent - case failedToEditTextBody(error: Error) - case contextIsNil + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case contextIsNil + case couldNotFindOwnedIdentity - var logType: OSLogType { - switch self { - case .coreDataError, - .cannotFindMessageSent, - .failedToEditTextBody, - .contextIsNil: - return .fault + var logType: OSLogType { + switch self { + case .coreDataError, + .couldNotFindOwnedIdentity, + .contextIsNil: + return .fault + } } - } - - var errorDescription: String? { - switch self { - case .contextIsNil: - return "Context is nil" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .cannotFindMessageSent: - return "Cannot find message sent to edit" - case .failedToEditTextBody(error: let error): - return "Failed to edit text body: \(error.localizedDescription)" + + var errorDescription: String? { + switch self { + case .contextIsNil: + return "Context is nil" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + } } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Editing sent message/SendUpdateMessageJSONOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Editing sent message/SendUpdateMessageJSONOperation.swift index add1f543..8e945474 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Editing sent message/SendUpdateMessageJSONOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Editing sent message/SendUpdateMessageJSONOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -30,98 +30,104 @@ import ObvUICoreData final class SendUpdateMessageJSONOperation: ContextualOperationWithSpecificReasonForCancel { private let obvEngine: ObvEngine - private let persistedSentMessageObjectID: NSManagedObjectID + private let sentMessageObjectID: TypeSafeManagedObjectID private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: SendUpdateMessageJSONOperation.self)) - init(persistedSentMessageObjectID: NSManagedObjectID, obvEngine: ObvEngine) { - self.persistedSentMessageObjectID = persistedSentMessageObjectID + init(sentMessageObjectID: TypeSafeManagedObjectID, obvEngine: ObvEngine) { + self.sentMessageObjectID = sentMessageObjectID self.obvEngine = obvEngine super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - - let messageSent: PersistedMessageSent - do { - guard let _messageSent = try PersistedMessageSent.get(with: persistedSentMessageObjectID, within: obvContext.context) as? PersistedMessageSent else { - return cancel(withReason: .cannotFindMessageSent) - } - messageSent = _messageSent - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - let newTextBody: String? - let userMentions: [MessageJSON.UserMention] - if let textBodyToSend = messageSent.textBodyToSend { - newTextBody = textBodyToSend.isEmpty ? nil : textBodyToSend - userMentions = messageSent - .mentions - .compactMap({ try? $0.userMention }) - } else { - newTextBody = nil - userMentions = [] - } - - let itemJSON: PersistedItemJSON - do { - let updateMessageJSON = try UpdateMessageJSON(persistedMessageSentToEdit: messageSent, - newTextBody: newTextBody, - userMentions: userMentions) - itemJSON = PersistedItemJSON(updateMessageJSON: updateMessageJSON) - } catch { - return cancel(withReason: .couldNotConstructUpdateMessageJSON) + let messageSent: PersistedMessageSent + do { + guard let _messageSent = try PersistedMessageSent.getPersistedMessageSent(objectID: sentMessageObjectID, within: obvContext.context) else { + return cancel(withReason: .cannotFindMessageSent) } - - // Find all the contacts to which this item should be sent. - - let discussion = messageSent.discussion - let contactCryptoIds: Set - let ownCryptoId: ObvCryptoId - do { - (ownCryptoId, contactCryptoIds) = try discussion.getAllActiveParticipants() - } catch { - return cancel(withReason: .couldNotGetCryptoIdOfDiscussionParticipants(error: error)) + messageSent = _messageSent + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + let newTextBody: String? + let userMentions: [MessageJSON.UserMention] + if let textBodyToSend = messageSent.textBodyToSend { + newTextBody = textBodyToSend.isEmpty ? nil : textBodyToSend + userMentions = messageSent + .mentions + .compactMap({ try? $0.userMention }) + } else { + newTextBody = nil + userMentions = [] + } + + let itemJSON: PersistedItemJSON + do { + let updateMessageJSON = try UpdateMessageJSON(persistedMessageSentToEdit: messageSent, + newTextBody: newTextBody, + userMentions: userMentions) + itemJSON = PersistedItemJSON(updateMessageJSON: updateMessageJSON) + } catch { + return cancel(withReason: .couldNotConstructUpdateMessageJSON) + } + + // Find all the contacts to which this item should be sent. + + guard let discussion = messageSent.discussion else { + return cancel(withReason: .couldNotDetermineDiscussion) + } + let contactCryptoIds: Set + let ownCryptoId: ObvCryptoId + do { + (ownCryptoId, contactCryptoIds) = try discussion.getAllActiveParticipants() + } catch { + return cancel(withReason: .couldNotGetCryptoIdOfDiscussionParticipants(error: error)) + } + + // Determine if the owned identity has other owned devices + + let ownedIdentityHasOtherOwnedDevices: Bool + do { + guard let ownedIdentity = discussion.ownedIdentity else { + return cancel(withReason: .cannotFindOwnedIdentity) } - - // Create a payload of the PersistedItemJSON we just created and send it. - // We do not keep track of the message identifiers from engine. - - let payload: Data + ownedIdentityHasOtherOwnedDevices = (ownedIdentity.devices.count > 1) + } + + // Create a payload of the PersistedItemJSON we just created and send it. + // We do not keep track of the message identifiers from engine. + + let payload: Data + do { + payload = try itemJSON.jsonEncode() + } catch { + return cancel(withReason: .failedToEncodePersistedItemJSON) + } + + if !contactCryptoIds.isEmpty || ownedIdentityHasOtherOwnedDevices { + let log = self.log + let obvEngine = self.obvEngine do { - payload = try itemJSON.jsonEncode() - } catch { - return cancel(withReason: .failedToEncodePersistedItemJSON) - } - - if !contactCryptoIds.isEmpty { - let log = self.log - let obvEngine = self.obvEngine - do { - try obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { return } - do { - _ = try obvEngine.post(messagePayload: payload, - extendedPayload: nil, - withUserContent: false, - isVoipMessageForStartingCall: false, - attachmentsToSend: [], - toContactIdentitiesWithCryptoId: contactCryptoIds, - ofOwnedIdentityWithCryptoId: ownCryptoId) - } catch { - os_log("Could not post message within engine", type: .fault, log) - assertionFailure() - } + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + do { + _ = try obvEngine.post(messagePayload: payload, + extendedPayload: nil, + withUserContent: false, + isVoipMessageForStartingCall: false, + attachmentsToSend: [], + toContactIdentitiesWithCryptoId: contactCryptoIds, + ofOwnedIdentityWithCryptoId: ownCryptoId, + alsoPostToOtherOwnedDevices: true) + } catch { + os_log("Could not post message within engine", type: .fault, log) + assertionFailure() } - } catch { - return cancel(withReason: .couldNotAddContextDidSaveCompletionHandler) } + } catch { + return cancel(withReason: .couldNotAddContextDidSaveCompletionHandler) } } @@ -139,6 +145,8 @@ enum SendUpdateMessageJSONOperationReasonForCancel: LocalizedErrorWithLogType { case failedToEncodePersistedItemJSON case couldNotAddContextDidSaveCompletionHandler case contextIsNil + case couldNotDetermineDiscussion + case cannotFindOwnedIdentity var logType: OSLogType { switch self { @@ -148,6 +156,8 @@ enum SendUpdateMessageJSONOperationReasonForCancel: LocalizedErrorWithLogType { .couldNotAddContextDidSaveCompletionHandler, .failedToEncodePersistedItemJSON, .cannotFindMessageSent, + .cannotFindOwnedIdentity, + .couldNotDetermineDiscussion, .contextIsNil: return .fault } @@ -169,6 +179,10 @@ enum SendUpdateMessageJSONOperationReasonForCancel: LocalizedErrorWithLogType { return "We failed to encode the persisted item JSON" case .couldNotAddContextDidSaveCompletionHandler: return "We failed add a completion handler for sending the serialized DeleteMessagesJSON within the engine" + case .couldNotDetermineDiscussion: + return "Could not determine discussion" + case .cannotFindOwnedIdentity: + return "Cannot find owned identity" } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/PostDiscussionReadJSONEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/PostDiscussionReadJSONEngineOperation.swift new file mode 100644 index 00000000..aa2766d9 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/PostDiscussionReadJSONEngineOperation.swift @@ -0,0 +1,108 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import os.log +import ObvEngine +import ObvUICoreData +import ObvTypes +import CoreData + + +final class PostDiscussionReadJSONEngineOperation: ContextualOperationWithSpecificReasonForCancel { + + let obvEngine: ObvEngine + let op: OperationProvidingDiscussionReadJSON + + init(op: OperationProvidingDiscussionReadJSON, obvEngine: ObvEngine) { + self.obvEngine = obvEngine + self.op = op + super.init() + } + + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + assert(op.isFinished) + + guard !op.isCancelled else { return } + guard let discussionReadJSONToSend = op.discussionReadJSONToSend else { return } + guard let ownedCryptoId = op.ownedCryptoId else { assertionFailure(); return } + + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + guard ownedIdentity.hasAnotherDeviceWithChannel else { + // No need to propagate the fact that we opened a message with limited visibility since we don't have any other owned device with a secure channel + return + } + + let persistedItemsJSON = PersistedItemJSON(discussionRead: discussionReadJSONToSend) + let payload = try persistedItemsJSON.jsonEncode() + + _ = try obvEngine.post(messagePayload: payload, + extendedPayload: nil, + withUserContent: false, + isVoipMessageForStartingCall: false, + attachmentsToSend: [], + toContactIdentitiesWithCryptoId: Set(), + ofOwnedIdentityWithCryptoId: ownedCryptoId, + alsoPostToOtherOwnedDevices: true) + + + } catch { + return cancel(withReason: .someError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case couldNotFindOwnedIdentity + case someError(error: Error) + + var logType: OSLogType { + return .fault + } + + var errorDescription: String? { + switch self { + case .someError(error: let error): + return "Error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + } + } + + } + +} + + +protocol OperationProvidingDiscussionReadJSON: Operation { + + var ownedCryptoId: ObvCryptoId? { get } + var discussionReadJSONToSend: DiscussionReadJSON? { get } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/PostLimitedVisibilityMessageOpenedJSONEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/PostLimitedVisibilityMessageOpenedJSONEngineOperation.swift new file mode 100644 index 00000000..7f29e120 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/PostLimitedVisibilityMessageOpenedJSONEngineOperation.swift @@ -0,0 +1,111 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import os.log +import ObvEngine +import ObvUICoreData +import ObvTypes +import CoreData + + +final class PostLimitedVisibilityMessageOpenedJSONEngineOperation: ContextualOperationWithSpecificReasonForCancel { + + let obvEngine: ObvEngine + let op: OperationProvidingLimitedVisibilityMessageOpenedJSONs + + init(op: OperationProvidingLimitedVisibilityMessageOpenedJSONs, obvEngine: ObvEngine) { + self.obvEngine = obvEngine + self.op = op + super.init() + } + + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + assert(op.isFinished) + + guard !op.isCancelled else { return } + guard !op.limitedVisibilityMessageOpenedJSONsToSend.isEmpty else { return } + guard let ownedCryptoId = op.ownedCryptoId else { assertionFailure(); return } + + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + guard ownedIdentity.hasAnotherDeviceWithChannel else { + // No need to propagate the fact that we opened a message with limited visibility since we don't have any other owned device with a secure channel + return + } + + for limitedVisibilityMessageOpenedJSON in op.limitedVisibilityMessageOpenedJSONsToSend { + + let persistedItemsJSON = PersistedItemJSON(limitedVisibilityMessageOpenedJSON: limitedVisibilityMessageOpenedJSON) + let payload = try persistedItemsJSON.jsonEncode() + + _ = try obvEngine.post(messagePayload: payload, + extendedPayload: nil, + withUserContent: false, + isVoipMessageForStartingCall: false, + attachmentsToSend: [], + toContactIdentitiesWithCryptoId: Set(), + ofOwnedIdentityWithCryptoId: ownedCryptoId, + alsoPostToOtherOwnedDevices: true) + + } + + } catch { + return cancel(withReason: .someError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case couldNotFindOwnedIdentity + case someError(error: Error) + + var logType: OSLogType { + return .fault + } + + var errorDescription: String? { + switch self { + case .someError(error: let error): + return "Error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + } + } + + } + +} + + +protocol OperationProvidingLimitedVisibilityMessageOpenedJSONs: Operation { + + var ownedCryptoId: ObvCryptoId? { get } + var limitedVisibilityMessageOpenedJSONsToSend: [LimitedVisibilityMessageOpenedJSON] { get } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/SendOwnedWebRTCMessageOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/SendOwnedWebRTCMessageOperation.swift new file mode 100644 index 00000000..bf3aa711 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/SendOwnedWebRTCMessageOperation.swift @@ -0,0 +1,96 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import OlvidUtils +import os.log +import ObvEngine +import ObvUICoreData +import ObvTypes +import CoreData + + +final class SendOwnedWebRTCMessageOperation: ContextualOperationWithSpecificReasonForCancel { + + private let webrtcMessage: WebRTCMessageJSON + private let ownedCryptoId: ObvCryptoId + private let obvEngine: ObvEngine + + init(webrtcMessage: WebRTCMessageJSON, ownedCryptoId: ObvCryptoId, obvEngine: ObvEngine) { + self.webrtcMessage = webrtcMessage + self.ownedCryptoId = ownedCryptoId + self.obvEngine = obvEngine + super.init() + } + + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + guard ownedIdentity.hasAnotherDeviceWithChannel else { + return + } + + let messageToSend = PersistedItemJSON(webrtcMessage: webrtcMessage) + let messagePayload = try messageToSend.jsonEncode() + + _ = try obvEngine.post( + messagePayload: messagePayload, + extendedPayload: nil, + withUserContent: false, + isVoipMessageForStartingCall: false, + attachmentsToSend: [], + toContactIdentitiesWithCryptoId: [], + ofOwnedIdentityWithCryptoId: ownedCryptoId, + alsoPostToOtherOwnedDevices: true, + completionHandler: nil) + + } catch { + return cancel(withReason: .someError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case couldNotFindOwnedIdentity + case someError(error: Error) + + var logType: OSLogType { + return .fault + } + + var errorDescription: String? { + switch self { + case .someError(error: let error): + return "Error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SendWebRTCMessageOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/SendWebRTCMessageOperation.swift similarity index 58% rename from iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SendWebRTCMessageOperation.swift rename to iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/SendWebRTCMessageOperation.swift index 2b022b6f..40fc0fad 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SendWebRTCMessageOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/EngineOperations/SendWebRTCMessageOperation.swift @@ -23,6 +23,7 @@ import os.log import ObvEngine import ObvTypes import ObvUICoreData +import CoreData final class SendWebRTCMessageOperation: ContextualOperationWithSpecificReasonForCancel { @@ -42,12 +43,7 @@ final class SendWebRTCMessageOperation: ContextualOperationWithSpecificReasonFor super.init() } - override func main() { - - guard let obvContext else { - os_log("☎️ We failed to post a %{public}s WebRTCMessage", log: log, type: .fault, String(describing: webrtcMessage.messageType)) - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { let messageToSend = PersistedItemJSON(webrtcMessage: webrtcMessage) @@ -59,43 +55,40 @@ final class SendWebRTCMessageOperation: ContextualOperationWithSpecificReasonFor return cancel(withReason: .couldNotEncodeMessageToSend) } - obvContext.performAndWait { + do { + guard let contact = try PersistedObvContactIdentity.get(objectID: contactID, within: obvContext.context) else { + os_log("☎️ We failed to post a %{public}s WebRTCMessage", log: log, type: .fault, String(describing: webrtcMessage.messageType)) + return cancel(withReason: .couldNotFindContact) + } + let contactCryptoId = contact.cryptoId + guard let ownedCryptoId = contact.ownedIdentity?.cryptoId else { return } + let messageIdentifierForContactToWhichTheMessageWasSent: [ObvCryptoId : Data] do { - - guard let contact = try PersistedObvContactIdentity.get(objectID: contactID, within: obvContext.context) else { - os_log("☎️ We failed to post a %{public}s WebRTCMessage", log: log, type: .fault, String(describing: webrtcMessage.messageType)) - return cancel(withReason: .couldNotFindContact) - } - let contactCryptoId = contact.cryptoId - guard let ownedCryptoId = contact.ownedIdentity?.cryptoId else { return } - let messageIdentifierForContactToWhichTheMessageWasSent: [ObvCryptoId : Data] - do { - messageIdentifierForContactToWhichTheMessageWasSent = try obvEngine.post( - messagePayload: messagePayload, - extendedPayload: nil, - withUserContent: false, - isVoipMessageForStartingCall: forStartingCall, // True only for starting a call - attachmentsToSend: [], - toContactIdentitiesWithCryptoId: [contactCryptoId], - ofOwnedIdentityWithCryptoId: ownedCryptoId, - completionHandler: nil) - } catch { - os_log("☎️ We failed to post a %{public}s WebRTCMessage", log: log, type: .fault, String(describing: webrtcMessage.messageType)) - return cancel(withReason: .engineFailedToSendMessage(error: error)) - } - if messageIdentifierForContactToWhichTheMessageWasSent[contactCryptoId] != nil { - os_log("☎️ We posted a new %{public}s WebRTCMessage for call %{public}s", log: log, type: .info, String(describing: webrtcMessage.messageType), String(webrtcMessage.callIdentifier)) - } else { - os_log("☎️ We failed to post a %{public}s WebRTCMessage", log: log, type: .fault, String(describing: webrtcMessage.messageType)) - assertionFailure() - } - + messageIdentifierForContactToWhichTheMessageWasSent = try obvEngine.post( + messagePayload: messagePayload, + extendedPayload: nil, + withUserContent: false, + isVoipMessageForStartingCall: forStartingCall, // True only for starting a call + attachmentsToSend: [], + toContactIdentitiesWithCryptoId: [contactCryptoId], + ofOwnedIdentityWithCryptoId: ownedCryptoId, + alsoPostToOtherOwnedDevices: false, + completionHandler: nil) } catch { os_log("☎️ We failed to post a %{public}s WebRTCMessage", log: log, type: .fault, String(describing: webrtcMessage.messageType)) - return cancel(withReason: .coreDataError(error: error)) + return cancel(withReason: .engineFailedToSendMessage(error: error)) } - + if messageIdentifierForContactToWhichTheMessageWasSent[contactCryptoId] != nil { + os_log("☎️ We posted a new %{public}s WebRTCMessage for call %{public}s", log: log, type: .info, String(describing: webrtcMessage.messageType), String(webrtcMessage.callIdentifier)) + } else { + os_log("☎️ We failed to post a %{public}s WebRTCMessage", log: log, type: .fault, String(describing: webrtcMessage.messageType)) + assertionFailure() + } + + } catch { + os_log("☎️ We failed to post a %{public}s WebRTCMessage", log: log, type: .fault, String(describing: webrtcMessage.messageType)) + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/GetAppropriateActiveDiscussionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/GetAppropriateActiveDiscussionOperation.swift deleted file mode 100644 index 23cd3f87..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/GetAppropriateActiveDiscussionOperation.swift +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import os.log -import ObvEngine -import ObvTypes -import OlvidUtils -import ObvCrypto -import ObvUICoreData - - -/// This operation looks for a persisted discussion (either one2one or for a group) that is the most appropriate given the parameters. In case the groupId is non nil, it looks for a group discussion and makes sure the contact identity is part of the group (but not necessarily owner). -/// If this operation finishes without cancelling, the value of the `discussionObjectID` variable is guaranteed to be set. -final class GetAppropriateActiveDiscussionOperation: ContextualOperationWithSpecificReasonForCancel, OperationProvidingPersistedDiscussion { - - private let contact: ObvContactIdentity - private let groupIdentifier: GroupIdentifier? - - private(set) var persistedDiscussionObjectID: TypeSafeManagedObjectID? - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: GetAppropriateActiveDiscussionOperation.self)) - - init(contact: ObvContactIdentity, groupIdentifier: GroupIdentifier?) { - self.contact = contact - self.groupIdentifier = groupIdentifier - super.init() - } - - override func main() { - - guard let obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { - - guard let persistedContact = try PersistedObvContactIdentity.get(persisted: contact, whereOneToOneStatusIs: .any, within: obvContext.context) else { - return cancel(withReason: .couldNotFindContact) - } - - guard let ownedIdentity = persistedContact.ownedIdentity else { - return cancel(withReason: .couldNotFindOwnedIdentity) - } - - switch groupIdentifier { - - case .none: - - guard let discussion = try PersistedOneToOneDiscussion.get(with: persistedContact, status: .active) else { - return cancel(withReason: .couldNotFindDiscussion) - } - assert(persistedContact.isOneToOne) - // If we reach this point, we found the appropriate one2one discussion - self.persistedDiscussionObjectID = discussion.typedObjectID.downcast - return - - case .groupV1(groupV1Identifier: let groupV1Identifier): - - guard let contactGroup = try PersistedContactGroup.getContactGroup(groupId: groupV1Identifier, ownedIdentity: ownedIdentity) else { - return cancel(withReason: .couldNotFindContactGroup) - } - // We make sure the contact is either owner or part of the group - if let ownedGroup = contactGroup as? PersistedContactGroupOwned { - guard ownedGroup.contactIdentities.contains(persistedContact) else { - assertionFailure() - return cancel(withReason: .contactIsNotPartOfGroup) - } - } else if let joinedGroup = contactGroup as? PersistedContactGroupJoined { - guard joinedGroup.contactIdentities.contains(persistedContact) || - joinedGroup.owner == persistedContact else { - assertionFailure() - return cancel(withReason: .contactIsNotPartOfGroup) - } - } else { - return cancel(withReason: .unexpectedGroupSubclass) - } - // If we reach this point, we found the group and the contact is indeed part of this group - guard contactGroup.discussion.status == .active else { - return cancel(withReason: .couldNotFindDiscussion) - } - self.persistedDiscussionObjectID = contactGroup.discussion.typedObjectID.downcast - return - - case .groupV2(groupV2Identifier: let groupV2Identifier): - - guard let group = try PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: groupV2Identifier) else { - return cancel(withReason: .couldNotFindContactGroup) - } - // Make sure the contact is part of the group - guard group.contactsAmongOtherPendingAndNonPendingMembers.contains(persistedContact) else { - assertionFailure() - return cancel(withReason: .contactIsNotPartOfGroup) - } - // If we reach this point, we found the group and the contact is indeed part of this group - guard let discussion = group.discussion, discussion.status == .active else { - return cancel(withReason: .couldNotFindDiscussion) - } - self.persistedDiscussionObjectID = discussion.typedObjectID.downcast - return - - } - - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - } - - } - -} - - -enum GetAppropriateDiscussionOperationReasonForCancel: LocalizedErrorWithLogType { - - case coreDataError(error: Error) - case couldNotFindContact - case couldNotFindOwnedIdentity - case couldNotFindContactGroup - case contactIsNotPartOfGroup - case unexpectedGroupSubclass - case couldNotFindDiscussion - case contextIsNil - - var logType: OSLogType { - switch self { - case .coreDataError, - .couldNotFindOwnedIdentity, - .couldNotFindContactGroup, - .contactIsNotPartOfGroup, - .unexpectedGroupSubclass, - .couldNotFindDiscussion, - .contextIsNil, - .couldNotFindContact: - return .fault - } - } - - var errorDescription: String? { - switch self { - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .couldNotFindContact: - return "Could not find contact in database" - case .couldNotFindOwnedIdentity: - return "Could not find owned identity" - case .couldNotFindContactGroup: - return "Could not find contact group" - case .contactIsNotPartOfGroup: - return "The contact is not part of the group" - case .unexpectedGroupSubclass: - return "Unexpected contact group subclass" - case .couldNotFindDiscussion: - return "Could not find discussion" - case .contextIsNil: - return "Context is nil" - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/InsertEndToEndEncryptedSystemMessageIfCurrentDiscussionIsEmptyOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/InsertEndToEndEncryptedSystemMessageIfCurrentDiscussionIsEmptyOperation.swift index 0f771ca9..f5cd3e6f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/InsertEndToEndEncryptedSystemMessageIfCurrentDiscussionIsEmptyOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/InsertEndToEndEncryptedSystemMessageIfCurrentDiscussionIsEmptyOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -21,6 +21,8 @@ import Foundation import OlvidUtils import os.log import ObvUICoreData +import CoreData + final class InsertEndToEndEncryptedSystemMessageIfCurrentDiscussionIsEmptyOperation: ContextualOperationWithSpecificReasonForCancel { @@ -33,23 +35,15 @@ final class InsertEndToEndEncryptedSystemMessageIfCurrentDiscussionIsEmptyOperat super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - - do { - guard let discussion = try PersistedDiscussion.get(objectID: discussionObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDiscussion) - } - try discussion.insertSystemMessagesIfDiscussionIsEmpty(markAsRead: markAsRead, messageTimestamp: Date()) - } catch { - return cancel(withReason: .coreDataError(error: error)) + do { + guard let discussion = try PersistedDiscussion.get(objectID: discussionObjectID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindDiscussion) } - + try discussion.insertSystemMessagesIfDiscussionIsEmpty(markAsRead: markAsRead, messageTimestamp: Date()) + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/InsertPersistedMessageSystemIntoDiscussionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/InsertPersistedMessageSystemIntoDiscussionOperation.swift index 61b97138..d0482b12 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/InsertPersistedMessageSystemIntoDiscussionOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/InsertPersistedMessageSystemIntoDiscussionOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -68,11 +68,7 @@ final class InsertPersistedMessageSystemIntoDiscussionOperation: ContextualOpera - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { let persistedDiscussionObjectID: NSManagedObjectID @@ -86,95 +82,94 @@ final class InsertPersistedMessageSystemIntoDiscussionOperation: ContextualOpera } persistedDiscussionObjectID = objectID.objectID } - - obvContext.performAndWait { + + do { - do { - - guard let discussion = try PersistedDiscussion.get(objectID: persistedDiscussionObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindPersistedDiscussionInDatabase) + guard let discussion = try PersistedDiscussion.get(objectID: persistedDiscussionObjectID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindPersistedDiscussionInDatabase) + } + + switch persistedMessageSystemCategory { + case .ownedIdentityIsPartOfGroupV2Admins: + guard let groupV2Discussion = discussion as? PersistedGroupV2Discussion else { + return cancel(withReason: .inappropriatePersistedMessageSystemCategoryForGivenDiscussion(persistedMessageSystemCategory: persistedMessageSystemCategory)) } - - switch persistedMessageSystemCategory { - case .ownedIdentityIsPartOfGroupV2Admins: - guard let groupV2Discussion = discussion as? PersistedGroupV2Discussion else { - return cancel(withReason: .inappropriatePersistedMessageSystemCategoryForGivenDiscussion(persistedMessageSystemCategory: persistedMessageSystemCategory)) - } - _ = try? PersistedMessageSystem.insertOwnedIdentityIsPartOfGroupV2AdminsMessage(within: groupV2Discussion) - case .ownedIdentityIsNoLongerPartOfGroupV2Admins: - guard let groupV2Discussion = discussion as? PersistedGroupV2Discussion else { - return cancel(withReason: .inappropriatePersistedMessageSystemCategoryForGivenDiscussion(persistedMessageSystemCategory: persistedMessageSystemCategory)) - } - _ = try? PersistedMessageSystem.insertOwnedIdentityIsNoLongerPartOfGroupV2AdminsMessage(within: groupV2Discussion) - case .membersOfGroupV2WereUpdated: - guard let groupV2Discussion = discussion as? PersistedGroupV2Discussion else { - return cancel(withReason: .inappropriatePersistedMessageSystemCategoryForGivenDiscussion(persistedMessageSystemCategory: persistedMessageSystemCategory)) - } - _ = try? PersistedMessageSystem.insertMembersOfGroupV2WereUpdatedSystemMessage(within: groupV2Discussion) - case .contactJoinedGroup, - .contactLeftGroup: - guard let contactIdentityObjectID = self.optionalContactIdentityObjectID else { - return cancel(withReason: .noContactIdentityObjectIDAlthoughItIsRequired(persistedMessageSystemCategory: persistedMessageSystemCategory)) - } - let contactIdentity = try PersistedObvContactIdentity.get(objectID: contactIdentityObjectID, within: obvContext.context) - switch try? discussion.kind { - case .oneToOne, .none: - return cancel(withReason: .inappropriatePersistedMessageSystemCategoryForGivenDiscussion(persistedMessageSystemCategory: persistedMessageSystemCategory)) - case .groupV1, .groupV2: - break - } - _ = try PersistedMessageSystem(persistedMessageSystemCategory, optionalContactIdentity: contactIdentity, optionalCallLogItem: nil, discussion: discussion, timestamp: Date()) - case .contactRevokedByIdentityProvider: - // We do not need to pass the optional identity, as it is obvious in this case. And we prevent merge conflicts by doing so. - _ = try PersistedMessageSystem(persistedMessageSystemCategory, optionalContactIdentity: nil, optionalCallLogItem: nil, discussion: discussion, timestamp: Date()) - case .callLogItem: - guard let callLogItemObjectID = self.optionalCallLogItemObjectID else { - return cancel(withReason: .noCallLogItemObjectIDAlthoughItIsRequired) - } - - guard let item = try PersistedCallLogItem.get(objectID: callLogItemObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindPersistedObvContactIdentityInDatabase) - } - _ = try PersistedMessageSystem(persistedMessageSystemCategory, optionalContactIdentity: nil, optionalCallLogItem: item, discussion: discussion, timestamp: Date()) - case .numberOfNewMessages: - assertionFailure("Not implemented") - case .discussionIsEndToEndEncrypted: - assertionFailure("Not implemented") - case .contactWasDeleted: - assertionFailure("Not implemented") - case .updatedDiscussionSharedSettings: - assertionFailure("Not implemented") - case .notPartOfTheGroupAnymore: - assertionFailure("Not implemented") - case .rejoinedGroup: - assertionFailure("Not implemented") - case .contactIsOneToOneAgain: - assertionFailure("Not implemented") - case .ownedIdentityDidCaptureSensitiveMessages: - assertionFailure("Not implemented") - case .contactIdentityDidCaptureSensitiveMessages: - assertionFailure("Not implemented") - case .discussionWasRemotelyWiped: - switch discussion.status { - case .active: - break - case .preDiscussion, .locked: - return cancel(withReason: .inappropriatePersistedMessageSystemCategoryForGivenDiscussion(persistedMessageSystemCategory: persistedMessageSystemCategory)) - } - guard let contactIdentityObjectID = optionalContactIdentityObjectID else { - return cancel(withReason: .noContactIdentityObjectIDAlthoughItIsRequired(persistedMessageSystemCategory: persistedMessageSystemCategory)) - } - guard let contactIdentity = try PersistedObvContactIdentity.get(objectID: contactIdentityObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindPersistedObvContactIdentityInDatabase) - } - assert(messageUploadTimestampFromServer != nil) - try discussion.insertSystemMessagesIfDiscussionIsEmpty(markAsRead: false, messageTimestamp: Date()) - try PersistedMessageSystem.insertDiscussionWasRemotelyWipedSystemMessage(within: discussion, byContact: contactIdentity, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + _ = try? PersistedMessageSystem.insertOwnedIdentityIsPartOfGroupV2AdminsMessage(within: groupV2Discussion) + case .ownedIdentityIsNoLongerPartOfGroupV2Admins: + guard let groupV2Discussion = discussion as? PersistedGroupV2Discussion else { + return cancel(withReason: .inappropriatePersistedMessageSystemCategoryForGivenDiscussion(persistedMessageSystemCategory: persistedMessageSystemCategory)) + } + _ = try? PersistedMessageSystem.insertOwnedIdentityIsNoLongerPartOfGroupV2AdminsMessage(within: groupV2Discussion) + case .membersOfGroupV2WereUpdated: + guard let groupV2Discussion = discussion as? PersistedGroupV2Discussion else { + return cancel(withReason: .inappropriatePersistedMessageSystemCategoryForGivenDiscussion(persistedMessageSystemCategory: persistedMessageSystemCategory)) + } + _ = try? PersistedMessageSystem.insertMembersOfGroupV2WereUpdatedSystemMessage(within: groupV2Discussion) + case .contactJoinedGroup, + .contactLeftGroup: + guard let contactIdentityObjectID = self.optionalContactIdentityObjectID else { + return cancel(withReason: .noContactIdentityObjectIDAlthoughItIsRequired(persistedMessageSystemCategory: persistedMessageSystemCategory)) + } + let contactIdentity = try PersistedObvContactIdentity.get(objectID: contactIdentityObjectID, within: obvContext.context) + switch try? discussion.kind { + case .oneToOne, .none: + return cancel(withReason: .inappropriatePersistedMessageSystemCategoryForGivenDiscussion(persistedMessageSystemCategory: persistedMessageSystemCategory)) + case .groupV1, .groupV2: + break + } + _ = try PersistedMessageSystem(persistedMessageSystemCategory, optionalContactIdentity: contactIdentity, optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, timestamp: Date()) + case .contactRevokedByIdentityProvider: + // We do not need to pass the optional identity, as it is obvious in this case. And we prevent merge conflicts by doing so. + _ = try PersistedMessageSystem(persistedMessageSystemCategory, optionalContactIdentity: nil, optionalOwnedCryptoId: nil, optionalCallLogItem: nil, discussion: discussion, timestamp: Date()) + case .callLogItem: + guard let callLogItemObjectID = self.optionalCallLogItemObjectID else { + return cancel(withReason: .noCallLogItemObjectIDAlthoughItIsRequired) } - } catch { - return cancel(withReason: .coreDataError(error: error)) + guard let item = try PersistedCallLogItem.get(objectID: callLogItemObjectID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindPersistedObvContactIdentityInDatabase) + } + _ = try PersistedMessageSystem(persistedMessageSystemCategory, optionalContactIdentity: nil, optionalOwnedCryptoId: nil, optionalCallLogItem: item, discussion: discussion, timestamp: Date()) + case .numberOfNewMessages: + assertionFailure("Not implemented") + case .discussionIsEndToEndEncrypted: + assertionFailure("Not implemented") + case .contactWasDeleted: + assertionFailure("Not implemented") + case .updatedDiscussionSharedSettings: + assertionFailure("Not implemented") + case .notPartOfTheGroupAnymore: + assertionFailure("Not implemented") + case .rejoinedGroup: + assertionFailure("Not implemented") + case .contactIsOneToOneAgain: + assertionFailure("Not implemented") + case .ownedIdentityDidCaptureSensitiveMessages: + assertionFailure("Not implemented") + case .contactIdentityDidCaptureSensitiveMessages: + assertionFailure("Not implemented") + case .contactWasIntroducedToAnotherContact: + assertionFailure("Not implemented") + case .discussionWasRemotelyWiped: + switch discussion.status { + case .active: + break + case .preDiscussion, .locked: + return cancel(withReason: .inappropriatePersistedMessageSystemCategoryForGivenDiscussion(persistedMessageSystemCategory: persistedMessageSystemCategory)) + } + guard let contactIdentityObjectID = optionalContactIdentityObjectID else { + return cancel(withReason: .noContactIdentityObjectIDAlthoughItIsRequired(persistedMessageSystemCategory: persistedMessageSystemCategory)) + } + guard let contactIdentity = try PersistedObvContactIdentity.get(objectID: contactIdentityObjectID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindPersistedObvContactIdentityInDatabase) + } + assert(messageUploadTimestampFromServer != nil) + try discussion.insertSystemMessagesIfDiscussionIsEmpty(markAsRead: false, messageTimestamp: Date()) + try PersistedMessageSystem.insertDiscussionWasRemotelyWipedSystemMessage(within: discussion, byContact: contactIdentity, messageUploadTimestampFromServer: messageUploadTimestampFromServer) } + + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/MergeDiscussionSharedExpirationConfigurationOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/MergeDiscussionSharedExpirationConfigurationOperation.swift index 42c40a8a..92c822cf 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/MergeDiscussionSharedExpirationConfigurationOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/MergeDiscussionSharedExpirationConfigurationOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,149 +23,162 @@ import os.log import ObvEngine import OlvidUtils import ObvUICoreData +import ObvTypes /// When receiving a shared configuration for a discussion, we merge it with our own current configuration. -final class MergeDiscussionSharedExpirationConfigurationOperation: ContextualOperationWithSpecificReasonForCancel, OperationProvidingPersistedDiscussion { +final class MergeDiscussionSharedExpirationConfigurationOperation: ContextualOperationWithSpecificReasonForCancel { - let discussionSharedConfiguration: DiscussionSharedConfigurationJSON - let fromContactIdentity: ObvContactIdentity - let messageUploadTimestampFromServer: Date - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: MergeDiscussionSharedExpirationConfigurationOperation.self)) - - private(set) var updatedDiscussionObjectID: TypeSafeManagedObjectID? // Set if the operation changes something and finishes without cancelling + private let discussionSharedConfiguration: DiscussionSharedConfigurationJSON + private let origin: Origin + private let messageUploadTimestampFromServer: Date + private let messageLocalDownloadTimestamp: Date + - var persistedDiscussionObjectID: TypeSafeManagedObjectID? { - updatedDiscussionObjectID + enum Origin { + case fromContact(contactIdentifier: ObvContactIdentifier) + case fromOtherDeviceOfOwnedIdentity(ownedCryptoId: ObvCryptoId) } - init(discussionSharedConfiguration: DiscussionSharedConfigurationJSON, fromContactIdentity: ObvContactIdentity, messageUploadTimestampFromServer: Date) { + + init(discussionSharedConfiguration: DiscussionSharedConfigurationJSON, origin: Origin, messageUploadTimestampFromServer: Date, messageLocalDownloadTimestamp: Date) { self.discussionSharedConfiguration = discussionSharedConfiguration - self.fromContactIdentity = fromContactIdentity + self.origin = origin self.messageUploadTimestampFromServer = messageUploadTimestampFromServer + self.messageLocalDownloadTimestamp = messageLocalDownloadTimestamp super.init() } - override func main() { - - guard let obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + + enum Result { + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case couldNotFindContactInDatabase(contactCryptoId: ObvCryptoId) + case contactIsNotOneToOne + case merged + } + + + private(set) var result: Result? - do { + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + switch origin { - guard let persistedContact = try PersistedObvContactIdentity.get(persisted: fromContactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { - return cancel(withReason: .contactCannotBeFound) - } + case .fromContact(contactIdentifier: let contactIdentifier): - let initiator = PersistedDiscussionSharedConfiguration.Initiator.contact(ownedCryptoId: fromContactIdentity.ownedIdentity.cryptoId, - contactCryptoId: fromContactIdentity.cryptoId, - messageUploadTimestampFromServer: messageUploadTimestampFromServer) - - switch discussionSharedConfiguration.groupIdentifier { - - case .none: - - // The configuration concerns the one2one discussion we have with the contact - guard let oneToOneDiscussion = persistedContact.oneToOneDiscussion else { - return cancel(withReason: .discussionCannotBeFound) - } - self.updatedDiscussionObjectID = oneToOneDiscussion.typedObjectID.downcast - let sharedConfiguration = oneToOneDiscussion.sharedConfiguration - try sharedConfiguration.mergePersistedDiscussionSharedConfiguration(with: discussionSharedConfiguration, initiator: initiator) - - case .groupV1(groupV1Identifier: let groupV1Identifier): - - // The configuration concerns a group discussion - guard let persistedOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: fromContactIdentity.ownedIdentity, within: obvContext.context) else { - return cancel(withReason: .couldNotFindPersistedOwnedIdentity) - } - let contactGroup: PersistedContactGroup - guard let _contactGroup = try PersistedContactGroupJoined.getContactGroup(groupId: groupV1Identifier, ownedIdentity: persistedOwnedIdentity) else { - return cancel(withReason: .contactGroupCannotBeFound) - } - contactGroup = _contactGroup - self.updatedDiscussionObjectID = contactGroup.discussion.typedObjectID.downcast - guard contactGroup.ownerIdentity == fromContactIdentity.cryptoId.getIdentity() else { - return cancel(withReason: .sharedConfigWasNotSentByGroupOwner) - } - let sharedConfiguration = contactGroup.discussion.sharedConfiguration - try sharedConfiguration.mergePersistedDiscussionSharedConfiguration(with: discussionSharedConfiguration, initiator: initiator) + guard let persistedOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: contactIdentifier.ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindPersistedOwnedIdentity) + } - case .groupV2(groupV2Identifier: let groupV2Identifier): - - // The configuration concerns a group v2 discussion - guard let persistedOwnedIdentity = try PersistedObvOwnedIdentity.get(persisted: fromContactIdentity.ownedIdentity, within: obvContext.context) else { - return cancel(withReason: .couldNotFindPersistedOwnedIdentity) - } - guard let group = try PersistedGroupV2.get(ownIdentity: persistedOwnedIdentity, appGroupIdentifier: groupV2Identifier) else { - return cancel(withReason: .contactGroupCannotBeFound) - } - guard let discussion = group.discussion else { - return cancel(withReason: .discussionCannotBeFound) - } - self.updatedDiscussionObjectID = discussion.typedObjectID.downcast - let sharedConfiguration = discussion.sharedConfiguration - try sharedConfiguration.mergePersistedDiscussionSharedConfiguration(with: discussionSharedConfiguration, initiator: initiator) + let (discussionId, weShouldSendBackOurSharedSettings) = try persistedOwnedIdentity.mergeReceivedDiscussionSharedConfigurationSentByContact( + discussionSharedConfiguration: discussionSharedConfiguration, + messageUploadTimestampFromServer: messageUploadTimestampFromServer, + messageLocalDownloadTimestamp: messageLocalDownloadTimestamp, + contactCryptoId: contactIdentifier.contactCryptoId) + + result = .merged + + if weShouldSendBackOurSharedSettings { + requestSendingDiscussionSharedConfiguration(contactIdentifier: contactIdentifier, discussionId: discussionId, within: obvContext) + } + + case .fromOtherDeviceOfOwnedIdentity(ownedCryptoId: let ownedCryptoId): + + guard let persistedOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindPersistedOwnedIdentity) } + + let (discussionId, weShouldSendBackOurSharedSettings) = try persistedOwnedIdentity.mergeReceivedDiscussionSharedConfigurationSentByThisOwnedIdentity( + discussionSharedConfiguration: discussionSharedConfiguration, + messageUploadTimestampFromServer: messageUploadTimestampFromServer) - } catch { + result = .merged + + if weShouldSendBackOurSharedSettings { + ObvMessengerInternalNotification.aDiscussionSharedConfigurationIsNeededByAnotherOwnedDevice( + ownedCryptoId: ownedCryptoId, + discussionId: discussionId) + .postOnDispatchQueue() + } + + } + + } catch { + + if let error = error as? ObvUICoreDataError { + switch error { + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + result = .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + return + case .couldNotFindContactWithId(contactIdentifier: let contactIdentifier): + // This can happen if the owned identity performed a mutual scan with the contact from another owned device + result = .couldNotFindContactInDatabase(contactCryptoId: contactIdentifier.contactCryptoId) + return + case .contactIsNotOneToOne: + // This can happen when receiving a shared config from a contact who just accepted our invitation to be a oneToOne contact. We should not fail as this case is handled: + // we will soon turn her into a oneToOne contact, and thus, send her back our own shared config for the discussion. Upon receiving our discussion shared settings, she will + // again send us back her shared settings if required. + result = .contactIsNotOneToOne + return + default: + return cancel(withReason: .coreDataError(error: error)) + } + } else { return cancel(withReason: .coreDataError(error: error)) } - } } -} - -enum MergeDiscussionSharedExpirationConfigurationOperationReasonForCancel: LocalizedErrorWithLogType { - case coreDataError(error: Error) - case discussionCannotBeFound - case contactCannotBeFound - case couldNotFindPersistedOwnedIdentity - case contactGroupCannotBeFound - case sharedConfigWasNotSentByGroupOwner - case unexpectedError - case contextIsNil - var logType: OSLogType { - switch self { - case .coreDataError, - .couldNotFindPersistedOwnedIdentity, - .contextIsNil, - .unexpectedError: - return .fault - case .discussionCannotBeFound, - .contactCannotBeFound, - .contactGroupCannotBeFound, - .sharedConfigWasNotSentByGroupOwner: - return .error + // We had to create a contact, meaning we had to create/unlock a one2one discussion. In that case, we want to (re)send the discussion shared settings to our contact. + // This allows to make sure those settings are in sync. + private func requestSendingDiscussionSharedConfiguration(contactIdentifier: ObvContactIdentifier, discussionId: DiscussionIdentifier, within obvContext: ObvContext) { + do { + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + ObvMessengerInternalNotification.aDiscussionSharedConfigurationIsNeededByContact( + contactIdentifier: contactIdentifier, + discussionId: discussionId) + .postOnDispatchQueue() + } + } catch { + assertionFailure(error.localizedDescription) } } + + - var errorDescription: String? { - switch self { - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .discussionCannotBeFound: - return "Could not find discussion in database" - case .contactCannotBeFound: - return "Could not find contact in database" - case .couldNotFindPersistedOwnedIdentity: - return "Could not find persisted owned identity" - case .contactGroupCannotBeFound: - return "Could not find contact group" - case .sharedConfigWasNotSentByGroupOwner: - return "Group discussion configuration was not sent by the group owner" - case .unexpectedError: - return "Unexpected error. This is a bug." - case .contextIsNil: - return "Context is nil" + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindPersistedOwnedIdentity + case contextIsNil + + var logType: OSLogType { + switch self { + case .coreDataError, + .couldNotFindPersistedOwnedIdentity, + .contextIsNil: + return .fault + } } + + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindPersistedOwnedIdentity: + return "Could not find persisted owned identity" + case .contextIsNil: + return "Context is nil" + } + } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/RespondToQuerySharedSettingsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/RespondToQuerySharedSettingsOperation.swift index af1b6fd5..68f98ea1 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/RespondToQuerySharedSettingsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/RespondToQuerySharedSettingsOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,91 +22,129 @@ import Foundation import OlvidUtils import ObvEngine import ObvUICoreData +import os.log +import ObvTypes +import CoreData -/// The operation processes received QuerySharedSettingsJSON requests for group v2 discussions. +/// The operation processes received QuerySharedSettingsJSON requests by a contact or another device of the owned identity. /// -/// If we consider that our discussion details are more recent than those of the contact who made the request, we send an ``anOldDiscussionSharedConfigurationWasReceived`` notification. -/// This notification will be catched by the coordinator who will eventually send our shared details to the contact who made the request (provided that we have the right to change the group discussion details). -final class RespondToQuerySharedSettingsOperation: ContextualOperationWithSpecificReasonForCancel { +/// If we consider that our discussion details are more recent than those of the contact who made the request, we send an ``aDiscussionSharedConfigurationIsNeededByContact`` +/// or an ``aDiscussionSharedConfigurationIsNeededByAnotherOwnedDevice`` notification. This notification will be catched by the coordinator who will +/// eventually send our shared details to the contact who made the request. +/// +final class RespondToQuerySharedSettingsOperation: ContextualOperationWithSpecificReasonForCancel { - let fromContactIdentity: ObvContactIdentity - let querySharedSettingsJSON: QuerySharedSettingsJSON + enum Requester { + case contact(contactIdentifier: ObvContactIdentifier) + case ownedIdentity(ownedCryptoId: ObvCryptoId) + } + + private let querySharedSettingsJSON: QuerySharedSettingsJSON + private let requester: Requester - init(fromContactIdentity: ObvContactIdentity, querySharedSettingsJSON: QuerySharedSettingsJSON) { - self.fromContactIdentity = fromContactIdentity + init(querySharedSettingsJSON: QuerySharedSettingsJSON, requester: Requester) { self.querySharedSettingsJSON = querySharedSettingsJSON + self.requester = requester super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { - - do { + do { + + let weShouldSendBackOurSharedSettings: Bool + let discussionId: DiscussionIdentifier + + switch requester { - let ownIdentity = fromContactIdentity.ownedIdentity.cryptoId - let groupV2Identifier = querySharedSettingsJSON.groupV2Identifier - let sharedSettingsVersionKnownByContact = querySharedSettingsJSON.knownSharedSettingsVersion ?? Int.min - let sharedExpirationKnownByContact = querySharedSettingsJSON.knownSharedExpiration - - // Try to get the group + case .contact(contactIdentifier: let contactIdentifier): - guard let group = try PersistedGroupV2.get(ownIdentity: ownIdentity, appGroupIdentifier: groupV2Identifier, within: obvContext.context) else { - // We could not get the group, there is not much we can do - return + guard let contact = try PersistedObvContactIdentity.get(persisted: contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) else { + return cancel(withReason: .couldNotFindContact) } - guard let discussion = group.discussion else { - // We could not get the discussion, there is not much we can do - return - } + (weShouldSendBackOurSharedSettings, discussionId) = try contact.processQuerySharedSettingsRequestFromThisContact(querySharedSettingsJSON: querySharedSettingsJSON) - let sharedConfiguration = discussion.sharedConfiguration + case .ownedIdentity(ownedCryptoId: let ownedCryptoId): - // Get the values known locally - - let sharedSettingsVersionKnownLocally = sharedConfiguration.version - let sharedExpirationKnownLocally: ExpirationJSON? - if sharedSettingsVersionKnownLocally >= 0 { - sharedExpirationKnownLocally = sharedConfiguration.toExpirationJSON() - } else { - sharedExpirationKnownLocally = nil + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) } - // If the locally known values are identical to the values known to the contact, we are done, we do not need to answer the query + (weShouldSendBackOurSharedSettings, discussionId) = try ownedIdentity.processQuerySharedSettingsRequestFromThisOwnedIdentity(querySharedSettingsJSON: querySharedSettingsJSON) - guard sharedSettingsVersionKnownByContact <= sharedSettingsVersionKnownLocally || sharedExpirationKnownByContact != sharedExpirationKnownLocally else { - return + } + + if weShouldSendBackOurSharedSettings { + switch requester { + case .contact(contactIdentifier: let contactIdentifier): + requestSendingDiscussionSharedConfigurationToContact(contactIdentifier: contactIdentifier, discussionId: discussionId, within: obvContext) + case .ownedIdentity(ownedCryptoId: let ownedCryptoId): + requestSendingDiscussionSharedConfigurationToAnotherOwnedDevice(ownedCryptoId: ownedCryptoId, discussionId: discussionId, within: obvContext) } - - // If we reach this point, something differed between the shared settings of our contact and ours + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } - var weShouldSentBackTheSharedSettings = false - if sharedSettingsVersionKnownLocally > sharedSettingsVersionKnownByContact { - weShouldSentBackTheSharedSettings = true - } else if sharedSettingsVersionKnownLocally == sharedSettingsVersionKnownByContact && sharedExpirationKnownByContact != sharedExpirationKnownLocally { - weShouldSentBackTheSharedSettings = true - } - - guard weShouldSentBackTheSharedSettings else { - return - } - - // If we reach this point, we must send our shared settings back - - discussion.sendNotificationIndicatingThatAnOldDiscussionSharedConfigurationWasReceived() - - } catch { - return cancel(withReason: .coreDataError(error: error)) + + private func requestSendingDiscussionSharedConfigurationToContact(contactIdentifier: ObvContactIdentifier, discussionId: DiscussionIdentifier, within obvContext: ObvContext) { + do { + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + ObvMessengerInternalNotification.aDiscussionSharedConfigurationIsNeededByContact( + contactIdentifier: contactIdentifier, + discussionId: discussionId) + .postOnDispatchQueue() } + } catch { + assertionFailure(error.localizedDescription) + } + } + + + private func requestSendingDiscussionSharedConfigurationToAnotherOwnedDevice(ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier, within obvContext: ObvContext) { + do { + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + ObvMessengerInternalNotification.aDiscussionSharedConfigurationIsNeededByAnotherOwnedDevice( + ownedCryptoId: ownedCryptoId, + discussionId: discussionId) + .postOnDispatchQueue() + } + } catch { + assertionFailure(error.localizedDescription) + } + } + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindOwnedIdentity + case couldNotFindContact + + var logType: OSLogType { + return .fault + } + + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + case .couldNotFindContact: + return "Could not find the contact identity" + } } } + + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/SendPersistedDiscussionSharedConfigurationIfAllowedToOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/SendPersistedDiscussionSharedConfigurationIfAllowedToOperation.swift index aff10de5..129b4e19 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/SendPersistedDiscussionSharedConfigurationIfAllowedToOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/SendPersistedDiscussionSharedConfigurationIfAllowedToOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,16 +26,26 @@ import ObvTypes import ObvUICoreData -final class SendPersistedDiscussionSharedConfigurationIfAllowedToOperation: OperationWithSpecificReasonForCancel { +final class SendPersistedDiscussionSharedConfigurationIfAllowedToOperation: OperationWithSpecificReasonForCancel { - private let persistedDiscussionObjectID: NSManagedObjectID + private let ownedCryptoId: ObvCryptoId + private let discussionId: DiscussionIdentifier private let obvEngine: ObvEngine + private let sendTo: SendToOption + + enum SendToOption { + case otherOwnedDevices + case specificContact(contactCryptoId: ObvCryptoId) + case allContactsAndOtherOwnedDevices + } private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: SendPersistedDiscussionSharedConfigurationIfAllowedToOperation.self)) - init(persistedDiscussionObjectID: NSManagedObjectID, obvEngine: ObvEngine) { - self.persistedDiscussionObjectID = persistedDiscussionObjectID + init(ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier, sendTo: SendToOption, obvEngine: ObvEngine) { + self.ownedCryptoId = ownedCryptoId + self.discussionId = discussionId self.obvEngine = obvEngine + self.sendTo = sendTo super.init() } @@ -48,19 +58,34 @@ final class SendPersistedDiscussionSharedConfigurationIfAllowedToOperation: Oper } ObvStack.shared.performBackgroundTaskAndWait { (context) in - - // We create the PersistedItemJSON instance to send + // Get the persisted discussion + let discussion: PersistedDiscussion + let ownedIdentityHasAnotherDeviceWithChannel: Bool do { - guard let _discussion = try PersistedDiscussion.get(objectID: persistedDiscussionObjectID, within: context) else { - return cancel(withReason: .configCannotBeFound) + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) } - discussion = _discussion + ownedIdentityHasAnotherDeviceWithChannel = ownedIdentity.hasAnotherDeviceWithChannel + discussion = try ownedIdentity.getPersistedDiscussion(withDiscussionId: discussionId) } catch { - return cancel(withReason: .coreDataError(error: error)) + if let error = error as? ObvUICoreDataError { + switch error { + case .couldNotFindDiscussion: + // This happens when entering in contact as the discussion is not yet available. + // The shared configuration will eventually be re-sent, no need to cancel. + return + default: + return cancel(withReason: .coreDataError(error: error)) + } + } else { + return cancel(withReason: .coreDataError(error: error)) + } } - + + // We create the PersistedItemJSON instance to send + let sharedConfig = discussion.sharedConfiguration // Find all the contacts to which this item should be sent. @@ -68,7 +93,6 @@ final class SendPersistedDiscussionSharedConfigurationIfAllowedToOperation: Oper // If the discussion is a group v2 discussion, we make sure we are allowed to change the settings let contactCryptoIds: Set - let ownCryptoId: ObvCryptoId do { switch try discussion.kind { case .oneToOne(withContactIdentity: let contactIdentity): @@ -77,10 +101,6 @@ final class SendPersistedDiscussionSharedConfigurationIfAllowedToOperation: Oper return cancel(withReason: .couldNotFindContactIdentity) } contactCryptoIds = Set([contactIdentity.cryptoId]) - guard let _ownCryptoId = discussion.ownedIdentity?.cryptoId else { - return cancel(withReason: .couldNotDetermineOwnedCryptoId) - } - ownCryptoId = _ownCryptoId case .groupV1(withContactGroup: let contactGroup): guard let contactGroup = contactGroup else { return cancel(withReason: .couldNotFindContactGroup) @@ -91,10 +111,6 @@ final class SendPersistedDiscussionSharedConfigurationIfAllowedToOperation: Oper return } contactCryptoIds = Set(contactGroup.contactIdentities.map({ $0.cryptoId })) - guard let _ownCryptoId = discussion.ownedIdentity?.cryptoId else { - return cancel(withReason: .couldNotDetermineOwnedCryptoId) - } - ownCryptoId = _ownCryptoId case .groupV2(withGroup: let group): guard let group = group else { return cancel(withReason: .couldNotFindContactGroup) @@ -104,10 +120,6 @@ final class SendPersistedDiscussionSharedConfigurationIfAllowedToOperation: Oper return } contactCryptoIds = Set(group.otherMembers.filter({ !$0.isPending }).compactMap({ $0.cryptoId })) - guard let _ownCryptoId = discussion.ownedIdentity?.cryptoId else { - return cancel(withReason: .couldNotDetermineOwnedCryptoId) - } - ownCryptoId = _ownCryptoId } } catch { return cancel(withReason: .unexpectedDiscussionType) @@ -132,15 +144,33 @@ final class SendPersistedDiscussionSharedConfigurationIfAllowedToOperation: Oper return cancel(withReason: .failedToEncodeSettings) } - if !contactCryptoIds.isEmpty { + // Filter out the contacts/owned devices depending on the sendTo option + + let toContactIdentitiesWithCryptoId: Set + let alsoPostToOtherOwnedDevices: Bool + switch sendTo { + case .allContactsAndOtherOwnedDevices: + toContactIdentitiesWithCryptoId = contactCryptoIds + alsoPostToOtherOwnedDevices = ownedIdentityHasAnotherDeviceWithChannel + case .otherOwnedDevices: + toContactIdentitiesWithCryptoId = Set() + alsoPostToOtherOwnedDevices = ownedIdentityHasAnotherDeviceWithChannel + case .specificContact(contactCryptoId: let contactCryptoId): + guard contactCryptoIds.contains(contactCryptoId) else { return } + toContactIdentitiesWithCryptoId = Set([contactCryptoId]) + alsoPostToOtherOwnedDevices = false + } + + if !toContactIdentitiesWithCryptoId.isEmpty || alsoPostToOtherOwnedDevices { do { _ = try obvEngine.post(messagePayload: payload, extendedPayload: nil, withUserContent: false, isVoipMessageForStartingCall: false, attachmentsToSend: [], - toContactIdentitiesWithCryptoId: contactCryptoIds, - ofOwnedIdentityWithCryptoId: ownCryptoId) + toContactIdentitiesWithCryptoId: toContactIdentitiesWithCryptoId, + ofOwnedIdentityWithCryptoId: ownedCryptoId, + alsoPostToOtherOwnedDevices: alsoPostToOtherOwnedDevices) } catch { return cancel(withReason: .couldNotPostMessageWithinEngine) } @@ -149,63 +179,55 @@ final class SendPersistedDiscussionSharedConfigurationIfAllowedToOperation: Oper } } + -} - - -enum SendPersistedDiscussionSharedConfigurationIfAllowedToOperationReasonForCancel: LocalizedErrorWithLogType { - - case coreDataError(error: Error) - case configCannotBeFound - case failedToEncodeSettings - case couldNotFindContactIdentity - case couldNotFindContactGroup - case unexpectedDiscussionType - case couldNotDetermineOwnedCryptoId - case couldNotPostMessageWithinEngine - case couldNotComputeJSON - case couldNotFindDiscussion - - var logType: OSLogType { - switch self { - case .coreDataError, - .failedToEncodeSettings, - .couldNotFindContactIdentity, - .couldNotFindContactGroup, - .couldNotDetermineOwnedCryptoId, - .couldNotPostMessageWithinEngine, - .couldNotComputeJSON, - .couldNotFindDiscussion: - return .fault - case .configCannotBeFound, - .unexpectedDiscussionType: - return .error + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case failedToEncodeSettings + case couldNotFindContactIdentity + case couldNotFindContactGroup + case unexpectedDiscussionType + case couldNotFindOwnedIdentity + case couldNotPostMessageWithinEngine + case couldNotComputeJSON + + var logType: OSLogType { + switch self { + case .coreDataError, + .failedToEncodeSettings, + .couldNotFindContactIdentity, + .couldNotFindContactGroup, + .couldNotFindOwnedIdentity, + .couldNotPostMessageWithinEngine, + .couldNotComputeJSON: + return .fault + case .unexpectedDiscussionType: + return .error + } } - } - - var errorDescription: String? { - switch self { - case .couldNotFindDiscussion: - return "Could not find discussion" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .configCannotBeFound: - return "Could not find shared configuration in database" - case .failedToEncodeSettings: - return "We failed to encode the discussion shared settings" - case .couldNotFindContactIdentity: - return "Could not find the contact identity of the One2One discussion associated to the shared settings to send" - case .couldNotFindContactGroup: - return "Could not find the contact group of the group discussion associated with the shared settings to send" - case .unexpectedDiscussionType: - return "We are trying to share the settings of a discussion that is not a One2One nor a group discussion" - case .couldNotDetermineOwnedCryptoId: - return "We could not determine the owned crypto identity associated with the discussion" - case .couldNotPostMessageWithinEngine: - return "We failed to post the serialized discussion shared settings within the engine" - case .couldNotComputeJSON: - return "Could not compute JSON" + + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .failedToEncodeSettings: + return "We failed to encode the discussion shared settings" + case .couldNotFindContactIdentity: + return "Could not find the contact identity of the One2One discussion associated to the shared settings to send" + case .couldNotFindContactGroup: + return "Could not find the contact group of the group discussion associated with the shared settings to send" + case .unexpectedDiscussionType: + return "We are trying to share the settings of a discussion that is not a One2One nor a group discussion" + case .couldNotFindOwnedIdentity: + return "We could not find the owned identity in database" + case .couldNotPostMessageWithinEngine: + return "We failed to post the serialized discussion shared settings within the engine" + case .couldNotComputeJSON: + return "Could not compute JSON" + } } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/UpdateDiscussionSharedExpirationConfigurationOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/UpdateDiscussionSharedExpirationConfigurationOperation.swift index e603f20a..9abfae87 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/UpdateDiscussionSharedExpirationConfigurationOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Managing Discussion Shared Configuration/UpdateDiscussionSharedExpirationConfigurationOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,77 +24,60 @@ import ObvTypes import OlvidUtils import ObvUICoreData -final class ReplaceDiscussionSharedExpirationConfigurationOperation: OperationWithSpecificReasonForCancel { +final class ReplaceDiscussionSharedExpirationConfigurationOperation: ContextualOperationWithSpecificReasonForCancel { - let persistedDiscussionObjectID: NSManagedObjectID - let expirationJSON: ExpirationJSON - let ownedCryptoIdAsInitiator: ObvCryptoId + private let ownedCryptoIdAsInitiator: ObvCryptoId + private let discussionId: DiscussionIdentifier + private let expirationJSON: ExpirationJSON - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: ReplaceDiscussionSharedExpirationConfigurationOperation.self)) - init(persistedDiscussionObjectID: NSManagedObjectID, expirationJSON: ExpirationJSON, ownedCryptoIdAsInitiator: ObvCryptoId) { - self.persistedDiscussionObjectID = persistedDiscussionObjectID - self.expirationJSON = expirationJSON + init(ownedCryptoIdAsInitiator: ObvCryptoId, discussionId: DiscussionIdentifier, expirationJSON: ExpirationJSON) { self.ownedCryptoIdAsInitiator = ownedCryptoIdAsInitiator + self.discussionId = discussionId + self.expirationJSON = expirationJSON super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - ObvStack.shared.performBackgroundTaskAndWait { (context) in - - let discussion: PersistedDiscussion - do { - guard let _discussion = try PersistedDiscussion.get(objectID: persistedDiscussionObjectID, within: context) else { - return cancel(withReason: .discussionCannotBeFound) - } - discussion = _discussion - } catch { - return cancel(withReason: .coreDataError(error: error)) - } + do { - do { - try discussion.sharedConfiguration.replacePersistedDiscussionSharedConfiguration(with: expirationJSON, initiator: .ownedIdentity(ownedCryptoId: ownedCryptoIdAsInitiator)) - } catch { - return cancel(withReason: .failedToReplaceSharedConfiguration(error: error)) + guard let persistedOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoIdAsInitiator, within: obvContext.context) else { + return cancel(withReason: .couldNotFindPersistedOwnedIdentity) } - do { - guard context.hasChanges else { return } - try context.save(logOnFailure: log) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - + try persistedOwnedIdentity.replaceDiscussionSharedConfigurationSentByThisOwnedIdentity( + with: expirationJSON, + inDiscussionWithId: discussionId) + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } -} - -enum UpdateDiscussionSharedExpirationConfigurationOperationReasonForCancel: LocalizedErrorWithLogType { - case coreDataError(error: Error) - case discussionCannotBeFound - case failedToReplaceSharedConfiguration(error: Error) - var logType: OSLogType { - switch self { - case .coreDataError, .failedToReplaceSharedConfiguration: - return .fault - case .discussionCannotBeFound: - return .error + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindPersistedOwnedIdentity + + var logType: OSLogType { + switch self { + case .coreDataError, .couldNotFindPersistedOwnedIdentity: + return .fault + } } - } - - var errorDescription: String? { - switch self { - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .discussionCannotBeFound: - return "Could not find discussion in database" - case .failedToReplaceSharedConfiguration(error: let error): - return "Failed to replace shared config: \(error.localizedDescription)" + + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindPersistedOwnedIdentity: + return "Could not find owned identity" + } } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MarkAllIncompleteReceivedFyleMessageJoinWithStatusAsCancelledByServer.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MarkAllIncompleteReceivedFyleMessageJoinWithStatusAsCancelledByServer.swift index d2c5d39d..64ab3561 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MarkAllIncompleteReceivedFyleMessageJoinWithStatusAsCancelledByServer.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MarkAllIncompleteReceivedFyleMessageJoinWithStatusAsCancelledByServer.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,33 +22,30 @@ import CoreData import os.log import OlvidUtils import ObvUICoreData +import ObvTypes /// This operation is typically executed when requesting the download progresses of incomplete attachments that results being absent from the engine's inbox. /// In that case, we know we won't receive the missing bytes of any of the message attachments, so we mark all the incomplete `ReceivedFyleMessageJoinWithStatus` /// of the message as `cancelledByServer`. -final class MarkAllIncompleteReceivedFyleMessageJoinWithStatusAsCancelledByServer: OperationWithSpecificReasonForCancel { +final class MarkAllIncompleteReceivedFyleMessageJoinWithStatusAsCancelledByServer: ContextualOperationWithSpecificReasonForCancel { private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: MarkAllIncompleteReceivedFyleMessageJoinWithStatusAsCancelledByServer.self)) + private let ownedCryptoId: ObvCryptoId private let messageIdentifierFromEngine: Data - init(messageIdentifierFromEngine: Data) { + init(ownedCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data) { + self.ownedCryptoId = ownedCryptoId self.messageIdentifierFromEngine = messageIdentifierFromEngine super.init() } - override func main() { - - ObvStack.shared.performBackgroundTaskAndWait { (context) in - - let receivedMessages: [PersistedMessageReceived] - do { - receivedMessages = try PersistedMessageReceived.getAll(messageIdentifierFromEngine: messageIdentifierFromEngine, within: context) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + do { + + let receivedMessages = try PersistedMessageReceived.getAll(ownedCryptoId: ownedCryptoId, messageIdentifierFromEngine: messageIdentifierFromEngine, within: obvContext.context) guard !receivedMessages.isEmpty else { // No message found, so there is nothing to do @@ -62,41 +59,17 @@ final class MarkAllIncompleteReceivedFyleMessageJoinWithStatusAsCancelledByServe for join in message.fyleMessageJoinWithStatuses { switch join.status { case .downloadable, .downloading: - join.tryToSetStatusTo(.cancelledByServer) + join.tryToSetStatusToCancelledByServer() case .complete, .cancelledByServer: break } } } - do { - try context.save(logOnFailure: log) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - + } catch { + return cancel(withReason: .coreDataError(error: error)) } - - } - -} - -enum MarkAllIncompleteReceivedFyleMessageJoinWithStatusAsCancelledByServerReasonForCancel: LocalizedErrorWithLogType { - case coreDataError(error: Error) - - var logType: OSLogType { - switch self { - case .coreDataError: - return .fault - } - } - - var errorDescription: String? { - switch self { - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MarkAllMessagesAsNotNewWithinDiscussionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MarkAllMessagesAsNotNewWithinDiscussionOperation.swift index 706f8234..62b34c5b 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MarkAllMessagesAsNotNewWithinDiscussionOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MarkAllMessagesAsNotNewWithinDiscussionOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,92 +22,149 @@ import CoreData import os.log import OlvidUtils import ObvUICoreData +import ObvTypes -final class MarkAllMessagesAsNotNewWithinDiscussionOperation: ContextualOperationWithSpecificReasonForCancel { +final class MarkAllMessagesAsNotNewWithinDiscussionOperation: ContextualOperationWithSpecificReasonForCancel, OperationProvidingDiscussionReadJSON { - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: MarkAllMessagesAsNotNewWithinDiscussionOperation.self)) - - private let persistedDiscussionObjectID: TypeSafeManagedObjectID? - private let draftPermanentID: ObvManagedObjectPermanentID? - - init(persistedDiscussionObjectID: TypeSafeManagedObjectID) { - self.persistedDiscussionObjectID = persistedDiscussionObjectID - self.draftPermanentID = nil - super.init() + enum Input { + case persistedDiscussionObjectID(persistedDiscussionObjectID: TypeSafeManagedObjectID) + case draftPermanentID(draftPermanentID: ObvManagedObjectPermanentID) + case discussionReadJSON(ownedCryptoId: ObvCryptoId, discussionRead: DiscussionReadJSON) } - - init(draftPermanentID: ObvManagedObjectPermanentID) { - self.persistedDiscussionObjectID = nil - self.draftPermanentID = draftPermanentID + + private let input: Input + + init(input: Input) { + self.input = input super.init() } - override func main() { + private(set) var ownedCryptoId: ObvCryptoId? + private(set) var discussionReadJSONToSend: DiscussionReadJSON? - os_log("Executing a MarkAllMessagesAsNotNewWithinDiscussionOperation for discussion %{public}@", log: log, type: .debug, persistedDiscussionObjectID.debugDescription) + + enum Result { + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case processed + } - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + private(set) var result: Result? + + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - obvContext.performAndWait { + do { + + let ownedCryptoId: ObvCryptoId + let discussionId: DiscussionIdentifier + let dateWhenMessageTurnedNotNew: Date + let untilDate: Date? + let requestReceivedFromAnotherOwnedDevice: Bool + switch input { + case .persistedDiscussionObjectID(persistedDiscussionObjectID: let persistedDiscussionObjectID): + (ownedCryptoId, discussionId) = try PersistedObvOwnedIdentity.getDiscussionIdentifiers(from: persistedDiscussionObjectID, within: obvContext.context) + dateWhenMessageTurnedNotNew = Date() + untilDate = nil + requestReceivedFromAnotherOwnedDevice = false + case .draftPermanentID(draftPermanentID: let draftPermanentID): + (ownedCryptoId, discussionId) = try PersistedObvOwnedIdentity.getDiscussionIdentifiers(from: draftPermanentID, within: obvContext.context) + dateWhenMessageTurnedNotNew = Date() + untilDate = nil + requestReceivedFromAnotherOwnedDevice = false + case .discussionReadJSON(ownedCryptoId: let _ownedCryptoId, discussionRead: let discussionRead): + ownedCryptoId = _ownedCryptoId + dateWhenMessageTurnedNotNew = discussionRead.lastReadMessageServerTimestamp + untilDate = discussionRead.lastReadMessageServerTimestamp + discussionId = try discussionRead.getDiscussionId(ownedCryptoId: ownedCryptoId) + requestReceivedFromAnotherOwnedDevice = true + } + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + self.ownedCryptoId = ownedIdentity.cryptoId + + let lastReadMessageServerTimestamp = try ownedIdentity.markAllMessagesAsNotNew(discussionId: discussionId, untilDate: untilDate, dateWhenMessageTurnedNotNew: dateWhenMessageTurnedNotNew) + do { - - let discussion: PersistedDiscussion - if let persistedDiscussionObjectID = self.persistedDiscussionObjectID { - guard let _discussion = try PersistedDiscussion.get(objectID: persistedDiscussionObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDiscussion) - } - discussion = _discussion - } else if let draftPermanentID = self.draftPermanentID { - guard let draft = try PersistedDraft.getManagedObject(withPermanentID: draftPermanentID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDiscussion) - } - discussion = draft.discussion - } else { - return cancel(withReason: .couldNotFindDiscussion) + let isDiscussionActive = try ownedIdentity.isDiscussionActive(discussionId: discussionId) + let shouldSendDiscussionReadJSON = isDiscussionActive && !requestReceivedFromAnotherOwnedDevice + if let lastReadMessageServerTimestamp, shouldSendDiscussionReadJSON { + discussionReadJSONToSend = try ownedIdentity.getDiscussionReadJSON(discussionId: discussionId, lastReadMessageServerTimestamp: lastReadMessageServerTimestamp) } - - try PersistedMessageReceived.markAllAsNotNew(within: discussion) - try PersistedMessageSystem.markAllAsNotNew(within: discussion) } catch { + assertionFailure(error.localizedDescription) // Continue anyway + } + + result = .processed + + } catch { + if let error = error as? ObvUICoreDataError { + switch error { + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + result = .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + return + case .couldNotFindDiscussionWithId(discussionId: let discussionId): + switch discussionId { + case .groupV2(let id): + switch id { + case .groupV2Identifier(let groupIdentifier): + result = .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + return + case .objectID: + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + case .oneToOne, .groupV1: + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + default: + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + } else { + assertionFailure() return cancel(withReason: .coreDataError(error: error)) } - } } -} - - -enum MarkAllMessagesAsNotNewWithinDiscussionOperationReasonForCancel: LocalizedErrorWithLogType { - case coreDataError(error: Error) - case couldNotFindDiscussion - case contextIsNil + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindDiscussion + case contextIsNil + case couldNotFindOwnedIdentity - var logType: OSLogType { - switch self { - case .coreDataError, - .contextIsNil: - return .fault - case .couldNotFindDiscussion: - return .error + var logType: OSLogType { + switch self { + case .coreDataError, + .contextIsNil, + .couldNotFindOwnedIdentity: + return .fault + case .couldNotFindDiscussion: + return .error + } } - } - - var errorDescription: String? { - switch self { - case .contextIsNil: - return "Context is nil" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .couldNotFindDiscussion: - return "Could not find discussion in database" + + var errorDescription: String? { + switch self { + case .contextIsNil: + return "Context is nil" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindDiscussion: + return "Could not find discussion in database" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + } } + } - } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MarkAsOpenedOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MarkAsOpenedOperation.swift index a3273c93..8e385367 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MarkAsOpenedOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MarkAsOpenedOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -36,25 +36,21 @@ final class MarkAsOpenedOperation: ContextualOperationWithSpecificReasonForCance super.init() } - override func main() { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - guard let fyle = try ReceivedFyleMessageJoinWithStatus.get(objectID: receivedFyleMessageJoinWithStatusID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindReceivedFyleMessageJoinWithStatus) - } - guard !fyle.receivedMessage.readingRequiresUserAction else { - assertionFailure() - return cancel(withReason: .tryToMarkAsOpenedAMessageWithReadingRequiresUserAction) - } - fyle.markAsOpened() - } catch { - return cancel(withReason: .coreDataError(error: error)) + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + guard let fyle = try ReceivedFyleMessageJoinWithStatus.get(objectID: receivedFyleMessageJoinWithStatusID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindReceivedFyleMessageJoinWithStatus) + } + guard !fyle.receivedMessage.readingRequiresUserAction else { + assertionFailure() + return cancel(withReason: .tryToMarkAsOpenedAMessageWithReadingRequiresUserAction) } + fyle.markAsOpened() + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Message Retention/DeleteMessagesWithExpiredCountBasedRetentionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Message Retention/DeleteMessagesWithExpiredCountBasedRetentionOperation.swift index 84862041..fad381cf 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Message Retention/DeleteMessagesWithExpiredCountBasedRetentionOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Message Retention/DeleteMessagesWithExpiredCountBasedRetentionOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Message Retention/DeleteMessagesWithExpiredTimeBasedRetentionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Message Retention/DeleteMessagesWithExpiredTimeBasedRetentionOperation.swift index a11da0ad..6e8eebcb 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Message Retention/DeleteMessagesWithExpiredTimeBasedRetentionOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Message Retention/DeleteMessagesWithExpiredTimeBasedRetentionOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MessagesThatRequireUserAction/AllowReadingOfAllMessagesReceivedThatRequireUserActionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MessagesThatRequireUserAction/AllowReadingOfAllMessagesReceivedThatRequireUserActionOperation.swift deleted file mode 100644 index a610e890..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MessagesThatRequireUserAction/AllowReadingOfAllMessagesReceivedThatRequireUserActionOperation.swift +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import os.log -import OlvidUtils -import ObvUICoreData - - -/// This operation allows reading of all ephemeral received messages that requires user action (e.g. tap) before displaying its content, within the given discussion, but only if appropriate. -/// -/// This operation allows to implement the auto-read feature. -/// -/// This operation does nothing if the discussion is not the one corresponding to the user current activity, or if the app is not initialized and active. -/// -final class AllowReadingOfAllMessagesReceivedThatRequireUserActionOperation: OperationWithSpecificReasonForCancel { - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: AllowReadingOfAllMessagesReceivedThatRequireUserActionOperation.self)) - - let discussionPermanentID: ObvManagedObjectPermanentID - - init(discussionPermanentID: ObvManagedObjectPermanentID) { - self.discussionPermanentID = discussionPermanentID - super.init() - } - - override func main() { - - guard ObvUserActivitySingleton.shared.currentDiscussionPermanentID == discussionPermanentID else { return } - - ObvStack.shared.performBackgroundTaskAndWait { context in - - // If we reach this point, the app is initialized and ative, and the user is in the appropriate discussion. - // We get all received messages that still require autorization before displaying their content. - - let receivedMessagesThatRequireUserActionForReading: [PersistedMessageReceived] - do { - receivedMessagesThatRequireUserActionForReading = try PersistedMessageReceived.getAllReceivedMessagesThatRequireUserActionForReading(discussionPermanentID: discussionPermanentID, within: context) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - /* For each received message that still requires autorization before displaying their content, - * we check whether the discussion has its auto-read configuration set to true (we expect this to - * be true for all messages, or false for all messages, since they come from the same discussion). - * We also check that the ephemerality of the message is at least as permissive as that of the discussion, - * otherwise, we do not auto-read. - */ - - receivedMessagesThatRequireUserActionForReading.forEach { receivedMessageThatRequireUserActionForReading in - guard receivedMessageThatRequireUserActionForReading.discussion.autoRead == true else { return } - // Check that the message ephemerality is at least that of the discussion, otherwise, do not auto read - guard receivedMessageThatRequireUserActionForReading.ephemeralityIsAtLeastAsPermissiveThanDiscussionSharedConfiguration else { - return - } - do { - try receivedMessageThatRequireUserActionForReading.allowReading(now: Date()) - } catch { - os_log("Could not auto-read received message although we should: %{public}@", log: log, type: .fault, error.localizedDescription) - // Continue anyway - } - } - - do { - try context.save(logOnFailure: log) - } catch { - cancel(withReason: .coreDataError(error: error)) - return - } - - } - - } - -} - - -enum AllowReadingOfAllMessagesReceivedThatRequireUserActionOperationReasonForCancel: LocalizedErrorWithLogType { - - case messageDoesNotExist - case coreDataError(error: Error) - - var logType: OSLogType { - switch self { - case .coreDataError: - return .fault - case .messageDoesNotExist: - return .info - } - } - - var errorDescription: String? { - switch self { - case .messageDoesNotExist: - return "We could not find the persisted message in database" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MessagesThatRequireUserAction/AllowReadingOfMessagesReceivedThatRequireUserActionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MessagesThatRequireUserAction/AllowReadingOfMessagesReceivedThatRequireUserActionOperation.swift index c2486803..9fee4c7d 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MessagesThatRequireUserAction/AllowReadingOfMessagesReceivedThatRequireUserActionOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MessagesThatRequireUserAction/AllowReadingOfMessagesReceivedThatRequireUserActionOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,142 +22,215 @@ import CoreData import os.log import OlvidUtils import ObvUICoreData +import ObvTypes +/// /// This operation allows reading of an ephemeral received message that requires user action (e.g. tap) before displaying its content, but only if appropriate. /// /// This operation shall only be called when the user **explicitely** requested to open a message (in particular, it shall **not** be called for implementing /// the auto-read feature). /// -/// This operation does nothing if the discussion is not the one corresponding to the user current activity, or if the app is not initialized and active. -/// -final class AllowReadingOfMessagesReceivedThatRequireUserActionOperation: OperationWithSpecificReasonForCancel { - +final class AllowReadingOfMessagesReceivedThatRequireUserActionOperation: ContextualOperationWithSpecificReasonForCancel, OperationProvidingLimitedVisibilityMessageOpenedJSONs { + private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: AllowReadingOfMessagesReceivedThatRequireUserActionOperation.self)) - let persistedMessageReceivedObjectIDs: Set> + enum Input { + case requestedOnCurrentDevice(ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier, messageId: ReceivedMessageIdentifier) + case requestedOnAnotherOwnedDevice(ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier, messageId: ReceivedMessageIdentifier, messageUploadTimestampFromServer: Date) + } - init(persistedMessageReceivedObjectIDs: Set>) { - self.persistedMessageReceivedObjectIDs = persistedMessageReceivedObjectIDs + let input: Input + + init(_ input: Input) { + self.input = input super.init() } + + var ownedCryptoId: ObvCryptoId? { + switch input { + case .requestedOnAnotherOwnedDevice(ownedCryptoId: let ownedCryptoId, discussionId: _, messageId: _, messageUploadTimestampFromServer: _): + return ownedCryptoId + case .requestedOnCurrentDevice(ownedCryptoId: let ownedCryptoId, discussionId: _, messageId: _): + return ownedCryptoId + } + } + + private(set) var limitedVisibilityMessageOpenedJSONsToSend = [ObvUICoreData.LimitedVisibilityMessageOpenedJSON]() + + + enum Result { + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case processed + } - override func main() { + private(set) var result: Result? - var discussionObjectIDsToRefresh = Set() - - ObvStack.shared.performBackgroundTaskAndWait { (context) in + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { - /* The following line was added to solve a recurring merge conflict between the context created here - * and the one one created in ProcessPersistedMessageAsItTurnsNotNewOperation. I do not understand why - * this is required at all since these two operations cannot be executed at the same time. Still, - * if we do not specify this merge policy, it is easy to reproduce a merge conflict: configure a discussion - * with only readOnly messages and auto reading, and let the contact send several messages in a row. - */ - context.mergePolicy = NSMergePolicy.mergeByPropertyStoreTrump + let ownedCryptoId: ObvCryptoId + let discussionId: DiscussionIdentifier + let messageId: ReceivedMessageIdentifier + let dateWhenMessageWasRead: Date + let shouldSendLimitedVisibilityMessageOpenedJSON: Bool + let requestedOnAnotherOwnedDevice: Bool + switch input { + case .requestedOnCurrentDevice(let _ownedCryptoId, let _discussionId, let _messageId): + ownedCryptoId = _ownedCryptoId + discussionId = _discussionId + messageId = _messageId + dateWhenMessageWasRead = Date() + shouldSendLimitedVisibilityMessageOpenedJSON = true + requestedOnAnotherOwnedDevice = false + case .requestedOnAnotherOwnedDevice(let _ownedCryptoId, let _discussionId, let _messageId, let messageUploadTimestampFromServer): + ownedCryptoId = _ownedCryptoId + discussionId = _discussionId + messageId = _messageId + dateWhenMessageWasRead = messageUploadTimestampFromServer + shouldSendLimitedVisibilityMessageOpenedJSON = false + requestedOnAnotherOwnedDevice = true + } - for messageID in persistedMessageReceivedObjectIDs { - - let messageReceived: PersistedMessageReceived - do { - guard let _message = try PersistedMessageReceived.get(with: messageID, within: context) else { - return - } - messageReceived = _message - } catch { - assertionFailure() - os_log("Could not get received message: %{public}@", log: log, type: .fault, error.localizedDescription) - // Continue anyway - return - } - - guard ObvUserActivitySingleton.shared.currentDiscussionPermanentID == messageReceived.discussion.discussionPermanentID else { - assertionFailure("How is it possible that the user requested to read a (say) read once message if she is not currently within the corresponding discussion?") - continue - } + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + let infos = try ownedIdentity.userWantsToReadReceivedMessageWithLimitedVisibility(discussionId: discussionId, messageId: messageId, dateWhenMessageWasRead: dateWhenMessageWasRead, requestedOnAnotherOwnedDevice: requestedOnAnotherOwnedDevice) + + // If we indeed deleted at least one message, we must refresh the view context and notify (to, e.g., delete hard links) + if let infos { + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + // We deleted some persisted messages. We notify about that. + InfoAboutWipedOrDeletedPersistedMessage.notifyThatMessagesWereWipedOrDeleted([infos]) + // Refresh objects in the view context + InfoAboutWipedOrDeletedPersistedMessage.refresh(viewContext: viewContext, [infos]) + } + } + + // If the user decide to read the message on this device, we must notify other devices. + // To make this possible, we compute a LimitedVisibilityMessageOpenedJSON that will be processed by another operation. + + if shouldSendLimitedVisibilityMessageOpenedJSON { do { - try messageReceived.allowReading(now: Date()) + let limitedVisibilityMessageOpenedJSONToSend = try ownedIdentity.getLimitedVisibilityMessageOpenedJSON(discussionId: discussionId, messageId: messageId) + limitedVisibilityMessageOpenedJSONsToSend = [limitedVisibilityMessageOpenedJSONToSend] } catch { - return cancel(withReason: .couldNotAllowReading) + assertionFailure(error.localizedDescription) } - - discussionObjectIDsToRefresh.insert(messageReceived.discussion.objectID) - } + // The following allows to make sure we properly refresh the discussion's messages in the view context. + // Although this is not required for the read message (thanks the view context's auto refresh feature), this is required to refresh messages that replied to it. + do { - try context.save(logOnFailure: log) + let receivedMessageObjectID = try ownedIdentity.getObjectIDOfReceivedMessage(discussionId: discussionId, messageId: messageId) + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + viewContext.perform { + guard let object = viewContext.registeredObject(for: receivedMessageObjectID) else { return } + viewContext.refresh(object, mergeChanges: false) + // We also look for messages containing a reply-to to the messages that have been interacted with + let registeredMessages = ObvStack.shared.viewContext.registeredObjects.compactMap({ $0 as? PersistedMessage }) + registeredMessages.forEach { replyTo in + switch replyTo.genericRepliesTo { + case .available(message: let message): + if message.objectID == receivedMessageObjectID { + ObvStack.shared.viewContext.refresh(replyTo, mergeChanges: false) + } + case .deleted, .notAvailableYet, .none: + return + } + } + } + } } catch { - cancel(withReason: .coreDataError(error: error)) - return - } - - } - - // The following allows to make sure we properly refresh the discussion in the view context - // For now, it is not required since the viewContext is automatically refreshed. But, some day, we won't rely on automatic refresh. - let messageObjectIDs = persistedMessageReceivedObjectIDs - ObvStack.shared.viewContext.perform { - - for messageID in messageObjectIDs { - if let message = try? PersistedMessageReceived.get(with: messageID, within: ObvStack.shared.viewContext) { - ObvStack.shared.viewContext.refresh(message, mergeChanges: false) + if (error as? ObvUICoreData.PersistedDiscussion.ObvError) == .couldNotFindMessage { + // This is ok as this happens when the message was } else { - assertionFailure() + assertionFailure(error.localizedDescription) } } - // We also look for messages containing a reply-to to the messages that have been interacted with - let registeredMessages = ObvStack.shared.viewContext.registeredObjects.compactMap({ $0 as? PersistedMessage }) - registeredMessages.forEach { replyTo in - switch replyTo.genericRepliesTo { - case .available(message: let message): - if let receivedMessage = message as? PersistedMessageReceived, messageObjectIDs.contains(receivedMessage.typedObjectID) { - ObvStack.shared.viewContext.refresh(replyTo, mergeChanges: false) - } - case .deleted, .notAvailableYet, .none: + result = .processed + + } catch { + if let error = error as? ObvUICoreDataError { + switch error { + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + result = .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) return + case .couldNotFindDiscussionWithId(discussionId: let discussionId): + switch discussionId { + case .groupV2(let id): + switch id { + case .groupV2Identifier(let groupIdentifier): + result = .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + return + case .objectID: + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + case .oneToOne, .groupV1: + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + default: + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } - } - - for discussionID in discussionObjectIDsToRefresh { - if let discussion = try? PersistedDiscussion.get(objectID: discussionID, within: ObvStack.shared.viewContext) { - ObvStack.shared.viewContext.refresh(discussion, mergeChanges: false) - } else { + } else if let error = error as? ObvUICoreData.PersistedDiscussion.ObvError { + switch error { + case .couldNotFindMessage: + // This can happen for a read once message, if it has already been deleted + result = .processed + return + default: assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } + } else { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } } } - -} - -enum AllowReadingOfReadOnceMessageOperationReasonForCancel: LocalizedErrorWithLogType { - case messageDoesNotExist - case coreDataError(error: Error) - case couldNotAllowReading - - var logType: OSLogType { - switch self { - case .coreDataError, - .couldNotAllowReading: - return .fault - case .messageDoesNotExist: - return .info + enum ReasonForCancel: LocalizedErrorWithLogType { + + case messageDoesNotExist + case coreDataError(error: Error) + case couldNotAllowReading + case couldNotFindOwnedIdentity + + var logType: OSLogType { + switch self { + case .coreDataError, + .couldNotAllowReading, + .couldNotFindOwnedIdentity: + return .fault + case .messageDoesNotExist: + return .info + } } - } - - var errorDescription: String? { - switch self { - case .messageDoesNotExist: - return "We could not find the persisted message in database" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .couldNotAllowReading: - return "Could not allow reading" + + var errorDescription: String? { + switch self { + case .messageDoesNotExist: + return "We could not find the persisted message in database" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotAllowReading: + return "Could not allow reading" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + } } + } - + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MessagesThatRequireUserAction/TryToAutoReadDiscussionsReceivedMessagesThatRequireUserActionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MessagesThatRequireUserAction/TryToAutoReadDiscussionsReceivedMessagesThatRequireUserActionOperation.swift new file mode 100644 index 00000000..9bff703e --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/MessagesThatRequireUserAction/TryToAutoReadDiscussionsReceivedMessagesThatRequireUserActionOperation.swift @@ -0,0 +1,183 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import OlvidUtils +import ObvUICoreData +import ObvTypes + + + +/// This operation allows reading of all ephemeral received messages that requires user action (e.g. tap) before displaying its content, within the given discussion, but only if appropriate. +/// +/// This operation allows to implement the auto-read feature. +/// +/// This operation does nothing if the discussion is not the one corresponding to the user current activity. +/// +final class TryToAutoReadDiscussionsReceivedMessagesThatRequireUserActionOperation: ContextualOperationWithSpecificReasonForCancel, OperationProvidingLimitedVisibilityMessageOpenedJSONs { + + private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: TryToAutoReadDiscussionsReceivedMessagesThatRequireUserActionOperation.self)) + + enum Input { + case discussionPermanentID(discussionPermanentID: DiscussionPermanentID) + case operationProvidingDiscussionPermanentID(op: OperationProvidingDiscussionPermanentID) + } + + let input: Input + + init(input: Input) { + self.input = input + super.init() + } + + /// This array stores all the `LimitedVisibilityMessageOpenedJSON` that should be sent after this operation finishes. + private(set) var limitedVisibilityMessageOpenedJSONsToSend = [ObvUICoreData.LimitedVisibilityMessageOpenedJSON]() + private(set) var ownedCryptoId: ObvCryptoId? + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + let discussionPermanentID: DiscussionPermanentID + switch input { + case .discussionPermanentID(discussionPermanentID: let _discussionPermanentID): + discussionPermanentID = _discussionPermanentID + case .operationProvidingDiscussionPermanentID(op: let op): + guard let _discussionPermanentID = op.discussionPermanentID else { return } + discussionPermanentID = _discussionPermanentID + } + + do { + + let (ownedCryptoId, discussionId) = try PersistedDiscussion.getIdentifiers(for: discussionPermanentID, within: obvContext.context) + + self.ownedCryptoId = ownedCryptoId + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + guard ObvUserActivitySingleton.shared.currentDiscussionPermanentID == discussionPermanentID else { return } + + let dateWhenMessageWasRead = Date() + + let (infos, identifiersOfReadReceivedMessages) = try ownedIdentity.userWantsToAllowReadingAllReceivedMessagesReceivedThatRequireUserAction(discussionId: discussionId, dateWhenMessageWasRead: dateWhenMessageWasRead) + + // If the user decide to read the message on this device, we must notify other devices. + // To make this possible, we compute a LimitedVisibilityMessageOpenedJSON for each message. They will be processed by another operation. + + for messageId in identifiersOfReadReceivedMessages { + do { + let limitedVisibilityMessageOpenedJSON = try ownedIdentity.getLimitedVisibilityMessageOpenedJSON(discussionId: discussionId, messageId: messageId) + limitedVisibilityMessageOpenedJSONsToSend.append(limitedVisibilityMessageOpenedJSON) + } catch { + assertionFailure(error.localizedDescription) // Continue anyway + } + } + + // If we indeed deleted at least one message, we must refresh the view context and notify (to, e.g., delete hard links) + + if !infos.isEmpty { + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + // We deleted some persisted messages. We notify about that. + InfoAboutWipedOrDeletedPersistedMessage.notifyThatMessagesWereWipedOrDeleted(infos) + // Refresh objects in the view context + InfoAboutWipedOrDeletedPersistedMessage.refresh(viewContext: viewContext, infos) + } + } + + // The following allows to make sure we properly refresh the discussion's messages in the view context. + // Although this is not required for the read messages (thanks the view context's auto refresh feature), this is required to refresh messages that replied to it. + + if !identifiersOfReadReceivedMessages.isEmpty { + do { + for messageId in identifiersOfReadReceivedMessages { + let receivedMessageObjectID = try ownedIdentity.getObjectIDOfReceivedMessage(discussionId: discussionId, messageId: messageId) + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + viewContext.perform { + guard let object = viewContext.registeredObject(for: receivedMessageObjectID) else { return } + viewContext.refresh(object, mergeChanges: false) + // We also look for messages containing a reply-to to the messages that have been interacted with + let registeredMessages = ObvStack.shared.viewContext.registeredObjects.compactMap({ $0 as? PersistedMessage }) + registeredMessages.forEach { replyTo in + switch replyTo.genericRepliesTo { + case .available(message: let message): + if message.objectID == receivedMessageObjectID { + ObvStack.shared.viewContext.refresh(replyTo, mergeChanges: false) + } + case .deleted, .notAvailableYet, .none: + return + } + } + } + } + } + } catch { + assertionFailure(error.localizedDescription) + } + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case messageDoesNotExist + case coreDataError(error: Error) + case discussionDoesNotExist + case couldNotFindOwnedIdentity + + var logType: OSLogType { + switch self { + case .coreDataError, .discussionDoesNotExist, .couldNotFindOwnedIdentity: + return .fault + case .messageDoesNotExist: + return .info + } + } + + var errorDescription: String? { + switch self { + case .messageDoesNotExist: + return "We could not find the persisted message in database" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + case .discussionDoesNotExist: + return "Discussion does not exist" + } + } + + } + +} + + +protocol OperationProvidingDiscussionPermanentID: Operation { + + var discussionPermanentID: DiscussionPermanentID? { get } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/ProcessObvReturnReceiptOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/ProcessObvReturnReceiptOperation.swift index c021adc8..94e3df8f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/ProcessObvReturnReceiptOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/ProcessObvReturnReceiptOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -39,74 +39,66 @@ final class ProcessObvReturnReceiptOperation: ContextualOperationWithSpecificRea super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - cancel(withReason: .contextIsNil) - return + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + // Given the nonce and identity in the receipt, we fetch all the corresponding PersistedMessageSentRecipientInfos + + let allMsgSentRcptInfos: Set + do { + allMsgSentRcptInfos = try PersistedMessageSentRecipientInfos.get(withNonce: obvReturnReceipt.nonce, ownedCryptoId: ObvCryptoId(cryptoIdentity: obvReturnReceipt.identity), within: obvContext.context) + } catch let error { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } - - obvContext.performAndWait { - - // Given the nonce and identity in the receipt, we fetch all the corresponding PersistedMessageSentRecipientInfos - - let allMsgSentRcptInfos: Set + + guard !allMsgSentRcptInfos.isEmpty else { + return cancel(withReason: .couldNotFindAnyPersistedMessageSentRecipientInfosInDatabase) + } + + for infos in allMsgSentRcptInfos { + guard let elements = infos.returnReceiptElements else { assertionFailure(); continue } + let contactCryptoId: ObvCryptoId + let rawStatus: Int + let attachmentNumber: Int? do { - allMsgSentRcptInfos = try PersistedMessageSentRecipientInfos.get(withNonce: obvReturnReceipt.nonce, ownedCryptoId: ObvCryptoId(cryptoIdentity: obvReturnReceipt.identity), within: obvContext.context) - } catch let error { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + (contactCryptoId, rawStatus, attachmentNumber) = try obvEngine.decryptPayloadOfObvReturnReceipt(obvReturnReceipt, usingElements: elements) + } catch { + os_log("Could not decrypt the return receipt encrypted payload: %{public}@", log: log, type: .error, error.localizedDescription) + continue } - - guard !allMsgSentRcptInfos.isEmpty else { - return cancel(withReason: .couldNotFindAnyPersistedMessageSentRecipientInfosInDatabase) + guard let status = ReturnReceiptJSON.Status(rawValue: rawStatus) else { + os_log("Could not parse the status within the return receipt", log: log, type: .error) + continue } - - for infos in allMsgSentRcptInfos { - guard let elements = infos.returnReceiptElements else { assertionFailure(); continue } - let contactCryptoId: ObvCryptoId - let rawStatus: Int - let attachmentNumber: Int? - do { - (contactCryptoId, rawStatus, attachmentNumber) = try obvEngine.decryptPayloadOfObvReturnReceipt(obvReturnReceipt, usingElements: elements) - } catch { - os_log("Could not decrypt the return receipt encrypted payload: %{public}@", log: log, type: .error, error.localizedDescription) - continue - } - guard let status = ReturnReceiptJSON.Status(rawValue: rawStatus) else { - os_log("Could not parse the status within the return receipt", log: log, type: .error) - continue - } - guard contactCryptoId == infos.recipientCryptoId else { - // The recipient do not concern the contact (but another contact of the discussion), so we continue the for loop - continue + guard contactCryptoId == infos.recipientCryptoId else { + // The recipient do not concern the contact (but another contact of the discussion), so we continue the for loop + continue + } + + // We have all the information we need to set the delivered or read timestamp for this sent message (and for its attachment if the attachment number if non nil) + + let messageSent = infos.messageSent + + if let attachmentNumber = attachmentNumber { + switch status { + case .delivered: + messageSent.attachmentSentWasDeliveredToRecipient(withCryptoId: contactCryptoId, at: obvReturnReceipt.timestamp, deliveredAttachmentNumber: attachmentNumber, andRead: false) + case .read: + messageSent.attachmentSentWasDeliveredToRecipient(withCryptoId: contactCryptoId, at: obvReturnReceipt.timestamp, deliveredAttachmentNumber: attachmentNumber, andRead: true) } - - // We have all the information we need to set the delivered or read timestamp for this sent message (and for its attachment if the attachment number if non nil) - - let messageSent = infos.messageSent - - if let attachmentNumber = attachmentNumber { - switch status { - case .delivered: - messageSent.attachmentSentWasDeliveredToRecipient(withCryptoId: contactCryptoId, at: obvReturnReceipt.timestamp, deliveredAttachmentNumber: attachmentNumber, andRead: false) - case .read: - messageSent.attachmentSentWasDeliveredToRecipient(withCryptoId: contactCryptoId, at: obvReturnReceipt.timestamp, deliveredAttachmentNumber: attachmentNumber, andRead: true) - } - } else { - switch status { - case .delivered: - messageSent.messageSentWasDeliveredToRecipient(withCryptoId: contactCryptoId, noLaterThan: obvReturnReceipt.timestamp, andRead: false) - case .read: - messageSent.messageSentWasDeliveredToRecipient(withCryptoId: contactCryptoId, noLaterThan: obvReturnReceipt.timestamp, andRead: true) - } + } else { + switch status { + case .delivered: + messageSent.messageSentWasDeliveredToRecipient(withCryptoId: contactCryptoId, noLaterThan: obvReturnReceipt.timestamp, andRead: false) + case .read: + messageSent.messageSentWasDeliveredToRecipient(withCryptoId: contactCryptoId, noLaterThan: obvReturnReceipt.timestamp, andRead: true) } - - // If we reach this point, we can break out of the loop since we updated an appropriate PersistedMessageSentRecipientInfos - break } + + // If we reach this point, we can break out of the loop since we updated an appropriate PersistedMessageSentRecipientInfos + break } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/ProcessPersistedMessagesAsTheyTurnsNotNewOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/ProcessPersistedMessagesAsTheyTurnsNotNewOperation.swift index f8666747..6a355e75 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/ProcessPersistedMessagesAsTheyTurnsNotNewOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/ProcessPersistedMessagesAsTheyTurnsNotNewOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,82 +22,68 @@ import CoreData import os.log import OlvidUtils import ObvUICoreData +import ObvTypes /// When a discussion displays a new message, we consider it to be "not new" anymore. In the case of a `PersistedMessageReceived` instance, we mark the message as `unread` if it it marked as `readOnce`, and we mark it as `read` otherwise. -final class ProcessPersistedMessagesAsTheyTurnsNotNewOperation: ContextualOperationWithSpecificReasonForCancel { +final class ProcessPersistedMessagesAsTheyTurnsNotNewOperation: ContextualOperationWithSpecificReasonForCancel, OperationProvidingDiscussionReadJSON { - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: ProcessPersistedMessagesAsTheyTurnsNotNewOperation.self)) - private let persistedMessageObjectIDs: Set> + private let _ownedCryptoId: ObvCryptoId + private let discussionId: DiscussionIdentifier + private let messageIds: [MessageIdentifier] - init(persistedMessageObjectIDs: Set>) { - self.persistedMessageObjectIDs = persistedMessageObjectIDs + init(ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier, messageIds: [MessageIdentifier]) { + self._ownedCryptoId = ownedCryptoId + self.discussionId = discussionId + self.messageIds = messageIds super.init() } + + var ownedCryptoId: ObvCryptoId? { _ownedCryptoId } + private(set) var discussionReadJSONToSend: DiscussionReadJSON? - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - var discussionObjectIDs = Set>() - let now = Date() + do { - obvContext.performAndWait { - - for persistedMessageObjectID in self.persistedMessageObjectIDs { - - let message: PersistedMessage - do { - guard let _message = try PersistedMessage.get(with: persistedMessageObjectID, within: obvContext.context) else { - continue - } - message = _message - } catch { - cancel(withReason: .coreDataError(error: error)) - return - } - - if let messageReceived = message as? PersistedMessageReceived { - do { - try messageReceived.markAsNotNew(now: now) - } catch { - assertionFailure() - continue - } - } else if let systemMessage = message as? PersistedMessageSystem { - systemMessage.status = .read - } else { - assertionFailure("Unhandled message type") - continue - } - - discussionObjectIDs.insert(message.discussion.typedObjectID) - + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: _ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) } + let dateWhenMessageTurnedNotNew = Date() + + let lastReadMessageServerTimestamp = try ownedIdentity.markAllMessagesAsNotNew(discussionId: discussionId, messageIds: messageIds, dateWhenMessageTurnedNotNew: dateWhenMessageTurnedNotNew) + do { - if !discussionObjectIDs.isEmpty, obvContext.context.hasChanges { + let isDiscussionActive = try ownedIdentity.isDiscussionActive(discussionId: discussionId) + if let lastReadMessageServerTimestamp, isDiscussionActive { + discussionReadJSONToSend = try ownedIdentity.getDiscussionReadJSON(discussionId: discussionId, lastReadMessageServerTimestamp: lastReadMessageServerTimestamp) + } + } catch { + assertionFailure(error.localizedDescription) // Continue anyway + } + + if obvContext.context.hasChanges { + do { + let discussionObjectID = try ownedIdentity.getDiscussionObjectID(discussionId: discussionId) try obvContext.addContextDidSaveCompletionHandler({ error in - guard error == nil else { assertionFailure(error!.localizedDescription); return } + guard error == nil else { return } // The following allows to make sure we properly refresh the discussion in the view context // In particular, this will trigger a proper computation of the new message badges - for objectID in discussionObjectIDs { - ObvStack.shared.viewContext.performAndWait { - guard let discussion = try? PersistedDiscussion.get(objectID: objectID, within: ObvStack.shared.viewContext) else { assertionFailure(); return } - ObvStack.shared.viewContext.refresh(discussion, mergeChanges: false) - } + viewContext.perform { + guard let discussion = viewContext.registeredObject(for: discussionObjectID) else { return } + ObvStack.shared.viewContext.refresh(discussion, mergeChanges: false) } }) + } catch { + assertionFailure(error.localizedDescription) // Continue anyway } - } catch { - os_log("Could not add completion handler to ObvContext: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure(error.localizedDescription) - return cancel(withReason: .coreDataError(error: error)) } - + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } @@ -105,21 +91,21 @@ final class ProcessPersistedMessagesAsTheyTurnsNotNewOperation: ContextualOperat enum ProcessPersistedMessagesAsTheyTurnsNotNewOperationReasonForCancel: LocalizedErrorWithLogType { - case contextIsNil + case couldNotFindOwnedIdentity case coreDataError(error: Error) case couldNotMarkMessageReceivedAsNotNew var logType: OSLogType { switch self { - case .coreDataError, .couldNotMarkMessageReceivedAsNotNew, .contextIsNil: + case .coreDataError, .couldNotMarkMessageReceivedAsNotNew, .couldNotFindOwnedIdentity: return .fault } } var errorDescription: String? { switch self { - case .contextIsNil: - return "Context is nil" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" case .coreDataError(error: let error): return "Core Data error: \(error.localizedDescription)" case .couldNotMarkMessageReceivedAsNotNew: diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Processing Engine Notifications/DeletePersistedMessageSentRecipientInfosWithoutMessageIdentifierFromEngineAndAssociatedToContactIdentityOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Processing Engine Notifications/DeletePersistedMessageSentRecipientInfosWithoutMessageIdentifierFromEngineAndAssociatedToContactIdentityOperation.swift index e03aa37d..039c8533 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Processing Engine Notifications/DeletePersistedMessageSentRecipientInfosWithoutMessageIdentifierFromEngineAndAssociatedToContactIdentityOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Processing Engine Notifications/DeletePersistedMessageSentRecipientInfosWithoutMessageIdentifierFromEngineAndAssociatedToContactIdentityOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Processing Engine Notifications/ProcessContactIntroductionInvitationSentOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Processing Engine Notifications/ProcessContactIntroductionInvitationSentOperation.swift new file mode 100644 index 00000000..58af95f6 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Processing Engine Notifications/ProcessContactIntroductionInvitationSentOperation.swift @@ -0,0 +1,86 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvEngine +import OlvidUtils +import ObvUICoreData +import ObvTypes + +final class ProcessContactIntroductionInvitationSentOperation: ContextualOperationWithSpecificReasonForCancel { + + private let ownedCryptoId: ObvCryptoId + private let contactCryptoIdA: ObvCryptoId + private let contactCryptoIdB: ObvCryptoId + + init(ownedCryptoId: ObvCryptoId, contactCryptoIdA: ObvCryptoId, contactCryptoIdB: ObvCryptoId) { + self.ownedCryptoId = ownedCryptoId + self.contactCryptoIdA = contactCryptoIdA + self.contactCryptoIdB = contactCryptoIdB + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindPersistedOwnedIdentity) + } + + try ownedIdentity.processContactIntroductionInvitationSentByThisOwnedIdentity(contactCryptoIdA: contactCryptoIdA, contactCryptoIdB: contactCryptoIdB) + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindPersistedOwnedIdentity + case contextIsNil + + var logType: OSLogType { + switch self { + case .coreDataError, + .couldNotFindPersistedOwnedIdentity, + .contextIsNil: + return .fault + } + } + + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindPersistedOwnedIdentity: + return "Could not find persisted owned identity" + case .contextIsNil: + return "Context is nil" + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Processing ObvDialogs/ProcessObvDialogOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Processing ObvDialogs/ProcessObvDialogOperation.swift index 7f216810..27d0c571 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Processing ObvDialogs/ProcessObvDialogOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Processing ObvDialogs/ProcessObvDialogOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,143 +23,274 @@ import OlvidUtils import ObvEngine import os.log import ObvUICoreData +import CoreData +import ObvTypes +import ObvSettings -final class ProcessObvDialogOperation: ContextualOperationWithSpecificReasonForCancel { +final class ProcessObvDialogOperation: ContextualOperationWithSpecificReasonForCancel { private let obvDialog: ObvDialog private let obvEngine: ObvEngine + private let syncAtomRequestDelegate: ObvSyncAtomRequestDelegate - init(obvDialog: ObvDialog, obvEngine: ObvEngine) { + init(obvDialog: ObvDialog, obvEngine: ObvEngine, syncAtomRequestDelegate: ObvSyncAtomRequestDelegate) { self.obvDialog = obvDialog self.obvEngine = obvEngine + self.syncAtomRequestDelegate = syncAtomRequestDelegate super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + // In the case the ObvDialog is a group invite, it might be possible to auto-accept the invitation + + switch obvDialog.category { - // In the case the ObvDialog is a group invite, it might be possible to auto-accept the invitation - - switch obvDialog.category { - - case .acceptGroupInvite(groupMembers: _, groupOwner: let groupOwner): - - switch ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom { - case .everyone: - var localDialog = obvDialog - do { - try localDialog.setResponseToAcceptGroupInvite(acceptInvite: true) - } catch { - return cancel(withReason: .couldNotRespondToDialog(error: error)) - } - obvEngine.respondTo(localDialog) - return - case .oneToOneContactsOnly: - do { - let persistedOneToOneContact = try PersistedObvContactIdentity.get(contactCryptoId: groupOwner.cryptoId, ownedIdentityCryptoId: obvDialog.ownedCryptoId, whereOneToOneStatusIs: .oneToOne, within: obvContext.context) - if persistedOneToOneContact != nil { - var localDialog = obvDialog - do { - try localDialog.setResponseToAcceptGroupInvite(acceptInvite: true) - } catch { - return cancel(withReason: .couldNotRespondToDialog(error: error)) - } - obvEngine.respondTo(localDialog) - return + case .acceptGroupInvite(groupMembers: _, groupOwner: let groupOwner): + + switch ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom { + case .everyone: + var localDialog = obvDialog + do { + try localDialog.setResponseToAcceptGroupInvite(acceptInvite: true) + } catch { + return cancel(withReason: .couldNotRespondToDialog(error: error)) + } + let dialogForEngine = localDialog + Task { + try? await obvEngine.respondTo(dialogForEngine) + } + return + case .oneToOneContactsOnly: + do { + let persistedOneToOneContact = try PersistedObvContactIdentity.get(contactCryptoId: groupOwner.cryptoId, ownedIdentityCryptoId: obvDialog.ownedCryptoId, whereOneToOneStatusIs: .oneToOne, within: obvContext.context) + if persistedOneToOneContact != nil { + var localDialog = obvDialog + do { + try localDialog.setResponseToAcceptGroupInvite(acceptInvite: true) + } catch { + return cancel(withReason: .couldNotRespondToDialog(error: error)) + } + let dialogForEngine = localDialog + Task { + try? await obvEngine.respondTo(dialogForEngine) } - } catch { - return cancel(withReason: .coreDataError(error: error)) + return } - case .noOne: - break + } catch { + return cancel(withReason: .coreDataError(error: error)) } - - case .acceptGroupV2Invite(inviter: let inviter, group: _): - - switch ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom { - case .everyone: - var localDialog = obvDialog - do { - try localDialog.setResponseToAcceptGroupV2Invite(acceptInvite: true) - } catch { - return cancel(withReason: .couldNotRespondToDialog(error: error)) - } - obvEngine.respondTo(localDialog) - return - case .oneToOneContactsOnly: - do { - let inviterContact = try PersistedObvContactIdentity.get(contactCryptoId: inviter, ownedIdentityCryptoId: obvDialog.ownedCryptoId, whereOneToOneStatusIs: .oneToOne, within: obvContext.context) - if inviterContact != nil { - var localDialog = obvDialog - do { - try localDialog.setResponseToAcceptGroupV2Invite(acceptInvite: true) - } catch { - return cancel(withReason: .couldNotRespondToDialog(error: error)) - } - obvEngine.respondTo(localDialog) - return + case .noOne: + break + } + + case .acceptGroupV2Invite(inviter: let inviter, group: _): + + switch ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom { + case .everyone: + var localDialog = obvDialog + do { + try localDialog.setResponseToAcceptGroupV2Invite(acceptInvite: true) + } catch { + return cancel(withReason: .couldNotRespondToDialog(error: error)) + } + let dialogForEngine = localDialog + Task { + try? await obvEngine.respondTo(dialogForEngine) + } + return + case .oneToOneContactsOnly: + do { + let inviterContact = try PersistedObvContactIdentity.get(contactCryptoId: inviter, ownedIdentityCryptoId: obvDialog.ownedCryptoId, whereOneToOneStatusIs: .oneToOne, within: obvContext.context) + if inviterContact != nil { + var localDialog = obvDialog + do { + try localDialog.setResponseToAcceptGroupV2Invite(acceptInvite: true) + } catch { + return cancel(withReason: .couldNotRespondToDialog(error: error)) } - } catch { - return cancel(withReason: .coreDataError(error: error)) + let dialogForEngine = localDialog + Task { + try? await obvEngine.respondTo(dialogForEngine) + } + return } - case .noOne: - break + } catch { + return cancel(withReason: .coreDataError(error: error)) } - - default: + case .noOne: break } - // If we reach this point, we could not auto-accept the ObvDialog. - // We persist it. Depending on the category, we create a subentity of - // PersistedInvitation (which is the "new" way of dealing with invitations), - // Or create a "generic" PersistedInvitation. - + default: + break + } + + // In case we receive an ObvSyncAtom from the protocol manager, we can process it immediately + + switch obvDialog.category { + case .syncRequestReceivedFromOtherOwnedDevice(otherOwnedDeviceIdentifier: _, syncAtom: let syncAtom): do { - switch obvDialog.category { - case .oneToOneInvitationSent: - if try PersistedInvitationOneToOneInvitationSent.getPersistedInvitation(uuid: obvDialog.uuid, ownedCryptoId: obvDialog.ownedCryptoId, within: obvContext.context) == nil { - _ = try PersistedInvitationOneToOneInvitationSent(obvDialog: obvDialog, within: obvContext.context) - } - default: - try PersistedInvitation.insertOrUpdate(obvDialog, within: obvContext.context) - } + try process(syncAtom: syncAtom, ownedCryptoId: obvDialog.ownedCryptoId, within: obvContext, viewContext: viewContext) + try syncAtomRequestDelegate.deleteDialog(with: obvDialog.uuid) } catch { - return cancel(withReason: .coreDataError(error: error)) + return cancel(withReason: .couldNotProcessSyncAtom(syncAtom: syncAtom)) } - + // The atom was processed, we can return + return + default: + break + } + + // If we reach this point, we could not auto-accept the ObvDialog. + // We persist it. Depending on the category, we create a subentity of + // PersistedInvitation (which is the "new" way of dealing with invitations), + // Or create a "generic" PersistedInvitation. + + do { + switch obvDialog.category { + case .oneToOneInvitationSent: + if try PersistedInvitationOneToOneInvitationSent.getPersistedInvitation(uuid: obvDialog.uuid, ownedCryptoId: obvDialog.ownedCryptoId, within: obvContext.context) == nil { + _ = try PersistedInvitationOneToOneInvitationSent(obvDialog: obvDialog, within: obvContext.context) + } + default: + try PersistedInvitation.insertOrUpdate(obvDialog, within: obvContext.context) + } + } catch { + return cancel(withReason: .coreDataError(error: error)) } } + + + private func process(syncAtom: ObvSyncAtom, ownedCryptoId: ObvCryptoId, within obvContext: ObvContext, viewContext: NSManagedObjectContext) throws { -} - - -enum ProcessObvDialogOperationReasonForCancel: LocalizedErrorWithLogType { + switch syncAtom { + case .contactNickname(contactCryptoId: let contactCryptoId, contactNickname: let contactNickname): + let contactIdentifier = ObvContactIdentifier(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) + guard let contact = try PersistedObvContactIdentity.get(persisted: contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) else { assertionFailure(); return } + let op1 = UpdateCustomNicknameAndPictureForContactOperation(persistedContactObjectID: contact.objectID, customDisplayName: contactNickname, customPhoto: .url(url: contact.customPhotoURL), makeSyncAtomRequest: false, syncAtomRequestDelegate: nil) + op1.main(obvContext: obvContext, viewContext: viewContext) + assert(!op1.isCancelled) + case .groupV1Nickname(groupOwner: let groupOwner, groupUid: let groupUid, groupNickname: let groupNickname): + let groupIdentifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) + let op1 = SetCustomNameOfJoinedGroupV1Operation(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier, groupNameCustom: groupNickname, makeSyncAtomRequest: false, syncAtomRequestDelegate: nil) + op1.main(obvContext: obvContext, viewContext: viewContext) + assert(!op1.isCancelled) + case .groupV2Nickname(groupIdentifier: let groupIdentifier, groupNickname: let groupNickname): + let op1 = UpdateCustomNameAndGroupV2PhotoOperation(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier, update: .customName(customName: groupNickname), makeSyncAtomRequest: false, syncAtomRequestDelegate: nil) + op1.main(obvContext: obvContext, viewContext: viewContext) + assert(!op1.isCancelled) + case .contactPersonalNote(contactCryptoId: let contactCryptoId, note: let note): + let contactIdentifier = ObvContactIdentifier(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) + let op1 = UpdatePersonalNoteOnContactOperation(contactIdentifier: contactIdentifier, newText: note, makeSyncAtomRequest: false, syncAtomRequestDelegate: nil) + op1.main(obvContext: obvContext, viewContext: viewContext) + assert(!op1.isCancelled) + case .groupV1PersonalNote(groupOwner: let groupOwner, groupUid: let groupUid, note: let note): + let groupIdentifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) + let op1 = UpdatePersonalNoteOnGroupV1Operation(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier, newText: note, makeSyncAtomRequest: false, syncAtomRequestDelegate: nil) + op1.main(obvContext: obvContext, viewContext: viewContext) + assert(!op1.isCancelled) + case .groupV2PersonalNote(groupIdentifier: let groupIdentifier, note: let note): + let op1 = UpdatePersonalNoteOnGroupV2Operation(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier, newText: note, makeSyncAtomRequest: false, syncAtomRequestDelegate: nil) + op1.main(obvContext: obvContext, viewContext: viewContext) + assert(!op1.isCancelled) + case .ownProfileNickname(nickname: let nickname): + let op1 = UpdateOwnedCustomDisplayNameOperation(ownedCryptoId: ownedCryptoId, newCustomDisplayName: nickname, makeSyncAtomRequest: false, syncAtomRequestDelegate: nil) + op1.main(obvContext: obvContext, viewContext: viewContext) + assert(!op1.isCancelled) + case .contactCustomHue(contactCryptoId: _, customHue: _): + // Not implemented under iOS. The protocol manager is not supposed to notify us + assertionFailure() + return + case .contactSendReadReceipt(contactCryptoId: let contactCryptoId, doSendReadReceipt: let doSendReadReceipt): + let contactIdentifier = ObvContactIdentifier(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) + let op1 = UpdateDiscussionLocalConfigurationOperation( + value: .doSendReadReceipt(doSendReadReceipt), + input: .discussionWithOneToOneContact(contactIdentifier: contactIdentifier), + makeSyncAtomRequest: false, + syncAtomRequestDelegate: nil) + op1.main(obvContext: obvContext, viewContext: viewContext) + assert(!op1.isCancelled) + case .groupV1ReadReceipt(groupOwner: let groupOwner, groupUid: let groupUid, doSendReadReceipt: let doSendReadReceipt): + let groupIdentifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) + let op1 = UpdateDiscussionLocalConfigurationOperation( + value: .doSendReadReceipt(doSendReadReceipt), + input: .groupV1Discussion(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier), + makeSyncAtomRequest: false, + syncAtomRequestDelegate: nil) + op1.main(obvContext: obvContext, viewContext: viewContext) + assert(!op1.isCancelled) + case .groupV2ReadReceipt(groupIdentifier: let groupIdentifier, doSendReadReceipt: let doSendReadReceipt): + let op1 = UpdateDiscussionLocalConfigurationOperation( + value: .doSendReadReceipt(doSendReadReceipt), + input: .groupV2Discussion(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier), + makeSyncAtomRequest: false, + syncAtomRequestDelegate: nil) + op1.main(obvContext: obvContext, viewContext: viewContext) + assert(!op1.isCancelled) + case .trustContactDetails: + // This atom should be dealt with by the identity manager and shouldn't have been received here + assertionFailure() + return + case .trustGroupV1Details: + // This atom should be dealt with by the identity manager and shouldn't have been received here + assertionFailure() + return + case .trustGroupV2Details: + // This atom should be dealt with by the identity manager and shouldn't have been received here + assertionFailure() + case .pinnedDiscussions(discussionIdentifiers: let discussionIdentifiers, ordered: let ordered): + let op1 = ReorderDiscussionsOperation(input: .discussionsIdentifiers(discussionIdentifiers: discussionIdentifiers, ordered: ordered), ownedIdentity: ownedCryptoId, makeSyncAtomRequest: false, syncAtomRequestDelegate: nil) + op1.main(obvContext: obvContext, viewContext: viewContext) + assert(!op1.isCancelled) + case .settingDefaultSendReadReceipts(sendReadReceipt: let sendReadReceipt): + ObvMessengerSettings.Discussions.setDoSendReadReceipt(to: sendReadReceipt, changeMadeFromAnotherOwnedDevice: true, ownedCryptoId: ownedCryptoId) + case .settingAutoJoinGroups(category: let category): + let autoAccept = getAutoAcceptGroupInviteFromObvSyncAtomAutoJoinGroupsCategory(category: category) + ObvMessengerSettings.ContactsAndGroups.setAutoAcceptGroupInviteFrom(to: autoAccept, changeMadeFromAnotherOwnedDevice: true, ownedCryptoId: ownedCryptoId) + } + + } + - case coreDataError(error: Error) - case contextIsNil - case couldNotRespondToDialog(error: Error) - - var logType: OSLogType { - .fault + private func getAutoAcceptGroupInviteFromObvSyncAtomAutoJoinGroupsCategory(category: ObvSyncAtom.AutoJoinGroupsCategory) -> ObvMessengerSettings.ContactsAndGroups.AutoAcceptGroupInviteFrom { + switch category { + case .everyone: + return .everyone + case .contacts: + return .oneToOneContactsOnly + case .nobody: + return .noOne + } } + - var errorDescription: String? { - switch self { - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .contextIsNil: - return "The context is not set" - case .couldNotRespondToDialog(error: let error): - return "Could not respond to dialog: \(error.localizedDescription)" + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case contextIsNil + case couldNotRespondToDialog(error: Error) + case couldNotProcessSyncAtom(syncAtom: ObvSyncAtom) + + var logType: OSLogType { + .fault + } + + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .contextIsNil: + return "The context is not set" + case .couldNotRespondToDialog(error: let error): + return "Could not respond to dialog: \(error.localizedDescription)" + case .couldNotProcessSyncAtom(syncAtom: let syncAtom): + return "Could not process syncAtom \(syncAtom.debugDescription)" + } } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Reactions/ProcessSetOrUpdateReactionOnMessageLocalRequestOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Reactions/ProcessSetOrUpdateReactionOnMessageLocalRequestOperation.swift new file mode 100644 index 00000000..ed5a6ff5 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Reactions/ProcessSetOrUpdateReactionOnMessageLocalRequestOperation.swift @@ -0,0 +1,101 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvEngine +import ObvTypes +import OlvidUtils +import ObvCrypto +import ObvUICoreData + + +/// Called when the owned identity decided to set (or replace) a reaction on a message. +final class ProcessSetOrUpdateReactionOnMessageLocalRequestOperation: ContextualOperationWithSpecificReasonForCancel { + + private let ownedCryptoId: ObvCryptoId + private let messageObjectID: TypeSafeManagedObjectID + private let newEmoji: String? + + init(ownedCryptoId: ObvCryptoId, messageObjectID: TypeSafeManagedObjectID, newEmoji: String?) { + self.ownedCryptoId = ownedCryptoId + self.messageObjectID = messageObjectID + self.newEmoji = newEmoji + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + let updatedMessage = try ownedIdentity.processSetOrUpdateReactionOnMessageLocalRequestFromThisOwnedIdentity(messageObjectID: messageObjectID, newEmoji: newEmoji) + + // If the message is registered in the view context, we refresh it + + if let messageObjectID = updatedMessage?.typedObjectID { + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + ObvStack.shared.viewContext.perform { + guard let message = ObvStack.shared.viewContext.registeredObject(for: messageObjectID.objectID) else { return } + ObvStack.shared.viewContext.refresh(message, mergeChanges: false) + } + } + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case contextIsNil + case coreDataError(error: Error) + case couldNotFindOwnedIdentity + + var logType: OSLogType { + switch self { + case .coreDataError, + .contextIsNil, + .couldNotFindOwnedIdentity: + return .error + } + } + + var errorDescription: String? { + switch self { + case .contextIsNil: + return "Context is nil" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Reactions/ProcessSetOrUpdateReactionOnMessageOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Reactions/ProcessSetOrUpdateReactionOnMessageOperation.swift new file mode 100644 index 00000000..6dfaccea --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Reactions/ProcessSetOrUpdateReactionOnMessageOperation.swift @@ -0,0 +1,150 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvEngine +import ObvTypes +import OlvidUtils +import ObvCrypto +import ObvUICoreData + + +/// Called when receiving a remote request (from a contact or from another owned device) to set or edit the reaction on a message. +final class ProcessSetOrUpdateReactionOnMessageOperation: ContextualOperationWithSpecificReasonForCancel { + + + enum Requester { + case contact(contactIdentifier: ObvContactIdentifier) + case ownedIdentity(ownedCryptoId: ObvCryptoId) + } + + private let reactionJSON: ReactionJSON + private let requester: Requester + private let messageUploadTimestampFromServer: Date + + init(reactionJSON: ReactionJSON, requester: Requester, messageUploadTimestampFromServer: Date) { + self.reactionJSON = reactionJSON + self.requester = requester + self.messageUploadTimestampFromServer = messageUploadTimestampFromServer + super.init() + } + + + enum Result { + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case processed + } + + private(set) var result: Result? + + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + let updatedMessage: PersistedMessage? + + switch requester { + + case .contact(contactIdentifier: let contactIdentifier): + + // Get the PersistedObvContactIdentity who requested the edit + + guard let contact = try PersistedObvContactIdentity.get(persisted: contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) else { + return cancel(withReason: .couldNotFindContact) + } + + updatedMessage = try contact.processSetOrUpdateReactionOnMessageRequestFromThisContact(reactionJSON: reactionJSON, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + case .ownedIdentity(ownedCryptoId: let ownedCryptoId): + + // Get the PersistedObvContactIdentity who requested the edit + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + updatedMessage = try ownedIdentity.processSetOrUpdateReactionOnMessageRequestFromThisOwnedIdentity(reactionJSON: reactionJSON, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + result = .processed + + // If the message is registered in the view context, we refresh it + + if let messageObjectID = updatedMessage?.typedObjectID, obvContext.context.hasChanges { + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + ObvStack.shared.viewContext.perform { + guard let message = ObvStack.shared.viewContext.registeredObject(for: messageObjectID.objectID) else { return } + ObvStack.shared.viewContext.refresh(message, mergeChanges: false) + } + } + } + + } catch { + if let error = error as? ObvUICoreDataError { + switch error { + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + result = .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + return + default: + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + } else { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindOwnedIdentity + case couldNotFindContact + + var logType: OSLogType { + switch self { + case .coreDataError, + .couldNotFindContact, + .couldNotFindOwnedIdentity: + return .error + } + } + + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + case .couldNotFindContact: + return "Could not find contact" + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ApplyExistingRemoteDeleteAndEditRequestOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ApplyExistingRemoteDeleteAndEditRequestOperation.swift deleted file mode 100644 index d756ba22..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ApplyExistingRemoteDeleteAndEditRequestOperation.swift +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import OlvidUtils -import ObvEngine -import os.log -import ObvUICoreData -import ObvTypes - - -/// Given its inputs, this operation looks for an existing `RemoteDeleteAndEditRequest`. If one is found, this operation either executes a `WipeMessagesOperation` or an `EditTextBodyOfReceivedMessageOperation` -/// operation, depending on the nature of the request found. -final class ApplyExistingRemoteDeleteAndEditRequestOperation: ContextualOperationWithSpecificReasonForCancel { - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: ApplyExistingRemoteDeleteAndEditRequestOperation.self)) - - private let obvMessage: ObvMessage - private let messageJSON: MessageJSON - - init(obvMessage: ObvMessage, messageJSON: MessageJSON) { - self.obvMessage = obvMessage - self.messageJSON = messageJSON - super.init() - } - - override func main() { - - os_log("Executing an ApplyExistingRemoteDeleteAndEditRequestOperation for obvMessage %{public}@", log: log, type: .debug, obvMessage.messageIdentifierFromEngine.debugDescription) - ObvDisplayableLogs.shared.log("🧨 Starting ApplyExistingRemoteDeleteAndEditRequestOperation") - defer { ObvDisplayableLogs.shared.log("🧨 Ending ApplyExistingRemoteDeleteAndEditRequestOperation") } - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { - - // Grab the persisted contact and the appropriate discussion - - guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: obvMessage.fromContactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { - return cancel(withReason: .couldNotFindPersistedObvContactIdentityInDatabase) - } - - guard let ownedIdentity = persistedContactIdentity.ownedIdentity else { - return cancel(withReason: .couldNotDetermineOwnedIdentity) - } - - let discussion: PersistedDiscussion - switch messageJSON.groupIdentifier { - case .none: - guard let oneToOneDiscussion = persistedContactIdentity.oneToOneDiscussion else { - return cancel(withReason: .couldNotFindDiscussion) - } - discussion = oneToOneDiscussion - case .groupV1(groupV1Identifier: let groupV1Identifier): - guard let contactGroup = try PersistedContactGroup.getContactGroup(groupId: groupV1Identifier, ownedIdentity: ownedIdentity) else { - return cancel(withReason: .couldNotFindPersistedContactGroupInDatabase) - } - discussion = contactGroup.discussion - case .groupV2(groupV2Identifier: let groupV2Identifier): - guard let group = try PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: groupV2Identifier) else { - return cancel(withReason: .couldNotFindPersistedContactGroupInDatabase) - } - guard let groupDiscussion = group.discussion else { - return cancel(withReason: .couldNotFindDiscussion) - } - discussion = groupDiscussion - } - - // Look for an existing RemoteDeleteAndEditRequest for the received message in that discussion - - let remoteRequest = try RemoteDeleteAndEditRequest.getRemoteDeleteAndEditRequest( - discussion: discussion, - senderIdentifier: obvMessage.fromContactIdentity.cryptoId.getIdentity(), - senderThreadIdentifier: messageJSON.senderThreadIdentifier, - senderSequenceNumber: messageJSON.senderSequenceNumber) - - switch remoteRequest { - - case .none: - // We found no existing remote request, there is nothing left to do - return - - case .some(let request): - - // A remote request was found. Depending on its type, we execute a WipeMessagesOperation or an EditTextBodyOfReceivedMessageOperation. - // We do not queue them in order to prevent a deadlock on the obvContext thread, we take advantage of the reentrant feature of performAndWait. - - switch request.requestType { - case .delete: - let op = WipeMessagesOperation(messagesToDelete: [request.messageReferenceJSON], - groupIdentifier: messageJSON.groupIdentifier, - requester: obvMessage.fromContactIdentity, - messageUploadTimestampFromServer: obvMessage.messageUploadTimestampFromServer, - saveRequestIfMessageCannotBeFound: false) - op.obvContext = obvContext - op.main() - guard !op.isCancelled else { - guard let reason = op.reasonForCancel else { return cancel(withReason: .unknownReason) } - return cancel(withReason: .wipeMessagesOperationCancelled(reason: reason)) - } - case .edit: - let op = EditTextBodyOfReceivedMessageOperation(newTextBody: request.body, - requester: obvMessage.fromContactIdentity, - groupIdentifier: messageJSON.groupIdentifier, - receivedMessageToEdit: request.messageReferenceJSON, - messageUploadTimestampFromServer: request.serverTimestamp, - saveRequestIfMessageCannotBeFound: false, - newMentions: messageJSON.userMentions) - op.obvContext = obvContext - op.main() - guard !op.isCancelled else { - guard let reason = op.reasonForCancel else { return cancel(withReason: .unknownReason) } - return cancel(withReason: .editTextBodyOfReceivedMessageOperation(reason: reason)) - } - } - - // If we reach this point, the remote request has been processed, we can delete it - - try request.delete() - - } - - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - } - - } - -} - - -enum ApplyingRemoteDeleteAndEditRequestOperationReasonForCancel: LocalizedErrorWithLogType { - - case unknownReason - case contextIsNil - case couldNotFindPersistedObvContactIdentityInDatabase - case couldNotDetermineOwnedIdentity - case couldNotFindPersistedContactGroupInDatabase - case coreDataError(error: Error) - case couldNotFindPersistedMessageReceived - case wipeMessagesOperationCancelled(reason: WipeMessagesOperationReasonForCancel) - case editTextBodyOfReceivedMessageOperation(reason: EditTextBodyOfReceivedMessageOperationReasonForCancel) - case couldNotFindDiscussion - - var logType: OSLogType { - switch self { - case .couldNotFindPersistedObvContactIdentityInDatabase, - .couldNotFindPersistedContactGroupInDatabase, - .couldNotFindDiscussion: - return .error - case .unknownReason, - .contextIsNil, - .coreDataError, - .couldNotDetermineOwnedIdentity, - .couldNotFindPersistedMessageReceived: - return .fault - case .wipeMessagesOperationCancelled(reason: let reason): - return reason.logType - case .editTextBodyOfReceivedMessageOperation(reason: let reason): - return reason.logType - } - } - - var errorDescription: String? { - switch self { - case .unknownReason: - return "One of the operations cancelled without speciying a reason. This is a bug." - case .contextIsNil: - return "The context is not set" - case .couldNotFindPersistedObvContactIdentityInDatabase: - return "Could not find contact identity of received message in database" - case .couldNotFindPersistedContactGroupInDatabase: - return "Could not find group of received message in database" - case .couldNotDetermineOwnedIdentity: - return "Could not determine owned identity" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .couldNotFindPersistedMessageReceived: - return "Could not find message received although it is expected to be created within this context at this point" - case .wipeMessagesOperationCancelled(reason: let reason): - return reason.errorDescription - case .editTextBodyOfReceivedMessageOperation(reason: let reason): - return reason.errorDescription - case .couldNotFindDiscussion: - return "Could not find discussion" - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ApplyPendingReactionsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ApplyPendingReactionsOperation.swift deleted file mode 100644 index 84c0c1ce..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ApplyPendingReactionsOperation.swift +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import OlvidUtils -import ObvEngine -import os.log -import ObvTypes -import ObvUICoreData - - -/// This operation looks for an existing `PendingMessageReaction`. If one is found, this operation executes a `UpdateReactionsOfMessageOperation`. -final class ApplyPendingReactionsOperation: ContextualOperationWithSpecificReasonForCancel { - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: ApplyPendingReactionsOperation.self)) - - private let obvMessage: ObvMessage - private let messageJSON: MessageJSON - - init(obvMessage: ObvMessage, messageJSON: MessageJSON) { - self.obvMessage = obvMessage - self.messageJSON = messageJSON - super.init() - } - - override func main() { - - os_log("Executing an ApplyPendingReactionsOperation for obvMessage %{public}@", log: log, type: .debug, obvMessage.messageIdentifierFromEngine.debugDescription) - ObvDisplayableLogs.shared.log("🧨 Starting ApplyPendingReactionsOperation") - defer { ObvDisplayableLogs.shared.log("🧨 Ending ApplyPendingReactionsOperation") } - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { - - // Grab the persisted contact and the appropriate discussion - - guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: obvMessage.fromContactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { - return cancel(withReason: .couldNotFindPersistedObvContactIdentityInDatabase) - } - - guard let ownedIdentity = persistedContactIdentity.ownedIdentity else { - return cancel(withReason: .couldNotDetermineOwnedIdentity) - } - - let discussion: PersistedDiscussion - switch messageJSON.groupIdentifier { - - case .none: - - guard let oneToOneDiscussion = persistedContactIdentity.oneToOneDiscussion else { - return cancel(withReason: .couldNotFindDiscussion) - } - discussion = oneToOneDiscussion - - case .groupV1(groupV1Identifier: let groupV1Identifier): - - guard let contactGroup = try PersistedContactGroup.getContactGroup(groupId: groupV1Identifier, ownedIdentity: ownedIdentity) else { - return cancel(withReason: .couldNotFindPersistedContactGroupInDatabase) - } - discussion = contactGroup.discussion - - case .groupV2(groupV2Identifier: let groupV2Identifier): - - guard let group = try PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: groupV2Identifier) else { - return cancel(withReason: .couldNotFindPersistedContactGroupInDatabase) - } - guard let groupDiscussion = group.discussion else { - return cancel(withReason: .couldNotFindDiscussion) - } - discussion = groupDiscussion - - } - - // Look for an existing PendingMessageReaction for the received message in that discussion - - let pendingReaction = try PendingMessageReaction.getPendingMessageReaction( - discussion: discussion, - senderIdentifier: obvMessage.fromContactIdentity.cryptoId.getIdentity(), - senderThreadIdentifier: messageJSON.senderThreadIdentifier, - senderSequenceNumber: messageJSON.senderSequenceNumber) - - guard let pendingReaction = pendingReaction else { - // We found no existing pending reaction, there is nothing left to do - return - } - - let op = UpdateReactionsOfMessageOperation(emoji: pendingReaction.emoji, - messageReference: pendingReaction.messageReferenceJSON, - groupIdentifier: messageJSON.groupIdentifier, - contactIdentity: obvMessage.fromContactIdentity, - reactionTimestamp: pendingReaction.serverTimestamp, - addPendingReactionIfMessageCannotBeFound: false) - op.obvContext = obvContext - op.main() - guard !op.isCancelled else { - guard let reason = op.reasonForCancel else { return cancel(withReason: .unknownReason) } - return cancel(withReason: .updateReactionsOperationCancelled(reason: reason)) - } - - // If we reach this point, the remote request has been processed, we can delete it - - try pendingReaction.delete() - - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - } - - } - - -} - - -enum ApplyPendingReactionsOperationReasonForCancel: LocalizedErrorWithLogType { - - case unknownReason - case contextIsNil - case couldNotFindPersistedObvContactIdentityInDatabase - case couldNotDetermineOwnedIdentity - case couldNotFindPersistedContactGroupInDatabase - case coreDataError(error: Error) - case couldNotFindPersistedMessageReceived - case updateReactionsOperationCancelled(reason: UpdateReactionsOperationReasonForCancel) - case couldNotFindDiscussion - - var logType: OSLogType { - switch self { - case .couldNotFindPersistedObvContactIdentityInDatabase, - .couldNotFindPersistedContactGroupInDatabase, - .couldNotFindDiscussion: - return .error - case .unknownReason, - .contextIsNil, - .coreDataError, - .couldNotDetermineOwnedIdentity, - .couldNotFindPersistedMessageReceived: - return .fault - case .updateReactionsOperationCancelled(reason: let reason): - return reason.logType - } - } - - var errorDescription: String? { - switch self { - case .unknownReason: - return "One of the operations cancelled without speciying a reason. This is a bug." - case .contextIsNil: - return "The context is not set" - case .couldNotFindPersistedObvContactIdentityInDatabase: - return "Could not find contact identity of received message in database" - case .couldNotFindPersistedContactGroupInDatabase: - return "Could not find group of received message in database" - case .couldNotDetermineOwnedIdentity: - return "Could not determine owned identity" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .couldNotFindPersistedMessageReceived: - return "Could not find message received although it is expected to be created within this context at this point" - case .updateReactionsOperationCancelled(reason: let reason): - return reason.errorDescription - case .couldNotFindDiscussion: - return "Could not find discussion" - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/CleanOrphanedPersistedMessageTimestampedMetadataOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/CleanOrphanedPersistedMessageTimestampedMetadataOperation.swift index 2a3236b6..b87cd7f3 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/CleanOrphanedPersistedMessageTimestampedMetadataOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/CleanOrphanedPersistedMessageTimestampedMetadataOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,28 +22,21 @@ import OlvidUtils import os import Darwin import ObvUICoreData +import CoreData final class CleanOrphanedPersistedMessageTimestampedMetadataOperation: ContextualOperationWithSpecificReasonForCancel { private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "CleanOrphanedPersistedMessageTimestampedMetadataOperation") - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { os_log("Executing an CleanOrphanedPersistedMessageTimestampedMetadataOperation", log: log, type: .debug) - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { - try PersistedMessageTimestampedMetadata.deleteOrphanedPersistedMessageTimestampedMetadata(within: obvContext) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - + + do { + try PersistedMessageTimestampedMetadata.deleteOrphanedPersistedMessageTimestampedMetadata(within: obvContext) + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/CreatePersistedMessageReceivedFromReceivedObvMessageOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/CreatePersistedMessageReceivedFromReceivedObvMessageOperation.swift new file mode 100644 index 00000000..f1bf1821 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/CreatePersistedMessageReceivedFromReceivedObvMessageOperation.swift @@ -0,0 +1,177 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvEngine +import ObvCrypto +import OlvidUtils +import ObvUICoreData +import ObvTypes + + +final class CreatePersistedMessageReceivedFromReceivedObvMessageOperation: ContextualOperationWithSpecificReasonForCancel, OperationProvidingDiscussionPermanentID { + + private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "CreatePersistedMessageReceivedFromReceivedObvMessageOperation") + + private let obvMessage: ObvMessage + private let messageJSON: MessageJSON + private let returnReceiptJSON: ReturnReceiptJSON? + private let overridePreviousPersistedMessage: Bool + private let obvEngine: ObvEngine + + init(obvMessage: ObvMessage, messageJSON: MessageJSON, overridePreviousPersistedMessage: Bool, returnReceiptJSON: ReturnReceiptJSON?, obvEngine: ObvEngine) { + self.obvMessage = obvMessage + self.messageJSON = messageJSON + self.returnReceiptJSON = returnReceiptJSON + self.overridePreviousPersistedMessage = overridePreviousPersistedMessage + self.obvEngine = obvEngine + super.init() + } + + enum Result { + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case messageCreated(discussionPermanentID: DiscussionPermanentID) + } + + private(set) var result: Result? + + + var discussionPermanentID: ObvUICoreData.DiscussionPermanentID? { + switch result { + case .couldNotFindGroupV2InDatabase, nil: + return nil + case .messageCreated(discussionPermanentID: let discussionPermanentID): + return discussionPermanentID + } + } + + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + os_log("Executing a CreatePersistedMessageReceivedFromReceivedObvMessageOperation for obvMessage %{public}@", log: log, type: .debug, obvMessage.messageIdentifierFromEngine.debugDescription) + + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: obvMessage.fromContactIdentity.ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + // Create or update the PersistedMessageReceived from that contact + + let attachmentsFullyReceivedOrCancelledByServer: [ObvAttachment] + + do { + + let (discussionPermanentID, _attachmentsFullyReceivedOrCancelledByServer) = try ownedIdentity.createOrOverridePersistedMessageReceived( + obvMessage: obvMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + overridePreviousPersistedMessage: overridePreviousPersistedMessage) + self.result = .messageCreated(discussionPermanentID: discussionPermanentID) + attachmentsFullyReceivedOrCancelledByServer = _attachmentsFullyReceivedOrCancelledByServer + + } catch { + if let error = error as? ObvUICoreDataError { + switch error { + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + result = .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + return + default: + return cancel(withReason: .persistedObvContactIdentityObvError(error: error)) + } + } else if let error = error as? PersistedMessageReceived.ObvError { + return cancel(withReason: .persistedMessageReceivedObvError(error: error)) + } else { + assertionFailure("We should probably add the missing if/let case") + return cancel(withReason: .coreDataError(error: error)) + } + } + + // We ask the engine to delete all the attachments that were fully received + + if !attachmentsFullyReceivedOrCancelledByServer.isEmpty { + let obvEngine = self.obvEngine + let log = self.log + do { + try obvContext.addContextDidSaveCompletionHandler { error in + for obvAttachment in attachmentsFullyReceivedOrCancelledByServer { + do { + try obvEngine.deleteObvAttachment(attachmentNumber: obvAttachment.number, ofMessageWithIdentifier: obvAttachment.messageIdentifier, ownedCryptoId: obvAttachment.fromContactIdentity.ownedCryptoId) + } catch { + os_log("Call to the engine method deleteObvAttachment did fail", log: log, type: .fault) + assertionFailure() // Continue anyway + } + } + } + } catch { + assertionFailure(error.localizedDescription) + } + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case contextIsNil + case couldNotFindPersistedObvContactIdentityInDatabase + case coreDataError(error: Error) + case persistedObvContactIdentityObvError(error: ObvUICoreDataError) + case persistedMessageReceivedObvError(error: PersistedMessageReceived.ObvError) + case couldNotFindOwnedIdentity + + var logType: OSLogType { + switch self { + case .couldNotFindPersistedObvContactIdentityInDatabase: + return .error + case .contextIsNil, + .coreDataError, + .persistedMessageReceivedObvError, + .couldNotFindOwnedIdentity, + .persistedObvContactIdentityObvError: + return .fault + } + } + + var errorDescription: String? { + switch self { + case .contextIsNil: + return "The context is not set" + case .couldNotFindPersistedObvContactIdentityInDatabase: + return "Could not find contact identity of received message in database" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .persistedObvContactIdentityObvError(error: let error): + return "PersistedObvContactIdentity error: \(error.localizedDescription)" + case .persistedMessageReceivedObvError(error: let error): + return "PersistedMessageReceived error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/CreatePersistedMessageSentFromReceivedObvOwnedMessageOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/CreatePersistedMessageSentFromReceivedObvOwnedMessageOperation.swift new file mode 100644 index 00000000..f622f5cb --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/CreatePersistedMessageSentFromReceivedObvOwnedMessageOperation.swift @@ -0,0 +1,164 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvEngine +import ObvCrypto +import OlvidUtils +import ObvUICoreData +import ObvTypes + + + +final class CreatePersistedMessageSentFromReceivedObvOwnedMessageOperation: ContextualOperationWithSpecificReasonForCancel { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "CreatePersistedMessageSentFromReceivedObvOwnedMessageOperation") + + private let obvOwnedMessage: ObvOwnedMessage + private let messageJSON: MessageJSON + private let returnReceiptJSON: ReturnReceiptJSON? + private let obvEngine: ObvEngine + + init(obvOwnedMessage: ObvOwnedMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?, obvEngine: ObvEngine) { + self.obvOwnedMessage = obvOwnedMessage + self.messageJSON = messageJSON + self.returnReceiptJSON = returnReceiptJSON + self.obvEngine = obvEngine + super.init() + } + + + enum Result { + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case sentMessageCreated + } + + private(set) var result: Result? + + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + os_log("Executing a CreatePersistedMessageSentFromReceivedObvOwnedMessageOperation for obvOwnedMessage %{public}@", log: Self.log, type: .debug, obvOwnedMessage.messageIdentifierFromEngine.debugDescription) + + do { + + // Grab the persisted owned identity who sent the message on another owned device + + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: obvOwnedMessage.ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentityInDatabase) + } + + // Create the PersistedMessageSent from that owned identity + + let attachmentFullyReceivedOrCancelledByServer: [ObvOwnedAttachment] + + do { + attachmentFullyReceivedOrCancelledByServer = try persistedObvOwnedIdentity.createPersistedMessageSentFromOtherOwnedDevice( + obvOwnedMessage: obvOwnedMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON) + result = .sentMessageCreated + } catch { + if let error = error as? ObvUICoreDataError { + switch error { + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + result = .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + return + default: + assertionFailure() + return cancel(withReason: .persistedObvOwnedIdentityObvError(error: error)) + } + } else if let error = error as? PersistedMessageSent.ObvError { + assertionFailure() + return cancel(withReason: .persistedMessageSentObvError(error: error)) + } else { + assertionFailure("We should probably add the missing if/let case") + return cancel(withReason: .coreDataError(error: error)) + } + } + + // We ask the engine to delete all the attachments that were fully received + + if !attachmentFullyReceivedOrCancelledByServer.isEmpty { + let obvEngine = self.obvEngine + do { + try obvContext.addContextDidSaveCompletionHandler { error in + for obvOwnedAttachment in attachmentFullyReceivedOrCancelledByServer { + do { + try obvEngine.deleteObvAttachment( + attachmentNumber: obvOwnedAttachment.number, + ofMessageWithIdentifier: obvOwnedAttachment.messageIdentifier, + ownedCryptoId: obvOwnedAttachment.ownedCryptoId) + } catch { + os_log("Call to the engine method deleteObvAttachment did fail", log: Self.log, type: .fault) + assertionFailure() // Continue anyway + } + } + } + } catch { + assertionFailure(error.localizedDescription) + } + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case contextIsNil + case coreDataError(error: Error) + case couldNotFindOwnedIdentityInDatabase + case persistedObvOwnedIdentityObvError(error: ObvUICoreDataError) + case persistedMessageSentObvError(error: PersistedMessageSent.ObvError) + + var logType: OSLogType { + switch self { + case .couldNotFindOwnedIdentityInDatabase: + return .error + case .contextIsNil, + .coreDataError, + .persistedMessageSentObvError, + .persistedObvOwnedIdentityObvError: + return .fault + } + } + + var errorDescription: String? { + switch self { + case .contextIsNil: + return "The context is not set" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentityInDatabase: + return "Could not find owned identity in database" + case .persistedObvOwnedIdentityObvError(error: let error): + return "PersistedObvOwnedIdentity error: \(error.localizedDescription)" + case .persistedMessageSentObvError(error: let error): + return "PersistedMessageSent error: \(error.localizedDescription)" + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/DeleteOldOrOrphanedPendingReactionsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/DeleteOldOrOrphanedPendingReactionsOperation.swift deleted file mode 100644 index d1783892..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/DeleteOldOrOrphanedPendingReactionsOperation.swift +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import OlvidUtils -import ObvUICoreData - - -final class DeleteOldOrOrphanedPendingReactionsOperation: ContextualOperationWithSpecificReasonForCancel { - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - let deletionTimeInterval: TimeInterval = TimeInterval(days: 30) - let deletionDate: Date = Date(timeIntervalSinceNow: -deletionTimeInterval) - - do { - try PendingMessageReaction.deleteRequestsOlderThanDate(deletionDate, within: obvContext.context) - try PendingMessageReaction.deleteOrphaned(within: obvContext.context) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - } - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/DeleteOldOrOrphanedRemoteDeleteAndEditRequestsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/DeleteOldOrOrphanedRemoteDeleteAndEditRequestsOperation.swift deleted file mode 100644 index e8c1cc27..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/DeleteOldOrOrphanedRemoteDeleteAndEditRequestsOperation.swift +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import OlvidUtils -import ObvUICoreData - - -final class DeleteOldOrOrphanedRemoteDeleteAndEditRequestsOperation: ContextualOperationWithSpecificReasonForCancel { - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - let deletionTimeInterval: TimeInterval = TimeInterval(30 * 24 * 60 * 60) // 30 days - let deletionDate: Date = Date(timeIntervalSinceNow: -deletionTimeInterval) - - do { - try RemoteDeleteAndEditRequest.deleteRequestsOlderThanDate(deletionDate, within: obvContext.context) - try RemoteDeleteAndEditRequest.deleteOrphaned(within: obvContext.context) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - } - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ExtractReceivedExtendedPayloadOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ExtractReceivedExtendedPayloadOperation.swift index cedf23d7..e367865a 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ExtractReceivedExtendedPayloadOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ExtractReceivedExtendedPayloadOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,18 +22,25 @@ import Foundation import OlvidUtils import os.log import ObvEngine +import ObvTypes import ObvEncoder import CoreGraphics import ObvUICoreData +import CoreData -// Not using context, but contextual to be composed with other contextual operations -final class ExtractReceivedExtendedPayloadOperation: ContextualOperationWithSpecificReasonForCancel { +/// This operation does not need a context and thus, is not a contextual operation. Since it is used in the notification extension at a location where we have no context available, we definitely don't want it to be a contextual operation. +final class ExtractReceivedExtendedPayloadOperation: OperationWithSpecificReasonForCancel { - let obvMessage: ObvMessage + enum Input { + case messageSentByContact(obvMessage: ObvMessage) + case messageSentByOtherDeviceOfOwnedIdentity(obvOwnedMessage: ObvOwnedMessage) + } + + let input: Input - init(obvMessage: ObvMessage) { - self.obvMessage = obvMessage + init(input: Input) { + self.input = input super.init() } @@ -41,7 +48,15 @@ final class ExtractReceivedExtendedPayloadOperation: ContextualOperationWithSpec override func main() { - guard let extendedMessagePayload = obvMessage.extendedMessagePayload else { + let extendedMessagePayload: Data? + switch input { + case .messageSentByContact(obvMessage: let obvMessage): + extendedMessagePayload = obvMessage.extendedMessagePayload + case .messageSentByOtherDeviceOfOwnedIdentity(obvOwnedMessage: let obvOwnedMessage): + extendedMessagePayload = obvOwnedMessage.extendedMessagePayload + } + + guard let extendedMessagePayload else { return cancel(withReason: .extendedMessagePayloadIsNil) } @@ -76,6 +91,7 @@ final class ExtractReceivedExtendedPayloadOperation: ContextualOperationWithSpec case .failure(let reason): return cancel(withReason: reason) } + } private func processExtendedPayloadVersion0(listOfEncodedElements: [ObvEncoded]) -> Result<[NotificationAttachmentImage], ExtractReceivedExtendedPayloadOperationReasonForCancel> { @@ -97,8 +113,16 @@ final class ExtractReceivedExtendedPayloadOperation: ContextualOperationWithSpec guard attachmentNumbers.count == listOfEncodedAttachmentNumbers.count else { return .failure(.decodingError) } + + let expectedAttachmentsCount: Int + switch input { + case .messageSentByContact(obvMessage: let obvMessage): + expectedAttachmentsCount = obvMessage.expectedAttachmentsCount + case .messageSentByOtherDeviceOfOwnedIdentity(obvOwnedMessage: let obvOwnedMessage): + expectedAttachmentsCount = obvOwnedMessage.expectedAttachmentsCount + } - guard let max = attachmentNumbers.max(), let min = attachmentNumbers.min(), max < obvMessage.expectedAttachmentsCount, min >= 0 else { + guard let max = attachmentNumbers.max(), let min = attachmentNumbers.min(), max < expectedAttachmentsCount, min >= 0 else { return .failure(.unexpectedAttachmentNumber) } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/MarkAsReadReceivedMessageOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/MarkAsReadReceivedMessageOperation.swift index 8f9ecc90..97e128f7 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/MarkAsReadReceivedMessageOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/MarkAsReadReceivedMessageOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,8 +23,10 @@ import os.log import CoreData import OlvidUtils import ObvUICoreData +import ObvTypes -final class MarkAsReadReceivedMessageOperation: ContextualOperationWithSpecificReasonForCancel { + +final class MarkAsReadReceivedMessageOperation: ContextualOperationWithSpecificReasonForCancel, OperationProvidingDiscussionReadJSON { private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: MarkAsReadReceivedMessageOperation.self)) @@ -39,65 +41,81 @@ final class MarkAsReadReceivedMessageOperation: ContextualOperationWithSpecificR super.init() } - override func main() { + private(set) var ownedCryptoId: ObvCryptoId? + private(set) var discussionReadJSONToSend: DiscussionReadJSON? - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let contactIdentity = try PersistedObvContactIdentity.getManagedObject(withPermanentID: contactPermanentID, within: obvContext.context) else { + assertionFailure() + return cancel(withReason: .couldNotFindContactIdentityInDatabase) + } - obvContext.performAndWait { - do { - guard let contactIdentity = try PersistedObvContactIdentity.getManagedObject(withPermanentID: contactPermanentID, within: obvContext.context) else { - assertionFailure() - return cancel(withReason: .couldNotFindContactIdentityInDatabase) - } + guard let (discussionId, receivedMessageId): (DiscussionIdentifier, ReceivedMessageIdentifier) = try contactIdentity.getReceivedMessageIdentifiers(messageIdentifierFromEngine: messageIdentifierFromEngine) else { + assertionFailure() + return cancel(withReason: .couldNotFindReceivedMessageInDatabase) + } - // Find message to mark as read - guard let message = try PersistedMessageReceived.get(messageIdentifierFromEngine: messageIdentifierFromEngine, from: contactIdentity) else { - assertionFailure() - return cancel(withReason: .couldNotFindReceivedMessageInDatabase) + guard let ownedIdentity = contactIdentity.ownedIdentity else { + assertionFailure() + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + self.ownedCryptoId = ownedIdentity.cryptoId + + let dateWhenMessageTurnedNotNew = Date() + let lastReadMessageServerTimestamp = try ownedIdentity.markReceivedMessageAsNotNew(discussionId: discussionId, receivedMessageId: receivedMessageId, dateWhenMessageTurnedNotNew: dateWhenMessageTurnedNotNew) + + do { + if let lastReadMessageServerTimestamp { + discussionReadJSONToSend = try ownedIdentity.getDiscussionReadJSON(discussionId: discussionId, lastReadMessageServerTimestamp: lastReadMessageServerTimestamp) } + } catch { + assertionFailure(error.localizedDescription) // Continue anyway + } - try message.markAsNotNew(now: Date()) - - persistedMessageReceivedObjectID = message.typedObjectID - - } catch(let error) { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + + do { + persistedMessageReceivedObjectID = try ownedIdentity.getReceivedMessageTypedObjectID(discussionId: discussionId, receivedMessageId: receivedMessageId) + } catch { + assertionFailure(error.localizedDescription) // Continue anyway } + + } catch(let error) { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } - + } -} - -enum MarkAsReadReceivedMessageOperationReasonForCancel: LocalizedErrorWithLogType { - - case contextIsNil - case coreDataError(error: Error) - case couldNotFindContactIdentityInDatabase - case couldNotFindReceivedMessageInDatabase - - var logType: OSLogType { - switch self { - case .contextIsNil: - return .fault - case .coreDataError: - return .fault - case .couldNotFindReceivedMessageInDatabase: - return .error - case .couldNotFindContactIdentityInDatabase: - return .error + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotFindContactIdentityInDatabase + case couldNotFindReceivedMessageInDatabase + case couldNotFindOwnedIdentity + + var logType: OSLogType { + switch self { + case .couldNotFindOwnedIdentity, .coreDataError: + return .fault + case .couldNotFindReceivedMessageInDatabase, .couldNotFindContactIdentityInDatabase: + return .error + } } - } - var errorDescription: String? { - switch self { - case .contextIsNil: return "Context is nil" - case .couldNotFindContactIdentityInDatabase: return "Could not obtain persisted contact identity in database" - case .coreDataError(error: let error): return "Core Data error: \(error.localizedDescription)" - case .couldNotFindReceivedMessageInDatabase: return "Could not find received message in database" + var errorDescription: String? { + switch self { + case .couldNotFindContactIdentityInDatabase: return "Could not obtain persisted contact identity in database" + case .coreDataError(error: let error): return "Core Data error: \(error.localizedDescription)" + case .couldNotFindReceivedMessageInDatabase: return "Could not find received message in database" + case .couldNotFindOwnedIdentity: return "Could not find owned identity" + } } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/MarkReceivedJoinAsResumedOrPausedOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/MarkReceivedJoinAsResumedOrPausedOperation.swift index a7c47f75..38ef44bf 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/MarkReceivedJoinAsResumedOrPausedOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/MarkReceivedJoinAsResumedOrPausedOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -48,40 +48,34 @@ final class MarkReceivedJoinAsResumedOrPausedOperation: ContextualOperationWithS super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - - guard let message = try PersistedMessageReceived.get(messageIdentifierFromEngine: messageIdentifierFromEngine, - ownedCryptoId: ownedCryptoId, - within: obvContext.context) - else { - assertionFailure() - return - } - - guard let join = message.fyleMessageJoinWithStatuses.first(where: { $0.index == attachmentNumber }) else { - assertionFailure() - return - } - - switch resumeOrPause { - case .resume: - join.tryToSetStatusTo(.downloading) - case .pause: - join.tryToSetStatusTo(.downloadable) - } - - } catch(let error) { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let message = try PersistedMessageReceived.get(messageIdentifierFromEngine: messageIdentifierFromEngine, + ownedCryptoId: ownedCryptoId, + within: obvContext.context) + else { assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + return } + + guard let join = message.fyleMessageJoinWithStatuses.first(where: { $0.index == attachmentNumber }) else { + assertionFailure() + return + } + + switch resumeOrPause { + case .resume: + join.tryToSetStatusToDownloading() + case .pause: + join.tryToSetStatusToDownloadable() + } + + } catch(let error) { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/MarkReceivedSentJoinAsResumedOrPausedOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/MarkReceivedSentJoinAsResumedOrPausedOperation.swift new file mode 100644 index 00000000..36262cdf --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/MarkReceivedSentJoinAsResumedOrPausedOperation.swift @@ -0,0 +1,74 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import CoreData +import OlvidUtils +import ObvTypes +import ObvUICoreData + + +/// Called when the download of an attachment (sent from another device) was resumed or paused. See also ``MarkReceivedJoinAsResumedOrPausedOperation``. +final class MarkReceivedSentJoinAsResumedOrPausedOperation: ContextualOperationWithSpecificReasonForCancel { + + private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: MarkReceivedSentJoinAsResumedOrPausedOperation.self)) + + private let ownedCryptoId: ObvCryptoId + private let messageIdentifierFromEngine: Data + private let attachmentNumber: Int + private let resumeOrPause: ResumeOrPause + + enum ResumeOrPause { + case resume + case pause + } + + init(ownedCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, attachmentNumber: Int, resumeOrPause: ResumeOrPause) { + self.ownedCryptoId = ownedCryptoId + self.messageIdentifierFromEngine = messageIdentifierFromEngine + self.attachmentNumber = attachmentNumber + self.resumeOrPause = resumeOrPause + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + assertionFailure() + return + } + + switch resumeOrPause { + case .resume: + try ownedIdentity.markAttachmentFromOwnedDeviceAsResumed(messageIdentifierFromEngine: messageIdentifierFromEngine, attachmentNumber: attachmentNumber) + case .pause: + try ownedIdentity.markAttachmentFromOwnedDeviceAsPaused(messageIdentifierFromEngine: messageIdentifierFromEngine, attachmentNumber: attachmentNumber) + } + + } catch(let error) { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + + } +} + diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ProcessNewReceivedJoinProgressesReceivedFromEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ProcessNewReceivedJoinProgressesReceivedFromEngineOperation.swift index 26554b76..488e106c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ProcessNewReceivedJoinProgressesReceivedFromEngineOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ProcessNewReceivedJoinProgressesReceivedFromEngineOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ReceivingMessageAndAttachmentsOperations.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ReceivingMessageAndAttachmentsOperations.swift deleted file mode 100644 index 60f946a0..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ReceivingMessageAndAttachmentsOperations.swift +++ /dev/null @@ -1,613 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import os.log -import ObvEngine -import ObvCrypto -import OlvidUtils -import ObvUICoreData - - -final class CreatePersistedMessageReceivedFromReceivedObvMessageOperation: ContextualOperationWithSpecificReasonForCancel { - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "CreatePersistedMessageReceivedFromReceivedObvMessageOperation") - - private let obvMessage: ObvMessage - private let messageJSON: MessageJSON - private let returnReceiptJSON: ReturnReceiptJSON? - private let overridePreviousPersistedMessage: Bool - private let obvEngine: ObvEngine - - init(obvMessage: ObvMessage, messageJSON: MessageJSON, overridePreviousPersistedMessage: Bool, returnReceiptJSON: ReturnReceiptJSON?, obvEngine: ObvEngine) { - self.obvMessage = obvMessage - self.messageJSON = messageJSON - self.returnReceiptJSON = returnReceiptJSON - self.overridePreviousPersistedMessage = overridePreviousPersistedMessage - self.obvEngine = obvEngine - super.init() - } - - - override func main() { - - os_log("Executing a CreatePersistedMessageReceivedFromReceivedObvMessageOperation for obvMessage %{public}@", log: log, type: .debug, obvMessage.messageIdentifierFromEngine.debugDescription) - ObvDisplayableLogs.shared.log("🧨 Starting CreatePersistedMessageReceivedFromReceivedObvMessageOperation") - defer { ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation") } - - guard let obvContext = self.obvContext else { - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (1)") - return cancel(withReason: .contextIsNil) - } - - let currentUserActivityDiscussionPermanentID = ObvUserActivitySingleton.shared.currentDiscussionPermanentID - - obvContext.performAndWait { - - do { - - // Grab the persisted contact and the appropriate discussion - - guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: obvMessage.fromContactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (2)") - return cancel(withReason: .couldNotFindPersistedObvContactIdentityInDatabase) - } - - guard let ownedIdentity = persistedContactIdentity.ownedIdentity else { - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (3)") - return cancel(withReason: .couldNotDetermineOwnedIdentity) - } - - let discussion: PersistedDiscussion - - switch messageJSON.groupIdentifier { - - case .none: - - guard persistedContactIdentity.isOneToOne else { - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (4)") - return cancel(withReason: .cannotInsertMessageInOneToOneDiscussionFromNonOneToOneContact) - } - guard let oneToOneDiscussion = persistedContactIdentity.oneToOneDiscussion else { - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (5)") - return cancel(withReason: .couldNotFindDiscussion) - } - discussion = oneToOneDiscussion - - case .groupV1(groupV1Identifier: let groupV1Identifier): - - guard let contactGroup = try PersistedContactGroup.getContactGroup(groupId: groupV1Identifier, ownedIdentity: ownedIdentity) else { - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (6)") - return cancel(withReason: .couldNotFindPersistedContactGroupInDatabase) - } - discussion = contactGroup.discussion - - case .groupV2(groupV2Identifier: let groupV2Identifier): - - guard let group = try PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: groupV2Identifier) else { - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (7)") - return cancel(withReason: .couldNotFindPersistedContactGroupInDatabase) - } - guard let groupDiscussion = group.discussion else { - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (8)") - return cancel(withReason: .couldNotFindDiscussion) - } - discussion = groupDiscussion - - } - - // Try to insert a EndToEndEncryptedSystemMessage if the discussion is empty - - try? PersistedDiscussion.insertSystemMessagesIfDiscussionIsEmpty(discussionObjectID: discussion.objectID, markAsRead: true, within: obvContext.context) - - /* Determine an appropriate `messageUploadTimestampFromServer`, needed to create the `PersistedMessageReceived` instance. For oneToOne and GroupV1 discussions, this is simply the date indicated in the ObvMessage. For GroupV2 discussions, we look for the original server timestamp that may exist in the messageJSON. If it exists, we use it (this is usefull to properly sort many "old" messages that were sent in a Group v2 discussion before we our acceptance to become a group member). - */ - - let messageUploadTimestampFromServer: Date - switch try discussion.kind { - case .oneToOne, .groupV1: - messageUploadTimestampFromServer = obvMessage.messageUploadTimestampFromServer - case .groupV2: - if let originalServerTimestamp = messageJSON.originalServerTimestamp { - messageUploadTimestampFromServer = min(originalServerTimestamp, obvMessage.messageUploadTimestampFromServer) - } else { - messageUploadTimestampFromServer = obvMessage.messageUploadTimestampFromServer - } - } - - // If overridePreviousPersistedMessage is true, we update any previously stored message from DB. If no such message exists, we create it. - // If overridePreviousPersistedMessage is false, we make sure that no existing PersistedMessageReceived exists in DB. If this is the case, we create the message. - // Note that processing attachments requires overridePreviousPersistedMessage to be true - - if overridePreviousPersistedMessage { - - if let previousMessage = try PersistedMessageReceived.get(messageIdentifierFromEngine: obvMessage.messageIdentifierFromEngine, from: persistedContactIdentity) { - - guard !previousMessage.isWiped else { - os_log("Trying to update a wiped received message. We don't do that an return immediately.", log: log, type: .info) - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (9)") - return - } - - os_log("Updating a previous received message...", log: log, type: .info) - - do { - try previousMessage.update(withMessageJSON: messageJSON, - messageIdentifierFromEngine: obvMessage.messageIdentifierFromEngine, - returnReceiptJSON: returnReceiptJSON, - messageUploadTimestampFromServer: messageUploadTimestampFromServer, - downloadTimestampFromServer: obvMessage.downloadTimestampFromServer, - localDownloadTimestamp: obvMessage.localDownloadTimestamp, - discussion: discussion) - } catch { - os_log("Could not update existing received message: %{public}@", log: log, type: .error, error.localizedDescription) - // Continue anyway - } - - } else { - - // Create the PersistedMessageReceived - - os_log("Creating a persisted message (overridePreviousPersistedMessage: %{public}@)", log: log, type: .debug, overridePreviousPersistedMessage.description) - let missedMessageCount = updateNextMessageMissedMessageCountAndGetCurrentMissedMessageCount( - discussion: discussion, - contactIdentity: persistedContactIdentity, - senderThreadIdentifier: messageJSON.senderThreadIdentifier, - senderSequenceNumber: messageJSON.senderSequenceNumber) - - guard (try? PersistedMessageReceived(messageUploadTimestampFromServer: messageUploadTimestampFromServer, - downloadTimestampFromServer: obvMessage.downloadTimestampFromServer, - localDownloadTimestamp: obvMessage.localDownloadTimestamp, - messageJSON: messageJSON, - contactIdentity: persistedContactIdentity, - messageIdentifierFromEngine: obvMessage.messageIdentifierFromEngine, - returnReceiptJSON: returnReceiptJSON, - missedMessageCount: missedMessageCount, - discussion: discussion, - obvMessageContainsAttachments: !obvMessage.attachments.isEmpty)) != nil - else { - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (10)") - return cancel(withReason: .couldNotCreatePersistedMessageReceived) - } - - } - - // Process the attachments within the message - - for obvAttachment in obvMessage.attachments { - do { - try ReceivingMessageAndAttachmentsOperationHelper.processFyleWithinDownloadingAttachment(obvAttachment, - newProgress: nil, - obvEngine: obvEngine, - log: log, - within: obvContext) - } catch { - os_log("Could not process one of the message's attachments: %{public}@", log: log, type: .fault, error.localizedDescription) - // We continue anyway - } - } - - } else { - - // Make sure the message does not already exists in DB - - guard try PersistedMessageReceived.get(messageIdentifierFromEngine: obvMessage.messageIdentifierFromEngine, from: persistedContactIdentity) == nil else { - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (11)") - return - } - - // We make sure that message has a body (for now, this message comes from the notification extension, and there is no point in creating a `PersistedMessageReceived` if there is no body. - - guard messageJSON.body?.isEmpty == false else { - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (12)") - return - } - - // Create the PersistedMessageReceived - - os_log("Creating a persisted message (overridePreviousPersistedMessage: %{public}@)", log: log, type: .debug, overridePreviousPersistedMessage.description) - let missedMessageCount = updateNextMessageMissedMessageCountAndGetCurrentMissedMessageCount( - discussion: discussion, - contactIdentity: persistedContactIdentity, - senderThreadIdentifier: messageJSON.senderThreadIdentifier, - senderSequenceNumber: messageJSON.senderSequenceNumber) - - guard (try? PersistedMessageReceived(messageUploadTimestampFromServer: messageUploadTimestampFromServer, - downloadTimestampFromServer: obvMessage.downloadTimestampFromServer, - localDownloadTimestamp: obvMessage.localDownloadTimestamp, - messageJSON: messageJSON, - contactIdentity: persistedContactIdentity, - messageIdentifierFromEngine: obvMessage.messageIdentifierFromEngine, - returnReceiptJSON: returnReceiptJSON, - missedMessageCount: missedMessageCount, - discussion: discussion, - obvMessageContainsAttachments: !obvMessage.attachments.isEmpty)) != nil - else { - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (13)") - return cancel(withReason: .couldNotCreatePersistedMessageReceived) - } - - } - - /* The following block of code objective allows to auto-read ephemeral received messges if appropriate. - * We first check whether the current user activity is to be within a discussion. If not, - * we never auto-read. - * If she is within a discussion, we consider all inserted received messages that are ephemeral and - * that require user action to be read. For each of these messages, we check that its discussion - * is identical to the one corresponding to the user activity, and that this discussion configuration - * has its auto-read setting set to `true`. - * Finally, if the message ephemerality is more restrictive than that of the discussion, we do not auto-read. - * In that case, and in that case only, we immediately allow reading of the message. - */ - - if let currentUserActivityDiscussionPermanentID { - - let insertedReceivedEphemeralMessagesWithUserAction: [PersistedMessageReceived] = obvContext.context.insertedObjects.compactMap({ - guard let receivedMessage = $0 as? PersistedMessageReceived, - receivedMessage.isEphemeralMessageWithUserAction - else { - return nil - } - return receivedMessage - }) - - insertedReceivedEphemeralMessagesWithUserAction.forEach { insertedReceivedEphemeralMessageWithUserAction in - guard insertedReceivedEphemeralMessageWithUserAction.discussion.discussionPermanentID == currentUserActivityDiscussionPermanentID, - insertedReceivedEphemeralMessageWithUserAction.discussion.autoRead == true - else { - return - } - // Check that the message ephemerality is at least that of the discussion, otherwise, do not auto read - guard insertedReceivedEphemeralMessageWithUserAction.ephemeralityIsAtLeastAsPermissiveThanDiscussionSharedConfiguration else { - return - } - // If we reach this point, we are receiving a message that is readOnce, within a discussion with an auto-read setting that is the one currently shown to the user. In that case, we auto-read the message. - do { - try insertedReceivedEphemeralMessageWithUserAction.allowReading(now: Date()) - } catch { - os_log("We received a read-once message within a discussion with auto-read that is shown on screen. We should auto-read the message, but this failed: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - // We continue anyway - } - } - } - - } catch { - ObvDisplayableLogs.shared.log("🧨 Ending CreatePersistedMessageReceivedFromReceivedObvMessageOperation (13)") - return cancel(withReason: .coreDataError(error: error)) - } - - } - - } - - private func updateNextMessageMissedMessageCountAndGetCurrentMissedMessageCount(discussion: PersistedDiscussion, contactIdentity: PersistedObvContactIdentity, senderThreadIdentifier: UUID, senderSequenceNumber: Int) -> Int { - - let latestDiscussionSenderSequenceNumber: PersistedLatestDiscussionSenderSequenceNumber? - do { - latestDiscussionSenderSequenceNumber = try PersistedLatestDiscussionSenderSequenceNumber.get(discussion: discussion, contactIdentity: contactIdentity, senderThreadIdentifier: senderThreadIdentifier) - } catch { - os_log("Could not get PersistedLatestDiscussionSenderSequenceNumber: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - return 0 - } - - if let latestDiscussionSenderSequenceNumber = latestDiscussionSenderSequenceNumber { - if senderSequenceNumber < latestDiscussionSenderSequenceNumber.latestSequenceNumber { - guard let nextMessage = PersistedMessageReceived.getNextMessageBySenderSequenceNumber(senderSequenceNumber, senderThreadIdentifier: senderThreadIdentifier, contactIdentity: contactIdentity, within: discussion) else { - return 0 - } - if nextMessage.missedMessageCount < nextMessage.senderSequenceNumber - senderSequenceNumber { - // The message is older than the number of messages missed in the following message --> nothing to do - return 0 - } - let remainingMissedCount = nextMessage.missedMessageCount - (nextMessage.senderSequenceNumber - senderSequenceNumber) - - nextMessage.updateMissedMessageCount(with: nextMessage.senderSequenceNumber - senderSequenceNumber - 1) - - return remainingMissedCount - } else if senderSequenceNumber > latestDiscussionSenderSequenceNumber.latestSequenceNumber { - let missingCount = senderSequenceNumber - latestDiscussionSenderSequenceNumber.latestSequenceNumber - 1 - latestDiscussionSenderSequenceNumber.updateLatestSequenceNumber(with: senderSequenceNumber) - return missingCount - } else { - // Unexpected: senderSequenceNumber == latestSequenceNumber (this should normally not happen...) - return 0 - } - } else { - _ = PersistedLatestDiscussionSenderSequenceNumber(discussion: discussion, - contactIdentity: contactIdentity, - senderThreadIdentifier: senderThreadIdentifier, - latestSequenceNumber: senderSequenceNumber) - return 0 - } - } - - -} - - -enum CreatePersistedMessageReceivedFromReceivedObvMessageOperationReasonForCancel: LocalizedErrorWithLogType { - - case contextIsNil - case couldNotFindPersistedObvContactIdentityInDatabase - case couldNotDetermineOwnedIdentity - case couldNotFindPersistedContactGroupInDatabase - case couldNotCreatePersistedMessageReceived - case coreDataError(error: Error) - case couldNotFindDiscussion - case cannotInsertMessageInOneToOneDiscussionFromNonOneToOneContact - - var logType: OSLogType { - switch self { - case .couldNotFindPersistedObvContactIdentityInDatabase, - .couldNotFindPersistedContactGroupInDatabase, - .couldNotFindDiscussion, - .cannotInsertMessageInOneToOneDiscussionFromNonOneToOneContact: - return .error - case .contextIsNil, - .coreDataError, - .couldNotDetermineOwnedIdentity, - .couldNotCreatePersistedMessageReceived: - return .fault - } - } - - var errorDescription: String? { - switch self { - case .contextIsNil: - return "The context is not set" - case .couldNotFindPersistedObvContactIdentityInDatabase: - return "Could not find contact identity of received message in database" - case .couldNotFindPersistedContactGroupInDatabase: - return "Could not find group of received message in database" - case .couldNotDetermineOwnedIdentity: - return "Could not determine owned identity" - case .couldNotCreatePersistedMessageReceived: - return "Could not create a PersistedMessageReceived instance" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .couldNotFindDiscussion: - return "Could not find discussion" - case .cannotInsertMessageInOneToOneDiscussionFromNonOneToOneContact: - return "The message comes from a non-oneToOne contact. We could not find the appropriate group discussion, and we cannot add the message to a one2one discussion." - } - } - -} - - - -// MARK: - ProcessFyleWithinDownloadingAttachmentOperation - -final class ProcessFyleWithinDownloadingAttachmentOperation: ContextualOperationWithSpecificReasonForCancel { - - private let obvAttachment: ObvAttachment - private let newProgress: (totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64)? - private let obvEngine: ObvEngine - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: ProcessFyleWithinDownloadingAttachmentOperation.self)) - - init(obvAttachment: ObvAttachment, newProgress: (totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64)?, obvEngine: ObvEngine) { - self.obvAttachment = obvAttachment - self.newProgress = newProgress - self.obvEngine = obvEngine - super.init() - } - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - /* This notification can arrive very early, even before the NewMessageReceived notification and thus, - * before the PersistedMessageReceived is even created. In that case, trying to process the fyle fails. - * So we check whether the PersistedMessageReceived exists before going any further - */ - - guard (try? PersistedMessageReceived.get(messageIdentifierFromEngine: obvAttachment.messageIdentifier, from: obvAttachment.fromContactIdentity, within: obvContext.context)) != nil else { return } - - // If we reach this point, we can safely process the fyle - - do { - try ReceivingMessageAndAttachmentsOperationHelper.processFyleWithinDownloadingAttachment(obvAttachment, newProgress: newProgress, obvEngine: obvEngine, log: log, within: obvContext) - } catch { - return cancel(withReason: .couldNotProcessFyleWithinDownloadingAttachment(error: error)) - } - - } - - } - - -} - - -enum ProcessFyleWithinDownloadingAttachmentOperationReasonForCancel: LocalizedErrorWithLogType { - - case couldNotProcessFyleWithinDownloadingAttachment(error: Error) - case coreDataError(error: Error) - case contextIsNil - - var logType: OSLogType { - switch self { - case .couldNotProcessFyleWithinDownloadingAttachment: - return .error - case .coreDataError, .contextIsNil: - return .fault - } - } - - var errorDescription: String? { - switch self { - case .contextIsNil: - return "The context is not set" - case .couldNotProcessFyleWithinDownloadingAttachment: - return "Could not process fyle within dowloading attachment" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - } - } - -} - - - - -// MARK: - ReceivingMessageAndAttachmentsOperationHelper - -fileprivate final class ReceivingMessageAndAttachmentsOperationHelper { - - private static func makeError(message: String) -> Error { NSError(domain: "ReceivingMessageAndAttachmentsOperationHelper", code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } - - fileprivate static func processFyleWithinDownloadingAttachment(_ obvAttachment: ObvAttachment, newProgress: (totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64)?, obvEngine: ObvEngine, log: OSLog, within obvContext: ObvContext) throws { - - let metadata = try FyleMetadata.jsonDecode(obvAttachment.metadata) - - // Get or create a ReceivedFyleMessageJoinWithStatus - - let fyle: Fyle - let join: ReceivedFyleMessageJoinWithStatus - do { - if let previousJoin = try ReceivedFyleMessageJoinWithStatus.get(metadata: metadata, obvAttachment: obvAttachment, within: obvContext.context) { - join = previousJoin - if let _fyle = join.fyle { - fyle = _fyle - } else { - guard let newFyle = Fyle(sha256: metadata.sha256, within: obvContext.context) else { - throw makeError(message: "Could not get or create Fyle from/in database") - } - fyle = newFyle - } - } else { - // Since the ReceivedFyleMessageJoinWithStatus must be created, we first get or create a Fyle - do { - if let previousFyle = try Fyle.get(sha256: metadata.sha256, within: obvContext.context) { - fyle = previousFyle - } else { - guard let newFyle = Fyle(sha256: metadata.sha256, within: obvContext.context) else { - throw makeError(message: "Could not get or create Fyle from/in database") - } - fyle = newFyle - } - } catch { - os_log("Could not get or create Fyle from/in database", log: log, type: .error) - return - } - join = try ReceivedFyleMessageJoinWithStatus(metadata: metadata, obvAttachment: obvAttachment, within: obvContext.context) - } - } catch { - throw makeError(message: "Could not get or create ReceivedFyleMessageJoinWithStatus: %{public}@") - } - - // In the end, if the status is downloaded and the fyle is available, we can delete any existing downsized preview - try? obvContext.addContextWillSaveCompletionHandler { - if join.status == .complete && fyle.getFileSize() == join.totalByteCount { - join.deleteDownsizedThumbnail() - } - } - - // If the ReceivedFyleMessageJoinWithStatus is completed, we ask the engine to delete the attachment - if join.status == .complete && join.fyle?.getFileSize() == join.totalByteCount { - - do { - try obvContext.addContextDidSaveCompletionHandler { error in - do { - try obvEngine.deleteObvAttachment(attachmentNumber: obvAttachment.number, ofMessageWithIdentifier: obvAttachment.messageIdentifier, ownedCryptoId: obvAttachment.ownedCryptoId) - } catch { - os_log("Call to the engine method deleteObvAttachment did fail", log: log, type: .fault) - assertionFailure() - } - } - } catch { - throw makeError(message: "Could not add addContextDidSaveCompletionHandler: \(error.localizedDescription)") - } - - return - } - - - // Update the status of the ReceivedFyleMessageJoinWithStatus depending on the status of the ObvAttachment - - switch obvAttachment.status { - case .paused: - join.tryToSetStatusTo(.downloadable) - case .resumed: - join.tryToSetStatusTo(.downloading) - case .downloaded: - join.tryToSetStatusTo(.complete) - case .cancelledByServer: - join.tryToSetStatusTo(.cancelledByServer) - case .markedForDeletion: - break - } - - // If the ReceivedFyleMessageJoinWithStatus is marked as completed, but the Fyle is not, we have work to do - - if obvAttachment.status == .downloaded && fyle.getFileSize() == nil { - - // Compute the sha256 of the (complete) file indicated within the obvAttachment and compare it to what was expected - let realHash: Data - do { - let sha256 = ObvCryptoSuite.sharedInstance.hashFunctionSha256() - realHash = try sha256.hash(fileAtUrl: obvAttachment.url) - } catch { - throw makeError(message: "Could not compute the sha256 of the received file") - } - guard realHash == fyle.sha256 else { - os_log("OMG, the sha256 of the received file does not match the one we expected", log: log, type: .error) - obvContext.context.delete(join) // This also deletes the fyle if possible - do { - try obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { return } - do { - try obvEngine.deleteObvAttachment(attachmentNumber: obvAttachment.number, - ofMessageWithIdentifier: obvAttachment.messageIdentifier, - ownedCryptoId: obvAttachment.ownedCryptoId) - } catch { - os_log("The engine call to deleteObvAttachment did fail", log: log, type: .fault) - assertionFailure() - } - } - } catch { - throw makeError(message: "The call to addContextDidSaveCompletionHandler did fail") - } - return - } - - // If we reach this point, the sha256 is correct. We move the received file to a permanent location - try fyle.moveFileToPermanentURL(from: obvAttachment.url, logTo: log) - - os_log("We moved a downloaded file to a permanent location", log: log, type: .debug) - - // The fyle is now available, so we set fyle's associated joins' status to "downloaded" - fyle.allFyleMessageJoinWithStatus.forEach({ (fyleMessageJoinWithStatus) in - if let receivedFyleMessageJoinWithStatus = fyleMessageJoinWithStatus as? ReceivedFyleMessageJoinWithStatus { - receivedFyleMessageJoinWithStatus.tryToSetStatusTo(.complete) - } - }) - - } - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ResumeOrPauseAttachmentDownloadOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ResumeOrPauseAttachmentDownloadOperation.swift index 687fe61b..466570c0 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ResumeOrPauseAttachmentDownloadOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ResumeOrPauseAttachmentDownloadOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -48,42 +48,36 @@ final class ResumeOrPauseAttachmentDownloadOperation: ContextualOperationWithSpe super.init() } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - - guard let attachment = try? ReceivedFyleMessageJoinWithStatus.getReceivedFyleMessageJoinWithStatus(objectID: receivedJoinObjectID.objectID, within: obvContext.context) else { return } - - switch attachment.status { - case .downloading: - guard resumeOrPause == .pause else { return } - case .downloadable: - guard resumeOrPause == .resume else { return } - case .complete, .cancelledByServer: - return - } - - guard let ownedCryptoId = attachment.message?.discussion.ownedIdentity?.cryptoId else { return } - let messageId = attachment.messageIdentifierFromEngine - - switch resumeOrPause { - case .resume: - try obvEngine.resumeDownloadOfAttachment(attachment.index, ofMessageWithIdentifier: messageId, ownedCryptoId: ownedCryptoId) - case .pause: - try obvEngine.pauseDownloadOfAttachment(attachment.index, ofMessageWithIdentifier: messageId, ownedCryptoId: ownedCryptoId) - } - - - } catch(let error) { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let attachment = try? ReceivedFyleMessageJoinWithStatus.getReceivedFyleMessageJoinWithStatus(objectID: receivedJoinObjectID.objectID, within: obvContext.context) else { return } + + switch attachment.status { + case .downloading: + guard resumeOrPause == .pause else { return } + case .downloadable: + guard resumeOrPause == .resume else { return } + case .complete, .cancelledByServer: + return } + + guard let ownedCryptoId = attachment.message?.discussion?.ownedIdentity?.cryptoId else { return } + let messageId = attachment.messageIdentifierFromEngine + + switch resumeOrPause { + case .resume: + try obvEngine.resumeDownloadOfAttachment(attachment.index, ofMessageWithIdentifier: messageId, ownedCryptoId: ownedCryptoId, forceResume: false) + case .pause: + try obvEngine.pauseDownloadOfAttachment(attachment.index, ofMessageWithIdentifier: messageId, ownedCryptoId: ownedCryptoId) + } + + + } catch(let error) { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ResumeOrPauseOwnedAttachmentDownloadOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ResumeOrPauseOwnedAttachmentDownloadOperation.swift new file mode 100644 index 00000000..8afa5734 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ResumeOrPauseOwnedAttachmentDownloadOperation.swift @@ -0,0 +1,92 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import CoreData +import OlvidUtils +import ObvEngine +import ObvUICoreData + + +/// This operation gets executed when the user decides to resume or to pause the download of an attachment sent from another owned device. +/// It does not modify the app database but, instead, requests a resume or a pause of the download to the engine. +final class ResumeOrPauseOwnedAttachmentDownloadOperation: ContextualOperationWithSpecificReasonForCancel { + + private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: ResumeOrPauseAttachmentDownloadOperation.self)) + + private let sentJoinObjectID: TypeSafeManagedObjectID + private let resumeOrPause: ResumeOrPause + private let obvEngine: ObvEngine + + enum ResumeOrPause { + case resume + case pause + } + + init(sentJoinObjectID: TypeSafeManagedObjectID, resumeOrPause: ResumeOrPause, obvEngine: ObvEngine) { + self.sentJoinObjectID = sentJoinObjectID + self.resumeOrPause = resumeOrPause + self.obvEngine = obvEngine + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + guard let attachment = try? SentFyleMessageJoinWithStatus.getSentFyleMessageJoinWithStatus(objectID: sentJoinObjectID.objectID, within: obvContext.context) else { return } + guard let messageId = attachment.messageIdentifierFromEngine else { + assertionFailure("The messageIdentifierFromEngine for messages sent from another owned device should always be non-nil. It is always nil for messages sent from the current device (for which no resume/pause download makes sense") + return + } + + switch attachment.status { + case .downloading: + guard resumeOrPause == .pause else { return } + case .downloadable: + guard resumeOrPause == .resume else { return } + case .complete, .cancelledByServer: + return + case .uploadable: + assertionFailure("This should never happen for an attachment sent from another owned device") + return + case .uploading: + assertionFailure("This should never happen for an attachment sent from another owned device") + return + } + + guard let ownedCryptoId = attachment.message?.discussion?.ownedIdentity?.cryptoId else { return } + + switch resumeOrPause { + case .resume: + try obvEngine.resumeDownloadOfAttachment(attachment.index, ofMessageWithIdentifier: messageId, ownedCryptoId: ownedCryptoId, forceResume: false) + case .pause: + try obvEngine.pauseDownloadOfAttachment(attachment.index, ofMessageWithIdentifier: messageId, ownedCryptoId: ownedCryptoId) + } + + + } catch(let error) { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + + } +} + diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/SaveReceivedExtendedPayloadOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/SaveReceivedExtendedPayloadOperation.swift index 414c9f9b..56bda892 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/SaveReceivedExtendedPayloadOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/SaveReceivedExtendedPayloadOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import os.log import ObvEngine import ObvEncoder import ObvUICoreData +import CoreData final class SaveReceivedExtendedPayloadOperation: ContextualOperationWithSpecificReasonForCancel { @@ -34,61 +35,67 @@ final class SaveReceivedExtendedPayloadOperation: ContextualOperationWithSpecifi super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - guard let attachementImages = extractReceivedExtendedPayloadOp.attachementImages else { return cancel(withReason: .downsizedImagesIsNil) } - - let obvMessage = extractReceivedExtendedPayloadOp.obvMessage - - obvContext.performAndWait { - - do { - guard let message = try PersistedMessageReceived.get(messageIdentifierFromEngine: obvMessage.messageIdentifierFromEngine, from: obvMessage.fromContactIdentity, within: obvContext.context) else { - return cancel(withReason: .couldNotFindReceivedMessageInDatabase) + + let input = extractReceivedExtendedPayloadOp.input + + do { + + let permanentIDOfMessageToRefreshInViewContext: TypeSafeManagedObjectID? + + switch input { + case .messageSentByContact(obvMessage: let obvMessage): + + + // Grab the persisted contact who sent the message + + guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: obvMessage.fromContactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { + return cancel(withReason: .couldNotFindPersistedObvContactIdentityInDatabase) } - - var permanentIDOfMessageToRefreshInViewContext: ObvManagedObjectPermanentID? = nil - for attachementImage in attachementImages { - let attachmentNumber = attachementImage.attachmentNumber - guard attachmentNumber < message.fyleMessageJoinWithStatuses.count else { - return cancel(withReason: .unexpectedAttachmentNumber) - } - - guard case .data(let data) = attachementImage.dataOrURL else { - continue - } - - let fyleMessageJoinWithStatus = message.fyleMessageJoinWithStatuses[attachmentNumber] - - if fyleMessageJoinWithStatus.setDownsizedThumbnailIfRequired(data: data) { - // the setDownsizedThumbnailIfRequired returned true, meaning that the downsized thumbnail has been set. We will need to refresh the message in the view context. - permanentIDOfMessageToRefreshInViewContext = message.objectPermanentID - } + // Save the extended payload sent by this contact + + let permanentIDOfSentMessageToRefreshInViewContext = try persistedContactIdentity.saveExtendedPayload(foundIn: attachementImages, for: obvMessage) + + permanentIDOfMessageToRefreshInViewContext = permanentIDOfSentMessageToRefreshInViewContext?.downcast + + case .messageSentByOtherDeviceOfOwnedIdentity(obvOwnedMessage: let obvOwnedMessage): + + // Grab the persisted owned identity who sent the message on another owned device + + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: obvOwnedMessage.ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentityInDatabase) } - if let permanentIDOfMessageToRefreshInViewContext { - try? obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { return } - ObvStack.shared.viewContext.perform { - if let draftInViewContext = ObvStack.shared.viewContext.registeredObjects - .filter({ !$0.isDeleted }) - .first(where: { ($0 as? PersistedMessageReceived)?.objectPermanentID == permanentIDOfMessageToRefreshInViewContext }) { - ObvStack.shared.viewContext.refresh(draftInViewContext, mergeChanges: false) - } + // Save the extended payload sent from another device of the owned identity + + let permanentIDOfMessageReceivedToRefreshInViewContext = try persistedObvOwnedIdentity.saveExtendedPayload(foundIn: attachementImages, for: obvOwnedMessage) + + permanentIDOfMessageToRefreshInViewContext = permanentIDOfMessageReceivedToRefreshInViewContext?.downcast + + } + + // If we saved an extended payload, we refresh the message in the view context + + if let permanentIDOfMessageToRefreshInViewContext { + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + ObvStack.shared.viewContext.perform { + if let draftInViewContext = ObvStack.shared.viewContext.registeredObjects + .filter({ !$0.isDeleted }) + .first(where: { ($0 as? PersistedMessage)?.typedObjectID == permanentIDOfMessageToRefreshInViewContext }) { + ObvStack.shared.viewContext.refresh(draftInViewContext, mergeChanges: false) } } } - - } catch { - return cancel(withReason: .coreDataError(error: error)) } + + } catch { + return cancel(withReason: .coreDataError(error: error)) } } @@ -100,15 +107,15 @@ enum SaveReceivedExtendedPayloadOperationReasonForCancel: LocalizedErrorWithLogT case contextIsNil case coreDataError(error: Error) case downsizedImagesIsNil - case couldNotFindReceivedMessageInDatabase - case unexpectedAttachmentNumber + case couldNotFindPersistedObvContactIdentityInDatabase + case couldNotFindOwnedIdentityInDatabase var logType: OSLogType { switch self { case .coreDataError, .contextIsNil: return .fault - case .downsizedImagesIsNil, .couldNotFindReceivedMessageInDatabase, .unexpectedAttachmentNumber: + case .downsizedImagesIsNil, .couldNotFindPersistedObvContactIdentityInDatabase, .couldNotFindOwnedIdentityInDatabase: return .error } } @@ -117,9 +124,9 @@ enum SaveReceivedExtendedPayloadOperationReasonForCancel: LocalizedErrorWithLogT switch self { case .contextIsNil: return "Context is nil" case .coreDataError(error: let error): return "Core Data error: \(error.localizedDescription)" - case .couldNotFindReceivedMessageInDatabase: return "Could not find received message in database" - case .unexpectedAttachmentNumber: return "Unexpected attachment number" case .downsizedImagesIsNil: return "Downsized images is nil" + case .couldNotFindPersistedObvContactIdentityInDatabase: return "Could not find contact in database" + case .couldNotFindOwnedIdentityInDatabase: return "Could not find owned identity in database" } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/UpdatePersistedMessageReceivedFromReceivedObvAttachmentOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/UpdatePersistedMessageReceivedFromReceivedObvAttachmentOperation.swift new file mode 100644 index 00000000..1ff51add --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/UpdatePersistedMessageReceivedFromReceivedObvAttachmentOperation.swift @@ -0,0 +1,124 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvEngine +import ObvCrypto +import OlvidUtils +import ObvUICoreData +import ObvTypes + + +final class UpdatePersistedMessageReceivedFromReceivedObvAttachmentOperation: ContextualOperationWithSpecificReasonForCancel { + + private let obvAttachment: ObvAttachment + private let obvEngine: ObvEngine + private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: UpdatePersistedMessageReceivedFromReceivedObvAttachmentOperation.self)) + + init(obvAttachment: ObvAttachment, obvEngine: ObvEngine) { + self.obvAttachment = obvAttachment + self.obvEngine = obvEngine + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + // Grab the persisted contact who sent the message + + guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: obvAttachment.fromContactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { + return cancel(withReason: .couldNotFindPersistedObvContactIdentityInDatabase) + } + + // Update the attachment sent by this contact + + let attachmentFullyReceivedOrCancelledByServer: Bool + do { + attachmentFullyReceivedOrCancelledByServer = try persistedContactIdentity.process(obvAttachment: obvAttachment) + } catch { + // In rare circumstances, the engine might announce a downloaded attachment although there is no file on disk. + // In that case, we request a re-download of the attachments. + if let error = error as? ObvUICoreData.Fyle.ObvError, error == .couldNotFindSourceFile { + try? obvEngine.resumeDownloadOfAttachment(obvAttachment.number, + ofMessageWithIdentifier: obvAttachment.messageIdentifier, + ownedCryptoId: obvAttachment.fromContactIdentity.ownedCryptoId, + forceResume: true) + } + throw error + } + + // If the attachment was fully received, we ask the engine to delete the attachment + + if attachmentFullyReceivedOrCancelledByServer { + let obvEngine = self.obvEngine + let obvAttachment = self.obvAttachment + let log = self.log + do { + try obvContext.addContextDidSaveCompletionHandler { error in + do { + try obvEngine.deleteObvAttachment(attachmentNumber: obvAttachment.number, ofMessageWithIdentifier: obvAttachment.messageIdentifier, ownedCryptoId: obvAttachment.fromContactIdentity.ownedCryptoId) + } catch { + os_log("Call to the engine method deleteObvAttachment did fail", log: log, type: .fault) + assertionFailure() + } + } + } catch { + assertionFailure(error.localizedDescription) + } + + } + + } catch { + assertionFailure(error.localizedDescription) + return cancel(withReason: .coreDataError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case couldNotFindPersistedObvContactIdentityInDatabase + case coreDataError(error: Error) + case contextIsNil + + var logType: OSLogType { + switch self { + case .coreDataError, .contextIsNil, .couldNotFindPersistedObvContactIdentityInDatabase: + return .fault + } + } + + var errorDescription: String? { + switch self { + case .contextIsNil: + return "The context is not set" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindPersistedObvContactIdentityInDatabase: + return "Could not find contact identity of received message in database" + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/UpdatePersistedMessageSentFromReceivedObvOwnedAttachmentOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/UpdatePersistedMessageSentFromReceivedObvOwnedAttachmentOperation.swift new file mode 100644 index 00000000..a974e0b0 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/UpdatePersistedMessageSentFromReceivedObvOwnedAttachmentOperation.swift @@ -0,0 +1,112 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log +import ObvEngine +import ObvCrypto +import OlvidUtils +import ObvUICoreData +import ObvTypes + + +final class UpdatePersistedMessageSentFromReceivedObvOwnedAttachmentOperation: ContextualOperationWithSpecificReasonForCancel { + + private let obvOwnedAttachment: ObvOwnedAttachment + private let obvEngine: ObvEngine + private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: UpdatePersistedMessageReceivedFromReceivedObvAttachmentOperation.self)) + + init(obvOwnedAttachment: ObvOwnedAttachment, obvEngine: ObvEngine) { + self.obvOwnedAttachment = obvOwnedAttachment + self.obvEngine = obvEngine + super.init() + } + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + // Grab the persisted owned identity who sent the message on another owned device + + guard let persistedObvOwnedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: obvOwnedAttachment.ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentityInDatabase) + } + + // Update the attachment sent by this owned identity on another of her owned devices + + let attachmentFullyReceivedOrCancelledByServer = try persistedObvOwnedIdentity.processObvOwnedAttachmentFromOtherOwnedDevice(obvOwnedAttachment: obvOwnedAttachment) + + // If the attachment was fully received, we ask the engine to delete the attachment + + if attachmentFullyReceivedOrCancelledByServer { + let obvEngine = self.obvEngine + let obvOwnedAttachment = self.obvOwnedAttachment + let log = self.log + do { + try obvContext.addContextDidSaveCompletionHandler { error in + do { + try obvEngine.deleteObvAttachment(attachmentNumber: obvOwnedAttachment.number, ofMessageWithIdentifier: obvOwnedAttachment.messageIdentifier, ownedCryptoId: obvOwnedAttachment.ownedCryptoId) + } catch { + os_log("Call to the engine method deleteObvAttachment did fail", log: log, type: .fault) + assertionFailure() + } + } + } catch { + assertionFailure(error.localizedDescription) + } + + } + + } catch { + assertionFailure(error.localizedDescription) + return cancel(withReason: .coreDataError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case couldNotFindOwnedIdentityInDatabase + case coreDataError(error: Error) + case contextIsNil + + var logType: OSLogType { + switch self { + case .coreDataError, .contextIsNil, .couldNotFindOwnedIdentityInDatabase: + return .fault + } + } + + var errorDescription: String? { + switch self { + case .contextIsNil: + return "The context is not set" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentityInDatabase: + return "Could not find owned identity of attachment (sent for other owned device) in database" + } + } + + } + +} + diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/ReorderDiscussionsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/ReorderDiscussionsOperation.swift index 653769bc..9a253c3c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/ReorderDiscussionsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/ReorderDiscussionsOperation.swift @@ -29,26 +29,100 @@ import ObvUICoreData final class ReorderDiscussionsOperation: ContextualOperationWithSpecificReasonForCancel { - let discussionObjectIDs: [NSManagedObjectID] + let input: Input let ownedIdentity: ObvCryptoId - init(discussionObjectIDs: [NSManagedObjectID], ownedIdentity: ObvCryptoId) { - self.discussionObjectIDs = discussionObjectIDs + private let makeSyncAtomRequest: Bool + private weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? + + enum Input { + case discussionObjectIDs(discussionObjectIDs: [NSManagedObjectID]) + case discussionsIdentifiers(discussionIdentifiers: [ObvSyncAtom.DiscussionIdentifier], ordered: Bool) + } + + init(input: Input, ownedIdentity: ObvCryptoId, makeSyncAtomRequest: Bool, syncAtomRequestDelegate: ObvSyncAtomRequestDelegate?) { + self.input = input self.ownedIdentity = ownedIdentity + self.makeSyncAtomRequest = makeSyncAtomRequest + self.syncAtomRequestDelegate = syncAtomRequestDelegate super.init() } - override func main() { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - try PersistedDiscussion.setPinnedDiscussions(persistedDiscussionObjectIDs: discussionObjectIDs, ownedCryptoId: ownedIdentity, within: obvContext.context) - } catch { - return cancel(withReason: .coreDataError(error: error)) + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + do { + + let discussionObjectIDs: [NSManagedObjectID] + let ordered: Bool + + switch input { + case .discussionObjectIDs(discussionObjectIDs: let objectIDs): + discussionObjectIDs = objectIDs + ordered = true + case .discussionsIdentifiers(discussionIdentifiers: let discussionIdentifiers, ordered: let _ordered): + ordered = _ordered + discussionObjectIDs = discussionIdentifiers.compactMap { discussionIdentifier in + switch discussionIdentifier { + case .oneToOne(contactCryptoId: let contactCryptoId): + let contactIdentifier = ObvContactIdentifier(contactCryptoId: contactCryptoId, ownedCryptoId: ownedIdentity) + guard let contact = try? PersistedObvContactIdentity.get(persisted: contactIdentifier, whereOneToOneStatusIs: .oneToOne, within: obvContext.context) else { + return nil + } + return contact.oneToOneDiscussion?.objectID + case .groupV1(groupIdentifier: let groupIdentifier): + guard let groupV1 = try? PersistedContactGroup.getContactGroup(groupIdentifier: groupIdentifier, ownedCryptoId: ownedIdentity, within: obvContext.context) else { + return nil + } + return groupV1.discussion.objectID + case .groupV2(groupIdentifier: let groupIdentifier): + guard let groupV2 = try? PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: groupIdentifier, within: obvContext.context) else { + return nil + } + return groupV2.discussion?.objectID + } + } + } + + let atLeastOnePinnedIndexWasChanged = try PersistedDiscussion.setPinnedDiscussions(persistedDiscussionObjectIDs: discussionObjectIDs, ordered: ordered, ownedCryptoId: ownedIdentity, within: obvContext.context) + + // Propagate the new order to our other owned devices if required + + if makeSyncAtomRequest && atLeastOnePinnedIndexWasChanged { + assert(self.syncAtomRequestDelegate != nil) + if let syncAtomRequestDelegate = self.syncAtomRequestDelegate { + let ownedCryptoId = self.ownedIdentity + guard let pinnedDiscussions = try? PersistedDiscussion.getAllPinnedDiscussions(ownedCryptoId: ownedCryptoId, with: obvContext.context) else { assertionFailure(); return } + let discussionIdentifiers: [ObvSyncAtom.DiscussionIdentifier] = pinnedDiscussions.compactMap { getObvSyncAtomDiscussionIdentifierFrom(persistedDiscussion: $0) } + let syncAtom = ObvSyncAtom.pinnedDiscussions(discussionIdentifiers: discussionIdentifiers, ordered: true) + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + Task.detached { + await syncAtomRequestDelegate.requestPropagationToOtherOwnedDevices(of: syncAtom, for: ownedCryptoId) + } + } + } } + + } catch { + return cancel(withReason: .coreDataError(error: error)) } } + + + private func getObvSyncAtomDiscussionIdentifierFrom(persistedDiscussion: PersistedDiscussion) -> ObvSyncAtom.DiscussionIdentifier? { + guard let discussionKind = try? persistedDiscussion.kind else { assertionFailure(); return nil } + switch discussionKind { + case .oneToOne(withContactIdentity: let persistedContact): + guard let persistedContact else { assertionFailure(); return nil } + return .oneToOne(contactCryptoId: persistedContact.cryptoId) + case .groupV1(withContactGroup: let groupV1): + guard let groupV1 else { assertionFailure(); return nil } + guard let groupId = try? groupV1.getGroupId() else { assertionFailure(); return nil } + return .groupV1(groupIdentifier: groupId) + case .groupV2(withGroup: let groupV2): + guard let groupV2 else { assertionFailure(); return nil } + return .groupV2(groupIdentifier: groupV2.groupIdentifier) + } + + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SendReactionJSONOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SendReactionJSONOperation.swift index 224b19f5..541c4d26 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SendReactionJSONOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SendReactionJSONOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -39,65 +39,62 @@ final class SendReactionJSONOperation: ContextualOperationWithSpecificReasonForC super.init() } - override func main() { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - let message: PersistedMessage - do { - guard let _message = try PersistedMessage.get(with: messageObjectID, within: obvContext.context) else { - return cancel(withReason: .cannotFindMessage) - } - message = _message - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - let itemJSON: PersistedItemJSON - do { - let reactionJSON = try ReactionJSON(persistedMessageToReact: message, emoji: emoji) - itemJSON = PersistedItemJSON(reactionJSON: reactionJSON) - } catch { - return cancel(withReason: .couldNotConstructReactionJSON) - } - - // Find all the contacts to which this item should be sent. - - let discussion = message.discussion - let contactCryptoIds: Set - let ownCryptoId: ObvCryptoId - do { - (ownCryptoId, contactCryptoIds) = try discussion.getAllActiveParticipants() - } catch { - return cancel(withReason: .couldNotGetCryptoIdOfDiscussionParticipants(error: error)) - } - - // Create a payload of the PersistedItemJSON we just created and send it. - // We do not keep track of the message identifiers from engine. - - let payload: Data - do { - payload = try itemJSON.jsonEncode() - } catch { - return cancel(withReason: .failedToEncodePersistedItemJSON) - } - - do { - _ = try obvEngine.post(messagePayload: payload, - extendedPayload: nil, - withUserContent: true, - isVoipMessageForStartingCall: false, - attachmentsToSend: [], - toContactIdentitiesWithCryptoId: contactCryptoIds, - ofOwnedIdentityWithCryptoId: ownCryptoId) - } catch { - return cancel(withReason: .couldNotPostMessageWithinEngine) + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + let message: PersistedMessage + do { + guard let _message = try PersistedMessage.get(with: messageObjectID, within: obvContext.context) else { + return cancel(withReason: .cannotFindMessage) } + message = _message + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + + let itemJSON: PersistedItemJSON + do { + let reactionJSON = try ReactionJSON(persistedMessageToReact: message, emoji: emoji) + itemJSON = PersistedItemJSON(reactionJSON: reactionJSON) + } catch { + return cancel(withReason: .couldNotConstructReactionJSON) + } + + // Find all the contacts to which this item should be sent. + + guard let discussion = message.discussion else { + return cancel(withReason: .couldNotDetermineDiscussion) + } + let contactCryptoIds: Set + let ownCryptoId: ObvCryptoId + do { + (ownCryptoId, contactCryptoIds) = try discussion.getAllActiveParticipants() + } catch { + return cancel(withReason: .couldNotGetCryptoIdOfDiscussionParticipants(error: error)) + } + + // Create a payload of the PersistedItemJSON we just created and send it. + // We do not keep track of the message identifiers from engine. + + let payload: Data + do { + payload = try itemJSON.jsonEncode() + } catch { + return cancel(withReason: .failedToEncodePersistedItemJSON) + } + + do { + _ = try obvEngine.post(messagePayload: payload, + extendedPayload: nil, + withUserContent: true, + isVoipMessageForStartingCall: false, + attachmentsToSend: [], + toContactIdentitiesWithCryptoId: contactCryptoIds, + ofOwnedIdentityWithCryptoId: ownCryptoId, + alsoPostToOtherOwnedDevices: true) + } catch { + return cancel(withReason: .couldNotPostMessageWithinEngine) + } + } } @@ -110,6 +107,7 @@ enum SendReactionJSONOperationReasonForCancel: LocalizedErrorWithLogType { case couldNotGetCryptoIdOfDiscussionParticipants(error: Error) case failedToEncodePersistedItemJSON case couldNotPostMessageWithinEngine + case couldNotDetermineDiscussion var logType: OSLogType { .fault } @@ -129,6 +127,8 @@ enum SendReactionJSONOperationReasonForCancel: LocalizedErrorWithLogType { return "We failed to encode the persisted item JSON" case .couldNotPostMessageWithinEngine: return "We failed to post the serialized DeleteMessagesJSON within the engine" + case .couldNotDetermineDiscussion: + return "Could not determine discussion" } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ComputeExtendedPayloadOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ComputeExtendedPayloadOperation.swift index c72924b8..2cf798dc 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ComputeExtendedPayloadOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ComputeExtendedPayloadOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,7 +24,6 @@ import OlvidUtils import UIKit import MobileCoreServices import ObvEncoder -import ObvMetaManager import ObvUICoreData @@ -38,9 +37,6 @@ final class ComputeExtendedPayloadOperation: ContextualOperationWithSpecificReas private let input: ComputeExtendedPayloadOperationInput private let maxNumberOfDownsizedImages = 25 - private static let errorDomain = "ComputeExtendedPayloadOperation" - fileprivate static func makeError(message: String) -> Error { NSError(domain: ComputeExtendedPayloadOperation.errorDomain, code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } - init(provider: UnprocessedPersistedMessageSentProvider) { self.input = .unprocessedPersistedMessageSentProvider(provider) super.init() @@ -53,8 +49,8 @@ final class ComputeExtendedPayloadOperation: ContextualOperationWithSpecificReas private(set) var extendedPayload: Data? - override func main() { - + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + let messageSentPermanentID: ObvManagedObjectPermanentID switch input { case .message(let _messageSentPermanentID): @@ -65,77 +61,70 @@ final class ComputeExtendedPayloadOperation: ContextualOperationWithSpecificReas } messageSentPermanentID = _messageSentPermanentID } - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - let persistedMessageSent: PersistedMessageSent - do { - guard let _persistedMessageSent = try PersistedMessageSent.getManagedObject(withPermanentID: messageSentPermanentID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindPersistedMessageSentInDatabase) - } - persistedMessageSent = _persistedMessageSent - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - guard persistedMessageSent.status == .unprocessed || persistedMessageSent.status == .processing else { - return - } - - guard !persistedMessageSent.fyleMessageJoinWithStatuses.isEmpty else { return } - - // Compute up to 25 downsized images - - var attachmentNumbersAnddownsizedImages = [(attachmentNumber: Int, downsizedImage: CGImage)]() - for join in persistedMessageSent.fyleMessageJoinWithStatuses { - guard let fyle = join.fyle else { continue } - guard ObvUTIUtils.uti(join.uti, conformsTo: kUTTypeImage) else { continue } - - // Return a centered squared image - guard let squareImage = extractSquaredImageFromImage(at: fyle.url) else { continue } - - // Resize the squared image to a resolution larger, but close to 40x40 pixels - guard let downsizedImage = downsizeImage(squareImage) else { continue } - - attachmentNumbersAnddownsizedImages.append((join.index, downsizedImage)) - - guard attachmentNumbersAnddownsizedImages.count < maxNumberOfDownsizedImages else { break } - } - - guard !attachmentNumbersAnddownsizedImages.isEmpty else { return } - - // Compute a single image composed of the downsized image, from left to right, from down to bottom. - - guard let singleImage = createSingleImageComposedOfImages(attachmentNumbersAnddownsizedImages.map({ $0.downsizedImage })) else { - assertionFailure("Could not compute single image from downsized images") - return - } - - // Export single image to jpeg, try to remove EXIF attributes, and encode the result - - guard let jpegDataOfSingleImage = UIImage(cgImage: singleImage).jpegData(compressionQuality: 0.75) else { - assertionFailure("Could not export single image to Jpeg") - return + + let persistedMessageSent: PersistedMessageSent + do { + guard let _persistedMessageSent = try PersistedMessageSent.getManagedObject(withPermanentID: messageSentPermanentID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindPersistedMessageSentInDatabase) } - - let jpegDataOfSingleImageWithoutAttributes = removeJpegAttributesFromJpegDataOfSingleImage(jpegDataOfSingleImage) - - let encodedImageData = (jpegDataOfSingleImageWithoutAttributes ?? jpegDataOfSingleImage).obvEncode() - - let encodedListOfAttachmentNumbers = attachmentNumbersAnddownsizedImages.map({ $0.attachmentNumber }).map({ $0.obvEncode() }).obvEncode() - let encodedExtendedPayload = [ - 0.obvEncode(), - encodedListOfAttachmentNumbers, - encodedImageData, - ].obvEncode() - - self.extendedPayload = encodedExtendedPayload.rawData + persistedMessageSent = _persistedMessageSent + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + + guard persistedMessageSent.status == .unprocessed || persistedMessageSent.status == .processing else { + return + } + + guard !persistedMessageSent.fyleMessageJoinWithStatuses.isEmpty else { return } + + // Compute up to 25 downsized images + + var attachmentNumbersAnddownsizedImages = [(attachmentNumber: Int, downsizedImage: CGImage)]() + for join in persistedMessageSent.fyleMessageJoinWithStatuses { + guard let fyle = join.fyle else { continue } + guard join.contentType.conforms(to: .image) else { continue } + + // Return a centered squared image + guard let squareImage = extractSquaredImageFromImage(at: fyle.url) else { continue } + + // Resize the squared image to a resolution larger, but close to 40x40 pixels + guard let downsizedImage = downsizeImage(squareImage) else { continue } + + attachmentNumbersAnddownsizedImages.append((join.index, downsizedImage)) + + guard attachmentNumbersAnddownsizedImages.count < maxNumberOfDownsizedImages else { break } + } + + guard !attachmentNumbersAnddownsizedImages.isEmpty else { return } + + // Compute a single image composed of the downsized image, from left to right, from down to bottom. + + guard let singleImage = createSingleImageComposedOfImages(attachmentNumbersAnddownsizedImages.map({ $0.downsizedImage })) else { + assertionFailure("Could not compute single image from downsized images") + return + } + + // Export single image to jpeg, try to remove EXIF attributes, and encode the result + + guard let jpegDataOfSingleImage = UIImage(cgImage: singleImage).jpegData(compressionQuality: 0.75) else { + assertionFailure("Could not export single image to Jpeg") + return + } + + let jpegDataOfSingleImageWithoutAttributes = removeJpegAttributesFromJpegDataOfSingleImage(jpegDataOfSingleImage) + + let encodedImageData = (jpegDataOfSingleImageWithoutAttributes ?? jpegDataOfSingleImage).obvEncode() + + let encodedListOfAttachmentNumbers = attachmentNumbersAnddownsizedImages.map({ $0.attachmentNumber }).map({ $0.obvEncode() }).obvEncode() + let encodedExtendedPayload = [ + 0.obvEncode(), + encodedListOfAttachmentNumbers, + encodedImageData, + ].obvEncode() + + self.extendedPayload = encodedExtendedPayload.rawData + } @@ -408,11 +397,12 @@ enum ComputeExtendedPayloadOperationReasonForCancel: LocalizedErrorWithLogType { case coreDataError(error: Error) case persistedMessageSentObjectIDIsNil case couldNotFindPersistedMessageSentInDatabase + case notEnoughBytes var logType: OSLogType { switch self { - case .coreDataError, .contextIsNil, .persistedMessageSentObjectIDIsNil: + case .coreDataError, .contextIsNil, .persistedMessageSentObjectIDIsNil, .notEnoughBytes: return .fault case .couldNotFindPersistedMessageSentInDatabase: return .error @@ -427,6 +417,8 @@ enum ComputeExtendedPayloadOperationReasonForCancel: LocalizedErrorWithLogType { return "persistedMessageSentObjectID is nil" case .couldNotFindPersistedMessageSentInDatabase: return "Could not find the PersistedMessageSent in database" + case .notEnoughBytes: + return "Not enough bytes" } } @@ -448,7 +440,7 @@ private extension Data.Iterator { mutating func skip(numberOfBytes: UInt16) throws { for _ in 0.. { +final class FindAdministratedGroupV2DiscussionsAndOneToOneDiscussionWithContactOperation: ContextualOperationWithSpecificReasonForCancel { enum Input { - case contactDevice(contactDeviceObjectID: NSManagedObjectID) + case contactDevice(contactDeviceObjectID: TypeSafeManagedObjectID) case contact(contactObjectID: TypeSafeManagedObjectID) } @@ -42,75 +44,105 @@ final class FindAdministratedGroupV2DiscussionsAndOneToOneDiscussionWithContactO } /// If this operation finishes without cancelling, this is guaranteed to be set. - /// It will contain the object IDs of all the group V2 discussions where the contact is part of the members and where the corresponding owned identity is an administrator. - /// It will also contain the object ID of the oneToOne discussion. - private(set) var persistedDiscussionObjectIDs = Set>() + /// It will contain the identifiers of all the group V2 discussions where the contact is part of the members and where the corresponding owned identity is an administrator. + /// It will also contain the identifier of the oneToOne discussion. + private(set) var persistedDiscussionIdentifiers = [DiscussionIdentifier]() + private(set) var ownedCryptoId: ObvCryptoId? + private(set) var contactCryptoId: ObvCryptoId? - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { + do { - let contact: PersistedObvContactIdentity + let contact: PersistedObvContactIdentity + + switch input { + case .contactDevice(let contactDeviceObjectID): - switch input { - case .contactDevice(let contactDeviceObjectID): - - // Find the contact device and corresponding contact - - guard let device = try PersistedObvContactDevice.get(contactDeviceObjectID: contactDeviceObjectID, within: obvContext.context) else { - assertionFailure() - return - } - - guard let _contact = device.identity else { - assertionFailure() - return - } - - contact = _contact - - case .contact(let contactObjectID): - - guard let _contact = try PersistedObvContactIdentity.get(objectID: contactObjectID, within: obvContext.context) else { - assertionFailure() - return - } - - contact = _contact - - } - - // Find all group v2 that include this contact and keep those that we administrate + // Find the contact device and corresponding contact - let administratedGroups = try PersistedGroupV2.getAllPersistedGroupV2(whereContactIdentitiesInclude: contact) - .filter({ $0.ownedIdentityIsAllowedToChangeSettings }) + guard let device = try PersistedObvContactDevice.get(contactDeviceObjectID: contactDeviceObjectID.objectID, within: obvContext.context) else { + assertionFailure() + return cancel(withReason: .couldNotFindContactDevice) + } - // Save the object IDs of the corresponding discussions + guard let _contact = device.identity else { + assertionFailure() + return cancel(withReason: .couldNotFindContactIdentity) + } - self.persistedDiscussionObjectIDs = Set(administratedGroups.compactMap({ $0.discussion?.typedObjectID.downcast })) + contact = _contact - // Add the objectID of the one-to-one discussion the owned identity has with the contact + case .contact(let contactObjectID): - if includeOneToOneDiscussionInResult { - if let oneToOneDiscussionObjectID = contact.oneToOneDiscussion?.typedObjectID.downcast { - self.persistedDiscussionObjectIDs.insert(oneToOneDiscussionObjectID) - } else if contact.isOneToOne { - assertionFailure() - // Continue anyway - } + guard let _contact = try PersistedObvContactIdentity.get(objectID: contactObjectID, within: obvContext.context) else { + assertionFailure() + return cancel(withReason: .couldNotFindContactIdentity) } - } catch { - return cancel(withReason: .coreDataError(error: error)) + contact = _contact + + } + + self.contactCryptoId = contact.cryptoId + + guard let _ownedCryptoId = contact.ownedIdentity?.cryptoId else { + return cancel(withReason: .couldNotDetermineOwnedCryptoId) } + self.ownedCryptoId = _ownedCryptoId + + // Find all group v2 that include this contact and keep those that we administrate + + let administratedGroups = try PersistedGroupV2.getAllPersistedGroupV2(whereContactIdentitiesInclude: contact) + .filter({ $0.ownedIdentityIsAllowedToChangeSettings }) + + // Save the object IDs of the corresponding discussions + + self.persistedDiscussionIdentifiers = administratedGroups.compactMap({ try? $0.discussion?.identifier }) + + // Add the objectID of the one-to-one discussion the owned identity has with the contact + + if includeOneToOneDiscussionInResult { + if let oneToOneDiscussionIdentifier = try? contact.oneToOneDiscussion?.identifier { + self.persistedDiscussionIdentifiers.append(oneToOneDiscussionIdentifier) + } else if contact.isOneToOne { + assertionFailure() + // Continue anyway + } + } + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case couldNotDetermineOwnedCryptoId + case couldNotFindContactDevice + case couldNotFindContactIdentity + + var logType: OSLogType { + return .fault } + var errorDescription: String? { + switch self { + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotDetermineOwnedCryptoId: + return "Could not determine owned crypto id" + case .couldNotFindContactDevice: + return "Could not find contact device" + case .couldNotFindContactIdentity: + return "Could not find contact identity" + } + } + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/FindSentMessagesWithPersistedMessageSentRecipientInfosCanNowBeSentByEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/FindSentMessagesWithPersistedMessageSentRecipientInfosCanNowBeSentByEngineOperation.swift index f4821003..a1a469a8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/FindSentMessagesWithPersistedMessageSentRecipientInfosCanNowBeSentByEngineOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/FindSentMessagesWithPersistedMessageSentRecipientInfosCanNowBeSentByEngineOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -65,16 +65,20 @@ final class FindSentMessagesWithPersistedMessageSentRecipientInfosCanNowBeSentBy // Determine the discussion kind + guard let discussion = info.messageSent.discussion else { + throw Self.makeError(message: "Could not determine discussion") + } + let discussionKind: PersistedDiscussion.Kind do { - discussionKind = try info.messageSent.discussion.kind + discussionKind = try discussion.kind } catch { throw Self.makeError(message: "Could not determine discussion kind, cannot send infos") } // Determine the owned identity - guard let ownedCryptoId = info.messageSent.discussion.ownedIdentity?.cryptoId else { + guard let ownedCryptoId = discussion.ownedIdentity?.cryptoId else { throw Self.makeError(message: "Could not determine owned identity") } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/MarkSentFyleMessageJoinWithStatusAsCompleteOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/MarkSentFyleMessageJoinWithStatusAsCompleteOperation.swift index e69c30a0..205ea923 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/MarkSentFyleMessageJoinWithStatusAsCompleteOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/MarkSentFyleMessageJoinWithStatusAsCompleteOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -47,54 +47,46 @@ final class MarkSentFyleMessageJoinWithStatusAsCompleteOperation: ContextualOper self.init(ownedCryptoId: ownedCryptoId, messageIdentifierFromEngineAndAttachmentNumbersToRestrictTo: messageIdentifierFromEngineAndAttachmentNumbersToRestrictTo) } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + do { - do { + for (messageIdentifierFromEngine, restrictToAttachmentNumbers) in messageIdentifierFromEngineAndAttachmentNumbersToRestrictTo { - for (messageIdentifierFromEngine, restrictToAttachmentNumbers) in messageIdentifierFromEngineAndAttachmentNumbersToRestrictTo { - - let infos = try PersistedMessageSentRecipientInfos.getAllPersistedMessageSentRecipientInfos(messageIdentifierFromEngine: messageIdentifierFromEngine, ownedCryptoId: ownedCryptoId, within: obvContext.context) - guard !infos.isEmpty, let persistedMessageSent = infos.first?.messageSent else { - continue - } - - let attachmentNumbers: [Int] - if let restrictToAttachmentNumbers { - attachmentNumbers = restrictToAttachmentNumbers - } else { - attachmentNumbers = Array(0.. { @@ -37,33 +38,26 @@ final class MarkSentMessageAsCouldNotBeSentToServerOperation: ContextualOperatio } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - - let infos = try PersistedMessageSentRecipientInfos.getAllPersistedMessageSentRecipientInfos(messageIdentifierFromEngine: messageIdentifierFromEngine, - ownedCryptoId: ownedCryptoId, - within: obvContext.context) - - guard !infos.isEmpty else { - // No info found, so there is nothing to do - return - } - - for info in infos { - info.setAsCouldNotBeSentToServer() - } - - } catch { - assertionFailure() - return cancel(withReason: .coreDataError(error: error)) + do { + + let infos = try PersistedMessageSentRecipientInfos.getAllPersistedMessageSentRecipientInfos(messageIdentifierFromEngine: messageIdentifierFromEngine, + ownedCryptoId: ownedCryptoId, + within: obvContext.context) + + guard !infos.isEmpty else { + // No info found, so there is nothing to do + return } - + + for info in infos { + info.setAsCouldNotBeSentToServer() + } + + } catch { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessDetectionThatSensitiveMessagesWereCapturedByContactOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessDetectionThatSensitiveMessagesWereCapturedByContactOperation.swift deleted file mode 100644 index 5161149f..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessDetectionThatSensitiveMessagesWereCapturedByContactOperation.swift +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import Foundation -import OlvidUtils -import ObvEngine -import ObvTypes -import ObvUICoreData - - -/// This operation allows to process a received message indicating that one of our contacts did take a screen capture of some sensitive (read-once of with limited visibility) messages within a discussion. If this happen, we want to show this to the owned identity by displaying an appropriate system message within the corresponding discussion. -final class ProcessDetectionThatSensitiveMessagesWereCapturedByContactOperation: ContextualOperationWithSpecificReasonForCancel { - - let contactIdentity: ObvContactIdentity - let screenCaptureDetectionJSON: ScreenCaptureDetectionJSON - - init(contactIdentity: ObvContactIdentity, screenCaptureDetectionJSON: ScreenCaptureDetectionJSON) { - self.contactIdentity = contactIdentity - self.screenCaptureDetectionJSON = screenCaptureDetectionJSON - super.init() - } - - override func main() { - - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - do { - - // Get the contact and the owned identities - - guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: contactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { - // We could not find the contact, we cannot do much - return - } - - guard let ownedIdentity = persistedContactIdentity.ownedIdentity else { - assertionFailure() - return - } - - // Recover the appropriate discussion - - let groupIdentifier = screenCaptureDetectionJSON.groupIdentifier - - let discussion: PersistedDiscussion - switch groupIdentifier { - case .none: - guard let oneToOneDiscussion = persistedContactIdentity.oneToOneDiscussion else { - assertionFailure() - return - } - discussion = oneToOneDiscussion - case .groupV1(groupV1Identifier: let groupV1Identifier): - guard let group = try PersistedContactGroup.getContactGroup(groupId: groupV1Identifier, ownedIdentity: ownedIdentity) else { - assertionFailure() - return - } - discussion = group.discussion - case .groupV2(groupV2Identifier: let groupV2Identifier): - guard let group = try PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: groupV2Identifier) else { - assertionFailure() - return - } - guard let groupDiscussion = group.discussion else { - assertionFailure() - return - } - discussion = groupDiscussion - } - - // Make sure the discussion is active - - switch discussion.status { - case .active: - break - case .locked, .preDiscussion: - return - } - - // Insert the appropriate system message in the discussion - - _ = try PersistedMessageSystem.insertContactIdentityDidCaptureSensitiveMessages(within: discussion, contact: persistedContactIdentity) - - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - } - - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessDetectionThatSensitiveMessagesWereCapturedByOwnedIdentityOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessDetectionThatSensitiveMessagesWereCapturedByOwnedIdentityOperation.swift index 49a78be3..609d2a2d 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessDetectionThatSensitiveMessagesWereCapturedByOwnedIdentityOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessDetectionThatSensitiveMessagesWereCapturedByOwnedIdentityOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import OlvidUtils import ObvEngine import ObvTypes import ObvUICoreData +import CoreData /// When the `ScreenCaptureDetector` detects that messages with limited visibility were screenshoted or captured (e.g. with a video capture of the screen), this operation gets called. @@ -38,87 +39,47 @@ final class ProcessDetectionThatSensitiveMessagesWereCapturedByOwnedIdentityOper super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + do { + + // Find the discussion and owned identity + guard let discussion = try PersistedDiscussion.getManagedObject(withPermanentID: discussionPermanentID, within: obvContext.context) else { + // The discussion could not be found, nothing left to do + assertionFailure() + return + } + + guard let ownedIdentity = discussion.ownedIdentity else { + assertionFailure() + return + } + + // Process the event locally, which returns the JSON to send to contacts and other owned devices + + let (screenCaptureDetectionJSON, recipients) = try ownedIdentity.processLocalDetectionThatSensitiveMessagesWereCapturedByThisOwnedIdentity(discussionPermanentID: discussionPermanentID) + + // Ask the engine to send the JSON to notify contacts and other owned devices + + let payload: Data do { - - // Find the discussion and owned identity - - guard let discussion = try PersistedDiscussion.getManagedObject(withPermanentID: discussionPermanentID, within: obvContext.context) else { - // The discussion could not be found, nothing left to do - assertionFailure() - return - } - - guard let ownCryptoId = discussion.ownedIdentity?.cryptoId else { - assertionFailure() - return - } - - // Make sure the discussion is active - - switch discussion.status { - case .active: - break - case .locked, .preDiscussion: - return - } - - // Determine if the ScreenCaptureDetectionJSON concerns a one2one or a group discussion. Determine the recipients of this JSON message. - - let recipients: Set - let screenCaptureDetectionJSON: ScreenCaptureDetectionJSON - - switch try discussion.kind { - case .oneToOne(withContactIdentity: let contact): - guard let contact else { assertionFailure(); return } - screenCaptureDetectionJSON = ScreenCaptureDetectionJSON() - recipients = Set([contact.cryptoId]) - case .groupV1(withContactGroup: let group): - guard let group else { assertionFailure(); return } - let groupV1Identifier = try group.getGroupId() - screenCaptureDetectionJSON = ScreenCaptureDetectionJSON(groupV1Identifier: groupV1Identifier) - recipients = Set(group.contactIdentities.compactMap({ $0.cryptoId })) - case .groupV2(withGroup: let group): - guard let group else { assertionFailure(); return } - let groupV2Identifier = group.groupIdentifier - screenCaptureDetectionJSON = ScreenCaptureDetectionJSON(groupV2Identifier: groupV2Identifier) - recipients = Set(group.contactsAmongOtherPendingAndNonPendingMembers.map({ $0.cryptoId })) - } - - // Compute the payload to send - - let payload: Data - do { - let itemJSON = PersistedItemJSON(screenCaptureDetectionJSON: screenCaptureDetectionJSON) - payload = try itemJSON.jsonEncode() - } - - // Send the JSON message - - _ = try obvEngine.post(messagePayload: payload, - extendedPayload: nil, - withUserContent: false, - isVoipMessageForStartingCall: false, - attachmentsToSend: [], - toContactIdentitiesWithCryptoId: recipients, - ofOwnedIdentityWithCryptoId: ownCryptoId) - - // Insert an appropriate system message within the discussion - - _ = try PersistedMessageSystem.insertOwnedIdentityDidCaptureSensitiveMessages(within: discussion) - - } catch { - assertionFailure(error.localizedDescription) - return cancel(withReason: .coreDataError(error: error)) + let itemJSON = PersistedItemJSON(screenCaptureDetectionJSON: screenCaptureDetectionJSON) + payload = try itemJSON.jsonEncode() } + _ = try obvEngine.post(messagePayload: payload, + extendedPayload: nil, + withUserContent: false, + isVoipMessageForStartingCall: false, + attachmentsToSend: [], + toContactIdentitiesWithCryptoId: recipients, + ofOwnedIdentityWithCryptoId: ownedIdentity.cryptoId, + alsoPostToOtherOwnedDevices: true) + + } catch { + assertionFailure(error.localizedDescription) + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessDetectionThatSensitiveMessagesWereCapturedOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessDetectionThatSensitiveMessagesWereCapturedOperation.swift new file mode 100644 index 00000000..fe706c15 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessDetectionThatSensitiveMessagesWereCapturedOperation.swift @@ -0,0 +1,137 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + + +import Foundation +import OlvidUtils +import ObvEngine +import ObvTypes +import ObvUICoreData +import os.log +import CoreData + + +/// This operation allows to process a received message indicating that one of our contacts did take a screen capture of some sensitive (read-once of with limited visibility) messages within a discussion. If this happen, we want to show this to the owned identity by displaying an appropriate system message within the corresponding discussion. +final class ProcessDetectionThatSensitiveMessagesWereCapturedOperation: ContextualOperationWithSpecificReasonForCancel { + + enum Requester { + case contact(contactIdentifier: ObvContactIdentifier) + case ownedIdentity(ownedCryptoId: ObvCryptoId) + } + + let screenCaptureDetectionJSON: ScreenCaptureDetectionJSON + private let requester: Requester + private let messageUploadTimestampFromServer: Date + + + init(screenCaptureDetectionJSON: ScreenCaptureDetectionJSON, requester: Requester, messageUploadTimestampFromServer: Date) { + self.screenCaptureDetectionJSON = screenCaptureDetectionJSON + self.requester = requester + self.messageUploadTimestampFromServer = messageUploadTimestampFromServer + super.init() + } + + + enum Result { + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case processed + } + + private(set) var result: Result? + + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + + switch requester { + + case .contact(contactIdentifier: let contactIdentifier): + + guard let contact = try PersistedObvContactIdentity.get(persisted: contactIdentifier, whereOneToOneStatusIs: .any, within: obvContext.context) else { + return cancel(withReason: .couldNotFindContact) + } + + try contact.processDetectionThatSensitiveMessagesWereCapturedByThisContact(screenCaptureDetectionJSON: screenCaptureDetectionJSON, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + + case .ownedIdentity(ownedCryptoId: let ownedCryptoId): + + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindOwnedIdentity) + } + + try ownedIdentity.processDetectionThatSensitiveMessagesWereCapturedByThisOwnedIdentity(screenCaptureDetectionJSON: screenCaptureDetectionJSON, messageUploadTimestampFromServer: messageUploadTimestampFromServer) + + } + + result = .processed + + } catch { + if let error = error as? ObvUICoreDataError { + switch error { + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + result = .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + return + default: + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + } else { + assertionFailure() + return cancel(withReason: .coreDataError(error: error)) + } + } + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case coreDataError(error: Error) + case contextIsNil + case couldNotFindOwnedIdentity + case couldNotFindContact + + var logType: OSLogType { + switch self { + case .coreDataError, + .contextIsNil, + .couldNotFindOwnedIdentity, + .couldNotFindContact: + return .fault + } + } + + var errorDescription: String? { + switch self { + case .contextIsNil: + return "Context is nil" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + case .couldNotFindContact: + return "Could not find contact" + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessNewSentJoinProgressesReceivedFromEngineOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessNewSentJoinProgressesReceivedFromEngineOperation.swift index ddadb46e..1a874f7d 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessNewSentJoinProgressesReceivedFromEngineOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/ProcessNewSentJoinProgressesReceivedFromEngineOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/SendUnprocessedPersistedMessageSentOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/SendUnprocessedPersistedMessageSentOperation.swift index bbd7cc1b..b832bae7 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/SendUnprocessedPersistedMessageSentOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/SendUnprocessedPersistedMessageSentOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -44,32 +44,36 @@ final class SendUnprocessedPersistedMessageSentOperation: ContextualOperationWit private let input: Input + private let alsoPostToOtherOwnedDevices: Bool private let extendedPayloadProvider: ExtendedPayloadProvider? private let obvEngine: ObvEngine private let completionHandler: (() -> Void)? - init(messageSentPermanentID: ObvManagedObjectPermanentID, extendedPayloadProvider: ExtendedPayloadProvider?, obvEngine: ObvEngine, completionHandler: (() -> Void)? = nil) { + init(messageSentPermanentID: ObvManagedObjectPermanentID, alsoPostToOtherOwnedDevices: Bool, extendedPayloadProvider: ExtendedPayloadProvider?, obvEngine: ObvEngine, completionHandler: (() -> Void)? = nil) { self.input = .messagePermanentID(messageSentPermanentID) self.obvEngine = obvEngine self.completionHandler = completionHandler self.extendedPayloadProvider = extendedPayloadProvider + self.alsoPostToOtherOwnedDevices = alsoPostToOtherOwnedDevices super.init() } - init(unprocessedPersistedMessageSentProvider: UnprocessedPersistedMessageSentProvider, extendedPayloadProvider: ExtendedPayloadProvider?, obvEngine: ObvEngine, completionHandler: (() -> Void)? = nil) { + init(unprocessedPersistedMessageSentProvider: UnprocessedPersistedMessageSentProvider, alsoPostToOtherOwnedDevices: Bool, extendedPayloadProvider: ExtendedPayloadProvider?, obvEngine: ObvEngine, completionHandler: (() -> Void)? = nil) { self.input = .provider(unprocessedPersistedMessageSentProvider) self.obvEngine = obvEngine self.completionHandler = completionHandler self.extendedPayloadProvider = extendedPayloadProvider + self.alsoPostToOtherOwnedDevices = alsoPostToOtherOwnedDevices super.init() } private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: SendUnprocessedPersistedMessageSentOperation.self)) - override func main() { + + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { let messageSentPermanentID: ObvManagedObjectPermanentID - + switch input { case .messagePermanentID(let _messageSentPermanentID): messageSentPermanentID = _messageSentPermanentID @@ -81,277 +85,278 @@ final class SendUnprocessedPersistedMessageSentOperation: ContextualOperationWit messageSentPermanentID = _messageSentPermanentID } - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - + do { + + guard let persistedMessageSent = try PersistedMessageSent.getManagedObject(withPermanentID: messageSentPermanentID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindPersistedMessageSentInDatabase) + } + + // Make sure the message is not wiped + + guard !persistedMessageSent.isWiped else { + assertionFailure() + return + } + + // If the message is a read once message, we won't send it to our other owned devices + + let isPersistedMessageSentReadOnce = persistedMessageSent.readOnce + + // Determine the crypto ids of the potential recipients of the message, i.e., those to whom the message shall still be sent. + // We will filter those identities later in this operation to only keep those to whom the message can indeed be sent. + + let cryptoIdsWithoutMessageIdentifierFromEngine = Set(persistedMessageSent.unsortedRecipientsInfos + .filter({ $0.messageIdentifierFromEngine == nil }) + .map({ $0.recipientCryptoId })) + + guard let ownedCryptoId = persistedMessageSent.discussion?.ownedIdentity?.cryptoId else { + return cancel(withReason: .couldNotDetermineOwnedCryptoId) + } + + // Determine the discussion kind + + guard let discussion = persistedMessageSent.discussion else { + return cancel(withReason: .couldNotDetermineDiscussionKind) + } + + let discussionKind: PersistedDiscussion.Kind do { + discussionKind = try discussion.kind + } catch { + return cancel(withReason: .couldNotDetermineDiscussionKind) + } + + /* Create a set of all the cryptoId's to which the message needs to be sent by the engine, + * i.e., that has no identifier from the engine (for group v1 and one2one discussions), or that + * have no identifer from the engine and such that the recipient accepted + * the group invitation (for group v2) + */ + + var contactCryptoIds = Set() + + switch discussionKind { - guard let persistedMessageSent = try PersistedMessageSent.getManagedObject(withPermanentID: messageSentPermanentID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindPersistedMessageSentInDatabase) - } - - // Make sure the message is not wiped - - guard !persistedMessageSent.isWiped else { - assertionFailure() - return - } - - // Determine the crypto ids of the potential recipients of the message, i.e., those to whom the message shall still be sent. - // We will filter those identities later in this operation to only keep those to whom the message can indeed be sent. + case .oneToOne: - let cryptoIdsWithoutMessageIdentifierFromEngine = Set(persistedMessageSent.unsortedRecipientsInfos - .filter({ $0.messageIdentifierFromEngine == nil }) - .map({ $0.recipientCryptoId })) - - guard let ownedCryptoId = persistedMessageSent.discussion.ownedIdentity?.cryptoId else { - return cancel(withReason: .couldNotDetermineOwnedCryptoId) + for contactCryptoId in cryptoIdsWithoutMessageIdentifierFromEngine { + + // We can send the message to the recipient if + // - she is a oneToOne contact + // - with at least one device + + // Determine the contact identity + + guard let contact = try PersistedObvContactIdentity.get( + contactCryptoId: contactCryptoId, + ownedIdentityCryptoId: ownedCryptoId, + whereOneToOneStatusIs: .oneToOne, + within: obvContext.context) else { + assertionFailure() + continue + } + + guard !contact.devices.isEmpty else { + // This may happen, when sending a message before a channel is created + continue + } + + // If we reach this point, we can send the message to the recipient indicated in the infos. + + contactCryptoIds.insert(contactCryptoId) + } - // Determine the discussion kind + case .groupV1(withContactGroup: let group): - let discussionKind: PersistedDiscussion.Kind - do { - discussionKind = try persistedMessageSent.discussion.kind - } catch { - return cancel(withReason: .couldNotDetermineDiscussionKind) + guard let group = group else { + return cancel(withReason: .couldNotFindCorrespondingGroupV1) } - - /* Create a set of all the cryptoId's to which the message needs to be sent by the engine, - * i.e., that has no identifier from the engine (for group v1 and one2one discussions), or that - * have no identifer from the engine and such that the recipient accepted - * the group invitation (for group v2) - */ - - var contactCryptoIds = Set() - switch discussionKind { + for contactCryptoId in cryptoIdsWithoutMessageIdentifierFromEngine { - case .oneToOne: - - for contactCryptoId in cryptoIdsWithoutMessageIdentifierFromEngine { - - // We can send the message to the recipient if - // - she is a oneToOne contact - // - with at least one device - - // Determine the contact identity - - guard let contact = try PersistedObvContactIdentity.get( - contactCryptoId: contactCryptoId, - ownedIdentityCryptoId: ownedCryptoId, - whereOneToOneStatusIs: .oneToOne, - within: obvContext.context) else { - assertionFailure() - continue - } - - guard !contact.devices.isEmpty else { - // This may happen, when sending a message before a channel is created - continue - } - - // If we reach this point, we can send the message to the recipient indicated in the infos. - - contactCryptoIds.insert(contactCryptoId) - - } + // We can send the message to the recipient if + // - she is part of the group + // - with at least one device - case .groupV1(withContactGroup: let group): + // Determine the contact identity - guard let group = group else { - return cancel(withReason: .couldNotFindCorrespondingGroupV1) - } - - for contactCryptoId in cryptoIdsWithoutMessageIdentifierFromEngine { - - // We can send the message to the recipient if - // - she is part of the group - // - with at least one device - - // Determine the contact identity - - guard let contact = try PersistedObvContactIdentity.get( - contactCryptoId: contactCryptoId, - ownedIdentityCryptoId: ownedCryptoId, - whereOneToOneStatusIs: .any, - within: obvContext.context) else { - assertionFailure() - continue - } - - guard !contact.devices.isEmpty else { - // This may happen, when sending a message before a channel is created - continue - } - - guard group.contactIdentities.contains(contact) else { - assertionFailure() - continue - } - - // If we reach this point, we can send the message to the recipient indicated in the infos. - - contactCryptoIds.insert(contactCryptoId) - + guard let contact = try PersistedObvContactIdentity.get( + contactCryptoId: contactCryptoId, + ownedIdentityCryptoId: ownedCryptoId, + whereOneToOneStatusIs: .any, + within: obvContext.context) else { + assertionFailure() + continue } - case .groupV2(withGroup: let group): - - guard let group = group else { - return cancel(withReason: .couldNotFindCorrespondingGroupV2) + guard !contact.devices.isEmpty else { + // This may happen, when sending a message before a channel is created + continue } - for contactCryptoId in cryptoIdsWithoutMessageIdentifierFromEngine { - - // We can send the message to the recipient if - // - she is part of the group - // - she is not pending - // - with at least one device - - // Determine the contact identity - - guard let contact = try PersistedObvContactIdentity.get( - contactCryptoId: contactCryptoId, - ownedIdentityCryptoId: ownedCryptoId, - whereOneToOneStatusIs: .any, - within: obvContext.context) else { - // Can happen when a recipient is a pending member who is not a contact yet - continue - } - - guard !contact.devices.isEmpty else { - // This may happen, when sending a message before a channel is created - continue - } - - // Make sure the contact is a non-pending member of the group - - guard let member = group.otherMembers.first(where: { $0.identity == contactCryptoId.getIdentity() }) else { - assertionFailure() - continue - } - - guard !member.isPending else { - continue - } - - // If we reach this point, we can send the message to the recipient indicated in the infos. - - contactCryptoIds.insert(contactCryptoId) - + guard group.contactIdentities.contains(contact) else { + assertionFailure() + continue } + // If we reach this point, we can send the message to the recipient indicated in the infos. + + contactCryptoIds.insert(contactCryptoId) + } - // Construct the return receipts, payload, etc. + case .groupV2(withGroup: let group): - let returnReceiptElements: (nonce: Data, key: Data) - let messagePayload: Data - let attachmentsToSend: [ObvAttachmentToSend] - do { + guard let group = group else { + return cancel(withReason: .couldNotFindCorrespondingGroupV2) + } + + for contactCryptoId in cryptoIdsWithoutMessageIdentifierFromEngine { + + // We can send the message to the recipient if + // - she is part of the group + // - she is not pending + // - with at least one device - do { - guard let messageJSON = persistedMessageSent.toJSON() else { - return cancel(withReason: .couldNotTurnPersistedMessageSentIntoAMessageJSON) - } - returnReceiptElements = obvEngine.generateReturnReceiptElements() - let returnReceiptJSON = ReturnReceiptJSON(returnReceiptElements: returnReceiptElements) - messagePayload = try PersistedItemJSON(messageJSON: messageJSON, returnReceiptJSON: returnReceiptJSON).jsonEncode() - } catch { - return cancel(withReason: .encodingError(error: error)) + // Determine the contact identity + + guard let contact = try PersistedObvContactIdentity.get( + contactCryptoId: contactCryptoId, + ownedIdentityCryptoId: ownedCryptoId, + whereOneToOneStatusIs: .any, + within: obvContext.context) else { + // Can happen when a recipient is a pending member who is not a contact yet + continue + } + + guard !contact.devices.isEmpty else { + // This may happen, when sending a message before a channel is created + continue } - // For each the of fyles of the SendMessageToProcess, we create a ObvAttachmentToSend + // Make sure the contact is a non-pending member of the group - do { - attachmentsToSend = try persistedMessageSent.fyleMessageJoinWithStatuses.compactMap { - guard let metadata = try $0.getFyleMetadata()?.jsonEncode() else { return nil } - guard let fyle = $0.fyle else { return nil } - guard let totalUnitCount = fyle.getFileSize() else { return nil } - return ObvAttachmentToSend(fileURL: fyle.url, - deleteAfterSend: false, - totalUnitCount: Int(totalUnitCount), - metadata: metadata) - } - } catch { - return cancel(withReason: .couldNotCreateAnObvAttachmentToSendFromASentFyleMessageJoinWithStatus) + guard let member = group.otherMembers.first(where: { $0.identity == contactCryptoId.getIdentity() }) else { + assertionFailure() + continue } + guard !member.isPending else { + continue + } + + // If we reach this point, we can send the message to the recipient indicated in the infos. + + contactCryptoIds.insert(contactCryptoId) + } - - let extendedPayload: Data? - if let extendedPayloadProvider = extendedPayloadProvider { - assert(extendedPayloadProvider.isFinished) - extendedPayload = extendedPayloadProvider.extendedPayload - } else { - extendedPayload = nil - } - - // Post the message + } + + // Construct the return receipts, payload, etc. + + let returnReceiptElements: (nonce: Data, key: Data) + let messagePayload: Data + let attachmentsToSend: [ObvAttachmentToSend] + do { - let messageIdentifierForContactToWhichTheMessageWasSent: [ObvCryptoId: Data] - if !contactCryptoIds.isEmpty { - do { - messageIdentifierForContactToWhichTheMessageWasSent = - try obvEngine.post(messagePayload: messagePayload, - extendedPayload: extendedPayload, - withUserContent: true, - isVoipMessageForStartingCall: false, - attachmentsToSend: attachmentsToSend, - toContactIdentitiesWithCryptoId: contactCryptoIds, - ofOwnedIdentityWithCryptoId: ownedCryptoId, - completionHandler: completionHandler) - } catch { - return cancel(withReason: .couldNotPostMessageWithinEngine) + do { + guard let messageJSON = persistedMessageSent.toJSON() else { + return cancel(withReason: .couldNotTurnPersistedMessageSentIntoAMessageJSON) } - } else { - messageIdentifierForContactToWhichTheMessageWasSent = [:] - completionHandler?() + returnReceiptElements = obvEngine.generateReturnReceiptElements() + let returnReceiptJSON = ReturnReceiptJSON(returnReceiptElements: returnReceiptElements) + messagePayload = try PersistedItemJSON(messageJSON: messageJSON, returnReceiptJSON: returnReceiptJSON).jsonEncode() + } catch { + return cancel(withReason: .encodingError(error: error)) } - // The engine returned a array containing all the contacts to which it could send the message. - // We use this array generated by the engine in order to update the appropriate PersistedMessageSentRecipientInfos. + // For each the of fyles of the SendMessageToProcess, we create a ObvAttachmentToSend - for recipientInfos in persistedMessageSent.unsortedRecipientsInfos { - if let messageIdentifierFromEngine = messageIdentifierForContactToWhichTheMessageWasSent[recipientInfos.recipientCryptoId] { - os_log("🆗 Setting messageIdentifierFromEngine %{public}@ within recipientInfos", log: log, type: .info, messageIdentifierFromEngine.hexString()) - recipientInfos.setMessageIdentifierFromEngine(to: messageIdentifierFromEngine, andReturnReceiptElementsTo: returnReceiptElements) + do { + attachmentsToSend = try persistedMessageSent.fyleMessageJoinWithStatuses.compactMap { + guard let metadata = try $0.getFyleMetadata()?.jsonEncode() else { return nil } + guard let fyle = $0.fyle else { return nil } + guard let totalUnitCount = fyle.getFileSize() else { return nil } + return ObvAttachmentToSend(fileURL: fyle.url, + deleteAfterSend: false, + totalUnitCount: Int(totalUnitCount), + metadata: metadata) } + } catch { + return cancel(withReason: .couldNotCreateAnObvAttachmentToSendFromASentFyleMessageJoinWithStatus) } - - // Make a donation as soon as the message is saved - - if #available(iOS 14.0, *) { - do { - let persistedMessageSentStruct = try persistedMessageSent.toStruct() - let infos = SentMessageIntentInfos(messageSent: persistedMessageSentStruct, - urlForStoringPNGThumbnail: nil, - thumbnailPhotoSide: IntentManagerUtils.thumbnailPhotoSide) - let intent = IntentManagerUtils.getSendMessageIntentForMessageSent(infos: infos) - try obvContext.addContextDidSaveCompletionHandler { error in - if let error { assertionFailure(error.localizedDescription); return } - Task { - await IntentManagerUtils.makeDonation(discussionKind: persistedMessageSentStruct.discussionKind, - intent: intent, - direction: .outgoing) - } - } - } catch { - // In production, this operation should not fail because we could not make a donation - assertionFailure(error.localizedDescription) + + } + + + let extendedPayload: Data? + if let extendedPayloadProvider = extendedPayloadProvider { + assert(extendedPayloadProvider.isFinished) + extendedPayload = extendedPayloadProvider.extendedPayload + } else { + extendedPayload = nil + } + + // Post the message + + let messageIdentifierForContactToWhichTheMessageWasSent: [ObvCryptoId: Data] + // We do not propagate a read once message to our other owned devices + let finalAlsoPostToOtherOwnedDevices = alsoPostToOtherOwnedDevices && !isPersistedMessageSentReadOnce + if !contactCryptoIds.isEmpty || finalAlsoPostToOtherOwnedDevices { + do { + messageIdentifierForContactToWhichTheMessageWasSent = + try obvEngine.post(messagePayload: messagePayload, + extendedPayload: extendedPayload, + withUserContent: true, + isVoipMessageForStartingCall: false, + attachmentsToSend: attachmentsToSend, + toContactIdentitiesWithCryptoId: contactCryptoIds, + ofOwnedIdentityWithCryptoId: ownedCryptoId, + alsoPostToOtherOwnedDevices: finalAlsoPostToOtherOwnedDevices, + completionHandler: completionHandler) + } catch { + return cancel(withReason: .couldNotPostMessageWithinEngine) + } + } else { + messageIdentifierForContactToWhichTheMessageWasSent = [:] + completionHandler?() + } + + // The engine returned a array containing all the contacts to which it could send the message. + // We use this array generated by the engine in order to update the appropriate PersistedMessageSentRecipientInfos. + + for recipientInfos in persistedMessageSent.unsortedRecipientsInfos { + if let messageIdentifierFromEngine = messageIdentifierForContactToWhichTheMessageWasSent[recipientInfos.recipientCryptoId] { + os_log("🆗 Setting messageIdentifierFromEngine %{public}@ within recipientInfos", log: log, type: .info, messageIdentifierFromEngine.hexString()) + recipientInfos.setMessageIdentifierFromEngine(to: messageIdentifierFromEngine, andReturnReceiptElementsTo: returnReceiptElements) + } + } + + // Make a donation as soon as the message is saved + + do { + let persistedMessageSentStruct = try persistedMessageSent.toStruct() + let infos = SentMessageIntentInfos(messageSent: persistedMessageSentStruct, + urlForStoringPNGThumbnail: nil, + thumbnailPhotoSide: IntentManagerUtils.thumbnailPhotoSide) + let intent = IntentManagerUtils.getSendMessageIntentForMessageSent(infos: infos) + try obvContext.addContextDidSaveCompletionHandler { error in + if let error { assertionFailure(error.localizedDescription); return } + Task { + await IntentManagerUtils.makeDonation(discussionKind: persistedMessageSentStruct.discussionKind, + intent: intent, + direction: .outgoing) } } - } catch { - return cancel(withReason: .coreDataError(error: error)) + // In production, this operation should not fail because we could not make a donation + assertionFailure(error.localizedDescription) } - - } // end of obvContext.performAndWait + + } catch { + return cancel(withReason: .coreDataError(error: error)) + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SetTimestampAllAttachmentsSentIfPossibleOfPersistedMessageSentRecipientInfosOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SetTimestampAllAttachmentsSentIfPossibleOfPersistedMessageSentRecipientInfosOperation.swift index 1a78df7c..203ede2a 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SetTimestampAllAttachmentsSentIfPossibleOfPersistedMessageSentRecipientInfosOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SetTimestampAllAttachmentsSentIfPossibleOfPersistedMessageSentRecipientInfosOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -39,35 +39,27 @@ final class SetTimestampAllAttachmentsSentIfPossibleOfPersistedMessageSentRecipi super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + do { - do { + for messageIdentifierFromEngine in messageIdentifiersFromEngine { - for messageIdentifierFromEngine in messageIdentifiersFromEngine { - - let infos = try PersistedMessageSentRecipientInfos.getAllPersistedMessageSentRecipientInfos(messageIdentifierFromEngine: messageIdentifierFromEngine, ownedCryptoId: ownedCryptoId, within: obvContext.context) - guard !infos.isEmpty else { - continue - } - - for info in infos { - info.setTimestampAllAttachmentsSentIfPossible() - } - + let infos = try PersistedMessageSentRecipientInfos.getAllPersistedMessageSentRecipientInfos(messageIdentifierFromEngine: messageIdentifierFromEngine, ownedCryptoId: ownedCryptoId, within: obvContext.context) + guard !infos.isEmpty else { + continue } - - } catch { - return cancel(withReason: .coreDataError(error: error)) + + for info in infos { + info.setTimestampAllAttachmentsSentIfPossible() + } + } - + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SetTimestampMessageSentOfPersistedMessageSentRecipientInfos.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SetTimestampMessageSentOfPersistedMessageSentRecipientInfos.swift index 7c4845a0..54b9c04d 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SetTimestampMessageSentOfPersistedMessageSentRecipientInfos.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SetTimestampMessageSentOfPersistedMessageSentRecipientInfos.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -38,36 +38,28 @@ final class SetTimestampMessageSentOfPersistedMessageSentRecipientInfosOperation super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { + do { - do { + for (messageIdentifierFromEngine, timestampFromServer) in messageIdentifierFromEngineAndTimestampFromServer { - for (messageIdentifierFromEngine, timestampFromServer) in messageIdentifierFromEngineAndTimestampFromServer { - - let infos = try PersistedMessageSentRecipientInfos.getAllPersistedMessageSentRecipientInfosWithoutTimestampDeliveredAndMatching(messageIdentifierFromEngine: messageIdentifierFromEngine, ownedCryptoId: ownedCryptoId, within: obvContext.context) - - // Note that the infos list may be empty for that messageIdentifierFromEngine and owned identity. - // Since we now (2022-02-24) also filter out infos that already have a timestampMessageSent, this is not an issue. - - infos.forEach { - $0.setTimestampMessageSent(to: timestampFromServer) - } - + let infos = try PersistedMessageSentRecipientInfos.getAllPersistedMessageSentRecipientInfosWithoutTimestampDeliveredAndMatching(messageIdentifierFromEngine: messageIdentifierFromEngine, ownedCryptoId: ownedCryptoId, within: obvContext.context) + + // Note that the infos list may be empty for that messageIdentifierFromEngine and owned identity. + // Since we now (2022-02-24) also filter out infos that already have a timestampMessageSent, this is not an issue. + + infos.forEach { + $0.setTimestampMessageSent(to: timestampFromServer) } - - } catch { - return cancel(withReason: .coreDataError(error: error)) } - + + + } catch { + return cancel(withReason: .coreDataError(error: error)) } - + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SynchronizeOneToOneDiscussionTitlesWithContactNameOperation.swift.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SynchronizeOneToOneDiscussionTitlesWithContactNameOperation.swift.swift index 9ecf70a3..434c975c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SynchronizeOneToOneDiscussionTitlesWithContactNameOperation.swift.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/SynchronizeOneToOneDiscussionTitlesWithContactNameOperation.swift.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -21,36 +21,30 @@ import Foundation import OlvidUtils import os.log import ObvUICoreData +import CoreData final class SynchronizeOneToOneDiscussionTitlesWithContactNameOperation: ContextualOperationWithSpecificReasonForCancel { private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: SynchronizeOneToOneDiscussionTitlesWithContactNameOperation.self)) - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - let ownedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) - for ownedIdentity in ownedIdentities { - ownedIdentity.contacts.forEach { contact in - do { - try contact.resetOneToOneDiscussionTitle() - } catch { - os_log("One of the one2one discussion title could not be reset", log: log, type: .fault) - assertionFailure() - // Continue anyway - } + do { + let ownedIdentities = try PersistedObvOwnedIdentity.getAll(within: obvContext.context) + for ownedIdentity in ownedIdentities { + ownedIdentity.contacts.forEach { contact in + do { + try contact.resetOneToOneDiscussionTitle() + } catch { + os_log("One of the one2one discussion title could not be reset", log: log, type: .fault) + assertionFailure() + // Continue anyway } } - } catch { - return cancel(withReason: .coreDataError(error: error)) } - + } catch { + return cancel(withReason: .coreDataError(error: error)) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateDiscussionLocalConfigurationOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateDiscussionLocalConfigurationOperation.swift index 9c3bfa28..8bc644e0 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateDiscussionLocalConfigurationOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateDiscussionLocalConfigurationOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,98 +23,165 @@ import os.log import OlvidUtils import UIKit import ObvUICoreData +import ObvEngine +import ObvTypes +import ObvCrypto -final class UpdateDiscussionLocalConfigurationOperation: ContextualOperationWithSpecificReasonForCancel { + +final class UpdateDiscussionLocalConfigurationOperation: ContextualOperationWithSpecificReasonForCancel { private let value: PersistedDiscussionLocalConfigurationValue private let input: Input + private let makeSyncAtomRequest: Bool + private weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? + fileprivate static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: UpdateDiscussionLocalConfigurationOperation.self)) enum Input { case configurationObjectID(TypeSafeManagedObjectID) case discussionPermanentID(ObvManagedObjectPermanentID) + case discussionWithOneToOneContact(contactIdentifier: ObvContactIdentifier) + case groupV1Discussion(ownedCryptoId: ObvCryptoId, groupIdentifier: GroupV1Identifier) + case groupV2Discussion(ownedCryptoId: ObvCryptoId, groupIdentifier: GroupV2Identifier) } - init(value: PersistedDiscussionLocalConfigurationValue, localConfigurationObjectID: TypeSafeManagedObjectID) { + init(value: PersistedDiscussionLocalConfigurationValue, input: Input, makeSyncAtomRequest: Bool, syncAtomRequestDelegate: ObvSyncAtomRequestDelegate?) { self.value = value - self.input = .configurationObjectID(localConfigurationObjectID) + self.input = input + self.makeSyncAtomRequest = makeSyncAtomRequest + self.syncAtomRequestDelegate = syncAtomRequestDelegate super.init() } - init(value: PersistedDiscussionLocalConfigurationValue, discussionPermanentID: ObvManagedObjectPermanentID) { - self.value = value - self.input = .discussionPermanentID(discussionPermanentID) - super.init() - } - - override func main() { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - let localConfiguration: PersistedDiscussionLocalConfiguration - switch input { - case .configurationObjectID(let objectID): - guard let _localConfiguration = try PersistedDiscussionLocalConfiguration.get(with: objectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDiscussionLocalConfiguration) - } - localConfiguration = _localConfiguration - case .discussionPermanentID(let discussionPermanentID): - guard let discussion = try? PersistedDiscussion.getManagedObject(withPermanentID: discussionPermanentID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDiscussionLocalConfiguration) - } - localConfiguration = discussion.localConfiguration + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + let localConfiguration: PersistedDiscussionLocalConfiguration + switch input { + case .configurationObjectID(let objectID): + guard let _localConfiguration = try PersistedDiscussionLocalConfiguration.get(with: objectID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindDiscussionLocalConfiguration) } - - localConfiguration.update(with: value) - - let value = self.value - try obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { return } - if case .muteNotificationsEndDate = value, - let expiration = localConfiguration.currentMuteNotificationsEndDate { - // This is catched by the MuteDiscussionManager in order to schedule a BG operation allowing to remove the mute - ObvMessengerInternalNotification.newMuteExpiration(expirationDate: expiration) - .postOnDispatchQueue() + localConfiguration = _localConfiguration + case .discussionPermanentID(let discussionPermanentID): + guard let discussion = try? PersistedDiscussion.getManagedObject(withPermanentID: discussionPermanentID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindDiscussionLocalConfiguration) + } + localConfiguration = discussion.localConfiguration + case .discussionWithOneToOneContact(contactIdentifier: let contactIdentifier): + guard let contact = try PersistedObvContactIdentity.get(persisted: contactIdentifier, whereOneToOneStatusIs: .oneToOne, within: obvContext.context) else { + return cancel(withReason: .couldNotFindContactInDatabase) + } + guard let oneToOneDiscussion = contact.oneToOneDiscussion else { + return cancel(withReason: .couldNotFindDiscussionInDatabase) + } + localConfiguration = oneToOneDiscussion.localConfiguration + case .groupV1Discussion(ownedCryptoId: let ownedCryptoId, groupIdentifier: let groupIdentifier): + guard let groupV1 = try PersistedContactGroup.getContactGroup(groupIdentifier: groupIdentifier, ownedCryptoId: ownedCryptoId, within: obvContext.context) else { + return cancel(withReason: .couldNotFindGroupInDatabase) + } + localConfiguration = groupV1.discussion.localConfiguration + case .groupV2Discussion(ownedCryptoId: let ownedCryptoId, groupIdentifier: let groupIdentifier): + guard let groupV2 = try PersistedGroupV2.get(ownIdentity: ownedCryptoId, appGroupIdentifier: groupIdentifier, within: obvContext.context) else { + return cancel(withReason: .couldNotFindGroupInDatabase) + } + guard let groupV2Discussion = groupV2.discussion else { + return cancel(withReason: .couldNotFindDiscussionInDatabase) + } + localConfiguration = groupV2Discussion.localConfiguration + } + + let doSendReadReceiptBeforeUpdate = localConfiguration.doSendReadReceipt + + localConfiguration.update(with: value) + + let doSendReadReceiptAfterUpdate = localConfiguration.doSendReadReceipt + let doSendReadReceiptWasUpdated = doSendReadReceiptBeforeUpdate != doSendReadReceiptAfterUpdate + + let value = self.value + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + if case .muteNotificationsEndDate = value, + let expiration = localConfiguration.currentMuteNotificationsEndDate { + // This is catched by the MuteDiscussionManager in order to schedule a BG operation allowing to remove the mute + ObvMessengerInternalNotification.newMuteExpiration(expirationDate: expiration) + .postOnDispatchQueue() + } + } + + if makeSyncAtomRequest && doSendReadReceiptWasUpdated { + assert(self.syncAtomRequestDelegate != nil) + if let syncAtomRequestDelegate = self.syncAtomRequestDelegate { + guard let discussion = localConfiguration.discussion else { assertionFailure(); return } + guard let ownedCryptoId = discussion.ownedIdentity?.cryptoId else { assertionFailure(); return } + let syncAtom: ObvSyncAtom + switch try? discussion.kind { + case .oneToOne(withContactIdentity: let contact): + guard let contact else { assertionFailure(); return } + syncAtom = .contactSendReadReceipt(contactCryptoId: contact.cryptoId, doSendReadReceipt: doSendReadReceiptAfterUpdate) + case .groupV1(withContactGroup: let groupV1): + guard let groupV1 else { assertionFailure(); return } + guard let groupId = try? groupV1.getGroupId() else { assertionFailure(); return } + syncAtom = .groupV1ReadReceipt(groupOwner: groupId.groupOwner, groupUid: groupId.groupUid, doSendReadReceipt: doSendReadReceiptAfterUpdate) + case .groupV2(withGroup: let groupV2): + guard let groupV2 else { assertionFailure(); return } + syncAtom = .groupV2ReadReceipt(groupIdentifier: groupV2.groupIdentifier, doSendReadReceipt: doSendReadReceiptAfterUpdate) + case .none: + assertionFailure() + return + } + try? obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + Task.detached { + await syncAtomRequestDelegate.requestPropagationToOtherOwnedDevices(of: syncAtom, for: ownedCryptoId) + } } } - - } catch(let error) { - return cancel(withReason: .coreDataError(error: error)) } + } catch(let error) { + return cancel(withReason: .coreDataError(error: error)) } + } -} - -enum UpdateDiscussionLocalConfigurationOperationReasonForCancel: LocalizedErrorWithLogType { - - case contextIsNil - case coreDataError(error: Error) - case couldNotFindDiscussionLocalConfiguration - - var logType: OSLogType { - switch self { - case .coreDataError, .contextIsNil: - return .fault - case .couldNotFindDiscussionLocalConfiguration: - return .error + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case contextIsNil + case coreDataError(error: Error) + case couldNotFindDiscussionLocalConfiguration + case couldNotFindContactInDatabase + case couldNotFindDiscussionInDatabase + case couldNotFindGroupInDatabase + + var logType: OSLogType { + switch self { + case .coreDataError, .contextIsNil, .couldNotFindContactInDatabase, .couldNotFindDiscussionInDatabase, .couldNotFindGroupInDatabase: + return .fault + case .couldNotFindDiscussionLocalConfiguration: + return .error + } } - } - var errorDescription: String? { - switch self { - case .contextIsNil: return "Context is nil" - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .couldNotFindDiscussionLocalConfiguration: - return "Could not find local configuration in database" + var errorDescription: String? { + switch self { + case .contextIsNil: return "Context is nil" + case .coreDataError(error: let error): + return "Core Data error: \(error.localizedDescription)" + case .couldNotFindDiscussionLocalConfiguration: + return "Could not find local configuration in database" + case .couldNotFindContactInDatabase: + return "Could not find contact in database" + case .couldNotFindDiscussionInDatabase: + return "Could not find discussion in database" + case .couldNotFindGroupInDatabase: + return "Could not find group in database" + } } - } + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateDraftConfigurationOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateDraftConfigurationOperation.swift index c97a74ab..61f1d3ed 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateDraftConfigurationOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateDraftConfigurationOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -36,26 +36,22 @@ final class UpdateDraftConfigurationOperation: ContextualOperationWithSpecificRe super.init() } - override func main() { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - guard let draft = try PersistedDraft.get(objectID: draftObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDraft) - } - draft.update(with: value) - let draftObjectID = self.draftObjectID - try obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { return } - ObvMessengerInternalNotification.draftExpirationWasBeenUpdated(persistedDraftObjectID: draftObjectID).postOnDispatchQueue() - } - } catch(let error) { - return cancel(withReason: .coreDataError(error: error)) + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + guard let draft = try PersistedDraft.get(objectID: draftObjectID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindDraft) + } + draft.update(with: value) + let draftObjectID = self.draftObjectID + try obvContext.addContextDidSaveCompletionHandler { error in + guard error == nil else { return } + ObvMessengerInternalNotification.draftExpirationWasBeenUpdated(persistedDraftObjectID: draftObjectID).postOnDispatchQueue() } + } catch(let error) { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateNormalizedSearchKeyOnPersistedDiscussionsOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateNormalizedSearchKeyOnPersistedDiscussionsOperation.swift index deb42fd2..f6f80834 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateNormalizedSearchKeyOnPersistedDiscussionsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateNormalizedSearchKeyOnPersistedDiscussionsOperation.swift @@ -21,6 +21,7 @@ import Foundation import OlvidUtils import ObvTypes import ObvUICoreData +import CoreData final class UpdateNormalizedSearchKeyOnPersistedDiscussionsOperation: ContextualOperationWithSpecificReasonForCancel { @@ -32,18 +33,14 @@ final class UpdateNormalizedSearchKeyOnPersistedDiscussionsOperation: Contextual super.init() } - override func main() { - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - do { - try PersistedDiscussion.updateNormalizedSearchKeysForOwnedIdentity(ownedIdentity, within: obvContext.context) - } catch { - return cancel(withReason: .coreDataError(error: error)) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + + do { + try PersistedDiscussion.updateNormalizedSearchKeysForOwnedIdentity(ownedIdentity, within: obvContext.context) + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateReactionsOfMessageOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateReactionsOfMessageOperation.swift deleted file mode 100644 index 43555525..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/UpdateReactionsOfMessageOperation.swift +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import CoreData -import os.log -import ObvEngine -import ObvTypes -import OlvidUtils -import ObvCrypto -import ObvUICoreData - - - -fileprivate enum UpdateReactionsOfMessageOperationInput { - - case contact(emoji: String?, - messageReference: MessageReferenceJSON, - groupIdentifier: GroupIdentifier?, - contactIdentity: ObvContactIdentity, - addPendingReactionIfMessageCannotBeFound: Bool) - case owned(emoji: String?, - message: TypeSafeManagedObjectID) - - var emoji: String? { - switch self { - case .contact(let emoji, _, _, _, _), - .owned(let emoji, _): - return emoji - } - } -} - -final class UpdateReactionsOfMessageOperation: ContextualOperationWithSpecificReasonForCancel { - - private let input: UpdateReactionsOfMessageOperationInput - private let reactionTimestamp: Date - - /// Use this initializer when updating the reactions of a message with a reaction made by an owned identity. - init(emoji: String?, messageObjectID: TypeSafeManagedObjectID) { - self.input = .owned(emoji: emoji, message: messageObjectID) - self.reactionTimestamp = Date() - super.init() - } - - init(emoji: String?, - messageReference: MessageReferenceJSON, - groupIdentifier: GroupIdentifier?, - contactIdentity: ObvContactIdentity, - reactionTimestamp: Date, - addPendingReactionIfMessageCannotBeFound: Bool) { - self.input = .contact(emoji: emoji, - messageReference: messageReference, - groupIdentifier: groupIdentifier, - contactIdentity: contactIdentity, - addPendingReactionIfMessageCannotBeFound: addPendingReactionIfMessageCannotBeFound) - self.reactionTimestamp = reactionTimestamp - super.init() - } - - init(contactIdentity: ObvContactIdentity, reactionJSON: ReactionJSON, reactionTimestamp: Date, addPendingReactionIfMessageCannotBeFound: Bool) { - self.input = .contact(emoji: reactionJSON.emoji, - messageReference: reactionJSON.messageReference, - groupIdentifier: reactionJSON.groupIdentifier, - contactIdentity: contactIdentity, - addPendingReactionIfMessageCannotBeFound: addPendingReactionIfMessageCannotBeFound) - self.reactionTimestamp = reactionTimestamp - super.init() - } - - - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } - - obvContext.performAndWait { - - let message: PersistedMessage? - - do { - - switch input { - - case .contact(let emoji, let messageReference, let groupIdentifier, let contactIdentity, let addPendingReactionIfMessageCannotBeFound): - - // Get the contact and the owned identities - - guard let persistedContactIdentity = try PersistedObvContactIdentity.get(persisted: contactIdentity, whereOneToOneStatusIs: .any, within: obvContext.context) else { - return cancel(withReason: .couldNotFindContact) - } - - guard let ownedIdentity = persistedContactIdentity.ownedIdentity else { - return cancel(withReason: .couldNotFindOwnedIdentity) - } - - // Recover the appropriate discussion - - let discussion: PersistedDiscussion - switch groupIdentifier { - case .none: - guard let oneToOneDiscussion = persistedContactIdentity.oneToOneDiscussion else { - return cancel(withReason: .couldNotFindDiscussion) - } - discussion = oneToOneDiscussion - case .groupV1(groupV1Identifier: let groupV1Identifier): - guard let group = try PersistedContactGroup.getContactGroup(groupId: groupV1Identifier, ownedIdentity: ownedIdentity) else { - return cancel(withReason: .couldNotFindGroupDiscussion) - } - discussion = group.discussion - case .groupV2(groupV2Identifier: let groupV2Identifier): - guard let group = try PersistedGroupV2.get(ownIdentity: ownedIdentity, appGroupIdentifier: groupV2Identifier) else { - return cancel(withReason: .couldNotFindGroupDiscussion) - } - guard let groupDiscussion = group.discussion else { - return cancel(withReason: .couldNotFindDiscussion) - } - discussion = groupDiscussion - } - - // Get the message on which we will add a reaction - - if let sentMessage = try PersistedMessageSent.get( - senderSequenceNumber: messageReference.senderSequenceNumber, - senderThreadIdentifier: messageReference.senderThreadIdentifier, - ownedIdentity: messageReference.senderIdentifier, - discussion: discussion) { - message = sentMessage - } else if let receivedMessage = try PersistedMessageReceived.get( - senderSequenceNumber: messageReference.senderSequenceNumber, - senderThreadIdentifier: messageReference.senderThreadIdentifier, - contactIdentity: messageReference.senderIdentifier, - discussion: discussion) { - message = receivedMessage - } else { - message = nil - } - - // If a message was found, we can update its reactions. If not, we create a pending reaction if appropriate. - - if let message { - try message.setReactionFromContact(persistedContactIdentity, withEmoji: emoji, reactionTimestamp: reactionTimestamp) - } else if addPendingReactionIfMessageCannotBeFound { - try PendingMessageReaction.createPendingMessageReactionIfAppropriate( - emoji: emoji, - messageReference: messageReference, - serverTimestamp: reactionTimestamp, - discussion: discussion) - } else { - return cancel(withReason: .couldNotFindMessage) - } - - case .owned(emoji: let emoji, message: let messageObjectID): - guard let _message = try PersistedMessage.get(with: messageObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindMessage) - } - - try _message.setReactionFromOwnedIdentity(withEmoji: emoji, reactionTimestamp: reactionTimestamp) - - message = _message - - } - - } catch { - return cancel(withReason: .coreDataError(error: error)) - } - - // If the message was registered in the view context, we refresh it - - if let messageObjectID = message?.typedObjectID { - try? obvContext.addContextDidSaveCompletionHandler { error in - guard error == nil else { return } - ObvStack.shared.viewContext.perform { - guard let message = ObvStack.shared.viewContext.registeredObject(for: messageObjectID.objectID) else { return } - ObvStack.shared.viewContext.refresh(message, mergeChanges: false) - } - } - } - } - } - -} - -enum UpdateReactionsOperationReasonForCancel: LocalizedErrorWithLogType { - case coreDataError(error: Error) - case contextIsNil - case couldNotFindContact - case couldNotFindOwnedIdentity - case couldNotFindGroupDiscussion - case couldNotFindMessage - case invalidEmoji - case couldNotFindDiscussion - - var logType: OSLogType { .fault } - - var errorDescription: String? { - switch self { - case .coreDataError(error: let error): - return "Core Data error: \(error.localizedDescription)" - case .contextIsNil: - return "The context is not set" - case .couldNotFindOwnedIdentity: - return "Could not find owned identity" - case .couldNotFindContact: - return "Could not find the contact identity" - case .couldNotFindGroupDiscussion: - return "Could not find group discussion" - case .couldNotFindMessage: - return "Could not find message to react" - case .invalidEmoji: - return "Invalid emoji" - case .couldNotFindDiscussion: - return "Could not find discussion" - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/PersistedDiscussionsUpdatesCoordinator.swift b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/PersistedDiscussionsUpdatesCoordinator.swift index c503db03..cf393e4c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/PersistedDiscussionsUpdatesCoordinator.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/PersistedDiscussionsUpdatesCoordinator.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,6 +26,7 @@ import ObvCrypto import OlvidUtils import ObvTypes import ObvUICoreData +import ObvSettings final class PersistedDiscussionsUpdatesCoordinator { @@ -44,14 +45,17 @@ final class PersistedDiscussionsUpdatesCoordinator { queue.name = "PersistedDiscussionsUpdatesCoordinator queue for long running tasks" return queue }() + private let messagesKeptForLaterManager: MessagesKeptForLaterManager private let userDefaults = UserDefaults(suiteName: ObvMessengerConstants.appGroupIdentifier) private var screenCaptureDetector: ScreenCaptureDetector? + weak var syncAtomRequestDelegate: ObvSyncAtomRequestDelegate? - init(obvEngine: ObvEngine, coordinatorsQueue: OperationQueue, queueForComposedOperations: OperationQueue) { + init(obvEngine: ObvEngine, coordinatorsQueue: OperationQueue, queueForComposedOperations: OperationQueue, messagesKeptForLaterManager: MessagesKeptForLaterManager) { self.obvEngine = obvEngine self.coordinatorsQueue = coordinatorsQueue self.queueForComposedOperations = queueForComposedOperations + self.messagesKeptForLaterManager = messagesKeptForLaterManager listenToNotifications() Task { screenCaptureDetector = await ScreenCaptureDetector() @@ -79,9 +83,7 @@ final class PersistedDiscussionsUpdatesCoordinator { // No need to delete orphaned PersistedMessageTimestampedMetadata, i.e., without message), they are cascade deleted bootstrapMessagesToBeWiped(preserveReceivedMessages: true) bootstrapWipeAllMessagesThatExpiredEarlierThanNow() - deleteOrphanedExpirations() - deleteOldOrOrphanedRemoteDeleteAndEditRequests() - deleteOldOrOrphanedPendingReactions() + deleteOldOrOrphanedDatabaseEntries() cleanExpiredMuteNotificationsSetting() cleanOrphanedPersistedMessageTimestampedMetadata() synchronizeAllOneToOneDiscussionTitlesWithContactNameOperation() @@ -93,7 +95,7 @@ final class PersistedDiscussionsUpdatesCoordinator { // The following bootstrap methods are always called, not only the first time the app appears on screen - bootstrapMessagesDecryptedWithinNotificationExtension() + await bootstrapMessagesDecryptedWithinNotificationExtension() wipeReadOnceAndLimitedVisibilityMessagesThatTheShareExtensionDidNotHaveTimeToWipe() } @@ -179,13 +181,13 @@ final class PersistedDiscussionsUpdatesCoordinator { os_log("☎️ PersistedDiscussionsUpdatesCoordinator is listening to notifications", log: Self.log, type: .info) } - // Internal notifications + // ObvMessengerCoreDataNotification observationTokens.append(contentsOf: [ ObvMessengerCoreDataNotification.observeNewDraftToSend() { [weak self] draftPermanentID in self?.processNewDraftToSendNotification(draftPermanentID: draftPermanentID) }, - ObvMessengerCoreDataNotification.observeNewPersistedObvContactDevice() { [weak self] (contactDeviceObjectID, _) in + ObvMessengerCoreDataNotification.observeASecureChannelWithContactDeviceWasJustCreated { [weak self] contactDeviceObjectID in self?.sendAppropriateDiscussionSharedConfigurationsToContact(input: .contactDevice(contactDeviceObjectID: contactDeviceObjectID), sendSharedConfigOfOneToOneDiscussion: true) self?.processUnprocessedRecipientInfosThatCanNowBeProcessed() }, @@ -195,52 +197,56 @@ final class PersistedDiscussionsUpdatesCoordinator { ObvMessengerCoreDataNotification.observePersistedMessageReceivedWasDeleted() { [weak self] (_, messageIdentifierFromEngine, ownedCryptoId, _, _) in self?.processPersistedMessageReceivedWasDeletedNotification(messageIdentifierFromEngine: messageIdentifierFromEngine, ownedCryptoId: ownedCryptoId) }, - ObvMessengerInternalNotification.observeUserRequestedDeletionOfPersistedMessage() { [weak self] (ownedCryptoId, persistedMessageObjectID, deletionType) in - self?.processUserRequestedDeletionOfPersistedMessageNotification(ownedCryptoId: ownedCryptoId, persistedMessageObjectID: persistedMessageObjectID, deletionType: deletionType) + ObvMessengerCoreDataNotification.observePersistedMessageReceivedWasRead { (persistedMessageReceivedObjectID) in + Task { [weak self] in await self?.processPersistedMessageReceivedWasReadNotification(persistedMessageReceivedObjectID: persistedMessageReceivedObjectID) } }, - ObvMessengerInternalNotification.observeUserRequestedDeletionOfPersistedDiscussion() { [weak self] (persistedDiscussionObjectID, deletionType, completionHandler) in - self?.processUserRequestedDeletionOfPersistedDiscussion(persistedDiscussionObjectID: persistedDiscussionObjectID, deletionType: deletionType, completionHandler: completionHandler) + ObvMessengerCoreDataNotification.observeReceivedFyleJoinHasBeenMarkAsOpened { (receivedFyleJoinID) in + Task { [weak self] in await self?.processReceivedFyleJoinHasBeenMarkAsOpenedNotification(receivedFyleJoinID: receivedFyleJoinID) } }, - ObvMessengerInternalNotification.observeMessagesAreNotNewAnymore() { [weak self] persistedMessageObjectIDs in - self?.processMessagesAreNotNewAnymore(persistedMessageObjectIDs: persistedMessageObjectIDs) + ObvMessengerCoreDataNotification.observeAReadOncePersistedMessageSentWasSent { [weak self] (persistedMessageSentPermanentID, persistedDiscussionPermanentID) in + self?.processAReadOncePersistedMessageSentWasSentNotification(persistedMessageSentPermanentID: persistedMessageSentPermanentID, persistedDiscussionPermanentID: persistedDiscussionPermanentID) }, - ObvMessengerInternalNotification.observeNewObvMessageWasReceivedViaPushKitNotification { [weak self] (obvMessage) in - self?.processNewObvMessageWasReceivedViaPushKitNotification(obvMessage: obvMessage) + ObvMessengerCoreDataNotification.observePersistedContactWasDeleted { [weak self ] _, _ in + self?.processPersistedContactWasDeletedNotification() }, - ObvMessengerInternalNotification.observeNewWebRTCMessageToSend() { [weak self] (webrtcMessage, contactID, forStartingCall) in - self?.processNewWebRTCMessageToSendNotification(webrtcMessage: webrtcMessage, contactID: contactID, forStartingCall: forStartingCall) + ObvMessengerCoreDataNotification.observeADeliveredReturnReceiptShouldBeSentForAReceivedFyleMessageJoinWithStatus { [weak self] (returnReceipt, contactCryptoId, ownedCryptoId, messageIdentifierFromEngine, attachmentNumber) in + self?.processADeliveredReturnReceiptShouldBeSent(returnReceipt: returnReceipt, contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId, messageIdentifierFromEngine: messageIdentifierFromEngine, attachmentNumber: attachmentNumber) }, - ObvMessengerInternalNotification.observeNewCallLogItem() { [weak self] objectID in - self?.processNewCallLogItemNotification(objectID: objectID) + ObvMessengerCoreDataNotification.observeADeliveredReturnReceiptShouldBeSentForPersistedMessageReceived { [weak self] returnReceipt, contactCryptoId, ownedCryptoId, messageIdentifierFromEngine in + self?.processADeliveredReturnReceiptShouldBeSent(returnReceipt: returnReceipt, contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId, messageIdentifierFromEngine: messageIdentifierFromEngine, attachmentNumber: nil) }, - ObvMessengerInternalNotification.observeWipeAllMessagesThatExpiredEarlierThanNow { [weak self] (launchedByBackgroundTask, completionHandler) in - self?.processWipeAllMessagesThatExpiredEarlierThanNow(launchedByBackgroundTask: launchedByBackgroundTask, completionHandler: completionHandler) + ObvMessengerCoreDataNotification.observePersistedObvOwnedIdentityWasDeleted { [weak self] in + self?.processPersistedObvOwnedIdentityWasDeleted() }, - ObvMessengerInternalNotification.observeCurrentUserActivityDidChange() { [weak self] (previousUserActivity, currentUserActivity) in - if let previousDiscussionPermanentID = previousUserActivity.discussionPermanentID, previousDiscussionPermanentID != currentUserActivity.discussionPermanentID { - self?.userLeftDiscussion(discussionPermanentID: previousDiscussionPermanentID) - } - if let currentDiscussionPermanentID = currentUserActivity.discussionPermanentID, currentDiscussionPermanentID != previousUserActivity.discussionPermanentID { - self?.userEnteredDiscussion(discussionPermanentID: currentDiscussionPermanentID) - } + ObvMessengerCoreDataNotification.observeAPersistedGroupV2MemberChangedFromPendingToNonPending { [weak self] contactObjectID in + self?.sendAppropriateDiscussionSharedConfigurationsToContact(input: .contact(contactObjectID: contactObjectID), sendSharedConfigOfOneToOneDiscussion: false) + self?.processUnprocessedRecipientInfosThatCanNowBeProcessed() }, - ObvMessengerInternalNotification.observeUserWantsToReadReceivedMessagesThatRequiresUserAction { [weak self] (persistedMessageObjectIDs) in - self?.processUserWantsToReadReceivedMessagesThatRequiresUserActionNotification(persistedMessageObjectIDs: persistedMessageObjectIDs) + ObvMessengerCoreDataNotification.observePersistedDiscussionWasInsertedOrReactivated { [weak self] ownedCryptoId, discussionIdentifier in + self?.processPersistedDiscussionWasInsertedOrReactivated(ownedCryptoId: ownedCryptoId, discussionIdentifier: discussionIdentifier) }, - ObvMessengerCoreDataNotification.observePersistedMessageReceivedWasRead { (persistedMessageReceivedObjectID) in - Task { [weak self] in await self?.processPersistedMessageReceivedWasReadNotification(persistedMessageReceivedObjectID: persistedMessageReceivedObjectID) } + ObvMessengerCoreDataNotification.observeAPersistedGroupV2WasInsertedInDatabase { [weak self] ownedCryptoId, groupIdentifier in + Task { [weak self] in await self?.processAPersistedGroupV2WasInsertedInDatabase(ownedCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier) } }, - ObvMessengerCoreDataNotification.observeReceivedFyleJoinHasBeenMarkAsOpened { (receivedFyleJoinID) in - Task { [weak self] in await self?.processReceivedFyleJoinHasBeenMarkAsOpenedNotification(receivedFyleJoinID: receivedFyleJoinID) } + ObvMessengerCoreDataNotification.observePersistedContactWasInserted { [weak self] _, ownedCryptoId, contactCryptoId in + Task { [weak self] in await self?.processPersistedContactWasInserted(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) } }, - ObvMessengerCoreDataNotification.observeAReadOncePersistedMessageSentWasSent { [weak self] (persistedMessageSentPermanentID, persistedDiscussionPermanentID) in - self?.processAReadOncePersistedMessageSentWasSentNotification(persistedMessageSentPermanentID: persistedMessageSentPermanentID, persistedDiscussionPermanentID: persistedDiscussionPermanentID) + ]) + + // Internal notifications (User requests) + + observationTokens.append(contentsOf: [ + ObvMessengerInternalNotification.observeUserRequestedDeletionOfPersistedMessage() { [weak self] (ownedCryptoId, persistedMessageObjectID, deletionType) in + self?.processUserRequestedDeletionOfPersistedMessageNotification(ownedCryptoId: ownedCryptoId, persistedMessageObjectID: persistedMessageObjectID, deletionType: deletionType) }, - ObvMessengerInternalNotification.observeUserWantsToSetAndShareNewDiscussionSharedExpirationConfiguration { [weak self] (persistedDiscussionObjectID, expirationJSON, ownedCryptoId) in - self?.processUserWantsToSetAndShareNewDiscussionSharedExpirationConfiguration(persistedDiscussionObjectID: persistedDiscussionObjectID, expirationJSON: expirationJSON, ownedCryptoId: ownedCryptoId) + ObvMessengerInternalNotification.observeUserRequestedDeletionOfPersistedDiscussion() { [weak self] (ownedCryptoId, discussionObjectID, deletionType, completionHandler) in + self?.processUserRequestedDeletionOfPersistedDiscussion(ownedCryptoId: ownedCryptoId, discussionObjectID: discussionObjectID, deletionType: deletionType, completionHandler: completionHandler) }, - ObvMessengerCoreDataNotification.observeAnOldDiscussionSharedConfigurationWasReceived { [weak self] (persistedDiscussionObjectID) in - self?.processAnOldDiscussionSharedConfigurationWasReceivedNotification(persistedDiscussionObjectID: persistedDiscussionObjectID) + ObvMessengerInternalNotification.observeUserWantsToReadReceivedMessageThatRequiresUserAction { [weak self] (ownedCryptoId, discussionId, messageId) in + self?.processUserWantsToReadReceivedMessageThatRequiresUserActionNotification(ownedCryptoId: ownedCryptoId, discussionId: discussionId, messageId: messageId) + }, + ObvMessengerInternalNotification.observeUserWantsToSetAndShareNewDiscussionSharedExpirationConfiguration { [weak self] ownedCryptoId, discussionId, expirationJSON in + self?.processUserWantsToSetAndShareNewDiscussionSharedExpirationConfiguration(ownedCryptoId: ownedCryptoId, discussionId: discussionId, expirationJSON: expirationJSON) }, ObvMessengerInternalNotification.observeUserWantsToUpdateDiscussionLocalConfiguration { [weak self] (value, localConfigurationObjectID) in self?.processUserWantsToUpdateDiscussionLocalConfigurationNotification(with: value, localConfigurationObjectID: localConfigurationObjectID) @@ -248,11 +254,8 @@ final class PersistedDiscussionsUpdatesCoordinator { ObvMessengerInternalNotification.observeUserWantsToUpdateLocalConfigurationOfDiscussion { [weak self] (value, discussionPermanentID, completionHandler) in self?.processUserWantsToUpdateLocalConfigurationOfDiscussionNotification(with: value, discussionPermanentID: discussionPermanentID, completionHandler: completionHandler) }, - ObvMessengerInternalNotification.observeApplyAllRetentionPoliciesNow { [weak self] (launchedByBackgroundTask, completionHandler) in - self?.processApplyAllRetentionPoliciesNowNotification(launchedByBackgroundTask: launchedByBackgroundTask, completionHandler: completionHandler) - }, - ObvMessengerInternalNotification.observeUserWantsToSendEditedVersionOfSentMessage { [weak self] (sentMessageObjectID, newTextBody) in - self?.processUserWantsToSendEditedVersionOfSentMessage(sentMessageObjectID: sentMessageObjectID, newTextBody: newTextBody) + ObvMessengerInternalNotification.observeUserWantsToSendEditedVersionOfSentMessage { [weak self] (ownedCryptoId, sentMessageObjectID, newTextBody) in + self?.processUserWantsToSendEditedVersionOfSentMessage(ownedCryptoId: ownedCryptoId, sentMessageObjectID: sentMessageObjectID, newTextBody: newTextBody) }, ObvMessengerInternalNotification.observeUserWantsToMarkAllMessagesAsNotNewWithinDiscussion { [weak self] (persistedDiscussionObjectID, completionHandler) in self?.processUserWantsToMarkAllMessagesAsNotNewWithinDiscussionNotification(persistedDiscussionObjectID: persistedDiscussionObjectID, completionHandler: completionHandler) @@ -260,23 +263,8 @@ final class PersistedDiscussionsUpdatesCoordinator { ObvMessengerInternalNotification.observeUserWantsToRemoveDraftFyleJoin { [weak self] (draftFyleJoinObjectID) in self?.processUserWantsToRemoveDraftFyleJoinNotification(draftFyleJoinObjectID: draftFyleJoinObjectID) }, - ObvMessengerCoreDataNotification.observePersistedContactWasDeleted { [weak self ] _, _ in - self?.processPersistedContactWasDeletedNotification() - }, - NewSingleDiscussionNotification.observeInsertDiscussionIsEndToEndEncryptedSystemMessageIntoDiscussionIfEmpty { [weak self] (discussionObjectID, markAsRead) in - self?.processInsertDiscussionIsEndToEndEncryptedSystemMessageIntoDiscussionIfEmpty(discussionObjectID: discussionObjectID, markAsRead: markAsRead) - }, - ObvMessengerInternalNotification.observeUserWantsToUpdateReaction { [weak self] messageObjectID, emoji in - self?.processUserWantsToUpdateReaction(messageObjectID: messageObjectID, emoji: emoji) - }, - ObvMessengerInternalNotification.observeInsertDebugMessagesInAllExistingDiscussions { [weak self] in - self?.processInsertDebugMessagesInAllExistingDiscussions() - }, - ObvMessengerInternalNotification.observeCleanExpiredMuteNotficationsThatExpiredEarlierThanNow { [weak self] in - self?.cleanExpiredMuteNotificationsSetting() - }, ObvMessengerInternalNotification.observeUserRepliedToReceivedMessageWithinTheNotificationExtension { [weak self] contactPermanentID, messageIdentifierFromEngine, textBody, completionHandler in - self?.processUserRepliedToReceivedMessageWithinTheNotificationExtensionNotification(contactPermanentID: contactPermanentID, messageIdentifierFromEngine: messageIdentifierFromEngine, textBody: textBody, completionHandler: completionHandler) + Task { [weak self] in await self?.processUserRepliedToReceivedMessageWithinTheNotificationExtensionNotification(contactPermanentID: contactPermanentID, messageIdentifierFromEngine: messageIdentifierFromEngine, textBody: textBody, completionHandler: completionHandler) } }, ObvMessengerInternalNotification.observeUserRepliedToMissedCallWithinTheNotificationExtension { [weak self] discussionPermanentID, textBody, completionHandler in self?.processUserRepliedToMissedCallWithinTheNotificationExtensionNotification(discussionPermanentID: discussionPermanentID, textBody: textBody, completionHandler: completionHandler) @@ -296,20 +284,14 @@ final class PersistedDiscussionsUpdatesCoordinator { NewSingleDiscussionNotification.observeUserWantsToDownloadReceivedFyleMessageJoinWithStatus { [weak self] joinObjectID in self?.processUserWantsToDownloadReceivedFyleMessageJoinWithStatus(receivedJoinObjectID: joinObjectID) }, + NewSingleDiscussionNotification.observeUserWantsToDownloadSentFyleMessageJoinWithStatusFromOtherOwnedDevice { [weak self] sentJoinObjectID in + self?.processUserWantsToDownloadSentFyleMessageJoinWithStatusFromOtherOwnedDevice(sentJoinObjectID: sentJoinObjectID) + }, NewSingleDiscussionNotification.observeUserWantsToPauseDownloadReceivedFyleMessageJoinWithStatus { [weak self] joinObjectID in self?.processUserWantsToPauseDownloadReceivedFyleMessageJoinWithStatus(receivedJoinObjectID: joinObjectID) }, - ObvMessengerCoreDataNotification.observeADeliveredReturnReceiptShouldBeSentForAReceivedFyleMessageJoinWithStatus { [weak self] (returnReceipt, contactCryptoId, ownedCryptoId, messageIdentifierFromEngine, attachmentNumber) in - self?.processADeliveredReturnReceiptShouldBeSent(returnReceipt: returnReceipt, contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId, messageIdentifierFromEngine: messageIdentifierFromEngine, attachmentNumber: attachmentNumber) - }, - ObvMessengerCoreDataNotification.observeADeliveredReturnReceiptShouldBeSentForPersistedMessageReceived { [weak self] returnReceipt, contactCryptoId, ownedCryptoId, messageIdentifierFromEngine in - self?.processADeliveredReturnReceiptShouldBeSent(returnReceipt: returnReceipt, contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId, messageIdentifierFromEngine: messageIdentifierFromEngine, attachmentNumber: nil) - }, - ObvMessengerInternalNotification.observeTooManyWrongPasscodeAttemptsCausedLockOut { [weak self] in - self?.processTooManyWrongPasscodeAttemptsCausedLockOut() - }, - ObvMessengerCoreDataNotification.observePersistedObvOwnedIdentityWasDeleted { [weak self] in - self?.processPersistedObvOwnedIdentityWasDeleted() + NewSingleDiscussionNotification.observeUserWantsToPauseSentFyleMessageJoinWithStatusFromOtherOwnedDevice { [weak self] sentJoinObjectID in + self?.processUserWantsToPauseSentFyleMessageJoinWithStatusFromOtherOwnedDevice(sentJoinObjectID: sentJoinObjectID) }, ObvMessengerInternalNotification.observeUserWantsToReorderDiscussions { [weak self] (discussionObjectIds, ownedIdentity, completionHandler) in self?.processUserWantsToReorderDiscussions(discussionObjectIds: discussionObjectIds, ownedIdentity: ownedIdentity, completionHandler: completionHandler) @@ -323,6 +305,55 @@ final class PersistedDiscussionsUpdatesCoordinator { ObvMessengerInternalNotification.observeUserWantsToUnarchiveDiscussion { [weak self] discussionPermanentID, updateTimestampOfLastMessage, completionHandler in self?.processUserWantsToUnarchiveDiscussion(discussionPermanentID: discussionPermanentID, updateTimestampOfLastMessage: updateTimestampOfLastMessage, completionHandler: completionHandler) }, + ObvMessengerInternalNotification.observeUserWantsToUpdateReaction { [weak self] ownedCryptoId, messageObjectID, newEmoji in + self?.processUserWantsToUpdateReaction(ownedCryptoId: ownedCryptoId, messageObjectID: messageObjectID, newEmoji: newEmoji) + }, + ObvMessengerInternalNotification.observeNewObvEncryptedPushNotificationWasReceivedViaPushKitNotification { [weak self] encryptedPushNotification in + Task { [weak self] in await self?.processNewObvEncryptedPushNotificationWasReceivedViaPushKitNotification(encryptedPushNotification: encryptedPushNotification) } + }, + ]) + + // Internal notifications + + observationTokens.append(contentsOf: [ + ObvMessengerInternalNotification.observeMessagesAreNotNewAnymore() { [weak self] (ownedCryptoId, discussionId, messageIds) in + self?.processMessagesAreNotNewAnymore(ownedCryptoId: ownedCryptoId, discussionId: discussionId, messageIds: messageIds) + }, + ObvMessengerInternalNotification.observeNewCallLogItem() { [weak self] objectID in + self?.processNewCallLogItemNotification(objectID: objectID) + }, + ObvMessengerInternalNotification.observeWipeAllMessagesThatExpiredEarlierThanNow { [weak self] (launchedByBackgroundTask, completionHandler) in + self?.processWipeAllMessagesThatExpiredEarlierThanNow(launchedByBackgroundTask: launchedByBackgroundTask, completionHandler: completionHandler) + }, + ObvMessengerInternalNotification.observeCurrentUserActivityDidChange() { [weak self] (previousUserActivity, currentUserActivity) in + if let previousDiscussionPermanentID = previousUserActivity.discussionPermanentID, previousDiscussionPermanentID != currentUserActivity.discussionPermanentID { + self?.userLeftDiscussion(discussionPermanentID: previousDiscussionPermanentID) + } + if let currentDiscussionPermanentID = currentUserActivity.discussionPermanentID, currentDiscussionPermanentID != previousUserActivity.discussionPermanentID { + self?.userEnteredDiscussion(discussionPermanentID: currentDiscussionPermanentID) + } + }, + ObvMessengerInternalNotification.observeADiscussionSharedConfigurationIsNeededByContact { [weak self] contactIdentifier, discussionId in + self?.processADiscussionSharedConfigurationIsNeededByContact(contactIdentifier: contactIdentifier, discussionId: discussionId) + }, + ObvMessengerInternalNotification.observeADiscussionSharedConfigurationIsNeededByAnotherOwnedDevice { [weak self] ownedCryptoId, discussionId in + self?.processADiscussionSharedConfigurationIsNeededByAnotherOwnedDevice(ownedCryptoId: ownedCryptoId, discussionId: discussionId) + }, + ObvMessengerInternalNotification.observeApplyAllRetentionPoliciesNow { [weak self] (launchedByBackgroundTask, completionHandler) in + self?.processApplyAllRetentionPoliciesNowNotification(launchedByBackgroundTask: launchedByBackgroundTask, completionHandler: completionHandler) + }, + NewSingleDiscussionNotification.observeInsertDiscussionIsEndToEndEncryptedSystemMessageIntoDiscussionIfEmpty { [weak self] (discussionObjectID, markAsRead) in + self?.processInsertDiscussionIsEndToEndEncryptedSystemMessageIntoDiscussionIfEmpty(discussionObjectID: discussionObjectID, markAsRead: markAsRead) + }, + ObvMessengerInternalNotification.observeInsertDebugMessagesInAllExistingDiscussions { [weak self] in + self?.processInsertDebugMessagesInAllExistingDiscussions() + }, + ObvMessengerInternalNotification.observeCleanExpiredMuteNotficationsThatExpiredEarlierThanNow { [weak self] in + self?.cleanExpiredMuteNotificationsSetting() + }, + ObvMessengerInternalNotification.observeTooManyWrongPasscodeAttemptsCausedLockOut { [weak self] in + self?.processTooManyWrongPasscodeAttemptsCausedLockOut() + }, ObvMessengerInternalNotification.observeUpdateNormalizedSearchKeyOnPersistedDiscussions { [weak self] ownedIdentity, completionHandler in self?.processUpdateNormalizedSearchKeyOnPersistedDiscussions(ownedIdentity: ownedIdentity, completionHandler: completionHandler) }, @@ -334,8 +365,14 @@ final class PersistedDiscussionsUpdatesCoordinator { VoIPNotification.observeReportCallEvent { [weak self] (callUUID, callReport, groupIdentifier, ownedCryptoId) in self?.processReportCallEvent(callUUID: callUUID, callReport: callReport, groupIdentifier: groupIdentifier, ownedCryptoId: ownedCryptoId) }, - VoIPNotification.observeCallHasBeenUpdated { [weak self] callUUID, updateKind in - self?.processCallHasBeenUpdated(callUUID: callUUID, updateKind: updateKind) + VoIPNotification.observeCallWasEnded { [weak self] uuidForCallKit in + self?.processCallWasEnded(uuidForCallKit: uuidForCallKit) + }, + VoIPNotification.observeNewWebRTCMessageToSend() { [weak self] (webrtcMessage, contactID, forStartingCall) in + self?.processNewWebRTCMessageToSendNotification(webrtcMessage: webrtcMessage, contactID: contactID, forStartingCall: forStartingCall) + }, + VoIPNotification.observeNewOwnedWebRTCMessageToSend() { [weak self] (ownedCryptoId, webrtcMessage) in + self?.processNewOwnedWebRTCMessageToSend(ownedCryptoId: ownedCryptoId, webrtcMessage: webrtcMessage) }, ]) @@ -371,11 +408,14 @@ final class PersistedDiscussionsUpdatesCoordinator { }, ]) - // ObvEngine Notifications + // ObvEngineNotificationNew Notifications observationTokens.append(contentsOf: [ ObvEngineNotificationNew.observeNewMessageReceived(within: NotificationCenter.default) { [weak self] (obvMessage, completionHandler) in - self?.processNewMessageReceivedNotification(obvMessage: obvMessage, completionHandler: completionHandler) + Task { [weak self] in await self?.processNewMessageReceivedNotification(obvMessage: obvMessage, completionHandler: completionHandler) } + }, + ObvEngineNotificationNew.observeNewOwnedMessageReceived(within: NotificationCenter.default) { [weak self] (obvOwnedMessage, completionHandler) in + Task { [weak self] in await self?.processNewOwnedMessageReceivedNotification(obvOwnedMessage: obvOwnedMessage, completionHandler: completionHandler) } }, ObvEngineNotificationNew.observeMessageWasAcknowledged(within: NotificationCenter.default) { [weak self] (ownedIdentity, messageIdentifierFromEngine, timestampFromServer, isAppMessageWithUserContent, isVoipMessage) in self?.processMessageWasAcknowledgedNotification(ownedIdentity: ownedIdentity, messageIdentifierFromEngine: messageIdentifierFromEngine, timestampFromServer: timestampFromServer, isAppMessageWithUserContent: isAppMessageWithUserContent, isVoipMessage: isVoipMessage) @@ -386,18 +426,30 @@ final class PersistedDiscussionsUpdatesCoordinator { ObvEngineNotificationNew.observeAttachmentDownloadCancelledByServer(within: NotificationCenter.default) { [weak self] (obvAttachment) in self?.processAttachmentDownloadCancelledByServerNotification(obvAttachment: obvAttachment) }, - ObvEngineNotificationNew.observeCannotReturnAnyProgressForMessageAttachments(within: NotificationCenter.default) { [weak self] (messageIdentifierFromEngine) in - self?.processCannotReturnAnyProgressForMessageAttachmentsNotification(messageIdentifierFromEngine: messageIdentifierFromEngine) + ObvEngineNotificationNew.observeOwnedAttachmentDownloadCancelledByServer(within: NotificationCenter.default) { [weak self] obvOwnedAttachment in + self?.processOwnedAttachmentDownloadCancelledByServerNotification(obvOwnedAttachment: obvOwnedAttachment) + }, + ObvEngineNotificationNew.observeCannotReturnAnyProgressForMessageAttachments(within: NotificationCenter.default) { [weak self] ownedCryptoId, messageIdentifierFromEngine in + self?.processCannotReturnAnyProgressForMessageAttachmentsNotification(ownedCryptoId: ownedCryptoId, messageIdentifierFromEngine: messageIdentifierFromEngine) }, ObvEngineNotificationNew.observeAttachmentDownloaded(within: NotificationCenter.default) { [weak self] (obvAttachment) in self?.processAttachmentDownloadedNotification(obvAttachment: obvAttachment) }, + ObvEngineNotificationNew.observeOwnedAttachmentDownloaded(within: NotificationCenter.default) { [weak self] (obvOwnedAttachment) in + self?.processOwnedAttachmentDownloadedNotification(obvOwnedAttachment: obvOwnedAttachment) + }, ObvEngineNotificationNew.observeAttachmentDownloadWasResumed(within: NotificationCenter.default) { [weak self] ownCryptoId, messageIdentifierFromEngine, attachmentNumber in self?.processAttachmentDownloadWasResumed(ownedCryptoId: ownCryptoId, messageIdentifierFromEngine: messageIdentifierFromEngine, attachmentNumber: attachmentNumber) }, + ObvEngineNotificationNew.observeOwnedAttachmentDownloadWasResumed(within: NotificationCenter.default) { [weak self] ownCryptoId, messageIdentifierFromEngine, attachmentNumber in + self?.processOwnedAttachmentDownloadWasResumed(ownedCryptoId: ownCryptoId, messageIdentifierFromEngine: messageIdentifierFromEngine, attachmentNumber: attachmentNumber) + }, ObvEngineNotificationNew.observeAttachmentDownloadWasPaused(within: NotificationCenter.default) { [weak self] ownCryptoId, messageIdentifierFromEngine, attachmentNumber in self?.processAttachmentDownloadWasPaused(ownedCryptoId: ownCryptoId, messageIdentifierFromEngine: messageIdentifierFromEngine, attachmentNumber: attachmentNumber) }, + ObvEngineNotificationNew.observeOwnedAttachmentDownloadWasPaused(within: NotificationCenter.default) { [weak self] ownCryptoId, messageIdentifierFromEngine, attachmentNumber in + self?.processOwnedAttachmentDownloadWasPaused(ownedCryptoId: ownCryptoId, messageIdentifierFromEngine: messageIdentifierFromEngine, attachmentNumber: attachmentNumber) + }, ObvEngineNotificationNew.observeNewObvReturnReceiptToProcess(within: NotificationCenter.default) { [weak self] (obvReturnReceipt) in self?.processNewObvReturnReceiptToProcessNotification(obvReturnReceipt: obvReturnReceipt) }, @@ -410,11 +462,14 @@ final class PersistedDiscussionsUpdatesCoordinator { ObvEngineNotificationNew.observeContactWasDeleted(within: NotificationCenter.default) { [weak self] (ownedCryptoId, contactCryptoId) in self?.processContactWasDeletedNotification(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) }, - ObvEngineNotificationNew.observeMessageExtendedPayloadAvailable(within: NotificationCenter.default) { [weak self] (obvMessage) in - self?.processMessageExtendedPayloadAvailable(obvMessage: obvMessage) + ObvEngineNotificationNew.observeContactMessageExtendedPayloadAvailable(within: NotificationCenter.default) { [weak self] obvMessage in + self?.processContactMessageExtendedPayloadAvailable(obvMessage: obvMessage) }, - ObvEngineNotificationNew.observeContactWasRevokedAsCompromisedWithinEngine(within: NotificationCenter.default) { [weak self] obvContactIdentity in - self?.processContactWasRevokedAsCompromisedWithinEngine(obvContactIdentity: obvContactIdentity) + ObvEngineNotificationNew.observeOwnedMessageExtendedPayloadAvailable(within: NotificationCenter.default) { [weak self] obvOwnedMessage in + self?.processOwnedMessageExtendedPayloadAvailable(obvOwnedMessage: obvOwnedMessage) + }, + ObvEngineNotificationNew.observeContactWasRevokedAsCompromisedWithinEngine(within: NotificationCenter.default) { [weak self] obvContactIdentifier in + self?.processContactWasRevokedAsCompromisedWithinEngine(obvContactIdentifier: obvContactIdentifier) }, ObvEngineNotificationNew.observeNewUserDialogToPresent(within: NotificationCenter.default) { [weak self] obvDialog in self?.processNewUserDialogToPresent(obvDialog: obvDialog) @@ -422,9 +477,8 @@ final class PersistedDiscussionsUpdatesCoordinator { ObvEngineNotificationNew.observeAPersistedDialogWasDeleted(within: NotificationCenter.default) { [weak self] ownedCryptoId, uuid in self?.processAPersistedDialogWasDeleted(uuid: uuid, ownedCryptoId: ownedCryptoId) }, - ObvMessengerCoreDataNotification.observeAPersistedGroupV2MemberChangedFromPendingToNonPending { [weak self] contactObjectID in - self?.sendAppropriateDiscussionSharedConfigurationsToContact(input: .contact(contactObjectID: contactObjectID), sendSharedConfigOfOneToOneDiscussion: false) - self?.processUnprocessedRecipientInfosThatCanNowBeProcessed() + ObvEngineNotificationNew.observeContactIntroductionInvitationSent(within: NotificationCenter.default) { [weak self] ownedIdentity, contactIdentityA, contactIdentityB in + self?.processContactIntroductionInvitationSent(ownedIdentity: ownedIdentity, contactIdentityA: contactIdentityA, contactIdentityB: contactIdentityB) }, ]) @@ -491,27 +545,16 @@ extension PersistedDiscussionsUpdatesCoordinator { } - private func deleteOldOrOrphanedRemoteDeleteAndEditRequests() { - let op1 = DeleteOldOrOrphanedRemoteDeleteAndEditRequestsOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - self.coordinatorsQueue.addOperation(composedOp) - } - - - private func deleteOldOrOrphanedPendingReactions() { - let op1 = DeleteOldOrOrphanedPendingReactionsOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - coordinatorsQueue.addOperation(composedOp) + private func deleteOldOrOrphanedDatabaseEntries() { + let operations = ObvUICoreDataHelper.getOperationsForDeletingOldOrOrphanedDatabaseEntries() + for op1 in operations { + op1.queuePriority = .low + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + self.coordinatorsQueue.addOperation(composedOp) + } } - private func deleteOrphanedExpirations() { - let op = DeleteOrphanedExpirationsOperation() - op.completionBlock = { op.logReasonIfCancelled(log: Self.log) } - coordinatorsQueue.addOperation(op) - } - - private func cleanJsonMessagesSavedByNotificationExtension() { assert(!Thread.isMainThread) let op = DeleteAllJsonMessagesSavedByNotificationExtension() @@ -525,7 +568,7 @@ extension PersistedDiscussionsUpdatesCoordinator { /// Within this method, we loop through all these json files in order to immediately populate the local database of messages. /// Once we are done, we delete all the json files that we have processed. /// Note that if a message with the same uid from server already exists, we do *not* modify it using the content of the json. - private func bootstrapMessagesDecryptedWithinNotificationExtension() { + private func bootstrapMessagesDecryptedWithinNotificationExtension() async { assert(OperationQueue.current != coordinatorsQueue) @@ -558,7 +601,7 @@ extension PersistedDiscussionsUpdatesCoordinator { } for obvMessage in obvMessages { - processReceivedObvMessage(obvMessage, overridePreviousPersistedMessage: false, completionHandler: nil) + _ = await processReceivedObvMessage(obvMessage, overridePreviousPersistedMessage: false) } } @@ -713,50 +756,60 @@ extension PersistedDiscussionsUpdatesCoordinator { assert(!Thread.isMainThread) let op1 = CreateUnprocessedPersistedMessageSentFromPersistedDraftOperation(draftPermanentID: draftPermanentID) let op2 = ComputeExtendedPayloadOperation(provider: op1) - let op3 = SendUnprocessedPersistedMessageSentOperation(unprocessedPersistedMessageSentProvider: op1, extendedPayloadProvider: op2, obvEngine: obvEngine) - let op4 = MarkAllMessagesAsNotNewWithinDiscussionOperation(draftPermanentID: draftPermanentID) - let composedOp = createCompositionOfFourContextualOperation(op1: op1, op2: op2, op3: op3, op4: op4) - coordinatorsQueue.addOperation(composedOp) + let op3 = SendUnprocessedPersistedMessageSentOperation(unprocessedPersistedMessageSentProvider: op1, + alsoPostToOtherOwnedDevices: true, + extendedPayloadProvider: op2, + obvEngine: obvEngine) + let op4 = MarkAllMessagesAsNotNewWithinDiscussionOperation(input: .draftPermanentID(draftPermanentID: draftPermanentID)) + let composedOp1 = createCompositionOfFourContextualOperation(op1: op1, op2: op2, op3: op3, op4: op4) + coordinatorsQueue.addOperation(composedOp1) coordinatorsQueue.addOperation { - guard !composedOp.isCancelled else { + guard !composedOp1.isCancelled else { NewSingleDiscussionNotification.draftCouldNotBeSent(draftPermanentID: draftPermanentID) .postOnDispatchQueue() assertionFailure() return } } + // Notify other owned devices about messages that turned not new + do { + let postOp = PostDiscussionReadJSONEngineOperation(op: op4, obvEngine: obvEngine) + let composedOp2 = createCompositionOfOneContextualOperation(op1: postOp) + composedOp2.addDependency(composedOp1) + coordinatorsQueue.addOperation(composedOp2) + } } private func processInsertDebugMessagesInAllExistingDiscussions() { #if DEBUG - assert(OperationQueue.current != coordinatorsQueue) - var objectIDs = [(discussionObjectID: TypeSafeManagedObjectID, draftPermanentID: ObvManagedObjectPermanentID)]() - ObvStack.shared.performBackgroundTask { [weak self] context in - guard let _self = self else { return } - guard let discussions = try? PersistedDiscussion.getAllSortedByTimestampOfLastMessageForAllOwnedIdentities(within: context) else { assertionFailure(); return } - objectIDs = discussions.map({ ($0.typedObjectID, $0.draft.objectPermanentID) }) - let numberOfMessagesToInsert = 100 - for objectID in objectIDs { - for messageNumber in 0.., draftPermanentID: ObvManagedObjectPermanentID)]() +// ObvStack.shared.performBackgroundTask { [weak self] context in +// guard let _self = self else { return } +// guard let discussions = try? PersistedDiscussion.getAllSortedByTimestampOfLastMessageForAllOwnedIdentities(within: context) else { assertionFailure(); return } +// objectIDs = discussions.map({ ($0.typedObjectID, $0.draft.objectPermanentID) }) +// let numberOfMessagesToInsert = 100 +// for objectID in objectIDs { +// for messageNumber in 0.. Void) { - - ObvStack.shared.performBackgroundTask { [weak self] context in - guard let discussion = try? PersistedDiscussion.get(objectID: persistedDiscussionObjectID, within: context) else { - return - } - guard let ownedCryptoId = discussion.ownedIdentity?.cryptoId else { return } - self?.deletePersistedDiscussion( - withObjectID: persistedDiscussionObjectID, - requester: .ownedIdentity(ownedCryptoId: ownedCryptoId, deletionType: deletionType), - completionHandler: completionHandler) - } - - } - - - /// This methods properly deletes a discussion. It is typically called when the user requests the deletion of all messages within a discussion. But it is also called when a contact performs a global delete of a discussion, in which case `requestedBy` is non `nil`. - private func deletePersistedDiscussion(withObjectID persistedDiscussionObjectID: NSManagedObjectID, requester: RequesterOfMessageDeletion, completionHandler: @escaping (Bool) -> Void) { - - assert(OperationQueue.current != coordinatorsQueue) - - /* - * If Alice sends us a message, then deletes the discussion, the following occurs: - * 1. A user notification is received (and displayed), and a serialized version is saved, ready to be processed next time Olvid is launched - * 2. We receive the delete request in the background and we arrive here. - * 3. If we do not delete the serialized notifications, all the discussions messages included in these serialized notifications would appear. - * So we need to delete these serialized notifications when a discussion is globally deleted. We actually do it even if the deletion is only local, - * since there is no reason to have a serialized notification present after the app is launched. - */ + private func processUserRequestedDeletionOfPersistedDiscussion(ownedCryptoId: ObvCryptoId, discussionObjectID: TypeSafeManagedObjectID, deletionType: DeletionType, completionHandler: @escaping (Bool) -> Void) { cleanJsonMessagesSavedByNotificationExtension() var operationsToQueue = [Operation]() - switch requester { - case .contact: - // We are performing a local deletion, request by a contact. We will do the work below + switch deletionType { + case .local: break - case .ownedIdentity(_, let deletionType): - switch deletionType { - case .local: - break // We will do the work below - case .global: - let op = SendGlobalDeleteDiscussionJSONOperation(persistedDiscussionObjectID: persistedDiscussionObjectID, obvEngine: obvEngine) - op.completionBlock = { op.logReasonIfCancelled(log: Self.log) } - operationsToQueue.append(op) - } + case .global: + let op = SendGlobalDeleteDiscussionJSONOperation(persistedDiscussionObjectID: discussionObjectID.objectID, obvEngine: obvEngine) + op.completionBlock = { op.logReasonIfCancelled(log: Self.log) } + operationsToQueue.append(op) } do { - let op1 = CancelUploadOrDownloadOfPersistedMessagesOperation(persistedDiscussionObjectID: persistedDiscussionObjectID, obvEngine: obvEngine) + let op1 = CancelUploadOrDownloadOfPersistedMessagesOperation( + input: .discussion(persistedDiscussionObjectID: discussionObjectID.objectID), + obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + coordinatorsQueue.addOperation(composedOp) + } + + do { + let op1 = DeletePersistedDiscussionOperation( + ownedCryptoId: ownedCryptoId, + discussionObjectID: discussionObjectID, + deletionType: deletionType) let composedOp = createCompositionOfOneContextualOperation(op1: op1) operationsToQueue.append(composedOp) } - let deleteAllPersistedMessagesWithinDiscussionOperation: DeleteAllPersistedMessagesWithinDiscussionOperation do { - deleteAllPersistedMessagesWithinDiscussionOperation = DeleteAllPersistedMessagesWithinDiscussionOperation(persistedDiscussionObjectID: persistedDiscussionObjectID, requester: requester) - let composedOp = createCompositionOfOneContextualOperation(op1: deleteAllPersistedMessagesWithinDiscussionOperation) - let currentCompletion = composedOp.completionBlock - composedOp.completionBlock = { - currentCompletion?() - composedOp.logReasonIfCancelled(log: Self.log) + let operations = getOperationsForDeletingOrphanedDatabaseItems { success in DispatchQueue.main.async { - completionHandler(!composedOp.isCancelled) + completionHandler(success) } } - operationsToQueue.append(composedOp) + operationsToQueue.append(contentsOf: operations) + } + + guard !operationsToQueue.isEmpty else { return } + operationsToQueue.makeEachOperationDependentOnThePreceedingOne() + coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) + +// ObvStack.shared.performBackgroundTask { [weak self] context in +// guard let discussion = try? PersistedDiscussion.get(objectID: persistedDiscussionObjectID, within: context) else { +// return +// } +// guard let ownedCryptoId = discussion.ownedIdentity?.cryptoId else { return } +// self?.deletePersistedDiscussion( +// withObjectID: persistedDiscussionObjectID, +// requester: .ownedIdentity(ownedCryptoId: ownedCryptoId, deletionType: deletionType), +// completionHandler: completionHandler) +// } + + } + + + private func getOperationsForDeletingOrphanedDatabaseItems(completionHandler: ((Bool) -> Void)? = nil) -> [Operation] { + + var operationsToReturn = [Operation]() + + do { + let op1 = DeleteAllOrphanedPersistedMessagesOperation() + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + operationsToReturn.append(composedOp) } do { let op1 = DeleteAllOrphanedFyleMessageJoinWithStatusOperation() let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) + operationsToReturn.append(composedOp) } do { let op1 = DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation() let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) + operationsToReturn.append(composedOp) } do { let op = BlockOperation() op.completionBlock = { + let oneOperationCancelled = operationsToReturn.reduce(false) { $0 || $1.isCancelled } + let success = !oneOperationCancelled + completionHandler?(success) ObvMessengerInternalNotification.trashShouldBeEmptied .postOnDispatchQueue() } - operationsToQueue.append(op) - } - - // If the requester is a contact (meaning she requested to globally delete the discussion), we insert a discussionWasRemotelyWiped system message in the new discussion, but only if at least one message was deleted. - - switch requester { - case .ownedIdentity: - break - case .contact(_, _, let messageUploadTimestampFromServer): - let op = BlockOperation() - op.completionBlock = { [weak self] in - guard let _self = self else { return } - assert(deleteAllPersistedMessagesWithinDiscussionOperation.isFinished) - guard !deleteAllPersistedMessagesWithinDiscussionOperation.isCancelled else { return } - let newDiscussionObjectID = deleteAllPersistedMessagesWithinDiscussionOperation.newDiscussionObjectID - let atLeastOneIllustrativeMessageWasDeleted = deleteAllPersistedMessagesWithinDiscussionOperation.atLeastOneIllustrativeMessageWasDeleted - let contactIdentityObjectID = deleteAllPersistedMessagesWithinDiscussionOperation.contactRequesterIdentityObjectID - assert(newDiscussionObjectID != nil) - assert(contactIdentityObjectID != nil) - if let newDiscussionObjectID, let contactIdentityObjectID, atLeastOneIllustrativeMessageWasDeleted { - let op1 = InsertPersistedMessageSystemIntoDiscussionOperation( - persistedMessageSystemCategory: .discussionWasRemotelyWiped, - persistedDiscussionObjectID: newDiscussionObjectID, - optionalContactIdentityObjectID: contactIdentityObjectID, optionalCallLogItemObjectID: nil, - messageUploadTimestampFromServer: messageUploadTimestampFromServer) - let composedOp = _self.createCompositionOfOneContextualOperation(op1: op1) - self?.coordinatorsQueue.addOperation(composedOp) - } - } - operationsToQueue.append(op) + operationsToReturn.append(op) } - // We can now queue all operations - - guard !operationsToQueue.isEmpty else { return } - operationsToQueue.makeEachOperationDependentOnThePreceedingOne() - coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) + operationsToReturn.makeEachOperationDependentOnThePreceedingOne() + + return operationsToReturn } - - private func processMessagesAreNotNewAnymore(persistedMessageObjectIDs: Set>) { + + private func processMessagesAreNotNewAnymore(ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier, messageIds: [MessageIdentifier]) { assert(OperationQueue.current != coordinatorsQueue) - let op1 = ProcessPersistedMessagesAsTheyTurnsNotNewOperation(persistedMessageObjectIDs: persistedMessageObjectIDs) - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - self.coordinatorsQueue.addOperation(composedOp) - } - - - private func processNewObvMessageWasReceivedViaPushKitNotification(obvMessage: ObvMessage) { - processReceivedObvMessage(obvMessage, overridePreviousPersistedMessage: false, completionHandler: nil) + + let op1 = ProcessPersistedMessagesAsTheyTurnsNotNewOperation( + ownedCryptoId: ownedCryptoId, + discussionId: discussionId, + messageIds: messageIds) + let composedOp1 = createCompositionOfOneContextualOperation(op1: op1) + self.coordinatorsQueue.addOperation(composedOp1) + + // Notify other owned devices about messages that turned not new + do { + let postOp = PostDiscussionReadJSONEngineOperation(op: op1, obvEngine: obvEngine) + let composedOp2 = createCompositionOfOneContextualOperation(op1: postOp) + composedOp2.addDependency(composedOp1) + coordinatorsQueue.addOperation(composedOp2) + } + } - + private func processNewWebRTCMessageToSendNotification(webrtcMessage: WebRTCMessageJSON, contactID: TypeSafeManagedObjectID, forStartingCall: Bool) { os_log("☎️ We received an observeNewWebRTCMessageToSend notification", log: Self.log, type: .info) let op1 = SendWebRTCMessageOperation(webrtcMessage: webrtcMessage, contactID: contactID, forStartingCall: forStartingCall, obvEngine: obvEngine, log: Self.log) @@ -1097,6 +1146,13 @@ extension PersistedDiscussionsUpdatesCoordinator { coordinatorsQueue.addOperation(composedOp) } + + private func processNewOwnedWebRTCMessageToSend(ownedCryptoId: ObvCryptoId, webrtcMessage: WebRTCMessageJSON) { + let op1 = SendOwnedWebRTCMessageOperation(webrtcMessage: webrtcMessage, ownedCryptoId: ownedCryptoId, obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + coordinatorsQueue.addOperation(composedOp) + } + private func processNewCallLogItemNotification(objectID: TypeSafeManagedObjectID) { os_log("☎️ We received an NewReportCallItem notification", log: Self.log, type: .info) @@ -1153,39 +1209,31 @@ extension PersistedDiscussionsUpdatesCoordinator { operationsToQueue.append(op) } do { - let op1 = DeleteAllOrphanedFyleMessageJoinWithStatusOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) - } - do { - let op1 = DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) - } - do { - let op = BlockOperation() - op.completionBlock = { - ObvMessengerInternalNotification.trashShouldBeEmptied - .postOnDispatchQueue() - } - operationsToQueue.append(op) + let operations = getOperationsForDeletingOrphanedDatabaseItems() + operationsToQueue.append(contentsOf: operations) } operationsToQueue.makeEachOperationDependentOnThePreceedingOne() coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) } - private func userEnteredDiscussion(discussionPermanentID: ObvManagedObjectPermanentID) { - let op = AllowReadingOfAllMessagesReceivedThatRequireUserActionOperation(discussionPermanentID: discussionPermanentID) - op.completionBlock = { op.logReasonIfCancelled(log: Self.log) } - coordinatorsQueue.addOperation(op) + private func userEnteredDiscussion(discussionPermanentID: DiscussionPermanentID) { + let op1 = TryToAutoReadDiscussionsReceivedMessagesThatRequireUserActionOperation(input: .discussionPermanentID(discussionPermanentID: discussionPermanentID)) + let composedOp1 = createCompositionOfOneContextualOperation(op1: op1) + let op2 = PostLimitedVisibilityMessageOpenedJSONEngineOperation(op: op1, obvEngine: obvEngine) + let composedOp2 = createCompositionOfOneContextualOperation(op1: op2) + composedOp2.addDependency(composedOp1) + self.coordinatorsQueue.addOperations([composedOp1, composedOp2], waitUntilFinished: false) } - private func processUserWantsToReadReceivedMessagesThatRequiresUserActionNotification(persistedMessageObjectIDs: Set>) { - let op = AllowReadingOfMessagesReceivedThatRequireUserActionOperation(persistedMessageReceivedObjectIDs: persistedMessageObjectIDs) - op.completionBlock = { op.logReasonIfCancelled(log: Self.log) } - coordinatorsQueue.addOperation(op) + private func processUserWantsToReadReceivedMessageThatRequiresUserActionNotification(ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier, messageId: ReceivedMessageIdentifier) { + let op1 = AllowReadingOfMessagesReceivedThatRequireUserActionOperation(.requestedOnCurrentDevice(ownedCryptoId: ownedCryptoId, discussionId: discussionId, messageId: messageId)) + let composedOp1 = createCompositionOfOneContextualOperation(op1: op1) + let op2 = PostLimitedVisibilityMessageOpenedJSONEngineOperation(op: op1, obvEngine: obvEngine) + let composedOp2 = createCompositionOfOneContextualOperation(op1: op2) + composedOp2.addDependency(composedOp1) + self.coordinatorsQueue.addOperations([composedOp1, composedOp2], waitUntilFinished: false) } @@ -1225,37 +1273,23 @@ extension PersistedDiscussionsUpdatesCoordinator { operationsToQueue.append(composedOp) } do { - let op1 = DeleteAllOrphanedFyleMessageJoinWithStatusOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) - } - do { - let op1 = DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) - } - do { - let op = BlockOperation() - op.completionBlock = { - ObvMessengerInternalNotification.trashShouldBeEmptied - .postOnDispatchQueue() - } - operationsToQueue.append(op) + let operations = getOperationsForDeletingOrphanedDatabaseItems() + operationsToQueue.append(contentsOf: operations) } operationsToQueue.makeEachOperationDependentOnThePreceedingOne() coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) } - private func processUserWantsToSetAndShareNewDiscussionSharedExpirationConfiguration(persistedDiscussionObjectID: NSManagedObjectID, expirationJSON: ExpirationJSON, ownedCryptoId: ObvCryptoId) { + private func processUserWantsToSetAndShareNewDiscussionSharedExpirationConfiguration(ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier, expirationJSON: ExpirationJSON) { var operationsToQueue = [Operation]() do { - let op = ReplaceDiscussionSharedExpirationConfigurationOperation(persistedDiscussionObjectID: persistedDiscussionObjectID, expirationJSON: expirationJSON, ownedCryptoIdAsInitiator: ownedCryptoId) - op.completionBlock = { op.logReasonIfCancelled(log: Self.log) } - operationsToQueue.append(op) + let op1 = ReplaceDiscussionSharedExpirationConfigurationOperation(ownedCryptoIdAsInitiator: ownedCryptoId, discussionId: discussionId, expirationJSON: expirationJSON) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + operationsToQueue.append(composedOp) } do { - let op = SendPersistedDiscussionSharedConfigurationIfAllowedToOperation(persistedDiscussionObjectID: persistedDiscussionObjectID, obvEngine: obvEngine) + let op = SendPersistedDiscussionSharedConfigurationIfAllowedToOperation(ownedCryptoId: ownedCryptoId, discussionId: discussionId, sendTo: .allContactsAndOtherOwnedDevices, obvEngine: obvEngine) op.completionBlock = { op.logReasonIfCancelled(log: Self.log) } operationsToQueue.append(op) } @@ -1284,63 +1318,67 @@ extension PersistedDiscussionsUpdatesCoordinator { operationsToQueue.append(op) } do { - let op1 = DeleteAllOrphanedFyleMessageJoinWithStatusOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) - } - do { - let op1 = DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) - } - do { - let op = BlockOperation() - op.completionBlock = { - ObvMessengerInternalNotification.trashShouldBeEmptied - .postOnDispatchQueue() - let oneOperationCancelled = operationsToQueue.reduce(false) { $0 || $1.isCancelled } - let success = !oneOperationCancelled - completionHandler(success) - } - operationsToQueue.append(op) + let operations = getOperationsForDeletingOrphanedDatabaseItems(completionHandler: completionHandler) + operationsToQueue.append(contentsOf: operations) } operationsToQueue.makeEachOperationDependentOnThePreceedingOne() coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) } - private func processAnOldDiscussionSharedConfigurationWasReceivedNotification(persistedDiscussionObjectID: NSManagedObjectID) { - let op = SendPersistedDiscussionSharedConfigurationIfAllowedToOperation(persistedDiscussionObjectID: persistedDiscussionObjectID, obvEngine: obvEngine) + private func processADiscussionSharedConfigurationIsNeededByContact(contactIdentifier: ObvContactIdentifier, discussionId: DiscussionIdentifier) { + let op = SendPersistedDiscussionSharedConfigurationIfAllowedToOperation( + ownedCryptoId: contactIdentifier.ownedCryptoId, + discussionId: discussionId, + sendTo: .specificContact(contactCryptoId: contactIdentifier.contactCryptoId), + obvEngine: obvEngine) op.completionBlock = { op.logReasonIfCancelled(log: Self.log) } coordinatorsQueue.addOperation(op) } + + private func processADiscussionSharedConfigurationIsNeededByAnotherOwnedDevice(ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier) { + let op = SendPersistedDiscussionSharedConfigurationIfAllowedToOperation(ownedCryptoId: ownedCryptoId, discussionId: discussionId, sendTo: .otherOwnedDevices, obvEngine: obvEngine) + op.completionBlock = { op.logReasonIfCancelled(log: Self.log) } + coordinatorsQueue.addOperation(op) + } + - private func processUserWantsToSendEditedVersionOfSentMessage(sentMessageObjectID: NSManagedObjectID, newTextBody: String) { - let op1 = EditTextBodyOfSentMessageOperation(persistedSentMessageObjectID: sentMessageObjectID, newTextBody: newTextBody) - let op2 = SendUpdateMessageJSONOperation(persistedSentMessageObjectID: sentMessageObjectID, obvEngine: obvEngine) + private func processUserWantsToSendEditedVersionOfSentMessage(ownedCryptoId: ObvCryptoId, sentMessageObjectID: TypeSafeManagedObjectID, newTextBody: String?) { + let op1 = EditTextBodyOfSentMessageOperation(ownedCryptoId: ownedCryptoId, persistedSentMessageObjectID: sentMessageObjectID, newTextBody: newTextBody) + let op2 = SendUpdateMessageJSONOperation(sentMessageObjectID: sentMessageObjectID, obvEngine: obvEngine) let composedOp = createCompositionOfTwoContextualOperation(op1: op1, op2: op2) coordinatorsQueue.addOperation(composedOp) } - private func processUserWantsToUpdateReaction(messageObjectID: TypeSafeManagedObjectID, emoji: String?) { - let op1 = UpdateReactionsOfMessageOperation(emoji: emoji, messageObjectID: messageObjectID) - let op2 = SendReactionJSONOperation(messageObjectID: messageObjectID, obvEngine: obvEngine, emoji: emoji) + private func processUserWantsToUpdateReaction(ownedCryptoId: ObvCryptoId, messageObjectID: TypeSafeManagedObjectID, newEmoji: String?) { + let op1 = ProcessSetOrUpdateReactionOnMessageLocalRequestOperation(ownedCryptoId: ownedCryptoId, messageObjectID: messageObjectID, newEmoji: newEmoji) + let op2 = SendReactionJSONOperation(messageObjectID: messageObjectID, obvEngine: obvEngine, emoji: newEmoji) let composedOp = createCompositionOfTwoContextualOperation(op1: op1, op2: op2) coordinatorsQueue.addOperation(composedOp) } + private func processNewObvEncryptedPushNotificationWasReceivedViaPushKitNotification(encryptedPushNotification: ObvEncryptedPushNotification) async { + do { + let obvMessage = try await obvEngine.decrypt(encryptedPushNotification: encryptedPushNotification) + _ = await processReceivedObvMessage(obvMessage, overridePreviousPersistedMessage: false) + } catch { + os_log("☎️ Could not decrypt encrypted push notification received via PushKit. The start call may have been received via WebScoket", log: Self.log, type: .info) + } + } + + private func processUserWantsToMarkAllMessagesAsNotNewWithinDiscussionNotification(persistedDiscussionObjectID: NSManagedObjectID, completionHandler: @escaping (Bool) -> Void) { os_log("Call to processUserWantsToMarkAllMessagesAsNotNewWithinDiscussionNotification for discussion %{public}@", log: Self.log, type: .debug, persistedDiscussionObjectID.debugDescription) var operationsToQueue = [Operation]() - do { - os_log("Creating a MarkAllMessagesAsNotNewWithinDiscussionOperation for discussion %{public}@", log: Self.log, type: .debug, persistedDiscussionObjectID.debugDescription) - let op1 = MarkAllMessagesAsNotNewWithinDiscussionOperation(persistedDiscussionObjectID: TypeSafeManagedObjectID(objectID: persistedDiscussionObjectID) ) - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) - } + + os_log("Creating a MarkAllMessagesAsNotNewWithinDiscussionOperation for discussion %{public}@", log: Self.log, type: .debug, persistedDiscussionObjectID.debugDescription) + let op1 = MarkAllMessagesAsNotNewWithinDiscussionOperation(input: .persistedDiscussionObjectID(persistedDiscussionObjectID: TypeSafeManagedObjectID(objectID: persistedDiscussionObjectID))) + let composedOp1 = createCompositionOfOneContextualOperation(op1: op1) + operationsToQueue.append(composedOp1) + do { let op = BlockOperation() op.completionBlock = { @@ -1348,11 +1386,21 @@ extension PersistedDiscussionsUpdatesCoordinator { } operationsToQueue.append(op) } + // Since the operation were user initiated, we increase their priority and quality of service operationsToQueue.forEach { $0.queuePriority = .veryHigh } operationsToQueue.forEach { $0.qualityOfService = .userInteractive } operationsToQueue.makeEachOperationDependentOnThePreceedingOne() coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) + + // Notify other owned devices about messages that turned not new + do { + let postOp = PostDiscussionReadJSONEngineOperation(op: op1, obvEngine: obvEngine) + let composedOp2 = createCompositionOfOneContextualOperation(op1: postOp) + composedOp2.addDependency(composedOp1) + coordinatorsQueue.addOperation(composedOp2) + } + } @@ -1364,17 +1412,8 @@ extension PersistedDiscussionsUpdatesCoordinator { operationsToQueue.append(op) } do { - let op1 = DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) - } - do { - let op = BlockOperation() - op.completionBlock = { - ObvMessengerInternalNotification.trashShouldBeEmptied - .postOnDispatchQueue() - } - operationsToQueue.append(op) + let operations = getOperationsForDeletingOrphanedDatabaseItems() + operationsToQueue.append(contentsOf: operations) } operationsToQueue.makeEachOperationDependentOnThePreceedingOne() coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) @@ -1431,9 +1470,7 @@ extension PersistedDiscussionsUpdatesCoordinator { private func newProgressToAddForTrackingFreeze(draftPermanentID: ObvManagedObjectPermanentID, progress: Progress) { - if #available(iOS 15, *) { - CompositionViewFreezeManager.shared.newProgressToAddForTrackingFreeze(draftPermanentID: draftPermanentID, progress: progress) - } + CompositionViewFreezeManager.shared.newProgressToAddForTrackingFreeze(draftPermanentID: draftPermanentID, progress: progress) } @@ -1469,27 +1506,18 @@ extension PersistedDiscussionsUpdatesCoordinator { private func processUserWantsToDeleteAllAttachmentsToDraft(draftObjectID: TypeSafeManagedObjectID) { var operationsToQueue = [Operation]() + do { let op1 = DeleteAllDraftFyleJoinOfDraftOperation(draftObjectID: draftObjectID) let composedOp = createCompositionOfOneContextualOperation(op1: op1) operationsToQueue.append(composedOp) } - - do { - let op1 = DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) - } - + do { - let op = BlockOperation() - op.completionBlock = { - ObvMessengerInternalNotification.trashShouldBeEmptied - .postOnDispatchQueue() - } - operationsToQueue.append(op) + let operations = getOperationsForDeletingOrphanedDatabaseItems() + operationsToQueue.append(contentsOf: operations) } - + operationsToQueue.makeEachOperationDependentOnThePreceedingOne() coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) @@ -1572,13 +1600,21 @@ extension PersistedDiscussionsUpdatesCoordinator { } private func processUserWantsToUpdateDiscussionLocalConfigurationNotification(with value: PersistedDiscussionLocalConfigurationValue, localConfigurationObjectID: TypeSafeManagedObjectID) { - let op1 = UpdateDiscussionLocalConfigurationOperation(value: value, localConfigurationObjectID: localConfigurationObjectID) + let op1 = UpdateDiscussionLocalConfigurationOperation( + value: value, + input: .configurationObjectID(localConfigurationObjectID), + makeSyncAtomRequest: true, + syncAtomRequestDelegate: syncAtomRequestDelegate) let composedOp = createCompositionOfOneContextualOperation(op1: op1) self.coordinatorsQueue.addOperation(composedOp) } private func processUserWantsToUpdateLocalConfigurationOfDiscussionNotification(with value: PersistedDiscussionLocalConfigurationValue, discussionPermanentID: ObvManagedObjectPermanentID, completionHandler: @escaping () -> Void) { - let op1 = UpdateDiscussionLocalConfigurationOperation(value: value, discussionPermanentID: discussionPermanentID) + let op1 = UpdateDiscussionLocalConfigurationOperation( + value: value, + input: .discussionPermanentID(discussionPermanentID), + makeSyncAtomRequest: true, + syncAtomRequestDelegate: syncAtomRequestDelegate) let composedOp = createCompositionOfOneContextualOperation(op1: op1) op1.completionBlock = { DispatchQueue.main.async { @@ -1595,18 +1631,139 @@ extension PersistedDiscussionsUpdatesCoordinator { extension PersistedDiscussionsUpdatesCoordinator { - private func processNewMessageReceivedNotification(obvMessage: ObvMessage, completionHandler: @escaping (Set) -> Void) { + private func processNewMessageReceivedNotification(obvMessage: ObvMessage, completionHandler: @escaping (Set) -> Void) async { os_log("🧦 We received a NewMessageReceived notification", log: Self.log, type: .debug) - let attachmentsToDownloadAsap = Set(obvMessage.attachments.filter { - // A negative maxAttachmentSizeForAutomaticDownload means "unlimited" - ObvMessengerSettings.Downloads.maxAttachmentSizeForAutomaticDownload < 0 || $0.totalUnitCount < ObvMessengerSettings.Downloads.maxAttachmentSizeForAutomaticDownload - }) - let localCompletionHandler = { + let result = await processReceivedObvMessage(obvMessage, overridePreviousPersistedMessage: true) + + switch result { + + case .done: + let attachmentsToDownloadAsap = Set(obvMessage.attachments.filter { + // A negative maxAttachmentSizeForAutomaticDownload means "unlimited" + ObvMessengerSettings.Downloads.maxAttachmentSizeForAutomaticDownload < 0 || $0.totalUnitCount < ObvMessengerSettings.Downloads.maxAttachmentSizeForAutomaticDownload + }) + completionHandler(attachmentsToDownloadAsap) + + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + + if Date.now.timeIntervalSince(obvMessage.localDownloadTimestamp) < ObvMessengerConstants.maximumTimeIntervalForKeptForLaterMessages { + + await messagesKeptForLaterManager.keepForLater( + .obvMessageForGroupV2( + groupIdentifier: groupIdentifier, + obvMessage: obvMessage, + completionHandler: completionHandler)) + + } else { + + completionHandler(Set()) + + } + + case .couldNotFindContactInDatabase(contactCryptoId: let contactCryptoId): + + if Date.now.timeIntervalSince(obvMessage.localDownloadTimestamp) < ObvMessengerConstants.maximumTimeIntervalForKeptForLaterMessages { + + await messagesKeptForLaterManager.keepForLater(.obvMessageExpectingContact( + contactCryptoId: contactCryptoId, + obvMessage: obvMessage, + completionHandler: completionHandler)) + + } else { + + completionHandler(Set()) + + } + + } + + } + + + private func processNewOwnedMessageReceivedNotification(obvOwnedMessage: ObvOwnedMessage, completionHandler: @escaping (Set) -> Void) async { + os_log("🧦 We received a NewOwnedMessageReceived notification", log: Self.log, type: .debug) + + let result = await processReceivedObvOwnedMessage(obvOwnedMessage) + + switch result { + + case .done: + + let attachmentsToDownloadAsap = Set(obvOwnedMessage.attachments.filter { + // A negative maxAttachmentSizeForAutomaticDownload means "unlimited" + ObvMessengerSettings.Downloads.maxAttachmentSizeForAutomaticDownload < 0 || $0.totalUnitCount < ObvMessengerSettings.Downloads.maxAttachmentSizeForAutomaticDownload + }) + completionHandler(attachmentsToDownloadAsap) + + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + + if Date.now.timeIntervalSince(obvOwnedMessage.localDownloadTimestamp) < ObvMessengerConstants.maximumTimeIntervalForKeptForLaterMessages { + + await messagesKeptForLaterManager.keepForLater(.obvOwnedMessageForGroupV2( + groupIdentifier: groupIdentifier, + obvOwnedMessage: obvOwnedMessage, + completionHandler: completionHandler)) + + } else { + + completionHandler(Set()) + + } + + case .couldNotFindContactInDatabase(contactCryptoId: let contactCryptoId): + + if Date.now.timeIntervalSince(obvOwnedMessage.localDownloadTimestamp) < ObvMessengerConstants.maximumTimeIntervalForKeptForLaterMessages { + + await messagesKeptForLaterManager.keepForLater(.obvOwnedMessageExpectingContact( + contactCryptoId: contactCryptoId, + obvOwnedMessage: obvOwnedMessage, + completionHandler: completionHandler)) + + } else { + + completionHandler(Set()) + + } + + } + + } + + + private func processAPersistedGroupV2WasInsertedInDatabase(ownedCryptoId: ObvCryptoId, groupIdentifier: GroupV2Identifier) async { + + let messagesKeptForLater = await messagesKeptForLaterManager.getGroupV2MessagesKeptForLaterForOwnedCryptoId(ownedCryptoId, groupIdentifier: groupIdentifier) + + for messageKeptForLater in messagesKeptForLater { + switch messageKeptForLater { + case .obvMessageForGroupV2(_, let obvMessage, let completionHandler): + await processNewMessageReceivedNotification(obvMessage: obvMessage, completionHandler: completionHandler) + case .obvOwnedMessageForGroupV2(_, let obvOwnedMessage, let completionHandler): + await processNewOwnedMessageReceivedNotification(obvOwnedMessage: obvOwnedMessage, completionHandler: completionHandler) + case .obvMessageExpectingContact, .obvOwnedMessageExpectingContact: + assertionFailure("Those messages are not expected to be part of the returned results") + } } + + } + + + private func processPersistedContactWasInserted(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) async { + + let messagesKeptForLater = await messagesKeptForLaterManager.getMessagesExpectingContactForOwnedCryptoId(ownedCryptoId, contactCryptoId: contactCryptoId) - processReceivedObvMessage(obvMessage, overridePreviousPersistedMessage: true, completionHandler: localCompletionHandler) + for messageKeptForLater in messagesKeptForLater { + switch messageKeptForLater { + case .obvMessageExpectingContact(contactCryptoId: _, obvMessage: let obvMessage, completionHandler: let completionHandler): + await processNewMessageReceivedNotification(obvMessage: obvMessage, completionHandler: completionHandler) + case .obvOwnedMessageExpectingContact(contactCryptoId: _, obvOwnedMessage: let obvOwnedMessage, completionHandler: let completionHandler): + await processNewOwnedMessageReceivedNotification(obvOwnedMessage: obvOwnedMessage, completionHandler: completionHandler) + case .obvMessageForGroupV2, .obvOwnedMessageForGroupV2: + assertionFailure("Those messages are not expected to be part of the returned results") + } + } } @@ -1656,71 +1813,61 @@ extension PersistedDiscussionsUpdatesCoordinator { os_log("We received an AttachmentDownloadCancelledByServer notification", log: Self.log, type: .debug) let obvEngine = self.obvEngine var operationsToQueue = [Operation]() - let composedOp: CompositionOfOneContextualOperation + let composedOp: CompositionOfOneContextualOperation do { - let op1 = ProcessFyleWithinDownloadingAttachmentOperation(obvAttachment: obvAttachment, newProgress: nil, obvEngine: obvEngine) + let op1 = UpdatePersistedMessageReceivedFromReceivedObvAttachmentOperation(obvAttachment: obvAttachment, obvEngine: obvEngine) composedOp = createCompositionOfOneContextualOperation(op1: op1) operationsToQueue.append(composedOp) } - do { - let op = BlockOperation() - op.completionBlock = { - assert(composedOp.isFinished) - guard !composedOp.isCancelled else { return } - // If we reach this point, we have successfully processed the fyle within the attachment. We can ask the engine to delete the attachment - do { - try obvEngine.deleteObvAttachment(attachmentNumber: obvAttachment.number, - ofMessageWithIdentifier: obvAttachment.messageIdentifier, - ownedCryptoId: obvAttachment.ownedCryptoId) - } catch { - os_log("The engine failed to delete the attachment", log: Self.log, type: .fault) - } - } - operationsToQueue.append(op) - } operationsToQueue.makeEachOperationDependentOnThePreceedingOne() coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) } - + /// This notification is typically sent when we request progress for attachments that cannot be found anymore within the engine's inbox. /// Typical if the message/attachments were deleted by the sender before they were completely sent. - private func processCannotReturnAnyProgressForMessageAttachmentsNotification(messageIdentifierFromEngine: Data) { - let op = MarkAllIncompleteReceivedFyleMessageJoinWithStatusAsCancelledByServer(messageIdentifierFromEngine: messageIdentifierFromEngine) - op.completionBlock = { op.logReasonIfCancelled(log: Self.log) } - coordinatorsQueue.addOperation(op) + private func processCannotReturnAnyProgressForMessageAttachmentsNotification(ownedCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data) { + let op1 = MarkAllIncompleteReceivedFyleMessageJoinWithStatusAsCancelledByServer(ownedCryptoId: ownedCryptoId, messageIdentifierFromEngine: messageIdentifierFromEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + self.coordinatorsQueue.addOperation(composedOp) } - - private func processAttachmentDownloadedNotification(obvAttachment: ObvAttachment) { + + private func processOwnedAttachmentDownloadCancelledByServerNotification(obvOwnedAttachment: ObvOwnedAttachment) { + os_log("We received an OwnedAttachmentDownloadCancelledByServer notification", log: Self.log, type: .debug) let obvEngine = self.obvEngine var operationsToQueue = [Operation]() - let composedOp: CompositionOfOneContextualOperation + let composedOp: CompositionOfOneContextualOperation do { - let op1 = ProcessFyleWithinDownloadingAttachmentOperation(obvAttachment: obvAttachment, newProgress: nil, obvEngine: obvEngine) + let op1 = UpdatePersistedMessageSentFromReceivedObvOwnedAttachmentOperation(obvOwnedAttachment: obvOwnedAttachment, obvEngine: obvEngine) composedOp = createCompositionOfOneContextualOperation(op1: op1) operationsToQueue.append(composedOp) } + operationsToQueue.makeEachOperationDependentOnThePreceedingOne() + coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) + } + + + private func processAttachmentDownloadedNotification(obvAttachment: ObvAttachment) { + let obvEngine = self.obvEngine + var operationsToQueue = [Operation]() + let composedOp: CompositionOfOneContextualOperation do { - let op = BlockOperation() - op.completionBlock = { - assert(composedOp.isFinished) - guard !composedOp.isCancelled else { return } - // If we reach this point, we have successfully processed the fyle within the attachment. We can ask the engine to delete the attachment - do { - try obvEngine.deleteObvAttachment(attachmentNumber: obvAttachment.number, - ofMessageWithIdentifier: obvAttachment.messageIdentifier, - ownedCryptoId: obvAttachment.ownedCryptoId) - } catch { - os_log("The engine failed to delete the attachment we just persisted", log: Self.log, type: .fault) - assertionFailure() - } - } - operationsToQueue.append(op) + let op1 = UpdatePersistedMessageReceivedFromReceivedObvAttachmentOperation(obvAttachment: obvAttachment, obvEngine: obvEngine) + composedOp = createCompositionOfOneContextualOperation(op1: op1) + operationsToQueue.append(composedOp) } operationsToQueue.makeEachOperationDependentOnThePreceedingOne() coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) } + + + private func processOwnedAttachmentDownloadedNotification(obvOwnedAttachment: ObvOwnedAttachment) { + let obvEngine = self.obvEngine + let op1 = UpdatePersistedMessageSentFromReceivedObvOwnedAttachmentOperation(obvOwnedAttachment: obvOwnedAttachment, obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + self.coordinatorsQueue.addOperation(composedOp) + } private func processAttachmentDownloadWasResumed(ownedCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, attachmentNumber: Int) { @@ -1737,6 +1884,20 @@ extension PersistedDiscussionsUpdatesCoordinator { } + private func processOwnedAttachmentDownloadWasResumed(ownedCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, attachmentNumber: Int) { + let op1 = MarkReceivedSentJoinAsResumedOrPausedOperation(ownedCryptoId: ownedCryptoId, messageIdentifierFromEngine: messageIdentifierFromEngine, attachmentNumber: attachmentNumber, resumeOrPause: .resume) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + self.coordinatorsQueue.addOperation(composedOp) + } + + + private func processOwnedAttachmentDownloadWasPaused(ownedCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, attachmentNumber: Int) { + let op1 = MarkReceivedSentJoinAsResumedOrPausedOperation(ownedCryptoId: ownedCryptoId, messageIdentifierFromEngine: messageIdentifierFromEngine, attachmentNumber: attachmentNumber, resumeOrPause: .pause) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + self.coordinatorsQueue.addOperation(composedOp) + } + + private func processNewObvReturnReceiptToProcessNotification(obvReturnReceipt: ObvReturnReceipt, retryNumber: Int = 0) { guard retryNumber < 10 else { @@ -1871,22 +2032,33 @@ extension PersistedDiscussionsUpdatesCoordinator { } - /// Called when the engine received successfully downloaded and decrypted an extended payload for an application message. - private func processMessageExtendedPayloadAvailable(obvMessage: ObvMessage) { - let op1 = ExtractReceivedExtendedPayloadOperation(obvMessage: obvMessage) + /// Called when the engine received successfully downloaded and decrypted an extended payload for an application message sent by a contact. + private func processContactMessageExtendedPayloadAvailable(obvMessage: ObvMessage) { + let op1 = ExtractReceivedExtendedPayloadOperation(input: .messageSentByContact(obvMessage: obvMessage)) let op2 = SaveReceivedExtendedPayloadOperation(extractReceivedExtendedPayloadOp: op1) - let composedOp = createCompositionOfTwoContextualOperation(op1: op1, op2: op2) - self.coordinatorsQueue.addOperation(composedOp) + let composedOp = createCompositionOfOneContextualOperation(op1: op2) + composedOp.addDependency(op1) + self.coordinatorsQueue.addOperations([op1, composedOp], waitUntilFinished: false) } + + /// Called when the engine received successfully downloaded and decrypted an extended payload for an application message sent from another device of an owned identity. + private func processOwnedMessageExtendedPayloadAvailable(obvOwnedMessage: ObvOwnedMessage) { + let op1 = ExtractReceivedExtendedPayloadOperation(input: .messageSentByOtherDeviceOfOwnedIdentity(obvOwnedMessage: obvOwnedMessage)) + let op2 = SaveReceivedExtendedPayloadOperation(extractReceivedExtendedPayloadOp: op1) + let composedOp = createCompositionOfOneContextualOperation(op1: op2) + composedOp.addDependency(op1) + self.coordinatorsQueue.addOperations([op1, composedOp], waitUntilFinished: false) + } + - private func processContactWasRevokedAsCompromisedWithinEngine(obvContactIdentity: ObvContactIdentity) { + private func processContactWasRevokedAsCompromisedWithinEngine(obvContactIdentifier: ObvContactIdentifier) { // When the engine informs us that a contact has been revoked as compromised, we insert the appropriate system message within the discussion ObvStack.shared.performBackgroundTask { [weak self] context in guard let _self = self else { return } let contact: PersistedObvContactIdentity do { - guard let _contact = try PersistedObvContactIdentity.get(persisted: obvContactIdentity, whereOneToOneStatusIs: .any, within: context) else { assertionFailure(); return } + guard let _contact = try PersistedObvContactIdentity.get(persisted: obvContactIdentifier, whereOneToOneStatusIs: .any, within: context) else { assertionFailure(); return } contact = _contact } catch { os_log("Could not get contact: %{public}", log: Self.log, type: .fault, error.localizedDescription) @@ -1909,7 +2081,8 @@ extension PersistedDiscussionsUpdatesCoordinator { private func processNewUserDialogToPresent(obvDialog: ObvDialog) { assert(OperationQueue.current != coordinatorsQueue) - let op1 = ProcessObvDialogOperation(obvDialog: obvDialog, obvEngine: obvEngine) + guard let syncAtomRequestDelegate else { assertionFailure(); return } + let op1 = ProcessObvDialogOperation(obvDialog: obvDialog, obvEngine: obvEngine, syncAtomRequestDelegate: syncAtomRequestDelegate) let composedOp = createCompositionOfOneContextualOperation(op1: op1) self.coordinatorsQueue.addOperation(composedOp) } @@ -1930,38 +2103,54 @@ extension PersistedDiscussionsUpdatesCoordinator { } } } + + + private func processContactIntroductionInvitationSent(ownedIdentity: ObvCryptoId, contactIdentityA: ObvCryptoId, contactIdentityB: ObvCryptoId) { + let op1 = ProcessContactIntroductionInvitationSentOperation(ownedCryptoId: ownedIdentity, contactCryptoIdA: contactIdentityA, contactCryptoIdB: contactIdentityB) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + self.coordinatorsQueue.addOperation(composedOp) + } - private func processUserRepliedToReceivedMessageWithinTheNotificationExtensionNotification(contactPermanentID: ObvManagedObjectPermanentID, messageIdentifierFromEngine: Data, textBody: String, completionHandler: @escaping () -> Void) { + private func processUserRepliedToReceivedMessageWithinTheNotificationExtensionNotification(contactPermanentID: ObvManagedObjectPermanentID, messageIdentifierFromEngine: Data, textBody: String, completionHandler: @escaping () -> Void) async { // This call will add the received message decrypted by the notification extension into the database to be sure that we will be able to reply to this message. - bootstrapMessagesDecryptedWithinNotificationExtension() + await bootstrapMessagesDecryptedWithinNotificationExtension() let op1 = CreateUnprocessedReplyToPersistedMessageSentFromBodyOperation(contactPermanentID: contactPermanentID, messageIdentifierFromEngine: messageIdentifierFromEngine, textBody: textBody) let op2 = MarkAsReadReceivedMessageOperation(contactPermanentID: contactPermanentID, messageIdentifierFromEngine: messageIdentifierFromEngine) - let op3 = SendUnprocessedPersistedMessageSentOperation(unprocessedPersistedMessageSentProvider: op1, extendedPayloadProvider: nil, obvEngine: obvEngine) { + let op3 = SendUnprocessedPersistedMessageSentOperation(unprocessedPersistedMessageSentProvider: op1, alsoPostToOtherOwnedDevices: true, extendedPayloadProvider: nil, obvEngine: obvEngine) { DispatchQueue.main.async { completionHandler() } } - let composedOp = createCompositionOfThreeContextualOperation(op1: op1, op2: op2, op3: op3) - let currentCompletion = composedOp.completionBlock - composedOp.completionBlock = { + let composedOp1 = createCompositionOfThreeContextualOperation(op1: op1, op2: op2, op3: op3) + let currentCompletion = composedOp1.completionBlock + composedOp1.completionBlock = { currentCompletion?() - if composedOp.isCancelled { + if composedOp1.isCancelled { // One of op1, op2 or op3 cancelled. We call the completion handler DispatchQueue.main.async { completionHandler() } } } - coordinatorsQueue.addOperation(composedOp) + coordinatorsQueue.addOperation(composedOp1) + + // Notify other owned devices about messages that turned not new + do { + let postOp = PostDiscussionReadJSONEngineOperation(op: op2, obvEngine: obvEngine) + let composedOp2 = createCompositionOfOneContextualOperation(op1: postOp) + composedOp2.addDependency(composedOp1) + coordinatorsQueue.addOperation(composedOp2) + } + } private func processUserRepliedToMissedCallWithinTheNotificationExtensionNotification(discussionPermanentID: ObvManagedObjectPermanentID, textBody: String, completionHandler: @escaping () -> Void) { let op1 = CreateUnprocessedPersistedMessageSentFromBodyOperation(discussionPermanentID: discussionPermanentID, textBody: textBody) - let op2 = SendUnprocessedPersistedMessageSentOperation(unprocessedPersistedMessageSentProvider: op1, extendedPayloadProvider: nil, obvEngine: obvEngine) { + let op2 = SendUnprocessedPersistedMessageSentOperation(unprocessedPersistedMessageSentProvider: op1, alsoPostToOtherOwnedDevices: true, extendedPayloadProvider: nil, obvEngine: obvEngine) { DispatchQueue.main.async { completionHandler() } @@ -1984,13 +2173,13 @@ extension PersistedDiscussionsUpdatesCoordinator { // The following method call adds the received message decrypted by the notification extension into the database. // This allows to be sure that we will be able to mark it as read. - bootstrapMessagesDecryptedWithinNotificationExtension() + await bootstrapMessagesDecryptedWithinNotificationExtension() let op1 = MarkAsReadReceivedMessageOperation(contactPermanentID: contactPermanentID, messageIdentifierFromEngine: messageIdentifierFromEngine) - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - let currentCompletion = composedOp.completionBlock + let composedOp1 = createCompositionOfOneContextualOperation(op1: op1) + let currentCompletion = composedOp1.completionBlock - composedOp.completionBlock = { + composedOp1.completionBlock = { currentCompletion?() @@ -2028,32 +2217,30 @@ extension PersistedDiscussionsUpdatesCoordinator { } } - coordinatorsQueue.addOperation(composedOp) + coordinatorsQueue.addOperation(composedOp1) + // Notify other owned devices about messages that turned not new + do { + let postOp = PostDiscussionReadJSONEngineOperation(op: op1, obvEngine: obvEngine) + let composedOp2 = createCompositionOfOneContextualOperation(op1: postOp) + composedOp2.addDependency(composedOp1) + coordinatorsQueue.addOperation(composedOp2) + } + } private func processUserWantsToWipeFyleMessageJoinWithStatus(ownedCryptoId: ObvCryptoId, objectIDs: Set>) { var operationsToQueue = [Operation]() do { - let requester = RequesterOfMessageDeletion.ownedIdentity(ownedCryptoId: ownedCryptoId, deletionType: .local) - let op1 = WipeFyleMessageJoinsWithStatusOperation(joinObjectIDs: objectIDs, requester: requester) + let op1 = WipeFyleMessageJoinsWithStatusOperation(joinObjectIDs: objectIDs, ownedCryptoId: ownedCryptoId, deletionType: .local) let op2 = DeletePersistedMessagesOperation(operationProvidingPersistedMessageObjectIDsToDelete: op1) let composedOp = createCompositionOfTwoContextualOperation(op1: op1, op2: op2) operationsToQueue.append(composedOp) } do { - let op1 = DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) - } - do { - let op = BlockOperation() - op.completionBlock = { - ObvMessengerInternalNotification.trashShouldBeEmptied - .postOnDispatchQueue() - } - operationsToQueue.append(op) + let operations = getOperationsForDeletingOrphanedDatabaseItems() + operationsToQueue.append(contentsOf: operations) } operationsToQueue.makeEachOperationDependentOnThePreceedingOne() coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) @@ -2064,7 +2251,7 @@ extension PersistedDiscussionsUpdatesCoordinator { for discussionPermanentID in discussionPermanentIDs { let op1 = CreateUnprocessedForwardPersistedMessageSentFromMessageOperation(messagePermanentID: messagePermanentID, discussionPermanentID: discussionPermanentID) let op2 = ComputeExtendedPayloadOperation(provider: op1) - let op3 = SendUnprocessedPersistedMessageSentOperation(unprocessedPersistedMessageSentProvider: op1, extendedPayloadProvider: op2, obvEngine: obvEngine) + let op3 = SendUnprocessedPersistedMessageSentOperation(unprocessedPersistedMessageSentProvider: op1, alsoPostToOtherOwnedDevices: true, extendedPayloadProvider: op2, obvEngine: obvEngine) let composedOp = createCompositionOfThreeContextualOperation(op1: op1, op2: op2, op3: op3) coordinatorsQueue.addOperation(composedOp) } @@ -2082,6 +2269,11 @@ extension PersistedDiscussionsUpdatesCoordinator { self.coordinatorsQueue.addOperation(composedOp) } + private func processUserWantsToDownloadSentFyleMessageJoinWithStatusFromOtherOwnedDevice(sentJoinObjectID: TypeSafeManagedObjectID) { + let op1 = ResumeOrPauseOwnedAttachmentDownloadOperation(sentJoinObjectID: sentJoinObjectID, resumeOrPause: .resume, obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + self.coordinatorsQueue.addOperation(composedOp) + } private func processUserWantsToPauseDownloadReceivedFyleMessageJoinWithStatus(receivedJoinObjectID: TypeSafeManagedObjectID) { let op1 = ResumeOrPauseAttachmentDownloadOperation(receivedJoinObjectID: receivedJoinObjectID, resumeOrPause: .pause, obvEngine: obvEngine) @@ -2089,6 +2281,12 @@ extension PersistedDiscussionsUpdatesCoordinator { self.coordinatorsQueue.addOperation(composedOp) } + private func processUserWantsToPauseSentFyleMessageJoinWithStatusFromOtherOwnedDevice(sentJoinObjectID: TypeSafeManagedObjectID) { + let op1 = ResumeOrPauseOwnedAttachmentDownloadOperation(sentJoinObjectID: sentJoinObjectID, resumeOrPause: .pause, obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + self.coordinatorsQueue.addOperation(composedOp) + } + /// Call when a return receipt shall be sent. When `attachmentNumber` is nil, the return receipt concerns a `PersistedMessageReceived`, otherwise, it concerns a `ReceivedFyleMessageJoinWithStatus`. private func processADeliveredReturnReceiptShouldBeSent(returnReceipt: ReturnReceiptJSON, contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId, messageIdentifierFromEngine: Data, attachmentNumber: Int?) { @@ -2117,35 +2315,11 @@ extension PersistedDiscussionsUpdatesCoordinator { private func processPersistedObvOwnedIdentityWasDeleted() { - var operationsToQueue = [Operation]() - do { - let op1 = DeleteAllOrphanedFyleMessageJoinWithStatusOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) - } - do { - let op1 = DeleteAllOrphanedFyleMessageJoinWithStatusOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) - } - do { - let op1 = DeleteAllOrphanedFylesAndMoveAssociatedFilesToTrashOperation() - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - operationsToQueue.append(composedOp) - } - do { - let op = BlockOperation() - op.completionBlock = { [weak self] in - self?.trashOrphanedFilesFoundInTheFylesDirectory() - self?.deleteOrphanedExpirations() - self?.deleteOldOrOrphanedRemoteDeleteAndEditRequests() - self?.deleteOldOrOrphanedPendingReactions() - self?.cleanExpiredMuteNotificationsSetting() - self?.cleanOrphanedPersistedMessageTimestampedMetadata() - ObvMessengerInternalNotification.trashShouldBeEmptied - .postOnDispatchQueue() - } - operationsToQueue.append(op) + let operationsToQueue = getOperationsForDeletingOrphanedDatabaseItems { [weak self] _ in + self?.trashOrphanedFilesFoundInTheFylesDirectory() + self?.deleteOldOrOrphanedDatabaseEntries() + self?.cleanExpiredMuteNotificationsSetting() + self?.cleanOrphanedPersistedMessageTimestampedMetadata() } operationsToQueue.makeEachOperationDependentOnThePreceedingOne() coordinatorsQueue.addOperations(operationsToQueue, waitUntilFinished: false) @@ -2186,7 +2360,7 @@ extension PersistedDiscussionsUpdatesCoordinator { } private func processUserWantsToReorderDiscussions(discussionObjectIds: [NSManagedObjectID], ownedIdentity: ObvCryptoId, completionHandler: ((Bool) -> Void)?) { - let op1 = ReorderDiscussionsOperation(discussionObjectIDs: discussionObjectIds, ownedIdentity: ownedIdentity) + let op1 = ReorderDiscussionsOperation(input: .discussionObjectIDs(discussionObjectIDs: discussionObjectIds), ownedIdentity: ownedIdentity, makeSyncAtomRequest: true, syncAtomRequestDelegate: syncAtomRequestDelegate) op1.completionBlock = { completionHandler?(!op1.isCancelled) } @@ -2219,7 +2393,7 @@ extension PersistedDiscussionsUpdatesCoordinator { } private func postMessageReadReceiptIfRequired(messageReceived: PersistedMessageReceived) throws { - guard messageReceived.discussion.localConfiguration.doSendReadReceipt ?? ObvMessengerSettings.Discussions.doSendReadReceipt else { return } + guard messageReceived.discussion?.localConfiguration.doSendReadReceipt ?? ObvMessengerSettings.Discussions.doSendReadReceipt else { return } guard let returnReceiptJSON = messageReceived.returnReceipt else { return } guard let contactCryptoId = messageReceived.contactIdentity?.cryptoId else { return } guard let ownedCryptoId = messageReceived.contactIdentity?.ownedIdentity?.cryptoId else { return } @@ -2252,7 +2426,7 @@ extension PersistedDiscussionsUpdatesCoordinator { private func postAttachementReadReceiptIfRequired(receivedFyleJoin: ReceivedFyleMessageJoinWithStatus) throws { let messageReceived = receivedFyleJoin.receivedMessage - guard messageReceived.discussion.localConfiguration.doSendReadReceipt ?? ObvMessengerSettings.Discussions.doSendReadReceipt else { return } + guard messageReceived.discussion?.localConfiguration.doSendReadReceipt ?? ObvMessengerSettings.Discussions.doSendReadReceipt else { return } guard let returnReceiptJSON = messageReceived.returnReceipt else { return } guard let contactCryptoId = messageReceived.contactIdentity?.cryptoId else { return } guard let ownedCryptoId = messageReceived.contactIdentity?.ownedIdentity?.cryptoId else { return } @@ -2266,225 +2440,628 @@ extension PersistedDiscussionsUpdatesCoordinator { } - private func processReceivedObvMessage(_ obvMessage: ObvMessage, overridePreviousPersistedMessage: Bool, completionHandler: (() -> Void)?) { - + + enum ProcessReceivedObvOwnedMessageResult { + case done + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case couldNotFindContactInDatabase(contactCryptoId: ObvCryptoId) + } + + /// Returns `true` if the message can be marked for deletion in the engine, and `false` otherwise. + private func processReceivedObvOwnedMessage(_ obvOwnedMessage: ObvOwnedMessage) async -> ProcessReceivedObvOwnedMessageResult { + assert(OperationQueue.current != coordinatorsQueue) - os_log("Call to processReceivedObvMessage", log: Self.log, type: .debug) + os_log("Call to processReceivedObvOwnedMessage", log: Self.log, type: .debug) let persistedItemJSON: PersistedItemJSON do { - persistedItemJSON = try PersistedItemJSON.jsonDecode(obvMessage.messagePayload) + persistedItemJSON = try PersistedItemJSON.jsonDecode(obvOwnedMessage.messagePayload) } catch { os_log("Could not decode the message payload", log: Self.log, type: .error) - completionHandler?() assertionFailure() - return + return .done } - - let completionHandlerManager = ManagerOfCompletionHandlerFromEngineOnMessageReception(completionHandler: completionHandler) - // Case #1: The ObvMessage contains a WebRTC signaling message + // Case #1: The ObvOwnedMessage contains a WebRTC signaling message if let webrtcMessage = persistedItemJSON.webrtcMessage { - - os_log("☎️ The message is a WebRTC signaling message", log: Self.log, type: .debug) - - completionHandlerManager.addExpectation(.webRTCSignalingMessage) - + os_log("☎️ The owned message is a WebRTC signaling message", log: Self.log, type: .debug) + await self.processReceivedWebRTCMessageJSON(webrtcMessage, obvOwnedMessage: obvOwnedMessage) + return .done + } + + // Case #2: The ObvOwnedMessage contains a message + + if let messageJSON = persistedItemJSON.message { + os_log("The message is an ObvOwnedMessage", log: Self.log, type: .debug) + let returnReceiptJSON = persistedItemJSON.returnReceipt + let result = await self.createPersistedMessageSentFromReceivedObvOwnedMessage( + obvOwnedMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON) + switch result { + case .sentMessageCreated: + return .done + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .sentMessageCreationFailure: + return .done + } + } + + // Case #3: The ObvOwnedMessage contains a shared configuration for a discussion + + if let discussionSharedConfiguration = persistedItemJSON.discussionSharedConfiguration { + os_log("The message is shared discussion configuration", log: Self.log, type: .debug) + let result = await updateSharedConfigurationOfPersistedDiscussion( + using: discussionSharedConfiguration, + fromOtherDeviceOfOwnedId: obvOwnedMessage.ownedCryptoId, + messageUploadTimestampFromServer: obvOwnedMessage.messageUploadTimestampFromServer, + messageLocalDownloadTimestamp: obvOwnedMessage.localDownloadTimestamp) + switch result { + case .done, .failed: + return .done + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .couldNotFindContactInDatabase(contactCryptoId: let contactCryptoId): + return .couldNotFindContactInDatabase(contactCryptoId: contactCryptoId) + } + } + + // Case #4: The ObvOwnedMessage contains a JSON message indicating that some messages should be globally deleted in a discussion + + if let deleteMessagesJSON = persistedItemJSON.deleteMessagesJSON { + os_log("The owned message is a delete message JSON", log: Self.log, type: .debug) + let op1 = ProcessRemoteWipeMessagesRequestOperation(deleteMessagesJSON: deleteMessagesJSON, + requester: .ownedIdentity(ownedCryptoId: obvOwnedMessage.ownedCryptoId), + messageUploadTimestampFromServer: obvOwnedMessage.messageUploadTimestampFromServer) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .processed: + return .done + case nil: + assertionFailure() + return .done + } + } + + // Case #5: The ObvOwnedMessage contains a JSON message indicating that a discussion should be globally deleted + + if let deleteDiscussionJSON = persistedItemJSON.deleteDiscussionJSON { + os_log("The owned message is a delete discussion JSON", log: Self.log, type: .debug) + cleanJsonMessagesSavedByNotificationExtension() + var operationsToQueue = [Operation]() + do { + let op1 = CancelUploadOrDownloadOfPersistedMessagesOperation( + input: .remoteDiscussionDeletionRequestFromOtherOwnedDevice(deleteDiscussionJSON: deleteDiscussionJSON, obvOwnedMessage: obvOwnedMessage), + obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + } + let op1: ProcessRemoteWipeDiscussionRequestOperation + do { + op1 = ProcessRemoteWipeDiscussionRequestOperation( + deleteDiscussionJSON: deleteDiscussionJSON, + requester: .ownedIdentity(ownedCryptoId: obvOwnedMessage.ownedCryptoId), + messageUploadTimestampFromServer: obvOwnedMessage.messageUploadTimestampFromServer) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + let currentCompletion = composedOp.completionBlock + composedOp.completionBlock = { + currentCompletion?() + composedOp.logReasonIfCancelled(log: Self.log) + } + operationsToQueue.append(composedOp) + } + do { + let operations = getOperationsForDeletingOrphanedDatabaseItems() + operationsToQueue.append(contentsOf: operations) + } + guard !operationsToQueue.isEmpty else { assertionFailure(); return .done } + operationsToQueue.makeEachOperationDependentOnThePreceedingOne() + await coordinatorsQueue.addAndAwaitOperations(operationsToQueue) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .processed: + return .done + case nil: + assertionFailure() + return .done + } + } + + // Case #6: The ObvOwnedMessage contains a JSON message indicating that a received message has been edited by the original sender + + if let updateMessageJSON = persistedItemJSON.updateMessageJSON { + os_log("The owned message is an update message JSON", log: Self.log, type: .debug) + let op1 = EditTextBodyOfReceivedMessageOperation( + updateMessageJSON: updateMessageJSON, + requester: .ownedIdentity(ownedCryptoId: obvOwnedMessage.ownedCryptoId), + messageUploadTimestampFromServer: obvOwnedMessage.messageUploadTimestampFromServer) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .processed: + return .done + case nil: + assertionFailure() + return .done + } + } + + // Case #7: The ObvOwnedMessage contains a JSON message indicating that a reaction has been from another owned device + + if let reactionJSON = persistedItemJSON.reactionJSON { + os_log("The owned message is a reaction", log: Self.log, type: .debug) + let op1 = ProcessSetOrUpdateReactionOnMessageOperation( + reactionJSON: reactionJSON, + requester: .ownedIdentity(ownedCryptoId: obvOwnedMessage.ownedCryptoId), + messageUploadTimestampFromServer: obvOwnedMessage.messageUploadTimestampFromServer) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .processed: + return .done + case nil: + assertionFailure() + return .done + } + } + + // Case #8: The ObvOwnedMessage contains a JSON message containing a request for a group v2 discussion shared settings + + if let querySharedSettingsJSON = persistedItemJSON.querySharedSettingsJSON { + os_log("The owned message contains a request for a group v2 discussion share settings", log: Self.log, type: .debug) + let op1 = RespondToQuerySharedSettingsOperation( + querySharedSettingsJSON: querySharedSettingsJSON, + requester: .ownedIdentity(ownedCryptoId: obvOwnedMessage.ownedCryptoId)) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + return .done + } + + // Case #9: The ObvOwnedMessage contains a JSON message indicating that a contact did take a screen capture of sensitive content + + if let screenCaptureDetectionJSON = persistedItemJSON.screenCaptureDetectionJSON { + os_log("The owned message indicates that a contact or a owned identity did take a screen capture of sensitive content", log: Self.log, type: .debug) + let op1 = ProcessDetectionThatSensitiveMessagesWereCapturedOperation( + screenCaptureDetectionJSON: screenCaptureDetectionJSON, + requester: .ownedIdentity(ownedCryptoId: obvOwnedMessage.ownedCryptoId), + messageUploadTimestampFromServer: obvOwnedMessage.messageUploadTimestampFromServer) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .processed: + return .done + case nil: + assertionFailure() + return .done + } + } + + // Case #10: The ObvOwnedMessage contains a JSON message indicating that a received message with limited visibility was read on another owned device + + if let limitedVisibilityMessageOpenedJSON = persistedItemJSON.limitedVisibilityMessageOpenedJSON { + os_log("The owned message indicates that a received message with limited visibility was read on another owned device", log: Self.log, type: .debug) + guard let discussionId = try? limitedVisibilityMessageOpenedJSON.getDiscussionId(ownedCryptoId: obvOwnedMessage.ownedCryptoId) else { + assertionFailure() + return .done + } + guard let messageId = try? limitedVisibilityMessageOpenedJSON.getMessageId(ownedCryptoId: obvOwnedMessage.ownedCryptoId) else { + assertionFailure() + return .done + } + let op1 = AllowReadingOfMessagesReceivedThatRequireUserActionOperation( + .requestedOnAnotherOwnedDevice( + ownedCryptoId: obvOwnedMessage.ownedCryptoId, + discussionId: discussionId, + messageId: messageId, + messageUploadTimestampFromServer: obvOwnedMessage.messageUploadTimestampFromServer)) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .processed: + return .done + case nil: + assertionFailure() + return .done + } + } + + // Case #11: The ObvOwnedMessage contains a JSON message indicating that certain messages must be marked as "not new" within a discussion as they were read on another device + + if let discussionRead = persistedItemJSON.discussionRead { + os_log("The owned message indicates that certain messages must be marked as not new within a discussion as they were read on another device", log: Self.log, type: .debug) + let op1 = MarkAllMessagesAsNotNewWithinDiscussionOperation(input: .discussionReadJSON(ownedCryptoId: obvOwnedMessage.ownedCryptoId, discussionRead: discussionRead)) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .processed: + return .done + case nil: + assertionFailure() + return .done + } + } + + // Unknow case, we mark the message for deletion + + assertionFailure() + return .done + + } + + + private func processReceivedWebRTCMessageJSON(_ webrtcMessage: WebRTCMessageJSON, obvMessage: ObvMessage) async { + guard abs(obvMessage.downloadTimestampFromServer.timeIntervalSince(obvMessage.messageUploadTimestampFromServer)) < 30 else { + // We discard old WebRTC messages + return + } + await withCheckedContinuation { (continuation: CheckedContinuation) in ObvStack.shared.performBackgroundTask { (context) in guard let persistedContactIdentity = try? PersistedObvContactIdentity.get(persisted: obvMessage.fromContactIdentity, whereOneToOneStatusIs: .any, within: context) else { os_log("☎️ Could not find persisted contact associated with received webrtc message", log: Self.log, type: .fault) - completionHandlerManager.removeExpectation(.webRTCSignalingMessage, processingWasASuccess: false) + continuation.resume() return } - let contactId = OlvidUserId.known(contactObjectID: persistedContactIdentity.typedObjectID, - ownCryptoId: obvMessage.fromContactIdentity.ownedIdentity.cryptoId, - remoteCryptoId: obvMessage.fromContactIdentity.cryptoId, - displayName: persistedContactIdentity.fullDisplayName) - ObvMessengerInternalNotification.newWebRTCMessageWasReceived(webrtcMessage: webrtcMessage, - contactId: contactId, - messageUploadTimestampFromServer: obvMessage.messageUploadTimestampFromServer, - messageIdentifierFromEngine: obvMessage.messageIdentifierFromEngine) - .postOnDispatchQueue() - completionHandlerManager.removeExpectation(.webRTCSignalingMessage, processingWasASuccess: true) + let contactId = OlvidUserId.known( + contactObjectID: persistedContactIdentity.typedObjectID, + ownCryptoId: obvMessage.fromContactIdentity.ownedCryptoId, + remoteCryptoId: obvMessage.fromContactIdentity.contactCryptoId, + displayName: persistedContactIdentity.fullDisplayName) + ObvMessengerInternalNotification.newWebRTCMessageWasReceived( + webrtcMessage: webrtcMessage, + fromOlvidUser: contactId, + messageUID: obvMessage.messageUID) + .postOnDispatchQueue() + continuation.resume() + } + } + } + + + private func processReceivedWebRTCMessageJSON(_ webrtcMessage: WebRTCMessageJSON, obvOwnedMessage: ObvOwnedMessage) async { + guard abs(obvOwnedMessage.downloadTimestampFromServer.timeIntervalSince(obvOwnedMessage.messageUploadTimestampFromServer)) < 30 else { + // We discard old WebRTC messages + return + } + await withCheckedContinuation { (continuation: CheckedContinuation) in + ObvStack.shared.performBackgroundTask { (context) in + let ownedUser = OlvidUserId.ownedIdentity(ownedCryptoId: obvOwnedMessage.ownedCryptoId) + ObvMessengerInternalNotification.newWebRTCMessageWasReceived( + webrtcMessage: webrtcMessage, + fromOlvidUser: ownedUser, + messageUID: obvOwnedMessage.messageUID) + .postOnDispatchQueue() + continuation.resume() } } + } + + + enum ProcessReceivedObvMessageResult { + case done + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case couldNotFindContactInDatabase(contactCryptoId: ObvCryptoId) + } + + + private func processReceivedObvMessage(_ obvMessage: ObvMessage, overridePreviousPersistedMessage: Bool) async -> ProcessReceivedObvMessageResult { + + assert(OperationQueue.current != coordinatorsQueue) + + os_log("Call to processReceivedObvMessage", log: Self.log, type: .debug) + + let persistedItemJSON: PersistedItemJSON + do { + persistedItemJSON = try PersistedItemJSON.jsonDecode(obvMessage.messagePayload) + } catch { + os_log("Could not decode the message payload", log: Self.log, type: .error) + assertionFailure() + return .done + } + + // Case #1: The ObvMessage contains a WebRTC signaling message + + if let webrtcMessage = persistedItemJSON.webrtcMessage { + os_log("☎️ The message is a WebRTC signaling message", log: Self.log, type: .debug) + await self.processReceivedWebRTCMessageJSON(webrtcMessage, obvMessage: obvMessage) + return .done + } // Case #2: The ObvMessage contains a message if let messageJSON = persistedItemJSON.message { - os_log("The message is an ObvMessage", log: Self.log, type: .debug) - - completionHandlerManager.addExpectation(.standardMessage) - let returnReceiptJSON = persistedItemJSON.returnReceipt - - createPersistedMessageReceivedFromReceivedObvMessage( + let result = await self.createPersistedMessageReceivedFromReceivedObvMessage( obvMessage, messageJSON: messageJSON, overridePreviousPersistedMessage: overridePreviousPersistedMessage, - returnReceiptJSON: returnReceiptJSON, - completionHandlerManager: completionHandlerManager) - + returnReceiptJSON: returnReceiptJSON) + switch result { + case .receivedMessageCreated: + return .done + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .receivedMessageCreationFailure: + return .done + } } // Case #3: The ObvMessage contains a shared configuration for a discussion if let discussionSharedConfiguration = persistedItemJSON.discussionSharedConfiguration { - os_log("The message is shared discussion configuration", log: Self.log, type: .debug) - - completionHandlerManager.addExpectation(.sharedConfigurationForDiscussion) - - updateSharedConfigurationOfPersistedDiscussion( + let result = await updateSharedConfigurationOfPersistedDiscussion( using: discussionSharedConfiguration, - fromContactIdentity: obvMessage.fromContactIdentity, + fromContact: obvMessage.fromContactIdentity, messageUploadTimestampFromServer: obvMessage.messageUploadTimestampFromServer, - completionHandlerManager: completionHandlerManager) - + messageLocalDownloadTimestamp: obvMessage.localDownloadTimestamp) + switch result { + case .done, .failed: + return .done + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .couldNotFindContactInDatabase(contactCryptoId: let contactCryptoId): + return .couldNotFindContactInDatabase(contactCryptoId: contactCryptoId) + } } // Case #4: The ObvMessage contains a JSON message indicating that some messages should be globally deleted in a discussion if let deleteMessagesJSON = persistedItemJSON.deleteMessagesJSON { os_log("The message is a delete message JSON", log: Self.log, type: .debug) - completionHandlerManager.addExpectation(.globalMessageDeletion) - let op1 = WipeMessagesOperation(messagesToDelete: deleteMessagesJSON.messagesToDelete, - groupIdentifier: deleteMessagesJSON.groupIdentifier, - requester: obvMessage.fromContactIdentity, - messageUploadTimestampFromServer: obvMessage.messageUploadTimestampFromServer, - saveRequestIfMessageCannotBeFound: true) + let op1 = ProcessRemoteWipeMessagesRequestOperation(deleteMessagesJSON: deleteMessagesJSON, + requester: .contact(contactIdentifier: obvMessage.fromContactIdentity), + messageUploadTimestampFromServer: obvMessage.messageUploadTimestampFromServer) let composedOp = createCompositionOfOneContextualOperation(op1: op1) - let currentCompletion = composedOp.completionBlock - composedOp.completionBlock = { - currentCompletion?() - completionHandlerManager.removeExpectation(.globalMessageDeletion, processingWasASuccess: !composedOp.isCancelled) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .processed: + return .done + case nil: + assertionFailure() + return .done } - coordinatorsQueue.addOperation(composedOp) } // Case #5: The ObvMessage contains a JSON message indicating that a discussion should be globally deleted if let deleteDiscussionJSON = persistedItemJSON.deleteDiscussionJSON { os_log("The message is a delete discussion JSON", log: Self.log, type: .debug) - completionHandlerManager.addExpectation(.globalDiscussionDeletion) - let op1 = GetAppropriateActiveDiscussionOperation(contact: obvMessage.fromContactIdentity, groupIdentifier: deleteDiscussionJSON.groupIdentifier) - let composedOp = createCompositionOfOneContextualOperation(op1: op1) - let currentCompletion = composedOp.completionBlock - composedOp.completionBlock = { [weak self] in - currentCompletion?() - assert(op1.isFinished) - assert(op1.persistedDiscussionObjectID != nil || op1.isCancelled) - guard let persistedDiscussionObjectID = op1.persistedDiscussionObjectID else { return } - // An appropriate discussion to delete was found, we can delete it - let requester = RequesterOfMessageDeletion.contact(ownedCryptoId: obvMessage.fromContactIdentity.ownedIdentity.cryptoId, - contactCryptoId: obvMessage.fromContactIdentity.cryptoId, - messageUploadTimestampFromServer: obvMessage.messageUploadTimestampFromServer) - self?.deletePersistedDiscussion(withObjectID: persistedDiscussionObjectID.objectID, - requester: requester, - completionHandler: { success in - completionHandlerManager.removeExpectation(.globalDiscussionDeletion, processingWasASuccess: success) - }) + cleanJsonMessagesSavedByNotificationExtension() + var operationsToQueue = [Operation]() + do { + let op1 = CancelUploadOrDownloadOfPersistedMessagesOperation( + input: .remoteDiscussionDeletionRequestFromContact(deleteDiscussionJSON: deleteDiscussionJSON, obvMessage: obvMessage), + obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + } + let op1: ProcessRemoteWipeDiscussionRequestOperation + do { + op1 = ProcessRemoteWipeDiscussionRequestOperation( + deleteDiscussionJSON: deleteDiscussionJSON, + requester: .contact(contactIdentifier: obvMessage.fromContactIdentity), + messageUploadTimestampFromServer: obvMessage.messageUploadTimestampFromServer) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + let currentCompletion = composedOp.completionBlock + composedOp.completionBlock = { + currentCompletion?() + composedOp.logReasonIfCancelled(log: Self.log) + } + operationsToQueue.append(composedOp) + } + do { + let operations = getOperationsForDeletingOrphanedDatabaseItems() + operationsToQueue.append(contentsOf: operations) + } + guard !operationsToQueue.isEmpty else { assertionFailure(); return .done } + operationsToQueue.makeEachOperationDependentOnThePreceedingOne() + await coordinatorsQueue.addAndAwaitOperations(operationsToQueue) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .processed: + return .done + case nil: + assertionFailure() + return .done } - coordinatorsQueue.addOperation(composedOp) } // Case #6: The ObvMessage contains a JSON message indicating that a received message has been edited by the original sender if let updateMessageJSON = persistedItemJSON.updateMessageJSON { os_log("The message is an update message JSON", log: Self.log, type: .debug) - completionHandlerManager.addExpectation(.messageEdition) - let op1 = EditTextBodyOfReceivedMessageOperation(newTextBody: updateMessageJSON.newTextBody, - requester: obvMessage.fromContactIdentity, - groupIdentifier: updateMessageJSON.groupIdentifier, - receivedMessageToEdit: updateMessageJSON.messageToEdit, - messageUploadTimestampFromServer: obvMessage.messageUploadTimestampFromServer, - saveRequestIfMessageCannotBeFound: true, - newMentions: updateMessageJSON.userMentions) + let op1 = EditTextBodyOfReceivedMessageOperation( + updateMessageJSON: updateMessageJSON, + requester: .contact(contactIdentifier: obvMessage.fromContactIdentity), + messageUploadTimestampFromServer: obvMessage.messageUploadTimestampFromServer) let composedOp = createCompositionOfOneContextualOperation(op1: op1) - let currentCompletion = composedOp.completionBlock - composedOp.completionBlock = { - currentCompletion?() - completionHandlerManager.removeExpectation(.messageEdition, processingWasASuccess: !composedOp.isCancelled) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .processed: + return .done + case nil: + assertionFailure() + return .done } - coordinatorsQueue.addOperation(composedOp) } - // Case #7: The ObvMessage contains a JSON message indicating that a reaction has been add by a contact + // Case #7: The ObvMessage contains a JSON message indicating that a reaction has been added by a contact if let reactionJSON = persistedItemJSON.reactionJSON { - completionHandlerManager.addExpectation(.newReaction) - let op1 = UpdateReactionsOfMessageOperation(contactIdentity: obvMessage.fromContactIdentity, - reactionJSON: reactionJSON, - reactionTimestamp: obvMessage.messageUploadTimestampFromServer, - addPendingReactionIfMessageCannotBeFound: true) + let op1 = ProcessSetOrUpdateReactionOnMessageOperation( + reactionJSON: reactionJSON, + requester: .contact(contactIdentifier: obvMessage.fromContactIdentity), + messageUploadTimestampFromServer: obvMessage.messageUploadTimestampFromServer) let composedOp = createCompositionOfOneContextualOperation(op1: op1) - let currentCompletion = composedOp.completionBlock - composedOp.completionBlock = { - currentCompletion?() - completionHandlerManager.removeExpectation(.newReaction, processingWasASuccess: !composedOp.isCancelled) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .processed: + return .done + case nil: + assertionFailure() + return .done } - coordinatorsQueue.addOperation(composedOp) } // Case #8: The ObvMessage contains a JSON message containing a request for a group v2 discussion shared settings if let querySharedSettingsJSON = persistedItemJSON.querySharedSettingsJSON { - completionHandlerManager.addExpectation(.groupv2DiscussionSharedSettings) - let op1 = RespondToQuerySharedSettingsOperation(fromContactIdentity: obvMessage.fromContactIdentity, - querySharedSettingsJSON: querySharedSettingsJSON) + let op1 = RespondToQuerySharedSettingsOperation( + querySharedSettingsJSON: querySharedSettingsJSON, + requester: .contact(contactIdentifier: obvMessage.fromContactIdentity)) let composedOp = createCompositionOfOneContextualOperation(op1: op1) - let currentCompletion = composedOp.completionBlock - composedOp.completionBlock = { - currentCompletion?() - completionHandlerManager.removeExpectation(.groupv2DiscussionSharedSettings, processingWasASuccess: !composedOp.isCancelled) - } - coordinatorsQueue.addOperation(composedOp) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + return .done } // Case #9: The ObvMessage contains a JSON message indicating that a contact did take a screen capture of sensitive content if let screenCaptureDetectionJSON = persistedItemJSON.screenCaptureDetectionJSON { - completionHandlerManager.addExpectation(.screenCapture) - let op1 = ProcessDetectionThatSensitiveMessagesWereCapturedByContactOperation(contactIdentity: obvMessage.fromContactIdentity, - screenCaptureDetectionJSON: screenCaptureDetectionJSON) + let op1 = ProcessDetectionThatSensitiveMessagesWereCapturedOperation( + screenCaptureDetectionJSON: screenCaptureDetectionJSON, + requester: .contact(contactIdentifier: obvMessage.fromContactIdentity), + messageUploadTimestampFromServer: obvMessage.messageUploadTimestampFromServer) let composedOp = createCompositionOfOneContextualOperation(op1: op1) - let currentCompletion = composedOp.completionBlock - composedOp.completionBlock = { - currentCompletion?() - completionHandlerManager.removeExpectation(.screenCapture, processingWasASuccess: !composedOp.isCancelled) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .processed: + return .done + case nil: + assertionFailure() + return .done } - coordinatorsQueue.addOperation(composedOp) } - // The inbox message has been processed, we can call the completion handler. - // This completion handler is typically used to mark the message from deletion within the FetchManager in the engine. + // Unknow case, we decide to mark the message for deletion - completionHandlerManager.callCompletionHandlerAsap() + assertionFailure() + return .done + + } + + enum UpdateSharedConfigurationOfPersistedDiscussionReceivedFromContactResult { + case done + case failed + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case couldNotFindContactInDatabase(contactCryptoId: ObvCryptoId) + } + + /// This method is called when receiving a message from the engine that contains a shared configuration for a persisted discussion (typically, either one2one, or a group discussion owned by the sender of this message). + /// We use this new configuration to update ours. + private func updateSharedConfigurationOfPersistedDiscussion(using discussionSharedConfiguration: DiscussionSharedConfigurationJSON, fromContact: ObvContactIdentifier, messageUploadTimestampFromServer: Date, messageLocalDownloadTimestamp: Date) async -> UpdateSharedConfigurationOfPersistedDiscussionReceivedFromContactResult { + + let op1 = MergeDiscussionSharedExpirationConfigurationOperation( + discussionSharedConfiguration: discussionSharedConfiguration, + origin: .fromContact(contactIdentifier: fromContact), + messageUploadTimestampFromServer: messageUploadTimestampFromServer, + messageLocalDownloadTimestamp: messageLocalDownloadTimestamp) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .couldNotFindContactInDatabase(contactCryptoId: let contactCryptoId): + return .couldNotFindContactInDatabase(contactCryptoId: contactCryptoId) + case .merged, .contactIsNotOneToOne: + return .done + case nil: + assertionFailure() + return .failed + } } + + enum UpdateSharedConfigurationOfPersistedDiscussionReceivedFromOtherOwnedDevice { + case done + case failed + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case couldNotFindContactInDatabase(contactCryptoId: ObvCryptoId) + } + /// This method is called when receiving a message from the engine that contains a shared configuration for a persisted discussion (typically, either one2one, or a group discussion owned by the sender of this message). /// We use this new configuration to update ours. - private func updateSharedConfigurationOfPersistedDiscussion(using discussionSharedConfiguration: DiscussionSharedConfigurationJSON, fromContactIdentity: ObvContactIdentity, messageUploadTimestampFromServer: Date, completionHandlerManager: ManagerOfCompletionHandlerFromEngineOnMessageReception) { + private func updateSharedConfigurationOfPersistedDiscussion(using discussionSharedConfiguration: DiscussionSharedConfigurationJSON, fromOtherDeviceOfOwnedId ownedCryptoId: ObvCryptoId, messageUploadTimestampFromServer: Date, messageLocalDownloadTimestamp: Date) async -> UpdateSharedConfigurationOfPersistedDiscussionReceivedFromOtherOwnedDevice { + let op1 = MergeDiscussionSharedExpirationConfigurationOperation( discussionSharedConfiguration: discussionSharedConfiguration, - fromContactIdentity: fromContactIdentity, - messageUploadTimestampFromServer: messageUploadTimestampFromServer) + origin: .fromOtherDeviceOfOwnedIdentity(ownedCryptoId: ownedCryptoId), + messageUploadTimestampFromServer: messageUploadTimestampFromServer, + messageLocalDownloadTimestamp: messageLocalDownloadTimestamp) let composedOp = createCompositionOfOneContextualOperation(op1: op1) - let currentCompletion = composedOp.completionBlock - composedOp.completionBlock = { - currentCompletion?() - completionHandlerManager.removeExpectation(.sharedConfigurationForDiscussion, processingWasASuccess: !composedOp.isCancelled ) + await coordinatorsQueue.addAndAwaitOperation(composedOp) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .couldNotFindContactInDatabase(contactCryptoId: let contactCryptoId): + return .couldNotFindContactInDatabase(contactCryptoId: contactCryptoId) + case .merged, .contactIsNotOneToOne: + return .done + case nil: + assertionFailure() + return .failed } - coordinatorsQueue.addOperation(composedOp) + } - private func processReportCallEvent(callUUID: UUID, callReport: CallReport, groupIdentifier: GroupIdentifierBasedOnObjectID?, ownedCryptoId: ObvCryptoId) { + private func processReportCallEvent(callUUID: UUID, callReport: CallReport, groupIdentifier: GroupIdentifier?, ownedCryptoId: ObvCryptoId) { let op = ReportCallEventOperation(callUUID: callUUID, callReport: callReport, groupIdentifier: groupIdentifier, @@ -2494,23 +3071,26 @@ extension PersistedDiscussionsUpdatesCoordinator { } - private func processCallHasBeenUpdated(callUUID: UUID, updateKind: CallUpdateKind) { - guard case .state(let newState) = updateKind else { return } - guard newState.isFinalState else { return } - let op = ReportEndCallOperation(callUUID: callUUID) + private func processCallWasEnded(uuidForCallKit: UUID) { + let op = ReportEndCallOperation(callUUID: uuidForCallKit) op.completionBlock = { op.logReasonIfCancelled(log: Self.log) } self.coordinatorsQueue.addOperation(op) } private func processInsertDiscussionIsEndToEndEncryptedSystemMessageIntoDiscussionIfEmpty(discussionObjectID: TypeSafeManagedObjectID, markAsRead: Bool) { - assert(OperationQueue.current != coordinatorsQueue) let op1 = InsertEndToEndEncryptedSystemMessageIfCurrentDiscussionIsEmptyOperation(discussionObjectID: discussionObjectID, markAsRead: markAsRead) let composedOp = createCompositionOfOneContextualOperation(op1: op1) self.coordinatorsQueue.addOperation(composedOp) } - + + enum CreatePersistedMessageReceivedFromReceivedObvMessageResult { + case receivedMessageCreated + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case receivedMessageCreationFailure + } + /// This method *must* be called from `processReceivedObvMessage(...)`. /// This method is called when a new (received) ObvMessage is available. This message can come from one of the two followings places: /// - Either it was serialized within the notification extension, and deserialized here, @@ -2518,13 +3098,11 @@ extension PersistedDiscussionsUpdatesCoordinator { /// In the first case, this method is called using `overridePreviousPersistedMessage` set to `false`: we check whether the message already exists in database (using the message uid from server) and, if this is the /// case, we do nothing. If the message does not exist, we create it. In the second case, `overridePreviousPersistedMessage` set to `true` and we override any existing persisted message. In other words, messages /// comming from the engine always superseed messages comming from the notification extension. - private func createPersistedMessageReceivedFromReceivedObvMessage(_ obvMessage: ObvMessage, messageJSON: MessageJSON, overridePreviousPersistedMessage: Bool, returnReceiptJSON: ReturnReceiptJSON?, completionHandlerManager: ManagerOfCompletionHandlerFromEngineOnMessageReception) { + private func createPersistedMessageReceivedFromReceivedObvMessage(_ obvMessage: ObvMessage, messageJSON: MessageJSON, overridePreviousPersistedMessage: Bool, returnReceiptJSON: ReturnReceiptJSON?) async -> CreatePersistedMessageReceivedFromReceivedObvMessageResult { ObvDisplayableLogs.shared.log("🍤 Starting createPersistedMessageReceivedFromReceivedObvMessage") defer { ObvDisplayableLogs.shared.log("🍤 Ending createPersistedMessageReceivedFromReceivedObvMessage") } - assert(OperationQueue.current != coordinatorsQueue) - os_log("Call to createPersistedMessageReceivedFromReceivedObvMessage for obvMessage %{public}@", log: Self.log, type: .debug, obvMessage.messageIdentifierFromEngine.debugDescription) // Create a persisted message received @@ -2533,20 +3111,72 @@ extension PersistedDiscussionsUpdatesCoordinator { overridePreviousPersistedMessage: overridePreviousPersistedMessage, returnReceiptJSON: returnReceiptJSON, obvEngine: obvEngine) - // Check for a previously received delete or edit request and apply it - let op2 = ApplyExistingRemoteDeleteAndEditRequestOperation(obvMessage: obvMessage, messageJSON: messageJSON) - // Look for a previously received reaction for that message. If found, apply it. - let op3 = ApplyPendingReactionsOperation(obvMessage: obvMessage, messageJSON: messageJSON) - - let composedOp = createCompositionOfThreeContextualOperation(op1: op1, op2: op2, op3: op3) - let currentCompletion = composedOp.completionBlock + do { + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + await self.coordinatorsQueue.addAndAwaitOperation(composedOp) + } - composedOp.completionBlock = { - currentCompletion?() - completionHandlerManager.removeExpectation(.standardMessage, processingWasASuccess: !composedOp.isCancelled ) + assert(op1.isFinished) + if !op1.isCancelled { + let op1 = TryToAutoReadDiscussionsReceivedMessagesThatRequireUserActionOperation(input: .operationProvidingDiscussionPermanentID(op: op1)) + let op2 = PostLimitedVisibilityMessageOpenedJSONEngineOperation(op: op1, obvEngine: obvEngine) + let composedOp = createCompositionOfTwoContextualOperation(op1: op1, op2: op2) + await self.coordinatorsQueue.addAndAwaitOperation(composedOp) } - self.coordinatorsQueue.addOperation(composedOp) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .messageCreated: + return .receivedMessageCreated + case nil: + return .receivedMessageCreationFailure + } + + } + + + enum CreatePersistedMessageSentFromReceivedObvOwnedMessageResult { + case sentMessageCreated + case couldNotFindGroupV2InDatabase(groupIdentifier: GroupV2Identifier) + case sentMessageCreationFailure + } + + /// This method *must* be called from ``PersistedDiscussionsUpdatesCoordinator.processReceivedObvOwnedMessage(_:completionHandler:)``. + /// This method is called when a new (received) ObvOwnedMessage is available. This message can come from one of the two followings places: + /// - Either it was serialized within the notification extension, and deserialized here, + /// - Either it was received by the main app. + /// In the first case, this method is called using `overridePreviousPersistedMessage` set to `false`: we check whether the message already exists in database (using the message uid from server) and, if this is the + /// case, we do nothing. If the message does not exist, we create it. In the second case, `overridePreviousPersistedMessage` set to `true` and we override any existing persisted message. In other words, messages + /// comming from the engine always superseed messages comming from the notification extension. + private func createPersistedMessageSentFromReceivedObvOwnedMessage(_ obvOwnedMessage: ObvOwnedMessage, messageJSON: MessageJSON, returnReceiptJSON: ReturnReceiptJSON?) async -> CreatePersistedMessageSentFromReceivedObvOwnedMessageResult { + + ObvDisplayableLogs.shared.log("🍤 Starting createPersistedMessageSentFromReceivedObvOwnedMessage") + defer { ObvDisplayableLogs.shared.log("🍤 Ending createPersistedMessageSentFromReceivedObvOwnedMessage") } + + assert(OperationQueue.current != coordinatorsQueue) + + os_log("Call to createPersistedMessageSentFromReceivedObvOwnedMessage for obvOwnedMessage %{public}@", log: Self.log, type: .debug, obvOwnedMessage.messageIdentifierFromEngine.debugDescription) + + // Create a persisted message sent + let op1 = CreatePersistedMessageSentFromReceivedObvOwnedMessageOperation(obvOwnedMessage: obvOwnedMessage, + messageJSON: messageJSON, + returnReceiptJSON: returnReceiptJSON, + obvEngine: obvEngine) + let composedOp = createCompositionOfOneContextualOperation(op1: op1) + await self.coordinatorsQueue.addAndAwaitOperation(composedOp) + assert(op1.isFinished) + + switch op1.result { + case .couldNotFindGroupV2InDatabase(groupIdentifier: let groupIdentifier): + return .couldNotFindGroupV2InDatabase(groupIdentifier: groupIdentifier) + case .sentMessageCreated: + return .sentMessageCreated + case nil: + assertionFailure() + return .sentMessageCreationFailure + } } @@ -2608,77 +3238,6 @@ extension [Operation] { } - -// MARK: - ManagerOfCompletionHandlerFromEngineOnMessageReception - -/// This actor allows to manage completion handlers received from the engine when receiving a message. -/// It makes it possible to call the completion handler only when all operations processing the message are finished. -/// -/// Each expectation corresponds to a kind of internal JSON we can find in a received `ObvMessage`. -private final class ManagerOfCompletionHandlerFromEngineOnMessageReception { - - enum Expectation { - case webRTCSignalingMessage - case standardMessage - case sharedConfigurationForDiscussion - case globalMessageDeletion - case globalDiscussionDeletion - case messageEdition - case newReaction - case groupv2DiscussionSharedSettings - case screenCapture - } - - // Queue shared among `ManagerOfCompletionHandlerFromEngineOnMessageReception` instances - private static let internalQueue = OperationQueue.createSerialQueue(name: "ManagerOfCompletionHandlerFromEngineOnMessageReception internal queue", qualityOfService: .default) - - private let completionHandler: (() -> Void)? - private var expectations = Set() - private var callCompletionHandlerIfExpectationsIsEmpty = false - - init(completionHandler: (() -> Void)?) { - self.completionHandler = completionHandler - } - - deinit { - debugPrint("ManagerOfCompletionHandlerFromEngineOnMessageReception deinit") - } - - func addExpectation(_ expectation: Expectation) { - Self.internalQueue.addOperation { [weak self] in - self?.expectations.insert(expectation) - } - } - - func removeExpectation(_ expectation: Expectation, processingWasASuccess: Bool) { - // We keep a local strong reference to self - // This allows to make sure self is not deallocated during the execution of the operation - let _self = self - Self.internalQueue.addOperation { - assert(processingWasASuccess == true) - _self.expectations.remove(expectation) - if _self.callCompletionHandlerIfExpectationsIsEmpty == true && _self.expectations.isEmpty == true, let completionHandler = _self.completionHandler { - Task { completionHandler() } - } - } - } - - func callCompletionHandlerAsap() { - let _self = self - // We keep a local strong reference to self - // This allows to make sure self is not deallocated during the execution of the operation - Self.internalQueue.addOperation { - assert(_self.callCompletionHandlerIfExpectationsIsEmpty == false) - _self.callCompletionHandlerIfExpectationsIsEmpty = true - if _self.expectations.isEmpty == true, let completionHandler = _self.completionHandler { - Task { completionHandler() } - } - } - } - -} - - // MARK: - Helpers extension PersistedDiscussionsUpdatesCoordinator { diff --git a/iOSClient/ObvMessenger/ObvMessenger/CoreData/DataMigrationManagerForObvMessenger.swift b/iOSClient/ObvMessenger/ObvMessenger/CoreData/DataMigrationManagerForObvMessenger.swift index cb9b92ea..4204a028 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/CoreData/DataMigrationManagerForObvMessenger.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/CoreData/DataMigrationManagerForObvMessenger.swift @@ -96,9 +96,10 @@ final class DataMigrationManagerForObvMessenger: DataMigrationManager. */ - import Foundation import CoreData import ObvCrypto @@ -25,6 +24,7 @@ import ObvEncoder import OlvidUtils import ObvTypes import ObvUICoreData +import ObvSettings final class PersistedContactGroupToDisplayedContactGroupV49ToV50: NSEntityMigrationPolicy, ObvErrorMaker { diff --git a/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v66_to_v67/MigrationAppDatabase_v66_to_v67.md b/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v66_to_v67/MigrationAppDatabase_v66_to_v67.md new file mode 100644 index 00000000..5a1be0f6 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v66_to_v67/MigrationAppDatabase_v66_to_v67.md @@ -0,0 +1,107 @@ +# App database migration from v66 to v67 + + +## ReceivedFyleMessageJoinWithStatus - Updated entity + +- + +The value of this attribute to populate the same attribute in FyleMessageJoinWithStatus. +This is done automatically by the migration manager. + + +## FyleMessageJoinWithStatus - Modified entity + ++ + +Optional, does not prevent lightweight migration. We should use the value found in ReceivedFyleMessageJoinWithStatus. +This is done automatically by the migration manager. +And we deleted the attribute for the migration of SentFyleMessageJoinWithStatus entities as a nil value is appropriate. + + +## PendingMessageReaction - Deleted entity + +We will drop the entries. + + +## PendingRepliedTo - Updated entity + +We will drop the entries. + + +## PersistedContactGroup - Updated entity + ++ + +Optional attribute, that does not require any work. + + +## PersistedDiscussion - Updated entity + ++ +- + +No work to do. + + +## PersistedMessage - Updated entity + + + +The discussion relationship is now optional (required to perform an efficient deletion) + ++ + +We shall use the value found in `PersistedMessageReceived` if this message is actually a received one. This attribute is actually a PendingRepliedTo. +In practice, we delete the mapping from all PersistedMessage subclasses and create a simple custom policy for PersistedMessageReceived instances. + + +## PersistedMessageReceived - Updated entity + +- + +The value found, if any, must be set on the same attribute at the PersistedMessage level. +In practice, we won't do it (as we had to drop the PendingRepliedTo entries) + + +## PersistedMessageSent - Updated entity + ++ + +Requires no work as this is used for messages sent from another owned device. + ++ + +We must copy the value found in the senderThreadIdentifier attribute of the associated discussion. +This is the case because we know that all existing messages sent were sent from the current device. + + +## PersistedMessageSystem - Updated entity + ++ + +Nothing to do here (this is only used in new system messages). + + +## PersistedObvContactDevice - Updated entity + ++ + +To be set to 1 (channel created). This value will by synced during bootstrap. + + +## PersistedObvContactIdentity - Updated entity + ++ + +To be set to true. This value will by synced during bootstrap. + + +## PersistedObvOwnedDevice - New entity + +Nothing to do, this will be set during bootstrap. + + +## RemoteDeleteAndEditRequest - Deleted entity +## RemoteRequestSavedForLater - New entity + +We won't try to migrate those entries. diff --git a/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v66_to_v67/MigrationAppDatabase_v66_to_v67.xcmappingmodel/xcmapping.xml b/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v66_to_v67/MigrationAppDatabase_v66_to_v67.xcmappingmodel/xcmapping.xml new file mode 100644 index 00000000..992980ab --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v66_to_v67/MigrationAppDatabase_v66_to_v67.xcmappingmodel/xcmapping.xml @@ -0,0 +1,2511 @@ + + + + + + 134481920 + 42923E4F-DC92-4728-B85B-58FB3AAF1AA2 + 614 + + + + NSPersistenceFrameworkVersion + 1251 + NSStoreModelVersionHashes + + XDDevAttributeMapping + + 0plcXXRN7XHKl5CcF+fwriFmUpON3ZtcI/AfK748aWc= + + XDDevEntityMapping + + qeN1Ym3TkWN1G6dU9RfX6Kd2ccEvcDVWHpd3LpLgboI= + + XDDevMappingModel + + EqtMzvRnVZWkXwBHu4VeVGy8UyoOe+bi67KC79kphlQ= + + XDDevPropertyMapping + + XN33V44TTGY4JETlMoOB5yyTKxB+u4slvDIinv0rtGA= + + XDDevRelationshipMapping + + akYY9LhehVA/mCb4ATLWuI9XGLcjpm14wWL1oEBtIcs= + + + NSStoreModelVersionHashesDigest + +Hmc2uYZK6og+Pvx5GUJ7oW75UG4V/ksQanTjfTKUnxyGWJRMtB5tIRgVwGsrd7lz/QR57++wbvWsr6nxwyS0A== + NSStoreModelVersionHashesVersion + 3 + NSStoreModelVersionIdentifiers + + + + + + + + + PendingRepliedTo + Undefined + 8 + PendingRepliedTo + 1 + + + + + + declined + + + + PersistedMessageSystem + Undefined + 35 + PersistedMessageSystem + 1 + + + + + + specifiedName + + + + downsizedThumbnail + + + + 1 + rawContactIdentity + + + + date + + + + sortIndex + + + + rawExistenceDuration + + + + 1 + contactIdentities + + + + 1 + rawMessageRepliedTo + + + + capabilityOneToOneContacts + + + + 1 + reactions + + + + rawPinnedIndex + + + + 1 + displayedContactGroup + + + + PersistedMessageReactionReceived + Undefined + 9 + PersistedMessageReactionReceived + 1 + + + + + + forwarded + + + + isPending + + + + 1 + illustrativeMessageForDiscussion + + + + lastOutboundMessageSequenceNumber + + + + hiddenProfileHash + + + + messageSortIndex + + + + namesOfOtherMembers + + + + isIncoming + + + + rawCategory + + + + 1 + replies + + + + rawPublishedDetailsStatus + + + + 1 + contactIdentity + + + + timestampOfLastMessage + + + + ownerIdentity + + + + body + + + + PersistedPendingGroupMember + Undefined + 13 + PersistedPendingGroupMember + 1 + + + + + + 1 + attachmentInfos + + + + 1 + ownedIdentity + + + + rawDoNotifyWhenMentionnedInMutedDiscussion + + + + date + + + + sortIndex + + + + senderSequenceNumber + + + + aNewReceivedMessageDoesMentionOwnedIdentity + + + + rawOwnedIdentityIdentity + + + + senderSequenceNumber + + + + PersistedAttachmentSentRecipientInfos + Undefined + 17 + PersistedAttachmentSentRecipientInfos + 1 + + + + + + fullDisplayName + + + + PersistedExpirationForSentMessageWithLimitedVisibility + Undefined + 15 + PersistedExpirationForSentMessageWithLimitedVisibility + 1 + + + + + + 1 + rawOwnedIdentity + + + + fileName + + + + 1 + replies + + + + 1 + contactGroupsV2 + + + + encodedObvDialog + + + + 1 + detailsTrusted + + + + timestamp + + + + senderThreadIdentifier + + + + capabilityWebrtcContinuousICE + + + + 1 + messages + + + + rawStatus + + + + 1 + unsortedDraftFyleJoins + + + + index + + + + lastName + + + + isReplyToAnotherMessage + + + + lastSystemMessageSequenceNumber + + + + hiddenProfileSalt + + + + ownPermissionAdmin + + + + permanentUUID + + + + body + + + + rawInitialParticipantCount + + + + 1 + draft + + + + sectionName + + + + title + + + + 1 + latestSenderSequenceNumbers + + + + rawGroupUID + + + + photoURL + + + + permanentUUID + + + + PersistedCallLogItem + Undefined + 23 + PersistedCallLogItem + 1 + + + + + + retainWipedMessageSent + + + + company + + + + 1 + expirationForReceivedLimitedExistence + + + + groupDescription + + + + 1 + contactIdentity + + + + rawExistenceDuration + + + + rawDoSendReadReceipt + + + + encodedObvDialog + + + + 1 + mentions + + + + timestamp + + + + senderThreadIdentifier + + + + isArchived + + + + rawStatus + + + + rawEmoji + + + + senderThreadIdentifier + + + + 1 + localConfiguration + + + + identity + + + + PersistedObvContactIdentity + Undefined + 37 + PersistedObvContactIdentity + 1 + + + + + + index + + + + 1 + draft + + + + rawStatus + + + + body + + + + groupName + + + + 1 + discussion + + + + 1 + rawReactions + + + + customDisplayName + + + + 1 + systemMessages + + + + senderThreadIdentifier + + + + 1 + pendingMembers + + + + ReceivedFyleMessageJoinWithStatus + Undefined + 27 + ReceivedFyleMessageJoinWithStatus + 1 + + + + + + rawStatus + + + + normalizedSearchKey + + + + permanentUUID + + + + 1 + mentions + + + + identity + + + + normalizedSearchKey + + + + rawStatus + + + + ownPermissionChangeSettings + + + + doesMentionOwnedIdentity + + + + rawOwnedCryptoId + + + + groupUidRaw + + + + subtitle + + + + rawStatus + + + + 1 + rawGroupV2 + + + + rawOwnerIdentityIdentity + + + + rawCategory + + + + rawExistenceDuration + + + + PersistedDiscussionLocalConfiguration + Undefined + 4 + PersistedDiscussionLocalConfiguration + 1 + + + + + + creationTimestamp + + + + firstName + + + + 1 + messageSent + + + + name + + + + 1 + remoteRequestsSavedForLater + + + + rawVisibilityDuration + + + + rawNotificationSound + + + + rawStatus + + + + 1 + expirationForSentLimitedExistence + + + + 1 + message + + + + lastOutboundMessageSequenceNumber + + + + serializedIdentityCoreDetails + + + + timestamp + + + + serializedMessageJSON + + + + PersistedExpirationForReceivedMessageWithLimitedExistence + Undefined + 7 + PersistedExpirationForReceivedMessageWithLimitedExistence + 1 + + + + + + rawGroupOwnerIdentity + + + + couldNotBeSentToServer + + + + PersistedMessageTimestampedMetadata + Undefined + 5 + PersistedMessageTimestampedMetadata + 1 + + + + + + isWiped + + + + identifier + + + + 1 + contacts + + + + uuid + + + + 1 + displayedContactGroup + + + + 1 + optionalCallLogItem + + + + doesMentionOwnedIdentity + + + + customPhotoFilename + + + + 1 + ownedIdentity + + + + timestampOfLastMessage + + + + fileName + + + + 1 + messageInfo + + + + normalizedSortKey + + + + rawVisibilityDuration + + + + numberOfNewMessages + + + + isActive + + + + totalByteCount + + + + ownPermissionEditOrRemoteDeleteOwnMessages + + + + forwarded + + + + rawReportKind + + + + note + + + + 1 + illustrativeMessageForDiscussion + + + + title + + + + readOnce + + + + 1 + messages + + + + aNewReceivedMessageDoesMentionOwnedIdentity + + + + rawOwnedIdentityIdentity + + + + 1 + rawContact + + + + rawVisibilityDuration + + + + expirationDate + + + + groupIdentifier + + + + 1 + expirationForReceivedLimitedVisibility + + + + photoURLFromEngine + + + + apiKeyExpirationDate + + + + readOnce + + + + rawPerformInteractionDonation + + + + uuid + + + + 1 + messageRepliedToIdentifier + + + + lastSystemMessageSequenceNumber + + + + sortDisplayName + + + + 1 + contact + + + + serverTimestamp + + + + 1 + messages + + + + rawGroupUidRaw + + + + PersistedMessageReceived + Undefined + 33 + PersistedMessageReceived + 1 + + + + + + messageIdentifierFromEngine + + + + messageSortIndex + + + + rawIdentityIdentity + + + + 1 + illustrativeMessage + + + + 1 + ownedIdentity + + + + forwarded + + + + 1 + displayedContactGroup + + + + normalizedSearchKey + + + + fullDisplayName + + + + mentionRangeLowerBound + + + + title + + + + 1 + rawOwnedIdentity + + + + index + + + + PersistedDiscussionSharedConfiguration + Undefined + 20 + PersistedDiscussionSharedConfiguration + 1 + + + + + + permissionAdmin + + + + 1 + replies + + + + 1 + messageRepliedToIdentifier + + + + permanentUUID + + + + isKeycloakManaged + + + + uti + + + + ownPermissionRemoteDeleteAnything + + + + isReplyToAnotherMessage + + + + startDate + + + + ownerIdentity + + + + updateInProgress + + + + 1 + draft + + + + isArchived + + + + rawStatus + + + + readOnce + + + + DisplayedContactGroup + Undefined + 24 + DisplayedContactGroup + 1 + + + + + + 1 + messageSentWithLimitedVisibility + + + + messageIdentifierFromEngine + + + + 1 + asPublishedDetailsOfGroup + + + + badgeCountForDiscussionsTab + + + + 1 + sharedConfiguration + + + + version + + + + rawRetainWipedOutboundMessages + + + + 1 + ownedIdentity + + + + 1 + expirationForSentLimitedVisibility + + + + date + + + + normalizedSearchKey + + + + 1 + asGroupV2Member + + + + 1 + discussion + + + + PersistedMessageReactionSent + Undefined + 26 + PersistedMessageReactionSent + 1 + + + + + + rawOwnedIdentityIdentity + + + + PersistedContactGroupJoined + Undefined + 38 + PersistedContactGroupJoined + 1 + + + + + + recipientIdentity + + + + permanentUUID + + + + rawOwnedIdentityIdentity + + + + 1 + devices + + + + 1 + rawDiscussion + + + + 1 + optionalContactIdentity + + + + isReplyToAnotherMessage + + + + identity + + + + 1 + remoteRequestsSavedForLater + + + + mentionRangeUpperBound + + + + 1 + rawContactGroup + + + + permanentUUID + + + + expirationDate + + + + permissionChangeSettings + + + + pinnedSectionKeyPath + + + + permanentUUID + + + + 1 + sentMessage + + + + ownPermissionSendMessage + + + + permanentUUID + + + + unknownContactsCount + + + + photoURL + + + + 1 + mentions + + + + 1 + groupV1 + + + + 1 + ownedContactGroups + + + + lastOutboundMessageSequenceNumber + + + + 1 + owner + + + + sendRequested + + + + PersistedContactGroupOwned + Undefined + 29 + PersistedContactGroupOwned + 1 + + + + + + missedMessageCount + + + + 1 + unsortedFyleMessageJoinWithStatus + + + + badgeCountForInvitationsTab + + + + 1 + discussion + + + + rawTimeBasedRetention + + + + 1 + persistedMetadata + + + + rawKind + + + + numberOfNewMessages + + + + 1 + message + + + + 1 + ownedIdentity + + + + PersistedUserMentionInMessage + Undefined + 10 + PersistedUserMentionInMessage + 1 + + + + + + serializedIdentityCoreDetails + + + + PersistedExpirationForSentMessageWithLimitedExistence + Undefined + 8 + PersistedExpirationForSentMessageWithLimitedExistence + 1 + + + + + + returnReceiptKey + + + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8Q +D05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGkCwwTFFUkbnVsbNMNDg8QERJfEA9OU0NvbnN0YW50VmFsdWVfEBBOU0V4cHJlc3Npb25UeXBlViRjbGFzc4ACEACAAxAB0hUWFxhaJGNsYXNzbmFtZVgkY2xhc3Nlc18QGU5TQ29uc3RhbnRWYWx1ZUV4cHJlc3Npb26jFxkaXE5TRXhwcmVzc2lvblhOU09iamVjdAgRGiQpMjdJTFFTWF5ld4qRk5WXmZ6pss7S3wAAAAAAAAEBAAAAAAAAABsAAAAAAAAAAAAAAAAAAADo + + rawSecureChannelStatus + + + + rawStatus + + + + 1 + latestSenderSequenceNumbers + + + + defaultEmoji + + + + permanentUUID + + + + 1 + pendingMembers + + + + creationTimestamp + + + + isActive + + + + rawMentionnedIdentity + + + + rawEmoji + + + + uti + + + + PersistedDraftFyleJoin + Undefined + 12 + PersistedDraftFyleJoin + 1 + + + + + + identifier + + + + permissionEditOrRemoteDeleteOwnMessages + + + + 1 + persistedMetadata + + + + rawPinnedIndex + + + + photoURL + + + + personalNote + + + + rawStatus + + + + 1 + logContacts + + + + rawCategory + + + + 1 + illustrativeMessage + + + + 1 + discussion + + + + lastSystemMessageSequenceNumber + + + + Undefined + 18 + PersistedObvOwnedDevice + 1 + + + + + + 1 + discussion + + + + Fyle + Undefined + 16 + Fyle + 1 + + + + + + intrinsicFilename + + + + senderIdentifier + + + + 1 + asTrustedDetailsOfGroup + + + + capabilityGroupsV2 + + + + rawReceptionStatus + + + + 1 + discussion + + + + callUUID + + + + 1 + unsortedFyleMessageJoinWithStatuses + + + + remoteIdentity + + + + 1 + callLogContact + + + + permanentUUID + + + + customPhotoFilename + + + + PersistedCallLogContact + Undefined + 19 + PersistedCallLogContact + 1 + + + + + + 1 + rawContactGroup + + + + PersistedObvContactDevice + Undefined + 36 + PersistedObvContactDevice + 1 + + + + + + returnReceiptNonce + + + + sectionIdentifier + + + + totalByteCount + + + + 1 + rawIdentity + + + + 1 + discussions + + + + muteNotificationsEndDate + + + + 1 + rawOtherMembers + + + + 1 + discussion + + + + rawStatus + + + + expirationDate + + + + isCertifiedByOwnKeycloak + + + + 1 + sharedConfiguration + + + + 1 + draft + + + + 1 + draft + + + + timestamp + + + + 1 + draft + + + + PersistedInvitation + Undefined + 22 + PersistedInvitation + 1 + + + + + + latestRegistrationDate + + + + permissionRemoteDeleteAnything + + + + rawStatus + + + + rawAPIKeyStatus + + + + 1 + fyle + + + + rawOwnedIdentityIdentity + + + + rawVisibilityDuration + + + + rawOwnedIdentityIdentity + + + + 1 + messageRepliedToIdentifier + + + + 1 + groupV2 + + + + 1 + rawOneToOneDiscussion + + + + 1 + contactIdentities + + + + normalizedSearchKey + + + + Undefined + 28 + RemoteRequestSavedForLater + 1 + + + + + + PersistedUserMentionInDraft + Undefined + 25 + PersistedUserMentionInDraft + 1 + + + + + + sha256 + + + + senderThreadIdentifier + + + + 1 + discussion + + + + capabilityOneToOneContacts + + + + downsizedThumbnail + + + + customName + + + + endDate + + + + 1 + rawMessageRepliedTo + + + + normalizedSortKey + + + + 1 + message + + + + pinnedSectionKeyPath + + + + mentionRangeLowerBound + + + + groupNameCustom + + + + 1 + remoteRequestsSavedForLater + + + + PersistedGroupV2Details + Undefined + 2 + PersistedGroupV2Details + 1 + + + + + + PersistedGroupV2Member + Undefined + 1 + PersistedGroupV2Member + 1 + + + + + + timestampAllAttachmentsSent + + + + senderSequenceNumber + + + + uti + + + + 1 + localConfiguration + + + + rawAutoRead + + + + rawVisibilityDuration + + + + 1 + rawOwnedIdentity + + + + 1 + messageReceivedWithLimitedExistence + + + + isOneToOne + + + + 1 + message + + + + objectInsertionDate + + + + PersistedInvitationOneToOneInvitationSent + Undefined + 3 + PersistedInvitationOneToOneInvitationSent + 1 + + + + + + permissionSendMessage + + + + 1 + rawGroup + + + + 1 + rawMessageRepliedTo + + + + senderThreadIdentifier + + + + rawAPIPermissions + + + + rawPublishedDetailsStatus + + + + readOnce + + + + 1 + messageSystem + + + + rawStatus + + + + 1 + latestSenderSequenceNumbers + + + + numberOfNewMessages + + + + ObvMessenger/CoreData/ObvMessenger.xcdatamodeld/ObvMessenger 66.xcdatamodel + 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JAAAbWAAAG2cAABuBAAAbggAAG4gAABuUAAAbqgAAG7kAABu8AAAbywAAG9oAABvdAAAb7AAAG/sAABv+AAAcDQAAHBwAABwgAAAcLwAAHD4AABw/AAAcSwAAHEwAABxNAAAcTgAAHE8AABxkAAAcZQAAHG0AABx5AAAcjQAAHJwAAByrAAAcugAAHL4AABzNAAAc3AAAHOsAABz6AAAdCQAAHRUAAB0nAAAdNgAAHUUAAB1UAAAdYwAAHXIAAB2BAAAdkAAAHZgAAB2tAAAdrgAAHbYAAB3CAAAd1gAAHeUAAB30AAAeAwAAHgcAAB4WAAAeJQAAHjQAAB5DAAAeUgAAHl4AAB5wAAAefwAAHo4AAB6dAAAerAAAHsYAAB7HAAAezQAAHtkAAB7vAAAe/gAAHwEAAB8QAAAfHwAAHyIAAB8xAAAfQAAAH0MAAB9SAAAfYQAAH2UAAB90AAAfgwAAH4QAAB+iAAAfowAAH6QAAB+lAAAfpgAAH6cAAB+oAAAfqQAAH6oAAB+rAAAfrAAAH60AAB+uAAAfrwAAH8QAAB/FAAAfzQAAH9kAAB/tAAAf/AAAIAsAACAaAAAgHgAAIC0AACA8AAAgSwAAIFoAACBpAAAgdQAAIIcAACCWAAAgpQAAILQAACDDAAAg3QAAIN4AACDkAAAg8AAAIQYAACEVAAAhGAAAIScAACE2AAAhOQAAIUgAACFXAAAhWgAAIWkAACF4AAAhfAAAIYsAACGaAAAhmwAAIakAACGqAAAhqwAAIawAACGtAAAhrgAAIcMAACHEAAAhzAAAIdgAACHsAAAh+wAAIgoAACIZAAAiHQAAIiwAACI7AAAiSgAAIlkAACJoAAAidAAAIoYAACKVAAAipAAAIrMAACLCAAAi0QAAIuAAACLvAAAjBAAAIwUAACMNAAAjGQAAIy0AACM8AAAjSwAAI1oAACNeAAAjbQAAI3wAACOLAAAjmgAAI6kAACO1AAAjxwAAI9YAACPlAAAj9AAAJAMAACQSAAAkIQAAJDAAACRFAAAkRgAAJE4AACRaAAAkbgAAJH0AACSMAAAkmwAAJJ8AACSuAAAkvQAAJMwAACTbAAAk6gAAJPYAACUIAAAlFwAAJSYAACU1AAAlRAAAJVMAACViAAAlcQAAJYYAACWHAAAljwAAJZsAACWvAAAlvgAAJc0AACXOAAAl3QAAJeEAACXwAAAl/wAAJg4AACYdAAAmLAAAJjgAACZKAAAmWQAAJmgAACZ3AAAmhgAAJocAACaWAAAmpQAAJrQAACbJAAAmygAAJtIAACbeAAAm8gAAJwEAACcQAAAnHwAAJyMAACcyAAAnQQAAJ1AAACdfAAAnbgAAJ3oAACeMAAAnmwAAJ6oAACe5AAAnyAAAJ9cAACfmAAAn9QAAKAoAACgLAAAoEwAAKB8AACgzAAAoQgAAKFEAAChgAAAoZAAAKHMAACiCAAAokQAAKKAAACivAAAouwAAKM0AACjcAAAo3QAAKOwAACj7AAApCgAAKRkAACkoAAApNwAAKTgAACk8AAApRQAAKUYAACloAAApaQAAKW8AACl7AAApkQAAKaAAACmjAAApsgAAKcEAACnEAAAp0wAAKeIAACnlAAAp9AAAKgMAACoHAAAqFgAAKiUAAComAAAqVAAAKlUAACpWAAAqVwAAKlgAACpZAAAqWgAAKlsAACpcAAAqXQAAKl4AACpfAAAqYAAAKmEAACpiAAAqYwAAKmQAACplAAAqZgAAKmcAACpoAAAqfQAAKn4AACqGAAAqkgAAKqYAACq1AAAqxAAAKtMAACrXAAAq5gAAKvUAACsEAAArEwAAKyIAACsuAAArQAAAK08AACteAAArbQAAK3wAACuLAAArmgAAK6kAACu+AAArvwAAK8cAACvTAAAr5wAAK/YAACwFAAAsFAAALBgAACwnAAAsNgAALEUAACxUAAAsYwAALG8AACyBAAAskAAALJ8AACyuAAAsvQAALMwAACzbAAAs6gAALP8AAC0AAAAtCAAALRQAAC0oAAAtNwAALUYAAC1VAAAtWQAALWgAAC13AAAthgAALZUAAC2kAAAtsAAALcIAAC3RAAAt4AAALe8AAC3+AAAuDQAALhwAAC4rAAAuQAAALkEAAC5JAAAuVQAALmkAAC54AAAuhwAALpYAAC6aAAAuqQAALrgAAC7HAAAu1gAALuUAAC7xAAAvAwAALxIAAC8hAAAvMAAALz8AAC9AAAAvTwAAL14AAC9tAAAvggAAL4MAAC+LAAAvlwAAL6sAAC+6AAAvyQAAL9gAAC/cAAAv6wAAL/oAADAJAAAwGAAAMCcAADAzAAAwRQAAMFQAADBjAAAwcgAAMIEAADCCAAAwkQAAMKAAADCvAAAwxAAAMMUAADDNAAAw2QAAMO0AADD8AAAxCwAAMRoAADEeAAAxLQAAMTwAADFLAAAxWgAAMWkAADF1AAAxhwAAMZYAADGlAAAxtAAAMcMAADHSAAAx4QAAMfAAADIFAAAyBgAAMg4AADIaAAAyLgAAMj0AADJMAAAyWwAAMl8AADJuAAAyfQAAMowAADKbAAAyqgAAMrYAADLIAAAy1wAAMuYAADL1AAAzBAAAMx4AADMfAAAzJQAAMzEAADNHAAAzVgAAM1kAADNoAAAzdwAAM3oAADOJAAAzmAAAM5sAADOqAAAzuQAAM70AADPMAAAz2wAAM9wAADPiAAAz4wAAM/gAADP5AAA0AQAANA0AADQhAAA0MAAAND8AADROAAA0UgAANGEAADRwAAA0fwAANI4AADSdAAA0qQAANLsAADTKAAA02QAANOgAADT3AAA1BgAANRUAADUkAAA1KAAANS8AADUwAAA1UgAANVMAADVZAAA1ZQAANXsAADWKAAA1jQAANZwAADWrAAA1rgAANb0AADXMAAA1zwAANd4AADXtAAA18QAANgAAADYPAAA2EAAANhoAADYbAAA2HAAANh0AADYyAAA2MwAANjsAADZHAAA2WwAANmoAADZ5AAA2iAAANowAADabAAA2qgAANrkAADbIAAA21wAANuMAADb1AAA3BAAANxMAADciAAA3MQAAN0AAADdPAAA3XgAAN3MAADd0AAA3fAAAN4gAADecAAA3qwAAN7oAADfJAAA3zQAAN9wAADfrAAA3+gAAOAkAADgYAAA4JAAAODYAADhFAAA4VAAAOGMAADhyAAA4gQAAOJAAADifAAA4tAAAOLUAADi9AAA4yQAAON0AADjsAAA4+wAAOQoAADkOAAA5HQAAOSwAADk7AAA5SgAAOVkAADllAAA5dwAAOYYAADmVAAA5pAAAObMAADnCAAA50QAAOeAAADnjAAA56AAAOe8AADoJAAA6CgAAOhAAADocAAA6MgAAOkEAADpEAAA6UwAAOmIAADplAAA6dAAAOoMAADqGAAA6lQAAOqQAADqoAAA6twAAOsYAADrHAAA6zQAAOuIAADrjAAA66wAAOvcAADsLAAA7GgAAOykAADs4AAA7PAAAO0sAADtaAAA7aQAAO3gAADuHAAA7kwAAO6UAADu0AAA7wwAAO9IAADvhAAA7+wAAO/wAADwCAAA8DgAAPCQAADwzAAA8NgAAPEUAADxUAAA8VwAAPGYAADx1AAA8eAAAPIcAADyWAAA8mgAAPKkAADy4AAA8uQAAPNEAADzSAAA80wAAPNQAADzVAAA81gAAPNcAADzsAAA87QAAPPUAAD0BAAA9FQAAPSQAAD0zAAA9QgAAPUYAAD1VAAA9ZAAAPXMAAD2CAAA9kQAAPZ0AAD2vAAA9vgAAPc0AAD3cAAA96wAAPfoAAD4JAAA+GAAAPi0AAD4uAAA+NgAAPkIAAD5WAAA+ZQAAPnQAAD6DAAA+hwAAPpYAAD6lAAA+tAAAPsMAAD7SAAA+3gAAPvAAAD7/AAA/DgAAPx0AAD8sAAA/OwAAP0oAAD9ZAAA/bgAAP28AAD93AAA/gwAAP5cAAD+mAAA/tQAAP8QAAD/IAAA/1wAAP+YAAD/1AABABAAAQBMAAEAfAABAMQAAQEAAAEBPAABAXgAAQG0AAEB8AABAiwAAQJoAAECvAABAsAAAQLgAAEDEAABA2AAAQOcAAED2AABBBQAAQQkAAEEYAABBJwAAQTYAAEFFAABBVAAAQWAAAEFyAABBgQAAQZAAAEGfAABBrgAAQcgAAEHJAABBzwAAQdsAAEHxAABCAAAAQgMAAEISAABCIQAAQiQAAEIzAABCQgAAQkUAAEJUAABCYwAAQmcAAEJ2AABChQAAQoYAAEKWAABClwAAQpgAAEKZAABCmgAAQpsAAEKwAABCsQAAQrkAAELFAABC2QAAQugAAEL3AABDBgAAQwoAAEMZAABDKAAAQzcAAENGAABDVQAAQ2EAAENzAABDggAAQ5EAAEOgAABDrwAAQ74AAEPNAABD3AAAQ/EAAEPyAABD+gAARAYAAEQaAABEKQAARDgAAERHAABESwAARFoAAERpAABEeAAARIcAAESWAABEogAARLQAAETDAABE0gAAROEAAETwAABE/wAARQ4AAEUdAABFMgAARTMAAEU7AABFRwAARVsAAEVqAABFeQAARYgAAEWMAABFmwAARaoAAEW5AABFyAAARdcAAEXjAABF9QAARgQAAEYTAABGIgAARjEAAEZLAABGTAAARlIAAEZeAABGdAAARoMAAEaGAABGlQAARqQAAEaoAABGrAAARq0AAEa8AABGywAARs4AAEbdAABG7AAARvAAAEb/AABHDgAARxoAAEcbAABHHAAARx0AAEcyAABHMwAARzsAAEdHAABHWwAAR2oAAEd5AABHiAAAR4wAAEebAABHqgAAR7kAAEfIAABH1wAAR+MAAEf1AABIBAAASBMAAEgiAABIMQAASEAAAEhPAABIXgAASHMAAEh0AABIfAAASIgAAEicAABIqwAASLoAAEjJAABIzQAASNwAAEjrAABI+gAASQkAAEkYAABJJAAASTYAAElFAABJVAAASWMAAElyAABJlAAASZUAAEmbAABJpwAASb0AAEnMAABJzwAASd4AAEntAABJ8AAASf8AAEoOAABKEQAASiAAAEovAABKMwAASkIAAEpRAABKUgAASm4AAEpvAABKcAAASnEAAEpyAABKcwAASnQAAEp1AABKigAASosAAEqTAABKnwAASrMAAErCAABK0QAASuAAAErkAABK8wAASwIAAEsRAABLIAAASy8AAEs7AABLTQAAS1wAAEtrAABLegAAS4kAAEuYAABLpwAAS7YAAEvLAABLzAAAS9QAAEvgAABL9AAATAMAAEwSAABMIQAATCUAAEw0AABMQwAATFIAAExhAABMcAAATHwAAEyOAABMnQAATKwAAEy7AABMygAATNkAAEzoAABM9wAATQwAAE0NAABNFQAATSEAAE01AABNRAAATVMAAE1iAABNZgAATXUAAE2EAABNkwAATaIAAE2xAABNvQAATc8AAE3eAABN3wAATe4AAE39AABODAAAThsAAE4qAABOOQAATk4AAE5PAABOVwAATmMAAE53AABOhgAATpUAAE6kAABOqAAATrcAAE7GAABO1QAATuQAAE7zAABO/wAATxEAAE8gAABPLwAATz4AAE9NAABPXAAAT2sAAE96AABPjwAAT5AAAE+YAABPpAAAT7gAAE/HAABP1gAAT+UAAE/pAABP+AAAUAcAAFAWAABQJQAAUDQAAFBAAABQUgAAUGEAAFBwAABQfwAAUI4AAFCdAABQrAAAULsAAFDQAABQ0QAAUNkAAFDlAABQ+QAAUQgAAFEXAABRJgAAUSoAAFE5AABRSAAAUVcAAFFmAABRdQAAUYEAAFGTAABRogAAUbEAAFHAAABRzwAAUd4AAFHtAABR/AAAUhEAAFISAABSGgAAUiYAAFI6AABSSQAAUlgAAFJnAABSawAAUnoAAFKJAABSmAAAUqcAAFK2AABSwgAAUtQAAFLjAABS8gAAUwEAAFMQAABTHwAAUy4AAFM9AABTUgAAU1MAAFNbAABTZwAAU3sAAFOKAABTmQAAU6gAAFOsAABTuwAAU8oAAFPZAABT6AAAU/cAAFQDAABUFQAAVCQAAFQzAABUQgAAVFEAAFRgAABUbwAAVH4AAFSTAABUlAAAVJwAAFSoAABUvAAAVMsAAFTaAABU6QAAVO0AAFT8AABVCwAAVRoAAFUpAABVOAAAVUQAAFVWAABVZQAAVXQAAFWDAABVkgAAVaEAAFWwAABVvwAAVdQAAFXVAABV3QAAVekAAFX9AABWDAAAVhsAAFYqAABWLgAAVj0AAFZMAABWWwAAVmoAAFZ5AABWhQAAVpcAAFamAABWtQAAVsQAAFbTAABW4gAAVvEAAFcAAABXFQAAVxYAAFceAABXKgAAVz4AAFdNAABXXAAAV2sAAFdvAABXfgAAV40AAFecAABXqwAAV7oAAFfGAABX2AAAV+cAAFf2AABYBQAAWBQAAFgjAABYMgAAWEEAAFhWAABYVwAAWF8AAFhrAABYfwAAWI4AAFidAABYrAAAWLAAAFi/AABYzgAAWN0AAFjsAABY7QAAWPwAAFkIAABZGgAAWSkAAFk4AABZRwAAWVYAAFllAABZdAAAWYMAAFmGAABZiwAAWZIAAFmsAABZrQAAWbMAAFm/AABZ1QAAWeQAAFnnAABZ9gAAWgUAAFoIAABaFwAAWiYAAFopAABaOAAAWkcAAFpLAABaWgAAWmkAAFpqAABadAAAWnUAAFp2AABadwAAWowAAFqNAABalQAAWqEAAFq1AABaxAAAWtMAAFriAABa5gAAWvUAAFsEAABbEwAAWyIAAFsxAABbPQAAW08AAFteAABbbQAAW3wAAFuLAABbpQAAW6YAAFusAABbuAAAW84AAFvdAABb4AAAW+8AAFv+AABcAQAAXBAAAFwfAABcIgAAXDEAAFxAAABcRAAAXFMAAFxiAABcYwAAXHsAAFx8AABcfQAAXH4AAFx/AABcgAAAXIEAAFyCAABcgwAAXIQAAFyFAABcmgAAXJsAAFyjAABcrwAAXMMAAFzSAABc4QAAXPAAAFz0AABdAwAAXRIAAF0hAABdMAAAXT8AAF1LAABdXQAAXWwAAF17AABdigAAXZkAAF2zAABdtAAAXboAAF3GAABd3AAAXesAAF3uAABd/QAAXgwAAF4PAABeHgAAXi0AAF4wAABePwAAXk4AAF5SAABeYQAAXnAAAF5xAABedwAAXngAAF6NAABejgAAXpYAAF6iAABetgAAXsUAAF7UAABe4wAAXucAAF72AABfBQAAXxQAAF8jAABfMgAAXz4AAF9QAABfXwAAX24AAF99AABfjAAAX5sAAF+qAABfuQAAX70AAF/EAABfxQAAX+cAAF/oAABf7gAAX/oAAGAQAABgHwAAYCIAAGAxAABgQAAAYEMAAGBSAABgYQAAYGQAAGBzAABgggAAYIYAAGCVAABgpAAAYKUAAGCtAABgrgAAYK8AAGDEAABgxQAAYM0AAGDZAABg7QAAYPwAAGELAABhGgAAYR4AAGEtAABhPAAAYUsAAGFaAABhaQAAYXUAAGGHAABhlgAAYaUAAGG0AABhwwAAYcQAAGHTAABh4gAAYfEAAGIGAABiBwAAYg8AAGIbAABiLwAAYj4AAGJNAABiXAAAYmAAAGJvAABifgAAYo0AAGKcAABiqwAAYrcAAGLJAABi2AAAYucAAGL2AABjBQAAYxQAAGMjAABjMgAAYzUAAGM8AABjQwAAY10AAGNeAABjZAAAY3AAAGOGAABjlQAAY5gAAGOnAABjtgAAY7kAAGPIAABj1wAAY9oAAGPpAABj+AAAY/wAAGQLAABkGgAAZBsAAGQhAABkIgAAZDcAAGQ4AABkQAAAZEwAAGRgAABkbwAAZH4AAGSNAABkkQAAZKAAAGSvAABkvgAAZM0AAGTcAABk6AAAZPoAAGUJAABlGAAAZScAAGU2AABlRQAAZVQAAGVjAABleAAAZXkAAGWBAABljQAAZaEAAGWwAABlvwAAZc4AAGXSAABl4QAAZfAAAGX/AABmDgAAZh0AAGYpAABmOwAAZkoAAGZZAABmaAAAZncAAGaGAABmlQAAZqQAAGaoAABmsQAAZrIAAGa4AABmvwAAZtkAAGbaAABm4AAAZuwAAGcCAABnEQAAZxQAAGcjAABnMgAAZzUAAGdEAABnUwAAZ1YAAGdlAABndAAAZ3gAAGeHAABnlgAAZ5cAAGedAABnngAAZ7MAAGe0AABnvAAAZ8gAAGfcAABn6wAAZ/oAAGgJAABoDQAAaBwAAGgrAABoOgAAaEkAAGhYAABoZAAAaHYAAGiFAABolAAAaKMAAGiyAABozAAAaM0AAGjTAABo3wAAaPUAAGkEAABpBwAAaRYAAGklAABpKAAAaTcAAGlGAABpSQAAaVgAAGlnAABpawAAaXoAAGmJAABpigAAaZgAAGmZAABpmgAAaZsAAGmcAABpnQAAabIAAGmzAABpuwAAaccAAGnbAABp6gAAafkAAGoIAABqDAAAahsAAGoqAABqOQAAakgAAGpXAABqYwAAanUAAGqEAABqkwAAaqIAAGqxAABqywAAaswAAGrSAABq3gAAavQAAGsDAABrBgAAaxUAAGskAABrJwAAazYAAGtFAABrSAAAa1cAAGtmAABragAAa3kAAGuIAABriQAAa5EAAGuSAABrkwAAa6gAAGupAABrsQAAa70AAGvRAABr4AAAa+8AAGv+AABsAgAAbBEAAGwgAABsLwAAbD4AAGxNAABsWQAAbGsAAGx6AABsiQAAbJgAAGynAABstgAAbMUAAGzUAABs6QAAbOoAAGzyAABs/gAAbRIAAG0hAABtMAAAbT8AAG1DAABtUgAAbWEAAG1wAABtfwAAbY4AAG2aAABtrAAAbbsAAG3KAABt2QAAbegAAG33AABuBgAAbhUAAG4ZAABuIAAAbiEAAG4wAABuPwAAbk4AAG5jAABuZAAAbmwAAG54AABujAAAbpsAAG6qAABuuQAAbr0AAG7MAABu2wAAbuoAAG75AABvCAAAbxQAAG8mAABvNQAAb0QAAG9TAABvYgAAb3wAAG99AABvgwAAb48AAG+lAABvtAAAb7cAAG/GAABv1QAAb9gAAG/nAABv9gAAb/kAAHAIAABwFwAAcBsAAHAqAABwOQAAcDoAAHBCAABwQwAAcEQAAHBZAABwWgAAcGIAAHBuAABwggAAcJEAAHCgAABwrwAAcLMAAHDCAABw0QAAcOAAAHDvAABw/gAAcQoAAHEcAABxKwAAcToAAHFJAABxWAAAcWcAAHF2AABxhQAAcZoAAHGbAABxowAAca8AAHHDAABx0gAAceEAAHHwAABx9AAAcgMAAHISAAByIQAAcjAAAHI/AABySwAAcl0AAHJsAAByewAAcooAAHKZAAByqAAAcrcAAHLGAAByygAActEAAHLSAABy4QAAcvAAAHL/AABzFAAAcxUAAHMdAABzKQAAcz0AAHN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6AACWiQAAlpgAAJanAACWvAAAlr0AAJbFAACW0QAAluUAAJb0AACXAwAAlxIAAJcWAACXJQAAlzQAAJdDAACXUgAAl2EAAJdtAACXfwAAl44AAJedAACXrAAAl7sAAJfKAACX2QAAl+gAAJf9AACX/gAAmAYAAJgSAACYJgAAmDUAAJhEAACYUwAAmFcAAJhmAACYdQAAmIQAAJiTAACYogAAmK4AAJjAAACYzwAAmN4AAJjtAACY/AAAmQsAAJkaAACZKQAAmT4AAJk/AACZRwAAmVMAAJlnAACZdgAAmYUAAJmUAACZmAAAmacAAJm2AACZxQAAmdQAAJnjAACZ7wAAmgEAAJoQAACaHwAAmi4AAJo9AACaTAAAmlsAAJpqAACafwAAmoAAAJqIAACalAAAmqgAAJq3AACaxgAAmtUAAJrZAACa6AAAmvcAAJsGAACbFQAAmyQAAJswAACbQgAAm1EAAJtgAACbbwAAm34AAJuNAACbnAAAm6sAAJuuAACbvQAAm8wAAJvbAACb8AAAm/EAAJv5AACcBQAAnBkAAJwoAACcNwAAnEYAAJxKAACcWQAAnGgAAJx3AACchgAAnJUAAJyhAACcswAAnMIAAJzRAACc4AAAnO8AAJz+AACdDQAAnRwAAJ0gAACdJwAAnSgAAJ03AACdRgAAnVUAAJ1qAACdawAAnXMAAJ1/AACdkwAAnaIAAJ2xAACdwAAAncQAAJ3TAACd4gAAnfEAAJ4AAACeDwAAnhsAAJ4tAACePAAAnksAAJ5aAACeaQAAnngAAJ6HAACelgAAnqsAAJ6sAACetAAAnsAAAJ7UAACe4wAAnvIAAJ8BAACfBQAAnxQAAJ8jAACfMgAAn0EAAJ9QAACfXAAAn24AAJ99AACfjAAAn5sAAJ+qAACfuQAAn8gAAJ/XAACf2wAAn9wAAJ/rAACf+gAAoAkAAKAeAACgHwAAoCcAAKAzAACgRwAAoFYAAKBlAACgdAAAoHgAAKCHAACglgAAoKUAAKC0AACgwwAAoM8AAKDhAACg8AAAoP8AAKEOAAChHQAAoSwAAKE7AAChSgAAoV8AAKFgAAChaAAAoXQAAKGIAAChlwAAoaYAAKG1AAChuQAAocgAAKHXAACh5gAAofUAAKIEAACiEAAAoiIAAKIxAACiQAAAok8AAKJeAACibQAAonwAAKKLAACijgAAop0AAKKsAACiuwAAotAAAKLRAACi2QAAouUAAKL5AACjCAAAoxcAAKMmAACjKgAAozkAAKNIAACjVwAAo2YAAKN1AACjgQAAo5MAAKOiAACjsQAAo8AAAKPPAACj3gAAo+0AAKP8AACkEQAApBIAAKQaAACkJgAApDoAAKRJAACkWAAApGcAAKRrAACkegAApIkAAKSYAACkpwAApLYAAKTCAACk1AAApOMAAKTyAAClAQAApRAAAKUfAAClLgAApT0AAKVSAAClUwAApVsAAKVnAAClewAApYoAAKWZAAClqAAApawAAKW7AAClygAApdkAAKXoAACl9wAApgMAAKYVAACmJAAApjMAAKZCAACmUQAApmAAAKZvAACmfgAApoEAAKaQAACmnwAApq4AAKbDAACmxAAApswAAKbYAACm7AAApvsAAKcKAACnGQAApx0AAKcsAACnOwAAp0oAAKdZAACnaAAAp3QAAKeGAACnlQAAp6QAAKezAACnwgAAp9EAAKfgAACn7wAAqAQAAKgFAACoDQAAqBkAAKgtAACoPAAAqEsAAKhaAACoXgAAqG0AAKh8AACoiwAAqJoAAKipAACotQAAqMcAAKjWAACo5QAAqPQAAKkDAACpEgAAqSEAAKkwAACpRQAAqUYAAKlOAACpWgAAqW4AAKl9AACpjAAAqZsAAKmfAACprgAAqb0AAKnMAACp2wAAqeoAAKn2AACqCAAAqhcAAKomAACqNQAAqkQAAKpTAACqYgAAqnEAAKqGAACqhwAAqo8AAKqbAACqrwAAqr4AAKrNAACq3AAAquAAAKrvAACq/gAAqw0AAKscAACrKwAAqzcAAKtJAACrWAAAq2cAAKt2AACrhQAAq5QAAKujAACrsgAAq8cAAKvIAACr0AAAq9wAAKvwAACr/wAArA4AAKwdAACsIQAArDAAAKw/AACsTgAArF0AAKxsAACseAAArIoAAKyZAACsqAAArLcAAKzGAACs1QAArOQAAKzzAACtCAAArQkAAK0RAACtHQAArTEAAK1AAACtTwAArV4AAK1iAACtcQAArYAAAK2PAACtngAAra0AAK25AACtywAArdoAAK3pAACt+AAArgcAAK4WAACuJQAArjQAAK5JAACuSgAArlIAAK5eAACucgAAroEAAK6QAACunwAArqMAAK6yAACuwQAArtAAAK7fAACu7gAArvoAAK8MAACvGwAAryoAAK85AACvSAAAr2oAAK9rAACvcQAAr30AAK+TAACvogAAr6UAAK+0AACvwwAAr8YAAK/VAACv5AAAr+cAAK/2AACwBQAAsAkAALAYAACwJwAAsCgAALBaAACwWwAAsFwAALBdAACwXgAAsF8AALBgAACwYQAAsGIAALBjAACwZAAAsGUAALBmAACwZwAAsGgAALBpAACwagAAsGsAALBsAACwbQAAsG4AALCDAACwhAAAsIwAALCYAACwrAAAsLsAALDKAACw2QAAsN0AALDsAACw+wAAsQoAALEZAACxKAAAsTQAALFGAACxVQAAsWQAALFzAACxggAAsZEAALGgAACxrwAAscQAALHFAACxzQAAsdkAALHtAACx/AAAsgsAALIaAACyHgAAsi0AALI8AACySwAAsloAALJpAACydQAAsocAALKWAACypQAAsrQAALLDAACy0gAAsuEAALLwAACzBQAAswYAALMOAACzGgAAsy4AALM9AACzTAAAs1sAALNfAACzbgAAs30AALOMAACzmwAAs6oAALO2AACzyAAAs9cAALPmAACz9QAAtAQAALQTAAC0IgAAtDEAALRGAAC0RwAAtE8AALRbAAC0bwAAtH4AALSNAAC0nAAAtKAAALSvAAC0vgAAtM0AALTcAAC06wAAtPcAALUJAAC1GAAAtScAALU2AAC1RQAAtVQAALVjAAC1cgAAtYcAALWIAAC1kAAAtZwAALWwAAC1vwAAtc4AALXdAAC14QAAtfAAALX/AAC2DgAAth0AALYsAAC2OAAAtkoAALZZAAC2aAAAtncAALaGAAC2lQAAtqQAALazAAC2yAAAtskAALbRAAC23QAAtvEAALcAAAC3DwAAtx4AALciAAC3MQAAt0AAALdPAAC3XgAAt20AALd5AAC3iwAAt5oAALepAAC3uAAAt8cAALfWAAC35QAAt/QAALgJAAC4CgAAuBIAALgeAAC4MgAAuEEAALhQAAC4XwAAuGMAALhyAAC4gQAAuJAAALifAAC4rgAAuLoAALjMAAC42wAAuOoAALj5AAC5CAAAuSIAALkjAAC5KQAAuTUAALlLAAC5WgAAuV0AALlsAAC5ewAAuX4AALmNAAC5nAAAuZ8AALmuAAC5vQAAucEAALn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BAADRUAAA0V8AANFuAADRfQAA0YwAANGhAADRogAA0aoAANG2AADRygAA0dkAANHoAADR9wAA0fsAANIKAADSGQAA0igAANI3AADSRgAA0lIAANJkAADScwAA0oIAANKRAADSoAAA0q8AANK+AADSzQAA0uIAANLjAADS6wAA0vcAANMLAADTGgAA0ykAANM4AADTPAAA00sAANNaAADTaQAA03gAANOHAADTkwAA06UAANO0AADTwwAA09IAANPhAADT8AAA0/8AANQOAADUIwAA1CQAANQsAADUOAAA1EwAANRbAADUagAA1HkAANR9AADUjAAA1JsAANSqAADUuQAA1MgAANTUAADU5gAA1PUAANUEAADVEwAA1SIAANUxAADVQAAA1U8AANVkAADVZQAA1W0AANV5AADVjQAA1ZwAANWrAADVugAA1b4AANXNAADV3AAA1esAANX6AADWCQAA1hUAANYnAADWNgAA1kUAANZUAADWYwAA1nIAANaBAADWkAAA1pMAANaiAADWsQAA1sAAANbVAADW1gAA1t4AANbqAADW/gAA1w0AANccAADXKwAA1y8AANc+AADXTQAA11wAANdrAADXegAA14YAANeYAADXpwAA17YAANfFAADX1AAA1+MAANfyAADYAQAA2BYAANgXAADYHwAA2CsAANg/AADYTgAA2F0AANhsAADYcAAA2H8AANiOAADYnQAA2KwAANi7AADYxwAA2NkAANjoAADY9wAA2QYAANkVAADZJAAA2TMAANlCAADZVwAA2VgAANlgAADZbAAA2YAAANmPAADZngAA2a0AANmxAADZwAAA2c8AANneAADZ7QAA2fwAANoIAADaGgAA2ikAANo4AADaRwAA2lYAANplAADadAAA2oMAANqYAADamQAA2qEAANqtAADawQAA2tAAANrfAADa7gAA2vIAANsBAADbEAAA2x8AANsuAADbPQAA20kAANtbAADbagAA23kAANuIAADblwAA26YAANu1AADbxAAA29kAANvaAADb4gAA2+4AANwCAADcEQAA3CAAANwvAADcMwAA3EIAANxRAADcYAAA3G8AANx+AADcigAA3JwAANyrAADcugAA3MkAANzYAADc8gAA3PMAANz5AADdBQAA3RsAAN0qAADdLQAA3TwAAN1LAADdTgAA3V0AAN1sAADdbwAA3X4AAN2NAADdkQAA3aAAAN2vAADdsAAA3b4AAN2/AADdwAAA3cEAAN3WAADd1wAA3d8AAN3rAADd/wAA3g4AAN4dAADeLAAA3jAAAN4/AADeTgAA3l0AAN5sAADeewAA3ocAAN6ZAADeqAAA3rcAAN7GAADe1QAA3uQAAN7zAADfAgAA3xcAAN8YAADfIAAA3ywAAN9AAADfTwAA314AAN9tAADfcQAA34AAAN+PAADfngAA360AAN+8AADfyAAA39oAAN/pAADf+AAA4AcAAOAWAADgJQAA4DQAAOBDAADgWAAA4FkAAOBhAADgbQAA4IEAAOCQAADgnwAA4K4AAOCyAADgwQAA4NAAAODfAADg7gAA4P0AAOEJAADhGwAA4SoAAOE5AADhSAAA4VcAAOFmAADhdQAA4YQAAOGZAADhmgAA4aIAAOGuAADhwgAA4dEAAOHgAADh7wAA4fMAAOICAADiEQAA4iAAAOIvAADiPgAA4koAAOJcAADiawAA4noAAOKJAADimAAA4qcAAOK2AADixQAA4toAAOLbAADi4wAA4u8AAOMDAADjEgAA4yEAAOMwAADjNAAA40MAAONSAADjYQAA43AAAON/AADjiwAA450AAOOsAADjuwAA48oAAOPZAADj6AAA4/cAAOQGAADkCQAA5BgAAOQnAADkNgAA5EsAAORMAADkVAAA5GAAAOR0AADkgwAA5JIAAOShAADkpQAA5LQAAOTDAADk0gAA5OEAAOTwAADk/AAA5Q4AAOUdAADlLAAA5TsAAOVKAADlWQAA5WgAAOV3AADljAAA5Y0AAOWVAADloQAA5bUAAOXEAADl0wAA5eIAAOXmAADl9QAA5gQAAOYTAADmIgAA5jEAAOY9AADmTwAA5l4AAOZtAADmfAAA5osAAOalAADmpgAA5qwAAOa4AADmzgAA5t0AAObgAADm7wAA5v4AAOcBAADnEAAA5x8AAOciAADnMQAA50AAAOdEAADnUwAA52IAAOdjAADndwAA53gAAOd5AADnegAA53sAAOd8AADnfQAA55IAAOeTAADnmwAA56cAAOe7AADnygAA59kAAOfoAADn7AAA5/sAAOgKAADoGQAA6CgAAOg3AADoQwAA6FUAAOhkAADocwAA6IIAAOiRAADooAAA6K8AAOi+AADo0wAA6NQAAOj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lAAEL6AABC/cAAQwGAAEMCgABDBkAAQwoAAEMKQABDEUAAQxGAAEMRwABDEgAAQxJAAEMSgABDEsAAQxMAAEMTQABDE4AAQxjAAEMZAABDGwAAQx4AAEMjAABDJsAAQyqAAEMuQABDL0AAQzMAAEM2wABDOoAAQz5AAENCAABDRQAAQ0mAAENNQABDUQAAQ1TAAENYgABDXEAAQ2AAAENjwABDaQAAQ2lAAENrQABDbkAAQ3NAAEN3AABDesAAQ36AAEN/gABDg0AAQ4cAAEOKwABDjoAAQ5JAAEOVQABDmcAAQ52AAEOhQABDpQAAQ6jAAEOvQABDr4AAQ7EAAEO0AABDuYAAQ71AAEO+AABDwcAAQ8WAAEPGgABDyEAAQ8iAAEPIwABDyQAAQ8zAAEPQgABD0UAAQ9UAAEPYwABD2cAAQ92AAEPhQABD4YAAQ+aAAEPmwABD5wAAQ+dAAEPngABD58AAQ+gAAEPoQABD7YAAQ+3AAEPvwABD8sAAQ/fAAEP7gABD/0AARAMAAEQEAABEB8AARAuAAEQPQABEEwAARBbAAEQZwABEHkAARCIAAEQlwABEKYAARC1AAEQxAABENMAARDiAAEQ9wABEPgAAREAAAERDAABESAAAREvAAERPgABEU0AARFRAAERYAABEW8AARF+AAERjQABEZwAARGoAAERugABEckAARHYAAER5wABEfYAARIFAAESFAABEiMAARI4AAESOQABEkEAARJNAAESYQABEnAAARJ/AAESjgABEpIAARKhAAESsAABEr8AARLOAAES3QABEukAARL7AAETCgABExkAARMoAAETNwABE0YAARNVAAETZAABE3kAARN6AAETggABE44AAROiAAETsQABE8AAARPPAAET0wABE+IAARPxAAEUAAABFA8AARQeAAEUKgABFDwAARRLAAEUWgABFGkAARR4AAEUhwABFJYAARSlAAEUugABFLsAARTDAAEUzwABFOMAARTyAAEVAQABFRAAARUUAAEVIwABFTIAARVBAAEVUAABFV8AARVrAAEVfQABFYwAARWbAAEVqgABFbkAARXIAAEV1wABFeYAARX7AAEV/AABFgQAARYQAAEWJAABFjMAARZCAAEWUQABFlUAARZkAAEWcwABFoIAARaRAAEWoAABFqwAARa+AAEWzQABFtwAARbrAAEW+gABFwkAARcYAAEXJwABFzwAARc9AAEXRQABF1EAARdlAAEXdAABF4MAAReSAAEXlgABF6UAARe0AAEXwwABF9IAARfhAAEX7QABF/8AARgOAAEYHQABGCwAARg7AAEYSgABGFkAARhoAAEYfQABGH4AARiGAAEYkgABGKYAARi1AAEYxAABGNMAARjXAAEY5gABGPUAARkEAAEZEwABGSIAARkuAAEZQAABGU8AARleAAEZbQABGXwAARmLAAEZmgABGakAARmsAAEZuwABGcoAARnZAAEZ7gABGe8AARn3AAEaAwABGhcAARomAAEaNQABGkQAARpIAAEaVwABGmYAARp1AAEahAABGpMAARqfAAEasQABGsAAARrPAAEa3gABGu0AARsHAAEbCAABGw4AARsaAAEbMAABGz8AARtCAAEbUQABG2AAARtjAAEbcgABG4EAARuEAAEbkwABG6IAARumAAEbtQABG8QAARvFAAEb4QABG+IAARvjAAEb5AABG+UAARvmAAEb5wABG+gAARvpAAEb6gABG+sAARwAAAEcAQABHAkAARwVAAEcKQABHDgAARxHAAEcVgABHFoAARxpAAEceAABHIcAARyWAAEcpQABHLEAARzDAAEc0gABHOEAARzwAAEc/wABHQ4AAR0dAAEdLAABHUEAAR1CAAEdSgABHVYAAR1qAAEdeQABHYgAAR2XAAEdmwABHaoAAR25AAEdyAABHdcAAR3mAAEd8gABHgQAAR4TAAEeIgABHjEAAR5AAAEeTwABHl4AAR5tAAEeggABHoMAAR6LAAEelwABHqsAAR66AAEeyQABHtgAAR7cAAEe6wABHvoAAR8JAAEfGAABHycAAR8zAAEfRQABH1QAAR9jAAEfcgABH4EAAR+QAAEfnwABH64AAR/DAAEfxAABH8wAAR/YAAEf7AABH/sAASAKAAEgGQABIB0AASAsAAEgOwABIEoAASBZAAEgaAABIHQAASCGAAEglQABIKQAASCzAAEgwgABINEAASDgAAEg7wABIQQAASEFAAEhDQABIRkAASEtAAEhPAABIUsAASFaAAEhXgABIW0AASF8AAEhiwABIZoAASGpAAEhtQABIccAASHWAAEh5QABIfQAASIDAAEiEgABIiEAASIwAAEiRQABIkYAASJOAAEiWgABIm4AASJ9AAEijAABIpsAASKfAAEirgABIr0AASLMAAEi2wABIuoAASL2AAEjCAABIxcAASMmAAEjNQABI0QAASNTAAEjYgABI3EAASOGAAEjhwABI48AASObAAEjrwABI74AASPNAAEj3AABI+AAASPvAAEj/gABJA0AASQcAAEkKwABJDcAASRJAAEkWAABJGcAASR2AAEkhQABJJQAASSjAAEksgABJMcAASTIAAEk0AABJNwAASTwAAEk/wABJQ4AASUdAAElIQABJTAAASU/AAElTgABJV0AASVsAAEleAABJYoAASWZAAElqAABJbcAASXGAAEl1QABJeQAASXzAAEmCAABJgkAASYRAAEmHQABJjEAASZAAAEmTwABJl4AASZiAAEmcQABJoAAASaPAAEmngABJq0AASa5AAEmywABJtoAASbpAAEm+AABJwcAAScWAAEnJQABJzQAASdJAAEnSgABJ1IAASdeAAEncgABJ4EAASeQAAEnnwABJ6MAASeyAAEnwQABJ9AAASffAAEn7gABJ/oAASgMAAEoGwABKCoAASg5AAEoSAABKFcAAShmAAEodQABKIoAASiLAAEokwABKJ8AASizAAEowgABKNEAASjgAAEo5AABKPMAASkCAAEpEQABKSAAASkvAAEpOwABKU0AASlcAAEpawABKXoAASmJAAEpmAABKacAASm2AAEpywABKcwAASnUAAEp4AABKfQAASoDAAEqEgABKiEAASolAAEqNAABKkMAASpSAAEqYQABKnAAASp8AAEqjgABKp0AASqsAAEquwABKsoAASrZAAEq6AABKvcAASsMAAErDQABKxUAASshAAErNQABK0QAAStTAAErYgABK2YAASt1AAErhAABK5MAASuiAAErsQABK70AASvPAAEr3gABK+0AASv8AAEsCwABLAwAASwbAAEsKgABLDkAASw8AAEsSwABLFoAASxpAAEsfgABLH8AASyHAAEskwABLKcAASy2AAEsxQABLNQAASzYAAEs5wABLPYAAS0FAAEtFAABLSMAAS0vAAEtQQABLVAAAS1fAAEtbgABLX0AAS2MAAEtmwABLaoAAS2/AAEtwAABLcgAAS3UAAEt6AABLfcAAS4GAAEuFQABLhkAAS4oAAEuNwABLkYAAS5VAAEuZAABLnAAAS6CAAEukQABLqAAAS6vAAEuvgABLs0AAS7cAAEu6wABLwAAAS8BAAEvCQABLxUAAS8pAAEvOAABL0cAAS9WAAEvWgABL2kAAS94AAEvhwABL5YAAS+lAAEvsQABL8MAAS/SAAEv4QABL/AAAS//AAEwDgABMB0AATAsAAEwQQABMEIAATBKAAEwVgABMGoAATB5AAEwiAABMJcAATCbAAEwqgABMLkAATDIAAEw1wABMOYAATDyAAExBAABMRMAATEiAAExMQABMUAAATFPAAExXgABMW0AATGCAAExgwABMYsAATGXAAExqwABMboAATHJAAEx2AABMdwAATHrAAEx+gABMgkAATIYAAEyJwABMjMAATJFAAEyVAABMmMAATJyAAEygQABMpAAATKfAAEyrgABMsMAATLEAAEyzAABMtgAATLsAAEy+wABMwoAATMZAAEzHQABMywAATM7AAEzSgABM1kAATNoAAEzdAABM4YAATOVAAEzpAABM7MAATPCAAEz0QABM+AAATPvAAE0BAABNAUAATQNAAE0GQABNC0AATQ8AAE0SwABNFoAATReAAE0bQABNHwAATSLAAE0mgABNKkAATS1AAE0xwABNNYAATTlAAE09AABNQMAATUSAAE1IQABNTAAATVFAAE1RgABNU4AATVaAAE1bgABNX0AATWMAAE1mwABNZ8AATWuAAE1vQABNcwAATXbAAE16gABNfYAATYIAAE2FwABNiYAATY1AAE2RAABNlMAATZiAAE2cQABNoYAATaHAAE2jwABNpsAATavAAE2vgABNs0AATbcAAE24AABNu8AATb+AAE3DQABNxwAATcrAAE3NwABN0kAATdYAAE3ZwABN3YAATeFAAE3lAABN6MAATeyAAE3xwABN8gAATfQAAE33AABN/AAATf/AAE4DgABOB0AATghAAE4MAABOD8AAThOAAE4XQABOGwAATh4AAE4igABOJkAATioAAE4twABOMYAATjVAAE45AABOPMAATkIAAE5CQABOREAATkdAAE5MQABOUAAATlPAAE5XgABOWIAATlxAAE5gAABOY8AATmeAAE5rQABObkAATnLAAE52gABOekAATn4AAE6BwABOiEAAToiAAE6KAABOjQAATpKAAE6WQABOlwAATprAAE6egABOn0AATqMAAE6mwABOp4AATqtAAE6vAABOsAAATrPAAE63gABOt8AATrpAAE66gABOusAATrsAAE7AQABOwIAATsKAAE7FgABOyoAATs5AAE7SAABO1cAATtbAAE7agABO3kAATuIAAE7lwABO6YAATuyAAE7xAABO9MAATviAAE78QABPAAAATwPAAE8HgABPC0AATxCAAE8QwABPEsAATxXAAE8awABPHoAATyJAAE8mAABPJwAATyrAAE8ugABPMkAATzYAAE85wABPPMAAT0FAAE9FAABPSMAAT0yAAE9QQABPVAAAT1fAAE9bgABPYMAAT2EAAE9jAABPZgAAT2sAAE9uwABPcoAAT3ZAAE93QABPewAAT37AAE+CgABPhkAAT4oAAE+NAABPkYAAT5VAAE+ZAABPnMAAT6CAAE+kQABPqAAAT6vAAE+swABProAAT67AAE+ygABPtkAAT7oAAE+6wABPvAAAT73AAE/EQABPxIAAT8YAAE/JAABPzoAAT9JAAE/TAABP1sAAT9qAAE/bQABP3wAAT+LAAE/jgABP50AAT+sAAE/sAABP78AAT/OAAE/zwABP9kAAT/aAAE/2wABP/AAAT/xAAE/+QABQAUAAUAZAAFAKAABQDcAAUBGAAFASgABQFkAAUBoAAFAdwABQIYAAUCVAAFAoQABQLMAAUDCAAFA0QABQOAAAUDvAAFA/gABQQ0AAUEcAAFBMQABQTIAAUE6AAFBRgABQVoAAUFpAAFBeAABQYcAAUGLAAFBmgABQakAAUG4AAFBxwABQdYAAUHiAAFB9AABQgMAAUISAAFCIQABQjAAAUI/AAFCTgABQl0AAUJyAAFCcwABQnsAAUKHAAFCmwABQqoAAUK5AAFCyAABQswAAULbAAFC6gABQvkAAUMIAAFDFwABQyMAAUM1AAFDRAABQ1MAAUNiAAFDcQABQ4AAAUOPAAFDngABQ7MAAUO0AAFDvAABQ8gAAUPcAAFD6wABQ/oAAUQJAAFEDQABRBwAAUQrAAFEOgABREkAAURYAAFEZAABRHYAAUSFAAFElAABRKMAAUSyAAFEwQABRNAAAUTfAAFE4wABROQAAUTzAAFFAgABRREAAUUmAAFFJwABRS8AAUU7AAFFTwABRV4AAUVtAAFFfAABRYAAAUWPAAFFngABRa0AAUW8AAFFywABRdcAAUXpAAFF+AABRgcAAUYWAAFGJQABRjQAAUZ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uAAF0/QABdRIAAXUTAAF1GwABdScAAXU7AAF1SgABdVkAAXVoAAF1bAABdXsAAXWKAAF1mQABdagAAXW3AAF1wwABddUAAXXkAAF18wABdgIAAXYRAAF2IAABdi8AAXY+AAF2QQABdlAAAXZfAAF2bgABdoMAAXaEAAF2jAABdpgAAXasAAF2uwABdsoAAXbZAAF23QABduwAAXb7AAF3CgABdxkAAXcoAAF3NAABd0YAAXdVAAF3ZAABd3MAAXeCAAF3kQABd6AAAXevAAF3xAABd8UAAXfNAAF32QABd+0AAXf8AAF4CwABeBoAAXgeAAF4LQABeDwAAXhLAAF4WgABeGkAAXh1AAF4hwABeJYAAXilAAF4tAABeMMAAXjlAAF45gABeOwAAXj4AAF5DgABeR0AAXkgAAF5LwABeT4AAXlBAAF5UAABeV8AAXliAAF5cQABeYAAAXmEAAF5kwABeaIAAXmjAAF5rQABea4AAXnDAAF5xAABecwAAXnYAAF57AABefsAAXoKAAF6GQABeh0AAXosAAF6OwABekoAAXpZAAF6aAABenQAAXqGAAF6lQABeqQAAXqzAAF6wgABetEAAXrgAAF67wABewQAAXsFAAF7DQABexkAAXstAAF7PAABe0sAAXtaAAF7XgABe20AAXt8AAF7iwABe5oAAXupAAF7tQABe8cAAXvWAAF75QABe/QAAXwDAAF8EgABfCEAAXwwAAF8RQABfEYAAXxOAAF8WgABfG4AAXx9AAF8jAABfJsAAXyfAAF8rgABfL0AAXzMAAF82wABfOoAAXz2AAF9CAABfRcAAX0mAAF9NQABfUQAAX1TAAF9YgABfXEAAX10AAF9eQABfYAAAX2aAAF9mwABfaEAAX2tAAF9wwABfdIAAX3VAAF95AABffMAAX32AAF+BQABfhQAAX4XAAF+JgABfjUAAX45AAF+SAABflcAAX5YAAF+XgABfl8AAX50AAF+dQABfn0AAX6JAAF+nQABfqwAAX67AAF+ygABfs4AAX7dAAF+7AABfvsAAX8KAAF/GQABfyUAAX83AAF/RgABf1UAAX9kAAF/cwABf4IAAX+RAAF/oAABf7UAAX+2AAF/vgABf8oAAX/eAAF/7QABf/wAAYALAAGADwABgB4AAYAtAAGAPAABgEsAAYBaAAGAZgABgHgAAYCHAAGAlgABgKUAAYC0AAGAwwABgNIAAYDhAAGA5QABgOYAAYDtAAGBBwABgQgAAYEOAAGBGgABgTAAAYE/AAGBQgABgVEAAYFgAAGBYwABgXIAAYGBAAGBhAABgZMAAYGiAAGBpgABgbUAAYHEAAGBxQABgckAAYHNAAGBzgABgd0AAYHsAAGB+wABghAAAYIRAAGCGQABgiUAAYI5AAGCSAABglcAAYJmAAGCagABgnkAAYKIAAGClwABgqYAAYK1AAGCwQABgtMAAYLiAAGC8QABgwAAAYMPAAGDHgABgy0AAYM8AAGDUQABg1IAAYNaAAGDZgABg3oAAYOJAAGDmAABg6cAAYOrAAGDugABg8kAAYPYAAGD5wABg/YAAYQCAAGEFAABhCMAAYQyAAGEQQABhFAAAYRfAAGEbgABhH0AAYSSAAGEkwABhJsAAYSnAAGEuwABhMoAAYTZAAGE6AABhOwAAYT7AAGFCgABhRkAAYUoAAGFNwABhUMAAYVVAAGFZAABhXMAAYWCAAGFkQABhaAAAYWvAAGFvgABhdMAAYXUAAGF3AABhegAAYX8AAGGCwABhhoAAYYpAAGGLQABhjwAAYZLAAGGWgABhmkAAYZ4AAGGhAABhpYAAYalAAGGtAABhsMAAYbSAAGG4QABhvAAAYb/AAGHFAABhxUAAYcdAAGHKQABhz0AAYdMAAGHWwABh2oAAYduAAGHfQABh4wAAYebAAGHqgABh7kAAYfFAAGH1wABh+YAAYf1AAGIBAABiBMAAYgiAAGIMQABiEAAAYhVAAGIVgABiF4AAYhqAAGIfgABiI0AAYicAAGIqwABiK8AAYi+AAGIzQABiNwAAYjrAAGI+gABiQYAAYkYAAGJJwABiTYAAYlFAAGJVAABiWMAAYlyAAGJgQABiZYAAYmXAAGJnwABiasAAYm/AAGJzgABid0AAYnsAAGJ8AABif8AAYoOAAGKHQABiiwAAYo7AAGKRwABilkAAYpoAAGKdwABioYAAYqVAAGKpAABirMAAYrCAAGK1wABitgAAYrgAAGK7AABiwAAAYsPAAGLHgABiy0AAYsxAAGLQAABi08AAYteAAGLbQABi3wAAYuIAAGLmgABi6kAAYu4AAGLxwABi9YAAYvlAAGL9AABjAMAAYwGAAGMDAABjBsAAYwqAAGMOQABjE4AAYxPAAGMVwABjGMAAYx3AAGMhgABjJUAAYykAAGMqAABjLcAAYzGAAGM1QABjOQAAYzzAAGM/wABjREAAY0gAAGNLwABjT4AAY1NAAGNXAABjWsAAY16AAGNjwABjZAAAY2YAAGNpAABjbgAAY3HAAGN1gABjeUAAY3pAAGN+AABjgcAAY4WAAGOJQABjjQAAY5AAAGOUgABjmEAAY5wAAGOfwABjo4AAY6dAAGOrAABjrsAAY7QAAGO0QABjtkAAY7lAAGO+QABjwgAAY8XAAGPJgABjyoAAY85AAGPSAABj1cAAY9mAAGPdQABj4EAAY+TAAGPogABj7EAAY/AAAGPzwABj94AAY/tAAGP/AABkBEAAZASAAGQGgABkCYAAZA6AAGQSQABkFgAAZBnAAGQawABkHoAAZCJAAGQmAABkKcAAZC2AAGQwgABkNQAAZDjAAGQ8gABkQEAAZEQAAGRHwABkS4AAZE9AAGRUgABkVMAAZFbAAGRZwABkXsAAZGKAAGRmQABkagAAZGsAAGRuwABkcoAAZHZAAGR6AABkfcAAZIDAAGSFQABkiQAAZIzAAGSQgABklEAAZJgAAGSbwABkn4AAZKTAAGSlAABkpwAAZKoAAGSvAABkssAAZLaAAGS6QABku0AAZL8AAGTCwABkxoAAZMpAAGTOAABk0QAAZNWAAGTZQABk3QAAZODAAGTkgABk6EAAZOwAAGTvwABk9QAAZPVAAGT3QABk+kAAZP9AAGUDAABlBsAAZQqAAGULgABlD0AAZRMAAGUWwABlGoAAZR5AAGUhQABlJcAAZSmAAGUtQABlMQAAZTTAAGU4gABlPEAAZUAAAGVFQABlRYAAZUeAAGVKgABlT4AAZVNAAGVXAABlWsAAZVvAAGVfgABlY0AAZWcAAGVqwABlboAAZXGAAGV2AABlecAAZX2AAGWBQABlhQAAZYjAAGWMgABlkEAAZZWAAGWVwABll8AAZZrAAGWfwABlo4AAZadAAGWrAABlrAAAZa/AAGWzgABlt0AAZbsAAGW+wABlwcAAZcZAAGXKAABlzcAAZdGAAGXVQABl2QAAZdzAAGXggABl5cAAZeYAAGXoAABl6wAAZfAAAGXzwABl94AAZftAAGX8QABmAAAAZgPAAGYHgABmC0AAZg8AAGYSAABmFoAAZhpAAGYeAABmIcAAZiWAAGYpQABmLQAAZjDAAGY2AABmNkAAZjhAAGY7QABmQEAAZkQAAGZHwABmS4AAZkyAAGZQQABmVAAAZlfAAGZbgABmX0AAZmJAAGZmwABmaoAAZm5AAGZyAABmdcAAZnmAAGZ9QABmgQAAZoZAAGaGgABmiIAAZouAAGaQgABmlEAAZpgAAGabwABmnMAAZqCAAGakQABmqAAAZqvAAGavgABmsoAAZrcAAGa6wABmvoAAZsJAAGbGAABmycAAZs2AAGbRQABm0gAAZtXAAGbZgABm3UAAZuKAAGbiwABm5MAAZufAAGbswABm8IAAZvRAAGb4AABm+QAAZvzAAGcAgABnBEAAZwgAAGcLwABnDsAAZxNAAGcXAABnGsAAZx6AAGciQABnJgAAZynAAGctgABnMsAAZzMAAGc1AABnOAAAZz0AAGdAwABnRIAAZ0hAAGdJQABnTQAAZ1DAAGdUgABnWEAAZ1wAAGdfAABnY4AAZ2dAAGdrAABnbsAAZ3KAAGd2QABnegAAZ33AAGd+gABngkAAZ4YAAGeJwABnjwAAZ49AAGeRQABnlEAAZ5lAAGedAABnoMAAZ6SAAGelgABnqUAAZ60AAGewwABntIAAZ7hAAGe7QABnv8AAZ8OAAGfHQABnywAAZ87AAGfSgABn1kAAZ9oAAGffQABn34AAZ+GAAGfkgABn6YAAZ+1AAGfxAABn9MAAZ/XAAGf5gABn/UAAaAEAAGgEwABoCIAAaAuAAGgQAABoE8AAaBeAAGgbQABoHwAAaCLAAGgmgABoKkAAaC+AAGgvwABoMcAAaDTAAGg5wABoPYAAaEFAAGhFAABoRgAAaEnAAGhNgABoUUAAaFUAAGhYwABoW8AAaGBAAGhkAABoZ8AAaGuAAGhvQABocwAAaHbAAGh6gABof8AAaIAAAGiCAABohQAAaIoAAGiNwABokYAAaJVAAGiWQABomgAAaJ3AAGihgABopUAAaKkAAGisAABosIAAaLRAAGi4AABou8AAaL+AAGjDQABoxwAAaMrAAGjQAABo0EAAaNJAAGjVQABo2kAAaN4AAGjhwABo5YAAaOaAAGjqQABo7gAAaPHAAGj1gABo+UAAaPxAAGkAwABpBIAAaQTAAGkIgABpDEAAaRAAAGkTwABpF4AAaRtAAGkggABpIMAAaSLAAGklwABpKsAAaS6AAGkyQABpNgAAaTcAAGk6wABpPoAAaUJAAGlGAABpScAAaUzAAGlRQABpVQAAaVjAAGlcgABpYEAAaWQAAGlnwABpa4AAaXDAAGlxAABpcwAAaXYAAGl7AABpfsAAaYKAAGmGQABph0AAaYsAAGmOwABpkoAAaZZAAGmaAABpnQAAaaGAAGmlQABpqQAAaazAAGmwgABptEAAabgAAGm7wABpwQAAacFAAGnDQABpxkAAactAAGnPAABp0sAAadaAAGnXgABp20AAad8AAGniwABp5oAAaepAAGntQABp8cAAafWAAGn5QABp/QAAagDAAGoHQABqB4AAagkAAGoMAABqEYAAahVAAGoWAABqGcAAah2AAGoegABqIAAAaiBAAGoggABqIMAAaiSAAGooQABqKQAAaizAAGowgABqMYAAajVAAGo5AABqOUAAajxAAGo8gABqPMAAaj0AAGpCQABqQoAAakSAAGpHgABqTIAAalBAAGpUAABqV8AAaljAAGpcgABqYEAAamQAAGpnwABqa4AAam6AAGpzAABqdsAAanqAAGp+QABqggAAaoXAAGqJgABqjUAAapKAAGqSwABqlMAAapfAAGqcwABqoIAAaqRAAGqoAABqqQAAaqzAAGqwgABqtEAAargAAGq7wABqvsAAasNAAGrHAABqysAAas6AAGrSQABq1gAAatnAAGrdgABq4sAAauMAAGrlAABq6AAAau0AAGrwwABq9IAAavhAAGr5QABq/QAAawDAAGsEgABrCEAAawwAAGsPAABrE4AAaxdAAGsbAABrHsAAayKAAGsmQABrKgAAay3AAGszAABrM0AAazVAAGs4QABrPUAAa0EAAGtEwABrSIAAa0mAAGtNQABrUQAAa1TAAGtYgABrXEAAa19AAGtjwABrZ4AAa2tAAGtvAABrcsAAa3aAAGt6QABrfgAAa37AAGuCgABrhkAAa4oAAGuPQABrj4AAa5GAAGuUgABrmYAAa51AAGuhAABrpMAAa6XAAGupgABrrUAAa7EAAGu0wABruIAAa7uAAGvAAABrw8AAa8eAAGvLQABrzwAAa9LAAGvWgABr2kAAa9+AAGvfwABr4cAAa+TAAGvpwABr7YAAa/FAAGv1AABr9gAAa/nAAGv9gABsAUAAbAUAAGwIwABsC8AAbBBAAGwUAABsF8AAbB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AAH8AAACAAAAAgQAAAIIAAACDAAAAhAAAAIUAAACGAAAAhwAAAIgAAACJAAAAigAAAIsAAACMAAAAjQAAAI4AAACPAAAAkAAAAJEAAACSAAAAkwAAAJQAAACVAAAAlgAAAJcAAACYAAAAmQAAAJoAAACbAAAAnAAAAJ0AAACeAAAAn4A3gQwSgQfYgQ7QgQohgQ4KgQemgR3bgQSAgRIxgQKVgSMtgQU2gMGBCUuBFUSBBkeBAtmBD7mBFMmBFjOBBgSBBQ6BG1iBFPiBCdeBHZWBB3uBBamBEXiBGZmBGj+BCE+BCMCBAw6BCO2BAiKBBK+BHJeBCJeBGOCBA7iBILGBAS+BCAeBGHuBHTiBEzKBHBmAVV8QGlBlcnNpc3RlZEdyb3VwVjJEaXNjdXNzaW9uXxAQUGVuZGluZ1JlcGxpZWRUb18QOVBlcnNpc3RlZEV4cGlyYXRpb25Gb3JSZWNlaXZlZE1lc3NhZ2VXaXRoTGltaXRlZEV4aXN0ZW5jZV8QFlBlbmRpbmdNZXNzYWdlUmVhY3Rpb25fECVQZXJzaXN0ZWRBdHRhY2htZW50U2VudFJlY2lwaWVudEluZm9zXxATUGVyc2lzdGVkRGlzY3Vzc2lvbl8QGFBlcnNpc3RlZE1lc3NhZ2VSZWNlaXZlZF8QHFBlcnNpc3RlZE1lc3NhZ2VSZWFjdGlvblNlbnRfEB1QZXJzaXN0ZWRVc2VyTWVudGlvbkluTWVzc2FnZV8QGlJlbW90ZURlbGV0ZUFuZEVkaXRSZXF1ZXN0XxAXUGVyc2lzdGVkQ2FsbExvZ0NvbnRhY3RfEBdQZXJzaXN0ZWRHcm91cFYyRGV0YWlsc15QZXJzaXN0ZWREcmFmdF8QEFBlcnNpc3RlZEdyb3VwVjJfEB1TZW50RnlsZU1lc3NhZ2VKb2luV2l0aFN0YXR1c18QG1BlcnNpc3RlZFBlbmRpbmdHcm91cE1lbWJlcl8QGUZ5bGVNZXNzYWdlSm9pbldpdGhTdGF0dXNfEBRQZXJzaXN0ZWRDYWxsTG9nSXRlbV8QJVBlcnNpc3RlZERpc2N1c3Npb25Mb2NhbENvbmZpZ3VyYXRpb25fEBpQZXJzaXN0ZWRDb250YWN0R3JvdXBPd25lZF8QFURpc3BsYXllZENvbnRhY3RHcm91cFRGeWxlXxAbUGVyc2lzdGVkVXNlck1lbnRpb25JbkRyYWZ0XxAtUGVyc2lzdGVkTGF0ZXN0RGlzY3Vzc2lvblNlbmRlclNlcXVlbmNlTnVtYmVyXxAVUGVyc2lzdGVkQ29udGFjdEdyb3VwXxAiUGVyc2lzdGVkTWVzc2FnZVNlbnRSZWNpcGllbnRJbmZvc18QIFBlcnNpc3RlZE1lc3NhZ2VSZWFjdGlvblJlY2VpdmVkXxAhUmVjZWl2ZWRGeWxlTWVzc2FnZUpvaW5XaXRoU3RhdHVzXxAWUGVyc2lzdGVkRHJhZnRGeWxlSm9pbl8QJlBlcnNpc3RlZERpc2N1c3Npb25TaGFyZWRDb25maWd1cmF0aW9uXxATUGVyc2lzdGVkSW52aXRhdGlvbl8QKVBlcnNpc3RlZEludml0YXRpb25PbmVUb09uZUludml0YXRpb25TZW50XxA6UGVyc2lzdGVkRXhwaXJhdGlvbkZvclJlY2VpdmVkTWVzc2FnZVdpdGhMaW1pdGVkVmlzaWJpbGl0eV8QFFBlcnNpc3RlZE1lc3NhZ2VTZW50XxAWUGVyc2lzdGVkTWVzc2FnZVN5c3RlbV8QNlBlcnNpc3RlZEV4cGlyYXRpb25Gb3JTZW50TWVzc2FnZVdpdGhMaW1pdGVkVmlzaWJpbGl0eV8QG1BlcnNpc3RlZE9idkNvbnRhY3RJZGVudGl0eV8QFFBlcnNpc3RlZFVzZXJNZW50aW9uXxAjUGVyc2lzdGVkTWVzc2FnZVRpbWVzdGFtcGVkTWV0YWRhdGFfEDVQZXJzaXN0ZWRFeHBpcmF0aW9uRm9yU2VudE1lc3NhZ2VXaXRoTGltaXRlZEV4aXN0ZW5jZV8QG1BlcnNpc3RlZENvbnRhY3RHcm91cEpvaW5lZF8QEFBlcnNpc3RlZE1lc3NhZ2VfEBlQZXJzaXN0ZWRPYnZDb250YWN0RGV2aWNlXxAWUGVyc2lzdGVkR3JvdXBWMk1lbWJlcl8QGlBlcnNpc3RlZE1lc3NhZ2VFeHBpcmF0aW9uXxAYUGVyc2lzdGVkR3JvdXBEaXNjdXNzaW9uXxAYUGVyc2lzdGVkTWVzc2FnZVJlYWN0aW9uXxAZUGVyc2lzdGVkT2J2T3duZWRJZGVudGl0eV8QG1BlcnNpc3RlZE9uZVRvT25lRGlzY3Vzc2lvbt8QEAAAANMAAADUAAAA1QAAANYAAAAhAAAA1wAAANgAAAAjAAAA2QAAANoAAAAOAAAAJQAAANsAAADcAAAAKAAAAN0AAADeAAAA3wAAACkAAAApAAAAFAAAAOMAAADkAAAAMQAAACkAAADeAAAA5wAAAD0AAADeAAAA6gAAAOsAAADsXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlW19pc0Fic3RyYWN0gDmAXYAEgASAAoA6gQO0gASAOYEIk4AGgDmBJKeAOAgTAAAAARw/QiBXb3JkZXJlZNMAAAA6AAAAOwAAAA4AAADwAAAA8gAAAKChAAAA8YA7oQAAAPOAPIBVXlhEX1BTdGVyZW90eXBl2QAAACEAAAAlAAAA9wAAAA4AAAAoAAAA+AAAACMAAADdAAAA+QAAAG8AAADxAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAABAV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYA3gDuAOYBcgACABAiAPdMAAAA6AAAAOwAAAA4AAAEDAAABDQAAAKCpAAABBAAAAQUAAAEGAAABBwAAAQgAAAEJAAABCgAAAQsAAAEMgD6AP4BAgEGAQoBDgESARYBGqQAAAQ4AAAEPAAABEAAAAREAAAESAAABEwAAARQAAAEVAAABFoBHgEuATIBOgE+AUYBTgFaAWoBVXxATWERQTUNvbXBvdW5kSW5kZXhlc18QEFhEX1BTS19lbGVtZW50SURfEBlYRFBNVW5pcXVlbmVzc0NvbnN0cmFpbnRzXxAaWERfUFNLX3ZlcnNpb25IYXNoTW9kaWZpZXJfEBlYRF9QU0tfZmV0Y2hSZXF1ZXN0c0FycmF5XxARWERfUFNLX2lzQWJzdHJhY3RfEA9YRF9QU0tfdXNlckluZm9fEBNYRF9QU0tfY2xhc3NNYXBwaW5nXxAWWERfUFNLX2VudGl0eUNsYXNzTmFtZd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAEtAAAAFwAAAPMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEEAAAA7AAAAOwAAAAXAAAA7FVfdHlwZVhfZGVmYXVsdFxfYXNzb2NpYXRpb25bX2lzUmVhZE9ubHlZX2lzU3RhdGljWV9pc1VuaXF1ZVpfaXNEZXJpdmVkWl9pc09yZGVyZWRcX2lzQ29tcG9zaXRlV19pc0xlYWaAAIBIgACAPAgICAiASoA+CAiAAAjSAAAAOwAAAA4AAAE7AAABPKCASdIAAAE+AAABPwAAAUAAAAFBWiRjbGFzc25hbWVYJGNsYXNzZXNeTlNNdXRhYmxlQXJyYXmjAAABQAAAAUIAAAFDV05TQXJyYXlYTlNPYmplY3TSAAABPgAAAT8AAAFFAAABRl8QEFhEVU1MUHJvcGVydHlJbXCkAAABRwAAAUgAAAFJAAABQ18QEFhEVU1MUHJvcGVydHlJbXBfEBRYRFVNTE5hbWVkRWxlbWVudEltcF8QD1hEVU1MRWxlbWVudEltcN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAAPMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIA8CAgICIBKgD8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAFbAAAAFwAAAPMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEGAAAA7AAAAOwAAAAXAAAA7IAAgE2AAIA8CAgICIBKgEAICIAACNIAAAA7AAAADgAAAWkAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAA8wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgDwICAgIgEqAQQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAXwAAAAXAAAA8wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQgAAADsAAAA7AAAABcAAADsgACAUIAAgDwICAgIgEqAQggIgAAI0gAAADsAAAAOAAABigAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAADzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACAPAgICAiASoBDCAiAAAgI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAZ4AAAAXAAAA8wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACAVIAAgDwICAgIgEqARAgIgAAI0wAAADoAAAA7AAAADgAAAawAAAGtAAAAoKCggFXSAAABPgAAAT8AAAGwAAABsV8QE05TTXV0YWJsZURpY3Rpb25hcnmjAAABsAAAAbIAAAFDXE5TRGljdGlvbmFyed8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwAAAPMAAADsAAAA7AAAAOwAAAAxAAA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jAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAAhIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIBmCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAJfAAAAFwAAAhIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgHOAAIBmCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAAJtAAACbgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAACEgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgGYICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAACEgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgGYICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAACEgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgGYICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAACEgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgGYICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAACEgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgGYICAgIgEqAbwgIgAAI2QAAACEAAAAlAAACvAAAAA4AAAAoAAACvQAAACMAAADdAAACvgAAAfAAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAACxl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYBhgGWAOYBcgACABAiAetMAAAA6AAAAOwAAAA4AAALIAAAC0AAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAAtEAAALSAAAC0wAAAtQAAALVAAAC1gAAAteAgoCDgISAhYCHgIiAiYBVXxAdWERfUEF0dEtfZGVmYXVsdFZhbHVlQXNTdHJpbmdfEChYRF9QQXR0S19hbGxvd3NFeHRlcm5hbEJpbmFyeURhdGFTdG9yYWdlXxAXWERfUEF0dEtfbWluVmFsdWVTdHJpbmdfEBZYRF9QQXR0S19hdHRyaWJ1dGVUeXBlXxAXWERfUEF0dEtfbWF4VmFsdWVTdHJpbmdfEB1YRF9QQXR0S192YWx1ZVRyYW5zZm9ybWVyTmFtZV8QIFhEX1BBdHRLX3JlZ3VsYXJFeHByZXNzaW9uU3RyaW5n3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAACEwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgHkICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAACEwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgHkICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAACEwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgHkICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAw8AAAAXAAACEwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACAhoAAgHkICAgIgEqAfggIgAAIEQPo3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAACEwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgHkICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAACEwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgHkICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAACEwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgHkICAgIgEqAgQgIgAAI0gAAAT4AAAE/AAADSwAAA0xdWERQTUF0dHJpYnV0ZaYAAANNAAADTgAAA08AAANQAAADUQAAAUNdWERQTUF0dHJpYnV0ZVxYRFBNUHJvcGVydHlfEBBYRFVNTFByb3BlcnR5SW1wXxAUWERVTUxOYW1lZEVsZW1lbnRJbXBfEA9YRFVNTEVsZW1lbnRJbXDfEBIAAAEiAAABIwAAASQAAANTAAAAIQAAASYAAAEnAAADVAAAACMAAAElAAADVQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAbwAAAOwAAADsAAADXQAAADEAAADsAAAA3gAAAOwAAAIGAAAB7QAAAOwAAADsAAADZQAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIA3CAiAjQiAOQiAioBfCAiAjAgSZXz9mtMAAAA6AAAAOwAAAA4AAANpAAADbAAAAKCiAAACDwAAAhCAZIBlogAAA20AAANugI6AmYBV2QAAACEAAAAlAAADcQAAAA4AAAAoAAADcgAAACMAAADdAAADcwAAAfEAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAADe18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYCLgGSAOYBcgACABAiAj9MAAAA6AAAAOwAAAA4AAAN9AAADhgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAA4cAAAOIAAADiQAAA4oAAAOLAAADjAAAA40AAAOOgJCAkYCSgJSAlYCWgJeAmIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAADbQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgI4ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAADbQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgI4ICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAA7AAAAAXAAADbQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACAk4AAgI4ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAA74AAAO/AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAANtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACAjggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAANtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACAjggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAANtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACAjggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAANtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACAjggICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAANtAAAA7AAAAOwAAADsAAAAMQA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XAAAF0AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQUAAADsAAAA7AAAABcAAADsgACAAIAAgMQICAgIgEqAPwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABhcAAAAXAAAF0AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQYAAADsAAAA7AAAABcAAADsgACAyoAAgMQICAgIgEqAQAgIgAAI0gAAADsAAAAOAAAGJQAAATyhAAAGJoDLgEnSAAAAOwAAAA4AAAYpAAABPKIAAAYqAAAB7YDMgF+ASV8QGHJhd093bmVkSWRlbnRpdHlJZGVudGl0ed8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAABdAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEHAAAA7AAAAOwAAAAXAAAA7IAAgACAAIDECAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAY/AAAAFwAABdAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgM+AAIDECAgICIBKgEIICIAACNIAAAA7AAAADgAABk0AAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAF0AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQkAAADsAAAA7AAAABcAAADsgACAUoAAgMQICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABmAAAAAXAAAF0AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACA0oAAgMQICAgIgEqARAgIgAAI0wAAADo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hAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAAI4gAACOMAAAjkAAAI5QAACOYAAAjnAAAI6IEBE4EBFIEBFYEBFoEBF4EBGIEBGYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB6kAAAAXAAAILgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACA+4AAgQERCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAACC4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEBEQgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAguAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBAREICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB9cAAAAXAAAILgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACA/4AAgQERCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAACC4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEBEQgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAguAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBAREICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAILgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQERCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAACVQAAAAhAAABJgAAAScAAAlVAAAAIwAAASUAAAlWAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAAB8AAAA7AAAAOwAAAleAAAAMQAAAOwAAADeAAAA7AAABKIAAAaUAAAA7AAAAOwAAAlmAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgMEICIEBHAiAOQiBAsSA2QgIgQEbCBI/SELw0wAAADoAAAA7AAAADgAACWoAAAltAAAAoKIAAAIPAAAErIBkgKWiAAAJbgAACW+BAR2BASiAVdkAAAAhAAAAJQAACXIAAAAOAAAAKAAACXMAAAAjAAAA3QAACXQAAAapAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAACXxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBARqAZIA5gFyAAIAECIEBHtMAAAA6AAAAOwAAAA4AAAl+AAAJhwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAACYgAAAmJAAAJigAACYsAAAmMAAAJjQAACY4AAAmPgQEfgQEggQEhgQEjgQEkgQElgQEmgQEngFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAAluAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBAR0ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAJbgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQEdCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAmxAAAAFwAACW4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQEigACBAR0ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAACb8AAAnAAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAAluAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBAR0ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAJbgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQEdCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAACW4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEBHQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQ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AAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAACocAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEHAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEBMggICAiASoBBCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAK+AAAABcAAAqHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCAAAAOwAAADsAAAAFwAAAOyAAIEBPoAAgQEyCAgICIBKgEIICIAACNIAAAA7AAAADgAACwYAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAKhwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQkAAADsAAAA7AAAABcAAADsgACAUoAAgQEyCAgICIBKgEMICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAsZAAAAFwAACocAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEKAAAA7AAAAOwAAAAXAAAA7IAAgQFBgACBATIICAgIgEqARAgIgAAI0wAAADoAAAA7AAAADgAACycAAAsoAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABtQAAABcAAAqHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCwAAAOwAAADsAAAAFwAAAOyAAIBXgACBATIICAgIgEqARQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAACzsAAAAXAAAKhwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQwAAADsAAAA7AAAABcAAADsgACBAUSAAIEBMggICAiASoBGCAiAAAhfEBZQZXJzaXN0ZWRHcm91cFY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BhIBlgDmAXIAAgAQIgQGT0wAAADoAAAA7AAAADgAADsgAAA7QAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAAO0QAADtIAAA7TAAAO1AAADtUAAA7WAAAO14EBlIEBlYEBloEBl4EBmIEBmYEBmoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAOHQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQGSCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAADh0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEBkggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAA4dAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBAZIICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAw8AAAAXAAAOHQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACAhoAAgQGSCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAADh0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEBkggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASg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AAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAABHgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBAdcICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAR4AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQHXCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAfXAAAAFwAAEeAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgP+AAIEB1wgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABHgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBAdcICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAR4AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQHXCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAEeAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEB1wgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAABMGAAAAIQAAASYAAAEnAAATBwAAACMAAAElAAA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AFwAAABcAAAAXAAAUYgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQIFCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAFGIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIECBQgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABRiAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBAgUICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAAAUYgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIECBQgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABRiAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBAgUICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAUYgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQIFCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAFGIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIECBQgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAABWIAAAAIQAAASYAAAEnAAAViQAAACMAAAElAAAVigAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAmgAAAOwAAADsAAAVkgAAADEAAADsAAAA3gAAAOwAAASiAAALUwAAAOwAAADsAAAVmgAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEBLwgIgQIQCIA5CIECxIEBTQgIgQIPCBMAAAABEKv9+tMAAAA6AAAAOwAAAA4AABWeAAAVoQAAAKCiAAACDwAABKyAZIClogAAFaIAABWjgQIRgQIcgFXZAAAAIQAAACUAABWmAAAADgAAACgAABWnAAAAIwAAAN0AABWoAAALZQAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAABWwXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQIOgGSAOYBcgACABAiBAhLTAAAAOgAAADsAAAAOAAAVsgAAFbsAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAABW8AAAVvQAAFb4AABW/AAAVwAAAFcEAABXCAAAVw4ECE4ECFIECFYECF4ECGIECGYECGoECG4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAVogAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQIRCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAFaIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIECEQgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAV5QAAABcAABWiAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIECFoAAgQIRCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AABXzAAAV9AAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAVogAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQIRCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAAFaIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIECEQgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAABWiAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBAhEICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAVogAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQIRCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAFaIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIECEQgICAiASoBvCAiAAAjZAAAAIQAAACUAABZCAAAADgAAACgAABZDAAAAIwAAAN0AABZEAAALZQAABKwAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAABZMXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQIOgKWAOYBcgACABAiBAh3TAAAAOgAAADsAAAAOAAAWTgAAFlYAAACgpwAABV0AAAVeAAAFXwAABWAAAAVhAAAFYgAABWOAtIC1gLaAt4C4gLmAuqcAABZXAAAWWAAAFlkAABZaAAAWWwAAFlwAABZdgQIegQIfgQIggQIhgSH9gSH+gSH/gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAABWjAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXQAAAOwAAADsAAAAFwAAAOyAAIC8gACBAhwICAgIgEqAtAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAAVowAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACAvoAAgQIcCAgICIBKgLUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwAAFaMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVfAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIECHAgICAiASoC2CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAkwAAABcAABWjAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYAAAAOwAAADsAAAAFwAAAOyAAIECIoAAgQIcCAgICIBKgLcICIAACN8QEAAAFpwAABadAAAWngAAFp8AAAAhAAAWoAAAFqEAAAAjAAAWogAAFqMAAAAOAAAAJQAAFqQAABalAAAAKAAAAN0AAADeAAAWpwAAACkAAAApAAAAFAAAFqsAAADkAAAAMQAAACkAAADeAAAA5wAAAGEAAADeAAAWsgAAFrMAAADsXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlgDmBAjeABIAEgAKBAiSBA7SABIA5gQiTgCqAOYEh/IECIwgSs/i39NMAAAA6AAAAOwAAAA4AABa3AAAWuQAAAKChAAAA8YA7oQAAFrqBAiWAVdkAAAAhAAAAJQAAFr0AAAAOAAAAKAAAFr4AAAAjAAAA3QAAFr8AAACTAAAA8QAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAFsdfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBAiKAO4A5gFyAAIAECIECJtMAAAA6AAAAOwAAAA4AABbJAAAW0wAAAKCpAAABBAAAAQUAAAEGAAABBwAAAQgAAAEJAAABCgAAAQsAAAEMgD6AP4BAgEGAQoBDgESARYBGqQAAFtQAABbVAAAW1gAAFtcAABbYAAAW2QAAFtoAABbbAAAW3IECJ4ECKYECKoECLoECL4ECMYECMoECNIECNYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAFuAAAAAXAAAWugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBAiiAAIECJQgICAiASoA+CAiAAAjSAAAAOwAAAA4AABbuAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAFroAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIECJQgICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAXAQAAABcAABa6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIECK4AAgQIlCAgICIBKgEAICIAACNIAAAA7AAAADgAAFw8AAAE8oQAAFxCBAiyASdIAAAA7AAAADgAAFxMAAAE8ogAAFxQAAArjgQItgQE7gElfEBhyYXdPd25lZElkZW50aXR5SWRlbnRpdHnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABa6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBwAAAOwAAADsAAAAFwAAAOyAAIAAgACBAiUICAgIgEqAQQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAFykAAAAXAAAWugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQgAAADsAAAA7AAAABcAAADsgACBAjCAAIECJQgICAiASoBCCAiAAAjSAAAAOwAAAA4AABc3AAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAFroAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEJAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIECJQgICAiASoBDCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAXSgAAABcAABa6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCgAAAOwAAADsAAAAFwAAAOyAAIECM4AAgQIlCAgICIBKgEQICIAACNMAAAA6AAAAOwAAAA4AABdYAAAXWQAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAbUAAAAXAAAWugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQsAAADsAAAA7AAAABcAAADsgACAV4AAgQIlCAgICIBKgEUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAABdsAAAAFwAAFroAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEMAAAA7AAAAOwAAAAXAAAA7IAAgQI2gACBAiUICAgIgEqARggIgAAIXxAbUGVyc2lzdGVkT2J2Q29udGFjdElkZW50aXR50wAAADoAAAA7AAAADgAAF3sAABeYAAAAoK8QHAAAF3wAABd9AAAXfgAAF38AABeAAAAXgQAAF4IAABeDAAAXhAAAF4UAABeGAAAXhwAAF4gAABeJAAAXigAAF4sAABeMAAAXjQAACuMAABePAAAXkAAAF5EAABeSAAAXkwAAF5QAABeVAAAXlgAAF5eBAjiBAjmBAjqBAjuBAjyBAj2BAj6BAj+BAkCBAkGBAkKBAkOBAkSBAkWBAkaBAkeBAkiBAkmBATuBAkqBAkuBAkyBAk2BAk6BAk+BAlCBAlGBAlKvEBwAABeZAAAXmgAAF5sAABecAAAXnQAAF54AABefAAAXoAAAF6EAABeiAAAXowAAF6QAABelAAAXpgAAF6cAABeoAAAXqQAAF6oAABerAAAXrAAAF60AABeuAAAXrwAAF7AAABexAAAXsgAAF7MAABe0gQJTgQJqgQKBgR/7gSASgSApgQuigSBAgR3BgSBXgRkNgSBvgSCGgSCdgSEsgSFDgRxegSFagSFxgSGJgRf0gSGggSG3gSHOgRuGgSHlgRrjgQNVgFVfEB1jYXBhYmlsaXR5V2VicnRjQ29udGludW91c0lDRV8QD3NvcnREaXNwbGF5TmFtZV5jYWxsTG9nQ29udGFjdF8QHXNlcmlhbGl6ZWRJZGVudGl0eUNvcmVEZXRhaWxzXxARY3VzdG9tRGlzcGxheU5hbWVfEBJjYXBhYmlsaXR5R3JvdXBzVjJYbWVzc2FnZXNdcGVybWFuZW50VVVJRFlyZWFjdGlvbnNYaXNBY3RpdmVfEBJvd25lZENvbnRhY3RHcm91cHNaaXNPbmVUb09uZV8QGGlzQ2VydGlmaWVkQnlPd25LZXljbG9ha1dkZXZpY2VzXxATY3VzdG9tUGhvdG9GaWxlbmFtZV8QD2FzR3JvdXBWMk1lbWJlcl8QFXJhd09uZVRvT25lRGlzY3Vzc2lvbllyYXdTdGF0dXNUbm90ZV1jb250YWN0R3JvdXBzXxAYcmF3T3duZWRJZGVudGl0eUlkZW50aXR5WHBob3RvVVJMXxAaY2FwYWJpbGl0eU9uZVRvT25lQ29udGFjdHNfEBtsYXRlc3RTZW5kZXJTZXF1ZW5jZU51bWJlcnNfEA9mdWxsRGlzcGxheU5hbWVfEBByYXdPd25lZElkZW50aXR5XnN5c3RlbU1lc3NhZ2Vz3xASAAABIgAAASMAAAEkAAAX0gAAACEAAAEmAAABJwAAF9MAAAAjAAABJQAAF9QAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJMAAADsAAAA7AAAF9wAAAAxAAAA7AAAAN4AAADsAAACBgAAF3wAAADsAAAA7AAAF+QAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBAiIICIECVQiAOQiAioECOAgIgQJUCBI57d/T0wAAADoAAAA7AAAADgAAF+gAABfrAAAAoKIAAAIPAAACEIBkgGWiAAAX7AAAF+2BAlaBAmGAVdkAAAAhAAAAJQAAF/AAAAAOAAAAKAAAF/EAAAAjAAAA3QAAF/IAABeZAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAF/pfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBAlOAZIA5gFyAAIAECIECV9MAAAA6AAAAOwAAAA4AABf8AAAYBQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAGAYAABgHAAAYCAAAGAkAABgKAAAYCwAAGAwAABgNgQJYgQJZgQJagQJcgQJdgQJegQJfgQJggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAABfsAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBAlYICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAX7AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQJWCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAABgvAAAAFwAAF+wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQJbgACBAlYICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAGD0AABg+AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAABfsAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBAlYICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAX7AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQJWCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAF+wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIECVggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABfsAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBAlYICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAX7AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQJWCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAGIwAAAAOAAAAKAAAGI0AAAAjAAAA3QAAGI4AABeZAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAGJZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBAlOAZYA5gFyAAIAECIECYtMAAAA6AAAAOwAAAA4AABiYAAAYoAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAGKEAABiiAAAYowAAGKQAABilAAAYpgAAGKeBAmOBAmSBAmWBAmaBAmeBAmiBAmmAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAepAAAAFwAAF+0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgPuAAIECYQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAABftAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBAmEICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAX7QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQJhCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAfXAAAAFwAAF+0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgP+AAIECYQgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABftAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBAmEICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAX7QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQJhCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAF+0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIECYQgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAABkTAAAAIQAAASYAAAEnAAAZFAAAACMAAAElAAAZFQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAkwAAAOwAAADsAAAZHQAAADEAAADsAAAA3gAAAOwAAAIGAAAXfQAAAOwAAADsAAAZJQAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIECIggIgQJsCIA5CICKgQI5CAiBAmsIEu3HMuzTAAAAOgAAADsAAAAOAAAZKQAAGSwAAACgogAAAg8AAAIQgGSAZaIAABktAAAZLoECbYECeIBV2QAAACEAAAAlAAAZMQAAAA4AAAAoAAAZMgAAACMAAADdAAAZMwAAF5oAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAAZO18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYECaoBkgDmAXIAAgAQIgQJu0wAAADoAAAA7AAAADgAAGT0AABlGAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAAZRwAAGUgAABlJAAAZSgAAGUsAABlMAAAZTQAAGU6BAm+BAnCBAnGBAnOBAnSBAnWBAnaBAneAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAGS0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIECbQgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABktAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBAm0ICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAGXAAAAAXAAAZLQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBAnKAAIECbQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAAZfgAAGX8AAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAGS0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIECbQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAABktAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBAm0ICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAZLQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQJtCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAGS0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIECbQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAABktAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBAm0ICAgIgEqAbwgIgAAI2QAAACEAAAAlAAAZzQAAAA4AAAAoAAAZzgAAACMAAADdAAAZzwAAF5oAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAAZ118QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYECaoBlgDmAXIAAgAQIgQJ50wAAADoAAAA7AAAADgAAGdkAABnhAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAAZ4gAAGeMAABnkAAAZ5QAAGeYAABnnAAAZ6IECeoECe4ECfIECfYECfoECf4ECgIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAZLgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQJ4CAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAGS4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIECeAgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABkuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBAngICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAAAZLgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIECeAgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABkuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBAngICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAZLgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQJ4CAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAGS4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIECeAgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAABpUAAAAIQAAASYAAAEnAAAaVQAAACMAAAElAAAaVgAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAkwAAAOwAAADsAAAaXgAAADEAAADsAAAA3gAAAOwAAASiAAAXfgAAAOwAAADsAAAaZgAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIECIggIgQKDCIA5CIECxIECOggIgQKCCBLri+M+0wAAADoAAAA7AAAADgAAGmoAABptAAAAoKIAAAIPAAAErIBkgKWiAAAabgAAGm+BAoSBAo+AVdkAAAAhAAAAJQAAGnIAAAAOAAAAKAAAGnMAAAAjAAAA3QAAGnQAABebAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAGnxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBAoGAZIA5gFyAAIAECIEChdMAAAA6AAAAOwAAAA4AABp+AAAahwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAGogAABqJAAAaigAAGosAABqMAAAajQAAGo4AABqPgQKGgQKHgQKIgQKKgQKLgQKMgQKNgQKOgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAABpuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBAoQICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAabgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQKECAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAABqxAAAAFwAAGm4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQKJgACBAoQICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAGr8AABrAAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAABpuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBAoQICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAAabgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQKECAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAGm4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEChAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABpuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBAoQICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAabgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQKECAgICIBKgG8ICIAACNkAAAAhAAAAJQAAGw4AAAAOAAAAKAAAGw8AAAAjAAAA3QAAGxAAABebAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAGxhfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBAoGApYA5gFyAAIAECIECkNMAAAA6AAAAOwAAAA4AABsaAAAbIgAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwAAGyMAABskAAAbJQAAGyYAABsnAAAbKAAAGymBApGBApKBApOBApSBH/iBH/mBH/qAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwAAGm8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIECjwgICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAABpvAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBAo8ICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAAabwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvIAAgQKPCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAB5AAAAFwAAGm8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQKVgACBAo8ICAgIgEqAtwgIgAAI3xAQAAAbaAAAG2kAABtqAAAbawAAACEAABtsAAAbbQAAACMAABtuAAAbbwAAAA4AAAAlAAAbcAAAG3EAAAAoAAAA3QAAAN4AABtzAAAAKQAAACkAAAAUAAAbdwAAAOQAAAAxAAAAKQAAAN4AAADnAAAARwAAAN4AABt+AAAbfwAAAOxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNkdXBsaWNhdGVzXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc29yZGVyZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3N0b3JhZ2WAOYECqIAEgASAAoECl4EDtIAEgDmBCJOAEIA5gR/3gQKWCBLMQV610wAAADoAAAA7AAAADgAAG4MAABuFAAAAoKEAAADxgDuhAAAbhoECmIBV2QAAACEAAAAlAAAbiQAAAA4AAAAoAAAbigAAACMAAADdAAAbiwAAAHkAAADxAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAAbk18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEClYA7gDmAXIAAgAQIgQKZ0wAAADoAAAA7AAAADgAAG5UAABufAAAAoKkAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkAAAEKAAABCwAAAQyAPoA/gECAQYBCgEOARIBFgEapAAAboAAAG6EAABuiAAAbowAAG6QAABulAAAbpgAAG6cAABuogQKagQKcgQKdgQKfgQKggQKigQKjgQKlgQKmgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAbrAAAABcAABuGAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBAAAAOwAAADsAAAAFwAAAOyAAIECm4AAgQKYCAgICIBKgD4ICIAACNIAAAA7AAAADgAAG7oAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAbhgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQUAAADsAAAA7AAAABcAAADsgACAAIAAgQKYCAgICIBKgD8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAABvNAAAAFwAAG4YAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEGAAAA7AAAAOwAAAAXAAAA7IAAgQKegACBApgICAgIgEqAQAgIgAAI0gAAADsAAAAOAAAb2wAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABuGAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBwAAAOwAAADsAAAAFwAAAOyAAIAAgACBApgICAgIgEqAQQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAG+4AAAAXAAAbhgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQgAAADsAAAA7AAAABcAAADsgACBAqGAAIECmAgICAiASoBCCAiAAAjSAAAAOwAAAA4AABv8AAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAG4YAAADsAAA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AADoAAAA7AAAADgAAHLsAABy8AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAABxqAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBArAICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAAcagAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQKwCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAHGoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIECsAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABxqAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBArAICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAcagAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQKwCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAHQoAAAAOAAAAKAAAHQsAAAAjAAAA3QAAHQwAABxGAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAHRRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWR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AAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAACHKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXQAAAOwAAADsAAAAFwAAAOyAAIC8gACBAzUICAgIgEqAtAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAACjwAAAAXAAAhygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACBASyAAIEDNQgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAACHKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC+gACBAzUICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAIAAAAAXAAAhygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBAtmAAIEDNQgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACHKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBAzUICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAhygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQM1CAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABc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AKCoAACgrAAAoLAAAKC0AACguAAAoLwAAKDAAACgxgQOhgQOigQOjgQOlgQOmgQOngQOogQOpgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACgQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBA58ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAoEAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQOfCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAChTAAAAFwAAKBAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQOkgACBA58ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAKGEAAChiAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACgQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBA58ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAoEAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQOfCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAKBAAAADsAAAA7AA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hbIEIlYAAgQMOgQMOgQO3gQO4EpMDe9rfEBQAAADdAAApRwAAKUgAAClJAAApSgAAKUsAAClMAAAAIQAAAA4AAClNAAAAJQAAKU4AAAAoAAApTwAAKVAAAClRAAApUgAAKVMAAClUAAAAIwAABSEAAADeAAAA3gAAKVgAAAApAAAA5AAAAN4AAAAUAAAA5wAAACkAAABmAAApYAAAKWEAAAApAAAAKQAAAN4AACllAAApZgAAAOQAAAAxXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNvcmRlcmVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNzdG9yYWdlXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNkdXBsaWNhdGVzCYA5gDmBA7qABIEDtIA5gAKBCJOABIAvgR6sgQO5gASABIA5gQPLgR6tgQO0Eo5018bTAAAAOgAAADsAAAAOAAApagAAKWwAAACgoQAAAPGAO6EAACltgQO7gFXZAAAAIQAAACUAAClwAAAADgAAACgAAClxAAAAIwAAAN0AAClyAAAAmAAAAPEAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAACl6XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQO4gDuAOYBcgACABAiBA7zTAAAAOgAAADsAAAAOAAApfAAAKYYAAACgqQAAAQQAAAEFAAABBgAAAQcAAAEIAAABCQAAAQoAAAELAAABDIA+gD+AQIBBgEKAQ4BEgEWARqkAACmHAAApiAAAKYkAACmKAAApiwAAKYwAACmNAAApjgAAKY+BA72BA7+BA8CBA8KBA8OBA8WBA8aBA8iBA8mAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACmTAAAAFwAAKW0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEEAAAA7AAAAOwAAAAXAAAA7IAAgQO+gACBA7sICAgIgEqAPggIgAAI0gAAADsAAAAOAAApoQAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAACltAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBQAAAOwAAADsAAAAFwAAAOyAAIAAgACBA7sICAgIgEqAPwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAKbQAAAAXAAApbQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQYAAADsAAAA7AAAABcAAADsgACBA8GAAIEDuwgICAiASoBACAiAAAjSAAAAOwAAAA4AACnCAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAKW0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEHAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEDuwgICAiASoBBCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAp1QAAABcAACltAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCAAAAOwAAADsAAAAFwAAAOyAAIEDxIAAgQO7CAgICIBKgEIICIAACNIAAAA7AAAADgAAKeMAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAApbQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQkAAADsAAAA7AAAABcAAADsgACAroAAgQO7CAgICIBKgEMICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACn2AAAAFwAAKW0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEKAAAA7AAAAOwAAAAXAAAA7IAAgQPHgACBA7sICAgIgEqARAgIgAAI0wAAADoAAAA7AAAADgAAKgQAACoFAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABtQAAABcAACltAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCwAAAOwAAADsAAAAFwAAAOyAAIBXgACBA7sICAgIgEqARQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAKhgAAAAXAAApbQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQwAAADsAAAA7AAAABcAAADsgACBA8qAAIEDuwgICAiASoBGCAiAAAhfEBBQZXJzaXN0ZWRNZXNzYWdl0wAAADoAAAA7AAAADgAAKicAACo9AAAAoK8QFQAAKigAACopAAAqKgAAKisAACosAAAqLQAAKi4AACovAAAqMAAAKjEAACoyAAAqMwAAKjQAABeNAAAqNgAAKjcAACo4AAAqOQAAKjoAACo7AAAqPIEDzIEDzYEDzoEDz4ED0IED0YED0oED04ED1IED1YED1oE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lAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAepAAAAFwAAKoQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgPuAAIED7ggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACqEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBA+4ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAqhAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQPuCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAfXAAAAFwAAKoQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgP+AAIED7ggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAACqEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBA+4ICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAqhAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQPuCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAKoQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIED7ggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAACuqAAAAIQAAASYAAAEnAAArqwAAACMAAAElAAArrAAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAmAAAAOwAAADsAAArtAAAADEAAADsAAAA3gAAAOwAAASiAAAqKQAAAOwAAADsAAArvAAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEDuAgIgQP5CIA5CIECxIEDzQgIgQP4CBLTdIet0wAAADoAAAA7AAAADgAAK8AAACvDAAAAoKIAAAIPAAAErIBkgKWiAAArxAAAK8WBA/qBBAWAVdkAAAAhAAAAJQAAK8gAAAAOAAAAKAAAK8kAAAAjAAAA3QAAK8oAACo/AAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAK9JfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBA/eAZIA5gFyAAIAECIED+9MAAAA6AAAAOwAAAA4AACvUAAAr3QAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAK94AACvfAAAr4AAAK+EAACviAAAr4wAAK+QAACvlgQP8gQP9gQP+gQQAgQQBgQQCgQQDgQQEgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACvEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBA/oICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAArxAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQP6CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACwHAAAAFwAAK8QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQP/gACBA/oICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAALBUAACwWAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACvEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBA/oICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAArxAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQP6CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAK8QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIED+ggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAACvEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBA/oICAg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AFwAAMMsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEEYwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAADDLAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBBGMICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB9cAAAAXAAAwywAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACA/4AAgQRjCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAMMsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEEYwgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAADDLAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBBGMICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAwywAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQRjCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAAMfEAAAAhAAABJgAAAScAADHyAAAAIwAAASUAADHzAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACYAAAA7AAAAOw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LgQTMgQTNgQTPgQTQgQTRgQTSgQTTgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAADY4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBBMkICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAA2OAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQTJCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADZ7AAAAFwAANjgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQTOgACBBMkICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAANokAADaKAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAADY4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBBMkICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAA2OAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQTJCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAANjgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEEyQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAADY4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBMkICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAA2OAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQTJCAgICIBKgG8ICIAACNkAAAAhAAAAJQAANtgAAAAOAAAAKAAANtkAAAAjAAAA3QAANtoAADYWAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAANuJfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBMaAZYA5gFyAAIAECIEE1dMAAAA6AAAAOwAAAA4AADbkAAA27AAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAANu0AADbuAAA27wAANvAAADbxAAA28gAANvOBBNaBBNeBBNiBBNmBBNqBBNuBBNyAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACjPAAAAFwAANjkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgQOtgACBBNQICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAA2OQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQTUCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAANjkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEE1AgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAmeQAAABcAADY5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEDgYAAgQTUCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAANjkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEE1AgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAADY5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBBNQICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAA2OQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQTUCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAAN18AAAAhAAABJgAAAScAADdgAAAAIwAAASUAADdhAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACUAAAA7AAAAOwAADdpAAAAMQAAAOwAAADeAAAA7AAAAgYAADYTAAAA7AAAAOwAADdxAAAA7F8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AADjKAAA40wAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAONQAADjVAAA41gAAONcAADjYAAA42QAAONoAADjbgQT5gQT6gQT7gQT9gQT+gQT/gQUAgQUBgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAADi6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBBPcICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAA4ugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQT3CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADj9AAAAFwAAOLoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQT8gACBBPcICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAOQsAADkMAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAADi6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBBPcICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAA4ugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQT3CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAA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hc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBdmAZYA5gFyAAIAECIEF6NMAAAA6AAAAOwAAAA4AAESjAABEqwAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAARKwAAEStAABErgAARK8AAESwAABEsQAARLKBBemBBeqBBeuBBeyBBe2BBe6BBe+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAQ/gAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEF5wgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEP4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBBecICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABD+AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQXnCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwAAQ/gAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBBecICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABD+AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQXnCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAQ/gAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEF5wgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEP4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBecICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAABFHgAAACEAAAEmAAABJwAARR8AAAAjAAABJQAARSAAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIsAAADsAAAA7AAARSgAAAAxAAAA7AAAAN4AAADsAAAEogAAQooAAADsAAAA7AAARTAAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBBakICIEF8giAOQiBAsSBBb4ICIEF8QgTAAAAASRt9WnTAAAAOgAAADsAAAAOAABFNAAARTcAAACgogAAAg8AAASsgGSApaIAAEU4AABFOYEF84EF/oBV2QAAACEAAAAlAABFPAAAAA4AAAAoAABFPQAAACMAAADdAABFPgAAQpEAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAABFRl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEF8IBkgDmAXIAAgAQIgQX00wAAADoAAAA7AAAADgAARUgAAEVRAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAABFUgAARVMAAEVUAABFVQAARVYAAEVXAABFWAAARVmBBfWBBfaBBfeBBfmBBfqBBfuBBfyBBf2AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAARTgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEF8wgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEU4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBBfMICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAARXsAAAAXAABFOAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBBfiAAIEF8wgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAABFiQAARYoAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAARTgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEF8wgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAEU4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBBfMICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABFOAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQXzCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAARTgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEF8wgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEU4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBBfMICAgIgEqAbwgIgAAI2QAAACEAAAAlAABF2AAAAA4AAAAoAABF2QAAACMAAADdAABF2gAAQpEAAASsAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAABF4l8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEF8IClgDmAXIAAgAQIgQX/0wAAADoAAAA7AAAADgAAReQAAEXsAAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAABF7QAARe4AAEXvAABF8AAARfEAAEXyAABF84EGAIEGAYEGAoEGA4ENIIENIYENIoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAABFOQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgQX+CAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwAARTkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEF/ggICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAEU5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC+gACBBf4ICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAIQAAAAXAABFOQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBBgSAAIEF/ggICAiASoC3CAiAAAjfEBAAAEYyAABGMwAARjQAAEY1AAAAIQAARjYAAEY3AAAAIwAARjgAAEY5AAAADgAAACUAAEY6AABGOwAAACgAAADdAAAA3gAARj0AAAApAAAAKQAAABQAAEZBAAAA5AAAADEAAAApAAAA3gAAAOcAAABSAAAA3gAARkgAAEZJAAAA7F8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zb3JkZXJlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZYA5gQYYgASABIACgQYGgQO0gASAOYEIk4AbgDmBDR+BBgUIEjLvk6bTAAAAOgAAADsAAAAOAABGTQAARk8AAACgoQAAAPGAO6EAAEZQgQYHgFXZAAAAIQAAACUAAEZTAAAADgAAACgAAEZUAAAAIwAAAN0AAEZVAAAAhAAAAPEAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAEZdXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQYEgDuAOYBcgACABAiBBgjTAAAAOgAAADsAAAAOAABGXwAARmkAAACgqQAAAQQAAAEFAAABBgAAAQcAAAEIAAABCQAAAQoAAAELAAABDIA+gD+AQIBBgEKAQ4BEgEWARqkAAEZqAABGawAARmwAAEZtAABGbgAARm8AAEZwAABGcQAARnKBBgmBBguBBgyBBhCBBhGBBhOBBhSBBhaBBheAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAEZ2AAAAFwAARlAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEEAAAA7AAAAOwAAAAXAAAA7IAAgQYKgACBBgcICAgIgEqAPggIgAAI0gAAADsAAAAOAABGhAAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEZQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBQAAAOwAAADsAAAAFwAAAOyAAIAAgACBBgcICAgIgEqAPwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAARpcAAAAXAABGUAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQYAAADsAAAA7AAAABcAAADsgACBBg2AAIEGBwgICAiASoBACAiAAAjSAAAAOwAAAA4AAEalAAABPKEAAEamgQYOgEnSAAAAOwAAAA4AAEapAAABPKEAAEaqgQYPgElWc2hhMjU23xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABGUAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgQYHCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAEa+AAAAFwAARlAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgQYSgACBBgcICAgIgEqAQggIgAAI0gAAADsAAAAOAABGzAAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEZQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBBgcICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAARt8AAAAXAABGUAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBBhWAAIEGBwgICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAABG7QAARu4AAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwAARlAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIEGBwgICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAUgAAABcAAEZQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABDAAAAOwAAADsAAAAFwAAAOyAAIAbgACBBgcICAgIgEqARggIgAAI0wAAADoAAAA7AAAADgAARw8AAEcUAAAAoKQAAEcQAABHEQAARxIAAEaqgQYZgQYagQYbgQYPpAAARxUAAEcWAABHFwAARxiBBhyBBjOBDPGBDQiAVV8QEWludHJpbnNpY0ZpbGVuYW1lXxAcYWxsRnlsZU1lc3NhZ2VKb2luV2l0aFN0YXR1c18QEWFsbERyYWZ0RnlsZUpvaW5z3xASAAABIgAAASMAAAEkAABHHgAAACEAAAEmAAABJwAARx8AAAAjAAABJQAARyAAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIQAAADsAAAA7AAARygAAAAxAAAA7AAAAN4AAADsAAACBgAARxAAAADsAAAA7AAARzAAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBBgQICIEGHgiAOQiAioEGGQgIgQYdCBLmKh+d0wAAADoAAAA7AAAADgAARzQAAEc3AAAAoKIAAAIPAAACEIBkgGWiAABHOAAARzmBBh+BBiqAVdkAAAAhAAAAJQAARzwAAAAOAAAAKAAARz0AAAAjAAAA3QAARz4AAEcVAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAR0ZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBhyAZIA5gFyAAIAECIEGINMAAAA6AAAAOwAAAA4AAEdIAABHUQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAR1IAAEdTAABHVAAAR1UAAEdWAABHVwAAR1gAAEdZgQYhgQYigQYjgQYlgQYmgQYngQYogQYpgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEc4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBBh8ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABHOAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQYfCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAEd7AAAAFwAARzgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQYkgACBBh8ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAR4kAAEeKAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEc4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBBh8ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAABHOAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQYfCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAARzgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEGHwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEc4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBh8ICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABHOAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQYfCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAR9gAAAAOAAAAKAAAR9kAAAAjAAAA3QAAR9oAAEcVAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAR+JfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBhyAZYA5gFyAAIAECIEGK9MAAAA6AAAAOwAAAA4AAEfkAABH7AAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAR+0AAEfuAABH7wAAR/AAAEfxAABH8gAAR/OBBiyBBi2BBi6BBi+BBjCBBjGBBjKAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAARzkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEGKggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEc5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBBioICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABHOQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQYqCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwAARzkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBBioICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABHOQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQYqCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAARzkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEGKggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEc5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBioICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAABIXwAAACEAAAEmAAABJwAASGAAAAAjAAABJQAASGEAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIQAAADsAAAA7AAASGkAAAAxAAAA7AAAAN4AAADsAAAEogAARxEAAADsAAAA7AAASHEAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnV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AAOQAAAAxXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNvcmRlcmVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNzdG9yYWdlXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNkdXBsaWNhdGVzCYA5gDmBBkmABIEDtIA5gAKBCJOABIAWgQd4gQZIgASABIA5gQZagQd5gQO0EmUqicDTAAAAOgAAADsAAAAOAABJlgAASZgAAACgoQAAAPGAO6EAAEmZgQZKgFXZAAAAIQAAACUAAEmcAAAADgAAACgAAEmdAAAAIwAAAN0AAEmeAAAAfwAAAPEAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAEmmXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQZHgDuAOYBcgACABAiBBkvTAAAAOgAAADsAAAAOAABJqAAASbIAAACgqQAAAQQAAAEFAAABBgAAAQcAAAEIAAABCQAAAQoAAAELAAABDIA+gD+AQIBBgEKAQ4BEgEWARqkAAEmzAABJtAAASbUAAEm2AABJtwAASbgAAEm5AABJugAASbuBBkyBBk6BBk+BBlGBBlKBBlSBBlWBBleBBliAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAEm/AAAAFwAASZkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEEAAAA7AAAAOwAAAAXAAAA7IAAgQZNgACBBkoICAgIgEqAPggIgAAI0gAAADsAAAAOAABJzQAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEmZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBQAAAOwAAADsAAAAFwAAAOyAAIAAgACBBkoICAgIgEqAPwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAASeAAAAAXAABJmQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQYAAADsAAAA7AAAABcAAADsgACBBlCAAIEGSggICAiASoBACAiAAAjSAAAAOwAAAA4AAEnuAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAASZkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEHAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEGSggICAiASoBBCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABKAQAAABcAAEmZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCAAAAOwAAADsAAAAFwAAAOyAAIEGU4AAgQZKCAgICIBKgEIICIAACNIAAAA7AAAADgAASg8AAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAABJmQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQkAAADsAAAA7AAAABcAAADsgACAroAAgQZKCAgICIBKgEMICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAEoiAAAAFwAASZkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEKAAAA7AAAAOwAAAAXAAAA7IAAgQZWgACBBkoICAgIgEqARAgIgAAI0wAAADoAAAA7AAAADgAASjAAAEoxAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABtQAAABcAAEmZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCwAAAOwAAADsAAAAFwAAAOyAAIBXgACBBkoICAgIgEqARQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAASkQAAAAXAABJmQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQwAAADsAAAA7AAAABcAAADsgACBBlmAAIEGSggICAiASoBGCAiAAAhfEBlGeWxlTWVzc2FnZUpvaW5XaXRoU3RhdHVz0wAAADoAAAA7AAAADgAASlMAAEpgAAAAoKwAAEKNAABCiQAASlYAAEpXAABKWAAASlkAAEKMAABCigAASlwAABeNAABKXgAASl+BBcGBBb2BBluBBlyBBl2BBl6BBcCBBb6BBl+BAkmBBmCBBmGsAABKYQAASmIAAEpjAABKZAAASmUAAEpmAABKZwAASmgAAEppAABKagAASmsAAEpsgQZigQZ5gQaQgQaogQa/gQbWgQbtgQcEgQcbgQcygQdJgQdggFVfEBBtZXNzYWdlU29ydEluZGV4WnRocm91Z2hwdXRdcGVybWFuZW50VVVJRF8QFmVzdGltYXRlZFRpbWVSZW1haW5pbmdXaXNXaXBlZF8QEWZyYWN0aW9uQ29tcGxldGVkXnRvdGFsQnl0ZUNvdW503xASAAABIgAAASMAAAEkAABKdgAAACEAAAEmAAABJwAASncAAAAjAAABJQAASngAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH8AAADsAAAA7AAASoAAAAAxAAAA7AAAAN4AAADsAAACBgAAQo0AAADsAAAA7AAASogAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBBkcICIEGZAiAOQiAioEFwQgIgQZjCBLoR4g+0wAAADoAAAA7AAAADgAASowAAEqPAAAAoKIAAAIPAAACEIBkgGWiAABKkAAASpGBBmWBBnCAVdkAAAAhAAAAJQAASpQAAAAOAAAAKAAASpUAAAAjAAAA3QAASpYAAEphAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAASp5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBmKAZIA5gFyAAIAECIEGZtMAAAA6AAAAOwAAAA4AAEqgAABKqQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAASqoAAEqrAABKrAAASq0AAEquAABKrwAASrAAAEqxgQZngQZogQZpgQZrgQZsgQZtgQZugQZvgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEqQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBBmUICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABKkAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQZlCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAErTAAAAFwAASpAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQZqgACBBmUICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAASuEAAEriAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEqQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBBmUICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABKkAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQZlCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAASpAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEGZQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEqQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBmUICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABKkAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQZlCAgICIBKgG8ICIAACNkAAAAhAAAAJQAASzAAAAAOAAAAKAAASzEAAAAjAAAA3QAASzIAAEphAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAASzpfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBmKAZYA5gFyAAIAECIEGcdMAAAA6AAAAOwAAAA4AAEs8AABLRAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAS0UAAEtGAABLRwAAS0gAAEtJAABLSgAAS0uBBnKBBnOBBnSBBnWBBnaBBneBBniAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACjPAAAAFwAASpEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgQOtgACBBnAICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABKkQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQZwCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACjPAAAAFwAASpEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgQOtgACBBnAICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAJnkAAAAXAABKkQAAAOwAAADsAAA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mAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABL0gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQaHCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAS9IAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEGhwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEvSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBBocICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAABL0gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEGhwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEvSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBBocICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABL0gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQaHCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASo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QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEG1oBlgDmAXIAAgAQIgQbl0wAAADoAAAA7AAAADgAAUYIAAFGKAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAABRiwAAUYwAAFGNAABRjgAAUY8AAFGQAABRkYEG5oEG54EG6IEG6YEG6oEG64EG7IBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAATdEAAAAXAABQ1wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACBBqGAAIEG5AgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFDXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBBuQICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABQ1wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQbkCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAC8yAAAAFwAAUNcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQQ5gACBBuQICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABQ1wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQbkCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAUNcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEG5AgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFDXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBuQICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAABR/QAAACEAAAEmAAABJwAAUf4AAAAjAAABJQAAUf8AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH8AAADsAAAA7AAAUgcAAAAxAAAA7AAAAN4AAADsAAACBgAAQowAAADsAAAA7AAAUg8AAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBBkcICIEG7wiAOQiAioEFwAgIgQbuCBJGNbAB0wAAADoAAAA7AAAADgAAUhMAAFIWAAAAoKIAAAIPAAACEIBkgGWiAABSFwAAUhiBBvCBBvuAVdkAAAAhAAAAJQAAUhsAAAAOAAAAKAAAUhwAAAAjAAAA3QAAUh0AAEpnAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAUiVfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBu2AZIA5gFyAAIAECIEG8dMAAAA6AAAAOwAAAA4AAFInAABSMAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAUjEAAFIyAABSMwAAUjQAAFI1AABSNgAAUjcAAFI4gQbygQbzgQb0gQb2gQb3gQb4gQb5gQb6gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFIXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBBvAICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABSFwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQbwCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFJaAAAAFwAAUhcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQb1gACBBvAICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAUmgAAFJpAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFIXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBBvAICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABSFwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQbwCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAUhcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEG8AgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFIXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBvAICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABSFwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQbwCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAUrcAAAAOAAAAKAAAUrgAAAAjAAAA3QAAUrkAAEpnAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAUsFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBu2AZYA5gFyAAIAECIEG/NMAAAA6AAAAOwAAAA4AAFLDAABSywAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAUswAAFLNAABSzgAAUs8AAFLQAABS0QAAUtKBBv2BBv6BBv+BBwCBBwGBBwKBBwOAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAUhgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEG+wgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFIYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBBvsICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABSGAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQb7CAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwAAUhgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBBvsICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABSGAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQb7CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAUhgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEG+wgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFIYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBvsICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAABTPgAAACEAAAEmAAABJwAAUz8AAAAjAAABJQAAU0AAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH8AAADsAAAA7AAAU0gAAAAxAAA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AAID7gACBBykICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABUmgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQcpCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAVJoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHKQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAH1wAAABcAAFSaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAID/gACBBykICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABUmgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQcpCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAVJoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHKQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFSaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBykICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAABVwAAAACEAAAEmAAABJwAAVcEAAAAjAAABJQAAVcIAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH8AAADsAAAA7AAAVcoAAAAxAAAA7AAAAN4AAADsAAACBgAAF40AAADsAAAA7AAAVdIAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBBkcICIEHNAiAOQiAioECSQgIgQczCBJl0kK70wAAADoAAAA7AAAADgAAVdYAAFXZAAAAoKIAAAIPAAACEIBkgGWiAABV2gAAVduBBzWBB0CAVdkAAAAhAAAAJQAAVd4AAAAOAAAAKAAAVd8AAAAjAAAA3QAAVeAAAEpqAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAVehfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBzKAZIA5gFyAAIAECIEHNtMAAAA6AAAAOwAAAA4AAFXqAABV8wAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAVfQAAFX1AABV9gAAVfcAAFX4AABV+QAAVfoAAFX7gQc3gQc4gQc5gQc7gQc8gQc9gQc+gQc/gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFXaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBBzUICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABV2gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQc1CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFYdAAAAFwAAVdoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQc6gACBBzUICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAVisAAFYsAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFXaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBBzUICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABV2gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQc1CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAVdoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEHNQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFXaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBzUICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABV2gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQc1CAgICIBKgG8ICIAACNkAAAAhAAAAJQAAVnoAAAAOAAAAKAAAVnsAAAAjAAAA3QAAVnwAAEpqAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAVoRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBzKAZYA5gFyAAIAECIEHQdMAAAA6AAAAOwAAAA4AAFaGAABWjgAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAVo8AAFaQAABWkQAAVpIAAFaTAABWlAAAVpWBB0KBB0OBB0SBB0WBB0aBB0eBB0iAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAVdsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHQAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFXbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBB0AICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABV2wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQdACAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACZ5AAAAFwAAVdsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQOBgACBB0AICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABV2wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQdACAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAVdsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHQAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFXbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBB0AICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAABXAQAAACEAAAEmAAABJwAAVwIAAAAjAAABJQAAVwMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH8AAADsAAAA7AAAVwsAAAAxAAAA7AAAAN4AAADsAAACBgAASl4AAADsAAAA7AAAVxMAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBBkcICIEHSwiAOQiAioEGYAgIgQdKCBLFk4Gd0wAAADoAAAA7AAAADgAAVxcAAFcaAAAAoKIAAAIPAAACEIBkgGWiAABXGwAAVxyBB0yBB1eAVdkAAAAhAAAAJQAAVx8AAAAOAAAAKAAAVyAAAAAjAAAA3QAAVyEAAEprAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAVylfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBB0mAZIA5gFyAAIAECIEHTdMAAAA6AAAAOwAAAA4AAFcrAABXNAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIrAAACKgAAAiyAaIBpgGqAa4BsgG6AbYBvqAAAVzUAAFc2AABXNwAAVzgAAFc5AABXOgAAVzsAAFc8gQdOgQdPgQdQgQdSgQdTgQdUgQdVgQdWgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFcbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBB0wICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABXGwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQdMCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFdeAAAAFwAAVxsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQdRgACBB0wICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAV2wAAFdtAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFcbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBB0wICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABXGwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQdMCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAVxsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHTAgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFcbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBB0wICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAABXGwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAroAAgQdMCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAV7sAAAAOAAAAKAAAV7wAAAAjAAAA3QAAV70AAEprAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAV8VfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBB0mAZYA5gFyAAIAECIEHWNMAAAA6AAAAOwAAAA4AAFfHAABXzwAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAV9AAAFfRAABX0gAAV9MAAFfUAABX1QAAV9aBB1mBB1qBB1uBB1yBB12BB16BB1+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACjPAAAAFwAAVxwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgQOtgACBB1cICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABXHAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQdXCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAVxwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHVwgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAvMgAAABcAAFccAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEEOYAAgQdXCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAVxwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHVwgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFccAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBB1cICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABXHAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQdXCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAAWEIAAAAhAAABJgAAAScAAFhDAAAAIwAAASUAAFhEAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAAB/AAAA7AAAAOwAAFhMAAAAMQAAAOwAAADeAAAA7AAAAgYAAEpfAAAA7AAAAOwAAFhUAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQZHCAiBB2IIgDkIgIqBBmEICIEHYQgTAAAAAQbl6JnTAAAAOgAAADsAAAAOAABYWAAAWFsAAACgogAAAg8AAAIQgGSAZaIAAFhcAABYXYEHY4EHb4BV2QAAACEAAAAlAABYYAAAAA4AAAAoAABYYQAAACMAAADdAABYYgAASmwAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAABYal8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEHYIBkgDmAXIAAgAQIgQdk0wAAADoAAAA7AAAADgAAWGwAAFh1AAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAABYdgAAWHcAAFh4AABYeQAAWHoAAFh7AABYfAAAWH2BB2WBB2aBB2eBB2mBB2qBB2uBB2yBB26AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAWFwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEHYwgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFhcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBB2MICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAWJ8AAAAXAABYXAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBB2iAAIEHYwgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAABYrQAAWK4AAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAWFwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEHYwgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFhcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBB2MICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABYXAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQdjCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFjfAAAAFwAAWFwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgQdtgACBB2MICAgIgEqAbggIgAAIXnRvdGFsVW5pdENvdW503xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABYXAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQdjCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAWP0AAAAOAAAAKAAAWP4AAAAjAAAA3QAAWP8AAEpsAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAWQdfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBB2CAZYA5gFyAAIAECIEHcNMAAAA6AAAAOwAAAA4AAFkJAABZEQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAWRIAAFkTAABZFAAAWRUAAFkWAABZFwAAWRiBB3GBB3KBB3OBB3SBB3WBB3aBB3eAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAWF0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHbwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFhdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBB28ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAKM8AAAAXAABYXQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACBA62AAIEHbwgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAmeQAAABcAAFhdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEDgYAAgQdvCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAWF0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHbwgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFhdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBB28ICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABYXQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQdvCAgICIBKgIEICIAACNIAAAA7AAAADgAAWYQAAAE8oIBJ0gAAADsAAAAOAABZhwAAATyiAABZiAAAWYmBB3qBCZCASdcAAAAOAAAAJQAAKT0AAAAhAAAAKAAAKT4AAAAjAAApPwAAABcAAACKAAAAigAAWZAAAAB/AAAAMYEIlYAAgQd7gQd7gQztgQZH3xAQAABZkwAAWZQAAFmVAABZlgAAACEAAFmXAABZmAAAACMAAFmZAABZmgAAAA4AAAAlAABZmwAAWZwAAAAoAAAA3QAAAN4AAFmeAAAAKQAAACkAAAAUAABZogAAAOQAAAAxAAAAKQAAAN4AAADnAAAAWAAAAN4AAFmpAABZqgAAAOxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNkdXBsaWNhdGVzXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc29yZGVyZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3N0b3JhZ2WAOYEHjoAEgASAAoEHfYEDtIAEgDmBCJOAIYA5gQzsgQd8CBLpNk5k0wAAADoAAAA7AAAADgAAWa4AAFmwAAAAoKEAAADxgDuhAABZsYEHfoBV2QAAACEAAAAlAABZtAAAAA4AAAAoAABZtQAAACMAAADdAABZtgAAAIoAAADxAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAABZvl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEHe4A7gDmAXIAAgAQIgQd/0wAAADoAAAA7AAAADgAAWcAAAFnKAAAAoKkAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkAAAEKAAABCwAAAQyAPoA/gECAQYBCgEOARIBFgEapAABZywAAWcwAAFnNAABZzgAAWc8AAFnQAABZ0QAAWdIAAFnTgQeAgQeCgQeDgQeFgQeGgQeIgQeJgQeLgQeMgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABZ1wAAABcAAFmxAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBAAAAOwAAADsAAAAFwAAAOyAAIEHgYAAgQd+CAgICIBKgD4ICIAACNIAAAA7AAAADgAAWeUAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABZsQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQUAAADsAAAA7AAAABcAAADsgACAAIAAgQd+CAgICIBKgD8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFn4AAAAFwAAWbEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEGAAAA7AAAAOwAAAAXAAAA7IAAgQeEgACBB34ICAgIgEqAQAgIgAAI0gAAADsAAAAOAABaBgAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFmxAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBwAAAOwAAADsAAAAFwAAAOyAAIAAgACBB34ICAgIgEqAQQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAWhkAAAAXAABZsQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQgAAADsAAAA7AAAABcAAADsgACBB4eAAIEHfggICAiASoBCCAiAAAjSAAAAOwAAAA4AAFonAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAWbEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEJAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEHfggICAiASoBDCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABaOgAAABcAAFmxAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCgAAAOwAAADsAAAAFwAAAOyAAIEHioAAgQd+CAgICIBKgEQICIAACNMAAAA6AAAAOwAAAA4AAFpIAABaSQAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAbUAAAAXAABZsQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQsAAADsAAAA7AAAABcAAADsgACAV4AAgQd+CAgICIBKgEUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFpcAAAAFwAAWbEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEMAAAA7AAAAOwAAAAXAAAA7IAAgQeNgACBB34ICAgIgEqARggIgAAIXxAhUmVjZWl2ZWRGeWxlTWVzc2FnZUpvaW5XaXRoU3RhdHVz0wAAADoAAAA7AAAADgAAWmsAAFpvAAAAoKMAAFpsAABabQAAWm6BB4+BB5CBB5GjAABacAAAWnEAAFpygQeSgQy+gQzVgFVfEA9yZWNlaXZlZE1lc3NhZ2VfEBJkb3duc2l6ZWRUaHVtYm5haWxZd2FzT3BlbmVk3xASAAABIgAAASMAAAEkAABaeAAAACEAAAEmAAABJwAAWnkAAAAjAAABJQAAWnoAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIoAAADsAAAA7AAAWoIAAAAxAAAA7AAAAN4AAADsAAAEogAAWmwAAADsAAAA7AAAWooAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBB3sICIEHlAiAOQiBAsSBB48ICIEHkwgSSDOn09MAAAA6AAAAOwAAAA4AAFqOAABakQAAAKCiAAACDwAABKyAZIClogAAWpIAAFqTgQeVgQeggFXZAAAAIQAAACUAAFqWAAAADgAAACgAAFqXAAAAIwAAAN0AAFqYAABacAAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAFqgXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQeSgGSAOYBcgACABAiBB5bTAAAAOgAAADsAAAAOAABaogAAWqsAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAFqsAABarQAAWq4AAFqvAABasAAAWrEAAFqyAABas4EHl4EHmIEHmYEHm4EHnIEHnYEHnoEHn4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABakgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQeVCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAWpIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHlQgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABa1QAAABcAAFqSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEHmoAAgQeVCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAFrjAABa5AAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABakgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQeVCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAWpIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEHlQgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFqSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBB5UICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABakgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQeVCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAWpIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEHlQgICAiASoBvCAiAAAjZAAAAIQAAACUAAFsyAAAADgAAACgAAFszAAAAIwAAAN0AAFs0AABacAAABKwAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAFs8XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQeSgKWAOYBcgACABAiBB6HTAAAAOgAAADsAAAAOAABbPgAAW0YAAACgpwAABV0AAAVeAAAFXwAABWAAAAVhAAAFYgAABWOAtIC1gLaAt4C4gLmAuqcAAFtHAABbSAAAW0kAAFtKAABbSwAAW0wAAFtNgQeigQejgQekgQelgQy7gQy8gQy9gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAFqTAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXQAAAOwAAADsAAAAFwAAAOyAAIC8gACBB6AICAgIgEqAtAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAABakwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACAvoAAgQegCAgICIBKgLUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwAAWpMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVfAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEHoAgICAiASoC2CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAdQAAABcAAFqTAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYAAAAOwAAADsAAAAFwAAAOyAAIEHpoAAgQegCAgICIBKgLcICIAACN8QEAAAW4wAAFuNAABbjgAAW48AAAAhAABbkAAAW5EAAAAjAABbkgAAW5MAAAAOAAAAJQAAW5QAAFuVAAAAKAAAAN0AAADeAABblwAAACkAAAApAAAAFAAAW5sAAADkAAAAMQAAACkAAADeAAAA5wAAAEMAAADeAABbogAAW6MAAADsXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlgDmBB7mABIAEgAKBB6iBA7SABIA5gQiTgAyAOYEMuIEHpwgSqYo0udMAAAA6AAAAOwAAAA4AAFunAABbqQAAAKChAAAA8YA7oQAAW6qBB6mAVdkAAAAhAAAAJQAAW60AAAAOAAAAKAAAW64AAAAjAAAA3QAAW68AAAB1AAAA8QAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAW7dfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBB6aAO4A5gFyAAIAECIEHqtMAAAA6AAAAOwAAAA4AAFu5AABbwwAAAKCpAAABBAAAAQUAAAEGAAABBwAAAQgAAAEJAAABCgAAAQsAAAEMgD6AP4BAgEGAQoBDgESARYBGqQAAW8QAAFvFAABbxgAAW8cAAFvIAABbyQAAW8oAAFvLAABbzIEHq4EHrYEHroEHsIEHsYEHs4EHtIEHtoEHt4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAW9AAAAAXAABbqgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBB6yAAIEHqQgICAiASoA+CAiAAAjSAAAAOwAAAA4AAFveAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAW6oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHqQgICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABb8QAAABcAAFuqAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEHr4AAgQepCAgICIBKgEAICIAACNIAAAA7AAAADgAAW/8AAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABbqgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgQepCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFwSAAAAFwAAW6oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgQeygACBB6kICAgIgEqAQggIgAAI0gAAADsAAAAOAABcIAAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFuqAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBB6kICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAXDMAAAAXAABbqgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBB7WAAIEHqQgICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAABcQQAAXEIAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwAAW6oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIEHqQgICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABcVQAAABcAAFuqAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABDAAAAOwAAADsAAAAFwAAAOyAAIEHuIAAgQepCAgICIBKgEYICIAACF8QGFBlcnNpc3RlZE1lc3NhZ2VSZWNlaXZlZNMAAAA6AAAAOwAAAA4AAFxkAABcbwAAAKCqAABcZQAAXGYAAFxnAABcaAAAXGkAAFxqAABcawAAXGwAAFxtAABcboEHuoEHu4EHvIEHvYEHvoEHv4EHwIEHwYEHwoEHw6oAAFxwAABccQAAXHIAAFxzAABcdAAAXHUAAFx2AABcdwAAXHgAAFx5gQfEgQtdgQt0gQuLgQu5gQvQgQh7gQvngQv+gQyhgFVfECVleHBpcmF0aW9uRm9yUmVjZWl2ZWRMaW1pdGVkRXhpc3RlbmNlXxAQc2VuZGVySWRlbnRpZmllcl8QF3NlcmlhbGl6ZWRSZXR1cm5SZWNlaXB0XxAPY29udGFjdElkZW50aXR5XxAWc2VuZGVyVGhyZWFkSWRlbnRpZmllcl8QEm1pc3NlZE1lc3NhZ2VDb3VudF8QJmV4cGlyYXRpb25Gb3JSZWNlaXZlZExpbWl0ZWRWaXNpYmlsaXR5XxAhdW5zb3J0ZWRGeWxlTWVzc2FnZUpvaW5XaXRoU3RhdHVzXxAabWVzc2FnZVJlcGxpZWRUb0lkZW50aWZpZXJfEBttZXNzYWdlSWRlbnRpZmllckZyb21FbmdpbmXfEBIAAAEiAAABIwAAASQAAFyGAAAAIQAAASYAAAEnAABchwAAACMAAAElAABciAAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAdQAAAOwAAADsAABckAAAADEAAADsAAAA3gAAAOwAAASiAABcZQAAAOwAAADsAABcmAAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEHpggIgQfGCIA5CIECxIEHuggIgQfFCBLib0ir0wAAADoAAAA7AAAADgAAXJwAAFyfAAAAoKIAAAIPAAAErIBkgKWiAABcoAAAXKGBB8eBB9KAVdkAAAAhAAAAJQAAXKQAAAAOAAAAKAAAXKUAAAAjAAAA3QAAXKYAAFxwAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAXK5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBB8SAZIA5gFyAAIAECIEHyNMAAAA6AAAAOwAAAA4AAFywAABcuQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAXLoAAFy7AABcvAAAXL0AAFy+AABcvwAAXMAAAFzBgQfJgQfKgQfLgQfNgQfOgQfPgQfQgQfRgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFygAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBB8cICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABcoAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQfHCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFzjAAAAFwAAXKAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQfMgACBB8cICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAXPEAAFzyAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFygAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBB8cICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAABcoAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQfHCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAXKAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEHxwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFygAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBB8cICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABcoAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQfHCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAXUAAAAAOAAAAKAAAXUEAAAAjAAAA3QAAXUIAAFxwAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAXUpfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBB8SApYA5gFyAAIAECIEH09MAAAA6AAAAOwAAAA4AAF1MAABdVAAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwAAXVUAAF1WAABdVwAAXVgAAF1ZAABdWgAAXVuBB9SBB9WBB9aBB9eBC1qBC1uBC1yAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwAAXKEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEH0ggICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAKPAAAABcAAFyhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIEBLIAAgQfSCAgICIBKgLUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwAAXKEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVfAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEH0ggICAiASoC2CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAcQAAABcAAFyhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYAAAAOwAAADsAAAAFwAAAOyAAIEH2IAAgQfSCAgICIBKgLcICIAACN8QEAAAXZoAAF2bAABdnAAAXZ0AAAAhAABdngAAXZ8AAAAjAABdoAAAXaEAAAAOAAAAJQAAXaIAAF2jAAAAKAAAAN0AAADeAABdpQAAACkAAAApAAAAFAAAXakAAADkAAAAMQAAACkAAADeAAAA5wAAAD8AAADeAABdsAAAXbEAAADsXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlgDmBB+uABIAEgAKBB9qBA7SABIA5gQiTgAiAOYEIBIEH2QgSzHWiTdMAAAA6AAAAOwAAAA4AAF21AABdtwAAAKChAAAA8YA7oQAAXbiBB9uAVdkAAAAhAAAAJQAAXbsAAAAOAAAAKAAAXbwAAAAjAAAA3QAAXb0AAABxAAAA8QAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAXcVfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBB9iAO4A5gFyAAIAECIEH3NMAAAA6AAAAOwAAAA4AAF3HAABd0QAAAKCpAAABBAAAAQUAAAEGAAABBwAAAQgAAAEJAAABCgAAAQsAAAEMgD6AP4BAgEGAQoBDgESARYBGqQAAXdIAAF3TAABd1AAAXdUAAF3WAABd1wAAXdgAAF3ZAABd2oEH3YEH34EH4IEH4oEH44EH5YEH5oEH6IEH6YBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAXd4AAAAXAABduAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBB96AAIEH2wgICAiASoA+CAiAAAjSAAAAOwAAAA4AAF3sAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAXbgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEH2wgICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABd/wAAABcAAF24AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEH4YAAgQfbCAgICIBKgEAICIAACNIAAAA7AAAADgAAXg0AAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABduAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgQfbCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAF4gAAAAFwAAXbgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgQfkgACBB9sICAgIgEqAQggIgAAI0gAAADsAAAAOAABeLgAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAF24AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBB9sICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAXkEAAAAXAABduAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBB+eAAIEH2wgICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAABeTwAAXlAAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwAAXbgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIEH2wgICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABeYwAAABcAAF24AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABDAAAAOwAAADsAAAAFwAAAOyAAIEH6oAAgQfbCAgICIBKgEYICIAACF8QOVBlcnNpc3RlZEV4cGlyYXRpb25Gb3JSZWNlaXZlZE1lc3NhZ2VXaXRoTGltaXRlZEV4aXN0ZW5jZdMAAAA6AAAAOwAAAA4AAF5yAABedAAAAKChAABec4EH7KEAAF51gQftgFVfECNtZXNzYWdlUmVjZWl2ZWRXaXRoTGltaXRlZEV4aXN0ZW5jZd8QEgAAASIAAAEjAAABJAAAXnkAAAAhAAABJgAAAScAAF56AAAAIwAAASUAAF57AAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAABxAAAA7AAAAOwAAF6DAAAAMQAAAOwAAADeAAAA7AAABKIAAF5zAAAA7AAAAOwAAF6LAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQfYCAiBB+8IgDkIgQLEgQfsCAiBB+4IEs6sqHjTAAAAOgAAADsAAAAOAABejwAAXpIAAACgogAAAg8AAASsgGSApaIAAF6TAABelIEH8IEH+4BV2QAAACEAAAAlAABelwAAAA4AAAAoAABemAAAACMAAADdAABemQAAXnUAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAABeoV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEH7YBkgDmAXIAAgAQIgQfx0wAAADoAAAA7AAAADgAAXqMAAF6sAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAABerQAAXq4AAF6vAABesAAAXrEAAF6yAABeswAAXrSBB/KBB/OBB/SBB/aBB/eBB/iBB/mBB/qAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAXpMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEH8AgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAF6TAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBB/AICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAXtYAAAAXAABekwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBB/WAAIEH8AgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAABe5AAAXuUAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAXpMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEH8AgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAF6TAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBB/AICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABekwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQfwCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAXpMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEH8AgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAF6TAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBB/AICAgIgEqAbwgIgAAI2QAAACEAAAAlAABfMwAAAA4AAAAoAABfNAAAACMAAADdAABfNQAAXnUAAASsAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAABfPV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEH7YClgDmAXIAAgAQIgQf80wAAADoAAAA7AAAADgAAXz8AAF9HAAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAABfSAAAX0kAAF9KAABfSwAAX0wAAF9NAABfToEH/YEH/oEH/4EIAIEIAYEIAoEIA4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAABelAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgQf7CAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwAAXpQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEH+wgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAF6UAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC+gACBB/sICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAHUAAAAXAABelAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBB6aAAIEH+wgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAF6UAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBB/sICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABelAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQf7CAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFxwAAAAFwAAXpQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQfEgACBB/sICAgIgEqAuggIgAAI0gAAADsAAAAOAABfugAAATyhAABfu4EIBYBJ1wAAAA4AAAAlAAApPQAAACEAAAAoAAApPgAAACMAACk/AAAAFwAAAHEAAABxAABfwgAAAJsAAAAxgQiVgACBB9iBB9iBCAaBCAcSLbm7wt8QFAAAAN0AAF/GAABfxwAAX8gAAF/JAABfygAAX8sAAAAhAAAADgAAX8wAAAAlAABfzQAAACgAAF/OAABfzwAAX9AAAF/RAABf0gAAX9MAAAAjAAAFIQAAAN4AAADeAABf1wAAACkAAADkAAAA3gAAABQAAADnAAAAKQAAAGkAAF/fAABf4AAAACkAAAApAAAA3gAAX+QAAF/lAAAA5AAAADFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc29yZGVyZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3N0b3JhZ2VfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc2R1cGxpY2F0ZXMJgDmAOYEICYAEgQO0gDmAAoEIk4A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AAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBCCAICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABgygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQggCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAGENAAAAFwAAYMoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQglgACBCCAICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAYRsAAGEcAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAGDKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBCCAICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABgygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQggCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAYMoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEIIAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAGDKAAAA7AAAAOw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AACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAY2IAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEHAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEIUggICAiASoBBCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABjygAAABcAAGNiAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCAAAAOwAAADsAAAAFwAAAOyAAIEIW4AAgQhSCAgICIBKgEIICIAACNIAAAA7AAAADgAAY9gAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABjYgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQkAAADsAAAA7AAAABcAAADsgACAUoAAgQhSCAgICIBKgEMICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAGPrAAAAFwAAY2IAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEKAAAA7AAAAOwAAAAXAAAA7IAAgQhegACBCFIICAgIgEqARAgIgAAI0wAAADoAAAA7AAAADgAAY/kAAGP6AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABtQAAABcAAGNiAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCwAAAOwAAADsAAAAFwAAAOyAAIBXgACBCFIICAgIgEqARQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAZA0AAAAXAABjYgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQwAAADsAAAA7AAAABcAAADsgACBCGGAAIEIUggICAiASoB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BKwAAABcAAAAXAAAAFwAAZt4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEImggICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABnJQAAABcAAGbeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEIoIAAgQiaCAgICIBKgEAICIAACNIAAAA7AAAADgAAZzMAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABm3gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgQiaCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAGdGAAAAFwAAZt4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgQijgACBCJoICAgIgEqAQggIgAAI0gAAADsAAAAOAABnVAAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAGbeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBCJoICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAZ2cAAAAXAABm3gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBCKaAAIEImggICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAABndQAAZ3YAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACE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BCPAICAgIgEqAQAgIgAAI0gAAADsAAAAOAABrJQAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAGrQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBwAAAOwAAADsAAAAFwAAAOyAAIAAgACBCPAICAgIgEqAQQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAazgAAAAXAABq0AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQgAAADsAAAA7AAAABcAAADsgACBCPmAAIEI8AgICAiASoBCCAiAAAjSAAAAOwAAAA4AAGtGAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAatAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEJAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEI8AgICAiASoBDCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABrWQAAABcAAGrQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCgAAAOwAAADsAAAAFwAAAOyAAIEI/IAAgQjwCAgICIBKgEQICIAACNMAAAA6AAAAOwAAAA4AAGtnAABraAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAbUAAAAXAABq0AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQsAAADsAAAA7AAAABcAAADsgACAV4AAgQjwCAgICIBKgEUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAGt7AAAAFwAAatAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEMAAAA7AAAAOwAAAAXAAAA7IAAgQj/gACBCPAICAgIgEqARggIgAAIXxA2UGVyc2lzdGVkRXhwaXJhdGlvbkZvclNlbnRNZXNzYWdlV2l0aExpbWl0ZWRWaXNpYmlsaXR50wAAADoAAAA7AAAADgAAa4oAAGuNAAAAoKIAAGuLAABrjIEJAYEJAqIAAGuOAABrj4EJA4EJGoBVXxAgbWVzc2FnZVNlbnRXaXRoTGltaXRlZFZpc2liaWxpdHlfEBZyZXRhaW5XaXBlZE1lc3NhZ2VTZW503xASAAABIgAAASMAAAEkAABrlAAAACEAAAEmAAABJwAAa5UAAAAjAAABJQAAa5YAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJIAAADsAAAA7AAAa54AAAAxAAAA7AAAAN4AAADsAAAEogAAa4sAAADsAAAA7AAAa6YAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBCO0ICIEJBQiAOQiBAsSBCQEICIEJBAgS3oaEidMAAAA6AAAAOwAAAA4AAGuqAABrrQAAAKCiAAACDwAABKyAZIClogAAa64AAGuvgQkGgQkRgFXZAAAAIQAAACUAAGuyAAAADgAAACgAAGuzAAAAIwAAAN0AAGu0AABrjgAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAGu8XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQkDgGSAOYBcgACABAiBCQfTAAAAOgAAADsAAAAOAABrvgAAa8cAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAGvIAABryQAAa8oAAGvLAABrzAAAa80AAGvOAABrz4EJCIEJCYEJCoEJDIEJDYEJDoEJD4EJEIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABrrgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQkGCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAa64AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEJBggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABr8QAAABcAAGuuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEJC4AAgQkGCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAGv/AABsAAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABrrgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQkGCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAa64AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEJBggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAGuuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBCQYICAgIgEqAbQg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AAOwAAAAXAAAA7IAAgACAAIEJOggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABurAAAABcAAG5pAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEJP4AAgQk6CAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAG66AABuuwAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABuaQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQk6CAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAbmkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEJOggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAG5pAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBCToICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABuaQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQk6CAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAbmkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AA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AAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgQmjCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAo8AAAAFwAAcxsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgQEsgACBCaMICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAABzGwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgQmjCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACWAAAAFwAAcxsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQiXgACBCaMICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABzGwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgQmjCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAcxsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEJowgICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABnmwAAABcAAHMbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOy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AAHkPgQoSgQoTgQoUgQoWgQoXgQoYgQoZgQoagFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAHjuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBChAICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAB47gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQoQCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAHkxAAAAFwAAeO4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQoVgACBChAICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAeT8AAHlAAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAHjuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBChAICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAB47gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQoQCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAeO4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOw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CKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAgXQAAIF1AACBdgAAgXcAAIF4AACBeQAAgXoAAIF7gQqygQqzgQq0gQq2gQq3gQq4gQq5gQq6gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAIFaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBCrAICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACBWgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQqwCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAIGdAAAAFwAAgVoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQq1gACBCrAICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAgasAAIGsAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAIFaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBCrAICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACBWgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQqwCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAgVoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEKsAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIFaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBCrAICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACBWgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQqwCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAgfoAAAAOAAAAKAAAgfsAAAAjAAAA3QAAgfwAAHd/AAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAggRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBCq2AZYA5gFyAAIAECIEKvNMAAAA6AAAAOwAAAA4AAIIGAACCDgAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAgg8AAIIQAACCEQAAghIAAIITAACCFAAAghWBCr2BCr6BCr+BCsCBCsGBCsKBCsOAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAgVsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEKuwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAIFbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBCrsICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACBWwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQq7CAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwAAgVsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEKuwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIFbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBCrsICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACBWwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQq7CAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAgVsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEKuwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAIKBAAAAIQAAASYAAAEnAACCggAAACMAAAElAACCgwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAA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BNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQrpCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAg90AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEK6QgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIPdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBCukICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAYbYAAAAXAACD3QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBCDGAAIEK6QgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIPdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBCukICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACD3QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQrpCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAg90AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEK6QgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAIUDAAAAIQAAASYAAAEnAACFBAAAACMAAAElAACFBQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAiAAAAOwAAADsAACFDQAAADEAAADsAAAA3gAAAOwAAAIGAAB3dgAAAOwAAADsAACFFQAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEJ1wgIgQr0CIA5CICKgQnyCAiBCvMIEvkOwSHTAAAAOgAAADsAAAAOAACFGQAAhRwAAACgogAAAg8AAAIQgGSAZaIAAIUdAACFHoEK9YELAIBV2QAAACEAAAAlAACFIQAAAA4AAAAoAACFIgAAACMAAADdAACFIwAAd4IAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAACFK18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEK8oBkgDmAXIAAgAQIgQr20wAAADoAAAA7AAAADgAAhS0AAIU2AAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAACFNwAAhTgAAIU5AACFOgAAhTsAAIU8AACFPQAAhT6BCveBCviBCvmBCvuBCvyBCv2BCv6BCv+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAhR0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEK9QgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIUdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBCvUICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAhWAAAAAXAACFHQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBCvqAAIEK9QgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAACFbgAAhW8AAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAhR0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEK9QgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAIUdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBCvUICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACFHQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQr1CAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAhR0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEK9QgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAIUdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBCvUICAgIgEqAbwgIgAAI2QAAACEAAAAlAACFvQAAAA4AAAAoAACFvgAAACMAAADdAACFvwAAd4IAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAACFx18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEK8oBlgDmAXIAAgAQIgQsB0wAAADoAAAA7AAAADgAAhckAAIXRAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAACF0gAAhdMAAIXUAACF1QAAhdYAAIXXAACF2IELAoELA4ELBIELBYELBoELB4ELCIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACFHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQsACAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAhR4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELAAgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIUeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBCwAICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAw8AAAAXAACFHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACAhoAAgQsACAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAhR4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIELAAgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIUeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBCwAICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACFHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQsACAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAAhkQAAAAhAAABJgAAAScAAIZFAAAAIwAAASUAAIZGAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACIAAAA7AAAAOwAAIZOAAAAMQAAAOwAAADeAAAA7AAAAgYAAHd3AAAA7AAAAOwAAIZWAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQnXCAiBCwsIgDkIgIqBCfMICIELCggSN8c9JtMAAAA6AAAAOwAAAA4AAIZaAACGXQAAAKCiAAACDwAAAhCAZIBlogAAhl4AAIZfgQsMgQsXgFXZAAAAIQAAACUAAIZiAAAADgAAACgAAIZjAAAAIwAAAN0AAIZkAAB3gwAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAIZsXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQsJgGSAOYBcgACABAiBCw3TAAAAOgAAADsAAAAOAACGbgAAhncAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAIZ4AACGeQAAhnoAAIZ7AACGfAAAhn0AAIZ+AACGf4ELDoELD4ELEIELEoELE4ELFIELFYELFoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACGXgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQsMCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAhl4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIELDAgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAACGoQAAABcAAIZeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIELEYAAgQsMCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAIavAACGsAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACGXgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQsMCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAAhl4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIELDAgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAIZeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBCwwICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACGXgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQsMCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAhl4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELDAgICAiASoBvCAiAAAjZAAAAIQAAACUAAIb+AAAADgAAACgAAIb/AAAAIwAAAN0AAIcAAAB3gwAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAIcIXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQsJgGWAOYBcgACABAiBCxjTAAAAOgAAADsAAAAOAACHCgAAhxIAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAIcTAACHFAAAhxUAAIcWAACHFwAAhxgAAIcZgQsZgQsagQsbgQscgQsdgQsegQsfgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIZfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBCxcICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACGXwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQsXCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAhl8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIELFwgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABhtgAAABcAAIZfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEIMYAAgQsXCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAhl8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIELFwgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIZfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBCxcICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACGXwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQsXCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAAh4UAAAAhAAABJgAAAScAAIeGAAAAIwAAASUAAIeHAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACIAAAA7AAAAOwAAIePAAAAMQAAAOwAAADeAAAA7AAAAgYAAHd4AAAA7AAAAOwAAIeXAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQnXCAiBCyIIgDkIgIqBCfQICIELIQgTAAAAASR7v73TAAAAOgAAADsAAAAOAACHmwAAh54AAACgogAAAg8AAAIQgGSAZaIAAIefAACHoIELI4ELLoBV2QAAACEAAAAlAACHowAAAA4AAAAoAACHpAAAACMAAADdAACHpQAAd4QAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAACHrV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYELIIBkgDmAXIAAgAQIgQsk0wAAADoAAAA7AAAADgAAh68AAIe4AAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAACHuQAAh7oAAIe7AACHvAAAh70AAIe+AACHvwAAh8CBCyWBCyaBCyeBCymBCyqBCyuBCyyBCy2AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAh58AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELIwgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIefAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBCyMICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAh+IAAAAXAACHnwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBCyiAAIELIwgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAACH8AAAh/EAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAh58AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELIwgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAIefAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBCyMICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACHnwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQsjCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAh58AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOw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AAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAImVAACJlgAAiZcAAImYAACJmQAAiZoAAImbgQtHgQtIgQtJgQtKgQtLgQtMgQtNgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIjhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBC0UICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACI4QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQtFCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAiOEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIELRQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAAIjhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBC0UICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACI4QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQtFCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAiOEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIELRQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIjhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBC0UICAgIgEqAgQgIgAAI0gAAADsAAAAOAACKBwAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAHWdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAICugACBCdEICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAB1nQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQnRCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAHd7AAAAFwAAdZ0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQn2gACBCdEICAgIgEqAuggIgAAI0gAAADsAAAAOAACKNwAAATyhAACKOIELU4BJ1wAAAA4AAAAlAAApPQAAACEAAAAoAAApPgAAACMAACk/AAAAFwAAAJAAAACQAACKPwAAAJgAAAAxgQiVgACBCMCBCMCBC1SBA7gStry6ht8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAZ7oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEIuggICAiASoC4CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAGe6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYgAAAOwAAADsAAAAFwAAAOyAAIBSgACBCLoICAgIgEqAuQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAaZQAAAAXAABnugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWMAAADsAAAA7AAAABcAAADsgACBCZWAAIEIuggICAiASoC6CAiAAAjSAAAAOwAAAA4AAIpwAAABPKEAAGM5gQiWgEkTAAAAAQs1RO3fEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFyhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBB9IICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABcoQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQfSCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAF51AAAAFwAAXKEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQftgACBB9IICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAACKogAAACEAAAEmAAABJwAAiqMAAAAjAAABJQAAiqQAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHUAAADsAAAA7AAAiqwAAAAxAAAA7AAAAN4AAAD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AAAAxAAAA7AAAi2ZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBC12AZYA5gFyAAIAECIELbNMAAAA6AAAAOwAAAA4AAItoAACLcAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAi3EAAItyAACLcwAAi3QAAIt1AACLdgAAi3eBC22BC26BC2+BC3CBC3GBC3KBC3OAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAir0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIELawgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAIq9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBC2sICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACKvQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQtrCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwAAir0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIELawgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAA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7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAIv+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBC4IICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACL/gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQuCCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwAAi/4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIELgggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIv+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBC4IICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACL/gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQuCCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAi/4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIELgggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAI0kAAAAIQAAASYAAAEnAACNJQAAACMAAAElAACNJgAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAdQAAAOwAAADsAACNLgAAADEAAADsAAAA3gAAAOwAAASiAABcaAAAAOwAAADsAACNNgAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEHpggIgQuNCIA5CIECxIEHvQgIgQuMCBKKNtEz0wAAADoAAAA7AAAADgAAjToAAI09AAAAoKIAAAIPAAAErIBkgKWiAACNPgAAjT+BC46BC5mAVdkAAAAhAAAAJQAAjUIAAAAOAAAAKAAAjUMAAAAjAAAA3QAAjUQAAFxzAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAjUxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBC4uAZIA5gFyAAIAECIELj9MAAAA6AAAAOwAAAA4AAI1OAACNVwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAjVgAAI1ZAACNWgAAjVsAAI1cAACNXQAAjV4AAI1fgQuQgQuRgQuSgQuUgQuVgQuWgQuXgQuYgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAI0+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBC44ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACNPgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQuOCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAI2BAAAAFwAAjT4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQuTgACBC44ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAjY8AAI2QAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAI0+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBC44ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAACNPgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQuOCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAjT4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELjggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAI0+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBC44ICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACNPgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiw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ldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBC6KAZIA5gFyAAIAECIELptMAAAA6AAAAOwAAAA4AAI6PAACOmAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAjpkAAI6aAACOmwAAjpwAAI6dAACOngAAjp8AAI6ggQungQuogQupgQurgQusgQutgQuugQuvgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAI5/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBC6UICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACOfwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQulCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAI7CAAAAFwAAjn8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQuqgACBC6UICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAjtAAAI7RAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAI5/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBC6UICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAACOfwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQulCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAjn8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELpQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAI5/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBC6UICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACOfwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQulCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAjx8AAAAOAAAAKAAAjyAAAAAjAAAA3QAAjyEAABefAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAjylfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBC6KApYA5gFyAAIAECIELsdMAAAA6AAAAOwAAAA4AAI8rAACPMwAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwAAjzQAAI81AACPNgAAjzcAAI84AACPOQAAjzqBC7KBC7OBC7SBC7WBC7aBC7eBC7iAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwAAjoAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIELsAgICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAI6AAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBC7AICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAACOgAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvIAAgQuwCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAB1AAAAFwAAjoAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQemgACBC7AICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAACOgAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAroAAgQuwCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAjoAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELsAgICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAA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AfIB9gH6Af4CAgIGnAACRtgAAkbcAAJG4AACRuQAAkboAAJG7AACRvIEL4IEL4YEL4oEL44EL5IEL5YEL5oBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAKM8AAAAXAACRAgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACBA62AAIEL3ggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJECAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBC94ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACRAgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQveCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACZ5AAAAFwAAkQIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQOBgACBC94ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACRAgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQveCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAkQIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAA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AljYAAJY3AACWOAAAljkAAJY6AACWOwAAljyBDDqBDDuBDDyBDD2BDD6BDD+BDECAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAlYIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEMOAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJWCAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBDDgICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACVggAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQw4CAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwAAlYIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEMOAgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAJWCAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBDDgICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACVggAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgAC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zc3RvcmFnZYEMWIBlgDmAXIAAgAQIgQxn0wAAADoAAAA7AAAADgAAmK8AAJi3AAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAACYuAAAmLkAAJi6AACYuwAAmLwAAJi9AACYvoEMaIEMaYEMaoEMa4EMbIEMbYEMboBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAKM8AAAAXAACYBAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACBA62AAIEMZggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJgEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBDGYICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACYBAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQxmCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACZ5AAAAFwAAmAQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQOBgACBDGYICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACYBAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQxmCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgA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XAACahQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBDI6AAIEMiQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAACa1gAAmtcAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAmoUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEMiQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAJqFAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBDIkICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACahQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQyJCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAmoUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEMiQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJqFAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBDIkICAgIgEqAbwgIgAAI2QAAACEAAAAlAACbJQAAAA4AAAAoAACbJgAAACMAAADdAACbJwAAlWAAAASsAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAACbL18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEMhoClgDmAXIAAgAQIgQyV0wAAADoAAAA7AAAADgAAmzEAAJs5AAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAACbOgAAmzsAAJs8AACbPQAAmz4AAJs/AACbQIEMloEMl4EMmIEMmYEMmoEMm4EMnIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAACahgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgQyUCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwAAmoYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEMlAgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAJqGAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC+gACBDJQICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAHUAAAAXAACahgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBB6aAAIEMlAgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJqGAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDJQICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACahgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQyUCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFx4AAAAFwAAmoYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQv+gACBDJQICAgIgEqAuggIgAAI0gAAADsAAAAOAACbrAAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJOEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDAwICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACThAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQwMCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAJVgAAAAFwAAk4QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQyGgACBDAwICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAACb3AAAACEAAAEmAAABJwAAm90AAAAjAAABJQAAm94AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwA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iAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAKFmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBDRYICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAw8AAAAXAAChZgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACAhoAAgQ0WCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAoWYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENFggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAKFmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBDRYICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAChZgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQ0WCAgICIBKgIEICIAACNIAAAA7AAAADgAAoowAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABFOQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgQX+CAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAARTkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEF/ggICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABHFwAAABcAAEU5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIEM8YAAgQX+CAgICIBKgLoICIAACN8QEgAAASIAAAEjAAABJAAAorwAAAAhAAABJgAAAScAAKK9AAAAIwAAASUAAKK+AAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACLAAAA7AAAAOwAAKLGAAAAMQAAAOwAAADeAAAA7AAAAgYAAEKLAAAA7AAAAOwAAKLOAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQWpCAiBDSUIgDkIgIqBBb8ICIENJAgSdLkkQdMAAAA6AAAAOwAAAA4AAKLSAACi1QAAAKCiAAACDwAAAhCAZIBlogAAotYAAKLXgQ0mgQ0xgFXZAAAAIQAAACUAAKLaAAAADgAAACgAAKLbAAAAIwAAAN0AAKLcAABCkgAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAKLkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ0jgGSAOYBcgACABAiBDSfTAAAAOgAAADsAAAAOAACi5gAAou8AAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAKLwAACi8QAAovIAAKLzAACi9AAAovUAAKL2AACi94ENKIENKYENKoENLIENLYENLoENL4ENMIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACi1gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQ0mCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAotYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENJggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAACjGQAAABcAAKLWAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIENK4AAgQ0mCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAKMnAACjKAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACi1gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQ0mCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAotYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIENJggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKLWAAAA7AAAAOwAAADsAAAAMQAAAOw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XAACkWgAAABcAAKQXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIENQoAAgQ09CAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAKRoAACkaQAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACkFwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQ09CAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAApBcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIENPQgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKQXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBDT0ICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACkFwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQ09CAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAApBcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIENPQgICAiASoBvCAiAAAjZAAAAIQAAACUAAKS3AAAADgAAACgAAKS4AAAAIwAAAN0AAKS5AABCkwAAAhAAAADeAAAA/QAAABcAAAApAAAAMQA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cgACABAiBDVXTAAAAOgAAADsAAAAOAAClaAAApXEAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAKVyAAClcwAApXQAAKV1AACldgAApXcAAKV4AACleYENVoENV4ENWIENWoENW4ENXIENXYENXoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAClWAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQ1UCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAApVgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENVAgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAClmwAAABcAAKVYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIENWYAAgQ1UCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAKWpAAClqgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAClWAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQ1UCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAApVgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIENVAgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKVYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBDVQICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAClWAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQ1UCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAApVgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIENVAgICAiASoBvCAiAAAjZAAAAIQAAACUAAKX4AAAADgAAACgAAKX5AAAAIwAAAN0AAKX6AABClAAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAKYCXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ1RgGWAOYBcgACABAiBDWDTAAAAOgAAADsAAAAOAACmBAAApgwAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAKYNAACmDgAApg8AAKYQAACmEQAAphIAAKYTgQ1hgQ1igQ1jgQ1kgQ1lgQ1mgQ1ngFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAKVZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBDV8ICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAClWQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQ1fCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACjPAAAAFwAApVkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgQOtgACBDV8ICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAJnkAAAAXAAClWQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBA4GAAIENXwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAKVZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBDV8ICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAClWQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQ1fCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAApVkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENXwgICAiASoCBCAiAAAjSAAAAOwAAAA4AAKZ/AAABPKCASd8QDwAAASIAAAE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AADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACA+4AAgQ16CAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAApsoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIENeggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAKbKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBDXoICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB9cAAAAXAACmygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACA/4AAgQ16CAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAApsoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENeggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAKbKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBDXoICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACmygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQ16CAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAAp/AAAAAhAAABJgAAAScAAKfxAAAAIwAAASUAAKfyAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAAB7AAAA7AAAAOwAAKf6AAAAMQAAAOwAAADeAAAA7AAABKIAADzAAAAA7AAAAOwAAKgCAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQU2CAiBDYUIgDkIgQLEgQVNCAiBDYQIEwAAAAEjmLSi0wAAADoAAAA7AAAADgAAqAYAAKgJAAAAoKIAAAIPAAAErIBkgKWiAACoCgAAqAuBDYaBDZGAVdkAAAAhAAAAJQAAqA4AAAAOAAAAKAAAqA8AAAAjAAAA3QAAqBAAADzLAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAqBhfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDYOAZIA5gFyAAIAECIENh9MAAAA6AAAAOwAAAA4AAKgaAACoIwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAqCQAAKglAACoJgAAqCcAAKgoAACoKQAAqCoAAKgrgQ2IgQ2JgQ2KgQ2MgQ2NgQ2OgQ2PgQ2QgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKgKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDYYICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACoCgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQ2GCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAKhNAAAAFwAAqAoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQ2LgACBDYYICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAqFsAAKhcAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKgKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBDYYICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAACoCgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQ2GCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAqAoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIENhggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAKgKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBDYYICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgA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NroENr4ENsIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAACpTAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgQ2oCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwAAqUwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIENqAgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAKlMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC+gACBDagICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAHsAAAAXAACpTAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBBTaAAIENqAgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKlMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDagICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACpTAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQ2oCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADzLAAAAFwAAqUwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQ2DgACBDagICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAACqcgAAACEAAAEmAAABJwAAqnMAAAAjAAABJQAAqnQAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHsAAADsAAAA7AAAqnwAAAAxAAAA7AAAAN4AAADsAAACBgAAPMEAAADsAAAA7AAAqoQAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBBTYICIENswiAOQiAioEFTggIgQ2yCBMAAAABF+pJMdMAAAA6AAAAOwAAAA4AAKqIAACqiwAAAKCiAAACDwAAAhCAZIBlogAAqowAAKqNgQ20gQ2/gFXZAAAAIQAAACUAAKqQAAAADgAAACgAAKqRAAAAIwAAAN0AAKqSAAA8zAAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAKqaXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ2xgGSAOYBcgACABAiBDbXTAAAAOgAAADsAAAAOAACqnAAAqqUAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAKqmAACqpwAAqqgAAKqpAACqqgAAqqsAAKqsAACqrYENtoENt4ENuIENuoENu4ENvIENvYENvoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACqjAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQ20CAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAqowAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENtAgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAACqzwAAABcAAKqMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIENuYAAgQ20CAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAKrdAACq3gAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACqjAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQ20CAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAAqowAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIENtAgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKqMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBDbQICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACqjAAAAOwAAADsAAAA7AAAADEAAAD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AABQAAADnAAAAKQAAAEIAAK9iAACvYwAAACkAAAApAAAA3gAAr2cAAK9oAAAA5AAAADFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc29yZGVyZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3N0b3JhZ2VfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc2R1cGxpY2F0ZXMJgDmAOYEODIAEgQO0gDmAAoEIk4AEgAuBHBSBDguABIAEgDmBDh2BHBWBA7QSq6wh1dMAAAA6AAAAOwAAAA4AAK9sAACvbgAAAKChAAAA8YA7oQAAr2+BDg2AVdkAAAAhAAAAJQAAr3IAAAAOAAAAKAAAr3MAAAAjAAAA3QAAr3QAAAB0AAAA8QAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAr3xfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDgqAO4A5gFyAAIAECIEODtMAAAA6AAAAOwAAAA4AAK9+AACviAAAAKCpAAABBAAAAQUAAAEGAAABBwAAAQgAAAEJAAABCgAAAQsAAAEMgD6AP4BAgEGAQoBDgESARYBGqQAAr4kAAK+KAACviwAAr4wAAK+NAACvjgAAr48AAK+QAACvkYEOD4EOEYEOEoEOFIEOFYEOF4EOGIEOGoEOG4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAr5UAAAAXAACvbwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBDhCAAIEODQgICAiASoA+CAiAAAjSAAAAOwAAAA4AAK+jAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAr28AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEODQgICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAACvtgAAABcAAK9vAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEOE4AAgQ4NCAgICIBKgEAICIAACNIAAAA7AAAADgAAr8QAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACvbwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgQ4NCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAK/XAAAAFwAAr28AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgQ4WgACBDg0ICAgIgEqAQggIgAAI0gAAADsAAAAOAACv5QAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAK9vAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAICugACBDg0ICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAr/gAAAAXAACvbwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBDhmAAIEODQgICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAACwBgAAsAcAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwAAr28AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIEODQgICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAACwGgAAABcAAK9vAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABDAAAAOwAAADsAAAAFwAAAOyAAIEOHIAAgQ4NCAgICIBKgEYICIAACF8QE1BlcnNpc3RlZERpc2N1c3Npb27TAAAAOgAAADsAAAAOAACwKQAAsEEAAACgrxAXAACwKgAAsCsAALAsAAAXggAAsC4AALAvAACwMAAAsDEAALAyAACwMwAAsDQAALA1AACwNgAAsDcAALA4AACwOQAAsDoAACo3AACwPAAAF40AALA+AACwPwAAsECBDh6BDh+BDiCBAj6BDiGBDiKBDiOBDiSBDiWBDiaBDieBDiiBDimBDiqBDiuBDiyBDi2BA9qBDi6BAkmBDi+BDjCBDjGvEBcAALBCAACwQwAAsEQAALBFAACwRgAAsEcAALBIAACwSQAAsEoAALBLAACwTAAAsE0AALBOAACwTwAAsFAAALBRAACwUgAAsFMAALBUAACwVQAAsFYAALBXAACwWIEOMoEOSYEOYIEOd4EOpYEOvIEPd4EPpYERCIERH4ERNoERTYERZIESBoESHYETB4ETHoEa/oEbFYEbLIEbRIEb5oEb/YBVXxAUcGlubmVkU2VjdGlvbktleVBhdGhfECFsYXN0T3V0Ym91bmRNZXNzYWdlU2VxdWVuY2VOdW1iZXJVdGl0bGVdcGVybWFuZW50VVVJRF8QF3BlbmRpbmdNZXNzYWdlUmVhY3Rpb25zXxATaWxsdXN0cmF0aXZlTWVzc2FnZV8QEmxvY2FsQ29uZmlndXJhdGlvbl8QE25vcm1hbGl6ZWRTZWFyY2hLZXlfECthTmV3UmVjZWl2ZWRNZXNzYWdlRG9lc01lbnRpb25Pd25lZElkZW50aXR5XxAfbGFzdFN5c3RlbU1lc3NhZ2VTZXF1ZW5jZU51bWJlcl8QFnNlbmRlclRocmVhZElkZW50aWZpZXJfEBNzaGFyZWRDb25maWd1cmF0aW9uXxAWdGltZXN0YW1wT2ZMYXN0TWVzc2FnZV8QG3JlbW90ZURlbGV0ZUFuZEVkaXRSZXF1ZXN0c18QE251bWJlck9mTmV3TWVzc2FnZXNdb3duZWRJZGVudGl0eVppc0FyY2hpdmVkXxAbbGF0ZXN0U2VuZGVyU2VxdWVuY2VOdW1iZXJzXG9uQ2hhbmdlRmxhZ15yYXdQaW5uZWRJbmRleN8QEgAAASIAAAEjAAABJAAAsG8AAAAhAAABJgAAAScAALBwAAAAIwAAASUAALBxAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAAB0AAAA7AAAAOwAALB5AAAAMQAAAOwAAADeAAAA7AAAAgYAALAqAAAA7AAAAOwAALCBAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQ4KCAiBDjQIgDkIgIqBDh4ICIEOMwgSp9JWUdMAAAA6AAAAOwAAAA4AALCFAACwiAAAAKCiAAACDwAAAhCAZIBlogAAsIkAALCKgQ41gQ5AgFXZAAAAIQAAACUAALCNAAAADgAAACgAALCOAAAAIwA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A7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEOTAgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAALHKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBDkwICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAsg0AAAAXAACxygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBDlGAAIEOTAgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAACyGwAAshwAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAscoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEOTAgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALHKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDkwICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACxygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQ5MCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAscoAAADsAAAA7AAAAOwAAAAxAAA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OAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALbPAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBDrMICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC2zwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQ6zCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADB0AAAAFwAAts8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQRRgACBDrMICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC2zwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQ6zCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAts8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEOswgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAALbPAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBDrMICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAC39QAAACEAAAEmAAABJwAAt/YAAAAjAAABJQAAt/cAAAEoAAAADgAAACUAAAEpAAABKgAAACg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AaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAvNUAAAAXAAC8kgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBDx+AAIEPGggICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAC84wAAvOQAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAvJIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPGggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAALySAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBDxoICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC8kgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQ8aCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAvJIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPGggICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALySAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBDxoICAgIgEq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XAAC91AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQ88CAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAvdQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPPAgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAL3UAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBDzwICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAMHQAAAAXAAC91AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBBFGAAIEPPAgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAL3UAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBDzwICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC91AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQ88CAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAvdQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQ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gAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAADCewAAwnwAAMJ9AADCfgAAwn8AAMKAAADCgYEPh4EPiIEPiYEPioEPi4EPjIEPjYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAADBxwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgQ+FCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAo8AAAAFwAAwccAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgQEsgACBD4UICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAADBxwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgQ+FCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACYAAAAFwAAwccAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQO4gACBD4UICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADBxwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgQ+FCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAwccAAADsAAAA7AAAAOwAAAA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AAAAXAADI4AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRAKCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAyOAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEQCggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADJIwAAABcAAMjgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEQD4AAgRAKCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAMkxAADJMgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADI4AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRAKCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAAyOAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEQCggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMjgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBEAoICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABc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AAM30AADN/QAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAzf4AAM3/AADOAAAAzgEAAM4CAADOAwAAzgQAAM4FgRBogRBpgRBqgRBsgRBtgRBugRBvgRBwgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAM3kAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEGYICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADN5AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRBmCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAM4nAAAAFwAAzeQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRBrgACBEGYICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAzjUAAM42AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAM3kAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEGYICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAADN5AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRBmCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAzeQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEQZggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAM3kAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEGYICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADN5AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRBmCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAzoQAAAAOAAAAKAAAzoUAAAAjAAAA3QAAzoYAAMYvAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAzo5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEGOAZYA5gFyAAIAECIEQctMAAAA6AAAAOwAAAA4AAM6QAADOmAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAzpkAAM6aAADOmwAAzpwAAM6dAADOngAAzp+BEHOBEHSBEHWBEHaBEHeBEHiBEHmAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAzeUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEQcQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAM3lAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBEHEICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADN5QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRBxCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAfXAAAAFwAAzeUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgP+AAIEQcQgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAM3lAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBEHEICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADN5QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRBxCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAzeUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEQcQgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAM8LAAAAIQAAASYAAAEnAADPDAAAACMAAAElAADPDQAAASgAAAA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XAADQZwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRCfCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA0GcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEQnwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANBnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBEJ8ICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAADQZwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEQnwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANBnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBEJ8ICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADQZwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRCfCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA0GcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEQnwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAANGNAAAAIQAAASYAAAEnAADRjgAAACMAAAElAADRjwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAgQAAAOwAAADsAADRlwAAADEAAADsAAAA3gAAAOwAAAIGAADGJAAAAOwAAADsAADRnwAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEPuQgIgRCqCIA5CICKgQ/WCAiBEKkIEnR7kDfTAAAAOgAAADsAAAAOAADRowAA0aYAAACgogAAAg8AAAIQgGSAZaIAANGnAADRqIEQq4EQtoBV2QAAACEAAAAlAADRqwAAAA4AAAAoAADRrAAAACMAAADdAADRrQAAxjIAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADRtV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEQqIBkgDmAXIAAgAQIgRCs0wAAADoAAAA7AAAADgAA0bcAANHAAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAADRwQAA0cIAANHDAADRxAAA0cUAANHGAADRxwAA0ciBEK2BEK6BEK+BELGBELKBELOBELSBELWAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA0acAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEQqwgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANGnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBEKsICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAA0eoAAAAXAADRpwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBELCAAIEQqwgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAADR+AAA0fkAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA0acAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEQqwgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAANGnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBEKsICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADRpwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRCrCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA0acAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEQqwgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAA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AAOyAAIBSgACBEMIICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAADS6AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRDCCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA0ugAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEQwggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANLoAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEMIICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADS6AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRDCCAgICIBKgG8ICIAACNkAAAAhAAAAJQAA04gAAAAOAAAAKAAA04kAAAAjAAAA3QAA04oAAMYzAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA05JfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEL+AZYA5gFyAAIAECIEQztMAAAA6AAAAOwAAAA4AANOUAADTnAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAA050AANOeAADTnwAA06AAANOhAADTogAA06OBEM+BENCBENGBENKBENOBENSBENWAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA0ukAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEQzQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANLpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBEM0ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADS6QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRDNCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACZ5AAAAFwAA0ukAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQOBgACBEM0ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADS6QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRDNCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA0ukAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEQzQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANLpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEM0ICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADUDwAAACEAAAEmAAABJwAA1BAAAAAjAAABJQAA1BEAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIEAAADsAAAA7AAA1BkAAAAxAAAA7AAAAN4AAADsAAACBgAAxiYAAADsAAAA7AAA1CEAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBD7kICIEQ2AiAOQiAioEP2AgIgRDXCBMAAAABG3YD3tMAAAA6AAAAOwAAAA4AANQlAADUKAAAAKCiAAACDwAAAhCAZIBlogAA1CkAANQqgRDZgRDkgFXZAAAAIQAAACUAANQtAAAADgAAACgAANQuAAAAIwAAAN0AANQvAADGNAAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAANQ3XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRDWgGSAOYBcgACABAiBENrTAAAAOgAAADsAAAAOAADUOQAA1EIAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAANRDAADURAAA1EUAANRGAADURwAA1EgAANRJAADUSoEQ24EQ3IEQ3YEQ34EQ4IEQ4YEQ4oEQ44BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADUKQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRDZCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA1CkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEQ2QgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADUbAAAABcAANQpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEQ3oAAgRDZCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AANR6AADUewAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADUKQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRDZCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAA1CkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEQ2QgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANQpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBENkICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADUKQAAAOw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AaggIgAAI0wAAADoAAAA7AAAADgAA1ywAANctAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANbbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEQsICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAADW2wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRELCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA1tsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERCwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANbbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEQsICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADW2wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRELCAgICIBKgG8ICIAACNkAAAAhAAAAJQAA13sAAAAOAAAAKAAA13wAAAAjAAAA3QAA130AALBKAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA14VfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEQiAZYA5gFyAAIAECIERF9MAAAA6AAAAOwAAAA4AANeHAADXjwAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAA15AAANeRAADXkgAA15MAANeUAADXlQAA15aBERiBERmBERqBERuBERyBER2BER6AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA1twAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERFggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANbcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBERYICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADW3AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgREWCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwAA1twAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBERYICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADW3AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgREWCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA1twAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERFggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANbcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBERYICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADYAgAAACEAAAEmAAABJwAA2AMAAAAjAAABJQAA2AQAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHQAAADsAAAA7AAA2AwAAAAxAAAA7AAAAN4AAADsAAACBgAAsDMAAADsAAAA7AAA2BQAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBDgoICIERIQiAOQiAioEOJggIgREgCBMAAAABG6kFdtMAAAA6AAAAOwAAAA4AANgYAADYGwAAAKCiAAACDwAAAhCAZIBlogAA2BwAANgdgREigREtgFXZAAAAIQAAACUAANggAAAADgAAACgAANghAAAAIwAAAN0AANgiAACwSwAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAANgqXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgREfgGSAOYBcgACABAiBESPTAAAAOgAAADsAAAAOAADYLAAA2DUAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAANg2AADYNwAA2DgAANg5AADYOgAA2DsAANg8AADYPYERJIERJYERJoERKIERKYERKoERK4ERLIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADYHAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgREiCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA2BwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERIggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADYXwAAABcAANgcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIERJ4AAgREiCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AANhtAADYbgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADYHAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgREiCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA2BwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERIggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANgcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBESIICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADYHAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgREiCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA2BwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERIggICAiASoBvCAiAAAjZAAAAIQAAACUAANi8AAAADgAAACgAANi9AAAAIwAAAN0AANi+AACwSwAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAANjGXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgREfgGWAOYBcgACABAiBES7TAAAAOgAAADsAAAAOAADYyAAA2NAAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAANjRAADY0gAA2NMAANjUAADY1QAA2NYAANjXgREvgREwgRExgREygREzgRE0gRE1gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAHqQAAABcAANgdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAID7gACBES0ICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADYHQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgREtCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA2B0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERLQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAH1wAAABcAANgdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAID/gACBES0ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADYHQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgREtCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA2B0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERLQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANgdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBES0ICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADZQwAAACEAAAEmAAABJwAA2UQAAAAjAAABJQAA2UUAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHQAAADsAAAA7AAA2U0AAAAxAAAA7AAAAN4AAADsAAACBgAAsDQAAADsAAAA7AAA2VUAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBDgoICIEROAiAOQiAioEOJwgIgRE3CBIr03uL0wAAADoAAAA7AAAADgAA2VkAANlcAAAAoKIAAAIPAAACEIBkgGWiAADZXQAA2V6BETmBEUSAVdkAAAAhAAAAJQAA2WEAAAAOAAAAKAAA2WIAAAAjAAAA3QAA2WMAALBMAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA2WtfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBETaAZIA5gFyAAIAECIEROtMAAAA6AAAAOwAAAA4AANltAADZdgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAA2XcAANl4AADZeQAA2XoAANl7AADZfAAA2X0AANl+gRE7gRE8gRE9gRE/gRFAgRFBgRFCgRFDgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANldAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBETkICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADZXQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRE5CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAANmgAAAAFwAA2V0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRE+gACBETkICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAA2a4AANmvAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANldAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBETkICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADZXQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRE5CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA2V0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEROQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANldAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBETkICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADZXQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRE5CAgICIBKgG8ICIAACNkAAAAhAAAAJQAA2f0AAAAOAAAAKAAA2f4AAAAjAAAA3QAA2f8AALBMAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA2gdfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBETaAZYA5gFyAAIAECIERRdMAAAA6AAAAOwAAAA4AANoJAADaEQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAA2hIAANoTAADaFAAA2hUAANoWAADaFwAA2hiBEUaBEUeBEUiBEUmBEUqBEUuBEUyAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACjPAAAAFwAA2V4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgQOtgACBEUQICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADZXgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRFECAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA2V4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERRAgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAmeQAAABcAANleAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEDgYAAgRFECAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA2V4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERRAgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANleAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBEUQICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADZXgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRFECAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAA2oQAAAAhAAABJgAAAScAANqFAAAAIwAAASUAANqGAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAAB0AAAA7AAAAOwAANqOAAAAMQAAAOwAAADeAAAA7AAAAgYAALA1AAAA7AAAAOwAANqWAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQ4KCAiBEU8IgDkIgIqBDigICIERTggS8aaCQdMAAAA6AAAAOwAAAA4AANqaAADanQAAAKCiAAACDwAAAhCAZIBlogAA2p4AANqfgRFQgRFbgFXZAAAAIQAAACUAANqiAAAADgAAACgAANqjAAAAIwAAAN0AANqkAACwTQAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAANqsXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRFNgGSAOYBcgACABAiBEVHTAAAAOgAAADsAAAAOAADargAA2rcAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAANq4AADauQAA2roAANq7AADavAAA2r0AANq+AADav4ERUoERU4ERVIERVoERV4ERWIERWYERWoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADangAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRFQCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA2p4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERUAgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADa4QAAABcAANqeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIERVYAAgRFQCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AANrvAADa8AAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADangAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRFQCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA2p4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERUAgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANqeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBEVAICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADangAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRFQCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA2p4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERUAgICAiASoBvCAiAAAjZAAAAIQAAACUAANs+AAAADgAAACgAANs/AAAAIwAAAN0AANtAAACwTQAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAANtIXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRFNgGWAOYBcgACABAiBEVzTAAAAOgAAADsAAAAOAADbSgAA21IAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAANtTAADbVAAA21UAANtWAADbVwAA21gAANtZgRFdgRFegRFfgRFggRFhgRFigRFjgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANqfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBEVsICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADanwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRFbCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA2p8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERWwgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAwdAAAABcAANqfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEEUYAAgRFbCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA2p8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERWwgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANqfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBEVsICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADanwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRFbCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAA28UAAAAhAAABJgAAAScAANvGAAAAIwAAASUAANvHAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAAB0AAAA7AAAAOwAANvPAAAAMQAAAOwAAADeAAAA7AAABKIAALA2AAAA7AAAAOwAANvXAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQ4KCAiBEWYIgDkIgQLEgQ4pCAiBEWUIElPzPWvTAAAAOgAAADsAAAAOAADb2wAA294AAACgogAAAg8AAASsgGSApaIAANvfAADb4IERZ4ERcoBV2QAAACEAAAAlAADb4wAAAA4AAAAoAADb5AAAACMAAADdAADb5QAAsE4AAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADb7V8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYERZIBkgDmAXIAAgAQIgRFo0wAAADoAAAA7AAAADgAA2+8AANv4AAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAADb+QAA2/oAANv7AADb/AAA2/0AANv+AADb/wAA3ACBEWmBEWqBEWuBEW2BEW6BEW+BEXCBEXGAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA298AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERZwgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANvfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBEWcICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAA3CIAAAAXAADb3wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBEWyAAIERZwgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAADcMAAA3DEAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA298AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERZwgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANvfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEWcICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADb3wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRFnCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA298AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERZwgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANvfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEWcICAgIgEqAbwgIgAAI2QAAACEAAAAlAADcfwAAAA4AAAAoAADcgAAAACMAAADdAADcgQAAsE4AAASsAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADciV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYERZIClgDmAXIAAgAQIgRFz0wAAADoAAAA7AAAADgAA3IsAANyTAAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAADclAAA3JUAANyWAADclwAA3JgAANyZAADcmoERdIERdYERdoERd4ESA4ESBIESBYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAADb4AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgRFyCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAo8AAAAFwAA2+AAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgQEsgACBEXIICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAADb4AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgRFyCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACMAAAAFwAA2+AAAADsAAA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AASsAAAAXAADeHwAAABcAAN3cAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIERl4AAgRGSCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAN4tAADeLgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADd3AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRGSCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAA3dwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIERkggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAN3cAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBEZIICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADd3AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRGSCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA3dwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERkggICAiASoBvCAiAAAjZAAAAIQAAACUAAN58AAAADgAAACgAAN59AAAAIwAAAN0AAN5+AADduAAAAhAAAADeAAAA/QAAABcAAAA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ASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAN8eAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBEbQICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADfHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRG0CAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACZ5AAAAFwAA3x4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQOBgACBEbQICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADfHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRG0CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA3x4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERtAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAN8eAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEbQICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADgRAAAACEAAAEmAAABJwAA4EUAAAAjAAABJQAA4EYAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIwAAADsAAAA7AAA4E4AAAAxAAAA7AAAAN4AAADsAAAEogAAKjkAAADsAAAA7AAA4FYAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEXgICIERvwiAOQiBAsSBA9wICIERvggSmpH3T9MAAAA6AAAAOwAAAA4AAOBaAADgXQAAAKCiAAACDwAABKyAZIClogAA4F4AAOBfgRHAgRHLgFXZAAAAIQAAACUAAOBiAAAADgAAACgAAOBjAAAAIwAAAN0AAOBkAADdugAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAOBsXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRG9gGSAOYBcgACABAiBEcHTAAAAOgAAADsAAAAOAADgbgAA4HcAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAOB4AADgeQAA4HoAAOB7AADgfAAA4H0AAOB+AADgf4ERwoERw4ERxIERxoERx4ERyIERyYERyoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADgXgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRHACAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA4F4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERwAgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADgoQAAABcAAOBeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIERxYAAgRHACAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAOCvAADgsAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADgXgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRHACAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAA4F4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIERwAgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOBeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBEcAICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADgXgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRHACAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA4F4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQ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oAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADhoAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRHiCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA4aAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIER4ggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOGgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBEeIICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAALzIAAAAXAADhoAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBBDmAAIER4ggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOGgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBEeIICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADhoAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRHiCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABc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BIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB9cAAAAXAADi4QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACA/4AAgRH5CAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA4uEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIER+QgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOLhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBEfkICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADi4QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRH5CAgICIBKgIEICIAACNIAAAA7AAAADgAA5AcAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADb4AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgRFyCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA2+AAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERcggICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADdugAAABcAANvgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIERvYAAgRFyCAgICIBKgLoICIAACN8QEgAAASIAAAEjAAABJAAA5DcAAAAhAAABJgAAAScAAOQ4AAAAIwAAASUAAOQ5AAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAAB0AAAA7AAAAOwAAORBAAAAMQAAAOwAAADeAAAA7AAAAgYAALA3AAAA7AAAAOwAAORJAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQ4KCAiBEggIgDkIgIqBDioICIESBwgSwG4aQNMAAAA6AAAAOwAAAA4AAORNAADkUAAAAKCiAAACDwAAAhCAZIBlogAA5FEAAORSgRIJgRIUgFXZAAAAIQAAACUAAORVAAAADgAAACgAAORWAAAAIwAAAN0AAORXAACwTwAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAORfXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRIGgGSAOYBcgACABAiBEgrTAAAAOgAAADsAAAAOAADkYQAA5GoAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAORrAADkbAAA5G0AAORuAADkbwAA5HAAAORxAADkcoESC4ESDIESDYESD4ESEIESEYESEoESE4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADkUQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRIJCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA5FEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESCQgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADklAAAABcAAORRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIESDoAAgRIJCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAOSiAADkowAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADkUQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRIJCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA5FEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIESCQgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAORRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBEgkICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADkUQAAAOwAAADsAAAA7AAAADEAAAD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7AAAADgAA5j4AAOZGAAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAADmRwAA5kgAAOZJAADmSgAA5ksAAOZMAADmTYESLYESLoESL4ESMIETBIETBYETBoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAADlkwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgRIrCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAo8AAAAFwAA5ZMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgQEsgACBEisICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAADlkwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvIAAgRIrCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAB4AAAAFwAA5ZMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgRIxgACBEisICAgIgEqAtwgIgAAI3xAQAADmjAAA5o0AAOaOAADmjwAAACEAAOaQAADmkQAAACMAAOaSAADmkwAAAA4AAAAlAADmlAAA5pUAAAAoAAAA3QAAAN4AAOaXAAAAKQAAACkAAAAUAADmmwAAAOQAAAAxAAAAKQAAAN4AAADnAAAARgAAAN4AAOaiAADmowAAAOxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNkdXBsaWNhdGVzXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc29yZGVyZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3N0b3JhZ2WAOYESRIAEgASAAoESM4EDtIAEgDmBCJOAD4A5gRMDgRIyCBLNWHSL0wAAADoAAAA7AAAADgAA5qcAAOapAAAAoKEAAADxgDuhAADmqoESNIBV2QAAACEAAAAlAADmrQAAAA4AAAAoAADmrgAAACMAAADdAADmrwAAAHgAAADxAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADmt18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESMYA7gDmAXIAAgAQIgRI10wAAADoAAAA7AAAADgAA5rkAAObDAAAAoKkAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkAAAEKAAABCwAAAQyAPoA/gECAQYBCgEOARIBFgEapAADmxAAA5sUAAObGAADmxwAA5sgAAObJAADmygAA5ssAAObMgRI2gRI4gRI5gRI7gRI8gRI+gRI/gRJBgRJCgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADm0AAAABcAAOaqAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBAAAAOwAAADsAAAAFwAAAOyAAIESN4AAgRI0CAgICIBKgD4ICIAACNIAAAA7AAAADgAA5t4AAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADmqgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQUAAADsAAAA7AAAABcAAADsgACAAIAAgRI0CAgICIBKgD8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAObxAAAAFwAA5qoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEGAAAA7AAAAOwAAAAXAAAA7IAAgRI6gACBEjQICAgIgEqAQAgIgAAI0gAAADsAAAAOAADm/wAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOaqAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEjQICAgIgEqAQQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAA5xIAAAAXAADmqgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQgAAADsAAAA7AAAABcAAADsgACBEj2AAIESNAgICAiASoBCCAiAAAjSAAAAOwAAAA4AAOcgAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA5qoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEJAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIESNAgICAiASoBDCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADnMwAAABcAAOaqAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCgAAAOwAAADsAAAAFwAAAOyAAIESQIAAgRI0CAgICIBKgEQICIAACNMAAAA6AAAAOwAAAA4AAOdBAADnQgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAbUAAAAXAADmqgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQsAAADsAAAA7AAAABcAAADsgACAV4AAgRI0CAgICIBKgEUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAOdVAAAAFwAA5qoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEMAAAA7AAAAOwAAAAXAAAA7IAAgRJDgACBEjQICAgIgEqARggIgAAIXxAaUmVtb3RlRGVsZXRlQW5kRWRpdFJlcXVlc3TTAAAAOgAAADsAAAAOAADnZAAA520AAACgqAAA52UAAOdmAADnZwAA52gAAOdpAADnagAAKjEAACo5gRJFgRJGgRJHgRJIgRJJgRJKgQPVgQPcqAAA524AAOdvAADncAAA53EAAOdyAADncwAA53QAAOd1gRJLgRJigRJ5gRKQgRKngRK+gRLVgRLsgFVfEBBzZW5kZXJJZGVudGlmaWVyXxAUc2VuZGVyU2VxdWVuY2VOdW1iZXJfEBZzZW5kZXJUaHJlYWRJZGVudGlmaWVyXxAPc2VydmVyVGltZXN0YW1wXnJhd1JlcXVlc3RUeXBlXxAVcmVtb3RlRGVsZXRlcklkZW50aXR53xASAAABIgAAASMAAAEkAADnfgAAACEAAAEmAAABJwAA538AAAAjAAABJQAA54AAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHgAAADsAAAA7AAA54gAAAAxAAAA7AAAAN4AAADsAAACBgAA52UAAADsAAAA7AAA55AAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEjEICIESTQiAOQiAioESRQgIgRJMCBKGhQ0G0wAAADoAAAA7AAAADgAA55QAAOeXAAAAoKIAAAIPAAACEIBkgGWiAADnmAAA55mBEk6BElmAVdkAAAAhAAAAJQAA55wAAAAOAAAAKAAA550AAAAjAAAA3QAA554AAOduAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA56ZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEkuAZIA5gFyAAIAECIEST9MAAAA6AAAAOwAAAA4AAOeoAADnsQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAA57IAAOezAADntAAA57UAAOe2AADntwAA57gAAOe5gRJQgRJRgRJSgRJUgRJVgRJWgRJXgRJYgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOeYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEk4ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADnmAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRJOCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAOfbAAAAFwAA55gAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRJTgACBEk4ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAA5+kAAOfqAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOeYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEk4ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADnmAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRJOCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA55gAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIESTggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOeYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEk4ICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADnmAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRJOCAgICIBKgG8ICIAACNkAAAAhAAAAJQAA6DgAAAAOAAAAKAAA6DkAAAAjAAAA3QAA6DoAAOduAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA6EJfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEkuAZYA5gFyAAIAECIESWtMAAAA6AAAAOwAAAA4AAOhEAADoTAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAA6E0AAOhOAADoTwAA6FAAAOhRAADoUgAA6FOBEluBElyBEl2BEl6BEl+BEmCBEmGAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA55kAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESWQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOeZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBElkICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADnmQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRJZCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwAA55kAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIESWQgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOeZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBElkICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADnmQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRJZCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA55kAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESWQgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAOi/AAAAIQAAASYAAAEnAADowAAAACMAAAElAADowQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAeAAAAOwAAADsAADoyQAAADEAAADsAAAA3gAAAOwAAAIGAADnZgAAAOwAAADsAADo0QAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIESMQgIgRJkCIA5CICKgRJGCAiBEmMIEptuR3DTAAAAOgAAADsAAAAOAADo1QAA6NgAAACgogAAAg8AAAIQgGSAZaIAAOjZAADo2oESZYEScIBV2QAAACEAAAAlAADo3QAAAA4AAAAoAADo3gAAACMAAADdAADo3wAA528AAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADo518QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESYoBkgDmAXIAAgAQIgRJm0wAAADoAAAA7AAAADgAA6OkAAOjyAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAADo8wAA6PQAAOj1AADo9gAA6PcAAOj4AADo+QAA6PqBEmeBEmiBEmmBEmuBEmyBEm2BEm6BEm+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA6NkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIESZQgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOjZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBEmUICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAA6RwAAAAXAADo2QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBEmqAAIESZQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAADpKgAA6SsAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA6NkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIESZQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOjZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEmUICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADo2QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRJlCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA6NkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESZQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOjZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEmUICAgIgEqAbwgIgAAI2QAAACEAAAAlAADpeQAAAA4AAAAoAADpegAAACMAAADdAADpewAA528AAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADpg18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESYoBlgDmAXIAAgAQIgRJx0wAAADoAAAA7AAAADgAA6YUAAOmNAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAADpjgAA6Y8AAOmQAADpkQAA6ZIAAOmTAADplIEScoESc4ESdIESdYESdoESd4ESeIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADo2gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRJwCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA6NoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEScAgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOjaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBEnAICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAJnkAAAAXAADo2gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBA4GAAIEScAgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOjaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBEnAICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADo2gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRJwCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA6NoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEScAgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAOoAAAAAIQAAASYAAAEnAADqAQAAACMAAAElAADqAgAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAeAAAAOwAAADsAADqCgAAADEAAADsAAAA3gAAAOwAAAIGAADnZwAAAOwAAADsAADqEgAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIESMQgIgRJ7CIA5CICKgRJHCAiBEnoIEl/6ndrTAAAAOgAAADsAAAAOAADqFgAA6hkAAACgogAAAg8AAAIQgGSAZaIAAOoaAADqG4ESfIESh4BV2QAAACEAAAAlAADqHgAAAA4AAAAoAADqHwAAACMAAADdAADqIAAA53AAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADqKF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESeYBkgDmAXIAAgAQIgRJ90wAAADoAAAA7AAAADgAA6ioAAOozAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAADqNAAA6jUAAOo2AADqNwAA6jgAAOo5AADqOgAA6juBEn6BEn+BEoCBEoKBEoOBEoSBEoWBEoaAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA6hoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIESfAgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOoaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBEnwICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAA6l0AAAAXAADqGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBEoGAAIESfAgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAADqawAA6mwAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA6hoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIESfAgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOoaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEnwICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADqGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRJ8CAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA6hoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESfAgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOoaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEnwICAgIgEqAbwgIgAAI2QAAACEAAAAlAADqugAAAA4AAAAoAADquwAAACMAAADdAADqvAAA53AAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADqxF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESeYBlgDmAXIAAgAQIgRKI0wAAADoAAAA7AAAADgAA6sYAAOrOAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAADqzwAA6tAAAOrRAADq0gAA6tMAAOrUAADq1YESiYESioESi4ESjIESjYESjoESj4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADqGwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRKHCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA6hsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEShwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOobAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBEocICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAMHQAAAAXAADqGwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBBFGAAIEShwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOobAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBEocICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADqGwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRKHCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA6hsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEShwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAOtBAAAAIQAAASYAAAEnAADrQgAAACMAAAElAADrQwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAeAAAAOwAAADsAADrSwAAADEAAADsAAAA3gAAAOwAAAIGAADnaAAAAOwAAADsAADrUwAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIESMQgIgRKSCIA5CICKgRJICAiBEpEIEwAAAAEZmwqF0wAAADoAAAA7AAAADgAA61cAAOtaAAAAoKIAAAIPAAACEIBkgGWiAADrWwAA61yBEpOBEp6AVdkAAAAhAAAAJQAA618AAAAOAAAAKAAA62AAAAAjAAAA3QAA62EAAOdxAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA62lfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEpCAZIA5gFyAAIAECIESlNMAAAA6AAAAOwAAAA4AAOtrAADrdAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAA63UAAOt2AADrdwAA63gAAOt5AADregAA63sAAOt8gRKVgRKWgRKXgRKZgRKagRKbgRKcgRKdgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOtbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEpMICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADrWwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRKTCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAOueAAAAFwAA61sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRKYgACBEpMICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAA66wAAOutAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOtbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEpMICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADrWwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRKTCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA61sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIESkwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOtbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEpMICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADrWwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRKTCAgICIBKgG8ICIAACNkAAAAhAAAAJQAA6/sAAAAOAAAAKAAA6/wAAAAjAAAA3QAA6/0AAOdxAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA7AVfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEpCAZYA5gFyAAIAECIESn9MAAAA6AAAAOwAAAA4AAOwHAADsDwAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAA7BAAAOwRAADsEgAA7BMAAOwUAADsFQAA7BaBEqCBEqGBEqKBEqOBEqSBEqWBEqaAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA61wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESnggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOtcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBEp4ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADrXAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRKeCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAGG2AAAAFwAA61wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQgxgACBEp4ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADrXAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRKeCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA61wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESnggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOtcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEp4ICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADsggAAACEAAAEmAAABJwAA7IMAAAAjAAABJQAA7IQAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHgAAAD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AAOdyAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA7UZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEqeAZYA5gFyAAIAECIESttMAAAA6AAAAOwAAAA4AAO1IAADtUAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAA7VEAAO1SAADtUwAA7VQAAO1VAADtVgAA7VeBEreBEriBErmBErqBEruBEryBEr2AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA7J0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEStQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOydAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBErUICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADsnQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRK1CAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACZ5AAAAFwAA7J0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQOBgACBErUICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADsnQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRK1CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA7J0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEStQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOydAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBErUICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADtwwAAACEAAAEmAAABJwAA7cQAAAAjAAABJQAA7cUAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHgAAADsAAAA7AAA7c0AAAAxAAAA7AAAAN4AAADsAAACBgAA52oAAADsAAAA7AAA7dUAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEjEICIESwAiAOQiAioESSggIgRK/CBMAAAABACzJGtMAAAA6AAAAOwAAAA4AAO3ZAADt3AAAAKCiAAACDwAAAhCAZIBlogAA7d0AAO3egRLBgRLMgFXZAAAAIQAAACUAAO3hAAAADgAAACgAAO3iAAAAIwAAAN0AAO3jAADncwAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAO3rXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRK+gGSAOYBcgACABAiBEsLTAAAAOgAAADsAAAAOAADt7QAA7fYAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAO33AADt+AAA7fkAAO36AADt+wAA7fwAAO39AADt/oESw4ESxIESxYESx4ESyIESyYESyoESy4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADt3QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRLBCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA7d0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESwQgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADuIAAAABcAAO3dAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIESxoAAgRLBCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAO4uAADuLwAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADt3QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRLBCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAA7d0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIESwQgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAO3dAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBEsEICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADt3QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRLBCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA7d0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIESwQgICAiASoBvCAiAAAjZAAAAIQAAACUAAO59AAAADgAAACgAAO5+AAAAIwAAAN0AAO5/AADncwAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAO6HXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRK+gGWAOYBcgACABAiBEs3TAAAAOgAAADsAAAAOAADuiQAA7pEAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAO6SAADukwAA7pQAAO6VAADulgAA7pcAAO6YgRLOgRLPgRLQgRLRgRLSgRLTgRLUgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAO3eAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBEswICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADt3gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRLMCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA7d4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESzAgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAAO3eAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBEswICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADt3gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRLMCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA7d4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESzAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAO3eAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEswICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADvBAAAACEAAAEmAAABJwAA7wUAAAAjAAABJQAA7wYAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHgAAADsAAAA7AAA7w4AAAAxAAAA7AAAAN4AAADsAAACBgAAKjEAAADsAAAA7AAA7xYAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEjEICIES1wiAOQiAioED1QgIgRLWCBLSuDU70wAAADoAAAA7AAAADgAA7xoAAO8dAAAAoKIAAAIPAAACEIBkgGWiAADvHgAA7x+BEtiBEuOAVdkAAAAhAAAAJQAA7yIAAAAOAAAAKAAA7yMAAAAjAAAA3QAA7yQAAOd0AAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA7yxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEtWAZIA5gFyAAIAECIES2dMAAAA6AAAAOwAAAA4AAO8uAADvNwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAA7zgAAO85AADvOgAA7zsAAO88AADvPQAA7z4AAO8/gRLagRLbgRLcgRLegRLfgRLggRLhgRLigFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAO8eAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEtgICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADvHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRLYCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAO9hAAAAFwAA7x4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRLdgACBEtgICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAA728AAO9wAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAO8eAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEtgICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAADvHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRLYCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA7x4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIES2AgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAO8eAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEtgICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADvHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRLYCAgICIBKgG8ICIAACNkAAAAhAAAAJQAA774AAAAOAAAAKAAA778AAAAjAAAA3QAA78AAAOd0AAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA78hfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEtWAZYA5gFyAAIAECIES5NMAAAA6AAAAOwAAAA4AAO/KAADv0gAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAA79MAAO/UAADv1QAA79YAAO/XAADv2AAA79mBEuWBEuaBEueBEuiBEumBEuqBEuuAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA7x8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIES4wgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAO8fAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBEuMICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADvHwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRLjCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwAA7x8AAAD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yiAAA8okAAPKKAADyi4ETF4ETGIETGYETGoETG4ETHIETHYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAKM8AAAAXAADx0QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACBA62AAIETFQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPHRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBExUICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADx0QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRMVCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACZ5AAAAFwAA8dEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQOBgACBExUICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADx0QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRMVCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA8dEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIETFQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAPHRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBExUICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADy9wAAACEAAAEmAAABJwAA8vgAAAAjAAABJQAA8vkAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHQAAADsAAAA7AAA8wEAAAAxAAAA7AAAAN4AAADsAAAEogAAsDoAAADsAAAA7AAA8wkAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBDgoICIETIAiAOQiBAsSBDi0ICIETHwgSsyTncdMAAAA6AAAAOwAAAA4AAPMNAADzEAAAAKCiAAACDwAABKyAZIClogAA8xEAAPMSgRMhgRMsgFXZAAAAIQAAACUAAPMVAAAADgAAACgAAPMWAAAAIwAAAN0AAPMXAACwUgAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAPMfXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRMegGSAOYBcgACABAiBEyLTAAAAOgAAADsAAAAOAADzIQAA8yoAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAPMrAADzLAAA8y0AAPMuAADzLwAA8zAAAPMxAADzMoETI4ETJIETJYETJ4ETKIETKYETKoETK4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADzEQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRMhCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA8xEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIETIQgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADzVAAAABcAAPMRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIETJoAAgRMhCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAPNiAADzYwAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADzEQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRMhCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAA8xEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIETIQgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPMRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBEyEICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAA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AaYBqgGuAbIBtgG6Ab6gAAPamAAD2pwAA9qgAAPapAAD2qgAA9qsAAPasAAD2rYETeIETeYETeoETfIETfYETfoETf4ETgIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAD2jAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRN2CAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA9owAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIETdggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAD2zwAAABcAAPaMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIETe4AAgRN2CAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAPbdAAD23gAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAD2jAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRN2CAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA9owAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIETdggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPaMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBE3YICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD2jAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRN2CAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA9owAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIETdggICAiASoBvCAiAAAjZAAAAIQAAACUAAPcsAAAADgAAACgAAPctAAAAIwAAAN0AAPcuAAD1AwAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAPc2XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRNzgGWAOYBcgACABAiBE4LTAAAAOgAAADsAAAAOAAD3OAAA90AAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAPdBAAD3QgAA90MAAPdEAAD3RQAA90YAAPdHgRODgROEgROFgROGgROHgROIgROJgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAPaNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBE4EICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAD2jQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgROBCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA9o0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIETgQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAmeQAAABcAAPaNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEDgYAAgROBCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA9o0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIETgQgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAPaNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBE4EICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD2jQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgROBCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAA97MAAAAhAAABJgAAAScAAPe0AAAAIwAAASUAAPe1AAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACeAAAA7AAAAOwAAPe9AAAAMQAAAOwAAADeAAAA7AAAAgYAAPTrAAAA7AAAAOwAAPfFAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRMyCAiBE4wIgDkIgIqBE0kICIETiwgSPyFFcdMAAAA6AAAAOwAAAA4AAPfJAAD3zAAAAKCiAAACDwAAAhCAZIBlogAA980AAPfOgRONgROYgFXZAAAAIQAAACUAAPfRAAAADgAAACgAAPfSAAAAIwAAAN0AAPfTAAD1BAAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAPfbXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgROKgGSAOYBcgACABAiBE47TAAAAOgAAADsAAAAOAAD33QAA9+YAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAPfnAAD36AAA9+kAAPfqAAD36wAA9+wAAPftAAD37oETj4ETkIETkYETk4ETlIETlYETloETl4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAD3zQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRONCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA980AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIETjQgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAD4EAAAABcAAPfNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIETkoAAgRONCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAPgeAAD4HwAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAD3zQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRONCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA980AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIETjQgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPfNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBE40ICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD3zQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRONCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA980AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIETjQgICAiASoBvCAiAAAjZAAAAIQAAACUAAPhtAAAADgAAACgAAPhuAAAAIwAAAN0AAPhvAAD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AAADsgACAAIAAgROvCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA+Q8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIETrwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAPkPAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBE68ICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAw8AAAAXAAD5DwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACAhoAAgROvCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA+Q8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIETrwgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAPkPAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBE68ICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD5DwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgROvCAgICIBKgIEICIAACN8QEgA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AASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAHqQAAABcAAPuRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAID7gACBE90ICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAD7kQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRPdCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA+5EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIET3QgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAH1wAAABcAAPuRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAID/gACBE90ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD7kQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRPdCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA+5EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIET3QgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAPuRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBE90ICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAD8twAAACEAAAEmAAABJwAA/LgAAAAjAAABJQAA/LkAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJ4AAADsAAAA7AAA/MEAAAAxAAAA7AAAAN4AAADsAAACBgAA9O8AAADsAAAA7AAA/MkAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEzIICIET6AiAOQiAioETTQgIgRPnCBLXLBKq0wAAADoAAAA7AAAADgAA/M0AAPzQAAAAoKIAAAIPAAACEIBkgGWiAAD80QAA/NKBE+mBE/SAVdkAAAAhAAAAJQAA/NUAAAAOAAAAKAAA/NYAAAAjAAAA3QAA/NcAAPUIAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA/N9fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBE+aAZIA5gFyAAIAECIET6tMAAAA6AAAAOwAAAA4AAPzhAAD86gAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAA/OsAAPzsAAD87QAA/O4AAPzvAAD88AAA/PEAAPzygRPrgRPsgRPtgRPvgRPwgRPxgRPygRPzgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPzRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBE+kICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD80QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRPpCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAP0UAAAAFwAA/NEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRPugACBE+kICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAA/SIAAP0jAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPzRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBE+kICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAD80QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRPpCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA/NEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIET6QgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAPzRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBE+kICAgIgEq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AAAA7AAAADgABAOUAAQDmAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAQCUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFC4ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEAlAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRQuCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABAJQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEULggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQCUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFC4ICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEAlAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRQuCAgICIBKgG8ICIAACNkAAAAhAAAAJQABATQAAAAOAAAAKAABATUAAAAjAAAA3QABATYAAPULAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABAT5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFCuAZYA5gFyAAIAECIEUOtMAAAA6AAAAOwAAAA4AAQFAAAEBSAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABAUkAAQFKAAEBSwABAUwAAQFNAAEBTgABAU+BFDuBFDyBFD2BFD6BFD+BFECBFEGAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACjPAAAAFwABAJUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgQOtgACBFDkICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEAlQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRQ5CAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABAJUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEUOQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAmeQAAABcAAQCVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEDgYAAgRQ5CAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABAJUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEUOQgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQCVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFDkICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEAlQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRQ5CAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABAbsAAAAhAAABJgAAAScAAQG8AAAAIwAAASUAAQG9AAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACeAAAA7AAAAOwAAQHFAAAAMQAAAOwAAADeAAAA7AAABKIAAPTzAAAA7AAAAOwAAQHNAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRMyCAiBFEQIgDkIgQLEgRNRCAiBFEMIEjtKIP7TAAAAOgAAADsAAAAOAAEB0QABAdQAAACgogAAAg8AAASsgGSApaIAAQHVAAEB1oEURYEUUIBV2QAAACEAAAAlAAEB2QAAAA4AAAAoAAEB2gAAACMAAADdAAEB2wAA9QwAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAEB418QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEUQoBkgDmAXIAAgAQIgRRG0wAAADoAAAA7AAAADgABAeUAAQHuAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAEB7wABAfAAAQHxAAEB8gABAfMAAQH0AAEB9QABAfaBFEeBFEiBFEmBFEuBFEyBFE2BFE6BFE+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABAdUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEURQgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQHVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFEUICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABAhgAAAAXAAEB1QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBFEqAAIEURQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAECJgABAicAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABAdUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEURQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAQHVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFEUICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEB1QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRRFCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABAdUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEURQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAQHVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFEUICAgIgEqAbwgIgAAI2QAAACEAAAAlAAECdQAAAA4AAAAoAAECdgAAACMAAADdAAECdwAA9QwAAASsAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAECf18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEUQoClgDmAXIAAgAQIgRRR0wAAADoAAAA7AAAADgABAoEAAQKJAAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAAECigABAosAAQKMAAECjQABAo4AAQKPAAECkIEUUoEUU4EUVIEUVYEUVoEUV4EUWIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAEB1gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgRRQCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAo8AAAAFwABAdYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgQEsgACBFFAICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAEB1gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvIAAgRRQCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAB8AAAAFwABAdYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgMGAAIEUUAgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAQHWAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAICugACBFFAICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEB1gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgRRQCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAa4AAAAFwABAdYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgRRZgACBFFAICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAEC/AAAACEAAAEmAAABJwABAv0AAAAjAAABJQABAv4AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHwAAADsAAAA7AABAwYAAAAxAAA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BFH4ICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEEWAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRR+CAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABBFgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEUfggICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAH1wAAABcAAQRYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAID/gACBFH4ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEEWAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRR+CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABBFgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEUfggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQRYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFH4ICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAE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AAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABBtoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEUrAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAQbaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBFKwICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEG2gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRSsCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwABBtoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEUrAgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQbaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBFKwICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEG2gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRSsCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABBtoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEUrAgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAQgAAAAAIQAAASYAAAEnAAEIAQAAACMAAAElAAEIAgAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAngAAAOwAAADsAAEICgAAADEAAADsAAAA3gAAAOwAAASiAAD09wAAAOwAAADsAAEIEgAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIETMggIgRS3CIA5CIECxIETVAgIgRS2CBJFezV60wAAADoAAAA7AAAADgABCBYAAQgZAAAAoKIAAAIPAAAErIBkgKWiAAEIGgABCBuBFLiBFMOAVdkAAAAhAAAAJQABCB4AAAAOAAAAKAABCB8AAAAjAAAA3QABCCAAAPUQAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABCChfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFLWAZIA5gFyAAIAECIEUudMAAAA6AAAAOwAAAA4AAQgqAAEIMwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABCDQAAQg1AAEINgABCDcAAQg4AAEIOQABCDoAAQg7gRS6gRS7gRS8gRS+gRS/gRTAgRTBgRTCgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAQgaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFLgICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEIGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRS4CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAQhdAAAAFwABCBoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRS9gACBFLgICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABCGsAAQhsAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAQgaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFLgICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEIGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRS4CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABCBoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEUuAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQgaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFLgICAgIgEqAbggIgAA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AABcAAAAXAAAAFwABD70AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEVcQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAQ+9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBFXEICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEPvQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRVxCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAfXAAAAFwABD70AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgP+AAIEVcQgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQ+9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBFXEICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEPvQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRVxCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABD70AAADsAAAA7AAAAOwAAAA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BEkIAAAAOAAAAKAABEkMAAAAjAAAA3QABEkQAAQ+TAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABEkxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFZGAZIA5gFyAAIAECIEVldMAAAA6AAAAOwAAAA4AARJOAAESVwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABElgAARJZAAESWgABElsAARJcAAESXQABEl4AARJfgRWWgRWXgRWYgRWagRWbgRWcgRWdgRWegFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARI+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFZQICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAESPgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRWUCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAARKBAAAAFwABEj4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRWZgACBFZQICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABEo8AARKQAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARI+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFZQICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAESPgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRWUCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABEj4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVlAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARI+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFZQICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAESPgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRWUCAgICIBKgG8ICIAACNkAAAAhAAAAJQABEt4AAAAOAAAAKAABEt8AAAAjAAAA3QABEuAAAQ+TAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABEuhfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFZGAZYA5gFyAAIAECIEVoNMAAAA6AAAAOwAAAA4AARLqAAES8gAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABEvMAARL0AAES9QABEvY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AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVqwgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARN/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFasICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABE8IAAAAXAAETfwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBFbCAAIEVqwgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAET0AABE9EAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABE38AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVqwgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARN/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFasICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAETfwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRWrCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABE38AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEVqwgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARN/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFasICAgIgEqAbwgIgAAI2QAAACEAAAAlAAEUHwAAAA4AAAAoAAEUIAAAACMAAADdAAEUIQABD5QAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAEUKV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEVqIBlgDmAXIAAgAQIgRW30wAAADoAAAA7AAAADgABFCsAARQzAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAEUNAABFDUAARQ2AAEUNwABFDgAARQ5AAEUOoEVuIEVuYEVuoEVu4EVvIEVvYEVvoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAETgAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRW2CAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABE4AAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVtggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAROAAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBFbYICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAw8AAAAXAAETgAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACAhoAAgRW2CAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABE4AAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEVtggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAROAAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFbYICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAETgAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRW2CAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABFKYAAAAhAAABJgAAAScAARSnAAAAIwAAASUAARSoAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAAB+AAAA7AAAAOwAARSwAAAAMQAAAOwAAADeAAAA7AAABKIAAQ+MAAAA7AAAAOwAARS4AAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRVECAiBFcEIgDkIgQLEgRVgCAiBFcAIEsKgYKLTAAAAOgAAADsAAAAOAAEUvAABFL8AAACgogAAAg8AAASsgGSApaIAARTAAAEUwYEVwoEVzYBV2QAAACEAAAAlAAEUxAAAAA4AAAAoAAEUxQAAACMAAADdAAEUxgABD5UAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAEUzl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEVv4BkgDmAXIAAgAQIgRXD0wAAADoAAAA7AAAADgABFNAAARTZAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAEU2gABFNsAARTcAAEU3QABFN4AARTfAAEU4AABFOGBFcSBFcWBFcaBFciBFcmBFcqBFcuBFcyAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABFMAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVwggICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARTAAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFcIICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABFQMAAAAXAAEUwAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBFceAAIEVwggICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAEVEQABFRIAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABFMAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVwggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAARTAAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBFcIICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEUwAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRXCCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABFMAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEVwggICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARTAAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFcIICAgIgEqAbwgIgAAI2QAAACEAAAAlAAEVYAAAAA4AAAAoAAEVYQAAACMAAADdAAEVYgABD5UAAASsAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAEVal8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEVv4ClgDmAXIAAgAQIgRXO0wAAADoAAAA7AAAADgABFWwAARV0AAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAAEVdQABFXYAARV3AAEVeAABFXkAARV6AAEVe4EVz4EV0IEV0YEV0oEV04EV1IEV1YBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAEUwQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgRXNCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwABFMEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEVzQgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAARTBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC+gACBFc0ICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAIcAAAAXAAEUwQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBFPiAAIEVzQgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARTBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFc0ICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEUwQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgRXNCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAQw5AAAAFwABFMEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgRUwgACBFc0ICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAEV5wAAACEAAAEmAAABJwABFegAAAAjAAABJQABFekAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH4AAADsAAAA7AABFfEAAAAxAAAA7AAAAN4AAADsAAACBgABD40AAADsAAAA7AABFfkAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBFUQICIEV2AiAOQiAioEVYQgIgRXXCBLwNL0M0wAAADoAAAA7AAAADgABFf0AARYAAAAAoKIAAAIPAAACEIBkgGWiAAEWAQABFgKBFdmBFeSAVdkAAAAhAAAAJQABFgUAAAAOAAAAKAABFgYAAAAjAAAA3QABFgcAAQ+WAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABFg9fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFdaAZIA5gFyAAIAECIEV2tMAAAA6AAAAOwAAAA4AARYRAAEWGgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABFhsAARYcAAEWHQABFh4AARYfAAEWIAABFiEAARYigRXbgRXcgRXdgRXfgRXggRXhgRXigRXjgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARYBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFdkICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEWAQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRXZCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAARZEAAAAFwABFgEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRXegACBFdkICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABFlIAARZTAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARYBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFdkICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEWAQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRXZCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABFgEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEV2QgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARYBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFdkICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEWAQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRXZCAgICIBKgG8ICIAACNkAAAAhAAAAJQABFqEAAAAOAAAAKAABFqIAAAAjAAAA3QABFqMAAQ+WAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABFqtfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFdaAZYA5gFyAAIAECIEV5dMAAAA6AAAAOwAAAA4AARatAAEWtQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABFrYAARa3AAEWuAABFrkAARa6AAEWuwABFryBFeaBFeeBFeiBFemBFeqBFeuBFeyAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABFgIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEV5AgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARYCAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBFeQICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEWAgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRXkCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwABFgIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEV5AgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARYCAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBFeQICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEWAgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRXkCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABFgIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEV5AgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAARcoAAAAIQAAASYAAAEnAAEXKQAAACMAAAElAAEXKgAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAfgAAAOwAAADsAAEXMgAAADEAAADsAAAA3gAAAOwAAAIGAAAK4wAAAOwAAADsAAEXOgAAAOxfECBYREJ1Y2t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AAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAARidAAEYngABGJ8AARigAAEYoQABGKIAARijAAEYpIEWCYEWCoEWC4EWDYEWDoEWD4EWEIEWEYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEYgwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRYHCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABGIMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWBwgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAEYxgAAABcAARiDAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEWDIAAgRYHCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AARjUAAEY1QAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEYgwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRYHCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABGIMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEWBwgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARiDAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBFgcICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEYgwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRYHCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABGIMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEWBwgICAiASoBvCAiAAAjZAAAAIQAAACUAARkjAAAADgAAACgAARkkAAAAIwAAAN0AARklAAEPmAAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAARktXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRYEgGWAOYBcgACABAiBFhPTAAAAOgAAADsAAAAOAAEZLwABGTcAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAARk4AAEZOQABGToAARk7AAEZPAABGT0AARk+gRYUgRYVgRYWgRYXgRYYgRYZgRYagFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARiEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBFhIICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEYhAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRYSCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABGIQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWEggICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAARiEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBFhIICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEYhAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRYSCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABGIQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWEggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARiEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFhIICAgIgEqAgQgIgAAI0gAAADsAAAAOAAEZqgAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAA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GAAAA7AAAAOwAAAAXAAAA7IAAgRY8gACBFjYICAgIgEqAQAgIgAAI0gAAADsAAAAOAAEbYQAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARsMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFjYICAgIgEqAQQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABG3QAAAAXAAEbDAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQgAAADsAAAA7AAAABcAAADsgACBFj+AAIEWNggICAiASoBCCAiAAAjSAAAAOwAAAA4AARuCAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABGwwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEJAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEWNggICAiASoBDCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAEblQAAABcAARsMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCgAAAOwAAADsAAAAFwAAAOyAAIEWQoAAgRY2CAgICIBKgEQICIAACNMAAAA6AAAAOwAAAA4AARujAAEbpAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAbUAAAAXAAEbDAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQsAAADsAAAA7AAAABcAAADsgACAV4AAgRY2CAgICIBKgEUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAARu3AAAAFwABGwwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEMAAAA7AAAAOwAAAAXAAAA7IAAgRZFgACBFjYICAgIgEqARggIgAAIXxAVRGlzcGxheWVkQ29udGFjdEdyb3Vw0wAAADoAAAA7AAAADgABG8YAARvTAAAAoKwAARvHAAEbyAABG8kAARvKAAEbywABG8wAARvNAACwLAABG88AARvQAAEb0QAAF5KBFkeBFkiBFkmBFkqBFkuBFkyBFk2BDiCBFk6BFk+BFlCBAk2sAAEb1AABG9UAARvWAAEb1wABG9gAARvZAAEb2gABG9sAARvcAAEb3QABG94AARvfgRZRgRZ/gRaWgRatgRbEgRbbgRbygRcJgRcggRc3gRdOgRdlgFVXZ3JvdXBWMl8QEHVwZGF0ZUluUHJvZ3Jlc3NYc3VidGl0bGVbc2VjdGlvbk5hbWVdcGVybWFuZW50VVVJRF8QGXJhd1B1Ymxpc2hlZERldGFpbHNTdGF0dXNXZ3JvdXBWMV8QEm93blBlcm1pc3Npb25BZG1pbl8QE25vcm1hbGl6ZWRTZWFyY2hLZXlfEBFub3JtYWxpemVkU29ydEtled8QEgAAASIAAAEjAAABJAABG+wAAAAhAAABJgAAAScAARvtAAAAIwAAASUAARvuAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACDAAAA7AAAAOwAARv2AAAAMQAAAOwAAADeAAAA7AAABKIAARvHAAAA7AAAAOwAARv+AAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRYzCAiBFlMIgDkIgQLEgRZHCAiBFlIIEwAAAAEZjRHJ0wAAADoAAAA7AAAADgABHAIAARwFAAAAoKIAAAIPAAAErIBkgKWiAAEcBgABHAeBFlSBFl+AVdkAAAAhAAAAJQABHAoAAAAOAAAAKAABHAsAAAAjAAAA3QABHAwAARvUAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABHBRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFlGAZIA5gFyAAIAECIEWVdMAAAA6AAAAOwAAAA4AARwWAAEcHwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABHCAAARwhAAEcIgABHCMAARwkAAEcJQABHCYAARwngRZWgRZXgRZYgRZagRZbgRZcgRZdgRZegFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARwGAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFlQICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEcBgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRZUCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAARxJAAAAFwABHAYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRZZgACBFlQICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABHFcAARxYAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARwGAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFlQICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAE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hAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAR1HAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFmsICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABHYoAAAAXAAEdRwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBFnCAAIEWawgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAEdmAABHZkAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABHUcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEWawgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAR1HAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBFmsICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEdRwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRZrCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABHUcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWawgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAA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XAAABjgAAABcAAR/JAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFpkICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEfyQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRaZCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAASAMAAAAFwABH8kAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRaegACBFpkICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABIBoAASAbAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAR/JAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFpkICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAEfyQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRaZCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABH8kAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEWmQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAR/JAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFpkICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEfyQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRaZCAgICIBKgG8ICIAACNkAAAAhAAAAJQABIGkAAAAOAAAAKAABIGoAAAAjAAAA3QABIGsAARvWAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABIHNfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFpaAZYA5gFyAAIAECIEWpdMAAAA6AAAAOwAAAA4AASB1AAEgfQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABIH4AASB/AAEggAABIIEAASCCAAEggwABIISBFqaBFqeBFqiBFqmBFqqBFquBFqyAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABH8oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWpAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAR/KAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBFqQICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEfygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRakCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwABH8oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBFqQICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEfygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRakCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABH8oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWpAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAR/KAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFqQICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAEg8AAAACEAAAEmAAABJwABIPEAAAAjAAABJQABIPIAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIMAAADsAAAA7AABIPoAAAAxAAAA7AAAAN4AAADsAAACBgABG8oAAADsAAAA7AABIQIAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXN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0ZXNzdG9yYWdlgRatgGWAOYBcgACABAiBFrzTAAAAOgAAADsAAAAOAAEhtgABIb4AAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAASG/AAEhwAABIcEAASHCAAEhwwABIcQAASHFgRa9gRa+gRa/gRbAgRbBgRbCgRbDgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASELAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBFrsICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEhCwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRa7CAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABIQsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWuwgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAANxgAAABcAASELAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEBgIAAgRa7CAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABIQsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWuwgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASELAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFrsICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEhCwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRa7CAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABIjEAAAAhAAABJgAAAScAASIyAAAAIwAAASUAASIzAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACDAAAA7AAAAOwAASI7AAAAMQAAAOwAAADeAAAA7AAAAgYAARvLAAAA7AAAAOwAASJDAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRYzCAiBFsYIgDkIgIqBFksICIEWxQgS5iDgytMAAAA6AAAAOwAAAA4AASJHAAEiSgAAAKCiAAACDwAAAhCAZIBlogABIksAASJMgRbHgRbSgFXZAAAAIQAAACUAASJPAAAADgAAACgAASJQAAAAIwAAAN0AASJRAAEb2AAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAASJZXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRbEgGSAOYBcgACABAiBFsjTAAAAOgAAADsAAAAOAAEiWwABImQAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAASJlAAEiZgABImcAASJoAAEiaQABImoAASJrAAEibIEWyYEWyoEWy4EWzYEWzoEWz4EW0IEW0YBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEiSwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRbHCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABIksAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWxwgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAEijgAAABcAASJLAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEWzIAAgRbHCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AASKcAAEinQAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEiSwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRbHCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABIksAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEWxwgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASJLAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBFscICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEiSwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRbHCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABIksAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEWxwgICAiASoBvCAiAAAjZAAAAIQAAACUAASLrAAAADgAAACgAASLsAAAAIwAAAN0AASLtAAEb2AAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAASL1XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRbEgGWAOYBcgACABAiBFtPTAAAAOgAAADsAAAAOAAEi9wABIv8AAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAASMAAAEjAQABIwIAASMDAAEjBAABIwUAASMGgRbUgRbVgRbWgRbXgRbYgRbZgRbagFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASJMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBFtIICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEiTAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRbSCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABIkwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEW0ggICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAwdAAAABcAASJMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEEUYAAgRbSCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABIkwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEW0ggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASJMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFtIICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEiTAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRbSCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABI3IAAAAhAAABJgAAAScAASNzAAAAIwAAASUAASN0AAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACDAAAA7AAAAOwAASN8AAAAMQAAAOwAAADeAAAA7AAAAgYAARvMAAAA7AAAAOwAASOEAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRYzCAiBFt0IgDkIgIqBFkwICIEW3AgSbQOM+dMAAAA6AAAAOwAAAA4AASOIAAEjiwAAAKCiAAACDwAAAhCAZIBlogABI4wAASONgRbegRbpgFXZAAAAIQAAACUAASOQAAAADgAAACgAASORAAAAIwAAAN0AASOSAAEb2QAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAASOaXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRbbgGSAOYBcgACABAiBFt/TAAAAOgAAADsAAAAOAAEjnAABI6UAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAASOmAAEjpwABI6gAASOpAAEjqgABI6sAASOsAAEjrYEW4IEW4YEW4oEW5IEW5YEW5oEW54EW6IBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEjjAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRbeCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABI4wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEW3ggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAEjzwAAABcAASOMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEW44AAgRbeCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AASPdAAEj3gAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEjjAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRbeCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABI4wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEW3ggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASOMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBFt4ICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEjjAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRbeCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABI4wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEW3ggICAiASoBvCAiAAAjZAAAAIQAAACUAASQsAAAADgAAACgAASQtAAAAIwAAAN0AASQuAAEb2QAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAASQ2XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRbbgGWAOYBcgACABAiBFurTAAAAOgAAADsAAAAOAAEkOAABJEAAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAASRBAAEkQgABJEMAASREAAEkRQABJEYAASRHgRbrgRbsgRbtgRbugRbvgRbwgRbxgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAozwAAABcAASONAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIEDrYAAgRbpCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABI40AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEW6QgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASONAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBFukICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAJnkAAAAXAAEjjQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBA4GAAIEW6QgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASONAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBFukICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEjjQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRbpCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABI40AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEW6QgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAASSzAAAAIQAAASYAAAEnAAEktAAAACMAAAElAAEktQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAgwAAAOwAAADsAAEkvQAAADEAAADsAAAA3gAAAOwAAASiAAEbzQAAAOwAAADsAAEkxQAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEWMwgIgRb0CIA5CIECxIEWTQgIgRbzCBMAAAABGjIR5NMAAAA6AAAAOwAAAA4AASTJAAEkzAAAAKCiAAACDwAABKyAZIClogABJM0AASTOgRb1gRcAgFXZAAAAIQAAACUAASTRAAAADgAAACgAASTSAAAAIwAAAN0AASTTAAEb2gAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAASTbXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRbygGSAOYBcgACABAiBFvbTAAAAOgAAADsAAAAOAAEk3QABJOYAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAASTnAAEk6AABJOkAASTqAAEk6wABJOwAASTtAAEk7oEW94EW+IEW+YEW+4EW/IEW/YEW/oEW/4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEkzQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRb1CAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABJM0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEW9QgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAElEAAAABcAASTNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEW+oAAgRb1CAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AASUeAAElHwAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEkzQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRb1CAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwABJM0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEW9QgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASTNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBFvUICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEkzQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRb1CAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABJM0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEW9QgICAiASoBvCAiAAAjZAAAAIQAAACUAASVtAAAADgAAACgAASVuAAAAIwAAAN0AASVvAAEb2gAABKwAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAASV3XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRbygKWAOYBcgACABAiBFwHTAAAAOgAAADsAAAAOAAEleQABJYEAAACgpwAABV0AAAVeAAAFXwAABWAAAAVhAAAFYgAABWOAtIC1gLaAt4C4gLmAuqcAASWCAAElgwABJYQAASWFAAElhgABJYcAASWIgRcCgRcDgRcEgRcFgRcGgRcHgRcIgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAASTOAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXQAAAOwAAADsAAAAFwAAAOyAAIC8gACBFwAICAgIgEqAtAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAEkzgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACAvoAAgRcACAgICIBKgLUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwABJM4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVfAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEXAAgICAiASoC2CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAhwAAABcAASTOAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYAAAAOwAAADsAAAAFwAAAOyAAIEU+IAAgRcACAgICIBKgLcICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABJM4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXAAgICAiASoC4CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASTOAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYgAAAOwAAADsAAAAFwAAAOyAAIBSgACBFwAICAgIgEqAuQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABDDoAAAAXAAEkzgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWMAAADsAAAA7AAAABcAAADsgACBFh+AAIEXAAgICAiASoC6CAiAAAjfEBIAAAEiAAABIwAAASQAASX0AAAAIQAAASYAAAEnAAEl9QAAACMAAAElAAEl9gAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAgwAAAOwAAADsAAEl/gAAADEAAADsAAAA3gAAAOwAAAIGAACwLAAAAOwAAADsAAEmBgAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEWMwgIgRcLCIA5CICKgQ4gCAiBFwoIEsTjrWDTAAAAOgAAADsAAAAOAAEmCgABJg0AAACgogAAAg8AAAIQgGSAZaIAASYOAAEmD4EXDIEXF4BV2QAAACEAAAAlAAEmEgAAAA4AAAAoAAEmEwAAACMAAADdAAEmFAABG9sAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAEmHF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEXCYBkgDmAXIAAgAQIgRcN0wAAADoAAAA7AAAADgABJh4AASYnAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAEmKAABJikAASYqAAEmKwABJiwAASYtAAEmLgABJi+BFw6BFw+BFxCBFxKBFxOBFxSBFxWBFxaAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABJg4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXDAgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASYOAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFwwICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABJlEAAAAXAAEmDgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBFxGAAIEXDAgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAEmXwABJmAAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABJg4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXDAgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAASYOAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBFwwICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEmDgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRcMCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABJg4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEXDAgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASYOAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwA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BJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASiQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFzoICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABKNMAAAAXAAEokAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBFz+AAIEXOggICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAEo4QABKOIAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABKJAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXOggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASiQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFzoICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEokAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRc6CAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABKJAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEXOggICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAA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AASqIAAEqiQABKooAASqLAAEqjIEXXoEXX4EXYIEXYYEXYoEXY4EXZIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEp0gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRdcCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABKdIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXXAgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASnSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBF1wICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAAEp0gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEXXAgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASnSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBF1wICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEp0gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRdcCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABKdIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEXXAgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAASr4AAAAIQAAASYAAAEnAAEq+QAAACMAAAElAAEq+gAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAgwAAAOwAAADsAAErAgAAADEAAADsAAAA3gAAAOwAAAIGAAAXkgAAAOwAAADsAAErCgAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEWMwgIgRdnCIA5CICKgQJNCAiBF2YIEotIa3rTAAAAOgAAADsAAAAOAAErDgABKxEAAACgogAAAg8AAAIQgGSAZaIAASsSAAErE4EXaIEXc4BV2QAAACEAAAAlAAErFgAAAA4AAAAoAAErFwAAACMAAADdAAErGAABG98AAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAErIF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEXZYBkgDmAXIAAgAQIgRdp0wAAADoAAAA7AAAADgABKyIAASsrAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAErLAABKy0AASsuAAErLwABKzAAASsxAAErMgABKzOBF2qBF2uBF2yBF26BF2+BF3CBF3GBF3KAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABKxIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXaAgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASsSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBF2gICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABK1UAAAAXAAErEgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBF22AAIEXaAgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAErYwABK2QAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABKxIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXaAgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAASsSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBF2gICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAErEgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRdoCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABKxIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEXaAgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASsSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBF2gICAgIgEqAbwgIgAAI2QAAACEAAAAlAAErsgAAAA4AAAAoAAErswAAACMAAADdAAErtAABG98AAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAErvF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEXZYBlgDmAXIAAgAQIgRd00wAAADoAAAA7AAAADgABK74AASvGAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAErxwABK8gAASvJAAErygABK8sAASvMAAErzYEXdYEXdoEXd4EXeIEXeoEXe4EXfIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAErEwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRdzCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABKxMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXcwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASsTAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBF3MICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABK/4AAAAXAAErEwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBF3mAAIEXcwgICAiASoB+CAiAAAgRBLDfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASsTAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBF3MICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAErEwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRdzCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABKxMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEXcwgICAiASoCBCAiAAAjSAAAAOwAAAA4AASw6AAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABGfUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEWLQgICAiASoC4CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARn1AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYgAAAOwAAADsAAAAFwAAAOyAAIBSgACBFi0ICAgIgEqAuQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABG9oAAAAXAAEZ9QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWMAAADsAAAA7AAAABcAAADsgACBFvKAAIEWLQgICAiASoC6CAiAAAjfEBIAAAEiAAABIwAAASQAASxqAAAAIQAAASYAAAEnAAEsawAAACMAAAElAAEsbAAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAhwAAAOwAAADsAAEsdAAAADEAAADsAAAA3gAAAOwAAASiAAEMLgAAAOwAAADsAAEsfAAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEU+AgIgReDCIA5CIECxIEVEwgIgReCCBJScTVT0wAAADoAAAA7AAAADgABLIAAASyDAAAAoKIAAAIPAAAErIBkgKWiAAEshAABLIWBF4SBF4+AVdkAAAAhAAAAJQABLIgAAAAOAAAAKAABLIkAAAAjAAAA3QABLIoAAQw7AAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABLJJfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBF4GAZIA5gFyAAIAECIEXhdMAAAA6AAAAOwAAAA4AASyUAAEsnQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABLJ4AASyfAAEsoAABLKEAASyiAAEsowABLKQAASylgReGgReHgReIgReKgReLgReMgReNgReOgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASyEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBF4QICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEshAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgReECAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAASzHAAAAFwABLIQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgReJgACBF4QICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABLNUAASzWAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASyEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBF4QICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAEshAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgReECAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABLIQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXhAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASyEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBF4QICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEshAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgReECAgICIBKgG8ICIAACNkAAAAhAAAAJQABLSQAAAAOAAAAKAABLSUAAAAjAAAA3QABLSYAAQw7AAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABLS5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBF4GApYA5gFyAAIAECIEXkNMAAAA6AAAAOwAAAA4AAS0wAAEtOAAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwABLTkAAS06AAEtOwABLTwAAS09AAEtPgABLT+BF5GBF5KBF5OBF5SBF5WBF5aBF5eAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwABLIUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEXjwgICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAASyFAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBF48ICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAEshQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgRePCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACeAAAAFwABLIUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgRMygACBF48ICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEshQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgRePCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABLIUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXjwgICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAD1FQAAABcAASyFAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIEXmIAAgRePCAgICIBKgLoICIAACN8QEgAAASIAAAEjAAABJAABLasAAAAhAAABJgAAAScAAS2sAAAAIwAAASUAAS2tAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACeAAAA7AAAAOwAAS21AAAAMQAAAOwAAADeAAAA7AAABKIAAPT8AAAA7AAAAOwAAS29AAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxA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yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEXmIClgDmAXIAAgAQIgRen0wAAADoAAAA7AAAADgABLnEAAS55AAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAAEuegABLnsAAS58AAEufQABLn4AAS5/AAEugIEXqIEXqYEXqoEXq4EXrIEXrYEXroBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAEtxgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgRemCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAo8AAAAFwABLcYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgQEsgACBF6YICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAEtxgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvIAAgRemCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACHAAAAFwABLcYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgRT4gACBF6YICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAEtxgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABc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vZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRfdgGSAOYBcgACABAiBF+HTAAAAOgAAADsAAAAOAAExmAABMaEAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAATGiAAExowABMaQAATGlAAExpgABMacAATGoAAExqYEX4oEX44EX5IEX5oEX54EX6IEX6YEX6oBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAExiAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRfgCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABMYgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEX4AgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAExywAAABcAATGIAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEX5YAAgRfgCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AATHZAAEx2gAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAExiAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRfgCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABMYgAAADsAAAA7AAAAOwAAAAxAAAA7AA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AFwAAABcAAAAXAAEyyQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRf3CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAATMMAAAAFwABMskAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRf8gACBF/cICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABMxoAATMbAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATLJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBF/cICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEyyQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRf3CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABMskAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEX9wgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATLJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBF/cICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAA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A7AAAABcAAADsgACAUoAAgRglCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABNUsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYJQgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAE1jgAAABcAATVLAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEYKoAAgRglCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AATWcAAE1nQAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE1SwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRglCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABNUsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEYJQgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATVLAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBGCUICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE1SwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAA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AAAA7AAAADgABNogAATaLAAAAoKIAAAIPAAACEIBkgGWiAAE2jAABNo2BGDyBGEeAVdkAAAAhAAAAJQABNpAAAAAOAAAAKAABNpEAAAAjAAAA3QABNpIAAQxBAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABNppfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGDmAZIA5gFyAAIAECIEYPdMAAAA6AAAAOwAAAA4AATacAAE2pQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABNqYAATanAAE2qAABNqkAATaqAAE2qwABNqwAATatgRg+gRg/gRhAgRhCgRhDgRhEgRhFgRhGgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATaMAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGDwICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE2jAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRg8CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAATbPAAAAFwABNowAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRhBgACBGDwICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABNt0AATbeAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASk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AAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABN80AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEYUwgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATfNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBGFMICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABOBAAAAAXAAE3zQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBGFiAAIEYUwgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAE4HgABOB8AAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABN80AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEYUwgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAATfNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBGFMICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE3zQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRhTCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABN80AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYUwgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATfNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBGFMICAgIgEqAbwgIgAAI2QAAACEAAAAlAAE4bQAAAA4AAAAoAAE4bgAAACMAAADdAAE4bwABDEIAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAE4d18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEYUIBlgDmAXIAAgAQIgRhf0wAAADoAAAA7AAAADgABOHkAATiBAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAE4ggABOIMAATiEAAE4hQABOIYAATiHAAE4iIEYYIEYYYEYYoEYY4EYZIEYZYEYZoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE3zgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRheCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABN84AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEYXggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATfOAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBGF4ICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABK/4AAAAXAAE3zgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBF3mAAIEYXggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATfOAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBGF4ICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE3zgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRheCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABN84AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYXggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAATj0AAAAIQAAASYAAAEnAAE49QAAACMAAAElAAE49gAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAhwAAAOwAAADsAAE4/gAAADEAAADsAAAA3gAAAOwAAASiAAAqOQAAAOwAAADsAAE5BgAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V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AAQQAAADsAAAA7AAAABcAAADsgACBGIGAAIEYfggICAiASoA+CAiAAAjSAAAAOwAAAA4AATpaAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABOiYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYfggICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAE6bQAAABcAATomAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEYhIAAgRh+CAgICIBKgEAICIAACNIAAAA7AAAADgABOnsAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE6JgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgRh+CAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAATqOAAAAFwABOiYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgRiHgACBGH4ICAgIgEqAQggIgAAI0gAAADsAAAAOAAE6nAAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATomAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGH4ICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABOq8AAAAXAAE6JgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBGIqAAIEYfggICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAAE6vQABOr4AAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwABOiYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIEYfggICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAE60QAAABcAATomAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABDAAAAOwAAADsAAAAFwAAAOyAAIEYjYAAgRh+CAgICIBKgEYICIAACF8QGFBlcnNpc3RlZEdyb3VwRGlzY3Vzc2lvbtMAAAA6AAAAOwAAAA4AATrgAAE65AAAAKCjAAE64QABOuIAATrjgRiPgRiQgRiRowABOuUAATrmAAE654EYkoEYqYEYwIBVW3Jhd0dyb3VwVUlEXxAYcmF3T3duZXJJZGVudGl0eUlkZW50aXR5XxAPcmF3Q29udGFjdEdyb3Vw3xASAAABIgAAASMAAAEkAAE67QAAACEAAAEmAAABJwABOu4AAAAjAAABJQABOu8AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJwAAADsAAAA7AABOvcAAAAxAAAA7AAAAN4AAADsAAACBgABOuEAAADsAAAA7AABOv8AAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBGHsICIEYlAiAOQiAioEYjwgIgRiTCBJ5nSf30wAAADoAAAA7AAAADgABOwMAATsGAAAAoKIAAAIPAAACEIBkgGWiAAE7BwABOwiBGJWBGKCAVdkAAAAhAAAAJQABOwsAAAAOAAAAKAABOwwAAAAjAAAA3QABOw0AATrlAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABOxVfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGJKAZIA5gFyAAIAECIEYltMAAAA6AAAAOwAAAA4AATsXAAE7IAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABOyEAATsiAAE7IwABOyQAATslAAE7JgABOycAATsogRiXgRiYgRiZgRibgRicgRidgRiegRifgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATsHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGJUICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE7BwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRiVCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAATtKAAAAFwABOwcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRiagACBGJUICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABO1gAATtZAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATsHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBGJUICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAE7BwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRiVCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABOwcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEYlQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATsHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGJUICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE7BwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRiVCAgICIBKgG8ICIAACNkAAAAhAAAAJQABO6cAAAAOAAAAKAABO6gAAAAjAAAA3QABO6kAATrlAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABO7FfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGJKAZYA5gFyAAIAECIEYodMAAAA6AAAAOwAAAA4AATuzAAE7uwAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABO7wAATu9AAE7vgABO78AATvAAAE7wQABO8KBGKKBGKOBGKSBGKWBGKaBGKeBGKiAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABOwgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYoAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATsIAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBGKAICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE7CAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRigCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwABOwgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEYoAgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATsIAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBGKAICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE7CAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRigCAgICIBKgIAICIA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xAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgQEsgACBGRsICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAFBOAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvIAAgRkbCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACXAAAAFwABQTgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgRjggACBGRsICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAFBOAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAroAAgRkbCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABQTgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEZGwgICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAE/1QAAABcAAUE4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIEY9oAAgRkbCAgICIBKgLoICIAACN8QEgAAASIAAAEjAAABJAABQl4AAAAhAAABJgAAAScAAUJfAAAAIwAAASUAAUJgAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACXAAAA7AAAAOwAAUJoAAAAMQAAAOwAAADeAAA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IgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFDugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRlJCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABQ7oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEZSQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAANxgAAABcAAUO6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEBgIAAgRlJCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABQ7oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEZSQgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAUO6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBGUkICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFDugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRlJCAgICIBKgIEICIAACNIAAAA7AAAADgABROAAAAE8oQABPu2BGN+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AAUUtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBGWUICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFFLQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRllCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABRS0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEZZQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAAUUtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBGWUICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFFLQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRllCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABRS0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEZZQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAUUtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGWUICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAFGUwAAACEAAAEmAAABJwABRlQAAAAjAAABJQABRlUAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJ4AAADsAAAA7AABRl0AAAAxAAAA7AAAAN4AAADsAAACBgAA9PkAAADsAAAA7AABRmUAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEzIICIEZcAiAOQiAioETVggIgRlvCBLV2HK00wAAADoAAAA7AAAADgABRmkAAUZsAAAAoKIAAAIPAAACEIBkgGWiAAFGbQABRm6BGXGBGXyAVdkAAAAhAAAAJQABRnEAAAAOAAAAKAABRnIAAAAjAAAA3QABRnMAAPUSAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABRntfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGW6AZIA5gFyAAIAECIEZctMAAAA6AAAAOwAAAA4AAUZ9AAFGhgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABRocAAUaIAAFGiQABRooAAUaLAAFGjAABRo0AAUaOgRlzgRl0gRl1gRl3gRl4gRl5gRl6gRl7gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAUZtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGXEICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFGbQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRlxCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAUawAAAAFwABRm0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRl2gACBGXEICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABRr4AAUa/AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAUZtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBGXEICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAFGbQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRlxCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABRm0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEZcQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAUZtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGXEICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgA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0ZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNkdXBsaWNhdGVzXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3N0b3JhZ2VfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zb3JkZXJlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZV8QIVhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zc3RvcmFnZV8QJFhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zZHVwbGljYXRlcwiAOYA5gRmbgASBA7SAOYACgQiTgASAJIEaPIEZmoAEgASAOYEZrIEaPYEDtBMAAAABCry8ItMAAAA6AAAAOwAAAA4AAUjLAAFIzQAAAKChAAAA8YA7oQABSM6BGZyAVdkAAAAhAAAAJQABSNEAAAAOAAAAKAABSNIAAAAjAAAA3QABSNMAAACNAAAA8QAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABSNtfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGZmAO4A5gFyAAIAECIEZndMAAAA6AAAAOwAAAA4AAUjdAAFI5wAAAKCpAAABBAAAAQUAAAEGAAABBwAAAQgAAAEJAAABCgAAAQsAAAEMgD6AP4BAgEGAQoBDgESARYBGqQABSOgAAUjpAAFI6gABSOsAAUjsAAFI7QABSO4AAUjvAAFI8IEZnoEZoIEZoYEZo4EZpIEZpoEZp4EZqYEZqoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABSPQAAAAXAAF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AAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAUr4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGcwICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFK+AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRnMCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAUs7AAAAFwABSvgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRnRgACBGcwICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABS0kAAUtKAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAUr4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBGcwICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAFK+AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRnMCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABSvgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEZzAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQ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AAAAoAAABKwAAABcAAAGOAAAAFwABTXsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEaBQgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAU17AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBGgUICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAJnkAAAAXAAFNewAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBA4GAAIEaBQgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAU17AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBGgUICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFNewAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRoFCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABTXsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEaBQgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAU6hAAAAIQAAASYAAAEnAAFOogAAACMAAAElAAFOowAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwA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BNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRozCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABT/0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEaMwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAU/9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBGjMICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAYbYAAAAXAAFP/QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBCDGAAIEaMwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAU/9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBGjMICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFP/QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRozCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABT/0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIE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XAAAA7IAAgRpLgACBGkIICAgIgEqAQggIgAAI0gAAADsAAAAOAAFRxQAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAVFPAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGkIICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABUdgAAAAXAAFRTwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBGk6AAIEaQggICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAAFR5gABUecAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwABUU8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIEaQggICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAFR+gAAABcAAVFPAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABDAAAAOwAAADsAAAAFwAAAOyAAIEaUYAAgRpCCAgICIBKgEYICIAACF8QKVBlcnNpc3RlZEludml0YXRpb25PbmVUb09uZUludml0YXRpb25TZW500wAAADoAAAA7AAAADgABUgkAAVILAAAAoKEAAVIKgRpToQABUgyBGlSAVV8QEnJhd0NvbnRhY3RJZGVudGl0ed8QEgAAASIAAAEjAAABJAABUhAAAAAhAAABJgAAAScAAVIRAAAAIwAAASUAAVISAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACOAAAA7AAAAOwAAVIaAAAAMQAAAOwAAADeAAAA7AAAAgYAAVIKAAA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AAAAXAAFSKwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRpiCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABUisAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEaYggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAVIrAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGmIICAgIgEqAgQgIgAAI0gAAADsAAAAOAAFTUQAAATyhAAFRJ4EaPoBJEoPEVW3fEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAUevAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAICugACBGZMICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFHrwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgRmTCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAUmRAAAAFwABR68AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgRnJgACBGZMICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAFTgwAAACEAAAEmAAABJwABU4QAAAAjAAABJQABU4UAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJ4AAADsAAAA7AABU40AAAAxAAAA7AAAAN4AAADsAAACBgAACuMAAADsAAAA7AABU5UAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEzIICIEacgiAOQiAioEBOwgIgRpxCBKhKruw0wAAADoAAAA7AAAADgABU5kAAVOcAAAAoKIAAAIPAAACEIBkgGWiAAFTnQABU56BGnOBGn6AVdkAAAAhAAAAJQABU6EAAAAOAAAAKAABU6IAAAAjAAAA3QABU6MAAPUUAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABU6tfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGnCAZIA5gFyAAIAECIEadNMAAAA6AAAAOwAAAA4AAVOtAAFTtgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABU7cAAVO4AAFTuQABU7oAAVO7AAFTvAABU70AAVO+gRp1gRp2gRp3gRp5gRp6gRp7gRp8gRp9gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAVOdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGnMICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFTnQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRpzCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAVPgAAAAFwABU50AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRp4gACBGnMICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABU+4AAVPvAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAVOdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBGnMICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFTnQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRpzCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABU50AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEacwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAVOdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGnMICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFTnQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRpzCAgICIBKgG8ICIAACNkAAAAhAAA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A7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEalQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAVTfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBGpUICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFU3wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRqVCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAASv+AAAAFwABVN8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgRd5gACBGpUICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFU3wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRqVCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABVN8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEalQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAVTfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGpUICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAFWBQAAACEAAAEmAAABJwABVgYAAAAjAAABJQABVgcAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJ4AAADsAAAA7AABVg8AAAAxAAAA7AAAAN4AAADsAAACBgAA9P4AAADsAAAA7AABVhcAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEzIICIEaoAiAOQiAioETWQgIgRqfCBLAk+3C0wAAADoAAAA7AAAADgABVhsAAVYeAAAAoKIAAAIPAAACEIBkgGWiAAFWHwABViCBGqGBGqyAVdkAAAAhAAAAJQABViMAAAAOAAAAKAABViQAAAAjAAAA3QABViUAAPUXAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABVi1fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGp6AZIA5gFyAAIAECIEaotMAAAA6AAAAOwAAAA4AAVYvAAFWOAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABVjkAAVY6AAFWOwABVjwAAVY9AAFWPgABVj8AAVZAgRqjgRqkgRqlgRqngRqogRqpgRqqgRqrgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAVYfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGqEICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFWHwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRqhCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAVZiAAAAFwABVh8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRqmgACBGqEICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABVnAAAVZxAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAVYfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBGqEICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFWHwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRqhCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABVh8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEaoQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAVYfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGqEICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAA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ayYEayoEay4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFXYQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRrDCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABV2EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEawwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAVdhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBGsMICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAAFXYQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEawwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAVdhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBGsMICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFXYQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRrDCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABV2EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEawwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAViHAAAAIQAAASYAAAEnAAFYiAAAACMAAAElAAFYiQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAngAAAOwAAADsAAFYkQAAADEAAADsAAAA3gAAAOwAAASiAAD1AAAAAOwAAADsAAFYmQAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIETMggIgRrOCIA5CIECxIETWwgIgRrNCBKAuSXj0wAAADoAAAA7AAAADgABWJ0AAVigAAAAoKIAAAIPAAAErIBkgKWiAAFYoQABWKKBGs+BGtqAVdkAAAAhAAAAJQABWKUAAAAOAAAAKAABWKYAAAAjAAAA3QABWKcAAPUZAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABWK9fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGsyAZIA5gFyAAIAECIEa0NMAAAA6AAAAOwAAAA4AAVixAAFYugAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABWLsAAVi8AAFYvQABWL4AAVi/AAFYwAABWMEAAVjCgRrRgRrSgRrTgRrVgRrWgRrXgRrYgRrZgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAVihAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGs8ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFYoQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRrPCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAVjkAAAAFwABWKEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRrUgACBGs8ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABWPIAAVjzAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAVihAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBGs8ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFYoQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRrPCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABWKEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEazwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAVihAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE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AAA4AAVqOAAFalgAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwABWpcAAVqYAAFamQABWpoAAVqbAAFanAABWp2BGvOBGvSBGvWBGvaBGveBGviBGvmAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwABWeMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEa8QgICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAVnjAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBGvEICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAFZ4wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgRrxCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACeAAAAFwABWeMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgRMygACBGvEICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFZ4wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgRrxCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwA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AboBvqAABXK4AAVyvAAFcsAABXLEAAVyyAAFcswABXLQAAVy1gRsagRsbgRscgRsegRsfgRsggRshgRsigFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAVyUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGxgICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFclAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRsYCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAVzXAAAAFwABXJQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRsdgACBGxgICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABXOUAAVzmAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAVyUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBGxgICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFclAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRsYCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABXJQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEbGAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAVyUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGxgICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFclAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRsYCAgICIBKgG8ICIAACNkAAAAhAAAAJQABXTQAAAAOAAAAKAABXTUAAAAjAAAA3QABXTYAALBUAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABXT5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGxWAZYA5gFyAAIAECIEbJNMAAAA6AAAAOwAAAA4AAV1AAAFdSAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABXUkAAV1KAAFdSwABXUwAAV1NAAFdTgABXU+BGyWBGyaBGyeBGyiBGymBGyqBGyuAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAepAAAAFwABXJUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgPuAAIEbIwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAVyVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBGyMICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFclQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRsjCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAfXAAAAFwABXJUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgP+AAIEbIwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAVyVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBGyMICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFclQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRsjCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABXJUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEbIwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAV27AAAAIQAAASYAAAEnAAFdvAAAACMAAAElAAFdvQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAdAAAAOwAAADsAAFdxQAAADEAAADsAAAA3gAAAOwAAAIGAAAXjQAAAOwAAADsAAFdzQAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEOCggIgRsuCIA5CICKgQJJCAiBGy0IEkp5Dy3TAAAAOgAAADsAAAAOAAFd0QABXdQAAACgogAAAg8AAAIQgGSAZaIAAV3VAAFd1oEbL4EbOoBV2QAAACEAAAAlAAFd2QAAAA4AAAAoAAFd2gAAACMAAADdAAFd2wAAsFUAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAFd418QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEbLIBkgDmAXIAAgAQIgRsw0wAAADoAAAA7AAAADgABXeUAAV3uAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAFd7wABXfAAAV3xAAFd8gABXfMAAV30AAFd9QABXfaBGzGBGzKBGzOBGzWBGzaBGzeBGziBGzmAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABXdUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEbLwgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAV3VAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBGy8ICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABXhgAAAAXAAFd1QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBGzSAAIEbLwgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAFeJgABXicAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABXdUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEbLwgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAV3VAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGy8ICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFd1QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRsvCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABXdUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEbLwgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAV3VAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBGy8ICAgIgEqAbwgIgAAI2QAAACEAAAAlAAFedQAAAA4AAAAoAAFedgAAACMAAADdAAFedwAAsFUAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAFef18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEbLIBlgDmAXIAAgAQIgRs70wAAADoAAAA7AAAADgABXoEAAV6JAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAFeigABXosAAV6MAAFejQABXo4AAV6PAAFekIEbPIEbPoEbP4EbQIEbQYEbQoEbQ4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABXpQAAAAXAAFd1gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACBGz2AAIEbOggICAiASoB7CAiAAAhRMd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABXdYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEbOggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAV3WAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBGzoICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAJnkAAAAXAAFd1gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBA4GAAIEbOggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAV3WAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBGzoICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFd1gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRs6CAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABXdYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEbOggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAV79AAAAIQAAASYAAAEnAAFe/gAAACMAAAElAAFe/wAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAdAAAAOwAAADsAAFfBwAAADEAAADsAAAA3gAAAOwAAASiAACwPgAAAOwAAADsAAFfDwAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEOCggIgRtGCIA5CIECxIEOLwgIgRtFCBIzdqQJ0wAAADoAAAA7AAAADgABXxMAAV8WAAAAoKIAAAIPAAAErIBkgKWiAAFfFwABXxiBG0eBG1KAVdkAAAAhAAAAJQABXxsAAAAOAAAAKAABXxwAAAAjAAAA3QABXx0AALBWAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABXyVfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBG0SAZIA5gFyAAIAECIEbSNMAAAA6AAAAOwAAAA4AAV8nAAFfMAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABXzEAAV8yAAFfMwABXzQAAV81AAFfNgABXzcAAV84gRtJgRtKgRtLgRtNgRtOgRtPgRtQgRtRgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAV8XAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBG0cICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFfFwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRtHCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAV9aAAAAFwABXxcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRtMgACBG0cICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABX2gAAV9pAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAV8XAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBG0cICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAFfFwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRtHCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABXxcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEbRwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAV8XAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBG0cICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFfFwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRtHCAgICIBKgG8ICIAACNkAAAAhAAAAJQABX7cAAAAOAAAAKAABX7gAAAAjAAAA3QABX7kAALBWAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABX8FfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBG0SApYA5gFyAAIAECIEbU9MAAAA6AAAAOwAAAA4AAV/DAAFfywAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwABX8wAAV/NAAFfzgABX88AAV/QAAFf0QABX9KBG1SBG1WBG1aBG1eBG+OBG+SBG+WAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwABXxgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEbUggICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAKPAAAABcAAV8YAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIEBLIAAgRtSCAgICIBKgLUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwABXxgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVfAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEbUggICAiASoC2CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAhgAAABcAAV8YAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYAAAAOwAAADsAAAAFwAAAOyAAIEbWIAAgRtSCAgICIBKgLcICIAACN8QEAABYBEAAWASAAFgEwABYBQAAAAhAAFgFQABYBYAAAAjAAFgFwABYBgAAAAOAAAAJQABYBkAAWAaAAAAKAAAAN0AAADeAAFgHAAAACkAAAApAAAAFAABYCAAAADkAAAAMQAAACkAAADeAAAA5wAAAFQAAADeAAFgJwABYCgAAADsXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlgDmBG2uABIAEgAKBG1qBA7SABIA5gQiTgB2AOYEb4oEbWQgTAAAAASBq7KjTAAAAOgAAADsAAAAOAAFgLAABYC4AAACgoQAAAPGAO6EAAWAvgRtbgFXZAAAAIQAAACUAAWAyAAAADgAAACgAAWAzAAAAIwAAAN0AAWA0AAAAhgAAAPEAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAWA8XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRtYgDuAOYBcgACABAiBG1zTAAAAOgAAADsAAAAOAAFgPgABYEgAAACgqQAAAQQAAAEFAAABBgAAAQcAAAEIAAABCQAAAQoAAAELAAABDIA+gD+AQIBBgEKAQ4BEgEWARqkAAWBJAAFgSgABYEsAAWBMAAFgTQABYE4AAWBPAAFgUAABYFGBG12BG1+BG2CBG2KBG2OBG2WBG2aBG2iBG2mAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAWBVAAAAFwABYC8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEEAAAA7AAAAOwAAAAXAAAA7IAAgRtegACBG1sICAgIgEqAPggIgAAI0gAAADsAAAAOAAFgYwAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAWAvAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBQAAAOwAAADsAAAAFwAAAOyAAIAAgACBG1sICAgIgEqAPwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABYHYAAAAXAAFgLwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQYAAADsAAAA7AAAABcAAADsgACBG2GAAIEbWwgICAiASoBACAiAAAjSAAAAOwAAAA4AAWCEAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABYC8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEHAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEbWwgICAiASoBBCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAFglwAAABcAAWAvAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCAAAAOwAAADsAAAAFwAAAOyAAIEbZIAAgRtbCAgICIBKgEIICIAACNIAAAA7AAAADgABYKUAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFgLwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQkAAADsAAAA7AAAABcAAADsgACAUoAAgRtbCAgICIBKgEMICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAWC4AAAAFwABYC8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEKAAAA7AAAAOwAAAAXAAAA7IAAgRtngACBG1sICAgIgEqARAgIgAAI0wAAADoAAAA7AAAADgABYMYAAWDHAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABtQAAABcAAWAvAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCwAAAOwAAADsAAAAFwAAAOyAAIBXgACBG1sICAgIgEqARQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABYNoAAAAXAAFgLwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQwAAADsAAAA7AAAABcAAADsgACBG2qAAIEbWwgICAiASoBGCAiAAAhfEC1QZXJzaXN0ZWRMYXRlc3REaXNjdXNzaW9uU2VuZGVyU2VxdWVuY2VOdW1iZXLTAAAAOgAAADsAAAAOAAFg6QABYO4AAACgpAABYOoAAWDrAAAqOQABYO2BG2yBG22BA9yBG26kAAFg7wABYPAAAWDxAAFg8oEbb4EbnYEbtIEby4BVXxAPY29udGFjdElkZW50aXR5XxAWc2VuZGVyVGhyZWFkSWRlbnRpZmllcl8QFGxhdGVzdFNlcXVlbmNlTnVtYmVy3xASAAABIgAAASMAAAEkAAFg+AAAACEAAAEmAAABJwABYPkAAAAjAAABJQABYPoAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIYAAADsAAAA7AABYQIAAAAxAAAA7AAAAN4AAADsAAAEogABYOoAAADsAAAA7AABYQoAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBG1gICIEbcQiAOQiBAsSBG2wICIEbcAgS6hU2hNMAAAA6AAAAOwAAAA4AAWEOAAFhEQAAAKCiAAACDwAABKyAZIClogABYRIAAWETgRtygRt9gFXZAAAAIQAAACUAAWEWAAAADgAAACgAAWEXAAAAIwAAAN0AAWEYAAFg7wAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAWEgXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRtvgGSAOYBcgACABAiBG3PTAAAAOgAAADsAAAAOAAFhIgABYSsAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAWEsAAFhLQABYS4AAWEvAAFhMAABYTEAAWEyAAFhM4EbdIEbdYEbdoEbeIEbeYEbeoEbe4EbfIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFhEgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRtyCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABYRIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEbcggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAFhVQAAABcAAWESAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEbd4AAgRtyCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAWFjAAFhZAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFhEgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRtyCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwABYRIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEbcggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWESAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBG3IICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFhEgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRtyCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABYRIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEbcggICAiASoBvCAiAAAjZAAAAIQAAACUAAWGyAAAADgAAACgAAWGzAAAAIwAAAN0AAWG0AAFg7wAABKwAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAWG8XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRtvgKWAOYBcgACABAiBG37TAAAAOgAAADsAAAAOAAFhvgABYcYAAACgpwAABV0AAAVeAAAFXwAABWAAAAVhAAAFYgAABWOAtIC1gLaAt4C4gLmAuqcAAWHHAAFhyAABYckAAWHKAAFhywABYcwAAWHNgRt/gRuAgRuBgRuCgRuDgRuEgRuFgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAWETAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXQAAAOwAAADsAAAAFwAAAOyAAIC8gACBG30ICAgIgEqAtAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAFhEwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACAvoAAgRt9CAgICIBKgLUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwABYRMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVfAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEbfQgICAiASoC2CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAkwAAABcAAWETAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYAAAAOwAAADsAAAAFwAAAOyAAIECIoAAgRt9CAgICIBKgLcICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABYRMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEbfQgICAiASoC4CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWETAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYgAAAOwAAADsAAAAFwAAAOyAAIBSgACBG30ICAgIgEqAuQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAF7EAAAAXAAFhEwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWMAAADsAAAA7AAAABcAAADsgACBG4aAAIEbfQgICAiASoC6CAiAAAjfEBIAAAEiAAABIwAAASQAAWI5AAAAIQAAASYAAAEnAAFiOgAAACMAAAElAAFiOwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAkwAAAOwAAADsAAFiQwAAADEAAADsAAAA3gAAAOwAAASiAAAXlAAAAOwAAADsAAFiSwAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIECIggIgRuICIA5CIECxIECTwgIgRuHCBLrbKP80wAAADoAAAA7AAAADgABYk8AAWJSAAAAoKIAAAIPAAAErIBkgKWiAAFiUwABYlSBG4mBG5SAVdkAAAAhAAAAJQABYlcAAAAOAAAAKAABYlgAAAAjAAAA3QABYlkAABexAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABYmFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBG4aAZIA5gFyAAIAECIEbitMAAAA6AAAAOwAAAA4AAWJjAAFibAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABYm0AAWJuAAFibwABYnAAAWJxAAFicgABYnMAAWJ0gRuLgRuMgRuNgRuPgRuQgRuRgRuSgRuTgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWJTAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBG4kICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFiUwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRuJCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAWKWAAAAFwABYlMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRuOgACBG4kICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABYqQAAWKlAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWJTAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBG4kICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAFiUwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRuJCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABYlMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEbiQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAWJTAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBG4kICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFiUwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRuJCAgICIBKgG8ICIAACNkAAAAhAAAAJQABYvMAAAAOAAAAKAABYvQAAAAjAAAA3QABYvUAABexAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABYv1fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBG4aApYA5gFyAAIAECIEbldMAAAA6AAAAOwAAAA4AAWL/AAFjBwAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwABYwgAAWMJAAFjCgABYwsAAWMMAAFjDQABYw6BG5aBG5eBG5iBG5mBG5qBG5uBG5yAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwABYlQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEblAgICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAKPAAAABcAAWJUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIEBLIAAgRuUCAgICIBKgLUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwABYlQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVfAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEblAgICAiASoC2CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAhgAAABcAAWJUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYAAAAOwAAADsAAAAFwAAAOyAAIEbWIAAgRuUCAgICIBKgLcICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwABYlQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEblAgICAiASoC4CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWJUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYgAAAOwAAADsAAAAFwAAAOyAAIBSgACBG5QICAgIgEqAuQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABYO8AAAAXAAFiVAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWMAAADsAAAA7AAAABcAAADsgACBG2+AAIEblAgICAiASoC6CAiAAAjfEBIAAAEiAAABIwAAASQAAWN6AAAAIQAAASYAAAEnAAFjewAAACMAAAElAAFjfAAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAhgAAAOwAAADsAAFjhAAAADEAAADsAAAA3gAAAOwAAAIGAAFg6wAAAOwAAADsAAFjjAAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEbWAgIgRufCIA5CICKgRttCAiBG54IEv3AShfTAAAAOgAAADsAAAAOAAFjkAABY5MAAACgogAAAg8AAAIQgGSAZaIAAWOUAAFjlYEboIEbq4BV2QAAACEAAAAlAAFjmAAAAA4AAAAoAAFjmQAAACMAAADdAAFjmgABYPAAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAFjol8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEbnYBkgDmAXIAAgAQIgRuh0wAAADoAAAA7AAAADgABY6QAAWOtAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAFjrgABY68AAWOwAAFjsQABY7IAAWOzAAFjtAABY7WBG6KBG6OBG6SBG6aBG6eBG6iBG6mBG6qAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABY5QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEboAgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAWOUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBG6AICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABY9cAAAAXAAFjlAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBG6WAAIEboAgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAFj5QABY+YAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABY5QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEboAgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWOUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBG6AICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFjlAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRugCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABY5QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEboAgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWOUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBG6AICAgIgEqAbwgIgAAI2QAAACEAAAAlAAFkNAAAAA4AAAAoAAFkNQAAACMAAADdAAFkNgABYPAAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAFkPl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEbnYBlgDmAXIAAgAQIgRus0wAAADoAAAA7AAAADgABZEAAAWRIAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAFkSQABZEoAAWRLAAFkTAABZE0AAWROAAFkT4EbrYEbroEbr4EbsIEbsYEbsoEbs4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFjlQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRurCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABY5UAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEbqwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAWOVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBG6sICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAMHQAAAAXAAFjlQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBBFGAAIEbqwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAWOVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBG6sICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFjlQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRurCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABY5UAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEbqwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAWS7AAAAIQAAASYAAAEnAAFkvAAAACMAAAElAAFkvQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAhgAAAOwAAADsAAFkxQAAADEAAADsAAAA3gAAAOwAAASiAAAqOQAAAOwAAADsAAFkzQAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEbWAgIgRu2CIA5CIECxIED3AgIgRu1CBLnCJwR0wAAADoAAAA7AAAADgABZNEAAWTUAAAAoKIAAAIPAAAErIBkgKWiAAFk1QABZNaBG7eBG8KAVdkAAAAhAAAAJQABZNkAAAAOAAAAKAABZNoAAAAjAAAA3QABZNsAAWDxAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABZONfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBG7SAZIA5gFyAAIAECIEbuNMAAAA6AAAAOwAAAA4AAWTlAAFk7gAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABZO8AAWTwAAFk8QABZPIAAWTzAAFk9AABZPUAAWT2gRu5gRu6gRu7gRu9gRu+gRu/gRvAgRvBgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWTVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBG7cICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFk1QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRu3CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAWUYAAAAFwABZNUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRu8gACBG7cICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABZSYAAWUnAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWTVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBG7cICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAFk1QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRu3CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABZNUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEbtwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAWTVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBG7cICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFk1QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiw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b+YEb+oEb+4Eb/IBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB6kAAAAXAAFniAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACA+4AAgRv0CAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABZ4gAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEb9AgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAWeIAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBG/QICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAJnkAAAAXAAFniAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBA4GAAIEb9AgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAWeIAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBG/QICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFniAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRv0CAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAA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ADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABaksAAAAXAAFqJQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBHB+AAIEcHAgICAiASoA+CAiAAAjSAAAAOwAAAA4AAWpZAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABaiUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEcHAgICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAFqbAAAABcAAWolAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEcIoAAgRwcCAgICIBKgEAICIAACNIAAAA7AAAADgABanoAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFqJQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgRwcCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAWqNAAAAFwABaiUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgRwlgACBHBwICAgIgEqAQggIgAAI0gAAADsAAAAOAAFqmwAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWolAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHBwICAgIgEqAQwgIgAAI3xAPAAABIgA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AASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWxEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHEkICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFsRAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRxJCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAWyHAAAAFwABbEQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRxOgACBHEkICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABbJUAAWyWAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWxEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHEkICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAFsRAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRxJCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABbEQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEcSQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwA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mgACBHGEICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABbdcAAW3YAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAW2GAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHGEICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAFthgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRxhCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABbYYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEcYQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAW2GAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHGEICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFthgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRxhCAgICIBKgG8ICIAACNkAAAAhAAAAJQABbiYAAAAOAAAAKAABbicAAAAjAAAA3QABbigAABepAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABbjBfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmV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AABcAAADsgACBA62AAIEdGwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXaKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBHRsICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAKM8AAAAXAAF2igAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACBA62AAIEdGwgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAmeQAAABcAAXaKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEDgYAAgR0bCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABdooAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEdGwgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAXaKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBHRsICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAF2igAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgR0bCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABd7AAAAAhAAABJgAAAScAAXexAAAAIwAAASUAAXeyAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACYAAAA7AAAAOwAAXe6AAAAMQAAAOwAAADeAAAA7AAABKIAACowAAAA7AAAAOwAAXfCAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQO4CAiBHSYIgDkIgQLEgQPUCAiBHSUIEjRKPcLTAAAAOgAAADsAAAAOAAF3xgABd8kAAACgogAAAg8AAASsgGSApaIAAXfKAAF3y4EdJ4EdMoBV2QAAACEAAAAlAAF3zgAAAA4AAAAoAAF3zwAAACMAAADdAAF30AAAKkYAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAF32F8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEdJIBkgDmAXIAAgAQIgR0o0wAAADoAAAA7AAAADgABd9oAAXfjAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAF35AABd+UAAXfmAAF35wABd+gAAXfpAAF36gABd+uBHSmBHSqBHSuBHS2BHS6BHS+BHTCBHTGAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABd8oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEdJwgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAXfKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBHScICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABeA0AAAAXAAF3ygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBHSyAAIEdJwgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAF4GwABeBwAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABd8oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEdJwgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAXfKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBHScICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAF3ygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgR0nCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABd8oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEdJwgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXfKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHScICAgIgEqAbwgIgAAI2QAAACEAAAAlAAF4agAAAA4AAAAoAAF4awAAACMAAADdAAF4bAAAKkYAAASsAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAF4dF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEdJIClgDmAXIAAgAQIgR0z0wAAADoAAAA7AAAADgABeHYAAXh+AAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAAF4fwABeIAAAXiBAAF4ggABeIMAAXiEAAF4hYEdNIEdNYEdNoEdN4Ed8YEd8oEd84BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAF3ywAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgR0yCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAo8AAAAFwABd8sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgQEsgACBHTIICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAF3ywAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvIAAgR0yCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACdAAAAFwABd8sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgR04gACBHTIICAgIgEqAtwgIgAAI3xAUAAAA3QABeMQAAXjFAAF4xgABeMcAAXjIAAF4yQAAACEAAAAOAAF4ygAAACUAAXjLAAAAKAABeMwAAXjNAAF4zgABeM8AAXjQAAF40QAAACMAAAUhAAAA3gAAAN4AAXjVAAAAKQAAAOQAAADeAAAAFAAAAOcAAAApAAAAawABeN0AAXjeAAAAKQAAACkAAADeAAF44gABeOMAAADkAAAAMV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QIVhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zb3JkZXJlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNkdXBsaWNhdGVzXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3N0b3JhZ2VfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zb3JkZXJlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZV8QIVhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zc3RvcmFnZV8QJFhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zZHVwbGljYXRlcwmAOYA5gR06gASBA7SAOYACgQiTgASANIEdkoEdOYAEgASAOYEdS4Edk4EDtBKLphXm0wAAADoAAAA7AAAADgABeOcAAXjpAAAAoKEAAADxgDuhAAF46oEdO4BV2QAAACEAAAAlAAF47QAAAA4AAAAoAAF47gAAACMAAADdAAF47wAAAJ0AAADxAAAA3gAAAP0AAAAXAAAAKQAAADEAAAD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AAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBHVAICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABegwAAAAXAAF5yQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBHVWAAIEdUAgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAF6GgABehsAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABeckAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEdUAgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAXnJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBHVAICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAF5yQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgR1QCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABeckAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEdUAgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXnJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHVAICAgIgEqAbwgIgAAI2QAAACEAAAAlAAF6aQAAAA4AAAAoAAF6agAAACMAAADdAAF6awABeakAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAF6c18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEdTYBlgDmAXIAAgAQIgR1c0wAAADoAAAA7AAAADgABenUAAXp9AAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAF6fgABen8AAXqAAAF6gQABeoIAAXqDAAF6hIEdXYEdXoEdX4EdYIEdYYEdYoEdY4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAF5ygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgR1bCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABecoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEdWwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAXnKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBHVsICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAAF5ygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEdWwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAXnKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBHVsICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAF5ygAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgR1bCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABecoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEdWwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAXrwAAAAIQAAASYAAAEnAAF68QAAACMAAAElAAF68gAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAnQAAAOwAAADsAAF6+gAAADEAAADsAAAA3gAAAOwAAASiAAAz3gAAAOwAAADsAAF7AgAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEdOAgIgR1mCIA5CIECxIEElAgIgR1lCBLxnn4F0wAAADoAAAA7AAAADgABewYAAXsJAAAAoKIAAAIPAAAErIBkgKWiAAF7CgABewuBHWeBHXKAVdkAAAAhAAAAJQABew4AAAAOAAAAKAABew8AAAAjAAAA3QABexAAAXmqAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABexhfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHWSAZIA5gFyAAIAECIEdaNMAAAA6AAAAOwAAAA4AAXsaAAF7IwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABeyQAAXslAAF7JgABeycAAXsoAAF7KQABeyoAAXsrgR1pgR1qgR1rgR1tgR1ugR1vgR1wgR1xgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXsKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHWcICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAF7CgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgR1nCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAXtNAAAAFwABewoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR1sgACBHWcICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABe1sAAXtcAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXsKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHWcICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAF7CgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgR1nCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABewoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEdZwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAXsKAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHWcICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAF7CgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgR1nCAgICIBKgG8ICIAACNkAAAAhAAAAJQABe6oAAAAOAAAAKAABe6sAAAAjAAAA3QABe6wAAXmqAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABe7RfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHWSApYA5gFyAAIAECIEdc9MAAAA6AAAAOwAAAA4AAXu2AAF7vgAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwABe78AAXvAAAF7wQABe8IAAXvDAAF7xAABe8WBHXSBHXWBHXaBHXeBHXiBHXmBHXqAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwABewsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEdcggICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAXsLAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBHXIICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAF7CwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgR1yCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACYAAAAFwABewsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQO4gACBHXIICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAF7CwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgR1yCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABewsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEdcggICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASs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AAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEduAgICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAX57AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBHbgICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAF+ewAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgR24CAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACTAAAAFwABfnsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQIigACBHbgICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAF+ewAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgR24CAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABfnsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEduAgICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAXoQAAABcAAX57AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIEdwYAAgR2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AAYJZAAAAFwABghYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR38gACBHfcICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABgmcAAYJoAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYIWAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHfcICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAGCFgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgR33CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABghYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEd9wgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYIWAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHfcICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGCFgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgR33CAgICIBKgG8ICIAACNkAAAAhAAAAJQABgrYAAAAOAAAAKAABgrcAAAAjAAAA3QABgrgAACpHAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABgsBfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHfSAZYA5gFyAAIAECIEeA9MAAAA6AAAAOwAAAA4AAYLCAAGCygAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABgssAAYLMAAGCzQABgs4AAYLPAAGC0AABgtGBHgSBHgWBHgaBHgeBHgiBHgmBHgqAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABghcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEeAggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYIXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBHgIICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGCFwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgR4CCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwABghcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBHgIICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAA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AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYNYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBHhkICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGDWAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgR4ZCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAGG2AAAAFwABg1gAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQgxgACBHhkICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGDWAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgR4ZCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABg1gAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEeGQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYNYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHhkICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAGEfgAAACEAAAEmAAABJwABhH8AAAAjAAABJQABhIAAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJgAAADsAAAA7AABhIgAAAAxAAAA7AAAAN4AAADsAAACBgAAKjQAAADsAAAA7AABhJAAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBA7gICIEeJAiAOQiAioED2AgIgR4jCBKFkbNV0wAAADoAAAA7AAAADgABhJQAAYSXAAAAoKIAAAIPAAACEIBkgGWiAAGEmAABhJmBHiWBHjCAVdkAAAAhAAAAJQABhJwAAAAOAAAAKAABhJ0AAAAjAAAA3QABhJ4AACpKAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABhKZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHiKAZIA5gFyAAIAECIEeJtMAAAA6AAAAOwAAAA4AAYSoAAGEsQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABhLIAAYSzAAGEtAABhLUAAYS2AAGEtwABhLgAAYS5gR4ngR4ogR4pgR4rgR4sgR4tgR4ugR4vgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYSYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHiUICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGEmAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgR4lCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAYTbAAAAFwABhJgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR4qgACBHiUICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABhOkAAYTqAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYSYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHiUICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGEmAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgR4lCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABhJgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEeJQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYSYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHiUICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGEmAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AA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RAAGJEgABiRMAAYkUAAGJFQABiRaBHneBHniBHnmBHnqBHnuBHnyBHn2AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABiFwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEedQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYhcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBHnUICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGIXAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgR51CAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAC8yAAAAFwABiFwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQQ5gACBHnUICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGIXAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgR51CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABiFwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEedQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYhcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHnUICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAGJggAAACEAAAEmAAABJwABiYMAAAAjAAABJQABiYQAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJgAAADsAAAA7AABiYwAAAAxAAAA7AAAAN4AAADsAAACBgAAKjoAAADsAAAA7AABiZQAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBA7gICIEegAiAOQiAioED3QgIgR5/CBKcrQPX0wAAADoAAAA7AAAADgABiZgAAYmbAAAAoKIAAAIPAAACEIBkgGWiAAGJnAABiZ2BHoGBHoyAVdkAAAAhAAAAJQABiaAAAAAOAAAAKAABiaEAAAAjAAAA3QABiaIAACpQAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABiapfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHn6AZIA5gFyAAIAECIEegtMAAAA6AAAAOwAAAA4AAYmsAAGJtQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABibYAAYm3AAGJuAABibkAAYm6AAGJuwABibwAAYm9gR6DgR6EgR6FgR6HgR6IgR6JgR6KgR6LgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYmcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHoEICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGJnAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgR6BCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAYnfAAAAFwABiZwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR6GgACBHoEICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABie0AAYnuAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYmcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHoEICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGJnAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgR6BCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABiZwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEegQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYmcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHoEICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGJnAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgR6BCAgICIBKgG8ICIAACNkAAAAhAAAAJQABijwAAAAOAAAAKAABij0AAAAjAAAA3QABij4AACpQAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABikZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHn6AZYA5gFyAAIAECIEejdMAAAA6AAAAOwAAAA4AAYpIAAGKUAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABilEAAYpSAAGKUwABilQAAYpVAAGKVgABileBHo6BHo+BHpCBHpGBHpKBHpOBHpSAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAepAAAAFwABiZ0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgPuAAIEejAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYmdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBHowICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwA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AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYrdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHpgICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGK3QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgR6YCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABit0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEemAgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYrdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBHpgICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAGK3QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAroAAgR6YCAgICIBKgG8ICIAACNkAAAAhAAAAJQABi30AAAAOAAAAKAABi34AAAAjAAAA3QABi38AACpRAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABi4dfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHpWAZYA5gFyAAIAECIEepNMAAAA6AAAAOwAAAA4AAYuJAAGLkQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABi5IAAYuTAAGLlAABi5UAAYuWAAGLlwABi5iBHqWBHqaBHqeBHqiBHqmBHqqBHquAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACjPAAAAFwABit4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgQOtgACBHqMICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGK3gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgR6jCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABit4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEeowgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAmeQAAABcAAYreAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEDgYAAgR6jCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABit4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEeowgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYreAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBHqMICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGK3gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgR6jCAgICIBKgIEICIAACNIAAAA7AAAADgABjAQAAAE8oIBJ0gAAADsAAAAOAAGMBwAAATyjAACdHgAAijgAACk6gQy5gQtTgQO2gEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAB/LAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBAwgICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAfywAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQMICAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACGjAAAAFwAAH8sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQMngACBAwgICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAGMOgAAACEAAAEmAAABJwABjDsAAAAjAAABJQABjDwAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIAAAADsAAAA7AABjEQAAAAxAAAA7AAAAN4AAADsAAACBgAAH4cAAADsAAAA7AABjEw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BJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABjZYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEe1ggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAY2WAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBHtYICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB9cAAAAXAAGNlgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACA/4AAgR7WCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABjZYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEe1ggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAY2WAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBHtYICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGNlgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgR7WCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABjrwAAAAhAAABJgAAAScAAY69AAAAIwAAASU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AABcAAAAXAAAAFwABkBgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEfBAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZAYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBHwQICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGQGAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgR8ECAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAGG2AAAAFwABkBgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQgxgACBHwQICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGQGAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgR8ECAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABkBgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEfBAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAZAYAAAA7AAAAOwAAADsAAA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AAZNRAAGTUgABk1MAAZNUgR80gR81gR82gR83gR84gR85gR86gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAZKaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBHzIICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGSmgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgR8yCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABkpoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEfMggICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAAZKaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBHzIICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGSmgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgR8yCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABkpoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEfMggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAZKaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHzIICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAGTwAAAACEAAAEmAAABJwABk8EAAAAjAAABJQABk8IAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIAAAADsAAAA7AABk8oAAAAxAAAA7AAAAN4AAADsAAACBgAAH40AAADsAAAA7AABk9IAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBAtkICIEfPQiAOQiAioEC9AgIgR88CBKw8uKa0wAAADoAAAA7AAAADgABk9YAAZPZAAAAoKIAAAIPAAACEIBkgGWiAAGT2gABk9uBHz6BH0mAVdkAAAAhAAAAJQABk94AAAAOAAAAKAABk98AAAAjAAAA3QABk+AAAB+bAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABk+hfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHzuAZIA5gFyAAIAECIEfP9MAAAA6AAAAOwAAAA4AAZPqAAGT8wAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABk/QAAZP1AAGT9gABk/cAAZP4AAGT+QABk/oAAZP7gR9AgR9BgR9CgR9EgR9FgR9GgR9HgR9IgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZPaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHz4ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGT2gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgR8+CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAZQdAAAAFwABk9oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR9DgACBHz4ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABlCsAAZQsAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZPaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHz4ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAGT2gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgR8+CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABk9oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEfPggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABc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uAAGY9wAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABmPgAAZj5AAGY+gABmPsAAZj8AAGY/QABmP4AAZj/gR+cgR+dgR+egR+ggR+hgR+igR+jgR+kgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZjeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBH5oICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGY3gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgR+aCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAZkhAAAAFwABmN4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR+fgACBH5oICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABmS8AAZkwAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZjeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBH5oICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAGY3gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgR+aCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgA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IgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABmmIAAAAXAAGaHwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBH7aAAIEfsQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAGacAABmnEAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABmh8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEfsQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZofAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBH7EICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGaHwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgR+xCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABmh8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEfsQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZofAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBH7EICAgIgEqAbwg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6AAGe+wABnvwAAZ79gSALgSAMgSANgSAOgSAPgSAQgSARgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAZ5DAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBIAkICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGeQwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgSAJCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABnkMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEgCQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAAZ5DAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBIAkICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGeQwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSAJCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABnkMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEgCQgICAiASoC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YAAGkoQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABpKIAAaSjAAGkpAABpKUAAaSmAAGkpwABpKgAAaSpgSB0gSB1gSB2gSB4gSB5gSB6gSB7gSB8gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAaSIAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIHIICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGkiAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSByCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAaTLAAAAFwABpIgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSB3gACBIHIICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABpNkAAaTaAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAaSIAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBIHIICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGkiAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgSByCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgA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IgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABpgwAAAAXAAGlyQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBII6AAIEgiQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAGmGgABphsAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABpckAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEgiQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAaXJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIIkICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGlyQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgSCJCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABpckAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEgiQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAaXJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBIIkICAgIgEqAbwg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AAOwAAAAXAAAA7IAAgACAAIEg2ggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAakQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBINoICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGpEAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSDaCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwABqRAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEg2ggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAakQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBINoICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGpEAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSDaCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABqRAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEg2ggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAao2AAAAIQAAASYAAAEnAAGqNwAAACMAAAElAAGqOAAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAmQAAAOwAAADsAAGqQAAAADEAAADsAAAA3gAAAOwAAAIGAAGo6AAAAOwAAADsAAGqSAAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEgsQgIgSDlCIA5CICKgSDKCAiBIOQIEwAAAAEkrjXI0wAAADoAAAA7AAAADgABqkwAAapPAAAAoKIAAAIPAAACEIBkgGWiAAGqUAABqlGBIOaBIPGAVdkAAAAhAAAAJQABqlQAAAAOAAAAKAABqlUAAAAjAAAA3QABqlYAAajtAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABql5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIOOAZIA5gFyAAIAECIEg59MAAAA6AAAAOwAAAA4AAapgAAGqaQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABqmoAAaprAAGqbAABqm0AAapuAAGqbwABqnAAAapxgSDogSDpgSDqgSDsgSDtgSDugSDvgSDwgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAapQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIOYICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGqUAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSDmCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAaqTAAAAFwABqlAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSDrgACBIOYICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABqqEAAaqiAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAapQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBIOYICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGqUAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgSDmCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABqlAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEg5ggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAapQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIOYICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGqUAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSDmCAgICIBKgG8ICIAACNkAAAAhAAAAJQABqvAAAAAOAAAAKAABqvEAAAAjAAAA3QABqvIAAajtAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABqvpfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIOOAZYA5gFyAAIAECIEg8tMAAAA6AAAAOwAAAA4AAar8AAGrBAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABqwUAAasGAAGrBwABqwgAAasJAAGrCgABqwuBIPOBIPSBIPWBIPaBIPeBIPiBIPmAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABqlEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEg8QgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAapRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBIPEICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGqUQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSDxCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwA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kAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGrkgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgSEICAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABq5IAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEhCAgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAauSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBIQgICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAw8AAAAXAAGrkgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACAhoAAgSEICAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABq5IAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEhCAgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAauSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBIQgICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgA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+gACBIR8ICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAJMAAAAXAAGs0wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBAiKAAIEhHwgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAazTAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIR8ICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGs0wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgSEfCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAABemAAAAFwABrNMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgSCdgACBIR8ICAgIgEqAuggIgAAI0gAAADsAAAAOAAGt+QAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAacLAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAICugACBIKsICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGnCwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgSCrCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAajvAAAAFwABpwsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgSERgACBIKsICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAGuKQAAACEAAAEmAAABJwABrioAAAAjAAABJQABrisAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJMAAADsAAAA7AABrjMAAAAxAAAA7AAAAN4AAADsAAACBgAAF4oAAADsAAAA7AABrjsAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBAiIICIEhLgiAOQiAioECRggIgSEtCBLqLPP80wAAADoAAAA7AAAADgABrj8AAa5CAAAAoKIAAAIPAAACEIBkgGWiAAGuQwABrkSBIS+BITqAVdkAAAAhAAAAJQABrkcAAAAOAAAAKAABrkgAAAAjAAAA3QABrkkAABenAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABrlFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBISyAZIA5gFyAAIAECIEhMNMAAAA6AAAAOwAAAA4AAa5TAAGuXAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABrl0AAa5eAAGuXwABrmAAAa5hAAGuYgABrmMAAa5kgSExgSEygSEzgSE1gSE2gSE3gSE4gSE5gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAa5DAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIS8ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGuQwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSEvCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAa6GAAAAFwABrkMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSE0gACBIS8ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABrpQAAa6VAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAa5DAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBIS8ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAGuQwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgSEvCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABrkMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEhLwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAa5DAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIS8ICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGuQwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSEvCAgICIBKgG8ICIAACNkAAAAhAAAAJQABruMAAAAOAAAAKAABruQAAAAjAAAA3QABruUAABenAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABru1fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBISyAZYA5gFyAAIAECIEhO9MAAAA6AAAAOwAAAA4AAa7vAAGu9wAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABrvgAAa75AAGu+gABrvsAAa78AAGu/QABrv6BITyBIT2BIT6BIT+BIUCBIUGBIUKAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABrkQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEhOggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAa5EAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBIToICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGuRAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSE6CAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwABrkQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBIToICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGuRAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSE6CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABrkQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEhOggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAa5EAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIToICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAGvagAAACEAAAEmAAABJwABr2sAAAAjAAABJQABr2wAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJMAAADsAAAA7AABr3QAAAAxAAAA7AAAAN4AAADsAAAEogAAF4sAAADsAAAA7AABr3wAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmV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ICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABs0kAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEhlwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbNJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBIZcICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAAGzSQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEhlwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbNJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBIZcICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGzSQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSGXCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABs0kAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEhlwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAbRvAAAAIQAAASYAAAEnAAG0cAAAACMAAAElAAG0cQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAkwAAAOwAAADsAAG0eQAAADEAAADsAAAA3gAAAOwAAAIGAAAXkQAAAOwAAADsAAG0gQAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIECIggIgSGiCIA5CICKgQJMCAiBIaEIEqhvB8DTAAAAOgAAADsAAAAOAAG0hQABtIgAAACgogAAAg8AAAIQgGSAZaIAAbSJAAG0ioEho4EhroBV2QAAACEAAAAlAAG0jQAAAA4AAAAoAAG0jgAAACMAAADdAAG0jwAAF64AAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAG0l18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEhoIBkgDmAXIAAgAQIgSGk0wAAADoAAAA7AAAADgABtJkAAbSiAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAG0owABtKQAAbSlAAG0pgABtKcAAbSoAAG0qQABtKqBIaWBIaaBIaeBIamBIaqBIauBIayBIa2AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABtIkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEhowgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbSJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBIaMICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABtMwAAAAXAAG0iQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBIaiAAIEhowgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAG02gABtNsAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABtIkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEhowgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbSJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIaMICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG0iQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgSGjCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABtIkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEhowgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbSJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE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AgICBpwABuQEAAbkCAAG5AwABuQQAAbkFAAG5BgABuQeBIfWBIfaBIfeBIfiBIfmBIfqBIfuAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABuE0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEh8wgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbhNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBIfMICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG4TQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSHzCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwABuE0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBIfMICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG4TQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSHzCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABuE0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEh8wgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbhNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIfMICAgIgEqAgQgIgAAI0gAAADsAAAAOAAG5cwAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAABWjAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBAhwICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAVowAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQIcCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAABeoAAAAFwAAFaMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgSFDgACBAhwICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAG5owAAACEAAAEmAAABJwABuaQAAAAjAAABJQABuaUAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJoAAADsAAAA7AABua0AAAAxAAAA7AAAAN4AAADsAAACBgAAC1QAAADsAAAA7AABubUAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBAS8ICIEiAgiAOQiAioEBTggIgSIBCBL0d8dH0wAAADoAAAA7AAAADgABubkAAbm8AAAAoKIAAAIPAAACEIBkgGWiAAG5vQABub6BIgOBIg6AVdkAAAAhAAAAJQABucEAAAAOAAAAKAABucIAAAAjAAAA3QABucMAAAtmAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABuctfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIgCAZIA5gFyAAIAECIEiBNMAAAA6AAAAOwAAAA4AAbnNAAG51gAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABudcAAbnYAAG52QABudoAAbnbAAG53AABud0AAbnegSIFgSIGgSIHgSIJgSIKgSILgSIMgSINgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbm9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIgMICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG5vQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSIDCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAboAAAAAFwABub0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSIIgACBIgMICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABug4AAboPAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbm9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBIgMICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG5vQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgSIDCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABub0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEiAwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbm9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIgMICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG5vQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSIDCAgICIBKgG8ICIAACNkAAAAhAAAAJQABul0AAAAOAAAAKAABul4AAAAjAAAA3QABul8AAAtmAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABumdfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIgCAZYA5gFyAAIAECIEiD9MAAAA6AAAAOwAAAA4AAbppAAG6cQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABunIAAbpzAAG6dAABunUAAbp2AAG6dwABuniBIhCBIhGBIhKBIhOBIhSBIhWBIhaAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAepAAAAFwABub4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgPuAAIEiDggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbm+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBIg4ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG5vgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSIOCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAfXAAAAFwABub4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgP+AAIEiDggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbm+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBIg4ICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAA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nAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABvZoAAb2bAAG9nAABvZ0AAb2eAAG9nwABvaAAAb2hgSJKgSJLgSJMgSJOgSJPgSJQgSJRgSJSgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAb2AAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIkgICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG9gAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSJICAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAb3DAAAAFwABvYAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSJNgACBIkgICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABvdEAAb3SAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAb2AAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBIkgICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG9gAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgSJICAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAA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BJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAb8FAAAAFwABvsIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSJlgACBImAICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABvxMAAb8UAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAb7CAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBImAICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG+wgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgSJgCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABvsIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEiYAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAb7CAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBImAICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG+wgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSJgCAgICIBKgG8ICIAACNkAAAAhAAAAJQABv2IAAAAOAAAAKAABv2MAAAAjAAAA3QABv2QAAAtqAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABv2xfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIl2AZYA5gFyAAIAECIEibNMAAAA6AAAAOwAAAA4AAb9uAAG/dgAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABv3cAAb94AAG/eQABv3oAAb97AAG/fAABv32BIm2BIm6BIm+BInCBInGBInKBInOAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABvsMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEiawgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAb7DAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBImsICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG+wwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSJrCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwABvsMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEiawgICAiASoB+CAiAAAjfEA8AAAEiAAABIwA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AAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACA+4AAgSKCCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABwAQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEigggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAcAEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBIoIICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB9cAAAAXAAHABAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACA/4AAgSKCCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABwAQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEigggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAcAEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBIoIICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHABAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgSKCCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABwSoAAAAhAAABJgAAAScAAcErAAAAIwAAASUAAcEsAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACaAAAA7AAAAOwAAcE0AAAAMQAAAOwAAADeAAAA7AAAAgYAAAtaAAAA7AAAAOwAAcE8AAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQEvCAiBIo0IgDkIgIqBAVMICIEijAgS5SXCe9MAAAA6AAAAOwAAAA4AAcFAAAHBQwAAAKCiAAACDwAAAhCAZIBlogABwUQAAcFFgSKOgSKZgFXZAAAAIQAAACUAAcFIAAAADgAAACgAAcFJAAAAIwAAAN0AAcFKAAALbAAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAcFSXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgSKLgGSAOYBcgACABAiBIo/TAAAAOgAAADsAAAAOAAHBVAABwV0AAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAcFeAAHBXwABwWAAAcFhAAHBYgABwWMAAcFkAAHBZYEikIEikYEikoEilIEilYEiloEil4EimIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHBRAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgSKOCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABwUQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEijggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAHBhwAAABcAAcFEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEik4AAgSKOCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAcGVAAHBlgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHBRAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgSKOCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABwUQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEijggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcFEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBIo4ICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHBRAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgSKOCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwA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PAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHChQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgSKlCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABwoUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEipQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAcKFAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIqUICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHChQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSKlCAgICIBKgG8ICIAACNkAAAAhAAAAJQABwyUAAAAOAAAAKAABwyYAAAAjAAAA3QABwycAAAttAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABwy9fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIqKAZYA5gFyAAIAECIEisdMAAAA6AAAAOwAAAA4AAcMxAAHDOQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABwzoAAcM7AAHDPAABwz0AAcM+AAHDPwABw0CBIrKBIrOBIrSBIrWBIraBIreBIriAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABwoYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEisAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcKGAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBIrAICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHChgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSKwCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwABwoYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBIrAICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHChgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSKwCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABwoYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEisAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAE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AAAAXAAABjgAAABcAAcU3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBItcICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHFNwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSLXCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAcV6AAAAFwABxTcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSLcgACBItcICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABxYgAAcWJAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcU3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBItcICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAHFNwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgSLXCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABxTcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEi1wgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASs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0b3JhZ2WBIuuAZYA5gFyAAIAECIEi+tMAAAA6AAAAOwAAAA4AAcckAAHHLAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABxy0AAccuAAHHLwABxzAAAccxAAHHMgABxzOBIvuBIvyBIv2BIv6BIv+BIwCBIwGAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABxnkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEi+QgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcZ5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBIvkICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHGeQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSL5CAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwABxnkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBIvkICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHGeQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSL5CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAASc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0b3JhZ2WBI0aAZYA5gFyAAIAECIEjVdMAAAA6AAAAOwAAAA4AAculAAHLrQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABy64AAcuvAAHLsAABy7EAAcuyAAHLswABy7SBI1aBI1eBI1iBI1mBI1qBI1uBI1yAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAByvoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEjVAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcr6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBI1QICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHK+gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSNUCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwAByvoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBI1QICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHK+gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSNUCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAASc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AAAA6AAAAOwAAAA4AAc7MAAHO1QAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABztYAAc7XAAHO2AABztkAAc7aAAHO2wABztwAAc7dgSOQgSORgSOSgSOUgSOVgSOWgSOXgSOYgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAc68AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBI44ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHOvAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSOOCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAc7/AAAAFwABzrwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSOTgACBI44ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABzw0AAc8OAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAc68AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBI44ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAHOvAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgSOOCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABzrwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEjjggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAc68AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBI44ICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHOvAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSOOCAgICIBKgG8ICIAACNkAAAAhAAAAJQABz1wAAAAOAAAAKAABz10AAAAjAAAA3QABz14AAcrWAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABz2ZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBI4uApYA5gFyAAIAECIEjmtMAAAA6AAAAOwAAAA4AAc9oAAHPcAAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwABz3EAAc9yAAHPcwABz3QAAc91AAHPdgABz3eBI5uBI5yBI52BI56BI5+BI6CBI6GAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwABzr0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEjmQgICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAc69AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBI5kICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAHOvQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgSOZCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAB8AAAAFwABzr0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgMGAAIEjmQgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAc69AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBI5kICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHOvQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgSOZCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAayAAAAFwABzr0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgSOigACBI5kICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAHP4wAAACEAAAEmAAABJwABz+QAAAAjAAA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AACgAAAErAAAAFwAAABcAAAAXAAHRPwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgSPHCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAB0T8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEjxwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAdE/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBI8cICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAAHRPwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEjxwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAdE/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBI8cICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHRPwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSPHCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAB0T8AAADsAAA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AASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAepAAAAFwAB0rAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgPuAAIEj4ggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAdKwAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBI+IICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHSsAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSPiCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAfXAAAAFwAB0rAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgP+AAIEj4ggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAdKwAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBI+IICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHSsAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSPiCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAA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KgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAB23cAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEkgwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAdt3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBJIMICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAJnkAAAAXAAHbdwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBA4GAAIEkgwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAdt3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBJIMICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHbdwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSSDCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAB23cAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEkgwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAdydAAA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MAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEkmggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAdy4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBJJoICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHcuAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSSaCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAB3LgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEkmggICAiASoCBCAiAAAjSAAAAOwAAAA4AAd3eAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAABK8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgFKAAICyCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAABK8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAICyCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAarAAAAFwAABK8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgSLUgACAsggICAiASoC6CAiAAAjSAAAAOwAAAA4AAd4OAAABPKEAAWn0gRwWgEnTAAAAOgAAADsAAAAOAAHeEgAB3hMAAACgoKCAVdMAAAA6AAAAOwAAAA4AAd4WAAHeFwAAAKCgoIBV0wAAADoAAAA7AAAADgAB3hoAAd4bAAAAoKCggFXSAAABPgAAAT8AAd4eAAHeH15YRE1vZGVsUGFja2FnZaYAAd4gAAHeIQAB3iIAAd4jAAHeJAAAAUNeWERNb2RlbFBhY2thZ2VfEA9YRFVNTFBhY2thZ2VJbXBfEBFYRFVNTE5hbWVzcGFjZUltcF8QFFhEVU1MTmFtZWRFbGVtZW50SW1wXxAPWERVTUxFbGVtZW50SW1w0gAAADsAAAAOAAHeJgAAATyggEnTAAAAOgAAADsAAAAOAAHeKQAB3ioAAACgoKCAVV8QFU9idk1lc3Nlbmdlck1vZGVsLXY2NtIAAAE+AAABPwAB3i4AAd4vWVhEUE1Nb2RlbKMAAd4uAAHeMAAAAUNXWERNb2RlbAAAAAgAAAApAAAAMgAAADwAAABBAAAASgAAAE8AAABhAAAAagAAAG8AAABxAACTNQAAkzsAAJN0AACThgAAk40AAJOaAACTrQAAk8UAAJPTAACT7QAAk+8AAJPyAACT9QAAk/cAAJP6AACT/AAAk/8AAJRwAACUjwAAlKwAAJTLAACU3QAAlP0AAJUEAACVIgAAlS4AAJVKAACVUAAAlXIAAJWTAACVpgAAlagAAJWrAACVrgAAlbAAAJWyAACVtAAAlbcAAJW6AACVvAAAlb4AAJXAAACVwgAAlcQAAJXGAACVxwAAlcsAAJXkAACV7AAAlfcAAJa+AACWwAAAlsIAAJbEAACWxgAAlsgAAJbKAACWzAAAls4AAJbQAACW0gAAltQAAJbWAACW2AAAltoAAJbcAACW3gAAluAAAJbiAACW5AAAluYAAJboAACW6gAAluwAAJbuAACW8AAAlvIAAJb0AACW9gAAlvgAAJb6AACW/AAAlv4AAJcAAACXAgAAlwQAAJcGAACXCAAAlwoAAJcMAACXDgAAlxAAAJcSAACXFAAAlxYAAJcYAACXGgAAlxwAAJceAACXIAAAl+cAAJfpAACX7AAAl+8AAJfyAACX9QAAl/gAAJf7AACX/gAAmAEAAJgEAACYBwAAmAoAAJgNAACYDwAAmBIAAJgVAACYGAAAmBsAAJgeAACYIQAAmCQAAJgnAACYKgAAmC0AAJgwAACYMwAAmDYAAJg5AACYPAAAmD8AAJhCAACYRQAAmEgAAJhLAACYTgAAmFEAAJhUAACYVwAAmFoAAJhdAACYYAAAmGMAAJhmAACYaQAAmGwAAJhvAACYcgAAmHUAAJh4AACYegAAmJcAAJiqAACY5gAAmP8AAJknAACZPQAAmVgAAJl3AACZlwAAmbQAAJnOAACZ6AAAmfcAAJoKAACaKgAAmkgAAJpkAACaewAAmqMAAJrAAACa2AAAmt0AAJr7AACbKwAAm0MAAJtoAACbiwAAm68AAJvIAACb8QAAnAcAAJwzAACccAAAnIcAAJygAACc2QAAnPcAAJ0OAACdNAAAnWwAAJ2KAACdnQAAnbkAAJ3SAACd7wAAngoAAJ4lAACeQQAAnl8AAJ7iAACfBgAAnyoAAJ9NAACfdAAAn5QAAJ+7AACf4gAAoAIAAKAmAACgSgAAoFYAAKBYAACgWgAAoFwAAKBeAACgYAAAoGIAAKBlAACgZwAAoGkAAKBsAACgbgAAoHAAAKBzAACgdQAAoHYAAKB/AACghwAAoKAAAKClAACgpwAAoKwAAKCuAACgsAAAoL8AAKEIAAChLAAAoVMAAKF3AACheQAAoXsAAKF9AAChfwAAoYEAAKGDAAChhAAAoYYAAKGfAAChxAAAocYAAKHIAAChygAAocwAAKHOAACh0AAAodIAAKHUAACh1gAAofsAAKH9AACh/wAAogEAAKIDAACiBQAAogcAAKIJAACiCwAAog0AAKIPAACiJQAAojgAAKJUAACicQAAoo0AAKKhAACiswAAoskAAKLiAACjXQAAo2MAAKNsAACjeQAAo4UAAKOPAACjmQAAo6QAAKOvAACjvAAAo8QAAKPGAACjyAAAo8oAAKPMAACjzQAAo84AAKPPAACj0AAAo9IAAKPUAACj1QAAo9YAAKPYAACj2QAAo+oAAKPrAACj7QAAo/4AAKQJAACkEgAApCEAAKQuAACkNgAApD8AAKRQAACkYwAApHQAAKSHAACkngAApLAAAKUrAAClLQAApS8AAKUxAAClMwAApTQAAKU1AAClNgAApTcAAKU5AAClOwAApTwAAKU9AAClPwAApUAAAKW7AAClvQAApb8AAKXBAAClwwAApcQAAKXFAAClxgAApccAAKXJAAClywAApcwAAKXNAAClzwAApdAAAKXhAACl4gAApeQAAKZfAACmYQAApmMAAKZlAACmZwAApmgAAKZpAACmagAApmsAAKZtAACmbwAApnAAAKZxAACmcwAApnQAAKbvAACm8QAApvMAAKb1AACm9wAApvgAAKb5AACm+gAApvsAAKb9AACm/wAApwAAAKcBAACnAwAApwQAAKcVAACnFgAApxgAAKeTAACnlQAAp5cAAKeZAACnmwAAp5wAAKedAACnngAAp58AAKehAACnowAAp6QAAKelAACnpwAAp6gAAKepAACoJAAAqCYAAKgoAACoKgAAqCwAAKgtAACoLgAAqC8AAKgwAACoMgAAqDQAAKg1AACoNgAAqDgAAKg5AACoUgAAqFMAAKhUAACoVgAAqGcAAKh9AACoigAAqJcAAKkSAACpFAAAqRYAAKkYAACpGgAAqRsAAKkcAACpHQAAqR4AAKkgAACpIgAAqSMAAKkkAACpJgAAqScAAKlYAACpWgAAqVwAAKleAACpXwAAqWEAAKl4AACpiQAAqZcAAKmwAACpvgAAqdMAAKnnAACp/gAAqhAAAKqLAACqjQAAqo8AAKqRAACqkwAAqpQAAKqVAACqlgAAqpcAAKqZAACqmwAAqpwAAKqdAACqnwAAqqAAAKq9AACqzgAAquMAAKsAAACrFQAAqyMAAKs4AACrTAAAq2MAAKt1AACrjgAAq5sAAKudAACrnwAAq6EAAKuuAACrsAAAq7IAAKu0AACrtgAAq9EAAKvjAACr7gAArIEAAKykAACsxAAArOQAAKzmAACs6AAArOoAAKzsAACs7gAArO8AAKzwAACs8gAArPMAAKz1AACs9gAArPgAAKz6AACs+wAArPwAAKz+AACs/wAArQQAAK0dAACtJgAArSgAAK0qAACtMwAArTUAAK03AACtOQAArU4AAK1jAACtrAAArdAAAK33AACuGwAArh0AAK4fAACuIQAAriMAAK4lAACuJwAArigAAK4qAACuQwAArmQAAK5mAACuaAAArmoAAK5sAACubgAArnAAAK5yAACudAAArpUAAK6XAACumQAArpsAAK6dAACunwAArqEAAK6jAACupQAArqcAAK7FAACu4wAArvYAAK8KAACvHwAArzwAAK9QAACvZgAAr+EAAK/jAACv5QAAr+cAAK/pAACv6gAAr+sAAK/sAACv7QAAr+8AAK/xAACv8gAAr/MAAK/1AACv9gAAsHEAALBzAACwdQAAsHcAALB5AACwegAAsHsAALB8AACwfQAAsH8AALCBAACwggAAsIMAALCFAACwhgAAsQEAALEDAACxBQAAsQcAALEJAACxCgAAsQsAALEMAACxDQAAsQ8AALERAACxEgAAsRMAALEVAACxFgAAsS8AALEwAACxMQAAsTMAALGuAACxsAAAsbIAALG0AACxtgAAsbcAALG4AACxuQAAsboAALG8AACxvgAAsb8AALHAAACxwgAAscMAALI+AACyQAAAskIAALJEAACyRgAAskcAALJIAACySQAAskoAALJMAACyTgAAsk8AALJQAACyUgAAslMAALLOAACy0AAAstIAALLUAACy1gAAstcAALLYAACy2QAAstoAALLcAACy3gAAst8AALLgAACy4gAAsuMAALNeAACzYAAAs2IAALNkAACzZgAAs2cAALNoAACzaQAAs2oAALNsAACzbgAAs28AALNwAACzcgAAs3MAALPuAACz8AAAs/IAALP0AACz9gAAs/cAALP4AACz+QAAs/oAALP8AACz/gAAs/8AALQAAAC0AgAAtAMAALRMAAC0cAAAtJcAALS7AAC0vQAAtL8AALTBAAC0wwAAtMUAALTHAAC0yAAAtMoAALTjAAC1AAAAtQIAALUEAAC1BgAAtQgAALUKAAC1DAAAtQ4AALUrAAC1LQAAtS8AALUxAAC1MwAAtTUAALU3AAC1OQAAtTsAALVbAAC1hgAAtaAAALW5AAC10wAAtfMAALYWAAC2kQAAtpMAALaVAAC2lwAAtpkAALaaAAC2mwAAtpwAALadAAC2nwAAtqEAALaiAAC2owAAtqUAALamAAC3IQAAtyMAALclAAC3JwAAtykAALcqAAC3KwAAtywAALctAAC3LwAAtzEAALcyAAC3MwAAtzUAALc2AAC3sQAAt7MAALe1AAC3twAAt7kAALe6AAC3uwAAt7wAALe9AAC3vwAAt8EAALfCAAC3wwAAt8UAALfGAAC4QQAAuEMAALhFAAC4RwAAuEkAALhKAAC4SwAAuEwAALhNAAC4TwAAuFEAALhSAAC4UwAAuFUAALh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bAADKHAAAyh4AAMofAADKmgAAypwAAMqeAADKoAAAyqIAAMqjAADKpAAAyqUAAMqmAADKqAAAyqoAAMqrAADKrAAAyq4AAMqvAADLKgAAyywAAMsuAADLMAAAyzIAAMszAADLNAAAyzUAAMs2AADLOAAAyzoAAMs7AADLPAAAyz4AAMs/AADLWAAAy1kAAMtaAADLXAAAy9cAAMvZAADL2wAAy90AAMvfAADL4AAAy+EAAMviAADL4wAAy+UAAMvnAADL6AAAy+kAAMvrAADL7AAAzGcAAMxpAADMawAAzG0AAMxvAADMcAAAzHEAAMxyAADMcwAAzHUAAMx3AADMeAAAzHkAAMx7AADMfAAAzH0AAMz4AADM+gAAzPwAAMz+AADNAAAAzQEAAM0CAADNAwAAzQQAAM0GAADNCAAAzQkAAM0KAADNDAAAzQ0AAM2IAADNigAAzYwAAM2OAADNkAAAzZEAAM2SAADNkwAAzZQAAM2WAADNmAAAzZkAAM2aAADNnAAAzZ0AAM4YAADOGgAAzhwAAM4eAADOIAAAziEAAM4iAADOIwAAziQAAM4mAADOKAAAzikAAM4qAADOLAAAzi0AAM52AADOmgAAzsEAAM7lAADO5wAAzukAAM7rAADO7QAAzu8AAM7xAADO8gAAzvQAAM8NAADPKgAAzywAAM8uAADPMAAAzzIAAM80AADPNgAAzzgAAM9VAADPVwAAz1kAAM9bAADPXQAAz2AAAM9jAADPZgAAz2gAAM96AADPjgAAz6AAAM+1AADPxwAAz9YAAM/zAADQbgAA0HAAANByAADQdAAA0HYAANB3AADQeAAA0HkAANB6AADQfAAA0H4AANB/AADQgAAA0IIAANCDAADQ/gAA0QAAANECAADRBAAA0QYAANEHAADRCAAA0QkAANEKAADRDAAA0Q4AANEPAADREAAA0RIAANETAADRFQAA0ZAAANGSAADRlAAA0ZYAANGYAADRmQAA0ZoAANGbAADRnAAA0Z4AANGgAADRoQAA0aIAANGkAADRpQAA0iAAANIiAADSJAAA0iYAANIoAADSKQAA0ioAANIrAADSLAAA0i4AANIwAADSMQAA0jIAANI0AADSNQAA0rgAANLcAADTAAAA0yMAANNKAADTagAA05EAANO4AADT2AAA0/wAANQgAADUIgAA1CQAANQmAADUKAAA1CoAANQsAADULwAA1DEAANQzAADUNgAA1DgAANQ6AADUPQAA1D8AANRAAADURQAA1F4AANRjAADUZQAA1GoAANRsAADUbgAA1LcAANTbAADVAgAA1SYAANUoAADVKgAA1SwAANUuAADVMAAA1TIAANUzAADVNQAA1U4AANVzAADVdQAA1XcAANV5AADVewAA1X0AANV/AADVgQAA1YMAANWFAADVqgAA1awAANWuAADVsAAA1bIAANW0AADVtgAA1bgAANW6AADVvAAA1b4AANY5AADWOwAA1j0AANY/AADWQQAA1kIAANZDAADWRAAA1kUAANZHAADWSQAA1koAANZLAADWTQAA1k4AANZfAADWYAAA1mIAANbdAADW3wAA1uEAANbjAADW5QAA1uYAANbnAADW6AAA1ukAANbrAADW7QAA1u4AANbvAADW8QAA1vIAANdtAADXbwAA13EAANdzAADXdQAA13YAANd3AADXeAAA13kAANd7AADXfQAA134AANd/AADXgQAA14IAANeTAADXmAAA15oAANecAADXrQAA17YAANe4AADXugAA17wAANfXAADYUgAA2FQAANhWAADYWAAA2FoAANhbAADYXAAA2F0AANheAADYYAAA2GIAANhjAADYZAAA2GYAANhnAADY4gAA2OQAANjmAADY6AAA2OoAANjrAADY7AAA2O0AANjuAADY8AAA2PIAANjzAADY9AAA2PYAANj3AADZCAAA2QkAANkLAADZhgAA2YgAANmKAADZjAAA2Y4AANmPAADZkAAA2ZEAANmSAADZlAAA2ZYAANmXAADZmAAA2ZoAANmbAADaFgAA2hgAANoaAADaHAAA2h4AANofAADaIAAA2iEAANoiAADaJAAA2iYAANonAADaKAAA2ioAANorAADaRAAA2kUAANpGAADaSAAA2sMAANrFAADaxwAA2skAANrLAADazAAA2s0AANrOAADazwAA2tEAANrTAADa1AAA2tUAANrXAADa2AAA21MAANtVAADbVwAA21kAANtbAADbXAAA210AANteAADbXwAA22EAANtjAADbZAAA22UAANtnAADbaAAA23sAANuUAADb5wAA2+kAANvrAADb7QAA2+8AANvxAADb8wAA2/UAANv3AADb+QAA2/sAANv9AADb/wAA3AEAANwDAADcBQAA3AcAANwJAADcCwAA3A0AANwPAADcYgAA3GQAANxnAADcagAA3G0AANxwAADccwAA3HYAANx5AADcfAAA3H8AANyCAADchQAA3IgAANyLAADcjgAA3JEAANyUAADclwAA3JoAANydAADcnwAA3LEAANzMAADc3gAA3PQAAN0CAADdDwAA3RoAAN0yAADdRQAA3WMAAN15AADdiAAA3Z0AAN3KAADd7gAA3gEAAN4cAADeLwAA3ksAAN7eAADfAQAA3yEAAN9BAADfQwAA30UAAN9HAADfSQAA30sAAN9MAADfTQAA308AAN9QAADfUgAA31MAAN9VAADfVwAA31gAAN9ZAADfWwAA31wAAN9lAADffgAA34cAAN+JAADfiwAA35QAAN+WAADfmAAA35oAAN/jAADgBwAA4C4AAOBSAADgVAAA4FYAAOBYAADgWgAA4FwAAOBeAADgXwAA4GEAAOB6AADgmwAA4J0AAOCfAADgoQAA4KMAAOClAADgpwAA4KkAAOCrAADgzAAA4M4AAODQAADg0gAA4NQAAODWAADg2AAA4NoAAODcAADg3gAA4VkAAOFbAADhXQAA4V8AAOFhAADhYgAA4WMAAOFkAADhZQAA4WcAAOFpAADhagAA4WsAAOFtAADhbgAA4ekAAOHrAADh7QAA4e8AAOHxAADh8gAA4fMAAOH0AADh9QAA4fcAAOH5AADh+gAA4fsAAOH9AADh/gAA4nkAAOJ7AADifQAA4n8AAOKBAADiggAA4oMAAOKEAADihQAA4ocAAOKJAADiigAA4osAAOKNAADijgAA4qcAAOKoAADiqQAA4qsAAOMmAADjKAAA4yoAAOMsAADjLgAA4y8AAOMwAADjMQAA4zIAAOM0AADjNgAA4zcAAOM4AADjOgAA4zsAAOO2AADjuAAA47oAAOO8AADjvgAA478AAOPAAADjwQAA48IAAOPEAADjxgAA48cAAOPIAADjygAA48sAAORGAADkSAAA5EoAAORMAADkTgAA5E8AAORQAADkUQAA5FIAAORUAADkVgAA5FcAAORYAADkWgAA5FsAAOTWAADk2AAA5NoAAOTcAADk3gAA5N8AAOTgAADk4QAA5OIAAOTkAADk5gAA5OcAAOToAADk6gAA5OsAAOVmAADlaAAA5WoAAOVsAADlbgAA5W8AAOVwAADlcQAA5XIAAOV0AADldgAA5XcAAOV4AADlegAA5XsAAOXEAADl6AAA5g8AAOYzAADmNQAA5jcAAOY5AADmOwAA5j0AAOY/AADmQAAA5kIAAOZbAADmeAAA5noAAOZ8AADmfgAA5oAAAOaCAADmhAAA5oYAAOajAADmpQAA5qcAAOapAADmqwAA5q4AAOaxAADmtAAA5rYAAOcxAADnMwAA5zUAAOc3AADnOQAA5zoAAOc7AADnPAAA5z0AAOc/AADnQQAA50IAAOdDAADnRQAA50YAAOdJAADnxAAA58YAAOfIAADnygAA58wAAOfNAADnzgAA588AAOfQAADn0gAA59QAAOfVAADn1gAA59gAAOfZAADoVAAA6FYAAOhYAADoWgAA6FwAAOhdAADoXgAA6F8AAOhgAADoYgAA6GQAAOhlAADoZgAA6GgAAOhpAADo5AAA6OYAAOjoAADo6gAA6OwAAOjtAADo7gAA6O8AAOjwAADo8gAA6PQAAOj1AADo9gAA6PgAAOj5AADo/AAA6XcAAOl5AADpewAA6X0AAOl/AADpgAAA6YEAAOmCAADpgwAA6YUAAOmHAADpiAAA6YkAAOmLAADpjAAA6gcAAOoJAADqCwAA6g0AAOoPAADqEAAA6hEAAOoSAADqEwAA6hUAAOoXAADqGAAA6hkAAOobAADqHAAA6pcAAOqZAADqmwAA6p0AAOqfAADqoAAA6qEAAOqiAADqowAA6qUAAOqnAADqqAAA6qkAAOqrAADqrAAA6z8AAOtiAADrggAA66IAAOukAADrpgAA66gAAOuqAADrrAAA660AAOuuAADrsQAA67IAAOu0AADrtQAA67cAAOu5AADrugAA67sAAOu+AADrvwAA68QAAOvdAADr5gAA6+gAAOvqAADr8wAA6/YAAOv5AADr+wAA7EQAAOxoAADsjwAA7LMAAOy2AADsuAAA7LoAAOy8AADsvgAA7MAAAOzBAADsxAAA7N0AAOz+AADtAAAA7QIAAO0EAADtBgAA7QgAAO0KAADtDAAA7Q4AAO0vAADtMgAA7TUAAO04AADtOwAA7T4AAO1BAADtRAAA7UcAAO1JAADtxAAA7cYAAO3IAADtygAA7c0AAO3OAADtzwAA7dAAAO3RAADt0wAA7dUAAO3WAADt1wAA7dkAAO3aAADuVQAA7lcAAO5ZAADuWwAA7l4AAO5fAADuYAAA7mEAAO5iAADuZAAA7mYAAO5nAADuaAAA7moAAO5rAADu5gAA7ugAAO7rAADu7QAA7vAAAO7xAADu8gAA7vMAAO70AADu9gAA7vgAAO75AADu+gAA7vwAAO79AADvFgAA7xcAAO8YAADvGgAA75UAAO+XAADvmQAA75sAAO+eAADvnwAA76AAAO+hAADvogAA76QAAO+mAADvpwAA76gAAO+qAADvqwAA8CYAAPAoAADwKgAA8CwAAPAvAADwMAAA8DEAAPAyAADwMwAA8DUAAPA3AADwOAAA8DkAAPA7AADwPAAA8LcAAPC5AADwuwAA8L0AAPDAAADwwQAA8MIAAPDDAADwxAAA8MYAAPDIAADwyQAA8MoAAPDMAADwzQAA8UgAAPFKAADxTAAA8U4AAPFRAADxUgAA8VMAAPFUAADxVQAA8VcAAPFZAADxWgAA8VsAAPFdAADxXgAA8dkAAPHbAADx3QAA8d8AAPHiAADx4wAA8eQAAPHlAADx5gAA8egAAPHqAADx6wAA8ewAAPHuAADx7wAA8jgAAPJcAADygwAA8qcAAPKqAADyrAAA8q4AAPKwAADysgAA8rQAAPK1AADyuAAA8tEAAPLuAADy8AAA8vIAAPL0AADy9gAA8vgAAPL6AADy/AAA8xkAAPMcAADzHwAA8yIAAPMlAADzKAAA8ysAAPMuAADzMAAA86sAAPOtAADzrwAA87EAAPO0AADztQAA87YAAPO3AADzuAAA87oAAPO8AADzvQAA874AAPPAAADzwQAA9DwAAPQ+AAD0QAAA9EIAAPRFAAD0RgAA9EcAAPRIAAD0SQAA9EsAAPRNAAD0TgAA9E8AAPRRAAD0UgAA9M0AAPTPAAD00QAA9NMAAPTWAAD01wAA9NgAAPTZAAD02gAA9NwAAPTeAAD03wAA9OAAAPTiAAD04wAA9V4AAPVgAAD1YgAA9WQAAPVnAAD1aAAA9WkAAPVqAAD1awAA9W0AAPVvAAD1cAAA9XEAAPVzAAD1dAAA9e8AAPXxAAD18wAA9fUAAPX4AAD1+QAA9foAAPX7AAD1/AAA9f4AAPYAAAD2AQAA9gIAAPYEAAD2BQAA9oAAAPaCAAD2hAAA9oYAAPaJAAD2igAA9osAAPaMAAD2jQAA9o8AAPaRAAD2kgAA9pMAAPa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jAAER5AABEeYAARHnAAESAAABEgEAARICAAESBAABEn8AARKBAAESgwABEoUAARKIAAESiQABEooAARKLAAESjAABEo4AARKQAAESkQABEpIAARKUAAESlQABExAAARMSAAETFAABExYAARMZAAETGgABExsAARMcAAETHQABEx8AARMhAAETIgABEyMAARMlAAETJgABE6EAAROjAAETpQABE6cAAROqAAETqwABE6wAAROtAAETrgABE7AAAROyAAETswABE7QAARO2AAETtwABFDIAARQ0AAEUNgABFDgAARQ7AAEUPAABFD0AARQ+AAEUPwABFEEAARRDAAEURAABFEUAARRHAAEUSAABFMMAARTFAAEUxwABFMkAARTMAAEUzQABFM4AARTPAAEU0AABFNIAARTUAAEU1QABFNYAARTYAAEU2QABFSIAARVGAAEVbQABFZEAARWUAAEVlgABFZgAARWaAAEVnAABFZ4AARWfAAEVogABFbsAARXYAAEV2gABFdwAARXeAAEV4AABFeIAARXkAAEV5gABFgMAARYGAAEWCQABFgwAARYPAAEWEgABFhUAARYYAAEWGgABFpUAARaXAAEWmQABFpsAARaeAAEWnwABFqAAARahAAEWogABFqQAARamAAEWpwABFqgAARaqAAEWqwABFyYAARcoAAEXKgABFywAARcvAAEXMAABFzEAARcyAAEXMwABFzUAARc3AAEXOAABFzkAARc7AAEXPAABF7cAARe5AAEXuwABF70AARfAAAEXwQABF8IAARfDAAEXxAABF8YAARfIAAEXyQABF8oAARfMAAEXzQABGEgAARhKAAEYTAABGE4AARhRAAEYUgABGFMAARhUAAEYVQABGFcAARhZAAEYWgABGFsAARhdAAEYXgABGNkAARjbAAEY3QABGN8AARjiAAEY4wABGOQAARjlAAEY5gABGOgAARjqAAEY6wABGOwAARjuAAEY7wABGWoAARlsAAEZbgABGXAAARlzAAEZdAABGXUAARl2AAEZdwABGXkAARl7AAEZfAABGX0AARl/AAEZgAABGfsAARn9AAEZ/wABGgEAARoEAAEaBQABGgYAARoHAAEaCAABGgoAARoMAAEaDQABGg4AARoQAAEaEQABGqQAARrHAAEa5wABGwcAARsJAAEbCwABGw0AARsPAAEbEgABGxMAARsUAAEbFwABGxgAARsaAAEbGwABGx0AARsgAAEbIQABGyIAARslAAEbJgABGysAARtEAAEbTQABG08AARtRAAEbWgABG10AARtgAAEbYgABG6sAARvPAAEb9gABHBoAARwdAAEcHwABHCEAARwjAAEcJQABHCcAARwoAAEcKwABHEQAARxlAAEcZwABHGkAARxrAAEcbQABHG8AARxxAAEccwABHHUAARyWAAEcmQABHJwAARyfAAEcogABHKUAARyoAAEcqwABHK4AARywAAEdKwABHS0AAR0vAAEdMQABHTQAAR01AAEdNgABHTcAAR04AAEdOgABHTwAAR09AAEdPgABHUAAAR1BAAEdvAABHb4AAR3AAAEdwgABHcUAAR3GAAEdxwABHcgAAR3JAAEdywABHc0AAR3OAAEdzwABHdEAAR3SAAEeTQABHk8AAR5SAAEeVAABHlcAAR5YAAEeWQABHloAAR5bAAEeXQABHl8AAR5gAAEeYQABHmMAAR5kAAEefQABHn4AAR5/AAEegQABHvwAAR7+AAEfAAABHwIAAR8FAAEfBgABHwcAAR8IAAEfCQABHwsAAR8NAAEfDgABHw8AAR8RAAEfEgABH40AAR+PAAEfkQABH5MAAR+WAAEflwABH5gAAR+ZAAEfmgABH5wAAR+eAAEfnwABH6AAAR+iAAEfowABIB4AASAgAAEgIgABICQAASAnAAEgKAABICkAASAqAAEgKwABIC0AASAvAAEgMAABIDEAASAzAAEgNAABIK8AASCxAAEgswABILUAASC4AAEguQABILoAASC7AAEgvAABIL4AASDAAAEgwQABIMIAASDEAAEgxQABIUAAASFCAAEhRAABIUYAASFJAAEhSgABIUsAASFMAAEhTQABIU8AASFRAAEhUgABIVMAASFVAAEhVgABIZ8AASHDAAEh6gABIg4AASIRAAEiEwABIhUAASIXAAEiGQABIhsAASIcAAEiHwABIjgAASJVAAEiVwABIlkAASJbAAEiXQABIl8AASJhAAEiYwABIoAAASKDAAEihgABIokAASKMAAEijwABIpIAASKVAAEilwABIxIAASMUAAEjFgABIxgAASMbAAEjHAABIx0AASMeAAEjHwABIyEAASMjAAEjJAABIyUAASMnAAEjKAABI6MAASOlAAEjpwABI6kAASOsAAEjrQABI64AASOvAAEjsAABI7IAASO0AAEjtQABI7YAASO4AAEjuQABJDQAASQ2AAEkOAABJDoAASQ9AAEkPgABJD8AASRAAAEkQQABJEMAASRFAAEkRgABJEcAASRJAAEkSgABJMUAASTHAAEkygABJMwAASTPAAEk0AABJNEAASTSAAEk0wABJNUAASTXAAEk2AABJNkAASTbAAEk3AABJN8AASVaAAElXAABJV4AASVgAAElYwABJWQAASVlAAElZgABJWcAASVpAAElawABJWwAASVtAAElbwABJXAAASXrAAEl7QABJe8AASXxAAEl9AABJfUAASX2AAEl9wABJfgAASX6AAEl/AABJf0AASX+AAEmAAABJgEAASZ8AAEmfgABJoAAASaCAAEmhQABJoYAASaHAAEmiAABJokAASaLAAEmjQABJo4AASaPAAEmkQABJpIAASclAAEnSAABJ2gAASeIAAEnigABJ4wAASeOAAEnkAABJ5MAASeUAAEnlQABJ5gAASeZAAEnmwABJ5wAASeeAAEnoQABJ6IAASejAAEnpgABJ6cAASesAAEnxQABJ84AASfQAAEn0gABJ9sAASfeAAEn4QABJ+MAASgsAAEoUAABKHcAASibAAEongABKKAAASiiAAEopAABKKYAASioAAEoqQABKKwAASjFAAEo5gABKOgAASjqAAEo7AABKO4AASjwAAEo8gABKPQAASj2AAEpFwABKRoAASkdAAEpIAABKSMAASkmAAEpKQABKSwAASkvAAEpMQABKawAASmuAAEpsAABKbIAASm1AAEptgABKbcAASm4AAEpuQABKbsAASm9AAEpvgABKb8AASnBAAEpwgABKj0AASo/AAEqQQABKkMAASpGAAEqRwABKkgAASpJAAEqSgABKkwAASpOAAEqTwABKlAAASpSAAEqUwABKs4AASrQAAEq0wABKtUAASrYAAEq2QABKtoAASrbAAEq3AABKt4AASrgAAEq4QABKuIAASrkAAEq5QABKv4AASr/AAErAAABKwIAASt9AAErfwABK4EAASuDAAErhgABK4cAASuIAAEriQABK4oAASuMAAErjgABK48AASuQAAErkgABK5MAASwOAAEsEAABLBIAASwUAAEsFwABLBgAASwZAAEsGgABLBsAASwdAAEsHwABLCAAASwhAAEsIwABLCQAASyfAAEsoQABLKMAASylAAEsqAABLKkAASyqAAEsqwABLKwAASyuAAEssAABLLEAASyyAAEstAABLLUAAS0wAAEtMgABLTQAAS02AAEtOQABLToAAS07AAEtPAABLT0AAS0/AAEtQQABLUIAAS1DAAEtRQABLUYAAS3BAAEtwwABLcUAAS3HAAEtygABLcsAAS3MAAEtzQABLc4AAS3QAAEt0gABLdMAAS3UAAEt1gABLdcAAS4gAAEuRAABLmsAAS6PAAEukgABLpQAAS6WAAEumAABLpoAAS6cAAEunQABLqAAAS65AAEu1gABLtgAAS7aAAEu3AABLt4AAS7gAAEu4gABLuQAAS8BAAEvBAABLwcAAS8KAAEvDQABLxAAAS8TAAEvFgABLxgAAS+TAAEvlQABL5cAAS+ZAAEvnAABL50AAS+eAAEvnwABL6AAAS+iAAEvpAABL6UAAS+mAAEvqAABL6kAATAkAAEwJgABMCgAATAqAAEwLQABMC4AATAvAAEwMAABMDEAATAzAAEwNQABMDYAATA3AAEwOQABMDoAATC1AAEwtwABMLkAATC7AAEwvgABML8AATDAAAEwwQABMMIAATDEAAEwxgABMMcAATDIAAEwygABMMsAATFGAAExSAABMUoAATFMAAExTwABMVAAATFRAAExUgABMVMAATFVAAExVwABMVgAATFZAAExWwABMVwAATHXAAEx2QABMdsAATHdAAEx4AABMeEAATHiAAEx4wABMeQAATHmAAEx6AABMekAATHqAAEx7AABMe0AATJoAAEyagABMmwAATJuAAEycQABMnIAATJzAAEydAABMnUAATJ3AAEyeQABMnoAATJ7AAEyfQABMn4AATL5AAEy+wABMv0AATL/AAEzAgABMwMAATMEAAEzBQABMwYAATMIAAEzCgABMwsAATMMAAEzDgABMw8AATOiAAEzxQABM+UAATQFAAE0BwABNAkAATQLAAE0DQABNBAAATQRAAE0EgABNBUAATQWAAE0GAABNBkAATQbAAE0HgABNB8AATQgAAE0IwABNCQAATQtAAE0RgABNE8AATRRAAE0UwABNFwAATRfAAE0YgABNGQAATStAAE00QABNPgAATUcAAE1HwABNSEAATUjAAE1JQABNScAATUpAAE1KgABNS0AATVGAAE1ZwABNWkAATVrAAE1bQABNW8AATVxAAE1cwABNXUAATV3AAE1mAABNZsAATWeAAE1oQABNaQAATWnAAE1qgABNa0AATWwAAE1sgABNi0AATYvAAE2MQABNjMAATY2AAE2NwABNjgAATY5AAE2OgABNjwAATY+AAE2PwABNkAAATZCAAE2QwABNr4AATbAAAE2wgABNsQAATbHAAE2yAABNskAATbKAAE2ywABNs0AATbPAAE20AABNtEAATbTAAE21AABN08AATdRAAE3VAABN1YAATdZAAE3WgABN1sAATdcAAE3XQABN18AATdhAAE3YgABN2MAATdlAAE3ZgABN38AATeAAAE3gQABN4MAATf+AAE4AAABOAIAATgEAAE4BwABOAgAATgJAAE4CgABOAsAATgNAAE4DwABOBAAATgRAAE4EwABOBQAATiPAAE4kQABOJMAATiVAAE4mAABOJkAATiaAAE4mwABOJwAATieAAE4oAABOKEAATiiAAE4pAABOKUAATkgAAE5IgABOSQAATkmAAE5KQABOSoAATkrAAE5LAABOS0AATkvAAE5MQABOTIAATkzAAE5NQABOTYAATmxAAE5swABObUAATm3AAE5ugABObsAATm8AAE5vQABOb4AATnAAAE5wgABOcMAATnEAAE5xgABOccAATpCAAE6RAABOkYAATpIAAE6SwABOkwAATpNAAE6TgABOk8AATpRAAE6UwABOlQAATpVAAE6VwABOlgAATqhAAE6xQABOuwAATsQAAE7EwABOxUAATsXAAE7GQABOxsAATsdAAE7HgABOyEAATs6AAE7VwABO1kAATtbAAE7XQABO18AATthAAE7YwABO2UAATuCAAE7hQABO4gAATuLAAE7jgABO5EAATuUAAE7lwABO5kAATwUAAE8FgABPBgAATwaAAE8HQABPB4AATwfAAE8IAABPCEAATwjAAE8JQABPCYAATwnAAE8KQABPCoAATylAAE8pwABPKkAATyrAAE8rgABPK8AATywAAE8sQABPLIAATy0AAE8tgABPLcAATy4AAE8ugABPLsAAT02AAE9OAABPToAAT08AAE9PwABPUAAAT1BAAE9QgABPUMAAT1FAAE9RwABPUgAAT1JAAE9SwABPUwAAT3HAAE9yQABPcsAAT3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3AAFX+AABV/kAAVf7AAFX/QABV/4AAVf/AAFYAQABWAIAAVh9AAFYfwABWIEAAViDAAFYhgABWIcAAViIAAFYiQABWIoAAViMAAFYjgABWI8AAViQAAFYkgABWJMAAVkmAAFZSQABWWkAAVmJAAFZiwABWY0AAVmPAAFZkQABWZQAAVmVAAFZlgABWZkAAVmaAAFZnAABWZ0AAVmfAAFZogABWaMAAVmkAAFZpwABWagAAVmtAAFZxgABWc8AAVnRAAFZ0wABWdwAAVnfAAFZ4gABWeQAAVotAAFaUQABWngAAVqcAAFanwABWqEAAVqjAAFapQABWqcAAVqpAAFaqgABWq0AAVrGAAFa5wABWukAAVrrAAFa7QABWu8AAVrxAAFa8wABWvUAAVr3AAFbGAABWxsAAVseAAFbIQABWyQAAVsnAAFbKgABWy0AAVswAAFbMgABW60AAVuvAAFbsQABW7MAAVu2AAFbtwABW7gAAVu5AAFbugABW7wAAVu+AAFbvwABW8AAAVvCAAFbwwABXD4AAVxAAAFcQgABXEQAAVxHAAFcSAABXEkAAVxKAAFcSwABXE0AAVxPAAFcUAABXFEAAVxTAAFcVAABXM8AAVzRAAFc1AABXNYAAVzZAAFc2gABXNsAAVzcAAFc3QABXN8AAVzhAAFc4gABXOMAAVzlAAFc5gABXP8AAV0AAAFdAQABXQMAAV1+AAFdgAABXYIAAV2EAAFdhwABXYgAAV2JAAFdigABXYsAAV2NAAFdjwABXZAAAV2RAAFdkwABXZQAAV4PAAFeEQABXhMAAV4VAAFeGAABXhkAAV4aAAFeGwABXhwAAV4eAAFeIAABXiEAAV4iAAFeJAABXiUAAV6gAAFeogABXqQAAV6mAAFeqQABXqoAAV6rAAFerAABXq0AAV6vAAFesQABXrIAAV6zAAFetQABXrYAAV8xAAFfMwABXzUAAV83AAFfOgABXzsAAV88AAFfPQABXz4AAV9AAAFfQgABX0MAAV9EAAFfRgABX0cAAV/CAAFfxAABX8YAAV/IAAFfywABX8wAAV/NAAFfzgABX88AAV/RAAFf0wABX9QAAV/VAAFf1wABX9gAAWAhAAFgRQABYGwAAWCQAAFgkwABYJUAAWCXAAFgmQABYJsAAWCdAAFgngABYKEAAWC6AAFg1wABYNkAAWDbAAFg3QABYN8AAWDhAAFg4wABYOUAAWECAAFhBQABYQgAAWELAAFhDgABYREAAWEUAAFhFwABYRkAAWGUAAFhlgABYZgAAWGaAAFhnQABYZ4AAWGfAAFhoAABYaEAAWGjAAFhpQABYaYAAWGnAAFhqQABYaoAAWIlAAFiJwABYikAAWIrAAFiLgABYi8AAWIwAAFiMQABYjIAAWI0AAFiNgABYjcAAWI4AAFiOgABYjsAAWK2AAFiuAABYroAAWK8AAFivwABYsAAAWLBAAFiwgABYsMAAWLFAAFixwABYsgAAWLJAAFiywABYswAAWNHAAFjSQABY0wAAWNOAAFjUQABY1IAAWNTAAFjVAABY1UAAWNXAAFjWQABY1oAAWNbAAFjXQABY14AAWPZAAFj2wABY90AAWPfAAFj4gABY+MAAWPkAAFj5QABY+YAAWPoAAFj6gABY+sAAWPsAAFj7gABY+8AAWRqAAFkbAABZG4AAWRwAAFkcwABZHQAAWR1AAFkdgABZHcAAWR5AAFkewABZHwAAWR9AAFkfwABZIAAAWT7AAFk/QABZP8AAWUBAAFlBAABZQUAAWUGAAFlBwABZQgAAWUKAAFlDAABZQ0AAWUOAAFlEAABZREAAWWkAAFlxwABZecAAWYHAAFmCQABZgsAAWYNAAFmDwABZhIAAWYTAAFmFAABZhcAAWYYAAFmGgABZhsAAWYdAAFmIAABZiEAAWYiAAFmJQABZiYAAWYrAAFmRAABZk0AAWZPAAFmUQABZloAAWZdAAFmYAABZmIAAWarAAFmzwABZvYAAWcaAAFnHQABZx8AAWchAAFnIwABZyUAAWcnAAFnKAABZysAAWdEAAFnZQABZ2cAAWdpAAFnawABZ20AAWdvAAFncQABZ3MAAWd1AAFnlgABZ5kAAWecAAFnnwABZ6IAAWelAAFnqAABZ6sAAWeuAAFnsAABaCsAAWgtAAFoLwABaDEAAWg0AAFoNQABaDYAAWg3AAFoOAABaDoAAWg8AAFoPQABaD4AAWhAAAFoQQABaLwAAWi+AAFowAABaMIAAWjFAAFoxgABaMcAAWjIAAFoyQABaMsAAWjNAAFozgABaM8AAWjRAAFo0gABaU0AAWlPAAFpUgABaVQAAWlXAAFpWAABaVkAAWlaAAFpWwABaV0AAWlfAAFpYAABaWEAAWljAAFpZAABaX0AAWl+AAFpfwABaYEAAWn8AAFp/gABagAAAWoCAAFqBQABagYAAWoHAAFqCAABagkAAWoLAAFqDQABag4AAWoPAAFqEQABahIAAWqNAAFqjwABapEAAWqTAAFqlgABapcAAWqYAAFqmQABapoAAWqcAAFqngABap8AAWqgAAFqogABaqMAAWseAAFrIAABayIAAWskAAFrJwABaygAAWspAAFrKgABaysAAWstAAFrLwABazAAAWsxAAFrMwABazQAAWuvAAFrsQABa7MAAWu1AAFruAABa7kAAWu6AAFruwABa7wAAWu+AAFrwAABa8EAAWvCAAFrxAABa8UAAWxAAAFsQgABbEQAAWxGAAFsSQABbEoAAWxLAAFsTAABbE0AAWxPAAFsUQABbFIAAWxTAAFsVQABbFYAAWyfAAFswwABbOoAAW0OAAFtEQABbRMAAW0VAAFtFwABbRkAAW0bAAFtHAABbR8AAW04AAFtVQABbVcAAW1ZAAFtWwABbV0AAW1fAAFtYQABbWMAAW2AAAFtgwABbYYAAW2JAAFtjAABbY8AAW2SAAFtlQABbZcAAW4SAAFuFAABbhYAAW4YAAFuGwABbhwAAW4dAAFuHgABbh8AAW4hAAFuIwABbiQAAW4lAAFuJwABbigAAW6jAAFupQABbqcAAW6pAAFurAABbq0AAW6uAAFurwABbrAAAW6yAAFutAABbrUAAW62AAFuuAABbrkAAW80AAFvNgABbzgAAW86AAFvPQABbz4AAW8/AAFvQAABb0EAAW9DAAFvRQABb0YAAW9HAAFvSQABb0oAAW/FAAFvxwABb8oAAW/MAAFvzwABb9AAAW/RAAFv0gABb9MAAW/VAAFv1wABb9gAAW/ZAAFv2wABb9wAAXBXAAFwWQABcFsAAXBdAAFwYAABcGEAAXBiAAFwYwABcGQAAXBmAAFwaAABcGkAAXBqAAFwbAABcG0AAXDoAAFw6gABcOwAAXDuAAFw8QABcPIAAXDzAAFw9AABcPUAAXD3AAFw+QABcPoAAXD7AAFw/QABcP4AAXF5AAFxewABcX0AAXF/AAFxggABcYMAAXGEAAFxhQABcYYAAXGIAAFxigABcYsAAXGMAAFxjgABcY8AAXIiAAFyRQABcmUAAXKFAAFyhwABcokAAXKLAAFyjQABcpAAAXKRAAFykgABcpUAAXKWAAFymAABcpkAAXKcAAFynwABcqAAAXKhAAFypAABcqUAAXKuAAFyxwABctAAAXLSAAFy1AABct0AAXLgAAFy4wABcuUAAXMuAAFzUgABc3kAAXOdAAFzoAABc6IAAXOkAAFzpgABc6gAAXOqAAFzqwABc64AAXPHAAFz6AABc+oAAXPsAAFz7gABc/AAAXPyAAFz9AABc/YAAXP4AAF0GQABdBwAAXQfAAF0IgABdCUAAXQoAAF0KwABdC4AAXQxAAF0MwABdK4AAXSwAAF0sgABdLQAAXS3AAF0uAABdLkAAXS6AAF0uwABdL0AAXS/AAF0wAABdMEAAXTDAAF0xAABdT8AAXVBAAF1QwABdUUAAXVIAAF1SQABdUoAAXVLAAF1TAABdU4AAXVQAAF1UQABdVIAAXVUAAF1VQABddAAAXXSAAF11QABddcAAXXaAAF12wABddwAAXXdAAF13gABdeAAAXXiAAF14wABdeQAAXXmAAF15wABdgAAAXYBAAF2AgABdgQAAXZ/AAF2gQABdoMAAXaFAAF2iAABdokAAXaKAAF2iwABdowAAXaOAAF2kAABdpEAAXaSAAF2lAABdpUAAXcQAAF3EgABdxQAAXcWAAF3GQABdxoAAXcbAAF3HAABdx0AAXcfAAF3IQABdyIAAXcjAAF3JQABdyYAAXehAAF3owABd6UAAXenAAF3qgABd6sAAXesAAF3rQABd64AAXewAAF3sgABd7MAAXe0AAF3tgABd7cAAXgyAAF4NAABeDYAAXg4AAF4OwABeDwAAXg9AAF4PgABeD8AAXhBAAF4QwABeEQAAXhFAAF4RwABeEgAAXjDAAF4xQABeMcAAXjJAAF4zAABeM0AAXjOAAF4zwABeNAAAXjSAAF41AABeNUAAXjWAAF42AABeNkAAXkiAAF5RgABeW0AAXmRAAF5lAABeZYAAXmYAAF5mgABeZwAAXmeAAF5nwABeaIAAXm7AAF52AABedoAAXncAAF53gABeeAAAXniAAF55AABeeYAAXoDAAF6BgABegkAAXoMAAF6DwABehIAAXoVAAF6GAABehoAAXqVAAF6lwABepkAAXqbAAF6ngABep8AAXqgAAF6oQABeqIAAXqkAAF6pgABeqcAAXqoAAF6qgABeqsAAXsmAAF7KAABeyoAAXssAAF7LwABezAAAXsxAAF7MgABezMAAXs1AAF7NwABezgAAXs5AAF7OwABezwAAXu3AAF7uQABe7sAAXu9AAF7wAABe8EAAXvCAAF7wwABe8QAAXvGAAF7yAABe8kAAXvKAAF7zAABe80AAXxIAAF8SgABfE0AAXxPAAF8UgABfFMAAXxUAAF8VQABfFYAAXxYAAF8WgABfFsAAXxcAAF8XgABfF8AAXziAAF9BgABfSoAAX1NAAF9dAABfZQAAX27AAF94gABfgIAAX4mAAF+SgABfkwAAX5PAAF+UQABflMAAX5VAAF+WAABflsAAX5dAAF+XwABfmIAAX5kAAF+ZgABfmkAAX5sAAF+bQABfnIAAX6LAAF+kAABfpIAAX6XAAF+mgABfpwAAX7lAAF/CQABfzAAAX9UAAF/VwABf1kAAX9bAAF/XQABf18AAX9hAAF/YgABf2UAAX9+AAF/owABf6UAAX+nAAF/qQABf6sAAX+tAAF/rwABf7EAAX+zAAF/tQABf9oAAX/dAAF/4AABf+MAAX/mAAF/6QABf+wAAX/vAAF/8gABf/UAAX/3AAGAcgABgHQAAYB3AAGAeQABgHwAAYB9AAGAfgABgH8AAYCAAAGAggABgIQAAYCFAAGAhgABgIgAAYCJAAGAmgABgJsAAYCdAAGBGAABgRoAAYEcAAGBHgABgSEAAYEiAAGBIwABgSQAAYElAAGBJwABgSkAAYEqAAGBKwABgS0AAYEuAAGBqQABgasAAYGuAAGBsAABgbMAAYG0AAGBtQABgbYAAYG3AAGBuQABgbsAAYG8AAGBvQABgb8AAYHAAAGB0QABgdYAAYHZAAGB2wABgewAAYH1AAGB+AABgfsAAYH9AAGCGAABgpMAAYKVAAGClwABgpkAAYKcAAGCnQABgp4AAYKfAAGCoAABgqIAAYKkAAGCpQABgqYAAYKoAAGCqQABgyQAAYMmAAGDKQABgysAAYMuAAGDLwABgzAAAYMxAAGDMgABgzQAAYM2AAGDNwABgzgAAYM6AAGDOwABg0wAAYNNAAGDTwABg8oAAYPMAAGDzgABg9AAAYPTAAGD1AABg9UAAYPWAAGD1wABg9kAAYPbAAGD3AABg90AAYPfAAGD4AABhFsAAYRdAAGEYAABhGIAAYRlAAGEZgABhGcAAYRoAAGEaQABhGsAAYRtAAGEbgABhG8AAYRxAAGEcgABhIsAAYSMAAGEjQABhI8AAYUKAAGFDAABhQ4AAYUQAAGFEwABhRQAAYUVAAGFFgABhRcAAYUZAAGFGwABhRwAAYUdAAGFHwABhSAAAYWbAAGFnQABhaAAAYWiAAGFpQABhaYAAYWnAAGFqAABhakAAYWrAAGFrQABha4AAYWvAAGFsQABhbIAAYXQAAGF6QABhlwAAYZfAAGGYgABhmUAAYZoAAGGawABhm4AAYZxAAGGdAABhncAAYZ6AAGGfQABhoAAAYaDAAGGhgABhokAAYaMAAGGjwABhpIAAYaVAAGGmAABhpsAAYaeAAGGoQABhqQAAYanAAGGqgABhq0AAYawAAGHIwABhyYAAYcpAAGHLAABhy8AAYcyAAGHNQABhzgAAYc7AAGHPgABh0EAAYdEAAGHRwABh0oAAYdNAAGHUAABh1MAAYdWAAGHWQABh1wAAYdfAAGHYgABh2UAAYdoAAGHawABh24AAYdxAAGHdAABh3cAAYd5AAGHmQABh6sAAYe6AAGH2gABh+4AAYgDAAGIDAABiBoAAYgkAAGILQABiEIAAYhNAAGIaAABiHAAAYiGAAGImAABiLAAAYi6AAGIvwABiM0AAYjoAAGI8QABiQ4AAYksAAGJPgABiVEAAYlgAAGJ8wABihYAAYo2AAGKVgABilgAAYpaAAGKXAABil4AAYphAAGKYgABimMAAYpmAAGKZwABimkAAYpqAAGKbAABim8AAYpwAAGKcQABinQAAYp1AAGKegABipMAAYqcAAGKngABiqAAAYqpAAGKrAABiq8AAYqxAAGK+gABix4AAYtFAAGLaQABi2wAAYtuAAGLcAABi3IAAYt0AAGLdgABi3cAAYt6AAGLkwABi7QAAYu2AAGLuAABi7oAAYu8AAGLvgABi8AAAYvCAAGLxAABi+UAAYvoAAGL6wABi+4AAYvxAAGL9AABi/cAAYv6AAGL/QABi/8AAYx6AAGMfAABjH4AAYyAAAGMgwABjIQAAYyFAAGMhgABjIcAAYyJAAGMiwABjIwAAYyNAAGMjwABjJAAAY0LAAGNDQABjQ8AAY0RAAGNFAABjRUAAY0WAAGNFwABjRgAAY0aAAGNHAABjR0AAY0eAAGNIAABjSEAAY2cAAGNngABjaEAAY2jAAGNpgABjacAAY2oAAGNqQABjaoAAY2sAAGNrgABja8AAY2wAAGNsgABjbMAAY3MAAGNzQABjc4AAY3QAAGOSwABjk0AAY5PAAGOUQABjlQAAY5VAAGOVgABjlcAAY5YAAGOWgABjlwAAY5dAAGOXgABjmAAAY5hAAGO3AABjt4AAY7gAAGO4gABjuUAAY7mAAGO5wABjugAAY7pAAGO6wABju0AAY7uAAGO7wABjvEAAY7yAAGPbQABj28AAY9xAAGPcwABj3YAAY93AAGPeAABj3kAAY96AAGPfAABj34AAY9/AAGPgAABj4IAAY+DAAGP/gABkAAAAZACAAGQBAABkAcAAZAIAAGQCQABkAoAAZALAAGQDQABkA8AAZAQAAGQEQABkBMAAZAUAAGQjwABkJEAAZCTAAGQlQABkJgAAZCZAAGQmgABkJsAAZCcAAGQngABkKAAAZChAAGQogABkKQAAZClAAGQ7gABkRIAAZE5AAGRXQABkWAAAZFiAAGRZAABkWYAAZFoAAGRagABkWsAAZFuAAGRhwABkaQAAZGmAAGRqAABkaoAAZGsAAGRrgABkbAAAZGyAAGRzwABkdIAAZHVAAGR2AABkdsAAZHeAAGR4QABkeQAAZHmAAGSYQABkmMAAZJlAAGSZwABkmoAAZJrAAGSbAABkm0AAZJuAAGScAABknIAAZJzAAGSdAABknYAAZJ3AAGS8gABkvQAAZL2AAGS+AABkvsAAZL8AAGS/QABkv4AAZL/AAGTAQABkwMAAZMEAAGTBQABkwcAAZMIAAGTgwABk4UAAZOHAAGTiQABk4wAAZONAAGTjgABk48AAZOQAAGTkgABk5QAAZOVAAGTlgABk5gAAZOZAAGUFAABlBYAAZQYAAGUGgABlB0AAZQeAAGUHwABlCAAAZQhAAGUIwABlCUAAZQmAAGUJwABlCkAAZQqAAGUpQABlKcAAZSpAAGUqwABlK4AAZSvAAGUsAABlLEAAZSyAAGUtAABlLYAAZS3AAGUuAABlLoAAZS7AAGVNgABlTgAAZU6AAGVPAABlT8AAZVAAAGVQQABlUIAAZVDAAGVRQABlUcAAZVIAAGVSQABlUsAAZVMAAGVxwABlckAAZXLAAGVzQABldAAAZXRAAGV0gABldMAAZXUAAGV1gABldgAAZXZAAGV2gABldwAAZXdAAGWcAABlpMAAZazAAGW0wABltUAAZbXAAGW2QABltsAAZbeAAGW3wABluAAAZbjAAGW5AABluYAAZbnAAGW6QABluwAAZbtAAGW7gABlvEAAZbyAAGW9wABlxAAAZcZAAGXGwABlx0AAZcmAAGXKQABlywAAZcuAAGXdwABl5sAAZfCAAGX5gABl+kAAZfrAAGX7QABl+8AAZfxAAGX8wABl/QAAZf3AAGYEAABmDEAAZgzAAGYNQABmDcAAZg5AAGYOwABmD0AAZg/AAGYQQABmGIAAZhlAAGYaAABmGsAAZhuAAGYcQABmHQAAZh3AAGYegABmHwAAZj3AAGY+QABmPsAAZj9AAGZAAABmQEAAZkCAAGZAwABmQQAAZkGAAGZCAABmQkAAZkKAAGZDAABmQ0AAZmIAAGZigABmYwAAZmOAAGZkQABmZIAAZmTAAGZlAABmZUAAZmXAAGZmQABmZoAAZmbAAGZnQABmZ4AAZoZAAGaGwABmh4AAZogAAGaIwABmiQAAZolAAGaJgABmicAAZopAAGaKwABmiwAAZotAAGaLwABmjAAAZpJAAGaSgABmksAAZpNAAGayAABmsoAAZrMAAGazgABmtEAAZrSAAGa0wABmtQAAZrVAAGa1wABmtkAAZraAAGa2wABmt0AAZreAAGbWQABm1sAAZtdAAGbXwABm2IAAZtjAAGbZAABm2UAAZtmAAGbaAABm2oAAZtrAAGbbAABm24AAZtvAAGb6gABm+wAAZvuAAGb8AABm/MAAZv0AAGb9QABm/YAAZv3AAGb+QABm/sAAZv8AAGb/QABm/8AAZwAAAGcewABnH0AAZx/AAGcgQABnIQAAZyFAAGchgABnIcAAZyIAAGcigABnIwAAZyNAAGcjgABnJAAAZyRAAGdDAABnQ4AAZ0QAAGdEgABnRUAAZ0WAAGdFwABnRgAAZ0ZAAGdGwABnR0AAZ0eAAGdHwABnSEAAZ0iAAGdawABnY8AAZ22AAGd2gABnd0AAZ3fAAGd4QABneMAAZ3lAAGd5wABnegAAZ3rAAGeBAABniEAAZ4jAAGeJQABnicAAZ4pAAGeKwABni0AAZ4vAAGeTAABnk8AAZ5SAAGeVQABnlgAAZ5bAAGeXgABnmEAAZ5jAAGe3gABnuAAAZ7iAAGe5AABnucAAZ7oAAGe6QABnuoAAZ7rAAGe7QABnu8AAZ7wAAGe8QABnvMAAZ70AAGfbwABn3EAAZ9zAAGfdQABn3gAAZ95AAGfegABn3sAAZ98AAGffgABn4AAAZ+BAAGfggABn4QAAZ+FAAGgAAABoAIAAaAEAAGgBgABoAkAAaAKAAGgCwABoAwAAaANAAGgDwABoBEAAaASAAGgEwABoBUAAaAWAAGgkQABoJMAAaCWAAGgmAABoJsAAaCcAAGgnQABoJ4AAaCfAAGgoQABoKMAAaCkAAGgpQABoKcAAaCoAAGhIwABoSUAAaEnAAGhKQABoSwAAaEtAAGhLgABoS8AAaEwAAGhMgABoTQAAaE1AAGhNgABoTgAAaE5AAGhtAABobYAAaG4AAGhugABob0AAaG+AAGhvwABocAAAaHBAAGhwwABocUAAaHGAAGhxwABockAAaHKAAGiRQABokcAAaJJAAGiSwABok4AAaJPAAGiUAABolEAAaJSAAGiVAABolYAAaJXAAGiWAABoloAAaJbAAGi7gABoxEAAaMxAAGjUQABo1MAAaNVAAGjVwABo1kAAaNcAAGjXQABo14AAaNhAAGjYgABo2QAAaNlAAGjaAABo2sAAaNsAAGjbQABo3AAAaNxAAGjdgABo48AAaOYAAGjmgABo5wAAaOlAAGjqAABo6sAAaOtAAGj9gABpBoAAaRBAAGkZQABpGgAAaRqAAGkbAABpG4AAaRwAAGkcgABpHMAAaR2AAGkjwABpLAAAaSyAAGktAABpLYAAaS4AAGkugABpLwAAaS+AAGkwAABpOEAAaTkAAGk5wABpOoAAaTtAAGk8AABpPMAAaT2AAGk+QABpPsAAaV2AAGleAABpXoAAaV8AAGlfwABpYAAAaWBAAGlggABpYMAAaWFAAGlhwABpYgAAaWJAAGliwABpYwAAaYHAAGmCQABpgsAAaYNAAGmEAABphEAAaYSAAGmEwABphQAAaYWAAGmGAABphkAAaYaAAGmHAABph0AAaaYAAGmmgABpp0AAaafAAGmogABpqMAAaakAAGmpQABpqYAAaaoAAGmqgABpqsAAaasAAGmrgABpq8AAabIAAGmyQABpsoAAabMAAGnRwABp0kAAadLAAGnTQABp1AAAadRAAGnUgABp1MAAadUAAGnVgABp1gAAadZAAGnWgABp1wAAaddAAGn2AABp9oAAafcAAGn3gABp+EAAafiAAGn4wABp+QAAaflAAGn5wABp+kAAafqAAGn6wABp+0AAafuAAGoaQABqGsAAahtAAGobwABqHIAAahzAAGodAABqHUAAah2AAGoeAABqHoAAah7AAGofAABqH4AAah/AAGo+gABqPwAAaj+AAGpAAABqQMAAakEAAGpBQABqQYAAakHAAGpCQABqQsAAakMAAGpDQABqQ8AAakQAAGpiwABqY0AAamPAAGpkQABqZQAAamVAAGplgABqZcAAamYAAGpmgABqZwAAamdAAGpngABqaAAAamhAAGp6gABqg4AAao1AAGqWQABqlwAAapeAAGqYAABqmIAAapkAAGqZgABqmcAAapqAAGqgwABqqAAAaqiAAGqpAABqqYAAaqoAAGqqgABqqwAAaquAAGqywABqs4AAarRAAGq1AABqtcAAaraAAGq3QABquAAAariAAGrXQABq18AAathAAGrYwABq2YAAatnAAGraAABq2kAAatqAAGrbAABq24AAatvAAGrcAABq3IAAatzAAGr7gABq/AAAavyAAGr9AABq/cAAav4AAGr+QABq/oAAav7AAGr/QABq/8AAawAAAGsAQABrAMAAawEAAGsfwABrIEAAayDAAGshQABrIgAAayJAAGsigABrIsAAayMAAGsjgABrJAAAayRAAGskgABrJQAAayVAAGtEAABrRIAAa0VAAGtFwABrRoAAa0bAAGtHAABrR0AAa0eAAGtIAABrSIAAa0jAAGtJAABrSYAAa0nAAGtqgABrc4AAa3yAAGuFQABrjwAAa5cAAGugwABrqoAAa7KAAGu7gABrxIAAa8UAAGvFwABrxkAAa8bAAGvHQABryAAAa8jAAGvJQABrycAAa8qAAGvLAABry4AAa8xAAGvNAABrzUAAa86AAGvUwABr1gAAa9aAAGvXwABr2IAAa9kAAGvrQABr9EAAa/4AAGwHAABsB8AAbAhAAGwIwABsCUAAbAnAAGwKQABsCoAAbAtAAGwRgABsGsAAbBtAAGwbwABsHEAAbBzAAGwdQABsHcAAbB5AAGwewABsH0AAbCiAAGwpQABsKgAAbCrAAGwrgABsLEAAbC0AAGwtwABsLoAAbC9AAGwvwABsToAAbE8AAGxPwABsUEAAbFEAAGxRQABsUYAAbFHAAGxSAABsUoAAbFMAAGxTQABsU4AAbFQAAGxUQABsWIAAbFjAAGxZQABseAAAbHiAAGx5AABseYAAbHpAAGx6gABsesAAbHsAAGx7QABse8AAbHxAAGx8gABsfMAAbH1AAGx9gABsnEAAbJzAAGydgABsngAAbJ7AAGyfAABsn0AAbJ+AAGyfwABsoEAAbKDAAGyhAABsoUAAbKHAAGyiAABspkAAbKaAAGynAABsxcAAbMZAAGzGwABsx0AAbMgAAGzIQABsyIAAbMjAAGzJAABsyYAAbMoAAGzKQABsyoAAbMsAAGzLQABs6gAAbOqAAGzrQABs68AAbOyAAGzswABs7QAAbO1AAGztgABs7gAAbO6AAGzuwABs7wAAbO+AAGzvwABs9AAAbPRAAGz0wABtE4AAbRQAAG0UgABtFQAAbRXAAG0WAABtFkAAbRaAAG0WwABtF0AAbRfAAG0YAABtGEAAbRjAAG0ZAABtN8AAbThAAG05AABtOYAAbTpAAG06gABtOsAAbTsAAG07QABtO8AAbTxAAG08gABtPMAAbT1AAG09gABtQ8AAbUQAAG1EQABtRMAAbWOAAG1kAABtZIAAbWUAAG1lwABtZgAAbWZAAG1mgABtZsAAbWdAAG1nwABtaAAAbWhAAG1owABtaQAAbYfAAG2IQABtiQAAbYmAAG2KQABtioAAbYrAAG2LAABti0AAbYvAAG2MQABtjIAAbYzAAG2NQABtjYAAbZQAAG2aQABtnoAAbZ9AAG2gAABtoMAAbaGAAG2lwABtpoAAbadAAG2oAABtqMAAbalAAG2twABtsMAAbbMAAG22gABt20AAbeQAAG3sAABt9AAAbfSAAG31AABt9YAAbfYAAG32wABt9wAAbfdAAG34AABt+EAAbfjAAG35AABt+cAAbfqAAG36wABt+wAAbfvAAG38AABt/UAAbgOAAG4FwABuBkAAbgbAAG4JAABuCcAAbgqAAG4LAABuHUAAbiZAAG4wAABuOQAAbjnAAG46QABuOsAAbjtAAG47wABuPEAAbjyAAG49QABuQ4AAbkvAAG5MQABuTMAAbk1AAG5NwABuTkAAbk7AAG5PQABuT8AAblgAAG5YwABuWYAAblpAAG5bAABuW8AAblyAAG5dQABuXgAAbl6AAG59QABufcAAbn5AAG5+wABuf4AAbn/AAG6AAABugEAAboCAAG6BAABugYAAbo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SAAHVUwAB1VQAAdVWAAHVVwAB1WgAAdVpAAHVawAB1eYAAdXoAAHV6gAB1ewAAdXvAAHV8AAB1fEAAdXyAAHV8wAB1fUAAdX3AAHV+AAB1fkAAdX7AAHV/AAB1ncAAdZ5AAHWfAAB1n4AAdaBAAHWggAB1oMAAdaEAAHWhQAB1ocAAdaJAAHWigAB1osAAdaNAAHWjgAB1qcAAdaoAAHWqQAB1qsAAdcmAAHXKAAB1yoAAdcsAAHXLwAB1zAAAdcxAAHXMgAB1zMAAdc1AAHXNwAB1zgAAdc5AAHXOwAB1zwAAde3AAHXuQAB17wAAde+AAHXwQAB18IAAdfDAAHXxAAB18UAAdfHAAHXyQAB18oAAdfLAAHXzQAB184AAdflAAHX/gAB2DMAAdg2AAHYOQAB2DwAAdg/AAHYQgAB2EUAAdhIAAHYSwAB2E4AAdhRAAHYVAAB2FcAAdhaAAHYjwAB2JIAAdiVAAHYmAAB2JsAAdieAAHYoQAB2KQAAdinAAHYqgAB2K0AAdiwAAHYswAB2LYAAdi4AAHYxgAB2OMAAdjuAAHZAgAB2QoAAdkWAAHZKwAB2TkAAdlCAAHZTAAB2V8AAdlrAAHZggAB2hUAAdo4AAHaWAAB2ngAAdp6AAHafAAB2n4AAdqAAAHagwAB2oQAAdqFAAHaiAAB2okAAdqLAAHajAAB2o8AAdqSAAHakwAB2pQAAdqXAAHamAAB2p0AAdq2AAHavwAB2sEAAdrDAAHazAAB2s8AAdrSAAHa1AAB2x0AAdtBAAHbaAAB24wAAduPAAHbkQAB25MAAduVAAHblwAB25kAAduaAAHbnQAB27YAAdvXAAHb2QAB29sAAdvdAAHb3wAB2+EAAdvjAAHb5QAB2+cAAdwIAAHcCwAB3A4AAdwRAAHcFAAB3BcAAdwaAAHcHQAB3CAAAdwiAAHcnQAB3J8AAdyhAAHcowAB3KYAAdynAAHcqAAB3KkAAdyqAAHcrAAB3K4AAdyvAAHcsAAB3LIAAdyzAAHdLgAB3TAAAd0yAAHdNAAB3TcAAd04AAHdOQAB3ToAAd07AAHdPQAB3T8AAd1AAAHdQQAB3UMAAd1EAAHdvwAB3cEAAd3EAAHdxgAB3ckAAd3KAAHdywAB3cwAAd3NAAHdzwAB3dEAAd3SAAHd0wAB3dUAAd3WAAHd7wAB3fAAAd3xAAHd8wAB3m4AAd5wAAHecgAB3nQAAd53AAHeeAAB3nkAAd56AAHeewAB3n0AAd5/AAHegAAB3oEAAd6DAAHehAAB3v8AAd8BAAHfAwAB3wUAAd8IAAHfCQAB3woAAd8LAAHfDAAB3w4AAd8QAAHfEQAB3xIAAd8UAAHfFQAB35AAAd+SAAHflAAB35YAAd+ZAAHfmgAB35sAAd+cAAHfnQAB358AAd+hAAHfogAB36MAAd+lAAHfpgAB4CEAAeAjAAHgJQAB4CcAAeAqAAHgKwAB4CwAAeAtAAHgLgAB4DAAAeAyAAHgMwAB4DQAAeA2AAHgNwAB4LIAAeC0AAHgtgAB4LgAAeC7AAHgvAAB4L0AAeC+AAHgvwAB4MEAAeDDAAHgxAAB4MUAAeDHAAHgyAAB4REAAeE1AAHhXAAB4YAAAeGDAAHhhQAB4YcAAeGJAAHhiwAB4Y0AAeGOAAHhkQAB4aoAAeHHAAHhyQAB4csAAeHNAAHhzwAB4dEAAeHTAAHh1QAB4fIAAeH1AAHh+AAB4fsAAeH+AAHiAQAB4gQAAeIHAAHiCQAB4oQAAeKGAAHiiAAB4ooAAeKNAAHijgAB4o8AAeKQAAHikQAB4pMAAeKVAAHilgAB4pcAAeKZAAHimgAB4xUAAeMXAAHjGgAB4xwAAeMfAAHjIAAB4yEAAeMiAAHjIwAB4yUAAeMnAAHjKAAB4ykAAeMrAAHjLAAB46cAAeOpAAHjqwAB460AAeOwAAHjsQAB47IAAeOzAAHjtAAB47YAAeO4AAHjuQAB47oAAeO8AAHjvQAB5DgAAeQ6AAHkPQAB5D8AAeRCAAHkQwAB5EQAAeRFAAHkRgAB5EgAAeRKAAHkSwAB5EwAAeROAAHkTwAB5NIAAeT2AAHlGgAB5T0AAeVkAAHlhAAB5asAAeXSAAHl8gAB5hYAAeY6AAHmPAAB5j8AAeZBAAHmQwAB5kUAAeZIAAHmSwAB5k0AAeZPAAHmUgAB5lQAAeZWAAHmWQAB5lwAAeZdAAHmYgAB5nsAAeaAAAHmggAB5ocAAeaKAAHmjAAB5tUAAeb5AAHnIAAB50QAAedHAAHnSQAB50sAAedNAAHnTwAB51EAAedSAAHnVQAB524AAeeTAAHnlQAB55cAAeeZAAHnmwAB550AAeefAAHnoQAB56MAAeelAAHnygAB580AAef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AAAILAQACCwIAAgsDAAILBAACCwYAAgsIAAILCQACCwoAAgsMAAILDQACC4gAAguKAAILjQACC48AAguSAAILkwACC5QAAguVAAILlgACC5gAAguaAAILmwACC5wAAgueAAILnwACC7gAAgu5AAILugACC7wAAgw3AAIMOQACDDsAAgw9AAIMQAACDEEAAgxCAAIMQwACDEQAAgxGAAIMSAACDEkAAgxKAAIMTAACDE0AAgzIAAIMygACDMwAAgzOAAIM0QACDNIAAgzTAAIM1AACDNUAAgzXAAIM2QACDNoAAgzbAAIM3QACDN4AAg1ZAAINWwACDV0AAg1fAAINYgACDWMAAg1kAAINZQACDWYAAg1oAAINagACDWsAAg1sAAINbgACDW8AAg3qAAIN7AACDe4AAg3wAAIN8wACDfQAAg31AAIN9gACDfcAAg35AAIN+wACDfwAAg39AAIN/wACDgAAAg57AAIOfQACDn8AAg6BAAIOhAACDoUAAg6GAAIOhwACDogAAg6KAAIOjAACDo0AAg6OAAIOkAACDpEAAg7aAAIO/gACDyUAAg9JAAIPTAACD04AAg9QAAIPUgACD1QAAg9WAAIPVwACD1oAAg9zAAIPkAACD5IAAg+UAAIPlgACD5gAAg+aAAIPnAACD54AAg+7AAIPvgACD8EAAg/EAAIPxwACD8oAAg/NAAIP0AACD9IAAhBNAAIQTwACEFEAAhBTAAIQVgACEFcAAhBYAAIQWQACEFoAAhBcAAIQXgACEF8AAhBgAAIQYgACEGMAAhDeAAIQ4AACEOIAAhDkAAIQ5wACEOgAAhDpAAIQ6gACEOsAAhDtAAIQ7wACEPAAAhDxAAIQ8wACEPQAAhFvAAIRcQACEXMAAhF1AAIReAACEXkAAhF6AAIRewACEXwAAhF+AAIRgAACEYEAAhGCAAIRhAACEYUAAhIAAAISAgACEgUAAhIHAAISCgACEgsAAhIMAAISDQACEg4AAhIQAAISEgACEhMAAhIUAAISFgACEhcAAhKSAAISlAACEpYAAhKYAAISmwACEpwAAhKdAAISngACEp8AAhKhAAISowACEqQAAhKlAAISpwACEqgAAhMjAAITJQACEycAAhMpAAITLAACEy0AAhMuAAITLwACEzAAAhMyAAITNAACEzUAAhM2AAITOAACEzkAAhO0AAITtgACE7kAAhO7AAITvgACE78AAhPAAAITwQACE8IAAhPEAAITxgACE8cAAhPIAAITygACE8sAAhReAAIUgQACFKEAAhTBAAIUwwACFMUAAhTHAAIUyQACFMwAAhTNAAIUzgACFNEAAhTSAAIU1AACFNUAAhTXAAIU2gACFNsAAhTcAAIU3wACFOAAAhTlAAIU/gACFQcAAhUJAAIVCwACFRQAAhUXAAIVGgACFRwAAhVlAAIViQACFbAAAhXUAAIV1wACFdkAAhXbAAIV3QACFd8AAhXhAAIV4gACFeUAAhX+AAIWHwACFiEAAhYjAAIWJQACFicAAhYpAAIWKwACFi0AAhYvAAIWUAACFlMAAhZWAAIWWQACFlwAAhZfAAIWYgACFmUAAhZoAAIWagACFuUAAhbnAAIW6QACFusAAhbuAAIW7wACFvAAAhbxAAIW8gACFvQAAhb2AAIW9wACFvgAAhb6AAIW+wACF3YAAhd4AAIXewACF30AAheAAAIXgQACF4IAAheDAAIXhAACF4YAAheIAAIXiQACF4oAAheMAAIXjQACF5EAAhgMAAIYDgACGBEAAhgTAAIYFgACGBcAAhgYAAIYGQACGBoAAhgcAAIYHgACGB8AAhggAAIYIgACGCMAAhg8AAIYPQACGD4AAhhAAAIYuwACGL0AAhi/AAIYwQACGMQAAhjFAAIYxgACGMcAAhjIAAIYygACGMwAAhjNAAIYzgACGNAAAhjRAAIZTAACGU4AAhlQAAIZUgACGVUAAhlWAAIZVwACGVgAAhlZAAIZWwACGV0AAhleAAIZXwACGWEAAhliAAIZ3QACGd8AAhnhAAIZ4wACGeYAAhnnAAIZ6AACGekAAhnqAAIZ7AACGe4AAhnvAAIZ8AACGfIAAhnzAAIabgACGnAAAhpyAAIadAACGncAAhp4AAIaeQACGnoAAhp7AAIafQACGn8AAhqAAAIagQACGoMAAhqEAAIa/wACGwEAAhsDAAIbBQACGwgAAhsJAAIbCgACGwsAAhsMAAIbDgACGxAAAhsRAAIbEgACGxQAAhsVAAIbXgACG4IAAhupAAIbzQACG9AAAhvSAAIb1AACG9YAAhvYAAIb2gACG9sAAhveAAIb9wACHBQAAhwWAAIcGAACHBoAAhwcAAIcHgACHCAAAhwiAAIcPwACHEIAAhxFAAIcSAACHEsAAhxOAAIcUQACHFQAAhxWAAIc0QACHNMAAhzVAAIc1wACHNoAAhzbAAIc3AACHN0AAhzeAAIc4AACHOIAAhzjAAIc5AACHOYAAhznAAIdYgACHWQAAh1mAAIdaAACHWsAAh1sAAIdbQACHW4AAh1vAAIdcQACHXMAAh10AAIddQACHXcAAh14AAId8wACHfUAAh33AAId+QACHfwAAh39AAId/gACHf8AAh4AAAIeAgACHgQAAh4FAAIeBgACHggAAh4JAAIehAACHoYAAh6JAAIeiwACHo4AAh6PAAIekAACHpEAAh6SAAIelAACHpYAAh6XAAIemAACHpoAAh6bAAIengACHxkAAh8bAAIfHQACHx8AAh8iAAIfIwACHyQAAh8lAAIfJgACHygAAh8qAAIfKwACHywAAh8uAAIfLwACH6oAAh+sAAIfrgACH7AAAh+zAAIftAACH7UAAh+2AAIftwACH7kAAh+7AAIfvAACH70AAh+/AAIfwAACIDsAAiA9AAIgPwACIEEAAiBEAAIgRQACIEYAAiBHAAIgSAACIEoAAiBMAAIgTQACIE4AAiBQAAIgUQACIOQAAiEHAAIhJwACIUcAAiFJAAIhSwACIU0AAiFPAAIhUgACIVMAAiFUAAIhVwACIVgAAiFaAAIhWwACIV0AAiFgAAIhYQACIWIAAiFlAAIhZgACIWsAAiGEAAIhjQACIY8AAiGRAAIhmgACIZ0AAiGgAAIhogACIesAAiIPAAIiNgACIloAAiJdAAIiXwACImEAAiJjAAIiZQACImcAAiJoAAIiawACIoQAAiKlAAIipwACIqkAAiKrAAIirQACIq8AAiKxAAIiswACIrUAAiLWAAIi2QACItwAAiLfAAIi4gACIuUAAiLoAAIi6wACIu4AAiLwAAIjawACI20AAiNvAAIjcQACI3QAAiN1AAIjdgACI3cAAiN4AAIjegACI3wAAiN9AAIjfgACI4AAAiOBAAIj/AACI/4AAiQAAAIkAgACJAUAAiQGAAIkBwACJAgAAiQJAAIkCwACJA0AAiQOAAIkDwACJBEAAiQSAAIkjQACJI8AAiSSAAIklAACJJcAAiSYAAIkmQACJJoAAiSbAAIknQACJJ8AAiSgAAIkoQACJKMAAiSkAAIkvQACJL4AAiS/AAIkwQACJTwAAiU+AAIlQAACJUIAAiVFAAIlRgACJUcAAiVIAAIlSQACJUsAAiVNAAIlTgACJU8AAiVRAAIlUgACJc0AAiXPAAIl0QACJdMAAiXWAAIl1wACJdgAAiXZAAIl2gACJdwAAiXeAAIl3wACJeAAAiXiAAIl4wACJl4AAiZgAAImYgACJmQAAiZnAAImaAACJmkAAiZqAAImawACJm0AAiZvAAImcAACJnEAAiZzAAImdAACJu8AAibxAAIm8wACJvUAAib4AAIm+QACJvoAAib7AAIm/AACJv4AAicAAAInAQACJwIAAicEAAInBQACJ4AAAieCAAInhAACJ4YAAieJAAInigACJ4sAAieMAAInjQACJ48AAieRAAInkgACJ5MAAieVAAInlgACJ98AAigDAAIoKgACKE4AAihRAAIoUwACKFUAAihXAAIoWQACKFsAAihcAAIoXwACKHgAAiiVAAIolwACKJkAAiibAAIonQACKJ8AAiihAAIoowACKMAAAijDAAIoxgACKMkAAijMAAIozwACKNIAAijVAAIo1wACKVIAAilUAAIpVgACKVgAAilbAAIpXAACKV0AAileAAIpXwACKWEAAiljAAIpZAACKWUAAilnAAIpaAACKeMAAinlAAIp5wACKekAAinsAAIp7QACKe4AAinvAAIp8AACKfIAAin0AAIp9QACKfYAAin4AAIp+QACKnQAAip2AAIqeAACKnoAAip9AAIqfgACKn8AAiqAAAIqgQACKoMAAiqFAAIqhgACKocAAiqJAAIqigACKwUAAisHAAIrCQACKwsAAisOAAIrDwACKxAAAisRAAIrEgACKxQAAisWAAIrFwACKxgAAisaAAIrGwACK5YAAiuYAAIrmgACK5wAAiufAAIroAACK6EAAiuiAAIrowACK6UAAiunAAIrqAACK6kAAiurAAIrrAACLCcAAiwpAAIsKwACLC0AAiwwAAIsMQACLDIAAiwzAAIsNAACLDYAAiw4AAIsOQACLDoAAiw8AAIsPQACLLgAAiy6AAIsvAACLL4AAizBAAIswgACLMMAAizEAAIsxQACLMcAAizJAAIsygACLMsAAizNAAIszgACLWEAAi2EAAItpAACLcQAAi3GAAItyAACLcoAAi3MAAItzwACLdAAAi3RAAIt1AACLdUAAi3XAAIt2AACLdoAAi3dAAIt3gACLd8AAi3iAAIt4wACLegAAi4BAAIuCgACLgwAAi4OAAIuFwACLhoAAi4dAAIuHwACLmgAAi6MAAIuswACLtcAAi7aAAIu3AACLt4AAi7gAAIu4gACLuQAAi7lAAIu6AACLwEAAi8iAAIvJAACLyYAAi8oAAIvKgACLywAAi8uAAIvMAACLzIAAi9TAAIvVgACL1kAAi9cAAIvXwACL2IAAi9lAAIvaAACL2sAAi9tAAIv6AACL+oAAi/sAAIv7gACL/EAAi/yAAIv8wACL/QAAi/1AAIv9wACL/kAAi/6AAIv+wACL/0AAi/+AAIweQACMHsAAjB9AAIwfwACMIIAAjCDAAIwhAACMIUAAjCGAAIwiAACMIoAAjCLAAIwjAACMI4AAjCPAAIxCgACMQwAAjEPAAIxEQACMRQAAjEVAAIxFgACMRcAAjEYAAIxGgACMRwAAjEdAAIxHgACMSAAAjEhAAIxOgACMTsAAjE8AAIxPgACMbkAAjG7AAIxvQACMb8AAjHCAAIxwwACMcQAAjHFAAIxxgACMcgAAjHKAAIxywACMcwAAjHOAAIxzwACMkoAAjJMAAIyTgACMlAAAjJTAAIyVAACMlUAAjJWAAIyVwACMlkAAjJbAAIyXAACMl0AAjJfAAIyYAACMtsAAjLdAAIy3wACMuEAAjLkAAIy5QACMuYAAjLnAAIy6AACMuoAAjLsAAIy7QACMu4AAjLwAAIy8QACM2wAAjNuAAIzcAACM3IAAjN1AAIzdgACM3cAAjN4AAIzeQACM3sAAjN9AAIzfgACM38AAjOBAAIzggACM/0AAjP/AAI0AQACNAMAAjQGAAI0BwACNAgAAjQJAAI0CgACNAwAAjQOAAI0DwACNBAAAjQSAAI0EwACNFwAAjSAAAI0pwACNMsAAjTOAAI00AACNNIAAjTUAAI01gACNNgAAjTZAAI03AACNPUAAjUSAAI1FAACNRYAAjUYAAI1GgACNRwAAjUeAAI1IAACNT0AAjVAAAI1QwACNUYAAjVJAAI1TAACNU8AAjVSAAI1VAACNc8AAjXRAAI11AACNdYAAjXZAAI12gACNdsAAjXcAAI13QACNd8AAjXhAAI14gACNeMAAjXlAAI15gACNegAAjZjAAI2ZQACNmcAAjZpAAI2bAACNm0AAjZuAAI2bwACNnAAAjZ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AAAJawgACWsQAAlrFAAJayAACWuEAAlr+AAJbAAACWwIAAlsEAAJbBgACWwgAAlsKAAJbDAACWykAAlssAAJbLwACWzIAAls1AAJbOAACWzsAAls+AAJbQAACW7sAAlu9AAJbvwACW8EAAlvEAAJbxQACW8YAAlvHAAJbyAACW8oAAlvMAAJbzQACW84AAlvQAAJb0QACXEwAAlxOAAJcUAACXFIAAlxVAAJcVgACXFcAAlxYAAJcWQACXFsAAlxdAAJcXgACXF8AAlxhAAJcYgACXN0AAlzfAAJc4QACXOMAAlzmAAJc5wACXOgAAlzpAAJc6gACXOwAAlzuAAJc7wACXPAAAlzyAAJc8wACXW4AAl1wAAJdcwACXXUAAl14AAJdeQACXXoAAl17AAJdfAACXX4AAl2AAAJdgQACXYIAAl2EAAJdhQACXgAAAl4CAAJeBAACXgYAAl4JAAJeCgACXgsAAl4MAAJeDQACXg8AAl4RAAJeEgACXhMAAl4VAAJeFgACXpEAAl6TAAJelQACXpcAAl6aAAJemwACXpwAAl6dAAJengACXqAAAl6iAAJeowACXqQAAl6mAAJepwACXyIAAl8kAAJfJwACXykAAl8sAAJfLQACXy4AAl8vAAJfMAACXzIAAl80AAJfNQACXzYAAl84AAJfOQACX8wAAl/vAAJgDwACYC8AAmAxAAJgMwACYDUAAmA3AAJgOgACYDsAAmA8AAJgPwACYEAAAmBCAAJgQwACYEYAAmBJAAJgSgACYEsAAmBOAAJgTwACYFQAAmBtAAJgdgACYHgAAmB6AAJggwACYIYAAmCJAAJgiwACYNQAAmD4AAJhHwACYUMAAmFGAAJhSAACYUoAAmFMAAJhTgACYVAAAmFRAAJhVAACYW0AAmGOAAJhkAACYZIAAmGUAAJhlgACYZgAAmGaAAJhnAACYZ4AAmG/AAJhwgACYcUAAmHIAAJhywACYc4AAmHRAAJh1AACYdcAAmHZAAJiVAACYlYAAmJYAAJiWgACYl0AAmJeAAJiXwACYmAAAmJhAAJiYwACYmUAAmJmAAJiZwACYmkAAmJqAAJi5QACYucAAmLpAAJi6wACYu4AAmLvAAJi8AACYvEAAmLyAAJi9AACYvYAAmL3AAJi+AACYvoAAmL7AAJjdgACY3gAAmN7AAJjfQACY4AAAmOBAAJjggACY4MAAmOEAAJjhgACY4gAAmOJAAJjigACY4wAAmONAAJjpgACY6cAAmOoAAJjqgACZCUAAmQnAAJkKQACZCsAAmQuAAJkLwACZDAAAmQxAAJkMgACZDQAAmQ2AAJkNwACZDgAAmQ6AAJkOwACZLYAAmS4AAJkugACZLwAAmS/AAJkwAACZMEAAmTCAAJkwwACZMUAAmTHAAJkyAACZMkAAmTLAAJkzAACZUcAAmVJAAJlSwACZU0AAmVQAAJlUQACZVIAAmVTAAJlVAACZVYAAmVYAAJlWQACZVoAAmVcAAJlXQACZdgAAmXaAAJl3AACZd4AAmXhAAJl4gACZeMAAmXkAAJl5QACZecAAmXpAAJl6gACZesAAmXtAAJl7gACZmkAAmZrAAJmbQACZm8AAmZyAAJmcwACZnQAAmZ1AAJmdgACZngAAmZ6AAJmewACZnwAAmZ+AAJmfwACZsgAAmbsAAJnEwACZzcAAmc6AAJnPAACZz4AAmdAAAJnQgACZ0QAAmdFAAJnSAACZ2EAAmd+AAJngAACZ4IAAmeEAAJnhgACZ4gAAmeKAAJnjAACZ6kAAmesAAJnrwACZ7IAAme1AAJnuAACZ7sAAme+AAJnwAACaDsAAmg9AAJoPwACaEEAAmhEAAJoRQACaEYAAmhHAAJoSAACaEoAAmhMAAJoTQACaE4AAmhQAAJoUQACaMwAAmjOAAJo0AACaNIAAmjVAAJo1gACaNcAAmjYAAJo2QACaNsAAmjdAAJo3gACaN8AAmjhAAJo4gACaV0AAmlfAAJpYQACaWMAAmlmAAJpZwACaWgAAmlpAAJpagACaWwAAmluAAJpbwACaXAAAmlyAAJpcwACae4AAmnwAAJp8wACafUAAmn4AAJp+QACafoAAmn7AAJp/AACaf4AAmoAAAJqAQACagIAAmoEAAJqBQACaoAAAmqCAAJqhAACaoYAAmqJAAJqigACaosAAmqMAAJqjQACao8AAmqRAAJqkgACapMAAmqVAAJqlgACaxEAAmsTAAJrFQACaxcAAmsaAAJrGwACaxwAAmsdAAJrHgACayAAAmsiAAJrIwACayQAAmsmAAJrJwACa6IAAmukAAJrpwACa6kAAmusAAJrrQACa64AAmuvAAJrsAACa7IAAmu0AAJrtQACa7YAAmu4AAJruQACbEwAAmxvAAJsjwACbK8AAmyxAAJsswACbLUAAmy3AAJsugACbLsAAmy8AAJsvwACbMAAAmzCAAJswwACbMUAAmzIAAJsyQACbMoAAmzNAAJszgACbNcAAmzwAAJs+QACbPsAAmz9AAJtBgACbQkAAm0MAAJtDgACbVcAAm17AAJtogACbcYAAm3JAAJtywACbc0AAm3PAAJt0QACbdMAAm3UAAJt1wACbfAAAm4RAAJuEwACbhUAAm4XAAJuGQACbhsAAm4dAAJuHwACbiEAAm5CAAJuRQACbkgAAm5LAAJuTgACblEAAm5UAAJuVwACbloAAm5cAAJu1wACbtkAAm7bAAJu3QACbuAAAm7hAAJu4gACbuMAAm7kAAJu5gACbugAAm7pAAJu6gACbuwAAm7tAAJvaAACb2oAAm9sAAJvbgACb3EAAm9yAAJvcwACb3QAAm91AAJvdwACb3kAAm96AAJvewACb30AAm9+AAJv+QACb/sAAm/+AAJwAAACcAMAAnAEAAJwBQACcAYAAnAHAAJwCQACcAsAAnAMAAJwDQACcA8AAnAQAAJwKQACcCoAAnArAAJwLQACcKgAAnCqAAJwrAACcK4AAnCxAAJwsgACcLMAAnC0AAJwtQACcLcAAnC5AAJwugACcLsAAnC9AAJwvgACcTkAAnE7AAJxPQACcT8AAnFCAAJxQwACcUQAAnFFAAJxRgACcUgAAnFKAAJxSwACcUwAAnFOAAJxTwACccoAAnHMAAJxzgACcdAAAnHTAAJx1AACcdUAAnHWAAJx1wACcdkAAnHbAAJx3AACcd0AAnHfAAJx4AACclsAAnJdAAJyXwACcmEAAnJkAAJyZQACcmYAAnJnAAJyaAACcmoAAnJsAAJybQACcm4AAnJwAAJycQACcuwAAnLuAAJy8AACcvIAAnL1AAJy9gACcvcAAnL4AAJy+QACcvsAAnL9AAJy/gACcv8AAnMBAAJzAgACc0sAAnNvAAJzlgACc7oAAnO9AAJzvwACc8EAAnPDAAJzxQACc8cAAnPIAAJzywACc+QAAnQBAAJ0AwACdAUAAnQHAAJ0CQACdAsAAnQNAAJ0DwACdCwAAnQvAAJ0MgACdDUAAnQ4AAJ0OwACdD4AAnRBAAJ0QwACdL4AAnTAAAJ0wwACdMUAAnTIAAJ0yQACdMoAAnTLAAJ0zAACdM4AAnT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lAAKGyQAChswAAobOAAKG0AAChtIAAobUAAKG1gAChtcAAobaAAKG8wAChxQAAocWAAKHGAAChxoAAoccAAKHHgAChyAAAociAAKHJAACh0UAAodIAAKHSwACh04AAodRAAKHVAACh1cAAodaAAKHXQACh18AAofaAAKH3AACh94AAofgAAKH4wACh+QAAoflAAKH5gACh+cAAofpAAKH6wACh+wAAoftAAKH7wACh/AAAohrAAKIbQACiG8AAohxAAKIdAACiHUAAoh2AAKIdwACiHgAAoh6AAKIfAACiH0AAoh+AAKIgAACiIEAAoj8AAKI/gACiQEAAokDAAKJBgACiQcAAokIAAKJCQACiQoAAokMAAKJDgACiQ8AAokQAAKJEgACiRMAAoksAAKJLQACiS4AAokwAAKJqwACia0AAomvAAKJsQACibQAAom1AAKJtgACibcAAom4AAKJugACibwAAom9AAKJvgACicAAAonBAAKKPAACij4AAopAAAKKQgACikUAAopGAAKKRwACikgAAopJAAKKSwACik0AAopOAAKKTwACilEAAopSAAKKzQACis8AAorRAAKK0wACitYAAorXAAKK2AACitkAAoraAAKK3AACit4AAorfAAKK4AACiuIAAorjAAKLXgACi2AAAotiAAKLZAACi2cAAotoAAKLaQACi2oAAotrAAKLbQACi28AAotwAAKLcQACi3MAAot0AAKL7wACi/EAAovzAAKL9QACi/gAAov5AAKL+gACi/sAAov8AAKL/gACjAAAAowBAAKMAgACjAQAAowFAAKMTgACjHIAAoyZAAKMvQACjMAAAozCAAKMxAACjMYAAozIAAKMygACjMsAAozOAAKM5wACjQQAAo0GAAKNCAACjQoAAo0MAAKNDgACjRAAAo0SAAKNLwACjTIAAo01AAKNOAACjTsAAo0+AAKNQQACjUQAAo1GAAKNwQACjcMAAo3FAAKNxwACjcoAAo3LAAKNzAACjc0AAo3OAAKN0AACjdIAAo3TAAKN1AACjdYAAo3XAAKOUgACjlQAAo5WAAKOWAACjlsAAo5cAAKOXQACjl4AAo5fAAKOYQACjmMAAo5kAAKOZQACjmcAAo5oAAKO4wACjuUAAo7nAAKO6QACjuwAAo7tAAKO7gACju8AAo7wAAKO8gACjvQAAo71AAKO9gACjvgAAo75AAKPdAACj3YAAo94AAKPegACj30AAo9+AAKPfwACj4AAAo+BAAKPgwACj4UAAo+GAAKPhwACj4kAAo+KAAKQBQACkAcAApAJAAKQCwACkA4AApAPAAKQEAACkBEAApASAAKQFAACkBYAApAXAAKQGAACkBoAApAbAAKQlgACkJgAApCaAAKQnAACkJ8AApCgAAKQoQACkKIAApCjAAKQpQACkKcAApCoAAKQqQACkKsAApCsAAKRJwACkSkAApErAAKRLQACkTAAApExAAKRMgACkTMAApE0AAKRNgACkTgAApE5AAKROgACkTwAApE9AAKR0AACkfMAApITAAKSMwACkjUAApI3AAKSOQACkjsAApI+AAKSPwACkkAAApJDAAKSRAACkkYAApJHAAKSSgACkk0AApJOAAKSTwACklIAApJTAAKSWAACknEAApJ6AAKSfAACkn4AApKHAAKSigACko0AApKPAAKS2AACkvwAApMjAAKTRwACk0oAApNMAAKTTgACk1AAApNSAAKTVAACk1UAApNYAAKTcQACk5IAApOUAAKTlgACk5gAApOaAAKTnAACk54AApOgAAKTogACk8MAApPGAAKTyQACk8wAApPPAAKT0gACk9UAApPYAAKT2wACk90AApRYAAKUWgAClFwAApReAAKUYQAClGIAApRjAAKUZAAClGUAApRnAAKUaQAClGoAApRrAAKUbQAClG4AApTpAAKU6wAClO0AApTvAAKU8gAClPMAApT0AAKU9QAClPYAApT4AAKU+gAClPsAApT8AAKU/gAClP8AApV6AAKVfAAClX8AApWBAAKVhAAClYUAApWGAAKVhwAClYgAApWKAAKVjAAClY0AApWOAAKVkAAClZEAApWqAAKVqwAClawAApWuAAKWKQAClisAApYtAAKWLwACljIAApYzAAKWNAACljUAApY2AAKWOAACljoAApY7AAKWPAAClj4AApY/AAKWugAClrwAApa+AAKWwAAClsMAApbEAAKWxQAClsYAApbHAAKWyQAClssAApbMAAKWzQACls8AApbQAAKXSwACl00AApdPAAKXUQACl1QAApdVAAKXVgACl1cAApdYAAKXWgACl1wAApddAAKXXgACl2AAApdhAAKX3AACl94AApfgAAKX4gACl+UAApfmAAKX5wACl+gAApfpAAKX6wACl+0AApfuAAKX7wACl/EAApfyAAKYbQACmG8AAphxAAKYcwACmHYAAph3AAKYeAACmHkAAph6AAKYfAACmH4AAph/AAKYgAACmIIAApiDAAKYzAACmPAAApkXAAKZOwACmT4AAplAAAKZQgACmUQAAplGAAKZSAACmUkAAplMAAKZZQACmYIAApmEAAKZhgACmYgAApmKAAKZjAACmY4AApmQAAKZrQACmbAAApmzAAKZtgACmbkAApm8AAKZvwACmcIAApnEAAKaPwACmkEAAppDAAKaRQACmkgAAppJAAKaSgACmksAAppMAAKaTgACmlAAAppRAAKaUgACmlQAAppVAAKa0AACmtIAAprVAAKa1wACmtoAAprbAAKa3AACmt0AApreAAKa4AACmuIAAprjAAKa5AACmuYAAprnAAKbYgACm2QAAptmAAKbaAACm2sAAptsAAKbbQACm24AAptvAAKbcQACm3MAApt0AAKbdQACm3cAApt4AAKb8wACm/UAApv4AAKb+gACm/0AApv+AAKb/wACnAAAApwBAAKcAwACnAUAApwGAAKcBwACnAkAApwKAAKcjQACnLEAApzVAAKc+AACnR8AAp0/AAKdZgACnY0AAp2tAAKd0QACnfUAAp33AAKd+gACnfwAAp3+AAKeAAACngMAAp4GAAKeCAACngoAAp4NAAKeDwACnhEAAp4UAAKeFwACnhgAAp4hAAKeOgACnj8AAp5BAAKeRgACnkkAAp5LAAKelAACnrgAAp7fAAKfAwACnwYAAp8IAAKfCgACnwwAAp8OAAKfEAACnxEAAp8UAAKfLQACn1IAAp9UAAKfVgACn1gAAp9aAAKfXAACn14AAp9gAAKfYgACn2QAAp+JAAKfjAACn48AAp+SAAKflQACn5gAAp+bAAKfngACn6EAAp+kAAKfpgACoCEAAqAjAAKgJgACoCgAAqArAAKgLAACoC0AAqAuAAKgLwACoDEAAqAzAAKgNAACoDUAAqA3AAKgOAACoEkAAqBKAAKgTAACoMcAAqDJAAKgywACoM0AAqDQAAKg0QACoNIAAqDTAAKg1AACoNYAAqDYAAKg2QACoNoAAqDcAAKg3QACoVgAAqFaAAKhXQACoV8AAqFiAAKhYwACoWQAAqFlAAKhZgACoWgAAqFqAAKhawACoWwAAqFuAAKhbwACoYAAAqGBAAKhgwACof4AAqIAAAKiAgACogQAAqIHAAKiCAACogkAAqIKAAKiCwACog0AAqIPAAKiEAACohEAAqITAAKiFAACoo8AAqKRAAKilAACopYAAqKZAAKimgACopsAAqKcAAKinQACop8AAqKhAAKiogACoqMAAqKlAAKipgACorcAAqK4AAKiugACozUAAqM3AAKjOQACozsAAqM+AAKjPwACo0AAAqNBAAKjQgACo0QAAqNGAAKjRwACo0gAAqNKAAKjSwACo8YAAqPIAAKjywACo80AAqPQAAKj0QACo9IAAqPTAAKj1AACo9YAAqPYAAKj2QACo9oAAqPcAAKj3QACo/YAAqP3AAKj+AACo/oAAqR1AAKkdwACpHkAAqR7AAKkfgACpH8AAqSAAAKkgQACpIIAAqSEAAKkhgACpIcAAqSIAAKkigACpIsAAqUGAAKlCAACpQsAAqUNAAKlEAACpREAAqUSAAKlEwACpRQAAqUWAAKlGAACpRkAAqUaAAKlHAACpR0AAqU9AAKlVgACpVsAAqVeAAKlYwACpWYAAqVoAAKlcAACpgMAAqYmAAKmRgACpmYAAqZoAAKmagACpmwAAqZuAAKmcQACpnIAAqZzAAKmdgACpncAAqZ5AAKmegACpn0AAqaAAAKmgQACpoIAAqaFAAKmhgACposAAqakAAKmrQACpq8AAqaxAAKmugACpr0AAqbAAAKmwgACpwsAAqcvAAKnVgACp3oAAqd9AAKnfwACp4EAAqeDAAKnhQACp4cAAqeIAAKniwACp6QAAqfFAAKnxwACp8kAAqfLAAKnzQACp88AAqfRAAKn0wACp9UAAqf2AAKn+QACp/wAAqf/AAKoAgACqAUAAqgIAAKoCwACqA4AAqgQAAKoiwACqI0AAqiPAAKokQACqJQAAqiVAAKolgACqJcAAqiYAAKomgACqJwAAqidAAKongACqKAAAqihAAKpHAACqR4AAqkgAAKpIgACqSUAAqkmAAKpJwACqSgAAqkpAAKpKwACqS0AAqkuAAKpLwACqTEAAqkyAAKprQACqa8AAqmyAAKptAACqbcAAqm4AAKpuQACqboAAqm7AAKpvQACqb8AAqnAAAKpwQACqcMAAqnEAAKp3QACqd4AAqnfAAKp4QACqlwAAqpeAAKqYAACqmIAAqplAAKqZgACqmcAAqpoAAKqaQACqmsAAqptAAKqbgACqm8AAqpxAAKqcgACqu0AAqrvAAKq8QACqvMAAqr2AAKq9wACqvgAAqr5AAKq+gACqvwAAqr+AAKq/wACqwAAAqsCAAKrAwACq34AAquAAAKrggACq4QAAquHAAKriAACq4kAAquKAAKriwACq40AAquPAAKrkAACq5EAAquTAAKrlAACrA8AAqwRAAKsEwACrBUAAqwYAAKsGQACrBoAAqwbAAKsHAACrB4AAqwgAAKsIQACrCIAAqwkAAKsJQACrKAAAqyiAAKspAACrKYAAqypAAKsqgACrKsAAqysAAKsrQACrK8AAqyxAAKssgACrLMAAqy1AAKstgACrP8AAq0jAAKtSgACrW4AAq1xAAKtcwACrXUAAq13AAKteQACrXsAAq18AAKtfwACrZgAAq21AAKttwACrbkAAq27AAKtvQACrb8AAq3BAAKtwwACreAAAq3jAAKt5gACrekAAq3sAAKt7wACrfIAAq31AAKt9wACrnIAAq50AAKudgACrngAAq57AAKufAACrn0AAq5+AAKufwACroEAAq6DAAKuhAACroUAAq6HAAKuiAACrwMAAq8FAAKvBwACrwkAAq8MAAKvDQACrw4AAq8PAAKvEAACrxIAAq8UAAKvFQACrxYAAq8YAAKvGQACr5QAAq+WAAKvmAACr5oAAq+dAAKvngACr58AAq+gAAKvoQACr6MAAq+lAAKvpgACr6cAAq+pAAKvqgACsCUAArAnAAKwKgACsCwAArAvAAKwMAACsDEAArAyAAKwMwACsDUAArA3AAKwOAACsDkAArA7AAKwPAACsLcAArC5AAKwuwACsL0AArDAAAKwwQACsMIAArDDAAKwxAACsMYAArDIAAKwyQACsMoAArDMAAKwzQACsUgAArFKAAKxTAACsU4AArFRAAKxUgACsVMAArFUAAKxVQACsVcAArFZAAKxWgACsVsAArFdAAKxXgACsdkAArHbAAKx3gACseAAArHjAAKx5AACseUAArHmAAKx5wACsekAArHrAAKx7AACse0AArHvAAKx8AACsgEAArIGAAKyCQACsgsAArJEAAKyRwACskkAArJMAAKyTwACslIAArJVAAKyWgACsv0AArMhAAKzRQACs2UAArOMAAKzswACs9MAArP6AAK0HgACtEEAArRoAAK0jAACtLAAArTUAAK0+wACtPwAArT+AAK1AAACtQMAArUFAAK1CAACtQoAArUMAAK1DwACtREAArUTAAK1FgACtRkAArUbAAK1HQACtR8AArUiAAK1JQACtSgAArUtAAK1RgACtUsAArVNAAK1UgACtVUAArVXAAK1oAACtcQAArXrAAK2DwACthIAArYUAAK2FgACthgAArYaAAK2HAACth0AArYgAAK2OQACtl4AArZgAAK2YgACtmQAArZmAAK2aAACtmoAArZsAAK2bgACtnAAAraVAAK2mAACtpsAAraeAAK2oQACtqQAAranAAK2qgACtq0AArawAAK2sgACty0AArcvAAK3MgACtzQAArc3AAK3OAACtzkAArc6AAK3OwACtz0AArc/AAK3QAACt0EAArdDAAK3RAACt1UAArdWAAK3WAACt9MAArfVAAK31wACt9kAArfcAAK33QACt94AArffAAK34AACt+IAArfkAAK35QACt+YAArfoAAK36QACuGQAArhmAAK4aQACuGsAArhuAAK4bwACuHAAArhxAAK4cgACuHQAArh2AAK4dwACuHgAArh6AAK4ewACuIwAAriNAAK4jwACuQoAArkMAAK5DgACuRAAArkTAAK5FAACuRUAArkWAAK5FwACuRkAArkbAAK5HAACuR0AArkfAAK5IAACuZsAArmdAAK5oAACuaIAArmlAAK5pgACuacAArmoAAK5qQACuasAArmtAAK5rgACua8AArmxAAK5sgACucMAArnEAAK5xgACukEAArpDAAK6RQACukcAArpKAAK6SwACukwAArpNAAK6TgACulAAArpSAAK6UwACulQAArpWAAK6VwACutIAArrUAAK61wACutkAArrcAAK63QACut4AArrfAAK64AACuuIAArrkAAK65QACuuYAArroAAK66QACuwIAArsDAAK7BAACuwYAAruBAAK7gwACu4UAAruHAAK7igACu4sAAruMAAK7jQACu44AAruQAAK7kgACu5MAAruUAAK7lgACu5cAArwSAAK8FAACvBcAArwZAAK8HAACvB0AArweAAK8HwACvCAAArwiAAK8JAACvCUAArwmAAK8KAACvCkAArxAAAK8WQACvGYAArxpAAK8bAACvG8AArx8AAK8fwACvIIAAryFAAK8hwACvKAAAry4AAK80QACvWQAAr2HAAK9pwACvccAAr3JAAK9ywACvc0AAr3PAAK90gACvdMAAr3UAAK91wACvdgAAr3aAAK92wACvd0AAr3gAAK94QACveIAAr3lAAK95gACvesAAr4EAAK+DQACvg8AAr4RAAK+GgACvh0AAr4gAAK+IgACvmsAAr6PAAK+tgACvtoAAr7dAAK+3wACvuEAAr7jAAK+5QACvucAAr7oAAK+6wACvwQAAr8lAAK/JwACvykAAr8rAAK/LQACvy8AAr8xAAK/MwACvzUAAr9WAAK/WQACv1wAAr9fAAK/YgACv2UAAr9oAAK/awACv24AAr9wAAK/6wACv+0AAr/vAAK/8QACv/QAAr/1AAK/9gACv/cAAr/4AAK/+gACv/wAAr/9AAK//gACwAAAAsABAALAfAACwH4AAsCAAALAggACwIUAAsCGAALAhwACwIgAAsCJAALAiwACwI0AAsCOAALAjwACwJEAAsCSAALBDQACwQ8AAsESAALBFAACwRcAAsEYAALBGQACwRoAAsEbAALBHQACwR8AAsEgAALBIQACwSMAAsEkAALBPQACwT4AAsE/AALBQQACwbwAAsG+AALBwAACwcIAAsHFAALBxgACwccAAsHIAALByQACwcsAAsHNAALBzgACwc8AAsHRAALB0gACwk0AAsJPAALCUQACwlMAAsJWAALCVwACwlgAAsJZAALCWgACwlwAAsJeAALCXwACwmAAAsJiAALCYwACwt4AAsLgAALC4gACwuQAAsLnAALC6AACwukAAsLqAALC6wACwu0AAsLvAALC8AACwvEAAsLzAALC9AACw28AAsNxAALDcwACw3UAAsN4AALDeQACw3oAAsN7AALDfAACw34AAsOAAALDgQACw4IAAsOEAALDhQACxAAAAsQCAALEBAACxAYAAsQJAALECgACxAsAAsQMAALEDQACxA8AAsQRAALEEgACxBMAAsQVAALEFgACxF8AAsSDAALEqgACxM4AAsTRAALE0wACxNUAAsTXAALE2QACxNsAAsTcAALE3wACxPgAAsUVAALFFwACxRkAAsUbAALFHQACxR8AAsUhAALFIwACxUAAAsVDAALFRgACxUkAAsVMAALFTwACxVIAAsVVAALFVwACxdIAAsXUAALF1wACxdkAAsXcAALF3QACxd4AAsXfAALF4AACxeIAAsXkAALF5QACxeYAAsXoAALF6QACxmQAAsZmAALGaAACxmoAAsZtAALGbgACxm8AAsZwAALGcQACxnMAAsZ1AALGdgACxncAAsZ5AALGegACxvUAAsb3AALG+QACxvsAAsb+AALG/wACxwAAAscBAALHAgACxwQAAscGAALHBwACxwgAAscKAALHCwACx4YAAseIAALHiwACx40AAseQAALHkQACx5IAAseTAALHlAACx5YAAseYAALHmQACx5oAAsecAALHnQACyBgAAsgaAALIHAACyB4AAsghAALIIgACyCMAAsgkAALIJQACyCcAAsgpAALIKgACyCsAAsgtAALILgACyKkAAsirAALIrQACyK8AAsiyAALIswACyLQAAsi1AALItgACyLgAAsi6AALIuwACyLwAAsi+AALIvwACyToAAsk8AALJPgACyUAAAslDAALJRAACyUUAAslGAALJRwACyUkAAslLAALJTAACyU0AAslPAALJUAACyeMAAsoGAALKJgACykYAAspIAALKSgACykwAAspOAALKUQACylIAAspTAALKVgACylcAAspZAALKWgACylwAAspfAALKYAACymEAAspkAALKZQACymoAAsqDAALKjAACyo4AAsqQAALKmQACypwAAsqfAALKoQACyuoAAssOAALLNQACy1kAAstcAALLXgACy2AAAstiAALLZAACy2YAAstnAALLagACy4MAAsukAALLpgACy6gAAsuqAALLrAACy64AAsuwAALLsgACy7QAAsvVAALL2AACy9sAAsveAALL4QACy+QAAsvnAALL6gACy+0AAsvvAALMagACzGwAAsxuAALMcAACzHMAAsx0AALMdQACzHYAAsx3AALMeQACzHsAAsx8AALMfQACzH8AAsyAAALM+wACzP0AAsz/AALNAQACzQQAAs0FAALNBgACzQcAAs0IAALNCgACzQwAAs0NAALNDgACzRAAAs0RAALNjAACzY4AAs2RAALNkwACzZYAAs2XAALNmAACzZkAAs2aAALNnAACzZ4AAs2fAALNoAACzaIAAs2jAALNvAACzb0AAs2+AALNwAACzjsAAs49AALOPwACzkEAAs5EAALORQACzkYAAs5HAALOSAACzkoAAs5MAALOTQACzk4AAs5QAALOUQACzswAAs7OAALO0AACztIAAs7VAALO1gACztcAAs7YAALO2QACztsAAs7dAALO3gACzt8AAs7hAALO4gACz10AAs9fAALPYQACz2MAAs9mAALPZwACz2gAAs9pAALPagACz2wAAs9uAALPbwACz3AAAs9yAALPcwACz+4AAs/wAALP8gACz/QAAs/3AALP+AACz/kAAs/6AALP+wACz/0AAs//AALQAAAC0AEAAtADAALQBAAC0H8AAtCBAALQgwAC0IUAAtCIAALQiQAC0IoAAtCLAALQjAAC0I4AAtCQAALQkQAC0JIAAtCUAALQlQAC0N4AAtECAALRKQAC0U0AAtFQAALRUgAC0VQAAtFWAALRWAAC0VoAAtFbAALRXgAC0XcAAtGUAALRlgAC0ZgAAtGaAALRnAAC0Z4AAtGgAALRogAC0b8AAtHCAALRxQAC0cgAAtHLAALRzgAC0dEAAtHUAALR1gAC0lEAAtJTAALSVQAC0lcAAtJaAALSWwAC0lwAAtJdAALSXgAC0mAAAtJiAALSYwAC0mQAAtJmAALSZwAC0uIAAtLkAALS5gAC0ugAAtLrAALS7AAC0u0AAtLuAALS7wAC0vEAAtLzAALS9AAC0vUAAtL3AALS+AAC03MAAtN1AALTdwAC03kAAtN8AALTfQAC034AAtN/AALTgAAC04IAAtOEAALThQAC04YAAtOIAALTiQAC1AQAAtQGAALUCAAC1AoAAtQNAALUDgAC1A8AAtQQAALUEQAC1BMAAtQVAALUFgAC1BcAAtQZAALUGgAC1JUAAtSXAALUmQAC1JsAAtSeAALUnwAC1KAAAtShAALUogAC1KQAAtSmAALUpwAC1KgAAtSqAALUqwAC1SYAAtUoAALVKgAC1SwAAtUvAALVMAAC1TEAAtUyAALVMwAC1TUAAtU3AALVOAAC1TkAAtU7AALVPAAC1bcAAtW5AALVuwAC1b0AAtXAAALVwQAC1cIAAtXDAALVxAAC1cYAAtXIAALVyQAC1coAAtXMAALVzQAC1mAAAtaDAALWowAC1sMAAtbFAALWxwAC1skAAtbLAALWzgAC1s8AAtbQAALW0wAC1tQAAtbWAALW1wAC1tkAAtbcAALW3QAC1t4AAtbhAALW4gAC1ucAAtcAAALXCQAC1wsAAtcNAALXFgAC1xkAAtccAALXHgAC12cAAteLAALXsgAC19YAAtfZAALX2wAC190AAtffAALX4QAC1+MAAtfkAALX5wAC2AAAAtghAALYIwAC2CUAAtgnAALYKQAC2CsAAtgtAALYLwAC2DEAAthSAALYVQAC2FgAAthbAALYXgAC2GEAAthkAALYZwAC2GoAAthsAALY5wAC2OkAAtjrAALY7QAC2PAAAtjxAALY8gAC2PMAAtj0AALY9gAC2PgAAtj5AALY+gAC2PwAAtj9AALZeAAC2XoAAtl8AALZfgAC2YEAAtmCAALZgwAC2YQAAtmFAALZhwAC2YkAAtmKAALZiwAC2Y0AAtmOAALaCQAC2gsAAtoOAALaEAAC2hMAAtoUAALaFQAC2hYAAtoXAALaGQAC2hsAAtocAALaHQAC2h8AAtogAALaOQAC2joAAto7AALaPQAC2rgAAtq6AALavAAC2r4AAtrBAALawgAC2sMAAtrEAALaxQAC2scAAtrJAALaygAC2ssAAtrNAALazgAC20kAAttLAALbTQAC208AAttSAALbUwAC21QAAttVAALbVgAC21gAAttaAALbWwAC21wAAtteAALbXwAC29oAAtvcAALb3gAC2+AAAtvjAALb5AAC2+UAAtvmAALb5wAC2+kAAtvrAALb7AAC2+0AAtvvAALb8AAC3GsAAtxtAALcbwAC3HEAAtx0AALcdQAC3HYAAtx3AALceAAC3HoAAtx8AALcfQAC3H4AAtyAAALcgQAC3PwAAtz+AALdAAAC3QIAAt0FAALdBgAC3QcAAt0IAALdCQAC3QsAAt0NAALdDgAC3Q8AAt0RAALdEgAC3VsAAt1/AALdpgAC3coAAt3NAALdzwAC3dEAAt3TAALd1QAC3dcAAt3YAALd2wAC3fQAAt4RAALeEwAC3hUAAt4XAALeGQAC3hsAAt4dAALeHwAC3jwAAt4/AALeQgAC3kUAAt5IAALeSwAC3k4AAt5RAALeUwAC3s4AAt7QAALe0wAC3tUAAt7YAALe2QAC3toAAt7bAALe3AAC3t4AAt7gAALe4QAC3uIAAt7kAALe5QAC32AAAt9iAALfZAAC32YAAt9pAALfagAC32sAAt9sAALfbQAC328AAt9xAALfcgAC33MAAt91AALfdgAC3/EAAt/zAALf9QAC3/cAAt/6AALf+wAC3/wAAt/9AALf/gAC4AAAAuACAALgAwAC4AQAAuAGAALgBwAC4IIAAuCEAALghwAC4IkAAuCMAALgjQAC4I4AAuCPAALgkAAC4JIAAuCUAALglQAC4JYAAuCYAALgmQAC4RQAAuEWAALhGAAC4RoAAuEdAALhHgAC4R8AAuEgAALhIQAC4SMAAuElAALhJgAC4ScAAuEpAALhKgAC4aUAAuGnAALhqQAC4asAAuGuAALhrwAC4bAAAuGxAALhsgAC4bQAAuG2AALhtwAC4bgAAuG6AALhuwAC4jYAAuI4AALiOgAC4jwAAuI/AALiQAAC4kEAAuJCAALiQwAC4kUAAuJHAALiSAAC4kkAAuJLAALiTAAC4l0AAuJeAALiYAAC4nEAAuJ6AALifQAC4oAAAuKCAALiuwAC4r4AAuLAAALiwwAC4sYAAuLJAALizAAC408AAuNzAALjlwAC47oAAuPhAALkAQAC5CgAAuRPAALkbwAC5JMAAuS3AALkuQAC5LwAAuS+AALkwAAC5MIAAuTFAALkyAAC5MoAAuTMAALkzwAC5NEAAuTTAALk1gAC5NkAAuTaAALk3wAC5PgAAuT9AALk/wAC5QQAAuUHAALlCQAC5VIAAuV2AALlnQAC5cEAAuXEAALlxgAC5cgAAuXKAALlzAAC5c4AAuXPAALl0gAC5esAAuYQAALmEgAC5hQAAuYWAALmGAAC5hoAAuYcAALmHgAC5iAAAuYiAALmRwAC5koAAuZNAALmUAAC5lMAAuZWAALmWQAC5lwAAuZfAALmYgAC5mQAAubfAALm4QAC5uQAAubmAALm6QAC5uoAAubrAALm7AAC5u0AAubvAALm8QAC5vIAAubzAALm9QAC5vYAAucHAALnCAAC5woAAueFAALnhwAC54kAAueLAALnjgAC548AAueQAALnkQAC55IAAueUAALnlgAC55cAAueYAALnmgAC55sAAugWAALoGAAC6BsAAugdAALoIAAC6CEAAugiAALoIwAC6CQAAugmAALoKAAC6CkAAugqAALoLAAC6C0AAug+AALoPwAC6EEAAui8AALovgAC6MAAAujCAALoxQAC6MYAAujHAALoyAAC6MkAAujLAALozQAC6M4AAujPAALo0QAC6NIAAulNAALpTwAC6VIAAulUAALpVwAC6VgAAulZAALpWgAC6VsAAuldAALpXwAC6WAAAulhAALpYwAC6WQAAul1AALpdgAC6XgAAunzAALp9QAC6fcAAun5AALp/AAC6f0AAun+AALp/wAC6gAAAuoCAALqBAAC6gUAAuoGAALqCAAC6gkAAuqEAALqhgAC6okAAuqLAALqjgAC6o8AAuqQAALqkQAC6pIAAuqUAALqlgAC6pcAAuqYAALqmgAC6psAAuq0AALqtQAC6rYAAuq4AALrMwAC6zUAAus3AALrOQAC6zwAAus9AALrPgAC6z8AAutAAALrQgAC60QAAutFAALrRgAC60gAAutJAALrxAAC68YAAuvJAALrywAC684AAuvPAALr0AAC69EAAuvSAALr1AAC69YAAuvXAALr2AAC69oAAuvbAALr+QAC7BIAAuwXAALsGgAC7B8AAuwiAALsJAAC7LcAAuzaAALs+gAC7RoAAu0cAALtHgAC7SAAAu0iAALtJQAC7SYAAu0nAALtKgAC7SsAAu0tAALtLgAC7TEAAu00AALtNQAC7TYAAu05AALtOgAC7T8AAu1YAALtYQAC7WMAAu1lAALtbgAC7XEAAu10AALtdgAC7b8AAu3jAALuCgAC7i4AAu4xAALuMwAC7jUAAu43AALuOQAC7jsAAu48AALuPwAC7lgAAu55AALuewAC7n0AAu5/AALugQAC7oMAAu6FAALuhwAC7okAAu6qAALurQAC7rAAAu6zAALutgAC7rkAAu68AALuvwAC7sIAAu7EAALvPwAC70EAAu9DAALvRQAC70gAAu9JAALvSgAC70sAAu9MAALvTgAC71AAAu9RAALvUgAC71QAAu9VAALv0AAC79IAAu/UAALv1gAC79kAAu/aAALv2wAC79wAAu/dAALv3wAC7+EAAu/iAALv4wAC7+UAAu/mAALwYQAC8GMAAvBmAALwaAAC8GsAAvBsAALwbQAC8G4AAvBvAALwcQAC8HMAAvB0AALwdQAC8HcAAvB4AALwkQAC8JIAAvCTAALwlQAC8RAAAvESAALxFAAC8RYAAvEZAALxGgAC8RsAAvEcAALxHQAC8R8AAvEhAALxIgAC8SMAAvElAALxJgAC8aEAAvGjAALxpQAC8acAAvGqAALxqwAC8awAAvGtAALxrgAC8bAAAvGyAALxswAC8bQAAvG2AALxtwAC8jIAAvI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mAAMV6AADFeoAAxXsAAMV7gADFfAAAxXyAAMV9AADFhEAAxYUAAMWFwADFhoAAxYdAAMWIAADFiMAAxYmAAMWKAADFqMAAxalAAMWpwADFqkAAxasAAMWrQADFq4AAxavAAMWsAADFrIAAxa0AAMWtQADFrYAAxa4AAMWuQADFzQAAxc2AAMXOQADFzsAAxc+AAMXPwADF0AAAxdBAAMXQgADF0QAAxdGAAMXRwADF0gAAxdKAAMXSwADF8YAAxfIAAMXygADF8wAAxfPAAMX0AADF9EAAxfSAAMX0wADF9UAAxfXAAMX2AADF9kAAxfbAAMX3AADGFcAAxhZAAMYXAADGF4AAxhhAAMYYgADGGMAAxhkAAMYZQADGGcAAxhpAAMYagADGGsAAxhtAAMYbgADGOkAAxjrAAMY7QADGO8AAxjyAAMY8wADGPQAAxj1AAMY9gADGPgAAxj6AAMY+wADGPwAAxj+AAMY/wADGXoAAxl8AAMZfgADGYAAAxmDAAMZhAADGYUAAxmGAAMZhwADGYkAAxmLAAMZjAADGY0AAxmPAAMZkAADGgsAAxoNAAMaEAADGhIAAxoVAAMaFgADGhcAAxoYAAMaGQADGhsAAxodAAMaHgADGh8AAxohAAMaIgADGrUAAxrYAAMa+AADGxgAAxsaAAMbHAADGx4AAxsgAAMbIwADGyQAAxslAAMbKAADGykAAxsrAAMbLAADGy4AAxsxAAMbMgADGzMAAxs2AAMbNwADGzwAAxtVAAMbXgADG2AAAxtiAAMbawADG24AAxtxAAMbcwADG7wAAxvgAAMcBwADHCsAAxwuAAMcMAADHDIAAxw0AAMcNgADHDgAAxw5AAMcPAADHFUAAxx2AAMceAADHHoAAxx8AAMcfgADHIAAAxyCAAMchAADHIYAAxynAAMcqgADHK0AAxywAAMcswADHLYAAxy5AAMcvAADHL8AAxzBAAMdPAADHT4AAx1AAAMdQgADHUUAAx1GAAMdRwADHUgAAx1JAAMdSwADHU0AAx1OAAMdTwADHVEAAx1SAAMdzQADHc8AAx3RAAMd0wADHdYAAx3XAAMd2AADHdkAAx3aAAMd3AADHd4AAx3fAAMd4AADHeIAAx3jAAMeXgADHmAAAx5jAAMeZQADHmgAAx5pAAMeagADHmsAAx5sAAMebgADHnAAAx5xAAMecgADHnQAAx51AAMejgADHo8AAx6QAAMekgADHw0AAx8PAAMfEQADHxMAAx8WAAMfFwADHxgAAx8ZAAMfGgADHxwAAx8eAAMfHwADHyAAAx8iAAMfIwADH54AAx+gAAMfogADH6QAAx+nAAMfqAADH6kAAx+qAAMfqwADH60AAx+vAAMfsAADH7EAAx+zAAMftAADIC8AAyAxAAMgMwADIDUAAyA4AAMgOQADIDoAAyA7AAMgPAADID4AAyBAAAMgQQADIEIAAyBEAAMgRQADIMAAAyDCAAMgxAADIMYAAyDJAAMgygADIMsAAyDMAAMgzQADIM8AAyDRAAMg0gADINMAAyDVAAMg1gADIVEAAyFTAAMhVQADIVcAAyFaAAMhWwADIVwAAyFdAAMhXgADIWAAAyFiAAMhYwADIWQAAyFmAAMhZwADIbAAAyHUAAMh+wADIh8AAyIiAAMiJAADIiYAAyIoAAMiKgADIiwAAyItAAMiMAADIkkAAyJmAAMiaAADImoAAyJsAAMibgADInAAAyJyAAMidAADIpEAAyKUAAMilwADIpoAAyKdAAMioAADIqMAAyKmAAMiqAADIyMAAyMlAAMjJwADIykAAyMsAAMjLQADIy4AAyMvAAMjMAADIzIAAyM0AAMjNQADIzYAAyM4AAMjOQADI7QAAyO2AAMjuAADI7oAAyO9AAMjvgADI78AAyPAAAMjwQADI8MAAyPFAAMjxgADI8cAAyPJAAMjygADJEUAAyRHAAMkSQADJEsAAyROAAMkTwADJFAAAyRRAAMkUgADJFQAAyRWAAMkVwADJFgAAyRaAAMkWwADJNYAAyTYAAMk2wADJN0AAyTgAAMk4QADJOIAAyTjAAMk5AADJOYAAyToAAMk6QADJOoAAyTsAAMk7QADJWgAAyVqAAMlbAADJW4AAyVxAAMlcgADJXMAAyV0AAMldQADJXcAAyV5AAMlegADJXsAAyV9AAMlfgADJfkAAyX7AAMl/QADJf8AAyYCAAMmAwADJgQAAyYFAAMmBgADJggAAyYKAAMmCwADJgwAAyYOAAMmDwADJooAAyaMAAMmjgADJpAAAyaTAAMmlAADJpUAAyaWAAMmlwADJpkAAyabAAMmnAADJp0AAyafAAMmoAADJzMAAydWAAMndgADJ5YAAyeYAAMnmgADJ5wAAyeeAAMnoQADJ6IAAyejAAMnpgADJ6cAAyepAAMnqgADJ60AAyewAAMnsQADJ7IAAye1AAMntgADJ7sAAyfUAAMn3QADJ98AAyfhAAMn6gADJ+0AAyfwAAMn8gADKDsAAyhfAAMohgADKKoAAyitAAMorwADKLEAAyizAAMotQADKLcAAyi4AAMouwADKNQAAyj1AAMo9wADKPkAAyj7AAMo/QADKP8AAykBAAMpAwADKQUAAykmAAMpKQADKSwAAykvAAMpMgADKTUAAyk4AAMpOwADKT4AAylAAAMpuwADKb0AAym/AAMpwQADKcQAAynFAAMpxgADKccAAynIAAMpygADKcwAAynNAAMpzgADKdAAAynRAAMqTAADKk4AAypQAAMqUgADKlUAAypWAAMqVwADKlgAAypZAAMqWwADKl0AAypeAAMqXwADKmEAAypiAAMq3QADKt8AAyriAAMq5AADKucAAyroAAMq6QADKuoAAyrrAAMq7QADKu8AAyrwAAMq8QADKvMAAyr0AAMrDQADKw4AAysPAAMrEQADK4wAAyuOAAMrkAADK5IAAyuVAAMrlgADK5cAAyuYAAMrmQADK5sAAyudAAMrngADK58AAyuhAAMrogADLB0AAywfAAMsIQADLCMAAywmAAMsJwADLCgAAywpAAMsKgADLCwAAywuAAMsLwADLDAAAywyAAMsMwADLK4AAyywAAMssgADLLQAAyy3AAMsuAADLLkAAyy6AAMsuwADLL0AAyy/AAMswAADLMEAAyzDAAMsxAADLT8AAy1BAAMtQwADLUUAAy1IAAMtSQADLUoAAy1LAAMtTAADLU4AAy1QAAMtUQADLVIAAy1UAAMtVQADLdAAAy3SAAMt1AADLdYAAy3ZAAMt2gADLdsAAy3cAAMt3QADLd8AAy3hAAMt4gADLeMAAy3lAAMt5gADLi8AAy5TAAMuegADLp4AAy6hAAMuowADLqUAAy6nAAMuqQADLqsAAy6sAAMurwADLsgAAy7lAAMu5wADLukAAy7rAAMu7QADLu8AAy7xAAMu8wADLxAAAy8TAAMvFgADLxkAAy8cAAMvHwADLyIAAy8lAAMvJwADL6IAAy+kAAMvpgADL6gAAy+rAAMvrAADL60AAy+uAAMvrwADL7EAAy+zAAMvtAADL7UAAy+3AAMvuAADMDMAAzA1AAMwOAADMDoAAzA9AAMwPgADMD8AAzBAAAMwQQADMEMAAzBFAAMwRgADMEcAAzBJAAMwSgADMMUAAzDHAAMwyQADMMsAAzDOAAMwzwADMNAAAzDRAAMw0gADMNQAAzDWAAMw1wADMNgAAzDaAAMw2wADMVYAAzFYAAMxWwADMV0AAzFgAAMxYQADMWIAAzFjAAMxZAADMWYAAzFoAAMxaQADMWoAAzFsAAMxbQADMfAAAzIUAAMyOAADMlsAAzKCAAMyogADMskAAzLwAAMzEAADMzQAAzNYAAMzWgADM10AAzNfAAMzYQADM2MAAzNmAAMzaQADM2sAAzNtAAMzcAADM3IAAzN0AAMzdwADM3oAAzN7AAMzgAADM5kAAzOeAAMzoAADM6UAAzOoAAMzqgADM/MAAzQXAAM0PgADNGIAAzRlAAM0ZwADNGkAAzRrAAM0bQADNG8AAzRwAAM0cwADNIwAAzSxAAM0swADNLUAAzS3AAM0uQADNLsAAzS9AAM0vwADNMEAAzTDAAM06AADNOsAAzTuAAM08QADNPQAAzT3AAM0+gADNP0AAzUAAAM1AwADNQUAAzWAAAM1ggADNYUAAzWHAAM1igADNYsAAzWMAAM1jQADNY4AAzWQAAM1kgADNZMAAzWUAAM1lgADNZcAAzWoAAM1qQADNasAAzYmAAM2KAADNioAAzYsAAM2LwADNjAAAzYxAAM2MgADNjMAAzY1AAM2NwADNjgAAzY5AAM2OwADNjwAAza3AAM2uQADNrwAAza+AAM2wQADNsIAAzbDAAM2xAADNsUAAzbHAAM2yQADNsoAAzbLAAM2zQADNs4AAzbfAAM24AADNuIAAzddAAM3XwADN2EAAzdjAAM3ZgADN2cAAzdoAAM3aQADN2oAAzdsAAM3bgADN28AAzdwAAM3cgADN3MAAzfuAAM38AADN/MAAzf1AAM3+AADN/kAAzf6AAM3+wADN/wAAzf+AAM4AAADOAEAAzgCAAM4BAADOAUAAzgWAAM4FwADOBkAAziUAAM4lgADOJgAAziaAAM4nQADOJ4AAzifAAM4oAADOKEAAzijAAM4pQADOKYAAzinAAM4qQADOKoAAzklAAM5JwADOSoAAzksAAM5LwADOTAAAzkxAAM5MgADOTMAAzk1AAM5NwADOTgAAzk5AAM5OwADOTwAAzlVAAM5VgADOVcAAzlZAAM51AADOdYAAznYAAM52gADOd0AAzneAAM53wADOeAAAznhAAM54wADOeUAAznmAAM55wADOekAAznqAAM6ZQADOmcAAzpqAAM6bAADOm8AAzpwAAM6cQADOnIAAzpzAAM6dQADOncAAzp4AAM6eQADOnsAAzp8AAM6lQADOq4AAzrHAAM6ygADOs0AAzrQAAM60wADOtYAAzrZAAM68gADOvUAAzr4AAM6+wADOv4AAzsBAAM7BAADOwYAAzsPAAM7FAADOyIAAzsmAAM7LAADO78AAzviAAM8AgADPCIAAzwkAAM8JgADPCgAAzwqAAM8LQADPC4AAzwvAAM8MgADPDMAAzw1AAM8NgADPDkAAzw8AAM8PQADPD4AAzxBAAM8QgADPEcAAzxgAAM8aQADPGsAAzxtAAM8dgADPHkAAzx8AAM8fgADPMcAAzzrAAM9EgADPTYAAz05AAM9OwADPT0AAz0/AAM9QQADPUMAAz1EAAM9RwADPWAAAz2BAAM9gwADPYUAAz2HAAM9iQADPYsAAz2NAAM9jwADPZEAAz2yAAM9tQADPbgAAz27AAM9vgADPcEAAz3EAAM9xwADPcoAAz3MAAM+RwADPkkAAz5LAAM+TQADPlAAAz5RAAM+UgADPlMAAz5UAAM+VgADPlgAAz5ZAAM+WgADPlwAAz5dAAM+2AADPtoAAz7cAAM+3gADPuEAAz7iAAM+4wADPuQAAz7lAAM+5wADPukAAz7qAAM+6wADPu0AAz7uAAM/aQADP2sAAz9uAAM/cAADP3MAAz90AAM/dQADP3YAAz93AAM/eQADP3sAAz98AAM/fQADP38AAz+AAAM/mQADP5oAAz+bAAM/nQADQBgAA0AaAANAHAADQB4AA0AhAANAIgADQCMAA0AkAANAJQADQCcAA0ApAANAKgADQCsAA0AtAANALgADQKkAA0CrAANArQADQK8AA0CyAANAswADQLQAA0C1AANAtgADQLgAA0C6AANAuwADQLwAA0C+AANAvwADQToAA0E8AANBPgADQUAAA0FDAANBRAADQUUAA0FGAANBRwADQUkAA0FLAANBTAADQU0AA0FPAANBUAADQcsAA0HNAANBzwADQdEAA0HUAANB1QADQdYAA0HXAANB2AADQdoAA0HcAANB3QADQd4AA0HgAANB4QADQlwAA0JeAANCYAADQmIAA0JlAANCZgADQmcAA0JoAANCaQADQmsAA0JtAANCbgADQm8AA0JxAANCcgADQrsAA0LfAANDBgADQyoAA0MtAANDLwADQzEAA0MzAANDNQADQzcAA0M4AANDOwADQ1QAA0NxAANDcwADQ3UAA0N3AANDeQADQ3sAA0N9AANDfwADQ5wAA0OfAANDogADQ6UAA0OoAANDqwADQ64AA0OxAANDswADRC4AA0QwAANEMgADRDQAA0Q3AANEOAADRDkAA0Q6AANEOwADRD0AA0Q/AANEQAADREEAA0RDAANERAADRL8AA0TBAANEwwADRMUAA0TIAANEyQADRMoAA0TLAANEzAADRM4AA0TQAANE0QADRNIAA0TUAANE1QADRVAAA0VSAANFVAADRVYAA0VZAANFWgADRVsAA0VcAANFXQADRV8AA0VhAANFYgADRWMAA0VlAANFZgADReEAA0XjAANF5gADRegAA0XrAANF7AADRe0AA0XuAANF7wADRfEAA0XzAANF9AADRfUAA0X3AANF+AADRnMAA0Z1AANGdwADRnkAA0Z8AANGfQADRn4AA0Z/AANGgAADRoIAA0aEAANGhQADRoYAA0aIAANGiQADRwQAA0cGAANHCAADRwoAA0cNAANHDgADRw8AA0cQAANHEQADRxMAA0cVAANHFgADRxcAA0cZAANHGgADR5UAA0eXAANHmgADR5wAA0efAANHoAADR6EAA0eiAANHowADR6UAA0enAANHqAADR6kAA0erAANHrAADSD8AA0hiAANIggADSKIAA0ikAANIpgADSKgAA0iqAANIrQADSK4AA0ivAANIsgADSLMAA0i1AANItgADSLgAA0i7AANIvAADSL0AA0jAAANIwQADSMYAA0jfAANI6AADSOoAA0jsAANI9QADSPgAA0j7AANI/QADSUYAA0lqAANJkQADSbUAA0m4AANJugADSbwAA0m+AANJwAADScIAA0nDAANJxgADSd8AA0oAAANKAgADSgQAA0oGAANKCAADSgoAA0oMAANKDgADShAAA0oxAANKNAADSjcAA0o6AANKPQADSkAAA0pDAANKRgADSkkAA0pLAANKxgADSsgAA0rKAANKzAADSs8AA0rQAANK0QADStIAA0rTAANK1QADStcAA0rYAANK2QADStsAA0rcAANLVwADS1kAA0tbAANLXQADS2AAA0thAANLYgADS2MAA0tkAANLZgADS2gAA0tpAANLagADS2wAA0ttAANL6AADS+oAA0vtAANL7wADS/IAA0vzAANL9AADS/UAA0v2AANL+AADS/oAA0v7AANL/AADS/4AA0v/AANMGAADTBkAA0waAANMHAADTJcAA0yZAANMmwADTJ0AA0ygAANMoQADTKIAA0yjAANMpAADTKYAA0yoAANMqQADTKoAA0ysAANMrQADTSgAA00qAANNLAADTS4AA00xAANNMgADTTMAA000AANNNQADTTcAA005AANNOgADTTsAA009AANNPgADTbkAA027AANNvQADTb8AA03CAANNwwADTcQAA03FAANNxgADTcgAA03KAANNywADTcwAA03OAANNzwADTkoAA05MAANOTgADTlAAA05TAANOVAADTlUAA05WAANOVwADTlkAA05bAANOXAADTl0AA05fAANOYAADTtsAA07dAANO3wADTuEAA07kAANO5QADTuYAA07nAANO6AADTuoAA07sAANO7QADTu4AA07wAANO8QADTzoAA09eAANPhQADT6kAA0+sAANPrgADT7AAA0+yAANPtAADT7YAA0+3AANPugADT9MAA0/wAANP8gADT/QAA0/2AANP+AADT/oAA0/8AANP/gADUBsAA1AeAANQIQADUCQAA1AnAANQKgADUC0AA1AwAANQMgADUK0AA1CvAANQsQADULMAA1C2AANQtwADULgAA1C5AANQugADULwAA1C+AANQvwADUMAAA1DCAANQwwADUT4AA1FAAANRQgADUUQAA1FHAANRSAADUUkAA1FKAANRSwADUU0AA1FPAANRUAADUVEAA1FTAANRVAADUc8AA1HRAANR0wADUdUAA1HYAANR2QADUdoAA1HbAANR3AADUd4AA1HgAANR4QADUeIAA1HkAANR5QADUmAAA1JiAANSZQADUmcAA1JqAANSawADUmwAA1JtAANSbgADUnAAA1JyAANScwADUnQAA1J2AANSdwADUvIAA1L0AANS9gADUvgAA1L7AANS/AADUv0AA1L+AANS/wADUwEAA1MDAANTBAADUwUAA1MHAANTCAADU4MAA1OFAANThwADU4kAA1OMAANTjQADU44AA1OPAANTkAADU5IAA1OUAANTlQADU5YAA1OYAANTmQADVBQAA1QWAANUGAADVBoAA1QdAANUHgADVB8AA1QgAANUIQADVCMAA1QlAANUJgADVCcAA1QpAANUKgADVL0AA1TgAANVAAADVSAAA1UiAANVJAADVSYAA1UoAANVKwADVSwAA1UtAANVMAADVTEAA1UzAANVNAADVTcAA1U6AANVOwADVTwAA1U/AANVQAADVUkAA1ViAANVawADVW0AA1VvAANVeAADVXsAA1V+AANVgAADVckAA1XtAANWFAADVjgAA1Y7AANWPQADVj8AA1ZBAANWQwADVkUAA1ZGAANWSQADVmIAA1aDAANWhQADVocAA1aJAANWiwADVo0AA1aPAANWkQADVpMAA1a0AANWtwADVroAA1a9AANWwAADVsMAA1bGAANWyQADVswAA1bOAANXSQADV0sAA1dNAANXTwADV1IAA1dTAANXVAADV1UAA1dWAANXWAADV1oAA1dbAANXXAADV14AA1dfAANX2gADV9wAA1feAANX4AADV+MAA1fkAANX5QADV+YAA1fnAANX6QADV+sAA1fsAANX7QADV+8AA1fwAANYawADWG0AA1hwAANYcgADWHUAA1h2AANYdwADWHgAA1h5AANYewADWH0AA1h+AANYfwADWIEAA1iCAANYmwADWJwAA1idAANYnwADWRoAA1kcAANZHgADWSAAA1kjAANZJAADWSUAA1kmAANZJwADWSkAA1krAANZLAADWS0AA1kvAANZMAADWasAA1mtAANZrwADWbEAA1m0AANZtQADWbYAA1m3AANZuAADWboAA1m8AANZvQADWb4AA1nAAANZwQADWjwAA1o+AANaQAADWkIAA1pFAANaRgADWkcAA1pIAANaSQADWksAA1pNAANaTgADWk8AA1pRAANaUgADWs0AA1rPAANa0QADWtMAA1rWAANa1wADWtgAA1rZAANa2gADWtwAA1reAANa3wADWuAAA1riAANa4wADW14AA1tgAANbYgADW2QAA1tnAANbaAADW2kAA1tqAANbawADW20AA1tvAANbcAADW3EAA1tzAANbdAADW70AA1vhAANcCAADXCwAA1wvAANcMQADXDMAA1w1AANcNwADXDkAA1w6AANcPQADXFYAA1xzAANcdQADXHcAA1x5AANcewADXH0AA1x/AANcgQADXJ4AA1yhAANcpAADXKcAA1yqAANcrQADXLAAA1yzAANctQADXTAAA10yAANdNAADXTYAA105AANdOgADXTsAA108AANdPQADXT8AA11BAANdQgADXUMAA11FAANdRgADXcEAA13DAANdxQADXccAA13KAANdywADXcwAA13NAANdzgADXdAAA13SAANd0wADXdQAA13WAANd1wADXlIAA15UAANeVgADXlgAA15bAANeXAADXl0AA15eAANeXwADXmEAA15jAANeZAADXmUAA15nAANeaAADXuMAA17lAANe6AADXuoAA17tAANe7gADXu8AA17wAANe8QADXvMAA171AANe9gADXvcAA175AANe+gADX30AA1+hAANfxQADX+gAA2APAANgLwADYFYAA2B9AANgnQADYMEAA2DlAANg5wADYOoAA2DsAANg7gADYPAAA2DzAANg9gADYPgAA2D6AANg/QADYP8AA2EBAANhBAADYQcAA2EIAANhDQADYSYAA2ErAANhLQADYTIAA2E1AANhNwADYYAAA2GkAANhywADYe8AA2HyAANh9AADYfYAA2H4AANh+gADYfwAA2H9AANiAAADYhkAA2I+AANiQAADYkIAA2JEAANiRgADYkgAA2JKAANiTAADYk4AA2JQAANidQADYngAA2J7AANifgADYoEAA2KEAANihwADYooAA2KNAANikAADYpIAA2MNAANjDwADYxIAA2MUAANjFwADYxgAA2MZAANjGgADYxsAA2MdAANjHwADYyAAA2MhAANjIwADYyQAA2M1AANjNgADYzgAA2OzAANjtQADY7cAA2O5AANjvAADY70AA2O+AANjvwADY8AAA2PCAANjxAADY8UAA2PGAANjyAADY8kAA2REAANkRgADZEkAA2RLAANkTgADZE8AA2RQAANkUQADZFIAA2RUAANkVgADZFcAA2RYAANkWgADZFsAA2RsAANkcQADZHQAA2R2AANkhwADZIwAA2SPAANkkQADZJgAA2UTAANlFQADZRcAA2UZAANlHAADZR0AA2UeAANlHwADZSAAA2UiAANlJAADZSUAA2UmAANlKAADZSkAA2WkAANlpgADZakAA2WrAANlrgADZa8AA2WwAANlsQADZbIAA2W0AANltgADZbcAA2W4AANlugADZbsAA2XMAANlzQADZc8AA2ZKAANmTAADZk4AA2ZQAANmUwADZlQAA2ZVAANmVgADZlcAA2ZZAANmWwADZlwAA2ZdAANmXwADZmAAA2bbAANm3QADZuAAA2biAANm5QADZuYAA2bnAANm6AADZukAA2brAANm7QADZu4AA2bvAANm8QADZvIAA2cLAANnDAADZw0AA2cPAANnigADZ4wAA2eOAANnkAADZ5MAA2eUAANnlQADZ5YAA2eXAANnmQADZ5sAA2ecAANnnQADZ58AA2egAANoGwADaB0AA2gfAANoIQADaCQAA2glAANoJgADaCcAA2goAANoKgADaCwAA2gtAANoLgADaDAAA2gxAANoSgADaFsAA2heAANoYQADaGQAA2hnAANoeAADaHsAA2h+AANogQADaIQAA2iGAANomgADaLkAA2jNAANpYAADaYMAA2mjAANpwwADacUAA2nHAANpyQADacsAA2nOAANpzwADadAAA2nTAANp1AADadYAA2nXAANp2QADadwAA2ndAANp3gADaeEAA2niAANp5wADagAAA2oJAANqCwADag0AA2oWAANqGQADahwAA2oeAANqZwADaosAA2qyAANq1gADatkAA2rbAANq3QADat8AA2rhAANq4wADauQAA2rnAANrAAADayEAA2sjAANrJQADaycAA2spAANrKwADay0AA2svAANrMQADa1IAA2tVAANrWAADa1sAA2teAANrYQADa2QAA2tnAANragADa2wAA2vnAANr6QADa+sAA2vtAANr8AADa/EAA2vyAANr8wADa/QAA2v2AANr+AADa/kAA2v6AANr/AADa/0AA2x4AANsegADbHwAA2x+AANsgQADbIIAA2yDAANshAADbIUAA2yHAANsiQADbIoAA2yLAANsjQADbI4AA20JAANtCwADbQ4AA20QAANtEwADbRQAA20VAANtFgADbRcAA20ZAANtGwADbRwAA20dAANtHwADbSAAA205AANtOgADbTsAA209AANtuAADbboAA228AANtvgADbcEAA23CAANtwwADbcQAA23FAANtxwADbckAA23KAANtywADbc0AA23OAANuSQADbksAA25NAANuTwADblIAA25TAANuVAADblUAA25WAANuWAADbloAA25bAANuXAADbl4AA25fAANu2gADbtwAA27eAANu4AADbuMAA27kAANu5QADbuYAA27nAANu6QADbusAA27sAANu7QADbu8AA27wAANvawADb20AA29vAANvcQADb3QAA291AANvdgADb3cAA294AANvegADb3wAA299AANvfgADb4AAA2+BAANv/AADb/4AA3AAAANwAgADcAUAA3AGAANwBwADcAgAA3AJAANwCwADcA0AA3AOAANwDwADcBEAA3ASAANwWwADcH8AA3CmAANwygADcM0AA3DPAANw0QADcNMAA3DVAANw1wADcNgAA3DbAANw9AADcREAA3ETAANxFQADcRcAA3EZAANxGwADcR0AA3EfAANxPAADcT8AA3FCAANxRQADcUgAA3FLAANxTgADcVEAA3FTAANxzgADcdAAA3HSAANx1AADcdcAA3HYAANx2QADcdoAA3HbAANx3QADcd8AA3HgAANx4QADceMAA3HkAANyXwADcmEAA3JjAANyZQADcmgAA3JpAANyagADcmsAA3JsAANybgADcnAAA3JxAANycgADcnQAA3J1AANy8AADcvIAA3L0AANy9gADcvkAA3L6AANy+wADcvwAA3L9AANy/wADcwEAA3MCAANzAwADcwUAA3MGAANzgQADc4MAA3OGAANziAADc4sAA3OMAANzjQADc44AA3OPAANzkQADc5MAA3OUAANzlQADc5cAA3OYAAN0EwADdBUAA3QXAAN0GQADdBwAA3QdAAN0HgADdB8AA3QgAAN0IgADdCQAA3QlAAN0JgADdCgAA3QpAAN0pAADdKYAA3SoAAN0qgADdK0AA3SuAAN0rwADdLAAA3SxAAN0swADdLUAA3S2AAN0twADdLkAA3S6AAN1NQADdTcAA3U5AAN1OwADdT4AA3U/AAN1QAADdUEAA3VCAAN1RAADdUYAA3VHAAN1SAADdUoAA3VLAAN13gADdgEAA3YhAAN2QQADdkMAA3ZFAAN2RwADdkkAA3ZMAAN2TQADdk4AA3ZRAAN2UgADdlQAA3ZVAAN2WAADdlsAA3ZcAAN2XQADdmAAA3ZhAAN2ZgADdn8AA3aIAAN2igADdowAA3aVAAN2mAADdpsAA3adAAN25gADdwoAA3cxAAN3VQADd1gAA3daAAN3XAADd14AA3dgAAN3YgADd2MAA3dmAAN3fwADd6AAA3eiAAN3pAADd6YAA3eoAAN3qgADd6wAA3euAAN3sAADd9EAA3fUAAN31wADd9oAA3fdAAN34AADd+MAA3fmAAN36QADd+sAA3hmAAN4aAADeGoAA3hsAAN4bwADeHAAA3hxAAN4cgADeHMAA3h1AAN4dwADeHgAA3h5AAN4ewADeHwAA3j3AAN4+QADePsAA3j9AAN5AAADeQEAA3kCAAN5AwADeQQAA3kGAAN5CAADeQkAA3kKAAN5DAADeQ0AA3mIAAN5igADeY0AA3mPAAN5kgADeZMAA3mUAAN5lQADeZYAA3mYAAN5mgADeZsAA3mcAAN5ngADeZ8AA3m4AAN5uQADeboAA3m8AAN6NwADejkAA3o7AAN6PQADekAAA3pBAAN6QgADekMAA3pEAAN6RgADekgAA3pJAAN6SgADekwAA3pNAAN6yAADesoAA3rMAAN6zgADetEAA3rSAAN60wADetQAA3rVAAN61wADetkAA3raAAN62wADet0AA3reAAN7WQADe1sAA3tdAAN7XwADe2IAA3tjAAN7ZAADe2UAA3tmAAN7aAADe2oAA3trAAN7bAADe24AA3tvAAN76gADe+wAA3vuAAN78AADe/MAA3v0AAN79QADe/YAA3v3AAN7+QADe/sAA3v8AAN7/QADe/8AA3wAAAN8ewADfH0AA3x/AAN8gQADfIQAA3yFAAN8hgADfIcAA3yIAAN8igADfIwAA3yNAAN8jgADfJAAA3yRAAN82gADfP4AA30lAAN9SQADfUwAA31OAAN9UAADfVIAA31UAAN9VgADfVcAA31aAAN9cwADfZAAA32SAAN9lAADfZYAA32YAAN9mgADfZwAA32eAAN9uwADfb4AA33BAAN9xAADfccAA33KAAN9zQADfdAAA33SAAN+TQADfk8AA35RAAN+UwADflYAA35XAAN+WAADflkAA35aAAN+XAADfl4AA35fAAN+YAADfmIAA35jAAN+3gADfuAAA37jAAN+5QADfugAA37pAAN+6gADfusAA37sAAN+7gADfvAAA37xAAN+8gADfvQAA371AAN/cAADf3IAA390AAN/dgADf3kAA396AAN/ewADf3wAA399AAN/fwADf4EAA3+CAAN/gwADf4UAA3+GAAOAAQADgAMAA4AGAAOACAADgAsAA4AMAAOADQADgA4AA4APAAOAEQADgBMAA4AUAAOAFQADgBcAA4AYAAOAuwADgN8AA4EDAAOBIwADgUoAA4FxAAOBkQADgbgAA4HcAAOB/wADgiYAA4JKAAOCbgADgpIAA4K5AAOCugADgrwAA4K+AAOCwQADgsMAA4LGAAOCyAADgsoAA4LNAAOCzwADgtEAA4LUAAOC1wADgtkAA4LbAAOC3QADguAAA4LjAAOC5gADgusAA4MEAAODCQADgwsAA4MQAAODEwADgxUAA4NeAAODggADg6kAA4PNAAOD0AADg9IAA4PUAAOD1gADg9gAA4PaAAOD2wADg94AA4P3AAOEHAADhB4AA4QgAAOEIgADhCQAA4QmAAOEKAADhCoAA4QsAAOELgADhFMAA4RWAAOEWQADhFwAA4RfAAOEYgADhGUAA4RoAAOEawADhG4AA4RwAAOE6wADhO0AA4TwAAOE8gADhPUAA4T2AAOE9wADhPgAA4T5AAOE+wADhP0AA4T+AAOE/wADhQEAA4UCAAOFEwADhRQAA4UWAAOFkQADhZMAA4WVAAOFlwADhZoAA4WbAAOFnAADhZ0AA4WeAAOFoAADhaIAA4WjAAOFpAADhaYAA4WnAAOGIgADhiQAA4YnAAOGKQADhiwAA4YtAAOGLgADhi8AA4YwAAOGMgADhjQAA4Y1AAOGNgADhjgAA4Y5AAOGSgADhksAA4ZNAAOGyAADhsoAA4bMAAOGzgADhtEAA4bSAAOG0wADhtQAA4bVAAOG1wADhtkAA4baAAOG2wADht0AA4beAAOHWQADh1sAA4deAAOHYAADh2MAA4dkAAOHZQADh2YAA4dnAAOHaQADh2sAA4dsAAOHbQADh28AA4dwAAOHgQADh4IAA4eEAAOH/wADiAEAA4gDAAOIBQADiAgAA4gJAAOICgADiAsAA4gMAAOIDgADiBAAA4gRAAOIEgADiBQAA4gVAAOIkAADiJIAA4iVAAOIlwADiJoAA4ibAAOInAADiJ0AA4ieAAOIoAADiKIAA4ijAAOIpAADiKYAA4inAAOIwAADiMEAA4jCAAOIxAADiT8AA4lBAAOJQwADiUUAA4lIAAOJSQADiUoAA4lLAAOJTAADiU4AA4lQAAOJUQADiVIAA4lUAAOJVQADidAAA4nSAAOJ1QADidcAA4naAAOJ2wADidwAA4ndAAOJ3gADieAAA4niAAOJ4wADieQAA4nmAAOJ5wADigMAA4ocAAOKTQADilAAA4pTAAOKVgADilkAA4pcAAOKXwADimIAA4plAAOKaAADimsAA4puAAOKcQADiqIAA4qlAAOKqAADiqsAA4quAAOKsQADirQAA4q3AAOKugADir0AA4rAAAOKwwADisYAA4rIAAOK2wADiuYAA4r0AAOLDQADixUAA4spAAOLOAADi8sAA4vuAAOMDgADjC4AA4wwAAOMMgADjDQAA4w2AAOMOQADjDoAA4w7AAOMPgADjD8AA4xBAAOMQgADjEQAA4xHAAOMSAADjEkAA4xMAAOMTQADjFIAA4xrAAOMdAADjHYAA4x4AAOMgQADjIQAA4yHAAOMiQADjNIAA4z2AAONHQADjUEAA41EAAONRgADjUgAA41KAAONTAADjU4AA41PAAONUgADjWsAA42MAAONjgADjZAAA42SAAONlAADjZYAA42YAAONmgADjZwAA429AAONwAADjcMAA43GAAONyQADjcwAA43PAAON0gADjdUAA43XAAOOUgADjlQAA45WAAOOWAADjlsAA45cAAOOXQADjl4AA45fAAOOYQADjmMAA45kAAOOZQADjmcAA45oAAOO4wADjuUAA47nAAOO6QADjuwAA47tAAOO7gADju8AA47wAAOO8gADjvQAA471AAOO9gADjvgAA475AAOPdAADj3YAA495AAOPewADj34AA49/AAOPgAADj4EAA4+CAAOPhAADj4YAA4+HAAOPiAADj4oAA4+LAAOPpAADj6UAA4+mAAOPqAADkCMAA5AlAAOQJwADkCkAA5AsAAOQLQADkC4AA5AvAAOQMAADkDIAA5A0AAOQNQADkDYAA5A4AAOQOQADkLQAA5C2AAOQuAADkLoAA5C9AAOQvgADkL8AA5DAAAOQwQADkMMAA5DFAAOQxgADkMcAA5DJAAOQygADkUUAA5FHAAORSQADkUsAA5FOAAORTwADkVAAA5FRAAORUgADkVQAA5FWAAORVwADkVgAA5FaAAORWwADkdYAA5HYAAOR2gADkdwAA5HfAAOR4AADkeEAA5HiAAOR4wADkeUAA5HnAAOR6AADkekAA5HrAAOR7AADkmcAA5JpAAOSawADkm0AA5JwAAOScQADknIAA5JzAAOSdAADknYAA5J4AAOSeQADknoAA5J8AAOSfQADksYAA5LqAAOTEQADkzUAA5M4AAOTOgADkzwAA5M+AAOTQAADk0IAA5NDAAOTRgADk18AA5N8AAOTfgADk4AAA5OCAAOThAADk4YAA5OIAAOTigADk6cAA5OqAAOTrQADk7AAA5OzAAOTtgADk7kAA5O8AAOTvgADlDkAA5Q7AAOUPgADlEAAA5RDAAOURAADlEUAA5RGAAOURwADlEkAA5RLAAOUTAADlE0AA5RPAAOUUAADlMsAA5TNAAOUzwADlNEAA5TUAAOU1QADlNYAA5TXAAOU2AADlNoAA5TcAAOU3QADlN4AA5TgAAOU4QADlVwAA5VeAAOVYQADlWMAA5VmAAOVZwADlWgAA5VpAAOVagADlWwAA5VuAAOVbwADlXAAA5VyAAOVcwADle4AA5XwAAOV8wADlfUAA5X4AAOV+QADlfoAA5X7AAOV/AADlf4AA5YAAAOWAQADlgIAA5YEAAOWBQADloAAA5aCAAOWhAADloYAA5aJAAOWigADlosAA5aMAAOWjQADlo8AA5aRAAOWkgADlpMAA5aVAAOWlgADlxEAA5cTAAOXFQADlxcAA5caAAOXGwADlxwAA5cdAAOXHgADlyAAA5ciAAOXIwADlyQAA5cmAAOXJwADl6IAA5ekAAOXpgADl6gAA5erAAOXrAADl60AA5euAAOXrwADl7EAA5ezAAOXtAADl7UAA5e3AAOXuAADmEsAA5huAAOYjgADmK4AA5iwAAOYsgADmLQAA5i2AAOYuQADmLoAA5i7AAOYvgADmL8AA5jBAAOYwgADmMQAA5jHAAOYyAADmMkAA5jMAAOYzQADmNIAA5jrAAOY9AADmPYAA5j4AAOZAQADmQQAA5kHAAOZCQADmVIAA5l2AAOZnQADmcEAA5nEAAOZxgADmcgAA5nKAAOZzAADmc4AA5nPAAOZ0gADmesAA5oMAAOaDgADmhAAA5oSAAOaFAADmhYAA5oYAAOaGgADmhwAA5o9AAOaQAADmkMAA5pGAAOaSQADmkwAA5pPAAOaUgADmlUAA5pXAAOa0gADmtQAA5rWAAOa2AADmtsAA5rcAAOa3QADmt4AA5rfAAOa4QADmuMAA5rkAAOa5QADmucAA5roAAObYwADm2UAA5tnAAObaQADm2wAA5ttAAObbgADm28AA5twAAObcgADm3QAA5t1AAObdgADm3gAA5t5AAOb9AADm/YAA5v5AAOb+wADm/4AA5v/AAOcAAADnAEAA5wCAAOcBAADnAYAA5wHAAOcCAADnAoAA5wLAAOcJAADnCUAA5wmAAOcKAADnKMAA5ylAAOcpwADnKkAA5ysAAOcrQADnK4AA5yvAAOcsAADnLIAA5y0AAOctQADnLYAA5y4AAOcuQADnTQAA502AAOdOAADnToAA509AAOdPgADnT8AA51AAAOdQQADnUMAA51FAAOdRgADnUcAA51JAAOdSgADncUAA53HAAOdyQADncsAA53OAAOdzwADndAAA53RAAOd0gADndQAA53WAAOd1wADndgAA53aAAOd2wADnlYAA55YAAOeWgADnlwAA55fAAOeYAADnmEAA55iAAOeYwADnmUAA55nAAOeaAADnmkAA55rAAOebAADnucAA57pAAOe6wADnu0AA57wAAOe8QADnvIAA57zAAOe9AADnvYAA574AAOe+QADnvoAA578AAOe/QADn0YAA59qAAOfkQADn7UAA5+4AAOfugADn7wAA5++AAOfwAADn8IAA5/DAAOfxgADn98AA5/8AAOf/gADoAAAA6ACAAOgBAADoAYAA6AIAAOgCgADoCcAA6AqAAOgLQADoDAAA6AzAAOgNgADoDkAA6A8AAOgPgADoLkAA6C7AAOgvQADoL8AA6DCAAOgwwADoMQAA6DFAAOgxgADoMgAA6DKAAOgywADoMwAA6DOAAOgzwADoUoAA6FMAAOhTgADoVAAA6FTAAOhVAADoVUAA6FWAAOhVwADoVkAA6FbAAOhXAADoV0AA6FfAAOhYAADodsAA6HdAAOh3wADoeEAA6HkAAOh5QADoeYAA6HnAAOh6AADoeoAA6HsAAOh7QADoe4AA6HwAAOh8QADomwAA6JuAAOicQADonMAA6J2AAOidwADongAA6J5AAOiegADonwAA6J+AAOifwADooAAA6KCAAOigwADov4AA6MAAAOjAgADowQAA6MHAAOjCAADowkAA6MKAAOjCwADow0AA6MPAAOjEAADoxEAA6MTAAOjFAADo48AA6ORAAOjkwADo5UAA6OYAAOjmQADo5oAA6ObAAOjnAADo54AA6OgAAOjoQADo6IAA6OkAAOjpQADpCAAA6QiAAOkJAADpCYAA6QpAAOkKgADpCsAA6QsAAOkLQADpC8AA6QxAAOkMgADpDMAA6Q1AAOkNgADpMkAA6TsAAOlDAADpSwAA6UuAAOlMAADpTIAA6U0AAOlNwADpTgAA6U5AAOlPAADpT0AA6U/AAOlQAADpUIAA6VFAAOlRgADpUcAA6VKAAOlSwADpVAAA6VpAAOlcgADpXQAA6V2AAOlfwADpYIAA6WFAAOlhwADpdAAA6X0AAOmGwADpj8AA6ZCAAOmRAADpkYAA6ZIAAOmSgADpkwAA6ZNAAOmUAADpmkAA6aKAAOmjAADpo4AA6aQAAOmkgADppQAA6aWAAOmmAADppoAA6a7AAOmvgADpsEAA6bEAAOmxwADpsoAA6bNAAOm0AADptMAA6bVAAOnUAADp1IAA6dUAAOnVgADp1kAA6daAAOnWwADp1wAA6ddAAOnXwADp2EAA6diAAOnYwADp2UAA6dmAAOn4QADp+MAA6flAAOn5wADp+oAA6frAAOn7AADp+0AA6fuAAOn8AADp/IAA6fzAAOn9AADp/YAA6f3AAOocgADqHQAA6h3AAOoeQADqHwAA6h9AAOofgADqH8AA6iAAAOoggADqIQAA6iFAAOohgADqIgAA6iJAAOoogADqKMAA6ikAAOopgADqSEAA6kjAAOpJQADqScAA6kqAAOpKwADqSwAA6ktAAOpLgADqTAAA6kyAAOpMwADqTQAA6k2AAOpNwADqbIAA6m0AAOptgADqbgAA6m7AAOpvAADqb0AA6m+AAOpvwADqcEAA6nDAAOpxAADqcUAA6nHAAOpyAADqkMAA6pFAAOqRwADqkkAA6pMAAOqTQADqk4AA6pPAAOqUAADqlIAA6pUAAOqVQADqlYAA6pYAAOqWQADqtQAA6rWAAOq2AADqtoAA6rdAAOq3gADqt8AA6rgAAOq4QADquMAA6rlAAOq5gADqucAA6rpAAOq6gADq2UAA6tnAAOraQADq2sAA6tuAAOrbwADq3AAA6txAAOrcgADq3QAA6t2AAOrdwADq3gAA6t6AAOrewADq8QAA6voAAOsDwADrDMAA6w2AAOsOAADrDoAA6w8AAOsPgADrEAAA6xBAAOsRAADrF0AA6x6AAOsfAADrH4AA6yAAAOsggADrIQAA6yGAAOsiAADrKUAA6yoAAOsqwADrK4AA6yxAAOstAADrLcAA6y6AAOsvAADrTcAA605AAOtPAADrT4AA61BAAOtQgADrUMAA61EAAOtRQADrUcAA61JAAOtSgADrUsAA61NAAOtTgADrVIAA63NAAOtzwADrdEAA63TAAOt1gADrdcAA63YAAOt2QADrdoAA63cAAOt3gADrd8AA63gAAOt4gADreMAA65eAAOuYAADrmIAA65kAAOuZwADrmgAA65pAAOuagADrmsAA65tAAOubwADrnAAA65xAAOucwADrnQAA67vAAOu8QADrvQAA672AAOu+QADrvoAA677AAOu/AADrv0AA67/AAOvAQADrwIAA68DAAOvBQADrwYAA6+BAAOvgwADr4UAA6+HAAOvigADr4sAA6+MAAOvjQADr44AA6+QAAOvkgADr5MAA6+UAAOvlgADr5cAA7ASAAOwFAADsBYAA7AYAAOwGwADsBwAA7AdAAOwHgADsB8AA7AhAAOwIwADsCQAA7AlAAOwJwADsCgAA7CjAAOwpQADsKcAA7CpAAOwrAADsK0AA7CuAAOwrwADsLAAA7CyAAOwtAADsLUAA7C2AAOwuAADsLkAA7FMAAOxbwADsY8AA7GvAAOxsQADsbMAA7G1AAOxtwADsboAA7G7AAOxvAADsb8AA7HAAAOxwgADscMAA7HFAAOxyAADsckAA7HKAAOxzQADsc4AA7HTAAOx7AADsfUAA7H3AAOx+QADsgIAA7IFAAOyCAADsgoAA7JTAAOydwADsp4AA7LCAAOyxQADsscAA7LJAAOyywADss0AA7LPAAOy0AADstMAA7LsAAOzDQADsw8AA7MRAAOzEwADsxUAA7MXAAOzGQADsxsAA7MdAAOzPgADs0EAA7NEAAOzRwADs0oAA7NNAAOzUAADs1MAA7NWAAOzWAADs9MAA7PVAAOz1wADs9kAA7PcAAOz3QADs94AA7PfAAOz4AADs+IAA7PkAAOz5QADs+YAA7PoAAOz6QADtGQAA7RmAAO0aAADtGoAA7RtAAO0bgADtG8AA7RwAAO0cQADtHMAA7R1AAO0dgADtHcAA7R5AAO0egADtPUAA7T3AAO0+gADtPwAA7T/AAO1AAADtQEAA7UCAAO1AwADtQUAA7UHAAO1CAADtQkAA7ULAAO1DAADtSUAA7UmAAO1JwADtSkAA7WkAAO1pgADtagAA7WqAAO1rQADta4AA7WvAAO1sAADtbEAA7WzAAO1tQADtbYAA7W3AAO1uQADtboAA7Y1AAO2NwADtjkAA7Y7AAO2PgADtj8AA7ZAAAO2QQADtkIAA7ZEAAO2RgADtkcAA7ZIAAO2SgADtksAA7bGAAO2yAADtsoAA7bMAAO2zwADttAAA7bRAAO20gADttMAA7bVAAO21wADttgAA7bZAAO22wADttwAA7dXAAO3WQADt1sAA7ddAAO3YAADt2EAA7diAAO3YwADt2QAA7dmAAO3aAADt2kAA7dqAAO3bAADt20AA7foAAO36gADt+wAA7fuAAO38QADt/IAA7fzAAO39AADt/UAA7f3AAO3+QADt/oAA7f7AAO3/QADt/4AA7hHAAO4awADuJIAA7i2AAO4uQADuLsAA7i9AAO4vwADuMEAA7jDAAO4xAADuMcAA7jgAAO4/QADuP8AA7kBAAO5AwADuQUAA7kHAAO5CQADuQsAA7koAAO5KwADuS4AA7kxAAO5NAADuTcAA7k6AAO5PQADuT8AA7m6AAO5vAADub8AA7nBAAO5xAADucUAA7nGAAO5xwADucgAA7nKAAO5zAADuc0AA7nOAAO50AADudEAA7pMAAO6TgADulAAA7pSAAO6VQADulYAA7pXAAO6WAADulkAA7pbAAO6XQADul4AA7pfAAO6YQADumIAA7rdAAO63wADuuEAA7rjAAO65gADuucAA7roAAO66QADuuoAA7rsAAO67gADuu8AA7rwAAO68gADuvMAA7tuAAO7cAADu3MAA7t1AAO7eAADu3kAA7t6AAO7ewADu3wAA7t+AAO7gAADu4EAA7uCAAO7hAADu4UAA7wAAAO8AgADvAQAA7wGAAO8CQADvAoAA7wLAAO8DAADvA0AA7wPAAO8EQADvBIAA7wTAAO8FQADvBYAA7yRAAO8kwADvJUAA7yXAAO8mgADvJsAA7ycAAO8nQADvJ4AA7ygAAO8ogADvKMAA7ykAAO8pgADvKcAA70iAAO9JAADvSYAA70oAAO9KwADvSwAA70tAAO9LgADvS8AA70xAAO9MwADvTQAA701AAO9NwADvTgAA73LAAO97gADvg4AA74uAAO+MAADvjIAA740AAO+NgADvjkAA746AAO+OwADvj4AA74/AAO+QQADvkIAA75EAAO+RwADvkgAA75JAAO+TAADvk0AA75SAAO+awADvnQAA752AAO+eAADvoEAA76EAAO+hwADvokAA77SAAO+9gADvx0AA79BAAO/RAADv0YAA79IAAO/SgADv0wAA79OAAO/TwADv1IAA79rAAO/jAADv44AA7+QAAO/kgADv5QAA7+WAAO/mAADv5oAA7+cAAO/vQADv8AAA7/DAAO/xgADv8kAA7/MAAO/zwADv9IAA7/VAAO/1wADwFIAA8BUAAPAVgADwFgAA8BbAAPAXAADwF0AA8BeAAPAXwADwGEAA8BjAAPAZAADwGUAA8BnAAPAaAADwOMAA8DlAAPA5wADwOkAA8DsAAPA7QADwO4AA8DvAAPA8AADwPIAA8D0AAPA9QADwPYAA8D4AAPA+QADwXQAA8F2AAPBeQADwXsAA8F+AAPBfwADwYAAA8GBAAPBggADwYQAA8GGAAPBhwADwYgAA8GKAAPBiwADwaQAA8GlAAPBpgADwagAA8IjAAPCJQADwicAA8IpAAPCLAADwi0AA8IuAAPCLwADwjAAA8IyAAPCNAADwjUAA8I2AAPCOAADwjkAA8K0AAPCtgADwrgAA8K6AAPCvQADwr4AA8K/AAPCwAADwsEAA8LDAAPCxQADwsYAA8LHAAPCyQADwsoAA8NFAAPDRwADw0kAA8NLAAPDTgADw08AA8NQAAPDUQADw1IAA8NUAAPDVgADw1cAA8NYAAPDWgADw1sAA8PWAAPD2AADw9oAA8PcAAPD3wADw+AAA8PhAAPD4gADw+MAA8PlAAPD5wADw+gAA8PpAAPD6wADw+wAA8RnAAPEaQADxGsAA8RtAAPEcAADxHEAA8RyAAPEcwADxHQAA8R2AAPEeAADxHkAA8R6AAPEfAADxH0AA8TGAAPE6gADxREAA8U1AAPFOAADxToAA8U8AAPFPgADxUAAA8VCAAPFQwADxUYAA8VfAAPFfAADxX4AA8WAAAPFggADxYQAA8WGAAPFiAADxYoAA8WnAAPFqgADxa0AA8WwAAPFswADxbYAA8W5AAPFvAADxb4AA8Y5AAPGOwADxj0AA8Y/AAPGQgADxkMAA8ZEAAPGRQADxkYAA8ZIAAPGSgADxksAA8ZMAAPGTgADxk8AA8bKAAPGzAADxs4AA8bQAAPG0wADxtQAA8bVAAPG1gADxtcAA8bZAAPG2wADxtwAA8bdAAPG3wADxuAAA8dbAAPHXQADx18AA8dhAAPHZAADx2UAA8dmAAPHZwADx2gAA8dqAAPHbAADx20AA8duAAPHcAADx3EAA8fsAAPH7gADx/EAA8fzAAPH9gADx/cAA8f4AAPH+QADx/oAA8f8AAPH/gADx/8AA8gAAAPIAgADyAMAA8h+AAPIgAADyIIAA8iEAAPIhwADyIgAA8iJAAPIigADyIsAA8iNAAPIjwADyJAAA8iRAAPIkwADyJQAA8kPAAPJEQADyRMAA8kVAAPJGAADyRkAA8kaAAPJGwADyRwAA8keAAPJIAADySEAA8kiAAPJJAADySUAA8mgAAPJogADyaQAA8mmAAPJqQADyaoAA8mrAAPJrAADya0AA8mvAAPJsQADybIAA8mzAAPJtQADybYAA8pJAAPKbAADyowAA8qsAAPKrgADyrAAA8qyAAPKtAADyrcAA8q4AAPKuQADyrwAA8q9AAPKvwADysAAA8rCAAPKxQADysYAA8rHAAPKygADyssAA8rQAAPK6QADyvIAA8r0AAPK9gADyv8AA8sCAAPLBQADywcAA8tQAAPLdAADy5sAA8u/AAPLwgADy8QAA8vGAAPLyAADy8oAA8vMAAPLzQADy9AAA8vpAAPMCgADzAwAA8wOAAPMEAADzBIAA8wUAAPMFgADzBgAA8waAAPMOwADzD4AA8xBAAPMRAADzEcAA8xKAAPMTQADzFAAA8xTAAPMVQADzNAAA8zSAAPM1AADzNYAA8zZAAPM2gADzNsAA8zcAAPM3QADzN8AA8zhAAPM4gADzOMAA8zlAAPM5gADzWEAA81jAAPNZQADzWcAA81qAAPNawADzWwAA81tAAPNbgADzXAAA81yAAPNcwADzXQAA812AAPNdwADzfIAA830AAPN9wADzfkAA838AAPN/QADzf4AA83/AAPOAAADzgIAA84EAAPOBQADzgYAA84IAAPOCQADziIAA84jAAPOJAADziYAA86hAAPOowADzqUAA86nAAPOqgADzqsAA86sAAPOrQADzq4AA86wAAPOsgADzrMAA860AAPOtgADzrcAA88yAAPPNAADzzYAA884AAPPOwADzzwAA889AAPPPgADzz8AA89BAAPPQwADz0QAA89FAAPPRwADz0gAA8/DAAPPxQADz8cAA8/JAAPPzAADz80AA8/OAAPPzwADz9AAA8/SAAPP1AADz9UAA8/WAAPP2AADz9kAA9BUAAPQVgAD0FgAA9BaAAPQXQAD0F4AA9BfAAPQYAAD0GEAA9BjAAPQZQAD0GYAA9BnAAPQaQAD0GoAA9DlAAPQ5wAD0OkAA9DrAAPQ7gAD0O8AA9DwAAPQ8QAD0PIAA9D0AAPQ9gAD0PcAA9D4AAPQ+gAD0PsAA9FEAAPRaAAD0Y8AA9GzAAPRtgAD0bgAA9G6AAPRvAAD0b4AA9HAAAPRwQAD0cQAA9HdAAPR+gAD0fwAA9H+AAPSAAAD0gIAA9IEAAPSBgAD0ggAA9IlAAPSKAAD0isAA9IuAAPSMQAD0jQAA9I3AAPSOgAD0jwAA9K3AAPSuQAD0rwAA9K+AAPSwQAD0sIAA9LDAAPSxAAD0sUAA9LHAAPSyQAD0soAA9LLAAPSzQAD0s4AA9NJAAPTSwAD000AA9NPAAPTUgAD01MAA9NUAAPTVQAD01YAA9NYAAPTWgAD01sAA9NcAAPTXgAD018AA9PaAAPT3AAD094AA9PgAAPT4wAD0+QAA9PlAAPT5gAD0+cAA9PpAAPT6wAD0+wAA9PtAAPT7wAD0/AAA9RrAAPUbQAD1HAAA9RyAAPUdQAD1HYAA9R3AAPUeAAD1HkAA9R7AAPUfQAD1H4AA9R/AAPUgQAD1IIAA9T9AAPU/wAD1QEAA9UDAAPVBgAD1QcAA9UIAAPVCQAD1QoAA9UMAAPVDgAD1Q8AA9UQAAPVEgAD1RMAA9WOAAPVkAAD1ZIAA9WUAAPVlwAD1ZgAA9WZAAPVmgAD1ZsAA9WdAAPVnwAD1aAAA9WhAAPVowAD1aQAA9YfAAPWIQAD1iMAA9YlAAPWKAAD1ikAA9YqAAPWKwAD1iwAA9YuAAPWMAAD1jEAA9YyAAPWNAAD1jUAA9bIAAPW6wAD1wsAA9crAAPXLQAD1y8AA9cxAAPXMwAD1zYAA9c3AAPXOAAD1zsAA9c8AAPXPgAD1z8AA9dBAAPXRAAD10UAA9dGAAPXSQAD10oAA9dPAAPXaAAD13EAA9dzAAPXdQAD134AA9eBAAPXhAAD14YAA9fPAAPX8wAD2BoAA9g+AAPYQQAD2EMAA9hFAAPYRwAD2EkAA9hLAAPYTAAD2E8AA9hoAAPYiQAD2IsAA9iNAAPYjwAD2JEAA9iTAAPYlQAD2JcAA9iZAAPYugAD2L0AA9jAAAPYwwAD2MYAA9jJAAPYzAAD2M8AA9jSAAPY1AAD2U8AA9lRAAPZUwAD2VUAA9lYAAPZWQAD2VoAA9lbAAPZXAAD2V4AA9lgAAPZYQAD2WIAA9lkAAPZZQAD2eAAA9niAAPZ5AAD2eYAA9npAAPZ6gAD2esAA9nsAAPZ7QAD2e8AA9nxAAPZ8gAD2fMAA9n1AAPZ9gAD2nEAA9pzAAPadgAD2ngAA9p7AAPafAAD2n0AA9p+AAPafwAD2oEAA9qDAAPahAAD2oUAA9qHAAPaiAAD2qEAA9qiAAPaowAD2qUAA9sgAAPbIgAD2yQAA9smAAPbKQAD2yoAA9srAAPbLAAD2y0AA9svAAPbMQAD2zIAA9szAAPbNQAD2zYAA9uxAAPbswAD27UAA9u3AAPbugAD27sAA9u8AAPbvQAD274AA9vAAAPbwgAD28MAA9vEAAPbxgAD28cAA9xCAAPcRAAD3EYAA9xIAAPcSwAD3EwAA9xNAAPcTgAD3E8AA9xRAAPcUwAD3FQAA9xVAAPcVwAD3FgAA9zTAAPc1QAD3NcAA9zZAAPc3AAD3N0AA9zeAAPc3wAD3OAAA9ziAAPc5AAD3OUAA9zmAAPc6AAD3OkAA91kAAPdZgAD3WgAA91qAAPdbQAD3W4AA91vAAPdcAAD3XEAA91zAAPddQAD3XYAA913AAPdeQAD3XoAA93DAAPd5wAD3g4AA94yAAPeNQAD3jcAA945AAPeOwAD3j0AA94/AAPeQAAD3kMAA95cAAPeeQAD3nsAA959AAPefwAD3oEAA96DAAPehQAD3ocAA96kAAPepwAD3qoAA96tAAPesAAD3rMAA962AAPeuQAD3rsAA982AAPfOAAD3zoAA988AAPfPwAD30AAA99BAAPfQgAD30MAA99FAAPfRwAD30gAA99JAAPfSwAD30wAA9/HAAPfyQAD38sAA9/NAAPf0AAD39EAA9/SAAPf0wAD39QAA9/WAAPf2AAD39kAA9/aAAPf3AAD390AA+BYAAPgWgAD4FwAA+BeAAPgYQAD4GIAA+BjAAPgZAAD4GUAA+BnAAPgaQAD4GoAA+BrAAPgbQAD4G4AA+DpAAPg6wAD4O4AA+DwAAPg8wAD4PQAA+D1AAPg9gAD4PcAA+D5AAPg+wAD4PwAA+D9AAPg/wAD4QAAA+F7AAPhfQAD4X8AA+GBAAPhhAAD4YUAA+G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/AAQEwgAEBMMABATEAAQExQAEBMYABATIAAQEygAEBMsABATMAAQEzgAEBM8ABAVKAAQFTAAEBU4ABAVQAAQFUwAEBVQABAVVAAQFVgAEBVcABAVZAAQFWwAEBVwABAVdAAQFXwAEBWAABAXbAAQF3QAEBd8ABAXhAAQF5AAEBeUABAXmAAQF5wAEBegABAXqAAQF7AAEBe0ABAXuAAQF8AAEBfEABAZsAAQGbgAEBnEABAZzAAQGdgAEBncABAZ4AAQGeQAEBnoABAZ8AAQGfgAEBn8ABAaAAAQGggAEBoMABAb+AAQHAAAEBwIABAcEAAQHBwAEBwgABAcJAAQHCgAEBwsABAcNAAQHDwAEBxAABAcRAAQHEwAEBxQABAePAAQHkQAEB5MABAeVAAQHmAAEB5kABAeaAAQHmwAEB5wABAeeAAQHoAAEB6EABAeiAAQHpAAEB6UABAggAAQIIgAECCQABAgmAAQIKQAECCoABAgrAAQILAAECC0ABAgvAAQIMQAECDIABAgzAAQINQAECDYABAjJAAQI7AAECQwABAksAAQJLgAECTAABAkyAAQJNAAECTcABAk4AAQJOQAECTwABAk9AAQJPwAECUAABAlCAAQJRQAECUYABAlHAAQJSgAECUsABAlQAAQJaQAECXIABAl0AAQJdgAECX8ABAmCAAQJhQAECYcABAnQAAQJ9AAEChsABAo/AAQKQgAECkQABApGAAQKSAAECkoABApMAAQKTQAEClAABAppAAQKigAECowABAqOAAQKkAAECpIABAqUAAQKlgAECpgABAqaAAQKuwAECr4ABArBAAQKxAAECscABArKAAQKzQAECtAABArTAAQK1QAEC1AABAtSAAQLVAAEC1YABAtZAAQLWgAEC1sABAtcAAQLXQAEC18ABAthAAQLYgAEC2MABAtlAAQLZgAEC+EABAvjAAQL5QAEC+cABAvqAAQL6wAEC+wABAvtAAQL7gAEC/AABAvyAAQL8wAEC/QABAv2AAQL9wAEDHIABAx0AAQMdwAEDHkABAx8AAQMfQAEDH4ABAx/AAQMgAAEDIIABAyEAAQMhQAEDIYABAyIAAQMiQAEDKIABAyjAAQMpAAEDKYABA0hAAQNIwAEDSUABA0nAAQNKgAEDSsABA0sAAQNLQAEDS4ABA0wAAQNMgAEDTMABA00AAQNNgAEDTcABA2yAAQNtAAEDbYABA24AAQNuwAEDbwABA29AAQNvgAEDb8ABA3BAAQNwwAEDcQABA3FAAQNxwAEDcgABA5DAAQORQAEDkcABA5JAAQOTAAEDk0ABA5OAAQOTwAEDlAABA5SAAQOVAAEDlUABA5WAAQOWAAEDlkABA7UAAQO1gAEDtgABA7aAAQO3QAEDt4ABA7fAAQO4AAEDuEABA7jAAQO5QAEDuYABA7nAAQO6QAEDuoABA9lAAQPZwAED2kABA9rAAQPbgAED28ABA9wAAQPcQAED3IABA90AAQPdgAED3cABA94AAQPegAED3sABA/EAAQP6AAEEA8ABBAzAAQQNgAEEDgABBA6AAQQPAAEED4ABBBAAAQQQQAEEEQABBBdAAQQegAEEHwABBB+AAQQgAAEEIIABBCEAAQQhgAEEIgABBClAAQQqAAEEKsABBCuAAQQsQAEELQABBC3AAQQugAEELwABBE3AAQROQAEETwABBE+AAQRQQAEEUIABBFDAAQRRAAEEUUABBFHAAQRSQAEEUoABBFLAAQRTQAEEU4ABBHJAAQRywAEEc0ABBHPAAQR0gAEEdMABBHUAAQR1QAEEdYABBHYAAQR2gAEEdsABBHcAAQR3gAEEd8ABBJaAAQSXAAEEl4ABBJgAAQSYwAEEmQABBJlAAQSZgAEEmcABBJpAAQSawAEEmwABBJtAAQSbwAEEnAABBLrAAQS7QAEEvAABBLyAAQS9QAEEvYABBL3AAQS+AAEEvkABBL7AAQS/QAEEv4ABBL/AAQTAQAEEwIABBN9AAQTfwAEE4EABBODAAQThgAEE4cABBOIAAQTiQAEE4oABBOMAAQTjgAEE48ABBOQAAQTkgAEE5MABBQOAAQUEAAEFBIABBQUAAQUFwAEFBgABBQZAAQUGgAEFBsABBQdAAQUHwAEFCAABBQhAAQUIwAEFCQABBSfAAQUoQAEFKMABBSlAAQUqAAEFKkABBSqAAQUqwAEFKwABBSuAAQUsAAEFLEABBSyAAQUtAAEFLUABBVIAAQVawAEFYsABBWrAAQVrQAEFa8ABBWxAAQVswAEFbYABBW3AAQVuAAEFbsABBW8AAQVvgAEFb8ABBXBAAQVxAAEFcUABBXGAAQVyQAEFcoABBXTAAQV7AAEFfUABBX3AAQV+QAEFgIABBYFAAQWCAAEFgoABBZTAAQWdwAEFp4ABBbCAAQWxQAEFscABBbJAAQWywAEFs0ABBbPAAQW0AAEFtMABBbsAAQXDQAEFw8ABBcRAAQXEwAEFxUABBcXAAQXGQAEFxsABBcdAAQXPgAEF0EABBdEAAQXRwAEF0oABBdNAAQXUAAEF1MABBdWAAQXWAAEF9MABBfVAAQX1wAEF9kABBfcAAQX3QAEF94ABBffAAQX4AAEF+IABBfkAAQX5QAEF+YABBfoAAQX6QAEGGQABBhmAAQYaAAEGGoABBhtAAQYbgAEGG8ABBhwAAQYcQAEGHMABBh1AAQYdgAEGHcABBh5AAQYegAEGPUABBj3AAQY+gAEGPwABBj/AAQZAAAEGQEABBkCAAQZAwAEGQUABBkHAAQZCAAEGQkABBkLAAQZDAAEGSUABBkmAAQZJwAEGSkABBmkAAQZpgAEGagABBmqAAQZrQAEGa4ABBmvAAQZsAAEGbEABBmzAAQZtQAEGbYABBm3AAQZuQAEGboABBo1AAQaNwAEGjkABBo7AAQaPgAEGj8ABBpAAAQaQQAEGkIABBpEAAQaRgAEGkcABBpIAAQaSgAEGksABBrGAAQayAAEGsoABBrMAAQazwAEGtAABBrRAAQa0gAEGtMABBrVAAQa1wAEGtgABBrZAAQa2wAEGtwABBtXAAQbWQAEG1wABBteAAQbYQAEG2IABBtjAAQbZAAEG2UABBtnAAQbaQAEG2oABBtrAAQbbQAEG24ABBt9AAQb+AAEG/oABBv8AAQb/gAEHAEABBwCAAQcAwAEHAQABBwFAAQcBwAEHAkABBwKAAQcCwAEHA0ABBwOAAQcVwAEHHsABByiAAQcxgAEHMkABBzLAAQczQAEHM8ABBzRAAQc0wAEHNQABBzXAAQc8AAEHQ0ABB0PAAQdEQAEHRMABB0VAAQdFwAEHRkABB0bAAQdOAAEHTsABB0+AAQdQQAEHUQABB1HAAQdSgAEHU0ABB1PAAQdygAEHcwABB3OAAQd0AAEHdMABB3UAAQd1QAEHdYABB3XAAQd2QAEHdsABB3cAAQd3QAEHd8ABB3gAAQeWwAEHl0ABB5fAAQeYQAEHmQABB5lAAQeZgAEHmcABB5oAAQeagAEHmwABB5tAAQebgAEHnAABB5xAAQe7AAEHu4ABB7xAAQe8wAEHvYABB73AAQe+AAEHvkABB76AAQe/AAEHv4ABB7/AAQfAAAEHwIABB8DAAQffgAEH4AABB+DAAQfhQAEH4gABB+JAAQfigAEH4sABB+MAAQfjgAEH5AABB+RAAQfkgAEH5QABB+VAAQgEAAEIBIABCAUAAQgFgAEIBkABCAaAAQgGwAEIBwABCAdAAQgHwAEICEABCAiAAQgIwAEICUABCAmAAQgoQAEIKMABCClAAQgpwAEIKoABCCrAAQgrAAEIK0ABCCuAAQgsAAEILIABCCzAAQgtAAEILYABCC3AAQhMgAEITQABCE2AAQhOAAEITsABCE8AAQhPQAEIT4ABCE/AAQhQQAEIUMABCFEAAQhRQAEIUcABCFIAAQhWQAEIVoABCFcAAQhbQAEIXYABCF5AAQhfAAEIX4ABCG3AAQhugAEIbwABCG/AAQhwgAEIcUABCHIAAQiSwAEIm8ABCKTAAQitgAEIt0ABCL9AAQjJAAEI0sABCNrAAQjjwAEI7MABCO1AAQjuAAEI7oABCO8AAQjvgAEI8EABCPEAAQjxgAEI8gABCPLAAQjzQAEI88ABCPSAAQj1QAEI9YABCPbAAQj9AAEI/kABCP7AAQkAAAEJAMABCQFAAQkTgAEJHIABCSZAAQkvQAEJMAABCTCAAQkxAAEJMYABCTIAAQkygAEJMsABCTOAAQk5wAEJQwABCUOAAQlEAAEJRIABCUUAAQlFgAEJRgABCUaAAQlHAAEJR4ABCVDAAQlRgAEJUkABCVMAAQlTwAEJVIABCVVAAQlWAAEJVsABCVeAAQlYAAEJdsABCXdAAQl4AAEJeIABCXlAAQl5gAEJecABCXoAAQl6QAEJesABCXtAAQl7gAEJe8ABCXxAAQl8gAEJgMABCYEAAQmBgAEJoEABCaDAAQmhQAEJocABCaKAAQmiwAEJowABCaNAAQmjgAEJpAABCaSAAQmkwAEJpQABCaWAAQmlwAEJxIABCcUAAQnFwAEJxkABCccAAQnHQAEJx4ABCcfAAQnIAAEJyIABCckAAQnJQAEJyYABCcoAAQnKQAEJzoABCc7AAQnPQAEJ7gABCe6AAQnvAAEJ74ABCfBAAQnwgAEJ8MABCfEAAQnxQAEJ8cABCfJAAQnygAEJ8sABCfNAAQnzgAEKEkABChLAAQoTgAEKFAABChTAAQoVAAEKFUABChWAAQoVwAEKFkABChbAAQoXAAEKF0ABChfAAQoYAAEKHEABChyAAQodAAEKO8ABCjxAAQo8wAEKPUABCj4AAQo+QAEKPoABCj7AAQo/AAEKP4ABCkAAAQpAQAEKQIABCkEAAQpBQAEKYAABCmCAAQphQAEKYcABCmKAAQpiwAEKYwABCmNAAQpjgAEKZAABCmSAAQpkwAEKZQABCmWAAQplwAEKbAABCmxAAQpsgAEKbQABCovAAQqMQAEKjMABCo1AAQqOAAEKjkABCo6AAQqOwAEKjwABCo+AAQqQAAEKkEABCpCAAQqRAAEKkUABCrAAAQqwgAEKsUABCrHAAQqygAEKssABCrMAAQqzQAEKs4ABCrQAAQq0gAEKtMABCrUAAQq1gAEKtcABCr7AAQrFAAEKyEABCskAAQrJwAEKyoABCs3AAQrOgAEKz0ABCtAAAQrQgAEK1QABCtpAAQrcwAELAYABCwpAAQsSQAELGkABCxrAAQsbQAELG8ABCxxAAQsdAAELHUABCx2AAQseQAELHoABCx8AAQsfQAELIAABCyDAAQshAAELIUABCyIAAQsiQAELI4ABCynAAQssAAELLIABCy0AAQsvQAELMAABCzDAAQsxQAELQ4ABC0yAAQtWQAELX0ABC2AAAQtggAELYQABC2GAAQtiAAELYoABC2LAAQtjgAELacABC3IAAQtygAELcwABC3OAAQt0AAELdIABC3UAAQt1gAELdgABC35AAQt/AAELf8ABC4CAAQuBQAELggABC4LAAQuDgAELhEABC4TAAQujgAELpAABC6SAAQulAAELpcABC6YAAQumQAELpoABC6bAAQunQAELp8ABC6gAAQuoQAELqMABC6kAAQvHwAELyEABC8jAAQvJQAELygABC8pAAQvKgAELysABC8sAAQvLgAELzAABC8xAAQvMgAELzQABC81AAQvsAAEL7IABC+1AAQvtwAEL7oABC+7AAQvvAAEL70ABC++AAQvwAAEL8IABC/DAAQvxAAEL8YABC/HAAQv4AAEL+EABC/iAAQv5AAEMF8ABDBhAAQwYwAEMGUABDBoAAQwaQAEMGoABDBrAAQwbAAEMG4ABDBwAAQwcQAEMHIABDB0AAQwdQAEMPAABDDyAAQw9AAEMPYABDD5AAQw+gAEMPsABDD8AAQw/QAEMP8ABDEBAAQxAgAEMQMABDEFAAQxBgAEMYEABDGDAAQxhQAEMYcABDGKAAQxiwAEMYwABDGNAAQxjgAEMZAABDGSAAQxkwAEMZQABDGWAAQxlwAEMhIABDIUAAQyFgAEMhgABDIbAAQyHAAEMh0ABDIeAAQyHwAEMiEABDIjAAQyJAAEMiUABDInAAQyKAAEMqMABDKlAAQypwAEMqkABDKsAAQyrQAEMq4ABDKvAAQysAAEMrIABDK0AAQytQAEMrYABDK4AAQyuQAEMwIABDMmAAQzTQAEM3EABDN0AAQzdgAEM3gABDN6AAQzfAAEM34ABDN/AAQzggAEM5sABDO4AAQzugAEM7wABDO+AAQzwAAEM8IABDPEAAQzxgAEM+MABDPmAAQz6QAEM+wABDPvAAQz8gAEM/UABDP4AAQz+gAENHUABDR3AAQ0eQAENHsABDR+AAQ0fwAENIAABDSBAAQ0ggAENIQABDSGAAQ0hwAENIgABDSKAAQ0iwAENQYABDUIAAQ1CgAENQwABDUPAAQ1EAAENREABDUSAAQ1EwAENRUABDUXAAQ1GAAENRkABDUbAAQ1HAAENZcABDWZAAQ1mwAENZ0ABDWgAAQ1oQAENaIABDWjAAQ1pAAENaYABDWoAAQ1qQAENaoABDWsAAQ1rQAENigABDYqAAQ2LQAENi8ABDYyAAQ2MwAENjQABDY1AAQ2NgAENjgABDY6AAQ2OwAENjwABDY+AAQ2PwAENsIABDbmAAQ3CgAENy0ABDdUAAQ3dAAEN5sABDfCAAQ34gAEOAYABDgqAAQ4LAAEOC8ABDgxAAQ4MwAEODUABDg4AAQ4OwAEOD0ABDg/AAQ4QgAEOEQABDhGAAQ4SQAEOEwABDhNAAQ4UgAEOGsABDhwAAQ4cgAEOHcABDh6AAQ4fAAEOMUABDjpAAQ5EAAEOTQABDk3AAQ5OQAEOTsABDk9AAQ5PwAEOUEABDlCAAQ5RQAEOV4ABDmDAAQ5hQAEOYcABDmJAAQ5iwAEOY0ABDmPAAQ5kQAEOZMABDmVAAQ5ugAEOb0ABDnAAAQ5wwAEOcYABDnJAAQ5zAAEOc8ABDnSAAQ51QAEOdcABDpSAAQ6VAAEOlcABDpZAAQ6XAAEOl0ABDpeAAQ6XwAEOmAABDpiAAQ6ZAAEOmUABDpmAAQ6aAAEOmkABDp6AAQ6ewAEOn0ABDr4AAQ6+gAEOvwABDr+AAQ7AQAEOwIABDsDAAQ7BAAEOwUABDsHAAQ7CQAEOwoABDsLAAQ7DQAEOw4ABDuJAAQ7iwAEO44ABDuQAAQ7kwAEO5QABDuVAAQ7lgAEO5cABDuZAAQ7mwAEO5wABDudAAQ7nwAEO6AABDuxAAQ7sgAEO7QABDwvAAQ8MQAEPDMABDw1AAQ8OAAEPDkABDw6AAQ8OwAEPDwABDw+AAQ8QAAEPEEABDxCAAQ8RAAEPEUABDzAAAQ8wgAEPMUABDzHAAQ8ygAEPMsABDzMAAQ8zQAEPM4ABDzQAAQ80gAEPNMABDzUAAQ81gAEPNcABDzoAAQ86QAEPOsABD1mAAQ9aAAEPWoABD1sAAQ9bwAEPXAABD1xAAQ9cgAEPXMABD11AAQ9dwAEPXgABD15AAQ9ewAEPXwABD33AAQ9+QAEPfwABD3+AAQ+AQAEPgIABD4DAAQ+BAAEPgUABD4HAAQ+CQAEPgoABD4LAAQ+DQAEPg4ABD4nAAQ+KAAEPikABD4rAAQ+pgAEPqgABD6qAAQ+rAAEPq8ABD6wAAQ+sQAEPrIABD6zAAQ+tQAEPrcABD64AAQ+uQAEPrsABD68AAQ/NwAEPzkABD88AAQ/PgAEP0EABD9CAAQ/QwAEP0QABD9FAAQ/RwAEP0kABD9KAAQ/SwAEP00ABD9OAAQ/aQAEP4IABD+rAAQ/rgAEP7EABD+0AAQ/twAEP7oABD+9AAQ/wAAEP8MABD/GAAQ/yQAEP/IABD/1AAQ/+AAEP/sABD/+AARAAQAEQAQABEAHAARACgAEQA0ABEAQAARAEgAEQDoABEBNAARAZwAEQHkABECSAARApwAEQNAABED0AARBEQAEQS8ABEHCAARB5QAEQgUABEIlAARCJwAEQikABEIrAARCLQAEQjAABEIxAARCMgAEQjUABEI2AARCOAAEQjkABEI8AARCPwAEQkAABEJBAARCRAAEQkUABEJKAARCYwAEQmwABEJuAARCcAAEQnkABEJ8AARCfwAEQoEABELKAARC7gAEQxUABEM5AARDPAAEQz4ABENAAARDQgAEQ0QABENGAARDRwAEQ0oABENjAARDhAAEQ4YABEOIAARDigAEQ4wABEOOAARDkAAEQ5IABEOUAARDtQAEQ7gABEO7AARDvgAEQ8EABEPEAARDxwAEQ8oABEPNAARDzwAEREoABERMAARETgAERFAABERTAAREVAAERFUABERWAAREVwAERFkABERbAAREXAAERF0ABERfAAREYAAERNsABETdAARE3wAEROEABETkAARE5QAEROYABETnAARE6AAEROoABETsAARE7QAERO4ABETwAARE8QAERWwABEVuAARFcQAERXMABEV2AARFdwAERXgABEV5AARFegAERXwABEV+AARFfwAERYAABEWCAARFgwAERZwABEWdAARFngAERaAABEYbAARGHQAERh8ABEYhAARGJAAERiUABEYmAARGJwAERigABEYqAARGLAAERi0ABEYuAARGMAAERjEABEasAARGrgAERrAABEayAARGtQAERrYABEa3AARGuAAERrkABEa7AARGvQAERr4ABEa/AARGwQAERsIABEc9AARHPwAER0EABEdDAARHRgAER0cABEdIAARHSQAER0oABEdMAARHTgAER08ABEdQAARHUgAER1MABEfOAARH0AAER9IABEfUAARH1wAER9gABEfZAARH2gAER9sABEfdAARH3wAER+AABEfhAARH4wAER+QABEhfAARIYQAESGMABEhlAARIaAAESGkABEhqAARIawAESGwABEhuAARIcAAESHEABEhyAARIdAAESHUABEi+AARI4gAESQkABEktAARJMAAESTIABEk0AARJNgAESTgABEk6AARJOwAEST4ABElXAARJdAAESXYABEl4AARJegAESXwABEl+AARJgAAESYIABEmfAARJogAESaUABEmoAARJqwAESa4ABEmxAARJtAAESbYABEoxAARKMwAESjUABEo3AARKOgAESjsABEo8AARKPQAESj4ABEpAAARKQgAESkMABEpEAARKRgAESkcABErCAARKxAAESscABErJAARKzAAESs0ABErOAARKzwAEStAABErSAARK1AAEStUABErWAARK2AAEStkABEtUAARLVgAES1gABEtaAARLXQAES14ABEtfAARLYAAES2EABEtjAARLZQAES2YABEtnAARLaQAES2oABEvlAARL5wAES+oABEvsAARL7wAES/AABEvxAARL8gAES/MABEv1AARL9wAES/gABEv5AARL+wAES/wABEx/AARMowAETMcABEzqAARNEQAETTEABE1YAARNfwAETZ8ABE3DAARN5wAETekABE3sAARN7gAETfAABE3yAARN9QAETfgABE36AARN/AAETf8ABE4BAAROAwAETgYABE4JAAROCgAETg8ABE4oAAROLQAETi8ABE40AARONwAETjkABE6CAAROpgAETs0ABE7xAARO9AAETvYABE74AARO+gAETvwABE7+AARO/wAETwIABE8bAARPQAAET0IABE9EAARPRgAET0gABE9KAARPTAAET04ABE9QAARPUgAET3cABE96AARPfQAET4AABE+DAARPhgAET4kABE+MAARPjwAET5IABE+UAARQDwAEUBEABFAUAARQFgAEUBkABFAaAARQGwAEUBwABFAdAARQHwAEUCEABFAiAARQIwAEUCUABFAmAARQNwAEUDgABFA6AARQtQAEULcABFC5AARQuwAEUL4ABFC/AARQwAAEUMEABFDCAARQxAAEUMYABFDHAARQyAAEUMoABFDLAARRRgAEUUgABFFLAARRTQAEUVAABFFRAARRUgAEUVMABFFUAARRVgAEUVgABFFZAARRWgAEUVwABFFdAARRbgAEUW8ABFFxAARR7AAEUe4ABFHwAARR8gAEUfUABFH2AARR9wAEUfgABFH5AARR+wAEUf0ABFH+AARR/wAEUgEABFICAARSfQAEUn8ABFKCAARShAAEUocABFKIAARSiQAEUooABFKLAARSjQAEUo8ABFKQAARSkQAEUpMABFKUAARSpQAEUqYABFKoAARTIwAEUyUABFMnAARTKQAEUywABFMtAARTLgAEUy8ABFMwAARTMgAEUzQABFM1AARTNgAEUzgABFM5AARTtAAEU7YABFO5AARTuwAEU74ABFO/AARTwAAEU8EABFPCAARTxAAEU8YABFPHAARTyAAEU8oABFPLAART5AAEU+UABFPmAART6AAEVGMABFRlAARUZwAEVGkABFRsAARUbQAEVG4ABFRvAARUcAAEVHIABFR0AARUdQAEVHYABFR4AARUeQAEVPQABFT2AARU+QAEVPsABFT+AARU/wAEVQAABFUBAARVAgAEVQQABFUGAARVBwAEVQgABFUKAARVCwAEVUcABFVgAARVZQAEVWgABFVtAARVcAAEVXIABFWYAARWKwAEVk4ABFZuAARWjgAEVpAABFaSAARWlAAEVpYABFaZAARWmgAEVpsABFaeAARWnwAEVqEABFaiAARWpQAEVqgABFapAARWqgAEVq0ABFauAARWswAEVswABFbVAARW1wAEVtkABFbiAARW5QAEVugABFbqAARXMwAEV1cABFd+AARXogAEV6UABFenAARXqQAEV6sABFetAARXrwAEV7AABFezAARXzAAEV+0ABFfvAARX8QAEV/MABFf1AARX9wAEV/kABFf7AARX/QAEWB4ABFghAARYJAAEWCcABFgqAARYLQAEWDAABFgzAARYNgAEWDgABFizAARYtQAEWLcABFi5AARYvAAEWL0ABFi+AARYvwAEWMAABFjCAARYxAAEWMUABFjGAARYyAAEWMkABFlEAARZRgAEWUgABFlKAARZTQAEWU4ABFlPAARZUAAEWVEABFlTAARZVQAEWVYABFlXAARZWQAEWVoABFnVAARZ1wAEWdoABFncAARZ3wAEWeAABFnhAARZ4gAEWeMABFnlAARZ5wAEWegABFnpAARZ6wAEWewABFoFAARaBgAEWgcABFoJAARahAAEWoYABFqIAARaigAEWo0ABFqOAARajwAEWpAABFqRAARakwAEWpUABFqWAARalwAEWpkABFqaAARbFQAEWxcABFsZAARbGwAEWx4ABFsfAARbIAAEWyEABFsiAARbJAAEWyYABFsnAARbKAAEWyoABFsrAARbpgAEW6gABFuqAARbrAAEW68ABFuwAARbsQAEW7IABFuzAARbtQAEW7cABFu4AARbuQAEW7sABFu8AARcNwAEXDkABFw7AARcPQAEXEAABFxBAARcQgAEXEMABFxEAARcRgAEXEgABFxJAARcSgAEXEwABFxNAARcyAAEXMoABFzMAARczgAEXNEABFzSAARc0wAEXNQABFzVAARc1wAEXNkABFzaAARc2wAEXN0ABFzeAARdJwAEXUsABF1yAARdlgAEXZkABF2bAARdnQAEXZ8ABF2hAARdowAEXaQABF2nAARdwAAEXd0ABF3fAARd4QAEXeMABF3lAARd5wAEXekABF3rAAReCAAEXgsABF4OAAReEQAEXhQABF4XAAReGgAEXh0ABF4fAARemgAEXpwABF6eAAReoAAEXqMABF6kAARepQAEXqYABF6nAAReqQAEXqsABF6sAARerQAEXq8ABF6wAARfKwAEXy0ABF8vAARfMQAEXzQABF81AARfNgAEXzcABF84AARfOgAEXzwABF89AARfPgAEX0AABF9BAARfvAAEX74ABF/AAARfwgAEX8UABF/GAARfxwAEX8gABF/JAARfywAEX80ABF/OAARfzwAEX9EABF/SAARgTQAEYE8ABGBSAARgVAAEYFcABGBYAARgWQAEYFoABGBbAARgXQAEYF8ABGBgAARgYQAEYGMABGBkAARg3wAEYOEABGDjAARg5QAEYOgABGDpAARg6gAEYOsABGDsAARg7gAEYPAABGDxAARg8gAEYPQABGD1AARhcAAEYXIABGF0AARhdgAEYXkABGF6AARhewAEYXwABGF9AARhfwAEYYEABGGCAARhgwAEYYUABGGGAARiAQAEYgMABGIGAARiCAAEYgsABGIMAARiDQAEYg4ABGIPAARiEQAEYhMABGIUAARiFQAEYhcABGIYAARiKQAEYi4ABGIxAARiMwAEYmwABGJvAARicQAEYnQABGJ3AARiegAEYn0ABGKCAARjJQAEY0kABGNtAARjjQAEY7QABGPbAARj+wAEZCIABGRGAARkaQAEZJAABGS0AARk2AAEZPwABGUjAARlJAAEZSYABGUoAARlKwAEZS0ABGUwAARlMgAEZTQABGU3AARlOQAEZTsABGU+AARlQQAEZUMABGVFAARlRwAEZUoABGVNAARlUAAEZVkABGVyAARldwAEZXkABGV+AARlgQAEZYMABGXMAARl8AAEZhcABGY7AARmPgAEZkAABGZCAARmRAAEZkYABGZIAARmSQAEZkwABGZlAARmigAEZowABGaOAARmkAAEZpIABGaUAARmlgAEZpgABGaaAARmnAAEZsEABGbEAARmxwAEZsoABGbNAARm0AAEZtMABGbWAARm2QAEZtwABGbeAARnWQAEZ1sABGdeAARnYAAEZ2MABGdkAARnZQAEZ2YABGdnAARnaQAEZ2sABGdsAARnbQAEZ28ABGdwAARngQAEZ4IABGeEAARn/wAEaAEABGgDAARoBQAEaAgABGgJAARoCgAEaAsABGgMAARoDgAEaBAABGgRAARoEgAEaBQABGgVAARokAAEaJIABGiVAARolwAEaJoABGibAARonAAEaJ0ABGieAARooAAEaKIABGijAARopAAEaKYABGinAARouAAEaLkABGi7AARpNgAEaTgABGk6AARpPAAEaT8ABGlAAARpQQAEaUIABGlDAARpRQAEaUcABGlIAARpSQAEaUsABGlMAARpxwAEackABGnMAARpzgAEadEABGnSAARp0wAEadQABGnVAARp1wAEadkABGnaAARp2wAEad0ABGneAARp7wAEafAABGnyAARqbQAEam8ABGpxAARqcwAEanYABGp3AARqeAAEankABGp6AARqfAAEan4ABGp/AARqgAAEaoIABGqDAARq/gAEawAABGsDAARrBQAEawgABGsJAARrCgAEawsABGsMAARrDgAEaxAABGsRAARrEgAEaxQABGsVAARrLgAEay8ABGswAARrMgAEa60ABGuvAARrsQAEa7MABGu2AARrtwAEa7gABGu5AARrugAEa7wABGu+AARrvwAEa8AABGvCAARrwwAEbD4ABGxAAARsQwAEbEUABGxIAARsSQAEbEoABGxLAARsTAAEbE4ABGxQAARsUQAEbFIABGxUAARsVQAEbHIABGyLAARslAAEbJcABGyaAARsowAEbKYABGypAARsqwAEbLoABGzOAARtYQAEbYQABG2kAARtxAAEbcYABG3IAARtygAEbcwABG3PAARt0AAEbdEABG3UAARt1QAEbdcABG3YAARt2gAEbd0ABG3eAARt3wAEbeIABG3jAARt6AAEbgEABG4KAARuDAAEbg4ABG4XAARuGgAEbh0ABG4fAARuaAAEbowABG6zAARu1wAEbtoABG7cAARu3gAEbuAABG7iAARu5AAEbuUABG7oAARvAQAEbyIABG8kAARvJgAEbygABG8qAARvLAAEby4ABG8wAARvMgAEb1MABG9WAARvWQAEb1wABG9fAARvYgAEb2UABG9oAARvawAEb20ABG/oAARv6gAEb+wABG/uAARv8QAEb/IABG/zAARv9AAEb/UABG/3AARv+QAEb/oABG/7AARv/QAEb/4ABHB5AARwewAEcH0ABHB/AARwggAEcIMABHCEAARwhQAEcIYABHCIAARwigAEcIsABHCMAARwjgAEcI8ABHEKAARxDAAEcQ8ABHERAARxFAAEcRUABHEWAARxFwAEcRgABHEaAARxHAAEcR0ABHEeAARxIAAEcSEABHE6AARxOwAEcTwABHE+AARxuQAEcbsABHG9AARxvwAEccIABHHDAARxxAAEccUABHHGAARxyAAEccoABHHLAARxzAAEcc4ABHHPAARySgAEckwABHJOAARyUAAEclMABHJUAARyVQAEclYABHJXAARyWQAEclsABHJcAARyXQAEcl8ABHJgAARy2wAEct0ABHLfAARy4QAEcuQABHLlAARy5gAEcucABHLoAARy6gAEcuwABHLtAARy7gAEcvAABHLxAARzbAAEc24ABHNwAARzcgAEc3UABHN2AARzdwAEc3gABHN5AARzewAEc30ABHN+AARzfwAEc4EABHOCAARz/QAEc/8ABHQBAAR0AwAEdAYABHQHAAR0CAAEdAkABHQKAAR0DAAEdA4ABHQPAAR0EAAEdBIABHQTAAR0XAAEdIAABHSnAAR0ywAEdM4ABHTQAAR00gAEdNQABHTWAAR02AAEdNkABHTcAAR09QAEdRIABHUUAAR1FgAEdRgABHUaAAR1HAAEdR4ABHUgAAR1PQAEdUAABHVDAAR1RgAEdUkABHVMAAR1TwAEdVIABHVUAAR1zwAEddEABHXTAAR11QAEddgABHXZAAR12gAEddsABHXcAAR13gAEdeAABHXhAAR14gAEdeQABHXlAAR2YAAEdmIABHZkAAR2ZgAEdmkABHZqAAR2awAEdmwABHZtAAR2bwAEdnEABHZyAAR2cwAEdnUABHZ2AAR28QAEdvMABHb1AAR29wAEdvoABHb7AAR2/AAEdv0ABHb+AAR3AAAEdwIABHcDAAR3BAAEdwYABHcHAAR3ggAEd4QABHeHAAR3iQAEd4wABHeNAAR3jgAEd48ABHeQAAR3kgAEd5QABHeVAAR3lgAEd5gABHeZAAR3nAAEeBcABHgZAAR4GwAEeB0ABHggAAR4IQAEeCIABHgjAAR4JAAEeCYABHgoAAR4KQAEeCoABHgsAAR4LQAEeKgABHiqAAR4rAAEeK4ABHixAAR4sgAEeLMABHi0AAR4tQAEeLcABHi5AAR4ugAEeLsABHi9AAR4vgAEeTkABHk7AAR5PQAEeT8ABHlCAAR5QwAEeUQABHlFAAR5RgAEeUgABHlKAAR5SwAEeUwABHlOAAR5TwAEeeIABHoFAAR6JQAEekUABHpHAAR6SQAEeksABHpNAAR6UAAEelEABHpSAAR6VQAEelYABHpYAAR6WQAEelsABHpeAAR6XwAEemAABHpjAAR6ZAAEem0ABHqGAAR6jwAEepEABHqTAAR6nAAEep8ABHqiAAR6pAAEeu0ABHsRAAR7OAAEe1wABHtfAAR7YQAEe2MABHtlAAR7ZwAEe2kABHtqAAR7bQAEe4YABHunAAR7qQAEe6sABHutAAR7rwAEe7EABHuzAAR7tQAEe7cABHvYAAR72wAEe94ABHvhAAR75AAEe+cABHvqAAR77QAEe/AABHvyAAR8bQAEfG8ABHxxAAR8cwAEfHYABHx3AAR8eAAEfHkABHx6AAR8fAAEfH4ABHx/AAR8gAAEfIIABHyDAAR8/gAEfQAABH0CAAR9BAAEfQcABH0IAAR9CQAEfQoABH0LAAR9DQAEfQ8ABH0QAAR9EQAEfRMABH0UAAR9jwAEfZEABH2UAAR9lgAEfZkABH2aAAR9mwAEfZwABH2dAAR9nwAEfaEABH2iAAR9owAEfaUABH2mAAR9vwAEfcAABH3BAAR9wwAEfj4ABH5AAAR+QgAEfkQABH5HAAR+SAAEfkkABH5KAAR+SwAEfk0ABH5PAAR+UAAEflEABH5TAAR+VAAEfs8ABH7RAAR+0wAEftUABH7YAAR+2QAEftoABH7bAAR+3AAEft4ABH7gAAR+4QAEfuIABH7kAAR+5QAEf2AABH9iAAR/ZAAEf2YABH9pAAR/agAEf2sABH9sAAR/bQAEf28ABH9xAAR/cgAEf3MABH91AAR/dgAEf/EABH/zAAR/9QAEf/cABH/6AAR/+wAEf/wABH/9AAR//gAEgAAABIACAASAAwAEgAQABIAGAASABwAEgIIABICEAASAhgAEgIgABICLAASAjAAEgI0ABICOAASAjwAEgJEABICTAASAlAAEgJUABICXAASAmAAEgOEABIEFAASBLAAEgVAABIFTAASBVQAEgVcABIFZAASBWwAEgV0ABIFeAASBYQAEgXoABIGXAASBmQAEgZsABIGdAASBnwAEgaEABIGjAASBpQAEgcIABIHFAASByAAEgcsABIHOAASB0QAEgdQABIHXAASB2QAEglQABIJWAASCWAAEgloABIJdAASCXgAEgl8ABIJgAASCYQAEgmMABIJlAASCZgAEgmcABIJpAASCagAEguUABILnAASC6QAEgusABILuAASC7wAEgvAABILxAASC8gAEgvQABIL2AASC9wAEgvgABIL6AASC+wAEg3YABIN4AASDegAEg3wABIN/AASDgAAEg4EABIOCAASDgwAEg4UABIOHAASDiAAEg4kABIOLAASDjAAEhAcABIQJAASEDAAEhA4ABIQRAASEEgAEhBMABIQUAASEFQAEhBcABIQZAASEGgAEhBsABIQdAASEHgAEhJkABISbAASEnQAEhJ8ABISiAASEowAEhKQABISlAASEpgAEhKgABISqAASEqwAEhKwABISuAASErwAEhSoABIUsAASFLgAEhTAABIUzAASFNAAEhTUABIU2AASFNwAEhTkABIU7AASFPAAEhT0ABIU/AASFQAAEhbsABIW9AASFvwAEhcEABIXEAASFxQAEhcYABIXHAASFyAAEhcoABIXMAASFzQAEhc4ABIXQAASF0QAEheIABIXjAASF5QAEhfYABIYHAASGCgAEhg0ABIYQAASGEwAEhhUABIZOAASGUQAEhlMABIZWAASGWQAEhlwABIZfAASG4gAEhwYABIcqAASHTQAEh3QABIeUAASHuwAEh+IABIgCAASIJgAEiEoABIhMAASITwAEiFEABIhTAASIVQAEiFgABIhbAASIXQAEiF8ABIhiAASIZAAEiGYABIhpAASIbAAEiG0ABIhyAASIiwAEiJAABIiSAASIlwAEiJoABIicAASI5QAEiQkABIkwAASJVAAEiVcABIlZAASJWwAEiV0ABIlfAASJYQAEiWIABIllAASJfgAEiaMABImlAASJpwAEiakABImrAASJrQAEia8ABImxAASJswAEibUABInaAASJ3QAEieAABInjAASJ5gAEiekABInsAASJ7wAEifIABIn1AASJ9wAEinIABIp0AASKdwAEinkABIp8AASKfQAEin4ABIp/AASKgAAEioIABIqEAASKhQAEioYABIqIAASKiQAEipoABIqbAASKnQAEixgABIsaAASLHAAEix4ABIshAASLIgAEiyMABIskAASLJQAEiycABIspAASLKgAEiysABIstAASLLgAEi6kABIurAASLrgAEi7AABIuzAASLtAAEi7UABIu2AASLtwAEi7kABIu7AASLvAAEi70ABIu/AASLwAAEi9EABIvSAASL1AAEjE8ABIxRAASMUwAEjFUABIxYAASMWQAEjFoABIxbAASMXAAEjF4ABIxgAASMYQAEjGIABIxkAASMZQAEjOAABIziAASM5QAEjOcABIzqAASM6wAEjOwABIztAASM7gAEjPAABIzyAASM8wAEjPQABIz2AASM9wAEjQgABI0JAASNCwAEjYYABI2IAASNigAEjYwABI2PAASNkAAEjZEABI2SAASNkwAEjZUABI2XAASNmAAEjZkABI2bAASNnAAEjhcABI4ZAASOHAAEjh4ABI4hAASOIgAEjiMABI4kAASOJQAEjicABI4pAASOKgAEjisABI4tAASOLgAEjkcABI5IAASOSQAEjksABI7GAASOyAAEjsoABI7MAASOzwAEjtAABI7RAASO0gAEjtMABI7VAASO1wAEjtgABI7ZAASO2wAEjtwABI9XAASPWQAEj1wABI9eAASPYQAEj2IABI9jAASPZAAEj2UABI9nAASPaQAEj2oABI9rAASPbQAEj24ABI+rAASPxAAEj8kABI/MAASP0QAEj9QABI/WAASP/QAEkJAABJCzAASQ0wAEkPMABJD1AASQ9wAEkPkABJD7AASQ/gAEkP8ABJEAAASRAwAEkQQABJEGAASRBwAEkQoABJENAASRDgAEkQ8ABJESAASREwAEkRwABJE1AASRPgAEkUAABJFCAASRSwAEkU4ABJFRAASRUwAEkZwABJHAAASR5wAEkgsABJIOAASSEAAEkhIABJIUAASSFgAEkhgABJIZAASSHAAEkjUABJJWAASSWAAEkloABJJcAASSXgAEkmAABJJiAASSZAAEkmYABJKHAASSigAEko0ABJKQAASSkwAEkpYABJKZAASSnAAEkp8ABJKhAASTHAAEkx4ABJMgAASTIgAEkyUABJMmAASTJwAEkygABJMpAASTKwAEky0ABJMuAASTLwAEkzEABJMyAASTrQAEk68ABJOxAASTswAEk7YABJO3AASTuAAEk7kABJO6AASTvAAEk74ABJO/AASTwAAEk8IABJPDAASUPgAElEAABJRDAASURQAElEgABJRJAASUSgAElEsABJRMAASUTgAElFAABJRRAASUUgAElFQABJRVAASUbgAElG8ABJRwAASUcgAElO0ABJTvAASU8QAElPMABJT2AASU9wAElPgABJT5AASU+gAElPwABJT+AASU/wAElQAABJUCAASVAwAElX4ABJWAAASVggAElYQABJWHAASViAAElYkABJWKAASViwAElY0ABJWPAASVkAAElZEABJWTAASVlAAElg8ABJYRAASWEwAElhUABJYYAASWGQAElhoABJYbAASWHAAElh4ABJYgAASWIQAEliIABJYkAASWJQAElqAABJaiAASWpAAElqYABJapAASWqgAElqsABJasAASWrQAElq8ABJaxAASWsgAElrMABJa1AASWtgAElzEABJczAASXNQAElzcABJc6AASXOwAElzwABJc9AASXPgAEl0AABJdCAASXQwAEl0QABJdGAASXRwAEl5AABJe0AASX2wAEl/8ABJgCAASYBAAEmAYABJgIAASYCgAEmAwABJgNAASYEAAEmCkABJhGAASYSAAEmEoABJhMAASYTgAEmFAABJhSAASYVAAEmHEABJh0AASYdwAEmHoABJh9AASYgAAEmIMABJiGAASYiAAEmQMABJkFAASZBwAEmQkABJkMAASZDQAEmQ4ABJkPAASZEAAEmRIABJkUAASZFQAEmRYABJkYAASZGQAEmZQABJmWAASZmAAEmZoABJmdAASZngAEmZ8ABJmgAASZoQAEmaMABJmlAASZpgAEmacABJmpAASZqgAEmiUABJonAASaKQAEmisABJouAASaLwAEmjAABJoxAASaMgAEmjQABJo2AASaNwAEmjgABJo6AASaOwAEmrYABJq4AASauwAEmr0ABJrAAASawQAEmsIABJrDAASaxAAEmsYABJrIAASayQAEmsoABJrMAASazQAEm0gABJtKAASbTAAEm04ABJtRAASbUgAEm1MABJtUAASbVQAEm1cABJtZAASbWgAEm1sABJtdAASbXgAEm9kABJvbAASb3QAEm98ABJviAASb4wAEm+QABJvlAASb5gAEm+gABJvqAASb6wAEm+wABJvuAASb7wAEnGoABJxsAAScbwAEnHEABJx0AAScdQAEnHYABJx3AASceAAEnHoABJx8AAScfQAEnH4ABJyAAAScgQAEnRQABJ03AASdVwAEnXcABJ15AASdewAEnX0ABJ1/AASdggAEnYMABJ2EAASdhwAEnYgABJ2KAASdiwAEnY4ABJ2RAASdkgAEnZMABJ2WAASdlwAEnaAABJ25AASdwgAEncQABJ3GAASdzwAEndIABJ3VAASd1wAEniAABJ5EAASeawAEno8ABJ6SAASelAAEnpYABJ6YAASemgAEnpwABJ6dAASeoAAEnrkABJ7aAASe3AAEnt4ABJ7gAASe4gAEnuQABJ7mAASe6AAEnuoABJ8LAASfDgAEnxEABJ8UAASfFwAEnxoABJ8dAASfIAAEnyMABJ8lAASfoAAEn6IABJ+kAASfpgAEn6kABJ+qAASfqwAEn6wABJ+tAASfrwAEn7EABJ+yAASfswAEn7UABJ+2AASgMQAEoDMABKA1AASgNwAEoDoABKA7AASgPAAEoD0ABKA+AASgQAAEoEIABKBDAASgRAAEoEYABKBHAASgwgAEoMQABKDHAASgyQAEoMwABKDNAASgzgAEoM8ABKDQAASg0gAEoNQABKDVAASg1gAEoNgABKDZAASg8gAEoPMABKD0AASg9gAEoXEABKFzAAShdQAEoXcABKF6AAShewAEoXwABKF9AAShfgAEoYAABKGCAAShgwAEoYQABKGGAAShhwAEogIABKIEAASiBgAEoggABKILAASiDAAEog0ABKIOAASiDwAEohEABKITAASiFAAEohUABKIXAASiGAAEopMABKKVAASilwAEopkABKKcAASinQAEop4ABKKfAASioAAEoqIABKKkAASipQAEoqYABKKoAASiqQAEoyQABKMmAASjKAAEoyoABKMtAASjLgAEoy8ABKMwAASjMQAEozMABKM1AASjNgAEozcABKM5AASjOgAEo7UABKO3AASjuQAEo7sABKO+AASjvwAEo8AABKPBAASjwgAEo8QABKPGAASjxwAEo8gABKPKAASjywAEpBQABKQ4AASkXwAEpIMABKSGAASkiAAEpIoABKSMAASkjgAEpJAABKSRAASklAAEpK0ABKTKAASkzAAEpM4ABKTQAASk0gAEpNQABKTWAASk2AAEpPUABKT4AASk+wAEpP4ABKUBAASlBAAEpQcABKUKAASlDAAEpYcABKWJAASliwAEpY0ABKWQAASlkQAEpZIABKWTAASllAAEpZYABKWYAASlmQAEpZoABKWcAASlnQAEphgABKYaAASmHQAEph8ABKYiAASmIwAEpiQABKYlAASmJgAEpigABKYqAASmKwAEpiwABKYuAASmLwAEpqoABKasAASmrgAEprAABKazAASmtAAEprUABKa2AASmtwAEprkABKa7AASmvAAEpr0ABKa/AASmwAAEpzsABKc9AASnQAAEp0IABKdFAASnRgAEp0cABKdIAASnSQAEp0sABKdNAASnTgAEp08ABKdRAASnUgAEp80ABKfPAASn0QAEp9MABKfWAASn1wAEp9gABKfZAASn2gAEp9wABKfeAASn3wAEp+AABKfiAASn4wAEqF4ABKhgAASoYgAEqGQABKhnAASoaAAEqGkABKhqAASoawAEqG0ABKhvAASocAAEqHEABKhzAASodAAEqO8ABKjxAASo9AAEqPYABKj5AASo+gAEqPsABKj8AASo/QAEqP8ABKkBAASpAgAEqQMABKkFAASpBgAEqRcABKkcAASpHwAEqSEABKkyAASpPQAEqVoABKllAASpcwAEqYgABKmcAASpswAEqcUABKnKAASp2wAEqfQABKoFAASqHgAEqjUABKpHAASqgAAEqoMABKqFAASqiAAEqosABKqOAASqkQAEqxQABKs4AASrXAAEq38ABKumAASrxgAEq+0ABKwUAASsNAAErFgABKx8AASsfgAErIEABKyDAASshQAErIcABKyKAASsjQAErI8ABKyRAASslAAErJYABKyYAASsmwAErJ4ABKyfAASspAAErL0ABKzCAASsxAAErMkABKzMAASszgAErRcABK07AAStYgAErYYABK2JAAStiwAErY0ABK2PAAStkQAErZMABK2UAAStlwAErbAABK3VAASt1wAErdkABK3bAASt3QAErd8ABK3hAASt4wAEreUABK3nAASuDAAErg8ABK4SAASuFQAErhgABK4bAASuHgAEriEABK4kAASuJwAErikABK6kAASupgAErqkABK6rAASurgAErq8ABK6wAASusQAErrIABK60AASutgAErrcABK64AASuugAErrsABK7MAASuzQAErs8ABK9KAASvTAAEr04ABK9QAASvUwAEr1QABK9VAASvVgAEr1cABK9ZAASvWwAEr1wABK9dAASvXwAEr2AABK/bAASv3QAEr+AABK/iAASv5QAEr+YABK/nAASv6AAEr+kABK/rAASv7QAEr+4ABK/vAASv8QAEr/IABLADAASwBAAEsAYABLCBAASwgwAEsIUABLCHAASwigAEsIsABLCMAASwjQAEsI4ABLCQAASwkgAEsJMABLCUAASwlgAEsJcABLESAASxFAAEsRcABLEZAASxHAAEsR0ABLEeAASxHwAEsSAABLEiAASxJAAEsSUABLEmAASxKAAEsSkABLE6AASxOwAEsT0ABLG4AASxugAEsbwABLG+AASxwQAEscIABLHDAASxxAAEscUABLHHAASxyQAEscoABLHLAASxzQAEsc4ABLJJAASySwAEsk4ABLJQAASyUwAEslQABLJVAASyVgAEslcABLJZAASyWwAEslwABLJdAASyXwAEsmAABLJ5AASyegAEsnsABLJ9AASy+AAEsvoABLL8AASy/gAEswEABLMCAASzAwAEswQABLMFAASzBwAEswkABLMKAASzCwAEsw0ABLMOAASziQAEs4sABLOOAASzkAAEs5MABLOUAASzlQAEs5YABLOXAASzmQAEs5sABLOcAASznQAEs58ABLOgAASz2AAEs/EABLP2AASz+QAEs/4ABLQBAAS0AwAEtCUABLS4AAS02wAEtPsABLUbAAS1HQAEtR8ABLUhAAS1IwAEtSYABLUnAAS1KAAEtSsABLUsAAS1LgAEtS8ABLUyAAS1NQAEtTYABLU3AAS1OgAEtTsABLVEAAS1XQAEtWYABLVoAAS1agAEtXMABLV2AAS1eQAEtXsABLXEAAS16AAEtg8ABLYzAAS2NgAEtjgABLY6AAS2PAAEtj4ABLZAAAS2QQAEtkQABLZdAAS2fgAEtoAABLaCAAS2hAAEtoYABLaIAAS2igAEtowABLaOAAS2rwAEtrIABLa1AAS2uAAEtrsABLa+AAS2wQAEtsQABLbHAAS2yQAEt0QABLdGAAS3SAAEt0oABLdNAAS3TgAEt08ABLdQAAS3UQAEt1MABLdVAAS3VgAEt1cABLdZAAS3WgAEt9UABLfXAAS32QAEt9sABLfeAAS33wAEt+AABLfhAAS34gAEt+QABLfmAAS35wAEt+gABLfqAAS36wAEuGYABLhoAAS4awAEuG0ABLhwAAS4cQAEuHIABLhzAAS4dAAEuHYABLh4AAS4eQAEuHoABLh8AAS4fQAEuJYABLiXAAS4mAAEuJoABLkVAAS5FwAEuRkABLkbAAS5HgAEuR8ABLkgAAS5IQAEuSIABLkkAAS5JgAEuScABLkoAAS5KgAEuSsABLmmAAS5qAAEuaoABLmsAAS5rwAEubAABLmxAAS5sgAEubMABLm1AAS5twAEubgABLm5AAS5uwAEubwABLo3AAS6OQAEujsABLo9AAS6QAAEukEABLpCAAS6QwAEukQABLpGAAS6SAAEukkABLpKAAS6TAAEuk0ABLrIAAS6ygAEuswABLrOAAS60QAEutIABLrTAAS61AAEutUABLrXAAS62QAEutoABLrbAAS63QAEut4ABLtZAAS7WwAEu10ABLtfAAS7YgAEu2MABLtkAAS7ZQAEu2YABLtoAAS7agAEu2sABLtsAAS7bgAEu28ABLu4AAS73AAEvAMABLwnAAS8KgAEvCwABLwuAAS8MAAEvDIABLw0AAS8NQAEvDgABLxRAAS8bgAEvHAABLxyAAS8dAAEvHYABLx4AAS8egAEvHwABLyZAAS8nAAEvJ8ABLyiAAS8pQAEvKgABLyrAAS8rgAEvLAABL0rAAS9LQAEvS8ABL0xAAS9NAAEvTUABL02AAS9NwAEvTgABL06AAS9PAAEvT0ABL0+AAS9QAAEvUEABL28AAS9vgAEvcAABL3CAAS9xQAEvcYABL3HAAS9yAAEvckABL3LAAS9zQAEvc4ABL3PAAS90QAEvdIABL5NAAS+TwAEvlEABL5TAAS+VgAEvlcABL5YAAS+WQAEvloABL5cAAS+XgAEvl8ABL5gAAS+YgAEvmMABL7eAAS+4AAEvuMABL7lAAS+6AAEvukABL7qAAS+6wAEvuwABL7uAAS+8AAEvvEABL7yAAS+9AAEvvUABL94AAS/nAAEv8AABL/jAATACgAEwCoABMBRAATAeAAEwJgABMC8AATA4AAEwOIABMDlAATA5wAEwOkABMDrAATA7gAEwPEABMDzAATA9QAEwPgABMD6AATA/AAEwP8ABMECAATBAwAEwQgABMEhAATBJgAEwSgABMEtAATBMAAEwTIABMF7AATBnwAEwcYABMHqAATB7QAEwe8ABMHxAATB8wAEwfUABMH3AATB+AAEwfsABMIUAATCOQAEwjsABMI9AATCPwAEwkEABMJDAATCRQAEwkcABMJJAATCSwAEwnAABMJzAATCdgAEwnkABMJ8AATCfwAEwoIABMKFAATCiAAEwosABMKNAATDCAAEwwoABMMNAATDDwAEwxIABMMTAATDFAAEwxUABMMWAATDGAAEwxoABMMbAATDHAAEwx4ABMMfAATDMAAEwzEABMMzAATDrgAEw7AABMOyAATDtAAEw7cABMO4AATDuQAEw7oABMO7AATDvQAEw78ABMPAAATDwQAEw8MABMPEAATEPwAExEEABMREAATERgAExEkABMRKAATESwAExEwABMRNAATETwAExFEABMRSAATEUwAExFUABMRWAATEZwAExGgABMRqAATE5QAExOcABMTpAATE6wAExO4ABMTvAATE8AAExPEABMTyAATE9AAExPYABMT3AATE+AAExPoABMT7AATFdgAExXgABMV7AATFfQAExYAABMWBAATFggAExYMABMWEAATFhgAExYgABMWJAATFigAExYwABMWNAATFngAExZ8ABMWhAATGHAAExh4ABMYgAATGIgAExiUABMYmAATGJwAExigABMYpAATGKwAExi0ABMYuAATGLwAExjEABMYyAATGrQAExq8ABMayAATGtAAExrcABMa4AATGuQAExroABMa7AATGvQAExr8ABMbAAATGwQAExsMABMbEAATG3QAExt4ABMbfAATG4QAEx1wABMdeAATHYAAEx2IABMdlAATHZgAEx2cABMdoAATHaQAEx2sABMdtAATHbgAEx28ABMdxAATHcgAEx+0ABMfvAATH8gAEx/QABMf3AATH+AAEx/kABMf6AATH+wAEx/0ABMf/AATIAAAEyAEABMgDAATIBAAEyBsABMg0AATISQAEyEwABMhPAATIUgAEyFUABMhYAATIbQAEyHAABMhzAATIdgAEyHkABMh8AATIfgAEyKMABMjJAATI7QAEyQQABMkeAATJsQAEydQABMn0AATKFAAEyhYABMoYAATKGgAEyhwABMofAATKIAAEyiEABMokAATKJQAEyicABMooAATKKwAEyi4ABMovAATKMAAEyjMABMo0AATKOQAEylIABMpbAATKXQAEyl8ABMpoAATKawAEym4ABMpwAATKuQAEyt0ABMsEAATLKAAEyysABMstAATLLwAEyzEABMszAATLNQAEyzYABMs5AATLUgAEy3MABMt1AATLdwAEy3kABMt7AATLfQAEy38ABMuBAATLgwAEy6QABMunAATLqgAEy60ABMuwAATLswAEy7YABMu5AATLvAAEy74ABMw5AATMOwAEzD0ABMw/AATMQgAEzEMABMxEAATMRQAEzEYABMxIAATMSgAEzEsABMxMAATMTgAEzE8ABMzKAATMzAAEzM4ABMzQAATM0wAEzNQABMzVAATM1gAEzNcABMzZAATM2wAEzNwABMzdAATM3wAEzOAABM1bAATNXQAEzWAABM1iAATNZQAEzWYABM1nAATNaAAEzWkABM1rAATNbQAEzW4ABM1vAATNcQAEzXIABM2LAATNjAAEzY0ABM2PAATOCgAEzgwABM4OAATOEAAEzhMABM4UAATOFQAEzhYABM4XAATOGQAEzhsABM4cAATOHQAEzh8ABM4gAATOmwAEzp0ABM6fAATOoQAEzqQABM6lAATOpgAEzqcABM6oAATOqgAEzqwABM6tAATOrgAEzrAABM6xAATPLAAEzy4ABM8wAATPMgAEzzUABM82AATPNwAEzzgABM85AATPOwAEzz0ABM8+AATPPwAEz0EABM9CAATPvQAEz78ABM/BAATPwwAEz8YABM/HAATPyAAEz8kABM/KAATPzAAEz84ABM/PAATP0AAEz9IABM/TAATQTgAE0FAABNBSAATQVAAE0FcABNBYAATQWQAE0FoABNBbAATQXQAE0F8ABNBgAATQYQAE0GMABNBkAATQrQAE0NEABND4AATRHAAE0R8ABNEhAATRIwAE0SUABNEnAATRKQAE0SoABNEtAATRRgAE0WMABNFlAATRZwAE0WkABNFrAATRbQAE0W8ABNFxAATRjgAE0ZEABNGUAATRlwAE0ZoABNGdAATRoAAE0aMABNGlAATSIAAE0iIABNIkAATSJgAE0ikABNIqAATSKwAE0iwABNItAATSLwAE0jEABNIyAATSMwAE0jUABNI2AATSsQAE0rMABNK2AATSuAAE0rsABNK8AATSvQAE0r4ABNK/AATSwQAE0sMABNLEAATSxQAE0scABNLIAATTQwAE00UABNNHAATTSQAE00wABNNNAATTTgAE008ABNNQAATTUgAE01QABNNVAATTVgAE01gABNNZAATT1AAE09YABNPZAATT2wAE094ABNPfAATT4AAE0+EABNPiAATT5AAE0+YABNPnAATT6AAE0+oABNPrAATUbgAE1JIABNS2AATU2QAE1QAABNUgAATVRwAE1W4ABNWOAATVsgAE1dYABNXYAATV2wAE1d0ABNXfAATV4QAE1eQABNXnAATV6QAE1esABNXuAATV8AAE1fIABNX1AATV+AAE1fkABNX+AATWFwAE1hwABNYeAATWIwAE1iYABNYoAATWcQAE1pUABNa8AATW4AAE1uMABNblAATW5wAE1ukABNbrAATW7QAE1u4ABNbxAATXCgAE1y8ABNcxAATXMwAE1zUABNc3AATXOQAE1zsABNc9AATXPwAE10EABNdmAATXaQAE12wABNdvAATXcgAE13UABNd4AATXewAE134ABNeBAATXgwAE1/4ABNgAAATYAwAE2AUABNgIAATYCQAE2AoABNgLAATYDAAE2A4ABNgQAATYEQAE2BIABNgUAATYFQAE2CYABNgnAATYKQAE2KQABNimAATYqAAE2KoABNitAATYrgAE2K8ABNiwAATYsQAE2LMABNi1AATYtgAE2LcABNi5AATYugAE2TUABNk3AATZOgAE2TwABNk/AATZQAAE2UEABNlCAATZQwAE2UUABNlHAATZSAAE2UkABNlLAATZTAAE2V0ABNleAATZYAAE2dsABNndAATZ3wAE2eEABNnkAATZ5QAE2eYABNnnAATZ6AAE2eoABNnsAATZ7QAE2e4ABNnwAATZ8QAE2mwABNpuAATacQAE2nMABNp2AATadwAE2ngABNp5AATaegAE2nwABNp+AATafwAE2oAABNqCAATagwAE2pQABNqVAATalwAE2xIABNsUAATbFgAE2xgABNsbAATbHAAE2x0ABNseAATbHwAE2yEABNsjAATbJAAE2yUABNsnAATbKAAE26MABNulAATbqAAE26oABNutAATbrgAE268ABNuwAATbsQAE27MABNu1AATbtgAE27cABNu5AATbugAE29MABNvUAATb1QAE29cABNxSAATcVAAE3FYABNxYAATcWwAE3FwABNxdAATcXgAE3F8ABNxhAATcYwAE3GQABNxlAATcZwAE3GgABNzjAATc5QAE3OgABNzqAATc7QAE3O4ABNzvAATc8AAE3PEABNzzAATc9QAE3PYABNz3AATc+QAE3PoABN0zAATdTAAE3VUABN1YAATdWwAE3WQABN1nAATdagAE3WwABN2PAATdqAAE3jsABN5eAATefgAE3p4ABN6gAATeogAE3qQABN6mAATeqQAE3qoABN6rAATergAE3q8ABN6xAATesgAE3rUABN64AATeuQAE3roABN69AATevgAE3sMABN7cAATe5QAE3ucABN7pAATe8gAE3vUABN74AATe+gAE30MABN9nAATfjgAE37IABN+1AATftwAE37kABN+7AATfvQAE378ABN/AAATfwwAE39wABN/9AATf/wAE4AEABOADAATgBQAE4AcABOAJAATgCwAE4A0ABOAuAATgMQAE4DQABOA3AATgOgAE4D0ABOBAAATgQwAE4EYABOBIAATgwwAE4MUABODHAATgyQAE4MwABODNAATgzgAE4M8ABODQAATg0gAE4NQABODVAATg1gAE4NgABODZAAThVAAE4VYABOFYAAThWgAE4V0ABOFeAAThXwAE4WAABOFhAAThYwAE4WUABOFmAAThZwAE4WkABOFqAATh5QAE4ecABOHqAATh7AAE4e8ABOHwAATh8QAE4fIABOHzAATh9QAE4fcABOH4AATh+QAE4fsABOH8AATiFQAE4hYABOIXAATiGQAE4pQABOKWAATimAAE4poABOKdAATingAE4p8ABOKgAATioQAE4qMABOKlAATipgAE4qcABOKpAATiqgAE4yUABOMnAATjKQAE4ysABOMuAATjLwAE4zAABOMxAATjMgAE4zQABOM2AATjNwAE4zgABOM6AATjOwAE47YABOO4AATjugAE47wABOO/AATjwAAE48EABOPCAATjwwAE48UABOPHAATjyAAE48kABOPLAATjzAAE5EcABORJAATkSwAE5E0ABORQAATkUQAE5FIABORTAATkVAAE5FYABORYAATkWQAE5FoABORcAATkXQAE5NgABOTaAATk3AAE5N4ABOThAATk4gAE5OMABOTkAATk5QAE5OcABOTpAATk6gAE5OsABOTtAATk7gAE5TcABOVbAATlggAE5aYABOWpAATlqwAE5a0ABOWvAATlsQAE5bMABOW0AATltwAE5dAABOXtAATl7wAE5fEABOXzAATl9QAE5fcABOX5AATl+wAE5hgABOYbAATmHgAE5iEABOYkAATmJwAE5ioABOYtAATmLwAE5qoABOasAATmrgAE5rAABOazAATmtAAE5rUABOa2AATmtwAE5rkABOa7AATmvAAE5r0ABOa/AATmwAAE5zsABOc9AATnPwAE50EABOdEAATnRQAE50YABOdHAATnSAAE50oABOdMAATnTQAE504ABOdQAATnUQAE58wABOfOAATn0AAE59IABOfVAATn1gAE59cABOfYAATn2QAE59sABOfdAATn3gAE598ABOfhAATn4gAE6F0ABOhfAAToYgAE6GQABOhnAAToaAAE6GkABOhqAAToawAE6G0ABOhvAATocAAE6HEABOhzAATodAAE6O8ABOjxAATo8wAE6PUABOj4AATo+QAE6PoABOj7AATo/AAE6P4ABOkAAATpAQAE6QIABOkEAATpBQAE6YAABOmCAATphAAE6YYABOmJAATpigAE6YsABOmMAATpjQAE6Y8ABOmRAATpkgAE6ZMABOmVAATplgAE6hEABOoTAATqFgAE6hgABOobAATqHAAE6h0ABOoeAATqHwAE6iEABOojAATqJAAE6iUABOonAATqKAAE6rsABOreAATq/gAE6x4ABOsgAATrIgAE6yQABOsmAATrKQAE6yoABOsrAATrLgAE6y8ABOsxAATrMgAE6zQABOs3AATrOAAE6zkABOs8AATrPQAE60IABOtbAATrZAAE62YABOtoAATrcQAE63QABOt3AATreQAE68IABOvmAATsDQAE7DEABOw0AATsNgAE7DgABOw6AATsPAAE7D4ABOw/AATsQgAE7FsABOx8AATsfgAE7IAABOyCAATshAAE7IYABOyIAATsigAE7IwABOytAATssAAE7LMABOy2AATsuQAE7LwABOy/AATswgAE7MUABOzHAATtQgAE7UQABO1GAATtSAAE7UsABO1MAATtTQAE7U4ABO1PAATtUQAE7VMABO1UAATtVQAE7VcABO1YAATt0wAE7dUABO3XAATt2QAE7dwABO3dAATt3gAE7d8ABO3gAATt4gAE7eQABO3lAATt5gAE7egABO3pAATuZAAE7mYABO5pAATuawAE7m4ABO5vAATucAAE7nEABO5yAATudAAE7nYABO53AATueAAE7noABO57AATulAAE7pUABO6WAATumAAE7xMABO8VAATvFwAE7xkABO8cAATvHQAE7x4ABO8fAATvIAAE7yIABO8kAATvJQAE7yYABO8oAATvKQAE76QABO+mAATvqAAE76oABO+tAATvrgAE768ABO+wAATvsQAE77MABO+1AATvtgAE77cABO+5AATvugAE8DUABPA3AATwOQAE8DsABPA+AATwPwAE8EAABPBBAATwQgAE8EQABPBGAATwRwAE8EgABPBKAATwSwAE8MYABPDIAATwygAE8MwABPDPAATw0AAE8NEABPDSAATw0wAE8NUABPDXAATw2AAE8NkABPDbAATw3AAE8VcABPFZAATxWwAE8V0ABPFgAATxYQAE8WIABPFjAATxZAAE8WYABPFoAATxaQAE8WoABPFsAATxbQAE8bYABPHaAATyAQAE8iUABPIoAATyKgAE8iwABPIuAATyMAAE8jIABPIzAATyNgAE8k8ABPJsAATybgAE8nAABPJyAATydAAE8nYABPJ4AATyegAE8pcABPKaAATynQAE8qAABPKjAATypgAE8qkABPKsAATyrgAE8ykABPMrAATzLQAE8y8ABPMyAATzMwAE8zQABPM1AATzNgAE8zgABPM6AATzOwAE8zwABPM+AATzPwAE87oABPO8AATzvgAE88AABPPDAATzxAAE88UABPPGAATzxwAE88kABPPLAATzzAAE880ABPPPAATz0AAE9EsABPRNAAT0TwAE9FEABPRUAAT0VQAE9FYABPRXAAT0WAAE9FoABPRcAAT0XQAE9F4ABPRgAAT0YQAE9NwABPTeAAT04AAE9OIABPTlAAT05gAE9OcABPToAAT06QAE9OsABPTtAAT07gAE9O8ABPTxAAT08gAE9W0ABPVvAAT1cQAE9XMABPV2AAT1dwAE9XgABPV5AAT1egAE9XwABPV+AAT1fwAE9YAABPWCAAT1gwAE9f4ABPYAAAT2AgAE9gQABPYHAAT2CAAE9gkABPYKAAT2CwAE9g0ABPYPAAT2EAAE9hEABPYTAAT2FAAE9o8ABPaRAAT2kwAE9pUABPaYAAT2mQAE9poABPabAAT2nAAE9p4ABPagAAT2oQAE9qIABPakAAT2pQAE9rYABPa7AAT2vgAE9sAABPb5AAT2/AAE9v4ABPcBAAT3BAAE9wcABPcKAAT3DwAE94oABPeMAAT3jgAE95AABPeTAAT3lAAE95UABPeWAAT3lwAE95kABPebAAT3nAAE950ABPefAAT3oAAE+BsABPgdAAT4HwAE+CEABPgkAAT4JQAE+CYABPgnAAT4KAAE+CoABPgsAAT4LQAE+C4ABPgwAAT4MQAE+KwABPiuAAT4sQAE+LMABPi2AAT4twAE+LgABPi5AAT4ugAE+LwABPi+AAT4vwAE+MAABPjCAAT4wwAE+VYABPl5AAT5mQAE+bkABPm7AAT5vQAE+b8ABPn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XAAUUWQAFFFoABRRbAAUUXQAFFF4ABRSnAAUUywAFFPIABRUWAAUVGQAFFRsABRUdAAUVHwAFFSEABRUjAAUVJAAFFScABRVAAAUVXQAFFV8ABRVhAAUVYwAFFWUABRVnAAUVaQAFFWsABRWIAAUViwAFFY4ABRWRAAUVlAAFFZcABRWaAAUVnQAFFZ8ABRYaAAUWHAAFFh8ABRYhAAUWJAAFFiUABRYmAAUWJwAFFigABRYqAAUWLAAFFi0ABRYuAAUWMAAFFjEABRasAAUWrgAFFrAABRayAAUWtQAFFrYABRa3AAUWuAAFFrkABRa7AAUWvQAFFr4ABRa/AAUWwQAFFsIABRc9AAUXPwAFF0EABRdDAAUXRgAFF0cABRdIAAUXSQAFF0oABRdMAAUXTgAFF08ABRdQAAUXUgAFF1MABRfOAAUX0AAFF9MABRfVAAUX2AAFF9kABRfaAAUX2wAFF9wABRfeAAUX4AAFF+EABRfiAAUX5AAFF+UABRhgAAUYYgAFGGQABRhmAAUYaQAFGGoABRhrAAUYbAAFGG0ABRhvAAUYcQAFGHIABRhzAAUYdQAFGHYABRjxAAUY8wAFGPUABRj3AAUY+gAFGPsABRj8AAUY/QAFGP4ABRkAAAUZAgAFGQMABRkEAAUZBgAFGQcABRmCAAUZhAAFGYYABRmIAAUZiwAFGYwABRmNAAUZjgAFGY8ABRmRAAUZkwAFGZQABRmVAAUZlwAFGZgABRorAAUaTgAFGm4ABRqOAAUakAAFGpIABRqUAAUalgAFGpkABRqaAAUamwAFGp4ABRqfAAUaoQAFGqIABRqlAAUaqAAFGqkABRqqAAUarQAFGq4ABRqzAAUazAAFGtUABRrXAAUa2QAFGuIABRrlAAUa6AAFGuoABRszAAUbVwAFG34ABRuiAAUbpQAFG6cABRupAAUbqwAFG60ABRuvAAUbsAAFG7MABRvMAAUb7QAFG+8ABRvxAAUb8wAFG/UABRv3AAUb+QAFG/sABRv9AAUcHgAFHCEABRwkAAUcJwAFHCoABRwtAAUcMAAFHDMABRw2AAUcOAAFHLMABRy1AAUctwAFHLkABRy8AAUcvQAFHL4ABRy/AAUcwAAFHMIABRzEAAUcxQAFHMYABRzIAAUcyQAFHUQABR1GAAUdSAAFHUoABR1NAAUdTgAFHU8ABR1QAAUdUQAFHVMABR1VAAUdVgAFHVcABR1ZAAUdWgAFHdUABR3XAAUd2gAFHdwABR3fAAUd4AAFHeEABR3iAAUd4wAFHeUABR3nAAUd6AAFHekABR3rAAUd7AAFHgUABR4GAAUeBwAFHgkABR6EAAUehgAFHogABR6KAAUejQAFHo4ABR6PAAUekAAFHpEABR6TAAUelQAFHpYABR6XAAUemQAFHpoABR8VAAUfFwAFHxkABR8bAAUfHgAFHx8ABR8gAAUfIQAFHyIABR8kAAUfJgAFHycABR8oAAUfKgAFHysABR+mAAUfqAAFH6oABR+sAAUfrwAFH7AABR+xAAUfsgAFH7MABR+1AAUftwAFH7gABR+5AAUfuwAFH7wABSA3AAUgOQAFIDsABSA9AAUgQAAFIEEABSBCAAUgQwAFIEQABSBGAAUgSAAFIEkABSBKAAUgTAAFIE0ABSDIAAUgygAFIMwABSDOAAUg0QAFINIABSDTAAUg1AAFINUABSDXAAUg2QAFINoABSDbAAUg3QAFIN4ABSEnAAUhSwAFIXIABSGWAAUhmQAFIZsABSGdAAUhnwAFIaEABSGjAAUhpAAFIacABSHAAAUh3QAFId8ABSHhAAUh4wAFIeUABSHnAAUh6QAFIesABSIIAAUiCwAFIg4ABSIRAAUiFAAFIhcABSIaAAUiHQAFIh8ABSKaAAUinAAFIp4ABSKgAAUiowAFIqQABSKlAAUipgAFIqcABSKpAAUiqwAFIqwABSKtAAUirwAFIrAABSMrAAUjLQAFIy8ABSMxAAUjNAAFIzUABSM2AAUjNwAFIzgABSM6AAUjPAAFIz0ABSM+AAUjQAAFI0EABSO8AAUjvgAFI8AABSPCAAUjxQAFI8YABSPHAAUjyAAFI8kABSPLAAUjzQAFI84ABSPPAAUj0QAFI9IABSRNAAUkTwAFJFIABSRUAAUkVwAFJFgABSRZAAUkWgAFJFsABSRdAAUkXwAFJGAABSRhAAUkYwAFJGQABSTfAAUk4QAFJOMABSTlAAUk6AAFJOkABSTqAAUk6wAFJOwABSTuAAUk8AAFJPEABSTyAAUk9AAFJPUABSVwAAUlcgAFJXQABSV2AAUleQAFJXoABSV7AAUlfAAFJX0ABSV/AAUlgQAFJYIABSWDAAUlhQAFJYYABSYBAAUmAwAFJgYABSY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LAAVbxgAFW8gABVvKAAVbzAAFW88ABVvQAAVb0QAFW9IABVvTAAVb1QAFW9cABVvYAAVb2QAFW9sABVvcAAVcVwAFXFkABVxbAAVcXQAFXGAABVxhAAVcYgAFXGMABVxkAAVcZgAFXGgABVxpAAVcagAFXGwABVxtAAVc6AAFXOoABVzsAAVc7gAFXPEABVzyAAVc8wAFXPQABVz1AAVc9wAFXPkABVz6AAVc+wAFXP0ABVz+AAVdeQAFXXsABV19AAVdfwAFXYIABV2DAAVdhAAFXYUABV2GAAVdiAAFXYoABV2LAAVdjAAFXY4ABV2PAAVeCgAFXgwABV4OAAVeEAAFXhMABV4UAAVeFQAFXhYABV4XAAVeGQAFXhsABV4cAAVeHQAFXh8ABV4gAAVeaQAFXo0ABV60AAVe2AAFXtsABV7dAAVe3wAFXuEABV7jAAVe5QAFXuYABV7pAAVfAgAFXx8ABV8hAAVfIwAFXyUABV8nAAVfKQAFXysABV8tAAVfSgAFX00ABV9QAAVfUwAFX1YABV9ZAAVfXAAFX18ABV9hAAVf3AAFX94ABV/gAAVf4gAFX+UABV/mAAVf5wAFX+gABV/pAAVf6wAFX+0ABV/uAAVf7wAFX/EABV/yAAVgbQAFYG8ABWBxAAVgcwAFYHYABWB3AAVgeAAFYHkABWB6AAVgfAAFYH4ABWB/AAVggAAFYIIABWCDAAVg/gAFYQAABWECAAVhBAAFYQcABWEIAAVhCQAFYQoABWELAAVhDQAFYQ8ABWEQAAVhEQAFYRMABWEUAAVhjwAFYZEABWGUAAVhlgAFYZkABWGaAAVhmwAFYZwABWGdAAVhnwAFYaEABWGiAAVhowAFYaUABWGmAAViIQAFYiMABWIlAAViJwAFYioABWIrAAViLAAFYi0ABWIuAAViMAAFYjIABWIzAAViNAAFYjYABWI3AAVisgAFYrQABWK2AAViuAAFYrsABWK8AAVivQAFYr4ABWK/AAViwQAFYsMABWLEAAVixQAFYscABWLIAAVjQwAFY0UABWNIAAVjSgAFY00ABWNOAAVjTwAFY1AABWNRAAVjUwAFY1UABWNWAAVjVwAFY1kABWNaAAVj7QAFZBAABWQwAAVkUAAFZFIABWRUAAVkVgAFZFgABWRbAAVkXAAFZF0ABWRgAAVkYQAFZGMABWRkAAVkZwAFZGoABWRrAAVkbAAFZG8ABWRwAAVkdQAFZI4ABWSXAAVkmQAFZJsABWSkAAVkpwAFZKoABWSsAAVk9QAFZRkABWVAAAVlZAAFZWcABWVpAAVlawAFZW0ABWVvAAVlcQAFZXIABWV1AAVljgAFZa8ABWWxAAVlswAFZbUABWW3AAVluQAFZbsABWW9AAVlvwAFZeAABWXjAAVl5gAFZekABWXsAAVl7wAFZfIABWX1AAVl+AAFZfoABWZ1AAVmdwAFZnkABWZ7AAVmfgAFZn8ABWaAAAVmgQAFZoIABWaEAAVmhgAFZocABWaIAAVmigAFZosABWcGAAVnCAAFZwoABWcMAAVnDwAFZxAABWcRAAVnEgAFZxMABWcVAAVnFwAFZxgABWcZAAVnGwAFZxwABWeXAAVnmQAFZ5wABWeeAAVnoQAFZ6IABWejAAVnpAAFZ6UABWenAAVnqQAFZ6oABWerAAVnrQAFZ64ABWfHAAVnyAAFZ8kABWfLAAVoRgAFaEgABWhKAAVoTAAFaE8ABWhQAAVoUQAFaFIABWhTAAVoVQAFaFcABWhYAAVoWQAFaFsABWhcAAVo1wAFaNkABWjbAAVo3QAFaOAABWjhAAVo4gAFaOMABWjkAAVo5gAFaOgABWjpAAVo6gAFaOwABWjtAAVpaAAFaWoABWlsAAVpbgAFaXEABWlyAAVpcwAFaXQABWl1AAVpdwAFaXkABWl6AAVpewAFaX0ABWl+AAVp+QAFafsABWn9AAVp/wAFagIABWoDAAVqBAAFagUABWoGAAVqCAAFagoABWoLAAVqDAAFag4ABWoPAAVqigAFaowABWqOAAVqkAAFapMABWqUAAVqlQAFapYABWqXAAVqmQAFapsABWqcAAVqnQAFap8ABWqgAAVq6QAFaw0ABWs0AAVrWAAFa1sABWtdAAVrXwAFa2EABWtjAAVrZQAFa2YABWtpAAVrggAFa58ABWuhAAVrowAFa6UABWunAAVrqQAFa6sABWutAAVrygAFa80ABWvQAAVr0wAFa9YABWvZAAVr3AAFa98ABWvhAAVsXAAFbF4ABWxgAAVsYgAFbGUABWxmAAVsZwAFbGgABWxpAAVsawAFbG0ABWxuAAVsbwAFbHEABWxyAAVs7QAFbO8ABWzyAAVs9AAFbPcABWz4AAVs+QAFbPoABWz7AAVs/QAFbP8ABW0AAAVtAQAFbQMABW0EAAVtfwAFbYEABW2DAAVthQAFbYgABW2JAAVtigAFbYsABW2MAAVtjgAFbZAABW2RAAVtkgAFbZQABW2VAAVuEAAFbhIABW4VAAVuFwAFbhoABW4bAAVuHAAFbh0ABW4eAAVuIAAFbiIABW4jAAVuJAAFbiYABW4nAAVuqgAFbs4ABW7yAAVvFQAFbzwABW9cAAVvgwAFb6oABW/KAAVv7gAFcBIABXAUAAVwFwAFcBkABXAbAAVwHQAFcCAABXAjAAVwJQAFcCcABXAqAAVwLAAFcC4ABXAxAAVwNAAFcDUABXA6AAVwUwAFcFgABXBaAAVwXwAFcGIABXBkAAVwrQAFcNEABXD4AAVxHAAFcR8ABXEhAAVxIwAFcSUABXEnAAVxKQAFcSoABXEtAAVxRgAFcWsABXFtAAVxbwAFcXEABXFzAAVxdQAFcXcABXF5AAVxewAFcX0ABXGiAAVxpQAFcagABXGrAAVxrgAFcbEABXG0AAVxtwAFcboABXG9AAVxvwAFcjoABXI8AAVyPwAFckEABXJEAAVyRQAFckYABXJHAAVySAAFckoABXJMAAVyTQAFck4ABXJQAAVyUQAFcmIABXJjAAVyZQAFcuAABXLiAAVy5AAFcuYABXLpAAVy6gAFcusABXLsAAVy7QAFcu8ABXLxAAVy8gAFcvMABXL1AAVy9gAFc3EABXNzAAVzdgAFc3gABXN7AAVzfAAFc30ABXN+AAVzfwAFc4EABXODAAVzhAAFc4UABXOHAAVziAAFc5kABXOaAAVznAAFdBcABXQZAAV0GwAFdB0ABXQgAAV0IQAFdCIABXQjAAV0JAAFdCYABXQoAAV0KQAFdCoABXQsAAV0LQAFdKgABXSqAAV0rQAFdK8ABXSyAAV0swAFdLQABXS1AAV0tgAFdLgABXS6AAV0uwAFdLwABXS+AAV0vwAFdNAABXTRAAV00wAFdU4ABXVQAAV1UgAFdVQABXVXAAV1WAAFdVkABXVaAAV1WwAFdV0ABXVfAAV1YAAFdWEABXVjAAV1ZAAFdd8ABXXhAAV15AAFdeYABXXpAAV16gAFdesABXXsAAV17QAFde8ABXXxAAV18gAFdfMABXX1AAV19gAFdg8ABXYQAAV2EQAFdhMABXaOAAV2kAAFdpIABXa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7AAWZvgAFmb8ABZnAAAWZwQAFmcIABZnEAAWZxgAFmccABZnIAAWZygAFmcsABZpGAAWaSAAFmkoABZpMAAWaTwAFmlAABZpRAAWaUgAFmlMABZpVAAWaVwAFmlgABZpZAAWaWwAFmlwABZrXAAWa2QAFmtsABZrdAAWa4AAFmuEABZriAAWa4wAFmuQABZrmAAWa6AAFmukABZrqAAWa7AAFmu0ABZtoAAWbagAFm20ABZtvAAWbcgAFm3MABZt0AAWbdQAFm3YABZt4AAWbegAFm3sABZt8AAWbfgAFm38ABZv6AAWb/AAFm/4ABZwAAAWcAwAFnAQABZwFAAWcBgAFnAcABZwJAAWcCwAFnAwABZwNAAWcDwAFnBAABZyLAAWcjQAFnI8ABZyRAAWclAAFnJUABZyWAAWclwAFnJgABZyaAAWcnAAFnJ0ABZyeAAWcoAAFnKEABZ0cAAWdHgAFnSEABZ0jAAWdJgAFnScABZ0oAAWdKQAFnSoABZ0sAAWdLgAFnS8ABZ0wAAWdMgAFnTMABZ1EAAWdRQAFnUcABZ3CAAWdxAAFncYABZ3IAAWdywAFncwABZ3NAAWdzgAFnc8ABZ3RAAWd0wAFndQABZ3VAAWd1wAFndgABZ5TAAWeVQAFnlcABZ5ZAAWeXAAFnl0ABZ5eAAWeXwAFnmAABZ5iAAWeZAAFnmUABZ5mAAWeaAAFnmkABZ7kAAWe5gAFnukABZ7rAAWe7gAFnu8ABZ7wAAWe8QAFnvIABZ70AAWe9gAFnvcABZ74AAWe+gAFnvsABZ+OAAWfsQAFn9EABZ/xAAWf8wAFn/UABZ/3AAWf+QAFn/wABZ/9AAWf/gAFoAEABaACAAWgBAAFoAUABaAHAAWgCgAFoAsABaAMAAWgDwAFoBAABaAZAAWgMgAFoDsABaA9AAWgPwAFoEgABaBLAAWgTgAFoFAABaCZAAWgvQAFoOQABaEIAAWhCwAFoQ0ABaEPAAWhEQAFoRMABaEVAAWhFgAFoRkABaEyAAWhUwAFoVUABaFXAAWhWQAFoVsABaFdAAWhXwAFoWEABaFjAAWhhAAFoYcABaGKAAWhjQAFoZAABaGTAAWhlgAFoZkABaGcAAWhngAFohkABaIbAAWiHQAFoh8ABaIiAAWiIwAFoiQABaIlAAWiJgAFoigABaIqAAWiKwAFoiwABaIuAAWiLwAFoqoABaKsAAWirgAForAABaKzAAWitAAForUABaK2AAWitwAForkABaK7AAWivAAFor0ABaK/AAWiwAAFozsABaM9AAWjQAAFo0IABaNFAAWjRgAFo0cABaNIAAWjSQAFo0sABaNNAAWjTgAFo08ABaNRAAWjUgAFo2sABaNsAAWjbQAFo28ABaPqAAWj7AAFo+4ABaPwAAWj8wAFo/QABaP1AAWj9gAFo/cABaP5AAWj+wAFo/wABaP9AAWj/wAFpAAABaR7AAWkfQAFpH8ABaSBAAWkhAAFpIUABaSGAAWkhwAFpIgABaSKAAWkjAAFpI0ABaSOAAWkkAAFpJEABaUMAAWlDgAFpRAABaUSAAWlFQAFpRYABaUXAAWlGAAFpRkABaUbAAWlHQAFpR4ABaUfAAWlIQAFpSIABaWdAAWlnwAFpaEABaWjAAWlpgAFpacABaWoAAWlqQAFpaoABaWsAAWlrgAFpa8ABaWwAAWlsgAFpbMABaYuAAWmMAAFpjIABaY0AAWmNwAFpjgABaY5AAWmOgAFpjsABaY9AAWmPwAFpkAABaZBAAWmQwAFpkQABaaNAAWmsQAFptgABab8AAWm/wAFpwEABacDAAWnBQAFpwcABacJAAWnCgAFpw0ABacmAAWnQwAFp0UABadHAAWnSQAFp0sABadNAAWnTwAFp1EABaduAAWncQAFp3QABad3AAWnegAFp30ABaeAAAWngwAFp4UABagAAAWoAgAFqAQABagGAAWoCQAFqAoABagLAAWoDAAFqA0ABagPAAWoEQAFqBIABagTAAWoFQAFqBYABaiRAAWokwAFqJUABaiXAAWomgAFqJsABaicAAWonQAFqJ4ABaigAAWoogAFqKMABaikAAWopgAFqKcABakiAAWpJAAFqSYABakoAAWpKwAFqSwABaktAAWpLgAFqS8ABakxAAWpMwAFqTQABak1AAWpNwAFqTgABamzAAWptQAFqbcABam5AAWpvAAFqb0ABam+AAWpvwAFqcAABanCAAWpxAAFqcUABanGAAWpyAAFqckABapEAAWqRgAFqkgABapKAAWqTQAFqk4ABapPAAWqUAAFqlEABapTAAWqVQAFqlYABapXAAWqWQAFqloABarVAAWq1wAFqtkABarbAAWq3gAFqt8ABargAAWq4QAFquIABarkAAWq5gAFqucABaroAAWq6gAFqusABatmAAWraAAFq2oABatsAAWrbwAFq3AABatxAAWrcgAFq3MABat1AAWrdwAFq3gABat5AAWrewAFq3wABawPAAWsMgAFrFIABaxyAAWsdAAFrHYABax4AAWsegAFrH0ABax+AAWsfwAFrIIABayDAAWshQAFrIYABayIAAWsiwAFrIwABayNAAWskAAFrJEABayWAAWsrwAFrLgABay6AAWsvAAFrMUABazIAAWsywAFrM0ABa0WAAWtOgAFrWEABa2FAAWtiAAFrYoABa2MAAWtjgAFrZAABa2SAAWtkwAFrZYABa2vAAWt0AAFrdIABa3UAAWt1gAFrdgABa3aAAWt3AAFrd4ABa3gAAWuAQAFrgQABa4HAAWuCgAFrg0ABa4QAAWuEwAFrhYABa4ZAAWuGwAFrpYABa6YAAWumgAFrpwABa6fAAWuoAAFrqEABa6iAAWuowAFrqUABa6nAAWuqAAFrqkABa6rAAWurAAFrycABa8pAAWvKwAFry0ABa8wAAWvMQAFrzIABa8zAAWvNAAFrzYABa84AAWvOQAFrzoABa88AAWvPQAFr7gABa+6AAWvvQAFr78ABa/CAAWvwwAFr8QABa/FAAWvxgAFr8gABa/KAAWvywAFr8wABa/OAAWvzwAFr+gABa/pAAWv6gAFr+wABbBnAAWwaQAFsGsABbBtAAWwcAAFsHEABbByAAWwcwAFsHQABbB2AAWweAAFsHkABbB6AAWwfAAFsH0ABbD4AAWw+gAFsPwABbD+AAWxAQAFsQIABbEDAAWxBAAFsQUABbEHAAWxCQAFsQoABbELAAWxDQAFsQ4ABbGJAAWxiwAFsY0ABbGPAAWxkgAFsZMABbGUAAWxlQAFsZYABbGYAAWxmgAFsZsABbGcAAWxngAFsZ8ABbIaAAWyHAAFsh4ABbIgAAWyIwAFsiQABbIlAAWyJgAFsicABbIpAAWyKwAFsiwABbItAAWyLwAFsjAABbKrAAWyrQAFsq8ABbKxAAWytAAFsrUABbK2AAWytwAFsrgABbK6AAWyvAAFsr0ABbK+AAWywAAFssEABbMKAAWzLgAFs1UABbN5AAWzfAAFs34ABbOAAAWzggAFs4QABbOGAAWzhwAFs4oABbOjAAWzwAAFs8IABbPEAAWzxgAFs8gABbP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CAAXXBAAF1wYABdcIAAXXCwAF1wwABdcNAAXXDgAF1w8ABdcRAAXXEwAF1xQABdcVAAXXFwAF1xgABdeTAAXXlQAF15cABdeZAAXXnAAF150ABdeeAAXXnwAF16AABdeiAAXXpAAF16UABdemAAXXqAAF16kABdgkAAXYJgAF2CgABdgqAAXYLQAF2C4ABdgvAAXYMAAF2DEABdgzAAXYNQAF2DYABdg3AAXYOQAF2DoABdiDAAXYpwAF2M4ABdjyAAXY9QAF2PcABdj5AAXY+wAF2P0ABdj/AAXZAAAF2QMABdkcAAXZOQAF2TsABdk9AAXZPwAF2UEABdlDAAXZRQAF2UcABdlkAAXZZwAF2WoABdltAAXZcAAF2XMABdl2AAXZeQAF2XsABdn2AAXZ+AAF2foABdn8AAXZ/wAF2gAABdoBAAXaAgAF2gMABdoFAAXaBwAF2ggABdoJAAXaCwAF2gwABdqHAAXaiQAF2osABdqNAAXakAAF2pEABdqSAAXakwAF2pQABdqWAAXamAAF2pkABdqaAAXanAAF2p0ABdsYAAXbGgAF2xwABdseAAXbIQAF2yIABdsjAAXbJAAF2yUABdsnAAXbKQAF2yoABdsrAAXbLQAF2y4ABdupAAXbqwAF264ABduwAAXbswAF27QABdu1AAXbtgAF27cABdu5AAXbuwAF27wABdu9AAXbvwAF28AABdw7AAXcPQAF3D8ABdxBAAXcRAAF3EUABdxGAAXcRwAF3EgABdxKAAXcTAAF3E0ABdxOAAXcUAAF3FEABdzMAAXczgAF3NAABdzSAAXc1QAF3NYABdzXAAXc2AAF3NkABdzbAAXc3QAF3N4ABdzfAAXc4QAF3OIABd1dAAXdXwAF3WEABd1jAAXdZgAF3WcABd1oAAXdaQAF3WoABd1sAAXdbgAF3W8ABd1wAAXdcgAF3XMABd4GAAXeKQAF3kkABd5pAAXeawAF3m0ABd5vAAXecQAF3nQABd51AAXedgAF3nkABd56AAXefAAF3n0ABd5/AAXeggAF3oMABd6EAAXehwAF3ogABd6NAAXepgAF3q8ABd6xAAXeswAF3rwABd6/AAXewgAF3sQABd8NAAXfMQAF31gABd98AAXffwAF34EABd+DAAXfhQAF34cABd+JAAXfigAF340ABd+mAAXfxwAF38kABd/LAAXfzQAF388ABd/RAAXf0wAF39UABd/XAAXf+AAF3/sABd/+AAXgAQAF4AQABeAHAAXgCgAF4A0ABeAQAAXgEgAF4I0ABeCPAAXgkQAF4JMABeCWAAXglwAF4JgABeCZAAXgmgAF4JwABeCeAAXgnwAF4KAABeCiAAXgowAF4R4ABeEgAAXhIgAF4SQABeEnAAXhKAAF4SkABeEqAAXhKwAF4S0ABeEvAAXhMAAF4TEABeEzAAXhNAAF4a8ABeGxAAXhtAAF4bYABeG5AAXhugAF4bsABeG8AAXhvQAF4b8ABeHBAAXhwgAF4cMABeHFAAXhxgAF4d8ABeHgAAXh4QAF4eMABeJeAAXiYAAF4mIABeJkAAXiZwAF4mgABeJpAAXiagAF4msABeJtAAXibwAF4nAABeJxAAXicwAF4nQABeLvAAXi8QAF4vMABeL1AAXi+AAF4vkABeL6AAXi+wAF4vwABeL+AAXjAAAF4wEABeMCAAXjBAAF4wUABeOAAAXjggAF44QABeOGAAXjiQAF44oABeOLAAXjjAAF440ABeOPAAXjkQAF45IABeOTAAXjlQAF45YABeQRAAXkEwAF5BUABeQXAAXkGgAF5BsABeQcAAXkHQAF5B4ABeQgAAXkIgAF5CMABeQkAAXkJgAF5CcABeSiAAXkpAAF5KYABeSoAAXkqwAF5KwABeStAAXkrgAF5K8ABeSxAAXkswAF5LQABeS1AAXktwAF5LgABeUBAAXlJQAF5UwABeVwAAXlcwAF5XUABeV3AAXleQAF5XsABeV9AAXlfgAF5YEABeWaAAXltwAF5bkABeW7AAXlvQAF5b8ABeXBAAXlwwAF5cUABeXiAAXl5QAF5egABeXrAAXl7gAF5fEABeX0AAXl9wAF5fkABeZ0AAXmdgAF5ngABeZ6AAXmfQAF5n4ABeZ/AAXmgAAF5oEABeaDAAXmhQAF5oYABeaHAAXmiQAF5ooABecFAAXnBwAF5wkABecLAAXnDgAF5w8ABecQAAXnEQAF5xIABecUAAXnFgAF5xcABecYAAXnGgAF5xsABeeWAAXnmAAF55oABeecAAXnnwAF56AABeehAAXnogAF56MABeelAAXnpwAF56gABeepAAXnqwAF56wABegnAAXoKQAF6CsABegtAAXoMAAF6DEABegyAAXoMwAF6DQABeg2AAXoOAAF6DkABeg6AAXoPAAF6D0ABei4AAXougAF6LwABei+AAXowQAF6MIABejDAAXoxAAF6MUABejHAAXoyQAF6MoABejLAAXozQAF6M4ABelJAAXpSwAF6U0ABelPAAXpUgAF6VMABelUAAXpVQAF6VYABelYAAXpWgAF6VsABelcAAXpXgAF6V8ABenaAAXp3AAF6d4ABengAAXp4wAF6eQABenlAAXp5gAF6ecABenpAAXp6wAF6ewABentAAXp7wAF6fAABeqDAAXqpgAF6sYABermAAXq6AAF6uoABersAAXq7gAF6vEABeryAAXq8wAF6vYABer3AAXq+QAF6voABer8AAXq/wAF6wAABesBAAXrBAAF6wUABesKAAXrIwAF6ywABesuAAXrMAAF6zkABes8AAXrPwAF60EABeuKAAXrrgAF69UABev5AAXr/AAF6/4ABewAAAXsAgAF7AQABewGAAXsBwAF7AoABewjAAXsRAAF7EYABexIAAXsSgAF7EwABexOAAXsUAAF7FIABexUAAXsdQAF7HgABex7AAXsfgAF7IEABeyEAAXshwAF7IoABeyNAAXsjwAF7QoABe0MAAXtDgAF7RAABe0TAAXtFAAF7RUABe0WAAXtFwAF7RkABe0bAAXtHAAF7R0ABe0fAAXtIAAF7ZsABe2dAAXtnwAF7aEABe2kAAXtpQAF7aYABe2nAAXtqAAF7aoABe2sAAXtrQAF7a4ABe2wAAXtsQAF7iwABe4uAAXuMQAF7jMABe42AAXuNwAF7jgABe45AAXuOgAF7jwABe4+AAXuPwAF7kAABe5CAAXuQwAF7lwABe5dAAXuXgAF7mAABe7bAAXu3QAF7t8ABe7hAAXu5AAF7uUABe7mAAXu5wAF7ugABe7qAAXu7AAF7u0ABe7uAAXu8AAF7vEABe9sAAXvbgAF73AABe9yAAXvdQAF73YABe93AAXveAAF73kABe97AAXvfQAF734ABe9/AAXvgQAF74IABe/9AAXv/wAF8AEABfADAAXwBgAF8AcABfAIAAXwCQAF8AoABfAMAAXwDgAF8A8ABfAQAAXwEgAF8BMABfCOAAXwkAAF8JIABfCUAAXwlwAF8JgABfCZAAXwmgAF8JsABfCdAAXwnwAF8KAABfChAAXwowAF8KQABfEfAAXxIQAF8SMABfElAAXxKAAF8SkABfEqAAXxKwAF8SwABfEuAAXxMAAF8TEABfEyAAXxNAAF8TUABfF+AAXxogAF8ckABfHtAAXx8AAF8fIABfH0AAXx9gAF8fgABfH6AAXx+wAF8f4ABfIXAAXyNAAF8jYABfI4AAXyOgAF8jwABfI+AAXyQAAF8kIABfJfAAXyYgAF8mUABfJoAAXyawAF8m4ABfJxAAXydAAF8nYABfLxAAXy8wAF8vUABfL3AAXy+gAF8vsABfL8AAXy/QAF8v4ABfMAAAXzAgAF8wMABfMEAAXzBgAF8wcABfOCAAXzhAAF84YABfOIAAXziwAF84wABfONAAXzjgAF848ABfORAAXzkwAF85QABfOVAAXzlwAF85gABfQTAAX0FQAF9BcABfQZAAX0HAAF9B0ABfQeAAX0HwAF9CAABfQiAAX0JAAF9CUABfQmAAX0KAAF9CkABfSkAAX0pgAF9KkABfSrAAX0rgAF9K8ABfSwAAX0sQAF9LIABfS0AAX0tgAF9LcABfS4AAX0ugAF9LsABfU2AAX1OAAF9ToABfU8AAX1PwAF9UAABfVBAAX1QgAF9UMABfVFAAX1RwAF9UgABfVJAAX1SwAF9UwABfXHAAX1yQAF9csABfXNAAX10AAF9dEABfXSAAX10wAF9dQABfXWAAX12AAF9dkABfXaAAX13AAF9d0ABfZYAAX2WgAF9lwABfZeAAX2YQAF9mIABfZjAAX2ZAAF9mUABfZnAAX2aQAF9moABfZrAAX2bQAF9m4ABfcBAAX3JAAF90QABfdkAAX3ZgAF92gABfdqAAX3bAAF928ABfdwAAX3cQAF93QABfd1AAX3dwAF93gABfd6AAX3fQAF934ABfd/AAX3ggAF94MABfeMAAX3pQAF964ABfewAAX3sgAF97sABfe+AAX3wQAF98MABfgMAAX4MAAF+FcABfh7AAX4fgAF+IAABfiCAAX4hAAF+IYABfiIAAX4iQAF+IwABfilAAX4xgAF+MgABfjKAAX4zAAF+M4ABfjQAAX40gAF+NQABfjWAAX49wAF+PoABfj9AAX5AAAF+QMABfkGAAX5CQAF+QwABfkPAAX5EQAF+YwABfmOAAX5kAAF+ZIABfmVAAX5lgAF+ZcABfmYAAX5mQAF+ZsABfmdAAX5ngAF+Z8ABfmhAAX5ogAF+h0ABfofAAX6IQAF+iMABfomAAX6JwAF+igABfopAAX6KgAF+iwABfouAAX6LwAF+jAABfoyAAX6MwAF+q4ABfqwAAX6swAF+rUABfq4AAX6uQAF+roABfq7AAX6vAAF+r4ABfrAAAX6wQAF+sIABfrEAAX6xQAF+t4ABfrfAAX64AAF+uIABftdAAX7XwAF+2EABftjAAX7ZgAF+2cABftoAAX7aQAF+2oABftsAAX7bgAF+28ABftwAAX7cgAF+3MABfvuAAX78AAF+/IABfv0AAX79wAF+/gABfv5AAX7+gAF+/sABfv9AAX7/wAF/AAABfwBAAX8AwAF/AQABfx/AAX8gQAF/IMABfyFAAX8iAAF/IkABfyKAAX8iwAF/IwABfyOAAX8kAAF/JEABfySAAX8lAAF/JUABf0QAAX9EgAF/RQABf0WAAX9GQAF/RoABf0bAAX9HAAF/R0ABf0fAAX9IQAF/SIABf0jAAX9JQAF/SYABf2hAAX9owAF/aUABf2nAAX9qgAF/asABf2sAAX9rQAF/a4ABf2wAAX9sgAF/bMABf20AAX9tgAF/bcABf4AAAX+JAAF/ksABf5vAAX+cgAF/nQABf52AAX+eAAF/noABf58AAX+fQAF/oAABf6ZAAX+tgAF/rgABf66AAX+vAAF/r4ABf7AAAX+wgAF/sQABf7hAAX+5AAF/ucABf7qAAX+7QAF/vAABf7zAAX+9gAF/vgABf9zAAX/dQAF/3cABf95AAX/fAAF/30ABf9+AAX/fwAF/4AABf+CAAX/hAAF/4UABf+GAAX/iAAF/4kABgAEAAYABgAGAAgABgAKAAYADQAGAA4ABgAPAAYAEAAGABEABgATAAYAFQAGABYABgAXAAYAGQAGABoABgCVAAYAlwAGAJkABgCbAAYAngAGAJ8ABgCgAAYAoQAGAKIABgCkAAYApgAGAKcABgCoAAYAqgAGAKsABgEmAAYBKAAGASoABgEsAAYBLwAGATAABgExAAYBMgAGATMABgE1AAYBNwAGATgABgE5AAYBOwAGATwABgG3AAYBuQAGAbsABgG9AAYBwAAGAcEABgHCAAYBwwAGAcQABgHGAAYByAAGAckABgHKAAYBzAAGAc0ABgJIAAYCSgAGAkwABgJOAAYCUQAGAlIABgJTAAYCVAAGAlUABgJXAAYCWQAGAloABgJbAAYCXQAGAl4ABgLZAAYC2wAGAt0ABgLfAAYC4gAGAuMABgLkAAYC5QAGAuYABgLoAAYC6gAGAusABgLsAAYC7gAGAu8ABgOCAAYDpQAGA8UABgPlAAYD5wAGA+kABgPrAAYD7QAGA/AABgPxAAYD8gAGA/UABgP2AAYD+AAGA/kABgP7AAYD/gAGA/8ABgQAAAYEAwAGBAQABgQJAAYEIgAGBCsABgQtAAYELwAGBDgABgQ7AAYEPgAGBEAABgSJAAYErQAGBNQABgT4AAYE+wAGBP0ABgT/AAYFAQAGBQMABgUFAAYFBgAGBQkABgUiAAYFQwAGBUUABgVHAAYFSQAGBUsABgVNAAYFTwAGBVEABgVTAAYFdAAGBXcABgV6AAYFfQAGBYAABgWDAAYFhgAGBYkABgWMAAYFjgAGBgkABgYLAAYGDQAGBg8ABgYSAAYGEwAGBhQABgYVAAYGFgAGBhgABgYaAAYGGwAGBhwABgYeAAYGHwAGBpoABgacAAYGngAGBqAABgajAAYGpAAGBqUABgamAAYGpwAGBqkABgarAAYGrAAGBq0ABgavAAYGsAAGBysABgctAAYHMAAGBzIABgc1AAYHNgAGBzcABgc4AAYHOQAGBzsABgc9AAYHPgAGBz8ABgdBAAYHQgAGB1sABgdcAAYHXQAGB18ABgfaAAYH3AAGB94ABgfgAAYH4wAGB+QABgflAAYH5gAGB+cABgfpAAYH6wAGB+wABgftAAYH7wAGB/AABghrAAYIbQAGCG8ABghxAAYIdAAGCHUABgh2AAYIdwAGCHgABgh6AAYIfAAGCH0ABgh+AAYIgAAGCIEABgj8AAYI/gAGCQAABgkCAAYJBQAGCQYABgkHAAYJCAAGCQkABgkLAAYJDQAGCQ4ABgkPAAYJEQAGCRIABgmNAAYJjwAGCZEABgmTAAYJlgAGCZcABgmYAAYJmQAGCZoABgmcAAYJngAGCZ8ABgmgAAYJogAGCaMABgoeAAYKIAAGCiIABgokAAYKJwAGCigABgopAAYKKgAGCisABgotAAYKLwAGCjAABgoxAAYKMwAGCjQABgp9AAYKoQAGCsgABgrsAAYK7wAGCvEABgrzAAYK9QAGCvcABgr5AAYK+gAGCv0ABgsWAAYLMwAGCzUABgs3AAYLOQAGCzsABgs9AAYLPwAGC0EABgteAAYLYQAGC2QABgtnAAYLagAGC20ABgtwAAYLcwAGC3UABgvwAAYL8gAGC/QABgv2AAYL+QAGC/oABgv7AAYL/AAGC/0ABgv/AAYMAQAGDAIABgwDAAYMBQAGDAYABgyBAAYMgwAGDIUABgyHAAYMigAGDIsABgyMAAYMjQAGDI4ABgyQAAYMkgAGDJMABgyUAAYMlgAGDJcABg0SAAYNFAAGDRYABg0YAAYNGwAGDRwABg0dAAYNHgAGDR8ABg0hAAYNIwAGDSQABg0lAAYNJwAGDSgABg2jAAYNpQAGDacABg2pAAYNrAAGDa0ABg2uAAYNrwAGDbAABg2yAAYNtAAGDbUABg22AAYNuAAGDbkABg40AAYONgAGDjgABg46AAYOPQAGDj4ABg4/AAYOQAAGDkEABg5DAAYORQAGDkYABg5HAAYOSQAGDkoABg7FAAYOxwAGDskABg7LAAYOzgAGDs8ABg7QAAYO0QAGDtIABg7UAAYO1gAGDtcABg7YAAYO2gAGDtsABg9WAAYPWAAGD1oABg9cAAYPXwAGD2AABg9hAAYPYgAGD2MABg9lAAYPZwAGD2gABg9pAAYPawAGD2wABg99AAYPfgAGD4AABg/7AAYP/QAGD/8ABhABAAYQBAAGEAUABhAGAAYQBwAGEAgABhAKAAYQDAAGEA0ABhAOAAYQEAAGEBEABhCMAAYQjgAGEJAABhCSAAYQlQAGEJYABhCXAAYQmAAGEJkABhCbAAYQnQAGEJ4ABhCfAAYQoQAGEKIABhEdAAYRHwAGESIABhEkAAYRJwAGESgABhEpAAYRKgAGESsABhEtAAYRLwAGETAABhExAAYRMwAGETQABhFFAAYRSgAGEU0ABhFPAAYRiAAGEYsABhGNAAYRkAAGEZMABhGWAAYRmQAGEZ4ABhIZAAYSGwAGEh0ABhIfAAYSIgAGEiMABhIkAAYSJQAGEiYABhIoAAYSKgAGEisABhIsAAYSLgAGEi8ABhKqAAYSrAAGEq4ABhKwAAYSswAGErQABhK1AAYStgAGErcABhK5AAYSuwAGErwABhK9AAYSvwAGEsAABhM7AAYTPQAGE0AABhNCAAYTRQAGE0YABhNHAAYTSAAGE0kABhNLAAYTTQAGE04ABhNPAAYTUQAGE1IABhNjAAYTaAAGE2sABhNtAAYTdgAGE/EABhPzAAYT9QAGE/cABhP6AAYT+wAGE/wABhP9AAYT/gAGFAAABhQCAAYUAwAGFAQABhQGAAYUBwAGFIIABhSEAAYUhgAGFIgABhSLAAYUjAAGFI0ABhSOAAYUjwAGFJEABhSTAAYUlAAGFJUABhSXAAYUmAAGFRMABhUVAAYVGAAGFRoABhUdAAYVHgAGFR8ABhUgAAYVIQAGFSMABhUlAAYVJgAGFScABhUpAAYVKgAGFb0ABhXgAAYWAAAGFiAABhYiAAYWJAAGFiYABhYoAAYWKwAGFiwABhYtAAYWMAAGFjEABhYzAAYWNAAGFjYABhY5AAYWOgAGFjsABhY+AAYWPwAGFkQABhZdAAYWZgAGFmgABhZqAAYWcwAGFnYABhZ5AAYWewAGFsQABhboAAYXDwAGFzMABhc2AAYXOAAGFzoABhc8AAYXPgAGF0AABhdBAAYXRAAGF10ABhd+AAYXgAAGF4IABheEAAYXhgAGF4gABheKAAYXjAAGF44ABhevAAYXsgAGF7UABhe4AAYXuwAGF74ABhfBAAYXxAAGF8cABhfJAAYYRAAGGEYABhhIAAYYSgAGGE0ABhhOAAYYTwAGGFAABhhRAAYYUwAGGFUABhhWAAYYVwAGGFkABhhaAAYY1QAGGNcABhjZAAYY2wAGGN4ABhjfAAYY4AAGGOEABhjiAAYY5AAGGOYABhjnAAYY6AAGGOoABhjrAAYZZgAGGWgABhlrAAYZbQAGGXAABhlxAAYZcgAGGXMABhl0AAYZdgAGGXgABhl5AAYZegAGGXwABhl9AAYZlgAGGZcABhmYAAYZmgAGGhUABhoXAAYaGQAGGhsABhoeAAYaHwAGGiAABhohAAYaIgAGGiQABhomAAYaJwAGGigABhoqAAYaKwAGGqYABhqoAAYaqgAGGqwABhqvAAYasAAGGrEABhqyAAYaswAGGrUABhq3AAYauAAGGrkABhq7AAYavAAGGzcABhs5AAYbOwAGGz0ABhtAAAYbQQAGG0IABhtDAAYbRAAGG0YABhtIAAYbSQAGG0oABhtMAAYbTQAGG8gABhvKAAYbzAAGG84ABhvRAAYb0gAGG9MABhvUAAYb1QAGG9cABhvZAAYb2gAGG9sABhvdAAYb3gAGHFkABhxbAAYcXQAGHF8ABhxiAAYcYwAGHGQABhxlAAYcZgAGHGgABhxqAAYcawAGHGwABhxuAAYcbwAGHLgABhzcAAYdAwAGHScABh0qAAYdLAAGHS4ABh0wAAYdMgAGHTQABh01AAYdOAAGHVEABh1uAAYdcAAGHXIABh10AAYddgAGHXgABh16AAYdfAAGHZkABh2cAAYdnwAGHaIABh2lAAYdqAAGHasABh2uAAYdsAAGHisABh4tAAYeLwAGHjEABh40AAYeNQAGHjYABh43AAYeOAAGHjoABh48AAYePQAGHj4ABh5AAAYeQQAGHrwABh6+AAYewAAGHsIABh7FAAYexgAGHscABh7IAAYeyQAGHssABh7NAAYezgAGHs8ABh7RAAYe0gAGH00ABh9PAAYfUQAGH1MABh9WAAYfVwAGH1gABh9ZAAYfWgAGH1wABh9eAAYfXwAGH2AABh9iAAYfYwAGH94ABh/gAAYf4gAGH+QABh/nAAYf6AAGH+kABh/qAAYf6wAGH+0ABh/vAAYf8AAGH/EABh/zAAYf9AAGIG8ABiBxAAYgcwAGIHUABiB4AAYgeQAGIHoABiB7AAYgfAAGIH4ABiCAAAYggQAGIIIABiCEAAYghQAGIQAABiECAAYhBAAGIQYABiEJAAYhCgAGIQsABiEMAAYhDQAGIQ8ABiERAAYhEgAGIRMABiEVAAYhFgAGIZEABiGTAAYhlQAGIZcABiGaAAYhmwAGIZwABiGdAAYhngAGIaAABiGiAAYhowAGIaQABiGmAAYhpwAGIjoABiJdAAYifQAGIp0ABiKfAAYioQAGIqMABiKlAAYiqAAGIqkABiKqAAYirQAGIq4ABiKwAAYisQAGIrMABiK2AAYitwAGIrgABiK7AAYivAAGIsUABiLeAAYi5wAGIukABiLrAAYi9AAGIvcABiL6AAYi/AAGI0UABiNpAAYjkAAGI7QABiO3AAYjuQAGI7sABiO9AAYjvwAGI8EABiPCAAYjxQAGI94ABiP/AAYkAQAGJAMABiQFAAYkBwAGJAkABiQLAAYkDQAGJA8ABiQwAAYkMwAGJDYABiQ5AAYkPAAGJD8ABiRCAAYkRQAGJEgABiRKAAYkxQAGJMcABiTJAAYkywAGJM4ABiTPAAYk0AAGJNEABiTSAAYk1AAGJNYABiTXAAYk2AAGJNoABiTbAAYlVgAGJVgABiVaAAYlXAAGJV8ABiVgAAYlYQAGJWIABiVjAAYlZQAGJWcABiVoAAYlaQAGJWsABiVsAAYl5wAGJekABiXsAAYl7gAGJfEABiXyAAYl8wAGJfQABiX1AAYl9wAGJfkABiX6AAYl+wAGJf0ABiX+AAYmFwAGJhgABiYZAAYmGwAGJpYABiaYAAYmmgAGJpwABiafAAYmoAAGJqEABiaiAAYmowAGJqUABianAAYmqAAGJqkABiarAAYmrAAGJycABicpAAYnKwAGJy0ABicwAAYnMQAGJzIABiczAAYnNAAGJzYABic4AAYnOQAGJzoABic8AAYnPQAGJ7gABie6AAYnvAAGJ74ABifBAAYnwgAGJ8MABifEAAYnxQAGJ8cABifJAAYnygAGJ8sABifNAAYnzgAGKEkABihLAAYoTQAGKE8ABihSAAYoUwAGKFQABihVAAYoVgAGKFgABihaAAYoWwAGKFwABiheAAYoXwAGKNoABijcAAYo3gAGKOAABijjAAYo5AAGKOUABijmAAYo5wAGKOkABijrAAYo7AAGKO0ABijvAAYo8AAGKTkABildAAYphAAGKagABimrAAYprQAGKa8ABimxAAYpswAGKbUABim2AAYpuQAGKdIABinvAAYp8QAGKfMABin1AAYp9wAGKfkABin7AAYp/QAGKhoABiodAAYqIAAGKiMABiomAAYqKQAGKiwABiovAAYqMQAGKqwABiquAAYqsAAGKrIABiq1AAYqtgAGKrcABiq4AAYquQAGKrsABiq9AAYqvgAGKr8ABirBAAYqwgAGKz0ABis/AAYrQQAGK0MABitGAAYrRwAGK0gABitJAAYrSgAGK0wABitOAAYrTwAGK1AABitSAAYrUwAGK84ABivQAAYr0gAGK9QABivXAAYr2AAGK9kABivaAAYr2wAGK90ABivfAAYr4AAGK+EABivjAAYr5AAGLF8ABixhAAYsYwAGLGUABixoAAYsaQAGLGoABixrAAYsbAAGLG4ABixwAAYscQAGLHIABix0AAYsdQAGLPAABizyAAYs9AAGLPYABiz5AAYs+gAGLPsABiz8AAYs/QAGLP8ABi0BAAYtAgAGLQMABi0FAAYtBgAGLYEABi2DAAYthQAGLYcABi2KAAYtiwAGLYwABi2NAAYtjgAGLZAABi2SAAYtkwAGLZQABi2WAAYtlwAGLhIABi4UAAYuFgAGLhgABi4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MAAZZzQAGWc4ABlnQAAZZ0QAGWkwABlpOAAZaUAAGWlIABlpVAAZaVgAGWlcABlpYAAZaWQAGWlsABlpdAAZaXgAGWl8ABlphAAZaYgAGWt0ABlrfAAZa4QAGWuMABlrmAAZa5wAGWugABlrpAAZa6gAGWuwABlruAAZa7wAGWvAABlryAAZa8wAGWzwABltgAAZbhwAGW6sABluuAAZbsAAGW7IABlu0AAZbtgAGW7gABlu5AAZbvAAGW9UABlvyAAZb9AAGW/YABlv4AAZb+gAGW/wABlv+AAZcAAAGXB0ABlwgAAZcIwAGXCYABlwpAAZcLAAGXC8ABlwyAAZcNAAGXK8ABlyxAAZctAAGXLYABly5AAZcugAGXLsABly8AAZcvQAGXL8ABlzBAAZcwgAGXMMABlzFAAZcxgAGXUEABl1DAAZdRQAGXUcABl1KAAZdSwAGXUwABl1NAAZdTgAGXVAABl1SAAZdUwAGXVQABl1WAAZdVwAGXdIABl3UAAZd1gAGXdgABl3bAAZd3AAGXd0ABl3eAAZd3wAGXeEABl3jAAZd5AAGXeUABl3nAAZd6AAGXmMABl5lAAZeaAAGXmoABl5tAAZebgAGXm8ABl5wAAZecQAGXnMABl51AAZedgAGXncABl55AAZeegAGXvUABl73AAZe+QAGXvsABl7+AAZe/wAGXwAABl8BAAZfAgAGXwQABl8GAAZfBwAGXwgABl8KAAZfCwAGX4YABl+IAAZfigAGX4wABl+PAAZfkAAGX5EABl+SAAZfkwAGX5UABl+XAAZfmAAGX5kABl+bAAZfnAAGYBcABmAZAAZgGwAGYB0ABmAgAAZgIQAGYCIABmAjAAZgJAAGYCYABmAoAAZgKQAGYCoABmAsAAZgLQAGYMAABmDjAAZhAwAGYSMABmElAAZhJwAGYSkABmErAAZhLgAGYS8ABmEwAAZhMwAGYTQABmE2AAZhNwAGYToABmE9AAZhPgAGYT8ABmFCAAZhQwAGYUgABmFhAAZhagAGYWwABmFuAAZhdwAGYXoABmF9AAZhfwAGYcgABmHsAAZiEwAGYjcABmI6AAZiPAAGYj4ABmJAAAZiQgAGYkQABmJFAAZiSAAGYmEABmKCAAZihAAGYoYABmKIAAZiigAGYowABmKOAAZikAAGYpIABmKzAAZitgAGYrkABmK8AAZivwAGYsIABmLFAAZiyAAGYssABmLNAAZjSAAGY0oABmNMAAZjTgAGY1EABmNSAAZjUwAGY1QABmNVAAZjVwAGY1kABmNaAAZjWwAGY10ABmNeAAZj2QAGY9sABmPdAAZj3wAGY+IABmPjAAZj5AAGY+UABmPmAAZj6AAGY+oABmPrAAZj7AAGY+4ABmPvAAZkagAGZGwABmRvAAZkcQAGZHQABmR1AAZkdgAGZHcABmR4AAZkegAGZHwABmR9AAZkfgAGZIAABmSBAAZkmgAGZJsABmScAAZkngAGZRkABmUbAAZlHQAGZR8ABmUiAAZlIwAGZSQABmUlAAZlJgAGZSgABmUqAAZlKwAGZSwABmUuAAZlLwAGZaoABmWsAAZlrgAGZbAABmWzAAZltAAGZbUABmW2AAZltwAGZbkABmW7AAZlvAAGZb0ABmW/AAZlwAAGZjsABmY9AAZmPwAGZkEABmZEAAZmRQAGZkYABmZHAAZmSAAGZkoABmZMAAZmTQAGZk4ABmZQAAZmUQAGZswABmbOAAZm0AAGZtIABmbVAAZm1gAGZtcABmbYAAZm2QAGZtsABmbdAAZm3gAGZt8ABmbhAAZm4gAGZ10ABmdfAAZnYQAGZ2MABmdmAAZnZwAGZ2gABmdpAAZnagAGZ2wABmduAAZnbwAGZ3AABmdyAAZncwAGZ7wABmfgAAZoBwAGaCsABmguAAZoMAAGaDIABmg0AAZoNgAGaDgABmg5AAZoPAAGaFUABmhyAAZodAAGaHYABmh4AAZoegAGaHwABmh+AAZogAAGaJ0ABmigAAZoowAGaKYABmipAAZorAAGaK8ABmiyAAZotAAGaS8ABmkxAAZpMwAGaTUABmk4AAZpOQAGaToABmk7AAZpPAAGaT4ABmlAAAZpQQAGaUIABmlEAAZpRQAGacAABmnCAAZpxQAGaccABmnKAAZpywAGacwABmnNAAZpzgAGadAABmnSAAZp0wAGadQABmnWAAZp1wAGalIABmpUAAZqVgAGalgABmpbAAZqXAAGal0ABmpeAAZqXwAGamEABmpjAAZqZAAGamUABmpnAAZqaAAGauMABmrlAAZq6AAGauoABmrtAAZq7gAGau8ABmrwAAZq8QAGavMABmr1AAZq9gAGavcABmr5AAZq+gAGa3UABmt3AAZreQAGa3sABmt+AAZrfwAGa4AABmuBAAZrggAGa4QABmuGAAZrhwAGa4gABmuKAAZriwAGbAYABmwIAAZsCgAGbAwABmwPAAZsEAAGbBEABmwSAAZsEwAGbBUABmwXAAZsGAAGbBkABmwbAAZsHAAGbJcABmyZAAZsnAAGbJ4ABmyhAAZsogAGbKMABmykAAZspQAGbKcABmypAAZsqgAGbKsABmytAAZsrgAGbUEABm1kAAZthAAGbaQABm2mAAZtqAAGbaoABm2sAAZtrwAGbbAABm2xAAZttAAGbbUABm23AAZtuAAGbbsABm2+AAZtvwAGbcAABm3DAAZtxAAGbckABm3iAAZt6wAGbe0ABm3vAAZt+AAGbfsABm3+AAZuAAAGbkkABm5tAAZulAAGbrgABm67AAZuvQAGbr8ABm7BAAZuwwAGbsUABm7GAAZuyQAGbuIABm8DAAZvBQAGbwcABm8JAAZvCwAGbw0ABm8PAAZvEQAGbxMABm80AAZvNwAGbzoABm89AAZvQAAGb0MABm9GAAZvSQAGb0wABm9OAAZvyQAGb8sABm/NAAZvzwAGb9IABm/TAAZv1AAGb9UABm/WAAZv2AAGb9oABm/bAAZv3AAGb94ABm/fAAZwWgAGcFwABnBeAAZwYAAGcGMABnBkAAZwZQAGcGYABnBnAAZwaQAGcGsABnBsAAZwbQAGcG8ABnBwAAZw6wAGcO0ABnDwAAZw8gAGcPUABnD2AAZw9wAGcPgABnD5AAZw+wAGcP0ABnD+AAZw/wAGcQEABnECAAZxGwAGcRwABnEdAAZxHwAGcZoABnGcAAZxngAGcaAABnGjAAZxpAAGcaUABnGmAAZxpwAGcakABnGrAAZxrAAGca0ABnGvAAZxsAAGcisABnItAAZyLwAGcjEABnI0AAZyNQAGcjYABnI3AAZyOAAGcjoABnI8AAZyPQAGcj4ABnJAAAZyQQAGcrwABnK+AAZywAAGcsIABnLFAAZyxgAGcscABnLIAAZyyQAGcssABnLNAAZyzgAGcs8ABnLRAAZy0gAGc00ABnNPAAZzUQAGc1MABnNWAAZzVwAGc1gABnNZAAZzWgAGc1wABnNeAAZzXwAGc2AABnNiAAZzYwAGc94ABnPgAAZz4gAGc+QABnPnAAZz6AAGc+kABnPqAAZz6wAGc+0ABnPvAAZz8AAGc/EABnP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UAAaGVQAGhtAABobSAAaG1AAGhtYABobZAAaG2gAGhtsABobcAAaG3QAGht8ABobhAAaG4gAGhuMABoblAAaG5gAGh2EABodjAAaHZQAGh2cABodqAAaHawAGh2wABodtAAaHbgAGh3AABodyAAaHcwAGh3QABod2AAaHdwAGh/IABof0AAaH9gAGh/gABof7AAaH/AAGh/0ABof+AAaH/wAGiAEABogDAAaIBAAGiAUABogHAAaICAAGiIMABoiFAAaIhwAGiIkABoiMAAaIjQAGiI4ABoiPAAaIkAAGiJIABoiUAAaIlQAGiJYABoiYAAaImQAGiOIABokGAAaJLQAGiVEABolUAAaJVgAGiVgABolaAAaJXAAGiV4ABolfAAaJYgAGiXsABomYAAaJmgAGiZwABomeAAaJoAAGiaIABomkAAaJpgAGicMABonGAAaJyQAGicwABonPAAaJ0gAGidUABonYAAaJ2gAGilUABopXAAaKWQAGilsABopeAAaKXwAGimAABophAAaKYgAGimQABopmAAaKZwAGimgABopqAAaKawAGiuYABoroAAaK6gAGiuwABorvAAaK8AAGivEABoryAAaK8wAGivUABor3AAaK+AAGivkABor7AAaK/AAGi3cABot5AAaLewAGi30ABouAAAaLgQAGi4IABouDAAaLhAAGi4YABouIAAaLiQAGi4oABouMAAaLjQAGjAgABowKAAaMDAAGjA4ABowRAAaMEgAGjBMABowUAAaMFQAGjBcABowZAAaMGgAGjBsABowdAAaMHgAGjJkABoybAAaMnQAGjJ8ABoyiAAaMowAGjKQABoylAAaMpgAGjKgABoyqAAaMqwAGjKwABoyuAAaMrwAGjSoABo0sAAaNLgAGjTAABo0zAAaNNAAGjTUABo02AAaNNwAGjTkABo07AAaNPAAGjT0ABo0/AAaNQAAGjbsABo29AAaNvwAGjcEABo3EAAaNxQAGjcYABo3HAAaNyAAGjcoABo3MAAaNzQAGjc4ABo3QAAaN0QAGjmQABo6HAAaOpwAGjscABo7JAAaOywAGjs0ABo7PAAaO0gAGjtMABo7UAAaO1wAGjtgABo7aAAaO2wAGjt0ABo7gAAaO4QAGjuIABo7lAAaO5gAGjusABo8EAAaPDQAGjw8ABo8RAAaPGgAGjx0ABo8gAAaPIgAGj2sABo+PAAaPtgAGj9oABo/dAAaP3wAGj+EABo/jAAaP5QAGj+cABo/oAAaP6wAGkAQABpAlAAaQJwAGkCkABpArAAaQLQAGkC8ABpAxAAaQMwAGkDUABpBWAAaQWQAGkFwABpBfAAaQYgAGkGUABpBoAAaQawAGkG4ABpBwAAaQ6wAGkO0ABpDvAAaQ8QAGkPQABpD1AAaQ9gAGkPcABpD4AAaQ+gAGkPwABpD9AAaQ/gAGkQAABpEBAAaRfAAGkX4ABpGAAAaRggAGkYUABpGGAAaRhwAGkYgABpGJAAaRiwAGkY0ABpGOAAaRjwAGkZEABpGSAAaSDQAGkg8ABpISAAaSFAAGkhcABpIYAAaSGQAGkhoABpIbAAaSHQAGkh8ABpIgAAaSIQAGkiMABpIkAAaSPQAGkj4ABpI/AAaSQQAGkrwABpK+AAaSwAAGksIABpLFAAaSxgAGkscABpLIAAaSyQAGkssABpLNAAaSzgAGks8ABpLRAAaS0gAGk00ABpNPAAaTUQAGk1MABpNWAAaTVwAGk1gABpNZAAaTWgAGk1wABpNeAAaTXwAGk2AABpNiAAaTYwAGk94ABpPgAAaT4gAGk+QABpPnAAaT6AAGk+kABpPqAAaT6wAGk+0ABpPvAAaT8AAGk/EABpPzAAaT9AAGlG8ABpRxAAaUcwAGlHUABpR4AAaUeQAGlHoABpR7AAaUfAAGlH4ABpSAAAaUgQAGlIIABpSEAAaUhQAGlQAABpUCAAaVBAAGlQYABpUJAAaVCgAGlQsABpUMAAaVDQAGlQ8ABpURAAaVEgAGlRMABpUVAAaVFgAGlV8ABpWDAAaVqgAGlc4ABpXRAAaV0wAGldUABpXXAAaV2QAGldsABpXcAAaV3wAGlfgABpYVAAaWFwAGlhkABpYbAAaWHQAGlh8ABpYhAAaWIwAGlkAABpZDAAaWRgAGlkkABpZMAAaWTwAGllIABpZVAAaWVwAGltIABpbUAAaW1gAGltgABpbbAAaW3AAGlt0ABpbeAAaW3wAGluEABpbjAAaW5AAGluUABpbnAAaW6AAGl2MABpdlAAaXZwAGl2kABpdsAAaXbQAGl24ABpdvAAaXcAAGl3IABpd0AAaXdQAGl3YABpd4AAaXeQAGl/QABpf2AAaX+AAGl/oABpf9AAaX/gAGl/8ABpgAAAaYAQAGmAMABpgFAAaYBgAGmAcABpgJAAaYCgAGmIUABpiHAAaYigAGmIwABpiPAAaYkAAGmJEABpiSAAaYkwAGmJUABpiXAAaYmAAGmJkABpibAAaYnAAGmRcABpkZAAaZGwAGmR0ABpkgAAaZIQAGmSIABpkjAAaZJAAGmSYABpkoAAaZKQAGmSoABpksAAaZLQAGmagABpmqAAaZrAAGma4ABpmxAAaZsgAGmbMABpm0AAaZtQAGmbcABpm5AAaZugAGmbsABpm9AAaZvgAGmjkABpo7AAaaPQAGmj8ABppCAAaaQwAGmkQABppFAAaaRgAGmkgABppKAAaaSwAGmkwABppOAAaaTwAGmuIABpsFAAabJQAGm0UABptHAAabSQAGm0sABptNAAabUAAGm1EABptSAAabVQAGm1YABptYAAabWQAGm1sABpteAAabXwAGm2AABptjAAabZAAGm2kABpuCAAabiwAGm40ABpuPAAabmAAGm5sABpueAAaboAAGm+kABpwNAAacNAAGnFgABpxbAAacXQAGnF8ABpxhAAacYwAGnGUABpxmAAacaQAGnIIABpyjAAacpQAGnKcABpypAAacqwAGnK0ABpyvAAacsQAGnLMABpzUAAac1wAGnNoABpzdAAac4AAGnOMABpzmAAac6QAGnOwABpzuAAadaQAGnWsABp1tAAadbwAGnXIABp1zAAaddAAGnXUABp12AAadeAAGnXoABp17AAadfAAGnX4ABp1/AAad+gAGnfwABp3+AAaeAAAGngMABp4EAAaeBQAGngYABp4HAAaeCQAGngsABp4MAAaeDQAGng8ABp4QAAaeiwAGno0ABp6QAAaekgAGnpUABp6WAAaelwAGnpgABp6ZAAaemwAGnp0ABp6eAAaenwAGnqEABp6iAAaeuwAGnrwABp69AAaevwAGnzoABp88AAafPgAGn0AABp9DAAafRAAGn0UABp9GAAafRwAGn0kABp9LAAafTAAGn00ABp9PAAafUAAGn8sABp/NAAafzwAGn9EABp/UAAaf1QAGn9YABp/XAAaf2AAGn9oABp/cAAaf3QAGn94ABp/gAAaf4QAGoFwABqBeAAagYAAGoGIABqBlAAagZgAGoGcABqBoAAagaQAGoGsABqBtAAagbgAGoG8ABqBxAAagcgAGoO0ABqDvAAag8QAGoPMABqD2AAag9wAGoPgABqD5AAag+gAGoPwABqD+AAag/wAGoQAABqECAAahAwAGoX4ABqGAAAahggAGoYQABqGHAAahiAAGoYkABqGKAAahiwAGoY0ABqGPAAahkAAGoZEABqGTAAahlAAGod0ABqIBAAaiKAAGokwABqJPAAaiUQAGolMABqJVAAaiVwAGolkABqJaAAaiXQAGonYABqKTAAailQAGopcABqKZAAaimwAGop0ABqKfAAaioQAGor4ABqLBAAaixAAGoscABqLKAAaizQAGotAABqLTAAai1QAGo1AABqNSAAajVQAGo1cABqNaAAajWwAGo1wABqNdAAajXgAGo2AABqNiAAajYwAGo2QABqNmAAajZwAGo+IABqPkAAaj5gAGo+gABqPrAAaj7AAGo+0ABqPuAAaj7wAGo/EABqPzAAaj9AAGo/UABqP3AAaj+AAGpHMABqR1AAakdwAGpHkABqR8AAakfQAGpH4ABqR/AAakgAAGpIIABqSEAAakhQAGpIYABqSIAAakiQAGpQQABqUGAAalCQAGpQsABqUOAAalDwAGpRAABqURAAalEgAGpRQABqUWAAalFwAGpRgABqUaAAalGwAGpZYABqWYAAalmgAGpZwABqWfAAaloAAGpaEABqWiAAalowAGpaUABqWnAAalqAAGpakABqWrAAalrAAGpicABqYpAAamKwAGpi0ABqYwAAamMQAGpjIABqYzAAamNAAGpjYABqY4AAamOQAGpjoABqY8AAamPQAGprgABqa6AAamvAAGpr4ABqbBAAamwgAGpsMABqbEAAamxQAGpscABqbJAAamygAGpssABqbNAAamzgAGp2EABqeEAAanpAAGp8QABqfGAAanyAAGp8oABqfMAAanzwAGp9AABqfRAAan1AAGp9UABqfXAAan2AAGp9oABqfdAAan3gAGp98ABqfiAAan4wAGp+wABqgFAAaoDgAGqBAABqgSAAaoGwAGqB4ABqghAAaoIwAGqGwABqiQAAaotwAGqNsABqjeAAao4AAGqOIABqjkAAao5gAGqOgABqjpAAao7AAGqQUABqkmAAapKAAGqSoABqksAAapLgAGqTAABqkyAAapNAAGqTYABqlXAAapWgAGqV0ABqlgAAapYwAGqWYABqlpAAapbAAGqW8ABqlxAAap7AAGqe4ABqnwAAap8gAGqfUABqn2AAap9wAGqfgABqn5AAap+wAGqf0ABqn+AAap/wAGqgEABqoCAAaqfQAGqn8ABqqBAAaqgwAGqoYABqqHAAaqiAAGqokABqqKAAaqjAAGqo4ABqqPAAaqkAAGqpIABqqTAAarDgAGqxAABqsTAAarFQAGqxgABqsZAAarGgAGqxsABqscAAarHgAGqyAABqshAAarIgAGqyQABqslAAarPgAGqz8ABqtAAAarQgAGq70ABqu/AAarwQAGq8MABqvGAAarxwAGq8gABqvJAAarygAGq8wABqvOAAarzwAGq9AABqvSAAar0wAGrE4ABqxQAAasUgAGrFQABqxXAAasWAAGrFkABqxaAAasWwAGrF0ABqxfAAasYAAGrGEABqxjAAasZAAGrN8ABqzhAAas4wAGrOUABqzoAAas6QAGrOoABqzrAAas7AAGrO4ABqzwAAas8QAGrPIABqz0AAas9QAGrXAABq1yAAatdAAGrXYABq15AAategAGrXsABq18AAatfQAGrX8ABq2BAAatggAGrYMABq2FAAathgAGrgEABq4DAAauBQAGrgcABq4KAAauCwAGrgwABq4NAAauDgAGrhAABq4SAAauEwAGrhQABq4WAAauFwAGrmAABq6EAAauqwAGrs8ABq7SAAau1AAGrtYABq7YAAau2gAGrtwABq7dAAau4AAGrvkABq8WAAavGAAGrxoABq8cAAavHgAGryAABq8iAAavJAAGr0EABq9EAAavRwAGr0oABq9NAAavUAAGr1MABq9WAAavWAAGr9MABq/VAAav1wAGr9kABq/cAAav3QAGr94ABq/fAAav4AAGr+IABq/kAAav5QAGr+YABq/oAAav6QAGsGQABrBmAAawaAAGsGoABrBtAAawbgAGsG8ABrBwAAawcQAGsHMABrB1AAawdgAGsHcABrB5AAawegAGsPUABrD3AAaw+QAGsPsABrD+AAaw/wAGsQAABrEBAAaxAgAGsQQABrEGAAaxBwAGsQgABrEKAAaxCwAGsYYABrGIAAaxiwAGsY0ABrGQAAaxkQAGsZIABrGTAAaxlAAGsZYABrGYAAaxmQAGsZoABrGcAAaxnQAGshgABrIaAAayHAAGsh4ABrIhAAayIgAGsiMABrIkAAayJQAGsicABrIpAAayKgAGsisABrItAAayLgAGsqkABrKrAAayrQAGsq8ABrKyAAayswAGsrQABrK1AAaytgAGsrgABrK6AAayuwAGsrwABrK+AAayvwAGszoABrM8AAazPgAGs0AABrNDAAazRAAGs0UABrNGAAazRwAGs0kABrNLAAazTAAGs00ABrNPAAazUAAGs+MABrQGAAa0JgAGtEYABrRIAAa0SgAGtEwABrROAAa0UQAGtFIABrRTAAa0VgAGtFcABrRZAAa0WgAGtF0ABrRgAAa0YQAGtGIABrRlAAa0ZgAGtGsABrSEAAa0jQAGtI8ABrSRAAa0mgAGtJ0ABrSgAAa0ogAGtOsABrUPAAa1NgAGtVoABrVdAAa1XwAGtWEABrVjAAa1ZQAGtWcABrVoAAa1awAGtYQABrWlAAa1pwAGtakABrWrAAa1rQAGta8ABrWxAAa1swAGtbUABrXWAAa12QAGtdwABrXfAAa14gAGteUABrXoAAa16wAGte4ABrXwAAa2awAGtm0ABrZvAAa2cQAGtnQABrZ1AAa2dgAGtncABrZ4AAa2egAGtnwABrZ9AAa2fgAGtoAABraBAAa2/AAGtv4ABrcAAAa3AgAGtwUABrcGAAa3BwAGtwgABrcJAAa3CwAGtw0ABrcOAAa3DwAGtxEABrcSAAa3jQAGt48ABreSAAa3lAAGt5cABreYAAa3mQAGt5oABrebAAa3nQAGt58ABregAAa3oQAGt6MABrekAAa3vQAGt74ABre/AAa3wQAGuDwABrg+AAa4QAAGuEIABrhFAAa4RgAGuEcABrhIAAa4SQAGuEsABrhNAAa4TgAGuE8ABrhRAAa4UgAGuM0ABrjPAAa40QAGuNMABrjWAAa41wAGuNgABrjZAAa42gAGuNwABrjeAAa43wAGuOAABrjiAAa44wAGuV4ABrlgAAa5YgAGuWQABrlnAAa5aAAGuWkABrlqAAa5awAGuW0ABrlvAAa5cAAGuXEABrlzAAa5dAAGue8ABrnxAAa58wAGufUABrn4AAa5+QAGufoABrn7AAa5/AAGuf4ABroAAAa6AQAGugIABroEAAa6BQAGuoAABrqCAAa6hAAGuoYABrqJAAa6igAGuosABrqMAAa6jQAGuo8ABrqRAAa6kgAGupMABrqVAAa6lgAGut8ABrsDAAa7KgAGu04ABrtRAAa7UwAGu1UABrtXAAa7WQAGu1sABrtcAAa7XwAGu3gABruVAAa7lwAGu5kABrubAAa7nQAGu58ABruhAAa7owAGu8AABrvDAAa7xgAGu8kABrvMAAa7zwAGu9IABrvVAAa71wAGvFIABrxUAAa8VgAGvFgABrxbAAa8XAAGvF0ABrxeAAa8XwAGvGEABrxjAAa8ZAAGvGUABrxnAAa8aAAGvOMABrzlAAa85wAGvOkABrzsAAa87QAGvO4ABrzvAAa88AAGvPIABrz0AAa89QAGvPYABrz4AAa8+QAGvXQABr12AAa9eAAGvXoABr19AAa9fgAGvX8ABr2AAAa9gQAGvYMABr2FAAa9hgAGvYcABr2JAAa9igAGvgUABr4HAAa+CgAGvgwABr4PAAa+EAAGvhEABr4SAAa+EwAGvhUABr4XAAa+GAAGvhkABr4bAAa+HAAGvpcABr6ZAAa+mwAGvp0ABr6gAAa+oQAGvqIABr6jAAa+pAAGvqYABr6oAAa+qQAGvqoABr6sAAa+rQAGvygABr8qAAa/LAAGvy4ABr8xAAa/MgAGvzMABr80AAa/NQAGvzcABr85AAa/OgAGvzsABr89AAa/PgAGv7kABr+7AAa/vgAGv8AABr/DAAa/xAAGv8UABr/GAAa/xwAGv8kABr/LAAa/zAAGv80ABr/PAAa/0AAGv+EABr/iAAa/5AAGwF8ABsBhAAbAYwAGwGUABsBoAAbAaQAGwGoABsBrAAbAbAAGwG4ABsBwAAbAcQAGwHIABsB0AAbAdQAGwPAABsDyAAbA9AAGwPYABsD5AAbA+gAGwPsABsD8AAbA/QAGwP8ABsEBAAbBAgAGwQMABsEFAAbBBgAGwYEABsGDAAbBhgAGwYgABsGLAAbBjAAGwY0ABsGOAAbBjwAGwZEABsGTAAbBlAAGwZUABsGXAAbBmAAGwisABsJOAAbCbgAGwo4ABsKQAAbCkgAGwpQABsKWAAbCmQAGwpoABsKbAAbCngAGwp8ABsKhAAbCogAGwqQABsKnAAbCqAAGwqkABsKsAAbCrQAGwrIABsLLAAbC1AAGwtYABsLYAAbC4QAGwuQABsLnAAbC6QAGwzIABsNWAAbDfQAGw6EABsOkAAbDpgAGw6gABsOqAAbDrAAGw64ABsOvAAbDsgAGw8sABsPsAAbD7gAGw/AABsPyAAbD9AAGw/YABsP4AAbD+gAGw/wABsQdAAbEIAAGxCMABsQmAAbEKQAGxCwABsQvAAbEMgAGxDUABsQ3AAbEsgAGxLQABsS2AAbEuAAGxLsABsS8AAbEvQAGxL4ABsS/AAbEwQAGxMMABsTEAAbExQAGxMcABsTIAAbFQwAGxUUABsVHAAbFSQAGxUwABsVNAAbFTgAGxU8ABsVQAAbFUgAGxVQABsVVAAbFVgAGxVgABsVZAAbF1AAGxdYABsXZAAbF2wAGxd4ABsXfAAbF4AAGxeEABsXiAAbF5AAGxeYABsXnAAbF6AAGxeoABsXrAAbGBAAGxgUABsYGAAbGCAAGxoMABsaFAAbGhwAGxokABsaMAAbGjQAGxo4ABsaPAAbGkAAGxpIABsaUAAbGlQAGxpYABsaYAAbGmQAGxxQABscWAAbHGAAGxxoABscdAAbHHgAGxx8ABscgAAbHIQAGxyMABsclAAbHJgAGxycABscpAAbHKgAGx6UABsenAAbHqQAGx6sABseuAAbHrwAGx7AABsexAAbHsgAGx7QABse2AAbHtwAGx7gABse6AAbHuwAGyDYABsg4AAbIOgAGyDwABsg/AAbIQAAGyEEABshCAAbIQwAGyEUABshHAAbISAAGyEkABshLAAbITAAGyMcABsjJAAbIywAGyM0ABsjQAAbI0QAGyNIABsjTAAbI1AAGyNYABsjYAAbI2QAGyNoABsjcAAbI3QAGySYABslKAAbJcQAGyZUABsmYAAbJmgAGyZwABsmeAAbJoAAGyaIABsmjAAbJpgAGyb8ABsncAAbJ3gAGyeAABsniAAbJ5AAGyeYABsnoAAbJ6gAGygcABsoKAAbKDQAGyhAABsoTAAbKFgAGyhkABsocAAbKHgAGypkABsqbAAbKnQAGyp8ABsqiAAbKowAGyqQABsqlAAbKpgAGyqgABsqqAAbKqwAGyqwABsquAAbKrwAGyyoABsssAAbLLgAGyzAABsszAAbLNAAGyzUABss2AAbLNwAGyzkABss7AAbLPAAGyz0ABss/AAbLQAAGy7sABsu9AAbLvwAGy8EABsvEAAbLxQAGy8YABsvHAAbLyAAGy8oABsvMAAbLzQAGy84ABsvQAAbL0QAGzEwABsxOAAbMUAAGzFIABsxVAAbMVgAGzFcABsxYAAbMWQAGzFsABsxdAAbMXgAGzF8ABsxhAAbMYgAGzN0ABszfAAbM4QAGzOMABszmAAbM5wAGzOgABszpAAbM6gAGzOwABszuAAbM7wAGzPAABszyAAbM8wAGzW4ABs1wAAbNcgAGzXQABs13AAbNeAAGzXkABs16AAbNewAGzX0ABs1/AAbNgAAGzYEABs2DAAbNhAAGzf8ABs4BAAbOAwAGzgUABs4IAAbOCQAGzgoABs4LAAbODAAGzg4ABs4QAAbOEQAGzhIABs4UAAbOFQAGziYABs4rAAbOLgAGzjAABs5pAAbObAAGzm4ABs5xAAbOdAAGzncABs56AAbOfwAGzvoABs78AAbO/gAGzwAABs8DAAbPBAAGzwUABs8GAAbPBwAGzwkABs8LAAbPDAAGzw0ABs8PAAbPEAAGz4sABs+NAAbPjwAGz5EABs+UAAbPlQAGz5YABs+XAAbPmAAGz5oABs+cAAbPnQAGz54ABs+gAAbPoQAG0BwABtAeAAbQIQAG0CMABtAmAAbQJwAG0CgABtApAAbQKgAG0CwABtAuAAbQLwAG0DAABtAyAAbQMwAG0MYABtDpAAbRCQAG0SkABtErAAbRLQAG0S8ABtExAAbRNAAG0TUABtE2AAbROQAG0ToABtE8AAbRPQAG0T8ABtFCAAbRQwAG0UQABtFHAAbRSAAG0U0ABtFmAAbRbwAG0XEABtFzAAbRfAAG0X8ABtGCAAbRhAAG0c0ABtHxAAbSGAAG0jwABtI/AAbSQQAG0kMABtJFAAbSRwAG0kkABtJKAAbSTQAG0mYABtKHAAbSiQAG0osABtKNAAbSjwAG0pEABtKTAAbSlQAG0pcABtK4AAbSuwAG0r4ABtLBAAbSxAAG0scABtLKAAbSzQAG0tAABtLSAAbTTQAG008ABtNRAAbTUwAG01YABtNXAAbTWAAG01kABtNaAAbTXAAG014ABtNfAAbTYAAG02IABtNjAAbT3gAG0+AABtPiAAbT5AAG0+cABtPoAAbT6QAG0+oABtPrAAbT7QAG0+8ABtPwAAbT8QAG0/MABtP0AAbUbwAG1HEABtR0AAbUdgAG1HkABtR6AAbUewAG1HwABtR9AAbUfwAG1IEABtSCAAbUgwAG1IUABtSGAAbUnwAG1KAABtShAAbUowAG1R4ABtUgAAbVIgAG1SQABtUnAAbVKAAG1SkABtUqAAbVKwAG1S0ABtUvAAbVMAAG1TEABtUzAAbVNAAG1a8ABtWxAAbVswAG1bUABtW4AAbVuQAG1boABtW7AAbVvAAG1b4ABtXAAAbVwQAG1cIABtXEAAbVxQAG1kAABtZCAAbWRAAG1kYABtZJAAbWSgAG1ksABtZMAAbWTQAG1k8ABtZRAAbWUgAG1lMABtZVAAbWVgAG1tEABtbTAAbW1QAG1tcABtbaAAbW2wAG1twABtbdAAbW3gAG1uAABtbiAAbW4wAG1uQABtbmAAbW5wAG12IABtdkAAbXZgAG12gABtdrAAbXbAAG120ABtduAAbXbwAG13EABtdzAAbXdAAG13UABtd3AAbXeAAG18EABtflAAbYDAAG2DAABtgzAAbYNQAG2DcABtg5AAbYOwAG2D0ABtg+AAbYQQAG2FoABth3AAbYeQAG2HsABth9AAbYfwAG2IEABtiDAAbYhQAG2KIABtilAAbYqAAG2KsABtiuAAbYsQAG2LQABti3AAbYuQAG2TQABtk2AAbZOAAG2ToABtk9AAbZPgAG2T8ABtlAAAbZQQAG2UMABtlFAAbZRgAG2UcABtlJAAbZSgAG2cUABtnHAAbZyQAG2csABtnOAAbZzwAG2dAABtnRAAbZ0gAG2dQABtnWAAbZ1wAG2dgABtnaAAbZ2wAG2lYABtpYAAbaWgAG2lwABtpfAAbaYAAG2mEABtpiAAbaYwAG2mUABtpnAAbaaAAG2mkABtprAAbabAAG2ucABtrpAAba6wAG2u0ABtrwAAba8QAG2vIABtrzAAba9AAG2vYABtr4AAba+QAG2voABtr8AAba/QAG23gABtt6AAbbfAAG234ABtuBAAbbggAG24MABtuEAAbbhQAG24cABtuJAAbbigAG24sABtuNAAbbjgAG3AkABtwLAAbcDQAG3A8ABtwSAAbcEwAG3BQABtwVAAbcFgAG3BgABtwaAAbcGwAG3BwABtweAAbcHwAG3JoABtycAAbcngAG3KAABtyjAAbcpAAG3KUABtymAAbcpwAG3KkABtyrAAbcrAAG3K0ABtyvAAbcsAAG3UMABt1mAAbdhgAG3aYABt2oAAbdqgAG3awABt2uAAbdsQAG3bIABt2zAAbdtgAG3bcABt25AAbdugAG3bwABt2/AAbdwAAG3cEABt3EAAbdxQAG3coABt3jAAbd7AAG3e4ABt3wAAbd+QAG3fwABt3/AAbeAQAG3koABt5uAAbelQAG3rkABt68AAbevgAG3sAABt7CAAbexAAG3sYABt7HAAbeygAG3uMABt8EAAbfBgAG3wgABt8KAAbfDAAG3w4ABt8QAAbfEgAG3xQABt81AAbfOAAG3zsABt8+AAbfQQAG30QABt9HAAbfSgAG300ABt9PAAbfygAG38wABt/OAAbf0AAG39MABt/UAAbf1QAG39YABt/XAAbf2QAG39sABt/cAAbf3QAG398ABt/gAAbgWwAG4F0ABuBfAAbgYQAG4GQABuBlAAbgZgAG4GcABuBoAAbgagAG4GwABuBtAAbgbgAG4HAABuBxAAbg7AAG4O4ABuDxAAbg8wAG4PYABuD3AAbg+AAG4PkABuD6AAbg/AAG4P4ABuD/AAbhAAAG4QIABuEDAAbhHAAG4R0ABuEeAAbhIAAG4ZsABuGdAAbhnwAG4aEABuGkAAbhpQAG4aYABuGnAAbhqAAG4aoABuGsAAbhrQAG4a4ABuGwAAbhsQAG4iwABuIuAAbiMAAG4jIABuI1AAbiNgAG4jcABuI4AAbiOQAG4jsABuI9AAbiPgAG4j8ABuJBAAbiQgAG4r0ABuK/AAbiwQAG4sMABuLGAAbixwAG4sgABuLJAAbiygAG4swABuLOAAbizwAG4tAABuLSAAbi0wAG404ABuNQAAbjUgAG41QABuNXAAbjWAAG41kABuNaAAbjWwAG410ABuNfAAbjYAAG42EABuNjAAbjZAAG498ABuPhAAbj4wAG4+UABuPoAAbj6QAG4+oABuPrAAbj7AAG4+4ABuPwAAbj8QAG4/IABuP0AAbj9QAG5D4ABuRiAAbkiQAG5K0ABuSwAAbksgAG5LQABuS2AAbkuAAG5LoABuS7AAbkvgAG5NcABuT0AAbk9gAG5PgABuT6AAbk/AAG5P4ABuUAAAblAgAG5R8ABuUiAAblJQAG5SgABuUrAAblLgAG5TEABuU0AAblNgAG5bEABuWzAAbltQAG5bcABuW6AAbluwAG5bwABuW9AAblvgAG5cAABuXCAAblwwAG5cQABuXGAAblxwAG5kIABuZEAAbmRgAG5kgABuZLAAbmTAAG5k0ABuZOAAbmTwAG5lEABuZTAAbmVAAG5lUABuZXAAbmWAAG5tMABubVAAbm1wAG5tkABubcAAbm3QAG5t4ABubfAAbm4AAG5uIABubkAAbm5QAG5uYABuboAAbm6QAG52QABudmAAbnaAAG52oABudtAAbnbgAG528ABudwAAbncQAG53MABud1AAbndgAG53cABud5AAbnegAG5/UABuf3AAbn+QAG5/sABuf+AAbn/wAG6AAABugBAAboAgAG6AQABugGAAboBwAG6AgABugKAAboCwAG6IYABuiIAAboigAG6IwABuiPAAbokAAG6JEABuiSAAbokwAG6JUABuiXAAbomAAG6JkABuibAAbonAAG6RcABukZAAbpGwAG6R0ABukgAAbpIQAG6SIABukjAAbpJAAG6SYABukoAAbpKQAG6SoABuksAAbpLQAG6T4ABulDAAbpRgAG6UgABulNAAbpyAAG6coABunMAAbpzgAG6dEABunSAAbp0wAG6dQABunVAAbp1wAG6dkABunaAAbp2wAG6d0ABuneAAbqWQAG6lsABupdAAbqXwAG6mIABupjAAbqZAAG6mUABupmAAbqaAAG6moABuprAAbqbAAG6m4ABupvAAbq6gAG6uwABurvAAbq8QAG6vQABur1AAbq9gAG6vcABur4AAbq+gAG6vwABur9AAbq/gAG6wAABusBAAbrlAAG67cABuvXAAbr9wAG6/kABuv7AAbr/QAG6/8ABuwCAAbsAwAG7AQABuwHAAbsCAAG7AoABuwLAAbsDgAG7BEABuwSAAbsEwAG7BYABuwXAAbsHAAG7DUABuw+AAbsQAAG7EIABuxLAAbsTgAG7FEABuxTAAbsnAAG7MAABuznAAbtCwAG7Q4ABu0QAAbtEgAG7RQABu0WAAbtGAAG7RkABu0cAAbtNQAG7VYABu1YAAbtWgAG7VwABu1eAAbtYAAG7WIABu1kAAbtZgAG7YcABu2KAAbtjQAG7ZAABu2TAAbtlgAG7ZkABu2cAAbtnwAG7aEABu4cAAbuHgAG7iAABu4iAAbuJQAG7iYABu4nAAbuKAAG7ikABu4rAAbuLQAG7i4ABu4vAAbuMQAG7jIABu6tAAburwAG7rEABu6zAAbutgAG7rcABu64AAbuuQAG7roABu68AAbuvgAG7r8ABu7AAAbuwgAG7sMABu8+AAbvQAAG70MABu9FAAbvSAAG70kABu9KAAbvSwAG70wABu9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LAAcbRgAHG0gABxtKAAcbTAAHG08ABxtQAAcbUQAHG1IABxtTAAcbVQAHG1cABxtYAAcbWQAHG1sABxtcAAcb1wAHG9kABxvbAAcb3QAHG+AABxvhAAcb4gAHG+MABxvkAAcb5gAHG+gABxvpAAcb6gAHG+wABxvtAAccaAAHHGoABxxsAAccbgAHHHEABxxyAAcccwAHHHQABxx1AAccdwAHHHkABxx6AAccewAHHH0ABxx+AAcc+QAHHPsABxz+AAcdAAAHHQMABx0EAAcdBQAHHQYABx0HAAcdCQAHHQsABx0MAAcdDQAHHQ8ABx0QAAcdiwAHHY0ABx2PAAcdkQAHHZQABx2VAAcdlgAHHZcABx2YAAcdmgAHHZwABx2dAAcdngAHHaAABx2hAAceHAAHHh4ABx4gAAceIgAHHiUABx4mAAceJwAHHigABx4pAAceKwAHHi0ABx4uAAceLwAHHjEABx4yAAcerQAHHq8ABx6xAAceswAHHrYABx63AAceuAAHHrkABx66AAcevAAHHr4ABx6/AAcewAAHHsIABx7DAAcfVgAHH3kABx+ZAAcfuQAHH7sABx+9AAcfvwAHH8EABx/EAAcfxQAHH8YABx/JAAcfygAHH8wABx/NAAcfzwAHH9IABx/TAAcf1AAHH9cABx/YAAcf3QAHH/YABx//AAcgAQAHIAMAByAMAAcgDwAHIBIAByAUAAcgXQAHIIEAByCoAAcgzAAHIM8AByDRAAcg0wAHINUAByDXAAcg2QAHINoAByDdAAcg9gAHIRcAByEZAAchGwAHIR0AByEfAAchIQAHISMAByElAAchJwAHIUgAByFLAAchTgAHIVEAByFUAAchVwAHIVoAByFdAAchYAAHIWIAByHdAAch3wAHIeEAByHjAAch5gAHIecAByHoAAch6QAHIeoAByHsAAch7gAHIe8AByHwAAch8gAHIfMAByJuAAcicAAHInIAByJ0AAcidwAHIngAByJ5AAciegAHInsAByJ9AAcifwAHIoAAByKBAAcigwAHIoQAByL/AAcjAQAHIwQAByMGAAcjCQAHIwoAByMLAAcjDAAHIw0AByMPAAcjEQAHIxIAByMTAAcjFQAHIxYAByMvAAcjMAAHIzEAByMzAAcjrgAHI7AAByOyAAcjtAAHI7cAByO4AAcjuQAHI7oAByO7AAcjvQAHI78AByPAAAcjwQAHI8MAByPEAAckPwAHJEEAByRDAAckRQAHJEgAByRJAAckSgAHJEsAByRMAAckTgAHJFAAByRRAAckUgAHJFQAByRVAAck0AAHJNIAByTUAAck1gAHJNkAByTaAAck2wAHJNwAByTdAAck3wAHJOEAByTiAAck4wAHJOUAByTmAAclYQAHJWMAByVlAAclZwAHJWoAByVrAAclbAAHJW0AByVuAAclcAAHJXIAByVzAAcldAAHJXYAByV3AAcl8gAHJfQAByX2AAcl+AAHJfsAByX8AAcl/QAHJf4AByX/AAcmAQAHJgMAByYEAAcmBQAHJgcAByYIAAcmUQAHJnUAByacAAcmwAAHJsMABybFAAcmxwAHJskABybLAAcmzQAHJs4ABybRAAcm6gAHJwcABycJAAcnCwAHJw0ABycPAAcnEQAHJxMABycVAAcnMgAHJzUAByc4AAcnOwAHJz4ABydBAAcnRAAHJ0cABydJAAcnxAAHJ8YAByfIAAcnygAHJ80AByfOAAcnzwAHJ9AAByfRAAcn0wAHJ9UAByfWAAcn1wAHJ9kAByfaAAcoVQAHKFcAByhZAAcoWwAHKF4AByhfAAcoYAAHKGEAByhiAAcoZAAHKGYAByhnAAcoaAAHKGoAByhrAAco5gAHKOgAByjrAAco7QAHKPAAByjxAAco8gAHKPMAByj0AAco9gAHKPgAByj5AAco+gAHKPwAByj9AAcpeAAHKXoAByl9AAcpfwAHKYIABymDAAcphAAHKYUABymGAAcpiAAHKYoABymLAAcpjAAHKY4ABymPAAcqCgAHKgwAByoOAAcqEAAHKhMAByoUAAcqFQAHKhYAByoXAAcqGQAHKhsAByocAAcqHQAHKh8AByogAAcqmwAHKp0AByqfAAcqoQAHKqQAByqlAAcqpgAHKqcAByqoAAcqqgAHKqwAByqtAAcqrgAHKrAAByqxAAcrLAAHKy4AByswAAcrMgAHKzUABys2AAcrNwAHKzgABys5AAcrOwAHKz0ABys+AAcrPwAHK0EABytCAAcrUwAHK1QABytWAAcr0QAHK9MAByvVAAcr1wAHK9oAByvbAAcr3AAHK90AByveAAcr4AAHK+IAByvjAAcr5AAHK+YAByvnAAcsYgAHLGQAByxmAAcsaAAHLGsAByxsAAcsbQAHLG4AByxvAAcscQAHLHMAByx0AAcsdQAHLHcAByx4AAcs8wAHLPUAByz4AAcs+gAHLP0AByz+AAcs/wAHLQAABy0BAActAwAHLQUABy0GAActBwAHLQkABy0KAActnQAHLcAABy3gAAcuAAAHLgIABy4EAAcuBgAHLggABy4LAAcuDAAHLg0ABy4QAAcuEQAHLhMABy4UAAcuFgAHLhkABy4aAAcuGwAHLh4ABy4fAAcuJAAHLj0ABy5GAAcuSAAHLkoABy5TAAcuVgAHLlkABy5bAAcupAAHLsgABy7vAAcvEwAHLxYABy8YAAcvGgAHLxwABy8eAAcvIAAHLyEABy8kAAcvPQAHL14ABy9gAAcvYgAHL2QABy9mAAcvaAAHL2oABy9sAAcvbgAHL48ABy+SAAcvlQAHL5gABy+bAAcvngAHL6EABy+kAAcvpwAHL6kABzAkAAcwJgAHMCgABzAqAAcwLQAHMC4ABzAvAAcwMAAHMDEABzAzAAcwNQAHMDYABzA3AAcwOQAHMDoABzC1AAcwtwAHMLkABzC7AAcwvgAHML8ABzDAAAcwwQAHMMIABzDEAAcwxgAHMMcABzDIAAcwygAHMMsABzFGAAcxSAAHMUsABzFNAAcxUAAHMVEABzFSAAcxUwAHMVQABzFWAAcxWAAHMVkABzFaAAcxXAAHMV0ABzF2AAcxdwAHMXgABzF6AAcx9QAHMfcABzH5AAcx+wAHMf4ABzH/AAcyAAAHMgEABzICAAcyBAAHMgYABzIHAAcyCAAHMgoABzILAAcyhgAHMogABzKKAAcyjAAHMo8ABzKQAAcykQAHMpIABzKTAAcylQAHMpcABzKYAAcymQAHMpsABzKcAAczFwAHMxkABzMbAAczHQAHMyAABzMhAAczIgAHMyMABzMkAAczJgAHMygABzMpAAczKgAHMywABzMtAAczqAAHM6oABzOsAAczrgAHM7EABzOyAAczswAHM7QABzO1AAcztwAHM7kABzO6AAczuwAHM70ABzO+AAc0OQAHNDsABzQ9AAc0PwAHNEIABzRDAAc0RAAHNEUABzRGAAc0SAAHNEoABzRLAAc0TAAHNE4ABzRPAAc0mAAHNLwABzTjAAc1BwAHNQoABzUMAAc1DgAHNRAABzUSAAc1FAAHNRUABzUYAAc1MQAHNU4ABzV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dAAdYHgAHWCAAB1ghAAdYnAAHWJ4AB1igAAdYogAHWKUAB1imAAdYpwAHWKgAB1ipAAdYqwAHWK0AB1iuAAdYrwAHWLEAB1iyAAdZLQAHWS8AB1kxAAdZMwAHWTYAB1k3AAdZOAAHWTkAB1k6AAdZPAAHWT4AB1k/AAdZQAAHWUIAB1lDAAdZvgAHWcAAB1nCAAdZxAAHWccAB1nIAAdZyQAHWcoAB1nLAAdZzQAHWc8AB1nQAAdZ0QAHWdMAB1nUAAdaHQAHWkEAB1poAAdajAAHWo8AB1qRAAdakwAHWpUAB1qXAAdamQAHWpoAB1qdAAdatgAHWtMAB1rVAAda1wAHWtkAB1rbAAda3QAHWt8AB1rhAAda/gAHWwEAB1sEAAdbBwAHWwoAB1sNAAdbEAAHWxMAB1sVAAdbkAAHW5IAB1uUAAdblgAHW5kAB1uaAAdbmwAHW5wAB1udAAdbnwAHW6EAB1uiAAdbowAHW6UAB1umAAdcIQAHXCMAB1wlAAdcJwAHXCoAB1wrAAdcLAAHXC0AB1wuAAdcMAAHXDIAB1wzAAdcNAAHXDYAB1w3AAdcsgAHXLQAB1y2AAdcuAAHXLsAB1y8AAdcvQAHXL4AB1y/AAdcwQAHXMMAB1zEAAdcxQAHXMcAB1zIAAddQwAHXUUAB11IAAddSgAHXU0AB11OAAddTwAHXVAAB11RAAddUwAHXVUAB11WAAddVwAHXVkAB11aAAdd1QAHXdcAB13ZAAdd2wAHXd4AB13fAAdd4AAHXeEAB13iAAdd5AAHXeYAB13nAAdd6AAHXeoAB13rAAdeZgAHXmgAB15qAAdebAAHXm8AB15wAAdecQAHXnIAB15zAAdedQAHXncAB154AAdeeQAHXnsAB158AAde9wAHXvkAB177AAde/QAHXwAAB18BAAdfAgAHXwMAB18EAAdfBgAHXwgAB18JAAdfCgAHXwwAB18NAAdfoAAHX8MAB1/jAAdgAwAHYAUAB2AHAAdgCQAHYAsAB2AOAAdgDwAHYBAAB2ATAAdgFAAHYBYAB2AXAAdgGQAHYBwAB2AdAAdgHgAHYCEAB2AiAAdgJwAHYEAAB2BJAAdgSwAHYE0AB2BWAAdgWQAHYFwAB2BeAAdgpwAHYMsAB2DyAAdhFgAHYRkAB2EbAAdhHQAHYR8AB2EhAAdhIwAHYSQAB2E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hAAeXIwAHlyUAB5cmAAeXJwAHlykAB5cqAAeXcwAHl5cAB5e+AAeX4gAHl+UAB5fnAAeX6QAHl+sAB5ftAAeX7wAHl/AAB5fzAAeYDAAHmCkAB5grAAeYLQAHmC8AB5gxAAeYMwAHmDUAB5g3AAeYVAAHmFcAB5haAAeYXQAHmGAAB5hjAAeYZgAHmGkAB5hrAAeY5gAHmOgAB5jrAAeY7QAHmPAAB5jxAAeY8gAHmPMAB5j0AAeY9gAHmPgAB5j5AAeY+gAHmPwAB5j9AAeZeAAHmXoAB5l8AAeZfgAHmYEAB5mCAAeZgwAHmYQAB5mFAAeZhwAHmYkAB5mKAAeZiwAHmY0AB5mOAAeaCQAHmgsAB5oNAAeaDwAHmhIAB5oTAAeaFAAHmhUAB5oWAAeaGAAHmhoAB5obAAeaHAAHmh4AB5ofAAeamgAHmpwAB5qfAAeaoQAHmqQAB5qlAAeapgAHmqcAB5qoAAeaqgAHmqwAB5qtAAeargAHmrAAB5qxAAebLAAHmy4AB5swAAebMgAHmzUAB5s2AAebNwAHmzgAB5s5AAebOwAHmz0AB5s+AAebPwAHm0EAB5tCAAebvQAHm78AB5vBAAebwwAHm8YAB5vHAAebyAAHm8kAB5vKAAebzAAHm84AB5vPAAeb0AAHm9IAB5vTAAecTgAHnFAAB5xSAAecVAAHnFcAB5xYAAecWQAHnFoAB5xbAAecXQAHnF8AB5xgAAecYQAHnGMAB5xkAAec9wAHnRoAB506AAedWgAHnVwAB51eAAedYAAHnWIAB51lAAedZgAHnWcAB51qAAedawAHnW0AB51uAAedcAAHnXMAB510AAeddQAHnXgAB515AAedfgAHnZcAB52gAAedogAHnaQAB52tAAedsAAHnbMAB521AAed/gAHniIAB55JAAeebQAHnnAAB55yAAeedAAHnnYAB554AAeeegAHnnsAB55+AAeelwAHnrgAB566AAeevAAHnr4AB57AAAeewgAHnsQAB57GAAeeyAAHnukAB57sAAee7wAHnvIAB571AAee+AAHnvsAB57+AAefAQAHnwMAB59+AAefgAAHn4IAB5+EAAefhwAHn4gAB5+JAAefigAHn4sAB5+NAAefjwAHn5AAB5+RAAefkwAHn5QAB6APAAegEQAHoBMAB6AVAAegGAAHoBkAB6AaAAegGwAHoBwAB6AeAAegIAAHoCEAB6AiAAegJAAHoCUAB6CgAAegogAHoKUAB6CnAAegqgAHoKsAB6CsAAegrQAHoK4AB6CwAAegsgAHoLMAB6C0AAegtgAHoLcAB6DQAAeg0QAHoNIAB6DUAAehTwAHoVEAB6FTAAehVQAHoVgAB6FZAAehWgAHoVsAB6FcAAehXgAHoWAAB6FhAAehYgAHoWQAB6FlAAeh4AAHoeIAB6HkAAeh5gAHoekAB6HqAAeh6wAHoewAB6HtAAeh7wAHofEAB6HyAAeh8wAHofUAB6H2AAeicQAHonMAB6J1AAeidwAHonoAB6J7AAeifAAHon0AB6J+AAeigAAHooIAB6KDAAeihAAHooYAB6KHAAejAgAHowQAB6MGAAejCAAHowsAB6MMAAejDQAHow4AB6MPAAejEQAHoxMAB6MUAAejFQAHoxcAB6MYAAejkwAHo5UAB6OXAAejmQAHo5wAB6OdAAejngAHo58AB6OgAAejogAHo6QAB6OlAAejpgAHo6gAB6OpAAej8gAHpBYAB6Q9AAekYQAHpGQAB6RmAAekaAAHpGoAB6RsAAekbgAHpG8AB6RyAAekiwAHpKgAB6SqAAekrAAHpK4AB6SwAAeksgAHpLQAB6S2AAek0wAHpNYAB6TZAAek3AAHpN8AB6TiAAek5QAHpOgAB6TqAAelZQAHpWcAB6VqAAelbAAHpW8AB6VwAAelcQAHpXIAB6VzAAeldQAHpXcAB6V4AAeleQAHpXsAB6V8AAel9wAHpfkAB6X7AAel/QAHpgAAB6YBAAemAgAHpgMAB6YEAAemBgAHpggAB6YJAAemCgAHpgwAB6YNAAemiAAHpooAB6aNAAemjwAHppIAB6aTAAemlAAHppUAB6aWAAemmAAHppoAB6abAAemnAAHpp4AB6afAAenGgAHpxwAB6cfAAenIQAHpyQAB6clAAenJgAHpycAB6coAAenKgAHpywAB6ctAAenLgAHpzAAB6cxAAenrAAHp64AB6ewAAensgAHp7UAB6e2AAentwAHp7gAB6e5AAenuwAHp70AB6e+AAenvwAHp8EAB6fCAAeoPQAHqD8AB6hBAAeoQwAHqEYAB6hHAAeoSAAHqEkAB6hKAAeoTAAHqE4AB6hPAAeoUAAHqFIAB6hTAAeozgAHqNAAB6j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9AAfUfwAH1IEAB9SCAAfUgwAH1IUAB9SGAAfVAQAH1QMAB9UFAAfVBwAH1QoAB9ULAAfVDAAH1Q0AB9UOAAfVEAAH1RIAB9UTAAfVFAAH1RYAB9UXAAfVkgAH1ZQAB9WWAAfVmAAH1ZsAB9WcAAfVnQAH1Z4AB9WfAAfVoQAH1aMAB9WkAAfVpQAH1acAB9WoAAfV8QAH1hUAB9Y8AAfWYAAH1mMAB9ZlAAfWZwAH1mkAB9ZrAAfWbQAH1m4AB9ZxAAfWigAH1qcAB9apAAfWqwAH1q0AB9avAAfWsQAH1rMAB9a1AAfW0gAH1tUAB9bYAAfW2wAH1t4AB9bhAAfW5AAH1ucAB9bpAAfXZAAH12YAB9doAAfXagAH120AB9duAAfXbwAH13AAB9dxAAfXcwAH13UAB9d2AAfXdwAH13kAB9d6AAfX9QAH1/cAB9f5AAfX+wAH1/4AB9f/AAfYAAAH2AEAB9gCAAfYBAAH2AYAB9gHAAfYCAAH2AoAB9gLAAfYhgAH2IgAB9iKAAfYjAAH2I8AB9iQAAfYkQAH2JIAB9iTAAfYlQAH2JcAB9iYAAfYmQAH2JsAB9icAAfZFwAH2RkAB9kcAAfZHgAH2SEAB9kiAAfZIwAH2SQAB9klAAfZJwAH2SkAB9kqAAfZKwAH2S0AB9kuAAfZqQAH2asAB9mtAAfZrwAH2bIAB9mzAAfZtAAH2bUAB9m2AAfZuAAH2boAB9m7AAfZvAAH2b4AB9m/AAfaOgAH2jwAB9o+AAfaQAAH2kMAB9pEAAfaRQAH2kYAB9pHAAfaSQAH2ksAB9pMAAfaTQAH2k8AB9pQAAfaywAH2s0AB9rPAAfa0QAH2tQAB9rVAAfa1gAH2tcAB9rYAAfa2gAH2twAB9rdAAfa3gAH2uAAB9rhAAfbdAAH25cAB9u3AAfb1wAH29kAB9vbAAfb3QAH298AB9viAAfb4wAH2+QAB9vnAAfb6AAH2+oAB9vrAAfb7gAH2/EAB9vyAAfb8wAH2/YAB9v3AAfb/AAH3BUAB9weAAfcIAAH3CIAB9wrAAfcLgAH3DEAB9wzAAfcfAAH3KAAB9zHAAfc6wAH3O4AB9zwAAfc8gAH3PQAB9z2AAfc+AAH3PkAB9z8AAfdFQAH3TYAB904AAfdOgAH3TwAB90+AAfdQAAH3UIAB91EAAfdRgAH3WcAB91qAAfdbQAH3XAAB91zAAfddgAH3XkAB918AAfdfwAH3YEAB938AAfd/gAH3gAAB94CAAfeBQAH3gYAB94HAAfeCAAH3gkAB94LAAfeDQAH3g4AB94PAAfeEQAH3hIAB96NAAfejwAH3pEAB96TAAfelgAH3pcAB96YAAfemQAH3poAB96cAAfengAH3p8AB96gAAfeogAH3qMAB98eAAffIAAH3yMAB98lAAffKAAH3ykAB98qAAffKwAH3ywAB98uAAffMAAH3zEAB98yAAffNAAH3zUAB99OAAffTwAH31AAB99SAAffzQAH388AB9/RAAff0wAH39YAB9/XAAff2AAH39kAB9/aAAff3AAH394AB9/fAAff4AAH3+IAB9/jAAfgXgAH4GAAB+BiAAfgZAAH4GcAB+BoAAfgaQAH4GoAB+BrAAfgbQAH4G8AB+BwAAfgcQAH4HMAB+B0AAfg7wAH4PEAB+DzAAfg9QAH4PgAB+D5AAfg+gAH4PsAB+D8AAfg/gAH4QAAB+EBAAfhAgAH4QQAB+EFAAfhgAAH4YIAB+GEAAfhhgAH4YkAB+GKAAfhiwAH4YwAB+GNAAfhjwAH4ZEAB+GSAAfhkwAH4ZUAB+GWAAfiEQAH4hMAB+IVAAfiFwAH4hoAB+IbAAfiHAAH4h0AB+IeAAfiIAAH4iIAB+IjAAfiJAAH4iYAB+InAAficAAH4pQAB+K7AAfi3wAH4uIAB+LkAAfi5gAH4ugAB+LqAAfi7AAH4u0AB+LwAAfjCQAH4yYAB+MoAAfjKgAH4ywAB+MuAAfjMAAH4zIAB+M0AAfjUQAH41QAB+NXAAfjWgAH410AB+NgAAfjYwAH42YAB+NoAAfj4wAH4+UAB+PnAAfj6QAH4+wAB+PtAAfj7gAH4+8AB+PwAAfj8gAH4/QAB+P1AAfj9gAH4/gAB+P5AAfkdAAH5HYAB+R5AAfkewAH5H4AB+R/AAfkgAAH5IEAB+SCAAfkhAAH5IYAB+SHAAfkiAAH5IoAB+SLAAflBgAH5QgAB+UKAAflDAAH5Q8AB+UQAAflEQAH5RIAB+UTAAflFQAH5RcAB+UYAAflGQAH5RsAB+UcAAfllwAH5ZkAB+WcAAflngAH5aEAB+WiAAflowAH5aQAB+WlAAflpwAH5akAB+WqAAflqwAH5a0AB+WuAAfmMQAH5lUAB+Z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bAAgBHQAIAR8ACAEgAAgBIQAIASMACAEkAAgBnwAIAaEACAGjAAgBpQAIAagACAGpAAgBqgAIAasACAGsAAgBrgAIAbAACAGxAAgBsgAIAbQACAG1AAgCMAAIAjIACAI0AAgCNgAIAjkACAI6AAgCOwAIAjwACAI9AAgCPwAIAkEACAJCAAgCQwAIAkUACAJGAAgCwQAIAsMACALFAAgCxwAIAsoACALLAAgCzAAIAs0ACALOAAgC0AAIAtIACALTAAgC1AAIAtYACALXAAgDUgAIA1QACANWAAgDWAAIA1sACANcAAgDXQAIA14ACANfAAgDYQAIA2MACANkAAgDZQAIA2cACANoAAgDsQAIA9UACAP8AAgEIAAIBCMACAQlAAgEJwAIBCkACAQrAAgELQAIBC4ACAQxAAgESgAIBGcACARpAAgEawAIBG0ACARvAAgEcQAIBHMACAR1AAgEkgAIBJUACASYAAgEmwAIBJ4ACAShAAgEpAAIBKcACASpAAgFJAAIBSYACAUpAAgFKwAIBS4ACAUvAAgFMAAIBTEACAUyAAgFNAAIBTYACAU3AAgFOAAIBToACAU7AAgFtgAIBbgACAW6AAgFvAAIBb8ACAXAAAgFwQAIBcIACAXDAAgFxQAIBccACAXIAAgFyQAIBcsACAXMAAgGRwAIBkkACAZLAAgGTQAIBlAACAZRAAgGUgAIBlMACAZUAAgGVgAIBlgACAZZAAgGWgAIBlwACAZdAAgG2AAIBtoACAbdAAgG3wAIBuIACAbjAAgG5AAIBuUACAbmAAgG6AAIBuoACAbrAAgG7AAIBu4ACAbvAAgHagAIB2wACAduAAgHcAAIB3MACAd0AAgHdQAIB3YACAd3AAgHeQAIB3sACAd8AAgHfQAIB38ACAeAAAgH+wAIB/0ACAf/AAgIAQAICAQACAgFAAgIBgAICAcACAgIAAgICgAICAwACAgNAAgIDgAICBAACAgRAAgIjAAICI4ACAiQAAgIkgAICJUACAiWAAgIlwAICJgACAiZAAgImwAICJ0ACAieAAgInwAICKEACAiiAAgJNQAICVgACAl4AAgJmAAICZoACAmcAAgJngAICaAACAmjAAgJpAAICaUACAmoAAgJqQAICasACAmsAAgJrgAICbEACAmyAAgJswAICbYACAm3AAgJwAAICdkACAn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DAAgbRAAIG0YACBtHAAgbwgAIG8QACBvGAAgbyAAIG8sACBvMAAgbzQAIG84ACBvPAAgb0QAIG9MACBvUAAgb1QAIG9cACBvYAAgcUwAIHFUACBxXAAgcWQAIHFwACBxdAAgcXgAIHF8ACBxgAAgcYgAIHGQACBxlAAgcZgAIHGgACBxpAAgcsgAIHNYACBz9AAgdIQAIHSQACB0mAAgdKAAIHSoACB0sAAgdLgAIHS8ACB0yAAgdSwAIHWgACB1qAAgdbAAIHW4ACB1wAAgdcgAIHXQACB12AAgdkwAIHZYACB2ZAAgdnAAIHZ8ACB2iAAgdpQAIHagACB2qAAgeJQAIHicACB4pAAgeKwAIHi4ACB4vAAgeMAAIHjEACB4yAAgeNAAIHjYACB43AAgeOAAIHjoACB47AAgetgAIHrgACB66AAgevAAIHr8ACB7AAAgewQAIHsIACB7DAAgexQAIHscACB7IAAgeyQAIHssACB7MAAgfRwAIH0kACB9LAAgfTQAIH1AACB9RAAgfUgAIH1MACB9UAAgfVgAIH1gACB9ZAAgfWgAIH1wACB9dAAgf2AAIH9oACB/dAAgf3wAIH+IACB/jAAgf5AAIH+UACB/mAAgf6AAIH+oACB/rAAgf7AAIH+4ACB/vAAggagAIIGwACCBuAAggcAAIIHMACCB0AAggdQAIIHYACCB3AAggeQAIIHsACCB8AAggfQAIIH8ACCCAAAgg+wAIIP0ACCD/AAghAQAIIQQACCEFAAghBgAIIQcACCEIAAghCgAIIQwACCENAAghDgAIIRAACCERAAghjAAIIY4ACCGQAAghkgAIIZUACCGWAAghlwAIIZgACCGZAAghmwAIIZ0ACCGeAAghnwAIIaEACCGiAAgiNQAIIlgACCJ4AAgimAAIIpoACCKcAAgingAIIqAACCKjAAgipAAIIqUACCKoAAgiqQAIIqsACCKsAAgirgAIIrEACCKyAAgiswAIIrYACCK3AAgivAAIItUACCLeAAgi4AAIIuIACCLrAAgi7gAIIvEACCLzAAgjPAAII2AACCOHAAgjqwAII64ACCOwAAgjsgAII7QACCO2AAgjuAAII7kACCO8AAgj1QAII/YACCP4AAgj+gAII/wACCP+AAgkAAAIJAIACCQEAAgkBgAIJCcACCQqAAgkLQAIJDAACCQzAAgkNgAIJDkACCQ8AAgkPwAIJEEACCS8AAgkvgAIJMAACCTCAAgkxQAIJMYACCTHAAgkyAAIJMkACCTLAAgkzQAIJM4ACCTPAAgk0QAIJNIACCVNAAglTwAIJVEACCVTAAglVgAIJVcACCVYAAglWQAIJVoACCVcAAglXgAIJV8ACCVgAAglYgAIJWMACCXeAAgl4AAIJeMACCXlAAgl6AAIJekACCXqAAgl6wAIJewACCXuAAgl8AAIJfEACCXyAAgl9AAIJfUACCYOAAgmDwAIJhAACCYSAAgmjQAIJo8ACCaRAAgmkwAIJpYACCaXAAgmmAAIJpkACCaaAAgmnAAIJp4ACCafAAgmoAAIJqIACCajAAgnHgAIJyAACCciAAgnJAAIJycACCcoAAgnKQAIJyoACCcrAAgnLQAIJy8ACCcwAAgnMQAIJzMACCc0AAgnrwAIJ7EACCezAAgntQAIJ7gACCe5AAgnugAIJ7sACCe8AAgnvgAIJ8AACCfBAAgnwgAIJ8QACCfFAAgoQAAIKEIACChEAAgoRgAIKEkACChKAAgoSwAIKEwACChNAAgoTwAIKFEACChSAAgoUwAIKFUACChWAAgo0QAIKNMACCjVAAgo1wAIKNoACCjbAAgo3AAIKN0ACCjeAAgo4AAIKOIACCjjAAgo5AAIKOYACCjnAAgpMAAIKVQACCl7AAgpnwAIKaIACCmkAAgppgAIKagACCmqAAgprAAIKa0ACCmwAAgpyQAIKeYACCnoAAgp6gAIKewACCnuAAgp8AAIKfIACCn0AAgqEQAIKhQACCoXAAgqGgAIKh0ACCogAAgqIwAIKiYACCooAAgqowAIKqUACCqnAAgqqQAIKqwACCqtAAgqrgAIKq8ACCqwAAgqsgAIKrQACCq1AAgqtgAIKrgACCq5AAgrNAAIKzYACCs4AAgrOgAIKz0ACCs+AAgrPwAIK0AACCtBAAgrQwAIK0UACCtGAAgrRwAIK0kACCtKAAgrxQAIK8cACCvJAAgrywAIK84ACCvPAAgr0AAIK9EACCvSAAgr1AAIK9YACCvXAAgr2AAIK9oACCvbAAgsVgAILFgACCxbAAgsXQAILGAACCxhAAgsYgAILGMACCxkAAgsZgAILGgACCxpAAgsagAILGwACCxtAAgs6AAILOoACCzsAAgs7gAILPEACCzyAAgs8wAILPQACCz1AAgs9wAILPkACCz6AAgs+wAILP0ACCz+AAgteQAILXsACC19AAgtfwAILYIACC2DAAgthAAILYUACC2GAAgtiAAILYoACC2LAAgtjAAILY4ACC2PAAguCgAILgwACC4OAAguEAAILhMACC4UAAguFQAILhYACC4XAAguGQAILhsACC4cAAguHQAILh8ACC4gAAguswAILtYACC72AAgvFgAILxgACC8aAAgvHAAILx4ACC8hAAgvIgAILyMACC8mAAgvJwAILykACC8qAAgvLQAILzAACC8xAAgvMgAILzUACC82AAgvOwAIL1QACC9dAAgvXwAIL2EACC9qAAgvbQAIL3AACC9yAAgvuwAIL98ACDAGAAgwKgAIMC0ACDAvAAgwMQAIMDMACDA1AAgwNwAIMDgACDA7AAgwVAAIMHUACDB3AAgweQAIMHsACDB9AAgwfwAIMIEACDCDAAgwhQAIMKYACDCpAAgwrAAIMK8ACDCyAAgwtQAIMLgACDC7AAgwvgAIMMAACDE7AAgxPQAIMT8ACDFBAAgxRAAIMUUACDFGAAgxRwAIMUgACDFKAAgxTAAIMU0ACDFOAAgxUAAIMVEACDHMAAgxzgAIMdAACDHSAAgx1QAIMdYACDHXAAgx2AAIMdkACDHbAAgx3QAIMd4ACDHfAAgx4QAIMeIACDJdAAgyXwAIMmIACDJkAAgyZwAIMmgACDJpAAgyagAIMmsACDJtAAgybwAIMnAACDJxAAgycwAIMnQACDKNAAgyjgAIMo8ACDKRAAgzDAAIMw4ACDMQAAgzEgAIMxUACDMWAAgzFwAIMxgACDMZAAgzGwAIMx0ACDMeAAgzHwAIMyEACDMiAAgznQAIM58ACDOhAAgzowAIM6YACDOnAAgzqAAIM6kACDOqAAgzrAAIM64ACDOvAAgzsAAIM7IACDOzAAg0LgAINDAACDQyAAg0NAAINDcACDQ4AAg0OQAINDoACDQ7AAg0PQAIND8ACDRAAAg0QQAINEMACDREAAg0vwAINMEACDTDAAg0xQAINMgACDTJAAg0ygAINMsACDTMAAg0zgAINNAACDTRAAg00gAINNQACDTVAAg1UAAINVIACDVUAAg1VgAINVkACDVaAAg1WwAINVwACDVdAAg1XwAINWEACDViAAg1YwAINWUACDV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pAAhHKgAIRysACEcsAAhHLgAIRzAACEcxAAhHMgAIRzQACEc1AAhHsAAIR7IACEe0AAhHtgAIR7kACEe6AAhHuwAIR7wACEe9AAhHvwAIR8EACEfCAAhHwwAIR8UACEfGAAhIQQAISEMACEhFAAhIRwAISEoACEhLAAhITAAISE0ACEhOAAhIUAAISFIACEhTAAhIVAAISFYACEhXAAhI0gAISNQACEjXAAhI2QAISNwACEjdAAhI3gAISN8ACEjgAAhI4gAISOQACEjlAAhI5gAISOgACEjpAAhJfAAISZ8ACEm/AAhJ3wAISeEACEnjAAhJ5QAISecACEnqAAhJ6wAISewACEnvAAhJ8AAISfIACEnzAAhJ9gAISfkACEn6AAhJ+wAISf4ACEn/AAhKBAAISh0ACEomAAhKKAAISioACEozAAhKNgAISjkACEo7AAhKhAAISqgACErPAAhK8wAISvYACEr4AAhK+gAISvwACEr+AAhLAAAISwEACEsEAAhLHQAISz4ACEtAAAhLQgAIS0QACEtGAAhLSAAIS0oACEtMAAhLTgAIS28ACEtyAAhLdQAIS3gACEt7AAhLfgAIS4EACEuEAAhLhwAIS4kACEwEAAhMBgAITAgACEwKAAhMDQAITA4ACEwPAAhMEAAITBEACEwTAAhMFQAITBYACEwXAAhMGQAITBoACEyVAAhMlwAITJkACEybAAhMngAITJ8ACEygAAhMoQAITKIACEykAAhMpgAITKcACEyoAAhMqgAITKsACE0mAAhNKAAITSsACE0tAAhNMAAITTEACE0yAAhNMwAITTQACE02AAhNOAAITTkACE06AAhNPAAITT0ACE1WAAhNVwAITVgACE1aAAhN1QAITdcACE3ZAAhN2wAITd4ACE3fAAhN4AAITeEACE3iAAhN5AAITeYACE3nAAhN6AAITeoACE3rAAhOZgAITmgACE5qAAhObAAITm8ACE5wAAhOcQAITnIACE5zAAhOdQAITncACE54AAhOeQAITnsACE58AAhO9wAITvkACE77AAhO/QAITwAACE8BAAhPAgAITwMACE8EAAhPBgAITwgACE8JAAhPCgAITwwACE8NAAhPiAAIT4oACE+MAAhPjgAIT5EACE+SAAhPkwAIT5QACE+VAAhPlwAIT5kACE+aAAhPmwAIT50ACE+eAAhQGQAIUBsACFAdAAhQHwAIUCIACFAjAAhQJAAIUCUACFAmAAhQKAAIUCoACFArAAhQLAAIUC4ACFAvAAhQeAAIUJwACFDDAAhQ5wAIUOoACFDsAAhQ7gAIUPAACFDyAAhQ9AAIUPUACFD4AAhREQAIUS4ACFEwAAhRMgAIUTQACFE2AAhROAAIUToACFE8AAhRWQAIUVwACFFfAAhRYgAIUWUACFFoAAhRawAIUW4ACFFwAAhR6wAIUe0ACFHvAAhR8QAIUfQACFH1AAhR9gAIUfcACFH4AAhR+gAIUfwACFH9AAhR/gAIUgAACFIBAAhSfAAIUn4ACFKAAAhSggAIUoUACFKGAAhShwAIUogACFKJAAhSiwAIUo0ACFKOAAhSjwAIUpEACFKSAAhTDQAIUw8ACFMRAAhTEwAIUxYACFMXAAhTGAAIUxkACFMaAAhTHAAIUx4ACFMfAAhTIAAIUyIACFMjAAhTngAIU6AACFOjAAhTpQAIU6gACFOpAAhTqgAIU6sACFOsAAhTrgAIU7AACFOxAAhTsgAIU7QACFO1AAhUMAAIVDIACFQ0AAhUNgAIVDkACFQ6AAhUOwAIVDwACFQ9AAhUPwAIVEEACFRCAAhUQwAIVEUACFRGAAhUwQAIVMMACFTFAAhUxwAIVMoACFTLAAhUzAAIVM0ACFTOAAhU0AAIVNIACFTTAAhU1AAIVNYACFTXAAhVUgAIVVQACFVXAAhVWQAIVVwACFVdAAhVXgAIVV8ACFVgAAhVYgAIVWQACFVlAAhVZgAIVWgACFVpAAhV/AAIVh8ACFY/AAhWXwAIVmEACFZjAAhWZQAIVmcACFZqAAhWawAIVmwACFZvAAhWcAAIVnIACFZzAAhWdgAIVnkACFZ6AAhWewAIVn4ACFZ/AAhWiAAIVqEACFaqAAhWrAAIVq4ACFa3AAhWugAIVr0ACFa/AAhXCAAIVywACFdTAAhXdwAIV3oACFd8AAhXfgAIV4AACFeCAAhXhAAIV4UACFeIAAhXoQAIV8IACFfEAAhXxgAIV8gACFfKAAhXzAAIV84ACFfQAAhX0gAIV/MACFf2AAhX+QAIV/wACFf/AAhYAgAIWAUACFgIAAhYCwAIWA0ACFiIAAhYigAIWIwACFiOAAhYkQAIWJIACFiTAAhYlAAIWJUACFiXAAhYmQAIWJoACFibAAhYnQAIWJ4ACFkZAAhZGwAIWR0ACFkfAAhZIgAIWSMACFkkAAhZJQAIWSYACFkoAAhZKgAIWSsACFksAAhZLgAIWS8ACFmqAAhZrAAIWa8ACFmxAAhZtAAIWbUACFm2AAhZtwAIWbgACFm6AAhZvAAIWb0ACFm+AAhZwAAIWcEACFnaAAhZ2wAIWdwACFneAAhaWQAIWlsACFpdAAhaXwAIWmIACFpjAAhaZAAIWmUACFpmAAhaaAAIWmoACFprAAhabAAIWm4ACFpvAAha6gAIWuwACFruAAha8AAIWvMACFr0AAha9QAIWvYACFr3AAha+QAIWvsACFr8AAha/QAIWv8ACFsAAAhbewAIW30ACFt/AAhbgQAIW4QACFuFAAhbhgAIW4cACFuIAAhbigAIW4wACFuNAAhbjgAIW5AACFuRAAhcDAAIXA4ACFwQAAhcEgAIXBUACFwWAAhcFwAIXBgACFwZAAhcGwAIXB0ACFweAAhcHwAIXCEACFwiAAhcnQAIXJ8ACFyhAAhcowAIXKYACFynAAhcqAAIXKkACFyqAAhcrAAIXK4ACFyvAAhcsAAIXLIACFyzAAhc/AAIXSAACF1HAAhdawAIXW4ACF1wAAhdcgAIXXQACF12AAhdeAAIXXkACF18AAhdlQAIXbIACF20AAhdtgAIXbgACF26AAhdvAAIXb4ACF3AAAhd3QAIXeAACF3jAAhd5gAIXekACF3sAAhd7wAIXfIACF30AAhebwAIXnEACF5zAAhedQAIXngACF55AAheegAIXnsACF58AAhefgAIXoAACF6BAAheggAIXoQACF6FAAhfAAAIXwIACF8FAAhfBwAIXwoACF8LAAhfDAAIXw0ACF8OAAhfEAAIXxIACF8TAAhfFAAIXxYACF8XAAhfkgAIX5QACF+WAAhfmAAIX5sACF+cAAhfnQAIX54ACF+fAAhfoQAIX6MACF+kAAhfpQAIX6cACF+oAAhgIwAIYCUACGAoAAhgKgAIYC0ACGAuAAhgLwAIYDAACGAxAAhgMwAIYDUACGA2AAhgNwAIYDkACGA6AAhgvQAIYOEACGEFAAhhKAAIYU8ACGFvAAhhlgAIYb0ACGHdAAhiAQAIYiUACGInAAhiKgAIYiwACGIuAAhiMAAIYjMACGI2AAhiOAAIYjoACGI9AAhiPwAIYkEACGJEAAhiRwAIYkgACGJNAAhiZgAIYmsACGJtAAhicgAIYnUACGJ3AAhiwAAIYuQACGMLAAhjLwAIYzIACGM0AAhjNgAIYzgACGM6AAhjPAAIYz0ACGNAAAhjWQAIY34ACGOAAAhjggAIY4QACGOGAAhjiAAIY4oACGOMAAhjjgAIY5AACGO1AAhjuAAIY7sACGO+AAhjwQAIY8QACGPHAAhjygAIY80ACGPQAAhj0gAIZE0ACGRPAAhkUgAIZFQACGRXAAhkWAAIZFkACGRaAAhkWwAIZF0ACGRfAAhkYAAIZGEACGRjAAhkZAAIZHUACGR2AAhkeAAIZPMACGT1AAhk9wAIZPkACGT8AAhk/QAIZP4ACGT/AAhlAAAIZQIACGUEAAhlBQAIZQYACGUIAAhlCQAIZYQACGWGAAhliQAIZYsACGWOAAhljwAIZZAACGWRAAhlkgAIZZQACGWWAAhllwAIZZgACGWaAAhlmwAIZawACGWtAAhlrwAIZioACGYsAAhmLgAIZjAACGYzAAhmNAAIZjUACGY2AAhmNwAIZjkACGY7AAhmPAAIZj0ACGY/AAhmQAAIZrsACGa9AAhmwAAIZsIACGbFAAhmxgAIZscACGbIAAhmyQAIZssACGbNAAhmzgAIZs8ACGbRAAhm0gAIZuMACGbkAAhm5gAIZ2EACGdjAAhnZQAIZ2cACGdqAAhnawAIZ2wACGdtAAhnbgAIZ3AACGdyAAhncwAIZ3QACGd2AAhndwAIZ/IACGf0AAhn9wAIZ/kACGf8AAhn/QAIZ/4ACGf/AAhoAAAIaAIACGgEAAhoBQAIaAYACGgIAAhoCQAIaCIACGgjAAhoJAAIaCYACGihAAhoowAIaKUACGinAAhoqgAIaKsACGisAAhorQAIaK4ACGiwAAhosgAIaLMACGi0AAhotgAIaLcACGkyAAhpNAAIaTcACGk5AAhpPAAIaT0ACGk+AAhpPwAIaUAACGlCAAhpRAAIaUUACGlGAAhpSAAIaUkACGlxAAhpigAIab8ACGnCAAhpxQAIacgACGnLAAhpzgAIadEACGnUAAhp1wAIadoACGndAAhp4AAIaeMACGnmAAhqGwAIah4ACGohAAhqJAAIaicACGoqAAhqLQAIajAACGozAAhqNgAIajkACGo8AAhqPwAIakIACGpEAAhqaAAIanQACGqhAAhqugAIatEACGryAAhrCQAIaykACGs2AAhrTgAIa28ACGuKAAhsHQAIbEAACGxgAAhsgAAIbIIACGyEAAhshgAIbIgACGyLAAhsjAAIbI0ACGyQAAhskQAIbJMACGyUAAhslgAIbJkACGyaAAhsmwAIbJ4ACGyfAAhspAAIbL0ACGzGAAhsyAAIbMoACGzTAAhs1gAIbNkACGzbAAhtJAAIbUgACG1vAAhtkwAIbZYACG2YAAhtmgAIbZwACG2eAAhtoAAIbaEACG2kAAhtvQAIbd4ACG3gAAht4gAIbeQACG3mAAht6AAIbeoACG3sAAht7gAIbg8ACG4SAAhuFQAIbhgACG4bAAhuHgAIbiEACG4kAAhuJwAIbikACG6kAAhupgAIbqgACG6qAAhurQAIbq4ACG6vAAhusAAIbrEACG6zAAhutQAIbrYACG63AAhuuQAIbroACG81AAhvNwAIbzkACG87AAhvPgAIbz8ACG9AAAhvQQAIb0IACG9EAAhvRgAIb0cACG9IAAhvSgAIb0sACG/GAAhvyAAIb8sACG/NAAhv0AAIb9EACG/SAAhv0wAIb9QACG/WAAhv2AAIb9kACG/aAAhv3AAIb90ACG/2AAhv9wAIb/gACG/6AAhwdQAIcHcACHB5AAhwewAIcH4ACHB/AAhwgAAIcIEACHCCAAhwhAAIcIYACHCHAAhwiAAIcIoACHCLAAhxBgAIcQgACHEKAAhxDAAIcQ8ACHEQAAhxEQAIcRIACHETAAhxFQAIcRcACHEYAAhxGQAIcRsACHEcAAhxlwAIcZkACHGbAAhxnQAIcaAACHGhAAhxogAIcaMACHGkAAhxpgAIcagACHGpAAhxqgAIcawACHGtAAhyKAAIcioACHIsAAhyLgAIcjEACHIyAAhyMwAIcjQACHI1AAhyNwAIcjkACHI6AAhyOwAIcj0ACHI+AAhyuQAIcrsACHK9AAhyvwAIcsIACHLDAAhyxAAIcsUACHLGAAhyyAAIcsoACHLLAAhyzAAIcs4ACHLPAAhzGAAIczwACHNjAAhzhwAIc4oACHOMAAhzjgAIc5AACHOSAAhzlAAIc5UACHOYAAhzsQAIc84ACHPQAAhz0gAIc9QACHPWAAhz2AAIc9oACHPcAAhz+QAIc/wACHP/AAh0AgAIdAUACHQIAAh0CwAIdA4ACHQ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jAAiXJAAIlyYACJcnAAiXogAIl6QACJemAAiXqAAIl6sACJesAAiXrQAIl64ACJevAAiXsQAIl7MACJe0AAiXtQAIl7cACJe4AAiYMwAImDUACJg3AAiYOQAImDwACJg9AAiYPgAImD8ACJhAAAiYQgAImEQACJhFAAiYRgAImEgACJhJAAiYkgAImLYACJjdAAiZAQAImQQACJkGAAiZCAAImQoACJkMAAiZDgAImQ8ACJkSAAiZKwAImUgACJlKAAiZTAAImU4ACJlQAAiZUgAImVQACJlWAAiZcwAImXYACJl5AAiZfAAImX8ACJmCAAiZhQAImYgACJmKAAiaBQAImgcACJoJAAiaCwAImg4ACJoPAAiaEAAImhEACJoSAAiaFAAImhYACJoXAAiaGAAImhoACJobAAialgAImpgACJqaAAianAAImp8ACJqgAAiaoQAImqIACJqjAAiapQAImqcACJqoAAiaqQAImqsACJqsAAibJwAImykACJsrAAibLQAImzAACJsxAAibMgAImzMACJs0AAibNgAImzgACJs5AAibOgAImzwACJs9AAibuAAIm7oACJu9AAibvwAIm8IACJvDAAibxAAIm8UACJvGAAibyAAIm8oACJvLAAibzAAIm84ACJvPAAicSgAInEwACJxOAAicUAAInFMACJxUAAicVQAInFYACJxXAAicWQAInFsACJxcAAicXQAInF8ACJxgAAic2wAInN0ACJzfAAic4QAInOQACJzlAAic5gAInOcACJzoAAic6gAInOwACJztAAic7gAInPAACJzxAAidbAAInW4ACJ1wAAidcgAInXUACJ12AAiddwAInXgACJ15AAidewAInX0ACJ1+AAidfwAInYEACJ2CAAieFQAInjgACJ5YAAieeAAInnoACJ58AAiefgAInoAACJ6DAAiehAAInoUACJ6IAAieiQAInosACJ6MAAiejgAInpEACJ6SAAiekwAInpYACJ6XAAienAAInrUACJ6+AAiewAAInsIACJ7LAAiezgAIntEACJ7TAAifHAAIn0AACJ9nAAifiwAIn44ACJ+QAAifkgAIn5QACJ+WAAifmAAIn5kACJ+cAAiftQAIn9YACJ/YAAif2gAIn9wACJ/eAAif4AAIn+IACJ/kAAif5gAIoAcACKAKAAigDQAIoBAACKATAAigFgAIoBkACKAcAAigHwAIoCEACKCcAAigngAIoKAACKCiAAigpQAIoKYACKCnAAigqAAIoKkACKCrAAigrQAIoK4ACKCvAAigsQAIoLIACKEtAAihLwAIoTEACKEzAAihNgAIoTcACKE4AAihOQAIoToACKE8AAihPgAIoT8ACKFAAAihQgAIoUMACKG+AAihwAAIocMACKHFAAihyAAIockACKHKAAihywAIocwACKHOAAih0AAIodEACKHSAAih1AAIodUACKHuAAih7wAIofAACKHyAAiibQAIom8ACKJxAAiicwAIonYACKJ3AAiieAAIonkACKJ6AAiifAAIon4ACKJ/AAiigAAIooIACKKDAAii/gAIowAACKMCAAijBAAIowcACKMIAAijCQAIowoACKMLAAijDQAIow8ACKMQAAijEQAIoxMACKMUAAijjwAIo5EACKOTAAijlQAIo5gACKOZAAijmgAIo5sACKOcAAijngAIo6AACKOhAAijogAIo6QACKOlAAikIAAIpCIACKQkAAikJgAIpCkACKQqAAikKwAIpCwACKQtAAikLwAIpDEACKQyAAikMwAIpDUACKQ2AAiksQAIpLMACKS1AAiktwAIpLoACKS7AAikvAAIpL0ACKS+AAikwAAIpMIACKTDAAikxAAIpMYACKTHAAilEAAIpTQACKVbAAilfwAIpYIACKWEAAilhgAIpYgACKWKAAiljAAIpY0ACKWQAAilqQAIpcYACKXIAAilygAIpcwACKXOAAil0AAIpdIACKXUAAil8QAIpfQACKX3AAil+gAIpf0ACKYAAAimAwAIpgYACKYIAAimgwAIpoUACKaHAAimiQAIpowACKaNAAimjgAIpo8ACKaQAAimkgAIppQACKaVAAimlgAIppgACKaZAAinFAAIpxYACKcYAAinGgAIpx0ACKceAAinHwAIpyAACKchAAinIwAIpyUACKcmAAinJwAIpykACKcqAAinpQAIp6cACKepAAinqwAIp64ACKevAAinsAAIp7EACKeyAAintAAIp7YACKe3AAinuAAIp7oACKe7AAioNgAIqDgACKg7AAioPQAIqEAACKhBAAioQgAIqEMACKhEAAioRgAIqEgACKhJAAioSgAIqEwACKhNAAioyAAIqMoACKjMAAiozgAIqNEACKjSAAio0wAIqNQACKjVAAio1wAIqNkACKjaAAio2wAIqN0ACKjeAAipWQAIqVsACKldAAipXwAIqWIACKljAAipZAAIqWUACKlmAAipaAAIqWoACKlrAAipbAAIqW4ACKlvAAip6gAIqewACKnuAAip8AAIqfMACKn0AAip9QAIqfYACKn3AAip+QAIqfsACKn8AAip/QAIqf8ACKoAAAiqkwAIqrYACKrWAAiq9gAIqvgACKr6AAiq/AAIqv4ACKsBAAirAgAIqwMACKsGAAirBwAIqwkACKsKAAirDAAIqw8ACKsQAAirEQAIqxQACKsVAAirGgAIqzMACKs8AAirPgAIq0AACKtJAAirTAAIq08ACKtRAAirmgAIq74ACKvlAAisCQAIrAwACKwOAAisEAAIrBIACKwUAAisFgAIrBcACKwaAAisMwAIrFQACKxWAAisWAAIrFoACKxcAAisXgAIrGAACKxiAAisZAAIrIUACKyIAAisiwAIrI4ACKyRAAislAAIrJcACKyaAAisnQAIrJ8ACK0aAAitHAAIrR4ACK0gAAitIwAIrSQACK0lAAitJgAIrScACK0pAAitKwAIrSwACK0tAAitLwAIrTAACK2rAAitrQAIra8ACK2xAAittAAIrbUACK22AAittwAIrbgACK26AAitvAAIrb0ACK2+AAitwAAIrcEACK48AAiuPgAIrkEACK5DAAiuRgAIrkcACK5IAAiuSQAIrkoACK5MAAiuTgAIrk8ACK5QAAiuUgAIrlMACK5sAAiubQAIrm4ACK5wAAiu6wAIru0ACK7vAAiu8QAIrvQACK71AAiu9gAIrvcACK74AAiu+gAIrvwACK79AAiu/gAIrwAACK8BAAivfAAIr34ACK+AAAivggAIr4UACK+GAAivhwAIr4gACK+JAAiviwAIr40ACK+OAAivjwAIr5EACK+SAAiwDQAIsA8ACLARAAiwEwAIsBYACLAXAAiwGAAIsBkACLAaAAiwHAAIsB4ACLAfAAiwIAAIsCIACLAjAAiwngAIsKAACLCiAAiwpAAIsKcACLCoAAiwqQAIsKoACLCrAAiwrQAIsK8ACLCwAAiwsQAIsLMACLC0AAixLwAIsTEACLEzAAixNQAIsTgACLE5AAixOgAIsTsACLE8AAixPgAIsUAACLFBAAixQgAIsUQACLFFAAixjgAIsbIACLHZAAix/QAIsgAACLICAAiyBAAIsgYACLIIAAiyCgAIsgsACLIOAAiyJwAIskQACLJGAAiySAAIskoACLJMAAiyTgAIslAACLJSAAiybwAIsnIACLJ1AAiyeAAIsnsACLJ+AAiygQAIsoQACLKGAAizAQAIswMACLMFAAizBwAIswoACLMLAAizDAAIsw0ACLMOAAizEAAIsxIACLMTAAizFAAIsxYACLMXAAizkgAIs5QACLOWAAizmAAIs5sACLOcAAiznQAIs54ACLOfAAizoQAIs6MACLOkAAizpQAIs6cACLOoAAi0IwAItCUACLQnAAi0KQAItCwACLQtAAi0LgAItC8ACLQwAAi0MgAItDQACLQ1AAi0NgAItDgACLQ5AAi0tAAItLYACLS4AAi0ugAItL0ACLS+AAi0vwAItMAACLTBAAi0wwAItMUACLTGAAi0xwAItMkACLTKAAi1RQAItUcACLVJAAi1SwAItU4ACLVPAAi1UAAItVEACLVSAAi1VAAItVYACLVXAAi1WAAItVoACLVbAAi11gAItdgACLXaAAi13AAItd8ACLXgAAi14QAIteIACLXjAAi15QAItecACLXoAAi16QAItesACLXsAAi2ZwAItmkACLZrAAi2bQAItnAACLZxAAi2cgAItnMACLZ0AAi2dgAItngACLZ5AAi2egAItnwACLZ9AAi3EAAItzMACLdTAAi3cwAIt3UACLd3AAi3eQAIt3sACLd+AAi3fwAIt4AACLeDAAi3hAAIt4YACLeHAAi3iQAIt4wACLeNAAi3jgAIt5EACLeSAAi3lwAIt7AACLe5AAi3uwAIt70ACLfGAAi3yQAIt8wACLfOAAi4FwAIuDsACLhiAAi4hgAIuIkACLiLAAi4jQAIuI8ACLiRAAi4kwAIuJQACLiXAAi4sAAIuNEACLjTAAi41QAIuNcACLjZAAi42wAIuN0ACLjfAAi44QAIuQIACLkFAAi5CAAIuQsACLkOAAi5EQAIuRQACLkXAAi5GgAIuRwACLmXAAi5mQAIuZsACLmdAAi5oAAIuaEACLmiAAi5owAIuaQACLmmAAi5qAAIuakACLmqAAi5rAAIua0ACLooAAi6KgAIuiwACLouAAi6MQAIujIACLozAAi6NAAIujUACLo3AAi6OQAIujoACLo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1AAjUdgAI1HgACNR5AAjU9AAI1PYACNT4AAjU+gAI1P0ACNT+AAjU/wAI1QAACNUBAAjVAwAI1QUACNUGAAjVBwAI1QkACNUKAAjVhQAI1YcACNWJAAjViwAI1Y4ACNWPAAjVkAAI1ZEACNWSAAjVlAAI1ZYACNWXAAjVmAAI1ZoACNWbAAjWFgAI1hgACNYaAAjWHAAI1h8ACNYgAAjWIQAI1iIACNYjAAjWJQAI1icACNYoAAjWKQAI1isACNYsAAjWpwAI1qkACNarAAjWrQAI1rAACNaxAAjWsgAI1rMACNa0AAjWtgAI1rgACNa5AAjWugAI1rwACNa9AAjXBgAI1yoACNdRAAjXdQAI13gACNd6AAjXfAAI134ACNeAAAjXggAI14MACNeGAAjXnwAI17wACNe+AAjXwAAI18IACNfEAAjXxgAI18gACNfKAAjX5wAI1+oACNftAAjX8AAI1/MACNf2AAjX+QAI1/wACNf+AAjYeQAI2HsACNh9AAjYfwAI2IIACNiDAAjYhAAI2IUACNiGAAjYiAAI2IoACNiLAAjYjAAI2I4ACNiPAAjZCgAI2QwACNkOAAjZEAAI2RMACNkUAAjZFQAI2RYACNkXAAjZGQAI2RsACNkcAAjZHQAI2R8ACNkgAAjZmwAI2Z0ACNmfAAjZoQAI2aQACNmlAAjZpgAI2acACNmoAAjZqgAI2awACNmtAAjZrgAI2bAACNmxAAjaLAAI2i4ACNoxAAjaMwAI2jYACNo3AAjaOAAI2jkACNo6AAjaPAAI2j4ACNo/AAjaQAAI2kIACNpDAAjavgAI2sAACNrCAAjaxAAI2scACNrIAAjayQAI2soACNrLAAjazQAI2s8ACNrQAAja0QAI2tMACNrUAAjbTwAI21EACNtTAAjbVQAI21gACNtZAAjbWgAI21sACNtcAAjbXgAI22AACNthAAjbYgAI22QACNtlAAjb4AAI2+IACNvkAAjb5gAI2+kACNvqAAjb6wAI2+wACNvtAAjb7wAI2/EACNvyAAjb8wAI2/UACNv2AAjciQAI3KwACNzMAAjc7AAI3O4ACNzwAAjc8gAI3PQACNz3AAjc+AAI3PkACNz8AAjc/QAI3P8ACN0AAAjdAgAI3QUACN0GAAjdBwAI3QoACN0LAAjdEAAI3SkACN0yAAjdNAAI3TYACN0/AAjdQgAI3UUACN1HAAjdkAAI3bQACN3bAAjd/wAI3gIACN4EAAjeBgAI3ggACN4KAAjeDAAI3g0ACN4QAAjeKQAI3koACN5MAAjeTgAI3lAACN5SAAjeVAAI3lYACN5YAAjeWgAI3nsACN5+AAjegQAI3oQACN6HAAjeigAI3o0ACN6QAAjekwAI3pUACN8QAAjfEgAI3xQACN8WAAjfGQAI3xoACN8bAAjfHAAI3x0ACN8fAAjfIQAI3yIACN8jAAjfJQAI3yYACN+hAAjfowAI36UACN+nAAjfqgAI36sACN+sAAjfrQAI364ACN+wAAjfsgAI37MACN+0AAjftgAI37cACOAyAAjgNAAI4DcACOA5AAjgPAAI4D0ACOA+AAjgPwAI4EAACOBCAAjgRAAI4EUACOBGAAjgSAAI4EkACOBiAAjgYwAI4GQACOBmAAjg4QAI4OMACODlAAjg5wAI4OoACODrAAjg7AAI4O0ACODuAAjg8AAI4PIACODzAAjg9AAI4PYACOD3AAjhcgAI4XQACOF2AAjheAAI4XsACOF8AAjhfQAI4X4ACOF/AAjhgQAI4YMACOGEAAjhhQAI4YcACOGIAAjiAwAI4gUACOIHAAjiCQAI4gwACOINAAjiDgAI4g8ACOIQAAjiEgAI4hQACOIVAAjiFgAI4hgACOIZAAjilAAI4pYACOKYAAjimgAI4p0ACOKeAAjinwAI4qAACOKhAAjiowAI4qUACOKmAAjipwAI4qkACOKqAAjjJQAI4ycACOMpAAjjKwAI4y4ACOMvAAjjMAAI4zEACOMyAAjjNAAI4zYACOM3AAjjOAAI4zoACOM7AAjjhAAI46gACOPPAAjj8wAI4/YACOP4AAjj+gAI4/wACOP+AAjkAAAI5AEACOQEAAjkHQAI5DoACOQ8AAjkPgAI5EAACORCAAjkRAAI5EYACORIAAjkZQAI5GgACORrAAjkbgAI5HEACOR0AAjkdwAI5HoACOR8AAjk9wAI5PkACOT7AAjk/QAI5QAACOUBAAjlAgAI5QMACOUEAAjlBgAI5QgACOUJAAjlCgAI5QwACOUNAAjliAAI5YoACOWMAAjljgAI5ZEACOWSAAjlkwAI5ZQACOWVAAjllwAI5ZkACOWaAAjlmwAI5Z0ACOWeAAjmGQAI5hsACOYdAAjmHwAI5iIACOY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NAAkATwAJAFEACQBSAAkAUwAJAFUACQBWAAkA0QAJANMACQDVAAkA1wAJANoACQDbAAkA3AAJAN0ACQDeAAkA4AAJAOIACQDjAAkA5AAJAOYACQDnAAkBYgAJAWQACQFmAAkBaAAJAWsACQFsAAkBbQAJAW4ACQFvAAkBcQAJAXMACQF0AAkBdQAJAXcACQF4AAkCCwAJAi4ACQJOAAkCbgAJAnAACQJyAAkCdAAJAnYACQJ5AAkCegAJAnsACQJ+AAkCfwAJAoEACQKCAAkChQAJAogACQKJAAkCigAJAo0ACQKOAAkCkwAJAqwACQK1AAkCtwAJArkACQLCAAkCxQAJAsgACQLKAAkDEwAJAzcACQNeAAkDggAJA4UACQOHAAkDiQAJA4sACQONAAkDjwAJA5AACQOTAAkDrAAJA80ACQPPAAkD0QAJA9MACQPVAAkD1wAJA9kACQPbAAkD3QAJA/4ACQQBAAkEBAAJBAcACQQKAAkEDQAJBBAACQQTAAkEFgAJBBgACQSTAAkElQAJBJcACQSZAAkEnAAJBJ0ACQSeAAkEnwAJBKAACQSiAAkEpAAJBKUACQSmAAkEqAAJBKkACQUkAAkFJgAJBSgACQUqAAkFLQAJBS4ACQUvAAkFMAAJBTEACQUzAAkFNQAJBTYACQU3AAkFOQAJBToACQW1AAkFtwAJBboACQW8AAkFvwAJBcAACQXBAAkFwgAJBcMACQXFAAkFxwAJBcgACQXJAAkFywAJBcwACQXlAAkF5gAJBecACQXpAAkGZAAJBmYACQZoAAkGagAJBm0ACQZuAAkGbwAJBnAACQZxAAkGcwAJBnUACQZ2AAkGdwAJBnkACQZ6AAkG9QAJBvcACQb5AAkG+wAJBv4ACQb/AAkHAAAJBwEACQcCAAkHBAAJBwYACQcHAAkHCAAJBwoACQcLAAkHhgAJB4gACQeKAAkHjAAJB48ACQeQAAkHkQAJB5IACQeTAAkHlQAJB5cACQeYAAkHmQAJB5sACQecAAkIFwAJCBkACQgbAAkIHQAJCCAACQghAAkIIgAJCCMACQgkAAkIJgAJCCgACQgpAAkIKgAJCCwACQgtAAkIqAAJCKoACQisAAkIrgAJCLEACQiyAAkIswAJCLQACQi1AAkItwAJCLkACQi6AAkIuwAJCL0ACQi+AAkJBwAJCSsACQl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CAAkahAAJGoYACRqHAAkaiAAJGooACRqLAAkbBgAJGwgACRsKAAkbDAAJGw8ACRsQAAkbEQAJGxIACRsTAAkbFQAJGxcACRsYAAkbGQAJGxsACRscAAkblwAJG5kACRubAAkbnQAJG6AACRuhAAkbogAJG6MACRukAAkbpgAJG6gACRupAAkbqgAJG6wACRutAAkcKAAJHCoACRwsAAkcLgAJHDEACRwyAAkcMwAJHDQACRw1AAkcNwAJHDkACRw6AAkcOwAJHD0ACRw+AAkc0QAJHPQACR0UAAkdNAAJHTYACR04AAkdOgAJHTwACR0/AAkdQAAJHUEACR1EAAkdRQAJHUcACR1IAAkdSgAJHU0ACR1OAAkdTwAJHVIACR1TAAkdXAAJHXUACR1+AAkdgAAJHYIACR2LAAkdjgAJHZEACR2TAAkd3AAJHgAACR4nAAkeSwAJHk4ACR5QAAkeUgAJHlQACR5WAAkeWAAJHlkACR5cAAkedQAJHpYACR6YAAkemgAJHpwACR6eAAkeoAAJHqIACR6kAAkepgAJHscACR7KAAkezQAJHtAACR7TAAke1gAJHtkACR7cAAke3wAJHuEACR9cAAkfXgAJH2AACR9iAAkfZQAJH2YACR9nAAkfaAAJH2kACR9rAAkfbQAJH24ACR9vAAkfcQAJH3IACR/tAAkf7wAJH/EACR/zAAkf9gAJH/cACR/4AAkf+QAJH/oACR/8AAkf/gAJH/8ACSAAAAkgAgAJIAMACSB+AAkggAAJIIMACSCFAAkgiAAJIIkACSCKAAkgiwAJIIwACSCOAAkgkAAJIJEACSCSAAkglAAJIJUACSCuAAkgrwAJILAACSCyAAkhLQAJIS8ACSExAAkhMwAJITYACSE3AAkhOAAJITkACSE6AAkhPAAJIT4ACSE/AAkhQAAJIUIACSFDAAkhvgAJIcAACSHCAAkhxAAJIccACSHIAAkhyQAJIcoACSHLAAkhzQAJIc8ACSHQAAkh0QAJIdMACSHUAAkiTwAJIlEACSJTAAkiVQAJIlgACSJZAAkiWgAJIlsACSJcAAkiXgAJImAACSJhAAkiYgAJImQACSJlAAki4AAJIuIACSLkAAki5gAJIukACSLqAAki6wAJIuwACSLtAAki7wAJIvEACSLyAAki8wAJIvUACSL2AAkjcQAJI3MACSN1AAkjdwAJI3oACSN7AAkjfAAJI30ACSN+AAkjgAAJI4IACSODAAkjhAAJI4YACSOHAAkj0AAJI/QACSQbAAkkPwAJJEIACSREAAkkRgAJJEgACSRKAAkkTAAJJE0ACSRQAAkkaQAJJIYACSSIAAkkigAJJIwACSSOAAkkkAAJJJIACSSUAAkksQAJJLQACSS3AAkkugAJJL0ACSTAAAkkwwAJJMYACSTIAAklQwAJJUUACSVHAAklSQAJJUwACSVNAAklTgAJJU8ACSVQAAklUgAJJVQACSVVAAklVgAJJVgACSVZAAkl1AAJJdYACSXYAAkl2gAJJd0ACSXeAAkl3wAJJeAACSXhAAkl4wAJJeUACSXmAAkl5wAJJekACSXqAAkmZQAJJmcACSZpAAkmawAJJm4ACSZvAAkmcAAJJnEACSZyAAkmdAAJJnYACSZ3AAkmeAAJJnoACSZ7AAkm9gAJJvgACSb6AAkm/AAJJv8ACScAAAknAQAJJwIACScDAAknBQAJJwcACScIAAknCQAJJwsACScMAAknhwAJJ4kACSeLAAknjQAJJ5AACSeRAAknkgAJJ5MACSeUAAknlgAJJ5gACSeZAAknmgAJJ5wACSedAAkoGAAJKBoACSgcAAkoHgAJKCEACSgiAAkoIwAJKCQACSglAAkoJwAJKCkACSgqAAkoKwAJKC0ACSguAAkoqQAJKKsACSitAAkorwAJKLIACSizAAkotAAJKLUACSi2AAkouAAJKLoACSi7AAkovAAJKL4ACSi/AAkpUgAJKXUACSmVAAkptQAJKbcACSm5AAkpuwAJKb0ACSnAAAkpwQAJKcIACSnFAAkpxgAJKcgACSnJAAkpywAJKc4ACSnPAAkp0AAJKdMACSnUAAkp2QAJKfIACSn7AAkp/QAJKf8ACSoIAAkqCwAJKg4ACSoQAAkqWQAJKn0ACSqkAAkqyAAJKssACSrNAAkqzwAJKtEACSrTAAkq1QAJKtYACSrZAAkq8gAJKxMACSsVAAkrFwAJKxkACSsbAAkrHQAJKx8ACSshAAkrIwAJK0QACStHAAkrSgAJK00ACStQAAkrUwAJK1YACStZAAkrXAAJK14ACSvZAAkr2wAJK90ACSvfAAkr4gAJK+MACSvkAAkr5QAJK+YACSvoAAkr6gAJK+sACSvsAAkr7gAJK+8ACSxqAAksbAAJLG4ACSxwAAkscwAJLHQACSx1AAksdgAJLHcACSx5AAksewAJLHwACSx9AAksfwAJLIAACSz7AAks/QAJLQAACS0CAAktBQAJLQYACS0HAAktCAAJLQkACS0LAAktDQAJLQ4ACS0PAAktEQAJLRIACS0rAAktLAAJLS0ACS0vAAktqgAJLawACS2uAAktsAAJLbMACS20AAkttQAJLbYACS23AAktuQAJLbsACS28AAktvQAJLb8ACS3AAAkuOwAJLj0ACS4/AAkuQQAJLkQACS5FAAkuRgAJLkcACS5IAAkuSgAJLkwACS5NAAkuTgAJLlAACS5RAAkuzAAJLs4ACS7QAAku0gAJLtUACS7WAAku1wAJLtgACS7ZAAku2wAJLt0ACS7eAAku3wAJLuEACS7iAAkvXQAJL18ACS9hAAkvYwAJL2YACS9nAAkvaAAJL2kACS9qAAkvbAAJL24ACS9vAAkvcAAJL3IACS9zAAkv7gAJL/AACS/yAAkv9AAJL/cACS/4AAkv+QAJL/oACS/7AAkv/QAJL/8ACTAAAAkwAQAJMAMACTAEAAkwTQAJMHEACTCYAAkwvAAJML8ACTDBAAkwwwAJMMUACTDHAAkwyQAJMMoACTDNAAkw5gAJMQMACTEFAAkxBwAJMQkACTELAAkxDQAJMQ8ACTERAAkxLgAJMTEACTE0AAkxNwAJMToACTE9AAkxQAAJMUMACTFFAAkxwAAJMcIACTHFAAkxxwAJMcoACTHLAAkxzAAJMc0ACTHOAAkx0AAJMdIACTHTAAkx1AAJMdYACTHXAAkyUgAJMlQACTJWAAkyWAAJMlsACTJcAAkyXQAJMl4ACTJfAAkyYQAJMmMACTJkAAkyZQAJMmcACTJoAAky4wAJMuUACTLnAAky6QAJMuwACTLtAAky7gAJMu8ACTLwAAky8gAJMvQACTL1AAky9gAJMvgACTL5AAkzdAAJM3YACTN5AAkzewAJM34ACTN/AAkzgAAJM4EACTOCAAkzhAAJM4YACTOHAAkziAAJM4oACTOLAAk0BgAJNAgACTQKAAk0DAAJNA8ACTQQAAk0EQAJNBIACTQTAAk0FQAJNBcACTQYAAk0GQAJNBsACTQcAAk0lwAJNJkACTSbAAk0nQAJNKAACTShAAk0ogAJNKMACTSkAAk0pgAJNKgACTS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NAAlQEAAJUBMACVAWAAlQGQAJUBwACVAfAAlQIQAJUJwACVCeAAlQoQAJUKMACVCmAAlQpwAJUKgACVCpAAlQqgAJUKwACVCuAAlQrwAJULAACVCyAAlQswAJUMQACVDFAAlQxwAJUUIACVFEAAlRRgAJUUgACVFLAAlRTAAJUU0ACVFOAAlRTwAJUVEACVFTAAlRVAAJUVUACVFXAAlRWAAJUdMACVHVAAlR2AAJUdoACVHdAAlR3gAJUd8ACVHgAAlR4QAJUeMACVHlAAlR5gAJUecACVHpAAlR6gAJUfsACVH8AAlR/gAJUnkACVJ7AAlSfQAJUn8ACVKCAAlSgwAJUoQACVKFAAlShgAJUogACVKKAAlSiwAJUowACVKOAAlSjwAJUwoACVMMAAlTDwAJUxEACVMUAAlTFQAJUxYACVMXAAlTGAAJUxoACVMcAAlTHQAJUx4ACVMgAAlTIQAJUzIACVMzAAlTNQAJU7AACVOyAAlTtAAJU7YACVO5AAlTugAJU7sACVO8AAlTvQAJU78ACVPBAAlTwgAJU8MACVPFAAlTxgAJVEEACVRDAAlURgAJVEgACVRLAAlUTAAJVE0ACVROAAlUTwAJVFEACVRTAAlUVAAJVFUACVRXAAlUWAAJVHEACVRyAAlUcwAJVHUACVTwAAlU8gAJVPQACVT2AAlU+QAJVPoACVT7AAlU/AAJVP0ACVT/AAlVAQAJVQIACVUDAAlVBQAJVQYACVWBAAlVgwAJVYYACVWIAAlViwAJVYwACVWNAAlVjgAJVY8ACVWRAAlVkwAJVZQACVWVAAlVlwAJVZgACVXBAAlV2gAJVe8ACVXyAAlV9QAJVfgACVX7AAlV/gAJVhMACVYWAAlWGQAJVhwACVYfAAlWIgAJViQACVY8AAlWRAAJVlsACVbuAAlXEQAJVzEACVdRAAlXUwAJV1UACVdXAAlXWQAJV1wACVddAAlXXgAJV2EACVdiAAlXZAAJV2UACVdnAAlXagAJV2sACVdsAAlXbwAJV3AACVd5AAlXkgAJV5sACVedAAlXnwAJV6gACVerAAlXrgAJV7AACVf5AAlYHQAJWEQACVhoAAlYawAJWG0ACVhvAAlYcQAJWHMACVh1AAlYdgAJWHkACViSAAlYswAJWLUACVi3AAlYuQAJWLsACVi9AAlYvwAJWMEACVjDAAlY5AAJWOcACVjqAAlY7QAJWPAACVjzAAlY9gAJWPkACVj8AAlY/gAJWXkACVl7AAlZfQAJWX8ACVmCAAlZgwAJWYQACVmFAAlZhgAJWYgACVmKAAlZiwAJWYwACVmOAAlZjwAJWgoACVoMAAlaDgAJWhAACVoTAAlaFAAJWhUACVoWAAlaFwAJWhkACVobAAlaHAAJWh0ACVofAAlaIAAJWpsACVqdAAlaoAAJWqIACVqlAAlapgAJWqcACVqoAAlaqQAJWqsACVqtAAlargAJWq8ACVqxAAlasgAJWssACVrMAAlazQAJWs8ACVtKAAlbTAAJW04ACVtQAAlbUwAJW1QACVtVAAlbVgAJW1cACVtZAAlbWwAJW1wACVtdAAlbXwAJW2AACVvbAAlb3QAJW98ACVvhAAlb5AAJW+UACVvmAAlb5wAJW+gACVvqAAlb7AAJW+0ACVvuAAlb8AAJW/EACVxsAAlcbgAJXHAACVxyAAlcdQAJXHYACVx3AAlceAAJXHkACVx7AAlcfQAJXH4ACVx/AAlcgQAJXIIACVz9AAlc/wAJXQEACV0DAAldBgAJXQcACV0IAAldCQAJXQoACV0MAAldDgAJXQ8ACV0QAAldEgAJXRMACV2OAAldkAAJXZIACV2UAAldlwAJXZgACV2ZAAldmgAJXZsACV2dAAldnwAJXaAACV2hAAldowAJXaQACV3tAAleEQAJXjgACV5cAAleXwAJXmEACV5jAAleZQAJXmcACV5pAAleagAJXm0ACV6GAAleowAJXqUACV6nAAleqQAJXqsACV6tAAlerwAJXrEACV7OAAle0QAJXtQACV7XAAle2gAJXt0ACV7gAAle4wAJXuUACV9gAAlfYgAJX2QACV9mAAlfaQAJX2oACV9rAAlfbAAJX20ACV9vAAlfcQAJX3IACV9zAAlfdQAJX3YACV/xAAlf8wAJX/UACV/3AAlf+gAJX/sACV/8AAlf/QAJX/4ACWAAAAlgAgAJYAMACWAEAAlgBgAJYAcACWCCAAlghAAJYIYACWCIAAlgiwAJYIwACWCNAAlgjgAJYI8ACWCRAAlgkwAJYJQACWCVAAlglwAJYJgACWETAAlhFQAJYRgACWEaAAlhHQAJYR4ACWEfAAlhIAAJYSEACWEjAAlhJQAJYSYACWEnAAlhKQAJYSoACWGlAAlhpwAJYakACWGrAAlhrgAJYa8ACWGwAAlhsQAJYbIACWG0AAlhtgAJYbcACWG4AAlhugAJYbsACWI2AAliOAAJYjoACWI8AAliPwAJYkAACWJBAAliQgAJYkMACWJFAAliRwAJYkgACWJJAAliSwAJYkwACWLHAAliyQAJYssACWLNAAli0AAJYtEACWLSAAli0wAJYtQACWLWAAli2AAJYtkACWLaAAli3AAJYt0ACWNwAAljkwAJY7MACWPTAAlj1QAJY9cACWPZAAlj2wAJY94ACWPfAAlj4AAJY+MACWPkAAlj5gAJY+cACWPpAAlj7AAJY+0ACWPuAAlj8QAJY/IACWP7AAlkFAAJZB0ACWQfAAlkIQAJZCoACWQtAAlkMAAJZDIACWR7AAlknwAJZMYACWTqAAlk7QAJZO8ACWTxAAlk8wAJZPUACWT3AAlk+AAJZPsACWUUAAllNQAJZTcACWU5AAllOwAJZT0ACWU/AAllQQAJZUMACWVFAAllZgAJZWkACWVsAAllbwAJZXIACWV1AAlleAAJZXsACWV+AAllgAAJZfsACWX9AAll/wAJZgEACWYEAAlmBQAJZgYACWYHAAlmCAAJZgoACWYMAAlmDQAJZg4ACWYQAAlmEQAJZowACWaOAAlmkAAJZpIACWaVAAlmlgAJZpcACWaYAAlmmQAJZpsACWadAAlmngAJZp8ACWahAAlmogAJZx0ACWcfAAlnIgAJZyQACWcnAAlnKAAJZykACWcqAAlnKwAJZy0ACWcvAAlnMAAJZzEACWczAAlnNAAJZ00ACWdOAAlnTwAJZ1EACWfMAAlnzgAJZ9AACWfSAAln1QAJZ9YACWfXAAln2AAJZ9kACWfbAAln3QAJZ94ACWffAAln4QAJZ+IACWhdAAloXwAJaGEACWhjAAloZgAJaGcACWhoAAloaQAJaGoACWhsAAlobgAJaG8ACWhwAAlocgAJaHMACWjuAAlo8AAJaPIACWj0AAlo9wAJaPgACWj5AAlo+gAJaPsACWj9AAlo/wAJaQAACWkBAAlpAwAJaQQACWl/AAlpgQAJaYMACWmFAAlpiAAJaYkACWmKAAlpiwAJaYwACWmOAAlpkAAJaZEACWmSAAlplAAJaZUACWoQAAlqEgAJahQACWoWAAlqGQAJahoACWobAAlqHAAJah0ACWofAAlqIQAJaiIACWojAAlqJQAJaiYACWpvAAlqkwAJaroACWreAAlq4QAJauMACWrlAAlq5wAJaukACWrrAAlq7AAJau8ACWsIAAlrJQAJaycACWspAAlrKwAJay0ACWsvAAlrMQAJazMACWtQAAlrUwAJa1YACWtZAAlrXAAJa18ACWtiAAlrZQAJa2cACWviAAlr5AAJa+cACWvpAAlr7AAJa+0ACWvuAAlr7wAJa/AACWvyAAlr9AAJa/UACWv2AAlr+AAJa/kACWx0AAlsdgAJbHgACWx6AAlsfQAJbH4ACWx/AAlsgAAJbIEACWyDAAlshQAJbIYACWyHAAlsiQAJbIoACW0FAAltBwAJbQkACW0LAAltDgAJbQ8ACW0QAAltEQAJbRIACW0UAAltFgAJbRcACW0YAAltGgAJbRsACW2WAAltmAAJbZsACW2dAAltoAAJbaEACW2iAAltowAJbaQACW2mAAltqAAJbakACW2qAAltrAAJba0ACW4oAAluKgAJbiwACW4uAAluMQAJbjIACW4zAAluNAAJbjUACW43AAluOQAJbjoACW47AAluPQAJbj4ACW65AAluuwAJbr0ACW6/AAluwgAJbsMACW7EAAluxQAJbsYACW7IAAluygAJbssACW7MAAluzgAJbs8ACW9KAAlvTAAJb04ACW9QAAlvUwAJb1QACW9VAAlvVgAJb1cACW9ZAAlvWwAJb1wACW9dAAlvXwAJb2AACW/zAAlwFgAJcDYACXBWAAlwWAAJcFoACXBcAAlwXgAJcGEACXBiAAlwYwAJcGYACXBnAAlwaQAJcGoACXBtAAlwcAAJcHEACXByAAlwdQAJcHYACXB7AAlwlAAJcJ0ACXCfAAlwoQAJcKoACXCtAAlwsAAJcLIACXD7AAlxHwAJcUYACXFqAAlxbQAJcW8ACXFxAAlxcwAJcXUACXF3AAlxeAAJcXsACXGUAAlxtQAJcbcACXG5AAlxuwAJcb0ACXG/AAlxwQAJccMACXHFAAlx5gAJcekACXHsAAlx7wAJcfIACXH1AAlx+AAJcfsACXH+AAlyAAAJcnsACXJ9AAlyfwAJcoEACXKEAAlyhQAJcoYACXKHAAlyiAAJcooACXKMAAlyjQAJco4ACXKQAAlykQAJcwwACXMOAAlzEAAJcxIACXMVAAlzFgAJcxcACXMYAAlzGQAJcxsACXMdAAlzHgAJcx8ACXMhAAlzIgAJc50ACXOfAAlzogAJc6QACXOnAAlzqAAJc6kACXOqAAlzqwAJc60ACXOvAAlzsAAJc7EACXOzAAlztAAJc80ACXPOAAlzzwAJc9EACXRMAAl0TgAJdFAACXRSAAl0VQAJdFYACXRXAAl0WAAJdFkACXRbAAl0XQAJdF4ACXRfAAl0YQAJdGIACXTdAAl03wAJdOEACXTjAAl05gAJdOcACXToAAl06QAJdOoACXTsAAl07gAJdO8ACXTwAAl08gAJdPMACXVuAAl1cAAJdXIACXV0AAl1dwAJdXgACXV5AAl1egAJdXsACXV9AAl1fwAJdYAACXWBAAl1gwAJdYQACXX/AAl2AQAJdgMACXYFAAl2CAAJdgkACXYKAAl2CwAJdgwACXYOAAl2EAAJdhEACXYSAAl2FAAJdhUACXaQAAl2kgAJdpQACXaWAAl2mQAJdpoACXabAAl2nAAJdp0ACXafAAl2oQAJdqIACXajAAl2pQAJdqYACXbvAAl3EwAJdzoACXdeAAl3YQAJd2MACXdlAAl3ZwAJd2kACXdrAAl3bAAJd28ACXeIAAl3pQAJd6cACXepAAl3qwAJd60ACXevAAl3sQAJd7MACXfQAAl30wAJd9YACXfZAAl33AAJd98ACXfiAAl35QAJd+cACXhiAAl4ZAAJeGYACXhoAAl4awAJeGwACXhtAAl4bgAJeG8ACXhxAAl4cwAJeHQACXh1AAl4dwAJeHgACXjzAAl49QAJePcACXj5AAl4/AAJeP0ACXj+AAl4/wAJeQAACXkCAAl5BAAJeQUACXkGAAl5CAAJeQkACXmEAAl5hgAJeYgACXmKAAl5jQAJeY4ACXmPAAl5kAAJeZEACXmTAAl5lQAJeZYACXmXAAl5mQAJeZoACXoVAAl6FwAJehoACXocAAl6HwAJeiAACXohAAl6IgAJeiMACXolAAl6JwAJeigACXopAAl6KwAJeiwACXqnAAl6qQAJeqsACXqtAAl6sAAJerEACXqyAAl6swAJerQACXq2AAl6uAAJerkACXq6AAl6vAAJer0ACXs4AAl7OgAJezwACXs+AAl7QQAJe0IACXtDAAl7RAAJe0UACXtHAAl7SQAJe0oACXtLAAl7TQAJe04ACXvJAAl7ywAJe84ACXvQAAl70wAJe9QACXvVAAl71gAJe9cACXvZAAl72wAJe9wACXvdAAl73wAJe+AACXxzAAl8lgAJfLYACXzWAAl82AAJfNoACXzcAAl83gAJfOEACXziAAl84wAJfOYACXznAAl86QAJfOoACXzsAAl87wAJfPAACXzxAAl89AAJfPUACXz6AAl9EwAJfRwACX0eAAl9IAAJfSkACX0sAAl9LwAJfTEACX16AAl9ngAJfcUACX3pAAl97AAJfe4ACX3wAAl98gAJffQACX32AAl99wAJffoACX4TAAl+NAAJfjYACX44AAl+OgAJfjwACX4+AAl+QAAJfkIACX5EAAl+ZQAJfmgACX5rAAl+bgAJfnEACX50AAl+dwAJfnoACX59AAl+fwAJfvoACX78AAl+/gAJfwAACX8DAAl/BAAJfwUACX8GAAl/BwAJfwkACX8LAAl/DAAJfw0ACX8PAAl/EAAJf4sACX+NAAl/jwAJf5EACX+UAAl/lQAJf5YACX+XAAl/mAAJf5oACX+cAAl/nQAJf54ACX+gAAl/oQAJgBwACYAeAAmAIQAJgCMACYAmAAmAJwAJgCgACYApAAmAKgAJgCwACYAuAAmALwAJgDAACYAyAAmAMwAJgEwACYBNAAmATgAJgFAACYDLAAmAzQAJgM8ACYDRAAmA1AAJgNUACYDWAAmA1wAJgNgACYDaAAmA3AAJgN0ACYDeAAmA4AAJgOEACYFcAAmBXgAJgWAACYFiAAmBZQAJgWYACYFnAAmBaAAJgWkACYFrAAmBbQAJgW4ACYFvAAmBcQAJgXIACYHtAAmB7wAJgfEACYHzAAmB9gAJgfcACYH4AAmB+QAJgfoACYH8AAmB/gAJgf8ACYIAAAmCAgAJggMACYJ+AAmCgAAJgoIACYKEAAmChwAJgogACYKJAAmCigAJgosACYKNAAmCjwAJgpAACYKRAAmCkwAJgpQACYMPAAmDEQAJgxMACYMVAAmDGAAJgxkACYMaAAmDGwAJgxwACYMeAAmDIAAJgyEACYMiAAmDJAAJgyUACYNuAAmDkgAJg7kACYPdAAmD4AAJg+IACYPkAAmD5gAJg+gACYPqAAmD6wAJg+4ACYQHAAmEJAAJhCYACYQoAAmEKgAJhCwACYQuAAmEMAAJhDIACYRPAAmEUgAJhFUACYRYAAmEWwAJhF4ACYRhAAmEZAAJhGYACYThAAmE4wAJhOUACYTnAAmE6gAJhOsACYTsAAmE7QAJhO4ACYTwAAmE8gAJhPMACYT0AAmE9gAJhPcACYVyAAmFdAAJhXYACYV4AAmFewAJhXwACYV9AAmFfgAJhX8ACYWBAAmFgwAJhYQACYWFAAmFhwAJhYgACYYDAAmGBQAJhgcACYYJAAmGDAAJhg0ACYYOAAmGDwAJhhAACYYSAAmGFAAJhhUACYYWAAmGGAAJhhkACYaUAAmGlgAJhpkACYabAAmGngAJhp8ACYagAAmGoQAJhqIACYakAAmGpgAJhqcACYaoAAmGqgAJhqsACYcmAAmHKAAJhyoACYcsAAmHLwAJhzAACYcxAAmHMgAJhzMACYc1AAmHNwAJhzgACYc5AAmHOwAJhzwACYe3AAmHuQAJh7sACYe9AAmHwAAJh8EACYfCAAmHwwAJh8QACYfGAAmHyAAJh8kACYfKAAmHzAAJh80ACYhIAAmISgAJiEwACYhOAAmIUQAJiFIACYhTAAmIVAAJiFUACYhXAAmIWQAJiFoACYhbAAmIXQAJiF4ACYjxAAmJFAAJiTQACYlUAAmJVgAJiVgACYlaAAmJXAAJiV8ACYlgAAmJYQAJiWQACYllAAmJZwAJiWgACYlqAAmJbQAJiW4ACYlvAAmJcgAJiXMACYl4AAmJkQAJiZoACYmcAAmJngAJiacACYmqAAmJrQAJia8ACYn4AAmKHAAJikMACYpnAAmKagAJimwACYpuAAmKcAAJinIACYp0AAmKdQAJingACYqRAAmKsgAJirQACYq2AAmKuAAJiroACYq8AAmKvgAJisAACYrCAAmK4wAJiuYACYrpAAmK7AAJiu8ACYryAAmK9QAJivgACYr7AAmK/QAJi3gACYt6AAmLfAAJi34ACYuBAAmLggAJi4MACYuEAAmLhQAJi4cACYuJAAmLigAJi4sACYuNAAmLjgAJjAkACYwLAAmMDQAJjA8ACYwSAAmMEwAJjBQACYwVAAmMFgAJjBgACYwaAAmMGwAJjBwACYweAAmMHwAJjJoACYycAAmMnwAJjKEACYykAAmMpQAJjKYACYynAAmMqAAJjKoACYysAAmMrQAJjK4ACYywAAmMsQAJjMoACYzLAAmMzAAJjM4ACY1JAAmNSwAJjU0ACY1PAAmNUgAJjVMACY1UAAmNVQAJjVYACY1YAAmNWgAJjVsACY1cAAmNXgAJjV8ACY3aAAmN3AAJjd4ACY3gAAmN4wAJjeQACY3lAAmN5gAJjecACY3pAAmN6wAJjewACY3tAAmN7wAJjfAACY5rAAmObQAJjm8ACY5xAAmOdAAJjnUACY52AAmOdwAJjngACY56AAmOfAAJjn0ACY5+AAmOgAAJjoEACY78AAmO/gAJjwAACY8CAAmPBQAJjwYACY8HAAmPCAAJjwkACY8LAAmPDQAJjw4ACY8PAAmPEQAJjxIACY+NAAmPjwAJj5EACY+TAAmPlgAJj5cACY+YAAmPmQAJj5oACY+cAAmPngAJj58ACY+gAAmPogAJj6MACY/sAAmQEAAJkDcACZBbAAmQXgAJkGAACZBiAAmQZAAJkGYACZBoAAmQaQAJkGwACZCFAAmQogAJkKQACZCmAAmQqAAJkKoACZCsAAmQrgAJkLAACZDNAAmQ0AAJkNMACZDWAAmQ2QAJkNwACZDfAAmQ4gAJkOQACZFfAAmRYQAJkWMACZFlAAmRaAAJkWkACZFqAAmRawAJkWwACZFuAAmRcAAJkXEACZFyAAmRdAAJkXUACZHwAAmR8gAJkfQACZH2AAmR+QAJkfoACZH7AAmR/AAJkf0ACZH/AAmSAQAJkgIACZIDAAmSBQAJkgYACZKBAAmSgwAJkoUACZKHAAmSigAJkosACZKMAAmSjQAJko4ACZKQAAmSkgAJkpMACZKUAAmSlgAJkpcACZMSAAmTFAAJkxYACZMYAAmTGwAJkxwACZMdAAmTHgAJkx8ACZMhAAmTIwAJkyQACZMlAAmTJwAJkygACZOjAAmTpQAJk6cACZOpAAmTrAAJk60ACZOuAAmTrwAJk7AACZOyAAmTtAAJk7UACZO2AAmTuAAJk7kACZQ0AAmUNgAJlDgACZQ6AAmUPQAJlD4ACZQ/AAmUQAAJlEEACZRDAAmURQAJlEYACZRHAAmUSQAJlEoACZTFAAmUxwAJlMkACZTLAAmUzgAJlM8ACZTQAAmU0QAJlNIACZTUAAmU1gAJlNcACZTYAAmU2gAJlNsACZTsAAmU7QAJlO8ACZVqAAmVbAAJlW4ACZVwAAmVcwAJlXQACZV1AAmVdgAJlXcACZV5AAmVewAJlXwACZV9AAmVfwAJlYAACZX7AAmV/QAJlf8ACZYBAAmWBAAJlgUACZYGAAmWBwAJlggACZYKAAmWDAAJlg0ACZYOAAmWEAAJlhEACZaMAAmWjgAJlpEACZaTAAmWlgAJlpcACZaYAAmWmQAJlpoACZacAAmWngAJlp8ACZagAAmWogAJlqMACZc2AAmXWQAJl3kACZeZAAmXmwAJl50ACZefAAmXoQAJl6QACZelAAmXpgAJl6kACZeqAAmXrAAJl60ACZevAAmXsgAJl7MACZe0AAmXtwAJl7gACZe9AAmX1gAJl98ACZfhAAmX4wAJl+wACZfvAAmX8gAJl/QACZg9AAmYYQAJmIgACZisAAmYrwAJmLEACZizAAmYtQAJmLcACZi5AAmYugAJmL0ACZjWAAmY9wAJmPkACZj7AAmY/QAJmP8ACZkBAAmZAwAJmQUACZkHAAmZKAAJmSsACZkuAAmZMQAJmTQACZk3AAmZOgAJmT0ACZlAAAmZQgAJmb0ACZm/AAmZwQAJmcMACZnGAAmZxwAJmcgACZnJAAmZygAJmcwACZnOAAmZzwAJmdAACZnSAAmZ0wAJmk4ACZpQAAmaUgAJmlQACZpXAAmaWAAJmlkACZpaAAmaWwAJml0ACZpfAAmaYAAJmmEACZpjAAmaZAAJmt8ACZrhAAma5AAJmuYACZrpAAma6gAJmusACZrsAAma7QAJmu8ACZrxAAma8gAJmvMACZr1AAma9gAJmw8ACZsQAAmbEQAJmxMACZuOAAmbkAAJm5IACZuUAAmblwAJm5gACZuZAAmbmgAJm5sACZudAAmbnwAJm6AACZuhAAmbowAJm6QACZwfAAmcIQAJnCMACZwlAAmcKAAJnCkACZwqAAmcKwAJnCwACZwuAAmcMAAJnDEACZwyAAmcNAAJnDUACZywAAmcsgAJnLQACZy2AAmcuQAJnLoACZy7AAmcvAAJnL0ACZy/AAmcwQAJnMIACZzDAAmcxQAJnMYACZ1BAAmdQwAJnUUACZ1HAAmdSgAJnUsACZ1MAAmdTQAJnU4ACZ1QAAmdUgAJnVMACZ1UAAmdVgAJnVcACZ3SAAmd1AAJndYACZ3YAAmd2wAJndwACZ3dAAmd3gAJnd8ACZ3hAAmd4wAJneQACZ3lAAmd5wAJnegACZ4xAAmeVQAJnnwACZ6gAAmeowAJnqUACZ6nAAmeqQAJnqsACZ6tAAmergAJnrEACZ7KAAme5wAJnukACZ7rAAme7QAJnu8ACZ7xAAme8wAJnvUACZ8SAAmfFQAJnxgACZ8bAAmfHgAJnyEACZ8kAAmfJwAJnykACZ+kAAmfpgAJn6gACZ+qAAmfrQAJn64ACZ+vAAmfsAAJn7EACZ+zAAmftQAJn7YACZ+3AAmfuQAJn7oACaA1AAmgNwAJoDkACaA7AAmgPgAJoD8ACaBAAAmgQQAJoEIACaBEAAmgRgAJoEcACaBIAAmgSgAJoEsACaDGAAmgyAAJoMoACaDMAAmgzwAJoNAACaDRAAmg0gAJoNMACaDVAAmg1wAJoNgACaDZAAmg2wAJoNwACaFXAAmhWQAJoVwACaFeAAmhYQAJoWIACaFjAAmhZAAJoWUACaFnAAmhaQAJoWoACaFrAAmhbQAJoW4ACaHpAAmh6wAJoe0ACaHvAAmh8gAJofMACaH0AAmh9QAJofYACaH4AAmh+gAJofsACaH8AAmh/gAJof8ACaJ6AAmifAAJon4ACaKAAAmigwAJooQACaKFAAmihgAJoocACaKJAAmiiwAJoowACaKNAAmijwAJopAACaMLAAmjDQAJow8ACaMRAAmjFAAJoxUACaMWAAmjFwAJoxgACaMaAAmjHAAJox0ACaMeAAmjIAAJoyEACaO0AAmj1wAJo/cACaQXAAmkGQAJpBsACaQdAAmkHwAJpCIACaQjAAmkJAAJpCcACaQoAAmkKgAJpCsACaQuAAmkMQAJpDIACaQzAAmkNgAJpDcACaQ8AAmkVQAJpF4ACaRgAAmkYgAJpGsACaRuAAmkcQAJpHMACaS8AAmk4AAJpQcACaUrAAmlLgAJpTAACaUyAAmlNAAJpTYACaU4AAmlOQAJpTwACaVVAAmldgAJpXgACaV6AAmlfAAJpX4ACaWAAAmlggAJpYQACaWGAAmlpwAJpaoACaWtAAmlsAAJpbMACaW2AAmluQAJpbwACaW/AAmlwQAJpjwACaY+AAmmQAAJpkIACaZFAAmmRgAJpkcACaZIAAmmSQAJpksACaZNAAmmTgAJpk8ACaZRAAmmUgAJps0ACabPAAmm0QAJptMACabWAAmm1wAJptgACabZAAmm2gAJptwACabeAAmm3wAJpuAACabiAAmm4wAJp14ACadgAAmnYwAJp2UACadoAAmnaQAJp2oACadrAAmnbAAJp24ACadwAAmncQAJp3IACad0AAmndQAJp44ACaePAAmnkAAJp5IACagNAAmoDwAJqBEACagTAAmoFgAJqBcACagYAAmoGQAJqBoACagcAAmoHgAJqB8ACaggAAmoIgAJqCMACaieAAmooAAJqKIACaikAAmopwAJqKgACaipAAmoqgAJqKsACaitAAmorwAJqLAACaixAAmoswAJqLQACakvAAmpMQAJqTMACak1AAmpOAAJqTkACak6AAmpOwAJqTwACak+AAmpQAAJqUEACalCAAmpRAAJqUUACanAAAmpwgAJqcQACanGAAmpyQAJqcoACanLAAmpzAAJqc0ACanPAAmp0QAJqdIACanTAAmp1QAJqdYACapRAAmqUwAJqlUACapXAAmqWgAJqlsACapcAAmqXQAJql4ACapgAAmqYgAJqmMACapkAAmqZgAJqmcACaqwAAmq1AAJqvsACasfAAmrIgAJqyQACasmAAmrKAAJqyoACassAAmrLQAJqzAACatJAAmrZgAJq2gACatqAAmrbAAJq24ACatwAAmrcgAJq3QACauRAAmrlAAJq5cACauaAAmrnQAJq6AACaujAAmrpgAJq6gACawjAAmsJQAJrCcACawpAAmsLAAJrC0ACawuAAmsLwAJrDAACawyAAmsNAAJrDUACaw2AAmsOAAJrDkACay0AAmstgAJrLkACay7AAmsvgAJrL8ACazAAAmswQAJrMIACazEAAmsxgAJrMcACazIAAmsygAJrMsACa1GAAmtSAAJrUoACa1MAAmtTwAJrVAACa1RAAmtUgAJrVMACa1VAAmtVwAJrVgACa1ZAAmtWwAJrVwACa3XAAmt2QAJrdwACa3eAAmt4QAJreIACa3jAAmt5AAJreUACa3nAAmt6QAJreoACa3rAAmt7QAJre4ACa5xAAmulQAJrrkACa7cAAmvAwAJryMACa9KAAmvcQAJr5EACa+1AAmv2QAJr9sACa/eAAmv4AAJr+IACa/kAAmv5wAJr+oACa/sAAmv7gAJr/EACa/zAAmv9QAJr/gACa/7AAmv/AAJsAEACbAaAAmwHwAJsCEACbAmAAmwKQAJsCsACbB0AAmwmAAJsL8ACbDjAAmw5gAJsOgACbDqAAmw7AAJsO4ACbDwAAmw8QAJsPQACbENAAmxMgAJsTQACbE2AAmxOAAJsToACbE8AAmxPgAJsUAACbFCAAmxRAAJsWkACbFsAAmxbwAJsXIACbF1AAmxeAAJsXsACbF+AAmxgQAJsYQACbGGAAmyAQAJsgMACbIGAAmyCAAJsgsACbIMAAmyDQAJsg4ACbIPAAmyEQAJshMACbIUAAmyFQAJshcACbIYAAmyKQAJsioACbIsAAmypwAJsqkACbKrAAmyrQAJsrAACbKxAAmysgAJsrMACbK0AAmytgAJsrgACbK5AAmyugAJsrwACbK9AAmzOAAJszoACbM9AAmzPwAJs0IACbNDAAmzRAAJs0UACbNGAAmzSAAJs0oACbNLAAmzTAAJs04ACbNPAAmzYAAJs2EACbNjAAmz3gAJs+AACbPiAAmz5AAJs+cACbPoAAmz6QAJs+oACbPrAAmz7QAJs+8ACbPwAAmz8QAJs/MACbP0AAm0bwAJtHEACbR0AAm0dgAJtHkACbR6AAm0ewAJtHwACbR9AAm0fwAJtIEACbSCAAm0gwAJtIUACbSGAAm0lwAJtJgACbSaAAm1FQAJtRcACbUZAAm1GwAJtR4ACbUfAAm1IAAJtSEACbUiAAm1JAAJtSYACbUnAAm1KAAJtSoACbUrAAm1pgAJtagACbWrAAm1rQAJtbAACbWxAAm1sgAJtbMACbW0AAm1tgAJtbgACbW5AAm1ugAJtbwACbW9AAm11gAJtdcACbXYAAm12gAJtlUACbZXAAm2WQAJtlsACbZeAAm2XwAJtmAACbZhAAm2YgAJtmQACbZmAAm2ZwAJtmgACbZqAAm2awAJtuYACbboAAm26wAJtu0ACbbwAAm28QAJtvIACbbzAAm29AAJtvYACbb4AAm2+QAJtvoACbb8AAm2/QAJtxoACbczAAm3VAAJt1cACbdaAAm3XQAJt2AACbdjAAm3ZgAJt2kACbdsAAm3jQAJt5AACbeTAAm3lgAJt5kACbecAAm3nwAJt6IACbelAAm3pwAJt7oACbfRAAm36gAJt/wACbgLAAm4IwAJuLYACbjZAAm4+QAJuRkACbkbAAm5HQAJuR8ACbkhAAm5JAAJuSUACbkmAAm5KQAJuSoACbksAAm5LQAJuS8ACbkyAAm5MwAJuTQACbk3AAm5OAAJuT0ACblWAAm5XwAJuWEACbljAAm5bAAJuW8ACblyAAm5dAAJub0ACbnhAAm6CAAJuiwACbovAAm6MQAJujMACbo1AAm6NwAJujkACbo6AAm6PQAJulYACbp3AAm6eQAJunsACbp9AAm6fwAJuoEACbqDAAm6hQAJuocACbqoAAm6qwAJuq4ACbqxAAm6tAAJurcACbq6AAm6vQAJusAACbrCAAm7PQAJuz8ACbtBAAm7QwAJu0YACbtHAAm7SAAJu0kACbtKAAm7TAAJu04ACbtPAAm7UAAJu1IACbtTAAm7zgAJu9AACbvSAAm71AAJu9cACbvYAAm72QAJu9oACbvbAAm73QAJu98ACbvgAAm74QAJu+MACbvkAAm8XwAJvGEACbxkAAm8ZgAJvGkACbxqAAm8awAJvGwACbxtAAm8bwAJvHEACbxyAAm8cwAJvHUACbx2AAm8jwAJvJAACbyRAAm8kwAJvQ4ACb0QAAm9EgAJvRQACb0XAAm9GAAJvRkACb0aAAm9GwAJvR0ACb0fAAm9IAAJvSEACb0jAAm9JAAJvZ8ACb2hAAm9owAJvaUACb2oAAm9qQAJvaoACb2rAAm9rAAJva4ACb2wAAm9sQAJvbIACb20AAm9tQAJvjAACb4yAAm+NAAJvjYACb45AAm+OgAJvjsACb48AAm+PQAJvj8ACb5BAAm+QgAJvkMACb5FAAm+RgAJvsEACb7DAAm+xQAJvscACb7KAAm+ywAJvswACb7NAAm+zgAJvtAACb7SAAm+0wAJvtQACb7WAAm+1wAJv1IACb9UAAm/VgAJv1gACb9bAAm/XAAJv10ACb9eAAm/XwAJv2EACb9jAAm/ZAAJv2UACb9nAAm/aAAJv7EACb/VAAm//AAJwCAACcAjAAnAJQAJwCcACcApAAnAKwAJwC0ACcAuAAnAMQAJwEoACcBnAAnAaQAJwGsACcBtAAnAbwAJwHEACcBzAAnAdQAJwJIACcCVAAnAmAAJwJsACcCeAAnAoQAJwKQACcCnAAnAqQAJwSQACcEmAAnBKAAJwSoACcEtAAnBLgAJwS8ACcEwAAnBMQAJwTMACcE1AAnBNgAJwTcACcE5AAnBOgAJwbUACcG3AAnBuQAJwbsACcG+AAnBvwAJwcAACcHBAAnBwgAJwcQACcHGAAnBxwAJwcgACcHKAAnBywAJwkYACcJIAAnCSgAJwkwACcJPAAnCUAAJwlEACcJSAAnCUwAJwlUACcJXAAnCWAAJwlkACcJbAAnCXAAJwtcACcLZAAnC2wAJwt0ACcLgAAnC4QAJwuIACcLjAAnC5AAJwuYACcLoAAnC6QAJwuoACcLsAAnC7QAJw2gACcNqAAnDbAAJw24ACcNxAAnDcgAJw3MACcN0AAnDdQAJw3cACcN5AAnDegAJw3sACcN9AAnDfgAJw/kACcP7AAnD/QAJw/8ACcQCAAnEAwAJxAQACcQFAAnEBgAJxAgACcQKAAnECwAJxAwACcQOAAnEDwAJxIoACcSMAAnEjgAJxJAACcSTAAnElAAJxJUACcSWAAnElwAJxJkACcSbAAnEnAAJxJ0ACcSfAAnEoAAJxTMACcVWAAnFdgAJxZYACcWYAAnFmgAJxZwACcWeAAnFoQAJxaIACcWjAAnFpgAJxacACcWpAAnFqgAJxawACcWvAAnFsAAJxbEACcW0AAnFtQAJxboACcXTAAnF3AAJxd4ACcXgAAnF6QAJxewACcXvAAnF8QAJxjoACcZeAAnGhQAJxqkACcasAAnGrgAJxrAACcayAAnGtAAJxrYACca3AAnGugAJxtMACcb0AAnG9gAJxvgACcb6AAnG/AAJxv4ACccAAAnHAgAJxwQACcclAAnHKAAJxysACccuAAnHMQAJxzQACcc3AAnHOgAJxz0ACcc/AAnHugAJx7wACce+AAnHwAAJx8MACcfEAAnHxQAJx8YACcfHAAnHyQAJx8sACcfMAAnHzQAJx88ACcfQAAnISwAJyE0ACchPAAnIUQAJyFQACchVAAnIVgAJyFcACchYAAnIWgAJyFwACchdAAnIXgAJyGAACchhAAnI3AAJyN4ACcjhAAnI4wAJyOYACcjnAAnI6AAJyOkACcjqAAnI7AAJyO4ACcjvAAnI8AAJyPIACcjzAAnJDAAJyQ0ACckOAAnJEAAJyYsACcmNAAnJjwAJyZEACcmUAAnJlQAJyZYACcmXAAnJmAAJyZoACcmcAAnJnQAJyZ4ACcmgAAnJoQAJyhwACcoeAAnKIAAJyiIACcolAAnKJgAJyicACcooAAnKKQAJyisACcotAAnKLgAJyi8ACcoxAAnKMgAJyq0ACcqvAAnKsQAJyrMACcq2AAnKtwAJyrgACcq5AAnKugAJyrwACcq+AAnKvwAJysAACcrCAAnKwwAJyz4ACctAAAnLQgAJy0QACctHAAnLSAAJy0kACctKAAnLSwAJy00ACctPAAnLUAAJy1EACctTAAnLVAAJy88ACcvRAAnL0wAJy9UACcvYAAnL2QAJy9oACcvbAAnL3AAJy94ACcvgAAnL4QAJy+IACcvkAAnL5QAJzC4ACcxSAAnMeQAJzJ0ACcygAAnMogAJzKQACcymAAnMqAAJzKoACcyrAAnMrgAJzMcACczkAAnM5gAJzOgACczqAAnM7AAJzO4ACczwAAnM8gAJzQ8ACc0SAAnNFQAJzRgACc0bAAnNHgAJzSEACc0kAAnNJgAJzaEACc2jAAnNpQAJzacACc2qAAnNqwAJzawACc2tAAnNrgAJzbAACc2yAAnNswAJzbQACc22AAnNtwAJzjIACc40AAnONgAJzjgACc47AAnOPAAJzj0ACc4+AAnOPwAJzkEACc5DAAnORAAJzkUACc5HAAnOSAAJzsMACc7FAAnOxwAJzskACc7MAAnOzQAJzs4ACc7PAAnO0AAJztIACc7UAAnO1QAJztYACc7YAAnO2QAJz1QACc9WAAnPWQAJz1sACc9eAAnPXwAJz2AACc9hAAnPYgAJz2QACc9mAAnPZwAJz2gACc9qAAnPawAJz+YACc/oAAnP6gAJz+wACc/vAAnP8AAJz/EACc/yAAnP8wAJz/UACc/3AAnP+AAJz/kACc/7AAnP/AAJ0HcACdB5AAnQewAJ0H0ACdCAAAnQgQAJ0IIACdCDAAnQhAAJ0IYACdCIAAnQiQAJ0IoACdCMAAnQjQAJ0QgACdEKAAnRDAAJ0Q4ACdERAAnREgAJ0RMACdEUAAnRFQAJ0RcACdEZAAnRGgAJ0RsACdEdAAnRHgAJ0bEACdHUAAnR9AAJ0hQACdIWAAnSGAAJ0hoACdIcAAnSHwAJ0iAACdIhAAnSJAAJ0iUACdInAAnSKAAJ0ioACdItAAnSLgAJ0i8ACdIyAAnSMwAJ0jgACdJRAAnSWgAJ0lwACdJeAAnSZwAJ0moACdJtAAnSbwAJ0rgACdLcAAnTAwAJ0ycACdMqAAnTLAAJ0y4ACdMwAAnTMgAJ0zQACdM1AAnTOAAJ01EACdNyAAnTdAAJ03YACdN4AAnTegAJ03wACdN+AAnTgAAJ04IACdOjAAnTpgAJ06kACdOsAAnTrwAJ07IACdO1AAnTuAAJ07sACdO9AAnUOAAJ1DoACdQ8AAnUPgAJ1EEACdRCAAnUQwAJ1EQACdRFAAnURwAJ1EkACdRKAAnUSwAJ1E0ACdROAAnUyQAJ1MsACdTNAAnUzwAJ1NIACdTTAAnU1AAJ1NUACdTWAAnU2AAJ1NoACdTbAAnU3AAJ1N4ACdTfAAnVWgAJ1VwACdVfAAnVYQAJ1WQACdVlAAnVZgAJ1WcACdVoAAnVagAJ1WwACdVtAAnVbgAJ1XAACdVxAAnVigAJ1YsACdWMAAnVjgAJ1gkACdYLAAnWDQAJ1g8ACdYSAAnWEwAJ1hQACdYVAAnWFgAJ1hgACdYaAAnWGwAJ1hwACdYeAAnWHwAJ1poACdacAAnWngAJ1qAACdajAAnWpAAJ1qUACdamAAnWpwAJ1qkACdarAAnWrAAJ1q0ACdavAAnWsAAJ1ysACdctAAnXLwAJ1zEACdc0AAnXNQAJ1zYACdc3AAnXOAAJ1zoACdc8AAnXPQAJ1z4ACddAAAnXQQAJ17wACde+AAnXwAAJ18IACdfFAAnXxgAJ18cACdfIAAnXyQAJ18sACdfNAAnXzgAJ188ACdfRAAnX0gAJ2E0ACdhPAAnYUQAJ2FMACdhWAAnYVwAJ2FgACdhZAAnYWgAJ2FwACdheAAnYXwAJ2GAACdhiAAnYYwAJ2KwACdjQAAnY9wAJ2RsACdkeAAnZIAAJ2SIACdkkAAnZJgAJ2SgACdkpAAnZLAAJ2UUACdliAAnZZAAJ2WYACdloAAnZagAJ2WwACdluAAnZcAAJ2Y0ACdmQAAnZkwAJ2ZYACdmZAAnZnAAJ2Z8ACdmiAAnZpAAJ2h8ACdohAAnaIwAJ2iUACdooAAnaKQAJ2ioACdorAAnaLAAJ2i4ACdowAAnaMQAJ2jIACdo0AAnaNQAJ2rAACdqyAAnatAAJ2rYACdq5AAnaugAJ2rsACdq8AAnavQAJ2r8ACdrBAAnawgAJ2sMACdrFAAnaxgAJ20EACdtDAAnbRQAJ20cACdtKAAnbSwAJ20wACdtNAAnbTgAJ21AACdtSAAnbUwAJ21QACdtWAAnbVwAJ29IACdvUAAnb1wAJ29kACdvcAAnb3QAJ294ACdvfAAnb4AAJ2+IACdvkAAnb5QAJ2+YACdvoAAnb6QAJ3GQACdxmAAncaAAJ3GoACdxtAAncbgAJ3G8ACdxwAAnccQAJ3HMACdx1AAncdgAJ3HcACdx5AAncegAJ3PUACdz3AAnc+QAJ3PsACdz+AAnc/wAJ3QAACd0BAAndAgAJ3QQACd0GAAndBwAJ3QgACd0KAAndCwAJ3YYACd2IAAndigAJ3YwACd2PAAndkAAJ3ZEACd2SAAndkwAJ3ZUACd2XAAndmAAJ3ZkACd2bAAndnAAJ3i8ACd5SAAnecgAJ3pIACd6UAAnelgAJ3pgACd6aAAnenQAJ3p4ACd6fAAneogAJ3qMACd6lAAnepgAJ3qgACd6rAAnerAAJ3q0ACd6wAAnesQAJ3roACd7TAAne3AAJ3t4ACd7gAAne6QAJ3uwACd7vAAne8QAJ3zoACd9eAAnfhQAJ36kACd+sAAnfrgAJ37AACd+yAAnftAAJ37YACd+3AAnfugAJ39MACd/0AAnf9gAJ3/gACd/6AAnf/AAJ3/4ACeAAAAngAgAJ4AQACeAlAAngKAAJ4CsACeAuAAngMQAJ4DQACeA3AAngOgAJ4D0ACeA/AAngugAJ4LwACeC+AAngwAAJ4MMACeDEAAngxQAJ4MYACeDHAAngyQAJ4MsACeDMAAngzQAJ4M8ACeDQAAnhSwAJ4U0ACeFPAAnhUQAJ4VQACeFVAAnhVgAJ4VcACeFYAAnhWgAJ4VwACeFdAAnhXgAJ4WAACeFhAAnh3AAJ4d4ACeHhAAnh4wAJ4eYACeHnAAnh6AAJ4ekACeHqAAnh7AAJ4e4ACeHvAAnh8AAJ4fIACeHzAAniDAAJ4g0ACeIOAAniEAAJ4osACeKNAAnijwAJ4pEACeKUAAnilQAJ4pYACeKXAAnimAAJ4poACeKcAAninQAJ4p4ACeKgAAnioQAJ4xwACeMeAAnjIAAJ4yIACeMlAAnjJgAJ4ycACeMoAAnjKQAJ4ysACeMtAAnjLgAJ4y8ACeMxAAnjMgAJ460ACeOvAAnjsQAJ47MACeO2AAnjtwAJ47gACeO5AAnjugAJ47wACeO+AAnjvwAJ48AACePCAAnjwwAJ5D4ACeRAAAnkQgAJ5EQACeRHAAnkSAAJ5EkACeRKAAnkSwAJ5E0ACeRPAAnkUAAJ5FEACeRTAAnkVAAJ5M8ACeTRAAnk0wAJ5NUACeTYAAnk2QAJ5NoACeTbAAnk3AAJ5N4ACeTgAAnk4QAJ5OIACeTkAAnk5QAJ5S4ACeVSAAnleQAJ5Z0ACeWgAAnlogAJ5aQACeWmAAnlqAAJ5aoACeW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2AAn/twAKADIACgA0AAoANgAKADgACgA7AAoAPAAKAD0ACgA+AAoAPwAKAEEACgBDAAoARAAKAEUACgBHAAoASAAKAMMACgDFAAoAxwAKAMkACgDMAAoAzQAKAM4ACgDPAAoA0AAKANIACgDUAAoA1QAKANYACgDYAAoA2QAKAVQACgFWAAoBWAAKAVoACgFdAAoBXgAKAV8ACgFgAAoBYQAKAWMACgFlAAoBZgAKAWcACgFpAAoBagAKAeUACgHnAAoB6QAKAesACgHuAAoB7wAKAfAACgHxAAoB8gAKAfQACgH2AAoB9wAKAfgACgH6AAoB+wAKAnYACgJ4AAoCegAKAnwACgJ/AAoCgAAKAoEACgKCAAoCgwAKAoUACgKHAAoCiAAKAokACgKLAAoCjAAKAwcACgMJAAoDCwAKAw0ACgMQAAoDEQAKAxIACgMTAAoDFAAKAxYACgMYAAoDGQAKAxoACgMcAAoDHQAKA7AACgPTAAoD8wAKBBMACgQVAAoEFwAKBBkACgQbAAoEHgAKBB8ACgQgAAoEIwAKBCQACgQmAAoEJwAKBCkACgQsAAoELQAKBC4ACgQxAAoEMgAKBDcACgRQAAoEWQAKBFsACgRdAAoEZgAKBGkACgRsAAoEbgAKBLcACgTbAAoFAgAKBSYACgUpAAoFKwAKBS0ACgUvAAoFMQAKBTMACgU0AAoFNwAKBVAACgVxAAoFcwAKBXUACgV3AAoFeQAKBXsACgV9AAoFfwAKBYEACgWiAAoFpQAKBagACgWrAAoFrgAKBbEACgW0AAoFtwAKBboACgW8AAoGNwAKBjkACgY7AAoGPQAKBkAACgZBAAoGQgAKBkMACgZEAAoGRgAKBkgACgZJAAoGSgAKBkwACgZNAAoGyAAKBsoACgbMAAoGzgAKBtEACgbSAAoG0wAKBtQACgbVAAoG1wAKBtkACgbaAAoG2wAKBt0ACgbeAAoHWQAKB1sACgdeAAoHYAAKB2MACgdkAAoHZQAKB2YACgdnAAoHaQAKB2sACgdsAAoHbQAKB28ACgdwAAoHiQAKB4oACgeLAAoHjQAKCAgACggKAAoIDAAKCA4ACggRAAoIEgAKCBMACggUAAoIFQAKCBcACggZAAoIGgAKCBsACggdAAoIHgAKCJkACgibAAoInQAKCJ8ACgiiAAoIowAKCKQACgilAAoIpgAKCKgACgiqAAoIqwAKCKwACgiuAAoIrwAKCSoACgksAAoJLgAKCTAACgkzAAoJNAAKCTUACgk2AAoJNwAKCTkACgk7AAoJPAAKCT0ACgk/AAoJQAAKCbsACgm9AAoJvwAKCcEACgnEAAoJxQAKCcYACgnHAAoJyAAKCcoACgnMAAoJzQAKCc4ACgnQAAoJ0QAKCkwACgpOAAoKUAAKClIACgpVAAoKVgAKClcACgpYAAoKWQAKClsACgpdAAoKXgAKCl8ACgphAAoKYgAKCqsACgrPAAoK9gAKCxoACgsdAAoLHwAKCyEACgsjAAoLJQAKCycACgsoAAoLKwAKC0QACgthAAoLYwAKC2UACgtnAAoLaQAKC2sACgttAAoLbwAKC4wACguPAAoLkgAKC5UACguYAAoLmwAKC54ACguhAAoLowAKDB4ACgwgAAoMIgAKDCQACgwnAAoMKAAKDCkACgwqAAoMKwAKDC0ACgwvAAoMMAAKDDEACgwzAAoMNAAKDK8ACgyxAAoMswAKDLUACgy4AAoMuQAKDLoACgy7AAoMvAAKDL4ACgzAAAoMwQAKDMIACgzEAAoMxQAKDUAACg1CAAoNRAAKDUYACg1JAAoNSgAKDUsACg1MAAoNTQAKDU8ACg1RAAoNUgAKDVMACg1VAAoNVgAKDdEACg3TAAoN1gAKDdgACg3bAAoN3AAKDd0ACg3eAAoN3wAKDeEACg3jAAoN5AAKDeUACg3nAAoN6AAKDmMACg5lAAoOZwAKDmkACg5sAAoObQAKDm4ACg5vAAoOcAAKDnIACg50AAoOdQAKDnYACg54AAoOeQAKDvQACg72AAoO+AAKDvoACg79AAoO/gAKDv8ACg8AAAoPAQAKDwMACg8FAAoPBgAKDwcACg8JAAoPCgAKD4UACg+HAAoPiQAKD4sACg+OAAoPjwAKD5AACg+RAAoPkgAKD5QACg+WAAoPlwAKD5gACg+aAAoPmwAKEC4AChBRAAoQcQAKEJEAChCTAAoQlQAKEJcAChCZAAoQnAAKEJ0AChCeAAoQoQAKEKIAChCkAAoQpQAKEKgAChCrAAoQrAAKEK0AChCwAAoQsQAKELYAChDPAAoQ2AAKENoAChDcAAoQ5QAKEOgAChDrAAoQ7QAKETYAChFaAAoRgQAKEaUAChGoAAoRqgAKEawAChGuAAoRsAAKEbIAChGzAAoRtgAKEc8AChHwAAoR8gAKEfQAChH2AAoR+AAKEfoAChH8AAoR/gAKEgAAChIhAAoSJAAKEicAChIqAAoSLQAKEjAAChIzAAoSNgAKEjkAChI7AAoStgAKErgAChK6AAoSvAAKEr8AChLAAAoSwQAKEsIAChLDAAoSxQAKEscAChLIAAoSyQAKEssAChLMAAoTRwAKE0kAChNLAAoTTQAKE1AAChNRAAoTUgAKE1MAChNUAAoTVgAKE1gAChNZAAoTWgAKE1wAChNdAAoT2AAKE9oAChPdAAoT3wAKE+IAChPjAAoT5AAKE+UAChPmAAoT6AAKE+oAChPrAAoT7AAKE+4AChPvAAoUCAAKFAkAChQKAAoUDAAKFIcAChSJAAoUiwAKFI0AChSQAAoUkQAKFJIAChSTAAoUlAAKFJYAChSYAAoUmQAKFJoAChScAAoUnQAKFRgAChUaAAoVHAAKFR4AChUhAAoVIgAKFSMAChUkAAoVJQAKFScAChUpAAoVKgAKFSsAChUtAAoVLgAKFakAChWrAAoVrQAKFa8AChWyAAoVswAKFbQAChW1AAoVtgAKFbgAChW6AAoVuwAKFbwAChW+AAoVvwAKFjoAChY8AAoWPgAKFkAAChZDAAoWRAAKFkUAChZGAAoWRwAKFkkAChZLAAoWTAAKFk0AChZPAAoWUAAKFssAChbNAAoWzwAKFtEAChbUAAoW1QAKFtYAChbXAAoW2AAKFtoAChbcAAoW3QAKFt4AChbgAAoW4QAKFyoAChdOAAoXdQAKF5kAChecAAoXngAKF6AACheiAAoXpAAKF6YAChenAAoXqgAKF8MAChfgAAoX4gAKF+QAChfmAAoX6AAKF+oAChfsAAoX7gAKGAsAChgOAAoYEQAKGBQAChgXAAoYGgAKGB0AChggAAoYIgAKGJ0AChifAAoYoQAKGKMAChimAAoYpwAKGKgAChipAAoYqgAKGKwAChiuAAoYrwAKGLAAChiyAAoYswAKGS4AChkwAAoZMgAKGTQAChk3AAoZOAAKGTkAChk6AAoZOwAKGT0AChk/AAoZQAAKGUEAChlDAAoZRAAKGb8AChnBAAoZwwAKGcUAChnIAAoZyQAKGcoAChnLAAoZzAAKGc4AChnQAAoZ0QAKGdIAChnUAAoZ1QAKGlAAChpSAAoaVQAKGlcAChpaAAoaWwAKGlwAChpdAAoaXgAKGmAAChpiAAoaYwAKGmQAChpmAAoaZwAKGuIAChrkAAoa5gAKGugAChrrAAoa7AAKGu0AChruAAoa7wAKGvEAChrzAAoa9AAKGvUAChr3AAoa+AAKG3MACht1AAobdwAKG3kACht8AAobfQAKG34ACht/AAobgAAKG4IAChuEAAobhQAKG4YAChuIAAobiQAKHAQAChwGAAocCQAKHAsAChwOAAocDwAKHBAAChwRAAocEgAKHBQAChwWAAocFwAKHBgAChwaAAocGwAKHCwAChwtAAocLwAKHKoAChysAAocrgAKHLAAChyzAAoctAAKHLUAChy2AAoctwAKHLkAChy7AAocvAAKHL0AChy/AAocwAAKHTsACh09AAodPwAKHUEACh1EAAodRQAKHUYACh1HAAodSAAKHUoACh1MAAodTQAKHU4ACh1QAAodUQAKHcwACh3OAAod0QAKHdMACh3WAAod1wAKHdgACh3ZAAod2gAKHdwACh3eAAod3wAKHeAACh3iAAod4wAKHnYACh6ZAAoeuQAKHtkACh7bAAoe3QAKHt8ACh7hAAoe5AAKHuUACh7mAAoe6QAKHuoACh7sAAoe7QAKHu8ACh7yAAoe8wAKHvQACh73AAoe+AAKHv0ACh8WAAofHwAKHyEACh8jAAofLAAKHy8ACh8yAAofNAAKH30ACh+hAAofyAAKH+wACh/vAAof8QAKH/MACh/1AAof9wAKH/kACh/6AAof/QAKIBYACiA3AAogOQAKIDsACiA9AAogPwAKIEEACiBDAAogRQAKIEcACiBoAAogawAKIG4ACiBxAAogdAAKIHcACiB6AAogfQAKIIAACiCCAAog/QAKIP8ACiEBAAohAwAKIQYACiEHAAohCAAKIQkACiEKAAohDAAKIQ4ACiEPAAohEAAKIRIACiETAAohjgAKIZAACiGSAAohlAAKIZcACiGYAAohmQAKIZoACiGbAAohnQAKIZ8ACiGgAAohoQAKIaMACiGkAAoiHwAKIiEACiIkAAoiJgAKIikACiIqAAoiKwAKIiwACiItAAoiLwAKIjEACiIyAAoiMwAKIjUACiI2AAoiTwAKIlAACiJRAAoiUwAKIs4ACiLQAAoi0gAKItQACiLXAAoi2AAKItkACiLaAAoi2wAKIt0ACiLfAAoi4AAKIuEACiLjAAoi5AAKI18ACiNhAAojYwAKI2UACiNoAAojaQAKI2oACiNrAAojbAAKI24ACiNwAAojcQAKI3IACiN0AAojdQAKI/AACiPyAAoj9AAKI/YACiP5AAoj+gAKI/sACiP8AAoj/QAKI/8ACiQBAAokAgAKJAMACiQFAAokBgAKJIEACiSDAAokhQAKJIcACiSKAAokiwAKJIwACiSNAAokjgAKJJAACiSSAAokkwAKJJQACiSWAAoklwAKJRIACiUUAAolFgAKJRgACiUbAAolHAAKJR0ACiUeAAolHwAKJSEACiUjAAolJAAKJSUACiUnAAolKAAKJXEACiWVAAolvAAKJeAACiXjAAol5QAKJecACiXpAAol6wAKJe0ACiXuAAol8QAKJgoACiYnAAomKQAKJisACiYtAAomLwAKJjEACiYzAAomNQAKJlIACiZVAAomWAAKJlsACiZeAAomYQAKJmQACiZnAAomaQAKJuQACibmAAom6QAKJusACibuAAom7wAKJvAACibxAAom8gAKJvQACib2AAom9wAKJvgACib6AAom+wAKJ3YACid4AAonegAKJ3wACid/AAongAAKJ4EACieCAAongwAKJ4UACieHAAoniAAKJ4kACieLAAonjAAKKAcACigJAAooCwAKKA0ACigQAAooEQAKKBIACigTAAooFAAKKBYACigYAAooGQAKKBoACigcAAooHQAKKJgACiiaAAoonQAKKJ8ACiiiAAooowAKKKQACiilAAoopgAKKKgACiiqAAooqwAKKKwACiiuAAoorwAKKSoACiksAAopLgAKKTAACikzAAopNAAKKTUACik2AAopNwAKKTkACik7AAopPAAKKT0ACik/AAopQAAKKbsACim9AAopvwAKKcEACinEAAopxQAKKcYACinHAAopyAAKKcoACinMAAopzQAKKc4ACinQAAop0QAKKkwACipOAAoqUAAKKlIACipVAAoqVgAKKlcACipYAAoqWQAKKlsACipdAAoqXgAKKl8ACiphAAoqYgAKKvUACisYAAorOAAKK1gACitaAAorXAAKK14ACitgAAorYwAKK2QACitlAAoraAAKK2kACitrAAorbAAKK28ACityAAorcwAKK3QACit3AAoreAAKK30ACiuWAAornwAKK6EACiujAAorrAAKK68ACiuyAAortAAKK/0ACiwhAAosSAAKLGwACixvAAoscQAKLHMACix1AAosdwAKLHkACix6AAosfQAKLJYACiy3AAosuQAKLLsACiy9AAosvwAKLMEACizDAAosxQAKLMcACizoAAos6wAKLO4ACizxAAos9AAKLPcACiz6AAos/QAKLQAACi0CAAotfQAKLX8ACi2BAAotgwAKLYYACi2HAAotiAAKLYkACi2KAAotjAAKLY4ACi2PAAotkAAKLZIACi2TAAouDgAKLhAACi4SAAouFAAKLhcACi4YAAouGQAKLhoACi4bAAouHQAKLh8ACi4gAAouIQAKLiMACi4kAAounwAKLqEACi6kAAoupgAKLqkACi6qAAouqwAKLqwACi6tAAourwAKLrEACi6yAAouswAKLrUACi62AAouzwAKLtAACi7RAAou0wAKL04ACi9QAAovUgAKL1QACi9XAAovWAAKL1kACi9aAAovWwAKL10ACi9fAAovYAAKL2EACi9jAAovZAAKL98ACi/hAAov4wAKL+UACi/oAAov6QAKL+oACi/rAAov7AAKL+4ACi/wAAov8QAKL/IACi/0AAov9QAKMHAACjByAAowdAAKMHYACjB5AAowegAKMHsACjB8AAowfQAKMH8ACjCBAAowggAKMIMACjCFAAowhgAKMQEACjEDAAoxBQAKMQcACjEKAAoxCwAKMQwACjENAAoxDgAKMRAACjESAAoxEwAKMRQACjEWAAoxFwAKMZIACjGUAAoxlgAKMZgACjGbAAoxnAAKMZ0ACjGeAAoxnwAKMaEACjGjAAoxpAAKMaUACjGnAAoxqAAKMfEACjIVAAoyPAAKMmAACjJjAAoyZQAKMmcACjJpAAoyawAKMm0ACjJuAAoycQAKMooACjKnAAoyqQAKMqsACjKtAAoyrwAKMrEACjKzAAoytQAKMtIACjLVAAoy2AAKMtsACjLeAAoy4QAKMuQACjLnAAoy6QAKM2QACjNmAAozaAAKM2oACjNtAAozbgAKM28ACjNwAAozcQAKM3MACjN1AAozdgAKM3cACjN5AAozegAKM/UACjP3AAoz+QAKM/sACjP+AAoz/wAKNAAACjQBAAo0AgAKNAQACjQGAAo0BwAKNAgACjQKAAo0CwAKNIYACjSIAAo0igAKNIwACjSPAAo0kAAKNJEACjSSAAo0kwAKNJUACjSXAAo0mAAKNJkACjSbAAo0nAAKNRcACjUZAAo1HAAKNR4ACjUhAAo1IgAKNSMACjUkAAo1JQAKNScACjUpAAo1KgAKNSsACjUtAAo1LgAKNbEACjXVAAo1+QAKNhwACjZDAAo2YwAKNooACjaxAAo20QAKNvUACjcZAAo3GwAKNx4ACjcgAAo3IgAKNyQACjcnAAo3KgAKNywACjcuAAo3MQAKNzMACjc1AAo3OAAKNzsACjc8AAo3QQAKN1oACjdfAAo3YQAKN2YACjdpAAo3awAKN7QACjfYAAo3/wAKOCMACjgmAAo4KAAKOCoACjgsAAo4LgAKODAACjgxAAo4NAAKOE0ACjhyAAo4dAAKOHYACjh4AAo4egAKOHwACjh+AAo4gAAKOIIACjiEAAo4qQAKOKwACjivAAo4sgAKOLUACji4AAo4uwAKOL4ACjjBAAo4xAAKOMYACjlBAAo5QwAKOUYACjlIAAo5SwAKOUwACjlNAAo5TgAKOU8ACjlRAAo5UwAKOVQACjlVAAo5VwAKOVgACjlpAAo5agAKOWwACjnnAAo56QAKOesACjntAAo58AAKOfEACjnyAAo58wAKOfQACjn2AAo5+AAKOfkACjn6AAo5/AAKOf0ACjp4AAo6egAKOn0ACjp/AAo6ggAKOoMACjqEAAo6hQAKOoYACjqIAAo6igAKOosACjqMAAo6jgAKOo8ACjqgAAo6pQAKOqgACjqqAAo6uwAKOsAACjrDAAo6xQAKO0AACjtCAAo7RAAKO0YACjtJAAo7SgAKO0sACjtMAAo7TQAKO08ACjtRAAo7UgAKO1MACjtVAAo7VgAKO9EACjvTAAo71gAKO9gACjvbAAo73AAKO90ACjveAAo73wAKO+EACjvjAAo75AAKO+UACjvnAAo76AAKO/kACjv6AAo7/AAKPHcACjx5AAo8ewAKPH0ACjyAAAo8gQAKPIIACjyDAAo8hAAKPIYACjyIAAo8iQAKPIoACjyMAAo8jQAKPQgACj0KAAo9DQAKPQ8ACj0SAAo9EwAKPRQACj0VAAo9FgAKPRgACj0aAAo9GwAKPRwACj0eAAo9HwAKPTgACj05AAo9OgAKPTwACj23AAo9uQAKPbsACj29AAo9wAAKPcEACj3CAAo9wwAKPcQACj3GAAo9yAAKPckACj3KAAo9zAAKPc0ACj5IAAo+SgAKPk0ACj5PAAo+UgAKPlMACj5UAAo+VQAKPlYACj5YAAo+WgAKPlsACj5cAAo+XgAKPl8ACj57AAo+lAAKPvcACj76AAo+/QAKPwAACj8DAAo/BgAKPwkACj8MAAo/DwAKPxIACj8VAAo/GAAKPxsACj8eAAo/IQAKPyQACj8nAAo/KgAKPy0ACj8wAAo/MwAKPzYACj85AAo/PAAKPz8ACj+iAAo/pQAKP6gACj+rAAo/rgAKP7EACj+0AAo/twAKP7oACj+9AAo/wAAKP8MACj/GAAo/yQAKP8wACj/PAAo/0gAKP9UACj/YAAo/2wAKP94ACj/hAAo/5AAKP+cACj/qAAo/7AAKQAwACkAgAApAPgAKQF4ACkByAApAhwAKQJsACkCpAApAuwAKQNkACkDrAApA9wAKQQsACkEgAApBNAAKQUsACkFXAApBZQAKQYIACkGUAApBnQAKQjAACkJTAApCcwAKQpMACkKVAApClwAKQpkACkKbAApCngAKQp8ACkKgAApCowAKQqQACkKmAApCpwAKQqkACkKsAApCrQAKQq4ACkKxAApCsgAKQrsACkLUAApC3QAKQt8ACkLhAApC6gAKQu0ACkLwAApC8gAKQzsACkNfAApDhgAKQ6oACkOtAApDrwAKQ7EACkOzAApDtQAKQ7cACkO4AApDuwAKQ9QACkP1AApD9wAKQ/kACkP7AApD/QAKQ/8ACkQBAApEAwAKRAUACkQmAApEKQAKRCwACkQvAApEMgAKRDUACkQ4AApEOwAKRD4ACkRAAApEuwAKRL0ACkS/AApEwQAKRMQACkTFAApExgAKRMcACkTIAApEygAKRMwACkTNAApEzgAKRNAACkTRAApFTAAKRU4ACkVQAApFUgAKRVUACkVWAApFVwAKRVgACkVZAApFWwAKRV0ACkVeAApFXwAKRWEACkViAApF3QAKRd8ACkXiAApF5AAKRecACkXoAApF6QAKReoACkXrAApF7QAKRe8ACkXwAApF8QAKRfMACkX0AApGDQAKRg4ACkYPAApGEQAKRowACkaOAApGkAAKRpIACkaVAApGlgAKRpcACkaYAApGmQAKRpsACkadAApGngAKRp8ACkahAApGogAKRx0ACkcfAApHIQAKRyMACkcmAApHJwAKRygACkcpAApHKgAKRywACkcuAApHLwAKRzAACkcyAApHMwAKR64ACkewAApHsgAKR7QACke3AApHuAAKR7kACke6AApHuwAKR70ACke/AApHwAAKR8EACkfDAApHxAAKSD8ACkhBAApIQwAKSEUACkhIAApISQAKSEoACkhLAApITAAKSE4ACkhQAApIUQAKSFIACkhUAApIVQAKSNAACkjSAApI1AAKSNYACkjZAApI2gAKSNsACkjcAApI3QAKSN8ACkjhAApI4gAKSOMACkjlAApI5gAKSS8ACklTAApJegAKSZ4ACkmhAApJowAKSaUACkmnAApJqQAKSasACkmsAApJrwAKScgACknlAApJ5wAKSekACknrAApJ7QAKSe8ACknxAApJ8wAKShAACkoTAApKFgAKShkACkocAApKHwAKSiIACkolAApKJwAKSqIACkqkAApKpgAKSqgACkqrAApKrAAKSq0ACkquAApKrwAKSrEACkqzAApKtAAKSrUACkq3AApKuAAKSzMACks1AApLNwAKSzkACks8AApLPQAKSz4ACks/AApLQAAKS0IACktEAApLRQAKS0YACktIAApLSQAKS8QACkvGAApLyAAKS8oACkvNAApLzgAKS88ACkvQAApL0QAKS9MACkvVAApL1gAKS9cACkvZAApL2gAKTFUACkxXAApMWQAKTFsACkxeAApMXwAKTGAACkxhAApMYgAKTGQACkxmAApMZwAKTGgACkxqAApMawAKTOYACkzoAApM6gAKTOwACkzvAApM8AAKTPEACkzyAApM8wAKTPUACkz3AApM+AAKTPkACkz7AApM/AAKTXcACk15AApNewAKTX0ACk2AAApNgQAKTYIACk2DAApNhAAKTYYACk2IAApNiQAKTYoACk2MAApNjQAKTggACk4KAApODAAKTg4ACk4RAApOEgAKThMACk4UAApOFQAKThcACk4ZAApOGgAKThsACk4dAApOHgAKTrEACk7UAApO9AAKTxQACk8WAApPGAAKTxoACk8cAApPHwAKTyAACk8hAApPJAAKTyUACk8nAApPKAAKTyoACk8tAApPLgAKTy8ACk8yAApPMwAKTzgACk9RAApPWgAKT1wACk9eAApPZwAKT2oACk9tAApPbwAKT7gACk/cAApQAwAKUCcAClAqAApQLAAKUC4AClAwAApQMgAKUDQAClA1AApQOAAKUFEAClByAApQdAAKUHYAClB4AApQegAKUHwAClB+AApQgAAKUIIAClCjAApQpgAKUKkAClCsAApQrwAKULIAClC1AApQuAAKULsAClC9AApROAAKUToAClE8AApRPgAKUUEAClFCAApRQwAKUUQAClFFAApRRwAKUUkAClFKAApRSwAKUU0AClFOAApRyQAKUcsAClHNAApRzwAKUdIAClHTAApR1AAKUdUAClHWAApR2AAKUdoAClHbAApR3AAKUd4AClHfAApSWgAKUlwAClJfAApSYQAKUmQAClJlAApSZgAKUmcAClJoAApSagAKUmwAClJtAApSbgAKUnAAClJxAApSigAKUosAClKMAApSjgAKUwkAClMLAApTDQAKUw8AClMSAApTEwAKUxQAClMVAApTFgAKUxgAClMaAApTGwAKUxwAClMeAApTHwAKU5oAClOcAApTngAKU6AAClOjAApTpAAKU6UAClOmAApTpwAKU6kAClOrAApTrAAKU60AClOvAApTsAAKVCsAClQtAApULwAKVDEAClQ0AApUNQAKVDYAClQ3AApUOAAKVDoAClQ8AApUPQAKVD4AClRAAApUQQAKVLwAClS+AApUwAAKVMIAClTFAApUxgAKVMcAClTIAApUyQAKVMsAClTNAApUzgAKVM8AClTRAApU0gAKVU0AClVPAApVUQAKVVMAClVWAApVVwAKVVgAClVZAApVWgAKVVwAClVeAApVXwAKVWAAClViAApVYwAKVawAClXQAApV9wAKVhsAClYeAApWIAAKViIAClYkAApWJgAKVigAClYpAApWLAAKVkUAClZiAApWZAAKVmYAClZoAApWagAKVmwAClZuAApWcAAKVo0AClaQAApWkwAKVpYAClaZAApWnAAKVp8AClaiAApWpAAKVx8AClchAApXIwAKVyUAClcoAApXKQAKVyoAClcrAApXLAAKVy4AClcwAApXMQAKVzIAClc0AApXNQAKV7AACleyAApXtAAKV7YACle5AApXugAKV7sACle8AApXvQAKV78AClfBAApXwgAKV8MAClfFAApXxgAKWEEAClhDAApYRQAKWEcAClhKAApYSwAKWEwAClhNAApYTgAKWFAAClhSAApYUwAKWFQAClhWAApYVwAKWNIACljUAApY1wAKWNkACljcAApY3QAKWN4ACljfAApY4AAKWOIACljkAApY5QAKWOYACljoAApY6QAKWWQACllmAApZaAAKWWoAClltAApZbgAKWW8ACllwAApZcQAKWXMACll1AApZdgAKWXcACll5AApZegAKWfUACln3AApZ+QAKWfsACln+AApZ/wAKWgAACloBAApaAgAKWgQACloGAApaBwAKWggACloKAApaCwAKWoYAClqIAApaigAKWowAClqPAApakAAKWpEAClqSAApakwAKWpUAClqXAApamAAKWpkAClqbAApanAAKWy8ACltSAApbcgAKW5IACluUAApblgAKW5gACluaAApbnQAKW54AClufAApbogAKW6MAClulAApbpgAKW6gAClurAApbrAAKW60ACluwAApbsQAKW7YAClvPAApb2AAKW9oAClvcAApb5QAKW+gAClvrAApb7QAKXDYAClxaAApcgQAKXKUAClyoAApcqgAKXKwAClyuAApcsAAKXLIAClyzAApctgAKXM8AClzwAApc8gAKXPQAClz2AApc+AAKXPoAClz8AApc/gAKXQAACl0hAApdJAAKXScACl0qAApdLQAKXTAACl0zAApdNgAKXTkACl07AApdtgAKXbgACl26AApdvAAKXb8ACl3AAApdwQAKXcIACl3DAApdxQAKXccACl3IAApdyQAKXcsACl3MAApeRwAKXkkACl5LAApeTQAKXlAACl5RAApeUgAKXlMACl5UAApeVgAKXlgACl5ZAApeWgAKXlwACl5dAApe2AAKXtoACl7dAApe3wAKXuIACl7jAApe5AAKXuUACl7mAApe6AAKXuoACl7rAApe7AAKXu4ACl7vAApfCAAKXwkACl8KAApfDAAKX4cACl+JAApfiwAKX40ACl+QAApfkQAKX5IACl+TAApflAAKX5YACl+YAApfmQAKX5oACl+cAApfnQAKYBgACmAaAApgHAAKYB4ACmAhAApgIgAKYCMACmAkAApgJQAKYCcACmApAApgKgAKYCsACmAtAApgLgAKYKkACmCrAApgrQAKYK8ACmCyAApgswAKYLQACmC1AApgtgAKYLgACmC6AApguwAKYLwACmC+AApgvwAKYToACmE8AAphPgAKYUAACmFDAAphRAAKYUUACmFGAAphRwAKYUkACmFLAAphTAAKYU0ACmFPAAphUAAKYcsACmHNAAphzwAKYdEACmHUAAph1QAKYdYACmHXAAph2AAKYdoACmHcAAph3QAKYd4ACmHgAAph4QAKYioACmJOAApidQAKYpkACmKcAApingAKYqAACmKiAApipAAKYqYACmKnAApiqgAKYsMACmLgAApi4gAKYuQACmLmAApi6AAKYuoACmLsAApi7gAKYwsACmMOAApjEQAKYxQACmMXAApjGgAKYx0ACmMgAApjIgAKY50ACmOfAApjogAKY6QACmOnAApjqAAKY6kACmOqAApjqwAKY60ACmOvAApjsAAKY7EACmOzAApjtAAKZC8ACmQxAApkMwAKZDUACmQ4AApkOQAKZDoACmQ7AApkPAAKZD4ACmRAAApkQQAKZEIACmREAApkRQAKZMAACmTCAApkxAAKZMYACmTJAApkygAKZMsACmTMAApkzQAKZM8ACmTRAApk0gAKZNMACmTVAApk1gAKZVEACmVTAAplVgAKZVgACmVbAAplXAAKZV0ACmVeAAplXwAKZWEACmVjAAplZAAKZWUACmVnAAplaAAKZeMACmXlAApl5wAKZekACmXsAApl7QAKZe4ACmXvAApl8AAKZfIACmX0AApl9QAKZfYACmX4AApl+QAKZnQACmZ2AApmeAAKZnoACmZ9AApmfgAKZn8ACmaAAApmgQAKZoMACmaFAApmhgAKZocACmaJAApmigAKZwUACmcHAApnCQAKZwsACmcOAApnDwAKZxAACmcRAApnEgAKZxQACmcWAApnFwAKZxgACmcaAApnGwAKZ64ACmfRAApn8QAKaBEACmgTAApoFQAKaBcACmgZAApoHAAKaB0ACmgeAApoIQAKaCIACmgkAApoJQAKaCcACmgqAApoKwAKaCwACmgvAApoMAAKaDUACmhOAApoVwAKaFkACmhbAApoZAAKaGcACmhqAApobAAKaLUACmjZAAppAAAKaSQACmknAAppKQAKaSsACmktAAppLwAKaTEACmkyAAppNQAKaU4ACmlvAAppcQAKaXMACml1AAppdwAKaXkACml7AAppfQAKaX8ACmmgAAppowAKaaYACmmpAApprAAKaa8ACmmyAApptQAKabgACmm6AApqNQAKajcACmo5AApqOwAKaj4ACmo/AApqQAAKakEACmpCAApqRAAKakYACmpHAApqSAAKakoACmpLAApqxgAKasgACmrKAApqzAAKas8ACmrQAApq0QAKatIACmrTAApq1QAKatcACmrYAApq2QAKatsACmrcAAprVwAKa1kACmtcAAprXgAKa2EACmtiAAprYwAKa2QACmtlAAprZwAKa2kACmtqAAprawAKa20ACmtuAAprhwAKa4gACmuJAApriwAKbAYACmwIAApsCgAKbAwACmwPAApsEAAKbBEACmwSAApsEwAKbBUACmwXAApsGAAKbBkACmwbAApsHAAKbJcACmyZAApsmwAKbJ0ACmygAApsoQAKbKIACmyjAApspAAKbKYACmyoAApsqQAKbKoACmysAApsrQAKbSgACm0qAAptLAAKbS4ACm0xAAptMgAKbTMACm00AAptNQAKbTcACm05AAptOgAKbTsACm09AAptPgAKbbkACm27AAptvQAKbb8ACm3CAAptwwAKbcQACm3FAAptxgAKbcgACm3KAAptywAKbcwACm3OAAptzwAKbkoACm5MAApuTgAKblAACm5TAApuVAAKblUACm5WAApuVwAKblkACm5bAApuXAAKbl0ACm5fAApuYAAKbqkACm7NAApu9AAKbxgACm8bAApvHQAKbx8ACm8hAApvIwAKbyUACm8mAApvKQAKb0IACm9fAApvYQAKb2MACm9lAApvZwAKb2kACm9rAApvbQAKb4oACm+NAApvkAAKb5MACm+WAApvmQAKb5wACm+fAApvoQAKcBwACnAeAApwIAAKcCIACnAlAApwJgAKcCcACnAoAApwKQAKcCsACnAtAApwLgAKcC8ACnAxAApwMgAKcK0ACnCvAApwsQAKcLMACnC2AApwtwAKcLgACnC5AApwugAKcLwACnC+AApwvwAKcMAACnDCAApwwwAKcT4ACnFAAApxQgAKcUQACnFHAApxSAAKcUkACnFKAApxSwAKcU0ACnFPAApxUAAKcVEACnFTAApxVAAKcc8ACnHRAApx0wAKcdUACnHYAApx2QAKcdoACnHbAApx3AAKcd4ACnHgAApx4QAKceIACnHkAApx5QAKcmAACnJiAApyZAAKcmYACnJpAApyagAKcmsACnJsAApybQAKcm8ACnJxAApycgAKcnMACnJ1AApydgAKcvEACnLzAApy9QAKcvcACnL6AApy+wAKcvwACnL9AApy/gAKcwAACnMCAApzAwAKcwQACnMGAApzBwAKc4IACnOEAApzhgAKc4gACnOLAApzjAAKc40ACnOOAApzjwAKc5EACnOTAApzlAAKc5UACnOXAApzmAAKdCsACnROAAp0bgAKdI4ACnSQAAp0kgAKdJQACnSWAAp0mQAKdJoACnSbAAp0ngAKdJ8ACnShAAp0ogAKdKQACnSnAAp0qAAKdKkACnSsAAp0rQAKdLIACnTLAAp01AAKdNYACnTYAAp04QAKdOQACnTnAAp06QAKdTIACnVWAAp1fQAKdaEACnWkAAp1pgAKdagACnWqAAp1rAAKda4ACnWvAAp1sgAKdcsACnXsAAp17gAKdfAACnXyAAp19AAKdfYACnX4AAp1+gAKdfwACnYdAAp2IAAKdiMACnYmAAp2KQAKdiwACnYvAAp2MgAKdjUACnY3AAp2sgAKdrQACna2AAp2uAAKdrsACna8AAp2vQAKdr4ACna/AAp2wQAKdsMACnbEAAp2xQAKdscACnbIAAp3QwAKd0UACndHAAp3SQAKd0wACndNAAp3TgAKd08ACndQAAp3UgAKd1QACndVAAp3VgAKd1gACndZAAp31AAKd9YACnfZAAp32wAKd94ACnffAAp34AAKd+EACnfiAAp35AAKd+YACnfnAAp36AAKd+oACnfrAAp4BAAKeAUACngGAAp4CAAKeIMACniFAAp4hwAKeIkACniMAAp4jQAKeI4ACniPAAp4kAAKeJIACniUAAp4lQAKeJYACniYAAp4mQAKeRQACnkWAAp5GAAKeRoACnkdAAp5HgAKeR8ACnkgAAp5IQAKeSMACnklAAp5JgAKeScACnkpAAp5KgAKeaUACnmnAAp5qQAKeasACnmuAAp5rwAKebAACnmxAAp5sgAKebQACnm2AAp5twAKebgACnm6AAp5uwAKejYACno4AAp6OgAKejwACno/AAp6QAAKekEACnpCAAp6QwAKekUACnpHAAp6SAAKekkACnpLAAp6TAAKescACnrJAAp6ywAKes0ACnrQAAp60QAKetIACnrTAAp61AAKetYACnrYAAp62QAKetoACnrcAAp63QAKeyYACntKAAp7cQAKe5UACnuYAAp7mgAKe5wACnueAAp7oAAKe6IACnujAAp7pgAKe78ACnvcAAp73gAKe+AACnviAAp75AAKe+YACnvoAAp76gAKfAcACnwKAAp8DQAKfBAACnwTAAp8FgAKfBkACnwcAAp8HgAKfJkACnybAAp8nQAKfJ8ACnyiAAp8owAKfKQACnylAAp8pgAKfKgACnyqAAp8qwAKfKwACnyuAAp8rwAKfSoACn0sAAp9LgAKfTAACn0zAAp9NAAKfTUACn02AAp9NwAKfTkACn07AAp9PAAKfT0ACn0/AAp9QAAKfbsACn29AAp9vwAKfcEACn3EAAp9xQAKfcYACn3HAAp9yAAKfcoACn3MAAp9zQAKfc4ACn3QAAp90QAKfkwACn5OAAp+UQAKflMACn5WAAp+VwAKflgACn5ZAAp+WgAKflwACn5eAAp+XwAKfmAACn5iAAp+YwAKft4ACn7gAAp+4gAKfuQACn7nAAp+6AAKfukACn7qAAp+6wAKfu0ACn7vAAp+8AAKfvEACn7zAAp+9AAKf28ACn9xAAp/cwAKf3UACn94AAp/eQAKf3oACn97AAp/fAAKf34ACn+AAAp/gQAKf4IACn+EAAp/hQAKgAAACoACAAqABAAKgAYACoAJAAqACgAKgAsACoAMAAqADQAKgA8ACoARAAqAEgAKgBMACoAVAAqAFgAKgKkACoDMAAqA7AAKgQwACoEOAAqBEAAKgRIACoEUAAqBFwAKgRgACoEZAAqBHAAKgR0ACoEfAAqBIAAKgSIACoElAAqBJgAKgScACoEqAAqBKwAKgTAACoFJAAqBUgAKgVQACoFWAAqBXwAKgWIACoFlAAqBZwAKgbAACoHUAAqB+wAKgh8ACoIiAAqCJAAKgiYACoIoAAqCKgAKgiwACoItAAqCMAAKgkkACoJqAAqCbAAKgm4ACoJwAAqCcgAKgnQACoJ2AAqCeAAKgnoACoKbAAqCngAKgqEACoKkAAqCpwAKgqoACoKtAAqCsAAKgrMACoK1AAqDMAAKgzIACoM0AAqDNgAKgzkACoM6AAqDOwAKgzwACoM9AAqDPwAKg0EACoNCAAqDQwAKg0UACoNGAAqDwQAKg8MACoPFAAqDxwAKg8oACoPLAAqDzAAKg80ACoPOAAqD0AAKg9IACoPTAAqD1AAKg9YACoPXAAqEUgAKhFQACoRXAAqEWQAKhFwACoRdAAqEXgAKhF8ACoRgAAqEYgAKhGQACoRlAAqEZgAKhGgACoRpAAqEggAKhIMACoSEAAqEhgAKhQEACoUDAAqFBQAKhQcACoUKAAqFCwAKhQwACoUNAAqFDgAKhRAACoUSAAqFEwAKhRQACoUWAAqFFwAKhZIACoWUAAqFlgAKhZgACoWbAAqFnAAKhZ0ACoWeAAqFnwAKhaEACoWjAAqFpAAKhaUACoWnAAqFqAAKhiMACoYlAAqGJwAKhikACoYsAAqGLQAKhi4ACoYvAAqGMAAKhjIACoY0AAqGNQAKhjYACoY4AAqGOQAKhrQACoa2AAqGuAAKhroACoa9AAqGvgAKhr8ACobAAAqGwQAKhsMACobFAAqGxgAKhscACobJAAqGygAKh0UACodHAAqHSQAKh0sACodOAAqHTwAKh1AACodRAAqHUgAKh1QACodWAAqHVwAKh1gACodaAAqHWwAKh6QACofIAAqH7wAKiBMACogWAAqIGAAKiBoACogcAAqIHgAKiCAACoghAAqIJAAKiD0ACohaAAqIXAAKiF4ACohgAAqIYgAKiGQACohmAAqIaAAKiIUACoiIAAqIiwAKiI4ACoiRAAqIlAAKiJcACoiaAAqInAAKiRcACokZAAqJGwAKiR0ACokgAAqJIQAKiSIACokjAAqJJAAKiSYACokoAAqJKQAKiSoACoksAAqJLQAKiagAComqAAqJrAAKia4AComxAAqJsgAKibMACom0AAqJtQAKibcACom5AAqJugAKibsACom9AAqJvgAKijkACoo7AAqKPQAKij8ACopCAAqKQwAKikQACopFAAqKRgAKikgACopKAAqKSwAKikwACopOAAqKTwAKisoACorMAAqKzgAKitAACorTAAqK1AAKitUACorWAAqK1wAKitkACorbAAqK3AAKit0ACorfAAqK4AAKi1sACotdAAqLXwAKi2EACotkAAqLZQAKi2YACotnAAqLaAAKi2oACotsAAqLbQAKi24ACotwAAqLcQAKi+wACovuAAqL8AAKi/IACov1AAqL9gAKi/cACov4AAqL+QAKi/sACov9AAqL/gAKi/8ACowBAAqMAgAKjH0ACox/AAqMgQAKjIMACoyGAAqMhwAKjIgACoyJAAqMigAKjIwACoyOAAqMjwAKjJAACoySAAqMkwAKjSYACo1JAAqNaQAKjYkACo2LAAqNjQAKjY8ACo2RAAqNlAAKjZUACo2WAAqNmQAKjZoACo2cAAqNnQAKjZ8ACo2iAAqNowAKjaQACo2nAAqNqAAKja0ACo3GAAqNzwAKjdEACo3TAAqN3AAKjd8ACo3iAAqN5AAKji0ACo5RAAqOeAAKjpwACo6fAAqOoQAKjqMACo6lAAqOpwAKjqkACo6qAAqOrQAKjsYACo7nAAqO6QAKjusACo7tAAqO7wAKjvEACo7zAAqO9QAKjvcACo8YAAqPGwAKjx4ACo8hAAqPJAAKjycACo8qAAqPLQAKjzAACo8yAAqPrQAKj68ACo+xAAqPswAKj7YACo+3AAqPuAAKj7kACo+6AAqPvAAKj74ACo+/AAqPwAAKj8IACo/DAAqQPgAKkEAACpBCAAqQRAAKkEcACpBIAAqQSQAKkEoACpBLAAqQTQAKkE8ACpBQAAqQUQAKkFMACpBUAAqQzwAKkNEACpDUAAqQ1gAKkNkACpDaAAqQ2wAKkNwACpDdAAqQ3wAKkOEACpDiAAqQ4wAKkOUACpDmAAqQ/wAKkQAACpEBAAqRAwAKkX4ACpGAAAqRggAKkYQACpGHAAqRiAAKkYkACpGKAAqRiwAKkY0ACpGPAAqRkAAKkZEACpGTAAqRlAAKkg8ACpIRAAqSEwAKkhUACpIYAAqSGQAKkhoACpIbAAqSHAAKkh4ACpIgAAqSIQAKkiIACpIkAAqSJQAKkqAACpKiAAqSpAAKkqYACpKpAAqSqgAKkqsACpKsAAqSrQAKkq8ACpKxAAqSsgAKkrMACpK1AAqStgAKkzEACpMzAAqTNQAKkzcACpM6AAqTOwAKkzwACpM9AAqTPgAKk0AACpNCAAqTQwAKk0QACpNGAAqTRwAKk8IACpPEAAqTxgAKk8gACpPLAAqTzAAKk80ACpPOAAqTzwAKk9EACpPTAAqT1AAKk9UACpPXAAqT2AAKlCEACpRFAAqUbAAKlJAACpSTAAqUlQAKlJcACpSZAAqUmwAKlJ0ACpSeAAqUoQAKlLoACpTXAAqU2QAKlNsACpTdAAqU3wAKlOEACpTjAAqU5QAKlQIACpUFAAqVCAAKlQsACpUOAAqVEQAKlRQACpUXAAqVGQAKlZQACpWWAAqVmAAKlZoACpWdAAqVngAKlZ8ACpWgAAqVoQAKlaMACpWlAAqVpgAKlacACpWpAAqVqgAKliUACpYnAAqWKQAKlisACpYuAAqWLwAKljAACpYxAAqWMgAKljQACpY2AAqWNwAKljgACpY6AAqWOwAKlrYACpa4AAqWugAKlrwACpa/AAqWwAAKlsEACpbCAAqWwwAKlsUACpbHAAqWyAAKlskACpbLAAqWzAAKl0cACpdJAAqXSwAKl00ACpdQAAqXUQAKl1IACpdTAAqXVAAKl1YACpdYAAqXWQAKl1oACpdcAAqXXQAKl9gACpfaAAqX3AAKl94ACpfhAAqX4gAKl+MACpfkAAqX5QAKl+cACpfpAAqX6gAKl+sACpftAAqX7gAKmGkACphrAAqYbQAKmG8ACphyAAqYcwAKmHQACph1AAqYdgAKmHgACph6AAqYewAKmHwACph+AAqYfwAKmPoACpj8AAqY/gAKmQAACpkDAAqZBAAKmQUACpkGAAqZBwAKmQkACpkLAAqZDAAKmQ0ACpkPAAqZEAAKmaMACpnGAAqZ5gAKmgYACpoIAAqaCgAKmgwACpoOAAqaEQAKmhIACpoTAAqaFgAKmhcACpoZAAqaGgAKmhwACpofAAqaIAAKmiEACpokAAqaJQAKmioACppDAAqaTAAKmk4ACppQAAqaWQAKmlwACppfAAqaYQAKmqoACprOAAqa9QAKmxkACpscAAqbHgAKmyAACpsiAAqbJAAKmyYACpsnAAqbKgAKm0MACptkAAqbZgAKm2gACptqAAqbbAAKm24ACptwAAqbcgAKm3QACpuVAAqbmAAKm5sACpueAAqboQAKm6QACpunAAqbqgAKm60ACpuvAAqcKgAKnCwACpwuAAqcMAAKnDMACpw0AAqcNQAKnDYACpw3AAqcOQAKnDsACpw8AAqcPQAKnD8ACpxAAAqcuwAKnL0ACpy/AAqcwQAKnMQACpzFAAqcxgAKnMcACpzIAAqcygAKnMwACpzNAAqczgAKnNAACpzRAAqdTAAKnU4ACp1RAAqdUwAKnVYACp1XAAqdWAAKnVkACp1aAAqdXAAKnV4ACp1fAAqdYAAKnWIACp1jAAqdfAAKnX0ACp1+AAqdgAAKnfsACp39AAqd/wAKngEACp4EAAqeBQAKngYACp4HAAqeCAAKngoACp4MAAqeDQAKng4ACp4QAAqeEQAKnowACp6OAAqekAAKnpIACp6VAAqelgAKnpcACp6YAAqemQAKnpsACp6dAAqengAKnp8ACp6hAAqeogAKnx0ACp8fAAqfIQAKnyMACp8mAAqfJwAKnygACp8pAAqfKgAKnywACp8uAAqfLwAKnzAACp8yAAqfMwAKn64ACp+wAAqfsgAKn7QACp+3AAqfuAAKn7kACp+6AAqfuwAKn70ACp+/AAqfwAAKn8EACp/DAAqfxAAKoD8ACqBBAAqgQwAKoEUACqBIAAqgSQAKoEoACqBLAAqgTAAKoE4ACqBQAAqgUQAKoFIACqBUAAqgVQAKoJ4ACqDCAAqg6QAKoQ0ACqEQAAqhEgAKoRQACqEWAAqhGAAKoRoACqEbAAqhHgAKoTcACqFUAAqhVgAKoVgACqFaAAqhXAAKoV4ACqFgAAqhYgAKoX8ACqGCAAqhhQAKoYgACqGLAAqhjgAKoZEACqGUAAqhlgAKohEACqITAAqiFQAKohcACqIaAAqiGwAKohwACqIdAAqiHgAKoiAACqIiAAqiIwAKoiQACqImAAqiJwAKoqIACqKkAAqipgAKoqgACqKrAAqirAAKoq0ACqKuAAqirwAKorEACqKzAAqitAAKorUACqK3AAqiuAAKozMACqM1AAqjNwAKozkACqM8AAqjPQAKoz4ACqM/AAqjQAAKo0IACqNEAAqjRQAKo0YACqNIAAqjSQAKo8QACqPGAAqjyQAKo8sACqPOAAqjzwAKo9AACqPRAAqj0gAKo9QACqPWAAqj1wAKo9gACqPaAAqj2wAKpFYACqRYAAqkWgAKpFwACqRfAAqkYAAKpGEACqRiAAqkYwAKpGUACqRnAAqkaAAKpGkACqRrAAqkbAAKpOcACqTpAAqk6wAKpO0ACqTwAAqk8QAKpPIACqTzAAqk9AAKpPYACqT4AAqk+QAKpPoACqT8AAqk/QAKpXgACqV6AAqlfAAKpX4ACqWBAAqlggAKpYMACqWEAAqlhQAKpYcACqWJAAqligAKpYsACqWNAAqljgAKpiEACqZEAAqmZAAKpoQACqaGAAqmiAAKpooACqaMAAqmjwAKppAACqaRAAqmlAAKppUACqaXAAqmmAAKppoACqadAAqmngAKpp8ACqaiAAqmowAKpqgACqbBAAqmygAKpswACqbOAAqm1wAKptoACqbdAAqm3wAKpygACqdMAAqncwAKp5cACqeaAAqnnAAKp54ACqegAAqnogAKp6QACqelAAqnqAAKp8EACqfiAAqn5AAKp+YACqfoAAqn6gAKp+wACqfuAAqn8AAKp/IACqgTAAqoFgAKqBkACqgcAAqoHwAKqCIACqglAAqoKAAKqCsACqgtAAqoqAAKqKoACqisAAqorgAKqLEACqiyAAqoswAKqLQACqi1AAqotwAKqLkACqi6AAqouwAKqL0ACqi+AAqpOQAKqTsACqk9AAqpPwAKqUIACqlDAAqpRAAKqUUACqlGAAqpSAAKqUoACqlLAAqpTAAKqU4ACqlPAAqpygAKqcwACqnPAAqp0QAKqdQACqnVAAqp1gAKqdcACqnYAAqp2gAKqdwACqndAAqp3gAKqeAACqnhAAqp+gAKqfsACqn8AAqp/gAKqnkACqp7AAqqfQAKqn8ACqqCAAqqgwAKqoQACqqFAAqqhgAKqogACqqKAAqqiwAKqowACqqOAAqqjwAKqwoACqsMAAqrDgAKqxAACqsTAAqrFAAKqxUACqsWAAqrFwAKqxkACqsbAAqrHAAKqx0ACqsfAAqrIAAKq5sACqudAAqrnwAKq6EACqukAAqrpQAKq6YACqunAAqrqAAKq6oACqusAAqrrQAKq64ACquwAAqrsQAKrCwACqwuAAqsMAAKrDIACqw1AAqsNgAKrDcACqw4AAqsOQAKrDsACqw9AAqsPgAKrD8ACqxBAAqsQgAKrL0ACqy/AAqswQAKrMMACqzGAAqsxwAKrMgACqzJAAqsygAKrMwACqzOAAqszwAKrNAACqzSAAqs0wAKrRwACq1AAAqtZwAKrYsACq2OAAqtkAAKrZIACq2UAAqtlgAKrZgACq2ZAAqtnAAKrbUACq3SAAqt1AAKrdYACq3YAAqt2gAKrdwACq3eAAqt4AAKrf0ACq4AAAquAwAKrgYACq4JAAquDAAKrg8ACq4SAAquFAAKro8ACq6RAAqukwAKrpUACq6YAAqumQAKrpoACq6bAAqunAAKrp4ACq6gAAquoQAKrqIACq6kAAqupQAKryAACq8iAAqvJAAKryYACq8pAAqvKgAKrysACq8sAAqvLQAKry8ACq8xAAqvMgAKrzMACq81AAqvNgAKr7EACq+zAAqvtQAKr7cACq+6AAqvuwAKr7wACq+9AAqvvgAKr8AACq/CAAqvwwAKr8QACq/GAAqvxwAKsEIACrBEAAqwRwAKsEkACrBMAAqwTQAKsE4ACrBPAAqwUAAKsFIACrBUAAqwVQAKsFYACrBYAAqwWQAKsNQACrDWAAqw2AAKsNoACrDdAAqw3gAKsN8ACrDgAAqw4QAKsOMACrDlAAqw5gAKsOcACrDpAAqw6gAKsWUACrFnAAqxaQAKsWsACrFuAAqxbwAKsXAACrFxAAqxcgAKsXQACrF2AAqxdwAKsXgACrF6AAqxewAKsfYACrH4AAqx+gAKsfwACrH/AAqyAAAKsgEACrICAAqyAwAKsgUACrIHAAqyCAAKsgkACrILAAqyDAAKsp8ACrLCAAqy4gAKswIACrMEAAqzBgAKswgACrMKAAqzDQAKsw4ACrMPAAqzEgAKsxMACrMVAAqzFgAKsxgACrMbAAqzHAAKsx0ACrMgAAqzIQAKsyoACrNDAAqzTAAKs04ACrNQAAqzWQAKs1wACrNfAAqzYQAKs6oACrPOAAqz9QAKtBkACrQcAAq0HgAKtCAACrQiAAq0JAAKtCYACrQnAAq0KgAKtEMACrRkAAq0ZgAKtGgACrRqAAq0bAAKtG4ACrRwAAq0cgAKtHQACrSVAAq0mAAKtJsACrSeAAq0oQAKtKQACrSnAAq0qgAKtK0ACrSvAAq1KgAKtSwACrUuAAq1MAAKtTMACrU0AAq1NQAKtTYACrU3AAq1OQAKtTsACrU8AAq1PQAKtT8ACrVAAAq1uwAKtb0ACrW/AAq1wQAKtcQACrXFAAq1xgAKtccACrXIAAq1ygAKtcwACrXNAAq1zgAKtdAACrXRAAq2TAAKtk4ACrZRAAq2UwAKtlYACrZXAAq2WAAKtlkACrZaAAq2XAAKtl4ACrZfAAq2YAAKtmIACrZjAAq2fAAKtn0ACrZ+AAq2gAAKtvsACrb9AAq2/wAKtwEACrcEAAq3BQAKtwYACrcHAAq3CAAKtwoACrcMAAq3DQAKtw4ACrcQAAq3EQAKt4wACreOAAq3kAAKt5IACreVAAq3lgAKt5cACreYAAq3mQAKt5sACredAAq3ngAKt58ACrehAAq3ogAKuB0ACrgfAAq4IQAKuCMACrgmAAq4JwAKuCgACrgpAAq4KgAKuCwACrguAAq4LwAKuDAACrgyAAq4MwAKuK4ACriwAAq4sgAKuLQACri3AAq4uAAKuLkACri6AAq4uwAKuL0ACri/AAq4wAAKuMEACrjDAAq4xAAKuT8ACrlBAAq5QwAKuUUACrlIAAq5SQAKuUoACrlLAAq5TAAKuU4ACrlQAAq5UQAKuVIACrlUAAq5VQAKuZ4ACrnCAAq56QAKug0ACroQAAq6EgAKuhQACroWAAq6GAAKuhoACrobAAq6HgAKujcACrpUAAq6VgAKulgACrpaAAq6XAAKul4ACrpgAAq6YgAKun8ACrqCAAq6hQAKuogACrqLAAq6jgAKupEACrqUAAq6lgAKuxEACrsTAAq7FgAKuxgACrsbAAq7HAAKux0ACrseAAq7HwAKuyEACrsjAAq7JAAKuyUACrsnAAq7KAAKu6MACrulAAq7pwAKu6kACrusAAq7rQAKu64ACruvAAq7sAAKu7IACru0AAq7tQAKu7YACru4AAq7uQAKvDQACrw2AAq8OAAKvDoACrw9AAq8PgAKvD8ACrxAAAq8QQAKvEMACrxFAAq8RgAKvEcACrxJAAq8SgAKvMUACrzHAAq8ygAKvMwACrzPAAq80AAKvNEACrzSAAq80wAKvNUACrzXAAq82AAKvNkACrzbAAq83AAKvVcACr1ZAAq9WwAKvV0ACr1gAAq9YQAKvWIACr1jAAq9ZAAKvWYACr1oAAq9aQAKvWoACr1sAAq9bQAKvegACr3qAAq97AAKve4ACr3xAAq98gAKvfMACr30AAq99QAKvfcACr35AAq9+gAKvfsACr39AAq9/gAKvnkACr57AAq+fQAKvn8ACr6CAAq+gwAKvoQACr6FAAq+hgAKvogACr6KAAq+iwAKvowACr6OAAq+jwAKvyIACr9FAAq/ZQAKv4UACr+HAAq/iQAKv4sACr+NAAq/kAAKv5EACr+SAAq/lQAKv5YACr+YAAq/mQAKv5wACr+fAAq/oAAKv6EACr+kAAq/pQAKv6oACr/DAAq/zAAKv84ACr/QAAq/2QAKv9wACr/fAAq/4QAKwCoACsBOAArAdQAKwJkACsCcAArAngAKwKAACsCiAArApAAKwKYACsCnAArAqgAKwMMACsDkAArA5gAKwOgACsDqAArA7AAKwO4ACsDwAArA8gAKwPQACsEVAArBGAAKwRsACsEeAArBIQAKwSQACsEnAArBKgAKwS0ACsEvAArBqgAKwawACsGuAArBsAAKwbMACsG0AArBtQAKwbYACsG3AArBuQAKwbsACsG8AArBvQAKwb8ACsHAAArCOwAKwj0ACsI/AArCQQAKwkQACsJFAArCRgAKwkcACsJIAArCSgAKwkwACsJNAArCTgAKwlAACsJRAArCzAAKws4ACsLRAArC0wAKwtYACsLXAArC2AAKwtkACsLaAArC3AAKwt4ACsLfAArC4AAKwuIACsLjAArC/AAKwv0ACsL+AArDAAAKw3sACsN9AArDfwAKw4EACsOEAArDhQAKw4YACsOHAArDiAAKw4oACsOMAArDjQAKw44ACsOQAArDkQAKxAwACsQOAArEEAAKxBIACsQVAArEFgAKxBcACsQYAArEGQAKxBsACsQdAArEHgAKxB8ACsQhAArEIgAKxJ0ACsSfAArEoQAKxKMACsSmAArEpwAKxKgACsSpAArEqgAKxKwACsSuAArErwAKxLAACsSyAArEswAKxS4ACsUwAArFMgAKxTQACsU3AArFOAAKxTkACsU6AArFOwAKxT0ACsU/AArFQAAKxUEACsVDAArFRAAKxb8ACsXBAArFwwAKxcUACsXIAArFyQAKxcoACsXLAArFzAAKxc4ACsXQAArF0QAKxdIACsXUAArF1QAKxh4ACsZCAArGaQAKxo0ACsaQAArGkgAKxpQACsaWAArGmAAKxpoACsabAArGngAKxrcACsbUAArG1gAKxtgACsbaAArG3AAKxt4ACsbgAArG4gAKxv8ACscCAArHBQAKxwgACscLAArHDgAKxxEACscUAArHFgAKx5EACseTAArHlQAKx5cACseaAArHmwAKx5wACsedAArHngAKx6AACseiAArHowAKx6QACsemAArHpwAKyCIACsgkAArIJwAKyCkACsgsAArILQAKyC4ACsgvAArIMAAKyDIACsg0AArINQAKyDYACsg4AArIOQAKyLQACsi2AArIuAAKyLoACsi9AArIvgAKyL8ACsjAAArIwQAKyMMACsjFAArIxgAKyMcACsjJAArIygAKyUUACslHAArJSQAKyUsACslOAArJTwAKyVAACslRAArJUgAKyVQACslWAArJVwAKyVgACslaAArJWwAKydYACsnYAArJ2gAKydwACsnfAArJ4AAKyeEACsniAArJ4wAKyeUACsnnAArJ6AAKyekACsnrAArJ7AAKymcACsppAArKawAKym0ACspwAArKcQAKynIACspzAArKdAAKynYACsp4AArKeQAKynoACsp8AArKfQAKyvgACsr6AArK/QAKyv8ACssCAArLAwAKywQACssFAArLBgAKywgACssKAArLCwAKywwACssOAArLDwAKy6IACsvFAArL5QAKzAUACswHAArMCQAKzAsACswNAArMDwAKzBAACswRAArMFAAKzBUACswXAArMGAAKzBsACswdAArMHgAKzB8ACswiAArMIwAKzCwACsxFAArMTgAKzFAACsxSAArMWwAKzF4ACsxhAArMYwAKzKwACszQAArM9wAKzRsACs0eAArNIAAKzSIACs0kAArNJgAKzSgACs0pAArNLAAKzUUACs1mAArNaAAKzWoACs1sAArNbgAKzXAACs1yAArNdAAKzXYACs2XAArNmgAKzZ0ACs2gAArNowAKzaYACs2pAArNrAAKza8ACs2xAArOLAAKzi4ACs4wAArOMgAKzjUACs42AArONwAKzjgACs45AArOOwAKzj0ACs4+AArOPwAKzkEACs5CAArOvQAKzr8ACs7BAArOwwAKzsYACs7HAArOyAAKzskACs7KAArOzAAKzs4ACs7PAArO0AAKztIACs7TAArPTgAKz1AACs9TAArPVQAKz1gACs9ZAArPWgAKz1sACs9cAArPXgAKz2AACs9hAArPYgAKz2QACs9lAArPfgAKz38ACs+AAArPggAKz/0ACs//AArQAQAK0AMACtAGAArQBwAK0AgACtAJAArQCgAK0AwACtAOAArQDwAK0BAACtASAArQEwAK0I4ACtCQAArQkgAK0JQACtCXAArQmAAK0JkACtCaAArQmwAK0J0ACtCfAArQoAAK0KEACtCjAArQpAAK0R8ACtEhAArRIwAK0SUACtEoAArRKQAK0SoACtErAArRLAAK0S4ACtEwAArRMQAK0TIACtE0AArRNQAK0bAACtGyAArRtAAK0bYACtG5AArRugAK0bsACtG8AArRvQAK0b8ACtHBAArRwgAK0cMACtHFAArRxgAK0kEACtJDAArSRQAK0kcACtJKAArSSwAK0kwACtJNAArSTgAK0lAACtJSAArSUwAK0lQACtJWAArSVwAK0qAACtLEAArS6wAK0w8ACtMSAArTFAAK0xYACtMYAArTGgAK0xwACtMdAArTIAAK0zkACtNWAArTWAAK01oACtNcAArTXgAK02AACtNiAArTZAAK04EACtOEAArThwAK04oACtONAArTkAAK05MACtOWAArTmAAK1BMACtQVAArUFwAK1BkACtQcAArUHQAK1B4ACtQfAArUIAAK1CIACtQkAArUJQAK1CYACtQoAArUKQAK1KQACtSmAArUqAAK1KoACtStAArUrgAK1K8ACtSwAArUsQAK1LMACtS1AArUtgAK1LcACtS5AArUugAK1TUACtU3AArVOQAK1TsACtU+AArVPwAK1UAACtVBAArVQgAK1UQACtVGAArVRwAK1UgACtVKAArVSwAK1cYACtXIAArVywAK1c0ACtXQAArV0QAK1dIACtXTAArV1AAK1dYACtXYAArV2QAK1doACtXcAArV3QAK1lgACtZaAArWXAAK1l4ACtZhAArWYgAK1mMACtZkAArWZQAK1mcACtZpAArWagAK1msACtZtAArWbgAK1ukACtbrAArW7QAK1u8ACtbyAArW8wAK1vQACtb1AArW9gAK1vgACtb6AArW+wAK1vwACtb+AArW/wAK13oACtd8AArXfwAK14EACteEAArXhQAK14YACteHAArXiAAK14oACteMAArXjQAK144ACteQAArXkQAK2CQACthHAArYZwAK2IcACtiJAArYiwAK2I0ACtiPAArYkgAK2JMACtiUAArYlwAK2JgACtiaAArYmwAK2J0ACtigAArYoQAK2KIACtilAArYpgAK2KsACtjEAArYzQAK2M8ACtjRAArY2gAK2N0ACtjgAArY4gAK2SsACtlPAArZdgAK2ZoACtmdAArZnwAK2aEACtmjAArZpQAK2acACtmoAArZqwAK2cQACtnlAArZ5wAK2ekACtnrAArZ7QAK2e8ACtnxAArZ8wAK2fUACtoWAAraGQAK2hwACtofAAraIgAK2iUACtooAAraKwAK2i4ACtowAAraqwAK2q0ACtqvAArasQAK2rQACtq1AAratgAK2rcACtq4AAraugAK2rwACtq9AAravgAK2sAACtrBAArbPAAK2z4ACttAAArbQgAK20UACttGAArbRwAK20gACttJAArbSwAK200ACttOAArbTwAK21EACttSAArbzQAK288ACtvSAArb1AAK29cACtvYAArb2QAK29oACtvbAArb3QAK298ACtvgAArb4QAK2+MACtvkAArb/QAK2/4ACtv/AArcAQAK3HwACtx+AArcgAAK3IIACtyFAArchgAK3IcACtyIAArciQAK3IsACtyNAArcjgAK3I8ACtyRAArckgAK3Q0ACt0PAArdEQAK3RMACt0WAArdFwAK3RgACt0ZAArdGgAK3RwACt0eAArdHwAK3SAACt0iAArdIwAK3Z4ACt2gAArdogAK3aQACt2nAArdqAAK3akACt2qAArdqwAK3a0ACt2vAArdsAAK3bEACt2zAArdtAAK3i8ACt4xAAreMwAK3jUACt44AAreOQAK3joACt47AArePAAK3j4ACt5AAAreQQAK3kIACt5EAAreRQAK3sAACt7CAArexAAK3sYACt7JAAreygAK3ssACt7MAArezQAK3s8ACt7RAAre0gAK3tMACt7VAAre1gAK3x8ACt9DAArfagAK344ACt+RAArfkwAK35UACt+XAArfmQAK35sACt+cAArfnwAK37gACt/VAArf1wAK39kACt/bAArf3QAK398ACt/hAArf4wAK4AAACuADAArgBgAK4AkACuAMAArgDwAK4BIACuAVAArgFwAK4JIACuCUAArglgAK4JgACuCbAArgnAAK4J0ACuCeAArgnwAK4KEACuCjAArgpAAK4KUACuCnAArgqAAK4SMACuElAArhJwAK4SkACuEsAArhLQAK4S4ACuEvAArhMAAK4TIACuE0AArhNQAK4TYACuE4AArhOQAK4bQACuG2AArhuAAK4boACuG9AArhvgAK4b8ACuHAAArhwQAK4cMACuHFAArhxgAK4ccACuHJAArhygAK4kUACuJHAAriSQAK4ksACuJOAAriTwAK4lAACuJRAAriUgAK4lQACuJWAAriVwAK4lgACuJaAAriWwAK4tYACuLYAAri2gAK4twACuLfAAri4AAK4uEACuLiAAri4wAK4uUACuLnAAri6AAK4ukACuLrAAri7AAK42cACuNpAArjawAK420ACuNwAArjcQAK43IACuNzAArjdAAK43YACuN4AArjeQAK43oACuN8AArjfQAK4/gACuP6AArj/AAK4/4ACuQBAArkAgAK5AMACuQEAArkBQAK5AcACuQJAArkCgAK5AsACuQNAArkDgAK5KEACuTEAArk5AAK5QQACuUGAArlCAAK5QoACuUMAArlDwAK5RAACuURAArlFAAK5RUACuUXAArlGAAK5RsACuUeAArlHwAK5SAACuUjAArlJAAK5SkACuVCAArlSwAK5U0ACuVPAArlWAAK5VsACuVeAArlYAAK5akACuXNAArl9AAK5hgACuYbAArmHQAK5h8ACuYhAArmIwAK5iUACuYmAArmKQAK5kIACuZjAArmZQAK5mcACuZpAArmawAK5m0ACuZvAArmcQAK5nMACuaUAArmlwAK5poACuadAArmoAAK5qMACuamAArmqQAK5qwACuauAArnKQAK5ysACuctAArnLwAK5zIACuczAArnNAAK5zUACuc2AArnOAAK5zoACuc7AArnPAAK5z4ACuc/AArnugAK57wACue+AArnwAAK58MACufEAArnxQAK58YACufHAArnyQAK58sACufMAArnzQAK588ACufQAAroSwAK6E0ACuhQAAroUgAK6FUACuhWAAroVwAK6FgACuhZAAroWwAK6F0ACuheAAroXwAK6GEACuhiAAroewAK6HwACuh9AArofwAK6PoACuj8AAro/gAK6QAACukDAArpBAAK6QUACukGAArpBwAK6QkACukLAArpDAAK6Q0ACukPAArpEAAK6YsACumNAArpjwAK6ZEACumUAArplQAK6ZYACumXAArpmAAK6ZoACumcAArpnQAK6Z4ACumgAArpoQAK6hwACuoeAArqIAAK6iIACuolAArqJgAK6icACuooAArqKQAK6isACuotAArqLgAK6i8ACuoxAArqMgAK6q0ACuqvAArqsQAK6rMACuq2AArqtwAK6rgACuq5AArqugAK6rwACuq+AArqvwAK6sAACurCAArqwwAK6z4ACutAAArrQgAK60QACutHAArrSAAK60kACutKAArrSwAK600ACutPAArrUAAK61EACutTAArrVAAK650ACuvBAArr6AAK7AwACuwPAArsEQAK7BMACuwVAArsFwAK7BkACuwaAArsHQAK7DYACuxTAArsVQAK7FcACuxZAArsWwAK7F0ACuxfAArsYQAK7H4ACuyBAArshAAK7IcACuyKAArsjQAK7JAACuyTAArslQAK7RAACu0SAArtFAAK7RYACu0ZAArtGgAK7RsACu0cAArtHQAK7R8ACu0hAArtIgAK7SMACu0lAArtJgAK7aEACu2jAArtpgAK7agACu2rAArtrAAK7a0ACu2uAArtrwAK7bEACu2zAArttAAK7bUACu23AArtuAAK7jMACu41AAruNwAK7jkACu48AAruPQAK7j4ACu4/AAruQAAK7kIACu5EAAruRQAK7kYACu5IAAruSQAK7sQACu7GAAruyQAK7ssACu7OAAruzwAK7tAACu7RAAru0gAK7tQACu7WAAru1wAK7tgACu7aAAru2wAK71YACu9YAArvWgAK71wACu9fAArvYAAK72EACu9iAArvYwAK72UACu9nAArvaAAK72kACu9rAArvbAAK7+cACu/pAArv6wAK7+0ACu/wAArv8QAK7/IACu/zAArv9AAK7/YACu/4AArv+QAK7/oACu/8AArv/QAK8HgACvB6AArwfQAK8H8ACvCCAArwgwAK8IQACvCFAArwhgAK8IgACvCKAArwiwAK8IwACvCOAArwjwAK8SIACvFFAArxZQAK8YUACvGHAArxiQAK8YsACvGNAArxkAAK8ZEACvGSAArxlQAK8ZYACvGYAArxmQAK8ZsACvGeAArxnwAK8aAACvGjAArxpAAK8akACvHCAArxywAK8c0ACvHPAArx2AAK8dsACvHeAArx4AAK8ikACvJNAArydAAK8pgACvKbAArynQAK8p8ACvKhAAryowAK8qUACvKmAAryqQAK8sIACvLjAAry5QAK8ucACvLpAAry6wAK8u0ACvLvAAry8QAK8vMACvMUAArzFwAK8xoACvMdAArzIAAK8yMACvMmAArzKQAK8ywACvMuAArzqQAK86sACvOtAArzrwAK87IACvOzAArztAAK87UACvO2AArzuAAK87oACvO7AArzvAAK874ACvO/AAr0OgAK9DwACvQ+AAr0QAAK9EMACvREAAr0RQAK9EYACvRHAAr0SQAK9EsACvRMAAr0TQAK9E8ACvRQAAr0ywAK9M0ACvTQAAr00gAK9NUACvTWAAr01wAK9NgACvTZAAr02wAK9N0ACvTeAAr03wAK9OEACvTiAAr0+wAK9PwACvT9AAr0/wAK9XoACvV8AAr1fgAK9YAACvWDAAr1hAAK9YUACvWGAAr1hwAK9YkACvWLAAr1jAAK9Y0ACvWPAAr1kAAK9gsACvYNAAr2DwAK9hEACvYUAAr2FQAK9hYACvYXAAr2GAAK9hoACvYcAAr2HQAK9h4ACvYgAAr2IQAK9pwACvaeAAr2oAAK9qIACvalAAr2pgAK9qcACvaoAAr2qQAK9qsACvatAAr2rgAK9q8ACvaxAAr2sgAK9y0ACvcvAAr3MQAK9zMACvc2AAr3NwAK9zgACvc5AAr3OgAK9zwACvc+AAr3PwAK90AACvdCAAr3QwAK974ACvfAAAr3wgAK98QACvfHAAr3yAAK98kACvfKAAr3ywAK980ACvfPAAr30AAK99EACvfTAAr31AAK+B0ACvhBAAr4aAAK+IwACviPAAr4kQAK+JMACviVAAr4lwAK+JkACviaAAr4nQAK+LYACvjTAAr41QAK+NcACvjZAAr42wAK+N0ACvjfAAr44QAK+P4ACvkBAAr5BAAK+QcACvkKAAr5DQAK+RAACvkTAAr5FQAK+ZAACvmSAAr5lAAK+ZYACvmZAAr5mgAK+ZsACvmcAAr5nQAK+Z8ACvmhAAr5ogAK+aMACvmlAAr5pgAK+iEACvojAAr6JQAK+icACvoqAAr6KwAK+iwACvotAAr6LgAK+jAACvoyAAr6MwAK+jQACvo2AAr6NwAK+rIACvq0AAr6tgAK+rgACvq7AAr6vAAK+r0ACvq+AAr6vwAK+sEACvrDAAr6xAAK+sUACvrHAAr6yAAK+0MACvtFAAr7RwAK+0kACvtMAAr7TQAK+04ACvtPAAr7UAAK+1IACvtUAAr7VQAK+1YACvtYAAr7WQAK+9QACvvWAAr72AAK+9oACvvdAAr73gAK+98ACvvgAAr74QAK++MACvvlAAr75gAK++cACvvpAAr76gAK/GUACvxnAAr8aQAK/GsACvxuAAr8bwAK/HAACvxxAAr8cgAK/HQACvx2AAr8dwAK/HgACvx6AAr8ewAK/PYACvz4AAr8+gAK/PwACvz/AAr9AAAK/QEACv0CAAr9AwAK/QUACv0HAAr9CAAK/QkACv0LAAr9DAAK/Z8ACv3CAAr94gAK/gIACv4EAAr+BgAK/ggACv4KAAr+DQAK/g4ACv4PAAr+EgAK/hMACv4VAAr+FgAK/hkACv4cAAr+HQAK/h4ACv4hAAr+IgAK/icACv5AAAr+SQAK/ksACv5NAAr+VgAK/lkACv5cAAr+XgAK/qcACv7LAAr+8gAK/xYACv8ZAAr/GwAK/x0ACv8fAAr/IQAK/yMACv8kAAr/JwAK/0AACv9hAAr/YwAK/2UACv9nAAr/aQAK/2sACv9tAAr/bwAK/3EACv+SAAr/lQAK/5gACv+bAAr/ngAK/6EACv+kAAr/pwAK/6oACv+sAAsAJwALACkACwArAAsALQALADAACwAxAAsAMgALADMACwA0AAsANgALADgACwA5AAsAOgALADwACwA9AAsAuAALALoACwC8AAsAvgALAMEACwDCAAsAwwALAMQACwDFAAsAxwALAMkACwDKAAsAywALAM0ACwDOAAsBSQALAUsACwFOAAsBUAALAVMACwFUAAsBVQALAVYACwFXAAsBWQALAVsACwFcAAsBXQALAV8ACwFgAAsBeQALAXoACwF7AAsBfQALAfgACwH6AAsB/AALAf4ACwIBAAsCAgALAgMACwIEAAsCBQALAgcACwIJAAsCCgALAgsACwINAAsCDgALAokACwKLAAsCjQALAo8ACwKSAAsCkwALApQACwKVAAsClgALApgACwKaAAsCmwALApwACwKeAAsCnwALAxoACwMcAAsDHgALAyAACwMjAAsDJAALAyUACwMmAAsDJwALAykACwMrAAsDLAALAy0ACwMvAAsDMAALA6sACwOtAAsDrwALA7EACwO0AAsDtQALA7YACwO3AAsDuAALA7oACwO8AAsDvQALA74ACwPAAAsDwQALBDwACwQ+AAsEQAALBEIACwRFAAsERgALBEcACwRIAAsESQALBEsACwRNAAsETgALBE8ACwRRAAsEUgALBJsACwS/AAsE5gALBQoACwUNAAsFDwALBREACwUTAAsFFQALBRcACwUYAAsFGwALBTQACwVRAAsFUwALBVUACwVXAAsFWQALBVsACwVdAAsFXwALBXwACwV/AAsFggALBYUACwWIAAsFiwALBY4ACwWRAAsFkwALBg4ACwYQAAsGEgALBhQACwYXAAsGGAALBhkACwYaAAsGGwALBh0ACwYfAAsGIAALBiEACwYjAAsGJAALBp8ACwahAAsGpAALBqYACwapAAsGqgALBqsACwasAAsGrQALBq8ACwaxAAsGsgALBrMACwa1AAsGtgALBzEACwczAAsHNQALBzcACwc6AAsHOwALBzwACwc9AAsHPgALB0AACwdCAAsHQwALB0QACwdGAAsHRwALB8IACwfEAAsHxwALB8kACwfMAAsHzQALB84ACwfPAAsH0AALB9IACwfUAAsH1QALB9YACwfYAAsH2QALCFwACwiAAAsIpAALCMcACwjuAAsJDgALCTUACwlcAAsJfAALCaAACwnEAAsJxgALCckACwnLAAsJzQALCc8ACwnSAAsJ1QALCdcACwnZAAsJ3AALCd4ACwngAAsJ4wALCeYACwnnAAsJ7AALCgUACwoKAAsKDAALChEACwoUAAsKFgALCl8ACwqDAAsKqgALCs4ACwrRAAsK0wALCtUACwrXAAsK2QALCtsACwrcAAsK3wALCvgACwsdAAsLHwALCyEACwsjAAsLJQALCycACwspAAsLKwALCy0ACwsvAAsLVAALC1cACwtaAAsLXQALC2AACwtjAAsLZgALC2kACwtsAAsLbwALC3EACwvsAAsL7gALC/EACwvzAAsL9gALC/cACwv4AAsL+QALC/oACwv8AAsL/gALC/8ACwwAAAsMAgALDAMACwwUAAsMFQALDBcACwySAAsMlAALDJYACwyYAAsMmwALDJwACwydAAsMngALDJ8ACwyhAAsMowALDKQACwylAAsMpwALDKgACw0jAAsNJQALDSgACw0qAAsNLQALDS4ACw0vAAsNMAALDTEACw0zAAsNNQALDTYACw03AAsNOQALDToACw1LAAsNTAALDU4ACw3JAAsNywALDc0ACw3PAAsN0gALDdMACw3UAAsN1QALDdYACw3YAAsN2gALDdsACw3cAAsN3gALDd8ACw5aAAsOXAALDl8ACw5hAAsOZAALDmUACw5mAAsOZwALDmgACw5qAAsObAALDm0ACw5uAAsOcAALDnEACw6CAAsOgwALDoUACw8AAAsPAgALDwQACw8GAAsPCQALDwoACw8LAAsPDAALDw0ACw8PAAsPEQALDxIACw8TAAsPFQALDxYACw+RAAsPkwALD5YACw+YAAsPmwALD5wACw+dAAsPngALD58ACw+hAAsPowALD6QACw+lAAsPpwALD6gACw/BAAsPwgALD8MACw/FAAsQQAALEEIACxBEAAsQRgALEEkACxBKAAsQSwALEEwACxBNAAsQTwALEFEACxBSAAsQUwALEFUACxBWAAsQ0QALENMACxDWAAsQ2AALENsACxDcAAsQ3QALEN4ACxDfAAsQ4QALEOMACxDkAAsQ5QALEOcACxDoAAsRBQALER4ACxEjAAsRJgALESsACxEuAAsRMAALETYACxHJAAsR7AALEgwACxIsAAsSLgALEjAACxIyAAsSNAALEjcACxI4AAsSOQALEjwACxI9AAsSPwALEkAACxJDAAsSRgALEkcACxJIAAsSSwALEkwACxJRAAsSagALEnMACxJ1AAsSdwALEoAACxKDAAsShgALEogACxLRAAsS9QALExwACxNAAAsTQwALE0UACxNHAAsTSQALE0sACxNNAAsTTgALE1EACxNqAAsTiwALE40ACxOPAAsTkQALE5MACxOVAAsTlwALE5kACxObAAsTvAALE78ACxPCAAsTxQALE8gACxPLAAsTzgALE9EACxPUAAsT1gALFFEACxRTAAsUVQALFFcACxRaAAsUWwALFFwACxRdAAsUXgALFGAACxRiAAsUYwALFGQACxRmAAsUZwALFOIACxTkAAsU5gALFOgACxTrAAsU7AALFO0ACxTuAAsU7wALFPEACxTzAAsU9AALFPUACxT3AAsU+AALFXMACxV1AAsVeAALFXoACxV9AAsVfgALFX8ACxWAAAsVgQALFYMACxWFAAsVhgALFYcACxWJAAsVigALFaMACxWkAAsVpQALFacACxYiAAsWJAALFiYACxYoAAsWKwALFiwACxYtAAsWLgALFi8ACxYxAAsWMwALFjQACxY1AAsWNwALFjgACxazAAsWtQALFrcACxa5AAsWvAALFr0ACxa+AAsWvwALFsAACxbCAAsWxAALFsUACxbGAAsWyAALFskACxdEAAsXRgALF0gACxdKAAsXTQALF04ACxdPAAsXUAALF1EACxdTAAsXVQALF1YACxdXAAsXWQALF1oACxfVAAsX1wALF9kACxfbAAsX3gALF98ACxfgAAsX4QALF+IACxfkAAsX5gALF+cACxfoAAsX6gALF+sACxhmAAsYaAALGGoACxhsAAsYbwALGHAACxhxAAsYcgALGHMACxh1AAsYdwALGHgACxh5AAsYewALGHwACxjFAAsY6QALGRAACxk0AAsZNwALGTkACxk7AAsZPQALGT8ACxlBAAsZQgALGUUACxleAAsZewALGX0ACxl/AAsZgQALGYMACxmFAAsZhwALGYkACxmmAAsZqQALGawACxmvAAsZsgALGbUACxm4AAsZuwALGb0ACxo4AAsaOgALGjwACxo+AAsaQQALGkIACxpDAAsaRAALGkUACxpHAAsaSQALGkoACxpLAAsaTQALGk4ACxrJAAsaywALGs0ACxrPAAsa0gALGtMACxrUAAsa1QALGtYACxrYAAsa2gALGtsACxrcAAsa3gALGt8ACxtaAAsbXAALG14ACxtgAAsbYwALG2QACxtlAAsbZgALG2cACxtpAAsbawALG2wACxttAAsbbwALG3AACxvrAAsb7QALG/AACxvyAAsb9QALG/YACxv3AAsb+AALG/kACxv7AAsb/QALG/4ACxv/AAscAQALHAIACxx9AAscfwALHIEACxyDAAschgALHIcACxyIAAsciQALHIoACxyMAAscjgALHI8ACxyQAAsckgALHJMACx0OAAsdEAALHRIACx0UAAsdFwALHRgACx0ZAAsdGgALHRsACx0dAAsdHwALHSAACx0hAAsdIwALHSQACx2fAAsdoQALHaQACx2mAAsdqQALHaoACx2rAAsdrAALHa0ACx2vAAsdsQALHbIACx2zAAsdtQALHbYACx3HAAsdzAALHc8ACx3RAAseCgALHg0ACx4PAAseEgALHhUACx4YAAseGwALHiAACx7DAAse5wALHwsACx8rAAsfUgALH3kACx+ZAAsfwAALH+QACyAHAAsgLgALIFIACyB2AAsgmgALIMEACyDCAAsgxAALIMYACyDJAAsgywALIM4ACyDQAAsg0gALINUACyDXAAsg2QALINwACyDfAAsg4QALIOMACyDlAAsg6AALIOsACyDuAAsg8wALIQwACyERAAshEwALIRgACyEbAAshHQALIWYACyGKAAshsQALIdUACyHYAAsh2gALIdwACyHeAAsh4AALIeIACyHjAAsh5gALIf8ACyIkAAsiJgALIigACyIqAAsiLAALIi4ACyIwAAsiMgALIjQACyI2AAsiWwALIl4ACyJhAAsiZAALImcACyJqAAsibQALInAACyJzAAsidgALIngACyLzAAsi9QALIvgACyL6AAsi/QALIv4ACyL/AAsjAAALIwEACyMDAAsjBQALIwYACyMHAAsjCQALIwoACyMbAAsjHAALIx4ACyOZAAsjmwALI50ACyOfAAsjogALI6MACyOkAAsjpQALI6YACyOoAAsjqgALI6sACyOsAAsjrgALI68ACyQqAAskLAALJC8ACyQxAAskNAALJDUACyQ2AAskNwALJDgACyQ6AAskPAALJD0ACyQ+AAskQAALJEEACyRSAAskVwALJFoACyRcAAskbQALJHoACyR9AAskgAALJIMACySFAAskoAALJK4ACyS6AAslNQALJTcACyU5AAslOwALJT4ACyU/AAslQAALJUEACyVCAAslRAALJUYACyVHAAslSAALJUoACyVLAAslxgALJcgACyXLAAslzQALJdAACyXRAAsl0gALJdMACyXUAAsl1gALJdgACyXZAAsl2gALJdwACyXdAAsl7gALJe8ACyXxAAsmbAALJm4ACyZwAAsmcgALJnUACyZ2AAsmdwALJngACyZ5AAsmewALJn0ACyZ+AAsmfwALJoEACyaCAAsm/QALJv8ACycCAAsnBAALJwcACycIAAsnCQALJwoACycLAAsnDQALJw8ACycQAAsnEQALJxMACycUAAsnLQALJy4ACycvAAsnMQALJ6wACyeuAAsnsAALJ7IACye1AAsntgALJ7cACye4AAsnuQALJ7sACye9AAsnvgALJ78ACyfBAAsnwgALKD0ACyg/AAsoQgALKEQACyhHAAsoSAALKEkACyhKAAsoSwALKE0ACyhPAAsoUAALKFEACyhTAAsoVAALKGwACyiFAAsotgALKLkACyi8AAsovwALKMIACyjFAAsoyAALKMsACyjOAAso0QALKNQACyjXAAso2gALKQsACykOAAspEQALKRQACykXAAspGgALKR0ACykgAAspIwALKSYACykpAAspLAALKS8ACykxAAspPwALKU4ACylmAAspeQALKYUACymZAAspowALKb4ACynKAAsqXQALKoAACyqgAAsqwAALKsIACyrEAAsqxgALKsgACyrLAAsqzAALKs0ACyrQAAsq0QALKtMACyrUAAsq1gALKtkACyraAAsq2wALKt4ACyrfAAsq5AALKv0ACysGAAsrCAALKwoACysTAAsrFgALKxkACysbAAsrZAALK4gACyuvAAsr0wALK9YACyvYAAsr2gALK9wACyveAAsr4AALK+EACyvkAAsr/QALLB4ACywgAAssIgALLCQACywmAAssKAALLCoACywsAAssLgALLE8ACyxSAAssVQALLFgACyxbAAssXgALLGEACyxkAAssZwALLGkACyzkAAss5gALLOgACyzqAAss7QALLO4ACyzvAAss8AALLPEACyzzAAss9QALLPYACyz3AAss+QALLPoACy11AAstdwALLXkACy17AAstfgALLX8ACy2AAAstgQALLYIACy2EAAsthgALLYcACy2IAAstigALLYsACy4GAAsuCAALLgsACy4NAAsuEAALLhEACy4SAAsuEwALLhQACy4WAAsuGAALLhkACy4aAAsuHAALLh0ACy42AAsuNwALLjgACy46AAsutQALLrcACy65AAsuuwALLr4ACy6/AAsuwAALLsEACy7CAAsuxAALLsYACy7HAAsuyAALLsoACy7LAAsvRgALL0gACy9KAAsvTAALL08ACy9QAAsvUQALL1IACy9TAAsvVQALL1cACy9YAAsvWQALL1sACy9cAAsv1wALL9kACy/bAAsv3QALL+AACy/hAAsv4gALL+MACy/kAAsv5gALL+gACy/pAAsv6gALL+wACy/tAAswaAALMGoACzBsAAswbgALMHEACzByAAswcwALMHQACzB1AAswdwALMHkACzB6AAswewALMH0ACzB+AAsw+QALMPsACzD9AAsw/wALMQIACzEDAAsxBAALMQUACzEGAAsxCAALMQoACzELAAsxDAALMQ4ACzEPAAsxWAALMXwACzGjAAsxxwALMcoACzHMAAsxzgALMdAACzHSAAsx1AALMdUACzHYAAsx8QALMg4ACzIQAAsyEgALMhQACzIWAAsyGAALMhoACzIcAAsyOQALMjwACzI/AAsyQgALMkUACzJIAAsySwALMk4ACzJQAAsyywALMs0ACzLPAAsy0QALMtQACzLVAAsy1gALMtcACzLYAAsy2gALMtwACzLdAAsy3gALMuAACzLhAAszXAALM14ACzNgAAszYgALM2UACzNmAAszZwALM2gACzNpAAszawALM20ACzNuAAszbwALM3EACzNyAAsz7QALM+8ACzPxAAsz8wALM/YACzP3AAsz+AALM/kACzP6AAsz/AALM/4ACzP/AAs0AAALNAIACzQDAAs0fgALNIAACzSCAAs0hAALNIcACzSIAAs0iQALNIoACzSLAAs0jQALNI8ACzSQAAs0kQALNJMACzSUAAs1DwALNREACzUTAAs1FQALNRgACzUZAAs1GgALNRsACzUcAAs1HgALNSAACzUhAAs1IgALNSQACzUlAAs1oAALNaIACzWkAAs1pgALNakACzWqAAs1qwALNawACzWtAAs1rwALNbEACzWyAAs1swALNbUACzW2AAs2MQALNjMACzY1AAs2NwALNjoACzY7AAs2PAALNj0ACzY+AAs2QAALNkIACzZDAAs2RAALNkYACzZHAAs22gALNv0ACzcdAAs3PQALNz8ACzdBAAs3QwALN0UACzdIAAs3SQALN0oACzdNAAs3TgALN1AACzdRAAs3VAALN1cACzdYAAs3WQALN1wACzddAAs3YgALN3sACzeEAAs3hgALN4gACzeRAAs3lAALN5cACzeZAAs34gALOAYACzgtAAs4UQALOFQACzhWAAs4WAALOFoACzhcAAs4XgALOF8ACzhiAAs4ewALOJwACzieAAs4oAALOKIACzikAAs4pgALOKgACziqAAs4rAALOM0ACzjQAAs40wALONYACzjZAAs43AALON8ACzjiAAs45QALOOcACzliAAs5ZAALOWYACzloAAs5awALOWwACzltAAs5bgALOW8ACzlxAAs5cwALOXQACzl1AAs5dwALOXgACznzAAs59QALOfcACzn5AAs5/AALOf0ACzn+AAs5/wALOgAACzoCAAs6BAALOgUACzoGAAs6CAALOgkACzqEAAs6hgALOokACzqLAAs6jgALOo8ACzqQAAs6kQALOpIACzqUAAs6lgALOpcACzqYAAs6mgALOpsACzq0AAs6tQALOrYACzq4AAs7MwALOzUACzs3AAs7OQALOzwACzs9AAs7PgALOz8ACztAAAs7QgALO0QACztFAAs7RgALO0gACztJAAs7xAALO8YACzvIAAs7ygALO80ACzvOAAs7zwALO9AACzvRAAs70wALO9UACzvWAAs71wALO9kACzvaAAs8VQALPFcACzxZAAs8WwALPF4ACzxfAAs8YAALPGEACzxiAAs8ZAALPGYACzxnAAs8aAALPGoACzxrAAs85gALPOgACzzqAAs87AALPO8ACzzwAAs88QALPPIACzzzAAs89QALPPcACzz4AAs8+QALPPsACzz8AAs9dwALPXkACz17AAs9fQALPYAACz2BAAs9ggALPYMACz2EAAs9hgALPYgACz2JAAs9igALPYwACz2NAAs91gALPfoACz4hAAs+RQALPkgACz5KAAs+TAALPk4ACz5QAAs+UgALPlMACz5WAAs+bwALPowACz6OAAs+kAALPpIACz6UAAs+lgALPpgACz6aAAs+twALProACz69AAs+wAALPsMACz7GAAs+yQALPswACz7OAAs/SQALP0sACz9NAAs/TwALP1IACz9TAAs/VAALP1UACz9WAAs/WAALP1oACz9bAAs/XAALP14ACz9fAAs/2gALP9wACz/fAAs/4QALP+QACz/lAAs/5gALP+cACz/oAAs/6gALP+wACz/tAAs/7gALP/AACz/xAAtAbAALQG4AC0BwAAtAcgALQHUAC0B2AAtAdwALQHgAC0B5AAtAewALQH0AC0B+AAtAfwALQIEAC0CCAAtA/QALQP8AC0ECAAtBBAALQQcAC0EIAAtBCQALQQoAC0ELAAtBDQALQQ8AC0EQAAtBEQALQRMAC0EUAAtBlwALQbsAC0HfAAtCAgALQikAC0JJAAtCcAALQpcAC0K3AAtC2wALQv8AC0MBAAtDBAALQwYAC0MIAAtDCgALQw0AC0MQAAtDEgALQxQAC0MXAAtDGQALQxsAC0MeAAtDIQALQyIAC0MnAAtDQAALQ0UAC0NHAAtDTAALQ08AC0NRAAtDmgALQ74AC0PlAAtECQALRAwAC0QOAAtEEAALRBIAC0QUAAtEFgALRBcAC0QaAAtEMwALRFgAC0RaAAtEXAALRF4AC0RgAAtEYgALRGQAC0RmAAtEaAALRGoAC0SPAAtEkgALRJUAC0SYAAtEmwALRJ4AC0ShAAtEpAALRKcAC0SqAAtErAALRScAC0UpAAtFLAALRS4AC0UxAAtFMgALRTMAC0U0AAtFNQALRTcAC0U5AAtFOgALRTsAC0U9AAtFPgALRU8AC0VQAAtFUgALRc0AC0XPAAtF0QALRdMAC0XWAAtF1wALRdgAC0XZAAtF2gALRdwAC0XeAAtF3wALReAAC0XiAAtF4wALRl4AC0ZgAAtGYwALRmUAC0ZoAAtGaQALRmoAC0ZrAAtGbAALRm4AC0ZwAAtGcQALRnIAC0Z0AAtGdQALRoYAC0aLAAtGjgALRpAAC0ahAAtGsgALRrUAC0a4AAtGuwALRr4AC0bAAAtG2wALRvMAC0cCAAtHfQALR38AC0eBAAtHgwALR4YAC0eHAAtHiAALR4kAC0eKAAtHjAALR44AC0ePAAtHkAALR5IAC0eTAAtIDgALSBAAC0gTAAtIFQALSBgAC0gZAAtIGgALSBsAC0gcAAtIHgALSCAAC0ghAAtIIgALSCQAC0glAAtINgALSDcAC0g5AAtItAALSLYAC0i4AAtIugALSL0AC0i+AAtIvwALSMAAC0jBAAtIwwALSMUAC0jGAAtIxwALSMkAC0jKAAtJRQALSUcAC0lKAAtJTAALSU8AC0lQAAtJUQALSVIAC0lTAAtJVQALSVcAC0lYAAtJWQALSVsAC0lcAAtJdQALSXYAC0l3AAtJeQALSfQAC0n2AAtJ+AALSfoAC0n9AAtJ/gALSf8AC0oAAAtKAQALSgMAC0oFAAtKBgALSgcAC0oJAAtKCgALSoUAC0qHAAtKigALSowAC0qPAAtKkAALSpEAC0qSAAtKkwALSpUAC0qXAAtKmAALSpkAC0qbAAtKnAALSroAC0rTAAtK9AALSvcAC0r6AAtK/QALSwAAC0sDAAtLBgALSwkAC0sMAAtLLQALSzAAC0szAAtLNgALSzkAC0s8AAtLPwALS0IAC0tFAAtLRwALS1AAC0tiAAtLggALS50AC0uvAAtLvgALS9YAC0xpAAtMjAALTKwAC0zMAAtMzgALTNAAC0zSAAtM1AALTNcAC0zYAAtM2QALTNwAC0zdAAtM3wALTOAAC0ziAAtM5QALTOYAC0znAAtM6gALTOsAC0zwAAtNCQALTRIAC00UAAtNFgALTR8AC00iAAtNJQALTScAC01wAAtNlAALTbsAC03fAAtN4gALTeQAC03mAAtN6AALTeoAC03sAAtN7QALTfAAC04JAAtOKgALTiwAC04uAAtOMAALTjIAC040AAtONgALTjgAC046AAtOWwALTl4AC05hAAtOZAALTmcAC05qAAtObQALTnAAC05zAAtOdQALTvAAC07yAAtO9AALTvYAC075AAtO+gALTvsAC078AAtO/QALTv8AC08BAAtPAgALTwMAC08FAAtPBgALT4EAC0+DAAtPhQALT4cAC0+KAAtPiwALT4wAC0+NAAtPjgALT5AAC0+SAAtPkwALT5QAC0+WAAtPlwALUBIAC1AUAAtQFwALUBkAC1AcAAtQHQALUB4AC1AfAAtQIAALUCIAC1AkAAtQJQALUCYAC1AoAAtQKQALUEIAC1BDAAtQRAALUEYAC1DBAAtQwwALUMUAC1DHAAtQygALUMsAC1DMAAtQzQALUM4AC1DQAAtQ0gALUNMAC1DUAAtQ1gALUNcAC1FSAAtRVAALUVYAC1FYAAtRWwALUVwAC1FdAAtRXgALUV8AC1FhAAtRYwALUWQAC1FlAAtRZwALUWgAC1HjAAtR5QALUecAC1HpAAtR7AALUe0AC1HuAAtR7wALUfAAC1HyAAtR9AALUfUAC1H2AAtR+AALUfkAC1J0AAtSdgALUngAC1J6AAtSfQALUn4AC1J/AAtSgAALUoEAC1KDAAtShQALUoYAC1KHAAtSiQALUooAC1MFAAtTBwALUwkAC1MLAAtTDgALUw8AC1MQAAtTEQALUxIAC1MUAAtTFgALUxcAC1MYAAtTGgALUxsAC1NkAAtTiAALU68AC1PTAAtT1gALU9gAC1PaAAtT3AALU94AC1PgAAtT4QALU+QAC1P9AAtUGgALVBwAC1QeAAtUIAALVCIAC1QkAAtUJgALVCgAC1RFAAtUSAALVEsAC1ROAAtUUQALVFQAC1RXAAtUWgALVFwAC1TXAAtU2QALVNsAC1TdAAtU4AALVOEAC1TiAAtU4wALVOQAC1TmAAtU6AALVOkAC1TqAAtU7AALVO0AC1VoAAtVagALVWwAC1VuAAtVcQALVXIAC1VzAAtVdAALVXUAC1V3AAtVeQALVXoAC1V7AAtVfQALVX4AC1X5AAtV+wALVf0AC1X/AAtWAgALVgMAC1YEAAtWBQALVgYAC1YIAAtWCgALVgsAC1YMAAtWDgALVg8AC1aKAAtWjAALVo4AC1aQAAtWkwALVpQAC1aVAAtWlgALVpcAC1aZAAtWmwALVpwAC1adAAtWnwALVqAAC1cbAAtXHQALVx8AC1chAAtXJAALVyUAC1cmAAtXJwALVygAC1cqAAtXLAALVy0AC1cuAAtXMAALVzEAC1esAAtXrgALV7AAC1eyAAtXtQALV7YAC1e3AAtXuAALV7kAC1e7AAtXvQALV74AC1e/AAtXwQALV8IAC1g9AAtYPwALWEEAC1hDAAtYRgALWEcAC1hIAAtYSQALWEoAC1hMAAtYTgALWE8AC1hQAAtYUgALWFMAC1jmAAtZCQALWSkAC1lJAAtZSwALWU0AC1lPAAtZUQALWVQAC1lVAAtZVgALWVkAC1laAAtZXAALWV0AC1lfAAtZYgALWWMAC1lkAAtZZwALWWgAC1ltAAtZhgALWY8AC1mRAAtZkwALWZwAC1mfAAtZogALWaQAC1ntAAtaEQALWjgAC1pcAAtaXwALWmEAC1pjAAtaZQALWmcAC1ppAAtaagALWm0AC1qGAAtapwALWqkAC1qrAAtarQALWq8AC1qxAAtaswALWrUAC1q3AAta2AALWtsAC1reAAta4QALWuQAC1rnAAta6gALWu0AC1rwAAta8gALW20AC1tvAAtbcQALW3MAC1t2AAtbdwALW3gAC1t5AAtbegALW3wAC1t+AAtbfwALW4AAC1uCAAtbgwALW/4AC1wAAAtcAgALXAQAC1wHAAtcCAALXAkAC1wKAAtcCwALXA0AC1wPAAtcEAALXBEAC1wTAAtcFAALXI8AC1yRAAtclAALXJYAC1yZAAtcmgALXJsAC1ycAAtcnQALXJ8AC1yhAAtcogALXKMAC1ylAAtcpgALXL8AC1zAAAtcwQALXMMAC10+AAtdQAALXUIAC11EAAtdRwALXUgAC11JAAtdSgALXUsAC11NAAtdTwALXVAAC11RAAtdUwALXVQAC13PAAtd0QALXdMAC13VAAtd2AALXdkAC13aAAtd2wALXdwAC13eAAtd4AALXeEAC13iAAtd5AALXeUAC15gAAteYgALXmQAC15mAAteaQALXmoAC15rAAtebAALXm0AC15vAAtecQALXnIAC15zAAtedQALXnYAC17xAAte8wALXvUAC173AAte+gALXvsAC178AAte/QALXv4AC18AAAtfAgALXwMAC18EAAtfBgALXwcAC1+CAAtfhAALX4YAC1+IAAtfiwALX4wAC1+NAAtfjgALX48AC1+RAAtfkwALX5QAC1+VAAtflwALX5gAC1/hAAtgBQALYCwAC2BQAAtgUwALYFUAC2BXAAtgWQALYFsAC2BdAAtgXgALYGEAC2B6AAtglwALYJkAC2CbAAtgnQALYJ8AC2ChAAtgowALYKUAC2DCAAtgxQALYMgAC2DLAAtgzgALYNEAC2DUAAtg1wALYNkAC2FUAAthVgALYVgAC2FaAAthXQALYV4AC2FfAAthYAALYWEAC2FjAAthZQALYWYAC2FnAAthaQALYWoAC2HlAAth5wALYekAC2HrAAth7gALYe8AC2HwAAth8QALYfIAC2H0AAth9gALYfcAC2H4AAth+gALYfsAC2J2AAtieAALYnoAC2J8AAtifwALYoAAC2KBAAtiggALYoMAC2KFAAtihwALYogAC2KJAAtiiwALYowAC2MHAAtjCQALYwwAC2MOAAtjEQALYxIAC2MTAAtjFAALYxUAC2MXAAtjGQALYxoAC2MbAAtjHQALYx4AC2OZAAtjmwALY50AC2OfAAtjogALY6MAC2OkAAtjpQALY6YAC2OoAAtjqgALY6sAC2OsAAtjrgALY68AC2QqAAtkLAALZC4AC2QwAAtkMwALZDQAC2Q1AAtkNgALZDcAC2Q5AAtkOwALZDwAC2Q9AAtkPwALZEAAC2S7AAtkvQALZL8AC2TBAAtkxAALZMUAC2TGAAtkxwALZMgAC2TKAAtkzAALZM0AC2TOAAtk0AALZNEAC2VkAAtlhwALZacAC2XHAAtlyQALZcsAC2XNAAtlzwALZdIAC2XTAAtl1AALZdcAC2XYAAtl2gALZdsAC2XdAAtl4AALZeEAC2XiAAtl5QALZeYAC2XvAAtmCAALZhEAC2YTAAtmFQALZh4AC2YhAAtmJAALZiYAC2ZvAAtmkwALZroAC2beAAtm4QALZuMAC2blAAtm5wALZukAC2brAAtm7AALZu8AC2cIAAtnKQALZysAC2ctAAtnLwALZzEAC2czAAtnNQALZzcAC2c5AAtnWgALZ10AC2dgAAtnYwALZ2YAC2dpAAtnbAALZ28AC2dyAAtndAALZ+8AC2fxAAtn8wALZ/UAC2f4AAtn+QALZ/oAC2f7AAtn/AALZ/4AC2gAAAtoAQALaAIAC2gEAAtoBQALaIAAC2iCAAtohAALaIYAC2iJAAtoigALaIsAC2iMAAtojQALaI8AC2iRAAtokgALaJMAC2iVAAtolgALaREAC2kTAAtpFgALaRgAC2kbAAtpHAALaR0AC2keAAtpHwALaSEAC2kjAAtpJAALaSUAC2knAAtpKAALaUEAC2lCAAtpQwALaUUAC2nAAAtpwgALacQAC2nGAAtpyQALacoAC2nLAAtpzAALac0AC2nPAAtp0QALadIAC2nTAAtp1QALadYAC2pRAAtqUwALalUAC2pXAAtqWgALalsAC2pcAAtqXQALal4AC2pgAAtqYgALamMAC2pkAAtqZgALamcAC2riAAtq5AALauYAC2roAAtq6wALauwAC2rtAAtq7gALau8AC2rxAAtq8wALavQAC2r1AAtq9wALavgAC2tzAAtrdQALa3cAC2t5AAtrfAALa30AC2t+AAtrfwALa4AAC2uCAAtrhAALa4UAC2uGAAtriAALa4kAC2wEAAtsBgALbAgAC2wKAAtsDQALbA4AC2wPAAtsEAALbBEAC2wTAAtsFQALbBYAC2wXAAtsGQALbBoAC2xjAAtshwALbK4AC2zSAAts1QALbNcAC2zZAAts2wALbN0AC2zfAAts4AALbOMAC2z8AAttGQALbRsAC20dAAttHwALbSEAC20jAAttJQALbScAC21EAAttRwALbUoAC21NAAttUAALbVMAC21WAAttWQALbVsAC23WAAtt2AALbdoAC23cAAtt3wALbeAAC23hAAtt4gALbeMAC23lAAtt5wALbegAC23pAAtt6wALbewAC25nAAtuaQALbmsAC25tAAtucAALbnEAC25yAAtucwALbnQAC252AAtueAALbnkAC256AAtufAALbn0AC274AAtu+gALbvwAC27+AAtvAQALbwIAC28DAAtvBAALbwUAC28HAAtvCQALbwoAC28LAAtvDQALbw4AC2+JAAtviwALb40AC2+PAAtvkgALb5MAC2+UAAtvlQALb5YAC2+YAAtvmgALb5sAC2+cAAtvngALb58AC3AaAAtwHAALcB4AC3AgAAtwIwALcCQAC3AlAAtwJgALcCcAC3ApAAtwKwALcCwAC3AtAAtwLwALcDAAC3CrAAtwrQALcK8AC3CxAAtwtAALcLUAC3C2AAtwtwALcLgAC3C6AAtwvAALcL0AC3C+AAtwwAALcMEAC3E8AAtxPgALcUAAC3FCAAtxRQALcUYAC3FHAAtxSAALcUkAC3FLAAtxTQALcU4AC3FPAAtxUQALcVIAC3HlAAtyCAALcigAC3JIAAtySgALckwAC3JOAAtyUAALclMAC3JUAAtyVQALclgAC3JZAAtyWwALclwAC3JeAAtyYQALcmIAC3JjAAtyZgALcmcAC3JsAAtyhQALco4AC3KQAAtykgALcpsAC3KeAAtyoQALcqMAC3LsAAtzEAALczcAC3NbAAtzXgALc2AAC3NiAAtzZAALc2YAC3NoAAtzaQALc2wAC3OFAAtzpgALc6gAC3OqAAtzrAALc64AC3OwAAtzsgALc7QAC3O2AAtz1wALc9oAC3PdAAtz4AALc+MAC3PmAAtz6QALc+wAC3PvAAtz8QALdGwAC3RuAAt0cAALdHIAC3R1AAt0dgALdHcAC3R4AAt0eQALdHsAC3R9AAt0fgALdH8AC3SBAAt0ggALdP0AC3T/AAt1AQALdQMAC3UGAAt1BwALdQgAC3UJAAt1CgALdQwAC3UOAAt1DwALdRAAC3USAAt1EwALdY4AC3WQAAt1kwALdZUAC3WYAAt1mQALdZoAC3WbAAt1nAALdZ4AC3WgAAt1oQALdaIAC3WkAAt1pQALdb4AC3W/AAt1wAALdcIAC3Y9AAt2PwALdkEAC3ZDAAt2RgALdkcAC3ZIAAt2SQALdkoAC3ZMAAt2TgALdk8AC3ZQAAt2UgALdlMAC3bOAAt20AALdtIAC3bUAAt21wALdtgAC3bZAAt22gALdtsAC3bdAAt23wALduAAC3bhAAt24wALduQAC3dfAAt3YQALd2MAC3dlAAt3aAALd2kAC3dqAAt3awALd2wAC3duAAt3cAALd3EAC3dyAAt3dAALd3UAC3fwAAt38gALd/QAC3f2AAt3+QALd/oAC3f7AAt3/AALd/0AC3f/AAt4AQALeAIAC3gDAAt4BQALeAYAC3iBAAt4gwALeIUAC3iHAAt4igALeIsAC3iMAAt4jQALeI4AC3iQAAt4kgALeJMAC3iUAAt4lgALeJcAC3jgAAt5BAALeSsAC3lPAAt5UgALeVQAC3lWAAt5WAALeVoAC3lcAAt5XQALeWAAC3l5AAt5lgALeZgAC3maAAt5nAALeZ4AC3mgAAt5ogALeaQAC3nBAAt5xAALeccAC3nKAAt5zQALedAAC3nTAAt51gALedgAC3pTAAt6VQALelcAC3pZAAt6XAALel0AC3peAAt6XwALemAAC3piAAt6ZAALemUAC3pmAAt6aAALemkAC3rkAAt65gALeugAC3rqAAt67QALeu4AC3rvAAt68AALevEAC3rzAAt69QALevYAC3r3AAt6+QALevoAC3t1AAt7dwALe3kAC3t7AAt7fgALe38AC3uAAAt7gQALe4IAC3uEAAt7hgALe4cAC3uIAAt7igALe4sAC3wGAAt8CAALfAoAC3wMAAt8DwALfBAAC3wRAAt8EgALfBMAC3wVAAt8FwALfBgAC3wZAAt8GwALfBwAC3yXAAt8mQALfJsAC3ydAAt8oAALfKEAC3yiAAt8owALfKQAC3ymAAt8qAALfKkAC3yqAAt8rAALfK0AC30oAAt9KgALfSwAC30uAAt9MQALfTIAC30zAAt9NAALfTUAC303AAt9OQALfToAC307AAt9PQALfT4AC325AAt9uwALfb0AC32/AAt9wgALfcMAC33EAAt9xQALfcYAC33IAAt9ygALfcsAC33MAAt9zgALfc8AC35iAAt+hQALfqUAC37FAAt+xwALfskAC37LAAt+zQALftAAC37RAAt+0gALftUAC37WAAt+2AALftkAC37cAAt+3wALfuAAC37hAAt+5AALfuUAC37qAAt/AwALfwwAC38OAAt/EAALfxkAC38cAAt/HwALfyEAC39qAAt/jgALf7UAC3/ZAAt/3AALf94AC3/gAAt/4gALf+QAC3/mAAt/5wALf+oAC4ADAAuAJAALgCYAC4AoAAuAKgALgCwAC4AuAAuAMAALgDIAC4A0AAuAVQALgFgAC4BbAAuAXgALgGEAC4BkAAuAZwALgGoAC4BtAAuAbwALgOoAC4DsAAuA7gALgPAAC4DzAAuA9AALgPUAC4D2AAuA9wALgPkAC4D7AAuA/AALgP0AC4D/AAuBAAALgXsAC4F9AAuBfwALgYEAC4GEAAuBhQALgYYAC4GHAAuBiAALgYoAC4GMAAuBjQALgY4AC4GQAAuBkQALggwAC4IOAAuCEQALghMAC4IWAAuCFwALghgAC4IZAAuCGgALghwAC4IeAAuCHwALgiAAC4IiAAuCIwALgjwAC4I9AAuCPgALgkAAC4K7AAuCvQALgr8AC4LBAAuCxAALgsUAC4LGAAuCxwALgsgAC4LKAAuCzAALgs0AC4LOAAuC0AALgtEAC4NMAAuDTgALg1AAC4NSAAuDVQALg1YAC4NXAAuDWAALg1kAC4NbAAuDXQALg14AC4NfAAuDYQALg2IAC4PdAAuD3wALg+EAC4PjAAuD5gALg+cAC4PoAAuD6QALg+oAC4PsAAuD7gALg+8AC4PwAAuD8gALg/MAC4RuAAuEcAALhHIAC4R0AAuEdwALhHgAC4R5AAuEegALhHsAC4R9AAuEfwALhIAAC4SBAAuEgwALhIQAC4T/AAuFAQALhQMAC4UFAAuFCAALhQkAC4UKAAuFCwALhQwAC4UOAAuFEAALhREAC4USAAuFFAALhRUAC4VeAAuFggALhakAC4XNAAuF0AALhdIAC4XUAAuF1gALhdgAC4XaAAuF2wALhd4AC4X3AAuGFAALhhYAC4YYAAuGGgALhhwAC4YeAAuGIAALhiIAC4Y/AAuGQgALhkUAC4ZIAAuGSwALhk4AC4ZRAAuGVAALhlYAC4bRAAuG0wALhtUAC4bXAAuG2gALhtsAC4bcAAuG3QALht4AC4bgAAuG4gALhuMAC4bkAAuG5gALhucAC4diAAuHZAALh2YAC4doAAuHawALh2wAC4dtAAuHbgALh28AC4dxAAuHcwALh3QAC4d1AAuHdwALh3gAC4fzAAuH9QALh/cAC4f5AAuH/AALh/0AC4f+AAuH/wALiAAAC4gCAAuIBAALiAUAC4gGAAuICAALiAkAC4iEAAuIhgALiIkAC4iLAAuIjgALiI8AC4iQAAuIkQALiJIAC4iUAAuIlgALiJcAC4iYAAuImgALiJsAC4kWAAuJGAALiRoAC4kcAAuJHwALiSAAC4khAAuJIgALiSMAC4klAAuJJwALiSgAC4kpAAuJKwALiSwAC4mnAAuJqQALiasAC4mtAAuJsAALibEAC4myAAuJswALibQAC4m2AAuJuAALibkAC4m6AAuJvAALib0AC4o4AAuKOgALij0AC4o/AAuKQgALikMAC4pEAAuKRQALikYAC4pIAAuKSgALiksAC4pMAAuKTgALik8AC4riAAuLBQALiyUAC4tFAAuLRwALi0kAC4tLAAuLTQALi1AAC4tRAAuLUgALi1UAC4tWAAuLWAALi1kAC4tbAAuLXgALi18AC4tgAAuLYwALi2QAC4tpAAuLggALi4sAC4uNAAuLjwALi5gAC4ubAAuLngALi6AAC4vpAAuMDQALjDQAC4xYAAuMWwALjF0AC4xfAAuMYQALjGMAC4xlAAuMZgALjGkAC4yCAAuMowALjKUAC4ynAAuMqQALjKsAC4ytAAuMrwALjLEAC4yzAAuM1AALjNcAC4zaAAuM3QALjOAAC4zjAAuM5gALjOkAC4zsAAuM7gALjWkAC41rAAuNbQALjW8AC41yAAuNcwALjXQAC411AAuNdgALjXgAC416AAuNewALjXwAC41+AAuNfwALjfoAC438AAuN/gALjgAAC44DAAuOBAALjgUAC44GAAuOBwALjgkAC44LAAuODAALjg0AC44PAAuOEAALjosAC46NAAuOkAALjpIAC46VAAuOlgALjpcAC46YAAuOmQALjpsAC46dAAuOngALjp8AC46hAAuOogALjrsAC468AAuOvQALjr8AC486AAuPPAALjz4AC49AAAuPQwALj0QAC49FAAuPRgALj0cAC49JAAuPSwALj0wAC49NAAuPTwALj1AAC4/LAAuPzQALj88AC4/RAAuP1AALj9UAC4/WAAuP1wALj9gAC4/aAAuP3AALj90AC4/eAAuP4AALj+EAC5BcAAuQXgALkGAAC5BiAAuQZQALkGYAC5BnAAuQaAALkGkAC5BrAAuQbQALkG4AC5BvAAuQcQALkHIAC5DtAAuQ7wALkPEAC5DzAAuQ9gALkPcAC5D4AAuQ+QALkPoAC5D8AAuQ/gALkP8AC5EAAAuRAgALkQMAC5F+AAuRgAALkYIAC5GEAAuRhwALkYgAC5GJAAuRigALkYsAC5GNAAuRjwALkZAAC5GRAAuRkwALkZQAC5HdAAuSAQALkigAC5JMAAuSTwALklEAC5JTAAuSVQALklcAC5JZAAuSWgALkl0AC5J2AAuSkwALkpUAC5KXAAuSmQALkpsAC5KdAAuSnwALkqEAC5K+AAuSwQALksQAC5LHAAuSygALks0AC5LQAAuS0wALktUAC5NQAAuTUgALk1QAC5NWAAuTWQALk1oAC5NbAAuTXAALk10AC5NfAAuTYQALk2IAC5NjAAuTZQALk2YAC5PhAAuT4wALk+UAC5PnAAuT6gALk+sAC5PsAAuT7QALk+4AC5PwAAuT8gALk/MAC5P0AAuT9gALk/cAC5RyAAuUdAALlHYAC5R4AAuUewALlHwAC5R9AAuUfgALlH8AC5SBAAuUgwALlIQAC5SFAAuUhwALlIgAC5UDAAuVBQALlQcAC5UJAAuVDAALlQ0AC5UOAAuVDwALlRAAC5USAAuVFAALlRUAC5UWAAuVGAALlRkAC5WUAAuVlgALlZgAC5WaAAuVnQALlZ4AC5WfAAuVoAALlaEAC5WjAAuVpQALlaYAC5WnAAuVqQALlaoAC5YlAAuWJwALlikAC5YrAAuWLgALli8AC5YwAAuWMQALljIAC5Y0AAuWNgALljcAC5Y4AAuWOgALljsAC5a2AAuWuAALlroAC5a8AAuWvwALlsAAC5bBAAuWwgALlsMAC5bFAAuWxwALlsgAC5bJAAuWywALlswAC5dfAAuXggALl6IAC5fCAAuXxAALl8YAC5fIAAuXygALl80AC5fOAAuXzwALl9IAC5fTAAuX1QALl9YAC5fYAAuX2wALl9wAC5fdAAuX4AALl+EAC5fmAAuX/wALmAgAC5gKAAuYDAALmBUAC5gYAAuYGwALmB0AC5hmAAuYigALmLEAC5jVAAuY2AALmNoAC5jcAAuY3gALmOAAC5jiAAuY4wALmOYAC5j/AAuZIAALmSIAC5kkAAuZJgALmSgAC5kqAAuZLAALmS4AC5kwAAuZUQALmVQAC5lXAAuZWgALmV0AC5lgAAuZYwALmWYAC5lpAAuZawALmeYAC5noAAuZ6gALmewAC5nvAAuZ8AALmfEAC5nyAAuZ8wALmfUAC5n3AAuZ+AALmfkAC5n7AAuZ/AALmncAC5p5AAuaewALmn0AC5qAAAuagQALmoIAC5qDAAuahAALmoYAC5qIAAuaiQALmooAC5qMAAuajQALmwgAC5sKAAubDQALmw8AC5sSAAubEwALmxQAC5sVAAubFgALmxgAC5saAAubGwALmxwAC5seAAubHwALmzgAC5s5AAubOgALmzwAC5u3AAubuQALm7sAC5u9AAubwAALm8EAC5vCAAubwwALm8QAC5vGAAubyAALm8kAC5vKAAubzAALm80AC5xIAAucSgALnEwAC5xOAAucUQALnFIAC5xTAAucVAALnFUAC5xXAAucWQALnFoAC5xbAAucXQALnF4AC5zZAAuc2wALnN0AC5zfAAuc4gALnOMAC5zkAAuc5QALnOYAC5zoAAuc6gALnOsAC5zsAAuc7gALnO8AC51qAAudbAALnW4AC51wAAudcwALnXQAC511AAuddgALnXcAC515AAudewALnXwAC519AAudfwALnYAAC537AAud/QALnf8AC54BAAueBAALngUAC54GAAueBwALnggAC54KAAueDAALng0AC54OAAueEAALnhEAC55aAAuefgALnqUAC57JAAuezAALns4AC57QAAue0gALntQAC57WAAue1wALntoAC57zAAufEAALnxIAC58UAAufFgALnxgAC58aAAufHAALnx4AC587AAufPgALn0EAC59EAAufRwALn0oAC59NAAufUAALn1IAC5/NAAufzwALn9EAC5/TAAuf1gALn9cAC5/YAAuf2QALn9oAC5/cAAuf3gALn98AC5/gAAuf4gALn+MAC6BeAAugYAALoGIAC6BkAAugZwALoGgAC6BpAAugagALoGsAC6BtAAugbwALoHAAC6BxAAugcwALoHQAC6DvAAug8QALoPMAC6D1AAug+AALoPkAC6D6AAug+wALoPwAC6D+AAuhAAALoQEAC6ECAAuhBAALoQUAC6GAAAuhggALoYQAC6GGAAuhiQALoYoAC6GLAAuhjAALoY0AC6GPAAuhkQALoZIAC6GTAAuhlQALoZYAC6IRAAuiEwALohUAC6IXAAuiGgALohsAC6IcAAuiHQALoh4AC6IgAAuiIgALoiMAC6IkAAuiJgALoicAC6KiAAuipAALoqYAC6KoAAuiqwALoqwAC6KtAAuirgALoq8AC6KxAAuiswALorQAC6K1AAuitwALorgAC6MzAAujNQALozcAC6M5AAujPAALoz0AC6M+AAujPwALo0AAC6NCAAujRAALo0UAC6NGAAujSAALo0kAC6PcAAuj/wALpB8AC6Q/AAukQQALpEMAC6RFAAukRwALpEoAC6RLAAukTAALpE8AC6RQAAukUgALpFMAC6RVAAukWAALpFkAC6RaAAukXQALpF4AC6RjAAukfAALpIUAC6SHAAukiQALpJIAC6SVAAukmAALpJoAC6TjAAulBwALpS4AC6VSAAulVQALpVcAC6VZAAulWwALpV0AC6VfAAulYAALpWMAC6V8AAulnQALpZ8AC6WhAAulowALpaUAC6WnAAulqQALpasAC6WtAAulzgALpdEAC6XUAAul1wALpdoAC6XdAAul4AALpeMAC6XmAAul6AALpmMAC6ZlAAumZwALpmkAC6ZsAAumbQALpm4AC6ZvAAumcAALpnIAC6Z0AAumdQALpnYAC6Z4AAumeQALpvQAC6b2AAum+AALpvoAC6b9AAum/gALpv8AC6cAAAunAQALpwMAC6cFAAunBgALpwcAC6cJAAunCgALp4UAC6eHAAunigALp4wAC6ePAAunkAALp5EAC6eSAAunkwALp5UAC6eXAAunmAALp5kAC6ebAAunnAALp7UAC6e2AAuntwALp7kAC6g0AAuoNgALqDgAC6g6AAuoPQALqD4AC6g/AAuoQAALqEEAC6hDAAuoRQALqEYAC6hHAAuoSQALqEoAC6jFAAuoxwALqMkAC6jLAAuozgALqM8AC6jQAAuo0QALqNIAC6jUAAuo1gALqNcAC6jYAAuo2gALqNsAC6lWAAupWAALqVoAC6lcAAupXwALqWAAC6lhAAupYgALqWMAC6llAAupZwALqWgAC6lpAAupawALqWwAC6nnAAup6QALqesAC6ntAAup8AALqfEAC6nyAAup8wALqfQAC6n2AAup+AALqfkAC6n6AAup/AALqf0AC6p4AAuqegALqnwAC6p+AAuqgQALqoIAC6qDAAuqhAALqoUAC6qHAAuqiQALqooAC6qLAAuqjQALqo4AC6rXAAuq+wALqyIAC6tGAAurSQALq0sAC6tNAAurTwALq1EAC6tTAAurVAALq1cAC6twAAurjQALq48AC6uRAAurkwALq5UAC6uXAAurmQALq5sAC6u4AAuruwALq74AC6vBAAurxAALq8cAC6vKAAurzQALq88AC6xKAAusTAALrE4AC6xQAAusUwALrFQAC6xVAAusVgALrFcAC6xZAAusWwALrFwAC6xdAAusXwALrGAAC6zbAAus3QALrN8AC6zhAAus5AALrOUAC6zmAAus5wALrOgAC6zqAAus7AALrO0AC6zuAAus8AALrPEAC61sAAutbgALrXAAC61yAAutdQALrXYAC613AAuteAALrXkAC617AAutfQALrX4AC61/AAutgQALrYIAC639AAut/wALrgEAC64DAAuuBgALrgcAC64IAAuuCQALrgoAC64MAAuuDgALrg8AC64QAAuuEgALrhMAC66OAAuukAALrpIAC66UAAuulwALrpgAC66ZAAuumgALrpsAC66dAAuunwALrqAAC66hAAuuowALrqQAC68fAAuvIQALryMAC68lAAuvKAALrykAC68qAAuvKwALrywAC68uAAuvMAALrzEAC68yAAuvNAALrzUAC6+wAAuvsgALr7QAC6+2AAuvuQALr7oAC6+7AAuvvAALr70AC6+/AAuvwQALr8IAC6/DAAuvxQALr8YAC6/XAAuv2AALr9oAC7BVAAuwVwALsFkAC7BbAAuwXgALsF8AC7BgAAuwYQALsGIAC7BkAAuwZgALsGcAC7BoAAuwagALsGsAC7DmAAuw6AALsOoAC7DsAAuw7wALsPAAC7DxAAuw8gALsPMAC7D1AAuw9wALsPgAC7D5AAuw+wALsPwAC7F3AAuxeQALsXwAC7F+AAuxgQALsYIAC7GDAAuxhAALsYUAC7GHAAuxiQALsYoAC7GLAAuxjQALsY4AC7IhAAuyRAALsmQAC7KEAAuyhgALsogAC7KKAAuyjAALso8AC7KQAAuykQALspQAC7KVAAuylwALspgAC7KbAAuyngALsp8AC7KgAAuyowALsqQAC7KpAAuywgALsssAC7LNAAuyzwALstgAC7LbAAuy3gALsuAAC7MpAAuzTQALs3QAC7OYAAuzmwALs50AC7OfAAuzoQALs6MAC7OlAAuzpgALs6kAC7PCAAuz4wALs+UAC7PnAAuz6QALs+sAC7PtAAuz7wALs/EAC7PzAAu0FAALtBcAC7QaAAu0HQALtCAAC7QjAAu0JgALtCkAC7QsAAu0LgALtKkAC7SrAAu0rQALtK8AC7SyAAu0swALtLQAC7S1AAu0tgALtLgAC7S6AAu0uwALtLwAC7S+AAu0vwALtToAC7U8AAu1PgALtUAAC7VDAAu1RAALtUUAC7VGAAu1RwALtUkAC7VLAAu1TAALtU0AC7VPAAu1UAALtcsAC7XNAAu10AALtdIAC7XVAAu11gALtdcAC7XYAAu12QALtdsAC7XdAAu13gALtd8AC7XhAAu14gALtfsAC7X8AAu1/QALtf8AC7Z6AAu2fAALtn4AC7aAAAu2gwALtoQAC7aFAAu2hgALtocAC7aJAAu2iwALtowAC7aNAAu2jwALtpAAC7cLAAu3DQALtw8AC7cRAAu3FAALtxUAC7cWAAu3FwALtxgAC7caAAu3HAALtx0AC7ceAAu3IAALtyEAC7ecAAu3ngALt6AAC7eiAAu3pQALt6YAC7enAAu3qAALt6kAC7erAAu3rQALt64AC7evAAu3sQALt7IAC7gtAAu4LwALuDEAC7gzAAu4NgALuDcAC7g4AAu4OQALuDoAC7g8AAu4PgALuD8AC7hAAAu4QgALuEMAC7i+AAu4wAALuMIAC7jEAAu4xwALuMgAC7jJAAu4ygALuMsAC7jNAAu4zwALuNAAC7jRAAu40wALuNQAC7kdAAu5QQALuWgAC7mMAAu5jwALuZEAC7mTAAu5lQALuZcAC7mZAAu5mgALuZ0AC7m2AAu50wALudUAC7nXAAu52QALudsAC7ndAAu53wALueEAC7n+AAu6AQALugQAC7oHAAu6CgALug0AC7oQAAu6EwALuhUAC7qQAAu6kgALupQAC7qWAAu6mQALupoAC7qbAAu6nAALup0AC7qfAAu6oQALuqIAC7qjAAu6pQALuqYAC7shAAu7IwALuyYAC7soAAu7KwALuywAC7stAAu7LgALuy8AC7sxAAu7MwALuzQAC7s1AAu7NwALuzgAC7uzAAu7tQALu7cAC7u5AAu7vAALu70AC7u+AAu7vwALu8AAC7vCAAu7xAALu8UAC7vGAAu7yAALu8kAC7xEAAu8RgALvEkAC7xLAAu8TgALvE8AC7xQAAu8UQALvFIAC7xUAAu8VgALvFcAC7xYAAu8WgALvFsAC7zeAAu9AgALvSYAC71JAAu9cAALvZAAC723AAu93gALvf4AC74iAAu+RgALvkgAC75LAAu+TQALvk8AC75RAAu+VAALvlcAC75ZAAu+WwALvl4AC75gAAu+YgALvmUAC75oAAu+aQALvnIAC76LAAu+kAALvpIAC76XAAu+mgALvpwAC77lAAu/CQALvzAAC79UAAu/VwALv1kAC79bAAu/XQALv18AC79hAAu/YgALv2UAC79+AAu/owALv6UAC7+nAAu/qQALv6sAC7+tAAu/rwALv7EAC7+zAAu/tQALv9oAC7/dAAu/4AALv+MAC7/mAAu/6QALv+wAC7/vAAu/8gALv/UAC7/3AAvAcgALwHQAC8B3AAvAeQALwHwAC8B9AAvAfgALwH8AC8CAAAvAggALwIQAC8CFAAvAhgALwIgAC8CJAAvAmgALwJsAC8CdAAvBGAALwRoAC8EcAAvBHgALwSEAC8EiAAvBIwALwSQAC8ElAAvBJwALwSkAC8EqAAvBKwALwS0AC8EuAAvBqQALwasAC8GuAAvBsAALwbMAC8G0AAvBtQALwbYAC8G3AAvBuQALwbsAC8G8AAvBvQALwb8AC8HAAAvB0QALwdIAC8HUAAvCTwALwlEAC8JTAAvCVQALwlgAC8JZAAvCWgALwlsAC8JcAAvCXgALwmAAC8JhAAvCYgALwmQAC8JlAAvC4AALwuIAC8LlAAvC5wALwuoAC8LrAAvC7AALwu0AC8L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9AAvUfgAL1H8AC9SCAAvUgwAL1IgAC9ShAAvUqgAL1KwAC9SuAAvUtwAL1LoAC9S9AAvUvwAL1QgAC9UsAAvVUwAL1XcAC9V6AAvVfAAL1X4AC9WAAAvVggAL1YQAC9WFAAvViAAL1aEAC9XCAAvVxAAL1cYAC9XIAAvVygAL1cwAC9XOAAvV0AAL1dIAC9XzAAvV9gAL1fkAC9X8AAvV/wAL1gIAC9YFAAvWCAAL1gsAC9YNAAvWiAAL1ooAC9aMAAvWjgAL1pEAC9aSAAvWkwAL1pQAC9aVAAvWlwAL1pkAC9aaAAvWmwAL1p0AC9aeAAvXGQAL1xsAC9cdAAvXHwAL1yIAC9cjAAvXJAAL1yUAC9cmAAvXKAAL1yoAC9crAAvXLAAL1y4AC9cvAAvXqgAL16wAC9evAAvXsQAL17QAC9e1AAvXtgAL17cAC9e4AAvXugAL17wAC9e9AAvXvgAL18AAC9fBAAvX2gAL19sAC9fcAAvX3gAL2FkAC9hbAAvYXQAL2F8AC9hiAAvYYwAL2GQAC9hlAAvYZgAL2GgAC9hqAAvYawAL2GwAC9huAAvYbwAL2OoAC9jsAAvY7gAL2PAAC9jzAAvY9AAL2PUAC9j2AAvY9wAL2PkAC9j7AAvY/AAL2P0AC9j/AAvZAAAL2XsAC9l9AAvZfwAL2YEAC9mEAAvZhQAL2YYAC9mHAAvZiAAL2YoAC9mMAAvZjQAL2Y4AC9mQAAvZkQAL2gwAC9oOAAvaEAAL2hIAC9oVAAvaFgAL2hcAC9oYAAvaGQAL2hsAC9odAAvaHgAL2h8AC9ohAAvaIgAL2p0AC9qfAAvaoQAL2qMAC9qmAAvapwAL2qgAC9qpAAvaqgAL2qwAC9quAAvarwAL2rAAC9qyAAvaswAL2vwAC9sgAAvbRwAL22sAC9tuAAvbcAAL23IAC9t0AAvbdgAL23gAC9t5AAvbfAAL25UAC9uyAAvbtAAL27YAC9u4AAvbugAL27wAC9u+AAvbwAAL290AC9vgAAvb4wAL2+YAC9vpAAvb7AAL2+8AC9vyAAvb9AAL3G8AC9xxAAvccwAL3HUAC9x4AAvceQAL3HoAC9x7AAvcfAAL3H4AC9yAAAvcgQAL3IIAC9yEAAvchQAL3QAAC90CAAvdBQAL3QcAC90KAAvdCwAL3QwAC90NAAvdDgAL3RAAC90SAAvdEwAL3RQAC90WAAvdFwAL3ZIAC92UAAvdlgAL3ZgAC92bAAvdnAAL3Z0AC92eAAvdnwAL3aEAC92jAAvdpAAL3aUAC92nAAvdqAAL3iMAC94lAAveKAAL3ioAC94tAAveLgAL3i8AC94wAAveMQAL3jMAC941AAveNgAL3jcAC945AAveOgAL3rUAC963AAveuQAL3rsAC96+AAvevwAL3sAAC97BAAvewgAL3sQAC97GAAvexwAL3sgAC97KAAveywAL30YAC99IAAvfSgAL30wAC99PAAvfUAAL31EAC99SAAvfUwAL31UAC99XAAvfWAAL31kAC99bAAvfXAAL39cAC9/ZAAvf3AAL394AC9/hAAvf4gAL3+MAC9/kAAvf5QAL3+cAC9/pAAvf6gAL3+sAC9/tAAvf7gAL4IEAC+CkAAvgxAAL4OQAC+DmAAvg6AAL4OoAC+DsAAvg7wAL4PAAC+DxAAvg9AAL4PUAC+D3AAvg+AAL4PoAC+D9AAvg/gAL4P8AC+ECAAvhAwAL4QgAC+EhAAvhKgAL4SwAC+EuAAvhNwAL4ToAC+E9AAvhPwAL4YgAC+GsAAvh0wAL4fcAC+H6AAvh/AAL4f4AC+IAAAviAgAL4gQAC+IFAAviCAAL4iEAC+JCAAviRAAL4kYAC+JIAAviSgAL4kwAC+JOAAviUAAL4lIAC+JzAAvidgAL4nkAC+J8AAvifwAL4oIAC+KFAAviiAAL4osAC+KNAAvjCAAL4woAC+MMAAvjDgAL4xEAC+MSAAvjEwAL4xQAC+MVAAvjFwAL4xkAC+MaAAvjGwAL4x0AC+MeAAvjmQAL45sAC+OdAAvjnwAL46IAC+OjAAvjpAAL46UAC+OmAAvjqAAL46oAC+OrAAvjrAAL464AC+OvAAvkKgAL5CwAC+QvAAvkMQAL5DQAC+Q1AAvkNgAL5DcAC+Q4AAvkOgAL5DwAC+Q9AAvkPgAL5EAAC+RBAAvkWgAL5FsAC+RcAAvkXgAL5NkAC+TbAAvk3QAL5N8AC+TiAAvk4wAL5OQAC+TlAAvk5gAL5OgAC+TqAAvk6wAL5OwAC+TuAAvk7wAL5WoAC+VsAAvlbgAL5XAAC+VzAAvldAAL5XUAC+V2AAvldwAL5XkAC+V7AAvlfAAL5X0AC+V/AAvlgAAL5fsAC+X9AAvl/wAL5gEAC+YEAAvmBQAL5gYAC+YHAAvmCAAL5goAC+YMAAvmDQAL5g4AC+YQAAvmEQAL5owAC+aOAAvmkAAL5pIAC+aVAAvmlgAL5pcAC+aYAAvmmQAL5psAC+adAAvmngAL5p8AC+ahAAvmogAL5x0AC+cfAAvnIQAL5yMAC+cmAAvnJwAL5ygAC+cpAAvnKgAL5ywAC+cuAAvnLwAL5zAAC+cyAAvnMwAL53wAC+egAAvnxwAL5+sAC+fuAAvn8AAL5/IAC+f0AAvn9gAL5/gAC+f5AAvn/AAL6BUAC+gyAAvoNAAL6DYAC+g4AAvoOgAL6DwAC+g+AAvoQAAL6F0AC+hgAAvoYwAL6GYAC+hpAAvobAAL6G8AC+hyAAvodAAL6O8AC+jxAAvo8wAL6PUAC+j4AAvo+QAL6PoAC+j7AAvo/AAL6P4AC+kAAAvpAQAL6QIAC+kEAAvpBQAL6YAAC+mCAAvphAAL6YYAC+mJAAvpigAL6YsAC+mMAAvpjQAL6Y8AC+mRAAvpkgAL6ZMAC+mVAAvplgAL6hEAC+oTAAvqFQAL6hcAC+oaAAvqGwAL6hwAC+odAAvqHgAL6iAAC+oiAAvqIwAL6iQAC+omAAvqJwAL6qIAC+qkAAvqpgAL6qgAC+qrAAvqrAAL6q0AC+quAAvqrwAL6rEAC+qzAAvqtAAL6rUAC+q3AAvquAAL6zMAC+s1AAvrNwAL6zkAC+s8AAvrPQAL6z4AC+s/AAvrQAAL60IAC+tEAAvrRQAL60YAC+tIAAvrSQAL68QAC+vGAAvryAAL68oAC+vNAAvrzgAL688AC+vQAAvr0QAL69MAC+vVAAvr1gAL69cAC+vZAAvr2gAL7FUAC+xXAAvsWQAL7FsAC+xeAAvsXwAL7GAAC+xhAAvsYgAL7GQAC+xmAAvsZwAL7GgAC+xqAAvsawAL7P4AC+0hAAvtQQAL7WEAC+1jAAvtZQAL7WcAC+1pAAvtbAAL7W0AC+1uAAvtcQAL7XIAC+10AAvtdQAL7XcAC+16AAvtewAL7XwAC+1/AAvtgAAL7YUAC+2eAAvtpwAL7akAC+2rAAvttAAL7bcAC+26AAvtvAAL7gUAC+4pAAvuUAAL7nQAC+53AAvueQAL7nsAC+59AAvufwAL7oEAC+6CAAvuhQAL7p4AC+6/AAvuwQAL7sMAC+7FAAvuxwAL7skAC+7LAAvuzQAL7s8AC+7wAAvu8wAL7vYAC+75AAvu/AAL7v8AC+8CAAvvBQAL7wgAC+8KAAvvhQAL74cAC++JAAvviwAL744AC++PAAvvkAAL75EAC++SAAvvlAAL75YAC++XAAvvmAAL75oAC++bAAvwFgAL8BgAC/AaAAvwHAAL8B8AC/AgAAvwIQAL8CIAC/AjAAvwJQAL8CcAC/AoAAvwKQAL8CsAC/AsAAvwpwAL8KkAC/CsAAvwrgAL8LEAC/CyAAvwswAL8LQAC/C1AAvwtwAL8LkAC/C6AAvwuwAL8L0AC/C+AAvw1wAL8NgAC/DZAAvw2wAL8VYAC/FYAAvxWgAL8VwAC/FfAAvxYAAL8WEAC/FiAAvxYwAL8WUAC/FnAAvxaAAL8WkAC/FrAAvxbAAL8ecAC/HpAAvx6wAL8e0AC/HwAAvx8QAL8fIAC/HzAAvx9AAL8fYAC/H4AAvx+QAL8foAC/H8AAvx/QAL8ngAC/J6AAvyfAAL8n4AC/KBAAvyggAL8oMAC/KEAAvyhQAL8ocAC/KJAAvyigAL8osAC/KNAAvyjgAL8wkAC/MLAAvzDQAL8w8AC/MSAAvzEwAL8xQAC/MVAAvzFgAL8xgAC/MaAAvzGwAL8xwAC/MeAAvzHwAL85oAC/OcAAvzngAL86AAC/OjAAvzpAAL86UAC/OmAAvzpwAL86kAC/OrAAvzrAAL860AC/OvAAvzsAAL8/kAC/QdAAv0RAAL9GgAC/RrAAv0bQAL9G8AC/RxAAv0cwAL9HUAC/R2AAv0eQAL9JIAC/SvAAv0sQAL9LMAC/S1AAv0twAL9LkAC/S7AAv0vQAL9NoAC/TdAAv04AAL9OMAC/TmAAv06QAL9OwAC/TvAAv08QAL9WwAC/VuAAv1cAAL9XIAC/V1AAv1dgAL9XcAC/V4AAv1eQAL9XsAC/V9AAv1fgAL9X8AC/WBAAv1ggAL9f0AC/X/AAv2AQAL9gMAC/YGAAv2BwAL9ggAC/YJAAv2CgAL9gwAC/YOAAv2DwAL9hAAC/YSAAv2EwAL9o4AC/aQAAv2kgAL9pQAC/aXAAv2mAAL9pkAC/aaAAv2mwAL9p0AC/afAAv2oAAL9qEAC/ajAAv2pAAL9x8AC/chAAv3JAAL9yYAC/cpAAv3KgAL9ysAC/csAAv3LQAL9y8AC/cxAAv3MgAL9zMAC/c1AAv3NgAL97EAC/ezAAv3tQAL97cAC/e6AAv3uwAL97wAC/e9AAv3vgAL98AAC/fCAAv3wwAL98QAC/fGAAv3xwAL+EIAC/hEAAv4RgAL+EgAC/hLAAv4TAAL+E0AC/hOAAv4TwAL+FEAC/hTAAv4VAAL+FUAC/hXAAv4WAAL+NMAC/jVAAv41wAL+NkAC/jcAAv43QAL+N4AC/jfAAv44AAL+OIAC/jkAAv45QAL+OYAC/joAAv46QAL+XwAC/mfAAv5vwAL+d8AC/nhAAv54wAL+eUAC/nnAAv56gAL+esAC/nsAAv57wAL+fAAC/nyAAv58wAL+fUAC/n4AAv5+QAL+foAC/n9AAv5/gAL+gcAC/ogAAv6KQAL+isAC/otAAv6NgAL+jkAC/o8AAv6PgAL+ocAC/qrAAv60gAL+vYAC/r5AAv6+wAL+v0AC/r/AAv7AQAL+wMAC/sEAAv7BwAL+yAAC/tBAAv7QwAL+0UAC/tHAAv7SQAL+0sAC/tNAAv7TwAL+1EAC/tyAAv7dQAL+3gAC/t7AAv7fgAL+4EAC/uEAAv7hwAL+4oAC/uMAAv8BwAL/AkAC/wLAAv8DQAL/BAAC/wRAAv8EgAL/BMAC/wUAAv8FgAL/BgAC/wZAAv8GgAL/BwAC/wdAAv8mAAL/JoAC/ycAAv8ngAL/KEAC/yiAAv8owAL/KQAC/ylAAv8pwAL/KkAC/yqAAv8qwAL/K0AC/yuAAv9KQAL/SsAC/0uAAv9MAAL/TMAC/00AAv9NQAL/TYAC/03AAv9OQAL/TsAC/08AAv9PQAL/T8AC/1AAAv9WQAL/VoAC/1bAAv9XQAL/dgAC/3aAAv93AAL/d4AC/3hAAv94gAL/eMAC/3kAAv95QAL/ecAC/3pAAv96gAL/esAC/3tAAv97gAL/mkAC/5rAAv+bQAL/m8AC/5yAAv+cwAL/nQAC/51AAv+dgAL/ngAC/56AAv+ewAL/nwAC/5+AAv+fwAL/voAC/78AAv+/gAL/wAAC/8DAAv/BAAL/wUAC/8GAAv/BwAL/wkAC/8LAAv/DAAL/w0AC/8PAAv/EAAL/4sAC/+NAAv/jwAL/5EAC/+UAAv/lQAL/5YAC/+XAAv/mAAL/5oAC/+cAAv/nQAL/54AC/+gAAv/oQAMABwADAAeAAwAIAAMACIADAAlAAwAJgAMACcADAAoAAwAKQAMACsADAAtAAwALgAMAC8ADAAxAAwAMgAMAHsADACfAAwAxgAMAOoADADtAAwA7wAMAPEADADzAAwA9QAMAPcADAD4AAwA+wAMARQADAExAAwBMwAMATUADAE3AAwBOQAMATsADAE9AAwBPwAMAVwADAFfAAwBYgAMAWUADAFoAAwBawAMAW4ADAFxAAwBcwAMAe4ADAHwAAwB8gAMAfQADAH3AAwB+AAMAfkADAH6AAwB+wAMAf0ADAH/AAwCAAAMAgEADAIDAAwCBAAMAn8ADAKBAAwCgwAMAoUADAKIAAwCiQAMAooADAKLAAwCjAAMAo4ADAKQAAwCkQAMApIADAKUAAwClQAMAxAADAMSAAwDFAAMAxYADAMZAAwDGgAMAxsADAMcAAwDHQAMAx8ADAMhAAwDIgAMAyMADAMlAAwDJgAMA6EADAOjAAwDpgAMA6gADAOrAAwDrAAMA60ADAOuAAwDrwAMA7EADAOzAAwDtAAMA7UADAO3AAwDuAAMBDMADAQ1AAwENwAMBDkADAQ8AAwEPQAMBD4ADAQ/AAwEQAAMBEIADAREAAwERQAMBEYADARIAAwESQAMBMQADATGAAwEyAAMBMoADATNAAwEzgAMBM8ADATQAAwE0QAMBNMADATVAAwE1gAMBNcADATZAAwE2gAMBVUADAVXAAwFWQAMBVsADAVeAAwFXwAMBWAADAVhAAwFYgAMBWQADAVmAAwFZwAMBWgADAVqAAwFawAMBf4ADAYhAAwGQQAMBmEADAZjAAwGZQAMBmcADAZpAAwGbAAMBm0ADAZuAAwGcQAMBnIADAZ0AAwGdQAMBncADAZ6AAwGewAMBnwADAZ/AAwGgAAMBoUADAaeAAwGpwAMBqkADAarAAwGtAAMBrcADAa6AAwGvAAMBwUADAcpAAwHUAAMB3QADAd3AAwHeQAMB3sADAd9AAwHfwAMB4EADAeCAAwHhQAMB54ADAe/AAwHwQAMB8MADAfFAAwHxwAMB8kADAfLAAwHzQAMB88ADAfwAAwH8wAMB/YADAf5AAwH/AAMB/8ADAgCAAwIBQAMCAgADAgKAAwIhQAMCIcADAiJAAwIiwAMCI4ADAiPAAwIkAAMCJEADAiSAAwIlAAMCJYADAiXAAwImAAMCJoADAibAAwJFgAMCRgADAkaAAwJHAAMCR8ADAkgAAwJIQAMCSIADAkjAAwJJQAMCScADAkoAAwJKQAMCSsADAksAAwJpwAMCakADAmsAAwJrgAMCbEADAmyAAwJswAMCbQADAm1AAwJtwAMCbkADAm6AAwJuwAMCb0ADAm+AAwJ1wAMCdgADAnZAAwJ2wAMClYADApYAAwKWgAMClwADApfAAwKYAAMCmEADApiAAwKYwAMCmUADApnAAwKaAAMCmkADAprAAwKbAAMCucADArpAAwK6wAMCu0ADArwAAwK8QAMCvIADArzAAwK9AAMCvYADAr4AAwK+QAMCvoADAr8AAwK/QAMC3gADAt6AAwLfAAMC34ADAuBAAwLggAMC4MADAuEAAwLhQAMC4cADAuJAAwLigAMC4sADAuNAAwLjgAMDAkADAwLAAwMDQAMDA8ADAwSAAwMEwAMDBQADAwVAAwMFgAMDBgADAwaAAwMGwAMDBwADAweAAwMHwAMDJoADAycAAwMngAMDKAADAyjAAwMpAAMDKUADAymAAwMpwAMDKkADAyrAAwMrAAMDK0ADAyvAAwMsAAMDPkADA0dAAwNRAAMDWgADA1rAAwNbQAMDW8ADA1xAAwNcwAMDXUADA12AAwNeQAMDZIADA2vAAwNsQAMDbMADA21AAwNtwAMDbkADA27AAwNvQAMDdoADA3dAAwN4AAMDeMADA3mAAwN6QAMDewADA3vAAwN8QAMDmwADA5uAAwOcAAMDnIADA51AAwOdgAMDncADA54AAwOeQAMDnsADA59AAwOfgAMDn8ADA6BAAwOggAMDv0ADA7/AAwPAQAMDwMADA8GAAwPBwAMDwgADA8JAAwPCgAMDwwADA8OAAwPDwAMDxAADA8SAAwPEwAMD44ADA+QAAwPkgAMD5QADA+XAAwPmAAMD5kADA+aAAwPmwAMD50ADA+fAAwPoAAMD6EADA+jAAwPpAAMEB8ADBAhAAwQJAAMECYADBApAAwQKgAMECsADBAsAAwQLQAMEC8ADBAxAAwQMgAMEDMADBA1AAwQNgAMELEADBCzAAwQtQAMELcADBC6AAwQuwAMELwADBC9AAwQvgAMEMAADBDCAAwQwwAMEMQADBDGAAwQxwAMEUIADBFEAAwRRgAMEUgADBFLAAwRTAAMEU0ADBFOAAwRTwAMEVEADBFTAAwRVAAMEVUADBFXAAwRWAAMEdMADBHVAAwR1wAMEdkADBHcAAwR3QAMEd4ADBHfAAwR4AAMEeIADBHkAAwR5QAMEeYADBHoAAwR6QAMEnwADBKfAAwSvwAMEt8ADBLhAAwS4wAMEuUADBLnAAwS6gAMEusADBLsAAwS7wAMEvAADBLyAAwS8wAMEvUADBL4AAwS+QAMEvoADBL9AAwS/gAMEwMADBMcAAwTJQAMEycADBMpAAwTMgAMEzUADBM4AAwTOgAME4MADBOnAAwTzgAME/IADBP1AAwT9wAME/kADBP7AAwT/QAME/8ADBQAAAwUAwAMFBwADBQ9AAwUPwAMFEEADBRDAAwURQAMFEcADBRJAAwUSwAMFE0ADBRuAAwUcQAMFHQADBR3AAwUegAMFH0ADBSAAAwUgwAMFIYADBSIAAwVAwAMFQUADBUHAAwVCQAMFQwADBUNAAwVDgAMFQ8ADBUQAAwVEgAMFRQADBUVAAwVFgAMFRgADBUZAAwVlAAMFZYADBWYAAwVmgAMFZ0ADBWeAAwVnwAMFaAADBWhAAwVowAMFaUADBWmAAwVpwAMFakADBWqAAwWJQAMFicADBYqAAwWLAAMFi8ADBYwAAwWMQAMFjIADBYzAAwWNQAMFjcADBY4AAwWOQAMFjsADBY8AAwWVQAMFlYADBZXAAwWWQAMFtQADBbWAAwW2AAMFtoADBbdAAwW3gAMFt8ADBbgAAwW4QAMFuMADBblAAwW5gAMFucADBbpAAwW6gAMF2UADBdnAAwXaQAMF2sADBduAAwXbwAMF3AADBdxAAwXcgAMF3QADBd2AAwXdwAMF3gADBd6AAwXewAMF/YADBf4AAwX+gAMF/wADBf/AAwYAAAMGAEADBgCAAwYAwAMGAUADBgHAAwYCAAMGAkADBgLAAwYDAAMGIcADBiJAAwYiwAMGI0ADBiQAAwYkQAMGJIADBiTAAwYlAAMGJYADBiYAAwYmQAMGJoADBicAAwYnQAMGRgADBkaAAwZHAAMGR4ADBkhAAwZIgAMGSMADBkkAAwZJQAMGScADBkpAAwZKgAMGSsADBktAAwZLgAMGXcADBmbAAwZwgAMGeYADBnpAAwZ6wAMGe0ADBnvAAwZ8QAMGfMADBn0AAwZ9wAMGhAADBotAAwaLwAMGjEADBozAAwaNQAMGjcADBo5AAwaOwAMGlgADBpbAAwaXgAMGmEADBpkAAwaZwAMGmoADBptAAwabwAMGuoADBrsAAwa7wAMGvEADBr0AAwa9QAMGvYADBr3AAwa+AAMGvoADBr8AAwa/QAMGv4ADBsAAAwbAQAMG3wADBt+AAwbgAAMG4IADBuFAAwbhgAMG4cADBuIAAwbiQAMG4sADBuNAAwbjgAMG48ADBuRAAwbkgAMHA0ADBwPAAwcEQAMHBMADBwWAAwcFwAMHBgADBwZAAwcGgAMHBwADBweAAwcHwAMHCAADBwiAAwcIwAMHJ4ADBygAAwcowAMHKUADByoAAwcqQAMHKoADByrAAwcrAAMHK4ADBywAAwcsQAMHLIADBy0AAwctQAMHTAADB0yAAwdNAAMHTYADB05AAwdOgAMHTsADB08AAwdPQAMHT8ADB1BAAwdQgAMHUMADB1FAAwdRgAMHcEADB3DAAwdxQAMHccADB3KAAwdywAMHcwADB3NAAwdzgAMHdAADB3SAAwd0wAMHdQADB3WAAwd1wAMHlIADB5UAAweVgAMHlgADB5bAAweXAAMHl0ADB5eAAweXwAMHmEADB5jAAweZAAMHmUADB5nAAweaAAMHvsADB8eAAwfPgAMH14ADB9gAAwfYgAMH2QADB9mAAwfaQAMH2oADB9rAAwfbgAMH28ADB9xAAwfcgAMH3UADB94AAwfeQAMH3oADB99AAwffgAMH4cADB+gAAwfqQAMH6sADB+tAAwftgAMH7kADB+8AAwfvgAMIAcADCArAAwgUgAMIHYADCB5AAwgewAMIH0ADCB/AAwggQAMIIMADCCEAAwghwAMIKAADCDBAAwgwwAMIMUADCDHAAwgyQAMIMsADCDNAAwgzwAMINEADCDyAAwg9QAMIPgADCD7AAwg/gAMIQEADCEEAAwhBwAMIQoADCEMAAwhhwAMIYkADCGLAAwhjQAMIZAADCGRAAwhkgAMIZMADCGUAAwhlgAMIZgADCGZAAwhmgAMIZwADCGdAAwiGAAMIhoADCIcAAwiHgAMIiEADCIiAAwiIwAMIiQADCIlAAwiJwAMIikADCIqAAwiKwAMIi0ADCIuAAwiqQAMIqsADCKuAAwisAAMIrMADCK0AAwitQAMIrYADCK3AAwiuQAMIrsADCK8AAwivQAMIr8ADCLAAAwi2QAMItoADCLbAAwi3QAMI1gADCNaAAwjXAAMI14ADCNhAAwjYgAMI2MADCNkAAwjZQAMI2cADCNpAAwjagAMI2sADCNtAAwjbgAMI+kADCPrAAwj7QAMI+8ADCPyAAwj8wAMI/QADCP1AAwj9gAMI/gADCP6AAwj+wAMI/wADCP+AAwj/wAMJHoADCR8AAwkfgAMJIAADCSDAAwkhAAMJIUADCSGAAwkhwAMJIkADCSLAAwkjAAMJI0ADCSPAAwkkAAMJQsADCUNAAwlDwAMJREADCUUAAwlFQAMJRYADCUXAAwlGAAMJRoADCUcAAwlHQAMJR4ADCUgAAwlIQAMJZwADCWeAAwloAAMJaIADCWlAAwlpgAMJacADCWoAAwlqQAMJasADCWtAAwlrgAMJa8ADCWxAAwlsgAMJfsADCYfAAwmRgAMJmoADCZtAAwmbwAMJnEADCZzAAwmdQAMJncADCZ4AAwmewAMJpQADCaxAAwmswAMJrUADCa3AAwmuQAMJrsADCa9AAwmvwAMJtwADCbfAAwm4gAMJuUADCboAAwm6wAMJu4ADCbxAAwm8wAMJ24ADCdwAAwncgAMJ3QADCd3AAwneAAMJ3kADCd6AAwnewAMJ30ADCd/AAwngAAMJ4EADCeDAAwnhAAMJ/8ADCgBAAwoAwAMKAUADCgIAAwoCQAMKAoADCgLAAwoDAAMKA4ADCgQAAwoEQAMKBIADCgUAAwoFQAMKJAADCiSAAwolAAMKJYADCiZAAwomgAMKJsADCicAAwonQAMKJ8ADCihAAwoogAMKKMADCilAAwopgAMKSEADCkjAAwpJgAMKSgADCkrAAwpLAAMKS0ADCkuAAwpLwAMKTEADCkzAAwpNAAMKTUADCk3AAwpOAAMKbMADCm1AAwptwAMKbkADCm8AAwpvQAMKb4ADCm/AAwpwAAMKcIADCnEAAwpxQAMKcYADCnIAAwpyQAMKkQADCpGAAwqSAAMKkoADCpNAAwqTgAMKk8ADCpQAAwqUQAMKlMADCpVAAwqVgAMKlcADCpZAAwqWgAMKtUADCrXAAwq2gAMKtwADCrfAAwq4AAMKuEADCriAAwq4wAMKuUADCrnAAwq6AAMKukADCrrAAwq7AAMK38ADCuiAAwrwgAMK+IADCvkAAwr5gAMK+gADCvqAAwr7QAMK+4ADCvvAAwr8gAMK/MADCv1AAwr9gAMK/gADCv7AAwr/AAMK/0ADCwAAAwsAQAMLAYADCwfAAwsKAAMLCoADCwsAAwsNQAMLDgADCw7AAwsPQAMLIYADCyqAAws0QAMLPUADCz4AAws+gAMLPwADCz+AAwtAAAMLQIADC0DAAwtBgAMLR8ADC1AAAwtQgAMLUQADC1GAAwtSAAMLUoADC1MAAwtTgAMLVAADC1xAAwtdAAMLXcADC16AAwtfQAMLYAADC2DAAwthgAMLYkADC2LAAwuBgAMLggADC4KAAwuDAAMLg8ADC4QAAwuEQAMLhIADC4TAAwuFQAMLhcADC4YAAwuGQAMLhsADC4cAAwulwAMLpkADC6bAAwunQAMLqAADC6hAAwuogAMLqMADC6kAAwupgAMLqgADC6pAAwuqgAMLqwADC6tAAwvKAAMLyoADC8tAAwvLwAMLzIADC8zAAwvNAAMLzUADC82AAwvOAAMLzoADC87AAwvPAAMLz4ADC8/AAwvWAAML1kADC9aAAwvXAAML9cADC/ZAAwv2wAML90ADC/gAAwv4QAML+IADC/jAAwv5AAML+YADC/oAAwv6QAML+oADC/sAAwv7QAMMGgADDBqAAwwbAAMMG4ADDBxAAwwcgAMMHMADDB0AAwwdQAMMHcADDB5AAwwegAMMHsADDB9AAwwfgAMMPkADDD7AAww/QAMMP8ADDECAAwxAwAMMQQADDEFAAwxBgAMMQgADDEKAAwxCwAMMQwADDEOAAwxDwAMMYoADDGMAAwxjgAMMZAADDGTAAwxlAAMMZUADDGWAAwxlwAMMZkADDGbAAwxnAAMMZ0ADDGfAAwxoAAMMhsADDIdAAwyHwAMMiEADDIkAAwyJQAMMiYADDInAAwyKAAMMioADDIsAAwyLQAMMi4ADDIwAAwyMQAMMnoADDKeAAwyxQAMMukADDLsAAwy7gAMMvAADDLyAAwy9AAMMvYADDL3AAwy+gAMMxMADDMwAAwzMgAMMzQADDM2AAwzOAAMMzoADDM8AAwzPgAMM1sADDNeAAwzYQAMM2QADDNnAAwzagAMM20ADDNwAAwzcgAMM+0ADDPvAAwz8QAMM/MADDP2AAwz9wAMM/gADDP5AAwz+gAMM/wADDP+AAwz/wAMNAAADDQCAAw0AwAMNH4ADDSAAAw0ggAMNIQADDSHAAw0iAAMNIkADDSKAAw0iwAMNI0ADDSPAAw0kAAMNJEADDS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pAAxXqgAMV6sADFetAAxXrgAMV/cADFgbAAxYQgAMWGYADFhpAAxYawAMWG0ADFhvAAxYcQAMWHMADFh0AAxYdwAMWJAADFitAAxYrwAMWLEADFizAAxYtQAMWLcADFi5AAxYuwAMWNgADFjbAAxY3gAMWOEADFjkAAxY5wAMWOoADFjtAAxY7wAMWWoADFlsAAxZbgAMWXAADFlzAAxZdAAMWXUADFl2AAxZdwAMWXkADFl7AAxZfAAMWX0ADFl/AAxZgAAMWfsADFn9AAxZ/wAMWgEADFoEAAxaBQAMWgYADFoHAAxaCAAMWgoADFoMAAxaDQAMWg4ADFoQAAxaEQAMWowADFqOAAxakAAMWpIADFqVAAxalgAMWpcADFqYAAxamQAMWpsADFqdAAxangAMWp8ADFqhAAxaogAMWx0ADFsfAAxbIgAMWyQADFsnAAxbKAAMWykADFsqAAxbKwAMWy0ADFsvAAxbMAAMWzEADFszAAxbNAAMW68ADFuxAAxbswAMW7UADFu4AAxbuQAMW7oADFu7AAxbvAAMW74ADFvAAAxbwQAMW8IADFvEAAxbxQAMXEAADFxCAAxcRAAMXEYADFxJAAxcSgAMXEsADFxMAAxcTQAMXE8ADFxRAAxcUgAMXFMADFxVAAxcVgAMXNEADFzTAAxc1QAMXNcADFzaAAxc2wAMXNwADFzdAAxc3gAMXOAADFziAAxc4wAMXOQADFzmAAxc5wAMXXoADF2dAAxdvQAMXd0ADF3fAAxd4QAMXeMADF3lAAxd6AAMXekADF3qAAxd7QAMXe4ADF3wAAxd8QAMXfMADF32AAxd9wAMXfgADF37AAxd/AAMXgEADF4aAAxeIwAMXiUADF4nAAxeMAAMXjMADF42AAxeOAAMXoEADF6lAAxezAAMXvAADF7zAAxe9QAMXvcADF75AAxe+wAMXv0ADF7+AAxfAQAMXxoADF87AAxfPQAMXz8ADF9BAAxfQwAMX0UADF9HAAxfSQAMX0sADF9sAAxfbwAMX3IADF91AAxfeAAMX3sADF9+AAxfgQAMX4QADF+GAAxgAQAMYAMADGAFAAxgBwAMYAoADGALAAxgDAAMYA0ADGAOAAxgEAAMYBIADGATAAxgFAAMYBYADGAXAAxgkgAMYJQADGCWAAxgmAAMYJsADGCcAAxgnQAMYJ4ADGC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BAAyVAgAMlQMADJUFAAyVBgAMlR8ADJUgAAyVIQAMlSMADJWeAAyVoAAMlaIADJWkAAyVpwAMlagADJWpAAyVqgAMlasADJWtAAyVrwAMlbAADJWxAAyVswAMlbQADJYvAAyWMQAMljMADJY1AAyWOAAMljkADJY6AAyWOwAMljwADJY+AAyWQAAMlkEADJZCAAyWRAAMlkUADJbAAAyWwgAMlsQADJbGAAyWyQAMlsoADJbLAAyWzAAMls0ADJbPAAyW0QAMltIADJbTAAyW1QAMltYADJdRAAyXUwAMl1UADJdXAAyXWgAMl1sADJdcAAyXXQAMl14ADJdgAAyXYgAMl2MADJdkAAyXZgAMl2cADJfiAAyX5AAMl+YADJfoAAyX6wAMl+wADJftAAyX7gAMl+8ADJfxAAyX8wAMl/QADJf1AAyX9wAMl/gADJhBAAyYZQAMmIwADJiwAAyYswAMmLUADJi3AAyYuQAMmLsADJi9AAyYvgAMmMEADJjaAAyY9wAMmPkADJj7AAyY/QAMmP8ADJkBAAyZAwAMmQUADJkiAAyZJQAMmSgADJkrAAyZLgAMmTEADJk0AAyZNwAMmTkADJm0AAyZtgAMmbgADJm6AAyZvQAMmb4ADJm/AAyZwAAMmcEADJnDAAyZxQAMmcYADJnHAAyZyQAMmcoADJpFAAyaRwAMmkkADJpLAAyaTgAMmk8ADJpQAAyaUQAMmlIADJpUAAyaVgAMmlcADJpYAAyaWgAMmlsADJrWAAya2AAMmtsADJrdAAya4AAMmuEADJriAAya4wAMmuQADJrmAAya6AAMmukADJrqAAya7AAMmu0ADJtoAAybagAMm20ADJtvAAybcgAMm3MADJt0AAybdQAMm3YADJt4AAybegAMm3sADJt8AAybfgAMm38ADJv6AAyb/AAMm/4ADJwAAAycAwAMnAQADJwFAAycBgAMnAcADJwJAAycCwAMnAwADJwNAAycDwAMnBAADJyLAAycjQAMnI8ADJyRAAyclAAMnJUADJyWAAyclwAMnJgADJyaAAycnAAMnJ0ADJyeAAycoAAMnKEADJ0cAAydHgAMnSAADJ0iAAydJQAMnSYADJ0nAAydKAAMnSkADJ0rAAydLQAMnS4ADJ0vAAydMQAMnTIADJ3FAAyd6AAMnggADJ4oAAyeKgAMniwADJ4uAAyeMAAMnjMADJ40AAyeNQAMnjgADJ45AAyeOwAMnjwADJ4/AAyeQgAMnkMADJ5EAAyeRwAMnkgADJ5NAAyeZgAMnm8ADJ5xAAyecwAMnnwADJ5/AAyeggAMnoQADJ7NAAye8QAMnxgADJ88AAyfPwAMn0EADJ9DAAyfRQAMn0cADJ9JAAyfSgAMn00ADJ9mAAyfhwAMn4kADJ+LAAyfjQAMn48ADJ+RAAyfkwAMn5UADJ+XAAyfuAAMn7sADJ++AAyfwQAMn8QADJ/HAAyfygAMn80ADJ/QAAyf0gAMoE0ADKBPAAygUQAMoFMADKBWAAygVwAMoFgADKBZAAygWgAMoFwADKBeAAygXwAMoGAADKBiAAygYwAMoN4ADKDgAAyg4gAMoOQADKDnAAyg6AAMoOkADKDqAAyg6wAMoO0ADKDvAAyg8AAMoPEADKDzAAyg9AAMoW8ADKFxAAyhdAAMoXYADKF5AAyhegAMoXsADKF8AAyhfQAMoX8ADKGBAAyhggAMoYMADKGFAAyhhgAMoZ8ADKGgAAyhoQAMoaMADKIeAAyiIAAMoiIADKIkAAyiJwAMoigADKIpAAyiKgAMoisADKItAAyiLwAMojAADKIxAAyiMwAMojQADKKvAAyisQAMorMADKK1AAyiuAAMorkADKK6AAyiuwAMorwADKK+AAyiwAAMosEADKLCAAyixAAMosUADKNAAAyjQgAMo0QADKNGAAyjSQAMo0oADKNLAAyjTAAMo00ADKNPAAyjUQAMo1IADKNTAAyjVQAMo1YADKPRAAyj0wAMo9UADKPXAAyj2gAMo9sADKPcAAyj3QAMo94ADKPgAAyj4gAMo+MADKPkAAyj5gAMo+cADKRiAAykZAAMpGYADKRoAAykawAMpGwADKRtAAykbgAMpG8ADKRxAAykcwAMpHQADKR1AAykdwAMpHgADKTBAAyk5QAMpQwADKUwAAylMwAMpTUADKU3AAylOQAMpTsADKU9AAylPgAMpUEADKVaAAyldwAMpXkADKV7AAylfQAMpX8ADKWBAAylgwAMpYUADKWiAAylpQAMpagADKWrAAylrgAMpbEADKW0AAyltwAMpbkADKY0AAymNgAMpjgADKY6AAymPQAMpj4ADKY/AAymQAAMpkEADKZDAAymRQAMpkYADKZHAAymSQAMpkoADKbFAAymxwAMpskADKbLAAymzgAMps8ADKbQAAym0QAMptIADKbUAAym1gAMptcADKbYAAym2gAMptsADKdWAAynWAAMp1oADKdcAAynXwAMp2AADKdhAAynYgAMp2MADKdlAAynZwAMp2gADKdpAAynawAMp2wADKfnAAyn6QAMp+wADKfuAAyn8QAMp/IADKfzAAyn9AAMp/UADKf3AAyn+QAMp/oADKf7AAyn/QAMp/4ADKh5AAyoewAMqH0ADKh/AAyoggAMqIMADKiEAAyohQAMqIYADKiIAAyoigAMqIsADKiMAAyojgAMqI8ADKkKAAypDAAMqQ4ADKkQAAypEwAMqRQADKkVAAypFgAMqRcADKkZAAypGwAMqRwADKkdAAypHwAMqSAADKmbAAypnQAMqaAADKmiAAyppQAMqaYADKmnAAypqAAMqakADKmrAAyprQAMqa4ADKmvAAypsQAMqbIADKpFAAyqaAAMqogADKqoAAyqqgAMqqwADKquAAyqsAAMqrMADKq0AAyqtQAMqrgADKq5AAyquwAMqrwADKq/AAyqwgAMqsMADKrEAAyqxwAMqsgADKrNAAyq5gAMqu8ADKrxAAyq8wAMqvwADKr/AAyrAgAMqwQADKtNAAyrcQAMq5gADKu8AAyrvwAMq8EADKvDAAyrxQAMq8cADKvJAAyrygAMq80ADKvmAAysBwAMrAkADKwLAAysDQAMrA8ADKwRAAysEwAMrBUADKwXAAysOAAMrDsADKw+AAysQQAMrEQADKxHAAysSgAMrE0ADKxQAAysUgAMrM0ADKzPAAys0QAMrNMADKzWAAys1wAMrNgADKzZAAys2gAMrNwADKzeAAys3wAMrOAADKziAAys4wAMrV4ADK1gAAytYgAMrWQADK1nAAytaAAMrWkADK1qAAytawAMrW0ADK1vAAytcAAMrXEADK1zAAytdAAMre8ADK3xAAyt9AAMrfYADK35AAyt+gAMrfsADK38AAyt/QAMrf8ADK4BAAyuAgAMrgMADK4FAAyuBgAMrh8ADK4gAAyuIQAMriMADK6eAAyuoAAMrqIADK6kAAyupwAMrqgADK6pAAyuqgAMrqsADK6tAAyurwAMrrAADK6xAAyuswAMrrQADK8vAAyvMQAMrzMADK81AAyvOAAMrzkADK86AAyvOwAMrzwADK8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OAAzbDwAM2xAADNsSAAzbFAAM2xUADNsWAAzbGAAM2xkADNuUAAzblgAM25gADNuaAAzbnQAM254ADNufAAzboAAM26EADNujAAzbpQAM26YADNunAAzbqQAM26oADNw9AAzcYAAM3IAADNygAAzcogAM3KQADNymAAzcqAAM3KsADNysAAzcrQAM3LAADNyxAAzcswAM3LQADNy2AAzcuQAM3LoADNy7AAzcvgAM3L8ADNzEAAzc3QAM3OYADNzoAAzc6gAM3PMADNz2AAzc+QAM3PsADN1EAAzdaAAM3Y8ADN2zAAzdtgAM3bgADN26AAzdvAAM3b4ADN3AAAzdwQAM3cQADN3dAAzd/gAM3gAADN4CAAzeBAAM3gYADN4IAAzeCgAM3gwADN4OAAzeLwAM3jIADN41AAzeOAAM3jsADN4+AAzeQQAM3kQADN5HAAzeSQAM3sQADN7GAAzeyAAM3soADN7NAAzezgAM3s8ADN7QAAze0QAM3tMADN7VAAze1gAM3tcADN7ZAAze2gAM31UADN9XAAzfWQAM31sADN9eAAzfXwAM32AADN9hAAzfYgAM32QADN9mAAzfZwAM32gADN9qAAzfawAM3+YADN/oAAzf6wAM3+0ADN/wAAzf8QAM3/IADN/zAAzf9AAM3/YADN/4AAzf+QAM3/oADN/8AAzf/QAM4BYADOAXAAzgGAAM4BoADOCVAAzglwAM4JkADOCbAAzgngAM4J8ADOCgAAzgoQAM4KIADOCkAAzgpgAM4KcADOCoAAzgqgAM4KsADOEmAAzhKAAM4SoADOEsAAzhLwAM4TAADOExAAzhMgAM4TMADOE1AAzhNwAM4TgADOE5AAzhOwAM4TwADOG3AAzhuQAM4bsADOG9AAzhwAAM4cEADOHCAAzhwwAM4cQADOHGAAzhyAAM4ckADOHKAAzhzAAM4c0ADOJIAAziSgAM4kwADOJOAAziUQAM4lIADOJTAAziVAAM4lUADOJXAAziWQAM4loADOJbAAziXQAM4l4ADOLZAAzi2wAM4t0ADOLfAAzi4gAM4uMADOLkAAzi5QAM4uYADOLoAAzi6gAM4usADOLsAAzi7gAM4u8ADOM4AAzjXAAM44MADOOnAAzjqgAM46wADOOuAAzjsAAM47IADOO0AAzjtQAM47gADOPRAAzj7gAM4/AADOPyAAzj9AAM4/YADOP4AAzj+gAM4/wADOQZAAzkHAAM5B8ADOQiAAzkJQAM5CgADOQrAAzkLgAM5DAADOSrAAzkrQAM5K8ADOSxAAzktAAM5LUADOS2AAzktwAM5LgADOS6AAzkvAAM5L0ADOS+AAzkwAAM5MEADOU8AAzlPgAM5UAADOVCAAzlRQAM5UYADOVHAAzlSAAM5UkADOVLAAzlTQAM5U4ADOVPAAzlUQAM5VIADOXNAAzlzwAM5dEADOXTAAzl1gAM5dcADOXYAAzl2QAM5doADOXcAAzl3gAM5d8ADOXgAAzl4gAM5eMADOZeAAzmYAAM5mMADOZlAAzmaAAM5mkADOZqAAzmawAM5mwADOZuAAzmcAAM5nEADOZyAAzmdAAM5nUADObwAAzm8gAM5vQADOb2AAzm+QAM5voADOb7AAzm/AAM5v0ADOb/AAznAQAM5wIADOcDAAznBQAM5wYADOeBAAzngwAM54UADOeHAAznigAM54sADOeMAAznjQAM544ADOeQAAznkgAM55MADOeUAAznlgAM55cADOgSAAzoFAAM6BYADOgYAAzoGwAM6BwADOgdAAzoHgAM6B8ADOghAAzoIwAM6CQADOglAAzoJwAM6CgADOi7AAzo3gAM6P4ADOkeAAzpIAAM6SIADOkkAAzpJgAM6SkADOkqAAzpKwAM6S4ADOkvAAzpMQAM6TIADOk1AAzpOAAM6TkADOk6AAzpPQAM6T4ADOlHAAzpYAAM6WkADOlrAAzpbQAM6XYADOl5AAzpfAAM6X4ADOnHAAzp6wAM6hIADOo2AAzqOQAM6jsADOo9AAzqPwAM6kEADOpDAAzqRAAM6kcADOpgAAzqgQAM6oMADOqFAAzqhwAM6okADOqLAAzqjQAM6o8ADOqRAAzqsgAM6rUADOq4AAzquwAM6r4ADOrBAAzqxAAM6scADOrKAAzqzAAM60cADOtJAAzrSwAM600ADOtQAAzrUQAM61IADOtTAAzrVAAM61YADOtYAAzrWQAM61oADOtcAAzrXQAM69gADOvaAAzr3AAM694ADOvhAAzr4gAM6+MADOvkAAzr5QAM6+cADOvpAAzr6gAM6+sADOvtAAzr7gAM7GkADOxrAAzsbgAM7HAADOxzAAzsdAAM7HUADOx2AAzsdwAM7HkADOx7AAzsfAAM7H0ADOx/AAzsgAAM7JkADOyaAAzsmwAM7J0ADO0YAAztGgAM7RwADO0eAAztIQAM7SIADO0jAAztJAAM7SUADO0nAAztKQAM7SoADO0rAAztLQAM7S4ADO2pAAztqwAM7a0ADO2vAAztsgAM7bMADO20AAzttQAM7bYADO24AAztugAM7bsADO28AAztvgAM7b8ADO46AAzuPAAM7j4ADO5AAAzuQwAM7kQADO5FAAzuRgAM7kcADO5JAAzuSwAM7kwADO5NAAzuTwAM7lAADO7LAAzuzQAM7s8ADO7RAAzu1AAM7tUADO7WAAzu1wAM7tgADO7aAAzu3AAM7t0ADO7eAAzu4AAM7uEADO9cAAzvXgAM72AADO9iAAzvZQAM72YADO9nAAzvaAAM72kADO9rAAzvbQAM724ADO9vAAzvcQAM73IADO+7AAzv3wAM8AYADPAqAAzwLQAM8C8ADPAxAAzwMwAM8DUADPA3AAzwOAAM8DsADPBUAAzwcQAM8HMADPB1AAzwdwAM8HkADPB7AAzwfQAM8H8ADPCcAAzwnwAM8KIADPClAAzwqAAM8KsADPCuAAzwsQAM8LMADPEuAAzxMAAM8TIADPE0AAzxNwAM8TgADPE5AAzxOgAM8TsADPE9AAzxPwAM8UAADPFBAAzxQwAM8UQADPG/AAzxwQAM8cMADPHFAAzxyAAM8ckADPHKAAzxywAM8cwADPHOAAzx0AAM8dEADPHSAAzx1AAM8dUADPJQAAzyUgAM8lQADPJWAAzyWQAM8loADPJbAAzyXAAM8l0ADPJfAAzyYQAM8mIADPJjAAzyZQAM8mYADPLhAAzy4wAM8uYADPLoAAzy6wAM8uwADPLtAAzy7gAM8u8ADPLxAAzy8wAM8vQADPL1AAzy9wAM8vgADPN7AAzznwAM88MADPPmAAz0DQAM9C0ADPRUAAz0ewAM9JsADPS/AAz04wAM9OUADPToAAz06gAM9OwADPTuAAz08QAM9PQADPT2AAz0+AAM9PsADPT9AAz0/wAM9QIADPUFAAz1BgAM9QsADPUkAAz1KQAM9SsADPUwAAz1MwAM9TUADPV+AAz1ogAM9ckADPXtAAz18AAM9fIADPX0AAz19gAM9fgADPX6AAz1+wAM9f4ADPYXAAz2PAAM9j4ADPZAAAz2QgAM9kQADPZGAAz2SAAM9koADPZMAAz2TgAM9nMADPZ2AAz2eQAM9nwADPZ/AAz2ggAM9oUADPaIAAz2iwAM9o4ADPaQAAz3CwAM9w0ADPcQAAz3EgAM9xUADPcWAAz3FwAM9xgADPcZAAz3GwAM9x0ADPceAAz3HwAM9yEADPciAAz3MwAM9zQADPc2AAz3sQAM97MADPe1AAz3twAM97oADPe7AAz3vAAM970ADPe+AAz3wAAM98IADPfDAAz3xAAM98YADPfHAAz4QgAM+EQADPhHAAz4SQAM+EwADPhNAAz4TgAM+E8ADPhQAAz4UgAM+FQADPhVAAz4VgAM+FgADPhZAAz4agAM+GsADPhtAAz46AAM+OoADPjsAAz47gAM+PEADPjyAAz48wAM+PQADPj1AAz49wAM+PkADPj6AAz4+wAM+P0ADPj+AAz5eQAM+XsADPl+AAz5gAAM+YMADPmEAAz5hQAM+YYADPmHAAz5iQAM+YsADPmMAAz5jQAM+Y8ADPmQAAz5oQAM+aIADPmkAAz6HwAM+iEADPojAAz6JQAM+igADPopAAz6KgAM+isADPosAAz6LgAM+jAADPoxAAz6MgAM+jQADPo1AAz6sAAM+rIADPq1AAz6twAM+roADPq7AAz6vAAM+r0ADPq+AAz6wAAM+sIADPrDAAz6xAAM+sYADPrHAAz64AAM+uEADPriAAz65AAM+18ADPthAAz7YwAM+2UADPtoAAz7aQAM+2oADPtrAAz7bAAM+24ADPtwAAz7cQAM+3IADPt0AAz7dQAM+/AADPvyAAz79QAM+/cADPv6AAz7+wAM+/wADPv9AAz7/gAM/AAADPwCAAz8AwAM/AQADPwGAAz8BwAM/CIADPw7AAz8SAAM/EsADPxOAAz8UQAM/F4ADPxhAAz8ZAAM/GcADPxpAAz8dQAM/JAADPyiAAz9NQAM/VgADP14AAz9mAAM/ZoADP2cAAz9ngAM/aAADP2jAAz9pAAM/aUADP2oAAz9qQAM/asADP2sAAz9rgAM/bEADP2yAAz9swAM/bYADP23AAz9vAAM/dUADP3eAAz94AAM/eIADP3rAAz97gAM/fEADP3zAAz+PAAM/mAADP6HAAz+qwAM/q4ADP6wAAz+sgAM/rQADP62AAz+uAAM/rkADP68AAz+1QAM/vYADP74AAz++gAM/vwADP7+AAz/AAAM/wIADP8EAAz/BgAM/ycADP8qAAz/LQAM/zAADP8zAAz/NgAM/zkADP88AAz/PwAM/0EADP+8AAz/vgAM/8AADP/CAAz/xQAM/8YADP/HAAz/yAAM/8kADP/LAAz/zQAM/84ADP/PAAz/0QAM/9IADQBNAA0ATwANAFEADQBTAA0AVgANAFcADQBYAA0AWQANAFoADQBcAA0AXgANAF8ADQBgAA0AYgANAGMADQDeAA0A4AANAOMADQDlAA0A6AANAOkADQDqAA0A6wANAOwADQDuAA0A8AANAPEADQDyAA0A9AANAPUADQEOAA0BDwANARAADQESAA0BjQANAY8ADQGRAA0BkwANAZYADQGXAA0BmAANAZkADQGaAA0BnAANAZ4ADQGfAA0BoAANAaIADQGjAA0CHgANAiAADQIiAA0CJAANAicADQIoAA0CKQANAioADQIrAA0CLQANAi8ADQIwAA0CMQANAjMADQI0AA0CrwANArEADQKzAA0CtQANArgADQK5AA0CugANArsADQK8AA0CvgANAsAADQLBAA0CwgANAsQADQLFAA0DQAANA0IADQNEAA0DRgANA0kADQNKAA0DSwANA0wADQNNAA0DTwANA1EADQNSAA0DUwANA1UADQNWAA0D0QANA9MADQPVAA0D1wANA9oADQPbAA0D3AANA90ADQPeAA0D4AANA+IADQPjAA0D5AANA+YADQPnAA0EMAANBFQADQR7AA0EnwANBKIADQSkAA0EpgANBKgADQSqAA0ErAANBK0ADQSwAA0EyQANBOYADQToAA0E6gANBOwADQTuAA0E8AANBPIADQT0AA0FEQANBRQADQUXAA0FGgANBR0ADQUgAA0FIwANBSYADQUoAA0FowANBaUADQWnAA0FqQANBawADQWtAA0FrgANBa8ADQWwAA0FsgANBbQADQW1AA0FtgANBbgADQW5AA0GNAANBjYADQY4AA0GOgANBj0ADQY+AA0GPwANBkAADQZBAA0GQwANBkUADQZGAA0GRwANBkkADQZKAA0GxQANBscADQbJAA0GywANBs4ADQbPAA0G0AANBtEADQbSAA0G1AANBtYADQbXAA0G2AANBtoADQbbAA0HVgANB1gADQdaAA0HXAANB18ADQdgAA0HYQANB2IADQdjAA0HZQANB2cADQdoAA0HaQANB2sADQdsAA0H5wANB+kADQfrAA0H7QANB/AADQfxAA0H8gANB/MADQf0AA0H9gANB/gADQf5AA0H+gANB/wADQf9AA0IeAANCHoADQh8AA0IfgANCIEADQiCAA0IgwANCIQADQiFAA0IhwANCIkADQiKAA0IiwANCI0ADQiOAA0JCQANCQsADQkNAA0JDwANCRIADQkTAA0JFAANCRUADQkWAA0JGAANCRoADQkbAA0JHAANCR4ADQkfAA0JsgANCdUADQn1AA0KFQANChcADQoZAA0KGwANCh0ADQogAA0KIQANCiIADQolAA0KJgANCigADQopAA0KKwANCi4ADQovAA0KMAANCjMADQo0AA0KOQANClIADQpbAA0KXQANCl8ADQpoAA0KawANCm4ADQpwAA0KuQANCt0ADQsEAA0LKAANCysADQstAA0LLwANCzEADQszAA0LNQANCzYADQs5AA0LUgANC3MADQt1AA0LdwANC3kADQt7AA0LfQANC38ADQuBAA0LgwANC6QADQunAA0LqgANC60ADQuwAA0LswANC7YADQu5AA0LvAANC74ADQw5AA0MOwANDD0ADQw/AA0MQgANDEMADQxEAA0MRQANDEYADQxIAA0MSgANDEsADQxMAA0MTgANDE8ADQzKAA0MzAANDM4ADQzQAA0M0wANDNQADQzVAA0M1gANDNcADQzZAA0M2wANDNwADQzdAA0M3wANDOAADQ1bAA0NXQANDWAADQ1iAA0NZQANDWYADQ1nAA0NaAANDWkADQ1rAA0NbQANDW4ADQ1vAA0NcQANDXIADQ2LAA0NjAANDY0ADQ2PAA0OCgANDgwADQ4OAA0OEAANDhMADQ4UAA0OFQANDhYADQ4XAA0OGQANDhsADQ4cAA0OHQANDh8ADQ4gAA0OmwANDp0ADQ6fAA0OoQANDqQADQ6lAA0OpgANDqcADQ6oAA0OqgANDqwADQ6tAA0OrgANDrAADQ6xAA0PLAANDy4ADQ8wAA0PMgANDzUADQ82AA0PNwANDzgADQ85AA0POwANDz0ADQ8+AA0PPwAND0EADQ9CAA0PvQAND78ADQ/BAA0PwwAND8YADQ/HAA0PyAAND8kADQ/KAA0PzAAND84ADQ/PAA0P0AAND9IADQ/TAA0QTgANEFAADRBSAA0QVAANEFcADRBYAA0QWQANEFoADRBbAA0QXQANEF8ADRBgAA0QYQANEGMADRBkAA0QrQANENEADRD4AA0RHAANER8ADREhAA0RIwANESUADREnAA0RKQANESoADREtAA0RRgANEWMADRFlAA0RZwANEWkADRFrAA0RbQANEW8ADRFxAA0RjgANEZEADRGUAA0RlwANEZoADRGdAA0RoAANEaMADRGlAA0SIAANEiIADRIkAA0SJgANEikADRIqAA0SKwANEiwADRItAA0SLwANEjEADRIyAA0SMwANEjUADRI2AA0SsQANErMADRK1AA0StwANEroADRK7AA0SvAANEr0ADRK+AA0SwAANEsIADRLDAA0SxAANEsYADRLHAA0TQgANE0QADRNGAA0TSAANE0sADRNMAA0TTQANE04ADRNPAA0TUQANE1MADRNUAA0TVQANE1cADRNYAA0T0wANE9UADRPXAA0T2QANE9wADRPdAA0T3gANE98ADRPgAA0T4gANE+QADRPlAA0T5gANE+gADRPpAA0UZAANFGYADRRoAA0UagANFG0ADRRuAA0UbwANFHAADRRxAA0UcwANFHUADRR2AA0UdwANFHkADRR6AA0U9QANFPcADRT5AA0U+wANFP4ADRT/AA0VAAANFQEADRUCAA0VBAANFQYADRUHAA0VCAANFQoADRULAA0VhgANFYgADRWKAA0VjAANFY8ADRWQAA0VkQANFZIADRWTAA0VlQANFZcADRWYAA0VmQANFZsADRWcAA0WLwANFlIADRZyAA0WkgANFpQADRaWAA0WmAANFpoADRadAA0WngANFp8ADRaiAA0WowANFqUADRamAA0WqQANFqwADRatAA0WrgANFrEADRayAA0WtwANFtAADRbZAA0W2wANFt0ADRbmAA0W6QANFuwADRbuAA0XNwANF1sADReCAA0XpgANF6kADRerAA0XrQANF68ADRexAA0XswANF7QADRe3AA0X0AANF/EADRfzAA0X9QANF/cADRf5AA0X+wANF/0ADRf/AA0YAQANGCIADRglAA0YKAANGCsADRguAA0YMQANGDQADRg3AA0YOgANGDwADRi3AA0YuQANGLsADRi9AA0YwAANGMEADRjCAA0YwwANGMQADRjGAA0YyAANGMkADRjKAA0YzAANGM0ADRlIAA0ZSgANGUwADRlOAA0ZUQANGVIADRlTAA0ZVAANGVUADRlXAA0ZWQANGVoADRlbAA0ZXQANGV4ADRnZAA0Z2wANGd4ADRngAA0Z4wANGeQADRnlAA0Z5gANGecADRnpAA0Z6wANGewADRntAA0Z7wANGfAADRoJAA0aCgANGgsADRoNAA0aiAANGooADRqMAA0ajgANGpEADRqSAA0akwANGpQADRqVAA0alwANGpkADRqaAA0amwANGp0ADRqeAA0bGQANGxsADRsdAA0bHwANGyIADRsjAA0bJAANGyUADRsmAA0bKAANGyoADRsrAA0bLAANGy4ADRsvAA0bqgANG6wADRuuAA0bsAANG7MADRu0AA0btQANG7YADRu3AA0buQANG7sADRu8AA0bvQANG78ADRvAAA0cOwANHD0ADRw/AA0cQQANHEQADRxFAA0cRgANHEcADRxIAA0cSgANHEwADRxNAA0cTgANHFAADRxRAA0czAANHM4ADRzQAA0c0gANHNUADRzWAA0c1wANHNgADRzZAA0c2wANHN0ADRzeAA0c3wANHOEADRziAA0dKwANHU8ADR12AA0dmgANHZ0ADR2fAA0doQANHaMADR2lAA0dpwANHagADR2rAA0dxAANHeEADR3jAA0d5QANHecADR3pAA0d6wANHe0ADR3vAA0eDAANHg8ADR4SAA0eFQANHhgADR4bAA0eHgANHiEADR4jAA0engANHqAADR6iAA0epAANHqcADR6oAA0eqQANHqoADR6rAA0erQANHq8ADR6wAA0esQANHrMADR60AA0fLwANHzEADR8zAA0fNQANHzgADR85AA0fOgANHzsADR88AA0fPgANH0AADR9BAA0fQgANH0QADR9FAA0fwAANH8IADR/EAA0fxgANH8kADR/KAA0fywANH8wADR/NAA0fzwANH9EADR/SAA0f0wANH9UADR/WAA0gUQANIFMADSBWAA0gWAANIFsADSBcAA0gXQANIF4ADSBfAA0gYQANIGMADSBkAA0gZQANIGcADSBoAA0g4wANIOUADSDnAA0g6QANIOwADSDtAA0g7gANIO8ADSDwAA0g8gANIPQADSD1AA0g9gANIPgADSD5AA0hdAANIXYADSF4AA0hegANIX0ADSF+AA0hfwANIYAADSGBAA0hgwANIYUADSGGAA0hhwANIYkADSGKAA0iBQANIgcADSIKAA0iDAANIg8ADSIQAA0iEQANIhIADSITAA0iFQANIhcADSIYAA0iGQANIhsADSIcAA0iLQANIjIADSI1AA0iNwANInAADSJzAA0idQANIngADSJ7AA0ifgANIoEADSKKAA0jBQANIwcADSMJAA0jCwANIw4ADSMPAA0jEAANIxEADSMSAA0jFAANIxYADSMXAA0jGAANIxoADSMbAA0jlgANI5gADSOaAA0jnAANI58ADSOgAA0joQANI6IADSOjAA0jpQANI6cADSOoAA0jqQANI6sADSOsAA0kJwANJCkADSQsAA0kLgANJDEADSQyAA0kMwANJDQADSQ1AA0kNwANJDkADSQ6AA0kOwANJD0ADSQ+AA0kTwANJFAADSRSAA0kYwANJGwADSRvAA0kcgANJHQADSStAA0ksAANJLIADSS1AA0kuAANJLsADSS+AA0lQQANJWUADSWJAA0lrAANJdMADSXzAA0mGgANJkEADSZhAA0mhQANJqkADSarAA0mrgANJrAADSayAA0mtAANJrcADSa6AA0mvAANJr4ADSbBAA0mwwANJsUADSbIAA0mywANJswADSbRAA0m6gANJu8ADSbxAA0m9gANJvkADSb7AA0nRAANJ2gADSePAA0nswANJ7YADSe4AA0nugANJ7wADSe+AA0nwAANJ8EADSfEAA0n3QANKAIADSgEAA0oBgANKAgADSgKAA0oDAANKA4ADSgQAA0oEgANKBQADSg5AA0oPAANKD8ADShCAA0oRQANKEgADShLAA0oTgANKFEADShUAA0oVgANKNEADSjTAA0o1gANKNgADSjbAA0o3AANKN0ADSjeAA0o3wANKOEADSjjAA0o5AANKOUADSjnAA0o6AANKPkADSj6AA0o/AANKXcADSl5AA0pewANKX0ADSmAAA0pgQANKYIADSmDAA0phAANKYYADSmIAA0piQANKYoADSmMAA0pjQANKggADSoKAA0qDQANKg8ADSoSAA0qEwANKhQADSoVAA0qFgANKhgADSoaAA0qGwANKhwADSoeAA0qHwANKjAADSoxAA0qMwANKq4ADSqwAA0qsgANKrQADSq3AA0quAANKrkADSq6AA0quwANKr0ADSq/AA0qwAANKsEADSrDAA0qxAANKz8ADStBAA0rRAANK0YADStJAA0rSgANK0sADStMAA0rTQANK08ADStRAA0rUgANK1MADStVAA0rVgANK2cADStoAA0ragANK+UADSvnAA0r6QANK+sADSvuAA0r7wANK/AADSvxAA0r8gANK/QADSv2AA0r9wANK/gADSv6AA0r+wANLHYADSx4AA0sewANLH0ADSyAAA0sgQANLIIADSyDAA0shAANLIYADSyIAA0siQANLIoADSyMAA0sjQANLKYADSynAA0sqAANLKoADS0lAA0tJwANLSkADS0rAA0tLgANLS8ADS0wAA0tMQANLTIADS00AA0tNgANLTcADS04AA0tOgANLTsADS22AA0tuAANLbsADS29AA0twAANLcEADS3CAA0twwANLcQADS3GAA0tyAANLckADS3KAA0tzAANLc0ADS3rAA0uBAANLhEADS4UAA0uFwANLhoADS4nAA0uKgANLi0ADS4wAA0uMgANLkgADS5aAA0u7QANLxAADS8wAA0vUAANL1IADS9UAA0vVgANL1gADS9bAA0vXAANL10ADS9gAA0vYQANL2MADS9kAA0vZwANL2oADS9rAA0vbAANL28ADS9wAA0vdQANL44ADS+XAA0vmQANL5sADS+kAA0vpwANL6oADS+sAA0v9QANMBkADTBAAA0wZAANMGcADTBpAA0wawANMG0ADTBvAA0wcQANMHIADTB1AA0wjgANMK8ADTCxAA0wswANMLUADTC3AA0wuQANMLsADTC9AA0wvwANMOAADTDjAA0w5gANMOkADTDsAA0w7wANMPIADTD1AA0w+AANMPoADTF1AA0xdwANMXkADTF7AA0xfgANMX8ADTGAAA0xgQANMYIADTGEAA0xhgANMYcADTGIAA0xigANMYsADTIGAA0yCAANMgoADTIMAA0yDwANMhAADTIRAA0yEgANMhMADTIVAA0yFwANMhgADTIZAA0yGwANMhwADTKXAA0ymQANMpwADTKeAA0yoQANMqIADTKjAA0ypAANMqUADTKnAA0yqQANMqoADTKrAA0yrQANMq4ADTLHAA0yyAANMskADTLLAA0zRgANM0gADTNKAA0zTAANM08ADTNQAA0zUQANM1IADTNTAA0zVQANM1cADTNYAA0zWQANM1sADTNcAA0z1wANM9kADTPbAA0z3QANM+AADTPhAA0z4gANM+MADTPkAA0z5gANM+gADTPpAA0z6gANM+wADTPtAA00aAANNGoADTRsAA00bgANNHEADTRyAA00cwANNHQADTR1AA00dwANNHkADTR6AA00ewANNH0ADTR+AA00+QANNPsADTT9AA00/wANNQIADTUDAA01BAANNQUADTUGAA01CAANNQoADTULAA01DAANNQ4ADTUPAA01igANNYwADTWOAA01kAANNZMADTWUAA01lQANNZYADTWXAA01mQANNZsADTWcAA01nQANNZ8ADTWgAA016QANNg0ADTY0AA02WAANNlsADTZdAA02XwANNmEADTZjAA02ZQANNmYADTZpAA02ggANNp8ADTahAA02owANNqUADTanAA02qQANNqsADTatAA02ygANNs0ADTbQAA020wANNtYADTbZAA023AANNt8ADTbhAA03XAANN14ADTdgAA03YgANN2UADTdmAA03ZwANN2gADTdpAA03awANN20ADTduAA03bwANN3EADTdyAA037QANN+8ADTfxAA038wANN/YADTf3AA03+AANN/kADTf6AA03/AANN/4ADTf/AA04AAANOAIADTgDAA04fgANOIAADTiCAA04hAANOIcADTiIAA04iQANOIoADTiLAA04jQANOI8ADTiQAA04kQANOJMADTiUAA05DwANOREADTkUAA05FgANORkADTkaAA05GwANORwADTkdAA05HwANOSEADTkiAA05IwANOSUADTkmAA05oQANOaMADTmlAA05pwANOaoADTmrAA05rAANOa0ADTmuAA05sAANObIADTmzAA05tAANObYADTm3AA06MgANOjQADTo2AA06OAANOjsADTo8AA06PQANOj4ADTo/AA06QQANOkMADTpEAA06RQANOkcADTpIAA06wwANOsUADTrIAA06ygANOs0ADTrOAA06zwANOtAADTrRAA060wANOtUADTrWAA061wANOtkADTraAA07bQANO5AADTuwAA070AANO9IADTvUAA071gANO9gADTvbAA073AANO90ADTvgAA074QANO+MADTvkAA075wANO+oADTvrAA077AANO+8ADTvwAA079QANPA4ADTwXAA08GQANPBsADTwkAA08JwANPCoADTwsAA08dQANPJkADTzAAA085AANPOcADTzpAA086wANPO0ADTzvAA088QANPPIADTz1AA09DgANPS8ADT0xAA09MwANPTUADT03AA09OQANPTsADT09AA09PwANPWAADT1jAA09ZgANPWkADT1sAA09bwANPXIADT11AA09eAANPXoADT31AA099wANPfkADT37AA09/gANPf8ADT4AAA0+AQANPgIADT4EAA0+BgANPgcADT4IAA0+CgANPgsADT6GAA0+iAANPooADT6MAA0+jwANPpAADT6RAA0+kgANPpMADT6VAA0+lwANPpgADT6ZAA0+mwANPpwADT8XAA0/GQANPxwADT8eAA0/IQANPyIADT8jAA0/JAANPyUADT8nAA0/KQANPyoADT8rAA0/LQANPy4ADT9HAA0/SAANP0kADT9LAA0/xgANP8gADT/KAA0/zAANP88ADT/QAA0/0QANP9IADT/TAA0/1QANP9cADT/YAA0/2QANP9sADT/cAA1AVwANQFkADUBbAA1AXQANQGAADUBhAA1AYgANQGMADUBkAA1AZgANQGgADUBpAA1AagANQGwADUBtAA1A6AANQOoADUDsAA1A7gANQPEADUDyAA1A8wANQPQADUD1AA1A9wANQPkADUD6AA1A+wANQP0ADUD+AA1BeQANQXsADUF9AA1BfwANQYIADUGDAA1BhAANQYUADUGGAA1BiAANQYoADUGLAA1BjAANQY4ADUGPAA1CCgANQgwADUIOAA1CEAANQhMADUIUAA1CFQANQhYADUIXAA1CGQANQhsADUIcAA1CHQANQh8ADUIgAA1CaQANQo0ADUK0AA1C2AANQtsADULdAA1C3wANQuEADULjAA1C5QANQuYADULpAA1DAgANQx8ADUMhAA1DIwANQyUADUMnAA1DKQANQysADUMtAA1DSgANQ00ADUNQAA1DUwANQ1YADUNZAA1DXAANQ18ADUNhAA1D3AANQ94ADUPgAA1D4gANQ+UADUPmAA1D5wANQ+gADUPpAA1D6wANQ+0ADUPuAA1D7wANQ/EADUPyAA1EbQANRG8ADURyAA1EdAANRHcADUR4AA1EeQANRHoADUR7AA1EfQANRH8ADUSAAA1EgQANRIMADUSEAA1E/wANRQEADUUDAA1FBQANRQgADUUJAA1FCgANRQsADUUMAA1FDgANRRAADUURAA1FEgANRRQADUUVAA1FkAANRZIADUWVAA1FlwANRZoADUWbAA1FnAANRZ0ADUWeAA1FoAANRaIADUWjAA1FpAANRaYADUWnAA1GIgANRiQADUYmAA1GKAANRisADUYsAA1GLQANRi4ADUYvAA1GMQANRjMADUY0AA1GNQANRjcADUY4AA1GswANRrUADUa3AA1GuQANRrwADUa9AA1GvgANRr8ADUbAAA1GwgANRsQADUbFAA1GxgANRsgADUbJAA1HRAANR0YADUdJAA1HSwANR04ADUdPAA1HUAANR1EADUdSAA1HVAANR1YADUdXAA1HWAANR1oADUdbAA1H7gANSBEADUgxAA1IUQANSFMADUhVAA1IVwANSFkADUhcAA1IXQANSF4ADUhhAA1IYgANSGQADUhlAA1IZwANSGoADUhrAA1IbAANSG8ADUhwAA1IdQANSI4ADUiXAA1ImQANSJsADUikAA1IpwANSKoADUisAA1I9QANSRkADUlAAA1JZAANSWcADUlpAA1JawANSW0ADUlvAA1JcQANSXIADUl1AA1JjgANSa8ADUmxAA1JswANSbUADUm3AA1JuQANSbsADUm9AA1JvwANSeAADUnjAA1J5gANSekADUnsAA1J7wANSfIADUn1AA1J+AANSfoADUp1AA1KdwANSnkADUp7AA1KfgANSn8ADUqAAA1KgQANSoIADUqEAA1KhgANSocADUqIAA1KigANSosADUsGAA1LCAANSwoADUsMAA1LDwANSxAADUsRAA1LEgANSxMADUsVAA1LFwANSxgADUsZAA1LGwANSxwADUuXAA1LmQANS5wADUueAA1LoQANS6IADUujAA1LpAANS6UADUunAA1LqQANS6oADUurAA1LrQANS64ADUvHAA1LyAANS8kADUvLAA1MRgANTEgADUxKAA1MTAANTE8ADUxQAA1MUQANTFIADUxTAA1MVQANTFcADUxYAA1MWQANTFsADUxcAA1M1wANTNkADUzbAA1M3QANTOAADUzhAA1M4gANTOMADUzkAA1M5gANTOgADUzpAA1M6gANTOwADUztAA1NaAANTWoADU1sAA1NbgANTXEADU1yAA1NcwANTXQADU11AA1NdwANTXkADU16AA1NewANTX0ADU1+AA1N+QANTfsADU39AA1N/wANTgIADU4DAA1OBAANTgUADU4GAA1OCAANTgoADU4LAA1ODAANTg4ADU4PAA1OigANTowADU6OAA1OkAANTpMADU6UAA1OlQANTpYADU6XAA1OmQANTpsADU6cAA1OnQANTp8ADU6gAA1O6QANTw0ADU80AA1PWAANT1sADU9dAA1PXwANT2EADU9jAA1PZQANT2YADU9pAA1PggANT58ADU+hAA1PowANT6UADU+nAA1PqQANT6sADU+tAA1PygANT80ADU/QAA1P0wANT9YADU/ZAA1P3AANT98ADU/hAA1QXAANUF4ADVBgAA1QYgANUGUADVBmAA1QZwANUGgADVBpAA1QawANUG0ADVBuAA1QbwANUHEADVByAA1Q7QANUO8ADVDxAA1Q8wANUPYADVD3AA1Q+AANUPkADVD6AA1Q/AANUP4ADVD/AA1RAAANUQIADVEDAA1RfgANUYAADVGCAA1RhAANUYcADVGIAA1RiQANUYoADVGLAA1RjQANUY8ADVGQAA1RkQANUZMADVGUAA1SDwANUhEADVIUAA1SFgANUhkADVIaAA1SGwANUhwADVIdAA1SHwANUiEADVIiAA1SIwANUiUADVImAA1SoQANUqMADVKlAA1SpwANUqoADVKrAA1SrAANUq0ADVKuAA1SsAANUrIADVKzAA1StAANUrYADVK3AA1TMgANUzQADVM2AA1TOAANUzsADVM8AA1TPQANUz4ADVM/AA1TQQANU0MADVNEAA1TRQANU0cADVNIAA1TwwANU8UADVPHAA1TyQANU8wADVPNAA1TzgANU88ADVPQAA1T0gANU9QADVPVAA1T1gANU9gADVPZAA1UbAANVI8ADVSvAA1UzwANVNEADVTTAA1U1QANVNcADVTaAA1U2wANVNwADVTfAA1U4AANVOIADVTjAA1U5QANVOgADVTpAA1U6gANVO0ADVTuAA1U8wANVQwADVUVAA1VFwANVRkADVUiAA1VJQANVSgADVUqAA1VcwANVZcADVW+AA1V4gANVeUADVXnAA1V6QANVesADVXtAA1V7wANVfAADVXzAA1WDAANVi0ADVYvAA1WMQANVjMADVY1AA1WNwANVjkADVY7AA1WPQANVl4ADVZhAA1WZAANVmcADVZqAA1WbQANVnAADVZzAA1WdgANVngADVbzAA1W9QANVvcADVb5AA1W/AANVv0ADVb+AA1W/wANVwAADVcCAA1XBAANVwUADVcGAA1XCAANVwkADVeEAA1XhgANV4gADVeKAA1XjQANV44ADVePAA1XkAANV5EADVeTAA1XlQANV5YADVeXAA1XmQANV5oADVgVAA1YFwANWBoADVgcAA1YHwANWCAADVghAA1YIgANWCMADVglAA1YJwANWCgADVgpAA1YKwANWCwADVhFAA1YRgANWEcADVhJAA1YxAANWMYADVjIAA1YygANWM0ADVjOAA1YzwANWNAADVjRAA1Y0wANWNUADVjWAA1Y1wANWNkADVjaAA1ZVQANWVcADVlZAA1ZWwANWV4ADVlfAA1ZYAANWWEADVliAA1ZZAANWWYADVlnAA1ZaAANWWoADVlrAA1Z5gANWegADVnqAA1Z7AANWe8ADVnwAA1Z8QANWfIADVnzAA1Z9QANWfcADVn4AA1Z+QANWfsADVn8AA1adwANWnkADVp7AA1afQANWoAADVqBAA1aggANWoMADVqEAA1ahgANWogADVqJAA1aigANWowADVqNAA1bCAANWwoADVsMAA1bDgANWxEADVsSAA1bEwANWxQADVsVAA1bFwANWxkADVsaAA1bGwANWx0ADVseAA1bZwANW4sADVuyAA1b1gANW9kADVvbAA1b3QANW98ADVvhAA1b4wANW+QADVvnAA1cAAANXB0ADVwfAA1cIQANXCMADVwlAA1cJwANXCkADVwrAA1cSAANXEsADVxOAA1cUQANXFQADVxXAA1cWgANXF0ADVxfAA1c2gANXNwADVzeAA1c4AANXOMADVzkAA1c5QANXOYADVznAA1c6QANXOsADVzsAA1c7QANXO8ADVzwAA1dawANXW0ADV1vAA1dcQANXXQADV11AA1ddgANXXcADV14AA1degANXXwADV19AA1dfgANXYAADV2BAA1d/AANXf4ADV4AAA1eAgANXgUADV4GAA1eBwANXggADV4JAA1eCwANXg0ADV4OAA1eDwANXhEADV4SAA1ejQANXo8ADV6SAA1elAANXpcADV6YAA1emQANXpoADV6bAA1enQANXp8ADV6gAA1eoQANXqMADV6kAA1fHwANXyEADV8jAA1fJQANXygADV8pAA1fKgANXysADV8sAA1fLgANXzAADV8xAA1fMgANXzQADV81AA1fsAANX7IADV+0AA1ftgANX7kADV+6AA1fuwANX7wADV+9AA1fvwANX8EADV/CAA1fwwANX8UADV/GAA1gQQANYEMADWBFAA1gRwANYEoADWBLAA1gTAANYE0ADWBOAA1gUAANYFIADWBTAA1gVAANYFYADWBXAA1gaAANYG0ADWBwAA1gcgANYHcADWDyAA1g9AANYPYADWD4AA1g+wANYPwADWD9AA1g/gANYP8ADWEBAA1hAwANYQQADWEFAA1hBwANYQgADWGDAA1hhQANYYcADWGJAA1hjAANYY0ADWGOAA1hjwANYZAADWGSAA1hlAANYZUADWGWAA1hmAANYZkADWIUAA1iFgANYhkADWIbAA1iHgANYh8ADWIgAA1iIQANYiIADWIkAA1iJgANYicADWIoAA1iKgANYisADWK+AA1i4QANYwEADWMhAA1jIwANYyUADWMnAA1jKQANYywADWMtAA1jLgANYzEADWMyAA1jNAANYzUADWM3AA1jOgANYzsADWM8AA1jPwANY0AADWNFAA1jXgANY2cADWNpAA1jawANY3QADWN3AA1jegANY3wADWPFAA1j6QANZBAADWQ0AA1kNwANZDkADWQ7AA1kPQANZD8ADWRBAA1kQgANZEUADWReAA1kfwANZIEADWSDAA1khQANZIcADWSJAA1kiwANZI0ADWSPAA1ksAANZLMADWS2AA1kuQANZLwADWS/AA1kwgANZMUADWTIAA1kygANZUUADWVHAA1lSQANZUsADWVOAA1lTwANZVAADWVRAA1lUgANZVQADWVWAA1lVwANZVgADWVaAA1lWwANZdYADWXYAA1l2gANZdwADWXfAA1l4AANZeEADWXiAA1l4wANZeUADWXnAA1l6AANZekADWXrAA1l7AANZmcADWZpAA1mbAANZm4ADWZxAA1mcgANZnMADWZ0AA1mdQANZncADWZ5AA1megANZnsADWZ9AA1mfgANZpcADWaYAA1mmQANZpsADWcWAA1nGAANZxoADWccAA1nHwANZyAADWchAA1nIgANZyMADWclAA1nJwANZygADWcpAA1nKwANZywADWenAA1nqQANZ6sADWetAA1nsAANZ7EADWeyAA1nswANZ7QADWe2AA1nuAANZ7kADWe6AA1nvAANZ70ADWg4AA1oOgANaDwADWg+AA1oQQANaEIADWhDAA1oRAANaEUADWhHAA1oSQANaEoADWhLAA1oTQANaE4ADWjJAA1oywANaM0ADWjPAA1o0gANaNMADWjUAA1o1QANaNYADWjYAA1o2gANaNsADWjcAA1o3gANaN8ADWlaAA1pXAANaV4ADWlgAA1pYwANaWQADWllAA1pZgANaWcADWlpAA1pawANaWwADWltAA1pbwANaXAADWm5AA1p3QANagQADWooAA1qKwANai0ADWovAA1qMQANajMADWo1AA1qNgANajkADWpSAA1qbwANanEADWpzAA1qdQANancADWp5AA1qewANan0ADWqaAA1qnQANaqAADWqjAA1qpgANaqkADWqsAA1qrwANarEADWssAA1rLgANazAADWsyAA1rNQANazYADWs3AA1rOAANazkADWs7AA1rPQANaz4ADWs/AA1rQQANa0IADWu9AA1rvwANa8EADWvDAA1rxgANa8cADWvIAA1ryQANa8oADWvMAA1rzgANa88ADWvQAA1r0gANa9MADWxOAA1sUAANbFIADWxUAA1sVwANbFgADWxZAA1sWgANbFsADWxdAA1sXwANbGAADWxhAA1sYwANbGQADWzfAA1s4QANbOMADWzlAA1s6AANbOkADWzqAA1s6wANbOwADWzuAA1s8AANbPEADWzyAA1s9AANbPUADW1wAA1tcgANbXQADW12AA1teQANbXoADW17AA1tfAANbX0ADW1/AA1tgQANbYIADW2DAA1thQANbYYADW4BAA1uAwANbgUADW4HAA1uCgANbgsADW4MAA1uDQANbg4ADW4QAA1uEgANbhMADW4UAA1uFgANbhcADW6SAA1ulAANbpYADW6YAA1umwANbpwADW6dAA1ungANbp8ADW6hAA1uowANbqQADW6lAA1upwANbqgADW87AA1vXgANb34ADW+eAA1voAANb6IADW+kAA1vpgANb6kADW+qAA1vqwANb64ADW+vAA1vsQANb7IADW+0AA1vtwANb7gADW+5AA1vvAANb70ADW/CAA1v2wANb+QADW/mAA1v6AANb/EADW/0AA1v9wANb/kADXBCAA1wZgANcI0ADXCxAA1wtAANcLYADXC4AA1wugANcLwADXC+AA1wvwANcMIADXDbAA1w/AANcP4ADXEAAA1xAgANcQQADXEGAA1xCAANcQoADXEMAA1xLQANcTAADXEzAA1xNgANcTkADXE8AA1xPwANcUIADXFFAA1xRwANccIADXHEAA1xxgANccgADXHLAA1xzAANcc0ADXHOAA1xzwANcdEADXHTAA1x1AANcdUADXHXAA1x2AANclMADXJVAA1yVwANclkADXJcAA1yXQANcl4ADXJfAA1yYAANcmIADXJkAA1yZQANcmYADXJoAA1yaQANcuQADXLmAA1y6QANcusADXLuAA1y7wANcvAADXLxAA1y8gANcvQADXL2AA1y9wANcvgADXL6AA1y+wANcxQADXMVAA1zFgANcxgADXOTAA1zlQANc5cADXOZAA1znAANc50ADXOeAA1znwANc6AADXOiAA1zpAANc6UADXOmAA1zqAANc6kADXQkAA10JgANdCgADXQqAA10LQANdC4ADXQvAA10MAANdDEADXQzAA10NQANdDYADXQ3AA10OQANdDoADXS1AA10twANdLkADXS7AA10vgANdL8ADXTAAA10wQANdMIADXTEAA10xgANdMcADXTIAA10ygANdMsADXVGAA11SAANdUoADXVMAA11TwANdVAADXVRAA11UgANdVMADXVVAA11VwANdVgADXVZAA11WwANdVwADXXXAA112QANddsADXXdAA114AANdeEADXXiAA114wANdeQADXXmAA116AANdekADXXqAA117AANde0ADXY2AA12WgANdoEADXalAA12qAANdqoADXasAA12rgANdrAADXayAA12swANdrYADXbPAA127AANdu4ADXbwAA128gANdvQADXb2AA12+AANdvoADXcXAA13GgANdx0ADXcgAA13IwANdyYADXcpAA13LAANdy4ADXepAA13qwANd60ADXevAA13sgANd7MADXe0AA13tQANd7YADXe4AA13ugANd7sADXe8AA13vgANd78ADXg6AA14PAANeD4ADXhAAA14QwANeEQADXhFAA14RgANeEcADXhJAA14SwANeEwADXhNAA14TwANeFAADXjLAA14zQANeM8ADXjRAA141AANeNUADXjWAA141wANeNgADXjaAA143AANeN0ADXjeAA144AANeOEADXlcAA15XgANeWEADXljAA15ZgANeWcADXloAA15aQANeWoADXlsAA15bgANeW8ADXlwAA15cgANeXMADXnuAA158AANefIADXn0AA159wANefgADXn5AA15+gANefsADXn9AA15/wANegAADXoBAA16AwANegQADXp/AA16gQANeoMADXqFAA16iAANeokADXqKAA16iwANeowADXqOAA16kAANepEADXqSAA16lAANepUADXsQAA17EgANexQADXsWAA17GQANexoADXsbAA17HAANex0ADXsfAA17IQANeyIADXsjAA17JQANeyYADXu5AA173AANe/wADXwcAA18HgANfCAADXwiAA18JAANfCcADXwoAA18KQANfCwADXwtAA18LwANfDAADXwzAA18NgANfDcADXw4AA18OwANfDwADXxFAA18XgANfGcADXxpAA18awANfHQADXx3AA18egANfHwADXzFAA186QANfRAADX00AA19NwANfTkADX07AA19PQANfT8ADX1BAA19QgANfUUADX1eAA19fwANfYEADX2DAA19hQANfYcADX2JAA19iwANfY0ADX2PAA19sAANfbMADX22AA19uQANfbwADX2/AA19wgANfcUADX3IAA19ygANfkUADX5HAA1+SQANfksADX5OAA1+TwANflAADX5RAA1+UgANflQADX5WAA1+VwANflgADX5aAA1+WwANftYADX7YAA1+2gANftwADX7fAA1+4AANfuEADX7iAA1+4wANfuUADX7nAA1+6AANfukADX7rAA1+7AANf2cADX9pAA1/bAANf24ADX9xAA1/cgANf3MADX90AA1/dQANf3cADX95AA1/egANf3sADX99AA1/fgANf5cADX+YAA1/mQANf5sADYAWAA2AGAANgBoADYAcAA2AHwANgCAADYAhAA2AIgANgCMADYAlAA2AJwANgCgADYApAA2AKwANgCwADYCnAA2AqQANgKsADYCtAA2AsAANgLEADYCyAA2AswANgLQADYC2AA2AuAANgLkADYC6AA2AvAANgL0ADYE4AA2BOgANgTwADYE+AA2BQQANgUIADYFDAA2BRAANgUUADYFHAA2BSQANgUoADYFLAA2BTQANgU4ADYHJAA2BywANgc0ADYHPAA2B0gANgdMADYHUAA2B1QANgdYADYHYAA2B2gANgdsADYHcAA2B3gANgd8ADYJaAA2CXAANgl4ADYJgAA2CYwANgmQADYJlAA2CZgANgmcADYJpAA2CawANgmwADYJtAA2CbwANgnAADYK5AA2C3QANgwQADYMoAA2DKwANgy0ADYMvAA2DMQANgzMADYM1AA2DNgANgzkADYNSAA2DbwANg3EADYNzAA2DdQANg3cADYN5AA2DewANg30ADYOaAA2DnQANg6AADYOjAA2DpgANg6kADYOsAA2DrwANg7EADYQsAA2ELgANhDAADYQyAA2ENQANhDYADYQ3AA2EOAANhDkADYQ7AA2EPQANhD4ADYQ/AA2EQQANhEIADYS9AA2EvwANhMIADYTEAA2ExwANhMgADYTJAA2EygANhMsADYTNAA2EzwANhNAADYTRAA2E0wANhNQADYVPAA2FUQANhVMADYVVAA2FWAANhVkADYVaAA2FWwANhVwADYVeAA2FYAANhWEADYViAA2FZAANhWUADYXgAA2F4gANheUADYXnAA2F6gANhesADYXsAA2F7QANhe4ADYXwAA2F8gANhfMADYX0AA2F9gANhfcADYaaAA2GvgANhuIADYcCAA2HKQANh1AADYdwAA2HlwANh7sADYfeAA2IBQANiCkADYhNAA2IcQANiJgADYiZAA2ImwANiJ0ADYigAA2IogANiKUADYinAA2IqQANiKwADYiuAA2IsAANiLMADYi2AA2IuAANiLoADYi8AA2IvwANiMIADYjFAA2IzgANiOcADYjsAA2I7gANiPMADYj2AA2I+AANiUEADYllAA2JjAANibAADYmzAA2JtQANibcADYm5AA2JuwANib0ADYm+AA2JwQANidoADYn/AA2KAQANigMADYoFAA2KBwANigkADYoLAA2KDQANig8ADYoRAA2KNgANijkADYo8AA2KPwANikIADYpFAA2KSAANiksADYpOAA2KUQANilMADYrOAA2K0AANitMADYrVAA2K2AANitkADYraAA2K2wANitwADYreAA2K4AANiuEADYriAA2K5AANiuUADYr2AA2K9wANivkADYt0AA2LdgANi3gADYt6AA2LfQANi34ADYt/AA2LgAANi4EADYuDAA2LhQANi4YADYuHAA2LiQANi4oADYwFAA2MBwANjAoADYwMAA2MDwANjBAADYwRAA2MEgANjBMADYwVAA2MFwANjBgADYwZAA2MGwANjBwADYwtAA2MLgANjDAADYyrAA2MrQANjK8ADYyxAA2MtAANjLUADYy2AA2MtwANjLgADYy6AA2MvAANjL0ADYy+AA2MwAANjMEADY08AA2NPgANjUEADY1DAA2NRgANjUcADY1IAA2NSQANjUoADY1MAA2NTgANjU8ADY1QAA2NUgANjVMADY1kAA2NZQANjWcADY3iAA2N5AANjeYADY3oAA2N6wANjewADY3tAA2N7gANje8ADY3xAA2N8wANjfQADY31AA2N9wANjfgADY5zAA2OdQANjngADY56AA2OfQANjn4ADY5/AA2OgAANjoEADY6DAA2OhQANjoYADY6HAA2OiQANjooADY6jAA2OpAANjqUADY6nAA2PIgANjyQADY8mAA2PKAANjysADY8sAA2PLQANjy4ADY8vAA2PMQANjzMADY80AA2PNQANjzcADY84AA2PswANj7UADY+4AA2PugANj70ADY++AA2PvwANj8AADY/BAA2PwwANj8UADY/GAA2PxwANj8kADY/KAA2P4AANj/kADZASAA2QFQANkBgADZAbAA2QHgANkCEADZAkAA2QPQANkEAADZBDAA2QRgANkEkADZBMAA2QTwANkFEADZBWAA2QZAANkHcADZCGAA2QiwANkR4ADZFBAA2RYQANkYEADZGDAA2RhQANkYcADZGJAA2RjAANkY0ADZGOAA2RkQANkZIADZGUAA2RlQANkZcADZGaAA2RmwANkZwADZGfAA2RoAANkaUADZG+AA2RxwANkckADZHLAA2R1AANkdcADZHaAA2R3AANkiUADZJJAA2ScAANkpQADZKXAA2SmQANkpsADZKdAA2SnwANkqEADZKiAA2SpQANkr4ADZLfAA2S4QANkuMADZLlAA2S5wANkukADZLrAA2S7QANku8ADZMQAA2TEwANkxYADZMZAA2THAANkx8ADZMiAA2TJQANkygADZMqAA2TpQANk6cADZOpAA2TqwANk64ADZOvAA2TsAANk7EADZOyAA2TtAANk7YADZO3AA2TuAANk7oADZO7AA2UNgANlDgADZQ6AA2UPAANlD8ADZRAAA2UQQANlEIADZRDAA2URQANlEcADZRIAA2USQANlEsADZRMAA2UxwANlMkADZTMAA2UzgANlNEADZTSAA2U0wANlNQADZTVAA2U1wANlNkADZTaAA2U2wANlN0ADZTeAA2U9wANlPgADZT5AA2U+wANlXYADZV4AA2VegANlXwADZV/AA2VgAANlYEADZWCAA2VgwANlYUADZWHAA2ViAANlYkADZWLAA2VjAANlgcADZYJAA2WCwANlg0ADZYQAA2WEQANlhIADZYTAA2WFAANlhYADZYYAA2WGQANlhoADZYcAA2WHQANlpgADZaaAA2WnAANlp4ADZahAA2WogANlqMADZakAA2WpQANlqcADZapAA2WqgANlqsADZatAA2WrgANlykADZcrAA2XLQANly8ADZcyAA2XMwANlzQADZc1AA2XNgANlzgADZc6AA2XOwANlzwADZc+AA2XPwANl7oADZe8AA2XvgANl8AADZfDAA2XxAANl8UADZfGAA2XxwANl8kADZfLAA2XzAANl80ADZfPAA2X0AANmBkADZg9AA2YZAANmIgADZiLAA2YjQANmI8ADZiRAA2YkwANmJUADZiWAA2YmQANmLIADZjPAA2Y0QANmNMADZjVAA2Y1wANmNkADZjbAA2Y3QANmPoADZj9AA2ZAAANmQMADZkGAA2ZCQANmQwADZkPAA2ZEQANmYwADZmOAA2ZkAANmZIADZmVAA2ZlgANmZcADZmYAA2ZmQANmZsADZmdAA2ZngANmZ8ADZmhAA2ZogANmh0ADZofAA2aIQANmiMADZomAA2aJwANmigADZopAA2aKgANmiwADZouAA2aLwANmjAADZoyAA2aMwANmq4ADZqwAA2asgANmrQADZq3AA2auAANmrkADZq6AA2auwANmr0ADZq/AA2awAANmsEADZrDAA2axAANmz8ADZtBAA2bRAANm0YADZtJAA2bSgANm0sADZtMAA2bTQANm08ADZtRAA2bUgANm1MADZtVAA2bVgANm9EADZvTAA2b1QANm9cADZvaAA2b2wANm9wADZvdAA2b3gANm+AADZviAA2b4wANm+QADZvmAA2b5wANnGIADZxkAA2cZgANnGgADZxrAA2cbAANnG0ADZxuAA2cbwANnHEADZxzAA2cdAANnHUADZx3AA2ceAANnPMADZz1AA2c9wANnPkADZz8AA2c/QANnP4ADZz/AA2dAAANnQIADZ0EAA2dBQANnQYADZ0IAA2dCQANnZwADZ2/AA2d3wANnf8ADZ4BAA2eAwANngUADZ4HAA2eCgANngsADZ4MAA2eDwANnhAADZ4SAA2eEwANnhYADZ4ZAA2eGgANnhsADZ4eAA2eHwANniQADZ49AA2eRgANnkgADZ5KAA2eUwANnlYADZ5ZAA2eWwANnqQADZ7IAA2e7wANnxMADZ8WAA2fGAANnxoADZ8cAA2fHgANnyAADZ8hAA2fJAANnz0ADZ9eAA2fYAANn2IADZ9kAA2fZgANn2gADZ9qAA2fbAANn24ADZ+PAA2fkgANn5UADZ+YAA2fmwANn54ADZ+hAA2fpAANn6cADZ+pAA2gJAANoCYADaAoAA2gKgANoC0ADaAuAA2gLwANoDAADaAxAA2gMwANoDUADaA2AA2gNwANoDkADaA6AA2gtQANoLcADaC5AA2guwANoL4ADaC/AA2gwAANoMEADaDCAA2gxAANoMYADaDHAA2gyAANoMoADaDLAA2hRgANoUgADaFLAA2hTQANoVAADaFRAA2hUgANoVMADaFUAA2hVgANoVgADaFZAA2hWgANoVwADaFdAA2hdgANoXcADaF4AA2hegANofUADaH3AA2h+QANofsADaH+AA2h/wANogAADaIBAA2iAgANogQADaIGAA2iBwANoggADaIKAA2iCwANooYADaKIAA2iigANoowADaKPAA2ikAANopEADaKSAA2ikwANopUADaKXAA2imAANopkADaKbAA2inAANoxcADaMZAA2jGwANox0ADaMgAA2jIQANoyIADaMjAA2jJAANoyYADaMoAA2jKQANoyoADaMsAA2jLQANo6gADaOqAA2jrAANo64ADaOxAA2jsgANo7MADaO0AA2jtQANo7cADaO5AA2jugANo7sADaO9AA2jvgANpDkADaQ7AA2kPQANpD8ADaRCAA2kQwANpEQADaRFAA2kRgANpEgADaRKAA2kSwANpEwADaROAA2kTwANpJgADaS8AA2k4wANpQcADaUKAA2lDAANpQ4ADaUQAA2lEgANpRQADaUVAA2lGAANpTEADaVOAA2lUAANpVIADaVUAA2lVgANpVgADaVaAA2lXAANpXkADaV8AA2lfwANpYIADaWFAA2liAANpYsADaWOAA2lkAANpgsADaYNAA2mDwANphEADaYUAA2mFQANphYADaYXAA2mGAANphoADaYcAA2mHQANph4ADaYgAA2mIQANppwADaaeAA2moAANpqIADaalAA2mpgANpqcADaaoAA2mqQANpqsADaatAA2mrgANpq8ADaaxAA2msgANpy0ADacvAA2nMQANpzMADac2AA2nNwANpzgADac5AA2nOgANpzwADac+AA2nPwANp0AADadCAA2nQwANp74ADafAAA2nwwANp8UADafIAA2nyQANp8oADafLAA2nzAANp84ADafQAA2n0QANp9IADafUAA2n1QANqFAADahSAA2oVAANqFYADahZAA2oWgANqFsADahcAA2oXQANqF8ADahhAA2oYgANqGMADahlAA2oZgANqOEADajjAA2o5QANqOcADajqAA2o6wANqOwADajtAA2o7gANqPAADajyAA2o8wANqPQADaj2AA2o9wANqXIADal0AA2pdwANqXkADal8AA2pfQANqX4ADal/AA2pgAANqYIADamEAA2phQANqYYADamIAA2piQANqhwADao/AA2qXwANqn8ADaqBAA2qgwANqoUADaqHAA2qigANqosADaqMAA2qjwANqpAADaqSAA2qkwANqpUADaqYAA2qmQANqpoADaqdAA2qngANqqcADarAAA2qyQANqssADarNAA2q1gANqtkADarcAA2q3gANqycADatLAA2rcgANq5YADauZAA2rmwANq50ADaufAA2roQANq6MADaukAA2rpwANq8AADavhAA2r4wANq+UADavnAA2r6QANq+sADavtAA2r7wANq/EADawSAA2sFQANrBgADawbAA2sHgANrCEADawkAA2sJwANrCoADawsAA2spwANrKkADayrAA2srQANrLAADayxAA2ssgANrLMADay0AA2stgANrLgADay5AA2sugANrLwADay9AA2tOAANrToADa08AA2tPgANrUEADa1CAA2tQwANrUQADa1FAA2tRwANrUkADa1KAA2tSwANrU0ADa1OAA2tyQANrcsADa3OAA2t0AANrdMADa3UAA2t1QANrdYADa3XAA2t2QANrdsADa3cAA2t3QANrd8ADa3gAA2t+QANrfoADa37AA2t/QANrngADa56AA2ufAANrn4ADa6BAA2uggANroMADa6EAA2uhQANrocADa6JAA2uigANrosADa6NAA2ujgANrwkADa8LAA2vDQANrw8ADa8SAA2vEwANrxQADa8VAA2vFgANrxgADa8aAA2vGwANrxwADa8eAA2vHwANr5oADa+cAA2vngANr6AADa+jAA2vpAANr6UADa+mAA2vpwANr6kADa+rAA2vrAANr60ADa+vAA2vsAANsCsADbAtAA2wLwANsDEADbA0AA2wNQANsDYADbA3AA2wOAANsDoADbA8AA2wPQANsD4ADbBAAA2wQQANsLwADbC+AA2wwAANsMIADbDFAA2wxgANsMcADbDIAA2wyQANsMsADbDNAA2wzgANsM8ADbDRAA2w0gANsRsADbE/AA2xZgANsYoADbGNAA2xjwANsZEADbGTAA2xlQANsZcADbGYAA2xmwANsbQADbHRAA2x0wANsdUADbHXAA2x2QANsdsADbHdAA2x3wANsfwADbH/AA2yAgANsgUADbIIAA2yCwANsg4ADbIRAA2yEwANso4ADbKQAA2ykgANspQADbKXAA2ymAANspkADbKaAA2ymwANsp0ADbKfAA2yoAANsqEADbKjAA2ypAANsx8ADbMhAA2zIwANsyUADbMoAA2zKQANsyoADbMrAA2zLAANsy4ADbMwAA2zMQANszIADbM0AA2zNQANs7AADbOyAA2ztAANs7YADbO5AA2zugANs7sADbO8AA2zvQANs78ADbPBAA2zwgANs8MADbPFAA2zxgANtEEADbRDAA20RQANtEcADbRKAA20SwANtEwADbRNAA20TgANtFAADbRSAA20UwANtFQADbRWAA20VwANtNIADbTUAA201gANtNgADbTbAA203AANtN0ADbTeAA203wANtOEADbTjAA205AANtOUADbTnAA206AANtWMADbVlAA21ZwANtWkADbVsAA21bQANtW4ADbVvAA21cAANtXIADbV0AA21dQANtXYADbV4AA21eQANtfQADbX2AA21+AANtfoADbX9AA21/gANtf8ADbYAAA22AQANtgMADbYFAA22BgANtgcADbYJAA22CgANtp0ADbbAAA224AANtwAADbcCAA23BAANtwYADbcIAA23CwANtwwADbcNAA23EAANtxEADbcTAA23FAANtxYADbcZAA23GgANtxsADbceAA23HwANtygADbdBAA23SgANt0wADbdOAA23VwANt1oADbddAA23XwANt6gADbfMAA238wANuBcADbgaAA24HAANuB4ADbggAA24IgANuCQADbglAA24KAANuEEADbhiAA24ZAANuGYADbhoAA24agANuGwADbhuAA24cAANuHIADbiTAA24lgANuJkADbicAA24nwANuKIADbilAA24qAANuKsADbitAA25KAANuSoADbksAA25LgANuTEADbkyAA25MwANuTQADbk1AA25NwANuTkADbk6AA25OwANuT0ADbk+AA25uQANubsADbm9AA25vwANucIADbnDAA25xAANucUADbnGAA25yAANucoADbnLAA25zAANuc4ADbnPAA26SgANukwADbpPAA26UQANulQADbpVAA26VgANulcADbpYAA26WgANulwADbpdAA26XgANumAADbphAA26egANunsADbp8AA26fgANuvkADbr7AA26/QANuv8ADbsCAA27AwANuwQADbsFAA27BgANuwgADbsKAA27CwANuwwADbsOAA27DwANu4oADbuMAA27jgANu5AADbuTAA27lAANu5UADbuWAA27lwANu5kADbubAA27nAANu50ADbufAA27oAANvBsADbwdAA28HwANvCEADbwkAA28JQANvCYADbwnAA28KAANvCoADbwsAA28LQANvC4ADbwwAA28MQANvKwADbyuAA28sAANvLIADby1AA28tgANvLcADby4AA28uQANvLsADby9AA28vgANvL8ADbzBAA28wgANvT0ADb0/AA29QQANvUMADb1GAA29RwANvUgADb1JAA29SgANvUwADb1OAA29TwANvVAADb1SAA29UwANvZwADb3AAA295wANvgsADb4OAA2+EAANvhIADb4UAA2+FgANvhgADb4ZAA2+HAANvjUADb5SAA2+VAANvlYADb5YAA2+WgANvlwADb5eAA2+YAANvn0ADb6AAA2+gwANvoYADb6JAA2+jAANvo8ADb6SAA2+lAANvw8ADb8RAA2/EwANvxUADb8YAA2/GQANvxoADb8bAA2/HAANvx4ADb8gAA2/IQANvyIADb8kAA2/JQANv6AADb+iAA2/pAANv6YADb+pAA2/qgANv6sADb+sAA2/rQANv68ADb+xAA2/sgANv7MADb+1AA2/tgANwDEADcAzAA3ANQANwDcADcA6AA3AOwANwDwADcA9AA3APgANwEAADcBCAA3AQwANwEQADcBGAA3ARwANwMIADcDEAA3AxwANwMkADcDMAA3AzQANwM4ADcDPAA3A0AANwNIADcDUAA3A1QANwNYADcDYAA3A2QANwVQADcFWAA3BWAANwVoADcFdAA3BXgANwV8ADcFgAA3BYQANwWMADcFlAA3BZgANwWcADcFpAA3BagANweUADcHnAA3B6QANwesADcHuAA3B7wANwfAADcHxAA3B8gANwfQADcH2AA3B9wANwfgADcH6AA3B+wANwnYADcJ4AA3CegANwnwADcJ/AA3CgAANwoEADcKCAA3CgwANwoUADcKHAA3CiAANwokADcKLAA3CjAANwx8ADcNCAA3DYgANw4IADcOEAA3DhgANw4gADcOKAA3DjQANw44ADcOPAA3DkgANw5MADcOVAA3DlgANw5gADcObAA3DnAANw50ADcOgAA3DoQANw6YADcO/AA3DyAANw8oADcPMAA3D1QANw9gADcPbAA3D3QANxCYADcRKAA3EcQANxJUADcSYAA3EmgANxJwADcSeAA3EoAANxKIADcSjAA3EpgANxL8ADcTgAA3E4gANxOQADcTmAA3E6AANxOoADcTsAA3E7gANxPAADcURAA3FFAANxRcADcUaAA3FHQANxSAADcUjAA3FJgANxSkADcUrAA3FpgANxagADcWqAA3FrAANxa8ADcWwAA3FsQANxbIADcWzAA3FtQANxbcADcW4AA3FuQANxbsADcW8AA3GNwANxjkADcY7AA3GPQANxkAADcZBAA3GQgANxkMADcZEAA3GRgANxkgADcZJAA3GSgANxkwADcZNAA3GyAANxsoADcbNAA3GzwANxtIADcbTAA3G1AANxtUADcbWAA3G2AANxtoADcbbAA3G3AANxt4ADcbfAA3G+AANxvkADcb6AA3G/AANx3cADcd5AA3HewANx30ADceAAA3HgQANx4IADceDAA3HhAANx4YADceIAA3HiQANx4oADceMAA3HjQANyAgADcgKAA3IDAANyA4ADcgRAA3IEgANyBMADcgUAA3IFQANyBcADcgZAA3IGgANyBsADcgdAA3IHgANyJkADcibAA3InQANyJ8ADciiAA3IowANyKQADcilAA3IpgANyKgADciqAA3IqwANyKwADciuAA3IrwANySoADcksAA3JLgANyTAADckzAA3JNAANyTUADck2AA3JNwANyTkADck7AA3JPAANyT0ADck/AA3JQAANybsADcm9AA3JvwANycEADcnEAA3JxQANycYADcnHAA3JyAANycoADcnMAA3JzQANyc4ADcnQAA3J0QANyhoADco+AA3KZQANyokADcqMAA3KjgANypAADcqSAA3KlAANypYADcqXAA3KmgANyrMADcrQAA3K0gANytQADcrWAA3K2AANytoADcrcAA3K3gANyvsADcr+AA3LAQANywQADcsHAA3LCgANyw0ADcsQAA3LEgANy40ADcuPAA3LkQANy5MADcuWAA3LlwANy5gADcuZAA3LmgANy5wADcueAA3LnwANy6AADcuiAA3LowANzB4ADcwgAA3MIgANzCQADcwnAA3MKAANzCkADcwqAA3MKwANzC0ADcwvAA3MMAANzDEADcwzAA3MNAANzK8ADcyxAA3MswANzLUADcy4AA3MuQANzLoADcy7AA3MvAANzL4ADczAAA3MwQANzMIADczEAA3MxQANzUAADc1CAA3NRAANzUYADc1JAA3NSgANzUsADc1MAA3NTQANzU8ADc1RAA3NUgANzVMADc1VAA3NVgANzdEADc3TAA3N1QANzdcADc3aAA3N2wANzdwADc3dAA3N3gANzeAADc3iAA3N4wANzeQADc3mAA3N5wANzmIADc5kAA3OZgANzmgADc5rAA3ObAANzm0ADc5uAA3ObwANznEADc5zAA3OdAANznUADc53AA3OeAANzvMADc71AA3O9wANzvkADc78AA3O/QANzv4ADc7/AA3PAAANzwIADc8EAA3PBQANzwYADc8IAA3PCQANz5wADc+/AA3P3wANz/8ADdABAA3QAwAN0AUADdAHAA3QCgAN0AsADdAMAA3QDwAN0BAADdASAA3QEwAN0BUADdAYAA3QGQAN0BoADdAdAA3QHgAN0CcADdBAAA3QSQAN0EsADdBNAA3QVgAN0FkADdBcAA3QXgAN0KcADdDLAA3Q8gAN0RYADdEZAA3RGwAN0R0ADdEfAA3RIQAN0SMADdEkAA3RJwAN0UAADdFhAA3RYwAN0WUADdFnAA3RaQAN0WsADdFtAA3RbwAN0XEADdGSAA3RlQAN0ZgADdGbAA3RngAN0aEADdGkAA3RpwAN0aoADdGsAA3SJwAN0ikADdIrAA3SLQAN0jAADdIxAA3SMgAN0jMADdI0AA3SNgAN0jgADdI5AA3SOgAN0jwADdI9AA3SuAAN0roADdK8AA3SvgAN0sEADdLCAA3SwwAN0sQADdLFAA3SxwAN0skADdLKAA3SywAN0s0ADdLOAA3TSQAN00sADdNOAA3TUAAN01MADdNUAA3TVQAN01YADdNXAA3TWQAN01sADdNcAA3TXQAN018ADdNgAA3TeQAN03oADdN7AA3TfQAN0/gADdP6AA3T/AAN0/4ADdQBAA3UAgAN1AMADdQEAA3UBQAN1AcADdQJAA3UCgAN1AsADdQNAA3UDgAN1IkADdSLAA3UjQAN1I8ADdSSAA3UkwAN1JQADdSVAA3UlgAN1JgADdSaAA3UmwAN1JwADdSeAA3UnwAN1RoADdUcAA3VHgAN1SAADdUjAA3VJAAN1SUADdUmAA3VJwAN1SkADdUrAA3VLAAN1S0ADdUvAA3VMAAN1asADdWtAA3VrwAN1bEADdW0AA3VtQAN1bYADdW3AA3VuAAN1boADdW8AA3VvQAN1b4ADdXAAA3VwQAN1jwADdY+AA3WQAAN1kIADdZFAA3WRgAN1kcADdZIAA3WSQAN1ksADdZNAA3WTgAN1k8ADdZRAA3WUgAN1psADda/AA3W5gAN1woADdcNAA3XDwAN1xEADdcTAA3XFQAN1xcADdcYAA3XGwAN1zQADddRAA3XUwAN11UADddXAA3XWQAN11sADdddAA3XXwAN13wADdd/AA3XggAN14UADdeIAA3XiwAN144ADdeRAA3XkwAN2A4ADdgQAA3YEgAN2BQADdgXAA3YGAAN2BkADdgaAA3YGwAN2B0ADdgfAA3YIAAN2CEADdgjAA3YJAAN2J8ADdihAA3YowAN2KUADdioAA3YqQAN2KoADdirAA3YrAAN2K4ADdiwAA3YsQAN2LIADdi0AA3YtQAN2TAADdkyAA3ZNAAN2TYADdk5AA3ZOgAN2TsADdk8AA3ZPQAN2T8ADdlBAA3ZQgAN2UMADdlFAA3ZRgAN2cEADdnDAA3ZxgAN2cgADdnLAA3ZzAAN2c0ADdnOAA3ZzwAN2dEADdnTAA3Z1AAN2dUADdnXAA3Z2AAN2lMADdpVAA3aVwAN2lkADdpcAA3aXQAN2l4ADdpfAA3aYAAN2mIADdpkAA3aZQAN2mYADdpoAA3aaQAN2uQADdrmAA3a6AAN2uoADdrtAA3a7gAN2u8ADdrwAA3a8QAN2vMADdr1AA3a9gAN2vcADdr5AA3a+gAN23UADdt3AA3beQAN23sADdt+AA3bfwAN24AADduBAA3bggAN24QADduGAA3bhwAN24gADduKAA3biwAN25wADdudAA3bnwAN27AADdu1AA3buAAN27oADdvzAA3b9gAN2/gADdv7AA3b/gAN3AEADdwEAA3chwAN3KsADdzPAA3c8gAN3RkADd05AA3dYAAN3YcADd2nAA3dywAN3e8ADd3xAA3d9AAN3fYADd34AA3d+gAN3f0ADd4AAA3eAgAN3gQADd4HAA3eCQAN3gsADd4OAA3eEQAN3hIADd4bAA3eNAAN3jkADd47AA3eQAAN3kMADd5FAA3ejgAN3rIADd7ZAA3e/QAN3wAADd8CAA3fBAAN3wYADd8IAA3fCgAN3wsADd8OAA3fJwAN30wADd9OAA3fUAAN31IADd9UAA3fVgAN31gADd9aAA3fXAAN314ADd+DAA3fhgAN34kADd+MAA3fjwAN35IADd+VAA3fmAAN35sADd+eAA3foAAN4BsADeAdAA3gIAAN4CIADeAlAA3gJgAN4CcADeAoAA3gKQAN4CsADeAtAA3gLgAN4C8ADeAxAA3gMgAN4EMADeBEAA3gRgAN4MEADeDDAA3gxQAN4McADeDKAA3gywAN4MwADeDNAA3gzgAN4NAADeDSAA3g0wAN4NQADeDWAA3g1wAN4VIADeFUAA3hVwAN4VkADeFcAA3hXQAN4V4ADeFfAA3hYAAN4WIADeFkAA3hZQAN4WYADeFoAA3haQAN4XoADeF7AA3hfQAN4fgADeH6AA3h/AAN4f4ADeIBAA3iAgAN4gMADeIEAA3iBQAN4gcADeIJAA3iCgAN4gsADeINAA3iDgAN4okADeKLAA3ijgAN4pAADeKTAA3ilAAN4pUADeKWAA3ilwAN4pkADeKbAA3inAAN4p0ADeKfAA3ioAAN4rEADeKyAA3itAAN4y8ADeMxAA3jMwAN4zUADeM4AA3jOQAN4zoADeM7AA3jPAAN4z4ADeNAAA3jQQAN40IADeNEAA3jRQAN48AADePCAA3jxQAN48cADePKAA3jywAN48wADePNAA3jzgAN49AADePSAA3j0wAN49QADePWAA3j1wAN4/AADePxAA3j8gAN4/QADeRvAA3kcQAN5HMADeR1AA3keAAN5HkADeR6AA3kewAN5HwADeR+AA3kgAAN5IEADeSCAA3khAAN5IUADeUAAA3lAgAN5QUADeUHAA3lCgAN5QsADeUMAA3lDQAN5Q4ADeUQAA3lEgAN5RMADeUUAA3lFgAN5RcADeVDAA3lXAAN5WEADeVkAA3laQAN5WwADeVuAA3lgwAN5hYADeY5AA3mWQAN5nkADeZ7AA3mfQAN5n8ADeaBAA3mhAAN5oUADeaGAA3miQAN5ooADeaMAA3mjQAN5o8ADeaSAA3mkwAN5pQADeaXAA3mmAAN5p0ADea2AA3mvwAN5sEADebDAA3mzAAN5s8ADebSAA3m1AAN5x0ADedBAA3naAAN54wADeePAA3nkQAN55MADeeVAA3nlwAN55kADeeaAA3nnQAN57YADefXAA3n2QAN59sADefdAA3n3wAN5+EADefjAA3n5QAN5+cADegIAA3oCwAN6A4ADegRAA3oFAAN6BcADegaAA3oHQAN6CAADegiAA3onQAN6J8ADeihAA3oowAN6KYADeinAA3oqAAN6KkADeiqAA3orAAN6K4ADeivAA3osAAN6LIADeizAA3pLgAN6TAADekyAA3pNAAN6TcADek4AA3pOQAN6ToADek7AA3pPQAN6T8ADelAAA3pQQAN6UMADelEAA3pvwAN6cEADenEAA3pxgAN6ckADenKAA3pywAN6cwADenNAA3pzwAN6dEADenSAA3p0wAN6dUADenWAA3p7wAN6fAADenxAA3p8wAN6m4ADepwAA3qcgAN6nQADep3AA3qeAAN6nkADep6AA3qewAN6n0ADep/AA3qgAAN6oEADeqDAA3qhAAN6v8ADesBAA3rAwAN6wUADesIAA3rCQAN6woADesLAA3rDAAN6w4ADesQAA3rEQAN6xIADesUAA3rFQAN65AADeuSAA3rlAAN65YADeuZAA3rmgAN65sADeucAA3rnQAN658ADeuhAA3rogAN66MADeulAA3rpgAN7CEADewjAA3sJQAN7CcADewqAA3sKwAN7CwADewtAA3sLgAN7DAADewyAA3sMwAN7DQADew2AA3sNwAN7LIADey0AA3stgAN7LgADey7AA3svAAN7L0ADey+AA3svwAN7MEADezDAA3sxAAN7MUADezHAA3syAAN7READe01AA3tXAAN7YAADe2DAA3thQAN7YcADe2JAA3tiwAN7Y0ADe2OAA3tkQAN7aoADe3HAA3tyQAN7csADe3NAA3tzwAN7dEADe3TAA3t1QAN7fIADe31AA3t+AAN7fsADe3+AA3uAQAN7gQADe4HAA3uCQAN7oQADe6GAA3uiAAN7ooADe6NAA3ujgAN7o8ADe6QAA3ukQAN7pMADe6VAA3ulgAN7pcADe6ZAA3umgAN7xUADe8XAA3vGQAN7xsADe8eAA3vHwAN7yAADe8hAA3vIgAN7yQADe8mAA3vJwAN7ygADe8qAA3vKwAN76YADe+oAA3vqgAN76wADe+vAA3vsAAN77EADe+yAA3vswAN77UADe+3AA3vuAAN77kADe+7AA3vvAAN8DcADfA5AA3wOwAN8D0ADfBAAA3wQQAN8EIADfBDAA3wRAAN8EYADfBIAA3wSQAN8EoADfBMAA3wTQAN8MgADfDKAA3wzAAN8M4ADfDRAA3w0gAN8NMADfDUAA3w1QAN8NcADfDZAA3w2gAN8NsADfDdAA3w3gAN8VkADfFbAA3xXQAN8V8ADfFiAA3xYwAN8WQADfFlAA3xZgAN8WgADfFqAA3xawAN8WwADfFuAA3xbwAN8eoADfHsAA3x7gAN8fAADfHzAA3x9AAN8fUADfH2AA3x9wAN8fkADfH7AA3x/AAN8f0ADfH/AA3yAAAN8hEADfIWAA3yGQAN8hsADfIgAA3ymwAN8p0ADfKfAA3yoQAN8qQADfKlAA3ypgAN8qcADfKoAA3yqgAN8qwADfKtAA3yrgAN8rAADfKxAA3zLAAN8y4ADfMwAA3zMgAN8zUADfM2AA3zNwAN8zgADfM5AA3zOwAN8z0ADfM+AA3zPwAN80EADfNCAA3zvQAN878ADfPCAA3zxAAN88cADfPIAA3zyQAN88oADfPLAA3zzQAN888ADfPQAA3z0QAN89MADfPUAA30ZwAN9IoADfSqAA30ygAN9MwADfTOAA300AAN9NIADfTVAA301gAN9NcADfTaAA302wAN9N0ADfTeAA304AAN9OMADfTkAA305QAN9OgADfTpAA307gAN9QcADfUQAA31EgAN9RQADfUdAA31IAAN9SMADfUlAA31bgAN9ZIADfW5AA313QAN9eAADfXiAA315AAN9eYADfXoAA316gAN9esADfXuAA32BwAN9igADfYqAA32LAAN9i4ADfYwAA32MgAN9jQADfY2AA32OAAN9lkADfZcAA32XwAN9mIADfZlAA32aAAN9msADfZuAA32cQAN9nMADfbuAA328AAN9vIADfb0AA329wAN9vgADfb5AA32+gAN9vsADfb9AA32/wAN9wAADfcBAA33AwAN9wQADfd/AA33gQAN94MADfeFAA33iAAN94kADfeKAA33iwAN94wADfeOAA33kAAN95EADfeSAA33lAAN95UADfgQAA34EgAN+BUADfgXAA34GgAN+BsADfgcAA34HQAN+B4ADfggAA34IgAN+CMADfgkAA34JgAN+CcADfhAAA34QQAN+EIADfhEAA34vwAN+MEADfjDAA34xQAN+MgADfjJAA34ygAN+MsADfjMAA34zgAN+NAADfjRAA340gAN+NQADfjVAA35UAAN+VIADflUAA35VgAN+VkADflaAA35WwAN+VwADfldAA35XwAN+WEADfliAA35YwAN+WUADflmAA354QAN+eMADfnlAA355wAN+eoADfnrAA357AAN+e0ADfnuAA358AAN+fIADfnzAA359AAN+fYADfn3AA36cgAN+nQADfp2AA36eAAN+nsADfp8AA36fQAN+n4ADfp/AA36gQAN+oMADfqEAA36hQAN+ocADfqIAA37AwAN+wUADfsHAA37CQAN+wwADfsNAA37DgAN+w8ADfsQAA37EgAN+xQADfsVAA37FgAN+xgADfsZAA37YgAN+4YADfutAA370QAN+9QADfvWAA372AAN+9oADfvcAA373gAN+98ADfviAA37+wAN/BgADfwaAA38HAAN/B4ADfwgAA38IgAN/CQADfwmAA38QwAN/EYADfxJAA38TAAN/E8ADfxSAA38VQAN/FgADfxaAA381QAN/NcADfzZAA382wAN/N4ADfzfAA384AAN/OEADfziAA385AAN/OYADfznAA386AAN/OoADfzrAA39ZgAN/WgADf1qAA39bAAN/W8ADf1wAA39cQAN/XIADf1zAA39dQAN/XcADf14AA39eQAN/XsADf18AA399wAN/fkADf37AA39/QAN/gAADf4BAA3+AgAN/gMADf4EAA3+BgAN/ggADf4JAA3+CgAN/gwADf4NAA3+iAAN/ooADf6MAA3+jgAN/pEADf6SAA3+kwAN/pQADf6VAA3+lwAN/pkADf6aAA3+mwAN/p0ADf6eAA3/GQAN/xsADf8dAA3/HwAN/yIADf8jAA3/JAAN/yUADf8mAA3/KAAN/yoADf8rAA3/LAAN/y4ADf8vAA3/qgAN/6wADf+uAA3/sAAN/7MADf+0AA3/tQAN/7YADf+3AA3/uQAN/7sADf+8AA3/vQAN/78ADf/AAA4AOwAOAD0ADgA/AA4AQQAOAEQADgBFAA4ARgAOAEcADgBIAA4ASgAOAEwADgBNAA4ATgAOAFAADgBRAA4A5AAOAQcADgEnAA4BRwAOAUkADgFLAA4BTQAOAU8ADgFSAA4BUwAOAVQADgFXAA4BWAAOAVoADgFbAA4BXQAOAWAADgFhAA4BYgAOAWUADgFmAA4BbwAOAYgADgGRAA4BkwAOAZUADgGeAA4BoQAOAaQADgGmAA4B7wAOAhMADgI6AA4CXgAOAmEADgJjAA4CZQAOAmcADgJpAA4CawAOAmwADgJvAA4CiAAOAqkADgKrAA4CrQAOAq8ADgKxAA4CswAOArUADgK3AA4CuQAOAtoADgLdAA4C4AAOAuMADgLmAA4C6QAOAuwADgLvAA4C8gAOAvQADgNvAA4DcQAOA3MADgN1AA4DeAAOA3kADgN6AA4DewAOA3wADgN+AA4DgAAOA4EADgOCAA4DhAAOA4UADgQAAA4EAgAOBAQADgQGAA4ECQAOBAoADgQLAA4EDAAOBA0ADgQPAA4EEQAOBBIADgQTAA4EFQAOBBYADgSRAA4EkwAOBJYADgSYAA4EmwAOBJwADgSdAA4EngAOBJ8ADgShAA4EowAOBKQADgSlAA4EpwAOBKgADgTBAA4EwgAOBMMADgTFAA4FQAAOBUIADgVEAA4FRgAOBUkADgVKAA4FSwAOBUwADgVNAA4FTwAOBVEADgVSAA4FUwAOBVUADgVWAA4F0QAOBdMADgXVAA4F1wAOBdoADgXbAA4F3AAOBd0ADgXeAA4F4AAOBeIADgXjAA4F5AAOBeYADgXnAA4GYgAOBmQADgZmAA4GaAAOBmsADgZsAA4GbQAOBm4ADgZvAA4GcQAOBnMADgZ0AA4GdQAOBncADgZ4AA4G8wAOBvUADgb3AA4G+QAOBvwADgb9AA4G/gAOBv8ADgcAAA4HAgAOBwQADgcFAA4HBgAOBwgADgcJAA4HhAAOB4YADgeIAA4HigAOB40ADgeOAA4HjwAOB5AADgeRAA4HkwAOB5UADgeWAA4HlwAOB5kADgeaAA4H4wAOCAcADgguAA4IUgAOCFUADghXAA4IWQAOCFsADghdAA4IXwAOCGAADghjAA4IfAAOCJkADgibAA4InQAOCJ8ADgihAA4IowAOCKUADginAA4IxAAOCMcADgjKAA4IzQAOCNAADgjTAA4I1gAOCNkADgjbAA4JVgAOCVgADglaAA4JXAAOCV8ADglgAA4JYQAOCWIADgljAA4JZQAOCWcADgloAA4JaQAOCWsADglsAA4J5wAOCekADgnrAA4J7QAOCfAADgnxAA4J8gAOCfMADgn0AA4J9gAOCfgADgn5AA4J+gAOCfwADgn9AA4KeAAOCnoADgp8AA4KfgAOCoEADgqCAA4KgwAOCoQADgqFAA4KhwAOCokADgqKAA4KiwAOCo0ADgqOAA4LCQAOCwsADgsOAA4LEAAOCxMADgsUAA4LFQAOCxYADgsXAA4LGQAOCxsADgscAA4LHQAOCx8ADgsgAA4LmwAOC50ADgufAA4LoQAOC6QADgulAA4LpgAOC6cADguoAA4LqgAOC6wADgutAA4LrgAOC7AADguxAA4MLAAODC4ADgwwAA4MMgAODDUADgw2AA4MNwAODDgADgw5AA4MOwAODD0ADgw+AA4MPwAODEEADgxCAA4MvQAODL8ADgzBAA4MwwAODMYADgzHAA4MyAAODMkADgzKAA4MzAAODM4ADgzPAA4M0AAODNIADgzTAA4NZgAODYkADg2pAA4NyQAODcsADg3NAA4NzwAODdEADg3UAA4N1QAODdYADg3ZAA4N2gAODdwADg3dAA4N3wAODeIADg3jAA4N5AAODecADg3oAA4N7QAODgYADg4PAA4OEQAODhMADg4cAA4OHwAODiIADg4kAA4ObQAODpEADg64AA4O3AAODt8ADg7hAA4O4wAODuUADg7nAA4O6QAODuoADg7tAA4PBgAODycADg8pAA4PKwAODy0ADg8vAA4PMQAODzMADg81AA4PNwAOD1gADg9bAA4PXgAOD2EADg9kAA4PZwAOD2oADg9tAA4PcAAOD3IADg/tAA4P7wAOD/EADg/zAA4P9gAOD/cADg/4AA4P+QAOD/oADg/8AA4P/gAOD/8ADhAAAA4QAgAOEAMADhB+AA4QgAAOEIIADhCEAA4QhwAOEIgADhCJAA4QigAOEIsADhCNAA4QjwAOEJAADhCRAA4QkwAOEJQADhEPAA4REQAOERQADhEWAA4RGQAOERoADhEbAA4RHAAOER0ADhEfAA4RIQAOESIADhEjAA4RJQAOESYADhE/AA4RQAAOEUEADhFDAA4RvgAOEcAADhHCAA4RxAAOEccADhHIAA4RyQAOEcoADhHLAA4RzQAOEc8ADhHQAA4R0QAOEdMADhHUAA4STwAOElEADhJTAA4SVQAOElgADhJZAA4SWgAOElsADhJcAA4SXgAOEmAADhJhAA4SYgAOEmQADhJlAA4S4AAOEuIADhLkAA4S5gAOEukADhLqAA4S6wAOEuwADhLtAA4S7wAOEvEADhLyAA4S8wAOEvUADhL2AA4TcQAOE3MADhN1AA4TdwAOE3oADhN7AA4TfAAOE30ADhN+AA4TgAAOE4IADhODAA4ThAAOE4YADhOHAA4UAgAOFAQADhQGAA4UCAAOFAsADhQMAA4UDQAOFA4ADhQPAA4UEQAOFBMADhQUAA4UFQAOFBcADhQYAA4UYQAOFIUADhSsAA4U0AAOFNMADhTVAA4U1wAOFNkADhTbAA4U3QAOFN4ADhThAA4U+gAOFRcADhUZAA4VGwAOFR0ADhUfAA4VIQAOFSMADhUlAA4VQgAOFUUADhVIAA4VSwAOFU4ADhVRAA4VVAAOFVcADhVZAA4V1AAOFdYADhXYAA4V2gAOFd0ADhXeAA4V3wAOFeAADhXhAA4V4wAOFeUADhXmAA4V5wAOFekADhXqAA4WZQAOFmcADhZpAA4WawAOFm4ADhZvAA4WcAAOFnEADhZyAA4WdAAOFnYADhZ3AA4WeAAOFnoADhZ7AA4W9gAOFvgADhb6AA4W/AAOFv8ADhcAAA4XAQAOFwIADhcDAA4XBQAOFwcADhcIAA4XCQAOFwsADhcMAA4XhwAOF4kADheLAA4XjQAOF5AADheRAA4XkgAOF5MADheUAA4XlgAOF5gADheZAA4XmgAOF5wADhedAA4YGAAOGBoADhgcAA4YHgAOGCEADhgiAA4YIwAOGCQADhglAA4YJwAOGCkADhgqAA4YKwAOGC0ADhguAA4YqQAOGKsADhitAA4YrwAOGLIADhizAA4YtAAOGLUADhi2AA4YuAAOGLoADhi7AA4YvAAOGL4ADhi/AA4ZOgAOGTwADhk+AA4ZQAAOGUMADhlEAA4ZRQAOGUYADhlHAA4ZSQAOGUsADhlMAA4ZTQAOGU8ADhlQAA4Z4wAOGgYADhomAA4aRgAOGkgADhpKAA4aTAAOGk4ADhpRAA4aUgAOGlMADhpWAA4aVwAOGlkADhpaAA4aXAAOGl8ADhpgAA4aYQAOGmQADhplAA4aagAOGoMADhqMAA4ajgAOGpAADhqZAA4anAAOGp8ADhqhAA4a6gAOGw4ADhs1AA4bWQAOG1wADhteAA4bYAAOG2IADhtkAA4bZgAOG2cADhtqAA4bgwAOG6QADhumAA4bqAAOG6oADhusAA4brgAOG7AADhuyAA4btAAOG9UADhvYAA4b2wAOG94ADhvhAA4b5AAOG+cADhvqAA4b7QAOG+8ADhxqAA4cbAAOHG4ADhxwAA4ccwAOHHQADhx1AA4cdgAOHHcADhx5AA4cewAOHHwADhx9AA4cfwAOHIAADhz7AA4c/QAOHP8ADh0BAA4dBAAOHQUADh0GAA4dBwAOHQgADh0KAA4dDAAOHQ0ADh0OAA4dEAAOHREADh2MAA4djgAOHZEADh2TAA4dlgAOHZcADh2YAA4dmQAOHZoADh2cAA4dngAOHZ8ADh2gAA4dogAOHaMADh28AA4dvQAOHb4ADh3AAA4eOwAOHj0ADh4/AA4eQQAOHkQADh5FAA4eRgAOHkcADh5IAA4eSgAOHkwADh5NAA4eTgAOHlAADh5RAA4ezAAOHs4ADh7QAA4e0gAOHtUADh7WAA4e1wAOHtgADh7ZAA4e2wAOHt0ADh7eAA4e3wAOHuEADh7iAA4fXQAOH18ADh9hAA4fYwAOH2YADh9nAA4faAAOH2kADh9qAA4fbAAOH24ADh9vAA4fcAAOH3IADh9zAA4f7gAOH/AADh/yAA4f9AAOH/cADh/4AA4f+QAOH/oADh/7AA4f/QAOH/8ADiAAAA4gAQAOIAMADiAEAA4gfwAOIIEADiCDAA4ghQAOIIgADiCJAA4gigAOIIsADiCMAA4gjgAOIJAADiCRAA4gkgAOIJQADiCVAA4g3gAOIQIADiEpAA4hTQAOIVAADiFSAA4hVAAOIVYADiFYAA4hWgAOIVsADiFeAA4hdwAOIZQADiGWAA4hmAAOIZoADiGcAA4hngAOIaAADiGiAA4hvwAOIcIADiHFAA4hyAAOIcsADiHOAA4h0QAOIdQADiHWAA4iUQAOIlMADiJVAA4iVwAOIloADiJbAA4iXAAOIl0ADiJeAA4iYAAOImIADiJjAA4iZAAOImYADiJnAA4i4gAOIuQADiLmAA4i6AAOIusADiLsAA4i7QAOIu4ADiLvAA4i8QAOIvMADiL0AA4i9QAOIvcADiL4AA4jcwAOI3UADiN3AA4jeQAOI3wADiN9AA4jfgAOI38ADiOAAA4jggAOI4QADiOFAA4jhgAOI4gADiOJAA4kBAAOJAYADiQJAA4kCwAOJA4ADiQPAA4kEAAOJBEADiQSAA4kFAAOJBYADiQXAA4kGAAOJBoADiQbAA4klgAOJJgADiSaAA4knAAOJJ8ADiSgAA4koQAOJKIADiSjAA4kpQAOJKcADiSoAA4kqQAOJKsADiSsAA4lJwAOJSkADiUrAA4lLQAOJTAADiUxAA4lMgAOJTMADiU0AA4lNgAOJTgADiU5AA4lOgAOJTwADiU9AA4luAAOJboADiW8AA4lvgAOJcEADiXCAA4lwwAOJcQADiXFAA4lxwAOJckADiXKAA4lywAOJc0ADiXOAA4mYQAOJoQADiakAA4mxAAOJsYADibIAA4mygAOJswADibPAA4m0AAOJtEADibUAA4m1QAOJtcADibYAA4m2wAOJt4ADibfAA4m4AAOJuMADibkAA4m6QAOJwIADicLAA4nDQAOJw8ADicYAA4nGwAOJx4ADicgAA4naQAOJ40ADie0AA4n2AAOJ9sADifdAA4n3wAOJ+EADifjAA4n5QAOJ+YADifpAA4oAgAOKCMADiglAA4oJwAOKCkADigrAA4oLQAOKC8ADigxAA4oMwAOKFQADihXAA4oWgAOKF0ADihgAA4oYwAOKGYADihpAA4obAAOKG4ADijpAA4o6wAOKO0ADijvAA4o8gAOKPMADij0AA4o9QAOKPYADij4AA4o+gAOKPsADij8AA4o/gAOKP8ADil6AA4pfAAOKX4ADimAAA4pgwAOKYQADimFAA4phgAOKYcADimJAA4piwAOKYwADimNAA4pjwAOKZAADioLAA4qDQAOKhAADioSAA4qFQAOKhYADioXAA4qGAAOKhkADiobAA4qHQAOKh4ADiofAA4qIQAOKiIADio7AA4qPAAOKj0ADio/AA4qugAOKrwADiq+AA4qwAAOKsMADirEAA4qxQAOKsYADirHAA4qyQAOKssADirMAA4qzQAOKs8ADirQAA4rSwAOK00ADitPAA4rUQAOK1QADitVAA4rVgAOK1cADitYAA4rWgAOK1wADitdAA4rXgAOK2AADithAA4r3AAOK94ADivgAA4r4gAOK+UADivmAA4r5wAOK+gADivpAA4r6wAOK+0ADivuAA4r7wAOK/EADivyAA4sbQAOLG8ADixxAA4scwAOLHYADix3AA4seAAOLHkADix6AA4sfAAOLH4ADix/AA4sgAAOLIIADiyDAA4s/gAOLQAADi0CAA4tBAAOLQcADi0IAA4tCQAOLQoADi0LAA4tDQAOLQ8ADi0QAA4tEQAOLRMADi0UAA4tXQAOLYEADi2oAA4tzAAOLc8ADi3RAA4t0wAOLdUADi3XAA4t2QAOLdoADi3dAA4t9gAOLhMADi4VAA4uFwAOLhkADi4bAA4uHQAOLh8ADi4hAA4uPgAOLkEADi5EAA4uRwAOLkoADi5NAA4uUAAOLlMADi5VAA4u0AAOLtIADi7UAA4u1gAOLtkADi7aAA4u2wAOLtwADi7dAA4u3wAOLuEADi7iAA4u4wAOLuUADi7mAA4vYQAOL2MADi9mAA4vaAAOL2sADi9sAA4vbQAOL24ADi9vAA4vcQAOL3MADi90AA4vdQAOL3cADi94AA4v8wAOL/UADi/3AA4v+QAOL/wADi/9AA4v/gAOL/8ADjAAAA4wAgAOMAQADjAFAA4wBgAOMAgADjAJAA4whAAOMIYADjCJAA4wiwAOMI4ADjCPAA4wkAAOMJEADjCSAA4wlAAOMJYADjCXAA4wmAAOMJoADjCbAA4xFgAOMRgADjEaAA4xHAAOMR8ADjEgAA4xIQAOMSIADjEjAA4xJQAOMScADjEoAA4xKQAOMSsADjEsAA4xpwAOMakADjGrAA4xrQAOMbAADjGxAA4xsgAOMbMADjG0AA4xtgAOMbgADjG5AA4xugAOMbwADjG9AA4yOAAOMjoADjI9AA4yPwAOMkIADjJDAA4yRAAOMkUADjJGAA4ySAAOMkoADjJLAA4yTAAOMk4ADjJPAA4y4gAOMwUADjMlAA4zRQAOM0cADjNJAA4zSwAOM00ADjNQAA4zUQAOM1IADjNVAA4zVgAOM1gADjNZAA4zXAAOM18ADjNgAA4zYQAOM2QADjNlAA4zagAOM4MADjOMAA4zjgAOM5AADjOZAA4znAAOM58ADjOhAA4z6gAONA4ADjQ1AA40WQAONFwADjReAA40YAAONGIADjRkAA40ZgAONGcADjRqAA40gwAONKQADjSmAA40qAAONKoADjSsAA40rgAONLAADjSyAA40tAAONNUADjTYAA402wAONN4ADjThAA405AAONOcADjTqAA407QAONO8ADjVqAA41bAAONW4ADjVwAA41cwAONXQADjV1AA41dgAONXcADjV5AA41ewAONXwADjV9AA41fwAONYAADjX7AA41/QAONf8ADjYBAA42BAAONgUADjYGAA42BwAONggADjYKAA42DAAONg0ADjYOAA42EAAONhEADjaMAA42jgAONpEADjaTAA42lgAONpcADjaYAA42mQAONpoADjacAA42ngAONp8ADjagAA42ogAONqMADja8AA42vQAONr4ADjbAAA43OwAONz0ADjc/AA43QQAON0QADjdFAA43RgAON0cADjdIAA43SgAON0wADjdNAA43TgAON1AADjdRAA43zAAON84ADjfQAA430gAON9UADjfWAA431wAON9gADjfZAA432wAON90ADjfeAA433wAON+EADjfiAA44XQAOOF8ADjhhAA44YwAOOGYADjhnAA44aAAOOGkADjhqAA44bAAOOG4ADjhvAA44cAAOOHIADjhzAA447gAOOPAADjjyAA449AAOOPcADjj4AA44+QAOOPoADjj7AA44/QAOOP8ADjkAAA45AQAOOQMADjkEAA45fwAOOYEADjmDAA45hQAOOYgADjmJAA45igAOOYsADjmMAA45jgAOOZAADjmRAA45kgAOOZQADjmVAA453gAOOgIADjopAA46TQAOOlAADjpSAA46VAAOOlYADjpYAA46WgAOOlsADjpeAA46dwAOOpQADjqWAA46mAAOOpoADjqcAA46ngAOOqAADjqiAA46vwAOOsIADjrFAA46yAAOOssADjrOAA460QAOOtQADjrWAA47UQAOO1MADjtVAA47VwAOO1oADjtbAA47XAAOO10ADjteAA47YAAOO2IADjtjAA47ZAAOO2YADjtnAA474gAOO+QADjvmAA476AAOO+sADjvsAA477QAOO+4ADjvvAA478QAOO/MADjv0AA479QAOO/cADjv4AA48cwAOPHUADjx3AA48eQAOPHwADjx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8AA5WvQAOVr4ADla/AA5WwQAOVsMADlbEAA5WxQAOVscADlbIAA5XQwAOV0UADldHAA5XSQAOV0wADldNAA5XTgAOV08ADldQAA5XUgAOV1QADldVAA5XVgAOV1gADldZAA5X1AAOV9YADlfYAA5X2gAOV90ADlfeAA5X3wAOV+AADlfhAA5X4wAOV+UADlfmAA5X5wAOV+kADlfqAA5YZQAOWGcADlhpAA5YawAOWG4ADlhvAA5YcAAOWHEADlhyAA5YdAAOWHYADlh3AA5YeAAOWHoADlh7AA5Y9gAOWPgADlj6AA5Y/AAOWP8ADlkAAA5ZAQAOWQIADlkDAA5ZBQAOWQcADlkIAA5ZCQAOWQsADlkMAA5ZhwAOWYkADlmLAA5ZjQAOWZAADlmRAA5ZkgAOWZMADlmUAA5ZlgAOWZgADlmZAA5ZmgAOWZwADlmdAA5aMAAOWlMADlpzAA5akwAOWpUADlqXAA5amQAOWpsADlqeAA5anwAOWqAADlqjAA5apAAOWqYADlqnAA5aqQAOWqwADlqtAA5argAOWrEADlqyAA5atwAOWtAADlrZAA5a2wAOWt0ADlrmAA5a6QAOWuwADlruAA5bNwAOW1sADluCAA5bpgAOW6kADlurAA5brQAOW68ADluxAA5bswAOW7QADlu3AA5b0AAOW/EADlvzAA5b9QAOW/cADlv5AA5b+wAOW/0ADlv/AA5cAQAOXCIADlwlAA5cKAAOXCsADlwuAA5cMQAOXDQADlw3AA5cOgAOXDwADly3AA5cuQAOXLsADly9AA5cwAAOXMEADlzCAA5cwwAOXMQADlzGAA5cyAAOXMkADlzKAA5czAAOXM0ADl1IAA5dSgAOXUwADl1OAA5dUQAOXVIADl1TAA5dVAAOXVUADl1XAA5dWQAOXVoADl1bAA5dXQAOXV4ADl3ZAA5d2wAOXd4ADl3gAA5d4wAOXeQADl3lAA5d5gAOXecADl3pAA5d6wAOXewADl3tAA5d7wAOXfAADl4JAA5eCgAOXgsADl4NAA5eiAAOXooADl6MAA5ejgAOXpEADl6SAA5ekwAOXpQADl6VAA5elwAOXpkADl6aAA5emwAOXp0ADl6eAA5fGQAOXxsADl8dAA5fHwAOXyIADl8jAA5fJAAOXyUADl8mAA5fKAAOXyoADl8rAA5fLAAOXy4ADl8vAA5fqgAOX6wADl+uAA5fsAAOX7MADl+0AA5ftQAOX7YADl+3AA5fuQAOX7sADl+8AA5fvQAOX78ADl/AAA5gOwAOYD0ADmA/AA5gQQAOYEQADmBFAA5gRgAOYEcADmBIAA5gSgAOYEwADmBNAA5gTgAOYFAADmBRAA5gzAAOYM4ADmDQAA5g0gAOYNUADmDWAA5g1wAOYNgADmDZAA5g2wAOYN0ADmDeAA5g3wAOYOEADmDiAA5hKwAOYU8ADmF2AA5hmgAOYZ0ADmGfAA5hoQAOYaMADmGlAA5hpwAOYagADmGrAA5hxAAOYeEADmHjAA5h5QAOYecADmHpAA5h6wAOYe0ADmHvAA5iDAAOYg8ADmISAA5iFQAOYhgADmIbAA5iHgAOYiEADmIjAA5ingAOYqAADmKjAA5ipQAOYqgADmKpAA5iqgAOYqsADmKsAA5irgAOYrAADmKxAA5isgAOYrQADmK1AA5itwAOYzIADmM0AA5jNgAOYzgADmM7AA5jPAAOYz0ADmM+AA5jPwAOY0EADmNDAA5jRAAOY0UADmNHAA5jSAAOY8MADmPFAA5jxwAOY8kADmPMAA5jzQAOY84ADmPPAA5j0AAOY9IADmPUAA5j1QAOY9YADmPYAA5j2QAOZFQADmRWAA5kWQAOZFsADmReAA5kXwAOZGAADmRhAA5kYgAOZGQADmRmAA5kZwAOZGgADmRqAA5kawAOZOYADmToAA5k6gAOZOwADmTvAA5k8AAOZPEADmTyAA5k8wAOZPUADmT3AA5k+AAOZPkADmT7AA5k/AAOZXcADmV5AA5lewAOZX0ADmWAAA5lgQAOZYIADmWDAA5lhAAOZYYADmWIAA5liQAOZYoADmWMAA5ljQAOZggADmYKAA5mDAAOZg4ADmYRAA5mEgAOZhMADmYUAA5mFQAOZhcADmYZAA5mGgAOZhsADmYdAA5mHgAOZrEADmbUAA5m9AAOZxQADmcWAA5nGAAOZxoADmccAA5nHwAOZyAADmchAA5nJAAOZyUADmcnAA5nKAAOZysADmcuAA5nLwAOZzAADmczAA5nNAAOZzkADmdSAA5nWwAOZ10ADmdfAA5naAAOZ2sADmduAA5ncAAOZ7kADmfdAA5oBAAOaCgADmgrAA5oLQAOaC8ADmgxAA5oMwAOaDUADmg2AA5oOQAOaFIADmhzAA5odQAOaHcADmh5AA5oewAOaH0ADmh/AA5ogQAOaIMADmikAA5opwAOaKoADmitAA5osAAOaLMADmi2AA5ouQAOaLwADmi+AA5pOQAOaTsADmk9AA5pPwAOaUIADmlDAA5pRAAOaUUADmlGAA5pSAAOaUoADmlLAA5pTAAOaU4ADmlPAA5pygAOacwADmnOAA5p0AAOadMADmnUAA5p1QAOadYADmnXAA5p2QAOadsADmncAA5p3QAOad8ADmngAA5qWwAOal0ADmpgAA5qYgAOamUADmpmAA5qZwAOamgADmppAA5qawAOam0ADmpuAA5qbwAOanEADmpyAA5qiwAOaowADmqNAA5qjwAOawoADmsMAA5rDgAOaxAADmsTAA5rFAAOaxUADmsWAA5rFwAOaxkADmsbAA5rHAAOax0ADmsfAA5rIAAOa5sADmudAA5rnwAOa6EADmukAA5rpQAOa6YADmunAA5rqAAOa6oADmusAA5rrQAOa64ADmuwAA5rsQAObCwADmwuAA5sMAAObDIADmw1AA5sNgAObDcADmw4AA5sOQAObDsADmw9AA5sPgAObD8ADmxBAA5sQgAObL0ADmy/AA5swQAObMMADmzGAA5sxwAObMgADmzJAA5sygAObMwADmzOAA5szwAObNAADmzSAA5s0wAObU4ADm1QAA5tUgAObVQADm1XAA5tWAAObVkADm1aAA5tWwAObV0ADm1fAA5tYAAObWEADm1jAA5tZAAOba0ADm3RAA5t+AAObhwADm4fAA5uIQAObiMADm4lAA5uJwAObikADm4qAA5uLQAObkYADm5jAA5uZQAObmcADm5pAA5uawAObm0ADm5vAA5ucQAObo4ADm6RAA5ulAAObpcADm6aAA5unQAObqAADm6jAA5upQAObyAADm8iAA5vJAAObyYADm8pAA5vKgAObysADm8sAA5vLQAOby8ADm8xAA5vMgAObzMADm81AA5vNgAOb7EADm+zAA5vtgAOb7gADm+7AA5vvAAOb70ADm++AA5vvwAOb8EADm/DAA5vxAAOb8UADm/HAA5vyAAOcEMADnBFAA5wRwAOcEkADnBMAA5wTQAOcE4ADnBPAA5wUAAOcFIADnBUAA5wVQAOcFYADnBYAA5wWQAOcNQADnDWAA5w2QAOcNsADnDeAA5w3wAOcOAADnDhAA5w4gAOcOQADnDmAA5w5wAOcOgADnDqAA5w6wAOcW4ADnGSAA5xtgAOcdkADnIAAA5yIAAOckcADnJuAA5yjgAOcrIADnLWAA5y2AAOctsADnLdAA5y3wAOcuEADnLkAA5y5wAOcukADnLrAA5y7gAOcvAADnLyAA5y9QAOcvgADnL5AA5zAgAOcxsADnMgAA5zIgAOcycADnMqAA5zLAAOc3UADnOZAA5zwAAOc+QADnPnAA5z6QAOc+sADnPtAA5z7wAOc/EADnPyAA5z9QAOdA4ADnQzAA50NQAOdDcADnQ5AA50OwAOdD0ADnQ/AA50QQAOdEMADnRFAA50agAOdG0ADnRwAA50cwAOdHYADnR5AA50fAAOdH8ADnSCAA50hQAOdIcADnUCAA51BAAOdQcADnUJAA51DAAOdQ0ADnUOAA51DwAOdRAADnUSAA51FAAOdRUADnUWAA51GAAOdRkADnUqAA51KwAOdS0ADnWoAA51qgAOdawADnWuAA51sQAOdbIADnWzAA51tAAOdbUADnW3AA51uQAOdboADnW7AA51vQAOdb4ADnY5AA52OwAOdj4ADnZAAA52QwAOdkQADnZFAA52RgAOdkcADnZJAA52SwAOdkwADnZNAA52TwAOdlAADnZhAA52YgAOdmQADnbfAA524QAOduMADnblAA526AAOdukADnbqAA526wAOduwADnbuAA528AAOdvEADnbyAA529AAOdvUADndwAA53cgAOd3UADnd3AA53egAOd3sADnd8AA53fQAOd34ADneAAA53ggAOd4MADneEAA53hgAOd4cADneYAA53mQAOd5sADngWAA54GAAOeBoADngcAA54HwAOeCAADnghAA54IgAOeCMADnglAA54JwAOeCgADngpAA54KwAOeCwADninAA54qQAOeKwADniuAA54sQAOeLIADnizAA54tAAOeLUADni3AA54uQAOeLoADni7AA54vQAOeL4ADnjXAA542AAOeNkADnjbAA55VgAOeVgADnlaAA55XAAOeV8ADnlgAA55YQAOeWIADnljAA55ZQAOeWcADnloAA55aQAOeWsADnlsAA555wAOeekADnnsAA557gAOefEADnnyAA558wAOefQADnn1AA559wAOefkADnn6AA55+wAOef0ADnn+AA56LgAOekcADnpYAA56WwAOel4ADnphAA56ZAAOenUADnp4AA56ewAOen4ADnqBAA56gwAOepUADnquAA56xQAOe1gADnt7AA57mwAOe7sADnu9AA57vwAOe8EADnvDAA57xgAOe8cADnvIAA57ywAOe8wADnvOAA57zwAOe9IADnvVAA571gAOe9cADnvaAA572wAOe+AADnv5AA58AgAOfAQADnwGAA58DwAOfBIADnwVAA58FwAOfGAADnyEAA58qwAOfM8ADnzSAA581AAOfNYADnzYAA582gAOfNwADnzdAA584AAOfPkADn0aAA59HAAOfR4ADn0gAA59IgAOfSQADn0mAA59KAAOfSoADn1LAA59TgAOfVEADn1UAA59VwAOfVoADn1dAA59YAAOfWMADn1lAA594AAOfeIADn3kAA595gAOfekADn3qAA596wAOfewADn3tAA597wAOffEADn3yAA598wAOffUADn32AA5+cQAOfnMADn51AA5+dwAOfnoADn57AA5+fAAOfn0ADn5+AA5+gAAOfoIADn6DAA5+hAAOfoYADn6HAA5/AgAOfwQADn8HAA5/CQAOfwwADn8NAA5/DgAOfw8ADn8QAA5/EgAOfxQADn8VAA5/FgAOfxgADn8ZAA5/MgAOfzMADn80AA5/NgAOf7EADn+zAA5/tQAOf7cADn+6AA5/uwAOf7wADn+9AA5/vgAOf8AADn/CAA5/wwAOf8QADn/GAA5/xwAOgEIADoBEAA6ARgAOgEgADoBLAA6ATAAOgE0ADoBOAA6ATwAOgFEADoBTAA6AVAAOgFUADoBXAA6AWAAOgNMADoDVAA6A1wAOgNkADoDcAA6A3QAOgN4ADoDfAA6A4AAOgOIADoDkAA6A5QAOgOYADoDoAA6A6QAOgWQADoFmAA6BaAAOgWoADoFtAA6BbgAOgW8ADoFwAA6BcQAOgXMADoF1AA6BdgAOgXcADoF5AA6BegAOgfUADoH3AA6B+QAOgfsADoH+AA6B/wAOggAADoIBAA6CAgAOggQADoIGAA6CBwAOgggADoIKAA6CCwAOglQADoJ4AA6CnwAOgsMADoLGAA6CyAAOgsoADoLMAA6CzgAOgtAADoLRAA6C1AAOgu0ADoMKAA6DDAAOgw4ADoMQAA6DEgAOgxQADoMWAA6DGAAOgzUADoM4AA6DOwAOgz4ADoNBAA6DRAAOg0cADoNKAA6DTAAOg8cADoPJAA6DywAOg80ADoPQAA6D0QAOg9IADoPTAA6D1AAOg9YADoPYAA6D2QAOg9oADoPcAA6D3QAOhFgADoRaAA6EXAAOhF4ADoRhAA6EYgAOhGMADoRkAA6EZQAOhGcADoRpAA6EagAOhGsADoRtAA6EbgAOhOkADoTrAA6E7QAOhO8ADoTyAA6E8wAOhPQADoT1AA6E9gAOhPgADoT6AA6E+wAOhPwADoT+AA6E/wAOhXoADoV8AA6FfwAOhYEADoWEAA6FhQAOhYYADoWHAA6FiAAOhYoADoWMAA6FjQAOhY4ADoWQAA6FkQAOhgwADoYOAA6GEAAOhhIADoYVAA6GFgAOhhcADoYYAA6GGQAOhhsADoYdAA6GHgAOhh8ADoYhAA6GIgAOhp0ADoafAA6GoQAOhqMADoamAA6GpwAOhqgADoapAA6GqgAOhqwADoauAA6GrwAOhrAADoayAA6GswAOhy4ADocwAA6HMwAOhzUADoc4AA6HOQAOhzoADoc7AA6HPAAOhz4ADodAAA6HQQAOh0IADodEAA6HRQAOh9gADof7AA6IGwAOiDsADog9AA6IPwAOiEEADohDAA6IRgAOiEcADohIAA6ISwAOiEwADohOAA6ITwAOiFIADohVAA6IVgAOiFcADohaAA6IWwAOiGAADoh5AA6IggAOiIQADoiGAA6IjwAOiJIADoiVAA6IlwAOiOAADokEAA6JKwAOiU8ADolSAA6JVAAOiVYADolYAA6JWgAOiVwADoldAA6JYAAOiXkADomaAA6JnAAOiZ4ADomgAA6JogAOiaQADommAA6JqAAOiaoADonLAA6JzgAOidEADonUAA6J1wAOidoADondAA6J4AAOieMADonlAA6KYAAOimIADopkAA6KZgAOimkADopqAA6KawAOimwADoptAA6KbwAOinEADopyAA6KcwAOinUADop2AA6K8QAOivMADor1AA6K9wAOivoADor7AA6K/AAOiv0ADor+AA6LAAAOiwIADosDAA6LBAAOiwYADosHAA6LggAOi4QADouHAA6LiQAOi4wADouNAA6LjgAOi48ADouQAA6LkgAOi5QADouVAA6LlgAOi5gADouZAA6LsgAOi7MADou0AA6LtgAOjDEADowzAA6MNQAOjDcADow6AA6MOwAOjDwADow9AA6MPgAOjEAADoxCAA6MQwAOjEQADoxGAA6MRwAOjMIADozEAA6MxgAOjMgADozLAA6MzAAOjM0ADozOAA6MzwAOjNEADozTAA6M1AAOjNUADozXAA6M2AAOjVMADo1VAA6NVwAOjVkADo1cAA6NXQAOjV4ADo1fAA6NYAAOjWIADo1kAA6NZQAOjWYADo1oAA6NaQAOjeQADo3mAA6N6AAOjeoADo3tAA6N7gAOje8ADo3wAA6N8QAOjfMADo31AA6N9gAOjfcADo35AA6N+gAOjnUADo53AA6OeQAOjnsADo5+AA6OfwAOjoAADo6BAA6OggAOjoQADo6GAA6OhwAOjogADo6KAA6OiwAOjtQADo74AA6PHwAOj0MADo9GAA6PSAAOj0oADo9MAA6PTgAOj1AADo9RAA6PVAAOj20ADo+KAA6PjAAOj44ADo+QAA6PkgAOj5QADo+WAA6PmAAOj7UADo+4AA6PuwAOj74ADo/BAA6PxAAOj8cADo/KAA6PzAAOkEcADpBJAA6QSwAOkE0ADpBQAA6QUQAOkFIADpBTAA6QVAAOkFYADpBYAA6QWQAOkFoADpBcAA6QXQAOkNgADpDaAA6Q3QAOkN8ADpDiAA6Q4wAOkOQADpDlAA6Q5gAOkOgADpDqAA6Q6wAOkOwADpDuAA6Q7wAOkWoADpFsAA6RbgAOkXAADpFzAA6RdAAOkXUADpF2AA6RdwAOkXkADpF7AA6RfAAOkX0ADpF/AA6RgAAOkfsADpH9AA6SAAAOkgIADpIFAA6SBgAOkgcADpIIAA6SCQAOkgsADpINAA6SDgAOkg8ADpIRAA6SEgAOko0ADpKPAA6SkQAOkpMADpKWAA6SlwAOkpgADpKZAA6SmgAOkpwADpKeAA6SnwAOkqAADpKiAA6SowAOkx4ADpMgAA6TIgAOkyQADpMnAA6TKAAOkykADpMqAA6TKwAOky0ADpMvAA6TMAAOkzEADpMzAA6TNAAOk68ADpOxAA6TtAAOk7YADpO5AA6TugAOk7sADpO8AA6TvQAOk78ADpPBAA6TwgAOk8MADpPFAA6TxgAOlFkADpR8AA6UnAAOlLwADpS+AA6UwAAOlMIADpTEAA6UxwAOlMgADpTJAA6UzAAOlM0ADpTPAA6U0AAOlNIADpTVAA6U1gAOlNcADpTaAA6U2wAOlOAADpT5AA6VAgAOlQQADpUGAA6VDwAOlRIADpUVAA6VFwAOlWAADpWEAA6VqwAOlc8ADpXSAA6V1AAOldYADpXYAA6V2gAOldwADpXdAA6V4AAOlfkADpYaAA6WHAAOlh4ADpYgAA6WIgAOliQADpYmAA6WKAAOlioADpZLAA6WTgAOllEADpZUAA6WVwAOlloADpZdAA6WYAAOlmMADpZlAA6W4AAOluIADpbkAA6W5gAOlukADpbqAA6W6wAOluwADpbtAA6W7wAOlvEADpbyAA6W8wAOlvUADpb2AA6XcQAOl3MADpd1AA6XdwAOl3oADpd7AA6XfAAOl30ADpd+AA6XgAAOl4IADpeDAA6XhAAOl4YADpeHAA6YAgAOmAQADpgHAA6YCQAOmAwADpgNAA6YDgAOmA8ADpgQAA6YEgAOmBQADpgVAA6YFgAOmBgADpgZAA6YMgAOmDMADpg0AA6YNgAOmLEADpizAA6YtQAOmLcADpi6AA6YuwAOmLwADpi9AA6YvgAOmMAADpjCAA6YwwAOmMQADpjGAA6YxwAOmUIADplEAA6ZRgAOmUgADplLAA6ZTAAOmU0ADplOAA6ZTwAOmVEADplTAA6ZVAAOmVUADplXAA6ZWAAOmdMADpnVAA6Z1wAOmdkADpncAA6Z3QAOmd4ADpnfAA6Z4AAOmeIADpnkAA6Z5QAOmeYADpnoAA6Z6QAOmmQADppmAA6aaAAOmmoADpptAA6abgAOmm8ADppwAA6acQAOmnMADpp1AA6adgAOmncADpp5AA6aegAOmvUADpr3AA6a+QAOmvsADpr+AA6a/wAOmwAADpsBAA6bAgAOmwQADpsGAA6bBwAOmwgADpsKAA6bCwAOm1QADpt4AA6bnwAOm8MADpvGAA6byAAOm8oADpvMAA6bzgAOm9AADpvRAA6b1AAOm+0ADpwKAA6cDAAOnA4ADpwQAA6cEgAOnBQADpwWAA6cGAAOnDUADpw4AA6cOwAOnD4ADpxBAA6cRAAOnEcADpxKAA6cTAAOnMcADpzJAA6cywAOnM0ADpzQAA6c0QAOnNIADpzTAA6c1AAOnNYADpzYAA6c2QAOnNoADpzcAA6c3QAOnVgADp1aAA6dXAAOnV4ADp1hAA6dYgAOnWMADp1kAA6dZQAOnWcADp1pAA6dagAOnWsADp1tAA6dbgAOnekADp3rAA6d7QAOne8ADp3yAA6d8wAOnfQADp31AA6d9gAOnfgADp36AA6d+wAOnfwADp3+AA6d/wAOnnoADp58AA6efwAOnoEADp6EAA6ehQAOnoYADp6HAA6eiAAOnooADp6MAA6ejQAOno4ADp6QAA6ekQAOnwwADp8OAA6fEAAOnxIADp8VAA6fFgAOnxcADp8YAA6fGQAOnxsADp8dAA6fHgAOnx8ADp8hAA6fIgAOn50ADp+fAA6foQAOn6MADp+mAA6fpwAOn6gADp+pAA6fqgAOn6wADp+uAA6frwAOn7AADp+yAA6fswAOoC4ADqAwAA6gMgAOoDQADqA3AA6gOAAOoDkADqA6AA6gOwAOoD0ADqA/AA6gQAAOoEEADqBDAA6gRAAOoNcADqD6AA6hGgAOoToADqE8AA6hPgAOoUAADqFCAA6hRQAOoUYADqFHAA6hSgAOoUsADqFNAA6hTgAOoVEADqFUAA6hVQAOoVYADqFZAA6hWgAOoV8ADqF4AA6hgQAOoYMADqGFAA6hjgAOoZEADqGUAA6hlgAOod8ADqIDAA6iKgAOok4ADqJRAA6iUwAOolUADqJXAA6iWQAOolsADqJcAA6iXwAOongADqKZAA6imwAOop0ADqKfAA6ioQAOoqMADqKlAA6ipwAOoqkADqLKAA6izQAOotAADqLTAA6i1gAOotkADqLcAA6i3wAOouIADqLkAA6jXwAOo2EADqNjAA6jZQAOo2gADqNpAA6jagAOo2sADqNsAA6jbgAOo3AADqNxAA6jcgAOo3QADqN1AA6j8AAOo/IADqP0AA6j9gAOo/kADqP6AA6j+wAOo/wADqP9AA6j/wAOpAEADqQCAA6kAwAOpAUADqQGAA6kgQAOpIMADqSGAA6kiAAOpIsADqSMAA6kjQAOpI4ADqSPAA6kkQAOpJMADqSUAA6klQAOpJcADqSYAA6ksQAOpLIADqSzAA6ktQAOpTAADqUyAA6lNAAOpTYADqU5AA6lOgAOpTsADqU8AA6lPQAOpT8ADqVBAA6lQgAOpUMADqVFAA6lRgAOpcEADqXDAA6lxQAOpccADqXKAA6lywAOpcwADqXNAA6lzgAOpdAADqXSAA6l0wAOpdQADqXWAA6l1wAOplIADqZUAA6mVgAOplgADqZbAA6mXAAOpl0ADqZeAA6mXwAOpmEADqZjAA6mZAAOpmUADqZnAA6maAAOpuMADqblAA6m5wAOpukADqbsAA6m7QAOpu4ADqbvAA6m8AAOpvIADqb0AA6m9QAOpvYADqb4AA6m+QAOp3QADqd2AA6neAAOp3oADqd9AA6nfgAOp38ADqeAAA6ngQAOp4MADqeFAA6nhgAOp4cADqeJAA6nigAOp9MADqf3AA6oHgAOqEIADqhFAA6oRwAOqEkADqhLAA6oTQAOqE8ADqhQAA6oUwAOqGwADqiJAA6oiwAOqI0ADqiPAA6okQAOqJMADqiVAA6olwAOqLQADqi3AA6ougAOqL0ADqjAAA6owwAOqMYADqjJAA6oywAOqUYADqlIAA6pSgAOqUwADqlPAA6pUAAOqVEADqlSAA6pUwAOqVUADqlXAA6pWAAOqVkADqlbAA6pXAAOqdcADqnZAA6p2wAOqd0ADqngAA6p4QAOqeIADqnjAA6p5AAOqeYADqnoAA6p6QAOqeoADqnsAA6p7QAOqmgADqpqAA6qbAAOqm4ADqpxAA6qcgAOqnMADqp0AA6qdQAOqncADqp5AA6qegAOqnsADqp9AA6qfgAOqvkADqr7AA6q/gAOqwAADqsDAA6rBAAOqwUADqsGAA6rBwAOqwkADqsLAA6rDAAOqw0ADqsPAA6rEAAOq4sADquNAA6rjwAOq5EADquUAA6rlQAOq5YADquXAA6rmAAOq5oADqucAA6rnQAOq54ADqugAA6roQAOrBwADqweAA6sIAAOrCIADqwlAA6sJgAOrCcADqwoAA6sKQAOrCsADqwtAA6sLgAOrC8ADqwxAA6sMgAOrK0ADqyvAA6ssgAOrLQADqy3AA6suAAOrLkADqy6AA6suwAOrL0ADqy/AA6swAAOrMEADqzDAA6sxAAOrVcADq16AA6tmgAOrboADq28AA6tvgAOrcAADq3CAA6txQAOrcYADq3HAA6tygAOrcsADq3NAA6tzgAOrdAADq3TAA6t1AAOrdUADq3YAA6t2QAOrd4ADq33AA6uAAAOrgIADq4EAA6uDQAOrhAADq4TAA6uFQAOrl4ADq6CAA6uqQAOrs0ADq7QAA6u0gAOrtQADq7WAA6u2AAOrtoADq7bAA6u3gAOrvcADq8YAA6vGgAOrxwADq8eAA6vIAAOryIADq8kAA6vJgAOrygADq9JAA6vTAAOr08ADq9SAA6vVQAOr1gADq9bAA6vXgAOr2EADq9jAA6v3gAOr+AADq/iAA6v5AAOr+cADq/oAA6v6QAOr+oADq/rAA6v7QAOr+8ADq/wAA6v8QAOr/MADq/0AA6wbwAOsHEADrBzAA6wdQAOsHgADrB5AA6wegAOsHsADrB8AA6wfgAOsIAADrCBAA6wggAOsIQADrCFAA6xAAAOsQIADrEFAA6xBwAOsQoADrELAA6xDAAOsQ0ADrEOAA6xEAAOsRIADrETAA6xFAAOsRYADrEXAA6xMAAOsTEADrEyAA6xNAAOsa8ADrGxAA6xswAOsbUADrG4AA6xuQAOsboADrG7AA6xvAAOsb4ADrHAAA6xwQAOscIADrHEAA6xxQAOskAADrJCAA6yRAAOskYADrJJAA6ySgAOsksADrJMAA6yTQAOsk8ADrJRAA6yUgAOslMADrJVAA6yVgAOstEADrLTAA6y1QAOstcADrLaAA6y2wAOstwADrLdAA6y3gAOsuAADrLiAA6y4wAOsuQADrLmAA6y5wAOs2IADrNkAA6zZgAOs2gADrNrAA6zbAAOs20ADrNuAA6zbwAOs3EADrNzAA6zdAAOs3UADrN3AA6zeAAOs/MADrP1AA6z9wAOs/kADrP8AA6z/QAOs/4ADrP/AA60AAAOtAIADrQEAA60BQAOtAYADrQIAA60CQAOtFIADrR2AA60nQAOtMEADrTEAA60xgAOtMgADrTKAA60zAAOtM4ADrTPAA600gAOtOsADrUIAA61CgAOtQwADrUOAA61EAAOtRIADrUUAA61FgAOtTMADrU2AA61OQAOtTwADrU/AA61QgAOtUUADrVIAA61SgAOtcUADrXHAA61ygAOtcwADrXPAA610AAOtdEADrXSAA610wAOtdUADrXXAA612AAOtdkADrXbAA613AAOtlcADrZZAA62WwAOtl0ADrZgAA62YQAOtmIADrZjAA62ZAAOtmYADrZoAA62aQAOtmoADrZsAA62bQAOtugADrbqAA627AAOtu4ADrbxAA628gAOtvMADrb0AA629QAOtvcADrb5AA62+gAOtvsADrb9AA62/gAOt3kADrd7AA63fgAOt4AADreDAA63hAAOt4UADreGAA63hwAOt4kADreLAA63jAAOt40ADrePAA63kAAOuAsADrgNAA64DwAOuBEADrgUAA64FQAOuBYADrgXAA64GAAOuBoADrgcAA64HQAOuB4ADrggAA64IQAOuJwADrieAA64oAAOuKIADrilAA64pgAOuKcADrioAA64qQAOuKsADritAA64rgAOuK8ADrixAA64sgAOuS0ADrkvAA65MQAOuTMADrk2AA65NwAOuTgADrk5AA65OgAOuTwADrk+AA65PwAOuUAADrlCAA65QwAOuVQADrlVAA65VwAOudIADrnUAA651gAOudgADrnbAA653AAOud0ADrneAA653wAOueEADrnjAA655AAOueUADrnnAA656AAOumMADrplAA66ZwAOumkADrpsAA66bQAOum4ADrpvAA66cAAOunIADrp0AA66dQAOunYADrp4AA66eQAOuvQADrr2AA66+QAOuvsADrr+AA66/wAOuwAADrsBAA67AgAOuwQADrsGAA67BwAOuwgADrsKAA67CwAOu54ADrvBAA674QAOvAEADrwDAA68BQAOvAcADrwJAA68DAAOvA0ADrwOAA68EQAOvBIADrwUAA68FQAOvBcADrwaAA68GwAOvBwADrwfAA68IAAOvCUADrw+AA68RwAOvEkADrxLAA68VAAOvFcADrxaAA68XAAOvKUADrzJAA688AAOvRQADr0XAA69GQAOvRsADr0dAA69HwAOvSEADr0iAA69JQAOvT4ADr1fAA69YQAOvWMADr1lAA69ZwAOvWkADr1rAA69bQAOvW8ADr2QAA69kwAOvZYADr2ZAA69nAAOvZ8ADr2iAA69pQAOvagADr2qAA6+JQAOvicADr4pAA6+KwAOvi4ADr4vAA6+MAAOvjEADr4yAA6+NAAOvjYADr43AA6+OAAOvjoADr47AA6+tgAOvrgADr66AA6+vAAOvr8ADr7AAA6+wQAOvsIADr7DAA6+xQAOvscADr7IAA6+yQAOvssADr7MAA6/RwAOv0kADr9MAA6/TgAOv1EADr9SAA6/UwAOv1QADr9VAA6/VwAOv1kADr9aAA6/WwAOv10ADr9eAA6/dwAOv3gADr95AA6/ewAOv/YADr/4AA6/+gAOv/wADr//AA7AAAAOwAEADsACAA7AAwAOwAUADsAHAA7ACAAOwAkADsALAA7ADAAOwIcADsCJAA7AiwAOwI0ADsCQAA7AkQAOwJIADsC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sAA7bbgAO228ADttwAA7bcgAO23MADtuEAA7bhQAO24cADtwCAA7cBAAO3AYADtwIAA7cCwAO3AwADtwNAA7cDgAO3A8ADtwRAA7cEwAO3BQADtwVAA7cFwAO3BgADtyTAA7clQAO3JgADtyaAA7cnQAO3J4ADtyfAA7coAAO3KEADtyjAA7cpQAO3KYADtynAA7cqQAO3KoADtzDAA7cxAAO3MUADtzHAA7dQgAO3UQADt1GAA7dSAAO3UsADt1MAA7dTQAO3U4ADt1PAA7dUQAO3VMADt1UAA7dVQAO3VcADt1YAA7d0wAO3dUADt3YAA7d2gAO3d0ADt3eAA7d3wAO3eAADt3hAA7d4wAO3eUADt3mAA7d5wAO3ekADt3qAA7eCAAO3iEADt4qAA7eLQAO3jAADt45AA7ePAAO3j8ADt5BAA7eXgAO3nMADt8GAA7fKQAO30kADt9pAA7fawAO320ADt9vAA7fcQAO33QADt91AA7fdgAO33kADt96AA7ffAAO330ADt9/AA7fggAO34MADt+EAA7fhwAO34gADt+NAA7fpgAO368ADt+xAA7fswAO37wADt+/AA7fwgAO38QADuANAA7gMQAO4FgADuB8AA7gfwAO4IEADuCDAA7ghQAO4IcADuCJAA7gigAO4I0ADuCmAA7gxwAO4MkADuDLAA7gzQAO4M8ADuDRAA7g0wAO4NUADuDXAA7g+AAO4PsADuD+AA7hAQAO4QQADuEHAA7hCgAO4Q0ADuEQAA7hEgAO4Y0ADuGPAA7hkQAO4ZMADuGWAA7hlwAO4ZgADuGZAA7hmgAO4ZwADuGeAA7hnwAO4aAADuGiAA7howAO4h4ADuIgAA7iIgAO4iQADuInAA7iKAAO4ikADuIqAA7iKwAO4i0ADuIvAA7iMAAO4jEADuIzAA7iNAAO4q8ADuKxAA7itAAO4rYADuK5AA7iugAO4rsADuK8AA7ivQAO4r8ADuLBAA7iwgAO4sMADuLFAA7ixgAO4t8ADuLgAA7i4QAO4uMADuNeAA7jYAAO42IADuNkAA7jZwAO42gADuNpAA7jagAO42sADuNtAA7jbwAO43AADuNxAA7jcwAO43QADuPvAA7j8QAO4/MADuP1AA7j+AAO4/kADuP6AA7j+wAO4/wADuP+AA7kAAAO5AEADuQCAA7kBAAO5AUADuSAAA7kggAO5IQADuSGAA7kiQAO5IoADuSLAA7kjAAO5I0ADuSPAA7kkQAO5JIADuSTAA7klQAO5JYADuURAA7lEwAO5RUADuUXAA7lGgAO5RsADuUcAA7lHQAO5R4ADuUgAA7lIgAO5SMADuUkAA7lJgAO5ScADuWiAA7lpAAO5aYADuWoAA7lqwAO5awADuWtAA7lrgAO5a8ADuWxAA7lswAO5bQADuW1AA7ltwAO5bgADuYBAA7mJQAO5kwADuZwAA7mcwAO5nUADuZ3AA7meQAO5nsADuZ9AA7mfgAO5oEADuaaAA7mtwAO5rkADua7AA7mvQAO5r8ADubBAA7mwwAO5sUADubiAA7m5QAO5ugADubrAA7m7gAO5vEADub0AA7m9wAO5vkADud0AA7ndgAO53gADud6AA7nfQAO534ADud/AA7ngAAO54EADueDAA7nhQAO54YADueHAA7niQAO54oADugFAA7oBwAO6AkADugLAA7oDgAO6A8ADugQAA7oEQAO6BIADugUAA7oFgAO6BcADugYAA7oGgAO6BsADuiWAA7omAAO6JoADuicAA7onwAO6KAADuihAA7oogAO6KMADuilAA7opwAO6KgADuipAA7oqwAO6KwADuknAA7pKQAO6SsADuktAA7pMAAO6TEADukyAA7pMwAO6TQADuk2AA7pOAAO6TkADuk6AA7pPAAO6T0ADum4AA7pugAO6bwADum+AA7pwQAO6cIADunDAA7pxAAO6cUADunHAA7pyQAO6coADunLAA7pzQAO6c4ADupJAA7qSwAO6k0ADupPAA7qUgAO6lMADupUAA7qVQAO6lYADupYAA7qWgAO6lsADupcAA7qXgAO6l8ADuraAA7q3AAO6t4ADurgAA7q4wAO6uQADurlAA7q5gAO6ucADurpAA7q6wAO6uwADurtAA7q7wAO6vAADuuDAA7rpgAO68YADuvmAA7r6AAO6+oADuvsAA7r7gAO6/EADuvyAA7r8wAO6/YADuv3AA7r+QAO6/oADuv9AA7sAAAO7AEADuwCAA7sBQAO7AYADuwLAA7sJAAO7C0ADuwvAA7sMQAO7DoADuw9AA7sQAAO7EIADuyLAA7srwAO7NYADuz6AA7s/QAO7P8ADu0BAA7tAwAO7QUADu0HAA7tCAAO7QsADu0kAA7tRQAO7UcADu1JAA7tSwAO7U0ADu1PAA7tUQAO7VMADu1VAA7tdgAO7XkADu18AA7tfwAO7YIADu2FAA7tiAAO7YsADu2OAA7tkAAO7gsADu4NAA7uDwAO7hEADu4UAA7uFQAO7hYADu4XAA7uGAAO7hoADu4cAA7uHQAO7h4ADu4gAA7uIQAO7pwADu6eAA7uoAAO7qIADu6lAA7upgAO7qcADu6oAA7uqQAO7qsADu6tAA7urgAO7q8ADu6xAA7usgAO7y0ADu8vAA7vMgAO7zQADu83AA7vOAAO7zkADu86AA7vOwAO7z0ADu8/AA7vQAAO70EADu9DAA7vRAAO710ADu9eAA7vXwAO72EADu/cAA7v3gAO7+AADu/iAA7v5QAO7+YADu/nAA7v6AAO7+kADu/rAA7v7QAO7+4ADu/vAA7v8QAO7/IADvBtAA7wbwAO8HEADvBzAA7wdgAO8HcADvB4AA7weQAO8HoADvB8AA7wfgAO8H8ADvCAAA7wggAO8IMADvD+AA7xAAAO8QIADvEEAA7xBwAO8QgADvEJAA7xCgAO8QsADvENAA7xDwAO8RAADvERAA7xEwAO8RQADvGPAA7xkQAO8ZQADvGWAA7xmQAO8ZoADvGbAA7xnAAO8Z0ADvGfAA7xoQAO8aIADvGjAA7xpQAO8aYADvG4AA7yMwAO8jUADvI3AA7yOQAO8jwADvI9AA7yPgAO8j8ADvJAAA7yQgAO8kQADvJFAA7yRgAO8kgADvJJAA7ykgAO8rYADvLdAA7zAQAO8wQADvMGAA7zCAAO8woADvMMAA7zDgAO8w8ADvMSAA7zKwAO80gADvNKAA7zTAAO804ADvNQAA7zUgAO81QADvNWAA7zcwAO83YADvN5AA7zfAAO838ADvOCAA7zhQAO84gADvOKAA70BQAO9AcADvQJAA70CwAO9A4ADvQPAA70EAAO9BEADvQSAA70FAAO9BYADvQXAA70GAAO9BoADvQbAA70lgAO9JgADvSaAA70nAAO9J8ADvSgAA70oQAO9KIADvSjAA70pQAO9KcADvSoAA70qQAO9KsADvSsAA71JwAO9SkADvUrAA71LQAO9TAADvUxAA71MgAO9TMADvU0AA71NgAO9TgADvU5AA71OgAO9TwADvU9AA71uAAO9boADvW9AA71vwAO9cIADvXDAA71xAAO9cUADvXGAA71yAAO9coADvXLAA71zAAO9c4ADvXPAA72SgAO9kwADvZOAA72UAAO9lMADvZUAA72VQAO9lYADvZXAA72WQAO9lsADvZcAA72XQAO9l8ADvZgAA722wAO9t0ADvbfAA724QAO9uQADvblAA725gAO9ucADvboAA726gAO9uwADvbtAA727gAO9vAADvbxAA73bAAO924ADvdxAA73cwAO93YADvd3AA73eAAO93kADvd6AA73fAAO934ADvd/AA73gAAO94IADveDAA74FgAO+DkADvhZAA74eQAO+HsADvh9AA74fwAO+IEADviEAA74hQAO+IYADviJAA74igAO+IwADviNAA74kAAO+JMADviUAA74lQAO+JgADviZAA74ngAO+LcADvjAAA74wgAO+MQADvjNAA740AAO+NMADvjVAA75HgAO+UIADvlpAA75jQAO+ZAADvmSAA75lAAO+ZYADvmYAA75mgAO+ZsADvmeAA75twAO+dgADvnaAA753AAO+d4ADvngAA754gAO+eQADvnmAA756AAO+gkADvoMAA76DwAO+hIADvoVAA76GAAO+hsADvoeAA76IQAO+iMADvqeAA76oAAO+qIADvqkAA76pwAO+qgADvqpAA76qgAO+qsADvqtAA76rwAO+rAADvqxAA76swAO+rQADvsvAA77MQAO+zMADvs1AA77OAAO+zkADvs6AA77OwAO+zwADvs+AA77QAAO+0EADvtCAA77RAAO+0UADvvAAA77wgAO+8UADvvHAA77ygAO+8sADvvMAA77zQAO+84ADvvQAA770gAO+9MADvvUAA771gAO+9cADvvwAA778QAO+/IADvv0AA78bwAO/HEADvxzAA78dQAO/HgADvx5AA78egAO/HsADvx8AA78fgAO/IAADvyBAA78ggAO/IQADvyFAA79AAAO/QIADv0EAA79BgAO/QkADv0KAA79CwAO/QwADv0NAA79DwAO/READv0SAA79EwAO/RUADv0WAA79kQAO/ZMADv2VAA79lwAO/ZoADv2bAA79nAAO/Z0ADv2eAA79oAAO/aIADv2jAA79pAAO/aYADv2nAA7+IgAO/iQADv4mAA7+KAAO/isADv4sAA7+LQAO/i4ADv4vAA7+MQAO/jMADv40AA7+NQAO/jcADv44AA7+swAO/rUADv6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dAA8ZoAAPGaEADxmiAA8ZowAPGaQADxmmAA8ZqAAPGakADxmqAA8ZrAAPGa0ADxm+AA8ZvwAPGcEADxo8AA8aPgAPGkAADxpCAA8aRQAPGkYADxpHAA8aSAAPGkkADxpLAA8aTQAPGk4ADxpPAA8aUQAPGlIADxrNAA8azwAPGtIADxrUAA8a1wAPGtgADxrZAA8a2gAPGtsADxrdAA8a3wAPGuAADxrhAA8a4wAPGuQADxr1AA8a9gAPGvgADxtzAA8bdQAPG3cADxt5AA8bfAAPG30ADxt+AA8bfwAPG4AADxuCAA8bhAAPG4UADxuGAA8biAAPG4kADxwEAA8cBgAPHAkADxwLAA8cDgAPHA8ADxwQAA8cEQAPHBIADxwUAA8cFgAPHBcADxwYAA8cGgAPHBsADxw0AA8cNQAPHDYADxw4AA8cswAPHLUADxy3AA8cuQAPHLwADxy9AA8cvgAPHL8ADxzAAA8cwgAPHMQADxzFAA8cxgAPHMgADxzJAA8dRAAPHUYADx1JAA8dSwAPHU4ADx1PAA8dUAAPHVEADx1SAA8dVAAPHVYADx1XAA8dWAAPHVoADx1bAA8dgQAPHZoADx2rAA8drgAPHbEADx20AA8dtwAPHcgADx3LAA8dzgAPHdEADx3UAA8d1gAPHd4ADx3tAA8egAAPHqMADx7DAA8e4wAPHuUADx7nAA8e6QAPHusADx7uAA8e7wAPHvAADx7zAA8e9AAPHvYADx73AA8e+QAPHvwADx79AA8e/gAPHwEADx8CAA8fBwAPHyAADx8pAA8fKwAPHy0ADx82AA8fOQAPHzwADx8+AA8fhwAPH6sADx/SAA8f9gAPH/kADx/7AA8f/QAPH/8ADyABAA8gAwAPIAQADyAHAA8gIAAPIEEADyBDAA8gRQAPIEcADyBJAA8gSwAPIE0ADyBPAA8gUQAPIHIADyB1AA8geAAPIHsADyB+AA8ggQAPIIQADyCHAA8gigAPIIwADyEHAA8hCQAPIQsADyENAA8hEAAPIREADyESAA8hEwAPIRQADyEWAA8hGAAPIRkADyEaAA8hHAAPIR0ADyGYAA8hmgAPIZwADyGeAA8hoQAPIaIADyGjAA8hpAAPIaUADyGnAA8hqQAPIaoADyGrAA8hrQAPIa4ADyIpAA8iKwAPIi4ADyIwAA8iMwAPIjQADyI1AA8iNgAPIjcADyI5AA8iOwAPIjwADyI9AA8iPwAPIkAADyJZAA8iWgAPIlsADyJdAA8i2AAPItoADyLcAA8i3gAPIuEADyLiAA8i4wAPIuQADyLlAA8i5wAPIukADyLqAA8i6wAPIu0ADyLuAA8jaQAPI2sADyNtAA8jbwAPI3IADyNzAA8jdAAPI3UADyN2AA8jeAAPI3oADyN7AA8jfAAPI34ADyN/AA8j+gAPI/wADyP+AA8kAAAPJAMADyQEAA8kBQAPJAYADyQHAA8kCQAPJAsADyQMAA8kDQAPJA8ADyQQAA8kiwAPJI0ADySPAA8kkQAPJJQADySVAA8klgAPJJcADySYAA8kmgAPJJwADySdAA8kngAPJKAADyShAA8lHAAPJR4ADyUgAA8lIgAPJSUADyUmAA8lJwAPJSgADyUpAA8lKwAPJS0ADyUuAA8lLwAPJTEADyUyAA8lewAPJZ8ADyXGAA8l6gAPJe0ADyXvAA8l8QAPJfMADyX1AA8l9wAPJfgADyX7AA8mFAAPJjEADyYzAA8mNQAPJjcADyY5AA8mOwAPJj0ADyY/AA8mXAAPJl8ADyZiAA8mZQAPJmgADyZrAA8mbgAPJnEADyZzAA8m7gAPJvAADybyAA8m9AAPJvcADyb4AA8m+QAPJvoADyb7AA8m/QAPJv8ADycAAA8nAQAPJwMADycEAA8nfwAPJ4EADyeDAA8nhQAPJ4gADyeJAA8nigAPJ4sADyeMAA8njgAPJ5AADyeRAA8nkgAPJ5QADyeVAA8oEAAPKBIADygUAA8oFgAPKBkADygaAA8oGwAPKBwADygdAA8oHwAPKCEADygiAA8oIwAPKCUADygmAA8ooQAPKKMADyimAA8oqAAPKKsADyisAA8orQAPKK4ADyivAA8osQAPKLMADyi0AA8otQAPKLcADyi4AA8pMwAPKTUADyk3AA8pOQAPKTwADyk9AA8pPgAPKT8ADylAAA8pQgAPKUQADylFAA8pRgAPKUgADylJAA8pxAAPKcYADynIAA8pygAPKc0ADynOAA8pzwAPKdAADynRAA8p0wAPKdUADynWAA8p1wAPKdkADynaAA8qVQAPKlcADypZAA8qWwAPKl4ADypfAA8qYAAPKmEADypiAA8qZAAPKmYADypnAA8qaAAPKmoADyprAA8q/gAPKyEADytBAA8rYQAPK2MADytlAA8rZwAPK2kADytsAA8rbQAPK24ADytxAA8rcgAPK3QADyt1AA8rdwAPK3oADyt7AA8rfAAPK38ADyuAAA8rhQAPK54ADyunAA8rqQAPK6sADyu0AA8rtwAPK7oADyu8AA8sBQAPLCkADyxQAA8sdAAPLHcADyx5AA8sewAPLH0ADyx/AA8sgQAPLIIADyyFAA8sngAPLL8ADyzBAA8swwAPLMUADyzHAA8syQAPLMsADyzNAA8szwAPLPAADyzzAA8s9gAPLPkADyz8AA8s/wAPLQIADy0FAA8tCAAPLQoADy2FAA8thwAPLYkADy2LAA8tjgAPLY8ADy2QAA8tkQAPLZIADy2UAA8tlgAPLZcADy2YAA8tmgAPLZsADy4WAA8uGAAPLhoADy4cAA8uHwAPLiAADy4hAA8uIgAPLiMADy4lAA8uJwAPLigADy4pAA8uKwAPLiwADy6nAA8uqQAPLqwADy6uAA8usQAPLrIADy6zAA8utAAPLrUADy63AA8uuQAPLroADy67AA8uvQAPLr4ADy7XAA8u2AAPLtkADy7bAA8vVgAPL1gADy9aAA8vXAAPL18ADy9gAA8vYQAPL2IADy9jAA8vZQAPL2cADy9oAA8vaQAPL2sADy9sAA8v5wAPL+kADy/rAA8v7QAPL/AADy/xAA8v8gAPL/MADy/0AA8v9gAPL/gADy/5AA8v+gAPL/wADy/9AA8weAAPMHoADzB8AA8wfgAPMIEADzCCAA8wgwAPMIQADzCFAA8whwAPMIkADzCKAA8wiwAPMI0ADzCOAA8xCQAPMQsADzENAA8xDwAPMRIADzETAA8xFAAPMRUADzEWAA8xGAAPMRoADzEbAA8xHAAPMR4ADzEfAA8xmgAPMZwADzGeAA8xoAAPMaMADzGkAA8xpQAPMaYADzGnAA8xqQAPMasADzGsAA8xrQAPMa8ADzGwAA8x+QAPMh0ADzJEAA8yaAAPMmsADzJtAA8ybwAPMnEADzJzAA8ydQAPMnYADzJ5AA8ykgAPMq8ADzKxAA8yswAPMrUADzK3AA8yuQAPMrsADzK9AA8y2gAPMt0ADzLgAA8y4wAPMuYADzLpAA8y7AAPMu8ADzLxAA8zbAAPM24ADzNwAA8zcgAPM3UADzN2AA8zdwAPM3gADzN5AA8zewAPM30ADzN+AA8zfwAPM4EADzOCAA8z/QAPM/8ADzQBAA80AwAPNAYADzQHAA80CAAPNAkADzQKAA80DAAPNA4ADzQPAA80EAAPNBIADzQTAA80jgAPNJAADzSSAA80lAAPNJcADzSYAA80mQAPNJoADzSbAA80nQAPNJ8ADzSgAA80oQAPNKMADzSkAA81HwAPNSEADzUjAA81JQAPNSgADzUpAA81KgAPNSsADzUsAA81LgAPNTAADzUxAA81MgAPNTQADzU1AA81sAAPNbIADzW0AA81tgAPNbkADzW6AA81uwAPNbwADzW9AA81vwAPNcEADzXCAA81wwAPNcUADzXGAA82QQAPNkMADzZFAA82RwAPNkoADzZLAA82TAAPNk0ADzZOAA82UAAPNlIADzZTAA82VAAPNlYADzZXAA820gAPNtQADzbWAA822AAPNtsADzbcAA823QAPNt4ADzbfAA824QAPNuMADzbkAA825QAPNucADzboAA83ewAPN54ADze+AA833gAPN+AADzfiAA835AAPN+YADzfpAA836gAPN+sADzfuAA837wAPN/EADzfyAA839QAPN/gADzf5AA83+gAPN/0ADzf+AA84AwAPOBwADzglAA84JwAPOCkADzgyAA84NQAPODgADzg6AA84gwAPOKcADzjOAA848gAPOPUADzj3AA84+QAPOPsADzj9AA84/wAPOQAADzkDAA85HAAPOT0ADzk/AA85QQAPOUMADzlFAA85RwAPOUkADzlLAA85TQAPOW4ADzlxAA85dAAPOXcADzl6AA85fQAPOYAADzmDAA85hgAPOYgADzoDAA86BQAPOgcADzoJAA86DAAPOg0ADzoOAA86DwAPOhAADzoSAA86FAAPOhUADzoWAA86GAAPOhkADzqUAA86lgAPOpgADzqaAA86nQAPOp4ADzqfAA86oAAPOqEADzqjAA86pQAPOqYADzqnAA86qQAPOqoADzslAA87JwAPOyoADzssAA87LwAPOzAADzsxAA87MgAPOzMADzs1AA87NwAPOzgADzs5AA87OwAPOzwADztVAA87VgAPO1cADztZAA871AAPO9YADzvYAA872gAPO90ADzveAA873wAPO+AADzvhAA874wAPO+UADzvmAA875wAPO+kADzvqAA88ZQAPPGcADzxpAA88awAPPG4ADzx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rAA9WrAAPVq0AD1auAA9WsAAPVrIAD1azAA9WtAAPVrYAD1a3AA9XMgAPVzQAD1c2AA9XOAAPVzsAD1c8AA9XPQAPVz4AD1c/AA9XQQAPV0MAD1dEAA9XRQAPV0cAD1dIAA9XwwAPV8UAD1fHAA9XyQAPV8wAD1fNAA9XzgAPV88AD1fQAA9X0gAPV9QAD1fVAA9X1gAPV9gAD1fZAA9YVAAPWFYAD1hYAA9YWgAPWF0AD1heAA9YXwAPWGAAD1hhAA9YYwAPWGUAD1hmAA9YZwAPWGkAD1hqAA9Y5QAPWOcAD1jpAA9Y6wAPWO4AD1jvAA9Y8AAPWPEAD1jyAA9Y9AAPWPYAD1j3AA9Y+AAPWPoAD1j7AA9ZRAAPWWgAD1mPAA9ZswAPWbYAD1m4AA9ZugAPWbwAD1m+AA9ZwAAPWcEAD1nEAA9Z3QAPWfoAD1n8AA9Z/gAPWgAAD1oCAA9aBAAPWgYAD1oIAA9aJQAPWigAD1orAA9aLgAPWjEAD1o0AA9aNwAPWjoAD1o8AA9atwAPWrkAD1q8AA9avgAPWsEAD1rCAA9awwAPWsQAD1rFAA9axwAPWskAD1rKAA9aywAPWs0AD1rOAA9bSQAPW0sAD1tNAA9bTwAPW1IAD1tTAA9bVAAPW1UAD1tWAA9bWAAPW1oAD1tbAA9bXAAPW14AD1tfAA9b2gAPW9wAD1vfAA9b4QAPW+QAD1vlAA9b5gAPW+cAD1voAA9b6gAPW+wAD1vtAA9b7gAPW/AAD1vxAA9cbAAPXG4AD1xxAA9ccwAPXHYAD1x3AA9ceAAPXHkAD1x6AA9cfAAPXH4AD1x/AA9cgAAPXIIAD1yDAA9c/gAPXQAAD10CAA9dBAAPXQcAD10IAA9dCQAPXQoAD10LAA9dDQAPXQ8AD10QAA9dEQAPXRMAD10UAA9djwAPXZEAD12TAA9dlQAPXZgAD12ZAA9dmgAPXZsAD12cAA9dngAPXaAAD12hAA9dogAPXaQAD12lAA9eIAAPXiIAD14kAA9eJgAPXikAD14qAA9eKwAPXiwAD14tAA9eLwAPXjEAD14yAA9eMwAPXjUAD142AA9eyQAPXuwAD18MAA9fLAAPXy4AD18wAA9fMgAPXzQAD183AA9fOAAPXzkAD188AA9fPQAPXz8AD19AAA9fQwAPX0YAD19HAA9fSAAPX0sAD19MAA9fUQAPX2oAD19zAA9fdQAPX3cAD1+AAA9fgwAPX4YAD1+IAA9f0QAPX/UAD2AcAA9gQAAPYEMAD2BFAA9gRwAPYEkAD2BLAA9gTQAPYE4AD2BRAA9gagAPYIsAD2CNAA9gjwAPYJEAD2CTAA9glQAPYJcAD2CZAA9gmwAPYLwAD2C/AA9gwgAPYMUAD2DIAA9gywAPYM4AD2DRAA9g1AAPYNYAD2FRAA9hUwAPYVUAD2FXAA9hWgAPYVsAD2FcAA9hXQAPYV4AD2FgAA9hYgAPYWMAD2FkAA9hZgAPYWcAD2HiAA9h5AAPYeYAD2HoAA9h6wAPYewAD2HtAA9h7gAPYe8AD2HxAA9h8wAPYfQAD2H1AA9h9wAPYfgAD2JzAA9idQAPYngAD2J6AA9ifQAPYn4AD2J/AA9igAAPYoEAD2KDAA9ihQAPYoYAD2KHAA9iiQAPYooAD2KjAA9ipAAPYqUAD2KnAA9jIgAPYyQAD2MmAA9jKAAPYysAD2MsAA9jLQAPYy4AD2MvAA9jMQAPYzMAD2M0AA9jNQAPYzcAD2M4AA9jswAPY7UAD2O3AA9juQAPY7wAD2O9AA9jvgAPY78AD2PAAA9jwgAPY8QAD2PFAA9jxgAPY8gAD2PJAA9kRAAPZEYAD2RIAA9kSgAPZE0AD2ROAA9kTwAPZFAAD2RRAA9kUwAPZFUAD2RWAA9kVwAPZFkAD2RaAA9k1QAPZNcAD2TZAA9k2wAPZN4AD2TfAA9k4AAPZOEAD2TiAA9k5AAPZOYAD2TnAA9k6AAPZOoAD2TrAA9lZgAPZWgAD2VqAA9lbAAPZW8AD2VwAA9lcQAPZXIAD2VzAA9ldQAPZXcAD2V4AA9leQAPZXsAD2V8AA9lxQAPZekAD2YQAA9mNAAPZjcAD2Y5AA9mOwAPZj0AD2Y/AA9mQQAPZkIAD2ZFAA9mXgAPZnsAD2Z9AA9mfwAPZoEAD2aDAA9mhQAPZocAD2aJAA9mpgAPZqkAD2asAA9mrwAPZrIAD2a1AA9muAAPZrsAD2a9AA9nOAAPZzoAD2c8AA9nPgAPZ0EAD2dCAA9nQwAPZ0QAD2dFAA9nRwAPZ0kAD2dKAA9nSwAPZ00AD2dOAA9nyQAPZ8sAD2fOAA9n0AAPZ9MAD2fUAA9n1QAPZ9YAD2fXAA9n2QAPZ9sAD2fcAA9n3QAPZ98AD2f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+AA+VQAAPlUIAD5VFAA+VRgAPlUcAD5VIAA+VSQAPlUsAD5VNAA+VTgAPlU8AD5VRAA+VUgAPlc0AD5XPAA+V0QAPldMAD5XWAA+V1wAPldgAD5XZAA+V2gAPldwAD5XeAA+V3wAPleAAD5XiAA+V4wAPll4AD5ZgAA+WYgAPlmQAD5ZnAA+WaAAPlmkAD5ZqAA+WawAPlm0AD5ZvAA+WcAAPlnEAD5ZzAA+WdAAPlu8AD5bxAA+W9AAPlvYAD5b5AA+W+gAPlvsAD5b8AA+W/QAPlv8AD5cBAA+XAgAPlwMAD5cFAA+XBgAPl4EAD5eDAA+XhQAPl4cAD5eKAA+XiwAPl4wAD5eNAA+XjgAPl5AAD5eSAA+XkwAPl5QAD5eWAA+XlwAPmBIAD5gUAA+YFgAPmBgAD5gbAA+YHAAPmB0AD5geAA+YHwAPmCEAD5gjAA+YJAAPmCUAD5gnAA+YKAAPmKMAD5ilAA+YpwAPmKkAD5isAA+YrQAPmK4AD5ivAA+YsAAPmLIAD5i0AA+YtQAPmLYAD5i4AA+YuQAPmMoAD5jLAA+YzQAPmN4AD5jnAA+Y6gAPmO0AD5jvAA+ZKAAPmSsAD5ktAA+ZMAAPmTMAD5k2AA+ZOQAPmbwAD5ngAA+aBAAPmicAD5pOAA+abgAPmpUAD5q8AA+a3AAPmwAAD5skAA+bJgAPmykAD5srAA+bLQAPmy8AD5syAA+bNQAPmzcAD5s5AA+bPAAPmz4AD5tAAA+bQwAPm0YAD5tHAA+bTAAPm2UAD5tqAA+bbAAPm3EAD5t0AA+bdgAPm78AD5vjAA+cCgAPnC4AD5wxAA+cMwAPnDUAD5w3AA+cOQAPnDsAD5w8AA+cPwAPnFgAD5x9AA+cfwAPnIEAD5yDAA+chQAPnIcAD5yJAA+ciwAPnI0AD5yPAA+ctAAPnLcAD5y6AA+cvQAPnMAAD5zDAA+cxgAPnMkAD5zMAA+czwAPnNEAD51MAA+dTgAPnVEAD51TAA+dVgAPnVcAD51YAA+dWQAPnVoAD51cAA+dXgAPnV8AD51gAA+dYgAPnWMAD510AA+ddQAPnXcAD53yAA+d9AAPnfYAD534AA+d+wAPnfwAD539AA+d/gAPnf8AD54BAA+eAwAPngQAD54FAA+eBwAPnggAD56DAA+ehQAPnogAD56KAA+ejQAPno4AD56PAA+ekAAPnpEAD56TAA+elQAPnpYAD56XAA+emQAPnpoAD56rAA+erAAPnq4AD58pAA+fKwAPny0AD58vAA+fMgAPnzMAD580AA+fNQAPnzYAD584AA+fOgAPnzsAD588AA+fPgAPnz8AD5+6AA+fvAAPn78AD5/BAA+fxAAPn8UAD5/GAA+fxwAPn8gAD5/KAA+fzAAPn80AD5/OAA+f0AAPn9EAD5/iAA+f4wAPn+UAD6BgAA+gYgAPoGQAD6BmAA+gaQAPoGoAD6BrAA+gbAAPoG0AD6BvAA+gcQAPoHIAD6BzAA+gdQAPoHYAD6DxAA+g8wAPoPYAD6D4AA+g+wAPoPwAD6D9AA+g/gAPoP8AD6EBAA+hAwAPoQQAD6EFAA+hBwAPoQgAD6EhAA+hIgAPoSMAD6ElAA+hoAAPoaIAD6GkAA+hpgAPoakAD6GqAA+hqwAPoawAD6GtAA+hrwAPobEAD6GyAA+hswAPobUAD6G2AA+iMQAPojMAD6I2AA+iOAAPojsAD6I8AA+iPQAPoj4AD6I/AA+iQQAPokMAD6JEAA+iRQAPokcAD6JIAA+iawAPooQAD6KJAA+ijAAPopEAD6KUAA+ilgAPop4AD6MxAA+jVAAPo3QAD6OUAA+jlgAPo5gAD6OaAA+jnAAPo58AD6OgAA+joQAPo6QAD6OlAA+jpwAPo6gAD6OrAA+jrgAPo68AD6OwAA+jswAPo7QAD6O5AA+j0gAPo9sAD6PdAA+j3wAPo+gAD6PrAA+j7gAPo/AAD6Q5AA+kXQAPpIQAD6SoAA+kqwAPpK0AD6SvAA+ksQAPpLMAD6S1AA+ktgAPpLkAD6TSAA+k8wAPpPUAD6T3AA+k+QAPpPsAD6T9AA+k/wAPpQEAD6UDAA+lJAAPpScAD6UqAA+lLQAPpTAAD6UzAA+lNgAPpTkAD6U8AA+lPgAPpbkAD6W7AA+lvQAPpb8AD6XCAA+lwwAPpcQAD6XFAA+lxgAPpcgAD6XKAA+lywAPpcwAD6XOAA+lzwAPpkoAD6ZMAA+mTgAPplAAD6ZTAA+mVAAPplUAD6ZWAA+mVwAPplkAD6ZbAA+mXAAPpl0AD6ZfAA+mYAAPptsAD6bdAA+m4AAPpuIAD6blAA+m5gAPpucAD6boAA+m6QAPpusAD6btAA+m7gAPpu8AD6bxAA+m8gAPpwsAD6c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aAA/TnQAP054AD9OfAA/ToAAP06EAD9OjAA/TpQAP06YAD9OnAA/TqQAP06oAD9Q9AA/UYAAP1IAAD9SgAA/UogAP1KQAD9SmAA/UqAAP1KsAD9SsAA/UrQAP1LAAD9SxAA/UswAP1LQAD9S2AA/UuQAP1LoAD9S7AA/UvgAP1L8AD9TEAA/U3QAP1OYAD9ToAA/U6gAP1PMAD9T2AA/U+QAP1PsAD9VEAA/VaAAP1Y8AD9WzAA/VtgAP1bgAD9W6AA/VvAAP1b4AD9XAAA/VwQAP1cQAD9XdAA/V/gAP1gAAD9YCAA/WBAAP1gYAD9YIAA/WCgAP1gwAD9YOAA/WLwAP1jIAD9Y1AA/WOAAP1jsAD9Y+AA/WQQAP1kQAD9ZHAA/WSQAP1sQAD9bGAA/WyAAP1soAD9bNAA/WzgAP1s8AD9bQAA/W0QAP1tMAD9bVAA/W1gAP1tcAD9bZAA/W2gAP11UAD9dXAA/XWQAP11sAD9deAA/XXwAP12AAD9dhAA/XYgAP12QAD9dmAA/XZwAP12gAD9dqAA/XawAP1+YAD9foAA/X6wAP1+0AD9fwAA/X8QAP1/IAD9fzAA/X9AAP1/YAD9f4AA/X+QAP1/oAD9f8AA/X/QAP2BYAD9gXAA/YGAAP2BoAD9iVAA/YlwAP2JkAD9ibAA/YngAP2J8AD9igAA/YoQAP2KIAD9ikAA/YpgAP2KcAD9ioAA/YqgAP2KsAD9kmAA/ZKAAP2SoAD9ksAA/ZLwAP2TAAD9kxAA/ZMgAP2TMAD9k1AA/ZNwAP2TgAD9k5AA/ZOwAP2TwAD9m3AA/ZuQAP2bsAD9m9AA/ZwAAP2cEAD9nCAA/ZwwAP2cQAD9nGAA/ZyAAP2ckAD9nKAA/ZzAAP2c0AD9pIAA/aSgAP2kwAD9pOAA/aUQAP2lIAD9pTAA/aVAAP2lUAD9pXAA/aWQAP2loAD9pbAA/aXQAP2l4AD9rZAA/a2wAP2t0AD9rfAA/a4gAP2uMAD9rkAA/a5QAP2uYAD9roAA/a6gAP2usAD9rsAA/a7gAP2u8AD9s4AA/bXAAP24MAD9unAA/bqgAP26wAD9uuAA/bsAAP27IAD9u0AA/btQAP27gAD9vRAA/b7gAP2/AAD9vyAA/b9AAP2/YAD9v4AA/b+gAP2/wAD9wZAA/cHAAP3B8AD9wiAA/cJQAP3CgAD9wrAA/cLgAP3DAAD9yrAA/crQAP3K8AD9yxAA/ctAAP3LUAD9y2AA/ctwAP3LgAD9y6AA/cvAAP3L0AD9y+AA/cwAAP3MEAD908AA/dPgAP3UAAD91CAA/dRQAP3UYAD91HAA/dSAAP3UkAD91LAA/dTQAP3U4AD91PAA/dUQAP3VIAD93NAA/dzwAP3dEAD93TAA/d1gAP3dcAD93YAA/d2QAP3doAD93cAA/d3gAP3d8AD93gAA/d4gAP3eMAD95eAA/eYAAP3mMAD95lAA/eaAAP3mkAD95qAA/eawAP3mwAD95uAA/ecAAP3nEAD95yAA/edAAP3nUAD97wAA/e8gAP3vQAD972AA/e+QAP3voAD977AA/e/AAP3v0AD97/AA/fAQAP3wIAD98DAA/fBQAP3wYAD9+BAA/fgwAP34UAD9+HAA/figAP34sAD9+MAA/fjQAP344AD9+QAA/fkgAP35MAD9+UAA/flgAP35cAD+ASAA/gFAAP4BYAD+AYAA/gGwAP4BwAD+AdAA/gHgAP4B8AD+AhAA/gIwAP4CQAD+AlAA/gJwAP4CgAD+C7AA/g3gAP4P4AD+EeAA/hIAAP4SIAD+EkAA/hJgAP4SkAD+EqAA/hKwAP4S4AD+EvAA/hMQAP4TIAD+E0AA/hNwAP4TgAD+E5AA/hPAAP4T0AD+FCAA/hWwAP4WQAD+FmAA/haAAP4XEAD+F0AA/hdwAP4XkAD+HCAA/h5gAP4g0AD+IxAA/iNAAP4jYAD+I4AA/iOgAP4jwAD+I+AA/iPwAP4kIAD+JbAA/ifAAP4n4AD+KAAA/iggAP4oQAD+KGAA/iiAAP4ooAD+KMAA/irQAP4rAAD+KzAA/itgAP4rkAD+K8AA/ivwAP4sIAD+LFAA/ixwAP40IAD+NEAA/jRgAP40gAD+NLAA/jTAAP400AD+NOAA/jTwAP41EAD+NTAA/jVAAP41UAD+NXAA/jWAAP49MAD+PVAA/j1wAP49kAD+PcAA/j3QAP494AD+PfAA/j4AAP4+IAD+PkAA/j5QAP4+YAD+PoAA/j6QAP5GQAD+RmAA/kaQAP5GsAD+RuAA/kbwAP5HAAD+RxAA/kcgAP5HQAD+R2AA/kdwAP5HgAD+R6AA/kewAP5JQAD+SVAA/klgAP5JgAD+UTAA/lFQAP5RcAD+UZAA/lHAAP5R0AD+UeAA/lHwAP5SAAD+UiAA/lJAAP5SUAD+UmAA/lKAAP5SkAD+WkAA/lpgAP5agAD+WqAA/lrQAP5a4AD+WvAA/lsAAP5bEAD+WzAA/ltQAP5bYAD+W3AA/luQAP5boAD+Y1AA/mNwAP5jkAD+Y7AA/mPgAP5j8AD+ZAAA/mQQAP5kIAD+ZEAA/mRgAP5kcAD+ZIAA/mSgAP5ksAD+bGAA/myAAP5soAD+bMAA/mzwAP5tAAD+bRAA/m0gAP5tMAD+bVAA/m1wAP5tgAD+bZAA/m2wAP5twAD+dXAA/nWQAP51sAD+ddAA/nYAAP52EAD+diAA/nYwAP52QAD+dmAA/naAAP52kAD+dqAA/nbAAP520AD+e2AA/n2gAP6AEAD+glAA/oKAAP6CoAD+gsAA/oLgAP6DAAD+gyAA/oMwAP6DYAD+hPAA/obAAP6G4AD+hwAA/ocgAP6HQAD+h2AA/oeAAP6HoAD+iXAA/omgAP6J0AD+igAA/oowAP6KYAD+ipAA/orAAP6K4AD+kpAA/pKwAP6S0AD+kvAA/pMgAP6TMAD+k0AA/pNQAP6TYAD+k4AA/pOgAP6TsAD+k8AA/pPgAP6T8AD+m6AA/pvAAP6b4AD+nAAA/pwwAP6cQAD+nFAA/pxgAP6ccAD+nJAA/pywAP6cwAD+nNAA/pzwAP6dAAD+pLAA/qTQAP6k8AD+pRAA/qVAAP6lUAD+pWAA/qVwAP6lgAD+paAA/qXAAP6l0AD+peAA/qYAAP6mEAD+rcAA/q3gAP6uEAD+rjAA/q5gAP6ucAD+roAA/q6QAP6uoAD+rsAA/q7gAP6u8AD+rwAA/q8gAP6vMAD+tuAA/rcAAP63IAD+t0AA/rdwAP63gAD+t5AA/regAP63sAD+t9AA/rfwAP64AAD+uBAA/rgwAP64QAD+v/AA/sAQAP7AMAD+wFAA/sCAAP7AkAD+wKAA/sCwAP7AwAD+wOAA/sEAAP7BEAD+wSAA/sFAAP7BUAD+yQAA/skgAP7JQAD+yWAA/smQAP7JoAD+ybAA/snAAP7J0AD+yfAA/soQAP7KIAD+yjAA/spQAP7KYAD+05AA/tXAAP7XwAD+2cAA/tngAP7aAAD+2iAA/tpAAP7acAD+2oAA/tqQAP7awAD+2tAA/trwAP7bAAD+2yAA/ttQAP7bYAD+23AA/tugAP7bsAD+3AAA/t2QAP7eIAD+3kAA/t5gAP7e8AD+3yAA/t9QAP7fcAD+5AAA/uZAAP7osAD+6vAA/usgAP7rQAD+62AA/uuAAP7roAD+68AA/uvQAP7sAAD+7ZAA/u+gAP7vwAD+7+AA/vAAAP7wIAD+8EAA/vBgAP7wgAD+8KAA/vKwAP7y4AD+8xAA/vNAAP7zcAD+86AA/vPQAP70AAD+9DAA/vRQAP78AAD+/CAA/vxAAP78YAD+/JAA/vygAP78sAD+/MAA/vzQAP788AD+/RAA/v0gAP79MAD+/VAA/v1gAP8FEAD/BTAA/wVQAP8FcAD/BaAA/wWwAP8FwAD/BdAA/wXgAP8GAAD/BiAA/wYwAP8GQAD/BmAA/wZwAP8OIAD/DkAA/w5wAP8OkAD/DsAA/w7QAP8O4AD/DvAA/w8AAP8PIAD/D0AA/w9QAP8PYAD/D4AA/w+QAP8RIAD/ETAA/xFAAP8RYAD/GRAA/xkwAP8ZUAD/GXAA/xmgAP8ZsAD/GcAA/xnQAP8Z4AD/GgAA/xogAP8aMAD/GkAA/xpgAP8acAD/IiAA/yJAAP8iYAD/IoAA/yKwAP8iwAD/ItAA/yLgAP8i8AD/IxAA/yMwAP8jQAD/I1AA/yNwAP8jgAD/KzAA/ytQAP8rcAD/K5AA/yvAAP8r0AD/K+AA/yvwAP8sAAD/LCAA/yxAAP8sUAD/LGAA/yyAAP8skAD/NEAA/zRgAP80gAD/NKAA/zTQAP804AD/NPAA/zUAAP81EAD/NTAA/zVQAP81YAD/NXAA/zWQAP81oAD/PVAA/z1wAP89kAD/PbAA/z3gAP898AD/PgAA/z4QAP8+IAD/PkAA/z5gAP8+cAD/PoAA/z6gAP8+sAD/Q0AA/0WAAP9H8AD/SjAA/0pgAP9KgAD/SqAA/0rAAP9K4AD/SwAA/0sQAP9LQAD/TNAA/06gAP9OwAD/TuAA/08AAP9PIAD/T0AA/09gAP9PgAD/UVAA/1GAAP9RsAD/UeAA/1IQAP9SQAD/UnAA/1KgAP9SwAD/WnAA/1qQAP9awAD/WuAA/1sQAP9bIAD/WzAA/1tAAP9bUAD/W3AA/1uQAP9boAD/W7AA/1vQAP9b4AD/Y5AA/2OwAP9j0AD/Y/AA/2QgAP9kMAD/ZEAA/2RQAP9kYAD/ZIAA/2SgAP9ksAD/ZMAA/2TgAP9k8AD/bKAA/2zAAP9s4AD/bQAA/20wAP9tQAD/bVAA/21gAP9tcAD/bZAA/22wAP9twAD/bdAA/23wAP9uAAD/dbAA/3XQAP92AAD/diAA/3ZQAP92YAD/dnAA/3aAAP92kAD/drAA/3bQAP924AD/dvAA/3cQAP93IAD/ftAA/37wAP9/EAD/fzAA/39gAP9/cAD/f4AA/3+QAP9/oAD/f8AA/3/gAP9/8AD/gAAA/4AgAP+AMAD/h+AA/4gAAP+IIAD/iEAA/4hwAP+IgAD/iJAA/4igAP+IsAD/iNAA/4jwAP+JAAD/iRAA/4kwAP+JQAD/kPAA/5EQAP+RMAD/kVAA/5GAAP+RkAD/kaAA/5GwAP+RwAD/keAA/5IAAP+SEAD/kiAA/5JAAP+SUAD/m4AA/52wAP+fsAD/obAA/6HQAP+h8AD/ohAA/6IwAP+iYAD/onAA/6KAAP+isAD/osAA/6LgAP+i8AD/oxAA/6NAAP+jUAD/o2AA/6OQAP+joAD/o/AA/6WAAP+mEAD/pjAA/6ZQAP+m4AD/pxAA/6dAAP+nYAD/q/AA/64wAP+woAD/suAA/7MQAP+zMAD/s1AA/7NwAP+zkAD/s7AA/7PAAP+z8AD/tYAA/7eQAP+3sAD/t9AA/7fwAP+4EAD/uDAA/7hQAP+4cAD/uJAA/7qgAP+60AD/uwAA/7swAP+7YAD/u5AA/7vAAP+78AD/vCAA/7xAAP/D8AD/xBAA/8QwAP/EUAD/xIAA/8SQAP/EoAD/xLAA/8TAAP/E4AD/xQAA/8UQAP/FIAD/xUAA/8VQAP/NAAD/zSAA/81AAP/NYAD/zZAA/82gAP/NsAD/zcAA/83QAP/N8AD/zhAA/84gAP/OMAD/zlAA/85gAP/WEAD/1jAA/9ZgAP/WgAD/1rAA/9bAAP/W0AD/1uAA/9bwAP/XEAD/1zAA/9dAAP/XUAD/13AA/9eAAP/ZEAD/2SAA/9kwAP/ZUAD/4QAA/+EgAP/hQAD/4WAA/+GQAP/hoAD/4bAA/+HAAP/h0AD/4fAA/+IQAP/iIAD/4jAA/+JQAP/iYAD/6hAA/+owAP/qUAD/6nAA/+qgAP/qsAD/6sAA/+rQAP/q4AD/6wAA/+sgAP/rMAD/60AA/+tgAP/rcAD/8yAA//NAAP/zYAD/84AA//OwAP/zwAD/89AA//PgAP/z8AD/9BAA//QwAP/0QAD/9FAA//RwAP/0gAD//DAA//xQAP/8cAD//JAA//zAAP/80AD//OAA//zwAP/9AAD//SAA//1AAP/9UAD//WAA//2AAP/9kAEABUABAAVgAQAFgAEABaABAAXQAQAF4AEABfABAAYAAQAGEAEABjABAAZQAQAGYAEABnABAAaQAQAGoAEACzABAA1wAQAP4AEAEiABABJQAQAScAEAEpABABKwAQAS0AEAEvABABMAAQATMAEAFMABABaQAQAWsAEAFtABABbwAQAXEAEAFzABABdQAQAXcAEAGUABABlwAQAZoAEAGdABABoAAQAaMAEAGmABABqQAQAasAEAImABACKAAQAioAEAIsABACLwAQAjAAEAIxABACMgAQAjMAEAI1ABACNwAQAjgAEAI5ABACOwAQAjwAEAK3ABACuQAQArsAEAK9ABACwAAQAsEAEALCABACwwAQAsQAEALGABACyAAQAskAEALKABACzAAQAs0AEANIABADSgAQA0wAEANOABADUQAQA1IAEANTABADVAAQA1UAEANXABADWQAQA1oAEANbABADXQAQA14AEAPZABAD2wAQA90AEAPfABAD4gAQA+MAEAPkABAD5QAQA+YAEAPoABAD6gAQA+sAEAPsABAD7gAQA+8AEARqABAEbAAQBG4AEARwABAEcwAQBHQAEAR1ABAEdgAQBHcAEAR5ABAEewAQBHwAEAR9ABAEfwAQBIAAEAT7ABAE/QAQBP8AEAUBABAFBAAQBQUAEAUGABAFBwAQBQgAEAUKABAFDAAQBQ0AEAUOABAFEAAQBREAEAWMABAFjgAQBZAAEAWSABAFlQAQBZYAEAWXABAFmAAQBZkAEAWbABAFnQAQBZ4AEAWfABAFoQAQBaIAEAY1ABAGWAAQBngAEAaYABAGmgAQBpwAEAaeABAGoAAQBqMAEAakABAGpQAQBqgAEAapABAGqwAQBqwAEAauABAGsQAQBrIAEAazABAGtgAQBrcAEAa8ABAG1QAQBt4AEAbgABAG4gAQBusAEAbuABAG8QAQBvMAEAc8ABAHYAAQB4cAEAerABAHrgAQB7AAEAeyABAHtAAQB7YAEAe4ABAHuQAQB7wAEAfVABAH9gAQB/gAEAf6ABAH/AAQB/4AEAgAABAIAgAQCAQAEAgGABAIJwAQCCoAEAg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iABAZZAAQGWUAEBmuABAZ0gAQGfkAEBodABAaIAAQGiIAEBokABAaJgAQGigAEBoqABAaKwAQGi4AEBpHABAaZAAQGmYAEBpoABAaagAQGmwAEBpuABAacAAQGnIAEBqPABAakgAQGpUAEBqYABAamwAQGp4AEBqhABAapAAQGqYAEBshABAbIwAQGyUAEBsnABAbKgAQGysAEBssABAbLQAQGy4AEBswABAbMgAQGzMAEBs0ABAbNgAQGzcAEBuyABAbtAAQG7YAEBu4ABAbuwAQG7wAEBu9ABAbvgAQG78AEBvBABAbwwAQG8QAEBvFABAbxwAQG8gAEBxDABAcRQAQHEcAEBxJABAcTAAQHE0AEBxOABAcTwAQHFAAEBxSABAcVAAQHFUAEBxWABAcWAAQHFkAEBzUABAc1gAQHNgAEBzaABAc3QAQHN4AEBzfABAc4AAQHOEAEBzjABAc5QAQHOYAEBznABAc6QAQHOoAEB1lABAdZwAQHWkAEB1rABAdbgAQHW8AEB1wABAdcQAQHXIAEB10ABAddgAQHXcAEB14ABAdegAQHXsAEB32ABAd+AAQHfoAEB38ABAd/wAQHgAAEB4BABAeAgAQHgMAEB4FABAeBwAQHggAEB4JABAeCwAQHgwAEB6HABAeiQAQHosAEB6NABAekAAQHpEAEB6SABAekwAQHpQAEB6WABAemAAQHpkAEB6aABAenAAQHp0AEB8wABAfUwAQH3MAEB+TABAflQAQH5cAEB+ZABAfmwAQH54AEB+fABAfoAAQH6MAEB+kABAfpgAQH6cAEB+pABAfrAAQH60AEB+uABAfsQAQH7IAEB+7ABAf1AAQH90AEB/fABAf4QAQH+oAEB/tABAf8AAQH/IAECA7ABAgXwAQIIYAECCqABAgrQAQIK8AECCxABAgswAQILUAECC3ABAguAAQILsAECDUABAg9QAQIPcAECD5ABAg+wAQIP0AECD/ABAhAQAQIQMAECEFABAhJgAQISkAECEsABAhLwAQITIAECE1ABAhOAAQITsAECE+ABAhQAAQIbsAECG9ABAhvwAQIcEAECHEABAhxQAQIcYAECHHABAhyAAQIcoAECHMABAhzQAQIc4AECHQABAh0QAQIkwAECJOABAiUAAQIlIAECJVABAiVgAQIlcAECJYABAiWQAQIlsAECJdABAiXgAQIl8AECJhABAiYgAQIt0AECLfABAi4gAQIuQAECLnABAi6AAQIukAECLqABAi6wAQIu0AECLvABAi8AAQIvEAECLzABAi9AAQIw0AECMOABAjDwAQIxEAECOMABAjjgAQI5AAECOSABAjlQAQI5YAECOXABAjmAAQI5kAECObABAjnQAQI54AECOfABAjoQAQI6IAECQdABAkHwAQJCEAECQjABAkJgAQJCcAECQoABAkKQAQJCoAECQsABAkLgAQJC8AECQwABAkMgAQJDMAECSuABAksAAQJLIAECS0ABAktwAQJLgAECS5ABAkugAQJLsAECS9ABAkvwAQJMAAECTBABAkwwAQJMQAECU/ABAlQQAQJUMAECVFABAlSAAQJUkAECVKABAlSwAQJUwAECVOABAlUAAQJVEAECVSABAlVAAQJVUAECXQABAl0gAQJdQAECXWABAl2QAQJdoAECXbABAl3AAQJd0AECXfABAl4QAQJeIAECXjABAl5QAQJeYAECYvABAmUwAQJnoAECaeABAmoQAQJqMAECalABAmpwAQJqkAECarABAmrAAQJq8AECbIABAm5QAQJucAECbpABAm6wAQJu0AECbvABAm8QAQJvMAECcQABAnEwAQJxYAECcZABAnHAAQJx8AECciABAnJQAQJycAECeiABAnpAAQJ6cAECepABAnrAAQJ60AECeuABAnrwAQJ7AAECeyABAntAAQJ7UAECe2ABAnuAAQJ7kAECg0ABAoNgAQKDgAECg6ABAoPQAQKD4AECg/ABAoQAAQKEEAEChDABAoRQAQKEYAEChHABAoSQAQKEoAECjFABAoxwAQKMkAECjLABAozgAQKM8AECjQABAo0QAQKNIAECjUABAo1gAQKNcAECjYABAo2gAQKNsAEClWABApWAAQKVsAECldABApYAAQKWEAECliABApYwAQKWQAEClmABApaAAQKWkAEClqABApbAAQKW0AECnoABAp6gAQKewAECnuABAp8QAQKfIAECnzABAp9AAQKfUAECn3ABAp+QAQKfoAECn7ABAp/QAQKf4AECp5ABAqewAQKn0AECp/ABAqggAQKoMAECqEABAqhQAQKoYAECqIABAqigAQKosAECqMABAqjgAQKo8AECsKABArDAAQKw4AECsQABArEwAQKxQAECsVABArFgAQKxcAECsZABArGwAQKxwAECsdABArHwAQKyAAECsxABArMgAQKzQAECtFABArUgAQK1UAECtYABArWwAQK10AECvYABAr2gAQK9wAECveABAr4QAQK+IAECvjABAr5AAQK+UAECvnABAr6QAQK+oAECvrABAr7QAQK+4AECxpABAsawAQLG0AECxvABAscgAQLHMAECx0ABAsdQAQLHYAECx4ABAsegAQLHsAECx8ABAsfgAQLH8AECz6ABAs/AAQLP8AEC0BABAtBAAQLQUAEC0GABAtBwAQLQgAEC0KABAtDAAQLQ0AEC0OABAtEAAQLREAEC2kABAtxwAQLecAEC4HABAuCQAQLgsAEC4NABAuDwAQLhIAEC4TABAuFAAQLhcAEC4YABAuGgAQLhsAEC4dABAuIAAQLiEAEC4iABAuJQAQLiYAEC4rABAuRAAQLk0AEC5PABAuUQAQLloAEC5dABAuYAAQLmIAEC6rABAuzwAQLvYAEC8aABAvHQAQLx8AEC8hABAvIwAQLyUAEC8nABAvKAAQLysAEC9EABAvZQAQL2cAEC9pABAvawAQL20AEC9vABAvcQAQL3MAEC91ABAvlgAQL5kAEC+cABAvnwAQL6IAEC+lABAvqAAQL6sAEC+uABAvsAAQMCsAEDAtABAwLwAQMDEAEDA0ABAwNQAQMDYAEDA3ABAwOAAQMDoAEDA8ABAwPQAQMD4AEDBAABAwQQAQMLwAEDC+ABAwwAAQMMIAEDDFABAwxgAQMMcAEDDIABAwyQAQMMsAEDDNABAwzgAQMM8AEDDRABAw0gAQMU0AEDFPABAxUgAQMVQAEDFXABAxWAAQMVkAEDFaABAxWwAQMV0AEDFfABAxYAAQMWEAEDFjABAxZAAQMX0AEDF+ABAxfwAQMYEAEDH8ABAx/gAQMgAAEDICABAyBQAQMgYAEDIHABAyCAAQMgkAEDILABAyDQAQMg4AEDIPABAyEQAQMhIAEDKNABAyjwAQMpEAEDKTABAylgAQMpcAEDKYABAymQAQMpoAEDKcABAyngAQMp8AEDKgABAyogAQMqMAEDMeABAzIAAQMyIAEDMkABAzJwAQMygAEDMpABAzKgAQMysAEDMtABAzLwAQMzAAEDMxABAzMwAQMzQAEDOvABAzsQAQM7MAEDO1ABAzuAAQM7kAEDO6ABAzuwAQM7wAEDO+ABAzwAAQM8EAEDPCABAzxAAQM8UAEDRAABA0QgAQNEQAEDRGABA0SQAQNEoAEDRLABA0TAAQNE0AEDRPABA0UQAQNFIAEDRTABA0VQAQNFYAEDSfABA0wwAQNOoAEDUOABA1EQAQNRMAEDUVABA1FwAQNRkAEDUbABA1HAAQNR8AEDU4ABA1VQAQNVcAEDVZABA1WwAQNV0AEDVfABA1YQAQNWMAEDWAABA1gwAQNYYAEDWJABA1jAAQNY8AEDWSABA1lQAQNZcAEDYSABA2FAAQNhcAEDYZABA2HAAQNh0AEDYeABA2HwAQNiAAEDYiABA2JAAQNiUAEDYmABA2KAAQNikAEDakABA2pgAQNqgAEDaqABA2rQAQNq4AEDavABA2sAAQNrEAEDazABA2tQAQNrYAEDa3ABA2uQAQNroAEDc1ABA3NwAQNzkAEDc7ABA3PgAQNz8AEDdAABA3QQAQN0IAEDdEABA3RgAQN0cAEDdIABA3SgAQN0sAEDfGABA3yAAQN8sAEDfNABA30AAQN9EAEDfSABA30wAQN9QAEDfWABA32AAQN9kAEDfaABA33AAQN90AEDhYABA4WgAQOFwAEDheABA4YQAQOGIAEDhjABA4ZAAQOGUAEDhnABA4aQAQOGoAEDhrABA4bQAQOG4AEDjpABA46wAQOO0AEDjvABA48gAQOPMAEDj0ABA49QAQOPYAEDj4ABA4+gAQOPsAEDj8ABA4/gAQOP8AEDl6ABA5fAAQOX4AEDmAABA5gwAQOYQAEDmFABA5hgAQOYcAEDmJABA5iwAQOYwAEDmNABA5jwAQOZAAEDojABA6RgAQOmYAEDqGABA6iAAQOooAEDqMABA6jgAQOpEAEDqSABA6kwAQOpYAEDqXABA6mQAQOpoAEDqcABA6nwAQOqAAEDqhABA6pAAQOqUAEDquABA6xwAQOtAAEDrSABA61AAQOt0AEDrgABA64wAQOuUAEDsuABA7UgAQO3kAEDudABA7oAAQO6IAEDukABA7pgAQO6gAEDuqABA7qwAQO64AEDvHABA76AAQO+oAEDvsABA77gAQO/AAEDvyABA79AAQO/YAEDv4ABA8GQAQPBwAEDwfABA8IgAQPCUAEDwoABA8KwAQPC4AEDwxABA8MwAQPK4AEDywABA8sgAQPLQAEDy3ABA8uAAQPLkAEDy6ABA8uwAQPL0AEDy/ABA8wAAQPMEAEDzDABA8xAAQPT8AED1BABA9QwAQPUUAED1IABA9SQAQPUoAED1LABA9TAAQPU4AED1QABA9UQAQPVIAED1UABA9VQAQPdAAED3SABA91QAQPdcAED3aABA92wAQPdwAED3dABA93gAQPeAAED3iABA94wAQPeQAED3mABA95wAQPgAAED4BABA+AgAQPgQAED5/ABA+gQAQPoMAED6FABA+iAAQPokAED6KABA+iwAQPowAED6OABA+kAAQPpEAED6SABA+lAAQPpUAED8QABA/EgAQPxQAED8WABA/GQAQPxoAED8bABA/HAAQPx0AED8fABA/IQAQPyIAED8jABA/JQAQPyYAED+hABA/owAQP6UAED+nABA/qgAQP6sAED+sABA/rQAQP64AED+wABA/sgAQP7MAED+0ABA/tgAQP7cAEEAyABBANAAQQDYAEEA4ABBAOwAQQDwAEEA9ABBAPgAQQD8AEEBBABBAQwAQQEQAEEBFABBARwAQQEgAEEDDABBAxQAQQMcAEEDJABBAzAAQQM0AEEDOABBAzwAQQNAAEEDSABBA1AAQQNUAEEDWABBA2AAQQNkAEEEiABBBRgAQQW0AEEGRABBBlAAQQZYAEEGYABBBmgAQQZwAEEGeABBBnwAQQaIAEEG7ABBB2AAQQdoAEEHcABBB3gAQQeAAEEHiABBB5AAQQeYAEEIDABBCBgAQQgkAEEIMABBCDwAQQhIAEEIVABBCGAAQQhoAEEKVABBClwAQQpkAEEKbABBCngAQQp8AEEKgABBCoQAQQqIAEEKkABBCpgAQQqcAEEKoABBCqgAQQqsAEEMmABBDKAAQQyoAEEMsABBDLwAQQzAAEEMxABBDMgAQQzMAEEM1ABBDNwAQQzgAEEM5ABBDOwAQQzwAEEO3ABBDuQAQQ7sAEEO9ABBDwAAQQ8EAEEPCABBDwwAQQ8QAEEPGABBDyAAQQ8kAEEPKABBDzAAQQ80AEERIABBESgAQREwAEEROABBEUQAQRFIAEERTABBEVAAQRFUAEERXABBEWQAQRFoAEERbABBEXQAQRF4AEETZABBE2wAQRN0AEETfABBE4gAQROMAEETkABBE5QAQROYAEEToABBE6gAQROsAEETsABBE7gAQRO8AEEVqABBFbAAQRW4AEEVwABBFcwAQRXQAEEV1ABBFdgAQRXcAEEV5ABBFewAQRXwAEEV9ABBFfwAQRYAAEEX7ABBF/QAQRf8AEEYBABBGBAAQRgUAEEYGABBGBwAQRggAEEYKABBGDAAQRg0AEEYOABBGEAAQRhEAEEakABBGxwAQRucAEEcHABBHCQAQRwsAEEcNABBHDwAQRxIAEEcTABBHFAAQRxcAEEcYABBHGgAQRxsAEEcdABBHIAAQRyEAEEciABBHJQAQRyYAEEcrABBHRAAQR00AEEdPABBHUQAQR1oAEEddABBHYAAQR2IAEEerABBHzwAQR/YAEEgaABBIHQAQSB8AEEghABBIIwAQSCUAEEgnABBIKAAQSCsAEEhEABBIZQAQSGcAEEhpABBIawAQSG0AEEhvABBIcQAQSHMAEEh1ABBIlgAQSJkAEEicABBInwAQSKIAEEilABBIqAAQSKsAEEiuABBIsAAQSSsAEEktABBJLwAQSTEAEEk0ABBJNQAQSTYAEEk3ABBJOAAQSToAEEk8ABBJPQAQST4AEElAABBJQQAQSbwAEEm+ABBJwAAQScIAEEnFABBJxgAQSccAEEnIABBJyQAQScsAEEnNABBJzgAQSc8AEEnRABBJ0gAQSk0AEEpPABBKUgAQSlQAEEpXABBKWAAQSlkAEEpaABBKWwAQSl0AEEpfABBKYAAQSmEAEEpjABBKZAAQSn0AEEp+ABBKfwAQSoEAEEr8ABBK/gAQSwAAEEsCABBLBQAQSwYAEEsHABBLCAAQSwkAEEsLABBLDQAQSw4AEEsPABBLEQAQSxIAEEuNABBLjwAQS5EAEEuTABBLlgAQS5cAEEuYABBLmQAQS5oAEEucABBLngAQS58AEEugABBLogAQS6MAEEweABBMIAAQTCIAEEwkABBMJwAQTCgAEEwpABBMKgAQTCsAEEwtABBMLwAQTDAAEEwxABBMMwAQTDQAEEyvABBMsQAQTLMAEEy1ABBMuAAQTLkAEEy6ABBMuwAQTLwAEEy+ABBMwAAQTMEAEEzCABBMxAAQTMUAEE1AABBNQgAQTUQAEE1GABBNSQAQTUoAEE1LABBNTAAQTU0AEE1PABBNUQAQTVIAEE1TABBNVQAQTVYAEE2fABBNwwAQTeoAEE4OABBOEQAQThMAEE4VABBOFwAQThkAEE4bABBOHAAQTh8AEE44ABBOVQAQTlcAEE5ZABBOWwAQTl0AEE5fABBOYQAQTmMAEE6AABBOgwAQToYAEE6JABBOjAAQTo8AEE6SABBOlQAQTpcAEE8SABBPFAAQTxYAEE8YABBPGwAQTxwAEE8dABBPHgAQTx8AEE8hABBPIwAQTyQAEE8lABBPJwAQTygAEE+jABBPpQAQT6cAEE+pABBPrAAQT60AEE+uABBPrwAQT7AAEE+yABBPtAAQT7UAEE+2ABBPuAAQT7kAEFA0ABBQNgAQUDgAEFA6ABBQPQAQUD4AEFA/ABBQQAAQUEEAEFBDABBQRQAQUEYAEFBHABBQSQAQUEoAEFDFABBQxwAQUMkAEFDLABBQzgAQUM8AEFDQABBQ0QAQUNIAEFDUABBQ1gAQUNcAEFDYABBQ2gAQUNsAEFFWABBRWAAQUVoAEFFcABBRXwAQUWAAEFFhABBRYgAQUWMAEFFlABBRZwAQUWgAEFFpABBRawAQUWwAEFHnABBR6QAQUesAEFHtABBR8AAQUfEAEFHyABBR8wAQUfQAEFH2ABBR+AAQUfkAEFH6ABBR/AAQUf0AEFJ4ABBSegAQUnwAEFJ+ABBSgQAQUoIAEFKDABBShAAQUoUAEFKHABBSiQAQUooAEFKLABBSjQAQUo4AEFMhABBTRAAQU2QAEFOEABBThgAQU4gAEFOKABBTjAAQU48AEFOQABBTkQAQU5QAEFOVABBTlwAQU5gAEFOaABBTnQAQU54AEFOfABBTogAQU6MAEFOoABBTwQAQU8oAEFPMABBTzgAQU9cAEFPaABBT3QAQU98AEFQoABBUTAAQVHMAEFSXABBUmgAQVJwAEFSeABBUoAAQVKIAEFSkABBUpQAQVKgAEFTBABBU4gAQVOQAEFTmABBU6AAQVOoAEFTsABBU7gAQVPAAEFTyABBVEwAQVRYAEFUZABBVHAAQVR8AEFUiABBVJQAQVSgAEFUrABBVLQAQVagAEFWqABBVrAAQVa4AEFWxABBVsgAQVbMAEFW0ABBVtQAQVbcAEFW5ABBVugAQVbsAEFW9ABBVvgAQVjkAEFY7ABBWPQAQVj8AEFZCABBWQwAQVkQAEFZFABBWRgAQVkgAEFZKABBWSwAQVkwAEFZOABBWTwAQVsoAEFbMABBWzwAQVtEAEFbUABBW1QAQVtYAEFbXABBW2AAQVtoAEFbcABBW3QAQVt4AEFbgABBW4QAQVvoAEFb7ABBW/AAQVv4AEFd5ABBXewAQV30AEFd/ABBXggAQV4MAEFeEABBXhQAQV4YAEFeIABBXigAQV4sAEFeMABBXjgAQV48AEFgKABBYDAAQWA4AEFgQABBYEwAQWBQAEFgVABBYFgAQWBcAEFgZABBYGwAQWBwAEFgdABBYHwAQWCAAEFibABBYnQAQWJ8AEFihABBYpAAQWKUAEFimABBYpwAQWKgAEFiqABBYrAAQWK0AEFiuABBYsAAQWLEAEFksABBZLgAQWTAAEFkyABBZNQAQWTYAEFk3ABBZOAAQWTkAEFk7ABBZPQAQWT4AEFk/ABBZQQAQWUIAEFm9ABBZvwAQWcEAEFnDABBZxgAQWccAEFnIABBZyQAQWcoAEFnMABBZzgAQWc8AEFnQABBZ0gAQWdMAEFocABBaQAAQWmcAEFqLABBajgAQWpAAEFqSABBalAAQWpYAEFqYABBamQAQWpwAEFq1ABBa0gAQWtQAEFrWABBa2AAQWtoAEFrcABBa3gAQWuAAEFr9ABBbAAAQWwMAEFsGABBbCQAQWwwAEFsPABBbEgAQWxQAEFuPABBbkQAQW5MAEFuVABBbmAAQW5kAEFuaABBbmwAQW5wAEFueABBboAAQW6EAEFuiABBbpAAQW6UAEFwgABBcIgAQXCQAEFwmABBcKQAQXCoAEFwrABBcLAAQXC0AEFwvABBcMQAQXDIAEFwzABBcNQAQXDYAEFyxABBcswAQXLUAEFy3ABBcugAQXLsAEFy8ABBcvQAQXL4AEFzAABBcwgAQXMMAEFzEABBcxgAQXMcAEF1CABBdRAAQXUcAEF1JABBdTAAQXU0AEF1OABBdTwAQXVAAEF1SABBdVAAQXVUAEF1WABBdWAAQXVkAEF3UABBd1gAQXdgAEF3aABBd3QAQXd4AEF3fABBd4AAQXeEAEF3jABBd5QAQXeYAEF3nABBd6QAQXeoAEF5lABBeZwAQXmkAEF5rABBebgAQXm8AEF5wABBecQAQXnIAEF50ABBedgAQXncAEF54ABBeegAQXnsAEF72ABBe+AAQXvoAEF78ABBe/wAQXwAAEF8BABBfAgAQXwMAEF8FABBfBwAQXwgAEF8JABBfCwAQXwwAEF+fABBfwgAQX+IAEGACABBgBAAQYAYAEGAIABBgCgAQYA0AEGAOABBgDwAQYBIAEGATABBgFQAQYBYAEGAZABBgHAAQYB0AEGAeABBgIQAQYCIAEGAnABBgQAAQYEkAEGBLABBgTQAQYFYAEGBZABBgXAAQYF4AEGCnABBgywAQYPIAEGEWABBhGQAQYRsAEGEdABBhHwAQYSEAEGEjABBhJAAQYScAEGFAABBhYQAQYWMAEGFlABBhZwAQYWkAEGFrABBhbQAQYW8AEGFxABBhkgAQYZUAEGGYABBhmwAQYZ4AEGGhABBhpAAQYacAEGGqABBhrAAQYicAEGIpABBiKwAQYi0AEGIwABBiMQAQYjIAEGIzABBiNAAQYjYAEGI4ABBiOQAQYjoAEGI8ABBiPQAQYrgAEGK6ABBivAAQYr4AEGLBABBiwgAQYsMAEGLEABBixQAQYscAEGLJABBiygAQYssAEGLNABBizgAQY0kAEGNLABBjTgAQY1AAEGNTABBjVAAQY1UAEGNWABBjVwAQY1kAEGNbABBjXAAQY10AEGNfABBjYAAQY3kAEGN6ABBjewAQY30AEGP4ABBj+gAQY/wAEGP+ABBkAQAQZAIAEGQDABBkBAAQZAUAEGQHABBkCQAQZAoAEGQLABBkDQAQZA4AEGSJABBkiwAQZI0AEGSPABBkkgAQZJMAEGSUABBklQAQZJYAEGSYABBkmgAQZJsAEGScABBkngAQZJ8AEGUaABBlHAAQZR4AEGUgABBlIwAQZSQAEGUlABBlJgAQZScAEGUpABBlKwAQZSwAEGUtABBlLwAQZTAAEGWrABBlrQAQZa8AEGWxABBltAAQZbUAEGW2ABBltwAQZbgAEGW6ABBlvAAQZb0AEGW+ABBlwAAQZcEAEGY8ABBmPgAQZkAAEGZCABBmRQAQZkYAEGZHABBmSAAQZkkAEGZLABBmTQAQZk4AEGZPABBmUQAQZlIAEGabABBmvwAQZuYAEGcKABBnDQAQZw8AEGcRABBnEwAQZxUAEGcXABBnGAAQZxsAEGc0ABBnUQAQZ1MAEGdVABBnVwAQZ1kAEGdbABBnXQAQZ18AEGd8ABBnfwAQZ4IAEGeFABBniAAQZ4sAEGeOABBnkQAQZ5MAEGgOABBoEAAQaBIAEGgUABBoFwAQaBgAEGgZABBoGgAQaBsAEGgdABBoHwAQaCAAEGghABBoIwAQaCQAEGifABBooQAQaKQAEGimABBoqQAQaKoAEGirABBorAAQaK0AEGivABBosQAQaLIAEGizABBotQAQaLYAEGkxABBpMwAQaTUAEGk3ABBpOgAQaTsAEGk8ABBpPQAQaT4AEGlAABBpQgAQaUMAEGlEABBpRgAQaUcAEGnCABBpxAAQaccAEGnJABBpzAAQac0AEGnOABBpzwAQadAAEGnSABBp1AAQadUAEGnWABBp2AAQadkAEGpUABBqVgAQalgAEGpaABBqXQAQal4AEGpfABBqYAAQamEAEGpjABBqZQAQamYAEGpnABBqaQAQamoAEGrlABBq5wAQaukAEGrrABBq7gAQau8AEGrwABBq8QAQavIAEGr0ABBq9gAQavcAEGr4ABBq+gAQavsAEGt2ABBreAAQa3sAEGt9ABBrgAAQa4EAEGuCABBrgwAQa4QAEGuGABBriAAQa4kAEGuKABBrjAAQa40AEGwgABBsQwAQbGMAEGyDABBshQAQbIcAEGyJABBsiwAQbI4AEGyPABBskAAQbJMAEGyUABBslgAQbJcAEGyZABBsnAAQbJ0AEGyeABBsoQAQbKIAEGyrABBsxAAQbM0AEGzPABBs0QAQbNoAEGzdABBs4AAQbOIAEG0rABBtTwAQbXYAEG2aABBtnQAQbZ8AEG2hABBtowAQbaUAEG2nABBtqAAQbasAEG3EABBt5QAQbecAEG3pABBt6wAQbe0AEG3vABBt8QAQbfMAEG31ABBuFgAQbhkAEG4cABBuHwAQbiIAEG4lABBuKAAQbisAEG4uABBuMAAQbqsAEG6tABBurwAQbrEAEG60ABButQAQbrYAEG63ABBuuAAQbroAEG68ABBuvQAQbr4AEG7AABBuwQAQbzwAEG8+ABBvQAAQb0IAEG9FABBvRgAQb0cAEG9IABBvSQAQb0sAEG9NABBvTgAQb08AEG9RABBvUgAQb80AEG/PABBv0gAQb9QAEG/XABBv2AAQb9kAEG/aABBv2wAQb90AEG/fABBv4AAQb+EAEG/jABBv5AAQb/0AEG/+ABBv/wAQcAEAEHB8ABBwfgAQcIAAEHCCABBwhQAQcIYAEHCHABBwiAAQcIkAEHCLABBwjQAQcI4AEHCPABBwkQAQcJIAEHENABBxDwAQcREAEHETABBxFgAQcRcAEHEYABBxGQAQcRoAEHEcABBxHgAQcR8AEHEgABBxIgAQcSMAEHGeABBxoAAQcaIAEHGkABBxpwAQcagAEHGpABBxqgAQcasAEHGtABBxrwAQcbAAEHGxABBxswAQcbQAEHIvABByMQAQcjMAEHI1ABByOAAQcjkAEHI6ABByOwAQcjwAEHI+ABByQAAQckEAEHJCABByRAAQckUAEHLAABBywgAQcsQAEHLGABByyQAQcsoAEHLLABByzAAQcs0AEHLPABBy0QAQctIAEHLTABBy1QAQctYAEHMfABBzQwAQc2oAEHOOABBzkQAQc5MAEHOVABBzlwAQc5kAEHObABBznAAQc58AEHO4ABBz1QAQc9cAEHPZABBz2wAQc90AEHPfABBz4QAQc+MAEHQAABB0AwAQdAYAEHQJABB0DAAQdA8AEHQSABB0FQAQdBcAEHSSABB0lAAQdJYAEHSYABB0mwAQdJwAEHSdABB0ngAQdJ8AEHShABB0owAQdKQAEHSlABB0pwAQdKgAEHUjABB1JQAQdScAEHUpABB1LAAQdS0AEHUuABB1LwAQdTAAEHUyABB1NAAQdTUAEHU2ABB1OAAQdTkAEHW0ABB1tgAQdbgAEHW6ABB1vQAQdb4AEHW/ABB1wAAQdcEAEHXDABB1xQAQdcYAEHXHABB1yQAQdcoAEHZFABB2RwAQdkkAEHZLABB2TgAQdk8AEHZQABB2UQAQdlIAEHZUABB2VgAQdlcAEHZYABB2WgAQdlsAEHbWABB22AAQdtoAEHbcABB23wAQduAAEHbhABB24gAQduMAEHblABB25wAQdugAEHbpABB26wAQduwAEHdnABB3aQAQd2sAEHdtABB3cAAQd3EAEHdyABB3cwAQd3QAEHd2ABB3eAAQd3kAEHd6ABB3fAAQd30AEHf4ABB3+gAQd/wAEHf+ABB4AQAQeAIAEHgDABB4BAAQeAUAEHgHABB4CQAQeAoAEHgLABB4DQAQeA4AEHihABB4xAAQeOQAEHkEABB5BgAQeQgAEHkKABB5DAAQeQ8AEHkQABB5EQAQeRQAEHkVABB5FwAQeRgAEHkaABB5HQAQeR4AEHkfABB5IgAQeSMAEHkoABB5QQAQeUoAEHlMABB5TgAQeVcAEHlaABB5XQAQeV8AEHmoABB5zAAQefMAEHoXABB6GgAQehwAEHoeABB6IAAQeiIAEHokABB6JQAQeigAEHpBABB6YgAQemQAEHpmABB6aAAQemoAEHpsABB6bgAQenAAEHpyABB6kwAQepYAEHqZABB6nAAQep8AEHqiABB6pQAQeqgAEHqrABB6rQAQeygAEHsqABB7LAAQey4AEHsxABB7MgAQezMAEHs0ABB7NQAQezcAEHs5ABB7OgAQezsAEHs9ABB7PgAQe7kAEHu7ABB7vQAQe78AEHvCABB7wwAQe8QAEHvFABB7xgAQe8gAEHvKABB7ywAQe8wAEHvOABB7zwAQfEoAEHxMABB8TwAQfFEAEHxUABB8VQAQfFYAEHxXABB8WAAQfFoAEHxcABB8XQAQfF4AEHxgABB8YQAQfHoAEHx7ABB8fAAQfH4AEHz5ABB8+wAQfP0AEHz/ABB9AgAQfQMAEH0EABB9BQAQfQYAEH0IABB9CgAQfQsAEH0MABB9DgAQfQ8AEH2KABB9jAAQfY4AEH2QABB9kwAQfZQAEH2VABB9lgAQfZcAEH2ZABB9mwAQfZwAEH2dABB9nwAQfaAAEH4bABB+HQAQfh8AEH4hABB+JAAQfiUAEH4mABB+JwAQfigAEH4qABB+LAAQfi0AEH4uABB+MAAQfjEAEH6sABB+rgAQfrAAEH6yABB+tQAQfrYAEH63ABB+uAAQfrkAEH67ABB+vQAQfr4AEH6/ABB+wQAQfsIAEH89ABB/PwAQf0EAEH9DABB/RgAQf0cAEH9IABB/SQAQf0oAEH9MABB/TgAQf08AEH9QABB/UgAQf1MAEH+cABB/wAAQf+cAEIALABCADgAQgBAAEIASABCAFAAQgBYAEIAYABCAGQAQgBwAEIA1ABCAUgAQgFQAEIBWABCAWAAQgFoAEIBcABCAXgAQgGAAEIB9ABCAgAAQgIMAEICGABCAiQAQgIwAEICPABCAkgAQgJQAEIEPABCBEQAQgRQAEIEWABCBGQAQgRoAEIEbABCBHAAQgR0AEIEfABCBIQAQgSIAEIEjABCBJQAQgSYAEIGhABCBowAQgaUAEIGnABCBqgAQgasAEIGsABCBrQAQga4AEIGwABCBsgAQgbMAEIG0ABCBtgAQgbcAEIIyABCCNAAQgjYAEII4ABCCOwAQgjwAEII9ABCCPgAQgj8AEIJBABCCQwAQgkQAEIJFABCCRwAQgkgAEILDABCCxQAQgsgAEILKABCCzQAQgs4AEILPABCC0AAQgtEAEILTABCC1QAQgtYAEILXABCC2QAQgtoAEINVABCDVwAQg1kAEINbABCDXgAQg18AEINgABCDYQAQg2IAEINkABCDZgAQg2cAEINoABCDagAQg2sAEIPmABCD6AAQg+oAEIPsABCD7wAQg/AAEIPxABCD8gAQg/MAEIP1ABCD9wAQg/gAEIP5ABCD+wAQg/wAEIR3ABCEeQAQhHsAEIR9ABCEgAAQhIEAEISCABCEgwAQhIQAEISGABCEiAAQhIkAEISKABCEjAAQhI0AEIUgABCFQwAQhWMAEIWDABCFhQAQhYcAEIWJABCFiwAQhY4AEIWPABCFkAAQhZMAEIWUABCFlgAQhZcAEIWZABCFnAAQhZ0AEIWeABCFoQAQhaIAEIWnABCFwAAQhckAEIXLABCFzQAQhdYAEIXZABCF3AAQhd4AEIYnABCGSwAQhnIAEIaWABCGmQAQhpsAEIadABCGnwAQhqEAEIajABCGpAAQhqcAEIbAABCG4QAQhuMAEIblABCG5wAQhukAEIbrABCG7QAQhu8AEIbxABCHEgAQhxUAEIcYABCHGwAQhx4AEIchABCHJAAQhycAEIcqABCHLAAQh6cAEIepABCHqwAQh60AEIewABCHsQAQh7IAEIezABCHtAAQh7YAEIe4ABCHuQAQh7oAEIe8ABCHvQAQiDgAEIg6ABCIPAAQiD4AEIhBABCIQgAQiEMAEIhEABCIRQAQiEcAEIhJABCISgAQiEsAEIhNABCITgAQiMkAEIjLABCIzgAQiNAAEIjTABCI1AAQiNUAEIjWABCI1wAQiNkAEIjbABCI3AAQiN0AEIjfABCI4AAQiPkAEIj6ABCI+wAQiP0AEIl4ABCJegAQiXwAEIl+ABCJgQAQiYIAEImDABCJhAAQiYUAEImHABCJiQAQiYoAEImLABCJjQAQiY4AEIoJABCKCwAQig0AEIoPABCKEgAQihMAEIoUABCKFQAQihYAEIoYABCKGgAQihsAEIocABCKHgAQih8AEIqaABCKnAAQip4AEIqgABCKowAQiqQAEIqlABCKpgAQiqcAEIqpABCKqwAQiqwAEIqtABCKrwAQirAAEIsrABCLLQAQiy8AEIsxABCLNAAQizUAEIs2ABCLNwAQizgAEIs6ABCLPAAQiz0AEIs+ABCLQAAQi0EAEIu8ABCLvgAQi8AAEIvCABCLxQAQi8YAEIvHABCLyAAQi8kAEIvLABCLzQAQi84AEIvPABCL0QAQi9IAEIwbABCMPwAQjGYAEIyKABCMjQAQjI8AEIyRABCMkwAQjJUAEIyXABCMmAAQjJsAEIy0ABCM0QAQjNMAEIzVABCM1wAQjNkAEIzbABCM3QAQjN8AEIz8ABCM/wAQjQIAEI0FABCNCAAQjQsAEI0OABCNEQAQjRMAEI2OABCNkAAQjZIAEI2UABCNlwAQjZgAEI2ZABCNmgAQjZsAEI2dABCNnwAQjaAAEI2hABCNowAQjaQAEI4fABCOIQAQjiMAEI4lABCOKAAQjikAEI4qABCOKwAQjiwAEI4uABCOMAAQjjEAEI4yABCONAAQjjUAEI6wABCOsgAQjrQAEI62ABCOuQAQjroAEI67ABCOvAAQjr0AEI6/ABCOwQAQjsIAEI7DABCOxQAQjsYAEI9BABCPQwAQj0YAEI9IABCPSwAQj0wAEI9NABCPTgAQj08AEI9RABCPUwAQj1QAEI9VABCPVwAQj1gAEI/TABCP1QAQj9cAEI/ZABCP3AAQj90AEI/eABCP3wAQj+AAEI/iABCP5AAQj+UAEI/mABCP6AAQj+kAEJBkABCQZgAQkGgAEJBqABCQbQAQkG4AEJBvABCQcAAQkHEAEJBzABCQdQAQkHYAEJB3ABCQeQAQkHoAEJD1ABCQ9wAQkPkAEJD7ABCQ/gAQkP8AEJEAABCRAQAQkQIAEJEEABCRBgAQkQcAEJEIABCRCgAQkQsAEJGeABCRwQAQkeEAEJIBABCSAwAQkgUAEJIHABCSCQAQkgwAEJINABCSDgAQkhEAEJISABCSFAAQkhUAEJIXABCSGgAQkhsAEJIcABCSHwAQkiAAEJIlABCSPgAQkkcAEJJJABCSSwAQklQAEJJXABCSWgAQklwAEJKlABCSyQAQkvAAEJMUABCTFwAQkxkAEJMbABCTHQAQkx8AEJMhABCTIgAQkyUAEJM+ABCTXwAQk2EAEJNjABCTZQAQk2cAEJNpABCTawAQk20AEJNvABCTkAAQk5MAEJOWABCTmQAQk5wAEJOfABCTogAQk6UAEJOoABCTqgAQlCUAEJQnABCUKQAQlCsAEJQuABCULwAQlDAAEJQxABCUMgAQlDQAEJQ2ABCUNwAQlDgAEJQ6ABCUOwAQlLYAEJS4ABCUugAQlLwAEJS/ABCUwAAQlMEAEJTCABCUwwAQlMUAEJTHABCUyAAQlMkAEJTLABCUzAAQlUcAEJVJABCVTAAQlU4AEJVRABCVUgAQlVMAEJVUABCVVQAQlVcAEJVZABCVWgAQlVsAEJVdABCVXgAQlXcAEJV4ABCVeQAQlXsAEJX2ABCV+AAQlfoAEJX8ABCV/wAQlgAAEJYBABCWAgAQlgMAEJYFABCWBwAQlggAEJYJABCWCwAQlgwAEJaHABCWiQAQlosAEJaNABCWkAAQlpEAEJaSABCWkwAQlpQAEJaWABCWmAAQlpkAEJaaABCWnAAQlp0AEJcYABCXGgAQlxwAEJceABCXIQAQlyIAEJcjABCXJAAQlyUAEJcnABCXKQAQlyoAEJcrABCXLQAQly4AEJepABCXqwAQl60AEJevABCXsgAQl7MAEJe0ABCXtQAQl7YAEJe4ABCXugAQl7sAEJe8ABCXvgAQl78AEJg6ABCYPAAQmD4AEJhAABCYQwAQmEQAEJhFABCYRgAQmEcAEJhJABCYSwAQmEwAEJhNABCYTwAQmFAAEJiZABCYvQAQmOQAEJkIABCZCwAQmQ0AEJkPABCZEQAQmRMAEJkVABCZFgAQmRkAEJkyABCZTwAQmVEAEJlTABCZVQAQmVcAEJlZABCZWwAQmV0AEJl6ABCZfQAQmYAAEJmDABCZhgAQmYkAEJmMABCZjwAQmZEAEJoMABCaDgAQmhAAEJoSABCaFQAQmhYAEJoXABCaGAAQmhkAEJobABCaHQAQmh4AEJofABCaIQAQmiIAEJqdABCanwAQmqEAEJqjABCapgAQmqcAEJqoABCaqQAQmqoAEJqsABCargAQmq8AEJqwABCasgAQmrMAEJsuABCbMAAQmzIAEJs0ABCbNwAQmzgAEJs5ABCbOgAQmzsAEJs9ABCbPwAQm0AAEJtBABCbQwAQm0QAEJu/ABCbwQAQm8QAEJvGABCbyQAQm8oAEJvLABCbzAAQm80AEJvPABCb0QAQm9IAEJvTABCb1QAQm9YAEJxRABCcUwAQnFUAEJxXABCcWgAQnFsAEJxcABCcXQAQnF4AEJxgABCcYgAQnGMAEJxkABCcZgAQnGcAEJziABCc5AAQnOYAEJzoABCc6wAQnOwAEJztABCc7gAQnO8AEJzxABCc8wAQnPQAEJz1ABCc9wAQnPgAEJ1zABCddQAQnXcAEJ15ABCdfAAQnX0AEJ1+ABCdfwAQnYAAEJ2CABCdhAAQnYUAEJ2GABCdiAAQnYkAEJ4cABCePwAQnl8AEJ5/ABCegQAQnoMAEJ6FABCehwAQnooAEJ6LABCejAAQno8AEJ6QABCekgAQnpMAEJ6VABCemAAQnpkAEJ6aABCenQAQnp4AEJ6jABCevAAQnsUAEJ7HABCeyQAQntIAEJ7VABCe2AAQntoAEJ8jABCfRwAQn24AEJ+SABCflQAQn5cAEJ+ZABCfmwAQn50AEJ+fABCfoAAQn6MAEJ+8ABCf3QAQn98AEJ/hABCf4wAQn+UAEJ/nABCf6QAQn+sAEJ/tABCgDgAQoBEAEKAUABCgFwAQoBoAEKAdABCgIAAQoCMAEKAmABCgKAAQoKMAEKClABCgpwAQoKkAEKCsABCgrQAQoK4AEKCvABCgsAAQoLIAEKC0ABCgtQAQoLYAEKC4ABCguQAQoTQAEKE2ABChOAAQoToAEKE9ABChPgAQoT8AEKFAABChQQAQoUMAEKFFABChRgAQoUcAEKFJABChSgAQocUAEKHHABChygAQocwAEKHPABCh0AAQodEAEKHSABCh0wAQodUAEKHXABCh2AAQodkAEKHbABCh3AAQofUAEKH2ABCh9wAQofkAEKJ0ABCidgAQongAEKJ6ABCifQAQon4AEKJ/ABCigAAQooEAEKKDABCihQAQooYAEKKHABCiiQAQoooAEKMFABCjBwAQowkAEKMLABCjDgAQow8AEKMQABCjEQAQoxIAEKMUABCjFgAQoxcAEKMYABCjGgAQoxsAEKOWABCjmAAQo5oAEKOcABCjnwAQo6AAEKOhABCjogAQo6MAEKOlABCjpwAQo6gAEKOpABCjqwAQo6wAEKQnABCkKQAQpCsAEKQtABCkMAAQpDEAEKQyABCkMwAQpDQAEKQ2ABCkOAAQpDkAEKQ6ABCkPAAQpD0AEKS4ABCkugAQpLwAEKS+ABCkwQAQpMIAEKTDABCkxAAQpMUAEKTHABCkyQAQpMoAEKTLABCkzQAQpM4AEKUXABClOwAQpWIAEKWGABCliQAQpYsAEKWNABCljwAQpZEAEKWTABCllAAQpZcAEKWwABClzQAQpc8AEKXRABCl0wAQpdUAEKXXABCl2QAQpdsAEKX4ABCl+wAQpf4AEKYBABCmBAAQpgcAEKYKABCmDQAQpg8AEKaKABCmjAAQpo4AEKaQABCmkwAQppQAEKaVABCmlgAQppcAEKaZABCmmwAQppwAEKadABCmnwAQpqAAEKcbABCnHQAQpx8AEKchABCnJAAQpyUAEKcmABCnJwAQpygAEKcqABCnLAAQpy0AEKcuABCnMAAQpzEAEKesABCnrgAQp7AAEKeyABCntQAQp7YAEKe3ABCnuAAQp7kAEKe7ABCnvQAQp74AEKe/ABCnwQAQp8IAEKg9ABCoPwAQqEEAEKhDABCoRgAQqEcAEKhIABCoSQAQqEoAEKhMABCoTgAQqE8AEKhQABCoUgAQqFMAEKjOABCo0AAQqNIAEKjUABCo1wAQqNgAEKjZABCo2gAQqNsAEKjdABCo3wAQqOAAEKjhABCo4wAQqOQAEKlfABCpYQAQqWMAEKllABCpaAAQqWkAEKlqABCpawAQqWwAEKluABCpcAAQqXEAEKlyABCpdAAQqXUAEKnwABCp8gAQqfQAEKn2ABCp+QAQqfoAEKn7ABCp/AAQqf0AEKn/ABCqAQAQqgIAEKoDABCqBQAQqgYAEKqZABCqvAAQqtwAEKr8ABCq/gAQqwAAEKsCABCrBAAQqwcAEKsIABCrCQAQqwwAEKsNABCrDwAQqxAAEKsSABCrFQAQqxYAEKsXABCrGgAQqxsAEKsgABCrOQAQq0IAEKtEABCrRgAQq08AEKtSABCrVQAQq1cAEKugABCrxAAQq+sAEKwPABCsEgAQrBQAEKwWABCsGAAQrBoAEKwcABCsHQAQrCAAEKw5ABCsWgAQrFwAEKxeABCsYAAQrGIAEKxkABCsZgAQrGgAEKxqABCsiwAQrI4AEKyRABCslAAQrJcAEKyaABCsnQAQrKAAEKyjABCspQAQrSAAEK0iABCtJAAQrSYAEK0pABCtKgAQrSsAEK0sABCtLQAQrS8AEK0xABCtMgAQrTMAEK01ABCtNgAQrbEAEK2zABCttQAQrbcAEK26ABCtuwAQrbwAEK29ABCtvgAQrcAAEK3CABCtwwAQrcQAEK3GABCtxwAQrkIAEK5EABCuRwAQrkkAEK5MABCuTQAQrk4AEK5PABCuUAAQrlIAEK5UABCuVQAQrlYAEK5YABCuWQAQrnIAEK5zABCudAAQrnYAEK7xABCu8wAQrvUAEK73ABCu+gAQrvsAEK78ABCu/QAQrv4AEK8AABCvAgAQrwMAEK8EABCvBgAQrwcAEK+CABCvhAAQr4YAEK+IABCviwAQr4wAEK+NABCvjgAQr48AEK+RABCvkwAQr5QAEK+VABCvlwAQr5gAELATABCwFQAQsBcAELAZABCwHAAQsB0AELAeABCwHwAQsCAAELAiABCwJAAQsCUAELAmABCwKAAQsCkAELCkABCwpgAQsKgAELCqABCwrQAQsK4AELCvABCwsAAQsLEAELCzABCwtQAQsLYAELC3ABCwuQAQsLoAELE1ABCxNwAQsTkAELE7ABCxPgAQsT8AELFAABCxQQAQsUIAELFEABCxRgAQsUcAELFIABCxSgAQsUsAELGUABCxuAAQsd8AELIDABCyBgAQsggAELIKABCyDAAQsg4AELIQABCyEQAQshQAELItABCySgAQskwAELJOABCyUAAQslIAELJUABCyVgAQslgAELJ1ABCyeAAQsnsAELJ+ABCygQAQsoQAELKHABCyigAQsowAELMHABCzCQAQswsAELMNABCzEAAQsxEAELMSABCzEwAQsxQAELMWABCzGAAQsxkAELMaABCzHAAQsx0AELOYABCzmgAQs5wAELOeABCzoQAQs6IAELOjABCzpAAQs6UAELOnABCzqQAQs6oAELOrABCzrQAQs64AELQpABC0KwAQtC0AELQvABC0MgAQtDMAELQ0ABC0NQAQtDYAELQ4ABC0OgAQtDsAELQ8ABC0PgAQtD8AELS6ABC0vAAQtL4AELTAABC0wwAQtMQAELTFABC0xgAQtMcAELTJABC0ywAQtMwAELTNABC0zwAQtNAAELVLABC1TQAQtU8AELVRABC1VAAQtVUAELVWABC1VwAQtVgAELVaABC1XAAQtV0AELVeABC1YAAQtWEAELXcABC13gAQteAAELXiABC15QAQteYAELXnABC16AAQtekAELXrABC17QAQte4AELXvABC18QAQtfIAELZtABC2bwAQtnEAELZzABC2dgAQtncAELZ4ABC2eQAQtnoAELZ8ABC2fgAQtn8AELaAABC2ggAQtoMAELcWABC3OQAQt1kAELd5ABC3ewAQt30AELd/ABC3gQAQt4QAELeFABC3hgAQt4kAELeKABC3jAAQt40AELePABC3kgAQt5MAELeUABC3lwAQt5gAELedABC3tgAQt78AELfBABC3wwAQt8wAELfPABC30gAQt9QAELgdABC4QQAQuGgAELiMABC4jwAQuJEAELiTABC4lQAQuJcAELiZABC4mgAQuJ0AELi2ABC41wAQuNkAELjbABC43QAQuN8AELjhABC44wAQuOUAELjnABC5CAAQuQsAELkOABC5EQAQuRQAELkXABC5GgAQuR0AELkgABC5IgAQuZ0AELmfABC5oQAQuaMAELmmABC5pwAQuagAELmpABC5qgAQuawAELmuABC5rwAQubAAELmyABC5swAQui4AELowABC6MgAQujQAELo3ABC6OAAQujkAELo6ABC6OwAQuj0AELo/ABC6QAAQukEAELpDABC6RAAQur8AELrBABC6xAAQusYAELrJABC6ygAQussAELrMABC6zQAQus8AELrRABC60gAQutMAELrVABC61gAQuu8AELrwABC68QAQuvMAELtuABC7cAAQu3IAELt0ABC7dwAQu3gAELt5ABC7egAQu3sAELt9ABC7fwAQu4AAELuBABC7gwAQu4QAELv/ABC8AQAQvAMAELwFABC8CAAQvAkAELwKABC8CwAQvAwAELwOABC8EAAQvBEAELwSABC8FAAQvBUAELyQABC8kgAQvJQAELyWABC8mQAQvJoAELybABC8nAAQvJ0AELyfABC8oQAQvKIAELyjABC8pQAQvKYAEL0hABC9IwAQvSUAEL0nABC9KgAQvSsAEL0sABC9LQAQvS4AEL0wABC9MgAQvTMAEL00ABC9NgAQvTcAEL2yABC9tAAQvbYAEL24ABC9uwAQvbwAEL29ABC9vgAQvb8AEL3BABC9wwAQvcQAEL3FABC9xwAQvcgAEL4RABC+NQAQvlwAEL6AABC+gwAQvoUAEL6HABC+iQAQvosAEL6NABC+jgAQvpEAEL6qABC+xwAQvskAEL7LABC+zQAQvs8AEL7RABC+0wAQvtUAEL7yABC+9QAQvvgAEL77ABC+/gAQvwEAEL8EABC/BwAQvwkAEL+EABC/hgAQv4kAEL+LABC/jgAQv48AEL+QABC/kQAQv5IAEL+UABC/lgAQv5cAEL+YABC/mgAQv5sAEMA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MABDaTgAQ2lEAENpTABDaVgAQ2lcAENpYABDaWQAQ2loAENpcABDaXgAQ2l8AENpgABDaYgAQ2mMAENreABDa4AAQ2uIAENrkABDa5wAQ2ugAENrpABDa6gAQ2usAENrtABDa7wAQ2vAAENrxABDa8wAQ2vQAENtvABDbcQAQ23MAENt1ABDbeAAQ23kAENt6ABDbewAQ23wAENt+ABDbgAAQ24EAENuCABDbhAAQ24UAENwAABDcAgAQ3AUAENwHABDcCgAQ3AsAENwMABDcDQAQ3A4AENwQABDcEgAQ3BMAENwUABDcFgAQ3BcAENySABDclAAQ3JYAENyYABDcmwAQ3JwAENydABDcngAQ3J8AENyhABDcowAQ3KQAENylABDcpwAQ3KgAEN0jABDdJQAQ3ScAEN0pABDdLAAQ3S0AEN0uABDdLwAQ3TAAEN0yABDdNAAQ3TUAEN02ABDdOAAQ3TkAEN20ABDdtgAQ3bgAEN26ABDdvQAQ3b4AEN2/ABDdwAAQ3cEAEN3DABDdxQAQ3cYAEN3HABDdyQAQ3coAEN3bABDd3AAQ3d4AEN5ZABDeWwAQ3l0AEN5fABDeYgAQ3mMAEN5kABDeZQAQ3mYAEN5oABDeagAQ3msAEN5sABDebgAQ3m8AEN7qABDe7AAQ3u4AEN7wABDe8wAQ3vQAEN71ABDe9gAQ3vcAEN75ABDe+wAQ3vwAEN79ABDe/wAQ3wAAEN97ABDffQAQ34AAEN+CABDfhQAQ34YAEN+HABDfiAAQ34kAEN+LABDfjQAQ344AEN+PABDfkQAQ35IAEOAlABDgSAAQ4GgAEOCIABDgigAQ4IwAEOCOABDgkAAQ4JMAEOCUABDglQAQ4JgAEOCZABDgmwAQ4JwAEOCeABDgoQAQ4KIAEOCjABDgpgAQ4KcAEOCsABDgxQAQ4M4AEODQABDg0gAQ4NsAEODeABDg4QAQ4OMAEOEsABDhUAAQ4XcAEOGbABDhngAQ4aAAEOGiABDhpAAQ4aYAEOGoABDhqQAQ4awAEOHFABDh5gAQ4egAEOHqABDh7AAQ4e4AEOHwABDh8gAQ4fQAEOH2ABDiFwAQ4hoAEOIdABDiIAAQ4iMAEOImABDiKQAQ4iwAEOIvABDiMQAQ4qwAEOKuABDisAAQ4rIAEOK1ABDitgAQ4rcAEOK4ABDiuQAQ4rsAEOK9ABDivgAQ4r8AEOLBABDiwgAQ4z0AEOM/ABDjQQAQ40MAEONGABDjRwAQ40gAEONJABDjSgAQ40wAEONOABDjTwAQ41AAEONSABDjUwAQ484AEOPQABDj0wAQ49UAEOPYABDj2QAQ49oAEOPbABDj3AAQ494AEOPgABDj4QAQ4+IAEOPkABDj5QAQ4/4AEOP/ABDkAAAQ5AIAEOR9ABDkfwAQ5IEAEOSDABDkhgAQ5IcAEOSIABDkiQAQ5IoAEOSMABDkjgAQ5I8AEOSQABDkkgAQ5JMAEOUOABDlEAAQ5RIAEOUUABDlFwAQ5RgAEOUZABDlGgAQ5RsAEOUdABDlHwAQ5SAAEOUhABDlIwAQ5SQAEOWfABDloQAQ5aMAEOWlABDlqAAQ5akAEOWqABDlqwAQ5awAEOWuABDlsAAQ5bEAEOWyABDltAAQ5bUAEOYwABDmMgAQ5jQAEOY2ABDmOQAQ5joAEOY7ABDmPAAQ5j0AEOY/ABDmQQAQ5kIAEOZDABDmRQAQ5kYAEObBABDmwwAQ5sUAEObHABDmygAQ5ssAEObMABDmzQAQ5s4AEObQABDm0gAQ5tMAEObUABDm1gAQ5tcAEOcgABDnRAAQ52sAEOePABDnkgAQ55QAEOeWABDnmAAQ55oAEOecABDnnQAQ56AAEOe5ABDn1gAQ59gAEOfaABDn3AAQ594AEOfgABDn4gAQ5+QAEOgBABDoBAAQ6AcAEOgKABDoDQAQ6BAAEOgTABDoFgAQ6BgAEOiTABDolQAQ6JcAEOiZABDonAAQ6J0AEOieABDonwAQ6KAAEOiiABDopAAQ6KUAEOimABDoqAAQ6KkAEOkkABDpJgAQ6SgAEOkqABDpLQAQ6S4AEOkvABDpMAAQ6TEAEOkzABDpNQAQ6TYAEOk3ABDpOQAQ6ToAEOm1ABDptwAQ6bkAEOm7ABDpvgAQ6b8AEOnAABDpwQAQ6cIAEOnEABDpxgAQ6ccAEOnIABDpygAQ6csAEOpGABDqSAAQ6koAEOpMABDqTwAQ6lAAEOpRABDqUgAQ6lMAEOpVABDqVwAQ6lgAEOpZABDqWwAQ6lwAEOrXABDq2QAQ6tsAEOrdABDq4AAQ6uEAEOriABDq4wAQ6uQAEOrmABDq6AAQ6ukAEOrqABDq7AAQ6u0AEOtoABDragAQ62wAEOtuABDrcQAQ63IAEOtzABDrdAAQ63UAEOt3ABDreQAQ63oAEOt7ABDrfQAQ634AEOv5ABDr+wAQ6/0AEOv/ABDsAgAQ7AMAEOwEABDsBQAQ7AYAEOwIABDsCgAQ7AsAEOwMABDsDgAQ7A8AEOyiABDsxQAQ7OUAEO0FABDtBwAQ7QkAEO0LABDtDQAQ7RAAEO0RABDtEgAQ7RUAEO0WABDtGAAQ7RkAEO0bABDtHgAQ7R8AEO0gABDtIwAQ7SQAEO0pABDtQgAQ7UsAEO1NABDtTwAQ7VgAEO1bABDtXgAQ7WAAEO2pABDtzQAQ7fQAEO4YABDuGwAQ7h0AEO4fABDuIQAQ7iMAEO4lABDuJgAQ7ikAEO5CABDuYwAQ7mUAEO5nABDuaQAQ7msAEO5tABDubwAQ7nEAEO5zABDulAAQ7pcAEO6aABDunQAQ7qAAEO6jABDupgAQ7qkAEO6sABDurgAQ7ykAEO8rABDvLQAQ7y8AEO8yABDvMwAQ7zQAEO81ABDvNgAQ7zgAEO86ABDvOwAQ7zwAEO8+ABDvPwAQ77oAEO+8ABDvvgAQ78AAEO/DABDvxAAQ78UAEO/GABDvxwAQ78kAEO/LABDvzAAQ780AEO/PABDv0AAQ8EsAEPBNABDwUAAQ8FIAEPBVABDwVgAQ8FcAEPBYABDwWQAQ8FsAEPBdABDwXgAQ8F8AEPBhABDwYgAQ8HsAEPB8ABDwfQAQ8H8AEPD6ABDw/AAQ8P4AEPEAABDxAwAQ8QQAEPEFABDxBgAQ8QcAEPEJABDxCwAQ8QwAEPENABDxDwAQ8RAAEPGLABDxjQAQ8Y8AEPGRABDxlAAQ8ZUAEPGWABDxlwAQ8ZgAEPGaABDxnAAQ8Z0AEPGeABDxoAAQ8aEAEPIcABDyHgAQ8iAAEPIiABDyJQAQ8iYAEPInABDyKAAQ8ikAEPIrABDyLQAQ8i4AEPIvABDyMQAQ8jIAEPKtABDyrwAQ8rEAEPKzABDytgAQ8rcAEPK4ABDyuQAQ8roAEPK8ABDyvgAQ8r8AEPLAABDywgAQ8sMAEPM+ABDzQAAQ80IAEPNEABDzRwAQ80gAEPNJABDzSgAQ80sAEPNNABDzTwAQ81AAEPNRABDzUwAQ81QAEPOdABDzwQAQ8+gAEPQMABD0DwAQ9BEAEPQTABD0FQAQ9BcAEPQZABD0GgAQ9B0AEPQ2ABD0UwAQ9FUAEPRXABD0WQAQ9FsAEPRdABD0XwAQ9GEAEPR+ABD0gQAQ9IQAEPSHABD0igAQ9I0AEPSQABD0kwAQ9JUAEPUQABD1EgAQ9RQAEPUWABD1GQAQ9RoAEPUbABD1HAAQ9R0AEPUfABD1IQAQ9SIAEPUjABD1JQAQ9SYAEPWhABD1owAQ9aUAEPWnABD1qgAQ9asAEPWsABD1rQAQ9a4AEPWwABD1sgAQ9bMAEPW0ABD1tgAQ9bcAEPYyABD2NAAQ9jYAEPY4ABD2OwAQ9jwAEPY9ABD2PgAQ9j8AEPZBABD2QwAQ9kQAEPZFABD2RwAQ9kgAEPbDABD2xQAQ9sgAEPbKABD2zQAQ9s4AEPbPABD20AAQ9tEAEPbTABD21QAQ9tYAEPbXABD22QAQ9toAEPdVABD3VwAQ91kAEPdbABD3XgAQ918AEPdgABD3YQAQ92IAEPdkABD3ZgAQ92cAEPdoABD3agAQ92sAEPfmABD36AAQ9+oAEPfsABD37wAQ9/AAEPfxABD38gAQ9/MAEPf1ABD39wAQ9/gAEPf5ABD3+wAQ9/wAEPh3ABD4eQAQ+HsAEPh9ABD4gAAQ+IEAEPiCABD4gwAQ+IQAEPiGABD4iAAQ+IkAEPiKABD4jAAQ+I0AEPkgABD5QwAQ+WMAEPmDABD5hQAQ+YcAEPmJABD5iwAQ+Y4AEPmPABD5kAAQ+ZMAEPmUABD5lgAQ+ZcAEPmZABD5nAAQ+Z0AEPmeABD5oQAQ+aIAEPmnABD5wAAQ+ckAEPnLABD5zQAQ+dYAEPnZABD53AAQ+d4AEPonABD6SwAQ+nIAEPqWABD6mQAQ+psAEPqdABD6nwAQ+qEAEPqjABD6pAAQ+qcAEPrAABD64QAQ+uMAEPrlABD65wAQ+ukAEPrrABD67QAQ+u8AEPrxABD7EgAQ+xUAEPsYABD7GwAQ+x4AEPshABD7JAAQ+ycAEPsqABD7LAAQ+6cAEPupABD7qwAQ+60AEPuwABD7sQAQ+7IAEPuzABD7tAAQ+7YAEPu4ABD7uQAQ+7oAEPu8ABD7vQAQ/DgAEPw6ABD8PAAQ/D4AEPxBABD8QgAQ/EMAEPxEABD8RQAQ/EcAEPxJABD8SgAQ/EsAEPxNABD8TgAQ/MkAEPzLABD8zgAQ/NAAEPzTABD81AAQ/NUAEPzWABD81wAQ/NkAEPzbABD83AAQ/N0AEPzfABD84AAQ/PkAEPz6ABD8+wAQ/P0AEP14ABD9egAQ/XwAEP1+ABD9gQAQ/YIAEP2DABD9hAAQ/YUAEP2HABD9iQAQ/YoAEP2LABD9jQAQ/Y4AEP4JABD+CwAQ/g0AEP4PABD+EgAQ/hMAEP4UABD+FQAQ/hYAEP4YABD+GgAQ/hsAEP4cABD+HgAQ/h8AEP6aABD+nAAQ/p4AEP6gABD+owAQ/qQAEP6lABD+pgAQ/qcAEP6pABD+qwAQ/qwAEP6tABD+rwAQ/rAAEP8rABD/LQAQ/y8AEP8xABD/NAAQ/zUAEP82ABD/NwAQ/zgAEP86ABD/PAAQ/z0AEP8+ABD/QAAQ/0EAEP+8ABD/vgAQ/8AAEP/CABD/xQAQ/8YAEP/HABD/yAAQ/8kAEP/LABD/zQAQ/84AEP/PABD/0QAQ/9IAEQAbABEAPwARAGYAEQCKABEAjQARAI8AEQCRABEAkwARAJUAEQCXABEAmAARAJsAEQC0ABEA0QARANMAEQDVABEA1wARANkAEQDbABEA3QARAN8AEQD8ABEA/wARAQIAEQEFABEBCAARAQsAEQEOABEBEQARARMAEQGOABEBkAARAZIAEQGUABEBlwARAZgAEQGZABEBmgARAZsAEQGdABEBnwARAaAAEQGhABEBowARAaQAEQIfABECIQARAiMAEQIlABECKAARAikAEQIqABECKwARAiwAEQIuABECMAARAjEAEQIyABECNAARAjUAEQKwABECsgARArQAEQK2ABECuQARAroAEQK7ABECvAARAr0AEQK/ABECwQARAsIAEQLDABECxQARAsYAEQNBABEDQwARA0UAEQNHABEDSgARA0sAEQNMABEDTQARA04AEQNQABEDUgARA1MAEQNUABEDVgARA1cAEQPSABED1AARA9YAEQPYABED2wARA9wAEQPdABED3gARA98AEQPhABED4wARA+QAEQPlABED5wARA+gAEQRjABEEZQARBGcAEQRpABEEbAARBG0AEQRuABEEbwARBHAAEQRyABEEdAARBHUAEQR2ABEEeAARBHkAEQT0ABEE9gARBPgAEQT6ABEE/QARBP4AEQT/ABEFAAARBQEAEQUDABEFBQARBQYAEQUHABEFCQARBQoAEQWdABEFwAARBeAAEQYAABEGAgARBgQAEQYGABEGCAARBgsAEQYMABEGDQARBhAAEQYRABEGEwARBhQAEQYWABEGGQARBhoAEQYbABEGHgARBh8AEQYkABEGPQARBkYAEQZIABEGSgARBlMAEQZWABEGWQARBlsAEQakABEGyAARBu8AEQcTABEHFgARBxgAEQcaABEHHAARBx4AEQcgABEHIQARByQAEQc9ABEHXgARB2AAEQdiABEHZAARB2YAEQdoABEHagARB2wAEQduABEHjwARB5IAEQeVABEHmAARB5sAEQeeABEHoQARB6QAEQenABEHqQARCCQAEQgmABEIKAARCCoAEQgtABEILgARCC8AEQgwABEIMQARCDMAEQg1ABEINgARCDcAEQg5ABEIOgARCLUAEQi3ABEIuQARCLsAEQi+ABEIvwARCMAAEQjBABEIwgARCMQAEQjGABEIxwARCMgAEQjKABEIywARCUYAEQlIABEJSwARCU0AEQlQABEJUQARCVIAEQlTABEJVAARCVYAEQlYABEJWQARCVoAEQlcABEJXQARCXYAEQl3ABEJeAARCXoAEQn1ABEJ9wARCfkAEQn7ABEJ/gARCf8AEQoAABEKAQARCgIAEQoEABEKBgARCgcAEQoIABEKCgARCgsAEQqGABEKiAARCooAEQqMABEKjwARCpAAEQqRABEKkgARCpMAEQqVABEKlwARCpgAEQqZABEKmwARCpwAEQsXABELGQARCxsAEQsdABELIAARCyEAEQsiABELIwARCyQAEQsmABELKAARCykAEQsqABELLAARCy0AEQuoABELqgARC6wAEQuuABELsQARC7IAEQuzABELtAARC7UAEQu3ABELuQARC7oAEQu7ABELvQARC74AEQw5ABEMOwARDD0AEQw/ABEMQgARDEMAEQxEABEMRQARDEYAEQxIABEMSgARDEsAEQxMABEMTgARDE8AEQyYABEMvAARDOMAEQ0HABENCgARDQwAEQ0OABENEAARDRIAEQ0UABENFQARDRgAEQ0xABENTgARDVAAEQ1SABENVAARDVYAEQ1YABENWgARDVwAEQ15ABENfAARDX8AEQ2CABENhQARDYgAEQ2LABENjgARDZAAEQ4LABEODQARDg8AEQ4RABEOFAARDhUAEQ4WABEOFwARDhgAEQ4aABEOHAARDh0AEQ4eABEOIAARDiEAEQ6cABEOngARDqAAEQ6iABEOpQARDqYAEQ6nABEOqAARDqkAEQ6rABEOrQARDq4AEQ6vABEOsQARDrIAEQ8tABEPLwARDzEAEQ8zABEPNgARDzcAEQ84ABEPOQARDzoAEQ88ABEPPgARDz8AEQ9AABEPQgARD0MAEQ++ABEPwAARD8MAEQ/FABEPyAARD8kAEQ/KABEPywARD8wAEQ/OABEP0AARD9EAEQ/SABEP1AARD9UAERBQABEQUgAREFQAERBWABEQWQAREFoAERBbABEQXAAREF0AERBfABEQYQAREGIAERBjABEQZQAREGYAERDhABEQ4wAREOUAERDnABEQ6gAREOsAERDsABEQ7QAREO4AERDwABEQ8gAREPMAERD0ABEQ9gAREPcAERFyABERdAAREXYAERF4ABERewAREXwAERF9ABERfgAREX8AERGBABERgwAREYQAERGFABERhwAREYgAERIbABESPgAREl4AERJ+ABESgAAREoIAERKEABEShgAREokAERKKABESiwAREo4AERKPABESkQAREpIAERKUABESlwAREpgAERKZABESnAAREp0AERKiABESuwAREsQAERLGABESyAAREtEAERLUABES1wAREtkAERMiABETRgARE20AERORABETlAARE5YAEROYABETmgARE5wAEROeABETnwARE6IAERO7ABET3AARE94AERPgABET4gARE+QAERPmABET6AARE+oAERPsABEUDQARFBAAERQTABEUFgARFBkAERQcABEUHwARFCIAERQlABEUJwARFKIAERSkABEUpgARFKgAERSrABEUrAARFK0AERSuABEUrwARFLEAERSzABEUtAARFLUAERS3ABEUuAARFTMAERU1ABEVNwARFTkAERU8ABEVPQARFT4AERU/ABEVQAARFUIAERVEABEVRQARFUYAERVIABEVSQARFcQAERXGABEVyQARFcsAERXOABEVzwARFdAAERXRABEV0gARFdQAERXWABEV1wARFdgAERXaABEV2wARFfQAERX1ABEV9gARFfgAERZzABEWdQARFncAERZ5ABEWfAARFn0AERZ+ABEWfwARFoAAERaCABEWhAARFoUAERaGABEWiAARFokAERcEABEXBgARFwgAERcKABEXDQARFw4AERcPABEXEAARFxEAERcTABEXFQARFxYAERcXABEXGQARFxoAEReVABEXlwARF5kAERebABEXngARF58AERegABEXoQARF6IAERekABEXpgARF6cAEReoABEXqgARF6sAERgmABEYKAARGCoAERgsABEYLwARGDAAERgxABEYMgARGDMAERg1ABEYNwARGDgAERg5ABEYOwARGDwAERi3ABEYuQARGLsAERi9ABEYwAARGMEAERjCABEYwwARGMQAERjGABEYyAARGMkAERjKABEYzAARGM0AERkWABEZOgARGWEAERmFABEZiAARGYoAERmMABEZjgARGZAAERmSABEZkwARGZYAERmvABEZzAARGc4AERnQABEZ0gARGdQAERnWABEZ2AARGdoAERn3ABEZ+gARGf0AERoAABEaAwARGgYAERoJABEaDAARGg4AERqJABEaiwARGo4AERqQABEakwARGpQAERqVABEalgARGpcAERqZABEamwARGpwAERqdABEanwARGqAAERqkABEbHwARGyEAERsjABEbJQARGygAERspABEbKgARGysAERssABEbLgARGzAAERsxABEbMgARGzQAERs1ABEbsAARG7IAERu0ABEbtgARG7kAERu6ABEbuwARG7wAERu9ABEbvwARG8EAERvCABEbwwARG8UAERvGABEcQQARHEMAERxFABEcRwARHEoAERxLABEcTAARHE0AERxOABEcUAARHFIAERxTABEcVAARHFYAERxXABEc0gARHNQAERzWABEc2AARHNsAERzcABEc3QARHN4AERzfABEc4QARHOMAERzkABEc5QARHOcAERzoABEdYwARHWUAER1nABEdaQARHWwAER1tABEdbgARHW8AER1wABEdcgARHXQAER11ABEddgARHXgAER15ABEd9AARHfYAER34ABEd+gARHf0AER3+ABEd/wARHgAAER4BABEeAwARHgUAER4GABEeBwARHgkAER4KABEenQARHsAAER7gABEfAAARHwIAER8EABEfBgARHwgAER8LABEfDAARHw0AER8QABEfEQARHxMAER8UABEfFgARHxkAER8aABEfGwARHx4AER8fABEfJAARHz0AER9GABEfSAARH0oAER9TABEfVgARH1kAER9bABEfpAARH8gAER/vABEgEwARIBYAESAYABEgGgARIBwAESAeABEgIAARICEAESAkABEgPQARIF4AESBgABEgYgARIGQAESBmABEgaAARIGoAESBsABEgbgARII8AESCSABEglQARIJgAESCbABEgngARIKEAESCkABEgpwARIKkAESEkABEhJgARISgAESEqABEhLQARIS4AESEvABEhMAARITEAESEzABEhNQARITYAESE3ABEhOQARIToAESG1ABEhtwARIbkAESG7ABEhvgARIb8AESHAABEhwQARIcIAESHEABEhxgARIccAESHIABEhygARIcsAESJGABEiSAARIksAESJNABEiUAARIlEAESJSABEiUwARIlQAESJWABEiWAARIlkAESJaABEiXAARIl0AESJ2ABEidwARIngAESJ6ABEi9QARIvcAESL5ABEi+wARIv4AESL/ABEjAAARIwEAESMCABEjBAARIwYAESMHABEjCAARIwoAESMLABEjhgARI4gAESOKABEjjAARI48AESOQABEjkQARI5IAESOTABEjlQARI5cAESOYABEjmQARI5sAESOcABEkFwARJBkAESQbABEkHQARJCAAESQhABEkIgARJCMAESQkABEkJgARJCgAESQpABEkKgARJCwAESQtABEkqAARJKoAESSsABEkrgARJLEAESSyABEkswARJLQAESS1ABEktwARJLkAESS6ABEkuwARJL0AESS+ABElOQARJTsAESU9ABElPwARJUIAESVDABElRAARJUUAESVGABElSAARJUoAESVLABElTAARJU4AESVPABElmAARJbwAESXjABEmBwARJgoAESYMABEmDgARJhAAESYSABEmFAARJhUAESYYABEmMQARJk4AESZQABEmUgARJlQAESZWABEmWAARJloAESZcABEmeQARJnwAESZ/ABEmggARJoUAESaIABEmiwARJo4AESaQABEnCwARJw0AEScPABEnEQARJxQAEScVABEnFgARJxcAEScYABEnGgARJxwAEScdABEnHgARJyAAESchABEnnAARJ54AESegABEnogARJ6UAESemABEnpwARJ6gAESepABEnqwARJ60AESeuABEnrwARJ7EAESeyABEoLQARKC8AESgxABEoMwARKDYAESg3ABEoOAARKDkAESg6ABEoPAARKD4AESg/ABEoQAARKEIAEShDABEovgARKMAAESjCABEoxAARKMcAESjIABEoyQARKMoAESjLABEozQARKM8AESjQABEo0QARKNMAESjUABEpTwARKVEAESlTABEpVQARKVgAESlZABEpWgARKVsAESlcABEpXgARKWAAESlhABEpYgARKWQAESllABEp4AARKeIAESnkABEp5gARKekAESnqABEp6wARKewAESntABEp7wARKfEAESnyABEp8wARKfUAESn2ABEqcQARKnMAESp1ABEqdwARKnoAESp7ABEqfAARKn0AESp+ABEqgAARKoIAESqDABEqhAARKoYAESqHABErGgARKz0AEStdABErfQARK38AESuBABErgwARK4UAESuIABEriQARK4oAESuNABErjgARK5AAESuRABErkwARK5YAESuXABErmAARK5sAESucABEroQARK7oAESvDABErxQARK8cAESvQABEr0wARK9YAESvYABEsIQARLEUAESxsABEskAARLJMAESyVABEslwARLJkAESybABEsnQARLJ4AESyhABEsugARLNsAESzdABEs3wARLOEAESzjABEs5QARLOcAESzpABEs6wARLQwAES0PABEtEgARLRUAES0YABEtGwARLR4AES0hABEtJAARLSYAES2hABEtowARLaUAES2nABEtqgARLasAES2sABEtrQARLa4AES2wABEtsgARLbMAES20ABEttgARLbcAES4yABEuNAARLjYAES44ABEuOwARLjwAES49ABEuPgARLj8AES5BABEuQwARLkQAES5FABEuRwARLkgAES7DABEuxQARLsgAES7KABEuzQARLs4AES7PABEu0AARLtEAES7TABEu1QARLtYAES7XABEu2QARLtoAES7zABEu9AARLvUAES73ABEvcgARL3QAES92ABEveAARL3sAES98ABEvfQARL34AES9/ABEvgQARL4MAES+EABEvhQARL4cAES+IABEwAwARMAUAETAHABEwCQARMAwAETANABEwDgARMA8AETAQABEwEgARMBQAETAVABEwFgARMBgAETAZABEwlAARMJYAETCYABEwmgARMJ0AETCeABEwnwARMKAAETChABEwowARMKUAETCmABEwpwARMKkAETCqABExJQARMScAETEpABExKwARMS4AETEvABExMAARMTEAETEyABExNAARMTYAETE3ABExOAARMToAETE7ABExtgARMbgAETG6ABExvAARMb8AETHAABExwQARMcIAETHDABExxQARMccAETHIABExyQARMcsAETHMABEyFQARMjkAETJgABEyhAARMocAETKJABEyiwARMo0AETKPABEykQARMpIAETKVABEyrgARMssAETLNABEyzwARMtEAETLTABEy1QARMtcAETLZABEy9gARMvkAETL8ABEy/wARMwIAETMFABEzCAARMwsAETMNABEziAARM4oAETOMABEzjgARM5EAETOSABEzkwARM5QAETOVABEzlwARM5kAETOaABEzmwARM50AETOeABE0GQARNBsAETQdABE0HwARNCIAETQjABE0JAARNCUAETQmABE0KAARNCoAETQrABE0LAARNC4AETQvABE0qgARNKwAETSuABE0sAARNLMAETS0ABE0tQARNLYAETS3ABE0uQARNLsAETS8ABE0vQARNL8AETTAABE1OwARNT0AETU/ABE1QQARNUQAETVFABE1RgARNUcAETVIABE1SgARNUwAETVNABE1TgARNVAAETVRABE1zAARNc4AETXQABE10gARNdUAETXWABE11wARNdgAETXZABE12wARNd0AETXeABE13wARNeEAETXiABE2XQARNl8AETZhABE2YwARNmYAETZnABE2aAARNmkAETZqABE2bAARNm4AETZvABE2cAARNnIAETZzABE27gARNvAAETbyABE29AARNvcAETb4ABE2+QARNvoAETb7ABE2/QARNv8AETcAABE3AQARNwMAETcEABE3lwARN7oAETfaABE3+gARN/wAETf+ABE4AAAROAIAETgFABE4BgAROAcAETgKABE4CwAROA0AETgOABE4EQAROBQAETgVABE4FgAROBkAETgaABE4HwARODgAEThBABE4QwAROEUAEThOABE4UQAROFQAEThWABE4nwAROMMAETjqABE5DgAROREAETkTABE5FQARORcAETkZABE5GwARORwAETkfABE5OAAROVkAETlbABE5XQAROV8AETlhABE5YwAROWUAETlnABE5aQAROYoAETmNABE5kAAROZMAETmWABE5mQAROZwAETmfABE5ogAROaQAETofABE6IQAROiMAETolABE6KAAROikAEToqABE6KwAROiwAETouABE6MAAROjEAEToyABE6NAAROjUAETqwABE6sgAROrQAETq2ABE6uQAROroAETq7ABE6vAAROr0AETq/ABE6wQAROsIAETrDABE6xQAROsYAETtBABE7QwARO0YAETtIABE7SwARO0wAETtNABE7TgARO08AETtRABE7UwARO1QAETtVABE7VwARO1gAETtxABE7cgARO3MAETt1ABE78AARO/IAETv0ABE79gARO/kAETv6ABE7+wARO/wAETv9ABE7/wARPAEAETwCABE8AwARPAUAETwGABE8gQARPIMAETyFABE8hwARPIoAETyLABE8jAARPI0AETyOABE8kAARPJIAETyTABE8lAARPJYAETyXABE9EgARPRQAET0WABE9GAARPRsAET0cABE9HQARPR4AET0fABE9IQARPSMAET0kABE9JQARPScAET0oABE9owARPaUAET2nABE9qQARPawAET2tABE9rgARPa8AET2wABE9sgARPbQAET21ABE9tgARPbgAET25ABE+NAARPjYAET44ABE+OgARPj0AET4+ABE+PwARPkAAET5BABE+QwARPkUAET5GABE+RwARPkkAET5KABE+kwARPrcAET7eABE/AgARPwUAET8HABE/CQARPwsAET8NABE/DwARPxAAET8TABE/LAARP0kAET9LABE/TQARP08AET9RABE/UwARP1UAET9XABE/dAARP3cAET96ABE/fQARP4AAET+DABE/hgARP4kAET+LABFABgARQAgAEUAKABFADAARQA8AEUAQABFAEQARQBIAEUATABFAFQARQBcAEUAYABFAGQARQBsAEUAcABFAlwARQJkAEUCcABFAngARQKEAEUCiABFAowARQKQAEUClABFApwARQKkAEUCqABFAqwARQK0AEUCuABFBKQARQSsAEUEtABFBLwARQTIAEUEzABFBNAARQTUAEUE2ABFBOAARQToAEUE7ABFBPAARQT4AEUE/ABFBugARQbwAEUG/ABFBwQARQcQAEUHFABFBxgARQccAEUHIABFBygARQcwAEUHNABFBzgARQdAAEUHRABFCVAARQngAEUKcABFCvwARQuYAEUMGABFDLQARQ1QAEUN0ABFDmAARQ7wAEUO+ABFDwQARQ8MAEUPFABFDxwARQ8oAEUPNABFDzwARQ9EAEUPUABFD1gARQ9gAEUPbABFD3gARQ98AEUPkABFD/QARRAIAEUQEABFECQARRAwAEUQOABFEVwARRHsAEUSiABFExgARRMkAEUTLABFEzQARRM8AEUTRABFE0wARRNQAEUTXABFE8AARRRUAEUUXABFFGQARRRsAEUUdABFFHwARRSEAEUUjABFFJQARRScAEUVMABFFTwARRVIAEUVVABFFWAARRVsAEUVeABFFYQARRWQAEUVnABFFaQARReQAEUXmABFF6QARResAEUXuABFF7wARRfAAEUXxABFF8gARRfQAEUX2ABFF9wARRfgAEUX6ABFF+wARRgwAEUYNABFGDwARRooAEUaMABFGjgARRpAAEUaTABFGlAARRpUAEUaWABFGlwARRpkAEUabABFGnAARRp0AEUafABFGoAARRxsAEUcdABFHIAARRyIAEUclABFHJgARRycAEUcoABFHKQARRysAEUctABFHLgARRy8AEUcxABFHMgARR0MAEUdIABFHSwARR00AEUdeABFHawARR24AEUdxABFHdAARR3YAEUeRABFHpwARR7IAEUgtABFILwARSDEAEUgzABFINgARSDcAEUg4ABFIOQARSDoAEUg8ABFIPgARSD8AEUhAABFIQgARSEMAEUi+ABFIwAARSMMAEUjFABFIyAARSMkAEUjKABFIywARSMwAEUjOABFI0AARSNEAEUjSABFI1AARSNUAEUjmABFI5wARSOkAEUlkABFJZgARSWgAEUlqABFJbQARSW4AEUlvABFJcAARSXEAEUlzABFJdQARSXYAEUl3ABFJeQARSXoAEUn1ABFJ9wARSfoAEUn8ABFJ/wARSgAAEUoBABFKAgARSgMAEUoFABFKBwARSggAEUoJABFKCwARSgwAEUolABFKJgARSicAEUopABFKpAARSqYAEUqoABFKqgARSq0AEUquABFKrwARSrAAEUqxABFKswARSrUAEUq2ABFKtwARSrkAEUq6ABFLNQARSzcAEUs6ABFLPAARSz8AEUtAABFLQQARS0IAEUtDABFLRQARS0cAEUtIABFLSQARS0sAEUtMABFLaAARS4EAEUuSABFLlQARS5gAEUubABFLngARS68AEUuyABFLtQARS7gAEUu7ABFLvQARS9MAEUvuABFL+gARTI0AEUywABFM0AARTPAAEUzyABFM9AARTPYAEUz4ABFM+wARTPwAEUz9ABFNAAARTQEAEU0DABFNBAARTQYAEU0JABFNCgARTQsAEU0OABFNDwARTRQAEU0tABFNNgARTTgAEU06ABFNQwARTUYAEU1JABFNSwARTZQAEU24ABFN3wARTgMAEU4GABFOCAARTgoAEU4MABFODgARThAAEU4RABFOFAARTi0AEU5OABFOUAARTlIAEU5UABFOVgARTlgAEU5aABFOXAARTl4AEU5/ABFOggARToUAEU6IABFOiwARTo4AEU6RABFOlAARTpcAEU6ZABFPFAARTxYAEU8YABFPGgARTx0AEU8eABFPHwARTyAAEU8hABFPIwARTyUAEU8mABFPJwARTykAEU8qABFPpQART6cAEU+pABFPqwART64AEU+vABFPsAART7EAEU+yABFPtAART7YAEU+3ABFPuAART7oAEU+7ABFQNgARUDgAEVA7ABFQPQARUEAAEVBBABFQQgARUEMAEVBEABFQRgARUEgAEVBJABFQSgARUEwAEVBNABFQZgARUGcAEVBoABFQagARUOUAEVDnABFQ6QARUOsAEVDuABFQ7wARUPAAEVDxABFQ8gARUPQAEVD2ABFQ9wARUPgAEVD6ABFQ+wARUXYAEVF4ABFRegARUXwAEVF/ABFRgAARUYEAEVGCABFRgwARUYUAEVGHABFRiAARUYkAEVGLABFRjAARUgcAEVIJABFSCwARUg0AEVIQABFSEQARUhIAEVITABFSFAARUhYAEVIYABFSGQARUhoAEVIcABFSHQARUpgAEVKaABFSnAARUp4AEVKhABFSogARUqMAEVKkABFSpQARUqcAEVKpABFSqgARUqsAEVKtABFSrgARUykAEVMrABFTLQARUy8AEVMyABFTMwARUzQAEVM1ABFTNgARUzgAEVM6ABFTOwARUzwAEVM+ABFTPwARU4gAEVOsABFT0wARU/cAEVP6ABFT/AARU/4AEVQAABFUAgARVAQAEVQFABFUCAARVCEAEVQ+ABFUQAARVEIAEVREABFURgARVEgAEVRKABFUTAARVGkAEVRsABFUbwARVHIAEVR1ABFUeAARVHsAEVR+ABFUgAARVPsAEVT9ABFU/wARVQEAEVUEABFVBQARVQYAEVUHABFVCAARVQoAEVUMABFVDQARVQ4AEVUQABFVEQARVYwAEVWOABFVkAARVZIAEVWVABFVlgARVZcAEVWYABFVmQARVZsAEVWdABFVngARVZ8AEVWhABFVogARVh0AEVYfABFWIQARViMAEVYmABFWJwARVigAEVYpABFWKgARViwAEVYuABFWLwARVjAAEVYyABFWMwARVq4AEVawABFWsgARVrQAEVa3ABFWuAARVrkAEVa6ABFWuwARVr0AEVa/ABFWwAARVsEAEVbDABFWxAARVz8AEVdBABFXQwARV0UAEVdIABFXSQARV0oAEVdLABFXTAARV04AEVdQABFXUQARV1IAEVdUABFXVQARV9AAEVfSABFX1AARV9YAEVfZABFX2gARV9sAEVfcABFX3QARV98AEVfhABFX4gARV+MAEVflABFX5gARWGEAEVhjABFYZQARWGcAEVhqABFYawARWGwAEVhtABFYbgARWHAAEVhyABFYcwARWHQAEVh2ABFYdwARWQoAEVktABFZTQARWW0AEVlvABFZcQARWXMAEVl1ABFZeAARWXkAEVl6ABFZfQARWX4AEVmAABFZgQARWYMAEVmGABFZhwARWYgAEVmLABFZjAARWZUAEVmuABFZtwARWbkAEVm7ABFZxAARWccAEVnKABFZzAARWhUAEVo5ABFaYAARWoQAEVqHABFaiQARWosAEVqNABFajwARWpEAEVqSABFalQARWq4AEVrPABFa0QARWtMAEVrVABFa1wARWtkAEVrbABFa3QARWt8AEVsAABFbAwARWwYAEVsJABFbDAARWw8AEVsSABFbFQARWxgAEVsaABFblQARW5cAEVuZABFbmwARW54AEVufABFboAARW6EAEVuiABFbpAARW6YAEVunABFbqAARW6oAEVurABFcJgARXCgAEVwqABFcLAARXC8AEVwwABFcMQARXDIAEVwzABFcNQARXDcAEVw4ABFcOQARXDsAEVw8ABFctwARXLkAEVy8ABFcvgARXMEAEVzCABFcwwARXMQAEVzFABFcxwARXMkAEVzKABFcywARXM0AEVzOABFc5wARXOgAEVzpABFc6wARXWYAEV1oABFdagARXWwAEV1vABFdcAARXXEAEV1yABFdcwARXXUAEV13ABFdeAARXXkAEV17ABFdfAARXfcAEV35ABFd+wARXf0AEV4AABFeAQARXgIAEV4DABFeBAARXgYAEV4IABFeCQARXgoAEV4MABFeDQARXogAEV6KABFejAARXo4AEV6RABFekgARXpMAEV6UABFelQARXpcAEV6ZABFemgARXpsAEV6dABFengARXxkAEV8bABFfHQARXx8AEV8iABFfIwARXyQAEV8lABFfJgARXygAEV8qABFfKwARXywAEV8uABFfLwARX6oAEV+sABFfrgARX7AAEV+zABFftAARX7UAEV+2ABFftwARX7kAEV+7ABFfvAARX70AEV+/ABFfwAARYAkAEWAtABFgVAARYHgAEWB7ABFgfQARYH8AEWCBABFggwARYIUAEWCGABFgiQARYKIAEWC/ABFgwQARYMMAEWDFABFgxwARYMkAEWDLABFgzQARYOoAEWDtABFg8AARYPMAEWD2ABFg+QARYPwAEWD/ABFhAQARYXwAEWF+ABFhgAARYYIAEWGFABFhhgARYYcAEWGIABFhiQARYYsAEWGNABFhjgARYY8AEWGRABFhkgARYg0AEWIPABFiEQARYhMAEWIWABFiFwARYhgAEWIZABFiGgARYhwAEWIeABFiHwARYiAAEWIiABFiIwARYp4AEWKgABFiogARYqQAEWKnABFiqAARYqkAEWKqABFiqwARYq0AEWKvABFisAARYrEAEWKzABFitAARYy8AEWMxABFjMwARYzUAEWM4ABFjOQARYzoAEWM7ABFjPAARYz4AEWNAABFjQQARY0IAEWNEABFjRQARY8AAEWPCABFjxAARY8YAEWPJABFjygARY8sAEWPMABFjzQARY88AEWPRABFj0gARY9MAEWPVABFj1gARZFEAEWRTABFkVQARZFcAEWRaABFkWwARZFwAEWRdABFkXgARZGAAEWRiABFkYwARZGQAEWRmABFkZwARZOIAEWTkABFk5gARZOgAEWTrABFk7AARZO0AEWTuABFk7wARZPEAEWTzABFk9AARZPUAEWT3ABFk+AARZYsAEWWuABFlzgARZe4AEWXwABFl8gARZfQAEWX2ABFl+QARZfoAEWX7ABFl/gARZf8AEWYBABFmAgARZgQAEWYHABFmCAARZgkAEWYMABFmDQARZhIAEWYrABFmNAARZjYAEWY4ABFmQQARZkQAEWZHABFmSQARZpIAEWa2ABFm3QARZwEAEWcEABFnBgARZwgAEWcKABFnDAARZw4AEWcPABFnEgARZysAEWdMABFnTgARZ1AAEWdSABFnVAARZ1YAEWdYABFnWgARZ1wAEWd9ABFngAARZ4MAEWeGABFniQARZ4wAEWePABFnkgARZ5UAEWeXABFoEgARaBQAEWgWABFoGAARaBsAEWgcABFoHQARaB4AEWgfABFoIQARaCMAEWgkABFoJQARaCcAEWgoABFoowARaKUAEWinABFoqQARaKwAEWitABForgARaK8AEWiwABFosgARaLQAEWi1ABFotgARaLgAEWi5ABFpNAARaTYAEWk5ABFpOwARaT4AEWk/ABFpQAARaUEAEWlCABFpRAARaUYAEWlHABFpSAARaUoAEWlLABFpZAARaWUAEWlmABFpaAARaeMAEWnlABFp5wARaekAEWnsABFp7QARae4AEWnvABFp8AARafIAEWn0ABFp9QARafYAEWn4ABFp+QARanQAEWp2ABFqeAARanoAEWp9ABFqfgARan8AEWqAABFqgQARaoMAEWqFABFqhgARaocAEWqJABFqigARawUAEWsHABFrCQARawsAEWsOABFrDwARaxAAEWsRABFrEgARaxQAEWsWABFrFwARaxgAEWsaABFrGwARa5YAEWuYABFrmgARa5wAEWufABFroAARa6EAEWuiABFrowARa6UAEWunABFrqAARa6kAEWurABFrrAARbCcAEWwpABFsKwARbC0AEWwwABFsMQARbDIAEWwzABFsNAARbDYAEWw4ABFsOQARbDoAEWw8ABFsPQARbIYAEWyqABFs0QARbPUAEWz4ABFs+gARbPwAEWz+ABFtAAARbQIAEW0DABFtBgARbR8AEW08ABFtPgARbUAAEW1CABFtRAARbUYAEW1IABFtSgARbWcAEW1qABFtbQARbXAAEW1zABFtdgARbXkAEW18ABFtfgARbfkAEW37ABFt/QARbf8AEW4CABFuAwARbgQAEW4FABFuBgARbggAEW4KABFuCwARbgwAEW4OABFuDwARbooAEW6MABFujgARbpAAEW6TABFulAARbpUAEW6WABFulwARbpkAEW6bABFunAARbp0AEW6fABFuoAARbxsAEW8dABFvHwARbyEAEW8kABFvJQARbyYAEW8nABFvKAARbyoAEW8sABFvLQARby4AEW8wABFvMQARb6wAEW+uABFvsAARb7IAEW+1ABFvtgARb7cAEW+4ABFvuQARb7sAEW+9ABFvvgARb78AEW/BABFvwgARcD0AEXA/ABFwQQARcEMAEXBGABFwRwARcEgAEXBJABFwSgARcEwAEXBOABFwTwARcFAAEXBSABFwUwARcM4AEXDQABFw0gARcNQAEXDXABFw2AARcNkAEXDaABFw2wARcN0AEXDfABFw4AARcOEAEXDjABFw5AARcV8AEXFhABFxYwARcWUAEXFoABFxaQARcWoAEXFrABFxbAARcW4AEXFwABFxcQARcXIAEXF0ABFxdQARcggAEXIrABFySwARcmsAEXJtABFybwARcnEAEXJzABFydgARcncAEXJ4ABFyewARcnwAEXJ+ABFyfwARcoIAEXKFABFyhgARcocAEXKKABFyiwARcpAAEXKpABFysgARcrQAEXK2ABFyvwARcsIAEXLFABFyxwARcxAAEXM0ABFzWwARc38AEXOCABFzhAARc4YAEXOIABFzigARc4wAEXONABFzkAARc6kAEXPKABFzzAARc84AEXPQABFz0gARc9QAEXPWABFz2AARc9oAEXP7ABFz/gARdAEAEXQEABF0BwARdAoAEXQNABF0EAARdBMAEXQVABF0kAARdJIAEXSUABF0lgARdJkAEXSaABF0mwARdJwAEXSdABF0nwARdKEAEXSiABF0owARdKUAEXSmABF1IQARdSMAEXUlABF1JwARdSoAEXUrABF1LAARdS0AEXUuABF1MAARdTIAEXUzABF1NAARdTYAEXU3ABF1sgARdbQAEXW3ABF1uQARdbwAEXW9ABF1vgARdb8AEXXAABF1wgARdcQAEXXFABF1xgARdcgAEXXJABF14gARdeMAEXXkABF15gARdmEAEXZjABF2ZQARdmcAEXZqABF2awARdmwAEXZtABF2bgARdnAAEXZyABF2cwARdnQAEXZ2ABF2dwARdvIAEXb0ABF29gARdvgAEXb7ABF2/AARdv0AEXb+ABF2/wARdwEAEXcDABF3BAARdwUAEXcHABF3CAARd4MAEXeFABF3hwARd4kAEXeMABF3jQARd44AEXePABF3kAARd5IAEXeUABF3lQARd5YAEXeYABF3mQAReBQAEXgWABF4GAAReBoAEXgdABF4HgAReB8AEXggABF4IQAReCMAEXglABF4JgAReCcAEXgpABF4KgAReKUAEXinABF4qQAReKsAEXiuABF4rwAReLAAEXixABF4sgAReLQAEXi2ABF4twAReLgAEXi6ABF4uwAReQQAEXkoABF5TwAReXMAEXl2ABF5eAAReXoAEXl8ABF5fgAReYAAEXmBABF5hAAReZ0AEXm6ABF5vAAReb4AEXnAABF5wgARecQAEXnGABF5yAAReeUAEXnoABF56wARee4AEXnxABF59AARefcAEXn6ABF5/AARencAEXp5ABF6ewARen0AEXqAABF6gQAReoIAEXqDABF6hAAReoYAEXqIABF6iQAReooAEXqMABF6jQARewgAEXsKABF7DAARew4AEXsRABF7EgARexMAEXsUABF7FQARexcAEXsZABF7GgARexsAEXsdABF7HgARe5kAEXubABF7nQARe58AEXuiABF7owARe6QAEXulABF7pgARe6gAEXuqABF7qwARe6wAEXuuABF7rwARfCoAEXwsABF8LwARfDEAEXw0ABF8NQARfDYAEXw3ABF8OAARfDoAEXw8ABF8PQARfD4AEXxAABF8QQARfLwAEXy+ABF8wAARfMIAEXzFABF8xgARfMcAEXzIABF8yQARfMsAEXzNABF8zgARfM8AEXzRABF80gARfU0AEX1PABF9UQARfVMAEX1WABF9VwARfVgAEX1ZABF9WgARfVwAEX1eABF9XwARfWAAEX1iABF9YwARfd4AEX3gABF94wARfeUAEX3oABF96QARfeoAEX3rABF97AARfe4AEX3wABF98QARffIAEX30ABF99QARfgYAEX4HABF+CQARfoQAEX6GABF+iAARfooAEX6NABF+jgARfo8AEX6QABF+kQARfpMAEX6VABF+lgARfpcAEX6ZABF+mgARfxUAEX8XABF/GQARfxsAEX8eABF/HwARfyAAEX8hABF/IgARfyQAEX8mABF/JwARfygAEX8qABF/KwARf6YAEX+oABF/qwARf60AEX+wABF/sQARf7IAEX+zABF/tAARf7YAEX+4ABF/uQARf7oAEX+8ABF/vQARgFAAEYBzABGAkwARgLMAEYC1ABGAtwARgLkAEYC7ABGAvgARgL8AEYDAABGAwwARgMQAEYDGABGAxwARgMkAEYDMABGAzQARgM4AEYDRABGA0gARgNcAEYDwABGA+QARgPsAEYD9ABGBBgARgQkAEYEMABGBDgARgVcAEYF7ABGBogARgcYAEYHJABGBywARgc0AEYHPABGB0QARgdMAEYHUABGB1wARgfAAEYIRABGCEwARghUAEYIXABGCGQARghsAEYIdABGCHwARgiEAEYJCABGCRQARgkgAEYJLABGCTgARglEAEYJUABGCVwARgloAEYJcABGC1wARgtkAEYLbABGC3QARguAAEYLhABGC4gARguMAEYLkABGC5gARgugAEYLpABGC6gARguwAEYLtABGDaAARg2oAEYNsABGDbgARg3EAEYNyABGDcwARg3QAEYN1ABGDdwARg3kAEYN6ABGDewARg30AEYN+ABGD+QARg/sAEYP+ABGEAAARhAMAEYQEABGEBQARhAYAEYQHABGECQARhAsAEYQMABGEDQARhA8AEYQQABGEKQARhCoAEYQrABGELQARhKgAEYSqABGErAARhK4AEYSxABGEsgARhLMAEYS0ABGEtQARhLcAEYS5ABGEugARhLsAEYS9ABGEvgARhTkAEYU7ABGFPQARhT8AEYVCABGFQwARhUQAEYVFABGFRgARhUgAEYVKABGFSwARhUwAEYVOABGFTwARhcoAEYXMABGFzgARhdAAEYXTABGF1AARhdUAEYXWABGF1wARhdkAEYXbABGF3AARhd0AEYXfABGF4AARhlsAEYZdABGGXwARhmEAEYZkABGGZQARhmYAEYZnABGGaAARhmoAEYZsABGGbQARhm4AEYZwABGGcQARhuwAEYbuABGG8AARhvIAEYb1ABGG9gARhvcAEYb4ABGG+QARhvsAEYb9ABGG/gARhv8AEYcBABGHAgARh0sAEYdvABGHlgARh7oAEYe9ABGHvwARh8EAEYfDABGHxQARh8cAEYfIABGHywARh+QAEYgBABGIAwARiAUAEYgHABGICQARiAsAEYgNABGIDwARiCwAEYgvABGIMgARiDUAEYg4ABGIOwARiD4AEYhBABGIQwARiL4AEYjAABGIwgARiMQAEYjHABGIyAARiMkAEYjKABGIywARiM0AEYjPABGI0AARiNEAEYjTABGI1AARiU8AEYlRABGJUwARiVUAEYlYABGJWQARiVoAEYlbABGJXAARiV4AEYlgABGJYQARiWIAEYlkABGJZQARieAAEYniABGJ5AARieYAEYnpABGJ6gARiesAEYnsABGJ7QARie8AEYnxABGJ8gARifMAEYn1ABGJ9gARinEAEYpzABGKdgARingAEYp7ABGKfAARin0AEYp+ABGKfwARioEAEYqDABGKhAARioUAEYqHABGKiAARiwMAEYsFABGLBwARiwkAEYsMABGLDQARiw4AEYsPABGLEAARixIAEYsUABGLFQARixYAEYsYABGLGQARi5QAEYuWABGLmAARi5oAEYudABGLngARi58AEYugABGLoQARi6MAEYulABGLpgARi6cAEYupABGLqgARjCUAEYwnABGMKQARjCsAEYwuABGMLwARjDAAEYwxABGMMgARjDQAEYw2ABGMNwARjDgAEYw6ABGMOwARjM4AEYzxABGNEQARjTEAEY0zABGNNQARjTcAEY05ABGNPAARjT0AEY0+ABGNQQARjUIAEY1EABGNRQARjUgAEY1LABGNTAARjU0AEY1QABGNUQARjVYAEY1vABGNeAARjXoAEY18ABGNhQARjYgAEY2LABGNjQARjdYAEY36ABGOIQARjkUAEY5IABGOSgARjkwAEY5OABGOUAARjlIAEY5TABGOVgARjm8AEY6QABGOkgARjpQAEY6WABGOmAARjpoAEY6cABGOngARjqAAEY7BABGOxAARjscAEY7KABGOzQARjtAAEY7TABGO1gARjtkAEY7bABGPVgARj1gAEY9aABGPXAARj18AEY9gABGPYQARj2IAEY9jABGPZQARj2cAEY9oABGPaQARj2sAEY9sABGP5wARj+kAEY/rABGP7QARj/AAEY/xABGP8gARj/MAEY/0ABGP9gARj/gAEY/5ABGP+gARj/wAEY/9ABGQeAARkHoAEZB9ABGQfwARkIIAEZCDABGQhAARkIUAEZCGABGQiAARkIoAEZCLABGQjAARkI4AEZCPABGQqAARkKkAEZCqABGQrAARkScAEZEpABGRKwARkS0AEZEwABGRMQARkTIAEZEzABGRNAARkTYAEZE4ABGROQARkToAEZE8ABGRPQARkbgAEZG6ABGRvAARkb4AEZHBABGRwgARkcMAEZHEABGRxQARkccAEZHJABGRygARkcsAEZHNABGRzgARkkkAEZJLABGSTQARkk8AEZJSABGSUwARklQAEZJVABGSVgARklgAEZJaABGSWwARklwAEZJeABGSXwARktoAEZLcABGS3gARkuAAEZLjABGS5AARkuUAEZLmABGS5wARkukAEZLrABGS7AARku0AEZLvABGS8AARk2sAEZNtABGTbwARk3EAEZN0ABGTdQARk3YAEZN3ABGTeAARk3oAEZN8ABGTfQARk34AEZOAABGTgQARk8oAEZPuABGUFQARlDkAEZQ8ABGUPgARlEAAEZRCABGURAARlEYAEZRHABGUSgARlGMAEZSAABGUggARlIQAEZSGABGUiAARlIoAEZSMABGUjgARlKsAEZSuABGUsQARlLQAEZS3ABGUugARlL0AEZTAABGUwgARlT0AEZU/ABGVQQARlUMAEZVGABGVRwARlUgAEZVJABGVSgARlUwAEZVOABGVTwARlVAAEZVSABGVUwARlc4AEZXQABGV0wARldUAEZXYABGV2QARldoAEZXbABGV3AARld4AEZXgABGV4QARleIAEZXkABGV5QARlmAAEZZiABGWZAARlmYAEZZpABGWagARlmsAEZZsABGWbQARlm8AEZZxABGWcgARlnMAEZZ1ABGWdgARlvEAEZbzABGW9gARlvgAEZb7ABGW/AARlv0AEZb+ABGW/wARlwEAEZcDABGXBAARlwUAEZcHABGXCAARl4MAEZeFABGXhwARl4kAEZeMABGXjQARl44AEZePABGXkAARl5IAEZeUABGXlQARl5YAEZeYABGXmQARmBQAEZgWABGYGAARmBoAEZgdABGYHgARmB8AEZggABGYIQARmCMAEZglABGYJgARmCcAEZgpABGYKgARmKUAEZinABGYqgARmKwAEZivABGYsAARmLEAEZiyABGYswARmLUAEZi3ABGYuAARmLkAEZi7ABGYvAARmU8AEZlyABGZkgARmbIAEZm0ABGZtgARmbgAEZm6ABGZvQARmb4AEZm/ABGZwgARmcMAEZnFABGZxgARmcgAEZnLABGZzAARmc0AEZnQABGZ0QARmdYAEZnvABGZ+AARmfoAEZn8ABGaBQARmggAEZoLABGaDQARmlYAEZp6ABGaoQARmsUAEZrIABGaygARmswAEZrOABGa0AARmtIAEZrTABGa1gARmu8AEZsQABGbEgARmxQAEZsWABGbGAARmxoAEZscABGbHgARmyAAEZtBABGbRAARm0cAEZtKABGbTQARm1AAEZtTABGbVgARm1kAEZtbABGb1gARm9gAEZvaABGb3AARm98AEZvgABGb4QARm+IAEZvjABGb5QARm+cAEZvoABGb6QARm+sAEZvsABGcZwARnGkAEZxrABGcbQARnHAAEZxxABGccgARnHMAEZx0ABGcdgARnHgAEZx5ABGcegARnHwAEZx9ABGc+AARnPoAEZz9ABGc/wARnQIAEZ0DABGdBAARnQUAEZ0GABGdCAARnQoAEZ0LABGdDAARnQ4AEZ0PABGdKAARnSkAEZ0qABGdLAARnacAEZ2pABGdqwARna0AEZ2wABGdsQARnbIAEZ2zABGdtAARnbYAEZ24ABGduQARnboAEZ28ABGdvQARnjgAEZ46ABGePAARnj4AEZ5BABGeQgARnkMAEZ5EABGeRQARnkcAEZ5JABGeSgARnksAEZ5NABGeTgARnskAEZ7LABGezQARns8AEZ7SABGe0wARntQAEZ7VABGe1gARntgAEZ7aABGe2wARntwAEZ7eABGe3wARn1oAEZ9cABGfXgARn2AAEZ9jABGfZAARn2UAEZ9mABGfZwARn2kAEZ9rABGfbAARn20AEZ9vABGfcAARn+sAEZ/tABGf7wARn/EAEZ/0ABGf9QARn/YAEZ/3ABGf+AARn/oAEZ/8ABGf/QARn/4AEaAAABGgAQARoEoAEaBuABGglQARoLkAEaC8ABGgvgARoMAAEaDCABGgxAARoMYAEaDHABGgygARoOMAEaEAABGhAgARoQQAEaEGABGhCAARoQoAEaEMABGhDgARoSsAEaEuABGhMQARoTQAEaE3ABGhOgARoT0AEaFAABGhQgARob0AEaG/ABGhwQARocMAEaHGABGhxwARocgAEaHJABGhygARocwAEaHOABGhzwARodAAEaHSABGh0wARok4AEaJQABGiUgARolQAEaJXABGiWAARolkAEaJaABGiWwARol0AEaJfABGiYAARomEAEaJjABGiZAARot8AEaLhABGi5AARouYAEaLpABGi6gARousAEaLsABGi7QARou8AEaLxABGi8gARovMAEaL1ABGi9gARo3EAEaNzABGjdgARo3gAEaN7ABGjfAARo30AEaN+ABGjfwARo4EAEaODABGjhAARo4UAEaOHABGjiAARpAMAEaQFABGkBwARpAkAEaQMABGkDQARpA4AEaQPABGkEAARpBIAEaQUABGkFQARpBYAEaQYABGkGQARpJQAEaSWABGkmAARpJoAEaSdABGkngARpJ8AEaSgABGkoQARpKMAEaSlABGkpgARpKcAEaSpABGkqgARpSUAEaUnABGlKQARpSsAEaUuABGlLwARpTAAEaUxABGlMgARpTQAEaU2ABGlNwARpTgAEaU6ABGlOwARpc4AEaXxABGmEQARpjEAEaYzABGmNQARpjcAEaY5ABGmPAARpj0AEaY+ABGmQQARpkIAEaZEABGmRQARpkcAEaZKABGmSwARpkwAEaZPABGmUAARplUAEaZuABGmdwARpnkAEaZ7ABGmhAARpocAEaaKABGmjAARptUAEab5ABGnIAARp0QAEadHABGnSQARp0sAEadNABGnTwARp1EAEadSABGnVQARp24AEaePABGnkQARp5MAEaeVABGnlwARp5kAEaebABGnnQARp58AEafAABGnwwARp8YAEafJABGnzAARp88AEafSABGn1QARp9gAEafaABGoVQARqFcAEahZABGoWwARqF4AEahfABGoYAARqGEAEahiABGoZAARqGYAEahnABGoaAARqGoAEahrABGo5gARqOgAEajqABGo7AARqO8AEajwABGo8QARqPIAEajzABGo9QARqPcAEaj4ABGo+QARqPsAEaj8ABGpdwARqXkAEal8ABGpfgARqYEAEamCABGpgwARqYQAEamFABGphwARqYkAEamKABGpiwARqY0AEamOABGppwARqagAEampABGpqwARqiYAEaooABGqKgARqiwAEaovABGqMAARqjEAEaoyABGqMwARqjUAEao3ABGqOAARqjkAEao7ABGqPAARqrcAEaq5ABGquwARqr0AEarAABGqwQARqsIAEarDABGqxAARqsYAEarIABGqyQARqsoAEarMABGqzQARq0gAEatKABGrTAARq04AEatRABGrUgARq1MAEatUABGrVQARq1cAEatZABGrWgARq1sAEatdABGrXgARq9kAEavbABGr3QARq98AEaviABGr4wARq+QAEavlABGr5gARq+gAEavqABGr6wARq+wAEavuABGr7wARrGoAEaxsABGsbgARrHAAEaxzABGsdAARrHUAEax2ABGsdwARrHkAEax7ABGsfAARrH0AEax/ABGsgAARrMkAEaztABGtFAARrTgAEa07ABGtPQARrT8AEa1BABGtQwARrUUAEa1GABGtSQARrWIAEa1/ABGtgQARrYMAEa2FABGthwARrYkAEa2LABGtjQARraoAEa2tABGtsAARrbMAEa22ABGtuQARrbwAEa2/ABGtwQARrjwAEa4+ABGuQAARrkIAEa5FABGuRgARrkcAEa5IABGuSQARrksAEa5NABGuTgARrk8AEa5RABGuUgARrs0AEa7PABGu0QARrtMAEa7WABGu1wARrtgAEa7ZABGu2gARrtwAEa7eABGu3wARruAAEa7iABGu4wARr14AEa9gABGvYgARr2QAEa9nABGvaAARr2kAEa9qABGvawARr20AEa9vABGvcAARr3EAEa9zABGvdAARr+8AEa/xABGv8wARr/UAEa/4ABGv+QARr/oAEa/7ABGv/AARr/4AEbAAABGwAQARsAIAEbAEABGwBQARsIAAEbCCABGwhAARsIYAEbCJABGwigARsIsAEbCMABGwjQARsI8AEbCRABGwkgARsJMAEbCVABGwlgARsREAEbETABGxFgARsRgAEbEbABGxHAARsR0AEbEeABGxHwARsSEAEbEjABGxJAARsSUAEbEnABGxKAARsUcAEbHCABGxxAARscYAEbHIABGxywARscwAEbHNABGxzgARsc8AEbHRABGx0wARsdQAEbHVABGx1wARsdgAEbJrABGyjgARsq4AEbLOABGy0AARstIAEbLUABGy1gARstkAEbLaABGy2wARst4AEbLfABGy4QARsuIAEbLkABGy5wARsugAEbLpABGy7AARsu0AEbLyABGzCwARsxQAEbMWABGzGAARsyEAEbMkABGzJwARsykAEbNyABGzlgARs70AEbPhABGz5AARs+YAEbPoABGz6gARs+wAEbPuABGz7wARs/IAEbQLABG0LAARtC4AEbQwABG0MgARtDQAEbQ2ABG0OAARtDoAEbQ8ABG0XQARtGAAEbRjABG0ZgARtGkAEbRsABG0bwARtHIAEbR1ABG0dwARtPIAEbT0ABG09gARtPgAEbT7ABG0/AARtP0AEbT+ABG0/wARtQEAEbUDABG1BAARtQUAEbUHABG1CAARtYMAEbWFABG1hwARtYkAEbWMABG1jQARtY4AEbWPABG1kAARtZIAEbWUABG1lQARtZYAEbWYABG1mQARthQAEbYWABG2GQARthsAEbYeABG2HwARtiAAEbYhABG2IgARtiQAEbYmABG2JwARtigAEbYqABG2KwARtkQAEbZFABG2RgARtkgAEbbDABG2xQARtscAEbbJABG2zAARts0AEbbOABG2zwARttAAEbbSABG21AARttUAEbbWABG22AARttkAEbdUABG3VgARt1gAEbdaABG3XQARt14AEbdfABG3YAARt2EAEbdjABG3ZQARt2YAEbdnABG3aQARt2oAEbflABG35wARt+kAEbfrABG37gARt+8AEbfwABG38QARt/IAEbf0ABG39gARt/cAEbf4ABG3+gARt/sAEbh2ABG4eAARuHoAEbh8ABG4fwARuIAAEbiBABG4ggARuIMAEbiFABG4hwARuIgAEbiJABG4iwARuIwAEbkHABG5CQARuQsAEbkNABG5EAARuREAEbkSABG5EwARuRQAEbkWABG5GAARuRkAEbkaABG5HAARuR0AEblmABG5igARubEAEbnVABG52AARudoAEbncABG53gARueAAEbniABG54wARueYAEbn/ABG6HAARuh4AEbogABG6IgARuiQAEbomABG6KAARuioAEbpHABG6SgARuk0AEbpQABG6UwARulYAEbpZABG6XAARul4AEbrZABG62wARut0AEbrfABG64gARuuMAEbrkABG65QARuuYAEbroABG66gARuusAEbrsABG67gARuu8AEbtqABG7bAARu24AEbtwABG7cwARu3QAEbt1ABG7dgARu3cAEbt5ABG7ewARu3wAEbt9ABG7fwARu4AAEbv7ABG7/QARu/8AEbwBABG8BAARvAUAEbwGABG8BwARvAgAEbwKABG8DAARvA0AEbwOABG8EAARvBEAEbyMABG8jgARvJEAEbyTABG8lgARvJcAEbyYABG8mQARvJoAEbycABG8ngARvJ8AEbygABG8ogARvKMAEb0eABG9IAARvSIAEb0kABG9JwARvSgAEb0pABG9KgARvSsAEb0tABG9LwARvTAAEb0xABG9MwARvTQAEb2vABG9sQARvbMAEb21ABG9uAARvbkAEb26ABG9uwARvbwAEb2+ABG9wAARvcEAEb3CABG9xAARvcUAEb5AABG+QgARvkQAEb5GABG+SQARvkoAEb5LABG+TAARvk0AEb5PABG+UQARvlIAEb5TABG+VQARvlYAEb7pABG/DAARvywAEb9MABG/TgARv1AAEb9SABG/VAARv1cAEb9YABG/WQARv1wAEb9dABG/XwARv2AAEb9iABG/ZQARv2YAEb9nABG/agARv2sAEb9wABG/iQARv5IAEb+UABG/lgARv58AEb+iABG/pQARv6cAEb/wABHAFAARwDsAEcBfABHAYgARwGQAEcBmABHAaAARwGoAEcBsABHAbQARwHAAEcCJABHAqgARwKwAEcCuABHAsAARwLIAEcC0ABHAtgARwLgAEcC6ABHA2wARwN4AEcDhABHA5AARwOcAEcDqABHA7QARwPAAEcDzABHA9QARwXAAEcFyABHBdAARwXYAEcF5ABHBegARwXsAEcF8ABHBfQARwX8AEcGBABHBggARwYMAEcGFABHBhgARwgEAEcIDABHCBQARwgcAEcIKABHCCwARwgwAEcINABHCDgARwhAAEcISABHCEwARwhQAEcIWABHCFwARwpIAEcKUABHClwARwpkAEcKcABHCnQARwp4AEcKfABHCoAARwqIAEcKkABHCpQARwqYAEcKoABHCqQARwsIAEcLDABHCxAARwsYAEcNBABHDQwARw0UAEcNHABHDSgARw0sAEcNMABHDTQARw04AEcNQABHDUgARw1MAEcNUABHDVgARw1cAEcPSABHD1AARw9YAEcPYABHD2wARw9wAEcPdABHD3gARw98AEcPhABHD4wARw+QAEcPlABHD5wARw+gAEcRjABHEZQARxGcAEcRpABHEbAARxG0AEcRuABHEbwARxHAAEcRyABHEdAARxHUAEcR2ABHEeAARxHkAEcT0ABHE9gARxPgAEcT6ABHE/QARxP4AEcT/ABHFAAARxQEAEcUDABHFBQARxQYAEcUHABHFCQARxQoAEcWFABHFhwARxYkAEcWLABHFjgARxY8AEcWQABHFkQARxZIAEcWUABHFlgARxZcAEcWYABHFmgARxZsAEcXkABHGCAARxi8AEcZTABHGVgARxlgAEcZaABHGXAARxl4AEcZgABHGYQARxmQAEcZ9ABHGmgARxpwAEcaeABHGoAARxqIAEcakABHGpgARxqgAEcbFABHGyAARxssAEcbOABHG0QARxtQAEcbXABHG2gARxtwAEcdXABHHWQARx1sAEcddABHHYAARx2EAEcdiABHHYwARx2QAEcdmABHHaAARx2kAEcdqABHHbAARx20AEcfoABHH6gARx+wAEcfuABHH8QARx/IAEcfzABHH9AARx/UAEcf3ABHH+QARx/oAEcf7ABHH/QARx/4AEch5ABHIewARyH0AEch/ABHIggARyIMAEciEABHIhQARyIYAEciIABHIigARyIsAEciMABHIjgARyI8AEckKABHJDAARyQ4AEckQABHJEwARyRQAEckVABHJFgARyRcAEckZABHJGwARyRwAEckdABHJHwARySAAEcmbABHJnQARyZ8AEcmhABHJpAARyaUAEcmmABHJpwARyagAEcmqABHJrAARya0AEcmuABHJsAARybEAEcosABHKLgARyjAAEcoyABHKNQARyjYAEco3ABHKOAARyjkAEco7ABHKPQARyj4AEco/ABHKQQARykIAEcq9ABHKvwARysEAEcrDABHKxgARyscAEcrIABHKyQARysoAEcrMABHKzgARys8AEcrQABHK0gARytMAEctmABHLiQARy6kAEcvJABHLywARy80AEcvPABHL0QARy9QAEcvVABHL1gARy9kAEcvaABHL3AARy90AEcvfABHL4gARy+MAEcvkABHL5wARy+gAEcvtABHMBgARzA8AEcwRABHMEwARzBwAEcwfABHMIgARzCQAEcxtABHMkQARzLgAEczcABHM3wARzOEAEczjABHM5QARzOcAEczpABHM6gARzO0AEc0GABHNJwARzSkAEc0rABHNLQARzS8AEc0xABHNMwARzTUAEc03ABHNWAARzVsAEc1eABHNYQARzWQAEc1nABHNagARzW0AEc1wABHNcgARze0AEc3vABHN8QARzfMAEc32ABHN9wARzfgAEc35ABHN+gARzfwAEc3+ABHN/wARzgAAEc4CABHOAwARzn4AEc6AABHOggARzoQAEc6HABHOiAARzokAEc6KABHOiwARzo0AEc6PABHOkAARzpEAEc6TABHOlAARzw8AEc8RABHPFAARzxYAEc8ZABHPGgARzxsAEc8cABHPHQARzx8AEc8hABHPIgARzyMAEc8lABHPJgARzz8AEc9AABHPQQARz0MAEc++ABHPwAARz8IAEc/EABHPxwARz8gAEc/JABHPygARz8sAEc/NABHPzwARz9AAEc/RABHP0wARz9QAEdBPABHQUQAR0FMAEdBVABHQWAAR0FkAEdBaABHQWwAR0FwAEdBeABHQYAAR0GEAEdBiABHQZAAR0GUAEdDgABHQ4gAR0OQAEdDmABHQ6QAR0OoAEdDrABHQ7AAR0O0AEdDvABHQ8QAR0PIAEdDzABHQ9QAR0PYAEdFxABHRcwAR0XUAEdF3ABHRegAR0XsAEdF8ABHRfQAR0X4AEdGAABHRggAR0YMAEdGEABHRhgAR0YcAEdICABHSBAAR0gYAEdIIABHSCwAR0gwAEdINABHSDgAR0g8AEdIRABHSEwAR0hQAEdIVABHSFwAR0hgAEdJhABHShQAR0qwAEdLQABHS0wAR0tUAEdLXABHS2QAR0tsAEdLdABHS3gAR0uEAEdL6ABHTFwAR0xkAEdMbABHTHQAR0x8AEdMhABHTIwAR0yUAEdNCABHTRQAR00gAEdNLABHTTgAR01EAEdNUABHTVwAR01kAEdPUABHT1gAR09gAEdPaABHT3QAR094AEdPfABHT4AAR0+EAEdPjABHT5QAR0+YAEdPnABHT6QAR0+oAEdRlABHUZwAR1GkAEdRrABHUbgAR1G8AEdRwABHUcQAR1HIAEdR0ABHUdgAR1HcAEdR4ABHUegAR1HsAEdT2ABHU+AAR1PoAEdT8ABHU/wAR1QAAEdUBABHVAgAR1QMAEdUFABHVBwAR1QgAEdUJABHVCwAR1QwAEdWHABHViQAR1YwAEdWOABHVkQAR1ZIAEdWTABHVlAAR1ZUAEdWXABHVmQAR1ZoAEdWbABHVnQAR1Z4AEdYZABHWGwAR1h0AEdYfABHWIgAR1iMAEdYkABHWJQAR1iYAEdYoABHWKgAR1isAEdYsABHWLgAR1i8AEdaqABHWrAAR1q4AEdawABHWswAR1rQAEda1ABHWtgAR1rcAEda5ABHWuwAR1rwAEda9ABHWvwAR1sAAEdc7ABHXPQAR1z8AEddBABHXRAAR10UAEddGABHXRwAR10gAEddKABHXTAAR100AEddOABHXUAAR11EAEdfkABHYBwAR2CcAEdhHABHYSQAR2EsAEdhNABHYTwAR2FIAEdhTABHYVAAR2FcAEdhYABHYWgAR2FsAEdhdABHYYAAR2GEAEdhiABHYZQAR2GYAEdhrABHYhAAR2I0AEdiPABHYkQAR2JoAEdidABHYoAAR2KIAEdjrABHZDwAR2TYAEdlaABHZXQAR2V8AEdlhABHZYwAR2WUAEdlnABHZaAAR2WsAEdmEABHZpQAR2acAEdmpABHZqwAR2a0AEdmvABHZsQAR2bMAEdm1ABHZ1gAR2dkAEdncABHZ3wAR2eIAEdnlABHZ6AAR2esAEdnuABHZ8AAR2msAEdptABHabwAR2nEAEdp0ABHadQAR2nYAEdp3ABHaeAAR2noAEdp8ABHafQAR2n4AEdqAABHagQAR2vwAEdr+ABHbAAAR2wIAEdsFABHbBgAR2wcAEdsIABHbCQAR2wsAEdsNABHbDgAR2w8AEdsRABHbEgAR240AEduPABHbkgAR25QAEduXABHbmAAR25kAEduaABHbmwAR250AEdufABHboAAR26EAEdujABHbpAAR270AEdu+ABHbvwAR28EAEdw8ABHcPgAR3EAAEdxCABHcRQAR3EYAEdxHABHcSAAR3EkAEdxLABHcTQAR3E4AEdxPABHcUQAR3FIAEdzNABHczwAR3NEAEdzTABHc1gAR3NcAEdzYABHc2QAR3NoAEdzcABHc3gAR3N8AEdzgABHc4gAR3OMAEd1eABHdYAAR3WIAEd1kABHdZwAR3WgAEd1pABHdagAR3WsAEd1tABHdbwAR3XAAEd1xABHdcwAR3XQAEd3vABHd8QAR3fMAEd31ABHd+AAR3fkAEd36ABHd+wAR3fwAEd3+ABHeAAAR3gEAEd4CABHeBAAR3gUAEd6AABHeggAR3oQAEd6GABHeiQAR3ooAEd6LABHejAAR3o0AEd6PABHekQAR3pIAEd6TABHelQAR3pYAEd7fABHfAwAR3yoAEd9OABHfUQAR31MAEd9VABHfVwAR31kAEd9bABHfXAAR318AEd94ABHflQAR35cAEd+ZABHfmwAR350AEd+fABHfoQAR36MAEd/AABHfwwAR38YAEd/JABHfzAAR388AEd/SABHf1QAR39cAEeBSABHgVAAR4FYAEeBYABHgWwAR4FwAEeBdABHgXgAR4F8AEeBhABHgYwAR4GQAEeBlABHgZwAR4GgAEeDjABHg5QAR4OcAEeDpABHg7AAR4O0AEeDuABHg7wAR4PAAEeDyABHg9AAR4PUAEeD2ABHg+AAR4PkAEeF0ABHhdgAR4XgAEeF6ABHhfQAR4X4AEeF/ABHhgAAR4YEAEeGDABHhhQAR4YYAEeGHABHhiQAR4YoAEeIFABHiBwAR4gkAEeILABHiDgAR4g8AEeIQABHiEQAR4hIAEeIUABHiFgAR4hcAEeIYABHiGgAR4hsAEeKWABHimAAR4poAEeKcABHinwAR4qAAEeKhABHiogAR4qMAEeKlABHipwAR4qgAEeKpABHiqwAR4qwAEeMnABHjKQAR4ysAEeMtABHjMAAR4zEAEeMyABHjMwAR4zQAEeM2ABHjOAAR4zkAEeM6ABHjPAAR4z0AEeO4ABHjugAR47wAEeO+ABHjwQAR48IAEePDABHjxAAR48UAEePHABHjyQAR48oAEePLABHjzQAR484AEeRhABHkhAAR5KQAEeTEABHkxgAR5MgAEeTKABHkzAAR5M8AEeTQABHk0QAR5NQAEeTVABHk1wAR5NgAEeTaABHk3QAR5N4AEeTfABHk4gAR5OMAEeToABHlAQAR5QoAEeUMABHlDgAR5RcAEeUaABHlHQAR5R8AEeVoABHljAAR5bMAEeXXABHl2gAR5dwAEeXeABHl4AAR5eIAEeXkABHl5QAR5egAEeYBABHmIgAR5iQAEeYmABHmKAAR5ioAEeYsABHmLgAR5jAAEeYyABHmUwAR5lYAEeZZABHmXAAR5l8AEeZiABHmZQAR5mgAEeZrABHmbQAR5ugAEebqABHm7AAR5u4AEebxABHm8gAR5vMAEeb0ABHm9QAR5vcAEeb5ABHm+gAR5vsAEeb9ABHm/gAR53kAEed7ABHnfQAR538AEeeCABHngwAR54QAEeeFABHnhgAR54gAEeeKABHniwAR54wAEeeOABHnjwAR6AoAEegMABHoDwAR6BEAEegUABHoFQAR6BYAEegXABHoGAAR6BoAEegcABHoHQAR6B4AEeggABHoIQAR6DoAEeg7ABHoPAAR6D4AEei5ABHouwAR6L0AEei/ABHowgAR6MMAEejEABHoxQAR6MYAEejIABHoygAR6MsAEejMABHozgAR6M8AEelKABHpTAAR6U4AEelQABHpUwAR6VQAEelVABHpVgAR6VcAEelZABHpWwAR6VwAEeldABHpXwAR6WAAEenbABHp3QAR6d8AEenhABHp5AAR6eUAEenmABHp5wAR6egAEenqABHp7AAR6e0AEenuABHp8AAR6fEAEep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xABH7sgAR+7MAEfu1ABH7twAR+7gAEfu5ABH7uwAR+7wAEfw3ABH8OQAR/DsAEfw9ABH8QAAR/EEAEfxCABH8QwAR/EQAEfxGABH8SAAR/EkAEfxKABH8TAAR/E0AEfzIABH8ygAR/MwAEfzOABH80QAR/NIAEfzTABH81AAR/NUAEfzXABH82QAR/NoAEfzbABH83QAR/N4AEf1ZABH9WwAR/V0AEf1fABH9YgAR/WMAEf1kABH9ZQAR/WYAEf1oABH9agAR/WsAEf1sABH9bgAR/W8AEf3qABH97AAR/e4AEf3wABH98wAR/fQAEf31ABH99gAR/fcAEf35ABH9+wAR/fwAEf39ABH9/wAR/gAAEf57ABH+fQAR/n8AEf6BABH+hAAR/oUAEf6GABH+hwAR/ogAEf6KABH+jAAR/o0AEf6OABH+kAAR/pEAEf8kABH/RwAR/2cAEf+HABH/iQAR/4sAEf+NABH/jwAR/5IAEf+TABH/lAAR/5cAEf+YABH/mgAR/5sAEf+eABH/oQAR/6IAEf+jABH/pgAR/6cAEf+wABH/yQAR/9IAEf/UABH/1gAR/98AEf/iABH/5QAR/+cAEgAwABIAVAASAHsAEgCfABIAogASAKQAEgCmABIAqAASAKoAEgCsABIArQASALAAEgDJABIA6gASAOwAEgDuABIA8AASAPIAEgD0ABIA9gASAPgAEgD6ABIBGwASAR4AEgEhABIBJAASAScAEgEqABIBLQASATAAEgEzABIBNQASAbAAEgGyABIBtAASAbYAEgG5ABIBugASAbsAEgG8ABIBvQASAb8AEgHBABIBwgASAcMAEgHFABIBxgASAkEAEgJDABICRQASAkcAEgJKABICSwASAkwAEgJNABICTgASAlAAEgJSABICUwASAlQAEgJWABICVwASAtIAEgLUABIC1wASAtkAEgLcABIC3QASAt4AEgLfABIC4AASAuIAEgLkABIC5QASAuYAEgLoABIC6QASAwIAEgMDABIDBAASAwYAEgOBABIDgwASA4UAEgOHABIDigASA4sAEgOMABIDjQASA44AEgOQABIDkgASA5MAEgOUABIDlgASA5cAEgQSABIEFAASBBYAEgQYABIEGwASBBwAEgQdABIEHgASBB8AEgQhABIEIwASBCQAEgQlABIEJwASBCgAEgSjABIEpQASBKcAEgSpABIErAASBK0AEgSuABIErwASBLAAEgSyABIEtAASBLUAEgS2ABIEuAASBLkAEgU0ABIFNgASBTgAEgU6ABIFPQASBT4AEgU/ABIFQAASBUEAEgVDABIFRQASBUYAEgVHABIFSQASBUoAEgXFABIFxwASBckAEgXLABIFzgASBc8AEgXQABIF0QASBdIAEgXUABIF1gASBdcAEgXYABIF2gASBdsAEgYkABIGSAASBm8AEgaTABIGlgASBpgAEgaaABIGnAASBp4AEgagABIGoQASBqQAEga9ABIG2gASBtwAEgbeABIG4AASBuIAEgbkABIG5gASBugAEgcFABIHCAASBwsAEgcOABIHEQASBxQAEgcXABIHGgASBxwAEgeXABIHmQASB5sAEgedABIHoAASB6EAEgeiABIHowASB6QAEgemABIHqAASB6kAEgeqABIHrAASB60AEggoABIIKgASCCwAEgguABIIMQASCDIAEggzABIINAASCDUAEgg3ABIIOQASCDoAEgg7ABIIPQASCD4AEgi5ABIIuwASCL0AEgi/ABIIwgASCMMAEgjEABIIxQASCMYAEgjIABIIygASCMsAEgjMABIIzgASCM8AEglKABIJTAASCU4AEglQABIJUwASCVQAEglVABIJVgASCVcAEglZABIJWwASCVwAEgldABIJXwASCWAAEgnbABIJ3QASCd8AEgnhABIJ5AASCeUAEgnmABIJ5wASCegAEgnqABIJ7AASCe0AEgnuABIJ8AASCfEAEgpsABIKbgASCnAAEgpyABIKdQASCnYAEgp3ABIKeAASCnkAEgp7ABIKfQASCn4AEgp/ABIKgQASCoIAEgr9ABIK/wASCwIAEgsEABILBwASCwgAEgsJABILCgASCwsAEgsNABILDwASCxAAEgsRABILEwASCxQAEgunABILygASC+oAEgwKABIMDAASDA4AEgwQABIMEgASDBUAEgwWABIMFwASDBoAEgwbABIMHQASDB4AEgwgABIMIwASDCQAEgwlABIMKAASDCkAEgwuABIMRwASDFAAEgxSABIMVAASDF0AEgxgABIMYwASDGUAEgyuABIM0gASDPkAEg0dABINIAASDSIAEg0kABINJgASDSgAEg0qABINKwASDS4AEg1HABINaAASDWoAEg1sABINbgASDXAAEg1yABINdAASDXYAEg14ABINmQASDZwAEg2fABINogASDaUAEg2oABINqwASDa4AEg2xABINswASDi4AEg4wABIOMgASDjQAEg43ABIOOAASDjkAEg46ABIOOwASDj0AEg4/ABIOQAASDkEAEg5DABIORAASDr8AEg7BABIOwwASDsUAEg7IABIOyQASDsoAEg7LABIOzAASDs4AEg7QABIO0QASDtIAEg7UABIO1QASD1AAEg9SABIPVQASD1cAEg9aABIPWwASD1wAEg9dABIPXgASD2AAEg9iABIPYwASD2QAEg9mABIPZwASD4AAEg+BABIPggASD4QAEg//ABIQAQASEAMAEhAFABIQCAASEAkAEhAKABIQCwASEAwAEhAOABIQEAASEBEAEhASABIQFAASEBUAEhCQABIQkgASEJQAEhCWABIQmQASEJoAEhCbABIQnAASEJ0AEhCfABIQoQASEKIAEhCjABIQpQASEKYAEhEhABIRIwASESUAEhEnABIRKgASESsAEhEsABIRLQASES4AEhEwABIRMgASETMAEhE0ABIRNgASETcAEhGyABIRtAASEbYAEhG4ABIRuwASEbwAEhG9ABIRvgASEb8AEhHBABIRwwASEcQAEhHFABIRxwASEcgAEhJDABISRQASEkcAEhJJABISTAASEk0AEhJOABISTwASElAAEhJSABISVAASElUAEhJWABISWAASElkAEhKiABISxgASEu0AEhMRABITFAASExYAEhMYABITGgASExwAEhMeABITHwASEyIAEhM7ABITWAASE1oAEhNcABITXgASE2AAEhNiABITZAASE2YAEhODABIThgASE4kAEhOMABITjwASE5IAEhOVABITmAASE5oAEhQVABIUFwASFBkAEhQbABIUHgASFB8AEhQgABIUIQASFCIAEhQkABIUJgASFCcAEhQoABIUKgASFCsAEhSmABIUqAASFKoAEhSsABIUrwASFLAAEhSxABIUsgASFLMAEhS1ABIUtwASFLgAEhS5ABIUuwASFLwAEhU3ABIVOQASFTsAEhU9ABIVQAASFUEAEhVCABIVQwASFUQAEhVGABIVSAASFUkAEhVKABIVTAASFU0AEhXIABIVygASFcwAEhXOABIV0QASFdIAEhXTABIV1AASFdUAEhXXABIV2QASFdoAEhXbABIV3QASFd4AEhZZABIWWwASFl0AEhZfABIWYgASFmMAEhZkABIWZQASFmYAEhZoABIWagASFmsAEhZsABIWbgASFm8AEhbqABIW7AASFu4AEhbwABIW8wASFvQAEhb1ABIW9gASFvcAEhb5ABIW+wASFvwAEhb9ABIW/wASFwAAEhd7ABIXfQASF38AEheBABIXhAASF4UAEheGABIXhwASF4gAEheKABIXjAASF40AEheOABIXkAASF5EAEhgkABIYRwASGGcAEhiHABIYiQASGIsAEhiNABIYjwASGJIAEhiTABIYlAASGJcAEhiYABIYmgASGJsAEhidABIYoAASGKEAEhiiABIYpQASGKYAEhirABIYxAASGM0AEhjPABIY0QASGNoAEhjdABIY4AASGOIAEhkrABIZTwASGXYAEhmaABIZnQASGZ8AEhmhABIZowASGaUAEhmnABIZqAASGasAEhnEABIZ5QASGecAEhnpABIZ6wASGe0AEhnvABIZ8QASGfMAEhn1ABIaFgASGhkAEhocABIaHwASGiIAEholABIaKAASGisAEhouABIaMAASGqsAEhqtABIarwASGrEAEhq0ABIatQASGrYAEhq3ABIauAASGroAEhq8ABIavQASGr4AEhrAABIawQASGzwAEhs+ABIbQAASG0IAEhtFABIbRgASG0cAEhtIABIbSQASG0sAEhtNABIbTgASG08AEhtRABIbUgASG80AEhvPABIb0gASG9QAEhvXABIb2AASG9kAEhvaABIb2wASG90AEhvfABIb4AASG+EAEhvjABIb5AASG/0AEhv+ABIb/wASHAEAEhx8ABIcfgASHIAAEhyCABIchQASHIYAEhyHABIciAASHIkAEhyLABIcjQASHI4AEhyPABIckQASHJIAEh0NABIdDwASHREAEh0TABIdFgASHRcAEh0YABIdGQASHRoAEh0cABIdHgASHR8AEh0gABIdIgASHSMAEh2eABIdoAASHaIAEh2kABIdpwASHagAEh2pABIdqgASHasAEh2tABIdrwASHbAAEh2xABIdswASHbQAEh4vABIeMQASHjMAEh41ABIeOAASHjkAEh46ABIeOwASHjwAEh4+ABIeQAASHkEAEh5CABIeRAASHkUAEh7AABIewgASHsQAEh7GABIeyQASHsoAEh7LABIezAASHs0AEh7PABIe0QASHtIAEh7TABIe1QASHtYAEh8fABIfQwASH2oAEh+OABIfkQASH5MAEh+VABIflwASH5kAEh+bABIfnAASH58AEh+4ABIf1QASH9cAEh/ZABIf2wASH90AEh/fABIf4QASH+MAEiAAABIgAwASIAYAEiAJABIgDAASIA8AEiASABIgFQASIBcAEiCSABIglAASIJcAEiCZABIgnAASIJ0AEiCeABIgnwASIKAAEiCiABIgpAASIKUAEiCmABIgqAASIKkAEiCsABIhJwASISkAEiErABIhLQASITAAEiExABIhMgASITMAEiE0ABIhNgASITgAEiE5ABIhOgASITwAEiE9ABIhuAASIboAEiG8ABIhvgASIcEAEiHCABIhwwASIcQAEiHFABIhxwASIckAEiHKABIhywASIc0AEiHOABIiSQASIksAEiJOABIiUAASIlMAEiJUABIiVQASIlYAEiJXABIiWQASIlsAEiJcABIiXQASIl8AEiJgABIi2wASIt0AEiLfABIi4QASIuQAEiLlABIi5gASIucAEiLoABIi6gASIuwAEiLtABIi7gASIvAAEiLxABIjbAASI24AEiNwABIjcgASI3UAEiN2ABIjdwASI3gAEiN5ABIjewASI30AEiN+ABIjfwASI4EAEiOCABIj/QASI/8AEiQBABIkAwASJAYAEiQHABIkCAASJAkAEiQKABIkDAASJA4AEiQPABIkEAASJBIAEiQTABIkpgASJMkAEiTpABIlCQASJQsAEiUNABIlDwASJREAEiUUABIlFQASJRYAEiUZABIlGgASJRwAEiUdABIlHwASJSEAEiUiABIlIwASJSYAEiUnABIlLAASJUUAEiVOABIlUAASJVIAEiVbABIlXgASJWEAEiVjABIlrAASJdAAEiX3ABImGwASJh4AEiYgABImIgASJiQAEiYmABImKAASJikAEiYsABImRQASJmYAEiZoABImagASJmwAEiZuABImcAASJnIAEiZ0ABImdgASJpcAEiaaABImnQASJqAAEiajABImpgASJqkAEiasABImrwASJrEAEicsABInLgASJzAAEicyABInNQASJzYAEic3ABInOAASJzkAEic7ABInPQASJz4AEic/ABInQQASJ0IAEie9ABInvwASJ8EAEifDABInxgASJ8cAEifIABInyQASJ8oAEifMABInzgASJ88AEifQABIn0gASJ9MAEihOABIoUAASKFMAEihVABIoWAASKFkAEihaABIoWwASKFwAEiheABIoYAASKGEAEihiABIoZAASKGUAEih+ABIofwASKIAAEiiCABIo/QASKP8AEikBABIpAwASKQYAEikHABIpCAASKQkAEikKABIpDAASKQ4AEikPABIpEAASKRIAEikTABIpjgASKZAAEimSABIplAASKZcAEimYABIpmQASKZoAEimbABIpnQASKZ8AEimgABIpoQASKaMAEimkABIqHwASKiEAEiojABIqJQASKigAEiopABIqKgASKisAEiosABIqLgASKjAAEioxABIqMgASKjQAEio1ABIqsAASKrIAEiq0ABIqtgASKrkAEiq6ABIquwASKrwAEiq9ABIqvwASKsEAEirCABIqwwASKsUAEirGABIrQQASK0MAEitFABIrRwASK0oAEitLABIrTAASK00AEitOABIrUAASK1IAEitTABIrVAASK1YAEitXABIroAASK8QAEivrABIsDwASLBIAEiwUABIsFgASLBgAEiwaABIsHAASLB0AEiwgABIsOQASLFYAEixYABIsWgASLFwAEixeABIsYAASLGIAEixkABIsgQASLIQAEiyHABIsigASLI0AEiyQABIskwASLJYAEiyYABItEwASLRUAEi0XABItGQASLRwAEi0dABItHgASLR8AEi0gABItIgASLSQAEi0lABItJgASLSgAEi0pABItpAASLaYAEi2oABItqgASLa0AEi2uABItrwASLbAAEi2xABItswASLbUAEi22ABIttwASLbkAEi26ABIuNQASLjcAEi45ABIuOwASLj4AEi4/ABIuQAASLkEAEi5CABIuRAASLkYAEi5HABIuSAASLkoAEi5LABIuxgASLsgAEi7KABIuzAASLs8AEi7QABIu0QASLtIAEi7TABIu1QASLtcAEi7YABIu2QASLtsAEi7cABIvVwASL1kAEi9bABIvXQASL2AAEi9hABIvYgASL2MAEi9kABIvZgASL2gAEi9pABIvagASL2wAEi9tABIv6AASL+oAEi/sABIv7gASL/EAEi/yABIv8wASL/QAEi/1ABIv9wASL/kAEi/6ABIv+wASL/0AEi/+ABIweQASMHsAEjB9ABIwfwASMIIAEjCDABIwhAASMIUAEjCGABIwiAASMIoAEjCLABIwjAASMI4AEjCPABIxIgASMUUAEjFlABIxhQASMYcAEjGJABIxiwASMY0AEjGQABIxkQASMZIAEjGVABIxlgASMZgAEjGZABIxmwASMZ4AEjGfABIxoAASMaMAEjGkABIxqQASMcIAEjHLABIxzQASMc8AEjHYABIx2wASMd4AEjHgABIyKQASMk0AEjJ0ABIymAASMpsAEjKdABIynwASMqEAEjKjABIypQASMqYAEjKpABIywgASMuMAEjLlABIy5wASMukAEjLrABIy7QASMu8AEjLxABIy8wASMxQAEjMXABIzGgASMx0AEjMgABIzIwASMyYAEjMpABIzLAASMy4AEjOpABIzqwASM60AEjOvABIzsgASM7MAEjO0ABIztQASM7YAEjO4ABIzugASM7sAEjO8ABIzvgASM78AEjQ6ABI0PAASND4AEjRAABI0QwASNEQAEjRFABI0RgASNEcAEjRJABI0SwASNEwAEjRNABI0TwASNFAAEjTLABI0zQASNNAAEjTSABI01QASNNYAEjTXABI02AASNNkAEjTbABI03QASNN4AEjTfABI04QASNOIAEjT7ABI0/AASNP0AEjT/ABI1egASNXwAEjV+ABI1gAASNYMAEjWEABI1hQASNYYAEjWHABI1iQASNYsAEjWMABI1jQASNY8AEjWQABI2CwASNg0AEjYPABI2EQASNhQAEjYVABI2FgASNhcAEjYYABI2GgASNhwAEjYdABI2HgASNiAAEjYhABI2nAASNp4AEjagABI2ogASNqUAEjamABI2pwASNqgAEjapABI2qwASNq0AEjauABI2rwASNrEAEjayABI3LQASNy8AEjcxABI3MwASNzYAEjc3ABI3OAASNzkAEjc6ABI3PAASNz4AEjc/ABI3QAASN0IAEjdDABI3vgASN8AAEjfCABI3xAASN8cAEjfIABI3yQASN8oAEjfLABI3zQASN88AEjfQABI30QASN9MAEjfUABI4HQASOEEAEjhoABI4jAASOI8AEjiRABI4kwASOJUAEjiXABI4mQASOJoAEjidABI4tgASONMAEjjVABI41wASONkAEjjbABI43QASON8AEjjhABI4/gASOQEAEjkEABI5BwASOQoAEjkNABI5EAASORMAEjkVABI5kAASOZIAEjmUABI5lgASOZkAEjmaABI5mwASOZwAEjmdABI5nwASOaEAEjmiABI5owASOaUAEjmmABI6IQASOiMAEjolABI6JwASOioAEjorABI6LAASOi0AEjouABI6MAASOjIAEjozABI6NAASOjYAEjo3ABI6sgASOrQAEjq2ABI6uAASOrsAEjq8ABI6vQASOr4AEjq/ABI6wQASOsMAEjrEABI6xQASOscAEjrIABI7QwASO0UAEjtHABI7SQASO0wAEjtNABI7TgASO08AEjtQABI7UgASO1QAEjtVABI7VgASO1gAEjtZABI71AASO9YAEjvYABI72gASO90AEjveABI73wASO+AAEjvhABI74wASO+UAEjvmABI75wASO+kAEjvqABI8ZQASPGcAEjxpABI8awASPG4AEjxvABI8cAASPHEAEjxyABI8dAASPHYAEjx3ABI8eAASPHoAEjx7ABI89gASPPgAEjz6ABI8/AASPP8AEj0AABI9AQASPQIAEj0DABI9BQASPQcAEj0IABI9CQASPQsAEj0MABI9nwASPcIAEj3iABI+AgASPgQAEj4GABI+CAASPgoAEj4NABI+DgASPg8AEj4SABI+EwASPhUAEj4WABI+GAASPhsAEj4cABI+HQASPiAAEj4hABI+JgASPj8AEj5IABI+SgASPkwAEj5VABI+WAASPlsAEj5dABI+pgASPsoAEj7xABI/FQASPxgAEj8aABI/HAASPx4AEj8gABI/IgASPyMAEj8mABI/PwASP2AAEj9iABI/ZAASP2YAEj9oABI/agASP2wAEj9uABI/cAASP5EAEj+UABI/lwASP5oAEj+dABI/oAASP6MAEj+mABI/qQASP6sAEkAmABJAKAASQCoAEkAsABJALwASQDAAEkAxABJAMgASQDMAEkA1ABJANwASQDgAEkA5ABJAOwASQDwAEkC3ABJAuQASQLsAEkC9ABJAwAASQMEAEkDCABJAwwASQMQAEkDGABJAyAASQMkAEkDKABJAzAASQM0AEkFIABJBSgASQU0AEkFPABJBUgASQVMAEkFUABJBVQASQVYAEkFYABJBWgASQVsAEkFcABJBXgASQV8AEkF4ABJBeQASQXoAEkF8ABJB9wASQfkAEkH7ABJB/QASQgAAEkIBABJCAgASQgMAEkIEABJCBgASQggAEkIJABJCCgASQgwAEkINABJCiAASQooAEkKMABJCjgASQpEAEkKSABJCkwASQpQAEkKVABJClwASQpkAEkKaABJCmwASQp0AEkKeABJDGQASQxsAEkMdABJDHwASQyIAEkMjABJDJAASQyUAEkMmABJDKAASQyoAEkMrABJDLAASQy4AEkMvABJDqgASQ6wAEkOuABJDsAASQ7MAEkO0ABJDtQASQ7YAEkO3ABJDuQASQ7sAEkO8ABJDvQASQ78AEkPAABJEOwASRD0AEkQ/ABJEQQASREQAEkRFABJERgASREcAEkRIABJESgASREwAEkRNABJETgASRFAAEkRRABJEmgASRL4AEkTlABJFCQASRQwAEkUOABJFEAASRRIAEkUUABJFFgASRRcAEkUaABJFMwASRVAAEkVSABJFVAASRVYAEkVYABJFWgASRVwAEkVeABJFewASRX4AEkWBABJFhAASRYcAEkWKABJFjQASRZAAEkWSABJGDQASRg8AEkYRABJGEwASRhYAEkYXABJGGAASRhkAEkYaABJGHAASRh4AEkYfABJGIAASRiIAEkYjABJGngASRqAAEkaiABJGpAASRqcAEkaoABJGqQASRqoAEkarABJGrQASRq8AEkawABJGsQASRrMAEka0ABJHLwASRzEAEkczABJHNQASRzgAEkc5ABJHOgASRzsAEkc8ABJHPgASR0AAEkdBABJHQgASR0QAEkdFABJHwAASR8IAEkfEABJHxgASR8kAEkfKABJHywASR8wAEkfNABJHzwASR9EAEkfSABJH0wASR9UAEkfWABJIUQASSFMAEkhVABJIVwASSFoAEkhbABJIXAASSF0AEkheABJIYAASSGIAEkhjABJIZAASSGYAEkhnABJI4gASSOQAEkjmABJI6AASSOsAEkjsABJI7QASSO4AEkjvABJI8QASSPMAEkj0ABJI9QASSPcAEkj4ABJJcwASSXUAEkl3ABJJeQASSXwAEkl9ABJJfgASSX8AEkmAABJJggASSYQAEkmFABJJhgASSYgAEkmJABJKHAASSj8AEkpfABJKfwASSoEAEkqDABJKhQASSocAEkqKABJKiwASSowAEkqPABJKkAASSpIAEkqTABJKlQASSpgAEkqZABJKmgASSp0AEkqeABJKowASSrwAEkrFABJKxwASSskAEkrSABJK1QASStgAEkraABJLIwASS0cAEktuABJLkgASS5UAEkuXABJLmQASS5sAEkudABJLnwASS6AAEkujABJLvAASS90AEkvfABJL4QASS+MAEkvlABJL5wASS+kAEkvrABJL7QASTA4AEkwRABJMFAASTBcAEkwaABJMHQASTCAAEkwjABJMJgASTCgAEkyjABJMpQASTKcAEkypABJMrAASTK0AEkyuABJMrwASTLAAEkyyABJMtAASTLUAEky2ABJMuAASTLkAEk00ABJNNgASTTgAEk06ABJNPQASTT4AEk0/ABJNQAASTUEAEk1DABJNRQASTUYAEk1HABJNSQASTUoAEk3FABJNxwASTcoAEk3MABJNzwASTdAAEk3RABJN0gASTdMAEk3VABJN1wASTdgAEk3ZABJN2wASTdwAEk31ABJN9gASTfcAEk35ABJOdAASTnYAEk54ABJOegASTn0AEk5+ABJOfwASToAAEk6BABJOgwASToUAEk6GABJOhwASTokAEk6KABJPBQASTwcAEk8JABJPCwASTw4AEk8PABJPEAASTxEAEk8SABJPFAASTxYAEk8XABJPGAASTxoAEk8bABJPlgAST5gAEk+aABJPnAAST58AEk+gABJPoQAST6IAEk+jABJPpQAST6cAEk+oABJPqQAST6sAEk+sABJQJwASUCkAElArABJQLQASUDAAElAxABJQMgASUDMAElA0ABJQNgASUDgAElA5ABJQOgASUDwAElA9ABJQuAASULoAElC8ABJQvgASUMEAElDCABJQwwASUMQAElDFABJQxwASUMkAElDKABJQywASUM0AElDOABJRFwASUTsAElFiABJRhgASUYkAElGLABJRjQASUY8AElGRABJRkwASUZQAElGXABJRsAASUc0AElHPABJR0QASUdMAElHVABJR1wASUdkAElHbABJR+AASUfsAElH+ABJSAQASUgQAElIHABJSCgASUg0AElIPABJSigASUowAElKOABJSkAASUpMAElKUABJSlQASUpYAElKXABJSmQASUpsAElKcABJSnQASUp8AElKgABJTGwASUx0AElMfABJTIQASUyQAElMlABJTJgASUycAElMoABJTKgASUywAElMtABJTLgASUzAAElMxABJTrAASU64AElOwABJTsgASU7UAElO2ABJTtwASU7gAElO5ABJTuwASU70AElO+ABJTvwASU8EAElPCABJUPQASVD8AElRCABJURAASVEcAElRIABJUSQASVEoAElRLABJUTQASVE8AElRQABJUUQASVFMAElRUABJUzwASVNEAElTTABJU1QASVNgAElTZABJU2gASVNsAElTcABJU3gASVOAAElThABJU4gASVOQAElTlABJVYAASVWIAElVkABJVZgASVWkAElVqABJVawASVWwAElVtABJVbwASVXEAElVyABJVcwASVXUAElV2ABJV8QASVfMAElX1ABJV9wASVfoAElX7ABJV/AASVf0AElX+ABJWAAASVgIAElYDABJWBAASVgYAElYHABJWGAASVhkAElYbABJWlgASVpgAElaaABJWnAASVp8AElagABJWoQASVqIAElajABJWpQASVqcAElaoABJWqQASVqsAElasABJXJwASVykAElcrABJXLQASVzAAElcxABJXMgASVzMAElc0ABJXNgASVzgAElc5ABJXOgASVzwAElc9ABJXuAASV7oAEle9ABJXvwASV8IAElfDABJXxAASV8UAElfGABJXyAASV8oAElfLABJXzAASV84AElfPABJYYgASWIUAElilABJYxQASWMcAEljJABJYywASWM0AEljPABJY0AASWNEAEljUABJY1QASWNcAEljYABJY2gASWNwAEljdABJY3gASWOEAEljiABJY5wASWQAAElkJABJZCwASWQ0AElkWABJZGQASWRwAElkeABJZZwASWYsAElmyABJZ1gASWdkAElnbABJZ3QASWd8AElnhABJZ4wASWeQAElnnABJaAAASWiEAElojABJaJQASWicAElopABJaKwASWi0AElovABJaMQASWlIAElpVABJaWAASWlsAElpeABJaYQASWmQAElpnABJaagASWmwAElrnABJa6QASWusAElrtABJa8AASWvEAElryABJa8wASWvQAElr2ABJa+AASWvkAElr6ABJa/AASWv0AElt4ABJbegASW3wAElt+ABJbgQASW4IAEluDABJbhAASW4UAEluHABJbiQASW4oAEluLABJbjQASW44AElwJABJcCwASXA4AElwQABJcEwASXBQAElwVABJcFgASXBcAElwZABJcGwASXBwAElwdABJcHwASXCAAElw5ABJcOgASXDsAElw9ABJcuAASXLoAEly8ABJcvgASXMEAElzCABJcwwASXMQAElzFABJcxwASXMkAElzKABJcywASXM0AElzOABJdSQASXUsAEl1NABJdTwASXVIAEl1TABJdVAASXVUAEl1WABJdWAASXVoAEl1bABJdXAASXV4AEl1fABJd2gASXdwAEl3eABJd4AASXeMAEl3kABJd5QASXeYAEl3nABJd6QASXesAEl3sABJd7QASXe8AEl3wABJeawASXm0AEl5vABJecQASXnQAEl51ABJedgASXncAEl54ABJeegASXnwAEl59ABJefgASXoAAEl6BABJe/AASXv4AEl8AABJfAgASXwUAEl8GABJfBwASXwgAEl8JABJfCwASXw0AEl8OABJfDwASXxEAEl8SABJfWwASX38AEl+mABJfygASX80AEl/PABJf0QASX9MAEl/VABJf1wASX9gAEl/bABJf9AASYBEAEmATABJgFQASYBcAEmAZABJgGwASYB0AEmAfABJgPAASYD8AEmBCABJgRQASYEgAEmBLABJgTgASYFEAEmBTABJgzgASYNAAEmDSABJg1AASYNcAEmDYABJg2QASYNoAEmDbABJg3QASYN8AEmDgABJg4QASYOMAEmDkABJhXwASYWEAEmFjABJhZQASYWgAEmFpABJhagASYWsAEmFsABJhbgASYXAAEmFxABJhcgASYXQAEmF1ABJh8AASYfIAEmH0ABJh9gASYfkAEmH6ABJh+wASYfwAEmH9ABJh/wASYgEAEmICABJiAwASYgUAEmIGABJigQASYoMAEmKGABJiiAASYosAEmKMABJijQASYo4AEmKPABJikQASYpMAEmKUABJilQASYpcAEmKYABJjEwASYxUAEmMXABJjGQASYxwAEmMdABJjHgASYx8AEmMgABJjIgASYyQAEmMlABJjJgASYygAEmMpABJjpAASY6YAEmOoABJjqgASY60AEmOuABJjrwASY7AAEmOxABJjswASY7UAEmO2ABJjtwASY7kAEmO6ABJkNQASZDcAEmQ5ABJkOwASZD4AEmQ/ABJkQAASZEEAEmRCABJkRAASZEYAEmRHABJkSAASZEoAEmRLABJk3gASZQEAEmUhABJlQQASZUMAEmVFABJlRwASZUkAEmVLABJlTAASZU0AEmVQABJlUQASZVMAEmVUABJlVwASZVkAEmVaABJlWwASZV4AEmVfABJlZAASZX0AEmWGABJliAASZYoAEmWTABJllgASZZkAEmWbABJl5AASZggAEmYvABJmUwASZlYAEmZYABJmWgASZlwAEmZeABJmYAASZmEAEmZkABJmfQASZp4AEmagABJmogASZqQAEmamABJmqAASZqoAEmasABJmrgASZs8AEmbSABJm1QASZtgAEmbbABJm3gASZuEAEmbkABJm5wASZukAEmdkABJnZgASZ2gAEmdqABJnbQASZ24AEmdvABJncAASZ3EAEmdzABJndQASZ3YAEmd3ABJneQASZ3oAEmf1ABJn9wASZ/kAEmf7ABJn/gASZ/8AEmgAABJoAQASaAIAEmgEABJoBgASaAcAEmgIABJoCgASaAsAEmiGABJoiAASaIsAEmiNABJokAASaJEAEmiSABJokwASaJQAEmiWABJomAASaJkAEmiaABJonAASaJ0AEmi2ABJotwASaLgAEmi6ABJpNQASaTcAEmk5ABJpOwASaT4AEmk/ABJpQAASaUEAEmlCABJpRAASaUYAEmlHABJpSAASaUoAEmlLABJpxgASacgAEmnKABJpzAASac8AEmnQABJp0QASadIAEmnTABJp1QASadcAEmnYABJp2QASadsAEmncABJqVwASalkAEmpbABJqXQASamAAEmphABJqYgASamMAEmpkABJqZgASamgAEmppABJqagASamwAEmptABJq6AASauoAEmrsABJq7gASavEAEmryABJq8wASavQAEmr1ABJq9wASavkAEmr6ABJq+wASav0AEmr+ABJreQASa3sAEmt9ABJrfwASa4IAEmuDABJrhAASa4UAEmuGABJriAASa4oAEmuLABJrjAASa44AEmuPABJr2AASa/wAEmwjABJsRwASbEoAEmxMABJsTgASbFAAEmxSABJsVAASbFUAEmxYABJscQASbI4AEmyQABJskgASbJQAEmyWABJsmAASbJoAEmycABJsuQASbLwAEmy/ABJswgASbMUAEmzIABJsywASbM4AEmzQABJtSwASbU0AEm1PABJtUQASbVQAEm1VABJtVgASbVcAEm1YABJtWgASbVwAEm1dABJtXgASbWAAEm1hABJt3AASbd4AEm3gABJt4gASbeUAEm3mABJt5wASbegAEm3pABJt6wASbe0AEm3uABJt7wASbfEAEm3yABJubQASbm8AEm5xABJucwASbnYAEm53ABJueAASbnkAEm56ABJufAASbn4AEm5/ABJugAASboIAEm6DABJu/gASbwAAEm8CABJvBAASbwcAEm8IABJvCQASbwoAEm8LABJvDQASbw8AEm8QABJvEQASbxMAEm8UABJvjwASb5EAEm+TABJvlQASb5gAEm+ZABJvmgASb5sAEm+cABJvngASb6AAEm+hABJvogASb6QAEm+lABJwIAAScCIAEnAkABJwJgAScCkAEnAqABJwKwAScCwAEnAtABJwLwAScDEAEnAyABJwMwAScDUAEnA2ABJwsQAScLMAEnC1ABJwtwAScLoAEnC7ABJwvAAScL0AEnC+ABJwwAAScMIAEnDDABJwxAAScMYAEnDHABJxWgAScX0AEnGdABJxvQAScb8AEnHBABJxwwASccUAEnHHABJxyAAScckAEnHMABJxzQAScc8AEnHQABJx0gAScdQAEnHVABJx1gAScdkAEnHaABJx3wAScfgAEnIBABJyAwAScgUAEnIOABJyEQASchQAEnIWABJyXwAScoMAEnKqABJyzgASctEAEnLTABJy1QASctcAEnLZABJy2wASctwAEnLfABJy+AAScxkAEnMbABJzHQAScx8AEnMhABJzIwAScyUAEnMnABJzKQASc0oAEnNNABJzUAASc1MAEnNWABJzWQASc1wAEnNfABJzYgASc2QAEnPfABJz4QASc+MAEnPlABJz6AASc+kAEnPqABJz6wASc+wAEnPuABJz8AASc/EAEnPyABJz9AASc/UAEnRwABJ0cgASdHQAEnR2ABJ0eQASdHoAEnR7ABJ0fAASdH0AEnR/ABJ0gQASdIIAEnSDABJ0hQASdIYAEnUBABJ1AwASdQYAEnUIABJ1CwASdQwAEnUNABJ1DgASdQ8AEnURABJ1EwASdRQAEnUVABJ1FwASdRgAEnUxABJ1MgASdTMAEnU1ABJ1sAASdbIAEnW0ABJ1tgASdbkAEnW6ABJ1uwASdbwAEnW9ABJ1vwASdcEAEnXCABJ1wwASdcUAEnXGABJ2QQASdkMAEnZFABJ2RwASdkoAEnZLABJ2TAASdk0AEnZOABJ2UAASdlIAEnZTABJ2VAASdlYAEnZXABJ20gASdtQAEnbWABJ22AASdtsAEnbcABJ23QASdt4AEnbfABJ24QASduMAEnbkABJ25QASducAEnboABJ3YwASd2UAEndnABJ3aQASd2wAEndtABJ3bgASd28AEndwABJ3cgASd3QAEnd1ABJ3dgASd3gAEnd5ABJ39AASd/YAEnf4ABJ3+gASd/0AEnf+ABJ3/wASeAAAEngBABJ4AwASeAUAEngGABJ4BwASeAkAEngKABJ4UwASeHcAEnieABJ4wgASeMUAEnjHABJ4yQASeMsAEnjNABJ4zwASeNAAEnjTABJ47AASeQkAEnkLABJ5DQASeQ8AEnkRABJ5EwASeRUAEnkXABJ5NAASeTcAEnk6ABJ5PQASeUAAEnlDABJ5RgASeUkAEnlLABJ5xgASecgAEnnKABJ5zAASec8AEnnQABJ50QASedIAEnnTABJ51QASedcAEnnYABJ52QASedsAEnncABJ6VwASelkAEnpbABJ6XQASemAAEnphABJ6YgASemMAEnpkABJ6ZgASemgAEnppABJ6agASemwAEnptABJ66AASeuoAEnrsABJ67gASevEAEnryABJ68wASevQAEnr1ABJ69wASevkAEnr6ABJ6+wASev0AEnr+ABJ7eQASe3sAEnt+ABJ7gAASe4MAEnuEABJ7hQASe4YAEnuHABJ7iQASe4sAEnuMABJ7jQASe48AEnuQABJ8CwASfA0AEnwPABJ8EQASfBQAEnwVABJ8FgASfBcAEnwYABJ8GgASfBwAEnwdABJ8HgASfCAAEnwhABJ8nAASfJ4AEnygABJ8ogASfKUAEnymABJ8pwASfKgAEnypABJ8qwASfK0AEnyuABJ8rwASfLEAEnyyABJ9LQASfS8AEn0xABJ9MwASfTYAEn03ABJ9OAASfTkAEn06ABJ9PAASfT4AEn0/ABJ9QAASfUIAEn1DABJ91gASffkAEn4ZABJ+OQASfjsAEn49ABJ+PwASfkEAEn5DABJ+RAASfkUAEn5IABJ+SQASfksAEn5MABJ+TgASflAAEn5RABJ+UgASflUAEn5WABJ+WwASfnQAEn59ABJ+fwASfoEAEn6KABJ+jQASfpAAEn6SABJ+2wASfv8AEn8mABJ/SgASf00AEn9PABJ/UQASf1MAEn9VABJ/VwASf1gAEn9bABJ/dAASf5UAEn+XABJ/mQASf5sAEn+dABJ/nwASf6EAEn+jABJ/pQASf8YAEn/JABJ/zAASf88AEn/SABJ/1QASf9gAEn/bABJ/3gASf+AAEoBbABKAXQASgF8AEoBhABKAZAASgGUAEoBmABKAZwASgGgAEoBqABKAbAASgG0AEoBuABKAcAASgHEAEoDsABKA7gASgPAAEoDyABKA9QASgPYAEoD3ABKA+AASgPkAEoD7ABKA/QASgP4AEoD/ABKBAQASgQIAEoF9ABKBfwASgYIAEoGEABKBhwASgYgAEoGJABKBigASgYsAEoGNABKBjwASgZAAEoGRABKBkwASgZQAEoGtABKBrgASga8AEoGxABKCLAASgi4AEoIwABKCMgASgjUAEoI2ABKCNwASgjgAEoI5ABKCOwASgj0AEoI+ABKCPwASgkEAEoJCABKCvQASgr8AEoLBABKCwwASgsYAEoLHABKCyAASgskAEoLKABKCzAASgs4AEoLPABKC0AASgtIAEoLTABKDTgASg1AAEoNSABKDVAASg1cAEoNYABKDWQASg1oAEoNbABKDXQASg18AEoNgABKDYQASg2MAEoNkABKD3wASg+EAEoPjABKD5QASg+gAEoPpABKD6gASg+sAEoPsABKD7gASg/AAEoPxABKD8gASg/QAEoP1ABKEcAAShHIAEoR0ABKEdgAShHkAEoR6ABKEewAShHwAEoR9ABKEfwAShIEAEoSCABKEgwAShIUAEoSGABKEzwAShPMAEoUaABKFPgAShUEAEoVDABKFRQAShUcAEoVJABKFSwAShUwAEoVPABKFaAAShYUAEoWHABKFiQAShYsAEoWNABKFjwAShZEAEoWTABKFsAAShbMAEoW2ABKFuQAShbwAEoW/ABKFwgAShcUAEoXHABKGQgAShkQAEoZGABKGSAAShksAEoZMABKGTQAShk4AEoZPABKGUQAShlMAEoZUABKGVQAShlcAEoZYABKG0wAShtUAEobXABKG2QAShtwAEobdABKG3gASht8AEobgABKG4gAShuQAEoblABKG5gAShugAEobpABKHZAASh2YAEodoABKHagASh20AEoduABKHbwASh3AAEodxABKHcwASh3UAEod2ABKHdwASh3kAEod6ABKH9QASh/cAEof6ABKH/AASh/8AEogAABKIAQASiAIAEogDABKIBQASiAcAEogIABKICQASiAsAEogMABKIhwASiIkAEoiLABKIjQASiJAAEoiRABKIkgASiJMAEoiUABKIlgASiJgAEoiZABKImgASiJwAEoidABKJGAASiRoAEokcABKJHgASiSEAEokiABKJIwASiSQAEoklABKJJwASiSkAEokqABKJKwASiS0AEokuABKJqQASiasAEomtABKJrwASibIAEomzABKJtAASibUAEom2ABKJuAASiboAEom7ABKJvAASib4AEom/ABKKUgASinUAEoqVABKKtQASircAEoq5ABKKuwASir0AEoq/ABKKwAASisEAEorEABKKxQASiscAEorIABKKywASis0AEorOABKKzwASitIAEorTABKK2AASivEAEor6ABKK/AASiv4AEosHABKLCgASiw0AEosPABKLWAASi3wAEoujABKLxwASi8oAEovMABKLzgASi9AAEovSABKL1AASi9UAEovYABKL8QASjBIAEowUABKMFgASjBgAEowaABKMHAASjB4AEowgABKMIgASjEMAEoxGABKMSQASjEwAEoxPABKMUgASjFUAEoxYABKMWwASjF0AEozYABKM2gASjNwAEozeABKM4QASjOIAEozjABKM5AASjOUAEoznABKM6QASjOoAEozrABKM7QASjO4AEo1pABKNawASjW0AEo1vABKNcgASjXMAEo10ABKNdQASjXYAEo14ABKNegASjXsAEo18ABKNfgASjX8AEo36ABKN/AASjf8AEo4BABKOBAASjgUAEo4GABKOBwASjggAEo4KABKODAASjg0AEo4OABKOEAASjhEAEo4qABKOKwASjiwAEo4uABKOqQASjqsAEo6tABKOrwASjrIAEo6zABKOtAASjrUAEo62ABKOuAASjroAEo67ABKOvAASjr4AEo6/ABKPOgASjzwAEo8+ABKPQAASj0MAEo9EABKPRQASj0YAEo9HABKPSQASj0sAEo9MABKPTQASj08AEo9QABKPywASj80AEo/PABKP0QASj9QAEo/VABKP1gASj9cAEo/YABKP2gASj9wAEo/dABKP3gASj+AAEo/hABKQXAASkF4AEpBgABKQYgASkGUAEpBmABKQZwASkGgAEpBpABKQawASkG0AEpBuABKQbwASkHEAEpByABKQ7QASkO8AEpDxABKQ8wASkPYAEpD3ABKQ+AASkPkAEpD6ABKQ/AASkP4AEpD/ABKRAAASkQIAEpEDABKRTAASkXAAEpGXABKRuwASkb4AEpHAABKRwgASkcQAEpHGABKRyAASkckAEpHMABKR5QASkgIAEpIEABKSBgASkggAEpIKABKSDAASkg4AEpIQABKSLQASkjAAEpIzABKSNgASkjkAEpI8ABKSPwASkkIAEpJEABKSvwASksEAEpLDABKSxQASksgAEpLJABKSygASkssAEpLMABKSzgASktAAEpLRABKS0gASktQAEpLVABKTUAASk1IAEpNVABKTVwASk1oAEpNbABKTXAASk10AEpNeABKTYAASk2IAEpNjABKTZAASk2YAEpNnABKT4gASk+QAEpPmABKT6AASk+sAEpPsABKT7QASk+4AEpPvABKT8QASk/MAEpP0ABKT9QASk/cAEpP4ABKUcwASlHUAEpR4ABKUegASlH0AEpR+ABKUfwASlIAAEpSBABKUgwASlIUAEpSGABKUhwASlIkAEpSKABKVDQASlTEAEpVVABKVeAASlZ8AEpW/ABKV5gASlg0AEpYtABKWUQASlnUAEpZ3ABKWegASlnwAEpZ+ABKWgAASloMAEpaGABKWiAASlooAEpaNABKWjwASlpEAEpaUABKWlwASlpgAEpadABKWtgASlrsAEpa9ABKWwgASlsUAEpbHABKXEAASlzQAEpdbABKXfwASl4IAEpeEABKXhgASl4gAEpeKABKXjAASl40AEpeQABKXqQASl84AEpfQABKX0gASl9QAEpfWABKX2AASl9oAEpfcABKX3gASl+AAEpgFABKYCAASmAsAEpgOABKYEQASmBQAEpgXABKYGgASmB0AEpggABKYIgASmJ0AEpifABKYogASmKQAEpinABKYqAASmKkAEpiqABKYqwASmK0AEpivABKYsAASmLEAEpizABKYtAASmMUAEpjGABKYyAASmUMAEplFABKZRwASmUkAEplMABKZTQASmU4AEplPABKZUAASmVIAEplUABKZVQASmVYAEplYABKZWQASmdQAEpnWABKZ2QASmdsAEpneABKZ3wASmeAAEpnhABKZ4gASmeQAEpnmABKZ5wASmegAEpnqABKZ6wASmfwAEpn9ABKZ/wASmnoAEpp8ABKafgASmoAAEpqDABKahAASmoUAEpqGABKahwASmokAEpqLABKajAASmo0AEpqPABKakAASmwsAEpsNABKbEAASmxIAEpsVABKbFgASmxcAEpsYABKbGQASmxsAEpsdABKbHgASmx8AEpshABKbIgASmzMAEps0ABKbNgASm7EAEpuzABKbtQASm7cAEpu6ABKbuwASm7wAEpu9ABKbvgASm8AAEpvCABKbwwASm8QAEpvGABKbxwASnEIAEpxEABKcRwASnEkAEpxMABKcTQASnE4AEpxPABKcUAASnFIAEpxUABKcVQASnFYAEpxYABKcWQASnHIAEpxzABKcdAASnHYAEpzxABKc8wASnPUAEpz3ABKc+gASnPsAEpz8ABKc/QASnP4AEp0AABKdAgASnQMAEp0EABKdBgASnQcAEp2CABKdhAASnYcAEp2JABKdjAASnY0AEp2OABKdjwASnZAAEp2SABKdlAASnZUAEp2WABKdmAASnZkAEp2zABKdzAASneEAEp3kABKd5wASneoAEp3tABKd8AASngUAEp4IABKeCwASng4AEp4RABKeFAASnhYAEp4pABKeRQASnloAEp50ABKeeQASnwwAEp8vABKfTwASn28AEp9xABKfcwASn3UAEp93ABKfegASn3sAEp98ABKffwASn4AAEp+CABKfgwASn4UAEp+IABKfiQASn4oAEp+NABKfjgASn5MAEp+sABKftQASn7cAEp+5ABKfwgASn8UAEp/IABKfygASoBMAEqA3ABKgXgASoIIAEqCFABKghwASoIkAEqCLABKgjQASoI8AEqCQABKgkwASoKwAEqDNABKgzwASoNEAEqDTABKg1QASoNcAEqDZABKg2wASoN0AEqD+ABKhAQASoQQAEqEHABKhCgASoQ0AEqEQABKhEwASoRYAEqEYABKhkwASoZUAEqGXABKhmQASoZwAEqGdABKhngASoZ8AEqGgABKhogASoaQAEqGlABKhpgASoagAEqGpABKiJAASoiYAEqIoABKiKgASoi0AEqIuABKiLwASojAAEqIxABKiMwASojUAEqI2ABKiNwASojkAEqI6ABKitQASorcAEqK6ABKivAASor8AEqLAABKiwQASosIAEqLDABKixQASoscAEqLIABKiyQASossAEqLMABKi5QASouYAEqLnABKi6QASo2QAEqNmABKjaAASo2oAEqNtABKjbgASo28AEqNwABKjcQASo3MAEqN1ABKjdgASo3cAEqN5ABKjegASo/UAEqP3ABKj+QASo/sAEqP+ABKj/wASpAAAEqQBABKkAgASpAQAEqQGABKkBwASpAgAEqQKABKkCwASpIYAEqSIABKkigASpIwAEqSPABKkkAASpJEAEqSSABKkkwASpJUAEqSXABKkmAASpJkAEqSbABKknAASpRcAEqUZABKlGwASpR0AEqUgABKlIQASpSIAEqUjABKlJAASpSYAEqUoABKlKQASpSoAEqUsABKlLQASpagAEqWqABKlrAASpa4AEqWxABKlsgASpbMAEqW0ABKltQASpbcAEqW5ABKlugASpbsAEqW9ABKlvgASpgcAEqYrABKmUgASpnYAEqZ5ABKmewASpn0AEqZ/ABKmgQASpoMAEqaEABKmhwASpqAAEqa9ABKmvwASpsEAEqbDABKmxQASpscAEqbJABKmywASpugAEqbrABKm7gASpvEAEqb0ABKm9wASpvoAEqb9ABKm/wASp3oAEqd8ABKnfgASp4AAEqeDABKnhAASp4UAEqeGABKnhwASp4kAEqeLABKnjAASp40AEqePABKnkAASqAsAEqgNABKoDwASqBEAEqgUABKoFQASqBYAEqgXABKoGAASqBoAEqgcABKoHQASqB4AEqggABKoIQASqJwAEqieABKooAASqKIAEqilABKopgASqKcAEqioABKoqQASqKsAEqitABKorgASqK8AEqixABKosgASqS0AEqkvABKpMgASqTQAEqk3ABKpOAASqTkAEqk6ABKpOwASqT0AEqk/ABKpQAASqUEAEqlDABKpRAASqb8AEqnBABKpwwASqcUAEqnIABKpyQASqcoAEqnLABKpzAASqc4AEqnQABKp0QASqdIAEqnUABKp1QASqlAAEqpSABKqVAASqlYAEqpZABKqWgASqlsAEqpcABKqXQASql8AEqphABKqYgASqmMAEqplABKqZgASquEAEqrjABKq5QASqucAEqrqABKq6wASquwAEqrtABKq7gASqvAAEqryABKq8wASqvQAEqr2ABKq9wASq4oAEqutABKrzQASq+0AEqvvABKr8QASq/MAEqv1ABKr+AASq/kAEqv6ABKr/QASq/4AEqwAABKsAQASrAQAEqwHABKsCAASrAkAEqwMABKsDQASrBIAEqwrABKsNAASrDYAEqw4ABKsQQASrEQAEqxHABKsSQASrJIAEqy2ABKs3QASrQEAEq0EABKtBgASrQgAEq0KABKtDAASrQ4AEq0PABKtEgASrSsAEq1MABKtTgASrVAAEq1SABKtVAASrVYAEq1YABKtWgASrVwAEq19ABKtgAASrYMAEq2GABKtiQASrYwAEq2PABKtkgASrZUAEq2XABKuEgASrhQAEq4WABKuGAASrhsAEq4cABKuHQASrh4AEq4fABKuIQASriMAEq4kABKuJQASricAEq4oABKuowASrqUAEq6nABKuqQASrqwAEq6tABKurgASrq8AEq6wABKusgASrrQAEq61ABKutgASrrgAEq65ABKvNAASrzYAEq85ABKvOwASrz4AEq8/ABKvQAASr0EAEq9CABKvRAASr0YAEq9HABKvSAASr0oAEq9LABKvZAASr2UAEq9mABKvaAASr+MAEq/lABKv5wASr+kAEq/sABKv7QASr+4AEq/vABKv8AASr/IAEq/0ABKv9QASr/YAEq/4ABKv+QASsHQAErB2ABKweAASsHoAErB9ABKwfgASsH8AErCAABKwgQASsIMAErCFABKwhgASsIcAErCJABKwigASsQUAErEHABKxCQASsQsAErEOABKxDwASsRAAErERABKxEgASsRQAErEWABKxFwASsRgAErEaABKxGwASsZYAErGYABKxmgASsZwAErGfABKxoAASsaEAErGiABKxowASsaUAErGnABKxqAASsakAErGrABKxrAASsicAErIpABKyKwASsi0AErIwABKyMQASsjIAErIzABKyNAASsjYAErI4ABKyOQASsjoAErI8ABKyPQASsoYAErKqABKy0QASsvUAErL4ABKy+gASsvwAErL+ABKzAAASswIAErMDABKzBgASsx8AErM8ABKzPgASs0AAErNCABKzRAASs0YAErNIABKzSgASs2cAErNqABKzbQASs3AAErNzABKzdgASs3kAErN8ABKzfgASs/kAErP7ABKz/QASs/8AErQCABK0AwAStAQAErQFABK0BgAStAgAErQKABK0CwAStAwAErQOABK0DwAStIoAErSMABK0jgAStJAAErSTABK0lAAStJUAErSWABK0lwAStJkAErSbABK0nAAStJ0AErSfABK0oAAStRsAErUdABK1HwAStSEAErUkABK1JQAStSYAErUnABK1KAAStSoAErUsABK1LQAStS4AErUwABK1MQAStawAErWuABK1sAAStbIAErW1ABK1tgAStbcAErW4ABK1uQAStbsAErW9ABK1vgAStb8AErXBABK1wgAStj0AErY/ABK2QQAStkMAErZGABK2RwAStkgAErZJABK2SgAStkwAErZOABK2TwAStlAAErZSABK2UwASts4AErbQABK20gASttQAErbXABK22AASttkAErbaABK22wAStt0AErbfABK24AAStuEAErbjABK25AASt18AErdhABK3ZAASt2YAErdpABK3agASt2sAErdsABK3bQASt28AErdxABK3cgASt3MAErd1ABK3dgASuAkAErgsABK4TAASuGwAErhuABK4cAASuHIAErh0ABK4dwASuHgAErh5ABK4fAASuH0AErh/ABK4gAASuIIAEriFABK4hgASuIcAEriKABK4iwASuJAAEripABK4sgASuLQAEri2ABK4vwASuMIAErjFABK4xwASuRAAErk0ABK5WwASuX8AErmCABK5hAASuYYAErmIABK5igASuYwAErmNABK5kAASuakAErnKABK5zAASuc4AErnQABK50gASudQAErnWABK52AASudoAErn7ABK5/gASugEAEroEABK6BwASugoAEroNABK6EAASuhMAEroVABK6kAASupIAErqUABK6lgASupkAErqaABK6mwASupwAErqdABK6nwASuqEAErqiABK6owASuqUAErqmABK7IQASuyMAErslABK7JwASuyoAErsrABK7LAASuy0AErsuABK7MAASuzIAErszABK7NAASuzYAErs3ABK7sgASu7QAEru3ABK7uQASu7wAEru9ABK7vgASu78AErvAABK7wgASu8QAErvFABK7xgASu8gAErvJABK74gASu+MAErvkABK75gASvGEAErxjABK8ZQASvGcAErxqABK8awASvGwAErxtABK8bgASvHAAErxyABK8cwASvHQAErx2ABK8dwASvPIAErz0ABK89gASvPgAErz7ABK8/AASvP0AErz+ABK8/wASvQEAEr0DABK9BAASvQUAEr0HABK9CAASvYMAEr2FABK9hwASvYkAEr2MABK9jQASvY4AEr2PABK9kAASvZIAEr2UABK9lQASvZYAEr2YABK9mQASvhQAEr4WABK+GAASvhoAEr4dABK+HgASvh8AEr4gABK+IQASviMAEr4lABK+JgASvicAEr4pABK+KgASvqUAEr6nABK+qQASvqsAEr6uABK+rwASvrAAEr6xABK+sgASvrQAEr62ABK+twASvrgAEr66ABK+uwASvwQAEr8oABK/TwASv3MAEr92ABK/eAASv3oAEr98ABK/fgASv4AAEr+BABK/hAASv50AEr+6ABK/vAASv74AEr/AABK/wgASv8QAEr/GABK/yAASv+UAEr/oABK/6wASv+4AEr/xABK/9AASv/cAEr/6ABK//AASwHcAEsB5ABLAewASwH0AEsCAABLAgQASwIIAEsCDABLAhAASwIYAEsCIABLAiQASwIoAEsCMABLAjQASwQgAEsEKABLBDAASwQ4AEsERABLBEgASwRMAEsEUABLBFQASwRcAEsEZABLBGgASwRsAEsEdABLBHgASwZkAEsGbABLBnQASwZ8AEsGiABLBowASwaQAEsGlABLBpgASwagAEsGqABLBqwASwawAEsGuABLBrwASwioAEsIsABLCLwASwjEAEsI0ABLCNQASwjYAEsI3ABLCOAASwjoAEsI8ABLCPQASwj4AEsJAABLCQQASwrwAEsK+ABLCwAASwsIAEsLFABLCxgASwscAEsLIABLCyQASwssAEsLNABLCzgASws8AEsLRABLC0gASw00AEsNPABLDUQASw1MAEsNWABLDVwASw1gAEsNZABLDWgASw1wAEsNeABLDXwASw2AAEsNiABLDYwASw94AEsPgABLD4gASw+QAEsPnABLD6AASw+kAEsPqABLD6wASw+0AEsPvABLD8AASw/EAEsPzABLD9AASxIcAEsSqABLEygASxOoAEsTsABLE7gASxPAAEsTyABLE9QASxPYAEsT3ABLE+gASxPsAEsT9ABLE/gASxQEAEsUEABLFBQASxQYAEsUJABLFCgASxRMAEsUsABLFNQASxTcAEsU5ABLFQgASxUUAEsVIABLFSgASxZMAEsW3ABLF3gASxgIAEsYFABLGBwASxgkAEsYLABLGDQASxg8AEsYQABLGEwASxiwAEsZNABLGTwASxlEAEsZTABLGVQASxlcAEsZZABLGWwASxl0AEsZ+ABLGgQASxoQAEsaHABLGigASxo0AEsaQABLGkwASxpYAEsaYABLHEwASxxUAEscXABLHGQASxxwAEscdABLHHgASxx8AEscgABLHIgASxyQAEsclABLHJgASxygAEscpABLHpAASx6YAEseoABLHqgASx60AEseuABLHrwASx7AAEsexABLHswASx7UAEse2ABLHtwASx7kAEse6ABLINQASyDcAEsg6ABLIPAASyD8AEshAABLIQQASyEIAEshDABLIRQASyEcAEshIABLISQASyEsAEshMABLIZQASyGYAEshnABLIaQASyOQAEsjmABLI6AASyOoAEsjtABLI7gASyO8AEsjwABLI8QASyPMAEsj1ABLI9gASyPcAEsj5ABLI+gASyXUAEsl3ABLJeQASyXsAEsl+ABLJfwASyYAAEsmBABLJggASyYQAEsmGABLJhwASyYgAEsmKABLJiwASygYAEsoIABLKCgASygwAEsoPABLKEAASyhEAEsoSABLKEwASyhUAEsoXABLKGAASyhkAEsobABLKHAASypcAEsqZABLKmwASyp0AEsqgABLKoQASyqIAEsqjABLKpAASyqYAEsqoABLKqQASyqoAEsqsABLKrQASyygAEssqABLLLAASyy4AEssxABLLMgASyzMAEss0ABLLNQASyzcAEss5ABLLOgASyzsAEss9ABLLPgASy4cAEsurABLL0gASy/YAEsv5ABLL+wASy/0AEsv/ABLMAQASzAMAEswEABLMBwASzCAAEsw9ABLMPwASzEEAEsxDABLMRQASzEcAEsxJABLMSwASzGgAEsxrABLMbgASzHEAEsx0ABLMdwASzHoAEsx9ABLMfwASzPoAEsz8ABLM/gASzQAAEs0DABLNBAASzQUAEs0GABLNBwASzQkAEs0LABLNDAASzQ0AEs0PABLNEAASzYsAEs2NABLNjwASzZEAEs2UABLNlQASzZYAEs2XABLNmAASzZoAEs2cABLNnQASzZ4AEs2gABLNoQASzhwAEs4eABLOIAASziIAEs4lABLOJgASzicAEs4oABLOKQASzisAEs4tABLOLgASzi8AEs4xABLOMgASzq0AEs6vABLOsQASzrMAEs62ABLOtwASzrgAEs65ABLOugASzrwAEs6+ABLOvwASzsAAEs7CABLOwwASzz4AEs9AABLPQgASz0QAEs9HABLPSAASz0kAEs9KABLPSwASz00AEs9PABLPUAASz1EAEs9TABLPVAASz88AEs/RABLP0wASz9UAEs/YABLP2QASz9oAEs/bABLP3AASz94AEs/gABLP4QASz+IAEs/kABLP5QAS0GAAEtBiABLQZQAS0GcAEtBqABLQawAS0GwAEtBtABLQbgAS0HAAEtByABLQcwAS0HQAEtB2ABLQdwAS0QoAEtEtABLRTQAS0W0AEtFvABLRcQAS0XMAEtF1ABLRdwAS0XgAEtF5ABLRfAAS0X0AEtF/ABLRgAAS0YMAEtGFABLRhgAS0YcAEtGKABLRiwAS0ZAAEtGpABLRsgAS0bQAEtG2ABLRvwAS0cIAEtHFABLRxwAS0hAAEtI0ABLSWwAS0n8AEtKCABLShAAS0oYAEtKIABLSigAS0owAEtKNABLSkAAS0qkAEtLKABLSzAAS0s4AEtLQABLS0gAS0tQAEtLWABLS2AAS0toAEtL7ABLS/gAS0wEAEtMEABLTBwAS0woAEtMNABLTEAAS0xMAEtMVABLTkAAS05IAEtOUABLTlgAS05kAEtOaABLTmwAS05wAEtOdABLTnwAS06EAEtOiABLTowAS06UAEtOmABLUIQAS1CMAEtQlABLUJwAS1CoAEtQrABLULAAS1C0AEtQuABLUMAAS1DIAEtQzABLUNAAS1DYAEtQ3ABLUsgAS1LQAEtS3ABLUuQAS1LwAEtS9ABLUvgAS1L8AEtTAABLUwgAS1MQAEtTFABLUxgAS1MgAEtTJABLU4gAS1OMAEtTkABLU5gAS1WEAEtVjABLVZQAS1WcAEtVqABLVawAS1WwAEtVtABLVbgAS1XAAEtVyABLVcwAS1XQAEtV2ABLVdwAS1fIAEtX0ABLV9gAS1fgAEtX7ABLV/AAS1f0AEtX+ABLV/wAS1gEAEtYDABLWBAAS1gUAEtYHABLWCAAS1oMAEtaFABLWhwAS1okAEtaMABLWjQAS1o4AEtaPABLWkAAS1pIAEtaUABLWlQAS1pYAEtaYABLWmQAS1xQAEtcWABLXGAAS1xoAEtcdABLXHgAS1x8AEtcgABLXIQAS1yMAEtclABLXJgAS1ycAEtcpABLXKgAS16UAEtenABLXqQAS16sAEteuABLXrwAS17AAEtexABLXsgAS17QAEte2ABLXtwAS17gAEte6ABLXuwAS2AQAEtgoABLYTwAS2HMAEth2ABLYeAAS2HoAEth8ABLYfgAS2IAAEtiBABLYhAAS2J0AEti6ABLYvAAS2L4AEtjAABLYwgAS2MQAEtjGABLYyAAS2OUAEtjoABLY6wAS2O4AEtjxABLY9AAS2PcAEtj6ABLY/AAS2XcAEtl5ABLZewAS2X0AEtmAABLZgQAS2YIAEtmDABLZhAAS2YYAEtmIABLZiQAS2YoAEtmMABLZjQAS2ggAEtoKABLaDQAS2g8AEtoSABLaEwAS2hQAEtoVABLaFgAS2hgAEtoaABLaGwAS2hwAEtoeABLaHwAS2poAEtqcABLangAS2qAAEtqjABLapAAS2qUAEtqmABLapwAS2qkAEtqrABLarAAS2q0AEtqvABLasAAS2ysAEtstABLbMAAS2zIAEts1ABLbNgAS2zcAEts4ABLbOQAS2zsAEts9ABLbPgAS2z8AEttBABLbQgAS270AEtu/ABLbwQAS28MAEtvGABLbxwAS28gAEtvJABLbygAS28wAEtvOABLbzwAS29AAEtvSABLb0wAS3E4AEtxQABLcUgAS3FQAEtxXABLcWAAS3FkAEtxaABLcWwAS3F0AEtxfABLcYAAS3GEAEtxjABLcZAAS3N8AEtzhABLc5AAS3OYAEtzpABLc6gAS3OsAEtzsABLc7QAS3O8AEtzxABLc8gAS3PMAEtz1ABLc9gAS3YkAEt2sABLdzAAS3ewAEt3uABLd8AAS3fIAEt30ABLd9wAS3fgAEt35ABLd/AAS3f0AEt3/ABLeAAAS3gIAEt4FABLeBgAS3gcAEt4KABLeCwAS3hQAEt4tABLeNgAS3jgAEt46ABLeQwAS3kYAEt5JABLeSwAS3pQAEt64ABLe3wAS3wMAEt8GABLfCAAS3woAEt8MABLfDgAS3xAAEt8RABLfFAAS3y0AEt9OABLfUAAS31IAEt9UABLfVgAS31gAEt9aABLfXAAS314AEt9/ABLfggAS34UAEt+IABLfiwAS344AEt+RABLflAAS35cAEt+ZABLgFAAS4BYAEuAYABLgGgAS4B0AEuAeABLgHwAS4CAAEuA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HABL6SgAS+k0AEvpQABL6UwAS+lYAEvpYABL60wAS+tUAEvrXABL62QAS+twAEvrdABL63gAS+t8AEvrgABL64gAS+uQAEvrlABL65gAS+ugAEvrpABL7ZAAS+2YAEvtoABL7agAS+20AEvtuABL7bwAS+3AAEvtxABL7cwAS+3UAEvt2ABL7dwAS+3kAEvt6ABL79QAS+/cAEvv6ABL7/AAS+/8AEvwAABL8AQAS/AIAEvwDABL8BQAS/AcAEvwIABL8CQAS/AsAEvwMABL8JQAS/CYAEvwnABL8KQAS/KQAEvymABL8qAAS/KoAEvytABL8rgAS/K8AEvywABL8sQAS/LMAEvy1ABL8tgAS/LcAEvy5ABL8ugAS/TUAEv03ABL9OQAS/TsAEv0+ABL9PwAS/UAAEv1BABL9QgAS/UQAEv1GABL9RwAS/UgAEv1KABL9SwAS/cYAEv3IABL9ygAS/cwAEv3PABL90AAS/dEAEv3SABL90wAS/dUAEv3XABL92AAS/dkAEv3bABL93AAS/lcAEv5ZABL+WwAS/l0AEv5gABL+YQAS/mIAEv5jABL+ZAAS/mYAEv5oABL+aQAS/moAEv5sABL+bQAS/ugAEv7qABL+7AAS/u4AEv7xABL+8gAS/vMAEv70ABL+9QAS/vcAEv75ABL++gAS/vsAEv79ABL+/gAS/0cAEv9rABL/kgAS/7YAEv+5ABL/uwAS/70AEv+/ABL/wQAS/8MAEv/EABL/xwAS/+AAEv/9ABL//wATAAEAEwADABMABQATAAcAEwAJABMACwATACgAEwArABMALgATADEAEwA0ABMANwATADoAEwA9ABMAPwATALoAEwC8ABMAvgATAMAAEwDDABMAxAATAMUAEwDGABMAxwATAMkAEwDLABMAzAATAM0AEwDPABMA0AATAUsAEwFNABMBTwATAVEAEwFUABMBVQATAVYAEwFXABMBWAATAVoAEwFcABMBXQATAV4AEwFgABMBYQATAdwAEwHeABMB4AATAeIAEwHlABMB5gATAecAEwHoABMB6QATAesAEwHtABMB7gATAe8AEwHxABMB8gATAm0AEwJvABMCcgATAnQAEwJ3ABMCeAATAnkAEwJ6ABMCewATAn0AEwJ/ABMCgAATAoEAEwKDABMChAATAv8AEwMBABMDAwATAwUAEwMIABMDCQATAwoAEwMLABMDDAATAw4AEwMQABMDEQATAxIAEwMUABMDFQATA5AAEwOSABMDlAATA5YAEwOZABMDmgATA5sAEwOcABMDnQATA58AEwOhABMDogATA6MAEwOlABMDpgATBCEAEwQjABMEJQATBCcAEwQqABMEKwATBCwAEwQtABMELgATBDAAEwQyABMEMwATBDQAEwQ2ABMENwATBMoAEwTtABMFDQATBS0AEwUvABMFMQATBTMAEwU1ABMFNwATBTgAEwU5ABMFPAATBT0AEwU/ABMFQAATBUIAEwVEABMFRQATBUYAEwVJABMFSgATBU8AEwVoABMFcQATBXMAEwV1ABMFfgATBYEAEwWEABMFhgATBc8AEwXzABMGGgATBj4AEwZBABMGQwATBkUAEwZHABMGSQATBksAEwZMABMGTwATBmgAEwaJABMGiwATBo0AEwaPABMGkQATBpMAEwaVABMGlwATBpkAEwa6ABMGvQATBsAAEwbDABMGxgATBskAEwbMABMGzwATBtIAEwbUABMHTwATB1EAEwdTABMHVQATB1gAEwdZABMHWgATB1sAEwdcABMHXgATB2AAEwdhABMHYgATB2QAEwdlABMH4AATB+IAEwfkABMH5gATB+kAEwfqABMH6wATB+wAEwftABMH7wATB/EAEwfyABMH8wATB/UAEwf2ABMIcQATCHMAEwh2ABMIeAATCHsAEwh8ABMIfQATCH4AEwh/ABMIgQATCIMAEwiEABMIhQATCIcAEwiIABMIoQATCKIAEwijABMIpQATCSAAEwkiABMJJAATCSYAEwkpABMJKgATCSsAEwksABMJLQATCS8AEwkxABMJMgATCTMAEwk1ABMJNgATCbEAEwmzABMJtQATCbcAEwm6ABMJuwATCbwAEwm9ABMJvgATCcAAEwnCABMJwwATCcQAEwnGABMJxwATCkIAEwpEABMKRgATCkgAEwpLABMKTAATCk0AEwpOABMKTwATClEAEwpTABMKVAATClUAEwpXABMKWAATCtMAEwrVABMK1wATCtkAEwrcABMK3QATCt4AEwrfABMK4AATCuIAEwrkABMK5QATCuYAEwroABMK6QATC2QAEwtmABMLaAATC2oAEwttABMLbgATC28AEwtwABMLcQATC3MAEwt1ABMLdgATC3cAEwt5ABMLegATC8MAEwvnABMMDgATDDIAEww1ABMMNwATDDkAEww7ABMMPQATDD8AEwxAABMMQwATDFwAEwx5ABMMewATDH0AEwx/ABMMgQATDIMAEwyFABMMhwATDKQAEwynABMMqgATDK0AEwywABMMswATDLYAEwy5ABMMuwATDTYAEw04ABMNOgATDTwAEw0/ABMNQAATDUEAEw1CABMNQwATDUUAEw1HABMNSAATDUkAEw1LABMNTAATDccAEw3JABMNywATDc0AEw3QABMN0QATDdIAEw3TABMN1AATDdYAEw3YABMN2QATDdoAEw3cABMN3QATDlgAEw5aABMOXAATDl4AEw5hABMOYgATDmMAEw5kABMOZQATDmcAEw5pABMOagATDmsAEw5tABMObgATDukAEw7rABMO7QATDu8AEw7yABMO8wATDvQAEw71ABMO9gATDvgAEw76ABMO+wATDvwAEw7+ABMO/wATD3oAEw98ABMPfgATD4AAEw+DABMPhAATD4UAEw+GABMPhwATD4kAEw+LABMPjAATD40AEw+PABMPkAATEAsAExANABMQDwATEBEAExAUABMQFQATEBYAExAXABMQGAATEBoAExAcABMQHQATEB4AExAgABMQIQATEJwAExCeABMQoAATEKIAExClABMQpgATEKcAExCoABMQqQATEKsAExCtABMQrgATEK8AExCxABMQsgATEUUAExFoABMRiAATEagAExGqABMRrAATEa4AExGwABMRsgATEbMAExG0ABMRtwATEbgAExG6ABMRuwATEb0AExG/ABMRwAATEcEAExHEABMRxQATEcoAExHjABMR7AATEe4AExHwABMR+QATEfwAExH/ABMSAQATEkoAExJuABMSlQATErkAExK8ABMSvgATEsAAExLCABMSxAATEsYAExLHABMSygATEuMAExMEABMTBgATEwgAExMKABMTDAATEw4AExMQABMTEgATExQAExM1ABMTOAATEzsAExM+ABMTQQATE0QAExNHABMTSgATE00AExNPABMTygATE8wAExPOABMT0AATE9MAExPUABMT1QATE9YAExPXABMT2QATE9sAExPcABMT3QATE98AExPgABMUWwATFF0AExRfABMUYQATFGQAExRlABMUZgATFGcAExRoABMUagATFGwAExRtABMUbgATFHAAExRxABMU7AATFO4AExTxABMU8wATFPYAExT3ABMU+AATFPkAExT6ABMU/AATFP4AExT/ABMVAAATFQIAExUDABMVHAATFR0AExUeABMVIAATFZsAExWdABMVnwATFaEAExWkABMVpQATFaYAExWnABMVqAATFaoAExWsABMVrQATFa4AExWwABMVsQATFiwAExYuABMWMAATFjIAExY1ABMWNgATFjcAExY4ABMWOQATFjsAExY9ABMWPgATFj8AExZBABMWQgATFr0AExa/ABMWwQATFsMAExbGABMWxwATFsgAExbJABMWygATFswAExbOABMWzwATFtAAExbSABMW0wATF04AExdQABMXUgATF1QAExdXABMXWAATF1kAExdaABMXWwATF10AExdfABMXYAATF2EAExdjABMXZAATF98AExfhABMX4wATF+UAExfoABMX6QATF+oAExfrABMX7AATF+4AExfwABMX8QATF/IAExf0ABMX9QATGD4AExhiABMYiQATGK0AExiwABMYsgATGLQAExi2ABMYuAATGLoAExi7ABMYvgATGNcAExj0ABMY9gATGPgAExj6ABMY/AATGP4AExkAABMZAgATGR8AExkiABMZJQATGSgAExkrABMZLgATGTEAExk0ABMZNgATGbEAExmzABMZtQATGbcAExm6ABMZuwATGbwAExm9ABMZvgATGcAAExnCABMZwwATGcQAExnGABMZxwATGkIAExpEABMaRgATGkgAExpLABMaTAATGk0AExpOABMaTwATGlEAExpTABMaVAATGlUAExpXABMaWAATGtMAExrVABMa1wATGtkAExrcABMa3QATGt4AExrfABMa4AATGuIAExrkABMa5QATGuYAExroABMa6QATG2QAExtmABMbaAATG2oAExttABMbbgATG28AExtwABMbcQATG3MAExt1ABMbdgATG3cAExt5ABMbegATG/UAExv3ABMb+QATG/sAExv+ABMb/wATHAAAExwBABMcAgATHAQAExwGABMcBwATHAgAExwKABMcCwATHIYAExyIABMcigATHIwAExyPABMckAATHJEAExySABMckwATHJUAExyXABMcmAATHJkAExybABMcnAATHRcAEx0ZABMdGwATHR0AEx0gABMdIQATHSIAEx0jABMdJAATHSYAEx0oABMdKQATHSoAEx0sABMdLQATHcAAEx3jABMeAwATHiMAEx4lABMeJwATHikAEx4rABMeLQATHi4AEx4vABMeMgATHjMAEx41ABMeNgATHjgAEx46ABMeOwATHjwAEx4/ABMeQAATHkUAEx5eABMeZwATHmkAEx5rABMedAATHncAEx56ABMefAATHsUAEx7pABMfEAATHzQAEx83ABMfOQATHzsAEx89ABMfPwATH0EAEx9CABMfRQATH14AEx9/ABMfgQATH4MAEx+FABMfhwATH4kAEx+LABMfjQATH48AEx+wABMfswATH7YAEx+5ABMfvAATH78AEx/CABMfxQATH8gAEx/KABMgRQATIEcAEyBJABMgSwATIE4AEyBPABMgUAATIFEAEyBSABMgVAATIFYAEyBXABMgWAATIFoAEyBbABMg1gATINgAEyDaABMg3AATIN8AEyDgABMg4QATIOIAEyDjABMg5QATIOcAEyDoABMg6QATIOsAEyDsABMhZwATIWkAEyFsABMhbgATIXEAEyFyABMhcwATIXQAEyF1ABMhdwATIXkAEyF6ABMhewATIX0AEyF+ABMhlwATIZgAEyGZABMhmwATIhYAEyIYABMiGgATIhwAEyIfABMiIAATIiEAEyIiABMiIwATIiUAEyInABMiKAATIikAEyIrABMiLAATIqcAEyKpABMiqwATIq0AEyKwABMisQATIrIAEyKzABMitAATIrYAEyK4ABMiuQATIroAEyK8ABMivQATIzgAEyM6ABMjPAATIz4AEyNBABMjQgATI0MAEyNEABMjRQATI0cAEyNJABMjSgATI0sAEyNNABMjTgATI8kAEyPLABMjzQATI88AEyPSABMj0wATI9QAEyPVABMj1gATI9gAEyPaABMj2wATI9wAEyPeABMj3wATJFoAEyRcABMkXgATJGAAEyRjABMkZAATJGUAEyRmABMkZwATJGkAEyRrABMkbAATJG0AEyRvABMkcAATJLkAEyTdABMlBAATJSgAEyUrABMlLQATJS8AEyUxABMlMwATJTUAEyU2ABMlOQATJVIAEyVvABMlcQATJXMAEyV1ABMldwATJXkAEyV7ABMlfQATJZoAEyWdABMloAATJaMAEyWmABMlqQATJawAEyWvABMlsQATJiwAEyYuABMmMAATJjIAEyY1ABMmNgATJjcAEyY4ABMmOQATJjsAEyY9ABMmPgATJj8AEyZBABMmQgATJr0AEya/ABMmwQATJsMAEybGABMmxwATJsgAEybJABMmygATJswAEybOABMmzwATJtAAEybSABMm0wATJ04AEydQABMnUgATJ1QAEydXABMnWAATJ1kAEydaABMnWwATJ10AEydfABMnYAATJ2EAEydjABMnZAATJ98AEyfhABMn4wATJ+UAEyfoABMn6QATJ+oAEyfrABMn7AATJ+4AEyfwABMn8QATJ/IAEyf0ABMn9QATKHAAEyhyABModAATKHYAEyh5ABMoegATKHsAEyh8ABMofQATKH8AEyiBABMoggATKIMAEyiFABMohgATKQEAEykDABMpBQATKQcAEykKABMpCwATKQwAEykNABMpDgATKRAAEykSABMpEwATKRQAEykWABMpFwATKZIAEymUABMplgATKZgAEymbABMpnAATKZ0AEymeABMpnwATKaEAEymjABMppAATKaUAEymnABMpqAATKjsAEypeABMqfgATKp4AEyqgABMqogATKqQAEyqmABMqqAATKqkAEyqqABMqrQATKq4AEyqwABMqsQATKrMAEyq1ABMqtgATKrcAEyq6ABMquwATKsAAEyrZABMq4gATKuQAEyrmABMq7wATKvIAEyr1ABMq9wATK0AAEytkABMriwATK68AEyuyABMrtAATK7YAEyu4ABMrugATK7wAEyu9ABMrwAATK9kAEyv6ABMr/AATK/4AEywAABMsAgATLAQAEywGABMsCAATLAoAEywrABMsLgATLDEAEyw0ABMsNwATLDoAEyw9ABMsQAATLEMAEyxFABMswAATLMIAEyzEABMsxgATLMkAEyzKABMsywATLMwAEyzNABMszwATLNEAEyzSABMs0wATLNUAEyzWABMtUQATLVMAEy1VABMtVwATLVoAEy1bABMtXAATLV0AEy1eABMtYAATLWIAEy1jABMtZAATLWYAEy1nABMt4gATLeQAEy3nABMt6QATLewAEy3tABMt7gATLe8AEy3wABMt8gATLfQAEy31ABMt9gATLfgAEy35ABMuEgATLhMAEy4UABMuFgATLpEAEy6TABMulQATLpcAEy6aABMumwATLpwAEy6dABMungATLqAAEy6iABMuowATLqQAEy6mABMupwATLyIAEy8kABMvJgATLygAEy8rABMvLAATLy0AEy8uABMvLwATLzEAEy8zABMvNAATLzUAEy83ABMvOAATL7MAEy+1ABMvtwATL7kAEy+8ABMvvQATL74AEy+/ABMvwAATL8IAEy/EABMvxQATL8YAEy/IABMvyQATMEQAEzBGABMwSAATMEoAEzBNABMwTgATME8AEzBQABMwUQATMFMAEzBVABMwVgATMFcAEzBZABMwWgATMNUAEzDXABMw2QATMNsAEzDeABMw3wATMOAAEzDhABMw4gATMOQAEzDmABMw5wATMOgAEzDqABMw6wATMTQAEzFYABMxfwATMaMAEzGmABMxqAATMaoAEzGsABMxrgATMbAAEzGxABMxtAATMc0AEzHqABMx7AATMe4AEzHwABMx8gATMfQAEzH2ABMx+AATMhUAEzIYABMyGwATMh4AEzIhABMyJAATMicAEzIqABMyLAATMqcAEzKpABMyqwATMq0AEzKwABMysQATMrIAEzKzABMytAATMrYAEzK4ABMyuQATMroAEzK8ABMyvQATMzgAEzM6ABMzPAATMz4AEzNBABMzQgATM0MAEzNEABMzRQATM0cAEzNJABMzSgATM0sAEzNNABMzTgATM8kAEzPLABMzzQATM88AEzPSABMz0wATM9QAEzPVABMz1gATM9gAEzPaABMz2wATM9wAEzPeABMz3wATNFoAEzRcABM0XgATNGAAEzRjABM0ZAATNGUAEzRmABM0ZwATNGkAEzRrABM0bAATNG0AEzRvABM0cAATNOsAEzTtABM07wATNPEAEzT0ABM09QATNPYAEzT3ABM0+AATNPoAEzT8ABM0/QATNP4AEzUAABM1AQATNXwAEzV+ABM1gAATNYIAEzWFABM1hgATNYcAEzWIABM1iQATNYsAEzWNABM1jgATNY8AEzWRABM1kgATNg0AEzYPABM2EQATNhMAEzYWABM2FwATNhgAEzYZABM2GgATNhwAEzYeABM2HwATNiAAEzYiABM2IwATNrYAEzbZABM2+QATNxkAEzcbABM3HQATNx8AEzchABM3IwATNyQAEzclABM3KAATNykAEzcrABM3LAATNy4AEzcwABM3MQATNzIAEzc1ABM3NgATNzsAEzdUABM3XQATN18AEzdhABM3agATN20AEzdwABM3cgATN7sAEzffABM4BgATOCoAEzgtABM4LwATODEAEzgzABM4NQATODcAEzg4ABM4OwATOFQAEzh1ABM4dwATOHkAEzh7ABM4fQATOH8AEziBABM4gwATOIUAEzimABM4qQATOKwAEzivABM4sgATOLUAEzi4ABM4uwATOL4AEzjAABM5OwATOT0AEzk/ABM5QQATOUQAEzlFABM5RgATOUcAEzlIABM5SgATOUwAEzlNABM5TgATOVAAEzlRABM5zAATOc4AEznQABM50gATOdUAEznWABM51wATOdgAEznZABM52wATOd0AEzneABM53wATOeEAEzniABM6XQATOl8AEzpiABM6ZAATOmcAEzpoABM6aQATOmoAEzprABM6bQATOm8AEzpwABM6cQATOnMAEzp0ABM6jQATOo4AEzqPABM6kQATOwwAEzsOABM7EAATOxIAEzsVABM7FgATOxcAEzsYABM7GQATOxsAEzsdABM7HgATOx8AEzshABM7IgATO50AEzufABM7oQATO6MAEzumABM7pwATO6gAEzupABM7qgATO6wAEzuuABM7rwATO7AAEzuyABM7swATPC4AEzwwABM8MgATPDQAEzw3ABM8OAATPDkAEzw6ABM8OwATPD0AEzw/ABM8QAATPEEAEzxDABM8RAATPL8AEzzBABM8wwATPMUAEzzIABM8yQATPMoAEzzLABM8zAATPM4AEzzQABM80QATPNIAEzzUABM81QATPVAAEz1SABM9VAATPVYAEz1ZABM9WgATPVsAEz1cABM9XQATPV8AEz1hABM9YgATPWMAEz1lABM9ZgATPa8AEz3TABM9+gATPh4AEz4hABM+IwATPiUAEz4nABM+KQATPisAEz4sABM+LwATPkgAEz5lABM+ZwATPmkAEz5rABM+bQATPm8AEz5xABM+cwATPpAAEz6TABM+lgATPpkAEz6cABM+nwATPqIAEz6lABM+pwATPyIAEz8kABM/JgATPygAEz8rABM/LAATPy0AEz8uABM/LwATPzEAEz8zABM/NAATPzUAEz83ABM/OAATP7MAEz+1ABM/twATP7kAEz+8ABM/vQATP74AEz+/ABM/wAATP8IAEz/EABM/xQATP8YAEz/IABM/yQATQEQAE0BGABNASAATQEoAE0BNABNATgATQE8AE0BQABNAUQATQFMAE0BVABNAVgATQFcAE0BZABNAWgATQNUAE0DXABNA2QATQNsAE0DeABNA3wATQOAAE0DhABNA4gATQOQAE0DmABNA5wATQOgAE0DqABNA6wATQWYAE0FoABNBagATQWwAE0FvABNBcAATQXEAE0FyABNBcwATQXUAE0F3ABNBeAATQXkAE0F7ABNBfAATQfcAE0H5ABNB+wATQf0AE0IAABNCAQATQgIAE0IDABNCBAATQgYAE0IIABNCCQATQgoAE0IMABNCDQATQogAE0KKABNCjAATQo4AE0KRABNCkgATQpMAE0KUABNClQATQpcAE0KZABNCmgATQpsAE0KdABNCngATQzEAE0NUABNDdAATQ5QAE0OWABNDmAATQ5oAE0OcABNDngATQ58AE0OgABNDowATQ6QAE0OmABNDpwATQ6kAE0OrABNDrAATQ60AE0OwABNDsQATQ7YAE0PPABND2AATQ9oAE0PcABND5QATQ+gAE0PrABND7QATRDYAE0RaABNEgQATRKUAE0SoABNEqgATRKwAE0SuABNEsAATRLIAE0SzABNEtgATRM8AE0TwABNE8gATRPQAE0T2ABNE+AATRPoAE0T8ABNE/gATRQAAE0UhABNFJAATRScAE0UqABNFLQATRTAAE0UzABNFNgATRTkAE0U7ABNFtgATRbgAE0W6ABNFvAATRb8AE0XAABNFwQATRcIAE0XDABNFxQATRccAE0XIABNFyQATRcsAE0XMABNGRwATRkkAE0ZLABNGTQATRlAAE0ZRABNGUgATRlMAE0ZUABNGVgATRlgAE0ZZABNGWgATRlwAE0ZdABNG2AATRtoAE0bdABNG3wATRuIAE0bjABNG5AATRuUAE0bmABNG6AATRuoAE0brABNG7AATRu4AE0bvABNHCAATRwkAE0cKABNHDAATR4cAE0eJABNHiwATR40AE0eQABNHkQATR5IAE0eTABNHlAATR5YAE0eYABNHmQATR5oAE0ecABNHnQATSBgAE0gaABNIHAATSB4AE0ghABNIIgATSCMAE0gkABNIJQATSCcAE0gpABNIKgATSCsAE0gtABNILgATSKkAE0irABNIrQATSK8AE0iyABNIswATSLQAE0i1ABNItgATSLgAE0i6ABNIuwATSLwAE0i+ABNIvwATSToAE0k8ABNJPgATSUAAE0lDABNJRAATSUUAE0lGABNJRwATSUkAE0lLABNJTAATSU0AE0lPABNJUAATScsAE0nNABNJzwATSdEAE0nUABNJ1QATSdYAE0nXABNJ2AATSdoAE0ncABNJ3QATSd4AE0ngABNJ4QATSioAE0pOABNKdQATSpkAE0qcABNKngATSqAAE0qiABNKpAATSqYAE0qnABNKqgATSsMAE0rgABNK4gATSuQAE0rmABNK6AATSuoAE0rsABNK7gATSwsAE0sOABNLEQATSxQAE0sXABNLGgATSx0AE0sgABNLIgATS50AE0ufABNLogATS6QAE0unABNLqAATS6kAE0uqABNLqwATS60AE0uvABNLsAATS7EAE0uzABNLtAATTC8AE0wxABNMMwATTDUAE0w4ABNMOQATTDoAE0w7ABNMPAATTD4AE0xAABNMQQATTEIAE0xEABNMRQATTMAAE0zCABNMxAATTMYAE0zJABNMygATTMsAE0zMABNMzQATTM8AE0zRABNM0gATTNMAE0zVABNM1gATTVEAE01TABNNVgATTVgAE01bABNNXAATTV0AE01eABNNXwATTWEAE01jABNNZAATTWUAE01nABNNaAATTeMAE03lABNN5wATTekAE03sABNN7QATTe4AE03vABNN8AATTfIAE030ABNN9QATTfYAE034ABNN+QATTnQAE052ABNOeAATTnoAE059ABNOfgATTn8AE06AABNOgQATToMAE06FABNOhgATTocAE06JABNOigATTwUAE08HABNPCQATTwsAE08OABNPDwATTxAAE08RABNPEgATTxQAE08WABNPFwATTxgAE08aABNPGwATT64AE0/RABNP8QATUBEAE1ATABNQFQATUBcAE1AZABNQGwATUBwAE1AdABNQIAATUCEAE1AjABNQJAATUCYAE1AoABNQKQATUCoAE1AtABNQLgATUDMAE1BMABNQVQATUFcAE1BZABNQYgATUGUAE1BoABNQagATULMAE1DXABNQ/gATUSIAE1ElABNRJwATUSkAE1ErABNRLQATUS8AE1EwABNRMwATUUwAE1FtABNRbwATUXEAE1FzABNRdQATUXcAE1F5ABNRewATUX0AE1GeABNRoQATUaQAE1GnABNRqgATUa0AE1GwABNRswATUbYAE1G4ABNSMwATUjUAE1I3ABNSOQATUjwAE1I9ABNSPgATUj8AE1JAABNSQgATUkQAE1JFABNSRgATUkgAE1JJABNSxAATUsYAE1LIABNSygATUs0AE1LOABNSzwATUtAAE1LRABNS0wATUtUAE1LWABNS1wATUtkAE1LaABNTVQATU1cAE1NaABNTXAATU18AE1NgABNTYQATU2IAE1NjABNTZQATU2cAE1NoABNTaQATU2sAE1NsABNThQATU4YAE1OHABNTiQATVAQAE1QGABNUCAATVAoAE1QNABNUDgATVA8AE1QQABNUEQATVBMAE1QVABNUFgATVBcAE1QZABNUGgATVJUAE1SXABNUmQATVJsAE1SeABNUnwATVKAAE1ShABNUogATVKQAE1SmABNUpwATVKgAE1SqABNUqwATVSYAE1UoABNVKgATVSwAE1UvABNVMAATVTEAE1UyABNVMwATVTUAE1U3ABNVOAATVTkAE1U7ABNVPAATVbcAE1W5ABNVuwATVb0AE1XAABNVwQATVcIAE1XDABNVxAATVcYAE1XIABNVyQATVcoAE1XMABNVzQATVkgAE1ZKABNWTAATVk4AE1ZRABNWUgATVlMAE1ZUABNWVQATVlcAE1ZZABNWWgATVlsAE1ZdABNWXgATVqcAE1bLABNW8gATVxYAE1cZABNXGwATVx0AE1cfABNXIQATVyMAE1ckABNXJwATV0AAE1ddABNXXwATV2EAE1djABNXZQATV2cAE1dpABNXawATV4gAE1eLABNXjgATV5EAE1eUABNXlwATV5oAE1edABNXnwATWBoAE1gcABNYHgATWCAAE1gjABNYJAATWCUAE1gmABNYJwATWCkAE1grABNYLAATWC0AE1gvABNYMAATWKsAE1itABNYrwATWLEAE1i0ABNYtQATWLYAE1i3ABNYuAATWLoAE1i8ABNYvQATWL4AE1jAABNYwQATWTwAE1k+ABNZQAATWUIAE1lFABNZRgATWUcAE1lIABNZSQATWUsAE1lNABNZTgATWU8AE1lRABNZUgATWc0AE1nPABNZ0QATWdMAE1nWABNZ1wATWdgAE1nZABNZ2gATWdwAE1neABNZ3wATWeAAE1niABNZ4wATWl4AE1pgABNaYgATWmQAE1pnABNaaAATWmkAE1pqABNaawATWm0AE1pvABNacAATWnEAE1pzABNadAATWu8AE1rxABNa8wATWvUAE1r4ABNa+QATWvoAE1r7ABNa/AATWv4AE1sAABNbAQATWwIAE1sEABNbBQATW4AAE1uCABNbhAATW4YAE1uJABNbigATW4sAE1uMABNbjQATW48AE1uRABNbkgATW5MAE1uVABNblgATW6cAE1uoABNbqgATXCUAE1wnABNcKQATXCsAE1wtABNcLgATXC8AE1wwABNcMQATXDMAE1w1ABNcNgATXDcAE1w5ABNcOgATXLUAE1y3ABNcuQATXLsAE1y9ABNcvgATXL8AE1zAABNcwQATXMMAE1zFABNcxgATXMcAE1zJABNcygATXUUAE11HABNdSgATXUwAE11OABNdTwATXVAAE11RABNdUgATXVQAE11WABNdVwATXVgAE11aABNdWwATXWwAE11xABNddAATXXYAE12PABNdkAATXZEAE12TABNdrAATXa0AE12uABNdsAATXckAE13KABNdywATXc0AE13eABNd7QATXgYAE14VABNeJwATXjsAE15SABNeZAATXnUAE152ABNeeAATXpEAE16SABNekwATXpUAE16tABNevgATXsgAE17VAAAAAAAABAQAAAAAAAHeMQAAAAAAAAAAAAAAAAATXt0= + + ObvMessenger/CoreData/ObvMessenger.xcdatamodeld/ObvMessenger 67.xcdatamodel + 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9AAAbTAAAG1sAABtqAAAbhAAAG4UAABuLAAAblwAAG60AABu8AAAbvwAAG84AABvdAAAb4AAAG+8AABv+AAAcAQAAHBAAABwfAAAcIwAAHDIAABxBAAAcQgAAHE4AABxPAAAcUAAAHFEAABxSAAAcZwAAHGgAABxwAAAcfAAAHJAAAByfAAAcrgAAHL0AABzBAAAc0AAAHN8AABzuAAAc/QAAHQwAAB0YAAAdKgAAHTkAAB1IAAAdVwAAHWYAAB11AAAdhAAAHZMAAB2bAAAdsAAAHbEAAB25AAAdxQAAHdkAAB3oAAAd9wAAHgYAAB4KAAAeGQAAHigAAB43AAAeRgAAHlUAAB5hAAAecwAAHoIAAB6RAAAeoAAAHq8AAB7JAAAeygAAHtAAAB7cAAAe8gAAHwEAAB8EAAAfEwAAHyIAAB8lAAAfNAAAH0MAAB9GAAAfVQAAH2QAAB9oAAAfdwAAH4YAAB+HAAAfpQAAH6YAAB+nAAAfqAAAH6kAAB+qAAAfqwAAH6wAAB+tAAAfrgAAH68AAB+wAAAfsQAAH7IAAB/HAAAfyAAAH9AAAB/cAAAf8AAAH/8AACAOAAAgHQAAICEAACAwAAAgPwAAIE4AACBdAAAgbAAAIHgAACCKAAAgmQAAIKgAACC3AAAgxgAAIOAAACDhAAAg5wAAIPMAACEJAAAhGAAAIRsAACEqAAAhOQAAITwAACFLAAAhWgAAIV0AACFsAAAhewAAIX8AACGOAAAhnQAAIZ4AACGuAAAhrwAAIbAAACGxAAAhsgAAIbMAACG0AAAhyQAAIcoAACHSAAAh3gAAIfIAACIBAAAiEAAAIh8AACIjAAAiMgAAIkEAACJQAAAiXwAAIm4AACJ6AAAijAAAIpsAACKcAAAiqwAAIroAACLJAAAiygAAItkAACLoAAAi9wAAIwwAACMNAAAjFQAAIyEAACM1AAAjRAAAI1MAACNiAAAjZgAAI3UAACOEAAAjkwAAI6IAACOxAAAjvQAAI88AACPeAAAj7QAAI/wAACQLAAAkGgAAJCkAACQ4AAAkTQAAJE4AACRWAAAkYgAAJHYAACSFAAAklAAAJKMAACSnAAAktgAAJMUAACTUAAAk4wAAJPIAACT+AAAlEAAAJR8AACUuAAAlPQAAJUwAACVbAAAlagAAJXkAACWOAAAljwAAJZcAACWjAAAltwAAJcYAACXVAAAl5AAAJegAACX3AAAmBgAAJhUAACYkAAAmMwAAJj8AACZRAAAmYAAAJm8AACZ+AAAmjQAAJpwAACarAAAmugAAJs8AACbQAAAm2AAAJuQAACb4AAAnBwAAJxYAACcXAAAnJgAAJyoAACc5AAAnSAAAJ1cAACdmAAAndQAAJ4EAACeTAAAnogAAJ7EAACfAAAAnzwAAJ94AACftAAAn/AAAKBEAACgSAAAoGgAAKCYAACg6AAAoSQAAKFgAAChnAAAoawAAKHoAACiJAAAomAAAKKcAACi2AAAowgAAKNQAACjjAAAo8gAAKQEAACkQAAApHwAAKS4AACk9AAApUgAAKVMAAClbAAApZwAAKXsAACmKAAApmQAAKagAACmsAAApuwAAKcoAACnZAAAp6AAAKfcAACoDAAAqFQAAKiQAACozAAAqQgAAKlEAACpgAAAqbwAAKn4AACp/AAAqgwAAKowAACqNAAAqrwAAKrAAACq2AAAqwgAAKtgAACrnAAAq6gAAKvkAACsIAAArCwAAKxoAACspAAArLAAAKzsAACtKAAArTgAAK10AACtsAAArbQAAK50AACueAAArnwAAK6AAACuhAAArogAAK6MAACukAAArpQAAK6YAACunAAArqAAAK6kAACuqAAArqwAAK6wAACutAAArrgAAK68AACuwAAArsQAAK7IAACvHAAAryAAAK9AAACvcAAAr8AAAK/8AACwOAAAsHQAALCEAACwwAAAsPwAALE4AACxdAAAsbAAALHgAACyKAAAsmQAALKgAACy3AAAsxgAALNUAACzkAAAs8wAALQgAAC0JAAAtEQAALR0AAC0xAAAtQAAALU8AAC1eAAAtYgAALXEAAC2AAAAtjwAALZ4AAC2tAAAtuQAALcsAAC3aAAAt6QAALfgAAC4HAAAuFgAALiUAAC40AAAuSQAALkoAAC5SAAAuXgAALnIAAC6BAAAukAAALp8AAC6jAAAusgAALsEAAC7QAAAu3wAALu4AAC76AAAvDAAALxsAAC8qAAAvOQAAL0gAAC9XAAAvZgAAL3UAAC+KAAAviwAAL5MAAC+fAAAvswAAL8IAAC/RAAAv4AAAL+QAAC/zAAAwAgAAMBEAADAgAAAwLwAAMDsAADBNAAAwXAAAMGsAADB6AAAwiQAAMIoAADCZAAAwqAAAMLcAADDMAAAwzQAAMNUAADDhAAAw9QAAMQQAADETAAAxIgAAMSYAADE1AAAxRAAAMVMAADFiAAAxcQAAMX0AADGPAAAxngAAMa0AADG8AAAxywAAMcwAADHbAAAx6gAAMfkAADIOAAAyDwAAMhcAADIjAAAyNwAAMkYAADJVAAAyZAAAMmgAADJ3AAAyhgAAMpUAADKkAAAyswAAMr8AADLRAAAy4AAAMu8AADL+AAAzDQAAMxwAADMrAAAzOgAAM08AADNQAAAzWAAAM2QAADN4AAAzhwAAM5YAADOlAAAzqQAAM7gAADPHAAAz1gAAM+UAADP0AAA0AAAANBIAADQhAAA0MAAAND8AADROAAA0aAAANGkAADRvAAA0ewAANJEAADSgAAA0owAANLIAADTBAAA0xAAANNMAADTiAAA05QAANPQAADUDAAA1BwAANRYAADUlAAA1JgAANTQAADU1AAA1NgAANTcAADU4AAA1OQAANU4AADVPAAA1VwAANWMAADV3AAA1hgAANZUAADWkAAA1qAAANbcAADXGAAA11QAANeQAADXzAAA1/wAANhEAADYgAAA2LwAANj4AADZNAAA2XAAANmsAADZ6AAA2jwAANpAAADaYAAA2pAAANrgAADbHAAA21gAANuUAADbpAAA2+AAANwcAADcWAAA3JQAANzQAADdAAAA3UgAAN2EAADdwAAA3fwAAN44AADePAAA3ngAAN60AADe8AAA30QAAN9IAADfaAAA35gAAN/oAADgJAAA4GAAAOCcAADgrAAA4OgAAOEkAADhYAAA4ZwAAOHYAADiCAAA4lAAAOKMAADiyAAA4wQAAONAAADjfAAA47gAAOP0AADkSAAA5EwAAORsAADknAAA5OwAAOUoAADlZAAA5aAAAOWwAADl7AAA5igAAOZkAADmoAAA5twAAOcMAADnVAAA55AAAOfMAADoCAAA6EQAAOiAAADovAAA6PgAAOlMAADpUAAA6XAAAOmgAADp8AAA6iwAAOpoAADqpAAA6rQAAOrwAADrLAAA62gAAOukAADr4AAA7BAAAOxYAADslAAA7NAAAO0MAADtSAAA7YQAAO3AAADt/AAA7ggAAO4sAADuaAAA7qQAAO7gAADvNAAA7zgAAO9YAADviAAA79gAAPAUAADwUAAA8IwAAPCcAADw2AAA8RQAAPFQAADxjAAA8cgAAPH4AADyQAAA8nwAAPK4AADy9AAA8zAAAPOYAADznAAA87QAAPPkAAD0PAAA9HgAAPSEAAD0wAAA9PwAAPUIAAD1RAAA9YAAAPWMAAD1yAAA9gQAAPYUAAD2UAAA9owAAPaQAAD2qAAA9vwAAPcAAAD3IAAA91AAAPegAAD33AAA+BgAAPhUAAD4ZAAA+KAAAPjcAAD5GAAA+VQAAPmQAAD5wAAA+ggAAPpEAAD6gAAA+rwAAPr4AAD7NAAA+3AAAPusAAD7vAAA+9gAAPvcAAD8ZAAA/GgAAPyAAAD8sAAA/QgAAP1EAAD9UAAA/YwAAP3IAAD91AAA/hAAAP5MAAD+WAAA/pQAAP7QAAD+4AAA/xwAAP9YAAD/XAAA/4QAAP+IAAD/jAAA/5AAAP/kAAD/6AABAAgAAQA4AAEAiAABAMQAAQEAAAEBPAABAUwAAQGIAAEBxAABAgAAAQI8AAECeAABAqgAAQLwAAEDLAABA2gAAQOkAAED4AABBBwAAQRYAAEElAABBOgAAQTsAAEFDAABBTwAAQWMAAEFyAABBgQAAQZAAAEGUAABBowAAQbIAAEHBAABB0AAAQd8AAEHrAABB/QAAQgwAAEIbAABCKgAAQjkAAEJIAABCVwAAQmYAAEJ7AABCfAAAQoQAAEKQAABCpAAAQrMAAELCAABC0QAAQtUAAELkAABC8wAAQwIAAEMRAABDIAAAQywAAEM+AABDTQAAQ1wAAENrAABDegAAQ4kAAEOYAABDpwAAQ6oAAEOvAABDtgAAQ9AAAEPRAABD1wAAQ+MAAEP5AABECAAARAsAAEQaAABEKQAARCwAAEQ7AABESgAARE0AAERcAABEawAARG8AAER+AABEjQAARI4AAESUAABEqQAARKoAAESyAABEvgAARNIAAEThAABE8AAARP8AAEUDAABFEgAARSEAAEUwAABFPwAARU4AAEVaAABFbAAARXsAAEWKAABFmQAARagAAEXCAABFwwAARckAAEXVAABF6wAARfoAAEX9AABGDAAARhsAAEYeAABGLQAARjwAAEY/AABGTgAARl0AAEZhAABGcAAARn8AAEaAAABGmAAARpkAAEaaAABGmwAARpwAAEadAABGngAARrMAAEa0AABGvAAARsgAAEbcAABG6wAARvoAAEcJAABHDQAARxwAAEcrAABHOgAAR0kAAEdYAABHZAAAR3YAAEeFAABHlAAAR6MAAEeyAABHwQAAR9AAAEffAABH9AAAR/UAAEf9AABICQAASB0AAEgsAABIOwAASEoAAEhOAABIXQAASGwAAEh7AABIigAASJkAAEilAABItwAASMYAAEjVAABI5AAASPMAAEkCAABJEQAASSAAAEk1AABJNgAAST4AAElKAABJXgAASW0AAEl8AABJiwAASY8AAEmeAABJrQAASbwAAEnLAABJ2gAASeYAAEn4AABKBwAAShYAAEolAABKNAAASkMAAEpSAABKYQAASnYAAEp3AABKfwAASosAAEqfAABKrgAASr0AAErMAABK0AAASt8AAEruAABK/QAASwwAAEsbAABLJwAASzkAAEtIAABLVwAAS2YAAEt1AABLjwAAS5AAAEuWAABLogAAS7gAAEvHAABLygAAS9kAAEvoAABL6wAAS/oAAEwJAABMDAAATBsAAEwqAABMLgAATD0AAExMAABMTQAATF0AAExeAABMXwAATGAAAExhAABMYgAATHcAAEx4AABMgAAATIwAAEygAABMrwAATL4AAEzNAABM0QAATOAAAEzvAABM/gAATQ0AAE0cAABNKAAATToAAE1JAABNWAAATWcAAE12AABNhQAATZQAAE2jAABNuAAATbkAAE3BAABNzQAATeEAAE3wAABN/wAATg4AAE4SAABOIQAATjAAAE4/AABOTgAATl0AAE5pAABOewAATooAAE6ZAABOqAAATrcAAE7GAABO1QAATuQAAE75AABO+gAATwIAAE8OAABPIgAATzEAAE9AAABPTwAAT1MAAE9iAABPcQAAT4AAAE+PAABPngAAT6oAAE+8AABPywAAT9oAAE/pAABP+AAAUBIAAFATAABQGQAAUCUAAFA7AABQSgAAUE0AAFBcAABQawAAUG8AAFBzAABQdAAAUIMAAFCSAABQlQAAUKQAAFCzAABQtwAAUMYAAFDVAABQ4QAAUOIAAFDjAABQ5AAAUPkAAFD6AABRAgAAUQ4AAFEiAABRMQAAUUAAAFFPAABRUwAAUWIAAFFxAABRgAAAUY8AAFGeAABRqgAAUbwAAFHLAABR2gAAUekAAFH4AABSBwAAUhYAAFIlAABSOgAAUjsAAFJDAABSTwAAUmMAAFJyAABSgQAAUpAAAFKUAABSowAAUrIAAFLBAABS0AAAUt8AAFLrAABS/QAAUwwAAFMbAABTKgAAUzkAAFNbAABTXAAAU2IAAFNuAABThAAAU5MAAFOWAABTpQAAU7QAAFO3AABTxgAAU9UAAFPYAABT5wAAU/YAAFP6AABUCQAAVBgAAFQZAABUNwAAVDgAAFQ5AABUOgAAVDsAAFQ8AABUPQAAVD4AAFQ/AABUVAAAVFUAAFRdAABUaQAAVH0AAFSMAABUmwAAVKoAAFSuAABUvQAAVMwAAFTbAABU6gAAVPkAAFUFAABVFwAAVSYAAFU1AABVRAAAVVMAAFViAABVcQAAVYAAAFWVAABVlgAAVZ4AAFWqAABVvgAAVc0AAFXcAABV6wAAVe8AAFX+AABWDQAAVhwAAFYrAABWOgAAVkYAAFZYAABWZwAAVnYAAFaFAABWlAAAVqMAAFayAABWwQAAVtYAAFbXAABW3wAAVusAAFb/AABXDgAAVx0AAFcsAABXMAAAVz8AAFdOAABXXQAAV2wAAFd7AABXhwAAV5kAAFeoAABXqQAAV7gAAFfHAABX1gAAV+UAAFf0AABYAwAAWBgAAFgZAABYIQAAWC0AAFhBAABYUAAAWF8AAFhuAABYcgAAWIEAAFiQAABYnwAAWK4AAFi9AABYyQAAWNsAAFjqAABY+QAAWQgAAFkXAABZJgAAWTUAAFlEAABZWQAAWVoAAFliAABZbgAAWYIAAFmRAABZoAAAWa8AAFmzAABZwgAAWdEAAFngAABZ7wAAWf4AAFoKAABaHAAAWisAAFo6AABaSQAAWlgAAFpnAABadgAAWoUAAFqaAABamwAAWqMAAFqvAABawwAAWtIAAFrhAABa8AAAWvQAAFsDAABbEgAAWyEAAFswAABbPwAAW0sAAFtdAABbbAAAW3sAAFuKAABbmQAAW6gAAFu3AABbxgAAW9sAAFvcAABb5AAAW/AAAFwEAABcEwAAXCIAAFwxAABcNQAAXEQAAFxTAABcYgAAXHEAAFyAAABcjAAAXJ4AAFytAABcvAAAXMsAAFzaAABc6QAAXPgAAF0HAABdHAAAXR0AAF0lAABdMQAAXUUAAF1UAABdYwAAXXIAAF12AABdhQAAXZQAAF2jAABdsgAAXcEAAF3NAABd3wAAXe4AAF39AABeDAAAXhsAAF4qAABeOQAAXkgAAF5dAABeXgAAXmYAAF5yAABehgAAXpUAAF6kAABeswAAXrcAAF7GAABe1QAAXuQAAF7zAABfAgAAXw4AAF8gAABfLwAAXz4AAF9NAABfXAAAX2sAAF96AABfiQAAX54AAF+fAABfpwAAX7MAAF/HAABf1gAAX+UAAF/0AABf+AAAYAcAAGAWAABgJQAAYDQAAGBDAABgTwAAYGEAAGBwAABgfwAAYI4AAGCdAABgrAAAYLsAAGDKAABg3wAAYOAAAGDoAABg9AAAYQgAAGEXAABhJgAAYTUAAGE5AABhSAAAYVcAAGFmAABhdQAAYYQAAGGQAABhogAAYbEAAGHAAABhzwAAYd4AAGHtAABh/AAAYgsAAGIgAABiIQAAYikAAGI1AABiSQAAYlgAAGJnAABidgAAYnoAAGKJAABimAAAYqcAAGK2AABixQAAYtEAAGLjAABi8gAAYwEAAGMQAABjHwAAYy4AAGM9AABjTAAAY2EAAGNiAABjagAAY3YAAGOKAABjmQAAY6gAAGO3AABjuwAAY8oAAGPZAABj6AAAY/cAAGP4AABkBwAAZBMAAGQlAABkNAAAZEMAAGRSAABkYQAAZHAAAGR/AABkjgAAZJEAAGSWAABknQAAZLcAAGS4AABkvgAAZMoAAGTgAABk7wAAZPIAAGUBAABlEAAAZRMAAGUiAABlMQAAZTQAAGVDAABlUgAAZVYAAGVlAABldAAAZXUAAGV9AABlfgAAZX8AAGWUAABllQAAZZ0AAGWpAABlvQAAZcwAAGXbAABl6gAAZe4AAGX9AABmDAAAZhsAAGYqAABmOQAAZkUAAGZXAABmZgAAZnUAAGaEAABmkwAAZq0AAGauAABmtAAAZsAAAGbWAABm5QAAZugAAGb3AABnBgAAZwkAAGcYAABnJwAAZyoAAGc5AABnSAAAZ0wAAGdbAABnagAAZ2sAAGeBAABnggAAZ4MAAGeEAABnhQAAZ4YAAGeHAABniAAAZ4kAAGeKAABnnwAAZ6AAAGeoAABntAAAZ8gAAGfXAABn5gAAZ/UAAGf5AABoCAAAaBcAAGgmAABoNQAAaEQAAGhQAABoYgAAaHEAAGiAAABojwAAaJ4AAGi4AABouQAAaL8AAGjLAABo4QAAaPAAAGjzAABpAgAAaREAAGkUAABpIwAAaTIAAGk1AABpRAAAaVMAAGlXAABpZgAAaXUAAGl2AABpfAAAaX0AAGmSAABpkwAAaZsAAGmnAABpuwAAacoAAGnZAABp6AAAaewAAGn7AABqCgAAahkAAGooAABqNwAAakMAAGpVAABqZAAAanMAAGqCAABqkQAAaqAAAGqvAABqvgAAasIAAGrJAABqygAAauwAAGrtAABq8wAAav8AAGsVAABrJAAAaycAAGs2AABrRQAAa0gAAGtXAABrZgAAa2kAAGt4AABrhwAAa4sAAGuaAABrqQAAa6oAAGuyAABrswAAa7QAAGvJAABrygAAa9IAAGveAABr8gAAbAEAAGwQAABsHwAAbCMAAGwyAABsQQAAbFAAAGxfAABsbgAAbHoAAGyMAABsmwAAbKoAAGy5AABsyAAAbNcAAGzmAABs9QAAbQoAAG0LAABtEwAAbR8AAG0zAABtQgAAbVEAAG1gAABtZAAAbXMAAG2CAABtkQAAbaAAAG2vAABtuwAAbc0AAG3cAABt6wAAbfoAAG4JAABuGAAAbicAAG42AABuOQAAbkAAAG5HAABuYQAAbmIAAG5oAABudAAAbooAAG6ZAABunAAAbqsAAG66AABuvQAAbswAAG7bAABu3gAAbu0AAG78AABvAAAAbw8AAG8eAABvHwAAbyUAAG8mAABvOwAAbzwAAG9EAABvUAAAb2QAAG9zAABvggAAb5EAAG+VAABvpAAAb7MAAG/CAABv0QAAb+AAAG/sAABv/gAAcA0AAHAcAABwKwAAcDoAAHBJAABwWAAAcGcAAHB8AABwfQAAcIUAAHCRAABwpQAAcLQAAHDDAABw0gAAcNYAAHDlAABw9AAAcQMAAHESAABxIQAAcS0AAHE/AABxTgAAcV0AAHFsAABxewAAcYoAAHGZAABxqAAAcawAAHGtAABxswAAcboAAHHUAABx1QAAcdsAAHHnAABx/QAAcgwAAHIPAAByHgAAci0AAHIwAAByPwAAck4AAHJRAAByYAAAcm8AAHJzAAByggAAcpEAAHKSAABymAAAcpkAAHKuAAByrwAAcrcAAHLDAABy1wAAcuYAAHL1AABzBAAAcwgAAHMXAABzJgAAczUAAHNEAABzUwAAc18AAHNxAABzgAAAc48AAHOeAABzrQAAc8cAAHPIAABzzgAAc9oAAHPwAABz/wAAdAIAAHQRAAB0IAAAdCMAAHQyAAB0QQAAdEQAAHRTAAB0YgAAdGYAAHR1AAB0hAAAdIUAAHSXAAB0mAAAdJkAAHSaAAB0mwAAdJwAAHSdAAB0ngAAdLMAAHS0AAB0vAAAdMgAAHTcAAB06wAAdPoAAHUJAAB1DQAAdRwAAHUrAAB1OgAAdUkAAHVYAAB1ZAAAdXYAAHWFAAB1lAAAdaMAAHWyAAB1zAAAdc0AAHXTAAB13wAAdfUAAHYEAAB2BwAAdhYAAHYlAAB2KAAAdjcAAHZGAAB2SQAAdlgAAHZnAAB2awAAdnoAAHaJAAB2igAAdpIAAHaTAAB2lAAAdqkAAHaqAAB2sgAAdr4AAHbSAAB24QAAdvAAAHb/AAB3AwAAdxIAAHchAAB3MAAAdz8AAHdOAAB3WgAAd2wAAHd7AAB3igAAd5kAAHeoAAB3twAAd8YAAHfVAAB36gAAd+sAAHfzAAB3/wAAeBMAAHgiAAB4MQAAeEAAAHhEAAB4UwAAeGIAAHhxAAB4gAAAeI8AAHibAAB4rQAAeLwAAHjLAAB42gAAeOkAAHj4AAB5BwAAeRYAAHkaAAB5IQAAeSIAAHkxAAB5QAAAeU8AAHlkAAB5ZQAAeW0AAHl5AAB5jQAAeZwAAHmrAAB5ugAAeb4AAHnNAAB53AAAeesAAHn6AAB6CQAAehUAAHonAAB6NgAAekUAAHpUAAB6YwAAenIAAHqBAAB6kAAAeqUAAHqmAAB6rgAAeroAAHrOAAB63QAAeuwAAHr7AAB6/wAAew4AAHsdAAB7LAAAezsAAHtKAAB7VgAAe2gAAHt3AAB7hgAAe5UAAHukAAB7vgAAe78AAHvFAAB70QAAe+cAAHv2AAB7+QAAfAgAAHwXAAB8GgAAfCkAAHw4AAB8OwAAfEoAAHxZAAB8XQAAfGwAAHx7AAB8fAAAfIQAAHyFAAB8hgAAfJsAAHycAAB8pAAAfLAAAHzEAAB80wAAfOIAAHzxAAB89QAAfQQAAH0TAAB9IgAAfTEAAH1AAAB9TAAAfV4AAH1tAAB9fAAAfYsAAH2aAAB9qQAAfbgAAH3HAAB93AAAfd0AAH3lAAB98QAAfgUAAH4UAAB+IwAAfjIAAH42AAB+RQAAflQAAH5jAAB+cgAAfoEAAH6NAAB+nwAAfq4AAH69AAB+zAAAftsAAH7qAAB++QAAfwgAAH8MAAB/EwAAfxQAAH8jAAB/MgAAf0EAAH9WAAB/VwAAf18AAH9rAAB/fwAAf44AAH+dAAB/rAAAf7AAAH+/AAB/zgAAf90AAH/sAAB/+wAAgAcAAIAZAACAKAAAgDcAAIBGAACAVQAAgGQAAIBzAACAggAAgJcAAICYAACAoAAAgKwAAIDAAACAzwAAgN4AAIDtAACA8QAAgQAAAIEPAACBHgAAgS0AAIE8AACBSAAAgVoAAIFpAACBeAAAgYcAAIGWAACBpQAAgbQAAIHDAACB2AAAgdkAAIHhAACB7QAAggEAAIIQAACCHwAAgi4AAIIyAACCQQAAglAAAIJfAACCbgAAgn0AAIKJAACCmwAAgqoAAIK5AACCyAAAgtcAAILxAACC8gAAgvgAAIMEAACDGgAAgykAAIMsAACDOwAAg0oAAINNAACDXAAAg2sAAINuAACDfQAAg4wAAIOQAACDnwAAg64AAIOvAACDyQAAg8oAAIPLAACDzAAAg80AAIPOAACDzwAAg9AAAIPRAACD0gAAg9MAAIPUAACD6QAAg+oAAIPyAACD/gAAhBIAAIQhAACEMAAAhD8AAIRDAACEUgAAhGEAAIRwAACEfwAAhI4AAISaAACErAAAhLsAAITKAACE2QAAhOgAAIT3AACFBgAAhRUAAIUqAACFKwAAhTMAAIU/AACFUwAAhWIAAIVxAACFgAAAhYQAAIWTAACFogAAhbEAAIXAAACFzwAAhdsAAIXtAACF/AAAhgsAAIYaAACGKQAAhkMAAIZEAACGSgAAhlYAAIZsAACGewAAhn4AAIaNAACGnAAAhp8AAIauAACGvQAAhsAAAIbPAACG3gAAhuIAAIbxAACHAAAAhwEAAIcLAACHDAAAhyEAAIciAACHKgAAhzYAAIdKAACHWQAAh2gAAId3AACHewAAh4oAAIeZAACHqAAAh7cAAIfGAACH0gAAh+QAAIfzAACIAgAAiBEAAIggAACILwAAiD4AAIhNAACIYgAAiGMAAIhrAACIdwAAiIsAAIiaAACIqQAAiLgAAIi8AACIywAAiNoAAIjpAACI+AAAiQcAAIkTAACJJQAAiTQAAIlDAACJUgAAiWEAAIlwAACJfwAAiY4AAImjAACJpAAAiawAAIm4AACJzAAAidsAAInqAACJ+QAAif0AAIoMAACKGwAAiioAAIo5AACKSAAAilQAAIpmAACKdQAAioQAAIqTAACKogAAirEAAIrAAACKzwAAitIAAIrhAACK8AAAiv8AAIsUAACLFQAAix0AAIspAACLPQAAi0wAAItbAACLagAAi24AAIt9AACLjAAAi5sAAIuqAACLuQAAi8UAAIvXAACL5gAAi/UAAIwEAACMEwAAjCIAAIwxAACMQAAAjFUAAIxWAACMXgAAjGoAAIx+AACMjQAAjJwAAIyrAACMrwAAjL4AAIzNAACM3AAAjOsAAIz6AACNBgAAjRgAAI0nAACNNgAAjUUAAI1UAACNYwAAjXIAAI2BAACNlgAAjZcAAI2fAACNqwAAjb8AAI3OAACN3QAAjewAAI3wAACN/wAAjg4AAI4dAACOLAAAjjsAAI5HAACOWQAAjmgAAI53AACOhgAAjpUAAI6kAACOswAAjsIAAI7XAACO2AAAjuAAAI7sAACPAAAAjw8AAI8eAACPLQAAjzEAAI9AAACPTwAAj14AAI9tAACPfAAAj4gAAI+aAACPqQAAj7gAAI/HAACP1gAAj+UAAI/0AACQAwAAkBgAAJAZAACQIQAAkC0AAJBBAACQUAAAkF8AAJBuAACQcgAAkIEAAJCQAACQnwAAkK4AAJC9AACQyQAAkNsAAJDqAACQ+QAAkQgAAJEXAACRJgAAkTUAAJFEAACRWQAAkVoAAJFiAACRbgAAkYIAAJGRAACRoAAAka8AAJGzAACRwgAAkdEAAJHgAACR7wAAkf4AAJIKAACSHAAAkisAAJI6AACSSQAAklgAAJJnAACSdgAAkoUAAJKaAACSmwAAkqMAAJKvAACSwwAAktIAAJLhAACS8AAAkvQAAJMDAACTEgAAkyEAAJMwAACTPwAAk0sAAJNdAACTbAAAk3sAAJOKAACTmQAAk6gAAJO3AACTxgAAk9sAAJPcAACT5AAAk/AAAJQEAACUEwAAlCIAAJQxAACUNQAAlEQAAJRTAACUYgAAlHEAAJSAAACUjAAAlJ4AAJStAACUvAAAlMsAAJTaAACU6QAAlPgAAJUHAACVHAAAlR0AAJUlAACVMQAAlUUAAJVUAACVYwAAlXIAAJV2AACVhQAAlZQAAJWjAACVsgAAlcEAAJXNAACV3wAAle4AAJX9AACWDAAAlhsAAJYqAACWOQAAlkgAAJZLAACWWgAAlmkAAJZ4AACWjQAAlo4AAJaWAACWogAAlrYAAJbFAACW1AAAluMAAJbnAACW9gAAlwUAAJcUAACXIwAAlzIAAJc+AACXUAAAl18AAJduAACXfQAAl4wAAJebAACXqgAAl7kAAJe9AACXxAAAl8UAAJfUAACX4wAAl/IAAJf2AACX9wAAmAYAAJgVAACYJAAAmDkAAJg6AACYQgAAmE4AAJhiAACYcQAAmIAAAJiPAACYkwAAmKIAAJixAACYwAAAmM8AAJjeAACY6gAAmPwAAJkLAACZGgAAmSkAAJk4AACZRwAAmVYAAJllAACZegAAmXsAAJmDAACZjwAAmaMAAJmyAACZwQAAmdAAAJnUAACZ4wAAmfIAAJoBAACaEAAAmh8AAJorAACaPQAAmkwAAJpbAACaagAAmnkAAJqIAACalwAAmqYAAJq7AACavAAAmsQAAJrQAACa5AAAmvMAAJsCAACbEQAAmxUAAJskAACbMwAAm0IAAJtRAACbYAAAm2wAAJt+AACbjQAAm5wAAJurAACbugAAm8kAAJvYAACb5wAAm/wAAJv9AACcBQAAnBEAAJwlAACcNAAAnEMAAJxSAACcVgAAnGUAAJx0AACcgwAAnJIAAJyhAACcrQAAnL8AAJzOAACc3QAAnOwAAJz7AACdCgAAnRkAAJ0oAACdPQAAnT4AAJ1GAACdUgAAnWYAAJ11AACdhAAAnZMAAJ2XAACdpgAAnbUAAJ3EAACd0wAAneIAAJ3uAACeAAAAng8AAJ4eAACeLQAAnjwAAJ5LAACeWgAAnmkAAJ5+AACefwAAnocAAJ6TAACepwAAnrYAAJ7FAACe1AAAntgAAJ7nAACe9gAAnwUAAJ8UAACfIwAAny8AAJ9BAACfUAAAn18AAJ9uAACffQAAn4wAAJ+bAACfqgAAn78AAJ/AAACfyAAAn9QAAJ/oAACf9wAAoAYAAKAVAACgGQAAoCgAAKA3AACgRgAAoFUAAKBkAACgcAAAoIIAAKCRAACgoAAAoK8AAKC+AACgzQAAoNwAAKDrAAChAAAAoQEAAKEJAAChFQAAoSkAAKE4AAChRwAAoVYAAKFaAAChaQAAoXgAAKGHAAChlgAAoaUAAKGxAAChwwAAodIAAKHhAACh8AAAof8AAKIOAACiHQAAoiwAAKIwAACiNwAAojgAAKJHAACiVgAAomUAAKJ6AACiewAAooMAAKKPAACiowAAorIAAKLBAACi0AAAotQAAKLjAACi8gAAowEAAKMQAACjHwAAoysAAKM9AACjTAAAo1sAAKNqAACjeQAAo4gAAKOXAACjpgAAo6oAAKOrAACjugAAo8kAAKPYAACj7QAAo+4AAKP2AACkAgAApBYAAKQlAACkNAAApEMAAKRHAACkVgAApGUAAKR0AACkgwAApJIAAKSeAACksAAApL8AAKTOAACk3QAApOwAAKT7AAClCgAApRkAAKUuAAClLwAApTcAAKVDAAClVwAApWYAAKV1AAClhAAApYgAAKWXAAClpgAApbUAAKXEAACl0wAApd8AAKXxAACmAAAApg8AAKYeAACmLQAApjwAAKZLAACmWgAApl0AAKZsAACmewAApooAAKafAACmoAAApqgAAKa0AACmyAAAptcAAKbmAACm9QAApvkAAKcIAACnFwAApyYAAKc1AACnRAAAp1AAAKdiAACncQAAp4AAAKePAACnngAAp60AAKe8AACnywAAp+AAAKfhAACn6QAAp/UAAKgJAACoGAAAqCcAAKg2AACoOgAAqEkAAKhYAACoZwAAqHYAAKiFAACokQAAqKMAAKiyAACowQAAqNAAAKjfAACo7gAAqP0AAKkMAACpIQAAqSIAAKkqAACpNgAAqUoAAKlZAACpaAAAqXcAAKl7AACpigAAqZkAAKmoAACptwAAqcYAAKnSAACp5AAAqfMAAKoCAACqEQAAqiAAAKovAACqPgAAqk0AAKpQAACqXwAAqm4AAKp9AACqkgAAqpMAAKqbAACqpwAAqrsAAKrKAACq2QAAqugAAKrsAACq+wAAqwoAAKsZAACrKAAAqzcAAKtDAACrVQAAq2QAAKtzAACrggAAq5EAAKugAACrrwAAq74AAKvTAACr1AAAq9wAAKvoAACr/AAArAsAAKwaAACsKQAArC0AAKw8AACsSwAArFoAAKxpAACseAAArIQAAKyWAACspQAArLQAAKzDAACs0gAArOEAAKzwAACs/wAArRQAAK0VAACtHQAArSkAAK09AACtTAAArVsAAK1qAACtbgAArX0AAK2MAACtmwAAraoAAK25AACtxQAArdcAAK3mAACt9QAArgQAAK4TAACuIgAArjEAAK5AAACuVQAArlYAAK5eAACuagAArn4AAK6NAACunAAArqsAAK6vAACuvgAArs0AAK7cAACu6wAArvoAAK8GAACvGAAArycAAK82AACvRQAAr1QAAK9jAACvcgAAr4EAAK+WAACvlwAAr58AAK+rAACvvwAAr84AAK/dAACv7AAAr/AAAK//AACwDgAAsB0AALAsAACwOwAAsEcAALBZAACwaAAAsHcAALCGAACwlQAAsKQAALCzAACwwgAAsNcAALDYAACw4AAAsOwAALEAAACxDwAAsR4AALEtAACxMQAAsUAAALFPAACxXgAAsW0AALF8AACxiAAAsZoAALGpAACxuAAAsccAALHWAACx5QAAsfQAALIDAACyGAAAshkAALIhAACyLQAAskEAALJQAACyXwAAsm4AALJyAACygQAAspAAALKfAACyrgAAsr0AALLJAACy2wAAsuoAALL5AACzCAAAsxcAALM5AACzOgAAs0AAALNMAACzYgAAs3EAALN0AACzgwAAs5IAALOVAACzpAAAs7MAALO2AACzxQAAs9QAALPYAACz5wAAs/YAALP3AAC0JwAAtCgAALQpAAC0KgAAtCsAALQsAAC0LQAAtC4AALQvAAC0MAAAtDEAALQyAAC0MwAAtDQAALQ1AAC0NgAAtDcAALQ4AAC0OQAAtDoAALRPAAC0UAAAtFgAALRkAAC0eAAAtIcAALSWAAC0pQAAtKkAALS4AAC0xwAAtNYAALTlAAC09AAAtQAAALUSAAC1IQAAtTAAALU/AAC1TgAAtV0AALVsAAC1ewAAtZAAALWRAAC1mQAAtaUAALW5AAC1yAAAtdcAALXmAAC16gAAtfkAALYIAAC2FwAAtiYAALY1AAC2QQAAtlMAALZiAAC2cQAAtoAAALaPAAC2ngAAtq0AALa8AAC20QAAttIAALbaAAC25gAAtvoAALcJAAC3GAAAtycAALcrAAC3OgAAt0kAALdYAAC3ZwAAt3YAALeCAAC3lAAAt6MAALeyAAC3wQAAt9AAALffAAC37gAAt/0AALgSAAC4EwAAuBsAALgnAAC4OwAAuEoAALhZAAC4aAAAuGwAALh7AAC4igAAuJkAALioAAC4twAAuMMAALjVAAC45AAAuPMAALkCAAC5EQAAuSAAALkvAAC5PgAAuVMAALlUAAC5XAAAuWgAALl8AAC5iwAAuZoAALmpAAC5rQAAubwAALn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FAADRFAAA0SAAANEyAADRQQAA0VAAANFfAADRbgAA0X0AANGMAADRmwAA0bAAANGxAADRuQAA0cUAANHZAADR6AAA0fcAANIGAADSCgAA0hkAANIoAADSNwAA0kYAANJVAADSYQAA0nMAANKCAADSkQAA0qAAANKvAADSvgAA0s0AANLcAADS8QAA0vIAANL6AADTBgAA0xoAANMpAADTOAAA00cAANNLAADTWgAA02kAANN4AADThwAA05YAANOiAADTtAAA08MAANPSAADT4QAA0/AAANP/AADUDgAA1B0AANQyAADUMwAA1DsAANRHAADUWwAA1GoAANR5AADUiAAA1IwAANSbAADUqgAA1LkAANTIAADU1wAA1OMAANT1AADVBAAA1RMAANUiAADVMQAA1UAAANVPAADVXgAA1XMAANV0AADVfAAA1YgAANWcAADVqwAA1boAANXJAADVzQAA1dwAANXrAADV+gAA1gkAANYYAADWJAAA1jYAANZFAADWVAAA1mMAANZyAADWgQAA1pAAANafAADWtAAA1rUAANa9AADWyQAA1t0AANbsAADW+wAA1woAANcOAADXHQAA1ywAANc7AADXSgAA11kAANdlAADXdwAA14YAANeVAADXpAAA17MAANfCAADX0QAA1+AAANf1AADX9gAA1/4AANgKAADYHgAA2C0AANg8AADYSwAA2E8AANheAADYbQAA2HwAANiLAADYmgAA2KYAANi4AADYxwAA2NYAANjlAADY9AAA2QMAANkSAADZIQAA2TYAANk3AADZPwAA2UsAANlfAADZbgAA2X0AANmMAADZkAAA2Z8AANmuAADZvQAA2cwAANnbAADZ5wAA2fkAANoIAADaFwAA2iYAANo1AADaRAAA2lMAANpiAADadwAA2ngAANqAAADajAAA2qAAANqvAADavgAA2s0AANrRAADa4AAA2u8AANr+AADbDQAA2xwAANsoAADbOgAA20kAANtYAADbZwAA23YAANuFAADblAAA26MAANu4AADbuQAA28EAANvNAADb4QAA2/AAANv/AADcDgAA3BIAANwhAADcMAAA3D8AANxOAADcXQAA3GkAANx7AADcigAA3JkAANyoAADctwAA3MYAANzVAADc5AAA3OcAANz2AADdBQAA3RQAAN0pAADdKgAA3TIAAN0+AADdUgAA3WEAAN1wAADdfwAA3YMAAN2SAADdoQAA3bAAAN2/AADdzgAA3doAAN3sAADd+wAA3goAAN4ZAADeKAAA3jcAAN5GAADeVQAA3moAAN5rAADecwAA3n8AAN6TAADeogAA3rEAAN7AAADexAAA3tMAAN7iAADe8QAA3wAAAN8PAADfGwAA3y0AAN88AADfSwAA31oAAN9pAADfeAAA34cAAN+WAADfqwAA36wAAN+0AADfwAAA39QAAN/jAADf8gAA4AEAAOAFAADgFAAA4CMAAOAyAADgQQAA4FAAAOBcAADgbgAA4H0AAOCMAADgmwAA4KoAAOC5AADgyAAA4NcAAODsAADg7QAA4PUAAOEBAADhFQAA4SQAAOEzAADhQgAA4UYAAOFVAADhZAAA4XMAAOGCAADhkQAA4Z0AAOGvAADhvgAA4c0AAOHcAADh6wAA4foAAOIJAADiGAAA4i0AAOIuAADiNgAA4kIAAOJWAADiZQAA4nQAAOKDAADihwAA4pYAAOKlAADitAAA4sMAAOLSAADi3gAA4vAAAOL/AADjDgAA4x0AAOMsAADjRgAA40cAAONNAADjWQAA428AAON+AADjgQAA45AAAOOfAADjogAA47EAAOPAAADjwwAA49IAAOPhAADj5QAA4/QAAOQDAADkBAAA5BIAAOQTAADkFAAA5BUAAOQqAADkKwAA5DMAAOQ/AADkUwAA5GIAAORxAADkgAAA5IQAAOSTAADkogAA5LEAAOTAAADkzwAA5NsAAOTtAADk/AAA5QsAAOUaAADlKQAA5TgAAOVHAADlVgAA5WsAAOVsAADldAAA5YAAAOWUAADlowAA5bIAAOXBAADlxQAA5dQAAOXjAADl8gAA5gEAAOYQAADmHAAA5i4AAOY9AADmTAAA5lsAAOZqAADmeQAA5ogAAOaXAADmrAAA5q0AAOa1AADmwQAA5tUAAObkAADm8wAA5wIAAOcGAADnFQAA5yQAAOczAADnQgAA51EAAOddAADnbwAA534AAOeNAADnnAAA56sAAOe6AADnyQAA59gAAOftAADn7gAA5/YAAOgCAADoFgAA6CUAAOg0AADoQwAA6EcAAOhWAADoZQAA6HQAAOiDAADokgAA6J4AAOiwAADovwAA6M4AAOjdAADo7AAA6PsAAOkKAADpGQAA6S4AAOkvAADpNwAA6UMAAOlXAADpZgAA6XUAAOmEAADpiAAA6ZcAAOmmAADptQAA6cQAAOnTAADp3wAA6fEAAOoAAADqDwAA6h4AAOotAADqPAAA6ksAAOpaAADqXQAA6mwAAOp7AADqigAA6p8AAOqgAADqqAAA6rQAAOrIAADq1wAA6uYAAOr1AADq+QAA6wgAAOsXAADrJgAA6zUAAOtEAADrUAAA62IAAOtxAADrgAAA648AAOueAADrrQAA67wAAOvLAADr4AAA6+EAAOvpAADr9QAA7AkAAOwYAADsJwAA7DYAAOw6AADsSQAA7FgAAOxnAADsdgAA7IUAAOyRAADsowAA7LIAAOzBAADs0AAA7N8AAOzuAADs/QAA7QwAAO0hAADtIgAA7SoAAO02AADtSgAA7VkAAO1oAADtdwAA7XsAAO2KAADtmQAA7agAAO23AADtxgAA7dIAAO3kAADt8wAA7gIAAO4RAADuIAAA7joAAO47AADuQQAA7k0AAO5jAADucgAA7nUAAO6EAADukwAA7pcAAO6bAADuqgAA7rkAAO68AADuywAA7toAAO7eAADu7QAA7vwAAO79AADvMwAA7zQAAO81AADvNgAA7zcAAO84AADvOQAA7zoAAO87AADvPAAA7z0AAO8+AADvPwAA70AAAO9BAADvQgAA70MAAO9EAADvRQAA70YAAO9HAADvSAAA710AAO9eAADvZgAA73IAAO+GAADvlQAA76QAAO+zAADvtwAA78YAAO/VAADv5AAA7/MAAPACAADwDgAA8CAAAPAvAADwPgAA8E0AAPBcAADwawAA8HoAAPCJAADwngAA8J8AAPCnAADwswAA8McAAPDWAADw5QAA8PQAAPD4AADxBwAA8RYAAPElAADxNAAA8UMAAPFPAADxYQAA8XAAAPF/AADxjgAA8Z0AAPGsAADxuwAA8coAAPHfAADx4AAA8egAAPH0AADyCAAA8hcAAPImAADyNQAA8jkAAPJIAADyVwAA8mYAAPJ1AADyhAAA8pAAAPKiAADysQAA8sAAAPLPAADy3gAA8u0AAPL8AADzCwAA8yAAAPMhAADzKQAA8zUAAPNJAADzWAAA82cAAPN2AADzegAA84kAAPOYAADzpwAA87YAAPPFAADz0QAA8+MAAPPyAAD0AQAA9BAAAPQfAAD0LgAA9D0AAPRMAAD0YQAA9GIAAPRqAAD0dgAA9IoAAPSZAAD0qAAA9LcAAPS7AAD0ygAA9NkAAPToAAD09wAA9QYAAPUSAAD1JAAA9TMAAPVCAAD1UQAA9WAAAPVvAAD1fgAA9Y0AAPWiAAD1owAA9asAAPW3AAD1ywAA9doAAPXpAAD1+AAA9fwAAPYLAAD2GgAA9ikAAPY4AAD2RwAA9lMAAPZlAAD2dAAA9oMAAPaSAAD2oQAA9rAAAPa/AAD2zgAA9uMAAPbkAAD27AAA9vgAAPcMAAD3GwAA9yoAAPc5AAD3PQAA90wAAPdbAAD3agAA93kAAPeIAAD3lAAA96YAAPe1AAD3xAAA99MAAPfiAAD38QAA+AAAAPgPAAD4JAAA+CUAAPgtAAD4OQAA+E0AAPhcAAD4awAA+HoAAPh+AAD4jQAA+JwAAPirAAD4ugAA+MkAAPjVAAD45wAA+PYAAPkFAAD5FAAA+SMAAPkyAAD5QQAA+VAAAPllAAD5ZgAA+W4AAPl6AAD5jgAA+Z0AAPmsAAD5uwAA+b8AAPnOAAD53QAA+ewAAPn7AAD6CgAA+hYAAPooAAD6NwAA+kYAAPpVAAD6ZAAA+nMAAPqCAAD6kQAA+qYAAPqnAAD6rwAA+rsAAPrPAAD63gAA+u0AAPr8AAD7AAAA+w8AAPseAAD7LQAA+zwAAPtLAAD7VwAA+2kAAPt4AAD7hwAA+5YAAPulAAD7tAAA+8MAAPvSAAD75wAA++gAAPvwAAD7/AAA/BAAAPwfAAD8LgAA/D0AAPxBAAD8UAAA/F8AAPxuAAD8fQAA/IwAAPyYAAD8qgAA/LkAAPzIAAD81wAA/OYAAPz1AAD9BAAA/RMAAP0oAAD9KQAA/TEAAP09AAD9UQAA/WAAAP1vAAD9fgAA/YIAAP2RAAD9oAAA/a8AAP2+AAD9zQAA/dkAAP3rAAD9+gAA/gkAAP4YAAD+JwAA/jYAAP5FAAD+VAAA/mkAAP5qAAD+cgAA/n4AAP6SAAD+oQAA/rAAAP6/AAD+wwAA/tIAAP7hAAD+8AAA/v8AAP8OAAD/GgAA/ywAAP87AAD/SgAA/1kAAP9oAAD/dwAA/4YAAP+VAAD/qgAA/6sAAP+zAAD/vwAA/9MAAP/iAAD/8QABAAAAAQAEAAEAEwABACIAAQAxAAEAQAABAE8AAQBbAAEAbQABAHwAAQCLAAEAmgABAKkAAQC4AAEAxwABANYAAQDrAAEA7AABAPQAAQEAAAEBFAABASMAAQEyAAEBQQABAUUAAQFUAAEBYwABAXIAAQGBAAEBkAABAZwAAQGuAAEBvQABAcwAAQHbAAEB6gABAfkAAQIIAAECFwABAiwAAQItAAECNQABAkEAAQJVAAECZAABAnMAAQKCAAEChgABApUAAQKkAAECswABAsIAAQLRAAEC3QABAu8AAQL+AAEDDQABAxwAAQMrAAEDRQABA0YAAQNMAAEDWAABA24AAQN9AAEDgAABA48AAQOeAAEDogABA6cAAQOoAAEDqQABA7gAAQPHAAEDygABA9kAAQPoAAED7AABA/sAAQQKAAEECwABBB8AAQQgAAEEIQABBCIAAQQjAAEEJAABBCUAAQQmAAEEOwABBDwAAQREAAEEUAABBGQAAQRzAAEEggABBJEAAQSVAAEEpAABBLMAAQTCAAEE0QABBOAAAQTsAAEE/gABBQ0AAQUcAAEFKwABBToAAQVJAAEFWAABBWcAAQV8AAEFfQABBYUAAQWRAAEFpQABBbQAAQXDAAEF0gABBdYAAQXlAAEF9AABBgMAAQYSAAEGIQABBi0AAQY/AAEGTgABBl0AAQZsAAEGewABBooAAQaZAAEGqAABBr0AAQa+AAEGxgABBtIAAQbmAAEG9QABBwQAAQcTAAEHFwABByYAAQc1AAEHRAABB1MAAQdiAAEHbgABB4AAAQePAAEHngABB60AAQe8AAEHywABB9oAAQfpAAEH/gABB/8AAQgHAAEIEwABCCcAAQg2AAEIRQABCFQAAQhYAAEIZwABCHYAAQiFAAEIlAABCKMAAQivAAEIwQABCNAAAQjfAAEI7gABCP0AAQkMAAEJGwABCSoAAQk/AAEJQAABCUgAAQlUAAEJaAABCXcAAQmGAAEJlQABCZkAAQmoAAEJtwABCcYAAQnVAAEJ5AABCfAAAQoCAAEKEQABCiAAAQovAAEKPgABCk0AAQpcAAEKawABCoAAAQqBAAEKiQABCpUAAQqpAAEKuAABCscAAQrWAAEK2gABCukAAQr4AAELBwABCxYAAQslAAELMQABC0MAAQtSAAELYQABC3AAAQt/AAELjgABC50AAQusAAELwQABC8IAAQvKAAEL1gABC+oAAQv5AAEMCAABDBcAAQwbAAEMKgABDDkAAQxIAAEMVwABDGYAAQxyAAEMhAABDJMAAQyiAAEMsQABDMAAAQzPAAEM3gABDO0AAQ0CAAENAwABDQsAAQ0XAAENKwABDToAAQ1JAAENWAABDVwAAQ1rAAENegABDYkAAQ2YAAENpwABDbMAAQ3FAAEN1AABDeMAAQ3yAAEOAQABDhAAAQ4fAAEOLgABDjEAAQ5AAAEOTwABDl4AAQ5zAAEOdAABDnwAAQ6IAAEOnAABDqsAAQ66AAEOyQABDs0AAQ7cAAEO6wABDvoAAQ8JAAEPGAABDyQAAQ82AAEPRQABD1QAAQ9jAAEPcgABD4EAAQ+QAAEPnwABD7QAAQ+1AAEPvQABD8kAAQ/dAAEP7AABD/sAARAKAAEQDgABEB0AARAsAAEQOwABEEoAARBZAAEQZQABEHcAARCGAAEQlQABEKQAARCzAAEQwgABENEAARDgAAEQ9QABEPYAARD+AAERCgABER4AAREtAAERPAABEUsAARFPAAERXgABEW0AARF8AAERiwABEZoAARGmAAERuAABEccAARHWAAER5QABEfQAARIWAAESFwABEh0AARIpAAESPwABEk4AARJRAAESYAABEm8AARJyAAESgQABEpAAARKTAAESogABErEAARK1AAESxAABEtMAARLUAAES5AABEuUAARLmAAES5wABEugAARLpAAES/gABEv8AARMHAAETEwABEycAARM2AAETRQABE1QAARNYAAETZwABE3YAAROFAAETlAABE6MAAROvAAETwQABE9AAARPfAAET7gABE/0AARQMAAEUGwABFCoAARQ/AAEUQAABFEgAARRUAAEUaAABFHcAARSGAAEUlQABFJkAARSoAAEUtwABFMYAARTVAAEU5AABFPAAARUCAAEVEQABFSAAARUvAAEVPgABFU0AARVcAAEVawABFYAAARWBAAEViQABFZUAARWpAAEVuAABFccAARXWAAEV2gABFekAARX4AAEWBwABFhYAARYlAAEWMQABFkMAARZSAAEWYQABFnAAARZ/AAEWjgABFp0AARasAAEWwQABFsIAARbKAAEW1gABFuoAARb5AAEXCAABFxcAARcbAAEXKgABFzkAARdIAAEXVwABF2YAARdyAAEXhAABF5MAAReiAAEXsQABF8AAARfPAAEX3gABF+0AARgCAAEYAwABGAsAARgXAAEYKwABGDoAARhJAAEYWAABGFwAARhrAAEYegABGIkAARiYAAEYpwABGLMAARjFAAEY1AABGOMAARjyAAEZAQABGRAAARkfAAEZLgABGUMAARlEAAEZTAABGVgAARlsAAEZewABGYoAARmZAAEZnQABGawAARm7AAEZygABGdkAARnoAAEZ9AABGgYAARoVAAEaJAABGjMAARpCAAEaUQABGmAAARpvAAEacgABGnYAARp9AAEalwABGpgAARqeAAEaqgABGsAAARrPAAEa0gABGuEAARrwAAEa8wABGwIAARsRAAEbFAABGyMAARsyAAEbNgABG0UAARtUAAEbVQABG1sAARtcAAEbcQABG3IAARt6AAEbhgABG5oAARupAAEbuAABG8cAARvLAAEb2gABG+kAARv4AAEcBwABHBYAARwiAAEcNAABHEMAARxSAAEcYQABHHAAARx/AAEcjgABHJ0AARyhAAEcogABHLEAARzAAAEczwABHOQAARzlAAEc7QABHPkAAR0NAAEdHAABHSsAAR06AAEdPgABHU0AAR1cAAEdawABHXoAAR2JAAEdlQABHacAAR22AAEdxQABHdQAAR3jAAEd/QABHf4AAR4EAAEeEAABHiYAAR41AAEeOAABHkcAAR5WAAEeWQABHmgAAR53AAEeegABHokAAR6YAAEenAABHqsAAR66AAEeuwABHsEAAR7CAAEe1wABHtgAAR7gAAEe7AABHwAAAR8PAAEfHgABHy0AAR8xAAEfQAABH08AAR9eAAEfbQABH3wAAR+IAAEfmgABH6kAAR+4AAEfxwABH9YAAR/lAAEf9AABIAMAASAHAAEgDgABIA8AASAxAAEgMgABIDgAASBEAAEgWgABIGkAASBsAAEgewABIIoAASCOAAEglAABIJUAASCWAAEglwABIKYAASC1AAEguAABIMcAASDWAAEg2gABIOkAASD4AAEg+QABIRcAASEYAAEhGQABIRoAASEbAAEhHAABIR0AASEeAAEhHwABISAAASE1AAEhNgABIT4AASFKAAEhXgABIW0AASF8AAEhiwABIY8AASGeAAEhrQABIbwAASHLAAEh2gABIeYAASH4AAEiBwABIhYAASIlAAEiNAABIkMAASJSAAEiYQABInYAASJ3AAEifwABIosAASKfAAEirgABIr0AASLMAAEi0AABIt8AASLuAAEi/QABIwwAASMbAAEjJwABIzkAASNIAAEjVwABI2YAASN1AAEjjwABI5AAASOWAAEjogABI7gAASPHAAEjygABI9kAASPoAAEj7AABI/MAASP0AAEj9QABI/YAASQFAAEkFAABJBcAASQmAAEkNQABJDkAASRIAAEkVwABJFgAASRsAAEkbQABJG4AASRvAAEkcAABJHEAASRyAAEkcwABJIgAASSJAAEkkQABJJ0AASSxAAEkwAABJM8AASTeAAEk4gABJPEAASUAAAElDwABJR4AASUtAAElOQABJUsAASVaAAElaQABJXgAASWHAAEllgABJaUAASW0AAElyQABJcoAASXSAAEl3gABJfIAASYBAAEmEAABJh8AASYjAAEmMgABJkEAASZQAAEmXwABJm4AASZ6AAEmjAABJpsAASaqAAEmuQABJsgAASbXAAEm5gABJvUAAScKAAEnCwABJxMAAScfAAEnMwABJ0IAASdRAAEnYAABJ2QAASdzAAEnggABJ5EAASegAAEnrwABJ7sAASfNAAEn3AABJ+sAASf6AAEoCQABKBgAASgnAAEoNgABKEsAAShMAAEoVAABKGAAASh0AAEogwABKJIAASihAAEopQABKLQAASjDAAEo0gABKOEAASjwAAEo/AABKQ4AASkdAAEpLAABKTsAASlKAAEpWQABKWgAASl3AAEpjAABKY0AASmVAAEpoQABKbUAASnEAAEp0wABKeIAASnmAAEp9QABKgQAASoTAAEqIgABKjEAASo9AAEqTwABKl4AASptAAEqfAABKosAASqaAAEqqQABKrgAASrNAAEqzgABKtYAASriAAEq9gABKwUAASsUAAErIwABKycAASs2AAErRQABK1QAAStjAAErcgABK34AASuQAAErnwABK64AASu9AAErzAABK9sAASvqAAEr+QABLA4AASwPAAEsFwABLCMAASw3AAEsRgABLFUAASxkAAEsaAABLHcAASyGAAEslQABLKQAASyzAAEsvwABLNEAASzgAAEs7wABLP4AAS0NAAEtHAABLSsAAS06AAEtTwABLVAAAS1YAAEtZAABLXgAAS2HAAEtlgABLaUAAS2pAAEtuAABLccAAS3WAAEt5QABLfQAAS4AAAEuEgABLiEAAS4wAAEuPwABLk4AAS5dAAEubAABLnsAAS5+AAEujQABLpwAAS6rAAEuwAABLsEAAS7JAAEu1QABLukAAS74AAEvBwABLxYAAS8aAAEvKQABLzgAAS9HAAEvVgABL2UAAS9xAAEvgwABL5IAAS+hAAEvsAABL78AAS/OAAEv3QABL+wAATABAAEwAgABMAoAATAWAAEwKgABMDkAATBIAAEwVwABMFsAATBqAAEweQABMIgAATCXAAEwpgABMLIAATDEAAEw0wABMOIAATDxAAExAAABMRoAATEbAAExIQABMS0AATFDAAExUgABMVUAATFkAAExcwABMXYAATGFAAExlAABMZcAATGmAAExtQABMbkAATHIAAEx1wABMdgAATH0AAEx9QABMfYAATH3AAEx+AABMfkAATH6AAEx+wABMfwAATH9AAEx/gABMhMAATIUAAEyHAABMigAATI8AAEySwABMloAATJpAAEybQABMnwAATKLAAEymgABMqkAATK4AAEyxAABMtYAATLlAAEy9AABMwMAATMSAAEzIQABMzAAATM/AAEzVAABM1UAATNdAAEzaQABM30AATOMAAEzmwABM6oAATOuAAEzvQABM8wAATPbAAEz6gABM/kAATQFAAE0FwABNCYAATQ1AAE0RAABNFMAATRiAAE0cQABNIAAATSVAAE0lgABNJ4AATSqAAE0vgABNM0AATTcAAE06wABNO8AATT+AAE1DQABNRwAATUrAAE1OgABNUYAATVYAAE1ZwABNXYAATWFAAE1lAABNaMAATWyAAE1wQABNdYAATXXAAE13wABNesAATX/AAE2DgABNh0AATYsAAE2MAABNj8AATZOAAE2XQABNmwAATZ7AAE2hwABNpkAATaoAAE2twABNsYAATbVAAE25AABNvMAATcCAAE3FwABNxgAATcgAAE3LAABN0AAATdPAAE3XgABN20AATdxAAE3gAABN48AATeeAAE3rQABN7wAATfIAAE32gABN+kAATf4AAE4BwABOBYAATglAAE4NAABOEMAAThYAAE4WQABOGEAAThtAAE4gQABOJAAATifAAE4rgABOLIAATjBAAE40AABON8AATjuAAE4/QABOQkAATkbAAE5KgABOTkAATlIAAE5VwABOWYAATl1AAE5hAABOZkAATmaAAE5ogABOa4AATnCAAE50QABOeAAATnvAAE58wABOgIAAToRAAE6IAABOi8AATo+AAE6SgABOlwAATprAAE6egABOokAATqYAAE6pwABOrYAATrFAAE62gABOtsAATrjAAE67wABOwMAATsSAAE7IQABOzAAATs0AAE7QwABO1IAATthAAE7cAABO38AATuLAAE7nQABO6wAATu7AAE7ygABO9kAATvoAAE79wABPAYAATwbAAE8HAABPCQAATwwAAE8RAABPFMAATxiAAE8cQABPHUAATyEAAE8kwABPKIAATyxAAE8wAABPMwAATzeAAE87QABPPwAAT0LAAE9GgABPSkAAT04AAE9RwABPVwAAT1dAAE9ZQABPXEAAT2FAAE9lAABPaMAAT2yAAE9tgABPcUAAT3UAAE94wABPfIAAT4BAAE+DQABPh8AAT4uAAE+PQABPkwAAT5bAAE+agABPnkAAT6IAAE+nQABPp4AAT6mAAE+sgABPsYAAT7VAAE+5AABPvMAAT73AAE/BgABPxUAAT8kAAE/MwABP0IAAT9OAAE/YAABP28AAT9+AAE/jQABP5wAAT+rAAE/ugABP8kAAT/eAAE/3wABP+cAAT/zAAFABwABQBYAAUAlAAFANAABQDgAAUBHAAFAVgABQGUAAUB0AAFAgwABQI8AAUChAAFAsAABQL8AAUDOAAFA3QABQOwAAUD7AAFBCgABQR8AAUEgAAFBKAABQTQAAUFIAAFBVwABQWYAAUF1AAFBeQABQYgAAUGXAAFBpgABQbUAAUHEAAFB0AABQeIAAUHxAAFCAAABQg8AAUIeAAFCHwABQi4AAUI9AAFCTAABQk8AAUJeAAFCbQABQnwAAUKRAAFCkgABQpoAAUKmAAFCugABQskAAULYAAFC5wABQusAAUL6AAFDCQABQxgAAUMnAAFDNgABQ0IAAUNUAAFDYwABQ3IAAUOBAAFDkAABQ58AAUOuAAFDvQABQ9IAAUPTAAFD2wABQ+cAAUP7AAFECgABRBkAAUQoAAFELAABRDsAAURKAAFEWQABRGgAAUR3AAFEgwABRJUAAUSkAAFEswABRMIAAUTRAAFE4AABRO8AAUT+AAFFEwABRRQAAUUcAAFFKAABRTwAAUVLAAFFWgABRWkAAUVtAAFFfAABRYsAAUWaAAFFqQABRbgAAUXEAAFF1gABReUAAUX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rAAGYOgABmEkAAZhYAAGYZAABmHYAAZiFAAGYlAABmKMAAZiyAAGYwQABmNAAAZjfAAGY9AABmPUAAZj9AAGZCQABmR0AAZksAAGZOwABmUoAAZlOAAGZXQABmWwAAZl7AAGZigABmZkAAZmlAAGZtwABmcYAAZnVAAGZ5AABmfMAAZoCAAGaEQABmiAAAZo1AAGaNgABmj4AAZpKAAGaXgABmm0AAZp8AAGaiwABmo8AAZqeAAGarQABmrwAAZrLAAGa2gABmuYAAZr4AAGbBwABmxYAAZslAAGbNAABm0MAAZtSAAGbYQABm3YAAZt3AAGbfwABm4sAAZufAAGbrgABm70AAZvMAAGb0AABm98AAZvuAAGb/QABnAwAAZwbAAGcJwABnDkAAZxIAAGcVwABnGYAAZx1AAGchAABnJMAAZyiAAGctwABnLgAAZzAAAGczAABnOAAAZzvAAGc/gABnQ0AAZ0RAAGdIAABnS8AAZ0+AAGdTQABnVwAAZ1oAAGdegABnYkAAZ2YAAGdpwABnbYAAZ3FAAGd1AABneMAAZ34AAGd+QABngEAAZ4NAAGeIQABnjAAAZ4/AAGeTgABnlIAAZ5hAAGecAABnn8AAZ6OAAGenQABnqkAAZ67AAGeygABntkAAZ7oAAGe9wABnwYAAZ8VAAGfJAABnzkAAZ86AAGfQgABn04AAZ9iAAGfcQABn4AAAZ+PAAGfkwABn6IAAZ+xAAGfwAABn88AAZ/eAAGf6gABn/wAAaALAAGgGgABoCkAAaA4AAGgRwABoFYAAaBlAAGgegABoHsAAaCDAAGgjwABoKMAAaCyAAGgwQABoNAAAaDUAAGg4wABoPIAAaEBAAGhEAABoR8AAaErAAGhPQABoUwAAaFbAAGhagABoXkAAaGIAAGhlwABoaYAAaG7AAGhvAABocQAAaHQAAGh5AABofMAAaICAAGiEQABohUAAaIkAAGiMwABokIAAaJRAAGiYAABomwAAaJ+AAGijQABopwAAaKrAAGiugABoskAAaLYAAGi5wABouoAAaL5AAGjCAABoxcAAaMsAAGjLQABozUAAaNBAAGjVQABo2QAAaNzAAGjggABo4YAAaOVAAGjpAABo7MAAaPCAAGj0QABo90AAaPvAAGj/gABpA0AAaQcAAGkKwABpDoAAaRJAAGkWAABpG0AAaRuAAGkdgABpIIAAaSWAAGkpQABpLQAAaTDAAGkxwABpNYAAaTlAAGk9AABpQMAAaUSAAGlHgABpTAAAaU/AAGlTgABpV0AAaVsAAGlewABpYoAAaWZAAGlnAABpasAAaW6AAGlyQABpd4AAaXfAAGl5wABpfMAAaYHAAGmFgABpiUAAaY0AAGmOAABpkcAAaZWAAGmZQABpnQAAaaDAAGmjwABpqEAAaawAAGmvwABps4AAabdAAGm7AABpvsAAacKAAGnHwABpyAAAacoAAGnNAABp0gAAadXAAGnZgABp3UAAad5AAGniAABp5cAAaemAAGntQABp8QAAafQAAGn4gABp/EAAagAAAGoDwABqB4AAagtAAGoPAABqEsAAahgAAGoYQABqGkAAah1AAGoiQABqJgAAainAAGotgABqLoAAajJAAGo2AABqOcAAaj2AAGpBQABqREAAakjAAGpMgABqUEAAalQAAGpXwABqW4AAal9AAGpjAABqaEAAamiAAGpqgABqbYAAanKAAGp2QABqegAAan3AAGp+wABqgoAAaoZAAGqKAABqjcAAapGAAGqUgABqmQAAapzAAGqggABqpEAAaqgAAGqrwABqr4AAarNAAGq4gABquMAAarrAAGq9wABqwsAAasaAAGrKQABqzgAAas8AAGrSwABq1oAAatpAAGreAABq4cAAauTAAGrpQABq7QAAau1AAGrxAABq9MAAaviAAGr8QABrAAAAawPAAGsJAABrCUAAawtAAGsOQABrE0AAaxcAAGsawABrHoAAax+AAGsjQABrJwAAayrAAGsugABrMkAAazVAAGs5wABrPYAAa0FAAGtFAABrSMAAa0yAAGtQQABrVAAAa1lAAGtZgABrW4AAa16AAGtjgABrZ0AAa2sAAGtuwABrb8AAa3OAAGt3QABrewAAa37AAGuCgABrhYAAa4oAAGuNwABrkYAAa5VAAGuZAABrnMAAa6CAAGukQABrqYAAa6nAAGurwABrrsAAa7PAAGu3gABru0AAa78AAGvAAABrw8AAa8eAAGvLQABrzwAAa9LAAGvVwABr2kAAa94AAGvhwABr5YAAa+lAAGvvwABr8AAAa/GAAGv0gABr+gAAa/3AAGv+gABsAkAAbAYAAGwHAABsCIAAbAjAAGwJAABsDMAAbBCAAGwRQABsFQAAbB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eAAHUrQAB1LAAAdS/AAHUzgAB1NIAAdThAAHU8AAB1PEAAdT/AAHVAAAB1QEAAdUCAAHVAwAB1QQAAdUZAAHVGgAB1SIAAdUuAAHVQgAB1VEAAdVgAAHVbwAB1XMAAdWCAAHVkQAB1aAAAdWvAAHVvgAB1coAAdXcAAHV6wAB1foAAdYJAAHWGAAB1icAAdY2AAHWRQAB1loAAdZbAAHWYwAB1m8AAdaDAAHWkgAB1qEAAdawAAHWtAAB1sMAAdbSAAHW4QAB1vAAAdb/AAHXCwAB1x0AAdcsAAHXOwAB10oAAddZAAHXaAAB13cAAdeGAAHXmwAB15wAAdekAAHXsAAB18QAAdfTAAHX4gAB1/EAAdf1AAHYBAAB2BMAAdgiAAHYMQAB2EAAAdhMAAHYXgAB2G0AAdh8AAHYiwAB2JoAAdipAAHYuAAB2McAAdjcAAHY3QAB2OUAAdjxAAHZBQAB2RQAAdkjAAHZMgAB2TYAAdlFAAHZVAAB2WMAAdlyAAHZgQAB2Y0AAdmfAAHZrgAB2b0AAdnMAAHZ2wAB2eoAAdn5AAHaCAAB2h0AAdoeAAHaJgAB2jIAAdpGAAHaVQAB2mQAAdpzAAHadwAB2oYAAdqVAAHapAAB2rMAAdrCAAHazgAB2uAAAdrvAAHa/gAB2w0AAdscAAHbKwAB2zoAAdtJAAHbXgAB218AAdtnAAHbcwAB24cAAduWAAHbpQAB27QAAdu4AAHbxwAB29YAAdvlAAHb9AAB3AMAAdwPAAHcIQAB3DAAAdw/AAHcTgAB3F0AAdxsAAHcewAB3IoAAdyNAAHcnAAB3KsAAdy6AAHczwAB3NAAAdzYAAHc5AAB3PgAAd0HAAHdFgAB3SUAAd0pAAHdOAAB3UcAAd1WAAHdZQAB3XQAAd2AAAHdkgAB3aEAAd2wAAHdvwAB3c4AAd3dAAHd7AAB3fsAAd4QAAHeEQAB3hkAAd4lAAHeOQAB3kgAAd5XAAHeZgAB3moAAd55AAHeiAAB3pcAAd6mAAHetQAB3sEAAd7TAAHe4gAB3vEAAd8AAAHfDwAB3x4AAd8tAAHfPAAB31EAAd9SAAHfWgAB32YAAd96AAHfiQAB35gAAd+nAAHfqwAB37oAAd/JAAHf2AAB3+cAAd/2AAHgAgAB4BQAAeAjAAHgMgAB4EEAAeBQAAHgXwAB4G4AAeB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AAJ+AN4EEmoEIrYELDYEOU4EIfIEFQIEeboECloEj7oEF9YDBgQnCgRbZgQcGgQLagRAxgRZegRffgQbDgQXNgRvrgRaNgQrDgR4ogQhSgQZogRHwgRVzgRYZgQkjgQmTgQMPgQo3gQIigRRXgR0qgQVugQ8YgQlqgRqMgQPRgSFEgQEvgQjcgRongR3LgRLAgRysgFVfEBpQZXJzaXN0ZWRHcm91cFYyRGlzY3Vzc2lvbl8QEFBlbmRpbmdSZXBsaWVkVG9fEDlQZXJzaXN0ZWRFeHBpcmF0aW9uRm9yUmVjZWl2ZWRNZXNzYWdlV2l0aExpbWl0ZWRFeGlzdGVuY2VfECVQZXJzaXN0ZWRBdHRhY2htZW50U2VudFJlY2lwaWVudEluZm9zXxATUGVyc2lzdGVkRGlzY3Vzc2lvbl8QGFBlcnNpc3RlZE1lc3NhZ2VSZWNlaXZlZF8QHVBlcnNpc3RlZFVzZXJNZW50aW9uSW5NZXNzYWdlXxAcUGVyc2lzdGVkTWVzc2FnZVJlYWN0aW9uU2VudF8QF1BlcnNpc3RlZENhbGxMb2dDb250YWN0XxAXUGVyc2lzdGVkR3JvdXBWMkRldGFpbHNeUGVyc2lzdGVkRHJhZnRfEBBQZXJzaXN0ZWRHcm91cFYyXxAdU2VudEZ5bGVNZXNzYWdlSm9pbldpdGhTdGF0dXNfEBtQZXJzaXN0ZWRQZW5kaW5nR3JvdXBNZW1iZXJfEBlGeWxlTWVzc2FnZUpvaW5XaXRoU3RhdHVzXxAUUGVyc2lzdGVkQ2FsbExvZ0l0ZW1fECVQZXJzaXN0ZWREaXNjdXNzaW9uTG9jYWxDb25maWd1cmF0aW9uXxAaUGVyc2lzdGVkQ29udGFjdEdyb3VwT3duZWRfEBVEaXNwbGF5ZWRDb250YWN0R3JvdXBURnlsZV8QG1BlcnNpc3RlZFVzZXJNZW50aW9uSW5EcmFmdF8QLVBlcnNpc3RlZExhdGVzdERpc2N1c3Npb25TZW5kZXJTZXF1ZW5jZU51bWJlcl8QFVBlcnNpc3RlZENvbnRhY3RHcm91cF8QIlBlcnNpc3RlZE1lc3NhZ2VTZW50UmVjaXBpZW50SW5mb3NfECBQZXJzaXN0ZWRNZXNzYWdlUmVhY3Rpb25SZWNlaXZlZF8QIVJlY2VpdmVkRnlsZU1lc3NhZ2VKb2luV2l0aFN0YXR1c18QFlBlcnNpc3RlZERyYWZ0RnlsZUpvaW5fECZQZXJzaXN0ZWREaXNjdXNzaW9uU2hhcmVkQ29uZmlndXJhdGlvbl8QE1BlcnNpc3RlZEludml0YXRpb25fEClQZXJzaXN0ZWRJbnZpdGF0aW9uT25lVG9PbmVJbnZpdGF0aW9uU2VudF8QOlBlcnNpc3RlZEV4cGlyYXRpb25Gb3JSZWNlaXZlZE1lc3NhZ2VXaXRoTGltaXRlZFZpc2liaWxpdHlfEBRQZXJzaXN0ZWRNZXNzYWdlU2VudF8QFlBlcnNpc3RlZE1lc3NhZ2VTeXN0ZW1fEDZQZXJzaXN0ZWRFeHBpcmF0aW9uRm9yU2VudE1lc3NhZ2VXaXRoTGltaXRlZFZpc2liaWxpdHlfEBtQZXJzaXN0ZWRPYnZDb250YWN0SWRlbnRpdHlfEBdQZXJzaXN0ZWRPYnZPd25lZERldmljZV8QI1BlcnNpc3RlZE1lc3NhZ2VUaW1lc3RhbXBlZE1ldGFkYXRhXxAUUGVyc2lzdGVkVXNlck1lbnRpb25fEBpSZW1vdGVSZXF1ZXN0U2F2ZWRGb3JMYXRlcl8QNVBlcnNpc3RlZEV4cGlyYXRpb25Gb3JTZW50TWVzc2FnZVdpdGhMaW1pdGVkRXhpc3RlbmNlXxAbUGVyc2lzdGVkQ29udGFjdEdyb3VwSm9pbmVkXxAQUGVyc2lzdGVkTWVzc2FnZV8QGVBlcnNpc3RlZE9idkNvbnRhY3REZXZpY2VfEBZQZXJzaXN0ZWRHcm91cFYyTWVtYmVyXxAaUGVyc2lzdGVkTWVzc2FnZUV4cGlyYXRpb25fEBhQZXJzaXN0ZWRHcm91cERpc2N1c3Npb25fEBhQZXJzaXN0ZWRNZXNzYWdlUmVhY3Rpb25fEBlQZXJzaXN0ZWRPYnZPd25lZElkZW50aXR5XxAbUGVyc2lzdGVkT25lVG9PbmVEaXNjdXNzaW9u3xAQAAAA0wAAANQAAADVAAAA1gAAACEAAADXAAAA2AAAACMAAADZAAAA2gAAAA4AAAAlAAAA2wAAANwAAAAoAAAA3QAAAN4AAADfAAAAKQAAACkAAAAUAAAA4wAAAOQAAAAxAAAAKQAAAN4AAADnAAAAPQAAAN4AAADqAAAA6wAAAOxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNkdXBsaWNhdGVzXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc29yZGVyZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3N0b3JhZ2VbX2lzQWJzdHJhY3SAOYBdgASABIACgDqBA82ABIA5gQUogAaAOYElaIA4CBJRyKAGV29yZGVyZWTTAAAAOgAAADsAAAAOAAAA8AAAAPIAAACgoQAAAPGAO6EAAADzgDyAVV5YRF9QU3RlcmVvdHlwZdkAAAAhAAAAJQAAAPcAAAAOAAAAKAAAAPgAAAAjAAAA3QAAAPkAAABvAAAA8QAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAAQFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WAN4A7gDmAXIAAgAQIgD3TAAAAOgAAADsAAAAOAAABAwAAAQ0AAACgqQAAAQQAAAEFAAABBgAAAQcAAAEIAAABCQAAAQoAAAELAAABDIA+gD+AQIBBgEKAQ4BEgEWARqkAAAEOAAABDwAAARAAAAERAAABEgAAARMAAAEUAAABFQAAARaAR4BLgEyAToBPgFGAU4BWgFqAVV8QE1hEUE1Db21wb3VuZEluZGV4ZXNfEBBYRF9QU0tfZWxlbWVudElEXxAZWERQTVVuaXF1ZW5lc3NDb25zdHJhaW50c18QGlhEX1BTS192ZXJzaW9uSGFzaE1vZGlmaWVyXxA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AA20AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgJOAAICOCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAAO+AAADvwAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAADbQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgI4ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAADbQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgI4ICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAADbQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgI4ICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAADbQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgI4ICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAADbQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgI4ICAgIgEqAbwgIgAAI2QAAACEAAAAlAAAEDQAAAA4AAAAoAAAEDgAAACMAAADdAAAEDwAAAfEAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAAEF18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYCLgGWAOYBcgACABAiAmtMAAAA6AAAAOwAAAA4AAAQZAAAEIQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAABCIAAAQjAAAEJAAABCUAAAQmAAAEJwAABCiAm4CcgJ2AnoCfgKCAoYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAADbgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgJkICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAADbgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgJkICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAADbgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgJkICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAw8AAAAXAAADbgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACAhoAAgJkICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAADbgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgJkICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAADbgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgJkICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAADbgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgJkICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAAElAAAACEAAAEmAAABJwAABJUAAAAjAAABJQAABJYAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAG8AAADsAAAA7AAABJ4AAAAxAAAA7AAAAN4AAADsAAAEogAAAe4AAADsAAAA7AAABKYAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASANwgIgKQIgDkIgQLFgGAICICjCBK/6Gmn0wAAADoAAAA7AAAADgAABKoAAAStAAAAoKIAAAIPAAAErIBkgKWiAAAErgAABK+ApoCygFVfEBBYRF9QUl9TdGVyZW90eXBl2QAAACEAAAAlAAAEswAAAA4AAAAoAAAEtAAAACMAAADdAAAEtQAAAfIAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAAEvV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYCigGSAOYBcgACABAiAp9MAAAA6AAAAOwAAAA4AAAS/AAAEyAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAABMkAAATKAAAEywAABMwAAATNAAAEzgAABM8AAATQgKiAqYCqgKyArYCvgLCAsYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAErgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgKYICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAErgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgKYICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABPIAAAAXAAAErgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACAq4AAgKYICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAABQAAAAUBAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAASuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACApggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAASuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACApggICAiASoBsCAiAAAgJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAE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AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB6kAAAAXAAAILgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACA+4AAgQERCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAACC4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEBEQgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAguAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBAREICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB9cAAAAXAAAILgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACA/4AAgQERCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAACC4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEBEQgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAguAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBAREICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAA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0ZXNzdG9yYWdlgQEvgDuAOYBcgACABAiBATPTAAAAOgAAADsAAAAOAAAKlgAACqAAAACgqQAAAQQAAAEFAAABBgAAAQcAAAEIAAABCQAAAQoAAAELAAABDIA+gD+AQIBBgEKAQ4BEgEWARqkAAAqhAAAKogAACqMAAAqkAAAKpQAACqYAAAqnAAAKqAAACqmBATSBATaBATeBATyBAT2BAT+BAUCBAUKBAUOAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAqtAAAAFwAACocAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEEAAAA7AAAAOwAAAAXAAAA7IAAgQE1gACBATIICAgIgEqAPggIgAAI0gAAADsAAAAOAAAKuwAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAqHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBQAAAOwAAADsAAAAFwAAAOyAAIAAgACBATIICAgIgEqAPwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAACs4AAAAXAAAKhwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQYAAADsAAAA7AAAABcAAADsgACBATiAAIEBMggICAiASoBACAiAAAjSAAAAOwAAAA4AAArcAAABPKEAAArdgQE5gEnSAAAAOwAAAA4AAArgAAABPKMAAArhAAAB7QAACuOBATqAX4EBO4BJXxAYcmF3T3duZWRJZGVudGl0eUlkZW50aXR5WGlkZW50aXR53xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAKhwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgQEyCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAE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pAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAM2gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQFvCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA0dAAAAFwAADNoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQF0gACBAW8ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAADSsAAA0sAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAAzaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBAW8ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAAM2gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQFvCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAADNoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEBbwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAzaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBAW8ICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAE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UgQGVgQGWgQGXgQGYgQGZgQGagFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAA4dAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBAZIICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAOHQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQGSCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAADh0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEBkggICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAAA4dAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBAZIICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAOHQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQGSCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAADh0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEBkggICAiASoCACAiAAAjfEA8AAAEiAAA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AAAA7AAAADgAAEUoAABFSAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAARUwAAEVQAABFVAAARVgAAEVcAABFYAAARWYEBwoEBw4EBxIEBxYEBxoEBx4EByIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAQnwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQHACAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAEJ8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEBwAgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABCfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBAcAICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAAAQnwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEBwAgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABCfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBAcAICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACg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AAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAUYgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQIFCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAFGIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIECBQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAANxgAAABcAABRiAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEBgIAAgQIFCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAFGIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIECBQgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABRiAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBAgUICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAUYgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQIFCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAAFYgAAAAhAAABJgAAAScAABWJAAAAIwAAASUAABWKAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACaAAAA7AAAAOwAABWSAAAAMQAAAOwAAADeAAAA7AAABKIAAAtTAAAA7AAAAOwAABWaAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQEvCAiBAhAIgDkIgQLFgQFNCAiBAg8IEjYcYl/TAAAAOgAAADsAAAAOAAAVngAAFaEAAACgogAAAg8AAASsgGSApaIAABWiAAAVo4ECEYECHIBV2QAAACEAAAAlAAAVpgAAAA4AAAAoAAAVpwAAACMAAADdAAAVqAAAC2UAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAAVsF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYECDoBkgDmAXIAAgAQIgQIS0wAAADoAAAA7AAAADgAAFbIAABW7AAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAAVvAAAFb0AABW+AAAVvwAAFcAAABXBAAAVwgAAFcOBAhOBAhSBAhWBAheBAhiBAhmBAhqBAhuAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAFaIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIECEQgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABWiAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBAhEICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAFeUAAAAXAAAVogAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBAhaAAIECEQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAAV8wAAFfQAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAFaIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIECEQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAABWiAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBAhEICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAVogAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQIRCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAFaIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIECEQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAABWiAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBAhEICAgIgEqAbwgIgAAI2QAAACEAAAAlAAAWQgA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AF6gAABepAAAXqgAAF6sAABesAAAXrQAAF64AABevAAAXsAAAF7EAABeyAAAXswAAF7QAABe1AAAXtoECVIECa4ECgoEgjoEgpYEgvIEMpYEg04EeVIEg6oEauYEhAoEhGYEhMIEh1oEh7YEc8YEiBIEiG4EiM4EiSoEZoIEiYYEieIEcGYEij4EbdoEipoEDcIBVXxAdY2FwYWJpbGl0eVdlYnJ0Y0NvbnRpbnVvdXNJQ0VfEA9zb3J0RGlzcGxheU5hbWVeY2FsbExvZ0NvbnRhY3RfEB1zZXJpYWxpemVkSWRlbnRpdHlDb3JlRGV0YWlsc18QEWN1c3RvbURpc3BsYXlOYW1lXxASY2FwYWJpbGl0eUdyb3Vwc1YyWG1lc3NhZ2VzXXBlcm1hbmVudFVVSURZcmVhY3Rpb25zWGlzQWN0aXZlXxASb3duZWRDb250YWN0R3JvdXBzWmlzT25lVG9PbmVfEBhpc0NlcnRpZmllZEJ5T3duS2V5Y2xvYWtXZGV2aWNlc18QE2N1c3RvbVBob3RvRmlsZW5hbWVfEA9hc0dyb3VwVjJNZW1iZXJfEBVyYXdPbmVUb09uZURpc2N1c3Npb25ZcmF3U3RhdHVzVG5vdGVfEBhyYXdPd25lZElkZW50aXR5SWRlbnRpdHldY29udGFjdEdyb3Vwc1hwaG90b1VSTF8QGmNhcGFiaWxpdHlPbmVUb09uZUNvbnRhY3RzXxAbbGF0ZXN0U2VuZGVyU2VxdWVuY2VOdW1iZXJzXxAPZnVsbERpc3BsYXlOYW1lXxAQcmF3T3duZWRJZGVudGl0eV8QMmF0TGVhc3RPbmVEZXZpY2VBbGxvd3NUaGlzQ29udGFjdFRvUmVjZWl2ZU1lc3NhZ2VzXnN5c3RlbU1lc3NhZ2Vz3xASAAABIgAAASMAAAEkAAAX1QAAACEAAAEmAAABJwAAF9YAAAAjAAABJQAAF9cAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJEAAADsAAAA7AAAF98AAAAxAAAA7AAAAN4AAADsAAACBgAAF3wAAADsAAAA7AAAF+cAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmF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AAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIECeQgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABkxAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBAnkICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAAAZMQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIECeQgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAABkxAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBAnkICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAZMQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQJ5CAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAGTEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIECeQgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAABpXAAAAIQAAASYAAAEnAAAaWAAAACMAAAElAAAaWQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAkQAAAOwAAADsAAAaYQAAADEAAADsAAA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kQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBAymAZIA5gFyAAIAECIEDLdMAAAA6AAAAOwAAAA4AACHfAAAh6AAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAIekAACHqAAAh6wAAIewAACHtAAAh7gAAIe8AACHwgQMugQMvgQMwgQMygQMzgQM0gQM1gQM2gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACHPAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBAywICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAhzwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQMsCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACISAAAAFwAAIc8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQMxgACBAywICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAIiAAACIhAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACHPAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBAywICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACU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PAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAjEgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQNFCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACNVAAAAFwAAIxIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQNKgACBA0UICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAI2MAACNkAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACMSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBA0UICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAAjEgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQNFCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAIxIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEDRQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAACMSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBA0UICAgIgEqAbggIgAAI3xA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OAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACWUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBA3MICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAllAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQNzCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACXXAAAAFwAAJZQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQN4gACBA3MICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAJeUAACXmAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACWUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBA3MICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAAllAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQNzCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAJZQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEDcwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAA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fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBA4eAZYA5gFyAAIAECIEDl9MAAAA6AAAAOwAAAA4AACeCAAAnigAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAJ4sAACeMAAAnjQAAJ44AACePAAAnkAAAJ5GBA5iBA5mBA5qBA5uBA5yBA52BA56AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAJtYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEDlggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACbWAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBA5YICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAm1gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQOWCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwAAJtYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBA5YICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAm1gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQOWCAgICIBKgH8ICIAACN8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AAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQOtCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAKBgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEDrQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAACgYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBA60ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAoGAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQOtCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAKBgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEDrQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAACgYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBA60ICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAApPgAAACEAAAEmAAABJwAAKT8AAAAjAAABJQAAKUAAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAI8AAADsAAAA7AAAKUgAAAAxAAAA7AAAAN4AAADsAAACBgAAIaUAAADsAAAA7AAAKVAAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBAw8ICIEDuAiAOQiAioEDKAgIgQO3CBJDB68B0wAAADoAAAA7AAAADgAAKVQAAClXAAAAoKIAAAIPAAACEIBkgGWiAAApWAAAKVmBA7mBA8SAVdkAAAAhAAAAJQAAKVwAAAAOAAAAKAAAKV0AAAAjAAAA3QAAKV4AACGsAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAKWZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBA7aAZIA5gFyAAIAECIEDutMAAAA6AAAAOwAAAA4AACloAAApcQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAKXIAAClzAAApdAAAKXUAACl2AAApdwAAKXgAACl5gQO7gQO8gQO9gQO/gQPAgQPBgQPCgQPDgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAClYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBA7kICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAApWAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQO5CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACmbAAAAFwAAKVgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQO+gACBA7kICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAKakAACmqAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAClYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBA7kICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAApWAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQO5CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAKVgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEDuQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAClYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBA7kICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAApWAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQO5CAgICIBKgG8ICIAACNkAAAAhAAAAJQAAKfgAAAAOAAAAKAAAKfkAAAAjAAAA3QAAKfoAACGsAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAKgJfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBA7aAZYA5gFyAAIAECIEDxdMAAAA6AAAAOwAAAA4AACoEAAAqDAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAKg0AACoOAAAqDwAAKhAAACoRAAAqEgAAKhOBA8aBA8eBA8iBA8mBA8qBA8uBA8yAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAKVkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEDxAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAClZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBA8QICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAApWQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQPECAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwAAKVkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEDxAgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAClZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBA8QICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAApWQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQPECAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAKVkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEDxAgICAiASoCBCAiAAAhaZHVwbGljYXRlc9IAAAA7AAAADgAAKoAAAAE8oQAAKoGBA8+ASdcAAAAOAAAAJQAAKoQAAAAhAAAAKAAAKoUAAAAjAAAqhgAAABcAAACPAAAAjwAAKooAAACYAAAAMVlfc3BlY2lmaWNYX2dlbmVyYWyBCWiAAIEDD4EDD4ED0IED0RJEP0+A3xAUAAAA3QAAKo4AACqPAAAqkAAAKpEAACqSAAAqkwAAACEAAAAOAAAqlAAAACUAACqVAAAAKAAAKpYAACqXAAAqmAAAKpkAACqaAAAqmwAAACMAAAUhAAAA3gAAAN4AACqfAAAAKQAAAOQAAADeAAAAFAAAAOcAAAApAAAAZgAAKqcAACqoAAAAKQAAACkAAADeAAAqrAAAKq0AAADkAAAAMV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QIVhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zb3JkZXJlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNkdXBsaWNhdGVzXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3N0b3JhZ2VfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zb3JkZXJlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZV8QIVhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zc3RvcmFnZV8QJFhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zZHVwbGljYXRlcwmAOYA5gQPTgASBA82AOYACgQUogASAL4EfP4ED0oAEgASAOYED5IEfQIEDzRMAAAABKbxRJdMAAAA6AAAAOwAAAA4AACqxAAAqswAAAKChAAAA8YA7oQAAKrSBA9SAVdkAAAAhAAAAJQAAKrcAAAAOAAAAKAAAKrgAAAAjAAAA3QAAKrkAAACYAAAA8QAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAKsFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBA9GAO4A5gFyAAIAECIED1dMAAAA6AAAAOwAAAA4AACrDAAAqzQAAAKCpAAABBAAAAQUAAAEGAAABBwAAAQgAAAEJAAABCgAAAQsAAAEMgD6AP4BAgEGAQoBDgESARYBGqQAAKs4AACrPAAAq0AAAKtEAACrSAAAq0wAAKtQAACrVAAAq1oED1oED2IED2YED24ED3IED3oED34ED4YED4oBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAKtoAAAAXAAAqtAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBA9eAAIED1AgICAiASoA+CAiAAAjSAAAAOwAAAA4AACroAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAKrQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIED1AgICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAq+wAAABcAACq0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIED2oAAgQPUCAgICIBKgEAICIAACNIAAAA7AAAADgAAKwkAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAqtAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgQPUCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACscAAAAFwAAKrQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgQPdgACBA9QICAgIgEqAQggIgAAI0gAAADsAAAAOAAArKgAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAACq0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAICugACBA9QICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAKz0AAAAXAAAqtAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBA+CAAIED1AgICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAAArSwAAK0wAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwAAKrQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIED1AgICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAArXwAAABcAACq0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABDAAAAOwAAADsAAAAFwAAAOyAAIED44AAgQPUCAgICIBKgEYICIAACF8QEFBlcnNpc3RlZE1lc3NhZ2XTAAAAOgAAADsAAAAOAAArbgAAK4UAAACgrxAWAAArbwAAK3AAACtxAAArcgAAK3MAACt0AAArdQAAK3YAACt3AAAreAAAK3kAACt6AAArewAAK3wAABeNAAArfgAAK38AACuAAAArgQAAK4IAACuDAAArhIED5YED5oED54ED6IED6YED6oED64ED7IED7YED7oED74ED8IED8YED8oECSYED84ED9IED9YED9oED94ED+IED+a8QFgAAK4YAACuHAAAriAAAK4kAACuKAAAriwAAK4wAACuNAAArjgAAK48AACuQAAArkQAAK5IAACuTAAArlAAAK5UAACuWAAArlwAAK5gAACuZAAArmgAAK5uBA/qBBBGBBD+BBFeBBG+BBIaBBSyBHRaBHaCBHbeBHoeBEAaBHp6BHrWBHsyBHuOBDeOBHvqBDtaBHxGBHyiBBCiAVV8QGGRvZXNNZW50aW9uT3duZWRJZGVudGl0eVdyZXBsaWVzWXNvcnRJbmRleF1wZXJtYW5lbnRVVUlEXxAXaXNSZXBseVRvQW5vdGhlck1lc3NhZ2VfEBptZXNzYWdlUmVwbGllZFRvSWRlbnRpZmllclhtZW50aW9uc18QEXBlcnNpc3RlZE1ldGFkYXRhXxAUc2VuZGVyU2VxdWVuY2VOdW1iZXJccmF3UmVhY3Rpb25zVGJvZHlfECBpbGx1c3RyYXRpdmVNZXNzYWdlRm9yRGlzY3Vzc2lvbll0aW1lc3RhbXBfEBFzZWN0aW9uSWRlbnRpZmllclhyZWFkT25jZVVkcmFmdF8QFXJhd1Zpc2liaWxpdHlEdXJhdGlvblpkaXNjdXNzaW9uWWZvcndhcmRlZFxvbkNoYW5nZUZsYWdfEBNyYXdNZXNzYWdlUmVwbGllZFRv3xASAAABIgAAASMAAAEkAAArswAAACEAAAEmAAABJwAAK7QAAAAjAAABJQAAK7UAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJgAAADsAAAA7AAAK70AAAAxAAAA7AAAAN4AAADsAAACBgAAK28AAADsAAAA7AAAK8UAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBA9EICIED/AiAOQiAioED5QgIgQP7CBJIzpy50wAAADoAAAA7AAAADgAAK8kAACvMAAAAoKIAAAIPAAACEIBkgGWiAAArzQAAK86BA/2BBAiAVdkAAAAhAAAAJQAAK9EAAAAOAAAAKAAAK9IAAAAjAAAA3QAAK9MAACuGAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAK9tfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBA/qAZIA5gFyAAIAECIED/tMAAAA6AAAAOwAAAA4AACvdAAAr5gAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAK+cAACvoAAAr6QAAK+oAACvrAAAr7AAAK+0AACvugQP/gQQAgQQBgQQDgQQEgQQFgQQGgQQHgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACvNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBA/0ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAArzQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQP9CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACwQAAAAFwAAK80AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQQCgACBA/0ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAALB4AACwfAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAACvNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBA/0ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAArzQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQP9CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAK80AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIED/QgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAACvNAAAA7AAAAOw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xgQQygQQzgQQ0gQQ1gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAC5PAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBBCsICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAuTwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQQrCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAC6SAAAAFwAALk8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQQwgACBBCsICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAALqAAAC6hAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAC5PAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBBCsICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAAuTwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQQrCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAALk8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEEKwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAC5PAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBCsICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAuTwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQQrCAgICIBKgG8ICIAACNkAAAAhAAAAJQAALu8AAAAOAAAAKAAALvAAAAAjAAAA3QAALvEAACubAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAALvlfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBCiApYA5gFyAAIAECIEEN9MAAAA6AAAAOwAAAA4AAC77AAAvAwAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwAALwQAAC8FAAAvBgAALwcAAC8IAAAvCQAALwqBBDiBBDmBBDqBBDuBBDyBBD2BBD6AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwAALlAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEENggICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAC5QAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBBDYICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAAuUAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgQQ2CAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACYAAAAFwAALlAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQPRgACBBDYICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAuUAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgQQ2CAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAALlAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEENggICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAArhwAAABcAAC5QAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIEEEYAAgQQ2CAgICIBKgLoICIAACN8QEgAAASIAAAEjAAABJAAAL3YAAAAhAAABJgAAAScAAC93AAAAIwAAASUAAC94AAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACYAAAA7AAAAOwAAC+AAAAAMQAAAOwAAADeAAAA7AAAAgYAACtxAAAA7AAAAOwAAC+IAAAA7F8QIFhEQnVja2V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AAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIEDOoAAgQTwCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAN9gAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEE8AgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAADfYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBBPAICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAIrwAAAAXAAA32AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAz6AAIEE8AgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAADfYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBBPAICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAA32AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQTwCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAN9gAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOw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BBSSBBSWBBSaAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwAAOloAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEFHggICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAADpaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBBR4ICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAA6WgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgQUeCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACYAAAAFwAAOloAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQPRgACBBR4ICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAA6WgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgQUeCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAOloAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEFHggICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAA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sAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEFNIAAgQUvCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AADwkAAA8JQAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAA70wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQUvCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAO9MAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEFLwgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAADvTAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBBS8ICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAA70wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQUvCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAO9MAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEFLwgICAiASoBvCAiAAAjZAAAAIQAAACUAADxzAAAADgAAACgAADx0AAAAIwAAAN0AADx1AAArjAAABKwAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAADx9XxAhWERCdWNrZXRGb3JPd25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jAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwAAPcYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEFYggICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAD3GAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBBWIICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAA9xgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgQViCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACYAAAAFwAAPcYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQPRgACBBWIICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAA9xgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgQViCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAPcYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEFYggICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAArjAAAABcAAD3GAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIEFLIAAgQViCAgICIBKgLoICIAACNIAAAA7AAAADgAAPuwAAAE8oQAAPu2BBWyASdcAAAAOAAAAJQAAKoQAAAAhAAAAKAAAKoUAAAAjAAAqhgAAABcAAAB1AAAAdQAAPvQAAACUAAAAMYEJaIAAgQVAgQVAgQVtgQVuEmeBBW7fEBQAAADdAAA++AAAPvkAAD76AAA++wAAPvwAAD79AAAAIQAAAA4AAD7+AAAAJQAAPv8AAAAoAAA/AAAAPwEAAD8CAAA/AwAAPwQAAD8FAAAAIwAABSEAAADeAAAA3gAAPwkAAAApAAAA5AAAAN4AAAAUAAAA5wAAACkAAABiAAA/EQAAPxIAAAApAAAAKQAAAN4AAD8WAAA/FwAAAOQAAAAxXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNvcmRlcmVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNzdG9yYWdlXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNkdXBsaWNhdGVzCYA5gDmBBXCABIEDzYA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AIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAD//AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBBYgICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAA//wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQWICAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAEBCAAAAFwAAP/8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQWNgACBBYgICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAQFAAAEBRAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAD//AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBBYgICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAA//wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQWICAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAP/8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEFiAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAA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vZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQWcgGWAOYBcgACABAiBBavTAAAAOgAAADsAAAAOAABB7AAAQfQAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAEH1AABB9gAAQfcAAEH4AABB+QAAQfoAAEH7gQWsgQWtgQWugQWvgQWwgQWxgQWygFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEFBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBBaoICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABBQQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQWqCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAQUEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEFqggICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAAEFBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBBaoICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABBQQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQWqCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAQUEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEFqggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEFBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBaoICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAABCZwAAACEAAAEmAAABJwAAQmgAAAAjAAABJQAAQmkAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJQAAADsAAAA7AAAQnEAAAAxAAAA7AAAAN4AAADsAAACBgAAP9sAAADsAAAA7AAAQnkAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBBW4ICIEFtQiAOQiAioEFhAgIgQW0CBLns3lV0wAAADoAAAA7AAAADgAAQn0AAEKAAAAAoKIAAAIPAAACEIBkgGWiAABCgQAAQoKBBbaBBcGAVdkAAAAhAAAAJQAAQoUAAAAOAAAAKAAAQoYAAAAjAAAA3QAAQocAAD/fAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAQo9fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBbOAZIA5gFyAAIAECIEFt9MAAAA6AAAAOwAAAA4AAEKRAABCmgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAQpsAAEKcAABCnQAAQp4AAEKfAABCoAAAQqEAAEKigQW4gQW5gQW6gQW8gQW9gQW+gQW/gQXAgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEKBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBBbYICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABCgQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQW2CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAELEAAAAFwAAQoEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQW7gACBBbYICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAQtIAAELTAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEKBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBBbYICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAABCgQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQW2CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAQoEAAAD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AAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEXHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBQAAAOwAAADsAAAAFwAAAOyAAIAAgACBBfgICAgIgEqAPwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAARg4AAAAXAABFxwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQYAAADsAAAA7AAAABcAAADsgACBBf6AAIEF+AgICAiASoBACAiAAAjSAAAAOwAAAA4AAEYcAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAARccAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEHAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEF+AgICAiASoBBCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABGLwAAABcAAEXHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCAAAAOwAAADsAAAAFwAAAOyAAIEGAYAAgQX4CAgICIBKgEIICIAACNIAAAA7AAAADgAARj0AAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABFxwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQkAAADsAAAA7AAAABcAAADsgACAUoAAgQX4CAgICIBKgEMICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAEZQAAAAFwAARccAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEKAAAA7AAAAOwAAAAXAAAA7IAAgQYEgACBBfgICAgIgEqARAgIgAAI0wAAADoAAAA7AAAADgAARl4AAEZfAAAAoKC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Cz4B7gHyAfYB+gH+AgICBpwAAR24AAEdvAABHcAAAR3EAAEdyAABHcwAAR3SBBh+BBiCBBiGBBiKBBiOBBiSBBiWAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAARroAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEGHQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEa6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBBh0ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABGugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQYdCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADB8AAAAFwAARroAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQRTgACBBh0ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABGugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQYdCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAARroAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAL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OAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAEf7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC8gACBBjQICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAIMAAAAXAABH+wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBBc2AAIEGNAgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAEf7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAICugACBBjQICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABH+wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQY0CAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAESSAAAAFwAAR/sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQXhgACBBjQICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAABJIQAAACEAAAEmAAABJwAASSIAAAAjAAABJQAASSMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHkAAADsAAAA7AAASSsAAAAxAAAA7AAAAN4AAADsAAACBgAARoQAAADsAAAA7AAASTMAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBBfUICIEGPwiAOQiAioEGCggIgQY+CBLgTKsz0wAAADoAAAA7AAAADgAASTcAAEk6AAAAoKIAAAIPAAACEIBkgGWiAABJOwAASTyBBkCBBkuAVdkAAAAhAAAAJQAAST8AAAAOAAAAKAAASUAAAAAjAAAA3QAASUEAAEaPAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAASUlfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBj2AZIA5gFyAAIAECIEGQdMAAAA6AAAAOwAAAA4AAElLAABJVAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAASVUAAElWAABJVwAASVgAAElZAABJWgAASVsAAElcgQZCgQZDgQZEgQZGgQZHgQZIgQZJgQZKgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEk7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBBkAICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABJOwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQZACAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAEl+AAAAFwAASTsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQZFgACBBkAICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAASYwAAEmNAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEk7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBBkAICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABJOwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQZACAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAASTsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEGQAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEk7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBkAICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABJOwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQZACAgICIBKgG8ICIAACNkAAAAhAAAAJQAASdsAAAAOAAAAKAAASdwAAAAjAAAA3QAASd0AAEaPAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAASeVfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBBj2AZYA5gFyAAIAECIEGTNMAAAA6AAAAOwAAAA4AAEnnAABJ7wAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAASfAAAEnxAABJ8gAASfMAAEn0AABJ9QAASfaBBk2BBk6BBk+BBlCBBlGBBlKBBlOAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAASTwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEGSwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEk8AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBBksICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABJPAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQZLCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADG+AAAAFwAASTwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQRrgACBBksICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABJPAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQZLCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAASTwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEGSwgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEk8AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBBksICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAABKYgAAACEAAAEmAAABJwAASmMAAAAjAAABJQAASmQAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHkAAADsAAAA7AAASmwAAAAxAAAA7AAAAN4AAADsAAAEogAARoUAAADsAAAA7AAASnQAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBBfUICIEGVgiAOQiBAsWBBgsICIEGVQgSais0HdMAAAA6AAAAOwAAAA4AAEp4AABKewAAAKCiAAACDwAABKyAZIClogAASnwAAEp9gQZXgQZigFXZAAAAIQAAACUAAEqAAAAADgAAACgAAEqBAAAAIwAAAN0AAEqCAABGkAAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAEqKXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQZUgGSAOYBcgACABAiBBljTAAAAOgAAADsAAAAOAABKjAAASpUAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAEqWAABKlwAASpgAAEqZAABKmgAASpsAAEqcAABKnYEGWYEGWoEGW4EGXYEGXoEGX4EGYIEGYYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABKfAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQZXCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAASnwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEGVwgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABKvwAAABcAAEp8AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEGXIAAgQZXCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAErNAABKzgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABKfAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQZXCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAASnwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEGVwgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEp8AAAA7AAAAOwAAAD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A7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEGhAgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAEx9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBBoQICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAATMAAAAAXAABMfQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBBomAAIEGhAgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAABMzgAATM8AAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAATH0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEGhAgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAEx9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBBoQICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABMfQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQaECAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAATH0AAADsAAA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cgACABAiBBqfTAAAAOgAAADsAAAAOAABOagAATnIAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAE5zAABOdAAATnUAAE52AABOdwAATngAAE55gQaogQapgQaqgQargQasgQatgQaugFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAE2/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBBqYICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABNvwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQamCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAATb8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEGpggICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAANxgAAABcAAE2/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEBgIAAgQamCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAATb8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEGpggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAE2/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBBqYICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABNvwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQamCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAATuUAAAAhAAABJgAAAScAAE7mAAAAIwAAASUAAE7nAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACJAAAA7AAAAOwAAE7vAAAAMQAAAOwAAADeAAAA7AAABKIAAExRAAAA7AAAAOwAAE73AAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQZoCAiBBrEIgDkIgQLFgQZ9CAiBBrAIErhrao/TAAAAOgAAADsAAAAOAABO+wAATv4AAACgogAAAg8AAASsgGSApaIAAE7/AABPAIEGsoEGvYBV2QAAACEAAAAlAABPAwAAAA4AAAAoAABPBAAAACMAAADdAABPBQAATFgAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAABPDV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEGr4BkgDmAXIAAgAQIgQaz0wAAADoAAAA7AAAADgAATw8AAE8YAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAABPGQAATxoAAE8bAABPHAAATx0AAE8eAABPHwAATyCBBrSBBrWBBraBBriBBrmBBrqBBruBBryAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAATv8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEGsggICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAE7/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBBrIICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAT0IAAAAXAABO/wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBBreAAIEGsggICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAABPUAAAT1EAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAATv8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEGsggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAE7/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBBrIICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABO/wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoA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BKgAAACgAAAErAAAAFwAAABcAAAAXAABQFwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgQbGCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFCFAAAAFwAAUBcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgQbRgACBBsYICAgIgEqAQggIgAAI0gAAADsAAAAOAABQkwAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFAXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBBsYICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAUKYAAAAXAABQFwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBBtSAAIEGxggICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAABQtAAAULUAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwAAUBcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIEGxggICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAUAAAABcAAFAXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABDAAAAOwAAADsAAAAFwAAAOyAAIAZgACBBsYICAgIgEqARggIgAAI0wAAADoAAAA7AAAADgAAUNYAAFDbAAAAoKQAAFDXAAB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0Rm9yU3BlY2lhbGl6YXRpb25zb3JkZXJlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNkdXBsaWNhdGVzXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3N0b3JhZ2VfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zb3JkZXJlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZV8QIVhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zc3RvcmFnZV8QJFhEQnVja2V0Rm9yU3BlY2lhbGl6YXRpb25zZHVwbGljYXRlcwmAOYA5gQcIgASBA82AOYACgQUogASAFIEIT4EHB4AEgASAOYEHGYEIUIEDzRI2qC090wAAADoAAAA7AAAADgAAU10AAFNfAAAAoKEAAADxgDuhAABTYIEHCYBV2QAAACEAAAAlAABTYwAAAA4AAAAoAABTZAAAACMAAADdAABTZQAAAH0AAADxAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAABTbV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEHBoA7gDmAXIAAgAQIgQcK0wAAADoAAAA7AAAADgAAU28AAFN5AAAAoKkAAAEEAAABBQAAAQYAAAEHAAABCAAAAQkAAAEKAAABCwAAAQyAPoA/gECAQYBCgEOARIBFgEapAABTegAAU3sAAFN8AABTfQAAU34AAFN/AABTgAAAU4EAAFOCgQcLgQcNgQcOgQcQgQcRgQcTgQcUgQcWgQc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sAAAA7AAAABcAAADsgACAAIAAgQclCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFSdAAAAFwAAVFoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQcqgACBByUICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAVKsAAFSsAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFRaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBByUICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABUWgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQclCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAVFoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEHJQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFRaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBByUICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABUWgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAAD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AACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABVnAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQdHCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAVZwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEHRwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFWcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBB0cICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAABVnAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEHRwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFWcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBB0cICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABVnAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQdHCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAA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BdHRyaWJ1dGVzc3RvcmFnZYEHloBlgDmAXIAAgAQIgQel0wAAADoAAAA7AAAADgAAW0wAAFtUAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAABbVQAAW1YAAFtXAABbWAAAW1kAAFtaAABbW4EHpoEHp4EHqIEHqYEHqoEHq4EHrIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAV5sAAAAXAABaoQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACBB2GAAIEHpAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFqhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBB6QICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABaoQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQekCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADB8AAAAFwAAWqEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQRTgACBB6QICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABaoQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQekCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAWqEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHpAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFqhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBB6QICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAABbxwAAACEAAAEmAAABJwAAW8gAAAAjAAABJQAAW8kAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH0AAADsAAAA7AAAW9EAAAAxAAAA7AAAAN4AAADsAAACBgAATFMAAADsAAAA7AAAW9kAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBBwYICIEHrwiAOQiAioEGfwgIgQeuCBLhlBug0wAAADoAAAA7AAAADgAAW90AAFvgAAAAoKIAAAIPAAACEIBkgGWiAABb4QAAW+KBB7CBB7uAVdkAAAAhAAAAJQAAW+UAAAAOAAAAKAAAW+YAAAAjAAAA3QAAW+cAAFQvAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAW+9fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBB62AZIA5gFyAAIAECIEHsdMAAAA6AAAAOwAAAA4AAFvxAABb+gAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAW/sAAFv8AABb/QAAW/4AAFv/AABcAAAAXAEAAFwCgQeygQezgQe0gQe2gQe3gQe4gQe5gQe6gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFvhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBB7AICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABb4QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQewCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFwkAAAAFwAAW+EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQe1gACBB7AICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAXDIAAFwzAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFvhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBB7AICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABb4QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQewCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAW+EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEHsAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFvhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBB7AICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABb4QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQewCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAXIEAAAAOAAAAKAAAXIIAAAAjAAAA3QAAXIMAAFQvAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAXItfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBB62AZYA5gFyAAIAECIEHvNMAAAA6AAAAOwAAAA4AAFyNAABclQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAXJYAAFyXAABcmAAAXJkAAFyaAABcmwAAXJyBB72BB76BB7+BB8CBB8GBB8KBB8OAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAW+IAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHuwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAFviAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBB7sICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABb4gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQe7CAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwAAW+IAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBB7sICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABb4gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQe7CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAW+IAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEHuwgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAFviAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBB7sICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAABdCAAAACEAAAEmAAABJwAAXQkAAAAjAAABJQAAXQoAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH0AAADsAAAA7AAAXRIAAAAxAAAA7AAAAN4AAADsAAAEogAATFE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5gFyAAIAECIEH39MAAAA6AAAAOwAAAA4AAF5zAABefAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAXn0AAF5+AABefwAAXoAAAF6BAABeggAAXoMAAF6EgQfggQfhgQfigQfkgQflgQfmgQfngQfogFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAF5jAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBB94ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABeYwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQfeCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAF6mAAAAFwAAXmMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQfjgACBB94ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAXrQAAF61AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAF5jAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBB94ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABeYwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQfeCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAXmMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEH3ggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAF5jAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBB94ICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABeYwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQfeCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAXwMAAAAOAAAAKAAAXwQAAAAjAAAA3QAAXwUAAFQxAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAXw1fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBB9uAZYA5gFyAAIAECIEH6tMAAAA6AAAAOwAAAA4AAF8PAABfFwAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAXxgAAF8ZAABfGgAAXxsAAF8cAABfHQAAXx6BB+uBB+yBB+2BB+6BB++BB/CBB/GAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAepAAAAFwAAXmQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgPuAAIEH6QgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAF5kAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBB+kICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABeZAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQfpCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAfXAAAAFwAAXmQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgP+AAIEH6QgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAF5kAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBB+kICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABeZAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQfpCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAXmQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEH6QgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAF+KAAAAIQAAASYAAAE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pAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABg5gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQgXCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAYOYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEIFwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAGDmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBCBcICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAw8AAAAXAABg5gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACAhoAAgQgXCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAYOYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEIFwgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAGDmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBCBcICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABg5gA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AIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAMHwAAAAXAABiJwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBBFOAAIEILggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAGInAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBCC4ICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABiJwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQguCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAYicAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEILggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAGNNAAAAIQAAASYAAAEnAABjTgAAACMAAAElAABjTwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAfQAAAOwAAADsAABjVwAAADEAAADsAAAA3gAAAOwAAAIGAABUJwAAAOwAAADsAABjXwAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEHBggIgQg5CIA5CICKgQchCAiBCDgIEoRbOjXTAAAAOgAAADsAAAAOAABjYwAAY2YAAACgogAAAg8AAAIQgGSAZaIAAGNnAABjaIEIOoEIRoB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AASsAAAAXAAABjgAAABcAAGelAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBCJwICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABnpQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQicCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAGfoAAAAFwAAZ6UAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQihgACBCJwICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAZ/YAAGf3AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAGelAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBCJwICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAABnpQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQicCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAZ6UAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEInAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAGelAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBCJwICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABnpQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQicCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAaEUAAAAOAAAAKAAAaEYAAAAjAAAA3QAAaEcAAGd3AAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAaE9fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBCJmApYA5gFyAAIAECIEIqNMAAAA6AAAAOwAAAA4AAGhRAABoWQAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwAAaFoAAGhbAABoXAAAaF0AAGheAABoXwAAaGCBCKmBCKqBCKuBCKyBDF2BDF6BDF+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwAAZ6YAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEIpwgICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAKPAAAABcAAGemAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIEBLIAAgQinCAgICIBKgLUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwAAZ6YAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVfAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEIpwgICAiASoC2CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAcQAAABcAAGemAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYAAAAOwAAADsAAAAFwAAAOyAAIEIrYAAgQinCAgICIBKgLcICIAACN8QEAAAaJ8AAGigAABooQAAaKIAAAAhAABoowAAaKQAAAAjAABopQAAaKYAAAAOAAAAJQAAaKcAAGioAAAAKAAAAN0AAADeAABoqgAAACkAAAApAAAAFAAAaK4AAADkAAAAMQAAACkAAADeAAAA5wAAAD8AAADeAABotQAAaLYAAADsXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlgDmBCMCABIAEgAKBCK+BA82ABIA5gQUogAiAOYEI2YEIrggSg79rNdMAAAA6AAAAOwAAAA4AAGi6AABovAAAAKChAAAA8YA7oQAAaL2BCLCAVdkAAAAhAAAAJQAAaMAAAAAOAAAAKAAAaMEAAAAjAAAA3QAAaMIAAABxAAAA8QAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAaMpfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBCK2AO4A5gFyAAIAECIEIsdMAAAA6AAAAOwAAAA4AAGjMAABo1gAAAKCpAAABBAAAAQUAAAEGAAABBwAAAQgAAAEJAAABCgAAAQsAAAEMgD6AP4BAgEGAQoBDgESARYBGqQAAaNcAAGjYAABo2QAAaNoAAGjbAABo3AAAaN0AAGjeAABo34EIsoEItIEItYEIt4EIuIEIuoEIu4EIvYEIvoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAaOMAAAAXAABovQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBCLOAAIEIsAgICAiASoA+CAiAAAjSAAAAOwAAAA4AAGjxAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAaL0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEIsAgICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABpBAAAABcAAGi9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEItoAAgQiwCAgICIBKgEAICIAACNIAAAA7AAAADgAAaRIAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABovQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgQiwCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAGklAAAAFwAAaL0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgQi5gACBCLAICAgIgEqAQggIgAAI0gAAADsAAAAOAABpMwAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAGi9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBCLAICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAaUYAAAAXAABovQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBCLyAAIEIsAgICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAABpVAAAaVUAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwAAaL0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIEIsAgICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABpaAAAABcAAGi9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABDAAAAOwAAADsAAAAFwAAAOyAAIEIv4AAgQiwCAgICIBKgEYICIAACF8QOVBlcnNpc3RlZEV4cGlyYXRpb25Gb3JSZWNlaXZlZE1lc3NhZ2VXaXRoTGltaXRlZEV4aXN0ZW5jZdMAAAA6AAAAOwAAAA4AAGl3AABpeQAAAKChAABpeIEIwaEAAGl6gQjCgFVfECNtZXNzYWdlUmVjZWl2ZWRXaXRoTGltaXRlZEV4aXN0ZW5jZd8QEgAAASIAAAEjAAABJAAAaX4AAAAhAAABJgAAAScAAGl/AAAAIwAAASUAAGmAAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAABxAAAA7AAAAOwAAGmIAAAAMQAAAOwAAADeAAAA7AAABKIAAGl4AAAA7AAAAOwAAGmQAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQitCAiBCMQIgDkIgQLFgQjBCAiBCMMIEk3paCTTAAAAOgAAADsAAAAOAABplAAAaZcAAACgogAAAg8AAASsgGSApaIAAGmYAABpmYEIxYEI0IBV2QAAACEAAAAlAABpnAAAAA4AAAAoAABpnQAAACMAAADdAABpngAAaXoAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAABppl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEIwoBkgDmAXIAAgAQIgQjG0wAAADoAAAA7AAAADgAAaagAAGmxAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAABpsgAAabMAAGm0AABptQAAabYAAGm3AABpuAAAabmBCMeBCMiBCMmBCMuBCMyBCM2BCM6BCM+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAaZgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEIxQgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAGmYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBCMUICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAadsAAAAXAABpmAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBCMqAAIEIxQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAABp6QAAaeoAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAaZgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEIxQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAGmYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBCMUICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABpmAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQjFCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAaZgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEIxQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAGmYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBCMUICAgIgEqAbwgIgAAI2QAAACEAAAAlAABqOAAAAA4AAAAoAABqOQAAACMAAADdAABqOgAAaXoAAASsAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAABqQl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEIwoClgDmAXIAAgAQIgQjR0wAAADoAAAA7AAAADgAAakQAAGpMAAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAABqTQAAak4AAGpPAABqUAAAalEAAGpSAABqU4EI0oEI04EI1IEI1YEI1oEI14EI2IBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAABpmQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgQjQCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwAAaZkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEI0AgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAGmZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC+gACBCNAICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAHQAAAAXAABpmQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBCHyAAIEI0AgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAGmZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBCNAICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABpmQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQjQCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAGd3AAAAFwAAaZkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQiZgACBCNAICAgIgEqAuggIgAAI0gAAADsAAAAOAABqvwAAATyhAABqwIEI2oBJ1wAAAA4AAAAlAAAqhAAAACEAAAAoAAAqhQAAACMAACqGAAAAFwAAAHEAAABxAABqxwAAAJsAAAAxgQlogACBCK2BCK2BCNuBCNwTAAAAASRc4XHfEBQAAADdAABqywAAaswAAGrNAABqzgAAas8AAGrQAAAAIQAAAA4AAGrRAAAAJQAAatIAAAAoAABq0wAAatQAAGrVAABq1gAAatcAAGrYAAAAIwAABSEAAADeAAAA3gAAatwAAAApAAAA5AAAAN4AAAAUAAAA5wAAACkAAABpAABq5AAAauUAAAApAAAAKQAAAN4AAGrpAABq6gAAAOQAAAAxXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNvcmRlcmVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAhWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNzdG9yYWdlXxAkWERCdWNrZXRGb3JTcGVjaWFsaXphdGlvbnNkdXBsaWNhdGVzCYA5gDmBCN6ABIEDzYA5gAKBBSiABIAygQkggQjdgASABIA5gQjvgQkhgQPNEjvt9mPTAAAAOgAAADsAAAAOAABq7gAAavAAAACgoQAAAPGAO6EAAGrxgQjfgFXZAAAAIQAAACUAAGr0AAAADgAAACgAAGr1AAAAIwAAAN0AAGr2AAAAmwAAAPEAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAGr+XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQjcgDuAOYBcgACABAiBCODTAAAAOgAAADsAAAAOAABrAAAAawoAAACgqQAAAQQAAAEFAAABBgAAAQcAAAEIAAABCQAAAQoAAAELAAABDIA+gD+AQIBBgEKAQ4BEgEWARqkAAGsLAABrDAAAaw0AAGsOAABrDwAAaxAAAGsRAABrEgAAaxOBCOGBCOOBCOSBCOaBCOeBCOmBCOqBCOyBCO2AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAGsXAAAAFwAAavEAAADsAAA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BCQSBCQWBCQaBCQeBCQiAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAa9AAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEJAAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAGvQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBCQAICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABr0AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQkACAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADeBAAAAFwAAa9AAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQTegACBCQAICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABr0AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQkACAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAa9AAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEJAAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAGvQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBCQAICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAABs9gAAACEAAAEmAAABJwAAbPcAAAAjAAABJQAAbPgAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJsAAADsAAAA7AAAbQAAAAAxAAAA7AAAAN4AAADsAAACBgAAa60AAADsAAAA7AAAbQgAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBCNwICIEJCwiAOQiAioEI8QgIgQkKCBKntwMn0wAAADoAAAA7AAAADgAAbQwAAG0PAAAAoKIAAAIPAAACEIBkgGWiAABtEAAAbRGBCQyBCReAVdkAAAAhAAAAJQAAbRQAAAAOAAAAKAAAbRUAAAAjAAAA3QAAbRYAAGuwAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAbR5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBCQmAZIA5gFyAAIAECIEJDdMAAAA6AAAAOwAAAA4AAG0gAABtKQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAbSoAAG0rAABtLAAAbS0AAG0uAABtLwAAbTAAAG0xgQkOgQkPgQkQgQkSgQkTgQkUgQkVgQkWgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAG0QAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBCQwICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABtEAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQkMCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAG1TAAAAFwAAbRAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQkRgACBCQwICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAbWEAAG1iAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAG0QAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBCQwICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABtEAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQkMCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAbRAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEJDAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAG0QAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBCQwICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABtEAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQkMCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAbbAAAAAOAAAAKAAAbbEAAAAjAAAA3QAAbbIAAGuwAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAbbpfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBCQmAZYA5gFyAAIAECIEJGNMAAAA6AAAAOwAAAA4AAG28AABtxAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAbcUAAG3GAABtxwAAbcgAAG3JAABtygAAbcuBCRmBCRqBCRuBCRyBCR2BCR6BCR+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAbREAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEJFwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAG0RAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBCRcICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABtEQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQkXCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADeBAAAAFwAAbREAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQTegACBCRcICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABtEQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQkXCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAbREAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEJFwgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAG0RAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBCRcICAgIgEqAgQgIgAAI0gAAADsAAAAOAABuNwAAATyggEnSAAAAOwAAAA4AAG46AAABPKQAAGrAAABuPAAAbj0AAG4+gQjagQkigQlpgQp8gEnXAAAADgAAACUAACqEAAAAIQAAACgAACqFAAAAIwAAKoYAAAAXAAAAjQAAAI0AAG5FAAAAmwAAADGBCWiAAIEJI4EJI4EJZ4EI3N8QEAAAbkgAAG5JAABuSgAAbksAAAAhAABuTAAAbk0AAAAjAABuTgAAbk8AAAAOAAAAJQAAblAAAG5RAAAAKAAAAN0AAADeAABuUwAAACkAAAApAAAAFAAAblcAAADkAAAAMQAAACkAAADeAAAA5wAAAFsAAADeAABuXgAAbl8AAADsXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlgDmBCTaABIAEgAKBCSWBA82ABIA5gQUogCSAOYEJZoEJJAgTAAAAAQuC0OrTAAAAOgAAADsAAAAOAABuYwAAbmUAAACgoQAAAPGAO6EAAG5mgQkmgFXZAAAAIQAAACUAAG5pAAAADgAAACgAAG5qAAAAIwAAAN0AAG5rAAAAjQAAAPEAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAG5zXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQkjgDuAOYBcgACABAiBCSfTAAAAOgAAADsAAAAOAABudQAAbn8AAACgqQAAAQQAAAEFAAABBgAAAQcAAAEIAAABCQAAAQoAAAELAAABDIA+gD+AQIBBgEKAQ4BEgEWARqkAAG6AAABugQAAboIAAG6DAABuhAAAboUAAG6GAABuhwAAboiBCSiBCSqBCSuBCS2BCS6BCTCBCTGBCTOBCTSAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAG6MAAAAFwAAbmYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEEAAAA7AAAAOwAAAAXAAAA7IAAgQkpgACBCSYICAgIgEqAPggIgAAI0gAAADsAAAAOAABumgAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAG5mAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBQAAAOwAAADsAAAAFwAAAOyAAIAAgACBCSYICAgIgEqAPwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAbq0AAAAXAABuZgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQYAAADsAAAA7AAAABcAAADsgACBCSyAAIEJJggICAiASoBACAiAAAjSAAAAOwAAAA4AAG67AAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAbmYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEHAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEJJggICAiASoBBCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABuzgAAABcAAG5mAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCAAAAOwAAADsAAAAFwAAAOyAAIEJL4AAgQkmCAgICIBKgEIICIAACNIAAAA7AAAADgAAbtwAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABuZgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQkAAADsAAAA7AAAABcAAADsgACAUoAAgQkmCAgICIBKgEMICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAG7vAAAAFwAAbmYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEKAAAA7AAAAOwAAAAXAAAA7IAAgQkygACBCSYICAgIgEqARAgIgAAI0wAAADoAAAA7AAAADgAAbv0AAG7+AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABtQAAABcAAG5mAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCwAAAOwAAADsAAAAFwAAAOyAAIBXgACBCSYICAgIgEqARQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAbxEAAAAXAABuZgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQwAAADsAAAA7AAAABcAAADsgACBCTWAAIEJJggICAiASoBGCAiAAAhfEDpQZXJzaXN0ZWRFeHBpcmF0aW9uRm9yUmVjZWl2ZWRNZXNzYWdlV2l0aExpbWl0ZWRWaXNpYmlsaXR50wAAADoAAAA7AAAADgAAbyAAAG8iAAAAoKEAAG8hgQk3oQAAbyOBCTiAVV8QJG1lc3NhZ2VSZWNlaXZlZFdpdGhMaW1pdGVkVmlzaWJpbGl0ed8QEgAAASIAAAEjAAABJAAAbycAAAAhAAABJgAAAScAAG8oAAAAIwAAASUAAG8pAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACNAAAA7AAAAOwAAG8xAAAAMQAAAOwAAADeAAAA7AAABKIAAG8hAAAA7AAAAOwAAG85AAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQkjCAiBCToIgDkIgQLFgQk3CAiBCTkIEwAAAAEkyTo80wAAADoAAAA7AAAADgAAbz0AAG9AAAAAoKIAAAIPAAAErIBkgKWiAABvQQAAb0KBCTuBCUaAVdkAAAAhAAAAJQAAb0UAAAAOAAAAKAAAb0YAAAAjAAAA3QAAb0cAAG8jAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAb09fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBCTiAZIA5gFyAAIAECIEJPNMAAAA6AAAAOwAAAA4AAG9RAABvWgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAb1sAAG9cAABvXQAAb14AAG9fAABvYAAAb2EAAG9igQk9gQk+gQk/gQlBgQlCgQlDgQlEgQlFgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAG9BAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBCTsICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABvQQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQk7CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAG+EAAAAFwAAb0EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQlAgACBCTsICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAb5IAAG+TAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAG9BAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBCTsICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABvQQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQk7CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAb0EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEJOwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAG9BAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBCTsICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABvQQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQk7CAgICIBKgG8ICIAACNkAAAAhAAAAJQAAb+EAAAAOAAAAKAAAb+IAAAAjAAAA3QAAb+MAAG8jAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAb+tfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBCTiApYA5gFyAAIAECIEJR9MAAAA6AAAAOwAAAA4AAG/tAABv9QAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwAAb/YAAG/3AABv+AAAb/kAAG/6AABv+wAAb/yBCUiBCUmBCUqBCUuBCUyBCU2BCU6AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwAAb0IAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEJRggICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAG9CAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBCUYICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAABvQgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgQlGCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAB0AAAAFwAAb0IAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQh8gACBCUYICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABvQgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgQlGCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAb0IAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEJRggICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABnfQAAABcAAG9CAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIEJT4AAgQlGCAgICIBKgLoICIAACN8QEgAAASIAAAEjAAABJAAAcGgAAAAhAAABJgAAAScAAHBpAAAAIwAAASUAAHBqAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAAB0AAAA7AAAAOwAAHByAAAAMQAAAOwAAADeAAAA7AAABKIAAGdzAAAA7AAAAOwAAHB6AAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQh8CAiBCVEIgDkIgQLFgQiWCAiBCVAIEnlnsUnTAAAAOgAAADsAAAAOAABwfgAAcIEAAACgogAAAg8AAASsgGSApaIAAHCCAABwg4EJUoEJXYBV2QAAACEAAAAlAABwhgAAAA4AAAAoAABwhwAAACMAAADdAABwiAAAZ30AAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAABwkF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEJT4BkgDmAXIAAgAQIgQlT0wAAADoAAAA7AAAADgAAcJIAAHCbAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAABwnAAAcJ0AAHCeAABwnwAAcKAAAHChAABwogAAcKOBCVSBCVWBCVaBCViBCVmBCVqBCVuBCVyAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAcIIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEJUggICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAHCCAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBCVIICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAcMUAAAAXAABwggAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBCVeAAIEJUggICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAABw0wAAcNQAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAcIIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEJUggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAHCCAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBCVIICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABwggAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQlSCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAcIIAAADsAAA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BIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAcf8AAAAXAABx2QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBCXCAAIEJbQgICAiASoA+CAiAAAjSAAAAOwAAAA4AAHINAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAcdkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEJbQgICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAByIAAAABcAAHHZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEJc4AAgQltCAgICIBKgEAICIAACNIAAAA7AAAADgAAci4AAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAABx2QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgQltCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAHJBAAAAFwAAcdkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgQl2gACBCW0ICAgIgEqAQggIgAAI0gAAADsAAAAOAAByTwAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAHHZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAA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PAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAB5awAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQoaCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADG+AAAAFwAAeWsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQRrgACBChoICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAB5awAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQoaCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAeWsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEKGggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAHlrAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBChoICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAB6kQAAACEAAAEmAAABJwAAepIAAAAjAAABJQAAepMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAI4AAADsAAAA7AAAepsAAAAxAAAA7AAAAN4AAADsAAAEogAAdIkAAADsAAAA7AAAeqMAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0V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CKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAf3YAAH93AAB/eAAAf3kAAH96AAB/ewAAf3wAAH99gQqGgQqHgQqIgQqKgQqLgQqMgQqNgQqOgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAH9cAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBCoQICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAB/XAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQqECAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAH+fAAAAFwAAf1wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQqJgACBCoQICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAf60AAH+uAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAH9cAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBCoQICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAB/XAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQqECAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQA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AACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAhrAAAAAXAACGSAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQgAAADsAAAA7AAAABcAAADsgACBCxmAAIELEAgICAiASoBCCAiAAAjSAAAAOwAAAA4AAIa+AAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAhkgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEJAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELEAgICAiASoBDCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAACG0QAAABcAAIZIAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCgAAAOwAAADsAAAAFwAAAOyAAIELHIAAgQsQCAgICIBKgEQICIAACNMAAAA6AAAAOwAAAA4AAIbfAACG4AAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAbUAAAAXAACGSAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQsAAADsAAAA7AAAABcAAADsgACAV4AAgQsQCAgICIBKgEUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAIbzAAAAFwAAhkgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEMAAAA7AAAAOwAAAAXAAAA7IAAgQsfgACBCxAICAgIgEqARggIgAAIXxAlUGVyc2lzdGVkQXR0YWNobWVudFNlbnRSZWNpcGllbnRJbmZvc9MAAAA6AAAAOwAAAA4AAIcCAACHBgAAAKCjAABMVAAAF40AAIcFgQaAgQJJgQshowAAhwcAAIcIAACHCYELIoELOYELUIBVW21lc3NhZ2VJbmZv3xASAAABIgAAASMAAAEkAACHDQAAACEAAAEmAAABJwAAhw4AAAAjAAABJQAAhw8AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHIAAADsAAAA7AAAhxcAAAAxAAAA7AAAAN4AAADsAAACBgAATFQAAADsAAAA7AAAhx8AAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBCw0ICIELJAiAOQiAioEGgAgIgQsjCBKwlTgj0wAAADoAAAA7AAAADgAAhyMAAIcmAAAAoKIAAAIPAAACEIBkgGWiAACHJwAAhyiBCyWBCzCAVdkAAAAhAAAAJQAAhysAAAAOAAAAKAAAhywAAAAjAAAA3QAAhy0AAIcHAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAhzVfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBCyKAZIA5gFyAAIAECIELJtMAAAA6AAAAOwAAAA4AAIc3AACHQAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAh0EAAIdCAACHQwAAh0QAAIdFAACHRgAAh0cAAIdIgQsngQsogQspgQsrgQssgQstgQsugQsvgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAIcnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBCyUICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACHJwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQslCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAIdqAAAAFwAAhycAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQsqgACBCyUICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAh3gAAId5AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAIcnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBCyUICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACHJwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQslCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAhycAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELJQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIcnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBCyUICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACHJwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AA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AAAEqAAAAKAAAASsAAAAXAAAijgAAABcAAIhpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIEDOoAAgQtHCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAiGkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELRwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIhpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBC0cICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAIrwAAAAXAACIaQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAz6AAIELRwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIhpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBC0cICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACIaQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQtHCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAiGkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIELRwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAImPAAAAIQAAASYAAAEnAACJkAAAACMAAAElAACJkQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAcgAAAOwAAADsAACJmQAAADEAAADsAAAA3gAAAOwAAASiAACHBQAAAOwAAADsAACJoQAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIELDQgIgQtSCIA5CIECxYELIQgIgQtRCBMAAAABFwf5T9MAAAA6AAAAOwAAAA4AAImlAACJqAAAAKCiAAACDwAABKyAZIClogAAiakAAImqgQtTgQtegFXZAAAAIQAAACUAAImtAAAADgAAACgAAImuAAAAIwAAAN0AAImvAACHCQAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAIm3XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQtQgGSAOYBcgACABAiBC1TTAAAAOgAAADsAAAAOAACJuQAAicIAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAInDAACJxAAAicUAAInGAACJxwAAicgAAInJAACJyoELVYELVoELV4ELWYELWoELW4ELXIELXYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACJqQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQtTCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAiakAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIELUwgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAACJ7AAAABcAAImpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIELWIAAgQtTCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAIn6AACJ+wAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACJqQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQtTCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAAiakAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIELUwgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAImpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBC1MICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACJqQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQtTCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAA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AAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBC24ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACLGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQtuCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAItdAAAAFwAAixoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQtzgACBC24ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAi2sAAItsAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAIsaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBC24ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACLGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQtuCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAixoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELbggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIsaAAAA7AAAAOwAAADsAAAAMQAAAOw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ADgAAjQcAAI0PAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAACNEAAAjREAAI0SAACNEwAAjRQAAI0VAACNFoELkoELk4ELlIELlYELloELl4ELmIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACMXAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQuQCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAjFwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELkAgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIxcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBC5AICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAN4EAAAAXAACMXAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBBN6AAIELkAgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAIxcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBC5AICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACMXAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQuQCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAjFwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIELkAgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAI2CAAAAIQAAASYAAAEnAACNgwAAACMAAAElAACNhAAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAhgAAAOwAAADsAACNjAAAADEAAADsAAAA3gAAAOwAAAIGAACDtQAAAOwAAADsAACNlAAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEKwwgIgQubCIA5CICKgQrbCAiBC5oIEwAAAAEYHzxh0wAAADoAAAA7AAAADgAAjZgAAI2bAAAAoKIAAAIPAAACEIBkgGWiAACNnAAAjZ2BC5yBC6eAVdkAAAAhAAAAJQAAjaAAAAAOAAAAKAAAjaEAAAAjAAAA3QAAjaIAAIPBAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAjapfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBC5mAZIA5gFyAAIAECIELndMAAAA6AAAAOwAAAA4AAI2sAACNtQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAjbYAAI23AACNuAAAjbkAAI26AACNuwAAjbwAAI29gQuegQufgQuggQuigQujgQukgQulgQumgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAI2cAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBC5wICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACNnAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQucCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAI3fAAAAFwAAjZwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQuhgACBC5wICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAje0AAI3uAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAI2cAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBC5wICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACNnAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQucCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAjZwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELnAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAI2cAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBC5wICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACNnAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQucCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAjjwAAAAOAAAAKAAAjj0AAAAjAAAA3QAAjj4AAIPBAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAjkZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBC5mAZYA5gFyAAIAECIELqNMAAAA6AAAAOwAAAA4AAI5IAACOUAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAjlEAAI5SAACOUwAAjlQAAI5VAACOVgAAjleBC6mBC6qBC6uBC6yBC62BC66BC6+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAjZ0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIELpwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAI2dAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBC6cICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACNnQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQunCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwAAjZ0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIELpwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAI2dAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBC6cICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACNnQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQunCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAjZ0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIELpwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAI7DAAAAIQAAASYAAAEnAACOxAAAACMAAAElAACOxQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAhgAAAOwAAADsAACOzQAAADEAAADsAAAA3gAAAOwAAAIGAACDtgAAAOwAAADsAACO1QAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2F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AAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAkDgAAJA5AACQOgAAkDsAAJA8AACQPQAAkD4AAJA/gQvMgQvNgQvOgQvQgQvRgQvSgQvTgQvUgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJAeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBC8oICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACQHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQvKCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAJBhAAAAFwAAkB4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQvPgACBC8oICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAkG8AAJBwAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJAeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBC8oICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAACQHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQvKCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAkB4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIELyggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAJAeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBC8oICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACQHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQvKCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAkL4AAAAOAAAAKAAAkL8AAAAjAAAA3QAAkMAAAIPDAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAkMhfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBC8eAZYA5gFyAAIAECIEL1tMAAAA6AAAAOwAAAA4AAJDKAACQ0gAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAkNMAAJDUAACQ1QAAkNYAAJDXAACQ2AAAkNmBC9eBC9iBC9mBC9qBC9uBC9yBC92AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAkB8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEL1QgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJAfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBC9UICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACQHwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQvVCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADeBAAAAFwAAkB8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQTegACBC9UICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACQHwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQvVCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAkB8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEL1QgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAJAfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBC9UICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAACRRQAAACEAAAEmAAABJwAAkUYAAAAjAAABJQAAkUcAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAE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AAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQwDCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAkqEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEMAwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAJKhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBDAMICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAN4EAAAAXAACSoQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBBN6AAIEMAwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAJKhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBDAMICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACSoQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQwDCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAkqEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IA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/gICAgacAAJdIAACXSQAAl0oAAJdLAACXTAAAl00AAJdOgQxOgQxPgQxQgQxRgQxSgQxTgQxUgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAJaUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBDEwICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACWlAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQxMCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAlpQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEMTAgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAAJaUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBDEwICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACWlAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQxMCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAlpQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAA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AmFkAAJhaAACYWwAAmFwAAJhdAACYXgAAmF8AAJhggQxlgQxmgQxngQxpgQxqgQxrgQxsgQxtgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJg/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDGMICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACYPwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQxjCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAJiCAAAAFwAAmD8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQxogACBDGMICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAmJAAAJiRAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJg/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBDGMICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACYPwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQxjCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAmD8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEMYwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAJg/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBDGMICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACYPwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQxjCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAmN8AAAAOAAAAKAAAmOAAAAAjAAAA3QAAmOEAAGd4AAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAmOlfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDGCAZYA5gFyAAIAECIEMb9MAAAA6AAAAOwAAAA4AAJjrAACY8wAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAmPQAAJj1AACY9gAAmPcAAJj4AACY+QAAmPqBDHCBDHGBDHKBDHOBDHSBDHWBDHaAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAmEAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEMbggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJhAAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBDG4ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACYQAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQxuCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwAAmEAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEMbggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAJhAAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBDG4ICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACYQAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQxuCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAmEAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEMbggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAJlmAAAAIQAAASYAAAEnAACZZwAAACMAAAElAACZaAAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAdAAAAOwAAADsAACZcAAAADEAAADsAAA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KgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwAAmsIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEMnAgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAJrCAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC+gACBDJwICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAJEAAAAXAACawgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBAiKAAIEMnAgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJrCAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDJwICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACawgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQycCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAABegAAAAFwAAmsIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQylgACBDJwICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAACb6AAAACEAAAEmAAABJwAAm+kAAAAjAAABJQAAm+oAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJEAAADsAAAA7AAAm/IAAAAxAAAA7AAAAN4AAADsAAAEogAAF4IAAADsAAAA7AAAm/oAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBAiIICIEMpwiAOQiBAsWBAj4ICIEMpggSU6BOMdMAAAA6AAAAOwAAAA4AAJv+AACcAQAAAKCiAAACDwAABKyAZIClogAAnAIAAJwDgQyogQyzgFXZAAAAIQAAACUAAJwGAAAADgAAACgAAJwHAAAAIwAAAN0AAJwIAAAXoAAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAJwQXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQylgGSAOYBcgACABAiBDKnTAAAAOgAAADsAAAAOAACcEgAAnBsAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAJwcAACcHQAAnB4AAJwfAACcIAAAnCEAAJwiAACcI4EMqoEMq4EMrIEMroEMr4EMsIEMsYEMsoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACcAgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQyoCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAnAIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEMqAgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAACcRQAAABcAAJwCAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEMrYAAgQyoCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAJxTAACcVAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACcAgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQyoCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAAnAIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEMqAgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJwCAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBDKgICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACcAgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQyoCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAnAIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEMqAgICAiASoBvCAiAAAjZAAAAIQAAACUAAJyiAAAADgAAACgAAJyjAAAAIwAAAN0AAJykAAAXoAAABKwAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAJysXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQylgKWAOYBcgACABAiBDLTTAAAAOgAAADsAAAAOAACcrgAAnLYAAACgpwAABV0AAAVeAAAFXwAABWAAAAVhAAAFYgAABWOAtIC1gLaAt4C4gLmAuqcAAJy3AACcuAAAnLkAAJy6AACcuwAAnLwAAJy9gQy1gQy2gQy3gQy4gQy5gQy6gQy7gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAJwDAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXQAAAOwAAADsAAAAFwAAAOyAAIC8gACBDLMICAgIgEqAtAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAACcAwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACAvoAAgQyzCAgICIBKgLUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwAAnAMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVfAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEMswgICAiASoC2CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAdAAAABcAAJwDAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYAAAAOwAAADsAAAAFwAAAOyAAIEIfIAAgQyzCAgICIBKgLcICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAAnAMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEMswgICAiASoC4CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJwDAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYgAAAOwAAADsAAAAFwAAAOyAAIBSgACBDLMICAgIgEqAuQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAZ3oAAAAXAACcAwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWMAAADsAAAA7AAAABcAAADsgACBDI6AAIEMswgICAiASoC6CAiAAAjfEBIAAAEiAAABIwAAASQAAJ0pAAAAIQAAASYAAAEnAACdKgAAACMAAAElAACdKwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAdAAAAOwAAADsAACdMwAAADEAAADsAAAA3gAAAOwAAAIGAABncQAAAOwAAADsAACdOwAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEIfAgIgQy+CIA5CICKgQiUCAiBDL0IEpgpY23TAAAAOgAAADsAAAAOAACdPwAAnUIAAACgogAAAg8AAAIQgGSAZaIAAJ1DAACdRIEMv4EMyoBV2QAAACEAAAAlAACdRwAAAA4AAAAoAACdSAAAACMAAADdAACdSQAAZ3sAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAACdUV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEMvIBkgDmAXIAAgAQIgQzA0wAAADoAAAA7AAAADgAAnVMAAJ1cAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAACdXQAAnV4AAJ1fAACdYAAAnWEAAJ1iAACdYwAAnWSBDMGBDMKBDMOBDMWBDMaBDMeBDMiBDMmAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAnUMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEMvwgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAJ1DAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBDL8ICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAnYYAAAAXAACdQwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBDMSAAIEMvwgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAACdlAAAnZUAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAnUMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEMvwgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJ1DAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDL8ICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACdQwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQy/CAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAnUMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEMvwgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAJ1DAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBDL8ICAgIgEqAbwgIgAAI2QAAACEAAAAlAACd4wAAAA4AAAAoAACd5AAAACMAAADdAACd5QAAZ3sAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAACd7V8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEMvIBlgDmAXIAAgAQIgQzL0wAAADoAAAA7AAAADgAAne8AAJ33AAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAACd+AAAnfkAAJ36AACd+wAAnfwAAJ39AACd/oEMzIEMzYEMzoEMz4EM0IEM0YEM0oBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACdRAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQzKCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAnUQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEMyggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAJ1EAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBDMoICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAMb4AAAAXAACdRAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBBGuAAIEMyggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAJ1EAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBDMoICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACdRAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQzKCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABc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pAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAChBwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQ0PCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwAAoQcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIENDwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAKEHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBDQ8ICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAChBwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQ0PCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAoQcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENDwgICAiASoCBCAiAAAjSAAAAOwAAAA4AAKItAAABPKEAAKIugQ0ZgEnXAAAADgAAACUAACqEAAAAIQAAACgAACqFAAAAIwAAKoYAAAAXAAAAdAAAAHQAAKI1AAAAmAAAADGBCWiAAIEIfIEIfIENGoED0RKwZWMS3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABlmwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgQh2CAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAZZsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEIdggICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAABnfgAAABcAAGWbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIEM6oAAgQh2CAgICIBKgLoICIAACN8QEgAAASIAAAEjAAABJAAAomYAAAAhAAABJgAAAScAAKJnAAAAIwAAASUAAKJoAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACIAAAA7AAAAOwAAKJwAAAAMQAAAOwAAADeAAAA7AAAAgYAAGV4AAAA7AAAAOwAAKJ4AAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQhSCAiBDSAIgDkIgIqBCGcICIENHwgSeNlXzdMAAAA6AAAAOwAAAA4AAKJ8AACifwAAAKCiAAACDwAAAhCAZIBlogAAooAAAKKBgQ0hgQ0sgFXZAAAAIQAAACUAAKKEAAAADgAAACgAAKKFAAAAIwAAAN0AAKKGAABlewAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAKKOXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ0egGSAOYBcgACABAiBDSLTAAAAOgAAADsAAAAOAACikAAAopkAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAKKaAACimwAAopwAAKKdAACingAAop8AAKKgAACioYENI4ENJIENJYENJ4ENKIENKYENKoENK4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACigAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQ0hCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAooAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENIQgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAACiwwAAABcAAKKAAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIENJoAAgQ0hCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAKLRAACi0gAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACigAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQ0hCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAooAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIENIQgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKKAAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBDSEICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACigAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQ0hCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAooAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIENIQgICAiASoBvCAiAAAjZAAAAIQAAACUAAKMgAAAADgAAACgAAKMhAAAAIwAAAN0AAKMiAABlewAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAKMqXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ0egGWAOYBcgACABAiBDS3TAAAAOgAAADsAAAAOAACjLAAAozQAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAKM1AACjNgAAozcAAKM4AACjOQAAozoAAKM7gQ0ugQ0vgQ0wgQ0xgQ0ygQ0zgQ00gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAHqQAAABcAAKKBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAID7gACBDSwICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACigQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQ0sCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAooEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENLAgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAH1wAAABcAAKKBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAID/gACBDSwICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACigQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQ0sCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAooEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENLAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAKKBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBDSwICAgIgEqAgQgIgAAI0gAAADsAAAAOAACjpwAAATyhAABkk4EIUYBJEn0G9HrfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAFJBAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAICugACBBwAICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAABSQQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQcACAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAFQwAAAAFwAAUkEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQfEgACBBwAICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAACj2QAAACEAAAEmAAABJwAAo9oAAAAjAAABJQAAo9sAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIIAAADsAAAA7AAAo+MAAAAxAAAA7AAAAN4AAADsAAAEogAAUNkAAADsAAAA7AAAo+sAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBBsMICIENPAiAOQiBAsWBBtoICIENOwgS3AkzRtMAAAA6AAAAOwAAAA4AAKPvAACj8gAAAKCiAAACDwAABKyAZIClogAAo/MAAKP0gQ09gQ1IgFXZAAAAIQAAACUAAKP3AAAADgAAACgAAKP4AAAAIwAAAN0AAKP5AABQ3gAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAKQBXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ06gGSAOYBcgACABAiBDT7TAAAAOgAAADsAAAAOAACkAwAApAwAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAKQNAACkDgAApA8AAKQQAACkEQAApBIAAKQTAACkFIENP4ENQIENQYENQ4ENRIENRYENRoENR4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACj8wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQ09CAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAo/MAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENPQgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAACkNgAAABcAAKPzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIENQoAAgQ09CAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAKREAACkRQAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACj8wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQ09CAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAo/MAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIENPQgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKPzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBDT0ICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACj8wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQ09CAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAo/MAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIENPQgICAiASoBvCAiAAAjZAAAAIQAAACUAAKSTAAAADgAAACgAAKSUAAAAIwAAAN0AAKSVAABQ3gAABKwAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAKSdXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ06gKWAOYBcgACABAiBDUnTAAAAOgAAADsAAAAOAACknwAApKcAAACgpwAABV0AAAVeAAAFXwAABWAAAAVhAAAFYgAABWOAtIC1gLaAt4C4gLmAuqcAAKSoAACkqQAApKoAAKSrAACkrAAApK0AAKSugQ1KgQ1LgQ1MgQ1NgQ1OgQ1PgQ1QgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAKP0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXQAAAOwAAADsAAAAFwAAAOyAAIC8gACBDUgICAgIgEqAtAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAACjwAAAAXAACj9AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACBASyAAIENSAgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAKP0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC8gACBDUgICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAIkAAAAXAACj9AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBBmiAAIENSAgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAKP0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAICugACBDUgICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACj9AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQ1ICAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAExYAAAAFwAAo/QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQavgACBDUgICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAC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AACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACmpQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQ1vCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAKboAAAAFwAApqUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQ10gACBDW8ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAApvYAAKb3AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKalAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBDW8ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACmpQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQ1vCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAApqUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIENbwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAKalAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBDW8ICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACmpQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQ1vCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAp0UAAAAOAAAAKAAAp0YAAAAjAAAA3QAAp0cAAExZAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAp09fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDWyAZYA5gFyAAIAECIENe9MAAAA6AAAAOwAAAA4AAKdRAACnWQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAp1oAAKdbAACnXAAAp10AAKdeAACnXwAAp2CBDXyBDX2BDX6BDX+BDYCBDYGBDYKAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAApqYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENeggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKamAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBDXoICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACmpgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQ16CAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADG+AAAAFwAApqYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQRrgACBDXoICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACmpgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQ16CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAApqYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENeggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAKamAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBDXoICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAACnzAAAACEAAAEmAAABJwAAp80AAAAjAAABJQAAp84AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIkAAADsAAAA7AAAp9YAAAAxAAAA7AAAAN4AAADsAAACBgAATFMAAADsAAAA7AAAp94AAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBBmgICIENhQiAOQiAioEGfwgIgQ2ECBLkooYR0wAAADoAAAA7AAAADgAAp+IAAKflAAAAoKIAAAIPAAACEIBkgGWiAACn5gAAp+eBDYaBDZGAVdkAAAAhAAAAJQAAp+oAAAAOAAAAKAAAp+sAAAAjAAAA3QAAp+wAAExaAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAp/RfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDYOAZIA5gFyAAIAECIENh9MAAAA6AAAAOwAAAA4AAKf2AACn/wAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAqAAAAKgBAACoAgAAqAMAAKgEAACoBQAAqAYAAKgHgQ2IgQ2JgQ2KgQ2MgQ2NgQ2OgQ2PgQ2QgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKfmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDYYICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACn5gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQ2GCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAKgpAAAAFwAAp+YAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQ2LgACBDYYICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAqDcAAKg4AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKfmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBDYYICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACn5gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQ2GCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAp+YAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIENhggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAKfmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBDYYICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACn5gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQ2GCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAqIYAAAAOAAAAKAAAqIcAAAAjAAAA3QAAqIgAAExaAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAqJBfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDYOAZYA5gFyAAIAECIENktMAAAA6AAAAOwAAAA4AAKiSAAComgAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAqJsAAKicAAConQAAqJ4AAKifAACooAAAqKGBDZOBDZSBDZWBDZaBDZeBDZiBDZmAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAp+cAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENkQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAKfnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBDZEICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACn5wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQ2RCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwAAp+cAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBDZEICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACn5wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQ2RCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAp+cAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENkQgICAiASoCACAiAAAjfEA8AAAEiAAA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AADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACBAzqAAIENqAgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAivAAAABcAAKkoAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEDPoAAgQ2oCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAqSgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIENqAgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAKkoAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBDagICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACpKAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQ2oCAgICIBKgIEICIAACNIAAAA7AAAADgAAqk4AAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAABKfQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAroAAgQZiCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAASn0AAADsAAAA7AAAAOwAAAAxAAAA7AA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tgG6Ab6gAAK00AACtNQAArTYAAK03AACtOAAArTkAAK06AACtO4EN6IEN6YEN6oEN7IEN7YEN7oEN74EN8IBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACtGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQ3mCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAArRoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEN5ggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAACtXQAAABcAAK0aAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEN64AAgQ3mCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAK1rAACtbAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAACtGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQ3mCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAArRoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEN5ggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAK0aAAA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CEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAArwVfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDfqAZYA5gFyAAIAECIEOCdMAAAA6AAAAOwAAAA4AAK8HAACvDwAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAArxAAAK8RAACvEgAArxMAAK8UAACvFQAArxaBDgqBDguBDgyBDg2BDg6BDg+BDhCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAArlwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEOCAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAK5cAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBDggICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACuXAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQ4ICAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADB8AAAAFwAArlwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQRTgACBDggICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAA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AgACAAIEOHwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAK+dAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBDh8ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACvnQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQ4fCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwAAr50AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBDh8ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACvnQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQ4fCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAr50AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEOHwgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAK+dAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBDh8ICAgIgEqAgQgIgAAI3xASAAABIgA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OVggICAiASoA+CAiAAAjSAAAAOwAAAA4AALNyAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAsz4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEOVggICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAACzhQAAABcAALM+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEOXIAAgQ5WCAgICIBKgEAICIAACNIAAAA7AAAADgAAs5MAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAACzPgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgQ5WCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAALOmAAAAFwAAsz4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgQ5fgACBDlYICAgIgEqAQggIgAAI0gAAADsAAAAOAACztAAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAALM+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAICugACBDlYICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAs8cAAAAXAACzPgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBDmKAAIEOVggICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAACz1QAAs9YAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwAAsz4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIEOVggICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAACz6QAAABcAALM+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABDAAAAOwAAADsAAAAFwAAAOyAAIEOZYAAgQ5WCAgICIBKgEYICIAACF8QE1BlcnNpc3RlZERpc2N1c3Npb27TAAAAOgAAADsAAAAOAACz+AAAtA8AAACgrxAWAACz+QAAs/oAALP7AAAXggAAs/0AALP+AACz/wAAtAAAALQBAAC0AgAAtAMAALQEAAC0BQAAtAYAALQHAAC0CAAAK38AALQKAAAXjQAAtAwAALQNAAC0DoEOZ4EOaIEOaYECPoEOaoEOa4EObIEObYEOboEOb4EOcIEOcYEOcoEOc4EOdIEOdYED9IEOdoECSYEOd4EOeIEOea8QFgAAtBAAALQRAAC0EgAAtBMAALQUAAC0FQAAtBYAALQXAAC0GAAAtBkAALQaAAC0GwAAtBwAALQdAAC0HgAAtB8AALQgAAC0IQAAtCIAALQjAAC0JAAAtCWBDnqBDpGBDqiBDr+BDu2BDwSBD++BEB2BEYCBEZeBEa6BEcWBEdyBEn6BEpWBEqyBG5GBG6iBG7+BG9eBHHmBHJCAVV8QFHBpbm5lZFNlY3Rpb25LZXlQYXRoXxAhbGFzdE91dGJvdW5kTWVzc2FnZVNlcXVlbmNlTnVtYmVyVXRpdGxlXXBlcm1hbmVudFVVSURfEBtyZW1vdGVSZXF1ZXN0c1NhdmVkRm9yTGF0ZXJfEBNpbGx1c3RyYXRpdmVNZXNzYWdlXxASbG9jYWxDb25maWd1cmF0aW9uXxATbm9ybWFsaXplZFNlYXJjaEtleV8QK2FOZXdSZWNlaXZlZE1lc3NhZ2VEb2VzTWVudGlvbk93bmVkSWRlbnRpdHlfEB9sYXN0U3lzdGVtTWVzc2FnZVNlcXVlbmNlTnVtYmVyXxAWc2VuZGVyVGhyZWFkSWRlbnRpZmllcl8QE3NoYXJlZENvbmZpZ3VyYXRpb25fEBZ0aW1lc3RhbXBPZkxhc3RNZXNzYWdlXxATbnVtYmVyT2ZOZXdNZXNzYWdlc11vd25lZElkZW50aXR5WmlzQXJjaGl2ZWRfEBtsYXRlc3RTZW5kZXJTZXF1ZW5jZU51bWJlcnNcb25DaGFuZ2VGbGFnXnJhd1Bpbm5lZEluZGV43xASAAABIgAAASMAAAEkAAC0OwAAACEAAAEmAAABJwAAtDwAAAAjAAABJQAAtD0AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHMAAADsAAAA7AAAtEUAAAAxAAAA7AAAAN4AAADsAAACBgAAs/kAAADsAAAA7AAAtE0AAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBDlMICIEOfAiAOQiAioEOZwgIgQ57CBMAAAABBhKrK9MAAAA6AAAAOwAAAA4AALRRAAC0VAAAAKCiAAACDwAAAhCAZIBlogAAtFUAALRWgQ59gQ6IgFXZAAAAIQAAACUAALRZAAAADgAAACgAALRaAAAAIwAAAN0AALRbAAC0EAAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAALRjXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ56gGSAOYBcgACABAiBDn7TAAAAOgAAADsAAAAOAAC0ZQAAtG4AAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAALRvAAC0cAAAtHEAALRyAAC0cwAAtHQAALR1AAC0doEOf4EOgIEOgYEOg4EOhIEOhYEOhoEOh4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC0VQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQ59CAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAtFUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEOfQgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAC0mAAAABcAALRVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEOgoAAgQ59CAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AALSmAAC0pwAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC0VQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQ59CAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAtFUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEOfQgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALRVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBDn0ICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC0VQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQ59CAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAtFUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEOfQgICAiASoBvCAiAAAjZAAAAIQAAACUAALT1AAAADgAAACgAALT2AAAAIwAAAN0AALT3AAC0EAAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAALT/XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ56gGWAOYBcgACABAiBDonTAAAAOgAAADsAAAAOAAC1AQAAtQkAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAALUKAAC1CwAAtQwAALUNAAC1DgAAtQ8AALUQgQ6KgQ6LgQ6MgQ6NgQ6OgQ6PgQ6QgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAijgAAABcAALRWAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIEDOoAAgQ6ICAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAtFYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEOiAgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAALRWAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBDogICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAAC0VgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEOiAgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAALRWAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBDogICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC0VgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQ6ICAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAtFYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEOiAgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAALV8AAAAIQAAASYAAAEnAAC1fQAAACMAAAElAAC1fgAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAcwAAAOwAAADsAAC1hgAAADEAAADsAAAA3gAAAOwAAAIGAACz+gAAAOwAAADsAAC1jgAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEOUwgIgQ6TCIA5CICKgQ5oCAiBDpIIEuHT4+DTAAAAOgAAADsAAAAOAAC1kgAAtZUAAACgogAAAg8AAAIQgGSAZaIAALWWAAC1l4EOlIEOn4BV2QAAACEAAAAlAAC1mgAAAA4AAAAoAAC1mwAAACMAAADdAAC1nAAAtBEAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAC1pF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEOkYBkgDmAXIAAgAQIgQ6V0wAAADoAAAA7AAAADgAAtaYAALWvAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAC1sAAAtbEAALWyAAC1swAAtbQAALW1AAC1tgAAtbeBDpaBDpeBDpiBDpqBDpuBDpyBDp2BDp6AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAtZYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEOlAgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAALWWAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBDpQICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAtdkAAAAXAAC1lgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBDpmAAIEOlAgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAC15wAAtegAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAtZYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEOlAgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALWWAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDpQICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC1lgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQ6UCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAtZYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEOlAgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALWWAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBDpQICAgIgEqAbwgIgAAI2QAAACEAAAAlAAC2NgAAAA4AAAAoAAC2NwAAACMAAADdAAC2OAAAtBEAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAC2QF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEOkYBlgDmAXIAAgAQIgQ6g0wAAADoAAAA7AAAADgAAtkIAALZKAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAC2SwAAtkwAALZNAAC2TgAAtk8AALZQAAC2UYEOoYEOooEOo4EOpIEOpYEOpoEOp4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAIo4AAAAXAAC1lwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACBAzqAAIEOnwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALWXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBDp8ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAIo4AAAAXAAC1lwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACBAzqAAIEOnwgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAivAAAABcAALWXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEDPoAAgQ6fCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAtZcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEOnwgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAALWXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBDp8ICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC1lwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQ6fCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAAtr0AAAAhAAABJgAAAScAALa+AAAAIwAAASUAALa/AAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAABzAAAA7AAAAOwAALbHAAAAMQAAAOwAAADeAAAA7AAAAgYAALP7AAAA7AAAAOwAALbPAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQ5TCAiBDqoIgDkIgIqBDmkICIEOqQgSjT7yy9MAAAA6AAAAOwAAAA4AALbTAAC21gAAAKCiAAACDwAAAhCAZIBlogAAttcAALbYgQ6rgQ62gFXZAAAAIQAAACUAALbbAAAADgAAACgAALbcAAAAIwAAAN0AALbdAAC0EgAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAALblXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ6ogGSAOYBcgACABAiBDqzTAAAAOgAAADsAAAAOAAC25wAAtvAAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAALbxAAC28gAAtvMAALb0AAC29QAAtvYAALb3AAC2+IEOrYEOroEOr4EOsYEOsoEOs4EOtIEOtYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC21wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQ6rCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAttcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEOqwgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAC3GgAAABcAALbXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEOsIAAgQ6rCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AALcoAAC3KQAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC21wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQ6rCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAttcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEOqwgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALbXAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBDqsICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC21wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQ6rCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAttcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEOqwgICAiASoBvCAiAAAjZAAAAIQAAACUAALd3AAAADgAAACgAALd4AAAAIwAAAN0AALd5AAC0EgAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAALeBXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ6ogGWAOYBcgACABAiBDrfTAAAAOgAAADsAAAAOAAC3gwAAt4sAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAALeMAAC3jQAAt44AALePAAC3kAAAt5EAALeSgQ64gQ65gQ66gQ67gQ68gQ69gQ6+gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAALbYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBDrYICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC22AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQ62CAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAttgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEOtggICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAANxgAAABcAALbYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEBgIAAgQ62CAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAttgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEOtggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAALbYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBDrYICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC22AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQ62CAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAAt/4AAAAhAAABJgAAAScAALf/AAAAIwAAASUAALgAAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAABzAAAA7AAAAOwAALgIAAAAMQAAAOwAAADeAAAA7AAABKIAABeCAAAA7AAAAOwAALgQAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQ5TCAiBDsEIgDkIgQLFgQI+CAiBDsAIEwAAAAEWBbUp0wAAADoAAAA7AAAADgAAuBQAALgXAAAAoKIAAAIPAAAErIBkgKWiAAC4GAAAuBmBDsKBDs2AVdkAAAAhAAAAJQAAuBwAAAAOAAAAKAAAuB0AAAAjAAAA3QAAuB4AALQTAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAuCZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDr+AZIA5gFyAAIAECIEOw9MAAAA6AAAAOwAAAA4AALgoAAC4MQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAuDIAALgzAAC4NAAAuDUAALg2AAC4NwAAuDgAALg5gQ7EgQ7FgQ7GgQ7IgQ7JgQ7KgQ7LgQ7MgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALgYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDsIICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC4GAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQ7CCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAALhbAAAAFwAAuBgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQ7HgACBDsIICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAuGkAALhqAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALgYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBDsIICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC4GAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQ7CCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAuBgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEOwggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAALgYAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBDsIICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC4GAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQ7CCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAuLgAAAAOAAAAKAAAuLkAAAAjAAAA3QAAuLoAALQTAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAuMJfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDr+ApYA5gFyAAIAECIEOztMAAAA6AAAAOwAAAA4AALjEAAC4zAAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwAAuM0AALjOAAC4zwAAuNAAALjRAAC40gAAuNOBDs+BDtCBDtGBDtKBDtOBDtSBDtWAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwAAuBkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEOzQgICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAKPAAAABcAALgZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIEBLIAAgQ7NCAgICIBKgLUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwAAuBkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVfAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEOzQgICAiASoC2CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAmAAAABcAALgZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYAAAAOwAAADsAAAAFwAAAOyAAIED0YAAgQ7NCAgICIBKgLcICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAAuBkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEOzQgICAiASoC4CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALgZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYgAAAOwAAADsAAAAFwAAAOyAAIBSgACBDs0ICAgIgEqAuQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAK5gAAAAXAAC4GQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWMAAADsAAAA7AAAABcAAADsgACBDtaAAIEOzQgICAiASoC6CAiAAAjfEBIAAAEiAAABIwAAASQAALk/AAAAIQAAASYAAAEnAAC5QAAAACMAAAElAAC5QQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAmAAAAOwAAADsAAC5SQAAADEAAADsAAAA3gAAAOwAAASiAAArgQAAAOwAAADsAAC5UQAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIED0QgIgQ7YCIA5CIECxYED9ggIgQ7XCBIq0nK40wAAADoAAAA7AAAADgAAuVUAALlYAAAAoKIAAAIPAAAErIBkgKWiAAC5WQAAuVqBDtmBDuSAVdkAAAAhAAAAJQAAuV0AAAAOAAAAKAAAuV4AAAAjAAAA3QAAuV8AACuYAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAuWdfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDtaAZIA5gFyAAIAECIEO2tMAAAA6AAAAOwAAAA4AALlpAAC5cgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAuXMAALl0AAC5dQAAuXYAALl3AAC5eAAAuXkAALl6gQ7bgQ7cgQ7dgQ7fgQ7ggQ7hgQ7igQ7jgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALlZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDtkICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC5WQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQ7ZCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAALmcAAAAFwAAuVkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQ7egACBDtkICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAuaoAALmrAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALlZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBDtkICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAC5WQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQ7ZCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAuVkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEO2QgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAALlZAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBDtkICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC5WQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQ7ZCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAufkAAAAOAAAAKAAAufoAAAAjAAAA3QAAufsAACuYAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAugNfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDtaApYA5gFyAAIAECIEO5dMAAAA6AAAAOwAAAA4AALoFAAC6DQAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwAAug4AALoPAAC6EAAAuhEAALoSAAC6EwAAuhSBDuaBDueBDuiBDumBDuqBDuuBDuyAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwAAuVoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEO5AgICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAALlaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBDuQICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAC5WgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgQ7kCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAABzAAAAFwAAuVoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQ5TgACBDuQICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC5WgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgQ7kCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAuVoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEO5AgICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAC0EwAAABcAALlaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIEOv4AAgQ7kCAgICIBKgLoICIAACN8QEgAAASIAAAEjAAABJAAAuoAAAAAhAAABJgAAAScAALqBAAAAIwAAASUAALqCAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAABzAAAA7AAAAOwAALqKAAAAMQAAAOwAAADeAAAA7AAAAgYAALP9AAAA7AAAAOwAALqSAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQ5TCAiBDu8IgDkIgIqBDmoICIEO7ggS3fff3NMAAAA6AAAAOwAAAA4AALqWAAC6mQAAAKCiAAACDwAAAhCAZIBlogAAupoAALqbgQ7wgQ77gFXZAAAAIQAAACUAALqeAAAADgAAACgAALqfAAAAIwAAAN0AALqgAAC0FAAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAALqoXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ7tgGSAOYBcgACABAiBDvHTAAAAOgAAADsAAAAOAAC6qgAAurMAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAALq0AAC6tQAAurYAALq3AAC6uAAAurkAALq6AAC6u4EO8oEO84EO9IEO9oEO94EO+IEO+YEO+oBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC6mgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQ7wCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAupoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEO8AgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAC63QAAABcAALqaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEO9YAAgQ7wCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AALrrAAC67AAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC6mgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQ7wCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAupoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEO8AgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALqaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBDvAICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC6mgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQ7wCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAupoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEO8AgICAiASoBvCAiAAAjZAAAAIQAAACUAALs6AAAADgAAACgAALs7AAAAIwAAAN0AALs8AAC0FAAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAALtEXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ7tgGWAOYBcgACABAiBDvzTAAAAOgAAADsAAAAOAAC7RgAAu04AAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAALtPAAC7UAAAu1EAALtSAAC7UwAAu1QAALtVgQ79gQ7+gQ7/gQ8AgQ8BgQ8CgQ8DgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAALqbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBDvsICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC6mwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQ77CAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAupsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEO+wgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAxvgAAABcAALqbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEEa4AAgQ77CAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAupsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEO+wgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAALqbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBDvsICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC6mwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQ77CAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAAu8EAAAAhAAABJgAAAScAALvCAAAAIwAAASUAALvDAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAABzAAAA7AAAAOwAALvLAAAAMQAAAOwAAADeAAAA7AAABKIAALP+AAAA7AAAAOwAALvTAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQ5TCAiBDwYIgDkIgQLFgQ5rCAiBDwUIEpeqQizTAAAAOgAAADsAAAAOAAC71wAAu9oAAACgogAAAg8AAASsgGSApaIAALvbAAC73IEPB4EPEoBV2QAAACEAAAAlAAC73wAAAA4AAAAoAAC74AAAACMAAADdAAC74QAAtBUAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAC76V8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEPBIBkgDmAXIAAgAQIgQ8I0wAAADoAAAA7AAAADgAAu+sAALv0AAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAC79QAAu/YAALv3AAC7+AAAu/kAALv6AAC7+wAAu/yBDwmBDwqBDwuBDw2BDw6BDw+BDxCBDxGAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAu9sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPBwgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAALvbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBDwcICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAvB4AAAAXAAC72wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBDwyAAIEPBwgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAC8LAAAvC0AAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAu9sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPBwgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALvbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDwcICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC72wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQ8HCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAu9sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPBwgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALvbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBDwcICAgIgEqAbwgIgAAI2QAAACEAAAAlAAC8ewAAAA4AAAAoAAC8fAAAACMAAADdAAC8fQAAtBUAAASsAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAC8hV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEPBIClgDmAXIAAgAQIgQ8T0wAAADoAAAA7AAAADgAAvIcAALyPAAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAAC8kAAAvJEAALySAAC8kwAAvJQAALyVAAC8loEPFIEPFYEPFoEPF4EP7IEP7YEP7oBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAC73AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgQ8SCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAo8AAAAFwAAu9wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgQEsgACBDxIICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAC73AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvIAAgQ8SCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACVAAAAFwAAu9wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQ8YgACBDxIICAgIgEqAtwgIgAAI3xAQAAC81QAAvNYAALzXAAC82AAAACEAALzZAAC82gAAACMAALzbAAC83AAAAA4AAAAlAAC83QAAvN4AAAAoAAAA3QAAAN4AALzgAAAAKQAAACkAAAAUAAC85AAAAOQAAAAxAAAAKQAAAN4AAADnAAAAYwAAAN4AALzrAAC87AAAAOxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNkdXBsaWNhdGVzXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc29yZGVyZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3N0b3JhZ2WAOYEPK4AEgASAAoEPGoEDzYAEgDmBBSiALIA5gQ/rgQ8ZCBMAAAABIleZatMAAAA6AAAAOwAAAA4AALzwAAC88gAAAKChAAAA8YA7oQAAvPOBDxuAVdkAAAAhAAAAJQAAvPYAAAAOAAAAKAAAvPcAAAAjAAAA3QAAvPgAAACVAAAA8QAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAvQBfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDxiAO4A5gFyAAIAECIEPHNMAAAA6AAAAOwAAAA4AAL0CAAC9DAAAAKCpAAABBAAAAQUAAAEGAAABBwAAAQgAAAEJAAABCgAAAQsAAAEMgD6AP4BAgEGAQoBDgESARYBGqQAAvQ0AAL0OAAC9DwAAvRAAAL0RAAC9EgAAvRMAAL0UAAC9FYEPHYEPH4EPIIEPIoEPI4EPJYEPJoEPKIEPKYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAvRkAAAAXAAC88wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBDx6AAIEPGwgICAiASoA+CAiAAAjSAAAAOwAAAA4AAL0nAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAvPMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPGwgICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAC9OgAAABcAALzzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEPIYAAgQ8bCAgICIBKgEAICIAACNIAAAA7AAAADgAAvUgAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC88wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgQ8bCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAL1bAAAAFwAAvPMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgQ8kgACBDxsICAgIgEqAQggIgAAI0gAAADsAAAAOAAC9aQAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALzzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDxsICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAvXwAAAAXAAC88wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBDyeAAIEPGwgICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAAC9igAAvYsAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwAAvPMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIEPGwgICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAC9ngAAABcAALzzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABDAAAAOwAAADsAAAAFwAAAOyAAIEPKoAAgQ8bCAgICIBKgEYICIAACF8QGlJlbW90ZVJlcXVlc3RTYXZlZEZvckxhdGVy0wAAADoAAAA7AAAADgAAva0AAL22AAAAoKgAAL2uAAC9rwAAvbAAAL2xAAC9sgAAvbMAACuBAAC9tYEPLIEPLYEPLoEPL4EPMIEPMYED9oEPMqgAAL23AAC9uAAAvbkAAL26AAC9uwAAvbwAAL29AAC9voEPM4EPSoEPYYEPeIEPj4EPpoEPvYEP1IBVXxAQc2VuZGVySWRlbnRpZmllcl8QFHNlbmRlclNlcXVlbmNlTnVtYmVyXxAWc2VuZGVyVGhyZWFkSWRlbnRpZmllcl8QD3NlcnZlclRpbWVzdGFtcF5yYXdSZXF1ZXN0VHlwZV8QFHJhd1JlcXVlc3RlcklkZW50aXR5XxAVc2VyaWFsaXplZE1lc3NhZ2VKU09O3xASAAABIgAAASMAAAEkAAC9yAAAACEAAAEmAAABJwAAvckAAAAjAAABJQAAvcoAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJUAAADsAAAA7AAAvdIAAAAxAAAA7AAAAN4AAADsAAACBgAAva4AAADsAAAA7AAAvdoAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBDxgICIEPNQiAOQiAioEPLAgIgQ80CBJxRF260wAAADoAAAA7AAAADgAAvd4AAL3hAAAAoKIAAAIPAAACEIBkgGWiAAC94gAAveOBDzaBD0GAVdkAAAAhAAAAJQAAveYAAAAOAAAAKAAAvecAAAAjAAAA3QAAvegAAL23AAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAvfBfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDzOAZIA5gFyAAIAECIEPN9MAAAA6AAAAOwAAAA4AAL3yAAC9+wAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAvfwAAL39AAC9/gAAvf8AAL4AAAC+AQAAvgIAAL4DgQ84gQ85gQ86gQ88gQ89gQ8+gQ8/gQ9AgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAL3iAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBDzYICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC94gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQ82CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAL4lAAAAFwAAveIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQ87gACBDzYICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAvjMAAL40AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAL3iAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBDzYICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC94gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgQ82CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAveIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPNggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAL3iAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBDzYICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC94gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQ82CAgICIBKgG8ICIAACNkAAAAhAAAAJQAAvoIAAAAOAAAAKAAAvoMAAAAjAAAA3QAAvoQAAL23AAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAvoxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBDzOAZYA5gFyAAIAECIEPQtMAAAA6AAAAOwAAAA4AAL6OAAC+lgAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAvpcAAL6YAAC+mQAAvpoAAL6bAAC+nAAAvp2BD0OBD0SBD0WBD0aBD0eBD0iBD0mAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAveMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPQQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAL3jAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBD0EICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC94wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQ9BCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwAAveMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEPQQgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAL3jAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBD0EICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC94wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQ9BCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAveMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPQQgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAL8JAAAAIQAAASYAAAEnAAC/CgAAACMAAAElAAC/CwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAlQAAAOwAAADsAAC/EwAAADEAAADsAAAA3gAAAOwAAAIGAAC9rwAAAOwAAADsAAC/GwAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEPGAgIgQ9MCIA5CICKgQ8tCAiBD0sIEj4GYv7TAAAAOgAAADsAAAAOAAC/HwAAvyIAAACgogAAAg8AAAIQgGSAZaIAAL8jAAC/JIEPTYEPWIBV2QAAACEAAAAlAAC/JwAAAA4AAAAoAAC/KAAAACMAAADdAAC/KQAAvbgAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAC/MV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEPSoBkgDmAXIAAgAQIgQ9O0wAAADoAAAA7AAAADgAAvzMAAL88AAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAC/PQAAvz4AAL8/AAC/QAAAv0EAAL9CAAC/QwAAv0SBD0+BD1CBD1GBD1OBD1SBD1WBD1aBD1eAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAvyMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPTQgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAL8jAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBD00ICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAv2YAAAAXAAC/IwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBD1KAAIEPTQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAC/dAAAv3UAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAvyMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPTQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAL8jAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBD00ICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAC/IwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQ9NCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAvyMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPTQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAL8jAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBD00ICAgIgEqAbwgIgAAI2QAAACEAAAAlAAC/wwAAAA4AAAAoAAC/xAAAACMAAADdAAC/xQAAvbgAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAC/zV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEPSoBlgDmAXIAAgAQIgQ9Z0wAAADoAAAA7AAAADgAAv88AAL/XAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAC/2AAAv9kAAL/aAAC/2wAAv9wAAL/dAAC/3oEPWoEPW4EPXIEPXYEPXoEPX4EPYIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAIo4AAAAXAAC/JAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACBAzqAAIEPWAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAL8kAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBD1gICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC/JAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQ9YCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwAAvyQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBD1gICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAC/JAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgQ9YCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAvyQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPWAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAL8kAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBD1gICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADASgAAACEAAAEmAAABJwAAwEsAAAAjAAABJQAAwEwAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJUAAADsAAAA7AAAwFQAAAAxAAAA7AAAAN4AAADsAAACBgAAvbAAAADsAAAA7AAAwFwAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBDxgICIEPYwiAOQiAioEPLggIgQ9iCBMAAAABHpkpENMAAAA6AAAAOwAAAA4AAMBgAADAYwAAAKCiAAACDwAAAhCAZIBlogAAwGQAAMBlgQ9kgQ9vgFXZAAAAIQAAACUAAMBoAAAADgAAACgAAMBpAAAAIwAAAN0AAMBqAAC9uQAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAMByXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ9hgGSAOYBcgACABAiBD2XTAAAAOgAAADsAAAAOAADAdAAAwH0AAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAMB+AADAfwAAwIAAAMCBAADAggAAwIMAAMCEAADAhYEPZoEPZ4EPaIEPaoEPa4EPbIEPbYEPboBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADAZAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQ9kCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAwGQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPZAgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADApwAAABcAAMBkAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEPaYAAgQ9kCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAMC1AADAtgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADAZAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQ9kCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAwGQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPZAgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMBkAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBD2QICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADAZAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQ9kCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAwGQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPZAgICAiASoBvCAiAAAjZAAAAIQAAACUAAMEEAAAADgAAACgAAMEFAAAAIwAAAN0AAMEGAAC9uQAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAMEOXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ9hgGWAOYBcgACABAiBD3DTAAAAOgAAADsAAAAOAADBEAAAwRgAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAMEZAADBGgAAwRsAAMEcAADBHQAAwR4AAMEfgQ9xgQ9ygQ9zgQ90gQ91gQ92gQ93gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMBlAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBD28ICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADAZQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQ9vCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAwGUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPbwgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAxvgAAABcAAMBlAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEEa4AAgQ9vCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAwGUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPbwgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMBlAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBD28ICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADAZQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQ9vCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAAwYsAAAAhAAABJgAAAScAAMGMAAAAIwAAASUAAMGNAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACVAAAA7AAAAOwAAMGVAAAAMQAAAOwAAADeAAAA7AAAAgYAAL2xAAAA7AAAAOwAAMGdAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQ8YCAiBD3oIgDkIgIqBDy8ICIEPeQgS6KbtY9MAAAA6AAAAOwAAAA4AAMGhAADBpAAAAKCiAAACDwAAAhCAZIBlogAAwaUAAMGmgQ97gQ+GgFXZAAAAIQAAACUAAMGpAAAADgAAACgAAMGqAAAAIwAAAN0AAMGrAAC9ugAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAMGzXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ94gGSAOYBcgACABAiBD3zTAAAAOgAAADsAAAAOAADBtQAAwb4AAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAMG/AADBwAAAwcEAAMHCAADBwwAAwcQAAMHFAADBxoEPfYEPfoEPf4EPgYEPgoEPg4EPhIEPhYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADBpQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQ97CAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAwaUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPewgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADB6AAAABcAAMGlAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEPgIAAgQ97CAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAMH2AADB9wAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADBpQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQ97CAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAwaUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPewgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMGlAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBD3sICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADBpQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQ97CAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAwaUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPewgICAiASoBvCAiAAAjZAAAAIQAAACUAAMJFAAAADgAAACgAAMJGAAAAIwAAAN0AAMJHAAC9ugAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAMJPXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ94gGWAOYBcgACABAiBD4fTAAAAOgAAADsAAAAOAADCUQAAwlkAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAMJaAADCWwAAwlwAAMJdAADCXgAAwl8AAMJggQ+IgQ+JgQ+KgQ+LgQ+MgQ+NgQ+OgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMGmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBD4YICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADBpgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgQ+GCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAwaYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPhggICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAA3gQAAABcAAMGmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEE3oAAgQ+GCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAwaYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPhggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMGmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBD4YICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADBpgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQ+GCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAAwswAAAAhAAABJgAAAScAAMLNAAAAIwAAASUAAMLOAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACVAAAA7AAAAOwAAMLWAAAAMQAAAOwAAADeAAAA7AAAAgYAAL2yAAAA7AAAAOwAAMLeAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQ8YCAiBD5EIgDkIgIqBDzAICIEPkAgSNf9UhtMAAAA6AAAAOwAAAA4AAMLiAADC5QAAAKCiAAACDwAAAhCAZIBlogAAwuYAAMLngQ+SgQ+dgFXZAAAAIQAAACUAAMLqAAAADgAAACgAAMLrAAAAIwAAAN0AAMLsAAC9uwAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAML0XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ+PgGSAOYBcgACABAiBD5PTAAAAOgAAADsAAAAOAADC9gAAwv8AAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAMMAAADDAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDB4EPlIEPlYEPloEPmIEPmYEPmoEPm4EPnIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADC5gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgQ+SCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAwuYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPkggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADDKQAAABcAAMLmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEPl4AAgQ+SCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAMM3AADDOAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADC5gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgQ+SCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAwuYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPkggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMLmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBD5IICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADC5gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgQ+SCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAwuYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPkggICAiASoBvCAiAAAjZAAAAIQAAACUAAMOGAAAADgAAACgAAMOHAAAAIwAAAN0AAMOIAAC9uwAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAMOQXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgQ+PgGWAOYBcgACABAiBD57TAAAAOgAAADsAAAAOAADDkgAAw5oAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAMObAADDnAAAw50AAMOeAADDnwAAw6AAAMOhgQ+fgQ+ggQ+hgQ+igQ+jgQ+kgQ+lgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAijgAAABcAAMLnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIEDOoAAgQ+dCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAwucAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPnQgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMLnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBD50ICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAIrwAAAAXAADC5wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAz6AAIEPnQgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMLnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBD50ICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADC5wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQ+dCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAwucAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPnQgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAMQNAAAAIQAAASYAAAEnAADEDgAAACMAAAElAADEDwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAlQAAAOwAAADsAADEFwAAADEAAADsAAAA3gAAAOwAAAIGAAC9swAAAOwAAADsAADEHwAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEPGAgIgQ+oCIA5CICKgQ8xCAiBD6cIEo2oXHjTAAAAOgAAADsAAAAOAADEIwAAxCYAAACgogAAAg8AAAIQgGSAZaIAAMQnAADEKIEPqYEPtIBV2QAAACEAAAAlAADEKwAAAA4AAAAoAADELAAAACMAAADdAADELQAAvbwAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADENV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEPpoBkgDmAXIAAgAQIgQ+q0wAAADoAAAA7AAAADgAAxDcAAMRAAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAADEQQAAxEIAAMRDAADERAAAxEUAAMRGAADERwAAxEiBD6uBD6yBD62BD6+BD7CBD7GBD7KBD7OAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAxCcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPqQgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMQnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBD6kICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAxGoAAAAXAADEJwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBD66AAIEPqQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAADEeAAAxHkAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAxCcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPqQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMQnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBD6kICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADEJwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQ+pCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAxCcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPqQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMQnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBD6kICAgIgEqAbwgIgAAI2QAAACEAAAAlAADExwAAAA4AAAAoAADEyAAAACMAAADdAADEyQAAvbwAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADE0V8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEPpoBlgDmAXIAAgAQIgQ+10wAAADoAAAA7AAAADgAAxNMAAMTbAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAADE3AAAxN0AAMTeAADE3wAAxOAAAMThAADE4oEPtoEPt4EPuIEPuYEPuoEPu4EPvIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADEKAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgQ+0CAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAxCgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPtAgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMQoAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBD7QICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAw8AAAAXAADEKAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACAhoAAgQ+0CAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAxCgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPtAgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMQoAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBD7QICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADEKAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgQ+0CAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAAxU4AAAAhAAABJgAAAScAAMVPAAAAIwAAASUAAMVQAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACVAAAA7AAAAOwAAMVYAAAAMQAAAOwAAADeAAAA7AAABKIAACuBAAAA7AAAAOwAAMVgAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQ8YCAiBD78IgDkIgQLFgQP2CAiBD74IEvmBSb7TAAAAOgAAADsAAAAOAADFZAAAxWcAAACgogAAAg8AAASsgGSApaIAAMVoAADFaYEPwIEPy4BV2QAAACEAAAAlAADFbAAAAA4AAAAoAADFbQAAACMAAADdAADFbgAAvb0AAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADFdl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEPvYBkgDmAXIAAgAQIgQ/B0wAAADoAAAA7AAAADgAAxXgAAMWBAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAADFggAAxYMAAMWEAADFhQAAxYYAAMWHAADFiAAAxYmBD8KBD8OBD8SBD8aBD8eBD8iBD8mBD8qAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAxWgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPwAgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMVoAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBD8AICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAxasAAAAXAADFaAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBD8WAAIEPwAgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAADFuQAAxboAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAxWgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEPwAgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAMVoAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBD8AICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADFaAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgQ/ACAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAxWgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEPwAgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMVoAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBD8AICAgIgEqAbwgIgAAI2QAAACEAAAAlAADGCAAAAA4AAAAoAADGCQAAACMAAADdAADGCgAAvb0AAASsAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADGEl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEPvYClgDmAXIAAgAQIgQ/M0wAAADoAAAA7AAAADgAAxhQAAMYcAAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAADGHQAAxh4AAMYfAADGIAAAxiEAAMYiAADGI4EPzYEPzoEPz4EP0IEP0YEP0oEP04BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAADFaQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgQ/LCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwAAxWkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEPywgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAMVpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC+gACBD8sICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAHMAAAAXAADFaQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBDlOAAIEPywgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMVpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBD8sICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADFaQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQ/LCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAALQVAAAAFwAAxWkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQ8EgACBD8sICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAADGjwAAACEAAAEmAAABJwAAxpAAAAAjAAABJQAAxpEAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJUAAADsAAAA7AAAxpkAAAAxAAAA7AAAAN4AAADsAAACBgAAvbUAAADsAAAA7AAAxqEAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBDxgICIEP1giAOQiAioEPMggIgQ/VCBK6CYPP0wAAADoAAAA7AAAADgAAxqUAAMaoAAAAoKIAAAIPAAACEIBkgGWiAADGqQAAxqqBD9eBD+KAVdkAAAAhAAAAJQAAxq0AAAAOAAAAKAAAxq4AAAAjAAAA3QAAxq8AAL2+AAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAxrdfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBD9SAZIA5gFyAAIAECIEP2NMAAAA6AAAAOwAAAA4AAMa5AADGwgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAxsMAAMbEAADGxQAAxsYAAMbHAADGyAAAxskAAMbKgQ/ZgQ/agQ/bgQ/dgQ/egQ/fgQ/ggQ/hgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMapAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBD9cICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADGqQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQ/XCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAMbsAAAAFwAAxqkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQ/cgACBD9cICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAxvoAAMb7AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMapAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBD9cICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAADGqQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQ/XCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAxqkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEP1wgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMapAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBD9cICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADGqQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQ/XCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAx0kAAAAOAAAAKAAAx0oAAAAjAAAA3QAAx0sAAL2+AAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAx1NfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBD9SAZYA5gFyAAIAECIEP49MAAAA6AAAAOwAAAA4AAMdVAADHXQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAAx14AAMdfAADHYAAAx2EAAMdiAADHYwAAx2SBD+SBD+WBD+aBD+eBD+iBD+mBD+qAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAxqoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEP4ggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMaqAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBD+IICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADGqgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgQ/iCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwAAxqoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEP4ggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMaqAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBD+IICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADGqgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgQ/iCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAxqoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEP4ggICAiASoCBCAiAAAjSAAAAOwAAAA4AAMfQAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAAu9wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEPEggICAiASoC4CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAALvcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYgAAAOwAAADsAAAAFwAAAOyAAIBSgACBDxIICAgIgEqAuQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAvb0AAAAXAAC73AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWMAAADsAAAA7AAAABcAAADsgACBD72AAIEPEggICAiASoC6CAiAAAjfEBIAAAEiAAABIwAAASQAAMgAAAAAIQAAASYAAAEnAADIAQAAACMAAAElAADIAgAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAcwAAAOwAAADsAADICgAAADEAAADsAAAA3gAAAOwAAASiAACz/wAAAOwAAADsAADIEgAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEOUwgIgQ/xCIA5CIECxYEObAgIgQ/wCBKJU/wc0wAAADoAAAA7AAAADgAAyBYAAMgZAAAAoKIAAAIPAAAErIBkgKWiAADIGgAAyBuBD/KBD/2AVdkAAAAhAAAAJQAAyB4AAAAOAAAAKAAAyB8AAAAjAAAA3QAAyCAAALQWAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAyChfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBD++AZIA5gFyAAIAECIEP89MAAAA6AAAAOwAAAA4AAMgqAADIMwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAyDQAAMg1AADINgAAyDcAAMg4AADIOQAAyDoAAMg7gQ/0gQ/1gQ/2gQ/4gQ/5gQ/6gQ/7gQ/8gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMgaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBD/IICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADIGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgQ/yCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAMhdAAAAFwAAyBoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgQ/3gACBD/IICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAyGsAAMhsAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMgaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBD/IICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAADIGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgQ/yCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAyBoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEP8ggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMgaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBD/IICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADIGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgQ/yCAgICIBKgG8ICIAACNkAAAAhAAAAJQAAyLoAAAAOAAAAKAAAyLsAAAAjAAAA3QAAyLwAALQWAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAyMRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBD++ApYA5gFyAAIAECIEP/tMAAAA6AAAAOwAAAA4AAMjGAADIzgAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwAAyM8AAMjQAADI0QAAyNIAAMjTAADI1AAAyNWBD/+BEACBEAGBEAKBEAOBEASBEAWAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwAAyBsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEP/QgICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAKPAAAABcAAMgbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIEBLIAAgQ/9CAgICIBKgLUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwAAyBsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVfAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEP/QgICAiASoC2CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAmAAAABcAAMgbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYAAAAOwAAADsAAAAFwAAAOyAAIED0YAAgQ/9CAgICIBKgLcICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAyBsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEP/QgICAiASoC4CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMgbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYgAAAOwAAADsAAAAFwAAAOyAAIBSgACBD/0ICAgIgEqAuQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAK5EAAAAXAADIGwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWMAAADsAAAA7AAAABcAAADsgACBEAaAAIEP/QgICAiASoC6CAiAAAjfEBIAAAEiAAABIwAAASQAAMlBAAAAIQAAASYAAAEnAADJQgAAACMAAAElAADJQwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAmAAAAOwAAADsAADJSwAAADEAAADsAAAA3gAAAOwAAASiAAAregAAAOwAAADsAADJUwAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIED0QgIgRAICIA5CIECxYED8AgIgRAHCBKpQi9r0wAAADoAAAA7AAAADgAAyVcAAMlaAAAAoKIAAAIPAAAErIBkgKWiAADJWwAAyVyBEAmBEBSAVdkAAAAhAAAAJQAAyV8AAAAOAAAAKAAAyWAAAAAjAAAA3QAAyWEAACuRAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAAyWlfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEAaAZIA5gFyAAIAECIEQCtMAAAA6AAAAOwAAAA4AAMlrAADJdAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAAyXUAAMl2AADJdwAAyXgAAMl5AADJegAAyXsAAMl8gRALgRAMgRANgRAPgRAQgRARgRASgRATgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMlbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEAkICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADJWwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRAJCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAMmeAAAAFwAAyVsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRAOgACBEAkICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAAyawAAMmtAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAMlbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEAkICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAADJWwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRAJCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAAyVsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEQCQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAMlbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOw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QAAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAADLUQAAy1IAAMtTAADLVAAAy1UAAMtWAADLV4EQLYEQLoEQL4EQMIERfYERfoERf4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAADKnQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgRArCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAo8AAAAFwAAyp0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgQEsgACBECsICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAADKnQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgRArCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAB/AAAAFwAAyp0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgRAxgACBECsICAgIgEqAtwgIgAAI3xAQAADLlgAAy5cAAMuYAADLmQAAACEAAMuaAADLmwAAACMAAMucAADLnQAAAA4AAAAlAADLngAAy58AAAAoAAAA3QAAAN4AAMuhAAAAKQAAACkAAAAUAADLpQAAAOQAAAAxAAAAKQAAAN4AAADnAAAATQAAAN4AAMusAADLrQAAAOxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECBYREJ1Y2tldEZvclN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jAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAzzQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEQgggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADPdwAAABcAAM80AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEQh4AAgRCCCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAM+FAADPhgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADPNAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRCCCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAAzzQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEQgggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAM80AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBEIIICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADPNAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRCCCAgICIBKgG4ICIAACN8QDwAAASIAAAE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AAAAoAAABKwAAABcAAAGOAAAAFwAA0bYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEQsAgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANG2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBELAICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAA0fkAAAAXAADRtgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBELWAAIEQsAgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAADSBwAA0ggAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA0bYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEQsAgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAANG2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBELAICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADRtgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRCwCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA0bYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEQsAgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANG2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBELAICAgIgEqAbwgIgAAI2QAAACEAAAAlAADSVgAAAA4AAAAoAADSVwAAACMAAADdAADSWAAAzIEAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADSYF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEQrYBlgDmAXIAAgAQIgRC80wAAADoAAAA7AAAADgAA0mIAANJqAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAADSawAA0mwAANJtAADSbgAA0m8AANJwAADScYEQvYEQvoEQv4EQwIEQwYEQwoEQw4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADRtwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRC7CAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA0bcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEQuwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANG3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBELsICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAADRtwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEQuwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANG3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBELsICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADRtwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRC7CAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA0bcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEQuwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAANLdAAAAIQAAASYAAAEnAADS3gAAACMAAAElAADS3wAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAfwAAAOwAAADsAADS5wAAADEAAADsAAAA3gAAAOwAAAIGAADMdAAAAOwAAADsAADS7wAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3J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fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEPKAZYA5gFyAAIAECIERAdMAAAA6AAAAOwAAAA4AANYlAADWLQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAA1i4AANYvAADWMAAA1jEAANYyAADWMwAA1jSBEQKBEQOBEQSBEQWBEQaBEQeBEQiAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA1XoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERAAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANV6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBEQAICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADVegAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgREACAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwAA1XoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBEQAICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADVegAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgREACAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA1XoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERAAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANV6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEQAICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADWoAAAACEAAAEmAAABJwAA1qEAAAAjAAABJQAA1qIAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH8AAADsAAAA7AAA1qoAAAAxAAAA7AAAAN4AAADsAAACBgAAzHcAAADsAAAA7AAA1rIAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEDEICIERCwiAOQiAioEQTQgIgREKCBJ6BtyF0wAAADoAAAA7AAAADgAA1rYAANa5AAAAoKIAAAIPAAACEIBkgGWiAADWugAA1ruBEQyBEReAVdkAAAAhAAAAJQAA1r4AAAAOAAAAKAAA1r8AAAAjAAAA3QAA1sAAAMyFAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA1shfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEQmAZIA5gFyAAIAECIERDdMAAAA6AAAAOwAAAA4AANbKAADW0wAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAA1tQAANbVAADW1gAA1tcAANbYAADW2QAA1toAANbbgREOgREPgREQgRESgRETgREUgREVgREWgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANa6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEQwICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADWugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgREMCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAANb9AAAAFwAA1roAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRERgACBEQwICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAA1wsAANcMAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANa6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEQwICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAADWugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgREMCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA1roAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERDAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANa6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEQwICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADWugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgREMCAgICIBKgG8ICIAACNkAAAAhAAAAJQAA11oAAAAOAAAAKAAA11sAAAAjAAAA3QAA11wAAMyFAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA12RfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEQmAZYA5gFyAAIAECIERGNMAAAA6AAAAOwAAAA4AANdmAADXbgAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAA128AANdwAADXcQAA13IAANdzAADXdAAA13WBERmBERqBERuBERyBER2BER6BER+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA1rsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERFwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANa7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBERcICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADWuwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgREXCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwAA1rsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBERcICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADWuwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgREXCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA1rsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERFwgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANa7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBERcICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADX4QAAACEAAAEmAAABJwAA1+IAAAAjAAABJQAA1+MAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH8AAADsAAAA7AAA1+sAAAAxAAAA7AAAAN4AAADsAAACBgAAzHgAAADsAAAA7AAA1/MAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEDEICIERIgiAOQiAioEQTggIgREhCBL8/rym0wAAADoAAAA7AAAADgAA1/cAANf6AAAAoKIAAAIPAAACEIBkgGWiAADX+wAA1/yBESOBES6AVdkAAAAhAAAAJQAA1/8AAAAOAAAAKAAA2AAAAAAjAAAA3QAA2AEAAMyGAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA2AlfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBESCAZIA5gFyAAIAECIERJNMAAAA6AAAAOwAAAA4AANgLAADYFAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAA2BUAANgWAADYFwAA2BgAANgZAADYGgAA2BsAANgcgRElgREmgREngREpgREqgRErgREsgREtgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANf7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBESMICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADX+wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgREjCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAANg+AAAAFwAA1/sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgREogACBESMICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAA2EwAANhNAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANf7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBESMICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAADX+wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgREjCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA1/sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERIwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANf7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBESMICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADX+wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgREjCAgICIBKgG8ICIAACNkAAAAhAAAAJQAA2JsAAAAOAAAAKAAA2JwAAAAjAAAA3QAA2J0AAMyGAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA2KVfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBESCAZYA5gFyAAIAECIERL9MAAAA6AAAAOwAAAA4AANinAADYrwAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAA2LAAANixAADYsgAA2LMAANi0AADYtQAA2LaBETCBETGBETKBETOBETSBETWBETaAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA1/wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERLggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANf8AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBES4ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADX/AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgREuCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwAA1/wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBES4ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADX/AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgREuCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA1/wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERLggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANf8AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBES4ICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADZIgAAACEAAAEmAAABJwAA2SMAAAAjAAABJQAA2SQAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH8AAADsAAAA7AAA2SwAAAAxAAAA7AAAAN4AAADsAAACBgAAzHkAAADsAAAA7AAA2TQAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEDEICIEROQiAOQiAioEQTwgIgRE4CBJFjDEq0wAAADoAAAA7AAAADgAA2TgAANk7AAAAoKIAAAIPAAACEIBkgGWiAADZPAAA2T2BETqBEUWAVdkAAAAhAAAAJQAA2UAAAAAOAAAAKAAA2UEAAAAjAAAA3QAA2UIAAMyHAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA2UpfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBETeAZIA5gFyAAIAECIERO9MAAAA6AAAAOwAAAA4AANlMAADZVQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAA2VYAANlXAADZWAAA2VkAANlaAADZWwAA2VwAANldgRE8gRE9gRE+gRFAgRFBgRFCgRFDgRFEgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANk8AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEToICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADZPAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRE6CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAANl/AAAAFwAA2TwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRE/gACBEToICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAA2Y0AANmOAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANk8AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEToICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAADZPAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRE6CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA2TwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEROggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANk8AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEToICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADZPAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRE6CAgICIBKgG8ICIAACNkAAAAhAAAAJQAA2dwAAAAOAAAAKAAA2d0AAAAjAAAA3QAA2d4AAMyHAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA2eZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBETeAZYA5gFyAAIAECIERRtMAAAA6AAAAOwAAAA4AANnoAADZ8AAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAA2fEAANnyAADZ8wAA2fQAANn1AADZ9gAA2feBEUeBEUiBEUmBEUqBEUuBEUyBEU2AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA2T0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERRQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANk9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBEUUICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADZPQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRFFCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwAA2T0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBEUUICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADZPQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRFFCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA2T0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERRQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANk9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEUUICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADaYwAAACEAAAEmAAABJwAA2mQAAAAjAAABJQAA2mUAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH8AAADsAAAA7AAA2m0AAAAxAAAA7AAAAN4AAADsAAACBgAAzHoAAADsAAAA7AAA2nUAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEDEICIERUAiAOQiAioEQUAgIgRFPCBJVg/Jf0wAAADoAAAA7AAAADgAA2nkAANp8AAAAoKIAAAIPAAACEIBkgGWiAADafQAA2n6BEVGBEVyAVdkAAAAhAAAAJQAA2oEAAAAOAAAAKAAA2oIAAAAjAAAA3QAA2oMAAMyIAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA2otfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEU6AZIA5gFyAAIAECIERUtMAAAA6AAAAOwAAAA4AANqNAADalgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAA2pcAANqYAADamQAA2poAANqbAADanAAA2p0AANqegRFTgRFUgRFVgRFXgRFYgRFZgRFagRFbgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANp9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEVEICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADafQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRFRCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAANrAAAAAFwAA2n0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRFWgACBEVEICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAA2s4AANrPAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANp9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEVEICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAADafQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRFRCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA2n0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERUQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANp9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEVEICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADafQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRFRCAgICIBKgG8ICIAACNkAAAAhAAAAJQAA2x0AAAAOAAAAKAAA2x4AAAAjAAAA3QAA2x8AAMyIAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA2ydfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEU6AZYA5gFyAAIAECIERXdMAAAA6AAAAOwAAAA4AANspAADbMQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAA2zIAANszAADbNAAA2zUAANs2AADbNwAA2ziBEV6BEV+BEWCBEWGBEWKBEWOBEWSAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA2n4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERXAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAANp+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBEVwICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADafgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRFcCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADeBAAAAFwAA2n4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQTegACBEVwICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADafgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRFcCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA2n4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERXAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAANp+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEVwICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADbpAAAACEAAAEmAAABJwAA26UAAAAjAAABJQAA26YAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH8AAADsAAAA7AAA264AAAAxAAAA7AAAAN4AAADsAAAEogAAK4EAAADsAAAA7AAA27YAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEDEICIERZwiAOQiBAsWBA/YICIERZggSbVuHYdMAAAA6AAAAOwAAAA4AANu6AADbvQAAAKCiAAACDwAABKyAZIClogAA274AANu/gRFogRFzgFXZAAAAIQAAACUAANvCAAAADgAAACgAANvDAAAAIwAAAN0AANvEAADMiQAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAANvMXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRFlgGSAOYBcgACABAiBEWnTAAAAOgAAADsAAAAOAADbzgAA29cAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAANvYAADb2QAA29oAANvbAADb3AAA290AANveAADb34ERaoERa4ERbIERboERb4ERcIERcYERcoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADbvgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRFoCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA274AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERaAgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADcAQAAABcAANu+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIERbYAAgRFoCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AANwPAADcEAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADbvgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAig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AAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAADd5AAA3eUAAN3mAADd5wAA3egAAN3pAADd6oERkIERkYERkoERk4ERlIERlYERloBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADdMAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRGOCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA3TAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERjggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAN0wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBEY4ICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAADdMAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIERjggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAN0wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBEY4ICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADdMAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRGOCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA3TAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERjggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAN5WAAAAIQAAASYAAAEnAADeVwAAACMAAAElAADeWAAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAcwAAAOwAAADsAADeYAAAADEAAADsAAAA3gAAAOwAAAIGAAC0AgAAAOwAAADsAADeaAAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEOUwgIgRGZCIA5CICKgQ5vCAiBEZgIEu42K3DTAAAAOgAAADsAAAAOAADebAAA3m8AAACgogAAAg8AAAIQgGSAZaIAAN5wAADecYERmoERpYBV2QAAACEAAAAlAADedAAAAA4AAAAoAADedQAAACMAAADdAADedgAAtBkAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADefl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYERl4BkgDmAXIAAgAQIgRGb0wAAADoAAAA7AAAADgAA3oAAAN6JAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAADeigAA3osAAN6MAADejQAA3o4AAN6PAADekAAA3pGBEZyBEZ2BEZ6BEaCBEaGBEaKBEaOBEaSAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA3nAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERmggICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAN5wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBEZoICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAA3rMAAAAXAADecAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBEZ+AAIERmggICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAADewQAA3sIAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA3nAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERmggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAN5wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEZoICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADecAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRGaCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACE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BdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYERroBlgDmAXIAAgAQIgRG90wAAADoAAAA7AAAADgAA4F0AAOBlAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAADgZgAA4GcAAOBoAADgaQAA4GoAAOBrAADgbIERvoERv4ERwIERwYERwoERw4ERxIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAIo4AAAAXAADfsgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACBAzqAAIERvAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAN+yAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBEbwICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADfsgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRG8CAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwAA37IAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBEbwICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADfsgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRG8CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA37IAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERvAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAN+yAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEbwICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADg2AAAACEAAAEmAAABJwAA4NkAAAAjAAABJQAA4NoAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHMAAADsAAAA7AAA4OIAAAAxAAAA7AAAAN4AAADsAAACBgAAtAQAAADsAAAA7AAA4OoAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBDlMICIERxwiAOQiAioEOcQgIgRHGCBMAAAABF8rNS9MAAAA6AAAAOwAAAA4AAODuAADg8QAAAKCiAAACDwAAAhCAZIBlogAA4PIAAODzgRHIgRHTgFXZAAAAIQAAACUAAOD2AAAADgAAACgAAOD3AAAAIwAAAN0AAOD4AAC0GwAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAOEAXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRHFgGSAOYBcgACABAiBEcnTAAAAOgAAADsAAAAOAADhAgAA4QsAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAOEMAADhDQAA4Q4AAOEPAADhEAAA4REAAOESAADhE4ERyoERy4ERzIERzoERz4ER0IER0YER0oBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADg8gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRHICAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA4PIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIERyAgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADhNQAAABcAAODyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIERzYAAgRHICAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAOFDAADhRAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADg8gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRHICAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA4PIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERyAgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAODyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBEcgICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADg8gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRHICAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA4PIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIERyAgICAiASoBvCAiAAAjZAAAAIQAAACUAAOGSAAAADgAAACgAAOGTAAAAIwAAAN0AAOGUAAC0GwAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAOGcXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRHFgGWAOYBcgACABAiBEdTTAAAAOgAAADsAAAAOAADhngAA4aYAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAOGnAADhqAAA4akAAOGqAADhqwAA4awAAOGtgRHVgRHWgRHXgRHYgRHZgRHagRHbgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAODzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBEdMICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADg8wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRHTCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA4PMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIER0wgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAxvgAAABcAAODzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEEa4AAgRHTCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA4PMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIER0wgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAODzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBEdMICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADg8wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRHTCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAA4hkAAAAhAAABJgAAAScAAOIaAAAAIwAAASUAAOIbAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwA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V3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAA43EAAAAXAADjSwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBEfaAAIER8wgICAiASoA+CAiAAAjSAAAAOwAAAA4AAON/AAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA40sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIER8wgICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADjkgAAABcAAONLAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIER+YAAgRHzCAgICIBKgEAICIAACNIAAAA7AAAADgAA46AAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADjSwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgRHzCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAOOzAAAAFwAA40sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgRH8gACBEfMICAgIgEqAQggIgAAI0gAAADsAAAAOAADjwQAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAONLAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOw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AAOVyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBEiwICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADlcgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRIsCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwAA5XIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBEiwICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADlcgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRIsCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA5XIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESLAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOVyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEiwICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADmmAAAACEAAAEmAAABJwAA5pkAAAAjAAABJQAA5poAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIoAAADsAAAA7AAA5qIAAAAxAAAA7AAAAN4AAADsAAAEogAAK4EAAADsAAAA7AAA5qoAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEfAICIESNwiAOQiBAsWBA/YICIESNggSOp8SltMAAAA6AAAAOwAAAA4AAOauAADmsQAAAKCiAAACDwAABKyAZIClogAA5rIAAOazgRI4gRJDgFXZAAAAIQAAACUAAOa2AAAADgAAACgAAOa3AAAAIwAAAN0AAOa4AADkDgAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAObAXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRI1gGSAOYBcgACABAiBEjnTAAAAOgAAADsAAAAOAADmwgAA5ssAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAObMAADmzQAA5s4AAObPAADm0AAA5tEAAObSAADm04ESOoESO4ESPIESPoESP4ESQIESQYESQoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADmsgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRI4CAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA5rIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESOAgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADm9QAAABcAAOayAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIESPYAAgRI4CAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAOcDAADnBAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADmsgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRI4CAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAA5rIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIESOAgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOayAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBEjgICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADmsgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRI4CAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA5rIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIESOAgICAiASoBvCAiAAAjZAAAAIQAAACUAAOdSAAAADgAAACgAAOdTAAAAIwAAAN0AAOdUAADkDgA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sgACAAIAAgRJaCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA5/QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIESWggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOf0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBEloICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAMHwAAAAXAADn9AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBBFOAAIESWggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOf0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBEloICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADn9AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRJaCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA5/QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESWggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAOkaAAAAIQAAASYAAAEnAADpGwAAACMAAAElAADpHAAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAigAAAOwAAADsAADpJAAAADEAAADsAAAA3gAAAOwAAAIGAAArfgAAAOwAAADsAADpLAAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIER8AgIgRJlCIA5CICKgQPzCAiBEmQIEvFAy+LTAAAAOgAAADsAAAAOAADpMAAA6TMAAACgogAAAg8AAAIQgGSAZaIAAOk0AADpNYESZoEScYBV2QAAACEAAAAlAADpOAAAAA4AAAAoAADpOQAAACMAAADdAADpOgAA5BAAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADpQl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESY4BkgDmAXIAAgAQIgRJn0wAAADoAAAA7AAAADgAA6UQAAOlNAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAADpTgAA6U8AAOlQAADpUQAA6VIAAOlTAADpVAAA6VWBEmiBEmmBEmqBEmyBEm2BEm6BEm+BEnCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA6TQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIESZggICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOk0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBEmYICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAA6XcAAAAXAADpNAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBEmuAAIESZggICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAADphQAA6YYAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA6TQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIESZggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOk0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEmYICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADpNAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRJmCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA6TQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESZggICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOk0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEmYICAgIgEqAbwgIgAAI2QAAACEAAAAlAADp1AAAAA4AAAAoAADp1QAAACMAAADdAADp1gAA5BAAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAADp3l8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYESY4BlgDmAXIAAgAQIgRJy0wAAADoAAAA7AAAADgAA6eAAAOnoAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAADp6QAA6eoAAOnrAADp7AAA6e0AAOnuAADp74ESc4ESdIESdYESdoESd4ESeIESeYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB6kAAAAXAADpNQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACA+4AAgRJxCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA6TUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEScQgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOk1AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBEnEICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB9cAAAAXAADpNQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACA/4AAgRJxCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA6TUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEScQgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOk1AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBEnEICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADpNQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRJxCAgICIBKgIEICIAACNIAAAA7AAAADgAA6lsAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADiNAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgRHqCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA4jQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIER6ggICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADkDgAAABcAAOI0AAAA7AAAAOwAAADsAAAAMQAAAOw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AAOygAADsoYESpYESpoESp4ESqIESqYESqoESq4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAIo4AAAAXAADr5wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACBAzqAAIESowgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAOvnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBEqMICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADr5wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRKjCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwAA6+cAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBEqMICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADr5wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRKjCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA6+cAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESowgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAOvnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEqMICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADtDQAAACEAAAEmAAABJwAA7Q4AAAAjAAABJQAA7Q8AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHMAAADsAAAA7AAA7RcAAAAxAAAA7AAAAN4AAADsAAAEogAAtAgAAADsAAAA7AAA7R8AAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBDlMICIESrgiAOQiBAsWBDnUICIESrQgSouBws9MAAAA6AAAAOwAAAA4AAO0jAADtJgAAAKCiAAACDwAABKyAZIClogAA7ScAAO0ogRKvgRK6gFXZAAAAIQAAACUAAO0rAAAADgAAACgAAO0sAAAAIwAAAN0AAO0tAAC0HwAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAO01XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRKsgGSAOYBcgACABAiBErDTAAAAOgAAADsAAAAOAADtNwAA7UAAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAO1BAADtQgAA7UMAAO1EAADtRQAA7UYAAO1HAADtSIESsYESsoESs4EStYEStoESt4ESuIESuYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADtJwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRKvCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA7ScAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIESrwgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADtagAAABcAAO0nAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEStIAAgRKvCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAO14AADteQAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADtJwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRKvCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAA7ScAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIESrwgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAO0nAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBEq8ICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADtJwA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CKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAA8L4AAPC/AADwwAAA8MEAAPDCAADwwwAA8MQAAPDFgRMGgRMHgRMIgRMKgRMLgRMMgRMNgRMOgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPCkAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBEwQICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADwpAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRMECAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAPDnAAAAFwAA8KQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRMJgACBEwQICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAA8PUAAPD2AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPCkAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBEwQICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADwpAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRMECAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA8KQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIETBAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAPCkAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEwQICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADwpAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRMECAgICIBKgG8ICIAACNkAAAAhAAAAJQAA8UQAAAAOAAAAKAAA8UUAAAAjAAAA3QAA8UYAAO8aAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA8U5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBEwGAZYA5gFyAAIAECIETENMAAAA6AAAAOwAAAA4AAPFQAADxWAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAA8VkAAPFaAADxWwAA8VwAAPFdAADxXgAA8V+BExGBExKBExOBExSBExWBExaBExeAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA8KUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIETDwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPClAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBEw8ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADwpQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRMPCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwAA8KUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBEw8ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADwpQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRMPCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA8KUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIETDwgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAPClAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEw8ICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAADxywAAACEAAAEmAAABJwAA8cwAAAAjAAABJQAA8c0AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQA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rZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRMvgGSAOYBcgACABAiBEzPTAAAAOgAAADsAAAAOAADzNgAA8z8AAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAPNAAADzQQAA80IAAPNDAADzRAAA80UAAPNGAADzR4ETNIETNYETNoETOIETOYETOoETO4ETPIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADzJgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRMyCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA8yYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIETMggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAADzaQAAABcAAPMmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIETN4AAgRMyCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAPN3AADzeAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADzJgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRMyCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA8yYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIETMggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPMmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBEzIICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADzJgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRMyCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA8yYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIETMggICAiASoBvCAiAAAjZAAAAIQAAACUAAPPGAAAADgAAACgAAPPHAAAAIwAAAN0AAPPIAADvHAAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAPPQXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRMvgGWAOYBcgACABAiBEz7TAAAAOgAAADsAAAAOAADz0gAA89oAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAPPbAADz3AAA890AAPPeAADz3wAA8+AAAPPhgRM/gRNAgRNBgRNCgRNDgRNEgRNFgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAPMnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBEz0ICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAADzJwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRM9CAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA8ycAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIETPQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAAPMnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBEz0ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAADzJwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRM9CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA8ycAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIETPQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAPMnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBEz0ICAgIgEqAgQg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AACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAepAAAAFwAA9akAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgPuAAIETawgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPWpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBE2sICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD1qQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRNrCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAfXAAAAFwAA9akAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgP+AAIETawgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAPWpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBE2sICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD1qQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRNrCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAA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jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYETuYBlgDmAXIAAgAQIgRPI0wAAADoAAAA7AAAADgAA+1gAAPtgAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAD7YQAA+2IAAPtjAAD7ZAAA+2UAAPtmAAD7Z4ETyYETyoETy4ETzIETzYETzoETz4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAIo4AAAAXAAD6rQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACBAzqAAIETxwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPqtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBE8cICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD6rQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRPHCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwAA+q0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBE8cICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD6rQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRPHCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA+q0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIETxwgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAPqtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBE8cICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAD70wAAACEAAAEmAAABJwAA+9QAAAAjAAABJQAA+9UAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJ4AAADsAAAA7AAA+90AAAAxAAAA7AAAAN4AAADsAAAEogAA7wkAAADsAAAA7AAA++UAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEsAICIET0giAOQiBAsWBEt8ICIET0QgSpgon3NMAAAA6AAAAOwAAAA4AAPvpAAD77AAAAKCiAAACDwAABKyAZIClogAA++0AAPvugRPTgRPegFXZAAAAIQAAACUAAPvxAAAADgAAACgAAPvyAAAAIwAAAN0AAPvzAADvIwAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAPv7XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRPQgGSAOYBcgACABAiBE9TTAAAAOgAAADsAAAAOAAD7/QAA/AYAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAPwHAAD8CAAA/AkAAPwKAAD8CwAA/AwAAPwNAAD8DoET1YET1oET14ET2YET2oET24ET3IET3YBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAD77QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRPTCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA++0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIET0wgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAD8MAAAABcAAPvtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIET2IAAgRPTCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAPw+AAD8PwAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAD77QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRPTCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA++0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIET0wgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPvtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBE9MICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD77QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRPTCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA++0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIET0wgICAiASoBvCAiAAAjZAAAAIQAAACUAAPyNAAAADgAAACgAAPyOAAAAIwAAAN0AAPyPAADvIwAABKwAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAPyXXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRPQgKWAOYBcgACABAiBE9/TAAAAOgAAADsAAAAOAAD8mQAA/KEAAACgpwAABV0AAAVeAAAFXwAABWAAAAVhAAAFYgAABWOAtIC1gLaAt4C4gLmAuqcAAPyiAAD8owAA/KQAAPylAAD8pgAA/KcAAPyogRPggRPhgRPigRPjgRPkgRPlgRPmgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAPvuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXQAAAOwAAADsAAAAFwAAAOyAAIC8gACBE94ICAgIgEqAtAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAACjwAAAAXAAD77gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACBASyAAIET3ggICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAPvuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC8gACBE94ICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAHoAAAAXAAD77gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACAwYAAgRPeCAgICIBKgLcICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAA++4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIET3ggICAiASoC4CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAPvuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYgAAAOwAAADsAAAAFwAAAOyAAIBSgACBE94ICAgIgEqAuQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABrgAAAAXAAD77gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWMAAADsAAAA7AAAABcAAADsgACBE+eAAIET3ggICAiASoC6CAiAAAjfEBIAAAEiAAABIwAAASQAAP0UAAAAIQAAASYAAAEnAAD9FQAAACMAAAElAAD9FgAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAegAAAOwAAADsAAD9HgAAADEAAADsAAAA3gAAAOwAAASiAAAGowAAAOwAAADsAAD9JgAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIDBCAiBE+kIgDkIgQLFgOgICIET6AgSbUNTbtMAAAA6AAAAOwAAAA4AAP0qAAD9LQAAAKCiAAACDwAABKyAZIClogAA/S4AAP0vgRPqgRP1gFXZAAAAIQAAACUAAP0yAAAADgAAACgAAP0zAAAAIwAAAN0AAP00AAAGuAAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAP08XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRPngGSAOYBcgACABAiBE+vTAAAAOgAAADsAAAAOAAD9PgAA/UcAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAP1IAAD9SQAA/UoAAP1LAAD9TAAA/U0AAP1OAAD9T4ET7IET7YET7oET8IET8YET8oET84ET9IBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAD9LgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRPqCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA/S4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIET6ggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAD9cQAAABcAAP0uAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIET74AAgRPqCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAP1/AAD9gAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAD9LgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRPqCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwAA/S4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIET6ggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAP0uAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBE+oICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD9LgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRPqCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA/S4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIET6ggICAiASoBvCAiAAAjZAAAAIQAAACUAAP3OAAAADgAAACgAAP3PAAAAIwAAAN0AAP3QAAAGuAAABKwAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAP3YXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRPngKWAOYBcgACABAiBE/bTAAAAOgAAADsAAAAOAAD92gAA/eIAAACgpwAABV0AAAVeAAAFXwAABWAAAAVhAAAFYgAABWOAtIC1gLaAt4C4gLmAuqcAAP3jAAD95AAA/eUAAP3mAAD95wAA/egAAP3pgRP3gRP4gRP5gRP6gRP7gRP8gRP9gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAP0vAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXQAAAOwAAADsAAAAFwAAAOyAAIC8gACBE/UICAgIgEqAtAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAD9LwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACAvoAAgRP1CAgICIBKgLUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwAA/S8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVfAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIET9QgICAiASoC2CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAngAAABcAAP0vAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYAAAAOwAAADsAAAAFwAAAOyAAIESwIAAgRP1CAgICIBKgLcICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA/S8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIET9QgICAiASoC4CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAP0vAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYgAAAOwAAADsAAAAFwAAAOyAAIBSgACBE/UICAgIgEqAuQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAA7yMAAAAXAAD9LwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWMAAADsAAAA7AAAABcAAADsgACBE9CAAIET9QgICAiASoC6CAiAAAjfEBIAAAEiAAABIwAAASQAAP5VAAAAIQAAASYAAAEnAAD+VgAAACMAAAElAAD+VwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAngAAAOwAAADsAAD+XwAAADEAAADsAAAA3gAAAOwAAAIGAAAXhQAAAOwAAADsAAD+ZwAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIESwAgIgRQACIA5CICKgQJBCAiBE/8IErGFHNHTAAAAOgAAADsAAAAOAAD+awAA/m4AAACgogAAAg8AAAIQgGSAZaIAAP5vAAD+cIEUAYEUDIBV2QAAACEAAAAlAAD+cwAAAA4AAAAoAAD+dAAAACMAAADdAAD+dQAA7yQAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAD+fV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYET/oBkgDmAXIAAgAQIgRQC0wAAADoAAAA7AAAADgAA/n8AAP6IAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAD+iQAA/ooAAP6LAAD+jAAA/o0AAP6OAAD+jwAA/pCBFAOBFASBFAWBFAeBFAiBFAmBFAqBFAuAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA/m8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEUAQgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAP5vAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFAEICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAA/rIAAAAXAAD+bwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBFAaAAIEUAQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAD+wAAA/sEAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA/m8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEUAQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAP5vAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFAEICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAD+bwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRQBCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA/m8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEUAQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAP5vAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFAEICAgIgEqAbwgIgAAI2QAAACEAAAAlAAD/DwAAAA4AAAAoAAD/EAAAACMAAADdAAD/EQAA7yQAAAIQAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAD/GV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYET/oBlgDmAXIAAgAQIgRQN0wAAADoAAAA7AAAADgAA/xsAAP8jAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAD/JAAA/yUAAP8mAAD/JwAA/ygAAP8pAAD/KoEUDoEUD4EUEIEUEYEUEoEUE4EUFIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD+cAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRQMCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA/nAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEUDAgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAP5wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBFAwICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB9cAAAAXAAD+cAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACA/4AAgRQMCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAA/nAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEUDAgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAP5wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFAwICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD+cAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRQMCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAAA/5YAAAAhAAABJgAAAScAAP+XAAAAIwAAASUAAP+YAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACeAAAA7AAAAOwAAP+gAAAAMQAAAOwAAADeAAAA7AAABKIAAO8LAAAA7AAAAOwAAP+oAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRLACAiBFBcIgDkIgQLFgRLgCAiBFBYIEwAAAAEVvtNb0wAAADoAAAA7AAAADgAA/6wAAP+vAAAAoKIAAAIPAAAErIBkgKWiAAD/sAAA/7GBFBiBFCOAVdkAAAAhAAAAJQAA/7QAAAAOAAAAKAAA/7UAAAAjAAAA3QAA/7YAAO8lAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAA/75fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFBWAZIA5gFyAAIAECIEUGdMAAAA6AAAAOwAAAA4AAP/AAAD/yQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAA/8oAAP/LAAD/zAAA/80AAP/OAAD/zwAA/9AAAP/RgRQagRQbgRQcgRQegRQfgRQggRQhgRQigFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAP+wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFBgICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAD/sAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRQYCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAP/zAAAAFwAA/7AAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRQdgACBFBgICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABAAEAAQACAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAP+wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFBgICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAD/sAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRQYCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAA/7AAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEUGAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAP+wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFBgICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAD/sAAAAOwAAADsAAA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AAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEA8gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRQ6CAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABAPIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEUOggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQDyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBFDoICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAw8AAAAXAAEA8gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACAhoAAgRQ6CAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABAPIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEUOggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQDyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFDoICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEA8gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRQ6CAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABAhgAAAAhAAABJgAAAScAAQIZAAAAIwAAASUAAQIaAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACeAAAA7AAAAOwAAQIiAAAAMQAAAOwAAADeAAAA7AAABKIAABeJAAAA7AAAAOwAAQIqAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRLACAiBFEUIgDkIgQLFgQJFCAiBFEQIEjbwzvvTAAAAOgAAADsAAAAOAAECLgABAjEAAACgogAAAg8AAASsgGSApaIAAQIyAAECM4EURoEUUYBV2QAAACEAAAAlAAECNgAAAA4AAAAoAAECNwAAACMAAADdAAECOAAA7ycAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAECQF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEUQ4BkgDmAXIAAgAQIgRRH0wAAADoAAAA7AAAADgABAkIAAQJLAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAECTAABAk0AAQJOAAECTwABAlAAAQJRAAECUgABAlOBFEiBFEmBFEqBFEyBFE2BFE6BFE+BFFCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABAjIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEURggICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQIyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFEYICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABAnUAAAAXAAECMgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBFEuAAIEURggICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAECgwABAoQAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABAjIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEURggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAQIyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFEYICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAECMgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRRGCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABAjIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEURggICAi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AAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRSxCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABBsQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEUsQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAAQbEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBFLEICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEGxAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRSxCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABBsQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEUsQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQbEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFLEICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAEH6gAAACEAAAEmAAABJwABB+sAAAAjAAABJQABB+wAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJIAAADsAAAA7AABB/QAAAAxAAAA7AAAAN4AAADsAAACBgABBBAAAAD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fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFLqAZYA5gFyAAIAECIEUydMAAAA6AAAAOwAAAA4AAQiwAAEIuAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABCLkAAQi6AAEIuwABCLwAAQi9AAEIvgABCL+BFMqBFMuBFMyBFM2BFM6BFM+BFNCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABCAUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEUyAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAQgFAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBFMgICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEIBQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRTICAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADeBAAAAFwABCAUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQTegACBFMgICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABc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sgACAAIAAgRTrCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAQrJAAAAFwABCoYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRTwgACBFOsICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABCtcAAQrYAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAQqGAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFOsICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAEKhgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRTrCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABCoYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEU6wgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQqGAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFOsICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEKhgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAAD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AAADsAAAAFwAAAOyAAIBSgACBFTQICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEOeQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRU0CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAQ68AAAAFwABDnkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRU5gACBFTQICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABDsoAAQ7LAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAQ55AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFTQICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAEOeQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRU0CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABDnkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVNAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQ55AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOw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QbgAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABEG8AARBwAAEQcQABEHIAARBzAAEQdAABEHWBFViBFVmBFVqBFVuBFVyBFV2BFV6AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABD7sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEVVggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAQ+7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBFVYICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEPuwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRVWCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADeBAAAAFwABD7sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQTegACBFVYICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEPuwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRVWCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABD7sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEVVggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAQ+7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFVYICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAEQ4QAAACEAAAEmAAABJwABEOIAAAAjAAABJQABEOMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJ4AAADsAAAA7AABEOsAAAAxAAAA7AAAAN4AAADsAAAEogAA7xAAAADsAAAA7AABEPMAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBEsAICIEVYQiAOQiBAsWBEuQICIEVYAgTAAAAAR8dxPXTAAAAOgAAADsAAAAOAAEQ9wABEPoAAACgogAAAg8AAASsgGSApaIAARD7AAEQ/IEVYoEVbYBV2QAAACEAAAAlAAEQ/wAAAA4AAAAoAAERAAAAACMAAADdAAERAQAA7yoAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAERCV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEVX4BkgDmAXIAAgAQIgRVj0wAAADoAAAA7AAAADgABEQsAAREUAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAERFQABERYAAREXAAERGAABERkAAREaAAERGwABERyBFWSBFWWBFWaBFWiBFWmBFWqBFWuBFWyAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABEPsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVYggICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARD7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFWIICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABET4AAAAXAAEQ+wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBFWeAAIEVYggICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAERTAABEU0AAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABEPsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVYggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARD7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFWIICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEQ+wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRViCAgICIBKgG0ICIAACN8QDwAAASI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AAAAxAAAA7AAAATQAAAEGAAAA7AAAAOwAAAAXAAAA7IAAgRV8gACBFXYICAgIgEqAQAgIgAAI0gAAADsAAAAOAAEScAAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARIbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFXYICAgIgEqAQQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABEoMAAAAXAAESGwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQgAAADsAAAA7AAAABcAAADsgACBFX+AAIEVdggICAiASoBCCAiAAAjSAAAAOwAAAA4AARKRAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABEhsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEJAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVdggICAiASoBDCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAESpAAAABcAARIbAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCgAAAOwAAADsAAAAFwAAAOyAAIEVgoAAgRV2CAgICIBKgEQICIAACNMAAAA6AAAAOwAAAA4AARKyAAESswAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAbUAAAAXAAESGwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQsAAADsAAAA7AAAABcAAADsgACAV4AAgRV2CAgICIBKgEUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAARLGAAAAFwABEhsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEMAAAA7AAAAOwAAAAXAAAA7IAAgRWFgACBFXYICAgIgEqARggIgAAIXxATUGVyc2lzdGVkSW52aXRhdGlvbtMAAAA6AAAAOwAAAA4AARLVAAES3AAAAKCmAAES1gABEtcAARLYAAAXjQABEtoAARLbgRWHgRWIgRWJgQJJgRWKgRWLpgABEt0AARLeAAES3wABEuAAARLhAAES4oEVjIEVo4EVuoEV0YEV6IEV/4BVVHV1aWRdb3duZWRJZGVudGl0eV8QEGVuY29kZWRPYnZEaWFsb2deYWN0aW9uUmVxdWlyZWRUZGF0Zd8QEgAAASIAAAEjAAABJAABEuoAAAAhAAABJgAAAScAARLrAAAAIwAAASUAARLsAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACLAAAA7AAAAOwAARL0AAAAMQAAAOwAAADeAAAA7AAAAgYAARLWAAAA7AAAAOwAARL8AAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRVzCAiBFY4IgDkIgIqBFYcICIEVjQgSa7r37dMAAAA6AAAAOwAAAA4AARMAAAETAwAAAKCiAAACDwAAAhCAZIBlogABEwQAARMFgRWPgRWagFXZAAAAIQAAACUAARMIAAAADgAAACgAARMJAAAAIwAAAN0AARMKAAES3QAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAARMSXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRWMgGSAOYBcgACABAiBFZDTAAAAOgAAADsAAAAOAAETFAABEx0AAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAARMeAAETHwABEyAAARMhAAETIgABEyMAARMkAAETJYEVkYEVkoEVk4EVlYEVloEVl4EVmIEVmYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAETBAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRWPCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABEwQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEVjwgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAETRwAAABcAARMEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEVlIAAgRWPCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AARNVAAETVgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAETBAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRWPCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABEwQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVjwgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARMEAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBFY8ICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAETBAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRWPCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABEwQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVjwgICAiASoBvCAiAAAjZAAAAIQAAACUAAROkAAAADgAAACgAAROlAAAAIwAAAN0AAROmAAES3QAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAROuXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRWMgGWAOYBcgACABAiBFZvTAAAAOgAAADsAAAAOAAETsAABE7gAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAARO5AAETugABE7sAARO8AAETvQABE74AARO/gRWcgRWdgRWegRWfgRWggRWhgRWigFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARMFAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBFZoICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAETBQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRWaCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABEwUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEVmggICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAxvgAAABcAARMFAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEEa4AAgRWaCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABEwUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEVmggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARMFAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFZoICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAETBQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRWaCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABFCsAAAAhAAABJgAAAScAARQsAAAAIwAAASUAARQtAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACLAAAA7AAAAOwAARQ1AAAAMQAAAOwAAADeAAAA7AAABKIAARLXAAAA7AAAAOwAARQ9AAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRVzCAiBFaUIgDkIgQLFgRWICAiBFaQIEm994XPTAAAAOgAAADsAAAAOAAEUQQABFEQAAACgogAAAg8AAASsgGSApaIAARRFAAEURoEVpoEVsYBV2QAAACEAAAAlAAEUSQAAAA4AAAAoAAEUSgAAACMAAADdAAEUSwABEt4AAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAEUU18QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEVo4BkgDmAXIAAgAQIgRWn0wAAADoAAAA7AAAADgABFFUAARReAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAEUXwABFGAAARRhAAEUYgABFGMAARRkAAEUZQABFGaBFaiBFamBFaqBFayBFa2BFa6BFa+BFbCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABFEUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVpggICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARRFAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFaYICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABFIgAAAAXAAEURQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBFauAAIEVpggICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAEUlgABFJcAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABFEUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEVpggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAARRFAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBFaYICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEURQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRWmCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABFEUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEVpggICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARRFAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBFaYICAgIgEqAbwgIgAAI2QAAACEAAAAlAAEU5QAAAA4AAAAoAAEU5gAAACMAAADdAAEU5wABEt4AAASsAAAA3gA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VyAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARWHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBFcgICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEVhwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRXICAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwABFYcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEVyAgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARWHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBFcgICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEVhwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRXICAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABFYcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEVyAgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAARatAAAAIQAAASYAAAEnAAEWrgAAACMAAAElAAEWrwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAiwAAAOwAAADsAAEWtwAAADEAAADsAAAA3gAAAOwAAAIGAAAXjQAAAOwAAADsAAEWvwAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEVcwgIgRXTCIA5CICKgQJJCAiBFdIIEoGVp8fTAAAAOgAAADsAAAAOAAEWwwABFsYAAACgogAAAg8AAAIQgGSAZaIAARbHAAEWyIEV1IEV34BV2QAAACEAAAAlAAEWywAAAA4AAAAoAAEWzAAAACMAAADdAAEWzQABEuAAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAEW1V8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEV0YBkgDmAXIAAgAQIgRXV0wAAADoAAAA7AAAADgABFtcAARbgAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAEW4QABFuIAARbjAAEW5AABFuUAARbmAAEW5wABFuiBFdaBFdeBFdiBFdqBFduBFdyBFd2BFd6AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABFscAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEV1AgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARbHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFdQICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABFwoAAAAXAAEWxwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBFdmAAIEV1AgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAEXGAABFxkAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABFscAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEV1AgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARbHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBFdQICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEWxwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRXUCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABFscAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEV1AgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARbHAAAA7AAAAOwAAADsAAAAMQAAAOw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AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEYCQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRX2CAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABGAkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEV9ggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARgJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBFfYICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB9cAAAAXAAEYCQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACA/4AAgRX2CAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABGAkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEV9ggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARgJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFfYICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEYCQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRX2CAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABGS8AAAAhAAABJgAAAScAARkwAAAAIwAAASUAARkxAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACLAAAA7AAAAOwAARk5AAAAMQAAAOwAAADeAAAA7AAAAgYAARLbAAAA7AAAAOwAARlBAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRVzCAiBFgEIgDkIgIqBFYsICIEWAAgScabfEtMAAAA6AAAAOwAAAA4AARlFAAEZSAAAAKCiAAACDwAAAhCAZIBlogABGUkAARlKgRYCgRYNgFXZAAAAIQAAACUAARlNAAAADgAAACgAARlOAAAAIwAAAN0AARlPAAES4gAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAARlXXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRX/gGSAOYBcgACABAiBFgPTAAAAOgAAADsAAAAOAAEZWQABGWIAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAARljAAEZZAABGWUAARlmAAEZZwABGWgAARlpAAEZaoEWBIEWBYEWBoEWCIEWCYEWCoEWC4EWDIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEZSQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRYCCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABGUkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWAggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAEZjAAAABcAARlJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEWB4AAgRYCCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AARmaAAEZmwAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEZSQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRYCCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABGUkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEWAggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAARlJAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBFgIICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEZSQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRYCCAgICIBKgG4ICIAACN8QDwA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AAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARqcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBQAAAOwAAADsAAAAFwAAAOyAAIAAgACBFhwICAgIgEqAPwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABGuMAAAAXAAEanAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQYAAADsAAAA7AAAABcAAADsgACBFiKAAIEWHAgICAiASoBACAiAAAjSAAAAOwAAAA4AARrxAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABGpwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEHAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWHAgICAiASoBBCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAEbBAAAABcAARqcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCAAAAOwAAADsAAAAFwAAAOyAAIEWJYAAgRYcCAgICIBKgEIICIAACNIAAAA7AAAADgABGxIAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEanAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQkAAADsAAAA7AAAABcAAADsgACAUoAAgRYcCAgICIBKgEMICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAARslAAAAFwABGpwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEKAAAA7AAAAOwAAAAXAAAA7IAAgRYogACBFhwICAgIgEqARAgIgAAI0wA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AADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRY8CAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABG3gAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEWPAgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARt4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBFjwICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAw8AAAAXAAEbeAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACAhoAAgRY8CAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABG3gAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWPAgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAARt4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBFjwICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEbeAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAAD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ADgABIBYAAAAlAAEgFwAAACgAASAYAAEgGQABIBoAASAbAAEgHAABIB0AAAAjAAAFIQAAAN4AAADeAAEgIQAAACkAAADkAAAA3gAAABQAAADnAAAAKQAAAFMAASApAAEgKgAAACkAAAApAAAA3gABIC4AASAvAAAA5AAAADFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc29yZGVyZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc29yZGVyZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2VfECFYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc3N0b3JhZ2VfECRYREJ1Y2tldEZvclNwZWNpYWxpemF0aW9uc2R1cGxpY2F0ZXMJgDmAOYEWj4AEgQPNgDmAAoEFKIAEgByBGomBFo6ABIAEgDmBFqSBGoqBA80SajZXAtMAAAA6AAAAOwAAAA4AASAzAAEgNQAAAKChAAAA8YA7oQABIDaBFpCAVdkAAAAhAAAAJQABIDkAAAAOAAAAKAABIDoAAAAjAAAA3QABIDsAAACFAAAA8QAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABIENfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFo2AO4A5gFyAAIAECIEWkdMAAAA6AAAAOwAAAA4AASBFAAEgTwAAAKCpAAABBAAAAQUAAAEGAAABBwAAAQgAAAEJAAABCgAAAQsAAAEMgD6AP4BAgEGAQoBDgESARYBGqQABIFAAASBRAAEgUgABIFMAASBUAAEgVQABIFYAASBXAAEgWIEWkoEWlIEWlYEWm4EWnIEWnoEWn4EWoYEWooBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABIFwAAAAXAAEgNgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBFpOAAIEWkAgICAiASoA+CAiAAAjSAAAAOwAAAA4AASBqAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABIDYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWkAgICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAEgfQAAABcAASA2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEWloAAgRaQCAgICIBKgEAICIAACNIAAAA7AAAADgABIIsAAAE8oQABIIyBFpeASdIAAAA7AAAADgABII8AAAE8owABIJAAASCRAAEgkoEWmIEWmYEWmoBJXxAYcmF3T3duZWRJZGVudGl0eUlkZW50aXR5XW93bmVySWRlbnRpdHlbZ3JvdXBVaWRSYXffEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASA2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFpAICAgIgEqAQQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABIKgAAAAXAAEgNgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQgAAADsAAAA7AAAABcAAADsgACBFp2AAIEWkAgICAiASoBCCAiAAAjSAAAAOwAAAA4AASC2AAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwABIDYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEJAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEWkAgICAiASoBDCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAEgyQAAABcAASA2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCgAAAOwAAADsAAAAFwAAAOyAAIEWoIAAgRaQCAgICIBKgEQICIAACNMAAAA6AAAAOwAAAA4AASDXAAEg2AAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAbUAAAAXAAEgNgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQsAAADsAAAA7AAAABcAAADsgACAV4AAgRaQCAgICIBKgEUICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAASDrAAAAFwABIDYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEMAAAA7AAAAOwAAAAXAAAA7IAAgRajgACBFpAICAgIgEqARggIgAAIXxAVUGVyc2lzdGVkQ29udGFjdEdyb3Vw0wAAADoAAAA7AAAADgABIPoAASEIAAAAoK0AASD7AAEg/AAAF48AASD+AAEg/wABIQAAABeNAAEhAgABIQMAASEEAAEhBQAAF5IAACuBgRalgRamgQJKgRangRaogRapgQJJgRa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sAAAA7AAAABcAAADsgACAUoAAgRa8CAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABITwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWvAgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAASE8AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBFrwICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEhPAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRa8CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABITwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWvAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASE8AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFrwICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAEiYgAAACEAAAEmAAABJwABImMAAAAjAAABJQABImQAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIUAAADsAAAA7AABImwAAAAxAAAA7AAAAN4AAADsAAAEogABIPwAAADsAAAA7AABInQAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBFo0ICIEWxwiAOQiBAsWBFqYICIEWxggSaubxmtMAAAA6AAAAOwAAAA4AASJ4AAEiewAAAKCiAAACDwAABKyAZIClogABInwAASJ9gRbIgRbTgFXZAAAAIQAAACUAASKAAAAADgAAACgAASKBAAAAIwAAAN0AASKCAAEhCgAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAASKKXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRbFgGSAOYBcgACABAiBFsnTAAAAOgAAADsAAAAOAAEijAABIpUAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAASKWAAEilwABIpgAASKZAAEimgABIpsAASKcAAEinYEWyoEWy4EWzIEWzoEWz4EW0IEW0YEW0oBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEifAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRbICAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABInwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEWyAgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAEivwAAABcAASJ8AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEWzYAAgRbICAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AASLNAAEizgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEifAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRbICAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABInwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEWyAgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASJ8AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBFsgICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEifAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRbICAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABInwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEWyAgICAiASoBvCAiAAAjZAAAAIQAAACUAASMcAAAADgAAACgAASMdAAAAIwAAAN0AASMeAAEhCgAABKwAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAASMmXxAhWER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AAAAoAAABKwAAABcAASO6AAAAFwABI5QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEEAAAA7AAAAOwAAAAXAAAA7IAAgRbfgACBFtwICAgIgEqAPggIgAAI0gAAADsAAAAOAAEjyAAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASOUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBQAAAOwAAADsAAAAFwAAAOyAAIAAgACBFtwICAgIgEqAPwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABI9sAAAAXAAEjlAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQYAAADsAAAA7AAAABcAAADsgACBFuKAAIEW3AgICAiASoBACAiAAAjSAAAAOwAAAA4AASPpAAABPKEAASPqgRbjgEnSAAAAOwAAAA4AASPtAAABPKQAAArjAAEj7wABI/AAASPxgQE7gRbkgRblgRbmgElfEBhyYXdPd25lZElkZW50aXR5SWRlbnRpdHlfEBVyYXdHcm91cE93bmVySWRlbnRpdHlecmF3R3JvdXBVaWRSYXffEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASOUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBwAAAOwAAADsAAAAFwAAAOyAAIAAgACBFtwICAgIgEqAQQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABJAcAAAAXAAEjlAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQgAAADsAAAA7AAAABcAAADsgACBFumAAIEW3AgICAiASoBCCAiAAAjSAAAAOwAAAA4AASQVAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAA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jAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABJxAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEXKQgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAEnUwAAABcAAScQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEXLoAAgRcpCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AASdhAAEnYgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEnEAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRcpCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABJxAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXKQgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAScQAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBFykICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEnEAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRcpCAgICIBKgG4ICIAACN8QDwAAASIAAAE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BF0CBF0uAVdkAAAAhAAAAJQABKFUAAAAOAAAAKAABKFYAAAAjAAAA3QABKFcAASRmAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABKF9fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFz2AZIA5gFyAAIAECIEXQdMAAAA6AAAAOwAAAA4AAShhAAEoagAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABKGsAAShsAAEobQABKG4AAShvAAEocAABKHEAAShygRdCgRdDgRdEgRdGgRdHgRdIgRdJgRdKgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAShRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBF0AICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEoUQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRdACAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAASiUAAAAFwABKFEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRdFgACBF0AICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABKKIAASijAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAShRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBF0AICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEoUQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRdACAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABKFEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXQAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAShRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBF0AICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEoUQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRdACAgICIBKgG8ICIAACNkAAAAhAAAAJQABKPEAAAAOAAAAKAABKPIAAAAjAAAA3QABKPMAASRmAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABKPtfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBFz2AZYA5gFyAAIAECIEXTNMAAAA6AAAAOwAAAA4AASj9AAEpBQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABKQYAASkHAAEpCAABKQkAASkKAAEpCwABKQyBF02BF06BF0+BF1CBF1GBF1KBF1OAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABKFIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEXSwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAShSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBF0sICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEoUgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRdLCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwABKFIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEXSwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAShSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBF0sICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEoUgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRdLCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABKFIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEXSwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAASl4AAAAIQAAASYAAAEnAAEpeQAAACMAAAElAAEpegAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAfAAAAOwAAADsAAEpggAAADEAAADsAAAA3gAAAOwAAASiAAEkXgAAAOwAAADsAAEpigAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEW2QgIgRdWCIA5CIECxYEW9QgIgRdVCBLqUUUv0wAAADoAAAA7AAAADgABKY4AASmRAAAAoKIAAAIPAAAErIBkgKWiAAEpkgABKZOBF1eBF2KAVdkAAAAhAAAAJQABKZYAAAAOAAAAKAABKZcAAAAjAAAA3QABKZgAASRnAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABKaBfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBF1SAZIA5gFyAAIAECIEXWNMAAAA6AAAAOwAAAA4AASmiAAEpqwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABKawAASmtAAEprgABKa8AASmwAAEpsQABKbIAASmzgRdZgRdagRdbgRddgRdegRdfgRdggRdhgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASmSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBF1cICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEpkgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRdXCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAASnVAAAAFwABKZIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRdcgACBF1cICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABKeMAASnkAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASmSAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBF1cICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAEpkgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRdXCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABKZIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXVwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAA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pYnV0ZXNzdG9yYWdlgRdrgGWAOYBcgACABAiBF3rTAAAAOgAAADsAAAAOAAErfwABK4cAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAASuIAAEriQABK4oAASuLAAErjAABK40AASuOgRd7gRd8gRd9gRd+gRd/gReAgReBgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASrUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBF3kICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEq1AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRd5CAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABKtQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEXeQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAASrUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBF3kICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEq1AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRd5CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABKtQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEXeQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASrUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBF3kICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAEr+gAAACEAAAEmAAABJwABK/sAAAAjAAABJQABK/wAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHwAAADsAAAA7AABLAQAAAAxAAAA7AAAAN4AAADsAAACBgAACuMAAADsAAAA7AABLAwAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBFtkICIEXhAiAOQiAioEBOwgIgReDCBKhjJJj0wAAADoAAAA7AAAADgABLBAAASwTAAAAoKIAAAIPAAACEIBkgGWiAAEsFAABLBWBF4WBF5CAVdkAAAAhAAAAJQABLBgAAAAOAAAAKAABLBkAAAAjAAAA3QABLBoAASRpAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABLCJfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBF4KAZIA5gFyAAIAECIEXhtMAAAA6AAAAOwAAAA4AASwkAAEsLQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABLC4AASwvAAEsMAABLDEAASwyAAEsMwABLDQAASw1gReHgReIgReJgReLgReMgReNgReOgRePgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASwUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBF4UICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEsFAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgReFCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAASxXAAAAFwABLBQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgReKgACBF4UICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABLGUAASxmAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASwUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBF4UICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEsFAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgReFCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABLBQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEXhQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASwUAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBF4UICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEsFAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgReFCAgICIBKgG8ICIAACNkAAAAhAAAAJQABLLQAAAAOAAAAKAABLLUAAAAjAAAA3QABLLYAASRpAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABLL5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBF4KAZYA5gFyAAIAECIEXkdMAAAA6AAAAOwAAAA4AASzAAAEsyAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABLMkAASzKAAEsywABLMwAASzNAAEszgABLM+BF5KBF5OBF5SBF5WBF5aBF5eBF5iAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABLBUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEXkAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASwVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBF5AICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEsFQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgReQCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwABLBUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEXkAgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAASwVAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBF5AICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEsFQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgReQCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABLBUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEXkAgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAS07AAAAIQAAASYAAAEnAAEtPAAAACMAAAElAAEtPQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAfAAAAOwAAADsAAEtRQAAADEAAADsAAAA3gAAAOwAAAIGAAEkYQAAAOwAAAD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AABcAAS1WAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBF6cICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAEtVgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRenCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABLVYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEXpwgICAiASoCBCAiAAAjSAAAAOwAAAA4AAS58AAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwABIn0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEW0wgICAiASoC4CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAASJ9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYgAAAOwAAADsAAAAFwAAAOyAAIBSgACBFtMICAgIgEqAuQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABJGcAAAAXAAEifQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWMAAADsAAAA7AAAABcAAADsgACBF1SAAIEW0wgICAiASoC6CAiAAAjfEBIAAAEiAAABIwAAASQAAS6sAAAAIQAAASYAAAEnAAEurQAAACMAAAElAAEurgAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAA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AAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEX6IAAgRfiCAgICIBKgEAICIAACNIAAAA7AAAADgABMXQAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAExHwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgRfiCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAATGHAAAAFwABMR8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgRfrgACBF+IICAgIgEqAQggIgAAI0gAAADsAAAAOAAExlQAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATEfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBF+IICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABMagAAAAXAAExHwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBF+6AAIEX4ggICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAAExtgABMbcAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwABMR8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIEX4ggICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAA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AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATNaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBGBcICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABM50AAAAXAAEzWgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBGByAAIEYFwgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAEzqwABM6wAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABM1oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEYFwgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAATNaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBGBcICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAEzWgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRgXCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABM1oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYFwgICAiASoBuCAiAAAjfEA8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8gH2AfoB/gICAgacAATVQAAE1UQABNVIAATVTAAE1VAABNVUAATVWgRg7gRg8gRg9gRg+gRg/gRhAgRhBgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAHqQAAABcAATScAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAID7gACBGDkICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE0nAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRg5CAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABNJwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYOQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAH1wAAABcAATScAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAID/gACBGDkICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE0nAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRg5CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABNJwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYOQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATScAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGDkICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAE1wgAAACEAAAEmAAABJwABNcMAAAAjAAABJQABNcQAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIEAAADsAAAA7AABNcwAAAAxAAAA7AAAAN4AAADsAAACBgABMdwAAADsAAAA7AABNdQAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBF98ICIEYRAiAOQiAioEX9QgIgRhDCBLB/klM0wAAADoAAAA7AAAADgABNdgAATXbAAAAoKIAAAIPAAACEIBkgGWiAAE13AABNd2BGEWBGFCAVdkAAAAhAAAAJQABNeAAAAAOAAAAKAABNeEAAAAjAAAA3QABNeIAATHpAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABNepfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGEKAZIA5gFyAAIAECIEYRtMAAAA6AAAAOwAAAA4AATXsAAE19QAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABNfYAATX3AAE1+AABNfkAATX6AAE1+wABNfwAATX9gRhHgRhIgRhJgRhLgRhMgRhNgRhOgRhPgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATXcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGEUICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE13AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRhFCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAATYfAAAAFwABNdwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRhKgACBGEUICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABNi0AATYuAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATXcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBGEUICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAE13AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRhFCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABNdwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEYRQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATXcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGEUICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE13AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRhFCAgICIBKgG8ICIAACNkAAAAhAAAAJQABNnwAAAAOAAAAKAABNn0AAAAjAAAA3QABNn4AATHpAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABNoZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGEKAZYA5gFyAAIAECIEYUdMAAAA6AAAAOwAAAA4AATaIAAE2kAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABNpEAATaSAAE2kwABNpQAATaVAAE2lgABNpeBGFKBGFOBGFSBGFWBGFaBGFeBGFiAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABNd0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYUAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATXdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBGFAICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE13QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRhQCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwABNd0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBGFAICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE13QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRhQCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABNd0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYUAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATXdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGFAICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAE3AwAAACEAAAEmAAABJwABNwQAAAAjAAABJQABNwUAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIEAAADsAAAA7AABNw0AAAAxAAAA7AAAAN4AAADsAAACBgABMd0AAADsAAAA7AABNxUAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBF98ICIEYWwiAOQiAioEX9ggIgRhaCBKs+bSW0wAAADoAAAA7AAAADgABNxkAATccAAAAoKIAAAIPAAACEIBkgGWiAAE3HQABNx6BGFyBGGeAVdkAAAAhAAAAJQABNyEAAAAOAAAAKAABNyIAAAAjAAAA3QABNyMAATHqAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABNytfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGFmAZIA5gFyAAIAECIEYXdMAAAA6AAAAOwAAAA4AATctAAE3NgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABNzcAATc4AAE3OQABNzoAATc7AAE3PAABNz0AATc+gRhegRhfgRhggRhigRhjgRhkgRhlgRhmgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATcdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGFwICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE3HQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRhcCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAATdgAAAAFwABNx0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRhhgACBGFwICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABN24AATdvAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATcdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBGFwICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAE3HQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRhcCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABNx0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEYXAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATcdAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGFwICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE3HQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRhcCAgICIBKgG8ICIAACNkAAAAhAAAAJQABN70AAAAOAAAAKAABN74AAAAjAAAA3QABN78AATHqAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABN8dfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGFmAZYA5gFyAAIAECIEYaNMAAAA6AAAAOwAAAA4AATfJAAE30QAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABN9IAATfTAAE31AABN9UAATfWAAE31wABN9iBGGmBGGqBGGuBGGyBGG2BGG6BGG+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABNx4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYZwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATceAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBGGcICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE3HgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRhnCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwABNx4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBGGcICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE3HgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRhnCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABNx4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYZwgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATceAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGGcICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAE4RAAAACEAAAEmAAABJwABOEUAAAAjAAABJQABOEYAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIEAAADsAAAA7AABOE4AAAAxAAAA7AAAAN4AAADsAAACBgABMd4AAADsAAAA7AABOFYAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBF98ICIEYcgiAOQiAioEX9wgIgRhxCBKThZU20wAAADoAAAA7AAAADgABOFoAAThdAAAAoKIAAAIPAAACEIBkgGWiAAE4XgABOF+BGHOBGH6AVdkAAAAhAAAAJQABOGIAAAAOAAAAKAABOGMAAAAjAAAA3QABOGQAATHrAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABOGxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGHCAZIA5gFyAAIAECIEYdNMAAAA6AAAAOwAAAA4AAThuAAE4dwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABOHgAATh5AAE4egABOHsAATh8AAE4fQABOH4AATh/gRh1gRh2gRh3gRh5gRh6gRh7gRh8gRh9gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATheAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGHMICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE4XgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRhzCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAATihAAAAFwABOF4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRh4gACBGHMICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABOK8AATiwAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATheAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBGHMICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE4XgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRhzCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABOF4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEYcwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATheAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGHMICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE4XgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRhzCAgICIBKgG8ICIAACNkAAAAhAAAAJQABOP4AAAAOAAAAKAABOP8AAAAjAAAA3QABOQAAATHrAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABOQhfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGHCAZYA5gFyAAIAECIEYf9MAAAA6AAAAOwAAAA4AATkKAAE5EgAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABORMAATkUAAE5FQABORYAATkXAAE5GAABORmBGICBGIGBGIKBGIOBGISBGIWBGIaAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABOF8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYfggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAThfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBGH4ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE4XwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRh+CAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADG+AAAAFwABOF8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQRrgACBGH4ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE4XwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRh+CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABOF8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYfggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAThfAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGH4ICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAE5hQAAACEAAAEmAAABJwABOYYAAAAjAAABJQABOYcAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIEAAADsAAAA7AABOY8AAAAxAAAA7AAAAN4AAADsAAACBgA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A7AABOklfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGIeAZYA5gFyAAIAECIEYltMAAAA6AAAAOwAAAA4AATpLAAE6UwAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABOlQAATpVAAE6VgABOlcAATpYAAE6WQABOlqBGJeBGJiBGJmBGJqBGJuBGJyBGJ2AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACKOAAAAFwABOaAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgQM6gACBGJUICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE5oAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRiVCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABOaAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYlQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAivAAAABcAATmgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEDPoAAgRiVCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABOaAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYlQgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATmgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBGJUICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE5oAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRiVCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABOsYAAAAhAAABJgAAAScAATrHAAAAIwAAASUAATrIAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACBAAAA7AAAAOwAATrQAAAAMQAAAOwAAADeAAAA7AAABKIAATHgAAAA7AAAAOwAATrYAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgRffCAiBGKAIgDkIgQLFgRf5CAiBGJ8IEt6PEiTTAAAAOgAAADsAAAAOAAE63AABOt8AAACgogAAAg8AAASsgGSApaIAATrgAAE64YEYoYEYrIBV2QAAACEAAAAlAAE65AAAAA4AAAAoAAE65QAAACMAAADdAAE65gABMe0AAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAE67l8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEYnoBkgDmAXIAAgAQIgRii0wAAADoAAAA7AAAADgABOvAAATr5AAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAE6+gABOvsAATr8AAE6/QABOv4AATr/AAE7AAABOwGBGKOBGKSBGKWBGKeBGKiBGKmBGKqBGKuAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABOuAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEYoQgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAATrgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBGKEICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABOyMAAAAXAAE64AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBGKaAAIEYoQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAE7MQABOzIAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABOuAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEYoQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAATrgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBGKEICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE64AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRihCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABOuAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEYoQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATrgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBGKEICAgIgEqAbwgIgAAI2QAAACEAAAAlAAE7gAAAAA4AAAAoAAE7gQAAACMAAADdAAE7ggABMe0AAASsAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAE7il8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEYnoClgDmAXIAAgAQIgRit0wAAADoAAAA7AAAADgABO4wAATuUAAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAAE7lQABO5YAATuXAAE7mAABO5kAATuaAAE7m4EYroEYr4EYsIEYsYEYsoEYs4EYtIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAE64QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgRisCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwABOuEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEYrAgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAATrhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC+gACBGKwICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAIUAAAAXAAE64QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBFo2AAIEYrAgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAATrhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGKwICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE64QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgRisCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAASEMAAAAFwABOuEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgRfLgACBGKwICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAE8BwAAACEAAAEmAAA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AJQAAASkAAAEqAAAAKAAAASsAAAAXAAAHqQAAABcAAT1jAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAID7gACBGNoICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE9YwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRjaCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABPWMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEY2ggICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAH1wAAABcAAT1jAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAID/gACBGNoICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE9YwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRjaCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABPWMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEY2ggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAT1jAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGNoICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAE+iQAAACEAAAEmAAABJwABPooAAAAjAAABJQABPosAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIEAAADsAAAA7AABPpMAAAAxAAAA7AAAAN4AAADsAAACBgABMeMAAADsAAAA7AABPpsAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBF98ICIEY5QiAOQiAioEX+wgIgRjkCBMAAAABCNfXL9MAAAA6AAAAOwAAAA4AAT6fAAE+ogAAAKCiAAACDwAAAhCAZIBlogABPqMAAT6kgRjmgRjxgFXZAAAAIQAAACUAAT6nAAAADgAAACgAAT6oAAAAIwAAAN0AAT6pAAEx8AAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAT6xXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRjjgGSAOYBcgACABAiBGOfTAAAAOgAAADsAAAAOAAE+swABPrwAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAT69AAE+vgABPr8AAT7AAAE+wQABPsIAAT7DAAE+xIEY6IEY6YEY6oEY7IEY7YEY7oEY74EY8IBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE+owAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRjmCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABPqMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEY5ggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAE+5gAAABcAAT6jAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEY64AAgRjmCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAT70AAE+9QAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAE+owAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRjmCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABPqMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEY5ggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAT6jAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBGOYICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAE+owAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRjmCAgICIBKgG4ICIAACN8QDwAAASIAAAE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AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAo8AAAAFwABRRoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgQEsgACBGWkICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAFFGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvIAAgRlpCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACFAAAAFwABRRoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgRaNgACBGWkICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAFFGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAroAAgRlpCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABRRoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEZaQgICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAEhDgAAABcAAUUaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIEZRIAAgRlpCAgICIBKgLoICIAACN8QEgAAASIAAAEjAAABJAABRkAAAAAhAAABJgAAAScAAUZBAAAAIwAAASUAAUZCAAABKAAAAA4AAAAlAAABKQAAASoAAAA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AAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgRmXCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwABR5wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEZlwgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAUecAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC8gACBGZcICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAJEAAAAXAAFHnAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBAiKAAIEZlwgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAUecAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAICugACBGZcICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFHnAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgRmXCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAABevAAAAFwABR5wAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAA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ZyIEZyYEZyoEZy4EZzIEZzYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFKHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgRnFCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABSh4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEZxQgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAUoeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBGcUICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAAFKHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEZxQgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAUoeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBGcUICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFKHgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRnFCAgICIBKgIAICIAACN8QDwAAASIAAAE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AADsAAAAOAAFNSwABTVMAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAU1UAAFNVQABTVYAAU1XAAFNWAABTVkAAU1agRn1gRn2gRn3gRn4gRn5gRn6gRn7gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAUygAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBGfMICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFMoAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRnzCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABTKAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEZ8wgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAAUygAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBGfMICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFMoAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRnzCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAA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I3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFN4QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRoKCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAUIRAAAAFwABTeEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgRklgACBGgoICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFN4QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRoKCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABTeEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEaCggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAU3hAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBGgoICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAFPBwAAACEAAAEmAAABJwABTwgAAAAjAAABJQABTwkAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIUAAADsAAAA7AABTxEAAAAxAAAA7AAAAN4AAADsAAAEogAAK4EAAADsAAAA7AABTxkAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3d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A7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBGi2AAIEaKggICAiASoA+CAiAAAjSAAAAOwAAAA4AAVBtAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABUDkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEaKggICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAFQgAAAABcAAVA5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEaMIAAgRoqCAgICIBKgEAICIAACNIAAAA7AAAADgABUI4AAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFQOQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgRoqCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAVChAAAAFwABUDkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgRozgACBGioICAgIgEqAQggIgAAI0gAAADsAAAAOAAFQrwAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAVA5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBGioICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgA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AACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFTnQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgRp6CAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAASEVAAAAFwABU50AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgRoTgACBGnoICAgIgEqAuggIgAAI0gAAADsAAAAOAAFUwwAAATyhAAFUxIEahIBJ1wAAAA4AAAAlAAAqhAAAACEAAAAoAAAqhQAAACMAACqGAAAAFwAAAJwAAACcAAFUywAAAHMAAAAxgQlogACBGieBGieBGoWBDlMSiaKcx98QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABTyIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVhAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEaIQgICAiASoC4CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAU8iAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYgAAAOwAAADsAAAAFwAAAOyAAIBSgACBGiEICAgIgEqAuQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABUPoAAAAXAAFPIgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWMAAADsAAAA7AAAABcAAADsgACBGmyAAIEaIQgICAiASoC6CAiAAAjSAAAAOwAAAA4AAVT8AAABPKCASdIAAAA7AAAADgABVP8AAAE8ogABVQAAASAFgRqLgRaLgEnXAAAADgAAACUAACqEAAAAIQAAACgAACqFAAAAIwAAKoYAAAAXAAAAlwAAAJcAAVUIAAAAhQAAADGBCWiAAIEajIEajIEa/4EWjd8QEAABVQsAAVUMAAFVDQABVQ4AAAAhAAFVDwABVRAAAAAjAAFVEQABVRIAAAAOAAAAJQABVRMAAVUUAAAAKAAAAN0AAADeAAFVFgAAACkAAAApAAAAFAABVRoAAADkAAAAMQAAACkAAADeAAAA5wAAAGUAAADeAAFVIQABVSIAAADsXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zZHVwbGljYXRlc18QJFhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNvcmRlcmVkXxAhWERCdWNrZXRGb3JHZW5lcmFsaXphdGlvbnNzdG9yYWdlgDmBGp+ABIAEgAKBGo6BA82ABIA5gQUogC6AOYEa/oEajQgSrWSzkNMAAAA6AAAAOwAAAA4AAVUmAAFVKAAAAKChAAAA8YA7oQABVSmBGo+AVdkAAAAhAAAAJQABVSwAAAAOAAAAKAABVS0AAAAjAAAA3QABVS4AAACXAAAA8QAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABVTZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBGoyAO4A5gFyAAIAECIEakNMAAAA6AAAAOwAAAA4AAVU4AAFVQgAAAKCpAAABBAAAAQUAAAEGAAABBwAAAQgAAAEJAAABCgAAAQsAAAEMgD6AP4BAgEGAQoBDgESARYBGqQABVUMAAVVEAAFVRQABVUYAAVVHAAFVSAABVUkAAVVKAAFVS4EakYEak4EalIEaloEal4EamYEamoEanIEanYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABVU8AAAAXAAFVKQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBGpKAAIEajwgICAiASoA+CAiAAAjSAAAAOwAAAA4AAVVdAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABVSkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEajwgICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAFVcAAAABcAAVUpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEalYAAgRqPCAgICIBKgEAICIAACNIAAAA7AAAADgABVX4AAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFVKQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgRqPCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAVWRAAAAFwABVSkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgRqYgACBGo8ICAgIgEqAQggIgAAI0gAAADsAAAAOAAFVnwAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASs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AAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACBASyAAIEaxwgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAVdLAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC8gACBGscICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAJcAAAAXAAFXSwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBGoyAAIEaxwgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAVdLAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAICugACBGscICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFXSwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgRrHCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAVXoAAAAFwABV0sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgRqigACBGscICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAFYcQAAACEAAAEmAAABJwABWHIAAAAjAAABJQABWHMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJcAAADsAAAA7AABWHsAAAA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AgACBGvUICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFZzQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRr1CAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABWc0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEa9QgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAANxgAAABcAAVnNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEBgIAAgRr1CAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABWc0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEa9QgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAVnNAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBGvUICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFZzQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRr1CAgICIBKgIEICIAACNIAAAA7AAAADgA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nZYEbX4ClgDmAXIAAgAQIgRtu0wAAADoAAAA7AAAADgABYO8AAWD3AAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAAFg+AABYPkAAWD6AAFg+wABYPwAAWD9AAFg/oEbb4EbcIEbcYEbcoEbc4EbdIEbdYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAFgRAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgRttCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAo8AAAAFwABYEQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgQEsgACBG20ICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAFgRAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvIAAgRttCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACRAAAAFwABYEQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQIigACBG20ICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAFgRAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAroAAgRttCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAA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AAAErAAAAFwAACjwAAAAXAAFi9gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACBASyAAIEbnwgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAWL2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC+gACBG58ICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAHkAAAAXAAFi9gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBBfWAAIEbnwgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWL2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBG58ICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFi9gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgRufCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAEaWAAAAFwABYvYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQ4/gACBG58ICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAFkHAAAACEAAAEmAAABJwABZB0AAAAjAAABJQABZB4AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAA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AAALJAAAA7AAAAOwAAAAXAAAA7IAAgRvQgACBG80ICAgIgEqAewgIgAAIUTHfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWV4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBG80ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFleAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRvNCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwABZXgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBG80ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFleAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgRvNCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABZXgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEbzQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAWV4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBG80ICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAFmnwAAACEAAAEmAAABJwABZqAAAAAjAAABJQABZqEAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAHMAAADsAAAA7AABZqkAAAAxAAAA7AAAAN4AAADsAAAEogAAtAwAAADsAAAA7AABZrEAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBDlMICIEb2QiAOQiBAsWBDncICIEb2AgSnaaJKNMAAAA6AAAAOwAAAA4AAWa1AAFmuAAAAKCiAAACDwAABKyAZIClogABZrkAAWa6gRvagRvlgFXZAAAAIQAAACUAAWa9AAAADgAAACgAAWa+AAAAIwAAAN0AAWa/AAC0IwAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAWbHXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRvXgGSAOYBcgACABAiBG9vTAAAAOgAAADsAAAAOAAFmyQABZtIAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAWbTAAFm1AABZtUAAWbWAAFm1wABZtgAAWbZAAFm2oEb3IEb3YEb3oEb4IEb4YEb4oEb44Eb5IBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFmuQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRvaCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABZrkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEb2ggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAFm/AAAABcAAWa5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEb34AAgRvaCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAWcKAAFnCwAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFmuQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRvaCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwABZrkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEb2ggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWa5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBG9oICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFmuQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRvaCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABZrkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEb2ggICAiASoBvCAiAAAjZAAAAIQAAACUAAWdZAAAADgAAACgAAWdaAAAAIwAAAN0AAWdbAAC0IwAABKwAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAWdjXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRvXgKWAOYBcgACABAiBG+bTAAAAOgAAADsAAAAOAAFnZQABZ20AAACgpwAABV0AAAVeAAAFXwAABWAAAAVhAAAFYgAABWOAtIC1gLaAt4C4gLmAuqcAAWduAAFnbwABZ3AAAWdxAAFncgABZ3MAAWd0gRvngRvogRvpgRvqgRx2gRx3gRx4gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAWa6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXQAAAOwAAADsAAAAFwAAAOyAAIC8gACBG+UICAgIgEqAtAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAACjwAAAAXAAFmugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACBASyAAIEb5QgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAWa6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC8gACBG+UICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAIQAAAAXAAFmugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBG+uAAIEb5QgICAiASoC3CAiAAAjfEBAAAWezAAFntAABZ7UAAWe2AAAAIQABZ7cAAWe4AAAAIwABZ7kAAWe6AAAADgAAACUAAWe7AAFnvAAAACgAAADdAAAA3gABZ74AAAApAAAAKQAAABQAAWfCAAAA5AAAADEAAAApAAAA3gAAAOcAAABSAAAA3gABZ8kAAWfKAAAA7F8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZV8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc2R1cGxpY2F0ZXNfECRYREJ1Y2tldEZvckdlbmVyYWxpemF0aW9uc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zb3JkZXJlZF8QIVhEQnVja2V0Rm9yR2VuZXJhbGl6YXRpb25zc3RvcmFnZYA5gRv+gASABIACgRvtgQPNgASAOYEFKIAbgDmBHHWBG+wIEoeM7TPTAAAAOgAAADsAAAAOAAFnzgABZ9AAAACgoQAAAPGAO6EAAWfRgRvugFXZAAAAIQAAACUAAWfUAAAADgAAACgAAWfVAAAAIwAAAN0AAWfWAAAAhAAAAPEAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAWfeXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRvrgDuAOYBcgACABAiBG+/TAAAAOgAAADsAAAAOAAFn4AABZ+oAAACgqQAAAQQAAAEFAAABBgAAAQcAAAEIAAABCQAAAQoAAAELAAABDIA+gD+AQIBBgEKAQ4BEgEWARqkAAWfrAAFn7AABZ+0AAWfuAAFn7wABZ/AAAWfxAAFn8gABZ/OBG/CBG/KBG/OBG/WBG/aBG/iBG/mBG/uBG/yAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAWf3AAAAFwABZ9EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEEAAAA7AAAAOwAAAAXAAAA7IAAgRvxgACBG+4ICAgIgEqAPggIgAAI0gAAADsAAAAOAAFoBQAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAWfRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBQAAAOwAAADsAAAAFwAAAOyAAIAAgACBG+4ICAgIgEqAPwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABaBgAAAAXAAFn0QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQYAAADsAAAA7AAAABcAAADsgACBG/SAAIEb7ggICAiASoBACAiAAAjSAAAAOwAAAA4AAWgmAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABZ9EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEHAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEb7ggICAiASoBBCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAFoOQAAABcAAWfRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCAAAAOwAAADsAAAAFwAAAOyAAIEb94AAgRvuCAgICIBKgEIICIAACNIAAAA7AAAADgABaEcAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFn0QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQkAAADsAAAA7AAAABcAAADsgACAUoAAgRvuCAgICIBKgEMICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAWhaAAAAFwABZ9EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEKAAAA7AAAAOwAAAAXAAAA7IAAgRv6gACBG+4ICAgIgEqARAgIgAAI0wAAADoAAAA7AAAADgABaGgAAWhpAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABtQAAABcAAWfRAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCwAAAOwAAADsAAAAFwAAAOyAAIBXgACBG+4ICAgIgEqARQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABaHwAAAAXAAFn0QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQwAAADsAAAA7AAAABcAAADsgACBG/2AAIEb7ggICAiASoBGCAiAAAhfEC1QZXJzaXN0ZWRMYXRlc3REaXNjdXNzaW9uU2VuZGVyU2VxdWVuY2VOdW1iZXLTAAAAOgAAADsAAAAOAAFoiwABaJAAAACgpAABaIwAAWiNAAArgQABaI+BG/+BHACBA/aBHAGkAAFokQABaJIAAWiTAAFolIEcAoEcMIEcR4EcXoBVXxAPY29udGFjdElkZW50aXR5XxAWc2VuZGVyVGhyZWFkSWRlbnRpZmllcl8QFGxhdGVzdFNlcXVlbmNlTnVtYmVy3xASAAABIgAAASMAAAEkAAFomgAAACEAAAEmAAABJwABaJsAAAAjAAABJQABaJwAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIQAAADsAAAA7AABaKQAAAAxAAAA7AAAAN4AAADsAAAEogABaIwAAADsAAAA7AABaKwAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBG+sICIEcBAiAOQiBAsWBG/8ICIEcAwgTAAAAAR9tDlDTAAAAOgAAADsAAAAOAAFosAABaLMAAACgogAAAg8AAASsgGSApaIAAWi0AAFotYEcBYEcEIBV2QAAACEAAAAlAAFouAAAAA4AAAAoAAFouQAAACMAAADdAAFougABaJEAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAFowl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEcAoBkgDmAXIAAgAQIgRwG0wAAADoAAAA7AAAADgABaMQAAWjNAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAFozgABaM8AAWjQAAFo0QABaNIAAWjTAAFo1AABaNWBHAeBHAiBHAmBHAuBHAyBHA2BHA6BHA+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABaLQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEcBQgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAWi0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBHAUICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABaPcAAAAXAAFotAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBHAqAAIEcBQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAFpBQABaQYAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABaLQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEcBQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAWi0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAICugACBHAUICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFotAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgRwFCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABaLQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEcBQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWi0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHAUICAgIgEqAbwgIgAAI2QAAACEAAAAlAAFpVAAAAA4AAAAoAAFpVQAAACMAAADdAAFpVgABaJEAAASsAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAFpXl8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEcAoClgDmAXIAAgAQIgRwR0wAAADoAAAA7AAAADgABaWAAAWloAAAAoKcAAAVdAAAFXgAABV8AAAVgAAAFYQAABWIAAAVjgLSAtYC2gLeAuIC5gLqnAAFpaQABaWoAAWlrAAFpbAABaW0AAWluAAFpb4EcEoEcE4EcFIEcFYEcFoEcF4EcGIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAFotQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgRwQCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwABaLUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEcEAgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAWi1AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC+gACBHBAICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAJEAAAAXAAFotQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBAiKAAIEcEAgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWi1AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHBAICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFotQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgRwQCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAABeyAAAAFwABaLUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgRwZgACBHBAICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAFp2wAAACEAAAEmAAABJwABadwAAAAjAAABJQABad0AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJEAAADsAAAA7AABaeUAAAAxAAAA7AAAAN4AAADsAAAEogAAF5QAAADsAAAA7AABae0AAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBAiIICIEcGwiAOQiBAsWBAk8ICIEcGggSMLsJo9MAAAA6AAAAOwAAAA4AAWnxAAFp9AAAAKCiAAACDwAABKyAZIClogABafUAAWn2gRwcgRwngFXZAAAAIQAAACUAAWn5AAAADgAAACgAAWn6AAAAIwAAAN0AAWn7AAAXsgAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAWoDXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRwZgGSAOYBcgACABAiBHB3TAAAAOgAAADsAAAAOAAFqBQABag4AAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAWoPAAFqEAABahEAAWoSAAFqEwABahQAAWoVAAFqFoEcHoEcH4EcIIEcIoEcI4EcJIEcJYEcJoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFp9QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgRwcCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABafUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEcHAgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAFqOAAAABcAAWn1AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEcIYAAgRwcCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAWpGAAFqRwAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFp9QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgRwcCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwABafUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEcHAgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWn1AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBHBwICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFp9QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgRwcCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABafUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEcHAgICAiASoBvCAiAAAjZAAAAIQAAACUAAWqVAAAADgAAACgAAWqWAAAAIwAAAN0AAWqXAAAXsgAABKwAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAWqfXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgRwZgKWAOYBcgACABAiBHCjTAAAAOgAAADsAAAAOAAFqoQABaqkAAACgpwAABV0AAAVeAAAFXwAABWAAAAVhAAAFYgAABWOAtIC1gLaAt4C4gLmAuqcAAWqqAAFqqwABaqwAAWqtAAFqrgABaq8AAWqwgRwpgRwqgRwrgRwsgRwtgRwugRwvgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAWn2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXQAAAOwAAADsAAAAFwAAAOyAAIC8gACBHCcICAgIgEqAtAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAACjwAAAAXAAFp9gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACBASyAAIEcJwgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAWn2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC8gACBHCcICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAIQAAAAXAAFp9gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBG+uAAIEcJwgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAWn2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAICugACBHCcICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFp9gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgRwnCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAWiRAAAAFwABafYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgRwCgACBHCcICAgIgEqAugg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AAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABXYAAAAXAAFseAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV0AAADsAAAA7AAAABcAAADsgACAvIAAgRxVCAgICIBKgLQICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAWFAAAAFwABbHgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVeAAAA7AAAAOwAAAAXAAAA7IAAgL6AAIEcVQgICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAWx4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC+gACBHFUICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAHMAAAAXAAFseAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBDlOAAIEcVQgICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAWx4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHFUICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFseAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgRxVCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAALQjAAAAFwABbHgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgRvXgACBHFUICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAFtngAAACEAAAEmAAABJwABbZ8AAAAjAAABJQABbaAAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAIQAAADsAAAA7AABbagAAAAxAAAA7AAAAN4AAADsAAACBgABaI8AAADsAAAA7AABbbAAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBG+sICIEcYAiAOQiAioEcAQgIgRxfCBJ+dFlW0wAAADoAAAA7AAAADgABbbQAAW23AAAAoKIAAAIPAAACEIBkgGWiAAFtuAABbbmBHGGBHGyAVdkAAAAhAAAAJQABbbwAAAAOAAAAKAABbb0AAAAjAAAA3QABbb4AAWiUAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABbcZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHF6AZIA5gFyAAIAECIEcYtMAAAA6AAAAOwAAAA4AAW3IAAFt0QAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABbdIAAW3TAAFt1AABbdUAAW3WAAFt1wABbdgAAW3ZgRxjgRxkgRxlgRxngRxogRxpgRxqgRxrgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAW24AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHGEICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFtuAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRxhCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAW37AAAAFwABbbgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRxmgACBHGEICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABbgkAAW4KAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAW24AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHGEICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFtuAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgRxhCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABbbgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEcYQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAW24AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHGEICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFtuAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRxhCAgICIBKgG8ICIAACNkAAAAhAAAAJQABblgAAAAOAAAAKAABblkAAAAjAAAA3QABbloAAWiUAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABbmJfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHF6AZYA5gFyAAIAECIEcbdMAAAA6AAAAOwAAAA4AAW5kAAFubAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABbm0AAW5uAAFubwABbnAAAW5xAAFucgABbnOBHG6BHG+BHHCBHHGBHHKBHHOBHHSAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACKOAAAAFwABbbkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgQM6gACBHGwICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFtuQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRxsCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABbbkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEcbAgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAivAAAABcAAW25AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEDPoAAgRxsCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABbbkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEcbAgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAW25AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBHGwICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFtuQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgRxsCAgICIBKgIEICIAACNIAAAA7AAAADgABbt8AAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAFmugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAroAAgRvlCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABZroAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIE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yYWdlgRyQgGWAOYBcgACABAiBHJ/TAAAAOgAAADsAAAAOAAFxFgABcR4AAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAXEfAAFxIAABcSEAAXEiAAFxIwABcSQAAXElgRyggRyhgRyigRyjgRykgRylgRymgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAXBrAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBHJ4ICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFwawAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgRyeCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABcGsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEcnggICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAivAAAABcAAXBrAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEDPoAAgRyeCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABcGsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEcnggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAA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AAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEctYAAgRyvCAgICIBKgEAICIAACNIAAAA7AAAADgABchwAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFxxwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgRyvCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAXIvAAAAFwABcccAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgRy4gACBHK8ICAgIgEqAQggIgAAI0gAAADsAAAAOAAFyPQAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXHHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHK8ICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABclAAAAAXAAFxxwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBHLuAAIEcrwgICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAAFyXgABcl8AAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwABcccAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIEcrwgICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAFycgAAABcAAXHHAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABDAAAAOwAAADsAAAAFwAAAOyAAIEcvoAAgRyvCAgICIBKgEYICIAACF8QG1BlcnNpc3RlZE9uZVRvT25lRGlzY3Vzc2lvbtMAAAA6AAAAOwAAAA4AAXKBAAFyhAAAAKCiAAFyggABcoOBHMCBHMGiAAFyhQABcoaBHMKBHNmAVV8QGnJhd0NvbnRhY3RJZGVudGl0eUlkZW50aXR5XxAScmF3Q29udGFjdElkZW50aXR53xASAAABIgAAASMAAAEkAAFyiwAAACEAAAEmAAABJwABcowAAAAjAAABJQABco0AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJ8AAADsAAAA7AABcpUAAAAxAAAA7AAAAN4AAADsAAACBgABcoIAAADsAAAA7AABcp0AAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBHKwICIEcxAiAOQiAioEcwAgIgRzDCBJeVKTU0wAAADoAAAA7AAAADgABcqEAAXKkAAAAoKIAAAIPAAACEIBkgGWiAAFypQABcqaBHMWBHNCAVdkAAAAhAAAAJQABcqkAAAAOAAAAKAABcqoAAAAjAAAA3QABcqsAAXKFAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABcrNfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHMKAZIA5gFyAAIAECIEcxtMAAAA6AAAAOwAAAA4AAXK1AAFyvgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABcr8AAXLAAAFywQABcsIAAXLDAAFyxAABcsUAAXLGgRzHgRzIgRzJgRzLgRzMgRzNgRzOgRzPgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXKlAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHMUICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFypQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRzFCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAXLoAAAAFwABcqUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRzKgACBHMUICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABcvYAAXL3AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXKlAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHMUICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAFypQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRzFCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABcqUAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEcxQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAXKlAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHMUICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAFypQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgRzFCAgICIBKgG8ICIAACNkAAAAhAAAAJQABc0UAAAAOAAAAKAABc0YAAAAjAAAA3QABc0cAAXKFAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABc09fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHMKAZYA5gFyAAIAECIEc0dMAAAA6AAAAOwAAAA4AAXNRAAFzWQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABc1oAAXNbAAFzXAABc10AAXNeAAFzXwABc2CBHNKBHNOBHNSBHNWBHNaBHNeBHNiAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABcqYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEc0AgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXKmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBHNAICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFypgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgRzQCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwABcqYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEc0AgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAXKmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBHNAICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAFypgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgRzQCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABcqYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEc0AgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAXPMAAAAIQAAASYAAAEnAAFzzQAAACMAAAElAAFzzgAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAnwAAAOwAAADsAAFz1gAAADEAAADsAAAA3gAAAOwAAASiAAFygwAAAOwAAADsAAFz3gAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2F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4AAF1QQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABdUIAAXVDAAF1RAABdUUAAXVGAAF1RwABdUgAAXVJgRz2gRz3gRz4gRz6gRz7gRz8gRz9gRz+gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXUoAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHPQICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAF1KAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgRz0CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAXVrAAAAFwABdSgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgRz5gACBHPQICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABdXkAAXV6AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXUoAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHPQICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAF1KAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgRz0CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgA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AAXkVAAF5FgABeRcAAXkYgR1FgR1GgR1HgR1JgR1KgR1LgR1MgR1NgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXj3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHUMICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAF49wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgR1DCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAXk6AAAAFwABePcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR1IgACBHUMICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABeUgAAXlJAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXj3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHUMICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAF49wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgR1DCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABePcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEdQwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAXj3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHUMICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAF49wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgR1DCAgICIBKgG8ICIAACNkAAAAhAAAAJQABeZcAAAAOAAAAKAABeZgAAAAjAAAA3QABeZkAAXjVAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABeaFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHUCAZYA5gFyAAIAECIEdT9MAAAA6AAAAOwAAAA4AAXmjAAF5qwAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABeawAAXmtAAF5rgABea8AAXmwAAF5sQABebKBHVCBHVGBHVKBHVOBHVSBHVWBHVaAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABePgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEdTggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXj4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBHU4ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAF4+AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgR1OCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwABePgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBHU4ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAF4+AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgR1OCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABePgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEdTggICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAXj4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHU4ICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAF6HgAAACEAAAEmAAABJwABeh8AAAAjAAABJQABeiAAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJMAAADsAAAA7AABeigAAAAxAAAA7AAAAN4AAADsAAACBgABeNEAAADsAAAA7AABejAAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBHSoICIEdWQiAOQiAioEdPwgIgR1YCBLJljRF0wAAADoAAAA7AAAADgABejQAAXo3AAAAoKIAAAIPAAACEIBkgGWiAAF6OAABejmBHVqBHWWAVdkAAAAhAAAAJQABejwAAAAOAAAAKAABej0AAAAjAAAA3QABej4AAXjWAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABekZfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHVeAZIA5gFyAAIAECIEdW9MAAAA6AAAAOwAAAA4AAXpIAAF6UQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABelIAAXpTAAF6VAABelUAAXpWAAF6VwABelgAAXpZgR1cgR1dgR1egR1ggR1hgR1igR1jgR1kgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXo4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHVoICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAF6OAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgR1aCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAXp7AAAAFwABejgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR1fgACBHVoICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABeokAAXqKAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXo4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHVoICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAF6OAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgR1aCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABejgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEdWggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAXo4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHVoICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAF6OAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgR1aCAgICIBKgG8ICIAACNkAAAAhAAAAJQABetgAAAAOAAAAKAABetkAAAAjAAAA3QABetoAAXjWAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABeuJfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHVeAZYA5gFyAAIAECIEdZtMAAAA6AAAAOwAAAA4AAXrkAAF67AAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABeu0AAXruAAF67wABevAAAXrxAAF68gABevOBHWeBHWiBHWmBHWqBHWuBHWyBHW2AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABejkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEdZQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXo5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBHWUICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAF6OQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgR1lCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwABejkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEdZQgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAXo5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBHWUICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAF6OQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgR1lCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABejkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEdZQgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAXtfAAAAIQAAASYAAAEnAAF7YAAAACMAAAElAAF7YQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAkwAAAOwAAADsAAF7aQAAADEAAADsAAAA3gAAAOwAAASiAAA1LAAAAOwAAADsAAF7cQAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEdKggIgR1wCIA5CIECxYEEsggIgR1vCBLdznOz0wAAADoAAAA7AAAADgABe3UAAXt4AAAAoKIAAAIPAAAErIBkgKWiAAF7eQABe3qBHXGBHXyAVdkAAAAhAAAAJQABe30AAAAOAAAAKAABe34AAAAjAAAA3QABe38AAXjXAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABe4dfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHW6AZIA5gFyAAIAECIEdctMAAAA6AAAAOwAAAA4AAXuJAAF7kgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABe5MAAXuUAAF7lQABe5YAAXuXAAF7mAABe5kAAXuagR1zgR10gR11gR13gR14gR15gR16gR17gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXt5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHXEICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAF7eQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgR1xCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAXu8AAAAFwABe3kAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR12gACBHXEICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABe8oAAXvLAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAXt5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHXEICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAF7eQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgR1xCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABe3kAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEdcQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAXt5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHXEICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAF7eQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgR1xCAgICIBKgG8ICIAACNkAAAAhAAAAJQABfBkAAAAOAAAAKAABfBoAAAAjAAAA3QABfBsAAXjXAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABfCNfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHW6ApYA5gFyAAIAECIEdfdMAAAA6AAAAOwAAAA4AAXwlAAF8LQAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwABfC4AAXwvAAF8MAABfDEAAXwyAAF8MwABfDSBHX6BHX+BHYCBHYGBHYKBHYOBHYSAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwABe3oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEdfAgICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAXt6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBHXwICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAF7egAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgR18CAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACYAAAAFwABe3oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQPRgACBHXwICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAF7egAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgR18CAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABe3oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEdfAgICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAArjQAAABcAAXt6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIEdFoAAgR18CAgICIBKgLoICIAACN8QEgAAASIAAAEjAAABJAABfKAAAAAhAAABJgAAAScAAXy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AASsAAAAXAAAAFwAAABcAAX4rAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBHaMICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABfm4AAAAXAAF+KwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBHaiAAIEdowgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAF+fAABfn0AAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABfisAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEdowgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAX4rAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHaMICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAF+KwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgR2jCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABfisAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEdowgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAA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AAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGBbAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgR3uCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABgWwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEd7ggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYFsAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBHe4ICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAAGBbAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEd7ggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYFsAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBHe4ICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGBbAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgR3uCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABgWwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEd7ggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAYKSAAAAIQAAASYAAAEnAAGCkwAAACMAAAElAAGClAAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAnQAAAOwAAADsAAGCnAAAADEAAADsAAAA3gAAAOwAAASiAAA1LAAAAOwAAADsAAGCpAAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEdywgIgR35CIA5CIECxYEEsggIgR34CBKUT7l/0wAAADoAAAA7AAAADgABgqgAAYKrAAAAoKIAAAIPAAAErIBkgKWiAAGCrAABgq2BHfqBHgWAVdkAAAAhAAAAJQABgrAAAAAOAAAAKAABgrEAAAAjAAAA3QABgrIAAYFMAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABgrpfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHfeAZIA5gFyAAIAECIEd+9MAAAA6AAAAOwAAAA4AAYK8AAGCxQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABgsYAAYLHAAGCyAABgskAAYLKAAGCywABgswAAYLNgR38gR39gR3+gR4AgR4BgR4CgR4DgR4EgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYKsAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHfoICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGCrAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgR36CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAYLvAAAAFwABgqwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR3/gACBHfoICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABgv0AAYL+AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYKsAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHfoICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAGCrAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgR36CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABgqwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEd+ggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYKsAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOy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AAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGGHAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgR5ACAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAYZfAAAAFwABhhwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR5FgACBHkAICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABhm0AAYZuAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYYcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHkAICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAGGHAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgR5ACAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABhhwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEeQAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYYcAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBHkAICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACU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YREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBHm6AO4A5gFyAAIAECIEectMAAAA6AAAAOwAAAA4AAYi9AAGIxwAAAKCpAAABBAAAAQUAAAEGAAABBwAAAQgAAAEJAAABCgAAAQsAAAEMgD6AP4BAgEGAQoBDgESARYBGqQABiMgAAYjJAAGIygABiMsAAYjMAAGIzQABiM4AAYjPAAGI0IEec4EedYEedoEeeIEeeYEee4EefIEefoEef4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABiNQAAAAXAAGIrgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQQAAADsAAAA7AAAABcAAADsgACBHnSAAIEecQgICAiASoA+CAiAAAjSAAAAOwAAAA4AAYjiAAABPKCASd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABiK4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEFAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEecQgICAiASoA/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAGI9QAAABcAAYiuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABBgAAAOwAAADsAAAAFwAAAOyAAIEed4AAgR5xCAgICIBKgEAICIAACNIAAAA7AAAADgABiQMAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGIrgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQcAAADsAAAA7AAAABcAAADsgACAAIAAgR5xCAgICIBKgEEICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAYkWAAAAFwABiK4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAEIAAAA7AAAAOwAAAAXAAAA7IAAgR56gACBHnEICAgIgEqAQggIgAAI0gAAADsAAAAOAAGJJAAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYiuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABCQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHnEICAgIgEqAQwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABiTcAAAAXAAGIrgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAQoAAADsAAAA7AAAABcAAADsgACBHn2AAIEecQgICAiASoBECAiAAAjTAAAAOgAAADsAAAAOAAGJRQABiUYAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAG1AAAAFwABiK4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAELAAAA7AAAAOwAAAAXAAAA7IAAgFeAAIEecQgICAiASoBFCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAGJWQAAABcAAYiuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAABDAAAAOwAAADsAAAAFwAAAOyAAIEegIAAgR5xCAgICIBKgEYICIAACF8QHFBlcnNpc3RlZE1lc3NhZ2VSZWFjdGlvblNlbnTTAAAAOgAAADsAAAAOAAGJaAABiWkAAACgoKCAVdIAAAA7AAAADgABiWwAAAE8oQABhRmBHm2ASRJucwPg3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAF/bQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAroAAgR3FCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwABf20AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEdxQgICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAGBTAAAABcAAX9tAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIEd94AAgR3FCAgICIBKgLoICIAACN8QEgAAASIAAAEjAAABJAABiZ4AAAAhAAABJgAAAScAAYmfAAAAIwAAASUAAYmgAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACYAAAA7AAAAOwAAYmoAAAAMQAAAOwAAADeAAAA7AAAAgYAACt5AAAA7AAAAOwAAYmwAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQPRCAiBHokIgDkIgIqBA+8ICIEeiAgSoKOEV9MAAAA6AAAAOwAAAA4AAYm0AAGJtwAAAKCiAAACDwAAAhCAZIBlogABibgAAYm5gR6KgR6VgFXZAAAAIQAAACUAAYm8AAAADgAAACgAAYm9AAAAIwAAAN0AAYm+AAArkAAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAYnGXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgR6HgGSAOYBcgACABAiBHovTAAAAOgAAADsAAAAOAAGJyAABidEAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAYnSAAGJ0wABidQAAYnVAAGJ1gABidcAAYnYAAGJ2YEejIEejYEejoEekIEekYEekoEek4EelIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGJuAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgR6KCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABibgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEeiggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAGJ+wAAABcAAYm4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEej4AAgR6KCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAYoJAAGKCgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGJuAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgR6KCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwABibgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEeiggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYm4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBHooICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGJuAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgR6KCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABibgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEeiggICAiASoBvCAiAAAjZAAAAIQAAACUAAYpYAAAADgAAACgAAYpZAAAAIwAAAN0AAYpaAAArkAAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAYpiXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgR6HgGWAOYBcgACABAiBHpbTAAAAOgAAADsAAAAOAAGKZAABimwAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAYptAAGKbgABim8AAYpwAAGKcQABinIAAYpzgR6XgR6YgR6ZgR6agR6bgR6cgR6dgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYm5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBHpUICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGJuQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgR6VCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABibkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEelQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAANxgAAABcAAYm5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEBgIAAgR6VCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABibkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEelQgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYm5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBHpUICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGJuQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgR6VCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABit8AAAAhAAABJgAAAScAAYrgAAAAIwAAASUAAYrhAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACYAAAA7AAAAOwAAYrpAAAAMQAAAOwAAADeAAAA7AAAAgYAACt7AAAA7AAAAOwAAYrxAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQPRCAiBHqAIgDkIgIqBA/EICIEenwgS4vpm/NMAAAA6AAAAOwAAAA4AAYr1AAGK+AAAAKCiAAACDwAAAhCAZIBlogABivkAAYr6gR6hgR6sgFXZAAAAIQAAACUAAYr9AAAADgAAACgAAYr+AAAAIwAAAN0AAYr/AAArkgAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAYsHXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgR6egGSAOYBcgACABAiBHqLTAAAAOgAAADsAAAAOAAGLCQABixIAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAYsTAAGLFAABixUAAYsWAAGLFwABixgAAYsZAAGLGoEeo4EepIEepYEep4EeqIEeqYEeqoEeq4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGK+QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgR6hCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABivkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEeoQgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAGLPAAAABcAAYr5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEepoAAgR6hCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAYtKAAGLSwAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGK+QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgR6hCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABivkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEeoQgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYr5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBHqEICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGK+QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgR6hCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABivkAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEeoQgICAiASoBvCAiAAAjZAAAAIQAAACUAAYuZAAAADgAAACgAAYuaAAAAIwAAAN0AAYubAAArkgAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAYujXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgR6egGWAOYBcgACABAiBHq3TAAAAOgAAADsAAAAOAAGLpQABi60AAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAYuuAAGLrwABi7AAAYuxAAGLsgABi7MAAYu0gR6ugR6vgR6wgR6xgR6ygR6zgR60gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYr6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBHqwICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGK+gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgR6sCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABivoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEerAgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAA3gQAAABcAAYr6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEE3oAAgR6sCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABivoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEerAgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYr6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBHqwICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGK+gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgR6sCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABjCAAAAAhAAABJgAAAScAAYwhAAAAIwAAASUAAYwiAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACYAAAA7AAAAOwAAYwqAAAAMQAAAOwAAADeAAAA7AAAAgYAACt8AAAA7AAAAOwAAYwyAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQPRCAiBHrcIgDkIgIqBA/IICIEetggSNp6OEtMAAAA6AAAAOwAAAA4AAYw2AAGMOQAAAKCiAAACDwAAAhCAZIBlogABjDoAAYw7gR64gR7DgFXZAAAAIQAAACUAAYw+AAAADgAAACgAAYw/AAAAIwAAAN0AAYxAAAArkwAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAYxIXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgR61gGSAOYBcgACABAiBHrnTAAAAOgAAADsAAAAOAAGMSgABjFMAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAYxUAAGMVQABjFYAAYxXAAGMWAABjFkAAYxaAAGMW4EeuoEeu4EevIEevoEev4EewIEewYEewoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGMOgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgR64CAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABjDoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEeuAgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAGMfQAAABcAAYw6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEevYAAgR64CAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAYyLAAGMjAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGMOgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgR64CAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABjDoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEeuAgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAYw6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBHrgICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGMOgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgR64CAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABjDoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEeuAgICAiASoBvCAiAAAjZAAAAIQAAACUAAYzaAAAADgAAACgAAYzbAAAAIwAAAN0AAYzcAAArkwAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAYzkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgR61gGWAOYBcgACABAiBHsTTAAAAOgAAADsAAAAOAAGM5gABjO4AAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAYzvAAGM8AABjPEAAYzyAAGM8wABjPQAAYz1gR7FgR7GgR7HgR7IgR7JgR7KgR7LgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYw7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBHsMICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGMOwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgR7DCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABjDsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEewwgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAANxgAAABcAAYw7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEBgIAAgR7DCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABjDsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEewwgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAYw7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBHsMICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGMOwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgR7DCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABjWEAAAAhAAABJgAAAScAAY1iAAAAIwAAASUAAY1jAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACYAAAA7AAAAOwAAY1rAAAAMQAAAOwAAADeAAAA7AAAAgYAABeNAAAA7AAAAOwAAY1zAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQPRCAiBHs4IgDkIgIqBAkkICIEezQgSLEHIAtMAAAA6AAAAOwAAAA4AAY13AAGNegAAAKCiAAACDwAAAhCAZIBlogABjXsAAY18gR7PgR7agFXZAAAAIQAAACUAAY1/AAAADgAAACgAAY2AAAAAIwAAAN0AAY2BAAArlAAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAY2JXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgR7MgGSAOYBcgACABAiBHtDTAAAAOgAAADsAAAAOAAGNiwABjZQAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAY2VAAGNlgABjZcAAY2YAAGNmQABjZoAAY2bAAGNnIEe0YEe0oEe04Ee1YEe1oEe14Ee2IEe2YBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGNewAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgR7PCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABjXsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEezwgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAGNvgAAABcAAY17AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEe1IAAgR7PCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAY3MAAGNzQAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGNewAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgR7PCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABjXsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEezwgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAY17AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBHs8ICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGNewAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgR7PCAgICIB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AAZKaAAGSmwABkpwAAZKdAAGSngABkp8AAZKggR8tgR8ugR8vgR8xgR8ygR8zgR80gR81gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZJ/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBHysICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGSfwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgR8rCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAZLCAAAAFwABkn8AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR8wgACBHysICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABktAAAZLRAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZJ/AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBHysICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGSfwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgR8rCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABkn8AAADsAAAA7AAAAOw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ICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABk/cAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEfUggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAZP3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBH1IICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAIrwAAAAXAAGT9wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAz6AAIEfUggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAZP3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBH1IICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGT9wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgR9SCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABk/cAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEfUggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAZUdAAAAIQAAASYAAAEnAAGVHgAAACMAAAElAAGVHwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAfgAAAOwAAADsAAGVJwAAADEAAADsAAAA3gAAAOwAAAIGAAAfiwAAAOwAAADsAAGVLwAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEC2ggIgR9dCIA5CICKgQLwCAiBH1wIEpV7XDTTAAAAOgAAADsAAAAOAAGVMwABlTYAAACgogAAAg8AAAIQgGSAZaIAAZU3AAGVOIEfXoEfaYBV2QAAACEAAAAlAAGVOwAAAA4AAAAoAAGVPAAAACMAAADdAAGVPQAAH5kAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAGVRV8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEfW4BkgDmAXIAAgAQIgR9f0wAAADoAAAA7AAAADgABlUcAAZVQAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAGVUQABlVIAAZVTAAGVVAABlVUAAZVWAAGVVwABlViBH2CBH2GBH2KBH2SBH2WBH2aBH2eBH2iAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABlTcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEfXggICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAZU3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBH14ICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABlXoAAAAXAAGVNwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBH2OAAIEfXggICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAGViAABlYkAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABlTcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEfXggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZU3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBH14ICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGVNwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgR9eCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABlTcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEfXggICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZU3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE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AASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGXuQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgR+MCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAZf8AAAAFwABl7kAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR+RgACBH4wICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABmAoAAZgLAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZe5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBH4wICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAGXuQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgR+MCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABl7kAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEfjAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAZe5AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBH4wICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGXuQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgR+MCAgICIBKgG8ICIAACNkAAAAhAAAAJQABmFkAAAAOAAAAKAABmFoAAAAjAAAA3QABmFsAAB+bAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABmGNfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBH4mAZYA5gFyAAIAECIEfmNMAAAA6AAAAOwAAAA4AAZhlAAGYbQAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABmG4AAZhvAAGYcAABmHEAAZhyAAGYcwABmHSBH5mBH5qBH5uBH5yBH52BH56BH5+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABl7oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEflwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZe6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBH5cICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGXugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgR+XCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADeBAAAAFwABl7oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQTegACBH5cICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGXugAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgR+XCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABl7oAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEflwgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAZe6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBH5cICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAGY4AAAACEAAAEmAAABJwABmOEAAAAjAAABJQABmOIAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH4AAADsAAAA7AABmOoAAAAxAAAA7AAAAN4AAADsAAAEogAAH44AAADsAAAA7AABmPIAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBAtoICIEfogiAOQiBAsWBAvMICIEfoQgS683RhdMAAAA6AAAAOwAAAA4AAZj2AAGY+QAAAKCiAAACDwAABKyAZIClogABmPoAAZj7gR+jgR+ugFXZAAAAIQAAACUAAZj+AAAADgAAACgAAZj/AAAAIwAAAN0AAZkAAAAfnAAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAZkIXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgR+ggGSAOYBcgACABAiBH6TTAAAAOgAAADsAAAAOAAGZCgABmRMAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAZkUAAGZFQABmRYAAZkXAAGZGAABmRkAAZkaAAGZG4EfpYEfpoEfp4EfqYEfqoEfq4EfrIEfrYBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGY+gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgR+jCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABmPoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEfowgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAGZPQAAABcAAZj6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEfqIAAgR+jCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAZlLAAGZTAAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGY+gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgR+jCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAUUAAAAFwABmPoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgK6AAIEfowgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZj6AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBH6MICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGY+gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgR+jCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABmPoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEfowgICAiASoBvCAiAAAjZAAAAIQAAACUAAZmaAAAADgAAACgAAZmbAAAAIwAAAN0AAZmcAAAfnAAABKwAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAZmkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgR+ggKWAOYBcgACABAiBH6/TAAAAOgAAADsAAAAOAAGZpgABma4AAACgpwAABV0AAAVeAAAFXwAABWAAAAVhAAAFYgAABWOAtIC1gLaAt4C4gLmAuqcAAZmvAAGZsAABmbEAAZmyAAGZswABmbQAAZm1gR+wgR+xgR+ygR+zgR+0gR+1gR+2gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAZj7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXQAAAOwAAADsAAAAFwAAAOyAAIC8gACBH64ICAgIgEqAtAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAACjwAAAAXAAGY+wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV4AAADsAAAA7AAAABcAAADsgACBASyAAIEfrggICAiASoC1CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFdgAAABcAAZj7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXwAAAOwAAADsAAAAFwAAAOyAAIC8gACBH64ICAgIgEqAtggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAHcAAAAXAAGY+wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWAAAADsAAAA7AAAABcAAADsgACBApaAAIEfrggICAiASoC3CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAAZj7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAICugACBH64ICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGY+wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgR+uCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAABxKAAAAFwABmPsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgQLGgACBH64ICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAGaIQAAACEAAAEmAAABJwABmiIAAAAjAAABJQABmiMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH4AAADsAAAA7AABmisAAAAxAAAA7AAAAN4AAADsAAACBgAAH48AAADsAAAA7AABmjMAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBAtoICIEfuQiAOQiAioEC9AgIgR+4CBJtXens0wAAADoAAAA7AAAADgABmjcAAZo6AAAAoKIAAAIPAAACEIBkgGWiAAGaOwABmjyBH7qBH8WAVdkAAAAhAAAAJQABmj8AAAAOAAAAKAABmkAAAAAjAAAA3QABmkEAAB+dAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABmklfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBH7eAZIA5gFyAAIAECIEfu9MAAAA6AAAAOwAAAA4AAZpLAAGaVAAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABmlUAAZpWAAGaVwABmlgAAZpZAAGaWgABmlsAAZpcgR+8gR+9gR++gR/AgR/BgR/CgR/DgR/EgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZo7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBH7oICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGaOwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgR+6CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAZp+AAAAFwABmjsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgR+/gACBH7oICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABmowAAZqNAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZo7AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBH7oICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAGaOwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgR+6CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABmjsAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEfuggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAE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BdHRyaWJ1dGVzc3RvcmFnZYEfzoBlgDmAXIAAgAQIgR/d0wAAADoAAAA7AAAADgABnCgAAZwwAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAGcMQABnDIAAZwzAAGcNAABnDUAAZw2AAGcN4Ef3oEf34Ef4IEf4YEf4oEf44Ef5IBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAIo4AAAAXAAGbfQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACBAzqAAIEf3AgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZt9AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBH9wICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGbfQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgR/cCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwABm30AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBH9wICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGbfQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgR/cCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACE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0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBH/MICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGcvgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgR/zCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAADG+AAAAFwABnL4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQRrgACBH/MICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGcvgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgR/zCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABnL4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEf8wgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAZy+AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBH/MICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAGd5AAAACEAAAEmAAABJwABneUAAAAjAAABJQABneYAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAH4AAADsAAAA7AABne4AAAAxAAAA7AAAAN4AAADsAAACBgAAH5I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iAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAZ9AAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBICEICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGfQAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSAhCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwABn0AAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEgIQgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAZ9AAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBICEICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGfQAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSAhCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABn0AAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEgIQgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAaBmAAAAIQAAASYAAAEnAAGgZwA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PAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGjMwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgSBqCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABozMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEgaggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAaMzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBIGoICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB9cAAAAXAAGjMwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACA/4AAgSBqCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABozMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEgaggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAaMzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBIGoICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwA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sAAAA7AAAABcAAADsgACAAIAAgSCBCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwABpHQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBIIEICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGkdAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSCBCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABpHQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEggQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAaR0AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIIEICAgIgEqAgQgIgAAI0gAAADsAAAAOAAGlmgAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFFAAAABcAABpyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAICugACBApAICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAacgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABc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Pd25lZEF0dHJpYnV0ZXNzdG9yYWdlgSClgGWAOYBcgACABAiBILTTAAAAOgAAADsAAAAOAAGn0QABp9kAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAafaAAGn2wABp9wAAafdAAGn3gABp98AAafggSC1gSC2gSC3gSC4gSC5gSC6gSC7gFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAacmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBILMICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGnJgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgSCzCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABpyYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEgswgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAANxgAAABcAAacmAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEBgIAAgSCzCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABpyYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEgswgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQ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xAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEgyggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAahnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBIMoICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAB9cAAAAXAAGoZwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACA/4AAgSDKCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABqGcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEgyggICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAahnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBIMoICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGoZwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgSDKCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABqY0AAAAhAAABJgAAAScAAamOAAAAIwAAASUAAamPAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAAACkAAACRAAAA7AAAAOwAAamXAAAAMQAAAOwAAADeAAAA7AAAAgYAABeDAAAA7AAAAOwAAamfAAAA7F8QIFhEQnVja2V0Rm9yU3RlcmVvdHlwZXN3YXNFbmNvZGVkXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc3N0b3JhZ2VfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzb3JkZXJlZIAAgACAAIAEgQIiCAiBINUIgDkIgIqBAj8ICIEg1AgSRvZV6dMAAAA6AAAAOwAAAA4AAamjAAGppgAAAKCiAAACDwAAAhCAZIBlogABqacAAamogSDWgSDhgFXZAAAAIQAAACUAAamrAAAADgAAACgAAamsAAAAIwAAAN0AAamtAAAXoQAAAg8AAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAam1XxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgSDTgGSAOYBcgACABAiBINfTAAAAOgAAADsAAAAOAAGptwABqcAAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAanBAAGpwgABqcMAAanEAAGpxQABqcYAAanHAAGpyIEg2IEg2YEg2oEg3IEg3YEg3oEg34Eg4IBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGppwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgSDWCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABqacAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEg1ggICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAGp6gAAABcAAamnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEg24AAgSDWCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAan4AAGp+QAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGppwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgSDWCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABqacAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEg1ggICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAamnAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBINYICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGppwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgSDWCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABqacAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEg1ggICAiASoBvCAiAAAjZAAAAIQAAACUAAapHAAAADgAAACgAAapIAAAAIwAAAN0AAapJAAAXoQAAAhAAAADeAAAA/QAAABcAAAApAAA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AOYBcgACABAiBIO7TAAAAOgAAADsAAAAOAAGq+AABqwEAAACgqAAAAiUAAAImAAACJwAAAigAAAIpAAACKgAAAisAAAIsgGiAaYBqgGuAbIBtgG6Ab6gAAasCAAGrAwABqwQAAasFAAGrBgABqwcAAasIAAGrCYEg74Eg8IEg8YEg84Eg9IEg9YEg9oEg94BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGq6AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiUAAADsAAAA7AAAABcAAADsgACAUoAAgSDtCAgICIBKgGgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABqugAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAImAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEg7QgICAiASoBpCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAGrKwAAABcAAaroAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJwAAAOwAAADsAAAAFwAAAOyAAIEg8oAAgSDtCAgICIBKgGoICIAACNMAAAA6AAAAOwAAAA4AAas5AAGrOgAAAKCgoIBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGq6AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAigAAADsAAAA7AAAABcAAADsgACAUoAAgSDtCAgICIBKgGsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABqugAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIpAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEg7QgICAiASoBsCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAaroAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKgAAAOwAAADsAAAAFwAAAOyAAIBSgACBIO0ICAgIgEqAbQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGq6AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAisAAADsAAAA7AAAABcAAADsgACAAIAAgSDtCAgICIBKgG4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABqugAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIsAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEg7QgICAiASoBvCAiAAAjZAAAAIQAAACUAAauIAAAADgAAACgAAauJAAAAIwAAAN0AAauKAAAXowAAAhAAAADeAAAA/QAAABcAAAApAAAAMQAAAOwAAauSXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNvcmRlcmVkXxAkWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXN3YXNFbmNvZGVkXxAhWERCdWNrZXRGb3JPd25lZEF0dHJpYnV0ZXNzdG9yYWdlgSDqgGWAOYBcgACABAiBIPnTAAAAOgAAADsAAAAOAAGrlAABq5wAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAaudAAGrngABq58AAaugAAGroQABq6IAAaujgSD6gSD8gSD9gSD+gSD/gSEAgSEBgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAGrpwAAABcAAarpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIEg+4AAgSD4CAgICIBKgHsICIAACFNZRVPfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAarpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBIPgICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGq6QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSD4CAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAfXAAAAFwABqukAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgP+AAIEg+AgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAarpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBIPgICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGq6QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSD4CAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABqukAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEg+AgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAawQAAAAIQAAASYAAAEnAAGsEQAAACMAAAElAAGsEgAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAkQAAAOwAAADsAAGsGgAAADEAAADsAAAA3gAAAOwAAAIGAAAXhwAAAOwAAADsAAGsIgAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIECIggIgSEECIA5CICKgQJDCAiBIQMIEurim83TAAAAOgAAADsAAAAOAAGsJgABrCkAAACgogAAAg8AAAIQgGSAZaIAAawqAAGsK4EhBYEhEIBV2QAAACEAAAAlAAGsLgAAAA4AAAAoAAGsLwAAACMAAADdAAGsMAAAF6UAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAGsOF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEhAoBkgDmAXIAAgAQIgSEG0wAAADoAAAA7AAAADgABrDoAAaxDAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAGsRAABrEUAAaxGAAGsRwABrEgAAaxJAAGsSgABrEuBIQeBIQiBIQmBIQuBIQyBIQ2BIQ6BIQ+AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABrCoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEhBQgICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAawqAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBIQUICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABrG0AAAAXAAGsKgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBIQqAAIEhBQgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAGsewABrHwAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABrCoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEhBQgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAawqAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIQUICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGsKgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgSEFCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABrCoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEhBQgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAawqAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACLAA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AJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAa1sAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBIScICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGtbAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgSEnCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABrWwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEhJwgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAH1wAAABcAAa1sAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAID/gACBIScICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGtbAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSEnCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABrWwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEhJwgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABc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AASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGwswAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSFiCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAbD2AAAAFwABsLMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSFngACBIWIICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABsQQAAbEFAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbCzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBIWIICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAGwswAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgSFiCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABsLMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEhYggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbCzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIWIICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQA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AFwAAABcAAAAXAAGzNgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSGbCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACK8AAAAFwABszYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQM+gACBIZsICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAGzNgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSGbCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABszYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEhmwgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbM2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIZsICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAG0XAAAACEAAAEmAAABJwABtF0AAAAjAAABJQABtF4AAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJkAAADsAAAA7AABtGYAAAAxAAAA7AAAAN4AAADsAAACBgABA6UAAADsAAAA7AABtG4AAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBIUQICIEhpgiAOQiAioEUYwgIgSGlCBJ2SXFR0wAAADoAAAA7AAAADgABtHIAAbR1AAAAoKIAAAIPAAACEIBkgGWiAAG0dgABtHeBIaeBIbKAVdkAAAAhAAAAJQABtHoAAAAOAAAAKAABtHsAAAAjAAAA3QABtHwAAbCRAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABtIRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIaSAZIA5gFyAAIAECIEhqNMAAAA6AAAAOwAAAA4AAbSGAAG0jwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABtJAAAbSRAAG0kgABtJMAAbSUAAG0lQABtJYAAbSXgSGpgSGqgSGrgSGtgSGugSGvgSGwgSGxgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbR2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIacICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG0dgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSGnCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAbS5AAAAFwABtHYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSGsgACBIacICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABtMcAAbTIAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbR2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBIacICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG0dgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgSGnCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABtHYAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEhpwgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbR2AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIacICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG0dgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSGnCAgICIBKgG8ICIAACNkAAAAhAAAAJQABtRYAAAAOAAAAKAABtRcAAAAjAAAA3QABtRgAAbCRAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABtSBfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIaSAZYA5gFyAAIAECIEhs9MAAAA6AAAAOwAAAA4AAbUiAAG1KgAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABtSsAAbUsAAG1LQABtS4AAbUvAAG1MAABtTGBIbSBIbWBIbaBIbeBIbiBIbmBIbqAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABtHcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEhsggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbR3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBIbIICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG0dwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSGyCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAMPAAAAFwABtHcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgIaAAIEhsggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbR3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBIbIICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG0dwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSGyCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABtHcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEhsggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAbWdAAAAIQAAASYAAAEnAAG1ngAAACMAAAElAAG1nwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAmQAAAOwAAADsAAG1pwAAADEAAADsAAAA3gAAAOwAAASiAAGwjAAAAOwAAADsAAG1rwAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEhRAgIgSG9CIA5CIECxYEhXggIgSG8CBJV3mxs0wAAADoAAAA7AAAADgABtbMAAbW2AAAAoKIAAAIPAAAErIBkgKWiAAG1twABtbiBIb6BIcmAVdkAAAAhAAAAJQABtbsAAAAOAAAAKAABtbwAAAAjAAAA3QABtb0AAbCSAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABtcVfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIbuAZIA5gFyAAIAECIEhv9MAAAA6AAAAOwAAAA4AAbXHAAG10AAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABtdEAAbXSAAG10wABtdQAAbXVAAG11gABtdcAAbXYgSHAgSHBgSHCgSHEgSHFgSHGgSHHgSHIgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbW3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIb4ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG1twAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSG+CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAbX6AAAAFwABtbcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSHDgACBIb4ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABtggAAbYJAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbW3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBIb4ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAG1twAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgSG+CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABtbcAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEhvggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbW3AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIb4ICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG1twAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSG+CAgICIBKgG8ICIAACNkAAAAhAAAAJQABtlcAAAAOAAAAKAABtlgAAAAjAAAA3QABtlkAAbCSAAAErAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABtmFfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIbuApYA5gFyAAIAECIEhytMAAAA6AAAAOwAAAA4AAbZjAAG2awAAAKCnAAAFXQAABV4AAAVfAAAFYAAABWEAAAViAAAFY4C0gLWAtoC3gLiAuYC6pwABtmwAAbZtAAG2bgABtm8AAbZwAAG2cQABtnKBIcuBIcyBIc2BIc6BIc+BIdCBIdGAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAV2AAAAFwABtbgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVdAAAA7AAAAOwAAAAXAAAA7IAAgLyAAIEhyQgICAiASoC0CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAFhQAAABcAAbW4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFXgAAAOwAAADsAAAAFwAAAOyAAIC+gACBIckICAgIgEqAtQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABYUAAAAXAAG1uAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABV8AAADsAAAA7AAAABcAAADsgACAvoAAgSHJCAgICIBKgLYICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAACRAAAAFwABtbgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVgAAAA7AAAAOwAAAAXAAAA7IAAgQIigACBIckICAgIgEqAtwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG1uAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAADsgACAUoAAgSHJCAgICIBKgLgICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABtbgAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAViAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEhyQgICAiASoC5CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAXpwAAABcAAbW4AAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYwAAAOwAAADsAAAAFwAAAOyAAIEhMIAAgSHJCAgICIBKgLoICIAACNIAAAA7AAAADgABtt4AAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAGurQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWEAAADsAAAA7AAAABcAAAD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AAAErAAAAFwAAAY4AAAAXAAG3KQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgSHkCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABtykAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEh5AgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAANxgAAABcAAbcpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEBgIAAgSHkCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABtykAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEh5AgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbcpAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBIeQICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG3KQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgSHkCAgICIBKgIEICIAACN8QEgAAASIAAAEjAAABJAABuE8AAAAhAAABJgAAAScAAbhQAAAAIwAAASUAAbhRAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwA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CyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBIhIICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG5qwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgSISCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAACKOAAAAFwABuasAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgQM6gACBIhIICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAIrwAAAAXAAG5qwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAz6AAIEiEggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbmrAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBIhIICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG5qwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSISCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABuasAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEiEggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAbrRAAAAIQAAASYAAAEnAAG60gAAACMAAAElAAG60wAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAkQAAAOwAAADsAAG62wAAADEAAADsAAAA3gAAAOwAAAIGAAAK4wAAAOwAAADsAAG64wAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIECIggIgSIdCIA5CICKgQE7CAiBIhwIEtlzqy/TAAAAOgAAADsAAAAOAAG65wABuuoAAACgogAAAg8AAAIQgGSAZaIAAbrrAAG67IEiHoEiKYBV2QAAACEAAAAlAAG67wAAAA4AAAAoAAG68AAAACMAAADdAAG68QAAF6wAAAIPAAAA3gAAAP0AAAAXAAAAKQAAADEAAADsAAG6+V8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzb3JkZXJlZF8QJFhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzd2FzRW5jb2RlZF8QIVhEQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEiG4BkgDmAXIAAgAQIgSIf0wAAADoAAAA7AAAADgABuvsAAbsEAAAAoKgAAAIlAAACJgAAAicAAAIoAAACKQAAAioAAAIrAAACLIBogGmAaoBrgGyAbYBugG+oAAG7BQABuwYAAbsHAAG7CAABuwkAAbsKAAG7CwABuwyBIiCBIiGBIiKBIiSBIiWBIiaBIieBIiiAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABuusAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIlAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEiHggICAiASoBoCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbrrAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBIh4ICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABuy4AAAAXAAG66wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBIiOAAIEiHggICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAG7PAABuz0AAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABuusAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEiHggICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbrrAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIh4ICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG66wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgSIeCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABuusAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEiHggICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgA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AAIBSgACBIjYICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAG8LQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgSI2CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABvC0AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEiNggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAbwtAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIjYICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG8LQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSI2CAgICIBKgG8ICIAACNkAAAAhAAAAJQABvM0AAAAOAAAAKAABvM4AAAAjAAAA3QABvM8AABetAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABvNdfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIjOAZYA5gFyAAIAECIEiQtMAAAA6AAAAOwAAAA4AAbzZAAG84QAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABvOIAAbzjAAG85AABvOUAAbzmAAG85wABvOiBIkOBIkSBIkWBIkaBIkeBIkiBIkmAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABvC4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEiQQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAbwuAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBIkEICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG8LgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSJBCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwABvC4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBIkEICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG8LgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSJBCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABvC4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEiQQgICAiASoCACAiAAAjfEA8AAAE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AADoAAAA7AAAADgABv1sAAb9jAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAG/ZAABv2UAAb9mAAG/ZwABv2gAAb9pAAG/aoEicYEicoEic4EidIEidYEidoEid4BV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG+sAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgSJvCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABvrAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEibwgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAb6wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBIm8ICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwABQhEAAAAXAAG+sAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBGSWAAIEibwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAb6wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBIm8ICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG+sAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSJvCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABvrAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEibwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAb/WAAAAIQAAASYAAAEnAAG/1wAAACMAAAElAAG/2AAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAkQAAAOwAAADsAAG/4AAAADEAAADsAAAA3gAAAOwAAAIGAAAXkwAAAOwAAADsAAG/6AAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIECIggIgSJ6CIA5CICKgQJOCAiBInkIEwAAAAEf8Ob50wAAADoAAAA7AAAADgABv+wAAb/vAAAAoKIAAAIPAAACEIBkgGWiAAG/8AABv/GBInuBIoaAVdkAAAAhAAAAJQABv/QAAAAOAAAAKAABv/UAAAAjAAAA3QABv/YAABexAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABv/5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIniAZIA5gFyAAIAECIEifNMAAAA6AAAAOwAAAA4AAcAAAAHACQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABwAoAAcALAAHADAABwA0AAcAOAAHADwABwBAAAcARgSJ9gSJ+gSJ/gSKBgSKCgSKDgSKEgSKFgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAb/wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBInsICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG/8AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSJ7CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAcAzAAAAFwABv/AAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSKAgACBInsICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABwEEAAcBCAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAb/wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBInsICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG/8AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgSJ7CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABv/AAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEiewgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAb/wAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBInsICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAG/8AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSJ7CAgICIBKgG8ICIAACNkAAAAhAAAAJQABwJAAAAAOAAAAKAABwJEAAAAjAAAA3QABwJIAABexAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABwJpfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIniAZYA5gFyAAIAECIEih9MAAAA6AAAAOwAAAA4AAcCcAAHApAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABwKUAAcCmAAHApwABwKgAAcCpAAHAqgABwKuBIoiBIomBIoqBIouBIoyBIo2BIo6AVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAepAAAAFwABv/EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgPuAAIEihggICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAb/xAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBIoYICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG/8QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSKGCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAfXAAAAFwABv/EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgP+AAIEihggICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAb/xAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBIoYICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAG/8QAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSKGCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABv/EAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEihggICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAcEXAAAAIQAAASYAAAEnAAHBGAAAACMAAAElAAHBGQAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAkQAAAOwAAADsAAHBIQAAADEAAADsAAAA3gAAAOwAAAIGAAAXlQAAAOwAAADsAAHBKQAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIECIggIgSKRCIA5CICKgQJQCAiBIpAIEwAAAAEpyheJ0wAAADoAAAA7AAAADgABwS0AAcEwAAAAoKIAAAIPAAACEIBkgGWiAAHBMQABwTKBIpKBIp2AVdkAAAAhAAAAJQABwTUAAAAOAAAAKAABwTYAAAAjAAAA3QABwTcAABezAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABwT9fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIo+AZIA5gFyAAIAECIEik9MAAAA6AAAAOwAAAA4AAcFBAAHBSgAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABwUsAAcFMAAHBTQABwU4AAcFPAAHBUAABwVEAAcFSgSKUgSKVgSKWgSKYgSKZgSKagSKbgSKcgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcExAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIpIICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHBMQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSKSCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAcF0AAAAFwABwTEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSKXgACBIpIICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABwYIAAcGDAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcExAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBIpIICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHBMQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgSKSCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABwTEAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEikggICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAcExAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIpIICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHBMQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSKSCAgICIBKgG8ICIAACNkAAAAhAAAAJQABwdEAAAAOAAAAKAABwdIAAAAjAAAA3QABwdMAABezAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABwdtfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIo+AZYA5gFyAAIAECIEintMAAAA6AAAAOwAAAA4AAcHdAAHB5QAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABweYAAcHnAAHB6AABwekAAcHqAAHB6wABweyBIp+BIqCBIqGBIqKBIqOBIqSBIqWAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABwTIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEinQgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcEyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBIp0ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHBMgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSKdCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwABwTIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBIp0ICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHBMgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSKdCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABwTIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEinQgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAcEyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIp0ICAgIgEqAgQgIgAAI3xASAAABIgAAASMAAAEkAAHCWAAAACEAAAEmAAABJwABwlkAAAAjAAABJQABwloAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJEAAADsAAAA7AABwmIAAAAxAAAA7AAAAN4AAADsAAACBgAAF5cAAADsAAAA7AABwmoAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBAiIICIEiqAiAOQiAioECUggIgSKnCBLvlSAK0wAAADoAAAA7AAAADgABwm4AAcJxAAAAoKIAAAIPAAACEIBkgGWiAAHCcgABwnOBIqmBIrSAVdkAAAAhAAAAJQABwnYAAAAOAAAAKAABwncAAAAjAAAA3QABwngAABe1AAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABwoBfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIqaAZIA5gFyAAIAECIEiqtMAAAA6AAAAOwAAAA4AAcKCAAHCiwAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABwowAAcKNAAHCjgABwo8AAcKQAAHCkQABwpIAAcKTgSKrgSKsgSKtgSKvgSKwgSKxgSKygSKzgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcJyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIqkICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHCcgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSKpCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAcK1AAAAFwABwnIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSKugACBIqkICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABwsMAAcLEAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcJyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBIqkICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHCcgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgSKpCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABwnIAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEiqQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAcJyAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIqkICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHCcgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSKpCAgICIBKgG8ICIAACNkAAAAhAAAAJQABwxIAAAAOAAAAKAABwxMAAAAjAAAA3QABwxQAABe1AAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABwxxfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIqaAZYA5gFyAAIAECIEitdMAAAA6AAAAOwAAAA4AAcMeAAHDJgAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABwycAAcMoAAHDKQABwyoAAcMrAAHDLAABwy2BIraBIreBIriBIrmBIrqBIruBIryAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAaunAAAAFwABwnMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgSD7gACBIrQICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHCcwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgSK0CAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABwnMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEitAgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAH1wAAABcAAcJzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAID/gACBIrQICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHCcwAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSK0CAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABwnMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEitAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAcJzAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIrQICAgIgEqAgQgIgAAI0gAAADsAAAAOAAHDmQAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAABWjAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBAhwICAgIgEqAuAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAAVowAAAOwAAADsAAAA7AAAADEAAADsAAABNAAABWIAAADsAAAA7AAAABcAAADsgACAUoAAgQIcCAgICIBKgLkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAABepAAAAFwAAFaMAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAVjAAAA7AAAAOwAAAAXAAAA7IAAgSHtgACBAhwICAgIgEqAuggIgAAI3xASAAABIgAAASMAAAEkAAHDyQAAACEAAAEmAAABJwABw8oAAAAjAAABJQABw8sAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAAAKQAAAJoAAADsAAAA7AABw9MAAAAxAAAA7AAAAN4AAADsAAACBgAAC1QAAADsAAAA7AABw9sAAADsXxAgWERCdWNrZXRGb3JTdGVyZW90eXBlc3dhc0VuY29kZWRfEB1YREJ1Y2tldEZvclN0ZXJlb3R5cGVzc3RvcmFnZV8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNvcmRlcmVkgACAAIAAgASBAS8ICIEiwwiAOQiAioEBTggIgSLCCBLyGtml0wAAADoAAAA7AAAADgABw98AAcPiAAAAoKIAAAIPAAACEIBkgGWiAAHD4wABw+SBIsSBIs+AVdkAAAAhAAAAJQABw+cAAAAOAAAAKAABw+gAAAAjAAAA3QABw+kAAAtmAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABw/FfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIsGAZIA5gFyAAIAECIEixdMAAAA6AAAAOwAAAA4AAcPzAAHD/AAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABw/0AAcP+AAHD/wABxAAAAcQBAAHEAgABxAMAAcQEgSLGgSLHgSLIgSLKgSLLgSLMgSLNgSLOgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcPjAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIsQICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHD4wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSLECAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAcQmAAAAFwABw+MAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSLJgACBIsQICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABxDQAAcQ1AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcPjAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBIsQICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHD4wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgSLECAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABw+MAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEixAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAcPjAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBIsQICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHD4wAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSLECAgICIBKgG8ICIAACNkAAAAhAAAAJQABxIMAAAAOAAAAKAABxIQAAAAjAAAA3QABxIUAAAtmAAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABxI1fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBIsGAZYA5gFyAAIAECIEi0NMAAAA6AAAAOwAAAA4AAcSPAAHElwAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwABxJgAAcSZAAHEmgABxJsAAcScAAHEnQABxJ6BItGBItKBItOBItSBItWBItaBIteAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAepAAAAFwABw+QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgPuAAIEizwgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcPkAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBIs8ICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHD5AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSLPCAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAfXAAAAFwABw+QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgP+AAIEizwgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAcPkAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBIs8ICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHD5AAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSLPCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABw+QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEizwgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAcUKAAAAIQAAASYAAAEnAAHFCwAAACMAAAElAAHFDAAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAmgAAAOwAAADsAAHFFAAAADEAAADsAAAA3gAAAOwAAASiAAALVQAAAOwAAADsAAHFHAAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEBLwgIgSLaCIA5CIECxYEBTwgIgSLZCBKjiUGs0wAAADoAAAA7AAAADgABxSAAAcUjAAAAoKIAAAIPAAAErIBkgKWiAAHFJAABxSWBItuBIuaAVdkAAAAhAAAAJQABxSgAAAAOAAAAKAABxSkAAAAjAAAA3QABxSoAAAtnAAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AABxTJfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBItiAZIA5gFyAAIAECIEi3NMAAAA6AAAAOwAAAA4AAcU0AAHFPQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAABxT4AAcU/AAHFQAABxUEAAcVCAAHFQwABxUQAAcVFgSLdgSLegSLfgSLhgSLigSLjgSLkgSLlgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcUkAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBItsICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHFJAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSLbCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAcVnAAAAFwABxSQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSLggACBItsICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABxXUAAcV2AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcUkAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBItsICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAHFJAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgSLbCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABxSQAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEi2wgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAcUkAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBItsICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHFJAAAAOwAAADsAAAA7AAAADE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AAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcopAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBIzgICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHKKQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSM4CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAcpsAAAAFwAByikAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSM9gACBIzgICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgABynoAAcp7AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAcopAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBIzgICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHKKQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAUoAAgSM4CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAByikAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEjOAgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASg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EQnVja2V0Rm9yT3duZWRBdHRyaWJ1dGVzc3RvcmFnZYEjTIBlgDmAXIAAgAQIgSNb0wAAADoAAAA7AAAADgABzBYAAcweAAAAoKcAAALJAAACygAAAssAAALMAAACzQAAAs4AAALPgHuAfIB9gH6Af4CAgIGnAAHMHwABzCAAAcwhAAHMIgABzCMAAcwkAAHMJYEjXIEjXYEjXoEjX4EjYIEjYYEjYoBV3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHLawAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgSNaCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwABy2sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEjWggICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAActrAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBI1oICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAw8AAAAXAAHLawAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACAhoAAgSNaCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABy2sAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEjWggICAiASoB/CAiAAAjfEA8AAAE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A7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgSNxCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABzKwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEjcQgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAANxgAAABcAAcysAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAIEBgIAAgSNxCAgICIBKgH4ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwABzKwAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALNAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEjcQgICAiASoB/CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAcysAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzgAAAOwAAADsAAAAFwAAAOyAAIAAgACBI3EICAgIgEqAgAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHMrAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs8AAADsAAAA7AAAABcAAADsgACAAIAAgSNxCAgICIBKgIEICIAACNIAAAA7AAAADgABzdIAAAE8oIBJ3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAAJbwAAAOwAAADsAAAA7AAAADEAAAD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sAAAA7AAAADEAAADsAAABNAAAAskAAADsAAAA7AAAABcAAADsgACAAIAAgSQVCAgICIBKgHsICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAB1SAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALKAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEkFQgICAiASoB8CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAdUgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACywAAAOwAAADsAAAAFwAAAOyAAIAAgACBJBUICAgIgEqAfQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAADcYAAAAXAAHVIAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAswAAADsAAAA7AAAABcAAADsgACBAYCAAIEkFQgICAiASoB+CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAdUgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzQAAAOwAAADsAAAAFwAAAOyAAIAAgACBJBUICAgIgEqAfwgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHVIAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs4AAADsAAAA7AAAABcAAADsgACAAIAAgSQVCAgICIBKgIAICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAB1SAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALPAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEkFQgICAiASoCBCAiAAAjfEBIAAAEiAAABIwAAASQAAdZGAAAAIQAAASYAAAEnAAHWRwAAACMAAAElAAHWSAAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAAApAAAAeAAAAOwAAADsAAHWUAAAADEAAADsAAAA3gAAAOwAAASiAAHU9AAAAOwAAADsAAHWWAAAAOxfECBYREJ1Y2tldEZvclN0ZXJlb3R5cGVzd2FzRW5jb2RlZF8QHVhEQnVja2V0Rm9yU3RlcmVvdHlwZXNzdG9yYWdlXxAdWERCdWNrZXRGb3JTdGVyZW90eXBlc29yZGVyZWSAAIAAgACABIEj7ggIgSQgCIA5CIECxYEkAwgIgSQfCBJRx+eI0wAAADoAAAA7AAAADgAB1lwAAdZfAAAAoKIAAAIPAAAErIBkgKWiAAHWYAAB1mGBJCGBJCyAVdkAAAAhAAAAJQAB1mQAAAAOAAAAKAAB1mUAAAAjAAAA3QAB1mYAAdT6AAACDwAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAB1m5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBJB6AZIA5gFyAAIAECIEkItMAAAA6AAAAOwAAAA4AAdZwAAHWeQAAAKCoAAACJQAAAiYAAAInAAACKAAAAikAAAIqAAACKwAAAiyAaIBpgGqAa4BsgG2AboBvqAAB1noAAdZ7AAHWfAAB1n0AAdZ+AAHWfwAB1oAAAdaBgSQjgSQkgSQlgSQngSQogSQpgSQqgSQrgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAdZgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBJCEICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHWYAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSQhCAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAdajAAAAFwAB1mAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSQmgACBJCEICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAB1rEAAdayAAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAdZgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBJCEICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAHWYAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgSQhCAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAB1mAAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEkIQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAdZgAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBJCEICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAA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fEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAdtkAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJQAAAOwAAADsAAAAFwAAAOyAAIBSgACBJH0ICAgIgEqAaAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHbZAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiYAAADsAAAA7AAAABcAAADsgACAAIAAgSR9CAgICIBKgGkICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAdunAAAAFwAB22QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAInAAAA7AAAAOwAAAAXAAAA7IAAgSSCgACBJH0ICAgIgEqAaggIgAAI0wAAADoAAAA7AAAADgAB27UAAdu2AAAAoKCggFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAdtkAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKAAAAOwAAADsAAAAFwAAAOyAAIBSgACBJH0ICAgIgEqAawgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAABRQAAAAXAAHbZAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAikAAADsAAAA7AAAABcAAADsgACAroAAgSR9CAgICIBKgGwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAB22QAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIqAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIEkfQgICAiASoBtCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAdtkAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKwAAAOwAAADsAAAAFwAAAOyAAIAAgACBJH0ICAgIgEqAbggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHbZAAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAiwAAADsAAAA7AAAABcAAADsgACAUoAAgSR9CAgICIBKgG8ICIAACNkAAAAhAAAAJQAB3AQAAAAOAAAAKAAB3AUAAAAjAAAA3QAB3AYAAdT9AAACEAAAAN4AAAD9AAAAFwAAACkAAAAxAAAA7AAB3A5fECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc29yZGVyZWRfECRYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3dhc0VuY29kZWRfECFYREJ1Y2tldEZvck93bmVkQXR0cmlidXRlc3N0b3JhZ2WBJHqAZYA5gFyAAIAECIEkidMAAAA6AAAAOwAAAA4AAdwQAAHcGAAAAKCnAAACyQAAAsoAAALLAAACzAAAAs0AAALOAAACz4B7gHyAfYB+gH+AgICBpwAB3BkAAdwaAAHcGwAB3BwAAdwdAAHcHgAB3B+BJIqBJIuBJIyBJI2BJI6BJI+BJJCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAB22UAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALJAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEkiAgICAiASoB7CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAdtlAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACygAAAOwAAADsAAAAFwAAAOyAAIBSgACBJIgICAgIgEqAfAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHbZQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAssAAADsAAAA7AAAABcAAADsgACAAIAAgSSICAgICIBKgH0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAA3GAAAAFwAB22UAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALMAAAA7AAAAOwAAAAXAAAA7IAAgQGAgACBJIgICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHbZQAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSSICAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAB22UAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALOAAAA7AAAAOwAAAAXAAAA7IAAgACAAIEkiAgICAiASoCACAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAdtlAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzwAAAOwAAADsAAAAFwAAAOyAAIAAgACBJIgICAgIgEqAgQgIgAAI0gAAADsAAAAOAAHciwAAATyggEnfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAdMhAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAAFYQAAAOwAAADsAAAAFwAAAOyAAIBSgACBI+gICAgIgEqAuAgIgAAI3xAPAAABIgA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AAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAeMaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACJgAAAOwAAADsAAAAFwAAAOyAAIAAgACBJQsICAgIgEqAaQgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAB410AAAAXAAHjGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAicAAADsAAAA7AAAABcAAADsgACBJRCAAIElCwgICAiASoBqCAiAAAjTAAAAOgAAADsAAAAOAAHjawAB42wAAACgoKCAVd8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAGOAAAAFwAB4xoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIoAAAA7AAAAOwAAAAXAAAA7IAAgFKAAIElCwgICAiASoBrCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAABjgAAABcAAeMaAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACKQAAAOwAAADsAAAAFwAAAOyAAIBSgACBJQsICAgIgEqAbAgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHjGgAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAioAAADsAAAA7AAAABcAAADsgACAUoAAgSULCAgICIBKgG0ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAB4xoAAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAAIrAAAA7AAAAOwAAAAXAAAA7IAAgACAAIElCwgICAiASoBuCAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASY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ABAiBJVzTAAAAOgAAADsAAAAOAAHniQAB55EAAACgpwAAAskAAALKAAACywAAAswAAALNAAACzgAAAs+Ae4B8gH2AfoB/gICAgacAAeeSAAHnkwAB55QAAeeVAAHnlgAB55cAAeeYgSVdgSVegSVfgSVggSVhgSVigSVjgFXfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAAAFwAAABcAAebeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACyQAAAOwAAADsAAAAFwAAAOyAAIAAgACBJVsICAgIgEqAewgIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAAY4AAAAXAAHm3gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAsoAAADsAAAA7AAAABcAAADsgACAUoAAgSVbCAgICIBKgHwICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAABKQAAASoAAAAoAAABKwAAABcAAAAXAAAAFwAB5t4AAADsAAAA7AAAAOwAAAAxAAAA7AAAATQAAALLAAAA7AAAAOwAAAAXAAAA7IAAgACAAIElWwgICAiASoB9CAiAAAjfEA8AAAEiAAABIwAAASQAAAAhAAABJQAAASYAAAEnAAAAIwAAASgAAAAOAAAAJQAAASkAAAEqAAAAKAAAASsAAAAXAAADDwAAABcAAebeAAAA7AAAAOwAAADsAAAAMQAAAOwAAAE0AAACzAAAAOwAAADsAAAAFwAAAOyAAICGgACBJVsICAgIgEqAfggIgAAI3xAPAAABIgAAASMAAAEkAAAAIQAAASUAAAEmAAABJwAAACMAAAEoAAAADgAAACUAAAEpAAABKgAAACgAAAErAAAAFwAAABcAAAAXAAHm3gAAAOwAAADsAAAA7AAAADEAAADsAAABNAAAAs0AAADsAAAA7AAAABcAAADsgACAAIAAgSVbCAgICIBKgH8ICIAACN8QDwAAASIAAAEjAAABJAAAACEAAAElAAABJgAAAScAAAAjAAABKAAAAA4AAAAlAAA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AAJ2mAACdqwAAnckAAJ35AACeEQAAnjYAAJ5ZAACefQAAnpYAAJ6/AACe1QAAnwEAAJ8+AACfVQAAn24AAJ+nAACfxQAAn98AAKAFAACgHAAAoDkAAKBxAACgjwAAoKIAAKC+AACg1wAAoPQAAKEPAAChKgAAoUYAAKFkAACh5wAAogsAAKIvAACiUgAAonkAAKKZAACiwAAAoucAAKMHAACjKwAAo08AAKNbAACjXQAAo18AAKNhAACjYwAAo2UAAKNnAACjagAAo2wAAKNuAACjcQAAo3MAAKN1AACjeAAAo3oAAKN7AACjgAAAo4gAAKOhAACjpgAAo6gAAKOtAACjrwAAo7EAAKPAAACkCQAApC0AAKRUAACkeAAApHoAAKR8AACkfgAApIAAAKSCAACkhAAApIUAAKSHAACkoAAApMUAAKTHAACkyQAApMsAAKTNAACkzwAApNEAAKTTAACk1QAApNcAAKT8AACk/gAApQAAAKUCAAClBAAApQYAAKUIAAClCgAApQwAAKUOAAClEAAApSYAAKU5AAClVQAApXIAAKWOAAClogAApbQAAKXKAACl4wAApl4AAKZkAACmbQAApnoAAKaGAACmkAAAppoAAKalAACmsAAApr0AAKbFAACmxwAApskAAKbLAACmzQAAps4AAKbPAACm0AAAptEAAKbTAACm1QAAptYAAKbXAACm2QAAptoAAKbrAACm7AAApu4AAKb/AACnCgAApxMAAKciAACnLwAApzcAAKdAAACnUQAAp2QAAKd1AACniAAAp58AAKexAACoLAAAqC4AAKgwAACoMgAAqDQAAKg1AACoNgAAqDcAAKg4AACoOgAAqDwAAKg9AACoPgAAqEAAAKhBAACovAAAqL4AAKjAAACowgAAqMQAAKjFAACoxgAAqMcAAKjIAACoygAAqMwAAKjNAACozgAAqNAAAKjRAACo4gAAqOMAAKjlAACpYAAAqWIAAKlkAACpZgAAqWgAAKlpAACpagAAqWsAAKlsAACpbgAAqXAAAKlxAACpcgAAqXQAAKl1AACp8AAAqfIAAKn0AACp9gAAqfgAAKn5AACp+gAAqfsAAKn8AACp/gAAqgAAAKoBAACqAgAAqgQAAKoFAACqFgAAqhcAAKoZAACqlAAAqpYAAKqYAACqmgAAqpwAAKqdAACqngAAqp8AAKqgAACqogAAqqQAAKqlAACqpgAAqqgAAKqpAACqqgAAqyUAAKsnAACrKQAAqysAAKstAACrLgAAqy8AAKswAACrMQAAqzMAAKs1AACrNgAAqzcAAKs5AACrOgAAq1MAAKtUAACrVQAAq1cAAKtoAACrfgAAq4sAAKuYAACsEwAArBUAAKwXAACsGQAArBsAAKwcAACsHQAArB4AAKwfAACsIQAArCMAAKwkAACsJQAArCcAAKwoAACsWQAArFsAAKxdAACsXwAArGAAAKxiAACseQAArIoAAKyYAACssQAArL8AAKzUAACs6AAArP8AAK0RAACtjAAArY4AAK2QAACtkgAArZQAAK2VAACtlgAArZcAAK2YAACtmgAArZwAAK2dAACtngAAraAAAK2hAACtvgAArc8AAK3kAACuAQAArhYAAK4kAACuOQAArk0AAK5kAACudgAAro8AAK6cAACungAArqAAAK6iAACurwAArrEAAK6zAACutQAArrcAAK7SAACu5AAAru8AAK+CAACvpQAAr8UAAK/lAACv5wAAr+kAAK/rAACv7QAAr+8AAK/wAACv8QAAr/MAAK/0AACv9gAAr/cAAK/5AACv+wAAr/wAAK/9AACv/wAAsAAAALAFAACwHgAAsCcAALApAACwKwAAsDQAALA2AACwOAAAsDoAALBPAACwZAAAsK0AALDRAACw+AAAsRwAALEeAACxIAAAsSIAALEkAACxJgAAsSgAALEpAACxKwAAsUQAALFlAACxZwAAsWkAALFrAACxbQAAsW8AALFxAACxcwAAsXUAALGWAACxmAAAsZoAALGcAACxngAAsaAAALGiAACxpAAAsaYAALGoAACxxgAAseQAALH3AACyCwAAsiAAALI9AACyUQAAsmcAALLiAACy5AAAsuYAALLoAACy6gAAsusAALLsAACy7QAAsu4AALLwAACy8gAAsvMAALL0AACy9gAAsvcAALNyAACzdAAAs3YAALN4AACzegAAs3sAALN8AACzfQAAs34AALOAAACzggAAs4MAALOEAACzhgAAs4cAALQCAAC0BAAAtAYAALQIAAC0CgAAtAsAALQMAAC0DQAAtA4AALQQAAC0EgAAtBMAALQUAAC0FgAAtBcAALQwAAC0MQAAtDIAALQ0AAC0rwAAtLEAALSzAAC0tQAAtLcAALS4AAC0uQAAtLoAALS7AAC0vQAAtL8AALTAAAC0wQAAtMMAALTEAAC1PwAAtUEAALVDAAC1RQAAtUcAALVIAAC1SQAAtUoAALVLAAC1TQAAtU8AALVQAAC1UQAAtVMAALVUAAC1zwAAtdEAALXTAAC11QAAtdcAALXYAAC12QAAtdoAALXbAAC13QAAtd8AALXgAAC14QAAteMAALXkAAC2XwAAtmEAALZjAAC2ZQAAtmcAALZoAAC2aQAAtmoAALZrAAC2bQAAtm8AALZwAAC2cQAAtnMAALZ0AAC27wAAtvEAALbzAAC29QAAtvcAALb4AAC2+QAAtvoAALb7AAC2/QAAtv8AALcAAAC3AQAAtwMAALcEAAC3TQAAt3EAALeYAAC3vAAAt74AALfAAAC3wgAAt8QAALfGAAC3yAAAt8kAALfLAAC35AAAuAEAALgDAAC4BQAAuAcAALgJAAC4CwAAuA0AALgPAAC4LAAAuC4AALgwAAC4MgAAuDQAALg2AAC4OAAAuDoAALg8AAC4XAAAuIcAALihAAC4ugAAuNQAALj0AAC5FwAAuZIAALmUAAC5lgAAuZgAALmaAAC5mwAAuZwAALmdAAC5ngAAuaAAALmiAAC5owAAuaQAALmmAAC5pwAAuiIAALokAAC6JgAAuigAALoqAAC6KwAAuiwAALotAAC6LgAAujAAALoyAAC6MwAAujQAALo2AAC6NwAAurIAALq0AAC6tgAAurgAALq6AAC6uwAAurwAALq9AAC6vgAAusAAALrCAAC6wwAAusQAALrGAAC6xwAAu0IAALtEAAC7RgAAu0gAALtKAAC7SwAAu0wAALtNAAC7TgAAu1AAALtSAAC7UwAAu1QAALtWAAC7VwAAu1oAALvVAAC71wAAu9kAALvbAAC73QAAu94AALvfAAC74AAAu+EAALvjAAC75QAAu+YAALvnAAC76QAAu+oAALxlAAC8ZwAAvGkAALxrAAC8bQAAvG4AALxvAAC8cAAAvHEAALxzAAC8dQAAvHYAALx3AAC8eQAAvHoAALz1AAC89wAAvPkAALz7AAC8/QAAvP4AALz/AAC9AAAAvQEAAL0DAAC9BQAAvQYAAL0HAAC9CQAAvQoAAL0bAAC9KQAAvUIAAL1QAAC9XQAAvXAAAL2HAAC9mQAAviwAAL5PAAC+bwAAvo8AAL6RAAC+kwAAvpUAAL6XAAC+mQAAvpoAAL6bAAC+nQAAvp4AAL6gAAC+oQAAvqMAAL6lAAC+pgAAvqcAAL6pAAC+qgAAvq8AAL7IAAC+0QAAvtMAAL7VAAC+3gAAvuAAAL7iAAC+5AAAvy0AAL9RAAC/eAAAv5wAAL+eAAC/oAAAv6IAAL+kAAC/pgAAv6gAAL+pAAC/qwAAv8QAAL/lAAC/5wAAv+kAAL/rAAC/7QAAv+8AAL/xAAC/8wAAv/UAAMAWAADAGAAAwBoAAMAcAADAHgAAwCAAAMAiAADAJAAAwCYAAMAoAADAowAAwKUAAMCnAADAqQAAwKsAAMCsAADArQAAwK4AAMCvAADAsQAAwLMAAMC0AADAtQAAwLcAAMC4AADBMwAAwTUAAME3AADBOQAAwTsAAME8AADBPQAAwT4AAME/AADBQQAAwUMAAMFEAADBRQAAwUcAAMFIAADBwwAAwcUAAMHHAADByQAAwcsAAMHMAADBzQAAwc4AAMHPAADB0QAAwdMAAMHUAADB1QAAwdcAAMHYAADB8QAAwfIAAMHzAADB9QAAwnAAAMJyAADCdAAAwnYAAMJ4AADCeQAAwnoAAMJ7AADCfAAAwn4AAMKAAADCgQAAwoIAAMKEAADChQAAwwAAAMMCAADDBAAAwwYAAMMIAADDCQAAwwoAAMMLAADDDAAAww4AAMMQAADDEQAAwxIAAMMUAADDFQAAw5AAAMOSAADDlAAAw5YAAMOYAADDmQAAw5oAAMObAADDnAAAw54AAMOgAADDoQAAw6IAAMOkAADDpQAAxCAAAMQiAADEJAAAxCYAAMQoAADEKQAAxCoAAMQrAADELAAAxC4AAMQwAADEMQAAxDIAAMQ0AADENQAAxLAAAMSyAADEtAAAxLYAAMS4AADEuQAAxLoAAMS7AADEvAAAxL4AAMTAAADEwQAAxMIAAMTEAADExQAAxQ4AAMUyAADFWQAAxX0AAMV/AADFgQAAxYMAAMWFAADFhwAAxYkAAMWKAADFjAAAxaUAAMXCAADFxAAAxcYAAMXIAADFygAAxcwAAMXOAADF0AAAxe0AAMXvAADF8QAAxfMAAMX1AADF9wAAxfkAAMX7AADF/QAAxngAAMZ6AADGfAAAxn4AAMaAAADGgQAAxoIAAMaDAADGhAAAxoYAAMaIAADGiQAAxooAAMaMAADGjQAAxwgAAMcKAADHDAAAxw4AAMcQAADHEQAAxxIAAMcTAADHFAAAxxYAAMcYAADHGQAAxxoAAMccAADHHQAAx5gAAMeaAADHnAAAx54AAMegAADHoQAAx6IAAMejAADHpAAAx6YAAMeoAADHqQAAx6oAAMesAADHrQAAyCgAAMgqAADILAAAyC4AAMgwAADIMQAAyDIAAMgzAADINAAAyDYAAMg4AADIOQAAyDoAAMg8AADIPQAAyLgAAMi6AADIvAAAyL4AAMjAAADIwQAAyMIAAMjDAADIxAAAyMYAAMjIAADIyQAAyMoAAMjMAADIzQAAyUgAAMlKAADJTAAAyU4AAMlQAADJUQAAyVIAAMlTAADJVAAAyVYAAMlYAADJWQAAyVoAAMlcAADJXQAAydgAAMnaAADJ3AAAyd4AAMngAADJ4QAAyeIAAMnjAADJ5AAAyeYAAMnoAADJ6QAAyeoAAMnsAADJ7QAAyoAAAMqjAADKwwAAyuMAAMrlAADK5wAAyukAAMrrAADK7QAAyu4AAMrvAADK8QAAyvIAAMr0AADK9QAAyvgAAMr6AADK+wAAyvwAAMr+AADK/wAAywQAAMsdAADLJgAAyygAAMsqAADLMwAAyzUAAMs3AADLOQAAy0wAAMuVAADLuQAAy+AAAMwEAADMBgAAzAgAAMwKAADMDAAAzA4AAMwQAADMEQAAzBMAAMwsAADMTQAAzE8AAMxRAADMUwAAzFUAAMxXAADMWQAAzFsAAMxdAADMfgAAzIAAAMyCAADMhAAAzIYAAMyIAADMigAAzIwAAMyOAADMkAAAzQsAAM0NAADNDwAAzREAAM0TAADNFAAAzRUAAM0WAADNFwAAzRkAAM0bAADNHAAAzR0AAM0fAADNIAAAzZsAAM2dAADNnwAAzaEAAM2jAADNpAAAzaUAAM2mAADNpwAAzakAAM2rAADNrAAAza0AAM2vAADNsAAAzisAAM4tAADOLwAAzjEAAM4zAADONAAAzjUAAM42AADONwAAzjkAAM47AADOPAAAzj0AAM4/AADOQAAAzlkAAM5aAADOWwAAzl0AAM7YAADO2gAAztwAAM7eAADO4AAAzuEAAM7iAADO4wAAzuQAAM7mAADO6AAAzukAAM7qAADO7AAAzu0AAM9oAADPagAAz2wAAM9uAADPcAAAz3EAAM9yAADPcwAAz3QAAM92AADPeAAAz3kAAM96AADPfAAAz30AAM9+AADP+QAAz/sAAM/9AADP/wAA0AEAANACAADQAwAA0AQAANAFAADQBwAA0AkAANAKAADQCwAA0A0AANAOAADQiQAA0IsAANCNAADQjwAA0JEAANCSAADQkwAA0JQAANCVAADQlwAA0JkAANCaAADQmwAA0J0AANCeAADRGQAA0RsAANEdAADRHwAA0SEAANEiAADRIwAA0SQAANElAADRJwAA0SkAANEqAADRKwAA0S0AANEuAADRdwAA0ZsAANHCAADR5gAA0egAANHqAADR7AAA0e4AANHwAADR8gAA0fMAANH1AADSDgAA0isAANItAADSLwAA0jEAANIzAADSNQAA0jcAANI5AADSVgAA0lgAANJaAADSXAAA0l4AANJhAADSZAAA0mcAANJpAADSewAA0o8AANKhAADStgAA0sgAANLXAADS9AAA028AANNxAADTcwAA03UAANN3AADTeAAA03kAANN6AADTewAA030AANN/AADTgAAA04EAANODAADThAAA0/8AANQBAADUAwAA1AUAANQHAADUCAAA1AkAANQKAADUCwAA1A0AANQPAADUEAAA1BEAANQTAADUFAAA1BYAANSRAADUkwAA1JUAANSXAADUmQAA1JoAANSbAADUnAAA1J0AANSfAADUoQAA1KIAANSjAADUpQAA1KYAANUhAADVIwAA1SUAANUnAADVKQAA1SoAANUrAADVLAAA1S0AANUvAADVMQAA1TIAANUzAADVNQAA1TYAANW5AADV3QAA1gEAANYkAADWSwAA1msAANaSAADWuQAA1tkAANb9AADXIQAA1yMAANclAADXJwAA1ykAANcrAADXLQAA1zAAANcyAADXNAAA1zcAANc5AADXOwAA1z4AANdAAADXQQAA10YAANdfAADXZAAA12YAANdrAADXbQAA128AANe4AADX3AAA2AMAANgnAADYKQAA2CsAANgtAADYLwAA2DEAANgzAADYNAAA2DYAANhPAADYdAAA2HYAANh4AADYegAA2HwAANh+AADYgAAA2IIAANiEAADYhgAA2KsAANitAADYrwAA2LEAANizAADYtQAA2LcAANi5AADYuwAA2L0AANi/AADZOgAA2TwAANk+AADZQAAA2UIAANlDAADZRAAA2UUAANlGAADZSAAA2UoAANlLAADZTAAA2U4AANlPAADZYAAA2WEAANljAADZ3gAA2eAAANniAADZ5AAA2eYAANnnAADZ6AAA2ekAANnqAADZ7AAA2e4AANnvAADZ8AAA2fIAANnzAADabgAA2nAAANpyAADadAAA2nYAANp3AADaeAAA2nkAANp6AADafAAA2n4AANp/AADagAAA2oIAANqDAADalAAA2pkAANqbAADanQAA2q4AANq3AADauQAA2rsAANq9AADa2AAA21MAANtVAADbVwAA21kAANtbAADbXAAA210AANteAADbXwAA22EAANtjAADbZAAA22UAANtnAADbaAAA2+MAANvlAADb5wAA2+kAANvrAADb7AAA2+0AANvuAADb7wAA2/EAANvzAADb9AAA2/UAANv3AADb+AAA3AkAANwKAADcDAAA3IcAANyJAADciwAA3I0AANyPAADckAAA3JEAANySAADckwAA3JUAANyXAADcmAAA3JkAANybAADcnAAA3RcAAN0ZAADdGwAA3R0AAN0fAADdIAAA3SEAAN0iAADdIwAA3SUAAN0nAADdKAAA3SkAAN0rAADdLAAA3UUAAN1GAADdRwAA3UkAAN3EAADdxgAA3cgAAN3KAADdzAAA3c0AAN3OAADdzwAA3dAAAN3SAADd1AAA3dUAAN3WAADd2AAA3dkAAN5UAADeVgAA3lgAAN5aAADeXAAA3l0AAN5eAADeXwAA3mAAAN5iAADeZAAA3mUAAN5mAADeaAAA3mkAAN58AADelQAA3ugAAN7qAADe7AAA3u4AAN7wAADe8gAA3vQAAN72AADe+AAA3voAAN78AADe/gAA3wAAAN8CAADfBAAA3wYAAN8IAADfCgAA3wwAAN8OAADfEAAA32MAAN9lAADfaAAA32sAAN9uAADfcQAA33QAAN93AADfegAA330AAN+AAADfgwAA34YAAN+JAADfjAAA348AAN+SAADflQAA35gAAN+bAADfngAA36AAAN+yAADfzQAA398AAN/1AADgAwAA4BAAAOAbAADgMwAA4EYAAOBkAADgegAA4IkAAOCeAADgywAA4O8AAOECAADhHQAA4TAAAOFMAADh3wAA4gIAAOIiAADiQgAA4kQAAOJGAADiSAAA4koAAOJMAADiTQAA4k4AAOJQAADiUQAA4lMAAOJUAADiVgAA4lgAAOJZAADiWgAA4lwAAOJdAADiYgAA4nsAAOKEAADihgAA4ogAAOKRAADikwAA4pUAAOKXAADi4AAA4wQAAOMrAADjTwAA41EAAONTAADjVQAA41cAAONZAADjWwAA41wAAONeAADjdwAA45gAAOOaAADjnAAA454AAOOgAADjogAA46QAAOOmAADjqAAA48kAAOPLAADjzQAA488AAOPRAADj0wAA49UAAOPXAADj2QAA49sAAORWAADkWAAA5FoAAORcAADkXgAA5F8AAORgAADkYQAA5GIAAORkAADkZgAA5GcAAORoAADkagAA5GsAAOTmAADk6AAA5OoAAOTsAADk7gAA5O8AAOTwAADk8QAA5PIAAOT0AADk9gAA5PcAAOT4AADk+gAA5PsAAOV2AADleAAA5XoAAOV8AADlfgAA5X8AAOWAAADlgQAA5YIAAOWEAADlhgAA5YcAAOWIAADligAA5YsAAOWkAADlpQAA5aYAAOWoAADmIwAA5iUAAOYnAADmKQAA5isAAOYsAADmLQAA5i4AAOYvAADmMQAA5jMAAOY0AADmNQAA5jcAAOY4AADmswAA5rUAAOa3AADmuQAA5rsAAOa8AADmvQAA5r4AAOa/AADmwQAA5sMAAObEAADmxQAA5scAAObIAADnQwAA50UAAOdHAADnSQAA50sAAOdMAADnTQAA504AAOdPAADnUQAA51MAAOdUAADnVQAA51cAAOdYAADn0wAA59UAAOfXAADn2QAA59sAAOfcAADn3QAA594AAOffAADn4QAA5+MAAOfkAADn5QAA5+cAAOfoAADoYwAA6GUAAOhnAADoaQAA6GsAAOhsAADobQAA6G4AAOhvAADocQAA6HMAAOh0AADodQAA6HcAAOh4AADowQAA6OUAAOkMAADpMAAA6TIAAOk0AADpNgAA6TgAAOk6AADpPAAA6T0AAOk/AADpWAAA6XUAAOl3AADpeQAA6XsAAOl9AADpfwAA6YEAAOmDAADpoAAA6aIAAOmkAADppgAA6agAAOmrAADprgAA6bEAAOmzAADqLgAA6jAAAOoyAADqNAAA6jYAAOo3AADqOAAA6jkAAOo6AADqPAAA6j4AAOo/AADqQAAA6kIAAOpDAADqRgAA6sEAAOrDAADqxQAA6scAAOrJAADqygAA6ssAAOrMAADqzQAA6s8AAOrRAADq0gAA6tMAAOrVAADq1gAA61EAAOtTAADrVQAA61cAAOtZAADrWgAA61sAAOtcAADrXQAA618AAOthAADrYgAA62MAAOtlAADrZgAA6+EAAOvjAADr5QAA6+cAAOvpAADr6gAA6+sAAOvsAADr7QAA6+8AAOvxAADr8gAA6/MAAOv1AADr9gAA6/kAAOx0AADsdgAA7HgAAOx6AADsfAAA7H0AAOx+AADsfwAA7IAAAOyCAADshAAA7IUAAOyGAADsiAAA7IkAAO0EAADtBgAA7QgAAO0KAADtDAAA7Q0AAO0OAADtDwAA7RAAAO0SAADtFAAA7RUAAO0WAADtGAAA7RkAAO2UAADtlgAA7ZgAAO2aAADtnAAA7Z0AAO2eAADtnwAA7aAAAO2iAADtpAAA7aUAAO2mAADtqAAA7akAAO48AADuXwAA7n8AAO6fAADuoQAA7qMAAO6lAADupwAA7qkAAO6qAADuqwAA7q4AAO6vAADusQAA7rIAAO60AADutgAA7rcAAO64AADuuwAA7rwAAO7BAADu2gAA7uMAAO7lAADu5wAA7vAAAO7zAADu9gAA7vgAAO9BAADvZQAA74wAAO+wAADvswAA77UAAO+3AADvuQAA77sAAO+9AADvvgAA78EAAO/aAADv+wAA7/0AAO//AADwAQAA8AMAAPAFAADwBwAA8AkAAPALAADwLAAA8C8AAPAyAADwNQAA8DgAAPA7AADwPgAA8EEAAPBEAADwRgAA8MEAAPDDAADwxQAA8McAAPDKAADwywAA8MwAAPDNAADwzgAA8NAAAPDSAADw0wAA8NQAAPDWAADw1wAA8VIAAPFUAADxVgAA8VgAAPFbAADxXAAA8V0AAPFeAADxXwAA8WEAAPFjAADxZAAA8WUAAPFnAADxaAAA8eMAAPHlAADx6AAA8eoAAPHtAADx7gAA8e8AAPHwAADx8QAA8fMAAPH1AADx9gAA8fcAAPH5AADx+gAA8hMAAPIUAADyFQAA8hcAAPKSAADylAAA8pYAAPKYAADymwAA8pwAAPKdAADyngAA8p8AAPKhAADyowAA8qQAAPKlAADypwAA8qgAAPMjAADzJQAA8ycAAPMpAADzLAAA8y0AAPMuAADzLwAA8zAAAPMyAADzNAAA8zUAAPM2AADzOAAA8zkAAPO0AADztgAA87gAAPO6AADzvQAA874AAPO/AADzwAAA88EAAPPDAADzxQAA88YAAPPHAADzyQAA88oAAPRFAAD0RwAA9EkAAPRLAAD0TgAA9E8AAPRQAAD0UQAA9FIAAPRUAAD0VgAA9FcAAPRYAAD0WgAA9FsAAPTWAAD02AAA9NoAAPTcAAD03wAA9OAAAPThAAD04gAA9OMAAPTlAAD05wAA9OgAAPTpAAD06wAA9OwAAPU1AAD1WQAA9YAAAPWkAAD1pwAA9akAAPWrAAD1rQAA9a8AAPWxAAD1sgAA9bUAAPXOAAD16wAA9e0AAPXvAAD18QAA9fMAAPX1AAD19wAA9fkAAPYWAAD2GQAA9hwAAPYfAAD2IgAA9iUAAPYoAAD2KwAA9i0AAPaoAAD2qgAA9qwAAPauAAD2sQAA9rIAAPazAAD2tAAA9rUAAPa3AAD2uQAA9roAAPa7AAD2vQAA9r4AAPc5AAD3OwAA9z0AAPc/AAD3QgAA90MAAPdEAAD3RQAA90YAAPdIAAD3SgAA90sAAPdMAAD3TgAA908AAPfKAAD3zAAA984AAPfQAAD30wAA99QAAPfVAAD31gAA99cAAPfZAAD32wAA99wAAPfdAAD33wAA9+AAAPhbAAD4XQAA+F8AAPhhAAD4ZAAA+GUAAPhmAAD4ZwAA+GgAAPhqAAD4bAAA+G0AAPhuAAD4cAAA+HEAAPjsAAD47gAA+PAAAPjyAAD49QAA+PYAAPj3AAD4+AAA+PkAAPj7AAD4/QAA+P4AAPj/AAD5AQAA+QIAAPl9AAD5fwAA+YEAAPmDAAD5hgAA+YcAAPmIAAD5iQAA+YoAAPmMAAD5jgAA+Y8AAPmQAAD5kgAA+ZMAAPoOAAD6EAAA+hIAAPoUAAD6FwAA+hgAAPoZAAD6GgAA+hsAAPodAAD6HwAA+iAAAPohAAD6IwAA+iQAAPq3AAD62gAA+voAAPsaAAD7HAAA+x4AAPsgAAD7IgAA+yQAAPslAAD7JgAA+ykAAPsqAAD7LAAA+y0AAPswAAD7MgAA+zMAAPs0AAD7NwAA+zgAAPtBAAD7WgAA+2MAAPtlAAD7ZwAA+3AAAPtzAAD7dgAA+3gAAPvBAAD75QAA/AwAAPwwAAD8MwAA/DUAAPw3AAD8OQAA/DsAAPw9AAD8PgAA/EEAAPxaAAD8ewAA/H0AAPx/AAD8gQAA/IMAAPyFAAD8hwAA/IkAAPyLAAD8rAAA/K8AAPyyAAD8tQAA/LgAAPy7AAD8vgAA/MEAAPzEAAD8xgAA/UEAAP1DAAD9RQAA/UcAAP1KAAD9SwAA/UwAAP1NAAD9TgAA/VAAAP1SAAD9UwAA/VQAAP1WAAD9VwAA/dIAAP3UAAD91gAA/dgAAP3bAAD93AAA/d0AAP3eAAD93wAA/eEAAP3jAAD95AAA/eUAAP3nAAD96AAA/mMAAP5lAAD+aAAA/moAAP5tAAD+bgAA/m8AAP5wAAD+cQAA/nMAAP51AAD+dgAA/ncAAP55AAD+egAA/pMAAP6UAAD+lQAA/pcAAP8SAAD/FAAA/xYAAP8YAAD/GwAA/xwAAP8dAAD/HgAA/x8AAP8hAAD/IwAA/yQAAP8lAAD/JwAA/ygAAP+jAAD/pQAA/6cAAP+pAAD/rAAA/60AAP+uAAD/rwAA/7AAAP+yAAD/tAAA/7UAAP+2AAD/uAAA/7kAAQA0AAEANgABADgAAQA6AAEAPQABAD4AAQA/AAEAQAABAEEAAQBDAAEARQABAEYAAQBHAAEASQABAEoAAQDFAAEAxwABAMkAAQDLAAEAzgABAM8AAQDQAAEA0QABANIAAQDUAAEA1gABANcAAQDYAAEA2gABANsAAQFWAAEBWAABAVoAAQFcAAEBXwABAWAAAQFhAAEBYgABAWMAAQFlAAEBZwABAWgAAQFpAAEBawABAWwAAQG1AAEB2QABAgAAAQIkAAECJwABAikAAQIrAAECLQABAi8AAQIxAAECMgABAjUAAQJOAAECawABAm0AAQJvAAECcQABAnMAAQJ1AAECdwABAnkAAQKWAAECmQABApwAAQKfAAECogABAqUAAQKoAAECqwABAq0AAQMoAAEDKgABAywAAQMuAAEDMQABAzIAAQMzAAEDNAABAzUAAQM3AAEDOQABAzoAAQM7AAEDPQABAz4AAQO5AAEDuwABA74AAQPAAAEDwwABA8QAAQPFAAEDxgABA8cAAQPJAAEDywABA8wAAQPNAAEDzwABA9AAAQPSAAEETQABBE8AAQRRAAEEUwABBFYAAQRXAAEEWAABBFkAAQRaAAEEXAABBF4AAQRfAAEEYAABBGIAAQRjAAEE3gABBOAAAQTjAAEE5QABBOgAAQTpAAEE6gABBOsAAQTsAAEE7gABBPAAAQTxAAEE8gABBPQAAQT1AAEFeAABBZwAAQXAAAEF4wABBgoAAQYqAAEGUQABBngAAQaYAAEGvAABBuAAAQbiAAEG5QABBucAAQbpAAEG6wABBu4AAQbxAAEG8wABBvUAAQb4AAEG+gABBvwAAQb/AAEHAgABBwMAAQcMAAEHJQABByoAAQcsAAEHMQABBzQAAQc2AAEHfwABB6MAAQfKAAEH7gABB/EAAQfzAAEH9QABB/cAAQf5AAEH+wABB/wAAQf/AAEIGAABCD0AAQg/AAEIQQABCEMAAQhFAAEIRwABCEkAAQhLAAEITQABCE8AAQh0AAEIdwABCHoAAQh9AAEIgAABCIMAAQiGAAEIiQABCIwAAQiPAAEIkQABCQwAAQkOAAEJEQABCRMAAQkWAAEJFwABCRgAAQkZAAEJGgABCRwAAQkeAAEJHwABCSAAAQkiAAEJIwABCTQAAQk1AAEJNwABCbIAAQm0AAEJtgABCbgAAQm7AAEJvAABCb0AAQm+AAEJvwABCcEAAQnDAAEJxAABCcUAAQnHAAEJyAABCkMAAQpFAAEKSAABCkoAAQpNAAEKTgABCk8AAQpQAAEKUQABClMAAQpVAAEKVgABClcAAQpZAAEKWgABCmsAAQpwAAEKcwABCnUAAQqGAAEKkwABCpYAAQqYAAEKmwABCp0AAQq4AAEKwQABCzwAAQs+AAELQAABC0IAAQtFAAELRgABC0cAAQtIAAELSQABC0sAAQtNAAELTgABC08AAQtRAAELUgABC80AAQvPAAEL0gABC9QAAQvXAAEL2AABC9kAAQvaAAEL2wABC90AAQvfAAEL4AABC+EAAQvjAAEL5AABC/UAAQv2AAEL+AABDHMAAQx1AAEMdwABDHkAAQx8AAEMfQABDH4AAQx/AAEMgAABDIIAAQyEAAEMhQABDIYAAQyIAAEMiQABDQQAAQ0GAAENCQABDQsAAQ0OAAENDwABDRAAAQ0RAAENEgABDRQAAQ0WAAENFwABDRgAAQ0aAAENGwABDTQAAQ01AAENNgABDTgAAQ2zAAENtQABDbcAAQ25AAENvAABDb0AAQ2+AAENvwABDcAAAQ3CAAENxAABDcUAAQ3GAAENyAABDckAAQ5EAAEORgABDkkAAQ5LAAEOTgABDk8AAQ5QAAEOUQABDlIAAQ5UAAEOVgABDlcAAQ5YAAEOWgABDlsAAQ50AAEOjQABDtQAAQ7XAAEO2gABDt0AAQ7gAAEO4wABDuYAAQ7pAAEO7AABDu8AAQ7yAAEO9QABDvgAAQ77AAEO/QABDwAAAQ8DAAEPBgABD00AAQ9QAAEPUwABD1YAAQ9ZAAEPXAABD18AAQ9iAAEPZQABD2gAAQ9rAAEPbgABD3EAAQ90AAEPdwABD3oAAQ99AAEPgAABD4IAAQ+UAAEPngABD6gAAQ+xAAEP0gABD9sAAQ/jAAEP7gABEAkAARASAAEQKgABEEAAARBqAAEQhQABEJkAAREsAAERTwABEW8AARGPAAERkQABEZMAARGVAAERlwABEZoAARGbAAERnAABEZ8AARGgAAERogABEaMAARGlAAERqAABEakAARGqAAERrQABEa4AARG3AAER0AABEdkAARHbAAER3QABEeYAARHpAAER7AABEe4AARI3AAESWwABEoIAARKmAAESqQABEqsAARKtAAESrwABErEAARKzAAEStAABErcAARLQAAES8QABEvMAARL1AAES9wABEvkAARL7AAES/QABEv8AARMBAAETIgABEyUAARMoAAETKwABEy4AARMxAAETNAABEzcAARM6AAETPAABE7cAARO5AAETuwABE70AARPAAAETwQABE8IAARPDAAETxAABE8YAARPIAAETyQABE8oAARPMAAETzQABFEgAARRKAAEUTAABFE4AARRRAAEUUgABFFMAARRUAAEUVQABFFcAARRZAAEUWgABFFsAARRdAAEUXgABFNkAARTbAAEU3gABFOAAARTjAAEU5AABFOUAARTmAAEU5wABFOkAARTrAAEU7AABFO0AARTvAAEU8AABFQkAARUKAAEVCwABFQ0AARWIAAEVigABFYwAARWOAAEVkQABFZIAARWTAAEVlAABFZUAARWXAAEVmQABFZoAARWbAAEVnQABFZ4AARYZAAEWGwABFh0AARYfAAEWIgABFiMAARYkAAEWJQABFiYAARYoAAEWKgABFisAARYsAAEWLgABFi8AARaqAAEWrAABFq4AARawAAEWswABFrQAARa1AAEWtgABFrcAARa5AAEWuwABFrwAARa9AAEWvwABFsAAARc7AAEXPQABFz8AARdBAAEXRAABF0UAARdGAAEXRwABF0gAARdKAAEXTAABF00AARdOAAEXUAABF1EAARfMAAEXzgABF9AAARfSAAEX1QABF9YAARfXAAEX2AABF9kAARfbAAEX3QABF94AARffAAEX4QABF+IAARgrAAEYTwABGHYAARiaAAEYnQABGJ8AARihAAEYowABGKUAARinAAEYqAABGKsAARjEAAEY4QABGOMAARjlAAEY5wABGOkAARjrAAEY7QABGO8AARkMAAEZDwABGRIAARkVAAEZGAABGRsAARkeAAEZIQABGSMAARmeAAEZoAABGaIAARmkAAEZpwABGagAARmpAAEZqgABGasAARmtAAEZrwABGbAAARmxAAEZswABGbQAARovAAEaMQABGjMAARo1AAEaOAABGjkAARo6AAEaOwABGjwAARo+AAEaQAABGkEAARpCAAEaRAABGkUAARrAAAEawgABGsQAARrGAAEayQABGsoAARrLAAEazAABGs0AARrPAAEa0QABGtIAARrTAAEa1QABGtYAARtRAAEbUwABG1UAARtXAAEbWgABG1sAARtcAAEbXQABG14AARtgAAEbYgABG2MAARtkAAEbZgABG2cAARviAAEb5AABG+YAARvoAAEb6wABG+wAARvtAAEb7gABG+8AARvxAAEb8wABG/QAARv1AAEb9wABG/gAARxzAAEcdQABHHcAARx5AAEcfAABHH0AARx+AAEcfwABHIAAARyCAAEchAABHIUAARyGAAEciAABHIkAAR0EAAEdBgABHQgAAR0KAAEdDQABHQ4AAR0PAAEdEAABHREAAR0TAAEdFQABHRYAAR0XAAEdGQABHRoAAR2tAAEd0AABHfAAAR4QAAEeEgABHhQAAR4WAAEeGAABHhsAAR4cAAEeHQABHiAAAR4hAAEeIwABHiQAAR4mAAEeKQABHioAAR4rAAEeLgABHi8AAR44AAEeUQABHloAAR5cAAEeXgABHmcAAR5qAAEebQABHm8AAR64AAEe3AABHwMAAR8nAAEfKgABHywAAR8uAAEfMAABHzIAAR80AAEfNQABHzgAAR9RAAEfcgABH3QAAR92AAEfeAABH3oAAR98AAEffgABH4AAAR+CAAEfowABH6YAAR+pAAEfrAABH68AAR+yAAEftQABH7gAAR+7AAEfvQABIDgAASA6AAEgPAABID4AASBBAAEgQgABIEMAASBEAAEgRQABIEcAASBJAAEgSgABIEsAASBNAAEgTgABIMkAASDLAAEgzQABIM8AASDSAAEg0wABINQAASDVAAEg1gABINgAASDaAAEg2wABINwAASDeAAEg3wABIVoAASFcAAEhXwABIWEAASFkAAEhZQABIWYAASFnAAEhaAABIWoAASFsAAEhbQABIW4AASFwAAEhcQABIYoAASGLAAEhjAABIY4AASIJAAEiCwABIg0AASIPAAEiEgABIhMAASIUAAEiFQABIhYAASIYAAEiGgABIhsAASIcAAEiHgABIh8AASKaAAEinAABIp4AASKgAAEiowABIqQAASKlAAEipgABIqcAASKpAAEiqwABIqwAASKtAAEirwABIrAAASMrAAEjLQABIy8AASMxAAEjNAABIzUAASM2AAEjNwABIzgAASM6AAEjPAABIz0AASM+AAEjQAABI0EAASO8AAEjvgABI8AAASPCAAEjxQABI8YAASPHAAEjyAABI8kAASPLAAEjzQABI84AASPPAAEj0QABI9IAASRNAAEkTwABJFEAASRTAAEkVgABJFcAASRYAAEkWQABJFoAASRcAAEkXgABJF8AASRgAAEkYgABJGMAASSsAAEk0AABJPcAASUbAAElHgABJSAAASUiAAElJAABJSYAASUoAAElKQABJSwAASVFAAElYgABJWQAASVmAAElaAABJWoAASVsAAElbgABJXAAASWNAAElkAABJZMAASWWAAElmQABJZwAASWfAAElogABJaQAASYfAAEmIQABJiMAASYlAAEmKAABJikAASYqAAEmKwABJiwAASYuAAEmMAABJjEAASYyAAEmNAABJjUAASawAAEmsgABJrQAASa2AAEmuQABJroAASa7AAEmvAABJr0AASa/AAEmwQABJsIAASbDAAEmxQABJsYAASdBAAEnQwABJ0UAASdHAAEnSgABJ0sAASdMAAEnTQABJ04AASdQAAEnUgABJ1MAASdUAAEnVgABJ1cAASfSAAEn1AABJ9cAASfZAAEn3AABJ90AASfeAAEn3wABJ+AAASfiAAEn5AABJ+UAASfmAAEn6AABJ+kAASfsAAEoZwABKGkAAShrAAEobQABKHAAAShxAAEocgABKHMAASh0AAEodgABKHgAASh5AAEoegABKHwAASh9AAEo+AABKPoAASj8AAEo/gABKQEAASkCAAEpAwABKQQAASkFAAEpBwABKQkAASkKAAEpCwABKQ0AASkOAAEpiQABKYsAASmNAAEpjwABKZIAASmTAAEplAABKZUAASmWAAEpmAABKZoAASmbAAEpnAABKZ4AASmfAAEqMgABKlUAASp1AAEqlQABKpcAASqZAAEqmwABKp0AASqgAAEqoQABKqIAASqlAAEqpgABKqgAASqpAAEqqwABKq4AASqvAAEqsAABKrMAASq0AAEqvQABKtYAASrfAAEq4QABKuMAASrsAAEq7wABKvIAASr0AAErPQABK2EAASuIAAErrAABK68AASuxAAErswABK7UAASu3AAEruQABK7oAASu9AAEr1gABK/cAASv5AAEr+wABK/0AASv/AAEsAQABLAMAASwFAAEsBwABLCgAASwrAAEsLgABLDEAASw0AAEsNwABLDoAASw9AAEsQAABLEIAASy9AAEsvwABLMEAASzDAAEsxgABLMcAASzIAAEsyQABLMoAASzMAAEszgABLM8AASzQAAEs0gABLNMAAS1OAAEtUAABLVIAAS1UAAEtVwABLVgAAS1ZAAEtWgABLVsAAS1dAAEtXwABLWAAAS1hAAEtYwABLWQAAS3fAAEt4QABLeQAAS3mAAEt6QABLeoAAS3rAAEt7AABLe0AAS3vAAEt8QABLfIAAS3zAAEt9QABLfYAAS4PAAEuEAABLhEAAS4TAAEujgABLpAAAS6SAAEulAABLpcAAS6YAAEumQABLpoAAS6bAAEunQABLp8AAS6gAAEuoQABLqMAAS6kAAEvHwABLyEAAS8jAAEvJQABLygAAS8pAAEvKgABLysAAS8sAAEvLgABLzAAAS8xAAEvMgABLzQAAS81AAEvsAABL7IAAS+0AAEvtgABL7kAAS+6AAEvuwABL7wAAS+9AAEvvwABL8EAAS/CAAEvwwABL8UAAS/GAAEwQQABMEMAATBFAAEwRwABMEoAATBLAAEwTAABME0AATBOAAEwUAABMFIAATBTAAEwVAABMFYAATBXAAEw0gABMNQAATDWAAEw2AABMNsAATDcAAEw3QABMN4AATDfAAEw4QABMOMAATDkAAEw5QABMOcAATDoAAExMQABMVUAATF8AAExoAABMaMAATGlAAExpwABMakAATGrAAExrQABMa4AATGxAAExygABMecAATHpAAEx6wABMe0AATHvAAEx8QABMfMAATH1AAEyEgABMhUAATIYAAEyGwABMh4AATIhAAEyJAABMicAATIpAAEypAABMqYAATKoAAEyqgABMq0AATKuAAEyrwABMrAAATKxAAEyswABMrUAATK2AAEytwABMrkAATK6AAEzNQABMzcAATM5AAEzOwABMz4AATM/AAEzQAABM0EAATNCAAEzRAABM0YAATNHAAEzSAABM0oAATNLAAEzxgABM8gAATPKAAEzzAABM88AATPQAAEz0QABM9IAATPTAAEz1QABM9cAATPYAAEz2QABM9sAATPcAAE0VwABNFkAATRbAAE0XQABNGAAATRhAAE0YgABNGMAATRkAAE0ZgABNGgAATRpAAE0agABNGwAATRtAAE06AABNOoAATTsAAE07gABNPEAATTyAAE08wABNPQAATT1AAE09wABNPkAATT6AAE0+wABNP0AATT+AAE1eQABNXsAATV9AAE1fwABNYIAATWDAAE1hAABNYUAATWGAAE1iAABNYoAATWLAAE1jAABNY4AATWPAAE2CgABNgwAATYOAAE2EAABNhMAATYUAAE2FQABNhYAATYXAAE2GQABNhsAATYcAAE2HQABNh8AATYgAAE2swABNtYAATb2AAE3FgABNxgAATcaAAE3HAABNx4AATchAAE3IgABNyMAATcmAAE3JwABNykAATcqAAE3LAABNy8AATcwAAE3MQABNzQAATc1AAE3OgABN1MAATdcAAE3XgABN2AAATdpAAE3bAABN28AATdxAAE3ugABN94AATgFAAE4KQABOCwAATguAAE4MAABODIAATg0AAE4NgABODcAATg6AAE4UwABOHQAATh2AAE4eAABOHoAATh8AAE4fgABOIAAATiCAAE4hAABOKUAATioAAE4qwABOK4AATixAAE4tAABOLcAATi6AAE4vQABOL8AATk6AAE5PAABOT4AATlAAAE5QwABOUQAATlFAAE5RgABOUcAATlJAAE5SwABOUwAATlNAAE5TwABOVAAATnLAAE5zQABOc8AATnRAAE51AABOdUAATnWAAE51wABOdgAATnaAAE53AABOd0AATneAAE54AABOeEAATpcAAE6XgABOmEAATpjAAE6ZgABOmcAATpoAAE6aQABOmoAATpsAAE6bgABOm8AATpwAAE6cgABOnMAATqMAAE6jQABOo4AATqQAAE7CwABOw0AATsPAAE7EQABOxQAATsVAAE7FgABOxcAATsYAAE7GgABOxwAATsdAAE7HgABOyAAATshAAE7nAABO54AATugAAE7ogABO6UAATumAAE7pwABO6gAATupAAE7qwABO60AATuuAAE7rwABO7EAATuyAAE8LQABPC8AATwxAAE8MwABPDYAATw3AAE8OAABPDkAATw6AAE8PAABPD4AATw/AAE8QAABPEIAATxDAAE8vgABPMAAATzCAAE8xAABPMcAATzIAAE8yQABPMoAATzLAAE8zQABPM8AATzQAAE80QABPNMAATzUAAE9TwABPVEAAT1TAAE9VQABPVgAAT1ZAAE9WgABPVsAAT1cAAE9XgABPWAAAT1hAAE9YgABPWQAAT1lAAE9rgABPdIAAT35AAE+HQABPiAAAT4iAAE+JAABPiYAAT4oAAE+KgABPisAAT4uAAE+RwABPmQAAT5mAAE+aAABPmoAAT5sAAE+bgABPnAAAT5yAAE+jwABPpIAAT6VAAE+mAABPpsAAT6eAAE+oQABPqQAAT6mAAE/IQABPyMAAT8lAAE/JwABPyoAAT8rAAE/LAABPy0AAT8uAAE/MAABPzIAAT8zAAE/NAABPzYAAT83AAE/sgABP7QAAT+2AAE/uAABP7sAAT+8AAE/vQABP74AAT+/AAE/wQABP8MAAT/EAAE/xQABP8cAAT/IAAFAQwABQEUAAUBHAAFASQABQEwAAUBNAAFATgABQE8AAUBQAAFAUgABQFQAAUBVAAFAVgABQFgAAUBZAAFA1AABQNYAAUDYAAFA2gABQN0AAUDeAAFA3wABQOAAAUDhAAFA4wABQOUAAUDmAAFA5wABQOkAAUDqAAFBZQABQWcAAUFpAAFBawABQW4AAUFvAAFBcAABQXEAAUFyAAFBdAABQXYAAUF3AAFBeAABQXoAAUF7AAFB9gABQfgAAUH6AAFB/AABQf8AAUIAAAFCAQABQgIAAUIDAAFCBQABQgcAAUIIAAFCCQABQgsAAUIMAAFChwABQokAAUKLAAFCjQABQpAAAUKRAAFCkgABQpMAAUKUAAFClgABQpgAAUKZAAFCmgABQpwAAUKdAAFDMAABQ1M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AAVShAAFUogABVKMAAVSkAAFUpgABVKgAAVSpAAFUqgABVKwAAVStAAFVKAABVSoAAVUsAAFVLgABVTEAAVUyAAFVMwABVTQAAVU1AAFVNwABVTkAAVU6AAFVOwABVT0AAVU+AAFVuQABVbsAAVW9AAFVvwABVcIAAVXDAAFVxAABVcUAAVXGAAFVyAABVcoAAVXLAAFVzAABVc4AAVXPAAFWSgABVkwAAVZOAAFWUAABVlMAAVZUAAFWVQABVlYAAVZXAAFWWQABVlsAAVZcAAFWXQABVl8AAVZgAAFWqQABVs0AAVb0AAFXGAABVxsAAVcdAAFXHwABVyEAAVcjAAFXJQABVyYAAVcpAAFXQgABV18AAVdhAAFXYwABV2UAAVdnAAFXaQABV2sAAVdtAAFXigABV40AAVeQAAFXkwABV5YAAVeZAAFXnAABV58AAVehAAFYHAABWB4AAVggAAFYIgABWCUAAVgmAAFYJwABWCgAAVgpAAFYKwABWC0AAVguAAFYLwABWDEAAVgyAAFYrQABWK8AAVixAAFYswABWLYAAVi3AAFYuAABWLkAAVi6AAFYvAABWL4AAVi/AAFYwAABWMIAAVjDAAFZPgABWUAAAVlCAAFZRAABWUcAAVlIAAFZSQABWUoAAVlLAAFZTQABWU8AAVlQAAFZUQABWVMAAVlUAAFZzwABWdEAAVnTAAFZ1QABWdgAAVnZAAFZ2gABWdsAAVncAAFZ3gABWeAAAVnhAAFZ4gABWeQAAVnlAAFaYAABWmIAAVpkAAFaZgABWmkAAVpqAAFaawABWmwAAVptAAFabwABWnEAAVpyAAFacwABWnUAAVp2AAFa8QABWvMAAVr1AAFa9wABWvoAAVr7AAFa/AABWv0AAVr+AAFbAAABWwIAAVsDAAFbBAABWwYAAVsHAAFbggABW4QAAVuGAAFbiAABW4sAAVuMAAFbjQABW44AAVuPAAFbkQABW5MAAVuUAAFblQABW5cAAVuYAAFcKwABXE4AAVxuAAFcjgABXJAAAVySAAFclAABXJYAAVyZAAFcmgABXJsAAVyeAAFcnwABXKEAAVyiAAFcpAABXKcAAVyoAAFcqQABXKwAAVytAAFcsgABXMsAAVzUAAFc1gABXNgAAVzhAAFc5AABXOcAAVzpAAFdMgABXVYAAV19AAFdoQABXaQAAV2mAAFdqAABXaoAAV2sAAFdrgABXa8AAV2yAAFdywABXewAAV3uAAFd8AABXfIAAV30AAFd9gABXfgAAV36AAFd/AABXh0AAV4gAAFeIwABXiYAAV4pAAFeLAABXi8AAV4yAAFeNQABXjcAAV6yAAFetAABXrYAAV64AAFeuwABXrwAAV69AAFevgABXr8AAV7BAAFewwABXsQAAV7FAAFexwABXsgAAV9DAAFfRQABX0cAAV9JAAFfTAABX00AAV9OAAFfTwABX1AAAV9SAAFfVAABX1UAAV9WAAFfWAABX1kAAV/UAAFf1gABX9kAAV/bAAFf3gABX98AAV/gAAFf4QABX+IAAV/kAAFf5gABX+cAAV/oAAFf6gABX+sAAWAEAAFgBQABYAYAAWAIAAFggwABYIUAAWCHAAFgiQABYIwAAWCNAAFgjgABYI8AAWCQAAFgkgABYJQAAWCVAAFglgABYJgAAWCZAAFhFAABYRYAAWEYAAFhGgABYR0AAWEeAAFhHwABYSAAAWEhAAFhIwABYSUAAWEmAAFhJwABYSkAAWEqAAFhpQABYacAAWGpAAFhqwABYa4AAWGvAAFhsAABYbEAAWGyAAFhtAABYbYAAWG3AAFhuAABYboAAWG7AAFiNgABYjgAAWI6AAFiPAABYj8AAWJAAAFiQQABYkIAAWJDAAFiRQABYkcAAWJIAAFiSQABYksAAWJMAAFixwABYskAAWLLAAFizQABYtAAAWLRAAFi0gABYtMAAWLUAAFi1gABYtgAAWLZAAFi2gABYtwAAWLdAAFjJgABY0oAAWNxAAFjlQABY5gAAWOaAAFjnAABY54AAWOgAAFjogABY6MAAWOmAAFjvwABY9wAAWPeAAFj4AABY+IAAWPkAAFj5gABY+gAAWPqAAFkBwABZAoAAWQNAAFkEAABZBMAAWQWAAFkGQABZBwAAWQeAAFkmQABZJsAAWSdAAFknwABZKIAAWSjAAFkpAABZKUAAWSmAAFkqAABZKoAAWSrAAFkrAABZK4AAWSvAAFlKgABZSwAAWUuAAFlMAABZTMAAWU0AAFlNQABZTYAAWU3AAFlOQABZTsAAWU8AAFlPQABZT8AAWVAAAFluwABZb0AAWW/AAFlwQABZcQAAWXFAAFlxgABZccAAWXIAAFlygABZcwAAWXNAAFlzgABZdAAAWXRAAFmTAABZk4AAWZRAAFmUwABZlYAAWZXAAFmWAABZlkAAWZaAAFmXAABZl4AAWZfAAFmYAABZmIAAWZjAAFm3gABZuAAAWbiAAFm5AABZucAAWboAAFm6QABZuoAAWbrAAFm7QABZu8AAWbwAAFm8QABZvMAAWb0AAFnbwABZ3EAAWdzAAFndQABZ3gAAWd5AAFnegABZ3sAAWd8AAFnfgABZ4AAAWeBAAFnggABZ4QAAWeFAAFoAAABaAIAAWgEAAFoBgABaAkAAWgKAAFoCwABaAwAAWgNAAFoDwABaBEAAWgSAAFoEwABaBUAAWgWAAFoqQABaMwAAWjsAAFpDAABaQ4AAWkQAAFpEgABaRQAAWkXAAFpGAABaRkAAWkcAAFpHQABaR8AAWkgAAFpIgABaSUAAWkmAAFpJwABaSoAAWkrAAFpMAABaUkAAWlSAAFpVAABaVYAAWlfAAFpYgABaWUAAWlnAAFpsAABadQAAWn7AAFqHwABaiIAAWokAAFqJgABaigAAWoqAAFqLAABai0AAWowAAFqSQABamoAAWpsAAFqbgABanAAAWpyAAFqdAABanYAAWp4AAFqegABapsAAWqeAAFqoQABaqQAAWqnAAFqqgABaq0AAWqwAAFqswABarUAAWswAAFrMgABazQAAWs2AAFrOQABazoAAWs7AAFrPAABaz0AAWs/AAFrQQABa0IAAWtDAAFrRQABa0YAAWvBAAFrwwABa8UAAWvHAAFrygABa8sAAWvMAAFrzQABa84AAWvQAAFr0gABa9MAAWvUAAFr1gABa9cAAWxSAAFsVAABbFcAAWxZAAFsXAABbF0AAWxeAAFsXwABbGAAAWxiAAFsZAABbGUAAWxmAAFsaAABbGkAAWyCAAFsgwABbIQAAWyGAAFtAQABbQMAAW0FAAFtBwABbQoAAW0LAAFtDAABbQ0AAW0OAAFtEAABbRIAAW0TAAFtFAABbRYAAW0XAAFtkgABbZQAAW2WAAFtmAABbZsAAW2cAAFtnQABbZ4AAW2fAAFtoQABbaMAAW2kAAFtpQABbacAAW2oAAFuIwABbiUAAW4nAAFuKQABbiwAAW4tAAFuLgABbi8AAW4wAAFuMgABbjQAAW41AAFuNgABbjgAAW45AAFutAABbrYAAW64AAFuugABbr0AAW6+AAFuvwABbsAAAW7BAAFuwwABbsUAAW7GAAFuxwABbskAAW7KAAFvRQABb0cAAW9JAAFvSwABb04AAW9PAAFvUAABb1EAAW9SAAFvVAABb1YAAW9XAAFvWAABb1oAAW9bAAFvpAABb8gAAW/vAAFwEwABcBYAAXAYAAFwGgABcBwAAXAeAAFwIAABcCEAAXAkAAFwPQABcFoAAXBcAAFwXgABcGAAAXBiAAFwZAABcGYAAXBoAAFwhQABcIgAAXCLAAFwjgABcJEAAXCUAAFwlwABcJoAAXCcAAFxFwABcRkAAXEbAAFxHQABcSAAAXEhAAFxIgABcSMAAXEkAAFxJgABcSgAAXEpAAFxKgABcSwAAXEtAAFxqAABcaoAAXGsAAFxrgABcbEAAXGyAAFxswABcbQAAXG1AAFxtwABcbkAAXG6AAFxuwABcb0AAXG+AAFyOQABcjsAAXI9AAFyPwABckIAAXJDAAFyRAABckUAAXJGAAFySAABckoAAXJLAAFyTAABck4AAXJPAAFyygABcswAAXLPAAFy0QABctQAAXLVAAFy1gABctcAAXLYAAFy2gABctwAAXLdAAFy3gABcuAAAXLhAAFzXAABc14AAXNgAAFzYgABc2UAAXNmAAFzZwABc2gAAXNpAAFzawABc20AAXNuAAFzbwABc3EAAXNyAAFz7QABc+8AAXPxAAFz8wABc/YAAXP3AAFz+AABc/kAAXP6AAFz/AABc/4AAXP/AAF0AAABdAIAAXQDAAF0fgABdIAAAXSCAAF0hAABdIcAAXSIAAF0iQABdIoAAXSLAAF0jQABdI8AAXSQAAF0kQABdJMAAXSUAAF1JwABdUoAAXVqAAF1igABdYwAAXWOAAF1kAABdZIAAXWVAAF1lgABdZcAAXWaAAF1mwABdZ0AAXWeAAF1oQABdaQAAXWlAAF1pgABdakAAXWqAAF1rwABdcgAAXXRAAF10wABddUAAXXeAAF14QABdeQAAXXmAAF2LwABdlMAAXZ6AAF2ngABdqEAAXajAAF2pQABdqcAAXapAAF2qwABdqwAAXavAAF2yAABdukAAXbrAAF27QABdu8AAXbxAAF28wABdvUAAXb3AAF2+QABdxoAAXcdAAF3IAABdyMAAXcmAAF3KQABdywAAXcvAAF3MgABdzQAAXevAAF3sQABd7MAAXe1AAF3uAABd7kAAXe6AAF3uwABd7wAAXe+AAF3wAABd8EAAXfCAAF3xAABd8UAAXhAAAF4QgABeEQAAXhGAAF4SQABeEoAAXhLAAF4TAABeE0AAXhPAAF4UQABeFIAAXhTAAF4VQABeFYAAXjRAAF40wABeNYAAXjYAAF42wABeNwAAXjdAAF43gABeN8AAXjhAAF44wABeOQAAXjlAAF45wABeOgAAXkBAAF5AgABeQMAAXkFAAF5gAABeYIAAXmEAAF5hgABeYkAAXmKAAF5iwABeYwAAXmNAAF5jwABeZEAAXmSAAF5kwABeZUAAXmWAAF6EQABehMAAXoVAAF6FwABehoAAXobAAF6HAABeh0AAXoeAAF6IAABeiIAAXojAAF6JAABeiYAAXonAAF6ogABeqQAAXqmAAF6qAABeqsAAXqsAAF6rQABeq4AAXqvAAF6sQABerMAAXq0AAF6tQABercAAXq4AAF7MwABezUAAXs3AAF7OQABezwAAXs9AAF7PgABez8AAXtAAAF7QgABe0QAAXtFAAF7RgABe0gAAXtJAAF7xAABe8YAAXvIAAF7ygABe80AAXvOAAF7zwABe9AAAXvRAAF70wABe9UAAXvWAAF71wABe9kAAXvaAAF8IwABfEcAAXxuAAF8kgABfJUAAXyXAAF8mQABfJsAAXydAAF8nwABfKAAAXyjAAF8vAABfNkAAXzbAAF83QABfN8AAXzhAAF84wABfOUAAXznAAF9BAABfQcAAX0KAAF9DQABfRAAAX0TAAF9FgABfRkAAX0bAAF9lgABfZgAAX2aAAF9nAABfZ8AAX2gAAF9oQABfaIAAX2jAAF9pQABfacAAX2oAAF9qQABfasAAX2sAAF+JwABfikAAX4rAAF+LQABfjAAAX4xAAF+MgABfjMAAX40AAF+NgABfjgAAX45AAF+OgABfjwAAX49AAF+uAABfroAAX68AAF+vgABfsEAAX7CAAF+wwABfsQAAX7FAAF+xwABfskAAX7KAAF+ywABfs0AAX7OAAF/SQABf0sAAX9OAAF/UAABf1MAAX9UAAF/VQABf1YAAX9XAAF/WQABf1sAAX9cAAF/XQABf18AAX9gAAF/4wABgAcAAYArAAGATgABgHUAAYCVAAGAvAABgOMAAYEDAAGBJwABgUsAAYFNAAGBUAABgVIAAYFUAAGBVgABgVkAAYFcAAGBXgABgWAAAYFjAAGBZQABgWcAAYFqAAGBbQABgW4AAYF3AAGBkAABgZUAAYGXAAGBnAABgZ8AAYGhAAGB6gABgg4AAYI1AAGCWQABglwAAYJeAAGCYAABgmIAAYJkAAGCZgABgmcAAYJqAAGCgwABgqgAAYKqAAGCrAABgq4AAYKwAAGCsgABgrQAAYK2AAGCuAABgroAAYLfAAGC4gABguUAAYLoAAGC6wABgu4AAYLxAAGC9AABgvcAAYL6AAGC/AABg3cAAYN5AAGDfAABg34AAYOBAAGDggABg4MAAYOEAAGDhQABg4cAAYOJAAGDigABg4sAAYONAAGDjgABg58AAYOgAAGDogABhB0AAYQfAAGEIQABhCMAAYQmAAGEJwABhCgAAYQpAAGEKgABhCwAAYQuAAGELwABhDAAAYQyAAGEMwABhK4AAYSwAAGEswABhLUAAYS4AAGEuQABhLoAAYS7AAGEvAABhL4AAYTAAAGEwQABhMIAAYTEAAGExQABhNYAAYTbAAGE3gABhOAAAYTxAAGE+gABhP0AAYUAAAGFAgABhR0AAYWYAAGFmgABhZwAAYWeAAGFoQABhaIAAYWjAAGFpAABhaUAAYWnAAGFqQABhaoAAYWrAAGFrQABha4AAYYpAAGGKwABhi4AAYYwAAGGMwABhjQAAYY1AAGGNgABhjcAAYY5AAGGOwABhjwAAYY9AAGGPwABhkAAAYZRAAGGUgABhlQAAYbPAAGG0QABhtMAAYbVAAGG2AABhtkAAYbaAAGG2wABhtwAAYbeAAGG4AABhuEAAYbiAAGG5AABhuUAAYdgAAGHYgABh2UAAYdnAAGHagABh2sAAYdsAAGHbQABh24AAYdwAAGHcgABh3MAAYd0AAGHdgABh3cAAYeQAAGHkQABh5IAAYeUAAGIDwABiBEAAYgTAAGIFQABiBgAAYgZAAGIGgABiBsAAYgcAAGIHgABiCAAAYghAAGIIgABiCQAAYglAAGIoAABiKIAAYilAAGIpwABiKoAAYirAAGIrAABiK0AAYiuAAGIsAABiLIAAYizAAGItAABiLYAAYi3AAGI1QABiO4AAYllAAGJaAABiWsAAYluAAGJcQABiXQAAYl3AAGJegABiX0AAYmAAAGJgwABiYYAAYmJAAGJjAABiY8AAYmSAAGJlQABiZgAAYmbAAGJngABiaEAAYmkAAGJpwABiaoAAYmtAAGJsAABibMAAYm2AAGJuQABibwAAYozAAGKNgABijkAAYo8AAGKPwABikIAAYpFAAGKSAABiksAAYpOAAGKUQABilQAAYpXAAGKWgABil0AAYpgAAGKYwABimYAAYppAAGKbAABim8AAYpyAAGKdQABingAAYp7AAGKfgABioEAAYqEAAGKhwABiooAAYqMAAGKrAABir4AAYrNAAGK7QABiwEAAYsWAAGLHwABiy0AAYs3AAGLQAABi1UAAYtgAAGLewABi4MAAYuZAAGLqwABi8MAAYvNAAGL0gABi+0AAYv7AAGMBAABjCEAAYw/AAGMUQABjGQAAYyZAAGMqAABjTsAAY1eAAGNfgABjZ4AAY2gAAGNogABjaQAAY2mAAGNqQABjaoAAY2rAAGNrgABja8AAY2xAAGNsgABjbQAAY23AAGNuAABjbkAAY28AAGNvQABjcIAAY3bAAGN5AABjeYAAY3oAAGN8QABjfQAAY33AAGN+QABjkIAAY5mAAGOjQABjrEAAY60AAGOtgABjrgAAY66AAGOvAABjr4AAY6/AAGOwgABjtsAAY78AAGO/gABjwAAAY8CAAGPBAABjwYAAY8IAAGPCgABjwwAAY8tAAGPMAABjzMAAY82AAGPOQABjzwAAY8/AAGPQgABj0UAAY9HAAGPwgABj8QAAY/GAAGPyAABj8sAAY/MAAGPzQABj84AAY/PAAGP0QABj9MAAY/UAAGP1QABj9cAAY/YAAGQUwABkFUAAZBXAAGQWQABkFwAAZBdAAGQXgABkF8AAZBgAAGQYgABkGQAAZBlAAGQZgABkGgAAZBpAAGQ5AABkOYAAZDpAAGQ6wABkO4AAZDvAAGQ8AABkPEAAZDyAAGQ9AABkPYAAZD3AAGQ+AABkPoAAZD7AAGRFAABkRUAAZEWAAGRGAABkZMAAZGVAAGRlwABkZkAAZGcAAGRnQABkZ4AAZGfAAGRoAABkaIAAZGkAAGRpQABkaYAAZGoAAGRqQABkiQAAZImAAGSKAABkioAAZItAAGSLgABki8AAZIwAAGSMQABkjMAAZI1AAGSNgABkjcAAZI5AAGSOgABkrUAAZK3AAGSuQABkrsAAZK+AAGSvwABksAAAZLBAAGSwgABksQAAZLGAAGSxwABksgAAZLKAAGSywABk0YAAZNIAAGTSgABk0wAAZNPAAGTUAABk1EAAZNSAAGTUwABk1UAAZNXAAGTWAABk1kAAZNbAAGTXAABk9cAAZPZAAGT2wABk90AAZPgAAGT4QABk+IAAZPjAAGT5AABk+YAAZPoAAGT6QABk+oAAZPsAAGT7QABlDYAAZRaAAGUgQABlKUAAZSoAAGUqgABlKwAAZSuAAGUsAABlLIAAZSzAAGUtgABlM8AAZTsAAGU7gABlPAAAZTyAAGU9AABlPYAAZT4AAGU+gABlRcAAZUaAAGVHQABlSAAAZUjAAGVJgABlSkAAZUsAAGVLgABlakAAZWrAAGVrQABla8AAZWyAAGVswABlbQAAZW1AAGVtgABlbgAAZW6AAGVuwABlbwAAZW+AAGVvwABljoAAZY8AAGWPgABlkAAAZZDAAGWRAABlkUAAZZGAAGWRwABlkkAAZZLAAGWTAABlk0AAZZPAAGWUAABlssAAZbNAAGWzwABltEAAZbUAAGW1QABltYAAZbXAAGW2AABltoAAZbcAAGW3QABlt4AAZbgAAGW4QABl1wAAZdeAAGXYAABl2IAAZdlAAGXZgABl2cAAZdoAAGXaQABl2sAAZdtAAGXbgABl28AAZdxAAGXcgABl+0AAZfvAAGX8QABl/MAAZf2AAGX9wABl/gAAZf5AAGX+gABl/wAAZf+AAGX/wABmAAAAZgCAAGYAwABmH4AAZiAAAGYggABmIQAAZiHAAGYiAABmIkAAZiKAAGYiwABmI0AAZiPAAGYkAABmJEAAZiTAAGYlAABmQ8AAZkRAAGZEwABmRUAAZkYAAGZGQABmRoAAZkbAAGZHAABmR4AAZkgAAGZIQABmSIAAZkkAAGZJQABmbgAAZnbAAGZ+wABmhsAAZodAAGaHwABmiEAAZojAAGaJgABmicAAZooAAGaKwABmiwAAZouAAGaLwABmjEAAZo0AAGaNQABmjYAAZo5AAGaOgABmj8AAZpYAAGaYQABmmMAAZplAAGabgABmnEAAZp0AAGadgABmr8AAZrjAAGbCgABmy4AAZsxAAGbMwABmzUAAZs3AAGbOQABmzsAAZs8AAGbPwABm1gAAZt5AAGbewABm30AAZt/AAGbgQABm4MAAZuFAAGbhwABm4kAAZuqAAGbrQABm7AAAZuzAAGbtgABm7kAAZu8AAGbvwABm8IAAZvEAAGcPwABnEEAAZxDAAGcRQABnEgAAZxJAAGcSgABnEsAAZxMAAGcTgABnFAAAZxRAAGcUgABnFQAAZxVAAGc0AABnNIAAZzUAAGc1gABnNkAAZzaAAGc2wABnNwAAZzdAAGc3wABnOEAAZziAAGc4wABnOUAAZzmAAGdYQABnWMAAZ1mAAGdaAABnWsAAZ1sAAGdbQABnW4AAZ1vAAGdcQABnXMAAZ10AAGddQABnXcAAZ14AAGdkQABnZIAAZ2TAAGdlQABnhAAAZ4SAAGeFAABnhYAAZ4ZAAGeGgABnhsAAZ4cAAGeHQABnh8AAZ4hAAGeIgABniMAAZ4lAAGeJgABnqEAAZ6jAAGepQABnqcAAZ6qAAGeqwABnqwAAZ6tAAGergABnrAAAZ6yAAGeswABnrQAAZ62AAGetwABnzIAAZ80AAGfNgABnzgAAZ87AAGfPAABnz0AAZ8+AAGfPwABn0EAAZ9DAAGfRAABn0UAAZ9HAAGfSAABn8MAAZ/FAAGfxwABn8kAAZ/MAAGfzQABn84AAZ/PAAGf0AABn9IAAZ/UAAGf1QABn9YAAZ/YAAGf2QABoFQAAaBWAAGgWAABoFoAAaBdAAGgXgABoF8AAaBgAAGgYQABoGMAAaBlAAGgZgABoGcAAaBpAAGgagABoLMAAaDXAAGg/gABoSIAAaElAAGhJwABoSkAAaErAAGhLQABoS8AAaEwAAGhMwABoUwAAaFpAAGhawABoW0AAaFvAAGhcQABoXMAAaF1AAGhdwABoZQAAaGXAAGhmgABoZ0AAaGgAAGhowABoaYAAaGpAAGhqwABoiYAAaIoAAGiKgABoiwAAaIvAAGiMAABojEAAaIyAAGiMwABojUAAaI3AAGiOAABojkAAaI7AAGiPAABorcAAaK5AAGiuwABor0AAaLAAAGiwQABosIAAaLDAAGixAABosYAAaLIAAGiyQABosoAAaLMAAGizQABo0gAAaNKAAGjTAABo04AAaNRAAGjUgABo1MAAaNUAAGjVQABo1cAAaNZAAGjWgABo1sAAaNdAAGjXgABo9kAAaPbAAGj3gABo+AAAaPjAAGj5AABo+UAAaPmAAGj5wABo+kAAaPrAAGj7AABo+0AAaPvAAGj8AABpGsAAaRtAAGkbwABpHEAAaR0AAGkdQABpHYAAaR3AAGkeAABpHoAAaR8AAGkfQABpH4AAaSAAAGkgQABpPwAAaT+AAGlAAABpQIAAaUFAAGlBgABpQcAAaUIAAGlCQABpQsAAaUNAAGlDgABpQ8AAaURAAGlEgABpY0AAaWPAAGlkQABpZMAAaWWAAGllwABpZgAAaWZAAGlmgABpZwAAaWeAAGlnwABpaAAAaWiAAGlowABpjYAAaZZAAGmeQABppkAAaabAAGmnQABpp8AAaahAAGmpAABpqUAAaamAAGmqQABpqoAAaasAAGmrQABprAAAaazAAGmtAABprUAAaa4AAGmuQABpr4AAabXAAGm4AABpuIAAabkAAGm7QABpvAAAabzAAGm9QABpz4AAadiAAGniQABp60AAaewAAGnsgABp7QAAae2AAGnuAABp7oAAae7AAGnvgABp9cAAaf4AAGn+gABp/wAAaf+AAGoAAABqAIAAagEAAGoBgABqAgAAagpAAGoLAABqC8AAagyAAGoNQABqDgAAag7AAGoPgABqEEAAahDAAGovgABqMAAAajCAAGoxAABqMcAAajIAAGoyQABqMoAAajLAAGozQABqM8AAajQAAGo0QABqNMAAajUAAGpTwABqVEAAalTAAGpVQABqVgAAalZAAGpWgABqVsAAalcAAGpXgABqWAAAalhAAGpYgABqWQAAallAAGp4AABqeIAAanlAAGp5wABqeoAAanrAAGp7AABqe0AAanuAAGp8AABqfIAAanzAAGp9AABqfYAAan3AAGqEAABqhEAAaoSAAGqFAABqo8AAaqRAAGqkwABqpUAAaqYAAGqmQABqpoAAaqbAAGqnAABqp4AAaqgAAGqoQABqqIAAaqkAAGqpQABqyAAAasiAAGrJAABqyYAAaspAAGrKgABqysAAassAAGrLQABqy8AAasxAAGrMgABqzMAAas1AAGrNgABq7EAAauzAAGrtQABq7cAAau6AAGruwABq7wAAau9AAGrvgABq8AAAavCAAGrwwABq8QAAavGAAGrxwABrEIAAaxEAAGsRgABrEgAAaxLAAGsTAABrE0AAaxOAAGsTwABrFEAAaxTAAGsVAABrFUAAaxXAAGsWAABrNMAAazVAAGs1wABrNkAAazcAAGs3QABrN4AAazfAAGs4AABrOIAAazkAAGs5QABrOYAAazoAAGs6QABrTIAAa1WAAGtfQABraEAAa2kAAGtpgABragAAa2qAAGtrAABra4AAa2vAAGtsgABrcsAAa3oAAGt6gABrewAAa3uAAGt8AABrfIAAa30AAGt9gABrhMAAa4WAAGuGQABrhwAAa4fAAGuIgABriUAAa4oAAGuKgABrqUAAa6nAAGuqQABrqsAAa6uAAGurwABrrAAAa6xAAGusgABrrQAAa62AAGutwABrrgAAa66AAGuuwABrzYAAa84AAGvOgABrzwAAa8/AAGvQAABr0EAAa9CAAGvQwABr0UAAa9HAAGvSAABr0kAAa9LAAGvTAABr8cAAa/JAAGvywABr80AAa/QAAGv0QABr9IAAa/TAAGv1AABr9YAAa/YAAGv2QABr9oAAa/cAAGv3QABsFgAAbBaAAGwXQABsF8AAbBiAAGwYwABsGQAAbBlAAGwZgABsGgAAbBqAAGwawABsGwAAbBuAAGwbwABsPIAAbEWAAGxOgABsV0AAbGEAAGxpAABscsAAbHyAAGyEgABsjYAAbJaAAGyXAABsl8AAbJhAAGyYwABsmUAAbJoAAGyawABsm0AAbJvAAGycgABsnQAAbJ2AAGyeQABsnwAAbJ9AAGyggABspsAAbKgAAGyogABsqcAAbKqAAGyrAABsvUAAbMZAAGzQAABs2QAAbNnAAGzaQABs2sAAbNtAAGzbwABs3EAAbNyAAGzdQABs44AAbOzAAGztQABs7cAAbO5AAGzuwABs70AAbO/AAGzwQABs8MAAbPFAAGz6gABs+0AAbPwAAGz8wABs/YAAbP5AAGz/AABs/8AAbQCAAG0BQABtAcAAbSCAAG0hAABtIcAAbSJAAG0jAABtI0AAbSOAAG0jwABtJAAAbSSAAG0lAABtJUAAbSWAAG0mAABtJkAAbSqAAG0qwABtK0AAbUoAAG1KgABtSwAAbUuAAG1MQABtTIAAbUzAAG1NAABtTUAAbU3AAG1OQABtToAAbU7AAG1PQABtT4AAbW5AAG1uwABtb4AAbXAAAG1wwABtcQAAbXFAAG1xgABtccAAbXJAAG1ywABtcwAAbXNAAG1zwABtdAAAbXhAAG14gABteQAAbZfAAG2YQABtmMAAbZlAAG2aAABtmkAAbZqAAG2awABtmwAAbZuAAG2cAABtnEAAbZyAAG2dAABtnUAAbbwAAG28gABtvUAAbb3AAG2+gABtvsAAbb8AAG2/QABtv4AAbcAAAG3AgABtwMAAbcEAAG3BgABtwcAAbcYAAG3GQABtxsAAbeWAAG3mAABt5oAAbecAAG3nwABt6AAAbehAAG3ogABt6MAAbelAAG3pwABt6gAAbepAAG3qwABt6wAAbgnAAG4KQABuCwAAbguAAG4MQABuDIAAbgzAAG4NAABuDUAAbg3AAG4OQABuDoAAbg7AAG4PQABuD4AAbhXAAG4WAABuFkAAbhbAAG41gABuNgAAbjaAAG43AABuN8AAbjgAAG44QABuOIAAbjjAAG45QABuOcAAbjoAAG46QABuOsAAbjsAAG5ZwABuWkAAblsAAG5bgABuXEAAblyAAG5cwABuXQAAbl1AAG5dwABuXkAAbl6AAG5ewABuX0AAbl+AAG5mAABubEAAbnCAAG5xQABucgAAbnLAAG5zgABud8AAbniAAG55QABuegAAbnrAAG57QABuf8AAboLAAG6FAABuiIAAbq1AAG62AABuvgAAbsYAAG7GgABuxwAAbseAAG7IAABuyMAAbskAAG7JQABuygAAbspAAG7KwABuywAAbsvAAG7MgABuzMAAbs0AAG7NwABuzgAAbtBAAG7WgABu2MAAbtlAAG7ZwABu3AAAbtzAAG7dgABu3gAAbvBAAG75QABvAwAAbwwAAG8MwABvDUAAbw3AAG8OQABvDsAAbw9AAG8PgABvEEAAbxaAAG8ewABvH0AAbx/AAG8gQABvIMAAbyFAAG8hwABvIkAAbyLAAG8rAABvK8AAbyyAAG8tQABvLgAAby7AAG8vgABvMEAAbzEAAG8xgABvUEAAb1DAAG9RQABvUcAAb1KAAG9SwABvUwAAb1NAAG9TgABvVAAAb1SAAG9UwABvVQAAb1WAAG9VwABvdIAAb3UAAG91gABvdgAAb3bAAG93AABvd0AAb3eAAG93wABveEAAb3jAAG95AABveUAAb3nAAG96AABvmMAAb5lAAG+aAABvmoAAb5tAAG+bgABvm8AAb5wAAG+cQABvnMAAb51AAG+dgABvncAAb55AAG+egABvpMAAb6UAAG+lQABvpcAAb8SAAG/FAABvxYAAb8YAAG/GwABvxwAAb8dAAG/HgABvx8AAb8hAAG/IwABvyQAAb8lAAG/JwABvygAAb+jAAG/pQABv6cAAb+pAAG/rAABv60AAb+uAAG/rwABv7AAAb+yAAG/tAABv7UAAb+2AAG/uAABv7kAAcA0AAHANgABwDgAAcA6AAHAPQABwD4AAcA/AAHAQAABwEEAAcBDAAHARQABwEYAAcBHAAHASQABwEoAAcDFAAHAxwABwMkAAcDLAAHAzgABwM8AAcDQAAHA0QABwNIAAcDUAAHA1gABwNcAAcDYAAHA2gABwNsAAcFWAAHBWAABwVoAAcFcAAHBXwABwWAAAcFhAAHBYgABwWMAAcFlAAHBZwABwWgAAcFpAAHBawABwWwAAcG1AAHB2QABwgAAAcIkAAHCJwABwikAAcIrAAHCLQABwi8AAcIxAAHCMgABwjUAAcJOAAHCawABwm0AAcJvAAHCcQABwnMAAcJ1AAHCdwABwnkAAcKWAAHCmQABwpwAAcKfAAHCogABwqUAAcKoAAHCqwABwq0AAcMoAAHDKgABwywAAcMuAAHDMQABwzIAAcMzAAHDNAABwzUAAcM3AAHDOQABwzoAAcM7AAHDPQABwz4AAcO5AAHDuwABw70AAcO/AAHDwgABw8MAAcPEAAHDxQABw8YAAcPIAAHDygABw8sAAcPMAAHDzgABw88AAcRKAAHETAABxE4AAcRQAAHEUwABxFQAAcRVAAHEVgABxFcAAcRZAAHEWwABxFwAAcRdAAHEXwABxGAAAcTbAAHE3QABxOAAAcTiAAHE5QABxOYAAcTnAAHE6AABxOkAAcTrAAHE7QABxO4AAcTvAAHE8QABxPIAAcVtAAHFbwABxXEAAcVzAAHFdgABxXcAAcV4AAHFeQABxXoAAcV8AAHFfgABxX8AAcWAAAHFggABxYMAAcX+AAHGAAABxgIAAcYEAAHGBwABxggAAcYJAAHGCgABxgsAAcYNAAHGDwABxhAAAcYRAAHGEwABxhQAAcaPAAHGkQABxpQAAcaWAAHGmQABxpoAAcabAAHGnAABxp0AAcafAAHGoQABxqIAAcajAAHGpQABxqYAAca3AAHGygABxuMAAcb2AAHHAwABxxYAAcctAAHHPwABx9IAAcf1AAHIFQAByDUAAcg3AAHIOQAByDsAAcg9AAHIQAAByEEAAchCAAHIRQAByEYAAchIAAHISQAByEwAAchPAAHIUAAByFEAAchUAAHIVQAByF4AAch3AAHIgAAByIIAAciEAAHIjQAByJAAAciTAAHIlQAByN4AAckCAAHJKQAByU0AAclQAAHJUgAByVQAAclWAAHJWAAByVoAAclbAAHJXgAByXcAAcmYAAHJmgAByZwAAcmeAAHJoAAByaIAAcmkAAHJpgAByagAAcnJAAHJzAAByc8AAcnSAAHJ1QABydgAAcnbAAHJ3gAByeEAAcnjAAHKXgABymAAAcpiAAHKZAABymcAAcpoAAHKaQABymoAAcprAAHKbQABym8AAcpwAAHKcQABynMAAcp0AAHK7wAByvEAAcrzAAHK9QAByvgAAcr5AAHK+gAByvsAAcr8AAHK/gABywAAAcsBAAHLAgABywQAAcsFAAHLgAABy4IAAcuFAAHLhwABy4oAAcuLAAHLjAABy40AAcuOAAHLkAABy5IAAcuTAAHLlAABy5YAAcuXAAHLsAABy7EAAcuyAAHLtAABzC8AAcwxAAHMMwABzDUAAcw4AAHMOQABzDoAAcw7AAHMPAABzD4AAcxAAAHMQQABzEIAAcxEAAHMRQABzMAAAczCAAHMxAABzMYAAczJAAHMygABzMsAAczMAAHMzQABzM8AAczRAAHM0gABzNMAAczVAAHM1gABzVEAAc1TAAHNVQABzVcAAc1aAAHNWwABzVwAAc1dAAHNXgABzWAAAc1iAAHNYwABzWQAAc1mAAHNZwABzeIAAc3kAAHN5gABzegAAc3rAAHN7AABze0AAc3uAAHN7wABzfEAAc3zAAHN9AABzfUAAc33AAHN+AABznMAAc51AAHOdwABznkAAc58AAHOfQABzn4AAc5/AAHOgAABzoIAAc6EAAHOhQABzoYAAc6IAAHOiQABztIAAc72AAHPHQABz0EAAc9EAAHPRgABz0gAAc9KAAHPTAABz04AAc9PAAHPUgABz2sAAc+IAAHPigABz4wAAc+OAAHPkAABz5IAAc+UAAHPlgABz7MAAc+2AAHPuQABz7wAAc+/AAHPwgABz8UAAc/IAAHPygAB0EUAAdBHAAHQSQAB0EsAAdBOAAHQTwAB0FAAAdBRAAHQUgAB0FQAAdBWAAHQVwAB0FgAAdBaAAHQWwAB0NYAAdDYAAHQ2gAB0NwAAdDfAAHQ4AAB0OEAAdDiAAHQ4wAB0OUAAdDnAAHQ6AAB0OkAAdDrAAHQ7AAB0WcAAdFpAAHRawAB0W0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AAgdiAAIHZAACB2UAAgfgAAIH4gACB+UAAgfnAAIH6gACB+sAAgfsAAIH7QACB+4AAgfwAAIH8gACB/MAAgf0AAIH9gACB/cAAghyAAIIdAACCHYAAgh4AAIIewACCHwAAgh9AAIIfgACCH8AAgiBAAIIgwACCIQAAgiFAAIIhwACCIgAAgkDAAIJBQACCQgAAgkKAAIJDQACCQ4AAgkPAAIJEAACCREAAgkTAAIJFQACCRYAAgkXAAIJGQACCRoAAgmVAAIJlwACCZkAAgmbAAIJngACCZ8AAgmgAAIJoQACCaIAAgmkAAIJpgACCacAAgmoAAIJqgACCasAAgomAAIKKAACCioAAgosAAIKLwACCjAAAgoxAAIKMgACCjMAAgo1AAIKNwACCjgAAgo5AAIKOwACCjwAAgq3AAIKuQACCrwAAgq+AAIKwQACCsIAAgrDAAIKxAACCsUAAgrHAAIKyQACCsoAAgrLAAIKzQACCs4AAgthAAILhAACC6QAAgvEAAILxgACC8gAAgvKAAILzAACC88AAgvQAAIL0QACC9QAAgvVAAIL1wACC9gAAgvbAAIL3gACC98AAgvgAAIL4wACC+QAAgvtAAIMBgACDA8AAgwRAAIMEwACDBwAAgwfAAIMIgACDCQAAgxtAAIMkQACDLgAAgzcAAIM3wACDOEAAgzjAAIM5QACDOcAAgzpAAIM6gACDO0AAg0GAAINJwACDSkAAg0rAAINLQACDS8AAg0xAAINMwACDTUAAg03AAINWAACDVsAAg1eAAINYQACDWQAAg1nAAINagACDW0AAg1wAAINcgACDe0AAg3vAAIN8QACDfMAAg32AAIN9wACDfgAAg35AAIN+gACDfwAAg3+AAIN/wACDgAAAg4CAAIOAwACDn4AAg6AAAIOggACDoQAAg6HAAIOiAACDokAAg6KAAIOiwACDo0AAg6PAAIOkAACDpEAAg6TAAIOlAACDw8AAg8RAAIPFAACDxYAAg8ZAAIPGgACDxsAAg8cAAIPHQACDx8AAg8hAAIPIgACDyMAAg8lAAIPJgACDz8AAg9AAAIPQQACD0MAAg++AAIPwAACD8IAAg/EAAIPxwACD8gAAg/JAAIPygACD8sAAg/NAAIPzwACD9AAAg/RAAIP0wACD9QAAhBPAAIQUQACEFMAAhBVAAIQWAACEFk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AAiIHAAIiCQACIgwAAiIOAAIiEQACIhIAAiITAAIiFAACIhUAAiIXAAIiGQACIhoAAiIbAAIiHQACIh4AAiKZAAIimwACIp0AAiKfAAIiogACIqMAAiKkAAIipQACIqYAAiKoAAIiqgACIqsAAiKsAAIirgACIq8AAiMqAAIjLAACIy4AAiMwAAIjMwACIzQAAiM1AAIjNgACIzcAAiM5AAIjOwACIzwAAiM9AAIjPwACI0AAAiO7AAIjvQACI8AAAiPCAAIjxQACI8YAAiPHAAIjyAACI8kAAiPLAAIjzQACI84AAiPPAAIj0QACI9IAAiRlAAIkiAACJKgAAiTIAAIkygACJMwAAiTOAAIk0AACJNMAAiTUAAIk1QACJNgAAiTZAAIk2wACJNwAAiTeAAIk4QACJOIAAiTjAAIk5gACJOcAAiTsAAIlBQACJQ4AAiUQAAIlEgACJRsAAiUeAAIlIQACJSMAAiVsAAIlkAACJbcAAiXbAAIl3gACJeAAAiXiAAIl5AACJeYAAiXoAAIl6QACJewAAiYFAAImJgACJigAAiYqAAImLAACJi4AAiYwAAImMgACJjQAAiY2AAImVwACJloAAiZdAAImYAACJmMAAiZmAAImaQACJmwAAiZvAAImcQACJuwAAibuAAIm8AACJvIAAib1AAIm9gACJvcAAib4AAIm+QACJvsAAib9AAIm/gACJv8AAicBAAInAgACJ30AAid/AAInggACJ4QAAieHAAIniAACJ4kAAieKAAIniwACJ40AAiePAAInkAACJ5EAAieTAAInlAACJ5gAAigTAAIoFQACKBgAAigaAAIoHQACKB4AAigfAAIoIAACKCEAAigjAAIoJQACKCYAAignAAIoKQACKCoAAihDAAIoRAACKEUAAihHAAIowgACKMQAAijGAAIoyAACKMsAAijMAAIozQACKM4AAijPAAIo0QACKNMAAijUAAIo1QACKNcAAijYAAIpUwACKVUAAilXAAIpWQACKVwAAildAAIpXgACKV8AAilgAAIpYgACKWQAAillAAIpZgACKWgAAilpAAIp5AACKeYAAinoAAIp6gACKe0AAinuAAIp7wACKfAAAinxAAIp8wACKfUAAin2AAIp9wACKfkAAin6AAIqdQACKncAAip5AAIqewACKn4AAip/AAIqgAACKoEAAiqCAAIqhAACKoYAAiqHAAIqiAACKooAAiqLAAIrBgACKwgAAisKAAIrDAACKw8AAisQAAIrEQACKxIAAisTAAIrFQACKxcAAisYAAIrGQACKxsAAiscAAIrZQACK4kAAiuwAAIr1AACK9cAAivZAAIr2wACK90AAivfAAIr4QACK+IAAivlAAIr/gACLBsAAiwdAAIsHwACLCEAAiwjAAIsJQACLCcAAiwpAAIsRgACLEkAAixMAAIsTwACLFIAAixVAAIsWAACLFsAAixdAAIs2AACLNoAAizcAAIs3gACLOEAAiziAAIs4wACLOQAAizlAAIs5wACLOkAAizqAAIs6wACLO0AAizuAAItaQACLWsAAi1tAAItbwACLXIAAi1zAAItdAACLXUAAi12AAIteAACLXoAAi17AAItfAACLX4AAi1/AAIt+gACLfwAAi3+AAIuAAACLgMAAi4EAAIuBQACLgYAAi4HAAIuCQACLgsAAi4MAAIuDQACLg8AAi4QAAIuiwACLo0AAi6QAAIukgACLpUAAi6WAAIulwACLpgAAi6ZAAIumwACLp0AAi6eAAIunwACLqEAAi6iAAIvHQACLx8AAi8hAAIvIwACLyYAAi8nAAIvKAACLykAAi8qAAIvLAACLy4AAi8vAAIvMAACLzIAAi8zAAIvrgACL7AAAi+yAAIvtAACL7cAAi+4AAIvuQACL7oAAi+7AAIvvQACL78AAi/AAAIvwQACL8MAAi/EAAIwPwACMEEAAjBDAAIwRQACMEgAAjBJAAIwSgACMEsAAjBMAAIwTgACMFAAAjBRAAIwUgACMFQAAjBVAAIw6AACMQsAAjErAAIxSwACMU0AAjFPAAIxUQACMVMAAjFWAAIxVwACMVgAAjFbAAIxXAACMV4AAjFfAAIxYQACMWQAAjFlAAIxZgACMWkAAjFqAAIxcwACMYwAAjGVAAIxlwACMZkAAjGiAAIxpQACMagAAjGqAAIx8wACMhcAAjI+AAIyYgACMmUAAjJnAAIyaQACMmsAAjJtAAIybwACMnAAAjJzAAIyjAACMq0AAjKvAAIysQACMrMAAjK1AAIytwACMrkAAjK7AAIyvQACMt4AAjLhAAIy5AACMucAAjLqAAIy7QACMvAAAjLzAAIy9gACMvgAAjNzAAIzdQACM3cAAjN5AAIzfAACM30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AAkTkAAJE/QACRRoAAkUcAAJFHgACRSAAAkUiAAJFJAACRSYAAkUoAAJFRQACRUgAAkVLAAJFTgACRVEAAkVUAAJFVwACRVoAAkVcAAJF1wACRdkAAkXbAAJF3QACReAAAkXhAAJF4gACReMAAkXkAAJF5gACRegAAkXpAAJF6gACRewAAkXtAAJGaAACRmoAAkZsAAJGbgACRnEAAkZyAAJGcwACRnQAAkZ1AAJGdwACRnkAAkZ6AAJGewACRn0AAkZ+AAJG+QACRvsAAkb9AAJG/wACRwIAAkcDAAJHBAACRwUAAkcGAAJHCAACRwoAAkcLAAJHDAACRw4AAkcPAAJHigACR4wAAkeOAAJHkAACR5MAAkeUAAJHlQACR5YAAkeXAAJHmQACR5sAAkecAAJHnQACR58AAkegAAJIGwACSB0AAkgfAAJIIQACSCQAAkglAAJIJgACSCcAAkgoAAJIKgACSCwAAkgtAAJILgACSDAAAkgxAAJIrAACSK4AAkiwAAJIsgACSLUAAki2AAJItwACSLgAAki5AAJIuwACSL0AAki+AAJIvwACSMEAAkjCAAJJPQACST8AAklBAAJJQwACSUYAAklHAAJJSAACSUkAAklKAAJJTAACSU4AAklPAAJJUAACSVIAAklTAAJJXgACSW8AAkl0AAJJdwACSXkAAkmyAAJJvAACScUAAknIAAJJygACSc0AAknQAAJJ0wACSdYAAknbAAJKfgACSqIAAkrGAAJK5gACSw0AAks0AAJLVAACS3sAAkufAAJLwgACS+kAAkwNAAJMMQACTFUAAkx8AAJMfQACTH8AAkyBAAJMhAACTIYAAkyJAAJMiwACTI0AAkyQAAJMkgACTJQAAkyXAAJMmgACTJwAAkyeAAJMoAACTKMAAkymAAJMqQACTLIAAkzLAAJM0AACTNIAAkzXAAJM2gACTNwAAk0lAAJNSQACTXAAAk2UAAJNlwACTZkAAk2bAAJNnQACTZ8AAk2hAAJNogACTaUAAk2+AAJN4wACTeUAAk3nAAJN6QACTesAAk3tAAJN7wACTfEAAk3zAAJN9QACThoAAk4dAAJOIAACTiMAAk4mAAJOKQACTiwAAk4vAAJOMgACTjUAAk43AAJOsgACTrQAAk63AAJOuQACTrwAAk69AAJOvgACTr8AAk7AAAJOwgACTsQAAk7FAAJOxgACTsgAAk7JAAJO2gACTtsAAk7dAAJPWAACT1oAAk9cAAJPXgACT2EAAk9iAAJPYwACT2QAAk9lAAJPZwACT2kAAk9qAAJPawACT20AAk9uAAJP6QACT+sAAk/uAAJP8AACT/MAAk/0AAJP9QACT/YAAk/3AAJP+QACT/sAAk/8AAJP/QACT/8AAlAAAAJQEQACUBIAAlAUAAJQjwACUJEAAlCTAAJQlQACUJgAAlCZAAJQmgACUJsAAlCcAAJQngACUKAAAlChAAJQogACUKQAAlClAAJRIAACUSIAAlElAAJRJwACUSoAAlErAAJRLAACUS0AAlEuAAJRMAACUTIAAlEzAAJRNAACUTYAAlE3AAJRSAACUUkAAlFLAAJRxgACUcgAAlHKAAJRzAACUc8AAlHQAAJR0QACUdIAAlHTAAJR1QACUdcAAlHYAAJR2QACUdsAAlHcAAJSVwACUlkAAlJcAAJSXgACUmEAAlJiAAJSYwACUmQAAlJlAAJSZwACUmkAAlJqAAJSawACUm0AAlJuAAJShwACUogAAlKJAAJSiwACUwYAAlMIAAJTCgACUwwAAlMPAAJTEAACUxEAAlMSAAJTEwACUxUAAlMXAAJTGAACUxkAAlMbAAJTHAACU5cAAlOZAAJTnAACU54AAlOhAAJTogACU6MAAlOkAAJTpQACU6cAAlOpAAJTqgACU6sAAlOtAAJTrgACU8EAAlPaAAJUNQACVDgAAlQ7AAJUPgACVEEAAlREAAJURwACVEoAAlRNAAJUUAACVFMAAlRWAAJUWQACVFwAAlRfAAJUYgACVGUAAlRoAAJUawACVG4AAlRxAAJUdAACVHcAAlTSAAJU1QACVNgAAlTbAAJU3gACVOEAAlTkAAJU5wACVOoAAlTtAAJU8AACVPMAAlT2AAJU+QACVPwAAlT/AAJVAgACVQUAAlUIAAJVCwACVQ4AAlURAAJVFAACVRYAAlUxAAJVOQACVUMAAlVRAAJVawACVYgAAlWRAAJVpQACVbwAAlXJAAJVzgACVfEAAlX7AAJWDwACVhgAAlYeAAJWNgACVkEAAlZLAAJWWAACVm4AAlcBAAJXJAACV0QAAldkAAJXZgACV2gAAldqAAJXbAACV28AAldwAAJXcQACV3QAAld1AAJXdwACV3gAAld6AAJXfQACV34AAld/AAJXggACV4MAAleIAAJXoQACV6oAAlesAAJXrgACV7cAAle6AAJXvQACV78AAlgIAAJYLAACWFMAAlh3AAJYegACWHwAAlh+AAJYgAACWIIAAliEAAJYhQACWIgAAlihAAJYwgACWMQAAljGAAJYyAACWMoAAljMAAJYzgACWNAAAljSAAJY8wACWPYAAlj5AAJY/AACWP8AAlkCAAJZBQACWQgAAlkLAAJZDQACWYgAAlmKAAJZjAACWY4AAlmRAAJZkgACWZMAAlmUAAJZlQACWZcAAlmZAAJZmgACWZsAAlmdAAJZngACWhkAAlobAAJaHQACWh8AAloiAAJaIwACWiQAAlolAAJaJgACWigAAloqAAJaKwACWiwAAlouAAJaLwACWqoAAlqsAAJarwACWrEAAlq0AAJatQACWrYAAlq3AAJauAACWroAAlq8AAJavQACWr4AAlrAAAJawQACWtoAAlrbAAJa3AACWt4AAltZAAJbWwACW10AAltfAAJbYgACW2MAAltkAAJbZQACW2YAAltoAAJbagACW2sAAltsAAJbbgACW28AAlvqAAJb7AACW+4AAlvwAAJb8wACW/QAAlv1AAJb9gACW/cAAlv5AAJb+wACW/wAAlv9AAJb/wACXAAAAlx7AAJcfQACXH8AAlyBAAJchAACXIUAAlyGAAJchwACXIgAAlyKAAJcjAACXI0AAlyOAAJckAACXJEAAl0MAAJdDgACXRAAAl0SAAJdFQACXRYAAl0XAAJdGAACXRkAAl0bAAJdHQACXR4AAl0fAAJdIQACXSIAAl2dAAJdnwACXaEAAl2jAAJdpgACXacAAl2oAAJdqQACXaoAAl2sAAJdrgACXa8AAl2wAAJdsgACXbMAAl38AAJeIAACXkcAAl5rAAJebgACXnAAAl5yAAJedAACXnYAAl54AAJeeQACXnwAAl6VAAJesgACXrQAAl62AAJeuAACXroAAl68AAJevgACXsAAAl7dAAJe4AACXuMAAl7mAAJe6QACXuwAAl7vAAJe8gACXvQAAl9vAAJfcQACX3MAAl91AAJfeAACX3kAAl96AAJfewACX3wAAl9+AAJfgAACX4EAAl+CAAJfhAACX4UAAmAAAAJgAgACYAQAAmAGAAJgCQACYAoAAmALAAJgDAACYA0AAmAPAAJgEQACYBIAAmATAAJgFQACYBYAAmCRAAJgkwACYJUAAmCXAAJgmgACYJsAAmCcAAJgnQACYJ4AAmCgAAJgogACYKMAAmCkAAJgpgACYKcAAmEiAAJhJAACYSYAAmEoAAJhKwACYSwAAmEtAAJhLgACYS8AAmExAAJhMwACYTQAAmE1AAJhNwACYTgAAmGzAAJhtQACYbcAAmG5AAJhvAACYb0AAmG+AAJhvwACYcAAAmHCAAJhxAACYcUAAmHGAAJhyAACYckAAmJEAAJiRgACYkgAAmJKAAJiTQACYk4AAmJPAAJiUAACYlEAAmJTAAJiVQACYlYAAmJXAAJiWQACYloAAmLVAAJi1wACYtkAAmLbAAJi3gACYt8AAmLgAAJi4QACYuIAAmLkAAJi5gACYucAAmLoAAJi6gACYusAAmN+AAJjoQACY8EAAmPhAAJj4wACY+UAAmPnAAJj6QACY+wAAmPtAAJj7gACY/EAAmPyAAJj9AACY/UAAmP4AAJj+wACY/wAAmP9AAJkAAACZAEAAmQGAAJkHwACZCgAAmQqAAJkLAACZDUAAmQ4AAJkOwACZD0AAmSGAAJkqgACZNEAAmT1AAJk+AACZPoAAmT8AAJk/gACZQAAAmUCAAJlAwACZQYAAmUfAAJlQAACZUIAAmVEAAJlRgACZUgAAmVKAAJlTAACZU4AAmVQAAJlcQACZXQAAmV3AAJlegACZX0AAmWAAAJlgwACZYYAAmWJAAJliwACZgYAAmYIAAJmCgACZgwAAmYPAAJmEAACZhEAAmYSAAJmEwACZhUAAmYXAAJmGAACZhkAAmYbAAJmHAACZpcAAmaZAAJmmwACZp0AAmagAAJmoQACZqIAAmajAAJmpAACZqYAAmaoAAJmqQACZqoAAmasAAJmrQACZygAAmcqAAJnLQACZy8AAmcyAAJnMwACZzQAAmc1AAJnNgACZzgAAmc6AAJnOwACZzwAAmc+AAJnPwACZ1gAAmdZAAJnWgACZ1wAAmfXAAJn2QACZ9sAAmfdAAJn4AACZ+EAAmfiAAJn4wACZ+QAAmfmAAJn6AACZ+kAAmfqAAJn7AACZ+0AAmhoAAJoagACaGwAAmhuAAJocQACaHIAAmhzAAJodAACaHUAAmh3AAJoeQACaHoAAmh7AAJofQACaH4AAmj5AAJo+wACaP0AAmj/AAJpAgACaQMAAmkEAAJpBQACaQYAAmkIAAJpCgACaQsAAmkMAAJpDgACaQ8AAmmKAAJpjAACaY4AAmmQAAJpkwACaZQAAmmVAAJplgACaZcAAmmZAAJpmwACaZwAAmmdAAJpnwACaaAAAmobAAJqHQACah8AAmohAAJqJAACaiUAAmomAAJqJwACaigAAmoqAAJqLAACai0AAmouAAJqMAACajEAAmp6AAJqngACasUAAmrpAAJq7AACau4AAmrwAAJq8gACavQAAmr2AAJq9wACavoAAmsTAAJrMAACazIAAms0AAJrNgACazgAAms6AAJrPAACaz4AAmtbAAJrXgACa2EAAmtkAAJrZwACa2oAAmttAAJrcAACa3IAAmvtAAJr7wACa/EAAmvzAAJr9gACa/cAAmv4AAJr+QACa/oAAmv8AAJr/gACa/8AAmwAAAJsAgACbAMAAmx+AAJsgAACbIIAAmyEAAJshwACbIgAAmyJAAJsigACbIsAAmyNAAJsjwACbJAAAmyRAAJskwACbJQAAm0PAAJtEQACbRMAAm0VAAJtGAACbRkAAm0aAAJtGwACbRwAAm0eAAJtIAACbSEAAm0iAAJtJAACbSUAAm2gAAJtogACbaUAAm2nAAJtqgACbasAAm2sAAJtrQACba4AAm2wAAJtsgACbbMAAm20AAJttgACbbcAAm4yAAJuNAACbjYAAm44AAJuOwACbjwAAm49AAJuPgACbj8AAm5BAAJuQwACbkQAAm5FAAJuRwACbkgAAm7DAAJuxQACbscAAm7JAAJuzAACbs0AAm7OAAJuzwACbtAAAm7SAAJu1AACbtUAAm7WAAJu2AACbtkAAm9UAAJvVgACb1kAAm9bAAJvXgACb18AAm9gAAJvYQACb2IAAm9kAAJvZgACb2cAAm9oAAJvagACb2sAAm/+AAJwIQACcEEAAnBhAAJwYwACcGUAAnBnAAJwaQACcGwAAnBtAAJwbgACcHEAAnByAAJwdAACcHUAAnB4AAJwewACcHwAAnB9AAJwgAACcIEAAnCKAAJwowACcKwAAnCuAAJwsAACcLkAAnC8AAJwvwACcMEAAnEKAAJxLgACcVUAAnF5AAJxfAACcX4AAnGAAAJxggACcYQAAnGGAAJxhwACcYoAAnGjAAJxxAACccYAAnHIAAJxygACccwAAnHOAAJx0AACcdIAAnHUAAJx9QACcfgAAnH7AAJx/gACcgEAAnIEAAJyBwACcgoAAnINAAJyDwACcooAAnKMAAJyjgACcpAAAnKTAAJylAACcpUAAnKWAAJylwACcpkAAnKbAAJynAACcp0AAnKfAAJyoAACcxsAAnMdAAJzHwACcyEAAnMkAAJzJQACcyYAAnMnAAJzKAACcyoAAnMsAAJzLQACcy4AAnMwAAJzMQACc6wAAnOuAAJzsQACc7MAAnO2AAJztwACc7gAAnO5AAJzugACc7wAAnO+AAJzvwACc8AAAnPCAAJzwwACc9wAAnPdAAJz3gACc+AAAnRbAAJ0XQACdF8AAnRhAAJ0ZAACdGUAAnRmAAJ0ZwACdGgAAnRqAAJ0bAACdG0AAnRuAAJ0cAACdHEAAnTsAAJ07gACdPAAAnTyAAJ09QACdPYAAnT3AAJ0+AACdPkAAnT7AAJ0/QACdP4AAnT/AAJ1AQACdQIAAnV9AAJ1fwACdYEAAnWDAAJ1hgACdYcAAnWIAAJ1iQACdYoAAnWMAAJ1jgACdY8AAnWQAAJ1kgACdZMAAnYOAAJ2EAACdhIAAnYUAAJ2FwACdhgAAnYZAAJ2GgACdhsAAnYdAAJ2HwACdiAAAnYhAAJ2IwACdiQAAnafAAJ2oQACdqMAAnalAAJ2qAACdqkAAnaqAAJ2qwACdqwAAnauAAJ2sAACdrEAAnayAAJ2tAACdrUAAnb+AAJ3IgACd0kAAndtAAJ3cAACd3IAAnd0AAJ3dgACd3gAAnd6AAJ3ewACd34AAneXAAJ3tAACd7YAAne4AAJ3ugACd7wAAne+AAJ3wAACd8IAAnffAAJ34gACd+UAAnfoAAJ36wACd+4AAnfxAAJ39AACd/YAAnhxAAJ4cwACeHUAAnh3AAJ4egACeHsAAnh8AAJ4fQACeH4AAniAAAJ4ggACeIMAAniEAAJ4hgACeIcAAnkCAAJ5BAACeQYAAnkIAAJ5CwACeQwAAnkNAAJ5DgACeQ8AAnkRAAJ5EwACeRQAAnkVAAJ5FwACeRgAAnmTAAJ5lQACeZcAAnmZAAJ5nAACeZ0AAnmeAAJ5nwACeaAAAnmiAAJ5pAACeaUAAnmmAAJ5qAACeakAAnokAAJ6JgACeikAAnorAAJ6LgACei8AAnowAAJ6MQACejIAAno0AAJ6NgACejcAAno4AAJ6OgACejsAAnq2AAJ6uAACeroAAnq8AAJ6vwACesAAAnrBAAJ6wgACesMAAnrFAAJ6xwACesgAAnrJAAJ6ywACeswAAntHAAJ7SQACe0sAAntNAAJ7UAACe1EAAntSAAJ7UwACe1QAAntWAAJ7WAACe1kAAntaAAJ7XAACe10AAnvYAAJ72gACe90AAnvfAAJ74gACe+MAAnvkAAJ75QACe+YAAnvoAAJ76gACe+sAAnvsAAJ77gACe+8AAnyCAAJ8pQACfMUAAnzlAAJ85wACfOkAAnzrAAJ87QACfPAAAnzxAAJ88gACfPUAAnz2AAJ8+AACfPkAAnz7AAJ8/gACfP8AAn0AAAJ9AwACfQQAAn0JAAJ9IgACfSsAAn0tAAJ9LwACfTgAAn07AAJ9PgACfUAAAn2JAAJ9rQACfdQAAn34AAJ9+wACff0AAn3/AAJ+AQACfgMAAn4FAAJ+BgACfgkAAn4iAAJ+QwACfkUAAn5HAAJ+SQACfksAAn5NAAJ+TwACflEAAn5TAAJ+dAACfncAAn56AAJ+fQACfoAAAn6DAAJ+hgACfokAAn6MAAJ+jgACfwkAAn8LAAJ/DQACfw8AAn8SAAJ/EwACfxQAAn8VAAJ/FgACfxgAAn8aAAJ/GwACfxwAAn8eAAJ/HwACf5oAAn+cAAJ/ngACf6AAAn+jAAJ/pAACf6UAAn+mAAJ/pwACf6kAAn+rAAJ/rAACf60AAn+vAAJ/sAACgCsAAoAtAAKAMAACgDIAAoA1AAKANgACgDcAAoA4AAKAOQACgDsAAoA9AAKAPgACgD8AAoBBAAKAQgACgFsAAoBcAAKAXQACgF8AAoDaAAKA3AACgN4AAoDgAAKA4wACgOQAAoDlAAKA5gACgOcAAoDpAAKA6wACgOwAAoDtAAKA7wACgPAAAoFrAAKBbQACgW8AAoFxAAKBdAACgXUAAoF2AAKBdwACgXgAAoF6AAKBfAACgX0AAoF+AAKBgAACgYEAAoH8AAKB/gACggAAAoICAAKCBQACggYAAoIHAAKCCAACggkAAoILAAKCDQACgg4AAoIPAAKCEQACghIAAoKNAAKCjwACgpEAAoKTAAKClgACgpcAAoKYAAKCmQACgpoAAoKcAAKCngACgp8AAoKgAAKCogACgqMAAoMeAAKDIAACgyIAAoMkAAKDJwACgygAAoMpAAKDKgACgysAAoMtAAKDLwACgzAAAoMxAAKDMwACgzQAAoN9AAKDoQACg8gAAoPsAAKD7wACg/EAAoPzAAKD9QACg/cAAoP5AAKD+gACg/0AAoQWAAKEMwAChDUAAoQ3AAKEOQAChDsAAoQ9AAKEPwAChEEAAoReAAKEYQAChGQAAoRnAAKEagAChG0AAoRwAAKEcwAChHUAAoTwAAKE8gAChPUAAoT3AAKE+gAChPsAAoT8AAKE/QAChP4AAoUAAAKFAgAChQMAAoUEAAKFBgAChQcAAoWCAAKFhAAChYYAAoWIAAKFiwAChYwAAoWNAAKFjgAChY8AAoWRAAKFkwAChZQAAoWVAAKFlwAChZgAAoYTAAKGFQAChhcAAoYZAAKGHAAChh0AAoYeAAKGHwAChiAAAoYiAAKGJAAChiUAAoYmAAKGKAAChikAAoakAAKGpgAChqkAAoarAAKGrgAChq8AAoawAAKGsQAChrIAAoa0AAKGtgAChrcAAoa4AAKGugAChrsAAoa+AAKHOQAChzsAAoc9AAKHPwACh0IAAodDAAKHRAACh0UAAodGAAKHSAACh0oAAodLAAKHTAACh04AAodPAAKHygACh8wAAofOAAKH0AACh9MAAofUAAKH1QACh9YAAofXAAKH2QACh9sAAofcAAKH3QACh98AAofgAAKIWwACiF0AAohfAAKIYQACiGQAAohlAAKIZgACiGcAAohoAAKIagACiGwAAohtAAKIbgACiHAAAohxAAKJBAACiScAAolHAAKJZwACiWkAAolrAAKJbQACiW8AAolyAAKJcwACiXQAAol3AAKJeAACiXoAAol7AAKJfQACiYAAAomBAAKJggACiYUAAomGAAKJiwACiaQAAomtAAKJrwACibEAAom6AAKJvQACicAAAonCAAKKCwACii8AAopWAAKKegACin0AAop/AAKKgQACioMAAoqFAAKKhwACiogAAoqLAAKKpAACisUAAorHAAKKyQACissAAorNAAKKzwACitEAAorTAAKK1QACivYAAor5AAKK/AACiv8AAosCAAKLBQACiwgAAosLAAKLDgACixAAAouLAAKLjQACi48AAouRAAKLlAACi5UAAouWAAKLlwACi5gAAouaAAKLnAACi50AAoueAAKLoAACi6EAAowcAAKMHgACjCAAAowiAAKMJQACjCYAAownAAKMKAACjCkAAowrAAKMLQACjC4AAowvAAKMMQACjDIAAoytAAKMrwACjLIAAoy0AAKMtwACjLgAAoy5AAKMugACjLsAAoy9AAKMvwACjMAAAozBAAKMwwACjMQAAozdAAKM3gACjN8AAozhAAKNXAACjV4AAo1gAAKNYgACjWUAAo1mAAKNZwACjWgAAo1pAAKNawACjW0AAo1uAAKNbwACjXEAAo1yAAKN7QACje8AAo3xAAKN8wACjfYAAo33AAKN+AACjfkAAo36AAKN/AACjf4AAo3/AAKOAAACjgIAAo4DAAKOfgACjoAAAo6CAAKOhAACjocAAo6IAAKOiQACjooAAo6LAAKOjQACjo8AAo6QAAKOkQACjpMAAo6UAAKPDwACjxEAAo8TAAKPFQACjxgAAo8ZAAKPGgACjxsAAo8cAAKPHgACjyAAAo8hAAKPIgACjyQAAo8lAAKPoAACj6IAAo+kAAKPpgACj6kAAo+qAAKPqwACj6wAAo+tAAKPrwACj7EAAo+yAAKPswACj7UAAo+2AAKP/wACkCMAApBKAAKQbgACkHEAApBzAAKQdQACkHcAApB5AAKQewACkHwAApB/AAKQmAACkLUAApC3AAKQuQACkLsAApC9AAKQvwACkMEAApDDAAKQ4AACkOMAApDmAAKQ6QACkOwAApDvAAKQ8gACkPUAApD3AAKRcgACkXQAApF2AAKReAACkXsAApF8AAKRfQACkX4AApF/AAKRgQACkYMAApGEAAKRhQACkYcAApGIAAKSAwACkgUAApIHAAKSCQACkgwAApINAAKSDgACkg8AApIQAAKSEgACkhQAApIVAAKSFgACkhgAApIZAAKSlAACkpYAApKYAAKSmgACkp0AApKeAAKSnwACkqAAApKhAAKSowACkqUAApKmAAKSpwACkqkAApKqAAKTJQACkycAApMqAAKTLAACky8AApMwAAKTMQACkzIAApMzAAKTNQACkzcAApM4AAKTOQACkzsAApM8AAKTPwACk7oAApO8AAKTvgACk8AAApPDAAKTxAACk8UAApPGAAKTxwACk8kAApPLAAKTzAACk80AApPPAAKT0AAClEsAApRNAAKUTwAClFEAApRUAAKUVQAClFYAApRXAAKUWAAClFoAApRcAAKUXQAClF4AApRgAAKUYQAClNwAApTeAAKU4AAClOIAApTlAAKU5gAClOcAApToAAKU6QAClOsAApTtAAKU7gAClO8AApTxAAKU8gAClYUAApWoAAKVyAAClegAApXqAAKV7AACle4AApXwAAKV8wAClfQAApX1AAKV+AAClfkAApX7AAKV/AAClf4AApYBAAKWAgAClgMAApYGAAKWBwAClgwAApYlAAKWLgACljAAApYyAAKWOwAClj4AApZBAAKWQwAClowAApawAAKW1wAClvsAApb+AAKXAAAClwIAApcEAAKXBgAClwgAApcJAAKXDAAClyUAApdGAAKXSAACl0oAApdMAAKXTgACl1AAApdSAAKXVAACl1YAApd3AAKXegACl30AApeAAAKXgwACl4YAApeJAAKXjAACl48AApeRAAKYDAACmA4AApgQAAKYEgACmBUAApgWAAKYFwACmBgAApgZAAKYGwACmB0AApgeAAKYHwACmCEAApgiAAKYnQACmJ8AApihAAKYowACmKYAApinAAKYqAACmKkAApiqAAKYrAACmK4AApivAAKYsAACmLIAApizAAKZLgACmTAAApkzAAKZNQACmTgAApk5AAKZOgACmTsAApk8AAKZPgACmUAAAplBAAKZQgACmUQAAplFAAKZXgACmV8AAplgAAKZYgACmd0AApnfAAKZ4QACmeMAApnmAAKZ5wACmegAApnpAAKZ6gACmewAApnuAAKZ7wACmfAAApnyAAKZ8wACmm4AAppwAAKacgACmnQAApp3AAKaeAACmnkAApp6AAKaewACmn0AApp/AAKagAACmoEAApqDAAKahAACmv8AApsBAAKbAwACmwUAApsIAAKbCQACmwoAApsLAAKbDAACmw4AApsQAAKbEQACmxIAApsUAAKbFQACm5AAApuSAAKblAACm5YAApuZAAKbmgACm5sAApucAAKbnQACm58AApuhAAKbogACm6MAApulAAKbpgACnCEAApwjAAKcJQACnCcAApwqAAKcKwACnCwAApwtAAKcLgACnDAAApwyAAKcMwACnDQAApw2AAKcNwACnIAAApykAAKcywACnO8AApzyAAKc9AACnPYAApz4AAKc+gACnPwAApz9AAKdAAACnRkAAp02AAKdOAACnToAAp08AAKdPgACnUAAAp1CAAKdRAACnWEAAp1kAAKdZwACnWoAAp1tAAKdcAACnXMAAp12AAKdeAACnfMAAp31AAKd9wACnfkAAp38AAKd/QACnf4AAp3/AAKeAAACngIAAp4EAAKeBQACngYAAp4IAAKeCQACnoQAAp6GAAKeiAACnooAAp6NAAKejgACno8AAp6QAAKekQACnpMAAp6VAAKelgACnpcAAp6ZAAKemgACnxUAAp8XAAKfGQACnxsAAp8eAAKfHwACnyAAAp8hAAKfIgACnyQAAp8mAAKfJwACnygAAp8qAAKfKwACn6YAAp+oAAKfqgACn6wAAp+vAAKfsAACn7EAAp+yAAKfswACn7UAAp+3AAKfuAACn7kAAp+7AAKfvAACoDcAAqA5AAKgOwACoD0AAqBAAAKgQQACoEIAAqBDAAKgRAACoEYAAqBIAAKgSQACoEoAAqBMAAKgTQACoMgAAqDKAAKgzAACoM4AAqDRAAKg0gACoNMAAqDUAAKg1QACoNcAAqDZAAKg2gACoNsAAqDdAAKg3gACoVkAAqFbAAKhXQACoV8AAqFiAAKhYwACoWQAAqFlAAKhZgACoWgAAqFqAAKhawACoWwAAqFuAAKhbwACogIAAqIlAAKiRQAComUAAqJnAAKiaQAComsAAqJtAAKicAAConEAAqJyAAKidQAConYAAqJ4AAKieQAConwAAqJ/AAKigAACooEAAqKEAAKihQACoooAAqKjAAKirAACoq4AAqKwAAKiuQACorwAAqK/AAKiwQACowoAAqMuAAKjVQACo3kAAqN8AAKjfgACo4AAAqOCAAKjhAACo4YAAqOHAAKjigACo6MAAqPEAAKjxgACo8gAAqPKAAKjzAACo84AAqPQAAKj0gACo9QAAqP1AAKj+AACo/sAAqP+AAKkAQACpAQAAqQHAAKkCgACpA0AAqQPAAKkigACpIwAAqSOAAKkkAACpJMAAqSUAAKklQACpJYAAqSXAAKkmQACpJsAAqScAAKknQACpJ8AAqSgAAKlGwACpR0AAqUfAAKlIQACpSQAAqUlAAKlJgACpScAAqUoAAKlKgACpSwAAqUtAAKlLgACpTAAAqUxAAKlrAACpa4AAqWxAAKlswACpbYAAqW3AAKluAACpbkAAqW6AAKlvAACpb4AAqW/AAKlwAACpcIAAqXDAAKl3AACpd0AAqXeAAKl4AACplsAAqZdAAKmXwACpmEAAqZkAAKmZQACpmYAAqZnAAKmaAACpmoAAqZsAAKmbQACpm4AAqZwAAKmcQACpuwAAqbuAAKm8AACpvIAAqb1AAKm9gACpvcAAqb4AAKm+QACpvsAAqb9AAKm/gACpv8AAqcBAAKnAgACp30AAqd/AAKngQACp4MAAqeGAAKnhwACp4gAAqeJAAKnigACp4wAAqeOAAKnjwACp5AAAqeSAAKnkwACqA4AAqgQAAKoEgACqBQAAqgXAAKoGAACqBkAAqgaAAKoGwACqB0AAqgfAAKoIAACqCEAAqgjAAKoJAACqJ8AAqihAAKoowACqKUAAqioAAKoqQACqKoAAqirAAKorAACqK4AAqiwAAKosQACqLIAAqi0AAKotQACqP4AAqkiAAKpSQACqW0AAqlwAAKpcgACqXQAAql2AAKpeAACqXoAAql7AAKpfgACqZcAAqm0AAKptgACqbgAAqm6AAKpvAACqb4AAqnAAAKpwgACqd8AAqniAAKp5QACqegAAqnrAAKp7gACqfEAAqn0AAKp9gACqnEAAqpzAAKqdQACqncAAqp6AAKqewACqnwAAqp9AAKqfgACqoAAAqqCAAKqgwACqoQAAqqGAAKqhwACqwIAAqsEAAKrBwACqwkAAqsMAAKrDQACqw4AAqsPAAKrEAACqxIAAqsUAAKrFQACqxYAAqsYAAKrGQACq5QAAquWAAKrmAACq5oAAqudAAKrngACq58AAqugAAKroQACq6MAAqulAAKrpgACq6cAAqupAAKrqgACrCUAAqwnAAKsKgACrCwAAqwvAAKsMAACrDEAAqwyAAKsMwACrDUAAqw3AAKsOAACrDkAAqw7AAKsPAACrL8AAqzjAAKtBwACrSoAAq1RAAKtcQACrZgAAq2/AAKt3wACrgMAAq4nAAKuKQACriwAAq4uAAKuMAACrjIAAq41AAKuOAACrjoAAq48AAKuPwACrkEAAq5DAAKuRgACrkkAAq5KAAKuTwACrmgAAq5tAAKubwACrnQAAq53AAKueQACrsIAAq7mAAKvDQACrzEAAq80AAKvNgACrzgAAq86AAKvPAACrz4AAq8/AAKvQgACr1sAAq+AAAKvggACr4QAAq+GAAKviAACr4oAAq+MAAKvjgACr5AAAq+SAAKvtwACr7oAAq+9AAKvwAACr8MAAq/GAAKvyQACr8wAAq/PAAKv0gACr9QAArBPAAKwUQACsFQAArBWAAKwWQACsFoAArBbAAKwXAACsF0AArBfAAKwYQACsGIAArBjAAKwZQACsGYAArB3AAKweAACsHoAArD1AAKw9wACsPkAArD7AAKw/gACsP8AArEAAAKxAQACsQIAArEEAAKxBgACsQcAArEIAAKxCgACsQsAArGGAAKxiAACsYsAArGNAAKxkAACsZEAArGSAAKxkwACsZQAArGWAAKxmAACsZkAArGaAAKxnAACsZ0AArGuAAKxrwACsbEAArIsAAKyLgACsjAAArIyAAKyNQACsjYAArI3AAKyOAACsjkAArI7AAKyPQACsj4AArI/AAKyQQACskIAArK9AAKyvwACssIAArLEAAKyxwACssgAArLJAAKyygACsssAArLNAAKyzwACstAAArLRAAKy0wACstQAArLlAAKy5gACsugAArNjAAKzZQACs2cAArNpAAKzbAACs20AArNuAAKzbwACs3AAArNyAAKzdAACs3UAArN2AAKzeAACs3kAArP0AAKz9gACs/kAArP7AAKz/gACs/8AArQAAAK0AQACtAIAArQEAAK0BgACtAcAArQIAAK0CgACtAsAArQkAAK0JQACtCYAArQoAAK0owACtKUAArSnAAK0qQACtKwAArStAAK0rgACtK8AArSwAAK0sgACtLQAArS1AAK0tgACtLgAArS5AAK1NAACtTYAArU5AAK1OwACtT4AArU/AAK1QAACtUEAArVCAAK1RAACtUYAArVHAAK1SAACtUoAArVLAAK1XgACtXcAArWMAAK1jwACtZIAArWVAAK1mAACtZsAArWwAAK1swACtbYAArW5AAK1vAACtb8AArXBAAK11AACteEAArX4AAK2EQACthkAArasAAK2zwACtu8AArcPAAK3EQACtxMAArcVAAK3FwACtxoAArcbAAK3HAACtx8AArcgAAK3IgACtyMAArclAAK3KAACtykAArcqAAK3LQACty4AArczAAK3TAACt1UAArdXAAK3WQACt2IAArdlAAK3aAACt2oAArezAAK31wACt/4AArgiAAK4JQACuCcAArgpAAK4KwACuC0AArgvAAK4MAACuDMAArhMAAK4bQACuG8AArhxAAK4cwACuHUAArh3AAK4eQACuHsAArh9AAK4ngACuKEAArikAAK4pwACuKoAAritAAK4sAACuLMAAri2AAK4uAACuTMAArk1AAK5NwACuTkAArk8AAK5PQACuT4AArk/AAK5QAACuUIAArlEAAK5RQACuUYAArlIAAK5SQACucQAArnGAAK5yAACucoAArnNAAK5zgACuc8AArnQAAK50QACudMAArnVAAK51gACudcAArnZAAK52gACulUAArpXAAK6WgACulwAArpfAAK6YAACumEAArpiAAK6YwACumUAArpnAAK6aAACumkAArprAAK6bAACuoUAArqGAAK6hwACuokAArsEAAK7BgACuwgAArsKAAK7DQACuw4AArsPAAK7EAACuxEAArsTAAK7FQACuxYAArsXAAK7GQACuxoAAruVAAK7lwACu5kAArubAAK7ngACu58AArugAAK7oQACu6IAArukAAK7pgACu6cAAruoAAK7qgACu6sAArwmAAK8KAACvCoAArwsAAK8LwACvDAAArwxAAK8MgACvDMAArw1AAK8NwACvDgAArw5AAK8OwACvDwAAry3AAK8uQACvLsAAry9AAK8wAACvMEAArzCAAK8wwACvMQAArzGAAK8yAACvMkAArzKAAK8zAACvM0AAr1IAAK9SgACvUwAAr1OAAK9UQACvVIAAr1TAAK9VAACvVUAAr1XAAK9WQACvVoAAr1bAAK9XQACvV4AAr2nAAK9ywACvfIAAr4WAAK+GQACvhsAAr4dAAK+HwACviEAAr4jAAK+JAACvicAAr5AAAK+XQACvl8AAr5hAAK+YwACvmUAAr5nAAK+aQACvmsAAr6IAAK+iwACvo4AAr6RAAK+lAACvpcAAr6aAAK+nQACvp8AAr8aAAK/HAACvx4AAr8gAAK/IwACvyQAAr8lAAK/JgACvycAAr8pAAK/KwACvywAAr8tAAK/LwACvzAAAr+rAAK/rQACv68AAr+xAAK/tAACv7UAAr+2AAK/twACv7gAAr+6AAK/vAACv70AAr++AAK/wAACv8EAAsA8AALAPgACwEAAAsBCAALARQACwEYAAsBHAALASAACwEkAAsBLAALATQACwE4AAsBPAALAUQACwFIAAsDNAALAzwACwNEAAsDTAALA1gACwNcAAsDYAALA2QACwNoAAsDcAALA3gACwN8AAsDgAALA4gACwOMAAsFeAALBYAACwWIAAsFkAALBZwACwWgAAsFpAALBagACwWsAAsFtAALBbwACwXAAAsFxAALBcwACwXQAAsHvAALB8QACwfMAAsH1AALB+AACwfkAAsH6AALB+wACwfwAAsH+AALCAAACwgEAAsICAALCBAACwgUAAsKAAALCggACwoQAAsKGAALCiQACwooAAsKLAALCjAACwo0AAsKPAALCkQACwpIAAsKTAALClQACwpYAAsMpAALDTAACw2wAAsOMAALDjgACw5AAAsOSAALDlAACw5cAAsOYAALDmQACw5wAAsOdAALDnwACw6AAAsOiAALDpQACw6YAAsOnAALDqgACw6sAAsOwAALDyQACw9IAAsPUAALD1gACw98AAsPiAALD5QACw+cAAsQwAALEVAACxHsAAsSfAALEogACxKQAAsSmAALEqAACxKoAAsSsAALErQACxLAAAsTJAALE6gACxOwAAsTuAALE8AACxPIAAsT0AALE9gACxPgAAsT6AALFGwACxR4AAsUhAALFJAACxScAAsUqAALFLQACxTAAAsUzAALFNQACxbAAAsWyAALFtAACxbYAAsW5AALFugACxbsAAsW8AALFvQACxb8AAsXBAALFwgACxcMAAsXFAALFxgACxkEAAsZDAALGRQACxkcAAsZKAALGSwACxkwAAsZNAALGTgACxlAAAsZSAALGUwACxlQAAsZWAALGVwACxtIAAsbUAALG1wACxtkAAsbcAALG3QACxt4AAsbfAALG4AACxuIAAsbkAALG5QACxuYAAsboAALG6QACxwIAAscDAALHBAACxwYAAseBAALHgwACx4UAAseHAALHigACx4sAAseMAALHjQACx44AAseQAALHkgACx5MAAseUAALHlgACx5cAAsgSAALIFAACyBYAAsgYAALIGwACyBwAAsgdAALIHgACyB8AAsghAALIIwACyCQAAsglAALIJwACyCgAAsijAALIpQACyKcAAsipAALIrAACyK0AAsiuAALIrwACyLAAAsiyAALItAACyLUAAsi2AALIuAACyLkAAsk0AALJNgACyTgAAsk6AALJPQACyT4AAsk/AALJQAACyUEAAslDAALJRQACyUYAAslHAALJSQACyUoAAsnFAALJxwACyckAAsnLAALJzgACyc8AAsnQAALJ0QACydIAAsnUAALJ1gACydcAAsnYAALJ2gACydsAAsokAALKSAACym8AAsqTAALKlgACypgAAsqaAALKnAACyp4AAsqgAALKoQACyqQAAsq9AALK2gACytwAAsreAALK4AACyuIAAsrkAALK5gACyugAAssFAALLCAACywsAAssOAALLEQACyxQAAssXAALLGgACyxwAAsuXAALLmQACy5sAAsudAALLoAACy6EAAsuiAALLowACy6QAAsumAALLqAACy6kAAsuqAALLrAACy60AAswoAALMKgACzCwAAswuAALMMQACzDIAAswzAALMNAACzDUAAsw3AALMOQACzDoAAsw7AALMPQACzD4AAsy5AALMuwACzL0AAsy/AALMwgACzMMAAszEAALMxQACzMYAAszIAALMygACzMsAAszMAALMzgACzM8AAs1KAALNTAACzU8AAs1RAALNVAACzVUAAs1WAALNVwACzVgAAs1aAALNXAACzV0AAs1eAALNYAACzWEAAs1kAALN3wACzeEAAs3jAALN5QACzegAAs3pAALN6gACzesAAs3sAALN7gACzfAAAs3xAALN8gACzfQAAs31AALOcAACznIAAs50AALOdgACznkAAs56AALOewACznwAAs59AALOfwACzoEAAs6CAALOgwACzoUAAs6GAALPAQACzwMAAs8FAALPBwACzwoAAs8LAALPDAACzw0AAs8OAALPEAACzxIAAs8TAALPFAACzxYAAs8XAALPqgACz80AAs/tAALQDQAC0A8AAtARAALQEwAC0BUAAtAYAALQGQAC0BoAAtAdAALQHgAC0CAAAtAhAALQIwAC0CYAAtAnAALQKAAC0CsAAtAsAALQMQAC0EoAAtBTAALQVQAC0FcAAtBgAALQYwAC0GYAAtBoAALQsQAC0NUAAtD8AALRIAAC0SMAAtElAALRJwAC0SkAAtErAALRLQAC0S4AAtExAALRSgAC0WsAAtFtAALRbwAC0XEAAtFzAALRdQAC0XcAAtF5AALRewAC0ZwAAtGfAALRogAC0aUAAtGoAALRqwAC0a4AAtGxAALRtAAC0bYAAtIxAALSMwAC0jUAAtI3AALSOgAC0jsAAtI8AALSPQAC0j4AAtJAAALSQgAC0kMAAtJEAALSRgAC0kcAAtLCAALSxAAC0sYAAtLIAALSywAC0swAAtLNAALSzgAC0s8AAtLRAALS0wAC0tQAAtLVAALS1wAC0tgAAtNTAALTVQAC01gAAtNaAALTXQAC014AAtNfAALTYAAC02EAAtNjAALTZQAC02YAAtNnAALTaQAC02oAAtODAALThAAC04UAAtOHAALUAgAC1AQAAtQGAALUCAAC1AsAAtQMAALUDQAC1A4AAtQPAALUEQAC1BMAAtQUAALUFQAC1BcAAtQYAALUkwAC1JUAAtSXAALUmQAC1JwAAtSdAALUngAC1J8AAtSgAALUogAC1KQAAtSlAALUpgAC1KgAAtSpAALVJAAC1SYAAtUoAALVKgAC1S0AAtUuAALVLwAC1TAAAtUxAALVMwAC1TUAAtU2AALVNwAC1TkAAtU6AALVtQAC1bcAAtW5AALVuwAC1b4AAtW/AALVwAAC1cEAAtXCAALVxAAC1cYAAtXHAALVyAAC1coAAtXLAALWRgAC1kgAAtZKAALWTAAC1k8AAtZQAALWUQAC1lIAAtZTAALWVQAC1lcAAtZYAALWWQAC1lsAAtZcAALWpQAC1skAAtbwAALXFAAC1xcAAtcZAALXGwAC1x0AAtcfAALXIQAC1yIAAtclAALXPgAC11sAAtddAALXXwAC12EAAtdjAALXZQAC12cAAtdpAALXhgAC14kAAteMAALXjwAC15IAAteVAALXmAAC15sAAtedAALYGAAC2BoAAtgdAALYHwAC2CIAAtgjAALYJAAC2CUAAtgmAALYKAAC2CoAAtgrAALYLAAC2C4AAtgvAALYqgAC2KwAAtiuAALYsAAC2LMAAti0AALYtQAC2LYAAti3AALYuQAC2LsAAti8AALYvQAC2L8AAtjAAALZOwAC2T0AAtk/AALZQQAC2UQAAtlFAALZRgAC2UcAAtlIAALZSgAC2UwAAtlNAALZTgAC2VAAAtlRAALZzAAC2c4AAtnRAALZ0wAC2dYAAtnXAALZ2AAC2dkAAtnaAALZ3AAC2d4AAtnfAALZ4AAC2eIAAtnjAALaXgAC2mAAAtpiAALaZAAC2mcAAtpoAALaaQAC2moAAtprAALabQAC2m8AAtpwAALacQAC2nMAAtp0AALa7wAC2vEAAtrzAALa9QAC2vgAAtr5AALa+gAC2vsAAtr8AALa/gAC2wAAAtsBAALbAgAC2wQAAtsFAALbgAAC24IAAtuEAALbhgAC24kAAtuKAALbiwAC24wAAtuNAALbjwAC25EAAtuSAALbkwAC25UAAtuWAALcKQAC3EwAAtxsAALcjAAC3I4AAtyQAALckgAC3JQAAtyXAALcmAAC3JkAAtycAALcnQAC3J8AAtygAALcogAC3KUAAtymAALcpwAC3KoAAtyrAALcsAAC3MkAAtzSAALc1AAC3NYAAtzfAALc4gAC3OUAAtznAALdMAAC3VQAAt17AALdnwAC3aIAAt2kAALdpgAC3agAAt2qAALdrAAC3a0AAt2wAALdyQAC3eoAAt3sAALd7gAC3fAAAt3yAALd9AAC3fYAAt34AALd+gAC3hsAAt4eAALeIQAC3iQAAt4nAALeKgAC3i0AAt4wAALeMwAC3jUAAt6wAALesgAC3rQAAt62AALeuQAC3roAAt67AALevAAC3r0AAt6/AALewQAC3sIAAt7DAALexQAC3sYAAt9BAALfQwAC30UAAt9HAALfSgAC30sAAt9MAALfTQAC304AAt9QAALfUgAC31MAAt9UAALfVgAC31cAAt/SAALf1AAC39cAAt/ZAALf3AAC390AAt/eAALf3wAC3+AAAt/iAALf5AAC3+UAAt/mAALf6AAC3+kAAuACAALgAwAC4AQAAuAGAALggQAC4IMAAuCFAALghwAC4IoAAuCLAALgjAAC4I0AAuCOAALgkAAC4JIAAuCTAALglAAC4JYAAuCXAALhEgAC4RQAAuEWAALhGAAC4RsAAuEcAALhHQAC4R4AAuEfAALhIQAC4SMAAuEkAALhJQAC4ScAAuEoAALhowAC4aUAAuGnAALhqQAC4awAAuGtAALhrgAC4a8AAuGwAALhsgAC4bQAAuG1AALhtgAC4bgAAuG5AALiNAAC4jYAAuI4AALiOgAC4j0AAuI+AALiPwAC4kAAAuJBAALiQwAC4kUAAuJGAALiRwAC4kkAAuJKAALixQAC4scAAuLJAALiywAC4s4AAuLPAALi0AAC4tEAAuLSAALi1AAC4tYAAuLXAALi2AAC4toAAuLbAALjJAAC40gAAuNvAALjkwAC45YAAuOYAALjmgAC45wAAuOeAALjoAAC46EAAuOkAALjvQAC49oAAuPcAALj3gAC4+AAAuPiAALj5AAC4+YAAuPoAALkBQAC5AgAAuQLAALkDgAC5BEAAuQUAALkFwAC5BoAAuQcAALklwAC5JkAAuSbAALknQAC5KAAAuShAALkogAC5KMAAuSkAALkpgAC5KgAAuSpAALkqgAC5KwAAuStAALlKAAC5SoAAuUsAALlLgAC5TEAAuUyAALlMwAC5TQAAuU1AALlNwAC5TkAAuU6AALlOwAC5T0AAuU+AALluQAC5bsAAuW9AALlvwAC5cIAAuXDAALlxAAC5cUAAuXGAALlyAAC5coAAuXLAALlzAAC5c4AAuXPAALmSgAC5kwAAuZPAALmUQAC5lQAAuZVAALmVgAC5lcAAuZYAALmWgAC5lwAAuZdAALmXgAC5mAAAuZhAALm3AAC5t4AAubgAALm4gAC5uUAAubmAALm5wAC5ugAAubpAALm6wAC5u0AAubuAALm7wAC5vEAAubyAALnbQAC528AAudxAALncwAC53YAAud3AALneAAC53kAAud6AALnfAAC534AAud/AALngAAC54IAAueDAALn/gAC6AAAAugCAALoBAAC6AcAAugIAALoCQAC6AoAAugLAALoDQAC6A8AAugQAALoEQAC6BMAAugUAALopwAC6MoAAujqAALpCgAC6QwAAukOAALpEAAC6RIAAukVAALpFgAC6RcAAukaAALpGwAC6R0AAukeAALpIQAC6SQAAuklAALpJgAC6SkAAukqAALpLwAC6UgAAulRAALpUwAC6VUAAuleAALpYQAC6WQAAulmAALprwAC6dMAAun6AALqHgAC6iEAAuojAALqJQAC6icAAuopAALqKwAC6iwAAuovAALqSAAC6mkAAuprAALqbQAC6m8AAupxAALqcwAC6nUAAup3AALqeQAC6poAAuqdAALqoAAC6qMAAuqmAALqqQAC6qwAAuqvAALqsgAC6rQAAusvAALrMQAC6zMAAus1AALrOAAC6zkAAus6AALrOwAC6zwAAus+AALrQAAC60EAAutCAALrRAAC60UAAuvAAALrwgAC68QAAuvGAALryQAC68oAAuvLAALrzAAC680AAuvPAALr0QAC69IAAuvTAALr1QAC69YAAuxRAALsUwAC7FYAAuxYAALsWwAC7FwAAuxdAALsXgAC7F8AAuxhAALsYwAC7GQAAuxlAALsZwAC7GgAAuyBAALsggAC7IMAAuyFAALtAAAC7QIAAu0EAALtBgAC7QkAAu0KAALtCwAC7Qw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AAyPIAAMjygADI8wAAyPVAAMj2AADI9sAAyPdAAMkJgADJEoAAyRxAAMklQADJJgAAySaAAMknAADJJ4AAySgAAMkogADJKMAAySmAAMkvwADJOAAAyTiAAMk5AADJOYAAyToAAMk6gADJOwAAyTuAAMk8AADJREAAyUUAAMlFwADJRoAAyUdAAMlIAADJSMAAyUmAAMlKQADJSsAAyWmAAMlqAADJaoAAyWsAAMlrwADJbAAAyWxAAMlsgADJbMAAyW1AAMltwADJbgAAyW5AAMluwADJbwAAyY3AAMmOQADJjsAAyY9AAMmQAADJkEAAyZCAAMmQwADJkQAAyZGAAMmSAADJkkAAyZKAAMmTAADJk0AAybIAAMmygADJs0AAybPAAMm0gADJtMAAybUAAMm1QADJtYAAybYAAMm2gADJtsAAybcAAMm3gADJt8AAyb4AAMm+QADJvoAAyb8AAMndwADJ3kAAyd7AAMnfQADJ4AAAyeBAAMnggADJ4MAAyeEAAMnhgADJ4gAAyeJAAMnigADJ4wAAyeNAAMoCAADKAoAAygMAAMoDgADKBEAAygSAAMoEwADKBQAAygVAAMoFwADKBkAAygaAAMoGwADKB0AAygeAAMomQADKJsAAyidAAMonwADKKIAAyijAAMopAADKKUAAyimAAMoqAADKKoAAyirAAMorAADKK4AAyivAAMpKgADKSwAAykuAAMpMAADKTMAAyk0AAMpNQADKTYAAyk3AAMpOQADKTsAAyk8AAMpPQADKT8AAylAAAMpuwADKb0AAym/AAMpwQADKcQAAynFAAMpxgADKccAAynIAAMpygADKcwAAynNAAMpzgADKdAAAynRAAMqGgADKj4AAyplAAMqiQADKowAAyqOAAMqkAADKpIAAyqUAAMqlgADKpcAAyqaAAMqswADKtAAAyrSAAMq1AADKtYAAyrYAAMq2gADKtwAAyreAAMq+wADKv4AAysBAAMrBAADKwcAAysKAAMrDQADKxAAAysSAAMrjQADK48AAyuSAAMrlAADK5cAAyuYAAMrmQADK5oAAyubAAMrnQADK58AAyugAAMroQADK6MAAyukAAMsHwADLCEAAywjAAMsJQADLCgAAywpAAMsKgADLCsAAywsAAMsLgADLDAAAywxAAMsMgADLDQAAyw1AAMssAADLLIAAyy0AAMstgADLLkAAyy6AAMsuwADLLwAAyy9AAMsvwADLMEAAyzCAAMswwADLMUAAyzGAAMtQQADLUMAAy1GAAMtSAADLUsAAy1MAAMtTQADLU4AAy1PAAMtUQADLVMAAy1UAAMtVQADLVcAAy1YAAMt0wADLdUAAy3XAAMt2QADLdwAAy3dAAMt3gADLd8AAy3gAAMt4gADLeQAAy3lAAMt5gADLegAAy3pAAMuZAADLmYAAy5oAAMuagADLm0AAy5uAAMubwADLnAAAy5xAAMucwADLnUAAy52AAMudwADLnkAAy56AAMu9QADLvcAAy75AAMu+wADLv4AAy7/AAMvAAADLwEAAy8CAAMvBAADLwYAAy8HAAMvCAADLwoAAy8LAAMvngADL8EAAy/hAAMwAQADMAMAAzAFAAMwBwADMAkAAzAMAAMwDQADMA4AAzARAAMwEgADMBQAAzAVAAMwFwADMBoAAzAbAAMwHAADMB8AAzAgAAMwJQADMD4AAzBHAAMwSQADMEsAAzBUAAMwVwADMFoAAzBcAAMwpQADMMkAAzDwAAMxFAADMRcAAzEZAAMxGwADMR0AAzEfAAMxIQADMSIAAzElAAMxPgADMV8AAzFhAAMxYwADMWUAAzFnAAMxaQADMWsAAzFtAAMxbwADMZAAAzGTAAMxlgADMZkAAzGcAAMxnwADMaIAAzGlAAMxqAADMaoAAzIlAAMyJwADMikAAzIrAAMyLgADMi8AAzIwAAMyMQADMjIAAzI0AAMyNgADMjcAAzI4AAMyOgADMjsAAzK2AAMyuAADMroAAzK8AAMyvwADMsAAAzLBAAMywgADMsMAAzLFAAMyxwADMsgAAzLJAAMyywADMswAAzNHAAMzSQADM0wAAzNOAAMzUQADM1IAAzNTAAMzVAADM1UAAzNXAAMzWQADM1oAAzNbAAMzXQADM14AAzN3AAMzeAADM3kAAzN7AAMz9gADM/gAAzP6AAMz/AADM/8AAzQAAAM0AQADNAIAAzQDAAM0BQADNAcAAzQIAAM0CQADNAsAAzQMAAM0hwADNIkAAzSLAAM0jQADNJAAAzSRAAM0kgADNJMAAzSUAAM0lgADNJgAAzSZAAM0mgADNJwAAzSdAAM1GAADNRoAAzUcAAM1HgADNSEAAzUiAAM1IwADNSQAAzUlAAM1JwADNSkAAzUqAAM1KwADNS0AAzUuAAM1qQADNasAAzWtAAM1rwADNbIAAzWzAAM1tAADNbUAAzW2AAM1uAADNboAAzW7AAM1vAADNb4AAzW/AAM2OgADNjwAAzY+AAM2QAADNkMAAzZEAAM2RQADNkYAAzZHAAM2SQADNksAAzZMAAM2TQADNk8AAzZQAAM2mQADNr0AAzbkAAM3CAADNwsAAzcNAAM3DwADNxEAAzcTAAM3FQADNxYAAzcZAAM3MgADN08AAzdRAAM3UwADN1UAAzdXAAM3WQADN1sAAzddAAM3egADN30AAzeAAAM3gwADN4YAAzeJAAM3jAADN48AAzeRAAM4DAADOA4AAzgQAAM4EgADOBUAAzgWAAM4FwADOBgAAzgZAAM4GwADOB0AAzgeAAM4HwADOCEAAzgiAAM4nQADOJ8AAzihAAM4owADOKYAAzinAAM4qAADOKkAAziqAAM4rAADOK4AAzivAAM4sAADOLIAAzizAAM5LgADOTAAAzkyAAM5NAADOTcAAzk4AAM5OQADOToAAzk7AAM5PQADOT8AAzlAAAM5QQADOUMAAzlEAAM5vwADOcEAAznDAAM5xQADOcgAAznJAAM5ygADOcsAAznMAAM5zgADOdAAAznRAAM50gADOdQAAznVAAM6UAADOlIAAzpUAAM6VgADOlkAAzpaAAM6WwADOlwAAzpdAAM6XwADOmEAAzpiAAM6YwADOmUAAzpmAAM64QADOuMAAzrlAAM65wADOuoAAzrrAAM67AADOu0AAzruAAM68AADOvIAAzrzAAM69AADOvYAAzr3AAM7cgADO3QAAzt2AAM7eAADO3sAAzt8AAM7fQADO34AAzt/AAM7gQADO4MAAzuEAAM7hQADO4cAAzuIAAM8GwADPD4AAzxeAAM8fgADPIAAAzyCAAM8hAADPIYAAzyJAAM8igADPIsAAzyOAAM8jwADPJEAAzySAAM8lAADPJcAAzyYAAM8mQADPJwAAzydAAM8ogADPLsAAzzEAAM8xgADPMgAAzzRAAM81AADPNcAAzzZAAM9IgADPUYAAz1tAAM9kQADPZQAAz2WAAM9mAADPZoAAz2cAAM9ngADPZ8AAz2iAAM9uwADPdwAAz3eAAM94AADPeIAAz3kAAM95gADPegAAz3qAAM97AADPg0AAz4QAAM+EwADPhYAAz4ZAAM+HAADPh8AAz4iAAM+JQADPicAAz6iAAM+pAADPqYAAz6oAAM+qwADPqwAAz6tAAM+rgADPq8AAz6xAAM+swADPrQAAz61AAM+twADPrgAAz8zAAM/NQADPzcAAz85AAM/PAADPz0AAz8+AAM/PwADP0AAAz9CAAM/RAADP0UAAz9GAAM/SAADP0kAAz/EAAM/xgADP8kAAz/LAAM/zgADP88AAz/QAAM/0QADP9IAAz/UAAM/1gADP9cAAz/YAAM/2gADP9sAAz/0AAM/9QADP/YAAz/4AANAcwADQHUAA0B3AANAeQADQHwAA0B9AANAfgADQH8AA0CAAANAggADQIQAA0CFAANAhgADQIgAA0CJAANBBAADQQYAA0EIAANBCgADQQ0AA0EOAANBDwADQRAAA0ERAANBEwADQRUAA0EWAANBFwADQRkAA0EaAANBlQADQZcAA0GZAANBmwADQZ4AA0GfAANBoAADQaEAA0GiAANBpAADQaYAA0GnAANBqAADQaoAA0GrAANCJgADQigAA0IqAANCLAADQi8AA0IwAANCMQADQjIAA0IzAANCNQADQjcAA0I4AANCOQADQjsAA0I8AANCtwADQrkAA0K7AANCvQADQsAAA0LBAANCwgADQsMAA0LEAANCxgADQsgAA0LJAANCygADQswAA0LNAANDFgADQzoAA0NhAANDhQADQ4gAA0OKAANDjAADQ44AA0OQAANDkgADQ5MAA0OWAANDrwADQ8wAA0POAAND0AADQ9IAA0PUAAND1gADQ9gAA0PaAAND9wADQ/oAA0P9AANEAAADRAMAA0QGAANECQADRAwAA0QOAANEiQADRIsAA0SOAANEkAADRJMAA0SUAANElQADRJYAA0SXAANEmQADRJsAA0ScAANEnQADRJ8AA0SgAANFGwADRR0AA0UfAANFIQADRSQAA0UlAANFJgADRScAA0UoAANFKgADRSwAA0UtAANFLgADRTAAA0UxAANFrAADRa4AA0WwAANFsgADRbUAA0W2AANFtwADRbgAA0W5AANFuwADRb0AA0W+AANFvwADRcEAA0XCAANGPQADRj8AA0ZCAANGRAADRkcAA0ZIAANGSQADRkoAA0ZLAANGTQADRk8AA0ZQAANGUQADRlMAA0ZUAANGzwADRtEAA0bTAANG1QADRtgAA0bZAANG2gADRtsAA0bcAANG3gADRuAAA0bhAANG4gADRuQAA0blAANHYAADR2IAA0dkAANHZgADR2kAA0dqAANHawADR2wAA0dtAANHbwADR3EAA0dyAANHcwADR3UAA0d2AANH8QADR/MAA0f1AANH9wADR/oAA0f7AANH/AADR/0AA0f+AANIAAADSAIAA0gDAANIBAADSAYAA0gHAANIGAADSBkAA0gbAANILAADSDUAA0g4AANIOwADSD0AA0h2AANIeQADSHsAA0h+AANIgQADSIQAA0iHAANJCgADSS4AA0lSAANJdQADSZwAA0m8AANJ4wADSgoAA0oqAANKTgADSnIAA0p0AANKdwADSnkAA0p7AANKfQADSoAAA0qDAANKhQADSocAA0qKAANKjAADSo4AA0qRAANKlAADSpUAA0qaAANKswADSrgAA0q6AANKvwADSsIAA0rEAANLDQADSzEAA0tYAANLfAADS38AA0uBAANLgwADS4UAA0uHAANLiQADS4oAA0uNAANLpgADS8sAA0vNAANLzwADS9EAA0vTAANL1QADS9cAA0vZAANL2wADS90AA0wCAANMBQADTAgAA0wLAANMDgADTBEAA0wUAANMFwADTBoAA0wdAANMHwADTJoAA0ycAANMnwADTKEAA0ykAANMpQADTKYAA0ynAANMqAADTKoAA0ysAANMrQADTK4AA0ywAANMsQADTMIAA0zDAANMxQADTUAAA01CAANNRAADTUYAA01JAANNSgADTUsAA01MAANNTQADTU8AA01RAANNUgADTVMAA01VAANNVgADTdEAA03TAANN1gADTdgAA03bAANN3AADTd0AA03eAANN3wADTeEAA03jAANN5AADTeUAA03nAANN6AADTfkAA036AANN/AADTncAA055AANOewADTn0AA06AAANOgQADToIAA06DAANOhAADToYAA06IAANOiQADTooAA06MAANOjQADTwgAA08KAANPDQADTw8AA08SAANPEwADTxQAA08VAANPFgADTxgAA08aAANPGwADTxwAA08eAANPHwADTzAAA08xAANPMwADT64AA0+wAANPsgADT7QAA0+3AANPuAADT7kAA0+6AANPuwADT70AA0+/AANPwAADT8EAA0/DAANPxAADUD8AA1BBAANQRAADUEYAA1BJAANQSgADUEsAA1BMAANQTQADUE8AA1BRAANQUgADUFMAA1BVAANQVgADUG8AA1BwAANQcQADUHMAA1DuAANQ8AADUPIAA1D0AANQ9wADUPgAA1D5AANQ+gADUPsAA1D9AANQ/wADUQAAA1EBAANRAwADUQQAA1F/AANRgQADUYQAA1GGAANRiQADUYoAA1GLAANRjAADUY0AA1GPAANRkQADUZIAA1GTAANRlQADUZYAA1G0AANRzQADUdIAA1HVAANR2gADUd0AA1HfAANScgADUpUAA1K1AANS1QADUtcAA1LZAANS2wADUt0AA1LgAANS4QADUuIAA1LlAANS5gADUugAA1LpAANS7AADUu8AA1LwAANS8QADUvQAA1L1AANS+gADUxMAA1McAANTHgADUyAAA1MpAANTLAADUy8AA1MxAANTegADU54AA1PFAANT6QADU+wAA1PuAANT8AADU/IAA1P0AANT9gADU/cAA1P6AANUEwADVDQAA1Q2AANUOAADVDoAA1Q8AANUPgADVEAAA1RCAANURAADVGUAA1RoAANUawADVG4AA1RxAANUdAADVHcAA1R6AANUfQADVH8AA1T6AANU/AADVP4AA1UAAANVAwADVQQAA1UFAANVBgADVQcAA1UJAANVCwADVQwAA1UNAANVDwADVRAAA1WLAANVjQADVY8AA1WRAANVlAADVZUAA1WWAANVlwADVZgAA1WaAANVnAADVZ0AA1WeAANVoAADVaEAA1YcAANWHgADViEAA1YjAANWJgADVicAA1YoAANWKQADVioAA1YsAANWLgADVi8AA1YwAANWMgADVjMAA1ZMAANWTQADVk4AA1ZQAANWywADVs0AA1bPAANW0QADVtQAA1bVAANW1gADVtcAA1bYAANW2gADVtwAA1bdAANW3gADVuAAA1bhAANXXAADV14AA1dgAANXYgADV2UAA1dmAANXZwADV2gAA1dpAANXawADV20AA1duAANXbwADV3EAA1dyAANX7QADV+8AA1fxAANX8wADV/YAA1f3AANX+AADV/kAA1f6AANX/AADV/4AA1f/AANYAAADWAIAA1gDAANYfgADWIAAA1iCAANYhAADWIcAA1iIAANYiQADWIoAA1iLAANYjQADWI8AA1iQAANYkQADWJMAA1iUAANZDwADWREAA1kTAANZFQADWRgAA1kZAANZGgADWRsAA1kcAANZHgADWSAAA1khAANZIgADWSQAA1klAANZbgADWZIAA1m5AANZ3QADWeAAA1niAANZ5AADWeYAA1noAANZ6gADWesAA1nuAANaBwADWiQAA1omAANaKAADWioAA1osAANaLgADWjAAA1oyAANaTwADWlIAA1pVAANaWAADWlsAA1peAANaYQADWmQAA1pmAANa4QADWuMAA1rlAANa5wADWuoAA1rrAANa7AADWu0AA1ruAANa8AADWvIAA1rzAANa9AADWvYAA1r3AANbcgADW3QAA1t2AANbeAADW3sAA1t8AANbfQADW34AA1t/AANbgQADW4MAA1uEAANbhQADW4cAA1uIAANcAwADXAUAA1wHAANcCQADXAwAA1wNAANcDgADXA8AA1wQAANcEgADXBQAA1wVAANcFgADXBgAA1wZAANclAADXJYAA1yZAANcmwADXJ4AA1yfAANcoAADXKEAA1yiAANcpAADXKYAA1ynAANcqAADXKoAA1yrAANdLgADXVIAA112AANdmQADXcAAA13gAANeBwADXi4AA15OAANecgADXpYAA16YAANemwADXp0AA16fAANeoQADXqQAA16nAANeqQADXqsAA16uAANesAADXrIAA161AANeuAADXrkAA16+AANe1wADXtwAA17eAANe4wADXuYAA17oAANfMQADX1UAA198AANfoAADX6MAA1+lAANfpwADX6kAA1+rAANfrQADX64AA1+xAANfygADX+8AA1/xAANf8wADX/UAA1/3AANf+QADX/sAA1/9AANf/wADYAEAA2AmAANgKQADYCwAA2AvAANgMgADYDUAA2A4AANgOwADYD4AA2BBAANgQwADYL4AA2DAAANgwwADYMUAA2DIAANgyQADYMoAA2DLAANgzAADYM4AA2DQAANg0QADYNIAA2DUAANg1QADYOYAA2DnAANg6QADYWQAA2FmAANhaAADYWoAA2FtAANhbgADYW8AA2FwAANhcQADYXMAA2F1AANhdgADYXcAA2F5AANhegADYfUAA2H3AANh+gADYfwAA2H/AANiAAADYgEAA2ICAANiAwADYgUAA2IHAANiCAADYgkAA2ILAANiDAADYh0AA2IeAANiIAADYpsAA2KdAANinwADYqEAA2KkAANipQADYqYAA2KnAANiqAADYqoAA2KsAANirQADYq4AA2KwAANisQADYywAA2MuAANjMQADYzMAA2M2AANjNwADYzgAA2M5AANjOgADYzwAA2M+AANjPwADY0AAA2NCAANjQwADY1QAA2NVAANjVwADY9IAA2PUAANj1gADY9gAA2PbAANj3AADY90AA2PeAANj3wADY+EAA2PjAANj5AADY+UAA2PnAANj6AADZGMAA2RlAANkaAADZGoAA2RtAANkbgADZG8AA2RwAANkcQADZHMAA2R1AANkdgADZHcAA2R5AANkegADZJMAA2SUAANklQADZJcAA2USAANlFAADZRYAA2UYAANlGwADZRwAA2UdAANlHgADZR8AA2UhAANlIwADZSQAA2UlAANlJwADZSgAA2WjAANlpQADZagAA2WqAANlrQADZa4AA2WvAANlsAADZbEAA2WzAANltQADZbYAA2W3AANluQADZboAA2XJAANl4gADZgsAA2YOAANmEQADZhQAA2YXAANmGgADZh0AA2YgAANmIwADZiYAA2YpAANmUgADZlUAA2ZYAANmWwADZl4AA2ZhAANmZAADZmcAA2ZqAANmbQADZnAAA2ZyAANmiQADZpcAA2awAANmuAADZtAAA2beAANncQADZ5QAA2e0AANn1AADZ9YAA2fYAANn2gADZ9wAA2ffAANn4AADZ+EAA2fkAANn5QADZ+cAA2foAANn6gADZ+0AA2fuAANn7wADZ/IAA2fzAANn+AADaBEAA2gaAANoHAADaB4AA2gnAANoKgADaC0AA2gvAANoeAADaJwAA2jDAANo5wADaOoAA2jsAANo7gADaPAAA2jyAANo9AADaPUAA2j4AANpEQADaTIAA2k0AANpNgADaTgAA2k6AANpPAADaT4AA2lAAANpQgADaWMAA2lmAANpaQADaWwAA2lvAANpcgADaXUAA2l4AANpewADaX0AA2n4AANp+gADafwAA2n+AANqAQADagIAA2oDAANqBAADagUAA2oHAANqCQADagoAA2oLAANqDQADag4AA2qJAANqiwADao0AA2qPAANqkgADapMAA2qUAANqlQADapYAA2qYAANqmgADapsAA2qcAANqngADap8AA2saAANrHAADax8AA2shAANrJAADayUAA2smAANrJwADaygAA2sqAANrLAADay0AA2suAANrMAADazEAA2tKAANrSwADa0wAA2tOAANryQADa8sAA2vNAANrzwADa9IAA2vTAANr1AADa9UAA2vWAANr2AADa9oAA2vbAANr3AADa94AA2vfAANsWgADbFwAA2xeAANsYAADbGMAA2xkAANsZQADbGYAA2xnAANsaQADbGsAA2xsAANsbQADbG8AA2xwAANs6wADbO0AA2zvAANs8QADbPQAA2z1AANs9gADbPcAA2z4AANs+gADbPwAA2z9AANs/gADbQAAA20BAANtfAADbX4AA22AAANtggADbYUAA22GAANthwADbYgAA22JAANtiwADbY0AA22OAANtjwADbZEAA22SAANuDQADbg8AA24RAANuEwADbhYAA24XAANuGAADbhkAA24aAANuHAADbh4AA24fAANuIAADbiIAA24jAANubAADbpAAA263AANu2wADbt4AA27gAANu4gADbuQAA27mAANu6AADbukAA27sAANvBQADbyIAA28kAANvJgADbygAA28qAANvLAADby4AA28wAANvTQADb1AAA29TAANvVgADb1kAA29cAANvXwADb2IAA29kAANv3wADb+EAA2/jAANv5QADb+gAA2/pAANv6gADb+sAA2/sAANv7gADb/AAA2/xAANv8gADb/QAA2/1AANwcAADcHIAA3B0AANwdgADcHkAA3B6AANwewADcHwAA3B9AANwfwADcIEAA3CCAANwgwADcIUAA3CGAANxAQADcQMAA3EFAANxBwADcQoAA3ELAANxDAADcQ0AA3EOAANxEAADcRIAA3ETAANxFAADcRYAA3EXAANxkgADcZQAA3GXAANxmQADcZwAA3GdAANxngADcZ8AA3GgAANxogADcaQAA3GlAANxpgADcagAA3GpAANyJAADciYAA3IoAANyKgADci0AA3IuAANyLwADcjAAA3IxAANyMwADcjUAA3I2AANyNwADcjkAA3I6AANytQADcrcAA3K5AANyuwADcr4AA3K/AANywAADcsEAA3LCAANyxAADcsYAA3LHAANyyAADcsoAA3LLAANzRgADc0gAA3NKAANzTAADc08AA3NQAANzUQADc1IAA3NTAANzVQADc1cAA3NYAANzWQADc1sAA3NcAANz7wADdBIAA3QyAAN0UgADdFQAA3RWAAN0WAADdFoAA3RdAAN0XgADdF8AA3RiAAN0YwADdGUAA3RmAAN0aQADdGwAA3RtAAN0bgADdHEAA3RyAAN0dwADdJAAA3SZAAN0mwADdJ0AA3SmAAN0qQADdKwAA3SuAAN09wADdRsAA3VCAAN1ZgADdWkAA3VrAAN1bQADdW8AA3VxAAN1cwADdXQAA3V3AAN1kAADdbEAA3WzAAN1tQADdbcAA3W5AAN1uwADdb0AA3W/AAN1wQADdeIAA3XlAAN16AADdesAA3XuAAN18QADdfQAA3X3AAN1+gADdfwAA3Z3AAN2eQADdnsAA3Z9AAN2gAADdoEAA3aCAAN2gwADdoQAA3aGAAN2iAADdokAA3aKAAN2jAADdo0AA3cIAAN3CgADdwwAA3cOAAN3EQADdxIAA3cTAAN3FAADdxUAA3cXAAN3GQADdxoAA3cbAAN3HQADdx4AA3eZAAN3mwADd54AA3egAAN3owADd6QAA3elAAN3pgADd6cAA3epAAN3qwADd6wAA3etAAN3rwADd7AAA3fJAAN3ygADd8sAA3fNAAN4SAADeEoAA3hMAAN4TgADeFEAA3hSAAN4UwADeFQAA3hVAAN4VwADeFkAA3haAAN4WwADeF0AA3heAAN42QADeNsAA3jdAAN43wADeOIAA3jjAAN45AADeOUAA3jmAAN46AADeOoAA3jrAAN47AADeO4AA3jvAAN5agADeWwAA3luAAN5cAADeXMAA3l0AAN5dQADeXYAA3l3AAN5eQADeXsAA3l8AAN5fQADeX8AA3mAAAN5+wADef0AA3n/AAN6AQADegQAA3oFAAN6BgADegcAA3oIAAN6CgADegwAA3oNAAN6DgADehAAA3oRAAN6jAADeo4AA3qQAAN6kgADepUAA3qWAAN6lwADepgAA3qZAAN6mwADep0AA3qeAAN6nwADeqEAA3qiAAN66wADew8AA3s2AAN7WgADe10AA3tfAAN7YQADe2MAA3tlAAN7ZwADe2gAA3trAAN7hAADe6EAA3ujAAN7pQADe6cAA3upAAN7qwADe60AA3uvAAN7zAADe88AA3vSAAN71QADe9gAA3vbAAN73gADe+EAA3vjAAN8XgADfGAAA3xiAAN8ZAADfGcAA3xoAAN8aQADfGoAA3xrAAN8bQADfG8AA3xwAAN8cQADfHMAA3x0AAN87wADfPEAA3z0AAN89gADfPkAA3z6AAN8+wADfPwAA3z9AAN8/wADfQEAA30CAAN9AwADfQUAA30GAAN9gQADfYMAA32FAAN9hwADfYoAA32LAAN9jAADfY0AA32OAAN9kAADfZIAA32TAAN9lAADfZYAA32XAAN+EgADfhQAA34XAAN+GQADfhwAA34dAAN+HgADfh8AA34gAAN+IgADfiQAA34lAAN+JgADfigAA34pAAN+pAADfqYAA36oAAN+qgADfq0AA36uAAN+rwADfrAAA36xAAN+swADfrUAA362AAN+twADfrkAA366AAN/NQADfzcAA385AAN/OwADfz4AA38/AAN/QAADf0EAA39CAAN/RAADf0YAA39HAAN/SAADf0oAA39LAAN/xgADf8gAA3/LAAN/zQADf9AAA3/RAAN/0gADf9MAA3/UAAN/1gADf9gAA3/ZAAN/2gADf9wAA3/dAAOAcAADgJMAA4CzAAOA0wADgNUAA4DXAAOA2QADgNsAA4DeAAOA3wADgOAAA4DjAAOA5AADgOYAA4DnAAOA6QADgOwAA4DtAAOA7gADgPEAA4DyAAOA9wADgRAAA4EZAAOBGwADgR0AA4EmAAOBKQADgSwAA4EuAAOBdwADgZsAA4HCAAOB5gADgekAA4HrAAOB7QADge8AA4HxAAOB8wADgfQAA4H3AAOCEAADgjEAA4IzAAOCNQADgjcAA4I5AAOCOwADgj0AA4I/AAOCQQADgmIAA4JlAAOCaAADgmsAA4JuAAOCcQADgnQAA4J3AAOCegADgnwAA4L3AAOC+QADgvsAA4L9AAODAAADgwEAA4MCAAODAwADgwQAA4MGAAODCAADgwkAA4MKAAODDAADgw0AA4OIAAODigADg4wAA4OOAAODkQADg5IAA4OTAAODlAADg5UAA4OXAAODmQADg5oAA4ObAAODnQADg54AA4QZAAOEGwADhB4AA4QgAAOEIwADhCQAA4QlAAOEJgADhCcAA4QpAAOEKwADhCwAA4QtAAOELwADhDAAA4RJAAOESgADhEsAA4RNAAOEyAADhMoAA4TMAAOEzgADhNEAA4TSAAOE0wADhNQAA4TVAAOE1wADhNkAA4TaAAOE2wADhN0AA4TeAAOFWQADhVsAA4VdAAOFXwADhWIAA4VjAAOFZAADhWUAA4VmAAOFaAADhWoAA4VrAAOFbAADhW4AA4VvAAOF6gADhewAA4XuAAOF8AADhfMAA4X0AAOF9QADhfYAA4X3AAOF+QADhfsAA4X8AAOF/QADhf8AA4YAAAOGewADhn0AA4Z/AAOGgQADhoQAA4aFAAOGhgADhocAA4aIAAOGigADhowAA4aNAAOGjgADhpAAA4aRAAOHDAADhw4AA4cQAAOHEgADhxUAA4cWAAOHFwADhxgAA4cZAAOHGwADhx0AA4ceAAOHHwADhyEAA4ciAAOHawADh48AA4e2AAOH2gADh90AA4ffAAOH4QADh+MAA4flAAOH5wADh+gAA4frAAOIBAADiCEAA4gjAAOIJQADiCcAA4gpAAOIKwADiC0AA4gvAAOITAADiE8AA4hSAAOIVQADiFgAA4hbAAOIXgADiGEAA4hjAAOI3gADiOAAA4jiAAOI5AADiOcAA4joAAOI6QADiOoAA4jrAAOI7QADiO8AA4jwAAOI8QADiPMAA4j0AAOJbwADiXEAA4lzAAOJdQADiXgAA4l5AAOJegADiXsAA4l8AAOJfgADiYAAA4mBAAOJggADiYQAA4mFAAOKAAADigIAA4oEAAOKBgADigkAA4oKAAOKCwADigwAA4oNAAOKDwADihEAA4oSAAOKEwADihUAA4oWAAOKkQADipMAA4qWAAOKmAADipsAA4qcAAOKnQADip4AA4qfAAOKoQADiqMAA4qkAAOKpQADiqcAA4qoAAOLIwADiyUAA4snAAOLKQADiywAA4stAAOLLgADiy8AA4swAAOLMgADizQAA4s1AAOLNgADizgAA4s5AAOLtAADi7YAA4u4AAOLugADi70AA4u+AAOLvwADi8AAA4vBAAOLwwADi8UAA4vGAAOLxwADi8kAA4vKAAOMRQADjEcAA4xJAAOMSwADjE4AA4xPAAOMUAADjFEAA4xSAAOMVAADjFYAA4xXAAOMWAADjFoAA4xbAAOM7gADjREAA40xAAONUQADjVMAA41VAAONVwADjVkAA41cAAONXQADjV4AA41hAAONYgADjWQAA41lAAONaAADjWsAA41sAAONbQADjXAAA41xAAONdgADjY8AA42YAAONmgADjZwAA42lAAONqAADjasAA42tAAON9gADjhoAA45BAAOOZQADjmgAA45qAAOObAADjm4AA45wAAOOcgADjnMAA452AAOOjwADjrAAA46yAAOOtAADjrYAA464AAOOugADjrwAA46+AAOOwAADjuEAA47kAAOO5wADjuoAA47tAAOO8AADjvMAA472AAOO+QADjvsAA492AAOPeAADj3oAA498AAOPfwADj4AAA4+BAAOPggADj4MAA4+FAAOPhwADj4gAA4+JAAOPiwADj4wAA5AHAAOQCQADkAsAA5ANAAOQEAADkBEAA5ASAAOQEwADkBQAA5AWAAOQGAADkBkAA5AaAAOQHAADkB0AA5CYAAOQmgADkJ0AA5CfAAOQogADkKMAA5CkAAOQpQADkKYAA5CoAAOQqgADkKsAA5CsAAOQrgADkK8AA5DIAAOQyQADkMoAA5DMAAORRwADkUkAA5FLAAORTQADkVAAA5FRAAORUgADkVMAA5FUAAORVgADkVgAA5FZAAORWgADkVwAA5FdAAOR2AADkdoAA5HcAAOR3gADkeEAA5HiAAOR4wADkeQAA5HlAAOR5wADkekAA5HqAAOR6wADke0AA5HuAAOSaQADkmsAA5JtAAOSbwADknIAA5JzAAOSdAADknUAA5J2AAOSeAADknoAA5J7AAOSfAADkn4AA5J/AAOS+gADkvwAA5L+AAOTAAADkwMAA5MEAAOTBQADkwYAA5MHAAOTCQADkwsAA5MMAAOTDQADkw8AA5MQAAOTiwADk40AA5OPAAOTkQADk5QAA5OVAAOTlgADk5cAA5OYAAOTmgADk5wAA5OdAAOTngADk6AAA5OhAAOT6gADlA4AA5Q1AAOUWQADlFwAA5ReAAOUYAADlGIAA5RkAAOUZgADlGcAA5RqAAOUgwADlKAAA5SiAAOUpAADlKYAA5SoAAOUqgADlKwAA5SuAAOUywADlM4AA5TRAAOU1AADlNcAA5TaAAOU3QADlOAAA5TiAAOVXQADlV8AA5VhAAOVYwADlWYAA5VnAAOVaAADlWkAA5VqAAOVbAADlW4AA5VvAAOVcAADlXIAA5VzAAOV7gADlfAAA5XzAAOV9QADlfgAA5X5AAOV+gADlfsAA5X8AAOV/gADlgAAA5YBAAOWAgADlgQAA5YFAAOWgAADloIAA5aEAAOWhgADlokAA5aKAAOWiwADlowAA5aNAAOWjwADlpEAA5aSAAOWkwADlpUAA5aWAAOXEQADlxMAA5cWAAOXGAADlxsAA5ccAAOXHQADlx4AA5cfAAOXIQADlyMAA5ckAAOXJQADlycAA5coAAOXqwADl88AA5fzAAOYFgADmD0AA5hdAAOYhAADmKsAA5jLAAOY7wADmRMAA5kVAAOZGAADmRoAA5kcAAOZHgADmSEAA5kkAAOZJgADmSgAA5krAAOZLQADmS8AA5kyAAOZNQADmTYAA5k7AAOZVAADmVkAA5lbAAOZYAADmWMAA5llAAOZrgADmdIAA5n5AAOaHQADmiAAA5oiAAOaJAADmiYAA5ooAAOaKgADmisAA5ouAAOaRwADmmwAA5puAAOacAADmnIAA5p0AAOadgADmngAA5p6AAOafAADmn4AA5qjAAOapgADmqkAA5qsAAOarwADmrIAA5q1AAOauAADmrsAA5q+AAOawAADmzsAA5s9AAObQAADm0IAA5tFAAObRgADm0cAA5tIAAObSQADm0sAA5tNAAObTgADm08AA5tRAAObUgADm2MAA5tkAAObZgADm+EAA5vjAAOb5QADm+cAA5vqAAOb6wADm+wAA5vtAAOb7gADm/AAA5vyAAOb8wADm/QAA5v2AAOb9wADnHIAA5x0AAOcdwADnHkAA5x8AAOcfQADnH4AA5x/AAOcgAADnIIAA5yEAAOchQADnIYAA5yIAAOciQADnJoAA5ybAAOcnQADnRgAA50aAAOdHAADnR4AA50hAAOdIgADnSMAA50kAAOdJQADnScAA50pAAOdKgADnSsAA50tAAOdLgADnakAA52rAAOdrgADnbAAA52zAAOdtAADnbUAA522AAOdtwADnbkAA527AAOdvAADnb0AA52/AAOdwAADndEAA53SAAOd1AADnk8AA55RAAOeUwADnlUAA55YAAOeWQADnloAA55bAAOeXAADnl4AA55gAAOeYQADnmIAA55kAAOeZQADnuAAA57iAAOe5QADnucAA57qAAOe6wADnuwAA57tAAOe7gADnvAAA57yAAOe8wADnvQAA572AAOe9wADnxAAA58RAAOfEgADnxQAA5+PAAOfkQADn5MAA5+VAAOfmAADn5kAA5+aAAOfmwADn5wAA5+eAAOfoAADn6EAA5+iAAOfpAADn6UAA6AgAAOgIgADoCUAA6AnAAOgKgADoCsAA6AsAAOgLQADoC4AA6AwAAOgMgADoDMAA6A0AAOgNgADoDcAA6BQAAOgaQADoIIAA6CFAAOgiAADoIsAA6COAAOgkQADoJQAA6CtAAOgsAADoLMAA6C2AAOguQADoLwAA6C/AAOgwQADoMoAA6DPAAOg3QADoOEAA6DnAAOhegADoZ0AA6G9AAOh3QADod8AA6HhAAOh4wADoeUAA6HoAAOh6QADoeoAA6HtAAOh7gADofAAA6HxAAOh9AADofcAA6H4AAOh+QADofwAA6H9AAOiAgADohsAA6IkAAOiJgADoigAA6IxAAOiNAADojcAA6I5AAOiggADoqYAA6LNAAOi8QADovQAA6L2AAOi+AADovoAA6L8AAOi/gADov8AA6MCAAOjGwADozwAA6M+AAOjQAADo0IAA6NEAAOjRgADo0gAA6NKAAOjTAADo20AA6NwAAOjcwADo3YAA6N5AAOjfAADo38AA6OCAAOjhQADo4cAA6QCAAOkBAADpAYAA6QIAAOkCwADpAwAA6QNAAOkDgADpA8AA6QRAAOkEwADpBQAA6QVAAOkFwADpBgAA6STAAOklQADpJcAA6SZAAOknAADpJ0AA6SeAAOknwADpKAAA6SiAAOkpAADpKUAA6SmAAOkqAADpKkAA6UkAAOlJgADpSkAA6UrAAOlLgADpS8AA6UwAAOlMQADpTIAA6U0AAOlNgADpTcAA6U4AAOlOgADpTsAA6VUAAOlVQADpVYAA6VYAAOl0wADpdUAA6XXAAOl2QADpdwAA6XdAAOl3gADpd8AA6XgAAOl4gADpeQAA6XlAAOl5gADpegAA6XpAAOmZAADpmYAA6ZoAAOmagADpm0AA6ZuAAOmbwADpnAAA6ZxAAOmcwADpnUAA6Z2AAOmdwADpnkAA6Z6AAOm9QADpvcAA6b5AAOm+wADpv4AA6b/AAOnAAADpwEAA6cCAAOnBAADpwYAA6cHAAOnCAADpwoAA6cLAAOnhgADp4gAA6eKAAOnjAADp48AA6eQAAOnkQADp5IAA6eTAAOnlQADp5cAA6eYAAOnmQADp5sAA6ecAAOoFwADqBkAA6gbAAOoHQADqCAAA6ghAAOoIgADqCMAA6gkAAOoJgADqCgAA6gpAAOoKgADqCwAA6gtAAOodgADqJoAA6jBAAOo5QADqOgAA6jqAAOo7AADqO4AA6jwAAOo8gADqPMAA6j2AAOpDwADqSwAA6kuAAOpMAADqTIAA6k0AAOpNgADqTgAA6k6AAOpVwADqVoAA6ldAAOpYAADqWMAA6lmAAOpaQADqWwAA6luAAOp6QADqesAA6ntAAOp7wADqfIAA6nzAAOp9AADqfUAA6n2AAOp+AADqfoAA6n7AAOp/AADqf4AA6n/AAOqegADqnwAA6p+AAOqgAADqoMAA6qEAAOqhQADqoYAA6qHAAOqiQADqosAA6qMAAOqjQADqo8AA6qQAAOrCwADqw0AA6sPAAOrEQADqxQAA6sVAAOrFgADqxcAA6sYAAOrGgADqxwAA6sdAAOrHgADqyAAA6shAAOrnAADq54AA6uhAAOrowADq6YAA6unAAOrqAADq6kAA6uqAAOrrAADq64AA6uvAAOrsAADq7IAA6uzAAOsLgADrDAAA6wyAAOsNAADrDcAA6w4AAOsOQADrDoAA6w7AAOsPQADrD8AA6xAAAOsQQADrEMAA6xEAAOsvwADrMEAA6zDAAOsxQADrMgAA6zJAAOsygADrMsAA6zMAAOszgADrNAAA6zRAAOs0gADrNQAA6zVAAOtUAADrVIAA61VAAOtVwADrVoAA61bAAOtXAADrV0AA61eAAOtYAADrWIAA61jAAOtZAADrWYAA61nAAOt+gADrh0AA649AAOuXQADrl8AA65hAAOuYwADrmUAA65oAAOuaQADrmoAA65tAAOubgADrnAAA65xAAOucwADrnYAA653AAOueAADrnsAA658AAOuhQADrp4AA66nAAOuqQADrqsAA660AAOutwADrroAA668AAOvBQADrykAA69QAAOvdAADr3cAA695AAOvewADr30AA69/AAOvgQADr4IAA6+FAAOvngADr78AA6/BAAOvwwADr8UAA6/HAAOvyQADr8sAA6/NAAOvzwADr/AAA6/zAAOv9gADr/kAA6/8AAOv/wADsAIAA7AFAAOwCAADsAoAA7CFAAOwhwADsIkAA7CLAAOwjgADsI8AA7CQAAOwkQADsJIAA7CUAAOwlgADsJcAA7CYAAOwmgADsJsAA7EWAAOxGAADsRoAA7EcAAOxHwADsSAAA7EhAAOxIgADsSMAA7ElAAOxJwADsSgAA7EpAAOxKwADsSwAA7GnAAOxqQADsawAA7GuAAOxsQADsbIAA7GzAAOxtAADsbUAA7G3AAOxuQADsboAA7G7AAOxvQADsb4AA7HXAAOx2AADsdkAA7HbAAOyVgADslgAA7JaAAOyXAADsl8AA7JgAAOyYQADsmIAA7JjAAOyZQADsmcAA7JoAAOyaQADsmsAA7JsAAOy5wADsukAA7LrAAOy7QADsvAAA7LxAAOy8gADsvMAA7L0AAOy9gADsvgAA7L5AAOy+gADsvwAA7L9AAOzeAADs3oAA7N8AAOzfgADs4EAA7OCAAOzgwADs4QAA7OFAAOzhwADs4kAA7OKAAOziwADs40AA7OOAAO0CQADtAsAA7QNAAO0DwADtBIAA7QTAAO0FAADtBUAA7QWAAO0GAADtBoAA7QbAAO0HAADtB4AA7QfAAO0mgADtJwAA7SeAAO0oAADtKMAA7SkAAO0pQADtKYAA7SnAAO0qQADtKsAA7SsAAO0rQADtK8AA7SwAAO0+QADtR0AA7VEAAO1aAADtWsAA7VtAAO1bwADtXEAA7VzAAO1dQADtXYAA7V5AAO1kgADta8AA7WxAAO1swADtbUAA7W3AAO1uQADtbsAA7W9AAO12gADtd0AA7XgAAO14wADteYAA7XpAAO17AADte8AA7XxAAO2bAADtm4AA7ZwAAO2cgADtnUAA7Z2AAO2dwADtngAA7Z5AAO2ewADtn0AA7Z+AAO2fwADtoEAA7aCAAO2/QADtv8AA7cBAAO3AwADtwYAA7cHAAO3CAADtwkAA7cKAAO3DAADtw4AA7cPAAO3EAADtxIAA7cTAAO3jgADt5AAA7eSAAO3lAADt5cAA7eYAAO3mQADt5oAA7ebAAO3nQADt58AA7egAAO3oQADt6MAA7ekAAO4HwADuCEAA7gkAAO4JgADuCkAA7gqAAO4KwADuCwAA7gtAAO4LwADuDEAA7gyAAO4MwADuDUAA7g2AAO4sQADuLMAA7i1AAO4twADuLoAA7i7AAO4vAADuL0AA7i+AAO4wAADuMIAA7jDAAO4xAADuMYAA7jHAAO5QgADuUQAA7lGAAO5SAADuUsAA7lMAAO5TQADuU4AA7lPAAO5UQADuVMAA7lUAAO5VQADuVcAA7lYAAO50wADudUAA7nXAAO52QADudwAA7ndAAO53gADud8AA7ngAAO54gADueQAA7nlAAO55gADuegAA7npAAO6fAADup8AA7q/AAO63wADuuEAA7rjAAO65QADuucAA7rqAAO66wADuuwAA7rvAAO68AADuvIAA7rzAAO69gADuvkAA7r6AAO6+wADuv4AA7r/AAO7BAADux0AA7smAAO7KAADuyoAA7szAAO7NgADuzkAA7s7AAO7hAADu6gAA7vPAAO78wADu/YAA7v4AAO7+gADu/wAA7v+AAO8AAADvAEAA7wEAAO8HQADvD4AA7xAAAO8QgADvEQAA7xGAAO8SAADvEoAA7xMAAO8TgADvG8AA7xyAAO8dQADvHgAA7x7AAO8fgADvIEAA7yEAAO8hwADvIkAA70EAAO9BgADvQgAA70KAAO9DQADvQ4AA70PAAO9EAADvREAA70TAAO9FQADvRYAA70XAAO9GQADvRoAA72VAAO9lwADvZkAA72bAAO9ngADvZ8AA72gAAO9oQADvaIAA72kAAO9pgADvacAA72oAAO9qgADvasAA74mAAO+KAADvisAA74tAAO+MAADvjEAA74yAAO+MwADvjQAA742AAO+OAADvjkAA746AAO+PAADvj0AA75WAAO+VwADvlgAA75aAAO+1QADvtcAA77ZAAO+2wADvt4AA77fAAO+4AADvuEAA77iAAO+5AADvuYAA77nAAO+6AADvuoAA77rAAO/ZgADv2gAA79qAAO/bAADv28AA79wAAO/cQADv3IAA79zAAO/dQADv3cAA794AAO/eQADv3sAA798AAO/9wADv/kAA7/7AAO//QADwAAAA8ABAAPAAgADwAMAA8AEAAPABgADwAgAA8AJAAPACgADwAwAA8ANAAPAiAADwIoAA8CMAAPAjgADwJEAA8CSAAPAkwADwJQAA8CVAAPAlwADwJkAA8CaAAPAmwADwJ0AA8CeAAPBGQADwRsAA8EdAAPBHwADwSIAA8EjAAPBJAADwSUAA8EmAAPBKAADwSoAA8ErAAPBLAADwS4AA8EvAAPBeAADwZwAA8HDAAPB5wADweoAA8HsAAPB7gADwfAAA8HyAAPB9AADwfUAA8H4AAPCEQADwi4AA8IwAAPCMgADwjQAA8I2AAPCOAADwjoAA8I8AAPCWQADwlwAA8JfAAPCYgADwmUAA8JoAAPCawADwm4AA8JwAAPC6wADwu0AA8LvAAPC8QADwvQAA8L1AAPC9gADwvcAA8L4AAPC+gADwvwAA8L9AAPC/gADwwAAA8MBAAPDfAADw34AA8OAAAPDggADw4UAA8OGAAPDhwADw4gAA8OJAAPDiwADw40AA8OOAAPDjwADw5EAA8OSAAPEDQADxA8AA8QRAAPEEwADxBYAA8QXAAPEGAADxBkAA8QaAAPEHAADxB4AA8QfAAPEIAADxCIAA8QjAAPEngADxKAAA8SjAAPEpQADxKgAA8SpAAPEqgADxKsAA8SsAAPErgADxLAAA8SxAAPEsgADxLQAA8S1AAPFOAADxVwAA8WAAAPFowADxcoAA8XqAAPGEQADxjgAA8ZYAAPGfAADxqAAA8aiAAPGpQADxqcAA8apAAPGqwADxq4AA8axAAPGswADxrUAA8a4AAPGugADxrwAA8a/AAPGwgADxsMAA8bIAAPG4QADxuYAA8boAAPG7QADxvAAA8byAAPHOwADx18AA8eGAAPHqgADx60AA8evAAPHsQADx7MAA8e1AAPHtwADx7gAA8e7AAPH1AADx/kAA8f7AAPH/QADx/8AA8gBAAPIAwADyAUAA8gHAAPICQADyAsAA8gwAAPIMwADyDYAA8g5AAPIPAADyD8AA8hCAAPIRQADyEgAA8hLAAPITQADyMgAA8jKAAPIzQADyM8AA8jSAAPI0wADyNQAA8jVAAPI1gADyNgAA8jaAAPI2wADyNwAA8jeAAPI3wADyPAAA8jxAAPI8wADyW4AA8lwAAPJcgADyXQAA8l3AAPJeAADyXkAA8l6AAPJewADyX0AA8l/AAPJgAADyYEAA8mDAAPJhAADyf8AA8oBAAPKBAADygYAA8oJAAPKCgADygsAA8oMAAPKDQADyg8AA8oRAAPKEgADyhMAA8oVAAPKFgADyicAA8osAAPKLwADyjEAA8pCAAPKRwADykoAA8pMAAPKUwADys4AA8rQAAPK0gADytQAA8rXAAPK2AADytkAA8raAAPK2wADyt0AA8rfAAPK4AADyuEAA8rjAAPK5AADy18AA8thAAPLZAADy2YAA8tpAAPLagADy2sAA8tsAAPLbQADy28AA8txAAPLcgADy3MAA8t1AAPLdgADy4cAA8uIAAPLigADzAUAA8wHAAPMCQADzAsAA8wOAAPMDwADzBAAA8wRAAPMEgADzBQAA8wWAAPMFwADzBgAA8waAAPMGwADzJYAA8yYAAPMmwADzJ0AA8ygAAPMoQADzKIAA8yjAAPMpAADzKYAA8yoAAPMqQADzKoAA8ysAAPMrQADzMYAA8zHAAPMyAADzMoAA81FAAPNRwADzUkAA81LAAPNTgADzU8AA81QAAPNUQADzVIAA81UAAPNVgADzVcAA81YAAPNWgADzVsAA83WAAPN2AADzdoAA83cAAPN3wADzeAAA83hAAPN4gADzeMAA83lAAPN5wADzegAA83pAAPN6wADzewAA84FAAPOFgADzhkAA84cAAPOHwADziIAA84zAAPONgADzjkAA848AAPOPwADzkEAA85VAAPOdAADzogAA88bAAPPPgADz14AA89+AAPPgAADz4IAA8+EAAPPhgADz4kAA8+KAAPPiwADz44AA8+PAAPPkQADz5IAA8+UAAPPlwADz5gAA8+ZAAPPnAADz50AA8+iAAPPuwADz8QAA8/GAAPPyAADz9EAA8/UAAPP1wADz9kAA9AiAAPQRgAD0G0AA9CRAAPQlAAD0JYAA9CYAAPQmgAD0JwAA9CeAAPQnwAD0KIAA9C7AAPQ3AAD0N4AA9DgAAPQ4gAD0OQAA9DmAAPQ6AAD0OoAA9DsAAPRDQAD0RAAA9ETAAPRFgAD0RkAA9EcAAPRHwAD0SIAA9ElAAPRJwAD0aIAA9GkAAPRpgAD0agAA9GrAAPRrAAD0a0AA9GuAAPRrwAD0bEAA9GzAAPRtAAD0bUAA9G3AAPRuAAD0jMAA9I1AAPSNwAD0jkAA9I8AAPSPQAD0j4AA9I/AAPSQAAD0kIAA9JEAAPSRQAD0kYAA9JIAAPSSQAD0sQAA9LGAAPSyQAD0ssAA9LOAAPSzwAD0tAAA9LRAAPS0gAD0tQAA9LWAAPS1wAD0tgAA9LaAAPS2wAD0vQAA9L1AAPS9gAD0vgAA9NzAAPTdQAD03cAA9N5AAPTfAAD030AA9N+AAPTfwAD04AAA9OCAAPThAAD04UAA9OGAAPTiAAD04kAA9QEAAPUBgAD1AgAA9QKAAPUDQAD1A4AA9QPAAPUEAAD1BEAA9QTAAPUFQAD1BYAA9QXAAPUGQAD1BoAA9SVAAPUlwAD1JkAA9SbAAPUngAD1J8AA9SgAAPUoQAD1KIAA9SkAAPUpgAD1KcAA9SoAAPUqgAD1KsAA9UmAAPVKAAD1SoAA9UsAAPVLwAD1TAAA9UxAAPVMgAD1TMAA9U1AAPVNwAD1TgAA9U5AAPVOwAD1TwAA9W3AAPVuQAD1bsAA9W9AAPVwAAD1cEAA9XCAAPVwwAD1cQAA9XGAAPVyAAD1ckAA9XKAAPVzAAD1c0AA9YWAAPWOgAD1mEAA9aFAAPWiAAD1ooAA9aMAAPWjgAD1pAAA9aSAAPWkwAD1pYAA9avAAPWzAAD1s4AA9bQAAPW0gAD1tQAA9bWAAPW2AAD1toAA9b3AAPW+gAD1v0AA9cAAAPXAwAD1wYAA9cJAAPXDAAD1w4AA9eJAAPXiwAD140AA9ePAAPXkgAD15MAA9eUAAPXlQAD15YAA9eYAAPXmgAD15sAA9ecAAPXngAD158AA9gaAAPYHAAD2B4AA9ggAAPYIwAD2CQAA9glAAPYJgAD2CcAA9gpAAPYKwAD2CwAA9gtAAPYLwAD2DAAA9irAAPYrQAD2K8AA9ixAAPYtAAD2LUAA9i2AAPYtwAD2LgAA9i6AAPYvAAD2L0AA9i+AAPYwAAD2MEAA9k8AAPZPgAD2UEAA9lDAAPZRgAD2UcAA9lIAAPZSQAD2UoAA9lMAAPZTgAD2U8AA9lQAAPZUgAD2VMAA9nOAAPZ0AAD2dIAA9nUAAPZ1wAD2dgAA9nZAAPZ2gAD2dsAA9ndAAPZ3wAD2eAAA9nhAAPZ4wAD2eQAA9pfAAPaYQAD2mMAA9plAAPaaAAD2mkAA9pqAAPaawAD2mwAA9puAAPacAAD2nEAA9pyAAPadAAD2nUAA9rwAAPa8gAD2vQAA9r2AAPa+QAD2voAA9r7AAPa/AAD2v0AA9r/AAPbAQAD2wIAA9sDAAPbBQAD2wYAA9uZAAPbvAAD29wAA9v8AAPb/gAD3AAAA9wCAAPcBAAD3AcAA9wIAAPcCQAD3AwAA9wNAAPcDwAD3BAAA9wTAAPcFgAD3BcAA9wYAAPcGwAD3BwAA9wlAAPcPgAD3EcAA9xJAAPcSwAD3FQAA9xXAAPcWgAD3FwAA9ylAAPcyQAD3PAAA90UAAPdFwAD3RkAA90bAAPdHQAD3R8AA90hAAPdIgAD3SUAA90+AAPdXwAD3WEAA91jAAPdZQAD3WcAA91pAAPdawAD3W0AA91vAAPdkAAD3ZMAA92WAAPdmQAD3ZwAA92fAAPdogAD3aUAA92oAAPdqgAD3iUAA94nAAPeKQAD3isAA94uAAPeLwAD3jAAA94xAAPeMgAD3jQAA942AAPeNwAD3jg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ABAKPAAQCkAAEApEABAKSAAQClAAEApYABAKXAAQCmAAEApoABAKbAAQDFgAEAxgABAMaAAQDHAAEAx8ABAMgAAQDIQAEAyIABAMjAAQDJQAEAycABAMoAAQDKQAEAysABAMsAAQDpwAEA6kABAOrAAQDrQAEA7AABAOxAAQDsgAEA7MABAO0AAQDtgAEA7gABAO5AAQDugAEA7wABAO9AAQEOAAEBDoABAQ8AAQEPgAEBEEABARCAAQEQwAEBEQABARFAAQERwAEBEkABARKAAQESwAEBE0ABAROAAQEyQAEBMsABATNAAQEzwAEBNIABATTAAQE1AAEBNUABATWAAQE2AAEBNoABATbAAQE3AAEBN4ABATfAAQFKAAEBUwABAVzAAQFlwAEBZoABAWcAAQFngAEBaAABAWiAAQFpAAEBaUABAWoAAQFwQAEBd4ABAXgAAQF4gAEBeQABAXmAAQF6AAEBeoABAXsAAQGCQAEBgwABAYPAAQGEgAEBhUABAYYAAQGGwAEBh4ABAYgAAQGmwAEBp0ABAafAAQGoQAEBqQABAalAAQGpgAEBqcABAaoAAQGqgAEBqwABAatAAQGrgAEBrAABAaxAAQHLAAEBy4ABAcwAAQHMgAEBzUABAc2AAQHNwAEBzgABAc5AAQHOwAEBz0ABAc+AAQHPwAEB0EABAdCAAQHvQAEB78ABAfBAAQHwwAEB8YABAfHAAQHyAAEB8kABAfKAAQHzAAEB84ABAfPAAQH0AAEB9IABAfTAAQITgAECFAABAhTAAQIVQAECFgABAhZAAQIWgAECFsABAhcAAQIXgAECGAABAhhAAQIYgAECGQABAhlAAQI4AAECOIABAjkAAQI5gAECOkABAjqAAQI6wAECOwABAjtAAQI7wAECPEABAjyAAQI8wAECPUABAj2AAQJcQAECXMABAl1AAQJdwAECXoABAl7AAQJfAAECX0ABAl+AAQJgAAECYIABAmDAAQJhAAECYYABAmHAAQKAgAECgQABAoGAAQKCAAECgsABAoMAAQKDQAECg4ABAoPAAQKEQAEChMABAoUAAQKFQAEChcABAoYAAQKqwAECs4ABAruAAQLDgAECxAABAsSAAQLFAAECxYABAsZAAQLGgAECxsABAseAAQLHwAECyEABAsiAAQLJAAECycABAsoAAQLKQAECywABAstAAQLMgAEC0sABAtUAAQLVgAEC1gABAthAAQLZAAEC2cABAtpAAQLsgAEC9YABAv9AAQMIQAEDCQABAwmAAQMKAAEDCoABAwsAAQMLgAEDC8ABAwyAAQMSwAEDGwABAxuAAQMcAAEDHIABAx0AAQMdgAEDHgABAx6AAQMfAAEDJ0ABAygAAQMowAEDKYABAypAAQMrAAEDK8ABAyyAAQMtQAEDLcABA0yAAQNNAAEDTYABA04AAQNOwAEDTwABA09AAQNPgAEDT8ABA1BAAQNQwAEDUQABA1FAAQNRwAEDUgABA3DAAQNxQAEDccABA3JAAQNzAAEDc0ABA3OAAQNzwAEDdAABA3SAAQN1AAEDdUABA3WAAQN2AAEDdkABA5UAAQOVgAEDlkABA5bAAQOXgAEDl8ABA5gAAQOYQAEDmIABA5kAAQOZgAEDmcABA5oAAQOagAEDmsABA6EAAQOhQAEDoYABA6IAAQPAwAEDwUABA8HAAQPCQAEDwwABA8NAAQPDgAEDw8ABA8QAAQPEgAEDxQABA8VAAQPFgAEDxgABA8ZAAQPlAAED5YABA+YAAQPmgAED50ABA+eAAQPnwAED6AABA+hAAQPowAED6UABA+mAAQPpwAED6kABA+qAAQQJQAEECcABBApAAQQKwAEEC4ABBAvAAQQMAAEEDEABBAyAAQQNAAEEDYABBA3AAQQOAAEEDoABBA7AAQQtgAEELgABBC6AAQQvAAEEL8ABBDAAAQQwQAEEMIABBDDAAQQxQAEEMcABBDIAAQQyQAEEMsABBDMAAQRRwAEEUkABBFLAAQRTQAEEVAABBFRAAQRUgAEEVMABBFUAAQRVgAEEVgABBFZAAQRWgAEEVwABBFdAAQRpgAEEcoABBHxAAQSFQAEEhgABBIaAAQSHAAEEh4ABBIgAAQSIgAEEiMABBImAAQSPwAEElwABBJeAAQSYAAEEmIABBJkAAQSZgAEEmgABBJqAAQShwAEEooABBKNAAQSkAAEEpMABBKWAAQSmQAEEpwABBKeAAQTGQAEExsABBMeAAQTIAAEEyMABBMkAAQTJQAEEyYABBMnAAQTKQAEEysABBMsAAQTLQAEEy8ABBMwAAQTNAAEE68ABBOxAAQTswAEE7UABBO4AAQTuQAEE7oABBO7AAQTvAAEE74ABBPAAAQTwQAEE8IABBPEAAQTxQAEFEAABBRCAAQURAAEFEYABBRJAAQUSgAEFEsABBRMAAQUTQAEFE8ABBRRAAQUUgAEFFMABBRVAAQUVgAEFNEABBTTAAQU1gAEFNgABBTbAAQU3AAEFN0ABBTeAAQU3wAEFOEABBTjAAQU5AAEFOUABBTnAAQU6AAEFWMABBVlAAQVZwAEFWkABBVsAAQVbQAEFW4ABBVvAAQVcAAEFXIABBV0AAQVdQAEFXYABBV4AAQVeQAEFfQABBX2AAQV+AAEFfoABBX9AAQV/gAEFf8ABBYAAAQWAQAEFgMABBYFAAQWBgAEFgcABBYJAAQWCgAEFoUABBaHAAQWiQAEFosABBaOAAQWjwAEFpAABBaRAAQWkgAEFpQABBaWAAQWlwAEFpgABBaaAAQWmwAEFy4ABBdRAAQXcQAEF5EABBeTAAQXlQAEF5cABBeZAAQXnAAEF50ABBeeAAQXoQAEF6IABBekAAQXpQAEF6cABBeqAAQXqwAEF6wABBevAAQXsAAEF7UABBfOAAQX1wAEF9kABBfbAAQX5AAEF+cABBfqAAQX7AAEGDUABBhZAAQYgAAEGKQABBinAAQYqQAEGKsABBitAAQYrwAEGLEABBiyAAQYtQAEGM4ABBjvAAQY8QAEGPMABBj1AAQY9wAEGPkABBj7AAQY/QAEGP8ABBkgAAQZIwAEGSYABBkpAAQZLAAEGS8ABBkyAAQZNQAEGTgABBk6AAQZtQAEGbcABBm5AAQZuwAEGb4ABBm/AAQZwAAEGcEABBnCAAQZxAAEGcYABBnHAAQZyAAEGcoABBnLAAQaRgAEGkgABBpKAAQaTAAEGk8ABBpQAAQaUQAEGlIABBpTAAQaVQAEGlcABBpYAAQaWQAEGlsABBpcAAQa1wAEGtkABBrcAAQa3gAEGuEABBriAAQa4wAEGuQABBrlAAQa5wAEGukABBrqAAQa6wAEGu0ABBruAAQbBwAEGwgABBsJAAQbCwAEG4YABBuIAAQbigAEG4wABBuPAAQbkAAEG5EABBuSAAQbkwAEG5UABBuXAAQbmAAEG5kABBubAAQbnAAEHBcABBwZAAQcGwAEHB0ABBwgAAQcIQAEHCIABBwjAAQcJAAEHCYABBwoAAQcKQAEHCoABBwsAAQcLQAEHKgABByqAAQcrAAEHK4ABByxAAQcsgAEHLMABBy0AAQctQAEHLcABBy5AAQcugAEHLsABBy9AAQcvgAEHTkABB07AAQdPQAEHT8ABB1CAAQdQwAEHUQABB1FAAQdRgAEHUgABB1KAAQdSwAEHUwABB1OAAQdTwAEHcoABB3MAAQdzgAEHdAABB3TAAQd1AAEHdUABB3WAAQd1wAEHdkABB3bAAQd3AAEHd0ABB3fAAQd4AAEHikABB5NAAQedAAEHpgABB6bAAQenQAEHp8ABB6hAAQeowAEHqUABB6mAAQeqQAEHsIABB7fAAQe4QAEHuMABB7lAAQe5wAEHukABB7rAAQe7QAEHwoABB8NAAQfEAAEHxMABB8WAAQfGQAEHxwABB8fAAQfIQAEH5wABB+eAAQfoQAEH6MABB+mAAQfpwAEH6gABB+pAAQfqgAEH6wABB+uAAQfrwAEH7AABB+yAAQfswAEIC4ABCAwAAQgMgAEIDQABCA3AAQgOAAEIDkABCA6AAQgOwAEID0ABCA/AAQgQAAEIEEABCBDAAQgRAAEIL8ABCDBAAQgwwAEIMUABCDIAAQgyQAEIMoABCDLAAQgzAAEIM4ABCDQAAQg0QAEINIABCDUAAQg1QAEIVAABCFSAAQhVQAEIVcABCFaAAQhWwAEIVwABCFdAAQhXgAEIWAABCFiAAQhYwAEIWQABCFmAAQhZwAEIeIABCHkAAQh5gAEIegABCHrAAQh7AAEIe0ABCHuAAQh7wAEIfEABCHzAAQh9AAEIfUABCH3AAQh+AAEInMABCJ1AAQidwAEInkABCJ8AAQifQAEIn4ABCJ/AAQigAAEIoIABCKEAAQihQAEIoYABCKIAAQiiQAEIwQABCMGAAQjCAAEIwoABCMNAAQjDgAEIw8ABCMQAAQjEQAEIxMABCMVAAQjFgAEIxcABCMZAAQjGgAEI60ABCPQAAQj8AAEJBAABCQSAAQkFAAEJBYABCQYAAQkGwAEJBwABCQdAAQkIAAEJCEABCQjAAQkJAAEJCYABCQpAAQkKgAEJCsABCQuAAQkLwAEJDQABCRNAAQkVgAEJFgABCRaAAQkYwAEJGYABCRpAAQkawAEJLQABCTYAAQk/wAEJSMABCUmAAQlKAAEJSoABCUsAAQlLgAEJTAABCUxAAQlNAAEJU0ABCVuAAQlcAAEJXIABCV0AAQldgAEJXgABCV6AAQlfAAEJX4ABCWfAAQlogAEJaUABCWoAAQlqwAEJa4ABCWxAAQltAAEJbcABCW5AAQmNAAEJjYABCY4AAQmOgAEJj0ABCY+AAQmPwAEJkAABCZBAAQmQwAEJkUABCZGAAQmRwAEJkkABCZKAAQmxQAEJscABCbJAAQmywAEJs4ABCbPAAQm0AAEJtEABCbSAAQm1AAEJtYABCbXAAQm2AAEJtoABCbbAAQnVgAEJ1gABCdbAAQnXQAEJ2AABCdhAAQnYgAEJ2MABCdkAAQnZgAEJ2gABCdpAAQnagAEJ2wABCdtAAQnhgAEJ4cABCeIAAQnigAEKAUABCgHAAQoCQAEKAsABCgOAAQoDwAEKBAABCgRAAQoEgAEKBQABCgWAAQoFwAEKBgABCgaAAQoGwAEKJYABCiYAAQomgAEKJwABCifAAQooAAEKKEABCiiAAQoowAEKKUABCinAAQoqAAEKKkABCirAAQorAAEKScABCkpAAQpKwAEKS0ABCkwAAQpMQAEKTIABCkzAAQpNAAEKTYABCk4AAQpOQAEKToABCk8AAQpPQAEKbgABCm6AAQpvAAEKb4ABCnBAAQpwgAEKcMABCnEAAQpxQAEKccABCnJAAQpygAEKcsABCnNAAQpzgAEKkkABCpLAAQqTQAEKk8ABCpSAAQqUwAEKlQABCpVAAQqVgAEKlgABCpaAAQqWwAEKlwABCpeAAQqXwAEKqgABCrMAAQq8wAEKxcABCsaAAQrHAAEKx4ABCsgAAQrIgAEKyQABCslAAQrKAAEK0EABCteAAQrYAAEK2IABCtkAAQrZgAEK2gABCtqAAQrbAAEK4kABCuMAAQrjwAEK5IABCuVAAQrmAAEK5sABCueAAQroAAELBsABCwdAAQsHwAELCEABCwkAAQsJQAELCYABCwnAAQsKAAELCoABCwsAAQsLQAELC4ABCwwAAQsMQAELKwABCyuAAQssAAELLIABCy1AAQstgAELLcABCy4AAQsuQAELLsABCy9AAQsvgAELL8ABCzBAAQswgAELT0ABC0/AAQtQQAELUMABC1GAAQtRwAELUgABC1JAAQtSgAELUwABC1OAAQtTwAELVAABC1SAAQtUwAELc4ABC3QAAQt0wAELdUABC3YAAQt2QAELdoABC3bAAQt3AAELd4ABC3gAAQt4QAELeIABC3kAAQt5QAELmA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ABD/PAAQ/0QAEP9MABD/UAAQ/1QAEP9cABD/YAARAUwAEQFUABEBYAARAWgAEQF0ABEBeAARAXwAEQGAABEBhAARAYwAEQGUABEBmAARAZwAEQGkABEBqAARAgwAEQIQABECFAARAhwAEQQIABEEEAARBBgAEQQgABEELAARBDAAEQQ0ABEEOAARBDwAEQREABEETAARBFAAEQRUABEEXAARBGAAEQZMABEGVAARBlwAEQZkABEGcAARBnQAEQZ4ABEGfAARBoAAEQaIABEGkAARBpQAEQaYABEGoAARBqQAEQiQABEImAARCKAAEQioABEItAARCLgAEQi8ABEIwAARCMQAEQjMABEI1AARCNgAEQjcABEI5AARCOgAEQrUABEK3AARCuQAEQrsABEK+AARCvwAEQsAABELBAARCwgAEQsQABELGAARCxwAEQsgABELKAARCywAEQ0YABENIAARDSgAEQ0wABENPAARDUAAEQ1EABENSAARDUwAEQ1UABENXAARDWAAEQ1kABENbAARDXAAEQ6UABEPJAARD8AAERBQABEQXAAREGQAERBsABEQdAAREHwAERCEABEQiAAREJQAERD4ABERbAAREXQAERF8ABERhAAREYwAERGUABERnAAREaQAERIYABESJAAREjAAERI8ABESSAARElQAERJgABESbAAREnQAERRgABEUaAARFHAAERR4ABEUhAARFIgAERSMABEUkAARFJQAERScABEUpAARFKgAERSsABEUtAARFLgAERakABEWrAARFrQAERa8ABEWyAARFswAERbQABEW1AARFtgAERbgABEW6AARFuwAERbwABEW+AARFvwAERjoABEY8AARGPgAERkAABEZDAARGRAAERkUABEZGAARGRwAERkkABEZLAARGTAAERk0ABEZPAARGUAAERssABEbNAARG0AAERtIABEbVAARG1gAERtcABEbYAARG2QAERtsABEbdAARG3gAERt8ABEbhAARG4gAER10ABEdfAARHYQAER2MABEdmAARHZwAER2gABEdpAARHagAER2wABEduAARHbwAER3AABEdyAARHcwAER+4ABEfwAARH8gAER/QABEf3AARH+AAER/kABEf6AARH+wAER/0ABEf/AARIAAAESAEABEgDAARIBAAESH8ABEiBAARIgwAESIUABEiIAARIiQAESIoABEiLAARIjAAESI4ABEiQAARIkQAESJIABEiUAARIlQAESSgABElLAARJawAESYsABEmNAARJjwAESZEABEmTAARJlgAESZcABEmYAARJmwAESZwABEmeAARJnwAESaIABEmlAARJpgAESacABEmqAARJqwAESbAABEnJAARJ0gAESdQABEnWAARJ3wAESeIABEnlAARJ5wAESjAABEpUAARKewAESp8ABEqiAARKpAAESqYABEqoAARKqgAESqwABEqtAARKsAAESskABErqAARK7AAESu4ABErwAARK8gAESvQABEr2AARK+AAESvoABEsbAARLHgAESyEABEskAARLJwAESyoABEstAARLMAAESzMABEs1AARLsAAES7IABEu0AARLtgAES7kABEu6AARLuwAES7wABEu9AARLvwAES8EABEvCAARLwwAES8UABEvGAARMQQAETEMABExFAARMRwAETEoABExLAARMTAAETE0ABExOAARMUAAETFIABExTAARMVAAETFYABExXAARM0gAETNQABEzXAARM2QAETNwABEzdAARM3gAETN8ABEzgAARM4gAETOQABEzlAARM5gAETOgABEzpAARNAgAETQMABE0EAARNBgAETYEABE2DAARNhQAETYcABE2KAARNiwAETYwABE2NAARNjgAETZAABE2SAARNkwAETZQABE2WAARNlwAEThIABE4UAAROFgAEThgABE4bAAROHAAETh0ABE4eAAROHwAETiEABE4jAAROJAAETiUABE4nAAROKAAETqMABE6lAAROpwAETqkABE6sAAROrQAETq4ABE6vAAROsAAETrIABE60AAROtQAETrYABE64AAROuQAETzQABE82AARPOAAETzoABE89AARPPgAETz8ABE9AAARPQQAET0MABE9FAARPRgAET0cABE9JAARPSgAET8UABE/HAARPyQAET8sABE/OAARPzwAET9AABE/RAARP0gAET9QABE/WAARP1wAET9gABE/aAARP2wAEUCQABFBIAARQbwAEUJMABFCWAARQmAAEUJoABFCcAARQngAEUKAABFChAARQpAAEUL0ABFDaAARQ3AAEUN4ABFDgAARQ4gAEUOQABFDmAARQ6AAEUQUABFEIAARRCwAEUQ4ABFERAARRFAAEURcABFEaAARRHAAEUZcABFGZAARRmwAEUZ0ABFGgAARRoQAEUaIABFGjAARRpAAEUaYABFGoAARRqQAEUaoABFGsAARRrQAEUigABFIqAARSLAAEUi4ABFIxAARSMgAEUjMABFI0AARSNQAEUjcABFI5AARSOgAEUjsABFI9AARSPgAEUrkABFK7AARSvQAEUr8ABFLCAARSwwAEUsQABFLFAARSxgAEUsgABFLKAARSywAEUswABFLOAARSzwAEU0oABFNMAARTTwAEU1EABFNUAARTVQAEU1YABFNXAARTWAAEU1oABFNcAARTXQAEU14ABFNgAARTYQAEU9wABFPeAART4AAEU+IABFPlAART5gAEU+cABFPoAART6QAEU+sABFPtAART7gAEU+8ABFPxAART8gAEVG0ABFRvAARUcQAEVHMABFR2AARUdwAEVHgABFR5AARUegAEVHwABFR+AARUfwAEVIAABFSCAARUgwAEVP4ABFUAAARVAwAEVQUABFUIAARVCQAEVQoABFULAARVDAAEVQ4ABFUQAARVEQAEVRIABFUUAARVFQAEVagABFXLAARV6wAEVgsABFYNAARWDwAEVhEABFYTAARWFgAEVhcABFYYAARWGwAEVhwABFYeAARWHwAEViEABFYkAARWJQAEViYABFYpAARWKgAEVjMABFZMAARWVQAEVlcABFZZAARWYgAEVmUABFZoAARWagAEVrMABFbXAARW/gAEVyIABFclAARXJwAEVykABFcrAARXLQAEVy8ABFcwAARXMwAEV0wABFdtAARXbwAEV3EABFdzAARXdQAEV3cABFd5AARXewAEV30ABFeeAARXoQAEV6QABFenAARXqgAEV60ABFewAARXswAEV7YABFe4AARYMwAEWDUABFg3AARYOQAEWDwABFg9AARYPgAEWD8ABFhAAARYQgAEWEQABFhFAARYRgAEWEgABFhJAARYxAAEWMYABFjIAARYygAEWM0ABFjOAARYzwAEWNAABFjRAARY0wAEWNUABFjWAARY1wAEWNkABFjaAARZVQAEWVcABFlaAARZXAAEWV8ABFlgAARZYQAEWWIABFljAARZZQAEWWcABFloAARZaQAEWWsABFlsAARZhQAEWYYABFmHAARZiQAEWgQABFoGAARaCAAEWgoABFoNAARaDgAEWg8ABFoQAARaEQAEWhMABFoVAARaFgAEWhcABFoZAARaGgAEWpUABFqXAARamQAEWpsABFqeAARanwAEWqAABFqhAARaogAEWqQABFqmAARapwAEWqgABFqqAARaqwAEWyYABFsoAARbKgAEWywABFsvAARbMAAEWzEABFsyAARbMwAEWzUABFs3AARbOAAEWzkABFs7AARbPAAEW7cABFu5AARbuwAEW70ABFvAAARbwQAEW8IABFvDAARbxAAEW8YABFvIAARbyQAEW8oABFvMAARbzQAEXEgABFxKAARcTAAEXE4ABFxRAARcUgAEXFMABFxUAARcVQAEXFcABFxZAARcWgAEXFsABFxdAARcXgAEXKcABFzLAARc8gAEXRYABF0ZAARdGwAEXR0ABF0fAARdIQAEXSMABF0kAARdJwAEXUAABF1dAARdXwAEXWEABF1jAARdZQAEXWcABF1pAARdawAEXYgABF2LAARdjgAEXZEABF2UAARdlwAEXZoABF2dAARdnwAEXhoABF4cAAReHgAEXiAABF4jAAReJAAEXiUABF4mAAReJwAEXikABF4rAAReLAAEXi0ABF4vAAReMAAEXqsABF6tAARerwAEXrEABF60AARetQAEXrYABF63AAReuAAEXroABF68AARevQAEXr4ABF7AAARewQAEXzwABF8+AARfQAAEX0IABF9FAARfRgAEX0cABF9IAARfSQAEX0sABF9NAARfTgAEX08ABF9RAARfUgAEX80ABF/PAARf0QAEX9MABF/WAARf1wAEX9gABF/ZAARf2gAEX9wABF/eAARf3wAEX+AABF/iAARf4wAEYF4ABGBgAARgYgAEYGQABGBnAARgaAAEYGkABGBqAARgawAEYG0ABGBvAARgcAAEYHEABGBzAARgdAAEYO8ABGDxAARg8wAEYPUABGD4AARg+QAEYPoABGD7AARg/AAEYP4ABGEAAARhAQAEYQIABGEEAARhBQAEYYAABGGCAARhhAAEYYYABGGJAARhigAEYYsABGGMAARhjQAEYY8ABGGRAARhkgAEYZMABGGVAARhlgAEYikABGJMAARibAAEYowABGKOAARikAAEYpIABGKUAARilwAEYpgABGKZAARinAAEYp0ABGKfAARioAAEYqIABGKlAARipgAEYqcABGKqAARiqwAEYrAABGLJAARi0gAEYtQABGLWAARi3wAEYuIABGLlAARi5wAEYzAABGNUAARjewAEY58ABGOiAARjpAAEY6YABGOoAARjqgAEY6wABGOtAARjsAAEY8kABGPqAARj7AAEY+4ABGPwAARj8gAEY/QABGP2AARj+AAEY/oABGQbAARkHgAEZCEABGQkAARkJwAEZCoABGQtAARkMAAEZDMABGQ1AARksAAEZLIABGS0AARktgAEZLkABGS6AARkuwAEZLwABGS9AARkvwAEZMEABGTCAARkwwAEZMUABGTGAARlQQAEZUMABGVFAARlRwAEZUoABGVLAARlTAAEZU0ABGVOAARlUAAEZVIABGVTAARlVAAEZVYABGVXAARl0gAEZdQABGXXAARl2QAEZdwABGXdAARl3gAEZd8ABGXgAARl4gAEZeQABGXlAARl5gAEZegABGXpAARmAgAEZgMABGYEAARmBgAEZoEABGaDAARmhQAEZocABGaKAARmiwAEZowABGaNAARmjgAEZpAABGaSAARmkwAEZpQABGaWAARmlwAEZxIABGcUAARnFgAEZxgABGcbAARnHAAEZx0ABGceAARnHwAEZyEABGcjAARnJAAEZyUABGcnAARnKAAEZ6MABGelAARnpwAEZ6kABGesAARnrQAEZ64ABGevAARnsAAEZ7IABGe0AARntQAEZ7YABGe4AARnuQAEaDQABGg2AARoOAAEaDoABGg9AARoPgAEaD8ABGhAAARoQQAEaEMABGhFAARoRgAEaEcABGhJAARoSgAEaMUABGjHAARoyQAEaMsABGjOAARozwAEaNAABGjRAARo0gAEaNQABGjWAARo1wAEaNgABGjaAARo2wAEaSQABGlIAARpbwAEaZMABGmWAARpmAAEaZoABGmcAARpngAEaaAABGmhAARppAAEab0ABGnaAARp3AAEad4ABGngAARp4gAEaeQABGnmAARp6AAEagUABGoIAARqCwAEag4ABGoRAARqFAAEahcABGoaAARqHAAEapcABGqZAARqmwAEap0ABGqgAARqoQAEaqIABGqjAARqpAAEaqYABGqoAARqqQAEaqoABGqsAARqrQAEaygABGsqAARrLAAEay4ABGsxAARrMgAEazMABGs0AARrNQAEazcABGs5AARrOgAEazsABGs9AARrPgAEa7kABGu7AARrvQAEa78ABGvCAARrwwAEa8QABGvFAARrxgAEa8gABGvKAARrywAEa8wABGvOAARrzwAEbEoABGxMAARsTwAEbFEABGxUAARsVQAEbFYABGxXAARsWAAEbFoABGxcAARsXQAEbF4ABGxgAARsYQAEbNwABGzeAARs4AAEbOIABGzlAARs5gAEbOcABGzoAARs6QAEbOsABGztAARs7gAEbO8ABGzxAARs8gAEbW0ABG1vAARtcQAEbXMABG12AARtdwAEbXgABG15AARtegAEbXwABG1+AARtfwAEbYAABG2CAARtgwAEbf4ABG4AAARuAgAEbgQABG4HAARuCAAEbgkABG4KAARuCwAEbg0ABG4PAARuEAAEbhEABG4TAARuFAAEbqcABG7KAARu6gAEbwoABG8MAARvDgAEbxAABG8SAARvFQAEbxYABG8XAARvGgAEbxsABG8dAARvHgAEbyAABG8jAARvJAAEbyUABG8oAARvKQAEby4ABG9HAARvUAAEb1IABG9UAARvXQAEb2AABG9jAARvZQAEb64ABG/SAARv+QAEcB0ABHAgAARwIgAEcCQABHAmAARwKAAEcCoABHArAARwLgAEcEcABHBoAARwagAEcGwABHBuAARwcAAEcHIABHB0AARwdgAEcHgABHCZAARwnAAEcJ8ABHCiAARwpQAEcKgABHCrAARwrgAEcLEABHCzAARxLgAEcTAABHEyAARxNAAEcTcABHE4AARxOQAEcToABHE7AARxPQAEcT8ABHFAAARxQQAEcUMABHFEAARxvwAEccEABHHDAARxxQAEccgABHHJAARxygAEccsABHHMAARxzgAEcdAABHHRAARx0gAEcdQABHHVAARyUAAEclIABHJVAARyVwAEcloABHJbAARyXAAEcl0ABHJeAARyYAAEcmIABHJjAARyZAAEcmYABHJnAARygAAEcoEABHKCAARyhAAEcv8ABHMBAARzAwAEcwUABHMIAARzCQAEcwoABHMLAARzDAAEcw4ABHMQAARzEQAEcxIABHMUAARzFQAEc5AABHOSAARzlAAEc5YABHOZAARzmgAEc5sABHOcAARznQAEc58ABHOhAARzogAEc6MABHOlAARzpgAEdCEABHQjAAR0JQAEdCcABHQqAAR0KwAEdCwABHQtAAR0LgAEdDAABHQyAAR0MwAEdDQABHQ2AAR0NwAEdLIABHS0AAR0tgAEdLgABHS7AAR0vAAEdL0ABHS+AAR0vwAEdMEABHTDAAR0xAAEdMUABHTHAAR0yAAEdUMABHVFAAR1RwAEdUkABHVMAAR1TQAEdU4ABHVPAAR1UAAEdVIABHVUAAR1VQAEdVYABHVYAAR1WQAEdaIABHXGAAR17QAEdhEABHYUAAR2FgAEdhgABHYaAAR2HAAEdh4ABHYfAAR2IgAEdjsABHZYAAR2WgAEdlwABHZeAAR2YAAEdmIABHZkAAR2ZgAEdoMABHaGAAR2iQAEdowABHaPAAR2kgAEdpUABHaYAAR2mgAEdxUABHcXAAR3GQAEdxsABHceAAR3HwAEdyAABHchAAR3IgAEdyQABHcmAAR3JwAEdygABHcqAAR3KwAEd6YABHeoAAR3qgAEd6wABHevAAR3sAAEd7EABHeyAAR3swAEd7UABHe3AAR3uAAEd7kABHe7AAR3vAAEeDcABHg5AAR4OwAEeD0ABHhAAAR4QQAEeEIABHhDAAR4RAAEeEYABHhIAAR4SQAEeEoABHhMAAR4TQAEeMgABHjKAAR4zAAEeM4ABHjRAAR40gAEeNMABHjUAAR41QAEeNcABHjZAAR42gAEeNsABHjdAAR43gAEeVkABHlbAAR5XQAEeV8ABHliAAR5YwAEeWQABHllAAR5ZgAEeWgABHlqAAR5awAEeWwABHluAAR5bwAEeeoABHnsAAR57gAEefAABHnzAAR59AAEefUABHn2AAR59wAEefkABHn7AAR5/AAEef0ABHn/AAR6AAAEensABHp9AAR6fwAEeoEABHqEAAR6hQAEeoYABHqHAAR6iAAEeooABHqMAAR6jQAEeo4ABHqQAAR6kQAEeyQABHtHAAR7ZwAEe4cABHuJAAR7iwAEe40ABHuPAAR7kgAEe5MABHuUAAR7lwAEe5gABHuaAAR7mwAEe50ABHugAAR7oQAEe6IABHulAAR7pgAEe6sABHvEAAR7zQAEe88ABHvRAAR72gAEe90ABHvgAAR74gAEfCsABHxPAAR8dgAEfJoABHydAAR8nwAEfKEABHyjAAR8pQAEfKcABHyoAAR8qwAEfMQABHzlAAR85wAEfOkABHzrAAR87QAEfO8ABHzxAAR88wAEfPUABH0WAAR9GQAEfRwABH0fAAR9IgAEfSUABH0oAAR9KwAEfS4ABH0wAAR9qwAEfa0ABH2vAAR9sQAEfbQABH21AAR9tgAEfbcABH24AAR9ugAEfbwABH29AAR9vgAEfcAABH3BAAR+PAAEfj4ABH5AAAR+QgAEfkUABH5GAAR+RwAEfkgABH5JAAR+SwAEfk0ABH5OAAR+TwAEflEABH5SAAR+zQAEfs8ABH7SAAR+1AAEftcABH7YAAR+2QAEftoABH7bAAR+3QAEft8ABH7gAAR+4QAEfuMABH7kAAR+/QAEfv4ABH7/AAR/AQAEf3wABH9+AAR/gAAEf4IABH+FAAR/hgAEf4cABH+IAAR/iQAEf4sABH+NAAR/jgAEf48ABH+RAAR/kgAEgA0ABIAPAASAEQAEgBMABIAWAASAFwAEgBgABIAZAASAGgAEgBwABIAeAASAHwAEgCAABIAiAASAIwAEgJ4ABICgAASAogAEgKQABICnAASAqAAEgKkABICqAASAqwAEgK0ABICvAASAsAAEgLEABICzAASAtAAEgS8ABIExAASBMwAEgTUABIE4AASBOQAEgToABIE7AASBPAAEgT4ABIFAAASBQQAEgUIABIFEAASBRQAEgcAABIHCAASBxAAEgcYABIHJAASBygAEgcsABIHMAASBzQAEgc8ABIHRAASB0gAEgdMABIHVAASB1gAEgh8ABIJDAASCagAEgo4ABIKRAASCkwAEgpUABIKXAASCmQAEgpsABIKcAASCnwAEgrgABILVAASC1wAEgtkABILbAASC3QAEgt8ABILhAASC4wAEgwAABIMDAASDBgAEgwkABIMMAASDDwAEgxIABIMVAASDFwAEg5IABIOUAASDlwAEg5kABIOcAASDnQAEg54ABIOfAASDoAAEg6IABIOkAASDpQAEg6YABIOoAASDqQAEhCQABIQmAASEKAAEhCoABIQtAASELgAEhC8ABIQwAASEMQAEhDMABIQ1AASENgAEhDcABIQ5AASEOgAEhLUABIS3AASEuQAEhLsABIS+AASEvwAEhMAABITBAASEwgAEhMQABITGAASExwAEhMgABITKAASEywAEhUYABIVIAASFSwAEhU0ABIVQAASFUQAEhVIABIVTAASFVAAEhVYABIVYAASFWQAEhVoABIVcAASFXQAEhdgABIXaAASF3AAEhd4ABIXhAASF4gAEheMABIXkAASF5QAEhecABIXpAASF6gAEhesABIXtAASF7gAEhmkABIZrAASGbQAEhm8ABIZyAASGcwAEhnQABIZ1AASGdgAEhngABIZ6AASGewAEhnwABIZ+AASGfwAEhvoABIb8AASG/gAEhwAABIcDAASHBAAEhwUABIcGAASHBwAEhwkABIcLAASHDAAEhw0ABIcPAASHEAAEh6MABIfGAASH5gAEiAYABIgIAASICgAEiAwABIgOAASIEQAEiBIABIgTAASIFgAEiBcABIgZAASIGgAEiBwABIgfAASIIAAEiCEABIgkAASIJQAEiCoABIhDAASITAAEiE4ABIhQAASIWQAEiFwABIhfAASIYQAEiKoABIjOAASI9QAEiRkABIkcAASJHgAEiSAABIkiAASJJAAEiSYABIknAASJKgAEiUMABIlkAASJZgAEiWgABIlqAASJbAAEiW4ABIlwAASJcgAEiXQABImVAASJmAAEiZsABImeAASJoQAEiaQABImnAASJqgAEia0ABImvAASKKgAEiiwABIouAASKMAAEijMABIo0AASKNQAEijYABIo3AASKOQAEijsABIo8AASKPQAEij8ABIpAAASKuwAEir0ABIq/AASKwQAEisQABIrFAASKxgAEiscABIrIAASKygAEiswABIrNAASKzgAEitAABIrRAASLTAAEi04ABItRAASLUwAEi1YABItXAASLWAAEi1kABItaAASLXAAEi14ABItfAASLYAAEi2IABItjAASLfAAEi30ABIt+AASLgAAEi/sABIv9AASL/wAEjAEABIwEAASMBQAEjAYABIwHAASMCAAEjAoABIwMAASMDQAEjA4ABIwQAASMEQAEjIwABIyOAASMkAAEjJIABIyVAASMlgAEjJcABIyYAASMmQAEjJsABIydAASMngAEjJ8ABIyhAASMogAEjR0ABI0fAASNIQAEjSMABI0mAASNJwAEjSgABI0pAASNKgAEjSwABI0uAASNLwAEjTAABI0yAASNMwAEja4ABI2wAASNswAEjbUABI24AASNuQAEjboABI27AASNvAAEjb4ABI3AAASNwQAEjcIABI3EAASNxQAEjdQABI5PAASOUQAEjlMABI5VAASOWAAEjlkABI5aAASOWwAEjlwABI5eAASOYAAEjmEABI5iAASOZAAEjmUABI6uAASO0gAEjvkABI8dAASPIAAEjyIABI8kAASPJgAEjygABI8qAASPKwAEjy4ABI9HAASPZAAEj2YABI9oAASPagAEj2wABI9uAASPcAAEj3IABI+PAASPkgAEj5UABI+YAASPmwAEj54ABI+hAASPpAAEj6YABJAhAASQIwAEkCUABJAnAASQKgAEkCsABJAsAASQLQAEkC4ABJAwAASQMgAEkDMABJA0AASQNgAEkDcABJCyAASQtAAEkLYABJC4AASQuwAEkLwABJC9AASQvgAEkL8ABJDBAASQwwAEkMQABJDFAASQxwAEkMgABJFDAASRRQAEkUgABJFKAASRTQAEkU4ABJFPAASRUAAEkVEABJFTAASRVQAEkVYABJFXAASRWQAEkVoABJHVAASR1wAEkdoABJHcAASR3wAEkeAABJHhAASR4gAEkeMABJHlAASR5wAEkegABJHpAASR6wAEkewABJJnAASSaQAEkmsABJJtAASScAAEknEABJJyAASScwAEknQABJJ2AASSeAAEknkABJJ6AASSfAAEkn0ABJL4AASS+gAEkvwABJL+AASTAQAEkwIABJMDAASTBAAEkwUABJMHAASTCQAEkwoABJMLAASTDQAEkw4ABJOJAASTiwAEk40ABJOPAASTkgAEk5MABJOUAASTlQAEk5YABJOYAASTmgAEk5sABJOcAASTngAEk58ABJOwAASTsQAEk7MABJPEAASTzQAEk9AABJPTAAST1QAElA4ABJQRAASUEwAElBYABJQZAASUHAAElB8ABJSiAASUxgAElOoABJUNAASVNAAElVQABJV7AASVogAElcIABJXmAASWCgAElgwABJYPAASWEQAElhMABJYVAASWGAAElhsABJYdAASWHwAEliIABJYkAASWJgAElikABJYsAASWLQAEljIABJZLAASWUAAEllIABJZXAASWWgAEllwABJalAASWyQAElvAABJcUAASXFwAElxkABJcbAASXHQAElx8ABJchAASXIgAElyUABJc+AASXYwAEl2UABJdnAASXaQAEl2sABJdtAASXbwAEl3EABJdzAASXdQAEl5oABJedAASXoAAEl6MABJemAASXqQAEl6wABJevAASXsgAEl7UABJe3AASYMgAEmDQABJg3AASYOQAEmDwABJg9AASYPgAEmD8ABJhAAASYQgAEmEQABJhFAASYRgAEmEgABJhJAASYWgAEmFsABJhdAASY2AAEmNoABJjcAASY3gAEmOEABJjiAASY4wAEmOQABJjlAASY5wAEmOkABJjqAASY6wAEmO0ABJjuAASZaQAEmWsABJluAASZcAAEmXMABJl0AASZdQAEmXYABJl3AASZeQAEmXsABJl8AASZfQAEmX8ABJmAAASZkQAEmZIABJmUAASaDwAEmhEABJoTAASaFQAEmhgABJoZAASaGgAEmhsABJocAASaHgAEmiAABJohAASaIgAEmiQABJolAASaoAAEmqIABJqlAASapwAEmqoABJqrAASarAAEmq0ABJquAASasAAEmrIABJqzAASatAAEmrYABJq3AASayAAEmskABJrLAASbRgAEm0gABJtKAASbTAAEm08ABJtQAASbUQAEm1IABJtTAASbVQAEm1cABJtYAASbWQAEm1sABJtcAASb1wAEm9kABJvcAASb3gAEm+EABJviAASb4wAEm+QABJvlAASb5wAEm+kABJvqAASb6wAEm+0ABJvuAAScBwAEnAgABJwJAAScCwAEnIYABJyIAAScigAEnIwABJyPAASckAAEnJEABJySAASckwAEnJUABJyXAAScmAAEnJkABJybAAScnAAEnRcABJ0ZAASdHAAEnR4ABJ0hAASdIgAEnSMABJ0kAASdJQAEnScABJ0pAASdKgAEnSsABJ0tAASdLgAEnVIABJ1rAASddAAEnXcABJ16AASdgwAEnYYABJ2JAASdiwAEnZ0ABJ2nAASeOgAEnl0ABJ59AASenQAEnp8ABJ6hAASeowAEnqUABJ6oAASeqQAEnqoABJ6tAASergAEnrAABJ6xAASetAAEnrcABJ64AASeuQAEnrwABJ69AASewgAEntsABJ7kAASe5gAEnugABJ7xAASe9AAEnvcABJ75AASfQgAEn2YABJ+NAASfsQAEn7QABJ+2AASfuAAEn7oABJ+8AASfvgAEn78ABJ/CAASf2wAEn/wABJ/+AASgAAAEoAIABKAEAASgBgAEoAgABKAKAASgDAAEoC0ABKAwAASgMwAEoDYABKA5AASgPAAEoD8ABKBCAASgRQAEoEcABKDCAASgxAAEoMYABKDIAASgywAEoMwABKDNAASgzgAEoM8ABKDRAASg0wAEoNQABKDVAASg1wAEoNgABKFTAAShVQAEoVcABKFZAAShXAAEoV0ABKFeAAShXwAEoWAABKFiAAShZAAEoWUABKFmAAShaAAEoWkABKHkAASh5gAEoekABKHrAASh7gAEoe8ABKHwAASh8QAEofIABKH0AASh9gAEofcABKH4AASh+gAEofsABKIUAASiFQAEohYABKIYAASikwAEopUABKKXAASimQAEopwABKKdAASingAEop8ABKKgAASiogAEoqQABKKlAASipgAEoqgABKKpAASjJAAEoyYABKMoAASjKgAEoy0ABKMuAASjLwAEozAABKMxAASjMwAEozUABKM2AASjNwAEozkABKM6AASjtQAEo7cABKO5AASjuwAEo74ABKO/AASjwAAEo8EABKPCAASjxAAEo8YABKPHAASjyAAEo8oABKPLAASkRgAEpEgABKRKAASkTAAEpE8ABKRQAASkUQAEpFIABKRTAASkVQAEpFcABKRYAASkWQAEpFsABKRcAASk1wAEpNkABKTbAASk3QAEpOAABKThAASk4gAEpOMABKTkAASk5gAEpOgABKTpAASk6gAEpOwABKTtAASlNgAEpVoABKWBAASlpQAEpagABKWqAASlrAAEpa4ABKWwAASlsgAEpbMABKW2AASlzwAEpewABKXuAASl8AAEpfIABKX0AASl9gAEpfgABKX6AASmFwAEphoABKYdAASmIAAEpiMABKYmAASmKQAEpiwABKYuAASmqQAEpqsABKatAASmrwAEprIABKazAASmtAAEprUABKa2AASmuAAEproABKa7AASmvAAEpr4ABKa/AASnOgAEpzwABKc+AASnQAAEp0MABKdEAASnRQAEp0YABKdHAASnSQAEp0sABKdMAASnTQAEp08ABKdQAASnywAEp80ABKfPAASn0QAEp9QABKfVAASn1gAEp9cABKfYAASn2gAEp9wABKfdAASn3gAEp+AABKfhAASoXAAEqF4ABKhhAASoYwAEqGYABKhnAASoaAAEqGkABKhqAASobAAEqG4ABKhvAASocAAEqHIABKhzAASo9gAEqRoABKk+AASpYQAEqYgABKmoAASpzwAEqfYABKoWAASqOgAEql4ABKpgAASqYwAEqmUABKpnAASqaQAEqmwABKpvAASqcQAEqnMABKp2AASqeAAEqnoABKp9AASqgAAEqoEABKqGAASqnwAEqqQABKqmAASqqwAEqq4ABKqwAASq+QAEqx0ABKtEAASraAAEq2sABKttAASrbwAEq3EABKtzAASrdQAEq3YABKt5AASrkgAEq7cABKu5AASruwAEq70ABKu/AASrwQAEq8MABKvFAASrxwAEq8kABKvuAASr8QAEq/QABKv3AASr+gAEq/0ABKwAAASsAwAErAYABKwJAASsCwAErIYABKyIAASsiwAErI0ABKyQAASskQAErJIABKyTAASslAAErJYABKyYAASsmQAErJoABKycAASsnQAErK4ABKyvAASssQAErSwABK0uAAStMAAErTIABK01AAStNgAErTcABK04AAStOQAErTsABK09AAStPgAErT8ABK1BAAStQgAErb0ABK2/AAStwgAErcQABK3HAAStyAAErckABK3KAAStywAErc0ABK3PAASt0AAErdEABK3TAASt1AAEreUABK3mAASt6AAErmMABK5lAASuZwAErmkABK5sAASubQAErm4ABK5vAASucAAErnIABK50AASudQAErnYABK54AASueQAErvQABK72AASu+QAErvsABK7+AASu/wAErwAABK8BAASvAgAErwQABK8GAASvBwAErwgABK8KAASvCwAErxwABK8dAASvHwAEr5oABK+cAASvngAEr6AABK+jAASvpAAEr6UABK+mAASvpwAEr6kABK+rAASvrAAEr60ABK+vAASvsAAEsCsABLAtAASwMAAEsDIABLA1AASwNgAEsDcABLA4AASwOQAEsDsABLA9AASwPgAEsD8ABLBBAASwQgAEsFsABLBcAASwXQAEsF8ABLDaAASw3AAEsN4ABLDgAASw4wAEsOQABLDlAASw5gAEsOcABLDpAASw6wAEsOwABLDtAASw7wAEsPAABLFrAASxbQAEsXAABLFyAASxdQAEsXYABLF3AASxeAAEsXkABLF7AASxfQAEsX4ABLF/AASxgQAEsYIABLGdAASxtgAEsdsABLHeAASx4QAEseQABLHnAASx6gAEse0ABLHwAASx8wAEsfYABLIbAASyHgAEsiEABLIkAASyJwAEsioABLItAASyMAAEsjMABLI2AASyOAAEsmAABLJzAASyjQAEsp8ABLK4AASyzQAEsvYABLMaAASzOAAEs8sABLPuAAS0DgAEtC4ABLQwAAS0MgAEtDQABLQ2AAS0OQAEtDoABLQ7AAS0PgAEtD8ABLRBAAS0QgAEtEUABLRIAAS0SQAEtEoABLRNAAS0TgAEtFMABLRsAAS0dQAEtHcABLR5AAS0ggAEtIUABLSIAAS0igAEtNMABLT3AAS1HgAEtUIABLVFAAS1RwAEtUkABLVLAAS1TQAEtU8ABLVQAAS1UwAEtWwABLWNAAS1jwAEtZEABLWTAAS1lQAEtZcABLWZAAS1mwAEtZ0ABLW+AAS1wQAEtcQABLXHAAS1ygAEtc0ABLXQAAS10wAEtdYABLXYAAS2UwAEtlUABLZXAAS2WQAEtlwABLZdAAS2XgAEtl8ABLZgAAS2YgAEtmQABLZlAAS2ZgAEtmgABLZpAAS25AAEtuYABLboAAS26gAEtu0ABLbuAAS27wAEtvAABLbxAAS28wAEtvUABLb2AAS29wAEtvkABLb6AAS3dQAEt3cABLd6AAS3fAAEt38ABLeAAAS3gQAEt4IABLeDAAS3hQAEt4cABLeIAAS3iQAEt4sABLeMAAS3pQAEt6YABLenAAS3qQAEuCQABLgmAAS4KAAEuCoABLgtAAS4LgAEuC8ABLgwAAS4MQAEuDMABLg1AAS4NgAEuDcABLg5AAS4OgAEuLUABLi3AAS4uQAEuLsABLi+AAS4vwAEuMAABLjBAAS4wgAEuMQABLjGAAS4xwAEuMgABLjKAAS4ywAEuUYABLlIAAS5SgAEuUwABLlPAAS5UAAEuVEABLlSAAS5UwAEuVUABLlXAAS5WAAEuVkABLlbAAS5XAAEudcABLnZAAS52wAEud0ABLngAAS54QAEueIABLnjAAS55AAEueYABLnoAAS56QAEueoABLnsAAS57QAEumgABLpqAAS6bAAEum4ABLpxAAS6cgAEunMABLp0AAS6dQAEuncABLp5AAS6egAEunsABLp9AAS6fgAEuscABLrrAAS7EgAEuzYABLs5AAS7OwAEuz0ABLs/AAS7QQAEu0MABLtEAAS7RwAEu2AABLt9AAS7fwAEu4EABLuDAAS7hQAEu4cABLuJAAS7iwAEu6gABLurAAS7rgAEu7EABLu0AAS7twAEu7oABLu9AAS7vwAEvDoABLw8AAS8PgAEvEAABLxDAAS8RAAEvEUABLxGAAS8RwAEvEkABLxLAAS8TAAEvE0ABLxPAAS8UAAEvMsABLzNAAS80AAEvNIABLzVAAS81gAEvNcABLzYAAS82QAEvNsABLzdAAS83gAEvN8ABLzhAAS84gAEvV0ABL1fAAS9YQAEvWMABL1mAAS9ZwAEvWgABL1pAAS9agAEvWwABL1uAAS9bwAEvXAABL1yAAS9cwAEve4ABL3wAAS98wAEvfUABL34AAS9+QAEvfoABL37AAS9/AAEvf4ABL4AAAS+AQAEvgIABL4EAAS+BQAEvogABL6sAAS+0AAEvvMABL8aAAS/OgAEv2EABL+IAAS/qAAEv8wABL/wAAS/8gAEv/UABL/3AAS/+QAEv/sABL/+AATAAQAEwAMABMAFAATACAAEwAoABMAMAATADwAEwBIABMATAATAGAAEwDEABMA2AATAOAAEwD0ABMBAAATAQgAEwIsABMCvAATA1gAEwPoABMD9AATA/wAEwQEABMEDAATBBQAEwQcABMEIAATBCwAEwSQABMFJAATBSwAEwU0ABMFPAATBUQAEwVMABMFVAATBVwAEwVkABMFbAATBgAAEwYMABMGGAATBiQAEwYwABMGPAATBkgAEwZUABMGYAATBmwAEwZ0ABMIYAATCGgAEwh0ABMIfAATCIgAEwiMABMIkAATCJQAEwiYABMIoAATCKgAEwisABMIsAATCLgAEwi8ABMJAAATCQQAEwkMABMK+AATCwAAEwsIABMLEAATCxwAEwsgABMLJAATCygAEwssABMLNAATCzwAEwtAABMLRAATC0wAEwtQABMNPAATDUQAEw1QABMNWAATDWQAEw1oABMNbAATDXAAEw10ABMNfAATDYQAEw2IABMNjAATDZQAEw2YABMN3AATDeAAEw3oABMP1AATD9wAEw/kABMP7AATD/gAEw/8ABMQAAATEAQAExAIABMQEAATEBgAExAcABMQIAATECgAExAsABMSGAATEiAAExIsABMSNAATEkAAExJEABMSSAATEkwAExJQABMSWAATEmAAExJkABMSaAATEnAAExJ0ABMSuAATErwAExLEABMUsAATFLgAExTAABMUyAATFNQAExTYABMU3AATFOAAExTkABMU7AATFPQAExT4ABMU/AATFQQAExUIABMW9AATFvwAExcIABMXEAATFxwAExcgABMXJAATFygAExcsABMXNAATFzwAExdAABMXRAATF0wAExdQABMXtAATF7gAExe8ABMXxAATGbAAExm4ABMZwAATGcgAExnUABMZ2AATGdwAExngABMZ5AATGewAExn0ABMZ+AATGfwAExoEABMaCAATG/QAExv8ABMcCAATHBAAExwcABMcIAATHCQAExwoABMcLAATHDQAExw8ABMcQAATHEQAExxMABMcUAATHUAAEx2kABMduAATHcQAEx3YABMd5AATHewAEx6EABMg0AATIVwAEyHcABMiXAATImQAEyJsABMidAATInwAEyKIABMijAATIpAAEyKcABMioAATIqgAEyKsABMiuAATIsQAEyLIABMizAATItgAEyLcABMi8AATI1QAEyN4ABMjgAATI4gAEyOsABMjuAATI8QAEyPMABMk8AATJYAAEyYcABMmrAATJrgAEybAABMmyAATJtAAEybYABMm4AATJuQAEybwABMnVAATJ9gAEyfgABMn6AATJ/AAEyf4ABMoAAATKAgAEygQABMoGAATKJwAEyioABMotAATKMAAEyjMABMo2AATKOQAEyjwABMo/AATKQQAEyrwABMq+AATKwAAEysIABMrFAATKxgAEyscABMrIAATKyQAEyssABMrNAATKzgAEys8ABMrRAATK0gAEy00ABMtPAATLUQAEy1MABMtWAATLVwAEy1gABMtZAATLWgAEy1wABMteAATLXwAEy2AABMtiAATLYwAEy94ABMvgAATL4wAEy+UABMvoAATL6QAEy+oABMvrAATL7AAEy+4ABMvwAATL8QAEy/IABMv0AATL9QAEzA4ABMwPAATMEAAEzBIABMyNAATMjwAEzJEABMyTAATMlgAEzJcABMyYAATMmQAEzJoABMycAATMngAEzJ8ABMygAATMogAEzKMABM0eAATNIAAEzSIABM0kAATNJwAEzSgABM0pAATNKgAEzSsABM0tAATNLwAEzTAABM0xAATNMwAEzTQABM2vAATNsQAEzbMABM21AATNuAAEzbkABM26AATNuwAEzbwABM2+AATNwAAEzcEABM3CAATNxAAEzcUABM5AAATOQgAEzkQABM5GAATOSQAEzkoABM5LAATOTAAEzk0ABM5PAATOUQAEzlIABM5TAATOVQAEzlYABM7RAATO0wAEztUABM7XAATO2gAEztsABM7cAATO3QAEzt4ABM7gAATO4gAEzuMABM7kAATO5gAEzucABM8wAATPVAAEz3sABM+fAATPogAEz6QABM+mAATPqAAEz6oABM+sAATPrQAEz7AABM/JAATP5gAEz+gABM/qAATP7AAEz+4ABM/wAATP8gAEz/QABNARAATQFAAE0BcABNAaAATQHQAE0CAABNAjAATQJgAE0CgABNCjAATQpQAE0KcABNCpAATQrAAE0K0ABNCuAATQrwAE0LAABNCyAATQtAAE0LUABNC2AATQuAAE0LkABNE0AATRNgAE0TgABNE6AATRPQAE0T4ABNE/AATRQAAE0UEABNFDAATRRQAE0UYABNFHAATRSQAE0UoABNHFAATRxwAE0ckABNHLAATRzgAE0c8ABNHQAATR0QAE0dIABNHUAATR1gAE0dcABNHYAATR2gAE0dsABNJWAATSWAAE0lsABNJdAATSYAAE0mEABNJiAATSYwAE0mQABNJmAATSaAAE0mkABNJqAATSbAAE0m0ABNLoAATS6gAE0uwABNLuAATS8QAE0vIABNLzAATS9AAE0vUABNL3AATS+QAE0voABNL7AATS/QAE0v4ABNN5AATTewAE030ABNN/AATTggAE04MABNOEAATThQAE04YABNOIAATTigAE04sABNOMAATTjgAE048ABNQKAATUDAAE1A8ABNQRAATUFAAE1BUABNQWAATUFwAE1BgABNQaAATUHAAE1B0ABNQeAATUIAAE1CEABNQyAATUNwAE1DoABNQ8AATUdQAE1HgABNR6AATUfQAE1IAABNSDAATUhgAE1I8ABNUyAATVVgAE1XoABNWaAATVwQAE1egABNYIAATWLwAE1lMABNZ2AATWnQAE1sEABNblAATXCQAE1zAABNcxAATXMwAE1zUABNc4AATXOgAE1z0ABNc/AATXQQAE10QABNdGAATXSAAE10sABNdOAATXUAAE11IABNdUAATXVwAE11oABNddAATXYgAE13sABNeAAATXggAE14cABNeKAATXjAAE19UABNf5AATYIAAE2EQABNhHAATYSQAE2EsABNhNAATYTwAE2FEABNhSAATYVQAE2G4ABNiTAATYlQAE2JcABNiZAATYmwAE2J0ABNifAATYoQAE2KMABNilAATYygAE2M0ABNjQAATY0wAE2NYABNjZAATY3AAE2N8ABNjiAATY5QAE2OcABNliAATZZAAE2WcABNlpAATZbAAE2W0ABNluAATZbwAE2XAABNlyAATZdAAE2XUABNl2AATZeAAE2XkABNmKAATZiwAE2Y0ABNoIAATaCgAE2gwABNoOAATaEQAE2hIABNoTAATaFAAE2hUABNoXAATaGQAE2hoABNobAATaHQAE2h4ABNqZAATamwAE2p4ABNqgAATaowAE2qQABNqlAATapgAE2qcABNqpAATaqwAE2qwABNqtAATarwAE2rAABNrBAATawgAE2sQABNs/AATbQQAE20MABNtFAATbSAAE20kABNtKAATbSwAE20wABNtOAATbUAAE21EABNtSAATbVAAE21UABNvQAATb0gAE29UABNvXAATb2gAE29sABNvcAATb3QAE294ABNvgAATb4gAE2+MABNvkAATb5gAE2+cABNv4AATb+QAE2/sABNx2AATceAAE3HoABNx8AATcfwAE3IAABNyBAATcggAE3IMABNyFAATchwAE3IgABNyJAATciwAE3IwABN0HAATdCQAE3QwABN0OAATdEQAE3RIABN0TAATdFAAE3RUABN0XAATdGQAE3RoABN0bAATdHQAE3R4ABN03AATdOAAE3TkABN07AATdtgAE3bgABN26AATdvAAE3b8ABN3AAATdwQAE3cIABN3DAATdxQAE3ccABN3IAATdyQAE3csABN3MAATeRwAE3kkABN5MAATeTgAE3lEABN5SAATeUwAE3lQABN5VAATeVwAE3lkABN5aAATeWwAE3l0ABN5eAATeewAE3pQABN6dAATeoAAE3qMABN6sAATerwAE3rIABN60AATewwAE3tcABN9qAATfjQAE360ABN/NAATfzwAE39EABN/TAATf1QAE39gABN/ZAATf2gAE390ABN/eAATf4AAE3+EABN/jAATf5gAE3+cABN/oAATf6wAE3+wABN/xAATgCgAE4BMABOAVAATgFwAE4CAABOAjAATgJgAE4CgABOBxAATglQAE4LwABODgAATg4wAE4OUABODnAATg6QAE4OsABODtAATg7gAE4PEABOEKAAThKwAE4S0ABOEvAAThMQAE4TMABOE1AAThNwAE4TkABOE7AAThXAAE4V8ABOFiAAThZQAE4WgABOFrAAThbgAE4XEABOF0AAThdgAE4fEABOHzAATh9QAE4fcABOH6AATh+wAE4fwABOH9AATh/gAE4gAABOICAATiAwAE4gQABOIGAATiBwAE4oIABOKEAATihgAE4ogABOKLAATijAAE4o0ABOKOAATijwAE4pEABOKTAATilAAE4pUABOKXAATimAAE4xMABOMVAATjGAAE4xoABOMdAATjHgAE4x8ABOMgAATjIQAE4yMABOMlAATjJgAE4ycABOMpAATjKgAE40MABONEAATjRQAE40cABOPCAATjxAAE48YABOPIAATjywAE48wABOPNAATjzgAE488ABOPRAATj0wAE49QABOPVAATj1wAE49gABORTAATkVQAE5FcABORZAATkXAAE5F0ABOReAATkXwAE5GAABORiAATkZAAE5GUABORmAATkaAAE5GkABOTkAATk5gAE5OgABOTqAATk7QAE5O4ABOTvAATk8AAE5PEABOTzAATk9QAE5PYABOT3AATk+QAE5PoABOV1AATldwAE5XkABOV7AATlfgAE5X8ABOWAAATlgQAE5YIABOWEAATlhgAE5YcABOWIAATligAE5YsABOYGAATmCAAE5goABOYMAATmDwAE5hAABOYRAATmEgAE5hMABOYVAATmFwAE5hgABOYZAATmGwAE5hwABOZlAATmiQAE5rAABObUAATm1wAE5tkABObbAATm3QAE5t8ABObhAATm4gAE5uUABOb+AATnGwAE5x0ABOcfAATnIQAE5yMABOclAATnJwAE5ykABOdGAATnSQAE50wABOdPAATnUgAE51UABOdYAATnWwAE510ABOfYAATn2gAE59wABOfeAATn4QAE5+IABOfjAATn5AAE5+UABOfnAATn6QAE5+oABOfrAATn7QAE5+4ABOhpAAToawAE6G0ABOhvAATocgAE6HMABOh0AATodQAE6HYABOh4AAToegAE6HsABOh8AATofgAE6H8ABOj6AATo/AAE6P4ABOkAAATpAwAE6QQABOkFAATpBgAE6QcABOkJAATpCwAE6QwABOkNAATpDwAE6RAABOmLAATpjQAE6ZAABOmSAATplQAE6ZYABOmXAATpmAAE6ZkABOmbAATpnQAE6Z4ABOmfAATpoQAE6aIABOodAATqHwAE6iEABOojAATqJgAE6icABOooAATqKQAE6ioABOosAATqLgAE6i8ABOowAATqMgAE6jMABOquAATqsAAE6rIABOq0AATqtwAE6rgABOq5AATqugAE6rsABOq9AATqvwAE6sAABOrBAATqwwAE6sQABOs/AATrQQAE60MABOtFAATrSAAE60kABOtKAATrSwAE60wABOtOAATrUAAE61EABOtSAATrVAAE61UABOvoAATsCwAE7CsABOxLAATsTQAE7E8ABOxRAATsUwAE7FYABOxXAATsWAAE7FsABOxcAATsXgAE7F8ABOxhAATsZAAE7GUABOxmAATsaQAE7GoABOxvAATsiAAE7JEABOyTAATslQAE7J4ABOyhAATspAAE7KYABOzvAATtEwAE7ToABO1eAATtYQAE7WMABO1lAATtZwAE7WkABO1rAATtbAAE7W8ABO2IAATtqQAE7asABO2tAATtrwAE7bEABO2zAATttQAE7bcABO25AATt2gAE7d0ABO3gAATt4wAE7eYABO3pAATt7AAE7e8ABO3yAATt9AAE7m8ABO5xAATucwAE7nUABO54AATueQAE7noABO57AATufAAE7n4ABO6AAATugQAE7oIABO6EAATuhQAE7wAABO8CAATvBAAE7wYABO8JAATvCgAE7wsABO8MAATvDQAE7w8ABO8RAATvEgAE7xMABO8VAATvFgAE75EABO+TAATvlgAE75gABO+bAATvnAAE750ABO+eAATvnwAE76EABO+jAATvpAAE76UABO+nAATvqAAE78EABO/CAATvwwAE78UABPBAAATwQgAE8EQABPBGAATwSQAE8EoABPBLAATwTAAE8E0ABPBPAATwUQAE8FIABPBTAATwVQAE8FYABPDRAATw0wAE8NUABPDXAATw2gAE8NsABPDcAATw3QAE8N4ABPDgAATw4gAE8OMABPDkAATw5gAE8OcABPFiAATxZAAE8WYABPFoAATxawAE8WwABPFtAATxbgAE8W8ABPFxAATxcwAE8XQABPF1AATxdwAE8XgABPHzAATx9QAE8fcABPH5AATx/AAE8f0ABPH+AATx/wAE8gAABPICAATyBAAE8gUABPIGAATyCAAE8gkABPKEAATyhgAE8ogABPKKAATyjQAE8o4ABPKPAATykAAE8pEABPKTAATylQAE8pYABPKXAATymQAE8po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ABQU3AAUFOAAFBbMABQW1AAUFtwAFBbkABQW8AAUFvQAFBb4ABQW/AAUFwAAFBcIABQXEAAUFxQAFBcYABQXIAAUFyQAFBkQABQZGAAUGSQAFBksABQZOAAUGTwAFBlAABQZRAAUGUgAFBlQABQZWAAUGVwAFBlgABQZaAAUGWwAFBnQABQZ1AAUGdgAFBngABQbzAAUG9QAFBvcABQb5AAUG/AAFBv0ABQb+AAUG/wAFBwAABQcCAAUHBAAFBwUABQcGAAUHCAAFBwkABQeEAAUHhgAFB4gABQeKAAUHjQAFB44ABQePAAUHkAAFB5EABQeTAAUHlQAFB5YABQeXAAUHmQAFB5oABQgVAAUIFwAFCBkABQgbAAUIHgAFCB8ABQggAAUIIQAFCCIABQgkAAUIJgAFCCcABQgoAAUIKgAFCCsABQimAAUIqAAFCKoABQisAAUIrwAFCLAABQixAAUIsgAFCLMABQi1AAUItwAFCLgABQi5AAUIuwAFCLwABQk3AAUJOQAFCTsABQk9AAUJQAAFCUEABQlCAAUJQwAFCUQABQlGAAUJSAAFCUkABQlKAAUJTAAFCU0ABQmWAAUJugAFCeEABQoFAAUKCAAFCgoABQoMAAUKDgAFChAABQoSAAUKEwAFChYABQovAAUKTAAFCk4ABQpQAAUKUgAFClQABQpWAAUKWAAFCloABQp3AAUKegAFCn0ABQqAAAUKgwAFCoYABQqJAAUKjAAFCo4ABQsJAAULCwAFCw0ABQsPAAULEgAFCxMABQsUAAULFQAFCxYABQsYAAULGgAFCxsABQscAAULHgAFCx8ABQuaAAULnAAFC54ABQugAAULowAFC6QABQulAAULpgAFC6cABQupAAULqwAFC6wABQutAAULrwAFC7AABQwrAAUMLQAFDC8ABQwxAAUMNAAFDDUABQw2AAUMNwAFDDgABQw6AAUMPAAFDD0ABQw+AAUMQAAFDEEABQy8AAUMvgAFDMEABQzDAAUMxgAFDMcABQzIAAUMyQAFDMoABQzMAAUMzgAFDM8ABQzQAAUM0gAFDNMABQ1OAAUNUAAFDVIABQ1UAAUNVwAFDVgABQ1ZAAUNWgAFDVsABQ1dAAUNXwAFDWAABQ1hAAUNYwAFDWQABQ3fAAUN4QAFDeMABQ3lAAUN6AAFDekABQ3qAAUN6wAFDew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ABUT5AAVE+gAFRPsABUT8AAVE/QAFRP8ABUUBAAVFAgAFRQMABUUFAAVFBgAFRYEABUWDAAVFhgAFRYgABUWLAAVFjAAFRY0ABUWOAAVFjwAFRZEABUWTAAVFlAAFRZUABUWXAAVFmAAFRhsABUY/AAVGYwAFRoYABUatAAVGzQAFRvQABUcbAAVHOwAFR18ABUeDAAVHhQAFR4gABUeKAAVHjAAFR44ABUeRAAVHlAAFR5YABUeYAAVHmwAFR50ABUefAAVHogAFR6UABUemAAVHqwAFR8QABUfJAAVHywAFR9AABUfTAAVH1QAFSB4ABUhCAAVIaQAFSI0ABUiQAAVIkgAFSJQABUiWAAVImAAFSJoABUibAAVIngAFSLcABUjcAAVI3gAFSOAABUjiAAVI5AAFSOYABUjoAAVI6gAFSOwABUjuAAVJEwAFSRYABUkZAAVJHAAFSR8ABUkiAAVJJQAFSSgABUkrAAVJLgAFSTAABUmrAAVJrQAFSbAABUmyAAVJtQAFSbYABUm3AAVJuAAFSbkABUm7AAVJvQAFSb4ABUm/AAVJwQAFScIABUnTAAVJ1AAFSdYABUpRAAVKUwAFSlUABUpXAAVKWgAFSlsABUpcAAVKXQAFSl4ABUpgAAVKYgAFSmMABUpkAAVKZgAFSmcABUriAAVK5AAFSucABUrpAAVK7AAFSu0ABUruAAVK7wAFSvAABUryAAVK9AAFSvUABUr2AAVK+AAFSvkABUsKAAVLCwAFSw0ABUuIAAVLigAFS4wABUuOAAVLkQAFS5IABUuTAAVLlAAFS5UABUuXAAVLmQAFS5oABUubAAVLnQAFS54ABUwZAAVMGwAFTB4ABUwgAAVMIwAFTCQABUwlAAVMJgAFTCcABUwpAAVMKwAFTCwABUwtAAVMLwAFTDAABUxBAAVMQgAFTEQABUy/AAVMwQAFTMMABUzFAAVMyAAFTMkABUzKAAVMywAFTMwABUzOAAVM0AAFTNEABUzSAAVM1AAFTNUABU1QAAVNUgAFTVUABU1XAAVNWgAFTVsABU1cAAVNXQAFTV4ABU1gAAVNYgAFTWMABU1kAAVNZgAFTWcABU2AAAVNgQAFTYIABU2EAAVN/wAFTgEABU4DAAVOBQAFTggABU4JAAVOCgAFTgsABU4MAAVODgAFThAABU4RAAVOEgAFThQABU4VAAVOkAAFTpIABU6VAAVOlwAFTpoABU6bAAVOnAAFTp0ABU6eAAVOoAAFTqIABU6jAAVOpAAFTqYABU6nAAVOxwAFTuAABU7pAAVO7AAFTu8ABU74AAVO+wAFTv4ABU8AAAVPFQAFTyEABU+0AAVP1wAFT/cABVAXAAVQGQAFUBsABVAdAAVQHwAFUCIABVAjAAVQJAAFUCcABVAoAAVQKgAFUCsABVAtAAVQMAAFUDEABVAyAAVQNQAFUDYABVA/AAVQWAAFUGEABVBjAAVQZQAFUG4ABVBxAAVQdAAFUHYABVC/AAVQ4wAFUQoABVEuAAVRMQAFUTMABVE1AAVRNwAFUTkABVE7AAVRPAAFUT8ABVFYAAVReQAFUXsABVF9AAVRfwAFUYEABVGDAAVRhQAFUYcABVGJAAVRqgAFUa0ABVGwAAVRswAFUbYABVG5AAVRvAAFUb8ABVHCAAVRxAAFUj8ABVJBAAVSQwAFUkUABVJIAAVSSQAFUkoABVJLAAVSTAAFUk4ABVJQAAVSUQAFUlIABVJUAAVSVQAFUtAABVLSAAVS1AAFUtYABVLZAAVS2gAFUtsABVLcAAVS3QAFUt8ABVLhAAVS4gAFUuMABVLlAAVS5gAFU2EABVNjAAVTZgAFU2gABVNrAAVTbAAFU20ABVNuAAVTbwAFU3EABVNzAAVTdAAFU3UABVN3AAVTeAAFU5EABVOSAAVTkwAFU5UABVQQAAVUEgAFVBQABVQWAAVUGQAFVBoABVQbAAVUHAAFVB0ABVQfAAVUIQAFVCIABVQjAAVUJQAFVCYABVShAAVUowAFVKUABVSnAAVUqgAFVKsABVSsAAVUrQAFVK4ABVSwAAVUsgAFVLMABVS0AAVUtgAFVLcABVUyAAVVNAAFVTYABVU4AAVVOwAFVTwABVU9AAVVPgAFVT8ABVVBAAVVQwAFVUQABVVFAAVVRwAFVUgABVXDAAVVxQAFVccABVXJAAVVzAAFVc0ABVXOAAVVzwAFVdAABVXSAAVV1AAFVdUABVXWAAVV2AAFVdkABVZUAAVWVgAFVlgABVZaAAVWXQAFVl4ABVZfAAVWYAAFVmEABVZjAAVWZQAFVmYABVZnAAVWaQAFVmoABVazAAVW1wAFVv4ABVciAAVXJQAFVycABVcpAAVXKwAFVy0ABVcvAAVXMAAFVzMABVdMAAVXaQAFV2sABVdtAAVXbwAFV3EABVdzAAVXdQAFV3cABVeUAAVXlwAFV5oABVedAAVXoAAFV6MABVemAAVXqQAFV6sABVgmAAVYKAAFWCsABVgtAAVYMAAFWDEABVgyAAVYMwAFWDQABVg2AAVYOAAFWDkABVg6AAVYPAAFWD0ABVi4AAVYugAFWLwABVi+AAVYwQAFWMIABVjDAAVYxAAFWMUABVjHAAVYyQAFWMoABVjLAAVYzQAFWM4ABVlJAAVZSwAFWU0ABVlPAAVZUgAFWVMABVlUAAVZVQAFWVYABVlYAAVZWgAFWVsABVlcAAVZXgAFWV8ABVnaAAVZ3AAFWd8ABVnhAAVZ5AAFWeUABVnmAAVZ5wAFWegABVnqAAVZ7AAFWe0ABVnuAAVZ8AAFWfEABVpsAAVabgAFWnAABVpyAAVadQAFWnYABVp3AAVaeAAFWnkABVp7AAVafQAFWn4ABVp/AAVagQAFWoIABVr9AAVa/wAFWwEABVsDAAVbBgAFWwcABVsIAAVbCQAFWwoABVsMAAVbDgAFWw8ABVsQAAVbEgAFWxMABVuOAAVbkAAFW5IABVuUAAVblwAFW5gABVuZAAVbmgAFW5sABVudAAVbnwAFW6AABVuhAAVbowAFW6QABVw3AAVcWgAFXHoABVyaAAVcnAAFXJ4ABVygAAVcogAFXKUABVymAAVcpwAFXKoABVyrAAVcrQAFXK4ABVyxAAVctAAFXLUABVy2AAVcuQAFXLoABVy/AAVc2AAFXOEABVzjAAVc5QAFXO4ABVzxAAVc9AAFXPYABV0/AAVdYwAFXYoABV2uAAVdsQAFXbMABV21AAVdtwAFXbkABV27AAVdvAAFXb8ABV3YAAVd+QAFXfsABV39AAVd/wAFXgEABV4DAAVeBQAFXgcABV4JAAVeKgAFXi0ABV4wAAVeMwAFXjYABV45AAVePAAFXj8ABV5CAAVeRAAFXr8ABV7BAAVewwAFXsUABV7IAAVeyQAFXsoABV7LAAVezAAFXs4ABV7QAAVe0QAFXtIABV7UAAVe1QAFX1AABV9SAAVfVAAFX1YABV9ZAAVfWgAFX1sABV9cAAVfXQAFX18ABV9hAAVfYgAFX2MABV9lAAVfZgAFX+EABV/jAAVf5gAFX+gABV/rAAVf7AAFX+0ABV/uAAVf7wAFX/EABV/zAAVf9AAFX/UABV/3AAVf+AAFYBEABWASAAVgEwAFYBUABWCQAAVgkgAFYJQABWCWAAVgmQAFYJoABWCbAAVgnAAFYJ0ABWCfAAVgoQAFYKIABWCjAAVgpQAFYKYABWEhAAVhIwAFYSUABWEnAAVhKgAFYSsABWEsAAVhLQAFYS4ABWEwAAVhMgAFYTMABWE0AAVhNgAFYTcABWGyAAVhtAAFYbYABWG4AAVhuwAFYbwABWG9AAVhvgAFYb8ABWHBAAVhwwAFYcQABWHFAAVhxwAFYcgABWJDAAViRQAFYkcABWJJAAViTAAFYk0ABWJOAAViTwAFYlAABWJSAAViVAAFYlUABWJWAAViWAAFYlkABWLUAAVi1gAFYtgABWLaAAVi3QAFYt4ABWLfAAVi4AAFYuEABWLjAAVi5QAFYuYABWLnAAVi6QAFYuoABWMzAAVjVwAFY34ABWOiAAVjpQAFY6cABWOpAAVjqwAFY60ABWOvAAVjsAAFY7MABWPMAAVj6QAFY+sABWPtAAVj7wAFY/EABWPzAAVj9QAFY/cABWQUAAVkFwAFZBoABWQdAAVkIAAFZCMABWQmAAVkKQAFZCsABWSmAAVkqAAFZKoABWSsAAVkrwAFZLAABWSxAAVksgAFZLMABWS1AAVktwAFZLgABWS5AAVkuwAFZLwABWU3AAVlOQAFZTsABWU9AAVlQAAFZUEABWVCAAVlQwAFZUQABWVGAAVlSAAFZUkABWVKAAVlTAAFZU0ABWXIAAVlygAFZcwABWXOAAVl0QAFZdIABWXTAAVl1AAFZdUABWXXAAVl2QAFZdoABWXbAAVl3QAFZd4ABWZZAAVmWwAFZl4ABWZgAAVmYwAFZmQABWZlAAVmZgAFZmcABWZpAAVmawAFZmwABWZtAAVmbwAFZnAABWbrAAVm7QAFZu8ABWbxAAVm9AAFZvUABWb2AAVm9wAFZvgABWb6AAVm/AAFZv0ABWb+AAVnAAAFZwEABWd8AAVnfgAFZ4AABWeCAAVnhQAFZ4YABWeHAAVniAAFZ4kABWeLAAVnjQAFZ44ABWePAAVnkQAFZ5IABWgNAAVoDwAFaBIABWgUAAVoFwAFaBgABWgZAAVoGgAFaBsABWgdAAVoHwAFaCAABWghAAVoIwAFaCQABWg1AAVoOgAFaD0ABWg/AAVoeAAFaHsABWh9AAVogAAFaIMABWiGAAVoiQAFaI4ABWkJAAVpCwAFaQ0ABWkPAAVpEgAFaRMABWkUAAVpFQAFaRYABWkYAAVpGgAFaRsABWkcAAVpHgAFaR8ABWmaAAVpnAAFaZ4ABWmgAAVpowAFaaQABWmlAAVppgAFaacABWmpAAVpqwAFaawABWmtAAVprwAFabAABWorAAVqLQAFajAABWoyAAVqNQAFajYABWo3AAVqOAAFajkABWo7AAVqPQAFaj4ABWo/AAVqQQAFakIABWrVAAVq+AAFaxgABWs4AAVrOgAFazwABWs+AAVrQAAFa0MABWtEAAVrRQAFa0gABWtJAAVrSwAFa0wABWtOAAVrUQAFa1IABWtTAAVrVgAFa1cABWtcAAVrdQAFa34ABWuAAAVrggAFa4sABWuOAAVrkQAFa5MABWvcAAVsAAAFbCcABWxLAAVsTgAFbFAABWxSAAVsVAAFbFYABWxYAAVsWQAFbFwABWx1AAVslgAFbJgABWyaAAVsnAAFbJ4ABWygAAVsogAFbKQABWymAAVsxwAFbMoABWzNAAVs0AAFbNMABWzWAAVs2QAFbNwABWzfAAVs4QAFbVwABW1eAAVtYAAFbWIABW1lAAVtZgAFbWcABW1oAAVtaQAFbWsABW1tAAVtbgAFbW8ABW1xAAVtcgAFbe0ABW3vAAVt8QAFbfMABW32AAVt9wAFbfgABW35AAVt+gAFbfwABW3+AAVt/wAFbgAABW4CAAVuAwAFbn4ABW6AAAVugwAFboUABW6IAAVuiQAFbooABW6LAAVujAAFbo4ABW6QAAVukQAFbpIABW6UAAVulQAFbq4ABW6vAAVusAAFbrIABW8tAAVvLwAFbzEABW8zAAVvNgAFbzcABW84AAVvOQAFbzoABW88AAVvPgAFbz8ABW9AAAVvQgAFb0MABW++AAVvwAAFb8IABW/EAAVvxwAFb8gABW/JAAVvygAFb8sABW/NAAVvzwAFb9AABW/RAAVv0wAFb9QABXBPAAVwUQAFcFMABXBVAAVwWAAFcFkABXBaAAVwWwAFcFwABXBeAAVwYAAFcGEABXBiAAVwZAAFcGUABXDgAAVw4gAFcOQABXDmAAVw6QAFcOoABXDrAAVw7AAFcO0ABXDvAAVw8QAFcPIABXDzAAVw9QAFcPYABXFxAAVxcwAFcXUABXF3AAVxegAFcXsABXF8AAVxfQAFcX4ABXGAAAVxggAFcYMABXGEAAVxhgAFcYcABXHQAAVx9AAFchsABXI/AAVyQgAFckQABXJGAAVySAAFckoABXJMAAVyTQAFclAABXJpAAVyhgAFcogABXKKAAVyjAAFco4ABXKQAAVykgAFcpQABXKxAAVytAAFcrcABXK6AAVyvQAFcsAABXLDAAVyxgAFcsgABXNDAAVzRQAFc0cABXNJAAVzTAAFc00ABXNOAAVzTwAFc1AABXNSAAVzVAAFc1UABXNWAAVzWAAFc1kABXPUAAVz1gAFc9gABXPaAAVz3QAFc94ABXPfAAVz4AAFc+EABXPjAAVz5QAFc+YABXPnAAVz6QAFc+oABXRlAAV0ZwAFdGkABXRrAAV0bgAFdG8ABXRwAAV0cQAFdHIABXR0AAV0dgAFdHcABXR4AAV0egAFdHsABXT2AAV0+AAFdPsABXT9AAV1AAAFdQEABXUCAAV1AwAFdQQABXUGAAV1CAAFdQkABXUKAAV1DAAFdQ0ABXWIAAV1igAFdYwABXWOAAV1kQAFdZIABXWTAAV1lAAFdZUABXWXAAV1mQAFdZoABXWbAAV1nQAFdZ4ABXYZAAV2GwAFdh0ABXYfAAV2IgAFdiMABXYkAAV2JQAFdiYABXYoAAV2KgAFdisABXYsAAV2LgAFdi8ABXaqAAV2rAAFdq4ABXawAAV2swAFdrQABXa1AAV2tgAFdrcABXa5AAV2uwAFdrwABXa9AAV2vwAFdsAABXdTAAV3dgAFd5YABXe2AAV3uAAFd7oABXe8AAV3vgAFd8EABXfCAAV3wwAFd8YABXfHAAV3yQAFd8oABXfNAAV30AAFd9EABXfSAAV31QAFd9YABXfbAAV39AAFd/0ABXf/AAV4AQAFeAoABXgNAAV4EAAFeBIABXhbAAV4fwAFeKYABXjKAAV4zQAFeM8ABXjRAAV40wAFeNUABXjXAAV42AAFeNsABXj0AAV5FQAFeRcABXkZAAV5GwAFeR0ABXkfAAV5IQAFeSMABXklAAV5RgAFeUkABXlMAAV5TwAFeVIABXlVAAV5WAAFeVsABXleAAV5YAAFedsABXndAAV53wAFeeEABXnkAAV55QAFeeYABXnnAAV56AAFeeoABXnsAAV57QAFee4ABXnwAAV58QAFemwABXpuAAV6cAAFenIABXp1AAV6dgAFencABXp4AAV6eQAFensABXp9AAV6fgAFen8ABXqBAAV6ggAFev0ABXr/AAV7AgAFewQABXsHAAV7CAAFewkABXsKAAV7CwAFew0ABXsPAAV7EAAFexEABXsTAAV7FAAFey0ABXsuAAV7LwAFezEABXusAAV7rgAFe7AABXuyAAV7tQAFe7YABXu3AAV7uAAFe7kABXu7AAV7vQAFe74ABXu/AAV7wQAFe8IABXw9AAV8PwAFfEEABXxDAAV8RgAFfEcABXxIAAV8SQAFfEoABXxMAAV8TgAFfE8ABXxQAAV8UgAFfFMABXzOAAV80AAFfNIABXzUAAV81wAFfNgABXzZAAV82gAFfNsABXzdAAV83wAFfOAABXzhAAV84wAFfOQABX1fAAV9YQAFfWMABX1lAAV9aAAFfWkABX1qAAV9awAFfWwABX1uAAV9cAAFfXEABX1yAAV9dAAFfXUABX3wAAV98gAFffQABX32AAV9+QAFffoABX37AAV9/AAFff0ABX3/AAV+AQAFfgIABX4DAAV+BQAFfgYABX5PAAV+cwAFfpoABX6+AAV+wQAFfsMABX7FAAV+xwAFfskABX7LAAV+zAAFfs8ABX7oAAV/BQAFfwcABX8JAAV/CwAFfw0ABX8PAAV/EQAFfxMABX8wAAV/MwAFfzYABX85AAV/PAAFfz8ABX9CAAV/RQAFf0cABX/CAAV/xAAFf8YABX/IAAV/ywAFf8wABX/NAAV/zgAFf88ABX/RAAV/0wAFf9QABX/VAAV/1wAFf9gABYBTAAWAVQAFgFgABYBaAAWAXQAFgF4ABYBfAAWAYAAFgGEABYBjAAWAZQAFgGYABYBnAAWAaQAFgGoABYDlAAWA5wAFgOkABYDrAAWA7gAFgO8ABYDwAAWA8QAFgPIABYD0AAWA9gAFgPcABYD4AAWA+gAFgPsABYF2AAWBeAAFgXsABYF9AAWBgAAFgYEABYGCAAWBgwAFgYQABYGGAAWBiAAFgYkABYGKAAWBjAAFgY0ABYIQAAWCNAAFglgABYJ7AAWCogAFgsIABYLpAAWDEAAFgzAABYNUAAWDeAAFg3oABYN9AAWDfwAFg4EABYODAAWDhgAFg4kABYOLAAWDjQAFg5AABYOSAAWDlAAFg5cABYOaAAWDmwAFg6AABYO5AAWDvgAFg8AABYPFAAWDyAAFg8oABYQTAAWENwAFhF4ABYSCAAWEhQAFhIcABYSJAAWEiwAFhI0ABYSPAAWEkAAFhJMABYSsAAWE0QAFhNMABYTVAAWE1wAFhNkABYTbAAWE3QAFhN8ABYThAAWE4wAFhQgABYULAAWFDgAFhREABYUUAAWFFwAFhRoABYUdAAWFIAAFhSMABYUlAAWFoAAFhaIABYWlAAWFpwAFhaoABYWrAAWFrAAFha0ABYWuAAWFsAAFhbIABYWzAAWFtAAFhbYABYW3AAWFyAAFhckABYXLAAWGRgAFhkgABYZKAAWGTAAFhk8ABYZQAAWGUQAFhlIABYZTAAWGVQAFhlcABYZYAAWGWQAFhlsABYZcAAWG1wAFhtkABYbcAAWG3gAFhuEABYbiAAWG4wAFhuQABYblAAWG5wAFhukABYbqAAWG6wAFhu0ABYbuAAWG/wAFhwAABYcCAAWHfQAFh38ABYeBAAWHgwAFh4YABYeHAAWHiAAFh4kABYeKAAWHjAAFh44ABYePAAWHkAAFh5IABYeTAAWIDgAFiBAABYgTAAWIFQAFiBgABYgZAAWIGgAFiBsABYgcAAWIHgAFiCAABYghAAWIIgAFiCQABYglAAWINgAFiDcABYg5AAWItAAFiLYABYi4AAWIugAFiL0ABYi+AAWIvwAFiMAABYjBAAWIwwAFiMUABYjGAAWIxwAFiMkABYjKAAWJRQAFiUcABYlKAAWJTAAFiU8ABYlQAAWJUQAFiVIABYlTAAWJVQAFiVcABYlYAAWJWQAFiVsABYlcAAWJdQAFiXYABYl3AAWJeQAFifQABYn2AAWJ+AAFifoABYn9AAWJ/gAFif8ABYoAAAWKAQAFigMABYoFAAWKBgAFigcABYoJAAWKCgAFioUABYqHAAWKigAFiowABYqPAAWKkAAFipEABYqSAAWKkwAFipUABYqXAAWKmAAFipkABYqbAAWKnAAFitUABYruAAWK9wAFivoABYr9AAWLBgAFiwkABYsMAAWLDgAFizEABYtKAAWL3QAFjAAABYwgAAWMQAAFjEIABYxEAAWMRgAFjEgABYxLAAWMTAAFjE0ABYxQAAWMUQAFjFMABYxUAAWMVwAFjFoABYxbAAWMXAAFjF8ABYxgAAWMZQAFjH4ABYyHAAWMiQAFjIsABYyUAAWMlwAFjJoABYycAAWM5QAFjQkABY0wAAWNVAAFjVcABY1ZAAWNWwAFjV0ABY1fAAWNYQAFjWIABY1lAAWNfgAFjZ8ABY2hAAWNowAFjaUABY2nAAWNqQAFjasABY2tAAWNrwAFjdAABY3TAAWN1gAFjdkABY3cAAWN3wAFjeIABY3lAAWN6AAFjeoABY5lAAWOZwAFjmkABY5rAAWObgAFjm8ABY5wAAWOcQAFjnIABY50AAWOdgAFjncABY54AAWOegAFjnsABY72AAWO+AAFjvoABY78AAWO/wAFjwAABY8BAAWPAgAFjwMABY8FAAWPBwAFjwgABY8JAAWPCwAFjwwABY+HAAWPiQAFj4wABY+OAAWPkQAFj5IABY+TAAWPlAAFj5UABY+XAAWPmQAFj5oABY+bAAWPnQAFj54ABY+3AAWPuAAFj7kABY+7AAWQNgAFkDgABZA6AAWQPAAFkD8ABZBAAAWQQQAFkEIABZBDAAWQRQAFkEcABZBIAAWQSQAFkEsABZBMAAWQxwAFkMkABZDLAAWQzQAFkNAABZDRAAWQ0gAFkNMABZDUAAWQ1gAFkNgABZDZAAWQ2gAFkNwABZDdAAWRWAAFkVoABZFcAAWRXgAFkWEABZFiAAWRYwAFkWQABZFlAAWRZwAFkWkABZFqAAWRawAFkW0ABZFuAAWR6QAFkesABZHtAAWR7wAFkfIABZHzAAWR9AAFkfUABZH2AAWR+AAFkfoABZH7AAWR/AAFkf4ABZH/AAWSegAFknwABZJ+AAWSgAAFkoMABZKEAAWShQAFkoYABZKHAAWSiQAFkosABZKMAAWSjQAFko8ABZKQAAWS2QAFkv0ABZMkAAWTSAAFk0sABZNNAAWTTwAFk1EABZNTAAWTVQAFk1YABZNZAAWTcgAFk48ABZORAAWTkwAFk5UABZOXAAWTmQAFk5sABZOdAAWTugAFk70ABZPAAAWTwwAFk8YABZPJAAWTzAAFk88ABZPRAAWUTAAFlE4ABZRQAAWUUgAFlFUABZRWAAWUVwAFlFgABZRZAAWUWwAFlF0ABZReAAWUXwAFlGEABZRiAAWU3QAFlN8ABZThAAWU4wAFlOYABZTnAAWU6AAFlOkABZTqAAWU7AAFlO4ABZTvAAWU8AAFlPIABZTzAAWVbgAFlXAABZVyAAWVdAAFlXcABZV4AAWVeQAFlXoABZV7AAWVfQAFlX8ABZWAAAWVgQAFlYMABZWEAAWV/wAFlgEABZYEAAWWBgAFlgkABZYKAAWWCwAFlgwABZYNAAWWDwAFlhEABZYSAAWWEwAFlhUABZYWAAWWkQAFlpMABZaVAAWWlwAFlpoABZabAAWWnAAFlp0ABZaeAAWWoAAFlqIABZajAAWWpAAFlqYABZanAAWXIgAFlyQABZcmAAWXKAAFlysABZcsAAWXLQAFly4ABZcvAAWXMQAFlzMABZc0AAWXNQAFlzcABZc4AAWXswAFl7UABZe4AAWXugAFl70ABZe+AAWXvwAFl8AABZfBAAWXwwAFl8UABZfGAAWXxwAFl8kABZfKAAWYXQAFmIAABZigAAWYwAAFmMIABZjEAAWYxgAFmMgABZjLAAWYzAAFmM0ABZjQAAWY0QAFmNMABZjUAAWY1gAFmNkABZjaAAWY2wAFmN4ABZjfAAWY5AAFmP0ABZkGAAWZCAAFmQoABZkTAAWZFgAFmRkABZkbAAWZZAAFmYgABZmvAAWZ0wAFmdYABZnYAAWZ2gAFmdwABZneAAWZ4AAFmeEABZnkAAWZ/QAFmh4ABZogAAWaIgAFmiQABZomAAWaKAAFmioABZosAAWaLgAFmk8ABZpSAAWaVQAFmlgABZpbAAWaXgAFmmEABZpkAAWaZwAFmmkABZrkAAWa5gAFmugABZrqAAWa7QAFmu4ABZrvAAWa8AAFmvEABZrzAAWa9QAFmvYABZr3AAWa+QAFmvoABZt1AAWbdwAFm3kABZt7AAWbfgAFm38ABZuAAAWbgQAFm4IABZuEAAWbhgAFm4cABZuIAAWbigAFm4sABZwGAAWcCAAFnAsABZwNAAWcEAAFnBEABZwSAAWcEwAFnBQABZwWAAWcGAAFnBkABZwaAAWcHAAFnB0ABZw2AAWcNwAFnDgABZw6AAWctQAFnLcABZy5AAWcuwAFnL4ABZy/AAWcwAAFnMEABZzCAAWcxAAFnMYABZzHAAWcyAAFnMoABZzLAAWdRgAFnUgABZ1KAAWdTAAFnU8ABZ1QAAWdUQAFnVIABZ1TAAWdVQAFnVcABZ1YAAWdWQAFnVsABZ1cAAWd1wAFndkABZ3bAAWd3QAFneAABZ3hAAWd4gAFneMABZ3kAAWd5gAFnegABZ3pAAWd6gAFnewABZ3tAAWeaAAFnmoABZ5sAAWebgAFnnEABZ5yAAWecwAFnnQABZ51AAWedwAFnnkABZ56AAWeewAFnn0ABZ5+AAWe+QAFnvsABZ79AAWe/wAFnwIABZ8DAAWfBAAFnwUABZ8GAAWfCAAFnwoABZ8LAAWfDAAFnw4ABZ8PAAWfWAAFn3wABZ+jAAWfxwAFn8oABZ/MAAWfzgAFn9AABZ/SAAWf1AAFn9UABZ/YAAWf8QAFoA4ABaAQAAWgEgAFoBQABaAWAAWgGAAFoBoABaAcAAWgOQAFoDwABaA/AAWgQgAFoEUABaBIAAWgSwAFoE4ABaBQAAWgywAFoM0ABaDPAAWg0QAFoNQABaDVAAWg1gAFoNcABaDYAAWg2gAFoNwABaDdAAWg3gAFoOAABaDhAAWhXAAFoV4ABaFgAAWhYgAFoWUABaFmAAWhZwAFoWgABaFpAAWhawAFoW0ABaFuAAWhbwAFoXEABaFyAAWh7QAFoe8ABaHxAAWh8wAFofYABaH3AAWh+AAFofkABaH6AAWh/AAFof4ABaH/AAWiAAAFogIABaIDAAWifgAFooAABaKCAAWihAAFoocABaKIAAWiiQAFoooABaKLAAWijQAFoo8ABaKQAAWikQAFopMABaKUAAWjDwAFoxEABaMTAAWjFQAFoxgABaMZAAWjGgAFoxsABaMcAAWjHgAFoyAABaMhAAWjIgAFoyQABaMlAAWjoAAFo6IABaOkAAWjpgAFo6kABaOqAAWjqwAFo6wABaOtAAWjrwAFo7EABaOyAAWjswAFo7UABaO2AAWkMQAFpDMABaQ1AAWkNwAFpDoABaQ7AAWkPAAFpD0ABaQ+AAWkQAAFpEIABaRDAAWkRAAFpEYABaRHAAWkWAAFpF0ABaRgAAWkYgAFpJsABaSeAAWkoAAFpKMABaSmAAWkqQAFpKwABaSxAAWlLAAFpS4ABaUwAAWlMgAFpTUABaU2AAWlNwAFpTgABaU5AAWlOwAFpT0ABaU+AAWlPwAFpUEABaVCAAWlvQAFpb8ABaXBAAWlwwAFpcYABaXHAAWlyAAFpckABaXKAAWlzAAFpc4ABaXPAAWl0AAFpdIABaXTAAWmTgAFplAABaZTAAWmVQAFplgABaZZAAWmWgAFplsABaZcAAWmXgAFpmAABaZhAAWmYgAFpmQABaZlAAWm+AAFpxsABac7AAWnWwAFp10ABadfAAWnYQAFp2MABadmAAWnZwAFp2gABadrAAWnbAAFp24ABadvAAWncgAFp3UABad2AAWndwAFp3oABad7AAWngAAFp5kABaeiAAWnpAAFp6YABaevAAWnsgAFp7UABae3AAWoAAAFqCQABahLAAWobwAFqHIABah0AAWodgAFqHgABah6AAWofAAFqH0ABaiAAAWomQAFqLoABai8AAWovgAFqMAABajCAAWoxAAFqMYABajIAAWoygAFqOsABajuAAWo8QAFqPQABaj3AAWo+gAFqP0ABakAAAWpAwAFqQUABamAAAWpggAFqYQABamGAAWpiQAFqYoABamLAAWpjAAFqY0ABamPAAWpkQAFqZIABamTAAWplQAFqZYABaoRAAWqEwAFqhUABaoXAAWqGgAFqhsABaocAAWqHQAFqh4ABaogAAWqIgAFqiMABaokAAWqJgAFqicABaqiAAWqpAAFqqcABaqpAAWqrAAFqq0ABaquAAWqrwAFqrAABaqyAAWqtAAFqrUABaq2AAWquAAFqrkABarSAAWq0wAFqtQABarWAAWrUQAFq1MABatVAAWrVwAFq1oABatbAAWrXAAFq10ABateAAWrYAAFq2IABatjAAWrZAAFq2YABatnAAWr4gAFq+QABavmAAWr6AAFq+sABavsAAWr7QAFq+4ABavvAAWr8QAFq/MABav0AAWr9QAFq/cABav4AAWscwAFrHUABax3AAWseQAFrHwABax9AAWsfgAFrH8ABayAAAWsggAFrIQABayFAAWshgAFrIgABayJAAWtBAAFrQYABa0IAAWtCgAFrQ0ABa0OAAWtDwAFrRAABa0RAAWtEwAFrRUABa0WAAWtFwAFrRkABa0aAAWtlQAFrZcABa2ZAAWtmwAFrZ4ABa2fAAWtoAAFraEABa2iAAWtpAAFraYABa2nAAWtqAAFraoABa2rAAWt9AAFrhgABa4/AAWuYwAFrmYABa5oAAWuagAFrmwABa5uAAWucAAFrnEABa50AAWujQAFrqoABa6sAAWurgAFrrAABa6yAAWutAAFrrYABa64AAWu1QAFrtgABa7bAAWu3gAFruEABa7kAAWu5wAFruoABa7sAAWvZwAFr2kABa9rAAWvbQAFr3AABa9xAAWvcgAFr3MABa90AAWvdgAFr3gABa95AAWvegAFr3wABa99AAWv+AAFr/oABa/9AAWv/wAFsAIABbADAAWwBAAFsAUABbAGAAWwCAAFsAoABbALAAWwDAAFsA4ABbAPAAWwigAFsIwABbCOAAWwkAAFsJMABbCUAAWwlQAFsJYABbCXAAWwmQAFsJsABbCcAAWwnQAFsJ8ABbCgAAWxGwAFsR0ABbEgAAWxIgAFsSUABbEmAAWxJwAFsSgABbEpAAWxKwAFsS0ABbEuAAWxLwAFsTEABbEyAAWxrQAFsa8ABbGxAAWxswAFsbYABbG3AAWxuAAFsbkABbG6AAWxvAAFsb4ABbG/AAWxwAAFscIABbHDAAWyPgAFskAABbJCAAWyRAAFskcABbJIAAWySQAFskoABbJLAAWyTQAFsk8ABbJQAAWyUQAFslMABbJUAAWyzwAFstEABbLUAAWy1gAFstkABbLaAAWy2wAFstwABbLdAAWy3wAFsuEABbLiAAWy4wAFsuUABbLmAAWzeQAFs5wABbO8AAWz3AAFs94ABbPgAAWz4gAFs+QABbPnAAWz6AAFs+kABbPsAAWz7QAFs+8ABbPwAAWz8gAFs/UABbP2AAWz9wAFs/oABbP7AAW0BAAFtB0ABbQmAAW0KAAFtCoABbQzAAW0NgAFtDkABbQ7AAW0hAAFtKgABbTPAAW08wAFtPYABbT4AAW0+gAFtPwABbT+AAW1AAAFtQEABbUEAAW1HQAFtT4ABbVAAAW1QgAFtUQABbVGAAW1SAAFtUoABbVMAAW1TgAFtW8ABbVyAAW1dQAFtXgABbV7AAW1fgAFtYEABbWEAAW1hwAFtYkABbYEAAW2BgAFtggABbYKAAW2DQAFtg4ABbYPAAW2EAAFthEABbYTAAW2FQAFthYABbYXAAW2GQAFthoABbaVAAW2lwAFtpkABbabAAW2ngAFtp8ABbagAAW2oQAFtqIABbakAAW2pgAFtqcABbaoAAW2qgAFtqsABbcmAAW3KAAFtysABbctAAW3MAAFtzEABbcyAAW3MwAFtzQABbc2AAW3OAAFtzkABbc6AAW3PAAFtz0ABbdWAAW3VwAFt1gABbdaAAW31QAFt9cABbfZAAW32wAFt94ABbffAAW34AAFt+EABbfiAAW35AAFt+YABbfnAAW36AAFt+oABbfrAAW4ZgAFuGgABbhqAAW4bAAFuG8ABbhwAAW4cQAFuHIABbhzAAW4dQAFuHcABbh4AAW4eQAFuHsABbh8AAW49wAFuPkABbj7AAW4/QAFuQAABbkBAAW5AgAFuQMABbkEAAW5BgAFuQgABbkJAAW5CgAFuQwABbkNAAW5iAAFuYoABbmMAAW5jgAFuZEABbmSAAW5kwAFuZQABbmVAAW5lwAFuZkABbmaAAW5mwAFuZ0ABbmeAAW6GQAFuhsABbodAAW6HwAFuiIABbojAAW6JAAFuiUABbomAAW6KAAFuioABborAAW6LAAFui4ABbovAAW6eAAFupwABbrDAAW65wAFuuoABbrsAAW67gAFuvAABbryAAW69AAFuvUABbr4AAW7EQAFuy4ABbswAAW7MgAFuzQABbs2AAW7OAAFuzoABbs8AAW7WQAFu1wABbtfAAW7YgAFu2UABbtoAAW7awAFu24ABbtwAAW76wAFu+0ABbvvAAW78QAFu/QABbv1AAW79gAFu/cABbv4AAW7+gAFu/wABbv9AAW7/gAFvAAABbwBAAW8fAAFvH4ABbyAAAW8ggAFvIUABbyGAAW8hwAFvIgABbyJAAW8iwAFvI0ABbyOAAW8jwAFvJEABbySAAW9DQAFvQ8ABb0RAAW9EwAFvRYABb0XAAW9GAAFvRkABb0aAAW9HAAFvR4ABb0fAAW9IAAFvSIABb0jAAW9ngAFvaAABb2jAAW9pQAFvagABb2pAAW9qgAFvasABb2sAAW9rgAFvbAABb2xAAW9sgAFvbQABb21AAW+MAAFvjIABb40AAW+NgAFvjkABb46AAW+OwAFvjwABb49AAW+PwAFvkEABb5CAAW+QwAFvkUABb5GAAW+wQAFvsMABb7FAAW+xwAFvsoABb7LAAW+zAAFvs0ABb7OAAW+0AAFvtIABb7TAAW+1AAFvtYABb7XAAW/UgAFv1QABb9WAAW/WAAFv1sABb9cAAW/XQAFv14ABb9fAAW/YQAFv2MABb9kAAW/ZQAFv2cABb9oAAW/+wAFwB4ABcA+AAXAXgAFwGAABcBiAAXAZAAFwGYABcBpAAXAagAFwGsABcBuAAXAbwAFwHEABcByAAXAdQAFwHgABcB5AAXAegAFwH0ABcB+AAXAgwAFwJwABcClAAXApwAFwKkABcCyAAXAtQAFwLgABcC6AAXBAwAFwScABcFOAAXBcgAFwXUABcF3AAXBeQAFwXsABcF9AAXBfwAFwYAABcGDAAXBnAAFwb0ABcG/AAXBwQAFwcMABcHFAAXBxwAFwckABcHLAAXBzQAFwe4ABcHxAAXB9AAFwfcABcH6AAXB/QAFwgAABcIDAAXCBgAFwggABcKDAAXChQAFwocABcKJAAXCjAAFwo0ABcKOAAXCjwAFwpAABcKSAAXClAAFwpUABcKWAAXCmAAFwpkABcMUAAXDFgAFwxgABcMaAAXDHQAFwx4ABcMfAAXDIAAFwyEABcMjAAXDJQAFwyYABcMnAAXDKQAFwyoABcOlAAXDpwAFw6oABcOsAAXDrwAFw7AABcOxAAXDsgAFw7MABcO1AAXDtwAFw7gABcO5AAXDuwAFw7wABcPVAAXD1gAFw9cABcPZAAXEVAAFxFYABcRYAAXEWgAFxF0ABcReAAXEXwAFxGAABcRhAAXEYwAFxGUABcRmAAXEZwAFxGkABcRqAAXE5QAFxOcABcTpAAXE6wAFxO4ABcTvAAXE8AAFxPEABcTyAAXE9AAFxPYABcT3AAXE+AAFxPoABcT7AAXFdgAFxXgABcV6AAXFfAAFxX8ABcWAAAXFgQAFxYIABcWDAAXFhQAFxYcABcWIAAXFiQAFxYsABcWMAAXGBwAFxgkABcYLAAXGDQAFxhAABcYRAAXGEgAFxhMABcYUAAXGFgAFxhgABcYZAAXGGgAFxhwABcYdAAXGmAAFxpoABcacAAXGngAFxqEABcaiAAXGowAFxqQABcalAAXGpwAFxqkABcaqAAXGqwAFxq0ABcauAAXG9wAFxxsABcdCAAXHZgAFx2kABcdrAAXHbQAFx28ABcdxAAXHcwAFx3QABcd3AAXHkAAFx60ABcevAAXHsQAFx7MABce1AAXHtwAFx7kABce7AAXH2AAFx9sABcfeAAXH4QAFx+QABcfnAAXH6gAFx+0ABcfvAAXIagAFyGwABchuAAXIcAAFyHMABch0AAXIdQAFyHYABch3AAXIeQAFyHsABch8AAXIfQAFyH8ABciAAAXI+wAFyP0ABckAAAXJAgAFyQUABckGAAXJBwAFyQgABckJAAXJCwAFyQ0ABckOAAXJDwAFyREABckSAAXJjQAFyY8ABcmRAAXJkwAFyZYABcmXAAXJmAAFyZkABcmaAAXJnAAFyZ4ABcmfAAXJoAAFyaIABcmjAAXKHgAFyiAABcojAAXKJQAFyigABcopAAXKKgAFyisABcosAAXKLgAFyjAABcoxAAXKMgAFyjQABco1AAXKuAAFytwABcsAAAXLIwAFy0oABctqAAXLkQAFy7gABcvYAAXL/AAFzCAABcwiAAXMJQAFzCcABcwpAAXMKwAFzC4ABcwxAAXMMwAFzDUABcw4AAXMOgAFzDwABcw/AAXMQgAFzEMABcxIAAXMYQAFzGYABcxoAAXMbQAFzHAABcxyAAXMuwAFzN8ABc0GAAXNKgAFzS0ABc0vAAXNMQAFzTMABc01AAXNNwAFzTgABc07AAXNVAAFzXkABc17AAXNfQAFzX8ABc2BAAXNgwAFzYUABc2HAAXNiQAFzYsABc2wAAXNswAFzbYABc25AAXNvAAFzb8ABc3CAAXNxQAFzcgABc3LAAXNzQAFzkgABc5KAAXOTQAFzk8ABc5SAAXOUwAFzlQABc5VAAXOVgAFzlgABc5aAAXOWwAFzlwABc5eAAXOXwAFznAABc5xAAXOcwAFzu4ABc7wAAXO8gAFzvQABc73AAXO+AAFzvkABc76AAXO+wAFzv0ABc7/AAXPAAAFzwEABc8DAAXPBAAFz38ABc+BAAXPhAAFz4YABc+JAAXPigAFz4sABc+MAAXPjQAFz48ABc+RAAXPkgAFz5MABc+VAAXPlgAFz6cABc+oAAXPqgAF0CUABdAnAAXQKQAF0CsABdAuAAXQLwAF0DAABdAxAAXQMgAF0DQABdA2AAXQNwAF0DgABdA6AAXQOwAF0LYABdC4AAXQuwAF0L0ABdDAAAXQwQAF0MIABdDDAAXQxAAF0MYABdDIAAXQyQAF0MoABdDMAAXQzQAF0N4ABdDfAAXQ4QAF0VwABdFeAAXRYAAF0WIABdFlAAXRZgAF0WcABdFoAAXRaQAF0WsABdFtAAXRbgAF0W8ABdFxAAXRcgAF0e0ABdHvAAXR8gAF0fQABdH3AAXR+AAF0fkABdH6AAXR+wAF0f0ABdH/AAXSAAAF0gEABdIDAAXSBAAF0h0ABdIeAAXSHwAF0iEABdKcAAXSngAF0qAABdKiAAXSpQAF0qYABdKnAAXSqAAF0qkABdKrAAXSrQAF0q4ABdKvAAXSsQAF0rIABdMtAAXTLwAF0zIABdM0AAXTNwAF0zgABdM5AAXTOgAF0zs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ABeVCAAXlRAAF5UYABeVHAAXlSAAF5UoABeVLAAXlxgAF5cgABeXLAAXlzQAF5dAABeXRAAXl0gAF5dMABeXUAAXl1gAF5dgABeXZAAXl2gAF5dwABeXdAAXl9gAF5fcABeX4AAXl+gAF5nUABeZ3AAXmeQAF5nsABeZ+AAXmfwAF5oAABeaBAAXmggAF5oQABeaGAAXmhwAF5ogABeaKAAXmiwAF5wYABecIAAXnCgAF5wwABecPAAXnEAAF5xEABecSAAXnEwAF5xUABecXAAXnGAAF5xkABecbAAXnHAAF55cABeeZAAXnmwAF550ABeegAAXnoQAF56IABeejAAXnpAAF56YABeeoAAXnqQAF56oABeesAAXnrQAF6CgABegqAAXoLAAF6C4ABegxAAXoMgAF6DMABeg0AAXoNQAF6DcABeg5AAXoOgAF6DsABeg9AAXoPgAF6LkABei7AAXovQAF6L8ABejCAAXowwAF6MQABejFAAXoxgAF6MgABejKAAXoywAF6MwABejOAAXozwAF6RgABek8AAXpYwAF6YcABemKAAXpjAAF6Y4ABemQAAXpkgAF6ZQABemVAAXpmAAF6bEABenOAAXp0AAF6dIABenUAAXp1gAF6dgABenaAAXp3AAF6fkABen8AAXp/wAF6gIABeoFAAXqCAAF6gsABeoOAAXqEAAF6osABeqNAAXqjwAF6pEABeqUAAXqlQAF6pYABeqXAAXqmAAF6poABeqcAAXqnQAF6p4ABeqgAAXqoQAF6xwABeseAAXrIQAF6yMABesmAAXrJwAF6ygABespAAXrKgAF6ywABesuAAXrLwAF6zAABesyAAXrMwAF664ABeuwAAXrsgAF67QABeu3AAXruAAF67kABeu6AAXruwAF670ABeu/AAXrwAAF68EABevDAAXrxAAF7D8ABexBAAXsRAAF7EYABexJAAXsSgAF7EsABexMAAXsTQAF7E8ABexRAAXsUgAF7FMABexVAAXsVgAF7NkABez9AAXtIQAF7UQABe1rAAXtiwAF7bIABe3ZAAXt+QAF7h0ABe5BAAXuQwAF7kYABe5IAAXuSgAF7kwABe5PAAXuUgAF7lQABe5WAAXuWQAF7lsABe5dAAXuYAAF7mMABe5kAAXuaQAF7oIABe6HAAXuiQAF7o4ABe6RAAXukwAF7tw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ABgAWAAYAFwAGABkABgAaAAYAlQAGAJcABgCaAAYAnAAGAJ8ABgCgAAYAoQAGAKIABgCjAAYApQAGAKcABgCoAAYAqQAGAKsABgCsAAYBJwAGASkABgErAAYBLQAGATAABgExAAYBMgAGATMABgE0AAYBNgAGATgABgE5AAYBOgAGATwABgE9AAYBuAAGAboABgG8AAYBvgAGAcEABgHCAAYBwwAGAcQABgHFAAYBxwAGAckABgHKAAYBywAGAc0ABgHOAAYCSQAGAksABgJNAAYCTwAGAlIABgJTAAYCVAAGAlUABgJWAAYCWAAGAloABgJbAAYCXAAGAl4ABgJfAAYC8gAGAxUABgM1AAYDVQAGA1cABgNZAAYDWwAGA10ABgNgAAYDYQAGA2IABgNlAAYDZgAGA2gABgNpAAYDawAGA24ABgNvAAYDcAAGA3MABgN0AAYDeQAGA5IABgObAAYDnQAGA58ABgOoAAYDqwAGA64ABgOwAAYD+QAGBB0ABgREAAYEaAAGBGsABgRtAAYEbwAGBHEABgRzAAYEdQAGBHYABgR5AAYEkgAGBLMABgS1AAYEtwAGBLkABgS7AAYEvQAGBL8ABgTBAAYEwwAGBOQABgTnAAYE6gAGBO0ABgTwAAYE8wAGBPYABgT5AAYE/AAGBP4ABgV5AAYFewAGBX0ABgV/AAYFggAGBYMABgWEAAYFhQAGBYYABgWIAAYFigAGBYsABgWMAAYFjgAGBY8ABgYKAAYGDAAGBg4ABgYQAAYGEwAGBhQABgYVAAYGFgAGBhcABgYZAAYGGwAGBhwABgYdAAYGHwAGBiAABgabAAYGnQAGBqAABgaiAAYGpQAGBqYABganAAYGqAAGBqkABgarAAYGrQAGBq4ABgavAAYGsQAGBrIABgbLAAYGzAAGBs0ABgbPAAYHSgAGB0wABgdOAAYHUAAGB1MABgdUAAYHVQAGB1YABgdXAAYHWQAGB1sABgdcAAYHXQAGB18ABgdgAAYH2wAGB90ABgffAAYH4QAGB+QABgflAAYH5gAGB+cABgfoAAYH6gAGB+wABgftAAYH7gAGB/AABgfxAAYIbAAGCG4ABghwAAYIcgAGCHUABgh2AAYIdwAGCHgABgh5AAYIewAGCH0ABgh+AAYIfwAGCIEABgiCAAYI/QAGCP8ABgkBAAYJAwAGCQY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ABjR2AAY08QAGNPMABjT1AAY09wAGNPoABjT7AAY0/AAGNP0ABjT+AAY1AAAGNQIABjUDAAY1BAAGNQYABjUHAAY1ggAGNYQABjWGAAY1iAAGNYsABjWMAAY1jQAGNY4ABjWPAAY1kQAGNZMABjWUAAY1lQAGNZcABjWYAAY2EwAGNhUABjYXAAY2GQAGNhwABjYdAAY2HgAGNh8ABjYgAAY2IgAGNiQABjYlAAY2JgAGNigABjYpAAY2vAAGNt8ABjb/AAY3HwAGNyEABjcjAAY3JQAGNycABjcqAAY3KwAGNywABjcvAAY3MAAGNzIABjczAAY3NQAGNzgABjc5AAY3OgAGNz0ABjc+AAY3RwAGN2AABjdpAAY3awAGN20ABjd2AAY3eQAGN3wABjd+AAY3xwAGN+sABjgSAAY4NgAGODkABjg7AAY4PQAGOD8ABjhBAAY4QwAGOEQABjhHAAY4YAAGOIEABjiDAAY4hQAGOIcABjiJAAY4iwAGOI0ABjiPAAY4kQAGOLIABji1AAY4uAAGOLsABji+AAY4wQAGOMQABjjHAAY4ygAGOMwABjlHAAY5SQAGOUsABjlNAAY5UAAGOVEABjlSAAY5UwAGOVQABjlWAAY5WAAGOVkABjlaAAY5XAAGOV0ABjnYAAY52gAGOdwABjneAAY54QAGOeIABjnjAAY55AAGOeUABjnnAAY56QAGOeoABjnrAAY57QAGOe4ABjppAAY6awAGOm4ABjpwAAY6cwAGOnQABjp1AAY6dgAGOncABjp5AAY6ewAGOnwABjp9AAY6fwAGOoAABjqZAAY6mgAGOpsABjqdAAY7GAAGOxoABjscAAY7HgAGOyEABjsiAAY7IwAGOyQABjslAAY7JwAGOykABjsqAAY7KwAGOy0ABjsuAAY7qQAGO6sABjutAAY7rwAGO7IABjuzAAY7tAAGO7UABju2AAY7uAAGO7oABju7AAY7vAAGO74ABju/AAY8OgAGPDwABjw+AAY8QAAGPEMABjxEAAY8RQAGPEYABjxHAAY8SQAGPEsABjxMAAY8TQAGPE8ABjxQAAY8ywAGPM0ABjzPAAY80QAGPNQABjzVAAY81gAGPNcABjzYAAY82gAGPNwABjzdAAY83gAGPOAABjzhAAY9XAAGPV4ABj1gAAY9YgAGPWUABj1mAAY9ZwAGPWgABj1pAAY9awAGPW0ABj1uAAY9bwAGPXEABj1yAAY9uwAGPd8ABj4GAAY+KgAGPi0ABj4vAAY+MQAGPjMABj41AAY+NwAGPjgABj47AAY+VAAGPnEABj5zAAY+dQAGPncABj55AAY+ewAGPn0ABj5/AAY+nAAGPp8ABj6iAAY+pQAGPqgABj6rAAY+rgAGPrEABj6zAAY/LgAGPzAABj8yAAY/NAAGPzcABj84AAY/OQAGPzoABj87AAY/PQAGPz8ABj9AAAY/QQAGP0MABj9EAAY/vwAGP8EABj/DAAY/xQAGP8gABj/JAAY/ygAGP8sABj/MAAY/zgAGP9AABj/RAAY/0gAGP9QABj/VAAZAUAAGQFIABkBUAAZAVgAGQFkABkBaAAZAWwAGQFwABkBdAAZAXwAGQGEABkBiAAZAYwAGQGUABkBmAAZA4QAGQOMABkDlAAZA5wAGQOoABkDrAAZA7AAGQO0ABkDuAAZA8AAGQPIABkDzAAZA9AAGQPYABkD3AAZBcgAGQXQABkF2AAZBeAAGQXsABkF8AAZBfQAGQX4ABkF/AAZBgQAGQYMABkGEAAZBhQAGQYcABkGIAAZCAwAGQgUABkIHAAZCCQAGQgwABkINAAZCDgAGQg8ABkIQAAZCEgAGQhQABkIVAAZCFgAGQhgABkIZAAZClAAGQpYABkKYAAZCmgAGQp0ABkKeAAZCnwAGQqAABkKhAAZCowAGQqUABkKmAAZCpwAGQqkABkKqAAZDPQAGQ2AABkOAAAZDoAAGQ6IABkOkAAZDpgAGQ6gABkOrAAZDrAAGQ60ABkOwAAZDsQAGQ7MABkO0AAZDtgAGQ7kABkO6AAZDuwAGQ74ABkO/AAZDxAAGQ90ABkPmAAZD6AAGQ+oABkPzAAZD9gAGQ/kABkP7AAZERAAGRGgABkSPAAZEswAGRLYABkS4AAZEugAGRLwABkS+AAZEwAAGRMEABkTEAAZE3QAGRP4ABkUAAAZFAgAGRQQABkUGAAZFCAAGRQoABkUMAAZFDgAGRS8ABkUyAAZFNQAGRTgABkU7AAZFPgAGRUEABkVEAAZFRwAGRUkABkXEAAZFxgAGRcgABkXKAAZFzQAGRc4ABkXPAAZF0AAGRdEABkXTAAZF1QAGRdYABkXXAAZF2QAGRdoABkZVAAZGVwAGRlkABkZbAAZGXgAGRl8ABkZgAAZGYQAGRmIABkZkAAZGZgAGRmcABkZoAAZGagAGRmsABkbmAAZG6AAGRusABkbtAAZG8AAGRvEABkbyAAZG8wAGRvQABkb2AAZG+AAGRvkABkb6AAZG/AAGRv0ABkcWAAZHFwAGRxgABkcaAAZHlQAGR5cABkeZAAZHmwAGR54ABkefAAZHoAAGR6EABkeiAAZHpAAGR6YABkenAAZHqAAGR6oABkerAAZIJgAGSCgABkgqAAZILAAGSC8ABkgwAAZIMQAGSDIABkgzAAZINQAGSDcABkg4AAZIOQAGSDsABkg8AAZItwAGSLkABki7AAZIvQAGSMAABkjBAAZIwgAGSMMABkjEAAZIxgAGSMgABkjJAAZIygAGSMwABkjNAAZJSAAGSUoABklMAAZJTgAGSVEABklSAAZJUwAGSVQABklVAAZJVwAGSVkABklaAAZJWwAGSV0ABkleAAZJ2QAGSdsABkndAAZJ3wAGSeIABknjAAZJ5AAGSeUABknmAAZJ6AAGSeoABknrAAZJ7AAGSe4ABknvAAZKOAAGSlwABkqDAAZKpwAGSqoABkqsAAZKrgAGSrAABkqyAAZKtAAGSrUABkq4AAZK0QAGSu4ABkrwAAZK8gAGSvQABkr2AAZK+AAGSvoABkr8AAZLGQAGSxwABksfAAZLIgAGSyUABksoAAZLKwAGSy4ABkswAAZLqwAGS60ABkuvAAZLsQAGS7QABku1AAZLtgAGS7cABku4AAZLugAGS7wABku9AAZLvgAGS8AABkvBAAZMPAAGTD4ABkxAAAZMQgAGTEUABkxGAAZMRwAGTEgABkxJAAZMSwAGTE0ABkxOAAZMTwAGTFEABkxSAAZMzQAGTM8ABkzRAAZM0wAGTNYABkzXAAZM2AAGTNkABkzaAAZM3AAGTN4ABkzfAAZM4AAGTOIABkzjAAZNXgAGTWAABk1jAAZNZQAGTWgABk1pAAZNagAGTWsABk1sAAZNbgAGTXAABk1xAAZNcgAGTXQABk11AAZN8AAGTfIABk30AAZN9gAGTfkABk36AAZN+wAGTfwABk39AAZN/wAGTgEABk4CAAZOAwAGTgUABk4GAAZOgQAGToMABk6FAAZOhwAGTooABk6LAAZOjAAGTo0ABk6OAAZOkAAGTpIABk6TAAZOlAAGTpYABk6XAAZPEgAGTxQABk8WAAZPGAAGTxsABk8cAAZPHQAGTx4ABk8fAAZPIQAGTyMABk8kAAZPJQAGTycABk8oAAZPuwAGT94ABk/+AAZQHgAGUCAABlAiAAZQJAAGUCYABlApAAZQKgAGUCsABlAuAAZQLwAGUDEABlAyAAZQNAAGUDcABlA4AAZQOQAGUDwABlA9AAZQRgAGUF8ABlBoAAZQagAGUGwABlB1AAZQeAAGUHsABlB9AAZQxgAGUOoABlERAAZRNQAGUTgABlE6AAZRPAAGUT4ABlFAAAZRQgAGUUMABlFGAAZRXwAGUYAABlGCAAZRhAAGUYYABlGIAAZRigAGUYwABlGOAAZRkAAGUbEABlG0AAZRtwAGUboABlG9AAZRwAAGUcMABlHGAAZRyQAGUcsABlJGAAZSSAAGUkoABlJMAAZSTwAGUlAABlJRAAZSUgAGUlMABlJVAAZSVwAGUlgABlJZAAZSWwAGUlwABlLXAAZS2QAGUtsABlLdAAZS4AAGUuEABlLiAAZS4wAGUuQABlLmAAZS6AAGUukABlLqAAZS7AAGUu0ABlNoAAZTagAGU20ABlNvAAZTcgAGU3MABlN0AAZTdQAGU3YABlN4AAZTegAGU3sABlN8AAZTfgAGU38ABlOYAAZTmQAGU5oABlOcAAZUFwAGVBkABlQbAAZUHQAGVCAABlQhAAZUIgAGVCMABlQkAAZUJgAGVCgABlQpAAZUKgAGVCwABlQtAAZUqAAGVKoABlSsAAZUrgAGVLEABlSyAAZUswAGVLQABlS1AAZUtwAGVLkABlS6AAZUuwAGVL0ABlS+AAZVOQAGVTsABlU9AAZVPwAGVUIABlVDAAZVRAAGVUUABlVGAAZVSAAGVUoABlVLAAZVTAAGVU4ABlVPAAZVygAGVcwABlXOAAZV0AAGVdMABlXUAAZV1QAGVdYABlXXAAZV2QAGVdsABlXcAAZV3QAGVd8ABlXgAAZWWwAGVl0ABlZfAAZWYQAGVmQABlZlAAZWZgAGVmcABlZoAAZWagAGVmwABlZtAAZWbgAGVnAABlZxAAZWugAGVt4ABlcFAAZXKQAGVywABlcuAAZXMAAGVzIABlc0AAZXNgAGVzcABlc6AAZXUwAGV3AABldyAAZXdAAGV3YABld4AAZXegAGV3wABld+AAZXmwAGV54ABlehAAZXpAAGV6cABleqAAZXrQAGV7AABleyAAZYLQAGWC8ABlgxAAZYMwAGWDYABlg3AAZYOAAGWDkABlg6AAZYPAAGWD4ABlg/AAZYQAAGWEIABlhDAAZYvgAGWMAABljCAAZYxAAGWMcABljIAAZYyQAGWMoABljLAAZYzQAGWM8ABljQAAZY0QAGWNMABljUAAZZTwAGWVEABllTAAZZVQAGWVgABllZAAZZWgAGWVsABllcAAZZXgAGWWAABllhAAZZYgAGWWQABlllAAZZ4AAGWeIABlnlAAZZ5wAGWeoABlnrAAZZ7AAGWe0ABlnuAAZZ8AAGWfIABlnzAAZZ9AAGWfYABln3AAZacgAGWnQABlp2AAZaeAAGWnsABlp8AAZafQAGWn4ABlp/AAZagQAGWoMABlqEAAZahQAGWocABlqIAAZbAwAGWwUABlsHAAZbCQAGWwwABlsNAAZbDgAGWw8ABlsQAAZbEgAGWxQABlsVAAZbFgAGWxgABlsZAAZblAAGW5YABluYAAZbmgAGW50ABlueAAZbnwAGW6AABluhAAZbowAGW6UABlumAAZbpwAGW6kABluqAAZcPQAGXGAABlyAAAZcoAAGXKIABlykAAZcpgAGXKgABlyrAAZcrAAGXK0ABlywAAZcsQAGXLMABly0AAZctgAGXLkABly6AAZcuwAGXL4ABly/AAZcxAAGXN0ABlzmAAZc6AAGXOoABlzzAAZc9gAGXPkABlz7AAZdRAAGXWgABl2PAAZdswAGXbYABl24AAZdugAGXbwABl2+AAZdwAAGXcEABl3EAAZd3QAGXf4ABl4AAAZeAgAGXgQABl4GAAZeCAAGXgoABl4MAAZeDgAGXi8ABl4yAAZeNQAGXjgABl47AAZePgAGXkEABl5EAAZeRwAGXkkABl7EAAZexgAGXsgABl7KAAZezQAGXs4ABl7PAAZe0AAGXtEABl7TAAZe1QAGXtYABl7XAAZe2QAGXtoABl9VAAZfVwAGX1kABl9bAAZfXgAGX18ABl9gAAZfYQAGX2IABl9kAAZfZgAGX2cABl9oAAZfagAGX2sABl/mAAZf6AAGX+sABl/tAAZf8AAGX/EABl/yAAZf8wAGX/QABl/2AAZf+AAGX/kABl/6AAZf/AAGX/0ABmAWAAZgFwAGYBgABmAaAAZglQAGYJcABmCZAAZgmwAGYJ4ABmCfAAZgoAAGYKEABmCiAAZgpAAGYKYABmCnAAZgqAAGYKoABmCrAAZhJgAGYSgABmEqAAZhLAAGYS8ABmEwAAZhMQAGYTIABmEzAAZhNQAGYTcABmE4AAZhOQAGYTsABmE8AAZhtwAGYbkABmG7AAZhvQAGYcAABmHBAAZhwgAGYcMABmHEAAZhxgAGYcgABmHJAAZhygAGYcwABmHNAAZiSAAGYkoABmJMAAZiTgAGYlEABmJSAAZiUwAGYlQABmJVAAZiVwAGYlkABmJaAAZiWwAGYl0ABmJeAAZi2QAGYtsABmLdAAZi3wAGYuIABmLjAAZi5AAGYuUABmLmAAZi6AAGYuoABmLrAAZi7AAGYu4ABmLvAAZjOAAGY1wABmODAAZjpwAGY6oABmOsAAZjrgAGY7AABmOyAAZjtAAGY7UABmO4AAZj0QAGY+4ABmPwAAZj8gAGY/QABmP2AAZj+AAGY/oABmP8AAZkGQAGZBwABmQfAAZkIgAGZCUABmQoAAZkKwAGZC4ABmQwAAZkqwAGZK0ABmSvAAZksQAGZLQABmS1AAZktgAGZLcABmS4AAZkugAGZLwABmS9AAZkvgAGZMAABmTBAAZlPAAGZT4ABmVAAAZlQgAGZUUABmVGAAZlRwAGZUgABmVJAAZlSwAGZU0ABmVOAAZlTwAGZVEABmVSAAZlzQAGZc8ABmXRAAZl0wAGZdYABmXXAAZl2AAGZdkABmXaAAZl3AAGZd4ABmXfAAZl4AAGZeIABmXjAAZmXgAGZmAABmZiAAZmZAAGZmcABmZoAAZmaQAGZmoABmZrAAZmbQAGZm8ABmZwAAZmcQAGZnMABmZ0AAZm7wAGZvEABmbzAAZm9QAGZvgABmb5AAZm+gAGZvsABmb8AAZm/gAGZwAABmcBAAZnAgAGZwQABmcFAAZngAAGZ4IABmeEAAZnhgAGZ4kABmeKAAZniwAGZ4wABmeNAAZnjwAGZ5EABmeSAAZnkwAGZ5UABmeWAAZoEQAGaBMABmgVAAZoFwAGaBoABmgbAAZoHAAGaB0ABmgeAAZoIAAGaCIABmgjAAZoJAAGaCYABmgnAAZougAGaN0ABmj9AAZpHQAGaR8ABmkhAAZpIwAGaSUABmkoAAZpKQAGaSoABmktAAZpLgAGaTAABmkxAAZpMwAGaTYABmk3AAZpOAAGaTsABmk8AAZpQQAGaVoABmljAAZpZQAGaWcABmlwAAZpcwAGaXYABml4AAZpwQAGaeUABmoMAAZqMAAGajMABmo1AAZqNwAGajkABmo7AAZqPQAGaj4ABmpBAAZqWgAGansABmp9AAZqfwAGaoEABmqDAAZqhQAGaocABmqJAAZqiwAGaqwABmqvAAZqsgAGarUABmq4AAZquwAGar4ABmrBAAZqxAAGasYABmtBAAZrQwAGa0UABmtHAAZrSgAGa0sABmtMAAZrTQAGa04ABmtQAAZrUgAGa1MABmtUAAZrVgAGa1cABmvSAAZr1AAGa9YABmvYAAZr2wAGa9wABmvdAAZr3gAGa98ABmvhAAZr4wAGa+QABmvlAAZr5wAGa+gABmxjAAZsZQAGbGgABmxqAAZsbQAGbG4ABmxvAAZscAAGbHEABmxzAAZsdQAGbHYABmx3AAZseQAGbHoABmyTAAZslAAGbJUABmyXAAZtEgAGbRQABm0WAAZtGAAGbRsABm0cAAZtHQAGbR4ABm0fAAZtIQAGbSMABm0kAAZtJQAGbScABm0oAAZtowAGbaUABm2nAAZtqQAGbawABm2tAAZtrgAGba8ABm2wAAZtsgAGbbQABm21AAZttgAGbbgABm25AAZuNAAGbjYABm44AAZuOgAGbj0ABm4+AAZuPwAGbkAABm5BAAZuQwAGbkUABm5GAAZuRwAGbkkABm5KAAZuxQAGbscABm7JAAZuywAGbs4ABm7PAAZu0AAGbtEABm7SAAZu1AAGbtYABm7XAAZu2AAGbtoABm7bAAZvVgAGb1gABm9aAAZvXAAGb18ABm9gAAZvYQAGb2IABm9jAAZvZQAGb2cABm9oAAZvaQAGb2sABm9sAAZvtQAGb9kABnAAAAZwJAAGcCcABnApAAZwKwAGcC0ABnAvAAZwMQAGcDIABnA1AAZwTgAGcGsABnBtAAZwbwAGcHEABnBzAAZwdQAGcHcABnB5AAZwlgAGcJkABnCcAAZwnwAGcKIABnClAAZwqAAGcKsABnCtAAZxKAAGcSoABnEsAAZxLgAGcTEABnEyAAZxMwAGcTQABnE1AAZxNwAGcTkABnE6AAZxOwAGcT0ABnE+AAZxuQAGcbsABnG9AAZxvwAGccIABnHDAAZxxAAGccUABnHGAAZxyAAGccoABnHLAAZxzAAGcc4ABnHPAAZySgAGckwABnJOAAZyUAAGclMABnJUAAZyVQAGclYABnJXAAZyWQAGclsABnJcAAZyXQAGcl8ABnJgAAZy2wAGct0ABnLgAAZy4gAGcuUABnLmAAZy5wAGcugABnLpAAZy6wAGcu0ABnLuAAZy7wAGcvEABnLyAAZzbQAGc28ABnNxAAZzcwAGc3YABnN3AAZzeAAGc3kABnN6AAZzfAAGc34ABnN/AAZzgAAGc4IABnODAAZz/gAGdAAABnQCAAZ0BAAGdAcABnQIAAZ0CQAGdAoABnQLAAZ0DQAGdA8ABnQQAAZ0EQAGdBMABnQUAAZ0jwAGdJEABnSTAAZ0lQAGdJgABnSZAAZ0mgAGdJsABnScAAZ0ngAGdKAABnShAAZ0ogAGdKQABnSlAAZ1OAAGdVsABnV7AAZ1mwAGdZ0ABnWfAAZ1oQAGdaMABnWmAAZ1pwAGdagABnWrAAZ1rAAGda4ABnWvAAZ1sQAGdbQABnW1AAZ1tgAGdbkABnW6AAZ1wwAGddwABnXlAAZ15wAGdekABnXyAAZ19QAGdfgABnX6AAZ2QwAGdmcABnaOAAZ2sgAGdrUABna3AAZ2uQAGdrsABna9AAZ2vwAGdsAABnbDAAZ23AAGdv0ABnb/AAZ3AQAGdwMABncFAAZ3BwAGdwkABncLAAZ3DQAGdy4ABncxAAZ3NAAGdzcABnc6AAZ3PQAGd0AABndDAAZ3RgAGd0gABnfDAAZ3xQAGd8cABnfJAAZ3zAAGd80ABnfOAAZ3zwAGd9AABnfSAAZ31AAGd9UABnfWAAZ32AAGd9kABnhUAAZ4VgAGeFgABnhaAAZ4XQAGeF4ABnhfAAZ4YAAGeGEABnhjAAZ4ZQAGeGYABnhnAAZ4aQAGeGoABnjlAAZ45wAGeOoABnjsAAZ47wAGePAABnjxAAZ48gAGePMABnj1AAZ49wAGePgABnj5AAZ4+wAGePwABnkVAAZ5FgAGeRcABnkZAAZ5lAAGeZYABnmYAAZ5mgAGeZ0ABnmeAAZ5nwAGeaAABnmhAAZ5owAGeaUABnmmAAZ5pwAGeakABnmqAAZ6JQAGeicABnopAAZ6KwAGei4ABnovAAZ6MAAGejEABnoyAAZ6NAAGejYABno3AAZ6OAAGejoABno7AAZ6tgAGergABnq6AAZ6vAAGer8ABnrAAAZ6wQAGesIABnrDAAZ6xQAGescABnrIAAZ6yQAGessABnrMAAZ7RwAGe0kABntLAAZ7TQAGe1AABntRAAZ7UgAGe1MABntUAAZ7VgAGe1gABntZAAZ7WgAGe1wABntdAAZ72AAGe9oABnvcAAZ73gAGe+EABnviAAZ74wAGe+QABnvlAAZ75wAGe+kABnvqAAZ76wAGe+0ABnvuAAZ8NwAGfFsABnyCAAZ8pgAGfKkABnyrAAZ8rQAGfK8ABnyxAAZ8swAGfLQABny3AAZ80AAGfO0ABnzvAAZ88QAGfPMABnz1AAZ89wAGfPkABnz7AAZ9GAAGfRsABn0eAAZ9IQAGfSQABn0nAAZ9KgAGfS0ABn0vAAZ9qgAGfawABn2uAAZ9sAAGfbMABn20AAZ9tQAGfbYABn23AAZ9uQAGfbsABn28AAZ9vQAGfb8ABn3AAAZ+OwAGfj0ABn4/AAZ+QQAGfkQABn5FAAZ+RgAGfkcABn5IAAZ+SgAGfkwABn5NAAZ+TgAGflAABn5RAAZ+zAAGfs4ABn7QAAZ+0gAGftUABn7WAAZ+1wAGftgABn7ZAAZ+2wAGft0ABn7eAAZ+3wAGfuEABn7iAAZ/XQAGf18ABn9hAAZ/YwAGf2YABn9nAAZ/aAAGf2kABn9qAAZ/bAAGf24ABn9vAAZ/cAAGf3IABn9zAAZ/7gAGf/AABn/yAAZ/9AAGf/cABn/4AAZ/+QAGf/oABn/7AAZ//QAGf/8ABoAAAAaAAQAGgAMABoAEAAaAfwAGgIEABoCDAAaAhQAGgIgABoCJAAaAigAGgIsABoCMAAaAjgAGgJAABoCRAAaAkgAGgJQABoCVAAaBEAAGgRIABoEUAAaBFgAGgRkABoEaAAaBGwAGgRwABoEdAAaBHwAGgSEABoEiAAaBIwAGgSUABoEmAAaBuQAGgdwABoH8AAaCHAAGgh4ABoIgAAaCIgAGgiQABoInAAaCKAAGgikABoIsAAaCLQAGgi8ABoIwAAaCMgAGgjUABoI2AAaCNwAGgjoABoI7AAaCQAAGglkABoJiAAaCZAAGgmYABoJvAAaCcgAGgnUABoJ3AAaCwAAGguQABoMLAAaDLwAGgzIABoM0AAaDNgAGgzgABoM6AAaDPAAGgz0ABoNAAAaDWQAGg3oABoN8AAaDfgAGg4AABoOCAAaDhAAGg4YABoOIAAaDigAGg6sABoOuAAaDsQAGg7QABoO3AAaDugAGg70ABoPAAAaDwwAGg8UABoRAAAaEQgAGhEQABoRGAAaESQAGhEoABoRLAAaETAAGhE0ABoRPAAaEUQAGhFIABoRTAAaEVQAGhFYABoTRAAaE0wAGhNUABoTXAAaE2gAGhNsABoTcAAaE3QAGhN4ABoTgAAaE4gAGhOMABoTkAAaE5gAGhOcABoViAAaFZAAGhWcABoVpAAaFbAAGhW0ABoVuAAaFbwAGhXAABoVyAAaFdAAGhXUABoV2AAaFeAAGhXkABoWSAAaFkwAGhZQABoWWAAaGEQAGhhMABoYVAAaGFwAGhhoABoYbAAaGHAAGhh0ABoYeAAaGIAAGhiIABoYjAAaGJAAGhiYABoYnAAaGogAGhqQABoamAAaGqAAGhqsABoasAAaGrQAGhq4ABoavAAaGsQAGhrMABoa0AAaGtQAGhrcABoa4AAaHMwAGhzUABoc3AAaHOQAGhzwABoc9AAaHPgAGhz8ABodAAAaHQgAGh0QABodFAAaHRgAGh0gABodJAAaHxAAGh8YABofIAAaHygAGh80ABofOAAaHzwAGh9AABofRAAaH0wAGh9UABofWAAaH1wAGh9kABofaAAaIVQAGiFcABohZAAaIWwAGiF4ABohfAAaIYAAGiGEABohiAAaIZAAGiGYABohnAAaIaAAGiGoABohrAAaItAAGiNgABoj/AAaJIwAGiSYABokoAAaJKgAGiSwABokuAAaJMAAGiTEABok0AAaJTQAGiWoABolsAAaJbgAGiXAABolyAAaJdAAGiXYABol4AAaJlQAGiZgABombAAaJngAGiaEABomkAAaJpwAGiaoABomsAAaKJwAGiikABoorAAaKLQAGijAABooxAAaKMgAGijMABoo0AAaKNgAGijgABoo5AAaKOgAGijwABoo9AAaKuAAGiroABoq8AAaKvgAGisEABorCAAaKwwAGisQABorFAAaKxwAGiskABorKAAaKywAGis0ABorOAAaLSQAGi0sABotNAAaLTwAGi1IABotTAAaLVAAGi1UABotWAAaLWAAGi1oABotbAAaLXAAGi14ABotfAAaL2gAGi9wABoveAAaL4AAGi+MABovkAAaL5QAGi+YABovnAAaL6QAGi+sABovsAAaL7QAGi+8ABovwAAaMawAGjG0ABoxvAAaMcQAGjHQABox1AAaMdgAGjHcABox4AAaMegAGjHwABox9AAaMfgAGjIAABoyBAAaM/AAGjP4ABo0AAAaNAgAGjQUABo0GAAaNBwAGjQgABo0JAAaNCwAGjQ0ABo0OAAaNDwAGjREABo0SAAaNjQAGjY8ABo2RAAaNkwAGjZYABo2XAAaNmAAGjZkABo2aAAaNnAAGjZ4ABo2fAAaNoAAGjaIABo2jAAaNtAAGjbUABo23AAaOMgAGjjQABo42AAaOOAAGjjsABo48AAaOPQAGjj4ABo4/AAaOQQAGjkMABo5EAAaORQAGjkcABo5IAAaOwwAGjsUABo7HAAaOyQAGjswABo7NAAaOzgAGjs8ABo7QAAaO0gAGjtQABo7VAAaO1gAGjtgABo7ZAAaPVAAGj1YABo9ZAAaPWwAGj14ABo9fAAaPYAAGj2EABo9iAAaPZAAGj2YABo9nAAaPaAAGj2oABo9rAAaP/gAGkCEABpBBAAaQYQAGkGMABpBlAAaQZwAGkGkABpBsAAaQbQAGkG4ABpBxAAaQcgAGkHQABpB1AAaQdwAGkHoABpB7AAaQfAAGkH8ABpCAAAaQhQAGkJ4ABpCnAAaQqQAGkKsABpC0AAaQtwAGkLoABpC8AAaRBQAGkSkABpFQAAaRdAAGkXcABpF5AAaRewAGkX0ABpF/AAaRgQAGkYIABpGFAAaRngAGkb8ABpHBAAaRwwAGkcUABpHHAAaRyQAGkcsABpHNAAaRzwAGkfAABpHzAAaR9gAGkfkABpH8AAaR/wAGkgIABpIFAAaSCAAGkgoABpKFAAaShwAGkokABpKLAAaSjgAGko8ABpKQAAaSkQAGkpIABpKUAAaSlgAGkpcABpKYAAaSmgAGkpsABpMWAAaTGAAGkxoABpMcAAaTHwAGkyAABpMhAAaTIgAGkyMABpMlAAaTJwAGkygABpMpAAaTKwAGkywABpOnAAaTqQAGk6wABpOuAAaTsQAGk7IABpOzAAaTtAAGk7UABpO3AAaTuQAGk7oABpO7AAaTvQAGk74ABpPXAAaT2AAGk9kABpPbAAaUVgAGlFgABpRaAAaUXAAGlF8ABpRgAAaUYQAGlGIABpRjAAaUZQAGlGcABpRoAAaUaQAGlGsABpRsAAaU5wAGlOkABpTrAAaU7QAGlPAABpTxAAaU8gAGlPMABpT0AAaU9gAGlPgABpT5AAaU+gAGlPwABpT9AAaVeAAGlXoABpV8AAaVfgAGlYEABpWCAAaVgwAGlYQABpWFAAaVhwAGlYkABpWKAAaViwAGlY0ABpWOAAaWCQAGlgsABpYNAAaWDwAGlhIABpYTAAaWFAAGlhUABpYWAAaWGAAGlhoABpYbAAaWHAAGlh4ABpYfAAaWmgAGlpwABpaeAAaWoAAGlqMABpakAAaWpQAGlqYABpanAAaWqQAGlqsABpasAAaWrQAGlq8ABpawAAaW+QAGlx0ABpdEAAaXaAAGl2sABpdtAAaXbwAGl3EABpdzAAaXdQAGl3YABpd5AAaXkgAGl68ABpexAAaXswAGl7UABpe3AAaXuQAGl7sABpe9AAaX2gAGl90ABpfgAAaX4wAGl+YABpfpAAaX7AAGl+8ABpfxAAaYbAAGmG4ABphwAAaYcgAGmHUABph2AAaYdwAGmHgABph5AAaYewAGmH0ABph+AAaYfwAGmIEABpiCAAaY/QAGmP8ABpkBAAaZAwAGmQYABpkHAAaZCAAGmQkABpkKAAaZDAAGmQ4ABpkPAAaZEAAGmRIABpkTAAaZjgAGmZAABpmSAAaZlAAGmZcABpmYAAaZmQAGmZoABpmbAAaZnQAGmZ8ABpmgAAaZoQAGmaMABpmkAAaaHwAGmiEABpojAAaaJQAGmigABpopAAaaKgAGmisABposAAaaLgAGmjAABpoxAAaaMgAGmjQABpo1AAaasAAGmrIABpq0AAaatgAGmrkABpq6AAaauwAGmrwABpq9AAaavwAGmsEABprCAAaawwAGmsUABprGAAabQQAGm0MABptFAAabRwAGm0oABptLAAabTAAGm00ABptOAAabUAAGm1IABptTAAabVAAGm1YABptXAAab0gAGm9QABpvWAAab2AAGm9sABpvcAAab3QAGm94ABpvfAAab4QAGm+MABpvkAAab5QAGm+cABpvoAAab+QAGm/4ABpwBAAacAwAGnDwABpw/AAacQQAGnEQABpxHAAacSgAGnE0ABpxSAAaczQAGnM8ABpzRAAac0wAGnNYABpzXAAac2AAGnNkABpzaAAac3AAGnN4ABpzfAAac4AAGnOIABpzjAAadXgAGnWAABp1iAAadZAAGnWcABp1oAAadaQAGnWoABp1rAAadbQAGnW8ABp1wAAadcQAGnXMABp10AAad7wAGnfEABp30AAad9gAGnfkABp36AAad+wAGnfwABp39AAad/wAGngEABp4CAAaeAwAGngUABp4GAAaeFwAGnhwABp4fAAaeIQAGnioABp6lAAaepwAGnqkABp6rAAaergAGnq8ABp6wAAaesQAGnrIABp60AAaetgAGnrcABp64AAaeugAGnrsABp82AAafOAAGnzoABp88AAafPwAGn0AABp9BAAafQgAGn0MABp9FAAafRwAGn0gABp9JAAafSwAGn0wABp/HAAafyQAGn8wABp/OAAaf0QAGn9IABp/TAAaf1AAGn9UABp/XAAaf2QAGn9oABp/bAAaf3QAGn94ABqBxAAaglAAGoLQABqDUAAag1gAGoNgABqDaAAag3AAGoN8ABqDgAAag4QAGoOQABqDlAAag5wAGoOgABqDqAAag7QAGoO4ABqDvAAag8gAGoPMABqD4AAahEQAGoRoABqEcAAahHgAGoScABqEqAAahLQAGoS8ABqF4AAahnAAGocMABqHnAAah6gAGoewABqHuAAah8AAGofIABqH0AAah9QAGofgABqIRAAaiMgAGojQABqI2AAaiOAAGojoABqI8AAaiPgAGokAABqJCAAaiYwAGomYABqJpAAaibAAGom8ABqJyAAaidQAGongABqJ7AAaifQAGovgABqL6AAai/AAGov4ABqMBAAajAgAGowMABqMEAAajBQAGowcABqMJAAajCgAGowsABqMNAAajDgAGo4kABqOLAAajjQAGo48ABqOSAAajkwAGo5QABqOVAAajlgAGo5gABqOaAAajmwAGo5wABqOeAAajnwAGpBoABqQcAAakHwAGpCEABqQkAAakJQAGpCYABqQnAAakKAAGpCoABqQsAAakLQAGpC4ABqQwAAakMQAGpEoABqRLAAakTAAGpE4ABqTJAAakywAGpM0ABqTPAAak0gAGpNMABqTUAAak1QAGpNYABqTYAAak2gAGpNsABqTcAAak3gAGpN8ABqVaAAalXAAGpV4ABqVgAAalYwAGpWQABqVlAAalZgAGpWcABqVpAAalawAGpWwABqVtAAalbwAGpXAABqXrAAal7QAGpe8ABqXxAAal9AAGpfUABqX2AAal9wAGpfgABqX6AAal/AAGpf0ABqX+AAamAAAGpgEABqZ8AAamfgAGpoAABqaCAAamhQAGpoYABqaHAAamiAAGpokABqaLAAamjQAGpo4ABqaPAAamkQAGppIABqcNAAanDwAGpxEABqcTAAanFgAGpxcABqcYAAanGQAGpxoABqccAAanHgAGpx8ABqcgAAanIgAGpyMABqdsAAankAAGp7cABqfbAAan3gAGp+AABqfiAAan5AAGp+YABqfoAAan6QAGp+wABqgFAAaoIgAGqCQABqgmAAaoKAAGqCoABqgsAAaoLgAGqDAABqhNAAaoUAAGqFMABqhWAAaoWQAGqFwABqhfAAaoYgAGqGQABqjfAAao4QAGqOMABqjlAAao6AAGqOkABqjqAAao6wAGqOwABqjuAAao8AAGqPEABqjyAAao9AAGqPUABqlwAAapcgAGqXQABql2AAapeQAGqXoABql7AAapfAAGqX0ABql/AAapgQAGqYIABqmDAAaphQAGqYYABqoBAAaqAwAGqgUABqoHAAaqCgAGqgsABqoMAAaqDQAGqg4ABqoQAAaqEgAGqhMABqoUAAaqFgAGqhcABqqSAAaqlAAGqpYABqqYAAaqmwAGqpwABqqdAAaqngAGqp8ABqqhAAaqowAGqqQABqqlAAaqpwAGqqgABqsjAAarJQAGqycABqspAAarLAAGqy0ABqsuAAarLwAGqzAABqsyAAarNAAGqzUABqs2AAarOAAGqzkABqu0AAartgAGq7gABqu6AAarvQAGq74ABqu/AAarwAAGq8EABqvDAAarxQAGq8YABqvHAAaryQAGq8oABqxFAAasRwAGrEkABqxLAAasTgAGrE8ABqxQAAasUQAGrFIABqxUAAasVgAGrFcABqxYAAasWgAGrFsABqzuAAatEQAGrTEABq1RAAatUwAGrVUABq1XAAatWQAGrVwABq1dAAatXgAGrWEABq1iAAatZAAGrWUABq1nAAatagAGrWsABq1sAAatbwAGrXAABq11AAatjgAGrZcABq2ZAAatmwAGraQABq2nAAatqgAGrawABq31AAauGQAGrkAABq5kAAauZwAGrmkABq5rAAaubQAGrm8ABq5xAAaucgAGrnUABq6OAAaurwAGrrEABq6zAAautQAGrrcABq65AAauuwAGrr0ABq6/AAau4AAGruMABq7mAAau6QAGruwABq7vAAau8gAGrvUABq74AAau+gAGr3UABq93AAaveQAGr3sABq9+AAavfwAGr4AABq+BAAavggAGr4QABq+GAAavhwAGr4gABq+KAAaviwAGsAYABrAIAAawCgAGsAwABrAPAAawEAAGsBEABrASAAawEwAGsBUABrAXAAawGAAGsBkABrAbAAawHAAGsJcABrCZAAawnAAGsJ4ABrChAAawogAGsKMABrCkAAawpQAGsKcABrCpAAawqgAGsKsABrCtAAawrgAGsMcABrDIAAawyQAGsMsABrFGAAaxSAAGsUoABrFMAAaxTwAGsVAABrFRAAaxUgAGsVMABrFVAAaxVwAGsVgABrFZAAaxWwAGsVwABrHXAAax2QAGsdsABrHdAAax4AAGseEABrHiAAax4wAGseQABrHmAAax6AAGsekABrHqAAax7AAGse0ABrJoAAayagAGsmwABrJuAAaycQAGsnIABrJzAAaydAAGsnUABrJ3AAayeQAGsnoABrJ7AAayfQAGsn4ABrL5AAay+wAGsv0ABrL/AAazAgAGswMABrMEAAazBQAGswYABrMIAAazCgAGswsABrMMAAazDgAGsw8ABrOKAAazjAAGs44ABrOQAAazkwAGs5QABrOVAAazlgAGs5cABrOZAAazmwAGs5wABrOdAAaznwAGs6AABrPpAAa0DQAGtDQABrRYAAa0WwAGtF0ABrRfAAa0YQAGtGMABrRlAAa0ZgAGtGkABrSCAAa0nwAGtKEABrSjAAa0pQAGtKcABrSpAAa0qwAGtK0ABrTKAAa0zQAGtNAABrTTAAa01gAGtNkABrTcAAa03wAGtOEABrVcAAa1XgAGtWAABrViAAa1ZQAGtWYABrVnAAa1aAAGtWkABrVrAAa1bQAGtW4ABrVvAAa1cQAGtXIABrXtAAa17wAGtfEABrXzAAa19gAGtfcABrX4AAa1+QAGtfoABrX8AAa1/gAGtf8ABrYAAAa2AgAGtgMABrZ+AAa2gAAGtoIABraEAAa2hwAGtogABraJAAa2igAGtosABraNAAa2jwAGtpAABraRAAa2kwAGtpQABrcPAAa3EQAGtxMABrcVAAa3GAAGtxkABrcaAAa3GwAGtxwABrceAAa3IAAGtyEABrciAAa3JAAGtyUABregAAa3ogAGt6QABremAAa3qQAGt6oABrerAAa3rAAGt60ABrevAAa3sQAGt7IABrezAAa3tQAGt7YABrgxAAa4MwAGuDUABrg3AAa4OgAGuDsABrg8AAa4PQAGuD4ABrhAAAa4QgAGuEMABrhEAAa4RgAGuEcABrjCAAa4xAAGuMYABrjIAAa4ywAGuMwABrjNAAa4zgAGuM8ABrjRAAa40wAGuNQABrjVAAa41wAGuNgABrlrAAa5jgAGua4ABrnOAAa50AAGudIABrnUAAa51gAGudkABrnaAAa52wAGud4ABrnfAAa54QAGueIABrnlAAa56AAGuekABrnqAAa57QAGue4ABrnzAAa6DAAGuhUABroXAAa6GQAGuiIABrolAAa6KAAGuioABrpzAAa6lwAGur4ABrriAAa65QAGuucABrrpAAa66wAGuu0ABrrvAAa68AAGuvMABrsMAAa7LQAGuy8ABrsxAAa7MwAGuzUABrs3AAa7OQAGuzsABrs9AAa7XgAGu2EABrtkAAa7ZwAGu2oABrttAAa7cAAGu3MABrt2AAa7eAAGu/MABrv1AAa79wAGu/kABrv8AAa7/QAGu/4ABrv/AAa8AAAGvAIABrwEAAa8BQAGvAYABrwIAAa8CQAGvIQABryGAAa8iAAGvIoABryNAAa8jgAGvI8ABryQAAa8kQAGvJMABryVAAa8lgAGvJcABryZAAa8mgAGvRUABr0XAAa9GgAGvRwABr0fAAa9IAAGvSEABr0iAAa9IwAGvSUABr0nAAa9KAAGvSkABr0rAAa9LAAGvUUABr1GAAa9RwAGvUkABr3EAAa9xgAGvcgABr3KAAa9zQAGvc4ABr3PAAa90AAGvdEABr3TAAa91QAGvdYABr3XAAa92QAGvdoABr5VAAa+VwAGvlkABr5bAAa+XgAGvl8ABr5gAAa+YQAGvmIABr5kAAa+ZgAGvmcABr5oAAa+agAGvmsABr7mAAa+6AAGvuoABr7sAAa+7wAGvvAABr7xAAa+8gAGvvMABr71AAa+9wAGvvgABr75AAa++wAGvvwABr93AAa/eQAGv3sABr99AAa/gAAGv4EABr+CAAa/gwAGv4QABr+GAAa/iAAGv4kABr+KAAa/jAAGv40ABsAIAAbACgAGwAwABsAOAAbAEQAGwBIABsATAAbAFAAGwBUABsAXAAbAGQAGwBoABsAbAAbAHQAGwB4ABsBnAAbAiwAGwLIABsDWAAbA2QAGwNsABsDdAAbA3wAGwOEABsDjAAbA5AAGwOcABsEAAAbBHQAGwR8ABsEhAAbBIwAGwSUABsEnAAbBKQAGwSsABsFIAAbBSwAGwU4ABsFRAAbBVAAGwVcABsFaAAbBXQAGwV8ABsHaAAbB3AAGwd4ABsHgAAbB4wAGweQABsHlAAbB5gAGwecABsHpAAbB6wAGwewABsHtAAbB7wAGwfAABsJrAAbCbQAGwm8ABsJxAAbCdAAGwnUABsJ2AAbCdwAGwngABsJ6AAbCfAAGwn0ABsJ+AAbCgAAGwoEABsL8AAbC/gAGwwAABsMCAAbDBQAGwwYABsMHAAbDCAAGwwkABsMLAAbDDQAGww4ABsMPAAbDEQAGwxIABsONAAbDjwAGw5IABsOUAAbDlwAGw5gABsOZAAbDmgAGw5sABsOdAAbDnwAGw6AABsOhAAbDowAGw6QABsQfAAbEIQAGxCMABsQlAAbEKAAGxCkABsQqAAbEKwAGxCwABsQuAAbEMAAGxDEABsQyAAbENAAGxDUABsSwAAbEsgAGxLQABsS2AAbEuQAGxLoABsS7AAbEvAAGxL0ABsS/AAbEwQAGxMIABsTDAAbExQAGxMYABsVBAAbFQwAGxUYABsVIAAbFSwAGxUwABsVNAAbFTgAGxU8ABsVRAAbFUwAGxVQABsVVAAbFVwAGxVgABsXrAAbGDgAGxi4ABsZOAAbGUAAGxlIABsZUAAbGVgAGxlkABsZaAAbGWwAGxl4ABsZfAAbGYQAGxmIABsZlAAbGaAAGxmkABsZqAAbGbQAGxm4ABsZzAAbGjAAGxpUABsaXAAbGmQAGxqIABsalAAbGqAAGxqoABsbzAAbHFwAGxz4ABsdiAAbHZQAGx2cABsdpAAbHawAGx20ABsdvAAbHcAAGx3MABseMAAbHrQAGx68ABsexAAbHswAGx7UABse3AAbHuQAGx7sABse9AAbH3gAGx+EABsfkAAbH5wAGx+oABsftAAbH8AAGx/MABsf2AAbH+AAGyHMABsh1AAbIdwAGyHkABsh8AAbIfQAGyH4ABsh/AAbIgAAGyIIABsiEAAbIhQAGyIYABsiIAAbIiQAGyQQABskGAAbJCAAGyQoABskNAAbJDgAGyQ8ABskQAAbJEQAGyRMABskVAAbJFgAGyRcABskZAAbJGgAGyZUABsmXAAbJmgAGyZwABsmfAAbJoAAGyaEABsmiAAbJowAGyaUABsmnAAbJqAAGyakABsmrAAbJrAAGycUABsnGAAbJxwAGyckABspEAAbKRgAGykgABspKAAbKTQAGyk4ABspPAAbKUAAGylEABspTAAbKVQAGylYABspXAAbKWQAGyloABsrVAAbK1wAGytkABsrbAAbK3gAGyt8ABsrgAAbK4QAGyuIABsrkAAbK5gAGyucABsroAAbK6gAGyusABstmAAbLaAAGy2oABstsAAbLbwAGy3AABstxAAbLcgAGy3MABst1AAbLdwAGy3gABst5AAbLewAGy3wABsv3AAbL+QAGy/sABsv9AAbMAAAGzAEABswCAAbMAwAGzAQABswGAAbMCAAGzAkABswKAAbMDAAGzA0ABsyIAAbMigAGzIwABsyOAAbMkQAGzJIABsyTAAbMlAAGzJUABsyXAAbMmQAGzJoABsybAAbMnQAGzJ4ABsznAAbNCwAGzTIABs1WAAbNWQAGzVsABs1dAAbNXwAGzWEABs1jAAbNZAAGzWcABs2AAAbNnQAGzZ8ABs2hAAbNowAGzaUABs2nAAbNqQAGzasABs3IAAbNywAGzc4ABs3RAAbN1AAGzdcABs3aAAbN3QAGzd8ABs5aAAbOXAAGzl4ABs5gAAbOYwAGzmQABs5lAAbOZgAGzmcABs5pAAbOawAGzmwABs5tAAbObwAGznAABs7rAAbO7QAGzu8ABs7xAAbO9AAGzvUABs72AAbO9wAGzvgABs76AAbO/AAGzv0ABs7+AAbPAAAGzwEABs98AAbPfgAGz4AABs+CAAbPhQAGz4YABs+HAAbPiAAGz4kABs+LAAbPjQAGz44ABs+PAAbPkQAGz5IABtANAAbQDwAG0BIABtAUAAbQFwAG0BgABtAZAAbQGgAG0BsABtAdAAbQHwAG0CAABtAhAAbQIwAG0CQABtCfAAbQoQAG0KMABtClAAbQqAAG0KkABtCqAAbQqwAG0KwABtCuAAbQsAAG0LEABtCyAAbQtAAG0LUABtEwAAbRMgAG0TQABtE2AAbROQAG0ToABtE7AAbRPAAG0T0ABtE/AAbRQQAG0UIABtFDAAbRRQAG0UYABtHBAAbRwwAG0cYABtHIAAbRywAG0cwABtHNAAbRzgAG0c8ABtHRAAbR0wAG0dQABtHVAAbR1wAG0dgABtJrAAbSjgAG0q4ABtLOAAbS0AAG0tIABtLUAAbS1gAG0tkABtLaAAbS2wAG0t4ABtLfAAbS4QAG0uIABtLkAAbS5wAG0ugABtLpAAbS7AAG0u0ABtLyAAbTCwAG0xQABtMWAAbTGAAG0yEABtMkAAbTJwAG0ykABtNyAAbTlgAG070ABtPhAAbT5AAG0+YABtPoAAbT6gAG0+wABtPuAAbT7wAG0/IABtQLAAbULAAG1C4ABtQwAAbUMgAG1DQABtQ2AAbUOAAG1DoABtQ8AAbUXQAG1GAABtRjAAbUZgAG1GkABtRsAAbUbwAG1HIABtR1AAbUdwAG1PIABtT0AAbU9gAG1PgABtT7AAbU/AAG1P0ABtT+AAbU/wAG1QEABtUDAAbVBAAG1QUABtUHAAbVCAAG1YMABtWFAAbVhwAG1YkABtWMAAbVjQAG1Y4ABtWPAAbVkAAG1ZIABtWUAAbVlQAG1ZYABtWYAAbVmQAG1hQABtYWAAbWGQAG1hsABtYeAAbWHwAG1iAABtYhAAbWIgAG1iQABtYmAAbWJwAG1igABtYqAAbWKwAG1kQABtZFAAbWRgAG1kgABtbDAAbWxQAG1scABtbJAAbWzAAG1s0ABtbOAAbWzwAG1tAABtbSAAbW1AAG1tUABtbWAAbW2AAG1tkABtdUAAbXVgAG11gABtdaAAbXXQAG114ABtdfAAbXYAAG12EABtdjAAbXZQAG12YABtdnAAbXaQAG12oABtflAAbX5wAG1+kABtfrAAbX7gAG1+8ABtfwAAbX8QAG1/IABtf0AAbX9gAG1/cABtf4AAbX+gAG1/sABth2AAbYeAAG2HoABth8AAbYfwAG2IAABtiBAAbYggAG2IMABtiFAAbYhwAG2IgABtiJAAbYiwAG2IwABtkHAAbZCQAG2QsABtkNAAbZEAAG2REABtkSAAbZEwAG2RQABtkWAAbZGAAG2RkABtkaAAbZHAAG2R0ABtlmAAbZigAG2bEABtnVAAbZ2AAG2doABtncAAbZ3gAG2eAABtniAAbZ4wAG2eYABtn/AAbaHAAG2h4ABtogAAbaIgAG2iQABtomAAbaKAAG2ioABtpHAAbaSgAG2k0ABtpQAAbaUwAG2lYABtpZAAbaXAAG2l4ABtrZAAba2wAG2t0ABtrfAAba4gAG2uMABtrkAAba5QAG2uYABtroAAba6gAG2usABtrsAAba7gAG2u8ABttqAAbbbAAG224ABttwAAbbcwAG23QABtt1AAbbdgAG23cABtt5AAbbewAG23wABtt9AAbbfwAG24AABtv7AAbb/QAG2/8ABtwBAAbcBAAG3AUABtwGAAbcBwAG3AgABtwKAAbcDAAG3A0ABtwOAAbcEAAG3BEABtyMAAbcjgAG3JEABtyTAAbclgAG3JcABtyYAAbcmQAG3JoABtycAAbcngAG3J8ABtygAAbcogAG3KMABt0eAAbdIAAG3SIABt0kAAbdJwAG3SgABt0pAAbdKgAG3SsABt0tAAbdLwAG3TAABt0xAAbdMwAG3TQABt2vAAbdsQAG3bMABt21AAbduAAG3bkABt26AAbduwAG3bwABt2+AAbdwAAG3cEABt3CAAbdxAAG3cUABt5AAAbeQgAG3kQABt5GAAbeSQAG3koABt5LAAbeTAAG3k0ABt5PAAbeUQAG3lIABt5TAAbeVQAG3lYABt7pAAbfDAAG3ywABt9MAAbfTgAG31AABt9SAAbfVAAG31cABt9YAAbfWQAG31wABt9dAAbfXwAG32AABt9iAAbfZQAG32YABt9nAAbfagAG32sABt9wAAbfiQAG35IABt+UAAbflgAG358ABt+iAAbfpQAG36cABt/wAAbgFAAG4DsABuBfAAbgYgAG4GQABuBmAAbgaAAG4GoABuBsAAbgbQAG4HAABuCJAAbgqgAG4KwABuCuAAbgsAAG4LIABuC0AAbgtgAG4LgABuC6AAbg2wAG4N4ABuDhAAbg5AAG4OcABuDqAAbg7QAG4PAABuDzAAbg9QAG4XAABuFyAAbhdAAG4XYABuF5AAbhegAG4XsABuF8AAbhfQAG4X8ABuGBAAbhggAG4YMABuGFAAbhhgAG4gEABuIDAAbiBQAG4gcABuIKAAbiCwAG4gwABuINAAbiDgAG4hAABuISAAbiEwAG4hQABuIWAAbiFwAG4pIABuKUAAbilwAG4pkABuKcAAbinQAG4p4ABuKfAAbioAAG4qIABuKkAAbipQAG4qYABuKoAAbiqQAG4sIABuLDAAbixAAG4sYABuNBAAbjQwAG40UABuNHAAbjSgAG40sABuNMAAbjTQAG404ABuNQAAbjUgAG41MABuNUAAbjVgAG41cABuPSAAbj1AAG49YABuPYAAbj2wAG49wABuPdAAbj3gAG498ABuPhAAbj4wAG4+QABuPlAAbj5wAG4+gABuRjAAbkZQAG5GcABuRpAAbkbAAG5G0ABuRuAAbkbwAG5HAABuRyAAbkdAAG5HUABuR2AAbkeAAG5HkABuT0AAbk9gAG5PgABuT6AAbk/QAG5P4ABuT/AAblAAAG5QEABuUDAAblBQAG5QYABuUHAAblCQAG5QoABuWFAAblhwAG5YkABuWLAAbljgAG5Y8ABuWQAAblkQAG5ZIABuWUAAbllgAG5ZcABuWYAAblmgAG5ZsABuXkAAbmCAAG5i8ABuZTAAbmVgAG5lgABuZaAAbmXAAG5l4ABuZgAAbmYQAG5mQABuZ9AAbmmgAG5pwABuaeAAbmoAAG5qIABuakAAbmpgAG5qgABubFAAbmyAAG5ssABubOAAbm0QAG5tQABubXAAbm2gAG5twABudXAAbnWQAG51wABudeAAbnYQAG52IABudjAAbnZAAG52UABudnAAbnaQAG52oABudrAAbnbQAG524ABufpAAbn6wAG5+0ABufvAAbn8gAG5/MABuf0AAbn9QAG5/YABuf4AAbn+gAG5/sABuf8AAbn/gAG5/8ABuh6AAbofAAG6H4ABuiAAAbogwAG6IQABuiFAAbohgAG6IcABuiJAAboiwAG6IwABuiNAAbojwAG6JAABukLAAbpDQAG6RAABukSAAbpFQAG6RYABukXAAbpGAAG6RkABukbAAbpHQAG6R4ABukfAAbpIQAG6SIABumdAAbpnwAG6aEABumjAAbppgAG6acABumoAAbpqQAG6aoABumsAAbprgAG6a8ABumwAAbpsgAG6bMABuouAAbqMAAG6jIABuo0AAbqNwAG6jgABuo5AAbqOgAG6jsABuo9AAbqPwAG6kAABupBAAbqQwAG6kQABuq/AAbqwQAG6sMABurFAAbqyAAG6skABurKAAbqywAG6swABurOAAbq0AAG6tEABurSAAbq1AAG6tUAButoAAbriwAG66sABuvLAAbrzQAG688ABuvRAAbr0wAG69YABuvXAAbr2AAG69sABuvcAAbr3gAG698ABuviAAbr5QAG6+YABuvnAAbr6gAG6+sABuvwAAbsCQAG7BIABuwUAAbsFgAG7B8ABuwiAAbsJQAG7CcABuxwAAbslAAG7LsABuzfAAbs4gAG7OQABuzmAAbs6AAG7OoABuzsAAbs7QAG7PAABu0JAAbtKgAG7SwABu0uAAbtMAAG7TIABu00AAbtNgAG7TgABu06AAbtWwAG7V4ABu1hAAbtZAAG7WcABu1qAAbtbQAG7XAABu1zAAbtdQAG7fAABu3yAAbt9AAG7fYABu35AAbt+gAG7fsABu38AAbt/QAG7f8ABu4BAAbuAgAG7gMABu4FAAbuBgAG7oEABu6DAAbuhQAG7ocABu6KAAbuiwAG7owABu6NAAbujgAG7pAABu6SAAbukwAG7pQABu6WAAbulwAG7xIABu8UAAbvFwAG7xkABu8cAAbvHQAG7x4ABu8fAAbvIAAG7yIABu8kAAbvJQAG7yYABu8oAAbvKQAG70IABu9DAAbvRAAG70YABu/BAAbvwwAG78UABu/HAAbvygAG78sABu/MAAbvzQAG784ABu/QAAbv0gAG79MABu/UAAbv1gAG79cABvBSAAbwVAAG8FYABvBYAAbwWwAG8FwABvBdAAbwXgAG8F8ABvBhAAbwYwAG8GQABvBlAAbwZwAG8GgABvDjAAbw5QAG8OcABvDpAAbw7AAG8O0ABvDuAAbw7wAG8PAABvDyAAbw9AAG8PUABvD2AAbw+AAG8PkABvF0AAbxdgAG8XgABvF6AAbxfQAG8X4ABvF/AAbxgAAG8YEABvGDAAbxhQAG8YYABvGHAAbxiQAG8YoABvIFAAbyBwAG8gkABvILAAbyDgAG8g8ABvIQAAbyEQAG8hIABvIUAAbyFgAG8hcABvIYAAbyGgAG8hsABvJkAAbyiAAG8q8ABvLTAAby1gAG8tgABvLaAAby3AAG8t4ABvLgAAby4QAG8uQABvL9AAbzGgAG8xwABvMeAAbzIAAG8yIABvMkAAbzJgAG8ygABvNFAAbzSAAG80sABvNOAAbzUQAG81QABvNXAAbzWgAG81wABvPXAAbz2QAG89sABvPdAAbz4AAG8+EABvPiAAbz4wAG8+QABvPmAAbz6AAG8+kABvPqAAbz7AAG8+0ABvRoAAb0agAG9G0ABvRvAAb0cgAG9HMABvR0AAb0dQAG9HYABvR4AAb0egAG9HsABvR8AAb0fgAG9H8ABvT6AAb0/AAG9P4ABvUAAAb1AwAG9QQABvUFAAb1BgAG9QcABvUJAAb1CwAG9QwABvUNAAb1DwAG9RAABvWLAAb1jQAG9ZAABvWSAAb1lQAG9ZYABvWXAAb1mAAG9ZkABvWbAAb1nQAG9Z4ABvWfAAb1oQAG9aIABvYdAAb2HwAG9iEABvYjAAb2JgAG9icABvYoAAb2KQAG9ioABvYsAAb2LgAG9i8ABvYwAAb2MgAG9jMABvauAAb2sAAG9rIABva0AAb2twAG9rgABva5AAb2ugAG9rsABva9AAb2vwAG9sAABvbBAAb2wwAG9sQABvc/AAb3QQAG90QABvdGAAb3SQAG90oABvdLAAb3TAAG900ABvdPAAb3UQAG91IABvdTAAb3VQAG91YABvfpAAb4DAAG+CwABvhMAAb4TgAG+FAABvhSAAb4VAAG+FcABvhYAAb4WQAG+FwABvhdAAb4XwAG+GAABvhiAAb4ZQAG+GYABvhnAAb4agAG+GsABvhwAAb4iQAG+JIABviUAAb4lgAG+J8ABviiAAb4pQAG+KcABvjwAAb5FAAG+TsABvlfAAb5YgAG+WQABvlmAAb5aAAG+WoABvlsAAb5bQAG+XAABvmJAAb5qgAG+awABvmuAAb5sAAG+bIABvm0AAb5tgAG+bgABvm6AAb52wAG+d4ABvnhAAb55AAG+ecABvnqAAb57QAG+fAABvnzAAb59QAG+nAABvpyAAb6dAAG+nYABvp5AAb6egAG+nsABvp8AAb6fQAG+n8ABvqBAAb6ggAG+oMABvqFAAb6hgAG+wEABvsDAAb7BQAG+wcABvsKAAb7CwAG+wwABvsNAAb7DgAG+xAABvsSAAb7EwAG+xQABvsWAAb7FwAG+5IABvuUAAb7lwAG+5kABvucAAb7nQAG+54ABvufAAb7oAAG+6IABvukAAb7pQAG+6YABvuoAAb7qQAG+8IABvvDAAb7xAAG+8YABvxBAAb8QwAG/EUABvxHAAb8SgAG/EsABvxMAAb8TQAG/E4ABvxQAAb8UgAG/FMABvxUAAb8VgAG/FcABvzSAAb81AAG/NYABvzYAAb82wAG/NwABvzdAAb83gAG/N8ABvzhAAb84wAG/OQABvzlAAb85wAG/OgABv1jAAb9ZQAG/WcABv1pAAb9bAAG/W0ABv1uAAb9bwAG/XAABv1yAAb9dAAG/XUABv12AAb9eAAG/XkABv30AAb99gAG/fgABv36AAb9/QAG/f4ABv3/AAb+AAAG/gEABv4DAAb+BQAG/gYABv4HAAb+CQAG/goABv6FAAb+hwAG/okABv6LAAb+jgAG/o8ABv6QAAb+kQAG/pIABv6UAAb+lgAG/pcABv6YAAb+mgAG/psABv7kAAb/CAAG/y8ABv9TAAb/VgAG/1gABv9aAAb/XAAG/14ABv9gAAb/YQAG/2QABv99AAb/mgAG/5wABv+eAAb/oAAG/6IABv+kAAb/pgAG/6gABv/FAAb/yAAG/8sABv/OAAb/0QAG/9QABv/XAAb/2gAG/9wABwBXAAcAWQAHAFsABwBdAAcAYAAHAGEABwBiAAcAYwAHAGQABwBmAAcAaAAHAGkABwBqAAcAbAAHAG0ABwDoAAcA6gAHAOwABwDuAAcA8QAHAPIABwDzAAcA9AAHAPUABwD3AAcA+QAHAPoABwD7AAcA/QAHAP4ABwF5AAcBewAHAX0ABwF/AAcBggAHAYMABwGEAAcBhQAHAYYABwGIAAcBigAHAYsABwGMAAcBjgAHAY8ABwIKAAcCDAAHAg4ABwIQAAcCEwAHAhQABwIVAAcCFgAHAhcABwIZAAcCGwAHAhwABwIdAAcCHwAHAiAABwKbAAcCnQAHAp8ABwKhAAcCpAAHAqUABwKmAAcCpwAHAqgABwKqAAcCrAAHAq0ABwKuAAcCsAAHArEABwMsAAcDLgAHAzAABwMyAAcDNQAHAzYABwM3AAcDOAAHAzkABwM7AAcDPQAHAz4ABwM/AAcDQQAHA0IABwO9AAcDvwAHA8EABwPDAAcDxgAHA8cABwPIAAcDyQAHA8oABwPMAAcDzgAHA88ABwPQAAcD0gAHA9MABwPkAAcD6QAHA+wABwPuAAcEJwAHBCoABwQsAAcELwAHBDIABwQ1AAcEOAAHBD0ABwS4AAcEugAHBLwABwS+AAcEwQAHBMIABwTDAAcExAAHBMUABwTHAAcEyQAHBMoABwTLAAcEzQAHBM4ABwVJAAcFSwAHBU0ABwVPAAcFUgAHBVMABwVUAAcFVQAHBVYABwVYAAcFWgAHBVsABwVcAAcFXgAHBV8ABwXaAAcF3AAHBd8ABwXhAAcF5AAHBeUABwXmAAcF5wAHBegABwXqAAcF7AAHBe0ABwXuAAcF8AAHBfEABwaEAAcGpwAHBscABwbnAAcG6QAHBusABwbtAAcG7wAHBvIABwbzAAcG9AAHBvcABwb4AAcG+gAHBvsABwb9AAcHAAAHBwEABwcCAAcHBQAHBwYABwcLAAcHJAAHBy0ABwcvAAcHMQAHBzoABwc9AAcHQAAHB0IABweLAAcHrwAHB9YABwf6AAcH/QAHB/8ABwgBAAcIAwAHCAUABwgHAAcICAAHCAsABwgkAAcIRQAHCEcABwhJAAcISwAHCE0ABwhPAAcIUQAHCFMABwhVAAcIdgAHCHkABwh8AAcIfwAHCIIABwiFAAcIiAAHCIsABwiOAAcIkAAHCQsABwkNAAcJDwAHCREABwkUAAcJFQAHCRYABwkXAAcJGAAHCRoABwkcAAcJHQAHCR4ABwkgAAcJIQAHCZwABwmeAAcJoAAHCaIABwmlAAcJpgAHCacABwmoAAcJqQAHCasABwmtAAcJrgAHCa8ABwmxAAcJsgAHCi0ABwovAAcKMgAHCjQABwo3AAcKOAAHCjkABwo6AAcKOwAHCj0ABwo/AAcKQAAHCkEABwpDAAcKRAAHCl0ABwpeAAcKXwAHCmEABwrcAAcK3gAHCuAABwriAAcK5QAHCuYABwrnAAcK6AAHCukABwrrAAcK7QAHCu4ABwrvAAcK8QAHCvIABwttAAcLbwAHC3EABwtzAAcLdgAHC3cABwt4AAcLeQAHC3oABwt8AAcLfgAHC38ABwuAAAcLggAHC4MABwv+AAcMAAAHDAIABwwEAAcMBwAHDAgABwwJAAcMCgAHDAsABwwNAAcMDwAHDBAABwwRAAcMEwAHDBQABwyPAAcMkQAHDJMABwyVAAcMmAAHDJkABwyaAAcMmwAHDJwABwyeAAcMoAAHDKEABwyiAAcMpAAHDKUABw0gAAcNIgAHDSQABw0mAAcNKQAHDSoABw0rAAcNLAAHDS0ABw0vAAcNMQAHDTIABw0zAAcNNQAHDTYABw1/AAcNowAHDcoABw3uAAcN8QAHDfMABw31AAcN9wAHDfkABw37AAcN/AAHDf8ABw4YAAcONQAHDjcABw45AAcOOwAHDj0ABw4/AAcOQQAHDkMABw5gAAcOYwAHDmYABw5pAAcObAAHDm8ABw5yAAcOdQAHDncABw7yAAcO9AAHDvYABw74AAcO+wAHDvwABw79AAcO/gAHDv8ABw8BAAcPAwAHDwQABw8FAAcPBwAHDwg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AByC2AAcgtwAHILgAByC5AAcgugAHILwAByC+AAcgvwAHIMAAByDCAAcgwwAHIVYAByF5AAchmQAHIbkAByG7AAchvQAHIb8AByHBAAchxAAHIcUAByHGAAchyQAHIcoAByHMAAchzQAHIc8AByHSAAch0wAHIdQAByHXAAch2AAHId0AByH2AAch/wAHIgEAByIDAAciDAAHIg8AByISAAciFAAHIl0AByKBAAciqAAHIswAByLPAAci0QAHItMAByLVAAci1wAHItkAByLaAAci3QAHIvYAByMXAAcjGQAHIxsAByMdAAcjHwAHIyEAByMjAAcjJQAHIycAByNIAAcjSwAHI04AByNRAAcjVAAHI1cAByNaAAcjXQAHI2AAByNiAAcj3QAHI98AByPhAAcj4wAHI+YAByPnAAcj6AAHI+kAByPqAAcj7AAHI+4AByPvAAcj8AAHI/IAByPzAAckbgAHJHAAByRyAAckdAAHJHcAByR4AAckeQAHJHoAByR7AAckfQAHJH8ABySAAAckgQAHJIMABySEAAck/wAHJQEAByUEAAclBgAHJQkAByUKAAclCwAHJQwAByUNAAclDwAHJREAByUSAAclEwAHJRUAByUWAAclLwAHJTAAByUxAAclMwAHJa4AByWwAAclsgAHJbQAByW3AAcluAAHJbkAByW6AAcluwAHJb0AByW/AAclwAAHJcEAByXDAAclxAAHJj8AByZBAAcmQwAHJkUAByZIAAcmSQAHJkoAByZLAAcmTAAHJk4AByZQAAcmUQAHJlIAByZUAAcmVQAHJtAABybSAAcm1AAHJtYABybZAAcm2gAHJtsABybcAAcm3QAHJt8ABybhAAcm4gAHJuMAByblAAcm5gAHJ2EABydjAAcnZQAHJ2cABydqAAcnawAHJ2wABydtAAcnbgAHJ3AABydyAAcncwAHJ3QAByd2AAcndwAHJ/IAByf0AAcn9gAHJ/gAByf7AAcn/AAHJ/0AByf+AAcn/wAHKAEABygDAAcoBAAHKAUABygHAAcoCAAHKFEAByh1AAconAAHKMAAByjDAAcoxQAHKMcAByjJAAcoywAHKM0AByjOAAco0QAHKOoABykHAAcpCQAHKQsABykNAAcpDwAHKREABykTAAcpFQAHKTIAByk1AAcpOAAHKTsAByk+AAcpQQAHKUQABylHAAcpSQAHKcQABynGAAcpyAAHKcoABynNAAcpzgAHKc8ABynQAAcp0QAHKdMABynVAAcp1gAHKdcABynZAAcp2gAHKlUABypXAAcqWQAHKlsABypeAAcqXwAHKmAAByphAAcqYgAHKmQABypmAAcqZwAHKmgABypqAAcqawAHKuYAByroAAcq6gAHKuwAByrvAAcq8AAHKvEAByryAAcq8wAHKvUAByr3AAcq+AAHKvkAByr7AAcq/AAHK3cAByt5AAcrewAHK30AByuAAAcrgQAHK4IAByuDAAcrhAAHK4YAByuIAAcriQAHK4oAByuMAAcrjQAHLAgABywKAAcsDAAHLA4ABywRAAcsEgAHLBMABywUAAcsFQAHLBcABywZAAcsGgAHLBsABywdAAcsHgAHLJkAByybAAcsnQAHLJ8AByyiAAcsowAHLKQAByylAAcspgAHLKgAByyqAAcsqwAHLKwAByyuAAcsrwAHLSoABy0sAActLgAHLTAABy0zAActNAAHLTUABy02AActNwAHLTkABy07AActPAAHLT0ABy0/AActQAAHLVEABy1SAActVAAHLc8ABy3RAAct0wAHLdUABy3YAAct2QAHLdoABy3bAAct3AAHLd4ABy3gAAct4QAHLeIABy3kAAct5QAHLmAABy5iAAcuZAAHLmYABy5pAAcuagAHLmsABy5sAAcubQAHLm8ABy5xAAcucgAHLnMABy51AAcudgAHLvEABy7zAAcu9gAHLvgABy77AAcu/AAHLv0ABy7+AAcu/wAHLwEABy8DAAcvBAAHLwUABy8HAAcvCAAHL5sABy++AAcv3gAHL/4ABzAAAAcwAgAHMAQABzAGAAcwCQAHMAoABzALAAcwDgAHMA8ABzARAAcwEgAHMBQABzAXAAcwGAAHMBkABzAcAAcwHQAHMCYABzA/AAcwSAAHMEoABzBMAAcwVQAHMFgABzBbAAcwXQAHMKYABzDKAAcw8QAHMRUABzEYAAcxGgAHMRwABzEeAAcxIAAHMSIABzEjAAcxJgAHMT8ABzFgAAcxYgAHMWQABzFmAAcxaAAHMWoABzFsAAcxbgAHMXAABzGRAAcxlAAHMZcABzGaAAcxnQAHMaAABzGjAAcxpgAHMakABzGrAAcyJgAHMigABzIqAAcyLAAHMi8ABzIwAAcyMQAHMjI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AB1UfAAdVIAAHVSEAB1UiAAdVIwAHVSUAB1UnAAdVKAAHVSkAB1UrAAdVLAAHVacAB1WpAAdVqwAHVa0AB1WwAAdVsQAHVbIAB1WzAAdVtAAHVbYAB1W4AAdVuQAHVboAB1W8AAdVvQAHVjgAB1Y6AAdWPQAHVj8AB1ZCAAdWQwAHVkQAB1ZFAAdWRgAHVkgAB1ZKAAdWSwAHVkwAB1ZOAAdWTwAHVuIAB1cFAAdXJQAHV0UAB1dHAAdXSQAHV0sAB1dNAAdXUAAHV1EAB1dSAAdXVQAHV1YAB1dYAAdXWQAHV1sAB1deAAdXXwAHV2AAB1djAAdXZAAHV20AB1eGAAdXjwAHV5EAB1eTAAdXnAAHV58AB1eiAAdXpAAHV+0AB1gRAAdYOAAHWFwAB1hfAAdYYQAHWGMAB1hlAAdYZwAHWGkAB1hqAAdYbQAHWIYAB1inAAdYqQAHWKsAB1itAAdYrwAHWLEAB1izAAdYtQAHWLcAB1jYAAdY2wAHWN4AB1jhAAdY5AAHWOcAB1jqAAdY7QAHWPAAB1jyAAdZbQAHWW8AB1lxAAdZcwAHWXYAB1l3AAdZeAAHWXkAB1l6AAdZfAAHWX4AB1l/AAdZgAAHWYIAB1mDAAdZ/gAHWgAAB1oCAAdaBAAHWgcAB1oIAAdaCQAHWgoAB1oLAAdaDQAHWg8AB1oQAAdaEQAHWhMAB1oUAAdajwAHWpEAB1qUAAdalgAHWpkAB1qaAAdamwAHWpwAB1qdAAdanwAHWqEAB1qiAAdaowAHWqUAB1qmAAdavwAHWsAAB1rBAAdawwAHWz4AB1tAAAdbQgAHW0QAB1tHAAdbSAAHW0kAB1tKAAdbSwAHW00AB1tPAAdbUAAHW1EAB1tTAAdbVAAHW88AB1vRAAdb0wAHW9UAB1vYAAdb2QAHW9oAB1vbAAdb3AAHW94AB1vgAAdb4QAHW+IAB1vkAAdb5QAHXGAAB1xiAAdcZAAHXGYAB1xpAAdcagAHXGsAB1xsAAdcbQAHXG8AB1xxAAdccgAHXHMAB1x1AAdcdgAHXPEAB1zzAAdc9QAHXPcAB1z6AAdc+wAHXPwAB1z9AAdc/gAHXQAAB10CAAddAwAHXQQAB10GAAddBwAHXYIAB12EAAddhgAHXYgAB12LAAddjAAHXY0AB12OAAddjwAHXZEAB12TAAddlAAHXZUAB12XAAddmAAHXeEAB14FAAdeLAAHXlAAB15TAAdeVQAHXlcAB15ZAAdeWwAHXl0AB15eAAdeYQAHXnoAB16XAAdemQAHXpsAB16dAAdenwAHXqEAB16jAAdepQAHXsIAB17FAAdeyAAHXssAB17OAAde0QAHXtQAB17XAAde2QAHX1QAB19WAAdfWAAHX1oAB19dAAdfXgAHX18AB19gAAdfYQAHX2MAB19lAAdfZgAHX2cAB19pAAdfagAHX+UAB1/nAAdf6QAHX+sAB1/uAAdf7wAHX/AAB1/xAAdf8gAHX/QAB1/2AAdf9wAHX/gAB1/6AAdf+wAHYHYAB2B4AAdgegAHYHwAB2B/AAdggAAHYIEAB2CCAAdggwAHYIUAB2CHAAdgiAAHYIkAB2CLAAdgjAAHYQcAB2EJAAdhCwAHYQ0AB2EQAAdhEQAHYRIAB2ETAAdhFAAHYRYAB2EYAAdhGQAHYRoAB2EcAAdhHQAHYZgAB2GaAAdhnAAHYZ4AB2GhAAdhogAHYaMAB2GkAAdhpQAHYacAB2GpAAdhqgAHYasAB2GtAAdhrgAHYikAB2IrAAdiLQAHYi8AB2IyAAdiMwAHYjQAB2I1AAdiNgAHYjgAB2I6AAdiOwAHYjwAB2I+AAdiPwAHYroAB2K8AAdivgAHYsAAB2LDAAdixAAHYsUAB2LGAAdixwAHYskAB2LLAAdizAAHYs0AB2LPAAdi0AAHY2MAB2OGAAdjpgAHY8YAB2PIAAdjygAHY8wAB2POAAdj0QAHY9IAB2PTAAdj1gAHY9cAB2PZAAdj2gAHY90AB2PgAAdj4QAHY+IAB2PlAAdj5gAHY+sAB2QEAAdkDQAHZA8AB2QRAAdkGgAHZB0AB2QgAAdkIgAHZGsAB2SPAAdktgAHZNoAB2TdAAdk3wAHZOEAB2TjAAdk5QAHZOcAB2ToAAdk6wAHZQQAB2UlAAdlJwAHZSkAB2UrAAdlLQAHZS8AB2UxAAdlMwAHZTUAB2VWAAdlWQAHZVwAB2VfAAdlYgAHZWUAB2VoAAdlawAHZW4AB2VwAAdl6wAHZe0AB2XvAAdl8QAHZfQAB2X1AAdl9gAHZfcAB2X4AAdl+gAHZfwAB2X9AAdl/gAHZgAAB2YBAAdmfAAHZn4AB2aAAAdmggAHZoUAB2aGAAdmhwAHZogAB2aJAAdmiwAHZo0AB2aOAAdmjwAHZpEAB2aSAAdnDQAHZw8AB2cSAAdnFAAHZxcAB2cYAAdnGQAHZxoAB2cbAAdnHQAHZx8AB2cgAAdnIQAHZyMAB2ckAAdnPQAHZz4AB2c/AAdnQQAHZ7wAB2e+AAdnwAAHZ8IAB2fFAAdnxgAHZ8cAB2fIAAdnyQAHZ8sAB2fNAAdnzgAHZ88AB2fRAAdn0gAHaE0AB2hPAAdoUQAHaFMAB2hWAAdoVwAHaFgAB2hZAAdoWgAHaFwAB2heAAdoXwAHaGAAB2hiAAdoYwAHaN4AB2jgAAdo4gAHaOQAB2jnAAdo6AAHaOkAB2jqAAdo6wAHaO0AB2jvAAdo8AAHaPEAB2jzAAdo9AAHaW8AB2lxAAdpcwAHaXUAB2l4AAdpeQAHaXoAB2l7AAdpfAAHaX4AB2mAAAdpgQAHaYIAB2mEAAdphQAHagAAB2oCAAdqBAAHagYAB2oJAAdqCgAHagsAB2oMAAdqDQAHag8AB2oRAAdqEgAHahMAB2oVAAdqFgAHal8AB2qDAAdqqgAHas4AB2rRAAdq0wAHatUAB2rXAAdq2QAHatsAB2rcAAdq3wAHavgAB2sVAAdrFwAHaxkAB2sbAAdrHQAHax8AB2shAAdrIwAHa0AAB2tDAAdrRgAHa0kAB2tMAAdrTwAHa1IAB2tVAAdrVwAHa9IAB2vUAAdr1gAHa9gAB2vbAAdr3AAHa90AB2veAAdr3wAHa+EAB2vjAAdr5AAHa+UAB2vnAAdr6AAHbGMAB2xlAAdsZwAHbGkAB2xsAAdsbQAHbG4AB2xvAAdscAAHbHIAB2x0AAdsdQAHbHYAB2x4AAdseQAHbPQAB2z2AAds+AAHbPoAB2z9AAds/gAHbP8AB20AAAdtAQAHbQMAB20FAAdtBgAHbQcAB20JAAdtCgAHbYUAB22HAAdtigAHbYwAB22PAAdtkAAHbZEAB22SAAdtkwAHbZUAB22XAAdtmAAHbZkAB22bAAdtnAAHbhcAB24ZAAduGwAHbh0AB24gAAduIQAHbiIAB24jAAduJAAHbiYAB24oAAduKQAHbioAB24sAAduLQAHbqgAB26qAAdurAAHbq4AB26xAAdusgAHbrMAB260AAdutQAHbrcAB265AAduugAHbrsAB269AAduvgAHbzkAB287AAdvPgAHb0AAB29DAAdvRAAHb0UAB29GAAdvRwAHb0kAB29LAAdvTAAHb00AB29PAAdvUAAHb+MAB3AGAAdwJgAHcEYAB3BIAAdwSgAHcEwAB3BOAAdwUQAHcFIAB3BTAAdwVgAHcFcAB3BZAAdwWgAHcF0AB3BgAAdwYQAHcGIAB3BlAAdwZgAHcGsAB3CEAAdwjQAHcI8AB3CRAAdwmgAHcJ0AB3CgAAdwogAHcOsAB3EPAAdxNgAHcVoAB3FdAAdxXwAHcWEAB3FjAAdxZQAHcWcAB3FoAAdxawAHcYQAB3GlAAdxpwAHcakAB3GrAAdxrQAHca8AB3GxAAdxswAHcbUAB3HWAAdx2QAHcdwAB3HfAAdx4gAHceUAB3HoAAdx6wAHce4AB3HwAAdyawAHcm0AB3JvAAdycQAHcnQAB3J1AAdydgAHcncAB3J4AAdyegAHcnwAB3J9AAdyfgAHcoAAB3KBAAdy/AAHcv4AB3MAAAdzAgAHcwUAB3MGAAdzBwAHcwgAB3MJAAdzCwAHcw0AB3MOAAdzDwAHcxEAB3MSAAdzjQAHc48AB3OSAAdzlAAHc5cAB3OYAAdzmQAHc5oAB3ObAAdznQAHc58AB3OgAAdzoQAHc6MAB3OkAAdzvQAHc74AB3O/AAdzwQAHdDwAB3Q+AAd0QAAHdEIAB3RFAAd0RgAHdEcAB3RIAAd0SQAHdEsAB3RNAAd0TgAHdE8AB3RRAAd0UgAHdM0AB3TPAAd00QAHdNMAB3TWAAd01wAHdNgAB3TZAAd02gAHdNwAB3TeAAd03wAHdOAAB3TiAAd04wAHdV4AB3VgAAd1YgAHdWQAB3VnAAd1aAAHdWkAB3VqAAd1awAHdW0AB3VvAAd1cAAHdXEAB3VzAAd1dAAHde8AB3XxAAd18wAHdfUAB3X4AAd1+QAHdfoAB3X7AAd1/AAHdf4AB3YAAAd2AQAHdgIAB3YEAAd2BQAHdoAAB3aCAAd2hAAHdoYAB3aJAAd2igAHdosAB3aMAAd2jQAHdo8AB3aRAAd2kgAHdpMAB3aVAAd2lgAHdt8AB3cDAAd3KgAHd04AB3dRAAd3UwAHd1UAB3dXAAd3WQAHd1sAB3dcAAd3XwAHd3gAB3eVAAd3lwAHd5kAB3ebAAd3nQAHd58AB3ehAAd3owAHd8AAB3fDAAd3xgAHd8kAB3fMAAd3zwAHd9IAB3fVAAd31wAHeFIAB3hUAAd4VgAHeFgAB3hbAAd4XAAHeF0AB3heAAd4XwAHeGEAB3hjAAd4ZAAHeGUAB3hnAAd4aAAHeOMAB3jlAAd45wAHeOkAB3jsAAd47QAHeO4AB3jvAAd48AAHePIAB3j0AAd49QAHePYAB3j4AAd4+QAHeXQAB3l2AAd5eAAHeXoAB3l9AAd5fgAHeX8AB3mAAAd5gQAHeYMAB3mFAAd5hgAHeYcAB3mJAAd5igAHegUAB3oHAAd6CgAHegwAB3oPAAd6EAAHehEAB3oSAAd6EwAHehUAB3oXAAd6GAAHehkAB3obAAd6HAAHepcAB3qZAAd6mwAHep0AB3qgAAd6oQAHeqIAB3qjAAd6pAAHeqYAB3qoAAd6qQAHeqoAB3qsAAd6rQAHeygAB3sqAAd7LAAHey4AB3sxAAd7MgAHezMAB3s0AAd7NQAHezcAB3s5AAd7OgAHezsAB3s9AAd7PgAHe7kAB3u7AAd7vgAHe8AAB3vDAAd7xAAHe8UAB3vGAAd7xwAHe8kAB3vLAAd7zAAHe80AB3vPAAd70AAHfGMAB3yGAAd8pgAHfMYAB3zIAAd8ygAHfMwAB3zOAAd80QAHfNIAB3zTAAd81gAHfNcAB3zZAAd82gAHfNwAB3zfAAd84AAHfOEAB3zkAAd85QAHfO4AB30HAAd9EAAHfRIAB30UAAd9HQAHfSAAB30jAAd9JQAHfW4AB32SAAd9uQAHfd0AB33gAAd94gAHfeQAB33mAAd96AAHfeoAB33rAAd97gAHfgcAB34oAAd+KgAHfiwAB34uAAd+MAAHfjIAB340AAd+NgAHfjgAB35ZAAd+XAAHfl8AB35iAAd+ZQAHfmgAB35rAAd+bgAHfnEAB35zAAd+7gAHfvAAB37yAAd+9AAHfvcAB374AAd++QAHfvoAB377AAd+/QAHfv8AB38AAAd/AQAHfwMAB38EAAd/fwAHf4EAB3+DAAd/hQAHf4gAB3+JAAd/igAHf4sAB3+MAAd/jgAHf5AAB3+RAAd/kgAHf5QAB3+VAAeAEAAHgBIAB4AVAAeAFwAHgBoAB4AbAAeAHAAHgB0AB4AeAAeAIAAHgCIAB4AjAAeAJAAHgCYAB4AnAAeAQAAHgEEAB4BCAAeARAAHgL8AB4DBAAeAwwAHgMUAB4DIAAeAyQAHgMoAB4DLAAeAzAAHgM4AB4DQAAeA0QAHgNIAB4DUAAeA1QAHgVAAB4FSAAeBVAAHgVYAB4FZAAeBWgAHgVsAB4FcAAeBXQAHgV8AB4FhAAeBYgAHgWMAB4FlAAeBZgAHgeEAB4HjAAeB5QAHgecAB4HqAAeB6wAHgewAB4HtAAeB7gAHgfAAB4HyAAeB8wAHgfQAB4H2AAeB9wAHgnIAB4J0AAeCdgAHgngAB4J7AAeCfAAHgn0AB4J+AAeCfwAHgoEAB4KDAAeChAAHgoUAB4KHAAeCiAAHgwMAB4MFAAeDBwAHgwkAB4MMAAeDDQAHgw4AB4MPAAeDEAAHgxIAB4MUAAeDFQAHgxYAB4MYAAeDGQAHg2IAB4OGAAeDrQAHg9EAB4PUAAeD1gAHg9gAB4PaAAeD3AAHg94AB4PfAAeD4gAHg/sAB4QYAAeEGgAHhBwAB4QeAAeEIAAHhCIAB4QkAAeEJgAHhEMAB4RGAAeESQAHhEwAB4RPAAeEUgAHhFUAB4RYAAeEWgAHhNUAB4TXAAeE2QAHhNsAB4TeAAeE3wAHhOAAB4ThAAeE4gAHhOQAB4TmAAeE5wAHhOgAB4TqAAeE6wAHhWYAB4VoAAeFagAHhWwAB4VvAAeFcAAHhXEAB4VyAAeFcwAHhXUAB4V3AAeFeAAHhXkAB4V7AAeFfAAHhfcAB4X5AAeF+wAHhf0AB4YAAAeGAQAHhgIAB4YDAAeGBAAHhgYAB4YIAAeGCQAHhgoAB4YMAAeGDQAHhogAB4aKAAeGjQAHho8AB4aSAAeGkwAHhpQAB4aVAAeGlgAHhpgAB4aaAAeGmwAHhpwAB4aeAAeGnwAHhxoAB4ccAAeHHgAHhyAAB4cjAAeHJAAHhyUAB4cmAAeHJwAHhykAB4crAAeHLAAHhy0AB4cvAAeHMAAHh6sAB4etAAeHrwAHh7EAB4e0AAeHtQAHh7YAB4e3AAeHuAAHh7oAB4e8AAeHvQAHh74AB4fAAAeHwQAHiDwAB4g+AAeIQAAHiEIAB4hFAAeIRgAHiEcAB4hIAAeISQAHiEsAB4hNAAeITgAHiE8AB4hRAAeIUgAHiOUAB4kIAAeJKAAHiUgAB4lKAAeJTAAHiU4AB4lQAAeJUwAHiVQAB4lVAAeJWAAHiVkAB4lbAAeJXAAHiV4AB4lhAAeJYgAHiWMAB4lmAAeJZwAHiWwAB4mFAAeJjgAHiZAAB4mSAAeJmwAHiZ4AB4mhAAeJowAHiewAB4oQAAeKNwAHilsAB4peAAeKYAAHimIAB4pkAAeKZgAHimgAB4ppAAeKbAAHioUAB4qmAAeKqAAHiqoAB4qsAAeKrgAHirAAB4qyAAeKtAAHirYAB4rXAAeK2gAHit0AB4rgAAeK4wAHiuYAB4rpAAeK7AAHiu8AB4rxAAeLbAAHi24AB4twAAeLcgAHi3UAB4t2AAeLdwAHi3gAB4t5AAeLewAHi30AB4t+AAeLfwAHi4EAB4uCAAeL/QAHi/8AB4wBAAeMAwAHjAYAB4wHAAeMCAAHjAkAB4wKAAeMDAAHjA4AB4wPAAeMEAAHjBIAB4wTAAeMjgAHjJAAB4yTAAeMlQAHjJgAB4yZAAeMmgAHjJsAB4ycAAeMngAHjKAAB4yhAAeMogAHjKQAB4ylAAeMvgAHjL8AB4zAAAeMwgAHjT0AB40/AAeNQQAHjUMAB41GAAeNRwAHjUgAB41JAAeNSgAHjUwAB41OAAeNTwAHjVAAB41SAAeNUwAHjc4AB43QAAeN0gAHjdQAB43XAAeN2AAHjdkAB43aAAeN2wAHjd0AB43fAAeN4AAHjeEAB43jAAeN5AAHjl8AB45hAAeOYwAHjmUAB45oAAeOaQAHjmoAB45rAAeObAAHjm4AB45wAAeOcQAHjnIAB450AAeOdQAHjvAAB47yAAeO9AAHjvYAB475AAeO+gAHjvsAB478AAeO/QAHjv8AB48BAAePAgAHjwMAB48FAAePBgAHj4EAB4+DAAePhQAHj4cAB4+KAAePiwAHj4wAB4+NAAePjgAHj5AAB4+SAAePkwAHj5QAB4+WAAePlwAHj+AAB5AEAAeQKwAHkE8AB5BSAAeQVAAHkFYAB5BYAAeQWgAHkFwAB5BdAAeQYAAHkHkAB5CWAAeQmAAHkJoAB5CcAAeQngAHkKAAB5CiAAeQpAAHkMEAB5DEAAeQxwAHkMoAB5DNAAeQ0AAHkNMAB5DWAAeQ2AAHkVMAB5FVAAeRVwAHkVkAB5FcAAeRXQAHkV4AB5FfAAeRYAAHkWIAB5FkAAeRZQAHkWYAB5FoAAeRaQAHkeQAB5HmAAeR6AAHkeoAB5HtAAeR7gAHke8AB5HwAAeR8QAHkfMAB5H1AAeR9gAHkfcAB5H5AAeR+gAHknUAB5J3AAeSeQAHknsAB5J+AAeSfwAHkoAAB5KBAAeSggAHkoQAB5KGAAeShwAHkogAB5KKAAeSiwAHkwYAB5MIAAeTCwAHkw0AB5MQAAeTEQAHkxIAB5MTAAeTFAAHkxYAB5MYAAeTGQAHkxoAB5McAAeTHQAHk5gAB5OaAAeTnAAHk54AB5OhAAeTogAHk6MAB5OkAAeTpQAHk6cAB5OpAAeTqgAHk6sAB5OtAAeTrgAHlCkAB5QrAAeULQAHlC8AB5QyAAeUMwAHlDQAB5Q1AAeUNgAHlDgAB5Q6AAeUOwAHlDwAB5Q+AAeUPwAHlLoAB5S8AAeUvgAHlMAAB5TDAAeUxAAHlMUAB5TGAAeUxwAHlMkAB5TLAAeUzAAHlM0AB5TPAAeU0AAHlWMAB5WGAAeVpgAHlcYAB5XIAAeVygAHlcwAB5XOAAeV0QAHldIAB5XTAAeV1gAHldcAB5XZAAeV2gAHldwAB5XfAAeV4AAHleEAB5XkAAeV5QAHle4AB5YHAAeWEAAHlhIAB5YUAAeWHQAHliAAB5YjAAeWJQAHlm4AB5aSAAeWuQAHlt0AB5bgAAeW4gAHluQAB5bmAAeW6AAHluoAB5brAAeW7gAHlwcAB5coAAeXKgAHlywAB5cuAAeXMAAHlzIAB5c0AAeXNgAHlzgAB5dZAAeXXAAHl18AB5diAAeXZQAHl2gAB5drAAeXbgAHl3EAB5dzAAeX7gAHl/AAB5fyAAeX9AAHl/cAB5f4AAeX+QAHl/oAB5f7AAeX/QAHl/8AB5gAAAeYAQAHmAMAB5gEAAeYfwAHmIEAB5iDAAeYhQAHmIgAB5iJAAeYigAHmIsAB5iMAAeYjgAHmJAAB5iRAAeYkgAHmJQAB5iVAAeZEAAHmRIAB5kVAAeZFwAHmRoAB5kbAAeZHAAHmR0AB5keAAeZIAAHmSIAB5kjAAeZJAAHmSYAB5knAAeZQAAHmUEAB5lCAAeZRAAHmb8AB5nBAAeZwwAHmcUAB5nIAAeZyQAHmcoAB5nLAAeZzAAHmc4AB5nQAAeZ0QAHmdIAB5nUAAeZ1QAHmlAAB5pSAAeaVAAHmlYAB5pZAAeaWgAHmlsAB5pcAAeaXQAHml8AB5phAAeaYgAHmmMAB5plAAeaZgAHmuEAB5rjAAea5QAHmucAB5rqAAea6wAHmuwAB5rtAAea7gAHmvAAB5ryAAea8wAHmvQAB5r2AAea9wAHm3IAB5t0AAebdgAHm3gAB5t7AAebfAAHm30AB5t+AAebfwAHm4EAB5uDAAebhAAHm4UAB5uHAAebiAAHnAMAB5wFAAecBwAHnAkAB5wMAAecDQAHnA4AB5wPAAecEAAHnBIAB5wUAAecFQAHnBYAB5wYAAecGQAHnGIAB5yGAAecrQAHnNEAB5zUAAec1gAHnNgAB5zaAAec3AAHnN4AB5zfAAec4gAHnPsAB50YAAedGgAHnRwAB50eAAedIAAHnSIAB50kAAedJgAHnUMAB51GAAedSQAHnUwAB51PAAedUgAHnVUAB51YAAedWgAHndUAB53XAAed2QAHndsAB53eAAed3wAHneAAB53hAAed4gAHneQAB53mAAed5wAHnegAB53qAAed6wAHnmYAB55oAAeeagAHnmwAB55vAAeecAAHnnEAB55yAAeecwAHnnUAB553AAeeeAAHnnkAB557AAeefAAHnvcAB575AAee+wAHnv0AB58AAAefAQAHnwIAB58DAAefBAAHnwYAB58IAAefCQAHnwoAB58MAAefDQAHn4gAB5+KAAefjAAHn44AB5+RAAefkgAHn5MAB5+UAAeflQAHn5cAB5+ZAAefmgAHn5sAB5+dAAefngAHoBkAB6AbAAegHQAHoB8AB6AiAAegIwAHoCQAB6AlAAegJgAHoCgAB6AqAAegKwAHoCwAB6AuAAegLwAHoKoAB6CsAAegrgAHoLAAB6CzAAegtAAHoLUAB6C2AAegtwAHoLkAB6C7AAegvAAHoL0AB6C/AAegwAAHoTsAB6E9AAehPwAHoUEAB6FEAAehRQAHoUYAB6FHAAehSAAHoUoAB6FMAAehTQAHoU4AB6FQAAehUQAHoeQAB6IHAAeiJwAHokcAB6JJAAeiSwAHok0AB6JPAAeiUgAHolMAB6JUAAeiVwAHolgAB6JaAAeiWwAHol4AB6JhAAeiYgAHomMAB6JmAAeiZwAHomwAB6KFAAeijgAHopAAB6KSAAeimwAHop4AB6KhAAeiowAHouwAB6MQAAejNwAHo1sAB6NeAAejYAAHo2IAB6NkAAejZgAHo2gAB6NpAAejbAAHo4UAB6OmAAejqAAHo6oAB6OsAAejrgAHo7AAB6OyAAejtAAHo7YAB6PXAAej2gAHo90AB6PgAAej4wAHo+YAB6PpAAej7AAHo+8AB6PxAAekbAAHpG4AB6RwAAekcgAHpHUAB6R2AAekdwAHpHgAB6R5AAekewAHpH0AB6R+AAekfwAHpIEAB6SCAAek/QAHpP8AB6UBAAelAwAHpQYAB6UHAAelCAAHpQkAB6UKAAelDAAHpQ4AB6UPAAelEAAHpRIAB6UTAAeljgAHpZAAB6WTAAellQAHpZgAB6WZAAelmgAHpZsAB6WcAAelngAHpaAAB6WhAAelogAHpaQAB6WlAAelvgAHpb8AB6XAAAelwgAHpj0AB6Y/AAemQQAHpkMAB6ZGAAemRwAHpkgAB6ZJAAemSgAHpkwAB6ZOAAemTwAHplAAB6ZSAAemUwAHps4AB6bQAAem0gAHptQAB6bXAAem2AAHptkAB6baAAem2wAHpt0AB6bfAAem4AAHpuEAB6bjAAem5AAHp18AB6dhAAenYwAHp2UAB6doAAenaQAHp2oAB6drAAenbAAHp24AB6dwAAencQAHp3IAB6d0AAendQAHp/AAB6fyAAen9AAHp/YAB6f5AAen+gAHp/sAB6f8AAen/QAHp/8AB6gBAAeoAgAHqAMAB6gFAAeoBgAHqIEAB6iDAAeohQAHqIcAB6iKAAeoiwAHqIwAB6iNAAeojgAHqJAAB6iSAAeokwAHqJQAB6iWAAeolwAHqOAAB6kEAAepKwAHqU8AB6lSAAepVAAHqVYAB6lYAAepWgAHqVwAB6ldAAepYAAHqXkAB6mWAAepmAAHqZoAB6mcAAepngAHqaAAB6miAAeppAAHqcEAB6nEAAepxwAHqcoAB6nNAAep0AAHqdMAB6nWAAep2AAHqlMAB6pVAAeqVwAHqlkAB6pcAAeqXQAHql4AB6pfAAeqYAAHqmIAB6pkAAeqZQAHqmYAB6poAAeqaQAHquQAB6rmAAeq6AAHquoAB6rtAAeq7gAHqu8AB6rwAAeq8QAHqvMAB6r1AAeq9gAHqvcAB6r5AAeq+gAHq3UAB6t3AAereQAHq3sAB6t+AAerfwAHq4AAB6uBAAerggAHq4QAB6uGAAerhwAHq4gAB6uKAAeriwAHrAYAB6wIAAesCwAHrA0AB6wQAAesEQAHrBIAB6wTAAesFAAHrBYAB6wYAAesGQAHrBoAB6wcAAesHQAHrMAAB6zkAAetCAAHrSgAB61PAAetdgAHrZYAB629AAet4QAHrgQAB64rAAeuTwAHrnMAB66XAAeuvgAHrr8AB67BAAeuwwAHrsYAB67IAAeuywAHrs0AB67PAAeu0gAHrtQAB67WAAeu2QAHrtwAB67eAAeu4AAHruIAB67lAAeu6AAHrusAB67wAAevCQAHrw4AB68QAAevFQAHrxgAB68aAAevYwAHr4cAB6+uAAev0gAHr9UAB6/XAAev2QAHr9sAB6/dAAev3wAHr+AAB6/jAAev/AAHsCEAB7AjAAewJQAHsCcAB7ApAAewKwAHsC0AB7AvAAewMQAHsDMAB7BYAAewWwAHsF4AB7BhAAewZAAHsGcAB7BqAAewbQAHsHAAB7BzAAewdQAHsPAAB7DyAAew9QAHsPcAB7D6AAew+wAHsPwAB7D9AAew/gAHsQAAB7ECAAexAwAHsQQAB7EGAAexBwAHsRgAB7EZAAexGwAHsZYAB7GYAAexmgAHsZwAB7GfAAexoAAHsaEAB7GiAAexowAHsaUAB7GnAAexqAAHsakAB7GrAAexrAAHsicAB7IpAAeyLAAHsi4AB7IxAAeyMgAHsjMAB7I0AAeyNQAHsjcAB7I5AAeyOgAHsjsAB7I9AAeyPgAHsk8AB7JQAAeyUgAHss0AB7LPAAey0QAHstMAB7LWAAey1wAHstgAB7LZAAey2gAHstwAB7LeAAey3wAHsuAAB7LiAAey4wAHs14AB7NgAAezYwAHs2UAB7NoAAezaQAHs2oAB7NrAAezbAAHs24AB7NwAAezcQAHs3IAB7N0AAezdQAHs4YAB7OHAAeziQAHtAQAB7QGAAe0CAAHtAoAB7QNAAe0DgAHtA8AB7QQAAe0EQAHtBMAB7QVAAe0FgAHtBcAB7QZAAe0GgAHtJUAB7SXAAe0mgAHtJwAB7SfAAe0oAAHtKEAB7SiAAe0owAHtKUAB7SnAAe0qAAHtKkAB7SrAAe0rAAHtMUAB7TGAAe0xwAHtMkAB7VEAAe1RgAHtUgAB7VKAAe1TQAHtU4AB7VPAAe1UAAHtVEAB7VTAAe1VQAHtVYAB7VXAAe1WQAHtVoAB7XVAAe11wAHtdoAB7XcAAe13wAHteAAB7XhAAe14gAHteMAB7XlAAe15wAHtegAB7XpAAe16wAHtewAB7YCAAe2GwAHtnYAB7Z5AAe2fAAHtn8AB7aCAAe2hQAHtogAB7aLAAe2jgAHtpEAB7aUAAe2lwAHtpoAB7adAAe2oAAHtqMAB7amAAe2qQAHtqwAB7avAAe2sgAHtrUAB7a4AAe3EwAHtxYAB7cZAAe3HAAHtx8AB7ciAAe3JQAHtygAB7crAAe3LgAHtzEAB7c0AAe3NwAHtzoAB7c9AAe3QAAHt0MAB7dGAAe3SQAHt0wAB7dPAAe3UgAHt1UAB7dXAAe3bgAHt5IAB7eYAAe3pgAHt8QAB7faAAe37wAHuAUAB7gzAAe4VQAHuG4AB7iEAAe4nQAHuLMAB7jBAAe4zAAHuOoAB7j3AAe5BgAHuZkAB7m8AAe53AAHufwAB7n+AAe6AAAHugIAB7oEAAe6BwAHuggAB7oJAAe6DAAHug0AB7oPAAe6EAAHuhIAB7oVAAe6FgAHuhcAB7oaAAe6GwAHuiQAB7o9AAe6RgAHukgAB7pKAAe6UwAHulYAB7pZAAe6WwAHuqQAB7rIAAe67wAHuxMAB7sWAAe7GAAHuxoAB7scAAe7HgAHuyAAB7shAAe7JAAHuz0AB7teAAe7YAAHu2IAB7tkAAe7ZgAHu2gAB7tqAAe7bAAHu24AB7uPAAe7kgAHu5UAB7uYAAe7mwAHu54AB7uhAAe7pAAHu6cAB7upAAe8JAAHvCYAB7woAAe8KgAHvC0AB7wuAAe8LwAHvDAAB7wxAAe8MwAHvDUAB7w2AAe8NwAHvDkAB7w6AAe8tQAHvLcAB7y5AAe8uwAHvL4AB7y/AAe8wAAHvMEAB7zCAAe8xAAHvMYAB7zHAAe8yAAHvMoAB7zLAAe9RgAHvUgAB71LAAe9TQAHvVAAB71RAAe9UgAHvVMAB71UAAe9VgAHvVgAB71ZAAe9WgAHvVwAB71dAAe9dgAHvXcAB714AAe9egAHvfUAB733AAe9+QAHvfsAB73+AAe9/wAHvgAAB74BAAe+AgAHvgQAB74GAAe+BwAHvggAB74KAAe+CwAHvoYAB76IAAe+igAHvowAB76PAAe+kAAHvpEAB76SAAe+kwAHvpUAB76XAAe+mAAHvpkAB76bAAe+nAAHvxcAB78ZAAe/GwAHvx0AB78gAAe/IQAHvyIAB78jAAe/JAAHvyYAB78oAAe/KQAHvyoAB78sAAe/LQAHv6gAB7+qAAe/rAAHv64AB7+xAAe/sgAHv7MAB7+0AAe/tQAHv7cAB7+5AAe/ugAHv7sAB7+9AAe/vgAHwDkAB8A7AAfAPQAHwD8AB8BCAAfAQwAHwEQAB8BFAAfARgAHwEgAB8BKAAfASwAHwEwAB8BOAAfATwAHwJgAB8C8AAfA4wAHwQcAB8EKAAfBDAAHwQ4AB8EQAAfBEgAHwRQAB8EVAAfBGAAHwTEAB8FOAAfBUAAHwVIAB8FUAAfBVgAHwVgAB8FaAAfBXAAHwXkAB8F8AAfBfwAHwYIAB8GFAAfBiAAHwYsAB8GOAAfBkAAHwgsAB8INAAfCEAAHwhIAB8IVAAfCFgAHwhcAB8IYAAfCGQAHwhsAB8IdAAfCHgAHwh8AB8IhAAfCIgAHwp0AB8KfAAfCoQAHwqMAB8KmAAfCpwAHwqgAB8KpAAfCqgAHwqwAB8KuAAfCrwAHwrAAB8KyAAfCswAHwy4AB8MwAAfDMgAHwzQAB8M3AAfDOAAHwzkAB8M6AAfDOwAHwz0AB8M/AAfDQAAHw0EAB8NDAAfDRAAHw78AB8PBAAfDxAAHw8YAB8PJAAfDygAHw8sAB8PMAAfDzQAHw88AB8PRAAfD0gAHw9MAB8PVAAfD1gAHxFEAB8RTAAfEVQAHxFcAB8RaAAfEWwAHxFwAB8RdAAfEXgAHxGAAB8RiAAfEYwAHxGQAB8RmAAfEZwAHxOIAB8TkAAfE5gAHxOgAB8TrAAfE7AAHxO0AB8TuAAfE7wAHxPEAB8TzAAfE9AAHxPUAB8T3AAfE+AAHxXMAB8V1AAfFdwAHxXkAB8V8AAfFfQAHxX4AB8V/AAfFgAAHxYIAB8WEAAfFhQAHxYYAB8WIAAfFiQAHxhwAB8Y/AAfGXwAHxn8AB8aBAAfGgwAHxoUAB8aHAAfGigAHxosAB8aMAAfGjwAHxpAAB8aSAAfGkwAHxpUAB8aYAAfGmQAHxpoAB8adAAfGngAHxqMAB8a8AAfGxQAHxscAB8bJAAfG0gAHxtUAB8bYAAfG2gAHxyMAB8dHAAfHbgAHx5IAB8eVAAfHlwAHx5kAB8ebAAfHnQAHx58AB8egAAfHowAHx7wAB8fdAAfH3wAHx+EAB8fjAAfH5QAHx+cAB8fpAAfH6wAHx+0AB8gOAAfIEQAHyBQAB8gXAAfIGgAHyB0AB8ggAAfIIwAHyCYAB8goAAfIowAHyKUAB8inAAfIqQAHyKwAB8itAAfIrgAHyK8AB8iwAAfIsgAHyLQAB8i1AAfItgAHyLgAB8i5AAfJNAAHyTYAB8k4AAfJOgAHyT0AB8k+AAfJPwAHyUAAB8lBAAfJQwAHyUUAB8lGAAfJRwAHyUkAB8lKAAfJxQAHyccAB8nKAAfJzAAHyc8AB8nQAAfJ0QAHydIAB8nTAAfJ1QAHydcAB8nYAAfJ2QAHydsAB8ncAAfJ9QAHyfYAB8n3AAfJ+QAHynQAB8p2AAfKeAAHynoAB8p9AAfKfgAHyn8AB8qAAAfKgQAHyoMAB8qFAAfKhgAHyocAB8qJAAfKigAHywUAB8sHAAfLCQAHywsAB8sOAAfLDwAHyxAAB8sRAAfLEgAHyxQAB8sWAAfLFwAHyxgAB8saAAfLGwAHy5YAB8uYAAfLmgAHy5wAB8ufAAfLoAAHy6EAB8uiAAfLowAHy6UAB8unAAfLqAAHy6kAB8urAAfLrAAHzCcAB8wpAAfMKwAHzC0AB8wwAAfMMQAHzDIAB8wzAAfMNAAHzDYAB8w4AAfMOQAHzDoAB8w8AAfMPQAHzLgAB8y6AAfMvAAHzL4AB8zBAAfMwgAHzMMAB8zEAAfMxQAHzMcAB8zJAAfMygAHzMsAB8zNAAfMzgAHzRcAB807AAfNYgAHzYYAB82JAAfNiwAHzY0AB82PAAfNkQAHzZMAB82UAAfNlwAHzbAAB83NAAfNzwAHzdEAB83TAAfN1QAHzdcAB83ZAAfN2wAHzfgAB837AAfN/gAHzgEAB84EAAfOBwAHzgoAB84NAAfODwAHzooAB86MAAfOjwAHzpEAB86UAAfOlQAHzpYAB86XAAfOmAAHzpoAB86cAAfOnQAHzp4AB86gAAfOoQAHzxwAB88eAAfPIAAHzyIAB88lAAfPJgAHzycAB88oAAfPKQAHzysAB88tAAfPLgAHzy8AB88xAAfPMgAHz60AB8+vAAfPsgAHz7QAB8+3AAfPuAAHz7kAB8+6AAfPuwAHz70AB8+/AAfPwAAHz8EAB8/DAAfPxAAH0D8AB9BBAAfQRAAH0EYAB9BJAAfQSgAH0EsAB9BMAAfQTQAH0E8AB9BRAAfQUgAH0FMAB9BVAAfQVgAH0NEAB9DTAAfQ1QAH0NcAB9DaAAfQ2wAH0NwAB9DdAAfQ3gAH0OAAB9DiAAfQ4wAH0OQAB9DmAAfQ5wAH0WIAB9FkAAfRZgAH0Wg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AB/ShAAf0owAH9KUAB/SoAAf0qQAH9KoAB/SrAAf0rAAH9K4AB/SwAAf0sQAH9LIAB/S0AAf0tQAH9TAAB/UyAAf1NAAH9TYAB/U5AAf1OgAH9TsAB/U8AAf1PQAH9T8AB/VBAAf1QgAH9UMAB/VFAAf1RgAH9cEAB/XDAAf1xgAH9cgAB/XLAAf1zAAH9c0AB/XOAAf1zwAH9dEAB/XTAAf11AAH9dUAB/XXAAf12AAH9lMAB/ZVAAf2VwAH9lkAB/ZcAAf2XQAH9l4AB/ZfAAf2YAAH9mIAB/ZkAAf2ZQAH9mYAB/ZoAAf2aQAH9uQAB/bmAAf26AAH9uoAB/btAAf27gAH9u8AB/bwAAf28QAH9vMAB/b1AAf29gAH9vcAB/b5AAf2+gAH93UAB/d3AAf3egAH93wAB/d/AAf3gAAH94EAB/eCAAf3gwAH94UAB/eHAAf3iAAH94kAB/eLAAf3jAAH+B8AB/hCAAf4YgAH+IIAB/iEAAf4hgAH+IgAB/iKAAf4jQAH+I4AB/iPAAf4kgAH+JMAB/iVAAf4lgAH+JgAB/ibAAf4nAAH+J0AB/igAAf4oQAH+KYAB/i/AAf4yAAH+MoAB/jMAAf41QAH+NgAB/jbAAf43QAH+SYAB/lKAAf5cQAH+ZUAB/mYAAf5mgAH+ZwAB/meAAf5oAAH+aIAB/mjAAf5pgAH+b8AB/ngAAf54gAH+eQAB/nmAAf56AAH+eoAB/nsAAf57gAH+fAAB/oRAAf6FAAH+hcAB/oaAAf6HQAH+iAAB/ojAAf6JgAH+ikAB/orAAf6pgAH+qgAB/qqAAf6rAAH+q8AB/qwAAf6sQAH+rIAB/qzAAf6tQAH+rcAB/q4AAf6uQAH+rsAB/q8AAf7NwAH+zkAB/s7AAf7PQAH+0AAB/tBAAf7QgAH+0MAB/tEAAf7RgAH+0gAB/tJAAf7SgAH+0wAB/tNAAf7yAAH+8oAB/vNAAf7zwAH+9IAB/vTAAf71AAH+9UAB/vWAAf72AAH+9oAB/vbAAf73AAH+94AB/vfAAf7+AAH+/kAB/v6AAf7/AAH/HcAB/x5AAf8ewAH/H0AB/yAAAf8gQAH/IIAB/yDAAf8hAAH/IYAB/yIAAf8iQAH/IoAB/yMAAf8jQAH/QgAB/0KAAf9DAAH/Q4AB/0RAAf9EgAH/RMAB/0UAAf9FQAH/RcAB/0ZAAf9GgAH/RsAB/0dAAf9HgAH/ZkAB/2bAAf9nQAH/Z8AB/2iAAf9owAH/aQAB/2lAAf9pgAH/agAB/2qAAf9qwAH/awAB/2uAAf9rwAH/ioAB/4sAAf+LgAH/jAAB/4zAAf+NAAH/jUAB/42AAf+NwAH/jkAB/47AAf+PAAH/j0AB/4/AAf+QAAH/rsAB/69AAf+vwAH/sEAB/7EAAf+xQAH/sYAB/7HAAf+yAAH/soAB/7MAAf+zQAH/s4AB/7QAAf+0QAH/xoAB/8+AAf/ZQAH/4kAB/+MAAf/jgAH/5AAB/+SAAf/lAAH/5YAB/+XAAf/mgAH/7MAB//QAAf/0gAH/9QAB//WAAf/2AAH/9oAB//cAAf/3gAH//sAB//+AAgAAQAIAAQACAAHAAgACgAIAA0ACAAQAAgAEgAIAI0ACACPAAgAkQAIAJMACACWAAgAlwAIAJgACACZAAgAmgAIAJwACACeAAgAnwAIAKAACACiAAgAowAIAR4ACAEgAAgBIgAIASQACAEnAAgBKAAIASkACAEqAAgBKwAIAS0ACAEvAAgBMAAIATEACAEzAAgBNAAIAa8ACAGxAAgBswAIAbUACAG4AAgBuQAIAboACAG7AAgBvAAIAb4ACAHAAAgBwQAIAcIACAHEAAgBxQAIAkAACAJCAAgCRQAIAkcACAJKAAgCSwAIAkwACAJNAAgCTgAIAlAACAJSAAgCUwAIAlQACAJWAAgCVwAIAtIACALUAAgC1gAIAtgACALbAAgC3AAIAt0ACALeAAgC3wAIAuEACALjAAgC5AAIAuUACALnAAgC6AAIA2MACANlAAgDZwAIA2kACANsAAgDbQAIA24ACANvAAgDcAAIA3IACAN0AAgDdQAIA3YACAN4AAgDeQAIA/QACAP2AAgD+AAIA/oACAP9AAgD/gAIA/8ACAQAAAgEAQAIBAMACAQFAAgEBgAIBAcACAQJAAgECgAIBJ0ACATAAAgE4AAIBQAACAUCAAgFBAAIBQYACAUIAAgFCwAIBQwACAUNAAgFEAAIBREACAUTAAgFFAAIBRcACAUaAAgFGwAIBRwACAUfAAgFIAAIBSUACAU+AAgFRwAIBUkACAVLAAgFVAAIBVcACAVaAAgFXAAIBaUACAXJAAgF8AAIBhQACAYXAAgGGQAIBhsACAYdAAgGHwAIBiEACAYiAAgGJQAIBj4ACAZfAAgGYQAIBmMACAZlAAgGZwAIBmkACAZrAAgGbQAIBm8ACAaQAAgGkwAIBpYACAaZAAgGnAAIBp8ACAaiAAgGpQAIBqgACAaqAAgHJQAIBycACAcpAAgHKwAIBy4ACAcvAAgHMAAIBzEACAcyAAgHNAAIBzYACAc3AAgHOAAIBzoACAc7AAgHtgAIB7gACAe6AAgHvAAIB78ACAfAAAgHwQAIB8IACAfDAAgHxQAIB8cACAfIAAgHyQAIB8sACAfMAAgIRwAICEkACAhMAAgITgAICFEACAhSAAgIUwAICFQACAhVAAgIVwAICFkACAhaAAgIWwAICF0ACAheAAgIdwAICHgACAh5AAgIewAICPYACAj4AAgI+gAICPwACAj/AAgJAAAICQEACAkCAAgJAwAICQUACAkHAAgJCAAICQkACAkLAAgJDAAICYcACAmJAAgJiwAICY0ACAmQAAgJkQAICZIACAmTAAgJlAAICZYACAmYAAgJmQAICZoACAmcAAgJnQAIChgACAoaAAgKHAAICh4ACAohAAgKIgAICiMACAokAAgKJQAICicACAopAAgKKgAICisACAotAAgKLgAICqkACAqrAAgKrQAICq8ACAqyAAgKswAICrQACAq1AAgKtgAICrgACAq6AAgKuwAICrwACAq+AAgKvwAICzoACAs8AAgLPgAIC0AACAtDAAgLRAAIC0UACAtGAAgLRwAIC0kACAtLAAgLTAAIC00ACAtPAAgLUAAIC5kACAu9AAgL5AAIDAgACAwLAAgMDQAIDA8ACAwRAAgMEwAIDBUACAwWAAgMGQAIDDIACAxPAAgMUQAIDFMACAxVAAgMVwAIDFkACAxbAAgMXQAIDHoACAx9AAgMgAAIDIMACAyGAAgMiQAIDIwACAyPAAgMkQAIDQwACA0OAAgNEAAIDRIACA0VAAgNFgAIDRcACA0YAAgNGQAIDRsACA0dAAgNHgAIDR8ACA0hAAgNIgAIDZ0ACA2fAAgNogAIDaQACA2nAAgNqAAIDakACA2qAAgNqwAIDa0ACA2vAAgNsAAIDbEACA2zAAgNtAAIDi8ACA4xAAgOMwAIDjUACA44AAgOOQAIDjoACA47AAgOPAAIDj4ACA5AAAgOQQAIDkIACA5EAAgORQAIDsAACA7CAAgOxQAIDscACA7KAAgOywAIDswACA7NAAgOzgAIDtAACA7SAAgO0wAIDtQACA7WAAgO1wAID1oACA9+AAgPogAID8UACA/sAAgQDAAIEDMACBBaAAgQegAIEJ4ACBDCAAgQxAAIEMcACBDJAAgQywAIEM0ACBDQAAgQ0wAIENUACBDXAAgQ2gAIENwACBDeAAgQ4QAIEOQACBDlAAgQ7gAIEQcACBEMAAgRDgAIERMACBEWAAgRGAAIEWEACBGFAAgRrAAIEdAACBHTAAgR1QAIEdcACBHZAAgR2wAIEd0ACBHeAAgR4QAIEfoACBIfAAgSIQAIEiMACBIlAAgSJwAIEikACBIrAAgSLQAIEi8ACBIxAAgSVgAIElkACBJcAAgSXwAIEmIACBJlAAgSaAAIEmsACBJuAAgScQAIEnMACBLuAAgS8AAIEvMACBL1AAgS+AAIEvkACBL6AAgS+wAIEvwACBL+AAgTAAAIEwEACBMCAAgTBAAIEwUACBMWAAgTFwAIExkACBOUAAgTlgAIE5gACBOaAAgTnQAIE54ACBOfAAgToAAIE6EACBOjAAgTpQAIE6YACBOnAAgTqQAIE6oACBQlAAgUJwAIFCoACBQsAAgULwAIFDAACBQxAAgUMgAIFDMACBQ1AAgUNwAIFDgACBQ5AAgUOwAIFDwACBRNAAgUTgAIFFAACBTLAAgUzQAIFM8ACBTRAAgU1AAIFNUACBTWAAgU1wAIFNgACBTaAAgU3AAIFN0ACBTeAAgU4AAIFOEACBVcAAgVXgAIFWEACBVjAAgVZgAIFWcACBVoAAgVaQAIFWoACBVsAAgVbgAIFW8ACBVwAAgVcgAIFXMACBWEAAgVhQAIFYcACBYCAAgWBAAIFgYACBYIAAgWCwAIFgwACBYNAAgWDgAIFg8ACBYRAAgWEwAIFhQACBYVAAgWFwAIFhgACBaTAAgWlQAIFpgACBaaAAgWnQAIFp4ACBafAAgWoAAIFqEACBajAAgWpQAIFqYACBanAAgWqQAIFqoACBbDAAgWxAAIFsUACBbHAAgXQgAIF0QACBdGAAgXSAAIF0sACBdMAAgXTQAIF04ACBdPAAgXUQAIF1MACBdUAAgXVQAIF1cACBdYAAgX0wAIF9UACBfYAAgX2gAIF90ACBfeAAgX3wAIF+AACBfhAAgX4wAIF+UACBfmAAgX5wAIF+kACBfqAAgYBwAIGCAACBhBAAgYRAAIGEcACBhKAAgYTQAIGFAACBhTAAgYVgAIGFkACBh6AAgYfQAIGIAACBiDAAgYhgAIGIkACBiMAAgYjwAIGJIACBiUAAgYpwAIGL4ACBjXAAgY6QAIGPgACBkPAAgZJwAIGboACBndAAgZ/QAIGh0ACBofAAgaIQAIGiMACBolAAgaKAAIGikACBoqAAgaLQAIGi4ACBowAAgaMQAIGjMACBo2AAgaNwAIGjgACBo7AAgaPAAIGkEACBpaAAgaYwAIGmUACBpnAAgacAAIGnMACBp2AAgaeAAIGsEACBrlAAgbDAAIGzAACBszAAgbNQAIGzcACBs5AAgbOwAIGz0ACBs+AAgbQQAIG1oACBt7AAgbfQAIG38ACBuBAAgbgwAIG4UACBuHAAgbiQAIG4sACBusAAgbrwAIG7IACBu1AAgbuAAIG7sACBu+AAgbwQAIG8QACBvGAAgcQQAIHEMACBxFAAgcRwAIHEoACBxLAAgcTAAIHE0ACBxOAAgcUAAIHFIACBxTAAgcVAAIHFYACBxXAAgc0gAIHNQACBzWAAgc2AAIHNsACBzcAAgc3QAIHN4ACBzfAAgc4QAIHOMACBzkAAgc5QAIHOcACBzoAAgdYwAIHWUACB1oAAgdagAIHW0ACB1uAAgdbwAIHXAACB1xAAgdcwAIHXUACB12AAgddwAIHXkACB16AAgdkwAIHZQACB2VAAgdlwAIHhIACB4UAAgeFgAIHhgACB4bAAgeHAAIHh0ACB4eAAgeHwAIHiEACB4jAAgeJAAIHiUACB4nAAgeKAAIHqMACB6lAAgepwAIHqkACB6sAAgerQAIHq4ACB6vAAgesAAIHrIACB60AAgetQAIHrYACB64AAgeuQAIHzQACB82AAgfOAAIHzoACB89AAgfPgAIHz8ACB9AAAgfQQAIH0MACB9FAAgfRgAIH0cACB9JAAgfSgAIH8UACB/HAAgfyQAIH8sACB/OAAgfzwAIH9AACB/RAAgf0gAIH9QACB/WAAgf1wAIH9gACB/aAAgf2wAIIFYACCBYAAggWgAIIFwACCBfAAggYAAIIGEACCBiAAggYwAIIGUACCBnAAggaAAIIGkACCBrAAggbAAIILUACCDZAAghAAAIISQACCEnAAghKQAIISsACCEtAAghLwAIITEACCEyAAghNQAIIU4ACCFrAAghbQAIIW8ACCFxAAghcwAIIXUACCF3AAgheQAIIZYACCGZAAghnAAIIZ8ACCGiAAghpQAIIagACCGrAAghrQAIIigACCIqAAgiLAAIIi4ACCIxAAgiMgAIIjMACCI0AAgiNQAIIjcACCI5AAgiOgAIIjsACCI9AAgiPgAIIrkACCK7AAgivQAIIr8ACCLCAAgiwwAIIsQACCLFAAgixgAIIsgACCLKAAgiywAIIswACCLOAAgizwAII0oACCNMAAgjTgAII1AACCNTAAgjVAAII1UACCNWAAgjVwAII1kACCNbAAgjXAAII10ACCNfAAgjYAAII9sACCPdAAgj3wAII+EACCPkAAgj5QAII+YACCPnAAgj6AAII+oACCPsAAgj7QAII+4ACCPwAAgj8QAIJGwACCRuAAgkcAAIJHIACCR1AAgkdgAIJHcACCR4AAgkeQAIJHsACCR9AAgkfgAIJH8ACCSBAAgkggAIJP0ACCT/AAglAQAIJQMACCUGAAglBwAIJQgACCUJAAglCgAIJQwACCUOAAglDwAIJRAACCUSAAglEwAIJY4ACCWQAAglkgAIJZQACCWXAAglmAAIJZkACCWaAAglmwAIJZ0ACCWfAAgloAAIJaEACCWjAAglpAAIJjcACCZaAAgmegAIJpoACCacAAgmngAIJqAACCaiAAgmpQAIJqYACCanAAgmqgAIJqsACCatAAgmrgAIJrAACCazAAgmtAAIJrUACCa4AAgmuQAIJr4ACCbXAAgm4AAIJuIACCbkAAgm7QAIJvAACCbzAAgm9QAIJz4ACCdiAAgniQAIJ60ACCewAAgnsgAIJ7QACCe2AAgnuAAIJ7oACCe7AAgnvgAIJ9cACCf4AAgn+gAIJ/wACCf+AAgoAAAIKAIACCgEAAgoBgAIKAgACCgpAAgoLAAIKC8ACCgyAAgoNQAIKDgACCg7AAgoPgAIKEEACChDAAgovgAIKMAACCjCAAgoxAAIKMcACCjIAAgoyQAIKMoACCjLAAgozQAIKM8ACCjQAAgo0QAIKNMACCjUAAgpTwAIKVEACClTAAgpVQAIKVgACClZAAgpWgAIKVsACClcAAgpXgAIKWAACClhAAgpYgAIKWQACCllAAgp4AAIKeIACCnlAAgp5wAIKeoACCnrAAgp7AAIKe0ACCnuAAgp8AAIKfIACCnzAAgp9AAIKfYACCn3AAgqEAAIKhEACCoSAAgqFAAIKo8ACCqRAAgqkwAIKpUACCqYAAgqmQAIKpoACCqbAAgqnAAIKp4ACCqgAAgqoQAIKqIACCqkAAgqpQAIKyAACCsiAAgrJAAIKyYACCspAAgrKgAIKysACCssAAgrLQAIKy8ACCsxAAgrMgAIKzMACCs1AAgrNgAIK7EACCuzAAgrtQAIK7cACCu6AAgruwAIK7wACCu9AAgrvgAIK8AACCvCAAgrwwAIK8QACCvGAAgrxwAILEIACCxEAAgsRgAILEgACCxLAAgsTAAILE0ACCxOAAgsTwAILFEACCxTAAgsVAAILFUACCxXAAgsWAAILNMACCzVAAgs1wAILNkACCzcAAgs3QAILN4ACCzfAAgs4AAILOIACCzkAAgs5QAILOYACCzoAAgs6QAILTIACC1WAAgtfQAILaEACC2kAAgtpgAILagACC2qAAgtrAAILa4ACC2vAAgtsgAILcsACC3oAAgt6gAILewACC3uAAgt8AAILfIACC30AAgt9gAILhMACC4WAAguGQAILhwACC4fAAguIgAILiUACC4oAAguKgAILqUACC6nAAguqgAILqwACC6vAAgusAAILrEACC6yAAguswAILrUACC63AAguuAAILrkACC67AAguvAAILzcACC85AAgvOwAILz0ACC9AAAgvQQAIL0IACC9DAAgvRAAIL0YACC9IAAgvSQAIL0oACC9MAAgvTQAIL8gACC/KAAgvzAAIL84ACC/RAAgv0gAIL9MACC/UAAgv1QAIL9cACC/ZAAgv2gAIL9sACC/dAAgv3gAIMFkACDBbAAgwXgAIMGAACDBjAAgwZAAIMGUACDBmAAgwZwAIMGkACDBrAAgwbAAIMG0ACDBvAAgwcAAIMOsACDDtAAgw7wAIMPEACDD0AAgw9QAIMPYACDD3AAgw+AAIMPoACDD8AAgw/QAIMP4ACDEAAAgxAQAIMXwACDF+AAgxgAAIMYIACDGFAAgxhgAIMYcACDGIAAgxiQAIMYsACDGNAAgxjgAIMY8ACDGRAAgxkgAIMg0ACDIPAAgyEQAIMhMACDIWAAgyFwAIMhgACDIZAAgyGgAIMhwACDIeAAgyHwAIMiAACDIiAAgyIwAIMrYACDLZAAgy+QAIMxkACDMbAAgzHQAIMx8ACDMhAAgzJAAIMyUACDMmAAgzKQAIMyoACDMsAAgzLQAIMy8ACDMyAAgzMwAIMzQACDM3AAgzOAAIM0EACDNaAAgzYwAIM2UACDNnAAgzcAAIM3MACDN2AAgzeAAIM8EACDPlAAg0DAAINDAACDQzAAg0NQAINDcACDQ5AAg0OwAIND0ACDQ+AAg0QQAINFoACDR7AAg0fQAINH8ACDSBAAg0gwAINIUACDSHAAg0iQAINIsACDSsAAg0rwAINLIACDS1AAg0uAAINLsACDS+AAg0wQAINMQACDTGAAg1QQAINUMACDVFAAg1RwAINUoACDVLAAg1TAAINU0ACDVOAAg1UAAINVIACDVTAAg1VAAINVYACDVXAAg10gAINdQACDXWAAg12AAINdsACDXcAAg13QAINd4ACDXfAAg14QAINeMACDXkAAg15QAINecACDXoAAg2YwAINmUACDZoAAg2agAINm0ACDZuAAg2bwAINnAACDZxAAg2cwAINnUACDZ2AAg2dwAINnkACDZ6AAg2kwAINpQACDaVAAg2lwAINxIACDcUAAg3FgAINxgACDcbAAg3HAAINx0ACDceAAg3HwAINyEACDcjAAg3JAAINyUACDcnAAg3KAAIN6MACDelAAg3pwAIN6kACDesAAg3rQAIN64ACDevAAg3sAAIN7IACDe0AAg3tQAIN7YACDe4AAg3uQAIODQACDg2AAg4OAAIODoACDg9AAg4PgAIOD8ACDhAAAg4QQAIOEMACDhFAAg4RgAIOEcACDhJAAg4SgAIOMUACDjHAAg4yQAIOMsACDjOAAg4zwAIONAACDjRAAg40gAIONQACDjWAAg41wAIONgACDjaAAg42wAIOVYACDlYAAg5WgAIOVwACDlfAAg5YAAIOWEACDliAAg5YwAIOWUACDlnAAg5aAAIOWkACDlrAAg5bAAIObUACDnZAAg6AAAIOiQACDonAAg6KQAIOisACDotAAg6LwAIOjEACDoyAAg6NQAIOk4ACDprAAg6bQAIOm8ACDpxAAg6cwAIOnUACDp3AAg6eQAIOpYACDqZAAg6nAAIOp8ACDqiAAg6pQAIOqgACDqrAAg6rQAIOygACDsqAAg7LAAIOy4ACDsxAAg7MgAIOzMACDs0AAg7NQAIOzcACDs5AAg7OgAIOzsACDs9AAg7PgAIO7kACDu7AAg7vQAIO78ACDvCAAg7wwAIO8QACDvFAAg7xgAIO8gACDvKAAg7ywAIO8wACDvOAAg7zwAIPEoACDxMAAg8TgAIPFAACDxTAAg8VAAIPFUACDxWAAg8VwAIPFkACDxbAAg8XAAIPF0ACDxfAAg8YAAIPNsACDzdAAg84AAIPOIACDzlAAg85gAIPOcACDzoAAg86QAIPOsACDztAAg87gAIPO8ACDzxAAg88gAIPW0ACD1vAAg9cQAIPXMACD12AAg9dwAIPXgACD15AAg9egAIPXwACD1+AAg9fwAIPYAACD2CAAg9gwAIPf4ACD4AAAg+AgAIPgQACD4HAAg+CAAIPgkACD4KAAg+CwAIPg0ACD4PAAg+EAAIPhEACD4TAAg+FAAIPo8ACD6RAAg+kwAIPpUACD6YAAg+mQAIPpoACD6bAAg+nAAIPp4ACD6gAAg+oQAIPqIACD6kAAg+pQAIPzgACD9bAAg/ewAIP5sACD+dAAg/nwAIP6EACD+jAAg/pgAIP6cACD+oAAg/qwAIP6wACD+uAAg/rwAIP7EACD+0AAg/tQAIP7YACD+5AAg/ugAIP78ACD/YAAg/4QAIP+MACD/lAAg/7gAIP/EACD/0AAg/9gAIQD8ACEBjAAhAigAIQK4ACECxAAhAswAIQLUACEC3AAhAuQAIQLsACEC8AAhAvwAIQNgACED5AAhA+wAIQP0ACED/AAhBAQAIQQMACEEFAAhBBwAIQQkACEEqAAhBLQAIQTAACEEzAAhBNgAIQTkACEE8AAhBPwAIQUIACEFEAAhBvwAIQcEACEHDAAhBxQAIQcgACEHJAAhBygAIQcsACEHMAAhBzgAIQdAACEHRAAhB0gAIQdQACEHVAAhCUAAIQlIACEJUAAhCVgAIQlkACEJaAAhCWwAIQlwACEJdAAhCXwAIQmEACEJiAAhCYwAIQmUACEJmAAhC4QAIQuMACELmAAhC6AAIQusACELsAAhC7QAIQu4ACELvAAhC8QAIQvMACEL0AAhC9QAIQvcACEL4AAhDEQAIQxIACEMTAAhDFQAIQ5AACEOSAAhDlAAIQ5YACEOZAAhDmgAIQ5sACEOcAAhDnQAIQ58ACEOhAAhDogAIQ6MACEOlAAhDpgAIRCEACEQjAAhEJQAIRCcACEQqAAhEKwAIRCwACEQtAAhELgAIRDAACEQyAAhEMwAIRDQACEQ2AAhENwAIRLIACES0AAhEtgAIRLgACES7AAhEvAAIRL0ACES+AAhEvwAIRMEACETDAAhExAAIRMUACETHAAhEyAAIRUMACEVFAAhFRwAIRUkACEVMAAhFTQAIRU4ACEVPAAhFUAAIRVIACEVUAAhFVQAIRVYACEVYAAhFWQAIRdQACEXWAAhF2AAIRdoACEXdAAhF3gAIRd8ACEXgAAhF4QAIReMACEXlAAhF5gAIRecACEXpAAhF6gAIRjMACEZXAAhGfgAIRqIACEalAAhGpwAIRqkACEarAAhGrQAIRq8ACEawAAhGswAIRswACEbpAAhG6wAIRu0ACEbvAAhG8QAIRvMACEb1AAhG9wAIRxQACEcXAAhHGgAIRx0ACEcgAAhHIwAIRyYACEcpAAhHKwAIR6YACEeoAAhHqgAIR6wACEevAAhHsAAIR7EACEeyAAhHswAIR7UACEe3AAhHuAAIR7kACEe7AAhHvAAISDcACEg5AAhIOwAISD0ACEhAAAhIQQAISEIACEhDAAhIRAAISEYACEhIAAhISQAISEoACEhMAAhITQAISMgACEjKAAhIzAAISM4ACEjRAAhI0gAISNMACEjUAAhI1QAISNcACEjZAAhI2gAISNsACEjdAAhI3gAISVkACElbAAhJXgAISWAACEljAAhJZAAISWUACElmAAhJZwAISWkACElrAAhJbAAISW0ACElvAAhJcAAISesACEntAAhJ7wAISfEACEn0AAhJ9QAISfYACEn3AAhJ+AAISfoACEn8AAhJ/QAISf4ACEoAAAhKAQAISnwACEp+AAhKgAAISoIACEqFAAhKhgAISocACEqIAAhKiQAISosACEqNAAhKjgAISo8ACEqRAAhKkgAISw0ACEsPAAhLEQAISxMACEsWAAhLFwAISxgACEsZAAhLGgAISxwACEseAAhLHwAISyAACEsiAAhLIwAIS7YACEvZAAhL+QAITBkACEwbAAhMHQAITB8ACEwhAAhMJAAITCUACEwmAAhMKQAITCoACEwsAAhMLQAITC8ACEwyAAhMMwAITDQACEw3AAhMOAAITD0ACExWAAhMXwAITGEACExjAAhMbAAITG8ACExyAAhMdAAITL0ACEzhAAhNCAAITSwACE0vAAhNMQAITTMACE01AAhNNwAITTkACE06AAhNPQAITVYACE13AAhNeQAITXsACE19AAhNfwAITYEACE2DAAhNhQAITYcACE2oAAhNqwAITa4ACE2xAAhNtAAITbcACE26AAhNvQAITcAACE3CAAhOPQAITj8ACE5BAAhOQwAITkYACE5HAAhOSAAITkkACE5KAAhOTAAITk4ACE5PAAhOUAAITlIACE5TAAhOzgAITtAACE7SAAhO1AAITtcACE7YAAhO2QAITtoACE7bAAhO3QAITt8ACE7gAAhO4QAITuMACE7kAAhPXwAIT2EACE9kAAhPZgAIT2kACE9qAAhPawAIT2wACE9tAAhPbwAIT3EACE9yAAhPcwAIT3UACE92AAhPjwAIT5AACE+RAAhPkwAIUA4ACFAQAAhQEgAIUBQACFAXAAhQGAAIUBkACFAaAAhQGwAIUB0ACFAfAAhQIAAIUCEACFAjAAhQJAAIUJ8ACFChAAhQowAIUKUACFCoAAhQqQAIUKoACFCrAAhQrAAIUK4ACFCwAAhQsQAIULIACFC0AAhQtQAIUTAACFEyAAhRNAAIUTYACFE5AAhROgAIUTsACFE8AAhRPQAIUT8ACFFBAAhRQgAIUUMACFFFAAhRRgAIUcEACFHDAAhRxQAIUccACFHKAAhRywAIUcwACFHNAAhRzgAIUdAACFHSAAhR0wAIUdQACFHWAAhR1wAIUlIACFJUAAhSVgAIUlgACFJbAAhSXAAIUl0ACFJeAAhSXwAIUmEACFJjAAhSZAAIUmUACFJnAAhSaAAIUrEACFLVAAhS/AAIUyAACFMjAAhTJQAIUycACFMpAAhTKwAIUy0ACFMuAAhTMQAIU0oACFNnAAhTaQAIU2sACFNtAAhTbwAIU3EACFNzAAhTdQAIU5IACFOVAAhTmAAIU5sACFOeAAhToQAIU6QACFOnAAhTqQAIVCQACFQmAAhUKQAIVCsACFQuAAhULwAIVDAACFQxAAhUMgAIVDQACFQ2AAhUNwAIVDgACFQ6AAhUOwAIVLYACFS4AAhUugAIVLwACFS/AAhUwAAIVMEACFTCAAhUwwAIVMUACFTHAAhUyAAIVMkACFTLAAhUzAAIVUcACFVJAAhVSwAIVU0ACFVQAAhVUQAIVVIACFVTAAhVVAAIVVYACFVYAAhVWQAIVVoACFVcAAhVXQAIVdgACFXaAAhV3QAIVd8ACFXiAAhV4wAIVeQACFXlAAhV5gAIVegACFXqAAhV6wAIVewACFXuAAhV7wAIVmoACFZsAAhWbgAIVnAACFZzAAhWdAAIVnUACFZ2AAhWdwAIVnkACFZ7AAhWfAAIVn0ACFZ/AAhWgAAIVvsACFb9AAhW/wAIVwEACFcEAAhXBQAIVwYACFcHAAhXCAAIVwoACFcMAAhXDQAIVw4ACFcQAAhXEQAIV4wACFeOAAhXkAAIV5IACFeVAAhXlgAIV5cACFeYAAhXmQAIV5sACFedAAhXngAIV58ACFehAAhXogAIWDUACFhYAAhYeAAIWJgACFiaAAhYnAAIWJ4ACFigAAhYowAIWKQACFilAAhYqAAIWKkACFirAAhYrAAIWK4ACFixAAhYsgAIWLMACFi2AAhYtwAIWLwACFjVAAhY3gAIWOAACFjiAAhY6wAIWO4ACFjxAAhY8wAIWTwACFlgAAhZhwAIWasACFmuAAhZsAAIWbIACFm0AAhZtgAIWbgACFm5AAhZvAAIWdUACFn2AAhZ+AAIWfoACFn8AAhZ/gAIWgAACFoCAAhaBAAIWgYACFonAAhaKgAIWi0ACFowAAhaMwAIWjYACFo5AAhaPAAIWj8ACFpBAAhavAAIWr4ACFrAAAhawgAIWsUACFrGAAhaxwAIWsgACFrJAAhaywAIWs0ACFrOAAhazwAIWtEACFrSAAhbTQAIW08ACFtRAAhbUwAIW1YACFtXAAhbWAAIW1kACFtaAAhbXAAIW14ACFtfAAhbYAAIW2IACFtjAAhb3gAIW+AACFvjAAhb5QAIW+gACFvpAAhb6gAIW+sACFvsAAhb7gAIW/AACFvxAAhb8gAIW/QACFv1AAhcDgAIXA8ACFwQAAhcEgAIXI0ACFyPAAhckQAIXJMACFyWAAhclwAIXJgACFyZAAhcmgAIXJwACFyeAAhcnwAIXKAACFyiAAhcowAIXR4ACF0gAAhdIgAIXSQACF0nAAhdKAAIXSkACF0qAAhdKwAIXS0ACF0vAAhdMAAIXTEACF0zAAhdNAAIXa8ACF2xAAhdswAIXbUACF24AAhduQAIXboACF27AAhdvAAIXb4ACF3AAAhdwQAIXcIACF3EAAhdxQAIXkAACF5CAAheRAAIXkYACF5JAAheSgAIXksACF5MAAheTQAIXk8ACF5RAAheUgAIXlMACF5VAAheVgAIXtEACF7TAAhe1QAIXtcACF7aAAhe2wAIXtwACF7dAAhe3gAIXuAACF7iAAhe4wAIXuQACF7mAAhe5wAIXzAACF9UAAhfewAIX58ACF+iAAhfpAAIX6YACF+oAAhfqgAIX6wACF+tAAhfsAAIX8kACF/mAAhf6AAIX+oACF/sAAhf7gAIX/AACF/yAAhf9AAIYBEACGAUAAhgFwAIYBoACGAdAAhgIAAIYCMACGAmAAhgKAAIYKMACGClAAhgpwAIYKkACGCsAAhgrQAIYK4ACGCvAAhgsAAIYLIACGC0AAhgtQAIYLYACGC4AAhguQAIYTQACGE2AAhhOAAIYToACGE9AAhhPgAIYT8ACGFAAAhhQQAIYUMACGFFAAhhRgAIYUcACGFJAAhhSgAIYcUACGHHAAhhyQAIYcsACGHOAAhhzwAIYdAACGHRAAhh0gAIYdQACGHWAAhh1wAIYdgACGHaAAhh2wAIYlYACGJYAAhiWgAIYlwACGJfAAhiYAAIYmEACGJiAAhiYwAIYmUACGJnAAhiaAAIYmkACGJrAAhibAAIYucACGLpAAhi6wAIYu0ACGLwAAhi8QAIYvIACGLzAAhi9AAIYvYACGL4AAhi+QAIYvoACGL8AAhi/QAIY3gACGN6AAhjfAAIY34ACGOBAAhjggAIY4MACGOEAAhjhQAIY4cACGOJAAhjigAIY4sACGONAAhjjgAIZAkACGQLAAhkDQAIZA8ACGQSAAhkEwAIZBQACGQVAAhkFgAIZBgACGQaAAhkGwAIZBwACGQeAAhkHwAIZLIACGTVAAhk9QAIZRUACGUXAAhlGQAIZRsACGUdAAhlIAAIZSEACGUiAAhlJQAIZSYACGUoAAhlKQAIZSwACGUvAAhlMAAIZTEACGU0AAhlNQAIZToACGVTAAhlXAAIZV4ACGVgAAhlaQAIZWwACGVvAAhlcQAIZboACGXeAAhmBQAIZikACGYsAAhmLgAIZjAACGYyAAhmNAAIZjYACGY3AAhmOgAIZlMACGZ0AAhmdgAIZngACGZ6AAhmfAAIZn4ACGaAAAhmggAIZoQACGalAAhmqAAIZqsACGauAAhmsQAIZrQACGa3AAhmugAIZr0ACGa/AAhnOgAIZzwACGc+AAhnQAAIZ0MACGdEAAhnRQAIZ0YACGdHAAhnSQAIZ0sACGdMAAhnTQAIZ08ACGdQAAhnywAIZ80ACGfPAAhn0QAIZ9QACGfVAAhn1gAIZ9cACGfYAAhn2gAIZ9wACGfdAAhn3gAIZ+AACGfhAAhoXAAIaF4ACGhhAAhoYwAIaGYACGhnAAhoaAAIaGkACGhqAAhobAAIaG4ACGhvAAhocAAIaHIACGhzAAhojAAIaI0ACGiOAAhokAAIaQsACGkNAAhpDwAIaREACGkUAAhpFQAIaRYACGkXAAhpGAAIaRoACGkcAAhpHQAIaR4ACGkgAAhpIQAIaZwACGmeAAhpoAAIaaIACGmlAAhppgAIaacACGmoAAhpqQAIaasACGmtAAhprgAIaa8ACGmxAAhpsgAIai0ACGovAAhqMQAIajMACGo2AAhqNwAIajgACGo5AAhqOgAIajwACGo+AAhqPwAIakAACGpCAAhqQwAIar4ACGrAAAhqwgAIasQACGrHAAhqyAAIaskACGrKAAhqywAIas0ACGrPAAhq0AAIatEACGrTAAhq1AAIa08ACGtRAAhrUwAIa1UACGtYAAhrWQAIa1oACGtbAAhrXAAIa14ACGtgAAhrYQAIa2IACGtkAAhrZQAIa64ACGvSAAhr+QAIbB0ACGwgAAhsIgAIbCQACGwmAAhsKAAIbCoACGwrAAhsLgAIbEcACGxkAAhsZgAIbGgACGxqAAhsbAAIbG4ACGxwAAhscgAIbI8ACGySAAhslQAIbJgACGybAAhsngAIbKEACGykAAhspgAIbSEACG0jAAhtJQAIbScACG0qAAhtKwAIbSwACG0tAAhtLgAIbTAACG0yAAhtMwAIbTQACG02AAhtNwAIbbIACG20AAhttgAIbbgACG27AAhtvAAIbb0ACG2+AAhtvwAIbcEACG3DAAhtxAAIbcUACG3HAAhtyAAIbkMACG5FAAhuRwAIbkkACG5MAAhuTQAIbk4ACG5PAAhuUAAIblIACG5UAAhuVQAIblYACG5YAAhuWQAIbtQACG7WAAhu2QAIbtsACG7eAAhu3wAIbuAACG7hAAhu4gAIbuQACG7mAAhu5wAIbugACG7qAAhu6wAIb2YACG9oAAhvagAIb2wACG9vAAhvcAAIb3EACG9yAAhvcwAIb3UACG93AAhveAAIb3kACG97AAhvfAAIb/cACG/5AAhv+wAIb/0ACHAAAAhwAQAIcAIACHADAAhwBAAIcAYACHAIAAhwCQAIcAoACHAMAAhwDQAIcIgACHCKAAhwjQAIcI8ACHCSAAhwkwAIcJQACHCVAAhwlgAIcJgACHCaAAhwmwAIcJwACHCeAAhwnwAIcTIACHFVAAhxdQAIcZUACHGXAAhxmQAIcZsACHGdAAhxoAAIcaEACHGiAAhxpQAIcaYACHGoAAhxqQAIcasACHGuAAhxrwAIcbAACHGzAAhxtAAIcbkACHHSAAhx2wAIcd0ACHHfAAhx6AAIcesACHHuAAhx8AAIcjkACHJdAAhyhAAIcqgACHKrAAhyrQAIcq8ACHKxAAhyswAIcrUACHK2AAhyuQAIctIACHLzAAhy9QAIcvcACHL5AAhy+wAIcv0ACHL/AAhzAQAIcwMACHMkAAhzJwAIcyoACHMtAAhzMAAIczMACHM2AAhzOQAIczwACHM+AAhzuQAIc7sACHO9AAhzvwAIc8IACHPDAAhzxAAIc8UACHPGAAhzyAAIc8oACHPLAAhzzAAIc84ACHPPAAh0SgAIdEwACHROAAh0UAAIdFMACHRUAAh0VQAIdFYACHRXAAh0WQAIdFsACHRcAAh0XQAIdF8ACHRgAAh02wAIdN0ACHTgAAh04gAIdOUACHTmAAh05wAIdOgACHTpAAh06wAIdO0ACHTuAAh07wAIdPEACHTyAAh1CwAIdQwACHUNAAh1DwAIdYoACHWMAAh1jgAIdZAACHWTAAh1lAAIdZUACHWWAAh1lwAIdZkACHWbAAh1nAAIdZ0ACHWfAAh1oAAIdhsACHYdAAh2HwAIdiEACHYkAAh2JQAIdiYACHYnAAh2KAAIdioACHYsAAh2LQAIdi4ACHYwAAh2MQAIdqwACHauAAh2sAAIdrIACHa1AAh2tgAIdrcACHa4AAh2uQAIdrsACHa9AAh2vgAIdr8ACHbBAAh2wgAIdz0ACHc/AAh3QQAId0MACHdGAAh3RwAId0gACHdJAAh3SgAId0wACHdOAAh3TwAId1AACHdSAAh3UwAId84ACHfQAAh30gAId9QACHfXAAh32AAId9kACHfaAAh32wAId90ACHffAAh34AAId+EACHfjAAh35AAIeC0ACHhRAAh4eAAIeJwACHifAAh4oQAIeKMACHilAAh4pwAIeKkACHiqAAh4rQAIeMYACHjjAAh45QAIeOcACHjpAAh46wAIeO0ACHjvAAh48QAIeQ4ACHkRAAh5FAAIeRcACHkaAAh5HQAIeSAACHkjAAh5JQAIeaAACHmiAAh5pAAIeaYACHmpAAh5qgAIeasACHmsAAh5rQAIea8ACHmxAAh5sgAIebMACHm1AAh5tgAIejEACHozAAh6NQAIejcACHo6AAh6OwAIejwACHo9AAh6PgAIekAACHpCAAh6QwAIekQACHpGAAh6RwAIesIACHrEAAh6xgAIesgACHrLAAh6zAAIes0ACHrOAAh6zwAIetEACHrTAAh61AAIetUACHrXAAh62AAIe1MACHtVAAh7VwAIe1kACHtcAAh7XQAIe14ACHtfAAh7YAAIe2IACHtkAAh7ZQAIe2YACHtoAAh7aQAIe+QACHvmAAh76AAIe+oACHvtAAh77gAIe+8ACHvwAAh78QAIe/MACHv1AAh79gAIe/cACHv5AAh7+gAIfHUACHx3AAh8eQAIfHsACHx+AAh8fwAIfIAACHyBAAh8ggAIfIQACHyGAAh8hwAIfIgACHyKAAh8iwAIfQYACH0IAAh9CgAIfQwACH0PAAh9EAAIfREACH0SAAh9EwAIfRUACH0XAAh9GAAIfRkACH0bAAh9HAAIfS0ACH0uAAh9MAAIfasACH2tAAh9rwAIfbEACH20AAh9tQAIfbYACH23AAh9uAAIfboACH28AAh9vQAIfb4ACH3AAAh9wQAIfjwACH4+AAh+QAAIfkIACH5FAAh+RgAIfkcACH5IAAh+SQAIfksACH5NAAh+TgAIfk8ACH5RAAh+UgAIfs0ACH7PAAh+0gAIftQACH7XAAh+2AAIftkACH7aAAh+2wAIft0ACH7fAAh+4AAIfuEACH7jAAh+5AAIf3cACH+aAAh/ugAIf9oACH/cAAh/3gAIf+AACH/iAAh/5QAIf+YACH/nAAh/6gAIf+sACH/tAAh/7gAIf/EACH/0AAh/9QAIf/YACH/5AAh/+gAIf/8ACIAYAAiAIQAIgCMACIAlAAiALgAIgDEACIA0AAiANgAIgH8ACICjAAiAygAIgO4ACIDxAAiA8wAIgPUACID3AAiA+QAIgPsACID8AAiA/wAIgRgACIE5AAiBOwAIgT0ACIE/AAiBQQAIgUMACIFFAAiBRwAIgUkACIFqAAiBbQAIgXAACIFzAAiBdgAIgXkACIF8AAiBfwAIgYIACIGEAAiB/wAIggEACIIDAAiCBQAIgggACIIJAAiCCgAIggsACIIMAAiCDgAIghAACIIRAAiCEgAIghQACIIVAAiCkAAIgpIACIKUAAiClgAIgpkACIKaAAiCmwAIgpwACIKdAAiCnwAIgqEACIKiAAiCowAIgqUACIKmAAiDIQAIgyMACIMmAAiDKAAIgysACIMsAAiDLQAIgy4ACIMvAAiDMQAIgzMACIM0AAiDNQAIgzcACIM4AAiDUQAIg1IACINTAAiDVQAIg9AACIPSAAiD1AAIg9YACIPZAAiD2gAIg9sACIPcAAiD3QAIg98ACIPhAAiD4gAIg+MACIPlAAiD5gAIhGEACIRjAAiEZQAIhGcACIRqAAiEawAIhGwACIRtAAiEbgAIhHAACIRyAAiEcwAIhHQACIR2AAiEdwAIhPIACIT0AAiE9gAIhPgACIT7AAiE/AAIhP0ACIT+AAiE/wAIhQEACIUDAAiFBAAIhQUACIUHAAiFCAAIhYMACIWFAAiFhwAIhYkACIWMAAiFjQAIhY4ACIWPAAiFkAAIhZIACIWUAAiFlQAIhZYACIWYAAiFmQAIhhQACIYWAAiGGAAIhhoACIYdAAiGHgAIhh8ACIYgAAiGIQAIhiMACIYlAAiGJgAIhicACIYpAAiGKgAIhnMACIaXAAiGvgAIhuIACIblAAiG5wAIhukACIbrAAiG7QAIhu8ACIbwAAiG8wAIhwwACIcpAAiHKwAIhy0ACIcvAAiHMQAIhzMACIc1AAiHNwAIh1QACIdXAAiHWgAIh10ACIdgAAiHYwAIh2YACIdpAAiHawAIh+YACIfoAAiH6gAIh+wACIfvAAiH8AAIh/EACIfyAAiH8wAIh/UACIf3AAiH+AAIh/kACIf7AAiH/AAIiHcACIh5AAiIfAAIiH4ACIiBAAiIggAIiIMACIiEAAiIhQAIiIcACIiJAAiIigAIiIsACIiNAAiIjgAIiQkACIkLAAiJDQAIiQ8ACIkSAAiJEwAIiRQACIkVAAiJFgAIiRgACIkaAAiJGwAIiRwACIkeAAiJHwAIiZoACImcAAiJnwAIiaEACImkAAiJpQAIiaYACImnAAiJqAAIiaoACImsAAiJrQAIia4ACImwAAiJsQAIiiwACIouAAiKMAAIijIACIo1AAiKNgAIijcACIo4AAiKOQAIijsACIo9AAiKPgAIij8ACIpBAAiKQgAIir0ACIq/AAiKwQAIisMACIrGAAiKxwAIisgACIrJAAiKygAIiswACIrOAAiKzwAIitAACIrSAAiK0wAIi04ACItQAAiLUwAIi1UACItYAAiLWQAIi1oACItbAAiLXAAIi14ACItgAAiLYQAIi2IACItkAAiLZQAIi/gACIwbAAiMOwAIjFsACIxdAAiMXwAIjGEACIxjAAiMZgAIjGcACIxoAAiMawAIjGwACIxuAAiMbwAIjHIACIx1AAiMdgAIjHcACIx6AAiMewAIjIAACIyZAAiMogAIjKQACIymAAiMrwAIjLIACIy1AAiMtwAIjQAACI0kAAiNSwAIjW8ACI1yAAiNdAAIjXYACI14AAiNegAIjXwACI19AAiNgAAIjZkACI26AAiNvAAIjb4ACI3AAAiNwgAIjcQACI3GAAiNyAAIjcoACI3rAAiN7gAIjfEACI30AAiN9wAIjfoACI39AAiOAAAIjgMACI4FAAiOgAAIjoIACI6EAAiOhgAIjokACI6KAAiOiwAIjowACI6NAAiOjwAIjpEACI6SAAiOkwAIjpUACI6WAAiPEQAIjxMACI8VAAiPFwAIjxoACI8bAAiPHAAIjx0ACI8eAAiPIAAIjyIACI8jAAiPJAAIjyYACI8nAAiPogAIj6QACI+nAAiPqQAIj6wACI+tAAiPrgAIj68ACI+wAAiPsgAIj7QACI+1AAiPtgAIj7gACI+5AAiP0gAIj9MACI/UAAiP1gAIkFEACJBTAAiQVQAIkFcACJBaAAiQWwAIkFwACJBdAAiQXgAIkGAACJBiAAiQYwAIkGQACJBmAAiQZwAIkOIACJDkAAiQ5gAIkOgACJDrAAiQ7AAIkO0ACJDuAAiQ7wAIkPEACJDzAAiQ9AAIkPUACJD3AAiQ+AAIkXMACJF1AAiRdwAIkXkACJF8AAiRfQAIkX4ACJF/AAiRgAAIkYIACJGEAAiRhQAIkYYACJGIAAiRiQAIkgQACJIGAAiSCAAIkgoACJINAAiSDgAIkg8ACJIQAAiSEQAIkhMACJIVAAiSFgAIkhcACJIZAAiSGgAIkpUACJKXAAiSmQAIkpsACJKeAAiSnwAIkqAACJKhAAiSogAIkqQACJKmAAiSpwAIkqgACJKqAAiSqwAIkvQACJMYAAiTPwAIk2MACJNmAAiTaAAIk2oACJNsAAiTbgAIk3AACJNxAAiTdAAIk40ACJOqAAiTrAAIk64ACJOwAAiTsgAIk7QACJO2AAiTuAAIk9UACJPYAAiT2wAIk94ACJPhAAiT5AAIk+cACJPqAAiT7AAIlGcACJRpAAiUawAIlG0ACJRwAAiUcQAIlHIACJRzAAiUdAAIlHYACJR4AAiUeQAIlHoACJR8AAiUfQAIlPgACJT6AAiU/AAIlP4ACJUBAAiVAgAIlQMACJUEAAiVBQAIlQcACJUJAAiVCgAIlQsACJUNAAiVDgAIlYkACJWLAAiVjQAIlY8ACJWSAAiVkwAIlZQACJWVAAiVlgAIlZgACJWaAAiVmwAIlZwACJWeAAiVnwAIlhoACJYcAAiWHwAIliEACJYkAAiWJQAIliYACJYnAAiWKAAIlioACJYsAAiWLQAIli4ACJYwAAiWMQAIlqwACJauAAiWsAAIlrIACJa1AAiWtgAIlrcACJa4AAiWuQAIlrsACJa9AAiWvgAIlr8ACJbBAAiWwgAIlz0ACJc/AAiXQQAIl0MACJdGAAiXRwAIl0gACJdJAAiXSgAIl0wACJdOAAiXTwAIl1AACJdSAAiXUwAIl84ACJfQAAiX0wAIl9UACJfYAAiX2QAIl9oACJfbAAiX3AAIl94ACJfgAAiX4QAIl+IACJfkAAiX5QAImHgACJibAAiYuwAImNsACJjdAAiY3wAImOEACJjjAAiY5gAImOcACJjoAAiY6wAImOwACJjuAAiY7wAImPIACJj1AAiY9gAImPcACJj6AAiY+wAImQAACJkZAAiZIgAImSQACJkmAAiZLwAImTIACJk1AAiZNwAImYAACJmkAAiZywAIme8ACJnyAAiZ9AAImfYACJn4AAiZ+gAImfwACJn9AAiaAAAImhkACJo6AAiaPAAImj4ACJpAAAiaQgAImkQACJpGAAiaSAAImkoACJprAAiabgAImnEACJp0AAiadwAImnoACJp9AAiagAAImoMACJqFAAibAAAImwIACJsEAAibBgAImwkACJsKAAibCwAImwwACJsNAAibDwAImxEACJsSAAibEwAImxUACJsWAAibkQAIm5MACJuVAAiblwAIm5oACJubAAibnAAIm50ACJueAAiboAAIm6IACJujAAibpAAIm6YACJunAAicIgAInCQACJwnAAicKQAInCwACJwtAAicLgAInC8ACJwwAAicMgAInDQACJw1AAicNgAInDgACJw5AAicUgAInFMACJxUAAicVgAInNEACJzTAAic1QAInNcACJzaAAic2wAInNwACJzdAAic3gAInOAACJziAAic4wAInOQACJzmAAic5wAInWIACJ1kAAidZgAInWgACJ1rAAidbAAInW0ACJ1uAAidbwAInXEACJ1zAAiddAAInXUACJ13AAideAAInfMACJ31AAid9wAInfkACJ38AAid/QAInf4ACJ3/AAieAAAIngIACJ4EAAieBQAIngYACJ4IAAieCQAInoQACJ6GAAieiAAInooACJ6NAAiejgAIno8ACJ6QAAiekQAInpMACJ6VAAielgAInpcACJ6ZAAiemgAInxUACJ8XAAifGQAInxsACJ8eAAifHwAInyAACJ8hAAifIgAInyQACJ8mAAifJwAInygACJ8qAAifKwAIn3QACJ+YAAifvwAIn+MACJ/mAAif6AAIn+oACJ/sAAif7gAIn/AACJ/xAAif9AAIoA0ACKAqAAigLAAIoC4ACKAwAAigMgAIoDQACKA2AAigOAAIoFUACKBYAAigWwAIoF4ACKBhAAigZAAIoGcACKBqAAigbAAIoOcACKDpAAig6wAIoO0ACKDwAAig8QAIoPIACKDzAAig9AAIoPYACKD4AAig+QAIoPoACKD8AAig/QAIoXgACKF6AAihfQAIoX8ACKGCAAihgwAIoYQACKGFAAihhgAIoYgACKGKAAihiwAIoYwACKGOAAihjwAIogoACKIMAAiiDgAIohAACKITAAiiFAAIohUACKIWAAiiFwAIohkACKIbAAiiHAAIoh0ACKIfAAiiIAAIopsACKKdAAiioAAIoqIACKKlAAiipgAIoqcACKKoAAiiqQAIoqsACKKtAAiirgAIoq8ACKKxAAiisgAIozUACKNZAAijfQAIo6AACKPHAAij5wAIpA4ACKQ1AAikVQAIpHkACKSdAAiknwAIpKIACKSkAAikpgAIpKgACKSrAAikrgAIpLAACKSyAAiktQAIpLcACKS5AAikvAAIpL8ACKTAAAikxQAIpN4ACKTjAAik5QAIpOoACKTtAAik7wAIpTgACKVcAAilgwAIpacACKWqAAilrAAIpa4ACKWwAAilsgAIpbQACKW1AAiluAAIpdEACKX2AAil+AAIpfoACKX8AAil/gAIpgAACKYCAAimBAAIpgYACKYIAAimLQAIpjAACKYzAAimNgAIpjkACKY8AAimPwAIpkIACKZFAAimSAAIpkoACKbFAAimxwAIpsoACKbMAAimzwAIptAACKbRAAim0gAIptMACKbVAAim1wAIptgACKbZAAim2wAIptwACKbtAAim7gAIpvAACKdrAAinbQAIp28ACKdxAAindAAIp3UACKd2AAindwAIp3gACKd6AAinfAAIp30ACKd+AAingAAIp4EACKf8AAin/gAIqAEACKgDAAioBgAIqAcACKgIAAioCQAIqAoACKgMAAioDgAIqA8ACKgQAAioEgAIqBMACKgkAAioJQAIqCcACKiiAAiopAAIqKYACKioAAioqwAIqKwACKitAAiorgAIqK8ACKixAAioswAIqLQACKi1AAiotwAIqLgACKkzAAipNQAIqTgACKk6AAipPQAIqT4ACKk/AAipQAAIqUEACKlDAAipRQAIqUYACKlHAAipSQAIqUoACKlbAAipXAAIqV4ACKnZAAip2wAIqd0ACKnfAAip4gAIqeMACKnkAAip5QAIqeYACKnoAAip6gAIqesACKnsAAip7gAIqe8ACKpqAAiqbAAIqm8ACKpxAAiqdAAIqnUACKp2AAiqdwAIqngACKp6AAiqfAAIqn0ACKp+AAiqgAAIqoEACKqaAAiqmwAIqpwACKqeAAirGQAIqxsACKsdAAirHwAIqyIACKsjAAirJAAIqyUACKsmAAirKAAIqyoACKsrAAirLAAIqy4ACKsvAAirqgAIq6wACKuvAAirsQAIq7QACKu1AAirtgAIq7cACKu4AAirugAIq7wACKu9AAirvgAIq8AACKvBAAir6QAIrAIACKw3AAisOgAIrD0ACKxAAAisQwAIrEYACKxJAAisTAAIrE8ACKxSAAisVQAIrFgACKxbAAisXgAIrJMACKyWAAismQAIrJwACKyfAAisogAIrKUACKyoAAisqwAIrK4ACKyxAAistAAIrLcACKy6AAisvAAIrOAACKzsAAitGQAIrTIACK1JAAitagAIrYEACK2hAAitrgAIrcYACK3nAAiuAgAIrpUACK64AAiu2AAIrvgACK76AAiu/AAIrv4ACK8AAAivAwAIrwQACK8FAAivCAAIrwkACK8LAAivDAAIrw4ACK8RAAivEgAIrxMACK8WAAivFwAIrxwACK81AAivPgAIr0AACK9CAAivSwAIr04ACK9RAAivUwAIr5wACK/AAAiv5wAIsAsACLAOAAiwEAAIsBIACLAUAAiwFgAIsBgACLAZAAiwHAAIsDUACLBWAAiwWAAIsFoACLBcAAiwXgAIsGAACLBiAAiwZAAIsGYACLCHAAiwigAIsI0ACLCQAAiwkwAIsJYACLCZAAiwnAAIsJ8ACLChAAixHAAIsR4ACLEgAAixIgAIsSUACLEmAAixJwAIsSgACLEpAAixKwAIsS0ACLEuAAixLwAIsTEACLEyAAixrQAIsa8ACLGxAAixswAIsbYACLG3AAixuAAIsbkACLG6AAixvAAIsb4ACLG/AAixwAAIscIACLHDAAiyPgAIskAACLJDAAiyRQAIskgACLJJAAiySgAIsksACLJMAAiyTgAIslAACLJRAAiyUgAIslQACLJVAAiybgAIsm8ACLJwAAiycgAIsu0ACLLvAAiy8QAIsvMACLL2AAiy9wAIsvgACLL5AAiy+gAIsvwACLL+AAiy/wAIswAACLMCAAizAwAIs34ACLOAAAizggAIs4QACLOHAAiziAAIs4kACLOKAAiziwAIs40ACLOPAAizkAAIs5EACLOTAAizlAAItA8ACLQRAAi0EwAItBUACLQYAAi0GQAItBoACLQbAAi0HAAItB4ACLQgAAi0IQAItCIACLQkAAi0JQAItKAACLSiAAi0pAAItKYACLSpAAi0qgAItKsACLSsAAi0rQAItK8ACLSxAAi0sgAItLMACLS1AAi0tgAItTEACLUzAAi1NQAItTcACLU6AAi1OwAItTwACLU9AAi1PgAItUAACLVCAAi1QwAItUQACLVGAAi1RwAItZAACLW0AAi12wAItf8ACLYCAAi2BAAItgYACLYIAAi2CgAItgwACLYNAAi2EAAItikACLZGAAi2SAAItkoACLZMAAi2TgAItlAACLZSAAi2VAAItnEACLZ0AAi2dwAItnoACLZ9AAi2gAAItoMACLaGAAi2iAAItwMACLcFAAi3BwAItwkACLcMAAi3DQAItw4ACLcPAAi3EAAItxIACLcUAAi3FQAItxYACLcYAAi3GQAIt5QACLeWAAi3mAAIt5oACLedAAi3ngAIt58ACLegAAi3oQAIt6MACLelAAi3pgAIt6cACLepAAi3qgAIuCUACLgnAAi4KQAIuCsACLguAAi4LwAIuDAACLgxAAi4MgAIuDQACLg2AAi4NwAIuDgACLg6AAi4OwAIuLYACLi4AAi4uwAIuL0ACLjAAAi4wQAIuMIACLjDAAi4xAAIuMYACLjIAAi4yQAIuMoACLjMAAi4zQAIuUgACLlKAAi5TAAIuU4ACLlRAAi5UgAIuVMACLlUAAi5VQAIuVcACLlZAAi5WgAIuVsACLldAAi5XgAIudkACLnbAAi53QAIud8ACLniAAi54wAIueQACLnlAAi55gAIuegACLnqAAi56wAIuewACLnuAAi57wAIumoACLpsAAi6bgAIunAACLpzAAi6dAAIunUACLp2AAi6dwAIunkACLp7AAi6fAAIun0ACLp/AAi6gAAIuxMACLs2AAi7VgAIu3YACLt4AAi7egAIu3wACLt+AAi7gQAIu4IACLuDAAi7hgAIu4cACLuJAAi7igAIu4wACLuPAAi7kAAIu5EACLuUAAi7lQAIu5oACLuzAAi7vAAIu74ACLvAAAi7yQAIu8wACLvPAAi70QAIvBoACLw+AAi8ZQAIvIkACLyMAAi8jgAIvJAACLySAAi8lAAIvJYACLyXAAi8mgAIvLMACLzUAAi81gAIvNgACLzaAAi83AAIvN4ACLzgAAi84gAIvOQACL0FAAi9CAAIvQsACL0OAAi9EQAIvRQACL0XAAi9GgAIvR0ACL0fAAi9mgAIvZwACL2eAAi9oAAIvaMACL2kAAi9pQAIvaYACL2nAAi9qQAIvasACL2sAAi9rQAIva8ACL2wAAi+KwAIvi0ACL4vAAi+MQAIvjQACL41AAi+NgAIvjcACL44AAi+OgAIvjwACL49AAi+PgAIvkAACL5BAAi+vAAIvr4ACL7BAAi+wwAIvsYACL7HAAi+yAAIvskACL7KAAi+zAAIvs4ACL7PAAi+0AAIvtIACL7TAAi+7AAIvu0ACL7uAAi+8AAIv2sACL9tAAi/bwAIv3EACL90AAi/dQAIv3YACL93AAi/eAAIv3oACL98AAi/fQAIv34ACL+AAAi/gQAIv/wACL/+AAjAAAAIwAIACMAFAAjABgAIwAcACMAIAAjACQAIwAsACMANAAjADgAIwA8ACMARAAjAEgAIwI0ACMCPAAjAkQAIwJMACMCWAAjAlwAIwJgACMCZAAjAmgAIwJwACMCeAAjAnwAIwKAACMCiAAjAowAIwR4ACMEgAAjBIgAIwSQACMEnAAjBKAAIwSkACMEqAAjBKwAIwS0ACMEvAAjBMAAIwTEACMEzAAjBNAAIwa8ACMGxAAjBswAIwbUACMG4AAjBuQAIwboACMG7AAjBvAAIwb4ACMHAAAjBwQAIwcIACMHEAAjBxQAIwg4ACMIyAAjCWQAIwn0ACMKAAAjCggAIwoQACMKGAAjCiAAIwooACMKLAAjCjgAIwqcACMLEAAjCxgAIwsgACMLKAAjCzAAIws4ACMLQAAjC0gAIwu8ACMLyAAjC9QAIwvgACML7AAjC/gAIwwEACMMEAAjDBgAIw4EACMODAAjDhQAIw4cACMOKAAjDiwAIw4wACMONAAjDjgAIw5AACMOSAAjDkwAIw5QACMOWAAjDlwAIxBIACMQUAAjEFgAIxBgACMQbAAjEHAAIxB0ACMQeAAjEHwAIxCEACMQjAAjEJAAIxCUACMQnAAjEKAAIxKMACMSlAAjEpwAIxKkACMSsAAjErQAIxK4ACMSvAAjEsAAIxLIACMS0AAjEtQAIxLYACMS4AAjEuQAIxTQACMU2AAjFOQAIxTsACMU+AAjFPwAIxUAACMVBAAjFQgAIxUQACMVGAAjFRwAIxUgACMVKAAjFSwAIxcYACMXIAAjFygAIxcwACMXPAAjF0AAIxdEACMXSAAjF0wAIxdUACMXXAAjF2AAIxdkACMXbAAjF3AAIxlcACMZZAAjGWwAIxl0ACMZgAAjGYQAIxmIACMZjAAjGZAAIxmYACMZoAAjGaQAIxmoACMZsAAjGbQAIxugACMbqAAjG7AAIxu4ACMbxAAjG8gAIxvMACMb0AAjG9QAIxvcACMb5AAjG+gAIxvsACMb9AAjG/gAIx5EACMe0AAjH1AAIx/QACMf2AAjH+AAIx/oACMf8AAjH/wAIyAAACMgBAAjIBAAIyAUACMgHAAjICAAIyAoACMgNAAjIDgAIyA8ACMgSAAjIEwAIyBgACMgxAAjIOgAIyDwACMg+AAjIRwAIyEoACMhNAAjITwAIyJgACMi8AAjI4wAIyQcACMkKAAjJDAAIyQ4ACMkQAAjJEgAIyRQACMkVAAjJGAAIyTEACMlSAAjJVAAIyVYACMlYAAjJWgAIyVwACMleAAjJYAAIyWIACMmDAAjJhgAIyYkACMmMAAjJjwAIyZIACMmVAAjJmAAIyZsACMmdAAjKGAAIyhoACMocAAjKHgAIyiEACMoiAAjKIwAIyiQACMolAAjKJwAIyikACMoqAAjKKwAIyi0ACMouAAjKqQAIyqsACMqtAAjKrwAIyrIACMqzAAjKtAAIyrUACMq2AAjKuAAIyroACMq7AAjKvAAIyr4ACMq/AAjLOgAIyzwACMs/AAjLQQAIy0QACMtFAAjLRgAIy0cACMtIAAjLSgAIy0wACMtNAAjLTgAIy1AACMtRAAjLagAIy2sACMtsAAjLbgAIy+kACMvrAAjL7QAIy+8ACMvyAAjL8wAIy/QACMv1AAjL9gAIy/gACMv6AAjL+wAIy/wACMv+AAjL/wAIzHoACMx8AAjMfgAIzIAACMyDAAjMhAAIzIUACMyGAAjMhwAIzIkACMyLAAjMjAAIzI0ACMyPAAjMkAAIzQsACM0NAAjNDwAIzREACM0UAAjNFQAIzRYACM0XAAjNGAAIzRoACM0cAAjNHQAIzR4ACM0gAAjNIQAIzZwACM2eAAjNoAAIzaIACM2lAAjNpgAIzacACM2oAAjNqQAIzasACM2tAAjNrgAIza8ACM2xAAjNsgAIzi0ACM4vAAjOMQAIzjMACM42AAjONwAIzjgACM45AAjOOgAIzjwACM4+AAjOPwAIzkAACM5CAAjOQwAIzowACM6wAAjO1wAIzvsACM7+AAjPAAAIzwIACM8EAAjPBgAIzwgACM8JAAjPDAAIzyUACM9CAAjPRAAIz0YACM9IAAjPSgAIz0wACM9OAAjPUAAIz20ACM9wAAjPcwAIz3YACM95AAjPfAAIz38ACM+CAAjPhAAIz/8ACNABAAjQBAAI0AYACNAJAAjQCgAI0AsACNAMAAjQDQAI0A8ACNARAAjQEgAI0BMACNAVAAjQFgAI0JEACNCTAAjQlQAI0JcACNCaAAjQmwAI0JwACNCdAAjQngAI0KAACNCiAAjQowAI0KQACNCmAAjQpwAI0SIACNEkAAjRJgAI0SgACNErAAjRLAAI0S0ACNEuAAjRLwAI0TEACNEzAAjRNAAI0TUACNE3AAjROAAI0bMACNG1AAjRtwAI0bkACNG8AAjRvQAI0b4ACNG/AAjRwAAI0cIACNHEAAjRxQAI0cYACNHIAAjRyQAI0kQACNJGAAjSSAAI0koACNJNAAjSTgAI0k8ACNJQAAjSUQAI0lMACNJVAAjSVgAI0lcACNJZAAjSWgAI0tUACNLXAAjS2QAI0tsACNLeAAjS3wAI0uAACNLhAAjS4gAI0uQACNLmAAjS5wAI0ugACNLqAAjS6wAI02YACNNoAAjTagAI02wACNNvAAjTcAAI03EACNNyAAjTcwAI03UACNN3AAjTeAAI03kACNN7AAjTfAAI1A8ACNQyAAjUUgAI1HIACNR0AAjUdgAI1HgACNR6AAjUfQAI1H4ACNR/AAjUggAI1IMACNSFAAjUhgAI1IgACNSLAAjUjAAI1I0ACNSQAAjUkQAI1JYACNSvAAjUuAAI1LoACNS8AAjUxQAI1MgACNTLAAjUzQAI1RYACNU6AAjVYQAI1YUACNWIAAjVigAI1YwACNWOAAjVkAAI1ZIACNWTAAjVlgAI1a8ACNXQAAjV0gAI1dQACNXWAAjV2AAI1doACNXcAAjV3gAI1eAACNYBAAjWBAAI1gcACNYKAAjWDQAI1hAACNYTAAjWFgAI1hkACNYbAAjWlgAI1pgACNaaAAjWnAAI1p8ACNagAAjWoQAI1qIACNajAAjWpQAI1qcACNaoAAjWqQAI1qsACNasAAjXJwAI1ykACNcrAAjXLQAI1zAACNcxAAjXMgAI1zMACNc0AAjXNgAI1zgACNc5AAjXOgAI1zwACNc9AAjXuAAI17oACNe9AAjXvwAI18IACNfDAAjXxAAI18UACNfGAAjXyAAI18oACNfLAAjXzAAI184ACNfPAAjX6AAI1+kACNfqAAjX7AAI2GcACNhpAAjYawAI2G0ACNhwAAjYcQAI2HIACNhzAAjYdAAI2HYACNh4AAjYeQAI2HoACNh8AAjYfQAI2PgACNj6AAjY/AAI2P4ACNkBAAjZAgAI2QMACNkEAAjZBQAI2QcACNkJAAjZCgAI2QsACNkNAAjZDgAI2YkACNmLAAjZjQAI2Y8ACNmSAAjZkwAI2ZQACNmVAAjZlgAI2ZgACNmaAAjZmwAI2ZwACNmeAAjZnwAI2hoACNocAAjaHgAI2iAACNojAAjaJAAI2iUACNomAAjaJwAI2ikACNorAAjaLAAI2i0ACNovAAjaMAAI2qsACNqtAAjarwAI2rEACNq0AAjatQAI2rYACNq3AAjauAAI2roACNq8AAjavQAI2r4ACNrAAAjawQAI2woACNsuAAjbVQAI23kACNt8AAjbfgAI24AACNuCAAjbhAAI24YACNuHAAjbigAI26MACNvAAAjbwgAI28QACNvGAAjbyAAI28oACNvMAAjbzgAI2+sACNvuAAjb8QAI2/QACNv3AAjb+gAI2/0ACNwAAAjcAgAI3H0ACNx/AAjcgQAI3IMACNyGAAjchwAI3IgACNyJAAjcigAI3IwACNyOAAjcjwAI3JAACNySAAjckwAI3Q4ACN0QAAjdEgAI3RQACN0XAAjdGAAI3RkACN0aAAjdGwAI3R0ACN0fAAjdIAAI3SEACN0jAAjdJAAI3Z8ACN2hAAjdowAI3aUACN2oAAjdqQAI3aoACN2rAAjdrAAI3a4ACN2wAAjdsQAI3bIACN20AAjdtQAI3jAACN4yAAjeNQAI3jcACN46AAjeOwAI3jwACN49AAjePgAI3kAACN5CAAjeQwAI3kQACN5GAAjeRwAI3sIACN7EAAjexgAI3sgACN7LAAjezAAI3s0ACN7OAAjezwAI3tEACN7TAAje1AAI3tUACN7XAAje2AAI31MACN9VAAjfVwAI31kACN9cAAjfXQAI314ACN9fAAjfYAAI32IACN9kAAjfZQAI32YACN9oAAjfaQAI3+QACN/mAAjf6AAI3+oACN/tAAjf7gAI3+8ACN/wAAjf8QAI3/MACN/1AAjf9gAI3/cACN/5AAjf+gAI4I0ACOCwAAjg0AAI4PAACODyAAjg9AAI4PYACOD4AAjg+wAI4PwACOD9AAjhAAAI4QEACOEDAAjhBAAI4QYACOEJAAjhCgAI4QsACOEOAAjhDwAI4RgACOExAAjhOgAI4TwACOE+AAjhRwAI4UoACOFNAAjhTwAI4ZgACOG8AAjh4wAI4gcACOIKAAjiDAAI4g4ACOIQAAjiEgAI4hQACOIVAAjiGAAI4jEACOJSAAjiVAAI4lYACOJYAAjiWgAI4lwACOJeAAjiYAAI4mIACOKDAAjihgAI4okACOKMAAjijwAI4pIACOKVAAjimAAI4psACOKdAAjjGAAI4xoACOMcAAjjHgAI4yEACOMiAAjjIwAI4yQACOMlAAjjJwAI4ykACOMqAAjjKwAI4y0ACOMuAAjjqQAI46sACOOtAAjjrwAI47IACOOzAAjjtAAI47UACOO2AAjjuAAI47oACOO7AAjjvAAI474ACOO/AAjkOgAI5DwACOQ/AAjkQQAI5EQACORFAAjkRgAI5EcACORIAAjkSgAI5EwACORNAAjkTgAI5FAACORRAAjkagAI5GsACORsAAjkbgAI5OkACOTrAAjk7QAI5O8ACOTyAAjk8wAI5PQACOT1AAjk9gAI5PgACOT6AAjk+wAI5PwACOT+AAjk/wAI5XoACOV8AAjlfgAI5YAACOWDAAjlhAAI5YUACOWGAAjlhwAI5YkACOWLAAjljAAI5Y0ACOWPAAjlkAAI5gsACOYNAAjmDwAI5hEACOYUAAjmFQAI5hYACOYXAAjmGAAI5hoACOYcAAjmHQAI5h4ACOYgAAjmIQAI5pwACOaeAAjmoAAI5qIACOalAAjmpgAI5qcACOaoAAjmqQAI5qsACOatAAjmrgAI5q8ACOaxAAjmsgAI5y0ACOcvAAjnMQAI5zMACOc2AAjnNwAI5zgACOc5AAjnOgAI5zwACOc+AAjnPwAI50AACOdCAAjnQwAI54wACOewAAjn1wAI5/sACOf+AAjoAAAI6AIACOgEAAjoBgAI6AgACOgJAAjoDAAI6CUACOhCAAjoRAAI6EYACOhIAAjoSgAI6EwACOhOAAjoUAAI6G0ACOhwAAjocwAI6HYACOh5AAjofAAI6H8ACOiCAAjohAAI6P8ACOkBAAjpAwAI6QUACOkIAAjpCQAI6QoACOkLAAjpDAAI6Q4ACOkQAAjpEQAI6RIACOkUAAjpFQAI6ZAACOmSAAjplAAI6ZYACOmZAAjpmgAI6ZsACOmcAAjpnQAI6Z8ACOmhAAjpogAI6aMACOmlAAjppgAI6iEACOojAAjqJQAI6icACOoqAAjqKwAI6iwACOotAAjqLgAI6jAACOoyAAjqMwAI6jQACOo2AAjqNwAI6rIACOq0AAjqtwAI6rkACOq8AAjqvQAI6r4ACOq/AAjqwAAI6sIACOrEAAjqxQAI6sYACOrIAAjqyQAI60QACOtGAAjrSAAI60oACOtNAAjrTgAI608ACOtQAAjrUQAI61MACOtVAAjrVgAI61cACOtZAAjrWgAI69UACOvXAAjr2QAI69sACOveAAjr3wAI6+AACOvhAAjr4gAI6+QACOvmAAjr5wAI6+gACOvqAAjr6wAI7GYACOxoAAjsagAI7GwACOxvAAjscAAI7HEACOxyAAjscwAI7HUACOx3AAjseAAI7HkACOx7AAjsfAAI7Q8ACO0yAAjtUgAI7XIACO10AAjtdgAI7XgACO16AAjtfQAI7X4ACO1/AAjtggAI7YMACO2FAAjthgAI7YgACO2LAAjtjAAI7Y0ACO2QAAjtkQAI7ZYACO2vAAjtuAAI7boACO28AAjtxQAI7cgACO3LAAjtzQAI7hYACO46AAjuYQAI7oUACO6IAAjuigAI7owACO6OAAjukAAI7pIACO6TAAjulgAI7q8ACO7QAAju0gAI7tQACO7WAAju2AAI7toACO7cAAju3gAI7uAACO8BAAjvBAAI7wcACO8KAAjvDQAI7xAACO8TAAjvFgAI7xkACO8bAAjvlgAI75gACO+aAAjvnAAI758ACO+gAAjvoQAI76IACO+jAAjvpQAI76cACO+oAAjvqQAI76sACO+sAAjwJwAI8CkACPArAAjwLQAI8DAACPAxAAjwMgAI8DMACPA0AAjwNgAI8DgACPA5AAjwOgAI8DwACPA9AAjwuAAI8LoACPC9AAjwvwAI8MIACPDDAAjwxAAI8MUACPDGAAjwyAAI8MoACPDLAAjwzAAI8M4ACPDPAAjw6AAI8OkACPDqAAjw7AAI8WcACPFpAAjxawAI8W0ACPFwAAjxcQAI8XIACPFzAAjxdAAI8XYACPF4AAjxeQAI8XoACPF8AAjxfQAI8fgACPH6AAjx/AAI8f4ACPIBAAjyAgAI8gMACPIEAAjyBQAI8gcACPIJAAjyCgAI8gsACPINAAjyDgAI8okACPKLAAjyjQAI8o8ACPKSAAjykwAI8pQACPKVAAjylgAI8pgACPKaAAjymwAI8pwACPKeAAjynwAI8xoACPMcAAjzHgAI8yAACPMjAAjzJAAI8yUACPMmAAjzJwAI8ykACPMrAAjzLAAI8y0ACPMvAAjzMAAI86sACPOtAAjzrwAI87EACPO0AAjztQAI87YACPO3AAjzuAAI87oACPO8AAjzvQAI874ACPPAAAjzwQAI9AoACPQuAAj0VQAI9HkACPR8AAj0fgAI9IAACPSCAAj0hAAI9IYACPSHAAj0igAI9KMACPTAAAj0wgAI9MQACPTGAAj0yAAI9MoACPTMAAj0zgAI9OsACPTuAAj08QAI9PQACPT3AAj0+gAI9P0ACPUAAAj1AgAI9X0ACPV/AAj1gQAI9YMACPWGAAj1hwAI9YgACPWJAAj1igAI9YwACPWOAAj1jwAI9ZAACPWSAAj1kwAI9g4ACPYQAAj2EgAI9hQACPYXAAj2GAAI9hkACPYaAAj2GwAI9h0ACPYfAAj2IAAI9iEACPYjAAj2JAAI9p8ACPahAAj2owAI9qUACPaoAAj2qQAI9qoACParAAj2rAAI9q4ACPawAAj2sQAI9rIACPa0AAj2tQAI9zAACPcyAAj3NAAI9zYACPc5AAj3OgAI9zsACPc8AAj3PQAI9z8ACPdBAAj3QgAI90MACPdFAAj3RgAI98EACPfDAAj3xQAI98cACPfKAAj3ywAI98wACPfNAAj3zgAI99AACPfSAAj30wAI99QACPfWAAj31wAI+FIACPhUAAj4VgAI+FgACPhbAAj4XAAI+F0ACPheAAj4XwAI+GEACPhjAAj4ZAAI+GUACPhnAAj4aAAI+OMACPjlAAj45wAI+OkACPjsAAj47QAI+O4ACPjvAAj48AAI+PIACPj0AAj49QAI+PYACPj4AAj4+QAI+YwACPmvAAj5zwAI+e8ACPnxAAj58wAI+fUACPn3AAj5+gAI+fsACPn8AAj5/wAI+gAACPoCAAj6AwAI+gUACPoIAAj6CQAI+goACPoNAAj6DgAI+hMACPosAAj6NQAI+jcACPo5AAj6QgAI+kUACPpIAAj6SgAI+pMACPq3AAj63gAI+wIACPsFAAj7BwAI+wkACPsLAAj7DQAI+w8ACPsQAAj7EwAI+ywACPtNAAj7TwAI+1EACPtTAAj7VQAI+1cACPtZAAj7WwAI+10ACPt+AAj7gQAI+4QACPuHAAj7igAI+40ACPuQAAj7kwAI+5YACPuYAAj8EwAI/BUACPwXAAj8GQAI/BwACPwdAAj8HgAI/B8ACPwgAAj8IgAI/CQACPwlAAj8JgAI/CgACPwpAAj8pAAI/KYACPyoAAj8qgAI/K0ACPyuAAj8rwAI/LAACPyxAAj8swAI/LUACPy2AAj8twAI/LkACPy6AAj9NQAI/TcACP06AAj9PAAI/T8ACP1AAAj9QQAI/UIACP1DAAj9RQAI/UcACP1IAAj9SQAI/UsACP1MAAj9ZQAI/WYACP1nAAj9aQAI/eQACP3mAAj96AAI/eoACP3tAAj97gAI/e8ACP3wAAj98QAI/fMACP31AAj99gAI/fcACP35AAj9+gAI/nUACP53AAj+eQAI/nsACP5+AAj+fwAI/oAACP6BAAj+ggAI/oQACP6GAAj+hwAI/ogACP6KAAj+iwAI/wYACP8IAAj/CgAI/wwACP8PAAj/EAAI/xEACP8SAAj/EwAI/xUACP8XAAj/GAAI/xkACP8bAAj/HAAI/5cACP+ZAAj/mwAI/50ACP+gAAj/oQAI/6IACP+jAAj/pAAI/6YACP+oAAj/qQAI/6oACP+sAAj/rQAJACgACQAqAAkALAAJAC4ACQAxAAkAMgAJADMACQA0AAkANQAJADcACQA5AAkAOgAJADsACQA9AAkAPgAJAIcACQCrAAkA0gAJAPYACQD5AAkA+wAJAP0ACQD/AAkBAQAJAQMACQEEAAkBBwAJASAACQE9AAkBPwAJAUEACQFDAAkBRQAJAUcACQFJAAkBSwAJAWgACQFrAAkBbgAJAXEACQF0AAkBdwAJAXoACQF9AAkBfwAJAfoACQH8AAkB/gAJAgAACQIDAAkCBAAJAgUACQIGAAkCBwAJAgkACQILAAkCDAAJAg0ACQIPAAkCEAAJAosACQKNAAkCjwAJApEACQKUAAkClQAJApYACQKXAAkCmAAJApoACQKcAAkCnQAJAp4ACQKgAAkCoQAJAxwACQMeAAkDIAAJAyIACQMlAAkDJgAJAycACQMoAAkDKQAJAysACQMtAAkDLgAJAy8ACQMxAAkDMgAJA60ACQOvAAkDsQAJA7MACQO2AAkDtwAJA7gACQO5AAkDugAJA7wACQO+AAkDvwAJA8AACQPCAAkDwwAJBD4ACQRAAAkEQgAJBEQACQRHAAkESAAJBEkACQRKAAkESwAJBE0ACQRPAAkEUAAJBFEACQRTAAkEVAAJBM8ACQTRAAkE0wAJBNUACQTYAAkE2QAJBNoACQTbAAkE3AAJBN4ACQTgAAkE4QAJBOIACQTkAAkE5QAJBWAACQViAAkFZAAJBWYACQVpAAkFagAJBWsACQVsAAkFbQAJBW8ACQVxAAkFcgAJBXMACQV1AAkFdgAJBgkACQYsAAkGTAAJBmwACQZuAAkGcAAJBnIACQZ0AAkGdwAJBngACQZ5AAkGfAAJBn0ACQZ/AAkGgAAJBoIACQaFAAkGhgAJBocACQaKAAkGiwAJBpAACQapAAkGsgAJBrQACQa2AAkGvwAJBsIACQbFAAkGxwAJBxAACQc0AAkHWwAJB38ACQeCAAkHhAAJB4YACQeIAAkHigAJB4wACQeNAAkHkAAJB6kACQfKAAkHzAAJB84ACQfQAAkH0gAJB9QACQfWAAkH2AAJB9oACQf7AAkH/gAJCAEACQgEAAkIBwAJCAoACQgNAAkIEAAJCBMACQgVAAkIkAAJCJIACQiUAAkIlgAJCJkACQiaAAkImwAJCJwACQidAAkInwAJCKEACQiiAAkIowAJCKUACQimAAkJIQAJCSMACQklAAkJJwAJCSoACQkrAAkJLAAJCS0ACQkuAAkJMAAJCTIACQkzAAkJNAAJCTYACQk3AAkJsgAJCbQACQm3AAkJuQAJCbwACQm9AAkJvgAJCb8ACQnAAAkJwgAJCcQACQnFAAkJxgAJCcgACQnJAAkJ4gAJCeMACQnkAAkJ5gAJCmEACQpjAAkKZQAJCmcACQpqAAkKawAJCmwACQptAAkKbgAJCnAACQpyAAkKcwAJCnQACQp2AAkKdwAJCvIACQr0AAkK9gAJCvgACQr7AAkK/AAJCv0ACQr+AAkK/wAJCwEACQsDAAkLBAAJCwUACQsHAAkLCAAJC4MACQuFAAkLhwAJC4kACQuMAAkLjQAJC44ACQuPAAkLkAAJC5IACQuUAAkLlQAJC5YACQuYAAkLmQAJDBQACQwWAAkMGAAJDBoACQwdAAkMHgAJDB8ACQwgAAkMIQAJDCMACQwlAAkMJgAJDCcACQwpAAkMKgAJDKUACQynAAkMqQAJDKsACQyuAAkMrwAJDLAACQyxAAkMsgAJDLQACQy2AAkMtwAJDLgACQy6AAkMuwAJDQQACQ0oAAkNTwAJDXMACQ12AAkNeAAJDXoACQ18AAkNfgAJDYAACQ2BAAkNhAAJDZ0ACQ26AAkNvAAJDb4ACQ3AAAkNwgAJDcQACQ3GAAkNyAAJDeUACQ3oAAkN6wAJDe4ACQ3xAAkN9AAJDfcACQ36AAkN/AAJDncACQ55AAkOewAJDn0ACQ6AAAkOgQAJDoIACQ6DAAkOhAAJDoYACQ6IAAkOiQAJDooACQ6MAAkOjQAJDwgACQ8KAAkPDAAJDw4ACQ8RAAkPEgAJDxMACQ8UAAkPFQAJDxcACQ8ZAAkPGgAJDxsACQ8dAAkPHgAJD5kACQ+bAAkPnQAJD58ACQ+iAAkPowAJD6QACQ+lAAkPpgAJD6gACQ+qAAkPqwAJD6wACQ+uAAkPrwAJECoACRAsAAkQLwAJEDEACRA0AAkQNQAJEDYACRA3AAkQOAAJEDoACRA8AAkQPQAJED4ACRBAAAkQQQAJELwACRC+AAkQwAAJEMIACRDFAAkQxgAJEMcACRDIAAkQyQAJEMsACRDNAAkQzgAJEM8ACRDRAAkQ0gAJEU0ACRFPAAkRUQAJEVMACRFWAAkRVwAJEVgACRFZAAkRWgAJEVwACRFeAAkRXwAJEWAACRFiAAkRYwAJEd4ACRHgAAkR4gAJEeQACRHnAAkR6AAJEekACRHqAAkR6wAJEe0ACRHvAAkR8AAJEfEACRHzAAkR9AAJEocACRKqAAkSygAJEuoACRLsAAkS7gAJEvAACRLyAAkS9QAJEvYACRL3AAkS+gAJEvsACRL9AAkS/gAJEwAACRMDAAkTBAAJEwUACRMIAAkTCQAJEw4ACRMnAAkTMAAJEzIACRM0AAkTPQAJE0AACRNDAAkTRQAJE44ACROyAAkT2QAJE/0ACRQAAAkUAgAJFAQACRQGAAkUCAAJFAoACRQLAAkUDgAJFCcACRRIAAkUSgAJFEwACRROAAkUUAAJFFIACRRUAAkUVgAJFFgACRR5AAkUfAAJFH8ACRSCAAkUhQAJFIgACRSLAAkUjgAJFJEACRSTAAkVDgAJFRAACRUSAAkVFAAJFRcACRUYAAkVGQAJFRoACRUbAAkVHQAJFR8ACRUgAAkVIQAJFSMACRUkAAkVnwAJFaEACRWjAAkVpQAJFagACRWpAAkVqgAJFasACRWsAAkVrgAJFbAACRWxAAkVsgAJFbQACRW1AAkWMAAJFjIACRY1AAkWNwAJFjoACRY7AAkWPAAJFj0ACRY+AAkWQAAJFkIACRZDAAkWRAAJFkYACRZHAAkWYAAJFmEACRZiAAkWZAAJFt8ACRbhAAkW4wAJFuUACRboAAkW6QAJFuoACRbrAAkW7AAJFu4ACRbwAAkW8QAJFvIACRb0AAkW9QAJF3AACRdyAAkXdAAJF3YACRd5AAkXegAJF3sACRd8AAkXfQAJF38ACReBAAkXggAJF4MACReFAAkXhgAJGAEACRgDAAkYBQAJGAcACRgKAAkYCwAJGAwACRgNAAkYDgAJGBAACRgSAAkYEwAJGBQACRgWAAkYFwAJGJIACRiUAAkYlgAJGJgACRibAAkYnAAJGJ0ACRieAAkYnwAJGKEACRijAAkYpAAJGKUACRinAAkYqAAJGSMACRklAAkZJwAJGSkACRksAAkZLQAJGS4ACRkvAAkZMAAJGTIACRk0AAkZNQAJGTYACRk4AAkZOQAJGYIACRmmAAkZzQAJGfEACRn0AAkZ9gAJGfgACRn6AAkZ/AAJGf4ACRn/AAkaAgAJGhsACRo4AAkaOgAJGjwACRo+AAkaQAAJGkIACRpEAAkaRgAJGmMACRpmAAkaaQAJGmwACRpvAAkacgAJGnUACRp4AAkaegAJGvUACRr3AAka+QAJGvsACRr+AAka/wAJGwAACRsBAAkbAgAJGwQACRsGAAkbBwAJGwgACRsKAAkbCwAJG4YACRuIAAkbigAJG4wACRuPAAkbkAAJG5EACRuSAAkbkwAJG5UACRuXAAkbmAAJG5kACRubAAkbnAAJHBcACRwZAAkcGwAJHB0ACRwgAAkcIQAJHCIACRwjAAkcJAAJHCYACRwoAAkcKQAJHCoACRwsAAkcLQAJHKgACRyqAAkcrQAJHK8ACRyyAAkcswAJHLQACRy1AAkctgAJHLgACRy6AAkcuwAJHLwACRy+AAkcvwAJHToACR08AAkdPgAJHUAACR1DAAkdRAAJHUUACR1GAAkdRwAJHUkACR1LAAkdTAAJHU0ACR1PAAkdUAAJHcsACR3NAAkdzwAJHdEACR3UAAkd1QAJHdYACR3XAAkd2AAJHdoACR3cAAkd3QAJHd4ACR3gAAkd4QAJHlwACR5eAAkeYAAJHmIACR5lAAkeZgAJHmcACR5oAAkeaQAJHmsACR5tAAkebgAJHm8ACR5xAAkecgAJHwUACR8oAAkfSAAJH2gACR9qAAkfbAAJH24ACR9wAAkfcwAJH3QACR91AAkfeAAJH3kACR97AAkffAAJH34ACR+BAAkfggAJH4MACR+GAAkfhwAJH4wACR+lAAkfrgAJH7AACR+yAAkfuwAJH74ACR/BAAkfwwAJIAwACSAwAAkgVwAJIHsACSB+AAkggAAJIIIACSCEAAkghgAJIIgACSCJAAkgjAAJIKUACSDGAAkgyAAJIMoACSDMAAkgzgAJINAACSDSAAkg1AAJINYACSD3AAkg+gAJIP0ACSEAAAkhAwAJIQYACSEJAAkhDAAJIQ8ACSERAAkhjAAJIY4ACSGQAAkhkgAJIZUACSGWAAkhlwAJIZgACSGZAAkhmwAJIZ0ACSGeAAkhnwAJIaEACSGiAAkiHQAJIh8ACSIhAAkiIwAJIiYACSInAAkiKAAJIikACSIqAAkiLAAJIi4ACSIvAAkiMAAJIjIACSIzAAkirgAJIrAACSKzAAkitQAJIrgACSK5AAkiugAJIrsACSK8AAkivgAJIsAACSLBAAkiwgAJIsQACSLFAAki3gAJIt8ACSLgAAki4gAJI10ACSNfAAkjYQAJI2MACSNmAAkjZwAJI2gACSNpAAkjagAJI2wACSNuAAkjbwAJI3AACSNyAAkjcwAJI+4ACSPwAAkj8gAJI/QACSP3AAkj+AAJI/kACSP6AAkj+wAJI/0ACSP/AAkkAAAJJAEACSQDAAkkBAAJJH8ACSSBAAkkgwAJJIUACSSIAAkkiQAJJIoACSSLAAkkjAAJJI4ACSSQAAkkkQAJJJIACSSUAAkklQAJJRAACSUSAAklFAAJJRYACSUZAAklGgAJJRsACSUcAAklHQAJJR8ACSUhAAklIgAJJSMACSUlAAklJgAJJaEACSWjAAklpQAJJacACSWqAAklqwAJJawACSWtAAklrgAJJbAACSWyAAklswAJJbQACSW2AAkltwAJJgAACSYkAAkmSwAJJm8ACSZyAAkmdAAJJnYACSZ4AAkmegAJJnwACSZ9AAkmgAAJJpkACSa2AAkmuAAJJroACSa8AAkmvgAJJsAACSbCAAkmxAAJJuEACSbkAAkm5wAJJuoACSbtAAkm8AAJJvMACSb2AAkm+AAJJ3MACSd1AAkndwAJJ3kACSd8AAknfQAJJ34ACSd/AAkngAAJJ4IACSeEAAknhQAJJ4YACSeIAAkniQAJKAQACSgGAAkoCAAJKAoACSgNAAkoDgAJKA8ACSgQAAkoEQAJKBMACSgVAAkoFgAJKBcACSgZAAkoGgAJKJUACSiXAAkomQAJKJsACSieAAkonwAJKKAACSihAAkoogAJKKQACSimAAkopwAJKKgACSiqAAkoqwAJKSYACSkoAAkpKwAJKS0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ACVTLAAlUzgAJVNEACVTTAAlVTgAJVVAACVVSAAlVVAAJVVcACVVYAAlVWQAJVVoACVVbAAlVXQAJVV8ACVVgAAlVYQAJVWMACVVkAAlV3wAJVeEACVXjAAlV5QAJVegACVXpAAlV6gAJVesACVXsAAlV7gAJVfAACVXxAAlV8gAJVfQACVX1AAlWcAAJVnIACVZ1AAlWdwAJVnoACVZ7AAlWfAAJVn0ACVZ+AAlWgAAJVoIACVaDAAlWhAAJVoYACVaHAAlWoAAJVqEACVaiAAlWpAAJVx8ACVchAAlXIwAJVyUACVcoAAlXKQAJVyoACVcrAAlXLAAJVy4ACVcwAAlXMQAJVzIACVc0AAlXNQAJV7AACVeyAAlXtAAJV7YACVe5AAlXugAJV7sACVe8AAlXvQAJV78ACVfBAAlXwgAJV8MACVfFAAlXxgAJWEEACVhDAAlYRQAJWEcACVhKAAlYSwAJWEwACVhNAAlYTgAJWFAACVhSAAlYUwAJWFQACVhWAAlYVwAJWNIACVjUAAlY1gAJWNgACVjbAAlY3AAJWN0ACVjeAAlY3wAJWOEACVjjAAlY5AAJWOUACVjnAAlY6AAJWWMACVllAAlZZwAJWWkACVlsAAlZbQAJWW4ACVlvAAlZcAAJWXIACVl0AAlZdQAJWXYACVl4AAlZeQAJWcIACVnmAAlaDQAJWjEACVo0AAlaNgAJWjgACVo6AAlaPAAJWj4ACVo/AAlaQgAJWlsACVp4AAlaegAJWnwACVp+AAlagAAJWoIACVqEAAlahgAJWqMACVqmAAlaqQAJWqwACVqvAAlasgAJWrUACVq4AAlaugAJWzUACVs3AAlbOQAJWzsACVs+AAlbPwAJW0AACVtBAAlbQgAJW0QACVtGAAlbRwAJW0gACVtKAAlbSwAJW8YACVvIAAlbygAJW8wACVvPAAlb0AAJW9EACVvSAAlb0wAJW9UACVvXAAlb2AAJW9kACVvbAAlb3AAJXFcACVxZAAlcWwAJXF0ACVxgAAlcYQAJXGIACVxjAAlcZAAJXGYACVxoAAlcaQAJXGoACVxsAAlcbQAJXOgACVzqAAlc7QAJXO8ACVzyAAlc8wAJXPQACVz1AAlc9gAJXPgACVz6AAlc+wAJXPwACVz+AAlc/wAJXXoACV18AAldfgAJXYAACV2DAAldhAAJXYUACV2GAAldhwAJXYkACV2LAAldjAAJXY0ACV2PAAldkAAJXgsACV4NAAleDwAJXhEACV4UAAleFQAJXhYACV4XAAleGAAJXhoACV4cAAleHQAJXh4ACV4gAAleIQAJXpwACV6eAAleoAAJXqIACV6lAAlepgAJXqcACV6oAAleqQAJXqsACV6tAAlergAJXq8ACV6xAAlesgAJX0UACV9oAAlfiAAJX6gACV+qAAlfrAAJX64ACV+wAAlfswAJX7QACV+1AAlfuAAJX7kACV+7AAlfvAAJX74ACV/BAAlfwgAJX8MACV/GAAlfxwAJX8wACV/lAAlf7gAJX/AACV/yAAlf+wAJX/4ACWABAAlgAwAJYEwACWBwAAlglwAJYLsACWC+AAlgwAAJYMIACWDEAAlgxgAJYMgACWDJAAlgzAAJYOUACWEGAAlhCAAJYQoACWEMAAlhDgAJYRAACWESAAlhFAAJYRYACWE3AAlhOgAJYT0ACWFAAAlhQwAJYUYACWFJAAlhTAAJYU8ACWFRAAlhzAAJYc4ACWHQAAlh0gAJYdUACWHWAAlh1wAJYdgACWHZAAlh2wAJYd0ACWHeAAlh3wAJYeEACWHiAAliXQAJYl8ACWJhAAliYwAJYmYACWJnAAliaAAJYmkACWJqAAlibAAJYm4ACWJvAAlicAAJYnIACWJzAAli7gAJYvAACWLzAAli9QAJYvgACWL5AAli+gAJYvsACWL8AAli/gAJYwAACWMBAAljAgAJYwQACWMFAAljHgAJYx8ACWMgAAljIgAJY50ACWOfAAljoQAJY6MACWOmAAljpwAJY6gACWOpAAljqgAJY6wACWOuAAljrwAJY7AACWOyAAljswAJZC4ACWQwAAlkMgAJZDQACWQ3AAlkOAAJZDkACWQ6AAlkOwAJZD0ACWQ/AAlkQAAJZEEACWRDAAlkRAAJZL8ACWTBAAlkwwAJZMUACWTIAAlkyQAJZMoACWTLAAlkzAAJZM4ACWTQAAlk0QAJZNIACWTUAAlk1QAJZVAACWVSAAllVAAJZVYACWVZAAllWgAJZVsACWVcAAllXQAJZV8ACWVhAAllYgAJZWMACWVlAAllZgAJZeEACWXjAAll5QAJZecACWXqAAll6wAJZewACWXtAAll7gAJZfAACWXyAAll8wAJZfQACWX2AAll9wAJZkAACWZkAAlmiwAJZq8ACWayAAlmtAAJZrYACWa4AAlmugAJZrwACWa9AAlmwAAJZtkACWb2AAlm+AAJZvoACWb8AAlm/gAJZwAACWcCAAlnBAAJZyEACWckAAlnJwAJZyoACWctAAlnMAAJZzMACWc2AAlnOAAJZ7MACWe1AAlntwAJZ7kACWe8AAlnvQAJZ74ACWe/AAlnwAAJZ8IACWfEAAlnxQAJZ8YACWfIAAlnyQAJaEQACWhGAAloSAAJaEoACWhNAAloTgAJaE8ACWhQAAloUQAJaFMACWhVAAloVgAJaFcACWhZAAloWgAJaNUACWjXAAlo2QAJaNsACWjeAAlo3wAJaOAACWjhAAlo4gAJaOQACWjmAAlo5wAJaOgACWjqAAlo6wAJaWYACWloAAlpagAJaWwACWlvAAlpcAAJaXEACWlyAAlpcwAJaXUACWl3AAlpeAAJaXkACWl7AAlpfAAJafcACWn5AAlp+wAJaf0ACWoAAAlqAQAJagIACWoDAAlqBAAJagYACWoIAAlqCQAJagoACWoMAAlqDQAJaogACWqKAAlqjAAJao4ACWqRAAlqkgAJapMACWqUAAlqlQAJapcACWqZAAlqmgAJapsACWqdAAlqngAJaxkACWsbAAlrHQAJax8ACWsiAAlrIwAJayQACWslAAlrJgAJaygACWsqAAlrKwAJaywACWsuAAlrLwAJa8IACWvlAAlsBQAJbCUACWwnAAlsKQAJbCsACWwtAAlsMAAJbDEACWwyAAlsNQAJbDYACWw4AAlsOQAJbDsACWw+AAlsPwAJbEAACWxDAAlsRAAJbE0ACWxmAAlsbwAJbHEACWxzAAlsfAAJbH8ACWyCAAlshAAJbM0ACWzxAAltGAAJbTwACW0/AAltQQAJbUMACW1FAAltRwAJbUkACW1KAAltTQAJbWYACW2HAAltiQAJbYsACW2NAAltjwAJbZEACW2TAAltlQAJbZcACW24AAltuwAJbb4ACW3BAAltxAAJbccACW3KAAltzQAJbdAACW3SAAluTQAJbk8ACW5RAAluUwAJblYACW5XAAluWAAJblkACW5aAAluXAAJbl4ACW5fAAluYAAJbmIACW5jAAlu3gAJbuAACW7iAAlu5AAJbucACW7oAAlu6QAJbuoACW7rAAlu7QAJbu8ACW7wAAlu8QAJbvMACW70AAlvbwAJb3EACW90AAlvdgAJb3kACW96AAlvewAJb3wACW99AAlvfwAJb4EACW+CAAlvgwAJb4UACW+GAAlvnwAJb6AACW+hAAlvowAJcB4ACXAgAAlwIgAJcCQACXAnAAlwKAAJcCkACXAqAAlwKwAJcC0ACXAvAAlwMAAJcDEACXAzAAlwNAAJcK8ACXCxAAlwswAJcLUACXC4AAlwuQAJcLoACXC7AAlwvAAJcL4ACXDAAAlwwQAJcMIACXDEAAlwxQAJcUAACXFCAAlxRAAJcUYACXFJAAlxSgAJcUsACXFMAAlxTQAJcU8ACXFRAAlxUgAJcVMACXFVAAlxVgAJcdEACXHTAAlx1QAJcdcACXHaAAlx2wAJcdwACXHdAAlx3gAJceAACXHiAAlx4wAJceQACXHmAAlx5wAJcmIACXJkAAlyZgAJcmgACXJrAAlybAAJcm0ACXJuAAlybwAJcnEACXJzAAlydAAJcnUACXJ3AAlyeAAJcsEACXLlAAlzDAAJczAACXMzAAlzNQAJczcACXM5AAlzOwAJcz0ACXM+AAlzQQAJc1oACXN3AAlzeQAJc3sACXN9AAlzfwAJc4EACXODAAlzhQAJc6IACXOlAAlzqAAJc6sACXOuAAlzsQAJc7QACXO3AAlzuQAJdDQACXQ2AAl0OQAJdDsACXQ+AAl0PwAJdEAACXRBAAl0QgAJdEQACXRGAAl0RwAJdEgACXRKAAl0SwAJdMYACXTIAAl0ygAJdMwACXTPAAl00AAJdNEACXTSAAl00wAJdNUACXTXAAl02AAJdNkACXTbAAl03AAJdVcACXVZAAl1WwAJdV0ACXVgAAl1YQAJdWIACXVjAAl1ZAAJdWYACXVoAAl1aQAJdWoACXVsAAl1bQAJdegACXXqAAl17QAJde8ACXXyAAl18wAJdfQACXX1AAl19gAJdfgACXX6AAl1+wAJdfwACXX+AAl1/wAJdnoACXZ8AAl2fgAJdoAACXaDAAl2hAAJdoUACXaGAAl2hwAJdokACXaLAAl2jAAJdo0ACXaPAAl2kAAJdwsACXcNAAl3DwAJdxEACXcUAAl3FQAJdxYACXcXAAl3GAAJdxoACXccAAl3HQAJdx4ACXcgAAl3IQAJd5wACXeeAAl3oAAJd6IACXelAAl3pgAJd6cACXeoAAl3qQAJd6sACXetAAl3rgAJd68ACXexAAl3sgAJeEUACXhoAAl4iAAJeKgACXiqAAl4rAAJeK4ACXiwAAl4swAJeLQACXi1AAl4uAAJeLkACXi7AAl4vAAJeL4ACXjBAAl4wgAJeMMACXjGAAl4xwAJeNAACXjpAAl48gAJePQACXj2AAl4/wAJeQIACXkFAAl5BwAJeVAACXl0AAl5mwAJeb8ACXnCAAl5xAAJecYACXnIAAl5ygAJecwACXnNAAl50AAJeekACXoKAAl6DAAJeg4ACXoQAAl6EgAJehQACXoWAAl6GAAJehoACXo7AAl6PgAJekEACXpEAAl6RwAJekoACXpNAAl6UAAJelMACXpVAAl60AAJetIACXrUAAl61gAJetkACXraAAl62wAJetwACXrdAAl63wAJeuEACXriAAl64wAJeuUACXrmAAl7YQAJe2MACXtlAAl7ZwAJe2oACXtrAAl7bAAJe20ACXtuAAl7cAAJe3IACXtzAAl7dAAJe3YACXt3AAl78gAJe/QACXv3AAl7+QAJe/wACXv9AAl7/gAJe/8ACXwAAAl8AgAJfAQACXwFAAl8BgAJfAgACXwJAAl8IgAJfCMACXwkAAl8JgAJfKEACXyjAAl8pQAJfKcACXyqAAl8qwAJfKwACXytAAl8rgAJfLAACXyyAAl8swAJfLQACXy2AAl8twAJfTIACX00AAl9NgAJfTgACX07AAl9PAAJfT0ACX0+AAl9PwAJfUEACX1DAAl9RAAJfUUACX1HAAl9SAAJfcMACX3FAAl9xwAJfckACX3MAAl9zQAJfc4ACX3PAAl90AAJfdIACX3UAAl91QAJfdYACX3YAAl92QAJflQACX5WAAl+WAAJfloACX5dAAl+XgAJfl8ACX5gAAl+YQAJfmMACX5lAAl+ZgAJfmcACX5pAAl+agAJfuUACX7nAAl+6QAJfusACX7uAAl+7wAJfvAACX7xAAl+8gAJfvQACX72AAl+9wAJfvgACX76AAl++wAJf0QACX9oAAl/jwAJf7MACX+2AAl/uAAJf7oACX+8AAl/vgAJf8AACX/BAAl/xAAJf90ACX/6AAl//AAJf/4ACYAAAAmAAgAJgAQACYAGAAmACAAJgCUACYAoAAmAKwAJgC4ACYAxAAmANAAJgDcACYA6AAmAPAAJgLcACYC5AAmAuwAJgL0ACYDAAAmAwQAJgMIACYDDAAmAxAAJgMYACYDIAAmAyQAJgMoACYDMAAmAzQAJgUgACYFKAAmBTAAJgU4ACYFRAAmBUgAJgVMACYFUAAmBVQAJgVcACYFZAAmBWgAJgVsACYFdAAmBXgAJgdkACYHbAAmB3QAJgd8ACYHiAAmB4wAJgeQACYHlAAmB5gAJgegACYHqAAmB6wAJgewACYHuAAmB7wAJgmoACYJsAAmCbwAJgnEACYJ0AAmCdQAJgnYACYJ3AAmCeAAJgnoACYJ8AAmCfQAJgn4ACYKAAAmCgQAJgvwACYL+AAmDAAAJgwIACYMFAAmDBgAJgwcACYMIAAmDCQAJgwsACYMNAAmDDgAJgw8ACYMRAAmDEgAJg40ACYOPAAmDkQAJg5MACYOWAAmDlwAJg5gACYOZAAmDmgAJg5wACYOeAAmDnwAJg6AACYOiAAmDowAJhB4ACYQgAAmEIgAJhCQACYQnAAmEKAAJhCkACYQqAAmEKwAJhC0ACYQvAAmEMAAJhDEACYQzAAmENAAJhMcACYTqAAmFCgAJhSoACYUsAAmFLgAJhTAACYUyAAmFNQAJhTYACYU3AAmFOgAJhTsACYU9AAmFPgAJhUEACYVEAAmFRQAJhUYACYVJAAmFSgAJhU8ACYVoAAmFcQAJhXMACYV1AAmFfgAJhYEACYWEAAmFhgAJhc8ACYXzAAmGGgAJhj4ACYZBAAmGQwAJhkUACYZHAAmGSQAJhksACYZMAAmGTwAJhmgACYaJAAmGiwAJho0ACYaPAAmGkQAJhpMACYaVAAmGlwAJhpkACYa6AAmGvQAJhsAACYbDAAmGxgAJhskACYbMAAmGzwAJhtIACYbUAAmHTwAJh1EACYdTAAmHVQAJh1gACYdZAAmHWgAJh1sACYdcAAmHXgAJh2AACYdhAAmHYgAJh2QACYdlAAmH4AAJh+IACYfkAAmH5gAJh+kACYfqAAmH6wAJh+wACYftAAmH7wAJh/EACYfyAAmH8wAJh/UACYf2AAmIcQAJiHMACYh2AAmIeAAJiHsACYh8AAmIfQAJiH4ACYh/AAmIgQAJiIMACYiEAAmIhQAJiIcACYiIAAmIoQAJiKIACYijAAmIpQAJiSAACYkiAAmJJAAJiSYACYkpAAmJKgAJiSsACYksAAmJLQAJiS8ACYkxAAmJMgAJiTMACYk1AAmJNgAJibEACYmzAAmJtQAJibcACYm6AAmJuwAJibwACYm9AAmJvgAJicAACYnCAAmJwwAJicQACYnGAAmJxwAJikIACYpEAAmKRgAJikgACYpLAAmKTAAJik0ACYpOAAmKTwAJilEACYpTAAmKVAAJilUACYpXAAmKWAAJitMACYrVAAmK1wAJitkACYrcAAmK3QAJit4ACYrfAAmK4AAJiuIACYrkAAmK5QAJiuYACYroAAmK6QAJi2QACYtmAAmLaAAJi2oACYttAAmLbgAJi28ACYtwAAmLcQAJi3MACYt1AAmLdgAJi3cACYt5AAmLegAJi8MACYvnAAmMDgAJjDIACYw1AAmMNwAJjDkACYw7AAmMPQAJjD8ACYxAAAmMQwAJjFwACYx5AAmMewAJjH0ACYx/AAmMgQAJjIMACYyFAAmMhwAJjKQACYynAAmMqgAJjK0ACYywAAmMswAJjLYACYy5AAmMuwAJjTYACY04AAmNOgAJjTwACY0/AAmNQAAJjUEACY1CAAmNQwAJjUUACY1HAAmNSAAJjUkACY1LAAmNTAAJjccACY3JAAmNzAAJjc4ACY3RAAmN0gAJjdMACY3UAAmN1QAJjdcACY3ZAAmN2gAJjdsACY3dAAmN3gAJjlkACY5bAAmOXQAJjl8ACY5iAAmOYwAJjmQACY5lAAmOZgAJjmgACY5qAAmOawAJjmwACY5uAAmObwAJjuoACY7sAAmO7wAJjvEACY70AAmO9QAJjvYACY73AAmO+AAJjvoACY78AAmO/QAJjv4ACY8AAAmPAQAJj4QACY+oAAmPzAAJj+8ACZAWAAmQNgAJkF0ACZCEAAmQpAAJkMgACZDsAAmQ7gAJkPEACZDzAAmQ9QAJkPcACZD6AAmQ/QAJkP8ACZEBAAmRBAAJkQYACZEIAAmRCwAJkQ4ACZEPAAmRGAAJkTEACZE2AAmROAAJkT0ACZFAAAmRQgAJkYsACZGvAAmR1gAJkfoACZH9AAmR/wAJkgEACZIDAAmSBQAJkgcACZIIAAmSCwAJkiQACZJJAAmSSwAJkk0ACZJPAAmSUQAJklMACZJVAAmSVwAJklkACZJbAAmSgAAJkoMACZKGAAmSiQAJkowACZKPAAmSkgAJkpUACZKYAAmSmwAJkp0ACZMYAAmTGgAJkx0ACZMfAAmTIgAJkyMACZMkAAmTJQAJkyYACZMoAAmTKgAJkysACZMsAAmTLgAJky8ACZNAAAmTQQAJk0MACZO+AAmTwAAJk8IACZPEAAmTxwAJk8gACZPJAAmTygAJk8sACZPNAAmTzwAJk9AACZPRAAmT0wAJk9QACZRPAAmUUQAJlFQACZRWAAmUWQAJlFoACZRbAAmUXAAJlF0ACZRfAAmUYQAJlGIACZRjAAmUZQAJlGYACZR3AAmUeAAJlHoACZT1AAmU9wAJlPkACZT7AAmU/gAJlP8ACZUAAAmVAQAJlQIACZUEAAmVBgAJlQcACZUIAAmVCgAJlQsACZWGAAmViAAJlYsACZWNAAmVkAAJlZEACZWSAAmVkwAJlZQACZWWAAmVmAAJlZkACZWaAAmVnAAJlZ0ACZWuAAmVrwAJlbEACZYsAAmWLgAJljAACZYyAAmWNQAJljYACZY3AAmWOAAJljkACZY7AAmWPQAJlj4ACZY/AAmWQQAJlkIACZa9AAmWvwAJlsIACZbEAAmWxwAJlsgACZbJAAmWygAJlssACZbNAAmWzwAJltAACZbRAAmW0wAJltQACZbtAAmW7gAJlu8ACZbxAAmXbAAJl24ACZdwAAmXcgAJl3UACZd2AAmXdwAJl3gACZd5AAmXewAJl30ACZd+AAmXfwAJl4EACZeCAAmX/QAJl/8ACZgCAAmYBAAJmAcACZgIAAmYCQAJmAoACZgLAAmYDQAJmA8ACZgQAAmYEQAJmBMACZgUAAmYPQAJmFYACZhrAAmYbgAJmHEACZh0AAmYdwAJmHoACZiPAAmYkgAJmJUACZiYAAmYmwAJmJ4ACZigAAmYuAAJmMAACZjXAAmZagAJmY0ACZmtAAmZzQAJmc8ACZnRAAmZ0wAJmdUACZnYAAmZ2QAJmdoACZndAAmZ3gAJmeAACZnhAAmZ4wAJmeYACZnnAAmZ6AAJmesACZnsAAmZ9QAJmg4ACZoXAAmaGQAJmhsACZokAAmaJwAJmioACZosAAmadQAJmpkACZrAAAma5AAJmucACZrpAAma6wAJmu0ACZrvAAma8QAJmvIACZr1AAmbDgAJmy8ACZsxAAmbMwAJmzUACZs3AAmbOQAJmzsACZs9AAmbPwAJm2AACZtjAAmbZgAJm2kACZtsAAmbbwAJm3IACZt1AAmbeAAJm3oACZv1AAmb9wAJm/kACZv7AAmb/gAJm/8ACZwAAAmcAQAJnAIACZwEAAmcBgAJnAcACZwIAAmcCgAJnAsACZyGAAmciAAJnIoACZyMAAmcjwAJnJAACZyRAAmckgAJnJMACZyVAAmclwAJnJgACZyZAAmcmwAJnJwACZ0XAAmdGQAJnRwACZ0eAAmdIQAJnSIACZ0jAAmdJAAJnSUACZ0nAAmdKQAJnSoACZ0rAAmdLQAJnS4ACZ1HAAmdSAAJnUkACZ1LAAmdxgAJncgACZ3KAAmdzAAJnc8ACZ3QAAmd0QAJndIACZ3TAAmd1QAJndcACZ3YAAmd2QAJndsACZ3cAAmeVwAJnlkACZ5bAAmeXQAJnmAACZ5hAAmeYgAJnmMACZ5kAAmeZgAJnmgACZ5pAAmeagAJnmwACZ5tAAme6AAJnuoACZ7sAAme7gAJnvEACZ7yAAme8wAJnvQACZ71AAme9wAJnvkACZ76AAme+wAJnv0ACZ7+AAmfeQAJn3sACZ99AAmffwAJn4IACZ+DAAmfhAAJn4UACZ+GAAmfiAAJn4oACZ+LAAmfjAAJn44ACZ+PAAmgCgAJoAwACaAOAAmgEAAJoBMACaAUAAmgFQAJoBYACaAXAAmgGQAJoBsACaAcAAmgHQAJoB8ACaAgAAmgaQAJoI0ACaC0AAmg2AAJoNsACaDdAAmg3wAJoOEACaDjAAmg5QAJoOYACaDpAAmhAgAJoR8ACaEhAAmhIwAJoSUACaEnAAmhKQAJoSsACaEtAAmhSgAJoU0ACaFQAAmhUwAJoVYACaFZAAmhXAAJoV8ACaFhAAmh3AAJod4ACaHgAAmh4gAJoeUACaHmAAmh5wAJoegACaHpAAmh6wAJoe0ACaHuAAmh7wAJofEACaHyAAmibQAJom8ACaJxAAmicwAJonYACaJ3AAmieAAJonkACaJ6AAmifAAJon4ACaJ/AAmigAAJooIACaKDAAmi/gAJowAACaMCAAmjBAAJowcACaMIAAmjCQAJowoACaMLAAmjDQAJow8ACaMQAAmjEQAJoxMACaMUAAmjjwAJo5EACaOUAAmjlgAJo5kACaOaAAmjmwAJo5wACaOdAAmjnwAJo6EACaOiAAmjowAJo6UACaOmAAmkIQAJpCMACaQlAAmkJwAJpCoACaQrAAmkLAAJpC0ACaQuAAmkMAAJpDIACaQzAAmkNAAJpDYACaQ3AAmksgAJpLQACaS2AAmkuAAJpLsACaS8AAmkvQAJpL4ACaS/AAmkwQAJpMMACaTEAAmkxQAJpMcACaTIAAmlQwAJpUUACaVHAAmlSQAJpUwACaVNAAmlTgAJpU8ACaVQAAmlUgAJpVQACaVVAAmlVgAJpVgACaVZAAml7AAJpg8ACaYvAAmmTwAJplEACaZTAAmmVQAJplcACaZaAAmmWwAJplwACaZfAAmmYAAJpmIACaZjAAmmZQAJpmgACaZpAAmmagAJpm0ACaZuAAmmcwAJpowACaaVAAmmlwAJppkACaaiAAmmpQAJpqgACaaqAAmm8wAJpxcACac+AAmnYgAJp2UACadnAAmnaQAJp2sACadtAAmnbwAJp3AACadzAAmnjAAJp60ACaevAAmnsQAJp7MACae1AAmntwAJp7kACae7AAmnvQAJp94ACafhAAmn5AAJp+cACafqAAmn7QAJp/AACafzAAmn9gAJp/gACahzAAmodQAJqHcACah5AAmofAAJqH0ACah+AAmofwAJqIAACaiCAAmohAAJqIUACaiGAAmoiAAJqIkACakEAAmpBgAJqQgACakKAAmpDQAJqQ4ACakPAAmpEAAJqREACakTAAmpFQAJqRYACakXAAmpGQAJqRoACamVAAmplwAJqZoACamcAAmpnwAJqaAACamhAAmpogAJqaMACamlAAmppwAJqagACampAAmpqwAJqawACanFAAmpxgAJqccACanJAAmqRAAJqkYACapIAAmqSgAJqk0ACapOAAmqTwAJqlAACapRAAmqUwAJqlUACapWAAmqVwAJqlkACapaAAmq1QAJqtcACarZAAmq2wAJqt4ACarfAAmq4AAJquEACariAAmq5AAJquYACarnAAmq6AAJquoACarrAAmrZgAJq2gACatqAAmrbAAJq28ACatwAAmrcQAJq3IACatzAAmrdQAJq3cACat4AAmreQAJq3sACat8AAmr9wAJq/kACav7AAmr/QAJrAAACawBAAmsAgAJrAMACawEAAmsBgAJrAgACawJAAmsCgAJrAwACawNAAmsiAAJrIoACayMAAmsjgAJrJEACaySAAmskwAJrJQACayVAAmslwAJrJkACayaAAmsmwAJrJ0ACayeAAms5wAJrQsACa0yAAmtVgAJrVkACa1bAAmtXQAJrV8ACa1hAAmtYwAJrWQACa1nAAmtgAAJrZ0ACa2fAAmtoQAJraMACa2lAAmtpwAJrakACa2rAAmtyAAJrcsACa3OAAmt0QAJrdQACa3XAAmt2gAJrd0ACa3fAAmuWgAJrlwACa5fAAmuYQAJrmQACa5lAAmuZgAJrmcACa5oAAmuagAJrmwACa5tAAmubgAJrnAACa5xAAmu7AAJru4ACa7wAAmu8gAJrvUACa72AAmu9wAJrvgACa75AAmu+wAJrv0ACa7+AAmu/wAJrwEACa8CAAmvfQAJr38ACa+BAAmvgwAJr4YACa+HAAmviAAJr4kACa+KAAmvjAAJr44ACa+PAAmvkAAJr5IACa+TAAmwDgAJsBAACbATAAmwFQAJsBgACbAZAAmwGgAJsBsACbAcAAmwHgAJsCAACbAhAAmwIgAJsCQACbAlAAmwoAAJsKIACbCkAAmwpgAJsKkACbCqAAmwqwAJsKwACbCtAAmwrwAJsLEACbCyAAmwswAJsLUACbC2AAmxMQAJsTMACbE1AAmxNwAJsToACbE7AAmxPAAJsT0ACbE+AAmxQAAJsUIACbFDAAmxRAAJsUYACbFHAAmxwgAJscQACbHGAAmxyAAJscsACbHMAAmxzQAJsc4ACbHPAAmx0QAJsdMACbHUAAmx1QAJsdcACbHYAAmyawAJso4ACbKuAAmyzgAJstAACbLSAAmy1AAJstYACbLZAAmy2gAJstsACbLeAAmy3wAJsuEACbLiAAmy5QAJsugACbLpAAmy6gAJsu0ACbLuAAmy8wAJswwACbMVAAmzFwAJsxkACbMiAAmzJQAJsygACbMqAAmzcwAJs5cACbO+AAmz4gAJs+UACbPnAAmz6QAJs+sACbPtAAmz7wAJs/AACbPzAAm0DAAJtC0ACbQvAAm0MQAJtDMACbQ1AAm0NwAJtDkACbQ7AAm0PQAJtF4ACbRhAAm0ZAAJtGcACbRqAAm0bQAJtHAACbRzAAm0dgAJtHgACbTzAAm09QAJtPcACbT5AAm0/AAJtP0ACbT+AAm0/wAJtQAACbUCAAm1BAAJtQUACbUGAAm1CAAJtQkACbWEAAm1hgAJtYgACbWKAAm1jQAJtY4ACbWPAAm1kAAJtZEACbWTAAm1lQAJtZYACbWXAAm1mQAJtZoACbYVAAm2FwAJthoACbYcAAm2HwAJtiAACbYhAAm2IgAJtiMACbYlAAm2JwAJtigACbYpAAm2KwAJtiwACbZFAAm2RgAJtkcACbZJAAm2xAAJtsYACbbIAAm2ygAJts0ACbbOAAm2zwAJttAACbbRAAm20wAJttUACbbWAAm21wAJttkACbbaAAm3VQAJt1cACbdZAAm3WwAJt14ACbdfAAm3YAAJt2EACbdiAAm3ZAAJt2YACbdnAAm3aAAJt2oACbdrAAm35gAJt+gACbfqAAm37AAJt+8ACbfwAAm38QAJt/IACbfzAAm39QAJt/cACbf4AAm3+QAJt/sACbf8AAm4dwAJuHkACbh7AAm4fQAJuIAACbiBAAm4ggAJuIMACbiEAAm4hgAJuIgACbiJAAm4igAJuIwACbiNAAm5CAAJuQoACbkMAAm5DgAJuREACbkSAAm5EwAJuRQACbkVAAm5FwAJuRkACbkaAAm5GwAJuR0ACbkeAAm5ZwAJuYsACbmyAAm51gAJudkACbnbAAm53QAJud8ACbnhAAm54wAJueQACbnnAAm6AAAJuh0ACbofAAm6IQAJuiMACbolAAm6JwAJuikACborAAm6SAAJuksACbpOAAm6UQAJulQACbpXAAm6WgAJul0ACbpfAAm62gAJutwACbreAAm64AAJuuMACbrkAAm65QAJuuYACbrnAAm66QAJuusACbrsAAm67QAJuu8ACbrwAAm7awAJu20ACbtvAAm7cQAJu3QACbt1AAm7dgAJu3cACbt4AAm7egAJu3wACbt9AAm7fgAJu4AACbuBAAm7/AAJu/4ACbwAAAm8AgAJvAUACbwGAAm8BwAJvAgACbwJAAm8CwAJvA0ACbwOAAm8DwAJvBEACbwSAAm8jQAJvI8ACbySAAm8lAAJvJcACbyYAAm8mQAJvJoACbybAAm8nQAJvJ8ACbygAAm8oQAJvKMACbykAAm9HwAJvSEACb0jAAm9JQAJvSgACb0pAAm9KgAJvSsACb0sAAm9LgAJvTAACb0xAAm9MgAJvTQACb01AAm9sAAJvbIACb20AAm9tgAJvbkACb26AAm9uwAJvbwACb29AAm9vwAJvcEACb3CAAm9wwAJvcUACb3GAAm+QQAJvkMACb5GAAm+SAAJvksACb5MAAm+TQAJvk4ACb5PAAm+UQAJvlMACb5UAAm+VQAJvlcACb5YAAm+6wAJvw4ACb8uAAm/TgAJv1AACb9SAAm/VAAJv1YACb9ZAAm/WgAJv1sACb9eAAm/XwAJv2EACb9iAAm/ZAAJv2cACb9oAAm/aQAJv2wACb9tAAm/cgAJv4sACb+UAAm/lgAJv5gACb+hAAm/pAAJv6cACb+pAAm/8gAJwBYACcA9AAnAYQAJwGQACcBmAAnAaAAJwGoACcBsAAnAbgAJwG8ACcByAAnAiwAJwKwACcCuAAnAsAAJwLIACcC0AAnAtgAJwLgACcC6AAnAvAAJwN0ACcDgAAnA4wAJwOYACcDpAAnA7AAJwO8ACcDyAAnA9QAJwPcACcFyAAnBdAAJwXYACcF4AAnBewAJwXwACcF9AAnBfgAJwX8ACcGBAAnBgwAJwYQACcGFAAnBhwAJwYgACcIDAAnCBQAJwgcACcIJAAnCDAAJwg0ACcIOAAnCDwAJwhAACcISAAnCFAAJwhUACcIWAAnCGAAJwhkACcKUAAnClgAJwpkACcKbAAnCngAJwp8ACcKgAAnCoQAJwqIACcKkAAnCpgAJwqcACcKoAAnCqgAJwqsACcLEAAnCxQAJwsYACcLIAAnDQwAJw0UACcNHAAnDSQAJw0wACcNNAAnDTgAJw08ACcNQAAnDUgAJw1QACcNVAAnDVgAJw1gACcNZAAnD1AAJw9YACcPYAAnD2gAJw90ACcPeAAnD3wAJw+AACcPhAAnD4wAJw+UACcPmAAnD5wAJw+kACcPqAAnEZQAJxGcACcRpAAnEawAJxG4ACcRvAAnEcAAJxHEACcRyAAnEdAAJxHYACcR3AAnEeAAJxHoACcR7AAnE9gAJxPgACcT6AAnE/AAJxP8ACcUAAAnFAQAJxQIACcUDAAnFBQAJxQcACcUIAAnFCQAJxQsACcUMAAnFhwAJxYkACcWLAAnFjQAJxZAACcWRAAnFkgAJxZMACcWUAAnFlgAJxZgACcWZAAnFmgAJxZwACcWdAAnF5gAJxgoACcYxAAnGVQAJxlgACcZaAAnGXAAJxl4ACcZgAAnGYgAJxmMACcZmAAnGfwAJxpwACcaeAAnGoAAJxqIACcakAAnGpgAJxqgACcaqAAnGxwAJxsoACcbNAAnG0AAJxtMACcbWAAnG2QAJxtwACcbeAAnHWQAJx1sACcddAAnHXwAJx2IACcdjAAnHZAAJx2UACcdmAAnHaAAJx2oACcdrAAnHbAAJx24ACcdvAAnH6gAJx+wACcfuAAnH8AAJx/MACcf0AAnH9QAJx/YACcf3AAnH+QAJx/sACcf8AAnH/QAJx/8ACcgAAAnIewAJyH0ACch/AAnIgQAJyIQACciFAAnIhgAJyIcACciIAAnIigAJyIwACciNAAnIjgAJyJAACciRAAnJDAAJyQ4ACckRAAnJEwAJyRYACckXAAnJGAAJyRkACckaAAnJHAAJyR4ACckfAAnJIAAJySIACckjAAnJngAJyaAACcmiAAnJpAAJyacACcmoAAnJqQAJyaoACcmrAAnJrQAJya8ACcmwAAnJsQAJybMACcm0AAnKLwAJyjEACcozAAnKNQAJyjgACco5AAnKOgAJyjsACco8AAnKPgAJykAACcpBAAnKQgAJykQACcpFAAnKwAAJysIACcrEAAnKxgAJyskACcrKAAnKywAJyswACcrNAAnKzwAJytEACcrSAAnK0wAJytUACcrWAAnLaQAJy4wACcusAAnLzAAJy84ACcvQAAnL0gAJy9QACcvXAAnL2AAJy9kACcvcAAnL3QAJy98ACcvgAAnL4gAJy+UACcvmAAnL5wAJy+oACcvrAAnL8AAJzAkACcwSAAnMFAAJzBYACcwfAAnMIgAJzCUACcwnAAnMcAAJzJQACcy7AAnM3wAJzOIACczkAAnM5gAJzOgACczqAAnM7AAJzO0ACczwAAnNCQAJzSoACc0sAAnNLgAJzTAACc0yAAnNNAAJzTYACc04AAnNOgAJzVsACc1eAAnNYQAJzWQACc1nAAnNagAJzW0ACc1wAAnNcwAJzXUACc3wAAnN8gAJzfQACc32AAnN+QAJzfoACc37AAnN/AAJzf0ACc3/AAnOAQAJzgIACc4DAAnOBQAJzgYACc6BAAnOgwAJzoUACc6HAAnOigAJzosACc6MAAnOjQAJzo4ACc6QAAnOkgAJzpMACc6UAAnOlgAJzpcACc8SAAnPFAAJzxcACc8ZAAnPHAAJzx0ACc8eAAnPHwAJzyAACc8iAAnPJAAJzyUACc8mAAnPKAAJzykACc9CAAnPQwAJz0QACc9GAAnPwQAJz8MACc/FAAnPxwAJz8oACc/LAAnPzAAJz80ACc/OAAnP0AAJz9IACc/TAAnP1AAJz9YACc/XAAnQUgAJ0FQACdBWAAnQWAAJ0FsACdBcAAnQXQAJ0F4ACdBfAAnQYQAJ0GMACdBkAAnQZQAJ0GcACdBoAAnQ4wAJ0OUACdDnAAnQ6QAJ0OwACdDtAAnQ7gAJ0O8ACdDwAAnQ8gAJ0PQACdD1AAnQ9gAJ0PgACdD5AAnRdAAJ0XYACdF4AAnRegAJ0X0ACdF+AAnRfwAJ0YAACdGBAAnRgwAJ0YUACdGGAAnRhwAJ0YkACdGKAAnSBQAJ0gcACdIJAAnSCwAJ0g4ACdIPAAnSEAAJ0hEACdISAAnSFAAJ0hYACdIXAAnSGAAJ0hoACdIbAAnSZAAJ0ogACdKvAAnS0wAJ0tYACdLYAAnS2gAJ0twACdLeAAnS4AAJ0uEACdLkAAnS/QAJ0xoACdMcAAnTHgAJ0yAACdMiAAnTJAAJ0yYACdMoAAnTRQAJ00gACdNLAAnTTgAJ01EACdNUAAnTVwAJ01oACdNcAAnT1wAJ09kACdPbAAnT3QAJ0+AACdPhAAnT4gAJ0+MACdPkAAnT5gAJ0+gACdPpAAnT6gAJ0+wACdPtAAnUaAAJ1GoACdRsAAnUbgAJ1HEACdRyAAnUcwAJ1HQACdR1AAnUdwAJ1HkACdR6AAnUewAJ1H0ACdR+AAnU+QAJ1PsACdT9AAnU/wAJ1QIACdUDAAnVBAAJ1QUACdUGAAnVCAAJ1QoACdULAAnVDAAJ1Q4ACdUPAAnVigAJ1YwACdWOAAnVkAAJ1ZMACdWUAAnVlQAJ1ZYACdWXAAnVmQAJ1ZsACdWcAAnVnQAJ1Z8ACdWgAAnWGwAJ1h0ACdYfAAnWIQAJ1iQACdYlAAnWJgAJ1icACdYoAAnWKgAJ1iwACdYtAAnWLgAJ1jAACdYxAAnWrAAJ1q4ACdawAAnWsgAJ1rUACda2AAnWtwAJ1rgACda5AAnWuwAJ1r0ACda+AAnWvwAJ1sEACdbCAAnXPQAJ1z8ACddBAAnXQwAJ10YACddHAAnXSAAJ10kACddKAAnXTAAJ104ACddPAAnXUAAJ11IACddTAAnXZAAJ12UACddnAAnX4gAJ1+QACdfmAAnX6AAJ1+sACdfsAAnX7QAJ1+4ACdfvAAnX8QAJ1/MACdf0AAnX9QAJ1/cACdf4AAnYcwAJ2HUACdh3AAnYeQAJ2HwACdh9AAnYfgAJ2H8ACdiAAAnYggAJ2IQACdiFAAnYhgAJ2IgACdiJAAnZBAAJ2QYACdkJAAnZCwAJ2Q4ACdkPAAnZEAAJ2REACdkSAAnZFAAJ2RYACdkXAAnZGAAJ2RoACdkbAAnZrgAJ2dEACdnxAAnaEQAJ2hMACdoVAAnaFwAJ2hkACdocAAnaHQAJ2h4ACdohAAnaIgAJ2iQACdolAAnaJwAJ2ioACdorAAnaLAAJ2i8ACdowAAnaOQAJ2lIACdpbAAnaXQAJ2l8ACdpoAAnaawAJ2m4ACdpwAAnauQAJ2t0ACdsEAAnbKAAJ2ysACdstAAnbLwAJ2zEACdszAAnbNQAJ2zYACds5AAnbUgAJ23MACdt1AAnbdwAJ23kACdt7AAnbfQAJ238ACduBAAnbgwAJ26QACdunAAnbqgAJ260ACduwAAnbswAJ27YACdu5AAnbvAAJ274ACdw5AAncOwAJ3D0ACdw/AAncQgAJ3EMACdxEAAncRQAJ3EYACdxIAAncSgAJ3EsACdxMAAncTgAJ3E8ACdzKAAnczAAJ3M4ACdzQAAnc0wAJ3NQACdzVAAnc1gAJ3NcACdzZAAnc2wAJ3NwACdzdAAnc3wAJ3OAACd1bAAndXQAJ3WAACd1iAAndZQAJ3WYACd1nAAndaAAJ3WkACd1rAAndbQAJ3W4ACd1vAAndcQAJ3XIACd2LAAndjAAJ3Y0ACd2PAAneCgAJ3gwACd4OAAneEAAJ3hMACd4UAAneFQAJ3hYACd4XAAneGQAJ3hsACd4cAAneHQAJ3h8ACd4gAAnemwAJ3p0ACd6fAAneoQAJ3qQACd6lAAnepgAJ3qcACd6oAAneqgAJ3qwACd6tAAnergAJ3rAACd6xAAnfLAAJ3y4ACd8wAAnfMgAJ3zUACd82AAnfNwAJ3zgACd85AAnfOwAJ3z0ACd8+AAnfPwAJ30EACd9CAAnfvQAJ378ACd/BAAnfwwAJ38YACd/HAAnfyAAJ38kACd/KAAnfzAAJ384ACd/PAAnf0AAJ39IACd/TAAngTgAJ4FAACeBSAAngVAAJ4FcACeBYAAngWQAJ4FoACeBbAAngXQAJ4F8ACeBgAAngYQAJ4GMACeBkAAngrQAJ4NEACeD4AAnhHAAJ4R8ACeEhAAnhIwAJ4SUACeEnAAnhKQAJ4SoACeEtAAnhRgAJ4WMACeFlAAnhZwAJ4WkACeFrAAnhbQAJ4W8ACeFxAAnhjgAJ4ZEACeGUAAnhlwAJ4ZoACeGdAAnhoAAJ4aMACeGlAAniIAAJ4iIACeIkAAniJgAJ4ikACeIqAAniKwAJ4iwACeItAAniLwAJ4jEACeIyAAniMwAJ4jUACeI2AAnisQAJ4rMACeK1AAnitwAJ4roACeK7AAnivAAJ4r0ACeK+AAniwAAJ4sIACeLDAAnixAAJ4sYACeLHAAnjQgAJ40QACeNGAAnjSAAJ40sACeNMAAnjTQAJ404ACeNPAAnjUQAJ41MACeNUAAnjVQAJ41cACeNYAAnj0wAJ49UACePYAAnj2gAJ490ACePeAAnj3wAJ4+AACePhAAnj4wAJ4+UACePmAAnj5wAJ4+kACePqAAnkZQAJ5GcACeRpAAnkawAJ5G4ACeRvAAnkcAAJ5HEACeRyAAnkdAAJ5HYACeR3AAnkeAAJ5HoACeR7AAnk9gAJ5PgACeT6AAnk/AAJ5P8ACeUAAAnlAQAJ5QIACeUDAAnlBQAJ5QcACeUIAAnlCQAJ5QsACeUMAAnlhwAJ5YkACeWLAAnljQAJ5ZAACeWRAAnlkgAJ5ZMACeWUAAnllgAJ5ZgACeWZAAnlmgAJ5ZwACeWdAAnmMAAJ5lMACeZzAAnmkwAJ5pUACeaXAAnmmQAJ5psACeaeAAnmnwAJ5qAACeajAAnmpAAJ5qYACeanAAnmqQAJ5qwACeatAAnmrgAJ5rEACeayAAnmtwAJ5tAACebZAAnm2wAJ5t0ACebmAAnm6QAJ5uwACebuAAnnNwAJ51sACeeCAAnnpgAJ56kACeerAAnnrQAJ568ACeexAAnnswAJ57QACee3AAnn0AAJ5/EACefzAAnn9QAJ5/cACef5AAnn+wAJ5/0ACef/AAnoAQAJ6CIACeglAAnoKAAJ6CsACeguAAnoMQAJ6DQACeg3AAnoOgAJ6DwACei3AAnouQAJ6LsACei9AAnowAAJ6MEACejCAAnowwAJ6MQACejGAAnoyAAJ6MkACejKAAnozAAJ6M0ACelIAAnpSgAJ6UwACelOAAnpUQAJ6VIACelTAAnpVAAJ6VUACelXAAnpWQAJ6VoACelbAAnpXQAJ6V4ACenZAAnp2wAJ6d4ACengAAnp4wAJ6eQACenlAAnp5gAJ6ecACenpAAnp6wAJ6ewACentAAnp7wAJ6fAACeoJAAnqCgAJ6gsACeoNAAnqiAAJ6ooACeqMAAnqjgAJ6pEACeqSAAnqkwAJ6pQACeqVAAnqlwAJ6pkACeqaAAnqmwAJ6p0ACeqeAAnrGQAJ6xsACesdAAnrHwAJ6yIACesjAAnrJAAJ6yUACesmAAnrKAAJ6yoACesrAAnrLAAJ6y4ACesvAAnrqgAJ66wACeuuAAnrsAAJ67MACeu0AAnrtQAJ67YACeu3AAnruQAJ67sACeu8AAnrvQAJ678ACevAAAnsOwAJ7D0ACew/AAnsQQAJ7EQACexFAAnsRgAJ7EcACexIAAnsSgAJ7EwACexNAAnsTgAJ7FAACexRAAnszAAJ7M4ACezQAAns0gAJ7NUACezWAAns1wAJ7NgACezZAAns2wAJ7N0ACezeAAns3wAJ7OEACeziAAntKwAJ7U8ACe12AAntmgAJ7Z0ACe2fAAntoQAJ7aMACe2lAAntpwAJ7agACe2rAAntxAAJ7eEACe3jAAnt5QAJ7ecACe3pAAnt6wAJ7e0ACe3vAAnuDAAJ7g8ACe4SAAnuFQAJ7hgACe4bAAnuHgAJ7iEACe4jAAnungAJ7qAACe6jAAnupQAJ7qgACe6pAAnuqgAJ7qsACe6sAAnurgAJ7rAACe6xAAnusgAJ7rQACe61AAnvMAAJ7zIACe80AAnvNgAJ7zkACe86AAnvOwAJ7zwACe89AAnvPwAJ70EACe9CAAnvQwAJ70UACe9GAAnvwQAJ78MACe/FAAnvxwAJ78oACe/LAAnvzAAJ780ACe/OAAnv0AAJ79IACe/TAAnv1AAJ79YACe/XAAnwUgAJ8FQACfBXAAnwWQAJ8FwACfBdAAnwXgAJ8F8ACfBgAAnwYgAJ8GQACfBlAAnwZgAJ8GgACfBpAAnw5AAJ8OYACfDoAAnw6gAJ8O0ACfDuAAnw7wAJ8PAACfDxAAnw8wAJ8PUACfD2AAnw9wAJ8PkACfD6AAnxdQAJ8XcACfF5AAnxewAJ8X4ACfF/AAnxgAAJ8YEACfGCAAnxhAAJ8YYACfGHAAnxiAAJ8YoACfGLAAnyBgAJ8ggACfIKAAnyDAAJ8g8ACfIQAAnyEQAJ8hIACfITAAnyFQAJ8hcACfIYAAnyGQAJ8hsACfIcAAnyrwAJ8tIACfLyAAnzEgAJ8xQACfMWAAnzGAAJ8xoACfMdAAnzHgAJ8x8ACfMiAAnzIwAJ8yUACfMmAAnzKQAJ8ywACfMtAAnzLgAJ8zE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ACgV+AAoFfwAKBYAACgWBAAoFggAKBYQACgWGAAoFhwAKBYgACgWKAAoFiwAKBgYACgYIAAoGCwAKBg0ACgYQAAoGEQAKBhIACgYTAAoGFAAKBhYACgYYAAoGGQAKBhoACgYcAAoGHQAKBjkACgZSAAoGuQAKBrwACga/AAoGwgAKBsUACgbIAAoGywAKBs4ACgbRAAoG1AAKBtcACgbaAAoG3QAKBuAACgbjAAoG5gAKBukACgbsAAoG7wAKBvIACgb1AAoG+AAKBvsACgb+AAoHAQAKBwQACgdrAAoHbgAKB3EACgd0AAoHdwAKB3oACgd9AAoHgAAKB4MACgeGAAoHiQAKB4wACgePAAoHkgAKB5UACgeYAAoHmwAKB54ACgehAAoHpAAKB6cACgeqAAoHrQAKB7AACgezAAoHtgAKB7gACgfYAAoH7AAKCAoACggqAAoIPgAKCFMACghnAAoIdQAKCIcACgilAAoItwAKCMMACgjXAAoI6wAKCQIACgkOAAoJIwAKCTEACglOAAoJYAAKCWkACgn8AAoKHwAKCj8ACgpfAAoKYQAKCmMACgplAAoKZwAKCmoACgprAAoKbAAKCm8ACgpwAAoKcgAKCnMACgp1AAoKeAAKCnkACgp6AAoKfQAKCn4ACgqDAAoKnAAKCqUACgqnAAoKqQAKCrIACgq1AAoKuAAKCroACgsDAAoLJwAKC04ACgtyAAoLdQAKC3cACgt5AAoLewAKC30ACgt/AAoLgAAKC4MACgucAAoLvQAKC78ACgvBAAoLwwAKC8UACgvHAAoLyQAKC8sACgvNAAoL7gAKC/EACgv0AAoL9wAKC/oACgv9AAoMAAAKDAMACgwGAAoMCAAKDIMACgyFAAoMhwAKDIkACgyMAAoMjQAKDI4ACgyPAAoMkAAKDJIACgyUAAoMlQAKDJYACgyYAAoMmQAKDRQACg0WAAoNGAAKDRoACg0dAAoNHgAKDR8ACg0gAAoNIQAKDSMACg0lAAoNJgAKDScACg0pAAoNKgAKDaUACg2nAAoNqgAKDawACg2vAAoNsAAKDbEACg2yAAoNswAKDbUACg23AAoNuAAKDbkACg27AAoNvAAKDdUACg3WAAoN1wAKDdkACg5UAAoOVgAKDlgACg5aAAoOXQAKDl4ACg5fAAoOYAAKDmEACg5jAAoOZQAKDmYACg5nAAoOaQAKDmoACg7lAAoO5wAKDukACg7rAAoO7gAKDu8ACg7wAAoO8QAKDvIACg70AAoO9gAKDvcACg74AAoO+gAKDvsACg92AAoPeAAKD3oACg98AAoPfwAKD4AACg+BAAoPggAKD4MACg+FAAoPhwAKD4gACg+JAAoPiwAKD4wAChAHAAoQCQAKEAsAChANAAoQEAAKEBEAChASAAoQEwAKEBQAChAWAAoQGAAKEBkAChAaAAoQHAAKEB0AChCYAAoQmgAKEJwAChCeAAoQoQAKEKIAChCjAAoQpAAKEKUAChCnAAoQqQAKEKoAChCrAAoQrQAKEK4AChD3AAoRGwAKEUIAChFmAAoRaQAKEWsAChFtAAoRbwAKEXEAChFzAAoRdAAKEXcAChGQAAoRrQAKEa8AChGxAAoRswAKEbUAChG3AAoRuQAKEbsAChHYAAoR2wAKEd4AChHhAAoR5AAKEecAChHqAAoR7QAKEe8AChJqAAoSbAAKEm4AChJwAAoScwAKEnQAChJ1AAoSdgAKEncAChJ5AAoSewAKEnwAChJ9AAoSfwAKEoAAChL7AAoS/QAKEv8AChMBAAoTBAAKEwUAChMGAAoTBwAKEwgAChMKAAoTDAAKEw0AChMOAAoTEAAKExEAChOMAAoTjgAKE5AAChOSAAoTlQAKE5YAChOXAAoTmAAKE5kAChObAAoTnQAKE54AChOfAAoToQAKE6IAChQdAAoUHwAKFCEAChQjAAoUJgAKFCcAChQoAAoUKQAKFCoAChQsAAoULgAKFC8AChQwAAoUMgAKFDMAChSuAAoUsAAKFLIAChS0AAoUtwAKFLgAChS5AAoUugAKFLsAChS9AAoUvwAKFMAAChTBAAoUwwAKFMQAChU/AAoVQQAKFUMAChVFAAoVSAAKFUkAChVKAAoVSwAKFUwAChVOAAoVUAAKFVEAChVSAAoVVAAKFVUAChXQAAoV0gAKFdQAChXWAAoV2QAKFdoAChXbAAoV3AAKFd0AChXfAAoV4QAKFeIAChXjAAoV5QAKFeYAChZ5AAoWnAAKFrwAChbcAAoW3gAKFuAAChbiAAoW5AAKFucAChboAAoW6QAKFuwAChbtAAoW7wAKFvAAChbyAAoW9QAKFvYAChb3AAoW+gAKFvsAChcAAAoXGQAKFyIAChckAAoXJgAKFy8AChcyAAoXNQAKFzcACheAAAoXpAAKF8sAChfvAAoX8gAKF/QAChf2AAoX+AAKF/oAChf8AAoX/QAKGAAAChgZAAoYOgAKGDwAChg+AAoYQAAKGEIAChhEAAoYRgAKGEgAChhKAAoYawAKGG4AChhxAAoYdAAKGHcAChh6AAoYfQAKGIAAChiDAAoYhQAKGQAAChkCAAoZBAAKGQYAChkJAAoZCgAKGQsAChkMAAoZDQAKGQ8AChkRAAoZEgAKGRMAChkVAAoZFgAKGZEAChmTAAoZlQAKGZcAChmaAAoZmwAKGZwAChmdAAoZngAKGaAAChmiAAoZowAKGaQAChmmAAoZpwAKGiIAChokAAoaJwAKGikAChosAAoaLQAKGi4AChovAAoaMAAKGjIACho0AAoaNQAKGjYACho4AAoaOQAKGlIAChpTAAoaVAAKGlYAChrRAAoa0wAKGtUAChrXAAoa2gAKGtsAChrcAAoa3QAKGt4AChrgAAoa4gAKGuMAChrkAAoa5gAKGucAChtiAAobZAAKG2YAChtoAAobawAKG2wAChttAAobbgAKG28AChtxAAobcwAKG3QACht1AAobdwAKG3gAChvzAAob9QAKG/cAChv5AAob/AAKG/0AChv+AAob/wAKHAAAChwCAAocBAAKHAUAChwGAAocCAAKHAkAChyEAAochgAKHIgAChyKAAocjQAKHI4AChyPAAockAAKHJEAChyTAAoclQAKHJYAChyXAAocmQAKHJoACh0VAAodFwAKHRkACh0bAAodHgAKHR8ACh0gAAodIQAKHSIACh0kAAodJgAKHScACh0oAAodKgAKHSsACh10AAodmAAKHb8ACh3jAAod5gAKHegACh3qAAod7AAKHe4ACh3wAAod8QAKHfQACh4NAAoeKgAKHiwACh4uAAoeMAAKHjIACh40AAoeNgAKHjgACh5VAAoeWAAKHlsACh5eAAoeYQAKHmQACh5nAAoeagAKHmwACh7nAAoe6QAKHusACh7tAAoe8AAKHvEACh7yAAoe8wAKHvQACh72AAoe+AAKHvkACh76AAoe/AAKHv0ACh94AAofegAKH3wACh9+AAofgQAKH4IACh+DAAofhAAKH4UACh+HAAofiQAKH4oACh+LAAofjQAKH44ACiAJAAogCwAKIA0ACiAPAAogEgAKIBMACiAUAAogFQAKIBYACiAYAAogGgAKIBsACiAcAAogHgAKIB8ACiCaAAognAAKIJ8ACiChAAogpAAKIKUACiCmAAogpwAKIKgACiCqAAogrAAKIK0ACiCuAAogsAAKILEACiEsAAohLgAKITAACiEyAAohNQAKITYACiE3AAohOAAKITkACiE7AAohPQAKIT4ACiE/AAohQQAKIUIACiG9AAohvwAKIcEACiHDAAohxgAKIccACiHIAAohyQAKIcoACiHMAAohzgAKIc8ACiHQAAoh0gAKIdMACiJOAAoiUAAKIlIACiJUAAoiVwAKIlgACiJZAAoiWgAKIlsACiJdAAoiXwAKImAACiJhAAoiYwAKImQACiL3AAojGgAKIzoACiNaAAojXAAKI14ACiNgAAojYgAKI2UACiNmAAojZwAKI2oACiNrAAojbQAKI24ACiNwAAojcwAKI3QACiN1AAojeAAKI3kACiN+AAojlwAKI6AACiOiAAojpAAKI60ACiOwAAojswAKI7UACiP+AAokIgAKJEkACiRtAAokcAAKJHIACiR0AAokdgAKJHgACiR6AAokewAKJH4ACiSXAAokuAAKJLoACiS8AAokvgAKJMAACiTCAAokxAAKJMYACiTIAAok6QAKJOwACiTvAAok8gAKJPUACiT4AAok+wAKJP4ACiUBAAolAwAKJX4ACiWAAAolggAKJYQACiWHAAoliAAKJYkACiWKAAoliwAKJY0ACiWPAAolkAAKJZEACiWTAAollAAKJg8ACiYRAAomEwAKJhUACiYYAAomGQAKJhoACiYbAAomHAAKJh4ACiYgAAomIQAKJiIACiYkAAomJQAKJqAACiaiAAompQAKJqcACiaqAAomqwAKJqwACiatAAomrgAKJrAACiayAAomswAKJrQACia2AAomtwAKJtAACibRAAom0gAKJtQACidPAAonUQAKJ1MACidVAAonWAAKJ1kACidaAAonWwAKJ1wACideAAonYAAKJ2EACidiAAonZAAKJ2UACifgAAon4gAKJ+QACifmAAon6QAKJ+oACifrAAon7AAKJ+0ACifvAAon8QAKJ/IACifzAAon9QAKJ/YACihxAAoocwAKKHUACih3AAooegAKKHsACih8AAoofQAKKH4ACiiAAAooggAKKIMACiiEAAoohgAKKIcACikCAAopBAAKKQYACikIAAopCwAKKQwACikNAAopDgAKKQ8ACikRAAopEwAKKRQACikVAAopFwAKKRgACimTAAoplQAKKZcACimZAAopnAAKKZ0ACimeAAopnwAKKaAACimiAAoppAAKKaUACimmAAopqAAKKakACinyAAoqFgAKKj0ACiphAAoqZAAKKmYACipoAAoqagAKKmwACipuAAoqbwAKKnIACiqLAAoqqAAKKqoACiqsAAoqrgAKKrAACiqyAAoqtAAKKrYACirTAAoq1gAKKtkACircAAoq3wAKKuIACirlAAoq6AAKKuoACitlAAorZwAKK2oACitsAAorbwAKK3AACitxAAorcgAKK3MACit1AAordwAKK3gACit5AAorewAKK3wACiv3AAor+QAKK/sACiv9AAosAAAKLAEACiwCAAosAwAKLAQACiwGAAosCAAKLAkACiwKAAosDAAKLA0ACiyIAAosigAKLIwACiyOAAoskQAKLJIACiyTAAoslAAKLJUACiyXAAosmQAKLJoACiybAAosnQAKLJ4ACi0ZAAotGwAKLR4ACi0gAAotIwAKLSQACi0lAAotJgAKLScACi0pAAotKwAKLSwACi0tAAotLwAKLTAACi2rAAotrQAKLa8ACi2xAAottAAKLbUACi22AAottwAKLbgACi26AAotvAAKLb0ACi2+AAotwAAKLcEACi48AAouPgAKLkAACi5CAAouRQAKLkYACi5HAAouSAAKLkkACi5LAAouTQAKLk4ACi5PAAouUQAKLlIACi7NAAouzwAKLtEACi7TAAou1gAKLtcACi7YAAou2QAKLtoACi7cAAou3gAKLt8ACi7gAAou4gAKLuMACi92AAovmQAKL7kACi/ZAAov2wAKL90ACi/fAAov4QAKL+QACi/lAAov5gAKL+kACi/qAAov7AAKL+0ACi/vAAov8gAKL/MACi/0AAov9wAKL/gACi/9AAowFgAKMB8ACjAhAAowIwAKMCwACjAvAAowMgAKMDQACjB9AAowoQAKMMgACjDsAAow7wAKMPEACjDzAAow9QAKMPcACjD5AAow+gAKMP0ACjEWAAoxNwAKMTkACjE7AAoxPQAKMT8ACjFBAAoxQwAKMUUACjFHAAoxaAAKMWsACjFuAAoxcQAKMXQACjF3AAoxegAKMX0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ACkNdAApDYAAKQ2IACkNkAApDZgAKQ2gACkNqAApDawAKQ24ACkOHAApDpAAKQ6YACkOoAApDqgAKQ6wACkOuAApDsAAKQ7IACkPPAApD0gAKQ9UACkPYAApD2wAKQ94ACkPhAApD5AAKQ+YACkRhAApEYwAKRGUACkRnAApEagAKRGsACkRsAApEbQAKRG4ACkRwAApEcgAKRHMACkR0AApEdgAKRHcACkTyAApE9AAKRPYACkT4AApE+wAKRPwACkT9AApE/gAKRP8ACkUBAApFAwAKRQQACkUFAApFBwAKRQgACkWDAApFhQAKRYcACkWJAApFjAAKRY0ACkWOAApFjwAKRZAACkWSAApFlAAKRZUACkWWAApFmAAKRZkACkYUAApGFgAKRhkACkYbAApGHgAKRh8ACkYgAApGIQAKRiIACkYkAApGJgAKRicACkYoAApGKgAKRisACkamAApGqAAKRqoACkasAApGrwAKRrAACkaxAApGsgAKRrMACka1AApGtwAKRrgACka5AApGuwAKRrwACkc3AApHOQAKRzsACkc9AApHQAAKR0EACkdCAApHQwAKR0QACkdGAApHSAAKR0kACkdKAApHTAAKR00ACkfIAApHygAKR8wACkfOAApH0QAKR9IACkfTAApH1AAKR9UACkfXAApH2QAKR9oACkfbAApH3QAKR94ACkhxAApIlAAKSLQACkjUAApI1gAKSNgACkjaAApI3AAKSN8ACkjgAApI4QAKSOQACkjlAApI5wAKSOgACkjqAApI7QAKSO4ACkjvAApI8gAKSPMACkj4AApJEQAKSRoACkkcAApJHgAKSScACkkqAApJLQAKSS8ACkl4AApJnAAKScMACknnAApJ6gAKSewACknuAApJ8AAKSfIACkn0AApJ9QAKSfgACkoRAApKMgAKSjQACko2AApKOAAKSjoACko8AApKPgAKSkAACkpCAApKYwAKSmYACkppAApKbAAKSm8ACkpyAApKdQAKSngACkp7AApKfQAKSvgACkr6AApK/AAKSv4ACksBAApLAgAKSwMACksEAApLBQAKSwcACksJAApLCgAKSwsACksNAApLDgAKS4kACkuLAApLjQAKS48ACkuSAApLkwAKS5QACkuVAApLlgAKS5gACkuaAApLmwAKS5wACkueAApLnwAKTBoACkwcAApMHwAKTCEACkwkAApMJQAKTCYACkwnAApMKAAKTCoACkwsAApMLQAKTC4ACkwwAApMMQAKTEoACkxLAApMTAAKTE4ACkzJAApMywAKTM0ACkzPAApM0gAKTNMACkzUAApM1QAKTNYACkzYAApM2gAKTNsACkzcAApM3gAKTN8ACk1aAApNXAAKTV4ACk1gAApNYwAKTWQACk1lAApNZgAKTWcACk1pAApNawAKTWwACk1tAApNbwAKTXAACk3rAApN7QAKTe8ACk3xAApN9AAKTfUACk32AApN9wAKTfgACk36AApN/AAKTf0ACk3+AApOAAAKTgEACk58AApOfgAKToAACk6CAApOhQAKToYACk6HAApOiAAKTokACk6LAApOjQAKTo4ACk6PAApOkQAKTpIACk8NAApPDwAKTxEACk8TAApPFgAKTxcACk8YAApPGQAKTxoACk8cAApPHgAKTx8ACk8gAApPIgAKTyMACk9sAApPkAAKT7cACk/bAApP3gAKT+AACk/iAApP5AAKT+YACk/oAApP6QAKT+wAClAFAApQIgAKUCQAClAmAApQKAAKUCoAClAsAApQLgAKUDAAClBNAApQUAAKUFMAClBWAApQWQAKUFwAClBfAApQYgAKUGQAClDfAApQ4QAKUOMAClDlAApQ6AAKUOkAClDqAApQ6wAKUOwAClDuAApQ8AAKUPEAClDyAApQ9AAKUPUAClFwAApRcgAKUXQAClF2AApReQAKUXoAClF7AApRfAAKUX0AClF/AApRgQAKUYIAClGDAApRhQAKUYYAClIBAApSAwAKUgUAClIHAApSCgAKUgsAClIMAApSDQAKUg4AClIQAApSEgAKUhMAClIUAApSFgAKUhcAClKSAApSlAAKUpYAClKYAApSmwAKUpwAClKdAApSngAKUp8AClKhAApSowAKUqQAClKlAApSpwAKUqgAClMjAApTJQAKUycAClMpAApTLAAKUy0AClMuAApTLwAKUzAAClMyAApTNAAKUzUAClM2AApTOAAKUzkAClO0AApTtgAKU7gAClO6AApTvQAKU74AClO/AApTwAAKU8EAClPDAApTxQAKU8YAClPHAApTyQAKU8oAClRFAApURwAKVEkAClRLAApUTgAKVE8AClRQAApUUQAKVFIAClRUAApUVgAKVFcAClRYAApUWgAKVFsAClTuAApVEQAKVTEAClVRAApVUwAKVVUAClVXAApVWQAKVVwAClVdAApVXgAKVWEAClViAApVZAAKVWUAClVnAApVagAKVWsAClVsAApVbwAKVXAAClV1AApVjgAKVZcAClWZAApVmwAKVaQAClWnAApVqgAKVawAClX1AApWGQAKVkAAClZkAApWZwAKVmkAClZrAApWbQAKVm8AClZxAApWcgAKVnUAClaOAApWrwAKVrEAClazAApWtQAKVrcACla5AApWuwAKVr0ACla/AApW4AAKVuMAClbmAApW6QAKVuwAClbvAApW8gAKVvUAClb4AApW+gAKV3UACld3AApXeQAKV3sACld+AApXfwAKV4AACleBAApXggAKV4QACleGAApXhwAKV4gACleKAApXiwAKWAYAClgIAApYCgAKWAwAClgPAApYEAAKWBEAClgSAApYEwAKWBUAClgXAApYGAAKWBkAClgbAApYHAAKWJcACliZAApYnAAKWJ4AClihAApYogAKWKMAClikAApYpQAKWKcAClipAApYqgAKWKsAClitAApYrgAKWMcACljIAApYyQAKWMsACllGAApZSAAKWUoACllMAApZTwAKWVAACllRAApZUgAKWVMACllVAApZVwAKWVgACllZAApZWwAKWVwAClnXAApZ2QAKWdsAClndAApZ4AAKWeEAClniAApZ4wAKWeQAClnmAApZ6AAKWekAClnqAApZ7AAKWe0AClpoAApaagAKWmwAClpuAApacQAKWnIAClpzAApadAAKWnUAClp3AApaeQAKWnoAClp7AApafQAKWn4AClr5AApa+wAKWv0AClr/AApbAgAKWwMAClsEAApbBQAKWwYAClsIAApbCgAKWwsAClsMAApbDgAKWw8ACluKAApbjAAKW44ACluQAApbkwAKW5QACluVAApblgAKW5cACluZAApbmwAKW5wACludAApbnwAKW6AAClvpAApcDQAKXDQAClxYAApcWwAKXF0AClxfAApcYQAKXGMAClxlAApcZgAKXGkAClyCAApcnwAKXKEAClyjAApcpQAKXKcAClypAApcqwAKXK0AClzKAApczQAKXNAAClzTAApc1gAKXNkAClzcAApc3wAKXOEACl1cAApdXgAKXWAACl1iAApdZQAKXWYACl1nAApdaAAKXWkACl1rAApdbQAKXW4ACl1vAApdcQAKXXIACl3tAApd7wAKXfEACl3zAApd9gAKXfcACl34AApd+QAKXfoACl38AApd/gAKXf8ACl4AAApeAgAKXgMACl5+AApegAAKXoIACl6EAApehwAKXogACl6JAApeigAKXosACl6NAApejwAKXpAACl6RAApekwAKXpQACl8PAApfEQAKXxMACl8VAApfGAAKXxkACl8aAApfGwAKXxwACl8eAApfIAAKXyEACl8iAApfJAAKXyUACl+gAApfogAKX6QACl+mAApfqQAKX6oACl+rAApfrAAKX60ACl+vAApfsQAKX7IACl+zAApftQAKX7YACmAxAApgMwAKYDUACmA3AApgOgAKYDsACmA8AApgPQAKYD4ACmBAAApgQgAKYEMACmBEAApgRgAKYEcACmDCAApgxAAKYMYACmDIAApgywAKYMwACmDNAApgzgAKYM8ACmDRAApg0wAKYNQACmDVAApg1wAKYNgACmFrAAphjgAKYa4ACmHOAAph0AAKYdIACmHUAAph1gAKYdkACmHaAAph2wAKYd4ACmHfAAph4QAKYeIACmHkAAph5wAKYegACmHpAAph7AAKYe0ACmHyAApiCwAKYhQACmIWAApiGAAKYiEACmIkAApiJwAKYikACmJyAApilgAKYr0ACmLhAApi5AAKYuYACmLoAApi6gAKYuwACmLuAApi7wAKYvIACmMLAApjLAAKYy4ACmMwAApjMgAKYzQACmM2AApjOAAKYzoACmM8AApjXQAKY2AACmNjAApjZgAKY2kACmNsAApjbwAKY3IACmN1AApjdwAKY/IACmP0AApj9gAKY/gACmP7AApj/AAKY/0ACmP+AApj/wAKZAEACmQDAApkBAAKZAUACmQHAApkCAAKZIMACmSFAApkhwAKZIkACmSMAApkjQAKZI4ACmSPAApkkAAKZJIACmSUAApklQAKZJYACmSYAApkmQAKZRQACmUWAAplGQAKZRsACmUeAAplHwAKZSAACmUhAAplIgAKZSQACmUmAAplJwAKZSgACmUqAAplKwAKZUQACmVFAAplRgAKZUgACmXDAAplxQAKZccACmXJAAplzAAKZc0ACmXOAAplzwAKZdAACmXSAApl1AAKZdUACmXWAApl2AAKZdkACmZUAApmVgAKZlgACmZaAApmXQAKZl4ACmZfAApmYAAKZmEACmZjAApmZQAKZmYACmZnAApmaQAKZmoACmblAApm5wAKZukACmbrAApm7gAKZu8ACmbwAApm8QAKZvIACmb0AApm9gAKZvcACmb4AApm+gAKZvsACmd2AApneAAKZ3oACmd8AApnfwAKZ4AACmeBAApnggAKZ4MACmeFAApnhwAKZ4gACmeJAApniwAKZ4wACmgHAApoCQAKaAsACmgNAApoEAAKaBEACmgSAApoEwAKaBQACmgWAApoGAAKaBkACmgaAApoHAAKaB0ACmhmAApoigAKaLEACmjVAApo2AAKaNoACmjcAApo3gAKaOAACmjiAApo4wAKaOYACmj/AAppHAAKaR4ACmkgAAppIgAKaSQACmkmAAppKAAKaSoACmlHAAppSgAKaU0ACmlQAAppUwAKaVYACmlZAAppXAAKaV4ACmnZAApp2wAKad0ACmnfAApp4gAKaeMACmnkAApp5QAKaeYACmnoAApp6gAKaesACmnsAApp7gAKae8ACmpqAApqbAAKam4ACmpwAApqcwAKanQACmp1AApqdgAKancACmp5AApqewAKanwACmp9AApqfwAKaoAACmr7AApq/QAKav8ACmsBAAprBAAKawUACmsGAAprBwAKawgACmsKAAprDAAKaw0ACmsOAAprEAAKaxEACmuMAAprjgAKa5EACmuTAAprlgAKa5cACmuYAAprmQAKa5oACmucAAprngAKa58ACmugAAprogAKa6MACmweAApsIAAKbCIACmwkAApsJwAKbCgACmwpAApsKgAKbCsACmwtAApsLwAKbDAACmwxAApsMwAKbDQACmyvAApssQAKbLMACmy1AApsuAAKbLkACmy6AApsuwAKbLwACmy+AApswAAKbMEACmzCAApsxAAKbMUACm1AAAptQgAKbUQACm1GAAptSQAKbUoACm1LAAptTAAKbU0ACm1PAAptUQAKbVIACm1TAAptVQAKbVYACm3pAApuDAAKbiwACm5MAApuTgAKblAACm5SAApuVAAKblcACm5YAApuWQAKblwACm5dAApuXwAKbmAACm5iAApuZQAKbmYACm5nAApuagAKbmsACm50AApujQAKbpYACm6YAApumgAKbqMACm6mAApuqQAKbqsACm70AApvGAAKbz8ACm9jAApvZgAKb2gACm9qAApvbAAKb24ACm9wAApvcQAKb3QACm+NAApvrgAKb7AACm+yAApvtAAKb7YACm+4AApvugAKb7wACm++AApv3wAKb+IACm/lAApv6AAKb+sACm/uAApv8QAKb/QACm/3AApv+QAKcHQACnB2AApweAAKcHoACnB9AApwfgAKcH8ACnCAAApwgQAKcIMACnCFAApwhgAKcIcACnCJAApwigAKcQUACnEHAApxCQAKcQsACnEOAApxDwAKcRAACnERAApxEgAKcRQACnEWAApxFwAKcRgACnEaAApxGwAKcZYACnGYAApxmwAKcZ0ACnGgAApxoQAKcaIACnGjAApxpAAKcaYACnGoAApxqQAKcaoACnGsAApxrQAKccYACnHHAApxyAAKccoACnJFAApyRwAKckkACnJLAApyTgAKck8ACnJQAApyUQAKclIACnJUAApyVgAKclcACnJYAApyWgAKclsACnLWAApy2AAKctoACnLcAApy3wAKcuAACnLhAApy4gAKcuMACnLlAApy5wAKcugACnLpAApy6wAKcuwACnNnAApzaQAKc2sACnNtAApzcAAKc3EACnNyAApzcwAKc3QACnN2AApzeAAKc3kACnN6AApzfAAKc30ACnP4AApz+gAKc/wACnP+AAp0AQAKdAIACnQDAAp0BAAKdAUACnQHAAp0CQAKdAoACnQLAAp0DQAKdA4ACnSJAAp0iwAKdI0ACnSPAAp0kgAKdJMACnSUAAp0lQAKdJYACnSYAAp0mgAKdJsACnScAAp0ngAKdJ8ACnToAAp1DAAKdTMACnVXAAp1WgAKdVwACnVeAAp1YAAKdWIACnVkAAp1ZQAKdWgACnWBAAp1ngAKdaAACnWiAAp1pAAKdaYACnWoAAp1qgAKdawACnXJAAp1zAAKdc8ACnXSAAp11QAKddgACnXbAAp13gAKdeAACnZbAAp2XQAKdl8ACnZhAAp2ZAAKdmUACnZmAAp2ZwAKdmgACnZqAAp2bAAKdm0ACnZuAAp2cAAKdnEACnbsAAp27gAKdvAACnbyAAp29QAKdvYACnb3AAp2+AAKdvkACnb7AAp2/QAKdv4ACnb/AAp3AQAKdwIACnd9AAp3fwAKd4EACneDAAp3hgAKd4cACneIAAp3iQAKd4oACneMAAp3jgAKd48ACneQAAp3kgAKd5MACngOAAp4EAAKeBMACngVAAp4GAAKeBkACngaAAp4GwAKeBwACngeAAp4IAAKeCEACngiAAp4JAAKeCUACnigAAp4ogAKeKQACnimAAp4qQAKeKoACnirAAp4rAAKeK0ACnivAAp4sQAKeLIACnizAAp4tQAKeLYACnkxAAp5MwAKeTUACnk3AAp5OgAKeTsACnk8AAp5PQAKeT4ACnlAAAp5QgAKeUMACnlEAAp5RgAKeUcACnnCAAp5xAAKecYACnnIAAp5ywAKecwACnnNAAp5zgAKec8ACnnRAAp50wAKedQACnnVAAp51wAKedgACnprAAp6jgAKeq4ACnrOAAp60AAKetIACnrUAAp61gAKetkACnraAAp62wAKet4ACnrfAAp64QAKeuIACnrkAAp65wAKeugACnrpAAp67AAKeu0ACnryAAp7CwAKexQACnsWAAp7GAAKeyEACnskAAp7JwAKeykACntyAAp7lgAKe70ACnvhAAp75AAKe+YACnvoAAp76gAKe+wACnvuAAp77wAKe/IACnwLAAp8LAAKfC4ACnwwAAp8MgAKfDQACnw2AAp8OAAKfDoACnw8AAp8XQAKfGAACnxjAAp8ZgAKfGkACnxsAAp8bwAKfHIACnx1AAp8dwAKfPIACnz0AAp89gAKfPgACnz7AAp8/AAKfP0ACnz+AAp8/wAKfQEACn0DAAp9BAAKfQUACn0HAAp9CAAKfYMACn2FAAp9hwAKfYkACn2MAAp9jQAKfY4ACn2PAAp9kAAKfZIACn2UAAp9lQAKfZYACn2YAAp9mQAKfhQACn4WAAp+GQAKfhsACn4eAAp+HwAKfiAACn4hAAp+IgAKfiQACn4mAAp+JwAKfigACn4qAAp+KwAKfkQACn5FAAp+RgAKfkgACn7DAAp+xQAKfscACn7JAAp+zAAKfs0ACn7OAAp+zwAKftAACn7SAAp+1AAKftUACn7WAAp+2AAKftkACn9UAAp/VgAKf1gACn9aAAp/XQAKf14ACn9fAAp/YAAKf2EACn9jAAp/ZQAKf2YACn9nAAp/aQAKf2oACn/lAAp/5wAKf+kACn/rAAp/7gAKf+8ACn/wAAp/8QAKf/IACn/0AAp/9gAKf/cACn/4AAp/+gAKf/sACoB2AAqAeAAKgHoACoB8AAqAfwAKgIAACoCBAAqAggAKgIMACoCFAAqAhwAKgIgACoCJAAqAiwAKgIwACoEHAAqBCQAKgQsACoENAAqBEAAKgREACoESAAqBEwAKgRQACoEWAAqBGAAKgRkACoEaAAqBHAAKgR0ACoFmAAqBigAKgbEACoHVAAqB2AAKgdoACoHcAAqB3gAKgeAACoHiAAqB4wAKgeYACoH/AAqCHAAKgh4ACoIgAAqCIgAKgiQACoImAAqCKAAKgioACoJHAAqCSgAKgk0ACoJQAAqCUwAKglYACoJZAAqCXAAKgl4ACoLZAAqC2wAKgt4ACoLgAAqC4wAKguQACoLlAAqC5gAKgucACoLpAAqC6wAKguwACoLtAAqC7wAKgvAACoNrAAqDbQAKg28ACoNxAAqDdAAKg3UACoN2AAqDdwAKg3gACoN6AAqDfAAKg30ACoN+AAqDgAAKg4EACoP8AAqD/gAKhAAACoQCAAqEBQAKhAYACoQHAAqECAAKhAkACoQLAAqEDQAKhA4ACoQPAAqEEQAKhBIACoSNAAqEjwAKhJIACoSUAAqElwAKhJgACoSZAAqEmgAKhJsACoSdAAqEnwAKhKAACoShAAqEowAKhKQACoUfAAqFIQAKhSMACoUlAAqFKAAKhSkACoUqAAqFKwAKhSwACoUuAAqFMAAKhTEACoUyAAqFNAAKhTUACoWwAAqFsgAKhbQACoW2AAqFuQAKhboACoW7AAqFvAAKhb0ACoW/AAqFwQAKhcIACoXDAAqFxQAKhcYACoZBAAqGQwAKhkUACoZHAAqGSgAKhksACoZMAAqGTQAKhk4ACoZQAAqGUgAKhlMACoZUAAqGVgAKhlcACobqAAqHDQAKhy0ACodNAAqHTwAKh1EACodTAAqHVQAKh1gACodZAAqHWgAKh10ACodeAAqHYAAKh2EACodkAAqHZwAKh2gACodpAAqHbAAKh20ACodyAAqHiwAKh5QACoeWAAqHmAAKh6EACoekAAqHpwAKh6kACofyAAqIFgAKiD0ACohhAAqIZAAKiGYACohoAAqIagAKiGwACohuAAqIbwAKiHIACoiLAAqIrAAKiK4ACoiwAAqIsgAKiLQACoi2AAqIuAAKiLoACoi8AAqI3QAKiOAACojjAAqI5gAKiOkACojsAAqI7wAKiPIACoj1AAqI9wAKiXIACol0AAqJdgAKiXgACol7AAqJfAAKiX0ACol+AAqJfwAKiYEAComDAAqJhAAKiYUAComHAAqJiAAKigMACooFAAqKBwAKigkACooMAAqKDQAKig4ACooPAAqKEAAKihIACooUAAqKFQAKihYACooYAAqKGQAKipQACoqWAAqKmQAKipsACoqeAAqKnwAKiqAACoqhAAqKogAKiqQACoqmAAqKpwAKiqgACoqqAAqKqwAKisQACorFAAqKxgAKisgACotDAAqLRQAKi0cACotJAAqLTAAKi00ACotOAAqLTwAKi1AACotSAAqLVAAKi1UACotWAAqLWAAKi1kACovUAAqL1gAKi9gACovaAAqL3QAKi94ACovfAAqL4AAKi+EACovjAAqL5QAKi+YACovnAAqL6QAKi+oACoxlAAqMZwAKjGkACoxrAAqMbgAKjG8ACoxwAAqMcQAKjHIACox0AAqMdgAKjHcACox4AAqMegAKjHsACoz2AAqM+AAKjPoACoz8AAqM/wAKjQAACo0BAAqNAgAKjQMACo0FAAqNBwAKjQgACo0JAAqNCwAKjQwACo2HAAqNiQAKjYsACo2NAAqNkAAKjZEACo2SAAqNkwAKjZQACo2WAAqNmAAKjZkACo2aAAqNnAAKjZ0ACo3mAAqOCgAKjjEACo5VAAqOWAAKjloACo5cAAqOXgAKjmAACo5iAAqOYwAKjmYACo5/AAqOnAAKjp4ACo6gAAqOogAKjqQACo6mAAqOqAAKjqoACo7HAAqOygAKjs0ACo7QAAqO0wAKjtYACo7ZAAqO3AAKjt4ACo9ZAAqPWwAKj10ACo9fAAqPYgAKj2MACo9kAAqPZQAKj2YACo9oAAqPagAKj2sACo9sAAqPbgAKj28ACo/qAAqP7AAKj+8ACo/xAAqP9AAKj/UACo/2AAqP9wAKj/gACo/6AAqP/AAKj/0ACo/+AAqQAAAKkAEACpB8AAqQfgAKkIAACpCCAAqQhQAKkIYACpCHAAqQiAAKkIkACpCLAAqQjQAKkI4ACpCPAAqQkQAKkJIACpENAAqRDwAKkREACpETAAqRFgAKkRcACpEYAAqRGQAKkRoACpEcAAqRHgAKkR8ACpEgAAqRIgAKkSMACpGeAAqRoAAKkaIACpGkAAqRpwAKkagACpGpAAqRqgAKkasACpGtAAqRrwAKkbAACpGxAAqRswAKkbQACpIvAAqSMQAKkjMACpI1AAqSOAAKkjkACpI6AAqSOwAKkjwACpI+AAqSQAAKkkEACpJCAAqSRAAKkkUACpLAAAqSwgAKksUACpLHAAqSygAKkssACpLMAAqSzQAKks4ACpLQAAqS0gAKktMACpLUAAqS1gAKktcACpNqAAqTjQAKk60ACpPNAAqTzwAKk9EACpPTAAqT1QAKk9cACpPYAAqT2QAKk9wACpPdAAqT3wAKk+AACpPjAAqT5QAKk+YACpPnAAqT6gAKk+sACpPwAAqUCQAKlBIACpQUAAqUFgAKlB8ACpQiAAqUJQAKlCcACpRwAAqUlAAKlLsACpTfAAqU4gAKlOQACpTmAAqU6AAKlOoACpTsAAqU7QAKlPAACpUJAAqVKgAKlSwACpUuAAqVMAAKlTIACpU0AAqVNgAKlTgACpU6AAqVWwAKlV4ACpVhAAqVZAAKlWcACpVqAAqVbQAKlXAACpVzAAqVdQAKlfAACpXyAAqV9AAKlfYACpX5AAqV+gAKlfsACpX8AAqV/QAKlf8ACpYBAAqWAgAKlgMACpYFAAqWBgAKloEACpaDAAqWhQAKlocACpaKAAqWiwAKlowACpaNAAqWjgAKlpAACpaSAAqWkwAKlpQACpaWAAqWlwAKlxIACpcUAAqXFwAKlxkACpccAAqXHQAKlx4ACpcfAAqXIAAKlyIACpckAAqXJQAKlyYACpcoAAqXKQAKl0IACpdDAAqXRAAKl0YACpfBAAqXwwAKl8UACpfHAAqXygAKl8sACpfMAAqXzQAKl84ACpfQAAqX0gAKl9MACpfUAAqX1gAKl9cACphSAAqYVAAKmFYACphYAAqYWwAKmFwACphdAAqYXgAKmF8ACphhAAqYYwAKmGQACphlAAqYZwAKmGgACpjjAAqY5QAKmOcACpjpAAqY7AAKmO0ACpjuAAqY7wAKmPAACpjyAAqY9AAKmPUACpj2AAqY+AAKmPkACpl0AAqZdgAKmXgACpl6AAqZfQAKmX4ACpl/AAqZgAAKmYEACpmDAAqZhQAKmYYACpmHAAqZiQAKmYoACpoFAAqaBwAKmgkACpoLAAqaDgAKmg8ACpoQAAqaEQAKmhIACpoUAAqaFgAKmhcACpoYAAqaGgAKmhsACppkAAqaiAAKmq8ACprTAAqa1gAKmtgACpraAAqa3AAKmt4ACprgAAqa4QAKmuQACpr9AAqbGgAKmxwACpseAAqbIAAKmyIACpskAAqbJgAKmygACptFAAqbSAAKm0sACptOAAqbUQAKm1QACptXAAqbWgAKm1wACpvXAAqb2QAKm9sACpvdAAqb4AAKm+EACpviAAqb4wAKm+QACpvmAAqb6AAKm+kACpvqAAqb7AAKm+0ACpxoAAqcagAKnGwACpxuAAqccQAKnHIACpxzAAqcdAAKnHUACpx3AAqceQAKnHoACpx7AAqcfQAKnH4ACpz5AAqc+wAKnP0ACpz/AAqdAgAKnQMACp0EAAqdBQAKnQYACp0IAAqdCgAKnQsACp0MAAqdDgAKnQ8ACp2KAAqdjAAKnY8ACp2RAAqdlAAKnZUACp2WAAqdlwAKnZgACp2aAAqdnAAKnZ0ACp2eAAqdoAAKnaEACp4cAAqeHgAKniAACp4iAAqeJQAKniYACp4nAAqeKAAKnikACp4rAAqeLQAKni4ACp4vAAqeMQAKnjIACp6tAAqerwAKnrEACp6zAAqetgAKnrcACp64AAqeuQAKnroACp68AAqevgAKnr8ACp7AAAqewgAKnsMACp8+AAqfQAAKn0MACp9FAAqfSAAKn0kACp9KAAqfSwAKn0wACp9OAAqfUAAKn1EACp9SAAqfVAAKn1UACp/oAAqgCwAKoCsACqBLAAqgTQAKoE8ACqBRAAqgUwAKoFYACqBXAAqgWAAKoFsACqBcAAqgXgAKoF8ACqBhAAqgZAAKoGUACqBmAAqgaQAKoGoACqBvAAqgiAAKoJEACqCTAAqglQAKoJ4ACqChAAqgpAAKoKYACqDvAAqhEwAKoToACqFeAAqhYQAKoWMACqFlAAqhZwAKoWkACqFrAAqhbAAKoW8ACqGIAAqhqQAKoasACqGtAAqhrwAKobEACqGzAAqhtQAKobcACqG5AAqh2gAKod0ACqHgAAqh4wAKoeYACqHpAAqh7AAKoe8ACqHyAAqh9AAKom8ACqJxAAqicwAKonUACqJ4AAqieQAKonoACqJ7AAqifAAKon4ACqKAAAqigQAKooIACqKEAAqihQAKowAACqMCAAqjBAAKowYACqMJAAqjCgAKowsACqMMAAqjDQAKow8ACqMRAAqjEgAKoxMACqMVAAqjFgAKo5EACqOTAAqjlgAKo5gACqObAAqjnAAKo50ACqOeAAqjnwAKo6EACqOjAAqjpAAKo6UACqOnAAqjqAAKo8EACqPCAAqjwwAKo8UACqRAAAqkQgAKpEQACqRGAAqkSQAKpEoACqRLAAqkTAAKpE0ACqRPAAqkUQAKpFIACqRTAAqkVQAKpFYACqTRAAqk0wAKpNUACqTXAAqk2gAKpNsACqTcAAqk3QAKpN4ACqTgAAqk4gAKpOMACqTkAAqk5gAKpOcACqViAAqlZAAKpWYACqVoAAqlawAKpWwACqVtAAqlbgAKpW8ACqVxAAqlcwAKpXQACqV1AAqldwAKpXgACqXzAAql9QAKpfcACqX5AAql/AAKpf0ACqX+AAql/wAKpgAACqYCAAqmBAAKpgUACqYGAAqmCAAKpgkACqaEAAqmhgAKpogACqaKAAqmjQAKpo4ACqaPAAqmkAAKppEACqaTAAqmlQAKppYACqaXAAqmmQAKppoACqbjAAqnBwAKpy4ACqdSAAqnVQAKp1cACqdZAAqnWwAKp10ACqdfAAqnYAAKp2MACqd8AAqnmQAKp5sACqedAAqnnwAKp6EACqejAAqnpQAKp6cACqfEAAqnxwAKp8oACqfNAAqn0AAKp9MACqfWAAqn2QAKp9sACqhWAAqoWAAKqFoACqhcAAqoXwAKqGAACqhhAAqoYgAKqGMACqhlAAqoZwAKqGgACqhpAAqoawAKqGwACqjnAAqo6QAKqOsACqjtAAqo8AAKqPEACqjyAAqo8wAKqPQACqj2AAqo+AAKqPkACqj6AAqo/AAKqP0ACql4AAqpegAKqXwACql+AAqpgQAKqYIACqmDAAqphAAKqYUACqmHAAqpiQAKqYoACqmLAAqpjQAKqY4ACqoJAAqqCwAKqg0ACqoPAAqqEgAKqhMACqoUAAqqFQAKqhYACqoYAAqqGgAKqhsACqocAAqqHgAKqh8ACqqaAAqqnAAKqp4ACqqgAAqqowAKqqQACqqlAAqqpgAKqqcACqqpAAqqqwAKqqwACqqtAAqqrwAKqrAACqsrAAqrLQAKqy8ACqsxAAqrNAAKqzUACqs2AAqrNwAKqzgACqs6AAqrPAAKqz0ACqs+AAqrQAAKq0EACqu8AAqrvgAKq8AACqvCAAqrxQAKq8YACqvHAAqryAAKq8kACqvLAAqrzQAKq84ACqvPAAqr0QAKq9IACqxlAAqsiAAKrKgACqzIAAqsygAKrMwACqzOAAqs0AAKrNMACqzUAAqs1QAKrNgACqzZAAqs2wAKrNwACqzfAAqs4gAKrOMACqzkAAqs5wAKrOgACqzxAAqtCgAKrRMACq0VAAqtFwAKrSAACq0jAAqtJgAKrSgACq1xAAqtlQAKrbwACq3gAAqt4wAKreUACq3nAAqt6QAKresACq3tAAqt7gAKrfEACq4KAAquKwAKri0ACq4vAAquMQAKrjMACq41AAquNwAKrjkACq47AAquXAAKrl8ACq5iAAquZQAKrmgACq5rAAqubgAKrnEACq50AAqudgAKrvEACq7zAAqu9QAKrvcACq76AAqu+wAKrvwACq79AAqu/gAKrwAACq8CAAqvAwAKrwQACq8GAAqvBwAKr4IACq+EAAqvhgAKr4gACq+LAAqvjAAKr40ACq+OAAqvjwAKr5EACq+TAAqvlAAKr5UACq+XAAqvmAAKsBMACrAVAAqwGAAKsBoACrAdAAqwHgAKsB8ACrAgAAqwIQAKsCMACrAlAAqwJgAKsCcACrApAAqwKgAKsEMACrBEAAqwRQAKsEcACrDCAAqwxAAKsMYACrDIAAqwywAKsMwACrDNAAqwzgAKsM8ACrDRAAqw0wAKsNQACrDVAAqw1wAKsNgACrFTAAqxVQAKsVcACrFZAAqxXAAKsV0ACrFeAAqxXwAKsWAACrFiAAqxZAAKsWUACrFmAAqxaAAKsWkACrHkAAqx5gAKsegACrHqAAqx7QAKse4ACrHvAAqx8AAKsfEACrHzAAqx9QAKsfYACrH3AAqx+QAKsfoACrJ1AAqydwAKsnkACrJ7AAqyfgAKsn8ACrKAAAqygQAKsoIACrKEAAqyhgAKsocACrKIAAqyigAKsosACrMGAAqzCAAKswoACrMMAAqzDwAKsxAACrMRAAqzEgAKsxMACrMVAAqzFwAKsxgACrMZAAqzGwAKsxwACrNlAAqziQAKs7AACrPUAAqz1wAKs9kACrPbAAqz3QAKs98ACrPhAAqz4gAKs+UACrP+AAq0GwAKtB0ACrQfAAq0IQAKtCMACrQlAAq0JwAKtCkACrRGAAq0SQAKtEwACrRPAAq0UgAKtFUACrRYAAq0WwAKtF0ACrTYAAq02gAKtNwACrTeAAq04QAKtOIACrTjAAq05AAKtOUACrTnAAq06QAKtOoACrTrAAq07QAKtO4ACrVpAAq1awAKtW4ACrVwAAq1cwAKtXQACrV1AAq1dgAKtXcACrV5AAq1ewAKtXwACrV9AAq1fwAKtYAACrX7AAq1/QAKtf8ACrYBAAq2BAAKtgUACrYGAAq2BwAKtggACrYKAAq2DAAKtg0ACrYOAAq2EAAKthEACraMAAq2jgAKtpEACraTAAq2lgAKtpcACraYAAq2mQAKtpoACracAAq2ngAKtp8ACragAAq2ogAKtqMACrceAAq3IAAKtyIACrckAAq3JwAKtygACrcpAAq3KgAKtysACrctAAq3LwAKtzAACrcxAAq3MwAKtzQACrevAAq3sQAKt7MACre1AAq3uAAKt7kACre6AAq3uwAKt7wACre+AAq3wAAKt8EACrfCAAq3xAAKt8UACrhAAAq4QgAKuEUACrhHAAq4SgAKuEsACrhMAAq4TQAKuE4ACrhQAAq4UgAKuFMACrhUAAq4VgAKuFcACrjqAAq5DQAKuS0ACrlNAAq5TwAKuVEACrlTAAq5VQAKuVgACrlZAAq5WgAKuV0ACrleAAq5YAAKuWEACrljAAq5ZgAKuWcACrloAAq5awAKuWwACrlxAAq5igAKuZMACrmVAAq5lwAKuaAACrmjAAq5pgAKuagACrnxAAq6FQAKujwACrpgAAq6YwAKumUACrpnAAq6aQAKumsACrptAAq6bgAKunEACrqKAAq6qwAKuq0ACrqvAAq6sQAKurMACrq1AAq6twAKurkACrq7AAq63AAKut8ACrriAAq65QAKuugACrrrAAq67gAKuvEACrr0AAq69gAKu3EACrtzAAq7dQAKu3cACrt6AAq7ewAKu3wACrt9AAq7fgAKu4AACruCAAq7gwAKu4QACruGAAq7hwAKvAIACrwEAAq8BgAKvAgACrwLAAq8DAAKvA0ACrwOAAq8DwAKvBEACrwTAAq8FAAKvBUACrwXAAq8GAAKvJMACryVAAq8mAAKvJoACrydAAq8ngAKvJ8ACrygAAq8oQAKvKMACrylAAq8pgAKvKcACrypAAq8qgAKvMMACrzEAAq8xQAKvMcACr1CAAq9RAAKvUYACr1IAAq9SwAKvUwACr1NAAq9TgAKvU8ACr1RAAq9UwAKvVQACr1VAAq9VwAKvVgACr3TAAq91QAKvdcACr3ZAAq93AAKvd0ACr3eAAq93wAKveAACr3iAAq95AAKveUACr3mAAq96AAKvekACr5kAAq+ZgAKvmgACr5qAAq+bQAKvm4ACr5vAAq+cAAKvnEACr5zAAq+dQAKvnYACr53AAq+eQAKvnoACr71AAq+9wAKvvkACr77AAq+/gAKvv8ACr8AAAq/AQAKvwIACr8EAAq/BgAKvwcACr8IAAq/CgAKvwsACr+GAAq/iAAKv4oACr+MAAq/jwAKv5AACr+RAAq/kgAKv5MACr+VAAq/lwAKv5gACr+ZAAq/mwAKv5wACr/lAArACQAKwDAACsBUAArAVwAKwFkACsBbAArAXQAKwF8ACsBhAArAYgAKwGUACsB+AArAmwAKwJ0ACsCfAArAoQAKwKMACsClAArApwAKwKkACsDGAArAyQAKwMwACsDPAArA0gAKwNUACsDYAArA2wAKwN0ACsFYAArBWgAKwVwACsFeAArBYQAKwWIACsFjAArBZAAKwWUACsFnAArBaQAKwWoACsFrAArBbQAKwW4ACsHpAArB6wAKwe0ACsHvAArB8gAKwfMACsH0AArB9QAKwfYACsH4AArB+gAKwfsACsH8AArB/gAKwf8ACsJ6AArCfAAKwn4ACsKAAArCgwAKwoQACsKFAArChgAKwocACsKJAArCiwAKwowACsKNAArCjwAKwpAACsMLAArDDQAKww8ACsMRAArDFAAKwxUACsMWAArDFwAKwxgACsMaAArDHAAKwx0ACsMeAArDIAAKwyEACsOcAArDngAKw6AACsOiAArDpQAKw6YACsOnAArDqAAKw6kACsOrAArDrQAKw64ACsOvAArDsQAKw7IACsQtAArELwAKxDEACsQzAArENgAKxDcACsQ4AArEOQAKxDoACsQ8AArEPgAKxD8ACsRAAArEQgAKxEMACsS+AArEwAAKxMIACsTEAArExwAKxMgACsTJAArEygAKxMsACsTNAArEzwAKxNAACsTRAArE0wAKxNQACsVnAArFigAKxaoACsXKAArFzAAKxc4ACsXQAArF0gAKxdUACsXWAArF1wAKxdoACsXbAArF3QAKxd4ACsXhAArF5AAKxeUACsXmAArF6QAKxeoACsXvAArGCAAKxhEACsYTAArGFQAKxh4ACsYhAArGJAAKxiYACsZvAArGkwAKxroACsbeAArG4QAKxuMACsblAArG5wAKxukACsbrAArG7AAKxu8ACscIAArHKQAKxysACsctAArHLwAKxzEACsczAArHNQAKxzcACsc5AArHWgAKx10ACsdgAArHYwAKx2YACsdpAArHbAAKx28ACsdyAArHdAAKx+8ACsfxAArH8wAKx/UACsf4AArH+QAKx/oACsf7AArH/AAKx/4ACsgAAArIAQAKyAIACsgEAArIBQAKyIAACsiCAArIhAAKyIYACsiJAArIigAKyIsACsiMAArIjQAKyI8ACsiRAArIkgAKyJMACsiVAArIlgAKyREACskTAArJFgAKyRgACskbAArJHAAKyR0ACskeAArJHwAKySEACskjAArJJAAKySUACsknAArJKAAKyUEACslCAArJQwAKyUUACsnAAArJwgAKycQACsnGAArJyQAKycoACsnLAArJzAAKyc0ACsnPAArJ0QAKydIACsnTAArJ1QAKydYACspRAArKUwAKylUACspXAArKWgAKylsACspcAArKXQAKyl4ACspgAArKYgAKymMACspkAArKZgAKymcACsriAArK5AAKyuYACsroAArK6wAKyuwACsrtAArK7gAKyu8ACsrxAArK8wAKyvQACsr1AArK9wAKyvgACstzAArLdQAKy3cACst5AArLfAAKy30ACst+AArLfwAKy4AACsuCAArLhAAKy4UACsuGAArLiAAKy4kACswEAArMBgAKzAgACswKAArMDQAKzA4ACswPAArMEAAKzBEACswTAArMFQAKzBYACswXAArMGQAKzBoACsxjAArMhwAKzK4ACszSAArM1QAKzNcACszZAArM2wAKzN0ACszfAArM4AAKzOMACsz8AArNGQAKzRsACs0dAArNHwAKzSEACs0jAArNJQAKzScACs1EAArNRwAKzUoACs1NAArNUAAKzVMACs1WAArNWQAKzVsACs3WAArN2AAKzdoACs3cAArN3wAKzeAACs3hAArN4gAKzeMACs3lAArN5wAKzegACs3pAArN6wAKzewACs5nAArOaQAKzmwACs5uAArOcQAKznIACs5zAArOdAAKznUACs53AArOeQAKznoACs57AArOfQAKzn4ACs75AArO+wAKzv0ACs7/AArPAgAKzwMACs8EAArPBQAKzwYACs8IAArPCgAKzwsACs8MAArPDgAKzw8ACs+KAArPjAAKz48ACs+RAArPlAAKz5UACs+WAArPlwAKz5gACs+aAArPnAAKz50ACs+eAArPoAAKz6EACtAkAArQSAAK0GwACtCPAArQtgAK0NYACtD9AArRJAAK0UQACtFoAArRjAAK0Y4ACtGRAArRkwAK0ZUACtGXAArRmgAK0Z0ACtGfAArRoQAK0aQACtGmAArRqAAK0asACtGuAArRrwAK0bQACtHNAArR0gAK0dQACtHZAArR3AAK0d4ACtInAArSSwAK0nIACtKWAArSmQAK0psACtKdAArSnwAK0qEACtKjAArSpAAK0qcACtLAAArS5QAK0ucACtLpAArS6wAK0u0ACtLvAArS8QAK0vMACtL1AArS9wAK0xwACtMfAArTIgAK0yUACtMoAArTKwAK0y4ACtMxAArTNAAK0zcACtM5AArTtAAK07YACtO5AArTuwAK074ACtO/AArTwAAK08EACtPCAArTxAAK08YACtPHAArTyAAK08oACtPLAArT3AAK090ACtPfAArUWgAK1FwACtReAArUYAAK1GMACtRkAArUZQAK1GYACtRnAArUaQAK1GsACtRsAArUbQAK1G8ACtRwAArU6wAK1O0ACtTwAArU8gAK1PUACtT2AArU9wAK1PgACtT5AArU+wAK1P0ACtT+AArU/wAK1QEACtUCAArVEwAK1RgACtUbAArVHQAK1S4ACtU3AArVOgAK1T0ACtU/AArVWgAK1WUACtXgAArV4gAK1eQACtXmAArV6QAK1eoACtXrAArV7AAK1e0ACtXvAArV8QAK1fIACtXzAArV9QAK1fYACtZxAArWcwAK1nYACtZ4AArWewAK1nwACtZ9AArWfgAK1n8ACtaBAArWgwAK1oQACtaFAArWhwAK1ogACtaZAArWmgAK1pwACtcXAArXGQAK1xsACtcdAArXIAAK1yEACtciAArXIwAK1yQACtcmAArXKAAK1ykACtcqAArXLAAK1y0ACteoAArXqgAK160ACtevAArXsgAK17MACte0AArXtQAK17YACte4AArXugAK17sACte8AArXvgAK178ACtfYAArX2QAK19oACtfcAArYVwAK2FkACthbAArYXQAK2GAACthhAArYYgAK2GMACthkAArYZgAK2GgACthpAArYagAK2GwACthtAArY6AAK2OoACtjtAArY7wAK2PIACtjzAArY9AAK2PUACtj2AArY+AAK2PoACtj7AArY/AAK2P4ACtj/AArZGQAK2TIACtlTAArZVgAK2VkACtlcAArZXwAK2WIACtllAArZaAAK2WsACtmMAArZjwAK2ZIACtmVAArZmAAK2ZsACtmeAArZoQAK2aQACtmmAArZtQAK2cMACtneAArZ9AAK2gcACtogAAraOQAK2swACtrvAArbDwAK2y8ACtsxAArbMwAK2zUACts3AArbOgAK2zsACts8AArbPwAK20AACttCAArbQwAK20UACttIAArbSQAK20oACttNAArbTgAK21cACttwAArbeQAK23sACtt9AArbhgAK24kACtuMAArbjgAK29cACtv7AArcIgAK3EYACtxJAArcSwAK3E0ACtxPAArcUQAK3FMACtxUAArcVwAK3HAACtyRAArckwAK3JUACtyXAArcmQAK3JsACtydAArcnwAK3KEACtzCAArcxQAK3MgACtzLAArczgAK3NEACtzUAArc1wAK3NoACtzcAArdVwAK3VkACt1bAArdXQAK3WAACt1hAArdYgAK3WMACt1kAArdZgAK3WgACt1pAArdagAK3WwACt1tAArd6AAK3eoACt3sAArd7gAK3fEACt3yAArd8wAK3fQACt31AArd9wAK3fkACt36AArd+wAK3f0ACt3+AAreeQAK3nsACt5+AAregAAK3oMACt6EAArehQAK3oYACt6HAAreiQAK3osACt6MAArejQAK3o8ACt6QAAreqQAK3qoACt6rAArerQAK3ygACt8qAArfLAAK3y4ACt8xAArfMgAK3zMACt80AArfNQAK3zcACt85AArfOgAK3zsACt89AArfPgAK37kACt+7AArfvQAK378ACt/CAArfwwAK38QACt/FAArfxgAK38gACt/KAArfywAK38wACt/OAArfzwAK4EoACuBMAArgTgAK4FAACuBTAArgVAAK4FUACuBWAArgVwAK4FkACuBbAArgXAAK4F0ACuBfAArgYAAK4NsACuDdAArg3wAK4OEACuDkAArg5QAK4OYACuDnAArg6AAK4OoACuDsAArg7QAK4O4ACuDwAArg8QAK4WwACuFuAArhcAAK4XIACuF1AArhdgAK4XcACuF4AArheQAK4XsACuF9AArhfgAK4X8ACuGBAArhggAK4csACuHvAAriFgAK4joACuI9AAriPwAK4kEACuJDAAriRQAK4kcACuJIAAriSwAK4mQACuKBAArigwAK4oUACuKHAAriiQAK4osACuKNAArijwAK4qwACuKvAArisgAK4rUACuK4AAriuwAK4r4ACuLBAAriwwAK4z4ACuNAAArjQgAK40QACuNHAArjSAAK40kACuNKAArjSwAK400ACuNPAArjUAAK41EACuNTAArjVAAK488ACuPRAArj0wAK49UACuPYAArj2QAK49oACuPbAArj3AAK494ACuPgAArj4QAK4+IACuPkAArj5QAK5GAACuRiAArkZAAK5GYACuRpAArkagAK5GsACuRsAArkbQAK5G8ACuRxAArkcgAK5HMACuR1AArkdgAK5PEACuTzAArk9gAK5PgACuT7AArk/AAK5P0ACuT+AArk/wAK5QEACuUDAArlBAAK5QUACuUHAArlCAAK5YMACuWFAArlhwAK5YkACuWMAArljQAK5Y4ACuWPAArlkAAK5ZIACuWUAArllQAK5ZYACuWYAArlmQAK5hQACuYWAArmGAAK5hoACuYdAArmHgAK5h8ACuYgAArmIQAK5iMACuYlAArmJgAK5icACuYpAArmKgAK5qUACuanAArmqQAK5qsACuauAArmrwAK5rAACuaxAArmsgAK5rQACua2AArmtwAK5rgACua6AArmuwAK504ACudxAArnkQAK57EACuezAArntQAK57cACue5AArnvAAK570ACue+AArnwQAK58IACufEAArnxQAK58cACufKAArnywAK58wACufPAArn0AAK59UACufuAArn9wAK5/kACuf7AAroBAAK6AcACugKAAroDAAK6FUACuh5AArooAAK6MQACujHAAroyQAK6MsACujNAArozwAK6NEACujSAAro1QAK6O4ACukPAArpEQAK6RMACukVAArpFwAK6RkACukbAArpHQAK6R8ACulAAArpQwAK6UYACulJAArpTAAK6U8ACulSAArpVQAK6VgACulaAArp1QAK6dcACunZAArp2wAK6d4ACunfAArp4AAK6eEACuniAArp5AAK6eYACunnAArp6AAK6eoACunrAArqZgAK6mgACupqAArqbAAK6m8ACupwAArqcQAK6nIACupzAArqdQAK6ncACup4AArqeQAK6nsACup8AArq9wAK6vkACur8AArq/gAK6wEACusCAArrAwAK6wQACusFAArrBwAK6wkACusKAArrCwAK6w0ACusOAArrJwAK6ygACuspAArrKwAK66YACuuoAArrqgAK66wACuuvAArrsAAK67EACuuyAArrswAK67UACuu3AArruAAK67kACuu7AArrvAAK7DcACuw5AArsOwAK7D0ACuxAAArsQQAK7EIACuxDAArsRAAK7EYACuxIAArsSQAK7EoACuxMAArsTQAK7MgACuzKAArszAAK7M4ACuzRAArs0gAK7NMACuzUAArs1QAK7NcACuzZAArs2gAK7NsACuzdAArs3gAK7VkACu1bAArtXQAK7V8ACu1iAArtYwAK7WQACu1lAArtZgAK7WgACu1qAArtawAK7WwACu1uAArtbwAK7eoACu3sAArt7gAK7fAACu3zAArt9AAK7fUACu32AArt9wAK7fkACu37AArt/AAK7f0ACu3/AAruAAAK7kkACu5tAArulAAK7rgACu67AAruvQAK7r8ACu7BAAruwwAK7sUACu7GAAruyQAK7uIACu7/AArvAQAK7wMACu8FAArvBwAK7wkACu8LAArvDQAK7yoACu8tAArvMAAK7zMACu82AArvOQAK7zwACu8/AArvQQAK77wACu++AArvwAAK78IACu/FAArvxgAK78cACu/IAArvyQAK78sACu/NAArvzgAK788ACu/RAArv0gAK8E0ACvBPAArwUQAK8FMACvBWAArwVwAK8FgACvBZAArwWgAK8FwACvBeAArwXwAK8GAACvBiAArwYwAK8N4ACvDgAArw4gAK8OQACvDnAArw6AAK8OkACvDqAArw6wAK8O0ACvDvAArw8AAK8PEACvDzAArw9AAK8W8ACvFxAArxdAAK8XYACvF5AArxegAK8XsACvF8AArxfQAK8X8ACvGBAArxggAK8YMACvGFAArxhgAK8gEACvIDAAryBQAK8gcACvIKAAryCwAK8gwACvINAAryDgAK8hAACvISAAryEwAK8hQACvIWAAryFwAK8pIACvKUAArylgAK8pgACvKbAArynAAK8p0ACvKeAArynwAK8qEACvKjAArypAAK8qUACvKnAAryqAAK8yMACvMlAArzJwAK8ykACvMsAArzLQAK8y4ACvMvAArzMAAK8zIACvM0AArzNQAK8zYACvM4AArzOQAK88wACvPvAAr0DwAK9C8ACvQxAAr0MwAK9DUACvQ3AAr0OgAK9DsACvQ8AAr0PwAK9EAACvRCAAr0QwAK9EUACvRIAAr0SQAK9EoACvRNAAr0TgAK9FMACvRsAAr0dQAK9HcACvR5AAr0ggAK9IUACvSIAAr0igAK9NMACvT3AAr1HgAK9UIACvVFAAr1RwAK9UkACvVLAAr1TQAK9U8ACvVQAAr1UwAK9WwACvWNAAr1jwAK9ZEACvWTAAr1lQAK9ZcACvWZAAr1mwAK9Z0ACvW+AAr1wQAK9cQACvXHAAr1ygAK9c0ACvXQAAr10wAK9dYACvXYAAr2UwAK9lUACvZXAAr2WQAK9lwACvZdAAr2XgAK9l8ACvZgAAr2YgAK9mQACvZlAAr2ZgAK9mgACvZpAAr25AAK9uYACvboAAr26gAK9u0ACvbuAAr27wAK9vAACvbxAAr28wAK9vUACvb2AAr29wAK9vkACvb6AAr3dQAK93cACvd6AAr3fAAK938ACveAAAr3gQAK94IACveDAAr3hQAK94cACveIAAr3iQAK94sACveMAAr3pQAK96YACvenAAr3qQAK+CQACvgmAAr4KAAK+CoACvgtAAr4LgAK+C8ACvgwAAr4MQAK+DMACvg1AAr4NgAK+DcACvg5AAr4OgAK+LUACvi3AAr4uQAK+LsACvi+AAr4vwAK+MAACvjBAAr4wgAK+MQACvjGAAr4xwAK+MgACvjKAAr4ywAK+UYACvlIAAr5SgAK+UwACvlPAAr5UAAK+VEACvlSAAr5UwAK+VUACvlXAAr5WAAK+VkACvlbAAr5XAAK+dcACvnZAAr52wAK+d0ACvngAAr54QAK+eIACvnjAAr55AAK+eYACvnoAAr56QAK+eoACvnsAAr57QAK+mgACvpqAAr6bAAK+m4ACvpxAAr6cgAK+nMACvp0AAr6dQAK+ncACvp5AAr6egAK+nsACvp9AAr6fgAK+scACvrrAAr7EgAK+zYACvs5AAr7OwAK+z0ACvs/AAr7QQAK+0MACvtEAAr7RwAK+2AACvt9AAr7fwAK+4EACvuDAAr7hQAK+4cACvuJAAr7iwAK+6gACvurAAr7rgAK+7EACvu0AAr7twAK+7oACvu9AAr7vwAK/DoACvw8AAr8PgAK/EAACvxDAAr8RAAK/EUACvxGAAr8RwAK/EkACvxLAAr8TAAK/E0ACvxPAAr8UAAK/MsACvzNAAr8zwAK/NEACvzUAAr81QAK/NYACvzXAAr82AAK/NoACvzcAAr83QAK/N4ACvzgAAr84QAK/VwACv1eAAr9YAAK/WIACv1lAAr9ZgAK/WcACv1oAAr9aQAK/WsACv1tAAr9bgAK/W8ACv1xAAr9cgAK/e0ACv3vAAr98QAK/fMACv32AAr99wAK/fgACv35AAr9+gAK/fwACv3+AAr9/wAK/gAACv4CAAr+AwAK/n4ACv6AAAr+ggAK/oQACv6HAAr+iAAK/okACv6KAAr+iwAK/o0ACv6PAAr+kAAK/pEACv6TAAr+lAAK/w8ACv8RAAr/EwAK/xUACv8YAAr/GQAK/xoACv8bAAr/HAAK/x4ACv8gAAr/IQAK/yIACv8kAAr/JQAK/6AACv+iAAr/pAAK/6YACv+pAAr/qgAK/6sACv+sAAr/rQAK/68ACv+xAAr/sgAK/7MACv+1AAr/tgALAEkACwBsAAsAjAALAKwACwCuAAsAsAALALIACwC0AAsAtwALALgACwC5AAsAvAALAL0ACwC/AAsAwAALAMIACwDFAAsAxgALAMcACwDKAAsAywALANAACwDpAAsA8gALAPQACwD2AAsA/wALAQIACwEFAAsBBwALAVAACwF0AAsBmwALAb8ACwHCAAsBxAALAcYACwHIAAsBygALAcwACwHNAAsB0AALAekACwIKAAsCDAALAg4ACwIQAAsCEgALAhQACwIWAAsCGAALAhoACwI7AAsCPgALAkEACwJEAAsCRwALAkoACwJNAAsCUAALAlMACwJVAAsC0AALAtIACwLUAAsC1gALAtkACwLaAAsC2wALAtwACwLdAAsC3wALAuEACwLiAAsC4wALAuUACwLmAAsDYQALA2MACwNlAAsDZwALA2oACwNrAAsDbAALA20ACwNuAAsDcAALA3IACwNzAAsDdAALA3YACwN3AAsD8gALA/QACwP3AAsD+QALA/wACwP9AAsD/gALA/8ACwQAAAsEAgALBAQACwQFAAsEBgALBAgACwQJAAsEIgALBCMACwQkAAsEJgALBKEACwSjAAsEpQALBKcACwSqAAsEqwALBKwACwStAAsErgALBLAACwSyAAsEswALBLQACwS2AAsEtwALBTIACwU0AAsFNgALBTgACwU7AAsFPAALBT0ACwU+AAsFPwALBUEACwVDAAsFRAALBUUACwVHAAsFSAALBcMACwXFAAsFxwALBckACwXMAAsFzQALBc4ACwXPAAsF0AALBdIACwXUAAsF1QALBdYACwXYAAsF2QALBlQACwZWAAsGWAALBloACwZdAAsGXgALBl8ACwZgAAsGYQALBmMACwZlAAsGZgALBmcACwZpAAsGagALBuUACwbnAAsG6QALBusACwbuAAsG7wALBvAACwbxAAsG8gALBvQACwb2AAsG9wALBvgACwb6AAsG+wALB0QACwdoAAsHjwALB7MACwe2AAsHuAALB7oACwe8AAsHvgALB8AACwfBAAsHxAALB90ACwf6AAsH/AALB/4ACwgAAAsIAgALCAQACwgGAAsICAALCCUACwgoAAsIKwALCC4ACwgxAAsINAALCDcACwg6AAsIPAALCLcACwi5AAsIuwALCL0ACwjAAAsIwQALCMIACwjDAAsIxAALCMYACwjIAAsIyQALCMoACwjMAAsIzQALCUgACwlKAAsJTAALCU4ACwlRAAsJUgALCVMACwlUAAsJVQALCVcACwlZAAsJWgALCVsACwldAAsJXgALCdkACwnbAAsJ3QALCd8ACwniAAsJ4wALCeQACwnlAAsJ5gALCegACwnqAAsJ6wALCewACwnuAAsJ7wALCmoACwpsAAsKbwALCnEACwp0AAsKdQALCnYACwp3AAsKeAALCnoACwp8AAsKfQALCn4ACwqAAAsKgQALCvwACwr+AAsLAAALCwIACwsFAAsLBgALCwcACwsIAAsLCQALCwsACwsNAAsLDgALCw8ACwsRAAsLEgALC40ACwuPAAsLkQALC5MACwuWAAsLlwALC5gACwuZAAsLmgALC5wACwueAAsLnwALC6AACwuiAAsLowALDB4ACwwgAAsMIgALDCQACwwnAAsMKAALDCkACwwqAAsMKwALDC0ACwwvAAsMMAALDDEACwwzAAsMNAALDMcACwzqAAsNCgALDSoACw0sAAsNLgALDTAACw0yAAsNNQALDTYACw03AAsNOgALDTsACw09AAsNPgALDUAACw1DAAsNRAALDUUACw1IAAsNSQALDU4ACw1nAAsNcAALDXIACw10AAsNfQALDYAACw2DAAsNhQALDc4ACw3yAAsOGQALDj0ACw5AAAsOQgALDkQACw5GAAsOSAALDkoACw5LAAsOTgALDmcACw6IAAsOigALDowACw6OAAsOkAALDpIACw6UAAsOlgALDpgACw65AAsOvAALDr8ACw7CAAsOxQALDsgACw7LAAsOzgALDtEACw7TAAsPTgALD1AACw9SAAsPVAALD1cACw9YAAsPWQALD1oACw9bAAsPXQALD18ACw9gAAsPYQALD2MACw9kAAsP3wALD+EACw/jAAsP5QALD+gACw/pAAsP6gALD+sACw/sAAsP7gALD/AACw/xAAsP8gALD/QACw/1AAsQcAALEHIACxB1AAsQdwALEHoACxB7AAsQfAALEH0ACxB+AAsQgAALEIIACxCDAAsQhAALEIYACxCHAAsQoAALEKEACxCiAAsQpAALER8ACxEhAAsRIwALESUACxEoAAsRKQALESoACxErAAsRLAALES4ACxEwAAsRMQALETIACxE0AAsRNQALEbAACxGyAAsRtAALEbYACxG5AAsRugALEbsACxG8AAsRvQALEb8ACxHBAAsRwgALEcMACxHFAAsRxgALEkEACxJDAAsSRQALEkcACxJKAAsSSwALEkwACxJNAAsSTgALElAACxJSAAsSUwALElQACxJWAAsSVwALEtIACxLUAAsS1gALEtgACxLbAAsS3AALEt0ACxLeAAsS3wALEuEACxLjAAsS5AALEuUACxLnAAsS6AALE2MACxNlAAsTZwALE2kACxNsAAsTbQALE24ACxNvAAsTcAALE3IACxN0AAsTdQALE3YACxN4AAsTeQALE8IACxPmAAsUDQALFDEACxQ0AAsUNgALFDgACxQ6AAsUPAALFD4ACxQ/AAsUQgALFFsACxR4AAsUegALFHwACxR+AAsUgAALFIIACxSEAAsUhgALFKMACxSmAAsUqQALFKwACxSvAAsUsgALFLUACxS4AAsUugALFTUACxU3AAsVOQALFTsACxU+AAsVPwALFUAACxVBAAsVQgALFUQACxVGAAsVRwALFUgACxVKAAsVSwALFcYACxXIAAsVygALFcwACxXPAAsV0AALFdEACxXSAAsV0wALFdUACxXXAAsV2AALFdkACxXbAAsV3AALFlcACxZZAAsWWwALFl0ACxZgAAsWYQALFmIACxZjAAsWZAALFmYACxZoAAsWaQALFmoACxZsAAsWbQALFugACxbqAAsW7AALFu4ACxbxAAsW8gALFvMACxb0AAsW9QALFvcACxb5AAsW+gALFvsACxb9AAsW/gALF3kACxd7AAsXfQALF38ACxeCAAsXgwALF4QACxeFAAsXhgALF4gACxeKAAsXiwALF4wACxeOAAsXjwALGAoACxgMAAsYDgALGBAACxgTAAsYFAALGBUACxgWAAsYFwALGBkACxgbAAsYHAALGB0ACxgfAAsYIAALGJsACxidAAsYnwALGKEACxikAAsYpQALGKYACxinAAsYqAALGKoACxisAAsYrQALGK4ACxiwAAsYsQALGUQACxlnAAsZhwALGacACxmpAAsZqwALGa0ACxmvAAsZsgALGbMACxm0AAsZtwALGbgACxm6AAsZuwALGb4ACxnBAAsZwgALGcMACxnGAAsZxwALGcwACxnlAAsZ7gALGfAACxnyAAsZ+wALGf4ACxoBAAsaAwALGkwACxpwAAsalwALGrsACxq+AAsawAALGsIACxrEAAsaxgALGsgACxrJAAsazAALGuUACxsGAAsbCAALGwoACxsMAAsbDgALGxAACxsSAAsbFAALGxYACxs3AAsbOgALGz0ACxtAAAsbQwALG0YACxtJAAsbTAALG08ACxtRAAsbzAALG84ACxvQAAsb0gALG9UACxvWAAsb1wALG9gACxvZAAsb2wALG90ACxveAAsb3wALG+EACxviAAscXQALHF8ACxxhAAscYwALHGYACxxnAAscaAALHGkACxxqAAscbAALHG4ACxxvAAsccAALHHIACxxzAAsc7gALHPAACxzzAAsc9QALHPgACxz5AAsc+gALHPsACxz8AAsc/gALHQAACx0BAAsdAgALHQQACx0FAAsdHgALHR8ACx0gAAsdIgALHZ0ACx2fAAsdoQALHaMACx2mAAsdpwALHagACx2pAAsdqgALHawACx2uAAsdrwALHbAACx2yAAsdswALHi4ACx4wAAseMgALHjQACx43AAseOAALHjkACx46AAseOwALHj0ACx4/AAseQAALHkEACx5DAAseRAALHr8ACx7BAAsewwALHsUACx7IAAseyQALHsoACx7LAAsezAALHs4ACx7QAAse0QALHtIACx7UAAse1QALH1AACx9SAAsfVAALH1YACx9ZAAsfWgALH1sACx9cAAsfXQALH18ACx9hAAsfYgALH2MACx9lAAsfZgALH+EACx/jAAsf5QALH+cACx/qAAsf6wALH+wACx/tAAsf7gALH/AACx/yAAsf8wALH/QACx/2AAsf9wALIEAACyBkAAsgiwALIK8ACyCyAAsgtAALILYACyC4AAsgugALILwACyC9AAsgwAALINkACyD2AAsg+AALIPoACyD8AAsg/gALIQAACyECAAshBAALISEACyEkAAshJwALISoACyEtAAshMAALITMACyE2AAshOAALIbMACyG1AAshtwALIbkACyG8AAshvQALIb4ACyG/AAshwAALIcIACyHEAAshxQALIcYACyHIAAshyQALIkQACyJGAAsiSAALIkoACyJNAAsiTgALIk8ACyJQAAsiUQALIlMACyJVAAsiVgALIlcACyJZAAsiWgALItUACyLXAAsi2QALItsACyLeAAsi3wALIuAACyLhAAsi4gALIuQACyLmAAsi5wALIugACyLqAAsi6wALI2YACyNoAAsjawALI20ACyNwAAsjcQALI3IACyNzAAsjdAALI3YACyN4AAsjeQALI3oACyN8AAsjfQALI/gACyP6AAsj/AALI/4ACyQBAAskAgALJAMACyQEAAskBQALJAcACyQJAAskCgALJAsACyQNAAskDgALJIkACySLAAskjQALJI8ACySSAAskkwALJJQACySVAAsklgALJJgACySaAAskmwALJJwACySeAAsknwALJRoACyUcAAslHwALJSEACyUkAAslJQALJSYACyUnAAslKAALJSoACyUsAAslLQALJS4ACyUwAAslMQALJcQACyXnAAsmBwALJicACyYpAAsmKwALJi0ACyYvAAsmMgALJjMACyY0AAsmNwALJjgACyY6AAsmOwALJj0ACyZAAAsmQQALJkIACyZFAAsmRgALJksACyZkAAsmbQALJm8ACyZxAAsmegALJn0ACyaAAAsmggALJssACybvAAsnFgALJzoACyc9AAsnPwALJ0EACydDAAsnRQALJ0cACydIAAsnSwALJ2QACyeFAAsnhwALJ4kACyeLAAsnjQALJ48ACyeRAAsnkwALJ5UACye2AAsnuQALJ7wACye/AAsnwgALJ8UACyfIAAsnywALJ84ACyfQAAsoSwALKE0ACyhPAAsoUQALKFQACyhVAAsoVgALKFcACyhYAAsoWgALKFwACyhdAAsoXgALKGAACyhhAAso3AALKN4ACyjgAAso4gALKOUACyjmAAso5wALKOgACyjpAAso6wALKO0ACyjuAAso7wALKPEACyjyAAspbQALKW8ACylyAAspdAALKXcACyl4AAspeQALKXoACyl7AAspfQALKX8ACymAAAspgQALKYMACymEAAspnQALKZ4ACymfAAspoQALKhwACyoeAAsqIAALKiIACyolAAsqJgALKicACyooAAsqKQALKisACyotAAsqLgALKi8ACyoxAAsqMgALKq0ACyqvAAsqsQALKrMACyq2AAsqtwALKrgACyq5AAsqugALKrwACyq+AAsqvwALKsAACyrCAAsqwwALKz4ACytAAAsrQgALK0QACytHAAsrSAALK0kACytKAAsrSwALK00ACytPAAsrUAALK1EACytTAAsrVAALK88ACyvRAAsr0wALK9UACyvYAAsr2QALK9oACyvbAAsr3AALK94ACyvgAAsr4QALK+IACyvkAAsr5QALLGAACyxiAAssZAALLGYACyxpAAssagALLGsACyxsAAssbQALLG8ACyxxAAsscgALLHMACyx1AAssdgALLL8ACyzjAAstCgALLS4ACy0xAAstMwALLTUACy03AAstOQALLTsACy08AAstPwALLVgACy11AAstdwALLXkACy17AAstfQALLX8ACy2BAAstgwALLaAACy2jAAstpgALLakACy2sAAstrwALLbIACy21AAsttwALLjIACy40AAsuNgALLjgACy47AAsuPAALLj0ACy4+AAsuPwALLkEACy5DAAsuRAALLkUACy5HAAsuSAALLsMACy7FAAsuxwALLskACy7MAAsuzQALLs4ACy7PAAsu0AALLtIACy7UAAsu1QALLtYACy7YAAsu2QALL1QACy9WAAsvWAALL1oACy9dAAsvXgALL18ACy9gAAsvYQALL2MACy9lAAsvZgALL2cACy9pAAsvagALL+UACy/nAAsv6gALL+wACy/vAAsv8AALL/EACy/yAAsv8wALL/UACy/3AAsv+AALL/kACy/7AAsv/AALMHcACzB5AAswewALMH0ACzCAAAswgQALMIIACzCDAAswhAALMIYACzCIAAswiQALMIoACzCMAAswjQALMQgACzEKAAsxDAALMQ4ACzERAAsxEgALMRMACzEUAAsxFQALMRcACzEZAAsxGgALMRsACzEdAAsxHgALMZkACzGbAAsxnQALMZ8ACzGiAAsxowALMaQACzGlAAsxpgALMagACzGqAAsxqwALMawACzGuAAsxrwALMkIACzJlAAsyhQALMqUACzKnAAsyqQALMqsACzKtAAsysAALMrEACzKyAAsytQALMrYACzK4AAsyuQALMrsACzK+AAsyvwALMsAACzLDAAsyxAALMskACzLiAAsy6wALMu0ACzLvAAsy+AALMvsACzL+AAszAAALM0kACzNtAAszlAALM7gACzO7AAszvQALM78ACzPBAAszwwALM8UACzPGAAszyQALM+IACzQDAAs0BQALNAcACzQJAAs0CwALNA0ACzQPAAs0EQALNBMACzQ0AAs0NwALNDoACzQ9AAs0QAALNEMACzRGAAs0SQALNEwACzROAAs0yQALNMsACzTNAAs0zwALNNIACzTTAAs01AALNNUACzTWAAs02AALNNoACzTbAAs03AALNN4ACzTfAAs1WgALNVwACzVeAAs1YAALNWMACzVkAAs1ZQALNWYACzVnAAs1aQALNWsACzVsAAs1bQALNW8ACzVwAAs16wALNe0ACzXwAAs18gALNfUACzX2AAs19wALNfgACzX5AAs1+wALNf0ACzX+AAs1/wALNgEACzYCAAs2GwALNhwACzYdAAs2HwALNpoACzacAAs2ngALNqAACzajAAs2pAALNqUACzamAAs2pwALNqkACzarAAs2rAALNq0ACzavAAs2sAALNysACzctAAs3LwALNzEACzc0AAs3NQALNzYACzc3AAs3OAALNzoACzc8AAs3PQALNz4ACzdAAAs3QQALN7wACze+AAs3wAALN8IACzfFAAs3xgALN8cACzfIAAs3yQALN8sACzfNAAs3zgALN88ACzfRAAs30gALOE0ACzhPAAs4UQALOFMACzhWAAs4VwALOFgACzhZAAs4WgALOFwACzheAAs4XwALOGAACzhiAAs4YwALON4ACzjgAAs44gALOOQACzjnAAs46AALOOkACzjqAAs46wALOO0ACzjvAAs48AALOPEACzjzAAs49AALOT0ACzlhAAs5iAALOawACzmvAAs5sQALObMACzm1AAs5twALObkACzm6AAs5vQALOdYACznzAAs59QALOfcACzn5AAs5+wALOf0ACzn/AAs6AQALOh4ACzohAAs6JAALOicACzoqAAs6LQALOjAACzozAAs6NQALOrAACzqyAAs6tQALOrcACzq6AAs6uwALOrwACzq9AAs6vgALOsAACzrCAAs6wwALOsQACzrGAAs6xwALO0IACztEAAs7RgALO0gACztLAAs7TAALO00ACztOAAs7TwALO1EACztTAAs7VAALO1UACztXAAs7WAALO9MACzvVAAs71wALO9kACzvcAAs73QALO94ACzvfAAs74AALO+IACzvkAAs75QALO+YACzvoAAs76QALPGQACzxmAAs8aQALPGsACzxuAAs8bwALPHAACzxxAAs8cgALPHQACzx2AAs8dwALPHgACzx6AAs8ewALPPYACzz4AAs8+gALPPwACzz/AAs9AAALPQEACz0CAAs9AwALPQUACz0HAAs9CAALPQkACz0LAAs9DAALPYcACz2JAAs9iwALPY0ACz2QAAs9kQALPZIACz2TAAs9lAALPZYACz2YAAs9mQALPZoACz2cAAs9nQALPhgACz4aAAs+HAALPh4ACz4hAAs+IgALPiMACz4kAAs+JQALPicACz4pAAs+KgALPisACz4tAAs+LgALPj8ACz5AAAs+QgALPr0ACz6/AAs+wQALPsMACz7GAAs+xwALPsgACz7JAAs+ygALPswACz7OAAs+zwALPtAACz7SAAs+0wALP04ACz9QAAs/UgALP1QACz9XAAs/WAALP1kACz9aAAs/WwALP10ACz9fAAs/YAALP2EACz9jAAs/ZAALP98ACz/hAAs/5AALP+YACz/pAAs/6gALP+sACz/sAAs/7QALP+8ACz/xAAs/8gALP/MACz/1AAs/9gALQIkAC0CsAAtAzAALQOwAC0DuAAtA8AALQPIAC0D0AAtA9wALQPgAC0D5AAtA/AALQP0AC0D/AAtBAAALQQIAC0EFAAtBBgALQQcAC0EKAAtBCwALQRQAC0EtAAtBNgALQTgAC0E6AAtBQwALQUYAC0FJAAtBSwALQZQAC0G4AAtB3wALQgMAC0IGAAtCCAALQgoAC0IMAAtCDgALQhAAC0IRAAtCFAALQi0AC0JOAAtCUAALQlIAC0JUAAtCVgALQlgAC0JaAAtCXAALQl4AC0J/AAtCggALQoUAC0KIAAtCiwALQo4AC0KRAAtClAALQpcAC0KZAAtDFAALQxYAC0MYAAtDGgALQx0AC0MeAAtDHwALQyAAC0MhAAtDIwALQyUAC0MmAAtDJwALQykAC0MqAAtDpQALQ6cAC0OpAAtDqwALQ64AC0OvAAtDsAALQ7EAC0OyAAtDtAALQ7YAC0O3AAtDuAALQ7oAC0O7AAtENgALRDgAC0Q7AAtEPQALREAAC0RBAAtEQgALREMAC0REAAtERgALREgAC0RJAAtESgALREwAC0RNAAtEZgALRGcAC0RoAAtEagALROUAC0TnAAtE6QALROsAC0TuAAtE7wALRPAAC0TxAAtE8gALRPQAC0T2AAtE9wALRPgAC0T6AAtE+wALRXYAC0V4AAtFegALRXwAC0V/AAtFgAALRYEAC0WCAAtFgwALRYUAC0WHAAtFiAALRYkAC0WLAAtFjAALRgcAC0YJAAtGCwALRg0AC0YQAAtGEQALRhIAC0YTAAtGFAALRhYAC0YYAAtGGQALRhoAC0YcAAtGHQALRpgAC0aaAAtGnAALRp4AC0ahAAtGogALRqMAC0akAAtGpQALRqcAC0apAAtGqgALRqsAC0atAAtGrgALRykAC0crAAtHLQALRy8AC0cyAAtHMwALRzQAC0c1AAtHNgALRzgAC0c6AAtHOwALRzwAC0c+AAtHPwALR4gAC0esAAtH0wALR/cAC0f6AAtH/AALR/4AC0gAAAtIAgALSAQAC0gFAAtICAALSCEAC0g+AAtIQAALSEIAC0hEAAtIRgALSEgAC0hKAAtITAALSGkAC0hsAAtIbwALSHIAC0h1AAtIeAALSHsAC0h+AAtIgAALSPsAC0j9AAtI/wALSQEAC0kEAAtJBQALSQYAC0kHAAtJCAALSQoAC0kMAAtJDQALSQ4AC0kQAAtJEQALSYwAC0mOAAtJkAALSZIAC0mVAAtJlgALSZcAC0mYAAtJmQALSZsAC0mdAAtJngALSZ8AC0mhAAtJogALSh0AC0ofAAtKIQALSiMAC0omAAtKJwALSigAC0opAAtKKgALSiwAC0ouAAtKLwALSjAAC0oyAAtKMwALSq4AC0qwAAtKsgALSrQAC0q3AAtKuAALSrkAC0q6AAtKuwALSr0AC0q/AAtKwAALSsEAC0rDAAtKxAALSz8AC0tBAAtLQwALS0UAC0tIAAtLSQALS0oAC0tLAAtLTAALS04AC0tQAAtLUQALS1IAC0tUAAtLVQALS9AAC0vSAAtL1AALS9YAC0vZAAtL2gALS9sAC0vcAAtL3QALS98AC0vhAAtL4gALS+MAC0vlAAtL5gALTGEAC0xjAAtMZQALTGcAC0xqAAtMawALTGwAC0xtAAtMbgALTHAAC0xyAAtMcwALTHQAC0x2AAtMdwALTQoAC00tAAtNTQALTW0AC01vAAtNcQALTXMAC011AAtNeAALTXkAC016AAtNfQALTX4AC02AAAtNgQALTYMAC02GAAtNhwALTYgAC02LAAtNjAALTZUAC02uAAtNtwALTbkAC027AAtNxAALTccAC03KAAtNzAALThUAC045AAtOYAALToQAC06HAAtOiQALTosAC06NAAtOjwALTpEAC06SAAtOlQALTq4AC07PAAtO0QALTtMAC07VAAtO1wALTtkAC07bAAtO3QALTt8AC08AAAtPAwALTwYAC08JAAtPDAALTw8AC08SAAtPFQALTxgAC08aAAtPlQALT5cAC0+ZAAtPmwALT54AC0+fAAtPoAALT6EAC0+iAAtPpAALT6YAC0+nAAtPqAALT6oAC0+rAAtQJgALUCgAC1AqAAtQLAALUC8AC1AwAAtQMQALUDIAC1AzAAtQNQALUDcAC1A4AAtQOQALUDsAC1A8AAtQtwALULkAC1C8AAtQvgALUMEAC1DCAAtQwwALUMQAC1DFAAtQxwALUMkAC1DKAAtQywALUM0AC1DOAAtQ5wALUOgAC1DpAAtQ6wALUWYAC1FoAAtRagALUWwAC1FvAAtRcAALUXEAC1FyAAtRcwALUXUAC1F3AAtReAALUXkAC1F7AAtRfAALUfcAC1H5AAtR+wALUf0AC1IAAAtSAQALUgIAC1IDAAtSBAALUgYAC1IIAAtSCQALUgoAC1IMAAtSDQALUogAC1KKAAtSjAALUo4AC1KRAAtSkgALUpMAC1KUAAtSlQALUpcAC1KZAAtSmgALUpsAC1KdAAtSngALUxkAC1MbAAtTHQALUx8AC1MiAAtTIwALUyQAC1MlAAtTJgALUygAC1MqAAtTKwALUywAC1MuAAtTLwALU6oAC1OsAAtTrgALU7AAC1OzAAtTtAALU7UAC1O2AAtTtwALU7kAC1O7AAtTvAALU70AC1O/AAtTwAALVAkAC1QtAAtUVAALVHgAC1R7AAtUfQALVH8AC1SBAAtUgwALVIUAC1SGAAtUiQALVKIAC1S/AAtUwQALVMMAC1TFAAtUxwALVMkAC1TLAAtUzQALVOoAC1TtAAtU8AALVPMAC1T2AAtU+QALVPwAC1T/AAtVAQALVXwAC1V+AAtVgAALVYIAC1WFAAtVhgALVYcAC1WIAAtViQALVYsAC1WNAAtVjgALVY8AC1WRAAtVkgALVg0AC1YPAAtWEQALVhMAC1YWAAtWFwALVhgAC1YZAAtWGgALVhwAC1YeAAtWHwALViAAC1YiAAtWIwALVp4AC1agAAtWogALVqQAC1anAAtWqAALVqkAC1aqAAtWqwALVq0AC1avAAtWsAALVrEAC1azAAtWtAALVy8AC1cxAAtXNAALVzYAC1c5AAtXOgALVzsAC1c8AAtXPQALVz8AC1dBAAtXQgALV0MAC1dFAAtXRgALV8EAC1fDAAtXxQALV8cAC1fKAAtXywALV8wAC1fNAAtXzgALV9AAC1fSAAtX0wALV9QAC1fWAAtX1wALWFIAC1hUAAtYVgALWFgAC1hbAAtYXAALWF0AC1heAAtYXwALWGEAC1hjAAtYZAALWGUAC1hnAAtYaAALWOMAC1jlAAtY5wALWOkAC1jsAAtY7QALWO4AC1jvAAtY8AALWPIAC1j0AAtY9QALWPYAC1j4AAtY+QALWYwAC1mvAAtZzwALWe8AC1nxAAtZ8wALWfUAC1n3AAtZ+gALWfsAC1n8AAtZ/wALWgAAC1oCAAtaAwALWgYAC1oJAAtaCgALWgsAC1oOAAtaDwALWhgAC1oxAAtaOgALWjwAC1o+AAtaRwALWkoAC1pNAAtaTwALWpgAC1q8AAta4wALWwcAC1sKAAtbDAALWw4AC1sQAAtbEgALWxQAC1sVAAtbGAALWzEAC1tSAAtbVAALW1YAC1tYAAtbWgALW1wAC1teAAtbYAALW2IAC1uDAAtbhgALW4kAC1uMAAtbjwALW5IAC1uVAAtbmAALW5sAC1udAAtcGAALXBoAC1wcAAtcHgALXCEAC1wiAAtcIwALXCQAC1wlAAtcJwALXCkAC1wqAAtcKwALXC0AC1wuAAtcqQALXKsAC1ytAAtcrwALXLIAC1yzAAtctAALXLUAC1y2AAtcuAALXLoAC1y7AAtcvAALXL4AC1y/AAtdOgALXTwAC10/AAtdQQALXUQAC11FAAtdRgALXUcAC11IAAtdSgALXUwAC11NAAtdTgALXVAAC11RAAtdagALXWsAC11sAAtdbgALXekAC13rAAtd7QALXe8AC13yAAtd8wALXfQAC131AAtd9gALXfgAC136AAtd+wALXfwAC13+AAtd/wALXnoAC158AAtefgALXoAAC16DAAtehAALXoUAC16GAAtehwALXokAC16LAAtejAALXo0AC16PAAtekAALXwsAC18NAAtfDwALXxEAC18UAAtfFQALXxYAC18XAAtfGAALXxoAC18cAAtfHQALXx4AC18gAAtfIQALX5wAC1+eAAtfoAALX6IAC1+lAAtfpgALX6cAC1+oAAtfqQALX6sAC1+tAAtfrgALX68AC1+xAAtfsgALYC0AC2AvAAtgMQALYDMAC2A2AAtgNwALYDgAC2A5AAtgOgALYDwAC2A+AAtgPwALYEAAC2BCAAtgQwALYIwAC2CwAAtg1wALYPsAC2D+AAthAAALYQIAC2EEAAthBgALYQgAC2EJAAthDAALYSUAC2FCAAthRAALYUYAC2FIAAthSgALYUwAC2FOAAthUAALYW0AC2FwAAthcwALYXYAC2F5AAthfAALYX8AC2GCAAthhAALYf8AC2IBAAtiAwALYgUAC2IIAAtiCQALYgoAC2ILAAtiDAALYg4AC2IQAAtiEQALYhIAC2IUAAtiFQALYpAAC2KSAAtilQALYpcAC2KaAAtimwALYpwAC2KdAAtingALYqAAC2KiAAtiowALYqQAC2KmAAtipwALYyIAC2MkAAtjJgALYygAC2MrAAtjLAALYy0AC2MuAAtjLwALYzEAC2MzAAtjNAALYzUAC2M3AAtjOAALY7MAC2O1AAtjuAALY7oAC2O9AAtjvgALY78AC2PAAAtjwQALY8MAC2PFAAtjxgALY8cAC2PJAAtjygALZG0AC2SRAAtktQALZNUAC2T8AAtlIwALZUMAC2VqAAtljgALZbEAC2XYAAtl/AALZiAAC2ZEAAtmawALZmwAC2ZuAAtmcAALZnMAC2Z1AAtmeAALZnoAC2Z8AAtmfwALZoEAC2aDAAtmhgALZokAC2aLAAtmjQALZo8AC2aSAAtmlQALZpgAC2adAAtmtgALZrsAC2a9AAtmwgALZsUAC2bHAAtnEAALZzQAC2dbAAtnfwALZ4IAC2eEAAtnhgALZ4gAC2eKAAtnjAALZ40AC2eQAAtnqQALZ84AC2fQAAtn0gALZ9QAC2fWAAtn2AALZ9oAC2fcAAtn3gALZ+AAC2gFAAtoCAALaAsAC2gOAAtoEQALaBQAC2gXAAtoGgALaB0AC2ggAAtoIgALaJ0AC2ifAAtoogALaKQAC2inAAtoqAALaKkAC2iqAAtoqwALaK0AC2ivAAtosAALaLEAC2izAAtotAALaMUAC2jGAAtoyAALaUMAC2lFAAtpRwALaUkAC2lMAAtpTQALaU4AC2lPAAtpUAALaVIAC2lUAAtpVQALaVYAC2lYAAtpWQALadQAC2nWAAtp2QALadsAC2neAAtp3wALaeAAC2nhAAtp4gALaeQAC2nmAAtp5wALaegAC2nqAAtp6wALafwAC2n9AAtp/wALanoAC2p8AAtqfgALaoAAC2qDAAtqhAALaoUAC2qGAAtqhwALaokAC2qLAAtqjAALao0AC2qPAAtqkAALawsAC2sNAAtrEAALaxIAC2sVAAtrFgALaxcAC2sYAAtrGQALaxsAC2sdAAtrHgALax8AC2shAAtrIgALazMAC2s0AAtrNgALa7EAC2uzAAtrtQALa7cAC2u6AAtruwALa7wAC2u9AAtrvgALa8AAC2vCAAtrwwALa8QAC2vGAAtrxwALbEIAC2xEAAtsRwALbEkAC2xMAAtsTQALbE4AC2xPAAtsUAALbFIAC2xUAAtsVQALbFYAC2xYAAtsWQALbHIAC2xzAAtsdAALbHYAC2zxAAts8wALbPUAC2z3AAts+gALbPsAC2z8AAts/QALbP4AC20AAAttAgALbQMAC20EAAttBgALbQcAC22CAAtthAALbYcAC22JAAttjAALbY0AC22OAAttjwALbZAAC22SAAttlAALbZUAC22WAAttmAALbZkAC22vAAttyAALbeEAC23kAAtt5wALbeoAC23tAAtt8AALbfMAC24MAAtuDwALbhIAC24VAAtuGAALbhsAC24eAAtuIAALbiUAC24zAAtuRgALblUAC25aAAtu7QALbxAAC28wAAtvUAALb1IAC29UAAtvVgALb1gAC29bAAtvXAALb10AC29gAAtvYQALb2MAC29kAAtvZgALb2kAC29qAAtvawALb24AC29vAAtvdAALb40AC2+WAAtvmAALb5oAC2+jAAtvpgALb6kAC2+rAAtv9AALcBgAC3A/AAtwYwALcGYAC3BoAAtwagALcGwAC3BuAAtwcAALcHEAC3B0AAtwjQALcK4AC3CwAAtwsgALcLQAC3C2AAtwuAALcLoAC3C8AAtwvgALcN8AC3DiAAtw5QALcOgAC3DrAAtw7gALcPEAC3D0AAtw9wALcPkAC3F0AAtxdgALcXgAC3F6AAtxfQALcX4AC3F/AAtxgAALcYEAC3GDAAtxhQALcYYAC3GHAAtxiQALcYoAC3IFAAtyBwALcgkAC3ILAAtyDgALcg8AC3IQAAtyEQALchIAC3IUAAtyFgALchcAC3IYAAtyGgALchsAC3KWAAtymAALcpsAC3KdAAtyoAALcqEAC3KiAAtyowALcqQAC3KmAAtyqAALcqkAC3KqAAtyrAALcq0AC3LGAAtyxwALcsgAC3LKAAtzRQALc0cAC3NJAAtzSwALc04AC3NPAAtzUAALc1EAC3NSAAtzVAALc1YAC3NXAAtzWAALc1oAC3NbAAtz1gALc9gAC3PaAAtz3AALc98AC3PgAAtz4QALc+IAC3PjAAtz5QALc+cAC3PoAAtz6QALc+sAC3PsAAt0ZwALdGkAC3RrAAt0bQALdHAAC3RxAAt0cgALdHMAC3R0AAt0dgALdHgAC3R5AAt0egALdHwAC3R9AAt0+AALdPoAC3T8AAt0/gALdQEAC3UCAAt1AwALdQQAC3UFAAt1BwALdQkAC3UKAAt1CwALdQ0AC3UOAAt1iQALdYsAC3WNAAt1jwALdZIAC3WTAAt1lAALdZUAC3WWAAt1mAALdZoAC3WbAAt1nAALdZ4AC3WfAAt16AALdgwAC3YzAAt2VwALdloAC3ZcAAt2XgALdmAAC3ZiAAt2ZAALdmUAC3ZoAAt2gQALdp4AC3agAAt2ogALdqQAC3amAAt2qAALdqoAC3asAAt2yQALdswAC3bPAAt20gALdtUAC3bYAAt22wALdt4AC3bgAAt3WwALd10AC3dfAAt3YQALd2QAC3dlAAt3ZgALd2cAC3doAAt3agALd2wAC3dtAAt3bgALd3AAC3dxAAt37AALd+4AC3fwAAt38gALd/UAC3f2AAt39wALd/gAC3f5AAt3+wALd/0AC3f+AAt3/wALeAEAC3gCAAt4fQALeH8AC3iBAAt4gwALeIYAC3iHAAt4iAALeIkAC3iKAAt4jAALeI4AC3iPAAt4kAALeJIAC3iTAAt5DgALeRAAC3kTAAt5FQALeRgAC3kZAAt5GgALeRsAC3kcAAt5HgALeSAAC3khAAt5IgALeSQAC3klAAt5oAALeaIAC3mkAAt5pgALeakAC3mqAAt5qwALeawAC3mtAAt5rwALebEAC3myAAt5swALebUAC3m2AAt6MQALejMAC3o1AAt6NwALejoAC3o7AAt6PAALej0AC3o+AAt6QAALekIAC3pDAAt6RAALekYAC3pHAAt6wgALesQAC3rGAAt6yAALessAC3rMAAt6zQALes4AC3rPAAt60QALetMAC3rUAAt61QALetcAC3rYAAt7awALe44AC3uuAAt7zgALe9AAC3vSAAt71AALe9YAC3vZAAt72gALe9sAC3veAAt73wALe+EAC3viAAt75QALe+gAC3vpAAt76gALe+0AC3vuAAt78wALfAwAC3wVAAt8FwALfBkAC3wiAAt8JQALfCgAC3wqAAt8cwALfJcAC3y+AAt84gALfOUAC3znAAt86QALfOsAC3ztAAt87wALfPAAC3zzAAt9DAALfS0AC30vAAt9MQALfTMAC301AAt9NwALfTkAC307AAt9PQALfV4AC31hAAt9ZAALfWcAC31qAAt9bQALfXAAC31zAAt9dgALfXgAC33zAAt99QALffcAC335AAt9/AALff0AC33+AAt9/wALfgAAC34CAAt+BAALfgUAC34GAAt+CAALfgkAC36EAAt+hgALfogAC36KAAt+jQALfo4AC36PAAt+kAALfpEAC36TAAt+lQALfpYAC36XAAt+mQALfpoAC38VAAt/FwALfxoAC38cAAt/HwALfyAAC38hAAt/IgALfyMAC38lAAt/JwALfygAC38pAAt/KwALfywAC39FAAt/RgALf0cAC39JAAt/xAALf8YAC3/IAAt/ygALf80AC3/OAAt/zwALf9AAC3/RAAt/0wALf9UAC3/WAAt/1wALf9kAC3/aAAuAVQALgFcAC4BZAAuAWwALgF4AC4BfAAuAYAALgGEAC4BiAAuAZAALgGYAC4BnAAuAaAALgGoAC4BrAAuA5gALgOgAC4DqAAuA7AALgO8AC4DwAAuA8QALgPIAC4DzAAuA9QALgPcAC4D4AAuA+QALgPsAC4D8AAuBdwALgXkAC4F7AAuBfQALgYAAC4GBAAuBggALgYMAC4GEAAuBhgALgYgAC4GJAAuBigALgYwAC4GNAAuCCAALggoAC4IMAAuCDgALghEAC4ISAAuCEwALghQAC4IVAAuCFwALghkAC4IaAAuCGwALgh0AC4IeAAuCZwALgosAC4KyAAuC1gALgtkAC4LbAAuC3QALgt8AC4LhAAuC4wALguQAC4LnAAuDAAALgx0AC4MfAAuDIQALgyMAC4MlAAuDJwALgykAC4MrAAuDSAALg0sAC4NOAAuDUQALg1QAC4NXAAuDWgALg10AC4NfAAuD2gALg9wAC4PeAAuD4AALg+MAC4PkAAuD5QALg+YAC4PnAAuD6QALg+sAC4PsAAuD7QALg+8AC4PwAAuEawALhG0AC4RvAAuEcQALhHQAC4R1AAuEdgALhHcAC4R4AAuEegALhHwAC4R9AAuEfgALhIAAC4SBAAuE/AALhP4AC4UAAAuFAgALhQUAC4UGAAuFBwALhQgAC4UJAAuFCwALhQ0AC4UOAAuFDwALhREAC4USAAuFjQALhY8AC4WSAAuFlAALhZcAC4WYAAuFmQALhZoAC4WbAAuFnQALhZ8AC4WgAAuFoQALhaMAC4WkAAuGHwALhiEAC4YjAAuGJQALhigAC4YpAAuGKgALhisAC4YsAAuGLgALhjAAC4YxAAuGMgALhjQAC4Y1AAuGsAALhrIAC4a0AAuGtgALhrkAC4a6AAuGuwALhrwAC4a9AAuGvwALhsEAC4bCAAuGwwALhsUAC4bGAAuHQQALh0MAC4dGAAuHSAALh0sAC4dMAAuHTQALh04AC4dPAAuHUQALh1MAC4dUAAuHVQALh1cAC4dYAAuH6wALiA4AC4guAAuITgALiFAAC4hSAAuIVAALiFYAC4hZAAuIWgALiFsAC4heAAuIXwALiGEAC4hiAAuIZAALiGcAC4hoAAuIaQALiGwAC4htAAuIcgALiIsAC4iUAAuIlgALiJgAC4ihAAuIpAALiKcAC4ipAAuI8gALiRYAC4k9AAuJYQALiWQAC4lmAAuJaAALiWoAC4lsAAuJbgALiW8AC4lyAAuJiwALiawAC4muAAuJsAALibIAC4m0AAuJtgALibgAC4m6AAuJvAALid0AC4ngAAuJ4wALieYAC4npAAuJ7AALie8AC4nyAAuJ9QALifcAC4pyAAuKdAALinYAC4p4AAuKewALinwAC4p9AAuKfgALin8AC4qBAAuKgwALioQAC4qFAAuKhwALiogAC4sDAAuLBQALiwcAC4sJAAuLDAALiw0AC4sOAAuLDwALixAAC4sSAAuLFAALixUAC4sWAAuLGAALixkAC4uUAAuLlgALi5kAC4ubAAuLngALi58AC4ugAAuLoQALi6IAC4ukAAuLpgALi6cAC4uoAAuLqgALi6sAC4vEAAuLxQALi8YAC4vIAAuMQwALjEUAC4xHAAuMSQALjEwAC4xNAAuMTgALjE8AC4xQAAuMUgALjFQAC4xVAAuMVgALjFgAC4xZAAuM1AALjNYAC4zYAAuM2gALjN0AC4zeAAuM3wALjOAAC4zhAAuM4wALjOUAC4zmAAuM5wALjOkAC4zqAAuNZQALjWcAC41pAAuNawALjW4AC41vAAuNcAALjXEAC41yAAuNdAALjXYAC413AAuNeAALjXoAC417AAuN9gALjfgAC436AAuN/AALjf8AC44AAAuOAQALjgIAC44DAAuOBQALjgcAC44IAAuOCQALjgsAC44MAAuOhwALjokAC46LAAuOjQALjpAAC46RAAuOkgALjpMAC46UAAuOlgALjpgAC46ZAAuOmgALjpwAC46dAAuO5gALjwoAC48xAAuPVQALj1gAC49aAAuPXAALj14AC49gAAuPYgALj2MAC49mAAuPfwALj5wAC4+eAAuPoAALj6IAC4+kAAuPpgALj6gAC4+qAAuPxwALj8oAC4/NAAuP0AALj9MAC4/WAAuP2QALj9wAC4/eAAuQWQALkFsAC5BdAAuQXwALkGIAC5BjAAuQZAALkGUAC5BmAAuQaAALkGoAC5BrAAuQbAALkG4AC5BvAAuQ6gALkOwAC5DuAAuQ8AALkPMAC5D0AAuQ9QALkPYAC5D3AAuQ+QALkPsAC5D8AAuQ/QALkP8AC5EAAAuRewALkX0AC5F/AAuRgQALkYQAC5GFAAuRhgALkYcAC5GIAAuRigALkYwAC5GNAAuRjgALkZAAC5GRAAuSDAALkg4AC5IQAAuSEgALkhUAC5IWAAuSFwALkhgAC5IZAAuSGwALkh0AC5IeAAuSHwALkiEAC5IiAAuSnQALkp8AC5KhAAuSowALkqYAC5KnAAuSqAALkqkAC5KqAAuSrAALkq4AC5KvAAuSsAALkrIAC5KzAAuTLgALkzAAC5MyAAuTNAALkzcAC5M4AAuTOQALkzoAC5M7AAuTPQALkz8AC5NAAAuTQQALk0MAC5NEAAuTvwALk8EAC5PDAAuTxQALk8gAC5PJAAuTygALk8sAC5PMAAuTzgALk9AAC5PRAAuT0gALk9QAC5PVAAuUaAALlIsAC5SrAAuUywALlM0AC5TPAAuU0QALlNMAC5TWAAuU1wALlNgAC5TbAAuU3AALlN4AC5TfAAuU4QALlOQAC5TlAAuU5gALlOkAC5TqAAuU7wALlQgAC5URAAuVEwALlRUAC5UeAAuVIQALlSQAC5UmAAuVbwALlZMAC5W6AAuV3gALleEAC5XjAAuV5QALlecAC5XpAAuV6wALlewAC5XvAAuWCAALlikAC5YrAAuWLQALli8AC5YxAAuWMwALljUAC5Y3AAuWOQALlloAC5ZdAAuWYAALlmMAC5ZmAAuWaQALlmwAC5ZvAAuWcgALlnQAC5bvAAuW8QALlvMAC5b1AAuW+AALlvkAC5b6AAuW+wALlvwAC5b+AAuXAAALlwEAC5cCAAuXBAALlwUAC5eAAAuXggALl4QAC5eGAAuXiQALl4oAC5eLAAuXjAALl40AC5ePAAuXkQALl5IAC5eTAAuXlQALl5YAC5gRAAuYEwALmBYAC5gYAAuYGwALmBwAC5gdAAuYHgALmB8AC5ghAAuYIwALmCQAC5glAAuYJwALmCgAC5hBAAuYQgALmEMAC5hFAAuYwAALmMIAC5jEAAuYxgALmMkAC5jKAAuYywALmMwAC5jNAAuYzwALmNEAC5jSAAuY0wALmNUAC5jWAAuZUQALmVMAC5lVAAuZVwALmVoAC5lbAAuZXAALmV0AC5leAAuZYAALmWIAC5ljAAuZZAALmWYAC5lnAAuZ4gALmeQAC5nmAAuZ6AALmesAC5nsAAuZ7QALme4AC5nvAAuZ8QALmfMAC5n0AAuZ9QALmfcAC5n4AAuacwALmnUAC5p3AAuaeQALmnwAC5p9AAuafgALmn8AC5qAAAuaggALmoQAC5qFAAuahgALmogAC5qJAAubBAALmwYAC5sIAAubCgALmw0AC5sOAAubDwALmxAAC5sRAAubEwALmxUAC5sWAAubFwALmxkAC5saAAubYwALm4cAC5uuAAub0gALm9UAC5vXAAub2QALm9sAC5vdAAub3wALm+AAC5vjAAub/AALnBkAC5wbAAucHQALnB8AC5whAAucIwALnCUAC5wnAAucRAALnEcAC5xKAAucTQALnFAAC5xTAAucVgALnFkAC5xbAAuc1gALnNgAC5zaAAuc3AALnN8AC5zgAAuc4QALnOIAC5zjAAuc5QALnOcAC5zoAAuc6QALnOsAC5zsAAudZwALnWkAC51rAAudbQALnXAAC51xAAudcgALnXMAC510AAuddgALnXgAC515AAudegALnXwAC519AAud+AALnfoAC538AAud/gALngEAC54CAAueAwALngQAC54FAAueBwALngkAC54KAAueCwALng0AC54OAAueiQALnosAC56OAAuekAALnpMAC56UAAuelQALnpYAC56XAAuemQALnpsAC56cAAuenQALnp8AC56gAAufGwALnx0AC58fAAufIQALnyQAC58lAAufJgALnycAC58oAAufKgALnywAC58tAAufLgALnzAAC58xAAufrAALn64AC5+wAAufsgALn7UAC5+2AAuftwALn7gAC5+5AAufuwALn70AC5++AAufvwALn8EAC5/CAAugPQALoD8AC6BBAAugQwALoEYAC6BHAAugSAALoEkAC6BKAAugTAALoE4AC6BPAAugUAALoFIAC6BTAAug5gALoQkAC6EpAAuhSQALoUsAC6FNAAuhTwALoVEAC6FUAAuhVQALoVYAC6FZAAuhWgALoVwAC6FdAAuhXwALoWIAC6FjAAuhZAALoWcAC6FoAAuhbQALoYYAC6GPAAuhkQALoZMAC6GcAAuhnwALoaIAC6GkAAuh7QALohEAC6I4AAuiXAALol8AC6JhAAuiYwALomUAC6JnAAuiaQALomoAC6JtAAuihgALoqcAC6KpAAuiqwALoq0AC6KvAAuisQALorMAC6K1AAuitwALotgAC6LbAAui3gALouEAC6LkAAui5wALouoAC6LtAAui8AALovIAC6NtAAujbwALo3EAC6NzAAujdgALo3cAC6N4AAujeQALo3oAC6N8AAujfgALo38AC6OAAAujggALo4MAC6P+AAukAAALpAIAC6QEAAukBwALpAgAC6QJAAukCgALpAsAC6QNAAukDwALpBAAC6QRAAukEwALpBQAC6SPAAukkQALpJQAC6SWAAukmQALpJoAC6SbAAuknAALpJ0AC6SfAAukoQALpKIAC6SjAAukpQALpKYAC6S/AAukwAALpMEAC6TDAAulPgALpUAAC6VCAAulRAALpUcAC6VIAAulSQALpUoAC6VLAAulTQALpU8AC6VQAAulUQALpVMAC6VUAAulzwALpdEAC6XTAAul1QALpdgAC6XZAAul2gALpdsAC6XcAAul3gALpeAAC6XhAAul4gALpeQAC6XlAAumYAALpmIAC6ZkAAumZgALpmkAC6ZqAAumawALpmwAC6ZtAAumbwALpnEAC6ZyAAumcwALpnUAC6Z2AAum8QALpvMAC6b1AAum9wALpvoAC6b7AAum/AALpv0AC6b+AAunAAALpwIAC6cDAAunBAALpwYAC6cHAAunggALp4QAC6eGAAuniAALp4sAC6eMAAunjQALp44AC6ePAAunkQALp5MAC6eUAAunlQALp5cAC6eYAAun4QALqAUAC6gsAAuoUAALqFMAC6hVAAuoVwALqFkAC6hbAAuoXQALqF4AC6hhAAuoegALqJcAC6iZAAuomwALqJ0AC6ifAAuooQALqKMAC6ilAAuowgALqMUAC6jIAAuoywALqM4AC6jRAAuo1AALqNcAC6jZAAupVAALqVYAC6lYAAupWgALqV0AC6leAAupXwALqWAAC6lhAAupYwALqWUAC6lmAAupZwALqWkAC6lqAAup5QALqecAC6npAAup6wALqe4AC6nvAAup8AALqfEAC6nyAAup9AALqfYAC6n3AAup+AALqfoAC6n7AAuqdgALqngAC6p6AAuqfAALqn8AC6qAAAuqgQALqoIAC6qDAAuqhQALqocAC6qIAAuqiQALqosAC6qMAAurBwALqwkAC6sLAAurDQALqxAAC6sRAAurEgALqxMAC6sUAAurFgALqxgAC6sZAAurGgALqxwAC6sdAAurmAALq5oAC6ucAAurngALq6EAC6uiAAurowALq6QAC6ulAAurpwALq6kAC6uqAAurqwALq60AC6uuAAusKQALrCsAC6wtAAusLwALrDIAC6wzAAusNAALrDUAC6w2AAusOAALrDoAC6w7AAusPAALrD4AC6w/AAusugALrLwAC6y+AAuswAALrMMAC6zEAAusxQALrMYAC6zHAAusyQALrMsAC6zMAAuszQALrM8AC6zQAAutYwALrYYAC62mAAutxgALrcgAC63KAAutzAALrc4AC63RAAut0gALrdMAC63WAAut1wALrdkAC63aAAut3AALrd8AC63gAAut4QALreQAC63lAAut6gALrgMAC64MAAuuDgALrhAAC64ZAAuuHAALrh8AC64hAAuuagALro4AC661AAuu2QALrtwAC67eAAuu4AALruIAC67kAAuu5gALrucAC67qAAuvAwALryQAC68mAAuvKAALryoAC68sAAuvLgALrzAAC68yAAuvNAALr1UAC69YAAuvWwALr14AC69hAAuvZAALr2cAC69qAAuvbQALr28AC6/qAAuv7AALr+4AC6/wAAuv8wALr/QAC6/1AAuv9gALr/cAC6/5AAuv+wALr/wAC6/9AAuv/wALsAAAC7B7AAuwfQALsH8AC7CBAAuwhAALsIUAC7CGAAuwhwALsIgAC7CKAAuwjAALsI0AC7COAAuwkAALsJEAC7EMAAuxDgALsREAC7ETAAuxFgALsRcAC7EYAAuxGQALsRoAC7EcAAuxHgALsR8AC7EgAAuxIgALsSMAC7E8AAuxPQALsT4AC7FAAAuxuwALsb0AC7G/AAuxwQALscQAC7HFAAuxxgALsccAC7HIAAuxygALscwAC7HNAAuxzgALsdAAC7HRAAuyTAALsk4AC7JQAAuyUgALslUAC7JWAAuyVwALslgAC7JZAAuyWwALsl0AC7JeAAuyXwALsmEAC7JiAAuy3QALst8AC7LhAAuy4wALsuYAC7LnAAuy6AALsukAC7LqAAuy7AALsu4AC7LvAAuy8AALsvIAC7LzAAuzbgALs3AAC7NyAAuzdAALs3cAC7N4AAuzeQALs3oAC7N7AAuzfQALs38AC7OAAAuzgQALs4MAC7OEAAuz/wALtAEAC7QDAAu0BQALtAgAC7QJAAu0CgALtAsAC7QMAAu0DgALtBAAC7QRAAu0EgALtBQAC7QVAAu0XgALtIIAC7SpAAu0zQALtNAAC7TSAAu01AALtNYAC7TYAAu02gALtNsAC7TeAAu09wALtRQAC7UWAAu1GAALtRoAC7UcAAu1HgALtSAAC7UiAAu1PwALtUIAC7VFAAu1SAALtUsAC7VOAAu1UQALtVQAC7VWAAu10QALtdMAC7XVAAu11wALtdoAC7XbAAu13AALtd0AC7XeAAu14AALteIAC7XjAAu15AALteYAC7XnAAu2YgALtmQAC7ZmAAu2aAALtmsAC7ZsAAu2bQALtm4AC7ZvAAu2cQALtnMAC7Z0AAu2dQALtncAC7Z4AAu28wALtvUAC7b3AAu2+QALtvwAC7b9AAu2/gALtv8AC7cAAAu3AgALtwQAC7cFAAu3BgALtwgAC7cJAAu3hAALt4YAC7eJAAu3iwALt44AC7ePAAu3kAALt5EAC7eSAAu3lAALt5YAC7eXAAu3mAALt5oAC7ebAAu4FgALuBgAC7gaAAu4HAALuB8AC7ggAAu4IQALuCIAC7gjAAu4JQALuCcAC7goAAu4KQALuCsAC7gsAAu4pwALuKkAC7irAAu4rQALuLAAC7ixAAu4sgALuLMAC7i0AAu4tgALuLgAC7i5AAu4ugALuLwAC7i9AAu5OAALuToAC7k8AAu5PgALuUEAC7lCAAu5QwALuUQAC7lFAAu5RwALuUkAC7lKAAu5SwALuU0AC7lOAAu5XwALuWAAC7liAAu5cwALuXgAC7l7AAu5fQALubYAC7m5AAu5uwALub4AC7nBAAu5xAALuccAC7pKAAu6bgALupIAC7q1AAu63AALuvwAC7sjAAu7SgALu2oAC7uOAAu7sgALu7QAC7u3AAu7uQALu7sAC7u9AAu7wAALu8MAC7vFAAu7xwALu8oAC7vMAAu7zgALu9EAC7vUAAu71QALu9oAC7vzAAu7+AALu/oAC7v/AAu8AgALvAQAC7xNAAu8cQALvJgAC7y8AAu8vwALvMEAC7zDAAu8xQALvMcAC7zJAAu8ygALvM0AC7zmAAu9CwALvQ0AC70PAAu9EQALvRMAC70VAAu9FwALvRkAC70bAAu9HQALvUIAC71FAAu9SAALvUsAC71OAAu9UQALvVQAC71XAAu9WgALvV0AC71fAAu92gALvdwAC73fAAu94QALveQAC73lAAu95gALvecAC73oAAu96gALvewAC73tAAu97gALvfAAC73xAAu+AgALvgMAC74FAAu+gAALvoIAC76EAAu+hgALvokAC76KAAu+iwALvowAC76NAAu+jwALvpEAC76SAAu+kwALvpUAC76WAAu/EQALvxMAC78WAAu/GAALvxsAC78cAAu/HQALvx4AC78fAAu/IQALvyMAC78kAAu/JQALvycAC78oAAu/OQALvzoAC788AAu/twALv7kAC7+7AAu/vQALv8AAC7/BAAu/wgALv8MAC7/EAAu/xgALv8gAC7/JAAu/ygALv8wAC7/NAAvASAALwEoAC8BNAAvATwALwFIAC8BTAAvAVAALwFUAC8BWAAvAWAALwFoAC8BbAAvAXAALwF4AC8BfAAvAcAALwHEAC8BzAAvA7gALwPAAC8DyAAvA9AALwPcAC8D4AAvA+QALwPoAC8D7AAvA/QALwP8AC8EAAAvBAQALwQMAC8EEAAvBfwALwYEAC8GEAAvBhgALwYkAC8GKAAvBiwALwYwAC8GNAAvBjwALwZEAC8GSAAvBkwALwZUAC8GWAAvBrwALwbAAC8GxAAvBswALwi4AC8IwAAvCMgALwjQAC8I3AAvCOAALwjkAC8I6AAvCOwALwj0AC8I/AAvCQAALwkEAC8JDAAvCRAALwr8AC8LBAAvCxAALwsYAC8LJAAvCygALwssAC8LMAAvCzQALws8AC8LRAAvC0gALwtMAC8LVAAvC1gALwwIAC8MbAAvDIAALwyMAC8MoAAvDKwALwy0AC8NCAAvD1QALw/gAC8QYAAvEOAALxDoAC8Q8AAvEPgALxEAAC8RDAAvERAALxEUAC8RIAAvESQALxEsAC8RMAAvETgALxFEAC8RSAAvEUwALxFYAC8RXAAvEXAALxHUAC8R+AAvEgAALxIIAC8SLAAvEjgALxJEAC8STAAvE3AALxQAAC8UnAAvFSwALxU4AC8VQAAvFUgALxVQAC8VWAAvFWAALxVkAC8VcAAvFdQALxZYAC8WYAAvFmgALxZwAC8WeAAvFoAALxaIAC8WkAAvFpgALxccAC8XKAAvFzQALxdAAC8XTAAvF1gALxdkAC8XcAAvF3wALxeEAC8ZcAAvGXgALxmAAC8ZiAAvGZQALxmYAC8ZnAAvGaAALxmkAC8ZrAAvGbQALxm4AC8ZvAAvGcQALxnIAC8btAAvG7wALxvEAC8bzAAvG9gALxvcAC8b4AAvG+QALxvoAC8b8AAvG/gALxv8AC8cAAAvHAgALxwMAC8d+AAvHgAALx4MAC8eFAAvHiAALx4kAC8eKAAvHiwALx4wAC8eOAAvHkAALx5EAC8eSAAvHlAALx5UAC8euAAvHrwALx7AAC8eyAAvILQALyC8AC8gxAAvIMwALyDYAC8g3AAvIOAALyDkAC8g6AAvIPAALyD4AC8g/AAvIQAALyEIAC8hDAAvIvgALyMAAC8jCAAvIxAALyMcAC8jIAAvIyQALyMoAC8jLAAvIzQALyM8AC8jQAAvI0QALyNMAC8jUAAvJTwALyVEAC8lTAAvJVQALyVgAC8lZAAvJWgALyVsAC8lcAAvJXgALyWAAC8lhAAvJYgALyWQAC8llAAvJ4AALyeIAC8nkAAvJ5gALyekAC8nqAAvJ6wALyewAC8ntAAvJ7wALyfEAC8nyAAvJ8wALyfUAC8n2AAvKcQALynMAC8p1AAvKdwALynoAC8p7AAvKfAALyn0AC8p+AAvKgAALyoIAC8qDAAvKhAALyoYAC8qHAAvK0AALyvQAC8sbAAvLPwALy0IAC8tEAAvLRgALy0gAC8tKAAvLTAALy00AC8tQAAvLaQALy4YAC8uIAAvLigALy4wAC8uOAAvLkAALy5IAC8uUAAvLsQALy7QAC8u3AAvLugALy70AC8vAAAvLwwALy8YAC8vIAAvMQwALzEUAC8xHAAvMSQALzEwAC8xNAAvMTgALzE8AC8xQAAvMUgALzFQAC8xVAAvMVgALzFgAC8xZAAvM1AALzNYAC8zYAAvM2gALzN0AC8zeAAvM3wALzOAAC8zhAAvM4wALzOUAC8zmAAvM5wALzOkAC8zqAAvNZQALzWcAC81pAAvNawALzW4AC81vAAvNcAALzXEAC81yAAvNdAALzXYAC813AAvNeAALzXoAC817AAvN9gALzfgAC836AAvN/AALzf8AC84AAAvOAQALzgIAC84DAAvOBQALzgcAC84IAAvOCQALzgsAC84MAAvOhwALzokAC86LAAvOjQALzpAAC86RAAvOkgALzpMAC86UAAvOlgALzpgAC86ZAAvOmgALzpwAC86dAAvPGAALzxoAC88cAAvPHgALzyEAC88iAAvPIwALzyQAC88lAAvPJwALzykAC88qAAvPKwALzy0AC88uAAvPqQALz6sAC8+tAAvPrwALz7IAC8+zAAvPtAALz7UAC8+2AAvPuAALz7oAC8+7AAvPvAALz74AC8+/AAvP0AALz9UAC8/YAAvP2gALz98AC9BaAAvQXAAL0F4AC9BgAAvQYwAL0GQAC9BlAAvQZgAL0GcAC9BpAAvQawAL0GwAC9BtAAvQbwAL0HAAC9DrAAvQ7QAL0O8AC9DxAAvQ9AAL0PUAC9D2AAvQ9wAL0PgAC9D6AAvQ/AAL0P0AC9D+AAvRAAAL0QEAC9F8AAvRfgAL0YEAC9GDAAvRhgAL0YcAC9GIAAvRiQAL0YoAC9GMAAvRjgAL0Y8AC9GQAAvRkgAL0ZMAC9ImAAvSSQAL0mkAC9KJAAvSiwAL0o0AC9KPAAvSkQAL0pQAC9KVAAvSlgAL0pkAC9KaAAvSnAAL0p0AC9KgAAvSowAL0qQAC9KlAAvSqAAL0qkAC9KuAAvSxwAL0tAAC9LSAAvS1AAL0t0AC9LgAAvS4wAL0uUAC9MuAAvTUgAL03kAC9OdAAvToAAL06IAC9OkAAvTpgAL06gAC9OqAAvTqwAL064AC9PHAAvT6AAL0+oAC9PsAAvT7gAL0/AAC9PyAAvT9AAL0/YAC9P4AAvUGQAL1BwAC9QfAAvUIgAL1CUAC9QoAAvUKwAL1C4AC9QxAAvUMwAL1K4AC9SwAAvUsgAL1LQAC9S3AAvUuAAL1LkAC9S6AAvUuwAL1L0AC9S/AAvUwAAL1MEAC9TDAAvUxAAL1T8AC9VBAAvVQwAL1UUAC9VIAAvVSQAL1UoAC9VLAAvVTAAL1U4AC9VQAAvVUQAL1VIAC9VUAAvVVQAL1dAAC9XSAAvV1QAL1dcAC9XaAAvV2wAL1dwAC9XdAAvV3gAL1eAAC9XiAAvV4wAL1eQAC9XmAAvV5wAL1gAAC9YBAAvWAgAL1gQAC9Z/AAvWgQAL1oMAC9aFAAvWiAAL1okAC9aKAAvWiwAL1owAC9aOAAvWkAAL1pEAC9aSAAvWlAAL1pUAC9cQAAvXEgAL1xQAC9cWAAvXGQAL1xoAC9cbAAvXHAAL1x0AC9cfAAvXIQAL1yIAC9cjAAvXJQAL1yYAC9ehAAvXowAL16UAC9enAAvXqgAL16sAC9esAAvXrQAL164AC9ewAAvXsgAL17MAC9e0AAvXtgAL17cAC9gyAAvYNAAL2DYAC9g4AAvYOwAL2DwAC9g9AAvYPgAL2D8AC9hBAAvYQwAL2EQAC9hFAAvYRwAL2EgAC9jDAAvYxQAL2McAC9jJAAvYzAAL2M0AC9jOAAvYzwAL2NAAC9jSAAvY1AAL2NUAC9jWAAvY2AAL2NkAC9kiAAvZRgAL2W0AC9mRAAvZlAAL2ZYAC9mYAAvZmgAL2ZwAC9meAAvZnwAL2aIAC9m7AAvZ2AAL2doAC9ncAAvZ3gAL2eAAC9niAAvZ5AAL2eYAC9oDAAvaBgAL2gkAC9oMAAvaDwAL2hIAC9oVAAvaGAAL2hoAC9qVAAvalwAL2pkAC9qbAAvangAL2p8AC9qgAAvaoQAL2qIAC9qkAAvapgAL2qcAC9qoAAvaqgAL2qsAC9smAAvbKAAL2ysAC9stAAvbMAAL2zEAC9syAAvbMwAL2zQAC9s2AAvbOAAL2zkAC9s6AAvbPAAL2z0AC9u4AAvbugAL27wAC9u+AAvbwQAL28IAC9vDAAvbxAAL28UAC9vHAAvbyQAL28oAC9vLAAvbzQAL284AC9xJAAvcSwAL3E4AC9xQAAvcUwAL3FQAC9xVAAvcVgAL3FcAC9xZAAvcWwAL3FwAC9xdAAvcXwAL3GAAC9zjAAvdBwAL3SsAC91OAAvddQAL3ZUAC928AAvd4wAL3gMAC94nAAveSwAL3k0AC95QAAveUgAL3lQAC95WAAveWQAL3lwAC95eAAveYAAL3mMAC95lAAveZwAL3moAC95tAAvebgAL3nMAC96MAAvekQAL3pMAC96YAAvemwAL3p0AC97mAAvfCgAL3zEAC99VAAvfWAAL31oAC99cAAvfXgAL32AAC99iAAvfYwAL32YAC99/AAvfpAAL36YAC9+oAAvfqgAL36wAC9+uAAvfsAAL37IAC9+0AAvftgAL39sAC9/eAAvf4QAL3+QAC9/nAAvf6gAL3+0AC9/wAAvf8wAL3/YAC9/4AAvgcwAL4HUAC+B4AAvgegAL4H0AC+B+AAvgfwAL4IAAC+CBAAvggwAL4IUAC+CGAAvghwAL4IkAC+CKAAvgmwAL4JwAC+CeAAvhGQAL4RsAC+EdAAvhHwAL4SIAC+EjAAvhJAAL4SUAC+EmAAvhKAAL4SoAC+ErAAvhLAAL4S4AC+EvAAvhqgAL4awAC+GvAAvhsQAL4bQAC+G1AAvhtgAL4bcAC+G4AAvhugAL4bwAC+G9AAvhvgAL4cAAC+HBAAvh0gAL4dMAC+HVAAviUAAL4lIAC+JUAAviVgAL4lkAC+JaAAviWwAL4lwAC+JdAAviXwAL4mEAC+JiAAviYwAL4mUAC+JmAAvi4QAL4uMAC+LmAAvi6AAL4usAC+LsAAvi7QAL4u4AC+LvAAvi8QAL4vMAC+L0AAvi9QAL4vcAC+L4AAvjCQAL4woAC+MMAAvjhwAL44kAC+OLAAvjjQAL45AAC+ORAAvjkgAL45MAC+OUAAvjlgAL45gAC+OZAAvjmgAL45wAC+OdAAvkGAAL5BoAC+QdAAvkHwAL5CIAC+QjAAvkJAAL5CUAC+QmAAvkKAAL5CoAC+QrAAvkLAAL5C4AC+QvAAvkSAAL5EkAC+RKAAvkTAAL5McAC+TJAAvkywAL5M0AC+TQAAvk0QAL5NIAC+TTAAvk1AAL5NYAC+TYAAvk2QAL5NoAC+TcAAvk3QAL5VgAC+VaAAvlXQAL5V8AC+ViAAvlYwAL5WQAC+VlAAvlZgAL5WgAC+VqAAvlawAL5WwAC+VuAAvlbwAL5YwAC+WlAAvlqgAL5a0AC+WyAAvltQAL5bcAC+W9AAvmUAAL5nMAC+aTAAvmswAL5rUAC+a3AAvmuQAL5rsAC+a+AAvmvwAL5sAAC+bDAAvmxAAL5sYAC+bHAAvmygAL5s0AC+bOAAvmzwAL5tIAC+bTAAvm3AAL5vUAC+b+AAvnAAAL5wIAC+cLAAvnDgAL5xEAC+cTAAvnXAAL54AAC+enAAvnywAL584AC+fQAAvn0gAL59QAC+fWAAvn2AAL59kAC+fcAAvn9QAL6BYAC+gYAAvoGgAL6BwAC+geAAvoIAAL6CIAC+gkAAvoJgAL6EcAC+hKAAvoTQAL6FAAC+hTAAvoVgAL6FkAC+hcAAvoXwAL6GEAC+jcAAvo3gAL6OAAC+jiAAvo5QAL6OYAC+jnAAvo6AAL6OkAC+jrAAvo7QAL6O4AC+jvAAvo8QAL6PIAC+ltAAvpbwAL6XEAC+lzAAvpdgAL6XcAC+l4AAvpeQAL6XoAC+l8AAvpfgAL6X8AC+mAAAvpggAL6YMAC+n+AAvqAAAL6gMAC+oFAAvqCAAL6gkAC+oKAAvqCwAL6gwAC+oOAAvqEAAL6hEAC+oSAAvqFAAL6hUAC+ouAAvqLwAL6jAAC+oyAAvqrQAL6q8AC+qxAAvqswAL6rYAC+q3AAvquAAL6rkAC+q6AAvqvAAL6r4AC+q/AAvqwAAL6sIAC+rDAAvrPgAL60AAC+tCAAvrRAAL60cAC+tIAAvrSQAL60oAC+tLAAvrTQAL608AC+tQAAvrUQAL61MAC+tUAAvrzwAL69EAC+vTAAvr1QAL69gAC+vZAAvr2gAL69sAC+vcAAvr3gAL6+AAC+vhAAvr4gAL6+QAC+vlAAvsYAAL7GIAC+xkAAvsZgAL7GkAC+xqAAvsawAL7GwAC+xtAAvsbwAL7HEAC+xyAAvscwAL7HUAC+x2AAvs8QAL7PMAC+z1AAvs9wAL7PoAC+z7AAvs/AAL7P0AC+z+AAvtAAAL7QIAC+0DAAvtBAAL7QYAC+0HAAvtUAAL7XQAC+2bAAvtvwAL7cIAC+3EAAvtxgAL7cgAC+3KAAvtzAAL7c0AC+3QAAvt6QAL7gYAC+4IAAvuCgAL7gwAC+4OAAvuEAAL7hIAC+4UAAvuMQAL7jQAC+43AAvuOgAL7j0AC+5AAAvuQwAL7kYAC+5IAAvuwwAL7sUAC+7HAAvuyQAL7swAC+7NAAvuzgAL7s8AC+7QAAvu0gAL7tQAC+7VAAvu1gAL7tgAC+7ZAAvvVAAL71YAC+9YAAvvWgAL710AC+9eAAvvXwAL72AAC+9hAAvvYwAL72UAC+9mAAvvZwAL72kAC+9qAAvv5QAL7+cAC+/pAAvv6wAL7+4AC+/vAAvv8AAL7/EAC+/yAAvv9AAL7/YAC+/3AAvv+AAL7/oAC+/7AAvwdgAL8HgAC/B7AAvwfQAL8IAAC/CBAAvwggAL8IMAC/CEAAvwhgAL8IgAC/CJAAvwigAL8IwAC/CNAAvxCAAL8QoAC/EMAAvxDgAL8REAC/ESAAvxEwAL8RQAC/EVAAvxFwAL8RkAC/EaAAvxGwAL8R0AC/EeAAvxmQAL8ZsAC/GdAAvxnwAL8aIAC/GjAAvxpAAL8aUAC/GmAAvxqAAL8aoAC/GrAAvxrAAL8a4AC/GvAAvyKgAL8iwAC/IvAAvyMQAL8jQAC/I1AAvyNgAL8jcAC/I4AAvyOgAL8jwAC/I9AAvyPgAL8kAAC/JBAAvyUgAL8lcAC/JaAAvyXAAL8pUAC/KYAAvymgAL8p0AC/KgAAvyowAL8qYAC/KrAAvzTgAL83IAC/OWAAvztgAL890AC/QEAAv0JAAL9EsAC/RvAAv0kgAL9LkAC/TdAAv1AQAL9SUAC/VMAAv1TQAL9U8AC/VRAAv1VAAL9VYAC/VZAAv1WwAL9V0AC/VgAAv1YgAL9WQAC/VnAAv1agAL9WwAC/VuAAv1cAAL9XMAC/V2AAv1eQAL9X4AC/WXAAv1nAAL9Z4AC/WjAAv1pgAL9agAC/XxAAv2FQAL9jwAC/ZgAAv2YwAL9mUAC/ZnAAv2aQAL9msAC/ZtAAv2bgAL9nEAC/aKAAv2rwAL9rEAC/azAAv2tQAL9rcAC/a5AAv2uwAL9r0AC/a/AAv2wQAL9uYAC/bpAAv27AAL9u8AC/byAAv29QAL9vgAC/b7AAv2/gAL9wEAC/cDAAv3fgAL94AAC/eDAAv3hQAL94gAC/eJAAv3igAL94sAC/eMAAv3jgAL95AAC/eRAAv3kgAL95QAC/eVAAv3pgAL96cAC/epAAv4JAAL+CYAC/goAAv4KgAL+C0AC/guAAv4LwAL+DAAC/gxAAv4MwAL+DUAC/g2AAv4NwAL+DkAC/g6AAv4tQAL+LcAC/i6AAv4vAAL+L8AC/jAAAv4wQAL+MIAC/jDAAv4xQAL+McAC/jIAAv4yQAL+MsAC/jMAAv43QAL+OIAC/jlAAv45wAL+PgAC/kFAAv5CAAL+QsAC/kOAAv5EAAL+SsAC/k5AAv5RQAL+cAAC/nCAAv5xAAL+cYAC/nJAAv5ygAL+csAC/nMAAv5zQAL+c8AC/nRAAv50gAL+dMAC/nVAAv51gAL+lEAC/pTAAv6VgAL+lgAC/pbAAv6XAAL+l0AC/peAAv6XwAL+mEAC/pjAAv6ZAAL+mUAC/pnAAv6aAAL+nkAC/p6AAv6fAAL+vcAC/r5AAv6+wAL+v0AC/sAAAv7AQAL+wIAC/sDAAv7BAAL+wYAC/sIAAv7CQAL+woAC/sMAAv7DQAL+4gAC/uKAAv7jQAL+48AC/uSAAv7kwAL+5QAC/uVAAv7lgAL+5gAC/uaAAv7mwAL+5wAC/ueAAv7nwAL+7gAC/u5AAv7ugAL+7wAC/w3AAv8OQAL/DsAC/w9AAv8QAAL/EEAC/xCAAv8QwAL/EQAC/xGAAv8SAAL/EkAC/xKAAv8TAAL/E0AC/zIAAv8ygAL/M0AC/zPAAv80gAL/NMAC/zUAAv81QAL/NYAC/zYAAv82gAL/NsAC/zcAAv83gAL/N8AC/z3AAv9EAAL/UUAC/1IAAv9SwAL/U4AC/1RAAv9VAAL/VcAC/1aAAv9XQAL/WAAC/1jAAv9ZgAL/WkAC/1sAAv9oQAL/aQAC/2nAAv9qgAL/a0AC/2wAAv9swAL/bYAC/25AAv9vAAL/b8AC/3CAAv9xQAL/cgAC/3KAAv92AAL/ecAC/3/AAv+CwAL/h4AC/4yAAv+PAAL/lcAC/5jAAv+9gAL/xkAC/85AAv/WQAL/1sAC/9dAAv/XwAL/2EAC/9kAAv/ZQAL/2YAC/9pAAv/agAL/2wAC/9tAAv/bwAL/3IAC/9zAAv/dAAL/3cAC/94AAv/fQAL/5YAC/+fAAv/oQAL/6MAC/+sAAv/rwAL/7IAC/+0AAv//QAMACEADABIAAwAbAAMAG8ADABxAAwAcwAMAHUADAB3AAwAeQAMAHoADAB9AAwAlgAMALcADAC5AAwAuwAMAL0ADAC/AAwAwQAMAMMADADFAAwAxwAMAOgADADrAAwA7gAMAPEADAD0AAwA9wAMAPoADAD9AAwBAAAMAQIADAF9AAwBfwAMAYEADAGDAAwBhgAMAYcADAGIAAwBiQAMAYoADAGMAAwBjgAMAY8ADAGQAAwBkgAMAZMADAIOAAwCEAAMAhIADAIUAAwCFwAMAhgADAIZAAwCGgAMAhsADAIdAAwCHwAMAiAADAIhAAwCIwAMAiQADAKfAAwCoQAMAqQADAKmAAwCqQAMAqoADAKrAAwCrAAMAq0ADAKvAAwCsQAMArIADAKzAAwCtQAMArYADALPAAwC0AAMAtEADALTAAwDTgAMA1AADANSAAwDVAAMA1cADANYAAwDWQAMA1oADANbAAwDXQAMA18ADANgAAwDYQAMA2MADANkAAwD3wAMA+EADAPjAAwD5QAMA+gADAPpAAwD6gAMA+sADAPsAAwD7gAMA/AADAPxAAwD8gAMA/QADAP1AAwEcAAMBHIADAR0AAwEdgAMBHkADAR6AAwEewAMBHwADAR9AAwEfwAMBIEADASCAAwEgwAMBIUADASGAAwFAQAMBQMADAUFAAwFBwAMBQoADAULAAwFDAAMBQ0ADAUOAAwFEAAMBRIADAUTAAwFFAAMBRYADAUXAAwFkgAMBZQADAWWAAwFmAAMBZsADAWcAAwFnQAMBZ4ADAWfAAwFoQAMBaMADAWkAAwFpQAMBacADAWoAAwF8QAMBhUADAY8AAwGYAAMBmMADAZlAAwGZwAMBmkADAZrAAwGbQAMBm4ADAZxAAwGigAMBqcADAapAAwGqwAMBq0ADAavAAwGsQAMBrMADAa1AAwG0gAMBtUADAbYAAwG2wAMBt4ADAbhAAwG5AAMBucADAbpAAwHZAAMB2YADAdoAAwHagAMB20ADAduAAwHbwAMB3AADAdxAAwHcwAMB3UADAd2AAwHdwAMB3kADAd6AAwH9QAMB/cADAf5AAwH+wAMB/4ADAf/AAwIAAAMCAEADAgCAAwIBAAMCAYADAgHAAwICAAMCAoADAgLAAwIhgAMCIgADAiKAAwIjAAMCI8ADAiQAAwIkQAMCJIADAiTAAwIlQAMCJcADAiYAAwImQAMCJsADAicAAwJFwAMCRkADAkbAAwJHQAMCSAADAkhAAwJIgAMCSMADAkkAAwJJgAMCSgADAkpAAwJKgAMCSwADAktAAwJqAAMCaoADAmsAAwJrgAMCbEADAmyAAwJswAMCbQADAm1AAwJtwAMCbkADAm6AAwJuwAMCb0ADAm+AAwKOQAMCjsADAo9AAwKPwAMCkIADApDAAwKRAAMCkUADApGAAwKSAAMCkoADApLAAwKTAAMCk4ADApPAAwKygAMCswADArOAAwK0AAMCtMADArUAAwK1QAMCtYADArXAAwK2QAMCtsADArcAAwK3QAMCt8ADArgAAwLcwAMC5YADAu2AAwL1gAMC9gADAvaAAwL3AAMC94ADAvhAAwL4gAMC+MADAvmAAwL5wAMC+kADAvqAAwL7QAMC/AADAvxAAwL8gAMC/UADAv2AAwL+wAMDBQADAwdAAwMHwAMDCEADAwqAAwMLQAMDDAADAwyAAwMewAMDJ8ADAzGAAwM6gAMDO0ADAzvAAwM8QAMDPMADAz1AAwM9wAMDPgADAz7AAwNFAAMDTUADA03AAwNOQAMDTsADA09AAwNPwAMDUEADA1DAAwNRQAMDWYADA1pAAwNbAAMDW8ADA1yAAwNdQAMDXgADA17AAwNfgAMDYAADA37AAwN/QAMDf8ADA4BAAwOBAAMDgUADA4GAAwOBwAMDggADA4KAAwODAAMDg0ADA4OAAwOEAAMDhEADA6MAAwOjgAMDpAADA6SAAwOlQAMDpYADA6XAAwOmAAMDpkADA6bAAwOnQAMDp4ADA6fAAwOoQAMDqIADA8dAAwPHwAMDyIADA8kAAwPJwAMDygADA8pAAwPKgAMDysADA8tAAwPLwAMDzAADA8xAAwPMwAMDzQADA9NAAwPTgAMD08ADA9RAAwPzAAMD84ADA/QAAwP0gAMD9UADA/WAAwP1wAMD9gADA/ZAAwP2wAMD90ADA/eAAwP3wAMD+EADA/iAAwQXQAMEF8ADBBhAAwQYwAMEGYADBBnAAwQaAAMEGkADBBqAAwQbAAMEG4ADBBvAAwQcAAMEHIADBBzAAwQ7gAMEPAADBDyAAwQ9AAMEPcADBD4AAwQ+QAMEPoADBD7AAwQ/QAMEP8ADBEAAAwRAQAMEQMADBEEAAwRfwAMEYEADBGDAAwRhQAMEYgADBGJAAwRigAMEYsADBGMAAwRjgAMEZAADBGRAAwRkgAMEZQADBGVAAwSEAAMEhIADBIUAAwSFgAMEhkADBIaAAwSGwAMEhwADBIdAAwSHwAMEiEADBIiAAwSIwAMEiUADBImAAwSbwAMEpMADBK6AAwS3gAMEuEADBLjAAwS5QAMEucADBLpAAwS6wAMEuwADBLvAAwTCAAMEyUADBMnAAwTKQAMEysADBMtAAwTLwAMEzEADBMzAAwTUAAME1MADBNWAAwTWQAME1wADBNfAAwTYgAME2UADBNnAAwT4gAME+QADBPmAAwT6AAME+sADBPsAAwT7QAME+4ADBPvAAwT8QAME/MADBP0AAwT9QAME/cADBP4AAwUcwAMFHUADBR4AAwUegAMFH0ADBR+AAwUfwAMFIAADBSBAAwUgwAMFIUADBSGAAwUhwAMFIkADBSKAAwVBQAMFQcADBUJAAwVCwAMFQ4ADBUPAAwVEAAMFREADBUSAAwVFAAMFRYADBUXAAwVGAAMFRoADBUbAAwVlgAMFZgADBWbAAwVnQAMFaAADBWhAAwVogAMFaMADBWkAAwVpgAMFagADBWpAAwVqgAMFawADBWtAAwWMAAMFlQADBZ4AAwWmwAMFsIADBbiAAwXCQAMFzAADBdQAAwXdAAMF5gADBeaAAwXnQAMF58ADBehAAwXowAMF6YADBepAAwXqwAMF60ADBewAAwXsgAMF7QADBe3AAwXugAMF7sADBfAAAwX2QAMF94ADBfgAAwX5QAMF+gADBfqAAwYMwAMGFcADBh+AAwYogAMGKUADBinAAwYqQAMGKsADBitAAwYrwAMGLAADBizAAwYzAAMGPEADBjzAAwY9QAMGPcADBj5AAwY+wAMGP0ADBj/AAwZAQAMGQMADBkoAAwZKwAMGS4ADBkxAAwZNAAMGTcADBk6AAwZPQAMGUAADBlDAAwZRQAMGcAADBnCAAwZxQAMGccADBnKAAwZywAMGcwADBnNAAwZzgAMGdAADBnSAAwZ0wAMGdQADBnWAAwZ1wAMGegADBnpAAwZ6wAMGmYADBpoAAwaagAMGmwADBpvAAwacAAMGnEADBpyAAwacwAMGnUADBp3AAwaeAAMGnkADBp7AAwafAAMGvcADBr5AAwa/AAMGv4ADBsBAAwbAgAMGwMADBsEAAwbBQAMGwcADBsJAAwbCgAMGwsADBsNAAwbDgAMGx8ADBskAAwbJwAMGykADBs6AAwbSwAMG04ADBtRAAwbVAAMG1cADBtZAAwbdAAMG4wADBubAAwcFgAMHBgADBwaAAwcHAAMHB8ADBwgAAwcIQAMHCIADBwjAAwcJQAMHCcADBwoAAwcKQAMHCsADBwsAAwcpwAMHKkADBysAAwcrgAMHLEADByyAAwcswAMHLQADBy1AAwctwAMHLkADBy6AAwcuwAMHL0ADBy+AAwczwAMHNAADBzSAAwdTQAMHU8ADB1RAAwdUwAMHVYADB1XAAwdWAAMHVkADB1aAAwdXAAMHV4ADB1fAAwdYAAMHWIADB1jAAwd3gAMHeAADB3jAAwd5QAMHegADB3pAAwd6gAMHesADB3sAAwd7gAMHfAADB3xAAwd8gAMHfQADB31AAweDgAMHg8ADB4QAAweEgAMHo0ADB6PAAwekQAMHpMADB6WAAwelwAMHpgADB6ZAAwemgAMHpwADB6eAAwenwAMHqAADB6iAAweowAMHx4ADB8gAAwfIwAMHyUADB8oAAwfKQAMHyoADB8rAAwfLAAMHy4ADB8wAAwfMQAMHzIADB80AAwfNQAMH1MADB9sAAwfjQAMH5AADB+TAAwflgAMH5kADB+cAAwfnwAMH6IADB+lAAwfxgAMH8kADB/MAAwfzwAMH9IADB/VAAwf2AAMH9sADB/eAAwf4AAMH+kADB/7AAwgGwAMIDYADCBIAAwgVwAMIG8ADCECAAwhJQAMIUUADCFlAAwhZwAMIWkADCFrAAwhbQAMIXAADCFxAAwhcgAMIXUADCF2AAwheAAMIXkADCF7AAwhfgAMIX8ADCGAAAwhgwAMIYQADCGJAAwhogAMIasADCGtAAwhrwAMIbgADCG7AAwhvgAMIcAADCIJAAwiLQAMIlQADCJ4AAwiewAMIn0ADCJ/AAwigQAMIoMADCKFAAwihgAMIokADCKiAAwiwwAMIsUADCLHAAwiyQAMIssADCLNAAwizwAMItEADCLTAAwi9AAMIvcADCL6AAwi/QAMIwAADCMDAAwjBgAMIwkADCMMAAwjDgAMI4kADCOLAAwjjQAMI48ADCOSAAwjkwAMI5QADCOVAAwjlgAMI5gADCOaAAwjmwAMI5wADCOeAAwjnwAMJBoADCQcAAwkHgAMJCAADCQjAAwkJAAMJCUADCQmAAwkJwAMJCkADCQrAAwkLAAMJC0ADCQvAAwkMAAMJKsADCStAAwksAAMJLIADCS1AAwktgAMJLcADCS4AAwkuQAMJLsADCS9AAwkvgAMJL8ADCTBAAwkwgAMJNsADCTcAAwk3QAMJN8ADCVaAAwlXAAMJV4ADCVgAAwlYwAMJWQADCVlAAwlZgAMJWcADCVpAAwlawAMJWwADCVtAAwlbwAMJXAADCXrAAwl7QAMJe8ADCXxAAwl9AAMJfUADCX2AAwl9wAMJfgADCX6AAwl/AAMJf0ADCX+AAwmAAAMJgEADCZ8AAwmfgAMJoAADCaCAAwmhQAMJoYADCaHAAwmiAAMJokADCaLAAwmjQAMJo4ADCaPAAwmkQAMJpIADCcNAAwnDwAMJxEADCcTAAwnFgAMJxcADCcYAAwnGQAMJxoADCccAAwnHgAMJx8ADCcgAAwnIgAMJyMADCeeAAwnoAAMJ6IADCekAAwnpwAMJ6gADCepAAwnqgAMJ6sADCetAAwnrwAMJ7AADCexAAwnswAMJ7QADCf9AAwoIQAMKEgADChsAAwobwAMKHEADChzAAwodQAMKHcADCh5AAwoegAMKH0ADCiWAAwoswAMKLUADCi3AAwouQAMKLsADCi9AAwovwAMKMEADCjeAAwo4QAMKOQADCjnAAwo6gAMKO0ADCjwAAwo8wAMKPUADClwAAwpcgAMKXQADCl2AAwpeQAMKXoADCl7AAwpfAAMKX0ADCl/AAwpgQAMKYIADCmDAAwphQAMKYYADCoBAAwqAwAMKgUADCoHAAwqCgAMKgsADCoMAAwqDQAMKg4ADCoQAAwqEgAMKhMADCoUAAwqFgAMKhcADCqSAAwqlAAMKpYADCqYAAwqmwAMKpwADCqdAAwqngAMKp8ADCqhAAwqowAMKqQADCqlAAwqpwAMKqgADCsjAAwrJQAMKycADCspAAwrLAAMKy0ADCsuAAwrLwAMKzAADCsyAAwrNAAMKzUADCs2AAwrOAAMKzkADCu0AAwrtgAMK7gADCu6AAwrvQAMK74ADCu/AAwrwAAMK8EADCvDAAwrxQAMK8YADCvHAAwryQAMK8oADCxFAAwsRwAMLEkADCxLAAwsTgAMLE8ADCxQAAwsUQAMLFIADCxUAAwsVgAMLFcADCxYAAwsWgAMLFsADCzWAAws2AAMLNoADCzcAAws3wAMLOAADCzhAAws4gAMLOMADCzlAAws5wAMLOgADCzpAAws6wAMLOwADC1/AAwtogAMLcIADC3iAAwt5AAMLeYADC3oAAwt6gAMLe0ADC3uAAwt7wAMLfIADC3zAAwt9QAMLfYADC34AAwt+wAMLfwADC39AAwuAAAMLgEADC4GAAwuHwAMLigADC4qAAwuLAAMLjUADC44AAwuOwAMLj0ADC6GAAwuqgAMLtEADC71AAwu+AAMLvoADC78AAwu/gAMLwAADC8CAAwvAwAMLwYADC8fAAwvQAAML0IADC9EAAwvRgAML0gADC9KAAwvTAAML04ADC9QAAwvcQAML3QADC93AAwvegAML30ADC+AAAwvgwAML4YADC+JAAwviwAMMAYADDAIAAwwCgAMMAwADDAPAAwwEAAMMBEADDASAAwwEwAMMBUADDAXAAwwGAAMMBkADDAbAAwwHAAMMJcADDCZAAwwmwAMMJ0ADDCgAAwwoQAMMKIADDCjAAwwpAAMMKYADDCoAAwwqQAMMKoADDCsAAwwrQAMMSgADDEqAAwxLQAMMS8ADDEyAAwxMwAMMTQADDE1AAwxNgAMMTgADDE6AAwxOwAMMTwADDE+AAwxPwAMMVgADDFZAAwxWgAMMVwADDHXAAwx2QAMMdsADDHdAAwx4AAMMeEADDHiAAwx4wAMMeQADDHmAAwx6AAMMekADDHqAAwx7AAMMe0ADDJoAAwyagAMMmwADDJuAAwycQAMMnIADDJzAAwydAAMMnUADDJ3AAwyeQAMMnoADDJ7AAwyfQAMMn4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ADEQtAAxELwAMRDAADEQxAAxEMwAMRDQADESvAAxEsQAMRLMADES1AAxEuAAMRLkADES6AAxEuwAMRLwADES+AAxEwAAMRMEADETCAAxExAAMRMUADEVAAAxFQgAMRUQADEVGAAxFSQAMRUoADEVLAAxFTAAMRU0ADEVPAAxFUQAMRVIADEVTAAxFVQAMRVYADEXRAAxF0wAMRdUADEXXAAxF2gAMRdsADEXcAAxF3QAMRd4ADEXgAAxF4gAMReMADEXkAAxF5gAMRecADEZ6AAxGnQAMRr0ADEbdAAxG3wAMRuEADEbjAAxG5QAMRugADEbpAAxG6gAMRu0ADEbuAAxG8AAMRvEADEbzAAxG9gAMRvcADEb4AAxG+wAMRvwADEcBAAxHGgAMRyMADEclAAxHJwAMRzAADEczAAxHNgAMRzgADEeBAAxHpQAMR8wADEfwAAxH8wAMR/UADEf3AAxH+QAMR/sADEf9AAxH/gAMSAEADEgaAAxIOwAMSD0ADEg/AAxIQQAMSEMADEhFAAxIRwAMSEkADEhLAAxIbAAMSG8ADEhyAAxIdQAMSHgADEh7AAxIfgAMSIEADEiEAAxIhgAMSQEADEkDAAxJBQAMSQcADEkKAAxJCwAMSQwADEkNAAxJDgAMSRAADEkSAAxJEwAMSRQADEkWAAxJFwAMSZIADEmUAAxJlgAMSZgADEmbAAxJnAAMSZ0ADEmeAAxJnwAMSaEADEmjAAxJpAAMSaUADEmnAAxJqAAMSiMADEolAAxKKAAMSioADEotAAxKLgAMSi8ADEowAAxKMQAMSjMADEo1AAxKNgAMSjcADEo5AAxKOgAMSlMADEpUAAxKVQAMSlcADErSAAxK1AAMStYADErYAAxK2wAMStwADErdAAxK3gAMSt8ADErhAAxK4wAMSuQADErlAAxK5wAMSugADEtjAAxLZQAMS2cADEtpAAxLbAAMS20ADEtuAAxLbwAMS3AADEtyAAxLdAAMS3UADEt2AAxLeAAMS3kADEv0AAxL9gAMS/gADEv6AAxL/QAMS/4ADEv/AAxMAAAMTAEADEwDAAxMBQAMTAYADEwHAAxMCQAMTAoADEyFAAxMhwAMTIkADEyLAAxMjgAMTI8ADEyQAAxMkQAMTJIADEyUAAxMlgAMTJcADEyYAAxMmgAMTJsADE0WAAxNGAAMTRoADE0cAAxNHwAMTSAADE0hAAxNIgAMTSMADE0lAAxNJwAMTSgADE0pAAxNKwAMTSwADE11AAxNmQAMTcAADE3kAAxN5wAMTekADE3rAAxN7QAMTe8ADE3xAAxN8gAMTfUADE4OAAxOKwAMTi0ADE4vAAxOMQAMTjMADE41AAxONwAMTjkADE5WAAxOWQAMTlwADE5fAAxOYgAMTmUADE5oAAxOawAMTm0ADE7oAAxO6gAMTuwADE7uAAxO8QAMTvIADE7zAAxO9AAMTvUADE73AAxO+QAMTvoADE77AAxO/QAMTv4ADE95AAxPewAMT30ADE9/AAxPggAMT4MADE+EAAxPhQAMT4YADE+IAAxPigAMT4sADE+MAAxPjgAMT48ADFAKAAxQDAAMUA4ADFAQAAxQEwAMUBQADFAVAAxQFgAMUBcADFAZAAxQGwAMUBwADFAdAAxQHwAMUCAADFCbAAxQnQAMUJ8ADFChAAxQpAAMUKUADFCmAAxQpwAMUKgADFCqAAxQrAAMUK0ADFCuAAxQsAAMULEADFEsAAxRLgAMUTAADFEyAAxRNQAMUTYADFE3AAxROAAMUTkADFE7AAxRPQAMUT4ADFE/AAxRQQAMUUIADFG9AAxRvwAMUcEADFHDAAxRxgAMUccADFHIAAxRyQAMUcoADFHMAAxRzgAMUc8ADFHQAAxR0gAMUdMADFJOAAxSUAAMUlIADFJUAAxSVwAMUlgADFJZAAxSWgAMUlsADFJdAAxSXwAMUmAADFJhAAxSYwAMUmQADFL3AAxTGgAMUzoADFNaAAxTXAAMU14ADFNgAAxTYgAMU2UADFNmAAxTZwAMU2oADFNrAAxTbQAMU24ADFNxAAxTdAAMU3UADFN2AAxTeQAMU3oADFN/AAxTmAAMU6EADFOjAAxTpQAMU64ADFOxAAxTtAAMU7YADFP/AAxUIwAMVEoADFRuAAxUcQAMVHMADFR1AAxUdwAMVHkADFR7AAxUfAAMVH8ADFSYAAxUuQAMVLsADFS9AAxUvwAMVMEADFTDAAxUxQAMVMcADFTJAAxU6gAMVO0ADFTwAAxU8wAMVPYADFT5AAxU/AAMVP8ADFUCAAxVBAAMVX8ADFWBAAxVgwAMVYUADFWIAAxViQAMVYoADFWLAAxVjAAMVY4ADFWQAAxVkQAMVZIADFWUAAxVlQAMVhAADFYSAAxWFAAMVhYADFYZAAxWGgAMVhsADFYcAAxWHQAMVh8ADFYhAAxWIgAMViMADFYlAAxWJgAMVqEADFajAAxWpgAMVqgADFarAAxWrAAMVq0ADFauAAxWrwAMVrEADFazAAxWtAAMVrUADFa3AAxWuAAMVtEADFbSAAxW0wAMVtUADFdQAAxXUgAMV1QADFdWAAxXWQAMV1oADFdbAAxXXAAMV10ADFdfAAxXYQAMV2IADFdjAAxXZQAMV2YADFfhAAxX4wAMV+UADFfnAAxX6gAMV+sADFfsAAxX7QAMV+4ADFfwAAxX8gAMV/MADFf0AAxX9gAMV/cADFhyAAxYdAAMWHYADFh4AAxYewAMWHwADFh9AAxYfgAMWH8ADFiBAAxYgwAMWIQADFiFAAxYhwAMWIgADFkDAAxZBQAMWQcADFkJAAxZDAAMWQ0ADFkOAAxZDwAMWRAADFkSAAxZFAAMWRUADFkWAAxZGAAMWRkADFmUAAxZlgAMWZgADFmaAAxZnQAMWZ4ADFmfAAxZoAAMWaEADFmjAAxZpQAMWaYADFmnAAxZqQAMWaoADFnzAAxaFwAMWj4ADFpiAAxaZQAMWmcADFppAAxaawAMWm0ADFpvAAxacAAMWnMADFqMAAxaqQAMWqsADFqtAAxarwAMWrEADFqzAAxatQAMWrcADFrUAAxa1wAMWtoADFrdAAxa4AAMWuMADFrmAAxa6QAMWusADFtmAAxbaAAMW2oADFtsAAxbbwAMW3AADFtxAAxbcgAMW3MADFt1AAxbdwAMW3gADFt5AAxbewAMW3wADFv3AAxb+QAMW/sADFv9AAxcAAAMXAEADFwCAAxcAwAMXAQADFwGAAxcCAAMXAkADFwKAAxcDAAMXA0ADFyIAAxcigAMXIwADFyOAAxckQAMXJIADFyTAAxclAAMXJUADFyXAAxcmQAMXJoADFybAAxcnQAMXJ4ADF0ZAAxdGwAMXR4ADF0gAAxdIwAMXSQADF0lAAxdJgAMXScADF0pAAxdKwAMXSwADF0tAAxdLwAMXTAADF2rAAxdrQAMXa8ADF2xAAxdtAAMXbUADF22AAxdtwAMXbgADF26AAxdvAAMXb0ADF2+AAxdwAAMXcEADF48AAxePgAMXkAADF5CAAxeRQAMXkYADF5HAAxeSAAMXkkADF5LAAxeTQAMXk4ADF5PAAxeUQAMXlIADF7NAAxezwAMXtIADF7UAAxe1wAMXtgADF7ZAAxe2gAMXtsADF7dAAxe3wAMXuAADF7hAAxe4wAMXuQADF93AAxfmgAMX7oADF/aAAxf3AAMX94ADF/gAAxf4gAMX+UADF/mAAxf5wAMX+oADF/rAAxf7QAMX+4ADF/wAAxf8wAMX/QADF/1AAxf+AAMX/kADF/+AAxgFwAMYCAADGAiAAxgJAAMYC0ADGAwAAxgMwAMYDUADGB+AAxgogAMYMkADGDtAAxg8AAMYPIADGD0AAxg9gAMYPgADGD6AAxg+wAMYP4ADGEXAAxhOAAMYToADGE8AAxhPgAMYUAADGFCAAxhRAAMYUYADGFIAAxhaQAMYWwADGFvAAxhcgAMYXUADGF4AAxhewAMYX4ADGGBAAxhgwAMYf4ADGIAAAxiAgAMYgQADGIHAAxiCAAMYgkADGIKAAxiCwAMYg0ADGIPAAxiEAAMYhEADGITAAxiFAAMYo8ADGKRAAxikwAMYpUADGKYAAximQAMYpoADGKbAAxinAAMYp4ADGKgAAxioQAMYqIADGKkAAxipQAMYyAADGMiAAxjJQAMYycADGMqAAxjKwAMYywADGMtAAxjLgAMYzAADGMyAAxjMwAMYzQADGM2AAxjNwAMY1AADGNRAAxjUgAMY1QADGPPAAxj0QAMY9MADGPVAAxj2AAMY9kADGPaAAxj2wAMY9wADGPeAAxj4AAMY+EADGPiAAxj5AAMY+UADGRgAAxkYgAMZGQADGRmAAxkaQAMZGoADGRrAAxkbAAMZG0ADGRvAAxkcQAMZHIADGRzAAxkdQAMZHYADGTxAAxk8wAMZPUADGT3AAxk+gAMZPsADGT8AAxk/QAMZP4ADGUAAAxlAgAMZQMADGUEAAxlBgAMZQcADGWCAAxlhAAMZYYADGWIAAxliwAMZYwADGWNAAxljgAMZY8ADGWRAAxlkwAMZZQADGWVAAxllwAMZZgADGYTAAxmFQAMZhcADGYZAAxmHAAMZh0ADGYeAAxmHwAMZiAADGYiAAxmJAAMZiUADGYmAAxmKAAMZikADGZyAAxmlgAMZr0ADGbhAAxm5AAMZuYADGboAAxm6gAMZuwADGbuAAxm7wAMZvIADGcLAAxnKAAMZyoADGcsAAxnLgAMZzAADGcyAAxnNAAMZzYADGdTAAxnVgAMZ1kADGdcAAxnXwAMZ2IADGdlAAxnaAAMZ2oADGflAAxn5wAMZ+kADGfrAAxn7gAMZ+8ADGfwAAxn8QAMZ/IADGf0AAxn9gAMZ/cADGf4AAxn+gAMZ/sADGh2AAxoeAAMaHoADGh8AAxofwAMaIAADGiBAAxoggAMaIMADGiFAAxohwAMaIgADGiJAAxoiwAMaIwADGkHAAxpCQAMaQsADGkNAAxpEAAMaREADGkSAAxpEwAMaRQADGkWAAxpGAAMaRkADGkaAAxpHAAMaR0ADGmYAAxpmgAMaZwADGmeAAxpoQAMaaIADGmjAAxppAAMaaUADGmnAAxpqQAMaaoADGmrAAxprQAMaa4ADGopAAxqKwAMai0ADGovAAxqMgAMajMADGo0AAxqNQAMajYADGo4AAxqOgAMajsADGo8AAxqPgAMaj8ADGq6AAxqvAAMar4ADGrAAAxqwwAMasQADGrFAAxqxgAMascADGrJAAxqywAMaswADGrNAAxqzwAMatAADGtLAAxrTQAMa08ADGtRAAxrVAAMa1UADGtWAAxrVwAMa1gADGtaAAxrXAAMa10ADGteAAxrYAAMa2EADGv0AAxsFwAMbDcADGxXAAxsWQAMbFsADGxdAAxsXwAMbGIADGxjAAxsZAAMbGcADGxoAAxsagAMbGsADGxtAAxscAAMbHEADGxyAAxsdQAMbHYADGx7AAxslAAMbJ0ADGyfAAxsoQAMbKoADGytAAxssAAMbLIADGz7AAxtHwAMbUYADG1qAAxtbQAMbW8ADG1xAAxtcwAMbXUADG13AAxteAAMbXsADG2UAAxttQAMbbcADG25AAxtuwAMbb0ADG2/AAxtwQAMbcMADG3FAAxt5gAMbekADG3sAAxt7wAMbfIADG31AAxt+AAMbfsADG3+AAxuAAAMbnsADG59AAxufwAMboEADG6EAAxuhQAMboYADG6HAAxuiAAMbooADG6MAAxujQAMbo4ADG6QAAxukQAMbwwADG8OAAxvEAAMbxIADG8VAAxvFgAMbxcADG8YAAxvGQAMbxsADG8dAAxvHgAMbx8ADG8hAAxvIgAMb50ADG+fAAxvogAMb6QADG+nAAxvqAAMb6kADG+qAAxvqwAMb60ADG+vAAxvsAAMb7EADG+zAAxvtAAMb80ADG/OAAxvzwAMb9EADHBMAAxwTgAMcFAADHBSAAxwVQAMcFYADHBXAAxwWAAMcFkADHBbAAxwXQAMcF4ADHBfAAxwYQAMcGIADHDdAAxw3wAMcOEADHDjAAxw5gAMcOcADHDoAAxw6QAMcOoADHDsAAxw7gAMcO8ADHDwAAxw8gAMcPMADHFuAAxxcAAMcXIADHF0AAxxdwAMcXgADHF5AAxxegAMcXsADHF9AAxxfwAMcYAADHGBAAxxgwAMcYQADHH/AAxyAQAMcgMADHIFAAxyCAAMcgkADHIKAAxyCwAMcgwADHIOAAxyEAAMchEADHISAAxyFAAMchUADHKQAAxykgAMcpQADHKWAAxymQAMcpoADHKbAAxynAAMcp0ADHKfAAxyoQAMcqIADHKjAAxypQAMcqYADHLvAAxzEwAMczoADHNeAAxzYQAMc2MADHNlAAxzZwAMc2kADHNrAAxzbAAMc28ADHOIAAxzpQAMc6cADHOpAAxzqwAMc60ADHOvAAxzsQAMc7MADHPQAAxz0wAMc9YADHPZAAxz3AAMc98ADHPiAAxz5QAMc+cADHRiAAx0ZAAMdGYADHRoAAx0awAMdGwADHRtAAx0bgAMdG8ADHRxAAx0cwAMdHQADHR1AAx0dwAMdHgADHTzAAx09QAMdPcADHT5AAx0/AAMdP0ADHT+AAx0/wAMdQAADHUCAAx1BAAMdQUADHUGAAx1CAAMdQkADHWEAAx1hgAMdYgADHWKAAx1jQAMdY4ADHWPAAx1kAAMdZEADHWTAAx1lQAMdZYADHWXAAx1mQAMdZoADHYVAAx2FwAMdhkADHYbAAx2HgAMdh8ADHYgAAx2IQAMdiIADHYkAAx2JgAMdicADHYoAAx2KgAMdisADHamAAx2qAAMdqoADHasAAx2rwAMdrAADHaxAAx2sgAMdrMADHa1AAx2twAMdrgADHa5AAx2uwAMdrwADHc3AAx3OQAMdzsADHc9AAx3QAAMd0EADHdCAAx3QwAMd0QADHdGAAx3SAAMd0kADHdKAAx3TAAMd00ADHfIAAx3ygAMd8wADHfOAAx30QAMd9IADHfTAAx31AAMd9UADHfXAAx32QAMd9oADHfbAAx33QAMd94ADHhxAAx4lAAMeLQADHjUAAx41gAMeNgADHjaAAx43AAMeN8ADHjgAAx44QAMeOQADHjlAAx45wAMeOgADHjqAAx47QAMeO4ADHjvAAx48gAMePMADHj8AAx5FQAMeR4ADHkgAAx5IgAMeSsADHkuAAx5MQAMeTMADHl8AAx5oAAMeccADHnrAAx57gAMefAADHnyAAx59AAMefYADHn4AAx5+QAMefwADHoVAAx6NgAMejgADHo6AAx6PAAMej4ADHpAAAx6QgAMekQADHpGAAx6ZwAMemoADHptAAx6cAAMenMADHp2AAx6eQAMenwADHp/AAx6gQAMevwADHr+AAx7AAAMewIADHsFAAx7BgAMewcADHsIAAx7CQAMewsADHsNAAx7DgAMew8ADHsRAAx7EgAMe40ADHuPAAx7kQAMe5MADHuWAAx7lwAMe5gADHuZAAx7mgAMe5wADHueAAx7nwAMe6AADHuiAAx7owAMfB4ADHwgAAx8IwAMfCUADHwoAAx8KQAMfCoADHwrAAx8LAAMfC4ADHwwAAx8MQAMfDIADHw0AAx8NQAMfE4ADHxPAAx8UAAMfFIADHzNAAx8zwAMfNEADHzTAAx81gAMfNcADHzYAAx82QAMfNoADHzcAAx83gAMfN8ADHzgAAx84gAMfOMADH1eAAx9YAAMfWIADH1kAAx9ZwAMfWgADH1pAAx9agAMfWsADH1tAAx9bwAMfXAADH1xAAx9cwAMfXQADH3vAAx98QAMffMADH31AAx9+AAMffkADH36AAx9+wAMffwADH3+AAx+AAAMfgEADH4CAAx+BAAMfgUADH6AAAx+ggAMfoQADH6GAAx+iQAMfooADH6LAAx+jAAMfo0ADH6PAAx+kQAMfpIADH6TAAx+lQAMfpYADH8RAAx/EwAMfxUADH8XAAx/GgAMfxsADH8cAAx/HQAMfx4ADH8gAAx/IgAMfyMADH8kAAx/JgAMfycADH9wAAx/lAAMf7sADH/fAAx/4gAMf+QADH/mAAx/6AAMf+oADH/sAAx/7QAMf/AADIAJAAyAJgAMgCgADIAqAAyALAAMgC4ADIAwAAyAMgAMgDQADIBRAAyAVAAMgFcADIBaAAyAXQAMgGAADIBjAAyAZgAMgGgADIDjAAyA5QAMgOcADIDpAAyA7AAMgO0ADIDuAAyA7wAMgPAADIDyAAyA9AAMgPUADID2AAyA+AAMgPkADIF0AAyBdgAMgXgADIF6AAyBfQAMgX4ADIF/AAyBgAAMgYEADIGDAAyBhQAMgYYADIGHAAyBiQAMgYoADIIFAAyCBwAMggkADIILAAyCDgAMgg8ADIIQAAyCEQAMghIADIIUAAyCFgAMghcADIIYAAyCGgAMghsADIKWAAyCmAAMgpoADIKcAAyCnwAMgqAADIKhAAyCogAMgqMADIKlAAyCpwAMgqgADIKpAAyCqwAMgqwADIMnAAyDKQAMgysADIMtAAyDMAAMgzEADIMyAAyDMwAMgzQADIM2AAyDOAAMgzkADIM6AAyDPAAMgz0ADIO4AAyDugAMg7wADIO+AAyDwQAMg8IADIPDAAyDxAAMg8UADIPHAAyDyQAMg8oADIPLAAyDzQAMg84ADIRJAAyESwAMhE0ADIRPAAyEUgAMhFMADIRUAAyEVQAMhFYADIRYAAyEWgAMhFsADIRcAAyEXgAMhF8ADIRwAAyEcQAMhHMADITuAAyE8AAMhPIADIT0AAyE9wAMhPgADIT5AAyE+gAMhPsADIT9AAyE/wAMhQAADIUBAAyFAwAMhQQADIV/AAyFgQAMhYMADIWFAAyFiAAMhYkADIWKAAyFiwAMhYwADIWOAAyFkAAMhZEADIWSAAyFlAAMhZUADIYQAAyGEgAMhhUADIYXAAyGGgAMhhsADIYcAAyGHQAMhh4ADIYgAAyGIgAMhiMADIYkAAyGJgAMhicADIa6AAyG3QAMhv0ADIcdAAyHHwAMhyEADIcjAAyHJQAMhygADIcpAAyHKgAMhy0ADIcuAAyHMAAMhzEADIczAAyHNgAMhzcADIc4AAyHOwAMhzwADIdBAAyHWgAMh2MADIdlAAyHZwAMh3AADIdzAAyHdgAMh3gADIfBAAyH5QAMiAwADIgwAAyIMwAMiDUADIg3AAyIOQAMiDsADIg9AAyIPgAMiEEADIhaAAyIewAMiH0ADIh/AAyIgQAMiIMADIiFAAyIhwAMiIkADIiLAAyIrAAMiK8ADIiyAAyItQAMiLgADIi7AAyIvgAMiMEADIjEAAyIxgAMiUEADIlDAAyJRQAMiUcADIlKAAyJSwAMiUwADIlNAAyJTgAMiVAADIlSAAyJUwAMiVQADIlWAAyJVwAMidIADInUAAyJ1gAMidgADInbAAyJ3AAMid0ADIneAAyJ3wAMieEADInjAAyJ5AAMieUADInnAAyJ6AAMimMADIplAAyKaAAMimoADIptAAyKbgAMim8ADIpwAAyKcQAMinMADIp1AAyKdgAMincADIp5AAyKegAMipMADIqUAAyKlQAMipcADIsSAAyLFAAMixYADIsYAAyLGwAMixwADIsdAAyLHgAMix8ADIshAAyLIwAMiyQADIslAAyLJwAMiygADIujAAyLpQAMi6cADIupAAyLrAAMi60ADIuuAAyLrwAMi7AADIuyAAyLtAAMi7UADIu2AAyLuAAMi7kADIw0AAyMNgAMjDgADIw6AAyMPQAMjD4ADIw/AAyMQAAMjEEADIxDAAyMRQAMjEYADIxHAAyMSQAMjEoADIzFAAyMxwAMjMkADIzLAAyMzgAMjM8ADIzQAAyM0QAMjNIADIzUAAyM1gAMjNcADIzYAAyM2gAMjNsADI1WAAyNWAAMjVoADI1cAAyNXwAMjWAADI1hAAyNYgAMjWMADI1lAAyNZwAMjWgADI1pAAyNawAMjWwADI21AAyN2QAMjgAADI4kAAyOJwAMjikADI4rAAyOLQAMji8ADI4xAAyOMgAMjjUADI5OAAyOawAMjm0ADI5vAAyOcQAMjnMADI51AAyOdwAMjnkADI6WAAyOmQAMjpwADI6fAAyOogAMjqUADI6oAAyOqwAMjq0ADI8oAAyPKgAMjywADI8uAAyPMQAMjzIADI8zAAyPNAAMjzUADI83AAyPOQAMjzoADI87AAyPPQAMjz4ADI+5AAyPuwAMj70ADI+/AAyPwgAMj8MADI/EAAyPxQAMj8YADI/IAAyPygAMj8sADI/MAAyPzgAMj88ADJBKAAyQTAAMkE4ADJBQAAyQUwAMkFQADJBVAAyQVgAMkFcADJBZAAyQWwAMkFwADJBdAAyQXwAMkGAADJDbAAyQ3QAMkOAADJDiAAyQ5QAMkOYADJDnAAyQ6AAMkOkADJDrAAyQ7QAMkO4ADJDvAAyQ8QAMkPIADJFtAAyRbwAMkXEADJFzAAyRdgAMkXcADJF4AAyReQAMkXoADJF8AAyRfgAMkX8ADJGAAAyRggAMkYMADJH+AAySAAAMkgIADJIEAAySBwAMkggADJIJAAySCgAMkgsADJINAAySDwAMkhAADJIRAAySEwAMkhQADJKPAAySkQAMkpMADJKVAAySmAAMkpkADJKaAAySmwAMkpwADJKeAAySoAAMkqEADJKiAAySpAAMkqUADJM4AAyTWwAMk3sADJObAAyTnQAMk58ADJOhAAyTowAMk6YADJOnAAyTqAAMk6sADJOsAAyTrgAMk68ADJOyAAyTtQAMk7YADJO3AAyTugAMk7sADJPAAAyT2QAMk+IADJPkAAyT5gAMk+8ADJPyAAyT9QAMk/cADJRAAAyUZAAMlIsADJSvAAyUsgAMlLQADJS2AAyUuAAMlLoADJS8AAyUvQAMlMAADJTZAAyU+gAMlPwADJT+AAyVAAAMlQIADJUEAAyVBgAMlQgADJUKAAyVKwAMlS4ADJUxAAyVNAAMlTcADJU6AAyVPQAMlUAADJVDAAyVRQAMlcAADJXCAAyVxAAMlcYADJXJAAyVygAMlcsADJXMAAyVzQAMlc8ADJXRAAyV0gAMldMADJXVAAyV1gAMllEADJZTAAyWVQAMllcADJZaAAyWWwAMllwADJZdAAyWXgAMlmAADJZiAAyWYwAMlmQADJZmAAyWZwAMluIADJbkAAyW5wAMlukADJbsAAyW7QAMlu4ADJbvAAyW8AAMlvIADJb0AAyW9QAMlvYADJb4AAyW+QAMlxIADJcTAAyXFAAMlxYADJeRAAyXkwAMl5UADJeXAAyXmgAMl5sADJecAAyXnQAMl54ADJegAAyXogAMl6MADJekAAyXpgAMl6cADJgiAAyYJAAMmCYADJgoAAyYKwAMmCwADJgtAAyYLgAMmC8ADJgxAAyYMwAMmDQADJg1AAyYNwAMmDgADJizAAyYtQAMmLcADJi5AAyYvAAMmL0ADJi+AAyYvwAMmMAADJjCAAyYxAAMmMUADJjGAAyYyAAMmMkADJlEAAyZRgAMmUgADJlKAAyZTQAMmU4ADJlPAAyZUAAMmVEADJlTAAyZVQAMmVYADJlXAAyZWQAMmVoADJnVAAyZ1wAMmdkADJnbAAyZ3gAMmd8ADJngAAyZ4QAMmeIADJnkAAyZ5gAMmecADJnoAAyZ6gAMmesADJo0AAyaWAAMmn8ADJqjAAyapgAMmqgADJqqAAyarAAMmq4ADJqwAAyasQAMmrQADJrNAAya6gAMmuwADJruAAya8AAMmvIADJr0AAya9gAMmvgADJsVAAybGAAMmxsADJseAAybIQAMmyQADJsnAAybKgAMmywADJunAAybqQAMm6sADJutAAybsAAMm7EADJuyAAybswAMm7QADJu2AAybuAAMm7kADJu6AAybvAAMm70ADJw4AAycOgAMnD0ADJw/AAycQgAMnEMADJxEAAycRQAMnEYADJxIAAycSgAMnEsADJxMAAycTgAMnE8ADJzKAAyczAAMnM4ADJzQAAyc0wAMnNQADJzVAAyc1gAMnNcADJzZAAyc2wAMnNwADJzdAAyc3wAMnOAADJ1bAAydXQAMnWAADJ1iAAydZQAMnWYADJ1nAAydaAAMnWkADJ1rAAydbQAMnW4ADJ1vAAydcQAMnXIADJ31AAyeGQAMnj0ADJ5gAAyehwAMnqcADJ7OAAye9QAMnxUADJ85AAyfXQAMn18ADJ9iAAyfZAAMn2YADJ9oAAyfawAMn24ADJ9wAAyfcgAMn3UADJ93AAyfeQAMn3wADJ9/AAyfgAAMn4UADJ+eAAyfowAMn6UADJ+qAAyfrQAMn68ADJ/4AAygHAAMoEMADKBnAAygagAMoGwADKBuAAygcAAMoHIADKB0AAygdQAMoHgADKCRAAygtgAMoLgADKC6AAygvAAMoL4ADKDAAAygwgAMoMQADKDGAAygyAAMoO0ADKDwAAyg8wAMoPYADKD5AAyg/AAMoP8ADKECAAyhBQAMoQgADKEKAAyhhQAMoYcADKGKAAyhjAAMoY8ADKGQAAyhkQAMoZIADKGTAAyhlQAMoZcADKGYAAyhmQAMoZsADKGcAAyhrQAMoa4ADKGwAAyiKwAMoi0ADKIvAAyiMQAMojQADKI1AAyiNgAMojcADKI4AAyiOgAMojwADKI9AAyiPgAMokAADKJBAAyivAAMor4ADKLBAAyiwwAMosYADKLHAAyiyAAMoskADKLKAAyizAAMos4ADKLPAAyi0AAMotIADKLTAAyi5AAMouUADKLnAAyjYgAMo2QADKNmAAyjaAAMo2sADKNsAAyjbQAMo24ADKNvAAyjcQAMo3MADKN0AAyjdQAMo3cADKN4AAyj8wAMo/UADKP4AAyj+gAMo/0ADKP+AAyj/wAMpAAADKQBAAykAwAMpAUADKQGAAykBwAMpAkADKQKAAykGwAMpBwADKQeAAykmQAMpJsADKSdAAyknwAMpKIADKSjAAykpAAMpKUADKSmAAykqAAMpKoADKSrAAykrAAMpK4ADKSvAAylKgAMpSwADKUvAAylMQAMpTQADKU1AAylNgAMpTcADKU4AAylOgAMpTwADKU9AAylPgAMpUAADKVBAAylWgAMpVsADKVcAAylXgAMpdkADKXbAAyl3QAMpd8ADKXiAAyl4wAMpeQADKXlAAyl5gAMpegADKXqAAyl6wAMpewADKXuAAyl7wAMpmoADKZsAAymbwAMpnEADKZ0AAymdQAMpnYADKZ3AAymeAAMpnoADKZ8AAymfQAMpn4ADKaAAAymgQAMppkADKayAAym4wAMpuYADKbpAAym7AAMpu8ADKbyAAym9QAMpvgADKb7AAym/gAMpwEADKcEAAynBwAMpzgADKc7AAynPgAMp0EADKdEAAynRwAMp0oADKdNAAynUAAMp1MADKdWAAynWQAMp1wADKdeAAynZgAMp3kADKeCAAynjgAMp5wADKe4AAynwAAMp9UADKfrAAyn/wAMqJIADKi1AAyo1QAMqPUADKj3AAyo+QAMqPsADKj9AAypAAAMqQEADKkCAAypBQAMqQYADKkIAAypCQAMqQwADKkPAAypEAAMqREADKkUAAypFQAMqRoADKkzAAypPAAMqT4ADKlAAAypSQAMqUwADKlPAAypUQAMqZoADKm+AAyp5QAMqgkADKoMAAyqDgAMqhAADKoSAAyqFAAMqhYADKoXAAyqGgAMqjMADKpUAAyqVgAMqlgADKpaAAyqXAAMql4ADKpgAAyqYgAMqmQADKqFAAyqiAAMqosADKqOAAyqkQAMqpQADKqXAAyqmgAMqp0ADKqfAAyrGgAMqxwADKseAAyrIAAMqyMADKskAAyrJQAMqyYADKsnAAyrKQAMqysADKssAAyrLQAMqy8ADKswAAyrqwAMq60ADKuvAAyrsQAMq7QADKu1AAyrtgAMq7cADKu4AAyrugAMq7wADKu9AAyrvgAMq8AADKvBAAysPAAMrD4ADKxBAAysQwAMrEYADKxHAAysSAAMrEkADKxKAAysTAAMrE4ADKxPAAysUAAMrFIADKxTAAysbAAMrG0ADKxuAAyscAAMrOsADKztAAys7wAMrPEADKz0AAys9QAMrPYADKz3AAys+AAMrPoADKz8AAys/QAMrP4ADK0AAAytAQAMrXwADK1+AAytgAAMrYIADK2FAAythgAMrYcADK2IAAytiQAMrYsADK2NAAytjgAMrY8ADK2RAAytkgAMrg0ADK4PAAyuEQAMrhMADK4WAAyuFwAMrhgADK4ZAAyuGgAMrhwADK4eAAyuHwAMriAADK4iAAyuIwAMrp4ADK6gAAyuogAMrqQADK6nAAyuqAAMrqkADK6qAAyuqwAMrq0ADK6vAAyusAAMrrEADK6zAAyutAAMry8ADK8xAAyvMwAMrzUADK84AAyvOQAMrzoADK87AAyvPAAMrz4ADK9AAAyvQQAMr0IADK9EAAyvRQAMr44ADK+yAAyv2QAMr/0ADLAAAAywAgAMsAQADLAGAAywCAAMsAoADLALAAywDgAMsCcADLBEAAywRgAMsEgADLBKAAywTAAMsE4ADLBQAAywUgAMsG8ADLByAAywdQAMsHgADLB7AAywfgAMsIEADLCEAAywhgAMsQEADLEDAAyxBQAMsQcADLEKAAyxCwAMsQwADLENAAyxDgAMsRAADLESAAyxEwAMsRQADLEWAAyxFwAMsZIADLGUAAyxlgAMsZgADLGbAAyxnAAMsZ0ADLGeAAyxnwAMsaEADLGjAAyxpAAMsaUADLGnAAyxqAAMsiMADLIlAAyyJwAMsikADLIsAAyyLQAMsi4ADLIvAAyyMAAMsjIADLI0AAyyNQAMsjYADLI4AAyyOQAMsrQADLK2AAyyuAAMsroADLK9AAyyvgAMsr8ADLLAAAyywQAMssMADLLFAAyyxgAMsscADLLJAAyyygAMs0UADLNHAAyzSQAMs0sADLNOAAyzTwAMs1AADLNRAAyzUgAMs1QADLNWAAyzVwAMs1gADLNaAAyzWwAMs9YADLPYAAyz2gAMs9wADLPfAAyz4AAMs+EADLPiAAyz4wAMs+UADLPnAAyz6AAMs+kADLPrAAyz7AAMtGcADLRpAAy0bAAMtG4ADLRxAAy0cgAMtHMADLR0AAy0dQAMtHcADLR5AAy0egAMtHsADLR9AAy0fgAMtREADLU0AAy1VAAMtXQADLV2AAy1eAAMtXoADLV8AAy1fgAMtX8ADLWAAAy1gwAMtYQADLWGAAy1hwAMtYoADLWMAAy1jQAMtY4ADLWRAAy1kgAMtZcADLWwAAy1uQAMtbsADLW9AAy1xgAMtckADLXMAAy1zgAMthcADLY7AAy2YgAMtoYADLaJAAy2iwAMto0ADLaPAAy2kQAMtpMADLaUAAy2lwAMtrAADLbRAAy20wAMttUADLbXAAy22QAMttsADLbdAAy23wAMtuEADLcCAAy3BQAMtwgADLcLAAy3DgAMtxEADLcUAAy3FwAMtxoADLccAAy3lwAMt5kADLebAAy3nQAMt6AADLehAAy3ogAMt6MADLekAAy3pgAMt6gADLepAAy3qgAMt6wADLetAAy4KAAMuCoADLgsAAy4LgAMuDEADLgyAAy4MwAMuDQADLg1AAy4NwAMuDkADLg6AAy4OwAMuD0ADLg+AAy4uQAMuLsADLi+AAy4wAAMuMMADLjEAAy4xQAMuMYADLjHAAy4yQAMuMsADLjMAAy4zQAMuM8ADLjQAAy46QAMuOoADLjrAAy47QAMuWgADLlqAAy5bAAMuW4ADLlxAAy5cgAMuXMADLl0AAy5dQAMuXcADLl5AAy5egAMuXsADLl9AAy5fgAMufkADLn7AAy5/QAMuf8ADLoCAAy6AwAMugQADLoFAAy6BgAMuggADLoKAAy6CwAMugwADLoOAAy6DwAMuooADLqMAAy6jgAMupAADLqTAAy6lAAMupUADLqWAAy6lwAMupkADLqbAAy6nAAMup0ADLqfAAy6oAAMuxsADLsdAAy7HwAMuyEADLskAAy7JQAMuyYADLsnAAy7KAAMuyoADLssAAy7LQAMuy4ADLswAAy7MQAMu6wADLuuAAy7sAAMu7IADLu1AAy7tgAMu7cADLu4AAy7uQAMu7sADLu9AAy7vgAMu78ADLvBAAy7wgAMvAsADLwvAAy8VgAMvHoADLx9AAy8fwAMvIEADLyDAAy8hQAMvIcADLyIAAy8iwAMvKQADLzBAAy8wwAMvMUADLzHAAy8yQAMvMsADLzNAAy8zwAMvOwADLzvAAy88gAMvPUADLz4AAy8+wAMvP4ADL0BAAy9AwAMvX4ADL2AAAy9ggAMvYQADL2HAAy9iAAMvYkADL2KAAy9iwAMvY0ADL2PAAy9kAAMvZEADL2TAAy9lAAMvg8ADL4RAAy+FAAMvhYADL4ZAAy+GgAMvhsADL4cAAy+HQAMvh8ADL4hAAy+IgAMviMADL4lAAy+JgAMvqEADL6jAAy+pQAMvqcADL6qAAy+qwAMvqwADL6tAAy+rgAMvrAADL6yAAy+swAMvrQADL62AAy+twAMvzIADL80AAy/NwAMvzkADL88AAy/PQAMvz4ADL8/AAy/QAAMv0IADL9EAAy/RQAMv0YADL9IAAy/SQAMv8QADL/GAAy/yAAMv8oADL/NAAy/zgAMv88ADL/QAAy/0QAMv9MADL/VAAy/1gAMv9cADL/ZAAy/2gAMwFUADMBXAAzAWQAMwFsADMBeAAzAXwAMwGAADMBhAAzAYgAMwGQADMBmAAzAZwAMwGgADMBqAAzAawAMwOYADMDoAAzA6wAMwO0ADMDwAAzA8QAMwPIADMDzAAzA9AAMwPYADMD4AAzA+QAMwPoADMD8AAzA/QAMwZAADMGzAAzB0wAMwfMADMH1AAzB9wAMwfkADMH7AAzB/gAMwf8ADMIAAAzCAwAMwgQADMIGAAzCBwAMwgkADMIMAAzCDQAMwg4ADMIRAAzCEgAMwhcADMIwAAzCOQAMwjsADMI9AAzCRgAMwkkADMJMAAzCTgAMwpcADMK7AAzC4gAMwwYADMMJAAzDCwAMww0ADMMPAAzDEQAMwxMADMMUAAzDFwAMwzAADMNRAAzDUwAMw1UADMNXAAzDWQAMw1sADMNdAAzDXwAMw2EADMOCAAzDhQAMw4gADMOLAAzDjgAMw5EADMOUAAzDlwAMw5oADMOcAAzEFwAMxBkADMQbAAzEHQAMxCAADMQhAAzEIgAMxCMADMQkAAzEJgAMxCgADMQpAAzEKgAMxCwADMQtAAzEqAAMxKoADMSsAAzErgAMxLEADMSyAAzEswAMxLQADMS1AAzEtwAMxLkADMS6AAzEuwAMxL0ADMS+AAzFOQAMxTsADMU+AAzFQAAMxUMADMVEAAzFRQAMxUYADMVHAAzFSQAMxUsADMVMAAzFTQAMxU8ADMVQAAzFaQAMxWoADMVrAAzFbQAMxegADMXqAAzF7AAMxe4ADMXxAAzF8gAMxfMADMX0AAzF9QAMxfcADMX5AAzF+gAMxfsADMX9AAzF/gAMxnkADMZ7AAzGfQAMxn8ADMaCAAzGgwAMxoQADMaFAAzGhgAMxogADMaKAAzGiwAMxowADMaOAAzGjwAMxwoADMcMAAzHDgAMxxAADMcTAAzHFAAMxxUADMcWAAzHFwAMxxkADMcbAAzHHAAMxx0ADMcfAAzHIAAMx5sADMedAAzHnwAMx6EADMekAAzHpQAMx6YADMenAAzHqAAMx6oADMesAAzHrQAMx64ADMewAAzHsQAMyCwADMguAAzIMAAMyDIADMg1AAzINgAMyDcADMg4AAzIOQAMyDsADMg9AAzIPgAMyD8ADMhBAAzIQgAMyIsADMivAAzI1gAMyPoADMj9AAzI/wAMyQEADMkDAAzJBQAMyQcADMkIAAzJCwAMySQADMlBAAzJQwAMyUUADMlHAAzJSQAMyUsADMlNAAzJTwAMyWwADMlvAAzJcgAMyXUADMl4AAzJewAMyX4ADMmBAAzJgwAMyf4ADMoAAAzKAgAMygQADMoHAAzKCAAMygkADMoKAAzKCwAMyg0ADMoPAAzKEAAMyhEADMoTAAzKFAAMyo8ADMqRAAzKkwAMypUADMqYAAzKmQAMypoADMqbAAzKnAAMyp4ADMqgAAzKoQAMyqIADMqkAAzKpQAMyyAADMsiAAzLJAAMyyYADMspAAzLKgAMyysADMssAAzLLQAMyy8ADMsxAAzLMgAMyzMADMs1AAzLNgAMy7EADMuzAAzLtQAMy7cADMu6AAzLuwAMy7wADMu9AAzLvgAMy8AADMvCAAzLwwAMy8QADMvGAAzLxwAMzEIADMxEAAzMRgAMzEgADMxLAAzMTAAMzE0ADMxOAAzMTwAMzFEADMxTAAzMVAAMzFUADMxXAAzMWAAMzNMADMzVAAzM1wAMzNkADMzcAAzM3QAMzN4ADMzfAAzM4AAMzOIADMzkAAzM5QAMzOYADMzoAAzM6QAMzWQADM1mAAzNaAAMzWoADM1tAAzNbgAMzW8ADM1wAAzNcQAMzXMADM11AAzNdgAMzXcADM15AAzNegAMzg0ADM4wAAzOUAAMznAADM5yAAzOdAAMznYADM54AAzOewAMznwADM59AAzOgAAMzoEADM6DAAzOhAAMzoYADM6JAAzOigAMzosADM6OAAzOjwAMzpQADM6tAAzOtgAMzrgADM66AAzOwwAMzsYADM7JAAzOywAMzxQADM84AAzPXwAMz4MADM+GAAzPiAAMz4oADM+MAAzPjgAMz5AADM+RAAzPlAAMz60ADM/OAAzP0AAMz9IADM/UAAzP1gAMz9gADM/aAAzP3AAMz94ADM//AAzQAgAM0AUADNAIAAzQCwAM0A4ADNARAAzQFAAM0BcADNAZAAzQlAAM0JYADNCYAAzQmgAM0J0ADNCeAAzQnwAM0KAADNChAAzQowAM0KUADNCmAAzQpwAM0KkADNCqAAzRJQAM0ScADNEpAAzRKwAM0S4ADNEvAAzRMAAM0TEADNEyAAzRNAAM0TYADNE3AAzROAAM0ToADNE7AAzRtgAM0bgADNG7AAzRvQAM0cAADNHBAAzRwgAM0cMADNHEAAzRxgAM0cgADNHJAAzRygAM0cwADNHNAAzR5gAM0ecADNHoAAzR6gAM0mUADNJnAAzSaQAM0msADNJuAAzSbwAM0nAADNJxAAzScgAM0nQADNJ2AAzSdwAM0ngADNJ6AAzSewAM0vYADNL4AAzS+gAM0vwADNL/AAzTAAAM0wEADNMCAAzTAwAM0wUADNMHAAzTCAAM0wkADNMLAAzTDAAM04cADNOJAAzTiwAM040ADNOQAAzTkQAM05IADNOTAAzTlAAM05YADNOYAAzTmQAM05oADNOcAAzTnQAM1BgADNQaAAzUHAAM1B4ADNQhAAzUIgAM1CMADNQkAAzUJQAM1CcADNQpAAzUKgAM1CsADNQtAAzULgAM1KkADNSrAAzUrQAM1K8ADNSyAAzUswAM1LQADNS1AAzUtgAM1LgADNS6AAzUuwAM1LwADNS+AAzUvwAM1QgADNUsAAzVUwAM1XcADNV6AAzVfAAM1X4ADNWAAAzVggAM1YQADNWFAAzViAAM1aEADNW+AAzVwAAM1cIADNXEAAzVxgAM1cgADNXKAAzVzAAM1ekADNXsAAzV7wAM1fIADNX1AAzV+AAM1fsADNX+AAzWAAAM1nsADNZ9AAzWfwAM1oEADNaEAAzWhQAM1oYADNaHAAzWiAAM1ooADNaMAAzWjQAM1o4ADNaQAAzWkQAM1wwADNcOAAzXEAAM1xIADNcVAAzXFgAM1xcADNcYAAzXGQAM1xsADNcdAAzXHgAM1x8ADNchAAzXIgAM150ADNefAAzXoQAM16MADNemAAzXpwAM16gADNepAAzXqgAM16wADNeuAAzXrwAM17AADNeyAAzXswAM2C4ADNgwAAzYMwAM2DUADNg4AAzYOQAM2DoADNg7AAzYPAAM2D4ADNhAAAzYQQAM2EIADNhEAAzYRQAM2MAADNjCAAzYxAAM2MYADNjJAAzYygAM2MsADNjMAAzYzQAM2M8ADNjRAAzY0gAM2NMADNjVAAzY1gAM2VEADNlTAAzZVQAM2VcADNlaAAzZWwAM2VwADNldAAzZXgAM2WAADNliAAzZYwAM2WQADNlmAAzZZwAM2eIADNnkAAzZ5gAM2egADNnrAAzZ7AAM2e0ADNnuAAzZ7wAM2fEADNnzAAzZ9AAM2fUADNn3AAzZ+AAM2osADNquAAzazgAM2u4ADNrwAAza8gAM2vQADNr2AAza+QAM2voADNr7AAza/gAM2v8ADNsBAAzbAgAM2wQADNsHAAzbCAAM2wkADNsMAAzbDQAM2xIADNsrAAzbNAAM2zYADNs4AAzbQQAM20QADNtHAAzbSQAM25IADNu2AAzb3QAM3AEADNwEAAzcBgAM3AgADNwKAAzcDAAM3A4ADNwPAAzcEgAM3CsADNxMAAzcTgAM3FAADNxSAAzcVAAM3FYADNxYAAzcWgAM3FwADNx9AAzcgAAM3IMADNyGAAzciQAM3IwADNyPAAzckgAM3JUADNyXAAzdEgAM3RQADN0WAAzdGAAM3RsADN0cAAzdHQAM3R4ADN0fAAzdIQAM3SMADN0kAAzdJQAM3ScADN0oAAzdowAM3aUADN2nAAzdqQAM3awADN2tAAzdrgAM3a8ADN2wAAzdsgAM3bQADN21AAzdtgAM3bgADN25AAzeNAAM3jYADN45AAzeOwAM3j4ADN4/AAzeQAAM3kEADN5CAAzeRAAM3kYADN5HAAzeSAAM3koADN5LAAzeZAAM3mUADN5mAAzeaAAM3uMADN7lAAze5wAM3ukADN7sAAze7QAM3u4ADN7vAAze8AAM3vIADN70AAze9QAM3vYADN74AAze+QAM33QADN92AAzfeAAM33oADN99AAzffgAM338ADN+AAAzfgQAM34MADN+FAAzfhgAM34cADN+JAAzfigAM4AUADOAHAAzgCQAM4AsADOAOAAzgDwAM4BAADOARAAzgEgAM4BQADOAWAAzgFwAM4BgADOAaAAzgGwAM4JYADOCYAAzgmgAM4JwADOCfAAzgoAAM4KEADOCiAAzgowAM4KUADOCnAAzgqAAM4KkADOCrAAzgrAAM4ScADOEpAAzhKwAM4S0ADOEwAAzhMQAM4TIADOEzAAzhNAAM4TYADOE4AAzhOQAM4ToADOE8AAzhPQAM4YYADOGqAAzh0QAM4fUADOH4AAzh+gAM4fwADOH+AAziAAAM4gIADOIDAAziBgAM4h8ADOI8AAziPgAM4kAADOJCAAziRAAM4kYADOJIAAziSgAM4mcADOJqAAzibQAM4nAADOJzAAzidgAM4nkADOJ8AAzifgAM4vkADOL7AAzi/QAM4v8ADOMCAAzjAwAM4wQADOMFAAzjBgAM4wgADOMKAAzjCwAM4wwADOMOAAzjDwAM44oADOOMAAzjjgAM45AADOOTAAzjlAAM45UADOOWAAzjlwAM45kADOObAAzjnAAM450ADOOfAAzjoAAM5BsADOQdAAzkHwAM5CEADOQkAAzkJQAM5CYADOQnAAzkKAAM5CoADOQsAAzkLQAM5C4ADOQwAAzkMQAM5KwADOSuAAzksQAM5LMADOS2AAzktwAM5LgADOS5AAzkugAM5LwADOS+AAzkvwAM5MAADOTCAAzkwwAM5T4ADOVAAAzlQgAM5UQADOVHAAzlSAAM5UkADOVKAAzlSwAM5U0ADOVPAAzlUAAM5VEADOVTAAzlVAAM5c8ADOXRAAzl0wAM5dUADOXYAAzl2QAM5doADOXbAAzl3AAM5d4ADOXgAAzl4QAM5eIADOXkAAzl5QAM5mAADOZiAAzmZAAM5mYADOZpAAzmagAM5msADOZsAAzmbQAM5m8ADOZxAAzmcgAM5nMADOZ1AAzmdgAM5wkADOcsAAznTAAM52wADOduAAzncAAM53IADOd0AAzndwAM53gADOd5AAznfAAM530ADOd/AAzngAAM54IADOeFAAznhgAM54cADOeKAAzniwAM55AADOepAAznsgAM57QADOe2AAznvwAM58IADOfFAAznxwAM6BAADOg0AAzoWwAM6H8ADOiCAAzohAAM6IYADOiIAAzoigAM6IwADOiNAAzokAAM6KkADOjKAAzozAAM6M4ADOjQAAzo0gAM6NQADOjWAAzo2AAM6NoADOj7AAzo/gAM6QEADOkEAAzpBwAM6QoADOkNAAzpEAAM6RMADOkVAAzpkAAM6ZIADOmUAAzplgAM6ZkADOmaAAzpmwAM6ZwADOmdAAzpnwAM6aEADOmiAAzpowAM6aUADOmmAAzqIQAM6iMADOolAAzqJwAM6ioADOorAAzqLAAM6i0ADOouAAzqMAAM6jIADOozAAzqNAAM6jYADOo3AAzqsgAM6rQADOq3AAzquQAM6rwADOq9AAzqvgAM6r8ADOrAAAzqwgAM6sQADOrFAAzqxgAM6sgADOrJAAzq4gAM6uMADOrkAAzq5gAM62EADOtjAAzrZQAM62cADOtqAAzrawAM62wADOttAAzrbgAM63AADOtyAAzrcwAM63QADOt2AAzrdwAM6/IADOv0AAzr9gAM6/gADOv7AAzr/AAM6/0ADOv+AAzr/wAM7AEADOwDAAzsBAAM7AUADOwHAAzsCAAM7IMADOyFAAzshwAM7IkADOyMAAzsjQAM7I4ADOyPAAzskAAM7JIADOyUAAzslQAM7JYADOyYAAzsmQAM7RQADO0WAAztGAAM7RoADO0dAAztHgAM7R8ADO0gAAztIQAM7SMADO0lAAztJgAM7ScADO0pAAztKgAM7aUADO2nAAztqQAM7asADO2uAAztrwAM7bAADO2xAAztsgAM7bQADO22AAzttwAM7bgADO26AAztuwAM7gQADO4oAAzuTwAM7nMADO52AAzueAAM7noADO58AAzufgAM7oAADO6BAAzuhAAM7p0ADO66AAzuvAAM7r4ADO7AAAzuwgAM7sQADO7GAAzuyAAM7uUADO7oAAzu6wAM7u4ADO7xAAzu9AAM7vcADO76AAzu/AAM73cADO95AAzvewAM730ADO+AAAzvgQAM74IADO+DAAzvhAAM74YADO+IAAzviQAM74oADO+MAAzvjQAM8AgADPAKAAzwDAAM8A4ADPARAAzwEgAM8BMADPAUAAzwFQAM8BcADPAZAAzwGgAM8BsADPAdAAzwHgAM8JkADPCbAAzwnQAM8J8ADPCiAAzwowAM8KQADPClAAzwpgAM8KgADPCqAAzwqwAM8KwADPCuAAzwrwAM8SoADPEsAAzxLwAM8TEADPE0AAzxNQAM8TYADPE3AAzxOAAM8ToADPE8AAzxPQAM8T4ADPFAAAzxQQAM8bwADPG+AAzxwAAM8cIADPHFAAzxxgAM8ccADPHIAAzxyQAM8csADPHNAAzxzgAM8c8ADPHRAAzx0gAM8k0ADPJPAAzyUQAM8lMADPJWAAzyVwAM8lgADPJZAAzyWgAM8lwADPJeAAzyXwAM8mAADPJiAAzyYwAM8t4ADPLgAAzy4gAM8uQADPLnAAzy6AAM8ukADPLqAAzy6wAM8u0ADPLvAAzy8AAM8vEADPLzAAzy9AAM84cADPOqAAzzygAM8+oADPPsAAzz7gAM8/AADPPyAAzz9QAM8/YADPP3AAzz+gAM8/sADPP9AAzz/gAM9AAADPQDAAz0BAAM9AUADPQIAAz0CQAM9A4ADPQnAAz0MAAM9DIADPQ0AAz0PQAM9EAADPRDAAz0RQAM9I4ADPSyAAz02QAM9P0ADPUAAAz1AgAM9QQADPUGAAz1CAAM9QoADPULAAz1DgAM9ScADPVIAAz1SgAM9UwADPVOAAz1UAAM9VIADPVUAAz1VgAM9VgADPV5AAz1fAAM9X8ADPWCAAz1hQAM9YgADPWLAAz1jgAM9ZEADPWTAAz2DgAM9hAADPYSAAz2FAAM9hcADPYYAAz2GQAM9hoADPYbAAz2HQAM9h8ADPYgAAz2IQAM9iMADPYkAAz2nwAM9qEADPajAAz2pQAM9qgADPapAAz2qgAM9qsADPasAAz2rgAM9rAADPaxAAz2sgAM9rQADPa1AAz3MAAM9zIADPc1AAz3NwAM9zoADPc7AAz3PAAM9z0ADPc+AAz3QAAM90IADPdDAAz3RAAM90YADPdHAAz3YAAM92EADPdiAAz3ZAAM998ADPfhAAz34wAM9+UADPfoAAz36QAM9+oADPfrAAz37AAM9+4ADPfwAAz38QAM9/IADPf0AAz39QAM+HAADPhyAAz4dAAM+HYADPh5AAz4egAM+HsADPh8AAz4fQAM+H8ADPiBAAz4ggAM+IMADPiFAAz4hgAM+QEADPkDAAz5BQAM+QcADPkKAAz5CwAM+QwADPkNAAz5DgAM+RAADPkSAAz5EwAM+RQADPkWAAz5FwAM+ZIADPmUAAz5lgAM+ZgADPmbAAz5nAAM+Z0ADPmeAAz5nwAM+aEADPmjAAz5pAAM+aUADPmnAAz5qAAM+iMADPolAAz6JwAM+ikADPosAAz6LQAM+i4ADPovAAz6MAAM+jIADPo0AAz6NQAM+jYADPo4AAz6OQAM+oIADPqmAAz6zQAM+vEADPr0AAz69gAM+vgADPr6AAz6/AAM+v4ADPr/AAz7AgAM+xsADPs4AAz7OgAM+zwADPs+AAz7QAAM+0IADPtEAAz7RgAM+2MADPtmAAz7aQAM+2wADPtvAAz7cgAM+3UADPt4AAz7egAM+/UADPv3AAz7+gAM+/wADPv/AAz8AAAM/AEADPwCAAz8AwAM/AUADPwHAAz8CAAM/AkADPwLAAz8DAAM/IcADPyJAAz8iwAM/I0ADPyQAAz8kQAM/JIADPyTAAz8lAAM/JYADPyYAAz8mQAM/JoADPycAAz8nQAM/RgADP0aAAz9HAAM/R4ADP0hAAz9IgAM/SMADP0kAAz9JQAM/ScADP0pAAz9KgAM/SsADP0tAAz9LgAM/akADP2rAAz9rgAM/bAADP2zAAz9tAAM/bUADP22AAz9twAM/bkADP27AAz9vAAM/b0ADP2/AAz9wAAM/jsADP49AAz+PwAM/kEADP5EAAz+RQAM/kYADP5HAAz+SAAM/koADP5MAAz+TQAM/k4ADP5QAAz+UQAM/swADP7OAAz+0AAM/tIADP7VAAz+1gAM/tcADP7YAAz+2QAM/tsADP7dAAz+3gAM/t8ADP7hAAz+4gAM/10ADP9fAAz/YQAM/2MADP9mAAz/ZwAM/2gADP9pAAz/agAM/2wADP9uAAz/bwAM/3AADP9yAAz/cwANAAYADQApAA0ASQANAGkADQBrAA0AbQANAG8ADQBxAA0AdAANAHUADQB2AA0AeQANAHoADQB8AA0AfQANAIAADQCDAA0AhAANAIUADQCIAA0AiQANAI4ADQCnAA0AsAANALIADQC0AA0AvQANAMAADQDDAA0AxQANAQ4ADQEyAA0BWQANAX0ADQGAAA0BggANAYQADQGGAA0BiAANAYoADQGLAA0BjgANAacADQHIAA0BygANAcwADQHOAA0B0AANAdIADQHUAA0B1gANAdgADQH5AA0B/AANAf8ADQICAA0CBQANAggADQILAA0CDgANAhEADQITAA0CjgANApAADQKSAA0ClAANApcADQKYAA0CmQANApoADQKbAA0CnQANAp8ADQKgAA0CoQANAqMADQKkAA0DHwANAyEADQMjAA0DJQANAygADQMpAA0DKgANAysADQMsAA0DLgANAzAADQMxAA0DMgANAzQADQM1AA0DsAANA7IADQO1AA0DtwANA7oADQO7AA0DvAANA70ADQO+AA0DwAANA8IADQPDAA0DxAANA8YADQPHAA0D4AANA+EADQPiAA0D5AANBF8ADQRhAA0EYwANBGUADQRoAA0EaQANBGoADQRrAA0EbAANBG4ADQRwAA0EcQANBHIADQR0AA0EdQANBPAADQTyAA0E9AANBPYADQT5AA0E+gANBPsADQT8AA0E/QANBP8ADQUBAA0FAgANBQMADQUFAA0FBgANBYEADQWDAA0FhQANBYcADQWKAA0FiwANBYwADQWNAA0FjgANBZAADQWSAA0FkwANBZQADQWWAA0FlwANBhIADQYUAA0GFgANBhgADQYbAA0GHAANBh0ADQYeAA0GHwANBiEADQYjAA0GJAANBiUADQYnAA0GKAANBqMADQalAA0GpwANBqkADQasAA0GrQANBq4ADQavAA0GsAANBrIADQa0AA0GtQANBrYADQa4AA0GuQANBwIADQcmAA0HTQANB3EADQd0AA0HdgANB3gADQd6AA0HfAANB34ADQd/AA0HggANB5sADQe4AA0HugANB7wADQe+AA0HwAANB8IADQfEAA0HxgANB+MADQfmAA0H6QANB+wADQfvAA0H8gANB/UADQf4AA0H+gANCHUADQh3AA0IeQANCHsADQh+AA0IfwANCIAADQiBAA0IggANCIQADQiGAA0IhwANCIgADQiKAA0IiwANCQYADQkIAA0JCgANCQwADQkPAA0JEAANCREADQkSAA0JEwANCRUADQkXAA0JGAANCRkADQkbAA0JHAANCZcADQmZAA0JmwANCZ0ADQmgAA0JoQANCaIADQmjAA0JpAANCaYADQmoAA0JqQANCaoADQmsAA0JrQANCigADQoqAA0KLQANCi8ADQoyAA0KMwANCjQADQo1AA0KNgANCjgADQo6AA0KOwANCjwADQo+AA0KPwANCroADQq8AA0KvgANCsAADQrDAA0KxAANCsUADQrGAA0KxwANCskADQrLAA0KzAANCs0ADQrPAA0K0AANC0sADQtNAA0LTwANC1EADQtUAA0LVQANC1YADQtXAA0LWAANC1oADQtcAA0LXQANC14ADQtgAA0LYQANC9wADQveAA0L4QANC+MADQvmAA0L5wANC+gADQvpAA0L6gANC+wADQvuAA0L7wANC/AADQvyAA0L8wANDIYADQypAA0MyQANDOkADQzrAA0M7QANDO8ADQzxAA0M9AANDPUADQz2AA0M+QANDPoADQz8AA0M/QANDP8ADQ0CAA0NAwANDQQADQ0HAA0NCAANDREADQ0qAA0NMwANDTUADQ03AA0NQAANDUMADQ1GAA0NSAANDZEADQ21AA0N3AANDgAADQ4DAA0OBQANDgcADQ4JAA0OCwANDg0ADQ4OAA0OEQANDioADQ5LAA0OTQANDk8ADQ5RAA0OUwANDlUADQ5XAA0OWQANDlsADQ58AA0OfwANDoIADQ6FAA0OiAANDosADQ6OAA0OkQANDpQADQ6WAA0PEQANDxMADQ8VAA0PFwANDxoADQ8bAA0PHAANDx0ADQ8eAA0PIAANDyIADQ8jAA0PJAANDyYADQ8nAA0PogAND6QADQ+mAA0PqAAND6sADQ+sAA0PrQAND64ADQ+vAA0PsQAND7MADQ+0AA0PtQAND7cADQ+4AA0QMwANEDUADRA4AA0QOgANED0ADRA+AA0QPwANEEAADRBBAA0QQwANEEUADRBGAA0QRwANEEkADRBKAA0QYwANEGQADRBlAA0QZwANEOIADRDkAA0Q5gANEOgADRDrAA0Q7AANEO0ADRDuAA0Q7wANEPEADRDzAA0Q9AANEPUADRD3AA0Q+AANEXMADRF1AA0RdwANEXkADRF8AA0RfQANEX4ADRF/AA0RgAANEYIADRGEAA0RhQANEYYADRGIAA0RiQANEgQADRIGAA0SCAANEgoADRINAA0SDgANEg8ADRIQAA0SEQANEhMADRIVAA0SFgANEhcADRIZAA0SGgANEpUADRKXAA0SmQANEpsADRKeAA0SnwANEqAADRKhAA0SogANEqQADRKmAA0SpwANEqgADRKqAA0SqwANEyYADRMoAA0TKgANEywADRMvAA0TMAANEzEADRMyAA0TMwANEzUADRM3AA0TOAANEzkADRM7AA0TPAANE4UADROpAA0T0AANE/QADRP3AA0T+QANE/sADRP9AA0T/wANFAEADRQCAA0UBQANFB4ADRQ7AA0UPQANFD8ADRRBAA0UQwANFEUADRRHAA0USQANFGYADRRpAA0UbAANFG8ADRRyAA0UdQANFHgADRR7AA0UfQANFPgADRT6AA0U/AANFP4ADRUBAA0VAgANFQMADRUEAA0VBQANFQcADRUJAA0VCgANFQsADRUNAA0VDgANFYkADRWLAA0VjQANFY8ADRWSAA0VkwANFZQADRWVAA0VlgANFZgADRWaAA0VmwANFZwADRWeAA0VnwANFhoADRYcAA0WHgANFiAADRYjAA0WJAANFiUADRYmAA0WJwANFikADRYrAA0WLAANFi0ADRYvAA0WMAANFqsADRatAA0WsAANFrIADRa1AA0WtgANFrcADRa4AA0WuQANFrsADRa9AA0WvgANFr8ADRbBAA0WwgANFz0ADRc/AA0XQQANF0MADRdGAA0XRwANF0gADRdJAA0XSgANF0wADRdOAA0XTwANF1AADRdSAA0XUwANF84ADRfQAA0X0gANF9QADRfXAA0X2AANF9kADRfaAA0X2wANF90ADRffAA0X4AANF+EADRfjAA0X5AANGF8ADRhhAA0YYwANGGUADRhoAA0YaQANGGoADRhrAA0YbAANGG4ADRhwAA0YcQANGHIADRh0AA0YdQANGQgADRkrAA0ZSwANGWsADRltAA0ZbwANGXEADRlzAA0ZdgANGXcADRl4AA0ZewANGXwADRl+AA0ZfwANGYEADRmEAA0ZhQANGYYADRmJAA0ZigANGY8ADRmoAA0ZsQANGbMADRm1AA0ZvgANGcEADRnEAA0ZxgANGg8ADRozAA0aWgANGn4ADRqBAA0agwANGoUADRqHAA0aiQANGosADRqMAA0ajwANGqgADRrJAA0aywANGs0ADRrPAA0a0QANGtMADRrVAA0a1wANGtkADRr6AA0a/QANGwAADRsDAA0bBgANGwkADRsMAA0bDwANGxIADRsUAA0bjwANG5EADRuTAA0blQANG5gADRuZAA0bmgANG5sADRucAA0bngANG6AADRuhAA0bogANG6QADRulAA0cIAANHCIADRwkAA0cJgANHCkADRwqAA0cKwANHCwADRwtAA0cLwANHDEADRwyAA0cMwANHDUADRw2AA0csQANHLMADRy2AA0cuAANHLsADRy8AA0cvQANHL4ADRy/AA0cwQANHMMADRzEAA0cxQANHMcADRzIAA0c4QANHOIADRzjAA0c5QANHWAADR1iAA0dZAANHWYADR1pAA0dagANHWsADR1sAA0dbQANHW8ADR1xAA0dcgANHXMADR11AA0ddgANHfEADR3zAA0d9QANHfcADR36AA0d+wANHfwADR39AA0d/gANHgAADR4CAA0eAwANHgQADR4GAA0eBwANHoIADR6EAA0ehgANHogADR6LAA0ejAANHo0ADR6OAA0ejwANHpEADR6TAA0elAANHpUADR6XAA0emAANHxMADR8VAA0fFwANHxkADR8cAA0fHQANHx4ADR8fAA0fIAANHyIADR8kAA0fJQANHyYADR8oAA0fKQANH6QADR+mAA0fqAANH6oADR+tAA0frgANH68ADR+wAA0fsQANH7MADR+1AA0ftgANH7cADR+5AA0fugANIAMADSAnAA0gTgANIHIADSB1AA0gdwANIHkADSB7AA0gfQANIH8ADSCAAA0ggwANIJwADSC5AA0guwANIL0ADSC/AA0gwQANIMMADSDFAA0gxwANIOQADSDnAA0g6gANIO0ADSDwAA0g8wANIPYADSD5AA0g+wANIXYADSF4AA0hegANIXwADSF/AA0hgAANIYEADSGCAA0hgwANIYUADSGHAA0hiAANIYkADSGLAA0hjAANIgcADSIJAA0iCwANIg0ADSIQAA0iEQANIhIADSITAA0iFAANIhYADSIYAA0iGQANIhoADSIcAA0iHQANIpgADSKaAA0inAANIp4ADSKhAA0iogANIqMADSKkAA0ipQANIqcADSKpAA0iqgANIqsADSKtAA0irgANIykADSMrAA0jLQANIy8ADSMyAA0jMwANIzQADSM1AA0jNgANIzgADSM6AA0jOwANIzwADSM+AA0jPwANI7oADSO8AA0jvgANI8AADSPDAA0jxAANI8UADSPGAA0jxwANI8kADSPLAA0jzAANI80ADSPPAA0j0AANJEsADSRNAA0kTwANJFEADSRUAA0kVQANJFYADSRXAA0kWAANJFoADSRcAA0kXQANJF4ADSRgAA0kYQANJNwADSTeAA0k4AANJOIADSTlAA0k5gANJOcADSToAA0k6QANJOsADSTtAA0k7gANJO8ADSTxAA0k8gANJYUADSWoAA0lyAANJegADSXqAA0l7AANJe4ADSXwAA0l8wANJfQADSX1AA0l+AANJfkADSX7AA0l/AANJf4ADSYBAA0mAgANJgMADSYGAA0mBwANJhAADSYpAA0mMgANJjQADSY2AA0mPwANJkIADSZFAA0mRwANJpAADSa0AA0m2wANJv8ADScCAA0nBAANJwYADScIAA0nCgANJwwADScNAA0nEAANJykADSdKAA0nTAANJ04ADSdQAA0nUgANJ1QADSdWAA0nWAANJ1oADSd7AA0nfgANJ4EADSeEAA0nhwANJ4oADSeNAA0nkAANJ5MADSeVAA0oEAANKBIADSgUAA0oFgANKBkADSgaAA0oGwANKBwADSgdAA0oHwANKCEADSgiAA0oIwANKCUADSgmAA0ooQANKKMADSilAA0opwANKKoADSirAA0orAANKK0ADSiuAA0osAANKLIADSizAA0otAANKLYADSi3AA0pMgANKTQADSk3AA0pOQANKTwADSk9AA0pPgANKT8ADSlAAA0pQgANKUQADSlFAA0pRgANKUgADSlJAA0pYgANKWMADSlkAA0pZgANKeEADSnjAA0p5QANKecADSnqAA0p6wANKewADSntAA0p7gANKfAADSnyAA0p8wANKfQADSn2AA0p9wANKnIADSp0AA0qdgANKngADSp7AA0qfAANKn0ADSp+AA0qfwANKoEADSqDAA0qhAANKoUADSqHAA0qiAANKwMADSsFAA0rBwANKwkADSsMAA0rDQANKw4ADSsPAA0rEAANKxIADSsUAA0rFQANKxYADSsYAA0rGQANK5QADSuWAA0rmAANK5oADSudAA0rngANK58ADSugAA0roQANK6MADSulAA0rpgANK6cADSupAA0rqgANLCUADSwnAA0sKQANLCsADSwuAA0sLwANLDAADSwxAA0sMgANLDQADSw2AA0sNwANLDgADSw6AA0sOwANLIQADSyoAA0szwANLPMADSz2AA0s+AANLPoADSz8AA0s/gANLQAADS0BAA0tBAANLR0ADS06AA0tPAANLT4ADS1AAA0tQgANLUQADS1GAA0tSAANLWUADS1oAA0tawANLW4ADS1xAA0tdAANLXcADS16AA0tfAANLfcADS35AA0t+wANLf0ADS4AAA0uAQANLgIADS4DAA0uBAANLgYADS4IAA0uCQANLgoADS4MAA0uDQANLogADS6KAA0ujAANLo4ADS6RAA0ukgANLpMADS6UAA0ulQANLpcADS6ZAA0umgANLpsADS6dAA0ungANLxkADS8bAA0vHQANLx8ADS8iAA0vIwANLyQADS8lAA0vJgANLygADS8qAA0vKwANLywADS8uAA0vLwANL6oADS+sAA0vrwANL7EADS+0AA0vtQANL7YADS+3AA0vuAANL7oADS+8AA0vvQANL74ADS/AAA0vwQANMDwADTA+AA0wQAANMEIADTBFAA0wRgANMEcADTBIAA0wSQANMEsADTBNAA0wTgANME8ADTBRAA0wUgANMM0ADTDPAA0w0QANMNMADTDWAA0w1wANMNgADTDZAA0w2gANMNwADTDeAA0w3wANMOAADTDiAA0w4wANMV4ADTFgAA0xYgANMWQADTFnAA0xaAANMWkADTFqAA0xawANMW0ADTFvAA0xcAANMXEADTFzAA0xdAANMgcADTIqAA0ySgANMmoADTJsAA0ybgANMnAADTJyAA0ydQANMnYADTJ3AA0yegANMnsADTJ9AA0yfgANMoAADTKDAA0yhAANMoUADTKIAA0yiQANMo4ADTKnAA0ysAANMrIADTK0AA0yvQANMsAADTLDAA0yxQANMw4ADTMyAA0zWQANM30ADTOAAA0zggANM4QADTOGAA0ziAANM4oADTOLAA0zjgANM6cADTPIAA0zygANM8wADTPOAA0z0AANM9IADTPUAA0z1gANM9gADTP5AA0z/AANM/8ADTQCAA00BQANNAgADTQLAA00DgANNBEADTQTAA00jgANNJAADTSSAA00lAANNJcADTSYAA00mQANNJoADTSbAA00nQANNJ8ADTSgAA00oQANNKMADTSkAA01HwANNSEADTUjAA01JQANNSgADTUpAA01KgANNSsADTUsAA01LgANNTAADTUxAA01MgANNTQADTU1AA01sAANNbIADTW1AA01twANNboADTW7AA01vAANNb0ADTW+AA01wAANNcIADTXDAA01xAANNcYADTXHAA014AANNeEADTXiAA015AANNl8ADTZhAA02YwANNmUADTZoAA02aQANNmoADTZrAA02bAANNm4ADTZwAA02cQANNnIADTZ0AA02dQANNvAADTbyAA029AANNvYADTb5AA02+gANNvsADTb8AA02/QANNv8ADTcBAA03AgANNwMADTcFAA03BgANN4EADTeDAA03hQANN4cADTeKAA03iwANN4wADTeNAA03jgANN5AADTeSAA03kwANN5QADTeWAA03lwANOBIADTgUAA04FgANOBgADTgbAA04HAANOB0ADTgeAA04HwANOCEADTgjAA04JAANOCUADTgnAA04KAANOKMADTilAA04pwANOKkADTisAA04rQANOK4ADTivAA04sAANOLIADTi0AA04tQANOLYADTi4AA04uQANOQIADTkmAA05TQANOXEADTl0AA05dgANOXgADTl6AA05fAANOX4ADTl/AA05ggANOZsADTm4AA05ugANObwADTm+AA05wAANOcIADTnEAA05xgANOeMADTnmAA056QANOewADTnvAA058gANOfUADTn4AA05+gANOnUADTp3AA06eQANOnsADTp+AA06fwANOoAADTqBAA06ggANOoQADTqGAA06hwANOogADTqKAA06iwANOwYADTsIAA07CgANOwwADTsPAA07EAANOxEADTsSAA07EwANOxUADTsXAA07GAANOxkADTsbAA07HAANO5cADTuZAA07mwANO50ADTugAA07oQANO6IADTujAA07pAANO6YADTuoAA07qQANO6oADTusAA07rQANPCgADTwqAA08LQANPC8ADTwyAA08MwANPDQADTw1AA08NgANPDgADTw6AA08OwANPDwADTw+AA08PwANPLoADTy8AA08vgANPMAADTzDAA08xAANPMUADTzGAA08xwANPMkADTzLAA08zAANPM0ADTzPAA080AANPUsADT1NAA09TwANPVEADT1UAA09VQANPVYADT1XAA09WAANPVoADT1cAA09XQANPV4ADT1gAA09YQANPdwADT3eAA094AANPeIADT3lAA095gANPecADT3oAA096QANPesADT3tAA097gANPe8ADT3xAA098gANPoUADT6oAA0+yAANPugADT7qAA0+7AANPu4ADT7wAA0+8wANPvQADT71AA0++AANPvkADT77AA0+/AANPv4ADT8BAA0/AgANPwMADT8GAA0/BwANPxAADT8pAA0/MgANPzQADT82AA0/PwANP0IADT9FAA0/RwANP5AADT+0AA0/2wANP/8ADUACAA1ABAANQAYADUAIAA1ACgANQAwADUANAA1AEAANQCkADUBKAA1ATAANQE4ADUBQAA1AUgANQFQADUBWAA1AWAANQFoADUB7AA1AfgANQIEADUCEAA1AhwANQIoADUCNAA1AkAANQJMADUCVAA1BEAANQRIADUEUAA1BFgANQRkADUEaAA1BGwANQRwADUEdAA1BHwANQSEADUEiAA1BIwANQSUADUEmAA1BoQANQaMADUGlAA1BpwANQaoADUGrAA1BrAANQa0ADUGuAA1BsAANQbIADUGzAA1BtAANQbYADUG3AA1CMgANQjQADUI3AA1COQANQjwADUI9AA1CPgANQj8ADUJAAA1CQgANQkQADUJFAA1CRgANQkgADUJJAA1CYgANQmMADUJkAA1CZgANQuEADULjAA1C5QANQucADULqAA1C6wANQuwADULtAA1C7gANQvAADULyAA1C8wANQvQADUL2AA1C9wANQ3IADUN0AA1DdgANQ3gADUN7AA1DfAANQ30ADUN+AA1DfwANQ4EADUODAA1DhAANQ4UADUOHAA1DiAANRAMADUQFAA1EBwANRAkADUQMAA1EDQANRA4ADUQPAA1EEAANRBIADUQUAA1EFQANRBYADUQYAA1EGQANRJQADUSWAA1EmAANRJoADUSdAA1EngANRJ8ADUSgAA1EoQANRKMADUSlAA1EpgANRKcADUSpAA1EqgANRSUADUUnAA1FKQANRSsADUUuAA1FLwANRTAADUUxAA1FMgANRTQADUU2AA1FNwANRTgADUU6AA1FOwANRYQADUWoAA1FzwANRfMADUX2AA1F+AANRfoADUX8AA1F/gANRgAADUYBAA1GBAANRh0ADUY6AA1GPAANRj4ADUZAAA1GQgANRkQADUZGAA1GSAANRmUADUZoAA1GawANRm4ADUZxAA1GdAANRncADUZ6AA1GfAANRvcADUb5AA1G+wANRv0ADUcAAA1HAQANRwIADUcDAA1HBAANRwYADUcIAA1HCQANRwoADUcMAA1HDQANR4gADUeKAA1HjAANR44ADUeRAA1HkgANR5MADUeUAA1HlQANR5cADUeZAA1HmgANR5sADUedAA1HngANSBkADUgbAA1IHQANSB8ADUgiAA1IIwANSCQADUglAA1IJgANSCgADUgqAA1IKwANSCwADUguAA1ILwANSKoADUisAA1IrwANSLEADUi0AA1ItQANSLYADUi3AA1IuAANSLoADUi8AA1IvQANSL4ADUjAAA1IwQANSMQADUk/AA1JQQANSUMADUlFAA1JSAANSUkADUlKAA1JSwANSUwADUlOAA1JUAANSVEADUlSAA1JVAANSVUADUnQAA1J0gANSdQADUnWAA1J2QANSdoADUnbAA1J3AANSd0ADUnfAA1J4QANSeIADUnjAA1J5QANSeYADUphAA1KYwANSmUADUpnAA1KagANSmsADUpsAA1KbQANSm4ADUpwAA1KcgANSnMADUp0AA1KdgANSncADUqIAA1KiQANSosADUsGAA1LCAANSwoADUsMAA1LDwANSxAADUsRAA1LEgANSxMADUsVAA1LFwANSxgADUsZAA1LGwANSxwADUuXAA1LmQANS5sADUudAA1LoAANS6EADUuiAA1LowANS6QADUumAA1LqAANS6kADUuqAA1LrAANS60ADUwoAA1MKgANTC0ADUwvAA1MMgANTDMADUw0AA1MNQANTDYADUw4AA1MOgANTDsADUw8AA1MPgANTD8ADUzSAA1M9QANTRUADU01AA1NNwANTTkADU07AA1NPQANTUAADU1BAA1NQgANTUUADU1GAA1NSAANTUkADU1LAA1NTgANTU8ADU1QAA1NUwANTVQADU1ZAA1NcgANTXsADU19AA1NfwANTYgADU2LAA1NjgANTZAADU3ZAA1N/QANTiQADU5IAA1OSwANTk0ADU5PAA1OUQANTlMADU5VAA1OVgANTlkADU5yAA1OkwANTpUADU6XAA1OmQANTpsADU6dAA1OnwANTqEADU6jAA1OxAANTscADU7KAA1OzQANTtAADU7TAA1O1gANTtkADU7cAA1O3gANT1kADU9bAA1PXQANT18ADU9iAA1PYwANT2QADU9lAA1PZgANT2gADU9qAA1PawANT2wADU9uAA1PbwANT+oADU/sAA1P7gANT/AADU/zAA1P9AANT/UADU/2AA1P9wANT/kADU/7AA1P/AANT/0ADU//AA1QAAANUHsADVB9AA1QgAANUIIADVCFAA1QhgANUIcADVCIAA1QiQANUIsADVCNAA1QjgANUI8ADVCRAA1QkgANUKsADVCsAA1QrQANUK8ADVEqAA1RLAANUS4ADVEwAA1RMwANUTQADVE1AA1RNgANUTcADVE5AA1ROwANUTwADVE9AA1RPwANUUAADVG7AA1RvQANUb8ADVHBAA1RxAANUcUADVHGAA1RxwANUcgADVHKAA1RzAANUc0ADVHOAA1R0AANUdEADVJMAA1STgANUlAADVJSAA1SVQANUlYADVJXAA1SWAANUlkADVJbAA1SXQANUl4ADVJfAA1SYQANUmIADVLdAA1S3wANUuEADVLjAA1S5gANUucADVLoAA1S6QANUuoADVLsAA1S7gANUu8ADVLwAA1S8gANUvMADVNuAA1TcAANU3IADVN0AA1TdwANU3gADVN5AA1TegANU3sADVN9AA1TfwANU4AADVOBAA1TgwANU4QADVPNAA1T8QANVBgADVQ8AA1UPwANVEEADVRDAA1URQANVEcADVRJAA1USgANVE0ADVRmAA1UgwANVIUADVSHAA1UiQANVIsADVSNAA1UjwANVJEADVSuAA1UsQANVLQADVS3AA1UugANVL0ADVTAAA1UwwANVMUADVVAAA1VQgANVUQADVVGAA1VSQANVUoADVVLAA1VTAANVU0ADVVPAA1VUQANVVIADVVTAA1VVQANVVYADVXRAA1V0wANVdUADVXXAA1V2gANVdsADVXcAA1V3QANVd4ADVXgAA1V4gANVeMADVXkAA1V5gANVecADVZiAA1WZAANVmYADVZoAA1WawANVmwADVZtAA1WbgANVm8ADVZxAA1WcwANVnQADVZ1AA1WdwANVngADVbzAA1W9QANVvgADVb6AA1W/QANVv4ADVb/AA1XAAANVwEADVcDAA1XBQANVwYADVcHAA1XCQANVwoADVeFAA1XhwANV4kADVeLAA1XjgANV48ADVeQAA1XkQANV5IADVeUAA1XlgANV5cADVeYAA1XmgANV5sADVgWAA1YGAANWBoADVgcAA1YHwANWCAADVghAA1YIgANWCMADVglAA1YJwANWCgADVgpAA1YKwANWCwADVinAA1YqQANWKsADVitAA1YsAANWLEADViyAA1YswANWLQADVi2AA1YuAANWLkADVi6AA1YvAANWL0ADVlQAA1ZcwANWZMADVmzAA1ZtQANWbcADVm5AA1ZuwANWb4ADVm/AA1ZwAANWcMADVnEAA1ZxgANWccADVnKAA1ZzQANWc4ADVnPAA1Z0gANWdMADVnYAA1Z8QANWfoADVn8AA1Z/gANWgcADVoKAA1aDQANWg8ADVpYAA1afAANWqMADVrHAA1aygANWswADVrOAA1a0AANWtIADVrUAA1a1QANWtgADVrxAA1bEgANWxQADVsWAA1bGAANWxoADVscAA1bHgANWyAADVsiAA1bQwANW0YADVtJAA1bTAANW08ADVtSAA1bVQANW1gADVtbAA1bXQANW9gADVvaAA1b3AANW94ADVvhAA1b4gANW+MADVvkAA1b5QANW+cADVvpAA1b6gANW+sADVvtAA1b7gANXGkADVxrAA1cbQANXG8ADVxyAA1ccwANXHQADVx1AA1cdgANXHgADVx6AA1cewANXHwADVx+AA1cfwANXPoADVz8AA1c/wANXQEADV0EAA1dBQANXQYADV0HAA1dCAANXQoADV0MAA1dDQANXQ4ADV0QAA1dEQANXSoADV0rAA1dLAANXS4ADV2pAA1dqwANXa0ADV2vAA1dsgANXbMADV20AA1dtQANXbYADV24AA1dugANXbsADV28AA1dvgANXb8ADV46AA1ePAANXj4ADV5AAA1eQwANXkQADV5FAA1eRgANXkcADV5JAA1eSwANXkwADV5NAA1eTwANXlAADV7LAA1ezQANXs8ADV7RAA1e1AANXtUADV7WAA1e1wANXtgADV7aAA1e3AANXt0ADV7eAA1e4AANXuEADV9cAA1fXgANX2AADV9iAA1fZQANX2YADV9nAA1faAANX2kADV9rAA1fbQANX24ADV9vAA1fcQANX3IADV/tAA1f7wANX/EADV/zAA1f9gANX/cADV/4AA1f+QANX/oADV/8AA1f/gANX/8ADWAAAA1gAgANYAMADWBMAA1gcAANYJcADWC7AA1gvgANYMAADWDCAA1gxAANYMYADWDIAA1gyQANYMwADWDlAA1hAgANYQQADWEGAA1hCAANYQoADWEMAA1hDgANYRAADWEtAA1hMAANYTMADWE2AA1hOQANYTwADWE/AA1hQgANYUQADWG/AA1hwQANYcMADWHFAA1hyAANYckADWHKAA1hywANYcwADWHOAA1h0AANYdEADWHSAA1h1AANYdUADWJQAA1iUgANYlQADWJWAA1iWQANYloADWJbAA1iXAANYl0ADWJfAA1iYQANYmIADWJjAA1iZQANYmYADWLhAA1i4wANYuUADWLnAA1i6gANYusADWLsAA1i7QANYu4ADWLwAA1i8gANYvMADWL0AA1i9gANYvcADWNyAA1jdAANY3cADWN5AA1jfAANY30ADWN+AA1jfwANY4AADWOCAA1jhAANY4UADWOGAA1jiAANY4kADWQEAA1kBgANZAgADWQKAA1kDQANZA4ADWQPAA1kEAANZBEADWQTAA1kFQANZBYADWQXAA1kGQANZBoADWSVAA1klwANZJkADWSbAA1kngANZJ8ADWSgAA1koQANZKIADWSkAA1kpgANZKcADWSoAA1kqgANZKsADWUmAA1lKAANZSsADWUtAA1lMAANZTEADWUyAA1lMwANZTQADWU2AA1lOAANZTkADWU6AA1lPAANZT0ADWXQAA1l8wANZhMADWYzAA1mNQANZjcADWY5AA1mOwANZj4ADWY/AA1mQAANZkMADWZEAA1mRgANZkcADWZKAA1mTQANZk4ADWZPAA1mUgANZlMADWZYAA1mcQANZnoADWZ8AA1mfgANZocADWaKAA1mjQANZo8ADWbYAA1m/AANZyMADWdHAA1nSgANZ0wADWdOAA1nUAANZ1IADWdUAA1nVQANZ1gADWdxAA1nkgANZ5QADWeWAA1nmAANZ5oADWecAA1nngANZ6AADWeiAA1nwwANZ8YADWfJAA1nzAANZ88ADWfSAA1n1QANZ9gADWfbAA1n3QANaFgADWhaAA1oXAANaF4ADWhhAA1oYgANaGMADWhkAA1oZQANaGcADWhpAA1oagANaGsADWhtAA1obgANaOkADWjrAA1o7QANaO8ADWjyAA1o8wANaPQADWj1AA1o9gANaPgADWj6AA1o+wANaPwADWj+AA1o/wANaXoADWl8AA1pfwANaYEADWmEAA1phQANaYYADWmHAA1piAANaYoADWmMAA1pjQANaY4ADWmQAA1pkQANaaoADWmrAA1prAANaa4ADWopAA1qKwANai0ADWovAA1qMgANajMADWo0AA1qNQANajYADWo4AA1qOgANajsADWo8AA1qPgANaj8ADWq6AA1qvAANar4ADWrAAA1qwwANasQADWrFAA1qxgANascADWrJAA1qywANaswADWrNAA1qzwANatAADWtLAA1rTQANa08ADWtRAA1rVAANa1UADWtWAA1rVwANa1gADWtaAA1rXAANa10ADWteAA1rYAANa2EADWvcAA1r3gANa+AADWviAA1r5QANa+YADWvnAA1r6AANa+kADWvrAA1r7QANa+4ADWvvAA1r8QANa/IADWxtAA1sbwANbHEADWxzAA1sdgANbHcADWx4AA1seQANbHoADWx8AA1sfgANbH8ADWyAAA1sggANbIMADWzMAA1s8AANbRcADW07AA1tPgANbUAADW1CAA1tRAANbUYADW1IAA1tSQANbUwADW1lAA1tggANbYQADW2GAA1tiAANbYoADW2MAA1tjgANbZAADW2tAA1tsAANbbMADW22AA1tuQANbbwADW2/AA1twgANbcQADW4/AA1uQQANbkMADW5FAA1uSAANbkkADW5KAA1uSwANbkwADW5OAA1uUAANblEADW5SAA1uVAANblUADW7QAA1u0gANbtUADW7XAA1u2gANbtsADW7cAA1u3QANbt4ADW7gAA1u4gANbuMADW7kAA1u5gANbucADW9iAA1vZAANb2YADW9oAA1vawANb2wADW9tAA1vbgANb28ADW9xAA1vcwANb3QADW91AA1vdwANb3gADW/zAA1v9QANb/gADW/6AA1v/QANb/4ADW//AA1wAAANcAEADXADAA1wBQANcAYADXAHAA1wCQANcAoADXCFAA1whwANcIkADXCLAA1wjgANcI8ADXCQAA1wkQANcJIADXCUAA1wlgANcJcADXCYAA1wmgANcJsADXEWAA1xGAANcRoADXEcAA1xHwANcSAADXEhAA1xIgANcSMADXElAA1xJwANcSgADXEpAA1xKwANcSwADXGnAA1xqQANcawADXGuAA1xsQANcbIADXGzAA1xtAANcbUADXG3AA1xuQANcboADXG7AA1xvQANcb4ADXJRAA1ydAANcpQADXK0AA1ytgANcrgADXK6AA1yvAANcr8ADXLAAA1ywQANcsQADXLFAA1yxwANcsgADXLKAA1yzQANcs4ADXLPAA1y0gANctMADXLcAA1y9QANcv4ADXMAAA1zAgANcwsADXMOAA1zEQANcxMADXNcAA1zgAANc6cADXPLAA1zzgANc9AADXPSAA1z1AANc9YADXPYAA1z2QANc9wADXP1AA10FgANdBgADXQaAA10HAANdB4ADXQgAA10IgANdCQADXQmAA10RwANdEoADXRNAA10UAANdFMADXRWAA10WQANdFwADXRfAA10YQANdNwADXTeAA104AANdOIADXTlAA105gANdOcADXToAA106QANdOsADXTtAA107gANdO8ADXTxAA108gANdW0ADXVvAA11cQANdXMADXV2AA11dwANdXgADXV5AA11egANdXwADXV+AA11fwANdYAADXWCAA11gwANdf4ADXYAAA12AwANdgUADXYIAA12CQANdgoADXYLAA12DAANdg4ADXYQAA12EQANdhIADXYUAA12FQANdi4ADXYvAA12MAANdjIADXatAA12rwANdrEADXazAA12tgANdrcADXa4AA12uQANdroADXa8AA12vgANdr8ADXbAAA12wgANdsMADXc+AA13QAANd0IADXdEAA13RwANd0gADXdJAA13SgANd0sADXdNAA13TwANd1AADXdRAA13UwANd1QADXfPAA130QANd9MADXfVAA132AANd9kADXfaAA132wANd9wADXfeAA134AANd+EADXfiAA135AANd+UADXhgAA14YgANeGQADXhmAA14aQANeGoADXhrAA14bAANeG0ADXhvAA14cQANeHIADXhzAA14dQANeHYADXjxAA148wANePUADXj3AA14+gANePsADXj8AA14/QANeP4ADXkAAA15AgANeQMADXkEAA15BgANeQcADXlQAA15dAANeZsADXm/AA15wgANecQADXnGAA15yAANecoADXnMAA15zQANedAADXnpAA16BgANeggADXoKAA16DAANeg4ADXoQAA16EgANehQADXoxAA16NAANejcADXo6AA16PQANekAADXpDAA16RgANekgADXrDAA16xQANescADXrJAA16zAANes0ADXrOAA16zwANetAADXrSAA161AANetUADXrWAA162AANetkADXtUAA17VgANe1gADXtaAA17XQANe14ADXtfAA17YAANe2EADXtjAA17ZQANe2YADXtnAA17aQANe2oADXvlAA175wANe+oADXvsAA177wANe/AADXvxAA178gANe/MADXv1AA179wANe/gADXv5AA17+wANe/wADXx3AA18eQANfHwADXx+AA18gQANfIIADXyDAA18hAANfIUADXyHAA18iQANfIoADXyLAA18jQANfI4ADX0JAA19CwANfQ0ADX0PAA19EgANfRMADX0UAA19FQANfRYADX0YAA19GgANfRsADX0cAA19HgANfR8ADX2aAA19nAANfZ4ADX2gAA19owANfaQADX2lAA19pgANfacADX2pAA19qwANfawADX2tAA19rwANfbAADX4rAA1+LQANfi8ADX4xAA1+NAANfjUADX42AA1+NwANfjgADX46AA1+PAANfj0ADX4+AA1+QAANfkEADX7UAA1+9wANfxcADX83AA1/OQANfzsADX89AA1/PwANf0IADX9DAA1/RAANf0cADX9IAA1/SgANf0sADX9OAA1/UQANf1IADX9TAA1/VgANf1cADX9gAA1/eQANf4IADX+EAA1/hgANf48ADX+SAA1/lQANf5cADX/gAA2ABAANgCsADYBPAA2AUgANgFQADYBWAA2AWAANgFoADYBcAA2AXQANgGAADYB5AA2AmgANgJwADYCeAA2AoAANgKIADYCkAA2ApgANgKgADYCqAA2AywANgM4ADYDRAA2A1AANgNcADYDaAA2A3QANgOAADYDjAA2A5QANgWAADYFiAA2BZAANgWYADYFpAA2BagANgWsADYFsAA2BbQANgW8ADYFxAA2BcgANgXMADYF1AA2BdgANgfEADYHzAA2B9QANgfcADYH6AA2B+wANgfwADYH9AA2B/gANggAADYICAA2CAwANggQADYIGAA2CBwANgoIADYKEAA2ChwANgokADYKMAA2CjQANgo4ADYKPAA2CkAANgpIADYKUAA2ClQANgpYADYKYAA2CmQANgrIADYKzAA2CtAANgrYADYMxAA2DMwANgzUADYM3AA2DOgANgzsADYM8AA2DPQANgz4ADYNAAA2DQgANg0MADYNEAA2DRgANg0cADYPCAA2DxAANg8YADYPIAA2DywANg8wADYPNAA2DzgANg88ADYPRAA2D0wANg9QADYPVAA2D1wANg9gADYRTAA2EVQANhFcADYRZAA2EXAANhF0ADYReAA2EXwANhGAADYRiAA2EZAANhGUADYRmAA2EaAANhGkADYTkAA2E5gANhOgADYTqAA2E7QANhO4ADYTvAA2E8AANhPEADYTzAA2E9QANhPYADYT3AA2E+QANhPoADYV1AA2FdwANhXkADYV7AA2FfgANhX8ADYWAAA2FgQANhYIADYWEAA2FhgANhYcADYWIAA2FigANhYsADYXUAA2F+AANhh8ADYZDAA2GRgANhkgADYZKAA2GTAANhk4ADYZQAA2GUQANhlQADYZtAA2GigANhowADYaOAA2GkAANhpIADYaUAA2GlgANhpgADYa1AA2GuAANhrsADYa+AA2GwQANhsQADYbHAA2GygANhswADYdHAA2HSQANh0sADYdNAA2HUAANh1EADYdSAA2HUwANh1QADYdWAA2HWAANh1kADYdaAA2HXAANh10ADYfYAA2H2gANh9wADYfeAA2H4QANh+IADYfjAA2H5AANh+UADYfnAA2H6QANh+oADYfrAA2H7QANh+4ADYhpAA2IawANiG0ADYhvAA2IcgANiHMADYh0AA2IdQANiHYADYh4AA2IegANiHsADYh8AA2IfgANiH8ADYj6AA2I/AANiP8ADYkBAA2JBAANiQUADYkGAA2JBwANiQgADYkKAA2JDAANiQ0ADYkOAA2JEAANiREADYmMAA2JjgANiZAADYmSAA2JlQANiZYADYmXAA2JmAANiZkADYmbAA2JnQANiZ4ADYmfAA2JoQANiaIADYodAA2KHwANiiEADYojAA2KJgANiicADYooAA2KKQANiioADYosAA2KLgANii8ADYowAA2KMgANijMADYquAA2KsAANirMADYq1AA2KuAANirkADYq6AA2KuwANirwADYq+AA2KwAANisEADYrCAA2KxAANisUADYtYAA2LewANi5sADYu7AA2LvQANi78ADYvBAA2LwwANi8YADYvHAA2LyAANi8sADYvMAA2LzgANi88ADYvSAA2L1QANi9YADYvXAA2L2gANi9sADYvgAA2L+QANjAIADYwEAA2MBgANjA8ADYwSAA2MFQANjBcADYxgAA2MhAANjKsADYzPAA2M0gANjNQADYzWAA2M2AANjNoADYzcAA2M3QANjOAADYz5AA2NGgANjRwADY0eAA2NIAANjSIADY0kAA2NJgANjSgADY0qAA2NSwANjU4ADY1RAA2NVAANjVcADY1aAA2NXQANjWAADY1jAA2NZQANjeAADY3iAA2N5AANjeYADY3pAA2N6gANjesADY3sAA2N7QANje8ADY3xAA2N8gANjfMADY31AA2N9gANjnEADY5zAA2OdQANjncADY56AA2OewANjnwADY59AA2OfgANjoAADY6CAA2OgwANjoQADY6GAA2OhwANjwIADY8EAA2PBwANjwkADY8MAA2PDQANjw4ADY8PAA2PEAANjxIADY8UAA2PFQANjxYADY8YAA2PGQANjzIADY8zAA2PNAANjzYADY+xAA2PswANj7UADY+3AA2PugANj7sADY+8AA2PvQANj74ADY/AAA2PwgANj8MADY/EAA2PxgANj8cADZBCAA2QRAANkEYADZBIAA2QSwANkEwADZBNAA2QTgANkE8ADZBRAA2QUwANkFQADZBVAA2QVwANkFgADZDTAA2Q1QANkNcADZDZAA2Q3AANkN0ADZDeAA2Q3wANkOAADZDiAA2Q5AANkOUADZDmAA2Q6AANkOkADZFkAA2RZgANkWgADZFqAA2RbQANkW4ADZFvAA2RcAANkXEADZFzAA2RdQANkXYADZF3AA2ReQANkXoADZH1AA2R9wANkfkADZH7AA2R/gANkf8ADZIAAA2SAQANkgIADZIEAA2SBgANkgcADZIIAA2SCgANkgsADZJUAA2SeAANkp8ADZLDAA2SxgANksgADZLKAA2SzAANks4ADZLQAA2S0QANktQADZLtAA2TCgANkwwADZMOAA2TEAANkxIADZMUAA2TFgANkxgADZM1AA2TOAANkzsADZM+AA2TQQANk0QADZNHAA2TSgANk0wADZPHAA2TyQANk8sADZPNAA2T0AANk9EADZPSAA2T0wANk9QADZPWAA2T2AANk9kADZPaAA2T3AANk90ADZRYAA2UWgANlFwADZReAA2UYQANlGIADZRjAA2UZAANlGUADZRnAA2UaQANlGoADZRrAA2UbQANlG4ADZTpAA2U6wANlO0ADZTvAA2U8gANlPMADZT0AA2U9QANlPYADZT4AA2U+gANlPsADZT8AA2U/gANlP8ADZV6AA2VfAANlX8ADZWBAA2VhAANlYUADZWGAA2VhwANlYgADZWKAA2VjAANlY0ADZWOAA2VkAANlZEADZYMAA2WDgANlhAADZYSAA2WFQANlhYADZYXAA2WGAANlhkADZYbAA2WHQANlh4ADZYfAA2WIQANliIADZadAA2WnwANlqEADZajAA2WpgANlqcADZaoAA2WqQANlqoADZasAA2WrgANlq8ADZawAA2WsgANlrMADZcuAA2XMAANlzMADZc1AA2XOAANlzkADZc6AA2XOwANlzwADZc+AA2XQAANl0EADZdCAA2XRAANl0UADZfYAA2X+wANmBsADZg7AA2YPQANmD8ADZhBAA2YQwANmEYADZhHAA2YSAANmEsADZhMAA2YTgANmE8ADZhRAA2YVAANmFUADZhWAA2YWQANmFoADZhfAA2YeAANmIEADZiDAA2YhQANmI4ADZiRAA2YlAANmJYADZjfAA2ZAwANmSoADZlOAA2ZUQANmVMADZlVAA2ZVwANmVkADZlbAA2ZXAANmV8ADZl4AA2ZmQANmZsADZmdAA2ZnwANmaEADZmjAA2ZpQANmacADZmpAA2ZygANmc0ADZnQAA2Z0wANmdYADZnZAA2Z3AANmd8ADZniAA2Z5AANml8ADZphAA2aYwANmmUADZpoAA2aaQANmmoADZprAA2abAANmm4ADZpwAA2acQANmnIADZp0AA2adQANmvAADZryAA2a9AANmvYADZr5AA2a+gANmvsADZr8AA2a/QANmv8ADZsBAA2bAgANmwMADZsFAA2bBgANm4EADZuDAA2bhgANm4gADZuLAA2bjAANm40ADZuOAA2bjwANm5EADZuTAA2blAANm5UADZuXAA2bmAANm7EADZuyAA2bswANm7UADZwwAA2cMgANnDQADZw2AA2cOQANnDoADZw7AA2cPAANnD0ADZw/AA2cQQANnEIADZxDAA2cRQANnEYADZzBAA2cwwANnMUADZzHAA2cygANnMsADZzMAA2czQANnM4ADZzQAA2c0gANnNMADZzUAA2c1gANnNcADZ1SAA2dVAANnVYADZ1YAA2dWwANnVwADZ1dAA2dXgANnV8ADZ1hAA2dYwANnWQADZ1lAA2dZwANnWgADZ3jAA2d5QANnecADZ3pAA2d7AANne0ADZ3uAA2d7wANnfAADZ3yAA2d9AANnfUADZ32AA2d+AANnfkADZ50AA2edgANnngADZ56AA2efQANnn4ADZ5/AA2egAANnoEADZ6DAA2ehQANnoYADZ6HAA2eiQANnooADZ7TAA2e9wANnx4ADZ9CAA2fRQANn0cADZ9JAA2fSwANn00ADZ9PAA2fUAANn1MADZ9sAA2fiQANn4sADZ+NAA2fjwANn5EADZ+TAA2flQANn5cADZ+0AA2ftwANn7oADZ+9AA2fwAANn8MADZ/GAA2fyQANn8sADaBGAA2gSAANoEoADaBMAA2gTwANoFAADaBRAA2gUgANoFMADaBVAA2gVwANoFgADaBZAA2gWwANoFwADaDXAA2g2QANoNsADaDdAA2g4AANoOEADaDiAA2g4wANoOQADaDmAA2g6AANoOkADaDqAA2g7AANoO0ADaFoAA2hagANoWwADaFuAA2hcQANoXIADaFzAA2hdAANoXUADaF3AA2heQANoXoADaF7AA2hfQANoX4ADaH5AA2h+wANof4ADaIAAA2iAwANogQADaIFAA2iBgANogcADaIJAA2iCwANogwADaINAA2iDwANohAADaKLAA2ijQANoo8ADaKRAA2ilAANopUADaKWAA2ilwANopgADaKaAA2inAANop0ADaKeAA2ioAANoqEADaMcAA2jHgANoyAADaMiAA2jJQANoyYADaMnAA2jKAANoykADaMrAA2jLQANoy4ADaMvAA2jMQANozIADaOtAA2jrwANo7EADaOzAA2jtgANo7cADaO4AA2juQANo7oADaO8AA2jvgANo78ADaPAAA2jwgANo8MADaRWAA2keQANpJkADaS5AA2kuwANpL0ADaS/AA2kwQANpMQADaTFAA2kxgANpMkADaTKAA2kzAANpM0ADaTPAA2k0gANpNMADaTUAA2k1wANpNgADaTdAA2k9gANpP8ADaUBAA2lAwANpQwADaUPAA2lEgANpRQADaVdAA2lgQANpagADaXMAA2lzwANpdEADaXTAA2l1QANpdcADaXZAA2l2gANpd0ADaX2AA2mFwANphkADaYbAA2mHQANph8ADaYhAA2mIwANpiUADaYnAA2mSAANpksADaZOAA2mUQANplQADaZXAA2mWgANpl0ADaZgAA2mYgANpt0ADabfAA2m4QANpuMADabmAA2m5wANpugADabpAA2m6gANpuwADabuAA2m7wANpvAADabyAA2m8wANp24ADadwAA2ncgANp3QADad3AA2neAANp3kADad6AA2newANp30ADad/AA2ngAANp4EADaeDAA2nhAANp/8ADagBAA2oBAANqAYADagJAA2oCgANqAsADagMAA2oDQANqA8ADagRAA2oEgANqBMADagVAA2oFgANqC8ADagwAA2oMQANqDMADaiuAA2osAANqLIADai0AA2otwANqLgADai5AA2ougANqLsADai9AA2ovwANqMAADajBAA2owwANqMQADak/AA2pQQANqUMADalFAA2pSAANqUkADalKAA2pSwANqUwADalOAA2pUAANqVEADalSAA2pVAANqVUADanQAA2p0gANqdQADanWAA2p2QANqdoADanbAA2p3AANqd0ADanfAA2p4QANqeIADanjAA2p5QANqeYADaphAA2qYwANqmUADapnAA2qagANqmsADapsAA2qbQANqm4ADapwAA2qcgANqnMADap0AA2qdgANqncADaryAA2q9AANqvYADar4AA2q+wANqvwADar9AA2q/gANqv8ADasBAA2rAwANqwQADasFAA2rBwANqwgADatRAA2rdQANq5wADavAAA2rwwANq8UADavHAA2ryQANq8sADavNAA2rzgANq9EADavqAA2sBwANrAkADawLAA2sDQANrA8ADawRAA2sEwANrBUADawyAA2sNQANrDgADaw7AA2sPgANrEEADaxEAA2sRwANrEkADazEAA2sxgANrMgADazKAA2szQANrM4ADazPAA2s0AANrNEADazTAA2s1QANrNYADazXAA2s2QANrNoADa1VAA2tVwANrVkADa1bAA2tXgANrV8ADa1gAA2tYQANrWIADa1kAA2tZgANrWcADa1oAA2tagANrWsADa3mAA2t6AANreoADa3sAA2t7wANrfAADa3xAA2t8gANrfMADa31AA2t9wANrfgADa35AA2t+wANrfwADa53AA2ueQANrnsADa59AA2ugAANroEADa6CAA2ugwANroQADa6GAA2uiAANrokADa6KAA2ujAANro0ADa8IAA2vCgANrwwADa8OAA2vEQANrxIADa8TAA2vFAANrxUADa8XAA2vGQANrxoADa8bAA2vHQANrx4ADa+ZAA2vmwANr50ADa+fAA2vogANr6MADa+kAA2vpQANr6YADa+oAA2vqgANr6sADa+sAA2vrgANr68ADbAqAA2wLAANsC4ADbAwAA2wMwANsDQADbA1AA2wNgANsDcADbA5AA2wOwANsDwADbA9AA2wPwANsEAADbDTAA2w9gANsRYADbE2AA2xOAANsToADbE8AA2xPgANsUEADbFCAA2xQwANsUYADbFHAA2xSQANsUoADbFMAA2xTwANsVAADbFRAA2xVAANsVUADbFaAA2xcwANsXwADbF+AA2xgAANsYkADbGMAA2xjwANsZEADbHaAA2x/gANsiUADbJJAA2yTAANsk4ADbJQAA2yUgANslQADbJWAA2yVwANsloADbJzAA2ylAANspYADbKYAA2ymgANspwADbKeAA2yoAANsqIADbKkAA2yxQANssgADbLLAA2yzgANstEADbLUAA2y1wANstoADbLdAA2y3wANs1oADbNcAA2zXgANs2AADbNjAA2zZAANs2UADbNmAA2zZwANs2kADbNrAA2zbAANs20ADbNvAA2zcAANs+sADbPtAA2z7wANs/EADbP0AA2z9QANs/YADbP3AA2z+AANs/oADbP8AA2z/QANs/4ADbQAAA20AQANtHwADbR+AA20gQANtIMADbSGAA20hwANtIgADbSJAA20igANtIwADbSOAA20jwANtJAADbSSAA20kwANtKwADbStAA20rgANtLAADbUrAA21LQANtS8ADbUxAA21NAANtTUADbU2AA21NwANtTgADbU6AA21PAANtT0ADbU+AA21QAANtUEADbW8AA21vgANtcAADbXCAA21xQANtcYADbXHAA21yAANtckADbXLAA21zQANtc4ADbXPAA210QANtdIADbZNAA22TwANtlEADbZTAA22VgANtlcADbZYAA22WQANtloADbZcAA22XgANtl8ADbZgAA22YgANtmMADbbeAA224AANtuIADbbkAA225wANtugADbbpAA226gANtusADbbtAA227wANtvAADbbxAA228wANtvQADbdvAA23cQANt3MADbd1AA23eAANt3kADbd6AA23ewANt3wADbd+AA23gAANt4EADbeCAA23hAANt4UADbfOAA238gANuBkADbg9AA24QAANuEIADbhEAA24RgANuEgADbhKAA24SwANuE4ADbhnAA24hAANuIYADbiIAA24igANuIwADbiOAA24kAANuJIADbivAA24sgANuLUADbi4AA24uwANuL4ADbjBAA24xAANuMYADblBAA25QwANuUUADblHAA25SgANuUsADblMAA25TQANuU4ADblQAA25UgANuVMADblUAA25VgANuVcADbnSAA251AANudYADbnYAA252wANudwADbndAA253gANud8ADbnhAA254wANueQADbnlAA255wANuegADbpjAA26ZQANumcADbppAA26bAANum0ADbpuAA26bwANunAADbpyAA26dAANunUADbp2AA26eAANunkADbr0AA269gANuvgADbr6AA26/QANuv4ADbr/AA27AAANuwEADbsDAA27BQANuwYADbsHAA27CQANuwoADbuFAA27hwANu4kADbuLAA27jgANu48ADbuQAA27kQANu5IADbuUAA27lgANu5cADbuYAA27mgANu5sADbwWAA28GAANvBoADbwcAA28HwANvCAADbwhAA28IgANvCMADbwlAA28JwANvCgADbwpAA28KwANvCwADbynAA28qQANvKsADbytAA28sAANvLEADbyyAA28swANvLQADby2AA28uAANvLkADby6AA28vAANvL0ADb1QAA29cwANvZMADb2zAA29tQANvbcADb25AA29uwANvb4ADb2/AA29wAANvcMADb3EAA29xgANvccADb3JAA29zAANvc0ADb3OAA290QANvdIADb3XAA298AANvfkADb37AA29/QANvgYADb4JAA2+DAANvg4ADb5XAA2+ewANvqIADb7GAA2+yQANvssADb7NAA2+zwANvtEADb7TAA2+1AANvtcADb7wAA2/EQANvxMADb8VAA2/FwANvxkADb8bAA2/HQANvx8ADb8hAA2/QgANv0UADb9IAA2/SwANv04ADb9RAA2/VAANv1cADb9aAA2/XAANv9cADb/ZAA2/2wANv90ADb/gAA2/4QANv+IADb/jAA2/5AANv+YADb/oAA2/6QANv+oADb/sAA2/7QANwGgADcBqAA3AbAANwG4ADcBxAA3AcgANwHMADcB0AA3AdQANwHcADcB5AA3AegANwHsADcB9AA3AfgANwPkADcD7AA3A/gANwQAADcEDAA3BBAANwQUADcEGAA3BBwANwQkADcELAA3BDAANwQ0ADcEPAA3BEAANwSkADcEqAA3BKwANwS0ADcGoAA3BqgANwawADcGuAA3BsQANwbIADcGzAA3BtAANwbUADcG3AA3BuQANwboADcG7AA3BvQANwb4ADcI5AA3COwANwj0ADcI/AA3CQgANwkMADcJEAA3CRQANwkYADcJIAA3CSgANwksADcJMAA3CTgANwk8ADcLKAA3CzAANws4ADcLQAA3C0wANwtQADcLVAA3C1gANwtcADcLZAA3C2wANwtwADcLdAA3C3wANwuAADcNbAA3DXQANw18ADcNhAA3DZAANw2UADcNmAA3DZwANw2gADcNqAA3DbAANw20ADcNuAA3DcAANw3EADcPsAA3D7gANw/AADcPyAA3D9QANw/YADcP3AA3D+AANw/kADcP7AA3D/QANw/4ADcP/AA3EAQANxAIADcRLAA3EbwANxJYADcS6AA3EvQANxL8ADcTBAA3EwwANxMUADcTHAA3EyAANxMsADcTkAA3FAQANxQMADcUFAA3FBwANxQkADcULAA3FDQANxQ8ADcUsAA3FLwANxTIADcU1AA3FOAANxTsADcU+AA3FQQANxUMADcW+AA3FwAANxcIADcXEAA3FxwANxcgADcXJAA3FygANxcsADcXNAA3FzwANxdAADcXRAA3F0wANxdQADcZPAA3GUQANxlMADcZVAA3GWAANxlkADcZaAA3GWwANxlwADcZeAA3GYAANxmEADcZiAA3GZAANxmUADcbgAA3G4gANxuQADcbmAA3G6QANxuoADcbrAA3G7AANxu0ADcbvAA3G8QANxvIADcbzAA3G9QANxvYADcdxAA3HcwANx3YADcd4AA3HewANx3wADcd9AA3HfgANx38ADceBAA3HgwANx4QADceFAA3HhwANx4gADcgDAA3IBQANyAcADcgJAA3IDAANyA0ADcgOAA3IDwANyBAADcgSAA3IFAANyBUADcgWAA3IGAANyBkADciUAA3IlgANyJgADciaAA3InQANyJ4ADcifAA3IoAANyKEADcijAA3IpQANyKYADcinAA3IqQANyKoADcklAA3JJwANySkADckrAA3JLgANyS8ADckwAA3JMQANyTIADck0AA3JNgANyTcADck4AA3JOgANyTsADcnOAA3J8QANyhEADcoxAA3KMwANyjUADco3AA3KOQANyjwADco9AA3KPgANykEADcpCAA3KRAANykUADcpIAA3KSwANykwADcpNAA3KUAANylEADcpWAA3KbwANyngADcp6AA3KfAANyoUADcqIAA3KiwANyo0ADcrWAA3K+gANyyEADctFAA3LSAANy0oADctMAA3LTgANy1AADctSAA3LUwANy1YADctvAA3LkAANy5IADcuUAA3LlgANy5gADcuaAA3LnAANy54ADcugAA3LwQANy8QADcvHAA3LygANy80ADcvQAA3L0wANy9YADcvZAA3L2wANzFYADcxYAA3MWgANzFwADcxfAA3MYAANzGEADcxiAA3MYwANzGUADcxnAA3MaAANzGkADcxrAA3MbAANzOcADczpAA3M6wANzO0ADczwAA3M8QANzPIADczzAA3M9AANzPYADcz4AA3M+QANzPoADcz8AA3M/QANzXgADc16AA3NfQANzX8ADc2CAA3NgwANzYQADc2FAA3NhgANzYgADc2KAA3NiwANzYwADc2OAA3NjwANzagADc2pAA3NqgANzawADc4nAA3OKQANzisADc4tAA3OMAANzjEADc4yAA3OMwANzjQADc42AA3OOAANzjkADc46AA3OPAANzj0ADc64AA3OugANzrwADc6+AA3OwQANzsIADc7DAA3OxAANzsUADc7HAA3OyQANzsoADc7LAA3OzQANzs4ADc9JAA3PSwANz00ADc9PAA3PUgANz1MADc9UAA3PVQANz1YADc9YAA3PWgANz1sADc9cAA3PXgANz18ADc/aAA3P3AANz94ADc/gAA3P4wANz+QADc/lAA3P5gANz+cADc/pAA3P6wANz+wADc/tAA3P7wANz/AADdBrAA3QbQAN0G8ADdBxAA3QdAAN0HUADdB2AA3QdwAN0HgADdB6AA3QfAAN0H0ADdB+AA3QgAAN0IEADdDKAA3Q7gAN0RUADdE5AA3RPAAN0T4ADdFAAA3RQgAN0UQADdFGAA3RRwAN0UoADdFjAA3RgAAN0YIADdGEAA3RhgAN0YgADdGKAA3RjAAN0Y4ADdGrAA3RrgAN0bEADdG0AA3RtwAN0boADdG9AA3RwAAN0cIADdI9AA3SPwAN0kEADdJDAA3SRgAN0kcADdJIAA3SSQAN0koADdJMAA3STgAN0k8ADdJQAA3SUgAN0lMADdLOAA3S0AAN0tIADdLUAA3S1wAN0tgADdLZAA3S2gAN0tsADdLdAA3S3wAN0uAADdLhAA3S4wAN0uQADdNfAA3TYQAN02MADdNlAA3TaAAN02kADdNqAA3TawAN02wADdNuAA3TcAAN03EADdNyAA3TdAAN03UADdPwAA3T8gAN0/UADdP3AA3T+gAN0/sADdP8AA3T/QAN0/4ADdQAAA3UAgAN1AMADdQEAA3UBgAN1AcADdSKAA3UrgAN1NIADdT1AA3VHAAN1TwADdVjAA3VigAN1aoADdXOAA3V8gAN1fQADdX3AA3V+QAN1fsADdX9AA3WAAAN1gMADdYFAA3WBwAN1goADdYMAA3WDgAN1hEADdYUAA3WFQAN1hoADdYzAA3WOAAN1joADdY/AA3WQgAN1kQADdaNAA3WsQAN1tgADdb8AA3W/wAN1wEADdcDAA3XBQAN1wcADdcJAA3XCgAN1w0ADdcmAA3XSwAN100ADddPAA3XUQAN11MADddVAA3XVwAN11kADddbAA3XXQAN14IADdeFAA3XiAAN14sADdeOAA3XkQAN15QADdeXAA3XmgAN150ADdefAA3YGgAN2BwADdgfAA3YIQAN2CQADdglAA3YJgAN2CcADdgoAA3YKgAN2CwADdgtAA3YLgAN2DAADdgxAA3YQgAN2EMADdhFAA3YwAAN2MIADdjEAA3YxgAN2MkADdjKAA3YywAN2MwADdjNAA3YzwAN2NEADdjSAA3Y0wAN2NUADdjWAA3ZUQAN2VMADdlWAA3ZWAAN2VsADdlcAA3ZXQAN2V4ADdlfAA3ZYQAN2WMADdlkAA3ZZQAN2WcADdloAA3ZeQAN2XoADdl8AA3Z9wAN2fkADdn7AA3Z/QAN2gAADdoBAA3aAgAN2gMADdoEAA3aBgAN2ggADdoJAA3aCgAN2gwADdoNAA3aiAAN2ooADdqNAA3ajwAN2pIADdqTAA3alAAN2pUADdqWAA3amAAN2poADdqbAA3anAAN2p4ADdqfAA3asAAN2rEADdqzAA3bLgAN2zAADdsyAA3bNAAN2zcADds4AA3bOQAN2zoADds7AA3bPQAN2z8ADdtAAA3bQQAN20MADdtEAA3bvwAN28EADdvEAA3bxgAN28kADdvKAA3bywAN28wADdvNAA3bzwAN29EADdvSAA3b0wAN29UADdvWAA3b7wAN2/AADdvxAA3b8wAN3G4ADdxwAA3ccgAN3HQADdx3AA3ceAAN3HkADdx6AA3cewAN3H0ADdx/AA3cgAAN3IEADdyDAA3chAAN3P8ADd0BAA3dBAAN3QYADd0JAA3dCgAN3QsADd0MAA3dDQAN3Q8ADd0RAA3dEgAN3RMADd0VAA3dFgAN3TEADd1KAA3dVwAN3VoADd1dAA3dYAAN3W0ADd1wAA3dcwAN3XYADd14AA3dhAAN3Z8ADd2xAA3eRAAN3mcADd6HAA3epwAN3qkADd6rAA3erQAN3q8ADd6yAA3eswAN3rQADd63AA3euAAN3roADd67AA3evQAN3sAADd7BAA3ewgAN3sUADd7GAA3eywAN3uQADd7tAA3e7wAN3vEADd76AA3e/QAN3wAADd8CAA3fSwAN328ADd+WAA3fugAN370ADd+/AA3fwQAN38MADd/FAA3fxwAN38gADd/LAA3f5AAN4AUADeAHAA3gCQAN4AsADeANAA3gDwAN4BEADeATAA3gFQAN4DYADeA5AA3gPAAN4D8ADeBCAA3gRQAN4EgADeBLAA3gTgAN4FAADeDLAA3gzQAN4M8ADeDRAA3g1AAN4NUADeDWAA3g1wAN4NgADeDaAA3g3AAN4N0ADeDeAA3g4AAN4OEADeFcAA3hXgAN4WAADeFiAA3hZQAN4WYADeFnAA3haAAN4WkADeFrAA3hbQAN4W4ADeFvAA3hcQAN4XIADeHtAA3h7wAN4fIADeH0AA3h9wAN4fgADeH5AA3h+gAN4fsADeH9AA3h/wAN4gAADeIBAA3iAwAN4gQADeIdAA3iHgAN4h8ADeIhAA3inAAN4p4ADeKgAA3iogAN4qUADeKmAA3ipwAN4qgADeKpAA3iqwAN4q0ADeKuAA3irwAN4rEADeKyAA3jLQAN4y8ADeMxAA3jMwAN4zYADeM3AA3jOAAN4zkADeM6AA3jPAAN4z4ADeM/AA3jQAAN40IADeNDAA3jvgAN48AADePCAA3jxAAN48cADePIAA3jyQAN48oADePLAA3jzQAN488ADePQAA3j0QAN49MADePUAA3kTwAN5FEADeRTAA3kVQAN5FgADeRZAA3kWgAN5FsADeRcAA3kXgAN5GAADeRhAA3kYgAN5GQADeRlAA3k4AAN5OIADeTkAA3k5gAN5OkADeTqAA3k6wAN5OwADeTtAA3k7wAN5PEADeTyAA3k8wAN5PUADeT2AA3lPwAN5WMADeWKAA3lrgAN5bEADeWzAA3ltQAN5bcADeW5AA3luwAN5bwADeW/AA3l2AAN5fUADeX3AA3l+QAN5fsADeX9AA3l/wAN5gEADeYDAA3mIAAN5iMADeYmAA3mKQAN5iwADeYvAA3mMgAN5jUADeY3AA3msgAN5rQADea2AA3muAAN5rsADea8AA3mvQAN5r4ADea/AA3mwQAN5sMADebEAA3mxQAN5scADebIAA3nQwAN50UADedHAA3nSQAN50wADedNAA3nTgAN508ADedQAA3nUgAN51QADedVAA3nVgAN51gADedZAA3n1AAN59YADefYAA3n2gAN590ADefeAA3n3wAN5+AADefhAA3n4wAN5+UADefmAA3n5wAN5+kADefqAA3oZQAN6GcADehpAA3oawAN6G4ADehvAA3ocAAN6HEADehyAA3odAAN6HYADeh3AA3oeAAN6HoADeh7AA3o9gAN6PgADej6AA3o/AAN6P8ADekAAA3pAQAN6QIADekDAA3pBQAN6QcADekIAA3pCQAN6QsADekMAA3phwAN6YkADemLAA3pjQAN6ZAADemRAA3pkgAN6ZMADemUAA3plgAN6ZgADemZAA3pmgAN6ZwADemdAA3qGAAN6hoADeocAA3qHgAN6iEADeoiAA3qIwAN6iQADeolAA3qJwAN6ikADeoqAA3qKwAN6i0ADeouAA3qwQAN6uQADesEAA3rJAAN6yYADesoAA3rKgAN6ywADesvAA3rMAAN6zEADes0AA3rNQAN6zcADes4AA3rOgAN6z0ADes+AA3rPwAN60IADetDAA3rSAAN62EADetqAA3rbAAN624ADet3AA3regAN630ADet/AA3ryAAN6+wADewTAA3sNwAN7DoADew8AA3sPgAN7EAADexCAA3sRAAN7EUADexIAA3sYQAN7IIADeyEAA3shgAN7IgADeyKAA3sjAAN7I4ADeyQAA3skgAN7LMADey2AA3suQAN7LwADey/AA3swgAN7MUADezIAA3sywAN7M0ADe1IAA3tSgAN7UwADe1OAA3tUQAN7VIADe1TAA3tVAAN7VUADe1XAA3tWQAN7VoADe1bAA3tXQAN7V4ADe3ZAA3t2wAN7d0ADe3fAA3t4gAN7eMADe3kAA3t5QAN7eYADe3oAA3t6gAN7esADe3sAA3t7gAN7e8ADe5qAA3ubAAN7m8ADe5xAA3udAAN7nUADe52AA3udwAN7ngADe56AA3ufAAN7n0ADe5+AA3ugAAN7oEADe6aAA3umwAN7pwADe6eAA3vGQAN7xsADe8dAA3vHwAN7yIADe8jAA3vJAAN7yUADe8mAA3vKAAN7yoADe8rAA3vLAAN7y4ADe8vAA3vqgAN76wADe+uAA3vsAAN77MADe+0AA3vtQAN77YADe+3AA3vuQAN77sADe+8AA3vvQAN778ADe/AAA3wOwAN8D0ADfA/AA3wQQAN8EQADfBFAA3wRgAN8EcADfBIAA3wSgAN8EwADfBNAA3wTgAN8FAADfBRAA3wzAAN8M4ADfDQAA3w0gAN8NUADfDWAA3w1wAN8NgADfDZAA3w2wAN8N0ADfDeAA3w3wAN8OEADfDiAA3xXQAN8V8ADfFhAA3xYwAN8WYADfFnAA3xaAAN8WkADfFqAA3xbAAN8W4ADfFvAA3xcAAN8XIADfFzAA3xvAAN8eAADfIHAA3yKwAN8i4ADfIwAA3yMgAN8jQADfI2AA3yOAAN8jkADfI8AA3yVQAN8nIADfJ0AA3ydgAN8ngADfJ6AA3yfAAN8n4ADfKAAA3ynQAN8qAADfKjAA3ypgAN8qkADfKsAA3yrwAN8rIADfK0AA3zLwAN8zEADfMzAA3zNQAN8zgADfM5AA3zOgAN8zsADfM8AA3zPgAN80AADfNBAA3zQgAN80QADfNFAA3zwAAN88IADfPEAA3zxgAN88kADfPKAA3zywAN88wADfPNAA3zzwAN89EADfPSAA3z0wAN89UADfPWAA30UQAN9FMADfRVAA30VwAN9FoADfRbAA30XAAN9F0ADfReAA30YAAN9GIADfRjAA30ZAAN9GYADfRnAA304gAN9OQADfTmAA306AAN9OsADfTsAA307QAN9O4ADfTvAA308QAN9PMADfT0AA309QAN9PcADfT4AA31cwAN9XUADfV3AA31eQAN9XwADfV9AA31fgAN9X8ADfWAAA31ggAN9YQADfWFAA31hgAN9YgADfWJAA32BAAN9gYADfYIAA32CgAN9g0ADfYOAA32DwAN9hAADfYRAA32EwAN9hUADfYWAA32FwAN9hkADfYaAA32lQAN9pcADfaZAA32mwAN9p4ADfafAA32oAAN9qEADfaiAA32pAAN9qYADfanAA32qAAN9qoADfarAA33PgAN92EADfeBAA33oQAN96MADfelAA33pwAN96kADfesAA33rQAN964ADfexAA33sgAN97QADfe1AA33uAAN97sADfe8AA33vQAN98AADffBAA33xgAN998ADffoAA336gAN9+wADff1AA33+AAN9/sADff9AA34RgAN+GoADfiRAA34tQAN+LgADfi6AA34vAAN+L4ADfjAAA34wgAN+MMADfjGAA343wAN+QAADfkCAA35BAAN+QYADfkIAA35CgAN+QwADfkOAA35EAAN+TEADfk0AA35NwAN+ToADfk9AA35QAAN+UMADflGAA35SQAN+UsADfnGAA35yAAN+coADfnMAA35zwAN+dAADfnRAA350gAN+dMADfnVAA351wAN+dgADfnZAA352wAN+dwADfpXAA36WQAN+lsADfpdAA36YAAN+mEADfpiAA36YwAN+mQADfpmAA36aAAN+mkADfpqAA36bAAN+m0ADfroAA366gAN+u0ADfrvAA368gAN+vMADfr0AA369QAN+vYADfr4AA36+gAN+vsADfr8AA36/gAN+v8ADfsYAA37GQAN+xoADfscAA37lwAN+5kADfubAA37nQAN+6AADfuhAA37ogAN+6MADfukAA37pgAN+6gADfupAA37qgAN+6wADfutAA38KAAN/CoADfwsAA38LgAN/DEADfwyAA38MwAN/DQADfw1AA38NwAN/DkADfw6AA38OwAN/D0ADfw+AA38uQAN/LsADfy9AA38vwAN/MIADfzDAA38xAAN/MUADfzGAA38yAAN/MoADfzLAA38zAAN/M4ADfzPAA39SgAN/UwADf1OAA39UAAN/VMADf1UAA39VQAN/VYADf1XAA39WQAN/VsADf1cAA39XQAN/V8ADf1gAA392wAN/d0ADf3fAA394QAN/eQADf3lAA395gAN/ecADf3oAA396gAN/ewADf3tAA397gAN/fAADf3xAA3+OgAN/l4ADf6FAA3+qQAN/qwADf6uAA3+sAAN/rIADf60AA3+tgAN/rcADf66AA3+0wAN/vAADf7yAA3+9AAN/vYADf74AA3++gAN/vwADf7+AA3/GwAN/x4ADf8hAA3/JAAN/ycADf8qAA3/LQAN/zAADf8yAA3/rQAN/68ADf+xAA3/swAN/7YADf+3AA3/uAAN/7kADf+6AA3/vAAN/74ADf+/AA3/wAAN/8IADf/DAA4APgAOAEAADgBCAA4ARAAOAEcADgBIAA4ASQAOAEoADgBLAA4ATQAOAE8ADgBQAA4AUQAOAFMADgBUAA4AzwAOANEADgDTAA4A1QAOANgADgDZAA4A2gAOANsADgDcAA4A3gAOAOAADgDhAA4A4gAOAOQADgDlAA4BYAAOAWIADgFlAA4BZwAOAWoADgFrAA4BbAAOAW0ADgFuAA4BcAAOAXIADgFzAA4BdAAOAXYADgF3AA4B8gAOAfQADgH2AA4B+AAOAfsADgH8AA4B/QAOAf4ADgH/AA4CAQAOAgMADgIEAA4CBQAOAgcADgIIAA4CgwAOAoUADgKHAA4CiQAOAowADgKNAA4CjgAOAo8ADgKQAA4CkgAOApQADgKVAA4ClgAOApgADgKZAA4DFAAOAxYADgMZAA4DGwAOAx4ADgMfAA4DIAAOAyEADgMiAA4DJAAOAyYADgMnAA4DKAAOAyoADgMrAA4DPAAOA0EADgNEAA4DRgAOA38ADgOCAA4DhAAOA4cADgOKAA4DjQAOA5AADgOVAA4EEAAOBBIADgQUAA4EFgAOBBkADgQaAA4EGwAOBBwADgQdAA4EHwAOBCEADgQiAA4EIwAOBCUADgQmAA4EoQAOBKMADgSlAA4EpwAOBKoADgSrAA4ErAAOBK0ADgSuAA4EsAAOBLIADgSzAA4EtAAOBLYADgS3AA4FMgAOBTQADgU3AA4FOQAOBTwADgU9AA4FPgAOBT8ADgVAAA4FQgAOBUQADgVFAA4FRgAOBUgADgVJAA4FWgAOBVsADgVdAA4FbgAOBXcADgV6AA4FfQAOBX8ADgW4AA4FuwAOBb0ADgXAAA4FwwAOBcYADgXJAA4GTAAOBnAADgaUAA4GtwAOBt4ADgb+AA4HJQAOB0wADgdsAA4HkAAOB7QADge2AA4HuQAOB7sADge9AA4HvwAOB8IADgfFAA4HxwAOB8kADgfMAA4HzgAOB9AADgfTAA4H1gAOB9cADgfcAA4H9QAOB/oADgf8AA4IAQAOCAQADggGAA4ITwAOCHMADgiaAA4IvgAOCMEADgjDAA4IxQAOCMcADgjJAA4IywAOCMwADgjPAA4I6AAOCQ0ADgkPAA4JEQAOCRMADgkVAA4JFwAOCRkADgkbAA4JHQAOCR8ADglEAA4JRwAOCUoADglNAA4JUAAOCVMADglWAA4JWQAOCVwADglfAA4JYQAOCdwADgneAA4J4QAOCeMADgnmAA4J5wAOCegADgnpAA4J6gAOCewADgnuAA4J7wAOCfAADgnyAA4J8wAOCgQADgoFAA4KBwAOCoIADgqEAA4KhgAOCogADgqLAA4KjAAOCo0ADgqOAA4KjwAOCpEADgqTAA4KlAAOCpUADgqXAA4KmAAOCxMADgsVAA4LGAAOCxoADgsdAA4LHgAOCx8ADgsgAA4LIQAOCyMADgslAA4LJgAOCycADgspAA4LKgAOCzsADgs8AA4LPgAOC7kADgu7AA4LvQAOC78ADgvCAA4LwwAOC8QADgvFAA4LxgAOC8gADgvKAA4LywAOC8wADgvOAA4LzwAODEoADgxMAA4MTwAODFEADgxUAA4MVQAODFYADgxXAA4MWAAODFoADgxcAA4MXQAODF4ADgxgAA4MYQAODHIADgxzAA4MdQAODPAADgzyAA4M9AAODPYADgz5AA4M+gAODPsADgz8AA4M/QAODP8ADg0BAA4NAgAODQMADg0FAA4NBgAODYEADg2DAA4NhgAODYgADg2LAA4NjAAODY0ADg2OAA4NjwAODZEADg2TAA4NlAAODZUADg2XAA4NmAAODbEADg2yAA4NswAODbUADg4wAA4OMgAODjQADg42AA4OOQAODjoADg47AA4OPAAODj0ADg4/AA4OQQAODkIADg5DAA4ORQAODkYADg7BAA4OwwAODsYADg7IAA4OywAODswADg7NAA4OzgAODs8ADg7RAA4O0wAODtQADg7VAA4O1wAODtgADg72AA4PDwAODxwADg8fAA4PIgAODyUADg8yAA4PNQAODzgADg87AA4PPQAOD1MADg9lAA4P+AAOEBsADhA7AA4QWwAOEF0ADhBfAA4QYQAOEGMADhBmAA4QZwAOEGgADhBrAA4QbAAOEG4ADhBvAA4QcgAOEHUADhB2AA4QdwAOEHoADhB7AA4QgAAOEJkADhCiAA4QpAAOEKYADhCvAA4QsgAOELUADhC3AA4RAAAOESQADhFLAA4RbwAOEXIADhF0AA4RdgAOEXgADhF6AA4RfAAOEX0ADhGAAA4RmQAOEboADhG8AA4RvgAOEcAADhHCAA4RxAAOEcYADhHIAA4RygAOEesADhHuAA4R8QAOEfQADhH3AA4R+gAOEf0ADhIAAA4SAwAOEgUADhKAAA4SggAOEoQADhKGAA4SiQAOEooADhKLAA4SjAAOEo0ADhKPAA4SkQAOEpIADhKTAA4SlQAOEpYADhMRAA4TEwAOExUADhMXAA4TGgAOExsADhMcAA4THQAOEx4ADhMgAA4TIgAOEyMADhMkAA4TJgAOEycADhOiAA4TpAAOE6cADhOpAA4TrAAOE60ADhOuAA4TrwAOE7AADhOyAA4TtAAOE7UADhO2AA4TuAAOE7kADhPSAA4T0wAOE9QADhPWAA4UUQAOFFMADhRVAA4UVwAOFFoADhRbAA4UXAAOFF0ADhReAA4UYAAOFGIADhRjAA4UZAAOFGYADhRnAA4U4gAOFOQADhTmAA4U6AAOFOsADhTsAA4U7QAOFO4ADhTvAA4U8QAOFPMADhT0AA4U9QAOFPcADhT4AA4VcwAOFXUADhV3AA4VeQAOFXwADhV9AA4VfgAOFX8ADhWAAA4VggAOFYQADhWFAA4VhgAOFYgADhWJAA4WBAAOFgYADhYIAA4WCgAOFg0ADhYOAA4WDwAOFhAADhYRAA4WEwAOFhUADhYWAA4WFwAOFhkADhYaAA4WlQAOFpcADhaZAA4WmwAOFp4ADhafAA4WoAAOFqEADhaiAA4WpAAOFqYADhanAA4WqAAOFqoADharAA4W9AAOFxgADhc/AA4XYwAOF2YADhdoAA4XagAOF2wADhduAA4XcAAOF3EADhd0AA4XjQAOF6oADhesAA4XrgAOF7AADheyAA4XtAAOF7YADhe4AA4X1QAOF9gADhfbAA4X3gAOF+EADhfkAA4X5wAOF+oADhfsAA4YZwAOGGkADhhrAA4YbQAOGHAADhhxAA4YcgAOGHMADhh0AA4YdgAOGHgADhh5AA4YegAOGHwADhh9AA4Y+AAOGPoADhj8AA4Y/gAOGQEADhkCAA4ZAwAOGQQADhkFAA4ZBwAOGQkADhkKAA4ZCwAOGQ0ADhkOAA4ZiQAOGYsADhmNAA4ZjwAOGZIADhmTAA4ZlAAOGZUADhmWAA4ZmAAOGZoADhmbAA4ZnAAOGZ4ADhmfAA4aGgAOGhwADhofAA4aIQAOGiQADholAA4aJgAOGicADhooAA4aKgAOGiwADhotAA4aLgAOGjAADhoxAA4arAAOGq4ADhqwAA4asgAOGrUADhq2AA4atwAOGrgADhq5AA4auwAOGr0ADhq+AA4avwAOGsEADhrCAA4bPQAOGz8ADhtBAA4bQwAOG0YADhtHAA4bSAAOG0kADhtKAA4bTAAOG04ADhtPAA4bUAAOG1IADhtTAA4bzgAOG9AADhvTAA4b1QAOG9gADhvZAA4b2gAOG9sADhvcAA4b3gAOG+AADhvhAA4b4gAOG+QADhvlAA4ceAAOHJsADhy7AA4c2wAOHN0ADhzfAA4c4QAOHOMADhzmAA4c5wAOHOgADhzrAA4c7AAOHO4ADhzvAA4c8gAOHPUADhz2AA4c9wAOHPoADhz7AA4dAAAOHRkADh0iAA4dJAAOHSYADh0vAA4dMgAOHTUADh03AA4dgAAOHaQADh3LAA4d7wAOHfIADh30AA4d9gAOHfgADh36AA4d/AAOHf0ADh4AAA4eGQAOHjoADh48AA4ePgAOHkAADh5CAA4eRAAOHkYADh5IAA4eSgAOHmsADh5uAA4ecQAOHnQADh53AA4eegAOHn0ADh6AAA4egwAOHoUADh8AAA4fAgAOHwQADh8GAA4fCQAOHwoADh8LAA4fDAAOHw0ADh8PAA4fEQAOHxIADh8TAA4fFQAOHxYADh+RAA4fkwAOH5UADh+XAA4fmgAOH5sADh+cAA4fnQAOH54ADh+gAA4fogAOH6MADh+kAA4fpgAOH6cADiAiAA4gJAAOICcADiApAA4gLAAOIC0ADiAuAA4gLwAOIDAADiAyAA4gNAAOIDUADiA2AA4gOAAOIDkADiBSAA4gUwAOIFQADiBWAA4g0QAOINMADiDVAA4g1wAOINoADiDbAA4g3AAOIN0ADiDeAA4g4AAOIOIADiDjAA4g5AAOIOYADiDnAA4hYgAOIWQADiFmAA4haAAOIWsADiFsAA4hbQAOIW4ADiFvAA4hcQAOIXMADiF0AA4hdQAOIXcADiF4AA4h8wAOIfUADiH3AA4h+QAOIfwADiH9AA4h/gAOIf8ADiIAAA4iAgAOIgQADiIFAA4iBgAOIggADiIJAA4ihAAOIoYADiKIAA4iigAOIo0ADiKOAA4ijwAOIpAADiKRAA4ikwAOIpUADiKWAA4ilwAOIpkADiKaAA4jFQAOIxcADiMZAA4jGwAOIx4ADiMfAA4jIAAOIyEADiMiAA4jJAAOIyYADiMnAA4jKAAOIyoADiMrAA4jdAAOI5gADiO/AA4j4wAOI+YADiPoAA4j6gAOI+wADiPuAA4j8AAOI/EADiP0AA4kDQAOJCoADiQsAA4kLgAOJDAADiQyAA4kNAAOJDYADiQ4AA4kVQAOJFgADiRbAA4kXgAOJGEADiRkAA4kZwAOJGoADiRsAA4k5wAOJOkADiTrAA4k7QAOJPAADiTxAA4k8gAOJPMADiT0AA4k9gAOJPgADiT5AA4k+gAOJPwADiT9AA4leAAOJXoADiV9AA4lfwAOJYIADiWDAA4lhAAOJYUADiWGAA4liAAOJYoADiWLAA4ljAAOJY4ADiWPAA4mCgAOJgwADiYOAA4mEAAOJhMADiYUAA4mFQAOJhYADiYXAA4mGQAOJhsADiYcAA4mHQAOJh8ADiYgAA4mmwAOJp0ADiagAA4mogAOJqUADiamAA4mpwAOJqgADiapAA4mqwAOJq0ADiauAA4mrwAOJrEADiayAA4nLQAOJy8ADicxAA4nMwAOJzYADic3AA4nOAAOJzkADic6AA4nPAAOJz4ADic/AA4nQAAOJ0IADidDAA4nvgAOJ8AADifCAA4nxAAOJ8cADifIAA4nyQAOJ8oADifLAA4nzQAOJ88ADifQAA4n0QAOJ9MADifUAA4oTwAOKFEADihUAA4oVgAOKFkADihaAA4oWwAOKFwADihdAA4oXwAOKGEADihiAA4oYwAOKGUADihmAA4o+QAOKRwADik8AA4pXAAOKV4ADilgAA4pYgAOKWQADilnAA4paAAOKWkADilsAA4pbQAOKW8ADilwAA4pcgAOKXUADil2AA4pdwAOKXoADil7AA4pgAAOKZkADimiAA4ppAAOKaYADimvAA4psgAOKbUADim3AA4qAAAOKiQADipLAA4qbwAOKnIADip0AA4qdgAOKngADip6AA4qfAAOKn0ADiqAAA4qmQAOKroADiq8AA4qvgAOKsAADirCAA4qxAAOKsYADirIAA4qygAOKusADiruAA4q8QAOKvQADir3AA4q+gAOKv0ADisAAA4rAwAOKwUADiuAAA4rggAOK4QADiuGAA4riQAOK4oADiuLAA4rjAAOK40ADiuPAA4rkQAOK5IADiuTAA4rlQAOK5YADiwRAA4sEwAOLBUADiwXAA4sGgAOLBsADiwcAA4sHQAOLB4ADiwgAA4sIgAOLCMADiwkAA4sJgAOLCcADiyiAA4spAAOLKcADiypAA4srAAOLK0ADiyuAA4srwAOLLAADiyyAA4stAAOLLUADiy2AA4suAAOLLkADizSAA4s0wAOLNQADizWAA4tUQAOLVMADi1VAA4tVwAOLVoADi1bAA4tXAAOLV0ADi1eAA4tYAAOLWIADi1jAA4tZAAOLWYADi1nAA4t4gAOLeQADi3mAA4t6AAOLesADi3sAA4t7QAOLe4ADi3vAA4t8QAOLfMADi30AA4t9QAOLfcADi34AA4ucwAOLnUADi53AA4ueQAOLnwADi59AA4ufgAOLn8ADi6AAA4uggAOLoQADi6FAA4uhgAOLogADi6JAA4vBAAOLwYADi8IAA4vCgAOLw0ADi8OAA4vDwAOLxAADi8RAA4vEwAOLxUADi8WAA4vFwAOLxkADi8aAA4vlQAOL5cADi+ZAA4vmwAOL54ADi+fAA4voAAOL6EADi+iAA4vpAAOL6YADi+nAA4vqAAOL6oADi+rAA4v9AAOMBgADjA/AA4wYwAOMGYADjBoAA4wagAOMGwADjBuAA4wcAAOMHEADjB0AA4wjQAOMKoADjCsAA4wrgAOMLAADjCyAA4wtAAOMLYADjC4AA4w1QAOMNgADjDbAA4w3gAOMOEADjDkAA4w5wAOMOoADjDsAA4xZwAOMWkADjFrAA4xbQAOMXAADjFxAA4xcgAOMXMADjF0AA4xdgAOMXgADjF5AA4xegAOMXwADjF9AA4x+AAOMfoADjH8AA4x/gAOMgEADjICAA4yAwAOMgQADjIFAA4yBwAOMgkADjIKAA4yCwAOMg0ADjIOAA4yiQAOMosADjKNAA4yjwAOMpIADjKTAA4ylAAOMpUADjKWAA4ymAAOMpoADjKbAA4ynAAOMp4ADjKfAA4zGgAOMxwADjMfAA4zIQAOMyQADjMlAA4zJgAOMycADjMoAA4zKgAOMywADjMtAA4zLgAOMzAADjMxAA4zrAAOM64ADjOwAA4zsgAOM7UADjO2AA4ztwAOM7gADjO5AA4zuwAOM70ADjO+AA4zvwAOM8EADjPCAA40PQAOND8ADjRBAA40QwAONEYADjRHAA40SAAONEkADjRKAA40TAAONE4ADjRPAA40UAAONFIADjRTAA40zgAONNAADjTSAA401AAONNcADjTYAA402QAONNoADjTbAA403QAONN8ADjTgAA404QAONOMADjTkAA41dwAONZoADjW6AA412gAONdwADjXeAA414AAONeIADjXlAA415gAONecADjXqAA416wAONe0ADjXuAA418AAONfMADjX0AA419QAONfgADjX5AA42AgAONhsADjYkAA42JgAONigADjYxAA42NAAONjcADjY5AA42ggAONqYADjbNAA428QAONvQADjb2AA42+AAONvoADjb8AA42/gAONv8ADjcCAA43GwAONzwADjc+AA43QAAON0IADjdEAA43RgAON0gADjdKAA43TAAON20ADjdwAA43cwAON3YADjd5AA43fAAON38ADjeCAA43hQAON4cADjgCAA44BAAOOAYADjgIAA44CwAOOAwADjgNAA44DgAOOA8ADjgRAA44EwAOOBQADjgVAA44FwAOOBgADjiTAA44lQAOOJcADjiZAA44nAAOOJ0ADjieAA44nwAOOKAADjiiAA44pAAOOKUADjimAA44qAAOOKkADjkkAA45JgAOOSkADjkrAA45LgAOOS8ADjkwAA45MQAOOTIADjk0AA45NgAOOTcADjk4AA45OgAOOTsADjlUAA45VQAOOVYADjlYAA450wAOOdUADjnXAA452QAOOdwADjndAA453gAOOd8ADjngAA454gAOOeQADjnlAA455gAOOegADjnpAA46ZAAOOmYADjpoAA46agAOOm0ADjpuAA46bwAOOnAADjpxAA46cwAOOnUADjp2AA46dwAOOnkADjp6AA469QAOOvcADjr5AA46+wAOOv4ADjr/AA47AAAOOwEADjsCAA47BAAOOwYADjsHAA47CAAOOwoADjsLAA47hgAOO4gADjuKAA47jAAOO48ADjuQAA47kQAOO5IADjuTAA47lQAOO5cADjuYAA47mQAOO5sADjucAA48FwAOPBkADjwbAA48HQAOPCAADjwhAA48IgAOPCMADjwkAA48JgAOPCgADjwpAA48KgAOPCwADjwtAA48dgAOPJoADjzBAA485QAOPOgADjzqAA487AAOPO4ADjzwAA488gAOPPMADjz2AA49DwAOPSwADj0uAA49MAAOPTIADj00AA49NgAOPTgADj06AA49VwAOPVoADj1dAA49YAAOPWMADj1mAA49aQAOPWwADj1uAA496QAOPesADj3tAA497wAOPfIADj3zAA499AAOPfUADj32AA49+AAOPfoADj37AA49/AAOPf4ADj3/AA4+egAOPnwADj5+AA4+gAAOPoMADj6EAA4+hQAOPoYADj6HAA4+iQAOPosADj6MAA4+jQAOPo8ADj6QAA4/CwAOPw0ADj8PAA4/EQAOPxQADj8VAA4/FgAOPxcADj8YAA4/GgAOPxwADj8dAA4/HgAOPyAADj8hAA4/nAAOP54ADj+hAA4/owAOP6YADj+nAA4/qAAOP6kADj+qAA4/rAAOP64ADj+vAA4/sAAOP7IADj+zAA5ALgAOQDAADkAyAA5ANAAOQDcADkA4AA5AOQAOQDoADkA7AA5APQAOQD8ADkBAAA5AQQAOQEMADkBEAA5AvwAOQMEADkDDAA5AxQAOQMgADkDJAA5AygAOQMsADkDMAA5AzgAOQNAADkDRAA5A0gAOQNQADkDVAA5BUAAOQVIADkFUAA5BVgAOQVkADkFaAA5BWwAOQVwADkFdAA5BXwAOQWEADkFiAA5BYwAOQWUADkFmAA5BdwAOQXwADkF/AA5BgQAOQYYADkIBAA5CAwAOQgUADkIHAA5CCgAOQgsADkIMAA5CDQAOQg4ADkIQAA5CEgAOQhMADkIUAA5CFgAOQhcADkKSAA5ClAAOQpYADkKYAA5CmwAOQpwADkKdAA5CngAOQp8ADkKhAA5CowAOQqQADkKlAA5CpwAOQqgADkMjAA5DJQAOQygADkMqAA5DLQAOQy4ADkMvAA5DMAAOQzEADkMzAA5DNQAOQzYADkM3AA5DOQAOQzoADkPNAA5D8AAORBAADkQwAA5EMgAORDQADkQ2AA5EOAAORDsADkQ8AA5EPQAOREAADkRBAA5EQwAOREQADkRGAA5ESQAOREoADkRLAA5ETgAORE8ADkRYAA5EcQAORHoADkR8AA5EfgAORIcADkSKAA5EjQAORI8ADkTYAA5E/AAORSMADkVHAA5FSgAORUwADkVOAA5FUAAORVIADkVUAA5FVQAORVgADkVxAA5FkgAORZQADkWWAA5FmAAORZoADkWcAA5FngAORaAADkWiAA5FwwAORcYADkXJAA5FzAAORc8ADkXSAA5F1QAORdgADkXbAA5F3QAORlgADkZaAA5GXAAORl4ADkZhAA5GYgAORmMADkZkAA5GZQAORmcADkZpAA5GagAORmsADkZtAA5GbgAORukADkbrAA5G7QAORu8ADkbyAA5G8wAORvQADkb1AA5G9gAORvgADkb6AA5G+wAORvwADkb+AA5G/wAOR3oADkd8AA5HfwAOR4EADkeEAA5HhQAOR4YADkeHAA5HiAAOR4oADkeMAA5HjQAOR44ADkeQAA5HkQAOR6oADkerAA5HrAAOR64ADkgpAA5IKwAOSC0ADkgvAA5IMgAOSDMADkg0AA5INQAOSDYADkg4AA5IOgAOSDsADkg8AA5IPgAOSD8ADki6AA5IvAAOSL4ADkjAAA5IwwAOSMQADkjFAA5IxgAOSMcADkjJAA5IywAOSMwADkjNAA5IzwAOSNAADklLAA5JTQAOSU8ADklRAA5JVAAOSVUADklWAA5JVwAOSVgADklaAA5JXAAOSV0ADkleAA5JYAAOSWEADkncAA5J3gAOSeAADkniAA5J5QAOSeYADknnAA5J6AAOSekADknrAA5J7QAOSe4ADknvAA5J8QAOSfIADkptAA5KbwAOSnEADkpzAA5KdgAOSncADkp4AA5KeQAOSnoADkp8AA5KfgAOSn8ADkqAAA5KggAOSoMADkrMAA5K8AAOSxcADks7AA5LPgAOS0AADktCAA5LRAAOS0YADktIAA5LSQAOS0wADktlAA5LggAOS4QADkuGAA5LiAAOS4oADkuMAA5LjgAOS5AADkutAA5LsAAOS7MADku2AA5LuQAOS7wADku/AA5LwgAOS8QADkw/AA5MQQAOTEMADkxFAA5MSAAOTEkADkxKAA5MSwAOTEwADkxOAA5MUAAOTFEADkxSAA5MVAAOTFUADkzQAA5M0gAOTNQADkzWAA5M2QAOTNoADkzbAA5M3AAOTN0ADkzfAA5M4QAOTOIADkzjAA5M5QAOTOYADk1hAA5NYwAOTWUADk1nAA5NagAOTWsADk1sAA5NbQAOTW4ADk1wAA5NcgAOTXMADk10AA5NdgAOTXcADk3yAA5N9AAOTfYADk34AA5N+wAOTfwADk39AA5N/gAOTf8ADk4BAA5OAwAOTgQADk4FAA5OBwAOTggADk6DAA5OhQAOTocADk6JAA5OjAAOTo0ADk6OAA5OjwAOTpAADk6SAA5OlAAOTpUADk6WAA5OmAAOTpkADk8UAA5PFgAOTxgADk8aAA5PHQAOTx4ADk8fAA5PIAAOTyEADk8jAA5PJQAOTyYADk8nAA5PKQAOTyoADk+lAA5PpwAOT6kADk+rAA5PrgAOT68ADk+wAA5PsQAOT7IADk+0AA5PtgAOT7cADk+4AA5PugAOT7sADlBOAA5QcQAOUJEADlCxAA5QswAOULUADlC3AA5QuQAOULwADlC9AA5QvgAOUMEADlDCAA5QxAAOUMUADlDHAA5QygAOUMsADlDMAA5QzwAOUNAADlDZAA5Q8gAOUPsADlD9AA5Q/wAOUQgADlELAA5RDgAOURAADlFZAA5RfQAOUaQADlHIAA5RywAOUc0ADlHPAA5R0QAOUdMADlHVAA5R1gAOUdkADlHyAA5SEwAOUhUADlIXAA5SGQAOUhsADlIdAA5SHwAOUiEADlIjAA5SRAAOUkcADlJKAA5STQAOUlAADlJTAA5SVgAOUlkADlJcAA5SXgAOUtkADlLbAA5S3QAOUt8ADlLiAA5S4wAOUuQADlLlAA5S5gAOUugADlLqAA5S6wAOUuwADlLuAA5S7wAOU2oADlNsAA5TbgAOU3AADlNzAA5TdAAOU3UADlN2AA5TdwAOU3kADlN7AA5TfAAOU30ADlN/AA5TgAAOU/sADlP9AA5UAAAOVAIADlQFAA5UBgAOVAcADlQIAA5UCQAOVAsADlQNAA5UDgAOVA8ADlQRAA5UEgAOVCsADlQsAA5ULQAOVC8ADlSqAA5UrAAOVK4ADlSwAA5UswAOVLQADlS1AA5UtgAOVLcADlS5AA5UuwAOVLwADlS9AA5UvwAOVMAADlU7AA5VPQAOVT8ADlVBAA5VRAAOVUUADlVGAA5VRwAOVUgADlVKAA5VTAAOVU0ADlVOAA5VUAAOVVEADlXMAA5VzgAOVdAADlXSAA5V1QAOVdYADlXXAA5V2AAOVdkADlXbAA5V3QAOVd4ADlXfAA5V4QAOVeIADlZdAA5WXwAOVmEADlZjAA5WZgAOVmcADlZoAA5WaQAOVmoADlZsAA5WbgAOVm8ADlZwAA5WcgAOVnMADlbuAA5W8AAOVvIADlb0AA5W9wAOVvgADlb5AA5W+gAOVvsADlb9AA5W/wAOVwAADlcBAA5XAwAOVwQADldNAA5XcQAOV5gADle8AA5XvwAOV8EADlfDAA5XxQAOV8cADlfJAA5XygAOV80ADlfmAA5YAwAOWAUADlgHAA5YCQAOWAsADlgNAA5YDwAOWBEADlguAA5YMQAOWDQADlg3AA5YOgAOWD0ADlhAAA5YQwAOWEUADljAAA5YwgAOWMQADljGAA5YyQAOWMoADljLAA5YzAAOWM0ADljPAA5Y0QAOWNIADljTAA5Y1QAOWNYADllRAA5ZUwAOWVUADllXAA5ZWgAOWVsADllcAA5ZXQAOWV4ADllgAA5ZYgAOWWMADllkAA5ZZgAOWWcADlniAA5Z5AAOWeYADlnoAA5Z6wAOWewADlntAA5Z7gAOWe8ADlnxAA5Z8wAOWfQADln1AA5Z9wAOWfgADlpzAA5adQAOWngADlp6AA5afQAOWn4ADlp/AA5agAAOWoEADlqDAA5ahQAOWoYADlqHAA5aiQAOWooADlsFAA5bBwAOWwkADlsLAA5bDgAOWw8ADlsQAA5bEQAOWxIADlsUAA5bFgAOWxcADlsYAA5bGgAOWxsADluWAA5bmAAOW5oADlucAA5bnwAOW6AADluhAA5bogAOW6MADlulAA5bpwAOW6gADlupAA5bqwAOW6wADlwnAA5cKQAOXCsADlwtAA5cMAAOXDEADlwyAA5cMwAOXDQADlw2AA5cOAAOXDkADlw6AA5cPAAOXD0ADlzQAA5c8wAOXRMADl0zAA5dNQAOXTcADl05AA5dOwAOXT4ADl0/AA5dQAAOXUMADl1EAA5dRgAOXUcADl1JAA5dTAAOXU0ADl1OAA5dUQAOXVIADl1XAA5dcAAOXXkADl17AA5dfQAOXYYADl2JAA5djAAOXY4ADl3XAA5d+wAOXiIADl5GAA5eSQAOXksADl5NAA5eTwAOXlEADl5TAA5eVAAOXlcADl5wAA5ekQAOXpMADl6VAA5elwAOXpkADl6bAA5enQAOXp8ADl6hAA5ewgAOXsUADl7IAA5eywAOXs4ADl7RAA5e1AAOXtcADl7aAA5e3AAOX1cADl9ZAA5fWwAOX10ADl9gAA5fYQAOX2IADl9jAA5fZAAOX2YADl9oAA5faQAOX2oADl9sAA5fbQAOX+gADl/qAA5f7AAOX+4ADl/xAA5f8gAOX/MADl/0AA5f9QAOX/cADl/5AA5f+gAOX/sADl/9AA5f/gAOYHkADmB7AA5gfgAOYIAADmCDAA5ghAAOYIUADmCGAA5ghwAOYIkADmCLAA5gjAAOYI0ADmCPAA5gkAAOYKkADmCqAA5gqwAOYK0ADmEoAA5hKgAOYSwADmEuAA5hMQAOYTIADmEzAA5hNAAOYTUADmE3AA5hOQAOYToADmE7AA5hPQAOYT4ADmG5AA5huwAOYb0ADmG/AA5hwgAOYcMADmHEAA5hxQAOYcYADmHIAA5hygAOYcsADmHMAA5hzgAOYc8ADmJKAA5iTAAOYk4ADmJQAA5iUwAOYlQADmJVAA5iVgAOYlcADmJZAA5iWwAOYlwADmJdAA5iXwAOYmAADmLbAA5i3QAOYt8ADmLhAA5i5AAOYuUADmLmAA5i5wAOYugADmLqAA5i7AAOYu0ADmLuAA5i8AAOYvEADmNsAA5jbgAOY3AADmNyAA5jdQAOY3YADmN3AA5jeAAOY3kADmN7AA5jfQAOY34ADmN/AA5jgQAOY4IADmPLAA5j7wAOZBYADmQ6AA5kPQAOZD8ADmRBAA5kQwAOZEUADmRHAA5kSAAOZEsADmRkAA5kgQAOZIMADmSFAA5khwAOZIkADmSLAA5kjQAOZI8ADmSsAA5krwAOZLIADmS1AA5kuAAOZLsADmS+AA5kwQAOZMMADmU+AA5lQAAOZUIADmVEAA5lRwAOZUgADmVJAA5lSgAOZUsADmVNAA5lTwAOZVAADmVRAA5lUwAOZVQADmXPAA5l0QAOZdMADmXVAA5l2AAOZdkADmXaAA5l2wAOZdwADmXeAA5l4AAOZeEADmXiAA5l5AAOZeUADmZgAA5mYgAOZmQADmZmAA5maQAOZmoADmZrAA5mbAAOZm0ADmZvAA5mcQAOZnIADmZzAA5mdQAOZnYADmbxAA5m8wAOZvUADmb3AA5m+gAOZvsADmb8AA5m/QAOZv4ADmcAAA5nAgAOZwMADmcEAA5nBgAOZwcADmeCAA5nhAAOZ4YADmeIAA5niwAOZ4wADmeNAA5njgAOZ48ADmeRAA5nkwAOZ5QADmeVAA5nlwAOZ5gADmgTAA5oFQAOaBcADmgZAA5oHAAOaB0ADmgeAA5oHwAOaCAADmgiAA5oJAAOaCUADmgmAA5oKAAOaCkADmikAA5opgAOaKgADmiqAA5orQAOaK4ADmivAA5osAAOaLEADmizAA5otQAOaLYADmi3AA5ouQAOaLoADmlNAA5pcAAOaZAADmmwAA5psgAOabQADmm2AA5puAAOabsADmm8AA5pvQAOacAADmnBAA5pwwAOacQADmnGAA5pyQAOacoADmnLAA5pzgAOac8ADmnUAA5p7QAOafYADmn4AA5p+gAOagMADmoGAA5qCQAOagsADmpUAA5qeAAOap8ADmrDAA5qxgAOasgADmrKAA5qzAAOas4ADmrQAA5q0QAOatQADmrtAA5rDgAOaxAADmsSAA5rFAAOaxYADmsYAA5rGgAOaxwADmseAA5rPwAOa0IADmtFAA5rSAAOa0sADmtOAA5rUQAOa1QADmtXAA5rWQAOa9QADmvWAA5r2AAOa9oADmvdAA5r3gAOa98ADmvgAA5r4QAOa+MADmvlAA5r5gAOa+cADmvpAA5r6gAObGUADmxnAA5saQAObGsADmxuAA5sbwAObHAADmxxAA5scgAObHQADmx2AA5sdwAObHgADmx6AA5sewAObPYADmz4AA5s+wAObP0ADm0AAA5tAQAObQIADm0DAA5tBAAObQYADm0IAA5tCQAObQoADm0MAA5tDQAObSYADm0nAA5tKAAObSoADm2lAA5tpwAObakADm2rAA5trgAOba8ADm2wAA5tsQAObbIADm20AA5ttgAObbcADm24AA5tugAObbsADm42AA5uOAAObjoADm48AA5uPwAObkAADm5BAA5uQgAObkMADm5FAA5uRwAObkgADm5JAA5uSwAObkwADm7HAA5uyQAObssADm7NAA5u0AAObtEADm7SAA5u0wAObtQADm7WAA5u2AAObtkADm7aAA5u3AAObt0ADm9YAA5vWgAOb1wADm9eAA5vYQAOb2IADm9jAA5vZAAOb2UADm9nAA5vaQAOb2oADm9rAA5vbQAOb24ADm/pAA5v6wAOb+0ADm/vAA5v8gAOb/MADm/0AA5v9QAOb/YADm/4AA5v+gAOb/sADm/8AA5v/gAOb/8ADnBIAA5wbAAOcJMADnC3AA5wugAOcLwADnC+AA5wwAAOcMIADnDEAA5wxQAOcMgADnDhAA5w/gAOcQAADnECAA5xBAAOcQYADnEIAA5xCgAOcQwADnEpAA5xLAAOcS8ADnEyAA5xNQAOcTgADnE7AA5xPgAOcUAADnG7AA5xvQAOcb8ADnHBAA5xxAAOccUADnHGAA5xxwAOccgADnHKAA5xzAAOcc0ADnHOAA5x0AAOcdEADnJMAA5yTgAOclAADnJSAA5yVQAOclYADnJXAA5yWAAOclkADnJbAA5yXQAOcl4ADnJfAA5yYQAOcmIADnLdAA5y3wAOcuEADnLjAA5y5gAOcucADnLoAA5y6QAOcuoADnLsAA5y7gAOcu8ADnLwAA5y8gAOcvMADnNuAA5zcAAOc3MADnN1AA5zeAAOc3kADnN6AA5zewAOc3wADnN+AA5zgAAOc4EADnOCAA5zhAAOc4UADnQAAA50AgAOdAQADnQGAA50CQAOdAoADnQLAA50DAAOdA0ADnQPAA50EQAOdBIADnQTAA50FQAOdBYADnSRAA50kwAOdJUADnSXAA50mgAOdJsADnScAA50nQAOdJ4ADnSgAA50ogAOdKMADnSkAA50pgAOdKcADnUiAA51JAAOdSYADnUoAA51KwAOdSwADnUtAA51LgAOdS8ADnUxAA51MwAOdTQADnU1AA51NwAOdTgADnXLAA517gAOdg4ADnYuAA52MAAOdjIADnY0AA52NgAOdjkADnY6AA52OwAOdj4ADnY/AA52QQAOdkIADnZFAA52SAAOdkkADnZKAA52TQAOdk4ADnZTAA52bAAOdnUADnZ3AA52eQAOdoIADnaFAA52iAAOdooADnbTAA529wAOdx4ADndCAA53RQAOd0cADndJAA53SwAOd00ADndPAA53UAAOd1MADndsAA53jQAOd48ADneRAA53kwAOd5UADneXAA53mQAOd5sADnedAA53vgAOd8EADnfEAA53xwAOd8oADnfNAA530AAOd9MADnfWAA532AAOeFMADnhVAA54VwAOeFkADnhcAA54XQAOeF4ADnhfAA54YAAOeGIADnhkAA54ZQAOeGYADnhoAA54aQAOeOQADnjmAA546AAOeOoADnjtAA547gAOeO8ADnjwAA548QAOePMADnj1AA549gAOePcADnj5AA54+gAOeXUADnl3AA55egAOeXwADnl/AA55gAAOeYEADnmCAA55gwAOeYUADnmHAA55iAAOeYkADnmLAA55jAAOeaUADnmmAA55pwAOeakADnokAA56JgAOeigADnoqAA56LQAOei4ADnovAA56MAAOejEADnozAA56NQAOejYADno3AA56OQAOejoADnq1AA56twAOerkADnq7AA56vgAOer8ADnrAAA56wQAOesIADnrEAA56xgAOescADnrIAA56ygAOessADntGAA57SAAOe0oADntMAA57TwAOe1AADntRAA57UgAOe1MADntVAA57VwAOe1gADntZAA57WwAOe1wADnvXAA572QAOe9sADnvdAA574AAOe+EADnviAA574wAOe+QADnvmAA576AAOe+kADnvqAA577AAOe+0ADnxoAA58agAOfGwADnxuAA58cQAOfHIADnxzAA58dAAOfHUADnx3AA58eQAOfHoADnx7AA58fQAOfH4ADnzHAA586wAOfRIADn02AA59OQAOfTsADn09AA59PwAOfUEADn1DAA59RAAOfUcADn1gAA59fQAOfX8ADn2BAA59gwAOfYUADn2HAA59iQAOfYsADn2oAA59qwAOfa4ADn2xAA59tAAOfbcADn26AA59vQAOfb8ADn46AA5+PAAOfj4ADn5AAA5+QwAOfkQADn5FAA5+RgAOfkcADn5JAA5+SwAOfkwADn5NAA5+TwAOflAADn7LAA5+zQAOftAADn7SAA5+1QAOftYADn7XAA5+2AAOftkADn7bAA5+3QAOft4ADn7fAA5+4QAOfuIADn9dAA5/XwAOf2EADn9jAA5/ZgAOf2cADn9oAA5/aQAOf2oADn9sAA5/bgAOf28ADn9wAA5/cgAOf3MADn/uAA5/8AAOf/MADn/1AA5/+AAOf/kADn/6AA5/+wAOf/wADn/+AA6AAAAOgAEADoACAA6ABAAOgAUADoCAAA6AggAOgIQADoCGAA6AiQAOgIoADoCLAA6AjAAOgI0ADoCPAA6AkQAOgJIADoCTAA6AlQAOgJYADoERAA6BEwAOgRUADoEXAA6BGgAOgRsADoEcAA6BHQAOgR4ADoEgAA6BIgAOgSMADoEkAA6BJgAOgScADoGiAA6BpAAOgacADoGpAA6BrAAOga0ADoGuAA6BrwAOgbAADoGyAA6BtAAOgbUADoG2AA6BuAAOgbkADoJMAA6CbwAOgo8ADoKvAA6CsQAOgrMADoK1AA6CtwAOgroADoK7AA6CvAAOgr8ADoLAAA6CwgAOgsMADoLGAA6CyQAOgsoADoLLAA6CzgAOgs8ADoLUAA6C7QAOgvYADoL4AA6C+gAOgwMADoMGAA6DCQAOgwsADoNUAA6DeAAOg58ADoPDAA6DxgAOg8gADoPKAA6DzAAOg84ADoPQAA6D0QAOg9QADoPtAA6EDgAOhBAADoQSAA6EFAAOhBYADoQYAA6EGgAOhBwADoQeAA6EPwAOhEIADoRFAA6ESAAOhEsADoROAA6EUQAOhFQADoRXAA6EWQAOhNQADoTWAA6E2AAOhNoADoTdAA6E3gAOhN8ADoTgAA6E4QAOhOMADoTlAA6E5gAOhOcADoTpAA6E6gAOhWUADoVnAA6FaQAOhWsADoVuAA6FbwAOhXAADoVxAA6FcgAOhXQADoV2AA6FdwAOhXgADoV6AA6FewAOhfYADoX4AA6F+wAOhf0ADoYAAA6GAQAOhgIADoYDAA6GBAAOhgYADoYIAA6GCQAOhgoADoYMAA6GDQAOhiYADoYnAA6GKAAOhioADoalAA6GpwAOhqkADoarAA6GrgAOhq8ADoawAA6GsQAOhrIADoa0AA6GtgAOhrcADoa4AA6GugAOhrsADoc2AA6HOAAOhzoADoc8AA6HPwAOh0AADodBAA6HQgAOh0MADodFAA6HRwAOh0gADodJAA6HSwAOh0wADofHAA6HyQAOh8sADofNAA6H0AAOh9EADofSAA6H0wAOh9QADofWAA6H2AAOh9kADofaAA6H3AAOh90ADohYAA6IWgAOiFwADoheAA6IYQAOiGIADohjAA6IZAAOiGUADohnAA6IaQAOiGoADohrAA6IbQAOiG4ADojpAA6I6wAOiO0ADojvAA6I8gAOiPMADoj0AA6I9QAOiPYADoj4AA6I+gAOiPsADoj8AA6I/gAOiP8ADolIAA6JbAAOiZMADom3AA6JugAOibwADom+AA6JwAAOicIADonEAA6JxQAOicgADonhAA6J/gAOigAADooCAA6KBAAOigYADooIAA6KCgAOigwADoopAA6KLAAOii8ADooyAA6KNQAOijgADoo7AA6KPgAOikAADoq7AA6KvQAOir8ADorBAA6KxAAOisUADorGAA6KxwAOisgADorKAA6KzAAOis0ADorOAA6K0AAOitEADotMAA6LTgAOi1AADotSAA6LVQAOi1YADotXAA6LWAAOi1kADotbAA6LXQAOi14ADotfAA6LYQAOi2IADovdAA6L3wAOi+EADovjAA6L5gAOi+cADovoAA6L6QAOi+oADovsAA6L7gAOi+8ADovwAA6L8gAOi/MADoxuAA6McAAOjHMADox1AA6MeAAOjHkADox6AA6MewAOjHwADox+AA6MgAAOjIEADoyCAA6MhAAOjIUADo0AAA6NAgAOjQQADo0GAA6NCQAOjQoADo0LAA6NDAAOjQ0ADo0PAA6NEQAOjRIADo0TAA6NFQAOjRYADo2RAA6NkwAOjZUADo2XAA6NmgAOjZsADo2cAA6NnQAOjZ4ADo2gAA6NogAOjaMADo2kAA6NpgAOjacADo4iAA6OJAAOjicADo4pAA6OLAAOji0ADo4uAA6OLwAOjjAADo4yAA6ONAAOjjUADo42AA6OOAAOjjkADo5KAA6OSwAOjk0ADo7IAA6OygAOjswADo7OAA6O0QAOjtIADo7TAA6O1AAOjtUADo7XAA6O2QAOjtoADo7bAA6O3QAOjt4ADo9ZAA6PWwAOj10ADo9fAA6PYgAOj2MADo9kAA6PZQAOj2YADo9oAA6PagAOj2sADo9sAA6PbgAOj28ADo/qAA6P7AAOj+8ADo/xAA6P9AAOj/UADo/2AA6P9wAOj/gADo/6AA6P/AAOj/0ADo/+AA6QAAAOkAEADpCUAA6QtwAOkNcADpD3AA6Q+QAOkPsADpD9AA6Q/wAOkQIADpEDAA6RBAAOkQcADpEIAA6RCgAOkQsADpEOAA6REQAOkRIADpETAA6RFgAOkRcADpEcAA6RNQAOkT4ADpFAAA6RQgAOkUsADpFOAA6RUQAOkVMADpGcAA6RwAAOkecADpILAA6SDgAOkhAADpISAA6SFAAOkhYADpIYAA6SGQAOkhwADpI1AA6SVgAOklgADpJaAA6SXAAOkl4ADpJgAA6SYgAOkmQADpJmAA6ShwAOkooADpKNAA6SkAAOkpMADpKWAA6SmQAOkpwADpKfAA6SoQAOkxwADpMeAA6TIAAOkyIADpMlAA6TJgAOkycADpMoAA6TKQAOkysADpMtAA6TLgAOky8ADpMxAA6TMgAOk60ADpOvAA6TsQAOk7MADpO2AA6TtwAOk7gADpO5AA6TugAOk7wADpO+AA6TvwAOk8AADpPCAA6TwwAOlD4ADpRAAA6UQwAOlEUADpRIAA6USQAOlEoADpRLAA6UTAAOlE4ADpRQAA6UUQAOlFIADpRUAA6UVQAOlG4ADpRvAA6UcAAOlHIADpTtAA6U7wAOlPEADpTzAA6U9gAOlPcADpT4AA6U+QAOlPoADpT8AA6U/gAOlP8ADpUAAA6VAgAOlQMADpV+AA6VgAAOlYIADpWEAA6VhwAOlYgADpWJAA6VigAOlYsADpWNAA6VjwAOlZAADpWRAA6VkwAOlZQADpYPAA6WEQAOlhMADpYVAA6WGAAOlhkADpYaAA6WGwAOlhwADpYeAA6WIAAOliEADpYiAA6WJAAOliUADpagAA6WogAOlqQADpamAA6WqQAOlqoADparAA6WrAAOlq0ADpavAA6WsQAOlrIADpazAA6WtQAOlrYADpcxAA6XMwAOlzUADpc3AA6XOgAOlzsADpc8AA6XPQAOlz4ADpdAAA6XQgAOl0MADpdEAA6XRgAOl0cADpeQAA6XtAAOl9sADpf/AA6YAgAOmAQADpgGAA6YCAAOmAoADpgMAA6YDQAOmBAADpgpAA6YRgAOmEgADphKAA6YTAAOmE4ADphQAA6YUgAOmFQADphxAA6YdAAOmHcADph6AA6YfQAOmIAADpiDAA6YhgAOmIgADpkDAA6ZBQAOmQcADpkJAA6ZDAAOmQ0ADpkOAA6ZDwAOmRAADpkSAA6ZFAAOmRUADpkWAA6ZGAAOmRkADpmUAA6ZlgAOmZkADpmbAA6ZngAOmZ8ADpmgAA6ZoQAOmaIADpmkAA6ZpgAOmacADpmoAA6ZqgAOmasADpomAA6aKAAOmioADposAA6aLwAOmjAADpoxAA6aMgAOmjMADpo1AA6aNwAOmjgADpo5AA6aOwAOmjwADpq3AA6auQAOmrwADpq+AA6awQAOmsIADprDAA6axAAOmsUADprHAA6ayQAOmsoADprLAA6azQAOms4ADptJAA6bSwAOm00ADptPAA6bUgAOm1MADptUAA6bVQAOm1YADptYAA6bWgAOm1sADptcAA6bXgAOm18ADpvaAA6b3AAOm94ADpvgAA6b4wAOm+QADpvlAA6b5gAOm+cADpvpAA6b6wAOm+wADpvtAA6b7wAOm/AADpxrAA6cbQAOnHAADpxyAA6cdQAOnHYADpx3AA6ceAAOnHkADpx7AA6cfQAOnH4ADpx/AA6cgQAOnIIADp0VAA6dOAAOnVgADp14AA6degAOnXwADp1+AA6dgAAOnYMADp2EAA6dhQAOnYgADp2JAA6diwAOnYwADp2OAA6dkQAOnZIADp2TAA6dlgAOnZcADp2gAA6duQAOncIADp3EAA6dxgAOnc8ADp3SAA6d1QAOndcADp4gAA6eRAAOnmsADp6PAA6ekgAOnpQADp6WAA6emAAOnpoADp6cAA6enQAOnqAADp65AA6e2gAOntwADp7eAA6e4AAOnuIADp7kAA6e5gAOnugADp7qAA6fCwAOnw4ADp8RAA6fFAAOnxcADp8aAA6fHQAOnyAADp8jAA6fJQAOn6AADp+iAA6fpAAOn6YADp+pAA6fqgAOn6sADp+sAA6frQAOn68ADp+xAA6fsgAOn7MADp+1AA6ftgAOoDEADqAzAA6gNQAOoDcADqA6AA6gOwAOoDwADqA9AA6gPgAOoEAADqBCAA6gQwAOoEQADqBGAA6gRwAOoMIADqDEAA6gxwAOoMkADqDMAA6gzQAOoM4ADqDPAA6g0AAOoNIADqDUAA6g1QAOoNYADqDYAA6g2QAOoPIADqDzAA6g9AAOoPYADqFxAA6hcwAOoXUADqF3AA6hegAOoXsADqF8AA6hfQAOoX4ADqGAAA6hggAOoYMADqGEAA6hhgAOoYcADqICAA6iBAAOogYADqIIAA6iCwAOogwADqINAA6iDgAOog8ADqIRAA6iEwAOohQADqIVAA6iFwAOohgADqKTAA6ilQAOopcADqKZAA6inAAOop0ADqKeAA6inwAOoqAADqKiAA6ipAAOoqUADqKmAA6iqAAOoqkADqMkAA6jJgAOoygADqMqAA6jLQAOoy4ADqMvAA6jMAAOozEADqMzAA6jNQAOozYADqM3AA6jOQAOozoADqO1AA6jtwAOo7kADqO7AA6jvgAOo78ADqPAAA6jwQAOo8IADqPEAA6jxgAOo8cADqPIAA6jygAOo8sADqQUAA6kOAAOpF8ADqSDAA6khgAOpIgADqSKAA6kjAAOpI4ADqSQAA6kkQAOpJQADqStAA6kygAOpMwADqTOAA6k0AAOpNIADqTUAA6k1gAOpNgADqT1AA6k+AAOpPsADqT+AA6lAQAOpQQADqUHAA6lCgAOpQwADqWHAA6liQAOpYsADqWNAA6lkAAOpZEADqWSAA6lkwAOpZQADqWWAA6lmAAOpZkADqWaAA6lnAAOpZ0ADqYYAA6mGgAOphwADqYeAA6mIQAOpiIADqYjAA6mJAAOpiUADqYnAA6mKQAOpioADqYrAA6mLQAOpi4ADqapAA6mqwAOpq0ADqavAA6msgAOprMADqa0AA6mtQAOprYADqa4AA6mugAOprsADqa8AA6mvgAOpr8ADqc6AA6nPAAOpz4ADqdAAA6nQwAOp0QADqdFAA6nRgAOp0cADqdJAA6nSwAOp0wADqdNAA6nTwAOp1AADqfLAA6nzQAOp88ADqfRAA6n1AAOp9UADqfWAA6n1wAOp9gADqfaAA6n3AAOp90ADqfeAA6n4AAOp+EADqhcAA6oXgAOqGAADqhiAA6oZQAOqGYADqhnAA6oaAAOqGkADqhrAA6obQAOqG4ADqhvAA6ocQAOqHIADqjtAA6o7wAOqPEADqjzAA6o9gAOqPcADqj4AA6o+QAOqPoADqj8AA6o/gAOqP8ADqkAAA6pAgAOqQMADqmWAA6puQAOqdkADqn5AA6p+wAOqf0ADqn/AA6qAQAOqgQADqoFAA6qBgAOqgkADqoKAA6qDAAOqg0ADqoPAA6qEgAOqhMADqoUAA6qFwAOqhgADqodAA6qNgAOqj8ADqpBAA6qQwAOqkwADqpPAA6qUgAOqlQADqqdAA6qwQAOqugADqsMAA6rDwAOqxEADqsTAA6rFQAOqxcADqsZAA6rGgAOqx0ADqs2AA6rVwAOq1kADqtbAA6rXQAOq18ADqthAA6rYwAOq2UADqtnAA6riAAOq4sADquOAA6rkQAOq5QADquXAA6rmgAOq50ADqugAA6rogAOrB0ADqwfAA6sIQAOrCMADqwmAA6sJwAOrCgADqwpAA6sKgAOrCwADqwuAA6sLwAOrDAADqwyAA6sMwAOrK4ADqywAA6ssgAOrLQADqy3AA6suAAOrLkADqy6AA6suwAOrL0ADqy/AA6swAAOrMEADqzDAA6sxAAOrT8ADq1BAA6tRAAOrUYADq1JAA6tSgAOrUsADq1MAA6tTQAOrU8ADq1RAA6tUgAOrVMADq1VAA6tVgAOrW8ADq1wAA6tcQAOrXMADq3uAA6t8AAOrfIADq30AA6t9wAOrfgADq35AA6t+gAOrfsADq39AA6t/wAOrgAADq4BAA6uAwAOrgQADq5/AA6ugQAOroMADq6FAA6uiAAOrokADq6KAA6uiwAOrowADq6OAA6ukAAOrpEADq6SAA6ulAAOrpUADq8QAA6vEgAOrxQADq8WAA6vGQAOrxoADq8bAA6vHAAOrx0ADq8fAA6vIQAOryIADq8jAA6vJQAOryYADq+hAA6vowAOr6UADq+nAA6vqgAOr6sADq+sAA6vrQAOr64ADq+wAA6vsgAOr7MADq+0AA6vtgAOr7cADrAyAA6wNAAOsDYADrA4AA6wOwAOsDwADrA9AA6wPgAOsD8ADrBBAA6wQwAOsEQADrBFAA6wRwAOsEgADrCRAA6wtQAOsNwADrEAAA6xAwAOsQUADrEHAA6xCQAOsQsADrENAA6xDgAOsREADrEqAA6xRwAOsUkADrFLAA6xTQAOsU8ADrFRAA6xUwAOsVUADrFyAA6xdQAOsXgADrF7AA6xfgAOsYEADrGEAA6xhwAOsYkADrIEAA6yBgAOsgkADrILAA6yDgAOsg8ADrIQAA6yEQAOshIADrIUAA6yFgAOshcADrIYAA6yGgAOshsADrIdAA6ymAAOspoADrKcAA6yngAOsqEADrKiAA6yowAOsqQADrKlAA6ypwAOsqkADrKqAA6yqwAOsq0ADrKuAA6zKQAOsysADrMtAA6zLwAOszIADrMzAA6zNAAOszUADrM2AA6zOAAOszoADrM7AA6zPAAOsz4ADrM/AA6zugAOs7wADrO/AA6zwQAOs8QADrPFAA6zxgAOs8cADrPIAA6zygAOs8wADrPNAA6zzgAOs9AADrPRAA60TAAOtE4ADrRQAA60UgAOtFUADrRWAA60VwAOtFgADrRZAA60WwAOtF0ADrReAA60XwAOtGEADrRiAA603QAOtN8ADrThAA604wAOtOYADrTnAA606AAOtOkADrTqAA607AAOtO4ADrTvAA608AAOtPIADrTzAA61bgAOtXAADrVyAA61dAAOtXcADrV4AA61eQAOtXoADrV7AA61fQAOtX8ADrWAAA61gQAOtYMADrWEAA62FwAOtjoADrZaAA62egAOtnwADrZ+AA62gAAOtoIADraFAA62hgAOtocADraKAA62iwAOto0ADraOAA62kQAOtpQADraVAA62lgAOtpkADraaAA62nwAOtrgADrbBAA62wwAOtsUADrbOAA620QAOttQADrbWAA63HwAOt0MADrdqAA63jgAOt5EADreTAA63lQAOt5cADreZAA63mwAOt5wADrefAA63uAAOt9kADrfbAA633QAOt98ADrfhAA634wAOt+UADrfnAA636QAOuAoADrgNAA64EAAOuBMADrgWAA64GQAOuBwADrgfAA64IgAOuCQADrifAA64oQAOuKMADrilAA64qAAOuKkADriqAA64qwAOuKwADriuAA64sAAOuLEADriyAA64tAAOuLUADrkwAA65MgAOuTQADrk2AA65OQAOuToADrk7AA65PAAOuT0ADrk/AA65QQAOuUIADrlDAA65RQAOuUYADrnBAA65wwAOucYADrnIAA65ywAOucwADrnNAA65zgAOuc8ADrnRAA650wAOudQADrnVAA651wAOudgADrnxAA658gAOufMADrn1AA66cAAOunIADrp0AA66dgAOunkADrp6AA66ewAOunwADrp9AA66fwAOuoEADrqCAA66gwAOuoUADrqGAA67AQAOuwMADrsFAA67BwAOuwoADrsLAA67DAAOuw0ADrsOAA67EAAOuxIADrsTAA67FAAOuxYADrsXAA67kgAOu5QADruWAA67mAAOu5sADrucAA67nQAOu54ADrufAA67oQAOu6MADrukAA67pQAOu6cADruoAA68IwAOvCUADrwnAA68KQAOvCwADrwtAA68LgAOvC8ADrwwAA68MgAOvDQADrw1AA68NgAOvDgADrw5AA68tAAOvLYADry4AA68ugAOvL0ADry+AA68vwAOvMAADrzBAA68wwAOvMUADrzGAA68xwAOvMkADrzKAA69EwAOvTcADr1eAA69ggAOvYUADr2HAA69iQAOvYsADr2NAA69jwAOvZAADr2TAA69rAAOvckADr3LAA69zQAOvc8ADr3RAA690wAOvdUADr3XAA699AAOvfcADr36AA69/QAOvgAADr4DAA6+BgAOvgkADr4LAA6+hgAOvogADr6KAA6+jAAOvo8ADr6QAA6+kQAOvpIADr6TAA6+lQAOvpcADr6YAA6+mQAOvpsADr6cAA6/FwAOvxkADr8cAA6/HgAOvyEADr8iAA6/IwAOvyQADr8lAA6/JwAOvykADr8qAA6/KwAOvy0ADr8uAA6/qQAOv6sADr+tAA6/rwAOv7IADr+zAA6/tAAOv7UADr+2AA6/uAAOv7oADr+7AA6/vAAOv74ADr+/AA7AOgAOwDwADsA/AA7AQQAOwEQADsBFAA7ARgAOwEcADsBIAA7ASgAOwEwADsBNAA7ATgAOwFAADsBRAA7A1AAOwPgADsEcAA7BPwAOwWYADsGGAA7BrQAOwdQADsH0AA7CGAAOwjwADsI+AA7CQQAOwkMADsJFAA7CRwAOwkoADsJNAA7CTwAOwlEADsJUAA7CVgAOwlgADsJbAA7CXgAOwl8ADsJkAA7CfQAOwoIADsKEAA7CiQAOwowADsKOAA7C1wAOwvsADsMiAA7DRgAOw0kADsNLAA7DTQAOw08ADsNRAA7DUwAOw1QADsNXAA7DcAAOw5UADsOXAA7DmQAOw5sADsOdAA7DnwAOw6EADsOjAA7DpQAOw6cADsPMAA7DzwAOw9IADsPVAA7D2AAOw9sADsPeAA7D4QAOw+QADsPnAA7D6QAOxGQADsRmAA7EaQAOxGsADsRuAA7EbwAOxHAADsRxAA7EcgAOxHQADsR2AA7EdwAOxHgADsR6AA7EewAOxIwADsSNAA7EjwAOxQoADsUMAA7FDgAOxRAADsUTAA7FFAAOxRUADsUWAA7FFwAOxRkADsUbAA7FHAAOxR0ADsUfAA7FIAAOxZsADsWdAA7FoAAOxaIADsWlAA7FpgAOxacADsWoAA7FqQAOxasADsWtAA7FrgAOxa8ADsWxAA7FsgAOxcMADsXEAA7FxgAOxkEADsZDAA7GRQAOxkcADsZKAA7GSwAOxkwADsZNAA7GTgAOxlAADsZSAA7GUwAOxlQADsZWAA7GVwAOxtIADsbUAA7G1wAOxtkADsbcAA7G3QAOxt4ADsbfAA7G4AAOxuIADsbkAA7G5QAOxuYADsboAA7G6QAOxvoADsb7AA7G/QAOx3gADsd6AA7HfAAOx34ADseBAA7HggAOx4MADseEAA7HhQAOx4cADseJAA7HigAOx4sADseNAA7HjgAOyAkADsgLAA7IDgAOyBAADsgTAA7IFAAOyBUADsgWAA7IFwAOyBkADsgbAA7IHAAOyB0ADsgfAA7IIAAOyDkADsg6AA7IOwAOyD0ADsi4AA7IugAOyLwADsi+AA7IwQAOyMIADsjDAA7IxAAOyMUADsjHAA7IyQAOyMoADsjLAA7IzQAOyM4ADslJAA7JSwAOyU4ADslQAA7JUwAOyVQADslVAA7JVgAOyVcADslZAA7JWwAOyVwADsldAA7JXwAOyWAADsmQAA7JqQAOyboADsm9AA7JwAAOycMADsnGAA7J1wAOydoADsndAA7J4AAOyeMADsnlAA7J9wAOyhAADsonAA7KugAOyt0ADsr9AA7LHQAOyx8ADsshAA7LIwAOyyUADssoAA7LKQAOyyoADsstAA7LLgAOyzAADssxAA7LNAAOyzcADss4AA7LOQAOyzwADss9AA7LRgAOy18ADstoAA7LagAOy2wADst1AA7LeAAOy3sADst9AA7LxgAOy+oADswRAA7MNQAOzDgADsw6AA7MPAAOzD4ADsxAAA7MQgAOzEMADsxGAA7MXwAOzIAADsyCAA7MhAAOzIYADsyIAA7MigAOzIwADsyOAA7MkAAOzLEADsy0AA7MtwAOzLoADsy9AA7MwAAOzMMADszGAA7MyQAOzMsADs1GAA7NSAAOzUoADs1MAA7NTwAOzVAADs1RAA7NUgAOzVMADs1VAA7NVwAOzVgADs1ZAA7NWwAOzVwADs3XAA7N2QAOzdsADs3dAA7N4AAOzeEADs3iAA7N4wAOzeQADs3mAA7N6AAOzekADs3qAA7N7AAOze0ADs5oAA7OagAOzm0ADs5vAA7OcgAOznMADs50AA7OdQAOznYADs54AA7OegAOznsADs58AA7OfgAOzn8ADs6YAA7OmQAOzpoADs6cAA7PFwAOzxkADs8bAA7PHQAOzyAADs8hAA7PIgAOzyMADs8kAA7PJgAOzygADs8pAA7PKgAOzywADs8tAA7PqAAOz6oADs+sAA7PrgAOz7EADs+yAA7PswAOz7QADs+1AA7PtwAOz7kADs+6AA7PuwAOz70ADs++AA7QOQAO0DsADtA9AA7QPwAO0EIADtBDAA7QRAAO0EUADtBGAA7QSAAO0EoADtBLAA7QTAAO0E4ADtBPAA7QygAO0MwADtDOAA7Q0AAO0NMADtDUAA7Q1QAO0NYADtDXAA7Q2QAO0NsADtDcAA7Q3QAO0N8ADtDgAA7RWwAO0V0ADtFfAA7RYQAO0WQADtFlAA7RZgAO0WcADtFoAA7RagAO0WwADtFtAA7RbgAO0XAADtFxAA7RugAO0d4ADtIFAA7SKQAO0iwADtIuAA7SMAAO0jIADtI0AA7SNgAO0jcADtI6AA7SUwAO0nAADtJyAA7SdAAO0nYADtJ4AA7SegAO0nwADtJ+AA7SmwAO0p4ADtKhAA7SpAAO0qcADtKqAA7SrQAO0rAADtKyAA7TLQAO0y8ADtMxAA7TMwAO0zYADtM3AA7TOAAO0zkADtM6AA7TPAAO0z4ADtM/AA7TQAAO00IADtNDAA7TvgAO08AADtPCAA7TxAAO08cADtPIAA7TyQAO08oADtPLAA7TzQAO088ADtPQAA7T0QAO09MADtPUAA7UTwAO1FEADtRTAA7UVQAO1FgADtRZAA7UWgAO1FsADtRcAA7UXgAO1GAADtRhAA7UYgAO1GQADtRlAA7U4AAO1OIADtTlAA7U5wAO1OoADtTrAA7U7AAO1O0ADtTuAA7U8AAO1PIADtTzAA7U9AAO1PYADtT3AA7VcgAO1XQADtV2AA7VeAAO1XsADtV8AA7VfQAO1X4ADtV/AA7VgQAO1YMADtWEAA7VhQAO1YcADtWIAA7WAwAO1gUADtYHAA7WCQAO1gwADtYNAA7WDgAO1g8ADtYQAA7WEgAO1hQADtYVAA7WFgAO1hgADtYZAA7WlAAO1pYADtaZAA7WmwAO1p4ADtafAA7WoAAO1qEADtaiAA7WpAAO1qYADtanAA7WqAAO1qoADtarAA7XPgAO12EADteBAA7XoQAO16MADtelAA7XpwAO16kADtesAA7XrQAO164ADtexAA7XsgAO17QADte1AA7XuAAO17sADte8AA7XvQAO18AADtfBAA7XxgAO198ADtfoAA7X6gAO1+wADtf1AA7X+AAO1/sADtf9AA7YRgAO2GoADtiRAA7YtQAO2LgADti6AA7YvAAO2L4ADtjAAA7YwgAO2MMADtjGAA7Y3wAO2QAADtkCAA7ZBAAO2QYADtkIAA7ZCgAO2QwADtkOAA7ZEAAO2TEADtk0AA7ZNwAO2ToADtk9AA7ZQAAO2UMADtlGAA7ZSQAO2UsADtnGAA7ZyAAO2coADtnMAA7ZzwAO2dAADtnRAA7Z0gAO2dMADtnVAA7Z1wAO2dgADtnZAA7Z2wAO2dwADtpXAA7aWQAO2lsADtpdAA7aYAAO2mEADtpiAA7aYwAO2mQADtpmAA7aaAAO2mkADtpqAA7abAAO2m0ADtroAA7a6gAO2u0ADtrvAA7a8gAO2vMADtr0AA7a9QAO2vYADtr4AA7a+gAO2vsADtr8AA7a/gAO2v8ADtsYAA7bGQAO2xoADtscAA7blwAO25kADtubAA7bnQAO26AADtuhAA7bogAO26MADtukAA7bpgAO26gADtupAA7bqgAO26wADtutAA7cKAAO3CoADtwsAA7cLgAO3DEADtwyAA7cMwAO3DQADtw1AA7cNwAO3DkADtw6AA7cOwAO3D0ADtw+AA7cuQAO3LsADty9AA7cvwAO3MIADtzDAA7cxAAO3MUADtzGAA7cyAAO3MoADtzLAA7czAAO3M4ADtzPAA7dSgAO3UwADt1OAA7dUAAO3VMADt1UAA7dVQAO3VYADt1XAA7dWQAO3VsADt1cAA7dXQAO3V8ADt1gAA7d2wAO3d0ADt3fAA7d4QAO3eQADt3lAA7d5gAO3ecADt3oAA7d6gAO3ewADt3tAA7d7gAO3fAADt3xAA7eOgAO3l4ADt6FAA7eqQAO3qwADt6uAA7esAAO3rIADt60AA7etgAO3rcADt66AA7e0wAO3vAADt7yAA7e9AAO3vYADt74AA7e+gAO3vwADt7+AA7fGwAO3x4ADt8hAA7fJAAO3ycADt8qAA7fLQAO3zAADt8yAA7frQAO368ADt+xAA7fswAO37YADt+3AA7fuAAO37kADt+6AA7fvAAO374ADt+/AA7fwAAO38IADt/DAA7gPgAO4EAADuBDAA7gRQAO4EgADuBJAA7gSgAO4EsADuBMAA7gTgAO4FAADuBRAA7gUgAO4FQADuBVAA7g0AAO4NIADuDUAA7g1gAO4NkADuDaAA7g2wAO4NwADuDdAA7g3wAO4OEADuDiAA7g4wAO4OUADuDmAA7hYQAO4WMADuFmAA7haAAO4WsADuFsAA7hbQAO4W4ADuFvAA7hcQAO4XMADuF0AA7hdQAO4XcADuF4AA7h8wAO4fUADuH3AA7h+QAO4fwADuH9AA7h/gAO4f8ADuIAAA7iAgAO4gQADuIFAA7iBgAO4ggADuIJAA7ihAAO4oYADuKIAA7iigAO4o0ADuKOAA7ijwAO4pAADuKRAA7ikwAO4pUADuKWAA7ilwAO4pkADuKaAA7jFQAO4xcADuMaAA7jHAAO4x8ADuMgAA7jIQAO4yIADuMjAA7jJQAO4ycADuMoAA7jKQAO4ysADuMsAA7jvwAO4+IADuQCAA7kIgAO5CQADuQmAA7kKAAO5CoADuQtAA7kLgAO5C8ADuQyAA7kMwAO5DUADuQ2AA7kOAAO5DsADuQ8AA7kPQAO5EAADuRBAA7kSgAO5GMADuRsAA7kbgAO5HAADuR5AA7kfAAO5H8ADuSBAA7kygAO5O4ADuUVAA7lOQAO5TwADuU+AA7lQAAO5UIADuVEAA7lRgAO5UcADuVKAA7lYwAO5YQADuWGAA7liAAO5YoADuWMAA7ljgAO5ZAADuWSAA7llAAO5bUADuW4AA7luwAO5b4ADuXBAA7lxAAO5ccADuXKAA7lzQAO5c8ADuZKAA7mTAAO5k4ADuZQAA7mUwAO5lQADuZVAA7mVgAO5lcADuZZAA7mWwAO5lwADuZdAA7mXwAO5mAADubbAA7m3QAO5t8ADubhAA7m5AAO5uUADubmAA7m5wAO5ugADubqAA7m7AAO5u0ADubuAA7m8AAO5vEADudsAA7nbgAO53EADudzAA7ndgAO53cADud4AA7neQAO53oADud8AA7nfgAO538ADueAAA7nggAO54MADuecAA7nnQAO554ADuegAA7oGwAO6B0ADugfAA7oIQAO6CQADuglAA7oJgAO6CcADugoAA7oKgAO6CwADugtAA7oLgAO6DAADugxAA7orAAO6K4ADuiwAA7osgAO6LUADui2AA7otwAO6LgADui5AA7ouwAO6L0ADui+AA7ovwAO6MEADujCAA7pPQAO6T8ADulBAA7pQwAO6UYADulHAA7pSAAO6UkADulKAA7pTAAO6U4ADulPAA7pUAAO6VIADulTAA7pzgAO6dAADunSAA7p1AAO6dcADunYAA7p2QAO6doADunbAA7p3QAO6d8ADungAA7p4QAO6eMADunkAA7qXwAO6mEADupjAA7qZQAO6mgADuppAA7qagAO6msADupsAA7qbgAO6nAADupxAA7qcgAO6nQADup1AA7qvgAO6uIADusJAA7rLQAO6zAADusyAA7rNAAO6zYADus4AA7rOgAO6zsADus+AA7rVwAO63QADut2AA7reAAO63oADut8AA7rfgAO64AADuuCAA7rnwAO66IADuulAA7rqAAO66sADuuuAA7rsQAO67QADuu2AA7sMQAO7DMADuw1AA7sNwAO7DoADuw7AA7sPAAO7D0ADuw+AA7sQAAO7EIADuxDAA7sRAAO7EYADuxHAA7swgAO7MQADuzGAA7syAAO7MsADuzMAA7szQAO7M4ADuzPAA7s0QAO7NMADuzUAA7s1QAO7NcADuzYAA7tUwAO7VUADu1XAA7tWQAO7VwADu1dAA7tXgAO7V8ADu1gAA7tYgAO7WQADu1lAA7tZgAO7WgADu1pAA7t5AAO7eYADu3pAA7t6wAO7e4ADu3vAA7t8AAO7fEADu3yAA7t9AAO7fYADu33AA7t+AAO7foADu37AA7udgAO7ngADu56AA7ufAAO7n8ADu6AAA7ugQAO7oIADu6DAA7uhQAO7ocADu6IAA7uiQAO7osADu6MAA7vBwAO7wkADu8LAA7vDQAO7xAADu8RAA7vEgAO7xMADu8UAA7vFgAO7xgADu8ZAA7vGgAO7xwADu8dAA7vmAAO75oADu+cAA7vngAO76EADu+iAA7vowAO76QADu+lAA7vpwAO76kADu+qAA7vqwAO760ADu+uAA7wQQAO8GQADvCEAA7wpAAO8KYADvCoAA7wqgAO8KwADvCvAA7wsAAO8LEADvC0AA7wtQAO8LcADvC4AA7wuwAO8L4ADvC/AA7wwAAO8MMADvDEAA7wyQAO8OIADvDrAA7w7QAO8O8ADvD4AA7w+wAO8P4ADvEAAA7xSQAO8W0ADvGUAA7xuAAO8bsADvG9AA7xvwAO8cEADvHDAA7xxQAO8cYADvHJAA7x4gAO8gMADvIFAA7yBwAO8gkADvILAA7yDQAO8g8ADvIRAA7yEwAO8jQADvI3AA7yOgAO8j0ADvJAAA7yQwAO8kYADvJJAA7yTAAO8k4ADvLJAA7yywAO8s0ADvLPAA7y0gAO8tMADvLUAA7y1QAO8tYADvLYAA7y2gAO8tsADvLcAA7y3gAO8t8ADvNaAA7zXAAO814ADvNgAA7zYwAO82QADvNlAA7zZgAO82cADvNpAA7zawAO82wADvNtAA7zbwAO83AADvPrAA7z7QAO8/AADvPyAA7z9QAO8/YADvP3AA7z+AAO8/kADvP7AA7z/QAO8/4ADvP/AA70AQAO9AIADvQbAA70HAAO9B0ADvQfAA70mgAO9JwADvSeAA70oAAO9KMADvSkAA70pQAO9KYADvSnAA70qQAO9KsADvSsAA70rQAO9K8ADvSwAA71KwAO9S0ADvUvAA71MQAO9TQADvU1AA71NgAO9TcADvU4AA71OgAO9TwADvU9AA71PgAO9UAADvVBAA71vAAO9b4ADvXAAA71wgAO9cUADvXGAA71xwAO9cgADvXJAA71ywAO9c0ADvXOAA71zwAO9dEADvXSAA72TQAO9k8ADvZRAA72UwAO9lYADvZXAA72WAAO9lkADvZaAA72XAAO9l4ADvZfAA72YAAO9mIADvZjAA723gAO9uAADvbiAA725AAO9ucADvboAA726QAO9uoADvbrAA727QAO9u8ADvbwAA728QAO9vMADvb0AA73PQAO92EADveIAA73rAAO968ADvexAA73swAO97UADve3AA73uQAO97oADve9AA731gAO9/MADvf1AA739wAO9/kADvf7AA73/QAO9/8ADvgBAA74HgAO+CEADvgkAA74JwAO+CoADvgtAA74MAAO+DMADvg1AA74sAAO+LIADvi0AA74tgAO+LkADvi6AA74uwAO+LwADvi9AA74vwAO+MEADvjCAA74wwAO+MUADvjGAA75QQAO+UMADvlFAA75RwAO+UoADvlLAA75TAAO+U0ADvlOAA75UAAO+VIADvlTAA75VAAO+VYADvlXAA750gAO+dQADvnWAA752AAO+dsADvncAA753QAO+d4ADvnfAA754QAO+eMADvnkAA755QAO+ecADvnoAA76YwAO+mUADvpoAA76agAO+m0ADvpuAA76bwAO+nAADvpxAA76cwAO+nUADvp2AA76dwAO+nkADvp6AA769QAO+vcADvr5AA76+wAO+v4ADvr/AA77AAAO+wEADvsCAA77BAAO+wYADvsHAA77CAAO+woADvsLAA77hgAO+4gADvuKAA77jAAO+48ADvuQAA77kQAO+5IADvuTAA77lQAO+5cADvuYAA77mQAO+5sADvucAA78FwAO/BkADvwcAA78HgAO/CEADvwiAA78IwAO/CQADvwlAA78JwAO/CkADvwqAA78KwAO/C0ADvwuAA78wQAO/OQADv0EAA79JAAO/SYADv0oAA79KgAO/SwADv0vAA79MAAO/TEADv00AA79NQAO/TcADv04AA79OgAO/T0ADv0+AA79PwAO/UIADv1DAA79SAAO/WEADv1qAA79bAAO/W4ADv13AA79egAO/X0ADv1/AA79yAAO/ewADv4TAA7+NwAO/joADv48AA7+PgAO/kAADv5CAA7+RAAO/kUADv5IAA7+YQAO/oIADv6EAA7+hgAO/ogADv6KAA7+jAAO/o4ADv6QAA7+kgAO/rMADv62AA7+uQAO/rwADv6/AA7+wgAO/sUADv7IAA7+ywAO/s0ADv9IAA7/SgAO/0wADv9OAA7/UQAO/1IADv9TAA7/VAAO/1UADv9XAA7/WQAO/1oADv9bAA7/XQAO/14ADv/ZAA7/2wAO/90ADv/fAA7/4gAO/+MADv/kAA7/5QAO/+YADv/oAA7/6gAO/+sADv/sAA7/7gAO/+8ADwBqAA8AbAAPAG8ADwBxAA8AdAAPAHUADwB2AA8AdwAPAHgADwB6AA8AfAAPAH0ADwB+AA8AgAAPAIEADwCaAA8AmwAPAJwADwCeAA8BGQAPARsADwEdAA8BHwAPASIADwEjAA8BJAAPASUADwEmAA8BKAAPASoADwErAA8BLAAPAS4ADwEvAA8BqgAPAawADwGuAA8BsAAPAbMADwG0AA8BtQAPAbYADwG3AA8BuQAPAbsADwG8AA8BvQAPAb8ADwHAAA8COwAPAj0ADwI/AA8CQQAPAkQADwJFAA8CRgAPAkcADwJIAA8CSgAPAkwADwJNAA8CTgAPAlAADwJRAA8CzAAPAs4ADwLQAA8C0gAPAtUADwLWAA8C1wAPAtgADwLZAA8C2wAPAt0ADwLeAA8C3wAPAuEADwLiAA8DXQAPA18ADwNhAA8DYwAPA2YADwNnAA8DaAAPA2kADwNqAA8DbAAPA24ADwNvAA8DcAAPA3IADwNzAA8DvAAPA+AADwQHAA8EKwAPBC4ADwQwAA8EMgAPBDQADwQ2AA8EOAAPBDkADwQ8AA8EVQAPBHIADwR0AA8EdgAPBHgADwR6AA8EfAAPBH4ADwSAAA8EnQAPBKAADwSjAA8EpgAPBKkADwSsAA8ErwAPBLIADwS0AA8FLwAPBTEADwU0AA8FNgAPBTkADwU6AA8FOwAPBTwADwU9AA8FPwAPBUEADwVCAA8FQwAPBUUADwVGAA8FwQAPBcMADwXFAA8FxwAPBcoADwXLAA8FzAAPBc0ADwXOAA8F0AAPBdIADwXTAA8F1AAPBdYADwXXAA8GUgAPBlQADwZWAA8GWAAPBlsADwZcAA8GXQAPBl4ADwZfAA8GYQAPBmMADwZkAA8GZQAPBmcADwZoAA8G4wAPBuUADwboAA8G6gAPBu0ADwbuAA8G7wAPBvAADwbxAA8G8wAPBvUADwb2AA8G9wAPBvkADwb6AA8HdQAPB3cADwd5AA8HewAPB34ADwd/AA8HgAAPB4EADweCAA8HhAAPB4YADweHAA8HiAAPB4oADweLAA8IBgAPCAgADwgKAA8IDAAPCA8ADwgQAA8IEQAPCBIADwgTAA8IFQAPCBcADwgYAA8IGQAPCBsADwgcAA8IlwAPCJkADwibAA8InQAPCKAADwihAA8IogAPCKMADwikAA8IpgAPCKgADwipAA8IqgAPCKwADwitAA8IvgAPCL8ADwjBAA8JPAAPCT4ADwlAAA8JQgAPCUUADwlGAA8JRwAPCUgADwlJAA8JSwAPCU0ADwlOAA8JTwAPCVEADwlSAA8JzQAPCc8ADwnRAA8J0wAPCdYADwnXAA8J2AAPCdkADwnaAA8J3AAPCd4ADwnfAA8J4AAPCeIADwnjAA8KXgAPCmAADwpjAA8KZQAPCmgADwppAA8KagAPCmsADwpsAA8KbgAPCnAADwpxAA8KcgAPCnQADwp1AA8LCAAPCysADwtLAA8LawAPC20ADwtvAA8LcQAPC3MADwt2AA8LdwAPC3gADwt7AA8LfAAPC34ADwt/AA8LgQAPC4QADwuFAA8LhgAPC4kADwuKAA8LjwAPC6gADwuxAA8LswAPC7UADwu+AA8LwQAPC8QADwvGAA8MDwAPDDMADwxaAA8MfgAPDIEADwyDAA8MhQAPDIcADwyJAA8MiwAPDIwADwyPAA8MqAAPDMkADwzLAA8MzQAPDM8ADwzRAA8M0wAPDNUADwzXAA8M2QAPDPoADwz9AA8NAAAPDQMADw0GAA8NCQAPDQwADw0PAA8NEgAPDRQADw2PAA8NkQAPDZMADw2VAA8NmAAPDZkADw2aAA8NmwAPDZwADw2eAA8NoAAPDaEADw2iAA8NpAAPDaUADw4gAA8OIgAPDiQADw4mAA8OKQAPDioADw4rAA8OLAAPDi0ADw4vAA8OMQAPDjIADw4zAA8ONQAPDjYADw6xAA8OswAPDrYADw64AA8OuwAPDrwADw69AA8OvgAPDr8ADw7BAA8OwwAPDsQADw7FAA8OxwAPDsgADw7hAA8O4gAPDuMADw7lAA8PYAAPD2IADw9kAA8PZgAPD2kADw9qAA8PawAPD2wADw9tAA8PbwAPD3EADw9yAA8PcwAPD3UADw92AA8P8QAPD/MADw/1AA8P9wAPD/oADw/7AA8P/AAPD/0ADw/+AA8QAAAPEAIADxADAA8QBAAPEAYADxAHAA8QggAPEIQADxCGAA8QiAAPEIsADxCMAA8QjQAPEI4ADxCPAA8QkQAPEJMADxCUAA8QlQAPEJcADxCYAA8REwAPERUADxEXAA8RGQAPERwADxEdAA8RHgAPER8ADxEgAA8RIgAPESQADxElAA8RJgAPESgADxEpAA8RpAAPEaYADxGoAA8RqgAPEa0ADxGuAA8RrwAPEbAADxGxAA8RswAPEbUADxG2AA8RtwAPEbkADxG6AA8SAwAPEicADxJOAA8ScgAPEnUADxJ3AA8SeQAPEnsADxJ9AA8SfwAPEoAADxKDAA8SnAAPErkADxK7AA8SvQAPEr8ADxLBAA8SwwAPEsUADxLHAA8S5AAPEucADxLqAA8S7QAPEvAADxLzAA8S9gAPEvkADxL7AA8TdgAPE3gADxN6AA8TfAAPE38ADxOAAA8TgQAPE4IADxODAA8ThQAPE4cADxOIAA8TiQAPE4sADxOMAA8UBwAPFAkADxQLAA8UDQAPFBAADxQRAA8UEgAPFBMADxQUAA8UFgAPFBgADxQZAA8UGgAPFBwADxQdAA8UmAAPFJoADxScAA8UngAPFKEADxSiAA8UowAPFKQADxSlAA8UpwAPFKkADxSqAA8UqwAPFK0ADxSuAA8VKQAPFSsADxUuAA8VMAAPFTMADxU0AA8VNQAPFTYADxU3AA8VOQAPFTsADxU8AA8VPQAPFT8ADxVAAA8VuwAPFb0ADxW/AA8VwQAPFcQADxXFAA8VxgAPFccADxXIAA8VygAPFcwADxXNAA8VzgAPFdAADxXRAA8WTAAPFk4ADxZQAA8WUgAPFlUADxZWAA8WVwAPFlgADxZZAA8WWwAPFl0ADxZeAA8WXwAPFmEADxZiAA8W3QAPFt8ADxbhAA8W4wAPFuYADxbnAA8W6AAPFukADxbqAA8W7AAPFu4ADxbvAA8W8AAPFvIADxbzAA8XhgAPF6kADxfJAA8X6QAPF+sADxftAA8X7wAPF/EADxf0AA8X9QAPF/YADxf5AA8X+gAPF/wADxf9AA8X/wAPGAIADxgDAA8YBAAPGAcADxgIAA8YDQAPGCYADxgvAA8YMQAPGDMADxg8AA8YPwAPGEIADxhEAA8YjQAPGLEADxjYAA8Y/AAPGP8ADxkBAA8ZAwAPGQUADxkHAA8ZCQAPGQoADxkNAA8ZJgAPGUcADxlJAA8ZSwAPGU0ADxlPAA8ZUQAPGVMADxlVAA8ZVwAPGXgADxl7AA8ZfgAPGYEADxmEAA8ZhwAPGYoADxmNAA8ZkAAPGZIADxoNAA8aDwAPGhEADxoTAA8aFgAPGhcADxoYAA8aGQAPGhoADxocAA8aHgAPGh8ADxogAA8aIgAPGiMADxqeAA8aoAAPGqIADxqkAA8apwAPGqgADxqpAA8aqgAPGqsADxqtAA8arwAPGrAADxqxAA8aswAPGrQADxsvAA8bMQAPGzQADxs2AA8bOQAPGzoADxs7AA8bPAAPGz0ADxs/AA8bQQAPG0IADxtDAA8bRQAPG0YADxtfAA8bYAAPG2EADxtjAA8b3gAPG+AADxviAA8b5AAPG+cADxvoAA8b6QAPG+oADxvrAA8b7QAPG+8ADxvwAA8b8QAPG/MADxv0AA8cbwAPHHEADxxzAA8cdQAPHHgADxx5AA8cegAPHHsADxx8AA8cfgAPHIAADxyBAA8cggAPHIQADxyFAA8dAAAPHQIADx0EAA8dBgAPHQkADx0KAA8dCwAPHQwADx0NAA8dDwAPHREADx0SAA8dEwAPHRUADx0WAA8dkQAPHZMADx2VAA8dlwAPHZoADx2bAA8dnAAPHZ0ADx2eAA8doAAPHaIADx2jAA8dpAAPHaYADx2nAA8eIgAPHiQADx4mAA8eKAAPHisADx4sAA8eLQAPHi4ADx4vAA8eMQAPHjMADx40AA8eNQAPHjcADx44AA8egQAPHqUADx7MAA8e8AAPHvMADx71AA8e9wAPHvkADx77AA8e/QAPHv4ADx8BAA8fGgAPHzcADx85AA8fOwAPHz0ADx8/AA8fQQAPH0MADx9FAA8fYgAPH2UADx9oAA8fawAPH24ADx9xAA8fdAAPH3cADx95AA8f9AAPH/YADx/4AA8f+gAPH/0ADx/+AA8f/wAPIAAADyABAA8gAwAPIAUADyAGAA8gBwAPIAkADyAKAA8ghQAPIIcADyCJAA8giwAPII4ADyCPAA8gkAAPIJEADyCSAA8glAAPIJYADyCXAA8gmAAPIJoADyCbAA8hFgAPIRgADyEaAA8hHAAPIR8ADyEgAA8hIQAPISIADyEjAA8hJQAPIScADyEoAA8hKQAPISsADyEsAA8hpwAPIakADyGsAA8hrgAPIbEADyGyAA8hswAPIbQADyG1AA8htwAPIbkADyG6AA8huwAPIb0ADyG+AA8iOQAPIjsADyI9AA8iPwAPIkIADyJDAA8iRAAPIkUADyJGAA8iSAAPIkoADyJLAA8iTAAPIk4ADyJPAA8iygAPIswADyLOAA8i0AAPItMADyLUAA8i1QAPItYADyLXAA8i2QAPItsADyLcAA8i3QAPIt8ADyLgAA8jWwAPI10ADyNfAA8jYQAPI2QADyNlAA8jZgAPI2cADyNoAA8jagAPI2wADyNtAA8jbgAPI3AADyNxAA8jggAPI4MADyOFAA8jlgAPI6MADyOmAA8jqQAPI6wADyOuAA8j5wAPI+oADyPsAA8j7gAPI/AADyPzAA8j9gAPI/sADyQ0AA8kNwAPJDkADyQ8AA8kPwAPJEIADyRFAA8kyAAPJOwADyUQAA8lMwAPJVoADyV6AA8loQAPJcgADyXoAA8mDAAPJjAADyYyAA8mNQAPJjcADyY5AA8mOwAPJj4ADyZBAA8mQwAPJkUADyZIAA8mSgAPJkwADyZPAA8mUgAPJlMADyZcAA8mdQAPJnoADyZ8AA8mgQAPJoQADyaGAA8mzwAPJvMADycaAA8nPgAPJ0EADydDAA8nRQAPJ0cADydJAA8nSwAPJ0wADydPAA8naAAPJ40ADyePAA8nkQAPJ5MADyeVAA8nlwAPJ5kADyebAA8nnQAPJ58ADyfEAA8nxwAPJ8oADyfNAA8n0AAPJ9MADyfWAA8n2QAPJ9wADyffAA8n4QAPKFwADyheAA8oYQAPKGMADyhmAA8oZwAPKGgADyhpAA8oagAPKGwADyhuAA8obwAPKHAADyhyAA8ocwAPKIQADyiFAA8ohwAPKQIADykEAA8pBgAPKQgADykLAA8pDAAPKQ0ADykOAA8pDwAPKREADykTAA8pFAAPKRUADykXAA8pGAAPKZMADymVAA8pmAAPKZoADymdAA8pngAPKZ8ADymgAA8poQAPKaMADymlAA8ppgAPKacADympAA8pqgAPKbsADym8AA8pvgAPKjkADyo7AA8qPQAPKj8ADypCAA8qQwAPKkQADypFAA8qRgAPKkgADypKAA8qSwAPKkwADypOAA8qTwAPKsoADyrMAA8qzwAPKtEADyrUAA8q1QAPKtYADyrXAA8q2AAPKtoADyrcAA8q3QAPKt4ADyrgAA8q4QAPKvIADyrzAA8q9QAPK3AADytyAA8rdAAPK3YADyt5AA8regAPK3sADyt8AA8rfQAPK38ADyuBAA8rggAPK4MADyuFAA8rhgAPLAEADywDAA8sBgAPLAgADywLAA8sDAAPLA0ADywOAA8sDwAPLBEADywTAA8sFAAPLBUADywXAA8sGAAPLDEADywyAA8sMwAPLDUADyywAA8ssgAPLLQADyy2AA8suQAPLLoADyy7AA8svAAPLL0ADyy/AA8swQAPLMIADyzDAA8sxQAPLMYADy1BAA8tQwAPLUYADy1IAA8tSwAPLUwADy1NAA8tTgAPLU8ADy1RAA8tUwAPLVQADy1VAA8tVwAPLVgADy12AA8tjwAPLZgADy2bAA8tngAPLacADy2qAA8trQAPLa8ADy3MAA8t4QAPLnQADy6XAA8utwAPLtcADy7ZAA8u2wAPLt0ADy7fAA8u4gAPLuMADy7kAA8u5wAPLugADy7qAA8u6wAPLu0ADy7wAA8u8QAPLvIADy71AA8u9gAPLvsADy8UAA8vHQAPLx8ADy8hAA8vKgAPLy0ADy8wAA8vMgAPL3sADy+fAA8vxgAPL+oADy/tAA8v7wAPL/EADy/zAA8v9QAPL/cADy/4AA8v+wAPMBQADzA1AA8wNwAPMDkADzA7AA8wPQAPMD8ADzBBAA8wQwAPMEUADzBmAA8waQAPMGwADzBvAA8wcgAPMHUADzB4AA8wewAPMH4ADzCAAA8w+wAPMP0ADzD/AA8xAQAPMQQADzEFAA8xBgAPMQcADzEIAA8xCgAPMQwADzENAA8xDgAPMRAADzERAA8xjAAPMY4ADzGQAA8xkgAPMZUADzGWAA8xlwAPMZgADzGZAA8xmwAPMZ0ADzGeAA8xnwAPMaEADzGiAA8yHQAPMh8ADzIiAA8yJAAPMicADzIoAA8yKQAPMioADzIrAA8yLQAPMi8ADzIwAA8yMQAPMjMADzI0AA8yTQAPMk4ADzJPAA8yUQAPMswADzLOAA8y0AAPMtIADzLVAA8y1gAPMtcADzLYAA8y2QAPMtsADzLdAA8y3gAPMt8ADzLhAA8y4gAPM10ADzNfAA8zYQAPM2MADzNmAA8zZwAPM2gADzNpAA8zagAPM2wADzNuAA8zbwAPM3AADzNyAA8zcwAPM+4ADzPwAA8z8gAPM/QADzP3AA8z+AAPM/kADzP6AA8z+wAPM/0ADzP/AA80AAAPNAEADzQDAA80BAAPNH8ADzSBAA80gwAPNIUADzSIAA80iQAPNIoADzSLAA80jAAPNI4ADzSQAA80kQAPNJIADzSUAA80lQAPNRAADzUSAA81FAAPNRYADzUZAA81GgAPNRsADzUcAA81HQAPNR8ADzUhAA81IgAPNSMADzUlAA81JgAPNW8ADzWTAA81ugAPNd4ADzXhAA814wAPNeUADzXnAA816QAPNesADzXsAA817wAPNggADzYlAA82JwAPNikADzYrAA82LQAPNi8ADzYxAA82MwAPNlAADzZTAA82VgAPNlkADzZcAA82XwAPNmIADzZlAA82ZwAPNuIADzbkAA825gAPNugADzbrAA827AAPNu0ADzbuAA827wAPNvEADzbzAA829AAPNvUADzb3AA82+AAPN3MADzd1AA83dwAPN3kADzd8AA83fQAPN34ADzd/AA83gAAPN4IADzeEAA83hQAPN4YADzeIAA83iQAPOAQADzgGAA84CAAPOAoADzgNAA84DgAPOA8ADzgQAA84EQAPOBMADzgVAA84FgAPOBcADzgZAA84GgAPOJUADziXAA84mQAPOJsADzieAA84nwAPOKAADzihAA84ogAPOKQADzimAA84pwAPOKgADziqAA84qwAPOSYADzkoAA85KgAPOSwADzkvAA85MAAPOTEADzkyAA85MwAPOTUADzk3AA85OAAPOTkADzk7AA85PAAPObcADzm5AA85uwAPOb0ADznAAA85wQAPOcIADznDAA85xAAPOcYADznIAA85yQAPOcoADznMAA85zQAPOkgADzpKAA86TAAPOk4ADzpRAA86UgAPOlMADzpUAA86VQAPOlcADzpZAA86WgAPOlsADzpdAA86XgAPOvEADzsUAA87NAAPO1QADztWAA87WAAPO1oADztcAA87XwAPO2AADzthAA87ZAAPO2UADztnAA87aAAPO2sADztuAA87bwAPO3AADztzAA87dAAPO3kADzuSAA87mwAPO50ADzufAA87qAAPO6sADzuuAA87sAAPO/kADzwdAA88RAAPPGgADzxrAA88bQAPPG8ADzxxAA88cwAPPHUADzx2AA88eQAPPJIADzyzAA88tQAPPLcADzy5AA88uwAPPL0ADzy/AA88wQAPPMMADzzkAA885wAPPOoADzztAA888AAPPPMADzz2AA88+QAPPPwADzz+AA89eQAPPXsADz19AA89fwAPPYIADz2DAA89hAAPPYUADz2GAA89iAAPPYoADz2LAA89jAAPPY4ADz2PAA8+CgAPPgwADz4OAA8+EAAPPhMADz4UAA8+FQAPPhYADz4XAA8+GQAPPhsADz4cAA8+HQAPPh8ADz4gAA8+mwAPPp0ADz6gAA8+ogAPPqUADz6mAA8+pwAPPqgADz6pAA8+qwAPPq0ADz6uAA8+rwAPPrEADz6yAA8+ywAPPswADz7NAA8+zwAPP0oADz9MAA8/TgAPP1AADz9TAA8/VAAPP1UADz9WAA8/VwAPP1kADz9bAA8/XAAPP10ADz9fAA8/YAAPP9sADz/dAA8/3wAPP+EADz/kAA8/5QAPP+YADz/nAA8/6AAPP+oADz/sAA8/7QAPP+4ADz/wAA8/8QAPQGwAD0BuAA9AcAAPQHIAD0B1AA9AdgAPQHcAD0B4AA9AeQAPQHsAD0B9AA9AfgAPQH8AD0CBAA9AggAPQP0AD0D/AA9BAgAPQQQAD0EHAA9BCAAPQQkAD0EKAA9BCwAPQQ0AD0EPAA9BEAAPQREAD0ETAA9BFAAPQSYAD0GhAA9BowAPQaU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AD1LcAA9S3gAPUt8AD1NaAA9TXAAPU18AD1NhAA9TZAAPU2UAD1NmAA9TZwAPU2gAD1NqAA9TbAAPU20AD1NuAA9TcAAPU3EAD1OCAA9ThwAPU4oAD1OMAA9TkQAPVAwAD1QOAA9UEAAPVBIAD1QVAA9UFgAPVBcAD1QYAA9UGQAPVBsAD1QdAA9UHgAPVB8AD1QhAA9UIgAPVJ0AD1SfAA9UoQAPVKMAD1SmAA9UpwAPVKgAD1SpAA9UqgAPVKwAD1SuAA9UrwAPVLAAD1SyAA9UswAPVS4AD1UwAA9VMwAPVTUAD1U4AA9VOQAPVToAD1U7AA9VPAAPVT4AD1VAAA9VQQAPVUIAD1VEAA9VRQAPVVYAD1VXAA9VWQAPVdQAD1XWAA9V2AAPVdoAD1XdAA9V3gAPVd8AD1XgAA9V4QAPVeMAD1XlAA9V5gAPVecAD1XpAA9V6gAPVmUAD1ZnAA9WaQAPVmsAD1ZuAA9WbwAPVnAAD1ZxAA9WcgAPVnQAD1Z2AA9WdwAPVngAD1Z6AA9WewAPVvYAD1b4AA9W+wAPVv0AD1cAAA9XAQAPVwIAD1cDAA9XBAAPVwYAD1cIAA9XCQAPVwoAD1cMAA9XDQAPVx4AD1cjAA9XJgAPVygAD1ctAA9XqAAPV6oAD1esAA9XrgAPV7EAD1eyAA9XswAPV7QAD1e1AA9XtwAPV7kAD1e6AA9XuwAPV70AD1e+AA9YOQAPWDsAD1g9AA9YPwAPWEIAD1hDAA9YRAAPWEUAD1hGAA9YSAAPWEoAD1hLAA9YTAAPWE4AD1hPAA9YygAPWMwAD1jPAA9Y0QAPWNQAD1jVAA9Y1gAPWNcAD1jYAA9Y2gAPWNwAD1jdAA9Y3gAPWOAAD1jhAA9ZdAAPWZcAD1m3AA9Z1wAPWdkAD1nbAA9Z3QAPWd8AD1niAA9Z4wAPWeQAD1nnAA9Z6AAPWeoAD1nrAA9Z7gAPWfEAD1nyAA9Z8wAPWfYAD1n3AA9Z/AAPWhUAD1oeAA9aIAAPWiIAD1orAA9aLgAPWjEAD1ozAA9afAAPWqAAD1rHAA9a6wAPWu4AD1rwAA9a8gAPWvQAD1r2AA9a+AAPWvkAD1r8AA9bFQAPWzYAD1s4AA9bOgAPWzwAD1s+AA9bQAAPW0IAD1tEAA9bRgAPW2cAD1tqAA9bbQAPW3AAD1tzAA9bdgAPW3kAD1t8AA9bfwAPW4EAD1v8AA9b/gAPXAAAD1wCAA9cBQAPXAYAD1wHAA9cCAAPXAkAD1wLAA9cDQAPXA4AD1wPAA9cEQAPXBIAD1yNAA9cjwAPXJEAD1yTAA9clgAPXJcAD1yYAA9cmQAPXJoAD1ycAA9cngAPXJ8AD1ygAA9cogAPXKMAD10eAA9dIAAPXSMAD10lAA9dKAAPXSkAD10qAA9dKwAPXSwAD10uAA9dMAAPXTEAD10yAA9dNAAPXTUAD11OAA9dTwAPXVAAD11SAA9dzQAPXc8AD13RAA9d0wAPXdYAD13XAA9d2AAPXdkAD13aAA9d3AAPXd4AD13fAA9d4AAPXeIAD13jAA9eXgAPXmAAD15iAA9eZAAPXmcAD15oAA9eaQAPXmoAD15rAA9ebQAPXm8AD15wAA9ecQAPXnMAD150AA9e7wAPXvEAD17zAA9e9QAPXvgAD175AA9e+gAPXvsAD178AA9e/gAPXwAAD18BAA9fAgAPXwQAD18FAA9fgAAPX4IAD1+EAA9fhgAPX4kAD1+KAA9fiwAPX4wAD1+NAA9fjwAPX5EAD1+SAA9fkwAPX5UAD1+WAA9gEQAPYBMAD2AVAA9gFwAPYBoAD2AbAA9gHAAPYB0AD2AeAA9gIAAPYCIAD2AjAA9gJAAPYCYAD2AnAA9gcAAPYJQAD2C7AA9g3wAPYOIAD2DkAA9g5gAPYOgAD2DqAA9g7AAPYO0AD2DwAA9hCQAPYSYAD2EoAA9hKgAPYSwAD2EuAA9hMAAPYTIAD2E0AA9hUQAPYVQAD2FXAA9hWgAPYV0AD2FgAA9hYwAPYWYAD2FoAA9h4wAPYeUAD2HnAA9h6QAPYewAD2HtAA9h7gAPYe8AD2HwAA9h8gAPYfQAD2H1AA9h9gAPYfgAD2H5AA9idAAPYnYAD2J5AA9iewAPYn4AD2J/AA9igAAPYoEAD2KCAA9ihAAPYoYAD2KHAA9iiAAPYooAD2KLAA9jBgAPYwgAD2MKAA9jDAAPYw8AD2MQAA9jEQAPYxIAD2MTAA9jFQAPYxcAD2MYAA9jGQAPYxsAD2McAA9jlwAPY5kAD2OcAA9jngAPY6EAD2OiAA9jowAPY6QAD2OlAA9jpwAPY6kAD2OqAA9jqwAPY60AD2OuAA9kMQAPZFUAD2R5AA9knAAPZMMAD2TjAA9lCgAPZTEAD2VRAA9ldQAPZZkAD2WbAA9lngAPZaAAD2WiAA9lpAAPZacAD2WqAA9lrAAPZa4AD2WxAA9lswAPZbUAD2W4AA9luwAPZbwAD2XBAA9l2gAPZd8AD2XhAA9l5gAPZekAD2XrAA9mNAAPZlgAD2Z/AA9mowAPZqYAD2aoAA9mqgAPZqwAD2auAA9msAAPZrEAD2a0AA9mzQAPZvIAD2b0AA9m9gAPZvgAD2b6AA9m/AAPZv4AD2cAAA9nAgAPZwQAD2cpAA9nLAAPZy8AD2cyAA9nNQAPZzgAD2c7AA9nPgAPZ0EAD2dEAA9nRgAPZ8EAD2fDAA9nxgAPZ8gAD2fLAA9nzAAPZ80AD2fOAA9nzwAPZ9EAD2fTAA9n1AAPZ9UAD2fXAA9n2AAPZ+kAD2fqAA9n7AAPaGcAD2hpAA9oawAPaG0AD2hwAA9ocQAPaHIAD2hzAA9odAAPaHYAD2h4AA9oeQAPaHoAD2h8AA9ofQAPaPgAD2j6AA9o/QAPaP8AD2kCAA9pAwAPaQQAD2kFAA9pBgAPaQgAD2kKAA9pCwAPaQwAD2kOAA9pDwAPaSAAD2khAA9pIwAPaZ4AD2mgAA9pogAPaaQAD2mnAA9pqAAPaakAD2mqAA9pqwAPaa0AD2mvAA9psAAPabEAD2mzAA9ptAAPai8AD2oxAA9qNAAPajYAD2o5AA9qOgAPajsAD2o8AA9qPQAPaj8AD2pBAA9qQgAPakMAD2pFAA9qRgAPalcAD2pYAA9qWgAPatUAD2rXAA9q2QAPatsAD2reAA9q3wAPauAAD2rhAA9q4gAPauQAD2rmAA9q5wAPaugAD2rqAA9q6wAPa2YAD2toAA9rawAPa20AD2twAA9rcQAPa3IAD2tzAA9rdAAPa3YAD2t4AA9reQAPa3oAD2t8AA9rfQAPa5YAD2uXAA9rmAAPa5oAD2wVAA9sFwAPbBkAD2wbAA9sHgAPbB8AD2wgAA9sIQAPbCIAD2wkAA9sJgAPbCcAD2woAA9sKgAPbCsAD2ymAA9sqAAPbKsAD2ytAA9ssAAPbLEAD2yyAA9sswAPbLQAD2y2AA9suAAPbLkAD2y6AA9svAAPbL0AD2zjAA9s/AAPbQ0AD20QAA9tEwAPbRYAD20ZAA9tKgAPbS0AD20wAA9tMwAPbTYAD204AA9tQAAPbU8AD23iAA9uBQAPbiUAD25FAA9uRwAPbkkAD25LAA9uTQAPblAAD25RAA9uUgAPblUAD25WAA9uWAAPblkAD25bAA9uXgAPbl8AD25gAA9uYwAPbmQAD25tAA9uhgAPbo8AD26RAA9ukwAPbpwAD26fAA9uogAPbqQAD27tAA9vEQAPbzgAD29cAA9vXwAPb2EAD29jAA9vZQAPb2cAD29pAA9vagAPb20AD2+GAA9vpwAPb6kAD2+rAA9vrQAPb68AD2+xAA9vswAPb7UAD2+3AA9v2AAPb9sAD2/eAA9v4QAPb+QAD2/nAA9v6gAPb+0AD2/wAA9v8gAPcG0AD3BvAA9wcQAPcHMAD3B2AA9wdwAPcHgAD3B5AA9wegAPcHwAD3B+AA9wfwAPcIAAD3CCAA9wgwAPcP4AD3EAAA9xAgAPcQQAD3EHAA9xCAAPcQkAD3EKAA9xCwAPcQ0AD3EPAA9xEAAPcREAD3ETAA9xFAAPcY8AD3GRAA9xlAAPcZYAD3GZAA9xmgAPcZsAD3GcAA9xnQAPcZ8AD3GhAA9xogAPcaMAD3GlAA9xpgAPcb8AD3HAAA9xwQAPccMAD3I+AA9yQAAPckIAD3JEAA9yRwAPckgAD3JJAA9ySgAPcksAD3JNAA9yTwAPclAAD3JRAA9yUwAPclQAD3LPAA9y0QAPctMAD3LVAA9y2AAPctkAD3LaAA9y2wAPctwAD3LeAA9y4AAPcuEAD3LiAA9y5AAPcuUAD3NgAA9zYgAPc2QAD3NmAA9zaQAPc2oAD3NrAA9zbAAPc20AD3NvAA9zcQAPc3IAD3NzAA9zdQAPc3YAD3PxAA9z8wAPc/UAD3P3AA9z+gAPc/sAD3P8AA9z/QAPc/4AD3QAAA90AgAPdAMAD3QEAA90BgAPdAcAD3SCAA90hAAPdIYAD3SIAA90iwAPdIwAD3SNAA90jgAPdI8AD3SRAA90kwAPdJQAD3SVAA90lwAPdJgAD3ThAA91BQAPdSwAD3VQAA91UwAPdVUAD3VXAA91WQAPdVsAD3VdAA91XgAPdWEAD3V6AA91lwAPdZkAD3WbAA91nQAPdZ8AD3WhAA91owAPdaUAD3XCAA91xQAPdcgAD3XLAA91zgAPddEAD3XUAA911wAPddkAD3ZUAA92VgAPdlgAD3ZaAA92XQAPdl4AD3ZfAA92YAAPdmEAD3ZjAA92ZQAPdmYAD3ZnAA92aQAPdmoAD3blAA925wAPdukAD3brAA927gAPdu8AD3bwAA928QAPdvIAD3b0AA929gAPdvcAD3b4AA92+gAPdvsAD3d2AA93eAAPd3oAD3d8AA93fwAPd4AAD3eBAA93ggAPd4MAD3eFAA93hwAPd4gAD3eJAA93iwAPd4wAD3gHAA94CQAPeAwAD3gOAA94EQAPeBIAD3gTAA94FAAPeBUAD3gXAA94GQAPeBoAD3gbAA94HQAPeB4AD3iZAA94mwAPeJ0AD3ifAA94ogAPeKMAD3ikAA94pQAPeKYAD3ioAA94qgAPeKsAD3isAA94rgAPeK8AD3kqAA95LAAPeS4AD3kwAA95MwAPeTQAD3k1AA95NgAPeTcAD3k5AA95OwAPeTwAD3k9AA95PwAPeUAAD3m7AA95vQAPeb8AD3nBAA95xAAPecUAD3nGAA95xwAPecgAD3nKAA95zAAPec0AD3nOAA950AAPedEAD3pkAA96hwAPeqcAD3rHAA96yQAPessAD3rNAA96zwAPetIAD3rTAA961AAPetcAD3rYAA962gAPetsAD3rdAA964AAPeuEAD3riAA965QAPeuYAD3rrAA97BAAPew0AD3sPAA97EQAPexoAD3sdAA97IAAPeyIAD3trAA97jwAPe7YAD3vaAA973QAPe98AD3vhAA974wAPe+UAD3vnAA976AAPe+sAD3wEAA98JQAPfCcAD3wpAA98KwAPfC0AD3wvAA98MQAPfDMAD3w1AA98VgAPfFkAD3xcAA98XwAPfGIAD3xlAA98aAAPfGsAD3xuAA98cAAPfOsAD3ztAA987wAPfPEAD3z0AA989QAPfPYAD3z3AA98+AAPfPoAD3z8AA98/QAPfP4AD30AAA99AQAPfXwAD31+AA99gAAPfYIAD32FAA99hgAPfYcAD32IAA99iQAPfYsAD32NAA99jgAPfY8AD32RAA99kgAPfg0AD34PAA9+EgAPfhQAD34XAA9+GAAPfhkAD34aAA9+GwAPfh0AD34fAA9+IAAPfiEAD34jAA9+JAAPfj0AD34+AA9+PwAPfkEAD368AA9+vgAPfsAAD37CAA9+xQAPfsYAD37HAA9+yAAPfskAD37LAA9+zQAPfs4AD37PAA9+0QAPftIAD39NAA9/TwAPf1EAD39TAA9/VgAPf1cAD39YAA9/WQAPf1oAD39cAA9/XgAPf18AD39gAA9/YgAPf2MAD3/eAA9/4AAPf+IAD3/kAA9/5wAPf+gAD3/pAA9/6gAPf+sAD3/tAA9/7wAPf/AAD3/xAA9/8wAPf/QAD4BvAA+AcQAPgHMAD4B1AA+AeAAPgHkAD4B6AA+AewAPgHwAD4B+AA+AgAAPgIEAD4CCAA+AhAAPgIUAD4EAAA+BAgAPgQQAD4EGAA+BCQAPgQoAD4ELAA+BDAAPgQ0AD4EPAA+BEQAPgRIAD4ETAA+BFQAPgRYAD4FfAA+BgwAPgaoAD4HOAA+B0QAPgdMAD4HVAA+B1wAPgdkAD4HbAA+B3AAPgd8AD4H4AA+CFQAPghcAD4IZAA+CGwAPgh0AD4IfAA+CIQAPgiMAD4JAAA+CQwAPgkYAD4JJAA+CTAAPgk8AD4JSAA+CVQAPglcAD4LSAA+C1AAPgtYAD4LYAA+C2wAPgtwAD4LdAA+C3gAPgt8AD4LhAA+C4wAPguQAD4LlAA+C5wAPgugAD4NjAA+DZQAPg2cAD4NpAA+DbAAPg20AD4NuAA+DbwAPg3AAD4NyAA+DdAAPg3UAD4N2AA+DeAAPg3kAD4P0AA+D9gAPg/gAD4P6AA+D/QAPg/4AD4P/AA+EAAAPhAEAD4QDAA+EBQAPhAYAD4QHAA+ECQAPhAoAD4SFAA+EhwAPhIkAD4SLAA+EjgAPhI8AD4SQAA+EkQAPhJIAD4SUAA+ElgAPhJcAD4SYAA+EmgAPhJsAD4UWAA+FGAAPhRoAD4UcAA+FHwAPhSAAD4UhAA+FIgAPhSMAD4UlAA+FJwAPhSgAD4UpAA+FKwAPhSwAD4WnAA+FqQAPhasAD4WtAA+FsAAPhbEAD4WyAA+FswAPhbQAD4W2AA+FuAAPhbkAD4W6AA+FvAAPhb0AD4Y4AA+GOgAPhjwAD4Y+AA+GQQAPhkIAD4ZDAA+GRAAPhkUAD4ZHAA+GSQAPhkoAD4ZLAA+GTQAPhk4AD4bhAA+HBAAPhyQAD4dEAA+HRgAPh0gAD4dKAA+HTAAPh08AD4dQAA+HUQAPh1QAD4dVAA+HVwAPh1gAD4dbAA+HXgAPh18AD4dgAA+HYwAPh2QAD4dpAA+HggAPh4sAD4eNAA+HjwAPh5gAD4ebAA+HngAPh6AAD4fpAA+IDQAPiDQAD4hYAA+IWwAPiF0AD4hfAA+IYQAPiGMAD4hlAA+IZgAPiGkAD4iCAA+IowAPiKUAD4inAA+IqQAPiKsAD4itAA+IrwAPiLEAD4izAA+I1AAPiNcAD4jaAA+I3QAPiOAAD4jjAA+I5gAPiOkAD4jsAA+I7gAPiWkAD4lrAA+JbQAPiW8AD4lyAA+JcwAPiXQAD4l1AA+JdgAPiXgAD4l6AA+JewAPiXwAD4l+AA+JfwAPifoAD4n8AA+J/gAPigAAD4oDAA+KBAAPigUAD4oGAA+KBwAPigkAD4oLAA+KDAAPig0AD4oPAA+KEAAPiosAD4qNAA+KkAAPipIAD4qVAA+KlgAPipcAD4qYAA+KmQAPipsAD4qdAA+KngAPip8AD4qhAA+KogAPirsAD4q8AA+KvQAPir8AD4s6AA+LPAAPiz4AD4tAAA+LQwAPi0QAD4tFAA+LRgAPi0cAD4tJAA+LSwAPi0wAD4tNAA+LTwAPi1AAD4vLAA+LzQAPi88AD4vRAA+L1AAPi9UAD4vWAA+L1wAPi9gAD4vaAA+L3AAPi90AD4veAA+L4AAPi+EAD4xcAA+MXgAPjGAAD4xiAA+MZQAPjGYAD4xnAA+MaAAPjGkAD4xrAA+MbQAPjG4AD4xvAA+McQAPjHIAD4ztAA+M7wAPjPEAD4zzAA+M9gAPjPcAD4z4AA+M+QAPjPoAD4z8AA+M/gAPjP8AD40AAA+NAgAPjQMAD41+AA+NgAAPjYIAD42EAA+NhwAPjYgAD42JAA+NigAPjYsAD42NAA+NjwAPjZAAD42RAA+NkwAPjZQAD43dAA+OAQAPjigAD45MAA+OTwAPjlEAD45TAA+OVQAPjlcAD45ZAA+OWgAPjl0AD452AA+OkwAPjpUAD46XAA+OmQAPjpsAD46dAA+OnwAPjqEAD46+AA+OwQAPjsQAD47HAA+OygAPjs0AD47QAA+O0wAPjtUAD49QAA+PUgAPj1QAD49WAA+PWQAPj1oAD49bAA+PXAAPj10AD49fAA+PYQAPj2IAD49jAA+PZQAPj2YAD4/hAA+P4wAPj+UAD4/nAA+P6gAPj+sAD4/sAA+P7QAPj+4AD4/wAA+P8gAPj/MAD4/0AA+P9gAPj/cAD5ByAA+QdAAPkHYAD5B4AA+QewAPkHwAD5B9AA+QfgAPkH8AD5CBAA+QgwAPkIQAD5CFAA+QhwAPkIgAD5EDAA+RBQAPkQgAD5EKAA+RDQAPkQ4AD5EPAA+REAAPkREAD5ETAA+RFQAPkRYAD5EXAA+RGQAPkRoAD5GVAA+RlwAPkZkAD5GbAA+RngAPkZ8AD5GgAA+RoQAPkaIAD5GkAA+RpgAPkacAD5GoAA+RqgAPkasAD5ImAA+SKAAPkioAD5IsAA+SLwAPkjAAD5IxAA+SMgAPkjMAD5I1AA+SNwAPkjgAD5I5AA+SOwAPkjwAD5K3AA+SuQAPkrwAD5K+AA+SwQAPksIAD5LDAA+SxAAPksUAD5LHAA+SyQAPksoAD5LLAA+SzQAPks4AD5NhAA+ThAAPk6QAD5PEAA+TxgAPk8gAD5PKAA+TzAAPk88AD5PQAA+T0QAPk9QAD5PVAA+T1wAPk9gAD5PaAA+T3QAPk94AD5PfAA+T4gAPk+MAD5PsAA+UBQAPlA4AD5QQAA+UEgAPlBsAD5QeAA+UIQAPlCMAD5RsAA+UkAAPlLcAD5TbAA+U3gAPlOAAD5TiAA+U5AAPlOYAD5ToAA+U6QAPlOwAD5UFAA+VJgAPlSgAD5UqAA+VLAAPlS4AD5UwAA+VMgAPlTQAD5U2AA+VVwAPlVoAD5VdAA+VYAAPlWMAD5VmAA+VaQAPlWwAD5VvAA+VcQAPlewAD5XuAA+V8AAPlfIAD5X1AA+V9gAPlfcAD5X4AA+V+QAPlfsAD5X9AA+V/gAPlf8AD5YBAA+WAgAPln0AD5Z/AA+WgQAPloMAD5aGAA+WhwAPlogAD5aJAA+WigAPlowAD5aOAA+WjwAPlpAAD5aSAA+WkwAPlw4AD5cQAA+XEwAPlxUAD5cYAA+XGQAPlxoAD5cbAA+XHAAPlx4AD5cgAA+XIQAPlyIAD5ckAA+XJQAPlz4AD5c/AA+XQAAPl0IAD5e9AA+XvwAPl8EAD5fDAA+XxgAPl8cAD5fIAA+XyQAPl8oAD5fMAA+XzgAPl88AD5fQAA+X0gAPl9MAD5hOAA+YUAAPmFIAD5hUAA+YVwAPmFgAD5hZAA+YWgAPmFsAD5hdAA+YXwAPmGAAD5hhAA+YYwAPmGQAD5jfAA+Y4QAPmOMAD5jlAA+Y6AAPmOkAD5jqAA+Y6wAPmOwAD5juAA+Y8AAPmPEAD5jyAA+Y9AAPmPUAD5lwAA+ZcgAPmXQAD5l2AA+ZeQAPmXoAD5l7AA+ZfAAPmX0AD5l/AA+ZgQAPmYIAD5mDAA+ZhQAPmYYAD5oBAA+aAwAPmgUAD5oHAA+aCgAPmgsAD5oMAA+aDQAPmg4AD5oQAA+aEgAPmhMAD5oUAA+aFgAPmhcAD5pgAA+ahAAPmqsAD5rPAA+a0gAPmtQAD5rWAA+a2AAPmtoAD5rcAA+a3QAPmuAAD5r5AA+bFgAPmxgAD5saAA+bHAAPmx4AD5sgAA+bIgAPmyQAD5tBAA+bRAAPm0cAD5tKAA+bTQAPm1AAD5tTAA+bVgAPm1gAD5vTAA+b1QAPm9cAD5vZAA+b3AAPm90AD5veAA+b3wAPm+AAD5viAA+b5AAPm+UAD5vmAA+b6AAPm+kAD5xkAA+cZgAPnGgAD5xqAA+cbQAPnG4AD5xvAA+ccAAPnHEAD5xzAA+cdQAPnHYAD5x3AA+ceQAPnHoAD5z1AA+c9wAPnPkAD5z7AA+c/gAPnP8AD50AAA+dAQAPnQIAD50EAA+dBgAPnQcAD50IAA+dCgAPnQsAD52GAA+diAAPnYsAD52NAA+dkAAPnZEAD52SAA+dkwAPnZQAD52WAA+dmAAPnZkAD52aAA+dnAAPnZ0AD54YAA+eGgAPnhwAD54eAA+eIQAPniIAD54jAA+eJAAPniUAD54nAA+eKQAPnioAD54rAA+eLQAPni4AD56pAA+eqwAPnq0AD56vAA+esgAPnrMAD560AA+etQAPnrYAD564AA+eugAPnrsAD568AA+evgAPnr8AD586AA+fPAAPnz4AD59AAA+fQwAPn0QAD59FAA+fRgAPn0cAD59JAA+fSwAPn0wAD59NAA+fTwAPn1AAD59hAA+fYgAPn2QAD5/fAA+f4QAPn+MAD5/lAA+f6AAPn+kAD5/qAA+f6wAPn+wAD5/uAA+f8AAPn/EAD5/yAA+f9AAPn/UAD6BwAA+gcgAPoHQAD6B2AA+geQAPoHoAD6B7AA+gfAAPoH0AD6B/AA+ggQAPoIIAD6CDAA+ghQAPoIYAD6EBAA+hAwAPoQYAD6EIAA+hCwAPoQwAD6ENAA+hDgAPoQ8AD6ERAA+hEwAPoRQAD6EVAA+hFwAPoRgAD6GrAA+hzgAPoe4AD6IOAA+iEAAPohIAD6IUAA+iFgAPohkAD6IaAA+iGwAPoh4AD6IfAA+iIQAPoiIAD6IkAA+iJwAPoigAD6IpAA+iLAAPoi0AD6IyAA+iSwAPolQAD6JWAA+iWAAPomEAD6JkAA+iZwAPomkAD6KyAA+i1gAPov0AD6MhAA+jJAAPoyYAD6MoAA+jKgAPoywAD6MuAA+jLwAPozIAD6NLAA+jbAAPo24AD6NwAA+jcgAPo3QAD6N2AA+jeAAPo3oAD6N8AA+jnQAPo6AAD6OjAA+jpgAPo6kAD6OsAA+jrwAPo7IAD6O1AA+jtwAPpDIAD6Q0AA+kNgAPpDgAD6Q7AA+kPAAPpD0AD6Q+AA+kPwAPpEEAD6RDAA+kRAAPpEUAD6RHAA+kSAAPpMMAD6TFAA+kxwAPpMkAD6TMAA+kzQAPpM4AD6TPAA+k0AAPpNIAD6TUAA+k1QAPpNYAD6TYAA+k2QAPpVQAD6VWAA+lWQAPpVsAD6VeAA+lXwAPpWAAD6VhAA+lYgAPpWQAD6VmAA+lZwAPpWgAD6VqAA+lawAPpYQAD6WFAA+lhgAPpYgAD6YDAA+mBQAPpgcAD6YJAA+mDAAPpg0AD6YOAA+mDwAPphAAD6YSAA+mFAAPphUAD6YWAA+mGAAPphkAD6aUAA+mlgAPppgAD6aaAA+mnQAPpp4AD6afAA+moAAPpqEAD6ajAA+mpQAPpqYAD6anAA+mqQAPpqoAD6clAA+nJwAPpykAD6crAA+nLgAPpy8AD6cwAA+nMQAPpzIAD6c0AA+nNgAPpzcAD6c4AA+nOgAPpzsAD6e2AA+nuAAPp7oAD6e8AA+nvwAPp8AAD6fBAA+nwgAPp8MAD6fFAA+nxwAPp8gAD6fJAA+nywAPp8wAD6hHAA+oSQAPqEsAD6hNAA+oUAAPqFEAD6hSAA+oUwAPqFQAD6hWAA+oWAAPqFkAD6haAA+oXAAPqF0AD6imAA+oygAPqPEAD6kVAA+pGAAPqRoAD6kcAA+pHgAPqSAAD6kiAA+pIwAPqSYAD6k/AA+pXAAPqV4AD6lgAA+pYgAPqWQAD6lmAA+paAAPqWoAD6mHAA+pigAPqY0AD6mQAA+pkwAPqZYAD6mZAA+pnAAPqZ4AD6oZAA+qGwAPqh4AD6ogAA+qIwAPqiQAD6olAA+qJgAPqicAD6opAA+qKwAPqiwAD6otAA+qLwAPqjAAD6qrAA+qrQAPqq8AD6qxAA+qtAAPqrUAD6q2AA+qtwAPqrgAD6q6AA+qvAAPqr0AD6q+AA+qwAAPqsEAD6s8AA+rPgAPq0EAD6tDAA+rRgAPq0cAD6tIAA+rSQAPq0oAD6tMAA+rTgAPq08AD6tQAA+rUgAPq1MAD6vOAA+r0AAPq9MAD6vVAA+r2AAPq9kAD6vaAA+r2wAPq9wAD6veAA+r4AAPq+EAD6viAA+r5AAPq+UAD6xgAA+sYgAPrGQAD6xmAA+saQAPrGoAD6xrAA+sbAAPrG0AD6xvAA+scQAPrHIAD6xzAA+sdQAPrHYAD6zxAA+s8wAPrPUAD6z3AA+s+gAPrPsAD6z8AA+s/QAPrP4AD60AAA+tAgAPrQMAD60EAA+tBgAPrQcAD62CAA+thAAPrYYAD62IAA+tiwAPrYwAD62NAA+tjgAPrY8AD62RAA+tkwAPrZQAD62VAA+tlwAPrZgAD64rAA+uTgAPrm4AD66OAA+ukAAPrpIAD66UAA+ulgAPrpkAD66aAA+umwAPrp4AD66fAA+uoQAPrqIAD66lAA+uqAAPrqkAD66qAA+urQAPrq4AD66zAA+uzAAPrtUAD67XAA+u2QAPruIAD67lAA+u6AAPruoAD68zAA+vVwAPr34AD6+iAA+vpQAPr6cAD6+pAA+vqwAPr60AD6+vAA+vsAAPr7MAD6/MAA+v7QAPr+8AD6/xAA+v8wAPr/UAD6/3AA+v+QAPr/sAD6/9AA+wHgAPsCEAD7AkAA+wJwAPsCoAD7AtAA+wMAAPsDMAD7A2AA+wOAAPsLMAD7C1AA+wtwAPsLkAD7C8AA+wvQAPsL4AD7C/AA+wwAAPsMIAD7DEAA+wxQAPsMYAD7DIAA+wyQAPsUQAD7FGAA+xSAAPsUoAD7FNAA+xTgAPsU8AD7FQAA+xUQAPsVMAD7FVAA+xVgAPsVcAD7FZAA+xWgAPsdUAD7HXAA+x2gAPsdwAD7HfAA+x4AAPseEAD7HiAA+x4wAPseUAD7HnAA+x6AAPsekAD7HrAA+x7AAPsgUAD7IGAA+yBwAPsgkAD7KEAA+yhgAPsogAD7KKAA+yjQAPso4AD7KPAA+ykAAPspEAD7KTAA+ylQAPspYAD7KXAA+ymQAPspoAD7MVAA+zFwAPsxkAD7MbAA+zHgAPsx8AD7MgAA+zIQAPsyIAD7MkAA+zJgAPsycAD7MoAA+zKgAPsysAD7OmAA+zqAAPs6oAD7OsAA+zrwAPs7AAD7OxAA+zsgAPs7MAD7O1AA+ztwAPs7gAD7O5AA+zuwAPs7wAD7Q3AA+0OQAPtDsAD7Q9AA+0QAAPtEEAD7RCAA+0QwAPtEQAD7RGAA+0SAAPtEkAD7RKAA+0TAAPtE0AD7TIAA+0ygAPtMwAD7TOAA+00QAPtNIAD7TTAA+01AAPtNUAD7TXAA+02QAPtNoAD7TbAA+03QAPtN4AD7UnAA+1SwAPtXIAD7WWAA+1mQAPtZsAD7WdAA+1nwAPtaEAD7WjAA+1pAAPtacAD7XAAA+13QAPtd8AD7XhAA+14wAPteUAD7XnAA+16QAPtesAD7YIAA+2CwAPtg4AD7YRAA+2FAAPthcAD7YaAA+2HQAPth8AD7aaAA+2nAAPtp4AD7agAA+2owAPtqQAD7alAA+2pgAPtqcAD7apAA+2qwAPtqwAD7atAA+2rwAPtrAAD7crAA+3LQAPtzAAD7cyAA+3NQAPtzYAD7c3AA+3OAAPtzkAD7c7AA+3PQAPtz4AD7c/AA+3QQAPt0IAD7e9AA+3vwAPt8EAD7fDAA+3xgAPt8cAD7fIAA+3yQAPt8oAD7fMAA+3zgAPt88AD7fQAA+30gAPt9MAD7hOAA+4UAAPuFMAD7hVAA+4WAAPuFkAD7haAA+4WwAPuFwAD7heAA+4YAAPuGEAD7hiAA+4ZAAPuGUAD7kIAA+5LAAPuVAAD7lwAA+5lwAPub4AD7neAA+6BQAPuikAD7pMAA+6cwAPupcAD7q7AA+63wAPuwYAD7sHAA+7CQAPuwsAD7sOAA+7EAAPuxMAD7sVAA+7FwAPuxoAD7scAA+7HgAPuyEAD7skAA+7JgAPuygAD7sqAA+7LQAPuzAAD7szAA+7OAAPu1EAD7tWAA+7WAAPu10AD7tgAA+7YgAPu6sAD7vPAA+79gAPvBoAD7wdAA+8HwAPvCEAD7wjAA+8JQAPvCcAD7woAA+8KwAPvEQAD7xpAA+8awAPvG0AD7xvAA+8cQAPvHMAD7x1AA+8dwAPvHkAD7x7AA+8oAAPvKMAD7ymAA+8qQAPvKwAD7yvAA+8sgAPvLUAD7y4AA+8uwAPvL0AD704AA+9OgAPvT0AD70/AA+9QgAPvUMAD71EAA+9RQAPvUYAD71IAA+9SgAPvUsAD71MAA+9TgAPvU8AD71gAA+9YQAPvWMAD73eAA+94AAPveIAD73kAA+95wAPvegAD73pAA+96gAPvesAD73tAA+97wAPvfAAD73xAA+98wAPvfQAD75vAA++cQAPvnQAD752AA++eQAPvnoAD757AA++fAAPvn0AD75/AA++gQAPvoIAD76DAA++hQAPvoYAD76XAA++mAAPvpoAD78VAA+/FwAPvxkAD78bAA+/HgAPvx8AD78gAA+/IQAPvyIAD78kAA+/JgAPvycAD78oAA+/KgAPvysAD7+mAA+/qAAPv6sAD7+tAA+/sAAPv7EAD7+yAA+/swAPv7QAD7+2AA+/uAAPv7kAD7+6AA+/vAAPv70AD7/OAA+/zwAPv9EAD8BMAA/ATgAPwFAAD8BSAA/AVQAPwFYAD8BXAA/AWAAPwFkAD8BbAA/AXQAPwF4AD8BfAA/AYQAPwGIAD8DdAA/A3wAPwOIAD8DkAA/A5wAPwOgAD8DpAA/A6gAPwOsAD8DtAA/A7wAPwPAAD8DxAA/A8wAPwPQAD8ENAA/BDgAPwQ8AD8ERAA/BjAAPwY4AD8GQAA/BkgAPwZUAD8GWAA/BlwAPwZgAD8GZAA/BmwAPwZ0AD8GeAA/BnwAPwaEAD8GiAA/CHQAPwh8AD8IiAA/CJAAPwicAD8IoAA/CKQAPwioAD8IrAA/CLQAPwi8AD8IwAA/CMQAPwjMAD8I0AA/CTwAPwmgAD8J1AA/CeAAPwnsAD8J+AA/CiwAPwo4AD8KRAA/ClAAPwpYAD8KfAA/DMgAPw1UAD8N1AA/DlQAPw5cAD8OZAA/DmwAPw50AD8OgAA/DoQAPw6IAD8OlAA/DpgAPw6gAD8OpAA/DqwAPw64AD8OvAA/DsAAPw7MAD8O0AA/DuQAPw9IAD8PbAA/D3QAPw98AD8PoAA/D6wAPw+4AD8PwAA/EOQAPxF0AD8SEAA/EqAAPxKsAD8StAA/ErwAPxLEAD8SzAA/EtQAPxLYAD8S5AA/E0gAPxPMAD8T1AA/E9wAPxPkAD8T7AA/E/QAPxP8AD8UBAA/FAwAPxSQAD8UnAA/FKgAPxS0AD8UwAA/FMwAPxTYAD8U5AA/FPAAPxT4AD8W5AA/FuwAPxb0AD8W/AA/FwgAPxcMAD8XEAA/FxQAPxcYAD8XIAA/FygAPxcsAD8XMAA/FzgAPxc8AD8ZKAA/GTAAPxk4AD8ZQAA/GUwAPxlQAD8ZVAA/GVgAPxlcAD8ZZAA/GWwAPxlwAD8ZdAA/GXwAPxmAAD8bbAA/G3QAPxuAAD8biAA/G5QAPxuYAD8bnAA/G6AAPxukAD8brAA/G7QAPxu4AD8bvAA/G8QAPxvIAD8cLAA/HDAAPxw0AD8cPAA/HigAPx4wAD8eOAA/HkAAPx5MAD8eUAA/HlQAPx5YAD8eXAA/HmQAPx5sAD8ecAA/HnQAPx58AD8egAA/IGwAPyB0AD8gfAA/IIQAPyCQAD8glAA/IJgAPyCcAD8goAA/IKgAPyCwAD8gtAA/ILgAPyDAAD8gxAA/IrAAPyK4AD8iwAA/IsgAPyLUAD8i2AA/ItwAPyLgAD8i5AA/IuwAPyL0AD8i+AA/IvwAPyMEAD8jCAA/JPQAPyT8AD8lBAA/JQwAPyUYAD8lHAA/JSAAPyUkAD8lKAA/JTAAPyU4AD8lPAA/JUAAPyVIAD8lTAA/JzgAPydAAD8nSAA/J1AAPydcAD8nYAA/J2QAPydoAD8nbAA/J3QAPyd8AD8ngAA/J4QAPyeMAD8nkAA/KLQAPylEAD8p4AA/KnAAPyp8AD8qhAA/KowAPyqUAD8qnAA/KqQAPyqoAD8qtAA/KxgAPyuMAD8rlAA/K5wAPyukAD8rrAA/K7QAPyu8AD8rxAA/LDgAPyxEAD8sUAA/LFwAPyxoAD8sdAA/LIAAPyyMAD8slAA/LoAAPy6IAD8ukAA/LpgAPy6kAD8uqAA/LqwAPy6wAD8utAA/LrwAPy7EAD8uyAA/LswAPy7UAD8u2AA/MMQAPzDMAD8w1AA/MNwAPzDoAD8w7AA/MPAAPzD0AD8w+AA/MQAAPzEIAD8xDAA/MRAAPzEYAD8xHAA/MwgAPzMQAD8zGAA/MyAAPzMsAD8zMAA/MzQAPzM4AD8zPAA/M0QAPzNMAD8zUAA/M1QAPzNcAD8zYAA/NUwAPzVUAD81YAA/NWgAPzV0AD81eAA/NXwAPzWAAD81hAA/NYwAPzWUAD81mAA/NZwAPzWkAD81qAA/N5QAPzecAD83pAA/N6wAPze4AD83vAA/N8AAPzfEAD83yAA/N9AAPzfYAD833AA/N+AAPzfoAD837AA/OdgAPzngAD856AA/OfAAPzn8AD86AAA/OgQAPzoIAD86DAA/OhQAPzocAD86IAA/OiQAPzosAD86MAA/PBwAPzwkAD88LAA/PDQAPzxAAD88RAA/PEgAPzxMAD88UAA/PFgAPzxgAD88ZAA/PGgAPzxwAD88dAA/PsAAPz9MAD8/zAA/QEwAP0BUAD9AXAA/QGQAP0BsAD9AeAA/QHwAP0CAAD9AjAA/QJAAP0CYAD9AnAA/QKgAP0C0AD9AuAA/QLwAP0DIAD9AzAA/QOAAP0FEAD9BaAA/QXAAP0F4AD9BnAA/QagAP0G0AD9BvAA/QuAAP0NwAD9EDAA/RJwAP0SoAD9EsAA/RLgAP0TAAD9EyAA/RNAAP0TUAD9E4AA/RUQAP0XIAD9F0AA/RdgAP0XgAD9F6AA/RfAAP0X4AD9GAAA/RggAP0aMAD9GmAA/RqQAP0awAD9GvAA/RsgAP0bUAD9G4AA/RuwAP0b0AD9I4AA/SOgAP0jwAD9I+AA/SQQAP0kIAD9JDAA/SRAAP0kUAD9JHAA/SSQAP0koAD9JLAA/STQAP0k4AD9LJAA/SywAP0s0AD9LPAA/S0gAP0tMAD9LUAA/S1QAP0tYAD9LYAA/S2gAP0tsAD9LcAA/S3gAP0t8AD9NaAA/TXAAP018AD9NhAA/TZAAP02UAD9NmAA/TZwAP02gAD9NqAA/TbAAP020AD9NuAA/TcAAP03EAD9OKAA/TiwAP04wAD9OOAA/UCQAP1AsAD9QNAA/UDwAP1BIAD9QTAA/UFAAP1BUAD9QWAA/UGAAP1BoAD9QbAA/UHAAP1B4AD9QfAA/UmgAP1JwAD9SeAA/UoAAP1KMAD9SkAA/UpQAP1KYAD9SnAA/UqQAP1KsAD9SsAA/UrQAP1K8AD9SwAA/VKwAP1S0AD9UvAA/VMQAP1TQAD9U1AA/VNgAP1TcAD9U4AA/VOgAP1TwAD9U9AA/VPgAP1UAAD9VBAA/VvAAP1b4AD9XAAA/VwgAP1cUAD9XGAA/VxwAP1cgAD9XJAA/VywAP1c0AD9XOAA/VzwAP1dEAD9XSAA/WTQAP1k8AD9ZRAA/WUwAP1lYAD9ZXAA/WWAAP1lkAD9ZaAA/WXAAP1l4AD9ZfAA/WYAAP1mIAD9ZjAA/WrAAP1tAAD9b3AA/XGwAP1x4AD9cgAA/XIgAP1yQAD9cmAA/XKAAP1ykAD9csAA/XRQAP12IAD9dkAA/XZgAP12gAD9dqAA/XbAAP124AD9dwAA/XjQAP15AAD9eTAA/XlgAP15kAD9ecAA/XnwAP16IAD9ekAA/YHwAP2CEAD9gjAA/YJQAP2CgAD9gpAA/YKgAP2CsAD9gsAA/YLgAP2DAAD9gxAA/YMgAP2DQAD9g1AA/YsAAP2LIAD9i0AA/YtgAP2LkAD9i6AA/YuwAP2LwAD9i9AA/YvwAP2MEAD9jCAA/YwwAP2MUAD9jGAA/ZQQAP2UMAD9lFAA/ZRwAP2UoAD9lLAA/ZTAAP2U0AD9lOAA/ZUAAP2VIAD9lTAA/ZVAAP2VYAD9lXAA/Z0gAP2dQAD9nXAA/Z2QAP2dwAD9ndAA/Z3gAP2d8AD9ngAA/Z4gAP2eQAD9nlAA/Z5gAP2egAD9npAA/aZAAP2mYAD9poAA/aagAP2m0AD9puAA/abwAP2nAAD9pxAA/acwAP2nUAD9p2AA/adwAP2nkAD9p6AA/a9QAP2vcAD9r5AA/a+wAP2v4AD9r/AA/bAAAP2wEAD9sCAA/bBAAP2wYAD9sHAA/bCAAP2woAD9sLAA/bhgAP24gAD9uLAA/bjQAP25AAD9uRAA/bkgAP25MAD9uUAA/blgAP25gAD9uZAA/bmgAP25wAD9udAA/cMAAP3FMAD9xzAA/ckwAP3JUAD9yXAA/cmQAP3JsAD9yeAA/cnwAP3KAAD9yjAA/cpAAP3KYAD9ynAA/cqQAP3KwAD9ytAA/crgAP3LEAD9yyAA/ctwAP3NAAD9zZAA/c2wAP3N0AD9zmAA/c6QAP3OwAD9zuAA/dNwAP3VsAD92CAA/dpgAP3akAD92rAA/drQAP3a8AD92xAA/dswAP3bQAD923AA/d0AAP3fEAD93zAA/d9QAP3fcAD935AA/d+wAP3f0AD93/AA/eAQAP3iIAD94lAA/eKAAP3isAD94uAA/eMQAP3jQAD943AA/eOgAP3jwAD963AA/euQAP3rsAD969AA/ewAAP3sEAD97CAA/ewwAP3sQAD97GAA/eyAAP3skAD97KAA/ezAAP3s0AD99IAA/fSgAP30wAD99OAA/fUQAP31IAD99TAA/fVAAP31UAD99XAA/fWQAP31oAD99bAA/fXQAP314AD9/ZAA/f2wAP394AD9/gAA/f4wAP3+QAD9/lAA/f5gAP3+cAD9/pAA/f6wAP3+wAD9/tAA/f7wAP3/AAD+AJAA/gCgAP4AsAD+ANAA/giAAP4IoAD+CMAA/gjgAP4JEAD+CSAA/gkwAP4JQAD+CVAA/glwAP4JkAD+CaAA/gmwAP4J0AD+CeAA/hGQAP4RsAD+EdAA/hHwAP4SIAD+EjAA/hJAAP4SUAD+EmAA/hKAAP4SoAD+ErAA/hLAAP4S4AD+EvAA/hqgAP4awAD+GuAA/hsAAP4bMAD+G0AA/htQAP4bYAD+G3AA/huQAP4bsAD+G8AA/hvQAP4b8AD+HAAA/iOwAP4j0AD+I/AA/iQQAP4kQAD+JFAA/iRgAP4kcAD+JIAA/iSgAP4kwAD+JNAA/iTgAP4lAAD+JRAA/izAAP4s4AD+LQAA/i0gAP4tUAD+LWAA/i1wAP4tgAD+LZAA/i2wAP4t0AD+LeAA/i3wAP4uEAD+LiAA/jKwAP408AD+N2AA/jmgAP450AD+OfAA/joQAP46MAD+OlAA/jpwAP46gAD+OrAA/jxAAP4+EAD+PjAA/j5QAP4+cAD+PpAA/j6wAP4+0AD+PvAA/kDAAP5A8AD+QSAA/kFQAP5BgAD+QbAA/kHgAP5CEAD+QjAA/kngAP5KAAD+SiAA/kpAAP5KcAD+SoAA/kqQAP5KoAD+SrAA/krQAP5K8AD+SwAA/ksQAP5LMAD+S0AA/lLwAP5TEAD+UzAA/lNQAP5TgAD+U5AA/lOgAP5TsAD+U8AA/lPgAP5UAAD+VBAA/lQgAP5UQAD+VFAA/lwAAP5cIAD+XEAA/lxgAP5ckAD+XKAA/lywAP5cwAD+XNAA/lzwAP5dEAD+XSAA/l0wAP5dUAD+XWAA/mUQAP5lMAD+ZWAA/mWAAP5lsAD+ZcAA/mXQAP5l4AD+ZfAA/mYQAP5mMAD+ZkAA/mZQAP5mcAD+ZoAA/m4wAP5uUAD+bnAA/m6QAP5uwAD+btAA/m7gAP5u8AD+bwAA/m8gAP5vQAD+b1AA/m9gAP5vgAD+b5AA/ndAAP53YAD+d4AA/negAP530AD+d+AA/nfwAP54AAD+eBAA/ngwAP54UAD+eGAA/nhwAP54kAD+eKAA/oBQAP6AcAD+gJAA/oCwAP6A4AD+gPAA/oEAAP6BEAD+gSAA/oFAAP6BYAD+gXAA/oGAAP6BoAD+gbAA/oLAAP6C0AD+gvAA/oQAAP6EkAD+hMAA/oTwAP6FEAD+iKAA/ojQAP6I8AD+iSAA/olQAP6JgAD+ibAA/pHgAP6UIAD+lmAA/piQAP6bAAD+nQAA/p9wAP6h4AD+o+AA/qYgAP6oYAD+qIAA/qiwAP6o0AD+qPAA/qkQAP6pQAD+qXAA/qmQAP6psAD+qeAA/qoAAP6qIAD+qlAA/qqAAP6qkAD+quAA/qxwAP6swAD+rOAA/q0wAP6tYAD+rYAA/rIQAP60UAD+tsAA/rkAAP65MAD+uVAA/rlwAP65kAD+ubAA/rnQAP654AD+uhAA/rugAP698AD+vhAA/r4wAP6+UAD+vnAA/r6QAP6+sAD+vtAA/r7wAP6/EAD+wWAA/sGQAP7BwAD+wfAA/sIgAP7CUAD+woAA/sKwAP7C4AD+wxAA/sMwAP7K4AD+ywAA/sswAP7LUAD+y4AA/suQAP7LoAD+y7AA/svAAP7L4AD+zAAA/swQAP7MIAD+zEAA/sxQAP7NYAD+zXAA/s2QAP7VQAD+1WAA/tWAAP7VoAD+1dAA/tXgAP7V8AD+1gAA/tYQAP7WMAD+1lAA/tZgAP7WcAD+1pAA/tagAP7eUAD+3nAA/t6gAP7ewAD+3vAA/t8AAP7fEAD+3yAA/t8wAP7fUAD+33AA/t+AAP7fkAD+37AA/t/AAP7g0AD+4OAA/uEAAP7osAD+6NAA/ujwAP7pEAD+6UAA/ulQAP7pYAD+6XAA/umAAP7poAD+6cAA/unQAP7p4AD+6gAA/uoQAP7xwAD+8eAA/vIQAP7yMAD+8mAA/vJwAP7ygAD+8pAA/vKgAP7ywAD+8uAA/vLwAP7zAAD+8yAA/vMwAP70QAD+9FAA/vRwAP78IAD+/EAA/vxgAP78gAD+/LAA/vzAAP780AD+/OAA/vzwAP79EAD+/TAA/v1AAP79UAD+/XAA/v2AAP8FMAD/BVAA/wWAAP8FoAD/BdAA/wXgAP8F8AD/BgAA/wYQAP8GMAD/BlAA/wZgAP8GcAD/BpAA/wagAP8IMAD/CEAA/whQAP8IcAD/ECAA/xBAAP8QYAD/EIAA/xCwAP8QwAD/ENAA/xDgAP8Q8AD/ERAA/xEwAP8RQAD/EVAA/xFwAP8RgAD/GTAA/xlQAP8ZgAD/GaAA/xnQAP8Z4AD/GfAA/xoAAP8aEAD/GjAA/xpQAP8aYAD/GnAA/xqQAP8aoAD/HNAA/x5gAP8esAD/HuAA/x8wAP8fYAD/H4AA/yAAAP8pMAD/K2AA/y1gAP8vYAD/L4AA/y+gAP8vwAD/L+AA/zAQAP8wIAD/MDAA/zBgAP8wc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AEASUABAElgAQBJgAEASbABAEnAAQBJ0AEASeABAEnwAQBKEAEASjABAEpAAQBKUAEASnABAEqAAQBSMAEAUlABAFJwAQBSkAEAUsABAFLQAQBS4AEAUvABAFMAAQBTIAEAU0ABAFNQAQBTYAEAU4ABAFOQAQBbQAEAW2ABAFuAAQBboAEAW9ABAFvgAQBb8AEAXAABAFwQAQBcMAEAXFABAFxgAQBccAEAXJABAFygAQBhMAEAY3ABAGXgAQBoIAEAaFABAGhwAQBokAEAaLABAGjQAQBo8AEAaQABAGkwAQBqwAEAbJABAGywAQBs0AEAbPABAG0QAQBtMAEAbVABAG1wAQBvQAEAb3ABAG+gAQBv0AEAcAABAHAwAQBwYAEAcJABAHCwAQB4YAEAeIABAHigAQB4wAEAePABAHkAAQB5EAEAeSABAHkwAQB5UAEAeXABAHmAAQB5kAEAebABAHnAAQCBcAEAgZABAIHAAQCB4AEAghABAIIgAQCCMAEAgkABAIJQAQCCcAEAgpABAIKgAQCCsAEAgtABAILgAQCKkAEAirABAIrQAQCK8AEAiyABAIswAQCLQAEAi1ABAItgAQCLgAEAi6ABAIuwAQCLwAEAi+ABAIvwAQCToAEAk8ABAJPwAQCUEAEAlEABAJRQAQCUYAEAlHABAJSAAQCUoAEAlMABAJTQAQCU4AEAlQABAJUQAQCcwAEAnOABAJ0AAQCdIAEAnVABAJ1gAQCdcAEAnYABAJ2QAQCdsAEAndABAJ3gAQCd8AEAnhABAJ4gAQCl0AEApfABAKYQAQCmMAEApmABAKZwAQCmgAEAppABAKagAQCmwAEApuABAKbwAQCnAAEApyABAKcwAQCu4AEArwABAK8wAQCvUAEAr4ABAK+QAQCvoAEAr7ABAK/AAQCv4AEAsAABALAQAQCwIAEAsEABALBQAQCxYAEAsbABALHgAQCyAAEAslABALXgAQC2EAEAtjABALZgAQC2kAEAtsABALbwAQC/IAEAwWABAMOgAQDF0AEAyEABAMpAAQDMsAEAzyABANEgAQDTYAEA1aABANXAAQDV8AEA1hABANYwAQDWUAEA1oABANawAQDW0AEA1vABANcgAQDXQAEA12ABANeQAQDXwAEA19ABANhgAQDZ8AEA2kABANpgAQDasAEA2uABANsAAQDfkAEA4dABAORAAQDmgAEA5rABAObQAQDm8AEA5xABAOcwAQDnUAEA52ABAOeQAQDpIAEA63ABAOuQAQDrsAEA69ABAOvwAQDsEAEA7DABAOxQAQDscAEA7JABAO7gAQDvEAEA70ABAO9wAQDvoAEA79ABAPAAAQDwMAEA8GABAPCQAQDwsAEA+GABAPiAAQD4sAEA+NABAPkAAQD5EAEA+SABAPkwAQD5QAEA+WABAPmAAQD5kAEA+aABAPnAAQD50AEA+uABAPrwAQD7EAEBAsABAQLgAQEDAAEBAyABAQNQAQEDYAEBA3ABAQOAAQEDkAEBA7ABAQPQAQED4AEBA/ABAQQQAQEEIAEBC9ABAQvwAQEMIAEBDEABAQxwAQEMgAEBDJABAQygAQEMsAEBDNABAQzwAQENAAEBDRABAQ0wAQENQAEBDlABAQ5gAQEOgAEBFjABARZQAQEWcAEBFpABARbAAQEW0AEBFuABARbwAQEXAAEBFyABARdAAQEXUAEBF2ABAReAAQEXkAEBH0ABAR9gAQEfkAEBH7ABAR/gAQEf8AEBIAABASAQAQEgIAEBIEABASBgAQEgcAEBIIABASCgAQEgsAEBIcABASHQAQEh8AEBKaABASnAAQEp4AEBKgABASowAQEqQAEBKlABASpgAQEqcAEBKpABASqwAQEqwAEBKtABASrwAQErAAEBMrABATLQAQEzAAEBMyABATNQAQEzYAEBM3ABATOAAQEzkAEBM7ABATPQAQEz4AEBM/ABATQQAQE0IAEBNbABATXAAQE10AEBNfABAT2gAQE9wAEBPeABAT4AAQE+MAEBPkABAT5QAQE+YAEBPnABAT6QAQE+sAEBPsABAT7QAQE+8AEBPwABAUawAQFG0AEBRwABAUcgAQFHUAEBR2ABAUdwAQFHgAEBR5ABAUewAQFH0AEBR+ABAUfwAQFIEAEBSCABAUoQAQFLoAEBS7ABAUvAAQFL4AEBTPABAU1AAQFNcAEBTZABAU3gAQFVkAEBVbABAVXQAQFV8AEBViABAVYwAQFWQAEBVlABAVZgAQFWgAEBVqABAVawAQFWwAEBVuABAVbwAQFeoAEBXsABAV7gAQFfAAEBXzABAV9AAQFfUAEBX2ABAV9wAQFfkAEBX7ABAV/AAQFf0AEBX/ABAWAAAQFnsAEBZ9ABAWgAAQFoIAEBaFABAWhgAQFocAEBaIABAWiQAQFosAEBaNABAWjgAQFo8AEBaRABAWkgAQFyUAEBdIABAXaAAQF4gAEBeKABAXjAAQF44AEBeQABAXkwAQF5QAEBeVABAXmAAQF5kAEBebABAXnAAQF54AEBehABAXogAQF6MAEBemABAXpwAQF6wAEBfFABAXzgAQF9AAEBfSABAX2wAQF94AEBfhABAX4wAQGCwAEBhQABAYdwAQGJsAEBieABAYoAAQGKIAEBikABAYpgAQGKgAEBipABAYrAAQGMUAEBjmABAY6AAQGOoAEBjsABAY7gAQGPAAEBjyABAY9AAQGPYAEBkXABAZGgAQGR0AEBkgABAZIwAQGSYAEBkpABAZLAAQGS8AEBkxABAZrAAQGa4AEBmwABAZsgAQGbUAEBm2ABAZtwAQGbgAEBm5ABAZuwAQGb0AEBm+ABAZvwAQGcEAEBnCABAaPQAQGj8AEBpBABAaQwAQGkYAEBpHABAaSAAQGkkAEBpKABAaTAAQGk4AEBpPABAaUAAQGlIAEBpTABAazgAQGtAAEBrTABAa1QAQGtgAEBrZABAa2gAQGtsAEBrcABAa3gAQGuAAEBrhABAa4gAQGuQAEBrlABAa/gAQGv8AEBsAABAbAgAQG30AEBt/ABAbgQAQG4MAEBuGABAbhwAQG4gAEBuJABAbigAQG4wAEBuOABAbjwAQG5AAEBuSABAbkwAQHA4AEBwQABAcEgAQHBQAEBwXABAcGAAQHBkAEBwaABAcGwAQHB0AEBwfABAcIAAQHCEAEBwjABAcJAAQHJ8AEByhABAcowAQHKUAEByoABAcqQAQHKoAEByrABAcrAAQHK4AEBywABAcsQAQHLIAEBy0ABActQAQHTAAEB0yABAdNAAQHTYAEB05ABAdOgAQHTsAEB08ABAdPQAQHT8AEB1BABAdQgAQHUMAEB1FABAdRgAQHcEAEB3DABAdxQAQHccAEB3KABAdywAQHcwAEB3NABAdzgAQHdAAEB3SABAd0wAQHdQAEB3WABAd1wAQHiAAEB5EABAeawAQHo8AEB6SABAelAAQHpYAEB6YABAemgAQHpwAEB6dABAeoAAQHrkAEB7WABAe2AAQHtoAEB7cABAe3gAQHuAAEB7iABAe5AAQHwEAEB8EABAfBwAQHwoAEB8NABAfEAAQHxMAEB8WABAfGAAQH5MAEB+VABAflwAQH5kAEB+cABAfnQAQH54AEB+fABAfoAAQH6IAEB+kABAfpQAQH6YAEB+oABAfqQAQICQAECAmABAgKAAQICoAECAtABAgLgAQIC8AECAwABAgMQAQIDMAECA1ABAgNgAQIDcAECA5ABAgOgAQILUAECC3ABAguQAQILsAECC+ABAgvwAQIMAAECDBABAgwgAQIMQAECDGABAgxwAQIMgAECDKABAgywAQIUYAECFIABAhSwAQIU0AECFQABAhUQAQIVIAECFTABAhVAAQIVYAECFYABAhWQAQIVoAECFcABAhXQAQIdgAECHaABAh3AAQId4AECHhABAh4gAQIeMAECHkABAh5QAQIecAECHpABAh6gAQIesAECHtABAh7gAQImkAECJrABAibQAQIm8AECJyABAicwAQInQAECJ1ABAidgAQIngAECJ6ABAiewAQInwAECJ+ABAifwAQIvoAECL8ABAi/gAQIwAAECMDABAjBAAQIwUAECMGABAjBwAQIwkAECMLABAjDAAQIw0AECMPABAjEAAQI6MAECPGABAj5gAQJAYAECQIABAkCgAQJAwAECQOABAkEQAQJBIAECQTABAkFgAQJBcAECQZABAkGgAQJBwAECQfABAkIAAQJCEAECQkABAkJQAQJCoAECRDABAkTAAQJE4AECRQABAkWQAQJFwAECRfABAkYQAQJKoAECTOABAk9QAQJRkAECUcABAlHgAQJSAAECUiABAlJAAQJSYAECUnABAlKgAQJUMAECVkABAlZgAQJWgAECVqABAlbAAQJW4AECVwABAlcgAQJXQAECWVABAlmAAQJZsAECWeABAloQAQJaQAECWnABAlqgAQJa0AECWvABAmKgAQJiwAECYuABAmMAAQJjMAECY0ABAmNQAQJjYAECY3ABAmOQAQJjsAECY8ABAmPQAQJj8AECZAABAmuwAQJr0AECa/ABAmwQAQJsQAECbFABAmxgAQJscAECbIABAmygAQJswAECbNABAmzgAQJtAAECbRABAnTAAQJ04AECdRABAnUwAQJ1YAECdXABAnWAAQJ1kAECdaABAnXAAQJ14AECdfABAnYAAQJ2IAECdjABAnfAAQJ30AECd+ABAngAAQJ/sAECf9ABAn/wAQKAEAECgEABAoBQAQKAYAECgHABAoCAAQKAoAECgMABAoDQAQKA4AECgQABAoEQAQKIwAECiOABAokAAQKJIAECiVABAolgAQKJcAECiYABAomQAQKJsAECidABAongAQKJ8AECihABAoogAQKR0AECkfABApIQAQKSMAECkmABApJwAQKSgAECkpABApKgAQKSwAECkuABApLwAQKTAAECkyABApMwAQKa4AECmwABApsgAQKbQAECm3ABApuAAQKbkAECm6ABApuwAQKb0AECm/ABApwAAQKcEAECnDABApxAAQKj8AECpBABAqQwAQKkUAECpIABAqSQAQKkoAECpLABAqTAAQKk4AECpQABAqUQAQKlIAECpUABAqVQAQKp4AECrCABAq6QAQKw0AECsQABArEgAQKxQAECsWABArGAAQKxoAECsbABArHgAQKzcAECtUABArVgAQK1gAECtaABArXAAQK14AECtgABArYgAQK38AECuCABArhQAQK4gAECuLABArjgAQK5EAECuUABArlgAQLBEAECwTABAsFQAQLBcAECwaABAsGwAQLBwAECwdABAsHgAQLCAAECwiABAsIwAQLCQAECwmABAsJwAQLKIAECykABAspgAQLKgAECyrABAsrAAQLK0AECyuABAsrwAQLLEAECyzABAstAAQLLUAECy3ABAsuAAQLTMAEC01ABAtNwAQLTkAEC08ABAtPQAQLT4AEC0/ABAtQAAQLUIAEC1EABAtRQAQLUYAEC1IABAtSQAQLcQAEC3GABAtyQAQLcsAEC3OABAtzwAQLdAAEC3RABAt0gAQLdQAEC3WABAt1wAQLdgAEC3aABAt2wAQLlYAEC5YABAuWgAQLlwAEC5fABAuYAAQLmEAEC5iABAuYwAQLmUAEC5nABAuaAAQLmkAEC5rABAubAAQLucAEC7pABAu6wAQLu0AEC7wABAu8QAQLvIAEC7zABAu9AAQLvYAEC74ABAu+QAQLvoAEC78ABAu/QAQL3gAEC96ABAvfAAQL34AEC+BABAvggAQL4MAEC+EABAvhQAQL4cAEC+JABAvigAQL4sAEC+NABAvjgAQMCEAEDBEABAwZAAQMIQAEDCGABAwiAAQMIoAEDCMABAwjwAQMJAAEDCRABAwlAAQMJUAEDCXABAwmAAQMJoAEDCdABAwngAQMJ8AEDCiABAwowAQMKgAEDDBABAwygAQMMwAEDDOABAw1wAQMNoAEDDdABAw3wAQMSgAEDFMABAxcwAQMZcAEDGaABAxnAAQMZ4AEDGgABAxogAQMaQAEDGlABAxqAAQMcEAEDHiABAx5AAQMeYAEDHoABAx6gAQMewAEDHuABAx8AAQMfIAEDITABAyFgAQMhkAEDIcABAyHwAQMiIAEDIlABAyKAAQMisAEDItABAyqAAQMqoAEDKsABAyrgAQMrEAEDKyABAyswAQMrQAEDK1ABAytwAQMrkAEDK6ABAyuwAQMr0AEDK+ABAzOQAQMzsAEDM9ABAzPwAQM0IAEDNDABAzRAAQM0UAEDNGABAzSAAQM0oAEDNLABAzTAAQM04AEDNPABAzygAQM8wAEDPPABAz0QAQM9QAEDPVABAz1gAQM9cAEDPYABAz2gAQM9wAEDPdABAz3gAQM+AAEDPhABAz+gAQM/sAEDP8ABAz/gAQNHkAEDR7ABA0fQAQNH8AEDSCABA0gwAQNIQAEDSFABA0hgAQNIgAEDSKABA0iwAQNIwAEDSOABA0jwAQNQoAEDUMABA1DgAQNRAAEDUTABA1FAAQNRUAEDUWABA1FwAQNRkAEDUbABA1HAAQNR0AEDUfABA1IAAQNZsAEDWdABA1nwAQNaEAEDWkABA1pQAQNaYAEDWnABA1qAAQNaoAEDWsABA1rQAQNa4AEDWwABA1sQAQNiwAEDYuABA2MAAQNjIAEDY1ABA2NgAQNjcAEDY4ABA2OQAQNjsAEDY9ABA2PgAQNj8AEDZBABA2QgAQNr0AEDa/ABA2wQAQNsMAEDbGABA2xwAQNsgAEDbJABA2ygAQNswAEDbOABA2zwAQNtAAEDbSABA20wAQNxwAEDdAABA3ZwAQN4sAEDeOABA3kAAQN5IAEDeUABA3lgAQN5gAEDeZABA3nAAQN7UAEDfSABA31AAQN9YAEDfYABA32gAQN9wAEDfeABA34AAQN/0AEDgAABA4AwAQOAYAEDgJABA4DAAQOA8AEDgSABA4FAAQOI8AEDiRABA4kwAQOJUAEDiYABA4mQAQOJoAEDibABA4nAAQOJ4AEDigABA4oQAQOKIAEDikABA4pQAQOSAAEDkiABA5JAAQOSYAEDkpABA5KgAQOSsAEDksABA5LQAQOS8AEDkxABA5MgAQOTMAEDk1ABA5NgAQObEAEDmzABA5tQAQObcAEDm6ABA5uwAQObwAEDm9ABA5vgAQOcAAEDnCABA5wwAQOcQAEDnGABA5xwAQOkIAEDpEABA6RwAQOkkAEDpMABA6TQAQOk4AEDpPABA6UAAQOlIAEDpUABA6VQAQOlYAEDpYABA6WQAQOtQAEDrWABA62AAQOtoAEDrdABA63gAQOt8AEDrgABA64QAQOuMAEDrlABA65gAQOucAEDrpABA66gAQO2UAEDtnABA7aQAQO2sAEDtuABA7bwAQO3AAEDtxABA7cgAQO3QAEDt2ABA7dwAQO3gAEDt6ABA7ewAQO/YAEDv4ABA7+gAQO/wAEDv/ABA8AAAQPAEAEDwCABA8AwAQPAUAEDwHABA8CAAQPAkAEDwLABA8DAAQPJ8AEDzCABA84gAQPQIAED0EABA9BgAQPQgAED0KABA9DQAQPQ4AED0PABA9EgAQPRMAED0VABA9FgAQPRgAED0bABA9HAAQPR0AED0gABA9IQAQPSYAED0/ABA9SAAQPUoAED1MABA9VQAQPVgAED1bABA9XQAQPaYAED3KABA98QAQPhUAED4YABA+GgAQPhwAED4eABA+IAAQPiIAED4jABA+JgAQPj8AED5gABA+YgAQPmQAED5mABA+aAAQPmoAED5sABA+bgAQPnAAED6RABA+lAAQPpcAED6aABA+nQAQPqAAED6jABA+pgAQPqkAED6rABA/JgAQPygAED8qABA/LAAQPy8AED8wABA/MQAQPzIAED8zABA/NQAQPzcAED84ABA/OQAQPzsAED88ABA/twAQP7kAED+7ABA/vQAQP8AAED/BABA/wgAQP8MAED/EABA/xgAQP8gAED/JABA/ygAQP8wAED/NABBASAAQQEoAEEBNABBATwAQQFIAEEBTABBAVAAQQFUAEEBWABBAWAAQQFoAEEBbABBAXAAQQF4AEEBfABBAeAAQQHkAEEB6ABBAfAAQQPcAEED5ABBA+wAQQP0AEEEAABBBAQAQQQIAEEEDABBBBAAQQQYAEEEIABBBCQAQQQoAEEEMABBBDQAQQYgAEEGKABBBjAAQQY4AEEGRABBBkgAQQZMAEEGUABBBlQAQQZcAEEGZABBBmgAQQZsAEEGdABBBngAQQhkAEEIbABBCHQAQQh8AEEIiABBCIwAQQiQAEEIlABBCJgAQQig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AEFPZABBT2gAQU9sAEFPcABBT3QAQU98AEFPhABBT4gAQU+MAEFPlABBT5gAQVGEAEFRjABBUZQAQVGcAEFRqABBUawAQVGwAEFRtABBUbgAQVHAAEFRyABBUcwAQVHQAEFR2ABBUdwAQVPIAEFT0ABBU9gAQVPgAEFT7ABBU/AAQVP0AEFT+ABBU/wAQVQEAEFUDABBVBAAQVQUAEFUHABBVCAAQVZsAEFW+ABBV3gAQVf4AEFYAABBWAgAQVgQAEFYGABBWCQAQVgoAEFYLABBWDgAQVg8AEFYRABBWEgAQVhQAEFYXABBWGAAQVhkAEFYcABBWHQAQViIAEFY7ABBWRAAQVkYAEFZIABBWUQAQVlQAEFZXABBWWQAQVqIAEFbGABBW7QAQVxEAEFcUABBXFgAQVxgAEFcaABBXHAAQVx4AEFcfABBXIgAQVzsAEFdcABBXXgAQV2AAEFdiABBXZAAQV2YAEFdoABBXagAQV2wAEFeNABBXkAAQV5MAEFeWABBXmQAQV5wAEFefABBXogAQV6UAEFenABBYIgAQWCQAEFgmABBYKAAQWCsAEFgsABBYLQAQWC4AEFgvABBYMQAQWDMAEFg0ABBYNQAQWDcAEFg4ABBYswAQWLUAEFi3ABBYuQAQWLwAEFi9ABBYvgAQWL8AEFjAABBYwgAQWMQAEFjFABBYxgAQWMgAEFjJABBZRAAQWUYAEFlJABBZSwAQWU4AEFlPABBZUAAQWVEAEFlSABBZVAAQWVYAEFlXABBZWAAQWVoAEFlbABBZdAAQWXUAEFl2ABBZeAAQWfMAEFn1ABBZ9wAQWfkAEFn8ABBZ/QAQWf4AEFn/ABBaAAAQWgIAEFoEABBaBQAQWgYAEFoIABBaCQAQWoQAEFqGABBaiAAQWooAEFqNABBajgAQWo8AEFqQABBakQAQWpMAEFqVABBalgAQWpcAEFqZABBamgAQWxUAEFsXABBbGQAQWxsAEFseABBbHwAQWyAAEFshABBbIgAQWyQAEFsmABBbJwAQWygAEFsqABBbKwAQW6YAEFuoABBbqgAQW6wAEFuvABBbsAAQW7EAEFuyABBbswAQW7UAEFu3ABBbuAAQW7kAEFu7ABBbvAAQXDcAEFw5ABBcOwAQXD0AEFxAABBcQQAQXEIAEFxDABBcRAAQXEYAEFxIABBcSQAQXEoAEFxMABBcTQAQXJYAEFy6ABBc4QAQXQUAEF0IABBdCgAQXQwAEF0OABBdEAAQXRIAEF0TABBdFgAQXS8AEF1MABBdTgAQXVAAEF1SABBdVAAQXVYAEF1YABBdWgAQXXcAEF16ABBdfQAQXYAAEF2DABBdhgAQXYkAEF2MABBdjgAQXgkAEF4LABBeDQAQXg8AEF4SABBeEwAQXhQAEF4VABBeFgAQXhgAEF4aABBeGwAQXhwAEF4eABBeHwAQXpoAEF6cABBengAQXqAAEF6jABBepAAQXqUAEF6mABBepwAQXqkAEF6rABBerAAQXq0AEF6vABBesAAQXysAEF8tABBfLwAQXzEAEF80ABBfNQAQXzYAEF83ABBfOAAQXzoAEF88ABBfPQAQXz4AEF9AABBfQQAQX7wAEF++ABBfwQAQX8MAEF/GABBfxwAQX8gAEF/JABBfygAQX8wAEF/OABBfzwAQX9AAEF/SABBf0wAQYE4AEGBQABBgUgAQYFQAEGBXABBgWAAQYFkAEGBaABBgWwAQYF0AEGBfABBgYAAQYGEAEGBjABBgZAAQYN8AEGDhABBg4wAQYOUAEGDoABBg6QAQYOoAEGDrABBg7AAQYO4AEGDwABBg8QAQYPIAEGD0ABBg9QAQYXAAEGFyABBhdAAQYXYAEGF5ABBhegAQYXsAEGF8ABBhfQAQYX8AEGGBABBhggAQYYMAEGGFABBhhgAQYhkAEGI8ABBiXAAQYnwAEGJ+ABBigAAQYoIAEGKEABBihwAQYogAEGKJABBijAAQYo0AEGKPABBikAAQYpIAEGKVABBilgAQYpcAEGKaABBimwAQYqAAEGK5ABBiwgAQYsQAEGLGABBizwAQYtIAEGLVABBi1wAQYyAAEGNEABBjawAQY48AEGOSABBjlAAQY5YAEGOYABBjmgAQY5wAEGOdABBjoAAQY7kAEGPaABBj3AAQY94AEGPgABBj4gAQY+QAEGPmABBj6AAQY+oAEGQLABBkDgAQZBEAEGQUABBkFwAQZBoAEGQdABBkIAAQZCMAEGQlABBkoAAQZKIAEGSkABBkpgAQZKkAEGSqABBkqwAQZKwAEGStABBkrwAQZLEAEGSyABBkswAQZLUAEGS2ABBlMQAQZTMAEGU1ABBlNwAQZToAEGU7ABBlPAAQZT0AEGU+ABBlQAAQZUIAEGVDABBlRAAQZUYAEGVHABBlwgAQZcQAEGXHABBlyQAQZcwAEGXNABBlzgAQZc8AEGXQABBl0gAQZdQAEGXVABBl1gAQZdgAEGXZABBl8gAQZfMAEGX0ABBl9gAQZnEAEGZzABBmdQAQZncAEGZ6ABBmewAQZnwAEGZ9ABBmfgAQZoAAEGaCABBmgwAQZoQAEGaGABBmhwAQZwIAEGcEABBnBgAQZwgAEGcLABBnDAAQZw0AEGcOABBnDwAQZxEAEGcTABBnFAAQZxUAEGcXABBnGAAQZ5MAEGeVABBnlwAQZ5kAEGecABBnnQAQZ54AEGefABBnoAAQZ6IAEGekABBnpQAQZ6YAEGeoABBnqQAQaCQAEGgmABBoKAAQaCoAEGgtABBoLgAQaC8AEGgwABBoMQAQaDMAEGg1ABBoNgAQaDcAEGg5ABBoOgAQaLUAEGi3ABBouQAQaLsAEGi+ABBovwAQaMAAEGjBABBowgAQaMQAEGjGABBoxwAQaMgAEGjKABBoywAQaRQAEGk4ABBpXwAQaYMAEGmGABBpiAAQaYoAEGmMABBpjgAQaZAAEGmRABBplAAQaa0AEGnKABBpzAAQac4AEGnQABBp0gAQadQAEGnWABBp2AAQafUAEGn4ABBp+wAQaf4AEGoBABBqBAAQagcAEGoKABBqDAAQaocAEGqJABBqiwAQao0AEGqQABBqkQAQapIAEGqTABBqlAAQapYAEGqYABBqmQAQapoAEGqcABBqnQAQaxgAEGsaABBrHAAQax4AEGshABBrIgAQayMAEGskABBrJQAQaycAEGspABBrKgAQaysAEGstABBrLgAQa6kAEGurABBrrQAQa68AEGuyABBrswAQa7QAEGu1ABBrtgAQa7gAEGu6ABBruwAQa7wAEGu+ABBrvwAQbDoAEGw8ABBsPgAQbEAAEGxDABBsRAAQbEUAEGxGABBsRwAQbEkAEGxLABBsTAAQbE0AEGxPABBsUAAQbMsAEGzNABBszwAQbNEAEGzUABBs1QAQbNYAEGzXABBs2AAQbNoAEGzcABBs3QAQbN4AEGzgABBs4QAQbVwAEG1eABBtYAAQbWIAEG1lABBtZgAQbWcAEG1oABBtaQAQbWsAEG1tABBtbgAQbW8AEG1xABBtcgAQbe0AEG3vABBt8QAQbfMAEG32ABBt9wAQbfgAEG35ABBt+gAQbfwAEG3+ABBt/wAQbgAAEG4CABBuAwAQbpYAEG65ABBu2QAQbvkAEG77ABBu/QAQbv8AEG8BABBvBAAQbwUAEG8GABBvCQAQbwoAEG8MABBvDQAQbw8AEG8SABBvEwAQbxQAEG8XABBvGAAQbx0AEG82ABBvPwAQb0EAEG9DABBvTAAQb08AEG9SABBvVAAQb50AEG/BABBv6AAQcAwAEHAPABBwEQAQcBMAEHAVABBwFwAQcBkAEHAaABBwHQAQcDYAEHBXABBwWQAQcFsAEHBdABBwXwAQcGEAEHBjABBwZQAQcGcAEHCIABBwiwAQcI4AEHCRABBwlAAQcJcAEHCaABBwnQAQcKAAEHCiABBxHQAQcR8AEHEhABBxIwAQcSYAEHEnABBxKAAQcSkAEHEqABBxLAAQcS4AEHEvABBxMAAQcTIAEHEzABBxrgAQcbAAEHGyABBxtAAQcbcAEHG4ABBxuQAQcboAEHG7ABBxvQAQcb8AEHHAABBxwQAQccMAEHHEABByPwAQckEAEHJEABByRgAQckkAEHJKABBySwAQckwAEHJNABByTwAQclEAEHJSABByUwAQclUAEHJWABBybwAQcnAAEHJxABBycwAQcu4AEHLwABBy8gAQcvQAEHL3ABBy+AAQcvkAEHL6ABBy+wAQcv0AEHL/ABBzAAAQcwEAEHMDABBzBAAQc38AEHOBABBzgwAQc4UAEHOIABBziQAQc4oAEHOLABBzjAAQc44AEHOQABBzkQAQc5IAEHOUABBzlQAQdBAAEHQSABB0FAAQdBYAEHQZABB0GgAQdBsAEHQcABB0HQAQdB8AEHQhABB0IgAQdCMAEHQlABB0JgAQdKEAEHSjABB0pQAQdKcAEHSqABB0qwAQdKwAEHStABB0rgAQdLAAEHSyABB0swAQdLQAEHS2ABB0twAQdTIAEHU0ABB1NgAQdTgAEHU7ABB1PAAQdT0AEHU+ABB1PwAQdUEAEHVDABB1RAAQdUUAEHVHABB1SAAQdZEAEHW1ABB13AAQdgAAEHYDABB2BQAQdgcAEHYJABB2CwAQdg0AEHYOABB2EQAQdioAEHZHABB2SQAQdksAEHZNABB2TwAQdlEAEHZTABB2VQAQdnIAEHZ1ABB2eAAQdnsAEHZ+ABB2gQAQdoQAEHaHABB2iQAQdwQAEHcGABB3CQAQdwsAEHcOABB3DwAQdxAAEHcRABB3EgAQdxQAEHcWABB3FwAQdxgAEHcaABB3GwAQd5YAEHeYABB3mgAQd5wAEHefABB3oAAQd6EAEHeiABB3owAQd6UAEHenABB3qAAQd6kAEHerABB3rAAQeCcAEHgpABB4KwAQeC0AEHgwABB4MQAQeDIAEHgzABB4NAAQeDYAEHg4ABB4OQAQeDoAEHg8ABB4PQAQeLgAEHi6ABB4vQAQeL8AEHjCABB4wwAQeMQAEHjFABB4xgAQeMgAEHjKABB4ywAQeMwAEHjOABB4zwAQeUoAEHlMABB5TgAQeVAAEHlTABB5VAAQeVUAEHlWABB5VwAQeVkAEHlbABB5XAAQeV0AEHlfABB5YAAQedsAEHndABB53wAQeeEAEHnkABB55QAQeeYAEHnnABB56AAQeeoAEHnsABB57QAQee4AEHnwABB58QAQemwAEHpuABB6cAAQenIAEHp1ABB6dgAQencAEHp4ABB6eQAQensAEHp9ABB6fgAQen8AEHqBABB6ggAQepMAEHqUABB6lgAQeqcAEHq0ABB6twAQeroAEHq9ABB6vwAQezoAEHs8ABB7PgAQe0AAEHtDABB7RAAQe0UAEHtGABB7RwAQe0kAEHtLABB7TAAQe00AEHtPABB7UAAQe8sAEHvNABB7zwAQe9EAEHvUABB71QAQe9YAEHvXABB72AAQe9oAEHvcABB73QAQe94AEHvgABB74QAQfFwAEHxeABB8YQAQfGMAEHxmABB8ZwAQfGgAEHxpABB8agAQfGwAEHxuABB8bwAQfHAAEHxyABB8cwAQfQYAEH0pABB9SQAQfWkAEH1rABB9bQAQfW8AEH1xABB9dAAQfXUAEH12ABB9eQAQfXoAEH18ABB9fQAQfX8AEH2CABB9gwAQfYQAEH2HABB9iAAQfZEAEH2qABB9swAQfbUAEH23ABB9wAAQfcMAEH3GABB9yAAQfhEAEH41ABB+XAAQfoAAEH6DABB+hQAQfocAEH6JABB+iwAQfo0AEH6OABB+kQAQfqoAEH7LABB+zQAQfs8AEH7RABB+0wAQftUAEH7XABB+2QAQftsAEH78ABB+/wAQfwIAEH8FABB/CAAQfwsAEH8OABB/EQAQfxQAEH8WABB/kQAQf5MAEH+VABB/lwAQf5oAEH+bABB/nAAQf50AEH+eABB/oAAQf6IAEH+jABB/pAAQf6YAEH+nABCAIgAQgCQAEIAmABCAKAAQgCsAEIAsABCALQAQgC4AEIAvABCAMQAQgDMAEIA0ABCANQAQgDcAEIA4ABCAswAQgLUAEIC4ABCAugAQgL0AEIC+ABCAvwAQgMAAEIDBABCAwwAQgMUAEIDGABCAxwAQgMkAEIDKABCA4wAQgOQAEIDlABCA5wAQgWIAEIFkABCBZgAQgWgAEIFrABCBbAAQgW0AEIFuABCBbwAQgXEAEIFzABCBdAAQgXUAEIF3ABCBeAAQgfMAEIH1ABCB9wAQgfkAEIH8ABCB/QAQgf4AEIH/ABCCAAAQggIAEIIEABCCBQAQggYAEIIIABCCCQAQgoQAEIKGABCCiAAQgooAEIKNABCCjgAQgo8AEIKQABCCkQAQgpMAEIKVABCClgAQgpcAEIKZABCCmgAQgxUAEIMXABCDGQAQgxsAEIMeABCDHwAQgyAAEIMhABCDIgAQgyQAEIMmABCDJwAQgygAEIMqABCDKwAQg6YAEIOoABCDqgAQg6wAEIOvABCDsAAQg7EAEIOyABCDswAQg7UAEIO3ABCDuAAQg7kAEIO7ABCDvAAQhAUAEIQpABCEUAAQhHQAEIR3ABCEeQAQhHsAEIR9ABCEfwAQhIEAEISCABCEhQAQhJ4AEIS7ABCEvQAQhL8AEITBABCEwwAQhMUAEITHABCEyQAQhOYAEITpABCE7AAQhO8AEITyABCE9QAQhPgAEIT7ABCE/QAQhXgAEIV6ABCFfQAQhX8AEIWCABCFgwAQhYQAEIWFABCFhgAQhYgAEIWKABCFiwAQhYwAEIWOABCFjwAQhgoAEIYMABCGDgAQhhAAEIYTABCGFAAQhhUAEIYWABCGFwAQhhkAEIYbABCGHAAQhh0AEIYfABCGIAAQhpsAEIadABCGnwAQhqEAEIakABCGpQAQhqYAEIanABCGqAAQhqoAEIasABCGrQAQhq4AEIawABCGsQAQhywAEIcuABCHMQAQhzMAEIc2ABCHNwAQhzgAEIc5ABCHOgAQhzwAEIc+ABCHPwAQh0AAEIdCABCHQwAQh74AEIfAABCHwgAQh8QAEIfHABCHyAAQh8kAEIfKABCHywAQh80AEIfPABCH0AAQh9EAEIfTABCH1AAQiE8AEIhRABCIUwAQiFUAEIhYABCIWQAQiFoAEIhbABCIXAAQiF4AEIhgABCIYQAQiGIAEIhkABCIZQAQiOAAEIjiABCI5AAQiOYAEIjpABCI6gAQiOsAEIjsABCI7QAQiO8AEIjxABCI8gAQiPMAEIj1ABCI9gAQiYkAEImsABCJzAAQiewAEInuABCJ8AAQifIAEIn0ABCJ9wAQifgAEIn5ABCJ/AAQif0AEIn/ABCKAAAQigIAEIoFABCKBgAQigcAEIoKABCKCwAQihAAEIopABCKMgAQijQAEIo2ABCKPwAQikIAEIpFABCKRwAQipAAEIq0ABCK2wAQiv8AEIsCABCLBAAQiwYAEIsIABCLCgAQiwwAEIsNABCLEAAQiykAEItKABCLTAAQi04AEItQABCLUgAQi1QAEItWABCLWAAQi1oAEIt7ABCLfgAQi4EAEIuEABCLhwAQi4oAEIuNABCLkAAQi5MAEIuVABCMEAAQjBIAEIwUABCMFgAQjBkAEIwaABCMGwAQjBwAEIwdABCMHwAQjCEAEIwiABCMIwAQjCUAEIwmABCMoQAQjKMAEIylABCMpwAQjKoAEIyrABCMrAAQjK0AEIyuABCMsAAQjLIAEIyzABCMtAAQjLYAEIy3ABCNMgAQjTQAEI03ABCNOQAQjTwAEI09ABCNPgAQjT8AEI1AABCNQgAQjUQAEI1FABCNRgAQjUgAEI1JABCNYgAQjWMAEI1kABCNZgAQjeEAEI3jABCN5QAQjecAEI3qABCN6wAQjewAEI3tABCN7gAQjfAAEI3yABCN8wAQjfQAEI32ABCN9wAQjnIAEI50ABCOdgAQjngAEI57ABCOfAAQjn0AEI5+ABCOfwAQjoEAEI6DABCOhAAQjoUAEI6HABCOiAAQjwMAEI8FABCPBwAQjwkAEI8MABCPDQAQjw4AEI8PABCPEAAQjxIAEI8UABCPFQAQjxYAEI8YABCPGQAQj5QAEI+WABCPmAAQj5oAEI+dABCPngAQj58AEI+gABCPoQAQj6MAEI+lABCPpgAQj6cAEI+pABCPqgAQkCUAEJAnABCQKQAQkCsAEJAuABCQLwAQkDAAEJAxABCQMgAQkDQAEJA2ABCQNwAQkDgAEJA6ABCQOwAQkIQAEJCoABCQzwAQkPMAEJD2ABCQ+AAQkPoAEJD8ABCQ/gAQkQAAEJEBABCRBAAQkR0AEJE6ABCRPAAQkT4AEJFAABCRQgAQkUQAEJFGABCRSAAQkWUAEJFoABCRawAQkW4AEJFxABCRdAAQkXcAEJF6ABCRfAAQkfcAEJH5ABCR+wAQkf0AEJIAABCSAQAQkgIAEJIDABCSBAAQkgYAEJIIABCSCQAQkgoAEJIMABCSDQAQkogAEJKKABCSjAAQko4AEJKRABCSkgAQkpMAEJKUABCSlQAQkpcAEJKZABCSmgAQkpsAEJKdABCSngAQkxkAEJMbABCTHQAQkx8AEJMiABCTIwAQkyQAEJMlABCTJgAQkygAEJMqABCTKwAQkywAEJMuABCTLwAQk6oAEJOsABCTrgAQk7AAEJOzABCTtAAQk7UAEJO2ABCTtwAQk7kAEJO7ABCTvAAQk70AEJO/ABCTwAAQlDsAEJQ9ABCUPwAQlEEAEJREABCURQAQlEYAEJRHABCUSAAQlEoAEJRMABCUTQAQlE4AEJRQABCUUQAQlMwAEJTOABCU0AAQlNIAEJTVABCU1gAQlNcAEJTYABCU2QAQlNsAEJTdABCU3gAQlN8AEJThABCU4gAQlV0AEJVfABCVYQAQlWMAEJVmABCVZwAQlWgAEJVpABCVagAQlWwAEJVuABCVbwAQlXAAEJVyABCVcwAQlgYAEJYpABCWSQAQlmkAEJZrABCWbQAQlm8AEJZxABCWdAAQlnUAEJZ2ABCWeQAQlnoAEJZ8ABCWfQAQln8AEJaCABCWgwAQloQAEJaHABCWiAAQlo0AEJamABCWrwAQlrEAEJazABCWvAAQlr8AEJbCABCWxAAQlw0AEJcxABCXWAAQl3wAEJd/ABCXgQAQl4MAEJeFABCXhwAQl4kAEJeKABCXjQAQl6YAEJfHABCXyQAQl8sAEJfNABCXzwAQl9EAEJfTABCX1QAQl9cAEJf4ABCX+wAQl/4AEJgBABCYBAAQmAcAEJgKABCYDQAQmBAAEJgSABCYjQAQmI8AEJiRABCYkwAQmJYAEJiXABCYmAAQmJkAEJiaABCYnAAQmJ4AEJifABCYoAAQmKIAEJijABCZHgAQmSAAEJkiABCZJAAQmScAEJkoABCZKQAQmSoAEJkrABCZLQAQmS8AEJkwABCZMQAQmTMAEJk0ABCZrwAQmbEAEJm0ABCZtgAQmbkAEJm6ABCZuwAQmbwAEJm9ABCZvwAQmcEAEJnCABCZwwAQmcUAEJnGABCZ3wAQmeAAEJnhABCZ4wAQml4AEJpgABCaYgAQmmQAEJpnABCaaAAQmmkAEJpqABCaawAQmm0AEJpvABCacAAQmnEAEJpzABCadAAQmu8AEJrxABCa8wAQmvUAEJr4ABCa+QAQmvoAEJr7ABCa/AAQmv4AEJsAABCbAQAQmwIAEJsEABCbBQAQm4AAEJuCABCbhAAQm4YAEJuJABCbigAQm4sAEJuMABCbjQAQm48AEJuRABCbkgAQm5MAEJuVABCblgAQnBEAEJwTABCcFQAQnBcAEJwaABCcGwAQnBwAEJwdABCcHgAQnCAAEJwiABCcIwAQnCQAEJwmABCcJwAQnKIAEJykABCcpgAQnKgAEJyrABCcrAAQnK0AEJyuABCcrwAQnLEAEJyzABCctAAQnLUAEJy3ABCcuAAQnQEAEJ0lABCdTAAQnXAAEJ1zABCddQAQnXcAEJ15ABCdewAQnX0AEJ1+ABCdgQAQnZoAEJ23ABCduQAQnbsAEJ29ABCdvwAQncEAEJ3DABCdxQAQneIAEJ3lABCd6AAQnesAEJ3uABCd8QAQnfQAEJ33ABCd+QAQnnQAEJ52ABCeeAAQnnoAEJ59ABCefgAQnn8AEJ6AABCegQAQnoMAEJ6FABCehgAQnocAEJ6JABCeigAQnwUAEJ8HABCfCQAQnwsAEJ8OABCfDwAQnxAAEJ8RABCfEgAQnxQAEJ8WABCfFwAQnxgAEJ8aABCfGwAQn5YAEJ+YABCfmgAQn5wAEJ+fABCfoAAQn6EAEJ+iABCfowAQn6UAEJ+nABCfqAAQn6kAEJ+rABCfrAAQoCcAEKApABCgKwAQoC0AEKAwABCgMQAQoDIAEKAzABCgNAAQoDYAEKA4ABCgOQAQoDoAEKA8ABCgPQAQoLgAEKC6ABCgvAAQoL4AEKDBABCgwgAQoMMAEKDEABCgxQAQoMcAEKDJABCgygAQoMsAEKDNABCgzgAQoUkAEKFLABChTQAQoU8AEKFSABChUwAQoVQAEKFVABChVgAQoVgAEKFaABChWwAQoVwAEKFeABChXwAQodoAEKHcABCh3gAQoeAAEKHjABCh5AAQoeUAEKHmABCh5wAQoekAEKHrABCh7AAQoe0AEKHvABCh8AAQooMAEKKmABCixgAQouYAEKLoABCi6gAQouwAEKLuABCi8QAQovIAEKLzABCi9gAQovcAEKL5ABCi+gAQovwAEKL/ABCjAAAQowEAEKMEABCjBQAQowoAEKMjABCjLAAQoy4AEKMwABCjOQAQozwAEKM/ABCjQQAQo4oAEKOuABCj1QAQo/kAEKP8ABCj/gAQpAAAEKQCABCkBAAQpAYAEKQHABCkCgAQpCMAEKREABCkRgAQpEgAEKRKABCkTAAQpE4AEKRQABCkUgAQpFQAEKR1ABCkeAAQpHsAEKR+ABCkgQAQpIQAEKSHABCkigAQpI0AEKSPABClCgAQpQwAEKUOABClEAAQpRMAEKUUABClFQAQpRYAEKUXABClGQAQpRsAEKUcABClHQAQpR8AEKUgABClmwAQpZ0AEKWfABCloQAQpaQAEKWlABClpgAQpacAEKWoABClqgAQpawAEKWtABClrgAQpbAAEKWxABCmLAAQpi4AEKYxABCmMwAQpjYAEKY3ABCmOAAQpjkAEKY6ABCmPAAQpj4AEKY/ABCmQAAQpkIAEKZDABCmXAAQpl0AEKZeABCmYAAQptsAEKbdABCm3wAQpuEAEKbkABCm5QAQpuYAEKbnABCm6AAQpuoAEKbsABCm7QAQpu4AEKbwABCm8QAQp2wAEKduABCncAAQp3IAEKd1ABCndgAQp3cAEKd4ABCneQAQp3sAEKd9ABCnfgAQp38AEKeBABCnggAQp/0AEKf/ABCoAQAQqAMAEKgGABCoBwAQqAgAEKgJABCoCgAQqAwAEKgOABCoDwAQqBAAEKgSABCoEwAQqI4AEKiQABCokgAQqJQAEKiXABComAAQqJkAEKiaABComwAQqJ0AEKifABCooAAQqKEAEKijABCopAAQqR8AEKkhABCpIwAQqSUAEKkoABCpKQAQqSoAEKkrABCpLAAQqS4AEKkwABCpMQAQqTIAEKk0ABCpNQAQqX4AEKmiABCpyQAQqe0AEKnwABCp8gAQqfQAEKn2ABCp+AAQqfoAEKn7ABCp/gAQqhcAEKo0ABCqNgAQqjgAEKo6ABCqPAAQqj4AEKpAABCqQgAQql8AEKpiABCqZQAQqmgAEKprABCqbgAQqnEAEKp0ABCqdgAQqvEAEKrzABCq9QAQqvcAEKr6ABCq+wAQqvwAEKr9ABCq/gAQqwAAEKsCABCrAwAQqwQAEKsGABCrBwAQq4IAEKuEABCrhgAQq4gAEKuLABCrjAAQq40AEKuOABCrjwAQq5EAEKuTABCrlAAQq5UAEKuXABCrmAAQrBMAEKwVABCsFwAQrBkAEKwcABCsHQAQrB4AEKwfABCsIAAQrCIAEKwkABCsJQAQrCYAEKwoABCsKQAQrKQAEKymABCsqQAQrKsAEKyuABCsrwAQrLAAEKyxABCssgAQrLQAEKy2ABCstwAQrLgAEKy6ABCsuwAQrTYAEK04ABCtOgAQrTwAEK0/ABCtQAAQrUEAEK1CABCtQwAQrUUAEK1HABCtSAAQrUkAEK1LABCtTAAQrccAEK3JABCtywAQrc0AEK3QABCt0QAQrdIAEK3TABCt1AAQrdYAEK3YABCt2QAQrdoAEK3cABCt3QAQrlgAEK5aABCuXAAQrl4AEK5hABCuYgAQrmMAEK5kABCuZQAQrmcAEK5pABCuagAQrmsAEK5tABCubgAQrwEAEK8kABCvRAAQr2QAEK9mABCvaAAQr2oAEK9sABCvbwAQr3AAEK9xABCvdAAQr3UAEK93ABCveAAQr3sAEK9+ABCvfwAQr4AAEK+DABCvhAAQr4kAEK+iABCvqwAQr60AEK+vABCvuAAQr7sAEK++ABCvwAAQsAkAELAtABCwVAAQsHgAELB7ABCwfQAQsH8AELCBABCwgwAQsIUAELCGABCwiQAQsKIAELDDABCwxQAQsMcAELDJABCwywAQsM0AELDPABCw0QAQsNMAELD0ABCw9wAQsPoAELD9ABCxAAAQsQMAELEGABCxCQAQsQwAELEOABCxiQAQsYsAELGNABCxjwAQsZIAELGTABCxlAAQsZUAELGWABCxmAAQsZoAELGbABCxnAAQsZ4AELGfABCyGgAQshwAELIeABCyIAAQsiMAELIkABCyJQAQsiYAELInABCyKQAQsisAELIsABCyLQAQsi8AELIwABCyqwAQsq0AELKwABCysgAQsrUAELK2ABCytwAQsrgAELK5ABCyuwAQsr0AELK+ABCyvwAQssEAELLCABCy2wAQstwAELLdABCy3wAQs1oAELNcABCzXgAQs2AAELNjABCzZAAQs2UAELNmABCzZwAQs2kAELNrABCzbAAQs20AELNvABCzcAAQs+sAELPtABCz7wAQs/EAELP0ABCz9QAQs/YAELP3ABCz+AAQs/oAELP8ABCz/QAQs/4AELQAABC0AQAQtHwAELR+ABC0gAAQtIIAELSFABC0hgAQtIcAELSIABC0iQAQtIsAELSNABC0jgAQtI8AELSRABC0kgAQtQ0AELUPABC1EQAQtRMAELUWABC1FwAQtRgAELUZABC1GgAQtRwAELUeABC1HwAQtSAAELUiABC1IwAQtZ4AELWgABC1ogAQtaQAELWnABC1qAAQtakAELWqABC1qwAQta0AELWvABC1sAAQtbEAELWzABC1tAAQtf0AELYhABC2SAAQtmwAELZvABC2cQAQtnMAELZ1ABC2dwAQtnkAELZ6ABC2fQAQtpYAELazABC2tQAQtrcAELa5ABC2uwAQtr0AELa/ABC2wQAQtt4AELbhABC25AAQtucAELbqABC27QAQtvAAELbzABC29QAQt3AAELdyABC3dAAQt3YAELd5ABC3egAQt3sAELd8ABC3fQAQt38AELeBABC3ggAQt4MAELeFABC3hgAQuAEAELgDABC4BgAQuAgAELgLABC4DAAQuA0AELgOABC4DwAQuBEAELgTABC4FAAQuBUAELgXABC4GAAQuJMAELiVABC4lwAQuJkAELicABC4nQAQuJ4AELifABC4oAAQuKIAELikABC4pQAQuKYAELioABC4qQAQuSQAELkmABC5KQAQuSsAELkuABC5LwAQuTAAELkxABC5MgAQuTQAELk2ABC5NwAQuTgAELk6ABC5OwAQubYAELm4ABC5ugAQubwAELm/ABC5wAAQucEAELnCABC5wwAQucUAELnHABC5yAAQuckAELnLABC5zAAQukcAELpJABC6SwAQuk0AELpQABC6UQAQulIAELpTABC6VAAQulYAELpYABC6WQAQuloAELpcABC6XQAQutgAELraABC63QAQut8AELriABC64wAQuuQAELrlABC65gAQuugAELrqABC66wAQuuwAELruABC67wAQu4IAELulABC7xQAQu+UAELvnABC76QAQu+sAELvtABC78AAQu/EAELvyABC79QAQu/YAELv4ABC7+QAQu/sAELv+ABC7/wAQvAAAELwDABC8BAAQvAkAELwiABC8KwAQvC0AELwvABC8OAAQvDsAELw+ABC8QAAQvIkAELytABC81AAQvPgAELz7ABC8/QAQvP8AEL0BABC9AwAQvQUAEL0GABC9CQAQvSIAEL1DABC9RQAQvUcAEL1JABC9SwAQvU0AEL1PABC9UQAQvVMAEL10ABC9dwAQvXoAEL19ABC9gAAQvYMAEL2GABC9iQAQvYwAEL2OABC+CQAQvgsAEL4NABC+DwAQvhIAEL4TABC+FAAQvhUAEL4WABC+GAAQvhoAEL4bABC+HAAQvh4AEL4fABC+mgAQvpwAEL6eABC+oAAQvqMAEL6kABC+pQAQvqYAEL6nABC+qQAQvqsAEL6sABC+rQAQvq8AEL6wABC/KwAQvy0AEL8wABC/MgAQvzUAEL82ABC/NwAQvzgAEL85ABC/OwAQvz0AEL8+ABC/PwAQv0EAEL9CABC/WwAQv1wAEL9dABC/XwAQv9oAEL/cABC/3gAQv+AAEL/jABC/5AAQv+UAEL/mABC/5wAQv+kAEL/rABC/7AAQv+0AEL/vABC/8AAQwGsAEMBtABDAbwAQwHEAEMB0ABDAdQAQwHYAEMB3ABDAeAAQwHoAEMB8ABDAfQAQwH4AEMCAABDAgQAQwPwAEMD+ABDBAAAQwQIAEMEFABDBBgAQwQcAEMEIABDBCQAQwQsAEMENABDBDgAQwQ8AEMERABDBEgAQwY0AEMGPABDBkQAQwZMAEMGWABDBlwAQwZgAEMGZABDBmgAQwZwAEMGeABDBnwAQwaAAEMGiABDBowAQwh4AEMIgABDCIgAQwiQAEMInABDCKAAQwikAEMIqABDCKwAQwi0AEMIvABDCMAAQwjEAEMIzABDCNAAQwn0AEMKhABDCyAAQwuwAEMLvABDC8QAQwvMAEML1ABDC9wAQwvkAEML6ABDC/QAQwxYAEMMzABDDNQAQwzcAEMM5ABDDOwAQwz0AEMM/ABDDQQAQw14AEMNhABDDZAAQw2cAEMNqABDDbQAQw3AAEMNzABDDdQAQw/AAEMPyABDD9AAQw/YAEMP5ABDD+gAQw/sAEMP8ABDD/QAQw/8AEMQBABDEAgAQxAMAEMQFABDEBgAQxIEAEMSDABDEhQAQxIcAEMSKABDEiwAQxIwAEMSNABDEjgAQxJAAEMSSABDEkwAQxJQAEMSWABDElwAQxRIAEMUUABDFFgAQxRgAEMUbABDFHAAQxR0AEMUeABDFHwAQxSEAEMUjABDFJAAQxSUAEMUnABDFKAAQxaMAEMWlABDFpwAQxakAEMWsABDFrQAQxa4AEMWvABDFsAAQxbIAEMW0ABDFtQAQxbYAEMW4ABDFuQAQxjQAEMY2ABDGOAAQxjoAEMY9ABDGPgAQxj8AEMZAABDGQQAQxkMAEMZFABDGRgAQxkcAEMZJABDGSgAQxsUAEMbHABDGyQAQxssAEMbOABDGzwAQxtAAEMbRABDG0gAQxtQAEMbWABDG1wAQxtgAEMbaABDG2wAQx1YAEMdYABDHWgAQx1wAEMdfABDHYAAQx2EAEMdiABDHYwAQx2UAEMdnABDHaAAQx2kAEMdrABDHbAAQx/8AEMgiABDIQgAQyGIAEMhkABDIZgAQyGgAEMhqABDIbQAQyG4AEMhvABDIcgAQyHMAEMh1ABDIdgAQyHgAEMh7ABDIfAAQyH0AEMiAABDIgQAQyIYAEMifABDIqAAQyKoAEMisABDItQAQyLgAEMi7ABDIvQAQyQYAEMkqABDJUQAQyXUAEMl4ABDJegAQyXwAEMl+ABDJgAAQyYIAEMmDABDJhgAQyZ8AEMnAABDJwgAQycQAEMnGABDJyAAQycoAEMnMABDJzgAQydAAEMnxABDJ9AAQyfcAEMn6ABDJ/QAQygAAEMoDABDKBgAQygkAEMoLABDKhgAQyogAEMqKABDKjAAQyo8AEMqQABDKkQAQypIAEMqTABDKlQAQypcAEMqYABDKmQAQypsAEMqcABDLFwAQyxkAEMsbABDLHQAQyyAAEMshABDLIgAQyyMAEMskABDLJgAQyygAEMspABDLKgAQyywAEMstABDLqAAQy6oAEMutABDLrwAQy7IAEMuzABDLtAAQy7UAEMu2ABDLuAAQy7oAEMu7ABDLvAAQy74AEMu/ABDL2AAQy9kAEMvaABDL3AAQzFcAEMxZABDMWwAQzF0AEMxgABDMYQAQzGIAEMxjABDMZAAQzGYAEMxoABDMaQAQzGoAEMxsABDMbQAQzOgAEMzqABDM7AAQzO4AEMzxABDM8gAQzPMAEMz0ABDM9QAQzPcAEMz5ABDM+gAQzPsAEMz9ABDM/gAQzXkAEM17ABDNfQAQzX8AEM2CABDNgwAQzYQAEM2FABDNhgAQzYgAEM2KABDNiwAQzYwAEM2OABDNjwAQzgoAEM4MABDODgAQzhAAEM4TABDOFAAQzhUAEM4WABDOFwAQzhkAEM4bABDOHAAQzh0AEM4fABDOIAAQzpsAEM6dABDOnwAQzqEAEM6kABDOpQAQzqYAEM6nABDOqAAQzqoAEM6sABDOrQAQzq4AEM6wABDOsQAQzvoAEM8eABDPRQAQz2kAEM9sABDPbgAQz3AAEM9yABDPdAAQz3YAEM93ABDPegAQz5MAEM+wABDPsgAQz7QAEM+2ABDPuAAQz7oAEM+8ABDPvgAQz9sAEM/eABDP4QAQz+QAEM/nABDP6gAQz+0AEM/wABDP8gAQ0G0AENBvABDQcgAQ0HQAENB3ABDQeAAQ0HkAENB6ABDQewAQ0H0AENB/ABDQgAAQ0IEAENCDABDQhAAQ0P8AENEBABDRAwAQ0QUAENEIABDRCQAQ0QoAENELABDRDAAQ0Q4AENEQABDREQAQ0RIAENEUABDRFQAQ0ZAAENGSABDRlAAQ0ZYAENGZABDRmgAQ0ZsAENGcABDRnQAQ0Z8AENGhABDRogAQ0aMAENGlABDRpgAQ0iEAENIjABDSJgAQ0igAENIrABDSLAAQ0i0AENIuABDSLwAQ0jEAENIzABDSNAAQ0jUAENI3ABDSOAAQ0rMAENK1ABDStwAQ0rkAENK8ABDSvQAQ0r4AENK/ABDSwAAQ0sIAENLEABDSxQAQ0sYAENLIABDSyQAQ00QAENNGABDTSAAQ00oAENNNABDTTgAQ008AENNQABDTUQAQ01MAENNVABDTVgAQ01cAENNZABDTWgAQ09UAENPXABDT2QAQ09sAENPeABDT3wAQ0+AAENPhABDT4gAQ0+QAENPmABDT5wAQ0+gAENPqABDT6wAQ1H4AENShABDUwQAQ1OEAENTjABDU5QAQ1OcAENTpABDU7AAQ1O0AENTuABDU8QAQ1PIAENT0ABDU9QAQ1PcAENT6ABDU+wAQ1PwAENT/ABDVAAAQ1QUAENUeABDVJwAQ1SkAENUrABDVNAAQ1TcAENU6ABDVPAAQ1YUAENWpABDV0AAQ1fQAENX3ABDV+QAQ1fsAENX9ABDV/wAQ1gEAENYCABDWBQAQ1h4AENY/ABDWQQAQ1kMAENZFABDWRwAQ1kkAENZLABDWTQAQ1k8AENZwABDWcwAQ1nYAENZ5ABDWfAAQ1n8AENaCABDWhQAQ1ogAENaKABDXBQAQ1wcAENcJABDXCwAQ1w4AENcPABDXEAAQ1xEAENcSABDXFAAQ1xYAENcXABDXGAAQ1xoAENcbABDXlgAQ15gAENeaABDXnAAQ158AENegABDXoQAQ16IAENejABDXpQAQ16cAENeoABDXqQAQ16sAENesABDYJwAQ2CkAENgsABDYLgAQ2DEAENgyABDYMwAQ2DQAENg1ABDYNwAQ2DkAENg6ABDYOwAQ2D0AENg+ABDYVwAQ2FgAENhZABDYWwAQ2NYAENjYABDY2gAQ2NwAENjfABDY4AAQ2OEAENjiABDY4wAQ2OUAENjnABDY6AAQ2OkAENjrABDY7AAQ2WcAENlpABDZawAQ2W0AENlwABDZcQAQ2XIAENlzABDZdAAQ2XYAENl4ABDZeQAQ2XoAENl8ABDZfQAQ2fgAENn6ABDZ/AAQ2f4AENoBABDaAgAQ2gMAENoEABDaBQAQ2gcAENoJABDaCgAQ2gsAENoNABDaDgAQ2okAENqLABDajQAQ2o8AENqSABDakwAQ2pQAENqVABDalgAQ2pgAENqaABDamwAQ2pwAENqeABDanwAQ2xoAENscABDbHgAQ2yAAENsjABDbJAAQ2yUAENsmABDbJwAQ2ykAENsrABDbLAAQ2y0AENsvABDbMAAQ23kAENudABDbxAAQ2+gAENvrABDb7QAQ2+8AENvxABDb8wAQ2/UAENv2ABDb+QAQ3BIAENwvABDcMQAQ3DMAENw1ABDcNwAQ3DkAENw7ABDcPQAQ3FoAENxdABDcYAAQ3GMAENxmABDcaQAQ3GwAENxvABDccQAQ3OwAENzuABDc8AAQ3PIAENz1ABDc9gAQ3PcAENz4ABDc+QAQ3PsAENz9ABDc/gAQ3P8AEN0BABDdAgAQ3X0AEN1/ABDdgQAQ3YMAEN2GABDdhwAQ3YgAEN2JABDdigAQ3YwAEN2OABDdjwAQ3ZAAEN2SABDdkwAQ3g4AEN4QABDeEgAQ3hQAEN4XABDeGAAQ3hkAEN4aABDeGwAQ3h0AEN4fABDeIAAQ3iEAEN4jABDeJAAQ3p8AEN6hABDepAAQ3qYAEN6pABDeqgAQ3qsAEN6sABDerQAQ3q8AEN6xABDesgAQ3rMAEN61ABDetgAQ3zEAEN8zABDfNQAQ3zcAEN86ABDfOwAQ3zwAEN89ABDfPgAQ30AAEN9CABDfQwAQ30QAEN9GABDfRwAQ38IAEN/EABDfxgAQ38gAEN/LABDfzAAQ380AEN/OABDfzwAQ39EAEN/TABDf1AAQ39UAEN/XABDf2AAQ4FMAEOBVABDgVwAQ4FkAEOBcABDgXQAQ4F4AEOBfABDgYAAQ4GIAEOBkABDgZQAQ4GYAEOBoABDgaQAQ4PwAEOEfABDhPwAQ4V8AEOFhABDhYwAQ4WUAEOFnABDhagAQ4WsAEOFsABDhbwAQ4XAAEOFyABDhcwAQ4XUAEOF4ABDheQAQ4XoAEOF9ABDhfgAQ4YMAEOGcABDhpQAQ4acAEOGpABDhsgAQ4bUAEOG4ABDhugAQ4gMAEOInABDiTgAQ4nIAEOJ1ABDidwAQ4nkAEOJ7ABDifQAQ4n8AEOKAABDigwAQ4pwAEOK9ABDivwAQ4sEAEOLDABDixQAQ4scAEOLJABDiywAQ4s0AEOLuABDi8QAQ4vQAEOL3ABDi+gAQ4v0AEOMAABDjAwAQ4wYAEOMIABDjgwAQ44UAEOOHABDjiQAQ44wAEOONABDjjgAQ448AEOOQABDjkgAQ45QAEOOVABDjlgAQ45gAEOOZABDkFAAQ5BYAEOQYABDkGgAQ5B0AEOQeABDkHwAQ5CAAEOQhABDkIwAQ5CUAEOQmABDkJwAQ5CkAEOQqABDkpQAQ5KcAEOSqABDkrAAQ5K8AEOSwABDksQAQ5LIAEOSzABDktQAQ5LcAEOS4ABDkuQAQ5LsAEOS8ABDk1QAQ5NYAEOTXABDk2QAQ5VQAEOVWABDlWAAQ5VoAEOVdABDlXgAQ5V8AEOVgABDlYQAQ5WMAEOVlABDlZgAQ5WcAEOVpABDlagAQ5eUAEOXnABDl6QAQ5esAEOXuABDl7wAQ5fAAEOXxABDl8gAQ5fQAEOX2ABDl9wAQ5fgAEOX6ABDl+wAQ5nYAEOZ4ABDmegAQ5nwAEOZ/ABDmgAAQ5oEAEOaCABDmgwAQ5oUAEOaHABDmiAAQ5okAEOaLABDmjAAQ5wcAEOcJABDnCwAQ5w0AEOcQABDnEQAQ5xIAEOcTABDnFAAQ5xYAEOcYABDnGQAQ5xoAEOccABDnHQAQ55gAEOeaABDnnAAQ554AEOehABDnogAQ56MAEOekABDnpQAQ56cAEOepABDnqgAQ56sAEOetABDnrgAQ5/cAEOgbABDoQgAQ6GYAEOhpABDoawAQ6G0AEOhvABDocQAQ6HMAEOh0ABDodwAQ6JA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AEQL4ABEC+gARAvwAEQL/ABEDAAARAwEAEQMCABEDAwARAwUAEQMHABEDCAARAwkAEQMLABEDDAARA4cAEQOJABEDiwARA40AEQOQABEDkQARA5IAEQOTABEDlAARA5YAEQOYABEDmQARA5oAEQOcABEDnQARBBgAEQQaABEEHAARBB4AEQQhABEEIgARBCMAEQQkABEEJQARBCcAEQQpABEEKgARBCsAEQQtABEELgARBKkAEQSrABEErQARBK8AEQSyABEEswARBLQAEQS1ABEEtgARBLgAEQS6ABEEuwARBLwAEQS+ABEEvwARBToAEQU8ABEFPgARBUAAEQVDABEFRAARBUUAEQVGABEFRwARBUkAEQVLABEFTAARBU0AEQVPABEFUAARBcsAEQXNABEFzwARBdEAEQXUABEF1QARBdYAEQXXABEF2AARBdoAEQXcABEF3QARBd4AEQXgABEF4QARBnQAEQaXABEGtwARBtcAEQbZABEG2wARBt0AEQbfABEG4gARBuMAEQbkABEG5wARBugAEQbqABEG6wARBu0AEQbwABEG8QARBvIAEQb1ABEG9gARBvsAEQcUABEHHQARBx8AEQchABEHKgARBy0AEQcwABEHMgARB3sAEQefABEHxgARB+oAEQftABEH7wARB/EAEQfzABEH9QARB/cAEQf4ABEH+wARCBQAEQg1ABEINwARCDkAEQg7ABEIPQARCD8AEQhBABEIQwARCEUAEQhmABEIaQARCGwAEQhvABEIcgARCHUAEQh4ABEIewARCH4AEQiAABEI+wARCP0AEQj/ABEJAQARCQQAEQkFABEJBgARCQcAEQkIABEJCgARCQwAEQkNABEJDgARCRAAEQkRABEJjAARCY4AEQmQABEJkgARCZUAEQmWABEJlwARCZgAEQmZABEJmwARCZ0AEQmeABEJnwARCaEAEQmiABEKHQARCh8AEQoiABEKJAARCicAEQooABEKKQARCioAEQorABEKLQARCi8AEQowABEKMQARCjMAEQo0ABEKTQARCk4AEQpPABEKUQARCswAEQrOABEK0AARCtIAEQrVABEK1gARCtcAEQrYABEK2QARCtsAEQrdABEK3gARCt8AEQrhABEK4gARC10AEQtfABELYQARC2MAEQtmABELZwARC2gAEQtpABELagARC2wAEQtuABELbwARC3AAEQtyABELcwARC+4AEQvwABEL8gARC/QAEQv3ABEL+AARC/kAEQv6ABEL+wARC/0AEQv/ABEMAAARDAEAEQwDABEMBAARDH8AEQyBABEMgwARDIUAEQyIABEMiQARDIoAEQyLABEMjAARDI4AEQyQABEMkQARDJIAEQyUABEMlQARDRAAEQ0SABENFAARDRYAEQ0ZABENGgARDRsAEQ0cABENHQARDR8AEQ0hABENIgARDSMAEQ0lABENJgARDW8AEQ2TABENugARDd4AEQ3hABEN4wARDeUAEQ3nABEN6QARDesAEQ3sABEN7wARDggAEQ4lABEOJwARDikAEQ4rABEOLQARDi8AEQ4xABEOMwARDlAAEQ5TABEOVgARDlkAEQ5cABEOXwARDmIAEQ5lABEOZwARDuIAEQ7kABEO5wARDukAEQ7sABEO7QARDu4AEQ7vABEO8AARDvIAEQ70ABEO9QARDvYAEQ74ABEO+QARD3QAEQ92ABEPeAARD3oAEQ99ABEPfgARD38AEQ+AABEPgQARD4MAEQ+FABEPhgARD4cAEQ+JABEPigAREAUAERAHABEQCQAREAsAERAOABEQDwAREBAAERARABEQEgAREBQAERAWABEQFwAREBgAERAaABEQGwAREJYAERCYABEQmwAREJ0AERCgABEQoQAREKIAERCjABEQpAAREKYAERCoABEQqQAREKoAERCsABEQrQARESgAEREqABERLAARES4AERExABERMgARETMAERE0ABERNQARETcAERE5ABEROgARETsAERE9ABERPgAREbkAERG7ABERvQAREb8AERHCABERwwAREcQAERHFABERxgAREcgAERHKABERywAREcwAERHOABERzwAREkoAERJMABESTgARElAAERJTABESVAARElUAERJWABESVwARElkAERJbABESXAAREl0AERJfABESYAAREnEAERJyABESdAAREu8AERLxABES8wAREvUAERL4ABES+QAREvoAERL7ABES/AAREv4AERMAABETAQAREwIAERMEABETBQARE4AAEROCABEThAARE4YAEROJABETigARE4sAEROMABETjQARE48AERORABETkgARE5MAEROVABETlgARFBEAERQTABEUFgARFBgAERQbABEUHAARFB0AERQeABEUHwARFCEAERQjABEUJAARFCUAERQnABEUKAARFLsAERTeABEU/gARFR4AERUgABEVIgARFSQAERUmABEVKQARFSoAERUrABEVLgARFS8AERUxABEVMgARFTQAERU3ABEVOAARFTkAERU8ABEVPQARFUIAERVbABEVZAARFWYAERVoABEVcQARFXQAERV3ABEVeQARFcIAERXmABEWDQARFjEAERY0ABEWNgARFjgAERY6ABEWPAARFj4AERY/ABEWQgARFlsAERZ8ABEWfgARFoAAERaCABEWhAARFoYAERaIABEWigARFowAERatABEWsAARFrMAERa2ABEWuQARFrwAERa/ABEWwgARFsUAERbHABEXQgARF0QAERdGABEXSAARF0sAERdMABEXTQARF04AERdPABEXUQARF1MAERdUABEXVQARF1cAERdYABEX0wARF9UAERfXABEX2QARF9wAERfdABEX3gARF98AERfgABEX4gARF+QAERflABEX5gARF+gAERfpABEYZAARGGYAERhpABEYawARGG4AERhvABEYcAARGHEAERhyABEYdAARGHYAERh3ABEYeAARGHoAERh7ABEYlAARGJUAERiWABEYmAARGRMAERkVABEZFwARGRkAERkcABEZHQARGR4AERkfABEZIAARGSIAERkkABEZJQARGSYAERkoABEZKQARGaQAERmmABEZqAARGaoAERmtABEZrgARGa8AERmwABEZsQARGbMAERm1ABEZtgARGbcAERm5ABEZugARGjUAERo3ABEaOQARGjsAERo+ABEaPwARGkAAERpBABEaQgARGkQAERpGABEaRwARGkgAERpKABEaSwARGsYAERrIABEaygARGswAERrPABEa0AARGtEAERrSABEa0wARGtUAERrXABEa2AARGtkAERrbABEa3AARG1cAERtZABEbWwARG10AERtgABEbYQARG2IAERtjABEbZAARG2YAERtoABEbaQARG2oAERtsABEbbQARG7YAERvaABEcAQARHCUAERwoABEcKgARHCwAERwuABEcMAARHDIAERwzABEcNgARHE8AERxsABEcbgARHHAAERxyABEcdAARHHYAERx4ABEcegARHJcAERyaABEcnQARHKAAERyjABEcpgARHKkAERysABEcrgARHSkAER0rABEdLQARHS8AER0yABEdMwARHTQAER01ABEdNgARHTgAER06ABEdOwARHTwAER0+ABEdPwARHboAER28ABEdvgARHcAAER3DABEdxAARHcUAER3GABEdxwARHckAER3LABEdzAARHc0AER3PABEd0AARHksAER5NABEeTwARHlEAER5UABEeVQARHlYAER5XABEeWAARHloAER5cABEeXQARHl4AER5gABEeYQARHtwAER7eABEe4AARHuIAER7lABEe5gARHucAER7oABEe6QARHusAER7tABEe7gARHu8AER7xABEe8gARH20AER9vABEfcQARH3MAER92ABEfdwARH3gAER95ABEfegARH3wAER9+ABEffwARH4AAER+CABEfgwARH/4AESAAABEgAgARIAQAESAHABEgCAARIAkAESAKABEgCwARIA0AESAPABEgEAARIBEAESATABEgFAARII8AESCRABEgkwARIJUAESCYABEgmQARIJoAESCbABEgnAARIJ4AESCgABEgoQARIKIAESCkABEgpQARITgAESFbABEhewARIZsAESGdABEhnwARIaEAESGjABEhpgARIacAESGoABEhqwARIawAESGuABEhrwARIbEAESG0ABEhtQARIbYAESG5ABEhugARIcMAESHcABEh5QARIecAESHpABEh8gARIfUAESH4ABEh+gARIkMAESJnABEijgARIrIAESK1ABEitwARIrkAESK7ABEivQARIr8AESLAABEiwwARItwAESL9ABEi/wARIwEAESMDABEjBQARIwcAESMJABEjCwARIw0AESMuABEjMQARIzQAESM3ABEjOgARIz0AESNAABEjQwARI0YAESNIABEjwwARI8UAESPHABEjyQARI8wAESPNABEjzgARI88AESPQABEj0gARI9QAESPVABEj1gARI9gAESPZABEkVAARJFYAESRYABEkWgARJF0AESReABEkXwARJGAAESRhABEkYwARJGUAESRmABEkZwARJGkAESRqABEk5QARJOcAESTqABEk7AARJO8AESTwABEk8QARJPIAESTzABEk9QARJPcAEST4ABEk+QARJPsAEST8ABElFQARJRYAESUXABElGQARJZQAESWWABElmAARJZoAESWdABElngARJZ8AESWgABEloQARJaMAESWlABElpgARJacAESWpABElqgARJiUAESYnABEmKQARJisAESYuABEmLwARJjAAESYxABEmMgARJjQAESY2ABEmNwARJjgAESY6ABEmOwARJrYAESa4ABEmugARJrwAESa/ABEmwAARJsEAESbCABEmwwARJsUAESbHABEmyAARJskAESbLABEmzAARJ0cAESdJABEnSwARJ00AESdQABEnUQARJ1IAESdTABEnVAARJ1YAESdYABEnWQARJ1oAESdcABEnXQARJ9gAESfaABEn3AARJ94AESfhABEn4gARJ+MAESfkABEn5QARJ+cAESfpABEn6gARJ+sAESftABEn7gARKDcAEShbABEoggARKKYAESipABEoqwARKK0AESivABEosQARKLMAESi0ABEotwARKNAAESjtABEo7wARKPEAESjzABEo9QARKPcAESj5ABEo+wARKRgAESkbABEpHgARKSEAESkkABEpJwARKSoAESktABEpLwARKaoAESmsABEprwARKbEAESm0ABEptQARKbYAESm3ABEpuAARKboAESm8ABEpvQARKb4AESnAABEpwQARKjwAESo+ABEqQAARKkIAESpFABEqRgARKkcAESpIABEqSQARKksAESpNABEqTgARKk8AESpRABEqUgARKs0AESrPABEq0QARKtMAESrWABEq1wARKtgAESrZABEq2gARKtwAESreABEq3wARKuAAESriABEq4wARK14AEStgABErYwARK2UAEStoABEraQARK2oAEStrABErbAARK24AEStwABErcQARK3IAESt0ABErdQARK/AAESvyABEr9AARK/YAESv5ABEr+gARK/sAESv8ABEr/QARK/8AESwBABEsAgARLAMAESwFABEsBgARLIEAESyDABEshQARLIcAESyKABEsiwARLIwAESyNABEsjgARLJAAESySABEskwARLJQAESyWABEslwARLRIAES0UABEtFgARLRgAES0bABEtHAARLR0AES0eABEtHwARLSEAES0jABEtJAARLSUAES0nABEtKAARLTkAES06ABEtPAARLbcAES25ABEtuwARLb0AES3AABEtwQARLcIAES3DABEtxAARLcYAES3IABEtyQARLcoAES3MABEtzQARLkgAES5KABEuTAARLk4AES5RABEuUgARLlMAES5UABEuVQARLlcAES5ZABEuWgARLlsAES5dABEuXgARLtkAES7bABEu3gARLuAAES7jABEu5AARLuUAES7mABEu5wARLukAES7rABEu7AARLu0AES7vABEu8AARL4MAES+mABEvxgARL+YAES/oABEv6gARL+wAES/uABEv8QARL/IAES/zABEv9gARL/cAES/5ABEv+gARL/wAES//ABEwAAARMAEAETAEABEwBQARMA4AETAnABEwMAARMDIAETA0ABEwPQARMEAAETBDABEwRQARMI4AETCyABEw2QARMP0AETEAABExAgARMQQAETEGABExCAARMQoAETELABExDgARMScAETFIABExSgARMUwAETFOABExUAARMVIAETFUABExVgARMVgAETF5ABExfAARMX8AETGCABExhQARMYgAETGLABExjgARMZEAETGTABEyDgARMhAAETISABEyFAARMhcAETIYABEyGQARMhoAETIbABEyHQARMh8AETIgABEyIQARMiMAETIkABEynwARMqEAETKjABEypQARMqgAETKpABEyqgARMqsAETKsABEyrgARMrAAETKxABEysgARMrQAETK1ABEzMAARMzIAETM1ABEzNwARMzoAETM7ABEzPAARMz0AETM+ABEzQAARM0IAETNDABEzRAARM0YAETNHABEzYAARM2EAETNiABEzZAARM98AETPhABEz4wARM+UAETPoABEz6QARM+oAETPrABEz7AARM+4AETPwABEz8QARM/IAETP0ABEz9QARNHAAETRyABE0dAARNHYAETR5ABE0egARNHsAETR8ABE0fQARNH8AETSBABE0ggARNIMAETSFABE0hgARNQEAETUDABE1BQARNQcAETUKABE1CwARNQwAETUNABE1DgARNRAAETUSABE1EwARNRQAETUWABE1FwARNZIAETWUABE1lgARNZgAETWbABE1nAARNZ0AETWeABE1nwARNaEAETWjABE1pAARNaUAETWnABE1qAARNiMAETYlABE2JwARNikAETYsABE2LQARNi4AETYvABE2MAARNjIAETY0ABE2NQARNjYAETY4ABE2OQARNoIAETamABE2zQARNvEAETb0ABE29gARNvgAETb6ABE2/AARNv4AETb/ABE3AgARNxsAETc4ABE3OgARNzwAETc+ABE3QAARN0IAETdEABE3RgARN2MAETdmABE3aQARN2wAETdvABE3cgARN3UAETd4ABE3egARN/UAETf3ABE3+QARN/sAETf+ABE3/wAROAAAETgBABE4AgAROAQAETgGABE4BwAROAgAETgKABE4CwAROIYAETiIABE4igAROIwAETiPABE4kAAROJEAETiSABE4kwAROJUAETiXABE4mAAROJkAETibABE4nAARORcAETkZABE5GwAROR0AETkgABE5IQAROSIAETkjABE5JAAROSYAETkoABE5KQAROSoAETksABE5LQAROagAETmqABE5rAAROa4AETmxABE5sgARObMAETm0ABE5tQARObcAETm5ABE5ugARObsAETm9ABE5vgAROjkAETo7ABE6PQAROj8AETpCABE6QwAROkQAETpFABE6RgAROkgAETpKABE6SwAROkwAETpOABE6TwAROsoAETrMABE6zgAROtAAETrTABE61AAROtUAETrWABE61wAROtkAETrbABE63AAROt0AETrfABE64AARO1sAETtdABE7XwARO2EAETtkABE7ZQARO2YAETtnABE7aAARO2oAETtsABE7bQARO24AETtwABE7cQARPAQAETwnABE8RwARPGcAETxpABE8awARPG0AETxvABE8cgARPHMAETx0ABE8dwARPHgAETx6ABE8ewARPH0AETyAABE8gQARPIIAETyFABE8hgARPI8AETyoABE8sQARPLMAETy1ABE8vgARPMEAETzEABE8xgARPQ8AET0zABE9WgARPX4AET2BABE9gwARPYUAET2HABE9iQARPYsAET2MABE9jwARPagAET3JABE9ywARPc0AET3PABE90QARPdMAET3VABE91wARPdkAET36ABE9/QARPgAAET4DABE+BgARPgkAET4MABE+DwARPhIAET4UABE+jwARPpEAET6TABE+lQARPpgAET6ZABE+mgARPpsAET6cABE+ngARPqAAET6hABE+ogARPqQAET6lABE/IAARPyIAET8kABE/JgARPykAET8qABE/KwARPywAET8tABE/LwARPzEAET8yABE/MwARPzUAET82ABE/sQARP7MAET+2ABE/uAARP7sAET+8ABE/vQARP74AET+/ABE/wQARP8MAET/EABE/xQARP8cAET/IABE/4QARP+IAET/jABE/5QARQGAAEUBiABFAZAARQGYAEUBpABFAagARQGsAEUBsABFAbQARQG8AEUBxABFAcgARQHMAEUB1ABFAdgARQPEAEUDzABFA9QARQPcAEUD6ABFA+wARQPwAEUD9ABFA/gARQQAAEUECABFBAwARQQQAEUEGABFBBwARQYIAEUGEABFBhgARQYgAEUGLABFBjAARQY0AEUGOABFBjwARQZEAEUGTABFBlAARQZUAEUGXABFBmAARQhMAEUIVABFCFwARQhkAEUIcABFCHQARQh4AEUIfABFCIAARQiIAEUIkABFCJQARQiYAEUIoABFCKQARQqQAEUKmABFCqAARQqoAEUKtABFCrgARQq8AEUKwABFCsQARQrMAEUK1ABFCtgARQrcAEUK5ABFCugARQwMAEUMnABFDTgARQ3IAEUN1ABFDdwARQ3kAEUN7ABFDfQARQ38AEUOAABFDgwARQ5wAEUO5ABFDuwARQ70AEUO/ABFDwQARQ8MAEUPFABFDxwARQ+QAEUPnABFD6gARQ+0AEUPwABFD8wARQ/YAEUP5ABFD+wARRHYAEUR4ABFEegARRHwAEUR/ABFEgAARRIEAEUSCABFEgwARRIUAEUSHABFEiAARRIkAEUSLABFEjAARRQcAEUUJABFFCwARRQ0AEUUQABFFEQARRRIAEUUTABFFFAARRRYAEUUYABFFGQARRRoAEUUcABFFHQARRZgAEUWaABFFnAARRZ4AEUWhABFFogARRaMAEUWkABFFpQARRacAEUWpABFFqgARRasAEUWtABFFrgARRikAEUYrABFGLgARRjAAEUYzABFGNAARRjUAEUY2ABFGNwARRjkAEUY7ABFGPAARRj0AEUY/ABFGQAARRrsAEUa9ABFGvwARRsEAEUbEABFGxQARRsYAEUbHABFGyAARRsoAEUbMABFGzQARRs4AEUbQABFG0QARR0wAEUdOABFHUAARR1IAEUdVABFHVgARR1cAEUdYABFHWQARR1sAEUddABFHXgARR18AEUdhABFHYgARR90AEUffABFH4QARR+MAEUfmABFH5wARR+gAEUfpABFH6gARR+wAEUfuABFH7wARR/AAEUfyABFH8wARSIYAEUipABFIyQARSOkAEUjrABFI7QARSO8AEUjxABFI9AARSPUAEUj2ABFI+QARSPoAEUj8ABFI/QARSP8AEUkCABFJAwARSQQAEUkHABFJCAARSREAEUkqABFJMwARSTUAEUk3ABFJQAARSUMAEUlGABFJSAARSZEAEUm1ABFJ3AARSgAAEUoDABFKBQARSgcAEUoJABFKCwARSg0AEUoOABFKEQARSioAEUpLABFKTQARSk8AEUpRABFKUwARSlUAEUpXABFKWQARSlsAEUp8ABFKfwARSoIAEUqFABFKiAARSosAEUqOABFKkQARSpQAEUqWABFLEQARSxMAEUsVABFLFwARSxoAEUsbABFLHAARSx0AEUseABFLIAARSyIAEUsjABFLJAARSyYAEUsnABFLogARS6QAEUumABFLqAARS6sAEUusABFLrQARS64AEUuvABFLsQARS7MAEUu0ABFLtQARS7cAEUu4ABFMMwARTDUAEUw4ABFMOgARTD0AEUw+ABFMPwARTEAAEUxBABFMQwARTEUAEUxGABFMRwARTEkAEUxKABFMYwARTGQAEUxlABFMZwARTOIAEUzkABFM5gARTOgAEUzrABFM7AARTO0AEUzuABFM7wARTPEAEUzzABFM9AARTPUAEUz3ABFM+AARTXMAEU11ABFNdwARTXkAEU18ABFNfQARTX4AEU1/ABFNgAARTYIAEU2EABFNhQARTYYAEU2IABFNiQARTgQAEU4GABFOCAARTgoAEU4NABFODgARTg8AEU4QABFOEQARThMAEU4VABFOFgARThcAEU4ZABFOGgARTpUAEU6XABFOmQARTpsAEU6eABFOnwARTqAAEU6hABFOogARTqQAEU6mABFOpwARTqgAEU6qABFOqwARTyYAEU8oABFPKgARTywAEU8vABFPMAARTzEAEU8yABFPMwARTzUAEU83ABFPOAARTzkAEU87ABFPPAART4UAEU+pABFP0AART/QAEU/3ABFP+QART/sAEU/9ABFP/wARUAEAEVACABFQBQARUB4AEVA7ABFQPQARUD8AEVBBABFQQwARUEUAEVBHABFQSQARUGYAEVBpABFQbAARUG8AEVByABFQdQARUHgAEVB7ABFQfQARUPgAEVD6ABFQ/AARUP4AEVEBABFRAgARUQMAEVEEABFRBQARUQcAEVEJABFRCgARUQsAEVENABFRDgARUYkAEVGLABFRjQARUY8AEVGSABFRkwARUZQAEVGVABFRlgARUZgAEVGaABFRmwARUZwAEVGeABFRnwARUhoAEVIcABFSHgARUiAAEVIjABFSJAARUiUAEVImABFSJwARUikAEVIrABFSLAARUi0AEVIvABFSMAARUqsAEVKtABFSrwARUrEAEVK0ABFStQARUrYAEVK3ABFSuAARUroAEVK8ABFSvQARUr4AEVLAABFSwQARUzwAEVM+ABFTQAARU0IAEVNFABFTRgARU0cAEVNIABFTSQARU0sAEVNNABFTTgARU08AEVNRABFTUgARU80AEVPPABFT0QARU9MAEVPWABFT1wARU9gAEVPZABFT2gARU9wAEVPeABFT3wARU+AAEVPiABFT4wARVF4AEVRgABFUYgARVGQAEVRnABFUaAARVGkAEVRqABFUawARVG0AEVRvABFUcAARVHEAEVRzABFUdAARVQcAEVUqABFVSgARVWoAEVVsABFVbgARVXAAEVVyABFVdQARVXYAEVV3ABFVegARVXsAEVV9ABFVfgARVYAAEVWDABFVhAARVYUAEVWIABFViQARVY4AEVWnABFVsAARVbIAEVW0ABFVvQARVcAAEVXDABFVxQARVg4AEVYyABFWWQARVn0AEVaAABFWggARVoQAEVaGABFWiAARVooAEVaLABFWjgARVqcAEVbIABFWygARVswAEVbOABFW0AARVtIAEVbUABFW1gARVtgAEVb5ABFW/AARVv8AEVcCABFXBQARVwgAEVcLABFXDgARVxEAEVcTABFXjgARV5AAEVeSABFXlAARV5cAEVeYABFXmQARV5oAEVebABFXnQARV58AEVegABFXoQARV6MAEVekABFYHwARWCEAEVgjABFYJQARWCgAEVgpABFYKgARWCsAEVgsABFYLgARWDAAEVgxABFYMgARWDQAEVg1ABFYsAARWLIAEVi1ABFYtwARWLoAEVi7ABFYvAARWL0AEVi+ABFYwAARWMIAEVjDABFYxAARWMYAEVjHABFY4AARWOEAEVjiABFY5AARWV8AEVlhABFZYwARWWUAEVloABFZaQARWWoAEVlrABFZbAARWW4AEVlwABFZcQARWXIAEVl0ABFZdQARWfAAEVnyABFZ9AARWfYAEVn5ABFZ+gARWfsAEVn8ABFZ/QARWf8AEVoBABFaAgARWgMAEVoFABFaBgARWoEAEVqDABFahQARWocAEVqKABFaiwARWowAEVqNABFajgARWpAAEVqSABFakwARWpQAEVqWABFalwARWxIAEVsUABFbFgARWxgAEVsbABFbHAARWx0AEVseABFbHwARWyEAEVsjABFbJAARWyUAEVsnABFbKAARW6MAEVulABFbpwARW6kAEVusABFbrQARW64AEVuvABFbsAARW7IAEVu0ABFbtQARW7YAEVu4ABFbuQARXAIAEVwmABFcTQARXHEAEVx0ABFcdgARXHgAEVx6ABFcfAARXH4AEVx/ABFcggARXJsAEVy4ABFcugARXLwAEVy+ABFcwAARXMIAEVzEABFcxgARXOMAEVzmABFc6QARXOwAEVzvABFc8gARXPUAEVz4ABFc+gARXXUAEV13ABFdeQARXXsAEV1+ABFdfwARXYAAEV2BABFdggARXYQAEV2GABFdhwARXYgAEV2KABFdiwARXgYAEV4IABFeCgARXgwAEV4PABFeEAARXhEAEV4SABFeEwARXhUAEV4XABFeGAARXhkAEV4bABFeHAARXpcAEV6ZABFemwARXp0AEV6gABFeoQARXqIAEV6jABFepAARXqYAEV6oABFeqQARXqoAEV6sABFerQARXygAEV8qABFfLQARXy8AEV8yABFfMwARXzQAEV81ABFfNgARXzgAEV86ABFfOwARXzwAEV8+ABFfPwARX7oAEV+8ABFfvgARX8AAEV/DABFfxAARX8UAEV/GABFfxwARX8kAEV/LABFfzAARX80AEV/PABFf0AARYEsAEWBNABFgTwARYFEAEWBUABFgVQARYFYAEWBXABFgWAARYFoAEWBcABFgXQARYF4AEWBgABFgYQARYNwAEWDeABFg4AARYOIAEWDlABFg5gARYOcAEWDoABFg6QARYOsAEWDtABFg7gARYO8AEWDxABFg8gARYYUAEWGoABFhyAARYegAEWHqABFh7AARYe4AEWHwABFh8wARYfQAEWH1ABFh+AARYfkAEWH7ABFh/AARYf4AEWIBABFiAgARYgMAEWIGABFiBwARYgwAEWIlABFiLgARYjAAEWIyABFiOwARYj4AEWJBABFiQwARYowAEWKwABFi1wARYvsAEWL+ABFjAAARYwIAEWMEABFjBgARYwgAEWMJABFjDAARYyUAEWNGABFjSAARY0oAEWNMABFjTgARY1AAEWNSABFjVAARY1YAEWN3ABFjegARY30AEWOAABFjgwARY4YAEWOJABFjjAARY48AEWORABFkDAARZA4AEWQQABFkEgARZBUAEWQWABFkFwARZBgAEWQZABFkGwARZB0AEWQeABFkHwARZCEAEWQiABFknQARZJ8AEWShABFkowARZKYAEWSnABFkqAARZKkAEWSqABFkrAARZK4AEWSvABFksAARZLIAEWSzABFlLgARZTAAEWUzABFlNQARZTgAEWU5ABFlOgARZTsAEWU8ABFlPgARZUAAEWVBABFlQgARZUQAEWVFABFlXgARZV8AEWVgABFlYgARZd0AEWXfABFl4QARZeMAEWXmABFl5wARZegAEWXpABFl6gARZewAEWXuABFl7wARZfAAEWXyABFl8wARZm4AEWZwABFmcgARZnQAEWZ3ABFmeAARZnkAEWZ6ABFmewARZn0AEWZ/ABFmgAARZoEAEWaDABFmhAARZv8AEWcBABFnAwARZwUAEWcIABFnCQARZwoAEWcLABFnDAARZw4AEWcQABFnEQARZxIAEWcUABFnFQARZ5AAEWeSABFnlAARZ5YAEWeZABFnmgARZ5sAEWecABFnnQARZ58AEWehABFnogARZ6MAEWelABFnpgARaCEAEWgjABFoJQARaCcAEWgqABFoKwARaCwAEWgtABFoLgARaDAAEWgyABFoMwARaDQAEWg2ABFoNwARaIAAEWikABFoywARaO8AEWjyABFo9AARaPYAEWj4ABFo+gARaPwAEWj9ABFpAAARaRkAEWk2ABFpOAARaToAEWk8ABFpPgARaUAAEWlCABFpRAARaWEAEWlkABFpZwARaWoAEWltABFpcAARaXMAEWl2ABFpeAARafMAEWn1ABFp+AARafoAEWn9ABFp/gARaf8AEWoAABFqAQARagMAEWoFABFqBgARagcAEWoJABFqCgARag4AEWqJABFqiwARao0AEWqPABFqkgARapMAEWqUABFqlQARapYAEWqYABFqmgARapsAEWqcABFqngARap8AEWsaABFrHAARax4AEWsgABFrIwARayQAEWslABFrJgARaycAEWspABFrKwARaywAEWstABFrLwARazAAEWurABFrrQARa68AEWuxABFrtAARa7UAEWu2ABFrtwARa7gAEWu6ABFrvAARa70AEWu+ABFrwAARa8EAEWw8ABFsPgARbEAAEWxCABFsRQARbEYAEWxHABFsSAARbEkAEWxLABFsTQARbE4AEWxPABFsUQARbFIAEWzNABFszwARbNEAEWzTABFs1gARbNcAEWzYABFs2QARbNoAEWzcABFs3gARbN8AEWzgABFs4gARbOMAEW1eABFtYAARbWIAEW1kABFtZwARbWgAEW1pABFtagARbWsAEW1tABFtbwARbXAAEW1xABFtcwARbXQAEW4HABFuKgARbkoAEW5qABFubAARbm4AEW5wABFucgARbnUAEW52ABFudwARbnoAEW57ABFufQARbn4AEW6AABFugwARboQAEW6FABFuiAARbokAEW6OABFupwARbrAAEW6yABFutAARbr0AEW7AABFuwwARbsUAEW8OABFvMgARb1kAEW99ABFvgAARb4IAEW+EABFvhgARb4gAEW+KABFviwARb44AEW+nABFvyAARb8oAEW/MABFvzgARb9AAEW/SABFv1AARb9YAEW/YABFv+QARb/wAEW//ABFwAgARcAUAEXAIABFwCwARcA4AEXARABFwEwARcI4AEXCQABFwkgARcJQAEXCXABFwmAARcJkAEXCaABFwmwARcJ0AEXCfABFwoAARcKEAEXCjABFwpAARcR8AEXEhABFxIwARcSUAEXEoABFxKQARcSoAEXErABFxLAARcS4AEXEwABFxMQARcTIAEXE0ABFxNQARcbAAEXGyABFxtQARcbcAEXG6ABFxuwARcbwAEXG9ABFxvgARccAAEXHCABFxwwARccQAEXHGABFxxwARceAAEXHhABFx4gARceQAEXJfABFyYQARcmMAEXJlABFyaAARcmkAEXJqABFyawARcmwAEXJuABFycAARcnEAEXJyABFydAARcnUAEXLwABFy8gARcvQAEXL2ABFy+QARcvoAEXL7ABFy/AARcv0AEXL/ABFzAQARcwIAEXMDABFzBQARcwYAEXOBABFzgwARc4UAEXOHABFzigARc4sAEXOMABFzjQARc44AEXOQABFzkgARc5MAEXOUABFzlgARc5cAEXQSABF0FAARdBYAEXQYABF0GwARdBwAEXQdABF0HgARdB8AEXQhABF0IwARdCQAEXQlABF0JwARdCgAEXSjABF0pQARdKcAEXSpABF0rAARdK0AEXSuABF0rwARdLAAEXSyABF0tAARdLUAEXS2ABF0uAARdLkAEXUCABF1JgARdU0AEXVxABF1dAARdXYAEXV4ABF1egARdXwAEXV+ABF1fwARdYIAEXWbABF1uAARdboAEXW8ABF1vgARdcAAEXXCABF1xAARdcYAEXXjABF15gARdekAEXXsABF17wARdfIAEXX1ABF1+AARdfoAEXZ1ABF2dwARdnkAEXZ7ABF2fgARdn8AEXaAABF2gQARdoIAEXaEABF2hgARdocAEXaIABF2igARdosAEXcGABF3CAARdwoAEXcMABF3DwARdxAAEXcRABF3EgARdxMAEXcVABF3FwARdxgAEXcZABF3GwARdxwAEXeXABF3mQARd5sAEXedABF3oAARd6EAEXeiABF3owARd6QAEXemABF3qAARd6kAEXeqABF3rAARd60AEXgoABF4KgAReCwAEXguABF4MQAReDIAEXgzABF4NAAReDUAEXg3ABF4OQAReDoAEXg7ABF4PQAReD4AEXi5ABF4uwAReL0AEXi/ABF4wgAReMMAEXjEABF4xQAReMYAEXjIABF4ygAReMsAEXjMABF4zgAReM8AEXlKABF5TAAReU4AEXlQABF5UwAReVQAEXlVABF5VgAReVcAEXlZABF5WwAReVwAEXldABF5XwAReWAAEXnbABF53QARed8AEXnhABF55AAReeUAEXnmABF55wAReegAEXnqABF57AARee0AEXnuABF58AARefEAEXqEABF6pwARescAEXrnABF66QAReusAEXrtABF67wARevIAEXrzABF69AARevcAEXr4ABF6+gARevsAEXr9ABF7AAARewEAEXsCABF7BQARewYAEXsLABF7JAARey0AEXsvABF7MQARezoAEXs9ABF7QAARe0IAEXuLABF7rwARe9YAEXv6ABF7/QARe/8AEXwBABF8AwARfAUAEXwHABF8CAARfAsAEXwkABF8RQARfEcAEXxJABF8SwARfE0AEXxPABF8UQARfFMAEXxVABF8dgARfHkAEXx8ABF8fwARfIIAEXyFABF8iAARfIsAEXyOABF8kAARfQsAEX0NABF9DwARfREAEX0UABF9FQARfRYAEX0XABF9GAARfRoAEX0cABF9HQARfR4AEX0gABF9IQARfZwAEX2eABF9oAARfaIAEX2lABF9pgARfacAEX2oABF9qQARfasAEX2tABF9rgARfa8AEX2xABF9sgARfi0AEX4vABF+MgARfjQAEX43ABF+OAARfjkAEX46ABF+OwARfj0AEX4/ABF+QAARfkEAEX5DABF+RAARfl0AEX5eABF+XwARfmEAEX7cABF+3gARfuAAEX7iABF+5QARfuYAEX7nABF+6AARfukAEX7rABF+7QARfu4AEX7vABF+8QARfvIAEX9tABF/bwARf3EAEX9zABF/dgARf3cAEX94ABF/eQARf3oAEX98ABF/fgARf38AEX+AABF/ggARf4MAEX/+ABGAAAARgAIAEYAEABGABwARgAgAEYAJABGACgARgAsAEYANABGADwARgBAAEYARABGAEwARgBQAEYCPABGAkQARgJMAEYCVABGAmAARgJkAEYCaABGAmwARgJwAEYCeABGAoAARgKEAEYCiABGApAARgKUAEYEgABGBIgARgSQAEYEmABGBKQARgSoAEYErABGBLAARgS0AEYEvABGBMQARgTIAEYEzABGBNQARgTYAEYF/ABGBowARgcoAEYHuABGB8QARgfMAEYH1ABGB9wARgfkAEYH7ABGB/AARgf8AEYIYABGCNQARgjcAEYI5ABGCOwARgj0AEYI/ABGCQQARgkMAEYJgABGCYwARgmYAEYJpABGCbAARgm8AEYJyABGCdQARgncAEYLyABGC9AARgvYAEYL4ABGC+wARgvwAEYL9ABGC/gARgv8AEYMBABGDAwARgwQAEYMFABGDBwARgwgAEYODABGDhQARg4cAEYOJABGDjAARg40AEYOOABGDjwARg5AAEYOSABGDlAARg5UAEYOWABGDmAARg5kAEYQUABGEFgARhBgAEYQaABGEHQARhB4AEYQfABGEIAARhCEAEYQjABGEJQARhCYAEYQnABGEKQARhCoAEYSlABGEpwARhKkAEYSrABGErgARhK8AEYSwABGEsQARhLIAEYS0ABGEtgARhLcAEYS4ABGEugARhLsAEYU2ABGFOAARhToAEYU8ABGFPwARhUAAEYVBABGFQgARhUMAEYVFABGFRwARhUgAEYVJABGFSwARhUwAEYXHABGFyQARhcsAEYXNABGF0AARhdEAEYXSABGF0wARhdQAEYXWABGF2AARhdkAEYXaABGF3AARhd0AEYZYABGGWgARhlwAEYZeABGGYQARhmIAEYZjABGGZAARhmUAEYZnABGGaQARhmoAEYZrABGGbQARhm4AEYcBABGHJAARh0QAEYdkABGHZgARh2gAEYdqABGHbAARh28AEYdwABGHcQARh3QAEYd1ABGHdwARh3gAEYd7ABGHfgARh38AEYeAABGHgwARh4QAEYeJABGHogARh6sAEYetABGHrwARh7gAEYe7ABGHvgARh8AAEYgJABGILQARiFQAEYh4ABGIewARiH0AEYh/ABGIgQARiIMAEYiFABGIhgARiIkAEYiiABGIwwARiMUAEYjHABGIyQARiMsAEYjNABGIzwARiNEAEYjTABGI9AARiPcAEYj6ABGI/QARiQAAEYkDABGJBgARiQkAEYkMABGJDgARiYkAEYmLABGJjQARiY8AEYmSABGJkwARiZQAEYmVABGJlgARiZgAEYmaABGJmwARiZwAEYmeABGJnwARihoAEYocABGKHgARiiAAEYojABGKJAARiiUAEYomABGKJwARiikAEYorABGKLAARii0AEYovABGKMAARiqsAEYqtABGKsAARirIAEYq1ABGKtgARircAEYq4ABGKuQARirsAEYq9ABGKvgARir8AEYrBABGKwgARitsAEYrcABGK3QARit8AEYtaABGLXAARi14AEYtgABGLYwARi2QAEYtlABGLZgARi2cAEYtpABGLawARi2wAEYttABGLbwARi3AAEYvrABGL7QARi+8AEYvxABGL9AARi/UAEYv2ABGL9wARi/gAEYv6ABGL/AARi/0AEYv+ABGMAAARjAEAEYx8ABGMfgARjIAAEYyCABGMhQARjIYAEYyHABGMiAARjIkAEYyLABGMjQARjI4AEYyPABGMkQARjJIAEY0NABGNDwARjREAEY0TABGNFgARjRcAEY0YABGNGQARjRoAEY0cABGNHgARjR8AEY0gABGNIgARjSMAEY2eABGNoAARjaIAEY2kABGNpwARjagAEY2pABGNqgARjasAEY2tABGNrwARjbAAEY2xABGNswARjbQAEY39ABGOIQARjkgAEY5sABGObwARjnEAEY5zABGOdQARjncAEY55ABGOegARjn0AEY6WABGOswARjrUAEY63ABGOuQARjrsAEY69ABGOvwARjsEAEY7eABGO4QARjuQAEY7nABGO6gARju0AEY7wABGO8wARjvUAEY9wABGPcgARj3QAEY92ABGPeQARj3oAEY97ABGPfAARj30AEY9/ABGPgQARj4IAEY+DABGPhQARj4YAEZABABGQAwARkAYAEZAIABGQCwARkAwAEZANABGQDgARkA8AEZARABGQEwARkBQAEZAVABGQFwARkBgAEZCTABGQlQARkJcAEZCZABGQnAARkJ0AEZCeABGQnwARkKAAEZCiABGQpAARkKUAEZCmABGQqAARkKkAEZEkABGRJgARkSkAEZErABGRLgARkS8AEZEwABGRMQARkTIAEZE0ABGRNgARkTcAEZE4ABGROgARkTsAEZG+ABGR4gARkgYAEZIpABGSUAARknAAEZKXABGSvgARkt4AEZMCABGTJgARkygAEZMrABGTLQARky8AEZMxABGTNAARkzcAEZM5ABGTOwARkz4AEZNAABGTQgARk0UAEZNIABGTSQARk04AEZNnABGTbAARk24AEZNzABGTdgARk3gAEZPBABGT5QARlAwAEZQwABGUMwARlDUAEZQ3ABGUOQARlDsAEZQ9ABGUPgARlEEAEZRaABGUfwARlIEAEZSDABGUhQARlIcAEZSJABGUiwARlI0AEZSPABGUkQARlLYAEZS5ABGUvAARlL8AEZTCABGUxQARlMgAEZTLABGUzgARlNEAEZTTABGVTgARlVAAEZVTABGVVQARlVgAEZVZABGVWgARlVsAEZVcABGVXgARlWAAEZVhABGVYgARlWQAEZVlABGVdgARlXcAEZV5ABGV9AARlfYAEZX4ABGV+gARlf0AEZX+ABGV/wARlgAAEZYBABGWAwARlgUAEZYGABGWBwARlgkAEZYKABGWhQARlocAEZaKABGWjAARlo8AEZaQABGWkQARlpIAEZaTABGWlQARlpcAEZaYABGWmQARlpsAEZacABGWrQARlrIAEZa1ABGWtwARlsgAEZbVABGW2AARltsAEZbeABGW4AARlvsAEZcRABGXjAARl44AEZeQABGXkgARl5UAEZeWABGXlwARl5gAEZeZABGXmwARl50AEZeeABGXnwARl6EAEZeiABGYHQARmB8AEZgiABGYJAARmCcAEZgoABGYKQARmCoAEZgrABGYLQARmC8AEZgwABGYMQARmDMAEZg0ABGYRQARmEYAEZhIABGYwwARmMUAEZjHABGYyQARmMwAEZjNABGYzgARmM8AEZjQABGY0gARmNQAEZjVABGY1gARmNgAEZjZABGZVAARmVYAEZlZABGZWwARmV4AEZlfABGZYAARmWEAEZliABGZZAARmWYAEZlnABGZaAARmWoAEZlrABGZhAARmYUAEZmGABGZiAARmgMAEZoFABGaBwARmgkAEZoMABGaDQARmg4AEZoPABGaEAARmhIAEZoUABGaFQARmhYAEZoYABGaGQARmpQAEZqWABGamQARmpsAEZqeABGanwARmqAAEZqhABGaogARmqQAEZqmABGapwARmqgAEZqqABGaqwARmscAEZrgABGa9QARmvgAEZr7ABGa/gARmwEAEZsEABGbGQARmxwAEZsfABGbIgARmyUAEZsoABGbKgARm0AAEZtbABGbdAARm4AAEZwTABGcNgARnFYAEZx2ABGceAARnHoAEZx8ABGcfgARnIEAEZyCABGcgwARnIYAEZyHABGciQARnIoAEZyMABGcjwARnJAAEZyRABGclAARnJUAEZyaABGcswARnLwAEZy+ABGcwAARnMkAEZzMABGczwARnNEAEZ0aABGdPgARnWUAEZ2JABGdjAARnY4AEZ2QABGdkgARnZQAEZ2WABGdlwARnZoAEZ2zABGd1AARndYAEZ3YABGd2gARndwAEZ3eABGd4AARneIAEZ3kABGeBQARnggAEZ4LABGeDgARnhEAEZ4UABGeFwARnhoAEZ4dABGeHwARnpoAEZ6cABGengARnqAAEZ6jABGepAARnqUAEZ6mABGepwARnqkAEZ6rABGerAARnq0AEZ6vABGesAARnysAEZ8tABGfLwARnzEAEZ80ABGfNQARnzYAEZ83ABGfOAARnzoAEZ88ABGfPQARnz4AEZ9AABGfQQARn7wAEZ++ABGfwQARn8MAEZ/GABGfxwARn8gAEZ/JABGfygARn8wAEZ/OABGfzwARn9AAEZ/SABGf0wARn+wAEZ/tABGf7gARn/AAEaBrABGgbQARoG8AEaBxABGgdAARoHUAEaB2ABGgdwARoHgAEaB6ABGgfAARoH0AEaB+ABGggAARoIEAEaD8ABGg/gARoQAAEaECABGhBQARoQYAEaEHABGhCAARoQkAEaELABGhDQARoQ4AEaEPABGhEQARoRIAEaGNABGhjwARoZEAEaGTABGhlgARoZcAEaGYABGhmQARoZoAEaGcABGhngARoZ8AEaGgABGhogARoaMAEaIeABGiIAARoiIAEaIkABGiJwARoigAEaIpABGiKgARoisAEaItABGiLwARojAAEaIxABGiMwARojQAEaKvABGisQARorMAEaK1ABGiuAARorkAEaK6ABGiuwARorwAEaK+ABGiwAARosEAEaLCABGixAARosUAEaMOABGjMgARo1kAEaN9ABGjgAARo4IAEaOEABGjhgARo4gAEaOKABGjiwARo44AEaOnABGjxAARo8YAEaPIABGjygARo8wAEaPOABGj0AARo9IAEaPvABGj8gARo/UAEaP4ABGj+wARo/4AEaQBABGkBAARpAYAEaSBABGkgwARpIUAEaSHABGkigARpIsAEaSMABGkjQARpI4AEaSQABGkkgARpJMAEaSUABGklgARpJcAEaUSABGlFAARpRYAEaUYABGlGwARpRwAEaUdABGlHgARpR8AEaUhABGlIwARpSQAEaUlABGlJwARpSgAEaWjABGlpQARpacAEaWpABGlrAARpa0AEaWuABGlrwARpbAAEaWyABGltAARpbUAEaW2ABGluAARpbkAEaY0ABGmNgARpjgAEaY6ABGmPQARpj4AEaY/ABGmQAARpkEAEaZDABGmRQARpkYAEaZHABGmSQARpkoAEabFABGmxwARpskAEabLABGmzgARps8AEabQABGm0QARptIAEabUABGm1gARptcAEabYABGm2gARptsAEadWABGnWAARp1oAEadcABGnXwARp2AAEadhABGnYgARp2MAEadlABGnZwARp2gAEadpABGnawARp2wAEafnABGn6QARp+sAEaftABGn8AARp/EAEafyABGn8wARp/QAEaf2ABGn+AARp/kAEaf6ABGn/AARp/0AEaiQABGoswARqNMAEajzABGo9QARqPcAEaj5ABGo+wARqP4AEaj/ABGpAAARqQMAEakEABGpBgARqQcAEakJABGpDAARqQ0AEakOABGpEQARqRIAEakXABGpMAARqTkAEak7ABGpPQARqUYAEalJABGpTAARqU4AEamXABGpuwARqeIAEaoGABGqCQARqgsAEaoNABGqDwARqhEAEaoTABGqFAARqhcAEaowABGqUQARqlMAEapVABGqVwARqlkAEapbABGqXQARql8AEaphABGqggARqoUAEaqIABGqiwARqo4AEaqRABGqlAARqpcAEaqaABGqnAARqxcAEasZABGrGwARqx0AEasgABGrIQARqyIAEasjABGrJAARqyYAEasoABGrKQARqyoAEassABGrLQARq6gAEauqABGrrAARq64AEauxABGrsgARq7MAEau0ABGrtQARq7cAEau5ABGrugARq7sAEau9ABGrvgARrDkAEaw7ABGsPgARrEAAEaxDABGsRAARrEUAEaxGABGsRwARrEkAEaxLABGsTAARrE0AEaxPABGsUAARrGkAEaxqABGsawARrG0AEazoABGs6gARrOwAEazuABGs8QARrPIAEazzABGs9AARrPUAEaz3ABGs+QARrPoAEaz7ABGs/QARrP4AEa15ABGtewARrX0AEa1/ABGtggARrYMAEa2EABGthQARrYYAEa2IABGtigARrYsAEa2MABGtjgARrY8AEa4KABGuDAARrg4AEa4QABGuEwARrhQAEa4VABGuFgARrhcAEa4ZABGuGwARrhwAEa4dABGuHwARriAAEa6bABGunQARrp8AEa6hABGupAARrqUAEa6mABGupwARrqgAEa6qABGurAARrq0AEa6uABGusAARrrEAEa8sABGvLgARrzAAEa8yABGvNQARrzYAEa83ABGvOAARrzkAEa87ABGvPQARrz4AEa8/ABGvQQARr0IAEa+LABGvrwARr9YAEa/6ABGv/QARr/8AEbABABGwAwARsAUAEbAHABGwCAARsAsAEbAkABGwQQARsEMAEbBFABGwRwARsEkAEbBLABGwTQARsE8AEbBsABGwbwARsHIAEbB1ABGweAARsHsAEbB+ABGwgQARsIMAEbD+ABGxAAARsQIAEbEEABGxBwARsQgAEbEJABGxCgARsQsAEbENABGxDwARsRAAEbERABGxEwARsRQAEbGPABGxkQARsZMAEbGVABGxmAARsZkAEbGaABGxmwARsZwAEbGeABGxoAARsaEAEbGiABGxpAARsaUAEbIgABGyIgARsiQAEbImABGyKQARsioAEbIrABGyLAARsi0AEbIvABGyMQARsjIAEbIzABGyNQARsjYAEbKxABGyswARsrUAEbK3ABGyugARsrsAEbK8ABGyvQARsr4AEbLAABGywgARssMAEbLEABGyxgARsscAEbNCABGzRAARs0YAEbNIABGzSwARs0wAEbNNABGzTgARs08AEbNRABGzUwARs1QAEbNVABGzVwARs1gAEbPTABGz1QARs9cAEbPZABGz3AARs90AEbPeABGz3wARs+AAEbPiABGz5AARs+UAEbPmABGz6AARs+kAEbRkABG0ZgARtGgAEbRqABG0bQARtG4AEbRvABG0cAARtHEAEbRzABG0dQARtHYAEbR3ABG0eQARtHoAEbUNABG1MAARtVAAEbVwABG1cgARtXQAEbV2ABG1eAARtXsAEbV8ABG1fQARtYAAEbWBABG1gwARtYQAEbWGABG1iQARtYoAEbWLABG1jgARtY8AEbWYABG1sQARtboAEbW8ABG1vgARtccAEbXKABG1zQARtc8AEbYYABG2PAARtmMAEbaHABG2igARtowAEbaOABG2kAARtpIAEbaUABG2lQARtpgAEbaxABG20gARttQAEbbWABG22AARttoAEbbcABG23gARtuAAEbbiABG3AwARtwYAEbcJABG3DAARtw8AEbcSABG3FQARtxgAEbcbABG3HQARt5gAEbeaABG3nAARt54AEbehABG3ogARt6MAEbekABG3pQARt6cAEbepABG3qgARt6sAEbetABG3rgARuCkAEbgrABG4LQARuC8AEbgyABG4MwARuDQAEbg1ABG4NgARuDgAEbg6ABG4OwARuDwAEbg+ABG4PwARuLoAEbi8ABG4vwARuMEAEbjEABG4xQARuMYAEbjHABG4yAARuMoAEbjMABG4zQARuM4AEbjQABG40QARuOoAEbjrABG47AARuO4AEblpABG5awARuW0AEblvABG5cgARuXMAEbl0ABG5dQARuXYAEbl4ABG5egARuXsAEbl8ABG5fgARuX8AEbn6ABG5/AARuf4AEboAABG6AwARugQAEboFABG6BgARugcAEboJABG6CwARugwAEboNABG6DwARuhAAEbqLABG6jQARuo8AEbqRABG6lAARupUAEbqWABG6lwARupgAEbqaABG6nAARup0AEbqeABG6oAARuqEAEbscABG7HgARuyAAEbsiABG7JQARuyYAEbsnABG7KAARuykAEbsrABG7LQARuy4AEbsvABG7MQARuzIAEbutABG7rwARu7EAEbuzABG7tgARu7cAEbu4ABG7uQARu7oAEbu8ABG7vgARu78AEbvAABG7wgARu8MAEbwMABG8MAARvFcAEbx7ABG8fgARvIAAEbyCABG8hAARvIYAEbyIABG8iQARvIwAEbylABG8wgARvMQAEbzGABG8yAARvMoAEbzMABG8zgARvNAAEbztABG88AARvPMAEbz2ABG8+QARvPwAEbz/ABG9AgARvQQAEb1/ABG9gQARvYQAEb2GABG9iQARvYoAEb2LABG9jAARvY0AEb2PABG9kQARvZIAEb2TABG9lQARvZYAEb4RABG+EwARvhUAEb4XABG+GgARvhsAEb4cABG+HQARvh4AEb4gABG+IgARviMAEb4kABG+JgARvicAEb6iABG+pAARvqYAEb6oABG+qwARvqwAEb6tABG+rgARvq8AEb6xABG+swARvrQAEb61ABG+twARvrgAEb8zABG/NQARvzgAEb86ABG/PQARvz4AEb8/ABG/QAARv0EAEb9DABG/RQARv0YAEb9HABG/SQARv0oAEb/FABG/xwARv8kAEb/LABG/zgARv88AEb/QABG/0QARv9IAEb/UABG/1gARv9cAEb/YABG/2gARv9sAEcBWABHAWAARwFoAEcBcABHAXwARwGAAEcBhABHAYgARwGMAEcBlABHAZwARwGgAEcBpABHAawARwGwAEcDnABHA6QARwOsAEcDtABHA8AARwPEAEcDyABHA8wARwPQAEcD2ABHA+AARwPkAEcD6ABHA/AARwP0AEcGQABHBswARwdMAEcHzABHB9QARwfcAEcH5ABHB+wARwf4AEcH/ABHCAAARwgMAEcIEABHCBgARwgcAEcIJABHCDAARwg0AEcIOABHCEQARwhIAEcIXABHCMAARwjkAEcI7ABHCPQARwkYAEcJJABHCTAARwk4AEcKXABHCuwARwuIAEcMGABHDCQARwwsAEcMNABHDDwARwxEAEcMTABHDFAARwxcAEcMwABHDUQARw1MAEcNVABHDVwARw1kAEcNbABHDXQARw18AEcNhABHDggARw4UAEcOIABHDiwARw44AEcORABHDlAARw5cAEcOaABHDnAARxBcAEcQZABHEGwARxB0AEcQgABHEIQARxCIAEcQjABHEJAARxCYAEcQoABHEKQARxCoAEcQsABHELQARxKgAEcSqABHErAARxK4AEcSxABHEsgARxLMAEcS0ABHEtQARxLcAEcS5ABHEugARxLsAEcS9ABHEvgARxTkAEcU7ABHFPgARxUAAEcVDABHFRAARxUUAEcVGABHFRwARxUkAEcVLABHFTAARxU0AEcVPABHFUAARxWkAEcVqABHFawARxW0AEcXoABHF6gARxewAEcXuABHF8QARxfIAEcXzABHF9AARxfUAEcX3ABHF+QARxfoAEcX7ABHF/QARxf4AEcZ5ABHGewARxn0AEcZ/ABHGggARxoMAEcaEABHGhQARxoYAEcaIABHGigARxosAEcaMABHGjgARxo8AEccKABHHDAARxw4AEccQABHHEwARxxQAEccVABHHFgARxxcAEccZABHHGwARxxwAEccdABHHHwARxyAAEcebABHHnQARx58AEcehABHHpAARx6UAEcemABHHpwARx6gAEceqABHHrAARx60AEceuABHHsAARx7EAEcgsABHILgARyDAAEcgyABHINQARyDYAEcg3ABHIOAARyDkAEcg7ABHIPQARyD4AEcg/ABHIQQARyEIAEciLABHIrwARyNYAEcj6ABHI/QARyP8AEckBABHJAwARyQUAEckHABHJCAARyQsAEckkABHJQQARyUMAEclFABHJRwARyUkAEclLABHJTQARyU8AEclsABHJbwARyXIAEcl1ABHJeAARyXsAEcl+ABHJgQARyYMAEcn+ABHKAAARygIAEcoEABHKBwARyggAEcoJABHKCgARygsAEcoNABHKDwARyhAAEcoRABHKEwARyhQAEcqPABHKkQARypMAEcqVABHKmAARypkAEcqaABHKmwARypwAEcqeABHKoAARyqEAEcqiABHKpAARyqUAEcsgABHLIgARyyQAEcsmABHLKQARyyoAEcsrABHLLAARyy0AEcsvABHLMQARyzIAEcszABHLNQARyzYAEcuxABHLswARy7UAEcu3ABHLugARy7sAEcu8ABHLvQARy74AEcvAABHLwgARy8MAEcvEABHLxgARy8cAEcxCABHMRAARzEYAEcxIABHMSwARzEwAEcxNABHMTgARzE8AEcxRABHMUwARzFQAEcxVABHMVwARzFgAEczTABHM1QARzNcAEczZABHM3AARzN0AEczeABHM3wARzOAAEcziABHM5AARzOUAEczmABHM6AARzOkAEc1kABHNZgARzWgAEc1qABHNbQARzW4AEc1vABHNcAARzXEAEc1zABHNdQARzXYAEc13ABHNeQARzXoAEc4NABHOMAARzlAAEc5wABHOcgARznQAEc52ABHOeAARznsAEc58ABHOfQARzoAAEc6BABHOgwARzoQAEc6HABHOigARzosAEc6MABHOjwARzpAAEc6VABHOrgARzrcAEc65ABHOuwARzsQAEc7HABHOygARzswAEc8VABHPOQARz2AAEc+EABHPhwARz4kAEc+LABHPjQARz48AEc+RABHPkgARz5UAEc+uABHPzwARz9EAEc/TABHP1QARz9cAEc/ZABHP2wARz90AEc/fABHQAAAR0AMAEdAGABHQCQAR0AwAEdAPABHQEgAR0BUAEdAYABHQGgAR0JUAEdCXABHQmQAR0JsAEdCeABHQnwAR0KAAEdChABHQogAR0KQAEdCmABHQpwAR0KgAEdCqABHQqwAR0SYAEdEoABHRKgAR0SwAEdEvABHRMAAR0TEAEdEyABHRMwAR0TUAEdE3ABHROAAR0TkAEdE7ABHRPAAR0bcAEdG5ABHRvAAR0b4AEdHBABHRwgAR0cMAEdHEABHRxQAR0ccAEdHJABHRygAR0csAEdHNABHRzgAR0ecAEdHoABHR6QAR0esAEdJmABHSaAAR0moAEdJsABHSbwAR0nAAEdJxABHScgAR0nMAEdJ1ABHSdwAR0ngAEdJ5ABHSewAR0nwAEdL3ABHS+QAR0vsAEdL9ABHTAAAR0wEAEdMCABHTAwAR0wQAEdMGABHTCAAR0wkAEdMKABHTDAAR0w0AEdOIABHTigAR04wAEdOOABHTkQAR05IAEdOTABHTlAAR05UAEdOXABHTmQAR05oAEdObABHTnQAR054AEdQZABHUGwAR1B0AEdQfABHUIgAR1CMAEdQkABHUJQAR1CYAEdQoABHUKgAR1CsAEdQsABHULgAR1C8AEdSqABHUrAAR1K4AEdSwABHUswAR1LQAEdS1ABHUtgAR1LcAEdS5ABHUuwAR1LwAEdS9ABHUvwAR1MAAEdUJABHVLQAR1VQAEdV4ABHVewAR1X0AEdV/ABHVgQAR1YMAEdWFABHVhgAR1YkAEdWiABHVvwAR1cEAEdXDABHVxQAR1ccAEdXJABHVywAR1c0AEdXqABHV7QAR1fAAEdXzABHV9gAR1fkAEdX8ABHV/wAR1gEAEdZ8ABHWfgAR1oAAEdaCABHWhQAR1oYAEdaHABHWiAAR1okAEdaLABHWjQAR1o4AEdaPABHWkQAR1pIAEdcNABHXDwAR1xEAEdcTABHXFgAR1xcAEdcYABHXGQAR1xoAEdccABHXHgAR1x8AEdcgABHXIgAR1yMAEdeeABHXoAAR16IAEdekABHXpwAR16gAEdepABHXqgAR16sAEdetABHXrwAR17AAEdexABHXswAR17QAEdgvABHYMQAR2DQAEdg2ABHYOQAR2DoAEdg7ABHYPAAR2D0AEdg/ABHYQQAR2EIAEdhDABHYRQAR2EYAEdjBABHYwwAR2MUAEdjHABHYygAR2MsAEdjMABHYzQAR2M4AEdjQABHY0gAR2NMAEdjUABHY1gAR2NcAEdlSABHZVAAR2VYAEdlYABHZWwAR2VwAEdldABHZXgAR2V8AEdlhABHZYwAR2WQAEdllABHZZwAR2WgAEdnjABHZ5QAR2egAEdnqABHZ7QAR2e4AEdnvABHZ8AAR2fEAEdnzABHZ9QAR2fYAEdn3ABHZ+QAR2foAEdoLABHaDAAR2g4AEdqJABHaiwAR2o0AEdqPABHakgAR2pMAEdqUABHalQAR2pYAEdqYABHamgAR2psAEdqcABHangAR2p8AEdsaABHbHAAR2x4AEdsgABHbIwAR2yQAEdslABHbJgAR2ycAEdspABHbKwAR2ywAEdstABHbLwAR2zAAEdurABHbrQAR27AAEduyABHbtQAR27YAEdu3ABHbuAAR27kAEdu7ABHbvQAR274AEdu/ABHbwQAR28IAEdxVABHceAAR3JgAEdy4ABHcugAR3LwAEdy+ABHcwAAR3MMAEdzEABHcxQAR3MgAEdzJABHcywAR3MwAEdzOABHc0QAR3NIAEdzTABHc1gAR3NcAEdzcABHc9QAR3P4AEd0AABHdAgAR3QsAEd0OABHdEQAR3RMAEd1cABHdgAAR3acAEd3LABHdzgAR3dAAEd3SABHd1AAR3dYAEd3YABHd2QAR3dwAEd31ABHeFgAR3hgAEd4aABHeHAAR3h4AEd4gABHeIgAR3iQAEd4mABHeRwAR3koAEd5NABHeUAAR3lMAEd5WABHeWQAR3lwAEd5fABHeYQAR3twAEd7eABHe4AAR3uIAEd7lABHe5gAR3ucAEd7oABHe6QAR3usAEd7tABHe7gAR3u8AEd7xABHe8gAR320AEd9vABHfcQAR33MAEd92ABHfdwAR33gAEd95ABHfegAR33wAEd9+ABHffwAR34AAEd+CABHfgwAR3/4AEeAAABHgAwAR4AUAEeAIABHgCQAR4AoAEeALABHgDAAR4A4AEeAQABHgEQAR4BIAEeAUABHgFQAR4C4AEeAvABHgMAAR4DIAEeCtABHgrwAR4LEAEeCzABHgtgAR4LcAEeC4ABHguQAR4LoAEeC8ABHgvgAR4L8AEeDAABHgwgAR4MMAEeE+ABHhQAAR4UIAEeFEABHhRwAR4UgAEeFJABHhSgAR4UsAEeFNABHhTwAR4VAAEeFRABHhUwAR4VQAEeHPABHh0QAR4dMAEeHVABHh2AAR4dkAEeHaABHh2wAR4dwAEeHeABHh4AAR4eEAEeHiABHh5AAR4eUAEeJgABHiYgAR4mQAEeJmABHiaQAR4moAEeJrABHibAAR4m0AEeJvABHicQAR4nIAEeJzABHidQAR4nYAEeLxABHi8wAR4vUAEeL3ABHi+gAR4vsAEeL8ABHi/QAR4v4AEeMAABHjAgAR4wMAEeMEABHjBgAR4wcAEeNQABHjdAAR45sAEeO/ABHjwgAR48QAEePGABHjyAAR48oAEePMABHjzQAR49AAEePpABHkBgAR5AgAEeQKABHkDAAR5A4AEeQQABHkEgAR5BQAEeQxABHkNAAR5DcAEeQ6ABHkPQAR5EAAEeRDABHkRgAR5EgAEeTDABHkxQAR5McAEeTJABHkzAAR5M0AEeTOABHkzwAR5NAAEeTSABHk1AAR5NUAEeTWABHk2AAR5NkAEeVUABHlVgAR5VgAEeVaABHlXQAR5V4AEeVfABHlYAAR5WEAEeVjABHlZQAR5WYAEeVnABHlaQAR5WoAEeXlABHl5wAR5ekAEeXrABHl7gAR5e8AEeXwABHl8QAR5fIAEeX0ABHl9gAR5fcAEeX4ABHl+gAR5fsAEeZ2ABHmeAAR5nsAEeZ9ABHmgAAR5oEAEeaCABHmgwAR5oQAEeaGABHmiAAR5okAEeaKABHmjAAR5o0AEecIABHnCgAR5wwAEecOABHnEQAR5xIAEecTABHnFAAR5xUAEecXABHnGQAR5xoAEecbABHnHQAR5x4AEeeZABHnmwAR550AEeefABHnogAR56MAEeekABHnpQAR56YAEeeoABHnqgAR56sAEeesABHnrgAR568AEegqABHoLAAR6C4AEegwABHoMwAR6DQAEeg1ABHoNgAR6DcAEeg5ABHoOwAR6DwAEeg9ABHoPwAR6EAAEejTABHo9gAR6RYAEek2ABHpOAAR6ToAEek8ABHpPgAR6UEAEelCABHpQwAR6UYAEelHABHpSQAR6UoAEelNABHpUAAR6VEAEelSABHpVQAR6VYAEelbABHpdAAR6X0AEel/ABHpgQAR6YoAEemNABHpkAAR6ZIAEenbABHp/wAR6iYAEepKABHqTQAR6k8AEepRABHqUwAR6lUAEepXABHqWAAR6lsAEep0ABHqlQAR6pcAEeqZABHqmwAR6p0AEeqfABHqoQAR6qMAEeqlABHqxgAR6skAEerMABHqzwAR6tIAEerVABHq2AAR6tsAEereABHq4AAR61sAEetdABHrXwAR62EAEetkABHrZQAR62YAEetnABHraAAR62oAEetsABHrbQAR624AEetwABHrcQAR6+wAEevuABHr8AAR6/IAEev1ABHr9gAR6/cAEev4ABHr+QAR6/sAEev9ABHr/gAR6/8AEewBABHsAgAR7H0AEex/ABHsggAR7IQAEeyHABHsiAAR7IkAEeyKABHsiwAR7I0AEeyPABHskAAR7JEAEeyTABHslAAR7K0AEeyuABHsrwAR7LEAEe0sABHtLgAR7TAAEe0yABHtNQAR7TYAEe03ABHtOAAR7TkAEe07ABHtPQAR7T4AEe0/ABHtQQAR7UIAEe29ABHtvwAR7cEAEe3DABHtxgAR7ccAEe3IABHtyQAR7coAEe3MABHtzgAR7c8AEe3QABHt0gAR7dMAEe5OABHuUAAR7lIAEe5UABHuVwAR7lgAEe5ZABHuWgAR7lsAEe5dABHuXwAR7mAAEe5hABHuYwAR7mQAEe7fABHu4QAR7uMAEe7lABHu6AAR7ukAEe7qABHu6wAR7uwAEe7uABHu8AAR7vEAEe7yABHu9AAR7vUAEe9wABHvcgAR73QAEe92ABHveQAR73oAEe97ABHvfAAR730AEe9/ABHvgQAR74IAEe+DABHvhQAR74Y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AEgE5ABIBOwASATwAEgE9ABIBPwASAUAAEgHTABIB9gASAhYAEgI2ABICOAASAjoAEgI8ABICPgASAkEAEgJCABICQwASAkYAEgJHABICSQASAkoAEgJMABICTwASAlAAEgJRABICVAASAlUAEgJaABICcwASAnwAEgJ+ABICgAASAokAEgKMABICjwASApEAEgLaABIC/gASAyUAEgNJABIDTAASA04AEgNQABIDUgASA1QAEgNWABIDVwASA1oAEgNzABIDlAASA5YAEgOYABIDmgASA5wAEgOeABIDoAASA6IAEgOkABIDxQASA8gAEgPLABIDzgASA9EAEgPUABID1wASA9oAEgPdABID3wASBFoAEgRcABIEXgASBGAAEgRjABIEZAASBGUAEgRmABIEZwASBGkAEgRrABIEbAASBG0AEgRvABIEcAASBOsAEgTtABIE7wASBPEAEgT0ABIE9QASBPYAEgT3ABIE+AASBPoAEgT8ABIE/QASBP4AEgUAABIFAQASBXwAEgV+ABIFgQASBYMAEgWGABIFhwASBYgAEgWJABIFigASBYwAEgWOABIFjwASBZAAEgWSABIFkwASBawAEgWtABIFrgASBbAAEgYrABIGLQASBi8AEgYxABIGNAASBjUAEgY2ABIGNwASBjgAEgY6ABIGPAASBj0AEgY+ABIGQAASBkEAEga8ABIGvgASBsAAEgbCABIGxQASBsYAEgbHABIGyAASBskAEgbLABIGzQASBs4AEgbPABIG0QASBtIAEgdNABIHTwASB1EAEgdTABIHVgASB1cAEgdYABIHWQASB1oAEgdcABIHXgASB18AEgdgABIHYgASB2MAEgfeABIH4AASB+IAEgfkABIH5wASB+gAEgfpABIH6gASB+sAEgftABIH7wASB/AAEgfxABIH8wASB/QAEghvABIIcQASCHMAEgh1ABIIeAASCHkAEgh6ABIIewASCHwAEgh+ABIIgAASCIEAEgiCABIIhAASCIUAEgjOABII8gASCRkAEgk9ABIJQAASCUIAEglEABIJRgASCUgAEglKABIJSwASCU4AEglnABIJhAASCYYAEgmIABIJigASCYwAEgmOABIJkAASCZIAEgmvABIJsgASCbUAEgm4ABIJuwASCb4AEgnBABIJxAASCcYAEgpBABIKQwASCkUAEgpHABIKSgASCksAEgpMABIKTQASCk4AEgpQABIKUgASClMAEgpUABIKVgASClcAEgrSABIK1AASCtYAEgrYABIK2wASCtwAEgrdABIK3gASCt8AEgrhABIK4wASCuQAEgrlABIK5wASCugAEgtjABILZQASC2cAEgtpABILbAASC20AEgtuABILbwASC3AAEgtyABILdAASC3UAEgt2ABILeAASC3kAEgv0ABIL9gASC/gAEgv6ABIL/QASC/4AEgv/ABIMAAASDAEAEgwDABIMBQASDAYAEgwHABIMCQASDAoAEgyFABIMhwASDIkAEgyLABIMjgASDI8AEgyQABIMkQASDJIAEgyUABIMlgASDJcAEgyYABIMmgASDJsAEg0WABINGAASDRsAEg0dABINIAASDSEAEg0iABINIwASDSQAEg0mABINKAASDSkAEg0qABINLAASDS0AEg1MABINxwASDckAEg3LABINzQASDdAAEg3RABIN0gASDdMAEg3UABIN1gASDdgAEg3ZABIN2gASDdwAEg3dABIOcAASDpMAEg6zABIO0wASDtUAEg7XABIO2QASDtsAEg7eABIO3wASDuAAEg7jABIO5AASDuYAEg7nABIO6QASDuwAEg7tABIO7gASDvEAEg7yABIO9wASDxAAEg8ZABIPGwASDx0AEg8mABIPKQASDywAEg8uABIPdwASD5sAEg/CABIP5gASD+kAEg/rABIP7QASD+8AEg/xABIP8wASD/QAEg/3ABIQEAASEDEAEhAzABIQNQASEDcAEhA5ABIQOwASED0AEhA/ABIQQQASEGIAEhBlABIQaAASEGsAEhBuABIQcQASEHQAEhB3ABIQegASEHwAEhD3ABIQ+QASEPsAEhD9ABIRAAASEQEAEhECABIRAwASEQQAEhEGABIRCAASEQkAEhEKABIRDAASEQ0AEhGIABIRigASEYwAEhGOABIRkQASEZIAEhGTABIRlAASEZUAEhGXABIRmQASEZoAEhGbABIRnQASEZ4AEhIZABISGwASEh4AEhIgABISIwASEiQAEhIlABISJgASEicAEhIpABISKwASEiwAEhItABISLwASEjAAEhJJABISSgASEksAEhJNABISyAASEsoAEhLMABISzgASEtEAEhLSABIS0wASEtQAEhLVABIS1wASEtkAEhLaABIS2wASEt0AEhLeABITWQASE1sAEhNdABITXwASE2IAEhNjABITZAASE2UAEhNmABITaAASE2oAEhNrABITbAASE24AEhNvABIT6gASE+wAEhPuABIT8AASE/MAEhP0ABIT9QASE/YAEhP3ABIT+QASE/sAEhP8ABIT/QASE/8AEhQAABIUewASFH0AEhR/ABIUgQASFIQAEhSFABIUhgASFIcAEhSIABIUigASFIwAEhSNABIUjgASFJAAEhSRABIVDAASFQ4AEhUQABIVEgASFRUAEhUWABIVFwASFRgAEhUZABIVGwASFR0AEhUeABIVHwASFSEAEhUiABIVawASFY8AEhW2ABIV2gASFd0AEhXfABIV4QASFeMAEhXlABIV5wASFegAEhXrABIWBAASFiEAEhYjABIWJQASFicAEhYpABIWKwASFi0AEhYvABIWTAASFk8AEhZSABIWVQASFlgAEhZbABIWXgASFmEAEhZjABIW3gASFuAAEhbiABIW5AASFucAEhboABIW6QASFuoAEhbrABIW7QASFu8AEhbwABIW8QASFvMAEhb0ABIXbwASF3EAEhdzABIXdQASF3gAEhd5ABIXegASF3sAEhd8ABIXfgASF4AAEheBABIXggASF4QAEheFABIYAAASGAIAEhgEABIYBgASGAkAEhgKABIYCwASGAwAEhgNABIYDwASGBEAEhgSABIYEwASGBUAEhgWABIYkQASGJMAEhiWABIYmAASGJsAEhicABIYnQASGJ4AEhifABIYoQASGKMAEhikABIYpQASGKcAEhioABIZIwASGSUAEhknABIZKQASGSwAEhktABIZLgASGS8AEhkwABIZMgASGTQAEhk1ABIZNgASGTgAEhk5ABIZtAASGbYAEhm4ABIZugASGb0AEhm+ABIZvwASGcAAEhnBABIZwwASGcUAEhnGABIZxwASGckAEhnKABIaRQASGkcAEhpJABIaSwASGk4AEhpPABIaUAASGlEAEhpSABIaVAASGlYAEhpXABIaWAASGloAEhpbABIa7gASGxEAEhsxABIbUQASG1MAEhtVABIbVwASG1kAEhtcABIbXQASG14AEhthABIbYgASG2QAEhtlABIbZwASG2oAEhtrABIbbAASG28AEhtwABIbdQASG44AEhuXABIbmQASG5sAEhukABIbpwASG6oAEhusABIb9QASHBkAEhxAABIcZAASHGcAEhxpABIcawASHG0AEhxvABIccQASHHIAEhx1ABIcjgASHK8AEhyxABIcswASHLUAEhy3ABIcuQASHLsAEhy9ABIcvwASHOAAEhzjABIc5gASHOkAEhzsABIc7wASHPIAEhz1ABIc+AASHPoAEh11ABIddwASHXkAEh17ABIdfgASHX8AEh2AABIdgQASHYIAEh2EABIdhgASHYcAEh2IABIdigASHYsAEh4GABIeCAASHgoAEh4MABIeDwASHhAAEh4RABIeEgASHhMAEh4VABIeFwASHhgAEh4ZABIeGwASHhwAEh6XABIemQASHpwAEh6eABIeoQASHqIAEh6jABIepAASHqUAEh6nABIeqQASHqoAEh6rABIerQASHq4AEh7HABIeyAASHskAEh7LABIfRgASH0gAEh9KABIfTAASH08AEh9QABIfUQASH1IAEh9TABIfVQASH1cAEh9YABIfWQASH1sAEh9cABIf1wASH9kAEh/bABIf3QASH+AAEh/hABIf4gASH+MAEh/kABIf5gASH+gAEh/pABIf6gASH+wAEh/tABIgaAASIGoAEiBsABIgbgASIHEAEiByABIgcwASIHQAEiB1ABIgdwASIHkAEiB6ABIgewASIH0AEiB+ABIg+QASIPsAEiD9ABIg/wASIQIAEiEDABIhBAASIQUAEiEGABIhCAASIQoAEiELABIhDAASIQ4AEiEPABIhigASIYwAEiGOABIhkAASIZMAEiGUABIhlQASIZYAEiGXABIhmQASIZsAEiGcABIhnQASIZ8AEiGgABIh6QASIg0AEiI0ABIiWAASIlsAEiJdABIiXwASImEAEiJjABIiZQASImYAEiJpABIiggASIp8AEiKhABIiowASIqUAEiKnABIiqQASIqsAEiKtABIiygASIs0AEiLQABIi0wASItYAEiLZABIi3AASIt8AEiLhABIjXAASI14AEiNgABIjYgASI2UAEiNmABIjZwASI2gAEiNpABIjawASI20AEiNuABIjbwASI3EAEiNyABIj7QASI+8AEiPxABIj8wASI/YAEiP3ABIj+AASI/kAEiP6ABIj/AASI/4AEiP/ABIkAAASJAIAEiQDABIkfgASJIAAEiSCABIkhAASJIcAEiSIABIkiQASJIoAEiSLABIkjQASJI8AEiSQABIkkQASJJMAEiSUABIlDwASJREAEiUTABIlFQASJRgAEiUZABIlGgASJRsAEiUcABIlHgASJSAAEiUhABIlIgASJSQAEiUlABIloAASJaIAEiWkABIlpgASJakAEiWqABIlqwASJawAEiWtABIlrwASJbEAEiWyABIlswASJbUAEiW2ABImMQASJjMAEiY1ABImNwASJjoAEiY7ABImPAASJj0AEiY+ABImQAASJkIAEiZDABImRAASJkYAEiZHABImwgASJsQAEibGABImyAASJssAEibMABImzQASJs4AEibPABIm0QASJtMAEibUABIm1QASJtcAEibYABInawASJ44AEieuABInzgASJ9AAEifSABIn1AASJ9YAEifZABIn2gASJ9sAEifeABIn3wASJ+EAEifiABIn5AASJ+cAEifoABIn6QASJ+wAEiftABIn8gASKAsAEigUABIoFgASKBgAEighABIoJAASKCcAEigpABIocgASKJYAEii9ABIo4QASKOQAEijmABIo6AASKOoAEijsABIo7gASKO8AEijyABIpCwASKSwAEikuABIpMAASKTIAEik0ABIpNgASKTgAEik6ABIpPAASKV0AEilgABIpYwASKWYAEilpABIpbAASKW8AEilyABIpdQASKXcAEinyABIp9AASKfYAEin4ABIp+wASKfwAEin9ABIp/gASKf8AEioBABIqAwASKgQAEioFABIqBwASKggAEiqDABIqhQASKocAEiqJABIqjAASKo0AEiqOABIqjwASKpAAEiqSABIqlAASKpUAEiqWABIqmAASKpkAEisUABIrFgASKxkAEisbABIrHgASKx8AEisgABIrIQASKyIAEiskABIrJgASKycAEisoABIrKgASKysAEitEABIrRQASK0YAEitIABIrwwASK8UAEivHABIryQASK8wAEivNABIrzgASK88AEivQABIr0gASK9QAEivVABIr1gASK9gAEivZABIsVAASLFYAEixYABIsWgASLF0AEixeABIsXwASLGAAEixhABIsYwASLGUAEixmABIsZwASLGkAEixqABIs5QASLOcAEizpABIs6wASLO4AEizvABIs8AASLPEAEizyABIs9AASLPYAEiz3ABIs+AASLPoAEiz7ABItdgASLXgAEi16ABItfAASLX8AEi2AABItgQASLYIAEi2DABIthQASLYcAEi2IABItiQASLYsAEi2MABIuBwASLgkAEi4LABIuDQASLhAAEi4RABIuEgASLhMAEi4UABIuFgASLhgAEi4ZABIuGgASLhwAEi4dABIuZgASLooAEi6xABIu1QASLtgAEi7aABIu3AASLt4AEi7gABIu4gASLuMAEi7mABIu/wASLxwAEi8eABIvIAASLyIAEi8kABIvJgASLygAEi8qABIvRwASL0oAEi9NABIvUAASL1MAEi9WABIvWQASL1wAEi9eABIv2QASL9sAEi/dABIv3wASL+IAEi/jABIv5AASL+UAEi/mABIv6AASL+oAEi/rABIv7AASL+4AEi/vABIwagASMGwAEjBuABIwcAASMHMAEjB0ABIwdQASMHYAEjB3ABIweQASMHsAEjB8ABIwfQASMH8AEjCAABIw+wASMP0AEjD/ABIxAQASMQQAEjEFABIxBgASMQcAEjEIABIxCgASMQwAEjENABIxDgASMRAAEjERABIxjAASMY4AEjGRABIxkwASMZYAEjGXABIxmAASMZkAEjGaABIxnAASMZ4AEjGfABIxoAASMaIAEjGjABIyHgASMiAAEjIiABIyJAASMicAEjIoABIyKQASMioAEjIrABIyLQASMi8AEjIwABIyMQASMjMAEjI0ABIyrwASMrEAEjKzABIytQASMrgAEjK5ABIyugASMrsAEjK8ABIyvgASMsAAEjLBABIywgASMsQAEjLFABIzQAASM0IAEjNEABIzRgASM0kAEjNKABIzSwASM0wAEjNNABIzTwASM1EAEjNSABIzUwASM1UAEjNWABIz6QASNAwAEjQsABI0TAASNE4AEjRQABI0UgASNFQAEjRXABI0WAASNFkAEjRcABI0XQASNF8AEjRgABI0YgASNGUAEjRmABI0ZwASNGoAEjRrABI0dAASNI0AEjSWABI0mAASNJoAEjSjABI0pgASNKkAEjSrABI09AASNRgAEjU/ABI1YwASNWYAEjVoABI1agASNWwAEjVuABI1cAASNXEAEjV0ABI1jQASNa4AEjWwABI1sgASNbQAEjW2ABI1uAASNboAEjW8ABI1vgASNd8AEjXiABI15QASNegAEjXrABI17gASNfEAEjX0ABI19wASNfkAEjZ0ABI2dgASNngAEjZ6ABI2fQASNn4AEjZ/ABI2gAASNoEAEjaDABI2hQASNoYAEjaHABI2iQASNooAEjcFABI3BwASNwkAEjcLABI3DgASNw8AEjcQABI3EQASNxIAEjcUABI3FgASNxcAEjcYABI3GgASNxsAEjeWABI3mAASN5sAEjedABI3oAASN6EAEjeiABI3owASN6QAEjemABI3qAASN6kAEjeqABI3rAASN60AEjfGABI3xwASN8gAEjfKABI4RQASOEcAEjhJABI4SwASOE4AEjhPABI4UAASOFEAEjhSABI4VAASOFYAEjhXABI4WAASOFoAEjhbABI41gASONgAEjjaABI43AASON8AEjjgABI44QASOOIAEjjjABI45QASOOcAEjjoABI46QASOOsAEjjsABI5ZwASOWkAEjlrABI5bQASOXAAEjlxABI5cgASOXMAEjl0ABI5dgASOXgAEjl5ABI5egASOXwAEjl9ABI5+AASOfoAEjn8ABI5/gASOgEAEjoCABI6AwASOgQAEjoFABI6BwASOgkAEjoKABI6CwASOg0AEjoOABI6iQASOosAEjqNABI6jwASOpIAEjqTABI6lAASOpUAEjqWABI6mAASOpoAEjqbABI6nAASOp4AEjqfABI66AASOwwAEjszABI7VwASO1oAEjtcABI7XgASO2AAEjtiABI7ZAASO2UAEjtoABI7gQASO54AEjugABI7ogASO6QAEjumABI7qAASO6oAEjusABI7yQASO8wAEjvPABI70gASO9UAEjvYABI72wASO94AEjvgABI8WwASPF0AEjxfABI8YQASPGQAEjxlABI8ZgASPGcAEjxoABI8agASPGwAEjxtABI8bgASPHAAEjxxABI87AASPO4AEjzwABI88gASPPUAEjz2ABI89wASPPgAEjz5ABI8+wASPP0AEjz+ABI8/wASPQEAEj0CABI9fQASPX8AEj2BABI9gwASPYYAEj2HABI9iAASPYkAEj2KABI9jAASPY4AEj2PABI9kAASPZIAEj2TABI+DgASPhAAEj4SABI+FAASPhcAEj4YABI+GQASPhoAEj4bABI+HQASPh8AEj4gABI+IQASPiMAEj4kABI+nwASPqEAEj6jABI+pQASPqgAEj6pABI+qgASPqsAEj6sABI+rgASPrAAEj6xABI+sgASPrQAEj61ABI/MAASPzIAEj80ABI/NgASPzkAEj86ABI/OwASPzwAEj89ABI/PwASP0EAEj9CABI/QwASP0UAEj9GABI/wQASP8MAEj/FABI/xwASP8oAEj/LABI/zAASP80AEj/OABI/0AASP9IAEj/TABI/1AASP9YAEj/XABJAagASQI0AEkCtABJAzQASQM8AEkDRABJA0wASQNUAEkDYABJA2QASQNoAEkDdABJA3gASQOAAEkDhABJA4wASQOYAEkDnABJA6AASQOsAEkDsABJA9QASQQ4AEkEXABJBGQASQRsAEkEkABJBJwASQSoAEkEsABJBdQASQZkAEkHAABJB5AASQecAEkHpABJB6wASQe0AEkHvABJB8QASQfIAEkH1ABJCDgASQi8AEkIxABJCMwASQjUAEkI3ABJCOQASQjsAEkI9ABJCPwASQmAAEkJjABJCZgASQmkAEkJsABJCbwASQnIAEkJ1ABJCeAASQnoAEkL1ABJC9wASQvkAEkL7ABJC/gASQv8AEkMAABJDAQASQwIAEkMEABJDBgASQwcAEkMIABJDCgASQwsAEkOGABJDiAASQ4oAEkOMABJDjwASQ5AAEkORABJDkgASQ5MAEkOVABJDlwASQ5gAEkOZABJDmwASQ5wAEkQXABJEGQASRBwAEkQeABJEIQASRCIAEkQjABJEJAASRCUAEkQnABJEKQASRCoAEkQrABJELQASRC4AEkRHABJESAASREkAEkRLABJExgASRMgAEkTKABJEzAASRM8AEkTQABJE0QASRNIAEkTTABJE1QASRNcAEkTYABJE2QASRNsAEkTcABJFVwASRVkAEkVbABJFXQASRWAAEkVhABJFYgASRWMAEkVkABJFZgASRWgAEkVpABJFagASRWwAEkVtABJF6AASReoAEkXsABJF7gASRfEAEkXyABJF8wASRfQAEkX1ABJF9wASRfkAEkX6ABJF+wASRf0AEkX+ABJGeQASRnsAEkZ9ABJGfwASRoIAEkaDABJGhAASRoUAEkaGABJGiAASRooAEkaLABJGjAASRo4AEkaPABJHCgASRwwAEkcOABJHEAASRxMAEkcUABJHFQASRxYAEkcXABJHGQASRxsAEkccABJHHQASRx8AEkcgABJHaQASR40AEke0ABJH2AASR9sAEkfdABJH3wASR+EAEkfjABJH5QASR+YAEkfpABJIAgASSB8AEkghABJIIwASSCUAEkgnABJIKQASSCsAEkgtABJISgASSE0AEkhQABJIUwASSFYAEkhZABJIXAASSF8AEkhhABJI3AASSN4AEkjgABJI4gASSOUAEkjmABJI5wASSOgAEkjpABJI6wASSO0AEkjuABJI7wASSPEAEkjyABJJbQASSW8AEklxABJJcwASSXYAEkl3ABJJeAASSXkAEkl6ABJJfAASSX4AEkl/ABJJgAASSYIAEkmDABJJ/gASSgAAEkoCABJKBAASSgcAEkoIABJKCQASSgoAEkoLABJKDQASSg8AEkoQABJKEQASShMAEkoUABJKjwASSpEAEkqUABJKlgASSpkAEkqaABJKmwASSpwAEkqdABJKnwASSqEAEkqiABJKowASSqUAEkqmABJLIQASSyMAEkslABJLJwASSyoAEksrABJLLAASSy0AEksuABJLMAASSzIAEkszABJLNAASSzYAEks3ABJLsgASS7QAEku2ABJLuAASS7sAEku8ABJLvQASS74AEku/ABJLwQASS8MAEkvEABJLxQASS8cAEkvIABJMQwASTEUAEkxHABJMSQASTEwAEkxNABJMTgASTE8AEkxQABJMUgASTFQAEkxVABJMVgASTFgAEkxZABJM7AASTQ8AEk0vABJNTwASTVEAEk1TABJNVQASTVcAEk1aABJNWwASTVwAEk1fABJNYAASTWIAEk1jABJNZQASTWgAEk1pABJNagASTW0AEk1uABJNcwASTYwAEk2VABJNlwASTZkAEk2iABJNpQASTagAEk2qABJN8wASThcAEk4+ABJOYgASTmUAEk5nABJOaQASTmsAEk5tABJObwASTnAAEk5zABJOjAASTq0AEk6vABJOsQASTrMAEk61ABJOtwASTrkAEk67ABJOvQASTt4AEk7hABJO5AASTucAEk7qABJO7QASTvAAEk7zABJO9gASTvgAEk9zABJPdQAST3cAEk95ABJPfAAST30AEk9+ABJPfwAST4AAEk+CABJPhAAST4UAEk+GABJPiAAST4kAElAEABJQBgASUAgAElAKABJQDQASUA4AElAPABJQEAASUBEAElATABJQFQASUBYAElAXABJQGQASUBoAElCVABJQlwASUJoAElCcABJQnwASUKAAElChABJQogASUKMAElClABJQpwASUKgAElCpABJQqwASUKwAElDFABJQxgASUMcAElDJABJRRAASUUYAElFIABJRSgASUU0AElFOABJRTwASUVAAElFRABJRUwASUVUAElFWABJRVwASUVkAElFaABJR1QASUdcAElHZABJR2wASUd4AElHfABJR4AASUeEAElHiABJR5AASUeYAElHnABJR6AASUeoAElHrABJSZgASUmgAElJqABJSbAASUm8AElJwABJScQASUnIAElJzABJSdQASUncAElJ4ABJSeQASUnsAElJ8ABJS9wASUvkAElL7ABJS/QASUwAAElMBABJTAgASUwMAElMEABJTBgASUwgAElMJABJTCgASUwwAElMNABJTiAASU4oAElOMABJTjgASU5EAElOSABJTkwASU5QAElOVABJTlwASU5kAElOaABJTmwASU50AElOeABJT5wASVAsAElQyABJUVgASVFkAElRbABJUXQASVF8AElRhABJUYwASVGQAElRnABJUgAASVJ0AElSfABJUoQASVKMAElSlABJUpwASVKkAElSrABJUyAASVMsAElTOABJU0QASVNQAElTXABJU2gASVN0AElTfABJVWgASVVwAElVfABJVYQASVWQAElVlABJVZgASVWcAElVoABJVagASVWwAElVtABJVbgASVXAAElVxABJV7AASVe4AElXwABJV8gASVfUAElX2ABJV9wASVfgAElX5ABJV+wASVf0AElX+ABJV/wASVgEAElYCABJWfQASVn8AElaBABJWgwASVoYAElaHABJWiAASVokAElaKABJWjAASVo4AElaPABJWkAASVpIAElaTABJXDgASVxAAElcSABJXFAASVxcAElcYABJXGQASVxoAElcbABJXHQASVx8AElcgABJXIQASVyMAElckABJXnwASV6EAElejABJXpQASV6gAElepABJXqgASV6sAElesABJXrgASV7AAElexABJXsgASV7QAEle1ABJYMAASWDIAElg0ABJYNgASWDkAElg6ABJYOwASWDwAElg9ABJYPwASWEEAElhCABJYQwASWEUAElhGABJYwQASWMMAEljFABJYxwASWMoAEljLABJYzAASWM0AEljOABJY0AASWNIAEljTABJY1AASWNYAEljXABJY6AASWOkAEljrABJZZgASWWgAEllqABJZbAASWW8AEllwABJZcQASWXIAEllzABJZdQASWXcAEll4ABJZeQASWXsAEll8ABJZ9wASWfkAEln7ABJZ/QASWgAAEloBABJaAgASWgMAEloEABJaBgASWggAEloJABJaCgASWgwAEloNABJaiAASWooAElqNABJajwASWpIAElqTABJalAASWpUAElqWABJamAASWpoAElqbABJanAASWp4AElqfABJbMgASW1UAElt1ABJblQASW5cAEluZABJbmwASW50AElugABJboQASW6IAElulABJbpgASW6gAElupABJbqwASW64AEluvABJbsAASW7MAElu0ABJbuQASW9IAElvbABJb3QASW98AElvoABJb6wASW+4AElvwABJcOQASXF0AElyEABJcqAASXKsAElytABJcrwASXLEAElyzABJctQASXLYAEly5ABJc0gASXPMAElz1ABJc9wASXPkAElz7ABJc/QASXP8AEl0BABJdAwASXSQAEl0nABJdKgASXS0AEl0wABJdMwASXTYAEl05ABJdPAASXT4AEl25ABJduwASXb0AEl2/ABJdwgASXcMAEl3EABJdxQASXcYAEl3IABJdygASXcsAEl3MABJdzgASXc8AEl5KABJeTAASXk4AEl5QABJeUwASXlQAEl5VABJeVgASXlcAEl5ZABJeWwASXlwAEl5dABJeXwASXmAAEl7bABJe3QASXuAAEl7iABJe5QASXuYAEl7nABJe6AASXukAEl7rABJe7QASXu4AEl7vABJe8QASXvIAEl8LABJfDAASXw0AEl8PABJfigASX4wAEl+OABJfkAASX5MAEl+UABJflQASX5YAEl+XABJfmQASX5sAEl+cABJfnQASX58AEl+gABJgGwASYB0AEmAfABJgIQASYCQAEmAlABJgJgASYCcAEmAoABJgKgASYCwAEmAtABJgLgASYDAAEmAxABJgrAASYK4AEmCwABJgsgASYLUAEmC2ABJgtwASYLgAEmC5ABJguwASYL0AEmC+ABJgvwASYMEAEmDCABJhPQASYT8AEmFBABJhQwASYUYAEmFHABJhSAASYUkAEmFKABJhTAASYU4AEmFPABJhUAASYVIAEmFTABJhzgASYdAAEmHSABJh1AASYdcAEmHYABJh2QASYdoAEmHbABJh3QASYd8AEmHgABJh4QASYeMAEmHkABJiLQASYlEAEmJ4ABJinAASYp8AEmKhABJiowASYqUAEmKnABJiqQASYqoAEmKtABJixgASYuMAEmLlABJi5wASYukAEmLrABJi7QASYu8AEmLxABJjDgASYxEAEmMUABJjFwASYxoAEmMdABJjIAASYyMAEmMlABJjoAASY6IAEmOkABJjpgASY6kAEmOqABJjqwASY6wAEmOtABJjrwASY7EAEmOyABJjswASY7UAEmO2ABJkMQASZDMAEmQ1ABJkNwASZDoAEmQ7ABJkPAASZD0AEmQ+ABJkQAASZEIAEmRDABJkRAASZEYAEmRHABJkwgASZMQAEmTGABJkyAASZMsAEmTMABJkzQASZM4AEmTPABJk0QASZNMAEmTUABJk1QASZNcAEmTYABJlUwASZVUAEmVXABJlWQASZVwAEmVdABJlXgASZV8AEmVgABJlYgASZWQAEmVlABJlZgASZWgAEmVpABJl5AASZeYAEmXoABJl6gASZe0AEmXuABJl7wASZfAAEmXxABJl8wASZfUAEmX2ABJl9wASZfkAEmX6ABJmdQASZncAEmZ5ABJmewASZn4AEmZ/ABJmgAASZoEAEmaCABJmhAASZoYAEmaHABJmiAASZooAEmaLABJnBgASZwgAEmcKABJnDAASZw8AEmcQABJnEQASZxIAEmcTABJnFQASZxcAEmcYABJnGQASZxsAEmccABJnrwASZ9IAEmfyABJoEgASaBQAEmgWABJoGAASaBoAEmgdABJoHgASaB8AEmgiABJoIwASaCUAEmgmABJoKQASaCwAEmgtABJoLgASaDEAEmgyABJoNwASaFAAEmhZABJoWwASaF0AEmhmABJoaQASaGwAEmhuABJotwASaNsAEmkCABJpJgASaSkAEmkrABJpLQASaS8AEmkxABJpMwASaTQAEmk3ABJpUAASaXEAEmlzABJpdQASaXcAEml5ABJpewASaX0AEml/ABJpgQASaaIAEmmlABJpqAASaasAEmmuABJpsQASabQAEmm3ABJpugASabwAEmo3ABJqOQASajsAEmo9ABJqQAASakEAEmpCABJqQwASakQAEmpGABJqSAASakkAEmpKABJqTAASak0AEmrIABJqygASaswAEmrOABJq0QASatIAEmrTABJq1AASatUAEmrXABJq2QASatoAEmrbABJq3QASat4AEmtZABJrWwASa14AEmtgABJrYwASa2QAEmtlABJrZgASa2cAEmtpABJrawASa2wAEmttABJrbwASa3AAEmuJABJrigASa4sAEmuNABJsCAASbAoAEmwMABJsDgASbBEAEmwSABJsEwASbBQAEmwVABJsFwASbBkAEmwaABJsGwASbB0AEmweABJsmQASbJsAEmydABJsnwASbKIAEmyjABJspAASbKUAEmymABJsqAASbKoAEmyrABJsrAASbK4AEmyvABJtKgASbSwAEm0uABJtMAASbTMAEm00ABJtNQASbTYAEm03ABJtOQASbTsAEm08ABJtPQASbT8AEm1AABJtuwASbb0AEm2/ABJtwQASbcQAEm3FABJtxgASbccAEm3IABJtygASbcwAEm3NABJtzgASbdAAEm3RABJuTAASbk4AEm5QABJuUgASblUAEm5WABJuVwASblgAEm5ZABJuWwASbl0AEm5eABJuXwASbmEAEm5iABJuqwASbs8AEm72ABJvGgASbx0AEm8fABJvIQASbyMAEm8lABJvJwASbygAEm8rABJvRAASb2EAEm9jABJvZQASb2cAEm9pABJvawASb20AEm9vABJvjAASb48AEm+SABJvlQASb5gAEm+bABJvngASb6EAEm+jABJwHgAScCAAEnAiABJwJAAScCcAEnAoABJwKQAScCoAEnArABJwLQAScC8AEnAwABJwMQAScDMAEnA0ABJwrwAScLEAEnCzABJwtQAScLgAEnC5ABJwugAScLsAEnC8ABJwvgAScMAAEnDBABJwwgAScMQAEnDFABJxQAAScUIAEnFEABJxRgAScUkAEnFKABJxSwAScUwAEnFNABJxTwAScVEAEnFSABJxUwAScVUAEnFWABJx0QAScdMAEnHVABJx1wAScdoAEnHbABJx3AAScd0AEnHeABJx4AASceIAEnHjABJx5AASceYAEnHnABJyYgAScmQAEnJmABJyaAAScmsAEnJsABJybQAScm4AEnJvABJycQAScnMAEnJ0ABJydQAScncAEnJ4ABJy8wAScvUAEnL3ABJy+QAScvwAEnL9ABJy/gAScv8AEnMAABJzAgAScwQAEnMFABJzBgAScwgAEnMJABJzhAASc4YAEnOJABJziwASc44AEnOPABJzkAASc5EAEnOSABJzlAASc5YAEnOXABJzmAASc5oAEnObABJ0LgASdFEAEnRxABJ0kQASdJMAEnSVABJ0lwASdJkAEnScABJ0nQASdJ4AEnShABJ0ogASdKQAEnSlABJ0pwASdKoAEnSrABJ0rAASdK8AEnSwABJ0tQASdM4AEnTXABJ02QASdNsAEnTkABJ05wASdOoAEnTsABJ1NQASdVkAEnWAABJ1pAASdacAEnWpABJ1qwASda0AEnWvABJ1sQASdbIAEnW1ABJ1zgASde8AEnXxABJ18wASdfUAEnX3ABJ1+QASdfsAEnX9ABJ1/wASdiAAEnYjABJ2JgASdikAEnYsABJ2LwASdjIAEnY1ABJ2OAASdjoAEna1ABJ2twASdrkAEna7ABJ2vgASdr8AEnbAABJ2wQASdsIAEnbEABJ2xgASdscAEnbIABJ2ygASdssAEndGABJ3SAASd0oAEndMABJ3TwASd1AAEndRABJ3UgASd1MAEndVABJ3VwASd1gAEndZABJ3WwASd1wAEnfXABJ32QASd9wAEnfeABJ34QASd+IAEnfjABJ35AASd+UAEnfnABJ36QASd+oAEnfrABJ37QASd+4AEngHABJ4CAASeAkAEngLABJ4hgASeIgAEniKABJ4jAASeI8AEniQABJ4kQASeJIAEniTABJ4lQASeJcAEniYABJ4mQASeJsAEnicABJ5FwASeRkAEnkbABJ5HQASeSAAEnkhABJ5IgASeSMAEnkkABJ5JgASeSgAEnkpABJ5KgASeSwAEnktABJ5qAASeaoAEnmsABJ5rgASebEAEnmyABJ5swASebQAEnm1ABJ5twASebkAEnm6ABJ5uwASeb0AEnm+ABJ6OQASejsAEno9ABJ6PwASekIAEnpDABJ6RAASekUAEnpGABJ6SAASekoAEnpLABJ6TAASek4AEnpPABJ6ygASeswAEnrOABJ60AASetMAEnrUABJ61QASetYAEnrXABJ62QASetsAEnrcABJ63QASet8AEnrgABJ7KQASe00AEnt0ABJ7mAASe5sAEnudABJ7nwASe6EAEnujABJ7pQASe6YAEnupABJ7wgASe98AEnvhABJ74wASe+UAEnvnABJ76QASe+sAEnvtABJ8CgASfA0AEnwQABJ8EwASfBYAEnwZABJ8HAASfB8AEnwhABJ8nAASfJ4AEnygABJ8ogASfKUAEnymABJ8pwASfKgAEnypABJ8qwASfK0AEnyuABJ8rwASfLEAEnyyABJ9LQASfS8AEn0xABJ9MwASfTYAEn03ABJ9OAASfTkAEn06ABJ9PAASfT4AEn0/ABJ9QAASfUIAEn1DABJ9vgASfcAAEn3CABJ9xAASfccAEn3IABJ9yQASfcoAEn3LABJ9zQASfc8AEn3QABJ90QASfdMAEn3UABJ+TwASflEAEn5TABJ+VQASflgAEn5ZABJ+WgASflsAEn5cABJ+XgASfmAAEn5hABJ+YgASfmQAEn5lABJ+4AASfuIAEn7kABJ+5gASfukAEn7qABJ+6wASfuwAEn7tABJ+7wASfvEAEn7yABJ+8wASfvUAEn72ABJ/cQASf3MAEn91ABJ/dwASf3oAEn97ABJ/fAASf30AEn9+ABJ/gAASf4IAEn+DABJ/hAASf4YAEn+HABKAAgASgAQAEoAGABKACAASgAsAEoAMABKADQASgA4AEoAPABKAEQASgBMAEoAUABKAFQASgBcAEoAYABKAqwASgM4AEoDuABKBDgASgRAAEoESABKBFAASgRYAEoEZABKBGgASgRsAEoEeABKBHwASgSEAEoEiABKBJAASgScAEoEoABKBKQASgSwAEoEtABKBMgASgUsAEoFUABKBVgASgVgAEoFhABKBZAASgWcAEoFpABKBsgASgdYAEoH9ABKCIQASgiQAEoImABKCKAASgioAEoIsABKCLgASgi8AEoIyABKCSwASgmwAEoJuABKCcAASgnIAEoJ0ABKCdgASgngAEoJ6ABKCfAASgp0AEoKgABKCowASgqYAEoKpABKCrAASgq8AEoKyABKCtQASgrcAEoMyABKDNAASgzYAEoM4ABKDOwASgzwAEoM9ABKDPgASgz8AEoNBABKDQwASg0QAEoNFABKDRwASg0gAEoPDABKDxQASg8cAEoPJABKDzAASg80AEoPOABKDzwASg9AAEoPSABKD1AASg9UAEoPWABKD2AASg9kAEoRUABKEVgAShFkAEoRbABKEXgAShF8AEoRgABKEYQAShGIAEoRkABKEZgAShGcAEoRoABKEagAShGsAEoSEABKEhQAShIYAEoSIABKFAwAShQUAEoUHABKFCQAShQwAEoUNABKFDgAShQ8AEoUQABKFEgAShRQAEoUVABKFFgAShRgAEoUZABKFlAAShZYAEoWYABKFmgAShZ0AEoWeABKFnwAShaAAEoWhABKFowAShaUAEoWmABKFpwAShakAEoWqABKGJQAShicAEoYpABKGKwAShi4AEoYvABKGMAAShjEAEoYyABKGNAAShjYAEoY3ABKGOAAShjoAEoY7ABKGtgAShrgAEoa6ABKGvAAShr8AEobAABKGwQAShsIAEobDABKGxQAShscAEobIABKGyQAShssAEobMABKHRwASh0kAEodLABKHTQASh1AAEodRABKHUgASh1MAEodUABKHVgASh1gAEodZABKHWgASh1wAEoddABKHpgASh8oAEofxABKIFQASiBgAEogaABKIHAASiB4AEoggABKIIgASiCMAEogmABKIPwASiFwAEoheABKIYAASiGIAEohkABKIZgASiGgAEohqABKIhwASiIoAEoiNABKIkAASiJMAEoiWABKImQASiJwAEoieABKJGQASiRsAEokeABKJIAASiSMAEokkABKJJQASiSYAEoknABKJKQASiSsAEoksABKJLQASiS8AEokwABKJMwASia4AEomwABKJsgASibQAEom3ABKJuAASibkAEom6ABKJuwASib0AEom/ABKJwAASicEAEonDABKJxAASij8AEopBABKKQwASikUAEopIABKKSQASikoAEopLABKKTAASik4AEopQABKKUQASilIAEopUABKKVQASitAAEorSABKK1QASitcAEoraABKK2wASitwAEordABKK3gASiuAAEoriABKK4wASiuQAEormABKK5wASi2IAEotkABKLZgASi2gAEotrABKLbAASi20AEotuABKLbwASi3EAEotzABKLdAASi3UAEot3ABKLeAASi/MAEov1ABKL9wASi/kAEov8ABKL/QASi/4AEov/ABKMAAASjAIAEowEABKMBQASjAYAEowIABKMCQASjIQAEoyGABKMiAASjIoAEoyNABKMjgASjI8AEoyQABKMkQASjJMAEoyVABKMlgASjJcAEoyZABKMmgASjS0AEo1QABKNcAASjZAAEo2SABKNlAASjZYAEo2YABKNmwASjZwAEo2dABKNoAASjaEAEo2jABKNpAASjaYAEo2oABKNqQASjaoAEo2tABKNrgASjbcAEo3QABKN2QASjdsAEo3dABKN5gASjekAEo3sABKN7gASjjcAEo5bABKOggASjqYAEo6pABKOqwASjq0AEo6vABKOsQASjrMAEo60ABKOtwASjtAAEo7xABKO8wASjvUAEo73ABKO+QASjvsAEo79ABKO/wASjwEAEo8iABKPJQASjygAEo8rABKPLgASjzEAEo80ABKPNwASjzoAEo88ABKPtwASj7kAEo+7ABKPvQASj8AAEo/BABKPwgASj8MAEo/EABKPxgASj8gAEo/JABKPygASj8wAEo/NABKQSAASkEoAEpBMABKQTgASkFEAEpBSABKQUwASkFQAEpBVABKQVwASkFkAEpBaABKQWwASkF0AEpBeABKQ2QASkNsAEpDeABKQ4AASkOMAEpDkABKQ5QASkOYAEpDnABKQ6QASkOsAEpDsABKQ7QASkO8AEpDwABKRCQASkQoAEpELABKRDQASkYgAEpGKABKRjAASkY4AEpGRABKRkgASkZMAEpGUABKRlQASkZcAEpGZABKRmgASkZsAEpGdABKRngASkhkAEpIbABKSHQASkh8AEpIiABKSIwASkiQAEpIlABKSJgASkigAEpIqABKSKwASkiwAEpIuABKSLwASkqoAEpKsABKSrgASkrAAEpKzABKStAASkrUAEpK2ABKStwASkrkAEpK7ABKSvAASkr0AEpK/ABKSwAASkzsAEpM9ABKTPwASk0EAEpNEABKTRQASk0YAEpNHABKTSAASk0oAEpNMABKTTQASk04AEpNQABKTUQASk8wAEpPOABKT0AASk9IAEpPVABKT1gASk9cAEpPYABKT2QASk9sAEpPdABKT3gASk98AEpPhABKT4gASlCsAEpRPABKUdgASlJoAEpSdABKUnwASlKEAEpSjABKUpQASlKcAEpSoABKUqwASlMQAEpThABKU4wASlOUAEpTnABKU6QASlOsAEpTtABKU7wASlQwAEpUPABKVEgASlRUAEpUYABKVGwASlR4AEpUhABKVIwASlZ4AEpWgABKVogASlaQAEpWnABKVqAASlakAEpWqABKVqwASla0AEpWvABKVsAASlbEAEpWzABKVtAASli8AEpYxABKWMwASljUAEpY4ABKWOQASljoAEpY7ABKWPAASlj4AEpZAABKWQQASlkIAEpZEABKWRQASlsAAEpbCABKWxAASlsYAEpbJABKWygASlssAEpbMABKWzQASls8AEpbRABKW0gASltMAEpbVABKW1gASl1EAEpdTABKXVQASl1cAEpdaABKXWwASl1wAEpddABKXXgASl2AAEpdiABKXYwASl2QAEpdmABKXZwASl+IAEpfkABKX5gASl+gAEpfrABKX7AASl+0AEpfuABKX7wASl/EAEpfzABKX9AASl/UAEpf3ABKX+AASmHMAEph1ABKYdwASmHkAEph8ABKYfQASmH4AEph/ABKYgAASmIIAEpiEABKYhQASmIYAEpiIABKYiQASmQQAEpkGABKZCAASmQoAEpkNABKZDgASmQ8AEpkQABKZEQASmRMAEpkVABKZFgASmRcAEpkZABKZGgASma0AEpnQABKZ8AASmhAAEpoSABKaFAASmhYAEpoYABKaGwASmhwAEpodABKaIAASmiEAEpojABKaJAASmiYAEpopABKaKgASmisAEpouABKaLwASmjgAEppRABKaWgASmlwAEppeABKaZwASmmoAEpptABKabwASmrgAEprcABKbAwASmycAEpsqABKbLAASmy4AEpswABKbMgASmzQAEps1ABKbOAASm1EAEptyABKbdAASm3YAEpt4ABKbegASm3wAEpt+ABKbgAASm4IAEpujABKbpgASm6kAEpusABKbrwASm7IAEpu1ABKbuAASm7sAEpu9ABKcOAASnDoAEpw8ABKcPgASnEEAEpxCABKcQwASnEQAEpxFABKcRwASnEkAEpxKABKcSwASnE0AEpxOABKcyQASnMsAEpzNABKczwASnNIAEpzTABKc1AASnNUAEpzWABKc2AASnNoAEpzbABKc3AASnN4AEpzfABKdWgASnVwAEp1fABKdYQASnWQAEp1lABKdZgASnWcAEp1oABKdagASnWwAEp1tABKdbgASnXAAEp1xABKdigASnYsAEp2MABKdjgASngkAEp4LABKeDQASng8AEp4SABKeEwASnhQAEp4VABKeFgASnhgAEp4aABKeGwASnhwAEp4eABKeHwASnpoAEp6cABKengASnqAAEp6jABKepAASnqUAEp6mABKepwASnqkAEp6rABKerAASnq0AEp6vABKesAASnysAEp8tABKfLwASnzEAEp80ABKfNQASnzYAEp83ABKfOAASnzoAEp88ABKfPQASnz4AEp9AABKfQQASn7wAEp++ABKfwAASn8IAEp/FABKfxgASn8cAEp/IABKfyQASn8sAEp/NABKfzgASn88AEp/RABKf0gASoE0AEqBPABKgUQASoFMAEqBWABKgVwASoFgAEqBZABKgWgASoFwAEqBeABKgXwASoGAAEqBiABKgYwASoKwAEqDQABKg9wASoRsAEqEeABKhIAASoSIAEqEkABKhJgASoSgAEqEpABKhLAASoUUAEqFiABKhZAASoWYAEqFoABKhagASoWwAEqFuABKhcAASoY0AEqGQABKhkwASoZYAEqGZABKhnAASoZ8AEqGiABKhpAASoh8AEqIhABKiIwASoiUAEqIoABKiKQASoioAEqIrABKiLAASoi4AEqIwABKiMQASojIAEqI0ABKiNQASorAAEqKyABKitAASorYAEqK5ABKiugASorsAEqK8ABKivQASor8AEqLBABKiwgASosMAEqLFABKixgASo0EAEqNDABKjRQASo0cAEqNKABKjSwASo0wAEqNNABKjTgASo1AAEqNSABKjUwASo1QAEqNWABKjVwASo9IAEqPUABKj1gASo9gAEqPbABKj3AASo90AEqPeABKj3wASo+EAEqPjABKj5AASo+UAEqPnABKj6AASpGMAEqRlABKkZwASpGkAEqRsABKkbQASpG4AEqRvABKkcAASpHIAEqR0ABKkdQASpHYAEqR4ABKkeQASpPQAEqT2ABKk+AASpPoAEqT9ABKk/gASpP8AEqUAABKlAQASpQMAEqUFABKlBgASpQcAEqUJABKlCgASpYUAEqWHABKliQASpYsAEqWOABKljwASpZAAEqWRABKlkgASpZQAEqWWABKllwASpZgAEqWaABKlmwASpi4AEqZRABKmcQASppEAEqaTABKmlQASppcAEqaZABKmnAASpp0AEqaeABKmoQASpqIAEqakABKmpQASpqcAEqaqABKmqwASpqwAEqavABKmsAASprUAEqbOABKm1wASptkAEqbbABKm5AASpucAEqbqABKm7AASpzUAEqdZABKngAASp6QAEqenABKnqQASp6sAEqetABKnrwASp7EAEqeyABKntQASp84AEqfvABKn8QASp/MAEqf1ABKn9wASp/kAEqf7ABKn/QASp/8AEqggABKoIwASqCYAEqgpABKoLAASqC8AEqgyABKoNQASqDgAEqg6ABKotQASqLcAEqi5ABKouwASqL4AEqi/ABKowAASqMEAEqjCABKoxAASqMYAEqjHABKoyAASqMoAEqjLABKpRgASqUgAEqlKABKpTAASqU8AEqlQABKpUQASqVIAEqlTABKpVQASqVcAEqlYABKpWQASqVsAEqlcABKp1wASqdkAEqncABKp3gASqeEAEqniABKp4wASqeQAEqnlABKp5wASqekAEqnqABKp6wASqe0AEqnuABKqBwASqggAEqoJABKqCwASqoYAEqqIABKqigASqowAEqqPABKqkAASqpEAEqqSABKqkwASqpUAEqqXABKqmAASqpkAEqqbABKqnAASqxcAEqsZABKrGwASqx0AEqsgABKrIQASqyIAEqsjABKrJAASqyYAEqsoABKrKQASqyoAEqssABKrLQASq6gAEquqABKrrAASq64AEquxABKrsgASq7MAEqu0ABKrtQASq7cAEqu5ABKrugASq7sAEqu9ABKrvgASrDkAEqw7ABKsPQASrD8AEqxCABKsQwASrEQAEqxFABKsRgASrEgAEqxKABKsSwASrEwAEqxOABKsTwASrMoAEqzMABKszgASrNAAEqzTABKs1AASrNUAEqzWABKs1wASrNkAEqzbABKs3AASrN0AEqzfABKs4AASrSkAEq1NABKtdAASrZgAEq2bABKtnQASrZ8AEq2hABKtowASraUAEq2mABKtqQASrcIAEq3fABKt4QASreMAEq3lABKt5wASrekAEq3rABKt7QASrgoAEq4NABKuEAASrhMAEq4WABKuGQASrhwAEq4fABKuIQASrpwAEq6eABKuoAASrqIAEq6lABKupgASrqcAEq6oABKuqQASrqsAEq6tABKurgASrq8AEq6xABKusgASry0AEq8vABKvMQASrzMAEq82ABKvNwASrzgAEq85ABKvOgASrzwAEq8+ABKvPwASr0AAEq9CABKvQwASr74AEq/AABKvwgASr8QAEq/HABKvyAASr8kAEq/KABKvywASr80AEq/PABKv0AASr9EAEq/TABKv1AASsE8AErBRABKwUwASsFUAErBYABKwWQASsFoAErBbABKwXAASsF4AErBgABKwYQASsGIAErBkABKwZQASsOAAErDiABKw5AASsOYAErDpABKw6gASsOsAErDsABKw7QASsO8AErDxABKw8gASsPMAErD1ABKw9gASsXEAErFzABKxdQASsXcAErF6ABKxewASsXwAErF9ABKxfgASsYAAErGCABKxgwASsYQAErGGABKxhwASsgIAErIEABKyBgASsggAErILABKyDAASsg0AErIOABKyDwASshEAErITABKyFAASshUAErIXABKyGAASsqsAErLOABKy7gASsw4AErMQABKzEgASsxQAErMWABKzGQASsxoAErMbABKzHgASsx8AErMhABKzIgASsyQAErMnABKzKAASsykAErMsABKzLQASszIAErNLABKzVAASs1YAErNYABKzYQASs2QAErNnABKzaQASs7IAErPWABKz/QAStCEAErQkABK0JgAStCgAErQqABK0LAAStC4AErQvABK0MgAStEsAErRsABK0bgAStHAAErRyABK0dAAStHYAErR4ABK0egAStHwAErSdABK0oAAStKMAErSmABK0qQAStKwAErSvABK0sgAStLUAErS3ABK1MgAStTQAErU2ABK1OAAStTsAErU8ABK1PQAStT4AErU/ABK1QQAStUMAErVEABK1RQAStUcAErVIABK1wwAStcUAErXHABK1yQAStcwAErXNABK1zgAStc8AErXQABK10gAStdQAErXVABK11gAStdgAErXZABK2VAAStlYAErZZABK2WwAStl4AErZfABK2YAAStmEAErZiABK2ZAAStmYAErZnABK2aAAStmoAErZrABK2hAAStoUAEraGABK2iAAStwMAErcFABK3BwAStwkAErcMABK3DQAStw4AErcPABK3EAAStxIAErcUABK3FQAStxYAErcYABK3GQASt5QAEreWABK3mAASt5oAEredABK3ngASt58AEregABK3oQASt6MAErelABK3pgASt6cAErepABK3qgASuCUAErgnABK4KQASuCsAErguABK4LwASuDAAErgxABK4MgASuDQAErg2ABK4NwASuDgAErg6ABK4OwASuLYAEri4ABK4ugASuLwAEri/ABK4wAASuMEAErjCABK4wwASuMUAErjHABK4yAASuMkAErjLABK4zAASuUcAErlJABK5SwASuU0AErlQABK5UQASuVIAErlTABK5VAASuVYAErlYABK5WQASuVoAErlcABK5XQASuaYAErnKABK58QASuhUAEroYABK6GgASuhwAEroeABK6IAASuiIAErojABK6JgASuj8AErpcABK6XgASumAAErpiABK6ZAASumYAErpoABK6agASuocAErqKABK6jQASupAAErqTABK6lgASupkAErqcABK6ngASuxkAErsbABK7HQASux8AErsiABK7IwASuyQAErslABK7JgASuygAErsqABK7KwASuywAErsuABK7LwASu6oAErusABK7rgASu7AAEruzABK7tAASu7UAEru2ABK7twASu7kAEru7ABK7vAASu70AEru/ABK7wAASvDsAErw9ABK8PwASvEEAErxEABK8RQASvEYAErxHABK8SAASvEoAErxMABK8TQASvE4AErxQABK8UQASvMwAErzOABK80QASvNMAErzWABK81wASvNgAErzZABK82gASvNwAErzeABK83wASvOAAErziABK84wASvV4AEr1gABK9YgASvWQAEr1nABK9aAASvWkAEr1qABK9awASvW0AEr1vABK9cAASvXEAEr1zABK9dAASve8AEr3xABK98wASvfUAEr34ABK9+QASvfoAEr37ABK9/AASvf4AEr4AABK+AQASvgIAEr4EABK+BQASvoAAEr6CABK+hAASvoYAEr6JABK+igASvosAEr6MABK+jQASvo8AEr6RABK+kgASvpMAEr6VABK+lgASvqcAEr6oABK+qgASvyUAEr8nABK/KQASvysAEr8uABK/LwASvzAAEr8xABK/MgASvzQAEr82ABK/NwASvzgAEr86ABK/OwASv7YAEr+4ABK/ugASv7wAEr+/ABK/wAASv8EAEr/CABK/wwASv8UAEr/HABK/yAASv8kAEr/LABK/zAASwEcAEsBJABLATAASwE4AEsBRABLAUgASwFMAEsBUABLAVQASwFcAEsBZABLAWgASwFsAEsBdABLAXgASwPEAEsEUABLBNAASwVQAEsFWABLBWAASwVoAEsFcABLBXgASwV8AEsFgABLBYwASwWQAEsFmABLBZwASwWkAEsFrABLBbAASwW0AEsFwABLBcQASwXYAEsGPABLBmAASwZoAEsGcABLBpQASwagAEsGrABLBrQASwfYAEsIaABLCQQASwmUAEsJoABLCagASwmwAEsJuABLCcAASwnIAEsJzABLCdgASwo8AEsKwABLCsgASwrQAEsK2ABLCuAASwroAEsK8ABLCvgASwsAAEsLhABLC5AASwucAEsLqABLC7QASwvAAEsLzABLC9gASwvkAEsL7ABLDdgASw3gAEsN6ABLDfAASw38AEsOAABLDgQASw4IAEsODABLDhQASw4cAEsOIABLDiQASw4sAEsOMABLEBwASxAkAEsQLABLEDQASxBAAEsQRABLEEgASxBMAEsQUABLEFgASxBgAEsQZABLEGgASxBwAEsQdABLEmAASxJoAEsSdABLEnwASxKIAEsSjABLEpAASxKUAEsSmABLEqAASxKoAEsSrABLErAASxK4AEsSvABLEyAASxMkAEsTKABLEzAASxUcAEsVJABLFSwASxU0AEsVQABLFUQASxVIAEsVTABLFVAASxVYAEsVYABLFWQASxVoAEsVcABLFXQASxdgAEsXaABLF3AASxd4AEsXhABLF4gASxeMAEsXkABLF5QASxecAEsXpABLF6gASxesAEsXtABLF7gASxmkAEsZrABLGbQASxm8AEsZyABLGcwASxnQAEsZ1ABLGdgASxngAEsZ6ABLGewASxnwAEsZ+ABLGfwASxvoAEsb8ABLG/gASxwAAEscDABLHBAASxwUAEscGABLHBwASxwkAEscLABLHDAASxw0AEscPABLHEAASx4sAEseNABLHjwASx5EAEseUABLHlQASx5YAEseXABLHmAASx5oAEsecABLHnQASx54AEsegABLHoQASx+oAEsgOABLINQASyFkAEshcABLIXgASyGAAEshiABLIZAASyGYAEshnABLIagASyIMAEsigABLIogASyKQAEsimABLIqAASyKoAEsisABLIrgASyMsAEsjOABLI0QASyNQAEsjXABLI2gASyN0AEsjgABLI4gASyV0AEslfABLJYQASyWMAEslmABLJZwASyWgAEslpABLJagASyWwAEsluABLJbwASyXAAEslyABLJcwASye4AEsnwABLJ8gASyfQAEsn3ABLJ+AASyfkAEsn6ABLJ+wASyf0AEsn/ABLKAAASygEAEsoDABLKBAASyn8AEsqBABLKgwASyoUAEsqIABLKiQASyooAEsqLABLKjAASyo4AEsqQABLKkQASypIAEsqUABLKlQASyxAAEssSABLLFQASyxcAEssaABLLGwASyxwAEssdABLLHgASyyAAEssiABLLIwASyyQAEssmABLLJwASy6IAEsukABLLpgASy6gAEsurABLLrAASy60AEsuuABLLrwASy7EAEsuzABLLtAASy7UAEsu3ABLLuAASzDMAEsw1ABLMNwASzDkAEsw8ABLMPQASzD4AEsw/ABLMQAASzEIAEsxEABLMRQASzEYAEsxIABLMSQASzMQAEszGABLMyAASzMoAEszNABLMzgASzM8AEszQABLM0QASzNMAEszVABLM1gASzNcAEszZABLM2gASzW0AEs2QABLNsAASzdAAEs3SABLN1AASzdYAEs3YABLN2gASzdsAEs3cABLN3wASzeAAEs3iABLN4wASzeYAEs3oABLN6QASzeoAEs3tABLN7gASzfMAEs4MABLOFQASzhcAEs4ZABLOIgASziUAEs4oABLOKgASznMAEs6XABLOvgASzuIAEs7lABLO5wASzukAEs7rABLO7QASzu8AEs7wABLO8wASzwwAEs8tABLPLwASzzEAEs8zABLPNQASzzcAEs85ABLPOwASzz0AEs9eABLPYQASz2QAEs9nABLPagASz20AEs9wABLPcwASz3YAEs94ABLP8wASz/UAEs/3ABLP+QASz/wAEs/9ABLP/gASz/8AEtAAABLQAgAS0AQAEtAFABLQBgAS0AgAEtAJABLQhAAS0IYAEtCIABLQigAS0I0AEtCOABLQjwAS0JAAEtCRABLQkwAS0JUAEtCWABLQlwAS0JkAEtCaABLRFQAS0RcAEtEaABLRHAAS0R8AEtEgABLRIQAS0SIAEtEjABLRJQAS0ScAEtEoABLRKQAS0SsAEtEsABLRRQAS0UYAEtFHABLRSQAS0cQAEtHGABLRyAAS0coAEtHNABLRzgAS0c8AEtHQABLR0QAS0dMAEtHVABLR1gAS0dcAEtHZABLR2gAS0lUAEtJXABLSWQAS0lsAEtJeABLSXwAS0mAAEtJhABLSYgAS0mQAEtJmABLSZwAS0mgAEtJqABLSawAS0uYAEtLoABLS6gAS0uwAEtLvABLS8AAS0vEAEtLyABLS8wAS0vUAEtL3ABLS+AAS0vkAEtL7ABLS/AAS03cAEtN5ABLTewAS030AEtOAABLTgQAS04IAEtODABLThAAS04YAEtOIABLTiQAS04oAEtOMABLTjQAS1AgAEtQKABLUDAAS1A4AEtQRABLUEgAS1BMAEtQUABLUFQAS1BcAEtQZABLUGgAS1BsAEtQdABLUHgAS1GcAEtSLABLUsgAS1NYAEtTZABLU2wAS1N0AEtTfABLU4QAS1OMAEtTkABLU5wAS1QAAEtUdABLVHwAS1SEAEtUjABLVJQAS1ScAEtUpABLVKwAS1UgAEtVLABLVTgAS1VEAEtVUABLVVwAS1VoAEtVdABLVXwAS1doAEtXcABLV3gAS1eAAEtXjABLV5AAS1eUAEtXmABLV5wAS1ekAEtXrABLV7AAS1e0AEtXvABLV8AAS1msAEtZtABLWbwAS1nEAEtZ0ABLWdQAS1nYAEtZ3ABLWeAAS1noAEtZ8ABLWfQAS1n4AEtaAABLWgQAS1vwAEtb+ABLXAAAS1wIAEtcFABLXBgAS1wcAEtcIABLXCQAS1wsAEtcNABLXDgAS1w8AEtcRABLXEgAS140AEtePABLXkQAS15MAEteWABLXlwAS15gAEteZABLXmgAS15wAEteeABLXnwAS16AAEteiABLXowAS2B4AEtggABLYIgAS2CQAEtgnABLYKAAS2CkAEtgqABLYKwAS2C0AEtgvABLYMAAS2DEAEtgzABLYNAAS2K8AEtixABLYswAS2LUAEti4ABLYuQAS2LoAEti7ABLYvAAS2L4AEtjAABLYwQAS2MIAEtjEABLYxQAS2UAAEtlCABLZRAAS2UYAEtlJABLZSgAS2UsAEtlMABLZTQAS2U8AEtlRABLZUgAS2VMAEtlVABLZVgAS2ekAEtoMABLaLAAS2kwAEtpOABLaUAAS2lIAEtpUABLaVgAS2lcAEtpYABLaWwAS2lwAEtpeABLaXwAS2mEAEtpjABLaZAAS2mUAEtpoABLaaQAS2m4AEtqHABLakAAS2pIAEtqUABLanQAS2qAAEtqjABLapQAS2u4AEtsSABLbOQAS210AEttgABLbYgAS22QAEttmABLbaAAS22oAEttrABLbbgAS24cAEtuoABLbqgAS26wAEtuuABLbsAAS27IAEtu0ABLbtgAS27gAEtvZABLb3AAS298AEtviABLb5QAS2+gAEtvrABLb7gAS2/EAEtvzABLcbgAS3HAAEtxyABLcdAAS3HcAEtx4ABLceQAS3HoAEtx7ABLcfQAS3H8AEtyAABLcgQAS3IMAEtyEABLc/wAS3QEAEt0DABLdBQAS3QgAEt0JABLdCgAS3QsAEt0MABLdDgAS3RAAEt0RABLdEgAS3RQAEt0VABLdkAAS3ZIAEt2VABLdlwAS3ZoAEt2bABLdnAAS3Z0AEt2eABLdoAAS3aIAEt2jABLdpAAS3aYAEt2nABLdwAAS3cEAEt3CABLdxAAS3j8AEt5BABLeQwAS3kUAEt5IABLeSQAS3koAEt5LABLeTAAS3k4AEt5QABLeUQAS3lIAEt5UABLeVQAS3tAAEt7SABLe1AAS3tYAEt7ZABLe2gAS3tsAEt7cABLe3QAS3t8AEt7hABLe4gAS3uMAEt7lABLe5gAS32EAEt9jABLfZQAS32cAEt9qABLfawAS32wAEt9tABLfbgAS33AAEt9yABLfcwAS33QAEt92ABLfdwAS3/IAEt/0ABLf9gAS3/gAEt/7ABLf/AAS3/0AEt/+ABLf/wAS4AEAEuADABLgBAAS4AUAEuAHABLgCAAS4IMAEuCFABLghwAS4IkAEuCMABLgjQAS4I4AEuCPABLgkAAS4JIAEuCUABLglQAS4JYAEuCYABLgmQAS4OIAEuEGABLhLQAS4VEAEuFUABLhVgAS4VgAEuFaABLhXAAS4V4AEuFfABLhYgAS4XsAEuGYABLhmgAS4ZwAEuGeABLhoAAS4aIAEuGkABLhpgAS4cMAEuHGABLhyQAS4cwAEuHPABLh0gAS4dUAEuHYABLh2gAS4lUAEuJXABLiWQAS4lsAEuJeABLiXwAS4mAAEuJhABLiYgAS4mQAEuJmABLiZwAS4mgAEuJqABLiawAS4uYAEuLoABLi6gAS4uwAEuLvABLi8AAS4vEAEuLyABLi8wAS4vUAEuL3ABLi+AAS4vkAEuL7ABLi/AAS43cAEuN5ABLjewAS430AEuOAABLjgQAS44IAEuODABLjhAAS44YAEuOIABLjiQAS44oAEuOMABLjjQAS5AgAEuQKABLkDQAS5A8AEuQSABLkEwAS5BQAEuQVABLkFgAS5BgAEuQaABLkGwAS5BwAEuQeABLkHwAS5JoAEuScABLkngAS5KAAEuSjABLkpAAS5KUAEuSmABLkpwAS5KkAEuSrABLkrAAS5K0AEuSvABLksAAS5SsAEuUtABLlLwAS5TEAEuU0ABLlNQAS5TYAEuU3ABLlOAAS5ToAEuU8ABLlPQAS5T4AEuVAABLlQQAS5bwAEuW+ABLlwAAS5cIAEuXFABLlxgAS5ccAEuXIABLlyQAS5csAEuXNABLlzgAS5c8AEuXRABLl0gAS5mUAEuaIABLmqAAS5sgAEubKABLmzAAS5s4AEubQABLm0gAS5tMAEubUABLm1wAS5tgAEubaABLm2wAS5t0AEubfABLm4AAS5uEAEubkABLm5QAS5uoAEucDABLnDAAS5w4AEucQABLnGQAS5xwAEucfABLnIQAS52oAEueOABLntQAS59kAEufcABLn3gAS5+AAEufiABLn5AAS5+YAEufnABLn6gAS6AMAEugkABLoJgAS6CgAEugqABLoLAAS6C4AEugwABLoMgAS6DQAEuhVABLoWAAS6FsAEuheABLoYQAS6GQAEuhnABLoagAS6G0AEuhvABLo6gAS6OwAEujuABLo8AAS6PMAEuj0ABLo9QAS6PYAEuj3ABLo+QAS6PsAEuj8ABLo/QAS6P8AEukAABLpewAS6X0AEul/ABLpgQAS6YQAEumFABLphgAS6YcAEumIABLpigAS6YwAEumNABLpjgAS6ZAAEumRABLqDAAS6g4AEuoRABLqEwAS6hYAEuoXABLqGAAS6hkAEuoaABLqHAAS6h4AEuofABLqIAAS6iIAEuojABLqPAAS6j0AEuo+ABLqQAAS6rsAEuq9ABLqvwAS6sEAEurEABLqxQAS6sYAEurHABLqyAAS6soAEurMABLqzQAS6s4AEurQABLq0QAS60wAEutOABLrUAAS61IAEutVABLrVgAS61cAEutYABLrWQAS61sAEutdABLrXgAS618AEuthABLrYgAS690AEuvfABLr4QAS6+MAEuvmABLr5wAS6+gAEuvpABLr6gAS6+wAEuvuABLr7wAS6/AAEuvyABLr8wAS7G4AEuxwABLscgAS7HQAEux3ABLseAAS7HkAEux6ABLsewAS7H0AEux/ABLsgAAS7IEAEuyDABLshAAS7P8AEu0BABLtAwAS7QUAEu0IABLtCQAS7QoAEu0LABLtDAAS7Q4AEu0QABLtEQAS7RIAEu0UABLtFQAS7V4AEu2CABLtqQAS7c0AEu3QABLt0gAS7dQAEu3WABLt2AAS7doAEu3bABLt3gAS7fcAEu4UABLuFgAS7hgAEu4aABLuHAAS7h4AEu4gABLuIgAS7j8AEu5CABLuRQAS7kgAEu5LABLuTgAS7lEAEu5UABLuVgAS7tEAEu7TABLu1QAS7tcAEu7aABLu2wAS7twAEu7dABLu3gAS7uAAEu7iABLu4wAS7uQAEu7mABLu5wAS72IAEu9kABLvZgAS72gAEu9rABLvbAAS720AEu9uABLvbwAS73EAEu9zABLvdAAS73UAEu93ABLveAAS7/MAEu/1ABLv9wAS7/kAEu/8ABLv/QAS7/4AEu//ABLwAAAS8AIAEvAEABLwBQAS8AYAEvAIABLwCQAS8IQAEvCGABLwiQAS8IsAEvCOABLwjwAS8JAAEvCRABLwkgAS8JQAEvCWABLwlwAS8JgAEvCaABLwmwAS8RYAEvEYABLxGgAS8RwAEvEfABLxIAAS8SEAEvEiABLxIwAS8SUAEvEnABLxKAAS8SkAEvErABLxLAAS8acAEvGpABLxqwAS8a0AEvGwABLxsQAS8bIAEvGzABLxtAAS8bYAEvG4ABLxuQAS8boAEvG8ABLxvQAS8jgAEvI6ABLyPAAS8j4AEvJBABLyQgAS8kMAEvJEABLyRQAS8kcAEvJJABLySgAS8ksAEvJNABLyTgAS8uEAEvMEABLzJAAS80QAEvNGABLzSAAS80oAEvNMABLzTgAS808AEvNQABLzUwAS81QAEvNWABLzVwAS81oAEvNcABLzXQAS814AEvNhABLzYgAS82cAEvOAABLziQAS84sAEvONABLzlgAS85kAEvOcABLzngAS8+cAEvQLABL0MgAS9FYAEvRZABL0WwAS9F0AEvRfABL0YQAS9GMAEvRkABL0ZwAS9IAAEvShABL0owAS9KUAEvSnABL0qQAS9KsAEvStABL0rwAS9LEAEvTSABL01QAS9NgAEvTbABL03gAS9OEAEvTkABL05wAS9OoAEvTsABL1ZwAS9WkAEvVrABL1bQAS9XAAEvVxABL1cgAS9XMAEvV0ABL1dgAS9XgAEvV5ABL1egAS9XwAEvV9ABL1+AAS9foAEvX8ABL1/gAS9gEAEvYCABL2AwAS9gQAEvYFABL2BwAS9gkAEvYKABL2CwAS9g0AEvYOABL2iQAS9osAEvaOABL2kAAS9pMAEvaUABL2lQAS9pYAEvaXABL2mQAS9psAEvacABL2nQAS9p8AEvagABL2uQAS9roAEva7ABL2vQAS9zgAEvc6ABL3PAAS9z4AEvdBABL3QgAS90MAEvdEABL3RQAS90cAEvdJABL3SgAS90sAEvdNABL3TgAS98kAEvfLABL3zQAS988AEvfSABL30wAS99QAEvfVABL31gAS99gAEvfaABL32wAS99wAEvfeABL33wAS+FoAEvhcABL4XgAS+GAAEvhjABL4ZAAS+GUAEvhmABL4ZwAS+GkAEvhrABL4bAAS+G0AEvhvABL4cAAS+OsAEvjtABL47wAS+PEAEvj0ABL49QAS+PYAEvj3ABL4+AAS+PoAEvj8ABL4/QAS+P4AEvkAABL5AQAS+XwAEvl+ABL5gAAS+YIAEvmFABL5hgAS+YcAEvmIABL5iQAS+YsAEvmNABL5jgAS+Y8AEvmRABL5kgAS+dsAEvn/ABL6JgAS+koAEvpNABL6TwAS+lEAEvpTABL6VQAS+lcAEvpYABL6WwAS+nQAEvqRABL6kwAS+pUAEvqXABL6mQAS+psAEvqdABL6nwAS+rwAEvq/ABL6wgAS+sUAEvrIABL6ywAS+s4AEvrRABL60wAS+04AEvtQABL7UgAS+1QAEvtXABL7WAAS+1kAEvtaABL7WwAS+10AEvtfABL7YAAS+2EAEvtjABL7ZAAS+98AEvvhABL75AAS++YAEvvpABL76gAS++sAEvvsABL77QAS++8AEvvxABL78gAS+/MAEvv1ABL79gAS/HEAEvxzABL8dQAS/HcAEvx6ABL8ewAS/HwAEvx9ABL8fgAS/IAAEvyCABL8gwAS/IQAEvyGABL8hwAS/QIAEv0EABL9BwAS/QkAEv0MABL9DQAS/Q4AEv0PABL9EAAS/RIAEv0UABL9FQAS/RYAEv0YABL9GQAS/ZwAEv3AABL95AAS/gcAEv4uABL+TgAS/nUAEv6cABL+vAAS/uAAEv8EABL/BgAS/wkAEv8LABL/DQAS/w8AEv8SABL/FQAS/xcAEv8ZABL/HAAS/x4AEv8gABL/IwAS/yYAEv8nABL/LAAS/0UAEv9KABL/TAAS/1EAEv9UABL/VgAS/58AEv/DABL/6gATAA4AEwARABMAEwATABUAEwAXABMAGQATABsAEwAcABMAHwATADgAEwBdABMAXwATAGEAEwBjABMAZQATAGcAEwBpABMAawATAG0AEwBvABMAlAATAJcAEwCaABMAnQATAKAAEwCjABMApgATAKkAEwCsABMArwATALEAEwEsABMBLgATATEAEwEzABMBNgATATcAEwE4ABMBOQATAToAEwE8ABMBPgATAT8AEwFAABMBQgATAUMAEwFUABMBVQATAVcAEwHSABMB1AATAdYAEwHYABMB2wATAdwAEwHdABMB3gATAd8AEwHhABMB4wATAeQAEwHlABMB5wATAegAEwJjABMCZQATAmgAEwJqABMCbQATAm4AEwJvABMCcAATAnEAEwJzABMCdQATAnYAEwJ3ABMCeQATAnoAEwKLABMCjAATAo4AEwMJABMDCwATAw0AEwMPABMDEgATAxMAEwMUABMDFQATAxYAEwMYABMDGgATAxsAEwMcABMDHgATAx8AEwOaABMDnAATA58AEwOhABMDpAATA6UAEwOmABMDpwATA6gAEwOqABMDrAATA60AEwOuABMDsAATA7EAEwPCABMDwwATA8UAEwRAABMEQgATBEQAEwRGABMESQATBEoAEwRLABMETAATBE0AEwRPABMEUQATBFIAEwRTABMEVQATBFYAEwTRABME0wATBNYAEwTYABME2wATBNwAEwTdABME3gATBN8AEwThABME4wATBOQAEwTlABME5wATBOgAEwUBABMFAgATBQMAEwUFABMFgAATBYIAEwWEABMFhgATBYkAEwWKABMFiwATBYwAEwWNABMFjwATBZEAEwWSABMFkwATBZUAEwWWABMGEQATBhMAEwYWABMGGAATBhsAEwYcABMGHQATBh4AEwYfABMGIQATBiMAEwYkABMGJQATBicAEwYoABMGQgATBlsAEwZwABMGcwATBnYAEwZ5ABMGfAATBn8AEwaUABMGlwATBpoAEwadABMGoAATBqMAEwalABMGuAATBtQAEwbpABMHAwATBwgAEwebABMHvgATB94AEwf+ABMIAAATCAIAEwgEABMIBgATCAkAEwgKABMICwATCA4AEwgPABMIEQATCBIAEwgUABMIFwATCBgAEwgZABMIHAATCB0AEwgmABMIPwATCEgAEwhKABMITAATCFUAEwhYABMIWwATCF0AEwimABMIygATCPEAEwkVABMJGAATCRoAEwkcABMJHgATCSAAEwkiABMJIwATCSYAEwk/ABMJYAATCWIAEwlkABMJZgATCWgAEwlqABMJbAATCW4AEwlwABMJkQATCZQAEwmXABMJmgATCZ0AEwmgABMJowATCaYAEwmpABMJqwATCiYAEwooABMKKgATCiwAEwovABMKMAATCjEAEwoyABMKMwATCjUAEwo3ABMKOAATCjkAEwo7ABMKPAATCrcAEwq5ABMKuwATCr0AEwrAABMKwQATCsIAEwrDABMKxAATCsYAEwrIABMKyQATCsoAEwrMABMKzQATC0gAEwtKABMLTQATC08AEwtSABMLUwATC1QAEwtVABMLVgATC1gAEwtaABMLWwATC1wAEwteABMLXwATC3gAEwt5ABMLegATC3wAEwv3ABML+QATC/sAEwv9ABMMAAATDAEAEwwCABMMAwATDAQAEwwGABMMCAATDAkAEwwKABMMDAATDA0AEwyIABMMigATDIwAEwyOABMMkQATDJIAEwyTABMMlAATDJUAEwyXABMMmQATDJoAEwybABMMnQATDJ4AEw0ZABMNGwATDR0AEw0fABMNIgATDSMAEw0kABMNJQATDSYAEw0oABMNKgATDSsAEw0sABMNLgATDS8AEw2qABMNrAATDa4AEw2wABMNswATDbQAEw21ABMNtgATDbcAEw25ABMNuwATDbwAEw29ABMNvwATDcAAEw47ABMOPQATDj8AEw5BABMORAATDkUAEw5GABMORwATDkgAEw5KABMOTAATDk0AEw5OABMOUAATDlEAEw6aABMOvgATDuUAEw8JABMPDAATDw4AEw8QABMPEgATDxQAEw8WABMPFwATDxoAEw8zABMPUAATD1IAEw9UABMPVgATD1gAEw9aABMPXAATD14AEw97ABMPfgATD4EAEw+EABMPhwATD4oAEw+NABMPkAATD5IAExANABMQDwATEBEAExATABMQFgATEBcAExAYABMQGQATEBoAExAcABMQHgATEB8AExAgABMQIgATECMAExCeABMQoAATEKIAExCkABMQpwATEKgAExCpABMQqgATEKsAExCtABMQrwATELAAExCxABMQswATELQAExEvABMRMQATETMAExE1ABMROAATETkAExE6ABMROwATETwAExE+ABMRQAATEUEAExFCABMRRAATEUUAExHAABMRwgATEcUAExHHABMRygATEcsAExHMABMRzQATEc4AExHQABMR0gATEdMAExHUABMR1gATEdcAExJSABMSVAATElYAExJYABMSWwATElwAExJdABMSXgATEl8AExJhABMSYwATEmQAExJlABMSZwATEmgAExLjABMS5QATEucAExLpABMS7AATEu0AExLuABMS7wATEvAAExLyABMS9AATEvUAExL2ABMS+AATEvkAExN0ABMTdgATE3gAExN6ABMTfQATE34AExN/ABMTgAATE4EAExODABMThQATE4YAExOHABMTiQATE4oAExQdABMUQAATFGAAExSAABMUggATFIQAExSGABMUiAATFIsAExSMABMUjQATFJAAExSRABMUkwATFJQAExSXABMUmgATFJsAExScABMUnwATFKAAExSlABMUvgATFMcAExTJABMUywATFNQAExTXABMU2gATFNwAExUlABMVSQATFXAAExWUABMVlwATFZkAExWbABMVnQATFZ8AExWhABMVogATFaUAExW+ABMV3wATFeEAExXjABMV5QATFecAExXpABMV6wATFe0AExXvABMWEAATFhMAExYWABMWGQATFhwAExYfABMWIgATFiUAExYoABMWKgATFqUAExanABMWqQATFqsAExauABMWrwATFrAAExaxABMWsgATFrQAExa2ABMWtwATFrgAExa6ABMWuwATFzYAExc4ABMXOgATFzwAExc/ABMXQAATF0EAExdCABMXQwATF0UAExdHABMXSAATF0kAExdLABMXTAATF8cAExfJABMXzAATF84AExfRABMX0gATF9MAExfUABMX1QATF9cAExfZABMX2gATF9sAExfdABMX3gATF/cAExf4ABMX+QATF/sAExh2ABMYeAATGHoAExh8ABMYfwATGIAAExiBABMYggATGIMAExiFABMYhwATGIgAExiJABMYiwATGIwAExkHABMZCQATGQsAExkNABMZEAATGREAExkSABMZEwATGRQAExkWABMZGAATGRkAExkaABMZHAATGR0AExmYABMZmgATGZwAExmeABMZoQATGaIAExmjABMZpAATGaUAExmnABMZqQATGaoAExmrABMZrQATGa4AExopABMaKwATGi0AExovABMaMgATGjMAExo0ABMaNQATGjYAExo4ABMaOgATGjsAExo8ABMaPgATGj8AExq6ABMavAATGr4AExrAABMawwATGsQAExrFABMaxgATGscAExrJABMaywATGswAExrNABMazwATGtAAExsZABMbPQATG2QAExuIABMbiwATG40AExuPABMbkQATG5MAExuVABMblgATG5kAExuyABMbzwATG9EAExvTABMb1QATG9cAExvZABMb2wATG90AExv6ABMb/QATHAAAExwDABMcBgATHAkAExwMABMcDwATHBEAExyMABMcjgATHJAAExySABMclQATHJYAExyXABMcmAATHJkAExybABMcnQATHJ4AExyfABMcoQATHKIAEx0dABMdHwATHSEAEx0jABMdJgATHScAEx0oABMdKQATHSoAEx0sABMdLgATHS8AEx0wABMdMgATHTMAEx2uABMdsAATHbIAEx20ABMdtwATHbgAEx25ABMdugATHbsAEx29ABMdvwATHcAAEx3BABMdwwATHcQAEx4/ABMeQQATHkMAEx5FABMeSAATHkkAEx5KABMeSwATHkwAEx5OABMeUAATHlEAEx5SABMeVAATHlUAEx7QABMe0gATHtQAEx7WABMe2QATHtoAEx7bABMe3AATHt0AEx7fABMe4QATHuIAEx7jABMe5QATHuYAEx9hABMfYwATH2UAEx9nABMfagATH2sAEx9sABMfbQATH24AEx9wABMfcgATH3MAEx90ABMfdgATH3cAEx/yABMf9AATH/cAEx/5ABMf/AATH/0AEx/+ABMf/wATIAAAEyACABMgBAATIAUAEyAGABMgCAATIAkAEyCcABMgvwATIN8AEyD/ABMhAQATIQMAEyEFABMhBwATIQoAEyELABMhDAATIQ8AEyEQABMhEgATIRMAEyEVABMhGAATIRkAEyEaABMhHQATIR4AEyEnABMhQAATIUkAEyFLABMhTQATIVYAEyFZABMhXAATIV4AEyGnABMhywATIfIAEyIWABMiGQATIhsAEyIdABMiHwATIiEAEyIjABMiJAATIicAEyJAABMiYQATImMAEyJlABMiZwATImkAEyJrABMibQATIm8AEyJxABMikgATIpUAEyKYABMimwATIp4AEyKhABMipAATIqcAEyKqABMirAATIycAEyMpABMjKwATIy0AEyMwABMjMQATIzIAEyMzABMjNAATIzYAEyM4ABMjOQATIzoAEyM8ABMjPQATI7gAEyO6ABMjvAATI74AEyPBABMjwgATI8MAEyPEABMjxQATI8cAEyPJABMjygATI8sAEyPNABMjzgATJEkAEyRLABMkTgATJFAAEyRTABMkVAATJFUAEyRWABMkVwATJFkAEyRbABMkXAATJF0AEyRfABMkYAATJHkAEyR6ABMkewATJH0AEyT4ABMk+gATJPwAEyT+ABMlAQATJQIAEyUDABMlBAATJQUAEyUHABMlCQATJQoAEyULABMlDQATJQ4AEyWJABMliwATJY0AEyWPABMlkgATJZMAEyWUABMllQATJZYAEyWYABMlmgATJZsAEyWcABMlngATJZ8AEyYaABMmHAATJh4AEyYgABMmIwATJiQAEyYlABMmJgATJicAEyYpABMmKwATJiwAEyYtABMmLwATJjAAEyarABMmrQATJq8AEyaxABMmtAATJrUAEya2ABMmtwATJrgAEya6ABMmvAATJr0AEya+ABMmwAATJsEAEyc8ABMnPgATJ0AAEydCABMnRQATJ0YAEydHABMnSAATJ0kAEydLABMnTQATJ04AEydPABMnUQATJ1IAEyebABMnvwATJ+YAEygKABMoDQATKA8AEygRABMoEwATKBUAEygXABMoGAATKBsAEyg0ABMoUQATKFMAEyhVABMoVwATKFkAEyhbABMoXQATKF8AEyh8ABMofwATKIIAEyiFABMoiAATKIsAEyiOABMokQATKJMAEykOABMpEAATKRIAEykUABMpFwATKRgAEykZABMpGgATKRsAEykdABMpHwATKSAAEykhABMpIwATKSQAEymfABMpoQATKaMAEymlABMpqAATKakAEymqABMpqwATKawAEymuABMpsAATKbEAEymyABMptAATKbUAEyowABMqMgATKjQAEyo2ABMqOQATKjoAEyo7ABMqPAATKj0AEyo/ABMqQQATKkIAEypDABMqRQATKkYAEyrBABMqwwATKsYAEyrIABMqywATKswAEyrNABMqzgATKs8AEyrRABMq0wATKtQAEyrVABMq1wATKtgAEytTABMrVQATK1cAEytZABMrXAATK10AEyteABMrXwATK2AAEytiABMrZAATK2UAEytmABMraAATK2kAEyvkABMr5gATK+gAEyvqABMr7QATK+4AEyvvABMr8AATK/EAEyvzABMr9QATK/YAEyv3ABMr+QATK/oAEyx1ABMsdwATLHkAEyx7ABMsfgATLH8AEyyAABMsgQATLIIAEyyEABMshgATLIcAEyyIABMsigATLIsAEy0eABMtQQATLWEAEy2BABMtgwATLYUAEy2HABMtiQATLYwAEy2NABMtjgATLZEAEy2SABMtlAATLZUAEy2YABMtmwATLZwAEy2dABMtoAATLaEAEy2mABMtvwATLcgAEy3KABMtzAATLdUAEy3YABMt2wATLd0AEy4mABMuSgATLnEAEy6VABMumAATLpoAEy6cABMungATLqAAEy6iABMuowATLqYAEy6/ABMu4AATLuIAEy7kABMu5gATLugAEy7qABMu7AATLu4AEy7wABMvEQATLxQAEy8XABMvGgATLx0AEy8gABMvIwATLyYAEy8pABMvKwATL6YAEy+oABMvqgATL6wAEy+vABMvsAATL7EAEy+yABMvswATL7UAEy+3ABMvuAATL7kAEy+7ABMvvAATMDcAEzA5ABMwOwATMD0AEzBAABMwQQATMEIAEzBDABMwRAATMEYAEzBIABMwSQATMEoAEzBMABMwTQATMMgAEzDKABMwzQATMM8AEzDSABMw0wATMNQAEzDVABMw1gATMNgAEzDaABMw2wATMNwAEzDeABMw3wATMPgAEzD5ABMw+gATMPwAEzF3ABMxeQATMXsAEzF9ABMxgAATMYEAEzGCABMxgwATMYQAEzGGABMxiAATMYkAEzGKABMxjAATMY0AEzIIABMyCgATMgwAEzIOABMyEQATMhIAEzITABMyFAATMhUAEzIXABMyGQATMhoAEzIbABMyHQATMh4AEzKZABMymwATMp0AEzKfABMyogATMqMAEzKkABMypQATMqYAEzKoABMyqgATMqsAEzKsABMyrgATMq8AEzMqABMzLAATMy4AEzMwABMzMwATMzQAEzM1ABMzNgATMzcAEzM5ABMzOwATMzwAEzM9ABMzPwATM0AAEzO7ABMzvQATM78AEzPBABMzxAATM8UAEzPGABMzxwATM8gAEzPKABMzzAATM80AEzPOABMz0AATM9EAEzQaABM0PgATNGUAEzSJABM0jAATNI4AEzSQABM0kgATNJQAEzSWABM0lwATNJoAEzSzABM00AATNNIAEzTUABM01gATNNgAEzTaABM03AATNN4AEzT7ABM0/gATNQEAEzUEABM1BwATNQoAEzUNABM1EAATNRIAEzWNABM1jwATNZEAEzWTABM1lgATNZcAEzWYABM1mQATNZoAEzWcABM1ngATNZ8AEzWgABM1ogATNaMAEzYeABM2IAATNiIAEzYkABM2JwATNigAEzYpABM2KgATNisAEzYtABM2LwATNjAAEzYxABM2MwATNjQAEzavABM2sQATNrMAEza1ABM2uAATNrkAEza6ABM2uwATNrwAEza+ABM2wAATNsEAEzbCABM2xAATNsUAEzdAABM3QgATN0QAEzdGABM3SQATN0oAEzdLABM3TAATN00AEzdPABM3UQATN1IAEzdTABM3VQATN1YAEzfRABM30wATN9UAEzfXABM32gATN9sAEzfcABM33QATN94AEzfgABM34gATN+MAEzfkABM35gATN+cAEzhiABM4ZAATOGYAEzhoABM4awATOGwAEzhtABM4bgATOG8AEzhxABM4cwATOHQAEzh1ABM4dwATOHgAEzjzABM49QATOPgAEzj6ABM4/QATOP4AEzj/ABM5AAATOQEAEzkDABM5BQATOQYAEzkHABM5CQATOQoAEzmdABM5wAATOeAAEzoAABM6AgATOgQAEzoGABM6CAATOgoAEzoLABM6DAATOg8AEzoQABM6EgATOhMAEzoWABM6GAATOhkAEzoaABM6HQATOh4AEzojABM6PAATOkUAEzpHABM6SQATOlIAEzpVABM6WAATOloAEzqjABM6xwATOu4AEzsSABM7FQATOxcAEzsZABM7GwATOx0AEzsfABM7IAATOyMAEzs8ABM7XQATO18AEzthABM7YwATO2UAEztnABM7aQATO2sAEzttABM7jgATO5EAEzuUABM7lwATO5oAEzudABM7oAATO6MAEzumABM7qAATPCMAEzwlABM8JwATPCkAEzwsABM8LQATPC4AEzwvABM8MAATPDIAEzw0ABM8NQATPDYAEzw4ABM8OQATPLQAEzy2ABM8uAATPLoAEzy9ABM8vgATPL8AEzzAABM8wQATPMMAEzzFABM8xgATPMcAEzzJABM8ygATPUUAEz1HABM9SgATPUwAEz1PABM9UAATPVEAEz1SABM9UwATPVUAEz1XABM9WAATPVkAEz1bABM9XAATPXUAEz12ABM9dwATPXkAEz30ABM99gATPfgAEz36ABM9/QATPf4AEz3/ABM+AAATPgEAEz4DABM+BQATPgYAEz4HABM+CQATPgoAEz6FABM+hwATPokAEz6LABM+jgATPo8AEz6QABM+kQATPpIAEz6UABM+lgATPpcAEz6YABM+mgATPpsAEz8WABM/GAATPxoAEz8cABM/HwATPyAAEz8hABM/IgATPyMAEz8lABM/JwATPygAEz8pABM/KwATPywAEz+nABM/qQATP6sAEz+tABM/sAATP7EAEz+yABM/swATP7QAEz+2ABM/uAATP7kAEz+6ABM/vAATP70AE0A4ABNAOgATQDwAE0A+ABNAQQATQEIAE0BDABNARAATQEUAE0BHABNASQATQEoAE0BLABNATQATQE4AE0CXABNAuwATQOIAE0EGABNBCQATQQsAE0ENABNBDwATQREAE0ETABNBFAATQRcAE0EwABNBTQATQU8AE0FRABNBUwATQVUAE0FXABNBWQATQVsAE0F4ABNBewATQX4AE0GBABNBhAATQYcAE0GKABNBjQATQY8AE0IKABNCDAATQg4AE0IQABNCEwATQhQAE0IVABNCFgATQhcAE0IZABNCGwATQhwAE0IdABNCHwATQiAAE0KbABNCnQATQqAAE0KiABNCpQATQqYAE0KnABNCqAATQqkAE0KrABNCrQATQq4AE0KvABNCsQATQrIAE0MtABNDLwATQzEAE0MzABNDNgATQzcAE0M4ABNDOQATQzoAE0M8ABNDPgATQz8AE0NAABNDQgATQ0MAE0O+ABNDwAATQ8MAE0PFABNDyAATQ8kAE0PKABNDywATQ8wAE0POABND0AATQ9EAE0PSABND1AATQ9UAE0RQABNEUgATRFQAE0RWABNEWQATRFoAE0RbABNEXAATRF0AE0RfABNEYQATRGIAE0RjABNEZQATRGYAE0ThABNE4wATROUAE0TnABNE6gATROsAE0TsABNE7QATRO4AE0TwABNE8gATRPMAE0T0ABNE9gATRPcAE0VyABNFdAATRXcAE0V5ABNFfAATRX0AE0V+ABNFfwATRYAAE0WCABNFhAATRYUAE0WGABNFiAATRYkAE0YcABNGPwATRl8AE0Z/ABNGgQATRoMAE0aFABNGhwATRooAE0aLABNGjAATRo8AE0aQABNGkgATRpMAE0aVABNGmAATRpkAE0aaABNGnQATRp4AE0ajABNGvAATRsUAE0bHABNGyQATRtIAE0bVABNG2AATRtoAE0cjABNHRwATR24AE0eSABNHlQATR5cAE0eZABNHmwATR50AE0efABNHoAATR6MAE0e8ABNH3QATR98AE0fhABNH4wATR+UAE0fnABNH6QATR+sAE0ftABNIDgATSBEAE0gUABNIFwATSBoAE0gdABNIIAATSCMAE0gmABNIKAATSKMAE0ilABNIpwATSKkAE0isABNIrQATSK4AE0ivABNIsAATSLIAE0i0ABNItQATSLYAE0i4ABNIuQATSTQAE0k2ABNJOAATSToAE0k9ABNJPgATST8AE0lAABNJQQATSUMAE0lFABNJRgATSUcAE0lJABNJSgATScUAE0nHABNJygATScwAE0nPABNJ0AATSdEAE0nSABNJ0wATSdUAE0nXABNJ2AATSdkAE0nbABNJ3AATSfUAE0n2ABNJ9wATSfkAE0p0ABNKdgATSngAE0p6ABNKfQATSn4AE0p/ABNKgAATSoEAE0qDABNKhQATSoYAE0qHABNKiQATSooAE0sFABNLBwATSwkAE0sLABNLDgATSw8AE0sQABNLEQATSxIAE0sUABNLFgATSxcAE0sYABNLGgATSxsAE0uWABNLmAATS5oAE0ucABNLnwATS6AAE0uhABNLogATS6MAE0ulABNLpwATS6gAE0upABNLqwATS6wAE0wnABNMKQATTCsAE0wtABNMMAATTDEAE0wyABNMMwATTDQAE0w2ABNMOAATTDkAE0w6ABNMPAATTD0AE0y4ABNMugATTLwAE0y+ABNMwQATTMIAE0zDABNMxAATTMUAE0zHABNMyQATTMoAE0zLABNMzQATTM4AE00XABNNOwATTWIAE02GABNNiQATTYsAE02NABNNjwATTZEAE02TABNNlAATTZcAE02wABNNzQATTc8AE03RABNN0wATTdUAE03XABNN2QATTdsAE034ABNN+wATTf4AE04BABNOBAATTgcAE04KABNODQATTg8AE06KABNOjAATTo4AE06QABNOkwATTpQAE06VABNOlgATTpcAE06ZABNOmwATTpwAE06dABNOnwATTqAAE08bABNPHQATTx8AE08hABNPJAATTyUAE08mABNPJwATTygAE08qABNPLAATTy0AE08uABNPMAATTzEAE0+sABNPrgATT7AAE0+yABNPtQATT7YAE0+3ABNPuAATT7kAE0+7ABNPvQATT74AE0+/ABNPwQATT8IAE1A9ABNQPwATUEIAE1BEABNQRwATUEgAE1BJABNQSgATUEsAE1BNABNQTwATUFAAE1BRABNQUwATUFQAE1DPABNQ0QATUNMAE1DVABNQ2AATUNkAE1DaABNQ2wATUNwAE1DeABNQ4AATUOEAE1DiABNQ5AATUOUAE1FgABNRYgATUWQAE1FmABNRaQATUWoAE1FrABNRbAATUW0AE1FvABNRcQATUXIAE1FzABNRdQATUXYAE1HxABNR8wATUfUAE1H3ABNR+gATUfsAE1H8ABNR/QATUf4AE1IAABNSAgATUgMAE1IEABNSBgATUgcAE1IYABNSGQATUhsAE1KWABNSmAATUpoAE1KcABNSnwATUqAAE1KhABNSogATUqMAE1KlABNSpwATUqgAE1KpABNSqwATUqwAE1MnABNTKQATUysAE1MtABNTMAATUzEAE1MyABNTMwATUzQAE1M2ABNTOAATUzkAE1M6ABNTPAATUz0AE1O4ABNTugATU70AE1O/ABNTwgATU8MAE1PEABNTxQATU8YAE1PIABNTygATU8sAE1PMABNTzgATU88AE1RiABNUhQATVKUAE1TFABNUxwATVMkAE1TLABNUzQATVM8AE1TQABNU0QATVNQAE1TVABNU1wATVNgAE1TaABNU3AATVN0AE1TeABNU4QATVOIAE1TnABNVAAATVQkAE1ULABNVDQATVRYAE1UZABNVHAATVR4AE1VnABNViwATVbIAE1XWABNV2QATVdsAE1XdABNV3wATVeEAE1XjABNV5AATVecAE1YAABNWIQATViMAE1YlABNWJwATVikAE1YrABNWLQATVi8AE1YxABNWUgATVlUAE1ZYABNWWwATVl4AE1ZhABNWZAATVmcAE1ZqABNWbAATVucAE1bpABNW6wATVu0AE1bwABNW8QATVvIAE1bzABNW9AATVvYAE1b4ABNW+QATVvoAE1b8ABNW/QATV3gAE1d6ABNXfAATV34AE1eBABNXggATV4MAE1eEABNXhQATV4cAE1eJABNXigATV4sAE1eNABNXjgATWAkAE1gLABNYDgATWBAAE1gTABNYFAATWBUAE1gWABNYFwATWBkAE1gbABNYHAATWB0AE1gfABNYIAATWDkAE1g6ABNYOwATWD0AE1i4ABNYugATWLwAE1i+ABNYwQATWMIAE1jDABNYxAATWMUAE1jHABNYyQATWMoAE1jLABNYzQATWM4AE1lJABNZSwATWU0AE1lPABNZUgATWVMAE1lUABNZVQATWVYAE1lYABNZWgATWVsAE1lcABNZXgATWV8AE1naABNZ3AATWd4AE1ngABNZ4wATWeQAE1nlABNZ5gATWecAE1npABNZ6wATWewAE1ntABNZ7wATWfAAE1prABNabQATWm8AE1pxABNadAATWnUAE1p2ABNadwATWngAE1p6ABNafAATWn0AE1p+ABNagAATWoEAE1r8ABNa/gATWwAAE1sCABNbBQATWwYAE1sHABNbCAATWwkAE1sLABNbDQATWw4AE1sPABNbEQATWxIAE1tbABNbfwATW6YAE1vKABNbzQATW88AE1vRABNb0wATW9UAE1vXABNb2AATW9sAE1v0ABNcEQATXBMAE1wVABNcFwATXBkAE1wbABNcHQATXB8AE1w8ABNcPwATXEIAE1xFABNcSAATXEsAE1xOABNcUQATXFMAE1zOABNc0AATXNIAE1zUABNc1wATXNgAE1zZABNc2gATXNsAE1zdABNc3wATXOAAE1zhABNc4wATXOQAE11fABNdYQATXWMAE11lABNdaAATXWkAE11qABNdawATXWwAE11uABNdcAATXXEAE11yABNddAATXXUAE13wABNd8gATXfQAE132ABNd+QATXfoAE137ABNd/AATXf0AE13/ABNeAQATXgIAE14DABNeBQATXgYAE16BABNegwATXoUAE16HABNeigATXosAE16MABNejQATXo4AE16QABNekgATXpMAE16UABNelgATXpcAE18SABNfFAATXxYAE18YABNfGwATXxwAE18dABNfHgATXx8AE18hABNfIwATXyQAE18lABNfJwATXygAE1+jABNfpQATX6cAE1+pABNfrAATX60AE1+uABNfrwATX7AAE1+yABNftAATX7UAE1+2ABNfuAATX7kAE2A0ABNgNgATYDgAE2A6ABNgPQATYD4AE2A/ABNgQAATYEEAE2BDABNgRQATYEYAE2BHABNgSQATYEoAE2DdABNhAAATYSAAE2FAABNhQgATYUQAE2FGABNhSAATYUoAE2FLABNhTAATYU8AE2FQABNhUgATYVMAE2FVABNhVwATYVgAE2FZABNhXAATYV0AE2FiABNhewATYYQAE2GGABNhiAATYZEAE2GUABNhlwATYZkAE2HiABNiBgATYi0AE2JRABNiVAATYlYAE2JYABNiWgATYlwAE2JeABNiXwATYmIAE2J7ABNinAATYp4AE2KgABNiogATYqQAE2KmABNiqAATYqoAE2KsABNizQATYtAAE2LTABNi1gATYtkAE2LcABNi3wATYuIAE2LlABNi5wATY2IAE2NkABNjZgATY2gAE2NrABNjbAATY20AE2NuABNjbwATY3EAE2NzABNjdAATY3UAE2N3ABNjeAATY/MAE2P1ABNj9wATY/kAE2P8ABNj/QATY/4AE2P/ABNkAAATZAIAE2QEABNkBQATZAYAE2QIABNkCQATZIQAE2SGABNkiQATZIsAE2SOABNkjwATZJAAE2SRABNkkgATZJQAE2SWABNklwATZJgAE2SaABNkmwATZLQAE2S1ABNktgATZLgAE2UzABNlNQATZTcAE2U5ABNlPAATZT0AE2U+ABNlPwATZUAAE2VCABNlRAATZUUAE2VGABNlSAATZUkAE2XEABNlxgATZcgAE2XKABNlzQATZc4AE2XPABNl0AATZdEAE2XTABNl1QATZdYAE2XXABNl2QATZdoAE2ZVABNmVwATZlkAE2ZbABNmXgATZl8AE2ZgABNmYQATZmIAE2ZkABNmZgATZmcAE2ZoABNmagATZmsAE2bmABNm6AATZuoAE2bsABNm7wATZvAAE2bxABNm8gATZvMAE2b1ABNm9wATZvgAE2b5ABNm+wATZvwAE2d3ABNneQATZ3sAE2d9ABNngAATZ4EAE2eCABNngwATZ4QAE2eGABNniAATZ4kAE2eKABNnjAATZ40AE2fWABNn+gATaCEAE2hFABNoSAATaEoAE2hMABNoTgATaFAAE2hSABNoUwATaFYAE2hvABNojAATaI4AE2iQABNokgATaJQAE2iWABNomAATaJoAE2i3ABNougATaL0AE2jAABNowwATaMYAE2jJABNozAATaM4AE2lJABNpSwATaU0AE2lPABNpUgATaVMAE2lUABNpVQATaVYAE2lYABNpWgATaVsAE2lcABNpXgATaV8AE2naABNp3AATad4AE2ngABNp4wATaeQAE2nlABNp5gATaecAE2npABNp6wATaewAE2ntABNp7wATafAAE2prABNqbQATam8AE2pxABNqdAATanUAE2p2ABNqdwATangAE2p6ABNqfAATan0AE2p+ABNqgAATaoEAE2r8ABNq/gATawEAE2sDABNrBgATawcAE2sIABNrCQATawoAE2sMABNrDgATaw8AE2sQABNrEgATaxMAE2uOABNrkAATa5IAE2uUABNrlwATa5gAE2uZABNrmgATa5sAE2udABNrnwATa6AAE2uhABNrowATa6QAE2wfABNsIQATbCMAE2wlABNsKAATbCkAE2wqABNsKwATbCwAE2wuABNsMAATbDEAE2wyABNsNAATbDUAE2ywABNssgATbLQAE2y2ABNsuQATbLoAE2y7ABNsvAATbL0AE2y/ABNswQATbMIAE2zDABNsxQATbMYAE21ZABNtfAATbZwAE228ABNtvgATbcAAE23CABNtxAATbcYAE23HABNtyAATbcsAE23MABNtzgATbc8AE23RABNt0wATbdQAE23VABNt2AATbdkAE23eABNt9wATbgAAE24CABNuBAATbg0AE24QABNuEwATbhUAE25eABNuggATbqkAE27NABNu0AATbtIAE27UABNu1gATbtgAE27aABNu2wATbt4AE273ABNvGAATbxoAE28cABNvHgATbyAAE28iABNvJAATbyYAE28oABNvSQATb0wAE29PABNvUgATb1UAE29YABNvWwATb14AE29hABNvYwATb94AE2/gABNv4gATb+QAE2/nABNv6AATb+kAE2/qABNv6wATb+0AE2/vABNv8AATb/EAE2/zABNv9AATcG8AE3BxABNwcwATcHUAE3B4ABNweQATcHoAE3B7ABNwfAATcH4AE3CAABNwgQATcIIAE3CEABNwhQATcQAAE3ECABNxBQATcQcAE3EKABNxCwATcQwAE3ENABNxDgATcRAAE3ESABNxEwATcRQAE3EWABNxFwATcTAAE3ExABNxMgATcTQAE3GvABNxsQATcbMAE3G1ABNxuAATcbkAE3G6ABNxuwATcbwAE3G+ABNxwAATccEAE3HCABNxxAATccUAE3JAABNyQgATckQAE3JGABNySQATckoAE3JLABNyTAATck0AE3JPABNyUQATclIAE3JTABNyVQATclYAE3LRABNy0wATctUAE3LXABNy2gATctsAE3LcABNy3QATct4AE3LgABNy4gATcuMAE3LkABNy5gATcucAE3NiABNzZAATc2YAE3NoABNzawATc2wAE3NtABNzbgATc28AE3NxABNzcwATc3QAE3N1ABNzdwATc3gAE3PzABNz9QATc/cAE3P5ABNz/AATc/0AE3P+ABNz/wATdAAAE3QCABN0BAATdAUAE3QGABN0CAATdAkAE3RSABN0dgATdJ0AE3TBABN0xAATdMYAE3TIABN0ygATdMwAE3TOABN0zwATdNIAE3TrABN1CAATdQoAE3UMABN1DgATdRAAE3USABN1FAATdRYAE3UzABN1NgATdTkAE3U8ABN1PwATdUIAE3VFABN1SAATdUoAE3XFABN1xwATdckAE3XLABN1zgATdc8AE3XQABN10QATddIAE3XUABN11gATddcAE3XYABN12gATddsAE3ZWABN2WAATdloAE3ZcABN2XwATdmAAE3ZhABN2YgATdmMAE3ZlABN2ZwATdmgAE3ZpABN2awATdmwAE3bnABN26QATdusAE3btABN28AATdvEAE3byABN28wATdvQAE3b2ABN2+AATdvkAE3b6ABN2/AATdv0AE3d4ABN3egATd3wAE3d+ABN3gQATd4IAE3eDABN3hAATd4UAE3eHABN3iQATd4oAE3eLABN3jQATd44AE3gJABN4CwATeA0AE3gPABN4EgATeBMAE3gUABN4FQATeBYAE3gYABN4GgATeBsAE3gcABN4HgATeB8AE3iaABN4nAATeJ4AE3igABN4owATeKQAE3ilABN4pgATeKcAE3ipABN4qwATeKwAE3itABN4rwATeLAAE3krABN5LQATeS8AE3kxABN5NAATeTUAE3k2ABN5NwATeTgAE3k6ABN5PAATeT0AE3k+ABN5QAATeUEAE3nUABN59wATehcAE3o3ABN6OQATejsAE3o9ABN6PwATekEAE3pCABN6QwATekYAE3pHABN6SQATekoAE3pMABN6TgATek8AE3pQABN6UwATelQAE3pZABN6cgATensAE3p9ABN6fwATeogAE3qLABN6jgATepAAE3rZABN6/QATeyQAE3tIABN7SwATe00AE3tPABN7UQATe1MAE3tVABN7VgATe1kAE3tyABN7kwATe5UAE3uXABN7mQATe5sAE3udABN7nwATe6EAE3ujABN7xAATe8cAE3vKABN7zQATe9AAE3vTABN71gATe9kAE3vcABN73gATfFkAE3xbABN8XQATfF8AE3xiABN8YwATfGQAE3xlABN8ZgATfGgAE3xqABN8awATfGwAE3xuABN8bwATfOoAE3zsABN87gATfPAAE3zzABN89AATfPUAE3z2ABN89wATfPkAE3z7ABN8/AATfP0AE3z/ABN9AAATfXsAE319ABN9gAATfYIAE32FABN9hgATfYcAE32IABN9iQATfYsAE32NABN9jgATfY8AE32RABN9kgATfasAE32sABN9rQATfa8AE34qABN+LAATfi4AE34wABN+MwATfjQAE341ABN+NgATfjcAE345ABN+OwATfjwAE349ABN+PwATfkAAE367ABN+vQATfr8AE37BABN+xAATfsUAE37GABN+xwATfsgAE37KABN+zAATfs0AE37OABN+0AATftEAE39MABN/TgATf1AAE39SABN/VQATf1YAE39XABN/WAATf1kAE39bABN/XQATf14AE39fABN/YQATf2IAE3/dABN/3wATf+EAE3/jABN/5gATf+cAE3/oABN/6QATf+oAE3/sABN/7gATf+8AE3/wABN/8gATf/MAE4BuABOAcAATgHIAE4B0ABOAdwATgHgAE4B5ABOAegATgHsAE4B9ABOAfwATgIAAE4CBABOAgwATgIQAE4DNABOA8QATgRgAE4E8ABOBPwATgUEAE4FDABOBRQATgUcAE4FJABOBSgATgU0AE4FmABOBgwATgYUAE4GHABOBiQATgYsAE4GNABOBjwATgZEAE4GuABOBsQATgbQAE4G3ABOBugATgb0AE4HAABOBwwATgcUAE4JAABOCQgATgkQAE4JGABOCSQATgkoAE4JLABOCTAATgk0AE4JPABOCUQATglIAE4JTABOCVQATglYAE4LRABOC0wATgtUAE4LXABOC2gATgtsAE4LcABOC3QATgt4AE4LgABOC4gATguMAE4LkABOC5gATgucAE4NiABODZAATg2YAE4NoABODawATg2wAE4NtABODbgATg28AE4NxABODcwATg3QAE4N1ABODdwATg3gAE4PzABOD9QATg/cAE4P5ABOD/AATg/0AE4P+ABOD/wAThAAAE4QCABOEBAAThAUAE4QGABOECAAThAkAE4SEABOEhgAThIgAE4SKABOEjQAThI4AE4SPABOEkAAThJEAE4STABOElQAThJYAE4SXABOEmQAThJoAE4UVABOFFwAThRkAE4UbABOFHgAThR8AE4UgABOFIQAThSIAE4UkABOFJgAThScAE4UoABOFKgAThSsAE4WmABOFqAAThaoAE4WsABOFrwAThbAAE4WxABOFsgAThbMAE4W1ABOFtwAThbgAE4W5ABOFuwAThbwAE4ZPABOGcgAThpIAE4ayABOGtAAThrYAE4a4ABOGugAThrwAE4a9ABOGvgAThsEAE4bCABOGxAAThsUAE4bHABOGyQAThsoAE4bLABOGzgAThs8AE4bUABOG7QAThvYAE4b4ABOG+gAThwMAE4cGABOHCQAThwsAE4dUABOHeAATh58AE4fDABOHxgATh8gAE4fKABOHzAATh84AE4fQABOH0QATh9QAE4ftABOIDgATiBAAE4gSABOIFAATiBYAE4gYABOIGgATiBwAE4geABOIPwATiEIAE4hFABOISAATiEsAE4hOABOIUQATiFQAE4hXABOIWQATiNQAE4jWABOI2AATiNoAE4jdABOI3gATiN8AE4jgABOI4QATiOMAE4jlABOI5gATiOcAE4jpABOI6gATiWUAE4lnABOJaQATiWsAE4luABOJbwATiXAAE4lxABOJcgATiXQAE4l2ABOJdwATiXgAE4l6ABOJewATifYAE4n4ABOJ+wATif0AE4oAABOKAQATigIAE4oDABOKBAATigYAE4oIABOKCQATigoAE4oMABOKDQATiiYAE4onABOKKAATiioAE4qlABOKpwATiqkAE4qrABOKrgATiq8AE4qwABOKsQATirIAE4q0ABOKtgATircAE4q4ABOKugATirsAE4s2ABOLOAATizoAE4s8ABOLPwATi0AAE4tBABOLQgATi0MAE4tFABOLRwATi0gAE4tJABOLSwATi0wAE4vHABOLyQATi8sAE4vNABOL0AATi9EAE4vSABOL0wATi9QAE4vWABOL2AATi9kAE4vaABOL3AATi90AE4xYABOMWgATjFwAE4xeABOMYQATjGIAE4xjABOMZAATjGUAE4xnABOMaQATjGoAE4xrABOMbQATjG4AE4zpABOM6wATjO0AE4zvABOM8gATjPMAE4z0ABOM9QATjPYAE4z4ABOM+gATjPsAE4z8ABOM/gATjP8AE41IABONbAATjZMAE423ABONugATjbwAE42+ABONwAATjcIAE43EABONxQATjcgAE43hABON/gATjgAAE44CABOOBAATjgYAE44IABOOCgATjgwAE44pABOOLAATji8AE44yABOONQATjjgAE447ABOOPgATjkAAE467ABOOvQATjr8AE47BABOOxAATjsUAE47GABOOxwATjsgAE47KABOOzAATjs0AE47OABOO0AATjtEAE49MABOPTgATj1AAE49SABOPVQATj1YAE49XABOPWAATj1kAE49bABOPXQATj14AE49fABOPYQATj2IAE4/dABOP3wATj+EAE4/jABOP5gATj+cAE4/oABOP6QATj+oAE4/sABOP7gATj+8AE4/wABOP8gATj/MAE5BuABOQcAATkHIAE5B0ABOQdwATkHgAE5B5ABOQegATkHsAE5B9ABOQfwATkIAAE5CBABOQgwATkIQAE5D/ABORAQATkQMAE5EFABORCAATkQkAE5EKABORCwATkQwAE5EOABOREAATkREAE5ESABORFAATkRUAE5GQABORkgATkZQAE5GWABORmQATkZoAE5GbABORnAATkZ0AE5GfABORoQATkaIAE5GjABORpQATkaYAE5IhABOSIwATkiUAE5InABOSKgATkisAE5IsABOSLQATki4AE5IwABOSMgATkjMAE5I0ABOSNgATkjcAE5LKABOS7QATkw0AE5MtABOTLwATkzEAE5MzABOTNQATkzcAE5M4ABOTOQATkzwAE5M9ABOTPwATk0AAE5NCABOTRAATk0UAE5NGABOTSQATk0oAE5NPABOTaAATk3EAE5NzABOTdQATk34AE5OBABOThAATk4YAE5PPABOT8wATlBoAE5Q+ABOUQQATlEMAE5RFABOURwATlEkAE5RLABOUTAATlE8AE5RoABOUiQATlIsAE5SNABOUjwATlJEAE5STABOUlQATlJcAE5SZABOUugATlL0AE5TAABOUwwATlMYAE5TJABOUzAATlM8AE5TSABOU1AATlU8AE5VRABOVUwATlVUAE5VYABOVWQATlVoAE5VbABOVXAATlV4AE5VgABOVYQATlWIAE5VkABOVZQATleAAE5XiABOV5AATleYAE5XpABOV6gATlesAE5XsABOV7QATle8AE5XxABOV8gATlfMAE5X1ABOV9gATlnEAE5ZzABOWdgATlngAE5Z7ABOWfAATln0AE5Z+ABOWfwATloEAE5aDABOWhAATloUAE5aHABOWiAATlqEAE5aiABOWowATlqUAE5cgABOXIgATlyQAE5cmABOXKQATlyoAE5crABOXLAATly0AE5cvABOXMQATlzIAE5czABOXNQATlzYAE5exABOXswATl7UAE5e3ABOXugATl7sAE5e8ABOXvQATl74AE5fAABOXwgATl8MAE5fEABOXxgATl8cAE5hCABOYRAATmEYAE5hIABOYSwATmEwAE5hNABOYTgATmE8AE5hRABOYUwATmFQAE5hVABOYVwATmFgAE5jTABOY1QATmNcAE5jZABOY3AATmN0AE5jeABOY3wATmOAAE5jiABOY5AATmOUAE5jmABOY6AATmOkAE5lkABOZZgATmWgAE5lqABOZbQATmW4AE5lvABOZcAATmXEAE5lzABOZdQATmXYAE5l3ABOZeQATmXoAE5nDABOZ5wATmg4AE5oyABOaNQATmjcAE5o5ABOaOwATmj0AE5o/ABOaQAATmkMAE5pcABOaeQATmnsAE5p9ABOafwATmoEAE5qDABOahQATmocAE5qkABOapwATmqoAE5qtABOasAATmrMAE5q2ABOauQATmrsAE5s2ABObOAATmzoAE5s8ABObPwATm0AAE5tBABObQgATm0MAE5tFABObRwATm0gAE5tJABObSwATm0wAE5vHABObyQATm8sAE5vNABOb0AATm9EAE5vSABOb0wATm9QAE5vWABOb2AATm9kAE5vaABOb3AATm90AE5xYABOcWgATnFwAE5xeABOcYQATnGIAE5xjABOcZAATnGUAE5xnABOcaQATnGoAE5xrABOcbQATnG4AE5zpABOc6wATnO0AE5zvABOc8gATnPMAE5z0ABOc9QATnPYAE5z4ABOc+gATnPsAE5z8ABOc/gATnP8AE516ABOdfAATnX4AE52AABOdgwATnYQAE52FABOdhgATnYcAE52JABOdiwATnYwAE52NABOdjwATnZAAE54LABOeDQATng8AE54RABOeFAATnhUAE54WABOeFwATnhgAE54aABOeHAATnh0AE54eABOeIAATniEAE56cABOengATnqAAE56iABOepQATnqYAE56nABOeqAATnqkAE56rABOerQATnq4AE56vABOesQATnrIAE59FABOfaAATn4gAE5+oABOfqgATn6wAE5+uABOfsAATn7IAE5+zABOftAATn7cAE5+4ABOfugATn7sAE5+9ABOfvwATn8AAE5/BABOfxAATn8UAE5/KABOf4wATn+wAE5/uABOf8AATn/kAE5/8ABOf/wAToAEAE6BKABOgbgAToJUAE6C5ABOgvAAToL4AE6DAABOgwgAToMQAE6DGABOgxwAToMoAE6DjABOhBAAToQYAE6EIABOhCgAToQwAE6EOABOhEAAToRIAE6EUABOhNQAToTgAE6E7ABOhPgAToUEAE6FEABOhRwAToUoAE6FNABOhTwATocoAE6HMABOhzgATodAAE6HTABOh1AATodUAE6HWABOh1wATodkAE6HbABOh3AATod0AE6HfABOh4AATolsAE6JdABOiXwATomEAE6JkABOiZQATomYAE6JnABOiaAATomoAE6JsABOibQATom4AE6JwABOicQATouwAE6LuABOi8QATovMAE6L2ABOi9wATovgAE6L5ABOi+gATovwAE6L+ABOi/wATowAAE6MCABOjAwAToxwAE6MdABOjHgAToyAAE6ObABOjnQATo58AE6OhABOjpAATo6UAE6OmABOjpwATo6gAE6OqABOjrAATo60AE6OuABOjsAATo7EAE6QsABOkLgATpDAAE6QyABOkNQATpDYAE6Q3ABOkOAATpDkAE6Q7ABOkPQATpD4AE6Q/ABOkQQATpEIAE6S9ABOkvwATpMEAE6TDABOkxgATpMcAE6TIABOkyQATpMoAE6TMABOkzgATpM8AE6TQABOk0gATpNMAE6VOABOlUAATpVIAE6VUABOlVwATpVgAE6VZABOlWgATpVsAE6VdABOlXwATpWAAE6VhABOlYwATpWQAE6XfABOl4QATpeMAE6XlABOl6AATpekAE6XqABOl6wATpewAE6XuABOl8AATpfEAE6XyABOl9AATpfUAE6Y+ABOmYgATpokAE6atABOmsAATprIAE6a0ABOmtgATprgAE6a6ABOmuwATpr4AE6bXABOm9AATpvYAE6b4ABOm+gATpvwAE6b+ABOnAAATpwIAE6cfABOnIgATpyUAE6coABOnKwATpy4AE6cxABOnNAATpzYAE6exABOnswATp7UAE6e3ABOnugATp7sAE6e8ABOnvQATp74AE6fAABOnwgATp8MAE6fEABOnxgATp8cAE6hCABOoRAATqEYAE6hIABOoSwATqEwAE6hNABOoTgATqE8AE6hRABOoUwATqFQAE6hVABOoVwATqFgAE6jTABOo1QATqNcAE6jZABOo3AATqN0AE6jeABOo3wATqOAAE6jiABOo5AATqOUAE6jmABOo6AATqOkAE6lkABOpZgATqWgAE6lqABOpbQATqW4AE6lvABOpcAATqXEAE6lzABOpdQATqXYAE6l3ABOpeQATqXoAE6n1ABOp9wATqfkAE6n7ABOp/gATqf8AE6oAABOqAQATqgIAE6oEABOqBgATqgcAE6oIABOqCgATqgsAE6qGABOqiAATqooAE6qMABOqjwATqpAAE6qRABOqkgATqpMAE6qVABOqlwATqpgAE6qZABOqmwATqpwAE6sXABOrGQATqxsAE6sdABOrIAATqyEAE6siABOrIwATqyQAE6smABOrKAATqykAE6sqABOrLAATqy0AE6vAABOr4wATrAMAE6wjABOsJQATrCcAE6wpABOsKwATrC0AE6wuABOsLwATrDIAE6wzABOsNQATrDYAE6w4ABOsOgATrDsAE6w8ABOsPwATrEAAE6xFABOsXgATrGcAE6xpABOsawATrHQAE6x3ABOsegATrHwAE6zFABOs6QATrRAAE600ABOtNwATrTkAE607ABOtPQATrT8AE61BABOtQgATrUUAE61eABOtfwATrYEAE62DABOthQATrYcAE62JABOtiwATrY0AE62PABOtsAATrbMAE622ABOtuQATrbwAE62/ABOtwgATrcUAE63IABOtygATrkUAE65HABOuSQATrksAE65OABOuTwATrlAAE65RABOuUgATrlQAE65WABOuVwATrlgAE65aABOuWwATrtYAE67YABOu2gATrtwAE67fABOu4AATruEAE67iABOu4wATruUAE67nABOu6AATrukAE67rABOu7AATr2cAE69pABOvbAATr24AE69xABOvcgATr3MAE690ABOvdQATr3cAE695ABOvegATr3sAE699ABOvfgATr5cAE6+YABOvmQATr5sAE7AWABOwGAATsBoAE7AcABOwHwATsCAAE7AhABOwIgATsCMAE7AlABOwJwATsCgAE7ApABOwKwATsCwAE7CnABOwqQATsKsAE7CtABOwsAATsLEAE7CyABOwswATsLQAE7C2ABOwuAATsLkAE7C6ABOwvAATsL0AE7E4ABOxOgATsTwAE7E+ABOxQQATsUIAE7FDABOxRAATsUUAE7FHABOxSQATsUoAE7FLABOxTQATsU4AE7HJABOxywATsc0AE7HPABOx0gATsdMAE7HUABOx1QATsdYAE7HYABOx2gATsdsAE7HcABOx3gATsd8AE7JaABOyXAATsl4AE7JgABOyYwATsmQAE7JlABOyZgATsmcAE7JpABOyawATsmwAE7JtABOybwATsnAAE7K5ABOy3QATswQAE7MoABOzKwATsy0AE7MvABOzMQATszMAE7M1ABOzNgATszkAE7NSABOzbwATs3EAE7NzABOzdQATs3cAE7N5ABOzewATs30AE7OaABOznQATs6AAE7OjABOzpgATs6kAE7OsABOzrwATs7EAE7QsABO0LgATtDEAE7QzABO0NgATtDcAE7Q4ABO0OQATtDoAE7Q8ABO0PgATtD8AE7RAABO0QgATtEMAE7S+ABO0wAATtMIAE7TEABO0xwATtMgAE7TJABO0ygATtMsAE7TNABO0zwATtNAAE7TRABO00wATtNQAE7VPABO1UQATtVMAE7VVABO1WAATtVkAE7VaABO1WwATtVwAE7VeABO1YAATtWEAE7ViABO1ZAATtWUAE7XgABO14gATteUAE7XnABO16gATtesAE7XsABO17QATte4AE7XwABO18gATtfMAE7X0ABO19gATtfcAE7ZyABO2dAATtnYAE7Z4ABO2ewATtnwAE7Z9ABO2fgATtn8AE7aBABO2gwATtoQAE7aFABO2hwATtogAE7cDABO3BQATtwcAE7cJABO3DAATtw0AE7cOABO3DwATtxAAE7cSABO3FAATtxUAE7cWABO3GAATtxkAE7eUABO3lgATt5gAE7eaABO3nQATt54AE7efABO3oAATt6EAE7ejABO3pQATt6YAE7enABO3qQATt6oAE7g9ABO4YAATuIAAE7igABO4ogATuKQAE7imABO4qAATuKoAE7irABO4rAATuK8AE7iwABO4sgATuLMAE7i1ABO4twATuLgAE7i5ABO4vAATuL0AE7jCABO42wATuOQAE7jmABO46AATuPEAE7j0ABO49wATuPkAE7lCABO5ZgATuY0AE7mxABO5tAATubYAE7m4ABO5ugATubwAE7m+ABO5vwATucIAE7nbABO5/AATuf4AE7oAABO6AgATugQAE7oGABO6CAATugoAE7oMABO6LQATujAAE7ozABO6NgATujkAE7o8ABO6PwATukIAE7pFABO6RwATusIAE7rEABO6xgATusgAE7rLABO6zAATus0AE7rOABO6zwATutEAE7rTABO61AATutUAE7rXABO62AATu1MAE7tVABO7VwATu1kAE7tcABO7XQATu14AE7tfABO7YAATu2IAE7tkABO7ZQATu2YAE7toABO7aQATu+QAE7vmABO76QATu+sAE7vuABO77wATu/AAE7vxABO78gATu/QAE7v2ABO79wATu/gAE7v6ABO7+wATvBQAE7wVABO8FgATvBgAE7yTABO8lQATvJcAE7yZABO8nAATvJ0AE7yeABO8nwATvKAAE7yiABO8pAATvKUAE7ymABO8qAATvKkAE70kABO9JgATvSgAE70qABO9LQATvS4AE70vABO9MAATvTEAE70zABO9NQATvTYAE703ABO9OQATvToAE721ABO9twATvbkAE727ABO9vgATvb8AE73AABO9wQATvcIAE73EABO9xgATvccAE73IABO9ygATvcsAE75GABO+SAATvkoAE75MABO+TwATvlAAE75RABO+UgATvlMAE75VABO+VwATvlgAE75ZABO+WwATvlwAE77XABO+2QATvtsAE77dABO+4AATvuEAE77iABO+4wATvuQAE77mABO+6AATvukAE77qABO+7AATvu0AE782ABO/WgATv4EAE7+lABO/qAATv6oAE7+sABO/rgATv7AAE7+yABO/swATv7YAE7/PABO/7AATv+4AE7/wABO/8gATv/QAE7/2ABO/+AATv/oAE8AXABPAGgATwB0AE8AgABPAIwATwCYAE8ApABPALAATwC4AE8CpABPAqwATwK0AE8CvABPAsgATwLMAE8C0ABPAtQATwLYAE8C4ABPAugATwLsAE8C8ABPAvgATwL8AE8E6ABPBPAATwT4AE8FAABPBQwATwUQAE8FFABPBRgATwUcAE8FJABPBSwATwUwAE8FNABPBTwATwVAAE8HLABPBzQATwc8AE8HRABPB1AATwdUAE8HWABPB1wATwdgAE8HaABPB3AATwd0AE8HeABPB4AATweEAE8JcABPCXgATwmAAE8JiABPCZQATwmYAE8JnABPCaAATwmkAE8JrABPCbQATwm4AE8JvABPCcQATwnIAE8LtABPC7wATwvEAE8LzABPC9gATwvcAE8L4ABPC+QATwvoAE8L8ABPC/gATwv8AE8MAABPDAgATwwMAE8N+ABPDgAATw4IAE8OEABPDhwATw4gAE8OJABPDigATw4sAE8ONABPDjwATw5AAE8ORABPDkwATw5QAE8QPABPEEQATxBMAE8QVABPEGAATxBkAE8QaABPEGwATxBwAE8QeABPEIAATxCEAE8QiABPEJAATxCUAE8Q2ABPENwATxDkAE8S0ABPEtgATxLgAE8S6ABPEvAATxL0AE8S+ABPEvwATxMAAE8TCABPExAATxMUAE8TGABPEyAATxMkAE8VEABPFRgATxUgAE8VKABPFTAATxU0AE8VOABPFTwATxVAAE8VSABPFVAATxVUAE8VWABPFWAATxVkAE8XUABPF1gATxdkAE8XbABPF3QATxd4AE8XfABPF4AATxeEAE8XjABPF5QATxeYAE8XnABPF6QATxeoAE8X7ABPGAAATxgMAE8YFABPGHgATxh8AE8YgABPGIgATxjsAE8Y8ABPGPQATxj8AE8ZYABPGWQATxloAE8ZcABPGbQATxnwAE8aVABPGpAATxrYAE8bKABPG4QATxvMAE8cEABPHBQATxwcAE8cgABPHIQATxyIAE8ckABPHPAATx00AE8dXABPHZAAAAAAAAAQEAAAAAAAB6FcAAAAAAAAAAAAAAAAAE8ds + + + + + PersistedGroupV2Discussion + Undefined + 31 + PersistedGroupV2Discussion + 1 + + + + + + 1 + mentions + + + + PersistedLatestDiscussionSenderSequenceNumber + Undefined + 6 + PersistedLatestDiscussionSenderSequenceNumber + 1 + + + + + + 1 + allDraftFyleJoins + + + + serializedReturnReceipt + + + + rawContactIdentityIdentity + + + + capabilityWebrtcContinuousICE + + + + fileName + + + + customPhotoFilename + + + + associatedData + + + + groupOwnerIdentity + + + + 1 + unsortedRecipientsInfos + + + + ownPermissionAdmin + + + + rawPinnedIndex + + + + 1 + contactGroups + + + + mentionRangeUpperBound + + + + groupName + + + + PersistedDraft + Undefined + 11 + PersistedDraft + 1 + + + + + + creationTimestamp + + + + PersistedGroupDiscussion + Undefined + 32 + PersistedGroupDiscussion + 1 + + + + + + timestampDelivered + + + + sortIndex + + + + 1 + receivedMessage + + + + isCaller + + + + 1 + invitations + + + + rawCountBasedRetention + + + + 1 + rawOwnedIdentity + + + + 1 + draft + + + + readOnce + + + + note + + + + creationTimestamp + + + + rawRequesterIdentity + + + + 1 + illustrativeMessage + + + + 1 + fyle + + + + PersistedExpirationForReceivedMessageWithLimitedVisibility + Undefined + 14 + PersistedExpirationForReceivedMessageWithLimitedVisibility + 1 + + + + + + rawOwnedIdentityIdentity + + + + position + + + + serializedIdentityCoreDetails + + + + timestampOfLastMessage + + + + rawContactIdentity + + + + updateInProgress + + + + sectionIdentifier + + + + 1 + owner + + + + 1 + persistedMetadata + + + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8Q +D05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGkCwwTFFUkbnVsbNMNDg8QERJfEA9OU0NvbnN0YW50VmFsdWVfEBBOU0V4cHJlc3Npb25UeXBlViRjbGFzc4ACEACAAwnSFRYXGFokY2xhc3NuYW1lWCRjbGFzc2VzXxAZTlNDb25zdGFudFZhbHVlRXhwcmVzc2lvbqMXGRpcTlNFeHByZXNzaW9uWE5TT2JqZWN0CBEaJCkyN0lMUVNYXmV3ipGTlZeYnaixzdHeAAAAAAAAAQEAAAAAAAAAGwAAAAAAAAAAAAAAAAAAAOc= + + atLeastOneDeviceAllowsThisContactToReceiveMessages + + + + 1 + rawOwnedIdentity + + + + permanentUUID + + + + 1 + discussion + + + + PersistedMessageSentRecipientInfos + Undefined + 18 + PersistedMessageSentRecipientInfos + 1 + + + + + + body + + + + 1 + draft + + + + aNewReceivedMessageDoesMentionOwnedIdentity + + + + customDisplayName + + + + index + + + + groupIdentifier + + + + numberOfUnreadReceivedMessages + + + + groupUidRaw + + + + 1 + rawReactions + + + + permanentUUID + + + + latestSequenceNumber + + + + rawStatus + + + + rawMentionnedIdentity + + + + groupUidRaw + + + + 1 + sharedConfiguration + + + + PersistedGroupV2 + Undefined + 21 + PersistedGroupV2 + 1 + + + + + + expirationDate + + + + timestampMessageSent + + + + PersistedObvOwnedIdentity + Undefined + 39 + PersistedObvOwnedIdentity + 1 + + + + + + timestamp + + + + rawReportKind + + + + 1 + messages + + + + rawCountBasedRetentionIsActive + + + + sectionIdentifier + + + + creationDate + + + + groupIdentifier + + + + permanentUUID + + + + expirationDate + + + + rawRequestType + + + + PersistedMessageSentToPersistedMessageSentV66ToV67 + PersistedMessageSent + Undefined + 34 + PersistedMessageSent + 1 + + + + + + rawSecureChannelStatus + + + + rawOwnedIdentityIdentity + + + + 1 + rawReactions + + + + wasOpened + + + + title + + + + 1 + contactGroups + + + + actionRequired + + + + 1 + detailsPublished + + + + senderSequenceNumber + + + + messageIdentifierFromEngine + + + + capabilityGroupsV2 + + + + 1 + localConfiguration + + + + pinnedSectionKeyPath + + + + 1 + replyTo + + + + 1 + allFyleMessageJoinWithStatus + + + + identity + + + + doesMentionOwnedIdentity + + + + isArchived + + + + fullDisplayName + + + + isWiped + + + + keycloakManaged + + + + optionalOwnedIdentityIdentity + + + + groupV2Identifier + + + + 1 + discussion + + + + photoURL + + + + senderThreadIdentifier + + + + senderThreadIdentifier + + + + 1 + devices + + + + 1 + message + + + + note + + + + 1 + messageReceivedWithLimitedVisibility + + + + SentFyleMessageJoinWithStatus + Undefined + 28 + SentFyleMessageJoinWithStatus + 1 + + + + + + PersistedOneToOneDiscussion + Undefined + 30 + PersistedOneToOneDiscussion + 1 + + + + + + timestampRead + + + + 1 + contactIdentity + + + + 1 + fyle + + + + 1 + callLogItem + + + + 1 + ownedContactGroups + + + + rawDoFetchContentRichURLsMetadata + + + + actionRequired + + + + 1 + illustrativeMessageForDiscussion + + + + senderSequenceNumber + + + + senderIdentifier + + + + rawOwnedIdentityIdentity + + + + photoURL + + + + 1 + messageSentWithLimitedExistence + + + + senderIdentifier + + + + 1 + latestSenderSequenceNumbers + + + \ No newline at end of file diff --git a/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v66_to_v67/MigrationPolicies/PersistedMessageSentToPersistedMessageSentV66ToV67.swift b/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v66_to_v67/MigrationPolicies/PersistedMessageSentToPersistedMessageSentV66ToV67.swift new file mode 100644 index 00000000..bfabd635 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v66_to_v67/MigrationPolicies/PersistedMessageSentToPersistedMessageSentV66ToV67.swift @@ -0,0 +1,77 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CoreData +import os.log + + +final class PersistedMessageSentToPersistedMessageSentV66ToV67: NSEntityMigrationPolicy { + + private static let errorDomain = "MessengerMigrationV58ToV59" + private static let debugPrintPrefix = "[\(errorDomain)][PersistedMessageSentToPersistedMessageSentV66ToV67]" + + let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "PersistedMessageSentToPersistedMessageSentV66ToV67") + + // Tested + override func createDestinationInstances(forSource sInstance: NSManagedObject, in mapping: NSEntityMapping, manager: NSMigrationManager) throws { + + do { + + debugPrint("\(Self.debugPrintPrefix) createDestinationInstances starts") + defer { + debugPrint("\(Self.debugPrintPrefix) createDestinationInstances ends") + } + + let dInstance = try initializeDestinationInstance(forEntityName: "PersistedMessageSent", + forSource: sInstance, + in: mapping, + manager: manager, + errorDomain: Self.errorDomain) + defer { + manager.associate(sourceInstance: sInstance, withDestinationInstance: dInstance, for: mapping) + } + + // Until now, all sent messages were sent from the current device. + // Consequently, the appropriate senderThreadIdentifier of all sent messages are the one found in the discussion. + + guard let sDiscussion = sInstance.value(forKey: "discussion") as? NSManagedObject else { + throw ObvError.couldNotGetAssociatedSourceDiscussion + } + + guard let senderThreadIdentifier = sDiscussion.value(forKey: "senderThreadIdentifier") as? UUID else { + throw ObvError.couldNotGetSenderThreadIdentifier + } + + dInstance.setValue(senderThreadIdentifier, forKey: "senderThreadIdentifier") + + } catch { + assertionFailure() + throw error + } + + } + + enum ObvError: Error { + case couldNotGetAssociatedSourceDiscussion + case couldNotGetSenderThreadIdentifier + } + +} + diff --git a/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v6_to_v7/ReceivedFyleMessageJoinWithStatusToReceivedFyleMessageJoinWithStatusMigrationPolicyV6ToV7.swift b/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v6_to_v7/ReceivedFyleMessageJoinWithStatusToReceivedFyleMessageJoinWithStatusMigrationPolicyV6ToV7.swift index 2c5d8f7f..1487a1e2 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v6_to_v7/ReceivedFyleMessageJoinWithStatusToReceivedFyleMessageJoinWithStatusMigrationPolicyV6ToV7.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v6_to_v7/ReceivedFyleMessageJoinWithStatusToReceivedFyleMessageJoinWithStatusMigrationPolicyV6ToV7.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -19,6 +19,7 @@ import Foundation import CoreData +import UniformTypeIdentifiers import MobileCoreServices import ObvUICoreData @@ -81,7 +82,7 @@ final class ReceivedFyleMessageJoinWithStatusToReceivedFyleMessageJoinWithStatus let uti: String - if let _uti = ObvUTIUtils.utiOfFile(withName: newReceivedFyleMessageJoinWithStatus.fileName) { + if let _uti = Self.utiOfFile(withName: newReceivedFyleMessageJoinWithStatus.fileName) { // Try 1: Using the filename uti = _uti } else { @@ -96,14 +97,14 @@ final class ReceivedFyleMessageJoinWithStatusToReceivedFyleMessageJoinWithStatus let userInfo = [NSLocalizedFailureReasonErrorKey: message] throw NSError(domain: errorDomain, code: 0, userInfo: userInfo) } - if let _uti = ObvUTIUtils.guessUTIOfBinaryFile(atURL: url) { + if let _uti = Self.guessUTIOfBinaryFile(atURL: url) { uti = _uti - if let ext = ObvUTIUtils.preferredTagWithClass(inUTI: uti, inTagClass: .FilenameExtension) { + if let ext = Self.preferredTagWithClassFilenameExtension(inUTI: uti) { let newFileName = [newReceivedFyleMessageJoinWithStatus.fileName, ext].joined(separator: ".") newReceivedFyleMessageJoinWithStatus.setValue(newFileName, forKey: "fileName") } } else { - uti = kUTTypeData as String + uti = UTType.data.identifier } } @@ -115,4 +116,47 @@ final class ReceivedFyleMessageJoinWithStatusToReceivedFyleMessageJoinWithStatus } + + private static func utiOfFile(withName fileName: String) -> String? { + let fileExtension = NSString(string: fileName).pathExtension + return Self.utiOfFile(withExtension: fileExtension) + } + + + private static func utiOfFile(withExtension fileExtension: String) -> String? { + guard !fileExtension.isEmpty else { return nil } + return UTType(filenameExtension: fileExtension)?.identifier + } + + + private static func guessUTIOfBinaryFile(atURL url: URL) -> String? { + + let jpegPrefix = Data([0xff, 0xd8]) + let pngPrefix = Data([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A]) + let pdfPrefix = Data([0x25, 0x50, 0x44, 0x46, 0x2D]) + let mp4Signatures = ["ftyp", "mdat", "moov", "pnot", "udta", "uuid", "moof", "free", "skip", "jP2 ", "wide", "load", "ctab", "imap", "matt", "kmat", "clip", "crgn", "sync", "chap", "tmcd", "scpt", "ssrc", "PICT"].map { Data([UInt8]($0.utf8)) } + + guard let fileData = try? Data(contentsOf: url) else { + return nil + } + + if fileData.starts(with: jpegPrefix) { + return UTType.jpeg.identifier + } else if fileData.starts(with: pngPrefix) { + return UTType.png.identifier + } else if fileData.starts(with: pdfPrefix) { + return UTType.pdf.identifier + } else if mp4Signatures.contains(fileData.advanced(by: 4)[0..<4]) { + return UTType.mpeg4Movie.identifier + } else { + return nil + } + + } + + + private static func preferredTagWithClassFilenameExtension(inUTI uti: String) -> String? { + return UTType(uti)?.preferredFilenameExtension + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v6_to_v7/SentFyleMessageJoinWithStatusToSentFyleMessageJoinWithStatusMigrationPolicyV6ToV7.swift b/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v6_to_v7/SentFyleMessageJoinWithStatusToSentFyleMessageJoinWithStatusMigrationPolicyV6ToV7.swift index 3d5261be..8c8ef770 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v6_to_v7/SentFyleMessageJoinWithStatusToSentFyleMessageJoinWithStatusMigrationPolicyV6ToV7.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/CoreData/Migration/v6_to_v7/SentFyleMessageJoinWithStatusToSentFyleMessageJoinWithStatusMigrationPolicyV6ToV7.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -19,8 +19,8 @@ import Foundation import CoreData -import MobileCoreServices import ObvUICoreData +import UniformTypeIdentifiers fileprivate let errorDomain = "MessengerMigrationV6ToV7" @@ -81,7 +81,7 @@ final class SentFyleMessageJoinWithStatusToSentFyleMessageJoinWithStatusMigratio let uti: String - if let _uti = ObvUTIUtils.utiOfFile(withName: newSentFyleMessageJoinWithStatus.fileName) { + if let _uti = Self.utiOfFile(withName: newSentFyleMessageJoinWithStatus.fileName) { // Try 1: Using the filename uti = _uti } else { @@ -96,14 +96,14 @@ final class SentFyleMessageJoinWithStatusToSentFyleMessageJoinWithStatusMigratio let userInfo = [NSLocalizedFailureReasonErrorKey: message] throw NSError(domain: errorDomain, code: 0, userInfo: userInfo) } - if let _uti = ObvUTIUtils.guessUTIOfBinaryFile(atURL: url) { + if let _uti = Self.guessUTIOfBinaryFile(atURL: url) { uti = _uti - if let ext = ObvUTIUtils.preferredTagWithClass(inUTI: uti, inTagClass: .FilenameExtension) { + if let ext = Self.preferredTagWithClassFilenameExtension(inUTI: uti) { let newFileName = [newSentFyleMessageJoinWithStatus.fileName, ext].joined(separator: ".") newSentFyleMessageJoinWithStatus.setValue(newFileName, forKey: "fileName") } } else { - uti = kUTTypeData as String + uti = UTType.data.identifier } } @@ -115,4 +115,47 @@ final class SentFyleMessageJoinWithStatusToSentFyleMessageJoinWithStatusMigratio } + + private static func utiOfFile(withName fileName: String) -> String? { + let fileExtension = NSString.init(string: fileName).pathExtension + return Self.utiOfFile(withExtension: fileExtension) + } + + + private static func utiOfFile(withExtension fileExtension: String) -> String? { + guard !fileExtension.isEmpty else { return nil } + return UTType(filenameExtension: fileExtension)?.identifier + } + + + private static func guessUTIOfBinaryFile(atURL url: URL) -> String? { + + let jpegPrefix = Data([0xff, 0xd8]) + let pngPrefix = Data([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A]) + let pdfPrefix = Data([0x25, 0x50, 0x44, 0x46, 0x2D]) + let mp4Signatures = ["ftyp", "mdat", "moov", "pnot", "udta", "uuid", "moof", "free", "skip", "jP2 ", "wide", "load", "ctab", "imap", "matt", "kmat", "clip", "crgn", "sync", "chap", "tmcd", "scpt", "ssrc", "PICT"].map { Data([UInt8]($0.utf8)) } + + guard let fileData = try? Data(contentsOf: url) else { + return nil + } + + if fileData.starts(with: jpegPrefix) { + return UTType.jpeg.identifier + } else if fileData.starts(with: pngPrefix) { + return UTType.png.identifier + } else if fileData.starts(with: pdfPrefix) { + return UTType.pdf.identifier + } else if mp4Signatures.contains(fileData.advanced(by: 4)[0..<4]) { + return UTType.mpeg4Movie.identifier + } else { + return nil + } + + } + + + private static func preferredTagWithClassFilenameExtension(inUTI uti: String) -> String? { + return UTType(uti)?.preferredFilenameExtension + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/CoreData/ObvMessenger.xcdatamodeld/.xccurrentversion b/iOSClient/ObvMessenger/ObvMessenger/CoreData/ObvMessenger.xcdatamodeld/.xccurrentversion index b038f1e5..b0ae74d5 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/CoreData/ObvMessenger.xcdatamodeld/.xccurrentversion +++ b/iOSClient/ObvMessenger/ObvMessenger/CoreData/ObvMessenger.xcdatamodeld/.xccurrentversion @@ -3,6 +3,6 @@ _XCCurrentVersionName - ObvMessenger 66.xcdatamodel + ObvMessenger 67.xcdatamodel diff --git a/iOSClient/ObvMessenger/ObvMessenger/CoreData/ObvMessenger.xcdatamodeld/ObvMessenger 67.xcdatamodel/contents b/iOSClient/ObvMessenger/ObvMessenger/CoreData/ObvMessenger.xcdatamodeld/ObvMessenger 67.xcdatamodel/contents new file mode 100644 index 00000000..ff098701 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/CoreData/ObvMessenger.xcdatamodeld/ObvMessenger 67.xcdatamodel/contents @@ -0,0 +1,507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/iOSClient/ObvMessenger/ObvMessenger/CoreData/ObvMessengerPersistentContainer.swift b/iOSClient/ObvMessenger/ObvMessenger/CoreData/ObvMessengerPersistentContainer.swift index 014c18ca..320892d2 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/CoreData/ObvMessengerPersistentContainer.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/CoreData/ObvMessengerPersistentContainer.swift @@ -20,6 +20,8 @@ import Foundation import CoreData import ObvUICoreData +import ObvSettings + final class ObvMessengerPersistentContainer: NSPersistentContainer { diff --git a/iOSClient/ObvMessenger/ObvMessenger/FileSystemService/FileSystemService.swift b/iOSClient/ObvMessenger/ObvMessenger/FileSystemService/FileSystemService.swift index 7535d8d6..9c5a8da1 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/FileSystemService/FileSystemService.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/FileSystemService/FileSystemService.swift @@ -21,6 +21,8 @@ import Foundation import os.log import OlvidUtils import ObvUICoreData +import ObvSettings + final class FileSystemService { diff --git a/iOSClient/ObvMessenger/ObvMessenger/InfoPlist.xcstrings b/iOSClient/ObvMessenger/ObvMessenger/InfoPlist.xcstrings new file mode 100644 index 00000000..9ffe69c1 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/InfoPlist.xcstrings @@ -0,0 +1,192 @@ +{ + "sourceLanguage" : "en", + "strings" : { + "CFBundleDisplayName" : { + "comment" : "Bundle display name", + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Olvid" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid" + } + } + } + }, + "CFBundleName" : { + "comment" : "Bundle name", + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Olvid" + } + }, + "fr" : { + "stringUnit" : { + "state" : "needs_review", + "value" : "Olvid_dev" + } + } + } + }, + "Microsoft Excel document" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Document Microsoft Excel" + } + } + } + }, + "Microsoft Powerpoint document" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Document Microsoft Powerpoint" + } + } + } + }, + "Microsoft Word 97 document" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Document Microsoft Word 97" + } + } + } + }, + "Microsoft Word document" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Document Microsoft Word" + } + } + } + }, + "NSCameraUsageDescription" : { + "comment" : "Privacy - Camera Usage Description", + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Access to the camera allows you to scan the QR code of your contacts and to take pictures and videos right from within a discussion." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'accès à l'appareil photo permet de scanner le code QR de vos contacts et de prendre des photos et des vidéos directement au sein d'une discussion." + } + } + } + }, + "NSFaceIDUsageDescription" : { + "comment" : "Privacy - Face ID Usage Description", + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Use Face ID to access Olvid" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Utiliser Face ID pour accéder à Olvid" + } + } + } + }, + "NSHumanReadableCopyright" : { + "comment" : "Copyright (human-readable)", + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Copyright © 2019-2023 Olvid SAS" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copyright © 2019-2023 Olvid SAS" + } + } + } + }, + "NSMicrophoneUsageDescription" : { + "comment" : "Privacy - Microphone Usage Description", + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Allowing access to the microphone is required to make secure audio calls and to record movies and voice messages." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'accès au micro est nécessaire pour passer des appels sécurisés ainsi que pour enregistrer des films et des messages audios." + } + } + } + }, + "NSPhotoLibraryAddUsageDescription" : { + "comment" : "Privacy - Photo Library Additions Usage Description", + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Write access is required to save a picture to your photo library. Please note that Olvid will not have access to the other photos of your photo library." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'accès en écriture à votre librairie de photos permet d'y sauver une image directement. Notez que Olvid n'aura pas accès aux autres photos de votre librairie de photos." + } + } + } + }, + "Olvid Backup" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sauvegarde Olvid" + } + } + } + }, + "Web Internet Location" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Site internet" + } + } + } + } + }, + "version" : "1.0" +} \ No newline at end of file diff --git a/iOSClient/ObvMessenger/ObvMessenger/Initialization/InitializerViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Initialization/InitializerViewController.swift index 8b488b95..a065f1ec 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Initialization/InitializerViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Initialization/InitializerViewController.swift @@ -40,6 +40,8 @@ final class InitializerViewController: UIViewController { deinit { observationTokens.forEach { NotificationCenter.default.removeObserver($0) } } + + override var canBecomeFirstResponder: Bool { true } override func viewDidLoad() { super.viewDidLoad() @@ -84,7 +86,8 @@ final class InitializerViewController: UIViewController { override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) - presentedViewController?.dismiss(animated: true) + // 2023-08-03 Commenting this out, to prevent the camera VC to be dismissed. Not clear why this was here" + // presentedViewController?.dismiss(animated: true) } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/AddContactFlow.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/AddContactFlow.swift index 3fbe6dfa..aaf0ef93 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/AddContactFlow.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/AddContactFlow.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,29 +24,34 @@ import AVFoundation import ObvTypes import ObvUI import ObvUICoreData +import ObvDesignSystem + + +protocol AddContactHostingViewControllerDelegate: AnyObject { + + func userWantsToAddNewContactViaKeycloak(ownedCryptoId: ObvCryptoId, keycloakUserDetails: ObvKeycloakUserDetails, userCryptoId: ObvCryptoId) async throws + +} final class AddContactHostingViewController: UIHostingController, AddContactHostingViewStoreDelegate, KeycloakSearchViewControllerDelegate { private let store: AddContactHostingViewStore - private let newAvailableApiKeyElements: APIKeyElements private var observationTokens = [NSObjectProtocol]() + private weak var delegate: AddContactHostingViewControllerDelegate? /// The `alreadyScannedOrTappedURL` variable is set when scanning or tapping an URL from outside the app - init?(obvOwnedIdentity: ObvOwnedIdentity, alreadyScannedOrTappedURL: OlvidURL?, dismissAction: @escaping () -> Void, checkSignatureMutualScanUrl: @escaping (ObvMutualScanUrl) -> Bool) { + init?(obvOwnedIdentity: ObvOwnedIdentity, alreadyScannedOrTappedURL: OlvidURL?, dismissAction: @escaping () -> Void, checkSignatureMutualScanUrl: @escaping (ObvMutualScanUrl) -> Bool, obvEngine: ObvEngine, delegate: AddContactHostingViewControllerDelegate) { assert(Thread.isMainThread) - guard let store = AddContactHostingViewStore(obvOwnedIdentity: obvOwnedIdentity) else { assertionFailure(); return nil } + guard let store = AddContactHostingViewStore(obvOwnedIdentity: obvOwnedIdentity, obvEngine: obvEngine, dismissAction: dismissAction) else { assertionFailure(); return nil } self.store = store - let newAvailableApiKeyElements = APIKeyElements() - self.newAvailableApiKeyElements = newAvailableApiKeyElements + self.delegate = delegate let rootView = AddContactMainView(store: store, alreadyScannedOrTappedURL: alreadyScannedOrTappedURL, dismissAction: dismissAction, - checkSignatureMutualScanUrl: checkSignatureMutualScanUrl, - newAvailableApiKeyElements: newAvailableApiKeyElements) + checkSignatureMutualScanUrl: checkSignatureMutualScanUrl) super.init(rootView: rootView) store.delegate = self - observeNotifications() } deinit { @@ -61,21 +66,18 @@ final class AddContactHostingViewController: UIHostingController Void weak var delegate: AddContactHostingViewStoreDelegate? - init?(obvOwnedIdentity: ObvOwnedIdentity) { + init?(obvOwnedIdentity: ObvOwnedIdentity, obvEngine: ObvEngine, dismissAction: @escaping () -> Void) { guard let persistedOwnedIdentity = try? PersistedObvOwnedIdentity.get(persisted: obvOwnedIdentity, within: ObvStack.shared.viewContext) else { assertionFailure(); return nil } self.singleOwnedIdentity = SingleIdentity(ownedIdentity: persistedOwnedIdentity) self.ownedCryptoId = obvOwnedIdentity.cryptoId @@ -157,6 +173,8 @@ final class AddContactHostingViewStore: ObservableObject { self.urlIdentityRepresentation = genericIdentity.getObvURLIdentity().urlRepresentation self.viewForSharingIdentity = AnyView(ActivityViewControllerForSharingIdentity(genericIdentity: genericIdentity)) self.obvOwnedIdentity = obvOwnedIdentity + self.obvEngine = obvEngine + self.dismissAction = dismissAction } fileprivate func installedOlvidAppIsOutdated() { @@ -168,15 +186,6 @@ final class AddContactHostingViewStore: ObservableObject { .postOnDispatchQueue() } - fileprivate func requestAPIKeyElements(_ apiKey: UUID) { - ObvMessengerInternalNotification.userRequestedAPIKeyStatus(ownedCryptoId: ownedCryptoId, apiKey: apiKey) - .postOnDispatchQueue() - } - - fileprivate func userRequestedNewAPIKeyActivation(_ apiKey: UUID) { - ObvMessengerInternalNotification.userRequestedNewAPIKeyActivation(ownedCryptoId: ownedCryptoId, apiKey: apiKey) - .postOnDispatchQueue() - } fileprivate func userWantsToSearchWithinKeycloak() { delegate?.userWantsToSearchWithinKeycloak() @@ -204,25 +213,7 @@ final class AddContactHostingViewStore: ObservableObject { } Task { do { - try await KeycloakManagerSingleton.shared.addContact(ownedCryptoId: ownedCryptoId, userId: userDetailsOfKeycloakContact.id, userIdentity: userIdentity) - await delegate?.userSuccessfullyAddKeycloakContact(ownedCryptoId: ownedCryptoId, newContactCryptoId: userCryptoId) - } catch let addContactError as KeycloakManager.AddContactError { - switch addContactError { - case .authenticationRequired, - .ownedIdentityNotManaged, - .badResponse, - .userHasCancelled, - .keycloakApiRequest, - .invalidSignature, - .unkownError: - addingKeycloakContactFailedAlertIsPresented = true - case .willSyncKeycloakServerSignatureKey: - break - case .ownedIdentityWasRevoked: - ObvMessengerInternalNotification.userOwnedIdentityWasRevokedByKeycloak(ownedCryptoId: ownedCryptoId) - .postOnDispatchQueue() - } - return + try await delegate?.userWantsToAddNewContactViaKeycloak(ownedCryptoId: ownedCryptoId, keycloakUserDetails: userDetailsOfKeycloakContact, userCryptoId: userCryptoId) } catch { assertionFailure() addingKeycloakContactFailedAlertIsPresented = true @@ -230,43 +221,37 @@ final class AddContactHostingViewStore: ObservableObject { } } } -} - - -final class APIKeyElements: ObservableObject { - let id = UUID() - var apiKey: UUID? - @Published var apiKeyStatus: APIKeyStatus? - @Published var apiKeyExpirationDate: Date? - @Published var activated: Bool - - init() { - self.apiKey = nil - self.apiKeyStatus = nil - self.apiKeyExpirationDate = nil - self.activated = false - } + // LicenseActivationViewActionsDelegate - init(apiKey: UUID, apiKeyStatus: APIKeyStatus, apiKeyExpirationDate: Date?) { - self.apiKey = apiKey - self.apiKeyStatus = apiKeyStatus - self.apiKeyExpirationDate = apiKeyExpirationDate - self.activated = false + func userWantsToDismissLicenseActivationView() { + dismissAction() } - func set(apiKeyStatus: APIKeyStatus, apiKeyExpirationDate: Date?, forApiKey: UUID) { - assert(Thread.isMainThread) - guard self.apiKey == apiKey else { return } - withAnimation { - self.apiKeyStatus = apiKeyStatus - self.apiKeyExpirationDate = apiKeyExpirationDate + enum ObvError: Error { + case registerAPIKeyFailed + } + + @MainActor + func userWantsToRegisterAPIKey(ownedCryptoId: ObvTypes.ObvCryptoId, apiKey: UUID) async throws { + let result = try await obvEngine.registerOwnedAPIKeyOnServerNow(ownedCryptoId: ownedCryptoId, apiKey: apiKey) + switch result { + case .success: + return + case .failed: + throw ObvError.registerAPIKeyFailed + case .invalidAPIKey: + throw ObvError.registerAPIKeyFailed } } - func setActive() { - self.activated = true + + @MainActor + func userWantsToQueryServerForAPIKeyElements(ownedCryptoId: ObvTypes.ObvCryptoId, apiKey: UUID) async throws -> ObvTypes.APIKeyElements { + let apiKeyElements = try await obvEngine.queryAPIKeyStatus(for: ownedCryptoId, apiKey: apiKey) + return apiKeyElements } + } @@ -299,27 +284,26 @@ struct AddContactMainView: View { let alreadyScannedOrTappedURL: OlvidURL? let dismissAction: () -> Void let checkSignatureMutualScanUrl: (ObvMutualScanUrl) -> Bool - @ObservedObject var newAvailableApiKeyElements: APIKeyElements + // @ObservedObject var newAvailableApiKeyElements: APIKeyElements var body: some View { - AddContactMainInnerView(contact: store.singleOwnedIdentity, - ownedCryptoId: store.ownedCryptoId, - urlIdentityRepresentation: store.urlIdentityRepresentation, - alreadyScannedOrTappedURL: alreadyScannedOrTappedURL, - viewForSharingIdentity: store.viewForSharingIdentity, - confirmInviteAction: store.userConfirmedSendInvite, - dismissAction: dismissAction, - installedOlvidAppIsOutdated: store.installedOlvidAppIsOutdated, - checkSignatureMutualScanUrl: checkSignatureMutualScanUrl, - requestNewAvailableApiKeyElements: store.requestAPIKeyElements, - userRequestedNewAPIKeyActivation: store.userRequestedNewAPIKeyActivation, - newAvailableApiKeyElements: newAvailableApiKeyElements, - userWantsToSearchWithinKeycloak: store.userWantsToSearchWithinKeycloak, - userDetailsOfKeycloakContact: store.userDetailsOfKeycloakContact, - contactIdentity: store.contactIdentity, - isConfirmAddingKeycloakViewPushed: $store.isConfirmAddingKeycloakViewPushed, - addingKeycloakContactFailedAlertIsPresented: $store.addingKeycloakContactFailedAlertIsPresented, - confirmAddingKeycloakContactViewAction: store.confirmAddingKeycloakContactViewAction) + AddContactMainInnerView( + contact: store.singleOwnedIdentity, + ownedCryptoId: store.ownedCryptoId, + urlIdentityRepresentation: store.urlIdentityRepresentation, + alreadyScannedOrTappedURL: alreadyScannedOrTappedURL, + viewForSharingIdentity: store.viewForSharingIdentity, + confirmInviteAction: store.userConfirmedSendInvite, + dismissAction: dismissAction, + installedOlvidAppIsOutdated: store.installedOlvidAppIsOutdated, + checkSignatureMutualScanUrl: checkSignatureMutualScanUrl, + userWantsToSearchWithinKeycloak: store.userWantsToSearchWithinKeycloak, + userDetailsOfKeycloakContact: store.userDetailsOfKeycloakContact, + contactIdentity: store.contactIdentity, + isConfirmAddingKeycloakViewPushed: $store.isConfirmAddingKeycloakViewPushed, + addingKeycloakContactFailedAlertIsPresented: $store.addingKeycloakContactFailedAlertIsPresented, + confirmAddingKeycloakContactViewAction: store.confirmAddingKeycloakContactViewAction, + licenseActivationViewActions: store) } } @@ -346,6 +330,8 @@ fileprivate struct AddContactMainInnerView: View { @Binding var isConfirmAddingKeycloakViewPushed: Bool @Binding var addingKeycloakContactFailedAlertIsPresented: Bool + let licenseActivationViewActions: LicenseActivationViewActionsDelegate + @State private var isViewForScanningIdPresented = false @State private var isAlertPresented = false @State private var alertType = AlertType.videoDenied @@ -357,14 +343,12 @@ fileprivate struct AddContactMainInnerView: View { @State private var isActionSheetAlternateImportShown = false // Only used/set when show the LicenseActivationView - let requestNewAvailableApiKeyElements: (UUID) -> Void - let userRequestedNewAPIKeyActivation: (UUID) -> Void - @ObservedObject var newAvailableApiKeyElements: APIKeyElements + // @ObservedObject var newAvailableApiKeyElements: APIKeyElements let userWantsToSearchWithinKeycloak: () -> Void let confirmAddingKeycloakContactViewAction: () -> Void /// Set when scanning a new configuration - @State private var serverAndAPIKey: ServerAndAPIKey? + @State private var licenseActivationViewModel: ConcreteLicenseActivationViewModel? @State private var betaConfiguration: BetaConfiguration? @State private var keycloakConfig: KeycloakConfiguration? @@ -416,7 +400,7 @@ fileprivate struct AddContactMainInnerView: View { DispatchQueue.main.async { isAlertPresented = true } } - init(contact: SingleIdentity, ownedCryptoId: ObvCryptoId, urlIdentityRepresentation: URL, alreadyScannedOrTappedURL: OlvidURL?, viewForSharingIdentity: AnyView, confirmInviteAction: @escaping (ObvURLIdentity) -> Void, dismissAction: @escaping () -> Void, installedOlvidAppIsOutdated: @escaping () -> Void, checkSignatureMutualScanUrl: @escaping (ObvMutualScanUrl) -> Bool, requestNewAvailableApiKeyElements: @escaping (UUID) -> Void, userRequestedNewAPIKeyActivation: @escaping (UUID) -> Void, newAvailableApiKeyElements: APIKeyElements, userWantsToSearchWithinKeycloak: @escaping () -> Void, userDetailsOfKeycloakContact: ObvKeycloakUserDetails?, contactIdentity: PersistedObvContactIdentity?, isConfirmAddingKeycloakViewPushed: Binding, addingKeycloakContactFailedAlertIsPresented: Binding, confirmAddingKeycloakContactViewAction: @escaping () -> Void) { + init(contact: SingleIdentity, ownedCryptoId: ObvCryptoId, urlIdentityRepresentation: URL, alreadyScannedOrTappedURL: OlvidURL?, viewForSharingIdentity: AnyView, confirmInviteAction: @escaping (ObvURLIdentity) -> Void, dismissAction: @escaping () -> Void, installedOlvidAppIsOutdated: @escaping () -> Void, checkSignatureMutualScanUrl: @escaping (ObvMutualScanUrl) -> Bool, userWantsToSearchWithinKeycloak: @escaping () -> Void, userDetailsOfKeycloakContact: ObvKeycloakUserDetails?, contactIdentity: PersistedObvContactIdentity?, isConfirmAddingKeycloakViewPushed: Binding, addingKeycloakContactFailedAlertIsPresented: Binding, confirmAddingKeycloakContactViewAction: @escaping () -> Void, licenseActivationViewActions: LicenseActivationViewActionsDelegate) { self.ownedCryptoId = ownedCryptoId self.singleIdentity = contact self.urlIdentityRepresentation = urlIdentityRepresentation @@ -426,15 +410,13 @@ fileprivate struct AddContactMainInnerView: View { self.installedOlvidAppIsOutdated = installedOlvidAppIsOutdated self.checkSignatureMutualScanUrl = checkSignatureMutualScanUrl self.alreadyScannedOrTappedURL = alreadyScannedOrTappedURL - self.requestNewAvailableApiKeyElements = requestNewAvailableApiKeyElements - self.userRequestedNewAPIKeyActivation = userRequestedNewAPIKeyActivation - self.newAvailableApiKeyElements = newAvailableApiKeyElements self.userWantsToSearchWithinKeycloak = userWantsToSearchWithinKeycloak self.userDetailsOfKeycloakContact = userDetailsOfKeycloakContact self.contactIdentity = contactIdentity self._isConfirmAddingKeycloakViewPushed = isConfirmAddingKeycloakViewPushed self._addingKeycloakContactFailedAlertIsPresented = addingKeycloakContactFailedAlertIsPresented self.confirmAddingKeycloakContactViewAction = confirmAddingKeycloakContactViewAction + self.licenseActivationViewActions = licenseActivationViewActions } private func copyOwnedIdentityToClipboard() { @@ -485,8 +467,10 @@ fileprivate struct AddContactMainInnerView: View { // For now, we expect exactly one of the possible config types to be non-nil assert([serverAndAPIKey as Any?, betaConfiguration as Any?, keycloakConfig as Any?].filter({ $0 != nil }).count == 1) - if serverAndAPIKey != nil { - self.serverAndAPIKey = serverAndAPIKey + if let serverAndAPIKey, let ownedIdentity = try? PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: ObvStack.shared.viewContext) { + self.licenseActivationViewModel = ConcreteLicenseActivationViewModel( + ownedIdentity: ownedIdentity, + serverAndAPIKey: serverAndAPIKey) } else if betaConfiguration != nil { self.betaConfiguration = betaConfiguration } else { @@ -543,13 +527,8 @@ fileprivate struct AddContactMainInnerView: View { private func qrCodeScannerWasDismissed() { - if self.scannedUrlIdentity != nil || self.scannedMutualScanUrl != nil || self.serverAndAPIKey != nil || self.betaConfiguration != nil || self.keycloakConfig != nil { - if #available(iOS 14, *) { - withAnimation { - self.isConfirmInviteViewPushed = true - } - } else { - // The iOS 14 code bugs on iOS 13, which performs the animation by default (which is not the case of iOS 14) + if self.scannedUrlIdentity != nil || self.scannedMutualScanUrl != nil || self.licenseActivationViewModel != nil || self.betaConfiguration != nil || self.keycloakConfig != nil { + withAnimation { self.isConfirmInviteViewPushed = true } } else if self.shouldPresentQRCodeScanFailedAlert { @@ -564,9 +543,7 @@ fileprivate struct AddContactMainInnerView: View { } private func useSmallScreenMode(for geometry: GeometryProxy) -> Bool { - if #available(iOS 13.4, *) { - if sizeCategory.isAccessibilityCategory { return true } - } + if sizeCategory.isAccessibilityCategory { return true } // Small screen mode for iPhone 6, iPhone 6S, iPhone 7, iPhone 8, iPhone SE (2016) return max(geometry.size.height, geometry.size.width) < 510 } @@ -613,26 +590,25 @@ fileprivate struct AddContactMainInnerView: View { } .padding(.horizontal, typicalPadding(for: geometry)) .padding(.bottom, typicalPadding(for: geometry)) - AddContactMainInnerViewNavigationLinks(newAvailableApiKeyElements: newAvailableApiKeyElements, - isConfirmInviteViewPushed: $isConfirmInviteViewPushed, - isConfirmAddingKeycloakViewPushed: $isConfirmAddingKeycloakViewPushed, - addingKeycloakContactFailedAlertIsPresented: $addingKeycloakContactFailedAlertIsPresented, - scannedUrlIdentity: scannedUrlIdentity, - scannedMutualScanUrl: scannedMutualScanUrl, - ownedCryptoId: ownedCryptoId, - scannedPersistedContact: scannedPersistedContact, - serverAndAPIKey: serverAndAPIKey, - betaConfiguration: betaConfiguration, - keycloakConfig: keycloakConfig, - userDetailsOfKeycloakContact: userDetailsOfKeycloakContact, - contactIdentity: contactIdentity, - requestNewAvailableApiKeyElements: requestNewAvailableApiKeyElements, - userRequestedNewAPIKeyActivation: userRequestedNewAPIKeyActivation, - dismissAction: dismissAction, - installedOlvidAppIsOutdated: installedOlvidAppIsOutdated, - ownedIdentityIsKeycloakManaged: singleIdentity.isKeycloakManaged, - confirmInviteAction: confirmInviteAction, - confirmAddingKeycloakContactViewAction: confirmAddingKeycloakContactViewAction) + AddContactMainInnerViewNavigationLinks( + isConfirmInviteViewPushed: $isConfirmInviteViewPushed, + isConfirmAddingKeycloakViewPushed: $isConfirmAddingKeycloakViewPushed, + addingKeycloakContactFailedAlertIsPresented: $addingKeycloakContactFailedAlertIsPresented, + scannedUrlIdentity: scannedUrlIdentity, + scannedMutualScanUrl: scannedMutualScanUrl, + ownedCryptoId: ownedCryptoId, + scannedPersistedContact: scannedPersistedContact, + betaConfiguration: betaConfiguration, + keycloakConfig: keycloakConfig, + userDetailsOfKeycloakContact: userDetailsOfKeycloakContact, + contactIdentity: contactIdentity, + dismissAction: dismissAction, + installedOlvidAppIsOutdated: installedOlvidAppIsOutdated, + ownedIdentityIsKeycloakManaged: singleIdentity.isKeycloakManaged, + confirmInviteAction: confirmInviteAction, + confirmAddingKeycloakContactViewAction: confirmAddingKeycloakContactViewAction, + licenseActivationViewModel: licenseActivationViewModel, + licenseActivationViewActions: licenseActivationViewActions) HStack { OlvidButton(style: .blue, title: Text("SCAN"), @@ -641,7 +617,7 @@ fileprivate struct AddContactMainInnerView: View { self.scannedUrlIdentity = nil self.scannedMutualScanUrl = nil self.scannedPersistedContact = nil - self.serverAndAPIKey = nil + self.licenseActivationViewModel = nil self.keycloakConfig = nil self.isConfirmInviteViewPushed = false self.isAlertPresented = false @@ -761,9 +737,8 @@ fileprivate struct AddContactMainInnerView: View { } -fileprivate struct AddContactMainInnerViewNavigationLinks: View { +fileprivate struct AddContactMainInnerViewNavigationLinks: View { - @ObservedObject var newAvailableApiKeyElements: APIKeyElements @Binding var isConfirmInviteViewPushed: Bool @Binding var isConfirmAddingKeycloakViewPushed: Bool @Binding var addingKeycloakContactFailedAlertIsPresented: Bool @@ -771,19 +746,20 @@ fileprivate struct AddContactMainInnerViewNavigationLinks: View { let scannedMutualScanUrl: ObvMutualScanUrl? let ownedCryptoId: ObvCryptoId let scannedPersistedContact: PersistedObvContactIdentity? - let serverAndAPIKey: ServerAndAPIKey? + // let serverAndAPIKey: ServerAndAPIKey? let betaConfiguration: BetaConfiguration? let keycloakConfig: KeycloakConfiguration? let userDetailsOfKeycloakContact: ObvKeycloakUserDetails? /// Only set if the user to invite is a keycloak user let contactIdentity: PersistedObvContactIdentity? /// Set when trying to add a keycloak contact that is already present in the local contacts directory - let requestNewAvailableApiKeyElements: (UUID) -> Void - let userRequestedNewAPIKeyActivation: (UUID) -> Void let dismissAction: () -> Void let installedOlvidAppIsOutdated: () -> Void let ownedIdentityIsKeycloakManaged: Bool let confirmInviteAction: (ObvURLIdentity) -> Void let confirmAddingKeycloakContactViewAction: () -> Void + let licenseActivationViewModel: LicenseActivationViewModel? + let licenseActivationViewActions: LicenseActivationViewActionsDelegate + var body: some View { if let scannedUrlIdentity = self.scannedUrlIdentity { NavigationLink( @@ -813,18 +789,11 @@ fileprivate struct AddContactMainInnerViewNavigationLinks: View { isActive: $isConfirmAddingKeycloakViewPushed, label: { EmptyView() } ) - } else if let serverAndAPIKey = self.serverAndAPIKey, - let persistedOwnedIdentity = try? PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: ObvStack.shared.viewContext) { + } else if let licenseActivationViewModel { NavigationLink( - destination: LicenseActivationView(ownedCryptoId: ownedCryptoId, - serverAndAPIKey: serverAndAPIKey, - currentApiKeyStatus: persistedOwnedIdentity.apiKeyStatus, - currentApiKeyExpirationDate: persistedOwnedIdentity.apiKeyExpirationDate, - ownedIdentityIsKeycloakManaged: ownedIdentityIsKeycloakManaged, - requestNewAvailableApiKeyElements: requestNewAvailableApiKeyElements, - userRequestedNewAPIKeyActivation: userRequestedNewAPIKeyActivation, - newAvailableApiKeyElements: newAvailableApiKeyElements, - dismissAction: dismissAction), + destination: LicenseActivationView( + model: licenseActivationViewModel, + actions: licenseActivationViewActions), isActive: $isConfirmInviteViewPushed, label: { EmptyView() } ) @@ -998,7 +967,7 @@ struct QRCodeBlockView: View { .shadow(color: shadowColor, radius: 10) } } else { - ObvProgressView().onAppear { + ProgressView().onAppear { generateQrCodeUIImage() } } @@ -1009,151 +978,151 @@ struct QRCodeBlockView: View { } -struct AddContactMainInnerView_Previews: PreviewProvider { - - private static let identity1 = SingleIdentity(firstName: "Joyce", - lastName: "Lathrop", - position: "Happiness manager", - company: "Olvid", - isKeycloakManaged: false, - showGreenShield: false, - showRedShield: false, - identityColors: nil, - photoURL: nil) - - private static let identity2 = SingleIdentity(firstName: "Joyce", - lastName: "Lathrop", - position: "Happiness manager", - company: "Olvid", - isKeycloakManaged: false, - showGreenShield: false, - showRedShield: false, - identityColors: nil, - photoURL: nil) - - private static let identityAsURL = URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")! - - private static let identity = ObvURLIdentity(urlRepresentation: identityAsURL)! - - static var previews: some View { - Group { - AddContactMainInnerView(contact: identity2, - ownedCryptoId: identity.cryptoId, - urlIdentityRepresentation: URL(string: "https://olvid.io")!, - alreadyScannedOrTappedURL: nil, - viewForSharingIdentity: AnyView(Text("Placeholder view for sharing my id")), - confirmInviteAction: { _ in }, - dismissAction: {}, - installedOlvidAppIsOutdated: {}, - checkSignatureMutualScanUrl: { _ in false }, - requestNewAvailableApiKeyElements: { _ in }, - userRequestedNewAPIKeyActivation: { _ in }, - newAvailableApiKeyElements: APIKeyElements(), - userWantsToSearchWithinKeycloak: {}, - userDetailsOfKeycloakContact: nil, - contactIdentity: nil, - isConfirmAddingKeycloakViewPushed: .constant(false), - addingKeycloakContactFailedAlertIsPresented: .constant(false), - confirmAddingKeycloakContactViewAction: {}) - AddContactMainInnerView(contact: identity1, - ownedCryptoId: identity.cryptoId, - urlIdentityRepresentation: URL(string: "https://olvid.io")!, - alreadyScannedOrTappedURL: nil, - viewForSharingIdentity: AnyView(Text("Placeholder view for sharing my id")), - confirmInviteAction: { _ in }, - dismissAction: {}, - installedOlvidAppIsOutdated: {}, - checkSignatureMutualScanUrl: { _ in false }, - requestNewAvailableApiKeyElements: { _ in }, - userRequestedNewAPIKeyActivation: { _ in }, - newAvailableApiKeyElements: APIKeyElements(), - userWantsToSearchWithinKeycloak: {}, - userDetailsOfKeycloakContact: nil, - contactIdentity: nil, - isConfirmAddingKeycloakViewPushed: .constant(false), - addingKeycloakContactFailedAlertIsPresented: .constant(false), - confirmAddingKeycloakContactViewAction: {}) - .environment(\.colorScheme, .dark) - AddContactMainInnerView(contact: identity2, - ownedCryptoId: identity.cryptoId, - urlIdentityRepresentation: URL(string: "https://olvid.io")!, - alreadyScannedOrTappedURL: nil, - viewForSharingIdentity: AnyView(Text("Placeholder view for sharing my id")), - confirmInviteAction: { _ in }, - dismissAction: {}, - installedOlvidAppIsOutdated: {}, - checkSignatureMutualScanUrl: { _ in false }, - requestNewAvailableApiKeyElements: { _ in }, - userRequestedNewAPIKeyActivation: { _ in }, - newAvailableApiKeyElements: APIKeyElements(), - userWantsToSearchWithinKeycloak: {}, - userDetailsOfKeycloakContact: nil, - contactIdentity: nil, - isConfirmAddingKeycloakViewPushed: .constant(false), - addingKeycloakContactFailedAlertIsPresented: .constant(false), - confirmAddingKeycloakContactViewAction: {}) - .environment(\.colorScheme, .dark) - AddContactMainInnerView(contact: identity2, - ownedCryptoId: identity.cryptoId, - urlIdentityRepresentation: URL(string: "https://olvid.io")!, - alreadyScannedOrTappedURL: nil, - viewForSharingIdentity: AnyView(Text("Placeholder view for sharing my id")), - confirmInviteAction: { _ in }, - dismissAction: {}, - installedOlvidAppIsOutdated: {}, - checkSignatureMutualScanUrl: { _ in false }, - requestNewAvailableApiKeyElements: { _ in }, - userRequestedNewAPIKeyActivation: { _ in }, - newAvailableApiKeyElements: APIKeyElements(), - userWantsToSearchWithinKeycloak: {}, - userDetailsOfKeycloakContact: nil, - contactIdentity: nil, - isConfirmAddingKeycloakViewPushed: .constant(false), - addingKeycloakContactFailedAlertIsPresented: .constant(false), - confirmAddingKeycloakContactViewAction: {}) - .environment(\.colorScheme, .dark) - .environment(\.locale, .init(identifier: "fr")) - AddContactMainInnerView(contact: identity2, - ownedCryptoId: identity.cryptoId, - urlIdentityRepresentation: URL(string: "https://olvid.io")!, - alreadyScannedOrTappedURL: nil, - viewForSharingIdentity: AnyView(Text("Placeholder view for sharing my id")), - confirmInviteAction: { _ in }, - dismissAction: {}, - installedOlvidAppIsOutdated: {}, - checkSignatureMutualScanUrl: { _ in false }, - requestNewAvailableApiKeyElements: { _ in }, - userRequestedNewAPIKeyActivation: { _ in }, - newAvailableApiKeyElements: APIKeyElements(), - userWantsToSearchWithinKeycloak: {}, - userDetailsOfKeycloakContact: nil, - contactIdentity: nil, - isConfirmAddingKeycloakViewPushed: .constant(false), - addingKeycloakContactFailedAlertIsPresented: .constant(false), - confirmAddingKeycloakContactViewAction: {}) - .environment(\.colorScheme, .dark) - .environment(\.locale, .init(identifier: "fr")) - .previewDevice(PreviewDevice(rawValue: "iPhone XS")) - AddContactMainInnerView(contact: identity2, - ownedCryptoId: identity.cryptoId, - urlIdentityRepresentation: URL(string: "https://olvid.io")!, - alreadyScannedOrTappedURL: nil, - viewForSharingIdentity: AnyView(Text("Placeholder view for sharing my id")), - confirmInviteAction: { _ in }, - dismissAction: {}, - installedOlvidAppIsOutdated: {}, - checkSignatureMutualScanUrl: { _ in false }, - requestNewAvailableApiKeyElements: { _ in }, - userRequestedNewAPIKeyActivation: { _ in }, - newAvailableApiKeyElements: APIKeyElements(), - userWantsToSearchWithinKeycloak: {}, - userDetailsOfKeycloakContact: nil, - contactIdentity: nil, - isConfirmAddingKeycloakViewPushed: .constant(false), - addingKeycloakContactFailedAlertIsPresented: .constant(false), - confirmAddingKeycloakContactViewAction: {}) - .environment(\.sizeCategory, .accessibilityExtraExtraExtraLarge) - .previewLayout(.fixed(width: 320, height: 568)) - } - } -} +//struct AddContactMainInnerView_Previews: PreviewProvider { +// +// private static let identity1 = SingleIdentity(firstName: "Joyce", +// lastName: "Lathrop", +// position: "Happiness manager", +// company: "Olvid", +// isKeycloakManaged: false, +// showGreenShield: false, +// showRedShield: false, +// identityColors: nil, +// photoURL: nil) +// +// private static let identity2 = SingleIdentity(firstName: "Joyce", +// lastName: "Lathrop", +// position: "Happiness manager", +// company: "Olvid", +// isKeycloakManaged: false, +// showGreenShield: false, +// showRedShield: false, +// identityColors: nil, +// photoURL: nil) +// +// private static let identityAsURL = URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")! +// +// private static let identity = ObvURLIdentity(urlRepresentation: identityAsURL)! +// +// static var previews: some View { +// Group { +// AddContactMainInnerView(contact: identity2, +// ownedCryptoId: identity.cryptoId, +// urlIdentityRepresentation: URL(string: "https://olvid.io")!, +// alreadyScannedOrTappedURL: nil, +// viewForSharingIdentity: AnyView(Text("Placeholder view for sharing my id")), +// confirmInviteAction: { _ in }, +// dismissAction: {}, +// installedOlvidAppIsOutdated: {}, +// checkSignatureMutualScanUrl: { _ in false }, +// requestNewAvailableApiKeyElements: { _ in }, +// userRequestedNewAPIKeyActivation: { _ in }, +// newAvailableApiKeyElements: APIKeyElements(), +// userWantsToSearchWithinKeycloak: {}, +// userDetailsOfKeycloakContact: nil, +// contactIdentity: nil, +// isConfirmAddingKeycloakViewPushed: .constant(false), +// addingKeycloakContactFailedAlertIsPresented: .constant(false), +// confirmAddingKeycloakContactViewAction: {}) +// AddContactMainInnerView(contact: identity1, +// ownedCryptoId: identity.cryptoId, +// urlIdentityRepresentation: URL(string: "https://olvid.io")!, +// alreadyScannedOrTappedURL: nil, +// viewForSharingIdentity: AnyView(Text("Placeholder view for sharing my id")), +// confirmInviteAction: { _ in }, +// dismissAction: {}, +// installedOlvidAppIsOutdated: {}, +// checkSignatureMutualScanUrl: { _ in false }, +// requestNewAvailableApiKeyElements: { _ in }, +// userRequestedNewAPIKeyActivation: { _ in }, +// newAvailableApiKeyElements: APIKeyElements(), +// userWantsToSearchWithinKeycloak: {}, +// userDetailsOfKeycloakContact: nil, +// contactIdentity: nil, +// isConfirmAddingKeycloakViewPushed: .constant(false), +// addingKeycloakContactFailedAlertIsPresented: .constant(false), +// confirmAddingKeycloakContactViewAction: {}) +// .environment(\.colorScheme, .dark) +// AddContactMainInnerView(contact: identity2, +// ownedCryptoId: identity.cryptoId, +// urlIdentityRepresentation: URL(string: "https://olvid.io")!, +// alreadyScannedOrTappedURL: nil, +// viewForSharingIdentity: AnyView(Text("Placeholder view for sharing my id")), +// confirmInviteAction: { _ in }, +// dismissAction: {}, +// installedOlvidAppIsOutdated: {}, +// checkSignatureMutualScanUrl: { _ in false }, +// requestNewAvailableApiKeyElements: { _ in }, +// userRequestedNewAPIKeyActivation: { _ in }, +// newAvailableApiKeyElements: APIKeyElements(), +// userWantsToSearchWithinKeycloak: {}, +// userDetailsOfKeycloakContact: nil, +// contactIdentity: nil, +// isConfirmAddingKeycloakViewPushed: .constant(false), +// addingKeycloakContactFailedAlertIsPresented: .constant(false), +// confirmAddingKeycloakContactViewAction: {}) +// .environment(\.colorScheme, .dark) +// AddContactMainInnerView(contact: identity2, +// ownedCryptoId: identity.cryptoId, +// urlIdentityRepresentation: URL(string: "https://olvid.io")!, +// alreadyScannedOrTappedURL: nil, +// viewForSharingIdentity: AnyView(Text("Placeholder view for sharing my id")), +// confirmInviteAction: { _ in }, +// dismissAction: {}, +// installedOlvidAppIsOutdated: {}, +// checkSignatureMutualScanUrl: { _ in false }, +// requestNewAvailableApiKeyElements: { _ in }, +// userRequestedNewAPIKeyActivation: { _ in }, +// newAvailableApiKeyElements: APIKeyElements(), +// userWantsToSearchWithinKeycloak: {}, +// userDetailsOfKeycloakContact: nil, +// contactIdentity: nil, +// isConfirmAddingKeycloakViewPushed: .constant(false), +// addingKeycloakContactFailedAlertIsPresented: .constant(false), +// confirmAddingKeycloakContactViewAction: {}) +// .environment(\.colorScheme, .dark) +// .environment(\.locale, .init(identifier: "fr")) +// AddContactMainInnerView(contact: identity2, +// ownedCryptoId: identity.cryptoId, +// urlIdentityRepresentation: URL(string: "https://olvid.io")!, +// alreadyScannedOrTappedURL: nil, +// viewForSharingIdentity: AnyView(Text("Placeholder view for sharing my id")), +// confirmInviteAction: { _ in }, +// dismissAction: {}, +// installedOlvidAppIsOutdated: {}, +// checkSignatureMutualScanUrl: { _ in false }, +// requestNewAvailableApiKeyElements: { _ in }, +// userRequestedNewAPIKeyActivation: { _ in }, +// newAvailableApiKeyElements: APIKeyElements(), +// userWantsToSearchWithinKeycloak: {}, +// userDetailsOfKeycloakContact: nil, +// contactIdentity: nil, +// isConfirmAddingKeycloakViewPushed: .constant(false), +// addingKeycloakContactFailedAlertIsPresented: .constant(false), +// confirmAddingKeycloakContactViewAction: {}) +// .environment(\.colorScheme, .dark) +// .environment(\.locale, .init(identifier: "fr")) +// .previewDevice(PreviewDevice(rawValue: "iPhone XS")) +// AddContactMainInnerView(contact: identity2, +// ownedCryptoId: identity.cryptoId, +// urlIdentityRepresentation: URL(string: "https://olvid.io")!, +// alreadyScannedOrTappedURL: nil, +// viewForSharingIdentity: AnyView(Text("Placeholder view for sharing my id")), +// confirmInviteAction: { _ in }, +// dismissAction: {}, +// installedOlvidAppIsOutdated: {}, +// checkSignatureMutualScanUrl: { _ in false }, +// requestNewAvailableApiKeyElements: { _ in }, +// userRequestedNewAPIKeyActivation: { _ in }, +// newAvailableApiKeyElements: APIKeyElements(), +// userWantsToSearchWithinKeycloak: {}, +// userDetailsOfKeycloakContact: nil, +// contactIdentity: nil, +// isConfirmAddingKeycloakViewPushed: .constant(false), +// addingKeycloakContactFailedAlertIsPresented: .constant(false), +// confirmAddingKeycloakContactViewAction: {}) +// .environment(\.sizeCategory, .accessibilityExtraExtraExtraLarge) +// .previewLayout(.fixed(width: 320, height: 568)) +// } +// } +//} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/BetaConfigurationActivationView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/BetaConfigurationActivationView.swift index fdd3332f..303c8197 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/BetaConfigurationActivationView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/BetaConfigurationActivationView.swift @@ -22,6 +22,8 @@ import ObvTypes import ObvUI import SwiftUI import ObvUICoreData +import ObvSettings +import ObvDesignSystem struct BetaConfigurationActivationView: View { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/ConfirmAddContactView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/ConfirmAddContactView.swift index d12a065e..4d5a0fe5 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/ConfirmAddContactView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/ConfirmAddContactView.swift @@ -22,6 +22,7 @@ import ObvTypes import ObvEngine import ObvUI import ObvUICoreData +import ObvDesignSystem struct ConfirmAddContactView: View { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/ConfirmAddingKeycloakContactView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/ConfirmAddingKeycloakContactView.swift index a1b95011..553ec37c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/ConfirmAddingKeycloakContactView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/ConfirmAddingKeycloakContactView.swift @@ -21,6 +21,8 @@ import SwiftUI import ObvTypes import ObvUI import ObvUICoreData +import ObvDesignSystem + struct ConfirmAddingKeycloakContactView: View { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/KeycloakBinding/BindingShowIdentityView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/KeycloakBinding/BindingShowIdentityView.swift index c4f2abe2..45c67fb4 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/KeycloakBinding/BindingShowIdentityView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/KeycloakBinding/BindingShowIdentityView.swift @@ -22,6 +22,7 @@ import ObvTypes import ObvEngine import ObvUI import ObvUICoreData +import ObvDesignSystem struct BindingShowIdentityView: View { @@ -89,9 +90,9 @@ struct BindingShowIdentityInnerView: View { @State private var hudCategory: HUDView.Category? @State private var switchingToManagedIdFailed = false - private var circledTextView: Text? { + private var circledText: String? { if let descriptiveCharacter = self.descriptiveCharacter { - return Text(descriptiveCharacter) + return descriptiveCharacter } else { return nil } @@ -108,23 +109,56 @@ struct BindingShowIdentityInnerView: View { hudCategory = .progress } userWantsToBindOwnedIdentityToKeycloak { success in - assert(Thread.isMainThread) - if success { - withAnimation { - hudCategory = .checkmark - } - DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(1)) { - dismissAction() - } - } else { - withAnimation { - hudCategory = nil - switchingToManagedIdFailed = true + DispatchQueue.main.async { + if success { + withAnimation { + hudCategory = .checkmark + } + DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(1)) { + dismissAction() + } + } else { + withAnimation { + hudCategory = nil + switchingToManagedIdFailed = true + } } } } } + private var textViewModel: TextView.Model { + .init(titlePart1: firstName, + titlePart2: lastName, + subtitle: position, + subsubtitle: company) + } + + private var profilePictureViewModelContent: ProfilePictureView.Model.Content { + .init(text: descriptiveCharacter, + icon: .person, + profilePicture: profilePicture, + showGreenShield: true, + showRedShield: false) + } + + private var circleAndTitlesViewModelContent: CircleAndTitlesView.Model.Content { + .init(textViewModel: textViewModel, + profilePictureViewModelContent: profilePictureViewModelContent) + } + + private var initialCircleViewModelColors: InitialCircleView.Model.Colors { + .init(background: circleBackgroundColor, + foreground: circleTextColor) + } + + private var circleAndTitlesViewModel: CircleAndTitlesView.Model { + .init(content: circleAndTitlesViewModelContent, + colors: initialCircleViewModelColors, + displayMode: .normal, + editionMode: .none) + } + var body: some View { ZStack { @@ -135,20 +169,7 @@ struct BindingShowIdentityInnerView: View { ObvCardView { VStack(spacing: 16) { HStack { - CircleAndTitlesView( - titlePart1: firstName, - titlePart2: lastName, - subtitle: position, - subsubtitle: company, - circleBackgroundColor: circleBackgroundColor, - circleTextColor: circleTextColor, - circledTextView: circledTextView, - systemImage: .person, - profilePicture: profilePicture, - showGreenShield: true, - showRedShield: false, - editionMode: .none, - displayMode: .normal) + CircleAndTitlesView(model: circleAndTitlesViewModel) Spacer() } OlvidButton( diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/KeycloakBinding/BindingUseIdentityProviderView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/KeycloakBinding/BindingUseIdentityProviderView.swift index 008093b1..ea200331 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/KeycloakBinding/BindingUseIdentityProviderView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/KeycloakBinding/BindingUseIdentityProviderView.swift @@ -22,6 +22,7 @@ import ObvEngine import ObvTypes import os.log import ObvUI +import ObvDesignSystem final class KeycloakBindingStore { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/KeycloakSearchView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/KeycloakSearchView.swift index ccd75efa..19a04837 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/KeycloakSearchView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/KeycloakSearchView.swift @@ -25,6 +25,7 @@ import ObvEngine import Combine import ObvUICoreData import ObvUI +import ObvDesignSystem protocol KeycloakSearchViewControllerDelegate: AnyObject { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/LicenseActivationView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/LicenseActivationView.swift deleted file mode 100644 index 77bc5cd1..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/LicenseActivationView.swift +++ /dev/null @@ -1,260 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import SwiftUI -import ObvTypes -import ObvEngine -import ObvUI -import ObvUICoreData - -struct LicenseActivationView: View { - - let ownedCryptoId: ObvCryptoId - let serverAndAPIKey: ServerAndAPIKey - let currentApiKeyStatus: APIKeyStatus - let currentApiKeyExpirationDate: Date? - let ownedIdentityIsKeycloakManaged: Bool - - let requestNewAvailableApiKeyElements: (UUID) -> Void - let userRequestedNewAPIKeyActivation: (UUID) -> Void - @ObservedObject var newAvailableApiKeyElements: APIKeyElements - - @State private var serverAndAPIKeyIncompatibleWithOwnServer = false - - let dismissAction: () -> Void - - @State private var isNewAPIActivationInProgress = false - - var body: some View { - ZStack { - Color(AppTheme.shared.colorScheme.systemBackground) - .edgesIgnoringSafeArea(.all) - ScrollView { - if ownedIdentityIsKeycloakManaged { - UnableToActivateLicenseView(category: .ownedIdentityIsKeycloakManaged, dismissAction: dismissAction) - } else if serverAndAPIKeyIncompatibleWithOwnServer { - UnableToActivateLicenseView(category: .serverAndAPIKeyIncompatibleWithOwnServer, dismissAction: dismissAction) - } else { - VStack(alignment: .leading, spacing: 16) { - if let newAvailableApiKeyStatus = self.newAvailableApiKeyElements.apiKeyStatus { - SubscriptionStatusView(title: Text("NEW_LICENSE_TO_ACTIVATE"), - apiKeyStatus: newAvailableApiKeyStatus, - apiKeyExpirationDate: newAvailableApiKeyElements.apiKeyExpirationDate, - showSubscriptionPlansButton: false, - subscriptionPlanAction: {}, - showRefreshStatusButton: false, - refreshStatusAction: {}) - if newAvailableApiKeyStatus.canBeActivated || ObvMessengerSettings.Subscription.allowAPIKeyActivationWithBadKeyStatus { - OlvidButton(style: .blue, title: Text("ACTIVATE_NEW_LICENSE"), systemIcon: .checkmarkSealFill) { - isNewAPIActivationInProgress = true - userRequestedNewAPIKeyActivation(serverAndAPIKey.apiKey) - - }.disabled(isNewAPIActivationInProgress) - } - OlvidButton(style: .standard, title: Text("Cancel"), systemIcon: .xmarkCircleFill, action: dismissAction) - } else { - HStack { - Spacer() - if #available(iOS 14.0, *) { - ProgressView("Looking for the new license") - } else { - ObvActivityIndicator(isAnimating: .constant(true), style: .large, color: nil) - } - Spacer() - }.padding(.top) - } - SubscriptionStatusView(title: Text("CURRENT_LICENSE_STATUS"), - apiKeyStatus: currentApiKeyStatus, - apiKeyExpirationDate: currentApiKeyExpirationDate, - showSubscriptionPlansButton: false, - subscriptionPlanAction: {}, - showRefreshStatusButton: false, - refreshStatusAction: {}) - .padding(.top, 40) - Spacer() - } - .padding() - } - }.disabled(isNewAPIActivationInProgress) - if isNewAPIActivationInProgress { - if !newAvailableApiKeyElements.activated { - HUDView(category: .progress) - } else { - HUDView(category: .checkmark) - .onAppear(perform: { - DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(1)) { - dismissAction() - }}) - } - } - } - .navigationBarTitle(Text("License activation"), displayMode: .inline) - .onAppear(perform: { - DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(600)) { - if ownedCryptoId.belongsTo(serverURL: serverAndAPIKey.server) { - requestNewAvailableApiKeyElements(serverAndAPIKey.apiKey) - } else { - // The distribution server of the user (indicated in her identity) is incompatible with the server indicated in the licence - withAnimation { serverAndAPIKeyIncompatibleWithOwnServer = true } - } - } - }) - } -} - - -fileprivate struct UnableToActivateLicenseView: View { - - enum Category { - case ownedIdentityIsKeycloakManaged - case serverAndAPIKeyIncompatibleWithOwnServer - } - - let category: Category - let dismissAction: () -> Void - - var body: some View { - ObvCardView { - VStack(alignment: .leading, spacing: 16) { - HStack { - Image(systemIcon: .exclamationmarkCircle) - .foregroundColor(.red) - .font(.system(size: 32, weight: .medium)) - Text("UNABLE_TO_ACTIVATE_LICENSE_TITLE") - .font(.headline) - Spacer() - } - HStack { - switch category { - case .ownedIdentityIsKeycloakManaged: - Text("UNABLE_TO_ACTIVATE_LICENSE_EXPLANATION") - .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) - .font(.body) - case .serverAndAPIKeyIncompatibleWithOwnServer: - Text("UNABLE_TO_ACTIVATE_LICENSE_EXPLANATION_ALT") - .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) - .font(.body) - } - Spacer() - } - HStack { - Text("PLEASE_CONTACT_ADMIN_FOR_MORE_DETAILS") - .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) - .font(.body) - Spacer() - } - OlvidButton(style: .standard, title: Text("Cancel"), systemIcon: .xmarkCircleFill, action: dismissAction) - } - } - .padding() - } - -} - - - - - - - -struct LicenseActivationView_Previews: PreviewProvider { - - private static let identityAsURL = URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")! - private static let identity = ObvURLIdentity(urlRepresentation: identityAsURL)! - - private static let serverAndAPIKey = ServerAndAPIKey(server: URL(string: "https://olvid.io")!, apiKey: UUID()) - - private static func returnNewAPIKeyStatusAndExpirationDate(completion: (APIKeyStatus, Date) -> Void) { - completion(APIKeyStatus.valid, Date()) - } - - static var previews: some View { - Group { - NavigationView { - LicenseActivationView(ownedCryptoId: identity.cryptoId, - serverAndAPIKey: serverAndAPIKey, - currentApiKeyStatus: APIKeyStatus.free, - currentApiKeyExpirationDate: nil, - ownedIdentityIsKeycloakManaged: false, - requestNewAvailableApiKeyElements: {_ in }, - userRequestedNewAPIKeyActivation: {_ in }, - newAvailableApiKeyElements: APIKeyElements(), - dismissAction: {}) - } - NavigationView { - LicenseActivationView(ownedCryptoId: identity.cryptoId, - serverAndAPIKey: serverAndAPIKey, - currentApiKeyStatus: APIKeyStatus.unknown, - currentApiKeyExpirationDate: nil, - ownedIdentityIsKeycloakManaged: false, - requestNewAvailableApiKeyElements: {_ in }, - userRequestedNewAPIKeyActivation: {_ in }, - newAvailableApiKeyElements: APIKeyElements(apiKey: UUID(), apiKeyStatus: APIKeyStatus.valid, apiKeyExpirationDate: Date()), - dismissAction: {}) - } - NavigationView { - LicenseActivationView(ownedCryptoId: identity.cryptoId, - serverAndAPIKey: serverAndAPIKey, - currentApiKeyStatus: APIKeyStatus.free, - currentApiKeyExpirationDate: nil, - ownedIdentityIsKeycloakManaged: false, - requestNewAvailableApiKeyElements: {_ in }, - userRequestedNewAPIKeyActivation: {_ in }, - newAvailableApiKeyElements: APIKeyElements(), - dismissAction: {}) - } - .environment(\.colorScheme, .dark) - NavigationView { - LicenseActivationView(ownedCryptoId: identity.cryptoId, - serverAndAPIKey: serverAndAPIKey, - currentApiKeyStatus: APIKeyStatus.unknown, - currentApiKeyExpirationDate: nil, - ownedIdentityIsKeycloakManaged: false, - requestNewAvailableApiKeyElements: {_ in }, - userRequestedNewAPIKeyActivation: {_ in }, - newAvailableApiKeyElements: APIKeyElements(apiKey: UUID(), apiKeyStatus: APIKeyStatus.valid, apiKeyExpirationDate: Date()), - dismissAction: {}) - } - .environment(\.colorScheme, .dark) - NavigationView { - LicenseActivationView(ownedCryptoId: identity.cryptoId, - serverAndAPIKey: serverAndAPIKey, - currentApiKeyStatus: APIKeyStatus.freeTrial, - currentApiKeyExpirationDate: nil, - ownedIdentityIsKeycloakManaged: false, - requestNewAvailableApiKeyElements: {_ in }, - userRequestedNewAPIKeyActivation: {_ in }, - newAvailableApiKeyElements: APIKeyElements(apiKey: UUID(), apiKeyStatus: APIKeyStatus.valid, apiKeyExpirationDate: Date()), - dismissAction: {}) - } - .environment(\.colorScheme, .dark) - NavigationView { - LicenseActivationView(ownedCryptoId: identity.cryptoId, - serverAndAPIKey: serverAndAPIKey, - currentApiKeyStatus: APIKeyStatus.freeTrial, - currentApiKeyExpirationDate: nil, - ownedIdentityIsKeycloakManaged: true, - requestNewAvailableApiKeyElements: {_ in }, - userRequestedNewAPIKeyActivation: {_ in }, - newAvailableApiKeyElements: APIKeyElements(apiKey: UUID(), apiKeyStatus: APIKeyStatus.valid, apiKeyExpirationDate: Date()), - dismissAction: {}) - } - } - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/LicenseActivationView/LicenseActivationView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/LicenseActivationView/LicenseActivationView.swift new file mode 100644 index 00000000..0e33480f --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/LicenseActivationView/LicenseActivationView.swift @@ -0,0 +1,428 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvTypes +import ObvEngine +import ObvUI +import ObvUICoreData +import OlvidUtils +import ObvSettings +import ObvDesignSystem + + +protocol LicenseActivationViewModelProtocol: ObservableObject { + associatedtype OwnedIdentityModel: LicenseActivationViewModelOwnedIdentityModelProtocol + var ownedIdentity: OwnedIdentityModel { get } + var serverAndAPIKey: ServerAndAPIKey { get } +} + + +protocol LicenseActivationViewModelOwnedIdentityModelProtocol: ObservableObject { + var ownedCryptoId: ObvCryptoId { get } + var isKeycloakManaged: Bool { get } + var currentAPIKeyElements: ObvTypes.APIKeyElements { get } + var isActive: Bool { get } +} + + +protocol LicenseActivationViewActionsDelegate { + func userWantsToDismissLicenseActivationView() + func userWantsToRegisterAPIKey(ownedCryptoId: ObvCryptoId, apiKey: UUID) async throws + func userWantsToQueryServerForAPIKeyElements(ownedCryptoId: ObvCryptoId, apiKey: UUID) async throws -> ObvTypes.APIKeyElements +} + + +struct LicenseActivationView: View { + + @ObservedObject var model: Model + let actions: LicenseActivationViewActionsDelegate + + + @State private var apiKeyElementsFetchedFromServer: ObvTypes.APIKeyElements? + @State private var isAPIKeyActivationInProgress = false + @State private var shownHUDViewCategory: HUDView.Category? + @State private var isQueryingAPIKeyElementsFromServer = false + @State private var queryingAPIKeyElementsFromServerDidFail = false + @State private var isAPIKeyActivated = false + + + private var apiKeyServerIsCompatibleWithOwnedIdentityServer: Bool { + model.ownedIdentity.ownedCryptoId.belongsTo(serverURL: model.serverAndAPIKey.server) + } + + + @MainActor + private func userWantsToActivateNewLicense() async { + + guard !isAPIKeyActivationInProgress else { return } + withAnimation { isAPIKeyActivationInProgress = true } + defer { withAnimation { isAPIKeyActivationInProgress = false } } + + let ownedCryptoId = model.ownedIdentity.ownedCryptoId + let apiKey = model.serverAndAPIKey.apiKey + + withAnimation { shownHUDViewCategory = .progress } + + var success: Bool + do { + try await actions.userWantsToRegisterAPIKey(ownedCryptoId: ownedCryptoId, apiKey: apiKey) + withAnimation { shownHUDViewCategory = .checkmark } + success = true + } catch { + withAnimation { shownHUDViewCategory = .xmark } + success = false + } + await suspendDuringTimeInterval(2) + withAnimation { + shownHUDViewCategory = nil + isAPIKeyActivated = success + } + } + + + private func activateNewLicenseNow() { + Task { await userWantsToActivateNewLicense() } + } + + @MainActor + private func userWantsToQueryAPIKeyElementsFromServer() async { + do { + let apiKeyElements = try await actions.userWantsToQueryServerForAPIKeyElements(ownedCryptoId: model.ownedIdentity.ownedCryptoId, apiKey: model.serverAndAPIKey.apiKey) + withAnimation { + apiKeyElementsFetchedFromServer = apiKeyElements + } + } catch { + withAnimation { + queryingAPIKeyElementsFromServerDidFail = true + } + } + } + + + private func queryAPIKeyElementsFromServer() { + guard !isQueryingAPIKeyElementsFromServer else { return } + isQueryingAPIKeyElementsFromServer = true + Task { await userWantsToQueryAPIKeyElementsFromServer() } + } + + + private var showCancelButton: Bool { + if apiKeyElementsFetchedFromServer == nil { + return !queryingAPIKeyElementsFromServerDidFail + } else { + return !model.ownedIdentity.isKeycloakManaged && model.ownedIdentity.isActive && apiKeyServerIsCompatibleWithOwnedIdentityServer + } + } + + + var body: some View { + ZStack { + + Color(AppTheme.shared.colorScheme.systemBackground) + .edgesIgnoringSafeArea(.all) + + ScrollView { + + VStack { + + if !isAPIKeyActivated { + + if let apiKeyElementsFetchedFromServer { + + SubscriptionStatusView(title: Text("NEW_LICENSE_TO_ACTIVATE"), + apiKeyStatus: apiKeyElementsFetchedFromServer.status, + apiKeyExpirationDate: apiKeyElementsFetchedFromServer.expirationDate, + showSubscriptionPlansButton: false, + userWantsToSeeSubscriptionPlans: {}, + showRefreshStatusButton: false, + refreshStatusAction: {}, + apiPermissions: apiKeyElementsFetchedFromServer.permissions) + + if !model.ownedIdentity.isActive { + + UnableToActivateLicenseView(category: .ownedIdentityIsInactive, dismissAction: actions.userWantsToDismissLicenseActivationView) + + } else if model.ownedIdentity.isKeycloakManaged { + + UnableToActivateLicenseView(category: .ownedIdentityIsKeycloakManaged, dismissAction: actions.userWantsToDismissLicenseActivationView) + + } else if !apiKeyServerIsCompatibleWithOwnedIdentityServer { + + UnableToActivateLicenseView(category: .serverAndAPIKeyIncompatibleWithOwnServer, dismissAction: actions.userWantsToDismissLicenseActivationView) + + } else if apiKeyElementsFetchedFromServer.status.canBeActivated || ObvMessengerSettings.Subscription.allowAPIKeyActivationWithBadKeyStatus || ObvMessengerConstants.developmentMode { + + OlvidButton(style: .blue, title: Text("ACTIVATE_NEW_LICENSE"), systemIcon: .checkmarkSealFill, action: activateNewLicenseNow) + .disabled(isAPIKeyActivationInProgress) + + } + + } else if queryingAPIKeyElementsFromServerDidFail { + + UnableToActivateLicenseView(category: .queryingAPIKeyElementsFromServerDidFail, dismissAction: actions.userWantsToDismissLicenseActivationView) + + } else { + + HStack { + Spacer() + ProgressView("Looking for the new license") + Spacer() + } + .padding(.vertical, 32) + .onAppear(perform: queryAPIKeyElementsFromServer) + + } + + if showCancelButton { + + OlvidButton(style: .standard, title: Text("Cancel"), systemIcon: .xmarkCircleFill, action: actions.userWantsToDismissLicenseActivationView) + + } + + } + + SubscriptionStatusView(title: Text("CURRENT_LICENSE_STATUS"), + apiKeyStatus: model.ownedIdentity.currentAPIKeyElements.status, + apiKeyExpirationDate: model.ownedIdentity.currentAPIKeyElements.expirationDate, + showSubscriptionPlansButton: false, + userWantsToSeeSubscriptionPlans: {}, + showRefreshStatusButton: false, + refreshStatusAction: {}, + apiPermissions: model.ownedIdentity.currentAPIKeyElements.permissions) + .padding(.top, 32) + + if isAPIKeyActivated { + OlvidButton(style: .blue, title: Text("Ok"), systemIcon: .checkmarkCircle, action: actions.userWantsToDismissLicenseActivationView) + } + + }.padding(.horizontal) + + } // End of ScrollView + + if let shownHUDViewCategory { + HUDView(category: shownHUDViewCategory) + } + + }.onAppear(perform: queryAPIKeyElementsFromServer) + + } + +} + + + +fileprivate struct UnableToActivateLicenseView: View { + + enum Category { + case ownedIdentityIsKeycloakManaged + case serverAndAPIKeyIncompatibleWithOwnServer + case queryingAPIKeyElementsFromServerDidFail + case ownedIdentityIsInactive + } + + let category: Category + let dismissAction: () -> Void + + var body: some View { + ObvCardView { + VStack(alignment: .leading, spacing: 16) { + HStack { + Image(systemIcon: .exclamationmarkCircle) + .foregroundColor(.red) + .font(.system(size: 32, weight: .medium)) + Text("UNABLE_TO_ACTIVATE_LICENSE_TITLE") + .font(.headline) + Spacer() + } + HStack { + switch category { + case .ownedIdentityIsKeycloakManaged: + Text("UNABLE_TO_ACTIVATE_LICENSE_EXPLANATION") + .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) + .font(.body) + case .serverAndAPIKeyIncompatibleWithOwnServer: + Text("UNABLE_TO_ACTIVATE_LICENSE_EXPLANATION_ALT") + .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) + .font(.body) + case .queryingAPIKeyElementsFromServerDidFail: + Text("COULD_NOT_QUERY_SERVER_FOR_API_KEY_ELEMENTS") + .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) + .font(.body) + case .ownedIdentityIsInactive: + Text("UNABLE_TO_ACTIVATE_LICENSE_EXPLANATION_OWNED_IDENTITY_INACTIVE") + .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) + .font(.body) + } + Spacer() + } + switch category { + case .ownedIdentityIsKeycloakManaged: + HStack { + Text("PLEASE_CONTACT_ADMIN_FOR_MORE_DETAILS") + .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) + .font(.body) + Spacer() + } + case .serverAndAPIKeyIncompatibleWithOwnServer, + .queryingAPIKeyElementsFromServerDidFail, + .ownedIdentityIsInactive: + EmptyView() + } + OlvidButton(style: .standard, title: Text("Cancel"), systemIcon: .xmarkCircleFill, action: dismissAction) + } + } + } + +} + + + +struct LicenseActivationView_Previews: PreviewProvider { + + + fileprivate final class ModelForPreviews: LicenseActivationViewModelProtocol { + + final class OwnedIdentityModelForPreviews: LicenseActivationViewModelOwnedIdentityModelProtocol { + let ownedCryptoId: ObvCryptoId + let isKeycloakManaged: Bool + let currentAPIKeyElements: ObvTypes.APIKeyElements + let isActive: Bool + init(ownedCryptoId: ObvCryptoId, isActive: Bool, isKeycloakManaged: Bool, currentAPIKeyElements: ObvTypes.APIKeyElements) { + self.ownedCryptoId = ownedCryptoId + self.isActive = isActive + self.isKeycloakManaged = isKeycloakManaged + self.currentAPIKeyElements = currentAPIKeyElements + } + } + + let ownedIdentity: OwnedIdentityModelForPreviews + let serverAndAPIKey: ServerAndAPIKey + init(ownedIdentity: OwnedIdentityModelForPreviews, serverAndAPIKey: ServerAndAPIKey) { + self.ownedIdentity = ownedIdentity + self.serverAndAPIKey = serverAndAPIKey + } + } + + private static let identityAsURL = URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")! + private static let ownedCryptoId = ObvURLIdentity(urlRepresentation: identityAsURL)!.cryptoId + + private static let apiKeyGoodServer = URL(string: "https://server.dev.olvid.io")! + private static let apiKeyWrongServer = URL(string: "https://wrong.olvid.io")! + private static let apiKey = UUID() + + fileprivate static let currentAPIKeyElements = ObvTypes.APIKeyElements(status: .freeTrial, permissions: [.canCall], expirationDate: Date(timeIntervalSinceNow: .init(days: 5))) + + fileprivate static let ownedIdentityModels: [ModelForPreviews.OwnedIdentityModelForPreviews] = [ + ModelForPreviews.OwnedIdentityModelForPreviews( + ownedCryptoId: ownedCryptoId, + isActive: true, + isKeycloakManaged: false, + currentAPIKeyElements: currentAPIKeyElements), + ModelForPreviews.OwnedIdentityModelForPreviews( + ownedCryptoId: ownedCryptoId, + isActive: true, + isKeycloakManaged: true, + currentAPIKeyElements: currentAPIKeyElements), + ModelForPreviews.OwnedIdentityModelForPreviews( + ownedCryptoId: ownedCryptoId, + isActive: false, + isKeycloakManaged: false, + currentAPIKeyElements: currentAPIKeyElements), + ] + + fileprivate static let models: [ModelForPreviews] = [ + ModelForPreviews( + ownedIdentity: ownedIdentityModels[0], + serverAndAPIKey: .init(server: apiKeyGoodServer, apiKey: apiKey)), + ModelForPreviews( + ownedIdentity: ownedIdentityModels[1], + serverAndAPIKey: .init(server: apiKeyGoodServer, apiKey: apiKey)), + ModelForPreviews( + ownedIdentity: ownedIdentityModels[0], + serverAndAPIKey: .init(server: apiKeyWrongServer, apiKey: apiKey)), + ModelForPreviews( + ownedIdentity: ownedIdentityModels[2], + serverAndAPIKey: .init(server: apiKeyGoodServer, apiKey: apiKey)), + ] + + private struct Actions: LicenseActivationViewActionsDelegate { + + let simulateFailToQueryServerForAPIKeyElements: Bool + + @MainActor + func userWantsToQueryServerForAPIKeyElements(ownedCryptoId: ObvTypes.ObvCryptoId, apiKey: UUID) async throws -> ObvTypes.APIKeyElements { + await TaskUtils.suspendDuringTimeInterval(2) + if simulateFailToQueryServerForAPIKeyElements { + throw NSError(domain: "LicenseActivationViewActionsDelegate", code: 0) + } else { + return .init(status: .valid, permissions: [.multidevice, .canCall], expirationDate: .init(timeIntervalSinceNow: .init(days: 10))) + } + } + + func userWantsToDismissLicenseActivationView() {} + + func userWantsToRegisterAPIKey(ownedCryptoId: ObvTypes.ObvCryptoId, apiKey: UUID) async throws { + await TaskUtils.suspendDuringTimeInterval(2) + } + + } + + private static let actions: [Actions] = [ + Actions(simulateFailToQueryServerForAPIKeyElements: false), + Actions(simulateFailToQueryServerForAPIKeyElements: true), + ] + + static var previews: some View { + + Group { + NavigationView { + LicenseActivationView( + model: models[0], + actions: actions[0]) + } + .previewDisplayName("Simulate successful fetch of API key elements") + NavigationView { + LicenseActivationView( + model: models[0], + actions: actions[1]) + } + .previewDisplayName("Simulate failed fetch of API key elements") + NavigationView { + LicenseActivationView( + model: models[1], + actions: actions[0]) + } + .previewDisplayName("Failure (keycloak managed)") + NavigationView { + LicenseActivationView( + model: models[2], + actions: actions[0]) + } + .previewDisplayName("Failure (bad server URL)") + NavigationView { + LicenseActivationView( + model: models[3], + actions: actions[0]) + } + .previewDisplayName("Failure (inactive owned identity)") + } + } + +} diff --git a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/QueryApiKeyStatusDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/LicenseActivationView/ViewModelsForCoreDataEntities/PersistedObvOwnedIdentity+LicenseActivationViewModelOwnedIdentityModelProtocol.swift similarity index 74% rename from Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/QueryApiKeyStatusDelegate.swift rename to iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/LicenseActivationView/ViewModelsForCoreDataEntities/PersistedObvOwnedIdentity+LicenseActivationViewModelOwnedIdentityModelProtocol.swift index 47378175..556c202f 100644 --- a/Engine/ObvNetworkFetchManager/ObvNetworkFetchManager/InternalDelegates/QueryApiKeyStatusDelegate.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/LicenseActivationView/ViewModelsForCoreDataEntities/PersistedObvOwnedIdentity+LicenseActivationViewModelOwnedIdentityModelProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -18,12 +18,12 @@ */ import Foundation +import ObvUICoreData import ObvTypes -import ObvCrypto -import OlvidUtils -protocol QueryApiKeyStatusDelegate: AnyObject { - - func queryAPIKeyStatus(for identity: ObvCryptoIdentity, apiKey: UUID, flowId: FlowIdentifier) +extension PersistedObvOwnedIdentity: LicenseActivationViewModelOwnedIdentityModelProtocol { + var currentAPIKeyElements: ObvTypes.APIKeyElements { + self.apiKeyElements + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/ScannerView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/ScannerView.swift index a2254366..0baf5f92 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/ScannerView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/ScannerView.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,12 +20,12 @@ import SwiftUI import AVFoundation import os.log -import ObvUI +import ObvDesignSystem protocol ScannerHostingViewDelegate: AnyObject { - func scannerViewActionButtonWasTapped() - func qrCodeWasScanned(olvidURL: OlvidURL) + func scannerViewActionButtonWasTapped() async + func qrCodeWasScanned(olvidURL: OlvidURL) async } @@ -56,11 +56,15 @@ final class ScannerHostingView: UIHostingController, ScannerViewSto // ScannerViewStoreDelegate func buttonAction() { - delegate?.scannerViewActionButtonWasTapped() + Task { [weak self] in + await self?.delegate?.scannerViewActionButtonWasTapped() + } } func qrCodeWasScanned(olvidURL: OlvidURL) { - delegate?.qrCodeWasScanned(olvidURL: olvidURL) + Task { [weak self] in + await self?.delegate?.qrCodeWasScanned(olvidURL: olvidURL) + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SendInviteOrShowSecondQRCodeView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SendInviteOrShowSecondQRCodeView.swift index 7bccb391..e0a24403 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SendInviteOrShowSecondQRCodeView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SendInviteOrShowSecondQRCodeView.swift @@ -17,13 +17,13 @@ * along with Olvid. If not, see . */ - import ObvEngine import ObvTypes import ObvUI import ObvUICoreData import SwiftUI import UI_SystemIcon +import ObvDesignSystem struct SendInviteOrShowSecondQRCodeView: View { @@ -69,9 +69,7 @@ struct SendInviteOrShowSecondQRCodeView: View { } private func useSmallScreenMode(for geometry: GeometryProxy) -> Bool { - if #available(iOS 13.4, *) { - if sizeCategory.isAccessibilityCategory { return true } - } + if sizeCategory.isAccessibilityCategory { return true } // Small screen mode for iPhone 6, iPhone 6S, iPhone 7, iPhone 8, iPhone SE (2016) return max(geometry.size.height, geometry.size.width) < 510 } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/CircleAndTitlesView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/CircleAndTitlesView.swift index e2b3599e..de8e7824 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/CircleAndTitlesView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/CircleAndTitlesView.swift @@ -20,7 +20,7 @@ import ObvUI import SwiftUI import ObvUICoreData -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials import UI_SystemIcon enum CircleAndTitlesDisplayMode { @@ -38,123 +38,121 @@ enum CircleAndTitlesEditionMode { // Note from TB on 2022-08-04: we probably should be using CircledInitialsConfiguration here struct CircleAndTitlesView: View { - private let titlePart1: String? - private let titlePart2: String? - private let subtitle: String? - private let subsubtitle: String? - private let circleBackgroundColor: UIColor? - private let circleTextColor: UIColor? - private let circledTextView: Text? - private let systemImage: CircledInitialsIcon - private let profilePicture: UIImage? - private let alignment: VerticalAlignment - private let showGreenShield: Bool - private let showRedShield: Bool - private let displayMode: CircleAndTitlesDisplayMode - private let editionMode: CircleAndTitlesEditionMode - - @State private var profilePictureFullScreenIsPresented = false + struct Model { + + struct Content { + let textViewModel: TextView.Model + let profilePictureViewModelContent: ProfilePictureView.Model.Content + + var displayNameForHeader: String { + [textViewModel.titlePart1 ?? "", textViewModel.titlePart2 ?? ""] + .joined(separator: " ") + .trimmingCharacters(in: .whitespacesAndNewlines) + } - init(titlePart1: String?, titlePart2: String?, subtitle: String?, subsubtitle: String?, circleBackgroundColor: UIColor?, circleTextColor: UIColor?, circledTextView: Text?, systemImage: CircledInitialsIcon, profilePicture: UIImage?, alignment: VerticalAlignment = .center, showGreenShield: Bool, showRedShield: Bool, editionMode: CircleAndTitlesEditionMode, displayMode: CircleAndTitlesDisplayMode) { - self.titlePart1 = titlePart1 - self.titlePart2 = titlePart2 - self.subtitle = subtitle - self.subsubtitle = subsubtitle - self.circleBackgroundColor = circleBackgroundColor - self.circleTextColor = circleTextColor - self.circledTextView = circledTextView - self.systemImage = systemImage - self.profilePicture = profilePicture - self.alignment = alignment - self.editionMode = editionMode - self.displayMode = displayMode - self.showGreenShield = showGreenShield - self.showRedShield = showRedShield - } + } + + let content: Content + let colors: InitialCircleView.Model.Colors + let alignment: VerticalAlignment + let displayMode: CircleAndTitlesDisplayMode + let editionMode: CircleAndTitlesEditionMode + + init(content: Content, colors: InitialCircleView.Model.Colors, alignment: VerticalAlignment = .center, displayMode: CircleAndTitlesDisplayMode, editionMode: CircleAndTitlesEditionMode) { + self.content = content + self.colors = colors + self.alignment = alignment + self.displayMode = displayMode + self.editionMode = editionMode + } + + var circleDiameter: CGFloat { + switch displayMode { + case .small: + return 40.0 + case .normal: + return 60.0 + case .header: + return 120.0 + } + } + + static let circledCameraButtonViewSize: CGFloat = 20.0 - private var circleDiameter: CGFloat { - switch displayMode { - case .small: - return 40.0 - case .normal: - return ProfilePictureView.circleDiameter - case .header: - return 120 + var profilePictureViewModel: ProfilePictureView.Model { + .init(content: content.profilePictureViewModelContent, + colors: colors, + circleDiameter: circleDiameter) } + } + + let model: Model - private var pictureViewInner: some View { - ProfilePictureView(profilePicture: profilePicture, circleBackgroundColor: circleBackgroundColor, circleTextColor: circleTextColor, circledTextView: circledTextView, systemImage: systemImage, showGreenShield: showGreenShield, showRedShield: showRedShield, customCircleDiameter: circleDiameter) - } + @State private var profilePictureFullScreenIsPresented = false + init(model: Model) { + self.model = model + } + private func profilePictureBinding(update: @escaping (UIImage?) -> Void) -> Binding { .init { - profilePicture + model.content.profilePictureViewModelContent.profilePicture } set: { image in update(image) } } + private var pictureView: some View { ZStack { - if #available(iOS 14.0, *) { - if case .header = displayMode { - pictureViewInner - .onTapGesture { - guard profilePicture != nil else { - profilePictureFullScreenIsPresented = false - return - } - profilePictureFullScreenIsPresented.toggle() - } - .fullScreenCover(isPresented: $profilePictureFullScreenIsPresented) { - FullScreenProfilePictureView(photo: profilePicture) - .background(BackgroundBlurView() - .edgesIgnoringSafeArea(.all)) + if case .header = model.displayMode { + ProfilePictureView(model: model.profilePictureViewModel) + .onTapGesture { + guard model.content.profilePictureViewModelContent.profilePicture != nil else { + profilePictureFullScreenIsPresented = false + return } - } else { - pictureViewInner - } + profilePictureFullScreenIsPresented.toggle() + } + .fullScreenCover(isPresented: $profilePictureFullScreenIsPresented) { + FullScreenProfilePictureView(photo: model.content.profilePictureViewModelContent.profilePicture) + .background(BackgroundBlurView() + .edgesIgnoringSafeArea(.all)) + } } else { - pictureViewInner + ProfilePictureView(model: model.profilePictureViewModel) } - switch editionMode { + switch model.editionMode { case .none: EmptyView() case .picture(let update): CircledCameraButtonView(profilePicture: profilePictureBinding(update: update)) - .offset(CGSize(width: ProfilePictureView.circleDiameter/3, height: ProfilePictureView.circleDiameter/3)) + .offset(CGSize(width: Model.circledCameraButtonViewSize, height: Model.circledCameraButtonViewSize)) case .custom(let icon, let action): Button(action: action) { CircledSymbolView(systemIcon: icon) } - .offset(CGSize(width: circleDiameter/3, height: circleDiameter/3)) + .offset(CGSize(width: model.circleDiameter/3, height: model.circleDiameter/3)) } } } - private var displayNameForHeader: String { - let _titlePart1 = titlePart1 ?? "" - let _titlePart2 = titlePart2 ?? "" - return [_titlePart1, _titlePart2].joined(separator: " ").trimmingCharacters(in: .whitespacesAndNewlines) - } - + var body: some View { - switch displayMode { + switch model.displayMode { case .normal, .small: - HStack(alignment: self.alignment, spacing: 16) { + HStack(alignment: model.alignment, spacing: 16) { pictureView - TextView(titlePart1: titlePart1, - titlePart2: titlePart2, - subtitle: subtitle, - subsubtitle: subsubtitle) + TextView(model: model.content.textViewModel) } case .header: VStack(spacing: 8) { pictureView - Text(displayNameForHeader) + Text(model.content.displayNameForHeader) .font(.system(.largeTitle, design: .rounded)) .fontWeight(.semibold) + .multilineTextAlignment(.center) } } } @@ -195,3 +193,25 @@ struct BackgroundBlurView: UIViewRepresentable { func updateUIView(_ uiView: UIView, context: Context) {} } + + +// MARK: NSManagedObjects extension + +extension PersistedObvOwnedIdentity { + + var circleAndTitlesViewModelContent: CircleAndTitlesView.Model.Content { + .init(textViewModel: self.textViewModel, + profilePictureViewModelContent: self.profilePictureViewModelContent) + } + +} + + +extension PersistedGroupV2Member { + + var circleAndTitlesViewModelContent: CircleAndTitlesView.Model.Content { + .init(textViewModel: self.textViewModel, + profilePictureViewModelContent: self.profilePictureViewModelContent) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/CircledCameraButtonView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/CircledCameraButtonView.swift index 53ca9e11..b031d9b6 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/CircledCameraButtonView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/CircledCameraButtonView.swift @@ -18,6 +18,7 @@ */ import SwiftUI +import UI_ObvImageEditor struct CircledCameraButtonView: View { @@ -39,120 +40,131 @@ struct CircledCameraButtonView: View { @Binding var profilePicture: UIImage? - @State private var activeSheet: ActiveSheet? = nil - @State private var sheetIsPresented: Bool = false // Only for iOS13 + @State private var activeSheet: ActiveSheet? @State private var pictureState: UIImage? = nil + @State private var isSheetPresented: Bool = false + @State private var isFileImporterPresented: Bool = false @State private var profilePictureMenuIsPresented: Bool = false - var profilePictureEditionActionsSheet: [ActionSheet.Button] { - var result: [ActionSheet.Button] = [] - for action in buildCameraButtonActions() { - result += [Alert.Button.default(Text(action.title), action: action.handler)] - } - result.append(Alert.Button.cancel({ profilePictureMenuIsPresented = false })) - return result + private func userTappedMenuButtonForPhotoLibrary() { + self.activeSheet = .libraryPicker + self.isSheetPresented = true + self.isFileImporterPresented = false } - private func buildCameraButtonActions() -> [ProfilePictureAction] { - var actions: [ProfilePictureAction] = [] - actions += [ProfilePictureAction(title: NSLocalizedString("CHOOSE_PICTURE", comment: "")) { - self.activeSheet = .libraryPicker - if #unavailable(iOS 14.0) { - self.sheetIsPresented = true - } - }] - if UIImagePickerController.isCameraDeviceAvailable(.front) { - actions += [ProfilePictureAction(title: NSLocalizedString("TAKE_PICTURE", comment: "")) { - self.activeSheet = .cameraPicker - if #unavailable(iOS 14.0) { - self.sheetIsPresented = true - } - }] - } - actions += [ProfilePictureAction(title: NSLocalizedString("REMOVE_PICTURE", comment: "")) { - self.profilePicture = nil - }] - return actions + + private func userTappedMenuButtonForFilesApp() { + self.activeSheet = nil + self.isSheetPresented = false + self.isFileImporterPresented = true } - var body: some View { - if #available(iOS 14.0, *) { - iOS14Body - } else { - iOS13Body - } + private func userTappedMenuButtonForCamera() { + self.activeSheet = .cameraPicker + self.isSheetPresented = true + self.isFileImporterPresented = false } - @available(iOS 14, *) - private var iOS14Body: some View { - UIButtonWrapper(title: nil, actions: buildCameraButtonActions().map { $0.toAction }) { - CircledCameraView() - } - .frame(width: 44, height: 44) - .sheet(item: $activeSheet) { item in - switch item { - case .cameraPicker: - ImagePicker(image: $pictureState, useCamera: true) { - activeSheet = .editor - } - case .libraryPicker: - ImagePicker(image: $pictureState, useCamera: false) { - activeSheet = .editor - } - case .editor: - ImageEditor(image: $pictureState) { - activeSheet = nil - if let image = pictureState { - withAnimation { - self.profilePicture = image - } - } - } + + private func userTappedMenuButtonForRemovingPicture() { + self.profilePicture = nil + self.isSheetPresented = false + self.isFileImporterPresented = false + } + + + /// Called when the file importer is dismissed. + @MainActor + private func processFileImporterResult(_ result: Result<[URL], Error>) async { + switch result { + case .success(let urls): + assert(urls.count == 1) + guard let url = urls.first else { return } + let gotAccess = url.startAccessingSecurityScopedResource() + guard gotAccess else { return } + defer { url.stopAccessingSecurityScopedResource() } + guard let image = UIImage(contentsOfFile: url.path) else { return } + withAnimation { + self.pictureState = image + self.activeSheet = .editor + self.isSheetPresented = true } + case .failure(let failure): + assertionFailure(failure.localizedDescription) } } - private var iOS13Body: some View { - Button(action: { profilePictureMenuIsPresented.toggle() }) { - CircledCameraView() + /// Called when the user taps the accept or reject button of the image editor. If the user accepted the edited image, this edited image is passed as a parameter. + @MainActor + private func userAcceptedOrRejectedEditedImage(_ editedImage: UIImage?) async { + withAnimation { + self.activeSheet = nil + self.isSheetPresented = false + if let editedImage { + self.profilePicture = editedImage + } } - .frame(width: 44, height: 44) - .actionSheet(isPresented: $profilePictureMenuIsPresented, content: { - ActionSheet(title: Text("PROFILE_PICTURE"), message: nil, buttons: profilePictureEditionActionsSheet) - }) - .sheet(isPresented: $sheetIsPresented, onDismiss: { - if activeSheet != nil && !sheetIsPresented { - DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(700)) { - sheetIsPresented = true + } + + var body: some View { + + Menu { + Button(action: userTappedMenuButtonForPhotoLibrary) { + Label("PHOTO_LIBRARY", systemIcon: .photoOnRectangleAngled) + } + Button(action: userTappedMenuButtonForFilesApp) { + Label("FILES_APP", systemIcon: .doc) + } + if UIImagePickerController.isCameraDeviceAvailable(.front) { + Button(action: userTappedMenuButtonForCamera) { + Label("TAKE_PICTURE", systemIcon: .camera(.none)) } } - }, content: { - if let item = activeSheet { - switch item { - case .cameraPicker: - ImagePicker(image: $pictureState, useCamera: true) { + Button(action: userTappedMenuButtonForRemovingPicture) { + Label("REMOVE_PICTURE", systemIcon: .trash) + } + } label: { + CircledCameraView() + .frame(width: 44, height: 44) + } + .sheet(isPresented: $isSheetPresented) { + switch activeSheet { + case .libraryPicker: + ImagePicker(image: $pictureState, useCamera: false) { + withAnimation { activeSheet = .editor - sheetIsPresented = false } - case .libraryPicker: - ImagePicker(image: $pictureState, useCamera: false) { + } + .ignoresSafeArea() + case .cameraPicker: + ImagePicker(image: $pictureState, useCamera: true) { + withAnimation { activeSheet = .editor - sheetIsPresented = false } - case .editor: - ImageEditor(image: $pictureState) { - activeSheet = nil - sheetIsPresented = false - if let image = pictureState { - withAnimation { - self.profilePicture = image - } - } + } + .ignoresSafeArea() + case .editor: + if let pictureState { + ObvImageEditorViewControllerRepresentable( + originalImage: pictureState, + showZoomButtons: false, + maxReturnedImageSize: (1080, 1080)) + { editedImage in + Task { await userAcceptedOrRejectedEditedImage(editedImage) } } + .ignoresSafeArea() } + case nil: + EmptyView() + } + } + .fileImporter( + isPresented: $isFileImporterPresented, + allowedContentTypes: [.jpeg], + allowsMultipleSelection: false) { result in + Task { await processFileImporterResult(result) } } - }) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/IdentityCardContentView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/IdentityCardContentView.swift index 5b87de79..e9cf6a78 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/IdentityCardContentView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/IdentityCardContentView.swift @@ -21,10 +21,11 @@ import SwiftUI import ObvEngine import CoreData import ObvTypes -import ObvMetaManager import Combine import ObvUI import ObvUICoreData +import ObvSettings +import ObvDesignSystem class SingleIdentity: Identifiable, Hashable, ObservableObject { @@ -173,8 +174,12 @@ class SingleIdentity: Identifiable, Hashable, ObservableObject { convenience init(keycloakDetails: (keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff)) { assert(Thread.isMainThread) let keycloakUserDetailsAndStuff = keycloakDetails.keycloakUserDetailsAndStuff - let apiKey = keycloakUserDetailsAndStuff.apiKey ?? ObvMessengerConstants.hardcodedAPIKey! - let serverAndAPIKeyToShow = ServerAndAPIKey(server: keycloakUserDetailsAndStuff.server, apiKey: apiKey) + let serverAndAPIKeyToShow: ServerAndAPIKey? + if let apiKey = keycloakUserDetailsAndStuff.apiKey { + serverAndAPIKeyToShow = ServerAndAPIKey(server: keycloakUserDetailsAndStuff.server, apiKey: apiKey) + } else { + serverAndAPIKeyToShow = nil + } self.init(firstName: keycloakUserDetailsAndStuff.firstName ?? "", lastName: keycloakUserDetailsAndStuff.lastName ?? "", position: keycloakUserDetailsAndStuff.position ?? "", @@ -225,22 +230,30 @@ class SingleIdentity: Identifiable, Hashable, ObservableObject { fileprivate func setTrustedVariables(with contact: PersistedObvContactIdentity) { let coreDetails = contact.identityCoreDetails - self.firstName = coreDetails?.firstName ?? "" - self.lastName = coreDetails?.lastName ?? "" - self.position = coreDetails?.position ?? "" - self.company = coreDetails?.company ?? "" + if self.firstName != coreDetails?.firstName ?? "" { + self.firstName = coreDetails?.firstName ?? "" + } + if self.lastName != coreDetails?.lastName ?? "" { + self.lastName = coreDetails?.lastName ?? "" + } + if self.position != coreDetails?.position ?? "" { + self.position = coreDetails?.position ?? "" + } + if self.company != coreDetails?.company ?? "" { + self.company = coreDetails?.company ?? "" + } if self.photoURL != contact.photoURL { self.photoURL = contact.photoURL } } - func circledTextView(_ components: [String?]) -> Text? { + func circledText(_ components: [String?]) -> String? { let component = components .compactMap({ $0?.trimmingCharacters(in: .whitespacesAndNewlines) }) .filter({ !$0.isEmpty }) .first if let char = component?.first { - return Text(String(char)) + return String(char) } else { return nil } @@ -318,6 +331,8 @@ protocol SingleContactIdentityDelegate: AnyObject { func userWantsToPerformAnIntroduction(forContact: SingleContactIdentity) func userWantsToDeleteContact(_ contact: SingleContactIdentity, completion: @escaping (Bool) -> Void) func userWantsToUpdateTrustedIdentityDetails(ofContact: SingleContactIdentity, usingPublishedDetails: ObvIdentityDetails) + func userWantsToNavigateToListOfContactDevicesView(_ contact: PersistedObvContactIdentity) + func userWantsToNavigateToListOfTrustOriginsView(trustOrigins: [ObvTrustOrigin]) func userWantsToNavigateToSingleGroupView(_ group: DisplayedContactGroup) func userWantsToDisplay(persistedDiscussion: PersistedDiscussion) func userWantsToEditContactNickname() @@ -337,6 +352,7 @@ final class SingleContactIdentity: SingleIdentity { @Published var contactStatus: PersistedObvContactIdentity.Status @Published var customDisplayName: String? @Published var contactHasNoDevice: Bool + @Published var atLeastOneDeviceAllowsThisContactToReceiveMessages: Bool @Published var contactIsOneToOne: Bool @Published var isActive: Bool @Published var showReblockView: Bool @@ -349,7 +365,9 @@ final class SingleContactIdentity: SingleIdentity { private var publishedPhotoURL: URL? var customPhotoURL: URL? { willSet { - self.objectWillChange.send() + DispatchQueue.main.async { [weak self] in + self?.objectWillChange.send() + } } } @@ -360,12 +378,13 @@ final class SingleContactIdentity: SingleIdentity { private let observeChangesMadeToContact: Bool /// For previews only - init(firstName: String?, lastName: String?, position: String?, company: String?, customDisplayName: String? = nil, publishedContactDetails: ObvIdentityDetails?, contactStatus: PersistedObvContactIdentity.Status, contactHasNoDevice: Bool, contactIsOneToOne: Bool, isActive: Bool, trustOrigins: [ObvTrustOrigin] = []) { + init(firstName: String?, lastName: String?, position: String?, company: String?, customDisplayName: String? = nil, publishedContactDetails: ObvIdentityDetails?, contactStatus: PersistedObvContactIdentity.Status, atLeastOneDeviceAllowsThisContactToReceiveMessages: Bool, contactHasNoDevice: Bool, contactIsOneToOne: Bool, isActive: Bool, trustOrigins: [ObvTrustOrigin] = []) { self.publishedContactDetails = publishedContactDetails self.contactStatus = contactStatus self.persistedContact = nil self.customDisplayName = customDisplayName self.contactHasNoDevice = contactHasNoDevice + self.atLeastOneDeviceAllowsThisContactToReceiveMessages = atLeastOneDeviceAllowsThisContactToReceiveMessages self.contactIsOneToOne = contactIsOneToOne self.isActive = isActive self.showReblockView = false @@ -392,6 +411,7 @@ final class SingleContactIdentity: SingleIdentity { self.customDisplayName = persistedContact.customDisplayName self.customPhotoURL = persistedContact.customPhotoURL self.contactHasNoDevice = persistedContact.devices.isEmpty + self.atLeastOneDeviceAllowsThisContactToReceiveMessages = persistedContact.atLeastOneDeviceAllowsThisContactToReceiveMessages self.contactIsOneToOne = persistedContact.isOneToOne self.isActive = persistedContact.isActive self.showReblockView = false @@ -417,6 +437,7 @@ final class SingleContactIdentity: SingleIdentity { showRedShield: !persistedContact.isActive, identityColors: persistedContact.cryptoId.colors, photoURL: persistedContact.photoURL) + observeContactChangedInViewContext() observeUpdateMadesToContactDevices() observeChangesOfCustomDisplayName() observeChangesOfCustomPhotoURL() @@ -544,12 +565,13 @@ final class SingleContactIdentity: SingleIdentity { private func observeChangesOfCustomDisplayName() { guard let persistedContact = self.persistedContact else { assertionFailure(); return } keyValueObservations.append(persistedContact.observe(\.customDisplayName) { [weak self] (_,_) in - assert(Thread.isMainThread) - guard let _self = self else { return } - withAnimation { - _self.customDisplayName = persistedContact.customDisplayName + DispatchQueue.main.async { + guard let _self = self else { return } + withAnimation { + _self.customDisplayName = persistedContact.customDisplayName + } + _self.initialHash = _self.hashValue } - _self.initialHash = _self.hashValue }) } @@ -570,34 +592,59 @@ final class SingleContactIdentity: SingleIdentity { private func observeUpdateMadesToContactDevices() { guard let persistedContact = self.persistedContact else { assertionFailure(); return } observationTokens.append(contentsOf: [ - ObvMessengerCoreDataNotification.observeDeletedPersistedObvContactDevice(queue: OperationQueue.main) { [weak self] (contactCryptoId) in - guard contactCryptoId == persistedContact.cryptoId else { return } - self?.setTrustedVariables(with: persistedContact) + ObvMessengerCoreDataNotification.observeDeletedPersistedObvContactDevice { [weak self] contactCryptoId in + DispatchQueue.main.async { + guard contactCryptoId == persistedContact.cryptoId else { return } + self?.setTrustedVariables(with: persistedContact) + } }, - ObvMessengerCoreDataNotification.observeNewPersistedObvContactDevice(queue: OperationQueue.main) { [weak self] (_, contactCryptoId) in - guard contactCryptoId == persistedContact.cryptoId else { return } - self?.setTrustedVariables(with: persistedContact) + ObvMessengerCoreDataNotification.observeNewPersistedObvContactDevice { [weak self] _, contactCryptoId in + DispatchQueue.main.async { + guard contactCryptoId == persistedContact.cryptoId else { return } + self?.setTrustedVariables(with: persistedContact) + } + }, + ObvMessengerCoreDataNotification.observeASecureChannelWithContactDeviceWasJustCreated { [weak self] persistedDeviceObjectID in + DispatchQueue.main.async { + guard persistedContact.devices.map({ $0.typedObjectID }).contains(where: { $0 == persistedDeviceObjectID }) else { return } + self?.setTrustedVariables(with: persistedContact) + } }, ]) } + private func observeContactChangedInViewContext() { + let NotificationName = Notification.Name.NSManagedObjectContextObjectsDidChange + observationTokens.append(NotificationCenter.default.addObserver(forName: NotificationName, object: nil, queue: nil) { [weak self] (notification) in + guard Thread.isMainThread else { return } + guard let context = notification.object as? NSManagedObjectContext else { assertionFailure(); return } + guard context == ObvStack.shared.viewContext else { return } + guard self?.persistedContact?.managedObjectContext == context else { return } + guard let persistedContact = self?.persistedContact else { assertionFailure(); return } + self?.setTrustedVariables(with: persistedContact) + }) + } + + private func observeObvContactAnswerNotifications() { guard let persistedContact = self.persistedContact else { assertionFailure(); return } - observationTokens.append(ObvMessengerInternalNotification.observeObvContactAnswer(queue: OperationQueue.main) { [weak self] (requestUUID, obvContact) in - guard self?.id == requestUUID else { return } - guard persistedContact.cryptoId == obvContact.cryptoId else { return } - self?.setTrustedVariables(with: persistedContact) - guard obvContact.trustedIdentityDetails != obvContact.publishedIdentityDetails else { return } - withAnimation { - self?.publishedContactDetails = obvContact.publishedIdentityDetails - if let photoURL = self?.publishedContactDetails?.photoURL { - self?.publishedPhotoURL = photoURL + observationTokens.append(ObvMessengerInternalNotification.observeObvContactAnswer { [weak self] (requestUUID, obvContact) in + DispatchQueue.main.async { + guard self?.id == requestUUID else { return } + guard persistedContact.cryptoId == obvContact.cryptoId else { return } + self?.setTrustedVariables(with: persistedContact) + guard obvContact.trustedIdentityDetails != obvContact.publishedIdentityDetails else { return } + withAnimation { + self?.publishedContactDetails = obvContact.publishedIdentityDetails + if let photoURL = self?.publishedContactDetails?.photoURL { + self?.publishedPhotoURL = photoURL + } + self?.contactStatus = persistedContact.status + self?.isActive = persistedContact.isActive + self?.showReblockView = obvContact.isActive && obvContact.isRevokedAsCompromised + self?.showRedShield = !obvContact.isActive } - self?.contactStatus = persistedContact.status - self?.isActive = persistedContact.isActive - self?.showReblockView = obvContact.isActive && obvContact.isRevokedAsCompromised - self?.showRedShield = !obvContact.isActive } }) } @@ -609,10 +656,12 @@ final class SingleContactIdentity: SingleIdentity { guard let currentContactCryptoId = persistedContact?.cryptoId else { assertionFailure(); return } guard let currentOwnedCryptoId = persistedContact?.ownedIdentity?.cryptoId else { return } let id = self.id - observationTokens.append(ObvMessengerCoreDataNotification.observePersistedContactHasNewStatus(queue: OperationQueue.main) { (contactCryptoId, ownedCryptoId) in - guard (currentContactCryptoId, currentOwnedCryptoId) == (contactCryptoId, ownedCryptoId) else { return } - ObvMessengerInternalNotification.obvContactRequest(requestUUID: id, contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) - .postOnDispatchQueue() + observationTokens.append(ObvMessengerCoreDataNotification.observePersistedContactHasNewStatus { (contactCryptoId, ownedCryptoId) in + DispatchQueue.main.async { + guard (currentContactCryptoId, currentOwnedCryptoId) == (contactCryptoId, ownedCryptoId) else { return } + ObvMessengerInternalNotification.obvContactRequest(requestUUID: id, contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) + .postOnDispatchQueue() + } }) } @@ -624,34 +673,53 @@ final class SingleContactIdentity: SingleIdentity { guard let currentContactCryptoId = persistedContact?.cryptoId else { assertionFailure(); return } guard let currentOwnedCryptoId = persistedContact?.ownedIdentity?.cryptoId else { return } let id = self.id - observationTokens.append(ObvMessengerInternalNotification.observeContactIdentityDetailsWereUpdated(queue: OperationQueue.main) { (contactCryptoId, ownedCryptoId) in - guard (currentContactCryptoId, currentOwnedCryptoId) == (contactCryptoId, ownedCryptoId) else { return } - ObvMessengerInternalNotification.obvContactRequest(requestUUID: id, contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) - .postOnDispatchQueue() + observationTokens.append(ObvMessengerInternalNotification.observeContactIdentityDetailsWereUpdated { (contactCryptoId, ownedCryptoId) in + DispatchQueue.main.async { + guard (currentContactCryptoId, currentOwnedCryptoId) == (contactCryptoId, ownedCryptoId) else { return } + ObvMessengerInternalNotification.obvContactRequest(requestUUID: id, contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) + .postOnDispatchQueue() + } }) } + fileprivate func observeNewSavedCustomContactPictureCandidateNotifications() { observationTokens.append(ObvMessengerInternalNotification.observeNewSavedCustomContactPictureCandidate() { [weak self] (requestUUID, url) in guard self?.id == requestUUID else { return } DispatchQueue.main.async { - withAnimation { - self?.customPhotoURL = url + if self?.customPhotoURL != url { + withAnimation { + self?.customPhotoURL = url + } } } }) } + override func setTrustedVariables(with contact: PersistedObvContactIdentity) { assert(Thread.isMainThread) assert(self.persistedContact == contact) withAnimation { super.setTrustedVariables(with: contact) - self.contactHasNoDevice = contact.devices.isEmpty - self.isActive = contact.isActive - self.contactStatus = contact.status - self.customDisplayName = contact.customDisplayName - self.contactIsOneToOne = contact.isOneToOne + if self.contactHasNoDevice != contact.devices.isEmpty { + self.contactHasNoDevice = contact.devices.isEmpty + } + if self.atLeastOneDeviceAllowsThisContactToReceiveMessages != contact.atLeastOneDeviceAllowsThisContactToReceiveMessages { + self.atLeastOneDeviceAllowsThisContactToReceiveMessages = contact.atLeastOneDeviceAllowsThisContactToReceiveMessages + } + if self.isActive != contact.isActive { + self.isActive = contact.isActive + } + if self.contactStatus != contact.status { + self.contactStatus = contact.status + } + if self.customDisplayName != contact.customDisplayName { + self.customDisplayName = contact.customDisplayName + } + if self.contactIsOneToOne != contact.isOneToOne { + self.contactIsOneToOne = contact.isOneToOne + } } } @@ -677,17 +745,18 @@ final class SingleContactIdentity: SingleIdentity { .postOnDispatchQueue() } - func userWantsToRecreateTheSecureChannel() { - guard let persistedContact = self.persistedContact else { assertionFailure(); return } - let contactCryptoId = persistedContact.cryptoId - guard let ownedCryptoId = persistedContact.ownedIdentity?.cryptoId else { return } - ObvMessengerInternalNotification.userWantsToReCreateChannelEstablishmentProtocol(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) - .postOnDispatchQueue() - } - func userWantsToNavigateToSingleGroupView(_ group: DisplayedContactGroup) { delegate?.userWantsToNavigateToSingleGroupView(group) } + + func userWantsToNavigateToListOfContactDevicesView() { + guard let persistedContact else { assertionFailure(); return } + delegate?.userWantsToNavigateToListOfContactDevicesView(persistedContact) + } + + func userWantsToNavigateToListOfTrustOriginsView() { + delegate?.userWantsToNavigateToListOfTrustOriginsView(trustOrigins: trustOrigins) + } func userWantsToDiscuss() { guard contactIsOneToOne else { assertionFailure(); return } @@ -702,11 +771,12 @@ final class SingleContactIdentity: SingleIdentity { } func userWantsToCallContact() { - guard isActive && !contactHasNoDevice else { return } + guard isActive && atLeastOneDeviceAllowsThisContactToReceiveMessages else { return } guard let persistedContact = persistedContact else { assertionFailure(); return } - let contactID = persistedContact.typedObjectID + let contactCryptoId = persistedContact.cryptoId + guard let ownedCryptoId = persistedContact.ownedIdentity?.cryptoId else { return } - ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(contactIDs: [contactID], groupId: nil) + ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(ownedCryptoId: ownedCryptoId, contactCryptoIds: Set([contactCryptoId]), groupId: nil) .postOnDispatchQueue() } @@ -871,33 +941,62 @@ struct ProfilePictureAction { struct IdentityCardContentView: View { @ObservedObject var model: SingleIdentity - var displayMode: CircleAndTitlesDisplayMode = .normal - var editionMode: CircleAndTitlesEditionMode = .none + let displayMode: CircleAndTitlesDisplayMode + let editionMode: CircleAndTitlesEditionMode + + init(model: SingleIdentity, displayMode: CircleAndTitlesDisplayMode = .normal, editionMode: CircleAndTitlesEditionMode = .none) { + self.model = model + self.displayMode = displayMode + self.editionMode = editionMode + } + private var textViewModel: TextView.Model { + .init(titlePart1: model.firstName.trimmingWhitespacesAndNewlines(), + titlePart2: model.lastName.trimmingWhitespacesAndNewlines(), + subtitle: model.position.trimmingWhitespacesAndNewlines(), + subsubtitle: model.company.trimmingWhitespacesAndNewlines()) + } + + private var profilePictureViewModelContent: ProfilePictureView.Model.Content { + .init(text: model.circledText([model.firstName, model.lastName]), + icon: .person, + profilePicture: model.profilePicture, + showGreenShield: model.showGreenShield, + showRedShield: model.showRedShield) + } + + private var circleAndTitlesViewModelContent: CircleAndTitlesView.Model.Content { + .init(textViewModel: textViewModel, + profilePictureViewModelContent: profilePictureViewModelContent) + } + + private var initialCircleViewModelColors: InitialCircleView.Model.Colors { + .init(background: model.identityColors?.background, + foreground: model.identityColors?.text) + } + + private var circleAndTitlesViewModel: CircleAndTitlesView.Model { + .init(content: circleAndTitlesViewModelContent, + colors: initialCircleViewModelColors, + displayMode: displayMode, + editionMode: editionMode) + } + var body: some View { - CircleAndTitlesView(titlePart1: model.firstName.trimmingWhitespacesAndNewlines(), - titlePart2: model.lastName.trimmingWhitespacesAndNewlines(), - subtitle: model.position.trimmingWhitespacesAndNewlines(), - subsubtitle: model.company.trimmingWhitespacesAndNewlines(), - circleBackgroundColor: model.identityColors?.background, - circleTextColor: model.identityColors?.text, - circledTextView: model.circledTextView([model.firstName, model.lastName]), - systemImage: .person, - profilePicture: model.profilePicture, - showGreenShield: model.showGreenShield, - showRedShield: model.showRedShield, - editionMode: editionMode, - displayMode: displayMode) + CircleAndTitlesView(model: circleAndTitlesViewModel) } } + enum PreferredDetails { case trusted case publishedOrTrusted case customOrTrusted } + +/// This view is a legacy view: it is very complex, and uses the `SingleContactIdentity` model which is very complex too. We shall not use this view in new views. struct ContactIdentityCardContentView: View { @ObservedObject var model: SingleContactIdentity @@ -925,24 +1024,40 @@ struct ContactIdentityCardContentView: View { model.getProfilPicture(for: preferredDetails) } - private var titlePart1: String { firstName } - - private var titlePart2: String { lastName } - + private var textViewModel: TextView.Model { + .init(titlePart1: firstName, + titlePart2: lastName, + subtitle: position, + subsubtitle: company) + } + + private var profilePictureViewModelContent: ProfilePictureView.Model.Content { + .init(text: model.circledText([firstName, lastName]), + icon: .person, + profilePicture: profilePicture, + showGreenShield: model.showGreenShield, + showRedShield: model.showRedShield) + } + + private var circleAndTitlesViewModelContent: CircleAndTitlesView.Model.Content { + .init(textViewModel: textViewModel, + profilePictureViewModelContent: profilePictureViewModelContent) + } + + private var initialCircleViewModelColors: InitialCircleView.Model.Colors { + .init(background: model.identityColors?.background, + foreground: model.identityColors?.text) + } + + private var circleAndTitlesViewModel: CircleAndTitlesView.Model { + .init(content: circleAndTitlesViewModelContent, + colors: initialCircleViewModelColors, + displayMode: displayMode, + editionMode: editionMode) + } + var body: some View { - CircleAndTitlesView(titlePart1: titlePart1, - titlePart2: titlePart2, - subtitle: position, - subsubtitle: company, - circleBackgroundColor: model.identityColors?.background, - circleTextColor: model.identityColors?.text, - circledTextView: model.circledTextView([titlePart1, titlePart2]), - systemImage: .person, - profilePicture: profilePicture, - showGreenShield: model.showGreenShield, - showRedShield: model.showRedShield, - editionMode: editionMode, - displayMode: displayMode) + CircleAndTitlesView(model: circleAndTitlesViewModel) } } @@ -951,35 +1066,61 @@ struct ContactIdentityCardContentView: View { struct GroupCardContentView: View { @ObservedObject var model: ContactGroup - var displayMode: CircleAndTitlesDisplayMode = .normal - var editionMode: CircleAndTitlesEditionMode = .none + let displayMode: CircleAndTitlesDisplayMode + let editionMode: CircleAndTitlesEditionMode + + init(model: ContactGroup, displayMode: CircleAndTitlesDisplayMode = .normal, editionMode: CircleAndTitlesEditionMode = .none) { + self.model = model + self.displayMode = displayMode + self.editionMode = editionMode + } - private var circledTextView: Text? { + private var circledText: String? { let components = [model.name] .compactMap({ $0?.trimmingCharacters(in: .whitespacesAndNewlines) }) .filter({ !$0.isEmpty }) .first if let char = components?.first { - return Text(String(char)) + return String(char) } else { return nil } } + + private var textViewModel: TextView.Model { + .init(titlePart1: model.name, + titlePart2: nil, + subtitle: model.description, + subsubtitle: nil) + } + + private var profilePictureViewModelContent: ProfilePictureView.Model.Content { + .init(text: circledText, + icon: .person3Fill, + profilePicture: model.profilePicture, + showGreenShield: false, + showRedShield: false) + } + + private var circleAndTitlesViewModelContent: CircleAndTitlesView.Model.Content { + .init(textViewModel: textViewModel, + profilePictureViewModelContent: profilePictureViewModelContent) + } + + private var initialCircleViewModelColors: InitialCircleView.Model.Colors { + .init(background: model.groupColors?.background, + foreground: model.groupColors?.text) + } + + private var circleAndTitlesViewModel: CircleAndTitlesView.Model { + .init(content: circleAndTitlesViewModelContent, + colors: initialCircleViewModelColors, + displayMode: displayMode, + editionMode: editionMode) + } var body: some View { - CircleAndTitlesView(titlePart1: model.name, - titlePart2: nil, - subtitle: model.description, - subsubtitle: nil, - circleBackgroundColor: model.groupColors?.background, - circleTextColor: model.groupColors?.text, - circledTextView: circledTextView, - systemImage: .person3Fill, - profilePicture: model.profilePicture, - showGreenShield: false, - showRedShield: false, - editionMode: editionMode, - displayMode: displayMode) + CircleAndTitlesView(model: circleAndTitlesViewModel) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/OlvidButton.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/OlvidButton.swift index caeb40a4..c8a919b3 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/OlvidButton.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/OlvidButton.swift @@ -21,6 +21,7 @@ import ObvUI import SwiftUI import UI_SystemIcon import UI_SystemIcon_SwiftUI +import ObvDesignSystem fileprivate extension OlvidButton.Style { @@ -36,6 +37,7 @@ fileprivate extension OlvidButton.Style { case .green: return .green case .red: return .red case .redOnTransparentBackground: return .clear + case .text: return .clear } } @@ -51,6 +53,7 @@ fileprivate extension OlvidButton.Style { case .green: return .white case .red: return .white case .redOnTransparentBackground: return .red + case .text: return Color(AppTheme.shared.colorScheme.olvidLight) } } } @@ -72,6 +75,7 @@ struct OlvidButton: View { case green case red case redOnTransparentBackground + case text } let style: Style @@ -114,22 +118,11 @@ struct OlvidButton: View { var body: some View { Button(action: action) { - if #available(iOS 14, *) { - buttonContent { - Label( - title: { title }, - icon: { systemIcon != nil ? Image(systemIcon: systemIcon!) : nil } - ) - } - } else { - buttonContent { - HStack { - if let systemIcon = self.systemIcon { - Image(systemIcon: systemIcon) - } - title - } - } + buttonContent { + Label( + title: { title }, + icon: { systemIcon != nil ? Image(systemIcon: systemIcon!) : nil } + ) } } .fixedSize(horizontal: false, vertical: true) @@ -265,6 +258,12 @@ struct OlvidButton_Previews: PreviewProvider { .background(Color(.systemBackground)) .environment(\.colorScheme, .light) .previewDisplayName("Blue example in light mode without label") + OlvidButton(style: .text, title: Text("Save"), action: {}) + .padding() + .previewLayout(.sizeThatFits) + .background(Color(.systemBackground)) + .environment(\.colorScheme, .light) + .previewDisplayName("Text example in light mode") } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/ProfilePictureView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/ProfilePictureView.swift index 1a6fd1af..7748b29f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/ProfilePictureView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/ProfilePictureView.swift @@ -20,65 +20,102 @@ import ObvUI import SwiftUI import ObvUICoreData -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvDesignSystem +/// Legacy view. Use InitialCircleViewNew instead. struct ProfilePictureView: View { - let profilePicture: UIImage? - let circleBackgroundColor: UIColor? - let circleTextColor: UIColor? - let circledTextView: Text? - let systemImage: CircledInitialsIcon - let customCircleDiameter: CGFloat? - let showGreenShield: Bool - let showRedShield: Bool + struct Model { + + struct Content { + let text: String? + let icon: CircledInitialsIcon + let profilePicture: UIImage? + let showGreenShield: Bool + let showRedShield: Bool + + var initialCircleViewModelContent: InitialCircleView.Model.Content { + .init(text: text, icon: icon) + } + + } + + let content: Content + let colors: InitialCircleView.Model.Colors + let circleDiameter: CGFloat - init(profilePicture: UIImage?, - circleBackgroundColor: UIColor?, - circleTextColor: UIColor?, - circledTextView: Text?, - systemImage: CircledInitialsIcon, - showGreenShield: Bool, - showRedShield: Bool, - customCircleDiameter: CGFloat? = ProfilePictureView.circleDiameter) { - self.profilePicture = profilePicture - self.circleBackgroundColor = circleBackgroundColor - self.circleTextColor = circleTextColor - self.circledTextView = circledTextView - self.systemImage = systemImage - self.showGreenShield = showGreenShield - self.showRedShield = showRedShield - self.customCircleDiameter = customCircleDiameter + init(content: Content, colors: InitialCircleView.Model.Colors, circleDiameter: CGFloat) { + self.content = content + self.colors = colors + self.circleDiameter = circleDiameter + } + + fileprivate var initialCircleViewModel: InitialCircleView.Model { + .init(content: content.initialCircleViewModelContent, + colors: colors, + circleDiameter: circleDiameter) + } + } - static let circleDiameter: CGFloat = 60.0 + + let model: Model + + init(model: Model) { + self.model = model + } var body: some View { Group { - if let profilePicture = profilePicture { + if let profilePicture = model.content.profilePicture { Image(uiImage: profilePicture) .resizable() .scaledToFit() - .frame(width: customCircleDiameter ?? ProfilePictureView.circleDiameter, height: customCircleDiameter ?? ProfilePictureView.circleDiameter) + .frame(width: model.circleDiameter, height: model.circleDiameter) .clipShape(Circle()) } else { - InitialCircleView(circledTextView: circledTextView, - systemImage: systemImage, - circleBackgroundColor: circleBackgroundColor, - circleTextColor: circleTextColor, - circleDiameter: customCircleDiameter ?? ProfilePictureView.circleDiameter) + InitialCircleView(model: model.initialCircleViewModel) } } .overlay(Image(systemName: "checkmark.shield.fill") - .font(.system(size: (customCircleDiameter ?? ProfilePictureView.circleDiameter) / 4)) - .foregroundColor(showGreenShield ? Color(AppTheme.shared.colorScheme.green) : .clear), + .font(.system(size: (model.circleDiameter) / 4)) + .foregroundColor(model.content.showGreenShield ? Color(AppTheme.shared.colorScheme.green) : .clear), alignment: .topTrailing ) .overlay(Image(systemIcon: .exclamationmarkShieldFill) - .font(.system(size: (customCircleDiameter ?? ProfilePictureView.circleDiameter) / 2)) - .foregroundColor(showRedShield ? .red : .clear), + .font(.system(size: (model.circleDiameter) / 2)) + .foregroundColor(model.content.showRedShield ? .red : .clear), alignment: .center ) + + } +} + + +// MARK: - NSManagedObjects extension + +extension PersistedObvOwnedIdentity { + + var profilePictureViewModelContent: ProfilePictureView.Model.Content { + .init(text: self.circledInitialsConfiguration.initials?.text ?? "", + icon: .person, + profilePicture: self.circledInitialsConfiguration.photo, + showGreenShield: self.circledInitialsConfiguration.showGreenShield, + showRedShield: self.circledInitialsConfiguration.showRedShield) + } + +} + +extension PersistedGroupV2Member { + + var profilePictureViewModelContent: ProfilePictureView.Model.Content { + .init(text: self.circledInitialsConfiguration.initials?.text ?? "", + icon: .person, + profilePicture: self.circledInitialsConfiguration.photo, + showGreenShield: self.circledInitialsConfiguration.showGreenShield, + showRedShield: self.circledInitialsConfiguration.showRedShield) } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/TextView.swift b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/TextView.swift index fd12a8e1..4a45cf3d 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/TextView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Invitation Flow/SubViews/TextView.swift @@ -19,19 +19,25 @@ import ObvUI import SwiftUI +import ObvUICoreData +import ObvDesignSystem struct TextView: View { - let titlePart1: String? - let titlePart2: String? - let subtitle: String? - let subsubtitle: String? + struct Model { + let titlePart1: String? + let titlePart2: String? + let subtitle: String? + let subsubtitle: String? + } + + let model: Model - private var titlePart1Count: Int { titlePart1?.count ?? 0 } - private var titlePart2Count: Int { titlePart2?.count ?? 0 } - private var subtitleCount: Int { subtitle?.count ?? 0 } - private var subsubtitleCount: Int { subsubtitle?.count ?? 0 } + private var titlePart1Count: Int { model.titlePart1?.count ?? 0 } + private var titlePart2Count: Int { model.titlePart2?.count ?? 0 } + private var subtitleCount: Int { model.subtitle?.count ?? 0 } + private var subsubtitleCount: Int { model.subsubtitle?.count ?? 0 } /// This variable allows to control when an animation is performed on `titlePart1`. /// @@ -62,9 +68,9 @@ struct TextView: View { var body: some View { VStack(alignment: .leading, spacing: 4) { - if titlePart1 != nil || titlePart2 != nil { + if model.titlePart1 != nil || model.titlePart2 != nil { HStack(spacing: 0) { - if let titlePart1 = self.titlePart1, !titlePart1.isEmpty { + if let titlePart1 = model.titlePart1, !titlePart1.isEmpty { Group { Text(titlePart1) .font(.system(.headline, design: .rounded)) @@ -72,12 +78,12 @@ struct TextView: View { .animation(.spring(), value: animateTitlePart1OnChange) } } - if let titlePart1 = self.titlePart1, let titlePart2 = self.titlePart2, !titlePart1.isEmpty, !titlePart2.isEmpty { + if let titlePart1 = model.titlePart1, let titlePart2 = model.titlePart2, !titlePart1.isEmpty, !titlePart2.isEmpty { Text(" ") .font(.system(.headline, design: .rounded)) .lineLimit(1) } - if let titlePart2 = self.titlePart2, !titlePart2.isEmpty { + if let titlePart2 = model.titlePart2, !titlePart2.isEmpty { Text(titlePart2) .font(.system(.headline, design: .rounded)) .fontWeight(.heavy) @@ -87,14 +93,14 @@ struct TextView: View { } .layoutPriority(0) } - if let subtitle = self.subtitle, !subtitle.isEmpty { + if let subtitle = model.subtitle, !subtitle.isEmpty { Text(subtitle) .font(.footnote) .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) .lineLimit(1) .animation(.spring(), value: animateSubtitleOnChange) } - if let subsubtitle = self.subsubtitle, !subsubtitle.isEmpty { + if let subsubtitle = model.subsubtitle, !subsubtitle.isEmpty { Text(subsubtitle) .font(.footnote) .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) @@ -104,3 +110,29 @@ struct TextView: View { } } } + + +// MARK: NSManagedObjects extension + +extension PersistedObvOwnedIdentity { + + var textViewModel: TextView.Model { + .init(titlePart1: self.identityCoreDetails.firstName, + titlePart2: self.identityCoreDetails.lastName, + subtitle: self.identityCoreDetails.position, + subsubtitle: self.identityCoreDetails.company) + } + +} + + +extension PersistedGroupV2Member { + + var textViewModel: TextView.Model { + .init(titlePart1: self.displayedFirstName, + titlePart2: self.displayedCustomDisplayNameOrLastName, + subtitle: self.displayedPosition, + subsubtitle: self.displayedCompany) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/LaunchScreen.storyboard b/iOSClient/ObvMessenger/ObvMessenger/LaunchScreen.storyboard index da1bfc3f..31b07e07 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/LaunchScreen.storyboard +++ b/iOSClient/ObvMessenger/ObvMessenger/LaunchScreen.storyboard @@ -1,9 +1,9 @@ - + - + @@ -20,9 +20,9 @@ - + - + @@ -32,7 +32,7 @@ - + diff --git a/iOSClient/ObvMessenger/ObvMessenger/LocalAuthentication/LocalAuthenticationViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/LocalAuthentication/LocalAuthenticationViewController.swift index dd39f827..19b0dd56 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/LocalAuthentication/LocalAuthenticationViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/LocalAuthentication/LocalAuthenticationViewController.swift @@ -19,10 +19,12 @@ import UIKit import ObvUI +import ObvUICoreData +import ObvSettings class LocalAuthenticationViewController: UIViewController { - + private enum AuthenticationStatus { case initial case shouldPerformLocalAuthentication @@ -60,11 +62,14 @@ class LocalAuthenticationViewController: UIViewController { fatalError("init(coder:) has not been implemented") } + override var canBecomeFirstResponder: Bool { true } + override func viewDidLoad() { super.viewDidLoad() // Use the LaunchScreen's view to ensure a smooth transition let launchScreenStoryBoard = UIStoryboard(name: "LaunchScreen", bundle: nil) guard let launchViewController = launchScreenStoryBoard.instantiateInitialViewController() else { assertionFailure(); return } + launchViewController.view.translatesAutoresizingMaskIntoConstraints = false self.view.addSubview(launchViewController.view) self.view.pinAllSidesToSides(of: launchViewController.view) @@ -91,6 +96,8 @@ class LocalAuthenticationViewController: UIViewController { ] NSLayoutConstraint.activate(constraints) + view.backgroundColor = .red + configure() } @@ -181,7 +188,9 @@ class LocalAuthenticationViewController: UIViewController { @objc private func authenticateButtonTapped() { Task { - await performLocalAuthentication(uptimeAtTheTimeOfChangeoverToNotActiveState: nil) + await performLocalAuthentication( + customPasscodePresentingViewController: self, + uptimeAtTheTimeOfChangeoverToNotActiveState: nil) } } @@ -191,12 +200,17 @@ class LocalAuthenticationViewController: UIViewController { } @MainActor - func performLocalAuthentication(uptimeAtTheTimeOfChangeoverToNotActiveState: TimeInterval?) async { + func performLocalAuthentication(customPasscodePresentingViewController: UIViewController, uptimeAtTheTimeOfChangeoverToNotActiveState: TimeInterval?) async { guard let localAuthenticationDelegate = self.localAuthenticationDelegate else { assertionFailure() return } - let laResult = await localAuthenticationDelegate.performLocalAuthentication(viewController: self, uptimeAtTheTimeOfChangeoverToNotActiveState: uptimeAtTheTimeOfChangeoverToNotActiveState, localizedReason: Strings.startOlvid) + let policy = ObvMessengerSettings.Privacy.localAuthenticationPolicy + let laResult = await localAuthenticationDelegate.performLocalAuthentication( + customPasscodePresentingViewController: customPasscodePresentingViewController, + uptimeAtTheTimeOfChangeoverToNotActiveState: uptimeAtTheTimeOfChangeoverToNotActiveState, + localizedReason: Strings.startOlvid, + policy: policy) switch laResult { case .authenticated(let authenticationWasPerformed): await setAuthenticationStatus(to: .authenticated(authenticationWasPerformed: authenticationWasPerformed)) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Localizable.xcstrings b/iOSClient/ObvMessenger/ObvMessenger/Localizable.xcstrings new file mode 100644 index 00000000..7586a105 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Localizable.xcstrings @@ -0,0 +1,19991 @@ +{ + "sourceLanguage" : "en", + "strings" : { + "" : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "" + } + } + } + }, + " " : { + "localizations" : { + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "" + } + } + } + }, + "-" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "-" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "-" + } + } + } + }, + "%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "" + } + } + } + }, + "%@ (%@)" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ (%2$@)" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "" + } + } + } + }, + "%@ invites you to discuss on Olvid" : { + "comment" : "Subject used when inviting another user to Olvid, i.e., when sharing ones owned identity using, e.g., an email", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ would like to discuss with you on Olvid" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ aimerait discuter avec vous sur Olvid" + } + } + } + }, + "%@ invites you to discuss on Olvid. To accept, please click the link below:\n\n%@" : { + "comment" : "Body used when inviting another user to Olvid, i.e., when sharing ones owned identity using, e.g., an email or message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ would like to discuss with you on Olvid. To invite them, please click the link below:\n\n%@\n" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ aimerait discuter avec vous sur Olvid. Pour l'y inviter, veuillez cliquer sur le lien suivant :\n\n%@\n" + } + } + } + }, + "%@ is already part of your trusted contacts 🙌. Do you still wish to proceed?" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ is already part of your trusted contacts 🙌. Do you still wish to proceed?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ fait déjà partie de vos contacts 🙌. Voulez-vous quand même poursuivre ?" + } + } + } + }, + "%@ wants to introduce you to %@" : { + "comment" : "Notification body", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ wants to introduce you to %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ aimerait vous présenter à %2$@" + } + } + } + }, + "%@_INVITES_YOU_TO_ONE_TO_ONE_DISCUSSION" : { + "comment" : "Notification body", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ invites you to have a private discussion. If you accept, this user will be added to your contacts." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ vous invite à discuter en privé. Si vous acceptez, cet utilisateur sera ajouté à vos contacts." + } + } + } + }, + "%@/%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@/%2$@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "" + } + } + } + }, + "%lld" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "" + } + } + } + }, + "%lld_DELETED_BACKUPS" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "one deleted backup" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld deleted backups" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "no deleted backups" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une sauvegarde supprimée" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld sauvegardes supprimées" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pas de sauvegarde supprimée" + } + } + } + } + } + } + }, + "%lld_GROUP_MEMBERS" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "One other group member:" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld other group members:" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Un autre membre dans ce groupe :" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld membres dans ce groupe :" + } + } + } + } + } + } + }, + "%lu_GROUP_MEMBERS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lu members in this group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lu membres dans ce groupe" + } + } + } + }, + "⚠️ Latest failed upload: %@" : { + "comment" : "Table view section footer", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "⚠️ Latest failed upload: %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "⚠️ Dernière erreur : %@" + } + } + } + }, + "😧 Oups..." : { + "comment" : "Oups word, with Emoji, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "😧 Oops..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "😧 Oups..." + } + } + } + }, + "Abort" : { + "comment" : "Abort word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abort" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abandonner" + } + } + } + }, + "About" : { + "comment" : "About word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "About" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "À propos" + } + } + } + }, + "ABOUT_DISKUSAGEVIEW_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This screen allows you to evaluate the storage used by Olvid on your %@. Beware though, the total storage is not the sum of all the values indicated here (as Olvid uses deduplication techniques). To evaluate the total storage, it is in general sufficient to consider the values referenced by the database" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cet écran permet d'évaluer l'espace de stockage occupé par Olvid sur votre %@. Attention cependant, le stockage total n'est pas la somme des valeurs indiquées ici (Olvid utilise des techniques de déduplication). Pour évaluer le stockage total, il suffit en général de considérer les valeurs référencées depuis la base de données." + } + } + } + }, + "Accept" : { + "comment" : "Accept word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Accept" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Accepter" + } + } + } + }, + "ACCESS_TO_ADVANCED_SETTINGS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Access to advanced settings" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Accès aux paramètres avancés" + } + } + } + }, + "Actions" : { + "comment" : "Actions word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Actions" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Actions" + } + } + } + }, + "ACTIVATE_NEW_LICENSE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activate new license" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activer la licence" + } + } + } + }, + "ACTIVATE_THIS_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activate this device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activer cet appareil" + } + } + } + }, + "Active" : { + "comment" : "Active word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Active" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Active" + } + } + } + }, + "Add new contact" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Add new contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter un nouveau contact" + } + } + } + }, + "ADD_A_NEW_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Add a device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter un appareil" + } + } + } + }, + "ADD_ANOTHER_PROFILE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Add another profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter un autre profil" + } + } + } + }, + "ADD_CONTACT_BUTTON" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Add contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter un contact" + } + } + } + }, + "ADD_CONTACT_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Add a contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter un contact" + } + } + } + }, + "ADD_GROUP_MEMBERS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Add group members" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter des membres" + } + } + } + }, + "ADD_MEMBER_BY_TAPPING_EDIT_GROUP_MEMBERS_BUTTON" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are the only member of this group 😅. Start adding group members by tapping the \"Edit members\" button above ☝️." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous êtes le seul membre de ce groupe 😅. Ajoutez des membres en touchant le bouton \"Modifier les membres\" ☝️." + } + } + } + }, + "ADD_OWNED_IDENTITY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Add a profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter un profil" + } + } + } + }, + "ADD_SELECTED_CONTACTS_TO_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Add contacts to call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter les contacts à l'appel" + } + } + } + }, + "ADD_TO_CONTACTS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Add to contacts" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter aux contacts" + } + } + } + }, + "ADDING_KEYCLOAK_CONTACT_FAILED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Failed to add contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'ajout de contact a échoué" + } + } + } + }, + "Admin" : { + "comment" : "Admin word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Admin" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Administrateur" + } + } + } + }, + "Advanced" : { + "comment" : "Advanced word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Advanced" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Avancé" + } + } + } + }, + "After" : { + "comment" : "After word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "After" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Après" + } + } + } + }, + "AFTER_FIVE_MINUTE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "after 5 minutes" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "après 5 minutes" + } + } + } + }, + "AFTER_ONE_MINUTE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "after 1 minute" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "après 1 minute" + } + } + } + }, + "AFTER_TEN_SECONDS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "after 10 seconds" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "après 10 secondes" + } + } + } + }, + "AFTER_THIRTY_SECONDS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "after 30 seconds" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "après 30 secondes" + } + } + } + }, + "AFTER_TWO_MINUTE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "after 2 minutes" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "après 2 minutes" + } + } + } + }, + "ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_ACTION_BACKGROUND" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "When Olvid enters background" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quand Olvid passe en arrière-plan" + } + } + } + }, + "ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_ACTION_MANUAL_SWITCHING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "When manually switching profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "En changeant de profil manuellement" + } + } + } + }, + "ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_ACTION_SCREEN_LOCK" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "When Olvid lock screen activates" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Au verrouillage de l'écran d'Olvid" + } + } + } + }, + "ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please choose when an open profile should be closed. By default, hidden profiles will be closed when manually switching to another profile." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez choisir le bon moment pour fermer un profil masqué. Par défaut, un profil masqué est fermé quand vous basculez manuellement vers un autre profil." + } + } + } + }, + "ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "When to close an open hidden profile?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quand désirez-vous fermer un profil masqué ?" + } + } + } + }, + "ALERT_FOR_EDITING_NICKNAME_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your nickname is for your eyes only and allows you to easily distinguish your profiles from each other." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre pseudo n'est visible que par vous et vous permet de facilement distinguer vos profils les uns des autres." + } + } + } + }, + "ALERT_FOR_EDITING_NICKNAME_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit my nickname" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Éditer mon pseudo" + } + } + } + }, + "ALERT_MSG_OUTGOING_CALL_FAILED_USER_DENIED_RECORDING" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "To make this call, you need to allow Olvid to access the microphone. Open Settings and turn on the Microphone" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour passer cet appel, vous devez autoriser Olvid à accéder au micro. Allez dans les Réglages et activez le Micro." + } + } + } + }, + "ALERT_SHOULD_ACTIVATE_SCREEN_LOCK_AFTER_CREATING_HIDDEN_PROFILE_ACTION_GOTO_PRIVACY_SETTINGS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Go to privacy settings" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aller dans les paramètres" + } + } + } + }, + "ALERT_SHOULD_ACTIVATE_SCREEN_LOCK_AFTER_CREATING_HIDDEN_PROFILE_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You chose to close any open hidden profile when the Olvid lock screen activate. However you have not configured any lock screen.\n\nIn the current setting, hidden profiles will only be closed when manually switching to another profile.\n\nPlease go to the privacy settings to configure a lock screen." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez choisi de fermer les profils masqués ouverts au verrouillage de l'écran d'Olvid. Cependant, vous n'avez pas configuré d'écran de verrouillage.\n\nAvec le réglage actuel, les profils masqués ne seront fermés que si vous basculez manuellement vers un autre profil.\n\nPour configurer un écran de verrouillage, allez dans les paramètres de « Vie privée »." + } + } + } + }, + "ALERT_SHOULD_ACTIVATE_SCREEN_LOCK_AFTER_CREATING_HIDDEN_PROFILE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid lock screen not configured" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Écran de verrouillage non configuré" + } + } + } + }, + "ALERT_VOICE_MESSAGE_FAILED_USER_DENIED_RECORDING" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "To record a voice message, you need to allow Olvid to access the microphone. Open Settings and turn on the Microphone" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour enregistrer un message vocal, vous devez autoriser Olvid à accéder au micro. Allez dans les Réglages et activez le Micro." + } + } + } + }, + "All logs" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "All logs" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tous les logs" + } + } + } + }, + "ALL_ATTACHMENTS_WILL_BE_AUTOMATICALLY_DOWNLOADED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "All attachments will be automatically downloaded." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toutes les pièces jointes seront téléchargées automatiquement." + } + } + } + }, + "Allow all api key activations" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Allow all api key activations" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Permettre l'activation de toute clé d'API" + } + } + } + }, + "ALLOW_CUSTOM_KEYBOARDS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Allow custom keyboards" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Autoriser les claviers personnalisés" + } + } + } + }, + "Always" : { + "comment" : "Always word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Always" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toujours" + } + } + } + }, + "An invitation requires your attention!" : { + "comment" : "Notification title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "An invitation requires your attention!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une invitation requiert votre attention !" + } + } + } + }, + "ANOTHER_PROFILE_HAS_VALID_API_KEY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This profile benefits from the license of another profile." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ce profil bénéficie de la licence d'un autre profil." + } + } + } + }, + "ANSWERED_ON_ANOTHER_OWNED_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Answered on another device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Accepté sur un autre appareil" + } + } + } + }, + "API Key" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "API Key" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clé d'API" + } + } + } + }, + "APP_DIRECTORIES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Directories within the app" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Répertoires de l'app" + } + } + } + }, + "ARCHIVE" : { + "comment" : "Archive word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Archive" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Archiver" + } + } + } + }, + "ARE_YOU_SURE_CREATE_NEW_OWNED_GROUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you wish to create this new group now?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous créer ce nouveau groupe maintenant ?" + } + } + } + }, + "ARE_YOU_SURE_PUBLISH_EDITED_OWNED_GROUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you you wish to publish the group changes?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous publier les modifications ou les annuler ?" + } + } + } + }, + "ARE_YOU_SURE_PUBLISH_NEW_OWNED_ID" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Once published, all your contacts will receive your new ID." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une fois publiée, la nouvelle version de votre ID s'affichera chez tous vos contacts." + } + } + } + }, + "ARE_YOU_SURE_YOU_WANT_TO_ABORT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Are you sure you want to abort?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous vraiment abandonner ?" + } + } + } + }, + "ARE_YOU_SURE_YOU_WANT_TO_DECLINE_THIS_INVITATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Are you sure you want to decline this invitation?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous vraiment décliner cette invitation ?" + } + } + } + }, + "ARE_YOU_SURE_YOU_WANT_TO_IGNORE_THIS_INVITATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Are you sure you want to ignore this invitation?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous vraiment ignorer cette invitation ?" + } + } + } + }, + "At least one of the channel establishment failed to restart" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "At least one of the channel establishment failed to restart" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erreur lors du redémarrage de l'établissement d'un canal sécurisé" + } + } + } + }, + "AT_LEAST_ONE_UNHIDDEN_PROFILE_MUST_EXIST_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You must have at least one visible profile. Since this profile is the only one you have, you cannot hide it. Nonetheless, you can create a new profile and try again." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous devez toujours avoir au moins un profil visible. Comme ce profil est le seul que vous ayez, vous ne pouvez pas le masquer. Vous pouvez néanmoins créer un nouveau profil et essayer à nouveau." + } + } + } + }, + "AT_LEAST_ONE_UNHIDDEN_PROFILE_MUST_EXIST_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This profile cannot be hidden at the moment" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Impossible de masquer ce profil pour le moment" + } + } + } + }, + "Attachments smaller than %@ will be automatically downloaded. Larger attachments will require manual download." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Attachments smaller than %@ will be automatically downloaded. Larger attachments will require manual download." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les pièces jointes de taille inférieure à %@ seront téléchargées automatiquement. Les pièces jointes de plus grande taille devront être téléchargées manuellement." + } + } + } + }, + "ATTACHMENTS_INFO" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Attachments" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pièces jointes" + } + } + } + }, + "AUDIO" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Audio" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Audio" + } + } + } + }, + "Authenticate" : { + "comment" : "Authenticate word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authenticate" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'authentifier" + } + } + } + }, + "AUTHENTICATE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authenticate" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'authentifier" + } + } + } + }, + "AUTHENTICATION_FAILED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authentication failed" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'authentification a échoué" + } + } + } + }, + "AUTHENTICATION_REQUIRED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authentication Required" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authentification Requise" + } + } + } + }, + "AUTHENTICATION_REQUIRED_TOKEN_EXPIRED_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your Olvid identity is managed by your company's identity provider. You need to re-authenticate with this identity provider to continue." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre identité Olvid est gérée par le fournisseur d'identité de votre entreprise. Il faut vous réauthentifier auprès de ce fournisseur d'identité pour continuer." + } + } + } + }, + "AUTHENTICATION_REQUIRED_USER_ID_CHANGED_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You Olvid ID is managed by your company's identity provider. It seems you authenticated as a different user than usual. This is not supported.\n\nPlease contact your administrator or re-authenticate as the correct user." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre ID Olvid est géré par le fournisseur d'identité de votre entreprise. Il semblerait que vous vous soyez authentifié avec un compte différent du compte habituel. Ceci n'est pas supporté.\n\nContactez votre adminisrateur ou réauthentifiez-vous avec le compte habituel." + } + } + } + }, + "Authorization Required" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authorization Required" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Autorisation Requise" + } + } + } + }, + "AUTO_ACCEPT_GROUP_%llu_INVITATIONS_ALERT_ACCEPT_ACTION_TITLE" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Accept the pending group invitation now" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Accept the %llu pending group invitations now" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Accepter l'invitation de groupe maintenant" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Accepter les %llu invitations de groupe maintenant" + } + } + } + } + } + } + }, + "AUTO_ACCEPT_GROUP_%llu_INVITATIONS_ALERT_MESSAGE" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifying this setting requires you to accept one pending group invitation." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifying this setting requires you to accept %llu pending group invitations." + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour changer ce paramètre, vous devez accepter une invitation de groupe en attente." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour changer ce paramètre, vous devez accepter %llu invitations de groupe en attente." + } + } + } + } + } + } + }, + "AUTO_ACCEPT_GROUP_INVITATIONS_ALERT_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Heads up!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Avant d'aller plus loin…" + } + } + } + }, + "AUTO_ACCEPT_GROUP_INVITES_FROM" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Automatically accept group invitations from…" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Accepter automatiquement les invitations de groupe de…" + } + } + } + }, + "AUTO_READ_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Auto read" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouverture automatique" + } + } + } + }, + "AUTO_READ_SECTION_FOOTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Automatically open ephemeral messages. This only applies to messages whose ephemerality was set at the discussion level and not to messages for which the sender chooses a specific ephemerality." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvrir automatiquement les messages éphémères. Cette ouverture automatique ne s'applique qu'aux messages dont l'éphémérité est due aux paramètres choisis pour la discussion entière, et pas aux messages dont l'éphémérité est spécifiquement choisie par l'envoyeur." + } + } + } + }, + "Automatic iCloud backup cleaning" : { + "comment" : "Button title allowing to enable automatic backup cleaning", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Automatic old iCloud backups deletion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suppression automatique des anciennes sauvegardes iCloud" + } + } + } + }, + "AUTOMATIC_BACKUP" : { + "comment" : "Table view section header", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Automatic backup to iCloud" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sauvegarde automatique vers iCloud" + } + } + } + }, + "AUTOMATIC_BACKUP_COULD_NOT_BE_ENABLED_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Automatic backup could not be enabled" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il n'a pas été possible d'activer les sauvegardes automatiques" + } + } + } + }, + "AUTOMATIC_BACKUP_EXPLANATION" : { + "comment" : "Table view section footer", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activating this option allows to perform an automatic encrypted backup of your contacts, groups, and settings (messages and attachments are not backuped). Do not worry, this backup is encrypted 😇." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activer cette option permet d'effectuer une sauvegarde automatique de vos contacts, groupes et paramètres (les messages et pièces jointes ne sont pas sauvegardés)." + } + } + } + }, + "AUTOMATIC_ICLOUD_BACKUPS" : { + "comment" : "Cell title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Automatic iCloud backups" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sauvegardes iCloud automatiques" + } + } + } + }, + "Available subscription plans" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Available subscription plans" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Offres d'abonnement" + } + } + } + }, + "Back" : { + "comment" : "Back word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Back" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Retour" + } + } + } + }, + "Background App Refresh is disabled" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Background App Refresh is disabled" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'actualisation en arrière-plan est désactivée" + } + } + } + }, + "Backup" : { + "comment" : "Backup word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Backup" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sauvegarde" + } + } + } + }, + "BACKUP_%llu_COUNT" : { + "comment" : "Header for n backups", + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "One backup" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%llu backups" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "No backups" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une sauvegarde" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%llu sauvegardes" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune sauvegarde" + } + } + } + } + } + } + }, + "BACKUP_AND_SHARE_NOW" : { + "comment" : "Button title allowing to backup now", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Backup and share now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sauvegarder et partager" + } + } + } + }, + "BACKUP_AND_UPLOAD_NOW" : { + "comment" : "Button title allowing to backup and upload now", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Backup and upload to iCloud now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sauvegarder et télécharger vers iCloud" + } + } + } + }, + "Bad QR code" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bad QR code" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mauvais code QR" + } + } + } + }, + "BILLING_GRACE_PERIOD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Billing Grace Period" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Délai de grâce" + } + } + } + }, + "BIOMETRY_NOT_ENROLLED_ERROR_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "To use this feature, you need to set up either Face ID or Touch ID in the Settings app." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour utiliser cette fonctionnalité, vous devez configurer Face ID ou Touch ID dans l'app Réglages de votre appareil." + } + } + } + }, + "BIOMETRY_NOT_ENROLLED_ERROR_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please set up Face ID or Touch ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il vous faut configurer Face ID ou Touch ID" + } + } + } + }, + "BUILT_IN_SPEAKER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Speaker" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Haut-parleur" + } + } + } + }, + "BUTON_TITLE_ACTIVATE_NOTIFICATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Allow notifications" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activer les notifications" + } + } + } + }, + "BUTON_TITLE_REQUEST_RECORD_PERMISSION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Grant access to the microphone" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Autoriser le micro" + } + } + } + }, + "BUTTON_LABEL_CHECK_SUBSCRIPTION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Check subscription status" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vérifier votre abonnement" + } + } + } + }, + "BUTTON_LABEL_MANAGE_KEYCLOAK" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Switch to a managed ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Passer à un ID géré" + } + } + } + }, + "BUTTON_LABEL_REMIND_ME_LATER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remind me later" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Me rappeler plus tard" + } + } + } + }, + "BUTTON_LABEL_UPDATE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Update" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mettre à jour" + } + } + } + }, + "BUTTON_LABEL_UPDATE_KEY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Update key" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mettre la clé à jour" + } + } + } + }, + "BUTTON_TITLE_AUTHENTICATE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authenticate" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'authentifier" + } + } + } + }, + "BUY_FAILED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The subscription failed." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La demande d'abonnement a échoué." + } + } + } + }, + "BUY_SUCCEEDED_BUT_SUBSCRIPTION_EXPIRED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Although the subscription was successful, it seems your subscription expired." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La demande d'abonnement a été traitée, mais votre abonnement a expiré." + } + } + } + }, + "Cache management" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cache management" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gestion du cache" + } + } + } + }, + "Call" : { + "comment" : "Call word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appeler" + } + } + } + }, + "CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appeler" + } + } + } + }, + "CALL_BACK" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Call back" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rappeler" + } + } + } + }, + "CALL_STATE_BUSY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Busy" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Occupé" + } + } + } + }, + "CALL_STATE_CALL_REJECTED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Call rejected" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel refusé" + } + } + } + }, + "CALL_STATE_CONNECTING_TO_PEER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connection..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connexion..." + } + } + } + }, + "CALL_STATE_CONNECTION_TIMEOUT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connection timeout" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Délai de connexion expiré" + } + } + } + }, + "CALL_STATE_GETTING_TURN_CREDENTIALS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authentication..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authentification..." + } + } + } + }, + "CALL_STATE_HANGED_UP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hanged up" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel raccroché" + } + } + } + }, + "CALL_STATE_INCOMING_CALL_MESSAGE_WAS_POSTED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connecting..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connexion..." + } + } + } + }, + "CALL_STATE_INITIALIZING_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Initializing call..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Initialisation de l'appel..." + } + } + } + }, + "CALL_STATE_KICKED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Excluded" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exclue" + } + } + } + }, + "CALL_STATE_NEW" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New call..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nouvel appel..." + } + } + } + }, + "CALL_STATE_RECONNECTING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reconnection" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reconnexion" + } + } + } + }, + "CALL_STATE_RINGING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ringing..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sonnerie..." + } + } + } + }, + "Camera" : { + "comment" : "Camera word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Camera" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appareil photo" + } + } + } + }, + "Cancel" : { + "comment" : "Cancel word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancel" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Annuler" + } + } + } + }, + "CANCEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "CANCEL" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Annuler" + } + } + } + }, + "CANNOT_FETCH_LATEST_UPLOAD" : { + "comment" : "Table view section footer", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cannot fetch latest upload. You might need to configure your iCloud account." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Impossible de récuperer la dernière sauvegarde. Avez-vous bien configuré iCloud ?" + } + } + } + }, + "CAPABILITIES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Capabilities" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Capacités" + } + } + } + }, + "CAPABILITY_GROUPS_V2" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Groups v2" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Groupes v2" + } + } + } + }, + "CAPABILITY_ONE_TO_ONE_CONTACTS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "One2One contacts " + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contacts One2One" + } + } + } + }, + "CAPABILITY_WEBRTC_CONTINUOUS_ICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "VoIP v2" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "VoIP v2" + } + } + } + }, + "Category" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Category" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Catégorie" + } + } + } + }, + "CERTIFIED_BY_IDENTITY_PROVIDER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Certified by identity provider" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Certifiée par un fournisseur d'identité" + } + } + } + }, + "Chat" : { + "comment" : "Chat word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chat" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discuter" + } + } + } + }, + "Choose Discussion" : { + "comment" : "Used within a HUD to indicate to the user that she should choose a discussion for AirDrop'ed files", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose a Discussion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisir une Discussion" + } + } + } + }, + "CHOOSE_ACTIVE_DEVICE_SUBTITLE_WHEN_MULTIDEVICE_FALSE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Other devices will be deactivated within 30 days." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les autres appareils seront désactivés dans les 30 jours." + } + } + } + }, + "CHOOSE_ACTIVE_DEVICE_SUBTITLE_WHEN_MULTIDEVICE_TRUE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Here is your current device list, including the device you are about to add." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voici vos appareils actuels, ainsi que celui que vous vous apprêtez à ajouter." + } + } + } + }, + "CHOOSE_ACTIVE_DEVICE_TITLE_WHEN_MULTIDEVICE_FALSE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose which device you wish to keep active" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisissez quel appareil vous souhaitez maintenir actif" + } + } + } + }, + "CHOOSE_ACTIVE_DEVICE_TITLE_WHEN_MULTIDEVICE_TRUE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You have a multi-device subscription" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous disposez d'un abonnement multi-appareils" + } + } + } + }, + "CHOOSE_BETWEEN_GLOBAL_AND_LOCAL_OWNED_IDENTITY_DELETION_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If you choose to delete your profile from all your devices, your profile will also be deleted from your contact devices, the groups you created will be disbanded if you are the only administrator, you will leave other groups.\n\nIf you choose to only delete your profile from this device, your other devices (if you have any) won't be affected (and you'll get a chance to restore an existing backup if you wish)." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si vous choisissez de supprimer votre profil sur tous vos appareils, ce profil n'apparaîtra plus dans le carnet d'adresses de vos contacts, les groupes que vous gérez seront dissous si vous en êtes le seul administrateur, vous quitterez les groupes dont vous êtes membre.\n\nSi vous choisissez de supprimer votre profil sur cet appareil uniquement, vos autres appareils (si vous en avez) ne seront pas affectés (et vous pourrez encore restaurer une sauvegarde existante)." + } + } + } + }, + "CHOOSE_BETWEEN_GLOBAL_AND_LOCAL_OWNED_IDENTITY_DELETION_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you wish to delete your profile from all your devices or from this device only?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous supprimer ce profil sur tous vos appareils ou seulement sur celui-ci ?" + } + } + } + }, + "CHOOSE_DEVICE_NAME" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose a device name" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisissez un nom pour l'appareil" + } + } + } + }, + "CHOOSE_GLOBAL_OWNED_IDENTITY_DELETION_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete this profile from all my devices" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer sur tous mes appareils" + } + } + } + }, + "CHOOSE_GROUP_CUSTOM_NAME_AND_PHOTO_TITLE" : { + "comment" : "View controller title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Custom photo and group name" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Photo et nom personalisés" + } + } + } + }, + "CHOOSE_GROUP_MEMBERS" : { + "comment" : "View controller title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose group members" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisir les participants" + } + } + } + }, + "CHOOSE_GROUP_TYPE_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose between legacy or new groups" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisir entre les anciens et les nouveaux groupes" + } + } + } + }, + "CHOOSE_GROUP_TYPE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose group type" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisir le type de groupe" + } + } + } + }, + "CHOOSE_GROUP_V1" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group V1" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Groupe V1" + } + } + } + }, + "CHOOSE_GROUP_V2" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group V2" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Groupe V2" + } + } + } + }, + "CHOOSE_LOCAL_OWNED_IDENTITY_DELETION_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete this profile from this device only" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer sur cet appareil uniquement" + } + } + } + }, + "CHOOSE_OR_%lld_CHOSEN_DISCUSSION" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "one selected" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld selected" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "choose" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "une sélectionnée" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld sélectionnées" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "choisir" + } + } + } + } + } + } + }, + "CHOOSE_PASSWORD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose a password" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisissez un mot de passe" + } + } + } + }, + "CHOOSE_PICTURE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose a photo" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisir une photo" + } + } + } + }, + "CHOOSE_YOUR_BACKUP_FILE_ONBOARDING_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose your backup file" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisissez votre fichier de sauvegarde" + } + } + } + }, + "CHOSEN_GROUP_MEMBERS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chosen group members" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Participants choisis" + } + } + } + }, + "Clean" : { + "comment" : "Clean word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clean" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nettoyer" + } + } + } + }, + "CLEAN_LATEST_BACKUP_FOR_CURRENT_DEVICE_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please note that you are about to delete the latest iCloud backup." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Attention, vous vous apprêtez à supprimer la sauvegarde iCloud la plus récente." + } + } + } + }, + "CLEAN_LATEST_BACKUP_FOR_CURRENT_DEVICE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete the latest iCloud backup?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer la sauvegarde iCloud la plus récente ?" + } + } + } + }, + "CLEAN_LATEST_BACKUP_FOR_OTHER_DEVICE_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please note that you are about to delete the latest iCloud backup of another device." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Attention, vous vous apprêtez à supprimer la sauvegarde iCloud la plus récente d'un autre appareil." + } + } + } + }, + "CLEAN_LATEST_BACKUP_FOR_OTHER_DEVICE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete the latest iCloud backup of another device?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer la sauvegarde iCloud la plus récente d'un autre appareil ?" + } + } + } + }, + "CLEAN_OLD_BACKUPS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete old iCloud backups" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer les anciennes sauvegardes iCloud" + } + } + } + }, + "CLEAN_OLD_BACKUPS_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete all iCloud backups but the last one." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer les anciennes sauvegardes iCloud pour ne garder que la plus récente." + } + } + } + }, + "CLEAN_OLD_BACKUPS_ON_ALL_DEVICES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete backups for all devices" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer pour tous les appareils" + } + } + } + }, + "CLEAN_OLD_BACKUPS_ON_CURRENT_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete backups for this device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer pour cet appareil" + } + } + } + }, + "CLEAN_OLD_BACKUPS_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete old iCloud backups?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer les anciennes sauvegardes iCloud ?" + } + } + } + }, + "Clear cache" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clear cache" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer le cache" + } + } + } + }, + "CLEAR_ALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clear" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Recommencer" + } + } + } + }, + "CLEAR_ALL_DEVICES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clear all devices" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réinitialiser tous les appareils" + } + } + } + }, + "CLEAR_ALL_OTHER_OWNED_DEVICES_ALERT_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clearing all devices will reset all secure channels with them, perform a fresh discovery of your devices, then re-create all secure channels with them. Although all these steps are automatic, they may require some time. Recreating the secure channels requires your other devices to be online." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cette réinitialisation va détruire les canaux sécurisés avec vos autres appareils, rafraîchir la liste de vos appareils et recréer les canaux sécurisés. Bien que tout ceci soit automatique, il se peut que cela demande un peu de temps. La création des canaux sécurisés nécessite que vos autres appareils soient en ligne." + } + } + } + }, + "CLEAR_ALL_OTHER_OWNED_DEVICES_ALERT_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clear all devices?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réinitialiser tous les appareils ?" + } + } + } + }, + "CLIENT_ID" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Client Id" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Client Id" + } + } + } + }, + "CLIENT_SECRET" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Client secret" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Secret client" + } + } + } + }, + "CLONE_THIS_GROUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clone this group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cloner ce groupe" + } + } + } + }, + "CLONE_THIS_GROUP_V1_TO_GROUP_V2" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clone this group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cloner ce groupe" + } + } + } + }, + "CLONED_GROUP_NAME_FROM_ORIGINAL_NAME_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copy of %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copie de %@" + } + } + } + }, + "CLOSE_OPEN_HIDDEN_PROFILE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Close open hidden profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fermer un profil masqué ouvert" + } + } + } + }, + "Completely" : { + "comment" : "Completely word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Completely" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Totalement" + } + } + } + }, + "COMPUTE_CKRECORD_COUNT" : { + "comment" : "Button title allowing to show backup list", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Compute iCloud record count" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Calculer le nombre d'entrées iCloud" + } + } + } + }, + "CONFIGURATION_SCAN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Configuration scan" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scan de configuration" + } + } + } + }, + "CONFIGURE_BACKUPS_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Setup backups" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paramétrer les sauvegardes" + } + } + } + }, + "CONFIGURE_YOUR_IDENTITY_PROVIDER_MANUALLY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Manual configuration of your identity provider" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Configuration manuelle de votre fournisseur d'identité" + } + } + } + }, + "Confirm invite" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirm invite" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirmer l'invitation" + } + } + } + }, + "CONFIRM_PASSWORD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirm password" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirmez le mot de passe" + } + } + } + }, + "CONFIRM_YOUR_PASSCODE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirm your passcode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirmez votre code personnalisé" + } + } + } + }, + "Confirmation" : { + "comment" : "Confirmation word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirmation" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirmation" + } + } + } + }, + "Congratulations!" : { + "comment" : "View controller title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Congratulations!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bravo !" + } + } + } + }, + "Contact cannot be deleted for now" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This user cannot be deleted for now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cet utilisateur ne peut pas être supprimé pour le moment" + } + } + } + }, + "Contact Introduction Performed" : { + "comment" : "UIAlert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contact Introduction Performed" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les présentations sont faites" + } + } + } + }, + "CONTACT_HAS_N_DEVICES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ has %#@count@" + }, + "substitutions" : { + "count" : { + "formatSpecifier" : "d", + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "one device" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%arg devices" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "no device" + } + } + } + } + } + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ %#@count@" + }, + "substitutions" : { + "count" : { + "formatSpecifier" : "d", + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "a un appareil" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "a %arg appareils" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "n'a aucun appareil" + } + } + } + } + } + } + } + } + }, + "CONTACT_IS_NOT_ACTIVE_EXPLANATION_BODY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This contact was revoked by your company's identity provider. Their Olvid ID may have been compromised and the security of your communications cannot be guaranteed.\n\nIf you are sure your contact's Olvid ID was never compromised you may manually unblock them.\nPlease contact your administrator for more details." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ce contact a été révoqué par le fournisseur d'identité de votre société. Son ID Olvid a peut-être été compromis et la sécurité de vos communications ne peut être garantie.\n\nSi vous êtes certain que l'ID Olvid de votre contact n'a jamais été compromis, vous pouvez le débloquer manuellement.\nVeuillez contacter votre administrateur pour plus d'informations." + } + } + } + }, + "CONTACT_IS_NOT_ACTIVE_EXPLANATION_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contact revoked by your company's identity provider" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contact révoqué par le fournisseur d'identité de votre société" + } + } + } + }, + "CONTACT_SORT_ORDER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contact sort order..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ordre de tri des contacts..." + } + } + } + }, + "Contacts" : { + "comment" : "Contacts word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contacts" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contacts" + } + } + } + }, + "CONTACTS_AND_GROUPS" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contacts & Groups" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contacts & Groupes" + } + } + } + }, + "CONTACTS_SORT_ORDER" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contact sort order" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ordre de tri des contacts" + } + } + } + }, + "Copy" : { + "comment" : "Copy word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copy" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copier" + } + } + } + }, + "Copy App Database URL" : { + "comment" : "Button title, only in dev mode", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copy App Database URL" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copier l'URL des bases de données" + } + } + } + }, + "Copy Documents URL" : { + "comment" : "Button title, only in dev mode", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copy Documents URL" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copier l'URL des Documents" + } + } + } + }, + "Copy text" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copy text" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copier le texte" + } + } + } + }, + "Copy your Id" : { + "comment" : "Action of an alert", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copy your ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copier votre ID" + } + } + } + }, + "COPY_ERROR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copy error" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copier l'erreur" + } + } + } + }, + "COPY_ERROR_TO_PASTEBOARD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copy error to clipboard" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copier l'erreur dans le presse-papiers" + } + } + } + }, + "COPY_MY_ID_TO_CLIPBOARD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copy my ID to clipboard" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Copier mon ID dans le presse-papiers" + } + } + } + }, + "Could not delete group" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Could not delete group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le groupe n'a pas pu être supprimé" + } + } + } + }, + "COULD_NOT_PERFORM_OWNED_IDENTITY_TRANSFER_ALERT_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The profile could not be transfered. Please try again. If the problem persists, please contact %@." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le profil n'a pas pu être transféré. Si ce problème persisted, contactez %@." + } + } + } + }, + "COULD_NOT_PERFORM_OWNED_IDENTITY_TRANSFER_ALERT_%@_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The profile could not be transfered. Please try again. If the problem persists, please contact %@. The error is: %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le profil n'a pas pu être transféré. Si ce problème persisted, contactez %@. L'erreur est : %@" + } + } + } + }, + "COULD_NOT_QUERY_SERVER_FOR_API_KEY_ELEMENTS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "We could not obtain the permissions associated to the API key. Please check your network connection and try again." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nous n'avons pas réussi à déterminer les permissions associées à la clé d'API. Veuillez vérifier votre connexion internet et essayer à nouveau." + } + } + } + }, + "COULD_NOT_SWITCH_TO_MANAGED_ID" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Could not switch to a managed ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il n'a pas été possible de passer à un ID géré" + } + } + } + }, + "count attachments" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "One attachment" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u attachments" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "No attachment" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une pièce jointe" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u pièces jointes" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune pièce jointe" + } + } + } + } + } + } + }, + "COUNT_BASED_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Count based" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "En nombre" + } + } + } + }, + "COUNT_BASED_SECTION_FOOTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Old messages will be regularly deleted, so as to keep the number of message per discussion less than the value you enter here." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les anciens messages de vos discussions seront régulièrement supprimés afin que le nombre maximal de messages par discussion reste inférieur à la limite que vous indiquez ici." + } + } + } + }, + "COUNT_BASED_SINGLE_DISCUSSION_SECTION_FOOTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Old messages will be regularly deleted from this discussion, so as to keep the number of message less than the value you enter here." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les anciens messages de cette discussion seront régulièrement supprimés afin que leur nombre reste inférieur à la limite que vous indiquez ici." + } + } + } + }, + "Create" : { + "comment" : "Create word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créer" + } + } + } + }, + "Create groups" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create groups" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créer des groupes" + } + } + } + }, + "CREATE_FIRST_GROUP_WITH_OWN_PERMISSION_ADMIN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create your first group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créez votre premier groupe" + } + } + } + }, + "CREATE_GROUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create the group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créer le groupe" + } + } + } + }, + "CREATE_GROUP_WITH_OWN_PERMISSION_ADMIN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create a group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créer un groupe" + } + } + } + }, + "CREATE_MY_GROUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create the group now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créer le groupe" + } + } + } + }, + "CREATE_MY_ID" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create my profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créer mon profil" + } + } + } + }, + "CREATE_MY_PASSCODE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create my passcode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créer mon code personnalisé" + } + } + } + }, + "CREATE_PASSWORD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create password" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créer le mot de passe" + } + } + } + }, + "CREATE_YOUR_PASSCODE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create your passcode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créez votre code personnalisé" + } + } + } + }, + "Current backup key generated: %@" : { + "comment" : "Table view section footer", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Current backup key generated: %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clé de sauvegarde générée: %@" + } + } + } + }, + "CURRENT_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cet appareil" + } + } + } + }, + "CURRENT_DEVICE_LOWERCAES_WITH_PARENTHESES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "(this device)" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "(cet appareil)" + } + } + } + }, + "CURRENT_LICENSE_STATUS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Current license status" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Licence actuelle" + } + } + } + }, + "CUSTOM_KEYBOARD_MANAGEMENT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Custom keyboards management" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gestion des claviers personnalisés" + } + } + } + }, + "CUSTOM_KEYBOARD_MANAGEMENT_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Any change to this parameter will require a complete restart of Olvid before it can take effect." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tout changement de ce paramètre ne prendra effet qu'après un redémarrage complet d'Olvid." + } + } + } + }, + "DATE" : { + "comment" : "Date word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Date" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Date" + } + } + } + }, + "day" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "day" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "jour" + } + } + } + }, + "DEACTIVATE" : { + "comment" : "Deactivate word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deactivate" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désactiver" + } + } + } + }, + "DEACTIVATE_%@_AND_ACTIVATE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deactivate %@ and activate %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désactiver %@ et activer %@" + } + } + } + }, + "DEACTIVATE_SELECTED_DEVICE_AND_ACTIVATE_THIS_ONE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deactivate selected device and activate this one" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désactiver l'appareil sélectionné et activer celui-ci" + } + } + } + }, + "Debug" : { + "comment" : "Debug word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Debug" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Debug" + } + } + } + }, + "Decline" : { + "comment" : "Decline word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Decline" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Décliner" + } + } + } + }, + "Default" : { + "comment" : "Default word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Default" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Par défaut" + } + } + } + }, + "DEFAULT_DISCUSSION_SETTINGS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Default settings for this discussion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paramètres par défaut pour cette discussion" + } + } + } + }, + "DEFAULT_EMOJI" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Default quick emoji" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Emoji rapide par défaut" + } + } + } + }, + "DEFAULT_EMOJI_AT_APP_LEVEL" : { + "comment" : "Section header", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quick emoji" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Emoji rapide" + } + } + } + }, + "Delete" : { + "comment" : "Delete word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer" + } + } + } + }, + "Delete all messages" : { + "comment" : "Alert action title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete all messages" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer tous les messages" + } + } + } + }, + "Delete all messages for all users" : { + "comment" : "Alert action title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete all messages for all users" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer tous les messages chez tous les utilisateurs" + } + } + } + }, + "Delete all messages for all users?" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete all messages for all users?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer tous les messages chez tous les utilisateurs ?" + } + } + } + }, + "Delete all messages?" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete all messages?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer tous les messages ?" + } + } + } + }, + "Delete group" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer le groupe" + } + } + } + }, + "Delete Message" : { + "comment" : "Title of alert", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete Message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer le message" + } + } + } + }, + "Delete Message and Attachments" : { + "comment" : "Title of alert", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete Message and Attachments" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer le message et les pièces jointes" + } + } + } + }, + "Delete this contact?" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete this user?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer cet utilisateur ?" + } + } + } + }, + "DELETE_ALL_MSGS_ON_ALL_DEVICES__ACTION_IRREVERSIBLE" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you wish to delete all the messages on all the devices of all the users of this discussion? This action is irreversible." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous supprimer tous les messages des appareils de tous les participants de cette discussion ? Attention, cette opération est irréversible." + } + } + } + }, + "DELETE_CONTACT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer le contact" + } + } + } + }, + "DELETE_ITEMS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete items" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer les éléments" + } + } + } + }, + "DELETE_OLVID_USER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete this user" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer cet utilisateur" + } + } + } + }, + "DELETE_OWN_REACTION" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete my reaction" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer ma réaction" + } + } + } + }, + "DELETE_THIS_IDENTITY_BUTTON" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete this profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer ce profil" + } + } + } + }, + "DELETE_THIS_IDENTITY_QUESTION_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deleting this profile will delete any information related to it from your device. This includes the contacts, groups, and the content of all your discussions (messages and attachments) for this profile. Your other profiles will not be affected by this operation.\nIf you have enabled backups in Olvid, your future backups will not contain any trace of this profile and you will not be able to restore it." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer un profil effacera toute information associée à ce profil de votre appareil. Cela inclut vos contacts, vos groupes et le contenu de toutes vos discussions pour ce profil. Vos autres profils ne seront pas affectés par cette opération.\nSi vous avez activé les sauvegardes Olvid, vos futures sauvegardes ne contiendront aucune trace de ce profil et vous ne serez pas en mesure de le restaurer." + } + } + } + }, + "DELETE_THIS_IDENTITY_QUESTION_TITLE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete the profile \"%@\"?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer le profil « %@ » ?" + } + } + } + }, + "DELETE_THIS_LAST_UNHIDDEN_IDENTITY_QUESTION_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deleting this profile will delete any information related to it from your device. This includes the contacts, groups, and the content of all your discussions (messages and attachments) for this profile.\n\nThis is your only visible profile and if you have any hidden profile, they will be deleted simultaneously.\nIf you have enabled backups in Olvid, your future backups will not contain any trace of this profile and you will not be able to restore it." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer un profil effacera toute information associée à ce profil de votre appareil. Cela inclut vos contacts, vos groupes et le contenu de toutes vos discussions pour ce profil.\n\nCe profil est votre seul profil visible et si vous avez des profils masqués, ceux-ci seront également supprimés.\nSi vous avez activé les sauvegardes Olvid, vos futures sauvegardes ne contiendront aucune trace de ce profil et vous ne serez pas en mesure de le restaurer." + } + } + } + }, + "DELETE_THIS_LAST_UNHIDDEN_IDENTITY_QUESTION_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete this last profile?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer ce dernier profil ?" + } + } + } + }, + "DELETE_USER_ACTION_TITLE" : { + "comment" : "Action title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete this user now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer cet utilisateur maintenant" + } + } + } + }, + "Deleted" : { + "comment" : "Deleted word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deleted" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimé" + } + } + } + }, + "Deleted message" : { + "comment" : "Body displayed when a reply-to message was deleted.", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deleted message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message supprimé" + } + } + } + }, + "DELETION_IN_PROGRESS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deletion in progress" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suppression en cours" + } + } + } + }, + "DELETION_TERMINATED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deletion done" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suppression terminée" + } + } + } + }, + "Delivered" : { + "comment" : "Delivered word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delivered" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Distribué" + } + } + } + }, + "Details" : { + "comment" : "Details word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Details" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Détails" + } + } + } + }, + "DETAILS_SIGNED_BY_IDENTITY_PROVIDER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Details signed by the identity provider" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Détails signés par le fournisseur d'identité" + } + } + } + }, + "DEVICE %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Device %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appareil %@" + } + } + } + }, + "DEVICE %lld" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Device %lld" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dispositif %lld" + } + } + } + }, + "DEVICE_DEACTIVATED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deactivated" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désactivé" + } + } + } + }, + "DEVICE_DEACTIVATED_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deactivation %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désactivé %@" + } + } + } + }, + "DEVICE_LAST_ONLINE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Last online %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dernière présence en ligne %@" + } + } + } + }, + "DEVICE_WONT_BE_DEACTIVATED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No deactivation planned" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune désactivation prévue" + } + } + } + }, + "Devices" : { + "comment" : "Devices word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Devices" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appareils" + } + } + } + }, + "DIALOG_MESSAGE_FAILED_TO_UPLOAD_IDENTITY_TO_KEYCLOAK" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid was unable to upload your Olvid ID to your company's identity provider. It will be retried in the background." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid n'a pas réussi à transmettre votre ID Olvid au fournisseur d'identité de votre entreprise. De nouveaux essais seront réalisés en tâche de fond." + } + } + } + }, + "DIALOG_MESSAGE_KEYCLOAK_IDENTITY_WAS_REVOKED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "It seems that your account was removed from your company's identity provider. If you left your company, this is normal and you may continue using Olvid as a free user.\n\nIf you believe this is an error, please contact your administrator to re-register this identity provider with Olvid." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il semble que votre compte a été supprimé du fournisseur d'identité de votre société. Si vous avez quitté votre entreprise, ceci est normal et vous pouvez continuer à utiliser Olvid en tant qu'utilisateur gratuit.\n\nSi vous pensez que c'est une erreur, veuillez contacter votre administrateur pour enregistrer à nouveau ce fournisseur d'identité dans Olvid." + } + } + } + }, + "DIALOG_MESSAGE_KEYCLOAK_SIGNATURE_KEY_CHANGED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid detected a change in the cryptographic signature key of your identity provider. This should normally never happen.\n\nPlease contact your administrator and only press \"Update Key\" if she can confirm the key change was intentional. If unsure, press \"Cancel\"." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid a détecté une modification de la clé de signature cryptographique de votre fournisseur d'identité. Cela ne devrait normalement jamais arriver.\n\nVeuillez contacter votre administrateur et n'appuyer sur « Mettre la clé à jour » que s'il peut confirmer que cette modification est intentionnelle. En cas de doute, appuyez sur « Annuler »." + } + } + } + }, + "DIALOG_MESSAGE_OUTDATED_VERSION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your version of Olvid is outdated and needs to be updated.\n\nYou are probably missing out on many new features and we cannot guarantee the compatibility of your version with newer versions of the app that your contacts may use." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre version d'Olvid est dépassée et doit être mise à jour.\n\nVous passez probablement à côté de nombreuses nouvelles fonctionnalités et nous ne pouvons pas vous garantir la compatibilité de votre version avec les versions plus récentes utilisées par vos contacts." + } + } + } + }, + "DIALOG_MESSAGE_UNBIND_FROM_KEYCLOAK" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your Olvid ID is currently managed by your company's identity provider. You are about to switch to a normal, un-managed, Olvid ID.\n\nIf you proceed, you will no longer be able to seamlessly add contacts from your company to Olvid. Please contact your administrator for more details.\n\nDo you wish to proceed?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre ID Olvid est actuellement géré par le fournisseur d'identité de votre société. Vous êtes sur le point de passer à un ID Olvid normal, non-géré.\n\nSi vous continuez, vous ne pourrez plus ajouter automatiquement d'autres employés à vos contacts. Veuillez contacter votre administrateur pour plus de détails.\n\nSouhaitez-vous continuer ?" + } + } + } + }, + "DIALOG_MISSING_MESSAGES_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This missing message indicator tells you that a gap was detected in the numbering sequence of messages received from your contact.\n\nThis can either be that the sending of a message was cancelled (the message will never reach you), or that a larger message (typically with attachment) has not finished uploading yet (you should receive it soon)." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cet indicateur de message manquant vous prévient qu'un trou a été détecté dans la séquence de numérotation des messages reçus de votre contact.\n\nCeci est soit dû à l'annulation d'envoi d'un message (vous ne recevrez jamais ce message), soit à l'envoi d'un message plus gros (en général, avec des pièces jointes) qui n'a pas encore été entièrement déposé sur le serveur (vous devriez le recevoir prochainement)." + } + } + } + }, + "DIALOG_MISSING_MESSAGES_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Missing messages" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Messages manquants" + } + } + } + }, + "DIALOG_OWNED_IDENTITY_WAS_REVOKED_BY_KEYCLOAK_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your company's identity provider revoked your Olvid ID. Please contact your administrator." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le fournisseur d'identité de votre entreprise a révoqué votre ID Olvid. Nous vous recommandons de contacter votre administrateur." + } + } + } + }, + "DIALOG_OWNED_IDENTITY_WAS_REVOKED_BY_KEYCLOAK_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your Olvid ID was revoked" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre ID Olvid a été révoqué" + } + } + } + }, + "DIALOG_TITLE_IDENTITY_PROVIDER_ERROR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Identity provider error" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erreur du fournisseur d'identité" + } + } + } + }, + "DIALOG_TITLE_KEYCLOAK_IDENTITY_WAS_REVOKED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Identity provider removed" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "fournisseur d'identité supprimé" + } + } + } + }, + "DIALOG_TITLE_KEYCLOAK_SIGNATURE_KEY_CHANGED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Identity provider key change" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Changement de clé du fournisseur d'identité" + } + } + } + }, + "DIALOG_TITLE_OUTDATED_VERSION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Update required" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mise à jour requise" + } + } + } + }, + "Directory" : { + "comment" : "Directory word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Directory" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Annuaire" + } + } + } + }, + "DISBAND_GROUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Disband this group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer ce groupe" + } + } + } + }, + "Discard" : { + "comment" : "Discard word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discard" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer" + } + } + } + }, + "Discard changes" : { + "comment" : "Alert button title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discard changes" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abandonner les modifications" + } + } + } + }, + "DISCUSS_WITH_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discuss with %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discuter avec %@" + } + } + } + }, + "Discussion" : { + "comment" : "Discussion word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discussion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discussion" + } + } + } + }, + "DISCUSSION_QUICK_EMOJI" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quick emoji for this discussion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Emoji rapide pour cette discussion" + } + } + } + }, + "DISCUSSION_SETTINGS" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discussion settings" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paramètres de la discussion" + } + } + } + }, + "discussion-default-settings-view.mention-notification-mode.picker.footer.title" : { + "comment" : "Picker footer for the default mention notification mode", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Global Setting to be notified when being mentioned within a Discussion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réglage global pour être notifié lorsqu’on est mentionné dans une Discussion" + } + } + } + }, + "discussion-default-settings-view.mention-notification-mode.picker.mode.always" : { + "comment" : "Display title for the `always` value for mention notification mode", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Always" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toujours" + } + } + } + }, + "discussion-default-settings-view.mention-notification-mode.picker.mode.never" : { + "comment" : "Display title for the `never` value for mention notification mode", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Never" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jamais" + } + } + } + }, + "discussion-default-settings-view.mention-notification-mode.picker.title" : { + "comment" : "Picker title for the default mention notification mode", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mention Notification Mode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mode de notification pour les mentions" + } + } + } + }, + "discussion-expiration-settings-view.body.section.mention-notification-mode.picker.footer.title" : { + "comment" : "Picker footer for the mention notification mode", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Setting to be notified when being mentioned within this Discussion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réglage pour être notifié lorsqu’on est mentionné dans cette Discussion" + } + } + } + }, + "discussion-expiration-settings-view.body.section.mention-notification-mode.picker.title" : { + "comment" : "Picker title for the mention notification mode", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mention Notification Mode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mode de notification pour les mentions" + } + } + } + }, + "Discussions" : { + "comment" : "Discussions word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discussions" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discussions" + } + } + } + }, + "DISK_USAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Storage used" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Espace de stockage occupé" + } + } + } + }, + "Dismiss" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dismiss" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fermer" + } + } + } + }, + "Do you really wish to restart the channel establishment?" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you really wish to restart the channel establishment?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez vous redémarrer l'établissement du canal sécurisé ?" + } + } + } + }, + "Do you want to send a new invitation to your contact?" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you want to send a new invitation to your contact?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous envoyer une nouvelle invitation à votre contact ?" + } + } + } + }, + "Do you want to send an invitation to %@?" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you want add %@ to your contacts?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Souhaitez-vous entrer en contact avec %@ ?" + } + } + } + }, + "Do you wish to add %@ to your contacts?" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you wish to add %@ to your contacts?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous ajouter %@ à vos contacts ?" + } + } + } + }, + "Do you wish to delete all the messages within this discussion? This action is irreversible." : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you wish to delete all the messages within this discussion? This action is irreversible." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous supprimer tous les messages de cette discussion ? Attention, cette opération est irréversible." + } + } + } + }, + "Do you wish to open %@ in Safari?" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you wish to open %@ in Safari?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous ouvrir %@ dans Safari ?" + } + } + } + }, + "DO_STOP_ONE_TO_ONE_DISCUSSION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remove from contacts" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Retirer des contacts" + } + } + } + }, + "DO_YOU_HAVE_OTHER_PROFILES_TO_ADD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If you have multiple profiles on your other device, would you like to add them too?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si vous avez plusieurs profils sur votre deuxième appareil, voulez-vous les ajouter aussi ?" + } + } + } + }, + "DO_YOU_WANT_ALL_YOUR_DEVICE_TO_STAY_ACTIVE_[THIS_WAY](_)" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you want all your devices to stay active? [This way](_)" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous que tous vos appareils restent actifs ? [Par ici](_)" + } + } + } + }, + "DO_YOU_WISH_TO_STOP_ONE_TO_ONE_DISCUSSION_WITH_@_ALERT_MESSAGE" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Removing %1$@ from your contacts will end the private discussion you have with this user (in other words, you will no longer be able to exchange messages in your private discussion with %1$@). You will still be able to exchange messages in groups you have in common." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "En retirant %1$@ de vos contacts, vous mettez fin à la discussion privée avec cet utilisateur (autrement dit, vous ne pourrez plus échanger de messages dans votre discussion privée avec %1$@). Cela ne vous empêchera pas d'échanger des messages dans vos groupes communs." + } + } + } + }, + "Documents" : { + "comment" : "Documents word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Documents" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Documents" + } + } + } + }, + "DOWNGRADE_CONTACT_TO_NON_ONE_TO_ONE_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remove from contacts" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Retirer des contacts" + } + } + } + }, + "DOWNLOAD_MISSING_PROFILE_PICTURES_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Download missing profile pictures" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Télécharger les photos de profils manquantes" + } + } + } + }, + "DOWNLOAD_MISSING_PROFILE_PICTURES_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If you believe that certain profile pictures are missing (for contacts, groups, or your own profiles), you may try to (re)download them." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si vous pensez que certaines photos de profils sont manquantes (que ce soit pour vos contacts, groupes ou profils personnels), vous pouvez essayer de les télécharger à nouveau." + } + } + } + }, + "Downloading File..." : { + "comment" : "Displayed in QuickLook when showing a downloading file", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "File not downloaded yet 😕" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le téléchargement n'est pas terminé 😕" + } + } + } + }, + "Downloads" : { + "comment" : "Downloads word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Downloads" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Téléchargements" + } + } + } + }, + "DRAFT_EXPIRATION_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Use the settings below to modify the visibility and existence durations of your next message. You may only use more restrictive settings than the discussion's default." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Utilisez les paramètres ci-dessous pour modifier les durées de visibilité et d'existence de votre prochain message. Vous ne pouvez pas choisir des paramètres moins restrictifs que les paramètres par défaut de la discussion." + } + } + } + }, + "DRAG_AND_DROP_TO_CONFIGURE_PREFERRED_EMOJIS_LIST" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Drop your favorite reactions here!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Déposez ici vos réactions préférés !" + } + } + } + }, + "Edit" : { + "comment" : "Edit word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifier" + } + } + } + }, + "EDIT_CURRENT_IDENTITY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Manage current profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gérer le profil courant" + } + } + } + }, + "EDIT_GROUP" : { + "comment" : "View controller title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifier le groupe" + } + } + } + }, + "EDIT_GROUP_DETAILS_AS_ADMINISTRATOR_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit title" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifier le titre" + } + } + } + }, + "EDIT_GROUP_MEMBERS_AS_ADMINISTRATOR_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit members" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifier les membres" + } + } + } + }, + "EDIT_MY_ID" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit my ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifier mon ID" + } + } + } + }, + "EDIT_NICKNAME_AND_CUSTOM_PHOTO" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit custom name and photo" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Éditer le surnom et la photo personalisée" + } + } + } + }, + "EDIT_NICKNAME_AND_CUSTOM_PICTURE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit nickname and custom picture" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Editer le surnom et la photo personnalisée" + } + } + } + }, + "EDIT_NICKNAME_AND_CUSTOM_PICTURE_EXPLANATION_FOR_CONTACT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You can choose a nickname and a custom profile picture for your contact. They will only appear on your devices, and won't be shared with anyone." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous pouvez choisir un surnom et une photo de profil personnalisée pour votre contact. Ils apparaîtront sur vos appareils uniquement, et ne seront partagés avec personne." + } + } + } + }, + "EDIT_NICKNAME_AND_CUSTOM_PICTURE_EXPLANATION_FOR_GROUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You can choose a nickname and a custom profile picture for this group. They will only appear on your devices, and won't be shared with anyone." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous pouvez choisir un surnom et une photo de profil personnalisée pour ce groupe. Ils apparaîtront sur vos appareils uniquement, et ne seront partagés avec personne." + } + } + } + }, + "EDIT_OWNED_IDENTITY_NICKNAME" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit my nickname" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Éditer mon pseudo" + } + } + } + }, + "EDIT_PERSONAL_NOTE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit personal note" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Éditer la note personnelle" + } + } + } + }, + "EDIT_YOUR_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit your message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifiez votre message" + } + } + } + }, + "Edited" : { + "comment" : "Edited word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edited" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifié" + } + } + } + }, + "ENABLE" : { + "comment" : "Enable word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enable" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activer" + } + } + } + }, + "ENABLE_AUTOMATIC_BACKUP" : { + "comment" : "Table view section header", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enable automatic backups to iCloud" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activer la sauvegarde automatique vers iCloud" + } + } + } + }, + "ENABLE_AUTOMATIC_BACKUP_AND_CONTINUE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activate automatic backup" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activer les sauvegardes automatiques" + } + } + } + }, + "ENABLE_AUTOMATIC_BACKUP_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The backup was successfully restored. To make sure you can restore a fresh backup the next time you need to, we recommend to activate automatic iCloud backups." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La sauvegarde a été restaurée avec succès. Pour vous assurer de pouvoir restaurer à nouveau une sauvegarde la prochaine fois que vous en aurez besoin, nous vous recommandons d'activer les sauvegardes automatiques vers iCloud." + } + } + } + }, + "ENABLE_RUNNING_LOGS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enable in-app logs" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activer les logs intégrés" + } + } + } + }, + "End" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "End" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fin" + } + } + } + }, + "ENGINE_DIRECTORIES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Directories within the engine" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Répertoires de l'engine" + } + } + } + }, + "Enter backup key" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enter backup key" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clé de sauvegarde" + } + } + } + }, + "Enter your personal details" : { + "comment" : "Section title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enter your personal details" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre identité" + } + } + } + }, + "ENTER_GROUP_DETAILS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New group details" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Détails du nouveau groupe" + } + } + } + }, + "ENTER_PASSWORD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enter a password" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entrez un mot de passe" + } + } + } + }, + "ENTER_YOUR_PASSCODE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enter your passcode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entrez votre code personnalisé" + } + } + } + }, + "EPHEMERAL_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ephemeral message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message éphémère" + } + } + } + }, + "EPHEMERAL_MESSAGES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ephemeral messages" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Messages éphémères" + } + } + } + }, + "ERROR" : { + "comment" : "Error word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Error" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erreur" + } + } + } + }, + "ERROR_DESCRIPTION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Error description:" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Description de l'erreur:" + } + } + } + }, + "ESTABLISHING_SECURE_CHANNEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Establishing a secure discussion channel" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Établissement d'un canal de discussion sécurisé" + } + } + } + }, + "ESTABLISHING_SECURE_CHANNEL_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "A secure discussion channel is currently being created. This process should take a few seconds if both you and your contact are online.\n\nIf you believe that something went wrong, you can restart the channel creation." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Un canal sécurisé est actuellement en cours de création. Ce processus ne demande que quelques secondes si vous et votre contact êtes tous deux en ligne.\n\nSi vous pensez que quelque chose s'est mal passé, vous pouvez redémarrer la création de ce canal." + } + } + } + }, + "ESTIMATING_TIME_REMAINING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Estimating remaining time..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Estimation du temps restant..." + } + } + } + }, + "Everyone" : { + "comment" : "Everyone word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Everyone" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tout le monde" + } + } + } + }, + "Exclude" : { + "comment" : "Exclude word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exclude" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exclure" + } + } + } + }, + "EXPECTED_DELETION_DATE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deletion date" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Date de suppression" + } + } + } + }, + "Expiration" : { + "comment" : "Expiration word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expiration" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expiration" + } + } + } + }, + "EXPIRATION_SETTINGS_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The settings below are shared between all participants in this discussion. Changing them will affect the default visibility and existence duration of messages sent by all participants." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les paramètres ci-dessous sont partagés par l'ensemble des participants à la discussion. En cas de modification, la nouvelle durée de visibilité et d'existence sera envoyée à tous les participants." + } + } + } + }, + "EXPIRATION_SETTINGS_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ephemeral messages" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Messages éphémères" + } + } + } + }, + "Expired" : { + "comment" : "Expired word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expired" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expiré" + } + } + } + }, + "Expired since %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expired since %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expirée depuis le %@" + } + } + } + }, + "EXPLANATION_CONTACT_REVOKED_AND_UNBLOCKED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This contact was revoked by your company's identity provider. Their Olvid ID may have been compromised and the security of your communications cannot be guaranteed.\n\nYou previously decided to manually unblock them. If you are unsure about your decision, it is recommended you re-block this contact.\nPlease contact your administrator for more details." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ce contact a été révoqué par le fournisseur d'identité de votre société. Leur ID Olvid a peut-être été compromis et la sécurité de vos communications ne peut être garantie.\n\nVous avez précédemment décidé de le débloquer manuellement. Si vous n'êtes pas certain de votre décision, il est recommandé de bloquer ce contact à nouveau.\nVeuillez contacter votre administrateur pour plus d'informations." + } + } + } + }, + "EXPLANATION_FOR_CLONING_A_GROUP_V1_TO_GROUP_V2" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This group does not support more than one administrator. But you can clone this group into a new one that will 🚀!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ce groupe ne permet pas d'avoir plusieurs administrateurs. Mais vous pouvez le cloner en un nouveau groupe de dernière génération qui le permettra 🚀 !" + } + } + } + }, + "EXPLANATION_KEYCLOAK_BIND" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The name above was retrieved from your company's identity provider. Once your Olvid ID is managed by your this provider, this is how your contacts will see you in Olvid." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le nom ci-dessus à été récupéré depuis le fournisseur d'identité de votre société.\nUne fois votre ID Olvid géré par ce fournisseur, c'est comme cela que vos contacts vous verront dans Olvid." + } + } + } + }, + "EXPLANATION_KEYCLOAK_UPDATE_BAD_SERVER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid was unable to configure your company's identity provider with your current Olvid ID because your ID was generated on a different Olvid server." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid ne peut pas configurer le fournisseur d'identité de votre société avec votre ID Olvid actuel. Votre ID a été généré sur un serveur Olvid différent." + } + } + } + }, + "EXPLANATION_KEYCLOAK_UPDATE_NEW" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are about to configure your company's identity provider in Olvid. Once configured, you can authenticate with this server and Olvid will let you to seamlessly add other employees to your contacts." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous êtes sur le point de configurer le fournisseur d'identité de votre société au sein d'Olvid. Une fois configuré, vous pourrez vous authentifier auprès de ce serveur et Olvid vous permettra d'ajouter automatiquement d'autres employés à vos contacts." + } + } + } + }, + "EXPLANATION_MANAGED_IDENTITY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The name above was retrieved from your Identity provider and can't be changed. You may still choose a profile picture. These details will never be sent to Olvid's servers." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le nom ci-dessus a été obtenu via votre fournisseur d'identité et ne peut être modifié. Vous pouvez néanmoins choisir une photo de profil. Ces informations ne seront jamais envoyées aux serveurs d'Olvid." + } + } + } + }, + "EXPLANATION_PLACED_ABOVE_LIST_OF_NON_ONE_TO_ONE_CONTACTS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The following users are not part of your contacts (yet), so you cannot have a private discussion with them. But you can invite them easily 🚀!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les utilisateurs ci-dessous ne font pas (encore) partie de vos contacts, et vous ne pouvez donc pas encore avoir de discussion privée avec eux. Mais vous pouvez les y inviter facilement 🚀 !" + } + } + } + }, + "EXPLANATION_WHY_RECORD_PERMISSION_IS_IMPORTANT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "To place or receive secure calls ☎️, and to record voice messages 🎵, Olvid needs access to the microphone.\n\nTo make sure you never miss a secure call, we recommend you grant access now 🤓." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour passer ou recevoir des appels sécurisés ☎️ et pour enregistrer des messages audio 🎵, il faut accorder à Olvid le droit d'accéder au micro.\n\nAfin de ne rater aucun appel, nous vous recommandons de le faire maintenant 🤓." + } + } + } + }, + "Export App Database" : { + "comment" : "only in dev mode", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Export App Database" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exporter la base de données de l'App" + } + } + } + }, + "Export Engine Database" : { + "comment" : "only in dev mode", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Export Engine Database" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exporter la base de données de l'Engine" + } + } + } + }, + "Export to File App" : { + "comment" : "Alert button title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Export to File App" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exporter vers l'App Fichiers" + } + } + } + }, + "EXPORT_TMP_DIRECTORY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Export the tmp directory" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exporter le répertoire tmp" + } + } + } + }, + "Failed" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Failed" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Échoué" + } + } + } + }, + "FAILED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Failed" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Échec" + } + } + } + }, + "FAILED_TO_HIDE_OWNED_ID_ALERT_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please try again. When choosing the password, please make sure it is not a prefix of an existing hidden profile password." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous pouvez essayer à nouveau, en prenant garde à choisir un mot de passe qui ne soit pas le préfixe d'un mot de passe d'un autre profil masqué." + } + } + } + }, + "FAILED_TO_HIDE_OWNED_ID_ALERT_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The profile could not be hidden" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le profil n'a pas pu être masqué" + } + } + } + }, + "FAILED_TO_RESTORE_PURCHASES_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Previous purchases could not be restored: %@." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les achats n'ont pas pu être restaurés : %@." + } + } + } + }, + "FAILED_TO_START_FREE_TRIAL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your free trial could not be started. Please try again later." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'essai gratuit n'a pas pu être activé. N'hésitez pas à essayer à nouveau plus tard." + } + } + } + }, + "Fetching latest upload" : { + "comment" : "Table view section footer", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fetching latest upload..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Récupération de la dernière sauvegarde..." + } + } + } + }, + "File exported to Files App" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "File exported to Files App" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fichier exporté vers l'app Fichiers" + } + } + } + }, + "FILES_APP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Files" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fichiers" + } + } + } + }, + "FIRST_NAME_LAST_NAME" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "First, Last" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prénom Nom" + } + } + } + }, + "FOLLOWING_MEMBERS_MUST_UPGRADE_BEFORE_CREATING_GROUP_V2_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "In order to create a group V2, all group members must use a recent version of Olvid 🤓. Please try again after asking the following members to upgrade to the latest version of Olvid:\n%@." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour pouvoir créer un groupe v2, tous les membres doivent utiliser une version récente d'Olvid 🤓. Avant d'essayer à nouveau, demandez aux contacts suivants de mettre Olvid à jour:\n%@." + } + } + } + }, + "Forgot your backup key?" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Forgot your backup key?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clé de sauvegarde oubliée ?" + } + } + } + }, + "FORM_COMPANY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Company" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Société" + } + } + } + }, + "FORM_FIRST_NAME" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "First name" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prénom" + } + } + } + }, + "FORM_LAST_NAME" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Last name" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nom de famille" + } + } + } + }, + "FORM_NICKNAME" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nickname" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Surnom" + } + } + } + }, + "FORM_POSITION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Position" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Poste" + } + } + } + }, + "Forwarded" : { + "comment" : "Forward word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Forwarded" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Transféré" + } + } + } + }, + "Free" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Free" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gratuit" + } + } + } + }, + "Free features" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Free features" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fonctionnalités gratuites" + } + } + } + }, + "FREE_TRIAL_ENDED_ON_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The free trial expired on %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La période d'essai a expiré le %@" + } + } + } + }, + "FREE_TRIAL_EXPIRED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Free trial expired" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Période d'essai expirée" + } + } + } + }, + "Gallery" : { + "comment" : "Gallery word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gallery" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Galerie" + } + } + } + }, + "Generate new backup key now" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Generate new backup key now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Regénérer une clé de sauvegarde maintenant" + } + } + } + }, + "Generate new backup key?" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Generate new backup key?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Générer une nouvelle clé de sauvegarde ?" + } + } + } + }, + "GENERATE_BACKUP_KEY_SECTION_TITLE" : { + "comment" : "Table view section header", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Backup key" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clé de sauvegarde" + } + } + } + }, + "GENERATE_NEW_BACKUP_KEY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Generate a backup key" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Générer une clé de sauvegarde" + } + } + } + }, + "GLOBAL_EXPIRATION_SETTINGS_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The settings below will be applied to all new one-to-one discussions and to all new group discussions that you create. Please note that these settings will be shared among all the participant of the discussion." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les paramètres ci-dessous seront appliqués à toute nouvelle discussion « one-to-one » ainsi qu'à toute nouvelle discussion de groupe que vous créerez. Veuillez noter que ces paramètres de discussion seront partagés avec tous les participants." + } + } + } + }, + "GLOBAL_LOCAL_EPHEMERAL_SETTINGS_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The settings below allow you to locally customize the default behavior of ephemeral messages. These settings are not shared with other discussion participants." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les réglages ci-dessous vous permettent d'ajuster localement le comportement par défaut des messages éphémères. Ces paramètres ne sont pas partagés avec les autres participants aux discussions." + } + } + } + }, + "GLOBAL_RETENTION_SETTINGS_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The settings below allow you to automatically delete old messages in your discussions. They can be overidden in each discussion." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les réglages ci-dessous vous permettent de supprimer automatiquement de vieux messages dans vos discussions. Ces paramètres par défaut peuvent être modifiés indépendamment pour chaque discussion." + } + } + } + }, + "GO_TO_APP_STORE_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Open the App Store" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvrir l'App Store" + } + } + } + }, + "GRACE_PERIOD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Require authentication" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exiger l'authentification" + } + } + } + }, + "GRACE_PERIOD_ENDED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Grace period ended" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le délai de grâce est échu" + } + } + } + }, + "GRACE_PERIOD_ENDED_ON_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Grace period ended on %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La période de grâce a pris fin le %@" + } + } + } + }, + "GRACE_PERIOD_ENDS_ON_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Grace period ends on %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La période de grâce prendra fin le %@" + } + } + } + }, + "GRACE_PERIOD_EXPLANATION_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "After being closed, Olvid will be locked after %@." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une fois fermée, Olvid se verrouillera après %@." + } + } + } + }, + "GRACE_PERIOD_TITLE_%@" : { + "comment" : "Notification body", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "after %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "après %@" + } + } + } + }, + "GRANT_PERMISSION_TO_RECORD_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Allow microphone access" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Autoriser l'accès au micro" + } + } + } + }, + "GRANT_PERMISSION_TO_RECORD_IN_SETTINGS_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Go to Settings" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aller dans les Réglages" + } + } + } + }, + "Group Card" : { + "comment" : "Olvid card corner text", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card" + } + } + } + }, + "Group Card - New" : { + "comment" : "Olvid card corner text", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card - New" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card - Nouvelle" + } + } + } + }, + "Group Card - On My iPhone" : { + "comment" : "Olvid card corner text", + "localizations" : { + "en" : { + "variations" : { + "device" : { + "ipad" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card - On My iPad" + } + }, + "mac" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card - On My Mac" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card - On My iPhone" + } + } + } + } + }, + "fr" : { + "variations" : { + "device" : { + "ipad" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card - Sur mon iPad" + } + }, + "mac" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card - Sur mon Mac" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card - Sur mon iPhone" + } + } + } + } + } + } + }, + "Group Card - Published" : { + "comment" : "Olvid card corner text", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card - Published" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card - Publiée" + } + } + } + }, + "Group Card - Unpublished Draft" : { + "comment" : "Olvid card corner text", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card - Unpublished Draft" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group Card - Brouillon non publié" + } + } + } + }, + "GROUP_DESCRIPTION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group description" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Description du groupe" + } + } + } + }, + "GROUP_NAME" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Group name" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nom du groupe" + } + } + } + }, + "GROUP_UPDATE_IN_PROGRESS_EXPLANATION_BODY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "An update of this group is in progress. Please wait until it is done to make further modifications." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une mise à jour du groupe est en cours. Merci de patienter jusqu'à son terme pour faire de nouvelles modifications." + } + } + } + }, + "GROUP_UPDATE_IN_PROGRESS_EXPLANATION_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Update in progress" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mise à jour en cours" + } + } + } + }, + "GROUP_V2_PUBLISHED_DETAILS_EXPLANATION_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The group details were updated. If you wish to use these new details instead of the ones on your %@, please tap the button bellow." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les détails du groupe ont été mis à jour. Si vous désirez utiliser ces nouveaux détails au lieu de ceux sur votre %@, touchez le bouton ci-dessous." + } + } + } + }, + "Groups" : { + "comment" : "Groups word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Groups" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Groupes" + } + } + } + }, + "Groups joined" : { + "comment" : "Table View section title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Groups joined" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Groupes rejoints" + } + } + } + }, + "GROUPS_THAT_YOU_ADMINISTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Groups that you administer" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Groupes que vous administrez" + } + } + } + }, + "HIDDEN_PROFILES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hidden profiles" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Profils masqués" + } + } + } + }, + "Hide notifications" : { + "comment" : "Cell label", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hide notifications" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cacher les notifications" + } + } + } + }, + "Hide notifications content" : { + "comment" : "Cell label", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hide content" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cacher le contenu" + } + } + } + }, + "HIDE_PROFILE_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hidden profiles are protected by a password and do not appear in you profile list until you enter this password.\nAccessing a hidden profile requires a long press on the top left button shown on each tab.\nIf you forget this password, you will permanently lose access to this profile 😱!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les profils masqués sont protégés par un mot de passe et n'apparaissent dans la liste de profils qu'après avoir saisi ce mot de passe.\nFaites un appui long sur le bouton supérieur gauche affiché sur chaque onglet pour accéder à un profil masqué.\nSi vous oubliez ce mot de passe, vous perdrez définitivement accès à ce profil 😱 !" + } + } + } + }, + "HIDE_THIS_IDENTITY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hide this profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Masquer ce profil" + } + } + } + }, + "HOW_DO_YOU_WANT_TO_SHARE_ID" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "How do you want to share your ID?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comment voulez-vous partager votre ID ?" + } + } + } + }, + "HOW_TO_ADD_MESSAGE_REACTION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Double tap a message to add a reaction." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tapez deux fois sur le message pour ajouter votre réaction." + } + } + } + }, + "HOW_TO_ADD_REACTION_TO_PREFFERED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Add a star to a reaction to add it to your favorite reactions." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajoutez une étoile à une réaction pour l'ajouter à vos réactions préférées." + } + } + } + }, + "HOW_TO_REMOVE_OWN_REACTION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tap to remove your reaction." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tapez pour supprimer votre réaction." + } + } + } + }, + "I have copied the key" : { + "comment" : "Button title shown to the user", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "I have copied the key" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "J'ai bien copié la clé" + } + } + } + }, + "iCloud access is restricted" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "iCloud access is restricted" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Accès restreint à iCloud" + } + } + } + }, + "iCloud backups list" : { + "comment" : "Button title allowing to show backup list", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "iCloud backups list" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Liste des sauvegardes iCloud" + } + } + } + }, + "iCloud error" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "iCloud error" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erreur iCloud" + } + } + } + }, + "iCloud status is unclear" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "iCloud status is unclear" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le statut de iCloud n'est pas clair" + } + } + } + }, + "ICLOUD_ACCOUNT_TEMPORARILY_UNAVAILABLE" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "iCloud account temporarily unavailable" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Compte iCloud indisponible pour le moment" + } + } + } + }, + "ICLOUD_ACCOUNT_TRY_AGAIN_LATER" : { + "comment" : "Alert body", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please try again later" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez essayer à nouveau plus tard" + } + } + } + }, + "Identity" : { + "comment" : "Identity word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Identity" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Identité" + } + } + } + }, + "Identity color style" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Identity color style" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Couleurs pour les identités" + } + } + } + }, + "IDENTITY_PROVIDER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Identity provider" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fournisseur d'identité" + } + } + } + }, + "IDENTITY_PROVIDER_CONFIGURATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Identity provider configuration" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Configuration du fournisseur d'identité" + } + } + } + }, + "IDENTITY_PROVIDER_CONFIGURED_FAILURE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The identity provider of your company does not seem to be available. Please contact your administrator." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le fournisseur d'identité de votre société ne semble pas disponible. Veuillez contacter votre administrateur." + } + } + } + }, + "IDENTITY_PROVIDER_CONFIGURED_SUCCESS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The identity provider of your company was successfully configured. Press \"Authenticate\" to log in and retrieve your personal information." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le fournisseur d'identité de votre société a été configuré avec succès. Appuyez sur « S'authentifier » pour vous y connecter et récupérer vos informations personnelles." + } + } + } + }, + "IDENTITY_PROVIDER_OPTION_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This screen lets you to manually configure your company's identity provider. If you received a configuration link (or QR code), please tap on \"Back\" and tap the link or scan the code. This will make the onboarding process much easier 😇.\n\nPlease contact your administrator for more details." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cet écran vous permet de configurer manuellement le fournisseur d'identité de votre entreprise. Si vous avez reçu un lien (ou un code QR) de configuration, appuyez sur « Retour » et appuyez sur le lien ou scannez le code. Le processus de démarrage n'en sera que plus simple 😇.\n\nVeuillez contacter votre administrateur pour plus de détails." + } + } + } + }, + "IDENTITY_SERVER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Identity server" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Serveur d'identités" + } + } + } + }, + "IDENTITY_SETTINGS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Identity settings" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paramètres de l'identité" + } + } + } + }, + "If you wish, you can help the development team by tapping the button below. This will share (only) the above message with them." : { + "comment" : "Body text", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If you wish, you can help the development team by tapping the button below. This will share (only) the following message with them." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si vous le désirez, vous pouvez aider l'équipe de développement via la bouton ci-dessous. Vous partagerez (uniquement) le message encadré ci-dessous avec elle." + } + } + } + }, + "Ignore" : { + "comment" : "Button title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ignore" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ignorer" + } + } + } + }, + "Immediately" : { + "comment" : "Immediately word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Immediately" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Immédiatement" + } + } + } + }, + "IMPOSSIBLE_TO_ADD_%@_WITH_THIS_QR_CODE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This QR code cannot be used to add %1$@ to your contacts. Please try again, making sure %1$@ scans your QR code before you scan their's." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ce code QR ne peut pas être utilisé pour ajouter %1$@ à vos contacts. Veuillez essayer à nouveau, en vous assurant que %1$@ scanne votre code QR avant que vous ne scanniez le sien." + } + } + } + }, + "In order to invite another Olvid user, you can copy your identity in order to paste it in an email, SMS, and so forth. If you receive an identity, you can paste it here." : { + "comment" : "Message of an alert", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "In order to invite another Olvid user, you can copy your identity in order to paste it in an email, SMS, and so forth. If you receive the identity of another user, you can paste it here." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour inviter un autre utilisateur, vous pouvez copier votre identité puis la coller dans un courriel, un SMS, etc. Si vous recevez l'identité d'un autre utilisateur, vous pouvez la coller ici." + } + } + } + }, + "In order to invite another Olvid user, you can either scan their QR code or show them your own QR code." : { + "comment" : "Message of an alert", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "In order to add another Olvid user to your contacts, you can send an invitation, scan their QR code, or show them your own QR code." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Afin d'entrer en contact avec un autre utilisateur d'Olvid, vous pouvez lui envoyer une invitation, scanner son code QR, ou afficher le vôtre pour qu'il le scanne." + } + } + } + }, + "IN_APP_LOGS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "In-app logs" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Logs intégrés" + } + } + } + }, + "INACTIVE_PROFILE_EXPLANATION_ON_MY_PROFILE_VIEW" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your profile is not active on this device but you can reactivate it now." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre profil est inactif sur cet appareil mais vous pouvez le réactiver maintenant." + } + } + } + }, + "INCLUDE_CALL_IN_RECENTS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Include calls in iOS call log" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Partager liste appels avec le système" + } + } + } + }, + "Incorrect code" : { + "comment" : "Title of an alert", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Incorrect code" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Code incorrect" + } + } + } + }, + "INSTALLED_APP_IS_OUTDATED_ALERT_BODY" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "But don't worry 😊. You can upgrade now to the latest version of Olvid and discover its amazing new features 🤓! We recommend you upgrade now 🚀." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mais ne vous inquiétez pas 😊. Vous pouvez mettre à jour Olvid dès maintenant et ainsi découvrir les dernières nouveautés 🤓. Nous vous recommandons de mettre à jour maintenant 🚀." + } + } + } + }, + "INSTALLED_APP_IS_OUTDATED_ALERT_TITLE" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your Olvid version is obsolete 😱!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre version d'Olvid est obsolète 😱 !" + } + } + } + }, + "Interface" : { + "comment" : "Introduce word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Interface" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Interface" + } + } + } + }, + "INTERNAL_STORAGE_EXPLORER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Storage explorer" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Explorateur interne" + } + } + } + }, + "Introduce" : { + "comment" : "Introduce word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Introduce" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Présenter" + } + } + } + }, + "Introduce %@ to..." : { + "comment" : "Title of the table listing all identities but the one to introduce", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Introduce %@ to..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Présenter %@ à..." + } + } + } + }, + "INTRODUCE_%@_TO" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Introduce %@ to..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Présenter %@ à..." + } + } + } + }, + "INTRODUCE_CONTACT_%@_TO" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Introduce %@ to..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Présenter %@ à..." + } + } + } + }, + "Introduced as part of a group discussion" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Introduced as part of a group discussion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Présenté lors d'une création de groupe" + } + } + } + }, + "Introduced by %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Introduced by %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Présenté par %@" + } + } + } + }, + "Introduced by a former contact" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Introduced by a former contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Présenté par un ancien contact" + } + } + } + }, + "Introduced by keycloak server %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Introduced by keycloak server %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Présenté par le serveur d'identité %@" + } + } + } + }, + "INTRODUCED_BY_FORMER_CONTACT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Introduced by a former contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Présenté par un ancien contact" + } + } + } + }, + "Invalid subscription" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invalid subscription" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abonnement non valide" + } + } + } + }, + "INVALID_QR_CODE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This QR code is invalid" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ce code QR n'est pas valide" + } + } + } + }, + "Invitation" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invitation" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invitation" + } + } + } + }, + "Invitation\nDeclined" : { + "comment" : "Two lines label indicating that a contact declined a group invitation", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invitation\nDeclined" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invitation Refusée" + } + } + } + }, + "Invitation to join a group" : { + "comment" : "Invitation subtitle, Notification title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invitation to join a group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invitation à rejoindre un groupe" + } + } + } + }, + "INVITATION_BODY_ACCEPT_GROUP_INVITE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are invited to join a group created by %@." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous êtes invité a rejoindre un groupe créé par %@." + } + } + } + }, + "INVITATION_BODY_ACCEPT_GROUP_V2_INVITE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are invited to join a group." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez reçu une invitation à rejoindre un groupe." + } + } + } + }, + "INVITATION_BODY_ACCEPT_GROUP_V2_INVITE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are invited to join the group \"%@\"." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez reçu une invitation à rejoindre le groupe « %@ »." + } + } + } + }, + "INVITATION_BODY_ACCEPT_INVITE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If you ignore this invitation, %@ won't be notified." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si vous ignorez cette invitation, aucune notification ne sera envoyée à %@." + } + } + } + }, + "INVITATION_BODY_ACCEPT_MEDIATOR_INVITE_%@_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ would like to introduce you to %2$@. If you accept, %2$@ will be part of your contacts and you will have a private discussion with them." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ aimerait vous présenter à %2$@. Si vous acceptez, %2$@ fera partie de vos contacts et vous aurez une discussion privée." + } + } + } + }, + "INVITATION_BODY_FREEZE_GROUP_V2_INVITE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please wait while the group is updated..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez attendre pendant que le groupe est mis à jour..." + } + } + } + }, + "INVITATION_BODY_INVITATION_ACCEPTED_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please wait until %@ is back online." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez attendre que %@ se connecte à nouveau..." + } + } + } + }, + "INVITATION_BODY_INVITE_SENT_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please wait until %@ accepts your invitation to have a private discussion." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez attendre que %@ accepte d'avoir une discussion privée." + } + } + } + }, + "INVITATION_BODY_MEDIATOR_INVITE_ACCEPTED_%@_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You accepted to be introduced to %2$@ by %1$@. Please wait until %2$@ also accepts this invitation." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez accepté la présentation de %1$@. Veuillez attendre que %2$@ l'accepte également." + } + } + } + }, + "INVITATION_BODY_MUTUAL_TRUST_CONFIRMED_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ is now part of your contacts and you can have a private discussion with them." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ fait maintenant partie de vos contacts et vous pouvez commencer la discussion privée." + } + } + } + }, + "INVITATION_BODY_ONE_TO_ONE_INVITATION_RECEIVED_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If you accept, %@ will be added to your contacts and you will have a private discussion with them." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si vous acceptez, %@ fera partie de vos contacts et vous aurez une discussion privée." + } + } + } + }, + "INVITATION_BODY_ONE_TO_ONE_INVITATION_SENT_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please wait until they accept it 🤞." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez patienter jusqu'à ce que %@ l'accepte 🤞." + } + } + } + }, + "INVITATION_BODY_SAS_CONFIRMED_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Almost there! Please give your code to %@ to have a private discussion with them." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nous y sommes presque ! Transmettez votre code à %@ pour avoir une discussion privée." + } + } + } + }, + "INVITATION_BODY_SAS_EXCHANGE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "In order to have a private discussion with %@, you must give them your code and enter theirs. Those codes are not secret, but please make sure that %1$@ is indeed the one giving you the code." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour avoir une discussion privée avec %@, vous devez lui transmettre votre code et saisir le sien. Ces codes ne sont pas secrets, mais assurez-vous que c'est bien %1$@ qui vous transmet son code." + } + } + } + }, + "INVITATION_TITLE_ACCEPT_GROUP_INVITE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ invites you to a group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ vous invite dans un groupe" + } + } + } + }, + "INVITATION_TITLE_ACCEPT_GROUP_V2_INVITE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are invited to join a group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez reçu une invitation à rejoindre un groupe" + } + } + } + }, + "INVITATION_TITLE_ACCEPT_INVITE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ would like to discuss with you" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ aimerait discuter avec vous" + } + } + } + }, + "INVITATION_TITLE_ACCEPT_MEDIATOR_INVITE_%@_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ introduces you to %2$@ " + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ vous présente %2$@" + } + } + } + }, + "INVITATION_TITLE_FREEZE_GROUP_V2_INVITE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are invited to join a group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez reçu une invitation à rejoindre un groupe" + } + } + } + }, + "INVITATION_TITLE_INVITATION_ACCEPTED_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You accepted %@'s invitation" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez accepté l'invitation de %@" + } + } + } + }, + "INVITATION_TITLE_INVITE_SENT_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You sent an invitation to %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez envoyé une invitation à %@" + } + } + } + }, + "INVITATION_TITLE_MEDIATOR_INVITE_ACCEPTED_%@_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ introduces you to %2$@ " + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ vous présente %2$@" + } + } + } + }, + "INVITATION_TITLE_MUTUAL_TRUST_CONFIRMED_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Well done!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Formidable !" + } + } + } + }, + "INVITATION_TITLE_ONE_TO_ONE_INVITATION_RECEIVED_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ would like to have a private discussion with you" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ aimerait avoir une discussion privée avec vous" + } + } + } + }, + "INVITATION_TITLE_ONE_TO_ONE_INVITATION_SENT_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You invited %@ to have a private discussion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez envoyé une invitation à discuter en privé à %@" + } + } + } + }, + "INVITATION_TITLE_SAS_CONFIRMED_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Give your code to %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Donnez votre code à %@" + } + } + } + }, + "INVITATION_TITLE_SAS_EXCHANGE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Give your code to %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Donnez votre code à %@" + } + } + } + }, + "Invitations" : { + "comment" : "Invitations word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invitations" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invitations" + } + } + } + }, + "Invite" : { + "comment" : "Invite word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invite" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Inviter" + } + } + } + }, + "Invite another Olvid user" : { + "comment" : "Title of an alert", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose how to add a contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisissez comment inviter un contact" + } + } + } + }, + "Invite Members" : { + "comment" : "Button title for inviting new members to an owned contact group", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invite Members" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Inviter des participants" + } + } + } + }, + "INVITE_%@_IF_YOU_WANT_ONE_TO_ONE_DISCUSSION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "To have a private discussion with %@ and add them to your contacts, touch \"Invite\"." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour discuter en privé avec %@ et l'ajouter à vos contacts, touchez « Inviter »." + } + } + } + }, + "INVITE_%@_LOCALLY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If %@ is next to you, have them scan this QR code to add them to your contacts directly." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si %@ est à côté de vous, faites-lui scanner ce code QR pour l'ajouter à vos contacts immédiatement." + } + } + } + }, + "INVITE_ALL_GROUP_MEMBERS_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invite all at once" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Inviter tous en une fois" + } + } + } + }, + "INVITE_ALL_GROUP_MEMBERS_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "To initiate a private conversation with a group member who is not yet in your contacts, tap on their name, and then choose the \"Invite\" button. If you want to invite all group members at the same time, tap the \"Invite all at once\" button. Please note that the group member must accept your invitation." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour engager une conversation privée avec un membre du groupe qui n'est pas encore dans vos contacts, appuyez sur son nom, puis sélectionnez le bouton \"Inviter\". Si vous souhaitez inviter tous les membres du groupe simultanément, appuyez sur le bouton \"Inviter tous en une seule fois\". Veuillez noter que le membre du groupe doit accepter votre invitation." + } + } + } + }, + "INVITE_REQUIRED_ALERT_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invitation required" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Invitation requise" + } + } + } + }, + "IS_ADMIN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Admin" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Admin" + } + } + } + }, + "IS_DELETING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "is deleting" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "suppression en cours" + } + } + } + }, + "IS_NOT_ADMIN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Not admin" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pas admin" + } + } + } + }, + "IS_PENDING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pending" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "En attente" + } + } + } + }, + "IS_PENDING_ADMIN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pending\nadmin" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Admin\nen attente" + } + } + } + }, + "KEEP_%@_ACTIVE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Keep %@ active" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maintenir %@ actif" + } + } + } + }, + "KEEP_%lld_MESSAGES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Keep %lld messages" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Conserver %lld messages" + } + } + } + }, + "KEEP_DEVICE_%@_ACTIVE_AND_ACCEPT_TO_DEACTIVATE_DEVICE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "It appears you did not subscribe to the multidevice feature, allowing to use Olvid on multiple devices simultaneously. Keeping the device %@ active implies that the device %@ will be deactivated instead. If you want to keep all your devices active, please explore the subscriptions plans." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il semblerait que vous n'ayez pas souscrit à la fonctionnalité multi-appareils, permettant d'utiliser Olvid sur plusieurs appareils simultanément. Garder l'appareil %@ actif implique de désactiver l'appareil %@. Si vous désirez conserver tous vos appareils actifs, nous vous recommandons d'explorer les offres d'abonnement." + } + } + } + }, + "KEEP_SELECTED_DEVICE_ACTIVE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Keep selected device active" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maintenir l'appareil sélectionné actif" + } + } + } + }, + "KEEP_THIS_DEVICE_ACTIVE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Keep active" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Garder actif" + } + } + } + }, + "KEYCLOAK_AUTHENTICATION_FAILED_ALERT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authentication failed" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'authentification a échoué" + } + } + } + }, + "KEYCLOAK_AUTHENTICATION_FAILED_ALERT_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authentication failed: %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'authentification a échoué : %@" + } + } + } + }, + "KEYCLOAK_ID" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Keycloak ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Keycloak ID" + } + } + } + }, + "KEYCLOAK_MISSING_SEARCH_RESULT" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "One additional search result is available. Please refine your search." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u additional search results are available. Please refine your search." + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Un résultat supplémentaire est disponible. Veuillez affiner votre recherche." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u résultats supplémentaires sont disponibles. Veuillez affiner votre recherche." + } + } + } + } + } + } + }, + "KEYCLOAK_REVOCATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Revoke previous Olvid ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Révoquer l'ID Olvid précédent" + } + } + } + }, + "KEYCLOAK_REVOCATION_BUTTON" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Revoke previous ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Révoquer ID précédent" + } + } + } + }, + "KEYCLOAK_REVOCATION_FAILURE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Failed to revoke previous Olvid ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'ID Olvid précédent n'a pas pu être révoqué" + } + } + } + }, + "KEYCLOAK_REVOCATION_FORBIDDEN_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please contact your administrator." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nous vous recommandons de contacter votre administrateur." + } + } + } + }, + "KEYCLOAK_REVOCATION_FORBIDDEN_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You cannot revoke your identity" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous ne pouvez pas révoquer votre identité" + } + } + } + }, + "KEYCLOAK_REVOCATION_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Another Olvid ID is associated with your account on your company's identity provider. If you generated a new ID you need to revoke the previous one." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Un autre ID Olvid est associé avec le compte géré par le fournisseur d'identité de votre entreprise. Si vous avez généré un nouvel ID Olvid, il vous faut révoquer le précédent." + } + } + } + }, + "KEYCLOAK_REVOCATION_SUCCESSFUL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Successfully revoked previous Olvid ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'ID Olvid précédent a été révoqué" + } + } + } + }, + "LABEL_BIND_KEYCLOAK" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Use an identity provider" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Utiliser un serveur d'identités" + } + } + } + }, + "LAST_NAME_FIRST_NAME" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Last, First" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nom Prénom" + } + } + } + }, + "Later" : { + "comment" : "Later word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Later" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Plus tard" + } + } + } + }, + "Latest export: %@" : { + "comment" : "Table view section footer", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Latest export: %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dernier export: %@" + } + } + } + }, + "Latest upload: %@" : { + "comment" : "Table view section footer", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Latest upload: %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dernier téléchargement : %@" + } + } + } + }, + "Leave group" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Leave group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quitter le groupe" + } + } + } + }, + "LEAVE_GROUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Leave this group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quitter ce groupe" + } + } + } + }, + "Left Tone" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Left Tone" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "" + } + } + } + }, + "LETS_CREATE_YOUR_PROFILE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Let's create your profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créons votre profil" + } + } + } + }, + "LICENSE_ACTIVATION_CODE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "License activation code" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Code d'activation de licence" + } + } + } + }, + "LIMITED_EXISTENCE_SECTION_FOOTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "When activated, messages and attachments are auto-deleted after a limited period of time." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si ce réglage est activé, les messages et leurs pièces jointes sont automatiquement supprimés après une certaine durée." + } + } + } + }, + "LIMITED_EXISTENCE_SECTION_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Existence duration" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Durée d'existence" + } + } + } + }, + "LIMITED_VISIBILITY_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Visibility duration" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Durée de visibilité" + } + } + } + }, + "LIMITED_VISIBILITY_SECTION_FOOTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "When activated, messages and attachments are visible for a limited period of time after they have been read." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si ce réglage est activé, les messages et leurs pièces jointes sont affichés pour une durée limitée après avoir été lus." + } + } + } + }, + "Loading" : { + "comment" : "Loading word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Loading" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chargement" + } + } + } + }, + "LOCAL_CONFIG" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Local configuration" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Configuration locale" + } + } + } + }, + "LOCAL_EPHEMERAL_SETTINGS_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The settings below allow you to locally customize how ephemeral messages behave within this discussion. These settings are not shared with other participants." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les réglages ci-dessous vous permettent d'ajuster localement le comportement des messages éphémères. Ces paramètres ne sont pas partagés avec les autres participants." + } + } + } + }, + "LOCAL_RETENTION_SETTINGS_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The settings below allow you to automatically delete old messages in this discussion." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les réglages ci-dessous vous permettent de supprimer automatiquement de vieux messages dans cette discussion." + } + } + } + }, + "LOCKED_OUT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Locked Out" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bloqué" + } + } + } + }, + "LOCKED_OUT_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid is locked following too many wrong passcode attempts." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid est verrouillée suite à la saisie d'un nombre trop important de mauvais codes." + } + } + } + }, + "LOCKED_OUT_FOR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Locked for " + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bloqué pour " + } + } + } + }, + "LOCKOUT_CLEAN_EPHEMERAL_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "When activated, entering a wrong passcode 3 times in a row will silently erase all read once and limited visibility messages." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quand cette option est activée, saisir 3 mauvais codes d'affilée entraîne l'effacement silencieux de tous les messages à visibilité limitée." + } + } + } + }, + "LOCKOUT_CLEAN_EPHEMERAL_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erase sensitive messages after 3 bad passcode attempts" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Effacer les messages sensibles après 3 mauvais codes" + } + } + } + }, + "LOGIN_WITH_CUSTOM_PASSCODE_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This option allows you to protect Olvid using a custom passcode." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cette option vous permet de protéger l'accès à Olvid grâce au code personnalisé." + } + } + } + }, + "LOGIN_WITH_CUSTOM_PASSCODE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Log in with a custom passcode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'authentifier avec un code personnalisé" + } + } + } + }, + "LOGIN_WITH_FACE_ID_CUSTOM_PASSCODE_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This option allows you to protect Olvid using Face ID or a custom passcode." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cette option vous permet de protéger l'accès à Olvid grâce à Face ID ou au code personnalisé." + } + } + } + }, + "LOGIN_WITH_FACE_ID_CUSTOM_PASSCODE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Log in with Face ID or a custom passcode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'authentifier avec Face ID ou un code personnalisé" + } + } + } + }, + "LOGIN_WITH_FACE_ID_SYSTEM_PASSCODE_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This option allows you to protect Olvid using Face ID or your device's passcode." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cette option vous permet de protéger l'accès à Olvid grâce à Face ID ou au code d’accès de votre appareil." + } + } + } + }, + "LOGIN_WITH_FACE_ID_SYSTEM_PASSCODE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Log in with Face ID or your device's passcode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'authentifier avec Face ID ou le code d’accès de votre appareil" + } + } + } + }, + "LOGIN_WITH_SYSTEM_PASSCODE_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This option allows you to protect Olvid using your device's passcode." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cette option vous permet de protéger l'accès à Olvid grâce au code d’accès de votre appareil." + } + } + } + }, + "LOGIN_WITH_SYSTEM_PASSCODE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Log in with your device's passcode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'authentifier avec le code d’accès de votre appareil" + } + } + } + }, + "LOGIN_WITH_TOUCH_ID_CUSTOM_PASSCODE_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This option allows you to protect Olvid using Touch ID or a custom passcode." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cette option vous permet de protéger l'accès à Olvid grâce à Touch ID ou au code personnalisé." + } + } + } + }, + "LOGIN_WITH_TOUCH_ID_CUSTOM_PASSCODE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Log in with Touch ID or a custom passcode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'authentifier avec Touch ID ou un code personnalisé" + } + } + } + }, + "LOGIN_WITH_TOUCH_ID_FACE_ID_CUSTOM_PASSCODE_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This option allows you to protect Olvid using Touch ID, Face ID, or a custom passcode." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cette option vous permet de protéger l'accès à Olvid grâce à Touch/Face ID ou au code personnalisé." + } + } + } + }, + "LOGIN_WITH_TOUCH_ID_FACE_ID_CUSTOM_PASSCODE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Log in with Touch ID, Face ID, or a custom passcode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'authentifier avec Touch ID, Face ID ou un code personnalisé" + } + } + } + }, + "LOGIN_WITH_TOUCH_ID_FACE_ID_SYSTEM_PASSCODE_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This option allows you to protect Olvid using Touch ID, Face ID, or your device's passcode." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cette option vous permet de protéger l'accès à Olvid grâce à Face ID, Touch ID ou au code d’accès de votre appareil." + } + } + } + }, + "LOGIN_WITH_TOUCH_ID_FACE_ID_SYSTEM_PASSCODE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Log in with Touch ID, Face ID, or your device's passcode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'authentifier avec Touch ID, Face ID ou le code d’accès de votre appareil" + } + } + } + }, + "LOGIN_WITH_TOUCH_ID_SYSTEM_PASSCODE_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This option allows you to protect Olvid using Touch ID or your device's passcode." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cette option vous permet de protéger l'accès à Olvid grâce à Touch ID ou au code d’accès de votre appareil." + } + } + } + }, + "LOGIN_WITH_TOUCH_ID_SYSTEM_PASSCODE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Log in with Touch ID or your device's passcode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'authentifier avec Touch ID ou le code d’accès de votre appareil" + } + } + } + }, + "Looking for available subscription plans" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Looking for available subscription plans" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Recherche des offres d'abonnement" + } + } + } + }, + "Looking for the new license" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Looking for the new license" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nous recherchons la nouvelle licence" + } + } + } + }, + "MAIL_BODY_COULD_NOT_TRANSFER_PROFILE_ERROR$@" : { + "comment" : "mail body text", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hello Olvid!\n\nI could not transfer my profile. Could you please look into this issue? Here is the error:\n\n$@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bonjour Olvid !\n\nJe n'ai pas pu transférer mon profil. Pourriez-vous étudier la question ? Voici l'erreur :\n\n%@" + } + } + } + }, + "MAIL_SUBJECT_COULD_NOT_TRANSFER_PROFILE_ERROR" : { + "comment" : "Mail subject", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "I could not tranfer my profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il n'a pas été possible de transférer mon profil" + } + } + } + }, + "MAKE_SECURE_CALLS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Make secure calls with iPhone and iPad" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Émettre des appels sécurisés avec iPhone et iPad" + } + } + } + }, + "Manage payments" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Manage payments" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modes de paiement" + } + } + } + }, + "Manage your subscription" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Manage your subscription" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gérer vos abonnements" + } + } + } + }, + "MANUAL_BACKUP_EXPLANATION_FOOTER" : { + "comment" : "Table view section footer", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Allows to export an encrypted backup of your contacts, groups, and settings (messages and attachments are not backuped). You can either share it (email it, save it to Files,...) or upload it directely to iCloud. Do not worry, this backup is encrypted 😇." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Permet d'exporter une sauvegarde chiffrée de vos contacts, groupes et paramètres (les messages et pièces jointes ne sont pas sauvegardés). Vous pouvez la partager (l'envoyer par mail, la sauvegarder dans Fichiers, etc.) ou la sauvegarder directement vers iCloud. Ne vous en faites pas, cette sauvegarde est chiffrée 😇." + } + } + } + }, + "MANUAL_BACKUP_TITLE" : { + "comment" : "Table view section header", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Manual backup" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sauvegarde manuelle" + } + } + } + }, + "MANUAL_CONFIGURATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Manual configuration" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Configuration manuelle" + } + } + } + }, + "MANUAL_RESYNC_OF_GROUP_V2" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Resynchronize this group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Resynchroniser ce groupe" + } + } + } + }, + "MARK_AS_READ" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mark as read" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Marquer comme lu" + } + } + } + }, + "MAX_AVG_BITRATE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Max. average bitrate" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Débit moyen maximal" + } + } + } + }, + "Maximum size for automatic downloads" : { + "comment" : "Table view group header", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maximum size for automatic downloads" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Taille maximale pour téléchargement automatique" + } + } + } + }, + "MAYBE_LATER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maybe later" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Plus tard" + } + } + } + }, + "MAYBE_ME_LATER_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maybe later" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Plus tard" + } + } + } + }, + "Medias" : { + "comment" : "Medias word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Medias" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Médias" + } + } + } + }, + "Members" : { + "comment" : "Stack view title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Members" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Membres" + } + } + } + }, + "Members of %@" : { + "comment" : "Title of the table listing all members of a discussion group.", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Members of %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Membres de %@" + } + } + } + }, + "MENU_ACTION_TITLE_ARCHIVE_DISCUSSION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Archive discussion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Archiver la discussion" + } + } + } + }, + "MENU_ACTION_TITLE_DELETE_ALL_MESSAGES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete all messages" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer tous les messages" + } + } + } + }, + "MENU_ACTION_TITLE_MARK_ALL_MESSAGES_AS_READ" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mark all messages as read" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Marquer tous les messages comme lus" + } + } + } + }, + "MENU_ACTION_TITLE_PIN_DISCUSSION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pin discussion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Épingler la discussion" + } + } + } + }, + "MENU_ACTION_TITLE_UNPIN_DISCUSSION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unpin discussion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Détacher la discussion" + } + } + } + }, + "Message" : { + "comment" : "Message word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message" + } + } + } + }, + "MESSAGE_INFO" : { + "comment" : "Title of the screen displaying informations about a specific message within a discussion", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message informations" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Informations sur le message" + } + } + } + }, + "MESSAGE_REACTION_NOTIFICATION_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reacted %@ to your message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "A réagi %@ à votre message" + } + } + } + }, + "MESSAGE_REACTION_NOTIFICATION_%@_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reacted %@ to: %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "A réagi %@ à : %@" + } + } + } + }, + "MESSAGE_SUBSCRIPTION_REQUIRED_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Initiating secure phone calls with Olvid requires a subscription.\n\nYou can check your current subscription status and see available subscription plans on the \"My ID\" page." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'émission d'appels téléphoniques sécurisés avec Olvid nécessite un abonnement.\n\nVous pouvez vérifier le statut de votre abonnement et les options d'abonnement disponibles depuis la page « Mon ID »." + } + } + } + }, + "MESSAGE_SUBSCRIPTION_REQUIRED_GENERIC" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Th requested feature requires a subscription.\n\nYou can check your current subscription status and see available subscription plans on the \"My ID\" page." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La fonctionnalité demandée nécessite un abonnement.\n\nVous pouvez vérifier le statut de votre abonnement et les options d'abonnement disponibles depuis la page « Mon ID »." + } + } + } + }, + "Metadata" : { + "comment" : "Metadata word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Metadata" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Métadonnées" + } + } + } + }, + "MINIMUM_RECOMMENDED_VERSION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Minimum recommended version" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Version minimale recommandée" + } + } + } + }, + "MINIMUM_SUPPORTED_VERSION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Minimum supported version" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Version minimale prise en charge" + } + } + } + }, + "Misconfiguration" : { + "comment" : "View Controller title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Misconfiguration" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Configuration" + } + } + } + }, + "missed messages count" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "One missing message" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u missing messages" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 message manquant" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u messages manquants" + } + } + } + } + } + } + }, + "MISSED_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Missed Call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel manqué" + } + } + } + }, + "MISSING_CHANNEL_FOR_CALL_MESSAGE_%@" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You will be able to call %@ once a secure channel is established with them. Please try again later." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous pourrez appeler %@ dès que le canal sécurisé sera établi. Veuillez essayer à nouveau plus tard." + } + } + } + }, + "MISSING_CHANNEL_FOR_CALL_TITLE_%@" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ cannot be called yet" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ ne peut pas encore être appelé" + } + } + } + }, + "MODIFIED_SHARED_SETTINGS_CONFIRMATION_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You have modified the message settings for this discussion.\n\nDo you want to update these settings for you and all other discussion participants, or do you want to discard your changes?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez modifié les paramètres partagés de cette discussion.\n\nVoulez-vous mettre à jour ces paramètres pour vous et tous les participants à la discussion, ou préférez-vous supprimer vos modifications ?" + } + } + } + }, + "MODIFIED_SHARED_SETTINGS_CONFIRMATION_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modified shared ephemeral message settings" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les paramètres partagés ont été modifiés" + } + } + } + }, + "month" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "month" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "mois" + } + } + } + }, + "More invitations methods" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Additional methods for adding a contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Autres méthodes d'ajout de contact" + } + } + } + }, + "More..." : { + "comment" : "UIAlert action title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "More..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Avancé..." + } + } + } + }, + "MULTIDEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Multidevice" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Multi-appareils" + } + } + } + }, + "Mute" : { + "comment" : "Metadata word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mute" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Silence" + } + } + } + }, + "MUTE_NOTIFICATIONS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mute notifications" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désactiver les notifications" + } + } + } + }, + "MUTED_NOTIFICATIONS_CONFIRMATION_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New message notifications muted until %@.\nDo you want to unmute them?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Notifications de nouveau message désactivées jusqu'à %@.\n Souhaitez-vous les réactiver ?" + } + } + } + }, + "MUTED_NOTIFICATIONS_FOOTER_INDEFINITELY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New message notifications muted indefinitely" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Notifications de nouveau message désactivées indéfiniment." + } + } + } + }, + "MUTED_NOTIFICATIONS_FOOTER_UNTIL_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New message notifications muted until %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Notifications de nouveau message désactivées jusqu'à %@" + } + } + } + }, + "Mutual Introduction" : { + "comment" : "UIAlertController title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mutual Introduction" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Faire les présentations" + } + } + } + }, + "Mutual trust confirmed!" : { + "comment" : "Notification title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Secure channel in progress" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Canal sécurisé en cours" + } + } + } + }, + "My Id" : { + "comment" : "Title of a tab, Title of the MyIdViewController, View Controller title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "My profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mon profil" + } + } + } + }, + "My Olvid Card" : { + "comment" : "Table View section title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "My profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mon ID" + } + } + } + }, + "MY_DEVICE_NAME_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@" + } + } + } + }, + "MY_DEVICES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "My devices" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mes appareils" + } + } + } + }, + "MY_OWN_IDS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "My profiles" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mes profils" + } + } + } + }, + "Name update available" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Name update available" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mise à jour disponible" + } + } + } + }, + "Never" : { + "comment" : "Never word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Never" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jamais" + } + } + } + }, + "New" : { + "comment" : "Chip title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nouveau" + } + } + } + }, + "New backup key" : { + "comment" : "Title of the view showing a new backup key", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New backup key" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nouvelle clé de sauvegarde" + } + } + } + }, + "New contact" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nouveau contact" + } + } + } + }, + "New group details" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New group details" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nouveaux détails de groupe" + } + } + } + }, + "New invitation" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New invitation" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nouvelle invitation" + } + } + } + }, + "New Invitation!" : { + "comment" : "Notification title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New Invitation!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nouvelle Invitation !" + } + } + } + }, + "New message" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nouveau message" + } + } + } + }, + "New Suggested Introduction" : { + "comment" : "Invitation subtitle, Notification title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New Suggested Introduction" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mise en relation" + } + } + } + }, + "NEW_COMPOSE_MESSAGE_VIEW_ACTION_ORDER_FOOTER" : { + "comment" : "Section footer", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The first button will be located next to the text field allowing to compose messages. The buttons you use the most should be put at the top of this list so that you can access them in one tap." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le premier bouton apparaîtra juste à côté de la zone de composition du message de vos messages. Nous vous recommandons de placer les boutons que vous utilisez le plus au sommet de la liste, de façon à les atteindre en une touche." + } + } + } + }, + "NEW_COMPOSE_MESSAGE_VIEW_ACTION_ORDER_HEADER" : { + "comment" : "Section header", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Preferred message buttons order" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ordre préféré des boutons de composition de message" + } + } + } + }, + "NEW_COMPOSE_MESSAGE_VIEW_PREFERENCES" : { + "comment" : "ComposeMessageViewSettingsViewController title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Customize the message compose area" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Personnaliser la composition de message" + } + } + } + }, + "NEW_DETAILS_EXPLANATION_%@_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ updated their details. If you wish to use these new details instead of those currently on your %2$@, please tap the button bellow." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ a mis à jour ses informations. Si vous voulez utiliser ces nouveaux détails à la place de ceux actuellement stockés sur votre %2$@, touchez le bouton ci-dessous." + } + } + } + }, + "NEW_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nouvel appareil" + } + } + } + }, + "NEW_LICENSE_TO_ACTIVATE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New license to activate" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nouvelle licence à activer" + } + } + } + }, + "NEW_REACTION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "New reaction" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nouvelle réaction" + } + } + } + }, + "Next" : { + "comment" : "Next word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Next" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suivant" + } + } + } + }, + "No" : { + "comment" : "No word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Non" + } + } + } + }, + "NO" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Non" + } + } + } + }, + "No active subscription" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No active subscription" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun abonnement actif" + } + } + } + }, + "No backup was exported yet." : { + "comment" : "Table view section footer", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No backup was exported yet." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune sauvegarde exportée pour le moment." + } + } + } + }, + "No backup was uploaded yet." : { + "comment" : "Table view section footer", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No backup was uploaded yet." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune sauvegarde pour le moment." + } + } + } + }, + "No one" : { + "comment" : "No one word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No one" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Personne" + } + } + } + }, + "NO_AUTHENTICATION_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid's screen won't be locked." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'écran d'Olvid ne sera pas verrouillé." + } + } + } + }, + "NO_BACKUP_KEY_GENERATED_YET" : { + "comment" : "Table view section footer", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "In order to perform encrypted backups of your contacts, groups, and settings, you first need to generate a backup key 🔐. No backup key has been generated yet." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour effectuer une sauvegarde chiffrée de vos contacts, groupes et paramètres, la première étape est de générer une clé de sauvegarde 🔐. Aucune clé de sauvegarde n'a été générée pour le moment." + } + } + } + }, + "NO_DEVICE_WILL_EXPIRE_SINCE_YOUR_SUBSCRIPTION_INCLUDES_MULTIDEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "All your devices will stay active since your subscription includes the multi-device feature 🙌." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tous vos appareils vont rester actifs car votre abonnement inclu la fonctionnalité multi-appareils 🙌." + } + } + } + }, + "NO_GRACE_PERIOD_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid will be locked immediately after being closed." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une fois fermée, Olvid se verrouillera immédiatement." + } + } + } + }, + "NO_INVITATION_FOR_NOW_BODY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Received or sent invitations will appear here." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les invitations envoyées et reçues apparaîtront ici." + } + } + } + }, + "NO_INVITATION_FOR_NOW_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No invitations for now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pas d'invitation pour le moment" + } + } + } + }, + "NO_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun message" + } + } + } + }, + "NO_OTHER_MEMBER_FOR_NOW" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No other group member for now." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun autre membre pour le moment." + } + } + } + }, + "NO_OTHER_PROFILE_TO_ADD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Done" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Terminer" + } + } + } + }, + "NON_EPHEMERAL_MESSAGES_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Non-ephemeral messages" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message non-éphémère" + } + } + } + }, + "None" : { + "comment" : "None word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "None" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun" + } + } + } + }, + "NOTIFICATION_SOUNDS_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Notification sound" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Son de notification" + } + } + } + }, + "NOTIFICATION_SOUNDS_SUBTITLE_POLYPHONIC" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "When receiving a message, a random note of the selected instrument will be played. Give it a try by tapping your preferred choice several times 😉." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Lorsque vous recevrez un message, vous entendrez une note aléatoire de l'instrument choisi. N'hésitez pas à essayer en appuyant plusieurs fois sur votre instrument préféré 😉." + } + } + } + }, + "NOTIFICATION_SOUNDS_TITLE_POLYPHONIC" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Polyphonic tones" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sons polyphoniques" + } + } + } + }, + "Notifications" : { + "comment" : "Notifications word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Notifications" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Notifications" + } + } + } + }, + "Notifications will not preview any message content nor any invitation content. Instead, they will display the number of new messages as well as the number of new invitations." : { + "comment" : "Cell label", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Notifications will not preview any message content nor any invitation content. It will be possible to distinguish between a new message notification and new invitation notification." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les notifications n'afficheront pas le contenu des nouveaux messages ni des nouvelles invitations. Il sera néanmoins possible de distinguer une notification de nouveau message d'une notification de nouvelle invitation." + } + } + } + }, + "Notifications will not provide any information about messages nor invitations. A minimal static notification will show to indicate that Olvid requires your attention." : { + "comment" : "Cell label", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Notifications will not provide any information about messages nor invitations. A minimal static notification will show to indicate that Olvid requires your attention." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les notifications n'afficheront aucune information concernant les messages ou les invitations. À la place, elles afficheront un texte standard indiquant qu'Olvid requiert votre attention." + } + } + } + }, + "Notifications will preview new messages and new invitations content." : { + "comment" : "Cell label", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Notifications will preview new messages and new invitations content." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les notifications afficheront une prévisualisation du contenu des nouveaux messages ainsi que des nouvelles invitations." + } + } + } + }, + "Now" : { + "comment" : "Now word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maintenant" + } + } + } + }, + "NUMBER_OF_ELEMENTS" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 element" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u elements" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "No element" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 élément" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u éléments" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun élément" + } + } + } + } + } + } + }, + "NUMBER_OF_ITEMS_SELECTED" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 item selected" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u items selected" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose items" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "1 élément sélectionné" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u éléments sélectionnés" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sélectionner des éléments" + } + } + } + } + } + } + }, + "NUMBER_OF_MESSAGES_BEFORE_DELETION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Number of new messages before deletion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nombre de nouveaux messages avant suppression" + } + } + } + }, + "Off" : { + "comment" : "Off word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Off" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Off" + } + } + } + }, + "Ok" : { + "comment" : "Ok word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ok" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ok" + } + } + } + }, + "OK" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ok" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ok" + } + } + } + }, + "Olvid" : { + "comment" : "Name of application", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid" + } + } + } + }, + "Olvid failed to initialize with the following error message:\n\n%1$@" : { + "comment" : "mail body text", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid failed to initialize with the following error message:\n\n%1$@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid n'a pas pu démarrer correctement. Voici le message d'erreur:\n\n%1$@" + } + } + } + }, + "Olvid failed to start properly. This is a terrible experience, we deeply appologize about this." : { + "comment" : "Body text", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid failed to start properly. This is a terrible experience, we deeply appologize about this. Please be reassured, none of your data was lost." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid n'a pas pu démarrer correctement. Nous en sommes désolés. Mais rassurez-vous, aucune de vos données n'a été perdue." + } + } + } + }, + "Olvid is not authorized to access the camera. Because your settings are restricted, there is nothing we can do about this. Please contact your administrator." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid is not authorized to access the camera. Because your settings are restricted, there is nothing we can do about this. Please contact your administrator." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid n'a pas l'autorisation d'accéder à l'appareil photo 😱. Vos paramètres étant restreints, il n'y a rien que nous ne puissions faire. Nous vous recommandons de contacter votre administrateur." + } + } + } + }, + "Olvid is not authorized to access the camera. You can change this setting within the Settings app." : { + "comment" : "Body of an alert", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid is not authorized to access the camera 😱. You can change this setting within the Settings app." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid n'a pas l'autorisation d'accéder à l'appareil photo 😱. Vous pouvez changer ce paramètre dans l'application Réglages." + } + } + } + }, + "Olvid requires the Background App Refresh to be turned on. Unfortunately it appears to be off. If you wish to use Olvid, please turn it back on.\n\nThe reason why this is required lies in the fact that Olvid regularly executes complex, multipass, cryptographic protocols in order to achieve a security level no other app can compete with. These protocols happen in the background and could not work if you had to manually launch Olvid each time a cryptographic computation has to be performed." : { + "comment" : "Long explanation", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid requires the Background App Refresh to be turned on. Unfortunately it appears to be off. If you wish to use Olvid, please turn it back on.\n\nThe reason why this is required lies in the fact that Olvid regularly executes complex, multipass, cryptographic protocols in order to achieve a security level no other app can compete with. These protocols happen in the background and could not work if you had to manually launch Olvid each time a cryptographic computation has to be performed." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid nécessite que l'actualisation en arrière-plan soit activée. Malheureusement, cela ne semble pas être le cas sur cet appareil." + } + } + } + }, + "Olvid requires your attention" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid requires your attention." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid requiert votre attention." + } + } + } + }, + "OLVID_AUDIO" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "End-to-end encrypted call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel chiffré de bout en bout" + } + } + } + }, + "ON_MY_DEVICE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "On my %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sur mon %@" + } + } + } + }, + "ONBOARDING_ADD_PROFILE_CREATE_BUTTON" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create a new profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créer un nouveau profil" + } + } + } + }, + "ONBOARDING_ADD_PROFILE_IMPORT_BUTTON" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Import a profile from another device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Importer un profil depuis un autre appareil" + } + } + } + }, + "ONBOARDING_ADD_PROFILE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Add a new profile on this device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter un nouveau profil sur cet appareil" + } + } + } + }, + "ONBOARDING_BAD_INFORMATIONS_RETURNED_BY_IDENTITY_PROVIDER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The informations retrieved from the identity provider are incomplete and do not allow to created an Olvid profile. Please contact your administrator." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les informations récupérées depuis le fournisseur d'identités sont incomplètes et ne permettent pas de créer de profil Olvid. Nous vous recommandons de contacter votre administrateur." + } + } + } + }, + "ONBOARDING_BUTTON_CHOOSE_BACKUP_FILE_FROM_FILES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "From File" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Depuis Fichiers" + } + } + } + }, + "ONBOARDING_BUTTON_CHOOSE_BACKUP_FILE_FROM_ICLOUD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "From iCloud" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Depuis iCloud" + } + } + } + }, + "ONBOARDING_BUTTON_TITLE_ACTIVATE_MY_PROFILE_ON_THIS_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Import a profile from another device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Importer un profil depuis un autre appareil" + } + } + } + }, + "ONBOARDING_BUTTON_TITLE_I_DO_NOT_HAVE_AN_OLVID_PROFILE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "I am a new Olvid user" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Je suis un nouvel utilisateur" + } + } + } + }, + "ONBOARDING_BUTTON_TITLE_I_HAVE_AN_OLVID_PROFILE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "I already have an Olvid profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "J'ai déjà un profil Olvid" + } + } + } + }, + "ONBOARDING_BUTTON_TITLE_RESTORE_BACKUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restore a backup" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restaurer une sauvegarde" + } + } + } + }, + "ONBOARDING_DEVICE_NAME_CHOOSER_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirm" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Valider" + } + } + } + }, + "ONBOARDING_DEVICE_NAME_CHOOSER_SUBTITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This will help you distinguish between your devices. Device names are only visible to you." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cela vous permettra de reconnaître vos appareils facilement. Les surnoms ne sont visibles que par vous." + } + } + } + }, + "ONBOARDING_DEVICE_NAME_CHOOSER_TEXTFIELD_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Example: %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exemple: %@" + } + } + } + }, + "ONBOARDING_DEVICE_NAME_CHOOSER_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Give a name to this device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Donnez un surnom à cet appareil" + } + } + } + }, + "ONBOARDING_DROP_A_BACKUP_FILE_HERE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "or drop it here" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "ou déposez le ici" + } + } + } + }, + "ONBOARDING_ENTER_BACKUP_KEY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please enter the backup key" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez entrer votre clé de sauvegarde" + } + } + } + }, + "ONBOARDING_KEYCLOAK_MANUAL_CONFIGURATION_TITLE_CLIENT_ID" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Server client ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Server client ID" + } + } + } + }, + "ONBOARDING_KEYCLOAK_MANUAL_CONFIGURATION_TITLE_CLIENT_SECRET" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Server client secret" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Server client secret" + } + } + } + }, + "ONBOARDING_KEYCLOAK_MANUAL_CONFIGURATION_TITLE_URL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Identity provider server" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Identity provider server" + } + } + } + }, + "ONBOARDING_MANAGED_IDENTITY_SUBTITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The informations below were retrieved from the identity provider of your company." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les informations ci-dessous ont été récupérées depuis le fournisseur d’identités de votre société." + } + } + } + }, + "ONBOARDING_NAME_CHOOSER_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create a profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créer un profil" + } + } + } + }, + "ONBOARDING_NAME_CHOOSER_MANAGED_PROFILE_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This way" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Par ici" + } + } + } + }, + "ONBOARDING_NAME_CHOOSER_MANAGED_PROFILE_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Profile managed by your organisation?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Profil fourni par votre organisation ?" + } + } + } + }, + "ONBOARDING_NAME_CHOOSER_TEXTFIELD_COMPANY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Organisation" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Organisation" + } + } + } + }, + "ONBOARDING_NAME_CHOOSER_TEXTFIELD_FIRSTNAME" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "First name" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prénom" + } + } + } + }, + "ONBOARDING_NAME_CHOOSER_TEXTFIELD_LASTNAME" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Last name" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nom" + } + } + } + }, + "ONBOARDING_NAME_CHOOSER_TEXTFIELD_POSITION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Job title" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Poste" + } + } + } + }, + "ONBOARDING_NAME_CHOOSER_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Welcome to Olvid" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bienvenue parmi nous" + } + } + } + }, + "ONBOARDING_WHICH_BACKUP_DO_YOU_WANT_TO_RESTORE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Which backup do you want to restore?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quelle sauvegarde voulez-vous restaurer ?" + } + } + } + }, + "ONE_TO_ONE_DISCUSSION_INVITATION_SENT_TO_%@" : { + "comment" : "Invitation details", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You invited %@ to have a private discussion. Please wait until they accept it 🤞." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez envoyé une invitation à discuter en privé à %@, qui doit encore l'accepter 🤞." + } + } + } + }, + "One-to-one verification" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "One-to-one verification" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vérification face-à-face" + } + } + } + }, + "ONLY_GROUP_OWNER_CAN_MODIFY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Only a group administrator can modify these settings." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Seul un administrateur du groupe peut modifier ces paramètres." + } + } + } + }, + "Oops..." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oops..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oups..." + } + } + } + }, + "Open" : { + "comment" : "Aloert button title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Open" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvrir" + } + } + } + }, + "Open in Safari?" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Open in Safari?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvrir dans Safari ?" + } + } + } + }, + "Open Settings" : { + "comment" : "Button title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Open Settings" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aller dans les Réglages" + } + } + } + }, + "OPEN_HIDDEN_PROFILE_ALERT_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If you created a hidden profile, please enter its password to open it." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si vous avez créé un profil masqué, veuillez entrer son mot de passe pour l'afficher." + } + } + } + }, + "OPEN_HIDDEN_PROFILE_ALERT_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Open a hidden profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Afficher un profil masqué" + } + } + } + }, + "OPEN_SOURCE_LICENCES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Open Source Licenses" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Licences Open Source" + } + } + } + }, + "OPTION_%@_FROM_A_DISTANCE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Option %@: Invite remotely" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Option %@ : Inviter à distance" + } + } + } + }, + "OPTION_%@_LOCALLY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Option %@: Invite locally" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Option %@ : Inviter localement" + } + } + } + }, + "OTHER_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Other device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Autre appareil" + } + } + } + }, + "OTHER_GROUP_MEMBERS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Other group members" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Autres membres du groupe" + } + } + } + }, + "OTHER_KNOWN_USERS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Other known users" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Autres utilisateurs" + } + } + } + }, + "Oups" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oups" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oups" + } + } + } + }, + "OUTGOING_CALL_IS_CONNECTING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connecting..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connextion..." + } + } + } + }, + "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_FAILED_BODY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You may still reactivate this device, but beware that this might deactivate another of your other devices (if you have any). If unsure, we recommend that you cancel and try again later." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous pouvez néanmoins décider de réactiver cet appareil, mais il se pourrait qu'un autre de vos appareils soit alors désactivé (si vous en avez un). En cas de doute, nous vous recommandons d'annuler et d'essayer à nouveau plus tard." + } + } + } + }, + "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_FAILED_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Check failed 😢" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La vérification a échoué 😢" + } + } + } + }, + "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_MULTIDEVICE_AVAILABLE_BODY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Since you have a valid subscription to the premium multidevice feature 😎, you can safely reactivate this device now. Do you wish to do so?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comme vous avez accès à la fonctionalité premium de multi-appareils 😎, vous pouvez réactiver cet appareil dès maintenant. Souhaitez-vous le faire ?" + } + } + } + }, + "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_MULTIDEVICE_AVAILABLE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This device can be reactivated now 🙌" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cet appareil peut être réactivé maintenant 🙌" + } + } + } + }, + "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_NO_ACTIVE_DEVICE_FOUND_BODY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "It appears you currently have no active device. You can safely reactivate this device now. Do you wish to do so?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il semblerait que vous n'ayez pas d'appareil activé pour le moment. Vous pouvez réactiver cet appareil dès maintenant. Souhaitez-vous le faire ?" + } + } + } + }, + "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_NO_ACTIVE_DEVICE_FOUND_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This device can be reactivated now 🙌" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cet appareil peut être réactivé maintenant 🙌" + } + } + } + }, + "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_NO_MULTIDEVICE_ALL_DEVICES_EXPIRE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This device can be reactivated now 🙌" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cet appareil peut être réactivé maintenant 🙌" + } + } + } + }, + "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_NO_MULTIDEVICE_AT_LEAST_ONE_NON_EXPIRING_DEVICE_BODY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "It appears you did not subscribe to the multidevice feature, allowing to use Olvid on multiple devices simultaneously. Activating this device requires to deactivate another of your devices.\n\nIf you wish to do so, please select the device you wish to deactivate from the list below." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il semblerait que vous n'ayez pas souscrit à la fonctionnalité multi-appareils, permettant d'utiliser Olvid sur plusieurs appareils simultanément. Activer cet appareil nécessite de désactiver un autre de vos appareils.\n\nSi vous le souhaitez, choisissez un appareil à désactiver dans la liste ci-dessous." + } + } + } + }, + "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_NO_MULTIDEVICE_AT_LEAST_ONE_NON_EXPIRING_DEVICE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choose the device that will be deactivated" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisissez l'appareil à désactiver" + } + } + } + }, + "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_NO_MULTIDEVICE_N_DEVICES_EXPIRE_BODY" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "You already have one active device. Since it will be deactivated at some point in the future, you can safely reactivate this device now. Do you wish to do so?" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "You already have %d active devices. Since they will be deactivated at some point in the future, you can safely reactivate this device now. Do you wish to do so?" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "It appears you currently have no active device. You can safely reactivate this device now. Do you wish to do so?" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez déjà un autre appareil actif. Comme il est prévu qu'il soit désactivé, vous pouvez réactiver cet appareil dès maintenant. Souhaitez-vous le faire ?" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez déjà %d autres appareils actifs. Comme il est prévu qu'ils soient désactivés, vous pouvez réactiver cet appareil dès maintenant. Souhaitez-vous le faire ?" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il semblerait que vous n'ayez pas d'appareil activé pour le moment. Vous pouvez réactiver cet appareil dès maintenant. Souhaitez-vous le faire ?" + } + } + } + } + } + } + }, + "OWNED_IDENTITY_GENERATED_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You just finished Olvid's configuration!\n\nNo data (first name, last name,...) was ever transmitted to our servers. Everything stays on your device.\n\nDid you notice that we did not ask for your phone number nor your email address?\n\nAnd unlike your previous messenger, Olvid will never request access to your address book." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous venez de terminer la configuration d'Olvid !\n\nAucune donnée (nom, prénom, etc.) n'a été transmise à nos serveurs. Tout reste sur votre appareil.\n\nAvez-vous remarqué que nous ne vous avons pas demandé votre numéro de téléphone ni votre adresse email ?\n\nEt contrairement à votre messagerie précédente, Olvid ne demandera jamais l’accès à votre carnet d’adresses." + } + } + } + }, + "OWNED_IDENTITY_SUMMARY_VIEW_SUBTITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Let's make sure everything's right" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Assurons-nous que tout est correct" + } + } + } + }, + "OWNED_IDENTITY_SUMMARY_VIEW_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ready to add your profile on a new device?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre profil est prêt à être ajouté à votre nouvel appareil" + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_CONTACTING_SERVER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please wait..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez patienter..." + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_ENTER_CODE_FROM_NEW_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enter the code displayed on your new device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tapez ici le code affiché votre nouvel appareil" + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_ENTER_CODE_FROM_OTHER_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enter the code displayed on your other device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tapez ici le code affiché sur l'autre appareil" + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_ENTER_CODE_FROM_OTHER_DEVICE_BODY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "**1.** Start Olvid on your other device.\n\n**2.** Tap your profile picture at the top left.\n\n**3.** Select the profile you wish to import and tap the \"manage\" button.\n\n**4.** Tap \"Add a device\" to display the code." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "**1.** Démarrez Olvid sur l'autre appareil.\n\n**2.** Touchez votre photo de profil en haut à gauche.\n\n**3.** Sélectionnez le profil que vous souhaitez importer et touchez le bouton « Gérer ».\n\n**4.** Touchez « Ajouter un appareil » pour afficher le code." + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_ENTER_CODE_FROM_OTHER_DEVICE_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirm" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Valider" + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_ENTER_CODE_ON_NEW_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enter this code on your new device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tapez ce code sur votre nouvel appareil" + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_ENTER_CODE_ON_OTHER_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enter this code on your other device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tapez ce code sur l'autre appareil" + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_ENTER_CODE_ON_OTHER_DEVICE_BODY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "**1.** Start Olvid on your new device.\n\n**2.** If this device has no profile yet, follow the instructions to import a profile.\n\n**3.** Otherwise, tap your profile picture at the top left and select \"Add a profile\"." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "**1.** Démarrez Olvid sur votre nouvel appareil.\n\n**2.** Si vous n'avez pas de profil sur cet appareil, suivez les instructions pour importer un profil.\n\n**3.** Sinon, touchez votre photo de profil en haut à gauche et choisissez « Ajouter un profil »." + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_FAILED_BODY_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please try again. If the problem persists, please send the following error to [%@](mailto:%@). We will do our best to help you out!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez essayer à nouveau. Si le problème persiste, n'hésitez pas à envoyer l'erreur ci-dessous à [%@](mailto:%@). Nous ferons tout notre possible pour vous aider !" + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_FAILED_SUBTITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "But please try again" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mais n'hésitez pas à essayer à nouveau" + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_FAILED_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "We could not transfer your profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il n'a pas été possible de transférer votre profil" + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_INCORRECT_SERIOUS_ERROR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Something went wrong 😳. Please try again." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quelque chose s'est mal passé 😳. Veuillez réessayer." + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_INCORRECT_TRANSFER_SESSION_NUMBER" : { + "comment" : "This string is used twice (on the source and on the target device)", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The code seems to be incorrect 🥲. Please double-check it and try again." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le code semble être incorrect 🥲. Veuillez le vérifier avant d'essayer à nouveau." + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_KINDA_FAILED_BODY_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please send the following error to [%@](mailto:%@). We will do our best to help you out!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "N'hésitez pas à envoyer l'erreur ci-dessous à [%@](mailto:%@). Nous ferons tout notre possible pour vous aider !" + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_KINDA_FAILED_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your profile's preferences could not be fully restored on this device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les préférences de votre profil n'ont pas pu être restaurées complètement" + } + } + } + }, + "OWNED_IDENTITY_TRANSFER_TARGET_LAST_STEP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Almost there! The remaining steps are perfomed on your second device." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nous y sommes presque ! Les dernières étapes se passent sur votre deuxième appareil." + } + } + } + }, + "Partially" : { + "comment" : "Oups word, with Emoji, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Partially" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Partiellement" + } + } + } + }, + "Passcode" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Passcode" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Passcode" + } + } + } + }, + "PASSWORD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Password" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mot de passe" + } + } + } + }, + "Paste" : { + "comment" : "Paste word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paste" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Coller" + } + } + } + }, + "Paste an Id" : { + "comment" : "Action of an alert", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paste an ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Coller un ID" + } + } + } + }, + "PASTE_CONFIGURATION_LINK" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paste a configuration from the clipboard" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Coller une configuration depuis le presse-papiers" + } + } + } + }, + "PASTE_CONTACT_ID_FROM_CLIPBOARD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paste contact ID from clipboard" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Coller un ID de contact depuis le presse-papiers" + } + } + } + }, + "PASTED_STRING_IS_NOT_VALID_OLVID_CONFIG" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "What you just pasted does not seem to be a valid Olvid configuration link 🤔." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ce que vous venez de coller ne semble pas être une URL de configuration d'Olvid 🤔." + } + } + } + }, + "Pending" : { + "comment" : "Pending word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pending" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "En attente" + } + } + } + }, + "Pending members" : { + "comment" : "Stack view title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pending members" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Membres en attente" + } + } + } + }, + "Perform the deletion" : { + "comment" : "Alert button title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Perform the deletion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suppression" + } + } + } + }, + "Perform the deletion for all users" : { + "comment" : "Alert button title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Perform the deletion for all users" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suppression chez tous les utilisateurs" + } + } + } + }, + "Perform the introduction" : { + "comment" : "UIAlertController action", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Perform the introduction" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Faire les présentations" + } + } + } + }, + "PERFORM_CONTACT_INTRODUCTION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Perform contact introduction" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Faire les présentations" + } + } + } + }, + "PERFORM_INTERACTION_DONATION_FOOTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If you activate this option, your Olvid discussions will be suggested when sharing from another app. This choice can be overridden at the discussion level." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si vous activez cette option, les discussions Olvid apparaîtront directement lorsque vous partagerez du contenu depuis une autre app. Ce paramètre peut être modifié indépendamment pour chaque discussion." + } + } + } + }, + "PERFORM_INTERACTION_DONATION_FOR_THIS_DISCUSSION_FOOTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If you activate this option, this discussion will be suggested when sharing from another app." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si vous activez cette option, cette discussion apparaîtra directement lorsque vous partagerez du contenu depuis une autre app." + } + } + } + }, + "PERFORM_INTERACTION_DONATION_FOR_THIS_DISCUSSION_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suggest this discussion when sharing" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suggérer cette discussion pendant un partage" + } + } + } + }, + "PERFORM_INTERACTION_DONATION_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suggest Olvid's discussions when sharing" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suggérer les discussions Olvid pendant un partage" + } + } + } + }, + "PERMUTE_DEVICE_EXPIRATION_CONFIRMATION_ALERT_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Keep device active and deactivate other device?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Garder l'appareil actif et désactiver un autre appareil ?" + } + } + } + }, + "PERSONAL_NOTE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Personal note" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Note personnelle" + } + } + } + }, + "PHOTO_LIBRARY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Photo library" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Librairie de photos" + } + } + } + }, + "Pin" : { + "comment" : "Pin word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pin" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pin" + } + } + } + }, + "PIN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "PIN" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "PIN" + } + } + } + }, + "Please authenticate in order to change this setting." : { + "comment" : "Cell label", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please authenticate in order to change this setting." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authentifiez-vous pour changer ce paramètre." + } + } + } + }, + "Please authenticate to start Olvid" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please authenticate to start Olvid" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authentifiez-vous pour démarrer Olvid" + } + } + } + }, + "Please enter all the characters of your backup key." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please enter all the characters of your backup key." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entrez tous les caractères de votre clé de sauvegarde." + } + } + } + }, + "Please fix this serious issue with Olvid" : { + "comment" : "Mail subject", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please fix this serious issue with Olvid" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Merci de corriger cette erreur dans Olvid" + } + } + } + }, + "Please note that generating a new backup key will invalidate all your previous backups. If you generate a new backup key, please create a fresh backup right afterwards." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please note that generating a new backup key will invalidate all your previous backups. If you generate a new backup key, please create a fresh backup right afterwards." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Générer une nouvelle clé de sauvegarde invalide vos sauvegardes précédentes. Si vous décidez de générer une nouvelle clé, nous vous recommandons d'effectuer une sauvegarde juste après." + } + } + } + }, + "Please open settings and enable Background App Refresh. Hint: If the button is grayed out, you may have turned off the general setting which can be found within:\n\n Settings > General > Background App Refresh" : { + "comment" : "Long solution", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please open settings and enable Background App Refresh.\n\nHint: If the button is grayed out, you may have turned off the general setting which can be found within:\n\nSettings > General > Background App Refresh" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Allez dans les Réglages et activez l'actualisation en arrière-plan.\n\nAstuce : Si le bouton est grisé, vous avez probablement désactivé le réglage global qui se trouve ici :\n \nRéglages > Général > Actualiser en arrière-plan" + } + } + } + }, + "Please remove any pending/group member and try again." : { + "comment" : "Alert body", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please remove any pending/group member and try again." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Retirez tous les membres et membres en attente et essayez à nouveau." + } + } + } + }, + "Please report this error to %1$@ so we can fix this issue as fast as possible." : { + "comment" : "body text", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restarting your device may fix this issue. If it does not, please report this error to %1$@ so we can fix this issue as fast as possible." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il se peut qu'un redémarrage de votre iPhone corrige ce problème. Sinon, nous vous serions reconnaissant d'envoyer cette erreur à %1$@ pour que nous puissions la corriger le plus vite possible." + } + } + } + }, + "Please sign in to your iCloud account to enable automatic backups. On the Home screen, launch Settings, tap iCloud, and enter your Apple ID. Turn iCloud Drive on. If you don't have an iCloud account, tap Create a new Apple ID." : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please sign in to your iCloud account to enable automatic backups. On the Home screen, launch Settings, tap iCloud, and enter your Apple ID. Turn iCloud Drive on. If you don't have an iCloud account, tap Create a new Apple ID." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connectez-vous à iCloud pour activer les sauvegardes automatiques. Sur l'écran d'accueil, démarrez l'App Réglages, touchez iCloud et entrez votre Apple ID. Activez iCloud Drive. Si vous n'avez pas de compte iCloud, touchez Créer un nouvel Apple ID." + } + } + } + }, + "Please sign in to your iCloud account. On the Home screen, launch Settings, tap iCloud, and enter your Apple ID. Turn iCloud Drive on." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please sign in to your iCloud account. On the Home screen, launch Settings, tap iCloud, and enter your Apple ID. Turn iCloud Drive on." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connectez-vous à iCloud. Sur l'écran d'accueil, démarrez l'App Réglages, touchez iCloud et entrez votre Apple ID. Activez iCloud Drive." + } + } + } + }, + "PLEASE_CHOOSE_PROFILE_TO_PROCESS_OLVID_URL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please choose the profile you wish to use." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez choisir le profil avec lequel vous désirez continuer." + } + } + } + }, + "PLEASE_CONTACT_ADMIN_FOR_MORE_DETAILS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please contact your administrator for more details." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez contacter votre administrateur pour plus d'informations." + } + } + } + }, + "PLEASE_LAUNCH_OLVID_FROM_MAIN_APP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please launch the Olvid App to be able to share content 😉." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il vous faut lancer l'app Olvid avant de pouvoir partager du contenu 😉." + } + } + } + }, + "PLEASE_NOTE_THAT_YOUR_CUSTOM_PASSCODE_CANNOT_BE_RECOVERED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please note that if you forget your passcode, it cannot be recovered and you won't be able to access Olvid anymore." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez noter que si vous oubliez votre code personnalisé, il ne sera pas possible de le récupérer, et vous ne pourrez plus accéder à Olvid." + } + } + } + }, + "PLEASE_NOTE_THIS_CODE_WORKS_ONLY_ONCE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please note that this code will work only once." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ce code n'est utilisable qu'une seul fois." + } + } + } + }, + "PLEASE_TRY_AGAIN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please try again" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Essayez à nouveau" + } + } + } + }, + "PLEASE_TRY_AGAIN_LATER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please try again later" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez essayer à nouveau plus tard" + } + } + } + }, + "PLEASE_UPDATE_OLVID_FROM_MAIN_APP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please launch the Olvid App in order to finalize its update 🚀. You will be able to share content once this is done 😉." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez lancer l'app Olvid afin de terminer la mise à jour 🚀. Vous pourrez à nouveau partager du contenu une fois que ce sera fait 😉." + } + } + } + }, + "PLEASE_WAIT_DURING_UPDATE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Update in progress. Please do not quit Olvid." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mise à jour en cours. Veuillez ne pas quitter Olvid." + } + } + } + }, + "PLEASE_WAIT_WHILE_WE_CHECK_WHETHER_YOUR_DEVICE_%@_CAN_BE_REACTIVATED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please stand by while we check whether your device \"%@\" can be reactivated..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veuillez patienter pendant que nous verifions si votre appareil « %@ » peut être réactivé..." + } + } + } + }, + "Premium features" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium features" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fonctionnalités premium" + } + } + } + }, + "Premium features are available for a limited period of time" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium features are available for a limited period of time." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les fonctionnalités premium sont disponibles pour une durée limitée." + } + } + } + }, + "Premium features are available for free until %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium features are available for free until %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les fonctionnalités premium sont disponibles gratuitement jusqu'au %@" + } + } + } + }, + "Premium features available for free" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium features available for free" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fonctionnalités premiums disponibles gratuitement" + } + } + } + }, + "Premium features available until %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium features available until %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fonctionnalités premiums disponibles jusqu'au %@" + } + } + } + }, + "Premium features free trial" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium features free trial" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Période d'essai gratuite des fonctionnalités premiums" + } + } + } + }, + "Premium features tryout" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium features tryout" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Essai des fonctionnalités premium" + } + } + } + }, + "Premium subscription" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium subscription" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abonnement premium" + } + } + } + }, + "Privacy" : { + "comment" : "Privacy word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Privacy" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vie Privée" + } + } + } + }, + "PRIVACY_POLICY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Privacy policy" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Politique de confidentialité" + } + } + } + }, + "Problem" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Problem" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Problème" + } + } + } + }, + "Proceed" : { + "comment" : "Proceed word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Proceed" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Poursuivre" + } + } + } + }, + "Processing" : { + "comment" : "Processing word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Processing" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Traitement" + } + } + } + }, + "PROFILE_ADDED_SUCCESSFULLY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your profile was added on this device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre profil a été ajouté sur cet appareil" + } + } + } + }, + "PROFILE_YOU_ARE_ABOUT_TO_ADD_TO_NEW_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This profile:" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ce profil:" + } + } + } + }, + "Publish" : { + "comment" : "Publish word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publish" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publier" + } + } + } + }, + "PUBLISH" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publish" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publier" + } + } + } + }, + "PUBLISH_GROUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publish group changes" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publier les modifications" + } + } + } + }, + "PUBLISH_MY_GROUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publish group changes" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publier les modifications" + } + } + } + }, + "PUBLISH_MY_ID" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publish my ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publier mon ID" + } + } + } + }, + "PUBLISH_NEW_GROUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publish this new group?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publier ce nouveau groupe ?" + } + } + } + }, + "PUBLISH_NEW_ID" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publish your new ID?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Publier votre nouvel ID ?" + } + } + } + }, + "QR code" : { + "comment" : "Button title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "QR code" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Code QR" + } + } + } + }, + "QUICK_EMOJI_EXPLANATION" : { + "comment" : "Section footer", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The quick emoji is available when the text field allowing to compose messages is empty. Tapping this emoji sends it emmediately. Tapping this emoji twice (or three times) sends it twice (or three times). Here, you can customize the default quick emoji for all discussions. This choice can be overriden at the discussion level, by customizing the quick emoji of the discussion." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'emoji rapide est accessible quand la zone de composition de message ne contient pas de texte. Appuyer sur cet emoji l'envoie immédiatement. Appuyer deux (ou trois) fois en envoie deux (ou trois). Vous pouvez personnaliser ici l'emoji rapide par défaut pour toutes les discussions. Ce choix peut être outrepassé au niveau de chaque discussion, en personnalisant l'emoji rapide de la discussion." + } + } + } + }, + "REACTIVATE_PROFILE_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reactivate my profile on this device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réactiver mon profil sur cet appareil" + } + } + } + }, + "Read" : { + "comment" : "Read word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Read" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Lu" + } + } + } + }, + "READ_ONCE_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Read once" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Lecture unique" + } + } + } + }, + "READ_ONCE_SECTION_FOOTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "When activated, messages and attachments are displayed only once, and are deleted when exiting the discussion." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si ce réglage est activé, les messages et leurs pièces jointes ne sont affichés qu'une seule fois. Il sont supprimés au sortir de la discussion." + } + } + } + }, + "REBLOCK_CONTACT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Re-block contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rebloquer le contact" + } + } + } + }, + "REBLOCK_CONTACT_CONFIRMATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you really want to re-block the contact?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous rebloquer le contact ?" + } + } + } + }, + "RECEIVE_CALLS_ON_THIS_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Receive secure calls on this device" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Recevoir des appels sécurisés sur cet appareil" + } + } + } + }, + "RECEIVE_SECURE_CALLS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Receive secure calls with iPhone and iPad" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Recevoir des appels sécurisés avec iPhone et iPad" + } + } + } + }, + "Received" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Received" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reçu" + } + } + } + }, + "recent backups count" : { + "comment" : "Header for n recent backups", + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "One backup" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u most recent backups" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "No backups" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une sauvegarde" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%u sauvegardes les plus récentes" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune sauvegarde" + } + } + } + } + } + } + }, + "RECONNECTING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reconnecting" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reconnexion" + } + } + } + }, + "RECREATE_SECURE_CHANNEL_WITH_THIS_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Recreate the secure channel" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Recréer le canal sécurisé" + } + } + } + }, + "REFERENCED_BY_DATABASE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Referenced by database" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Référencés depuis la base de données" + } + } + } + }, + "Refresh group" : { + "comment" : "Button title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Refresh group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Actualiser le groupe" + } + } + } + }, + "Refresh status" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Refresh status" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Actualiser le statut" + } + } + } + }, + "Reinvite contact?" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reinvite contact?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Inviter à nouveau ?" + } + } + } + }, + "Reject" : { + "comment" : "Reject word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reject" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Refuser" + } + } + } + }, + "REJECTED_INCOMING_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rejected incoming call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel entrant rejeté" + } + } + } + }, + "REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_DENIED" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The incoming call was rejected because Olvid is not allowed to access the Microphone. To never miss a call again, please go to Settings and grant Olvid access to the microphone." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'appel entrant n'a pas abouti car Olvid n'a pas l'autorisation d'accéder au micro. Pour ne plus rater d'appel, allez dans les Réglages et autorisez l'accès au micro pour Olvid." + } + } + } + }, + "REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_DENIED_NOTIFICATION_BODY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The incoming call was rejected because Olvid was not allowed to access the Microphone. To never miss a call again, please go to Settings and grant Olvid access to the microphone." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour recevoir des appels, vous devez autoriser Olvid à accéder au micro. Pour ne plus rater d'appel, allez dans les Réglages et autorisez l'accès au micro pour Olvid." + } + } + } + }, + "REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_UNDETERMINED_NOTIFICATION_BODY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "To received a call, you need to allow Olvid to access the microphone. Please tap on this notification to allow Olvid to access the microphone." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour recevoir des appels, vous devez autoriser Olvid à accéder au micro. Cliquez sur la notification et autorisez l'accès au micro." + } + } + } + }, + "REMIND_ME_LATER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remind me later" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Me rappeler plus tard" + } + } + } + }, + "Remotely wiped" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remotely wiped" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Éliminé à distance" + } + } + } + }, + "Remotely wiped by %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remotely wiped by %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Éliminé à distance par %@" + } + } + } + }, + "REMOTELY_WIPED_BY_YOU" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remotely wiped by you" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimé à distance par vous" + } + } + } + }, + "Remove Members" : { + "comment" : "Button title for removing members from an owned contact groupe", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remove Members" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Retirer des Participants" + } + } + } + }, + "Remove nickname" : { + "comment" : "UIAlertController action", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remove nickname" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer le surnom" + } + } + } + }, + "REMOVE_IDENTITY_PROVIDER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remove identity provider" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer le fournisseur d'identité" + } + } + } + }, + "REMOVE_OWNED_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deactivate now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désactiver maintenant" + } + } + } + }, + "REMOVE_OWNED_DEVICE_ALERT_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deactivate device?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désactiver cet appareil ?" + } + } + } + }, + "REMOVE_PICTURE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remove the photo" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer la photo" + } + } + } + }, + "RENAME_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rename" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Renommer" + } + } + } + }, + "Reply" : { + "comment" : "Reply word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reply" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Répondre" + } + } + } + }, + "REPLYING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Replying" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réponse" + } + } + } + }, + "REPLYING_TO_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Replying to %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réponse à %@" + } + } + } + }, + "REPLYING_TO_CONTACT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Replying to a contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réponse à un contact" + } + } + } + }, + "REPLYING_TO_YOU" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Replying to you" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réponse à vous" + } + } + } + }, + "REPLYING_TO_YOURSELF" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Replying to yourself" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réponse à vous-même" + } + } + } + }, + "Reset" : { + "comment" : "Reset word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reset" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réinitialiser" + } + } + } + }, + "RESET_COMPOSE_MESSAGE_VIEW_ACTIONS_ORDER" : { + "comment" : "reset compose view message action title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reset buttons order to default" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réinitialiser l'ordre des boutons" + } + } + } + }, + "RESET_DISCUSSION_EMOJI_TO_DEFAULT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reset" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réinitialiser" + } + } + } + }, + "RESET_DISCUSSION_EMOJI_TO_DEFAULT_DISCUSSION_LEVEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reset" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réinitialiser" + } + } + } + }, + "Restart" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restart" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Redémarrer" + } + } + } + }, + "RESTART_CHANNEL_CREATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restart secure channel creation" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Redémarrer la création du canal sécurisé" + } + } + } + }, + "Restore" : { + "comment" : "Restore word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restore" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restaurer" + } + } + } + }, + "Restore a backup" : { + "comment" : "Button title, Navigation controller title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restore a backup" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restaurer une sauvegarde" + } + } + } + }, + "Restore failed 🥺" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restore failed 🥺" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La restauration a échoué 🥺" + } + } + } + }, + "Restore Purchases" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restore Purchases" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restaurer les achats" + } + } + } + }, + "Restore this backup" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restore this backup" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restaurer la sauvegarde" + } + } + } + }, + "RESTORE_BACKUP_FAILED_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The backup could not be restored. If you can, we recommend you try to restore another backup." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La sauvegarde n'a malheureusement pas pu être restaurée. Si vous le pouvez, nous vous recommandons d'essayer de restaurer une autre sauvegarde." + } + } + } + }, + "RESTORING_BACKUP_PLEASE_WAIT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restoring backup. Please Wait." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restauration en cours..." + } + } + } + }, + "RETAIN_WIPED_OUTBOUND_MESSAGES_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Retain wiped ephemeral outbound messages" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Conserver une trace des messages éphémères envoyés" + } + } + } + }, + "RETAIN_WIPED_OUTBOUND_MESSAGES_SECTION_FOOTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "When activated, outbound ephemeral messages are not deleted when they expire, but replaced by a static text." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si ce réglage est activé, les messages éphémères sortants ne sont pas supprimés à expiration, mais remplacés par un texte fixe." + } + } + } + }, + "RETENTION_INFO_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message retention information" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Informations de rétention de message" + } + } + } + }, + "RETENTION_SETTINGS_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message retention policy" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Politique de rétention des messages" + } + } + } + }, + "Rich link preview" : { + "comment" : "Cell title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rich link preview" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prévisualisation des liens" + } + } + } + }, + "Right Tone" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Right Tone" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "" + } + } + } + }, + "Save" : { + "comment" : "Save word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer" + } + } + } + }, + "Save changes" : { + "comment" : "Alert button title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save changes" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sauver les modifications" + } + } + } + }, + "save count attachments" : { + "comment" : "Localized dict string allowing to display a title", + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save attachment" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save %u attachments" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "No attachment to save" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sauvegarder la pièce jointe" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sauvegarder les %u pièces jointes" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune pièce jointe" + } + } + } + } + } + } + }, + "SCAN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scan" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scanner" + } + } + } + }, + "Scan another user's QR code" : { + "comment" : "Title of an alert action", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scan another user's QR code" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scanner le code QR d'un autre utilisateur" + } + } + } + }, + "Scan document" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scan document" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scanner un document" + } + } + } + }, + "Scan QR code" : { + "comment" : "View controller title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scan QR code" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scannez un code QR" + } + } + } + }, + "SCAN_QR_CODE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scan a QR code" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scanner un code QR" + } + } + } + }, + "SCANNING_CONTACT_ID_ALLOWS_YOU_TO_INVITE_THEM_NOW" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scanning the ID of another user allows you to invite them." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Scanner l'ID d'un autre utilisateur vous permet de l'inviter." + } + } + } + }, + "Screen Lock" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Screen Lock" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verrouillage d'écran" + } + } + } + }, + "Search" : { + "comment" : "Search word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Search" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rechercher" + } + } + } + }, + "SEARCH_FOR_NEW_DEVICES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Search for missing devices" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rechercher des appareils manquants" + } + } + } + }, + "SEARCH_HERE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Search for a contact within your company 🔎" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Recherchez un contact de votre entreprise 🔎" + } + } + } + }, + "SECURE_CALL_IN_PROGRESS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Secure call in progress" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appel sécurisé en cours" + } + } + } + }, + "SECURE_CHANNEL_CREATED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Secure channel created" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Canal sécurisé créé" + } + } + } + }, + "SECURE_CHANNEL_CREATION_IN_PROGRESS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Secure channel creation in progress" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Canal sécurisé en cours de création" + } + } + } + }, + "see count attachments" : { + "comment" : "Number of attachments", + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "→ See the attachment" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "→ See %u attachments" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "No attachment" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "→ Voir la pièce jointe" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "→ Voir les %u pièces jointes" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune pièce jointe" + } + } + } + } + } + } + }, + "See subscription plans" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "See subscription plans" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voir les offres d'abonnement" + } + } + } + }, + "Select" : { + "comment" : "Select word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Select" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisir" + } + } + } + }, + "SELECT_NEW_CALL_PARTICIPANTS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Select participants to add to the ongoing call." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sélectionnez les utilisateurs à ajouter à l'appel" + } + } + } + }, + "Send" : { + "comment" : "Send word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Send" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Envoyer" + } + } + } + }, + "Send invite" : { + "comment" : "title of an alert", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Send invitation" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Envoyer une invitation" + } + } + } + }, + "Send Read Receipts" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Send Read Receipts" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirmation de lecture" + } + } + } + }, + "Send this to the development team" : { + "comment" : "Button title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Send this to the development team" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Envoyer à l'équipe de développement" + } + } + } + }, + "SEND_ERROR_BY_EMAIL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Send error by email" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Envoyer l'erreur par mail" + } + } + } + }, + "SEND_INVITE_TO_%@_TO_ADD_THEM_TO_YOUR_CONTACTS_FROM_A_DISTANCE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Send an invitation to %@ to add them to your contacts from a distance." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Envoyez une invitation à %@ pour l'ajouter à vos contacts à distance." + } + } + } + }, + "SEND_MESSAGE" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Send message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Envoyer un message" + } + } + } + }, + "SEND_READ_RECEIPT_SECTION_FOOTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "When activated, your contacts will be notified when you have read their messages within this discussion." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si ce réglage est activé, vos correspondants recevront une confirmation lorsque vous aurez lu leurs messages dans le cadre de cette discussion." + } + } + } + }, + "SEND_READ_RECEIPTS_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Send read receipts" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirmation de lecture" + } + } + } + }, + "Sending & receiving messages and attachments" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sending & receiving messages and attachments" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Envoyer & recevoir des messages et des pièces jointes" + } + } + } + }, + "Sent" : { + "comment" : "Sent word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sent" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Envoyé" + } + } + } + }, + "Sent messages only" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sent messages only" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Messages envoyés uniquement" + } + } + } + }, + "SERVER_DOES_NOT_SUPPORT_CALLS" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The server does not support calls." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le serveur ne permet pas de passer des appels" + } + } + } + }, + "SERVER_URL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Server URL" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "URL du serveur" + } + } + } + }, + "Set Group Name" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Set Group Name" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisir un nom pour ce groupe" + } + } + } + }, + "Settings" : { + "comment" : "Settings word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Settings" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paramètres" + } + } + } + }, + "SETTINGS_UPDATE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Settings update" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mise à jour de la configuration" + } + } + } + }, + "Share" : { + "comment" : "Share word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Share" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Partager" + } + } + } + }, + "share count attachments" : { + "comment" : "Localized dict string allowing to display a title", + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Share attachment" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Share %u attachments" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "No attachment to share" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Partager la pièce jointe" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Partager les %u pièces jointes" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune pièce jointe" + } + } + } + } + } + } + }, + "share count photos" : { + "comment" : "Localized dict string allowing to display a title", + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Share the photo" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Share the %u photos" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "No photo to share" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Partager la photo" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Partager les %u photos" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune photo à partager" + } + } + } + } + } + } + }, + "SHARE_MSG_OLVID_TAKES_TOO_LONG_TO_START" : { + "comment" : "Body text", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If the problem persists, you can help the development team by tapping the button below. This will share (only) the following message with them." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si le problème persiste, vous pouvez aider l'équipe de développement à résoudre votre problème via la bouton ci-dessous. Vous partagerez (uniquement) le message encadré ci-dessous avec elle." + } + } + } + }, + "SHARE_MY_ID" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Share my ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Partager mon ID" + } + } + } + }, + "SHARE_VIEW_PROFILE_SELECTION_BAR_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Profil" + } + } + } + }, + "SHARED_CONFIG" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Shared configuration" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Configuration partagée" + } + } + } + }, + "SHARING_YOUR_ID_ALLOWS_OTHERS_TO_INVITE_YOU_REMOTELY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sharing your ID allows another Olvid user to invite you." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Partager votre ID permet à un autre utilisateur de vous inviter." + } + } + } + }, + "Show" : { + "comment" : "Show word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Afficher" + } + } + } + }, + "Show my Id" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show my ID" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Montrer mon ID" + } + } + } + }, + "Show my QR code" : { + "comment" : "Title of an alert action", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show my QR code" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Afficher mon code QR" + } + } + } + }, + "SHOW_BACKUP_SCREEN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Backup settings" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paramètres de sauvegarde" + } + } + } + }, + "SHOW_CONTACT_DETAILS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show all contact details" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voir tous les détails du contact" + } + } + } + }, + "SHOW_CURRENT_COORDINATORS_OPS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show current coordinators operations" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voir les opérations courantes" + } + } + } + }, + "SHOW_IN_DISCUSSION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show in discussion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Afficher dans la discussion" + } + } + } + }, + "SHOW_OWNED_IDENTITY_DETAILS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show profile informations" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Afficher les détails de ce profil" + } + } + } + }, + "SHOW_RICH_LINK_PREVIEW_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show rich link previews" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prévisualiser" + } + } + } + }, + "SHOW_SETTINGS_SCREEN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "All settings" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tous les paramètres" + } + } + } + }, + "Sign in to iCloud" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sign in to iCloud" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connectez-vous à iCloud" + } + } + } + }, + "SIGNED_DETAILS_DATE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Signature date" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Date de la signature" + } + } + } + }, + "SINGLE_GROUP_V2_VIEW_ALERT_CANNOT_LEAVE_GROUP_AS_KEYCLOAK_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Since this group a managed by your company's server, you cannot leave it." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comme ce groupe et géré par le serveur de votre entreprise, il ne vous est pas possible de le quitter." + } + } + } + }, + "SINGLE_GROUP_V2_VIEW_ALERT_CANNOT_LEAVE_GROUP_AS_KEYCLOAK_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You cannot leave the group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous ne pouvez pas quitter le groupe" + } + } + } + }, + "SINGLE_GROUP_V2_VIEW_ALERT_CANNOT_LEAVE_GROUP_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Since you are the only administrator of this group, you cannot leave it now (you would leave the group with no administrator). You can name another administrator among the other group members and try again." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comme vous êtes le seul administrateur de ce groupe, il vous est impossible de le quitter (vous laisseriez le groupe sans administrateur). Une fois que vous aurez nommé un autre administrateur, vous pourrez essayer à nouveau." + } + } + } + }, + "SINGLE_GROUP_V2_VIEW_ALERT_CANNOT_LEAVE_GROUP_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You cannot leave the group for now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous ne pouvez pas quitter le groupe pour le moment" + } + } + } + }, + "SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_DISBAND_GROUP_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete this group for all members" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer ce groupe chez tous les utilisateurs" + } + } + } + }, + "SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_DISBAND_GROUP_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please note that this action is irreversible. I you confirm, this group will be deleted for all members." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer un groupe est une opération irréversible. Si vous continuez, le groupe sera supprimé chez tous les membres." + } + } + } + }, + "SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_DISBAND_GROUP_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Heads-up! Do you really wish to disband this group?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Attention ! Voulez-vous vraiment supprimer ce groupe ?" + } + } + } + }, + "SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_LEAVE_GROUP_BUTTON_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Leave this group" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quitter ce groupe" + } + } + } + }, + "SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_LEAVE_GROUP_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please note that this action is irreversible (unless a group administrator decides to invite you again later on)." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Attention, cette action est irréversible (sauf si un administrateur du groupe vous y invite à nouveau après que vous l'ayez quitté)." + } + } + } + }, + "SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_LEAVE_GROUP_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you really wish to leave this group?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous vraiment quitter le groupe ?" + } + } + } + }, + "Size" : { + "comment" : "Size word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Size" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Taille" + } + } + } + }, + "SNACK_BAR_BODY_CREATE_BACKUP_KEY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "It's time to setup backups!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il est temps de configurer les sauvegardes !" + } + } + } + }, + "SNACK_BAR_BODY_GRANT_PERMISSION_TO_RECORD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You missed a call!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez raté un appel !" + } + } + } + }, + "SNACK_BAR_BODY_GRANT_PERMISSION_TO_RECORD_IN_SETTINGS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You missed a call!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez raté un appel !" + } + } + } + }, + "SNACK_BAR_BODY_INACTIVE_PROFILE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your profile is inactive" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre profil est inactif" + } + } + } + }, + "SNACK_BAR_BODY_IOS_VERSION_ACCEPTABLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "iOS upgrade recommended." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mise à jour d'iOS recommandée." + } + } + } + }, + "SNACK_BAR_BODY_IOS_VERSION_SHOULD_UPGRADE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "iOS upgrade recommended." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mise à jour d'iOS recommandée." + } + } + } + }, + "SNACK_BAR_BODY_IOS_VERSION_WILL_BE_UNSUPPORTED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "⚠️ Support for your iOS version will soon be dropped." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "⚠️ Le support pour votre version d'iOS sera bientôt abandonné." + } + } + } + }, + "SNACK_BAR_BODY_LAST_UPLOAD_BACKUP_HAS_FAILED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The last backup failed" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La dernière sauvegarde a échoué" + } + } + } + }, + "SNACK_BAR_BODY_NEW_APP_VERSION_AVAILABLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "A new version of Olvid is available 🥳!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une nouvelle version d'Olvid est disponible 🥳 !" + } + } + } + }, + "SNACK_BAR_BODY_SHOULD_PERFORM_BACKUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "It's backup time!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Il est temps de faire une sauvegarde !" + } + } + } + }, + "SNACK_BAR_BODY_SHOULD_VERIFY_BACKUP_KEY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you remember your backup key?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous souvenez-vous de votre clé de sauvegarde ?" + } + } + } + }, + "SNACK_BAR_BUTTON_TITLE_CREATE_BACKUP_KEY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show me" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Info" + } + } + } + }, + "SNACK_BAR_BUTTON_TITLE_GRANT_PERMISSION_TO_RECORD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show me" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Info" + } + } + } + }, + "SNACK_BAR_BUTTON_TITLE_GRANT_PERMISSION_TO_RECORD_IN_SETTINGS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show me" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Info" + } + } + } + }, + "SNACK_BAR_BUTTON_TITLE_INACTIVE_PROFILE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show me" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Info" + } + } + } + }, + "SNACK_BAR_BUTTON_TITLE_NEW_APP_VERSION_AVAILABLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Info" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Info" + } + } + } + }, + "SNACK_BAR_BUTTON_TITLE_SHOULD_PERFORM_BACKUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show me" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Info" + } + } + } + }, + "SNACK_BAR_BUTTON_TITLE_SHOULD_VERIFY_BACKUP_KEY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show me" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Info" + } + } + } + }, + "SNACK_BAR_DETAILS_BODY_CREATE_BACKUP_KEY_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If you were to lose your %@, or to uninstall Olvid by mistake, you would lose your Olvid ID, all your contacts, and all your groups 😱. Luckily for you, it is possible to setup secure backups 😅.\n\nPress \"Setup backups\" to begin." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si vous veniez à égarer votre %@, ou à désinstaller Olvid par erreur, vous perdriez votre ID Olvid, l'intégralité de vos contacts et tous vos groupes 😱. Fort heureusement, il est possible de les sauvegarder de façon sécurisée 😅. Appuyez sur « Paramétrer les sauvegardes » pour commencer." + } + } + } + }, + "SNACK_BAR_DETAILS_BODY_GRANT_PERMISSION_TO_RECORD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "To received a call, you need to allow Olvid to access the microphone." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour recevoir des appels, vous devez autoriser Olvid à accéder au micro." + } + } + } + }, + "SNACK_BAR_DETAILS_BODY_GRANT_PERMISSION_TO_RECORD_IN_SETTINGS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "To received a call, you need to allow Olvid to access the microphone. To never miss a call again, please go to Settings and grant Olvid access to the microphone." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour recevoir des appels, vous devez autoriser Olvid à accéder au micro. Pour ne plus rater d'appel, allez dans les Réglages et autorisez l'accès au micro pour Olvid." + } + } + } + }, + "SNACK_BAR_DETAILS_BODY_INACTIVE_PROFILE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your profile is not active on this device but you can reactivate it now." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre profil est inactif sur cet appareil mais vous pouvez le réactiver maintenant." + } + } + } + }, + "SNACK_BAR_DETAILS_BODY_IOS_VERSION_ACCEPTABLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "To make sure you use the latest version of iOS, go to Settings > General, then tap Software Update." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour vous assurer que vous utilisez la dernière version d'iOS, accédez à l'App Réglages sur votre appareil. Allez dans Général puis touchez Mise à jour logicielle." + } + } + } + }, + "SNACK_BAR_DETAILS_BODY_IOS_VERSION_SHOULD_UPGRADE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "We detected that you are not using the latest version of iOS. You are missing out on important features of Olvid. To make the most out of Olvid, you should upgrade iOS.\nTo do so, open the Settings App on your device. Go to General and tap Software Update." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nous avons détecté que vous n'utilisez pas la dernière version d'iOS. Vous être en train de passer à côté de fonctionnalités importantes d'Olvid. Pour profiter d'Olvid au maximum, vous devriez mettre à jour iOS.\nPour ce faire, accédez à l'App Réglages sur votre appareil. Allez dans Général puis touchez Mise à jour logicielle." + } + } + } + }, + "SNACK_BAR_DETAILS_BODY_IOS_VERSION_WILL_BE_UNSUPPORTED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "We detected that you use an iOS version that Olvid will not support anymore, starting with the next update. We appologize for this. If possible, we recommend you upgrade to the latest iOS version.\nTo do so, open the Settings App on your device. Go to General and tap Software Update." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nous avons détecté que vous utilisez une version d'iOS que Olvid ne supportera plus dès la prochaine mise à jour. Nous vous présentons toutes nos excuses. Si possible, nous vous recommandons de mettre à jour iOS.\nPour ce faire, accédez à l'App Réglages sur votre appareil. Allez dans Général puis touchez Mise à jour logicielle." + } + } + } + }, + "SNACK_BAR_DETAILS_BODY_LAST_UPLOAD_BACKUP_HAS_FAILED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You should make sure your iCloud account is properly configured on this device. Once this is done, we can try again." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nous vous recommandons de vérifier que vous avez bien configuré votre compte iCloud sur cet appareil. Ensuite, vous pourrez essayer à nouveau." + } + } + } + }, + "SNACK_BAR_DETAILS_BODY_NEW_APP_VERSION_AVAILABLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "A new version of Olvid is available from the App Store. You are missing out amazing new features 🤓! We recommend you upgrade now 🚀." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une nouvelle version d'Olvid est disponible dès maintenant sur l'App Store. Pour ne pas rater les dernières nouveautés d'Olvid 🤓, nous vous recommandons de mettre à jour maintenant 🚀." + } + } + } + }, + "SNACK_BAR_DETAILS_BODY_SHOULD_PERFORM_BACKUP_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "In order not to lose any contact, we recommend you activate automatic backups to iCloud. Don't worry, these backups are encrypted 🤓!\nOtherwise, you may also perform manual backups on a regular basis.\n\nPress \"Setup backups\" to begin." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour ne perdre aucun contact, nous vous recommandons d'activer les sauvegardes automatiques vers iCloud. Rassurez-vous, elles sont chiffrées 🤓 ! Sinon, vous pouvez aussi effectuer des sauvegardes manuelles régulièrement. Appuyez sur « Paramétrer les sauvegardes » pour commencer." + } + } + } + }, + "SNACK_BAR_DETAILS_BODY_SHOULD_VERIFY_BACKUP_KEY_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Having an up to date Olvid backup is essential, but you need your backup key to restore it!\n\nPress \"Setup backups\" to verify your key. If you lost it, don't worry, you can generate a new one 🤗." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Avoir une sauvegarde à jour est essentiel, mais il vous faut votre clé de sauvegarde pour la restaurer ! Appuyez sur « Paramétrer les sauvegardes » pour vérifier votre clé. Si vous avez perdu cette clé, pas d'inquiétude, vous pourrez en générer une nouvelle 🤗." + } + } + } + }, + "SNACK_BAR_DETAILS_TITLE_CREATE_BACKUP_KEY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Why should I setup backups 🧐?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pourquoi configurer les sauvegardes 🧐 ?" + } + } + } + }, + "SNACK_BAR_DETAILS_TITLE_GRANT_PERMISSION_TO_RECORD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You missed a call because Olvid is not allowed to access the microphone" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez raté un appel car Olvid n'a pas accès au micro" + } + } + } + }, + "SNACK_BAR_DETAILS_TITLE_GRANT_PERMISSION_TO_RECORD_IN_SETTINGS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You missed a call because Olvid is not allowed to access the microphone" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez raté un appel car Olvid n'a pas accès au micro" + } + } + } + }, + "SNACK_BAR_DETAILS_TITLE_INACTIVE_PROFILE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your profile is inactive" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre profil est inactif" + } + } + } + }, + "SNACK_BAR_DETAILS_TITLE_IOS_VERSION_ACCEPTABLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "iOS upgrade recommended" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mise à jour d'iOS recommandée" + } + } + } + }, + "SNACK_BAR_DETAILS_TITLE_IOS_VERSION_SHOULD_UPGRADE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "iOS upgrade recommended" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mise à jour d'iOS recommandée" + } + } + } + }, + "SNACK_BAR_DETAILS_TITLE_IOS_VERSION_WILL_BE_UNSUPPORTED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Support for your iOS version will soon be dropped" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le support pour votre version d'iOS sera bientôt abandonné." + } + } + } + }, + "SNACK_BAR_DETAILS_TITLE_LAST_UPLOAD_BACKUP_HAS_FAILED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Why should I fix this?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Que puis-je faire ?" + } + } + } + }, + "SNACK_BAR_DETAILS_TITLE_NEW_APP_VERSION_AVAILABLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "A new version of Olvid is available 🥳!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Une nouvelle version d'Olvid est disponible 🥳 !" + } + } + } + }, + "SNACK_BAR_DETAILS_TITLE_SHOULD_PERFORM_BACKUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Why should I create a backup 🧐?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pourquoi faire une sauvegarde 🧐 ?" + } + } + } + }, + "SNACK_BAR_DETAILS_TITLE_SHOULD_VERIFY_BACKUP_KEY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Why should I remember my backup key 🧐?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pourquoi vérifier sa clé de sauvegarde 🧐 ?" + } + } + } + }, + "SNACK_BAR_TITLE_IOS_VERSION_ACCEPTABLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "More" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Info" + } + } + } + }, + "SNACK_BAR_TITLE_IOS_VERSION_SHOULD_UPGRADE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "More" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Info" + } + } + } + }, + "SNACK_BAR_TITLE_IOS_VERSION_WILL_BE_UNSUPPORTED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "More" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Info" + } + } + } + }, + "SNACK_BAR_TITLE_LAST_UPLOAD_BACKUP_HAS_FAILED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show me" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Info" + } + } + } + }, + "Solution" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Solution" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Solution" + } + } + } + }, + "SOME_GROUP_MEMBERS_MUST_UPGRADE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Some members must upgrade Olvid" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Certains membres doivent mettre à jour Olvid" + } + } + } + }, + "SOME_OF_YOUR_CONTACTS_MAY_NOT_APPEAR_AS_GROUP_V2_CANDIDATES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please choose who to add to this group. Can't find the user you are looking for? Please ask them to upgrade to the latest version of Olvid 🚀." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisissez qui ajouter à ce groupe. Vous ne trouvez pas la personne que vous cherchez ? Demandez-lui de mettre à jour Olvid 🚀 !" + } + } + } + }, + "Sorry, the product is not available in your store 😢." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sorry, the product is not available in your store 😢." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désolé, le produit n'est pas disponible dans votre Store 😢." + } + } + } + }, + "Sorry, the purchase failed 😢. Please try again later or contact us if this problem is recurring. %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sorry, the purchase failed 😢. Please try again later or contact us if this problem is recurring.\n%@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désolé, l'achat a échoué 😢. N'hésitez pas à essayer plus tard ou à nous contacter si le problème est récurrent.\n%@" + } + } + } + }, + "Sorry..." : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sorry..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désolé..." + } + } + } + }, + "Speaker" : { + "comment" : "Speaker word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Speaker" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Haut-parleur" + } + } + } + }, + "SPEAKER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Speaker" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Haut-parleur" + } + } + } + }, + "Start free trial now" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Start free trial now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Commencer l'essai maintenant" + } + } + } + }, + "START_HERE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Add your first contact!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajoutez votre premier contact !" + } + } + } + }, + "START_USING_OLVID" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Welcome to Olvid 😇" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bienvenue sur Olvid 😇" + } + } + } + }, + "STD_MSG_OLVID_TAKES_TOO_LONG_TO_START" : { + "comment" : "Body text", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid seems to take longer than usual to start. This typically occurs after installing a new version. Please be reassured, none of your data was lost." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid semble prendre plus de temps que d'habitude pour démarrer. Cela peut arriver après une mise à jour. Rassurez-vous, même si le problème persiste, aucune de vos données n'a été perdue." + } + } + } + }, + "STOP_ONE_TO_ONE_DISCUSSION_WITH_CONTACT_ALERT_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remove from contacts?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Retirer des contacts ?" + } + } + } + }, + "Stored" : { + "comment" : "Stored word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stored" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stocké" + } + } + } + }, + "Subscribe now" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Subscribe now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'abonner maintenant" + } + } + } + }, + "SUBSCRIBING_TO_USER_NOTIFICATIONS_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid works best if you are notified of new messages & invitations! On the next screen, you will get a chance to subscribe to user notifications.\n\nYou can always change your mind later 😇." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid est plus agréable à utiliser si vous acceptez d'être notifié à chaque nouveau message & invitation ! Le prochain écran vous donnera la possibilité de souscrire aux notifications.\n\nVous pourrez toujours changer d'avis plus tard 😇." + } + } + } + }, + "Subscription expired" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Subscription expired" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abonnement expiré" + } + } + } + }, + "SUBSCRIPTION_REQUIRED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Subscription required" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abonnement requis" + } + } + } + }, + "SUBSCRIPTION_STATUS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Subscription status" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "État de l'abonnement" + } + } + } + }, + "SYNC" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sync" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sync" + } + } + } + }, + "SYNC_REQUEST_SENT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sync request sent" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synchronisation envoyée" + } + } + } + }, + "TAKE_PICTURE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Take a photo" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prendre une photo" + } + } + } + }, + "Tap to see the invitation" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tap to see the invitation." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appuyez pour voir l'invitation." + } + } + } + }, + "Tap to see the message" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tap to see the message." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appuyez pour voir le message." + } + } + } + }, + "TAP_TO_SEE_THE_REACTION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tap to see the reaction." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appuyez pour voir la réaction." + } + } + } + }, + "TERMS_OF_USE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Terms of use" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Conditions générales d'utilisation" + } + } + } + }, + "TEXT_EXPLANATION_WARNING_IDENTITY_CREATION_KEYCLOAK_REVOCATION_IMPOSSIBLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your identity provider indicates that an Olvid ID is already associated to the user you signed in as. You cannot proceed with the creation of your identity.\n\nPlease contact your administrator for more details." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre serveur d'identités indique qu'un ID Olvid est déjà associé avec votre compte utilisateur. Vous ne pouvez pas procéder à la création de votre identité Olvid.\nVeuillez contacter votre administrateur pour plus d'informations." + } + } + } + }, + "TEXT_EXPLANATION_WARNING_IDENTITY_CREATION_KEYCLOAK_REVOCATION_NEEDED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your identity provider indicates that an Olvid ID is already associated to the user you signed in as. If you proceed, this Olvid ID will be revoked and your new one will be associated to this user.\n\nPlease contact your administrator for more details." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre serveur d'identités indique qu'un ID Olvid est déjà associé avec votre compte utilisateur. Si vous continuez, cet ID Olvid sera révoqué et remplacé par votre nouvel ID.\nVeuillez contacter votre administrateur si vous désirez plus d'informations." + } + } + } + }, + "Thank you!" : { + "comment" : "Body with title font", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Thank you!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Merci !" + } + } + } + }, + "The backup could not be recovered" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The backup could not be recovered" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La sauvegarde n'a pas pu être restaurée" + } + } + } + }, + "The backup could not be recovered (error code: %@)." : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The backup could not be recovered (error code: %@)." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La sauvegarde n'a pas pu être restaurée (code d'erreur : %@)." + } + } + } + }, + "The backup could not be recovered (error code: %lld)." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The backup could not be recovered (error code: %lld)." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La sauvegarde n'a pas pu être récupérée (code d'erreur: %lld)" + } + } + } + }, + "The backup file could not be read" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The backup file could not be read" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le fichier de sauvegarde n'a pas pu être lu" + } + } + } + }, + "The backup key below will be used to encrypt all your Olvid backups. Please keep it in a safe place.\nOlvid will periodically check you are able to enter this key to ensure you do note lose access to your backups." : { + "comment" : "Explanation shown on on top of a backup key shown to the user.", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The backup key below will be used to encrypt all your Olvid backups. Please keep it in a safe place.\nOlvid will periodically check you are able to enter this key to ensure you do note lose access to your backups." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La clé de sauvegarde ci-dessous sera utilisée pour chiffrer toutes vos sauvegardes d'Olvid. Gardez-la précieusement.\nIl vous sera périodiquement demandé d'entrer cette clé pour vous assurer de ne pas perdre l'accès à vos sauvegardes." + } + } + } + }, + "The backup key is correct" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The backup key is correct" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La clé de sauvegarde est correcte" + } + } + } + }, + "The backup key is incorrect" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The backup key is incorrect" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La clé de sauvegarde est incorrecte" + } + } + } + }, + "The backuped data could not be decrypted." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The backuped data could not be decrypted." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La sauvegarde n'a pas pu être déchiffrée." + } + } + } + }, + "The channel establishment was restarted" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The channel establishment was restarted" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'établissement du canal sécurisé a redémarré" + } + } + } + }, + "The core you entered is incorrect. The code you need to enter is the one displayed on your contact's device." : { + "comment" : "Message of an alert", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The code you entered is incorrect. The one you need to enter is the displayed on your contact's device." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le code que vous avez entré est incorrect. Celui que vous devez entrer est affiché sur l'écran de votre contact." + } + } + } + }, + "The group owner published a new version of Group Card. Both the old and new versions are shown below.\n\nClick to update the group informations with the new version." : { + "comment" : "Body", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The group owner published a new version of Group Card. Both the old and new versions are shown below.\n\nClick to update the group informations with the new version." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le propriétaire du groupe a publié une nouvelle version de la Group Card. L'ancienne et la nouvelle version se trouvent ci-dessous.\n\nCliquez pour mettre à jour les informations du groupe en utilisant la nouvelle version." + } + } + } + }, + "The integrity check of the backuped data failed." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Are you sure this is the correct backup key?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Êtes-vous certain d'avoir utilisé la bonne clé de sauvegarde ?" + } + } + } + }, + "The scanned identity is already part of your trusted contacts 🙌. Do you still wish to proceed?" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The scanned identity is already part of your trusted contacts 🙌. Do you still wish to proceed?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'identité scannée fait déjà partie de vos contacts 🙌. Voulez-vous quand même poursuivre ?" + } + } + } + }, + "The scanned identity is one of your own 😇." : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The scanned identity is one of your own 😇." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'identité scannée vous appartient 😇." + } + } + } + }, + "The scanned QR code does not appear to be an Olvid identity." : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The scanned QR code does not appear to be an Olvid identity." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le code QR ne semble pas correspondre à une identité Olvid." + } + } + } + }, + "THE_CALL_AUDIO_CONFIG_FOR_MAC_IS_AVAILABLE_IN_MENU_BAR" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Audio input/output can be configured from the menu bar or from System Settings." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les entrées/sorties audio peuvent être configurées depuis la barre de menu ou depuis les Réglages Système." + } + } + } + }, + "THE_FOLLOWING_DEVICE_WILL_REMAIN_ACTIVE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This device will remain active:" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cet appareil restera actif:" + } + } + } + }, + "THE_SUBSCRIPTION_REQUEST_FAILED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The subscription request failed 😞. Please try again later." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La demande d'abonnement a échoué 😞. N'hésitez pas à essayer à nouveau plus tard." + } + } + } + }, + "THEIR_CODE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Their code:" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Son code :" + } + } + } + }, + "This is the only time this key will be displayed. If you lose it, you will need to generate a new one." : { + "comment" : "Explanation shown below a backup key shown to the user.", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This is the only time this key will be displayed. If you lose it, you will need to generate a new one." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "C'est votre seule occasion de noter cette clé puisqu'elle ne sera plus jamais réaffichée. Si vous la perdez, vous devrez en générer une nouvelle." + } + } + } + }, + "This subscription is already associated to another user" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This subscription is already associated to another user" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cet abonnement est déjà associé à un autre utilisateur" + } + } + } + }, + "THIS_ID_IS_THE_ONE_YOU_OWN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This ID is the one you own 😇." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cet ID est le vôtre 😇." + } + } + } + }, + "TIME_BASED_LABEL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Time based" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "En temps" + } + } + } + }, + "TIME_BASED_SECTION_FOOTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If activated, messages older than the specified time will be regularly deleted." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si ce réglage est activé, les messages plus anciens que le temps spécifié seront régulièrement supprimés." + } + } + } + }, + "TIME_BASED_SINGLE_DISCUSSION_SECTION_FOOTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If activated, messages older than the specified time will be regularly deleted from this discussion." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si ce réglage est activé, les messages plus anciens que le temps spécifié seront régulièrement supprimés de cette discussion." + } + } + } + }, + "TIME_INTERVAL_FOR_BG_HIDDEN_PROFILE_CLOSE_POLICY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Close hidden profile when Olvid enters background..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fermer un profil masqué quand Olvid passe en arrière plan..." + } + } + } + }, + "Timer" : { + "comment" : "Timer word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Timer" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Minuteur" + } + } + } + }, + "TITLE_BACKUP_RESTORED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Backup restored 🤩" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sauvegarde restaurée 🤩" + } + } + } + }, + "TITLE_NEVER_MISS_A_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Never miss a message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ne ratez aucun message" + } + } + } + }, + "TITLE_NEVER_MISS_A_SECURE_CALL" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Never miss a call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ne ratez aucun appel" + } + } + } + }, + "TITLE_RESET_ALL_ALERTS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reset all alerts" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réinitialiser les alertes" + } + } + } + }, + "TOGGLE_EDIT_PINNED_STATE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit pinned discussions" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifier les discussions épinglées" + } + } + } + }, + "Touch to return to call" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touch to return to call" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touchez pour revenir à l'appel" + } + } + } + }, + "TRUST_ORIGIN_TITLE_DIRECT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "One-to-one verification" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vérification face-à-face" + } + } + } + }, + "TRUST_ORIGIN_TITLE_GROUP" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Introduced as part of a group discussion" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Présenté lors d'une création de groupe" + } + } + } + }, + "TRUST_ORIGIN_TITLE_INTRODUCTION_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Introduced by %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Présenté par %@" + } + } + } + }, + "TRUST_ORIGINS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Trust origins" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Origines de confiance" + } + } + } + }, + "TRY_SECURE_CALLS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Try secure calls" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Essayer les appels sécurisés gratuitement" + } + } + } + }, + "TRY_SECURE_CALLS_DESCRIPTION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Try secure calls for free during 30 days. This free trial can be activated only once." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Essayez les appels sécurisés gratuitement pendant 30 jours. Cette offre d'essai ne peut être activée qu'une seule fois." + } + } + } + }, + "TYPE_DELETE_TO_PROCEED_WITH_OWNED_IDENTITY_DELETION_DO_DELETE_ACTION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete my profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer mon profil" + } + } + } + }, + "TYPE_DELETE_TO_PROCEED_WITH_OWNED_IDENTITY_DELETION_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "To confirm the deletion of your profile, please type 'DELETE' to proceed." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pour confirmer la suppression de votre profil, veuillez taper le mot 'SUPPRIMER'." + } + } + } + }, + "TYPE_DELETE_TO_PROCEED_WITH_OWNED_IDENTITY_DELETION_TITLE_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirm the deletion of the profile \"%@\"" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Confirmez la suppression du profil « %@ »" + } + } + } + }, + "TYPE_DELETE_TO_PROCEED_WITH_OWNED_IDENTITY_DELETION_WORD_TO_TYPE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "DELETE" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "SUPPRIMER" + } + } + } + }, + "TYPE_PERSONAL_NOTE_HERE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Type a personal note here..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entrez votre note personnelle..." + } + } + } + }, + "UNABLE_TO_ACTIVATE_LICENSE_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your Olvid ID is currently managed by your company's identity provider. You cannot manually activate an Olvid license." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre ID Olvid est actuellement géré par le fournisseur d'identité de votre entreprise. À ce titre, vous ne pouvez pas activer de license Olvid manuellement." + } + } + } + }, + "UNABLE_TO_ACTIVATE_LICENSE_EXPLANATION_ALT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "The message distribution server associated with your Olvid ID is incompatible with the server indicated within the license." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le serveur de distribution de message spécifié dans votre ID Olvid est incompatible avec le serveur indiqué dans la licence." + } + } + } + }, + "UNABLE_TO_ACTIVATE_LICENSE_EXPLANATION_OWNED_IDENTITY_INACTIVE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You identity is inactive on this device." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre identité est inactive sur cet appareil." + } + } + } + }, + "UNABLE_TO_ACTIVATE_LICENSE_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unable to activate license" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Impossible d'activer la licence" + } + } + } + }, + "UNABLE_TO_PERFORM_KEYCLOAK_SEARCH" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Search could not be performed." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La recherche n'a pas pu s'effectuer." + } + } + } + }, + "UNANSWERED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unanswered" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sans réponse" + } + } + } + }, + "Unarchive" : { + "comment" : "Unarchive word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unarchive" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Désarchiver" + } + } + } + }, + "Unavailable" : { + "comment" : "Unavailable word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unavailable" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Indisponible" + } + } + } + }, + "UNAVAILABLE_MESSAGE" : { + "comment" : "Body displayed when a reply-to message cannot be found.", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unavailable message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message non disponible" + } + } + } + }, + "UNBLOCK_CONTACT" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unblock contact" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Débloquer le contact" + } + } + } + }, + "UNBLOCK_CONTACT_CONFIRMATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you really wish to unblock the contact?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous débloquer le contact ?" + } + } + } + }, + "UNHIDE_OWNED_IDENTITY_ALERT_ACTION_STAY_HIDDEN" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do not unhide" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ne pas démasquer" + } + } + } + }, + "UNHIDE_OWNED_IDENTITY_ALERT_ACTION_UNHIDE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unhide" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Démasquer" + } + } + } + }, + "UNHIDE_OWNED_IDENTITY_ALERT_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are about to unhide a profile. If you do so, the profile will be systematically shown in the profile switcher, with no need for a specific password." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous êtes sur le point de démasquer un profil. Si vous confirmez, ce profil sera sytématiquement visible, sans mot de passe spécifique." + } + } + } + }, + "UNHIDE_OWNED_IDENTITY_ALERT_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unhide this profile?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Démasquer ce profil ?" + } + } + } + }, + "UNHIDE_THIS_IDENTITY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unhide this profile" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Démasquer ce profil" + } + } + } + }, + "UNKNOWN_GROUP_MEMBER_NAME" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unknown name" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nom inconnu" + } + } + } + }, + "Unlimited" : { + "comment" : "Unlimited word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unlimited" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Illimité" + } + } + } + }, + "Unlock all premium features in Olvid" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unlock all premium features in Olvid." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Accès à toutes les fonctionnalités premium." + } + } + } + }, + "Unmute" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unmute" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activer" + } + } + } + }, + "UNMUTE_NOTIFICATIONS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unmute notifications" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réactiver les notifications" + } + } + } + }, + "UNMUTED_NOTIFICATIONS_FOOTER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "When activated, you won't be notified of new messages in this discussion." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activez cette option pour ne plus recevoir de notifications de nouveau message dans cette discussion." + } + } + } + }, + "Unpin" : { + "comment" : "Unpin word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unpin" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Décrocher" + } + } + } + }, + "Unprocessed" : { + "comment" : "Unprocessed word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unprocessed" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "À traiter" + } + } + } + }, + "Unread" : { + "comment" : "Unread word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unread" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Non lu" + } + } + } + }, + "Update" : { + "comment" : "Update word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Update" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mettre à jour" + } + } + } + }, + "UPDATE_DETAILS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Use new details" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Utiliser les nouveaux détails" + } + } + } + }, + "UPDATE_YOUR_ALREADY_SENT_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Update your already sent message" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mettez à jour le message déjà envoyé" + } + } + } + }, + "UPGRADE_NOW" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Upgrade now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mettre à jour maintenant" + } + } + } + }, + "UPGRADE_OLVID_NOW" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Upgrade Olvid now" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mettre à jour Olvid maintenant" + } + } + } + }, + "Use application default" : { + "comment" : "Title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Use application default" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réglage par défaut" + } + } + } + }, + "USE_CUSTOM_API_KEY_AND_SERVER_ALERT_BODY_%@_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Do you wish to create a profile configured to use the server %@ and the API Key %@?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voulez-vous que le nouveau profil soit configuré avec le serveur %@ et la clé d'API %@ ?" + } + } + } + }, + "USE_CUSTOM_API_KEY_AND_SERVER_ALERT_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Use a custom API key and Server?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Utiliser une clé d'API et un serveur personnalisés ?" + } + } + } + }, + "USE_OLD_DISCUSSION_INTERFACE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Use old discussion interface" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Utiliser l'ancien style de discussions" + } + } + } + }, + "USER_CANNOT_MAKE_PAYMENT_DESCRIPTION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olvid paid options are made available through the App Store in-app purchases. It seems that you cannot make a payment right now. This may happen if your credit card has expired, or if your iPhone is restricted from accessing the Apple App Store (through parental control or enterprise management)." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les options payantes d'Olvid sont disponibles via les achats intégrés de l'App Store. Il semblerait que vous ne puissiez pas y faire d'achat. Ceci peut arriver si votre moyen de paiement est invalide ou si votre compte est restreint (contrôle parental ou compte entreprise)." + } + } + } + }, + "USER_CHANGE_DETECTED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "User change detected" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Changement d'utilisateur détecté" + } + } + } + }, + "Valid license" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Valid license" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Licence valide" + } + } + } + }, + "Valid until %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Valid until %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Valide jusqu'au %@" + } + } + } + }, + "VALIDATE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Proceed" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Valider" + } + } + } + }, + "VALIDATE_SERVER" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Validate server" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Valider le serveur" + } + } + } + }, + "VALIDATING_ENTERPRISE_CONFIGURATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Performing an automatic configuration..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Configuration automatique en cours..." + } + } + } + }, + "VALUE_COPIED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Value copied" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Valeur copiée" + } + } + } + }, + "VERIFIY_OR_GENERATE_NEW_BACKUP_KEY" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verify or generate new backup key" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vérifier ou générer une nouvelle clé" + } + } + } + }, + "Verify backup key" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verify backup key" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vérifier la clé de sauvegarde" + } + } + } + }, + "Version" : { + "comment" : "Version word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Version" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Version" + } + } + } + }, + "VoIP" : { + "comment" : "VoIP word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "VoIP" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "VoIP" + } + } + } + }, + "WARNING" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Warning" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Attention" + } + } + } + }, + "WE_COULD_NOT_LOOK_FOR_AVAILABLE_SUBSCRIPTION_PLANS" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "We could find any available subscription plan as an error occurred 😢. Please try again later." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nous n'avons trouvé aucune offre d'abonnement... une erreur est survenue 😢. N'hésitez pas à essayer à nouveau plus tard." + } + } + } + }, + "Websocket status" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Websocket connexion status" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "État de la connexion de la websocket" + } + } + } + }, + "week" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "week" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "semaine" + } + } + } + }, + "WELCOME_ONBOARDING_SUBTITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Have we met before?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Est-ce qu'on se connaît ?" + } + } + } + }, + "WELCOME_ONBOARDING_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Welcome!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bien le bonjour !" + } + } + } + }, + "What you pasted doesn't seem to be an Olvid identity 🧐" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "What you pasted doesn't seem to be an Olvid ID 🧐" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ce que vous venez de coller ne semble pas être un ID Olvid 🧐" + } + } + } + }, + "WHAT_DO_YOU_WANT_TO_DO_ONBOARDING_TITLE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "What do you want to do?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Que souhaitez-vous faire ?" + } + } + } + }, + "WILL_BE_ADDED_TO_THIS_DEVICE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Will be added to this device:" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Va être ajouté à cet appareil :" + } + } + } + }, + "WILL_SOON_BE_DELETED" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This message will soon be deleted" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ce message sera prochainement supprimé" + } + } + } + }, + "Wiped" : { + "comment" : "Wiped word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wiped" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expiré" + } + } + } + }, + "WIPED_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wiped message 🧹" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contenu expiré 🧹" + } + } + } + }, + "WIPED_MESSAGE_BY_%@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Message deleted by %@" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contenu supprimé par %@" + } + } + } + }, + "X" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "X" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "X" + } + } + } + }, + "XXXX" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "XXXX" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "XXXX" + } + } + } + }, + "year" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "year" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "année" + } + } + } + }, + "Yes" : { + "comment" : "Yes word, capitalized", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Yes" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oui" + } + } + } + }, + "YES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Yes" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oui" + } + } + } + }, + "You are about to delete a message together with its count attachments" : { + "comment" : "Message of alert", + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are about to delete a message together with its attachment." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are about to delete a message together with its %u attachments." + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are about to delete a message." + } + } + } + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%#@Variable@" + }, + "substitutions" : { + "Variable" : { + "formatSpecifier" : "u", + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous vous apprêtez à supprimer un message et sa pièce jointe." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous vous apprêtez à supprimer un message et ses %d pièces jointes." + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous vous apprêtez à supprimer un message." + } + } + } + } + } + } + } + } + }, + "You are about to introduce X to Y and count other contacts." : { + "comment" : "UIAlertController message", + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are about to introduce %2$@ to %3$@ and one other contact." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are about to introduce %2$@ to %3$@ and %1$u other contacts." + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are about to introduce %2$@ to %3$@." + } + } + } + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%#@Variable@" + }, + "substitutions" : { + "Variable" : { + "formatSpecifier" : "u", + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous allez présenter %2$@ à %3$@ et un autre contact." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous allez présenter %2$@ à %3$@ et %1$d autres contacts." + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous allez présenter %2$@ à %3$@." + } + } + } + } + } + } + } + } + }, + "You are about to remove %1$@ from your contacts. You will no longer be able to exchange messages with them.\n\nNote that %1$@ is a pending member in at least one group you belong to. %1$@ might get added back to your contacts in a near future. You may want to leave these groups to avoid this.\n\nReally delete this contact?" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are about to remove %1$@ from your contacts. You will no longer be able to exchange messages with them.\n\nNote that %1$@ is a pending member in at least one group you belong to. %1$@ might get added back to your contacts in a near future. You may want to leave these groups to avoid this.\n\nReally delete this contact?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous êtes sur le point de retirer %1$@ de vos contacts. Vous ne pourrez plus échanger de message avec cette personne.\n\nNotez que %1$@ est un membre en attente dans certains groupes auxquel vous appartenez. Il risque d'être ajouté à vos contacts à nouveau dans un futur proche. Vous pouvez vous prémunir de cela en quittant ces groupes.\n\nSouhaitez-vous supprimer ce contact ?" + } + } + } + }, + "You are about to remove %1$@ from your contacts. You will no longer be able to exchange messages with them.\n\nReally delete this contact?" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are about to delete the user %1$@.\n\nReally delete this contact?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous êtes sur le point de supprimer l'utilisateur %1$@." + } + } + } + }, + "You are invited to join a group created by %@." : { + "comment" : "Notification body", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You are invited to join a group created by %@." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous êtes invité à rejoindre un groupe créé par %@." + } + } + } + }, + "You cannot remove %@ from your contacts as both of you belong to some common groups. You will need to leave these groups to proceed." : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You cannot delete the user %@ as both of you belong to some common groups. You will need to leave these groups to proceed." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous ne pouvez pas supprimer l'utilisateur %@ car vous appartenez à certains groupes en commun. Vous devrez quitter ces groupes pour pouvoir continuer." + } + } + } + }, + "You now appear in %@'s contacts list. A secure channel is being established. When this is done, you will be able to exchange confidential messages and more!" : { + "comment" : "Notification body", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You now appear in %@'s contacts list. A secure channel is being established. When this is done, you will be able to exchange confidential messages and more!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous apparaissez dans les contacts de %@. Un canal sécurisé s'établit. Une fois fini, vous pourrez communiquer." + } + } + } + }, + "You receive a new invitation from %@. You can accept or silently discard it." : { + "comment" : "Notification body", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You received a new invitation from %@. You can accept or silently discard it." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez reçu une invitation de la part de %@. Vous pouvez accepter cette invitation ou l'écarter sans notifier votre correspondant." + } + } + } + }, + "You selected to add %@ to your contacts. Do you want to proceed?" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You selected to add %@ to your contacts. Do you want to proceed?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez choisi d'ajouter %@ à vos contacts. Voulez-vous continuer ?" + } + } + } + }, + "You successfully introduced X to Y and count other contacts." : { + "comment" : "UIAlertController message", + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "You successfully introduced %2$@ to %3$@ and one other contact." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "You successfully introduced %2$@ to %3$@ and %1$u other contacts." + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "You successfully introduced %2$@ to %3$@." + } + } + } + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%#@Variable@" + }, + "substitutions" : { + "Variable" : { + "formatSpecifier" : "u", + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez présenté %2$@ à %3$@ et un autre contact." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez présenté %2$@ à %3$@ et %1$d autres contacts." + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous avez présenté %2$@ à %3$@." + } + } + } + } + } + } + } + } + }, + "YOU_HAVE_N_DEVICES" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You have %#@count@" + }, + "substitutions" : { + "count" : { + "formatSpecifier" : "d", + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "one device" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%arg devices" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "no device" + } + } + } + } + } + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous %#@count@" + }, + "substitutions" : { + "count" : { + "formatSpecifier" : "d", + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "avez un appareil" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "avez %arg appareils" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "n'avez aucun appareil" + } + } + } + } + } + } + } + } + }, + "YOU_NEED_TO_INVITE_%@_BEFORE_HAVING_DISCUSSION_ALERT_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You cannot have a private discussion with %@ until they are part of your contacts. Do you wish to invite them now?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous ne pouvez pas discuter en privé avec %@ tant que cet utilisateur ne fait pas partie de vos contacts. Vous pouvez l'y inviter maintenant." + } + } + } + }, + "Your are about to leave a group." : { + "comment" : "Explanation", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your are about to permanently leave a group." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous vous apprêtez à quitter définitivement un groupe." + } + } + } + }, + "Your are about to permanently delete a group." : { + "comment" : "Explanation", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your are about to permanently delete a group." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous vous apprêtez à supprimer définitivement un groupe." + } + } + } + }, + "Your are one step away to create a secure channel with %@!" : { + "comment" : "Notification body", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your are one step away to create a secure channel with %@!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Plus qu'une étape pour établir un canal sécurisé avec %@!" + } + } + } + }, + "Your contacts will be notified when you have read their messages. This settting can be overriden on a per discussion basis." : { + "comment" : "Explantation", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your contacts will be notified when you have read their messages. This settting can be overriden on a per discussion basis." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vos correspondants recevront une confirmation lorsque vous aurez lu leurs messages. Ce paramètre peut être modifié indépendamment pour chaque discussion." + } + } + } + }, + "Your contacts won't be notified when you read their messages. This settting can be overriden on a per discussion basis." : { + "comment" : "Explantation", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your contacts won't be notified when you read their messages. This settting can be overriden on a per discussion basis." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vos correspondants ne recevront pas de confirmation lorsque vous lirez leurs messages. Ce paramètre peut être modifié indépendamment pour chaque discussion." + } + } + } + }, + "Your iCloud account is not available. Access was denied due to Parental Controls or Mobile Device Management restrictions" : { + "comment" : "Alert body", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your iCloud account is not available. Access was denied due to Parental Controls or Mobile Device Management restrictions" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre compte iCloud n'est pas accessible. L'accès a été refusé suite à des restrictions liées à du contrôle parental ou à la gestion des terminaux mobiles (MDM) de votre entreprise." + } + } + } + }, + "YOUR_CODE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your code:" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre code :" + } + } + } + }, + "YOUR_ID_WAS_COPIED" : { + "comment" : "Alert title", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your ID was copied" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre ID a été copié" + } + } + } + }, + "YOUR_ID_WAS_COPIED_TO_CLIPBOARD" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your ID was copied to clipboard" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre ID a été copié dans le presse-papiers" + } + } + } + }, + "YOUR_ID_WAS_COPIED_TO_CLIPBOARD_YOU_CAN_WRITE_EMAIL_AND_COPY_IT_THERE" : { + "comment" : "Alert message", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your ID was copied to the clipboard. You can now write an email or sms and copy it there." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre ID a été copié dans le presse-papiers. Vous pouvez préparer un courriel ou un SMS et l'y copier directement." + } + } + } + }, + "YOUR_MESSAGE" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your message..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre message..." + } + } + } + }, + "YOUR_OTHER_DEVICES" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your other device" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your other %d devices" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "No other device" + } + } + } + } + }, + "fr" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre autre appareil" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vos %d autres appareils" + } + }, + "zero" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun autre appareil" + } + } + } + } + } + } + }, + "YOUR_OTHER_DEVICES_WILL_BE_DEACTIVATED_EXPLANATION" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your other devices will be deactivated within 30 days." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les autres appareils seront désactivés dans les 30 jours." + } + } + } + } + }, + "version" : "1.0" +} \ No newline at end of file diff --git a/iOSClient/ObvMessenger/ObvMessenger/Localization/CommonString.swift b/iOSClient/ObvMessenger/ObvMessenger/Localization/CommonString.swift index 2f2a50fe..6694f52c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Localization/CommonString.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Localization/CommonString.swift @@ -45,6 +45,7 @@ extension CommonString.Word { static let Copy = NSLocalizedString("Copy", comment: "Copy word, capitalized") static let Create = NSLocalizedString("Create", comment: "Create word, capitalized") static let Date = NSLocalizedString("DATE", comment: "Date word, capitalized") + static let Deactivate = NSLocalizedString("DEACTIVATE", comment: "Deactivate word, capitalized") static let Debug = NSLocalizedString("Debug", comment: "Debug word, capitalized") static let Decline = NSLocalizedString("Decline", comment: "Decline word, capitalized") static let Default = NSLocalizedString("Default", comment: "Default word, capitalized") @@ -128,7 +129,6 @@ extension CommonString.Word { static let VoIP = NSLocalizedString("VoIP", comment: "VoIP word, capitalized") static let Wiped = NSLocalizedString("Wiped", comment: "Wiped word, capitalized") static let Yes = NSLocalizedString("Yes", comment: "Yes word, capitalized") - static let You = NSLocalizedString("You", comment: "You word, capitalized") } extension CommonString { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Localization/ComposeMessageViewDocumentPickerAdapterWithDraft+Strings.swift b/iOSClient/ObvMessenger/ObvMessenger/Localization/ComposeMessageViewDocumentPickerAdapterWithDraft+Strings.swift deleted file mode 100644 index 9b4b0dbf..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Localization/ComposeMessageViewDocumentPickerAdapterWithDraft+Strings.swift +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation - -extension ComposeMessageViewDocumentPickerAdapterWithDraft { - - struct Strings { - - static let addAttachment = NSLocalizedString("Add attachment", comment: "Title of the UIAlertController allowing to add an attachment within a message to send.") - static let addAttachmentDocument = NSLocalizedString("Document", comment: "Title of the UIAlertAction allowing to add a document as an attachment within a message to send") - - static let addAttachmentPhotoAndVideoLibrary = NSLocalizedString("Photo & Video Library", comment: "Title of the UIAlertAction allowing to add a photo as an attachment within a message to send") - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Localization/DiscussionsFlowViewController+Strings.swift b/iOSClient/ObvMessenger/ObvMessenger/Localization/DiscussionsFlowViewController+Strings.swift index 60ed268e..546d5c32 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Localization/DiscussionsFlowViewController+Strings.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Localization/DiscussionsFlowViewController+Strings.swift @@ -25,14 +25,14 @@ extension DiscussionsFlowViewController { struct AlertConfirmAllDiscussionMessagesDeletion { static let title = NSLocalizedString("Delete all messages?", comment: "Alert title") - static let message = NSLocalizedString("Do you wish to delete all the messages within this discussion? This action is irrevisble.", comment: "Alert message") + static let message = NSLocalizedString("Do you wish to delete all the messages within this discussion? This action is irreversible.", comment: "Alert message") static let actionDeleteAll = NSLocalizedString("Delete all messages", comment: "Alert action title") static let actionDeleteAllGlobally = NSLocalizedString("Delete all messages for all users", comment: "Alert action title") } struct AlertConfirmAllDiscussionMessagesDeletionGlobally { static let title = NSLocalizedString("Delete all messages for all users?", comment: "Alert title") - static let message = NSLocalizedString("Do you wish to delete all the messages on all the devices of all the users of this discussion? This action is irrevisble.", comment: "Alert message") + static let message = NSLocalizedString("DELETE_ALL_MSGS_ON_ALL_DEVICES__ACTION_IRREVERSIBLE", comment: "Alert message") static let actionDeleteAllGlobally = NSLocalizedString("Delete all messages for all users", comment: "Alert action title") } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Localization/DiscussionsSettingsTableViewController+Strings.swift b/iOSClient/ObvMessenger/ObvMessenger/Localization/DiscussionsSettingsTableViewController+Strings.swift deleted file mode 100644 index dc2dbca7..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Localization/DiscussionsSettingsTableViewController+Strings.swift +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation - -extension DiscussionsSettingsTableViewController { - - struct Strings { - struct SendReadRecceipts { - static let explanationWhenYes = NSLocalizedString("Your contacts will be notified when you have read their messages. This settting can be overriden on a per discussion basis.", comment: "Explantation") - static let explanationWhenNo = NSLocalizedString("Your contacts won't be notified when you read their messages. This settting can be overriden on a per discussion basis.", comment: "Explantation") - } - struct RichLinks { - static let title = NSLocalizedString("Rich link preview", comment: "Cell title") - static let sentMessagesOnly = NSLocalizedString("Sent messages only", comment: "") - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Localization/MetaFlowController+Strings.swift b/iOSClient/ObvMessenger/ObvMessenger/Localization/MetaFlowController+Strings.swift index 18328241..a577e8f1 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Localization/MetaFlowController+Strings.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Localization/MetaFlowController+Strings.swift @@ -19,6 +19,8 @@ import Foundation import ObvUICoreData +import ObvSettings + extension MetaFlowController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Localization/SingleDiscussionViewController+Strings.swift b/iOSClient/ObvMessenger/ObvMessenger/Localization/SingleDiscussionViewController+Strings.swift deleted file mode 100644 index 58979a11..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Localization/SingleDiscussionViewController+Strings.swift +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation - -extension SingleDiscussionViewController { - - struct Strings { - - static let whatToDoWithFileTitle = NSLocalizedString("File Management", comment: "Title of alert") - static let whatToDoWithFileMessage = NSLocalizedString("What do you want to do with this file?", comment: "Message of alert") - static let whatToDoWithFileActionExport = NSLocalizedString("Export to the system's File App", comment: "Action of alert") - static let whatToDoWithFileActionDelete = NSLocalizedString("Delete file", comment: "Action of alert") - - static let deleteMessageTitle = NSLocalizedString("Delete Message", comment: "Title of alert") - - static let deleteFileTitle = NSLocalizedString("Delete File", comment: "Title of alert") - static let deleteFileMessage = NSLocalizedString("You are about to delete a file.", comment: "Message of alert") - static let deleteFileActionDelete = NSLocalizedString("Delete file", comment: "Action of alert") - - - static let deleteMessageAndAttachmentsTitle = NSLocalizedString("Delete Message and Attachments", comment: "Title of alert") - static let deleteMessageAndAttachmentsMessage = { (numberOfAttachedFyles: Int) in - String.localizedStringWithFormat(NSLocalizedString("You are about to delete a message together with its count attachments", comment: "Message of alert"), numberOfAttachedFyles) - } - - struct Alerts { - struct WaitingForChannel { - - static let title = NSLocalizedString("Your Messages are on hold", comment: "Alert title") - static let message = NSLocalizedString("Your messages will be automatically sent once a secure channel is established for this discussion. Until then, they will remain on hold.", comment: "Text used within the footer in a discussion.") - } - struct WaitingForFirstGroupMember { - static let title = WaitingForChannel.title - static let message = NSLocalizedString("Your messages will be automatically sent once a contact accepts to join this group discussion. Until then, they will remain on hold.", comment: "Text used within the footer in a discussion.") - } - struct EditSentMessageBody { - static let title = NSLocalizedString("EDIT_YOUR_MESSAGE", comment: "") - static let message = NSLocalizedString("UPDATE_YOUR_ALREADY_SENT_MESSAGE", comment: "") - } - } - - static let sharePhotos = { (count: Int) in - return String.localizedStringWithFormat(NSLocalizedString("share count photos", comment: "Localized dict string allowing to display a title"), count) - } - - static let shareAttachments = { (count: Int) in - return String.localizedStringWithFormat(NSLocalizedString("share count attachments", comment: "Localized dict string allowing to display a title"), count) - } - - static let mutedNotificationsConfirmation = { (date: String) in String.localizedStringWithFormat(NSLocalizedString("MUTED_NOTIFICATIONS_CONFIRMATION_%@", comment: ""), date)} - - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Localization/UserNotificationCreator+Strings.swift b/iOSClient/ObvMessenger/ObvMessenger/Localization/UserNotificationCreator+Strings.swift index bbd9a868..af88f895 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Localization/UserNotificationCreator+Strings.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Localization/UserNotificationCreator+Strings.swift @@ -97,20 +97,6 @@ extension UserNotificationCreator { } } - struct AutoconfirmedContactIntroduction { - static let title = CommonString.Title.newContact - static let body = { (mediatorName: String, contactName: String) in - String.localizedStringWithFormat(NSLocalizedString("%@ was added to your contacts following an introduction by %@.", comment: "Invitation details"), contactName, mediatorName) - } - } - - struct IncreaseMediatorTrustLevelRequired { - static let title = NSLocalizedString("Invitation received", comment: "Invitation subtitle") - static let body = { (mediatorName: String, contactName: String) in - String.localizedStringWithFormat(NSLocalizedString("%1$@ wants to introduce you to %2$@.", comment: "Invitation details"), mediatorName, contactName) - } - } - struct MissedCall { static let title = NSLocalizedString("MISSED_CALL", comment: "") } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/CallBannerView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/CallBannerView.swift index 39f9dd5d..6e59ddd4 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/CallBannerView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/CallBannerView.swift @@ -21,6 +21,8 @@ import Foundation import ObvUI import UIKit import ObvUICoreData +import ObvDesignSystem + final class CallBannerView: UIView { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/AllContacts/AllContactsViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/AllContacts/AllContactsViewController.swift index c78e213f..587bd845 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/AllContacts/AllContactsViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/AllContacts/AllContactsViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,8 @@ import ObvUI import ObvTypes import UIKit import ObvUICoreData +import ObvSettings +import ObvDesignSystem final class AllContactsViewController: ShowOwnedIdentityButtonUIViewController, OlvidMenuProvider, ViewControllerWithEllipsisCircleRightBarButtonItem { @@ -89,18 +91,8 @@ extension AllContactsViewController { addAndConfigureContactsTableViewController() definesPresentationContext = true - if #available(iOS 14, *) { - navigationItem.rightBarButtonItem = getConfiguredEllipsisCircleRightBarButtonItem() - } else { - navigationItem.rightBarButtonItem = getConfiguredEllipsisCircleRightBarButtonItem(selector: #selector(ellipsisButtonTappedSelector)) - } - - } + navigationItem.rightBarButtonItem = getConfiguredEllipsisCircleRightBarButtonItem() - - @available(iOS, introduced: 13.0, deprecated: 14.0, message: "Used because iOS 13 does not support UIMenu on UIBarButtonItem") - @objc private func ellipsisButtonTappedSelector() { - ellipsisButtonTapped(sourceBarButtonItem: navigationItem.rightBarButtonItem) } @@ -184,32 +176,14 @@ extension AllContactsViewController { } - @available(iOS, introduced: 13, deprecated: 14, message: "Use getFirstParentMenuAvailable() instead") - func provideAlertActions() -> [UIAlertAction] { - - // Update the parents alerts - var alertActions = [UIAlertAction]() - if let parentAlertActions = parent?.getFirstAlertActionsAvailable() { - alertActions.append(contentsOf: parentAlertActions) - } - - // We do not provide the option to change the sort order under iOS 13 - - return alertActions - - } - - private func observeContactsSortOrderDidChangeNotifications() { - if #available(iOS 14.0, *) { - let token = ObvMessengerSettingsNotifications.observeContactsSortOrderDidChange(queue: OperationQueue.main) { [weak self] in - guard let _self = self else { return } - _self.sortButtonItemTimer?.invalidate() - _self.sortButtonItem?.menu = _self.provideMenu() - _self.sortButtonItem?.isEnabled = true - } - notificationTokens.append(token) + let token = ObvMessengerSettingsNotifications.observeContactsSortOrderDidChange(queue: OperationQueue.main) { [weak self] in + guard let _self = self else { return } + _self.sortButtonItemTimer?.invalidate() + _self.sortButtonItem?.menu = _self.provideMenu() + _self.sortButtonItem?.isEnabled = true } + notificationTokens.append(token) } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/CommonViews/OlvidCardView/OlvidCardView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/CommonViews/OlvidCardView/OlvidCardView.swift index e19f2628..aa27d946 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/CommonViews/OlvidCardView/OlvidCardView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/CommonViews/OlvidCardView/OlvidCardView.swift @@ -22,6 +22,9 @@ import ObvEngine import ObvTypes import ObvCrypto import ObvUI +import ObvDesignSystem +import ObvSettings + class OlvidCardView: UIView { @@ -76,7 +79,7 @@ extension OlvidCardView { self.titleLabel.text = groupDetails.coreDetails.name self.subtitleLabel.text = groupDetails.coreDetails.description - circledInitials.identityColors = AppTheme.shared.groupColors(forGroupUid: groupUid) + circledInitials.identityColors = AppTheme.shared.groupColors(forGroupUid: groupUid, using: ObvMessengerSettings.Interface.identityColorStyle) if let photoURL = groupDetails.photoURL { circledInitials.showPhoto(fromUrl: photoURL) } else { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SingleContactDetailedInfos/ContactDetailedInfosView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SingleContactDetailedInfos/ContactDetailedInfosView.swift index 7b5a757f..224ca6ed 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SingleContactDetailedInfos/ContactDetailedInfosView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SingleContactDetailedInfos/ContactDetailedInfosView.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -21,6 +21,7 @@ import SwiftUI import ObvTypes import ObvUI import ObvUICoreData +import ObvDesignSystem struct ContactDetailedInfosView: View { @@ -41,13 +42,13 @@ struct ContactDetailedInfosView: View { .trimmingCharacters(in: .whitespacesAndNewlines) } - private var circledTextView: Text? { + private var circledText: String? { let component = [titlePart1, titlePart2] .compactMap({ $0?.trimmingCharacters(in: .whitespacesAndNewlines) }) .filter({ !$0.isEmpty }) .first if let char = component?.first { - return Text(String(char)) + return String(char) } else { return nil } @@ -58,6 +59,38 @@ struct ContactDetailedInfosView: View { return UIImage(contentsOfFile: url.path) } + private var textViewModel: TextView.Model { + .init(titlePart1: titlePart1, + titlePart2: titlePart2, + subtitle: contact.identityCoreDetails?.position, + subsubtitle: contact.identityCoreDetails?.company) + } + + private var profilePictureViewModelContent: ProfilePictureView.Model.Content { + .init(text: circledText, + icon: .person, + profilePicture: profilePicture, + showGreenShield: contact.isCertifiedByOwnKeycloak, + showRedShield: !contact.isActive) + } + + private var circleAndTitlesViewModelContent: CircleAndTitlesView.Model.Content { + .init(textViewModel: textViewModel, + profilePictureViewModelContent: profilePictureViewModelContent) + } + + private var initialCircleViewModelColors: InitialCircleView.Model.Colors { + .init(background: contact.cryptoId.colors.background, + foreground: contact.cryptoId.colors.text) + } + + private var circleAndTitlesViewModel: CircleAndTitlesView.Model { + .init(content: circleAndTitlesViewModelContent, + colors: initialCircleViewModelColors, + displayMode: .normal, + editionMode: .none) + } + var body: some View { ZStack { Color(AppTheme.shared.colorScheme.systemBackground) @@ -68,21 +101,8 @@ struct ContactDetailedInfosView: View { ObvCardView(padding: 0) { VStack(alignment: .leading, spacing: 0) { - - CircleAndTitlesView( - titlePart1: titlePart1, - titlePart2: titlePart2, - subtitle: contact.identityCoreDetails?.position, - subsubtitle: contact.identityCoreDetails?.company, - circleBackgroundColor: contact.cryptoId.colors.background, - circleTextColor: contact.cryptoId.colors.text, - circledTextView: circledTextView, - systemImage: .person, - profilePicture: profilePicture, - showGreenShield: contact.isCertifiedByOwnKeycloak, - showRedShield: !contact.isActive, - editionMode: .none, - displayMode: .normal) + + CircleAndTitlesView(model: circleAndTitlesViewModel) .padding() OlvidButton(style: .blue, title: Text(CommonString.Word.Back), systemIcon: .arrowshapeTurnUpBackwardFill) { @@ -155,9 +175,7 @@ struct ContactDetailedInfosView: View { Text("None") } else { ForEach(contact.sortedDevices.indices, id: \.self) { index in - ObvSimpleListItemView( - title: Text("DEVICE \(index+1)"), - value: contact.sortedDevices[index].identifier.hexString()) + SingleContactDeviceView(index: index, device: contact.sortedDevices[index]) } } } header: { @@ -176,7 +194,7 @@ struct ContactDetailedInfosView: View { } else { HStack { Spacer() - ObvProgressView() + ProgressView() Spacer() } } @@ -209,3 +227,42 @@ struct ContactDetailedInfosView: View { } + + + +fileprivate struct SingleContactDeviceView: View { + + let index: Int + @ObservedObject var device: PersistedObvContactDevice + + private var secureChannelStatus: LocalizedStringKey { + switch device.secureChannelStatus { + case .creationInProgress, .none: + return "SECURE_CHANNEL_CREATION_IN_PROGRESS" + case .created: + return "SECURE_CHANNEL_CREATED" + } + } + + var body: some View { + HStack(alignment: .center, spacing: 0) { + VStack(alignment: .leading, spacing: 0) { + Text("DEVICE \(index+1)") + .foregroundColor(Color(AppTheme.shared.colorScheme.label)) + .font(.headline) + .padding(.bottom, 4.0) + .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) + .font(.body) + Text(secureChannelStatus) + .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) + .font(.body) + .padding(.bottom, 4.0) + Text(device.identifier.hexString()) + .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) + .font(.body) + HStack { Spacer() } + } + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SingleContactDetailedInfos/SingleContactDetailedInfosViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SingleContactDetailedInfos/SingleContactDetailedInfosViewController.swift deleted file mode 100644 index a4e14eb2..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SingleContactDetailedInfos/SingleContactDetailedInfosViewController.swift +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit -import ObvEngine -import ObvUI -import ObvUICoreData - - -class SingleContactDetailedInfosViewController: UIViewController { - - private let persistedObvContactIdentity: PersistedObvContactIdentity - - private let scrollView = UIScrollView() - private let mainStackView = UIStackView() - private let obvEngine: ObvEngine - - init(persistedObvContactIdentity: PersistedObvContactIdentity, obvEngine: ObvEngine) { - self.persistedObvContactIdentity = persistedObvContactIdentity - self.obvEngine = obvEngine - super.init(nibName: nil, bundle: nil) - } - - - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - - override func viewDidLoad() { - - scrollView.translatesAutoresizingMaskIntoConstraints = false - scrollView.backgroundColor = AppTheme.shared.colorScheme.systemBackground - scrollView.alwaysBounceHorizontal = false - scrollView.isScrollEnabled = true - self.view.addSubview(scrollView) - - mainStackView.translatesAutoresizingMaskIntoConstraints = false - mainStackView.axis = .vertical - mainStackView.alignment = .leading - mainStackView.spacing = 8 - scrollView.addSubview(mainStackView) - - addTitleAndValueLabels(title: Strings.customDisplayName, value: persistedObvContactIdentity.customDisplayName ?? CommonString.Word.None) - addTitleAndValueLabels(title: Strings.fullDisplayName, value: persistedObvContactIdentity.fullDisplayName) - addTitleAndValueLabels(title: CommonString.Word.Identity, value: persistedObvContactIdentity.cryptoId.getIdentity().hexString()) - - // Get the number of known devices for this contact - if let ownedIdentity = persistedObvContactIdentity.ownedIdentity { - let allContactDeviceIdentifiers: Set - let contactDevicesIdentifiersWithChannel: Set - let contactDeviceIdentifiersWithChannelCreation: Set - do { - allContactDeviceIdentifiers = try obvEngine.getContactDeviceIdentifiersOfContactIdentity(with: persistedObvContactIdentity.cryptoId, ofOwnedIdentityWith: ownedIdentity.cryptoId) - let contactDevicesWithChannel = try obvEngine.getAllObliviousChannelsEstablishedWithContactIdentity(with: persistedObvContactIdentity.cryptoId, ofOwnedIdentyWith: ownedIdentity.cryptoId) - contactDevicesIdentifiersWithChannel = Set(contactDevicesWithChannel.map({ $0.identifier })) - contactDeviceIdentifiersWithChannelCreation = try obvEngine.getContactDeviceIdentifiersForWhichAChannelCreationProtocolExists(with: persistedObvContactIdentity.cryptoId, ofOwnedIdentityWith: ownedIdentity.cryptoId) - } catch { - assertionFailure() - return - } - let values: [String] = allContactDeviceIdentifiers.map({ - let deviceName = String($0.hexString().prefix(16)) - let status: String - if contactDevicesIdentifiersWithChannel.contains($0) { - status = "✔︎" - } else if contactDeviceIdentifiersWithChannelCreation.contains($0) { - status = "⚙︎" - } else { - status = "⨉" - } - return [status, deviceName].joined(separator: " ") - }) - addTitleAndValuesLabels(title: CommonString.Word.Devices, values: values) - } - - setupConstraints() - - } - - - private func addTitleAndValueLabels(title: String, value: String) { - let titleLabel = UILabel() - titleLabel.font = UIFont.preferredFont(forTextStyle: .headline) - titleLabel.textColor = AppTheme.shared.colorScheme.label - titleLabel.text = title - mainStackView.addArrangedSubview(titleLabel) - - let valueLabel = UILabel() - valueLabel.font = UIFont.preferredFont(forTextStyle: .body) - valueLabel.numberOfLines = 0 - valueLabel.textColor = AppTheme.shared.colorScheme.secondaryLabel - valueLabel.text = value - mainStackView.addArrangedSubview(valueLabel) - } - - private func addTitleAndValuesLabels(title: String, values: [String]) { - let titleLabel = UILabel() - titleLabel.font = UIFont.preferredFont(forTextStyle: .headline) - titleLabel.textColor = AppTheme.shared.colorScheme.label - titleLabel.text = title - mainStackView.addArrangedSubview(titleLabel) - - for value in values { - let valueLabel = UILabel() - valueLabel.font = UIFont.preferredFont(forTextStyle: .body) - valueLabel.numberOfLines = 0 - valueLabel.textColor = AppTheme.shared.colorScheme.secondaryLabel - valueLabel.text = value - mainStackView.addArrangedSubview(valueLabel) - } - } - - - - private func setupConstraints() { - - let constraints = [ - scrollView.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 0), - scrollView.rightAnchor.constraint(equalTo: self.view.rightAnchor, constant: 0), - scrollView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: 0), - scrollView.leftAnchor.constraint(equalTo: self.view.leftAnchor, constant: 0), - mainStackView.widthAnchor.constraint(equalTo: self.view.widthAnchor, constant: -32), - mainStackView.topAnchor.constraint(equalTo: scrollView.topAnchor, constant: 16), - mainStackView.rightAnchor.constraint(equalTo: scrollView.rightAnchor, constant: 16), - mainStackView.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor, constant: 16), - mainStackView.leftAnchor.constraint(equalTo: scrollView.leftAnchor, constant: 16), - ] - NSLayoutConstraint.activate(constraints) - - } - -} - -private extension SingleContactDetailedInfosViewController { - - private struct Strings { - - static let customDisplayName = NSLocalizedString("Custom Display Name", comment: "") - static let fullDisplayName = NSLocalizedString("Full Display Name", comment: "") - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/EditSingleContactIdentityNicknameNavigationView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/EditSingleContactIdentityNicknameNavigationView.swift deleted file mode 100644 index 548bedb8..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/EditSingleContactIdentityNicknameNavigationView.swift +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import ObvUI -import SwiftUI - - -struct EditSingleContactIdentityNicknameNavigationView: View { - - @ObservedObject var singleIdentity: SingleContactIdentity - let saveAction: () -> Void - let dismissAction: () -> Void - - var body: some View { - NavigationView { - EditSingleContactIdentityNicknameView(singleIdentity: singleIdentity, saveAction: saveAction) - .navigationBarTitle(Text("EDIT_CONTACT_NICKNAME"), displayMode: .inline) - .navigationBarItems(leading: - Button(action: dismissAction, - label: { - Image(systemName: "xmark.circle.fill") - .font(Font.system(size: 24, weight: .semibold, design: .default)) - }) - .foregroundColor(Color(AppTheme.shared.colorScheme.tertiaryLabel))) - } - .navigationViewStyle(StackNavigationViewStyle()) - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/EditSingleContactIdentityNicknameView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/EditSingleContactIdentityNicknameView.swift deleted file mode 100644 index 97144993..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/EditSingleContactIdentityNicknameView.swift +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import ObvUICoreData -import SwiftUI - - - -struct EditSingleContactIdentityNicknameView: View { - - @ObservedObject var singleIdentity: SingleContactIdentity - let saveAction: () -> Void - /// Used to prevent small screen settings when the keyboard appears on a large screen - @State private var largeScreenUsedOnce = false - - private var canSave: Bool { - return singleIdentity.hasChanged - } - - private var disableSaveButton: Bool { - !canSave - } - - private var disableResetButton: Bool { - singleIdentity.customDisplayName == nil && singleIdentity.customPhotoURL == nil - } - - private var deviceName: String { - UIDevice.current.name - } - - var body: some View { - ZStack { - Color(AppTheme.shared.colorScheme.systemBackground) - .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity) - .edgesIgnoringSafeArea(.all) - VStack(alignment: .leading, spacing: 0) { - VStack(spacing: 0) { - ObvCardView { - HStack { - /// REMARK the given singleIdentity does not allow to modify its picture, but here in nickname editor we want to force the picture edition) - ContactIdentityCardContentView( - model: singleIdentity, - preferredDetails: .customOrTrusted, - editionMode: singleIdentity.editCustomPictureMode) - Spacer() - } - } - } - .padding(.horizontal) - .padding(.top) - .fixedSize(horizontal: false, vertical: true) - Form { - Section(footer: - VStack(spacing: 16) { - Text("EDIT_CONTACT_NICKNAME_EXPLANATION_\(deviceName)") - HStack(spacing: 16) { - OlvidButton(style: .standard, - title: Text(CommonString.Word.Reset), - systemIcon: .pencilSlash, - action: { - withAnimation { - singleIdentity.customDisplayName = nil - singleIdentity.customPhotoURL = nil - } - }) - .disabled(disableResetButton) - OlvidButton(style: .blue, - title: Text(CommonString.Word.Save), - systemIcon: .checkmarkSquareFill, - action: { - saveAction() - }) - .disabled(disableSaveButton) - } - } - ) { - TextField(LocalizedStringKey("FORM_NICKNAME"), text: Binding.init( - get: { singleIdentity.customDisplayName ?? "" }, - set: { - singleIdentity.customDisplayName = $0.isEmpty ? nil : $0 - })) - .disableAutocorrection(true) - } - } - } - } - } -} - - -struct EditSingleContactIdentityNicknameView_Previews: PreviewProvider { - - static let testData = [ - SingleContactIdentity( - firstName: "Marco", - lastName: "Polo", - position: "Traveler", - company: "Venezia", - publishedContactDetails: nil, - contactStatus: .seenPublishedDetails, - contactHasNoDevice: false, - contactIsOneToOne: true, - isActive: true), - SingleContactIdentity(firstName: "Marco", - lastName: "Polo", - position: "Traveler", - company: "Venezia", - customDisplayName: "Il Milione", - publishedContactDetails: nil, - contactStatus: .seenPublishedDetails, - contactHasNoDevice: false, - contactIsOneToOne: true, - isActive: true), - ] - - static var previews: some View { - Group { - ForEach(testData) { - EditSingleContactIdentityNicknameView(singleIdentity: $0, - saveAction: {}) - } - ForEach(testData) { - EditSingleContactIdentityNicknameView(singleIdentity: $0, - saveAction: {}) - .environment(\.colorScheme, .dark) - } - } - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ContactDeviceView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ContactDeviceView.swift new file mode 100644 index 00000000..56993193 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ContactDeviceView.swift @@ -0,0 +1,211 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvUICoreData +import ObvUI +import UI_SystemIcon +import ObvTypes +import ObvEngine +import ObvDesignSystem + + +// MARK: - ContactDeviceViewModelProtocol + +protocol ContactDeviceViewModelProtocol: ObservableObject { + + var contactIdentifier: ObvContactIdentifier { get throws } + var secureChannelStatus: PersistedObvContactDevice.SecureChannelStatus? { get } + var deviceIdentifier: Data { get } + var name: String { get } + +} + + +// MARK: - ContactDeviceViewActionDelegate + +protocol ContactDeviceViewActionsDelegate { + + func userWantsToRestartChannelCreationWithContactDevice(contactIdentifier: ObvContactIdentifier, deviceIdentifier: Data) async + +} + +// MARK: - ContactDeviceView + +struct ContactDeviceView: View { + + @ObservedObject var model: Model + let actions: ContactDeviceViewActionsDelegate + + + private var textForSecureChannelStatus: LocalizedStringKey { + switch model.secureChannelStatus { + case .creationInProgress, .none: + return "SECURE_CHANNEL_CREATION_IN_PROGRESS" + case .created: + return "SECURE_CHANNEL_CREATED" + } + } + + + private var systemIconForSecureChannelStatus: SystemIcon { + switch model.secureChannelStatus { + case .creationInProgress, .none: + return .arrowTriangle2CirclepathCircle + case .created: + return .checkmarkShield + } + } + + + private var colorForSecureChannelStatus: Color { + switch model.secureChannelStatus { + case .creationInProgress, .none: + return .primary + case .created: + return .green + } + } + + + private func userWantsToRestartChannelCreationWithThisDevice() { + guard let contactIdentifier = try? model.contactIdentifier else { assertionFailure(); return } + let deviceIdentifier = model.deviceIdentifier + Task { + await actions.userWantsToRestartChannelCreationWithContactDevice(contactIdentifier: contactIdentifier, deviceIdentifier: deviceIdentifier) + } + } + + + var body: some View { + VStack(alignment: .leading) { + HStack { + Text("DEVICE \(model.name)") + .font(.headline) + .foregroundColor(Color(AppTheme.shared.colorScheme.label)) + Spacer() + } + .padding(.bottom, 4.0) + HStack { + Label { + Text(textForSecureChannelStatus) + .font(.body) + .foregroundColor(.primary) + } icon: { + Image(systemIcon: systemIconForSecureChannelStatus) + .foregroundColor(colorForSecureChannelStatus) + } + } + .padding(.bottom, 2.0) + Button(action: userWantsToRestartChannelCreationWithThisDevice) { + Label(LocalizedStringKey("RECREATE_SECURE_CHANNEL_WITH_THIS_DEVICE"), systemIcon: .restartCircle) + } + .padding(.bottom, 4.0) + } + } + +} + + + + + + + +// MARK: - Previews + + +struct ContactDeviceView_Previews: PreviewProvider { + + private class ContactDeviceViewModelForPreviews: ContactDeviceViewModelProtocol { + + let contactIdentifier: ObvContactIdentifier + let secureChannelStatus: ObvUICoreData.PersistedObvContactDevice.SecureChannelStatus? + let deviceIdentifier: Data + let name: String + + init(contactIdentifier: ObvContactIdentifier, secureChannelStatus: ObvUICoreData.PersistedObvContactDevice.SecureChannelStatus?, deviceIdentifier: Data, name: String) { + self.contactIdentifier = contactIdentifier + self.secureChannelStatus = secureChannelStatus + self.deviceIdentifier = deviceIdentifier + self.name = name + } + + } + + + private struct ContactDeviceViewActionsForPreviews: ContactDeviceViewActionsDelegate { + func userWantsToRestartChannelCreationWithContactDevice(contactIdentifier: ObvContactIdentifier, deviceIdentifier: Data) async {} + } + + private static let identitiesAsURLs: [URL] = [ + URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")!, + URL(string: "https://invitation.olvid.io/#AwAAAHAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAAVZx8aqikpCe4h3ayCwgKBf-2nDwz-a6vxUo3-ep5azkBUjimUf3J--GXI8WTc2NIysQbw5fxmsY9TpjnDsZMW-AAAAAACEJvYiBXb3Jr")!, + ] + + private static let contactIdentifier: ObvContactIdentifier = { + let ownedCryptoId = ObvURLIdentity(urlRepresentation: identitiesAsURLs[0])!.cryptoId + let contactCryptoId = ObvURLIdentity(urlRepresentation: identitiesAsURLs[1])!.cryptoId + return ObvContactIdentifier(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) + }() + + + private static let models: [ContactDeviceViewModelForPreviews] = { + [ + ContactDeviceViewModelForPreviews( + contactIdentifier: contactIdentifier, + secureChannelStatus: .creationInProgress, + deviceIdentifier: Data(repeating: 0, count: 16), + name: String("1234")), + ContactDeviceViewModelForPreviews( + contactIdentifier: contactIdentifier, + secureChannelStatus: .created, + deviceIdentifier: Data(repeating: 0, count: 16), + name: String("5678")), + ContactDeviceViewModelForPreviews( + contactIdentifier: contactIdentifier, + secureChannelStatus: nil, + deviceIdentifier: Data(repeating: 0, count: 16), + name: String("5678")), + ] + }() + + static var previews: some View { + Group { + ContactDeviceView( + model: models[0], + actions: ContactDeviceViewActionsForPreviews()) + .previewLayout(PreviewLayout.sizeThatFits) + .previewDisplayName("Creation in progress") + + ContactDeviceView( + model: models[1], + actions: ContactDeviceViewActionsForPreviews()) + .previewLayout(PreviewLayout.sizeThatFits) + .previewDisplayName("Channel created") + + ContactDeviceView( + model: models[2], + actions: ContactDeviceViewActionsForPreviews()) + .previewLayout(PreviewLayout.sizeThatFits) + .previewDisplayName("Channel status not specified") + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ContactDevicesListView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ContactDevicesListView.swift new file mode 100644 index 00000000..29218cfa --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ContactDevicesListView.swift @@ -0,0 +1,190 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvUICoreData +import CoreData +import ObvTypes +import ObvEngine + + + +// MARK: - ContactDevicesListViewModelProtocol + +protocol ContactDevicesListViewModelProtocol: ObservableObject { + + associatedtype ContactDeviceViewModel: ContactDeviceViewModelProtocol + + var contactIdentifier: ObvContactIdentifier { get throws } + var contactDevices: [ContactDeviceViewModel] { get } + +} + + +protocol ContactDevicesListViewActionsDelegate: AnyObject, ContactDeviceViewActionsDelegate { + + func userWantsToClearAllContactDevices(contactIdentifier: ObvContactIdentifier) async + func userWantsToSearchForNewContactDevices(contactIdentifier: ObvContactIdentifier) async + +} + + +// MARK: - ContactDevicesListView + +struct ContactDevicesListView: View { + + @ObservedObject var model: Model + let actions: ContactDevicesListViewActionsDelegate + + + private func userWantsToSearchForNewDevicesOfThisContact() { + guard let contactIdentifier = try? model.contactIdentifier else { assertionFailure(); return } + Task { + await actions.userWantsToSearchForNewContactDevices(contactIdentifier: contactIdentifier) + } + } + + + private func userWantsToClearAllDevicesOfThisContact() { + guard let contactIdentifier = try? model.contactIdentifier else { assertionFailure(); return } + Task { + await actions.userWantsToClearAllContactDevices(contactIdentifier: contactIdentifier) + } + } + + + var body: some View { + ScrollView { + VStack { + ObvCardView { + ForEach(model.contactDevices, id: \.deviceIdentifier) { device in + ContactDeviceView(model: device, actions: actions) + } + } + OlvidButton( + style: .standard, + title: Text("SEARCH_FOR_NEW_DEVICES"), + systemIcon: .magnifyingglass, + action: userWantsToSearchForNewDevicesOfThisContact) + OlvidButton( + style: .red, + title: Text("CLEAR_ALL_DEVICES"), + systemIcon: .trash, + action: userWantsToClearAllDevicesOfThisContact) + Spacer() + }.padding() + } + } + +} + + +// MARK: - Previews + + +struct ContactDevicesListView_Previews: PreviewProvider { + + private class ContactDeviceViewModelForPreviews: ContactDeviceViewModelProtocol { + + let contactIdentifier: ObvContactIdentifier + let secureChannelStatus: ObvUICoreData.PersistedObvContactDevice.SecureChannelStatus? + let deviceIdentifier: Data + let name: String + + init(contactIdentifier: ObvContactIdentifier, secureChannelStatus: ObvUICoreData.PersistedObvContactDevice.SecureChannelStatus?, deviceIdentifier: Data, name: String) { + self.contactIdentifier = contactIdentifier + self.secureChannelStatus = secureChannelStatus + self.deviceIdentifier = deviceIdentifier + self.name = name + } + + } + + + private class ContactDevicesListViewForPreviews: ContactDevicesListViewModelProtocol { + + let contactIdentifier: ObvContactIdentifier + let contactDevices: [ContactDeviceViewModelForPreviews] + + init(contactIdentifier: ObvContactIdentifier, contactDevices: [ContactDeviceViewModelForPreviews]) { + self.contactIdentifier = contactIdentifier + self.contactDevices = contactDevices + } + + } + + + private final class ContactDevicesListViewActionsForPreviews: ContactDevicesListViewActionsDelegate { + func userWantsToClearAllContactDevices(contactIdentifier: ObvContactIdentifier) {} + func userWantsToSearchForNewContactDevices(contactIdentifier: ObvContactIdentifier) {} + func userWantsToRestartChannelCreationWithContactDevice(contactIdentifier: ObvContactIdentifier, deviceIdentifier: Data) async {} + } + + + private static let identitiesAsURLs: [URL] = [ + URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")!, + URL(string: "https://invitation.olvid.io/#AwAAAHAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAAVZx8aqikpCe4h3ayCwgKBf-2nDwz-a6vxUo3-ep5azkBUjimUf3J--GXI8WTc2NIysQbw5fxmsY9TpjnDsZMW-AAAAAACEJvYiBXb3Jr")!, + ] + + private static let contactIdentifier: ObvContactIdentifier = { + let ownedCryptoId = ObvURLIdentity(urlRepresentation: identitiesAsURLs[0])!.cryptoId + let contactCryptoId = ObvURLIdentity(urlRepresentation: identitiesAsURLs[1])!.cryptoId + return ObvContactIdentifier(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) + }() + + + private static let contactDevices: [ContactDeviceViewModelForPreviews] = { + [ + ContactDeviceViewModelForPreviews( + contactIdentifier: contactIdentifier, + secureChannelStatus: .creationInProgress, + deviceIdentifier: Data(repeating: 0, count: 16), + name: String("1234")), + ContactDeviceViewModelForPreviews( + contactIdentifier: contactIdentifier, + secureChannelStatus: .created, + deviceIdentifier: Data(repeating: 1, count: 16), + name: String("5678")), + ContactDeviceViewModelForPreviews( + contactIdentifier: contactIdentifier, + secureChannelStatus: nil, + deviceIdentifier: Data(repeating: 2, count: 16), + name: String("5678")), + ] + }() + + + private static let model: ContactDevicesListViewForPreviews = { + ContactDevicesListViewForPreviews( + contactIdentifier: contactIdentifier, + contactDevices: contactDevices) + }() + + + static var previews: some View { + Group { + ContactDevicesListView( + model: model, + actions: ContactDevicesListViewActionsForPreviews()) + .previewLayout(PreviewLayout.sizeThatFits) + .previewDisplayName("Three devices") + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ListOfContactDevicesViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ListOfContactDevicesViewController.swift new file mode 100644 index 00000000..2643e11c --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ListOfContactDevicesViewController.swift @@ -0,0 +1,93 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import ObvUICoreData +import ObvUI +import ObvEngine +import ObvTypes + + +final class ListOfContactDevicesViewController: UIHostingController>, ContactDevicesListViewActionsDelegate { + + private let obvEngine: ObvEngine + + init(persistedContact: PersistedObvContactIdentity, obvEngine: ObvEngine) { + self.obvEngine = obvEngine + let actions = ContactDevicesListViewActions() + let rootView = ContactDevicesListView(model: persistedContact, actions: actions) + super.init(rootView: rootView) + actions.delegate = self + } + + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + // MARK: - ContactDevicesListViewActionsDelegate + + func userWantsToClearAllContactDevices(contactIdentifier: ObvContactIdentifier) async { + DispatchQueue(label: "Background queue for deleteAllContactDevicesAndChannelsThenPerformContactDeviceDiscovery").async { [weak self] in + try? self?.obvEngine.deleteAllContactDevicesAndChannelsThenPerformContactDeviceDiscovery(contactIdentifier: contactIdentifier) + } + } + + func userWantsToSearchForNewContactDevices(contactIdentifier: ObvContactIdentifier) async { + DispatchQueue(label: "Background queue for performContactDeviceDiscovery").async { [weak self] in + try? self?.obvEngine.performContactDeviceDiscovery(contactIdentifier: contactIdentifier) + DispatchQueue.main.async { [weak self] in + self?.showHUD(type: .checkmark) + DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(2)) { + self?.hideHUD() + } + } + } + } + + func userWantsToRestartChannelCreationWithContactDevice(contactIdentifier: ObvContactIdentifier, deviceIdentifier: Data) async { + DispatchQueue(label: "Background queue for recreateChannelWithContactDevice").async { [weak self] in + try? self?.obvEngine.recreateChannelWithContactDevice(contactIdentifier: contactIdentifier, contactDeviceIdentifier: deviceIdentifier) + } + } + +} + + + + +fileprivate final class ContactDevicesListViewActions: ContactDevicesListViewActionsDelegate { + + weak var delegate: ContactDevicesListViewActionsDelegate? + + func userWantsToClearAllContactDevices(contactIdentifier: ObvContactIdentifier) async { + await delegate?.userWantsToClearAllContactDevices(contactIdentifier: contactIdentifier) + } + + func userWantsToSearchForNewContactDevices(contactIdentifier: ObvContactIdentifier) async { + await delegate?.userWantsToSearchForNewContactDevices(contactIdentifier: contactIdentifier) + } + + func userWantsToRestartChannelCreationWithContactDevice(contactIdentifier: ObvContactIdentifier, deviceIdentifier: Data) async { + await delegate?.userWantsToRestartChannelCreationWithContactDevice(contactIdentifier: contactIdentifier, deviceIdentifier: deviceIdentifier) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingSasAcceptedView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ViewModelsForCoreDataEntities/PersistedObvContactDevice+ContactDeviceViewModelProtocol.swift similarity index 70% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingSasAcceptedView.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ViewModelsForCoreDataEntities/PersistedObvContactDevice+ContactDeviceViewModelProtocol.swift index fcf2ddf8..e325333a 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingSasAcceptedView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ViewModelsForCoreDataEntities/PersistedObvContactDevice+ContactDeviceViewModelProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -17,18 +17,18 @@ * along with Olvid. If not, see . */ -import UIKit +import ObvUICoreData +import ObvTypes -protocol CellContainingSasAcceptedView { - - var sasAcceptedView: SasAcceptedView! { get } - -} -extension CellContainingSasAcceptedView { +extension PersistedObvContactDevice: ContactDeviceViewModelProtocol { + + var deviceIdentifier: Data { + self.identifier + } - func setOwnSas(ownSas: Data) throws { - try sasAcceptedView.setOwnSas(ownSas: ownSas) + var name: String { + return String(deviceIdentifier.hexString().prefix(4)) } diff --git a/Modules/Discussions/AttachmentsDropView/UIDropInteraction+AttachmentsDropView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+ContactDevicesListViewModelProtocol.swift similarity index 66% rename from Modules/Discussions/AttachmentsDropView/UIDropInteraction+AttachmentsDropView.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+ContactDevicesListViewModelProtocol.swift index 4dee6472..6b6cd923 100644 --- a/Modules/Discussions/AttachmentsDropView/UIDropInteraction+AttachmentsDropView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfContactDevices/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+ContactDevicesListViewModelProtocol.swift @@ -17,13 +17,20 @@ * along with Olvid. If not, see . */ -import class UIKit.UIDropInteraction +import ObvUICoreData +import ObvTypes +import ObvEngine -@available(iOS 14, *) -public extension UIDropInteraction { - /// Initializes an instance of `UIDropInteraction` with a given instance of `AttachmentsDropView` - /// - Parameter dropView: An instance of `AttachmentsDropView` - convenience init(_ dropView: AttachmentsDropView) { - self.init(delegate: dropView) + +extension PersistedObvContactIdentity: ContactDevicesListViewModelProtocol { + + var contactDevices: [ObvUICoreData.PersistedObvContactDevice] { + self.sortedDevices + } + + var contactIdentifier: ObvContactIdentifier { + get throws { + try obvContactIdentifier + } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfTrustOrigins/ListOfTrustOriginsView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfTrustOrigins/ListOfTrustOriginsView.swift new file mode 100644 index 00000000..f2d78870 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfTrustOrigins/ListOfTrustOriginsView.swift @@ -0,0 +1,64 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvEngine + + +struct ListOfTrustOriginsView: View { + + let trustOrigins: [ObvTrustOrigin] + + var body: some View { + ScrollView { + ObvCardView { + VStack(alignment: .leading) { + ForEach(trustOrigins, id: \.self) { trustOrigin in + TrustOriginCellView(trustOrigin: trustOrigin) + if trustOrigin != trustOrigins.last { + SeparatorView() + } + } + } + }.padding() + Spacer() + } + } + +} + + + +// MARK: - Previews + +struct ListOfTrustOriginsView_Previews: PreviewProvider { + + private static let someDate = Date(timeIntervalSince1970: 1_600_000_000) + + static var previews: some View { + Group { + ListOfTrustOriginsView(trustOrigins: [ + .direct(timestamp: someDate), + .introduction(timestamp: someDate, mediator: nil), + .group(timestamp: someDate, groupOwner: nil), + ]) + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallViewHostingController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfTrustOrigins/ListOfTrustOriginsViewController.swift similarity index 61% rename from iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallViewHostingController.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfTrustOrigins/ListOfTrustOriginsViewController.swift index 8cd00a31..607d6a71 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallViewHostingController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfTrustOrigins/ListOfTrustOriginsViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -19,23 +19,23 @@ import UIKit import SwiftUI +import ObvEngine -final class CallViewHostingController: UIHostingController { - - let wrappedCall: ObservableCallWrapper - let callUUID: UUID - init(call: GenericCall) { - self.callUUID = call.uuid - self.wrappedCall = ObservableCallWrapper(call: call) - super.init(rootView: CallView(wrappedCall: wrappedCall)) - } +final class ListOfTrustOriginsViewController: UIHostingController { - @objc required dynamic init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") + init(trustOrigins: [ObvTrustOrigin]) { + let view = ListOfTrustOriginsView(trustOrigins: trustOrigins) + super.init(rootView: view) } - deinit { - debugPrint("CallViewHostingController deinit") + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") } + + override func viewDidLoad() { + super.viewDidLoad() + self.title = NSLocalizedString("TRUST_ORIGINS", comment: "") + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/TrustOriginsView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfTrustOrigins/TrustOriginCellView.swift similarity index 62% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/TrustOriginsView.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfTrustOrigins/TrustOriginCellView.swift index 248135fb..abc3cd65 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/TrustOriginsView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/ListOfTrustOrigins/TrustOriginCellView.swift @@ -21,32 +21,12 @@ import ObvEngine import ObvUI import SwiftUI +import ObvDesignSystem -struct TrustOriginsView: View { - - let trustOrigins: [ObvTrustOrigin] - let dateFormatter: DateFormatter - - var body: some View { - VStack(alignment: .leading) { - ForEach(trustOrigins, id: \.self) { trustOrigin in - TrustOriginCell(trustOrigin: trustOrigin, dateFormatter: dateFormatter) - if trustOrigin != trustOrigins.last { - SeparatorView() - } - } - } - } - -} - - - -fileprivate struct TrustOriginCell: View { +struct TrustOriginCellView: View { let trustOrigin: ObvTrustOrigin - let dateFormatter: DateFormatter private var image: Image? { switch trustOrigin { @@ -104,19 +84,14 @@ fileprivate struct TrustOriginCell: View { .fixedSize(horizontal: false, vertical: true) .font(.system(.headline, design: .rounded)) .foregroundColor(Color(AppTheme.shared.colorScheme.label)) - if #available(iOS 14, *) { - Text(dateFormatter.string(from: trustOrigin.date)) - .lineLimit(2) - .fixedSize(horizontal: false, vertical: true) - .font(.subheadline) - .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) - } else { - Text(dateFormatter.string(from: trustOrigin.date)) - .lineLimit(2) - .fixedSize(horizontal: false, vertical: true) - .font(.footnote) - .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) + HStack { + Text(trustOrigin.date, style: .date) + Text(trustOrigin.date, style: .time) } + .lineLimit(2) + .fixedSize(horizontal: false, vertical: true) + .font(.subheadline) + .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) } Spacer() } @@ -126,66 +101,47 @@ fileprivate struct TrustOriginCell: View { +// MARK: - Previews struct TrustOriginsView_Previews: PreviewProvider { - static let dateFormatter: DateFormatter = { - let df = DateFormatter() - df.locale = Locale.current - df.doesRelativeDateFormatting = true - df.dateStyle = .long - df.timeStyle = .short - return df - }() - static let someDate = Date(timeIntervalSince1970: 1_600_000_000) static var previews: some View { Group { - TrustOriginCell(trustOrigin: ObvTrustOrigin.direct(timestamp: someDate), - dateFormatter: dateFormatter) + TrustOriginCellView(trustOrigin: ObvTrustOrigin.direct(timestamp: someDate)) .previewLayout(.sizeThatFits) .padding() .frame(width: 300, height: 110, alignment: .leading) .background(Color(.systemBackground)) - TrustOriginCell(trustOrigin: ObvTrustOrigin.introduction(timestamp: someDate, mediator: nil), - dateFormatter: dateFormatter) + TrustOriginCellView(trustOrigin: ObvTrustOrigin.introduction(timestamp: someDate, mediator: nil)) .previewLayout(.sizeThatFits) .padding() .frame(width: 300, height: 110, alignment: .leading) .background(Color(.systemBackground)) - TrustOriginCell(trustOrigin: ObvTrustOrigin.group(timestamp: someDate, groupOwner: nil), - dateFormatter: dateFormatter) + TrustOriginCellView(trustOrigin: ObvTrustOrigin.group(timestamp: someDate, groupOwner: nil)) .previewLayout(.sizeThatFits) .padding() .frame(width: 300, height: 110, alignment: .leading) .background(Color(.systemBackground)) - TrustOriginCell(trustOrigin: ObvTrustOrigin.direct(timestamp: someDate), - dateFormatter: dateFormatter) + TrustOriginCellView(trustOrigin: ObvTrustOrigin.direct(timestamp: someDate)) .previewLayout(.sizeThatFits) .padding() .frame(width: 300, height: 110, alignment: .leading) .background(Color(.systemBackground)) .environment(\.colorScheme, .dark) - TrustOriginCell(trustOrigin: ObvTrustOrigin.introduction(timestamp: someDate, mediator: nil), - dateFormatter: dateFormatter) + TrustOriginCellView(trustOrigin: ObvTrustOrigin.introduction(timestamp: someDate, mediator: nil)) .previewLayout(.sizeThatFits) .padding() .frame(width: 300, height: 110, alignment: .leading) .background(Color(.systemBackground)) .environment(\.colorScheme, .dark) - TrustOriginCell(trustOrigin: ObvTrustOrigin.group(timestamp: someDate, groupOwner: nil), - dateFormatter: dateFormatter) + TrustOriginCellView(trustOrigin: ObvTrustOrigin.group(timestamp: someDate, groupOwner: nil)) .previewLayout(.sizeThatFits) .padding() .frame(width: 300, height: 110, alignment: .leading) .background(Color(.systemBackground)) .environment(\.colorScheme, .dark) - TrustOriginsView(trustOrigins: [.direct(timestamp: someDate), - .introduction(timestamp: someDate, mediator: nil), - .group(timestamp: someDate, groupOwner: nil) - ], - dateFormatter: dateFormatter) } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/SingleContactIdentityView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/SingleContactIdentityView.swift index 659a92ae..4e586975 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/SingleContactIdentityView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/SingleContactIdentityView.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import ObvEngine import ObvUI import ObvUICoreData import SwiftUI +import ObvDesignSystem struct SingleContactIdentityView: View { @@ -53,83 +54,96 @@ struct SingleContactIdentityInnerView: View { @Environment(\.presentationMode) var presentationMode var body: some View { - ZStack { - Color(AppTheme.shared.colorScheme.systemBackground) - .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity) - .edgesIgnoringSafeArea(.all) - ScrollView { - VStack { - ContactIdentityHeaderView(singleIdentity: contact, - editionMode: .custom(icon: .pencil(), action: { contact.userWantsToEditContactNickname() })) - .padding(.top, 16) - - - if contact.isActive { - if contact.contactHasNoDevice { - CreatingChannelExplanationView(restartChannelCreationButtonTapped: contact.userWantsToRestartChannelCreation) - .padding(.top, 16) - } else { - HStack { - OlvidButton(style: contact.contactIsOneToOne ? .standardWithBlueText : .standard, - title: Text(CommonString.Word.Chat), - systemIcon: .textBubbleFill, - action: { - if contact.contactIsOneToOne { - contact.userWantsToDiscuss() - } else { - showAlertCannotDiscussWithNonOneToOne.toggle() - } - }) - OlvidButton(style: .standardWithBlueText, - title: Text(CommonString.Word.Call), - systemIcon: .phoneFill, - action: contact.userWantsToCallContact) - .disabled(contact.contactHasNoDevice) - } + ScrollView { + VStack { + ContactIdentityHeaderView(singleIdentity: contact, + editionMode: .custom(icon: .pencil(), action: { contact.userWantsToEditContactNickname() })) + .padding(.top, 16) + + + if contact.isActive { + if !contact.contactHasNoDevice && !contact.atLeastOneDeviceAllowsThisContactToReceiveMessages { + CreatingChannelExplanationView(restartChannelCreationButtonTapped: contact.userWantsToRestartChannelCreation) .padding(.top, 16) + } else { + HStack { + OlvidButton(style: contact.contactIsOneToOne ? .standardWithBlueText : .standard, + title: Text(CommonString.Word.Chat), + systemIcon: .textBubbleFill, + action: { + if contact.contactIsOneToOne { + contact.userWantsToDiscuss() + } else { + showAlertCannotDiscussWithNonOneToOne.toggle() + } + }) + OlvidButton(style: .standardWithBlueText, + title: Text(CommonString.Word.Call), + systemIcon: .phoneFill, + action: contact.userWantsToCallContact) + .disabled(!contact.atLeastOneDeviceAllowsThisContactToReceiveMessages) } - if contact.showReblockView, let contactCryptoId = contact.persistedContact?.cryptoId, let ownedCryptoId = contact.persistedContact?.ownedIdentity?.cryptoId { - ContactCanBeReblockedExplanationView(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) - .padding(.top, 16) - } - } else if let contactCryptoId = contact.persistedContact?.cryptoId, let ownedCryptoId = contact.persistedContact?.ownedIdentity?.cryptoId { - ContactIsNotActiveExplanationView(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) - } - - ContactIdentityCardViews(contact: contact, - contactStatus: $contact.contactStatus) - .padding(.top, 16) - .padding(.bottom, 16) - - if !displayedContactGroupFetchRequest.wrappedValue.isEmpty { - GroupsCardView(displayedContactGroups: displayedContactGroupFetchRequest.wrappedValue, - userWantsToNavigateToSingleGroupView: contact.userWantsToNavigateToSingleGroupView, - tappedGroup: $contact.tappedGroup) .padding(.top, 16) } - - TrustOriginsCardView(trustOrigins: contact.trustOrigins) - .padding(.top, 16) - - BottomButtonsView(contact: contact, - userWantsToDeleteContact: {contact.userWantsToDeleteContact { success in - guard success else { return } - presentationMode.wrappedValue.dismiss() - }}) + if contact.showReblockView, let contactCryptoId = contact.persistedContact?.cryptoId, let ownedCryptoId = contact.persistedContact?.ownedIdentity?.cryptoId { + ContactCanBeReblockedExplanationView(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) + .padding(.top, 16) + } + } else if let contactCryptoId = contact.persistedContact?.cryptoId, let ownedCryptoId = contact.persistedContact?.ownedIdentity?.cryptoId { + ContactIsNotActiveExplanationView(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) + } + + if let persistedContact = contact.persistedContact, let textOfNote = persistedContact.note, !textOfNote.isEmpty { + PersonalNoteView(model: persistedContact) .padding(.top, 16) - Spacer() } - .padding(.horizontal, 16) - .padding(.bottom, 32) - .alert(isPresented: $showAlertCannotDiscussWithNonOneToOne) { - Alert(title: Text("INVITE_REQUIRED_ALERT_TITLE"), - message: Text("YOU_NEED_TO_INVITE_\(contact.getFirstName(for: .trusted))_BEFORE_HAVING_DISCUSSION_ALERT_MESSAGE"), - primaryButton: .cancel(Text("Cancel")), - secondaryButton: .default(Text("Invite")) { - contact.userWantsToInviteContactToOneToOne() - }) + + ContactIdentityCardViews(contact: contact, + contactStatus: $contact.contactStatus) + .padding(.top, 16) + .padding(.bottom, 16) + + if !displayedContactGroupFetchRequest.wrappedValue.isEmpty { + GroupsCardView(displayedContactGroups: displayedContactGroupFetchRequest.wrappedValue, + userWantsToNavigateToSingleGroupView: contact.userWantsToNavigateToSingleGroupView, + tappedGroup: $contact.tappedGroup) + .padding(.top, 16) } + + if let persistedContact = contact.persistedContact { + ContactDevicesCardView( + contact: persistedContact, + userWantsToNavigateToListOfContactDevicesView: contact.userWantsToNavigateToListOfContactDevicesView) + .padding(.top, 16) + } + + TrustOriginsCardView( + trustOrigins: contact.trustOrigins, + userWantsToNavigateToListOfTrustOriginsView: contact.userWantsToNavigateToListOfTrustOriginsView) + .padding(.top, 16) + + BottomButtonsView(contact: contact, + userWantsToDeleteContact: {contact.userWantsToDeleteContact { success in + guard success else { return } + presentationMode.wrappedValue.dismiss() + }}) + .padding(.top, 16) + Spacer() + } + .padding(.horizontal, 16) + .padding(.bottom, 32) + .alert(isPresented: $showAlertCannotDiscussWithNonOneToOne) { + Alert(title: Text("INVITE_REQUIRED_ALERT_TITLE"), + message: Text("YOU_NEED_TO_INVITE_\(contact.getFirstName(for: .trusted))_BEFORE_HAVING_DISCUSSION_ALERT_MESSAGE"), + primaryButton: .cancel(Text("Cancel")), + secondaryButton: .default(Text("Invite")) { + contact.userWantsToInviteContactToOneToOne() + }) } + }.background { + Color(AppTheme.shared.colorScheme.systemBackground) + .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity) + .edgesIgnoringSafeArea(.all) } } } @@ -225,23 +239,43 @@ private struct GroupCellView: View { @ObservedObject var group: DisplayedContactGroup let showChevron: Bool let selected: Bool - + + private var textViewModel: TextView.Model { + .init(titlePart1: group.displayedTitle, + titlePart2: nil, + subtitle: group.subtitle, + subsubtitle: nil) + } + + private var profilePictureViewModelContent: ProfilePictureView.Model.Content { + .init(text: nil, + icon: .person3Fill, + profilePicture: group.displayedImage, + showGreenShield: group.isKeycloakManaged, + showRedShield: false) + } + + private var circleAndTitlesViewModelContent: CircleAndTitlesView.Model.Content { + .init(textViewModel: textViewModel, + profilePictureViewModelContent: profilePictureViewModelContent) + } + + private var initialCircleViewModelColors: InitialCircleView.Model.Colors { + .init(background: group.circledInitialsConfiguration.backgroundColor(appTheme: AppTheme.shared), + foreground: group.circledInitialsConfiguration.foregroundColor(appTheme: AppTheme.shared)) + } + + private var circleAndTitlesViewModel: CircleAndTitlesView.Model { + .init(content: circleAndTitlesViewModelContent, + colors: initialCircleViewModelColors, + displayMode: .normal, + editionMode: .none) + } + var body: some View { HStack { - CircleAndTitlesView(titlePart1: group.displayedTitle, - titlePart2: nil, - subtitle: group.subtitle, - subsubtitle: nil, - circleBackgroundColor: group.circledInitialsConfiguration.backgroundColor(appTheme: AppTheme.shared), - circleTextColor: group.circledInitialsConfiguration.foregroundColor(appTheme: AppTheme.shared), - circledTextView: nil, - systemImage: .person3Fill, - profilePicture: group.displayedImage, - showGreenShield: group.isKeycloakManaged, - showRedShield: false, - editionMode: .none, - displayMode: .normal) + CircleAndTitlesView(model: circleAndTitlesViewModel) Spacer() @@ -276,27 +310,103 @@ private struct GroupCellView: View { fileprivate struct TrustOriginsCardView: View { let trustOrigins: [ObvTrustOrigin] + let userWantsToNavigateToListOfTrustOriginsView: () -> Void + @State private var selected = false + + var body: some View { + VStack(alignment: .leading) { + ObvCardView { + HStack(alignment: .firstTextBaseline) { + Image(systemIcon: .checkmarkShield) + .foregroundColor(Color(.systemGreen)) + .font(.system(size: 22)) + .frame(width: 40) + + Text("TRUST_ORIGINS") + .lineLimit(nil) + .fixedSize(horizontal: false, vertical: true) + .font(.system(.headline, design: .rounded)) + .foregroundColor(Color(AppTheme.shared.colorScheme.label)) + + Spacer() + + ObvChevron(selected: selected) + + } + .contentShape(Rectangle()) // This makes it possible to have an "on tap" gesture that also works when the Spacer is tapped + .onTapGesture { + withAnimation { + selected = true + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(200)) { + userWantsToNavigateToListOfTrustOriginsView() + } + } + } + .onAppear { + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(200)) { + withAnimation { + selected = false + } + } + } + } + } + } - private let dateFormatter: DateFormatter = { - let df = DateFormatter() - df.timeStyle = .short - df.dateStyle = .short - df.doesRelativeDateFormatting = true - return df - }() +} + +fileprivate struct ContactDevicesCardView: View { + + let contact: PersistedObvContactIdentity + let userWantsToNavigateToListOfContactDevicesView: () -> Void + @State private var selected = false + var body: some View { VStack(alignment: .leading) { HStack { - Text("TRUST_ORIGINS") + Text("Devices") .font(.system(.headline, design: .rounded)) Spacer() } ObvCardView { - TrustOriginsView(trustOrigins: trustOrigins, dateFormatter: dateFormatter) + HStack(alignment: .firstTextBaseline) { + Image(systemIcon: .laptopcomputerAndIphone) + .foregroundColor(Color(.systemBlue)) + .font(.system(size: 22)) + .frame(width: 40) + + Text(String.localizedStringWithFormat(NSLocalizedString("CONTACT_HAS_N_DEVICES", comment: ""), contact.customOrShortDisplayName, contact.devices.count)) + .lineLimit(nil) + .fixedSize(horizontal: false, vertical: true) + .font(.system(.headline, design: .rounded)) + .foregroundColor(Color(AppTheme.shared.colorScheme.label)) + + Spacer() + + ObvChevron(selected: selected) + + } + .contentShape(Rectangle()) // This makes it possible to have an "on tap" gesture that also works when the Spacer is tapped + .onTapGesture { + withAnimation { + selected = true + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(200)) { + userWantsToNavigateToListOfContactDevicesView() + } + } + } + .onAppear { + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(200)) { + withAnimation { + selected = false + } + } + } } } } + } @@ -339,7 +449,7 @@ fileprivate struct ContactIdentityCardViews: View { } private func actionsForMainCard(hasOneToOneInvitationSent: Bool) -> [OlvidButtonAction] { - guard !contact.contactHasNoDevice && contact.isActive else { return [] } + guard contact.atLeastOneDeviceAllowsThisContactToReceiveMessages && contact.isActive else { return [] } if contact.contactIsOneToOne { return [introduceAction] } else if hasOneToOneInvitationSent { @@ -350,7 +460,10 @@ fileprivate struct ContactIdentityCardViews: View { } private func explanationForMainCard(hasOneToOneInvitationSent: Bool) -> Text? { - guard !contact.contactHasNoDevice && contact.isActive else { return nil } + // This test in correct only because we do not use this SingleIdentityView to show keycloak-only users. + // Instead of this simple test, we should query the MainFlowViewController to see if there is a one2one invitation + // that can be sent to the user (keycloak and/or protocol). + guard contact.atLeastOneDeviceAllowsThisContactToReceiveMessages && contact.isActive else { return nil } if contact.contactIsOneToOne { return nil } else if hasOneToOneInvitationSent { @@ -407,19 +520,6 @@ fileprivate struct BottomButtonsView: View { var body: some View { VStack(spacing: 8) { - if !contact.contactHasNoDevice { - OlvidButton(style: .standard, - title: Text("RECREATE_CHANNEL"), - systemIcon: .restartCircle, - action: { confirmRecreateTheSecureChannelSheetPresented.toggle() }) - .actionSheet(isPresented: $confirmRecreateTheSecureChannelSheetPresented) { - ActionSheet(title: Text("RECREATE_CHANNEL"), message: Text("Do you really wish to recreate the secure channel?"), buttons: [ - .default(Text("Yes"), action: contact.userWantsToRecreateTheSecureChannel), - .cancel(), - ]) - } - } - if let persistedContact = contact.persistedContact { OlvidButton(style: .standard, title: Text("SHOW_CONTACT_DETAILS"), @@ -457,7 +557,7 @@ fileprivate struct CreatingChannelExplanationView: View { .font(.headline) .fontWeight(.semibold) Spacer() - ObvActivityIndicator(isAnimating: .constant(true), style: .medium, color: nil) + ProgressView() } HStack { Text("ESTABLISHING_SECURE_CHANNEL_EXPLANATION") @@ -624,6 +724,7 @@ struct SingleContactIdentityView_Previews: PreviewProvider { company: "Apple", publishedContactDetails: nil, contactStatus: .noNewPublishedDetails, + atLeastOneDeviceAllowsThisContactToReceiveMessages: true, contactHasNoDevice: false, contactIsOneToOne: true, isActive: true, @@ -635,6 +736,7 @@ struct SingleContactIdentityView_Previews: PreviewProvider { company: "NeXT", publishedContactDetails: otherIdentityDetails, contactStatus: .seenPublishedDetails, + atLeastOneDeviceAllowsThisContactToReceiveMessages: true, contactHasNoDevice: false, contactIsOneToOne: true, isActive: true, @@ -646,7 +748,8 @@ struct SingleContactIdentityView_Previews: PreviewProvider { company: "Olvid", publishedContactDetails: nil, contactStatus: .noNewPublishedDetails, - contactHasNoDevice: true, + atLeastOneDeviceAllowsThisContactToReceiveMessages: false, + contactHasNoDevice: false, contactIsOneToOne: true, isActive: true, trustOrigins: trustOrigins) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/SingleContactIdentityViewHostingController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/SingleContactIdentityViewHostingController.swift index c5b6fbd6..112cf1d1 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/SingleContactIdentityViewHostingController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleContact/SwiftUI/SingleContactIdentityViewHostingController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,16 +27,17 @@ import ObvUICoreData protocol SingleContactIdentityViewHostingControllerDelegate: AnyObject { + func userWantsToNavigateToListOfContactDevicesView(_ contact: PersistedObvContactIdentity, within nav: UINavigationController?) + func userWantsToNavigateToListOfTrustOriginsView(_ trustOrigins: [ObvTrustOrigin], within nav: UINavigationController?) func userWantsToNavigateToSingleGroupView(_ group: DisplayedContactGroup, within nav: UINavigationController?) func userWantsToDisplay(persistedDiscussion discussion: PersistedDiscussion) - func userWantsToEditContactNickname(persistedContactObjectId: NSManagedObjectID) - func userWantsToInviteContactToOneToOne(persistedContactObjectID: TypeSafeManagedObjectID) + func userWantsToInviteContactToOneToOne(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) func userWantsToCancelSentInviteContactToOneToOne(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) func userWantsToSyncOneToOneStatusOfContact(persistedContactObjectID: TypeSafeManagedObjectID) } -final class SingleContactIdentityViewHostingController: UIHostingController, SingleContactIdentityDelegate, SomeSingleContactViewController, ObvErrorMaker { +final class SingleContactIdentityViewHostingController: UIHostingController, SingleContactIdentityDelegate, SomeSingleContactViewController, ObvErrorMaker, PersonalNoteEditorViewActionsDelegate, EditNicknameAndCustomPictureViewControllerDelegate { let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "SingleContactIdentityViewHostingController") static let errorDomain = "SingleContactIdentityViewHostingController" @@ -44,7 +45,6 @@ final class SingleContactIdentityViewHostingController: UIHostingController. - */ - - -import ObvEngine -import os.log -import ObvTypes -import ObvUI -import StoreKit -import SwiftUI -import UI_SystemIcon -import UI_SystemIcon_SwiftUI - -final class AvailableSubscriptionPlans: ObservableObject { - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "AvailableSubscriptionPlans") - - let ownedCryptoId: ObvCryptoId - private let fetchSubscriptionPlanAction: () -> Void - private let userWantsToStartFreeTrialNow: () -> Void - private let userWantsToFallbackOnFreeVersion: () -> Void - private let userWantsToBuy: (SKProduct) -> Void - private let userWantsToRestorePurchases: () -> Void - @Published private(set) var freePlanIsAvailable: Bool? = nil // Nil until we know whether a free plan is available or not - @Published private(set) var skProducts: [SKProduct]? // Nil until store plans are known - @Published private(set) var requestedListOfSKProductsError: SubscriptionManager.RequestedListOfSKProductsError? // Nil until an error occurs when fetching skProducts - @Published private(set) var shownHUD: HUDView.Category? = nil - @Published var buttonsAreDisabled = false - @Published private(set) var errorMessage = Text("") - @Published var showErrorMessage = false - - - private var notificationsTokens = [NSObjectProtocol]() - - init(ownedCryptoId: ObvCryptoId, fetchSubscriptionPlanAction: @escaping () -> Void, userWantsToStartFreeTrialNow: @escaping () -> Void, userWantsToFallbackOnFreeVersion: @escaping () -> Void, userWantsToBuy: @escaping (SKProduct) -> Void, userWantsToRestorePurchases: @escaping () -> Void) { - self.freePlanIsAvailable = nil - self.skProducts = nil - self.ownedCryptoId = ownedCryptoId - self.fetchSubscriptionPlanAction = fetchSubscriptionPlanAction - self.userWantsToStartFreeTrialNow = userWantsToStartFreeTrialNow - self.userWantsToFallbackOnFreeVersion = userWantsToFallbackOnFreeVersion - self.userWantsToBuy = userWantsToBuy - self.userWantsToRestorePurchases = userWantsToRestorePurchases - } - - // Used within SwiftUI previews - fileprivate init(ownedCryptoId: ObvCryptoId, freePlanIsAvailable: Bool, skProducts: [SKProduct]) { - self.freePlanIsAvailable = freePlanIsAvailable - self.skProducts = skProducts - self.ownedCryptoId = ownedCryptoId - self.fetchSubscriptionPlanAction = {} - self.userWantsToStartFreeTrialNow = {} - self.userWantsToFallbackOnFreeVersion = {} - self.userWantsToBuy = { _ in } - self.userWantsToRestorePurchases = {} - } - - deinit { - notificationsTokens.forEach { NotificationCenter.default.removeObserver($0) } - } - - var canShowPlans: Bool { - freePlanIsAvailable != nil && (skProducts != nil || requestedListOfSKProductsError != nil) - } - - func startFreeTrialNow() { - guard freePlanIsAvailable == true else { return } - // We observe engine notifications informing us that the current api key of the owned identity has new elements. - // When this happens, we assume that the free trial has started. In that case, we can display an appropriate HUD and dismiss this view. We know that, in parallel, the owned identity view has been updated and displays the free trial key elements. - notificationsTokens.append(ObvEngineNotificationNew.observeNewAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(within: NotificationCenter.default, queue: OperationQueue.main) { [weak self] (ownedIdentity, apiKeyStatus, apiPermissions, apiKeyExpirationDate) in - guard self?.ownedCryptoId == ownedIdentity else { return } - guard apiKeyStatus == .freeTrial else { return } - self?.shownHUD = .checkmark - }) - shownHUD = .progress - userWantsToStartFreeTrialNow() - } - - func buySKProductNow(product: SKProduct) { - notificationsTokens.append(ObvEngineNotificationNew.observeNewAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(within: NotificationCenter.default, queue: OperationQueue.main) { [weak self] (ownedIdentity, apiKeyStatus, apiPermissions, apiKeyExpirationDate) in - guard self?.ownedCryptoId == ownedIdentity else { return } - guard apiKeyStatus == .valid else { return } - self?.shownHUD = .checkmark - }) - notificationsTokens.append(SubscriptionNotification.observeUserDecidedToCancelToTheSKProductPurchase(queue: OperationQueue.main) { [weak self] in - withAnimation { - self?.shownHUD = nil - self?.buttonsAreDisabled = false - } - }) - notificationsTokens.append(SubscriptionNotification.observeSkProductPurchaseFailed(queue: OperationQueue.main) { [weak self] (error) in - withAnimation { - self?.shownHUD = nil - self?.buttonsAreDisabled = false - self?.errorMessage = error.text - self?.showErrorMessage = true - } - }) - notificationsTokens.append(SubscriptionNotification.observeSkProductPurchaseWasDeferred(queue: OperationQueue.main) { [weak self] in - self?.shownHUD = nil - self?.buttonsAreDisabled = false - self?.errorMessage = Text("Your purchase must be approved before it can go through.") - self?.showErrorMessage = true - }) - shownHUD = .progress - userWantsToBuy(product) - } - - func restorePurchaseNow() { - notificationsTokens.append(SubscriptionNotification.observeThereWasNoAppStorePurchaseToRestore(queue: OperationQueue.main) { [weak self] in - self?.shownHUD = nil - self?.buttonsAreDisabled = false - self?.errorMessage = Text("We found no purchase to restore.") - self?.showErrorMessage = true - }) - notificationsTokens.append(ObvEngineNotificationNew.observeNewAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(within: NotificationCenter.default, queue: OperationQueue.main) { [weak self] (ownedIdentity, apiKeyStatus, apiPermissions, apiKeyExpirationDate) in - guard self?.ownedCryptoId == ownedIdentity else { return } - guard apiKeyStatus == .valid else { return } - self?.shownHUD = .checkmark - }) - notificationsTokens.append(SubscriptionNotification.observeAllPurchaseTransactionsSentToEngineWereProcessed(queue: OperationQueue.main) { [weak self] in - self?.shownHUD = nil - self?.buttonsAreDisabled = false - }) - shownHUD = .progress - userWantsToRestorePurchases() - } - - func startFetchingSubscriptionPlans() { - // Before calling the fetchSubscriptionPlanAction, we observe the engine notifications allowing to be notified whether there is a free trial or not - notificationsTokens.append(ObvEngineNotificationNew.observeFreeTrialIsStillAvailableForOwnedIdentity(within: NotificationCenter.default, queue: OperationQueue.main) { [weak self] (obvCryptoId) in - guard let _self = self else { return } - guard _self.ownedCryptoId == obvCryptoId else { return } - guard _self.freePlanIsAvailable == nil else { return } - withAnimation(.spring()) { - _self.freePlanIsAvailable = true - } - }) - notificationsTokens.append(ObvEngineNotificationNew.observeNoMoreFreeTrialAPIKeyAvailableForOwnedIdentity(within: NotificationCenter.default, queue: OperationQueue.main) { [weak self] (obvCryptoId) in - guard let _self = self else { return } - guard _self.ownedCryptoId == obvCryptoId else { return } - guard _self.freePlanIsAvailable == nil else { return } - withAnimation(.spring()) { - _self.freePlanIsAvailable = false - } - }) - notificationsTokens.append(SubscriptionNotification.observeNewListOfSKProducts(queue: OperationQueue.main) { [weak self] result in - guard let _self = self else { return } - switch result { - case .failure(let error): - withAnimation(.spring()) { - _self.requestedListOfSKProductsError = error - } - case .success(let skProducts): - for skProduct in skProducts { - os_log("Received skProduct with localizedTitle %{public}@", log: _self.log, type: .info, skProduct.localizedTitle) - } - withAnimation(.spring()) { - _self.skProducts = skProducts - } - } - }) - DispatchQueue(label: "Queue for fetching subscription plans").asyncAfter(deadline: .now() + .seconds(1)) { [weak self] in - self?.fetchSubscriptionPlanAction() - } - } - - func fallbackOnFreeVersionNow() { - // We observe engine notifications informing us that the current api key of the owned identity has new elements. - // When this happens, we assume that the free trial has started. In that case, we can display an appropriate HUD and dismiss this view. We know that, in parallel, the owned identity view has been updated and displays the free trial key elements. - notificationsTokens.append(ObvEngineNotificationNew.observeNewAPIKeyElementsForCurrentAPIKeyOfOwnedIdentity(within: NotificationCenter.default, queue: OperationQueue.main) { [weak self] (ownedIdentity, apiKeyStatus, apiPermissions, apiKeyExpirationDate) in - guard self?.ownedCryptoId == ownedIdentity else { return } - guard apiKeyStatus == .free else { return } - self?.shownHUD = .checkmark - }) - shownHUD = .progress - userWantsToFallbackOnFreeVersion() - } -} - - -struct AvailableSubscriptionPlansView: View { - - @ObservedObject var plans: AvailableSubscriptionPlans - let dismissAction: () -> Void - - private let priceFormatter: NumberFormatter = { - let formatter = NumberFormatter() - formatter.numberStyle = .currency - formatter.locale = Locale.current - return formatter - }() - - var body: some View { - NavigationView { - ZStack { - - Color(AppTheme.shared.colorScheme.systemBackground) - .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity) - .edgesIgnoringSafeArea(.all) - - ScrollView { - VStack(spacing: 0) { - if plans.canShowPlans { - if plans.freePlanIsAvailable == true { - SKProductCardView(title: Text("Free Trial"), - price: Text("Free"), - description: Text("Get access to premium features for free for one month. This free trial can be activated only once."), - buttonTitle: Text("Start free trial now"), - buttonSystemIcon: .handThumbsupFill, - buttonAction: plans.startFreeTrialNow, - buttonIsDisabled: $plans.buttonsAreDisabled) - .transition(AnyTransition.move(edge: .trailing)) - .padding(.bottom, 32) - } - if let skProducts = plans.skProducts { - ForEach(skProducts, id: \.self) { skProduct in - SKProductCardView(skProduct: skProduct, - buttonTitle: Text("Subscribe now"), - buttonSystemIcon: .cartFill, - buttonAction: { plans.buySKProductNow(product: skProduct) }, - buttonIsDisabled: $plans.buttonsAreDisabled) - .transition(AnyTransition.move(edge: .leading)) - .padding(.bottom, 32) - } - } else if let error = plans.requestedListOfSKProductsError { - SKProductErrorCardView(error: error) - .transition(AnyTransition.move(edge: .leading)) - .padding(.bottom, 32) - } - if ObvMessengerConstants.developmentMode { - OlvidButton(style: .standardWithBlueText, - title: Text("Fallback to free version"), - systemIcon: .giftcardFill, - action: { - plans.buttonsAreDisabled = true - plans.fallbackOnFreeVersionNow() - }) - .padding(.bottom, 16) - .disabled(plans.buttonsAreDisabled) - .transition(AnyTransition.move(edge: .bottom)) - } - OlvidButton(style: .standardWithBlueText, - title: Text("Manage your subscription"), - systemIcon: .link, - action: { - let url = ObvMessengerConstants.urlForManagingSubscriptionWithTheAppStore - UIApplication.shared.open(url, options: [:], completionHandler: nil) - }) - .padding(.bottom, 16) - .disabled(plans.buttonsAreDisabled) - .animation(Animation.default.delay(0.025)) - .transition(AnyTransition.move(edge: .bottom)) - OlvidButton(style: .standardWithBlueText, - title: Text("Manage payments"), - systemIcon: .creditcardFill, - action: { - let url = ObvMessengerConstants.urlForManagingPaymentsOnTheAppStore - UIApplication.shared.open(url, options: [:], completionHandler: nil) - }) - .padding(.bottom, 16) - .disabled(plans.buttonsAreDisabled) - .animation(Animation.default.delay(0.025)) - .transition(AnyTransition.move(edge: .bottom)) - OlvidButton(style: .standardWithBlueText, - title: Text("Restore Purchases"), - systemIcon: .arrowUturnForwardCircleFill, - action: { - plans.buttonsAreDisabled = true - plans.restorePurchaseNow() - }) - .disabled(plans.buttonsAreDisabled) - .animation(Animation.default.delay(0.05)) - .transition(AnyTransition.move(edge: .bottom)) - } else { - HStack { - Spacer() - if #available(iOS 14.0, *) { - ProgressView("Looking for available subscription plans") - } else { - ObvActivityIndicator(isAnimating: .constant(true), style: .large, color: nil) - } - Spacer() - }.padding(.top) - } - Spacer() - } - .padding(.horizontal) - .padding(.top, 32) - } - if let shownHUD = plans.shownHUD { - if shownHUD == .progress { - HUDView(category: .progress) - } else if shownHUD == .checkmark { - HUDView(category: .checkmark) - .onAppear(perform: { - DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(1)) { - dismissAction() - }}) - } - } - } - .alert(isPresented: $plans.showErrorMessage) { - Alert(title: Text("😧 Oups..."), message: plans.errorMessage, dismissButton: Alert.Button.default(Text("Ok"))) - } - .navigationBarTitle(Text("Available subscription plans"), displayMode: .inline) - .navigationBarItems(leading: Button(action: dismissAction, - label: { - Image(systemName: "xmark.circle.fill") - .font(Font.system(size: 24, weight: .semibold, design: .default)) - .foregroundColor(Color(AppTheme.shared.colorScheme.tertiaryLabel)) - })) - } - .navigationViewStyle(StackNavigationViewStyle()) - .onAppear(perform: { - plans.startFetchingSubscriptionPlans() - }) - } -} - - - -struct SKProductErrorCardView: View { - - let error: SubscriptionManager.RequestedListOfSKProductsError - - private var title: Text { - switch error { - case .userCannotMakePayments: - return Text("USER_CANNOT_MAKE_PAYMENT_TITLE") - } - } - - private var description: Text { - switch error { - case .userCannotMakePayments: - return Text("USER_CANNOT_MAKE_PAYMENT_DESCRIPTION") - } - } - - var body: some View { - ObvCardView { - VStack(spacing: 16.0) { - HStack(alignment: .firstTextBaseline) { - title - .fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/) - .font(.system(.headline, design: .rounded)) - Spacer() - Image(systemIcon: .xmarkOctagonFill) - .font(.system(.title, design: .rounded)) - .foregroundColor(.red) - } - HStack { - description - .font(.body) - .lineLimit(nil) - .multilineTextAlignment(.leading) - .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) - Spacer() - }.fixedSize(horizontal: false, vertical: true) - OlvidButton(style: .standardWithBlueText, - title: Text("Manage payments"), - systemIcon: .creditcardFill, - action: { - let url = ObvMessengerConstants.urlForManagingPaymentsOnTheAppStore - UIApplication.shared.open(url, options: [:], completionHandler: nil) - }) - .padding(.bottom, 16) - } - } - } - -} - - -struct SKProductCardView: View { - - let title: Text - let price: Text - let description: Text - let buttonTitle: Text - let buttonSystemIcon: SystemIcon? - let buttonAction: () -> Void - @Binding var buttonIsDisabled: Bool - - init(title: Text, price: Text, description: Text, buttonTitle: Text, buttonSystemIcon: SystemIcon?, buttonAction: @escaping () -> Void, buttonIsDisabled: Binding) { - self.title = title - self.price = price - self.description = description - self.buttonTitle = buttonTitle - self.buttonSystemIcon = buttonSystemIcon - self.buttonAction = buttonAction - self._buttonIsDisabled = buttonIsDisabled - } - - init(skProduct: SKProduct, buttonTitle: Text, buttonSystemIcon: SystemIcon?, buttonAction: @escaping () -> Void, buttonIsDisabled: Binding) { - let price: Text - if let subscriptionPeriod = skProduct.subscriptionPeriod { - price = Text("\(skProduct.localizedPrice)/\(subscriptionPeriod.unit.localizedDescription)") - } else { - assertionFailure() - price = Text("\(skProduct.localizedPrice)") - } - let subscription = AvailableSubscription(productIdentifier: skProduct.productIdentifier) - assert(subscription != nil) - self.init(title: Text(subscription?.localizedTitle ?? skProduct.localizedTitle), - price: price, - description: Text(subscription?.localizedDescription ?? skProduct.localizedDescription), - buttonTitle: buttonTitle, - buttonSystemIcon: buttonSystemIcon, - buttonAction: buttonAction, - buttonIsDisabled: buttonIsDisabled) - } - - var body: some View { - ObvCardView { - VStack(spacing: 16.0) { - HStack(alignment: .firstTextBaseline) { - title - .fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/) - .font(.system(.headline, design: .rounded)) - Spacer() - price - .fontWeight(.bold) - .font(.system(.title, design: .rounded)) - } - HStack { - description - .font(.body) - .lineLimit(nil) - .multilineTextAlignment(.leading) - .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) - Spacer() - }.fixedSize(horizontal: false, vertical: true) - FeatureListView(title: NSLocalizedString("Premium features", comment: ""), - features: SubscriptionStatusView.premiumFeatures, - available: true) - OlvidButton(style: .blue, - title: buttonTitle, - systemIcon: buttonSystemIcon, - action: { - buttonIsDisabled = true - buttonAction() - }) - .disabled(buttonIsDisabled) - } - } - } - -} - - - -extension SKProduct { - - var localizedPrice: String { - let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "SKProduct") - os_log("💰 Price locale is %{public}@", log: log, type: .info, priceLocale.description) - let formatter = NumberFormatter() - formatter.numberStyle = .currency - formatter.locale = priceLocale - return formatter.string(from: price)! - } - -} - - - -fileprivate extension SKError { - - - var text: Text { - let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "SKProduct") - os_log("💰 SKError code is %d", log: log, type: .error, self.code.rawValue) - switch self.code { - case .clientInvalid: return Text("Sorry, it seems you are not allowed to issue the request 😢.") - case .paymentCancelled: return Text("Ok, the payment was successfully cancelled.") - case .paymentNotAllowed: return Text("Sorry, it seems you are not allowed to make the payment 😢.") - case .storeProductNotAvailable: return Text("Sorry, the product is not available in your store 😢.") - case .cloudServicePermissionDenied: return Text("The purchase failed because you did not allowed access to cloud service information 😢.") - case .cloudServiceNetworkConnectionFailed: return Text("Sorry, the purchase failed because we could not connect to the nework 😢. Please try again later.") - case .privacyAcknowledgementRequired: return Text("Sorry, the purchase failed because you still need to acknowledge Apple's privacy policy 😢.") - default: return Text("Sorry, the purchase failed 😢. Please try again later or contact us if this problem is recurring.") - } - } - -} - - - - - - - -struct AvailableSubscriptionPlansView_Previews: PreviewProvider { - - private static let identityAsURL = URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")! - private static let testOwnedCryptoId = ObvURLIdentity(urlRepresentation: identityAsURL)!.cryptoId - - static var previews: some View { - Group { - AvailableSubscriptionPlansView(plans: AvailableSubscriptionPlans(ownedCryptoId: testOwnedCryptoId, fetchSubscriptionPlanAction: {}, userWantsToStartFreeTrialNow: {}, userWantsToFallbackOnFreeVersion: {}, userWantsToBuy: { _ in }, userWantsToRestorePurchases: {}), dismissAction: {}) - AvailableSubscriptionPlansView(plans: AvailableSubscriptionPlans(ownedCryptoId: testOwnedCryptoId, freePlanIsAvailable: true, skProducts: []), dismissAction: {}) - AvailableSubscriptionPlansView(plans: AvailableSubscriptionPlans(ownedCryptoId: testOwnedCryptoId, freePlanIsAvailable: true, skProducts: []), dismissAction: {}) - SKProductErrorCardView(error: .userCannotMakePayments) - } - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ChooseDeviceToReactivate/ChooseDeviceToReactivateHostingViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ChooseDeviceToReactivate/ChooseDeviceToReactivateHostingViewController.swift new file mode 100644 index 00000000..9eaec9c2 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ChooseDeviceToReactivate/ChooseDeviceToReactivateHostingViewController.swift @@ -0,0 +1,169 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import UIKit +import SwiftUI +import ObvTypes +import ObvEngine + + +protocol ChooseDeviceToReactivateHostingViewControllerDelegate: AnyObject { + func userWantsToDismissChooseDeviceToReactivateHostingViewController() async +} + + +final class ChooseDeviceToReactivateHostingViewController: UIHostingController>, ChooseDeviceToReactivateViewActionsDelegate { + + let obvEngine: ObvEngine + let model: ChooseDeviceToReactivateViewModel + weak var delegate: ChooseDeviceToReactivateHostingViewControllerDelegate? + + init(model: ChooseDeviceToReactivateViewModel, obvEngine: ObvEngine, delegate: ChooseDeviceToReactivateHostingViewControllerDelegate) { + self.obvEngine = obvEngine + self.model = model + self.delegate = delegate + let actions = ChooseDeviceToReactivateViewActions() + let rootView = ChooseDeviceToReactivateView(model: model, actions: actions) + super.init(rootView: rootView) + actions.delegate = self + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + // MARK: ChooseDeviceToReactivateViewActionsDelegate + + + func theReactivationProgressViewDidAppear(ownedCryptoId: ObvCryptoId) async { + do { + let ownedDeviceDiscoveryResult = try await obvEngine.performOwnedDeviceDiscoveryNow(ownedCryptoId: ownedCryptoId) + model.updateStatusWith(ownedDeviceDiscoveryResult: ownedDeviceDiscoveryResult) + } catch { + assertionFailure() + model.updateStatusAsServerQueryFailed() + } + + } + + + @MainActor + func userWantsToCancelReactivationOfCurrentDevice() async { + await delegate?.userWantsToDismissChooseDeviceToReactivateHostingViewController() + } + + + @MainActor + func userWantsToActivateCurrentDevice(ownedCryptoId: ObvCryptoId, currentDeviceIdentifier: Data, deviceIdentifierOfOtherDeviceToDeactivate: Data?) async { + showHUD(type: .spinner) + do { + try await ObvPushNotificationManager.shared.userRequestedReactivationOf(ownedCryptoId: ownedCryptoId, replacedDeviceIdentifier: deviceIdentifierOfOtherDeviceToDeactivate) + showHUD(type: .checkmark) + await suspendDuringTimeInterval(1.5) + hideHUD() + await delegate?.userWantsToDismissChooseDeviceToReactivateHostingViewController() + } catch { + showHUD(type: .xmark) + await suspendDuringTimeInterval(1.5) + hideHUD() + } + } + +} + + + +// MARK: - ChooseDeviceToReactivateViewModel + +final class ChooseDeviceToReactivateViewModel: ObservableObject, ChooseDeviceToReactivateViewModelProtocol { + + struct Device: DeviceCardViewModelProtocol { + let deviceIdentifier: Data + let deviceName: String + let expirationDate: Date? + let latestRegistrationDate: Date? + } + + let ownedCryptoId: ObvCryptoId + let currentDeviceName: String + let currentDeviceIdentifier: Data + @Published var status: ChooseDeviceToReactivateViewStatus + + init(ownedCryptoId: ObvCryptoId, currentDeviceName: String, currentDeviceIdentifier: Data) { + self.ownedCryptoId = ownedCryptoId + self.currentDeviceName = currentDeviceName + self.currentDeviceIdentifier = currentDeviceIdentifier + self.status = .queryingServer + } + + + fileprivate func updateStatusWith(ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult) { + + let devicesFromServer = ownedDeviceDiscoveryResult.devices.map { + Device(deviceIdentifier: $0.identifier, deviceName: $0.name ?? String($0.identifier.hexString().prefix(4)), expirationDate: $0.expirationDate, latestRegistrationDate: $0.latestRegistrationDate) + } + + let serverAnswerReceivedStatus: ChooseDeviceToReactivateViewStatus.ServerAnswerReceivedStatus + if ownedDeviceDiscoveryResult.devices.isEmpty { + serverAnswerReceivedStatus = .noActiveDeviceFoundOnServer + } else if ownedDeviceDiscoveryResult.isMultidevice { + serverAnswerReceivedStatus = .multideviceFeatureAvailable(devicesFromServer: devicesFromServer) + } else if ownedDeviceDiscoveryResult.devices.allSatisfy({ $0.expirationDate != nil }) { + serverAnswerReceivedStatus = .multideviceFeatureUnavailableAndAllActiveDevicesExpire(devicesFromServer: devicesFromServer) + } else { + serverAnswerReceivedStatus = .multideviceFeatureUnavailableAndAtLeastOneNonExpiringActiveDeviceFound(devicesFromServer: devicesFromServer) + } + + withAnimation { + self.status = .serverAnswerReceived(status: serverAnswerReceivedStatus) + } + + } + + + fileprivate func updateStatusAsServerQueryFailed() { + withAnimation { + self.status = .serverQueryFailed + } + } + +} + + + + + +fileprivate final class ChooseDeviceToReactivateViewActions: ChooseDeviceToReactivateViewActionsDelegate { + + var delegate: ChooseDeviceToReactivateViewActionsDelegate? + + func theReactivationProgressViewDidAppear(ownedCryptoId: ObvCryptoId) async { + await delegate?.theReactivationProgressViewDidAppear(ownedCryptoId: ownedCryptoId) + } + + func userWantsToCancelReactivationOfCurrentDevice() async { + await delegate?.userWantsToCancelReactivationOfCurrentDevice() + } + + func userWantsToActivateCurrentDevice(ownedCryptoId: ObvTypes.ObvCryptoId, currentDeviceIdentifier: Data, deviceIdentifierOfOtherDeviceToDeactivate: Data?) async { + await delegate?.userWantsToActivateCurrentDevice(ownedCryptoId: ownedCryptoId, currentDeviceIdentifier: currentDeviceIdentifier, deviceIdentifierOfOtherDeviceToDeactivate: deviceIdentifierOfOtherDeviceToDeactivate) + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ChooseDeviceToReactivate/ChooseDeviceToReactivateView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ChooseDeviceToReactivate/ChooseDeviceToReactivateView.swift new file mode 100644 index 00000000..9fddc820 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ChooseDeviceToReactivate/ChooseDeviceToReactivateView.swift @@ -0,0 +1,597 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI +import ObvTypes +import ObvEngine + + +protocol ChooseDeviceToReactivateViewModelProtocol: ObservableObject { + + associatedtype DeviceCardViewModel: DeviceCardViewModelProtocol + + var ownedCryptoId: ObvCryptoId { get } + var currentDeviceName: String { get } + var currentDeviceIdentifier: Data { get } + var status: ChooseDeviceToReactivateViewStatus { get } + +} + + +protocol ChooseDeviceToReactivateViewActionsDelegate: ReactivationProgressViewActionsDelegate { + func theReactivationProgressViewDidAppear(ownedCryptoId: ObvCryptoId) async + func userWantsToActivateCurrentDevice(ownedCryptoId: ObvCryptoId, currentDeviceIdentifier: Data, deviceIdentifierOfOtherDeviceToDeactivate: Data?) async +} + + +enum ChooseDeviceToReactivateViewStatus { + + case queryingServer + case serverAnswerReceived(status: ServerAnswerReceivedStatus) + case serverQueryFailed + + enum ServerAnswerReceivedStatus { + case noActiveDeviceFoundOnServer // ok + case multideviceFeatureAvailable(devicesFromServer: [Model]) // ok + case multideviceFeatureUnavailableAndAtLeastOneNonExpiringActiveDeviceFound(devicesFromServer: [Model]) // ok + case multideviceFeatureUnavailableAndAllActiveDevicesExpire(devicesFromServer: [Model]) + } + +} + + +// MARK: - ChooseDeviceToReactivateView + +struct ChooseDeviceToReactivateView: View { + + @ObservedObject var model: Model + let actions: ChooseDeviceToReactivateViewActionsDelegate? + + @State private var onAppearActionPerformed = false + @State private var deviceIdentifierOfSelectedDeviceToDeactivate: Data? + @State private var shouldDisableButtons = false + + private func theReactivationProgressViewDidAppear() { + guard !onAppearActionPerformed else { return } + onAppearActionPerformed = true + let ownedCryptoId = model.ownedCryptoId + Task { + await actions?.theReactivationProgressViewDidAppear(ownedCryptoId: ownedCryptoId) + } + } + + private var aDeviceIsCurrentlySelected: Bool { + deviceIdentifierOfSelectedDeviceToDeactivate != nil + } + + private func userWantsToActivateThisDevice() { + Task { + shouldDisableButtons = true + await actions?.userWantsToActivateCurrentDevice( + ownedCryptoId: model.ownedCryptoId, + currentDeviceIdentifier: model.currentDeviceIdentifier, + deviceIdentifierOfOtherDeviceToDeactivate: deviceIdentifierOfSelectedDeviceToDeactivate) + shouldDisableButtons = false + } + } + + + private func userWantsToCancel() { + Task { + await actions?.userWantsToCancelReactivationOfCurrentDevice() + } + } + + + var body: some View { + + switch model.status { + + case .queryingServer: + + ReactivationProgressView( + nameOfCurrentDevice: model.currentDeviceName, + actions: actions) + .padding() + .onAppear(perform: theReactivationProgressViewDidAppear) + + case .serverQueryFailed: + + ScrollView { + VStack { + + TitleView(title: "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_FAILED_TITLE") + .padding(.bottom) + + ExplanationView(text: "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_FAILED_BODY") + .padding(.bottom) + + Group { + OlvidButton( + style: .red, + title: Text("ACTIVATE_THIS_DEVICE"), + action: userWantsToActivateThisDevice) + OlvidButton( + style: .blue, + title: Text("MAYBE_LATER"), + action: userWantsToCancel) + }.disabled(shouldDisableButtons) + + }.padding() + } + + case .serverAnswerReceived(status: let serverAnswerReceivedStatus): + + ScrollView { + VStack { + + switch serverAnswerReceivedStatus { + + case .noActiveDeviceFoundOnServer: + + TitleView(title: "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_NO_ACTIVE_DEVICE_FOUND_TITLE") + .padding(.bottom) + + ExplanationView(text: "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_NO_ACTIVE_DEVICE_FOUND_BODY") + .padding(.bottom) + + Group { + OlvidButton( + style: .blue, + title: Text("ACTIVATE_THIS_DEVICE"), + action: userWantsToActivateThisDevice) + OlvidButton( + style: .standardWithBlueText, + title: Text("MAYBE_LATER"), + action: userWantsToCancel) + }.disabled(shouldDisableButtons) + + case .multideviceFeatureAvailable(let devicesFromServer): + + TitleView(title: "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_MULTIDEVICE_AVAILABLE_TITLE") + .padding(.bottom) + + ExplanationView(text: "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_MULTIDEVICE_AVAILABLE_BODY") + .padding(.bottom) + + Group { + OlvidButton( + style: .blue, + title: Text("ACTIVATE_THIS_DEVICE"), + action: userWantsToActivateThisDevice) + OlvidButton( + style: .standardWithBlueText, + title: Text("MAYBE_LATER"), + action: userWantsToCancel) + }.disabled(shouldDisableButtons) + + if !devicesFromServer.isEmpty { + + HStack { + Text(String.localizedStringWithFormat(NSLocalizedString("YOUR_OTHER_DEVICES", comment: ""), devicesFromServer.count)) + .font(.headline) + Spacer() + }.padding(.top, 32) + + ForEach(devicesFromServer, id: \.deviceIdentifier) { deviceFromServer in + DeviceCardView(model: deviceFromServer) + } + + } + + case .multideviceFeatureUnavailableAndAllActiveDevicesExpire(let devicesFromServer): + + TitleView(title: "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_NO_MULTIDEVICE_ALL_DEVICES_EXPIRE_TITLE") + .padding(.bottom) + + ExplanationViewAlt(text: String.localizedStringWithFormat(NSLocalizedString("OWNED_DEVICE_DISCOVERY_SERVER_QUERY_NO_MULTIDEVICE_N_DEVICES_EXPIRE_BODY", comment: ""), devicesFromServer.count)) + .padding(.bottom) + + Group { + OlvidButton( + style: .blue, + title: Text("ACTIVATE_THIS_DEVICE"), + action: userWantsToActivateThisDevice) + OlvidButton( + style: .standardWithBlueText, + title: Text("MAYBE_LATER"), + action: userWantsToCancel) + }.disabled(shouldDisableButtons) + + HStack { + Text(String.localizedStringWithFormat(NSLocalizedString("YOUR_OTHER_DEVICES", comment: ""), devicesFromServer.count)) + .font(.headline) + Spacer() + }.padding(.top, 32) + + ForEach(devicesFromServer, id: \.deviceIdentifier) { deviceFromServer in + DeviceCardView(model: deviceFromServer) + } + + + case .multideviceFeatureUnavailableAndAtLeastOneNonExpiringActiveDeviceFound(let devicesFromServer): + + TitleView(title: "OWNED_DEVICE_DISCOVERY_SERVER_QUERY_NO_MULTIDEVICE_AT_LEAST_ONE_NON_EXPIRING_DEVICE_TITLE") + .padding(.bottom) + + ExplanationViewAlt(text: String.localizedStringWithFormat(NSLocalizedString("OWNED_DEVICE_DISCOVERY_SERVER_QUERY_NO_MULTIDEVICE_AT_LEAST_ONE_NON_EXPIRING_DEVICE_BODY", comment: ""), devicesFromServer.count)) + .padding(.bottom) + + ForEach(devicesFromServer, id: \.deviceIdentifier) { deviceFromServer in + SelectableDeviceCardView(model: deviceFromServer, deviceIdentifierOfSelectedDevice: $deviceIdentifierOfSelectedDeviceToDeactivate) + } + + Group { + OlvidButton( + style: .blue, + title: Text("DEACTIVATE_SELECTED_DEVICE_AND_ACTIVATE_THIS_ONE"), + action: userWantsToActivateThisDevice) + .disabled(!aDeviceIsCurrentlySelected) + OlvidButton( + style: .standardWithBlueText, + title: Text("MAYBE_LATER"), + action: userWantsToCancel) + }.disabled(shouldDisableButtons) + + } + + }.padding() + } + + } + + } + +} + + +fileprivate struct TitleView: View { + + let title: LocalizedStringKey + + var body: some View { + HStack { + Text(title) + .font(.title) + Spacer() + } + } + +} + + +fileprivate struct ExplanationView: View { + + let text: LocalizedStringKey + + var body: some View { + ObvCardView { + HStack { + Text(text) + Spacer() + } + } + } + +} + + +fileprivate struct ExplanationViewAlt: View { + + let text: String + + var body: some View { + ObvCardView { + HStack { + Text(text) + Spacer() + } + } + } + +} + + +protocol DeviceCardViewModelProtocol { + + var deviceIdentifier: Data { get } + var deviceName: String { get } + var expirationDate: Date? { get } + var latestRegistrationDate: Date? { get } + +} + + +fileprivate struct DeviceCardView: View { + + let model: Model + + var body: some View { + + ObvCardView { + HStack { + VStack(alignment: .leading, spacing: 4) { + Text(verbatim: model.deviceName) + .font(.headline) + if let expirationDate = model.expirationDate { + Text("DEVICE_DEACTIVATED_\(expirationDate.relativeFormatted)") + } else { + Text("DEVICE_WONT_BE_DEACTIVATED") + } + } + Spacer() + } + } + + } + +} + + +fileprivate struct SelectableDeviceCardView: View { + + let model: Model + @Binding var deviceIdentifierOfSelectedDevice: Data? + + private var thisDeviceIsSelected: Bool { + model.deviceIdentifier == deviceIdentifierOfSelectedDevice + } + + var body: some View { + + ObvCardView { + HStack(alignment: .center, spacing: 16) { + Image(systemIcon: thisDeviceIsSelected ? .checkmarkCircleFill : .circle) + .foregroundColor(thisDeviceIsSelected ? Color(.systemRed) : .secondary) + VStack(alignment: .leading) { + HStack { + Text(verbatim: model.deviceName) + .font(.headline) + Spacer() + } + if let latestRegistrationDate = model.latestRegistrationDate { + Text("DEVICE_LAST_ONLINE_\(latestRegistrationDate.relativeFormatted)") + .foregroundColor(.secondary) + } + } + } + + + } + .contentShape(Rectangle()) // This makes it possible to have an "on tap" gesture that also works when the Spacer is tapped + .onTapGesture { + withAnimation { + if deviceIdentifierOfSelectedDevice == model.deviceIdentifier { + deviceIdentifierOfSelectedDevice = nil + } else { + deviceIdentifierOfSelectedDevice = model.deviceIdentifier + } + } + } + + } + +} + + +protocol ReactivationProgressViewActionsDelegate { + func userWantsToCancelReactivationOfCurrentDevice() async +} + + +fileprivate struct ReactivationProgressView: View { + + let nameOfCurrentDevice: String + let actions: ReactivationProgressViewActionsDelegate? + + private func userWantsToCancelReactivationOfCurrentDevice() { + Task { + await actions?.userWantsToCancelReactivationOfCurrentDevice() + } + } + + var body: some View { + + VStack { + Spacer() + Text("PLEASE_WAIT_WHILE_WE_CHECK_WHETHER_YOUR_DEVICE_\(nameOfCurrentDevice)_CAN_BE_REACTIVATED") + .multilineTextAlignment(.center) + .font(.body) + .foregroundColor(.primary) + ProgressView() + Spacer() + OlvidButton(style: .blue, title: Text("Cancel"), action: userWantsToCancelReactivationOfCurrentDevice) + } + + } + +} + + + +// MARK: - Previews + +struct ChooseDeviceToReactivateView_Previews: PreviewProvider { + + final class DeviceCardViewModelForPreviews: DeviceCardViewModelProtocol { + + let deviceIdentifier: Data + let deviceName: String + let expirationDate: Date? + let latestRegistrationDate: Date? + + init(deviceIdentifier: Data, deviceName: String, expirationDate: Date?, latestRegistrationDate: Date?) { + self.deviceIdentifier = deviceIdentifier + self.deviceName = deviceName + self.expirationDate = expirationDate + self.latestRegistrationDate = latestRegistrationDate + } + + } + + private static let identityAsURL: URL = URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")! + + private static let ownedCryptoId = ObvURLIdentity(urlRepresentation: identityAsURL)!.cryptoId + + + final class ChooseDeviceToReactivateViewModelForPreviews: ChooseDeviceToReactivateViewModelProtocol { + + let ownedCryptoId: ObvCryptoId + let currentDeviceName: String + let currentDeviceIdentifier: Data + let status: ChooseDeviceToReactivateViewStatus + + init(ownedCryptoId: ObvCryptoId, currentDeviceName: String, currentDeviceIdentifier: Data, status: ChooseDeviceToReactivateViewStatus) { + self.ownedCryptoId = ownedCryptoId + self.currentDeviceName = currentDeviceName + self.currentDeviceIdentifier = currentDeviceIdentifier + self.status = status + } + + } + + + private static let devices: [DeviceCardViewModelForPreviews] = { + [ + .init(deviceIdentifier: Data(repeating: 0, count: 16), + deviceName: "iPhone 14", + expirationDate: Date(timeIntervalSinceNow: 2_000), + latestRegistrationDate: Date(timeIntervalSinceNow: -300)), + .init(deviceIdentifier: Data(repeating: 1, count: 16), + deviceName: "iPad Pro", + expirationDate: Date(timeIntervalSinceNow: 3_000), + latestRegistrationDate: Date(timeIntervalSinceNow: -400)), + .init(deviceIdentifier: Data(repeating: 2, count: 16), + deviceName: "iPod", + expirationDate: nil, + latestRegistrationDate: Date(timeIntervalSinceNow: -500)), + ] + }() + + + private static let models: [ChooseDeviceToReactivateViewModelForPreviews] = { + [ + .init(ownedCryptoId: ownedCryptoId, + currentDeviceName: devices[0].deviceName, + currentDeviceIdentifier: devices[0].deviceIdentifier, + status: .queryingServer), + .init(ownedCryptoId: ownedCryptoId, + currentDeviceName: devices[0].deviceName, + currentDeviceIdentifier: devices[0].deviceIdentifier, + status: .serverQueryFailed), + .init(ownedCryptoId: ownedCryptoId, + currentDeviceName: devices[0].deviceName, + currentDeviceIdentifier: devices[0].deviceIdentifier, + status: .serverAnswerReceived(status: .noActiveDeviceFoundOnServer)), + .init(ownedCryptoId: ownedCryptoId, + currentDeviceName: devices[0].deviceName, + currentDeviceIdentifier: devices[0].deviceIdentifier, + status: .serverAnswerReceived( + status: .multideviceFeatureUnavailableAndAtLeastOneNonExpiringActiveDeviceFound(devicesFromServer: [devices[1]]) + )), + .init(ownedCryptoId: ownedCryptoId, + currentDeviceName: devices[0].deviceName, + currentDeviceIdentifier: devices[0].deviceIdentifier, + status: .serverAnswerReceived( + status: .multideviceFeatureUnavailableAndAtLeastOneNonExpiringActiveDeviceFound(devicesFromServer: [devices[0], devices[1]]) + )), + ] + }() + + + private struct ChooseDeviceToReactivateViewActionsForPreviews: ChooseDeviceToReactivateViewActionsDelegate { + func userWantsToActivateCurrentDevice(ownedCryptoId: ObvTypes.ObvCryptoId, currentDeviceIdentifier: Data, deviceIdentifierOfOtherDeviceToDeactivate: Data?) async {} + func theReactivationProgressViewDidAppear(ownedCryptoId: ObvCryptoId) async {} + func userWantsToCancelReactivationOfCurrentDevice() async {} + } + + private static let actions = ChooseDeviceToReactivateViewActionsForPreviews() + + static var previews: some View { + Group { + + ChooseDeviceToReactivateView(model: models[0], actions: actions) + .previewDisplayName("Querying server") + + ChooseDeviceToReactivateView(model: models[1], actions: actions) + .previewDisplayName("Server query failed") + + ChooseDeviceToReactivateView(model: models[2], actions: actions) + .previewDisplayName("No active device found on server") + + ChooseDeviceToReactivateView( + model: ChooseDeviceToReactivateViewModelForPreviews( + ownedCryptoId: ownedCryptoId, + currentDeviceName: devices[0].deviceName, + currentDeviceIdentifier: devices[0].deviceIdentifier, + status: .serverAnswerReceived( + status: .multideviceFeatureAvailable(devicesFromServer: []) + )), + actions: actions) + .previewDisplayName("Multidevice available (no other device)") + + ChooseDeviceToReactivateView( + model: ChooseDeviceToReactivateViewModelForPreviews( + ownedCryptoId: ownedCryptoId, + currentDeviceName: devices[0].deviceName, + currentDeviceIdentifier: devices[0].deviceIdentifier, + status: .serverAnswerReceived( + status: .multideviceFeatureAvailable(devicesFromServer: [devices[2]]) + )), + actions: actions) + .previewDisplayName("Multidevice available (one other non-expiring device)") + + ChooseDeviceToReactivateView( + model: ChooseDeviceToReactivateViewModelForPreviews( + ownedCryptoId: ownedCryptoId, + currentDeviceName: devices[0].deviceName, + currentDeviceIdentifier: devices[0].deviceIdentifier, + status: .serverAnswerReceived( + status: .multideviceFeatureUnavailableAndAllActiveDevicesExpire(devicesFromServer: [devices[0]]) + )), + actions: actions) + .previewDisplayName("No multidevice but the other active device expires") + + ChooseDeviceToReactivateView( + model: ChooseDeviceToReactivateViewModelForPreviews( + ownedCryptoId: ownedCryptoId, + currentDeviceName: devices[0].deviceName, + currentDeviceIdentifier: devices[0].deviceIdentifier, + status: .serverAnswerReceived( + status: .multideviceFeatureUnavailableAndAllActiveDevicesExpire(devicesFromServer: [devices[0], devices[1]]) + )), + actions: actions) + .previewDisplayName("No multidevice but both other active devices expire") + + ChooseDeviceToReactivateView( + model: ChooseDeviceToReactivateViewModelForPreviews( + ownedCryptoId: ownedCryptoId, + currentDeviceName: devices[0].deviceName, + currentDeviceIdentifier: devices[0].deviceIdentifier, + status: .serverAnswerReceived( + status: .multideviceFeatureUnavailableAndAtLeastOneNonExpiringActiveDeviceFound(devicesFromServer: [devices[2]]) + )), + actions: actions) + .previewDisplayName("No multidevice and the other device does not expire") + + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/EditSingleOwnedIdentityNavigationView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/EditSingleOwnedIdentityNavigationView.swift index 97acf34d..45165de8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/EditSingleOwnedIdentityNavigationView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/EditSingleOwnedIdentityNavigationView.swift @@ -20,6 +20,7 @@ import ObvUI import SwiftUI import ObvTypes +import ObvDesignSystem struct EditSingleOwnedIdentityNavigationView: View { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/EditSingleOwnedIdentityView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/EditSingleOwnedIdentityView.swift index e34a1e65..95b69ebd 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/EditSingleOwnedIdentityView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/EditSingleOwnedIdentityView.swift @@ -20,6 +20,8 @@ import ObvUI import SwiftUI import ObvTypes +import ObvUICoreData +import ObvDesignSystem struct EditSingleOwnedIdentityView: View { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/IdentityHeaderView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/IdentityHeaderView.swift index 44fb6113..b8679a14 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/IdentityHeaderView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/IdentityHeaderView.swift @@ -18,18 +18,7 @@ */ import SwiftUI - - -struct OwnedIdentityHeaderView: View { - - @ObservedObject var singleIdentity: SingleIdentity - - var body: some View { - IdentityCardContentView(model: singleIdentity, - displayMode: .header) - } - -} +import ObvUICoreData struct ContactIdentityHeaderView: View { @@ -50,16 +39,6 @@ struct ContactIdentityHeaderView: View { struct IdentityHeaderView_Previews: PreviewProvider { - static let ownedIdentity = SingleIdentity( - firstName: "Steve", - lastName: "Job", - position: "CEO", - company: "Apple", - isKeycloakManaged: false, - showGreenShield: false, - showRedShield: false, - identityColors: nil, - photoURL: nil) static let contactIdentity = SingleContactIdentity( firstName: "Steve", lastName: "Job", @@ -68,13 +47,13 @@ struct IdentityHeaderView_Previews: PreviewProvider { customDisplayName: nil, publishedContactDetails: nil, contactStatus: .noNewPublishedDetails, + atLeastOneDeviceAllowsThisContactToReceiveMessages: true, contactHasNoDevice: false, contactIsOneToOne: true, isActive: true) static var previews: some View { Group { - OwnedIdentityHeaderView(singleIdentity: ownedIdentity) ContactIdentityHeaderView(singleIdentity: contactIdentity, editionMode: .none) ContactIdentityHeaderView(singleIdentity: contactIdentity, editionMode: .custom(icon: .pencil(), action: { })) } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/OwnedDeviceView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/OwnedDeviceView.swift new file mode 100644 index 00000000..b5fe9907 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/OwnedDeviceView.swift @@ -0,0 +1,414 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvUI +import ObvUICoreData +import UI_SystemIcon +import ObvTypes +import ObvEngine + + +// MARK: - OwnedDeviceViewModel + +protocol OwnedDeviceViewModelProtocol: ObservableObject { + + var ownedCryptoId: ObvCryptoId { get throws } + var deviceIdentifier: Data { get } + var name: String { get } + var secureChannelStatus: PersistedObvOwnedDevice.SecureChannelStatus? { get } + var expirationDate: Date? { get } + var latestRegistrationDate: Date? { get } + var ownedIdentityIsActive: Bool { get } + +} + + +// MARK: - OwnedDeviceViewActionsDelegate + +protocol OwnedDeviceViewActionsDelegate { + + func userWantsToRestartChannelCreationWithOtherOwnedDevice(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data) async + func userWantsToRenameOwnedDevice(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data) async + func userWantsToDeactivateOtherOwnedDevice(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data) async + func userWantsToKeepThisDeviceActive(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data) async + +} + + +// MARK: - OwnedDeviceView + +struct OwnedDeviceView: View { + + @ObservedObject var ownedDevice: Model + let actions: OwnedDeviceViewActionsDelegate + + + private var textForSecureChannelStatus: LocalizedStringKey { + switch ownedDevice.secureChannelStatus { + case .currentDevice: + return "CURRENT_DEVICE" + case .creationInProgress, .none: + return "SECURE_CHANNEL_CREATION_IN_PROGRESS" + case .created: + return "SECURE_CHANNEL_CREATED" + } + } + + + private func userWantsToRestartChannelCreationWithThisOwnedDevice() { + guard let ownedCryptoId = try? ownedDevice.ownedCryptoId else { assertionFailure(); return } + guard ownedDevice.secureChannelStatus != .currentDevice else { assertionFailure(); return } + let deviceIdentifier = ownedDevice.deviceIdentifier + Task { + await actions.userWantsToRestartChannelCreationWithOtherOwnedDevice(ownedCryptoId: ownedCryptoId, deviceIdentifier: deviceIdentifier) + } + } + + + private func userWantsToRenameThisDevice() { + guard let ownedCryptoId = try? ownedDevice.ownedCryptoId else { assertionFailure(); return } + let deviceIdentifier = ownedDevice.deviceIdentifier + Task { + await actions.userWantsToRenameOwnedDevice(ownedCryptoId: ownedCryptoId, deviceIdentifier: deviceIdentifier) + } + } + + + private func userWantsToDeactivateOtherOwnedDevice() { + guard let ownedCryptoId = try? ownedDevice.ownedCryptoId else { assertionFailure(); return } + let deviceIdentifier = ownedDevice.deviceIdentifier + Task { + await actions.userWantsToDeactivateOtherOwnedDevice(ownedCryptoId: ownedCryptoId, deviceIdentifier: deviceIdentifier) + } + } + + + private func userWantsToKeepThisDeviceActive() { + guard let ownedCryptoId = try? ownedDevice.ownedCryptoId else { assertionFailure(); return } + let deviceIdentifier = ownedDevice.deviceIdentifier + Task { + await actions.userWantsToKeepThisDeviceActive(ownedCryptoId: ownedCryptoId, deviceIdentifier: deviceIdentifier) + } + } + + + private var systemIconForSecureChannelStatus: SystemIcon { + switch ownedDevice.secureChannelStatus { + case .currentDevice: + switch UIDevice.current.userInterfaceIdiom { + case .pad: + return .ipadLandscape + case .mac: + return .laptopcomputer + default: + return .iphone + } + case .creationInProgress, .none: + return .arrowTriangle2CirclepathCircle + case .created: + return .checkmarkShield + } + } + + + private var colorForSecureChannelStatus: Color { + switch ownedDevice.secureChannelStatus { + case .creationInProgress, .none, .currentDevice: + return .primary + case .created: + return .green + } + } + + @Environment(\.sizeCategory) var sizeCategory + + private var heuristicIconSize: CGFloat { + switch sizeCategory { + case .accessibilityExtraLarge, .accessibilityExtraExtraLarge, .accessibilityExtraExtraExtraLarge: + return 70 + case .accessibilityMedium, .accessibilityLarge: + return 50 + default: + return 35 + } + } + + + private var isCurrentDevice: Bool { + switch ownedDevice.secureChannelStatus { + case .currentDevice: + return true + case .creationInProgress, .created, .none: + return false + } + } + + + var body: some View { + VStack(alignment: .leading) { + + // Title + + HStack(alignment: .firstTextBaseline) { + Text(verbatim: ownedDevice.name) + .font(.headline) + .foregroundColor(.primary) + .lineLimit(nil) + if isCurrentDevice { + Text("CURRENT_DEVICE_LOWERCAES_WITH_PARENTHESES") + .font(.footnote) + .foregroundColor(.secondary) + } + Spacer() + Text(verbatim: String("(\(ownedDevice.deviceIdentifier.hexString().prefix(4)))")) + .font(.footnote) + .foregroundColor(.secondary) + }.padding(.bottom, 4.0) + + Group { + + // Button for renaming this device + + Button(action: userWantsToRenameThisDevice) { + InternalLabel("RENAME_DEVICE", systemIcon: .rectangleAndPencilAndEllipsis, systemIconIconWidth: heuristicIconSize, systemIconColor: Color(UIColor.systemBlue), labelColor: Color(UIColor.systemBlue)) + } + .padding(.bottom, 4.0) + + // Last online date + + if let latestRegistrationDate = ownedDevice.latestRegistrationDate, ownedDevice.secureChannelStatus != .currentDevice { + InternalLabel("DEVICE_LAST_ONLINE_\(latestRegistrationDate.relativeFormatted)", systemIcon: .eyes, systemIconIconWidth: heuristicIconSize, systemIconColor: Color(UIColor.systemGreen)) + .padding(.bottom, 4.0) + } + + } + + Divider() + .padding(.leading, heuristicIconSize + 8) + .padding(.vertical, 4.0) + + // Deactivation informations and actions + + Group { + + // Deactivation date + + Group { + if !ownedDevice.ownedIdentityIsActive { + InternalLabel("DEVICE_DEACTIVATED", systemIcon: .poweroff, systemIconIconWidth: heuristicIconSize, systemIconColor: Color(UIColor.systemRed)) + } else if let expirationDate = ownedDevice.expirationDate { + InternalLabel("DEVICE_DEACTIVATED_\(expirationDate.relativeFormatted)", systemIcon: .poweroff, systemIconIconWidth: heuristicIconSize, systemIconColor: Color(UIColor.systemRed)) + } else { + InternalLabel("DEVICE_WONT_BE_DEACTIVATED", systemIcon: .poweroff, systemIconIconWidth: heuristicIconSize, systemIconColor: Color(UIColor.systemGreen)) + } + }.padding(.bottom, 4.0) + + + // Button for keeping the device active + + if ownedDevice.expirationDate != nil && ownedDevice.ownedIdentityIsActive { + Button(action: userWantsToKeepThisDeviceActive) { + InternalLabel("KEEP_THIS_DEVICE_ACTIVE", systemIcon: .poweroff, systemIconIconWidth: heuristicIconSize, systemIconColor: Color(UIColor.systemGreen), labelColor: Color(UIColor.systemBlue)) + .padding(.bottom, 4.0) + } + } + + // Button for deactivating this device + + switch ownedDevice.secureChannelStatus { + case .currentDevice: + EmptyView() + case .created, .creationInProgress, .none: + Button(action: userWantsToDeactivateOtherOwnedDevice) { + InternalLabel("REMOVE_OWNED_DEVICE", systemIcon: .poweroff, systemIconIconWidth: heuristicIconSize, systemIconColor: Color(UIColor.systemRed), labelColor: Color(UIColor.systemRed)) + } + .padding(.bottom, 4.0) + } + + } + + // Secure channel informations and actions (for other owned devices) + + switch ownedDevice.secureChannelStatus { + case .currentDevice: + EmptyView() + case .created, .creationInProgress, .none: + + Group { + + Divider() + .padding(.leading, heuristicIconSize + 8) + .padding(.vertical, 4.0) + + // Secure channel status (for other owned devices) + + InternalLabel(textForSecureChannelStatus, systemIcon: systemIconForSecureChannelStatus, systemIconIconWidth: heuristicIconSize, systemIconColor: colorForSecureChannelStatus) + .padding(.bottom, 4.0) + + // Button for reacreating channel + + switch ownedDevice.secureChannelStatus { + case .currentDevice: + EmptyView() + case .created, .creationInProgress, .none: + Button(action: userWantsToRestartChannelCreationWithThisOwnedDevice) { + InternalLabel("RECREATE_SECURE_CHANNEL_WITH_THIS_DEVICE", systemIcon: .restartCircle, systemIconIconWidth: heuristicIconSize, systemIconColor: Color(UIColor.systemBlue), labelColor: Color(UIColor.systemBlue)) + } + .padding(.bottom, 4.0) + } + + } + + } + + } + } + +} + + +// MARK: - InternalLabel + +fileprivate struct InternalLabel: View { + + let localizedStringKey: LocalizedStringKey + let systemIcon: SystemIcon + let systemIconIconWidth: CGFloat + let systemIconColor: Color + let labelColor: Color + + init(_ localizedStringKey: LocalizedStringKey, systemIcon: SystemIcon, systemIconIconWidth: CGFloat, systemIconColor: Color = .primary, labelColor: Color = .primary) { + self.localizedStringKey = localizedStringKey + self.systemIcon = systemIcon + self.systemIconIconWidth = systemIconIconWidth + self.systemIconColor = systemIconColor + self.labelColor = labelColor + } + + var body: some View { + Label { + Text(localizedStringKey) + .foregroundColor(labelColor) + } icon: { + HStack(alignment: .firstTextBaseline) { + Spacer() + Image(systemIcon: systemIcon) + .foregroundColor(systemIconColor) + Spacer() + } + .frame(width: systemIconIconWidth) + } + } +} + + + + + + + + + + +// MARK: - Previews + +struct OwnedDeviceView_Previews: PreviewProvider { + + private class OwnedDeviceViewModelForPreviews: OwnedDeviceViewModelProtocol { + + let ownedCryptoId: ObvCryptoId + let deviceIdentifier: Data + let name: String + let secureChannelStatus: PersistedObvOwnedDevice.SecureChannelStatus? + let expirationDate: Date? + let latestRegistrationDate: Date? + let ownedIdentityIsActive: Bool + + init(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data, name: String, secureChannelStatus: PersistedObvOwnedDevice.SecureChannelStatus?, expirationDate: Date?, latestRegistrationDate: Date?, ownedIdentityIsActive: Bool) { + self.ownedCryptoId = ownedCryptoId + self.deviceIdentifier = deviceIdentifier + self.name = name + self.secureChannelStatus = secureChannelStatus + self.expirationDate = expirationDate + self.latestRegistrationDate = latestRegistrationDate + self.ownedIdentityIsActive = ownedIdentityIsActive + } + + } + + private struct OwnedDeviceViewActions: OwnedDeviceViewActionsDelegate { + func userWantsToKeepThisDeviceActive(ownedCryptoId: ObvTypes.ObvCryptoId, deviceIdentifier: Data) async {} + func userWantsToRestartChannelCreationWithOtherOwnedDevice(ownedCryptoId: ObvTypes.ObvCryptoId, deviceIdentifier: Data) async {} + func userWantsToRenameOwnedDevice(ownedCryptoId: ObvTypes.ObvCryptoId, deviceIdentifier: Data) async {} + func userWantsToDeactivateOtherOwnedDevice(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data) async {} + } + + private static let identitiesAsURLs: [URL] = [ + URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")!, + URL(string: "https://invitation.olvid.io/#AwAAAHAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAAVZx8aqikpCe4h3ayCwgKBf-2nDwz-a6vxUo3-ep5azkBUjimUf3J--GXI8WTc2NIysQbw5fxmsY9TpjnDsZMW-AAAAAACEJvYiBXb3Jr")!, + ] + + private static let ownedCryptoIds = identitiesAsURLs.map({ ObvURLIdentity(urlRepresentation: $0)!.cryptoId }) + + static var previews: some View { + Group { + + OwnedDeviceView( + ownedDevice: OwnedDeviceViewModelForPreviews( + ownedCryptoId: ownedCryptoIds[0], + deviceIdentifier: Data(repeating: 0, count: 16), + name: "iPhone 14", + secureChannelStatus: .currentDevice, + expirationDate: nil, + latestRegistrationDate: nil, + ownedIdentityIsActive: true), + actions: OwnedDeviceViewActions()) + .previewLayout(.sizeThatFits) + .padding() + + OwnedDeviceView( + ownedDevice: OwnedDeviceViewModelForPreviews( + ownedCryptoId: ownedCryptoIds[1], + deviceIdentifier: Data(repeating: 1, count: 16), + name: "iPad pro", + secureChannelStatus: .created, + expirationDate: Date(timeIntervalSinceNow: 1_000), + latestRegistrationDate: Date(timeIntervalSinceNow: -500), + ownedIdentityIsActive: true), + actions: OwnedDeviceViewActions()) + .previewLayout(.sizeThatFits) + .padding() + + OwnedDeviceView( + ownedDevice: OwnedDeviceViewModelForPreviews( + ownedCryptoId: ownedCryptoIds[0], + deviceIdentifier: Data(repeating: 0, count: 16), + name: "iPhone 14", + secureChannelStatus: .currentDevice, + expirationDate: nil, + latestRegistrationDate: nil, + ownedIdentityIsActive: false), + actions: OwnedDeviceViewActions()) + .previewLayout(.sizeThatFits) + .padding() + + } + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/OwnedDevicesListView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/OwnedDevicesListView.swift new file mode 100644 index 00000000..99f17cbf --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/OwnedDevicesListView.swift @@ -0,0 +1,202 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvUI +import ObvUICoreData +import UI_SystemIcon +import ObvTypes +import ObvEngine + + +// MARK: - OwnedDevicesListViewModelProtocol + +protocol OwnedDevicesListViewModelProtocol: ObservableObject { + + associatedtype OwnedDeviceViewModel: OwnedDeviceViewModelProtocol + + var ownedCryptoId: ObvCryptoId { get } + var ownedDevices: [OwnedDeviceViewModel] { get } + +} + + +// MARK: - OwnedDevicesListViewActionsDelegate + +protocol OwnedDevicesListViewActionsDelegate: OwnedDeviceViewActionsDelegate { + + func userWantsToSearchForNewOwnedDevices(ownedCryptoId: ObvCryptoId) async + func userWantsToClearAllOtherOwnedDevices(ownedCryptoId: ObvCryptoId) async + +} + + +// MARK: - OwnedDevicesListView + +struct OwnedDevicesListView: View { + + @ObservedObject var model: Model + let actions: OwnedDevicesListViewActionsDelegate + + @State private var alertKind = AlertKind.clearAllDevices + @State private var isAlertPresented = false + + private enum AlertKind { + case clearAllDevices + } + + private func userWantsToSearchForNewOwnedDevices() { + Task { await actions.userWantsToSearchForNewOwnedDevices(ownedCryptoId: model.ownedCryptoId) } + } + + private func userWantsToClearAllOtherOwnedDevicesAndHasConfirmed() { + Task { await actions.userWantsToClearAllOtherOwnedDevices(ownedCryptoId: model.ownedCryptoId) } + } + + private func userWantsToClearAllOtherOwnedDevicesAndMustConfirm() { + alertKind = .clearAllDevices + withAnimation { + isAlertPresented = true + } + } + + var body: some View { + ScrollView { + VStack { + ForEach(model.ownedDevices, id: \.deviceIdentifier) { ownedDevice in + ObvCardView { + OwnedDeviceView( + ownedDevice: ownedDevice, + actions: actions) + }.padding(.bottom) + } + OlvidButton( + style: .standard, + title: Text("SEARCH_FOR_NEW_DEVICES"), + systemIcon: .magnifyingglass, + action: userWantsToSearchForNewOwnedDevices) + OlvidButton( + style: .red, + title: Text("CLEAR_ALL_DEVICES"), + systemIcon: .trash, + action: userWantsToClearAllOtherOwnedDevicesAndMustConfirm) + Spacer() + }.padding() + } + .alert(isPresented: $isAlertPresented) { + switch self.alertKind { + case .clearAllDevices: + return Alert(title: Text("CLEAR_ALL_OTHER_OWNED_DEVICES_ALERT_TITLE"), + message: Text("CLEAR_ALL_OTHER_OWNED_DEVICES_ALERT_MESSAGE"), + primaryButton: Alert.Button.destructive(Text("Yes"), action: userWantsToClearAllOtherOwnedDevicesAndHasConfirmed), + secondaryButton: Alert.Button.cancel()) + } + } + } + +} + + +// MARK: - Previews + + +struct OwnedDevicesListView_Previews: PreviewProvider { + + private class OwnedDeviceViewModelForPreviews: OwnedDeviceViewModelProtocol { + + let ownedCryptoId: ObvCryptoId + let deviceIdentifier: Data + let name: String + let secureChannelStatus: PersistedObvOwnedDevice.SecureChannelStatus? + let expirationDate: Date? + let latestRegistrationDate: Date? + let ownedIdentityIsActive: Bool + + init(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data, name: String, secureChannelStatus: PersistedObvOwnedDevice.SecureChannelStatus?, expirationDate: Date?, latestRegistrationDate: Date?, ownedIdentityIsActive: Bool) { + self.ownedCryptoId = ownedCryptoId + self.deviceIdentifier = deviceIdentifier + self.name = name + self.secureChannelStatus = secureChannelStatus + self.expirationDate = expirationDate + self.latestRegistrationDate = latestRegistrationDate + self.ownedIdentityIsActive = ownedIdentityIsActive + } + + } + + private class OwnedDevicesListViewModelForPreviews: OwnedDevicesListViewModelProtocol { + let ownedCryptoId: ObvCryptoId + let ownedDevices: [OwnedDeviceViewModelForPreviews] + + init(ownedCryptoId: ObvCryptoId, ownedDevices: [OwnedDeviceViewModelForPreviews]) { + self.ownedCryptoId = ownedCryptoId + self.ownedDevices = ownedDevices + } + } + + + private struct OwnedDevicesListViewActions: OwnedDevicesListViewActionsDelegate { + func userWantsToKeepThisDeviceActive(ownedCryptoId: ObvTypes.ObvCryptoId, deviceIdentifier: Data) async {} + func userWantsToSearchForNewOwnedDevices(ownedCryptoId: ObvTypes.ObvCryptoId) async {} + func userWantsToClearAllOtherOwnedDevices(ownedCryptoId: ObvTypes.ObvCryptoId) async {} + func userWantsToRestartChannelCreationWithOtherOwnedDevice(ownedCryptoId: ObvTypes.ObvCryptoId, deviceIdentifier: Data) async {} + func userWantsToRenameOwnedDevice(ownedCryptoId: ObvTypes.ObvCryptoId, deviceIdentifier: Data) async {} + func userWantsToDeactivateOtherOwnedDevice(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data) async {} + } + + + private static let identitiesAsURLs: [URL] = [ + URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")!, + URL(string: "https://invitation.olvid.io/#AwAAAHAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAAVZx8aqikpCe4h3ayCwgKBf-2nDwz-a6vxUo3-ep5azkBUjimUf3J--GXI8WTc2NIysQbw5fxmsY9TpjnDsZMW-AAAAAACEJvYiBXb3Jr")!, + ] + + private static let ownedCryptoIds = identitiesAsURLs.map({ ObvURLIdentity(urlRepresentation: $0)!.cryptoId }) + + private static let ownedDevices: [OwnedDeviceViewModelForPreviews] = { + let ownedCryptoId = ownedCryptoIds[0] + return [ + OwnedDeviceViewModelForPreviews( + ownedCryptoId: ownedCryptoId, + deviceIdentifier: Data(repeating: 0, count: 16), + name: "iPhone 14", + secureChannelStatus: .currentDevice, + expirationDate: nil, + latestRegistrationDate: nil, + ownedIdentityIsActive: true), + OwnedDeviceViewModelForPreviews( + ownedCryptoId: ownedCryptoId, + deviceIdentifier: Data(repeating: 1, count: 16), + name: "iPad pro", + secureChannelStatus: .created, + expirationDate: Date(timeIntervalSinceNow: 1_000), + latestRegistrationDate: Date(timeIntervalSinceNow: -500), + ownedIdentityIsActive: true), + ] + }() + + static var previews: some View { + Group { + OwnedDevicesListView( + model: OwnedDevicesListViewModelForPreviews( + ownedCryptoId: ownedCryptoIds[0], + ownedDevices: ownedDevices), + actions: OwnedDevicesListViewActions()) + } + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/ViewModelsForCoreDataEntities/PersistedObvOwnedDevice+OwnedDeviceViewModelProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/ViewModelsForCoreDataEntities/PersistedObvOwnedDevice+OwnedDeviceViewModelProtocol.swift new file mode 100644 index 00000000..8ce6b2df --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/ViewModelsForCoreDataEntities/PersistedObvOwnedDevice+OwnedDeviceViewModelProtocol.swift @@ -0,0 +1,34 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import ObvUICoreData +import ObvTypes + + +extension PersistedObvOwnedDevice: OwnedDeviceViewModelProtocol { + + var deviceIdentifier: Data { + self.identifier + } + + var ownedIdentityIsActive: Bool { + ownedIdentity?.isActive ?? false + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/ViewModelsForCoreDataEntities/PersistedObvOwnedIdentity+OwnedDevicesListViewModelProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/ViewModelsForCoreDataEntities/PersistedObvOwnedIdentity+OwnedDevicesListViewModelProtocol.swift new file mode 100644 index 00000000..45ac655b --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/ListOfOwnedDevices/ViewModelsForCoreDataEntities/PersistedObvOwnedIdentity+OwnedDevicesListViewModelProtocol.swift @@ -0,0 +1,34 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import ObvUICoreData +import ObvTypes + + +extension PersistedObvOwnedIdentity: OwnedDevicesListViewModelProtocol { + + var ownedCryptoId: ObvTypes.ObvCryptoId { + self.cryptoId + } + + var ownedDevices: [ObvUICoreData.PersistedObvOwnedDevice] { + self.sortedDevices + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/OwnedIdentityDetailedInfosView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/OwnedIdentityDetailedInfosView.swift index 4b5d5b18..503e1e71 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/OwnedIdentityDetailedInfosView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/OwnedIdentityDetailedInfosView.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -16,16 +16,17 @@ * You should have received a copy of the GNU Affero General Public License * along with Olvid. If not, see . */ - import SwiftUI import ObvTypes import ObvUI import ObvUICoreData +import ObvDesignSystem protocol OwnedIdentityDetailedInfosViewDelegate: AnyObject { func userWantsToDismissOwnedIdentityDetailedInfosView() async + func getKeycloakAPIKey(ownedCryptoId: ObvCryptoId) async throws -> UUID? } @@ -34,6 +35,7 @@ struct OwnedIdentityDetailedInfosView: View { @ObservedObject var ownedIdentity: PersistedObvOwnedIdentity weak var delegate: OwnedIdentityDetailedInfosViewDelegate? @State private var signedContactDetails: SignedObvKeycloakUserDetails? = nil + @State private var ownedIdentityKeycloakApiKey: UUID? private var titlePart1: String? { ownedIdentity.identityCoreDetails.firstName?.trimmingCharacters(in: .whitespacesAndNewlines) @@ -43,13 +45,13 @@ struct OwnedIdentityDetailedInfosView: View { ownedIdentity.identityCoreDetails.lastName?.trimmingCharacters(in: .whitespacesAndNewlines) } - private var circledTextView: Text? { + private var circledText: String? { let component = [titlePart1, titlePart2] .compactMap({ $0?.trimmingCharacters(in: .whitespacesAndNewlines) }) .filter({ !$0.isEmpty }) .first if let char = component?.first { - return Text(String(char)) + return String(char) } else { return nil } @@ -60,6 +62,38 @@ struct OwnedIdentityDetailedInfosView: View { return UIImage(contentsOfFile: url.path) } + private var textViewModel: TextView.Model { + .init(titlePart1: titlePart1, + titlePart2: titlePart2, + subtitle: ownedIdentity.identityCoreDetails.position, + subsubtitle: ownedIdentity.identityCoreDetails.company) + } + + private var profilePictureViewModelContent: ProfilePictureView.Model.Content { + .init(text: circledText, + icon: .person, + profilePicture: profilePicture, + showGreenShield: ownedIdentity.isKeycloakManaged, + showRedShield: false) + } + + private var circleAndTitlesViewModelContent: CircleAndTitlesView.Model.Content { + .init(textViewModel: textViewModel, + profilePictureViewModelContent: profilePictureViewModelContent) + } + + private var initialCircleViewModelColors: InitialCircleView.Model.Colors { + .init(background: ownedIdentity.cryptoId.colors.background, + foreground: ownedIdentity.cryptoId.colors.text) + } + + private var circleAndTitlesViewModel: CircleAndTitlesView.Model { + .init(content: circleAndTitlesViewModelContent, + colors: initialCircleViewModelColors, + displayMode: .normal, + editionMode: .none) + } + var body: some View { ZStack { Color(AppTheme.shared.colorScheme.systemBackground) @@ -70,21 +104,8 @@ struct OwnedIdentityDetailedInfosView: View { ObvCardView(padding: 0) { VStack(alignment: .leading, spacing: 0) { - - CircleAndTitlesView( - titlePart1: titlePart1, - titlePart2: titlePart2, - subtitle: ownedIdentity.identityCoreDetails.position, - subsubtitle: ownedIdentity.identityCoreDetails.company, - circleBackgroundColor: ownedIdentity.cryptoId.colors.background, - circleTextColor: ownedIdentity.cryptoId.colors.text, - circledTextView: circledTextView, - systemImage: .person, - profilePicture: profilePicture, - showGreenShield: ownedIdentity.isKeycloakManaged, - showRedShield: false, - editionMode: .none, - displayMode: .normal) + + CircleAndTitlesView(model: circleAndTitlesViewModel) .padding() OlvidButton(style: .blue, title: Text(CommonString.Word.Back), systemIcon: .arrowshapeTurnUpBackwardFill) { @@ -148,6 +169,16 @@ struct OwnedIdentityDetailedInfosView: View { Text("CAPABILITIES") } + if !ownedIdentity.devices.isEmpty { + Section { + ForEach(ownedIdentity.sortedDevices) { ownedDevice in + OwnedDeviceInfosView(ownedDevice: ownedDevice) + } + } header: { + Text("Devices") + } + } + if ownedIdentity.isKeycloakManaged { Section { if let signedContactDetails = signedContactDetails { @@ -160,10 +191,13 @@ struct OwnedIdentityDetailedInfosView: View { } else { HStack { Spacer() - ObvProgressView() + ProgressView() Spacer() } } + ObvSimpleListItemView( + title: Text("API Key"), + value: ownedIdentityKeycloakApiKey?.uuidString ?? CommonString.Word.None) } header: { Text("DETAILS_SIGNED_BY_IDENTITY_PROVIDER") } @@ -185,8 +219,30 @@ struct OwnedIdentityDetailedInfosView: View { } }) .postOnDispatchQueue() + let ownedCryptoId = ownedIdentity.ownedCryptoId + Task { + self.ownedIdentityKeycloakApiKey = try? await self.delegate?.getKeycloakAPIKey(ownedCryptoId: ownedCryptoId) + } } } } + + +private struct OwnedDeviceInfosView: View { + + let ownedDevice: PersistedObvOwnedDevice + + private var title: String { + return ownedDevice.name + } + + var body: some View { + ObvSimpleListItemView( + title: Text(title), + value: ownedDevice.identifier.hexString()) + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/PermuteDeviceExpiration/PermuteDeviceExpirationHostingViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/PermuteDeviceExpiration/PermuteDeviceExpirationHostingViewController.swift new file mode 100644 index 00000000..7bffca8e --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/PermuteDeviceExpiration/PermuteDeviceExpirationHostingViewController.swift @@ -0,0 +1,55 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import UIKit +import ObvTypes +import SwiftUI + + +protocol PermuteDeviceExpirationHostingViewControllerDelegate: PermuteDeviceExpirationViewActionsDelegate {} + + + +final class PermuteDeviceExpirationHostingViewController: UIHostingController> { + + init(model: PermuteDeviceExpirationViewModel, delegate: PermuteDeviceExpirationHostingViewControllerDelegate) { + let rootView = PermuteDeviceExpirationView(model: model, actions: delegate) + super.init(rootView: rootView) + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} + + + + + +struct PermuteDeviceExpirationViewModel: PermuteDeviceExpirationViewModelProtocol { + + let ownedCryptoId: ObvCryptoId + let identifierOfDeviceToKeepActive: Data + let nameOfDeviceToKeepActive: String + let identifierOfDeviceWithoutExpiration: Data + let nameOfDeviceWithoutExpiration: String + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/PermuteDeviceExpiration/PermuteDeviceExpirationView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/PermuteDeviceExpiration/PermuteDeviceExpirationView.swift new file mode 100644 index 00000000..bf24c4d2 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/PermuteDeviceExpiration/PermuteDeviceExpirationView.swift @@ -0,0 +1,156 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI +import ObvTypes +import ObvEngine + + +protocol PermuteDeviceExpirationViewModelProtocol { + + var ownedCryptoId: ObvCryptoId { get } + var identifierOfDeviceToKeepActive: Data { get } + var nameOfDeviceToKeepActive: String { get } + var identifierOfDeviceWithoutExpiration: Data { get } + var nameOfDeviceWithoutExpiration: String { get } + +} + + +// MARK: - PermuteDeviceExpirationViewActionsDelegate + +protocol PermuteDeviceExpirationViewActionsDelegate { + + func userWantsToCancelAndDismissPermuteDeviceExpirationView() async + func userWantsToSeeSubscriptionPlansFromPermuteDeviceExpirationView() async + func userConfirmedFromPermuteDeviceExpirationView(ownedCryptoId: ObvCryptoId, identifierOfDeviceToKeepActive: Data, identifierOfDeviceWithoutExpiration: Data) async + +} + + +struct PermuteDeviceExpirationView: View { + + let model: Model + let actions: PermuteDeviceExpirationViewActionsDelegate + + private func userWantsToCancel() { + Task { + await actions.userWantsToCancelAndDismissPermuteDeviceExpirationView() + } + } + + private func userWantsToSeeSubscriptionPlans() { + Task { + await actions.userWantsToSeeSubscriptionPlansFromPermuteDeviceExpirationView() + } + } + + private func userConfirmed() { + let ownedCryptoId = model.ownedCryptoId + let identifierOfDeviceToKeepActive = model.identifierOfDeviceToKeepActive + let identifierOfDeviceWithoutExpiration = model.identifierOfDeviceWithoutExpiration + Task { + await actions.userConfirmedFromPermuteDeviceExpirationView( + ownedCryptoId: ownedCryptoId, + identifierOfDeviceToKeepActive: identifierOfDeviceToKeepActive, + identifierOfDeviceWithoutExpiration: identifierOfDeviceWithoutExpiration) + } + } + + var body: some View { + ScrollView { + VStack { + + // Title + + Text("PERMUTE_DEVICE_EXPIRATION_CONFIRMATION_ALERT_TITLE") + .font(.headline) + .foregroundColor(.primary) + .multilineTextAlignment(.center) + .lineLimit(nil) + .padding(.top, 32) + + // Explanation + + ObvCardView { + HStack { + Text("KEEP_DEVICE_\(model.nameOfDeviceToKeepActive)_ACTIVE_AND_ACCEPT_TO_DEACTIVATE_DEVICE_\(model.nameOfDeviceWithoutExpiration)") + .font(.body) + .foregroundColor(.primary) + .multilineTextAlignment(.leading) + .lineLimit(nil) + Spacer() + } + } + .padding(.vertical, 32) + + // Buttons + + OlvidButton(style: .blue, title: Text("DEACTIVATE_\(model.nameOfDeviceWithoutExpiration)_AND_ACTIVATE_\(model.nameOfDeviceToKeepActive)"), systemIcon: .arrow2Squarepath, action: userConfirmed) + + OlvidButton(style: .blue, title: Text("See subscription plans"), systemIcon: .flameFill, action: userWantsToSeeSubscriptionPlans) + + OlvidButton(style: .standardWithBlueText, title: Text("Cancel"), action: userWantsToCancel) + + Spacer() + + }.padding() + } + } + +} + + +// MARK: - Previews + +struct PermuteDeviceExpirationView_Previews: PreviewProvider { + + private struct PermuteDeviceExpirationViewModelForPreviews: PermuteDeviceExpirationViewModelProtocol { + let ownedCryptoId: ObvCryptoId + let identifierOfDeviceToKeepActive: Data + let nameOfDeviceToKeepActive: String + let identifierOfDeviceWithoutExpiration: Data + let nameOfDeviceWithoutExpiration: String + } + + private struct PermuteDeviceExpirationViewActionsDelegateForPreviews: PermuteDeviceExpirationViewActionsDelegate { + func userWantsToCancelAndDismissPermuteDeviceExpirationView() async {} + func userWantsToSeeSubscriptionPlansFromPermuteDeviceExpirationView() async {} + func userConfirmedFromPermuteDeviceExpirationView(ownedCryptoId: ObvTypes.ObvCryptoId, identifierOfDeviceToKeepActive: Data, identifierOfDeviceWithoutExpiration: Data) async {} + } + + private static let identityAsURL: URL = URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")! + + private static let ownedCryptoId = ObvURLIdentity(urlRepresentation: identityAsURL)!.cryptoId + + static var previews: some View { + Group { + PermuteDeviceExpirationView( + model: PermuteDeviceExpirationViewModelForPreviews( + ownedCryptoId: ownedCryptoId, + identifierOfDeviceToKeepActive: Data(repeating: 0, count: 16), + nameOfDeviceToKeepActive: "iPhone 14", + identifierOfDeviceWithoutExpiration: Data(repeating: 1, count: 16), + nameOfDeviceWithoutExpiration: "iPad Pro"), + actions: PermuteDeviceExpirationViewActionsDelegateForPreviews()) + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/SingleOwnedIdentityFlowViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/SingleOwnedIdentityFlowViewController.swift index ad4fcca2..308801fa 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/SingleOwnedIdentityFlowViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/SingleOwnedIdentityFlowViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -27,21 +27,34 @@ import CoreData import ObvUICoreData -protocol SingleOwnedIdentityFlowViewControllerDelegate: AnyObject { +protocol SingleOwnedIdentityFlowViewControllerDelegate: AnyObject, StoreKitDelegate { func userWantsToDismissSingleOwnedIdentityFlowViewController(_ viewController: SingleOwnedIdentityFlowViewController) + func userWantsToAddNewDevice(_ viewController: SingleOwnedIdentityFlowViewController, ownedCryptoId: ObvCryptoId) async } -final class SingleOwnedIdentityFlowViewController: UIHostingController, SingleOwnedIdentityViewModelDelegate, HiddenProfilePasswordChooserViewControllerDelegate, OwnedIdentityDetailedInfosViewDelegate { +enum StoreKitDelegatePurchaseResult { + case purchaseSucceeded(serverVerificationResult: ObvAppStoreReceipt.VerificationStatus) + case userCancelled + case pending +} + +protocol StoreKitDelegate: AnyObject { + func userRequestedListOfSKProducts() async throws -> [Product] + func userWantsToBuy(_ product: Product) async throws -> StoreKitDelegatePurchaseResult + func userWantsToRestorePurchases() async throws +} + +final class SingleOwnedIdentityFlowViewController: UIHostingController, HiddenProfilePasswordChooserViewControllerDelegate, OwnedIdentityDetailedInfosViewDelegate, SingleOwnedIdentityViewActionsDelegate, OwnedDevicesListViewActionsDelegate, PermuteDeviceExpirationHostingViewControllerDelegate, ChooseDeviceToReactivateHostingViewControllerDelegate { + let ownedIdentity: PersistedObvOwnedIdentity let ownedCryptoId: ObvCryptoId let obvEngine: ObvEngine weak var delegate: SingleOwnedIdentityFlowViewControllerDelegate? private var editedOwnedIdentity: SingleIdentity? - private var availableSubscriptionPlans: AvailableSubscriptionPlans? private var apiKeyStatusAndExpiry: APIKeyStatusAndExpiry - private let model: SingleOwnedIdentityViewModel + private let actions: SingleOwnedIdentityViewActions private var rightBarButtonItem: UIBarButtonItem? private var legacyConfigureNavigationBarAndObserveNotificationsNeedsToBeCalled = true @@ -49,7 +62,7 @@ final class SingleOwnedIdentityFlowViewController: UIHostingController UUID? { + return try await obvEngine.getKeycloakAPIKey(ownedCryptoId: ownedCryptoId) + } + +} + + +// MARK: - OwnedDevicesListViewActionsDelegate + +extension SingleOwnedIdentityFlowViewController { + func userWantsToSearchForNewOwnedDevices(ownedCryptoId: ObvTypes.ObvCryptoId) async { + Task { + do { + try await obvEngine.performOwnedDeviceDiscovery(ownedCryptoId: ownedCryptoId) + } catch { + assertionFailure(error.localizedDescription) + } + DispatchQueue.main.async { [weak self] in + self?.navigationController?.topViewController?.showHUD(type: .checkmark) + DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(2)) { [weak self] in + self?.navigationController?.topViewController?.hideHUD() + } + } + } + } - // MARK: - SingleOwnedIdentityViewModelDelegate + func userWantsToClearAllOtherOwnedDevices(ownedCryptoId: ObvTypes.ObvCryptoId) async { + // No need to require a confirmation, this confirmation was required in the SwiftUI OwnedDevicesListView. + Task { + do { + try await obvEngine.deleteAllOtherOwnedDevicesAndChannelsThenPerformOwnedDeviceDiscovery(ownedCryptoId: ownedCryptoId) + } catch { + assertionFailure(error.localizedDescription) + } + } + } + func userWantsToRestartChannelCreationWithOtherOwnedDevice(ownedCryptoId: ObvTypes.ObvCryptoId, deviceIdentifier: Data) async { + do { + try await obvEngine.restartChannelEstablishmentProtocolsWithOwnedDevice(ownedCryptoId: ownedCryptoId, deviceIdentifier: deviceIdentifier) + } catch { + assertionFailure(error.localizedDescription) + } + } + @MainActor - func dismiss() async { - delegate?.userWantsToDismissSingleOwnedIdentityFlowViewController(self) + func userWantsToRenameOwnedDevice(ownedCryptoId: ObvTypes.ObvCryptoId, deviceIdentifier: Data) async { + guard ownedIdentity.cryptoId == ownedCryptoId else { assertionFailure(); return } + guard let ownedDevice = ownedIdentity.devices.first(where: { $0.identifier == deviceIdentifier }) else { assertionFailure(); return } + let obvEngine = self.obvEngine + let alert = UIAlertController(title: NSLocalizedString("CHOOSE_DEVICE_NAME", comment: ""), message: nil, preferredStyle: .alert) + alert.addTextField { (textField) in + textField.text = ownedDevice.name + } + alert.addAction(.init(title: CommonString.Word.Cancel, style: .cancel)) + alert.addAction(.init(title: CommonString.Word.Ok, style: .default) { [weak alert] _ in + guard let ownedDeviceName = alert?.textFields?.first?.text else { assertionFailure(); return } + Task { + try? await obvEngine.requestChangeOfOwnedDeviceName(ownedCryptoId: ownedCryptoId, deviceIdentifier: deviceIdentifier, ownedDeviceName: ownedDeviceName) + } + }) + present(alert, animated: true) + } + + + @MainActor + internal func userWantsToDeactivateOtherOwnedDevice(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data) async { + let obvEngine = self.obvEngine + let alert = UIAlertController(title: NSLocalizedString("REMOVE_OWNED_DEVICE_ALERT_TITLE", comment: ""), message: nil, preferredStyle: .alert) + alert.addAction(.init(title: CommonString.Word.Cancel, style: .cancel)) + alert.addAction(.init(title: CommonString.Word.Deactivate, style: .destructive) { _ in + Task { + try? await obvEngine.requestDeactivationOfOtherOwnedDevice(ownedCryptoId: ownedCryptoId, deviceIdentifier: deviceIdentifier) + } + }) + present(alert, animated: true) + } + + + @MainActor + func userWantsToKeepThisDeviceActive(ownedCryptoId: ObvCryptoId, deviceIdentifier: Data) async { + guard ownedCryptoId == ownedIdentity.cryptoId else { assertionFailure(); return } + guard ownedIdentity.isActive else { assertionFailure(); return } + + // If the device is not active, this request makes no sense. + + guard ownedIdentity.isActive else { assertionFailure(); return } + + // If the device requested has no expiry, this request makes no sense. + + guard let deviceToKeepActive = ownedIdentity.devices.first(where: { $0.identifier == deviceIdentifier }) else { assertionFailure(); return } + guard deviceToKeepActive.expirationDate != nil else { assertionFailure(); return } + + // We have two cases to consider: either the owned identity is allowed to have multiple devices, or not. + + if ownedIdentity.effectiveAPIPermissions.contains(.multidevice) { + + // Since the owned identity is allowed to have multiple devices, keeping this device active will have no impact on other devices. + // Therefore, no need to alert the user, we can process the request immediately. + Task { + try? await obvEngine.requestSettingUnexpiringDevice(ownedCryptoId: ownedCryptoId, deviceIdentifier: deviceIdentifier) + } + + } else { + + // Since the owned identity is not allowed to have multiple device, keeping this device active will necessarily transfer the expiration to the device that currently has no expiration. + + guard let deviceWithoutExpiration = ownedIdentity.devices.first(where: { $0.expirationDate == nil }) else { + // We found no other device, which is unexpected. In production, we process the user request immediately. + assertionFailure() + Task { + try? await obvEngine.requestSettingUnexpiringDevice(ownedCryptoId: ownedCryptoId, deviceIdentifier: deviceIdentifier) + } + return + } + + // If we reach this point, we alert the user, allowing her to decide whether she wants to indeed keep the device active (and add an expiration to the other device) or not. + + let model = PermuteDeviceExpirationViewModel( + ownedCryptoId: ownedCryptoId, + identifierOfDeviceToKeepActive: deviceToKeepActive.identifier, + nameOfDeviceToKeepActive: deviceToKeepActive.name, + identifierOfDeviceWithoutExpiration: deviceWithoutExpiration.identifier, + nameOfDeviceWithoutExpiration: deviceWithoutExpiration.name) + let vc = PermuteDeviceExpirationHostingViewController(model: model, delegate: self) + + if traitCollection.userInterfaceIdiom == .phone { + vc.modalPresentationStyle = .popover + if let popover = vc.popoverPresentationController { + let sheet = popover.adaptiveSheetPresentationController + sheet.detents = [.large()] + sheet.prefersGrabberVisible = true + sheet.preferredCornerRadius = 16.0 + assert(rightBarButtonItem != nil) + } + } else { + vc.modalPresentationStyle = .formSheet + } + present(vc, animated: true) + + } + } @MainActor - func userWantsToEditOwnedIdentity() async { - assert(Thread.isMainThread) - // We are about to show a ViewController allowing to edit the owned identity. - // We load a new instance of the PersistedObvOwnedIdentity in a child view context: we want to prevent the view to be refreshed while the user is editing it. - // Not doing so would reset the edited text field if a message is received in the mean time (since this refreshes the view context). + func userWantsToReactivateThisDevice(ownedCryptoId: ObvCryptoId) async { + guard ownedIdentity.cryptoId == ownedCryptoId else { assertionFailure(); return } + + // If the device is active, this request makes no sense. + + guard !ownedIdentity.isActive else { assertionFailure(); return } + + // Get the required information about the current device + + guard let currentDeviceObj = ownedIdentity.devices + .first(where: { $0.secureChannelStatus == .currentDevice }) else { assertionFailure(); return } + let currentDevice = ChooseDeviceToReactivateViewModel.Device(deviceIdentifier: currentDeviceObj.deviceIdentifier, deviceName: currentDeviceObj.name, expirationDate: nil, latestRegistrationDate: nil) + + // Present the view controller + + let vc = ChooseDeviceToReactivateHostingViewController(model: .init(ownedCryptoId: ownedCryptoId, currentDeviceName: currentDevice.deviceName, currentDeviceIdentifier: currentDevice.deviceIdentifier), obvEngine: obvEngine, delegate: self) + present(vc, animated: true) + + } + + +} + + +// MARK: - ChooseDeviceToReactivateHostingViewControllerDelegate + +extension SingleOwnedIdentityFlowViewController { + + @MainActor + func userWantsToDismissChooseDeviceToReactivateHostingViewController() async { + if let vc = presentedViewController as? ChooseDeviceToReactivateHostingViewController { + vc.dismiss(animated: true) + } + } + +} + + +// MARK: - PermuteDeviceExpirationHostingViewControllerDelegate + +extension SingleOwnedIdentityFlowViewController { + + @MainActor + func userWantsToCancelAndDismissPermuteDeviceExpirationView() async { + guard presentedViewController is PermuteDeviceExpirationHostingViewController else { assertionFailure(); return } + presentedViewController?.dismiss(animated: true) + } + + + @MainActor + func userWantsToSeeSubscriptionPlansFromPermuteDeviceExpirationView() async { + guard presentedViewController is PermuteDeviceExpirationHostingViewController else { assertionFailure(); return } + presentedViewController?.dismiss(animated: true) { [weak self] in + Task { [weak self] in await self?.userWantsToSeeSubscriptionPlans() } + } + } + + + @MainActor + func userConfirmedFromPermuteDeviceExpirationView(ownedCryptoId: ObvCryptoId, identifierOfDeviceToKeepActive: Data, identifierOfDeviceWithoutExpiration: Data) async { + guard presentedViewController is PermuteDeviceExpirationHostingViewController else { assertionFailure(); return } + presentedViewController?.dismiss(animated: true) { [weak self] in + Task { [weak self] in + try? await self?.obvEngine.requestSettingUnexpiringDevice(ownedCryptoId: ownedCryptoId, deviceIdentifier: identifierOfDeviceToKeepActive) + } + } + } + + +} + + +// MARK: - SingleOwnedIdentityViewActionsDelegate + +extension SingleOwnedIdentityFlowViewController { + + /// We are about to show a ViewController allowing to edit the owned identity. + /// We load a new instance of the PersistedObvOwnedIdentity in a child view context: we want to prevent the view to be refreshed while the user is editing it. + /// Not doing so would reset the edited text field if a message is received in the mean time (since this refreshes the view context). + @MainActor + func userWantsToEditOwnedIdentity(ownedCryptoId: ObvCryptoId) async { + guard ownedCryptoId == ownedIdentity.cryptoId else { assertionFailure(); return } let childViewContext = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType) childViewContext.parent = ObvStack.shared.viewContext childViewContext.automaticallyMergesChangesFromParent = false @@ -492,62 +676,128 @@ final class SingleOwnedIdentityFlowViewController: UIHostingController (freePlanIsAvailable: Bool, products: [Product]) { + + // Step 1: Ask the engine (i.e., Olvid's server) whether a free trial is still available for this identity + let freePlanIsAvailable: Bool + if alsoFetchFreePlan { + freePlanIsAvailable = try await obvEngine.queryServerForFreeTrial(for: ownedCryptoId) + } else { + freePlanIsAvailable = false + } + + // Step 2: As StoreKit about available products + assert(delegate != nil) + let products = try await delegate?.userRequestedListOfSKProducts() ?? [] + + return (freePlanIsAvailable, products) + } + + func userWantsToStartFreeTrialNow(ownedCryptoId: ObvCryptoId) async throws -> APIKeyElements { + let newAPIKeyElements = try await obvEngine.startFreeTrial(for: ownedCryptoId) + return newAPIKeyElements + } + + + func userWantsToBuy(_ product: Product) async throws -> StoreKitDelegatePurchaseResult { + guard let delegate else { assertionFailure(); throw ObvError.theDelegateIsNil } + return try await delegate.userWantsToBuy(product) + } - @MainActor func userChosePasswordForHidingOwnedIdentity(_ ownedCryptoId: ObvCryptoId, password: String) async { - presentedViewController?.dismiss(animated: true) { - ObvMessengerInternalNotification.userWantsToHideOwnedIdentity(ownedCryptoId: ownedCryptoId, password: password) - .postOnDispatchQueue() - } + + func userWantsToRestorePurchases() async throws { + guard let delegate else { assertionFailure(); throw ObvError.theDelegateIsNil } + return try await delegate.userWantsToRestorePurchases() } } -// MARK: - OwnedIdentityDetailedInfosViewDelegate +// MARK: - SubscriptionPlansViewDismissActionsProtocol -extension SingleOwnedIdentityFlowViewController { +extension SingleOwnedIdentityFlowViewController: SubscriptionPlansViewDismissActionsProtocol { - @MainActor func userWantsToDismissOwnedIdentityDetailedInfosView() async { + @MainActor + func userWantsToDismissSubscriptionPlansView() async { + presentedViewController?.dismiss(animated: true) + } + + + @MainActor + func dismissSubscriptionPlansViewAfterPurchaseWasMade() async { presentedViewController?.dismiss(animated: true) } } +extension SingleOwnedIdentityFlowViewController { + + enum ObvError: Error { + case theDelegateIsNil + } + +} + + // MARK: - Strings extension SingleOwnedIdentityFlowViewController { @@ -570,7 +820,7 @@ extension SingleOwnedIdentityFlowViewController { struct AtLeastOneUnhiddenProfileMustExistAlert { static let title = NSLocalizedString("AT_LEAST_ONE_UNHIDDEN_PROFILE_MUST_EXIST_TITLE", comment: "") static let message = NSLocalizedString("AT_LEAST_ONE_UNHIDDEN_PROFILE_MUST_EXIST_MESSAGE", comment: "") - static let actionCreateNewProfile = NSLocalizedString("CREATE_NEW_OWNED_IDENTITY", comment: "") + static let actionAddProfile = NSLocalizedString("ADD_OWNED_IDENTITY", comment: "") } struct AlertForEditingNickname { static let title = NSLocalizedString("ALERT_FOR_EDITING_NICKNAME_TITLE", comment: "") @@ -581,32 +831,33 @@ extension SingleOwnedIdentityFlowViewController { } -fileprivate protocol SingleOwnedIdentityViewModelDelegate: AnyObject { - func dismiss() async - func userWantsToEditOwnedIdentity() async - func userWantsToSeeSubscriptionPlans() async - func userWantsToRefreshSubscriptionStatus() async -} -fileprivate final class SingleOwnedIdentityViewModel { +fileprivate final class SingleOwnedIdentityViewActions: SingleOwnedIdentityViewActionsDelegate { - weak var delegate: SingleOwnedIdentityViewModelDelegate? + weak var delegate: SingleOwnedIdentityViewActionsDelegate? + + func userWantsToEditOwnedIdentity(ownedCryptoId: ObvTypes.ObvCryptoId) async { + await delegate?.userWantsToEditOwnedIdentity(ownedCryptoId: ownedCryptoId) + } + + func userWantsToSeeSubscriptionPlans() async { + await delegate?.userWantsToSeeSubscriptionPlans() + } - func dismiss() { - Task { await delegate?.dismiss() } + func userWantsToRefreshSubscriptionStatus() async { + await delegate?.userWantsToRefreshSubscriptionStatus() } - func userWantsToEditOwnedIdentity() { - Task { await delegate?.userWantsToEditOwnedIdentity() } + func userWantsToNavigateToListOfContactDevicesView(ownedCryptoId: ObvCryptoId) async { + await delegate?.userWantsToNavigateToListOfContactDevicesView(ownedCryptoId: ownedCryptoId) } - - func userWantsToSeeSubscriptionPlans() { - Task { await delegate?.userWantsToSeeSubscriptionPlans() } + + func userWantsToReactivateThisDevice(ownedCryptoId: ObvCryptoId) async { + await delegate?.userWantsToReactivateThisDevice(ownedCryptoId: ownedCryptoId) } - func userWantsToRefreshSubscriptionStatus() { - Task { await delegate?.userWantsToRefreshSubscriptionStatus() } + func userWantsToAddNewDevice(ownedCryptoId: ObvCryptoId) async { + await delegate?.userWantsToAddNewDevice(ownedCryptoId: ownedCryptoId) } - } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/SingleOwnedIdentityView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/SingleOwnedIdentityView.swift index acaad085..8742a897 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/SingleOwnedIdentityView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/SingleOwnedIdentityView.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import ObvEngine import CoreData import ObvUI import ObvUICoreData +import ObvDesignSystem final class APIKeyStatusAndExpiry: ObservableObject { @@ -30,13 +31,15 @@ final class APIKeyStatusAndExpiry: ObservableObject { let id = UUID() private let ownedIdentity: PersistedObvOwnedIdentity! @Published var apiKeyStatus: APIKeyStatus + @Published var apiPermissions: APIPermissions @Published var apiKeyExpirationDate: Date? private var observationTokens = [NSObjectProtocol]() // For SwiftUI previews - fileprivate init(ownedCryptoId: ObvCryptoId, apiKeyStatus: APIKeyStatus, apiKeyExpirationDate: Date?) { + fileprivate init(ownedCryptoId: ObvCryptoId, apiKeyStatus: APIKeyStatus, apiPermissions: APIPermissions, apiKeyExpirationDate: Date?) { self.ownedIdentity = nil self.apiKeyStatus = apiKeyStatus + self.apiPermissions = apiPermissions self.apiKeyExpirationDate = apiKeyExpirationDate } @@ -45,6 +48,7 @@ final class APIKeyStatusAndExpiry: ObservableObject { assert(ownedIdentity.managedObjectContext == ObvStack.shared.viewContext) self.ownedIdentity = ownedIdentity self.apiKeyStatus = ownedIdentity.apiKeyStatus + self.apiPermissions = ownedIdentity.effectiveAPIPermissions self.apiKeyExpirationDate = ownedIdentity.apiKeyExpirationDate observeViewContextDidChange() } @@ -61,6 +65,7 @@ final class APIKeyStatusAndExpiry: ObservableObject { guard context == ObvStack.shared.viewContext else { return } guard let ownedIdentity = self?.ownedIdentity else { assertionFailure(); return } self?.apiKeyStatus = ownedIdentity.apiKeyStatus + self?.apiPermissions = ownedIdentity.effectiveAPIPermissions self?.apiKeyExpirationDate = ownedIdentity.apiKeyExpirationDate }) } @@ -68,23 +73,52 @@ final class APIKeyStatusAndExpiry: ObservableObject { } +// MARK: - SingleOwnedIdentityViewActionsDelegate + +protocol SingleOwnedIdentityViewActionsDelegate: AnyObject, OwnedDevicesCardViewActionsDelegate, OwnedIdentityCardViewActionsDelegate, InactiveOwnedIdentityViewActionsDelegate { + func userWantsToEditOwnedIdentity(ownedCryptoId: ObvCryptoId) async + func userWantsToSeeSubscriptionPlans() async + func userWantsToRefreshSubscriptionStatus() async +} + + +// MARK: - SingleOwnedIdentityView struct SingleOwnedIdentityView: View { - @ObservedObject var singleIdentity: SingleIdentity + @ObservedObject var ownedIdentity: PersistedObvOwnedIdentity @ObservedObject var apiKeyStatusAndExpiry: APIKeyStatusAndExpiry - let dismissAction: () -> Void - let editOwnedIdentityAction: () -> Void - let subscriptionPlanAction: () -> Void - let refreshStatusAction: () -> Void - + let actions: SingleOwnedIdentityViewActionsDelegate? + private var apiKeyStatus: APIKeyStatus { apiKeyStatusAndExpiry.apiKeyStatus } private var apiKeyExpirationDate: Date? { apiKeyStatusAndExpiry.apiKeyExpirationDate } + private var apiPermissions: APIPermissions { apiKeyStatusAndExpiry.apiPermissions } private var showSubscriptionPlansButton: Bool { - !singleIdentity.isKeycloakManaged + !ownedIdentity.isKeycloakManaged + } + + private var circleAndTitlesViewModel: CircleAndTitlesView.Model { + .init(content: ownedIdentity.circleAndTitlesViewModelContent, + colors: ownedIdentity.initialCircleViewModelColors, + displayMode: .header, + editionMode: .none) + } + + private func userWantsToEditOwnedIdentity() { + Task { await actions?.userWantsToEditOwnedIdentity(ownedCryptoId: ownedIdentity.cryptoId) } } + private func userWantsToSeeSubscriptionPlans() { + Task { await actions?.userWantsToSeeSubscriptionPlans() } + } + + private func userWantsToRefreshSubscriptionStatus() { + Task { await actions?.userWantsToRefreshSubscriptionStatus() } + } + + + var body: some View { ZStack { @@ -94,20 +128,33 @@ struct SingleOwnedIdentityView: View { ScrollView { VStack { - OwnedIdentityHeaderView(singleIdentity: singleIdentity) + + CircleAndTitlesView(model: circleAndTitlesViewModel) .padding(.top, 16) - OwnedIdentityCardView(singleIdentity: singleIdentity, - editOwnedIdentityAction: editOwnedIdentityAction) - .padding(.top, 40) + + OwnedIdentityCardView(ownedIdentity: ownedIdentity, actions: actions) + .padding(.top, 40) + + if !ownedIdentity.isActive { + InactiveOwnedIdentityView(ownedCryptoId: ownedIdentity.cryptoId, actions: actions) + .padding(.top, 20) + } else { + OwnedDevicesCardView(model: .init(ownedCryptoId: ownedIdentity.cryptoId, numberOfOwnedDevices: ownedIdentity.sortedDevices.count), actions: actions) + .padding(.top, 40) + } + SubscriptionStatusView(title: Text("SUBSCRIPTION_STATUS"), apiKeyStatus: apiKeyStatus, apiKeyExpirationDate: apiKeyExpirationDate, showSubscriptionPlansButton: showSubscriptionPlansButton, - subscriptionPlanAction: subscriptionPlanAction, + userWantsToSeeSubscriptionPlans: userWantsToSeeSubscriptionPlans, showRefreshStatusButton: true, - refreshStatusAction: refreshStatusAction) + refreshStatusAction: userWantsToRefreshSubscriptionStatus, + apiPermissions: apiPermissions) .padding(.top, 40) + Spacer() + }.padding(.horizontal, 16) } @@ -117,17 +164,78 @@ struct SingleOwnedIdentityView: View { +// MARK: - InactiveOwnedIdentityView + +protocol InactiveOwnedIdentityViewActionsDelegate { + func userWantsToReactivateThisDevice(ownedCryptoId: ObvCryptoId) async +} + +fileprivate struct InactiveOwnedIdentityView: View { + + let ownedCryptoId: ObvCryptoId + let actions: InactiveOwnedIdentityViewActionsDelegate? + + @State private var reactivationRequested = false + + private func userWantsToReactivateThisDevice() { + guard !reactivationRequested else { return } + reactivationRequested = true + Task { + await actions?.userWantsToReactivateThisDevice(ownedCryptoId: ownedCryptoId) + reactivationRequested = false + } + } + + var body: some View { + ObvCardView { + VStack(alignment: .leading) { + Text("INACTIVE_PROFILE_EXPLANATION_ON_MY_PROFILE_VIEW") + .font(.body) + .foregroundColor(Color(AppTheme.shared.colorScheme.label)) + OlvidButton(style: .blue, + title: Text("REACTIVATE_PROFILE_BUTTON_TITLE"), + systemIcon: .checkmarkCircleFill, + action: userWantsToReactivateThisDevice) + .disabled(reactivationRequested) + .padding(.top, 8) + } + } + } + +} + + + +// MARK: - OwnedIdentityCardViewActionsDelegate + +protocol OwnedIdentityCardViewActionsDelegate { + func userWantsToEditOwnedIdentity(ownedCryptoId: ObvCryptoId) async +} + +// MARK: - OwnedIdentityCardView fileprivate struct OwnedIdentityCardView: View { - @ObservedObject var singleIdentity: SingleIdentity - let editOwnedIdentityAction: () -> Void + @ObservedObject var ownedIdentity: PersistedObvOwnedIdentity + let actions: OwnedIdentityCardViewActionsDelegate? + + private func editOwnedIdentityAction() { + let ownedCryptoId = ownedIdentity.cryptoId + Task { await actions?.userWantsToEditOwnedIdentity(ownedCryptoId: ownedCryptoId) } + } + + private var circleAndTitlesViewModel: CircleAndTitlesView.Model { + .init(content: ownedIdentity.circleAndTitlesViewModelContent, + colors: ownedIdentity.initialCircleViewModelColors, + displayMode: .normal, + editionMode: .none) + } var body: some View { ObvCardView { VStack(alignment: .leading) { - IdentityCardContentView(model: singleIdentity) + CircleAndTitlesView(model: circleAndTitlesViewModel) OlvidButton(style: .blue, title: Text("EDIT_MY_ID"), systemIcon: .squareAndPencil, @@ -141,47 +249,180 @@ fileprivate struct OwnedIdentityCardView: View { -struct SingleOwnedIdentityView_Previews: PreviewProvider { +//struct SingleOwnedIdentityView_Previews: PreviewProvider { +// +// private static let singleIdentities = [ +// SingleIdentity(firstName: "Steve", +// lastName: "Jobs", +// position: "CEO", +// company: "Apple", +// isKeycloakManaged: false, +// showGreenShield: false, +// showRedShield: false, +// identityColors: nil, +// photoURL: nil), +// ] +// +// private static let identityAsURL = URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")! +// private static let testOwnedCryptoId = ObvURLIdentity(urlRepresentation: identityAsURL)!.cryptoId +// +// private static let testApiKeyStatusAndExpiry = APIKeyStatusAndExpiry(ownedCryptoId: testOwnedCryptoId, +// apiKeyStatus: .free, +// apiKeyExpirationDate: Date()) +// +// static var previews: some View { +// Group { +// ForEach(singleIdentities) { +// SingleOwnedIdentityView(singleIdentity: $0, +// apiKeyStatusAndExpiry: testApiKeyStatusAndExpiry, +// dismissAction: {}, +// editOwnedIdentityAction: {}, +// subscriptionPlanAction: {}, +// refreshStatusAction: {}) +// .environment(\.colorScheme, .dark) +// } +// ForEach(singleIdentities) { +// SingleOwnedIdentityView(singleIdentity: $0, +// apiKeyStatusAndExpiry: testApiKeyStatusAndExpiry, +// dismissAction: {}, +// editOwnedIdentityAction: {}, +// subscriptionPlanAction: {}, +// refreshStatusAction: {}) +// .environment(\.colorScheme, .light) +// } +// } +// } +//} + + +// MARK: - OwnedDevicesCardViewActionsDelegate + +protocol OwnedDevicesCardViewActionsDelegate { - private static let singleIdentities = [ - SingleIdentity(firstName: "Steve", - lastName: "Jobs", - position: "CEO", - company: "Apple", - isKeycloakManaged: false, - showGreenShield: false, - showRedShield: false, - identityColors: nil, - photoURL: nil), - ] + func userWantsToNavigateToListOfContactDevicesView(ownedCryptoId: ObvCryptoId) async + func userWantsToAddNewDevice(ownedCryptoId: ObvCryptoId) async + +} + + +// MARK: - OwnedDevicesCardView + +struct OwnedDevicesCardView: View { + + struct Model { + let ownedCryptoId: ObvCryptoId + let numberOfOwnedDevices: Int + } - private static let identityAsURL = URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")! - private static let testOwnedCryptoId = ObvURLIdentity(urlRepresentation: identityAsURL)!.cryptoId + let model: Model + let actions: OwnedDevicesCardViewActionsDelegate? + @State private var selected = false - private static let testApiKeyStatusAndExpiry = APIKeyStatusAndExpiry(ownedCryptoId: testOwnedCryptoId, - apiKeyStatus: .free, - apiKeyExpirationDate: Date()) + private func userWantsToNavigateToListOfContactDevicesView() { + Task { await actions?.userWantsToNavigateToListOfContactDevicesView(ownedCryptoId: model.ownedCryptoId) } + } - static var previews: some View { - Group { - ForEach(singleIdentities) { - SingleOwnedIdentityView(singleIdentity: $0, - apiKeyStatusAndExpiry: testApiKeyStatusAndExpiry, - dismissAction: {}, - editOwnedIdentityAction: {}, - subscriptionPlanAction: {}, - refreshStatusAction: {}) - .environment(\.colorScheme, .dark) - } - ForEach(singleIdentities) { - SingleOwnedIdentityView(singleIdentity: $0, - apiKeyStatusAndExpiry: testApiKeyStatusAndExpiry, - dismissAction: {}, - editOwnedIdentityAction: {}, - subscriptionPlanAction: {}, - refreshStatusAction: {}) - .environment(\.colorScheme, .light) + private func userWantsToAddNewDevice() { + Task { await actions?.userWantsToAddNewDevice(ownedCryptoId: model.ownedCryptoId) } + } + + var body: some View { + VStack(alignment: .leading) { + Text("MY_DEVICES") + .font(.headline) + .foregroundColor(Color(AppTheme.shared.colorScheme.label)) + ObvCardView { + VStack { + + HStack(alignment: .firstTextBaseline) { + + Label { + Text(String.localizedStringWithFormat(NSLocalizedString("YOU_HAVE_N_DEVICES", comment: ""), model.numberOfOwnedDevices)) + .lineLimit(nil) + .fixedSize(horizontal: false, vertical: true) + .font(.system(.headline, design: .rounded)) + .foregroundColor(Color(AppTheme.shared.colorScheme.label)) + } icon: { + Image(systemIcon: .laptopcomputerAndIphone) + .foregroundColor(Color(.systemBlue)) + .font(.system(size: 22)) + .frame(width: 40) + + } + + Spacer() + + ObvChevron(selected: selected) + + } + .contentShape(Rectangle()) // This makes it possible to have an "on tap" gesture that also works when the Spacer is tapped + .onTapGesture { + withAnimation { + selected = true + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(200)) { + userWantsToNavigateToListOfContactDevicesView() + } + } + } + .onAppear { + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(200)) { + withAnimation { + selected = false + } + } + } + + Divider() + .padding(.leading, 48) + .padding(.bottom, 4) + + HStack(alignment: .firstTextBaseline) { + Label { + Text("ADD_A_NEW_DEVICE") + .lineLimit(nil) + .fixedSize(horizontal: false, vertical: true) + .font(.system(.headline, design: .rounded)) + .foregroundColor(Color(AppTheme.shared.colorScheme.label)) + } icon: { + Image(systemIcon: .plusCircle) + .foregroundColor(Color(.systemBlue)) + .font(.system(size: 22)) + .frame(width: 40) + } + + Spacer() + } + .contentShape(Rectangle()) // This makes it possible to have an "on tap" gesture that also works when the Spacer is tapped + .onTapGesture { + userWantsToAddNewDevice() + } + + } + } + } } + +} + + + + + + +// MARK: - Previews + +struct OwnedDevicesCardView_Previews: PreviewProvider { + + private static let ownedCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!) + + static private let model = OwnedDevicesCardView.Model( + ownedCryptoId: ownedCryptoId, + numberOfOwnedDevices: 1) + + static var previews: some View { + OwnedDevicesCardView(model: model, actions: nil) + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/SubscriptionPlansView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/SubscriptionPlansView.swift new file mode 100644 index 00000000..5bf5df20 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/SubscriptionPlansView.swift @@ -0,0 +1,734 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI +import StoreKit +import ObvTypes +import UI_SystemIcon +import ObvUI + + +final class SubscriptionPlansViewModel: SubscriptionPlansViewModelProtocol { + + let ownedCryptoId: ObvCryptoId + let showFreePlanIfAvailable: Bool + @Published private(set) var freePlanIsAvailable: Bool? = nil + @Published private(set) var products: [Product]? = nil + + init(ownedCryptoId: ObvCryptoId, showFreePlanIfAvailable: Bool) { + self.ownedCryptoId = ownedCryptoId + self.showFreePlanIfAvailable = showFreePlanIfAvailable + } + + @MainActor + func setSubscriptionPlans(freePlanIsAvailable: Bool, products: [Product]) async { + withAnimation(.bouncy) { + self.freePlanIsAvailable = freePlanIsAvailable + self.products = products + } + } + +} + + +protocol SubscriptionPlansViewModelProtocol: ObservableObject { + + var ownedCryptoId: ObvCryptoId { get } + var freePlanIsAvailable: Bool? { get } // Nil until we know whether a free plan is available or not + var products: [Product]? { get } // Nil until store plans are known + var showFreePlanIfAvailable: Bool { get } + + func setSubscriptionPlans(freePlanIsAvailable: Bool, products: [Product]) async + +} + + +protocol SubscriptionPlansViewActionsProtocol: AnyObject { + func fetchSubscriptionPlans(for ownedCryptoId: ObvCryptoId, alsoFetchFreePlan: Bool) async throws -> (freePlanIsAvailable: Bool, products: [Product]) + func userWantsToStartFreeTrialNow(ownedCryptoId: ObvCryptoId) async throws -> APIKeyElements + func userWantsToBuy(_ product: Product) async throws -> StoreKitDelegatePurchaseResult + func userWantsToRestorePurchases() async throws +} + + +protocol SubscriptionPlansViewDismissActionsProtocol { + func userWantsToDismissSubscriptionPlansView() async + func dismissSubscriptionPlansViewAfterPurchaseWasMade() async +} + +struct SubscriptionPlansView: View, NewSKProductCardViewActionsProtocol, BottomButtonsViewActionsProtocol { + + @ObservedObject var model: Model + let actions: SubscriptionPlansViewActionsProtocol + let dismissActions: SubscriptionPlansViewDismissActionsProtocol + + // Avoid calling the method twice + @State private var isFetchSubscriptionPlansCalled = false + @State private var shownHUDCategory: HUDView.Category? = nil + @State private var isInterfaceDisabled = false + @State private var fetchErrorShown: Error? + @State private var buyErrorShown: BuyError? + + private var currentlyFetchingSubscriptionPlans: Bool { + return model.freePlanIsAvailable != nil && model.products != nil + } + + private var canShowPlans: Bool { + model.freePlanIsAvailable != nil && model.products != nil + } + + + /// When the view appears, we immediately request our delegate to fetch subscriptions plans. + /// When receiving the plans from our delegate, we set them in the model, and this will update the UI. + private func viewDidAppear() { + Task { + do { + let result = try await actions.fetchSubscriptionPlans(for: model.ownedCryptoId, alsoFetchFreePlan: model.showFreePlanIfAvailable) + await model.setSubscriptionPlans(freePlanIsAvailable: result.freePlanIsAvailable, products: result.products) + } catch { + withAnimation { + fetchErrorShown = error + } + } + } + } + + + private var featuresForFreeTrial: [NewFeatureView.Model] {[ + .init(feature: .startSecureCalls, showAsAvailable: true), + ]} + + private var featuresForSKProduct: [NewFeatureView.Model] {[ + .init(feature: .startSecureCalls, showAsAvailable: true), + .init(feature: .multidevice, showAsAvailable: true) + ]} + + + func dismissAction() { + Task { + await dismissActions.userWantsToDismissSubscriptionPlansView() + } + } + + + // NewSKProductCardViewActionsProtocol + + func userWantsToStartFreeTrial() { + isInterfaceDisabled = true + withAnimation { + shownHUDCategory = .progress + } + Task { + do { + // The following call returns APIKeyElements updated after a successful start of a free trial. + // We discard them since we don't display this information here. + _ = try await actions.userWantsToStartFreeTrialNow(ownedCryptoId: model.ownedCryptoId) + await enableInterfaceAndShowHUD(category: .checkmark, duringTimeInterval: 1) + await dismissActions.dismissSubscriptionPlansViewAfterPurchaseWasMade() + } catch { + assertionFailure() + await enableInterfaceAndShowHUD(category: .xmark, duringTimeInterval: 1) + buyErrorShown = BuyError.failedToStartFreeTrial + } + } + } + + + @MainActor + private func setShownHUDCategory(category: HUDView.Category?) async { + guard shownHUDCategory != category else { return } + withAnimation { + shownHUDCategory = category + } + } + + + @MainActor + private func enableInterface() async { + guard isInterfaceDisabled else { return } + withAnimation { + isInterfaceDisabled = false + } + } + + + @MainActor + private func enableInterfaceAndShowHUD(category: HUDView.Category, duringTimeInterval: TimeInterval) async { + await enableInterface() + await setShownHUDCategory(category: category) + try? await Task.sleep(seconds: duringTimeInterval) + await setShownHUDCategory(category: nil) + } + + + func userWantsToBuy(_ product: Product) { + isInterfaceDisabled = true + shownHUDCategory = .progress + buyErrorShown = nil + Task { + do { + let result = try await actions.userWantsToBuy(product) + switch result { + case .purchaseSucceeded(let serverVerificationResult): + switch serverVerificationResult { + case .succeededAndSubscriptionIsValid: + await enableInterfaceAndShowHUD(category: .checkmark, duringTimeInterval: 1) + await dismissActions.dismissSubscriptionPlansViewAfterPurchaseWasMade() + case .succeededButSubscriptionIsExpired: + buyErrorShown = BuyError.buySucceededButSubscriptionIsExpired + await enableInterfaceAndShowHUD(category: .xmark, duringTimeInterval: 1) + case .failed: + buyErrorShown = BuyError.buyFailed + await enableInterfaceAndShowHUD(category: .xmark, duringTimeInterval: 1) + } + case .userCancelled, .pending: + await enableInterface() + await setShownHUDCategory(category: nil) + } + } catch { + if let error = error as? StoreKit.Product.PurchaseError { + switch error { + case .invalidQuantity: + buyErrorShown = .otherError(error: error) + case .productUnavailable: + buyErrorShown = .productUnavailable + case .purchaseNotAllowed: + buyErrorShown = .purchaseNotAllowed + case .ineligibleForOffer: + buyErrorShown = .otherError(error: error) + case .invalidOfferIdentifier: + buyErrorShown = .otherError(error: error) + case .invalidOfferPrice: + buyErrorShown = .otherError(error: error) + case .invalidOfferSignature: + buyErrorShown = .otherError(error: error) + case .missingOfferParameters: + buyErrorShown = .otherError(error: error) + @unknown default: + buyErrorShown = .otherError(error: error) + } + } else { + buyErrorShown = .otherError(error: error) + } + await enableInterfaceAndShowHUD(category: .xmark, duringTimeInterval: 1) + } + } + } + + + private func dismissBuyErrorView() { + withAnimation { + buyErrorShown = nil + } + } + + // BottomButtonsViewActionsProtocol + + func userWantsToRestorePurchaseNow() { + isInterfaceDisabled = true + shownHUDCategory = .progress + Task { + do { + try await actions.userWantsToRestorePurchases() + await enableInterfaceAndShowHUD(category: .checkmark, duringTimeInterval: 1) + } catch { + await enableInterfaceAndShowHUD(category: .xmark, duringTimeInterval: 1) + buyErrorShown = BuyError.couldNotRestorePurchases(error: error) + } + } + } + + + // View + + var body: some View { + NavigationView { + + ZStack { + + ScrollView { + VStack { + + // Make sure the VStack is nevery empty (otherwise, animations don't work) + EmptyView() + + if let fetchErrorShown { + + ErrorView(title: "WE_COULD_NOT_LOOK_FOR_AVAILABLE_SUBSCRIPTION_PLANS", error: fetchErrorShown, dismissAction: nil) + .padding(.bottom) + + BottomButtonsView(actions: self) + + } else if let freePlanIsAvailable = model.freePlanIsAvailable, let products = model.products { + + if let buyErrorShown { + + ErrorView(title: "THE_SUBSCRIPTION_REQUEST_FAILED", error: buyErrorShown, dismissAction: dismissBuyErrorView) + .padding(.bottom) + + } else { + + if freePlanIsAvailable && model.showFreePlanIfAvailable { + NewSKProductCardView(model: .init(title: NSLocalizedString("TRY_SECURE_CALLS", comment: ""), + price: NSLocalizedString("Free", comment: ""), + description: NSLocalizedString("TRY_SECURE_CALLS_DESCRIPTION", comment: ""), + buttonTitle: NSLocalizedString("Start free trial now", comment: ""), + buttonSystemIcon: .handThumbsupFill, + features: featuresForFreeTrial), + actions: self) + .transition(AnyTransition.move(edge: .trailing)) + .padding(.bottom, 32) + } + + ForEach(products, id: \.self) { product in + NewSKProductCardView(model: .init(product: product, + features: featuresForSKProduct, + buttonTitle: NSLocalizedString("Subscribe now", comment: ""), + buttonSystemIcon: .cartFill), + actions: self) + .transition(AnyTransition.move(edge: .leading)) + .padding(.bottom, 32) + } + + } + + BottomButtonsView(actions: self) + + } else { + + HStack { + Spacer() + ProgressView("Looking for available subscription plans") + Spacer() + }.padding(.top, 64) + + } + + } + .padding() + } + .disabled(isInterfaceDisabled) + .navigationBarTitle(Text("Available subscription plans"), displayMode: .inline) + .toolbar { + ToolbarItemGroup { + Button.init(action: dismissAction, label: { + Image(systemIcon: .xmarkCircleFill) + }) + } + } + .onAppear(perform: viewDidAppear) + + if let shownHUDCategory { + HUDView(category: shownHUDCategory) + .zIndex(1) + } + + } + } + } + +} + + +// MARK: ErrorView + +private struct ErrorView: View { + + let title: LocalizedStringKey + let error: Error + let dismissAction: (() -> Void)? + + var body: some View { + ObvCardView { + VStack { + HStack { + Label { + VStack(alignment: .leading) { + Text(title) + .foregroundStyle(.primary) + Text(verbatim: (error as? BuyError)?.localizedDescription ?? error.localizedDescription) + .foregroundStyle(.secondary) + } + } icon: { + Image(systemIcon: .xmarkCircleFill) + .foregroundStyle(Color(UIColor.systemRed)) + .font(.system(size: 36)) + } + Spacer() + } + if let dismissAction { + OlvidButton(style: .blue, title: Text("Dismiss"), action: dismissAction) + } + } + } + } + +} + + + + +// MARK: BottomButtonsView + +protocol BottomButtonsViewActionsProtocol { + func userWantsToRestorePurchaseNow() +} + +private struct BottomButtonsView: View { + + let actions: BottomButtonsViewActionsProtocol + + var body: some View { + VStack(spacing: 16) { + + OlvidButton(style: .standardWithBlueText, + title: Text("Manage your subscription"), + systemIcon: .link, + action: { + let url = ObvMessengerConstants.urlForManagingSubscriptionWithTheAppStore + UIApplication.shared.open(url, options: [:], completionHandler: nil) + }) + + OlvidButton(style: .standardWithBlueText, + title: Text("Manage payments"), + systemIcon: .creditcardFill, + action: { + let url = ObvMessengerConstants.urlForManagingPaymentsOnTheAppStore + UIApplication.shared.open(url, options: [:], completionHandler: nil) + }) + + OlvidButton(style: .standardWithBlueText, + title: Text("Restore Purchases"), + systemIcon: .arrowUturnForwardCircleFill, + action: actions.userWantsToRestorePurchaseNow) + + } + } + +} + + + +// MARK: NewSKProductCardView + +protocol NewSKProductCardViewActionsProtocol { + func userWantsToStartFreeTrial() + func userWantsToBuy(_: Product) +} + + +private struct NewSKProductCardView: View { + + struct Model { + let title: String + let price: String + let description: String + let buttonTitle: String + let buttonSystemIcon: SystemIcon? + let features: [NewFeatureView.Model] + let product: Product? // App Store product + + init(title: String, price: String, description: String, buttonTitle: String, buttonSystemIcon: SystemIcon?, features: [NewFeatureView.Model]) { + self.title = title + self.price = price + self.description = description + self.buttonTitle = buttonTitle + self.buttonSystemIcon = buttonSystemIcon + self.features = features + self.product = nil + } + + init(product: Product, features: [NewFeatureView.Model], buttonTitle: String, buttonSystemIcon: SystemIcon?) { + let subscription = AvailableSubscription(productIdentifier: product.id) + assert(subscription != nil) + self.title = subscription?.localizedTitle ?? product.displayName + if let subscription = product.subscription { + self.price = "\(product.displayPrice)/\(subscription.subscriptionPeriod.unit)" + } else { + assertionFailure() + self.price = "\(product.displayPrice)" + } + self.description = subscription?.localizedDescription ?? product.description + self.buttonTitle = buttonTitle + self.buttonSystemIcon = buttonSystemIcon + self.features = features + self.product = product + } + + + } + + let model: Model + let actions: NewSKProductCardViewActionsProtocol + + + private func buttonTapped() { + if let product = model.product { + actions.userWantsToBuy(product) + } else { + actions.userWantsToStartFreeTrial() + } + } + + + var body: some View { + ObvCardView { + VStack(spacing: 16.0) { + HStack(alignment: .firstTextBaseline, spacing: 0) { + Text(model.title) + .fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/) + .font(.system(.headline, design: .rounded)) + Spacer() + Text(verbatim: model.price) + .fontWeight(.bold) + .font(.system(.title, design: .rounded)) + } + HStack { + Text(model.description) + .font(.body) + .lineLimit(nil) + .multilineTextAlignment(.leading) + .foregroundColor(Color(UIColor.secondaryLabel)) + Spacer() + } + .fixedSize(horizontal: false, vertical: true) + NewFeatureListView(model: .init(title: "Premium features", features: model.features)) + OlvidButton(style: .blue, + title: Text(verbatim: model.buttonTitle), + systemIcon: model.buttonSystemIcon, + action: buttonTapped) + } + } + } + +} + + +// MARK: - NewFeatureListView + +private struct NewFeatureListView: View { + + struct Model { + let title: String + let features: [NewFeatureView.Model] + } + + let model: Model + + + var body: some View { + VStack(alignment: .leading, spacing: 0) { + HStack { + Text(model.title) + .font(.headline) + } + .padding(.bottom, 16) + ForEach(model.features) { feature in + NewFeatureView(model: feature) + .padding(.bottom, 16) + } + } + } + +} + + +// MARK: - FeatureView + +private struct NewFeatureView: View { + + let model: Model + + + struct Model: Identifiable { + let feature: NewFeatureView.Feature + let showAsAvailable: Bool + var id: Int { self.feature.rawValue } + } + + + enum Feature: Int, Identifiable { + case startSecureCalls = 0 + case multidevice + case sendAndReceiveMessagesAndAttachments + case createGroupChats + case receiveSecureCalls + var id: Int { self.rawValue } + } + + + private var systemIcon: SystemIcon { + switch model.feature { + case .startSecureCalls: return .phoneArrowUpRightFill + case .multidevice: return .macbookAndIphone + case .sendAndReceiveMessagesAndAttachments: return .bubbleLeftAndBubbleRightFill + case .createGroupChats: return .person3Fill + case .receiveSecureCalls: return .phoneArrowDownLeftFill + } + } + + + private var systemIconColor: Color { + switch model.feature { + case .startSecureCalls: return Color(.displayP3, red: 253.0/255, green: 56.0/255, blue: 95.0/255, opacity: 1.0) + case .multidevice: return Color(UIColor.systemBlue) + case .sendAndReceiveMessagesAndAttachments: return Color(.displayP3, red: 1.0, green: 0.35, blue: 0.39, opacity: 1.0) + case .createGroupChats: return Color(.displayP3, red: 7.0/255, green: 132.0/255, blue: 254.0/255, opacity: 1.0) + case .receiveSecureCalls: return Color(.displayP3, red: 253.0/255, green: 56.0/255, blue: 95.0/255, opacity: 1.0) + } + } + + + private var description: LocalizedStringKey { + switch model.feature { + case .startSecureCalls: return "MAKE_SECURE_CALLS" + case .multidevice: return "MULTIDEVICE" + case .sendAndReceiveMessagesAndAttachments: return "Sending & receiving messages and attachments" + case .createGroupChats: return "Create groups" + case .receiveSecureCalls: return "RECEIVE_SECURE_CALLS" + } + } + + + private var systemIconForAvailability: SystemIcon { + model.showAsAvailable ? .checkmarkSealFill : .xmarkSealFill + } + + + private var systemIconForAvailabilityColor: Color { + model.showAsAvailable ? Color(UIColor.systemGreen) : Color(UIColor.secondaryLabel) + } + + + var body: some View { + HStack(alignment: .firstTextBaseline) { + Image(systemIcon: systemIcon) + .font(.system(size: 16)) + .foregroundColor(systemIconColor) + .frame(minWidth: 30) + Text(description) + .foregroundColor(Color(UIColor.label)) + .font(.body) + .lineLimit(nil) + .fixedSize(horizontal: false, vertical: true) + Spacer() + Image(systemIcon: systemIconForAvailability) + .font(.system(size: 16)) + .foregroundColor(systemIconForAvailabilityColor) + } + } + +} + + +// MARK: - Errors occuring during a subscription, free trial activation, or restore + +fileprivate enum BuyError: Error, LocalizedError { + case buySucceededButSubscriptionIsExpired + case buyFailed + case failedToStartFreeTrial + case couldNotRestorePurchases(error: Error) + case purchaseNotAllowed + case productUnavailable + case otherError(error: Error) + var localizedDescription: String { + switch self { + case .buySucceededButSubscriptionIsExpired: + return NSLocalizedString("BUY_SUCCEEDED_BUT_SUBSCRIPTION_EXPIRED", comment: "") + case .buyFailed: + return NSLocalizedString("BUY_FAILED", comment: "") + case .failedToStartFreeTrial: + return NSLocalizedString("FAILED_TO_START_FREE_TRIAL", comment: "") + case .couldNotRestorePurchases(error: let error): + return String(format: NSLocalizedString("FAILED_TO_RESTORE_PURCHASES_%@", comment: ""), error.localizedDescription) + case .purchaseNotAllowed: + return NSLocalizedString("USER_CANNOT_MAKE_PAYMENT_DESCRIPTION", comment: "") + case .otherError(error: let error): + return String(format: NSLocalizedString("Sorry, the purchase failed 😢. Please try again later or contact us if this problem is recurring. %@", comment: ""), error.localizedDescription) + case .productUnavailable: + return NSLocalizedString("Sorry, the product is not available in your store 😢.", comment: "") + } + } +} + + + +// MARK: - Previews + + +struct SubscriptionPlansView_Previews: PreviewProvider { + + private final class ModelForPreviews: SubscriptionPlansViewModelProtocol { + + let ownedCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!) + + let showFreePlanIfAvailable = false + + @Published var freePlanIsAvailable: Bool? = nil // Nil until we know whether a free plan is available or not + @Published var products: [Product]? = nil // Nil until store plans are known + + @MainActor + func setSubscriptionPlans(freePlanIsAvailable: Bool, products: [Product]) async { + DispatchQueue.main.async { + withAnimation(.spring) { + self.freePlanIsAvailable = freePlanIsAvailable + self.products = products + } + } + } + + } + + private final class ActionsForPreviews: SubscriptionPlansViewActionsProtocol, SubscriptionPlansViewDismissActionsProtocol { + + func fetchSubscriptionPlans(for ownedCryptoId: ObvCryptoId, alsoFetchFreePlan: Bool) async throws -> (freePlanIsAvailable: Bool, products: [Product]) { + try! await Task.sleep(seconds: 1) + return (alsoFetchFreePlan, []) + } + + func userWantsToStartFreeTrialNow(ownedCryptoId: ObvTypes.ObvCryptoId) async throws -> APIKeyElements { + try! await Task.sleep(seconds: 2) + return .init(status: .freeTrial, permissions: [.canCall], expirationDate: Date().addingTimeInterval(.init(days: 30))) + } + + func userWantsToBuy(_: Product) async -> StoreKitDelegatePurchaseResult { + try! await Task.sleep(seconds: 2) + return .userCancelled + } + + func userWantsToRestorePurchases() async { + try! await Task.sleep(seconds: 2) + } + + func userWantsToDismissSubscriptionPlansView() async {} + + func dismissSubscriptionPlansViewAfterPurchaseWasMade() async {} + + } + + private static let model = ModelForPreviews() + private static let actions = ActionsForPreviews() + + + static var previews: some View { + SubscriptionPlansView(model: model, actions: actions, dismissActions: actions) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/UserTriesToAccessPaidFeatureView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/UserTriesToAccessPaidFeatureView.swift index 4aac2ca1..a6524cac 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/UserTriesToAccessPaidFeatureView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Contacts/SingleOwnedIdentity/UserTriesToAccessPaidFeatureView.swift @@ -21,6 +21,7 @@ import SwiftUI import ObvTypes import ObvEngine import ObvUI +import ObvDesignSystem final class UserTriesToAccessPaidFeatureHostingController: UIHostingController { @@ -79,8 +80,6 @@ struct UserTriesToAccessPaidFeatureView: View { maxHeight: .none, alignment: .center) .font(.body) - .padding(.horizontal, 16) - .padding(.vertical, 16) } .padding(.bottom) OlvidButton(style: .blue, title: Text("BUTTON_LABEL_CHECK_SUBSCRIPTION"), systemIcon: .eyesInverse) { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/DebugLogStringViewerViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/DebugLogStringViewerViewController.swift index 78deca22..52bef1c5 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/DebugLogStringViewerViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/DebugLogStringViewerViewController.swift @@ -52,11 +52,9 @@ struct DebugLogStringViewerView: View { }.padding() } .onTapGesture(count: 1) { - if #available(iOS 14, *) { - UIPasteboard.general.setValue(logString, forPasteboardType: UTType.plainText.identifier) - let impactHeavy = UIImpactFeedbackGenerator(style: .medium) - impactHeavy.impactOccurred() - } + UIPasteboard.general.setValue(logString, forPasteboardType: UTType.plainText.identifier) + let impactHeavy = UIImpactFeedbackGenerator(style: .medium) + impactHeavy.impactOccurred() } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/DelegatesAndProtocols/OlvidMenuProvider.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/DelegatesAndProtocols/OlvidMenuProvider.swift index d2624b30..b87f7940 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/DelegatesAndProtocols/OlvidMenuProvider.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/DelegatesAndProtocols/OlvidMenuProvider.swift @@ -22,19 +22,14 @@ import SwiftUI protocol OlvidMenuProvider: UIViewController { - - + func provideMenu() -> UIMenu - - @available(iOS, introduced: 13, deprecated: 14, message: "Use provideMenu() instead") - func provideAlertActions() -> [UIAlertAction] } extension UIViewController { - func getFirstMenuAvailable() -> UIMenu? { assert(Thread.isMainThread) var currentViewController: UIViewController? = self @@ -46,19 +41,5 @@ extension UIViewController { } return nil } - - @available(iOS, introduced: 13, deprecated: 14, message: "Use getFirstParentMenuAvailable() instead") - func getFirstAlertActionsAvailable() -> [UIAlertAction] { - assert(Thread.isMainThread) - var currentViewController: UIViewController? = self - while let candidate = currentViewController { - if let parentMenuProvider = candidate as? OlvidMenuProvider { - return parentMenuProvider.provideAlertActions() - } - currentViewController = currentViewController?.parent - } - return [] - } - } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/DelegatesAndProtocols/ViewControllerWithEllipsisCircleRightBarButtonItem.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/DelegatesAndProtocols/ViewControllerWithEllipsisCircleRightBarButtonItem.swift index cade3560..f1c99fb8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/DelegatesAndProtocols/ViewControllerWithEllipsisCircleRightBarButtonItem.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/DelegatesAndProtocols/ViewControllerWithEllipsisCircleRightBarButtonItem.swift @@ -38,32 +38,5 @@ extension ViewControllerWithEllipsisCircleRightBarButtonItem { menu: menu) return ellipsisButton } - - @available(iOS, introduced: 13.0, deprecated: 14.0, message: "Used because iOS 13 does not support UIMenu on UIBarButtonItem") - func getConfiguredEllipsisCircleRightBarButtonItem(selector: Selector) -> UIBarButtonItem { - let symbolConfiguration = UIImage.SymbolConfiguration(pointSize: 20.0, weight: .bold) - let ellipsisImage = UIImage(systemIcon: .ellipsisCircle, withConfiguration: symbolConfiguration) - let ellipsisButton = UIBarButtonItem.init(image: ellipsisImage, style: UIBarButtonItem.Style.plain, target: self, action: selector) - return ellipsisButton - } - - - @available(iOS, introduced: 13.0, deprecated: 14.0, message: "Used because iOS 13 does not support UIMenu on UIBarButtonItem") - func ellipsisButtonTapped(sourceBarButtonItem: UIBarButtonItem?) { - let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) - alert.popoverPresentationController?.barButtonItem = sourceBarButtonItem - let alertActions = getFirstAlertActionsAvailable() - assert(!alertActions.isEmpty) - alertActions.forEach { alert.addAction($0) } - alert.addAction(UIAlertAction(title: CommonString.Word.Cancel, style: .cancel)) - if let presentedViewController = presentedViewController { - presentedViewController.dismiss(animated: true) { [weak self] in - self?.present(alert, animated: true) - } - } else { - present(alert, animated: true) - } - } - } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/DiscussionsFlowViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/DiscussionsFlowViewController.swift index 62a5441b..4292883b 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/DiscussionsFlowViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/DiscussionsFlowViewController.swift @@ -135,7 +135,12 @@ extension DiscussionsFlowViewController: RecentDiscussionsViewControllerDelegate // Local delete action alert.addAction(UIAlertAction(title: Strings.AlertConfirmAllDiscussionMessagesDeletion.actionDeleteAll, style: .destructive, handler: { (action) in - ObvMessengerInternalNotification.userRequestedDeletionOfPersistedDiscussion(persistedDiscussionObjectID: persistedDiscussion.objectID, deletionType: .local, completionHandler: completionHandler) + guard let ownedCryptoId = persistedDiscussion.ownedIdentity?.cryptoId else { return } + ObvMessengerInternalNotification.userRequestedDeletionOfPersistedDiscussion( + ownedCryptoId: ownedCryptoId, + discussionObjectID: persistedDiscussion.typedObjectID, + deletionType: .local, + completionHandler: completionHandler) .postOnDispatchQueue() })) @@ -156,7 +161,12 @@ extension DiscussionsFlowViewController: RecentDiscussionsViewControllerDelegate message: Strings.AlertConfirmAllDiscussionMessagesDeletionGlobally.message, preferredStyleForTraitCollection: self.traitCollection) alert.addAction(UIAlertAction(title: Strings.AlertConfirmAllDiscussionMessagesDeletion.actionDeleteAllGlobally, style: .destructive, handler: { (action) in - ObvMessengerInternalNotification.userRequestedDeletionOfPersistedDiscussion(persistedDiscussionObjectID: discussion.objectID, deletionType: .global, completionHandler: completionHandler) + guard let ownedCryptoId = discussion.ownedIdentity?.cryptoId else { return } + ObvMessengerInternalNotification.userRequestedDeletionOfPersistedDiscussion( + ownedCryptoId: ownedCryptoId, + discussionObjectID: discussion.typedObjectID, + deletionType: .global, + completionHandler: completionHandler) .postOnDispatchQueue() })) alert.addAction(UIAlertAction.init(title: CommonString.Word.Cancel, style: .cancel) { (action) in diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/BodyEditViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/BodyEditViewController.swift similarity index 99% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/BodyEditViewController.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/BodyEditViewController.swift index 6d024583..478b143a 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/BodyEditViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/BodyEditViewController.swift @@ -19,6 +19,7 @@ import ObvUI import SwiftUI +import ObvDesignSystem final class BodyEditViewController: UIHostingController, BodyEditViewStoreDelegate { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Compose/NewComposeMessageView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Compose/NewComposeMessageView.swift index 480e1784..2e111de4 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Compose/NewComposeMessageView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Compose/NewComposeMessageView.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -30,8 +30,11 @@ import ObvUI import Platform_Base import ObvUICoreData import Components_TextInputShortcutsResultView -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials import Discussions_Mentions_ComposeMessageBuilder +import ObvSettings +import ObvDesignSystem + /// Namespace for everything `NewComposeMessageView` related enum NewComposeMessageViewTypes { @@ -242,6 +245,7 @@ final class NewComposeMessageView: UIView, UITextViewDelegate, ViewShowingHardLi return df }() + private func button(for action: NewComposeMessageViewAction) -> UIButton? { switch action { case .oneTimeEphemeralMessage: @@ -284,12 +288,13 @@ final class NewComposeMessageView: UIView, UITextViewDelegate, ViewShowingHardLi guard !draft.isDeleted else { return false } switch action { case .oneTimeEphemeralMessage, - .scanDocument, .shootPhotoOrMovie, .chooseImageFromLibrary, .choseFile, .composeMessageSettings: return true + case .scanDocument: + return !ObvMessengerConstants.targetEnvironmentIsMacCatalyst case .introduceThisContact: switch try? draft.discussion.kind { case .oneToOne(withContactIdentity: let contactIdentity): @@ -369,6 +374,15 @@ final class NewComposeMessageView: UIView, UITextViewDelegate, ViewShowingHardLi CompositionViewFreezeManager.shared.unregister(self) } + override var isHidden: Bool { + get { + super.isHidden + } + set { + shortcutsView.isHidden = newValue + super.isHidden = newValue + } + } override func layoutSubviews() { super.layoutSubviews() @@ -1126,7 +1140,7 @@ extension NewComposeMessageView { assert(Thread.isMainThread) let imagePicker = UIImagePickerController() imagePicker.sourceType = .camera - imagePicker.mediaTypes = [kUTTypeImage, kUTTypeMovie] as [String] + imagePicker.mediaTypes = [UTType.image, UTType.movie].map(\.identifier) imagePicker.delegate = self imagePicker.allowsEditing = false animatedEndEditing { [weak self] _ in @@ -1177,8 +1191,7 @@ extension NewComposeMessageView { animatedEndEditing { [weak self] _ in guard let _self = self else { return } ObvAudioRecorder.shared.delegate = _self - let uti = AVFileType.m4a.rawValue - guard let fileExtention = ObvUTIUtils.preferredTagWithClass(inUTI: uti, inTagClass: .FilenameExtension) else { return } + guard let fileExtention = UTType.m4a.preferredFilenameExtension else { assertionFailure(); return } let name = "Recording @ \(_self.dateFormatter.string(from: Date()))" let tempFileName = [name, fileExtention].joined(separator: ".") let url = ObvUICoreDataConstants.ContainerURL.forTempFiles.appendingPathComponent(tempFileName) @@ -1926,7 +1939,9 @@ extension NewComposeMessageView: AutoGrowingTextViewDelegate { func userPastedItemProviders(in autoGrowingTextView: AutoGrowingTextView, itemProviders: [NSItemProvider]) { guard autoGrowingTextView == self.textViewForTyping else { assertionFailure(); return } - addAttachments(from: itemProviders) + Task { + await addAttachments(from: itemProviders) + } } func autoGrowingTextView(_ textView: AutoGrowingTextView, perform action: AutoGrowingTextViewTypes.DelegateTypes.Action) { @@ -2110,7 +2125,7 @@ extension NewComposeMessageView { /// Appends an array of `NSItemProvider`s to the current draft, either as text pasted in the text view, or as attachments. /// - Parameters: /// - itemProviders: An array of item providers to append - func addAttachments(from itemProviders: [NSItemProvider]) { + func addAttachments(from itemProviders: [NSItemProvider], attachAllItems: Bool = false) async { let draftPermanentID = draft.objectPermanentID @@ -2118,14 +2133,18 @@ extension NewComposeMessageView { // - One for the items we want to paste as text in the text view // - One for the items we want to add as attachments - let itemProvidersToPaste = itemProviders.filter({ $0.registeredTypeIdentifiers.contains(where: { $0.utiConformsTo(kUTTypeText) } ) }) - let itemProvidersToAttach = itemProviders.filter({ !itemProvidersToPaste.contains($0) }) + let itemProvidersToPaste = attachAllItems ? [] : itemProviders.filter { + $0.obvRegisteredContentTypes.contains(where: { $0.conforms(to: .text) } ) + } + let itemProvidersToAttach = itemProviders.filter { + !itemProvidersToPaste.contains($0) + } // Process the item providers that we want to paste as text (i.e. Strings and URLs) itemProvidersToPaste.forEach { itemProviderToPaste in let textViewForTyping = self.textViewForTyping - itemProviderToPaste.loadItem(forTypeIdentifier: String(kUTTypeText)) { item, error in + itemProviderToPaste.loadItem(forTypeIdentifier: UTType.text.identifier) { item, error in if let error { assertionFailure(error.localizedDescription) return @@ -2139,9 +2158,12 @@ extension NewComposeMessageView { } } } else { - DispatchQueue.main.async { - textViewForTyping.paste(itemProviders: [itemProviderToPaste]) - } + // 2023-08-03 As we made the NewComposeMessageView.addAttachments(from:) async, we commented this code + // that should never be executed anyway + assertionFailure() +// DispatchQueue.main.async { +// textViewForTyping.paste(itemProviders: [itemProviderToPaste]) +// } } } } @@ -2152,12 +2174,24 @@ extension NewComposeMessageView { delegateViewController?.showHUD(type: .spinner) do { try CompositionViewFreezeManager.shared.freeze(self) } catch { assertionFailure() } - NewSingleDiscussionNotification.userWantsToAddAttachmentsToDraft(draftPermanentID: draftPermanentID, itemProviders: itemProvidersToAttach) { success in - do { try CompositionViewFreezeManager.shared.unfreeze(draftPermanentID, success: success) } catch { assertionFailure() } - } - .postOnDispatchQueue(self.internalQueue) + let success = await sendUserWantsToAddAttachmentsToDraftNotification(draftPermanentID: draftPermanentID, itemProviders: itemProvidersToAttach) + do { try CompositionViewFreezeManager.shared.unfreeze(draftPermanentID, success: success) } catch { assertionFailure() } } + + + private func sendUserWantsToAddAttachmentsToDraftNotification(draftPermanentID: ObvManagedObjectPermanentID, itemProviders: [NSItemProvider]) async -> Bool { + return await withCheckedContinuation { (continuation: CheckedContinuation) in + NewSingleDiscussionNotification.userWantsToAddAttachmentsToDraft( + draftPermanentID: draftPermanentID, + itemProviders: itemProviders) + { success in + continuation.resume(returning: success) + } + .postOnDispatchQueue(self.internalQueue) + } + } + } // MARK: - AirDrop files @@ -2198,7 +2232,7 @@ extension NewComposeMessageView: UIImagePickerControllerDelegate, UINavigationCo do { try CompositionViewFreezeManager.shared.unfreeze(draftPermanentID, success: false) } catch { assertionFailure() } return } - guard ([kUTTypeImage, kUTTypeMovie] as [String]).contains(chosenMediaType) else { + guard ([UTType.image, .movie].map(\.identifier)).contains(chosenMediaType) else { do { try CompositionViewFreezeManager.shared.unfreeze(draftPermanentID, success: false) } catch { assertionFailure() } return } @@ -2232,13 +2266,9 @@ extension NewComposeMessageView: UIImagePickerControllerDelegate, UINavigationCo } .postOnDispatchQueue() } else if let originalImage = info[.originalImage] as? UIImage { - let uti = String(kUTTypeJPEG) - guard let fileExtention = ObvUTIUtils.preferredTagWithClass(inUTI: uti, inTagClass: .FilenameExtension) else { - do { try CompositionViewFreezeManager.shared.unfreeze(draftPermanentID, success: false) } catch { assertionFailure() } - return - } + let fileExtension = UTType.jpeg.preferredFilenameExtension ?? "jpeg" let name = "Photo @ \(dateFormatter.string(from: Date()))" - let tempFileName = [name, fileExtention].joined(separator: ".") + let tempFileName = [name, fileExtension].joined(separator: ".") let url = ObvUICoreDataConstants.ContainerURL.forTempFiles.appendingPathComponent(tempFileName) guard let pickedImageJpegData = originalImage.jpegData(compressionQuality: 1.0) else { do { try CompositionViewFreezeManager.shared.unfreeze(draftPermanentID, success: false) } catch { assertionFailure() } @@ -2302,7 +2332,7 @@ extension NewComposeMessageView: VNDocumentCameraViewControllerDelegate { // Write the pdf to a temporary location let name = "Scan @ \(dateFormatter.string(from: Date()))" - let tempFileName = [name, String(kUTTypePDF)].joined(separator: ".") + let tempFileName = [name, UTType.pdf.preferredFilenameExtension ?? "pdf"].joined(separator: ".") let url = ObvUICoreDataConstants.ContainerURL.forTempFiles.appendingPathComponent(tempFileName) guard pdfDocument.write(to: url) else { do { try CompositionViewFreezeManager.shared.unfreeze(draftPermanentID, success: false) } catch { assertionFailure() } @@ -2380,10 +2410,3 @@ extension Optional where Wrapped == TextInputShortcutsResultView.TextShortcutIte } } } - - -fileprivate extension String { - func utiConformsTo(_ otherUTI: CFString) -> Bool { - UTTypeConformsTo(self as CFString, otherUTI) - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Compose/Subviews/AutoGrowingTextView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Compose/Subviews/AutoGrowingTextView.swift index a5d12286..07a2d2f2 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Compose/Subviews/AutoGrowingTextView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Compose/Subviews/AutoGrowingTextView.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,9 +22,7 @@ import MobileCoreServices import OSLog import Platform_Base import Discussions_Mentions_AutoGrowingTextView_TextViewDelegateProxy -#if DEBUG import UniformTypeIdentifiers -#endif import Platform_UIKit_Additions import ObvUICoreData import Components_TextInputShortcutsResultView @@ -86,9 +84,7 @@ final class AutoGrowingTextView: UITextViewFixed { action: #selector(handleKeyCommand))..{ $0.title = NSLocalizedString("Send", comment: "Send word, capitalized") - if #available(iOS 15.0, *) { - $0.wantsPriorityOverSystemBehavior = true - } + $0.wantsPriorityOverSystemBehavior = true } private var __userIsEnteringAShortcut = false @@ -589,7 +585,26 @@ extension AutoGrowingTextView { override func paste(_ sender: Any?) { assert(autoGrowingTextViewDelegate != nil) guard !UIPasteboard.general.itemProviders.isEmpty else { return } - autoGrowingTextViewDelegate?.userPastedItemProviders(in: self, itemProviders: UIPasteboard.general.itemProviders) + // When performing a copy/paste of an URL (e.g., share a webpage from Safari, tap on Copy in the share sheet, then paste here), + // the NSItemProvider provided by the UIPasteboard cannot be loaded as text and is thus eventually sent to the LoadItemProviderOperation (that fails to load it as an URL). + // Consequently, was cannot just transfer the UIPasteboard.general.itemProviders. + // We thus decided to apply the following strategy: + // For each pasteboard item: + // - if the item has only one representation, and it is of type kUTTypeText or kUTTypeURL, we load it as text, create an NSItemProvider for that text and use it instead of the one provided by UIPasteboard.general.itemProviders + // - otherwise, we keep the NSItemProvider provided in UIPasteboard.general.itemProviders + var pastedItemProviders = [NSItemProvider]() + for (itemNumber, item) in UIPasteboard.general.items.enumerated() { + if let pastedString = (item[UTType.text.identifier] as? String) ?? (item[UTType.plainText.identifier] as? String) ?? (item[UTType.utf8PlainText.identifier] as? String) { + let itemProvider = NSItemProvider(item: pastedString as NSString, typeIdentifier: UTType.text.identifier) + pastedItemProviders.append(itemProvider) + } else if item.keys.count == 1, let pastedURL = item[UTType.url.identifier] as? URL, UIApplication.shared.canOpenURL(pastedURL) { + let itemProvider = NSItemProvider(item: pastedURL.absoluteString as NSString, typeIdentifier: UTType.text.identifier) + pastedItemProviders.append(itemProvider) + } else if UIPasteboard.general.itemProviders.count > itemNumber { + pastedItemProviders.append(UIPasteboard.general.itemProviders[itemNumber]) + } + } + autoGrowingTextViewDelegate?.userPastedItemProviders(in: self, itemProviders: pastedItemProviders) } #if DEBUG //allow copying the attributed text for debugging purposes; will need to be refactored to work with `AttributedString` and get a JSON representation, much better for debugging compared to RTF diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Compose/Subviews/UITextInput+Shortcuts.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Compose/Subviews/UITextInput+Shortcuts.swift index 6f37a871..2601e107 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Compose/Subviews/UITextInput+Shortcuts.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Compose/Subviews/UITextInput+Shortcuts.swift @@ -36,7 +36,7 @@ protocol OlvidTextInput: UITextInput { func olvid_word(at nsRange: NSRange) -> (result: String, range: Range)? - func olvid_word(at range: Range) -> (result: String, range: Range)? + //func olvid_word(at range: Range) -> (result: String, range: Range)? func olvid_lookup(for prefixes: Set, excludedRanges: Set) -> OlvidTextInputTypes.LookupResult? } @@ -71,45 +71,45 @@ extension UITextView: OlvidTextInput { return (result.word, result.range) } - func olvid_word(at range: Range) -> (result: String, range: Range)? { - guard let text, - text.isEmpty == false else { - return nil - } - - let lhs = text[.. text.startIndex { - let characterBeforeCursor = text[text.index(before: range.lowerBound)..(uncheckedBounds: (lower: range.lowerBound, upper: text.index(range.lowerBound, offsetBy: rhsWord.count))) - - return (rhsWord, rhsRange) - } - } - - let word = lhsWord.appending(rhsWord) - - if word.contains("\n") { - return (word.components(separatedBy: .newlines).last!, text.range(of: word)!) - } - - let range = text.index(range.lowerBound, offsetBy: -lhsWord.count)..) -> (result: String, range: Range)? { +// guard let text, +// text.isEmpty == false else { +// return nil +// } +// +// let lhs = text[.. text.startIndex { +// let characterBeforeCursor = text[text.index(before: range.lowerBound)..(uncheckedBounds: (lower: range.lowerBound, upper: text.index(range.lowerBound, offsetBy: rhsWord.count))) +// +// return (rhsWord, rhsRange) +// } +// } +// +// let word = lhsWord.appending(rhsWord) +// +// if word.contains("\n") { +// return (word.components(separatedBy: .newlines).last!, text.range(of: word)!) +// } +// +// let range = text.index(range.lowerBound, offsetBy: -lhsWord.count).., excludedRanges: Set) -> OlvidTextInputTypes.LookupResult? { guard prefixes.isEmpty == false else { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/DiscussionCacheManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/DiscussionCacheManager.swift index edee7415..a3bf8647 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/DiscussionCacheManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/DiscussionCacheManager.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,7 @@ import ObvUICoreData import os.log import QuickLook import UIKit +import ObvDesignSystem @available(iOS 15.0, *) @@ -54,8 +55,8 @@ final class DiscussionCacheManager: DiscussionCacheDelegate { private var replyToCache = [TypeSafeManagedObjectID: ReplyToBubbleView.Configuration]() private var replyToCacheCompletions = [TypeSafeManagedObjectID: [() -> Void]]() - private var downsizedThumbnailCache = [TypeSafeManagedObjectID: UIImage]() - private var downsizedThumbnailCacheCompletions = [TypeSafeManagedObjectID: [(Result) -> Void]]() + private var downsizedThumbnailCache = [TypeSafeManagedObjectID: UIImage]() + private var downsizedThumbnailCacheCompletions = [TypeSafeManagedObjectID: [(Result) -> Void]]() private let internalQueue = DispatchQueue(label: "DiscussionCacheManager internal queue") private let queueForPostingNotifications = DispatchQueue(label: "DiscussionCacheManager internal queue for posting notifications") @@ -435,7 +436,7 @@ final class DiscussionCacheManager: DiscussionCacheDelegate { if replyTo.isRemoteWiped { var deleterName: String? - if let ownedCryptoId = replyTo.discussion.ownedIdentity?.cryptoId, + if let ownedCryptoId = replyTo.discussion?.ownedIdentity?.cryptoId, let deleterCryptoId = replyTo.deleterCryptoId, let contact = try? PersistedObvContactIdentity.get(contactCryptoId: deleterCryptoId, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: ObvStack.shared.viewContext) { deleterName = contact.customOrShortDisplayName @@ -560,17 +561,17 @@ final class DiscussionCacheManager: DiscussionCacheDelegate { // MARK: - Downsized thumbnails - func getCachedDownsizedThumbnail(objectID: TypeSafeManagedObjectID) -> UIImage? { + func getCachedDownsizedThumbnail(objectID: TypeSafeManagedObjectID) -> UIImage? { return downsizedThumbnailCache[objectID] } - func removeCachedDownsizedThumbnail(objectID: TypeSafeManagedObjectID) { + func removeCachedDownsizedThumbnail(objectID: TypeSafeManagedObjectID) { _ = downsizedThumbnailCache.removeValue(forKey: objectID) } - func requestDownsizedThumbnail(objectID: TypeSafeManagedObjectID, data: Data, completionWhenImageCached: @escaping ((Result) -> Void)) { + func requestDownsizedThumbnail(objectID: TypeSafeManagedObjectID, data: Data, completionWhenImageCached: @escaping ((Result) -> Void)) { assert(Thread.isMainThread) @@ -595,7 +596,7 @@ final class DiscussionCacheManager: DiscussionCacheDelegate { } } - private func requestDownsizedThumbnailFailed(objectID: TypeSafeManagedObjectID, errorMessage: String) { + private func requestDownsizedThumbnailFailed(objectID: TypeSafeManagedObjectID, errorMessage: String) { assert(!Thread.isMainThread) DispatchQueue.main.async { [weak self] in guard let _self = self else { return } @@ -607,7 +608,7 @@ final class DiscussionCacheManager: DiscussionCacheDelegate { } - private func requestDownsizedThumbnailFailedSucceeded(objectID: TypeSafeManagedObjectID, imageToCache: UIImage) { + private func requestDownsizedThumbnailFailedSucceeded(objectID: TypeSafeManagedObjectID, imageToCache: UIImage) { assert(!Thread.isMainThread) DispatchQueue.main.async { [weak self] in guard let _self = self else { return } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/DiscussionGallery/DiscussionGalleryViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/DiscussionGallery/DiscussionGalleryViewController.swift index d43be513..344d71e1 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/DiscussionGallery/DiscussionGalleryViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/DiscussionGallery/DiscussionGalleryViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,6 +29,7 @@ import QuickLook import UIKit import UniformTypeIdentifiers import UI_SystemIcon +import ObvDesignSystem fileprivate enum JoinKind: Int, CaseIterable { @@ -508,7 +509,7 @@ extension JoinGalleryViewController { do { try await cacheDelegate.requestPreparedImage(objectID: join.typedObjectID, size: thumbnailSize) } catch { - cell.updateWith(join: join, thumbnail: .error(uti: join.uti)) + cell.updateWith(join: join, thumbnail: .error(contentType: join.contentType)) return } joinNeedsUpdate(objectID: join.typedObjectID) @@ -758,7 +759,7 @@ extension JoinGalleryViewController { // Show in discussion action - if let messagePermanentID = join.message?.messagePermanentID, let ownedCryptoId = join.message?.discussion.ownedIdentity?.cryptoId { + if let messagePermanentID = join.message?.messagePermanentID, let ownedCryptoId = join.message?.discussion?.ownedIdentity?.cryptoId { let action = UIAction(title: NSLocalizedString("SHOW_IN_DISCUSSION", comment: "")) { (_) in let deepLink = ObvDeepLink.message(ownedCryptoId: ownedCryptoId, objectPermanentID: messagePermanentID) ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: deepLink) @@ -798,7 +799,7 @@ fileprivate protocol GalleryViewCell: UICollectionViewCell { enum ThumbnailValue: Hashable { case computing case computed(_: UIImage) - case error(uti: String) + case error(contentType: UTType) } @available(iOS 15.0, *) @@ -940,10 +941,10 @@ final class DocumentViewCell: UICollectionViewListCell, GalleryViewCell { let dateString = dateFormatter.string(from: date) subtitleElements.append(dateString) } - let uti = join.uti + let contentType = join.contentType let fileSize = Int(join.totalByteCount) subtitleElements.append(byteCountFormatter.string(fromByteCount: Int64(fileSize))) - if let uti = UTType(uti), let type = uti.localizedDescription { + if let type = contentType.localizedDescription { subtitleElements.append(type) } content.secondaryText = subtitleElements.joined(separator: " - ") @@ -957,7 +958,7 @@ final class DocumentViewCell: UICollectionViewListCell, GalleryViewCell { listContentView.configuration = content let joinIsPlayable: Bool - joinIsPlayable = ObvUTIUtils.uti(uti, conformsTo: kUTTypeAudio) + joinIsPlayable = contentType.conforms(to: .audio) let imageConfiguration = DocumentCellConfiguration(thumbnail: self.thumbnail, readingRequiresUserAction: self.readingRequiresUserAction, @@ -1118,8 +1119,8 @@ extension ImageCellConfiguration { switch thumbnail { case .computing: return nil - case .error(uti: let uti): - let icon = ObvUTIUtils.getIcon(forUTI: uti) + case .error(contentType: let contentType): + let icon = contentType.systemIcon return IconView.Configuration(icon: icon, tintColor: .secondaryLabel) case .computed: return nil diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutSectionInfos.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutSectionInfos.swift similarity index 98% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutSectionInfos.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutSectionInfos.swift index f22b0b24..0e5a18a6 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutSectionInfos.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutSectionInfos.swift @@ -20,8 +20,8 @@ import UIKit struct ObvCollectionViewLayoutSectionInfos { - + let frame: CGRect let largestItemWithValidOrigin: Int? - + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutSupplementaryViewInfos.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutSupplementaryViewInfos.swift similarity index 100% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutSupplementaryViewInfos.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutSupplementaryViewInfos.swift diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/HostingViewControllers/ReceivedMessageInfosHostingViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/HostingViewControllers/ReceivedMessageInfosHostingViewController.swift similarity index 96% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/HostingViewControllers/ReceivedMessageInfosHostingViewController.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/HostingViewControllers/ReceivedMessageInfosHostingViewController.swift index f5b5e9f8..db412a45 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/HostingViewControllers/ReceivedMessageInfosHostingViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/HostingViewControllers/ReceivedMessageInfosHostingViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,7 +24,6 @@ import ObvTypes import ObvUICoreData - final class ReceivedMessageInfosHostingViewController: UIHostingController { private var store: ReceivedMessageInfosViewStore! @@ -79,7 +78,7 @@ fileprivate final class ReceivedMessageInfosViewStore: ObservableObject { let messageReceivedObjectID: NSManagedObjectID init?(messageReceived: PersistedMessageReceived) { - guard let ownedCryptoId = messageReceived.discussion.ownedIdentity?.cryptoId else { return nil } + guard let ownedCryptoId = messageReceived.discussion?.ownedIdentity?.cryptoId else { return nil } self.ownedCryptoId = ownedCryptoId self.messageReceivedObjectID = messageReceived.objectID self.timeBasedDeletionDateString = nil @@ -118,14 +117,14 @@ fileprivate final class ReceivedMessageInfosViewStore: ObservableObject { private func computeTimeBasedDeletionDate(within context: NSManagedObjectContext) -> String? { guard let messageReceived = try? PersistedMessageReceived.get(with: messageReceivedObjectID, within: context) as? PersistedMessageReceived else { return nil } - guard let timeInterval = messageReceived.discussion.effectiveTimeIntervalRetention else { return nil } + guard let timeInterval = messageReceived.discussion?.effectiveTimeIntervalRetention else { return nil } let deletionDate = Date(timeInterval: timeInterval, since: messageReceived.timestamp) return ReceivedMessageInfosViewStore.dateFormater.string(from: deletionDate) } private func computeNumberOfNewMessagesBeforeSuppression(within context: NSManagedObjectContext) -> Int? { guard let messageReceived = try? PersistedMessageReceived.get(with: messageReceivedObjectID, within: context) as? PersistedMessageReceived else { return nil } - let discussion = messageReceived.discussion + guard let discussion = messageReceived.discussion else { return nil } guard let countBasedRetention = discussion.effectiveCountBasedRetention else { return nil } var totalNumberOfMessagesInDiscussionAfterThisMessage = 0 do { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/HostingViewControllers/SentMessageInfosHostingViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/HostingViewControllers/SentMessageInfosHostingViewController.swift similarity index 97% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/HostingViewControllers/SentMessageInfosHostingViewController.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/HostingViewControllers/SentMessageInfosHostingViewController.swift index 4d697f3b..0bbb4e1f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/HostingViewControllers/SentMessageInfosHostingViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/HostingViewControllers/SentMessageInfosHostingViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,7 +24,6 @@ import ObvTypes import ObvUICoreData - final class SentMessageInfosHostingViewController: UIHostingController { private var store: SentMessageInfosViewStore! @@ -80,7 +79,7 @@ fileprivate final class SentMessageInfosViewStore: ObservableObject { @MainActor init?(messageSent: PersistedMessageSent) { - guard let ownedCryptoId = messageSent.discussion.ownedIdentity?.cryptoId else { return nil } + guard let ownedCryptoId = messageSent.discussion?.ownedIdentity?.cryptoId else { return nil } self.ownedCryptoId = ownedCryptoId self.sortedInfos = SentMessageInfosViewStore.computeRecipientAndInfos(from: messageSent.unsortedRecipientsInfos) self.messageSentObjectID = messageSent.objectID @@ -185,7 +184,7 @@ fileprivate final class SentMessageInfosViewStore: ObservableObject { private func computeTimeBasedDeletionDate(within context: NSManagedObjectContext) -> String? { guard let messageSent = try? PersistedMessageSent.get(with: messageSentObjectID, within: context) as? PersistedMessageSent else { return nil } guard messageSent.wasSentOrCouldNotBeSentToOneOrMoreRecipients else { return nil } - guard let timeInterval = messageSent.discussion.effectiveTimeIntervalRetention else { return nil } + guard let timeInterval = messageSent.discussion?.effectiveTimeIntervalRetention else { return nil } let deletionDate = Date(timeInterval: timeInterval, since: messageSent.timestamp) return SentMessageInfosViewStore.dateFormater.string(from: deletionDate) } @@ -194,7 +193,7 @@ fileprivate final class SentMessageInfosViewStore: ObservableObject { private func computeNumberOfNewMessagesBeforeSuppression(within context: NSManagedObjectContext) -> Int? { guard let messageSent = try? PersistedMessageSent.get(with: messageSentObjectID, within: context) as? PersistedMessageSent else { return nil } guard messageSent.wasSentOrCouldNotBeSentToOneOrMoreRecipients else { return nil } - let discussion = messageSent.discussion + guard let discussion = messageSent.discussion else { assertionFailure(); return nil } guard let countBasedRetention = discussion.effectiveCountBasedRetention else { return nil } var totalNumberOfMessagesInDiscussionAfterThisMessage = 0 do { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/DateInfosOfSentMessageToManyContacts.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/DateInfosOfSentMessageToManyContacts.swift similarity index 89% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/DateInfosOfSentMessageToManyContacts.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/DateInfosOfSentMessageToManyContacts.swift index b808cb6d..d7e886f0 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/DateInfosOfSentMessageToManyContacts.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/DateInfosOfSentMessageToManyContacts.swift @@ -45,7 +45,7 @@ struct DateInfosOfSentMessageToManyContactsInnerView: View { var body: some View { if !read.isEmpty { - Section(header: ObvLabel("Read", systemIcon: .eyeFill), content: { + Section(header: Label("Read", systemIcon: .eyeFill), content: { ForEach(read) { info in HorizontalTitleAndSubtitle(title: info.recipientName, subtitle: info.timestampAsString) @@ -53,7 +53,7 @@ struct DateInfosOfSentMessageToManyContactsInnerView: View { }) } if !delivered.isEmpty { - Section(header: ObvLabel("Delivered", systemIcon: .checkmarkCircleFill), content: { + Section(header: Label("Delivered", systemIcon: .checkmarkCircleFill), content: { ForEach(delivered) { info in HorizontalTitleAndSubtitle(title: info.recipientName, subtitle: info.timestampAsString) @@ -61,7 +61,7 @@ struct DateInfosOfSentMessageToManyContactsInnerView: View { }) } if !sent.isEmpty { - Section(header: ObvLabel("Sent", systemIcon: .checkmarkCircle), content: { + Section(header: Label("Sent", systemIcon: .checkmarkCircle), content: { ForEach(sent) { info in HorizontalTitleAndSubtitle(title: info.recipientName, subtitle: info.timestampAsString) @@ -69,7 +69,7 @@ struct DateInfosOfSentMessageToManyContactsInnerView: View { }) } if !pending.isEmpty { - Section(header: ObvLabel("Pending", systemIcon: .hourglass), content: { + Section(header: Label("Pending", systemIcon: .hourglass), content: { ForEach(pending) { info in HorizontalTitleAndSubtitle(title: info.recipientName, subtitle: "") @@ -77,7 +77,7 @@ struct DateInfosOfSentMessageToManyContactsInnerView: View { }) } if !failed.isEmpty { - Section(header: ObvLabel("Failed", systemIcon: .exclamationmarkCircle), content: { + Section(header: Label("Failed", systemIcon: .exclamationmarkCircle), content: { ForEach(failed) { info in HorizontalTitleAndSubtitle(title: info.recipientName, subtitle: "") diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/DateInfosOfSentMessageToSingleContact.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/DateInfosOfSentMessageToSingleContact.swift similarity index 100% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/DateInfosOfSentMessageToSingleContact.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/DateInfosOfSentMessageToSingleContact.swift diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/HorizontalTitleAndSubtitle.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/HorizontalTitleAndSubtitle.swift similarity index 98% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/HorizontalTitleAndSubtitle.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/HorizontalTitleAndSubtitle.swift index 93d0a0df..5a6f30d8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/HorizontalTitleAndSubtitle.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/HorizontalTitleAndSubtitle.swift @@ -19,6 +19,7 @@ import ObvUI import SwiftUI +import ObvDesignSystem struct HorizontalTitleAndSubtitle: View { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/MessageMetadatasSectionView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/MessageMetadatasSectionView.swift similarity index 90% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/MessageMetadatasSectionView.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/MessageMetadatasSectionView.swift index 466b39b3..e9859ea0 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/MessageMetadatasSectionView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/MessageMetadatasSectionView.swift @@ -24,6 +24,7 @@ import ObvTypes import SwiftUI import UI_SystemIcon import UI_SystemIcon_SwiftUI +import ObvDesignSystem struct MessageMetadatasSectionView: View { @@ -80,7 +81,9 @@ fileprivate struct MetadataView: View { case .read: return NSLocalizedString("Read", comment: "") case .wiped: return NSLocalizedString("Wiped", comment: "") case .remoteWiped(remoteCryptoId: let cryptoId): - if let contact = try? PersistedObvContactIdentity.get(contactCryptoId: cryptoId, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: ObvStack.shared.viewContext) { + if cryptoId == ownedCryptoId { + return String.localizedStringWithFormat(NSLocalizedString("REMOTELY_WIPED_BY_YOU", comment: "")) + } else if let contact = try? PersistedObvContactIdentity.get(contactCryptoId: cryptoId, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: ObvStack.shared.viewContext) { return String.localizedStringWithFormat(NSLocalizedString("Remotely wiped by %@", comment: ""), contact.customDisplayName ?? contact.fullDisplayName) } else { return NSLocalizedString("Remotely wiped", comment: "") diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/MessageRetentionInfoSectionView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/MessageRetentionInfoSectionView.swift similarity index 89% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/MessageRetentionInfoSectionView.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/MessageRetentionInfoSectionView.swift index a8f0dd95..d75f7f0e 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/MessageRetentionInfoSectionView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/MessageRetentionInfoSectionView.swift @@ -19,6 +19,7 @@ import ObvUI import SwiftUI +import ObvDesignSystem struct MessageRetentionInfoSectionView: View { @@ -30,7 +31,7 @@ struct MessageRetentionInfoSectionView: View { Section(header: Text("RETENTION_INFO_LABEL")) { if let dateString = timeBasedDeletionDateString { HStack(alignment: .firstTextBaseline) { - ObvLabel("EXPECTED_DELETION_DATE", systemImage: "calendar.badge.clock") + Label("EXPECTED_DELETION_DATE", systemImage: "calendar.badge.clock") Spacer() Text(dateString) .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) @@ -39,13 +40,13 @@ struct MessageRetentionInfoSectionView: View { if let number = numberOfNewMessagesBeforeSuppression { if number >= 0 { HStack(alignment: .firstTextBaseline) { - ObvLabel("NUMBER_OF_MESSAGES_BEFORE_DELETION", systemImage: "number") + Label("NUMBER_OF_MESSAGES_BEFORE_DELETION", systemImage: "number") Spacer() Text("\(number)") .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) } } else { - ObvLabel("WILL_SOON_BE_DELETED", systemImage: "number") + Label("WILL_SOON_BE_DELETED", systemImage: "number") } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/ReceivedAttachementInfosView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/ReceivedAttachementInfosView.swift similarity index 96% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/ReceivedAttachementInfosView.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/ReceivedAttachementInfosView.swift index 116015ff..0bfcac29 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/ReceivedAttachementInfosView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/ReceivedAttachementInfosView.swift @@ -55,8 +55,10 @@ fileprivate extension ReceivedFyleMessageJoinWithStatus { var isProgressShown: Bool { switch self.status { - case .downloading: return true - case .downloadable, .complete, .cancelledByServer: return false + case .downloading: + return true + case .downloadable, .complete, .cancelledByServer: + return false } } @@ -107,7 +109,7 @@ struct ReceivedFyleMessageJoinWithStatusView: View { var body: some View { // The ObvLabelAlt view is replicated to prevent an animation glitch when the progress disappears - if #available(iOS 15, *), isProgressShown { + if isProgressShown { VStack(alignment: .leading) { ObvLabelAlt(title: filename, systemIcon: systemIcon) VStack(alignment: .leading) { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/ReceivedMessageStatusView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/ReceivedMessageStatusView.swift similarity index 98% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/ReceivedMessageStatusView.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/ReceivedMessageStatusView.swift index b0508a0c..5a67afdf 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/ReceivedMessageStatusView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/ReceivedMessageStatusView.swift @@ -21,6 +21,7 @@ import ObvUI import ObvUICoreData import SwiftUI import UI_SystemIcon +import ObvDesignSystem struct ReceivedMessageStatusView: View { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/SentAttachementInfosView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/SentAttachementInfosView.swift similarity index 94% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/SentAttachementInfosView.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/SentAttachementInfosView.swift index 9bc42569..dbebb7ba 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/SentAttachementInfosView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/SentAttachementInfosView.swift @@ -53,13 +53,18 @@ fileprivate extension SentFyleMessageJoinWithStatus { case .uploadable: return .circleDashed case .uploading: return .arrowUpCircle case .complete: return .checkmarkCircle + case .downloadable: return .arrowDownCircle + case .downloading: return .arrowDownCircle + case .cancelledByServer: return .exclamationmarkCircle } } var isProgressShown: Bool { switch self.status { - case .uploadable, .uploading: return true - case .complete: return false + case .uploadable, .uploading, .downloading: + return true + case .complete, .downloadable, .cancelledByServer: + return false } } @@ -125,7 +130,7 @@ struct SentFyleMessageJoinWithStatusView: View { allPersistedAttachmentSentRecipientInfos: attachmentInfosForThisSentFyleMessageJoinWithStatusView) } label: { // The ObvLabelAlt view is replicated to prevent an animation glitch when the progress disappears - if #available(iOS 15, *), isProgressShown { + if isProgressShown { VStack(alignment: .leading) { ObvLabelAlt(title: filename, systemIcon: systemIcon) VStack(alignment: .leading) { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/SentMessageStatusView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/SentMessageStatusView.swift similarity index 94% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/SentMessageStatusView.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/SentMessageStatusView.swift index 96b7453b..ef842da8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/MessageDetails/SwiftUIViews/SentMessageStatusView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageDetails/SwiftUIViews/SentMessageStatusView.swift @@ -21,6 +21,8 @@ import ObvUI import ObvUICoreData import SwiftUI import UI_SystemIcon +import ObvDesignSystem + struct SentMessageStatusView: View { @@ -43,6 +45,8 @@ struct SentMessageStatusView: View { return .exclamationmarkCircle case .hasNoRecipient: return .iphoneGen3CircleFill + case .sentFromAnotherOwnedDevice: + return .iphoneGen3CircleFill } } @@ -55,6 +59,7 @@ struct SentMessageStatusView: View { case .read: return CommonString.Word.Read case .couldNotBeSentToOneOrMoreRecipients: return NSLocalizedString("FAILED", comment: "") case .hasNoRecipient: return CommonString.Word.Stored + case .sentFromAnotherOwnedDevice: return "" } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageReactionsView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageReactionsView.swift index e8ad0246..4d894711 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageReactionsView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/MessageReactionsView.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,6 +25,8 @@ import ObvUICoreData import SwiftUI import UI_SystemIcon import UI_SystemIcon_SwiftUI +import ObvSettings + final class MessageReactionsListHostingViewController: UIHostingController, MessageReactionsListViewModelDelegate { @@ -40,6 +42,17 @@ final class MessageReactionsListHostingViewController: UIHostingController>() + private var messagesToMarkAsNotNewWhenScrollingEnds = [MessageIdentifier]() private var atLeastOneSnapshotWasApplied = false private var isRegisteredToKeyboardNotifications = false private var visibilityTrackerForSensitiveMessages: VisibilityTrackerForSensitiveMessages private lazy var scrollToBottomButton = ScrollToBottomButton(observing: collectionView, initialVerticalVisibilityThreshold: 0) private let viewDidLayoutSubviewsSubject = PassthroughSubject() + private var isDragSessionInProgress = false /// We must adapt the collection view's insets when the frame of the main content view of the composition view changes, when the keyboard shows/hides, but only when we are not scrolling. /// To do so, we three values representing those states, and adapt the insets when appropriate. We use the ``NewComposeMessageView`` published main content view frame, the published ``currentScrolling`` value, and the following ``toggledWhenKeyboardDidHideOrShow`` variable, toggled whenever the keyboard changes state. @@ -104,13 +106,6 @@ final class NewSingleDiscussionViewController: UIViewController, NSFetchedResult private var filesViewer: FilesViewer? - private lazy var attachmentsDropView = AttachmentsDropView( - allowedTypes: [.image, .movie, .pdf, .data, .item], - directoryForTemporaryFiles: ObvUICoreDataConstants.ContainerURL.forTemporaryDroppedItems.url - )..{ - $0.delegate = self - } - /// Allows to keep track of the message the user wants to forward until she chose the appropriate discussions. private var messageToForward: PersistedMessage? @@ -376,7 +371,7 @@ final class NewSingleDiscussionViewController: UIViewController, NSFetchedResult } collectionView.adjustedScrollToItem(at: indexPath, at: .centeredVertically, completion: completionAndAnimate) case .newMessageSystemOrLastMessage: - if let unreadMessagesSystemMessage = unreadMessagesSystemMessage { + if let unreadMessagesSystemMessage { guard let indexPath = frc.indexPath(forObject: unreadMessagesSystemMessage) else { assertionFailure(); return } collectionView.adjustedScrollToItem(at: indexPath, at: .centeredVertically, completion: completion) } else { @@ -420,7 +415,7 @@ final class NewSingleDiscussionViewController: UIViewController, NSFetchedResult self?.configureNewComposeMessageViewVisibility(animate: true) } }, - ObvMessengerCoreDataNotification.observePersistedGroupV2UpdateIsFinished { [weak self] groupV2ObjectID in + ObvMessengerCoreDataNotification.observePersistedGroupV2UpdateIsFinished { [weak self] groupV2ObjectID, _, _ in OperationQueue.main.addOperation { guard let group = try? PersistedGroupV2.get(objectID: groupV2ObjectID, within: ObvStack.shared.viewContext) else { return } guard group.discussion?.typedObjectID.downcast == discussionObjectID else { return } @@ -458,6 +453,11 @@ final class NewSingleDiscussionViewController: UIViewController, NSFetchedResult os_log("🛫 End call to theUserLeftTheDiscussion as scene enters background", log: log, type: .info) } }, + ObvMessengerCoreDataNotification.observeStatusOfSentFyleMessageJoinDidChange { [weak self] (sentJoinID, messageID, discussionID) in + Task { + await self?.processStatusOfSentFyleMessageJoinDidChange(sentJoinID: sentJoinID, messageID: messageID, discussionID: discussionID) + } + }, ]) } @@ -586,6 +586,8 @@ extension NewSingleDiscussionViewController { collectionView.alwaysBounceVertical = true collectionView.scrollsToTop = false collectionView.contentInsetAdjustmentBehavior = .automatic + collectionView.dropDelegate = self + collectionView.dragDelegate = self NSLayoutConstraint.activate([ collectionView.topAnchor.constraint(equalTo: view.topAnchor), @@ -611,7 +613,6 @@ extension NewSingleDiscussionViewController { spinner.startAnimating() view.addSubview(scrollToBottomButton) - view.addSubview(attachmentsDropView) let attachmentsDropViewLayoutGuide = UILayoutGuide() @@ -630,14 +631,6 @@ extension NewSingleDiscussionViewController { composeMessageView!.topAnchor.constraint(equalToSystemSpacingBelow: attachmentsDropViewLayoutGuide.bottomAnchor, multiplier: 1), ]) - NSLayoutConstraint.activate([ - attachmentsDropView.topAnchor.constraint(equalTo: attachmentsDropViewLayoutGuide.topAnchor), - attachmentsDropView.trailingAnchor.constraint(equalTo: attachmentsDropViewLayoutGuide.trailingAnchor), - attachmentsDropView.bottomAnchor.constraint(equalTo: attachmentsDropViewLayoutGuide.bottomAnchor), - attachmentsDropView.leadingAnchor.constraint(equalTo: attachmentsDropViewLayoutGuide.leadingAnchor), - ]) - - view.addInteraction(UIDropInteraction(attachmentsDropView)) } @@ -819,24 +812,30 @@ extension NewSingleDiscussionViewController { @objc func callButtonTapped() { + // Dismiss the keyboard (since we will most probably switch to the call view controller) + // Then try to call guard let discussion = try? PersistedDiscussion.get(objectID: discussionObjectID, within: ObvStack.shared.viewContext) else { assertionFailure(); return } switch try? discussion.kind { case .oneToOne(withContactIdentity: let contactIdentity): - guard let contactID = contactIdentity?.typedObjectID else { return } - ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(contactIDs: [contactID], groupId: nil) + guard let contactCryptoId = contactIdentity?.cryptoId, + let ownedCryptoId = contactIdentity?.ownedIdentity?.cryptoId else { + return + } + ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(ownedCryptoId: ownedCryptoId, contactCryptoIds: Set([contactCryptoId]), groupId: nil) .postOnDispatchQueue(internalQueue) case .groupV1(withContactGroup: let contactGroup): - if let contactGroup = contactGroup { - let objecID = contactGroup.typedObjectID - let contactIdentities = contactGroup.contactIdentities - ObvMessengerInternalNotification.userWantsToSelectAndCallContacts(contactIDs: contactIdentities.map({ $0.typedObjectID }), groupId: .groupV1(objecID)) + if let contactGroup = contactGroup, let groupV1Identifier = try? contactGroup.getGroupId() { + let contactCryptoIds = contactGroup.contactIdentities.compactMap { $0.cryptoId } + guard let ownedCryptoId = contactGroup.ownedIdentity?.cryptoId else { return } + ObvMessengerInternalNotification.userWantsToSelectAndCallContacts(ownedCryptoId: ownedCryptoId, contactCryptoIds: Set(contactCryptoIds), groupId: .groupV1(groupV1Identifier: groupV1Identifier)) .postOnDispatchQueue(internalQueue) } case .groupV2(withGroup: let group): if let group { - let groupObjectID = group.typedObjectID - let contactObjectIDs = group.contactsAmongNonPendingOtherMembers.map({ $0.typedObjectID }) - ObvMessengerInternalNotification.userWantsToSelectAndCallContacts(contactIDs: contactObjectIDs, groupId: .groupV2(groupObjectID)) + guard let ownedCryptoId = try? group.ownCryptoId else { return } + let contactCryptoIds = group.contactsAmongNonPendingOtherMembers.compactMap { $0.cryptoId } + let groupV2Identifier = group.groupIdentifier + ObvMessengerInternalNotification.userWantsToSelectAndCallContacts(ownedCryptoId: ownedCryptoId, contactCryptoIds: Set(contactCryptoIds), groupId: .groupV2(groupV2Identifier: groupV2Identifier)) .postOnDispatchQueue(internalQueue) } case .none: @@ -1044,7 +1043,6 @@ extension NewSingleDiscussionViewController { cancellables.append( $messagesToReconfigure .filter { !$0.isEmpty } - .removeDuplicates() .debounce(for: 0.3, scheduler: RunLoop.main) .map { [weak self] messageObjectIDs -> [NSManagedObjectID] in assert(Thread.isMainThread) @@ -1054,7 +1052,9 @@ extension NewSingleDiscussionViewController { .receive(on: queueForApplyingSnapshots) .sink { [weak self] objectIDs in guard var snapshot = self?.dataSource.snapshot() else { return } - snapshot.reconfigureItems(objectIDs) + let messageObjectIDsToReconfigure = objectIDs.filter({ snapshot.itemIdentifiers.contains($0)}) + guard !messageObjectIDsToReconfigure.isEmpty else { return } + snapshot.reconfigureItems(messageObjectIDsToReconfigure) self?.dataSource.apply(snapshot, animatingDifferences: false) } ) @@ -1068,6 +1068,13 @@ extension NewSingleDiscussionViewController { } + /// When the status of an attachment sent from another owned device changes, we reconfigure de cell of the corresponding message. This, e.g., makes it possible to actually see the photo once it is fully downloaded. + @MainActor + private func processStatusOfSentFyleMessageJoinDidChange(sentJoinID: TypeSafeManagedObjectID, messageID: TypeSafeManagedObjectID, discussionID: TypeSafeManagedObjectID) async { + guard self.discussionObjectID == discussionID else { return } + cellNeedsToBeReconfiguredAndResized(messageID: messageID.downcast) + } + } @@ -1146,7 +1153,7 @@ extension NewSingleDiscussionViewController { guard let insertedObjects = notification.userInfo?[NSInsertedObjectsKey] as? Set else { return } let newSentMessages = insertedObjects .compactMap({ $0 as? PersistedMessageSent }) - .filter({ $0.discussion.typedObjectID == _self.discussionObjectID }) + .filter({ $0.discussion?.typedObjectID == _self.discussionObjectID }) guard !newSentMessages.isEmpty else { return } _self.objectIDsOfMessagesToConsiderInNewMessagesCell.removeAll() // We asynchronously call `insertOrUpdateSystemMessageCountingNewMessages`. @@ -1170,7 +1177,7 @@ extension NewSingleDiscussionViewController { guard let insertedObjects = notification.userInfo?[NSInsertedObjectsKey] as? Set else { return } let insertedReceivedMessages = insertedObjects .compactMap({ $0 as? PersistedMessageReceived }) - .filter({ $0.discussion.typedObjectID == _self.discussionObjectID }) + .filter({ $0.discussion?.typedObjectID == _self.discussionObjectID }) let objectIDsOfInsertedReceivedMessages = Set(insertedReceivedMessages.map({ $0.typedObjectID.downcast })) guard !objectIDsOfInsertedReceivedMessages.isSubset(of: _self.objectIDsOfMessagesToConsiderInNewMessagesCell) else { return } _self.objectIDsOfMessagesToConsiderInNewMessagesCell.formUnion(objectIDsOfInsertedReceivedMessages) @@ -1191,7 +1198,7 @@ extension NewSingleDiscussionViewController { guard let insertedObjects = notification.userInfo?[NSInsertedObjectsKey] as? Set else { return } let insertedSystemMessages = insertedObjects .compactMap({ $0 as? PersistedMessageSystem }) - .filter({ $0.discussion.typedObjectID == _self.discussionObjectID }) + .filter({ $0.discussion?.typedObjectID == _self.discussionObjectID }) let insertedRelevantSystemMessages = insertedSystemMessages .filter({ $0.isRelevantForCountingUnread }) .filter({ $0.optionalContactIdentity != nil }) @@ -1273,12 +1280,12 @@ extension NewSingleDiscussionViewController { // This will allow to mark visible messages as not new. guard windowSceneActivationState == .foregroundActive else { return } - let messageObjectId: TypeSafeManagedObjectID + let messageId: MessageIdentifier if let receivedCell = cell as? ReceivedMessageCell, let receivedMessage = receivedCell.message, receivedMessage.status == .new { - messageObjectId = receivedMessage.typedObjectID.downcast + messageId = .received(id: .objectID(objectID: receivedMessage.objectID)) } else if let systemCell = cell as? SystemMessageCell, let systemMessage = systemCell.message, systemMessage.status == .new { if systemMessage.isRelevantForCountingUnread { - messageObjectId = systemMessage.typedObjectID.downcast + messageId = .system(id: .objectID(objectID: systemMessage.objectID)) } else { return } @@ -1290,11 +1297,18 @@ extension NewSingleDiscussionViewController { // This would introduce animation glitches. Instead, we postpone the notification if currentScrolling == .none { // ObvDisplayableLogs.shared.log("[NewSingleDiscussionViewController] Posting messagesAreNotNewAnymore notification in markAsNotNewTheMessageInCell for \([messageObjectId].count) messages") - ObvMessengerInternalNotification.messagesAreNotNewAnymore(persistedMessageObjectIDs: [messageObjectId]) + guard let discussionId = try? discussion.identifier else { assertionFailure(); return } + ObvMessengerInternalNotification.messagesAreNotNewAnymore( + ownedCryptoId: currentOwnedCryptoId, + discussionId: discussionId, + messageIds: [messageId]) .postOnDispatchQueue() } else { // ObvDisplayableLogs.shared.log("[NewSingleDiscussionViewController] As currentScrolling is \(currentScrolling.debugDescription), we do not post messagesAreNotNewAnymore notification for \([messageObjectId].count) messages") - messagesToMarkAsNotNewWhenScrollingEnds.insert(messageObjectId) + // We insert the messageId in the list only if it does not already exists init (note that this code works because the messageIds have a well defined objectID in our particular case). + if messagesToMarkAsNotNewWhenScrollingEnds.first(where: { $0.objectID == messageId.objectID }) == nil { + messagesToMarkAsNotNewWhenScrollingEnds.append(messageId) + } } } @@ -1320,14 +1334,18 @@ extension NewSingleDiscussionViewController { let visibleNewReceivedMessages = visibleReceivedCells.compactMap({ $0.message }).filter({ $0.status == .new }) let visibleNewSystemMessages = visibleSystemCells.compactMap({ $0.message }).filter({ $0.status == .new }) - let objectIDsOfNewVisibleReceivedMessages = Set(visibleNewReceivedMessages.map({ $0.typedObjectID.downcast })) - let objectIDsOfNewVisibleSystemMessages = Set(visibleNewSystemMessages.map({ $0.typedObjectID.downcast })) + let messageIdsOfNewVisibleReceivedMessages = visibleNewReceivedMessages.map({ $0.identifier }) + let messageIdsOfNewVisibleSystemMessages = visibleNewSystemMessages.map({ $0.identifier }) - let objectIDsOfNewVisibleMessages = objectIDsOfNewVisibleReceivedMessages.union(objectIDsOfNewVisibleSystemMessages) + let messageIdsOfNewVisibleMessages = messageIdsOfNewVisibleReceivedMessages + messageIdsOfNewVisibleSystemMessages - if !objectIDsOfNewVisibleMessages.isEmpty { + if !messageIdsOfNewVisibleMessages.isEmpty { // ObvDisplayableLogs.shared.log("[NewSingleDiscussionViewController] Posting messagesAreNotNewAnymore notification in markNewVisibleReceivedAndRelevantSystemMessagesAsNotNew for \(objectIDsOfNewVisibleMessages.count) messages") - ObvMessengerInternalNotification.messagesAreNotNewAnymore(persistedMessageObjectIDs: objectIDsOfNewVisibleMessages) + guard let discussionId = try? discussion.identifier else { assertionFailure(); return } + ObvMessengerInternalNotification.messagesAreNotNewAnymore( + ownedCryptoId: currentOwnedCryptoId, + discussionId: discussionId, + messageIds: messageIdsOfNewVisibleMessages) .postOnDispatchQueue(internalQueue) } @@ -1413,7 +1431,11 @@ extension NewSingleDiscussionViewController { guard !messagesToMarkAsNotNewWhenScrollingEnds.isEmpty else { return } guard currentScrolling == .none else { return } // ObvDisplayableLogs.shared.log("[NewSingleDiscussionViewController] Posting messagesAreNotNewAnymore notification in processReceivedMessagesThatBecameNotNewDuringScrolling for \(messagesToMarkAsNotNewWhenScrollingEnds.count) messages") - ObvMessengerInternalNotification.messagesAreNotNewAnymore(persistedMessageObjectIDs: messagesToMarkAsNotNewWhenScrollingEnds) + guard let discussionId = try? discussion.identifier else { assertionFailure(); return } + ObvMessengerInternalNotification.messagesAreNotNewAnymore( + ownedCryptoId: currentOwnedCryptoId, + discussionId: discussionId, + messageIds: messagesToMarkAsNotNewWhenScrollingEnds) .postOnDispatchQueue(internalQueue) messagesToMarkAsNotNewWhenScrollingEnds.removeAll() } @@ -1514,7 +1536,7 @@ extension NewSingleDiscussionViewController { } // Share all attachments (photos and other) at once - if let itemProvidersForAllAttachments = cell.itemProvidersForAllAttachments, !itemProvidersForAllAttachments.isEmpty, cell.itemProvidersForImages?.count != itemProvidersForAllAttachments.count { + if let itemProvidersForAllAttachments = cell.activityItemProvidersForAllAttachments, !itemProvidersForAllAttachments.isEmpty, cell.itemProvidersForImages?.count != itemProvidersForAllAttachments.count { let action = UIAction(title: Strings.shareAttachments(itemProvidersForAllAttachments.count)) { [weak self] (_) in let uiActivityVC = UIActivityViewController(activityItems: itemProvidersForAllAttachments, applicationActivities: nil) uiActivityVC.popoverPresentationController?.sourceView = cell @@ -1531,6 +1553,22 @@ extension NewSingleDiscussionViewController { } } + // Save to Files (iOS/iPadOS) or present a standard save panel (macOS) + + if persistedMessage.shareActionCanBeMadeAvailable { + + if let hardlinkURLsForAllAttachments = cell.hardlinkURLsForAllAttachments, !hardlinkURLsForAllAttachments.isEmpty { + let action = UIAction(title: Strings.saveAttachments(hardlinkURLsForAllAttachments.count)) { [weak self] (_) in + let picker = UIDocumentPickerViewController(forExporting: hardlinkURLsForAllAttachments, asCopy: true) + picker.shouldShowFileExtensions = true + self?.present(picker, animated: true) + } + action.image = UIImage(systemIcon: .squareAndArrowDownOnSquare) + children.append(action) + } + + } + // Reply to message action if let draftObjectID = cell.persistedDraftObjectID, persistedMessage.replyToActionCanBeMadeAvailable { let action = UIAction(title: CommonString.Word.Reply) { [weak self] _ in @@ -1543,9 +1581,9 @@ extension NewSingleDiscussionViewController { } // Edit message action - if persistedMessage.editBodyActionCanBeMadeAvailable { + if persistedMessage.editBodyActionCanBeMadeAvailable, let sentMessage = persistedMessage as? PersistedMessageSent { let action = UIAction(title: CommonString.Word.Edit) { [weak self] (_) in - let sentMessageObjectID = persistedMessage.objectID + guard let ownedCryptoId = self?.currentOwnedCryptoId else { assertionFailure(); return } let currentTextBody = persistedMessage.textBody let vc = BodyEditViewController(currentBody: currentTextBody) { [weak self] in self?.presentedViewController?.dismiss(animated: true) @@ -1553,8 +1591,10 @@ extension NewSingleDiscussionViewController { guard let _self = self else { return } self?.presentedViewController?.dismiss(animated: true, completion: { guard newTextBody != currentTextBody else { return } - ObvMessengerInternalNotification.userWantsToSendEditedVersionOfSentMessage(sentMessageObjectID: sentMessageObjectID, - newTextBody: newTextBody ?? "") + ObvMessengerInternalNotification.userWantsToSendEditedVersionOfSentMessage( + ownedCryptoId: ownedCryptoId, + sentMessageObjectID: sentMessage.typedObjectID, + newTextBody: newTextBody ?? "") .postOnDispatchQueue(_self.internalQueue) }) } @@ -1568,7 +1608,7 @@ extension NewSingleDiscussionViewController { // Forward message action if persistedMessage.forwardActionCanBeMadeAvailable { let action = UIAction(title: CommonString.Word.Forward) { [weak self] (_) in - guard let ownedCryptoId = persistedMessage.discussion.ownedIdentity?.cryptoId else { return } + guard let ownedCryptoId = persistedMessage.discussion?.ownedIdentity?.cryptoId else { return } let vc: UIViewController if #available(iOS 16, *) { let viewModel = NewDiscussionsSelectionViewController.ViewModel( @@ -1605,18 +1645,19 @@ extension NewSingleDiscussionViewController { let action = UIAction(title: CommonString.Word.Call) { (_) in guard let systemMessage = persistedMessage as? PersistedMessageSystem else { return } guard let item = systemMessage.optionalCallLogItem else { return } - let groupId = try? item.getGroupIdentifier() + let groupId = item.groupIdentifier - var contactsToCall = [TypeSafeManagedObjectID]() - for logContact in item.logContacts { - guard let contactIdentity = logContact.contactIdentity else { continue } - contactsToCall.append(contactIdentity.typedObjectID) - } - - if contactsToCall.count == 1 { - ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(contactIDs: contactsToCall, groupId: groupId).postOnDispatchQueue() + let contactCryptoIds = item.logContacts.compactMap { $0.contactIdentity?.cryptoId } + let ownedCryptoIds = item.logContacts.compactMap { $0.contactIdentity?.ownedIdentity?.cryptoId } + guard ownedCryptoIds.count == 1 else { assertionFailure(); return } + guard let ownedCryptoId = ownedCryptoIds.first else { return } + + if contactCryptoIds.count == 1 { + ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(ownedCryptoId: ownedCryptoId, contactCryptoIds: Set(contactCryptoIds), groupId: groupId) + .postOnDispatchQueue() } else { - ObvMessengerInternalNotification.userWantsToSelectAndCallContacts(contactIDs: contactsToCall, groupId: groupId).postOnDispatchQueue() + ObvMessengerInternalNotification.userWantsToSelectAndCallContacts(ownedCryptoId: ownedCryptoId, contactCryptoIds: Set(contactCryptoIds), groupId: groupId) + .postOnDispatchQueue() } } action.image = UIImage(systemIcon: .phoneFill) @@ -1626,8 +1667,9 @@ extension NewSingleDiscussionViewController { // Delete reaction action if persistedMessage.deleteOwnReactionActionCanBeMadeAvailable { let action = UIAction(title: CommonString.Title.deleteOwnReaction) { (_) in - guard let messageID = cell.persistedMessageObjectID else { return } - ObvMessengerInternalNotification.userWantsToUpdateReaction(messageObjectID: messageID, emoji: nil).postOnDispatchQueue() + guard let ownedCryptoId = persistedMessage.discussion?.ownedIdentity?.cryptoId else { assertionFailure(); return } + ObvMessengerInternalNotification.userWantsToUpdateReaction(ownedCryptoId: ownedCryptoId, messageObjectID: persistedMessage.typedObjectID, newEmoji: nil) + .postOnDispatchQueue() } action.image = UIImage(systemIcon: .heartSlashFill) children.append(action) @@ -1653,10 +1695,11 @@ extension NewSingleDiscussionViewController { /// Helper method called after the user decided to forward a message from this discussion to another. In case the message was forwarded to exactly one discussion, we navigate to that discussion. private func navigateIfAppropriateToDiscussionWhereMessageWasForwarded(discussionPermanentIDs: Set>, persistedMessage: PersistedMessage) { + guard let persistedMessageDiscussion = persistedMessage.discussion else { assertionFailure(); return } if discussionPermanentIDs.count == 1, let discussionPermanentID = discussionPermanentIDs.first, - discussionPermanentID != persistedMessage.discussion.discussionPermanentID, - let ownedCryptoId = persistedMessage.discussion.ownedIdentity?.cryptoId { + discussionPermanentID != persistedMessageDiscussion.discussionPermanentID, + let ownedCryptoId = persistedMessageDiscussion.ownedIdentity?.cryptoId { // We assume the discussion belongs the current owned identity let deepLink = ObvDeepLink.singleDiscussion(ownedCryptoId: ownedCryptoId, objectPermanentID: discussionPermanentID) ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: deepLink) @@ -1683,7 +1726,7 @@ extension NewSingleDiscussionViewController { case .none: guard let persistedMessage = try? PersistedMessage.get(with: objectId, within: ObvStack.shared.viewContext) else { return } - guard persistedMessage.discussion.typedObjectID == self.discussionObjectID else { return } + guard persistedMessage.discussion?.typedObjectID == self.discussionObjectID else { return } let numberOfAttachedFyles: Int if let persistedMessageSent = persistedMessage as? PersistedMessageSent { @@ -2047,7 +2090,11 @@ extension NewSingleDiscussionViewController { static let shareAttachments = { (count: Int) in return String.localizedStringWithFormat(NSLocalizedString("share count attachments", comment: "Localized dict string allowing to display a title"), count) } - + + static let saveAttachments = { (count: Int) in + return String.localizedStringWithFormat(NSLocalizedString("save count attachments", comment: "Localized dict string allowing to display a title"), count) + } + static var replyingToYourself: String { NSLocalizedString("REPLYING_TO_YOURSELF", comment: "") } @@ -2132,7 +2179,11 @@ extension NewSingleDiscussionViewController { userDidTapOnFyleMessageJoinWithHardLink(hardlinkTapped: hardLink) case .messageThatRequiresUserAction(messageObjectID: let messageObjectID): - ObvMessengerInternalNotification.userWantsToReadReceivedMessagesThatRequiresUserAction(persistedMessageObjectIDs: Set([messageObjectID])) + guard let discussionId = try? discussion.identifier else { assertionFailure(); return } + ObvMessengerInternalNotification.userWantsToReadReceivedMessageThatRequiresUserAction( + ownedCryptoId: currentOwnedCryptoId, + discussionId: discussionId, + messageId: .objectID(objectID: messageObjectID.objectID)) .postOnDispatchQueue() case .receivedFyleMessageJoinWithStatusToResumeDownload(receivedJoinObjectID: let receivedJoinObjectID): @@ -2141,6 +2192,12 @@ extension NewSingleDiscussionViewController { case .receivedFyleMessageJoinWithStatusToPauseDownload(receivedJoinObjectID: let receivedJoinObjectID): NewSingleDiscussionNotification.userWantsToPauseDownloadReceivedFyleMessageJoinWithStatus(receivedJoinObjectID: receivedJoinObjectID).postOnDispatchQueue() + case .sentFyleMessageJoinWithStatusReceivedFromOtherOwnedDeviceToResumeDownload(sentJoinObjectID: let sentJoinObjectID): + NewSingleDiscussionNotification.userWantsToDownloadSentFyleMessageJoinWithStatusFromOtherOwnedDevice(sentJoinObjectID: sentJoinObjectID).postOnDispatchQueue() + + case .sentFyleMessageJoinWithStatusReceivedFromOtherOwnedDeviceToPauseDownload(sentJoinObjectID: let sentJoinObjectID): + NewSingleDiscussionNotification.userWantsToPauseSentFyleMessageJoinWithStatusFromOtherOwnedDevice(sentJoinObjectID: sentJoinObjectID).postOnDispatchQueue() + case .reaction(messageObjectID: let messageObjectID): userTappedOnReactionView(messageObjectID: messageObjectID) @@ -2158,6 +2215,10 @@ extension NewSingleDiscussionViewController { case .systemCellShowingCallLogItemRejectedIncomingCallBecauseOfDeniedRecordPermission: systemCellShowingCallLogItemRejectedIncomingCallBecauseOfDeniedRecordPermissionWasTapped() + case .systemCellShowingCallLogItemRejectedBecauseOfVoIPSettings: + ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: ObvDeepLink.voipSettings) + .postOnDispatchQueue() + case .systemCellShowingUpdatedDiscussionSharedSettings: settingsButtonTapped() @@ -2221,6 +2282,7 @@ extension NewSingleDiscussionViewController { private func userDoubleTappedOnMessage(messageID: TypeSafeManagedObjectID) { guard let message = try? PersistedMessage.get(with: messageID, within: ObvStack.shared.viewContext) else { return } + guard let ownedCryptoId = message.discussion?.ownedIdentity?.cryptoId else { return } guard !message.isWiped else { return } guard (try? message.ownedIdentityIsAllowedToSetReaction) == true else { return } var selectedEmoji: String? @@ -2228,15 +2290,27 @@ extension NewSingleDiscussionViewController { selectedEmoji = ownReaction.emoji } let model = EmojiPickerViewModel(selectedEmoji: selectedEmoji) { emoji in - ObvMessengerInternalNotification.userWantsToUpdateReaction(messageObjectID: messageID, emoji: emoji).postOnDispatchQueue() + ObvMessengerInternalNotification.userWantsToUpdateReaction(ownedCryptoId: ownedCryptoId, messageObjectID: messageID, newEmoji: emoji) + .postOnDispatchQueue() } let vc = EmojiPickerHostingViewController(model: model) - if let sheet = vc.sheetPresentationController { - sheet.detents = [ .medium() ] - sheet.prefersGrabberVisible = true - sheet.preferredCornerRadius = 30.0 + + if ObvMessengerConstants.targetEnvironmentIsMacCatalyst { + + let nav = UINavigationController(rootViewController: vc) + present(nav, animated: true) + + } else { + + if let sheet = vc.sheetPresentationController { + sheet.detents = [ .medium() ] + sheet.prefersGrabberVisible = true + sheet.preferredCornerRadius = 30.0 + } + present(vc, animated: true) + } - present(vc, animated: true) + } @@ -2247,12 +2321,23 @@ extension NewSingleDiscussionViewController { assertionFailure() return } - if let sheet = vc.sheetPresentationController { - sheet.detents = [ .medium(), .large() ] - sheet.prefersGrabberVisible = true - sheet.preferredCornerRadius = 30.0 + + if ObvMessengerConstants.targetEnvironmentIsMacCatalyst { + + let nav = UINavigationController(rootViewController: vc) + present(nav, animated: true) + + } else { + + if let sheet = vc.sheetPresentationController { + sheet.detents = [ .medium(), .large() ] + sheet.prefersGrabberVisible = true + sheet.preferredCornerRadius = 30.0 + } + present(vc, animated: true) + } - present(vc, animated: true) + } @@ -2404,8 +2489,7 @@ extension NewSingleDiscussionViewController: AudioPlayerViewDelegate { // MARK: - TextBubbleDelegate -@available(iOS 15.0, *) -extension NewSingleDiscussionViewController: TextBubbleDelegate { +extension NewSingleDiscussionViewController { func textBubble(_ textBubble: TextBubble, userDidTapOn mentionableIdentity: any MentionableIdentity) { delegate?.singleDiscussionViewController(self, userDidTapOn: mentionableIdentity) } @@ -2564,26 +2648,51 @@ extension NewSingleDiscussionViewController: DiscussionsSelectionViewControllerD } -@available(iOS 15.0, *) -extension NewSingleDiscussionViewController: AttachmentsDropViewDelegate { - func attachmentsDropViewShouldBegingDropSession(_ view: AttachmentsDropView) -> Bool { - assert(Thread.isMainThread) - - guard let discussion = try? PersistedDiscussion.get(objectID: discussionObjectID, within: ObvStack.shared.viewContext) else { return false } - switch discussion.status { - case .preDiscussion, - .locked: - return false +// MARK: - UICollectionViewDropDelegate - case .active: - return true +extension NewSingleDiscussionViewController { + + func collectionView(_ collectionView: UICollectionView, canHandle session: UIDropSession) -> Bool { + debugPrint("🫵 \(self.debugDescription) canHandle") + guard !isDragSessionInProgress else { return false } + return true + } + + func collectionView(_ collectionView: UICollectionView, dropSessionDidUpdate session: UIDropSession, withDestinationIndexPath destinationIndexPath: IndexPath?) -> UICollectionViewDropProposal { + guard !isDragSessionInProgress else { + return UICollectionViewDropProposal(operation: .forbidden) } + return UICollectionViewDropProposal(operation: .copy) } - func attachmentsDropView(_ view: AttachmentsDropView, didDrop items: [NSItemProvider]) { - assert(Thread.isMainThread) - composeMessageView.addAttachments(from: items) + func collectionView(_ collectionView: UICollectionView, performDropWith coordinator: UICollectionViewDropCoordinator) { + + let itemProviders = coordinator.items.map(\.dragItem.itemProvider) + Task { + await composeMessageView.addAttachments(from: itemProviders, attachAllItems: true) + } + + } + +} + + +// MARK: - UICollectionViewDragDelegate + +extension NewSingleDiscussionViewController { + + func collectionView(_ collectionView: UICollectionView, dragSessionWillBegin session: UIDragSession) { + isDragSessionInProgress = true + } + + func collectionView(_ collectionView: UICollectionView, dragSessionDidEnd session: UIDragSession) { + isDragSessionInProgress = false + } + + func collectionView(_ collectionView: UICollectionView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] { + guard let cell = collectionView.cellForItem(at: indexPath) as? CellWithMessage else { return [] } + return cell.uiDragItemsForAllAttachments ?? [] } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SingleDiscussionSettings/DiscussionSettingsHostingViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SingleDiscussionSettings/DiscussionSettingsHostingViewController.swift similarity index 92% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SingleDiscussionSettings/DiscussionSettingsHostingViewController.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SingleDiscussionSettings/DiscussionSettingsHostingViewController.swift index 6c59d70a..1009dfcd 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SingleDiscussionSettings/DiscussionSettingsHostingViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SingleDiscussionSettings/DiscussionSettingsHostingViewController.swift @@ -17,7 +17,6 @@ * along with Olvid. If not, see . */ - import CoreData import Combine import os.log @@ -26,6 +25,8 @@ import SwiftUI import ObvUICoreData import UI_SystemIcon import UI_SystemIcon_SwiftUI +import ObvSettings +import ObvDesignSystem final class DiscussionSettingsHostingViewController: UIHostingController, DiscussionExpirationSettingsViewModelDelegate { @@ -99,7 +100,13 @@ final class DiscussionExpirationSettingsViewModel: ObservableObject { } func updateSharedConfiguration(with value: PersistedDiscussionSharedConfigurationValue) { - try? value.updatePersistedDiscussionSharedConfigurationValue(with: sharedConfigurationInScratchViewContext, initiatorAsOwnedCryptoId: ownedIdentityInViewContext.cryptoId) + guard let discussionId = try? sharedConfigurationInScratchViewContext.discussion?.identifier else { + assertionFailure() + return + } + _ = try? ownedIdentityInViewContext.replaceDiscussionSharedConfigurationSentByThisOwnedIdentity( + with: value.toExpirationJSON(overriding: sharedConfigurationInScratchViewContext), + inDiscussionWithId: discussionId) withAnimation { self.changed.toggle() } @@ -107,7 +114,7 @@ final class DiscussionExpirationSettingsViewModel: ObservableObject { func dismissAction(sendNewSharedConfiguration: Bool?) { assert(Thread.isMainThread) - guard let discussionObjectID = sharedConfigurationInScratchViewContext.discussion?.objectID else { + guard let discussionId = try? sharedConfigurationInScratchViewContext.discussion?.identifier else { delegate?.dismissAction() return } @@ -134,9 +141,9 @@ final class DiscussionExpirationSettingsViewModel: ObservableObject { if confirmed { let expirationJSON = sharedConfigurationInScratchViewContext.toExpirationJSON() ObvMessengerInternalNotification.userWantsToSetAndShareNewDiscussionSharedExpirationConfiguration( - persistedDiscussionObjectID: discussionObjectID, - expirationJSON: expirationJSON, - ownedCryptoId: ownedIdentityInViewContext.cryptoId) + ownedCryptoId: ownedIdentityInViewContext.cryptoId, + discussionId: discussionId, + expirationJSON: expirationJSON) .postOnDispatchQueue() } delegate?.dismissAction() @@ -402,13 +409,13 @@ fileprivate struct DiscussionExpirationSettingsView: View { muteNotificationsDuration.set(nil) } }) { - ObvLabel("MUTE_NOTIFICATIONS", systemImage: ObvMessengerConstants.muteIcon.systemName) + Label("MUTE_NOTIFICATIONS", systemImage: ObvMessengerConstants.muteIcon.systemName) } } Section(footer: Text("discussion-expiration-settings-view.body.section.mention-notification-mode.picker.footer.title")) { Picker(selection: mentionNotificationMode.binding, - label: ObvLabel("discussion-expiration-settings-view.body.section.mention-notification-mode.picker.title", systemIcon: .bell(.fill))) { + label: Label("discussion-expiration-settings-view.body.section.mention-notification-mode.picker.title", systemIcon: .bell(.fill))) { ForEach(DiscussionMentionNotificationMode.allCases) { value in Text(value.displayTitle(globalOptions: ObvMessengerSettings.Discussions.notificationOptions)) @@ -418,7 +425,7 @@ fileprivate struct DiscussionExpirationSettingsView: View { } Section(footer: Text("SEND_READ_RECEIPT_SECTION_FOOTER")) { - Picker(selection: doSendReadReceipt.binding, label: ObvLabel("SEND_READ_RECEIPTS_LABEL", systemImage: "eye.fill")) { + Picker(selection: doSendReadReceipt.binding, label: Label("SEND_READ_RECEIPTS_LABEL", systemImage: "eye.fill")) { ForEach(OptionalBoolType.allCases) { optionalBool in switch optionalBool { case .none: @@ -433,7 +440,7 @@ fileprivate struct DiscussionExpirationSettingsView: View { } } Section { - Picker(selection: doFetchContentRichURLsMetadata.binding, label: ObvLabel("SHOW_RICH_LINK_PREVIEW_LABEL", systemImage: "text.below.photo.fill")) { + Picker(selection: doFetchContentRichURLsMetadata.binding, label: Label("SHOW_RICH_LINK_PREVIEW_LABEL", systemImage: "text.below.photo.fill")) { ForEach(OptionalFetchContentRichURLsMetadataChoice.allCases) { value in switch value { case .none: @@ -448,9 +455,7 @@ fileprivate struct DiscussionExpirationSettingsView: View { } } } - if #available(iOS 15.0, *) { - ChangeDefaultEmojiView(defaultEmoji: defaultEmoji.binding) - } + ChangeDefaultEmojiView(defaultEmoji: defaultEmoji.binding) Section { NotificationSoundPicker(selection: notificationSound.binding, showDefault: true) { sound -> Text in switch sound { @@ -458,7 +463,8 @@ fileprivate struct DiscussionExpirationSettingsView: View { if let globalNotificationSound = ObvMessengerSettings.Discussions.notificationSound { return Text("\(CommonString.Word.Default) (\(globalNotificationSound.description))") } else { - return Text("\(CommonString.Word.Default) (_\(CommonString.Title.systemSound)_)") + let systemSound = (try? AttributedString(markdown: "_\(CommonString.Title.systemSound)_")) ?? AttributedString(CommonString.Title.systemSound) + return Text("\(CommonString.Word.Default) (\(systemSound))") } case .some(let sound): if sound == .system { @@ -471,7 +477,7 @@ fileprivate struct DiscussionExpirationSettingsView: View { } } Section(footer: Text("PERFORM_INTERACTION_DONATION_FOR_THIS_DISCUSSION_FOOTER")) { - Picker(selection: performInteractionDonation.binding, label: ObvLabel("PERFORM_INTERACTION_DONATION_FOR_THIS_DISCUSSION_LABEL", systemIcon: .squareAndArrowUp)) { + Picker(selection: performInteractionDonation.binding, label: Label("PERFORM_INTERACTION_DONATION_FOR_THIS_DISCUSSION_LABEL", systemIcon: .squareAndArrowUp)) { ForEach(OptionalBoolType.allCases) { optionalBool in switch optionalBool { case .none: @@ -495,7 +501,7 @@ fileprivate struct DiscussionExpirationSettingsView: View { .font(.callout) } Section(footer: Text("COUNT_BASED_SINGLE_DISCUSSION_SECTION_FOOTER")) { - Picker(selection: countBasedRetentionIsActive.binding, label: ObvLabel("COUNT_BASED_LABEL", systemImage: "number")) { + Picker(selection: countBasedRetentionIsActive.binding, label: Label("COUNT_BASED_LABEL", systemImage: "number")) { ForEach(OptionalBoolType.allCases) { optionalBool in switch optionalBool { case .none: @@ -528,7 +534,7 @@ fileprivate struct DiscussionExpirationSettingsView: View { } } Section(footer: Text("TIME_BASED_SINGLE_DISCUSSION_SECTION_FOOTER")) { - Picker(selection: timeBasedRetention.binding, label: ObvLabel("TIME_BASED_LABEL", systemImage: "calendar.badge.clock")) { + Picker(selection: timeBasedRetention.binding, label: Label("TIME_BASED_LABEL", systemImage: "calendar.badge.clock")) { ForEach(DurationOptionAltOverride.allCases) { durationOverride in switch durationOverride { case .useAppDefault: @@ -555,7 +561,7 @@ fileprivate struct DiscussionExpirationSettingsView: View { .font(.callout) } Section(footer: Text("AUTO_READ_SECTION_FOOTER")) { - Picker(selection: autoRead.binding, label: ObvLabel("AUTO_READ_LABEL", systemImage: "hand.tap.fill")) { + Picker(selection: autoRead.binding, label: Label("AUTO_READ_LABEL", systemImage: "hand.tap.fill")) { ForEach(OptionalBoolType.allCases) { optionalBool in switch optionalBool { case .none: @@ -570,7 +576,7 @@ fileprivate struct DiscussionExpirationSettingsView: View { } } Section(footer: Text("RETAIN_WIPED_OUTBOUND_MESSAGES_SECTION_FOOTER")) { - Picker(selection: retainWipedOutboundMessages.binding, label: ObvLabel("RETAIN_WIPED_OUTBOUND_MESSAGES_LABEL", systemImage: "trash.slash")) { + Picker(selection: retainWipedOutboundMessages.binding, label: Label("RETAIN_WIPED_OUTBOUND_MESSAGES_LABEL", systemImage: "trash.slash")) { ForEach(OptionalBoolType.allCases) { optionalBool in switch optionalBool { case .none: @@ -604,18 +610,18 @@ fileprivate struct DiscussionExpirationSettingsView: View { } Section(footer: Text("READ_ONCE_SECTION_FOOTER")) { Toggle(isOn: readOnce.binding) { - ObvLabel("READ_ONCE_LABEL", systemImage: "flame.fill") + Label("READ_ONCE_LABEL", systemImage: "flame.fill") }.disabled(!sharedConfigCanBeModified) } Section(footer: Text("LIMITED_VISIBILITY_SECTION_FOOTER")) { - Picker(selection: visibilityDurationOption.binding, label: ObvLabel("LIMITED_VISIBILITY_LABEL", systemImage: "eyes")) { + Picker(selection: visibilityDurationOption.binding, label: Label("LIMITED_VISIBILITY_LABEL", systemImage: "eyes")) { ForEach(DurationOption.allCases) { duration in Text(duration.description).tag(duration) } }.disabled(!sharedConfigCanBeModified) } Section(footer: Text("LIMITED_EXISTENCE_SECTION_FOOTER")) { - Picker(selection: existenceDurationOption.binding, label: ObvLabel("LIMITED_EXISTENCE_SECTION_LABEL", systemImage: "timer")) { + Picker(selection: existenceDurationOption.binding, label: Label("LIMITED_EXISTENCE_SECTION_LABEL", systemImage: "timer")) { ForEach(DurationOption.allCases) { duration in Text(duration.description).tag(duration) } @@ -754,58 +760,17 @@ struct DiscussionExpirationSettingsView_Previews: PreviewProvider { } -struct ObvLabel: View { - - let title: LocalizedStringKey - let systemImage: String - - init(_ title: LocalizedStringKey, systemImage: String) { - self.title = title - self.systemImage = systemImage - } - - init(_ title: LocalizedStringKey, systemIcon: SystemIcon) { - self.title = title - self.systemImage = systemIcon.systemName - } - - var body: some View { - Group { - if #available(iOS 14, *) { - Label(title, systemImage: systemImage) - } else { - HStack(alignment: .firstTextBaseline) { - Image(systemName: systemImage) - .foregroundColor(.blue) - Text(title) - } - } - } - } - -} - - struct ObvLabelAlt: View { let title: String let systemIcon: SystemIcon var body: some View { - if #available(iOS 14, *) { - HStack(alignment: .firstTextBaseline) { - Label(title, systemIcon: systemIcon) - Spacer(minLength: 0) - } - .font(.body) - } else { - HStack(alignment: .firstTextBaseline) { - Image(systemIcon: systemIcon) - Text(title) - Spacer(minLength: 0) - } - .font(.body) + HStack(alignment: .firstTextBaseline) { + Label(title, systemImage: systemIcon.systemName) + Spacer(minLength: 0) } + .font(.body) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SingleDiscussionSettings/DraftExpirationSettings.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SingleDiscussionSettings/DraftExpirationSettings.swift similarity index 97% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SingleDiscussionSettings/DraftExpirationSettings.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SingleDiscussionSettings/DraftExpirationSettings.swift index 43ba9f85..6f16b2c9 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SingleDiscussionSettings/DraftExpirationSettings.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SingleDiscussionSettings/DraftExpirationSettings.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -21,6 +21,7 @@ import Foundation import SwiftUI import CoreData import ObvUICoreData +import ObvSettings @available(iOS 15, *) @@ -253,16 +254,16 @@ fileprivate struct DraftExpirationSettingsView: View { Section { Toggle(isOn: readOnce.binding) { - ObvLabel("READ_ONCE_LABEL", systemImage: "flame.fill") + Label("READ_ONCE_LABEL", systemImage: "flame.fill") }.disabled(discussionReadOnce) - Picker(selection: visibilityDurationOption.binding, label: ObvLabel("LIMITED_VISIBILITY_LABEL", systemImage: "eyes")) { + Picker(selection: visibilityDurationOption.binding, label: Label("LIMITED_VISIBILITY_LABEL", systemImage: "eyes")) { ForEach(filterDuration(maximum: maximumVisiblityDuration)) { duration in Text(duration.description).tag(duration) } } - Picker(selection: existenceDurationOption.binding, label: ObvLabel("LIMITED_EXISTENCE_SECTION_LABEL", systemImage: "timer")) { + Picker(selection: existenceDurationOption.binding, label: Label("LIMITED_EXISTENCE_SECTION_LABEL", systemImage: "timer")) { ForEach(filterDuration(maximum: maximumExistenceDuration)) { duration in Text(duration.description).tag(duration) } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SingleDiscussionTitleView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SingleDiscussionTitleView.swift index 144c0beb..989fe46b 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SingleDiscussionTitleView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SingleDiscussionTitleView.swift @@ -70,11 +70,7 @@ final class SingleDiscussionTitleView: UIView { let names = group.contactIdentities .sorted { $0.customOrShortDisplayName < $1.customOrShortDisplayName } .compactMap({ $0.customOrShortDisplayName }) - if #available(iOS 15, *) { - subtitle = names.formatted(.list(type: .and, width: .short)) - } else { - subtitle = names.joined(separator: ", ") - } + subtitle = names.formatted(.list(type: .and, width: .short)) self.init(title: title, subtitle: subtitle) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SingleDiscussionViewControllerDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SingleDiscussionViewControllerDelegate.swift similarity index 100% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SingleDiscussionViewControllerDelegate.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SingleDiscussionViewControllerDelegate.swift diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SomeSingleDiscussionViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SomeSingleDiscussionViewController.swift index ef0fe0cb..358e2476 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SomeSingleDiscussionViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/SomeSingleDiscussionViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/CellWithMessage.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CellWithMessage.swift similarity index 77% rename from iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/CellWithMessage.swift rename to iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CellWithMessage.swift index 0c840ffb..7d6db194 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/CellWithMessage.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CellWithMessage.swift @@ -32,8 +32,18 @@ protocol CellWithMessage: UICollectionViewCell { var fyleMessagesJoinWithStatus: [FyleMessageJoinWithStatus]? { get } // Legacy, used within the old discussion screen, replaced by itemProvidersForAllAttachments var imageAttachments: [FyleMessageJoinWithStatus]? { get } // Legacy, used within the old discussion screen, replaced by itemProvidersForImages var itemProvidersForImages: [UIActivityItemProvider]? { get } - var itemProvidersForAllAttachments: [UIActivityItemProvider]? { get } + var activityItemProvidersForAllAttachments: [UIActivityItemProvider]? { get } + var itemProvidersForAllAttachments: [NSItemProvider]? { get } + var uiDragItemsForAllAttachments: [UIDragItem]? { get } + var sizeForUIDragItemPreview: CGSize { get } + var hardlinkURLsForAllAttachments: [URL]? { get } var infoViewController: UIViewController? { get } } + +extension CellWithMessage { + + var sizeForUIDragItemPreview: CGSize { .init(width: 50, height: 50) } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/AttachmentsView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/AttachmentsView.swift index 3bcb1057..7f952686 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/AttachmentsView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/AttachmentsView.swift @@ -34,6 +34,9 @@ final class AttachmentsView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWithE case downloading(receivedJoinObjectID: TypeSafeManagedObjectID, progress: Progress, fileSize: Int, uti: String, filename: String?) case completeButReadRequiresUserInteraction(messageObjectID: TypeSafeManagedObjectID, fileSize: Int, uti: String) case cancelledByServer(fileSize: Int, uti: String, filename: String?) + // For received attachments sent from other owned device + case downloadableSent(sentJoinObjectID: TypeSafeManagedObjectID, progress: Progress, fileSize: Int, uti: String, filename: String?) + case downloadingSent(sentJoinObjectID: TypeSafeManagedObjectID, progress: Progress, fileSize: Int, uti: String, filename: String?) // For both case complete(hardlink: HardLinkToFyle?, thumbnail: UIImage?, fileSize: Int, uti: String, filename: String?, wasOpened: Bool?) @@ -42,7 +45,7 @@ final class AttachmentsView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWithE case .complete(hardlink: let hardlink, thumbnail: _, fileSize: _, uti: _, filename: _, wasOpened: _), .uploadableOrUploading(hardlink: let hardlink, thumbnail: _, fileSize: _, uti: _, filename: _, progress: _): return hardlink - case .downloadable, .downloading, .completeButReadRequiresUserInteraction, .cancelledByServer: + case .downloadable, .downloading, .completeButReadRequiresUserInteraction, .cancelledByServer, .downloadableSent, .downloadingSent: return nil } } @@ -137,6 +140,13 @@ final class AttachmentsView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWithE imageView.reset() setTitleOnSubtitleView(titleView, filename: filename) setSubtitleOnSubtitleView(subtitleView, fileSize: fileSize, uti: uti) + case .downloadableSent(sentJoinObjectID: let sentJoinObjectID, progress: let progress, fileSize: let fileSize, uti: let uti, filename: let filename): + tapToReadView.isHidden = true + fyleProgressView.setConfiguration(.downloadableSent(sentJoinObjectID: sentJoinObjectID, progress: progress)) + tapToReadView.messageObjectID = nil + imageView.reset() + setTitleOnSubtitleView(titleView, filename: filename) + setSubtitleOnSubtitleView(subtitleView, fileSize: fileSize, uti: uti) case .downloading(receivedJoinObjectID: let receivedJoinObjectID, progress: let progress, fileSize: let fileSize, uti: let uti, filename: let filename): tapToReadView.isHidden = true fyleProgressView.setConfiguration(.downloading(receivedJoinObjectID: receivedJoinObjectID, progress: progress)) @@ -144,6 +154,13 @@ final class AttachmentsView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWithE imageView.reset() setTitleOnSubtitleView(titleView, filename: filename) setSubtitleOnSubtitleView(subtitleView, fileSize: fileSize, uti: uti) + case .downloadingSent(sentJoinObjectID: let sentJoinObjectID, progress: let progress, fileSize: let fileSize, uti: let uti, filename: let filename): + tapToReadView.isHidden = true + fyleProgressView.setConfiguration(.downloadingSent(sentJoinObjectID: sentJoinObjectID, progress: progress)) + tapToReadView.messageObjectID = nil + imageView.reset() + setTitleOnSubtitleView(titleView, filename: filename) + setSubtitleOnSubtitleView(subtitleView, fileSize: fileSize, uti: uti) case .completeButReadRequiresUserInteraction(messageObjectID: let messageObjectID, fileSize: let fileSize, uti: let uti): tapToReadView.isHidden = false fyleProgressView.setConfiguration(.complete) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/AudioPlayerView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/AudioPlayerView.swift index 721bc5df..76126369 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/AudioPlayerView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/AudioPlayerView.swift @@ -27,23 +27,28 @@ fileprivate extension AudioPlayerView.Configuration { var canReadAudio: Bool { switch self { - case .complete: return true - case .uploadableOrUploading, .downloadable, .downloading, .completeButReadRequiresUserInteraction, .cancelledByServer: + case .complete: + return true + case .uploadableOrUploading, .downloadable, .downloading, .completeButReadRequiresUserInteraction, .cancelledByServer, .downloadableSent, .downloadingSent: return false } } var tapToReadViewIsHidden: Bool { switch self { - case .completeButReadRequiresUserInteraction: return false - case .uploadableOrUploading, .downloadable, .downloading, .cancelledByServer, .complete: return true + case .completeButReadRequiresUserInteraction: + return false + case .uploadableOrUploading, .downloadable, .downloading, .cancelledByServer, .complete, .downloadableSent, .downloadingSent: + return true } } var messageObjectID: TypeSafeManagedObjectID? { switch self { - case .completeButReadRequiresUserInteraction(messageObjectID: let messageObjectID, fileSize: _, uti: _): return messageObjectID - case .uploadableOrUploading, .downloadable, .downloading, .cancelledByServer, .complete: return nil + case .completeButReadRequiresUserInteraction(messageObjectID: let messageObjectID, fileSize: _, uti: _): + return messageObjectID + case .uploadableOrUploading, .downloadable, .downloading, .cancelledByServer, .complete, .downloadableSent, .downloadingSent: + return nil } } @@ -52,7 +57,8 @@ fileprivate extension AudioPlayerView.Configuration { case .complete(hardlink: let hardlink, _, _, _, _, _): guard let url = hardlink?.hardlinkURL else { return nil } return ObvAudioPlayer.duration(of: url) - case .uploadableOrUploading, .downloadable, .downloading, .completeButReadRequiresUserInteraction, .cancelledByServer: return nil + case .uploadableOrUploading, .downloadable, .downloading, .completeButReadRequiresUserInteraction, .cancelledByServer, .downloadableSent, .downloadingSent: + return nil } } @@ -60,7 +66,7 @@ fileprivate extension AudioPlayerView.Configuration { switch self { case .complete(_, _, _, _, _, wasOpened: let wasOpened): return wasOpened - case .uploadableOrUploading, .downloadable, .downloading, .completeButReadRequiresUserInteraction, .cancelledByServer: + case .uploadableOrUploading, .downloadable, .downloading, .completeButReadRequiresUserInteraction, .cancelledByServer, .downloadableSent, .downloadingSent: return nil } } @@ -166,10 +172,18 @@ final class AudioPlayerView: ViewForOlvidStack, ObvAudioPlayerDelegate, ViewWith fyleProgressView.setConfiguration(.downloadable(receivedJoinObjectID: receivedJoinObjectID, progress: progress)) setTitle(filename: filename) setSubtitle(fileSize: fileSize, uti: uti) + case .downloadableSent(sentJoinObjectID: let sentJoinObjectID, progress: let progress, fileSize: let fileSize, uti: let uti, filename: let filename): + fyleProgressView.setConfiguration(.downloadableSent(sentJoinObjectID: sentJoinObjectID, progress: progress)) + setTitle(filename: filename) + setSubtitle(fileSize: fileSize, uti: uti) case .downloading(receivedJoinObjectID: let receivedJoinObjectID, progress: let progress, fileSize: let fileSize, uti: let uti, filename: let filename): fyleProgressView.setConfiguration(.downloading(receivedJoinObjectID: receivedJoinObjectID, progress: progress)) setTitle(filename: filename) setSubtitle(fileSize: fileSize, uti: uti) + case .downloadingSent(sentJoinObjectID: let sentJoinObjectID, progress: let progress, fileSize: let fileSize, uti: let uti, filename: let filename): + fyleProgressView.setConfiguration(.downloadingSent(sentJoinObjectID: sentJoinObjectID, progress: progress)) + setTitle(filename: filename) + setSubtitle(fileSize: fileSize, uti: uti) case .completeButReadRequiresUserInteraction(messageObjectID: _, fileSize: let fileSize, uti: let uti): fyleProgressView.setConfiguration(.complete) setTitle(filename: nil) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/MissedMessageBubbleView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/MissedMessageBubbleView.swift index 7613bc15..6e093098 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/MissedMessageBubbleView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/MissedMessageBubbleView.swift @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + /// This view displays the count of missed messages. final class MissedMessageBubble: ViewForOlvidStack, ViewWithMaskedCorners, UIViewWithTappableStuff { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/MultipleImagesView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/MultipleImagesView.swift index d53cd6ba..ab8e26ad 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/MultipleImagesView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/MultipleImagesView.swift @@ -133,6 +133,15 @@ final class MultipleImagesView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWi } else { imageView.reset() } + case .downloadableSent(sentJoinObjectID: let sentJoinObjectID, progress: let progress, downsizedThumbnail: let downsizedThumbnail): + tapToReadView.isHidden = true + fyleProgressView.setConfiguration(.downloadableSent(sentJoinObjectID: sentJoinObjectID, progress: progress)) + tapToReadView.messageObjectID = nil + if let downsizedThumbnail = downsizedThumbnail { + imageView.setDownsizedThumbnail(withImage: downsizedThumbnail) + } else { + imageView.reset() + } case .downloading(receivedJoinObjectID: let receivedJoinObjectID, progress: let progress, downsizedThumbnail: let downsizedThumbnail): tapToReadView.isHidden = true fyleProgressView.setConfiguration(.downloading(receivedJoinObjectID: receivedJoinObjectID, progress: progress)) @@ -142,6 +151,15 @@ final class MultipleImagesView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWi } else { imageView.reset() } + case .downloadingSent(sentJoinObjectID: let sentJoinObjectID, progress: let progress, downsizedThumbnail: let downsizedThumbnail): + tapToReadView.isHidden = true + fyleProgressView.setConfiguration(.downloadingSent(sentJoinObjectID: sentJoinObjectID, progress: progress)) + tapToReadView.messageObjectID = nil + if let downsizedThumbnail = downsizedThumbnail { + imageView.setDownsizedThumbnail(withImage: downsizedThumbnail) + } else { + imageView.reset() + } case .completeButReadRequiresUserInteraction(messageObjectID: let messageObjectID): tapToReadView.isHidden = false fyleProgressView.setConfiguration(.complete) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/MultipleReactionsView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/MultipleReactionsView.swift index 38816d8e..829db675 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/MultipleReactionsView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/MultipleReactionsView.swift @@ -20,6 +20,7 @@ import ObvUI import UIKit import ObvUICoreData +import ObvDesignSystem struct ReactionAndCount: Equatable, Hashable, Comparable, Identifiable { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/ReplyToBubbleView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/ReplyToBubbleView.swift index 135728ef..5e9f2f38 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/ReplyToBubbleView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/ReplyToBubbleView.swift @@ -105,7 +105,7 @@ final class ReplyToBubbleView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWit switch config { case .loading: - bodyLabel.text = MessageCollectionViewCell.Strings.replyToMessageUnavailable + bodyLabel.text = Self.Strings.replyToMessageUnavailable bodyLabel.textColor = UIColor.secondaryLabel bodyLabel.showInStack = true nameLabel.text = nil @@ -116,7 +116,7 @@ final class ReplyToBubbleView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWit imageView.reset() imageView.showInStack = false case .messageWasDeleted: - bodyLabel.text = MessageCollectionViewCell.Strings.replyToMessageWasDeleted + bodyLabel.text = Self.Strings.replyToMessageWasDeleted bodyLabel.textColor = UIColor.secondaryLabel bodyLabel.showInStack = true nameLabel.text = nil @@ -333,6 +333,14 @@ final class ReplyToBubbleView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWit } } +// static let seeAttachments = { (count: Int) in +// return String.localizedStringWithFormat(NSLocalizedString("see count attachments", comment: "Number of attachments"), count) +// } + + static let replyToMessageWasDeleted = NSLocalizedString("Deleted message", comment: "Body displayed when a reply-to message was deleted.") + + static let replyToMessageUnavailable = NSLocalizedString("UNAVAILABLE_MESSAGE", comment: "Body displayed when a reply-to message cannot be found.") + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/SentMessageStatusAndDateView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/SentMessageStatusAndDateView.swift index 9db733cb..f259cc68 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/SentMessageStatusAndDateView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/SentMessageStatusAndDateView.swift @@ -57,6 +57,7 @@ final class SentMessageStatusAndDateView: ViewForOlvidStack { case .read: return .eyeFill case .couldNotBeSentToOneOrMoreRecipients: return .exclamationmarkCircle case .hasNoRecipient: return .iphoneGen3CircleFill + case .sentFromAnotherOwnedDevice: return .iphoneGen3CircleFill } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/SingleGifView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/SingleGifView.swift index e12f483b..b268549d 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/SingleGifView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/SingleGifView.swift @@ -66,12 +66,24 @@ final class SingleGifView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWithExp tapToReadView.messageObjectID = nil removeImageURL() bubble.backgroundColor = .systemFill + case .downloadableSent(sentJoinObjectID: let sentJoinObjectID, progress: let progress, downsizedThumbnail: _): + tapToReadView.isHidden = true + fyleProgressView.setConfiguration(.downloadableSent(sentJoinObjectID: sentJoinObjectID, progress: progress)) + tapToReadView.messageObjectID = nil + removeImageURL() + bubble.backgroundColor = .systemFill case .downloading(receivedJoinObjectID: let receivedJoinObjectID, progress: let progress, downsizedThumbnail: _): tapToReadView.isHidden = true fyleProgressView.setConfiguration(.downloading(receivedJoinObjectID: receivedJoinObjectID, progress: progress)) tapToReadView.messageObjectID = nil removeImageURL() bubble.backgroundColor = .systemFill + case .downloadingSent(sentJoinObjectID: let sentJoinObjectID, progress: let progress, downsizedThumbnail: _): + tapToReadView.isHidden = true + fyleProgressView.setConfiguration(.downloadingSent(sentJoinObjectID: sentJoinObjectID, progress: progress)) + tapToReadView.messageObjectID = nil + removeImageURL() + bubble.backgroundColor = .systemFill case .completeButReadRequiresUserInteraction(messageObjectID: let messageObjectID): tapToReadView.isHidden = false fyleProgressView.setConfiguration(.complete) @@ -176,12 +188,7 @@ final class SingleGifView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWithExp return } let duration = gifDelayTimes.map({ $0.doubleValue }).reduce(0, +) - let animatedImage: UIImage? - if #available(iOS 15.0, *) { - animatedImage = await UIImage.animatedImage(with: images, duration: duration)?.byPreparingForDisplay() - } else { - animatedImage = UIImage.animatedImage(with: images, duration: duration) - } + let animatedImage = await UIImage.animatedImage(with: images, duration: duration)?.byPreparingForDisplay() DispatchQueue.main.async { [weak self] in guard localRefreshId == self?.currentRefreshId else { return } self?.imageView.image = animatedImage diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/SingleImageView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/SingleImageView.swift index a85d186d..29b739d4 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/SingleImageView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/SingleImageView.swift @@ -34,6 +34,9 @@ final class SingleImageView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWithE case downloading(receivedJoinObjectID: TypeSafeManagedObjectID, progress: Progress, downsizedThumbnail: UIImage?) case completeButReadRequiresUserInteraction(messageObjectID: TypeSafeManagedObjectID) case cancelledByServer // Also used when there is an error with the Fyle URL + // For received attachments sent from other owned device + case downloadableSent(sentJoinObjectID: TypeSafeManagedObjectID, progress: Progress, downsizedThumbnail: UIImage?) + case downloadingSent(sentJoinObjectID: TypeSafeManagedObjectID, progress: Progress, downsizedThumbnail: UIImage?) // For both (downsizedThumbnail always nil for sent attachments) case complete(downsizedThumbnail: UIImage?, hardlink: HardLinkToFyle?, thumbnail: UIImage?) @@ -41,7 +44,7 @@ final class SingleImageView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWithE switch self { case .complete(downsizedThumbnail: _, hardlink: let hardlink, thumbnail: _), .uploadableOrUploading(hardlink: let hardlink, thumbnail: _, progress: _): return hardlink - case .downloadable, .downloading, .completeButReadRequiresUserInteraction, .cancelledByServer: + case .downloadable, .downloading, .completeButReadRequiresUserInteraction, .cancelledByServer, .downloadableSent, .downloadingSent: return nil } } @@ -89,6 +92,18 @@ final class SingleImageView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWithE imageView.reset() } bubble.backgroundColor = .systemFill + case .downloadableSent(sentJoinObjectID: let sentJoinObjectID, progress: let progress, downsizedThumbnail: let downsizedThumbnail): + tapToReadView.isHidden = true + fyleProgressView.setConfiguration(.downloadableSent(sentJoinObjectID: sentJoinObjectID, progress: progress)) + tapToReadView.messageObjectID = nil + if let downsizedThumbnail = downsizedThumbnail { + hidingView.isHidden = true + imageView.setDownsizedThumbnail(withImage: downsizedThumbnail) + } else { + hidingView.isHidden = false + imageView.reset() + } + bubble.backgroundColor = .systemFill case .downloading(receivedJoinObjectID: let receivedJoinObjectID, progress: let progress, downsizedThumbnail: let downsizedThumbnail): tapToReadView.isHidden = true fyleProgressView.setConfiguration(.downloading(receivedJoinObjectID: receivedJoinObjectID, progress: progress)) @@ -101,6 +116,18 @@ final class SingleImageView: ViewForOlvidStack, ViewWithMaskedCorners, ViewWithE imageView.reset() } bubble.backgroundColor = .systemFill + case .downloadingSent(sentJoinObjectID: let sentJoinObjectID, progress: let progress, downsizedThumbnail: let downsizedThumbnail): + tapToReadView.isHidden = true + fyleProgressView.setConfiguration(.downloadingSent(sentJoinObjectID: sentJoinObjectID, progress: progress)) + tapToReadView.messageObjectID = nil + if let downsizedThumbnail = downsizedThumbnail { + hidingView.isHidden = true + imageView.setDownsizedThumbnail(withImage: downsizedThumbnail) + } else { + hidingView.isHidden = false + imageView.reset() + } + bubble.backgroundColor = .systemFill case .completeButReadRequiresUserInteraction(messageObjectID: let messageObjectID): tapToReadView.isHidden = false hidingView.isHidden = false diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/TextBubble.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/TextBubble.swift index 5d046ef4..0679b09a 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/TextBubble.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/CommonCellSubviews/TextBubble.swift @@ -286,7 +286,6 @@ private extension UITextView { return _textkit1_userIdentity(for: point) } - @available(iOS, deprecated: 15, message: "Please remove me and use the TextKit 2 implementation") private func _textkit1_userIdentity(for point: CGPoint) -> MentionableIdentity? { let glyphIndex = layoutManager.glyphIndex(for: point, in: textContainer) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/Protocols/DiscussionCacheDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/Protocols/DiscussionCacheDelegate.swift index dfb1a755..6cf0d6f6 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/Protocols/DiscussionCacheDelegate.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/Protocols/DiscussionCacheDelegate.swift @@ -44,9 +44,9 @@ protocol DiscussionCacheDelegate: AnyObject { func requestReplyToBubbleViewConfiguration(message: PersistedMessage, completionWhenCellNeedsUpdateConfiguration: @escaping () -> Void) -> ReplyToBubbleView.Configuration? // Downsized thumbnails - func getCachedDownsizedThumbnail(objectID: TypeSafeManagedObjectID) -> UIImage? - func removeCachedDownsizedThumbnail(objectID: TypeSafeManagedObjectID) - func requestDownsizedThumbnail(objectID: TypeSafeManagedObjectID, data: Data, completionWhenImageCached: @escaping ((Result) -> Void)) + func getCachedDownsizedThumbnail(objectID: TypeSafeManagedObjectID) -> UIImage? + func removeCachedDownsizedThumbnail(objectID: TypeSafeManagedObjectID) + func requestDownsizedThumbnail(objectID: TypeSafeManagedObjectID, data: Data, completionWhenImageCached: @escaping ((Result) -> Void)) // Images (and thumbnails) for FyleMessageJoinWithStatus func getCachedPreparedImage(for objectID: TypeSafeManagedObjectID, size: CGSize) -> UIImage? diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/ReceivedMessageCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/ReceivedMessageCell.swift index b9e9e19e..0f1e57a5 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/ReceivedMessageCell.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/ReceivedMessageCell.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,7 +23,10 @@ import CoreData import os.log import ObvUI import ObvUICoreData -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvSettings +import ObvDesignSystem + @available(iOS 14.0, *) final class ReceivedMessageCell: UICollectionViewCell, CellWithMessage, MessageCellShowingHardLinks, UIViewWithTappableStuff, CellWithPersistedMessageReceived { @@ -94,7 +97,8 @@ final class ReceivedMessageCell: UICollectionViewCell, CellWithMessage, MessageC override func updateConfiguration(using state: UICellConfigurationState) { // 2022-06-20 We used to check here whether the app is initialized and active. The app should always be initialized at this point, but not necessarilly active.. guard let message = self.message else { assertionFailure(); return } - guard message.managedObjectContext != nil else { return } // Happens if the message has recently been deleted. Going further would crash the app. + guard message.managedObjectContext != nil && !message.isDeleted else { return } // Happens if the message has recently been deleted. Going further would crash the app. + guard let messageDiscussion = message.discussion, !messageDiscussion.isDeleted else { return } var content = ReceivedMessageCellCustomContentConfiguration().updated(for: state) content.messageObjectID = message.typedObjectID @@ -102,13 +106,19 @@ final class ReceivedMessageCell: UICollectionViewCell, CellWithMessage, MessageC do { let messageObjectID = message.typedObjectID.downcast + printDebugLog2(message: message) cacheDelegate?.requestAllHardlinksForMessage(with: messageObjectID) { [weak self] needsUpdateConfiguration in - guard needsUpdateConfiguration && messageObjectID == self?.message?.typedObjectID.downcast else { return } + self?.printDebugLog3(messageObjectID: messageObjectID, needsUpdateConfiguration: needsUpdateConfiguration) + guard needsUpdateConfiguration && messageObjectID == self?.message?.typedObjectID.downcast else { + self?.printDebugLog4(messageObjectID: messageObjectID, willCallSetNeedsUpdateConfiguration: false) + return + } + self?.printDebugLog4(messageObjectID: messageObjectID, willCallSetNeedsUpdateConfiguration: true) self?.setNeedsUpdateConfiguration() } } - switch try? message.discussion.kind { + switch try? message.discussion?.kind { case .oneToOne: content.alwaysHideContactPictureAndNameView = true case .groupV1, .groupV2, .none: @@ -143,10 +153,14 @@ final class ReceivedMessageCell: UICollectionViewCell, CellWithMessage, MessageC if message.isLocallyWiped { content.wipedViewConfiguration = .locallyWiped } else if message.isRemoteWiped { - if let ownedCryptoId = message.discussion.ownedIdentity?.cryptoId, + if let ownedCryptoId = message.discussion?.ownedIdentity?.cryptoId, let deleterCryptoId = message.deleterCryptoId, let contact = try? PersistedObvContactIdentity.get(contactCryptoId: deleterCryptoId, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: ObvStack.shared.viewContext) { content.wipedViewConfiguration = .remotelyWiped(deleterName: contact.customOrShortDisplayName) + } else if let ownedCryptoId = message.discussion?.ownedIdentity?.cryptoId, + let deleterCryptoId = message.deleterCryptoId, + deleterCryptoId == ownedCryptoId { + content.wipedViewConfiguration = .remotelyWiped(deleterName: CommonString.Word.You.lowercased()) } else { content.wipedViewConfiguration = .remotelyWiped(deleterName: nil) } @@ -237,7 +251,7 @@ final class ReceivedMessageCell: UICollectionViewCell, CellWithMessage, MessageC // Look for an https URL within the text content.singleLinkConfiguration = nil - let doFetchContentRichURLsMetadataSetting = message.discussion.localConfiguration.doFetchContentRichURLsMetadata ?? ObvMessengerSettings.Discussions.doFetchContentRichURLsMetadata + let doFetchContentRichURLsMetadataSetting = message.discussion?.localConfiguration.doFetchContentRichURLsMetadata ?? ObvMessengerSettings.Discussions.doFetchContentRichURLsMetadata switch doFetchContentRichURLsMetadataSetting { case .never, .withinSentMessagesOnly: break @@ -300,7 +314,7 @@ final class ReceivedMessageCell: UICollectionViewCell, CellWithMessage, MessageC progress: imageAttachment.progressObject, downsizedThumbnail: nil) } - } else if let downsizedThumbnail = cacheDelegate?.getCachedDownsizedThumbnail(objectID: imageAttachment.typedObjectID), !message.readingRequiresUserAction { + } else if let downsizedThumbnail = cacheDelegate?.getCachedDownsizedThumbnail(objectID: imageAttachment.typedObjectID.downcast), !message.readingRequiresUserAction { if imageAttachment.status == .downloadable { config = .downloadable(receivedJoinObjectID: imageAttachment.typedObjectID, progress: imageAttachment.progressObject, @@ -321,7 +335,7 @@ final class ReceivedMessageCell: UICollectionViewCell, CellWithMessage, MessageC downsizedThumbnail: nil) } if let data = imageAttachment.downsizedThumbnail { - cacheDelegate?.requestDownsizedThumbnail(objectID: imageAttachment.typedObjectID, data: data, completionWhenImageCached: { [weak self] result in + cacheDelegate?.requestDownsizedThumbnail(objectID: imageAttachment.typedObjectID.downcast, data: data, completionWhenImageCached: { [weak self] result in switch result { case .failure: break @@ -339,15 +353,17 @@ final class ReceivedMessageCell: UICollectionViewCell, CellWithMessage, MessageC if message.readingRequiresUserAction { config = .completeButReadRequiresUserInteraction(messageObjectID: message.typedObjectID) } else { + printDebugLog(message: message, hardlink: hardlink) if let hardlink = hardlink, hardlink.hardlinkURL != nil { if let image = cacheDelegate?.getCachedImageForHardlink(hardlink: hardlink, size: size) { - cacheDelegate?.removeCachedDownsizedThumbnail(objectID: imageAttachment.typedObjectID) + cacheDelegate?.removeCachedDownsizedThumbnail(objectID: imageAttachment.typedObjectID.downcast) config = .complete(downsizedThumbnail: nil, hardlink: hardlink, thumbnail: image) } else { - let downsizedThumbnail = cacheDelegate?.getCachedDownsizedThumbnail(objectID: imageAttachment.typedObjectID) + let downsizedThumbnail = cacheDelegate?.getCachedDownsizedThumbnail(objectID: imageAttachment.typedObjectID.downcast) config = .complete(downsizedThumbnail: downsizedThumbnail, hardlink: hardlink, thumbnail: nil) Task { do { + try await cacheDelegate?.requestImageForHardlink(hardlink: hardlink, size: sizeForUIDragItemPreview) try await cacheDelegate?.requestImageForHardlink(hardlink: hardlink, size: size) setNeedsUpdateConfiguration() } catch { @@ -355,7 +371,7 @@ final class ReceivedMessageCell: UICollectionViewCell, CellWithMessage, MessageC } } } - } else if let downsizedThumbnail = cacheDelegate?.getCachedDownsizedThumbnail(objectID: imageAttachment.typedObjectID) { + } else if let downsizedThumbnail = cacheDelegate?.getCachedDownsizedThumbnail(objectID: imageAttachment.typedObjectID.downcast) { config = .downloading(receivedJoinObjectID: imageAttachment.typedObjectID, progress: imageAttachment.progressObject, downsizedThumbnail: downsizedThumbnail) @@ -364,7 +380,7 @@ final class ReceivedMessageCell: UICollectionViewCell, CellWithMessage, MessageC progress: imageAttachment.progressObject, downsizedThumbnail: nil) if let data = imageAttachment.downsizedThumbnail { - cacheDelegate?.requestDownsizedThumbnail(objectID: imageAttachment.typedObjectID, data: data, completionWhenImageCached: { [weak self] result in + cacheDelegate?.requestDownsizedThumbnail(objectID: imageAttachment.typedObjectID.downcast, data: data, completionWhenImageCached: { [weak self] result in switch result { case .failure: break @@ -381,6 +397,35 @@ final class ReceivedMessageCell: UICollectionViewCell, CellWithMessage, MessageC return config } + + private func printDebugLog(message: PersistedMessageReceived, hardlink: HardLinkToFyle?) { + let hardlinkIsNonNil = (hardlink != nil) + let hardlinkURLIsNonNil = (hardlink?.hardlinkURL != nil) + let fileIsAvailableOnDisk: Bool + if let hardlinkURL = hardlink?.hardlinkURL { + if FileManager.default.fileExists(atPath: hardlinkURL.path) { + fileIsAvailableOnDisk = true + } else { + fileIsAvailableOnDisk = false + } + } else { + fileIsAvailableOnDisk = false + } + os_log("🧷 [%{public}@][%{public}@] hardlinkIsNonNil=%{public}@ hardlinkURLIsNonNil=%{public}@ fileIsAvailableOnDisk=%{public}@", log: Self.log, type: .info, message.objectID.hashValue.description, String(message.textBody?.prefix(8) ?? "None"), hardlinkIsNonNil.description, hardlinkURLIsNonNil.description, fileIsAvailableOnDisk.description) + + } + + private func printDebugLog2(message: PersistedMessageReceived) { + os_log("🧷 [%{public}@][%{public}@] Call to requestAllHardlinksForMessage", log: Self.log, type: .info, message.objectID.hashValue.description, String(message.textBody?.prefix(8) ?? "None")) + } + + private func printDebugLog3(messageObjectID: TypeSafeManagedObjectID, needsUpdateConfiguration: Bool) { + os_log("🧷 [%{public}@] requestAllHardlinksForMessage completion needsUpdateConfiguration=%{public}@", log: Self.log, type: .info, messageObjectID.hashValue.description, needsUpdateConfiguration.description) + } + + private func printDebugLog4(messageObjectID: TypeSafeManagedObjectID, willCallSetNeedsUpdateConfiguration: Bool) { + os_log("🧷 [%{public}@] requestAllHardlinksForMessage completion willCallSetNeedsUpdateConfiguration=%{public}@", log: Self.log, type: .info, messageObjectID.hashValue.description, willCallSetNeedsUpdateConfiguration.description) + } private func attachmentViewConfigurationForAttachment(_ attachment: ReceivedFyleMessageJoinWithStatus) -> AttachmentsView.Configuration { let message = attachment.receivedMessage @@ -417,6 +462,7 @@ final class ReceivedMessageCell: UICollectionViewCell, CellWithMessage, MessageC } else { Task { do { + try await cacheDelegate?.requestImageForHardlink(hardlink: hardlink, size: sizeForUIDragItemPreview) try await cacheDelegate?.requestImageForHardlink(hardlink: hardlink, size: size) setNeedsUpdateConfiguration() } catch { @@ -505,12 +551,39 @@ extension ReceivedMessageCell { .compactMap({ $0.activityItemProvider }) } - var itemProvidersForAllAttachments: [UIActivityItemProvider]? { + var activityItemProvidersForAllAttachments: [UIActivityItemProvider]? { message?.fyleMessageJoinWithStatuses .compactMap({ cacheDelegate?.getCachedHardlinkForFyleMessageJoinWithStatus(with: ($0 as FyleMessageJoinWithStatus).typedObjectID) }) .compactMap({ $0.activityItemProvider }) } + var itemProvidersForAllAttachments: [NSItemProvider]? { + message?.fyleMessageJoinWithStatuses + .compactMap({ cacheDelegate?.getCachedHardlinkForFyleMessageJoinWithStatus(with: ($0 as FyleMessageJoinWithStatus).typedObjectID) }) + .compactMap({ $0.itemProvider }) + } + + var uiDragItemsForAllAttachments: [UIDragItem]? { + message?.fyleMessageJoinWithStatuses + .compactMap({ cacheDelegate?.getCachedHardlinkForFyleMessageJoinWithStatus(with: ($0 as FyleMessageJoinWithStatus).typedObjectID) }) + .compactMap({ $0 }) + .compactMap({ ($0, $0.uiDragItem) }) + .compactMap({ (hardLinkToFyle, uiDragItem) in + if let image = cacheDelegate?.getCachedImageForHardlink(hardlink: hardLinkToFyle, size: sizeForUIDragItemPreview) { + uiDragItem?.previewProvider = { + UIDragPreview(view: UIImageView(image: image)) + } + } + return uiDragItem + }) + } + + var hardlinkURLsForAllAttachments: [URL]? { + message?.fyleMessageJoinWithStatuses + .compactMap({ cacheDelegate?.getCachedHardlinkForFyleMessageJoinWithStatus(with: ($0 as FyleMessageJoinWithStatus).typedObjectID) }) + .compactMap({ $0.hardlinkURL }) + } + var infoViewController: UIViewController? { guard let message = message else { return nil } guard message.infoActionCanBeMadeAvailable == true else { return nil } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/SentMessageCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/SentMessageCell.swift index 50f97a98..d7c53aed 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/SentMessageCell.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/SentMessageCell.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,8 @@ import CoreData import os.log import ObvUI import ObvUICoreData +import ObvSettings +import ObvDesignSystem @available(iOS 14.0, *) @@ -140,7 +142,7 @@ final class SentMessageCell: UICollectionViewCell, CellWithMessage, MessageCellS // Look for an https URL within the text content.singleLinkConfiguration = nil - let doFetchContentRichURLsMetadataSetting = message.discussion.localConfiguration.doFetchContentRichURLsMetadata ?? ObvMessengerSettings.Discussions.doFetchContentRichURLsMetadata + let doFetchContentRichURLsMetadataSetting = message.discussion?.localConfiguration.doFetchContentRichURLsMetadata ?? ObvMessengerSettings.Discussions.doFetchContentRichURLsMetadata switch doFetchContentRichURLsMetadataSetting { case .never: break @@ -165,10 +167,14 @@ final class SentMessageCell: UICollectionViewCell, CellWithMessage, MessageCellS if message.isLocallyWiped { content.wipedViewConfiguration = .locallyWiped } else if message.isRemoteWiped { - if let ownedCryptoId = message.discussion.ownedIdentity?.cryptoId, + if let ownedCryptoId = message.discussion?.ownedIdentity?.cryptoId, let deleterCryptoId = message.deleterCryptoId, let contact = try? PersistedObvContactIdentity.get(contactCryptoId: deleterCryptoId, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: ObvStack.shared.viewContext) { content.wipedViewConfiguration = .remotelyWiped(deleterName: contact.customOrShortDisplayName) + } else if let ownedCryptoId = message.discussion?.ownedIdentity?.cryptoId, + let deleterCryptoId = message.deleterCryptoId, + deleterCryptoId == ownedCryptoId { + content.wipedViewConfiguration = .remotelyWiped(deleterName: CommonString.Word.You) } else { content.wipedViewConfiguration = .remotelyWiped(deleterName: nil) } @@ -257,12 +263,49 @@ final class SentMessageCell: UICollectionViewCell, CellWithMessage, MessageCellS contentView.textBubble.delegate = textBubbleDelegate } - + private func singleImageViewConfigurationForImageAttachment(_ imageAttachment: SentFyleMessageJoinWithStatus, size: CGSize, requiresCellSizing: Bool) -> SingleImageView.Configuration { let imageAttachmentObjectID = (imageAttachment as FyleMessageJoinWithStatus).typedObjectID let hardlink = cacheDelegate?.getCachedHardlinkForFyleMessageJoinWithStatus(with: imageAttachmentObjectID) let config: SingleImageView.Configuration + let message = imageAttachment.sentMessage switch imageAttachment.status { + case .downloadable, .downloading: + if let downsizedThumbnail = cacheDelegate?.getCachedDownsizedThumbnail(objectID: imageAttachment.typedObjectID.downcast) { + if imageAttachment.status == .downloadable { + config = .downloadableSent(sentJoinObjectID: imageAttachment.typedObjectID, + progress: imageAttachment.progressObject, + downsizedThumbnail: downsizedThumbnail) + } else { + config = .downloadingSent(sentJoinObjectID: imageAttachment.typedObjectID, + progress: imageAttachment.progressObject, + downsizedThumbnail: downsizedThumbnail) + } + } else { + if imageAttachment.status == .downloadable { + config = .downloadableSent(sentJoinObjectID: imageAttachment.typedObjectID, + progress: imageAttachment.progressObject, + downsizedThumbnail: nil) + } else { + config = .downloadingSent(sentJoinObjectID: imageAttachment.typedObjectID, + progress: imageAttachment.progressObject, + downsizedThumbnail: nil) + } + if let data = imageAttachment.downsizedThumbnail { + cacheDelegate?.requestDownsizedThumbnail(objectID: imageAttachment.typedObjectID.downcast, data: data, completionWhenImageCached: { [weak self] result in + switch result { + case .failure: + break + case .success: + if requiresCellSizing { + self?.cellReconfigurator?.cellNeedsToBeReconfiguredAndResized(messageID: message.typedObjectID.downcast) + } else { + self?.setNeedsUpdateConfiguration() + } + } + }) + } + } case .uploading, .uploadable: assert(cacheDelegate != nil) if let hardlink = hardlink { @@ -272,6 +315,7 @@ final class SentMessageCell: UICollectionViewCell, CellWithMessage, MessageCellS config = .uploadableOrUploading(hardlink: hardlink, thumbnail: nil, progress: imageAttachment.progressObject) Task { do { + try await cacheDelegate?.requestImageForHardlink(hardlink: hardlink, size: sizeForUIDragItemPreview) try await cacheDelegate?.requestImageForHardlink(hardlink: hardlink, size: size) if requiresCellSizing { cellReconfigurator?.cellNeedsToBeReconfiguredAndResized(messageID: imageAttachment.sentMessage.typedObjectID.downcast) @@ -287,13 +331,16 @@ final class SentMessageCell: UICollectionViewCell, CellWithMessage, MessageCellS config = .uploadableOrUploading(hardlink: nil, thumbnail: nil, progress: imageAttachment.progressObject) } case .complete: - if let hardlink = hardlink { + if let hardlink = hardlink, hardlink.hardlinkURL != nil { if let image = cacheDelegate?.getCachedImageForHardlink(hardlink: hardlink, size: size) { + cacheDelegate?.removeCachedDownsizedThumbnail(objectID: imageAttachment.typedObjectID.downcast) config = .complete(downsizedThumbnail: nil, hardlink: hardlink, thumbnail: image) } else { - config = .complete(downsizedThumbnail: nil, hardlink: hardlink, thumbnail: nil) + let downsizedThumbnail = cacheDelegate?.getCachedDownsizedThumbnail(objectID: imageAttachment.typedObjectID.downcast) + config = .complete(downsizedThumbnail: downsizedThumbnail, hardlink: hardlink, thumbnail: nil) Task { do { + try await cacheDelegate?.requestImageForHardlink(hardlink: hardlink, size: sizeForUIDragItemPreview) try await cacheDelegate?.requestImageForHardlink(hardlink: hardlink, size: size) if requiresCellSizing { cellReconfigurator?.cellNeedsToBeReconfiguredAndResized(messageID: imageAttachment.sentMessage.typedObjectID.downcast) @@ -305,9 +352,27 @@ final class SentMessageCell: UICollectionViewCell, CellWithMessage, MessageCellS } } } + } else if let downsizedThumbnail = cacheDelegate?.getCachedDownsizedThumbnail(objectID: imageAttachment.typedObjectID.downcast) { + config = .downloadingSent(sentJoinObjectID: imageAttachment.typedObjectID, + progress: imageAttachment.progressObject, + downsizedThumbnail: downsizedThumbnail) } else { - config = .complete(downsizedThumbnail: nil, hardlink: nil, thumbnail: nil) + config = .downloadingSent(sentJoinObjectID: imageAttachment.typedObjectID, + progress: imageAttachment.progressObject, + downsizedThumbnail: nil) + if let data = imageAttachment.downsizedThumbnail { + cacheDelegate?.requestDownsizedThumbnail(objectID: imageAttachment.typedObjectID.downcast, data: data, completionWhenImageCached: { [weak self] result in + switch result { + case .failure: + break + case .success: + self?.setNeedsUpdateConfiguration() + } + }) + } } + case .cancelledByServer: + config = .cancelledByServer } return config } @@ -327,6 +392,7 @@ final class SentMessageCell: UICollectionViewCell, CellWithMessage, MessageCellS config = .uploadableOrUploading(hardlink: hardlink, thumbnail: nil, fileSize: Int(attachment.totalByteCount), uti: attachment.uti, filename: attachment.fileName, progress: attachment.progressObject) Task { do { + try await cacheDelegate?.requestImageForHardlink(hardlink: hardlink, size: sizeForUIDragItemPreview) try await cacheDelegate?.requestImageForHardlink(hardlink: hardlink, size: size) setNeedsUpdateConfiguration() } catch { @@ -346,6 +412,7 @@ final class SentMessageCell: UICollectionViewCell, CellWithMessage, MessageCellS config = .complete(hardlink: hardlink, thumbnail: nil, fileSize: Int(attachment.totalByteCount), uti: attachment.uti, filename: attachment.fileName, wasOpened: nil) Task { do { + try await cacheDelegate?.requestImageForHardlink(hardlink: hardlink, size: sizeForUIDragItemPreview) try await cacheDelegate?.requestImageForHardlink(hardlink: hardlink, size: size) setNeedsUpdateConfiguration() } catch { @@ -356,6 +423,12 @@ final class SentMessageCell: UICollectionViewCell, CellWithMessage, MessageCellS } else { config = .complete(hardlink: nil, thumbnail: nil, fileSize: Int(attachment.totalByteCount), uti: attachment.uti, filename: attachment.fileName, wasOpened: nil) } + case .cancelledByServer: + config = .cancelledByServer(fileSize: Int(attachment.totalByteCount), uti: attachment.uti, filename: attachment.fileName) + case .downloadable: + config = .downloadableSent(sentJoinObjectID: attachment.typedObjectID, progress: attachment.progressObject, fileSize: Int(attachment.totalByteCount), uti: attachment.uti, filename: attachment.fileName) + case .downloading: + config = .downloadingSent(sentJoinObjectID: attachment.typedObjectID, progress: attachment.progressObject, fileSize: Int(attachment.totalByteCount), uti: attachment.uti, filename: attachment.fileName) } return config } @@ -421,12 +494,39 @@ extension SentMessageCell { .compactMap({ $0.activityItemProvider }) } - var itemProvidersForAllAttachments: [UIActivityItemProvider]? { + var activityItemProvidersForAllAttachments: [UIActivityItemProvider]? { message?.fyleMessageJoinWithStatuses .compactMap({ cacheDelegate?.getCachedHardlinkForFyleMessageJoinWithStatus(with: ($0 as FyleMessageJoinWithStatus).typedObjectID) }) .compactMap({ $0.activityItemProvider }) } + var itemProvidersForAllAttachments: [NSItemProvider]? { + message?.fyleMessageJoinWithStatuses + .compactMap({ cacheDelegate?.getCachedHardlinkForFyleMessageJoinWithStatus(with: ($0 as FyleMessageJoinWithStatus).typedObjectID) }) + .compactMap({ $0.itemProvider }) + } + + var uiDragItemsForAllAttachments: [UIDragItem]? { + message?.fyleMessageJoinWithStatuses + .compactMap({ cacheDelegate?.getCachedHardlinkForFyleMessageJoinWithStatus(with: ($0 as FyleMessageJoinWithStatus).typedObjectID) }) + .compactMap({ $0 }) + .compactMap({ ($0, $0.uiDragItem) }) + .compactMap({ (hardLinkToFyle, uiDragItem) in + if let image = cacheDelegate?.getCachedImageForHardlink(hardlink: hardLinkToFyle, size: sizeForUIDragItemPreview) { + uiDragItem?.previewProvider = { + UIDragPreview(view: UIImageView(image: image)) + } + } + return uiDragItem + }) + } + + var hardlinkURLsForAllAttachments: [URL]? { + message?.fyleMessageJoinWithStatuses + .compactMap({ cacheDelegate?.getCachedHardlinkForFyleMessageJoinWithStatus(with: ($0 as FyleMessageJoinWithStatus).typedObjectID) }) + .compactMap({ $0.hardlinkURL }) + } + var infoViewController: UIViewController? { guard let message = message else { return nil } guard message.infoActionCanBeMadeAvailable == true else { return nil } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/SystemMessageCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/SystemMessageCell.swift index dd8275e9..6127102d 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/SystemMessageCell.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/SystemMessageCell.swift @@ -98,6 +98,8 @@ final class SystemMessageCell: UICollectionViewCell, CellWithMessage, UIViewWith content.backgroundColor = appTheme.colorScheme.green case .contactIsOneToOneAgain: content.backgroundColor = appTheme.colorScheme.green + case .contactWasIntroducedToAnotherContact: + content.backgroundColor = appTheme.colorScheme.green case .callLogItem: content.backgroundColor = appTheme.colorScheme.purple case .updatedDiscussionSharedSettings: @@ -151,6 +153,8 @@ final class SystemMessageCell: UICollectionViewCell, CellWithMessage, UIViewWith switch callReportKind { case .rejectedIncomingCallBecauseOfDeniedRecordPermission: return .systemCellShowingCallLogItemRejectedIncomingCallBecauseOfDeniedRecordPermission + case .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse: + return .systemCellShowingCallLogItemRejectedBecauseOfVoIPSettings default: return nil } @@ -167,6 +171,7 @@ final class SystemMessageCell: UICollectionViewCell, CellWithMessage, UIViewWith .rejoinedGroup, .contactIsOneToOneAgain, .ownedIdentityDidCaptureSensitiveMessages, + .contactWasIntroducedToAnotherContact, .contactIdentityDidCaptureSensitiveMessages: return nil } @@ -191,8 +196,11 @@ extension SystemMessageCell { var fyleMessagesJoinWithStatus: [FyleMessageJoinWithStatus]? { nil } var imageAttachments: [FyleMessageJoinWithStatus]? { nil } // Legacy, replaced by itemProvidersForImages var itemProvidersForImages: [UIActivityItemProvider]? { nil } - var itemProvidersForAllAttachments: [UIActivityItemProvider]? { nil } - + var activityItemProvidersForAllAttachments: [UIActivityItemProvider]? { nil } + var itemProvidersForAllAttachments: [NSItemProvider]? { nil } + var uiDragItemsForAllAttachments: [UIDragItem]? { nil } + var hardlinkURLsForAllAttachments: [URL]? { nil } + var infoViewController: UIViewController? { guard message?.infoActionCanBeMadeAvailable == true else { return nil } if let item = message?.optionalCallLogItem { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/utils/FyleProgressView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/utils/FyleProgressView.swift index 109c6acb..01c458dc 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/utils/FyleProgressView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/utils/FyleProgressView.swift @@ -31,6 +31,9 @@ final class FyleProgressView: UIView, UIViewWithTappableStuff { case downloadable(receivedJoinObjectID: TypeSafeManagedObjectID, progress: Progress) case downloading(receivedJoinObjectID: TypeSafeManagedObjectID, progress: Progress) case cancelled + // For received attachments sent from other owned device + case downloadableSent(sentJoinObjectID: TypeSafeManagedObjectID, progress: Progress) + case downloadingSent(sentJoinObjectID: TypeSafeManagedObjectID, progress: Progress) // For both case complete var debugDescription: String { @@ -39,8 +42,12 @@ final class FyleProgressView: UIView, UIViewWithTappableStuff { return "FyleProgressViewConfiguration.uploadableOrUploading" case .downloadable(receivedJoinObjectID: let receivedJoinObjectID, progress: let progress): return "FyleProgressViewConfiguration.downloadable" + case .downloadableSent(sentJoinObjectID: let sentJoinObjectID, progress: let progress): + return "FyleProgressViewConfiguration.downloadableSent" case .downloading(receivedJoinObjectID: let receivedJoinObjectID, progress: let progress): return "FyleProgressViewConfiguration.downloading" + case .downloadingSent(sentJoinObjectID: let sentJoinObjectID, progress: let progress): + return "FyleProgressViewConfiguration.downloadingSent" case .cancelled: return "FyleProgressViewConfiguration.cancelled" case .complete: @@ -69,7 +76,7 @@ final class FyleProgressView: UIView, UIViewWithTappableStuff { progressView.isHidden = false progressView.observedProgress = progress isUserInteractionEnabled = false - case .downloadable(_, progress: let progress): + case .downloadable(_, progress: let progress), .downloadableSent(_, progress: let progress): imageViewWhenPaused.isHidden = false imageViewWhenDownloading.isHidden = true imageViewWhenCancelled.isHidden = true @@ -77,7 +84,7 @@ final class FyleProgressView: UIView, UIViewWithTappableStuff { progressView.isHidden = (progress.completedUnitCount == 0) progressView.observedProgress = progress isUserInteractionEnabled = true - case .downloading(_, progress: let progress): + case .downloading(_, progress: let progress), .downloadingSent(_, progress: let progress): imageViewWhenPaused.isHidden = true imageViewWhenDownloading.isHidden = false imageViewWhenCancelled.isHidden = true @@ -110,12 +117,14 @@ final class FyleProgressView: UIView, UIViewWithTappableStuff { guard !self.isHidden else { return nil } switch currentConfiguration { case .downloading(receivedJoinObjectID: let receivedJoinObjectID, progress: _): - debugPrint("☸️ Tap received to pause") return .receivedFyleMessageJoinWithStatusToPauseDownload(receivedJoinObjectID: receivedJoinObjectID) case .downloadable(receivedJoinObjectID: let receivedJoinObjectID, progress: _): - debugPrint("☸️ Tap received to download") return .receivedFyleMessageJoinWithStatusToResumeDownload(receivedJoinObjectID: receivedJoinObjectID) - default: + case .downloadingSent(sentJoinObjectID: let sentJoinObjectID, progress: _): + return .sentFyleMessageJoinWithStatusReceivedFromOtherOwnedDeviceToPauseDownload(sentJoinObjectID: sentJoinObjectID) + case .downloadableSent(sentJoinObjectID: let sentJoinObjectID, progress: _): + return .sentFyleMessageJoinWithStatusReceivedFromOtherOwnedDeviceToResumeDownload(sentJoinObjectID: sentJoinObjectID) + case .uploadableOrUploading, .cancelled, .complete, .none: return nil } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/utils/TappedStuffForCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/utils/TappedStuffForCell.swift index 204e18fe..484c6632 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/utils/TappedStuffForCell.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/utils/TappedStuffForCell.swift @@ -27,12 +27,15 @@ enum TappedStuffForCell { case messageThatRequiresUserAction(messageObjectID: TypeSafeManagedObjectID) case receivedFyleMessageJoinWithStatusToResumeDownload(receivedJoinObjectID: TypeSafeManagedObjectID) case receivedFyleMessageJoinWithStatusToPauseDownload(receivedJoinObjectID: TypeSafeManagedObjectID) + case sentFyleMessageJoinWithStatusReceivedFromOtherOwnedDeviceToResumeDownload(sentJoinObjectID: TypeSafeManagedObjectID) + case sentFyleMessageJoinWithStatusReceivedFromOtherOwnedDeviceToPauseDownload(sentJoinObjectID: TypeSafeManagedObjectID) case reaction(messageObjectID: TypeSafeManagedObjectID) case missedMessageBubble case circledInitials(contactObjectID: TypeSafeManagedObjectID) case replyTo(replyToMessageObjectID: NSManagedObjectID) case systemCellShowingUpdatedDiscussionSharedSettings case systemCellShowingCallLogItemRejectedIncomingCallBecauseOfDeniedRecordPermission + case systemCellShowingCallLogItemRejectedBecauseOfVoIPSettings case behaveAsIfTheDiscussionTitleWasTapped } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/utils/UIImageViewForHardLink.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/utils/UIImageViewForHardLink.swift index ed9016ab..40aa10b1 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/utils/UIImageViewForHardLink.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/NewSingleDiscussion/cells/utils/UIImageViewForHardLink.swift @@ -24,7 +24,6 @@ import MobileCoreServices import ObvUICoreData -@available(iOS 14.0, *) final class UIImageViewForHardLink: UIImageView, UIViewWithTappableStuff { private(set) var hardlink: HardLinkToFyle? @@ -62,18 +61,18 @@ final class UIImageViewForHardLink: UIImageView, UIViewWithTappableStuff { self.isHidden = false } - private var imageForUTI = [String: UIImage]() + private var imageForContentType = [UTType: UIImage]() private func setDefaultImageForUTIWithinHardlink(_ newHardlink: HardLinkToFyle) { assert(Thread.isMainThread) - let uti = newHardlink.uti - if let image = imageForUTI[uti] { + let contentType = newHardlink.contentType + if let image = imageForContentType[contentType] { setImageAndHardlink(newImage: image, newHardlink: newHardlink, contentMode: .center) } else { let configuration = UIImage.SymbolConfiguration(pointSize: 20) - let icon = ObvUTIUtils.getIcon(forUTI: uti) + let icon = contentType.systemIcon let image = UIImage(systemIcon: icon, withConfiguration: configuration)! - imageForUTI[uti] = image + imageForContentType[contentType] = image setImageAndHardlink(newImage: image, newHardlink: newHardlink, contentMode: .center) } self.alpha = 1.0 @@ -99,7 +98,6 @@ final class UIImageViewForHardLink: UIImageView, UIViewWithTappableStuff { -@available(iOS 14.0, *) final class UIImageViewForHardLinkForOlvidStack: ViewForOlvidStack, UIViewWithTappableStuff { var hardlink: HardLinkToFyle? { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/RecentDiscussions/RecentDiscussionsViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/RecentDiscussions/RecentDiscussionsViewController.swift index 3fbf1206..a6fa06e0 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/RecentDiscussions/RecentDiscussionsViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/RecentDiscussions/RecentDiscussionsViewController.swift @@ -30,7 +30,7 @@ import UIKit final class RecentDiscussionsViewController: ShowOwnedIdentityButtonUIViewController, ViewControllerWithEllipsisCircleRightBarButtonItem, OlvidMenuProvider, DiscussionsTableViewControllerDelegate, NewDiscussionsViewControllerDelegate { weak var delegate: RecentDiscussionsViewControllerDelegate? - + // MARK: - Switching current owned identity @MainActor @@ -59,13 +59,8 @@ extension RecentDiscussionsViewController { var rightBarButtonItems = [UIBarButtonItem]() - if #available(iOS 14, *) { - let ellipsisButton = getConfiguredEllipsisCircleRightBarButtonItem() - rightBarButtonItems.append(ellipsisButton) - } else { - let ellipsisButton = getConfiguredEllipsisCircleRightBarButtonItem(selector: #selector(ellipsisButtonTappedSelector)) - rightBarButtonItems.append(ellipsisButton) - } + let ellipsisButton = getConfiguredEllipsisCircleRightBarButtonItem() + rightBarButtonItems.append(ellipsisButton) #if DEBUG rightBarButtonItems.append(UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(insertDebugMessagesInAllExistingDiscussions))) @@ -74,13 +69,7 @@ extension RecentDiscussionsViewController { navigationItem.rightBarButtonItems = rightBarButtonItems } - - @available(iOS, introduced: 13.0, deprecated: 14.0, message: "Used because iOS 13 does not support UIMenu on UIBarButtonItem") - @objc private func ellipsisButtonTappedSelector() { - ellipsisButtonTapped(sourceBarButtonItem: navigationItem.rightBarButtonItem) - } - - + #if DEBUG @objc private func insertDebugMessagesInAllExistingDiscussions() { // ObvMessengerInternalNotification.insertDebugMessagesInAllExistingDiscussions @@ -197,18 +186,4 @@ extension RecentDiscussionsViewController { return menu } - @available(iOS, introduced: 13, deprecated: 14, message: "Use provideMenu() instead") - func provideAlertActions() -> [UIAlertAction] { - - // Update the parents alerts - var alertActions = [UIAlertAction]() - if let parentAlertActions = parent?.getFirstAlertActionsAvailable() { - alertActions.append(contentsOf: parentAlertActions) - } - - // We do not show the edit pinned discussions action since they are only supported in iOS16+ - - return alertActions - - } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/CollectionOfFylesView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/CollectionOfFylesView.swift deleted file mode 100644 index 47e60d7e..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/CollectionOfFylesView.swift +++ /dev/null @@ -1,439 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit -import MobileCoreServices -import CoreData -import ObvUI -import ObvUICoreData - - -final class CollectionOfFylesView: ObvRoundedRectView { - - let imageAttachments: [(attachment: FyleMessageJoinWithStatus, worker: ThumbnailWorker, imagePlaceholder: UIView)] - let nonImageAttachments: [(attachment: FyleMessageJoinWithStatus, worker: ThumbnailWorker, backgroundView: UIView)] - let hideProgresses: Bool - - private var progressObservationTokens = Set() - - private let byteCountFormatter = ByteCountFormatter() - - private let mainStackView = UIStackView() - - /// The `FyleMessageJoinWithStatus` items, ordered as displayed to the user - var fyleMessagesJoinWithStatus: [FyleMessageJoinWithStatus] { - let images = imageAttachments.map { $0.attachment } - let nonImages = nonImageAttachments.map { $0.attachment } - return images + nonImages - } - - init(attachments: [FyleMessageJoinWithStatus], hideProgresses: Bool) { - assert(!attachments.isEmpty) - self.hideProgresses = hideProgresses - self.imageAttachments = attachments.compactMap { - guard ObvUTIUtils.uti($0.uti, conformsTo: kUTTypeImage) else { return nil } - guard let fyleElement = $0.fyleElement else { return nil } - let worker = ThumbnailWorker(fyleElement: fyleElement) - let imageViewPlaceholder = UIView() - return ($0, worker, imageViewPlaceholder) - } - self.nonImageAttachments = attachments.compactMap { - guard !ObvUTIUtils.uti($0.uti, conformsTo: kUTTypeImage) else { return nil} - guard let fyleElement = $0.fyleElement else { return nil } - let worker = ThumbnailWorker(fyleElement: fyleElement) - let backgroundView = UIView() - return ($0, worker, backgroundView) - } - super.init(frame: CGRect.zero) - setup() - } - - deinit { - progressObservationTokens.forEach({ $0.invalidate() }) - } - - private static func thumbnailTypeFor(attachment: FyleMessageJoinWithStatus) -> ThumbnailType { - if attachment.isWiped { - return .wiped - } else if (attachment.message as? PersistedMessageReceived)?.readingRequiresUserAction == true { - return .visibilityRestricted - } else { - return .normal - } - } - - - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - - /// This is typically called when the user taps on a readOnce message. In that case, we want to refresh the thumbnails. - func refresh() { - for thing in imageAttachments { - let thumbnailType = CollectionOfFylesView.thumbnailTypeFor(attachment: thing.attachment) - let fyleIsAvailable = thing.attachment.fullFileIsAvailable - showThumbnail(in: thing.imagePlaceholder, thumbnailType: thumbnailType, fyleIsAvailable: fyleIsAvailable, using: thing.worker) - } - } - - - private func setup() { - - self.accessibilityIdentifier = "CollectionOfFylesView" - self.translatesAutoresizingMaskIntoConstraints = false - self.clipsToBounds = true - - mainStackView.accessibilityIdentifier = "mainStackView" - mainStackView.translatesAutoresizingMaskIntoConstraints = false - mainStackView.alignment = .fill - mainStackView.axis = .vertical - mainStackView.spacing = 4.0 - self.addSubview(mainStackView) - - if !imageAttachments.isEmpty { - setupImageFyleStackView() - } - - if !nonImageAttachments.isEmpty { - setupNonImageAttachmentStackView() - } - - setupConstraints() - } - - - private func setupImageFyleStackView() { - - for index in stride(from: 0, to: imageAttachments.count, by: 2) { - - let imageFyleStackView = UIStackView() - imageFyleStackView.accessibilityIdentifier = "imageFyleStackView for index \(index)" - imageFyleStackView.translatesAutoresizingMaskIntoConstraints = false - imageFyleStackView.alignment = .fill - imageFyleStackView.axis = .horizontal - imageFyleStackView.spacing = 4.0 - mainStackView.addArrangedSubview(imageFyleStackView) - - let numberPhotosInRow = min(2, imageAttachments.count - index) // 1 or 2 - - var imagePlaceHolderConstraints = [NSLayoutConstraint]() - - for subindex in 0.. FyleMessageJoinWithStatus? { - - // Detect taps on imageView - for (attachment, _, imagePlaceholder) in imageAttachments { - let newPoint = convert(point, to: imagePlaceholder) - if imagePlaceholder.bounds.contains(newPoint) { - return attachment - } - } - - // Detect taps on non-image attachments - for (attachment, _, backgroundView) in nonImageAttachments { - let newPoint = convert(point, to: backgroundView) - if backgroundView.bounds.contains(newPoint) { - return attachment - } - } - - return nil - } - - func thumbnailViewOfFyleMessageJoinWithStatus(_ attachment: FyleMessageJoinWithStatus) -> UIView? { - for imageAttachment in imageAttachments { - if imageAttachment.attachment == attachment { - return imageAttachment.imagePlaceholder.subviews.first - } - } - for nonImageAttachment in nonImageAttachments { - if nonImageAttachment.attachment == attachment { - let backgroundView = nonImageAttachment.backgroundView - guard let nonImageAttachmentStackView = backgroundView.subviews.first as? UIStackView else { return nil } - guard let square = nonImageAttachmentStackView.arrangedSubviews.first else { return nil } - return square.subviews.first - } - } - return nil - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/LinkViewPlaceHolderView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/LinkViewPlaceHolderView.swift deleted file mode 100644 index 830755a7..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/LinkViewPlaceHolderView.swift +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - -final class LinkViewPlaceHolderView: UIView { - - private let stackView = UIStackView() - let label = UILabel() - let spinner: UIActivityIndicatorView - - var link: URL? { - didSet { - guard let link = self.link else { - label.text = nil - return - } - var components = URLComponents() - components.host = link.host - components.scheme = link.scheme - label.text = components.url?.absoluteString - } - } - - override init(frame: CGRect) { - - spinner = UIActivityIndicatorView(style: .medium) - - super.init(frame: frame) - - resetBackgroundColor() - layer.cornerRadius = 8.0 - - stackView.accessibilityIdentifier = "stackView" - stackView.translatesAutoresizingMaskIntoConstraints = false - stackView.axis = .horizontal - stackView.backgroundColor = .blue - stackView.alignment = .center - stackView.spacing = 8.0 - - spinner.accessibilityIdentifier = "spinner" - stackView.addArrangedSubview(spinner) - spinner.startAnimating() - - label.accessibilityIdentifier = "label" - label.font = UIFont.preferredFont(forTextStyle: .footnote) - stackView.addArrangedSubview(label) - - self.addSubview(stackView) - - setupConstraints() - } - - func resetBackgroundColor() { - backgroundColor = UIColor.white.withAlphaComponent(0.5) - } - - - private func setupConstraints() { - let constraints = [ - stackView.centerXAnchor.constraint(equalTo: self.centerXAnchor), - stackView.centerYAnchor.constraint(equalTo: self.centerYAnchor), - stackView.widthAnchor.constraint(equalTo: self.widthAnchor, multiplier: 0.8) - ] - NSLayoutConstraint.activate(constraints) - } - - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageCollectionViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageCollectionViewCell.swift deleted file mode 100644 index f42aa2f4..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageCollectionViewCell.swift +++ /dev/null @@ -1,910 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import MobileCoreServices -import LinkPresentation -import ObvUI -import ObvUICoreData -import UIKit - - -class MessageCollectionViewCell: UICollectionViewCell { - - weak var delegate: MessageCollectionViewCellDelegate? - - let initialFrameWidth: CGFloat - - let mainStackView = UIStackView() - let roundedRectView = ObvRoundedRectView() - let roundedRectStackView = UIStackView() - let bodyTextViewPaddingView = UIView() - let bodyTextView = UITextView() - let dateLabel = UILabel() - let replyToRoundedRectView = ObvRoundedRectView() - let replyToRoundedRectContentView = UIView() - let replyToStackView = UIStackView() - let replyToLabel = UILabelWithLineFragmentPadding() - let replyToTextView = UITextView() - let replyToFylesLabel = UILabelWithLineFragmentPadding() - let fyleRoundedRectView = ObvRoundedRectView() - var roundedRectStackViewWidthConstraintWhenShowingFyles: NSLayoutConstraint! - var collectionOfFylesView: CollectionOfFylesView! - let collectionOfFylesViewTopPadding = UIView() - var linkView: UIView? - let linkViewConstant: CGFloat = 250 - let messageEditedStatusImageView = UIImageView() - let bottomStackView = UIStackView() - - // For ephemeral message, displays an image and a countdown in the top left or right corner - let countdownStack = UIStackView() - let countdownImageViewReadOnce = UIImageView() - let countdownImageViewExpiration = UIImageView() - let countdownImageViewVisibility = UIImageView() - let countdownLabel = UILabel() - let countdownColorReadOnce = UIColor.red - let countdownColorExpiration = UIColor.gray - let countdownColorVisibility = UIColor.orange - - - // Views for displaying ephemerality parameters - let containerViewForEphemeralInfos = UIView() - let vStackForEphemeralConfig = UIStackView() - let hStackForEphemeralConfig = UIStackView() - static let expirationFontTextStyle = UIFont.TextStyle.footnote - let limitedVisibilityStack = UIStackView() - let limitedExistenceStack = UIStackView() - let readOnceStack = UIStackView() - static let tapToReadColor = AppTheme.shared.colorScheme.tapToRead - - static let durationFormatter = DurationFormatter() - - let numberOfColumnsForMultipleImages = 2 // Settting this to 3 does not work yet - - private static let defaultBodyFont = UIFont.preferredFont(forTextStyle: .callout) - private static let emojiBodyFont: UIFont = UIFont.systemFont(ofSize: 50.0) - private static let maxNumberOfLargeEmojis = 3 - - var message: PersistedMessage? - var repliedMessage: PersistedMessage? - var attachments = [FyleMessageJoinWithStatus]() - - private static let counterOfLayoutIfNeededCallsInitialValue = 10 - private var counterOfLayoutIfNeededCalls = MessageCollectionViewCell.counterOfLayoutIfNeededCallsInitialValue - - override init(frame: CGRect) { - self.initialFrameWidth = frame.size.width - super.init(frame: frame) - } - - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - /// The `FyleMessageJoinWithStatus` items, ordered as displayed to the user - var fyleMessagesJoinWithStatus: [FyleMessageJoinWithStatus]? { - guard let collectionOfFylesView = self.collectionOfFylesView else { return nil } - return collectionOfFylesView.fyleMessagesJoinWithStatus - } - - var imageAttachments: [FyleMessageJoinWithStatus]? { - guard let collectionOfFylesView = self.collectionOfFylesView else { return nil } - return collectionOfFylesView.imageAttachments.map({$0.attachment}) - } - - var itemProvidersForImages: [UIActivityItemProvider]? { - return nil // Just to conform to CellWithMessage, not used by the old discussion screen (`imageAttachments` is used instead). - } - - var itemProvidersForAllAttachments: [UIActivityItemProvider]? { - return nil // Just to conform to CellWithMessage, not used by the old discussion screen (`fyleMessagesJoinWithStatus` is used instead). - } - - - func setup() { - - self.clipsToBounds = false - self.autoresizesSubviews = true - - mainStackView.accessibilityIdentifier = "mainStackView" - mainStackView.translatesAutoresizingMaskIntoConstraints = false - mainStackView.axis = .vertical - mainStackView.spacing = 2.0 - self.addSubview(mainStackView) - - roundedRectView.accessibilityIdentifier = "roundedRectView" - roundedRectView.translatesAutoresizingMaskIntoConstraints = false - mainStackView.addArrangedSubview(roundedRectView) - - bottomStackView.accessibilityIdentifier = "bottomStackView" - bottomStackView.axis = .horizontal - bottomStackView.spacing = 4.0 - mainStackView.addArrangedSubview(bottomStackView) - - dateLabel.accessibilityIdentifier = "dateLabel" - dateLabel.translatesAutoresizingMaskIntoConstraints = false - dateLabel.font = UIFont.preferredFont(forTextStyle: .caption2) - dateLabel.textColor = AppTheme.shared.colorScheme.cellDate - - messageEditedStatusImageView.accessibilityIdentifier = "messageEditedStatusImageView" - messageEditedStatusImageView.tintColor = dateLabel.textColor - - let configuration = UIImage.SymbolConfiguration(textStyle: UIFont.TextStyle.footnote, scale: .small) - messageEditedStatusImageView.image = UIImage(systemName: "pencil.circle.fill", withConfiguration: configuration) - - roundedRectStackView.accessibilityIdentifier = "roundedRectStackView" - roundedRectStackView.translatesAutoresizingMaskIntoConstraints = false - roundedRectStackView.axis = .vertical - roundedRectStackView.alignment = .fill - roundedRectStackView.spacing = 0.0 - roundedRectView.addSubview(roundedRectStackView) - - replyToRoundedRectView.accessibilityIdentifier = "replyToRoundedRectView" - replyToRoundedRectView.translatesAutoresizingMaskIntoConstraints = false - replyToRoundedRectView.clipsToBounds = true - - replyToRoundedRectContentView.accessibilityIdentifier = "replyToRoundedRectContentView" - replyToRoundedRectContentView.translatesAutoresizingMaskIntoConstraints = false - replyToRoundedRectView.addSubview(replyToRoundedRectContentView) - - replyToStackView.accessibilityIdentifier = "replyToStackView" - replyToStackView.translatesAutoresizingMaskIntoConstraints = false - replyToStackView.axis = .vertical - replyToStackView.spacing = 4.0 - replyToRoundedRectContentView.addSubview(replyToStackView) - - replyToLabel.accessibilityIdentifier = "replyToLabel" - replyToLabel.font = UIFont.preferredFont(forTextStyle: .headline) - replyToStackView.addArrangedSubview(replyToLabel) - - replyToTextView.accessibilityIdentifier = "replyToTextView" - replyToTextView.translatesAutoresizingMaskIntoConstraints = false - replyToTextView.isScrollEnabled = false - replyToTextView.backgroundColor = .clear - replyToTextView.textContainerInset = .zero - replyToTextView.isEditable = false - replyToTextView.dataDetectorTypes = .all - replyToTextView.textContainer.maximumNumberOfLines = 3 - replyToTextView.textContainer.lineBreakMode = .byTruncatingTail - replyToTextView.delegate = self - - // Remove all the gesture recognizers on the body text view, except the link tap gesture recognizer - for recognizer in replyToTextView.gestureRecognizers! { - if let name = recognizer.name, name == "UITextInteractionNameLinkTap" { - continue - } else { - recognizer.isEnabled = false - } - } - replyToStackView.addArrangedSubview(replyToTextView) - - replyToFylesLabel.accessibilityIdentifier = "replyToFylesLabel" - replyToFylesLabel.translatesAutoresizingMaskIntoConstraints = false - replyToFylesLabel.textColor = AppTheme.shared.colorScheme.secondaryLabel - replyToFylesLabel.font = MessageCollectionViewCell.defaultBodyFont - replyToStackView.addArrangedSubview(replyToFylesLabel) - - bodyTextViewPaddingView.accessibilityIdentifier = "bodyTextViewPaddingView" - bodyTextViewPaddingView.translatesAutoresizingMaskIntoConstraints = false - bodyTextViewPaddingView.backgroundColor = .clear - roundedRectStackView.addArrangedSubview(bodyTextViewPaddingView) - - bodyTextView.accessibilityIdentifier = "bodyTextView" - bodyTextView.translatesAutoresizingMaskIntoConstraints = false - bodyTextView.isScrollEnabled = false - bodyTextView.textContainerInset = .zero - bodyTextView.isEditable = false - bodyTextView.dataDetectorTypes = .all - bodyTextView.delegate = self - // Remove all the gesture recognizers on the body text view, except the link tap gesture recognizer - for recognizer in bodyTextView.gestureRecognizers! { - if let name = recognizer.name, name == "UITextInteractionNameLinkTap" { - continue - } else { - recognizer.isEnabled = false - } - } - bodyTextView.backgroundColor = .clear - bodyTextViewPaddingView.addSubview(bodyTextView) - - dateLabel.accessibilityIdentifier = "dateLabel" - dateLabel.font = UIFont.preferredFont(forTextStyle: .caption2) - dateLabel.textColor = AppTheme.shared.colorScheme.cellDate - - fyleRoundedRectView.accessibilityIdentifier = "fyleRoundedRectView" - fyleRoundedRectView.translatesAutoresizingMaskIntoConstraints = false - fyleRoundedRectView.backgroundColor = AppTheme.shared.colorScheme.surfaceLight - - collectionOfFylesViewTopPadding.accessibilityIdentifier = "collectionOfFylesViewTopPadding" - collectionOfFylesViewTopPadding.translatesAutoresizingMaskIntoConstraints = false - - // Configure the horizontal stack view with informations about ephemeral settings of the message - - containerViewForEphemeralInfos.translatesAutoresizingMaskIntoConstraints = false - containerViewForEphemeralInfos.accessibilityIdentifier = "vStackPaddingView" - - vStackForEphemeralConfig.translatesAutoresizingMaskIntoConstraints = false - vStackForEphemeralConfig.accessibilityIdentifier = "vStackForEphemeralConfig" - vStackForEphemeralConfig.axis = .vertical - vStackForEphemeralConfig.distribution = .fill - vStackForEphemeralConfig.alignment = .center - containerViewForEphemeralInfos.addSubview(vStackForEphemeralConfig) - - hStackForEphemeralConfig.translatesAutoresizingMaskIntoConstraints = false - hStackForEphemeralConfig.accessibilityIdentifier = "hStackForEphemeralConfig" - hStackForEphemeralConfig.axis = .horizontal - hStackForEphemeralConfig.spacing = 8.0 - hStackForEphemeralConfig.distribution = .fillProportionally - hStackForEphemeralConfig.alignment = .firstBaseline - hStackForEphemeralConfig.backgroundColor = .clear - vStackForEphemeralConfig.addArrangedSubview(hStackForEphemeralConfig) - - // Configure the image view that can be inserted in the hStackForEphemeralConfig in case the message is read once - - do { - countdownImageViewReadOnce.translatesAutoresizingMaskIntoConstraints = false - countdownImageViewReadOnce.accessibilityIdentifier = "countdownImageViewReadOnce" - let configuration = UIImage.SymbolConfiguration(textStyle: MessageCollectionViewCell.expirationFontTextStyle) - let image = UIImage(systemName: "flame.fill", withConfiguration: configuration) - countdownImageViewReadOnce.image = image - countdownImageViewReadOnce.tintColor = countdownColorReadOnce - countdownImageViewReadOnce.contentMode = .scaleAspectFit - countdownImageViewReadOnce.setContentHuggingPriority(.defaultHigh, for: .horizontal) - } - - do { - countdownImageViewExpiration.translatesAutoresizingMaskIntoConstraints = false - countdownImageViewExpiration.accessibilityIdentifier = "countdownImageViewExpiration" - let configuration = UIImage.SymbolConfiguration(textStyle: MessageCollectionViewCell.expirationFontTextStyle) - let image = UIImage(systemName: "timer", withConfiguration: configuration) - countdownImageViewExpiration.image = image - countdownImageViewExpiration.tintColor = countdownColorExpiration - countdownImageViewExpiration.contentMode = .scaleAspectFit - countdownImageViewExpiration.setContentHuggingPriority(.defaultHigh, for: .horizontal) - } - - do { - countdownImageViewVisibility.translatesAutoresizingMaskIntoConstraints = false - countdownImageViewVisibility.accessibilityIdentifier = "countdownImageViewVisibility" - let configuration = UIImage.SymbolConfiguration(textStyle: MessageCollectionViewCell.expirationFontTextStyle) - let image = UIImage(systemName: "eyes", withConfiguration: configuration) - countdownImageViewVisibility.image = image - countdownImageViewVisibility.tintColor = countdownColorVisibility - countdownImageViewVisibility.contentMode = .scaleAspectFit - countdownImageViewVisibility.setContentHuggingPriority(.defaultHigh, for: .horizontal) - } - - // Configure the countdown label - - do { - countdownLabel.translatesAutoresizingMaskIntoConstraints = false - countdownLabel.accessibilityIdentifier = "countdownLabel" - countdownLabel.font = UIFont.preferredFont(forTextStyle: MessageCollectionViewCell.expirationFontTextStyle) - } - - // Configure the stack to show for messages with limited visibility - - do { - limitedVisibilityStack.translatesAutoresizingMaskIntoConstraints = false - limitedVisibilityStack.accessibilityIdentifier = "limitedVisibilityStack" - limitedVisibilityStack.axis = .horizontal - limitedVisibilityStack.alignment = .firstBaseline - limitedVisibilityStack.spacing = 4.0 - - let imageLimitedVisibility = UIImageView() - imageLimitedVisibility.translatesAutoresizingMaskIntoConstraints = false - imageLimitedVisibility.accessibilityIdentifier = "imageLimitedVisibility" - let configuration = UIImage.SymbolConfiguration(textStyle: MessageCollectionViewCell.expirationFontTextStyle) - let image = UIImage(systemName: "eyes", withConfiguration: configuration) - imageLimitedVisibility.image = image - imageLimitedVisibility.tintColor = .orange - imageLimitedVisibility.contentMode = .scaleAspectFit - limitedVisibilityStack.addArrangedSubview(imageLimitedVisibility) - - let labelLimitedVisibility = UILabel() - labelLimitedVisibility.translatesAutoresizingMaskIntoConstraints = false - labelLimitedVisibility.accessibilityIdentifier = "labelLimitedVisibility" - labelLimitedVisibility.textColor = .orange - labelLimitedVisibility.font = UIFont.preferredFont(forTextStyle: MessageCollectionViewCell.expirationFontTextStyle) - limitedVisibilityStack.addArrangedSubview(labelLimitedVisibility) - } - - do { - limitedExistenceStack.translatesAutoresizingMaskIntoConstraints = false - limitedExistenceStack.accessibilityIdentifier = "limitedExistenceStack" - limitedExistenceStack.axis = .horizontal - limitedExistenceStack.alignment = .firstBaseline - limitedExistenceStack.spacing = 4.0 - - let imageLimitedExistence = UIImageView() - imageLimitedExistence.translatesAutoresizingMaskIntoConstraints = false - imageLimitedExistence.accessibilityIdentifier = "imageLimitedExistence" - let configuration = UIImage.SymbolConfiguration(textStyle: MessageCollectionViewCell.expirationFontTextStyle) - let image = UIImage(systemName: "timer", withConfiguration: configuration) - imageLimitedExistence.image = image - imageLimitedExistence.tintColor = .systemGray - imageLimitedExistence.contentMode = .scaleAspectFit - limitedExistenceStack.addArrangedSubview(imageLimitedExistence) - - let labelLimitedExistence = UILabel() - labelLimitedExistence.translatesAutoresizingMaskIntoConstraints = false - labelLimitedExistence.accessibilityIdentifier = "labelLimitedExistence" - labelLimitedExistence.textColor = .systemGray - labelLimitedExistence.font = UIFont.preferredFont(forTextStyle: MessageCollectionViewCell.expirationFontTextStyle) - limitedExistenceStack.addArrangedSubview(labelLimitedExistence) - } - - do { - readOnceStack.translatesAutoresizingMaskIntoConstraints = false - readOnceStack.accessibilityIdentifier = "readOnceStack" - readOnceStack.axis = .horizontal - readOnceStack.alignment = .firstBaseline - readOnceStack.spacing = 4.0 - - let imageReadOnce = UIImageView() - imageReadOnce.translatesAutoresizingMaskIntoConstraints = false - imageReadOnce.accessibilityIdentifier = "imageReadOnce" - let configuration = UIImage.SymbolConfiguration(textStyle: MessageCollectionViewCell.expirationFontTextStyle) - let image = UIImage(systemName: "flame.fill", withConfiguration: configuration) - imageReadOnce.image = image - imageReadOnce.tintColor = .red - imageReadOnce.contentMode = .scaleAspectFit - readOnceStack.addArrangedSubview(imageReadOnce) - - let labelReadOnce = UILabel() - labelReadOnce.translatesAutoresizingMaskIntoConstraints = false - labelReadOnce.accessibilityIdentifier = "labelReadOnce" - labelReadOnce.textColor = .red - labelReadOnce.font = UIFont.preferredFont(forTextStyle: MessageCollectionViewCell.expirationFontTextStyle) - labelReadOnce.text = NSLocalizedString("READ_ONCE_LABEL", comment: "") - labelReadOnce.textAlignment = .center - readOnceStack.addArrangedSubview(labelReadOnce) - } - - // Setup the countdown to be shown for certain ephemeral messages in the top left or right corner - - countdownStack.translatesAutoresizingMaskIntoConstraints = false - countdownStack.accessibilityIdentifier = "countdownStack" - countdownStack.axis = .vertical - countdownStack.distribution = .fill - // The countdownStack.alignment value is set in subclasses - countdownStack.spacing = 2.0 - - setupConstraints() - } - - - private func setupConstraints() { - - let constraints = [ - mainStackView.topAnchor.constraint(equalTo: self.topAnchor), - mainStackView.bottomAnchor.constraint(equalTo: self.bottomAnchor), - roundedRectStackView.topAnchor.constraint(equalTo: roundedRectView.topAnchor, constant: 4.0), - roundedRectStackView.trailingAnchor.constraint(equalTo: roundedRectView.trailingAnchor, constant: -4.0), - roundedRectStackView.bottomAnchor.constraint(equalTo: roundedRectView.bottomAnchor, constant: -4.0), - roundedRectStackView.leadingAnchor.constraint(equalTo: roundedRectView.leadingAnchor, constant: 4.0), - replyToRoundedRectView.topAnchor.constraint(equalTo: replyToRoundedRectContentView.topAnchor, constant: 0), - replyToRoundedRectView.trailingAnchor.constraint(equalTo: replyToRoundedRectContentView.trailingAnchor, constant: 0), - replyToRoundedRectView.bottomAnchor.constraint(equalTo: replyToRoundedRectContentView.bottomAnchor, constant: 0), - replyToRoundedRectView.leadingAnchor.constraint(equalTo: replyToRoundedRectContentView.leadingAnchor, constant: -4.0), - replyToStackView.topAnchor.constraint(equalTo: replyToRoundedRectContentView.topAnchor, constant: 8.0), - replyToStackView.trailingAnchor.constraint(equalTo: replyToRoundedRectContentView.trailingAnchor, constant: -8.0), - replyToStackView.bottomAnchor.constraint(equalTo: replyToRoundedRectContentView.bottomAnchor, constant: -8.0), - replyToStackView.leadingAnchor.constraint(equalTo: replyToRoundedRectContentView.leadingAnchor, constant: 8.0), - bodyTextView.topAnchor.constraint(equalTo: bodyTextViewPaddingView.topAnchor, constant: 4.0), - bodyTextView.trailingAnchor.constraint(equalTo: bodyTextViewPaddingView.trailingAnchor, constant: -4.0), - bodyTextView.bottomAnchor.constraint(equalTo: bodyTextViewPaddingView.bottomAnchor, constant: -4.0), - bodyTextView.leadingAnchor.constraint(equalTo: bodyTextViewPaddingView.leadingAnchor, constant: 4.0), - roundedRectStackView.widthAnchor.constraint(lessThanOrEqualTo: self.widthAnchor, multiplier: 0.8), - collectionOfFylesViewTopPadding.heightAnchor.constraint(equalToConstant: 6.0), - containerViewForEphemeralInfos.topAnchor.constraint(equalTo: vStackForEphemeralConfig.topAnchor, constant: -4.0), - containerViewForEphemeralInfos.rightAnchor.constraint(equalTo: vStackForEphemeralConfig.rightAnchor, constant: 4.0), - containerViewForEphemeralInfos.bottomAnchor.constraint(equalTo: vStackForEphemeralConfig.bottomAnchor), - containerViewForEphemeralInfos.leftAnchor.constraint(equalTo: vStackForEphemeralConfig.leftAnchor, constant: -8.0), - ] - NSLayoutConstraint.activate(constraints) - - self.roundedRectStackViewWidthConstraintWhenShowingFyles = roundedRectStackView.widthAnchor.constraint(equalTo: self.widthAnchor, multiplier: 0.8) - - bodyTextView.setContentCompressionResistancePriority(.required, for: .horizontal) - replyToTextView.setContentCompressionResistancePriority(.required, for: .horizontal) - replyToLabel.setContentCompressionResistancePriority(.required, for: .horizontal) - replyToFylesLabel.setContentCompressionResistancePriority(.required, for: .horizontal) - - } - - - override func layoutSubviews() { - super.layoutSubviews() - } - - override func prepareForReuse() { - super.prepareForReuse() - message = nil - repliedMessage = nil - attachments.removeAll() - bodyTextView.text = nil - bodyTextView.font = MessageCollectionViewCell.defaultBodyFont - dateLabel.text = nil - prepareReplyToForReuse() - roundedRectStackView.removeArrangedSubview(replyToRoundedRectView) - replyToRoundedRectView.removeFromSuperview() - bodyTextView.isHidden = true - bodyTextViewPaddingView.isHidden = true - fyleRoundedRectView.removeFromSuperview() - roundedRectStackViewWidthConstraintWhenShowingFyles.isActive = false - collectionOfFylesViewTopPadding.removeFromSuperview() - collectionOfFylesView?.removeFromSuperview() - collectionOfFylesView = nil - linkView?.removeFromSuperview() - linkView = nil - while let view = hStackForEphemeralConfig.arrangedSubviews.first { - hStackForEphemeralConfig.removeArrangedSubview(view) - view.removeFromSuperview() - } - roundedRectStackView.removeArrangedSubview(containerViewForEphemeralInfos) - containerViewForEphemeralInfos.removeFromSuperview() - removeCountdownStack() - messageEditedStatusImageView.isHidden = true - counterOfLayoutIfNeededCalls = MessageCollectionViewCell.counterOfLayoutIfNeededCallsInitialValue - resetCounterOfLayoutIfNeededCalls() - } - - - private func resetCounterOfLayoutIfNeededCalls() { - counterOfLayoutIfNeededCalls = MessageCollectionViewCell.counterOfLayoutIfNeededCallsInitialValue - } - - enum MessageElement { - case text(_ text: String) - case onlyAttachments(count: Int) - case wiped - case remoteWiped - case tapToRead - - var text: String? { - switch self { - case .text(let text): return text - case .wiped: return NSLocalizedString("WIPED_MESSAGE", comment: "") - case .remoteWiped: return NSLocalizedString("REMOTE_WIPED_MESSAGE", comment: "") - case .tapToRead: return NSLocalizedString("TAP_TO_READ", comment: "") - case .onlyAttachments: return nil - } - } - - /// This is used in ComposeMessageView#loadReplyTo to give information about the message to reply - var replyToDescription: String { - switch self { - case .text(let text): return text - case .wiped: return NSLocalizedString("WIPED_MESSAGE", comment: "") - case .remoteWiped: return NSLocalizedString("REMOTE_WIPED_MESSAGE", comment: "") - case .tapToRead: return NSLocalizedString("TAP_TO_READ", comment: "") - case .onlyAttachments(count: let count): - return PersistedMessage.Strings.countAttachments(count) - } - } - - var font: UIFont { - switch self { - case .text(let text): - if text.count <= maxNumberOfLargeEmojis, text.containsOnlyEmoji { - return emojiBodyFont - } else { - return defaultBodyFont - } - case .wiped, .remoteWiped, .onlyAttachments: - let descriptor = defaultBodyFont.fontDescriptor.withSymbolicTraits(.traitItalic) ?? defaultBodyFont.fontDescriptor - return UIFont(descriptor: descriptor, size: 0) - case .tapToRead: - let descriptor = UIFontDescriptor.preferredFontDescriptor(withTextStyle: expirationFontTextStyle) - return UIFont(descriptor: descriptor, size: 0) - } - } - - var centered: Bool { - switch self { - case .tapToRead: return true - default: return false - } - } - } - - static func extractMessageElements(from message: PersistedMessage) -> MessageElement? { - if let messageSent = message as? PersistedMessageSent, messageSent.isLocallyWiped { - return .wiped - } else if message.isRemoteWiped { - return .remoteWiped - } else if let receivedMessage = message as? PersistedMessageReceived, receivedMessage.readingRequiresUserAction { - return .tapToRead - } else { - if let textBody = message.textBody, !textBody.isEmpty { - return .text(textBody) - } else if let fyleMessageJoinWithStatus = message.fyleMessageJoinWithStatus, - !fyleMessageJoinWithStatus.isEmpty { - return .onlyAttachments(count: fyleMessageJoinWithStatus.count) - } else { - /// No text, no attachements -> should not happend - return nil - } - } - } - - - private func prepareReplyToForReuse() { - replyToLabel.text = nil - replyToLabel.textColor = .clear - replyToTextView.text = nil - replyToTextView.font = MessageCollectionViewCell.defaultBodyFont - replyToTextView.isHidden = true - replyToFylesLabel.text = nil - replyToFylesLabel.isHidden = true - replyToRoundedRectView.backgroundColor = AppTheme.shared.colorScheme.receivedCellReplyToBackground - } - - - - func prepare(with message: PersistedMessage, attachments: [FyleMessageJoinWithStatus], withDateFormatter dateFormatter: DateFormatter, hideProgresses: Bool) { - - resetCounterOfLayoutIfNeededCalls() - - self.message = message - self.attachments = attachments - - refreshBody(with: message) - - dateLabel.text = dateFormatter.string(from: message.timestamp) - refreshReplyTo(with: message) - - refreshEditedStatus() - - if !attachments.isEmpty { - insertCollectionOfFylesViewForShowingAttachments(hideProgresses: hideProgresses) - } - - // Display any preview link - let doFetchContentRichURLsMetadataSetting = message.discussion.localConfiguration.doFetchContentRichURLsMetadata ?? ObvMessengerSettings.Discussions.doFetchContentRichURLsMetadata - let doFetchContentRichURLsMetadata: Bool - switch doFetchContentRichURLsMetadataSetting { - case .never: doFetchContentRichURLsMetadata = false - case .withinSentMessagesOnly: doFetchContentRichURLsMetadata = message is PersistedMessageSent - case .always: doFetchContentRichURLsMetadata = true - } - if doFetchContentRichURLsMetadata { - if let urls = message.textBody?.extractURLs(), - !urls.isEmpty { - // Fetch the metadata - let firstURL = urls.first! - switch CachedLPMetadataProvider.shared.getCachedMetada(for: firstURL) { - case .metadataCached(metadata: let metadata): - displayLinkMetadata(metadata, for: message, animate: false) - case .siteDoesNotProvideMetada, .failureOccuredWhenFetchingOrCachingMetadata: - break - case .metadaNotCachedYet: - CachedLPMetadataProvider.shared.fetchAndCacheMetadata(for: firstURL) { [weak self] in - guard let _self = self else { return } - guard self?.message == message else { return } - self?.delegate?.reloadCell(_self) - } - } - } - } - - // If the message is ephemeral, show appropriate information - refreshEphemeralInformation(with: message) - - // 2020-12-11: The following line was removed to prevent a freeze - // 2020-12-23: This line was commented out to try to solve the "empty cell" issue. For now, no more freeze. - // 2020-01-10: It appears that the following line does lead to occasion freezes. We should do something about this. - if counterOfLayoutIfNeededCalls > 0 { - counterOfLayoutIfNeededCalls -= 1 - self.layoutIfNeeded() - } - } - - - private func refreshEditedStatus() { - guard let message = self.message else { return } - messageEditedStatusImageView.isHidden = !message.isEdited - } - - - private func insertCollectionOfFylesViewForShowingAttachments(hideProgresses: Bool) { - let allAttachmentsAreWiped = attachments.allSatisfy { $0.isWiped } - guard !allAttachmentsAreWiped else { return } - roundedRectStackViewWidthConstraintWhenShowingFyles.isActive = true - assert(collectionOfFylesView == nil) - self.collectionOfFylesView = CollectionOfFylesView(attachments: attachments, hideProgresses: hideProgresses) - if !roundedRectStackView.arrangedSubviews.filter({ !$0.isHidden }).isEmpty { - roundedRectStackView.addArrangedSubview(collectionOfFylesViewTopPadding) - } - roundedRectStackView.addArrangedSubview(collectionOfFylesView) - } - - - func refreshReplyTo(with message: PersistedMessage) { - resetCounterOfLayoutIfNeededCalls() - switch message.genericRepliesTo { - case .none: - self.repliedMessage = nil - case .notAvailableYet: - if roundedRectStackView.subviews.filter({ $0.accessibilityIdentifier == "replyToRoundedRectView" }).isEmpty { - roundedRectStackView.insertArrangedSubview(replyToRoundedRectView, at: max(0, roundedRectStackView.arrangedSubviews.count-1)) - } - prepareReplyToForReuse() - replyToTextView.isHidden = false - replyToTextView.text = Strings.replyToMessageUnavailable - case .available(message: let repliedMessage): - self.repliedMessage = repliedMessage - // Make sure we do *not* insert the replyToRoundedRectView twice - // If there already is a replyToRoundedRectView, we asssume it contains the appropriate values, so we return immediately - guard roundedRectStackView.subviews.filter({ $0.accessibilityIdentifier == "replyToRoundedRectView" }).isEmpty else { return } - // We can insert the replyToRoundedRectView and configure it - roundedRectStackView.insertArrangedSubview(replyToRoundedRectView, at: max(0, roundedRectStackView.arrangedSubviews.count-1)) - if let repliedMessageElement = MessageCollectionViewCell.extractMessageElements(from: repliedMessage), - let text = repliedMessageElement.text { - replyToTextView.isHidden = false - replyToTextView.text = text - replyToTextView.font = repliedMessageElement.font - if repliedMessageElement.centered { - replyToTextView.textAlignment = .center - } - } - if let rcvMsg = repliedMessage as? PersistedMessageReceived { - if let rcvMsgContactIdentity = rcvMsg.contactIdentity { - replyToLabel.text = rcvMsgContactIdentity.customDisplayName ?? rcvMsgContactIdentity.identityCoreDetails?.getDisplayNameWithStyle(.firstNameThenLastName) ?? rcvMsgContactIdentity.fullDisplayName - } else { - replyToLabel.text = CommonString.deletedContact - } - replyToLabel.textColor = rcvMsg.contactIdentity?.cryptoId.colors.text ?? appTheme.colorScheme.secondaryLabel - if !rcvMsg.fyleMessageJoinWithStatuses.isEmpty { - let numberOfAttachments = rcvMsg.fyleMessageJoinWithStatuses.count - replyToFylesLabel.isHidden = false - replyToFylesLabel.text = Strings.seeAttachments(numberOfAttachments) - } - } else if let sntMsg = repliedMessage as? PersistedMessageSent { - replyToLabel.text = sntMsg.discussion.ownedIdentity?.identityCoreDetails.getDisplayNameWithStyle(.firstNameThenLastName) - replyToLabel.textColor = sntMsg.discussion.ownedIdentity?.cryptoId.colors.text - if !sntMsg.fyleMessageJoinWithStatuses.isEmpty { - let numberOfAttachments = sntMsg.fyleMessageJoinWithStatuses.count - replyToFylesLabel.isHidden = false - replyToFylesLabel.text = Strings.seeAttachments(numberOfAttachments) - } - } - replyToRoundedRectView.backgroundColor = replyToLabel.textColor - case .deleted: - if roundedRectStackView.subviews.filter({ $0.accessibilityIdentifier == "replyToRoundedRectView" }).isEmpty { - roundedRectStackView.insertArrangedSubview(replyToRoundedRectView, at: max(0, roundedRectStackView.arrangedSubviews.count-1)) - } - prepareReplyToForReuse() - replyToTextView.isHidden = false - replyToTextView.text = Strings.replyToMessageWasDeleted - } - } - - - private func refreshBody(with message: PersistedMessage) { - guard !message.isWiped && !message.isDeleted else { return } - if let messageElement = MessageCollectionViewCell.extractMessageElements(from: message), - let text = messageElement.text { - bodyTextView.text = text - bodyTextView.font = messageElement.font - if messageElement.centered { - bodyTextView.textAlignment = .center - } - bodyTextViewPaddingView.isHidden = false - bodyTextView.isHidden = false - } else { - bodyTextView.text = nil - bodyTextViewPaddingView.isHidden = true - bodyTextView.isHidden = true - } - bodyTextView.layoutIfNeeded() - } - - private func refreshEphemeralInformation(with message: PersistedMessage) { - var addContainerViewForEphemeralInfos = false - guard !message.isWiped && !message.isDeleted else { return } - if case .tapToRead = MessageCollectionViewCell.extractMessageElements(from: message) { - if message.readOnce { - hStackForEphemeralConfig.addArrangedSubview(readOnceStack) - addContainerViewForEphemeralInfos = true - } - if let timeInterval = message.visibilityDuration, let duration = DurationOption(rawValue: Int(timeInterval)) { - (limitedVisibilityStack.arrangedSubviews.last as? UILabel)?.text = duration.description - hStackForEphemeralConfig.addArrangedSubview(limitedVisibilityStack) - addContainerViewForEphemeralInfos = true - } - assert(addContainerViewForEphemeralInfos) /// guarantees that tap to read must shows an additional information. - } - if addContainerViewForEphemeralInfos { - roundedRectStackView.addArrangedSubview(containerViewForEphemeralInfos) - } else { - roundedRectStackView.removeArrangedSubview(containerViewForEphemeralInfos) - containerViewForEphemeralInfos.removeFromSuperview() - } - } - - func refresh() { - guard let message = self.message else { return } - resetCounterOfLayoutIfNeededCalls() - refreshReplyTo(with: message) - refreshBody(with: message) - refreshEphemeralInformation(with: message) - if let collectionOfFylesView = self.collectionOfFylesView { - collectionOfFylesView.refresh() - } else if !attachments.isEmpty { - // This happens when the messages was obtained through a user notification. In that case, the attachments are initially nil. - // When the message is eventually downloaded from the server, we get the attachments that we update here (note that the attachments were set in the refresh method of MessageReceivedCollectionViewCell). - insertCollectionOfFylesViewForShowingAttachments(hideProgresses: false) - } - refreshCellCountdown() - refreshEditedStatus() - } - - - func refreshCellCountdown() { - (self as? MessageReceivedCollectionViewCell)?.refreshMessageReceivedCellCountdown() - (self as? MessageSentCollectionViewCell)?.refreshMessageReceivedCellCountdown() - } - - - - private func displayLinkMetadata(_ metadata: LPLinkMetadata, for message: PersistedMessage, animate: Bool) { - guard linkView == nil else { return } - linkView = LPLinkView(metadata: metadata) - if linkView?.traitCollection.userInterfaceStyle == .dark { - if self is MessageReceivedCollectionViewCell { - // Keep dark mode - } else { - linkView?.overrideUserInterfaceStyle = .light - } - } else { - // Keep light mode - } - roundedRectStackView.addArrangedSubview(linkView!) - linkView!.sizeToFit() - } - - - override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes { - - // 2020-12-11: The following line was removed to prevent a freeze - if counterOfLayoutIfNeededCalls > 0 { - counterOfLayoutIfNeededCalls -= 1 - self.layoutIfNeeded() - } - - var fittingSize = UIView.layoutFittingCompressedSize - fittingSize.width = layoutAttributes.size.width - let size = systemLayoutSizeFitting(fittingSize, withHorizontalFittingPriority: .defaultHigh, verticalFittingPriority: .defaultLow) - var adjustedFrame = layoutAttributes.frame - adjustedFrame.size.height = size.height - layoutAttributes.frame = adjustedFrame - - return layoutAttributes - - } - - - /// The received point shall be in the coordinate space of this cell - private func fyleMessageJoinWithStatus(at point: CGPoint) -> FyleMessageJoinWithStatus? { - guard let collectionOfFylesView = collectionOfFylesView else { return nil } - let newPoint = convert(point, to: collectionOfFylesView) - return collectionOfFylesView.fyleMessageJoinWithStatus(at: newPoint) - } - - func indexOfFyleMessageJoinWithStatus(at point: CGPoint) -> Int? { - guard let fyleMessageJoinWithStatus = fyleMessageJoinWithStatus(at: point) else { return nil } - return self.fyleMessagesJoinWithStatus?.firstIndex(of: fyleMessageJoinWithStatus) - } - - func thumbnailViewOfFyleMessageJoinWithStatus(_ attachment: FyleMessageJoinWithStatus) -> UIView? { - return collectionOfFylesView?.thumbnailViewOfFyleMessageJoinWithStatus(attachment) - } - - var countdownStackIsShown: Bool { - roundedRectView.subviews.first(where: { $0 == countdownStack }) != nil - } - -} - - -extension MessageCollectionViewCell: UITextViewDelegate { - - func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { - - // If the URL is an invite or a configuration, we navigate to the deep link - do { - guard var urlComponents = URLComponents(url: URL, resolvingAgainstBaseURL: true) else { return false } - urlComponents.scheme = "https" - guard let newUrl = urlComponents.url else { return false } - if let olvidURL = OlvidURL(urlRepresentation: newUrl) { - Task { await NewAppStateManager.shared.handleOlvidURL(olvidURL) } - return false - } - } - - // If we reach this point, the URL is not an Olvid URL - if self is MessageSentCollectionViewCell && textView == self.bodyTextView { - // In case the user tapped a link she sent, no need to ask for a confirmation - return true - } - if URL.absoluteString.lowercased().starts(with: "http") || URL.absoluteString.lowercased().starts(with: "https") { - delegate?.userSelectedURL(URL) - return false - } else { - return true - } - } - -} - - -// MARK: - Refreshing countdowns for ephemeral messages - -extension MessageCollectionViewCell { - - // None of the methods/variables declared within this extension are expected to be called directely. - // They are declared here so as to be used by both `MessageReceivedCollectionViewCell` and `MessageSentCollectionViewCell` - - /// Do not call this method directly. It is shared between `MessageReceivedCollectionViewCell` and `MessageSentCollectionViewCell` - func removeCurrentCountdownImageView() { - let imageViews = countdownStack.arrangedSubviews.filter({ $0 is UIImageView }) - for imageView in imageViews { - countdownStack.removeArrangedSubview(imageView) - imageView.removeFromSuperview() - } - } - - - /// Do not call this method directly. It is shared between `MessageReceivedCollectionViewCell` and `MessageSentCollectionViewCell` - func refreshCellCountdownForReadOnce() { - replaceCountdownImageView(with: countdownImageViewReadOnce) - countdownLabel.text = nil - } - - - /// Do not call this method directly. It is shared between `MessageReceivedCollectionViewCell` and `MessageSentCollectionViewCell` - func replaceCountdownImageView(with imageView: UIImageView) { - guard currentCountdownImageView != imageView else { return } - removeCurrentCountdownImageView() - countdownStack.insertArrangedSubview(imageView, at: 0) - } - - - var currentCountdownImageView: UIImageView? { - countdownStack.arrangedSubviews.first as? UIImageView - } - - - /// Do not call this method directly. It is shared between `MessageReceivedCollectionViewCell` and `MessageSentCollectionViewCell` - func refreshCellCount(expirationDate: Date, countdownImageView: UIImageView) { - replaceCountdownImageView(with: countdownImageView) - let duration = expirationDate.timeIntervalSinceNow - countdownLabel.text = MessageCollectionViewCell.durationFormatter.string(from: duration) - countdownLabel.textColor = countdownImageView.tintColor - } - - - func removeCountdownStack() { - removeCurrentCountdownImageView() - countdownStack.removeFromSuperview() - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageCollectionViewCellDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageCollectionViewCellDelegate.swift deleted file mode 100644 index 8f7d7f64..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageCollectionViewCellDelegate.swift +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - -protocol MessageCollectionViewCellDelegate: AnyObject { - func userSelectedURL(_: URL) - func reloadCell(_ cell: UICollectionViewCell) -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageReceivedCollectionViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageReceivedCollectionViewCell.swift deleted file mode 100644 index 4c1c0ca5..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageReceivedCollectionViewCell.swift +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit -import CoreData -import ObvUI -import ObvUICoreData - - -final class MessageReceivedCollectionViewCell: MessageCollectionViewCell, CellWithPersistedMessageReceived { - - static let identifier = "MessageReceivedCollectionViewCell" - - let authorNameLabel = UILabelWithLineFragmentPadding() - let authorNameLabelPaddingView = UIView() - - var messageReceived: PersistedMessageReceived? { message as? PersistedMessageReceived } - - override init(frame: CGRect) { - super.init(frame: frame) - setup() - } - - - required init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - setup() - } - - - override func setup() { - super.setup() - - mainStackView.alignment = .leading - - roundedRectView.backgroundColor = AppTheme.shared.colorScheme.receivedCellBackground - - replyToRoundedRectContentView.backgroundColor = AppTheme.shared.colorScheme.receivedCellReplyToBackground - replyToRoundedRectView.backgroundColor = AppTheme.shared.colorScheme.receivedCellReplyToBackground - replyToTextView.textColor = AppTheme.shared.colorScheme.receivedCellReplyToBody - replyToTextView.linkTextAttributes = [NSAttributedString.Key.foregroundColor: AppTheme.shared.colorScheme.receivedCellReplyToBody, - NSAttributedString.Key.underlineStyle: NSUnderlineStyle.single.rawValue, - NSAttributedString.Key.underlineColor: AppTheme.shared.colorScheme.receivedCellReplyToBody] - - bodyTextView.textColor = AppTheme.shared.colorScheme.receivedCellBody - bodyTextView.linkTextAttributes = [NSAttributedString.Key.foregroundColor: AppTheme.shared.colorScheme.receivedCellLink, - NSAttributedString.Key.underlineStyle: NSUnderlineStyle.single.rawValue, - NSAttributedString.Key.underlineColor: AppTheme.shared.colorScheme.receivedCellLink] - - authorNameLabelPaddingView.accessibilityIdentifier = "authorNameLabelPaddingView" - authorNameLabelPaddingView.translatesAutoresizingMaskIntoConstraints = false - authorNameLabelPaddingView.backgroundColor = .clear - roundedRectStackView.insertArrangedSubview(authorNameLabelPaddingView, at: 0) - - authorNameLabel.accessibilityIdentifier = "authorNameLabel" - authorNameLabel.translatesAutoresizingMaskIntoConstraints = false - authorNameLabel.font = UIFont.preferredFont(forTextStyle: .headline) - authorNameLabelPaddingView.addSubview(authorNameLabel) - - countdownStack.alignment = .leading - - bottomStackView.addArrangedSubview(dateLabel) - bottomStackView.addArrangedSubview(messageEditedStatusImageView) - - setupConstraints() - prepareForReuse() - } - - - func setupConstraints() { - let constraints = [ - mainStackView.leadingAnchor.constraint(equalTo: self.leadingAnchor), - mainStackView.leadingAnchor.constraint(equalTo: roundedRectView.leadingAnchor), - authorNameLabel.topAnchor.constraint(equalTo: authorNameLabelPaddingView.topAnchor, constant: 2.0), - authorNameLabel.trailingAnchor.constraint(equalTo: authorNameLabelPaddingView.trailingAnchor, constant: -4.0), - authorNameLabel.bottomAnchor.constraint(equalTo: authorNameLabelPaddingView.bottomAnchor, constant: 0.0), - authorNameLabel.leadingAnchor.constraint(equalTo: authorNameLabelPaddingView.leadingAnchor, constant: 4.0), - ] - NSLayoutConstraint.activate(constraints) - - authorNameLabel.setContentCompressionResistancePriority(.required, for: .horizontal) - - } - - - override func prepareForReuse() { - super.prepareForReuse() - authorNameLabelPaddingView.isHidden = true - authorNameLabel.text = nil - authorNameLabel.textColor = .clear - } - - - func prepare(with message: PersistedMessageReceived, withDateFormatter dateFormatter: DateFormatter) { - switch try? message.discussion.kind { - case .oneToOne, .none: - authorNameLabel.isHidden = true - case .groupV1, .groupV2: - authorNameLabelPaddingView.isHidden = false - if let messageContactIdentity = message.contactIdentity { - authorNameLabel.text = messageContactIdentity.customDisplayName ?? messageContactIdentity.identityCoreDetails?.getDisplayNameWithStyle(.firstNameThenLastName) ?? messageContactIdentity.fullDisplayName - authorNameLabel.textColor = messageContactIdentity.cryptoId.colors.text - } else { - authorNameLabel.text = CommonString.deletedContact - authorNameLabel.textColor = appTheme.colorScheme.secondaryLabel - } - } - super.prepare(with: message, attachments: message.fyleMessageJoinWithStatuses, withDateFormatter: dateFormatter, hideProgresses: false) - refreshMessageReceivedCellCountdown() - refreshBodyTextViewColor() - } - - - /// Calling this method refreshes this cell's subviews, using the same message - override func refresh() { - if let refreshedAttachments = message?.fyleMessageJoinWithStatus, !refreshedAttachments.isEmpty, self.attachments.isEmpty { - // This happens when the messages was obtained through a user notification. In that case, the attachments are initially nil. - // When the message is eventually downloaded from the server, we get the attachments that we set now. - // The actual update of the collection view showing these attachments is done in the superclass. - self.attachments = refreshedAttachments - } - refreshBodyTextViewColor() - super.refresh() - } - - private func refreshBodyTextViewColor() { - if let message = message, !message.isWiped, !message.isDeleted, - case .tapToRead = MessageCollectionViewCell.extractMessageElements(from: message) { - bodyTextView.textColor = AppTheme.shared.colorScheme.tapToRead - } else { - bodyTextView.textColor = AppTheme.shared.colorScheme.receivedCellBody - } - } - -} - -// MARK: - Refreshing countdowns for ephemeral messages - -extension MessageReceivedCollectionViewCell { - - func refreshMessageReceivedCellCountdown() { - guard let message = self.message as? PersistedMessageReceived else { assertionFailure(); return } - guard message.isEphemeralMessage else { return } - if message.status == .read { - // Make sure the countdownStack is shown - showCountdownStack() - // After interaction, we always display a countdown image and possibly a countdown - switch (message.readOnce, message.expirationForReceivedLimitedVisibility, message.expirationForReceivedLimitedExistence) { - case (true, .none, .none): - refreshCellCountdownForReadOnce() - case (false, .some(let visibilityExpiration), .none): - refreshCellCount(expirationDate: visibilityExpiration.expirationDate, countdownImageView: countdownImageViewVisibility) - case (true, .some(let visibilityExpiration), .none): - refreshCellCount(expirationDate: visibilityExpiration.expirationDate, countdownImageView: countdownImageViewReadOnce) - case (false, .none, .some(let existenceExpiration)): - refreshCellCount(expirationDate: existenceExpiration.expirationDate, countdownImageView: countdownImageViewExpiration) - case (true, .none, .some(let existenceExpiration)): - refreshCellCount(expirationDate: existenceExpiration.expirationDate, countdownImageView: countdownImageViewReadOnce) - case (false, .some(let visibilityExpiration), .some(let existenceExpiration)): - if existenceExpiration.expirationDate > visibilityExpiration.expirationDate { - refreshCellCount(expirationDate: visibilityExpiration.expirationDate, countdownImageView: countdownImageViewVisibility) - } else { - refreshCellCount(expirationDate: existenceExpiration.expirationDate, countdownImageView: countdownImageViewExpiration) - } - case (true, .some(let visibilityExpiration), .some(let existenceExpiration)): - let expirationDate = min(visibilityExpiration.expirationDate, existenceExpiration.expirationDate) - refreshCellCount(expirationDate: expirationDate, countdownImageView: countdownImageViewReadOnce) - default: - removeCurrentCountdownImageView() - countdownLabel.text = nil - } - } else { - // Before interaction, display expiration countdown if appropriate or remove any - guard let existenceExpiration = message.expirationForReceivedLimitedExistence else { - removeCurrentCountdownImageView() - countdownLabel.text = nil - return - } - // Make sure the countdownStack is shown - showCountdownStack() - refreshCellCount(expirationDate: existenceExpiration.expirationDate, countdownImageView: countdownImageViewExpiration) - } - } - - - private func showCountdownStack() { - guard !countdownStackIsShown else { return } - roundedRectView.addSubview(countdownStack) - NSLayoutConstraint.activate([ - countdownStack.topAnchor.constraint(equalTo: roundedRectView.topAnchor), - countdownStack.leadingAnchor.constraint(equalTo: roundedRectView.trailingAnchor, constant: 4.0), - ]) - removeCurrentCountdownImageView() - if countdownStack.subviews.isEmpty { - countdownStack.addArrangedSubview(countdownLabel) - } - } - -} - - -extension MessageReceivedCollectionViewCell: CellWithMessage { - - var viewForTargetedPreview: UIView { - self.roundedRectView - } - - var persistedMessage: PersistedMessage? { message } - - public var persistedMessageObjectID: TypeSafeManagedObjectID? { - message?.typedObjectID - } - - var persistedDraftObjectID: TypeSafeManagedObjectID? { nil } // Not used within the old discussion screen - - var textToCopy: String? { - guard let text = bodyTextView.text else { return nil } - guard !text.isEmpty else { return nil } - return text - } - - var infoViewController: UIViewController? { - guard let messageReceived = message as? PersistedMessageReceived else { assertionFailure(); return nil } - guard messageReceived.infoActionCanBeMadeAvailable else { return nil } - let rcv = ReceivedMessageInfosHostingViewController(messageReceived: messageReceived) - return rcv - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageSentCollectionViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageSentCollectionViewCell.swift deleted file mode 100644 index f6d3de4f..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageSentCollectionViewCell.swift +++ /dev/null @@ -1,248 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit -import CoreData -import ObvUI -import ObvUICoreData - - -final class MessageSentCollectionViewCell: MessageCollectionViewCell, CellWithPersistedMessageSent { - - static let identifier = "MessageSentCollectionViewCell" - - let sentStatusImageView = UIImageView() - private var hideProgresses = false - - var messageSent: PersistedMessageSent? { message as? PersistedMessageSent } - - override init(frame: CGRect) { - super.init(frame: frame) - setup() - } - - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - - override func setup() { - super.setup() - - mainStackView.alignment = .trailing - - roundedRectView.backgroundColor = appTheme.colorScheme.sentCellBackground - - replyToRoundedRectContentView.backgroundColor = AppTheme.shared.colorScheme.sentCellReplyToBackground - replyToRoundedRectView.backgroundColor = AppTheme.shared.colorScheme.sentCellReplyToBackground - replyToTextView.textColor = AppTheme.shared.colorScheme.sentCellReplyToBody - replyToTextView.linkTextAttributes = [NSAttributedString.Key.foregroundColor: AppTheme.shared.colorScheme.sentCellReplyToLink, - NSAttributedString.Key.underlineStyle: NSUnderlineStyle.single.rawValue, - NSAttributedString.Key.underlineColor: AppTheme.shared.colorScheme.sentCellReplyToLink] - - - bodyTextView.textColor = AppTheme.shared.colorScheme.sentCellBody - bodyTextView.backgroundColor = .clear - bodyTextView.linkTextAttributes = [NSAttributedString.Key.foregroundColor: AppTheme.shared.colorScheme.sentCellLink, - NSAttributedString.Key.underlineStyle: NSUnderlineStyle.single.rawValue, - NSAttributedString.Key.underlineColor: AppTheme.shared.colorScheme.sentCellLink] - - - sentStatusImageView.accessibilityIdentifier = "sentStatusImageView" - sentStatusImageView.tintColor = dateLabel.textColor - bottomStackView.insertArrangedSubview(sentStatusImageView, at: 0) - - bottomStackView.insertArrangedSubview(messageEditedStatusImageView, at: 0) - bottomStackView.addArrangedSubview(dateLabel) - - countdownStack.alignment = .trailing - - setupConstraints() - prepareForReuse() - } - - - func setupConstraints() { - let constraints = [ - mainStackView.trailingAnchor.constraint(equalTo: self.trailingAnchor), - mainStackView.trailingAnchor.constraint(equalTo: roundedRectView.trailingAnchor) - ] - NSLayoutConstraint.activate(constraints) - } - - - override func prepareForReuse() { - super.prepareForReuse() - hideProgresses = false - } - - - func prepare(with message: PersistedMessageSent, withDateFormatter dateFormatter: DateFormatter, hideProgresses: Bool) { - self.hideProgresses = hideProgresses - if hideProgresses { - sentStatusImageView.isHidden = true - } else { - refreshSentStatus(with: message) - } - super.prepare(with: message, attachments: message.fyleMessageJoinWithStatuses, withDateFormatter: dateFormatter, hideProgresses: hideProgresses) - refreshMessageReceivedCellCountdown() - } - - /// Calling this method refreshes this cell's subviews, using the same message - override func refresh() { - debugPrint("Refresh MessageSentCollectionViewCell") - if let messageSent = super.message as? PersistedMessageSent { - refreshSentStatus(with: messageSent) - } - super.refresh() - } - - - private func refreshSentStatus(with message: PersistedMessageSent) { - sentStatusImageView.image = imageForMessageStatus(message.status) - } - - - private func characterForMessageStatus(_ status: PersistedMessageSent.MessageStatus) -> String { - switch status { - case .unprocessed: - return "⌚︎" - case .processing: - return "⇮" - case .sent: - return "✓" - case .delivered: - return "✓✓" - case .read: - return "read" - case .couldNotBeSentToOneOrMoreRecipients: - return "!" - case .hasNoRecipient: - return "✓" - } - } - - - private func imageForMessageStatus(_ status: PersistedMessageSent.MessageStatus) -> UIImage { - let configuration = UIImage.SymbolConfiguration(textStyle: UIFont.TextStyle.footnote, scale: .small) - switch status { - case .unprocessed: - return UIImage(systemName: "hourglass", withConfiguration: configuration)! - case .processing: - return UIImage(systemName: "hare", withConfiguration: configuration)! - case .sent: - return UIImage(systemName: "checkmark.circle", withConfiguration: configuration)! - case .delivered: - return UIImage(systemName: "checkmark.circle.fill", withConfiguration: configuration)! - case .read: - return UIImage(systemName: "eye.fill", withConfiguration: configuration)! - case .couldNotBeSentToOneOrMoreRecipients: - return UIImage(systemIcon: .exclamationmarkCircle)! - case .hasNoRecipient: - return UIImage(systemIcon: .iphoneGen3CircleFill, withConfiguration: configuration)! - } - } -} - - -// MARK: - Refreshing countdowns for ephemeral messages - -extension MessageSentCollectionViewCell { - - func refreshMessageReceivedCellCountdown() { - guard let message = self.message as? PersistedMessageSent else { assertionFailure(); return } - assert(message.managedObjectContext?.concurrencyType == .mainQueueConcurrencyType) - guard message.isEphemeralMessage else { return } - guard !message.isWiped else { - removeCountdownStack() - return - } - // Make sure the countdownStack is shown - showCountdownStack() - // Show appropriate countdown - switch (message.readOnce, message.expirationForSentLimitedVisibility, message.expirationForSentLimitedExistence) { - case (true, .none, .none): - refreshCellCountdownForReadOnce() - case (false, .some(let visibilityExpiration), .none): - refreshCellCount(expirationDate: visibilityExpiration.expirationDate, countdownImageView: countdownImageViewVisibility) - case (true, .some(let visibilityExpiration), .none): - refreshCellCount(expirationDate: visibilityExpiration.expirationDate, countdownImageView: countdownImageViewReadOnce) - case (false, .none, .some(let existenceExpiration)): - refreshCellCount(expirationDate: existenceExpiration.expirationDate, countdownImageView: countdownImageViewExpiration) - case (true, .none, .some(let existenceExpiration)): - refreshCellCount(expirationDate: existenceExpiration.expirationDate, countdownImageView: countdownImageViewReadOnce) - case (false, .some(let visibilityExpiration), .some(let existenceExpiration)): - if existenceExpiration.expirationDate > visibilityExpiration.expirationDate { - refreshCellCount(expirationDate: visibilityExpiration.expirationDate, countdownImageView: countdownImageViewVisibility) - } else { - refreshCellCount(expirationDate: existenceExpiration.expirationDate, countdownImageView: countdownImageViewExpiration) - } - case (true, .some(let visibilityExpiration), .some(let existenceExpiration)): - let expirationDate = min(visibilityExpiration.expirationDate, existenceExpiration.expirationDate) - refreshCellCount(expirationDate: expirationDate, countdownImageView: countdownImageViewReadOnce) - default: - removeCurrentCountdownImageView() - countdownLabel.text = nil - } - } - - - private func showCountdownStack() { - guard !countdownStackIsShown else { return } - roundedRectView.addSubview(countdownStack) - NSLayoutConstraint.activate([ - countdownStack.topAnchor.constraint(equalTo: roundedRectView.topAnchor), - countdownStack.trailingAnchor.constraint(equalTo: roundedRectView.leadingAnchor, constant: -4.0), - ]) - removeCurrentCountdownImageView() - if countdownStack.subviews.isEmpty { - countdownStack.addArrangedSubview(countdownLabel) - } - } - -} - -extension MessageSentCollectionViewCell: CellWithMessage { - - var viewForTargetedPreview: UIView { - self.roundedRectView - } - - var persistedMessage: PersistedMessage? { message } - - public var persistedMessageObjectID: TypeSafeManagedObjectID? { - message?.typedObjectID - } - - var persistedDraftObjectID: TypeSafeManagedObjectID? { nil } // Not used within the old discussion screen - - var textToCopy: String? { - guard let text = bodyTextView.text else { return nil } - guard !text.isEmpty else { return nil } - return text - } - - var infoViewController: UIViewController? { - guard let messageSent = message as? PersistedMessageSent else { assertionFailure(); return nil } - guard messageSent.infoActionCanBeMadeAvailable == true else { return nil } - let rcv = SentMessageInfosHostingViewController(messageSent: messageSent) - return rcv - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageSystemCollectionViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageSystemCollectionViewCell.swift deleted file mode 100644 index 0c4d1943..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Cells/MessageSystemCollectionViewCell.swift +++ /dev/null @@ -1,336 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import CoreData -import ObvUI -import UIKit -import ObvUICoreData - -class MessageSystemCollectionViewCell: UICollectionViewCell { - - static let identifier = "MessageSystemCollectionViewCell" - - let label = UILabel() - let mainStack = UIStackView() - let roundedView = ObvRoundedRectView() - let roundedViewPadding: CGFloat = 8 - - let hStackForEphemeralConfig = UIStackView() - let readOnceStack = UIStackView() - let limitedVisibilityStack = UIStackView() - let limitedExistenceStack = UIStackView() - let expirationFontTextStyle = UIFont.TextStyle.footnote - let nonEphemeralLabel = UILabel() - - private(set) var messageSystem: PersistedMessageSystem? - - var messageSystemCategory: PersistedMessageSystem.Category? { - messageSystem?.category - } - - override init(frame: CGRect) { - super.init(frame: frame) - setup() - } - - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - func setup() { - - self.clipsToBounds = true - self.autoresizesSubviews = true - - roundedView.translatesAutoresizingMaskIntoConstraints = false - roundedView.accessibilityIdentifier = "roundedView" - roundedView.backgroundColor = appTheme.colorScheme.quaternarySystemFill - self.addSubview(roundedView) - - mainStack.translatesAutoresizingMaskIntoConstraints = false - mainStack.accessibilityIdentifier = "vStackForEphemeralConfig" - mainStack.axis = .vertical - mainStack.alignment = .center - mainStack.spacing = 4.0 - roundedView.addSubview(mainStack) - - label.translatesAutoresizingMaskIntoConstraints = false - label.accessibilityIdentifier = "label" - label.font = UIFont.preferredFont(forTextStyle: .footnote) - label.textColor = AppTheme.shared.colorScheme.label - label.textAlignment = .center - label.numberOfLines = 0 - label.lineBreakMode = .byWordWrapping - mainStack.addArrangedSubview(label) - - hStackForEphemeralConfig.translatesAutoresizingMaskIntoConstraints = false - hStackForEphemeralConfig.accessibilityIdentifier = "hStackForEphemeralConfig" - hStackForEphemeralConfig.axis = .horizontal - hStackForEphemeralConfig.spacing = 12.0 - - // Configure the stack containing a symbol and the text for the read once configuration - - do { - readOnceStack.translatesAutoresizingMaskIntoConstraints = false - readOnceStack.accessibilityIdentifier = "readOnceStack" - readOnceStack.axis = .horizontal - readOnceStack.alignment = .firstBaseline - readOnceStack.spacing = 4.0 - - let imageViewReadOnce = UIImageView() - imageViewReadOnce.translatesAutoresizingMaskIntoConstraints = false - imageViewReadOnce.accessibilityIdentifier = "imageViewReadOnce" - let configuration = UIImage.SymbolConfiguration(textStyle: expirationFontTextStyle) - let image = UIImage(systemName: "flame.fill", withConfiguration: configuration) - imageViewReadOnce.image = image - imageViewReadOnce.tintColor = .red - readOnceStack.addArrangedSubview(imageViewReadOnce) - - let labelReadOnce = UILabel() - labelReadOnce.translatesAutoresizingMaskIntoConstraints = false - labelReadOnce.accessibilityIdentifier = "labelReadOnce" - labelReadOnce.text = NSLocalizedString("READ_ONCE_LABEL", comment: "") - labelReadOnce.textColor = .red - labelReadOnce.font = UIFont.preferredFont(forTextStyle: expirationFontTextStyle) - readOnceStack.addArrangedSubview(labelReadOnce) - } - - // Configure the stack containing a symbol and the text for the limited visibility setting - - do { - limitedVisibilityStack.translatesAutoresizingMaskIntoConstraints = false - limitedVisibilityStack.accessibilityIdentifier = "limitedVisibilityStack" - limitedVisibilityStack.axis = .horizontal - limitedVisibilityStack.alignment = .firstBaseline - limitedVisibilityStack.spacing = 4.0 - - let imageLimitedVisibility = UIImageView() - imageLimitedVisibility.translatesAutoresizingMaskIntoConstraints = false - imageLimitedVisibility.accessibilityIdentifier = "imageLimitedVisibility" - let configuration = UIImage.SymbolConfiguration(textStyle: expirationFontTextStyle) - let image = UIImage(systemName: "eyes", withConfiguration: configuration) - imageLimitedVisibility.image = image - imageLimitedVisibility.tintColor = .orange - limitedVisibilityStack.addArrangedSubview(imageLimitedVisibility) - - let labelLimitedVisibility = UILabel() - labelLimitedVisibility.translatesAutoresizingMaskIntoConstraints = false - labelLimitedVisibility.accessibilityIdentifier = "labelLimitedVisibility" - labelLimitedVisibility.textColor = .orange - labelLimitedVisibility.font = UIFont.preferredFont(forTextStyle: expirationFontTextStyle) - limitedVisibilityStack.addArrangedSubview(labelLimitedVisibility) - } - - // Configure the stack containing a symbol and the text for the limited existence setting - - do { - limitedExistenceStack.translatesAutoresizingMaskIntoConstraints = false - limitedExistenceStack.accessibilityIdentifier = "limitedExistenceStack" - limitedExistenceStack.axis = .horizontal - limitedExistenceStack.alignment = .firstBaseline - limitedExistenceStack.spacing = 4.0 - - let imageLimitedExistence = UIImageView() - imageLimitedExistence.translatesAutoresizingMaskIntoConstraints = false - imageLimitedExistence.accessibilityIdentifier = "imageLimitedExistence" - let configuration = UIImage.SymbolConfiguration(textStyle: expirationFontTextStyle) - let image = UIImage(systemName: "timer", withConfiguration: configuration) - imageLimitedExistence.image = image - imageLimitedExistence.tintColor = .systemGray - limitedExistenceStack.addArrangedSubview(imageLimitedExistence) - - let labelLimitedExistence = UILabel() - labelLimitedExistence.translatesAutoresizingMaskIntoConstraints = false - labelLimitedExistence.accessibilityIdentifier = "labelLimitedExistence" - labelLimitedExistence.textColor = .systemGray - labelLimitedExistence.font = UIFont.preferredFont(forTextStyle: expirationFontTextStyle) - limitedExistenceStack.addArrangedSubview(labelLimitedExistence) - } - - // Configure the label to display when there is no ephemeral setting - - do { - nonEphemeralLabel.translatesAutoresizingMaskIntoConstraints = false - nonEphemeralLabel.accessibilityIdentifier = "nonEphemeralLabel" - nonEphemeralLabel.textColor = .systemGray - let descriptor = UIFont.preferredFont(forTextStyle: expirationFontTextStyle).fontDescriptor - let preferredDescriptor = descriptor.withSymbolicTraits(.traitItalic) ?? descriptor - nonEphemeralLabel.font = UIFont(descriptor: preferredDescriptor, size: 0) - nonEphemeralLabel.text = NSLocalizedString("NON_EPHEMERAL_MESSAGES_LABEL", comment: "") - } - - setupConstraints() - } - - - private func setupConstraints() { - let constraints = [ - roundedView.topAnchor.constraint(equalTo: self.topAnchor), - roundedView.bottomAnchor.constraint(equalTo: self.bottomAnchor), - roundedView.centerXAnchor.constraint(equalTo: self.centerXAnchor), - mainStack.topAnchor.constraint(equalTo: roundedView.topAnchor, constant: roundedViewPadding), - mainStack.bottomAnchor.constraint(equalTo: roundedView.bottomAnchor, constant: -roundedViewPadding), - mainStack.trailingAnchor.constraint(equalTo: roundedView.trailingAnchor, constant: -roundedViewPadding), - mainStack.leadingAnchor.constraint(equalTo: roundedView.leadingAnchor, constant: roundedViewPadding), - ] - NSLayoutConstraint.activate(constraints) - } - - - override func prepareForReuse() { - super.prepareForReuse() - messageSystem = nil - roundedView.backgroundColor = appTheme.colorScheme.quaternarySystemFill - self.label.textAlignment = .center - label.textColor = AppTheme.shared.colorScheme.label - while mainStack.arrangedSubviews.count > 1 { - let last = mainStack.arrangedSubviews.last! - mainStack.removeArrangedSubview(last) - last.removeFromSuperview() - } - while let view = hStackForEphemeralConfig.arrangedSubviews.last { - hStackForEphemeralConfig.removeArrangedSubview(view) - view.removeFromSuperview() - } - } - - - func prepare(with message: PersistedMessageSystem) { - - messageSystem = message - - switch message.category { - case .ownedIdentityDidCaptureSensitiveMessages, .contactIdentityDidCaptureSensitiveMessages: - self.label.text = message.textBody - self.label.textAlignment = .natural - roundedView.backgroundColor = AppTheme.shared.colorScheme.orange - label.textColor = .white - case .contactJoinedGroup, .contactLeftGroup, .contactWasDeleted, .contactRevokedByIdentityProvider, .notPartOfTheGroupAnymore, .rejoinedGroup, .contactIsOneToOneAgain: - self.label.text = message.textBody?.localizedUppercase - case .discussionIsEndToEndEncrypted: - self.label.text = message.textBody - self.label.textAlignment = .natural - roundedView.backgroundColor = AppTheme.shared.colorScheme.green - label.textColor = .white - case .numberOfNewMessages: - self.label.text = message.textBody?.localizedUppercase - self.label.textAlignment = .center - roundedView.backgroundColor = AppTheme.appleBadgeRedColor - label.textColor = .white - case .membersOfGroupV2WereUpdated, .ownedIdentityIsPartOfGroupV2Admins, .ownedIdentityIsNoLongerPartOfGroupV2Admins: - self.label.text = message.textBody - self.label.textAlignment = .center - roundedView.backgroundColor = AppTheme.shared.colorScheme.green - label.textColor = .white - case .callLogItem: - self.label.text = message.textBody?.localizedUppercase - case .updatedDiscussionSharedSettings: - self.label.text = message.textBody?.localizedUppercase - if let expirationJSON = message.expirationJSON { - var addHStackForEphemeralConfig = false - if expirationJSON.readOnce { - hStackForEphemeralConfig.addArrangedSubview(readOnceStack) - addHStackForEphemeralConfig = true - } - if let timeInterval = expirationJSON.visibilityDuration, let duration = DurationOption(rawValue: Int(timeInterval)) { - (limitedVisibilityStack.arrangedSubviews.last as? UILabel)?.text = duration.description - hStackForEphemeralConfig.addArrangedSubview(limitedVisibilityStack) - addHStackForEphemeralConfig = true - } - if let timeInterval = expirationJSON.existenceDuration, let duration = DurationOption(rawValue: Int(timeInterval)) { - (limitedExistenceStack.arrangedSubviews.last as? UILabel)?.text = duration.description - hStackForEphemeralConfig.addArrangedSubview(limitedExistenceStack) - addHStackForEphemeralConfig = true - } - if addHStackForEphemeralConfig { - mainStack.addArrangedSubview(hStackForEphemeralConfig) - } else { - mainStack.addArrangedSubview(nonEphemeralLabel) - } - } else { - mainStack.addArrangedSubview(nonEphemeralLabel) - } - case .discussionWasRemotelyWiped: - self.label.text = message.textBody?.localizedUppercase - } - - } - -} - - -extension MessageSystemCollectionViewCell { - - override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes { - - self.label.preferredMaxLayoutWidth = layoutAttributes.size.width - 2*roundedViewPadding - - var fittingSize = UIView.layoutFittingCompressedSize - fittingSize.width = layoutAttributes.size.width - let size = systemLayoutSizeFitting(fittingSize, withHorizontalFittingPriority: .defaultHigh, verticalFittingPriority: .defaultLow) - var adjustedFrame = layoutAttributes.frame - adjustedFrame.size.height = size.height - layoutAttributes.frame = adjustedFrame - - return layoutAttributes - - } - -} - - -extension MessageSystemCollectionViewCell: CellWithMessage { - - var persistedMessage: PersistedMessage? { messageSystem } - - public var persistedMessageObjectID: TypeSafeManagedObjectID? { - persistedMessage?.typedObjectID - } - - var persistedDraftObjectID: TypeSafeManagedObjectID? { nil } // Not used within the old discussion screen - - var viewForTargetedPreview: UIView { self.roundedView } - - var textToCopy: String? { nil } - var fyleMessagesJoinWithStatus: [FyleMessageJoinWithStatus]? { nil } - var imageAttachments: [FyleMessageJoinWithStatus]? { nil } - var itemProvidersForImages: [UIActivityItemProvider]? { nil } - var itemProvidersForAllAttachments: [UIActivityItemProvider]? { nil } - - var infoViewController: UIViewController? { - guard messageSystem?.infoActionCanBeMadeAvailable == true else { return nil } - if let item = messageSystem?.optionalCallLogItem { - print("item.callReportKind = \(item.callReportKind.debugDescription)") - print("item.unknownContactsCount = \(item.unknownContactsCount)") - print("item.isIncoming = \(item.isIncoming)") - - var idx = 0 - for contact in item.logContacts { - print("item.contact[\(idx)].callReportKind = \(contact.callReportKind)") - print("item.contact[\(idx)].isCaller = \(contact.isCaller)") - print("item.contact[\(idx)].contactIdentity = \(contact.contactIdentity == nil ? "nil" : "some")") - idx += 1 - } - } - - return nil - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageDataSource/ComposeMessageDataSource.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageDataSource/ComposeMessageDataSource.swift deleted file mode 100644 index d70df5bb..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageDataSource/ComposeMessageDataSource.swift +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUICoreData -import UIKit - - -protocol ComposeMessageDataSource: AnyObject { - - var body: String? { get } - var replyTo: (displayName: String, messageElement: MessageCollectionViewCell.MessageElement)? { get } - - func saveBodyText(body: String) - - func deleteReplyTo(completionHandler: @escaping (Error?) -> Void) throws - - var collectionView: UICollectionView? { get set } - - var draft: PersistedDraft { get } // The current draft value - - var collectionViewIsEmpty: Bool { get } - - func tapPerformed(on: IndexPath) - - func longPress(on: IndexPath) -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageDataSource/ComposeMessageDataSourceWithDraft.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageDataSource/ComposeMessageDataSourceWithDraft.swift deleted file mode 100644 index 7fc176d3..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageDataSource/ComposeMessageDataSourceWithDraft.swift +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit -import os.log -import CoreData -import ObvUICoreData -import OlvidUtils - - -final class ComposeMessageDataSourceWithDraft: NSObject, ComposeMessageDataSource, ObvErrorMaker { - - weak var collectionView: UICollectionView? { - didSet { - configureCollectionView() - } - } - weak var filesViewer: FilesViewer? - - static let errorDomain = "ComposeMessageDataSourceWithDraft" - - private let persistedDraft: PersistedDraft - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: ComposeMessageDataSourceWithDraft.self)) - private let fetchedResultsController: NSFetchedResultsController - private var itemChanges = [(type: NSFetchedResultsChangeType, indexPath: IndexPath?, newIndexPath: IndexPath?)]() - - - - init(draft: PersistedDraft) { - self.persistedDraft = draft - self.fetchedResultsController = ComposeMessageDataSourceWithDraft.configureTheFetchedResultsController(draft: draft) - super.init() - - fetchedResultsController.delegate = self - do { - try fetchedResultsController.performFetch() - } catch let error { - fatalError("Failed to fetch entities: \(error.localizedDescription)") - } - - } - - var draft: PersistedDraft { - return persistedDraft - } - - var body: String? { - return draft.body - } - - private func configureCollectionView() { - guard let collectionView = self.collectionView else { return } - collectionView.register(UINib(nibName: FyleCollectionViewCell.nibName, bundle: nil), - forCellWithReuseIdentifier: FyleCollectionViewCell.identifier) - collectionView.dataSource = self - collectionView.delegate = self - } - - - var replyTo: (displayName: String, messageElement: MessageCollectionViewCell.MessageElement)? { - guard let msg = draft.replyTo else { return nil } - let displayName: String - if let sentMsg = msg as? PersistedMessageSent { - displayName = sentMsg.discussion.ownedIdentity?.identityCoreDetails.getDisplayNameWithStyle(.firstNameThenLastName) ?? "" - } else if let receivedMsg = msg as? PersistedMessageReceived { - if let receivedMsgContactIdentity = receivedMsg.contactIdentity { - displayName = receivedMsgContactIdentity.customDisplayName ?? receivedMsgContactIdentity.identityCoreDetails?.getDisplayNameWithStyle(.firstNameThenLastName) ?? receivedMsgContactIdentity.fullDisplayName - } else { - displayName = CommonString.deletedContact - } - } else { - assertionFailure(); return nil - } - if let messageElement = MessageCollectionViewCell.extractMessageElements(from: msg) { - return (displayName, messageElement) - } else { - return nil - } - } - - - func saveBodyText(body: String) { - let draftObjectID = persistedDraft.typedObjectID - let log = self.log - ObvStack.shared.performBackgroundTask { (context) in - do { - guard let writableDraft = try PersistedDraft.get(objectID: draftObjectID, within: context) else { throw Self.makeError(message: "Could not find persisted draft") } - writableDraft.replaceContentWith(newBody: body, newMentions: Set()) - try context.save(logOnFailure: log) - } catch { - os_log("Could not save draft", log: log, type: .error) - } - } - - } - - - func deleteReplyTo(completionHandler: @escaping (Error?) -> Void) throws { - var error: Error? = nil - let draftObjectID = persistedDraft.typedObjectID - let log = self.log - ObvStack.shared.performBackgroundTask { (context) in - do { - guard let writableDraft = try PersistedDraft.get(objectID: draftObjectID, within: context) else { return } - writableDraft.removeReplyTo() - try context.save(logOnFailure: log) - } catch let _error { - error = _error - } - completionHandler(error) - } - } - - var collectionViewIsEmpty: Bool { - return fetchedResultsController.fetchedObjects?.isEmpty ?? true - } -} - - -// MARK: - NSFetchedResultsControllerDelegate - -extension ComposeMessageDataSourceWithDraft: NSFetchedResultsControllerDelegate { - - private static func configureTheFetchedResultsController(draft: PersistedDraft) -> NSFetchedResultsController { - - let fetchRequest: NSFetchRequest = PersistedDraftFyleJoin.fetchRequest() - fetchRequest.predicate = PersistedDraftFyleJoin.Predicate.withPersistedDraft(draft) - fetchRequest.sortDescriptors = [NSSortDescriptor(key: PersistedDraftFyleJoin.Predicate.Key.index.rawValue, ascending: true)] - - let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, - managedObjectContext: ObvStack.shared.viewContext, - sectionNameKeyPath: nil, - cacheName: nil) - - return fetchedResultsController - } - - - func controller(_ controller: NSFetchedResultsController, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?) { - itemChanges.append((type, indexPath, newIndexPath)) - } - - - func controllerDidChangeContent(_ controller: NSFetchedResultsController) { - - guard let collectionView = self.collectionView else { return } - - collectionView.performBatchUpdates({ - - while let (type, indexPath, newIndexPath) = itemChanges.popLast() { - - switch type { - case .delete: - collectionView.deleteItems(at: [indexPath!]) - case .insert: - collectionView.insertItems(at: [newIndexPath!]) - case .move: - collectionView.moveItem(at: indexPath!, to: newIndexPath!) - case .update: - collectionView.reloadItems(at: [indexPath!]) - @unknown default: - assertionFailure() - } - - - } - }) - } - -} - - -// MARK: - UICollectionViewDataSource - -extension ComposeMessageDataSourceWithDraft: UICollectionViewDataSource { - - func numberOfSections(in collectionView: UICollectionView) -> Int { - return 1 - } - - func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - guard section == 0 else { return 0 } - return fetchedResultsController.fetchedObjects?.count ?? 0 - } - - func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { - let join = fetchedResultsController.object(at: indexPath) - let fyleCell = collectionView.dequeueReusableCell(withReuseIdentifier: FyleCollectionViewCell.identifier, for: indexPath) as! FyleCollectionViewCell - fyleCell.configure(with: join) - fyleCell.layoutIfNeeded() - return fyleCell - } -} - - -// MARK: - UICollectionViewDelegateFlowLayout - -extension ComposeMessageDataSourceWithDraft: UICollectionViewDelegateFlowLayout { - - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { - return FyleCollectionViewCell.intrinsicSize - } - -} - - -// MARK: - Deleting draft fyle joins - -extension ComposeMessageDataSourceWithDraft { - - func longPress(on indexPath: IndexPath) { - let objectID = fetchedResultsController.object(at: indexPath).typedObjectID - self.deleteDraftFyleJoin(draftFyleJoinObjectId: objectID) - } - - func tapPerformed(on indexPath: IndexPath) { - let objectID = fetchedResultsController.object(at: indexPath).typedObjectID - self.deleteDraftFyleJoin(draftFyleJoinObjectId: objectID) - } - - private func deleteDraftFyleJoin(draftFyleJoinObjectId: TypeSafeManagedObjectID) { - ObvMessengerInternalNotification.userWantsToRemoveDraftFyleJoin(draftFyleJoinObjectID: draftFyleJoinObjectId).postOnDispatchQueue() - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageView.swift deleted file mode 100644 index dc224169..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageView.swift +++ /dev/null @@ -1,346 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit - -class ComposeMessageView: UIView { - - static let nibName = "ComposeMessageView" - - // Views - - @IBOutlet weak var visualEffectView: UIVisualEffectView! - @IBOutlet weak var containerView: UIView! - @IBOutlet weak var textViewContainerView: UIView! - @IBOutlet weak var textFieldBackgroundView: TextFieldBackgroundView! - @IBOutlet weak var textView: ObvAutoGrowingTextView! - @IBOutlet weak var sendButton: ObvButtonBorderless! - @IBOutlet weak var placeholderTextView: UITextView! - @IBOutlet weak var collectionView: UICollectionView! - @IBOutlet weak var plusButton: UIButton! - @IBOutlet weak var replyToStackView: UIStackView! - @IBOutlet weak var replyToNameLabel: UILabel! - @IBOutlet weak var replyToBodyLabel: UILabel! - @IBOutlet weak var replyToCancelButton: UIButton! - @IBOutlet weak var textViewBottomPaddingHeightConstraint: NSLayoutConstraint! - - // Constraints - - @IBOutlet weak var textViewHeightConstraint: NSLayoutConstraint! - @IBOutlet weak var collectionViewHeightConstraint: NSLayoutConstraint! - @IBOutlet weak var visualEffectViewWidthConstraint: NSLayoutConstraint! - @IBOutlet weak var containerViewWidthConstraint: NSLayoutConstraint! - - // Variables - - private var observationTokens = [NSKeyValueObservation]() - private var isFreezed = false - - // Delegates - - weak var documentPickerDelegate: ComposeMessageViewDocumentPickerDelegate? { - didSet { - plusButton.isHidden = (documentPickerDelegate == nil) - } - } - - weak var sendMessageDelegate: ComposeMessageViewSendMessageDelegate? { - didSet { - sendButton.isHidden = (sendMessageDelegate == nil) - } - } - - var dataSource: ComposeMessageDataSource? { - didSet { - loadDataSource() - } - } - - // Computed variables - - override var intrinsicContentSize: CGSize { - return CGSize.zero // Use autolayout ;-) - } - - @IBAction func deleteReplyToTapped(_ sender: Any) { - try? dataSource?.deleteReplyTo(completionHandler: { [weak self] (error) in - DispatchQueue.main.async { - self?.loadReplyTo() - } - }) - } - - deinit { - dataSource?.saveBodyText(body: self.textView.text) - } - - func setWidth(to width: CGFloat) { - visualEffectViewWidthConstraint.constant = width - // We substract the right safeAreaInsets to the container width, since its right side is pinned to the safe arrea. This is important, e.g., on an iPhone 11 Pro Max in landscape. - containerViewWidthConstraint.constant = width - 4 - (window?.safeAreaInsets.right ?? 0) - self.setNeedsLayout() - } - -} - - -// MARK: View lifecycle - -extension ComposeMessageView { - - override func awakeFromNib() { - super.awakeFromNib() - self.autoresizingMask = [.flexibleHeight] - configureViews() - - containerView.accessibilityIdentifier = "containerView" - } - - - override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { - // This method is particularly important when displaying the compose message view in an iPad in split view. - // In that case, this view does not span the entire screen since its width is equal to that of the detail view. - // This method allows to let the user interaction "pass through" when she did not touch a view located in the container view (which corresponds to the "visible" portion of this compose message view). - guard containerView.frame.contains(point) else { return nil } - return super.hitTest(point, with: event) - } - - - private func configureViews() { - tintColor = AppTheme.shared.colorScheme.olvidLight - - visualEffectView.effect = UIBlurEffect(style: .regular) - - plusButton.isHidden = true - plusButton.contentEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10) - - textViewContainerView.backgroundColor = .clear - textFieldBackgroundView.backgroundColor = .clear - textFieldBackgroundView.fillColor = appTheme.colorScheme.secondarySystemBackground - textFieldBackgroundView.strokeColor = appTheme.colorScheme.systemFill - - textView.maxHeight = 100 - textViewHeightConstraint.constant = 0 // Must be set here, will be reset by the ObvAutoGrowingTextView - textView.heightConstraint = self.textViewHeightConstraint - textView.textColor = AppTheme.shared.colorScheme.secondaryLabel - textView.delegate = self - textView.growingTextViewDelegate = self - - textViewBottomPaddingHeightConstraint.constant = 3 - - placeholderTextView.isEditable = false - placeholderTextView.text = Strings.placeholderText - placeholderTextView.textColor = appTheme.colorScheme.placeholderText - placeholderTextView.isSelectable = false - - sendButton.isHidden = true - sendButton.isEnabled = false - sendButton.setTitle(nil, for: .normal) - sendButton.contentEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) - let configuration = UIImage.SymbolConfiguration(scale: .large) - let image = UIImage(systemName: "paperplane.fill", withConfiguration: configuration) - sendButton.setImage(image, for: .normal) - sendButton.tintColor = nil //reset it to inherit our `tintColor` defined on `self` - - RunLoop.main.perform { // for some reason, the `tintColor` gets reset to the old yellow value after initialization - self.sendButton.tintColor = nil - } - - replyToStackView.isHidden = true - - collectionView.contentInsetAdjustmentBehavior = .never - collectionView.isHidden = dataSource?.collectionViewIsEmpty ?? true - let token = collectionView.observe(\.contentSize) { [weak self] (_, _) in - self?.collectionViewContentSizeChanged() - } - observationTokens.append(token) - collectionViewHeightConstraint.constant = FyleCollectionViewCell.intrinsicHeight - - replyToCancelButton.tintColor = .red - - configureGestureRecognizers() - - self.setNeedsLayout() - self.layoutIfNeeded() - } - - - private func configureGestureRecognizers() { - - let tapGesture = UITapGestureRecognizer(target: self, action: #selector(tapPerformed(recognizer:))) - self.addGestureRecognizer(tapGesture) - - let longPress = UILongPressGestureRecognizer(target: self, action: #selector(longPressPerformed(recognizer:))) - self.addGestureRecognizer(longPress) - - } - - @objc func tapPerformed(recognizer: UITapGestureRecognizer) { - guard recognizer.state == .ended else { return } - let location = recognizer.location(in: collectionView) - guard let indexPath = collectionView.indexPathForItem(at: location) else { return } - dataSource?.tapPerformed(on: indexPath) - } - - @objc func longPressPerformed(recognizer: UILongPressGestureRecognizer) { - guard recognizer.state == .began else { return } - let location = recognizer.location(in: collectionView) - guard let indexPath = collectionView.indexPathForItem(at: location) else { return } - dataSource?.longPress(on: indexPath) - } - -} - - -// MARK: - Reacting to collection view changes - -extension ComposeMessageView { - - private func collectionViewContentSizeChanged() { - refreshSendButton() - let collectionShouldHide = dataSource?.collectionViewIsEmpty ?? true - guard collectionView.isHidden != collectionShouldHide else { return } - // If we reach this point, we should toggle the isHidden property of the collection view - // We do not use a UIViewPropertyAnimator here, under iOS 12.1.4, this creates an improper computation of the bottom safeAreInset - UIView.animate(withDuration: 0.5, delay: 0.0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.0, options: [], animations: { [weak self] in - self?.collectionView.isHidden = collectionShouldHide - }) - } - -} - -// MARK: - UITextViewDelegate - -extension ComposeMessageView: UITextViewDelegate { - - func textViewDidChange(_ textView: UITextView) { - placeholderTextView.isHidden = !textView.text.isEmpty - refreshSendButton() - } - - - private func refreshSendButton() { - - if !textView.text.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines).isEmpty { - sendButton.isEnabled = true - } else if collectionView.numberOfItems(inSection: 0) > 0 { - sendButton.isEnabled = true - } else { - sendButton.isEnabled = false - } - - } - - - func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { - return !self.isFreezed - } - -} - - -// MARK: - User actions - -extension ComposeMessageView { - - @IBAction func plusButtonTapped(_ sender: Any) { - guard let button = sender as? UIButton else { return } - assert(button == plusButton) - self.textView.resignFirstResponder() - documentPickerDelegate?.addAttachment(button) - } - - @IBAction func sendButtonTapped(_ sender: Any) { - sendMessageDelegate?.userWantsToSendMessageInComposeMessageView(self) - } - -} - - -// MARK: - Freezing/Unfreezing - -extension ComposeMessageView { - - func freeze() { - self.isFreezed = true - self.plusButton.isEnabled = false - self.sendButton.isEnabled = false - } - - - func unfreeze() { - refreshSendButton() - self.plusButton.isEnabled = true - self.isFreezed = false - } - - - func clearText() { - self.textView.text = "" - textViewDidChange(self.textView) - } -} - - -// MARK: - Using the ComposeMessageDataSource - -extension ComposeMessageView { - - func loadDataSource() { - guard let dataSource = self.dataSource else { return } - if dataSource.collectionView == nil { - dataSource.collectionView = self.collectionView - } - self.textView.text = dataSource.body - self.textViewDidChange(textView) - loadReplyTo() - } - - func loadReplyTo() { - guard let dataSource = self.dataSource else { return } - if let (displayName, messageElement) = dataSource.replyTo { - replyToStackView.isHidden = false - replyToNameLabel.text = displayName - replyToBodyLabel.text = messageElement.replyToDescription - replyToBodyLabel.font = messageElement.font - } else { - replyToStackView.isHidden = true - replyToNameLabel.text = nil - replyToBodyLabel.text = nil - replyToBodyLabel.font = nil - } - } - -} - - -// MARK: - ObvAutoGrowingTextViewDelegate - -extension ComposeMessageView: ObvAutoGrowingTextViewDelegate { - - func userPasted(itemProviders: [NSItemProvider]) { - documentPickerDelegate?.addAttachments(itemProviders: itemProviders) - } - - func userPastedItemsWithoutText(in: ObvAutoGrowingTextView) { - documentPickerDelegate?.addAttachmentFromPasteboard() - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageView.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageView.xib deleted file mode 100644 index 26c97e5c..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageView.xib +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageViewDocumentPickerAdapterWithDraft.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageViewDocumentPickerAdapterWithDraft.swift deleted file mode 100644 index 12dae4e5..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageViewDocumentPickerAdapterWithDraft.swift +++ /dev/null @@ -1,425 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit -import CoreData -import MobileCoreServices -import os.log -import ObvCrypto -import PDFKit -import AVFoundation -import VisionKit -import PhotosUI -import OlvidUtils -import ObvUICoreData - - -final class ComposeMessageViewDocumentPickerAdapterWithDraft: NSObject { - - // API - - private let draft: PersistedDraft - - // Delegate - - weak var delegate: UIViewController? - - // Variables - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: ComposeMessageViewDocumentPickerAdapterWithDraft.self)) - private let internalOperationQueue: OperationQueue = { - let queue = OperationQueue() - queue.maxConcurrentOperationCount = 1 - queue.name = "ComposeMessageViewDocumentPickerAdapterWithDraft internal queue" - return queue - }() - - private let dateFormatter: DateFormatter = { - let df = DateFormatter() - df.locale = Locale(identifier: "en_US_POSIX") - df.dateFormat = "yyyy-MM-dd HH-mm-ss" - return df - }() - - // Initializer - - init(draft: PersistedDraft) { - self.draft = draft - super.init() - } - -} - -extension ComposeMessageViewDocumentPickerAdapterWithDraft { - - func addAttachmentFromAirDropFile(at url: URL) { - - // Get the filename - let fileName = url.lastPathComponent - - // Save the file to a temp location - let tempURL = ObvUICoreDataConstants.ContainerURL.forTempFiles.appendingPathComponent(fileName) - do { - _ = url.startAccessingSecurityScopedResource() - try FileManager.default.copyItem(at: url, to: tempURL) - url.stopAccessingSecurityScopedResource() - } catch { - os_log("Could not save AirDrop file to temp URL", log: log, type: .error) - return - } - - // Add an attachment - - self.delegate?.showHUD(type: .spinner) - - let op = LoadFileRepresentationsThenCreateDraftFyleJoinsCompositeOperation(draftPermanentID: draft.objectPermanentID, fileURLs: [tempURL], log: log) - op.completionBlock = { [weak self] in - DispatchQueue.main.async { - self?.delegate?.hideHUD() - } - } - internalOperationQueue.addOperation(op) - - } - -} - -extension ComposeMessageViewDocumentPickerAdapterWithDraft: ComposeMessageViewDocumentPickerDelegate { - - // This method is typically called when performing a drop on the growing text field. - func addAttachments(itemProviders: [NSItemProvider]) { - assert(Thread.isMainThread) - guard !itemProviders.isEmpty else { return } - self.delegate?.showHUD(type: .spinner) - let op = LoadFileRepresentationsThenCreateDraftFyleJoinsCompositeOperation(draftPermanentID: draft.objectPermanentID, itemProviders: itemProviders, log: log) - op.completionBlock = { [weak self] in - DispatchQueue.main.async { - self?.delegate?.hideHUD() - } - } - internalOperationQueue.addOperation(op) - } - - - func addAttachmentFromPasteboard() { - os_log("Adding %d attachments from the pasteboard", log: log, type: .info, UIPasteboard.general.itemProviders.count) - addAttachments(itemProviders: UIPasteboard.general.itemProviders) - } - - - private func addAttachment(atURL url: URL) { - assert(Thread.isMainThread) - self.delegate?.showHUD(type: .spinner) - let op = LoadFileRepresentationsThenCreateDraftFyleJoinsCompositeOperation(draftPermanentID: draft.objectPermanentID, fileURLs: [url], log: log) - op.completionBlock = { [weak self] in - DispatchQueue.main.async { - self?.delegate?.hideHUD() - } - } - internalOperationQueue.addOperation(op) - } - - - func addAttachment(_ sender: UIView) { - - let alert = UIAlertController(title: Strings.addAttachment, message: nil, preferredStyle: .actionSheet) - - alert.addAction(UIAlertAction(title: Strings.addAttachmentDocument, style: .default, handler: { [weak self] (action) in - // See UTCoreTypes.h for types - // Since we have kUTTypeItem, other elements in the array may be useless - let documentTypes = [kUTTypeImage, kUTTypeMovie, kUTTypePDF, kUTTypeData, kUTTypeItem] as [String] - let documentPicker = UIDocumentPickerViewController(documentTypes: documentTypes, in: .import) - documentPicker.delegate = self - documentPicker.allowsMultipleSelection = true - DispatchQueue.main.async { - self?.delegate?.present(documentPicker, animated: true) - } - })) - - if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) { - alert.addAction(UIAlertAction(title: Strings.addAttachmentPhotoAndVideoLibrary, style: .default, handler: { [weak self] (action) in - if #available(iOS 14.0, *) { - var configuration = PHPickerConfiguration() - configuration.selectionLimit = 0 - let picker = PHPickerViewController(configuration: configuration) - picker.delegate = self - assert(Thread.isMainThread) - self?.delegate?.present(picker, animated: true) - } else { - let imagePicker = UIImagePickerController() - imagePicker.sourceType = .photoLibrary - imagePicker.mediaTypes = [kUTTypeImage, kUTTypeMovie] as [String] - imagePicker.delegate = self - imagePicker.allowsEditing = false - imagePicker.videoExportPreset = AVAssetExportPresetPassthrough - DispatchQueue.main.async { - self?.delegate?.present(imagePicker, animated: true) - } - } - })) - } - - if UIImagePickerController.isSourceTypeAvailable(.camera) { - alert.addAction(UIAlertAction(title: CommonString.Word.Camera, style: .default, handler: { [weak self] (action) in - switch AVCaptureDevice.authorizationStatus(for: AVMediaType.video) { - case .authorized: - self?.setupAndPresentCaptureSession() - case .notDetermined: - AVCaptureDevice.requestAccess(for: .video) { granted in - if granted { - DispatchQueue.main.async { - self?.setupAndPresentCaptureSession() - } - } - } - case .denied, - .restricted: - let NotificationType = MessengerInternalNotification.UserTriedToAccessCameraButAccessIsDenied.self - NotificationCenter.default.post(name: NotificationType.name, object: nil) - @unknown default: - assertionFailure("A recent AVCaptureDevice.authorizationStatus is not properly handled") - return - } - })) - } - - if UIImagePickerController.isSourceTypeAvailable(.camera), VNDocumentCameraViewController.isSupported { - alert.addAction(UIAlertAction(title: CommonString.Title.scanDocument, style: .default, handler: { [weak self] (action) in - switch AVCaptureDevice.authorizationStatus(for: AVMediaType.video) { - case .authorized: - self?.setupAndPresentDocumentCameraViewController() - case .notDetermined: - AVCaptureDevice.requestAccess(for: .video) { granted in - if granted { - DispatchQueue.main.async { - self?.setupAndPresentDocumentCameraViewController() - } - } - } - case .denied, - .restricted: - let NotificationType = MessengerInternalNotification.UserTriedToAccessCameraButAccessIsDenied.self - NotificationCenter.default.post(name: NotificationType.name, object: nil) - @unknown default: - assertionFailure("A recent AVCaptureDevice.authorizationStatus is not properly handled") - return - } - })) - } - - alert.addAction(UIAlertAction(title: CommonString.Word.Cancel, style: .cancel)) - - DispatchQueue.main.async { [weak self] in - alert.popoverPresentationController?.sourceView = sender - self?.delegate?.present(alert, animated: true) - } - - } - - - - private func setupAndPresentDocumentCameraViewController() { - assert(Thread.isMainThread) - let documentCameraViewController = VNDocumentCameraViewController() - documentCameraViewController.delegate = self - DispatchQueue.main.async { [weak self] in - self?.delegate?.present(documentCameraViewController, animated: true) - } - } - - - private func setupAndPresentCaptureSession() { - let imagePicker = UIImagePickerController() - imagePicker.sourceType = .camera - imagePicker.mediaTypes = [kUTTypeImage, kUTTypeMovie] as [String] - imagePicker.delegate = self - imagePicker.allowsEditing = false - DispatchQueue.main.async { [weak self] in - self?.delegate?.present(imagePicker, animated: true) - } - } - -} - - -// MARK: - UIDocumentPickerDelegate - -extension ComposeMessageViewDocumentPickerAdapterWithDraft: UIDocumentPickerDelegate { - - func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) { - - self.delegate?.showHUD(type: .spinner) - - let op = LoadFileRepresentationsThenCreateDraftFyleJoinsCompositeOperation(draftPermanentID: draft.objectPermanentID, fileURLs: urls, log: log) - op.completionBlock = { [weak self] in - DispatchQueue.main.async { - self?.delegate?.hideHUD() - } - } - internalOperationQueue.addOperation(op) - - } - -} - - -// MARK: - PHPickerViewControllerDelegate (for iOS >= 14.0) - -@available(iOS 14, *) -extension ComposeMessageViewDocumentPickerAdapterWithDraft: PHPickerViewControllerDelegate { - - func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { - picker.dismiss(animated: true) - guard !results.isEmpty else { return } - let itemProviders = results.map { $0.itemProvider } - addAttachments(itemProviders: itemProviders) - } - -} - -// MARK: - UIImagePickerControllerDelegate (for iOS < 14.0 and for the Camera) - -extension ComposeMessageViewDocumentPickerAdapterWithDraft: UIImagePickerControllerDelegate, UINavigationControllerDelegate { - - func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) { - - picker.dismiss(animated: true) - delegate?.showHUD(type: .spinner) - - let dateFormatter = self.dateFormatter - let log = self.log - - DispatchQueue(label: "Queue for processing the UIImagePickerController result").async { [weak self] in - - defer { - DispatchQueue.main.async { - self?.delegate?.hideHUD() - } - } - - // Fow now, we only authorize images and videos - - guard let chosenMediaType = info[.mediaType] as? String else { return } - guard ([kUTTypeImage, kUTTypeMovie] as [String]).contains(chosenMediaType) else { return } - - let pickerURL: URL? - if let imageURL = info[.imageURL] as? URL { - pickerURL = imageURL - } else if let mediaURL = info[.mediaURL] as? URL { - pickerURL = mediaURL - } else { - // This should only happen when shooting a photo - pickerURL = nil - } - - if let url = pickerURL { - // Copy the file to a temporary location. This does not seems to be required the pickerURL comes from an info[.imageURL], but this seems to be required when it comes from a info[.mediaURL]. Nevertheless, we do it for both, since the filename provided by the picker is terrible in both cases. - let fileExtension = url.pathExtension.lowercased() - let filename = ["Media @ \(dateFormatter.string(from: Date()))", fileExtension].joined(separator: ".") - let localURL = ObvUICoreDataConstants.ContainerURL.forTempFiles.appendingPathComponent(filename) - do { - try FileManager.default.copyItem(at: url, to: localURL) - } catch { - os_log("Could not copy file provided by the Photo picker to a local URL: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - assert(!localURL.path.contains("PluginKitPlugin")) // This is a particular case, but we know the loading won't work in that case - DispatchQueue.main.async { - self?.addAttachment(atURL: localURL) - } - } else if let originalImage = info[.originalImage] as? UIImage { - let uti = String(kUTTypeJPEG) - guard let fileExtention = ObvUTIUtils.preferredTagWithClass(inUTI: uti, inTagClass: .FilenameExtension) else { return } - let name = "Photo @ \(dateFormatter.string(from: Date()))" - let tempFileName = [name, fileExtention].joined(separator: ".") - let url = ObvUICoreDataConstants.ContainerURL.forTempFiles.appendingPathComponent(tempFileName) - guard let pickedImageJpegData = originalImage.jpegData(compressionQuality: 1.0) else { return } - do { - try pickedImageJpegData.write(to: url) - } catch let error { - os_log("Could not save file to temp location: %@", log: log, type: .error, error.localizedDescription) - return - } - DispatchQueue.main.async { - self?.addAttachment(atURL: url) - } - } else { - assertionFailure() - } - - } - - } - -} - - -// MARK: - VNDocumentCameraViewControllerDelegate - - -extension ComposeMessageViewDocumentPickerAdapterWithDraft: VNDocumentCameraViewControllerDelegate { - - - func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFinishWith scan: VNDocumentCameraScan) { - - controller.dismiss(animated: true) - - guard scan.pageCount > 0 else { return } - - self.delegate?.showHUD(type: .spinner) - - let dateFormatter = self.dateFormatter - - DispatchQueue(label: "Queue for creating a pdf from scanned document").async { - - let pdfDocument = PDFDocument() - for pageNumber in 0... - */ - -import UIKit - -protocol ComposeMessageViewDocumentPickerDelegate: AnyObject { - - func addAttachmentFromPasteboard() - func addAttachment(_ sender: UIView) - func addAttachments(itemProviders: [NSItemProvider]) - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageViewSendMessageAdapterWithDraft.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageViewSendMessageAdapterWithDraft.swift deleted file mode 100644 index 75f1e117..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageViewSendMessageAdapterWithDraft.swift +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import os.log -import ObvUICoreData - - -final class ComposeMessageViewSendMessageAdapterWithDraft: ComposeMessageViewSendMessageDelegate { - - // API - - private let draft: PersistedDraft - - // Variables - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: ComposeMessageViewSendMessageAdapterWithDraft.self)) - private var observationTokens = [NSObjectProtocol]() - private weak var composeMessageView: ComposeMessageView? - - // Initializer - - init(draft: PersistedDraft) { - self.draft = draft - observeDraftWasSentNotifications() - } - - deinit { - observationTokens.forEach { NotificationCenter.default.removeObserver($0) } - } - - - func userWantsToSendMessageInComposeMessageView(_ composeMessageView: ComposeMessageView) { - - assert(self.draft.managedObjectContext == ObvStack.shared.viewContext) - - let log = self.log - - // We keep a weak reference to the compose message view so as to clear it when we receive a notification that the message has been sent. - self.composeMessageView = composeMessageView - - composeMessageView.freeze() - let textToSend = composeMessageView.textView.text.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines) - let draftObjectID = self.draft.typedObjectID - - ObvStack.shared.performBackgroundTask { (context) in - - let writableDraft: PersistedDraft - do { - guard let _writableDraft = try PersistedDraft.get(objectID: draftObjectID, within: context) else { return } - writableDraft = _writableDraft - } catch { - DispatchQueue.main.async { - composeMessageView.unfreeze() - } - return - } - - guard !textToSend.isEmpty || !writableDraft.fyleJoins.isEmpty else { - DispatchQueue.main.async { - composeMessageView.unfreeze() - } - return - } - writableDraft.replaceContentWith(newBody: textToSend, newMentions: Set()) - writableDraft.send() - do { - try context.save(logOnFailure: log) - } catch { - // We wait for the reception of the DraftWasSent notification to unfreeze the compose message view - return - } - - } - - } - - - private func observeDraftWasSentNotifications() { - let token = ObvMessengerCoreDataNotification.observeDraftWasSent(queue: OperationQueue.main) { (draftObjectID) in - guard self.draft.typedObjectID == draftObjectID else { return } - ObvStack.shared.viewContext.refresh(self.draft, mergeChanges: false) - self.composeMessageView?.loadDataSource() - self.composeMessageView?.unfreeze() - } - observationTokens.append(token) - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageViewSendMessageDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageViewSendMessageDelegate.swift deleted file mode 100644 index f2a47dd8..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/ComposeMessageViewSendMessageDelegate.swift +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation - -protocol ComposeMessageViewSendMessageDelegate: AnyObject { - func userWantsToSendMessageInComposeMessageView(_: ComposeMessageView) -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/TextFieldBackgroundView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/TextFieldBackgroundView.swift deleted file mode 100644 index eec68268..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/ComposeMessage/TextFieldBackgroundView.swift +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit - -class TextFieldBackgroundView: UIView { - - private let cornerRadius: CGFloat = 9.5 - private var shapeLayer: CAShapeLayer! - - var fillColor: UIColor = AppTheme.shared.colorScheme.secondarySystemBackground - var strokeColor: UIColor = AppTheme.shared.colorScheme.secondarySystemBackground - - override func layoutSubviews() { - super.layoutSubviews() - - shapeLayer?.removeFromSuperlayer() - shapeLayer = CAShapeLayer() - shapeLayer.fillColor = self.fillColor.cgColor - shapeLayer.strokeColor = self.strokeColor.cgColor - shapeLayer.lineWidth = 1.0 - shapeLayer.path = CGPath(roundedRect: self.bounds, - cornerWidth: 2*cornerRadius, - cornerHeight: 2*cornerRadius, - transform: nil) - self.layer.addSublayer(shapeLayer) - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutItemInfos.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutItemInfos.swift deleted file mode 100644 index 2306d4ed..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ElementInfos/ObvCollectionViewLayoutItemInfos.swift +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - -struct ObvCollectionViewLayoutItemInfos { - - let frameInSection: CGRect - - /// Return the frame of the item in the collection view - /// - /// - Parameter sectionInfos: The section infos of the section containing this item - /// - Returns: The frame of this item in the collection view - func getFrame(using sectionInfos: ObvCollectionViewLayoutSectionInfos) -> CGRect { - let origin = CGPoint(x: sectionInfos.frame.origin.x + frameInSection.origin.x, - y: sectionInfos.frame.origin.y + frameInSection.origin.y) - let size = frameInSection.size - let frame = CGRect(origin: origin, size: size) - return frame - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ObvCollectionView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ObvCollectionView.swift deleted file mode 100644 index 5ae254b3..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ObvCollectionView.swift +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - -final class ObvCollectionView: UICollectionView { - - - override func deleteItems(at indexPaths: [IndexPath]) { - (collectionViewLayout as? ObvCollectionViewLayout)?.deletedIndexPathBeforeUpdate.append(contentsOf: indexPaths) - super.deleteItems(at: indexPaths) - } - - - override func deleteSections(_ sections: IndexSet) { - (collectionViewLayout as? ObvCollectionViewLayout)?.deletedSectionsBeforeUpdate.formUnion(sections) - super.deleteSections(sections) - } - - - override func insertSections(_ sections: IndexSet) { - (collectionViewLayout as? ObvCollectionViewLayout)?.insertedSectionsAfterUpdate.formUnion(sections) - super.insertSections(sections) - } - - - override func insertItems(at indexPaths: [IndexPath]) { - (collectionViewLayout as? ObvCollectionViewLayout)?.insertedIndexPathsAfterUpdate.append(contentsOf: indexPaths) - super.insertItems(at: indexPaths) - } - - override func moveItem(at indexPath: IndexPath, to newIndexPath: IndexPath) { - (collectionViewLayout as? ObvCollectionViewLayout)?.movedIndexPaths[newIndexPath] = indexPath - super.moveItem(at: indexPath, to: newIndexPath) - } - -} - - -extension ObvCollectionView { - - var lastIndexPathIsVisible: Bool { - guard numberOfSections > 0 else { return true } - let lastSection = numberOfSections-1 - guard numberOfItems(inSection: lastSection) != 0 else { return true } - let lastIndexPath = IndexPath(item: numberOfItems(inSection: lastSection)-1, section: lastSection) - return indexPathsForVisibleItems.contains(lastIndexPath) - } - - func adjustedScrollToItem(at indexPath: IndexPath, at scrollPosition: UICollectionView.ScrollPosition, animated: Bool, completionHandler: (() -> Void)? = nil) { - - let animationDuration: TimeInterval = animated ? 0.1 : 0 - let animator = UIViewPropertyAnimator(duration: animationDuration, curve: .linear) - animator.addAnimations { [weak self] in - self?.scrollToItem(at: indexPath, at: scrollPosition, animated: false) - } - animator.addCompletion { [weak self] (position) in - guard position == .end else { return } - if self?.indexPathsForVisibleItems.contains(indexPath) == true { - // We scroll one last time to make sure the cell is at the right location - self?.scrollToItem(at: indexPath, at: scrollPosition, animated: animated) - completionHandler?() - } else { - self?.adjustedScrollToItem(at: indexPath, at: scrollPosition, animated: animated, completionHandler: completionHandler) - } - } - animator.startAnimation() - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ObvCollectionViewLayout.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ObvCollectionViewLayout.swift deleted file mode 100644 index ddbddadc..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ObvCollectionViewLayout.swift +++ /dev/null @@ -1,968 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - -final class ObvCollectionViewLayout: UICollectionViewLayout { - - private var needsInitialPrepare = true - - private var largestSectionWithValidOrigin: Int? = nil - private var cachedSectionInfos = [ObvCollectionViewLayoutSectionInfos]() - private var cachedSupplementaryViewInfos = [ObvCollectionViewLayoutSupplementaryViewInfos]() - private var cachedItemInfos = [[ObvCollectionViewLayoutItemInfos]]() - - private(set) var knownCollectionViewSafeAreaWidth: CGFloat = CGFloat.zero // Computed later - private var availableWidth: CGFloat = 0.0 // Computed later - private var sectionWidth: CGFloat = 0.0 // Computed later - private var sectionXOrigin: CGFloat = 0.0 // Computed later - private let defaultHeightForSupplementaryView: CGFloat = 20.0 - private let defaultHeightForCell: CGFloat = 59.0 - private let defaultSectionXOrigin: CGFloat = 10.0 - - var interitemSpacing: CGFloat = 10 - var spaceBetweenSections: CGFloat = 10 - - weak var delegate: ObvCollectionViewLayoutDelegate? - - var deletedIndexPathBeforeUpdate = [IndexPath]() - var deletedSectionsBeforeUpdate = IndexSet() - var insertedSectionsAfterUpdate = IndexSet() - var insertedIndexPathsAfterUpdate = [IndexPath]() - var movedIndexPaths = [IndexPath: IndexPath]() - - var indexPathOfPinnedHeader: IndexPath? = nil - var sectionHeadersPinToVisibleBounds = true - -} - - -// MARK: - Preparing & reseting the layout, returning the content size - -extension ObvCollectionViewLayout { - - override func prepare() { - guard let collectionView = collectionView else { return } - - guard !needsInitialPrepare else { - initialPrepare(collectionView: collectionView) - needsInitialPrepare = false - return - } - - updateCache() - - } - - - func reset() { - needsInitialPrepare = true - } - - - private func initialPrepare(collectionView: UICollectionView, forBoundsChange newBounds: CGRect? = nil) { - - debugPrint("🥶 Layout considers safeAreaInsets: \(collectionView.safeAreaInsets)") - knownCollectionViewSafeAreaWidth = (newBounds ?? collectionView.bounds).inset(by: collectionView.safeAreaInsets).width - - availableWidth = knownCollectionViewSafeAreaWidth - sectionXOrigin = defaultSectionXOrigin - sectionWidth = availableWidth - 2 * defaultSectionXOrigin - - // Reset cached information. - cachedSectionInfos.removeAll() - cachedSupplementaryViewInfos.removeAll() - cachedItemInfos.removeAll() - - var previousSectionFrame = CGRect.zero - - for section in 0.. 0) - let sectionHeight = defaultHeightForSupplementaryView + CGFloat(collectionView.numberOfItems(inSection: section)) * (defaultHeightForCell + interitemSpacing) - let size = CGSize(width: sectionWidth, height: sectionHeight) - let frame = CGRect(origin: origin, size: size) - let sectionInfos = ObvCollectionViewLayoutSectionInfos(frame: frame, largestItemWithValidOrigin: collectionView.numberOfItems(inSection: section)-1) - cachedSectionInfos.append(sectionInfos) - - previousSectionFrame = frame - } - - // Cache estimated infos for the supplementary view of this section - - let supplementaryViewFrame: CGRect - - do { - let origin = CGPoint.zero - let size = CGSize(width: sectionWidth, height: defaultHeightForSupplementaryView) - supplementaryViewFrame = CGRect(origin: origin, size: size) - let svInfos = ObvCollectionViewLayoutSupplementaryViewInfos(frameInSection: supplementaryViewFrame) - cachedSupplementaryViewInfos.append(svInfos) - } - - // Cache estimated infos for all the items within this section - - var cachedItemInfosInSection = [ObvCollectionViewLayoutItemInfos]() - var previousElementFrame = supplementaryViewFrame - - for _ in 0.. 0 { - largestSectionWithValidOrigin = collectionView.numberOfSections-1 - } - - if collectionView.bounds.height < collectionViewContentSize.height { - collectionView.contentOffset = CGPoint(x: 0, y: collectionViewContentSize.height - collectionView.bounds.height) - } - - } - - - override var collectionViewContentSize: CGSize { - guard !cachedSectionInfos.isEmpty else { return .zero } - adjustOriginOfLayoutSectionInfos(untilSection: cachedSectionInfos.count-1) - guard let lastSectionFrame = cachedSectionInfos.last?.frame else { return .zero } - return CGSize(width: sectionWidth, height: lastSectionFrame.maxY) - } - -} - - -// MARK: - Deciding and processing layout invalidation - -extension ObvCollectionViewLayout { - - override func shouldInvalidateLayout(forBoundsChange newBounds: CGRect) -> Bool { - guard let collectionView = collectionView else { return false } - if sectionHeadersPinToVisibleBounds { - return !newBounds.equalTo(collectionView.bounds) - } else { - return !newBounds.size.equalTo(collectionView.bounds.size) - } - } - - - override func shouldInvalidateLayout(forPreferredLayoutAttributes preferredAttributes: UICollectionViewLayoutAttributes, withOriginalAttributes originalAttributes: UICollectionViewLayoutAttributes) -> Bool { - if preferredAttributes.frame == originalAttributes.frame { - return false - } else { - return true - } - } - -} - - -// MARK: - Returning invalidation context - -extension ObvCollectionViewLayout { - - override func invalidationContext(forBoundsChange newBounds: CGRect) -> UICollectionViewLayoutInvalidationContext { - let context = super.invalidationContext(forBoundsChange: newBounds) - if let collectionView = self.collectionView, - newBounds.width != collectionView.bounds.width { - initialPrepare(collectionView: collectionView, forBoundsChange: newBounds) - } - return context - } - -} - - -// MARK: - Returning layout attributes - -extension ObvCollectionViewLayout { - - override func layoutAttributesForItem(at indexPath: IndexPath) -> UICollectionViewLayoutAttributes? { - adjustOriginOfLayoutSectionInfos(untilSection: indexPath.section) - adjustOriginOfLayoutItemInfos(at: indexPath) - - let sectionInfos = cachedSectionInfos[indexPath.section] - let itemInfos = cachedItemInfos[indexPath.section][indexPath.item] - let frame = itemInfos.getFrame(using: sectionInfos) - let attributes = UICollectionViewLayoutAttributes(forCellWith: indexPath) - attributes.frame = frame - return attributes - } - - - override func layoutAttributesForSupplementaryView(ofKind elementKind: String, at indexPath: IndexPath) -> UICollectionViewLayoutAttributes? { - assert(indexPath.item == 0) - - guard elementKind == UICollectionView.elementKindSectionHeader else { return nil } - - adjustOriginOfLayoutSectionInfos(untilSection: indexPath.section) - - let topFrame = topFrameForSupplementaryView(atSection: indexPath.section) - let bottomFrame = bottomFrameForSupplementaryView(atSection: indexPath.section) - - let attributes = UICollectionViewLayoutAttributes(forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, with: indexPath) - attributes.zIndex = Int.max - - guard sectionHeadersPinToVisibleBounds else { - indexPathOfPinnedHeader = nil - attributes.frame = topFrame - return attributes - } - - let spaceAboveSection = spaceBetweenSections - - if bottomFrame.origin.y > collectionView!.bounds.origin.y + collectionView!.adjustedContentInset.top + spaceAboveSection { - attributes.frame = CGRect(origin: CGPoint(x: bottomFrame.origin.x, y: collectionView!.bounds.origin.y + collectionView!.adjustedContentInset.top + spaceAboveSection), size: bottomFrame.size) - } else { - attributes.frame = bottomFrame - } - - if attributes.frame.origin.y <= topFrame.origin.y { - attributes.frame = topFrame - if indexPathOfPinnedHeader == indexPath { - indexPathOfPinnedHeader = nil - } - } else { - indexPathOfPinnedHeader = indexPath - } - - return attributes - } - - - func topFrameForSupplementaryView(atSection section: Int) -> CGRect { - let sectionInfos = cachedSectionInfos[section] - let svInfos = cachedSupplementaryViewInfos[section] - let frame = svInfos.getFrame(using: sectionInfos) - return frame - } - - - func bottomFrameForSupplementaryView(atSection section: Int) -> CGRect { - let sectionInfos = cachedSectionInfos[section] - let svInfos = cachedSupplementaryViewInfos[section] - let frame = svInfos.getFrame(using: sectionInfos) - let newOrigin = CGPoint(x: frame.origin.x, y: frame.origin.y + sectionInfos.frame.size.height - frame.size.height) - let newFrame = CGRect(origin: newOrigin, size: frame.size) - return newFrame - } - - - override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? { - var attributesArray = [UICollectionViewLayoutAttributes]() - - // Find any section that sits within the query rect - - guard let lastIndex = cachedSectionInfos.indices.last, - let firstMatchIndex = binSearchSectionInfos(rect, start: 0, end: lastIndex) else { return attributesArray } - - var sectionsIntersectingRect = [firstMatchIndex] - - // Starting from the match, loop up and down through the array until all the sections that intersect the rect have been found - - for section in (0..= rect.minY else { break } - sectionsIntersectingRect.insert(section, at: 0) - } - - for section in firstMatchIndex..= rect.minY && attributes.frame.minY <= rect.maxY { - attributesArray.append(attributes) - } - } - } - - // Continue with the items - - let sectionItemInfos = cachedItemInfos[section] - - for item in 0..= rect.minY && frame.minY <= rect.maxY else { continue } - let attributes = UICollectionViewLayoutAttributes(forCellWith: IndexPath(item: item, section: section)) - attributes.frame = frame - attributesArray.append(attributes) - - } - - } - - return attributesArray - - } - -} - - -// MARK: - Self sizing cells - -extension ObvCollectionViewLayout { - - override func invalidationContext(forPreferredLayoutAttributes preferredAttributes: UICollectionViewLayoutAttributes, withOriginalAttributes originalAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutInvalidationContext { - - let context = super.invalidationContext(forPreferredLayoutAttributes: preferredAttributes, withOriginalAttributes: originalAttributes) - - let currentIndexPath = preferredAttributes.indexPath - - // Update the cached size of the current element and get the height adjustment (to be used to set both contentOffsetAdjustment and contentSizeAdjustment of the context) - - let heightAdjustment: CGFloat - - switch originalAttributes.representedElementCategory { - - case .cell: - - let infos = cachedItemInfos[currentIndexPath.section][currentIndexPath.item] - let origin = infos.frameInSection.origin - heightAdjustment = preferredAttributes.frame.size.height - infos.frameInSection.size.height - let size = CGSize(width: sectionWidth, height: preferredAttributes.frame.size.height) - let frame = CGRect(origin: origin, size: size) - let updatedInfos = ObvCollectionViewLayoutItemInfos(frameInSection: frame) - cachedItemInfos[currentIndexPath.section][currentIndexPath.item] = updatedInfos - - case .supplementaryView: - - let infos = cachedSupplementaryViewInfos[currentIndexPath.section] - let origin = infos.frameInSection.origin - heightAdjustment = preferredAttributes.frame.size.height - infos.frameInSection.size.height - let size = CGSize(width: sectionWidth, height: preferredAttributes.frame.size.height) - let frame = CGRect(origin: origin, size: size) - let updatedInfos = ObvCollectionViewLayoutSupplementaryViewInfos(frameInSection: frame) - cachedSupplementaryViewInfos[currentIndexPath.section] = updatedInfos - - case .decorationView: - assertionFailure("Unexpected element category") - return context - - @unknown default: - fatalError() - } - - // Update the section infos - - do { - let sectionInfos = cachedSectionInfos[currentIndexPath.section] - - let origin = sectionInfos.frame.origin - let size = CGSize(width: sectionWidth, height: sectionInfos.frame.size.height + heightAdjustment) - let frame = CGRect(origin: origin, size: size) - - let largestItemWithValidOrigin: Int? - switch originalAttributes.representedElementCategory { - case .cell: - if let currentLargestItemWithValidOrigin = sectionInfos.largestItemWithValidOrigin { - largestItemWithValidOrigin = min(currentLargestItemWithValidOrigin, currentIndexPath.item) - } else { - largestItemWithValidOrigin = nil - } - case .supplementaryView: - largestItemWithValidOrigin = nil - case .decorationView: - assertionFailure("Unexpected element category") - return context - @unknown default: - fatalError() - } - - let updatedSectionInfos = ObvCollectionViewLayoutSectionInfos(frame: frame, largestItemWithValidOrigin: largestItemWithValidOrigin) - - cachedSectionInfos[currentIndexPath.section] = updatedSectionInfos - } - - // Update the index of largest section with valid origin - - if largestSectionWithValidOrigin != nil { - largestSectionWithValidOrigin = min(largestSectionWithValidOrigin!, currentIndexPath.section) - } - - // Adjust the context - - context.contentOffsetAdjustment = getContentOffsetAdjustment(from: heightAdjustment, ofElementWithCategoy: originalAttributes.representedElementCategory, atIndexPath: currentIndexPath) - context.contentSizeAdjustment = CGSize(width: 0.0, height: heightAdjustment) - - return context - } - - - private func getContentOffsetAdjustment(from heightAdjustment: CGFloat, ofElementWithCategoy categoy: UICollectionView.ElementCategory, atIndexPath indexPath: IndexPath) -> CGPoint { - - guard let collectionView = collectionView else { return .zero } - guard let delegate = delegate else { return .zero } - - let contentOffsetAdjustment: CGPoint - - // Always adjust while the collection is not on screen yet - guard delegate.collectionViewDidAppear() else { - return CGPoint(x: 0, y: heightAdjustment) - } - - if collectionViewContentSize.height <= collectionView.bounds.height { - - // After self-sizing the cell, the content size happens to be smaller than the collection view bound. - // We adjust the content offset to to make it (0,0). - let heightAdjustment = -collectionView.contentOffset.y - contentOffsetAdjustment = CGPoint(x: 0, y: heightAdjustment) - - } else { - - switch getElementPositionWithRespectToContentView(elementCategory: categoy, indexPath: indexPath, collectionView: collectionView) { - case .above: - contentOffsetAdjustment = CGPoint(x: 0, y: heightAdjustment) - case .under: - contentOffsetAdjustment = .zero - case .visible: - contentOffsetAdjustment = .zero - } - - } - - return contentOffsetAdjustment - - } - -} - - -// MARK: - Updating cache before collection view updates - -extension ObvCollectionViewLayout { - - func updateCache() { - - // Order mattters - updateCacheFromDeletedItems() - updateCacheFromDeletedSections() - updateCacheFromInsertedSections() - updateCacheFromInsertedItems() - updateCacheForMovedItems() - - deletedIndexPathBeforeUpdate.removeAll() - deletedSectionsBeforeUpdate.removeAll() - insertedSectionsAfterUpdate.removeAll() - insertedIndexPathsAfterUpdate.removeAll() - movedIndexPaths.removeAll() - - } - - - private func updateCacheFromDeletedItems() { - - // Delete cached infos of deleted items in descending order - - let deletedIndexPaths = self.deletedIndexPathBeforeUpdate.sorted { $0 > $1 } - - for indexPath in deletedIndexPaths { - - // Remove the deleted item from the cache - - let deletedItemInfos = cachedItemInfos[indexPath.section].remove(at: indexPath.item) - - // Update the section infos - - do { - let sectionInfos = cachedSectionInfos[indexPath.section] - let origin = sectionInfos.frame.origin - let topSpaceAboveDeletedItem = interitemSpacing - let size = CGSize(width: sectionInfos.frame.size.width, height: sectionInfos.frame.size.height - topSpaceAboveDeletedItem - deletedItemInfos.frameInSection.height) - let frame = CGRect(origin: origin, size: size) - if let largestItemWithValidOrigin = (indexPath.item == 0) ? nil : indexPath.item-1, - let previousLargestItemWithValidOrigin = sectionInfos.largestItemWithValidOrigin { - let newLargestItemWithValidOrigin = min(previousLargestItemWithValidOrigin, largestItemWithValidOrigin) - cachedSectionInfos[indexPath.section] = ObvCollectionViewLayoutSectionInfos(frame: frame, largestItemWithValidOrigin: newLargestItemWithValidOrigin) - } else { - cachedSectionInfos[indexPath.section] = ObvCollectionViewLayoutSectionInfos(frame: frame, largestItemWithValidOrigin: nil) - } - } - - // Update the largest index of the section with valid origin - - if largestSectionWithValidOrigin != nil { - largestSectionWithValidOrigin = min(largestSectionWithValidOrigin!, indexPath.section) - } - - // Update the from index paths of moved items - - for (toIndexPath, fromIndexPath) in movedIndexPaths { - guard fromIndexPath.section == indexPath.section else { continue } - guard fromIndexPath.item > indexPath.item else { continue } - let newFromIndexPath = IndexPath(item: fromIndexPath.item-1, section: fromIndexPath.section) - movedIndexPaths[toIndexPath] = newFromIndexPath - } - - } - - } - - - private func updateCacheFromDeletedSections() { - - let deletedSections = Array(self.deletedSectionsBeforeUpdate.sorted { $0 > $1 }) - for deletedSection in deletedSections { - - // Delete cached infos about the deleted section and update the index of the largest section with a valid origin - - cachedSectionInfos.remove(at: deletedSection) - cachedSupplementaryViewInfos.remove(at: deletedSection) - assert(cachedItemInfos[deletedSection].isEmpty) - cachedItemInfos.remove(at: deletedSection) - - if largestSectionWithValidOrigin != nil { - if deletedSection == 0 { - largestSectionWithValidOrigin = nil - } else { - largestSectionWithValidOrigin = min(largestSectionWithValidOrigin!, deletedSection-1) - } - } - - // Update the from index paths of moved items - - for (toIndexPath, fromIndexPath) in movedIndexPaths { - guard fromIndexPath.section > deletedSection else { continue } - let newFromIndexPath = IndexPath(item: fromIndexPath.item, section: fromIndexPath.section-1) - movedIndexPaths[toIndexPath] = newFromIndexPath - } - - } - - } - - - private func updateCacheFromInsertedSections() { - - // Add cached infos for inserted sections (cells will be added later) - - if let lastInsertedSection = self.insertedSectionsAfterUpdate.max() { - - let firstInsertedSection = cachedItemInfos.count - var previousSectionFrame = (cachedItemInfos.count == 0) ? CGRect.zero : cachedSectionInfos.last!.frame - - for section in firstInsertedSection...lastInsertedSection { - - guard let delegate = delegate else { break } - - // Insert infos for the supplementary view of this section (ask for the appropriate size to the delegate) - - let height: CGFloat - do { - let indexPath = IndexPath(item: 0, section: section) - let layoutAttributes = UICollectionViewLayoutAttributes(forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, with: indexPath) - let size = CGSize(width: sectionWidth, height: defaultHeightForSupplementaryView) - layoutAttributes.frame = CGRect(origin: .zero, size: size) - let preferredLayoutAttributes = delegate.preferredLayoutAttributesFitting(layoutAttributes) - let supplementaryViewFrame = preferredLayoutAttributes.frame - let svInfos = ObvCollectionViewLayoutSupplementaryViewInfos(frameInSection: supplementaryViewFrame) - cachedSupplementaryViewInfos.append(svInfos) - - height = preferredLayoutAttributes.frame.size.height - } - - // Cache infos for this section - - do { - let topSpace = spaceBetweenSections - let origin = CGPoint(x: sectionXOrigin, y: previousSectionFrame.maxY + topSpace) - let size = CGSize(width: sectionWidth, height: height) - let frame = CGRect(origin: origin, size: size) - let sectionInfos = ObvCollectionViewLayoutSectionInfos(frame: frame, largestItemWithValidOrigin: nil) - cachedSectionInfos.append(sectionInfos) - - previousSectionFrame = frame - } - - // Prepare array for cache estimated infos - - cachedItemInfos.append([]) - - } - } - - // Update the from index paths of moved items - - let insertedSections = Array(self.insertedSectionsAfterUpdate.sorted { $0 < $1 }) - for insertedSection in insertedSections { - for (toIndexPath, fromIndexPath) in movedIndexPaths { - guard fromIndexPath.section > insertedSection else { continue } - let newFromIndexPath = IndexPath(item: fromIndexPath.item, section: fromIndexPath.section+1) - movedIndexPaths[toIndexPath] = newFromIndexPath - } - } - } - - - private func updateCacheFromInsertedItems() { - - // Add cached infos for inserted items in ascending order - - let insertedIndexPaths = self.insertedIndexPathsAfterUpdate.sorted { $0 < $1 } - - for indexPath in insertedIndexPaths { - - guard let delegate = delegate else { break } - - // Insert the item into the cache (ask for the appropriate size to the delegate) - - let height: CGFloat - do { - let layoutAttributes = UICollectionViewLayoutAttributes(forCellWith: indexPath) - let size = CGSize(width: sectionWidth, height: defaultHeightForCell) - layoutAttributes.frame = CGRect(origin: .zero, size: size) - let preferredLayoutAttributes = delegate.preferredLayoutAttributesFitting(layoutAttributes) - let itemFrame = preferredLayoutAttributes.frame - let itemInfos = ObvCollectionViewLayoutItemInfos(frameInSection: itemFrame) - cachedItemInfos[indexPath.section].insert(itemInfos, at: indexPath.item) - - height = preferredLayoutAttributes.frame.size.height - } - - // Update the section infos - - do { - let sectionInfos = cachedSectionInfos[indexPath.section] - let origin = sectionInfos.frame.origin - let topSpaceAboveNewItem = interitemSpacing - let size = CGSize(width: sectionInfos.frame.size.width, height: sectionInfos.frame.size.height + topSpaceAboveNewItem + height) - let frame = CGRect(origin: origin, size: size) - if let largestItemWithValidOrigin = (indexPath.item == 0) ? nil : indexPath.item-1, - let previousLargestItemWithValidOrigin = sectionInfos.largestItemWithValidOrigin { - let newLargestItemWithValidOrigin = min(previousLargestItemWithValidOrigin, largestItemWithValidOrigin) - cachedSectionInfos[indexPath.section] = ObvCollectionViewLayoutSectionInfos(frame: frame, largestItemWithValidOrigin: newLargestItemWithValidOrigin) - } else { - cachedSectionInfos[indexPath.section] = ObvCollectionViewLayoutSectionInfos(frame: frame, largestItemWithValidOrigin: nil) - } - } - - // Update the largest index of the section with valid origin - - if largestSectionWithValidOrigin != nil { - largestSectionWithValidOrigin = min(largestSectionWithValidOrigin!, indexPath.section) - } - - // Update the from index paths of moved items - - for (toIndexPath, fromIndexPath) in movedIndexPaths { - guard fromIndexPath.section == indexPath.section else { continue } - guard fromIndexPath.item >= indexPath.item else { continue } - let newFromIndexPath = IndexPath(item: fromIndexPath.item+1, section: fromIndexPath.section) - movedIndexPaths[toIndexPath] = newFromIndexPath - } - - } - - } - - - private func updateCacheForMovedItems() { - - // Step 1: Delete the moved items in descending order and keep a reference to the items to insert - - var itemsToInsert = [IndexPath: CGRect]() - - do { - - let movedIndexPaths = self.movedIndexPaths.sorted { (val1, val2) in val1.value > val2.value } - - for (toIndexPath, fromIndexPath) in movedIndexPaths { - - // Remove the deleted item from the cache - - let deletedItemInfos = cachedItemInfos[fromIndexPath.section].remove(at: fromIndexPath.item) - itemsToInsert[toIndexPath] = deletedItemInfos.frameInSection - - // Update the section infos - - do { - let sectionInfos = cachedSectionInfos[fromIndexPath.section] - let origin = sectionInfos.frame.origin - let topSpaceAboveDeletedItem = interitemSpacing - let size = CGSize(width: sectionInfos.frame.size.width, height: sectionInfos.frame.size.height - topSpaceAboveDeletedItem - deletedItemInfos.frameInSection.height) - let frame = CGRect(origin: origin, size: size) - if let largestItemWithValidOrigin = (fromIndexPath.item == 0) ? nil : fromIndexPath.item-1, - let previousLargestItemWithValidOrigin = sectionInfos.largestItemWithValidOrigin { - let newLargestItemWithValidOrigin = min(previousLargestItemWithValidOrigin, largestItemWithValidOrigin) - cachedSectionInfos[fromIndexPath.section] = ObvCollectionViewLayoutSectionInfos(frame: frame, largestItemWithValidOrigin: newLargestItemWithValidOrigin) - } else { - cachedSectionInfos[fromIndexPath.section] = ObvCollectionViewLayoutSectionInfos(frame: frame, largestItemWithValidOrigin: nil) - } - } - - // Update the largest index of the section with valid origin - - if largestSectionWithValidOrigin != nil { - largestSectionWithValidOrigin = min(largestSectionWithValidOrigin!, fromIndexPath.section) - } - - } - - } - - // Step 2: Insert the moved items in ascending order - - do { - - let itemsToInsert = itemsToInsert.sorted { (val1, val2) in val1.key < val2.key } - - for (toIndexPath, oldFrameInSection) in itemsToInsert { - - // Insert the item into the cache - - let height: CGFloat - do { - let itemInfos = ObvCollectionViewLayoutItemInfos(frameInSection: oldFrameInSection) - cachedItemInfos[toIndexPath.section].insert(itemInfos, at: toIndexPath.item) - - height = oldFrameInSection.size.height - } - - // Update the section infos - - do { - let sectionInfos = cachedSectionInfos[toIndexPath.section] - let origin = sectionInfos.frame.origin - let topSpaceAboveNewItem = interitemSpacing - let size = CGSize(width: sectionInfos.frame.size.width, height: sectionInfos.frame.size.height + topSpaceAboveNewItem + height) - let frame = CGRect(origin: origin, size: size) - if let largestItemWithValidOrigin = (toIndexPath.item == 0) ? nil : toIndexPath.item-1, - let previousLargestItemWithValidOrigin = sectionInfos.largestItemWithValidOrigin { - let newLargestItemWithValidOrigin = min(previousLargestItemWithValidOrigin, largestItemWithValidOrigin) - cachedSectionInfos[toIndexPath.section] = ObvCollectionViewLayoutSectionInfos(frame: frame, largestItemWithValidOrigin: newLargestItemWithValidOrigin) - } else { - cachedSectionInfos[toIndexPath.section] = ObvCollectionViewLayoutSectionInfos(frame: frame, largestItemWithValidOrigin: nil) - } - } - - // Update the largest index of the section with valid origin - - if largestSectionWithValidOrigin != nil { - largestSectionWithValidOrigin = min(largestSectionWithValidOrigin!, toIndexPath.section) - } - - // Update the from index paths of moved items - - for (toIndexPath, fromIndexPath) in movedIndexPaths { - guard fromIndexPath.section == toIndexPath.section else { continue } - guard fromIndexPath.item >= toIndexPath.item else { continue } - let newFromIndexPath = IndexPath(item: fromIndexPath.item+1, section: fromIndexPath.section) - movedIndexPaths[toIndexPath] = newFromIndexPath - } - - } - - } - - - } - -} - -// MARK: - Utils: Searching the cachedAttributes array - -extension ObvCollectionViewLayout { - - /// The returned section always has a valid origin - private func binSearchSectionInfos(_ rect: CGRect, start: Int, end: Int) -> Int? { - guard start <= end else { - return nil - } - - let mid = (start + end) / 2 - adjustOriginOfLayoutSectionInfos(untilSection: mid) - let frame = cachedSectionInfos[mid].frame - - if frame.intersects(rect) { - return mid - } else { - if frame.maxY < rect.minY { - return binSearchSectionInfos(rect, start: (mid + 1), end: end) - } else { - return binSearchSectionInfos(rect, start: start, end: (mid - 1)) - } - } - - } - - - private func getElementPositionWithRespectToContentView(elementCategory: UICollectionView.ElementCategory, indexPath: IndexPath, collectionView: UICollectionView) -> ElementPositionWithRespectToContentView { - - let elementFrame: CGRect - - switch elementCategory { - - case .cell: - - if collectionView.indexPathsForVisibleItems.contains(indexPath) { - return .visible - } - let sectionInfos = cachedSectionInfos[indexPath.section] - let infos = cachedItemInfos[indexPath.section][indexPath.item] - elementFrame = infos.getFrame(using: sectionInfos) - - case .supplementaryView: - - if collectionView.indexPathsForVisibleSupplementaryElements(ofKind: UICollectionView.elementKindSectionHeader).contains(indexPath) { - return .visible - } - let sectionInfos = cachedSectionInfos[indexPath.section] - let infos = cachedSupplementaryViewInfos[indexPath.section] - elementFrame = infos.getFrame(using: sectionInfos) - - case .decorationView: - - fatalError() - - @unknown default: - fatalError() - } - - if elementFrame.midY < collectionView.contentOffset.y + collectionView.bounds.height/2 { - return .above - } else { - return .under - } - - } - - - enum ElementPositionWithRespectToContentView { - case above - case under - case visible - } -} - - -// MARK: - Utils: Adjusting the origin of elements layout - -extension ObvCollectionViewLayout { - - - /// This method adjusts the origin of the cached infos of all the section between the largest one - /// having a valid origin until the one passed as a parameter (included). - /// - /// - Parameter section: The section to adjust. - private func adjustOriginOfLayoutSectionInfos(untilSection section: Int) { - - guard largestSectionWithValidOrigin == nil || section > largestSectionWithValidOrigin! else { return } - - // Adjust the origin of all the sections between the first section having a valid origin and the section passed as a parameter - - var previousSectionFrame = (largestSectionWithValidOrigin == nil) ? CGRect.zero : cachedSectionInfos[largestSectionWithValidOrigin!].frame - - let firstSection = (largestSectionWithValidOrigin == nil) ? 0 : largestSectionWithValidOrigin!+1 - - for sec in firstSection.. sectionInfos.largestItemWithValidOrigin! else { return } - - let firstItemToAdjust: Int - var previousElementFrame: CGRect - if let item = sectionInfos.largestItemWithValidOrigin { - previousElementFrame = cachedItemInfos[indexPath.section][item].frameInSection - firstItemToAdjust = item+1 - } else { - previousElementFrame = cachedSupplementaryViewInfos[indexPath.section].frameInSection - firstItemToAdjust = 0 - } - - for item in firstItemToAdjust...indexPath.item { - - let infos = cachedItemInfos[indexPath.section][item] - let topSpace = interitemSpacing - let origin = CGPoint(x: 0, y: previousElementFrame.maxY + topSpace) - let size = infos.frameInSection.size - let frame = CGRect(origin: origin, size: size) - let updatedInfos = ObvCollectionViewLayoutItemInfos(frameInSection: frame) - cachedItemInfos[indexPath.section][item] = updatedInfos - - previousElementFrame = frame - - } - - cachedSectionInfos[indexPath.section] = ObvCollectionViewLayoutSectionInfos(frame: sectionInfos.frame, largestItemWithValidOrigin: indexPath.item) - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ObvCollectionViewLayoutDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ObvCollectionViewLayoutDelegate.swift deleted file mode 100644 index cb0da508..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/Layout/ObvCollectionViewLayoutDelegate.swift +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - -protocol ObvCollectionViewLayoutDelegate: AnyObject { - func collectionViewDidAppear() -> Bool - func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SingleDiscussionViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SingleDiscussionViewController.swift deleted file mode 100644 index 6e4372f0..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SingleDiscussionViewController.swift +++ /dev/null @@ -1,2034 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import AVFoundation -import CoreData -import MobileCoreServices -import ObvUI -import OlvidUtils -import ObvTypes -import os.log -import QuickLook -import UIKit -import ObvUICoreData -import UI_SystemIcon - - -final class SingleDiscussionViewController: UICollectionViewController, SomeSingleDiscussionViewController, ObvErrorMaker { - - let currentOwnedCryptoId: ObvCryptoId - var discussion: PersistedDiscussion! - /// If `true`, all message statuses and attachment progresses are hidden - var hideProgresses = false - var composeMessageViewDataSource: ComposeMessageDataSource! - var composeMessageViewDocumentPickerDelegate: ComposeMessageViewDocumentPickerDelegate! - weak var weakComposeMessageViewSendMessageDelegate: ComposeMessageViewSendMessageDelegate? - var strongComposeMessageViewSendMessageDelegate: ComposeMessageViewSendMessageDelegate? - var composeMessageViewSendMessageDelegate: ComposeMessageViewSendMessageDelegate! { - return strongComposeMessageViewSendMessageDelegate ?? weakComposeMessageViewSendMessageDelegate - } - weak var uiApplication: UIApplication? - weak var delegate: SingleDiscussionViewControllerDelegate? - - static let errorDomain = "SingleDiscussionViewController" - - var discussionObjectID: TypeSafeManagedObjectID { discussion.typedObjectID } - var discussionPermanentID: ObvManagedObjectPermanentID { discussion.discussionPermanentID } - - private var fetchedResultsController: NSFetchedResultsController! - - private var composeMessageView: ComposeMessageView! - - private var viewDidAppearWasCalled = false - private var scrollToSystemMessageIndicatingNewMesssagesWasCalled = false - private var userIsPullingTheSingleDiscussionViewControllerBack = false - - // The following variables allow to get around ponctual issues related to keyboard appearance - private var counterOfCallsToAdjustCollectionViewContentOffsetToIgnore = 0 - private var counterOfCallsToAdjustCollectionViewContentInsetsToIgnore = 0 - - private let animatorForHidingHeaders = UIViewPropertyAnimator(duration: 0.3, curve: .linear) - - private var filesViewer: FilesViewer? - - private var lastCollectionViewItemShouldBeVisible = true - private let typicalDurationKbdAnimation: TimeInterval = 0.25 - private let animatorForScrollingCollectionView = UIViewPropertyAnimator(duration: typicalDurationKbdAnimation*2.3, dampingRatio: 0.65) - - private var hideHeaderTimer: Timer? = nil - - private let navigationTitleLabel = UILabel() - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: SingleDiscussionViewController.self)) - - private var visibilityTrackerForSensitiveMessages: VisibilityTrackerForSensitiveMessages? - - private var accessoryViewIsShown = false - private var accessoryViewWasRequested = false - - private var showingAccessoryViewIsAppropriate: Bool { - assert(Thread.isMainThread) - // We only show the accessory view if it has been requested - guard accessoryViewWasRequested else { return false } - // We do not show the accessory view for locked discussions - guard discussion.status == .active else { return false } - // We do no not show the accessory view if we have no one to write to in a group discussion - switch try? discussion.kind { - case .oneToOne: - return true - case .groupV1(withContactGroup: let contactGroup): - return contactGroup?.hasAtLeastOneRemoteContactDevice() ?? false - case .groupV2(withGroup: let group): - return group != nil - case .none: - assertionFailure() - return false - } - } - - private var currentKbdHeight: CGFloat = 0.0 - private var observationTokens = [NSObjectProtocol]() - private var objectIDsOfNewMessages = Set() // Allows to properly update the "new message" system message - - private var sectionChanges = [(type: NSFetchedResultsChangeType, sectionIndex: Int)]() - private var itemChanges = [(type: NSFetchedResultsChangeType, indexPath: IndexPath?, newIndexPath: IndexPath?)]() - - private static let typicalDurationKbdAnimation: TimeInterval = 0.25 - private let animatorForCollectionViewContent = UIViewPropertyAnimator(duration: typicalDurationKbdAnimation*2.3, dampingRatio: 0.65) - - private var urlsOfTempFilesToDeleteOnUIDocumentPickerViewControllerDismissal = [URL]() - - private let queueForReadReceiptNotifications = DispatchQueue(label: "Queue for read receipt notifications") - - private var selectedGroupMembers = Set() - - private var cellsShowingCallLogItemRejectedIncomingCallBecauseOfDeniedRecordPermissionNeedToBeReconfigured = false - - private func markAsNotNewTheReceivedMessage(_ messageReceived: PersistedMessageReceived) { - guard messageReceived.status == .new else { return } - ObvMessengerInternalNotification.messagesAreNotNewAnymore(persistedMessageObjectIDs: [messageReceived.typedObjectID.downcast]) - .postOnDispatchQueue() - } - - private func markAsNotNewTheSystemMessage(_ messageSystem: PersistedMessageSystem) { - guard messageSystem.status != .read else { return } - ObvMessengerInternalNotification.messagesAreNotNewAnymore(persistedMessageObjectIDs: [messageSystem.typedObjectID.downcast]) - .postOnDispatchQueue() - } - - private let dateFormaterForHeaders: DateFormatter = { - let df = DateFormatter() - df.locale = Locale.current - df.doesRelativeDateFormatting = false - df.timeStyle = .none - df.setLocalizedDateFormatFromTemplate("EEE d MMMM yyyy") - return df - }() - - private let dateFormaterForHeadersCurrentYear: DateFormatter = { - let df = DateFormatter() - df.locale = Locale.current - df.doesRelativeDateFormatting = false - df.timeStyle = .none - df.setLocalizedDateFormatFromTemplate("EEE d MMMM") - return df - }() - - private let dateFormaterForHeadersCurrentMonth: DateFormatter = { - let df = DateFormatter() - df.locale = Locale.current - df.doesRelativeDateFormatting = false - df.timeStyle = .none - df.setLocalizedDateFormatFromTemplate("EEEEd") - return df - }() - - private let dateFormaterForHeadersTodayOrYesterday: DateFormatter = { - let df = DateFormatter() - df.locale = Locale.current - df.doesRelativeDateFormatting = true - df.timeStyle = .none - df.dateStyle = .short - return df - }() - - private let dateFormaterForHeadersWeekday: DateFormatter = { - let df = DateFormatter() - df.locale = Locale.current - df.doesRelativeDateFormatting = true - df.timeStyle = .none - df.timeStyle = .none - df.setLocalizedDateFormatFromTemplate("EEEE") - return df - }() - - private let dateFormaterForHeadersDay: DateFormatter = { - let df = DateFormatter() - df.locale = Locale.current - df.doesRelativeDateFormatting = true - df.timeStyle = .none - df.timeStyle = .none - df.setLocalizedDateFormatFromTemplate("d") - return df - }() - - let dateFormaterForMessages: DateFormatter = { - let df = DateFormatter() - df.doesRelativeDateFormatting = true - df.dateStyle = .none - df.timeStyle = .short - df.locale = Locale.current - return df - }() - - - override func didReceiveMemoryWarning() { - os_log("didReceiveMemoryWarning (SingleDiscussionViewController)", log: log, type: .fault) - } - - - override var inputAccessoryView: UIView? { - assert(Thread.current == Thread.main) - guard showingAccessoryViewIsAppropriate else { - accessoryViewIsShown = false - return nil - } - accessoryViewIsShown = true - return self.composeMessageView - } - - - override var canBecomeFirstResponder: Bool { - return true - } - - init(ownedCryptoId: ObvCryptoId, collectionViewLayout: UICollectionViewLayout) { - self.currentOwnedCryptoId = ownedCryptoId - super.init(collectionViewLayout: collectionViewLayout) - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - deinit { - observationTokens.forEach { NotificationCenter.default.removeObserver($0) } - } - - /// This should be properly dealocated each time the view will disappear. - private var timerForRefreshingCellCountdowns: Timer? - - func addAttachmentFromAirDropFile(at fileURL: URL) { - guard let composeMessageViewDocumentPickerAdapterWithDraft = self.composeMessageViewDocumentPickerDelegate as? ComposeMessageViewDocumentPickerAdapterWithDraft else { assertionFailure(); return } - composeMessageViewDocumentPickerAdapterWithDraft.addAttachmentFromAirDropFile(at: fileURL) - } -} - - -// MARK: - View controller lifecycle - -extension SingleDiscussionViewController { - - override func viewDidLoad() { - super.viewDidLoad() - - self.visibilityTrackerForSensitiveMessages = VisibilityTrackerForSensitiveMessages(discussionPermanentID: discussionPermanentID) - - self.fetchedResultsController = PersistedMessage.getFetchedResultsControllerForAllMessagesWithinDiscussion(discussionObjectID: discussion.typedObjectID, within: ObvStack.shared.viewContext) - - self.composeMessageView = Bundle.main.loadNibNamed(ComposeMessageView.nibName, owner: nil, options: nil)!.first as? ComposeMessageView - self.composeMessageView.dataSource = self.composeMessageViewDataSource - self.composeMessageView.documentPickerDelegate = self.composeMessageViewDocumentPickerDelegate - self.composeMessageView.sendMessageDelegate = self.composeMessageViewSendMessageDelegate - - configureNavigationBarTitle() - - self.fetchedResultsController.delegate = self - (self.composeMessageViewDocumentPickerDelegate as? ComposeMessageViewDocumentPickerAdapterWithDraft)?.delegate = self - - let layout = ObvCollectionViewLayout() - - collectionView = ObvCollectionView(frame: self.view.bounds, collectionViewLayout: layout) - collectionView.backgroundColor = AppTheme.shared.colorScheme.discussionScreenBackground - collectionView.alwaysBounceVertical = true - collectionView.keyboardDismissMode = .interactive - collectionView.indicatorStyle = .white - collectionView.contentInsetAdjustmentBehavior = .never - collectionView.scrollsToTop = false - collectionView.register(MessageSentCollectionViewCell.self, forCellWithReuseIdentifier: MessageSentCollectionViewCell.identifier) - collectionView.register(MessageReceivedCollectionViewCell.self, forCellWithReuseIdentifier: MessageReceivedCollectionViewCell.identifier) - collectionView.register(MessageSystemCollectionViewCell.self, forCellWithReuseIdentifier: MessageSystemCollectionViewCell.identifier) - collectionView.register(DateCollectionReusableView.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: DateCollectionReusableView.identifier) - - layout.delegate = self - collectionView.dataSource = self - - do { - try self.fetchedResultsController.performFetch() - } catch let error { - fatalError("Could not perform fetch: \(error.localizedDescription)") - } - - registerKeyboardNotifications() - configureGestureRecognizers() - observeDeletedFyleMessageJoinNotifications() - observeCertainMessageDeletionToUpdateNumberOfNewMessagesSystemMessage() - observePersistedDiscussionHasNewTitleNotifications() - observePersistedContactHasNewCustomDisplayNameNotifications() - observePersistedContactGroupHasUpdatedContactIdentitiesNotifications() - observeCallLogItemWasUpdatedNotifications() - observeDiscussionLocalConfigurationHasBeenUpdatedNotifications() - showAccessoryView() - } - - - private func configureNavigationBarTitle() { - navigationTitleLabel.font = UIFont.preferredFont(forTextStyle: UIFont.TextStyle.headline) - navigationTitleLabel.textAlignment = .center - navigationTitleLabel.text = discussion.title - navigationTitleLabel.isUserInteractionEnabled = true - let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(titleTapped)) - navigationTitleLabel.addGestureRecognizer(tapGestureRecognizer) - navigationItem.titleView = navigationTitleLabel - navigationItem.largeTitleDisplayMode = .never - - if discussion.status == .active { - var items: [UIBarButtonItem] = [] - let symbolConfiguration = UIImage.SymbolConfiguration(pointSize: 18.0, weight: .bold) - let ellipsisImage = UIImage(systemIcon: .ellipsisCircle, withConfiguration: symbolConfiguration) - items += [UIBarButtonItem(image: ellipsisImage, style: .plain, target: self, action: #selector(settingsButtonTapped))] - - if discussion.isCallAvailable { - let phoneImage = UIImage(systemIcon: .phoneFill, withConfiguration: symbolConfiguration) - items += [UIBarButtonItem(image: phoneImage, style: .plain, target: self, action: #selector(callButtonTapped))] - } - if #available(iOS 14.0, *), let muteNotificationEndDate = discussion.localConfiguration.currentMuteNotificationsEndDate { - let unmuteDateFormatted = PersistedDiscussionLocalConfiguration.formatDateForMutedNotification(muteNotificationEndDate) - let muteIcon = UIImage(systemIcon: ObvMessengerConstants.muteIcon, withConfiguration: symbolConfiguration) - let unmuteButton = UIBarButtonItem( - image: muteIcon, - style: .plain, - title: Strings.mutedNotificationsConfirmation(unmuteDateFormatted), - actions: [UIAction(title: - NSLocalizedString("UNMUTE_NOTIFICATIONS", comment: "") - ) { _ in - ObvMessengerInternalNotification.userWantsToUpdateDiscussionLocalConfiguration(value: .muteNotificationsEndDate(nil), localConfigurationObjectID: self.discussion.localConfiguration.typedObjectID).postOnDispatchQueue() - }]) - items += [unmuteButton] - } - navigationItem.rightBarButtonItems = items - } - } - - - @objc func settingsButtonTapped() { - composeMessageView.textView.resignFirstResponder() - guard let vc = DiscussionSettingsHostingViewController(discussionSharedConfiguration: self.discussion.sharedConfiguration, discussionLocalConfiguration: self.discussion.localConfiguration) else { - assertionFailure() - return - } - present(vc, animated: true) - } - - @objc func callButtonTapped() { - switch try? discussion.kind { - case .oneToOne(withContactIdentity: let contactIdentity): - guard let contactID = contactIdentity?.typedObjectID else { return } - ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(contactIDs: [contactID], groupId: nil) - .postOnDispatchQueue() - case .groupV1(withContactGroup: let contactGroup): - if let contactGroup = contactGroup { - let objectID = contactGroup.typedObjectID - let contactIdentities = contactGroup.contactIdentities - ObvMessengerInternalNotification.userWantsToSelectAndCallContacts(contactIDs: contactIdentities.map({ $0.typedObjectID }), groupId: .groupV1(objectID)) - .postOnDispatchQueue() - } - case .groupV2(withGroup: let group): - guard let group = group else { return } - let objectID = group.typedObjectID - let contactIDs = group.contactsAmongNonPendingOtherMembers.filter({ $0.isActive }).map({ $0.typedObjectID }) - ObvMessengerInternalNotification.userWantsToSelectAndCallContacts(contactIDs: contactIDs, groupId: .groupV2(objectID)) - .postOnDispatchQueue() - case .none: - assertionFailure() - } - } - - @objc func titleTapped() { - self.delegate?.userTappedTitleOfDiscussion(self.discussion) - } - - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - - insertSystemMessageIndicatingNewMesssages() - DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(300)) { [weak self] in - self?.scrollToSystemMessageIndicatingNewMesssages() - } - - // If there is a system message indicating the number of new messages, we need to keep track of those messages in order to make it possible to update this system message. - if let numberOfNewMessagesSystemMessage = try? PersistedMessageSystem.getNumberOfNewMessagesSystemMessage(in: discussion) { - do { - objectIDsOfNewMessages.removeAll() - if let newReceivedMessages = try? PersistedMessageReceived.getAllNew(in: discussion) { - objectIDsOfNewMessages.formUnion(Set(newReceivedMessages.map({ $0.objectID }))) - } - if let newSystemMessages = try? PersistedMessageSystem.getAllNewRelevantSystemMessages(in: discussion) { - objectIDsOfNewMessages.formUnion(Set(newSystemMessages.map({ $0.objectID }))) - } - } - assert(numberOfNewMessagesSystemMessage.numberOfUnreadReceivedMessages == objectIDsOfNewMessages.count) - } - - if timerForRefreshingCellCountdowns == nil { - timerForRefreshingCellCountdowns = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(refreshCellCountdowns), userInfo: nil, repeats: true) - } - - } - - - private func insertSystemMessageIndicatingNewMesssages() { - assert(Thread.isMainThread) - assert(discussion.managedObjectContext == ObvStack.shared.viewContext) - os_log("Inserting system message indicating new messages", log: log, type: .info) - do { - try PersistedMessageSystem.removeAnyNewMessagesSystemMessages(withinDiscussion: discussion) - _ = try PersistedMessageSystem.insertNumberOfNewMessagesSystemMessage(within: discussion) - } catch let error { - os_log("Could not insert number of new message within the discussion: %{public}@", log: log, type: .error, error.localizedDescription) - } - } - - - override func viewWillLayoutSubviews() { - super.viewWillLayoutSubviews() - } - - override func viewSafeAreaInsetsDidChange() { - super.viewSafeAreaInsetsDidChange() - - /* Note that this called is required because - * func viewSafeAreaInsetsDidChange() - * is called before - * func viewDidAppear(_ animated: Bool) - * which is not the case of - * func viewDidLayoutSubviews(). - */ - resetCollectionViewLayoutIfRequired() - - // If the accessory is not shown (e.g., for locked discussions), we adjust the insets of the collection view by hand - if composeMessageView.window == nil { - adjustCollectionViewContentInset(nextKbdAndComposeViewHeight: 0) - } - - } - - - override func viewDidLayoutSubviews() { - super.viewDidLayoutSubviews() - - resetCollectionViewLayoutIfRequired() - if !viewDidAppearWasCalled { - hideTopHeaderIfRequired(animate: false) - } - - self.composeMessageView.setWidth(to: self.view.bounds.width) - - // If the discussion is locked, or if the group is empty, the keyboard won't show. - // In that case, we manually adjust the inset of the collection view. - if discussion.status != .active || discussionHasNoRemoteContactDevice { - adjustCollectionViewContentInset(nextKbdAndComposeViewHeight: 0) - DispatchQueue.main.async { [weak self] in - self?.performInitialScrollToBottomIfRequired() - } - } - - - - } - - - private func resetCollectionViewLayoutIfRequired() { - // In case the width of the safe area of the collection view is different from the one that the layout used to size all the cells, we invalidate the layout to force re-layout. - let layout = collectionView.collectionViewLayout as! ObvCollectionViewLayout - if layout.knownCollectionViewSafeAreaWidth != collectionView.bounds.inset(by: collectionView.safeAreaInsets).width { - collectionView.collectionViewLayout.invalidateLayout() - (collectionView.collectionViewLayout as? ObvCollectionViewLayout)?.reset() - collectionView.layoutIfNeeded() - } - } - - - override func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) - performInitialScrollToBottomIfRequired() // To be called before setting viewDidAppearWasCalled to true. This call is required on iPad. - viewDidAppearWasCalled = true - - scrollToSystemMessageIndicatingNewMesssages() - - insertSystemMessageIfCurrentDiscussionIsEmpty() - - if scrollToSystemMessageIndicatingNewMesssagesWasCalled { - // This call is necessary when the user navigated to another discussion from this one, i.e., this discussion is part of the navigation but is not the last one, i.e., not visible on screen. - // Then, the user comes back to this discussion. We want to mark the visible messages as "read" at that moment. - markAllVisibleMessageReceivedAsNotNew() - markAllVisibleMessageSystemAsNotNew() - } - - self.becomeFirstResponder() - - showAccessoryView() - } - - - private func performInitialScrollToBottomIfRequired() { - guard !viewDidAppearWasCalled else { return } - let x = collectionView.contentOffset.x - // This does not always work... there is still a glitch on iPhone 11 Pro Max in landscape. - let y: CGFloat - if composeMessageView.window == nil { - // The keyboard is not on screen so we do not take its height into account - y = collectionView.contentSize.height - collectionView.bounds.height + collectionView.safeAreaInsets.bottom - } else { - // The keyboard is on screen - y = collectionView.contentSize.height - collectionView.bounds.height + composeMessageView.frame.height - } - guard y + collectionView.safeAreaInsets.top > 0 else { return } - let newOffset = CGPoint(x: x, y: y) - guard collectionView.contentOffset.distance(to: newOffset) > 0.01 else { return } // No need to scroll in that case - UIView.performWithoutAnimation { - collectionView.setContentOffset(newOffset, animated: false) - } - } - - - private func insertSystemMessageIfCurrentDiscussionIsEmpty() { - let discussionObjectID = discussion.objectID - let log = self.log - ObvStack.shared.performBackgroundTask { (context) in - do { - try PersistedDiscussion.insertSystemMessagesIfDiscussionIsEmpty(discussionObjectID: discussionObjectID, markAsRead: true, within: context) - try context.save(logOnFailure: log) - } catch { - os_log("Could not insert DiscussionIsEndToEndEncryptedSystemMessage within discussion", log: log, type: .error) - } - } - } - - - private func scrollToSystemMessageIndicatingNewMesssages() { - assert(Thread.isMainThread) - guard !scrollToSystemMessageIndicatingNewMesssagesWasCalled else { return } - scrollToSystemMessageIndicatingNewMesssagesWasCalled = true - if let messageObjectID = try? PersistedMessageSystem.getNewMessageSystemMessageObjectID(withinDiscussion: self.discussion), - let message = try? fetchedResultsController.managedObjectContext.existingObject(with: messageObjectID) as? PersistedMessageSystem, - let indexPath = fetchedResultsController.indexPath(forObject: message), let collectionView = self.collectionView as? ObvCollectionView { - // Only scroll if the cell is not already visible on screen (this techniques works better than calling indexPathsForVisibleItems) - guard let cell = collectionView.cellForItem(at: indexPath) else { - // The cell might be to high... - collectionView.adjustedScrollToItem(at: indexPath, at: .top, animated: true) { [weak self] in - self?.markAllVisibleMessageReceivedAsNotNew() - self?.markAllVisibleMessageSystemAsNotNew() - } - return - } - let cellRect = cell.contentView.convert(cell.contentView.bounds, to: collectionView) - guard !collectionView.bounds.inset(by: collectionView.safeAreaInsets).contains(cellRect) else { - return - } - // The system cell is not visible --> scroll - collectionView.adjustedScrollToItem(at: indexPath, at: .top, animated: true) { [weak self] in - self?.markAllVisibleMessageReceivedAsNotNew() - self?.markAllVisibleMessageSystemAsNotNew() - } - } - } - - func scrollTo(message: PersistedMessage) { - if let message = try? fetchedResultsController.managedObjectContext.existingObject(with: message.objectID) as? PersistedMessage, - let indexPath = fetchedResultsController.indexPath(forObject: message), - let collectionView = self.collectionView as? ObvCollectionView { - guard let cell = collectionView.cellForItem(at: indexPath) else { - // The cell might be to high... - collectionView.adjustedScrollToItem(at: indexPath, at: .top, animated: true) - return - } - let cellRect = cell.contentView.convert(cell.contentView.bounds, to: collectionView) - guard !collectionView.bounds.inset(by: collectionView.safeAreaInsets).contains(cellRect) else { - return - } - collectionView.adjustedScrollToItem(at: indexPath, at: .top, animated: true) - } - } - - private func markAllVisibleMessageReceivedAsNotNew() { - do { - let visibleMessageReceivedCells = collectionView.visibleCells.compactMap { $0 as? MessageReceivedCollectionViewCell} - for cell in visibleMessageReceivedCells { - guard let indexPath = collectionView.indexPath(for: cell) else { continue } - guard let messageReceived = fetchedResultsController.object(at: indexPath) as? PersistedMessageReceived else { continue } - guard messageReceived.status == .new else { continue } - markAsNotNewTheReceivedMessage(messageReceived) - } - } - } - - - private func markAllVisibleMessageSystemAsNotNew() { - let visibleMessageReceivedCells = collectionView.visibleCells.compactMap { $0 as? MessageReceivedCollectionViewCell} - for cell in visibleMessageReceivedCells { - guard let indexPath = collectionView.indexPath(for: cell) else { continue } - guard let messageSystem = fetchedResultsController.object(at: indexPath) as? PersistedMessageSystem else { continue } - guard messageSystem.status == .new else { continue } - markAsNotNewTheSystemMessage(messageSystem) - } - } - - private func observePersistedContactGroupHasUpdatedContactIdentitiesNotifications() { - let token = ObvMessengerCoreDataNotification.observePersistedContactGroupHasUpdatedContactIdentities(queue: OperationQueue.main) { [weak self] (_, _, _) in - self?.reloadInputViews() - } - observationTokens.append(token) - } - - private func observeCallLogItemWasUpdatedNotifications() { - let token = VoIPNotification.observeCallHasBeenUpdated(queue: OperationQueue.main) { [weak self] _, _ in - self?.collectionView.reloadData() - } - observationTokens.append(token) - } - - override func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - - timerForRefreshingCellCountdowns?.invalidate() - timerForRefreshingCellCountdowns = nil - - if self.filesViewer == nil { - if let discussion = self.discussion { - try? PersistedMessageSystem.removeAnyNewMessagesSystemMessages(withinDiscussion: discussion) - } - } - } - - - private func dismissAccessoryView() { - assert(Thread.current == Thread.main) - accessoryViewWasRequested = false - composeMessageView.textView.resignFirstResponder() - self.becomeFirstResponder() - reloadInputViews() - } - - - private func showAccessoryView() { - assert(Thread.current == Thread.main) - guard !accessoryViewIsShown else { return } - accessoryViewWasRequested = true - guard showingAccessoryViewIsAppropriate else { return } - becomeFirstResponder() - reloadInputViews() - } - - @objc(refreshCellCountdowns) - private func refreshCellCountdowns() { - collectionView?.visibleCells.forEach { - ($0 as? MessageCollectionViewCell)?.refreshCellCountdown() - } - } - -} - - -// MARK: - UICollectionViewDataSource - -extension SingleDiscussionViewController { - - override func numberOfSections(in collectionView: UICollectionView) -> Int { - return fetchedResultsController.sections?.count ?? 0 - } - - - override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - guard let sections = fetchedResultsController.sections else { - fatalError("No sections in fetchedResultsController") - } - let sectionInfo = sections[section] - return sectionInfo.numberOfObjects - } - - - override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { - - let message = fetchedResultsController.object(at: indexPath) - - if let message = message as? PersistedMessageReceived { - - let cell = collectionView.dequeueReusableCell(withReuseIdentifier: MessageReceivedCollectionViewCell.identifier, for: indexPath) as! MessageReceivedCollectionViewCell - cell.prepare(with: message, withDateFormatter: dateFormaterForMessages) - cell.delegate = self - return cell - - } else if let message = message as? PersistedMessageSent { - - let cell = collectionView.dequeueReusableCell(withReuseIdentifier: MessageSentCollectionViewCell.identifier, for: indexPath) as! MessageSentCollectionViewCell - cell.prepare(with: message, withDateFormatter: dateFormaterForMessages, hideProgresses: self.hideProgresses) - cell.delegate = self - return cell - - } else if let message = message as? PersistedMessageSystem { - - let cell = collectionView.dequeueReusableCell(withReuseIdentifier: MessageSystemCollectionViewCell.identifier, for: indexPath) as! MessageSystemCollectionViewCell - cell.prepare(with: message) - return cell - - } else { - - return UICollectionViewCell() - - } - - } - - - override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView { - guard kind == UICollectionView.elementKindSectionHeader else { fatalError() } - let header = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: DateCollectionReusableView.identifier, for: indexPath) as! DateCollectionReusableView - let sectionTitle = getSectionTitle(at: indexPath) - header.label.text = sectionTitle - return header - } - - - private func getSectionTitle(at indexPath: IndexPath) -> String { - guard let sections = fetchedResultsController.sections else { - fatalError("No sections in fetchedResultsController") - } - let sectionInfo = sections[indexPath.section] - let sectionIdentifier = sectionInfo.name - guard let components = PersistedMessage.getDateComponents(fromSectionIdentifier: sectionIdentifier), let date = components.date else { - assertionFailure() - return "" - } - let calendar = Calendar.current - let sectionTitle: String - if calendar.isDateInToday(date) || calendar.isDateInYesterday(date) { - sectionTitle = dateFormaterForHeadersTodayOrYesterday.string(from: date).capitalized - } else if let year = components.year, year == calendar.component(.year, from: Date()) { - if let month = components.month, month == calendar.component(.month, from: Date()) { - sectionTitle = [dateFormaterForHeadersWeekday.string(from: date).capitalized, dateFormaterForHeadersDay.string(from: date)].joined(separator: " ") - } else { - sectionTitle = dateFormaterForHeadersCurrentYear.string(from: date).capitalized - } - } else { - sectionTitle = dateFormaterForHeaders.string(from: date).capitalized - } - return sectionTitle - } -} - - -// MARK: - ObvCollectionViewLayoutDelegate - -extension SingleDiscussionViewController: ObvCollectionViewLayoutDelegate { - - func collectionViewDidAppear() -> Bool { - return viewDidAppearWasCalled - } - - - func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes { - - switch layoutAttributes.representedElementCategory { - case .cell: - let message = fetchedResultsController.object(at: layoutAttributes.indexPath) - if let receivedMessage = message as? PersistedMessageReceived { - let cell = MessageReceivedCollectionViewCell() - cell.prepare(with: receivedMessage, withDateFormatter: dateFormaterForMessages) - return cell.preferredLayoutAttributesFitting(layoutAttributes) - } else if let sentMessage = message as? PersistedMessageSent { - let cell = MessageSentCollectionViewCell() - cell.prepare(with: sentMessage, withDateFormatter: dateFormaterForMessages, hideProgresses: self.hideProgresses) - return cell.preferredLayoutAttributesFitting(layoutAttributes) - } else if let systemMessage = message as? PersistedMessageSystem { - let cell = MessageSystemCollectionViewCell() - cell.prepare(with: systemMessage) - return cell.preferredLayoutAttributesFitting(layoutAttributes) - } else { - assertionFailure() - return layoutAttributes - } - case .supplementaryView: - guard layoutAttributes.representedElementKind == UICollectionView.elementKindSectionHeader else { return layoutAttributes } - let header = DateCollectionReusableView() - let sectionTitle = getSectionTitle(at: layoutAttributes.indexPath) - header.label.text = sectionTitle - return header.preferredLayoutAttributesFitting(layoutAttributes) - case .decorationView: - assertionFailure() - return layoutAttributes - @unknown default: - assertionFailure() - return layoutAttributes - } - - } - -} - - -// MARK: - UIScrollViewDelegate - -extension SingleDiscussionViewController { - - override func scrollViewDidScroll(_ scrollView: UIScrollView) { - - guard let collectionView = self.collectionView as? ObvCollectionView else { - assertionFailure() - return - } - - let isFingerScrolling = scrollView.isTracking || scrollView.isDragging || scrollView.isDecelerating - - if isFingerScrolling { - let visibleHeaders = collectionView.visibleSupplementaryViews(ofKind: UICollectionView.elementKindSectionHeader) - for header in visibleHeaders { - (header as? DateCollectionReusableView)?.alphaIsLocked = false - } - - lastCollectionViewItemShouldBeVisible = collectionView.lastIndexPathIsVisible - } - - if scrollView.isDragging { - showTopHeader() - } - - hideTopHeaderInTheFuture() - - } - - private func showTopHeader() { - // Show all headers when scrolling - let headersToShow = collectionView.visibleSupplementaryViews(ofKind: UICollectionView.elementKindSectionHeader).filter { $0.isHidden == true } - for header in headersToShow { - header.alpha = 0.0 - } - animatorForHidingHeaders.addAnimations { - for header in headersToShow { - header.isHidden = false - header.alpha = 1.0 - } - } - animatorForHidingHeaders.startAnimation() - - } - - private func hideTopHeaderInTheFuture() { - hideHeaderTimer?.invalidate() - hideHeaderTimer = Timer.scheduledTimer(withTimeInterval: 0.3, repeats: false, block: { [weak self] (timer) in - guard timer.isValid else { return } - self?.hideTopHeaderIfRequired(animate: true) - }) - } - - - private func hideTopHeaderIfRequired(animate: Bool) { - guard collectionView.bounds.inset(by: collectionView.adjustedContentInset).height < collectionView.contentSize.height else { return } - guard let layout = collectionView.collectionViewLayout as? ObvCollectionViewLayout else { return } - guard let currentStickyHeader = layout.indexPathOfPinnedHeader else { return } - guard let header = collectionView.supplementaryView(forElementKind: UICollectionView.elementKindSectionHeader, at: currentStickyHeader) else { return } - guard !header.isHidden else { return } - if let firstCell = collectionView.cellForItem(at: IndexPath(item: 0, section: currentStickyHeader.section)) { - guard firstCell.frame.intersects(header.frame) || firstCell.frame.maxY <= header.frame.minY else { return } - } - - if animate { - animatorForHidingHeaders.addAnimations { - header.alpha = 0.0 - } - animatorForHidingHeaders.addCompletion { (position) in - switch position { - case .end: - header.isHidden = header.alpha.isZero - default: - header.isHidden = false - } - } - animatorForHidingHeaders.startAnimation() - } else { - header.alpha = 0.0 - header.isHidden = true - } - - } - -} - - -// MARK: - UICollectionViewDelegate - -extension SingleDiscussionViewController { - - override func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) { - - // Check that the discussion is on screen, otherwise we do not mark the messages as "not new" - guard isViewLoaded && view.window != nil else { return } - - // If the scene is not foreground active, we do not mark visible messages as not new. - // When going back to the `active` state, a call to `markAsNotNewTheReceivedMessageInCell()` will be made for all visible cells. - // This will allow to mark visible messages as not new. - guard windowSceneActivationState == .foregroundActive else { return } - - markAsNotNewTheReceivedMessageInCell(cell) - - visibilityTrackerForSensitiveMessages?.refreshObjectIDsOfVisibleMessagesWithLimitedVisibility(in: collectionView) - - } - - - override func collectionView(_ collectionView: UICollectionView, didEndDisplaying cell: UICollectionViewCell, forItemAt indexPath: IndexPath) { - visibilityTrackerForSensitiveMessages?.refreshObjectIDsOfVisibleMessagesWithLimitedVisibility(in: collectionView) - } - - /// We observe app states changes to mark as "not new" all the messages that are visible when the app enters the active state. - private func observeSceneStateChanges() { - let sceneDidActivateNotification = UIScene.didActivateNotification - observationTokens.append(contentsOf: [ - NotificationCenter.default.addObserver(forName: sceneDidActivateNotification, object: nil, queue: .main) { [weak self] _ in - // When the scene activates, we want to mark as not new the messages that were received while in background and that are now visible on screen. - guard let _self = self else { return } - _self.insertSystemMessageIndicatingNewMesssages() - _self.scrollToSystemMessageIndicatingNewMesssages() - for cell in _self.collectionView.visibleCells { - _self.markAsNotNewTheReceivedMessageInCell(cell) - } - if _self.cellsShowingCallLogItemRejectedIncomingCallBecauseOfDeniedRecordPermissionNeedToBeReconfigured { - _self.fetchedResultsController.managedObjectContext.refreshAllObjects() - let visibleIps = _self.collectionView.indexPathsForVisibleItems.filter { _self.collectionView.cellForItem(at: $0) is MessageSystemCollectionViewCell } - _self.collectionView.reloadItems(at: visibleIps) - self?.cellsShowingCallLogItemRejectedIncomingCallBecauseOfDeniedRecordPermissionNeedToBeReconfigured = false - } - }, - ]) - - } - - - @MainActor - private func markAsNotNewTheReceivedMessageInCell(_ cell: UICollectionViewCell) { - if let msgReceivedCell = cell as? MessageReceivedCollectionViewCell, - let messageReceived = msgReceivedCell.message as? PersistedMessageReceived { - guard messageReceived.status == .new else { return } - markAsNotNewTheReceivedMessage(messageReceived) - } - if let msgSystemCell = cell as? MessageSystemCollectionViewCell, - let messageSystem = msgSystemCell.messageSystem { - guard messageSystem.status == .new else { return } - markAsNotNewTheSystemMessage(messageSystem) - } - } - - - override func collectionView(_ collectionView: UICollectionView, willPerformPreviewActionForMenuWith configuration: UIContextMenuConfiguration, animator: UIContextMenuInteractionCommitAnimating) { - // This describes what should be done when the user taps *in* the cell. For now, we simply dismiss the preview. - animator.preferredCommitStyle = .dismiss - } - - - override func collectionView(_ collectionView: UICollectionView, contextMenuConfigurationForItemAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? { - - guard let cell = collectionView.cellForItem(at: indexPath) as? CellWithMessage else { return nil } - - if currentKbdHeight > composeMessageView.frame.height { - // When the keyboard is up, we use the usual technique in order to avoid animation glitches. - counterOfCallsToAdjustCollectionViewContentInsetsToIgnore = 3 - counterOfCallsToAdjustCollectionViewContentOffsetToIgnore = 3 - } - - let actionProvider = makeActionProvider(for: cell) - - let menuConfiguration = UIContextMenuConfiguration(indexPath: indexPath, - previewProvider: nil, - actionProvider: actionProvider) - - return menuConfiguration - } - - - - override func collectionView(_ collectionView: UICollectionView, previewForHighlightingContextMenuWithConfiguration configuration: UIContextMenuConfiguration) -> UITargetedPreview? { - return getUITargetedPreviewInCollectionView(collectionView, previewForContextMenuWithConfiguration: configuration) - } - - - - override func collectionView(_ collectionView: UICollectionView, previewForDismissingContextMenuWithConfiguration configuration: UIContextMenuConfiguration) -> UITargetedPreview? { - return getUITargetedPreviewInCollectionView(collectionView, previewForContextMenuWithConfiguration: configuration) - } - - - - private func getUITargetedPreviewInCollectionView(_ collectionView: UICollectionView, previewForContextMenuWithConfiguration configuration: UIContextMenuConfiguration) -> UITargetedPreview? { - guard let indexPath = configuration.indexPath else { return nil } - guard let cell = collectionView.cellForItem(at: indexPath) as? CellWithMessage else { return nil } - var targetedPreview = UITargetedPreview(view: cell.viewForTargetedPreview) - // A bug was introduced in iOS 13.2. It seems that the framework is not able to behave properly if the UIPreviewTarget of the `targetedPreview` is different from the cell itself. By default, using the above constructor, the target is set to be the main stack view of the cell. In the following block, we re-target the `targetedPreview` so as to make the cell the UIPreviewTarget. This requires to compute the center of the cell.roundedRectView in the coordinate system of the cell. - do { - let centerOfRoundedRectView = CGPoint(x: cell.viewForTargetedPreview.bounds.width / 2, y: cell.viewForTargetedPreview.bounds.height / 2) - let centerOfRoundedRectViewInCellCoordinateSpace = cell.viewForTargetedPreview.convert(centerOfRoundedRectView, to: cell) - let previewTarget = UIPreviewTarget(container: cell, center: centerOfRoundedRectViewInCellCoordinateSpace) - targetedPreview = targetedPreview.retargetedPreview(with: previewTarget) - } - return targetedPreview - } - - - - private func makeActionProvider(for cell: CellWithMessage) -> (([UIMenuElement]) -> UIMenu?) { - return { (suggestedActions) in - - var children = [UIMenuElement]() - - guard let persistedMessageObjectID = cell.persistedMessageObjectID else { assertionFailure(); return nil } - guard let message = try? PersistedMessage.get(with: persistedMessageObjectID, within: ObvStack.shared.viewContext) else { assertionFailure(); return nil } - - // Message infos action - if message.infoActionCanBeMadeAvailable { - let action = UIAction(title: "Info") { [weak self] (_) in - // The following lines is useful when the keyboard is up at the time the user performs a long press on a sent message, then chooses infos. - // In that case, the counter is equal to 2 when arriving here, which is inappropriate. So we set it back to one. - if let vc = cell.infoViewController { - self?.counterOfCallsToAdjustCollectionViewContentInsetsToIgnore = min(1, self?.counterOfCallsToAdjustCollectionViewContentInsetsToIgnore ?? 0) - let nav = UINavigationController(rootViewController: vc) - nav.presentationController?.delegate = self - if #available(iOS 15, *) { - let appearance = UINavigationBarAppearance() - appearance.configureWithOpaqueBackground() - nav.navigationBar.standardAppearance = appearance - nav.navigationBar.scrollEdgeAppearance = appearance - } - self?.navigationController?.present(nav, animated: true) - } - } - action.image = UIImage(systemName: "info.circle") - children.append(action) - } - - // Copy Text action - if message.copyActionCanBeMadeAvailable, let bodyText = cell.textToCopy, !bodyText.isEmpty { - let action = UIAction(title: CommonString.Title.copyText) { (_) in - UIPasteboard.general.string = bodyText - } - action.image = UIImage(systemName: "doc.on.doc") - children.append(action) - } - - if message.shareActionCanBeMadeAvailable { - // Share all photos at once - if let imageAttachments = cell.imageAttachments, imageAttachments.count > 0 { - let action = UIAction(title: Strings.sharePhotos(imageAttachments.count)) { (_) in - let completionHandlerForRequestAllHardLinksToFyles = { [weak self] (hardlinks: [HardLinkToFyle?]) in - guard let _self = self else { return } - let activityItemProviders = hardlinks.compactMap({ $0?.activityItemProvider }) - guard activityItemProviders.count == hardlinks.count else { - os_log("Could not get all activity item providers from the hard links", log: _self.log, type: .fault) - return - } - let uiActivityVC = UIActivityViewController(activityItems: activityItemProviders, applicationActivities: nil) - DispatchQueue.main.async { [weak self] in - uiActivityVC.popoverPresentationController?.sourceView = cell - self?.present(uiActivityVC, animated: true) - } - } - let fyleElements: [FyleElement] = imageAttachments.compactMap { - $0.fyleElement - } - HardLinksToFylesNotifications.requestAllHardLinksToFyles(fyleElements: fyleElements, completionHandler: completionHandlerForRequestAllHardLinksToFyles).postOnDispatchQueue() - } - action.image = UIImage(systemName: "square.and.arrow.up") - children.append(action) - } - - // Share all attachments at once - if let fyleMessagesJoinWithStatus = cell.fyleMessagesJoinWithStatus, !fyleMessagesJoinWithStatus.isEmpty, cell.imageAttachments?.count != fyleMessagesJoinWithStatus.count { - let action = UIAction(title: Strings.shareAttachments(fyleMessagesJoinWithStatus.count)) { (_) in - let completionHandlerForRequestAllHardLinksToFyles = { [weak self] (hardlinks: [HardLinkToFyle?]) in - guard let _self = self else { return } - let activityItemProviders = hardlinks.compactMap({ $0?.activityItemProvider }) - guard activityItemProviders.count == hardlinks.count else { - os_log("Could not get all activity item providers from the hard links", log: _self.log, type: .fault) - return - } - let uiActivityVC = UIActivityViewController(activityItems: activityItemProviders, applicationActivities: nil) - DispatchQueue.main.async { [weak self] in - uiActivityVC.popoverPresentationController?.sourceView = cell - self?.present(uiActivityVC, animated: true) - } - } - let fyleElements: [FyleElement] = fyleMessagesJoinWithStatus.compactMap { - $0.fyleElement - } - HardLinksToFylesNotifications.requestAllHardLinksToFyles(fyleElements: fyleElements, completionHandler: completionHandlerForRequestAllHardLinksToFyles).postOnDispatchQueue() - } - action.image = UIImage(systemName: "square.and.arrow.up") - children.append(action) - } - } - - // Reply to message action - if message.replyToActionCanBeMadeAvailable { - let action = UIAction(title: CommonString.Word.Reply) { [weak self] (_) in - guard let discussion = self?.discussion else { return } - guard let log = self?.log else { return } - ObvStack.shared.performBackgroundTask { context in - do { - guard let writableDraft = try PersistedDraft.getPersistedDraft(of: discussion, within: context) else { throw Self.makeError(message: "Could not find PersistedDraft") } - guard let writableMessage = try PersistedMessage.get(with: persistedMessageObjectID, within: context) else { throw Self.makeError(message: "Could not find PersistedMessage") } - writableDraft.setReplyTo(to: writableMessage) - try context.save(logOnFailure: log) - } catch { - os_log("Could not attach message as a replyTo to the draft", log: log, type: .error) - return - } - os_log("We added a replyTo to the draft", log: log, type: .debug) - DispatchQueue.main.async { - self?.composeMessageView.loadReplyTo() - } - } - } - action.image = UIImage(systemName: "arrowshape.turn.up.left.2") - children.append(action) - } - - // Delete message action - if message.deleteMessageActionCanBeMadeAvailable { - let action = UIAction(title: CommonString.Word.Delete) { [weak self] (_) in - // Do not show any confirmation if the user deletes a wiped message. - let confirmedDeletionType: DeletionType? = message.isWiped ? .local : nil - self?.deletePersistedMessage(objectId: persistedMessageObjectID.objectID, confirmedDeletionType: confirmedDeletionType, withinCell: cell) - self?.counterOfCallsToAdjustCollectionViewContentInsetsToIgnore = 1 - } - action.image = UIImage(systemName: "trash") - action.attributes = [.destructive] - children.append(action) - } - - // Edit message action - if message.editBodyActionCanBeMadeAvailable { - let action = UIAction(title: CommonString.Word.Edit) { [weak self] (_) in - let currentTextBody = message.textBody - self?.dismissAccessoryView() - let vc = BodyEditViewController(currentBody: currentTextBody) { [weak self] in - self?.presentedViewController?.dismiss(animated: true, completion: { - self?.showAccessoryView() - }) - } send: { [weak self] (newTextBody) in - self?.presentedViewController?.dismiss(animated: true, completion: { - self?.showAccessoryView() - guard newTextBody != currentTextBody else { return } - ObvMessengerInternalNotification.userWantsToSendEditedVersionOfSentMessage(sentMessageObjectID: persistedMessageObjectID.objectID, - newTextBody: newTextBody ?? "") - .postOnDispatchQueue() - }) - } - self?.present(vc, animated: true) - return - } - action.image = UIImage(systemName: "pencil.circle") - children.append(action) - } - - if message.callActionCanBeMadeAvailable { - let action = UIAction(title: CommonString.Word.Call) { (_) in - guard let messageSystem = message as? PersistedMessageSystem else { return } - guard let item = messageSystem.optionalCallLogItem else { return } - let groupId = try? item.getGroupIdentifier() - - var contactsToCall = [TypeSafeManagedObjectID]() - for logContact in item.logContacts { - guard let contactIdentity = logContact.contactIdentity else { continue } - contactsToCall.append(contactIdentity.typedObjectID) - } - - ObvMessengerInternalNotification.userWantsToSelectAndCallContacts(contactIDs: contactsToCall, groupId: groupId).postOnDispatchQueue() - } - action.image = UIImage(systemName: SystemIcon.phoneFill.systemName) - children.append(action) - } - - return UIMenu(title: "", image: nil, identifier: nil, options: .displayInline, children: children) - } - } -} - -// MARK: - NSFetchedResultsControllerDelegate - -extension SingleDiscussionViewController: NSFetchedResultsControllerDelegate { - - func controller(_ controller: NSFetchedResultsController, didChange sectionInfo: NSFetchedResultsSectionInfo, atSectionIndex sectionIndex: Int, for type: NSFetchedResultsChangeType) { - sectionChanges.insert((type, sectionIndex), at: 0) - } - - - func controller(_ controller: NSFetchedResultsController, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?) { - itemChanges.append((type, indexPath, newIndexPath)) - } - - - func controllerDidChangeContent(_ controller: NSFetchedResultsController) { - - let visibleHeaders = collectionView.visibleSupplementaryViews(ofKind: UICollectionView.elementKindSectionHeader) - - for header in visibleHeaders { - // Locking the alpha of the headers prevents animation glitches due to the layout attributes returned with a 1.0 alpha - (header as? DateCollectionReusableView)?.alphaIsLocked = true - } - - var anItemWasInserted = false - // The "bug" (?) can be reproduced by sending a message in a oneToOne discussion prior channel creation. - // Then create the channel, the message status in not updated. - // For now, we adopt an ugly patch - var indexPathsToReload = Set() - - collectionView.performBatchUpdates({ - - while let (type, sectionIndex) = sectionChanges.popLast() { - switch type { - case .insert: - collectionView.insertSections(IndexSet(integer: sectionIndex)) - case .delete: - collectionView.deleteSections(IndexSet(integer: sectionIndex)) - case .move, .update: - break - @unknown default: - assertionFailure() - } - } - while let (type, indexPath, newIndexPath) = itemChanges.popLast() { - switch type { - case .insert: - collectionView.insertItems(at: [newIndexPath!]) - anItemWasInserted = true - if fetchedResultsController.object(at: newIndexPath!) is PersistedMessageSent { - lastCollectionViewItemShouldBeVisible = true - } - case .delete: - collectionView.deleteItems(at: [indexPath!]) - let cellsToRefresh = visibleCellsWithReplyToMessageInCell(at: indexPath!) - for cell in cellsToRefresh { - cell.refresh() - } - - case .update: - if let messageCell = collectionView.cellForItem(at: indexPath!) as? MessageCollectionViewCell { - messageCell.refresh() - } else { - collectionView.reloadItems(at: [indexPath!]) - } - case .move: - // 2020-12-06: We add the 'if' statement. Given the new operations, the collection view has a tendency to call - // 'move' instead of 'update'. - if indexPath! == newIndexPath!, let messageCell = collectionView.cellForItem(at: indexPath!) as? MessageCollectionViewCell { - messageCell.refresh() - } else { - collectionView.moveItem(at: indexPath!, to: newIndexPath!) - indexPathsToReload.insert(newIndexPath!) - } - @unknown default: - assertionFailure() - } - } - - }) { [weak self] (_) in - - guard let _self = self else { return } - let collectionView = _self.collectionView! - - defer { - if !indexPathsToReload.isEmpty { - collectionView.reloadItems(at: [IndexPath](indexPathsToReload)) - } - if anItemWasInserted { - _self.showNoChannelAlertIfRequired() - } - } - - guard collectionView.bounds.inset(by: collectionView.adjustedContentInset).height < collectionView.contentSize.height && _self.lastCollectionViewItemShouldBeVisible else { - for header in visibleHeaders { - (header as? DateCollectionReusableView)?.alphaIsLocked = false - } - return - } - - _self.animatorForScrollingCollectionView.addAnimations { - collectionView.contentOffset = CGPoint(x: 0, y: collectionView.contentSize.height - collectionView.bounds.height + collectionView.adjustedContentInset.bottom) - } - _self.animatorForScrollingCollectionView.addCompletion { (_) in - for header in visibleHeaders { - (header as? DateCollectionReusableView)?.alphaIsLocked = false - } - _self.hideTopHeaderIfRequired(animate: true) - } - _self.animatorForScrollingCollectionView.startAnimation() - - } - - } - - - private func visibleCellsWithReplyToMessageInCell(at indexPAth: IndexPath) -> [MessageCollectionViewCell] { - guard let cell = collectionView.cellForItem(at: indexPAth) else { return [] } - assert(Thread.current == Thread.main) - guard let messageCell = cell as? MessageCollectionViewCell else { return [] } - guard let message = messageCell.message else { return [] } - let cells = collectionView.visibleCells - .compactMap { $0 as? MessageCollectionViewCell } - .filter { $0.message == message } - return cells - } - -} - - -// MARK: - Handling Gestures - -extension SingleDiscussionViewController { - - private func configureGestureRecognizers() { - - let hedgeGesture = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(screenEdgePanPerformed)) - hedgeGesture.edges = [.left] - self.collectionView.addGestureRecognizer(hedgeGesture) - - let tap = UITapGestureRecognizer(target: self, action: #selector(tapPerformed)) - self.collectionView.addGestureRecognizer(tap) - - } - - - @objc func screenEdgePanPerformed(recognizer: UIScreenEdgePanGestureRecognizer) { - guard recognizer.state == .ended else { return } - let percent = max(recognizer.translation(in: view).x, 0) / view.frame.width - let velocity = recognizer.velocity(in: view).x - if percent > 0.5 || velocity > 1000 { - self.dismiss(animated: true) - } - } - - - @objc func tapPerformed(recognizer: UITapGestureRecognizer) { - - guard recognizer.state == .ended else { return } - let location = recognizer.location(in: collectionView) - guard let indexPath = collectionView.indexPathForItem(at: location) else { return } - let cell = collectionView.cellForItem(at: indexPath) - - // Detect tap on a "reply-to" cell - do { - if let receivedCell = cell as? MessageCollectionViewCell { - let replyToRoundedRectView = receivedCell.replyToRoundedRectView - if replyToRoundedRectView.superview != nil { - // The replyToRoundedRectView exists in the view hierarchy, we check whether it was tapped - if replyToRoundedRectView.bounds.contains(recognizer.location(in: replyToRoundedRectView)) { - // The user tapped on the reply-to cell. Find the corresponding message - switch fetchedResultsController.object(at: indexPath).genericRepliesTo { - case .none, .notAvailableYet, .deleted: - return - case .available(let replyToMessage): - tapPerformedOnReplyToRoundedRectView(replyToMessage: replyToMessage) - } - } - - } - } - } - - // Detect tap on a new received message that cannot be read (yet) - do { - if let receivedMessage = (cell as? MessageCollectionViewCell)?.message as? PersistedMessageReceived, receivedMessage.readingRequiresUserAction { - ObvMessengerInternalNotification.userWantsToReadReceivedMessagesThatRequiresUserAction(persistedMessageObjectIDs: Set([receivedMessage.typedObjectID])) - .postOnDispatchQueue() - return - } - } - - // Detect tap on a FyleMessageJoinWithStatus - do { - if let messageCell = cell as? MessageCollectionViewCell { - if let index = messageCell.indexOfFyleMessageJoinWithStatus(at: recognizer.location(in: messageCell)) { - tapPerformedOnFyleMessageJoinWithStatus(atIndex: index, within: messageCell) - return // We detected an appropriate tap, we can return - } - } - } - - // Detact tap on a group v2 cell indicating that members changed - - if let systemMessage = (cell as? MessageSystemCollectionViewCell)?.messageSystem { - switch systemMessage.category { - case .membersOfGroupV2WereUpdated: - titleTapped() - default: - break - } - } - - // Detect tap on CallLog Item - if let systemMessage = (cell as? MessageSystemCollectionViewCell)?.messageSystem, - let callLogItem = systemMessage.optionalCallLogItem, - let callReportKind = callLogItem.callReportKind { - switch callReportKind { - case .rejectedIncomingCallBecauseOfDeniedRecordPermission: - systemCellShowingCallLogItemRejectedIncomingCallBecauseOfDeniedRecordPermissionWasTapped() - case .missedIncomingCall, - .filteredIncomingCall, - .rejectedIncomingCall, - .acceptedIncomingCall, - .acceptedOutgoingCall, - .rejectedOutgoingCall, - .busyOutgoingCall, - .unansweredOutgoingCall, - .uncompletedOutgoingCall, - .newParticipantInIncomingCall, - .newParticipantInOutgoingCall, - .anyIncomingCall, - .anyOutgoingCall: - break - } - } - } - - - /// Called when we detect that the user tapped on a view showing a "replied-to" message. - private func tapPerformedOnReplyToRoundedRectView(replyToMessage: PersistedMessage) { - - guard let replyToIndexPath = fetchedResultsController.indexPath(forObject: replyToMessage) else { return } - - if let collectionView = self.collectionView as? ObvCollectionView { - collectionView.adjustedScrollToItem(at: replyToIndexPath, at: .centeredVertically, animated: true) { [weak self] in - self?.highlightItem(at: replyToIndexPath) - } - } - - } - - private func highlightItem(at indexPath: IndexPath) { - guard let cell = collectionView.cellForItem(at: indexPath) as? MessageCollectionViewCell else { return } - - switch cell { - case is MessageSentCollectionViewCell: - cell.roundedRectView.applyRippleEffect(withColor: AppTheme.shared.colorScheme.primary300) - case is MessageReceivedCollectionViewCell: - let effectColor = AppTheme.shared.colorScheme.tertiarySystemBackground - cell.roundedRectView.applyRippleEffect(withColor: effectColor) - default: - return - } - - } - - - private func tapPerformedOnFyleMessageJoinWithStatus(atIndex index: Int, within messageCell: MessageCollectionViewCell) { - - if let fyleMessagesJoinWithStatus = messageCell.fyleMessagesJoinWithStatus as? [ReceivedFyleMessageJoinWithStatus] { - - let fyleMessageJoinWithStatus = fyleMessagesJoinWithStatus[index] - - switch fyleMessageJoinWithStatus.status { - - case .downloadable: - NewSingleDiscussionNotification.userWantsToDownloadReceivedFyleMessageJoinWithStatus(receivedJoinObjectID: fyleMessageJoinWithStatus.typedObjectID) - .postOnDispatchQueue() - - case .downloading: - NewSingleDiscussionNotification.userWantsToPauseDownloadReceivedFyleMessageJoinWithStatus(receivedJoinObjectID: fyleMessageJoinWithStatus.typedObjectID) - .postOnDispatchQueue() - - case .complete: - - guard let message = messageCell.message else { assertionFailure(); return } - showFilesViewerForFyleMessageJoinWithStatusOfMessage(message, firstShownIndex: index) - return - - case .cancelledByServer: - break // We do nothing if the attachment cannot be downloaded because it was cancelled by the server - } - - } else if let fyleMessagesJoinWithStatus = messageCell.fyleMessagesJoinWithStatus as? [SentFyleMessageJoinWithStatus] { - - let fyleMessageJoinWithStatus = fyleMessagesJoinWithStatus[index] - - switch fyleMessageJoinWithStatus.status { - case .uploadable, .uploading, .complete: - - guard let message = messageCell.message else { assertionFailure(); return } - showFilesViewerForFyleMessageJoinWithStatusOfMessage(message, firstShownIndex: index) - return - - } - - - } - - } - - - private func showFilesViewerForFyleMessageJoinWithStatusOfMessage(_ message: PersistedMessage, firstShownIndex: Int) { - guard let frc = try? FyleMessageJoinWithStatus.getFetchedResultsControllerForAllJoinsWithinMessage(message) else { assertionFailure(); return } - try? frc.performFetch() - self.filesViewer = FilesViewer(frc: frc, qlPreviewControllerDelegate: self) - dismissAccessoryView() // Shown back in func previewControllerDidDismiss(_ controller: QLPreviewController) - counterOfCallsToAdjustCollectionViewContentOffsetToIgnore = 2 - counterOfCallsToAdjustCollectionViewContentInsetsToIgnore = 2 - self.filesViewer?.tryToShowFile(atIndexPath: IndexPath(item: firstShownIndex, section: 0), within: self) - } - - - func systemCellShowingCallLogItemRejectedIncomingCallBecauseOfDeniedRecordPermissionWasTapped() { - switch AVAudioSession.sharedInstance().recordPermission { - case .undetermined: - AVAudioSession.sharedInstance().requestRecordPermission { [weak self] (granted) in - self?.collectionView.reloadData() - } - case .denied: - ObvMessengerInternalNotification.rejectedIncomingCallBecauseUserDeniedRecordPermission - .postOnDispatchQueue() - case .granted: - break - @unknown default: - assertionFailure() - } - } - -} - - -// MARK: - UIDocumentPickerDelegate - -extension SingleDiscussionViewController: UIDocumentPickerDelegate { - - func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) { - deleteTempFilesToDeleteOnUIDocumentPickerViewControllerDismissal() - } - - - func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) { - deleteTempFilesToDeleteOnUIDocumentPickerViewControllerDismissal() - } - - - private func deleteTempFilesToDeleteOnUIDocumentPickerViewControllerDismissal() { - while let tempURL = urlsOfTempFilesToDeleteOnUIDocumentPickerViewControllerDismissal.popLast() { - let container = ObvUICoreDataConstants.ContainerURL.forTempFiles.url - guard tempURL.absoluteString.starts(with: container.absoluteString) else { - return - } - try? FileManager.default.removeItem(at: tempURL) - } - } - -} - - -// MARK: - Handling keyboard appearance - -extension SingleDiscussionViewController { - - func registerKeyboardNotifications() { - do { - let token = NotificationCenter.default.addObserver(forName: UIResponder.keyboardWillChangeFrameNotification, object: nil, queue: nil) { [weak self] (notification) in - self?.keyboardWillChangeFrame(notification) - } - observationTokens.append(token) - } - do { - let token = NotificationCenter.default.addObserver(forName: UIResponder.keyboardDidHideNotification, object: nil, queue: nil) { [weak self] (notification) in - self?.keyboardDidHideNotification(notification) - } - observationTokens.append(token) - } - } - - - private func keyboardDidHideNotification(_ notification: Notification) { - accessoryViewIsShown = false - } - - - private func keyboardWillChangeFrame(_ notification: Notification) { - - let visibleHeaders = collectionView.visibleSupplementaryViews(ofKind: UICollectionView.elementKindSectionHeader) - - for header in visibleHeaders { - (header as? DateCollectionReusableView)?.alphaIsLocked = true - } - animatorForCollectionViewContent.addCompletion { [weak self] (_) in - for header in visibleHeaders { - (header as? DateCollectionReusableView)?.alphaIsLocked = false - } - self?.hideTopHeaderIfRequired(animate: true) - } - - let kbdHeight = getKeyboardHeight(notification) - guard kbdHeight != currentKbdHeight else { return } - adjustCollectionViewContentOffset(nextKbdAndComposeViewHeight: kbdHeight) - adjustCollectionViewContentInset(nextKbdAndComposeViewHeight: kbdHeight) - currentKbdHeight = kbdHeight - - - } - - - private func getKeyboardHeight(_ notification: Notification) -> CGFloat { - let userInfo = notification.userInfo! - let kbSize = (userInfo[UIResponder.keyboardFrameEndUserInfoKey] as! CGRect).size - return kbSize.height - } - - - private func adjustCollectionViewContentInset(nextKbdAndComposeViewHeight: CGFloat) { - - guard counterOfCallsToAdjustCollectionViewContentInsetsToIgnore == 0 else { - counterOfCallsToAdjustCollectionViewContentInsetsToIgnore -= 1 - debugPrint("🥶 \(discussion.title) counterOfCallsToAdjustCollectionViewInsetsOffsetToIgnore: \(counterOfCallsToAdjustCollectionViewContentInsetsToIgnore+1) --> \(counterOfCallsToAdjustCollectionViewContentInsetsToIgnore)") - return - } - - let bottomInset = (nextKbdAndComposeViewHeight == 0) ? collectionView.safeAreaInsets.bottom : nextKbdAndComposeViewHeight - let currentInset = collectionView.contentInset - let newInset = UIEdgeInsets(top: collectionView.safeAreaInsets.top, - left: collectionView.safeAreaInsets.left, - bottom: bottomInset, - right: collectionView.safeAreaInsets.right) - if newInset != currentInset { - debugPrint("🥶 \(discussion.title) Changing insets: \(currentInset) --> \(newInset)") - if viewDidAppearWasCalled { - collectionView.contentInset = newInset - } else { - UIView.performWithoutAnimation { - collectionView.contentInset = newInset - } - } - } - } - - - private func adjustCollectionViewContentOffset(nextKbdAndComposeViewHeight: CGFloat) { - - guard viewDidAppearWasCalled else { - // If viewDidAppear has not been called already, we scroll to the bottom of the collection view - performInitialScrollToBottomIfRequired() - return - } - - // This is a hack. This is usefull when dismissing the preview of an attachment to avoid animation glitches. - guard counterOfCallsToAdjustCollectionViewContentOffsetToIgnore == 0 else { - counterOfCallsToAdjustCollectionViewContentOffsetToIgnore -= 1 - debugPrint("🥵 \(discussion.title) counterOfCallsToAdjustCollectionViewContentOffsetToIgnore: \(counterOfCallsToAdjustCollectionViewContentOffsetToIgnore+1) --> \(counterOfCallsToAdjustCollectionViewContentOffsetToIgnore)") - return - } - - // If the keyboard size increases, scroll - - guard nextKbdAndComposeViewHeight > currentKbdHeight else { return } - - let previousAvailableHeightForContent = collectionView.bounds.height - collectionView.safeAreaInsets.top - currentKbdHeight - let nextAvailableHeightForContent = collectionView.bounds.height - collectionView.safeAreaInsets.top - nextKbdAndComposeViewHeight - let currentOffset = self.collectionView.contentOffset - - let deltaVerticalContentOffset: CGFloat - - if collectionView.contentSize.height > previousAvailableHeightForContent { - - // Case 1 : The collection view's content size is larger than the previous available height for for content. Typical when there are a lot of messages. - deltaVerticalContentOffset = nextKbdAndComposeViewHeight - currentKbdHeight - - } else if collectionView.contentSize.height > nextAvailableHeightForContent { - - // Case 2 : The collection view's content size is smaller than the previous available height for for content, but larger than the next available height. Typical when there are a few messages. - deltaVerticalContentOffset = collectionView.contentSize.height - nextAvailableHeightForContent - - } else { - - // Case 3 : The collection view's content size is smaller than the next available height for for content. - deltaVerticalContentOffset = 0 - - } - - let newContentOffset = CGPoint(x: currentOffset.x, y: currentOffset.y + deltaVerticalContentOffset) - - debugPrint("🥵 \(discussion.title) collectionView contentOffset: \(collectionView.contentOffset) --> \(newContentOffset)") - - animatorForCollectionViewContent.addAnimations { [weak self] in - self?.collectionView.setContentOffset(newContentOffset, animated: false) - } - - if animatorForCollectionViewContent.state != .active { - animatorForCollectionViewContent.startAnimation() - } - - } - -} - - -// MARK: - Handling overlay windows - -extension SingleDiscussionViewController { - - @objc private func dismissOverlayWindow() { - guard let uiApplication = self.uiApplication else { return } - for window in uiApplication.windows.reversed() { - let overlays = window.subviews.filter { $0 is OverlayWindow } - let animator = UIViewPropertyAnimator(duration: 0.2, curve: .easeInOut) - for overlayWindow in overlays { - animator.addAnimations { - overlayWindow.backgroundColor = .clear - _ = overlayWindow.subviews.map { $0.isHidden = true } - } - animator.addCompletion({ (_) in - overlayWindow.removeFromSuperview() - }) - } - animator.startAnimation() - } - } - - - private func deletePersistedMessage(objectId: NSManagedObjectID, confirmedDeletionType: DeletionType?, withinCell cell: CellWithMessage) { - - switch confirmedDeletionType { - - case .none: - - guard let persistedMessage = try? PersistedMessage.get(with: objectId, within: ObvStack.shared.viewContext) else { return } - guard persistedMessage.discussion == self.discussion else { return } - - let numberOfAttachedFyles: Int - if let persistedMessageSent = persistedMessage as? PersistedMessageSent { - numberOfAttachedFyles = persistedMessageSent.fyleMessageJoinWithStatuses.filter({ !$0.isWiped }).count - } else if let persistedMessageReceived = persistedMessage as? PersistedMessageReceived { - numberOfAttachedFyles = persistedMessageReceived.fyleMessageJoinWithStatuses.filter({ !$0.isWiped }).count - } else { - numberOfAttachedFyles = 0 - } - - let userAlertTitle: String - if numberOfAttachedFyles > 0 { - userAlertTitle = Strings.deleteMessageAndAttachmentsTitle - } else { - userAlertTitle = Strings.deleteMessageTitle - } - let userAlertMessage = Strings.deleteMessageAndAttachmentsMessage(numberOfAttachedFyles) - - let alert = UIAlertController(title: userAlertTitle, message: userAlertMessage, preferredStyle: .actionSheet) - - alert.addAction(UIAlertAction(title: CommonString.AlertButton.performDeletionAction, style: .default, handler: { [weak self] (action) in - self?.deletePersistedMessage(objectId: objectId, confirmedDeletionType: .local, withinCell: cell) - })) - - if persistedMessage.globalDeleteMessageActionCanBeMadeAvailable { - alert.addAction(UIAlertAction(title: CommonString.AlertButton.performGlobalDeletionAction, style: .destructive, handler: { [weak self] (action) in - self?.deletePersistedMessage(objectId: objectId, confirmedDeletionType: .global, withinCell: cell) - })) - } - - alert.addAction(UIAlertAction(title: CommonString.Word.Cancel, style: .cancel)) - DispatchQueue.main.async { - alert.popoverPresentationController?.sourceView = cell.viewForTargetedPreview - self.present(alert, animated: true, completion: nil) - } - - case .some(let deletionType): - - assert(Thread.isMainThread) - guard let discussion = try? PersistedDiscussion.get(objectID: discussionObjectID, within: ObvStack.shared.viewContext) else { - return - } - guard let ownedCryptoId = discussion.ownedIdentity?.cryptoId else { assertionFailure(); return } - - ObvMessengerInternalNotification.userRequestedDeletionOfPersistedMessage(ownedCryptoId: ownedCryptoId, persistedMessageObjectID: objectId, deletionType: deletionType) - .postOnDispatchQueue() - - } - - } - -} - - -// MARK: - Handling notifications - -extension SingleDiscussionViewController { - - // Refresh the discussion title if it is updated - private func observePersistedDiscussionHasNewTitleNotifications() { - let token = ObvMessengerCoreDataNotification.observePersistedDiscussionHasNewTitle(queue: OperationQueue.main) { [weak self] (objectID, title) in - assert(self?.discussion?.managedObjectContext == ObvStack.shared.viewContext) - guard objectID == self?.discussion?.typedObjectID else { return } - self?.navigationTitleLabel.text = title - } - observationTokens.append(token) - } - - - private func observePersistedContactHasNewCustomDisplayNameNotifications() { - let log = self.log - let token = ObvMessengerCoreDataNotification.observePersistedContactHasNewCustomDisplayName(queue: OperationQueue.main) { [weak self] (contactCryptoId) in - guard let _self = self else { return } - switch try? _self.discussion.kind { - case .oneToOne, .none: - return - case .groupV1(withContactGroup: let contactGroup): - guard let contactGroup = contactGroup else { - os_log("Could find contact group (this is ok if it was just deleted)", log: log, type: .error) - return - } - let contactsCryptoIds = contactGroup.contactIdentities.map { $0.cryptoId } - guard contactsCryptoIds.contains(contactCryptoId) else { return } - // If we reach this point, we simply reload all visible cells that correspond to a received message - // We need to refresh the context since the changed object is not among the one that are fetcheded - _self.fetchedResultsController.managedObjectContext.refreshAllObjects() - let visibleIps = _self.collectionView.indexPathsForVisibleItems.filter { _self.collectionView.cellForItem(at: $0) is MessageReceivedCollectionViewCell } - _self.collectionView.reloadItems(at: visibleIps) - case .groupV2(withGroup: let group): - guard let group = group else { - os_log("Could find group v2 (this is ok if it was just deleted)", log: log, type: .error) - return - } - let contactsCryptoIds = group.otherMembers.compactMap({ $0.cryptoId }) - guard contactsCryptoIds.contains(contactCryptoId) else { return } - // If we reach this point, we simply reload all visible cells that correspond to a received message - // We need to refresh the context since the changed object is not among the one that are fetcheded - _self.fetchedResultsController.managedObjectContext.refreshAllObjects() - let visibleIps = _self.collectionView.indexPathsForVisibleItems.filter { _self.collectionView.cellForItem(at: $0) is MessageReceivedCollectionViewCell } - _self.collectionView.reloadItems(at: visibleIps) - } - } - observationTokens.append(token) - } - - private func observeDiscussionLocalConfigurationHasBeenUpdatedNotifications() { - let token = ObvMessengerCoreDataNotification.observeDiscussionLocalConfigurationHasBeenUpdated { [weak self] value, objectId in - DispatchQueue.main.async { - guard let _self = self else { return } - guard case .muteNotificationsEndDate = value else { return } - guard _self.discussion.localConfiguration.typedObjectID == objectId else { return } - _self.configureNavigationBarTitle() - } - } - observationTokens.append(token) - } -} - - -// MARK: - MessageReceivedCollectionViewCellDelegate - -extension SingleDiscussionViewController: MessageCollectionViewCellDelegate { - func userSelectedURL(_ url: URL) { - delegate?.userSelectedURL(url, within: self) - } - - func reloadCell(_ cell: UICollectionViewCell) { - assert(Thread.current == Thread.main) - guard let indexPath = collectionView.indexPath(for: cell) else { return } - collectionView.reloadItems(at: [indexPath]) - } -} - - -// MARK: - Showing an alert when no channel is available - -extension SingleDiscussionViewController { - - private func showNoChannelAlertIfRequired() { - - guard discussionHasNoRemoteContactDevice else { return } - - let alert: UIAlertController - switch try? discussion.kind { - case .oneToOne: - alert = UIAlertController(title: Strings.Alerts.WaitingForChannel.title, - message: Strings.Alerts.WaitingForChannel.message, - preferredStyle: .alert) - case .groupV1: - alert = UIAlertController(title: Strings.Alerts.WaitingForFirstGroupMember.title, - message: Strings.Alerts.WaitingForFirstGroupMember.message, - preferredStyle: .alert) - case .groupV2: - // We do not show an alert for group v2 (since we sometimes want to write a message to self in an empty group v2) - return - case .none: - assertionFailure() - return - } - alert.addAction(UIAlertAction(title: CommonString.Word.Ok, style: .default, handler: nil)) - present(alert, animated: true) - - } - - - private var discussionHasNoRemoteContactDevice: Bool { - guard !discussion.isDeleted else { - return true - } - switch try? discussion.kind { - case .oneToOne(withContactIdentity: let contactIdentity): - guard let contactIdentity = contactIdentity else { assertionFailure(); return true } - return !contactIdentity.hasAtLeastOneRemoteContactDevice() - case .groupV1(withContactGroup: let contactGroup): - guard let contactGroup = contactGroup else { assertionFailure(); return true } - return !contactGroup.hasAtLeastOneRemoteContactDevice() - case .groupV2(withGroup: let group): - guard let group = group else { assertionFailure(); return true } - return group.otherMembers.isEmpty - case .none: - assertionFailure() - return true - } - } - -} - - -// MARK: - CustomQLPreviewControllerDelegate - -extension SingleDiscussionViewController: CustomQLPreviewControllerDelegate { - - func previewController(_ controller: QLPreviewController, transitionViewFor item: QLPreviewItem) -> UIView? { - guard let filesViewer = self.filesViewer else { assertionFailure(); return nil } - let attachmentIndex = controller.currentPreviewItemIndex - switch filesViewer.frcType { - case .fyleMessageJoinWithStatus(frc: let frc): - guard let join = frc.fetchedObjects?.first else { return nil } - guard let message = join.message else { return nil } - guard let messageCell = collectionView.visibleCells.compactMap({ $0 as? MessageCollectionViewCell }).first(where: { $0.message == message }) else { return nil } - guard let frcSections = frc.sections else { assertionFailure(); return nil } - guard frcSections.count == 1 else { assertionFailure(); return nil } - guard let frcFetchedObjects = frc.fetchedObjects else { assertionFailure(); return nil } - guard attachmentIndex < frcFetchedObjects.count else { assertionFailure(); return nil } - let dismissedFyleMessageJoin = frcFetchedObjects[attachmentIndex] - let thumbnailView = messageCell.thumbnailViewOfFyleMessageJoinWithStatus(dismissedFyleMessageJoin) - return thumbnailView - case .persistedDraftFyleJoin: - return nil - } - } - - - func previewControllerDidDismiss(_ controller: QLPreviewController) { - showAccessoryView() - self.filesViewer = nil - } - - func previewController(hasDisplayed joinID: TypeSafeManagedObjectID) { - ObvMessengerInternalNotification.userHasOpenedAReceivedAttachment(receivedFyleJoinID: joinID).postOnDispatchQueue() - } -} - - -// MARK: - UIAdaptivePresentationControllerDelegate - -extension SingleDiscussionViewController: UIAdaptivePresentationControllerDelegate { - - func presentationControllerDidDismiss(_ presentationController: UIPresentationController) { - // This method is typically called when the user dismissed the modal VC presented in order to show the infos of a particular message. - // This method is also called when the user the user dismissed the SentMessageInfosViewController by tapping the back button, since we call this method "by hand" in that case. - showAccessoryView() - } -} - - -// MARK: Stuff - -extension SingleDiscussionViewController { - - - /// We observe notifications of deleted fyle message joins (i.e., attachments) so as to be able to dismiss the File Viewer if: - /// - there is one presented ;-) - /// - it is currently configured to show one of the deleted attachments - /// This typically occurs for attachments with limited visibility. The first time we tap on such an attachment, the counter starts. When it is over, we delete de whole message, including the attachments. - /// In that case, we do not allow the user to continue viewing any of those attachments so we dismiss the file viewer. - private func observeDeletedFyleMessageJoinNotifications() { - let NotificationName = NSNotification.Name.NSManagedObjectContextObjectsDidChange - let token = NotificationCenter.default.addObserver(forName: NotificationName, object: nil, queue: nil) { [weak self] (notification) in - - // Make sure we are considering changes made in the view context, i.e., posted on the main thread - - guard Thread.isMainThread else { return } - - // Construc a set of FyleMessageJoinWithStatus currently shown by the file viewer - - guard let filesViewer = self?.filesViewer else { return } - guard case .fyleMessageJoinWithStatus(frc: let frcOfFilesViewer) = filesViewer.frcType else { return } - guard let shownObjectIDs = frcOfFilesViewer.fetchedObjects?.map({ $0.objectID }) else { return } - - // Construct a set of deleted/wiped FyleMessageJoinWithStatus - - var objectIDs = Set() - do { - if let deletedObjects = notification.userInfo?[NSDeletedObjectsKey] as? Set, !deletedObjects.isEmpty { - let deletedFyleMessageJoinWithStatuses = deletedObjects.compactMap({ $0 as? FyleMessageJoinWithStatus }) - objectIDs.formUnion(Set(deletedFyleMessageJoinWithStatuses.map({ $0.objectID }))) - } - if let updatedObjects = notification.userInfo?[NSUpdatedObjectsKey] as? Set, !updatedObjects.isEmpty { - let wipedFyleMessageJoinWithStatuses = updatedObjects - .compactMap { $0 as? FyleMessageJoinWithStatus } - .filter { $0.isWiped } - objectIDs.formUnion(Set(wipedFyleMessageJoinWithStatuses.map({ $0.objectID }))) - } - } - - // Construct a set of FyleMessageJoinWithStatus shown by the file viewer - - guard !objectIDs.isDisjoint(with: shownObjectIDs) else { return } - DispatchQueue.main.async { - (self?.presentedViewController as? QLPreviewController)?.dismiss(animated: true, completion: { - self?.filesViewer = nil - }) - } - } - observationTokens.append(token) - } - - - /// If a received message gets deleted (e.g., after its visibility expires), we check whether it was "under" the - /// system message indicating the number of new messages. If this is the case, we must update (potentially delete) - /// the system message. - private func observeCertainMessageDeletionToUpdateNumberOfNewMessagesSystemMessage() { - observationTokens.append(ObvMessengerCoreDataNotification.observePersistedMessageReceivedWasDeleted(queue: OperationQueue.main) { [weak self] (objectID, _, _, sortIndex, _) in - guard let _self = self else { return } - guard let numberOfNewMessagesSystemMessage = try? PersistedMessageSystem.getNumberOfNewMessagesSystemMessage(in: _self.discussion) else { return } - guard _self.objectIDsOfNewMessages.contains(objectID) else { return } - // If we reach this point, the system message of type 'numberOfNewMessages' should be updated (potentially deleted). - _self.objectIDsOfNewMessages.remove(objectID) - numberOfNewMessagesSystemMessage.updateAndPotentiallyDeleteNumberOfUnreadReceivedMessagesSystemMessage(newNumberOfUnreadReceivedMessages: _self.objectIDsOfNewMessages.count) - }) - observationTokens.append(ObvMessengerCoreDataNotification.observePersistedMessageSystemWasDeleted(queue: OperationQueue.main) { [weak self] (objectID, _) in - guard let _self = self else { return } - guard let numberOfNewMessagesSystemMessage = try? PersistedMessageSystem.getNumberOfNewMessagesSystemMessage(in: _self.discussion) else { return } - guard _self.objectIDsOfNewMessages.contains(objectID) else { return } - // If we reach this point, the system message of type 'numberOfNewMessages' should be updated (potentially deleted). - _self.objectIDsOfNewMessages.remove(objectID) - numberOfNewMessagesSystemMessage.updateAndPotentiallyDeleteNumberOfUnreadReceivedMessagesSystemMessage(newNumberOfUnreadReceivedMessages: _self.objectIDsOfNewMessages.count) - }) - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SupplementaryViews/DateCollectionReusableView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SupplementaryViews/DateCollectionReusableView.swift deleted file mode 100644 index 0d798810..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SupplementaryViews/DateCollectionReusableView.swift +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit - -final class DateCollectionReusableView: UICollectionReusableView { - - static let identifier = "DateCollectionReusableView" - - let bodyCell = UIView() - let label = UILabel() - var alphaIsLocked = false - - override init(frame: CGRect) { - super.init(frame: frame) - setup() - } - - - required init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - setup() - } - - - private func setup() { - - self.clipsToBounds = true - self.autoresizesSubviews = true - self.isUserInteractionEnabled = false - - bodyCell.translatesAutoresizingMaskIntoConstraints = false - bodyCell.layer.cornerRadius = 13.0 - bodyCell.backgroundColor = AppTheme.shared.colorScheme.primary400.withAlphaComponent(0.9) - self.addSubview(bodyCell) - - label.translatesAutoresizingMaskIntoConstraints = false - label.numberOfLines = 1 - label.backgroundColor = .clear - label.textColor = AppTheme.shared.colorScheme.whiteTextHighEmphasis - label.font = UIFont.preferredFont(forTextStyle: .subheadline) - bodyCell.addSubview(label) - - setupConstraints() - - } - - - private func setupConstraints() { - let constraints = [ - label.topAnchor.constraint(equalTo: bodyCell.topAnchor, constant: 8.0), - label.trailingAnchor.constraint(equalTo: bodyCell.trailingAnchor, constant: -8.0), - label.bottomAnchor.constraint(equalTo: bodyCell.bottomAnchor, constant: -8.0), - label.leadingAnchor.constraint(equalTo: bodyCell.leadingAnchor, constant: 8.0), - bodyCell.centerXAnchor.constraint(equalTo: self.centerXAnchor), - bodyCell.topAnchor.constraint(equalTo: self.topAnchor), - bodyCell.bottomAnchor.constraint(equalTo: self.bottomAnchor), - bodyCell.centerYAnchor.constraint(equalTo: self.centerYAnchor) - ] - NSLayoutConstraint.activate(constraints) - - } - - override func prepareForReuse() { - super.prepareForReuse() - label.text = nil - alphaIsLocked = false - } - - override var alpha: CGFloat { - get { - return super.alpha - } - set { - guard !alphaIsLocked else { return } - super.alpha = newValue - } - } - - override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes { - - var fittingSize = UIView.layoutFittingCompressedSize - fittingSize.width = layoutAttributes.size.width - let size = systemLayoutSizeFitting(fittingSize, withHorizontalFittingPriority: .defaultHigh, verticalFittingPriority: .defaultLow) - var adjustedFrame = layoutAttributes.frame - adjustedFrame.size.height = size.height - layoutAttributes.frame = adjustedFrame - - return layoutAttributes - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SupplementaryViews/NoChannelCollectionReusableView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SupplementaryViews/NoChannelCollectionReusableView.swift deleted file mode 100644 index 9bc1efc6..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Discussions/SingleDiscussion/SupplementaryViews/NoChannelCollectionReusableView.swift +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit - - -class NoChannelCollectionReusableView: UICollectionReusableView { - - static let identifier = "NoChannelCollectionReusableView" - - let label = UILabel() - - override init(frame: CGRect) { - super.init(frame: frame) - setup() - } - - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - func setup() { - - self.clipsToBounds = true - self.autoresizesSubviews = true - - label.translatesAutoresizingMaskIntoConstraints = false - label.font = UIFont.preferredFont(forTextStyle: .footnote) - label.textColor = AppTheme.shared.colorScheme.label - label.textAlignment = .center - self.addSubview(label) - - setupConstraints() - } - - - private func setupConstraints() { - let constraints = [ - label.topAnchor.constraint(equalTo: self.topAnchor), - label.trailingAnchor.constraint(equalTo: self.trailingAnchor), - label.bottomAnchor.constraint(equalTo: self.bottomAnchor), - label.leadingAnchor.constraint(equalTo: self.leadingAnchor) - ] - NSLayoutConstraint.activate(constraints) - } - - func configure(with text: String) { - self.label.text = text - } - -} - - -extension NoChannelCollectionReusableView { - - override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes { - - var fittingSize = UIView.layoutFittingCompressedSize - fittingSize.width = layoutAttributes.size.width - let size = systemLayoutSizeFitting(fittingSize, withHorizontalFittingPriority: .defaultHigh, verticalFittingPriority: .defaultLow) - var adjustedFrame = layoutAttributes.frame - adjustedFrame.size.height = size.height - layoutAttributes.frame = adjustedFrame - - return layoutAttributes - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/AllGroups/NewAllGroupsViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/AllGroups/NewAllGroupsViewController.swift index dc692b44..4b687513 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/AllGroups/NewAllGroupsViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/AllGroups/NewAllGroupsViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -17,15 +17,14 @@ * along with Olvid. If not, see . */ - - import CoreData import ObvUI import ObvUICoreData import ObvTypes import UIKit -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials import UI_SystemIcon +import ObvDesignSystem /// We implement the list of groups using a plain collection view. Since we require this view controller to be used under iOS 13, we cannot use modern techniques (such as list in collection views or UIContentConfiguration). @@ -91,13 +90,8 @@ final class NewAllGroupsViewController: ShowOwnedIdentityButtonUIViewController, var rightBarButtonItems = [UIBarButtonItem]() - if #available(iOS 14, *) { - let ellipsisButton = getConfiguredEllipsisCircleRightBarButtonItem() - rightBarButtonItems.append(ellipsisButton) - } else { - let ellipsisButton = getConfiguredEllipsisCircleRightBarButtonItem(selector: #selector(ellipsisButtonTappedSelector)) - rightBarButtonItems.append(ellipsisButton) - } + let ellipsisButton = getConfiguredEllipsisCircleRightBarButtonItem() + rightBarButtonItems.append(ellipsisButton) navigationItem.rightBarButtonItems = rightBarButtonItems @@ -139,12 +133,6 @@ final class NewAllGroupsViewController: ShowOwnedIdentityButtonUIViewController, } - @available(iOS, introduced: 13.0, deprecated: 14.0, message: "Used because iOS 13 does not support UIMenu on UIBarButtonItem") - @objc private func ellipsisButtonTappedSelector() { - ellipsisButtonTapped(sourceBarButtonItem: navigationItem.rightBarButtonItem) - } - - func clearSelection(animated: Bool) { collectionView.indexPathsForSelectedItems?.forEach({ (indexPath) in collectionView.deselectItem(at: indexPath, animated: animated) @@ -248,7 +236,7 @@ final class NewAllGroupsViewController: ShowOwnedIdentityButtonUIViewController, if let displayedContactGroup = try? DisplayedContactGroup.get(objectID: objectID, within: ObvStack.shared.viewContext) { self?.configure(groupCell: groupCell, with: displayedContactGroup) } else { - assertionFailure() + self?.configureWhenNoDisplayedContactGroupCanBeFound(groupCell: groupCell) } return groupCell } @@ -271,6 +259,18 @@ final class NewAllGroupsViewController: ShowOwnedIdentityButtonUIViewController, try? frc.performFetch() } + + + /// This is generally called when a cell must be refreshed while a DisplayedContactGroup is deleted + private func configureWhenNoDisplayedContactGroupCanBeFound(groupCell: ObvSubtitleCollectionViewCell) { + let configuration = ObvSubtitleCollectionViewCell.Configuration( + title: nil, + subtitle: nil, + circledInitialsConfiguration: .icon(.person3Fill), + badge: .none + ) + groupCell.configure(with: configuration) + } private func configure(groupCell: ObvSubtitleCollectionViewCell, with displayedContactGroup: DisplayedContactGroup) { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/GroupCreation/SwiftUI/GroupEditionFlowViewHostingController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/GroupCreation/SwiftUI/GroupEditionFlowViewHostingController.swift index cc14ddc2..c38cd598 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/GroupCreation/SwiftUI/GroupEditionFlowViewHostingController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/GroupCreation/SwiftUI/GroupEditionFlowViewHostingController.swift @@ -20,6 +20,7 @@ import SwiftUI import ObvTypes import ObvUI +import ObvDesignSystem final class GroupEditionFlowViewHostingController: UIHostingController { @@ -29,7 +30,6 @@ final class GroupEditionFlowViewHostingController: UIHostingController Void) { @@ -85,8 +85,6 @@ struct OwnedGroupEditionFlowView: View { return contactGroup.hasChanged case .editGroupV2AsAdmin: return contactGroup.hasChanged - case .editGroupV2CustomNameAndCustomPhoto: - return contactGroup.hasChanged } } @@ -99,14 +97,13 @@ struct OwnedGroupEditionFlowView: View { switch editionType { case .createGroupV1, .createGroupV2: return NSLocalizedString("CREATE_GROUP", comment: "") case .editGroupV1, .editGroupV2AsAdmin: return NSLocalizedString("PUBLISH_GROUP", comment: "") - case .editGroupV2CustomNameAndCustomPhoto: return NSLocalizedString("SAVE_CUSTOM_GROUP_VALUES", comment: "") } } var actionTitle: String { switch editionType { case .createGroupV1, .createGroupV2: return NSLocalizedString("PUBLISH_NEW_GROUP", comment: "") - case .editGroupV1, .editGroupV2AsAdmin, .editGroupV2CustomNameAndCustomPhoto: return NSLocalizedString("EDIT_GROUP", comment: "") + case .editGroupV1, .editGroupV2AsAdmin: return NSLocalizedString("EDIT_GROUP", comment: "") } } @@ -114,7 +111,6 @@ struct OwnedGroupEditionFlowView: View { switch editionType { case .createGroupV1, .createGroupV2: return NSLocalizedString("ARE_YOU_SURE_CREATE_NEW_OWNED_GROUP", comment: "") case .editGroupV1, .editGroupV2AsAdmin: return NSLocalizedString("ARE_YOU_SURE_PUBLISH_EDITED_OWNED_GROUP", comment: "") - case .editGroupV2CustomNameAndCustomPhoto: assertionFailure(); return "" } } @@ -122,7 +118,6 @@ struct OwnedGroupEditionFlowView: View { switch editionType { case .createGroupV1, .createGroupV2: return NSLocalizedString("CREATE_MY_GROUP", comment: "") case .editGroupV1, .editGroupV2AsAdmin: return NSLocalizedString("PUBLISH_MY_GROUP", comment: "") - case .editGroupV2CustomNameAndCustomPhoto: assertionFailure(); return "" } } @@ -161,9 +156,6 @@ struct OwnedGroupEditionFlowView: View { switch editionType { case .createGroupV1, .createGroupV2, .editGroupV1, .editGroupV2AsAdmin: isPublishActionSheetShown = true - case .editGroupV2CustomNameAndCustomPhoto: - publishingInProgress = true - userConfirmedPublishAction() } }) .padding(.all, 10) @@ -179,10 +171,6 @@ struct OwnedGroupEditionFlowView: View { TextField(LocalizedStringKey("GROUP_NAME"), text: $contactGroup.name) TextField(LocalizedStringKey("GROUP_DESCRIPTION"), text: $contactGroup.description) }.disabled(isPublishActionSheetShown) - case .editGroupV2CustomNameAndCustomPhoto: - Section(header: Text("CHOOSE_GROUP_NICKNAME")) { - TextField(LocalizedStringKey("FORM_NICKNAME"), text: $contactGroup.name) - }.disabled(isPublishActionSheetShown) } if !contactGroup.members.isEmpty { Section(header: Text("CHOSEN_GROUP_MEMBERS")) { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/GroupCreation/UIKit/GroupEditionFlowViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/GroupCreation/UIKit/GroupEditionFlowViewController.swift index c4548ad1..7611ef48 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/GroupCreation/UIKit/GroupEditionFlowViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/GroupCreation/UIKit/GroupEditionFlowViewController.swift @@ -24,6 +24,8 @@ import ObvTypes import ObvCrypto import ObvUI import ObvUICoreData +import ObvSettings +import ObvDesignSystem final class GroupEditionFlowViewController: UIViewController { @@ -34,7 +36,6 @@ final class GroupEditionFlowViewController: UIViewController { case addGroupV1Members(groupUid: UID, currentGroupMembers: Set) case removeGroupV1Members(groupUid: UID, currentGroupMembers: Set) case editGroupV1Details(obvContactGroup: ObvContactGroup) - case editGroupV2CustomNameAndCustomPhoto(groupIdentifier: Data) case editGroupV2AsAdmin(groupIdentifier: Data) case cloneGroup(initialGroupMembers: Set, initialGroupName: String?, initialGroupDescription: String?, initialPhotoURL: URL?) @@ -175,38 +176,6 @@ extension GroupEditionFlowViewController { groupEditionVC.navigationItem.setLeftBarButton(cancelButtonItem, animated: false) flowNavigationController = ObvNavigationController(rootViewController: groupEditionVC) - case .editGroupV2CustomNameAndCustomPhoto(groupIdentifier: let groupIdentifier): - - guard let group = try? PersistedGroupV2.getWithPrimaryKey(ownCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier, within: ObvStack.shared.viewContext) else { - assertionFailure() - dismiss(animated: true) - return - } - let circleConfig = group.circledInitialsConfiguration - let groupColors = (circleConfig.backgroundColor(appTheme: AppTheme.shared, using: ObvMessengerSettings.Interface.identityColorStyle), circleConfig.foregroundColor(appTheme: AppTheme.shared, using: ObvMessengerSettings.Interface.identityColorStyle)) - - let contactGroup = ContactGroup(name: group.customName ?? "", - description: "", // cannot be edited anyway in that case - members: [], - photoURL: group.customPhotoURL, - groupColors: groupColors) - let groupEditionVC = GroupEditionFlowViewHostingController(contactGroup: contactGroup, editionType: .editGroupV2CustomNameAndCustomPhoto) { [weak self] in - assert(Thread.isMainThread) - let customName: String? = contactGroup.name.isEmpty ? nil : contactGroup.name - let customPhotoURL: URL? = (contactGroup.photoURL == group.enginePhotoURL) ? nil : contactGroup.photoURL - ObvMessengerInternalNotification.userWantsToUpdateCustomNameAndGroupV2Photo(groupObjectID: group.typedObjectID, - customName: customName, - customPhotoURL: customPhotoURL) - .postOnDispatchQueue() - self?.flowNavigationController.dismiss(animated: true) - } - - groupEditionVC.title = Strings.groupV2CustomNameAndPhotoEditionTitle - let cancelButtonItem = UIBarButtonItem.forClosing(target: self, action: #selector(cancelButtonTapped)) - groupEditionVC.navigationItem.setLeftBarButton(cancelButtonItem, animated: false) - flowNavigationController = ObvNavigationController(rootViewController: groupEditionVC) - - case .editGroupV2AsAdmin(groupIdentifier: let groupIdentifier): guard let group = try? PersistedGroupV2.getWithPrimaryKey(ownCryptoId: ownedCryptoId, groupIdentifier: groupIdentifier, within: ObvStack.shared.viewContext) else { @@ -308,8 +277,6 @@ extension GroupEditionFlowViewController { break case .editGroupV1Details: doneButtonItem?.isEnabled = groupName != nil && !groupName!.isEmpty - case .editGroupV2CustomNameAndCustomPhoto: - break case .editGroupV2AsAdmin: break } @@ -360,8 +327,6 @@ extension GroupEditionFlowViewController { break case .editGroupV1Details: break - case .editGroupV2CustomNameAndCustomPhoto: - break case .editGroupV2AsAdmin: break } @@ -403,11 +368,6 @@ extension GroupEditionFlowViewController { assertionFailure() return - case .editGroupV2CustomNameAndCustomPhoto: - - assertionFailure() - return - case .editGroupV2AsAdmin: assertionFailure() @@ -505,7 +465,6 @@ extension GroupEditionFlowViewController { case .addGroupV1Members, .removeGroupV1Members, .editGroupV1Details, - .editGroupV2CustomNameAndCustomPhoto, .editGroupV2AsAdmin: break } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/GroupsFlowViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/GroupsFlowViewController.swift index bf60318c..e382a846 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/GroupsFlowViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/GroupsFlowViewController.swift @@ -23,6 +23,7 @@ import ObvEngine import ObvTypes import ObvUI import ObvUICoreData +import ObvDesignSystem final class GroupsFlowViewController: UINavigationController, ObvFlowController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/SingleGroup/SingleGroupViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/SingleGroup/SingleGroupViewController.swift index 70efe05b..6dffc1d6 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/SingleGroup/SingleGroupViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/SingleGroup/SingleGroupViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,12 +23,13 @@ import os.log import ObvEngine import ObvTypes import SwiftUI -import ObvMetaManager import ObvUI import ObvUICoreData +import ObvDesignSystem +import ObvSettings -class SingleGroupViewController: UIViewController { +class SingleGroupViewController: UIViewController, PersonalNoteEditorViewActionsDelegate { // Views @@ -44,6 +45,11 @@ class SingleGroupViewController: UIViewController { private let cloneExplanationLabel = UILabel() private let cloneButton = ObvImageButton() + @IBOutlet weak var personalNoteContainerView: UIView! + private let personalNoteBackgroundView = UIView() + private let personalNoteTitle = UILabel() + private let personalNoteBody = UILabel() + @IBOutlet weak var membersStackView: UIStackView! @IBOutlet weak var membersLabel: UILabel! @IBOutlet weak var membersLeadingPaddingConstraint: NSLayoutConstraint! @@ -112,6 +118,7 @@ class SingleGroupViewController: UIViewController { // Other constants private var notificationTokens = [NSObjectProtocol]() + private var keyValueObservations = [NSKeyValueObservation]() private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: SingleGroupViewController.self)) private let customSpacingBetweenSections: CGFloat = 24.0 @@ -177,6 +184,7 @@ class SingleGroupViewController: UIViewController { deinit { notificationTokens.forEach { NotificationCenter.default.removeObserver($0) } + keyValueObservations.forEach { $0.invalidate() } } } @@ -226,6 +234,26 @@ extension SingleGroupViewController { cloneButton.setTitle(NSLocalizedString("CLONE_THIS_GROUP_V1_TO_GROUP_V2", comment: ""), for: .normal) cloneButton.setImage(.docOnDoc, for: .normal) + personalNoteContainerView.addSubview(personalNoteBackgroundView) + personalNoteBackgroundView.translatesAutoresizingMaskIntoConstraints = false + personalNoteBackgroundView.backgroundColor = AppTheme.shared.colorScheme.secondarySystemBackground + personalNoteBackgroundView.layer.cornerCurve = .continuous + personalNoteBackgroundView.layer.cornerRadius = 16.0 + + personalNoteBackgroundView.addSubview(personalNoteTitle) + personalNoteTitle.translatesAutoresizingMaskIntoConstraints = false + personalNoteTitle.textColor = AppTheme.shared.colorScheme.label + personalNoteTitle.font = UIFont.preferredFont(forTextStyle: .headline) + personalNoteTitle.text = NSLocalizedString("PERSONAL_NOTE", comment: "") + personalNoteTitle.numberOfLines = 1 + + personalNoteBackgroundView.addSubview(personalNoteBody) + personalNoteBody.translatesAutoresizingMaskIntoConstraints = false + personalNoteBody.textColor = AppTheme.shared.colorScheme.secondaryLabel + personalNoteBody.font = UIFont.preferredFont(forTextStyle: .body) + personalNoteBody.text = "-" + personalNoteBody.numberOfLines = 0 + membersLabel.textColor = AppTheme.shared.colorScheme.label membersLabel.text = Strings.members membersLeadingPaddingConstraint.constant = sectionLabelsLeadingPaddingConstraint @@ -327,6 +355,15 @@ extension SingleGroupViewController { observeEngineNotifications() observeIdentityColorStyleDidChangeNotifications() + keyValueObservations.append(persistedContactGroup.observe(\.note, options: [.new]) { object, change in + guard let newPersonalNote = change.newValue else { assertionFailure(); return } + if let newPersonalNote, !newPersonalNote.isEmpty { + self.personalNoteBody.text = newPersonalNote + } else { + self.personalNoteBody.text = "-" + } + }) + // We refresh the group each time we load this view controller if obvContactGroup.groupType == .joined { refreshGroup() @@ -369,25 +406,88 @@ extension SingleGroupViewController { cloneBackgroundView.heightAnchor.constraint(equalToConstant: 0), ]) } + + NSLayoutConstraint.activate([ + personalNoteBackgroundView.leadingAnchor.constraint(equalTo: personalNoteContainerView.leadingAnchor, constant: 16), + personalNoteBackgroundView.trailingAnchor.constraint(equalTo: personalNoteContainerView.trailingAnchor, constant: -16), + personalNoteBackgroundView.topAnchor.constraint(equalTo: personalNoteContainerView.topAnchor, constant: 0), + personalNoteBackgroundView.bottomAnchor.constraint(equalTo: personalNoteContainerView.bottomAnchor, constant: -16), + + personalNoteTitle.topAnchor.constraint(equalTo: personalNoteBackgroundView.topAnchor, constant: 16), + personalNoteTitle.trailingAnchor.constraint(equalTo: personalNoteBackgroundView.trailingAnchor, constant: -16), + personalNoteTitle.bottomAnchor.constraint(equalTo: personalNoteBody.topAnchor, constant: -4), + personalNoteTitle.leadingAnchor.constraint(equalTo: personalNoteBackgroundView.leadingAnchor, constant: 16), + + personalNoteBody.trailingAnchor.constraint(equalTo: personalNoteBackgroundView.trailingAnchor, constant: -16), + personalNoteBody.leadingAnchor.constraint(equalTo: personalNoteBackgroundView.leadingAnchor, constant: 16), + personalNoteBody.bottomAnchor.constraint(equalTo: personalNoteBackgroundView.bottomAnchor, constant: -16), + ]) + } + private func configureNavigationBarTitle() { - var items: [UIBarButtonItem] = [] - - items += [UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.compose, target: self, action: #selector(editGroupButtonTapped))] - + addRightBarButtonMenu() + } + + + @available(iOS 15.0, *) + private func addRightBarButtonMenu() { + + let actionEditNote = UIAction( + title: NSLocalizedString("EDIT_PERSONAL_NOTE", comment: ""), + image: UIImage(systemIcon: .pencil(.circle)), + handler: userWantsToShowPersonalNoteEditor) + + let actionEditGroup = UIAction( + title: NSLocalizedString("EDIT_GROUP", comment: ""), + image: UIImage(systemIcon: .pencil(.circle)), + handler: userWantsToEditGroupNickname) + + let actionCall: UIAction? if !persistedContactGroup.contactIdentities.isEmpty { - items += [BlockBarButtonItem(systemIcon: .phoneFill) { - let groupId = self.persistedContactGroup.typedObjectID - let contactIdentities = self.persistedContactGroup.contactIdentities - ObvMessengerInternalNotification.userWantsToSelectAndCallContacts(contactIDs: contactIdentities.map({ $0.typedObjectID }), groupId: .groupV1(groupId)).postOnDispatchQueue() - }] + actionCall = UIAction( + title: NSLocalizedString("CALL", comment: ""), + image: UIImage(systemIcon: .phoneFill), + handler: { [weak self] _ in + guard let self else { return } + guard let context = persistedContactGroup.managedObjectContext else { return } + context.perform { [weak self] in + guard let self else { return } + guard let ownedCryptoId = persistedContactGroup.ownedIdentity?.cryptoId else { return } + let contactCryptoIds = persistedContactGroup.contactIdentities.map { $0.cryptoId } + guard let groupV1Identifier = try? persistedContactGroup.getGroupV1Identifier() else { assertionFailure(); return } + ObvMessengerInternalNotification.userWantsToSelectAndCallContacts(ownedCryptoId: ownedCryptoId, contactCryptoIds: Set(contactCryptoIds), groupId: .groupV1(groupV1Identifier: groupV1Identifier)) + .postOnDispatchQueue() + } + }) + } else { + actionCall = nil } - - self.navigationItem.rightBarButtonItems = items + + let menu = UIMenu(children: [actionEditNote, actionEditGroup, actionCall].compactMap{ $0 }) + + let barButtonItem = UIBarButtonItem(image: UIImage(systemIcon: .ellipsisCircle), menu: menu) + + navigationItem.rightBarButtonItems = [barButtonItem] } + @available(iOS 15.0, *) + private func userWantsToShowPersonalNoteEditor(_ action: UIAction) { + let personalNote = persistedContactGroup.note + let viewControllerToPresent = PersonalNoteEditorHostingController(model: .init(initialText: personalNote), actions: self) + if let sheet = viewControllerToPresent.sheetPresentationController { + sheet.detents = [.medium()] + sheet.prefersScrollingExpandsWhenScrolledToEdge = false + sheet.prefersEdgeAttachedInCompactHeight = true + sheet.widthFollowsPreferredContentSizeWhenEdgeAttached = true + sheet.preferredCornerRadius = 16.0 + } + present(viewControllerToPresent, animated: true, completion: nil) + } + + override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) @@ -423,8 +523,13 @@ extension SingleGroupViewController { } else { circledInitials.showImage(fromImage: AppTheme.shared.images.groupImage) } - circledInitials.identityColors = AppTheme.shared.groupColors(forGroupUid: persistedContactGroup.groupUid) + circledInitials.identityColors = AppTheme.shared.groupColors(forGroupUid: persistedContactGroup.groupUid, using: ObvMessengerSettings.Interface.identityColorStyle) titleLabel.text = self.persistedContactGroup.displayName + if let newPersonalNote = self.persistedContactGroup.note, !newPersonalNote.isEmpty { + self.personalNoteBody.text = newPersonalNote + } else { + self.personalNoteBody.text = "-" + } } private func configureAndAddMembersTVC() throws { @@ -595,8 +700,18 @@ extension SingleGroupViewController { extension SingleGroupViewController { + private func userWantsToEditGroupNickname(_ action: UIAction) { + editGroupButtonTapped() + } + @objc func editGroupButtonTapped() { + guard let ownedCryptoId = self.persistedContactGroup.ownedIdentity?.cryptoId, + let groupId = try? self.persistedContactGroup.getGroupId() else { + assertionFailure() + return + } + switch obvContactGroup.groupType { case .joined: @@ -608,13 +723,15 @@ extension SingleGroupViewController { textField.text = _self.persistedContactGroup.displayName } guard let textField = alert.textFields?.first else { return } - let removeNickname = UIAlertAction(title: CommonString.removeNickname, style: .destructive) { [weak self] (_) in - self?.removeGroupNameCustom() + let removeNickname = UIAlertAction(title: CommonString.removeNickname, style: .destructive) { _ in + ObvMessengerInternalNotification.userWantsToSetCustomNameOfJoinedGroupV1(ownedCryptoId: ownedCryptoId, groupId: groupId, groupNameCustom: nil) + .postOnDispatchQueue() } let cancelAction = UIAlertAction(title: CommonString.Word.Cancel, style: UIAlertAction.Style.cancel) - let okAction = UIAlertAction(title: CommonString.Word.Ok, style: UIAlertAction.Style.default) { [weak self] (action) in + let okAction = UIAlertAction(title: CommonString.Word.Ok, style: UIAlertAction.Style.default) { _ in if let newGroupName = textField.text, !newGroupName.isEmpty { - self?.setGroupNameCustom(to: newGroupName) + ObvMessengerInternalNotification.userWantsToSetCustomNameOfJoinedGroupV1(ownedCryptoId: ownedCryptoId, groupId: groupId, groupNameCustom: newGroupName) + .postOnDispatchQueue() } } alert.addAction(removeNickname) @@ -633,33 +750,6 @@ extension SingleGroupViewController { } - private func setGroupNameCustom(to groupNameCustom: String) { - guard obvContactGroup.groupType == .joined else { return } - ObvStack.shared.performBackgroundTask { [weak self] (context) in - guard let _self = self else { return } - do { - guard let writablePersistedContactGroupJoined = try PersistedContactGroupJoined.get(objectID: _self.persistedContactGroup.objectID, within: context) as? PersistedContactGroupJoined else { return } - try writablePersistedContactGroupJoined.setGroupNameCustom(to: groupNameCustom) - try context.save(logOnFailure: _self.log) - } catch { - os_log("Could not change group name", log: _self.log, type: .error) - } - } - } - - private func removeGroupNameCustom() { - guard obvContactGroup.groupType == .joined else { return } - ObvStack.shared.performBackgroundTask { [weak self] (context) in - guard let _self = self else { return } - do { - guard let writablePersistedContactGroupJoined = try PersistedContactGroupJoined.get(objectID: _self.persistedContactGroup.objectID, within: context) as? PersistedContactGroupJoined else { return } - try writablePersistedContactGroupJoined.removeGroupNameCustom() - try context.save(logOnFailure: _self.log) - } catch { - os_log("Could not change group name", log: _self.log, type: .error) - } - } - } } @@ -740,10 +830,8 @@ extension SingleGroupViewController { @objc func deleteGroupButtonTapped() { guard obvContactGroup.groupType == .owned else { return } - let NotificationType = MessengerInternalNotification.UserWantsToDeleteOwnedContactGroup.self - let userInfo = [NotificationType.Key.ownedCryptoId: obvContactGroup.ownedIdentity.cryptoId, - NotificationType.Key.groupUid: obvContactGroup.groupUid] as [String: Any] - NotificationCenter.default.post(name: NotificationType.name, object: nil, userInfo: userInfo) + ObvMessengerInternalNotification.userWantsToDeleteOwnedContactGroup(ownedCryptoId: obvContactGroup.ownedIdentity.cryptoId, groupUid: obvContactGroup.groupUid) + .postOnDispatchQueue() } @objc func leaveGroupButtonTapped() { @@ -782,13 +870,19 @@ extension SingleGroupViewController { extension SingleGroupViewController { @objc func acceptPublishedCardButtonTapped() { + guard let obvContactGroup else { return } guard obvContactGroup.groupType == .joined else { return } - do { - try obvEngine.trustPublishedDetailsOfJoinedContactGroup(ownedCryptoId: obvContactGroup.ownedIdentity.cryptoId, - groupUid: obvContactGroup.groupUid, - groupOwner: obvContactGroup.groupOwner.cryptoId) - } catch { - os_log("Could not accept published details of contact group joined", log: log, type: .error) + let obvEngine = self.obvEngine + let log = self.log + Task.detached { + do { + try await obvEngine.trustPublishedDetailsOfJoinedContactGroup( + ownedCryptoId: obvContactGroup.ownedIdentity.cryptoId, + groupUid: obvContactGroup.groupUid, + groupOwner: obvContactGroup.groupOwner.cryptoId) + } catch { + os_log("Could not accept published details of contact group joined: %{public}@", log: log, type: .error, error.localizedDescription) + } } } @@ -993,4 +1087,22 @@ extension SingleGroupViewController { } + + // MARK: - PersonalNoteEditorViewActionsDelegate + + func userWantsToDismissPersonalNoteEditorView() async { + guard presentedViewController is PersonalNoteEditorHostingController else { return } + presentedViewController?.dismiss(animated: true) + } + + + @MainActor + func userWantsToUpdatePersonalNote(with newText: String?) async { + guard let ownedCryptoId = persistedContactGroup.ownedIdentity?.cryptoId else { return } + guard let groupId = try? persistedContactGroup.getGroupId() else { return } + ObvMessengerInternalNotification.userWantsToUpdatePersonalNoteOnGroupV1(ownedCryptoId: ownedCryptoId, groupId: groupId, newText: newText) + .postOnDispatchQueue() + presentedViewController?.dismiss(animated: true) + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/SingleGroup/SingleGroupViewController.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/SingleGroup/SingleGroupViewController.xib index 2bdb17c7..aa80b721 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/SingleGroup/SingleGroupViewController.xib +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/SingleGroup/SingleGroupViewController.xib @@ -1,9 +1,9 @@ - + - + @@ -35,6 +35,7 @@ + @@ -57,7 +58,7 @@ - + @@ -97,8 +98,15 @@ - + + + + + + + + @@ -130,19 +138,19 @@ - + - + - + - + @@ -200,7 +208,7 @@ - + @@ -258,7 +266,7 @@ - + diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/SingleGroupV2/SingleGroupV2ViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/SingleGroupV2/SingleGroupV2ViewController.swift index 02331c72..c47cf86f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/SingleGroupV2/SingleGroupV2ViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Groups/SingleGroupV2/SingleGroupV2ViewController.swift @@ -16,8 +16,6 @@ * You should have received a copy of the GNU Affero General Public License * along with Olvid. If not, see . */ - - import os.log import CoreData @@ -27,16 +25,18 @@ import ObvTypes import ObvUI import SwiftUI import ObvUICoreData +import ObvDesignSystem protocol SingleGroupV2ViewControllerDelegate: AnyObject { func userWantsToDisplay(persistedContact: PersistedObvContactIdentity, within: UINavigationController?) func userWantsToDisplay(persistedDiscussion discussion: PersistedDiscussion) func userWantsToCloneGroup(displayedContactGroupObjectID: TypeSafeManagedObjectID) + func userWantsToInviteContactToOneToOne(ownedCryptoId: ObvCryptoId, contactCryptoIds: Set) async throws } -final class SingleGroupV2ViewController: UIHostingController, SingleGroupV2ViewDelegate, ObvErrorMaker { +final class SingleGroupV2ViewController: UIHostingController, SingleGroupV2ViewDelegate, ObvErrorMaker, PersonalNoteEditorViewActionsDelegate, EditNicknameAndCustomPictureViewControllerDelegate { let persistedGroupV2ObjectID: TypeSafeManagedObjectID let currentOwnedCryptoId: ObvCryptoId @@ -91,16 +91,72 @@ final class SingleGroupV2ViewController: UIHostingController, super.viewDidLoad() title = scratchGroup.displayName - let symbolConfiguration = UIImage.SymbolConfiguration(pointSize: 18.0, weight: .bold) - let image = UIImage(systemIcon: .squareAndPencil, withConfiguration: symbolConfiguration) - let buttonItem = UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(editGroupCustomNameAndCustomPhotoButtonItemTapped)) - buttonItem.tintColor = AppTheme.shared.colorScheme.olvidLight - - navigationItem.rightBarButtonItem = buttonItem + addRightBarButtonMenu() } + private func addRightBarButtonMenu() { + + let actionEditNote = UIAction( + title: NSLocalizedString("EDIT_PERSONAL_NOTE", comment: ""), + image: UIImage(systemIcon: .pencil(.none)), + handler: userWantsToShowPersonalNoteEditor) + + let actionEditCustomDetails = UIAction( + title: NSLocalizedString("EDIT_NICKNAME_AND_CUSTOM_PHOTO", comment: ""), + image: UIImage(systemIcon: .camera(.none)), + handler: userWantsToEditPersonalGroupDetails) + + let menu = UIMenu(children: [actionEditNote, actionEditCustomDetails]) + + let barButtonItem = UIBarButtonItem(image: UIImage(systemIcon: .ellipsisCircle), menu: menu) + + navigationItem.rightBarButtonItems = [barButtonItem] + } + + + private func userWantsToShowPersonalNoteEditor(_ action: UIAction) { + let personalNote = referenceGroup.personalNote + let viewControllerToPresent = PersonalNoteEditorHostingController(model: .init(initialText: personalNote), actions: self) + if let sheet = viewControllerToPresent.sheetPresentationController { + sheet.detents = [.medium()] + sheet.prefersScrollingExpandsWhenScrolledToEdge = false + sheet.prefersEdgeAttachedInCompactHeight = true + sheet.widthFollowsPreferredContentSizeWhenEdgeAttached = true + sheet.preferredCornerRadius = 16.0 + } + present(viewControllerToPresent, animated: true, completion: nil) + } + + + private func userWantsToEditPersonalGroupDetails(_ action: UIAction) { + assert(Thread.isMainThread) + let groupV2Identifier = scratchGroup.groupIdentifier + let defaultPhoto: UIImage? + if let url = scratchGroup.trustedPhotoURL { + defaultPhoto = UIImage(contentsOfFile: url.path) + } else { + defaultPhoto = nil + } + let currentCustomPhoto: UIImage? + if let url = scratchGroup.customPhotoURL { + currentCustomPhoto = UIImage(contentsOfFile: url.path) + } else { + currentCustomPhoto = nil + } + let currentNickname = scratchGroup.customName ?? "" + let vc = EditNicknameAndCustomPictureViewController( + model: .init(identifier: .groupV2(groupV2Identifier: groupV2Identifier), + currentInitials: "", // No initials needed for groups + defaultPhoto: defaultPhoto, + currentCustomPhoto: currentCustomPhoto, + currentNickname: currentNickname), + delegate: self) + present(vc, animated: true) + } + + override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) ObvMessengerInternalNotification.userHasSeenPublishedDetailsOfGroupV2(groupObjectID: persistedGroupV2ObjectID) @@ -124,7 +180,7 @@ final class SingleGroupV2ViewController: UIHostingController, self?.referenceViewContext.mergeChanges(fromContextDidSave: notification) } }, - ObvMessengerCoreDataNotification.observePersistedGroupV2UpdateIsFinished(queue: OperationQueue.main) { [weak self] objectID in + ObvMessengerCoreDataNotification.observePersistedGroupV2UpdateIsFinished(queue: OperationQueue.main) { [weak self] objectID, _, _ in guard let _self = self else { return } guard objectID == _self.scratchGroup.typedObjectID else { return } // At the end of an update of the group in database, we rollback all changes we made. @@ -145,16 +201,6 @@ final class SingleGroupV2ViewController: UIHostingController, } - @objc func editGroupCustomNameAndCustomPhotoButtonItemTapped() { - guard let ownedCryptoId = try? scratchGroup.ownCryptoId else { assertionFailure(); return } - let ownedGroupEditionFlowVC = GroupEditionFlowViewController( - ownedCryptoId: ownedCryptoId, - editionType: .editGroupV2CustomNameAndCustomPhoto(groupIdentifier: scratchGroup.groupIdentifier), - obvEngine: obvEngine) - present(ownedGroupEditionFlowVC, animated: true) - } - - @MainActor required dynamic init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } @@ -200,6 +246,9 @@ final class SingleGroupV2ViewController: UIHostingController, func userWantsToCloneThisGroup() { delegate?.userWantsToCloneThisGroup() } + func userWantsToInviteAllMembersWithChannelToOneToOne() async throws { + try await delegate?.userWantsToInviteAllMembersWithChannelToOneToOne() + } } @@ -269,8 +318,10 @@ final class SingleGroupV2ViewController: UIHostingController, assertionFailure() return } - let contactIDs = group.contactsAmongNonPendingOtherMembers.filter({ $0.isActive }).map({ $0.typedObjectID }) - ObvMessengerInternalNotification.userWantsToSelectAndCallContacts(contactIDs: contactIDs, groupId: .groupV2(persistedGroupV2ObjectID)) + guard let ownedCryptoId = try? group.ownCryptoId else { return } + let contactCryptoIds = group.contactsAmongNonPendingOtherMembers.filter({ $0.isActive }).map({ $0.cryptoId }) + let groupV2Identifier = group.groupIdentifier + ObvMessengerInternalNotification.userWantsToSelectAndCallContacts(ownedCryptoId: ownedCryptoId, contactCryptoIds: Set(contactCryptoIds), groupId: .groupV2(groupV2Identifier: groupV2Identifier)) .postOnDispatchQueue() } catch { assertionFailure(error.localizedDescription) @@ -278,6 +329,30 @@ final class SingleGroupV2ViewController: UIHostingController, } + func userWantsToInviteAllMembersWithChannelToOneToOne() async throws { + let persistedGroupV2ObjectID = self.persistedGroupV2ObjectID + let currentOwnedCryptoId = self.currentOwnedCryptoId + let contactCryptoIds: [ObvCryptoId] = try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<[ObvCryptoId], Error>) in + ObvStack.shared.performBackgroundTask { context in + do { + guard let group = try PersistedGroupV2.get(objectID: persistedGroupV2ObjectID, within: context) else { + throw Self.makeError(message: "Could not find group") + } + guard try group.ownCryptoId == currentOwnedCryptoId else { + throw Self.makeError(message: "Unexpected owned identity") + } + let contactCryptoIds = group.otherMembers + .compactMap { $0.contact?.cryptoId } + continuation.resume(returning: contactCryptoIds) + } catch { + continuation.resume(throwing: error) + } + } + } + try await delegate?.userWantsToInviteContactToOneToOne(ownedCryptoId: currentOwnedCryptoId, contactCryptoIds: Set(contactCryptoIds)) + } + + @MainActor func userWantsToPublishAllModifications() { assert(Thread.isMainThread) @@ -396,19 +471,64 @@ final class SingleGroupV2ViewController: UIHostingController, scratchGroup.removeUpdateInProgress() navigationItem.rightBarButtonItem?.isEnabled = true } + + // MARK: - PersonalNoteEditorViewActionsDelegate + + func userWantsToDismissPersonalNoteEditorView() async { + guard presentedViewController is PersonalNoteEditorHostingController else { return } + presentedViewController?.dismiss(animated: true) + } + + + @MainActor + func userWantsToUpdatePersonalNote(with newText: String?) async { + ObvMessengerInternalNotification.userWantsToUpdatePersonalNoteOnGroupV2(ownedCryptoId: currentOwnedCryptoId, groupIdentifier: referenceGroup.groupIdentifier, newText: newText) + .postOnDispatchQueue() + presentedViewController?.dismiss(animated: true) + } + + + // MARK: - EditNicknameAndCustomPictureViewControllerDelegate + + func userWantsToSaveNicknameAndCustomPicture(controller: EditNicknameAndCustomPictureViewController, identifier: EditNicknameAndCustomPictureView.Model.IdentifierKind, nickname: String, customPhoto: UIImage?) async { + let ownedCryptoId: ObvCryptoId + let groupV2Identifier: GroupV2Identifier + switch identifier { + case .contact: + assertionFailure("The controller is expected to be configured with an identifier corresponding to the group shown by this view controller") + return + case .groupV2(let _groupV2Identifier): + guard scratchGroup.groupIdentifier == _groupV2Identifier else { assertionFailure(); return } + guard let _ownedCryptoId = try? scratchGroup.ownCryptoId else { assertionFailure(); return } + groupV2Identifier = _groupV2Identifier + ownedCryptoId = _ownedCryptoId + } + let sanitizedNickname = nickname.trimmingWhitespacesAndNewlines() + ObvMessengerInternalNotification.userWantsToUpdateCustomNameAndGroupV2Photo( + ownedCryptoId: ownedCryptoId, + groupIdentifier: groupV2Identifier, + customName: sanitizedNickname, + customPhoto: customPhoto) + .postOnDispatchQueue() + controller.dismiss(animated: true) + } + + + func userWantsToDismissEditNicknameAndCustomPictureViewController(controller: EditNicknameAndCustomPictureViewController) async { + controller.dismiss(animated: true) + } + } // MARK: - SingleGroupV2ViewDelegate -protocol SingleGroupV2ViewDelegate: AnyObject { +protocol SingleGroupV2ViewDelegate: AnyObject, GroupMembersViewActionsProtocol { func userWantsToAddGroupMembers() - func rollbackAllModifications() func userWantsToNavigateToPersistedObvContactIdentity(_ contact: PersistedObvContactIdentity) func userWantsToNavigateToDiscussion() func userWantsToCall() async - func userWantsToPublishAllModifications() func userWantsToReplaceTrustedDetailsByPublishedDetails() func userWantsToPerformReDownloadOfGroupV2() func userWantsToLeaveGroup() @@ -423,7 +543,7 @@ protocol SingleGroupV2ViewDelegate: AnyObject { struct SingleGroupV2View: View { @ObservedObject var group: PersistedGroupV2 - let delegate: SingleGroupV2ViewDelegate? + let delegate: SingleGroupV2ViewDelegate @State private var presentedAlertType = AlertType.cannotLeaveGroupAsWeAreTheOnlyAdmin @State private var isAlertPresented = false @@ -441,6 +561,77 @@ struct SingleGroupV2View: View { case confirmDisbandGroup } + private var textViewModelForHeaderOrTrustedDetails: TextView.Model { + .init(titlePart1: group.displayName, + titlePart2: nil, + subtitle: group.displayedDescription, + subsubtitle: nil) + } + + private var profilePictureViewModelContentForHeaderOrTrustedDetails: ProfilePictureView.Model.Content { + .init(text: nil, + icon: .person3Fill, + profilePicture: group.circledInitialsConfiguration.photo, + showGreenShield: group.keycloakManaged, + showRedShield: false) + } + + private var circleAndTitlesViewModelContentForHeaderOrTrustedDetails: CircleAndTitlesView.Model.Content { + .init(textViewModel: textViewModelForHeaderOrTrustedDetails, + profilePictureViewModelContent: profilePictureViewModelContentForHeaderOrTrustedDetails) + } + + private var initialCircleViewModelColorsForHeaderOrTrustedDetails: InitialCircleView.Model.Colors { + .init(background: group.circledInitialsConfiguration.backgroundColor(appTheme: AppTheme.shared), + foreground: group.circledInitialsConfiguration.foregroundColor(appTheme: AppTheme.shared)) + } + + private var circleAndTitlesViewModelForHeader: CircleAndTitlesView.Model { + .init(content: circleAndTitlesViewModelContentForHeaderOrTrustedDetails, + colors: initialCircleViewModelColorsForHeaderOrTrustedDetails, + displayMode: .header, + editionMode: .none) + } + + private var textViewModelForPublishedDetails: TextView.Model { + .init(titlePart1: group.displayNamePublished, + titlePart2: nil, + subtitle: group.displayedDescriptionPublished, + subsubtitle: nil) + } + + private var profilePictureViewModelContentForPublishedDetails: ProfilePictureView.Model.Content { + .init(text: nil, + icon: .person3Fill, + profilePicture: group.circledInitialsConfigurationPublished.photo, + showGreenShield: group.keycloakManaged, + showRedShield: false) + } + + private var circleAndTitlesViewModelContentForPublishedDetails: CircleAndTitlesView.Model.Content { + .init(textViewModel: textViewModelForPublishedDetails, + profilePictureViewModelContent: profilePictureViewModelContentForPublishedDetails) + } + + private var initialCircleViewModelColorsForPublishedDetails: InitialCircleView.Model.Colors { + .init(background: group.circledInitialsConfigurationPublished.backgroundColor(appTheme: AppTheme.shared), + foreground: group.circledInitialsConfigurationPublished.foregroundColor(appTheme: AppTheme.shared)) + } + + private var circleAndTitlesViewModelForPublishedDetails: CircleAndTitlesView.Model { + .init(content: circleAndTitlesViewModelContentForPublishedDetails, + colors: initialCircleViewModelColorsForPublishedDetails, + displayMode: .normal, + editionMode: .none) + } + + private var circleAndTitlesViewModelForTrustedDetails: CircleAndTitlesView.Model { + .init(content: circleAndTitlesViewModelContentForHeaderOrTrustedDetails, + colors: initialCircleViewModelColorsForHeaderOrTrustedDetails, + displayMode: .normal, + editionMode: .none) + } + var body: some View { ZStack { Color(AppTheme.shared.colorScheme.systemBackground) @@ -451,22 +642,8 @@ struct SingleGroupV2View: View { // Header - - CircleAndTitlesView(titlePart1: group.displayName, - titlePart2: nil, - subtitle: nil, - subsubtitle: nil, - circleBackgroundColor: group.circledInitialsConfiguration.backgroundColor(appTheme: AppTheme.shared), - circleTextColor: group.circledInitialsConfiguration.foregroundColor(appTheme: AppTheme.shared), - circledTextView: nil, - systemImage: .person3Fill, - profilePicture: group.circledInitialsConfiguration.photo, - alignment: .top, - showGreenShield: group.keycloakManaged, - showRedShield: false, - editionMode: .none, - displayMode: .header) - .padding(.top, 16) + CircleAndTitlesView(model: circleAndTitlesViewModelForHeader) + .padding(.top, 16) // Chat and call buttons @@ -475,23 +652,28 @@ struct SingleGroupV2View: View { OlvidButton(style: .standardWithBlueText, title: Text(CommonString.Word.Chat), systemIcon: .textBubbleFill, - action: { delegate?.userWantsToNavigateToDiscussion() }) + action: { delegate.userWantsToNavigateToDiscussion() }) OlvidButton(style: .standardWithBlueText, title: Text(CommonString.Word.Call), systemIcon: .phoneFill, - action: { Task { await delegate?.userWantsToCall() } }) + action: { Task { await delegate.userWantsToCall() } }) } .padding(.top, 16) + // Personal note viewer + + if let personalNote = group.personalNote, !personalNote.isEmpty { + PersonalNoteView(model: group) + .padding(.top, 16) + } + // View shown when an update is in progress if group.updateInProgress { ObvCardView(padding: 0) { HStack(alignment: .top, spacing: 8) { - if #available(iOS 14, *) { - ProgressView() - .progressViewStyle(.circular) - } + ProgressView() + .progressViewStyle(.circular) VStack(alignment: .leading, spacing: 6) { Text("GROUP_UPDATE_IN_PROGRESS_EXPLANATION_TITLE") .font(.system(.headline, design: .rounded)) @@ -515,26 +697,14 @@ struct SingleGroupV2View: View { VStack(alignment: .leading, spacing: 0) { TopLeftTextForCardView(text: Text("New")) VStack(alignment: .leading, spacing: 0) { - CircleAndTitlesView(titlePart1: group.displayNamePublished, - titlePart2: nil, - subtitle: group.displayedDescriptionPublished, - subsubtitle: nil, - circleBackgroundColor: group.circledInitialsConfigurationPublished.backgroundColor(appTheme: AppTheme.shared), - circleTextColor: group.circledInitialsConfigurationPublished.foregroundColor(appTheme: AppTheme.shared), - circledTextView: nil, - systemImage: .person3Fill, - profilePicture: group.circledInitialsConfigurationPublished.photo, - showGreenShield: group.keycloakManaged, - showRedShield: false, - editionMode: .none, - displayMode: .normal) + CircleAndTitlesView(model: circleAndTitlesViewModelForPublishedDetails) HStack { Spacer() } Text("GROUP_V2_PUBLISHED_DETAILS_EXPLANATION_\(UIDevice.current.name)") .font(.callout) .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) .padding(.top, 16) OlvidButton(olvidButtonAction: OlvidButtonAction(action: { - delegate?.userWantsToReplaceTrustedDetailsByPublishedDetails() + delegate.userWantsToReplaceTrustedDetailsByPublishedDetails() }, title: Text("UPDATE_DETAILS"), systemIcon: .checkmarkCircleFill)) .padding(.top, 16) } @@ -550,19 +720,7 @@ struct SingleGroupV2View: View { VStack(alignment: .leading, spacing: 0) { TopLeftTextForCardView(text: Text("ON_MY_DEVICE_\(UIDevice.current.name)")) VStack(alignment: .leading, spacing: 0) { - CircleAndTitlesView(titlePart1: group.displayName, - titlePart2: nil, - subtitle: group.displayedDescription, - subsubtitle: nil, - circleBackgroundColor: group.circledInitialsConfiguration.backgroundColor(appTheme: AppTheme.shared), - circleTextColor: group.circledInitialsConfiguration.foregroundColor(appTheme: AppTheme.shared), - circledTextView: nil, - systemImage: .person3Fill, - profilePicture: group.circledInitialsConfiguration.photo, - showGreenShield: group.keycloakManaged, - showRedShield: false, - editionMode: .none, - displayMode: .normal) + CircleAndTitlesView(model: circleAndTitlesViewModelForTrustedDetails) HStack { Spacer() } } .padding() @@ -576,8 +734,7 @@ struct SingleGroupV2View: View { otherMembers: Array(group.otherMembersSorted), delegate: delegate, updateInProgress: group.updateInProgress, - rollbackAllModifications: delegate?.rollbackAllModifications, - publishAllModifications: delegate?.userWantsToPublishAllModifications) + actions: delegate) .padding(.bottom, 16) Spacer() @@ -586,11 +743,11 @@ struct SingleGroupV2View: View { // Button for manual resync (always enabled) - OlvidButton(style: .standard, title: Text("MANUAL_RESYNC_OF_GROUP_V2"), systemIcon: .arrowTriangle2CirclepathCircleFill) { delegate?.userWantsToPerformReDownloadOfGroupV2() } - + OlvidButton(style: .standardWithBlueText, title: Text("MANUAL_RESYNC_OF_GROUP_V2"), systemIcon: .arrowTriangle2CirclepathCircleFill) { delegate.userWantsToPerformReDownloadOfGroupV2() } + // Button for cloning the group - OlvidButton(style: .standard, title: Text("CLONE_THIS_GROUP"), systemIcon: .docOnDoc) { delegate?.userWantsToCloneThisGroup() } + OlvidButton(style: .standardWithBlueText, title: Text("CLONE_THIS_GROUP"), systemIcon: .docOnDoc) { delegate.userWantsToCloneThisGroup() } .disabled(group.updateInProgress) // Button for leaving the group @@ -646,7 +803,7 @@ struct SingleGroupV2View: View { message: Text("SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_LEAVE_GROUP_MESSAGE"), buttons: [ .destructive(Text("SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_LEAVE_GROUP_BUTTON_TITLE")) { - delegate?.userWantsToLeaveGroup() + delegate.userWantsToLeaveGroup() }, .cancel() ]) @@ -655,7 +812,7 @@ struct SingleGroupV2View: View { message: Text("SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_DISBAND_GROUP_MESSAGE"), buttons: [ .destructive(Text("SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_DISBAND_GROUP_BUTTON_TITLE")) { - delegate?.userWantsToPerformDisbandOfGroupV2() + delegate.userWantsToPerformDisbandOfGroupV2() }, .cancel() ]) @@ -666,134 +823,207 @@ struct SingleGroupV2View: View { } + + + +// MARK: - GroupMembersView + +protocol GroupMembersViewActionsProtocol { + + func rollbackAllModifications() + func userWantsToPublishAllModifications() + func userWantsToInviteAllMembersWithChannelToOneToOne() async throws + +} + + fileprivate struct GroupMembersView: View { let ownedIdentityIsAdmin: Bool let otherMembers: [PersistedGroupV2Member] let delegate: SingleGroupV2ViewDelegate? let updateInProgress: Bool - let rollbackAllModifications: (() -> Void)? // Expected to be non nil - let publishAllModifications: (() -> Void)? // Expected to be non nil + let actions: GroupMembersViewActionsProtocol // Expected to be non nil +// let rollbackAllModifications: (() -> Void)? // Expected to be non nil +// let publishAllModifications: (() -> Void)? // Expected to be non nil @State private var editMode = false @State private var tappedContact: PersistedObvContactIdentity? = nil + @State private var isInviteAllAlertPresented = false + @State private var hudCategory: HUDView.Category? + + private func userWantsToInviteAllGroupMembersToOneToOne() { + withAnimation { + hudCategory = .progress + } + Task { + do { + try await actions.userWantsToInviteAllMembersWithChannelToOneToOne() + await dismissHUD(success: true) + } catch { + await dismissHUD(success: false) + } + } + } + + + @MainActor + private func dismissHUD(success: Bool) async { + withAnimation { hudCategory = success ? .checkmark : .xmark } + try? await Task.sleep(for: 2) + withAnimation { hudCategory = nil } + } + + var body: some View { - HStack { - Text("OTHER_GROUP_MEMBERS") - .font(.system(.body, design: .rounded)) - .fontWeight(.bold) - Spacer() - } - .padding(.top, 16) - - ObvCardView(padding: 0) { - VStack(alignment: .leading, spacing: 0) { - - if ownedIdentityIsAdmin { - - if !editMode { - - HStack { - - OlvidButton(olvidButtonAction: OlvidButtonAction( - action: { withAnimation { editMode.toggle() } }, - title: Text("EDIT_GROUP_MEMBERS_AS_ADMINISTRATOR_BUTTON_TITLE"), - systemIcon: .person2Circle)) - .disabled(updateInProgress) - - OlvidButton(olvidButtonAction: OlvidButtonAction( - action: { delegate?.userWantsToEditDetailsOfGroupAsAdmin() }, - title: Text("EDIT_GROUP_DETAILS_AS_ADMINISTRATOR_BUTTON_TITLE"), - systemIcon: .pencil(.circle))) - .disabled(updateInProgress) - - } - - } else { - - VStack { - OlvidButton(olvidButtonAction: OlvidButtonAction( - action: { delegate?.userWantsToAddGroupMembers() }, - title: Text("ADD_GROUP_MEMBERS"), - systemIcon: .personCropCircleBadgePlus)) - HStack { - OlvidButton(style: .red, - title: Text(CommonString.Word.Cancel), - systemIcon: .xmarkCircle, - action: { withAnimation { rollbackAllModifications?(); editMode.toggle() } }) - .transition(.asymmetric(insertion: .move(edge: .leading), removal: .scale)) - OlvidButton(style: .green, - title: Text("PUBLISH"), - systemIcon: .checkmarkCircle, - action: { withAnimation { publishAllModifications?(); editMode.toggle() } }) - .disabled(updateInProgress) - .transition(.asymmetric(insertion: .scale, removal: .scale)) - } - } - - } - - Divider() - .padding(.vertical, 16) - + ZStack { + + VStack { + + HStack { + Text("OTHER_GROUP_MEMBERS") + .font(.system(.body, design: .rounded)) + .fontWeight(.bold) + Spacer() } + .padding(.top, 16) - if otherMembers.isEmpty { - - if ownedIdentityIsAdmin { - - HStack { - Text("ADD_MEMBER_BY_TAPPING_EDIT_GROUP_MEMBERS_BUTTON") - .font(.callout) - .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) - Spacer() - } - - } else { + ObvCardView(padding: 0) { + VStack(alignment: .leading, spacing: 0) { - HStack { - Text("NO_OTHER_MEMBER_FOR_NOW") - .font(.callout) - .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) - Spacer() + if ownedIdentityIsAdmin { + + if !editMode { + + HStack { + + OlvidButton(olvidButtonAction: OlvidButtonAction( + action: { withAnimation { editMode.toggle() } }, + title: Text("EDIT_GROUP_MEMBERS_AS_ADMINISTRATOR_BUTTON_TITLE"), + systemIcon: .person2Circle)) + .disabled(updateInProgress) + + OlvidButton(olvidButtonAction: OlvidButtonAction( + action: { delegate?.userWantsToEditDetailsOfGroupAsAdmin() }, + title: Text("EDIT_GROUP_DETAILS_AS_ADMINISTRATOR_BUTTON_TITLE"), + systemIcon: .pencil(.circle))) + .disabled(updateInProgress) + + } + + } else { + + VStack { + OlvidButton(olvidButtonAction: OlvidButtonAction( + action: { delegate?.userWantsToAddGroupMembers() }, + title: Text("ADD_GROUP_MEMBERS"), + systemIcon: .personCropCircleBadgePlus)) + HStack { + OlvidButton(style: .red, + title: Text(CommonString.Word.Cancel), + systemIcon: .xmarkCircle, + action: { withAnimation { actions.rollbackAllModifications(); editMode.toggle() } }) + .transition(.asymmetric(insertion: .move(edge: .leading), removal: .scale)) + OlvidButton(style: .green, + title: Text("PUBLISH"), + systemIcon: .checkmarkCircle, + action: { withAnimation { actions.userWantsToPublishAllModifications(); editMode.toggle() } }) + .disabled(updateInProgress) + .transition(.asymmetric(insertion: .scale, removal: .scale)) + } + } + + } + + Divider() + .padding(.vertical, 16) + } - } - - } else { - - ForEach(otherMembers) { otherMember in - SingleGroupMemberView(otherMember: otherMember, editMode: editMode, selected: tappedContact != nil && tappedContact == otherMember.contact) - .onTapGesture { - guard !editMode else { return } - guard let contact = otherMember.contact else { return } - withAnimation { - tappedContact = contact + if otherMembers.isEmpty { + + if ownedIdentityIsAdmin { + + HStack { + Text("ADD_MEMBER_BY_TAPPING_EDIT_GROUP_MEMBERS_BUTTON") + .font(.callout) + .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) + Spacer() } - DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(200)) { - delegate?.userWantsToNavigateToPersistedObvContactIdentity(contact) + + } else { + + HStack { + Text("NO_OTHER_MEMBER_FOR_NOW") + .font(.callout) + .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) + Spacer() } + } - .onAppear { - withAnimation { - DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(200)) { - tappedContact = nil + + } else { + + ForEach(otherMembers) { otherMember in + SingleGroupMemberView(otherMember: otherMember, editMode: editMode, selected: tappedContact != nil && tappedContact == otherMember.contact) + .onTapGesture { + guard !editMode else { return } + guard let contact = otherMember.contact else { return } + withAnimation { + tappedContact = contact + } + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(200)) { + delegate?.userWantsToNavigateToPersistedObvContactIdentity(contact) + } + } + .onAppear { + withAnimation { + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(200)) { + tappedContact = nil + } + } } + if otherMember != otherMembers.last { + Divider() + .padding(.vertical, 16) + .padding(.leading, 76) } } - if otherMember != otherMembers.last { - Divider() - .padding(.vertical, 16) - .padding(.leading, 76) + + if !editMode { + OlvidButton(style: .blue, title: Text("INVITE_ALL_GROUP_MEMBERS_BUTTON_TITLE"), systemIcon: .personCropCircleBadgePlus) { + isInviteAllAlertPresented.toggle() + } + .padding(.top) + .confirmationDialog( + "INVITE_ALL_GROUP_MEMBERS_BUTTON_TITLE", + isPresented: $isInviteAllAlertPresented + ) { + Button(action: userWantsToInviteAllGroupMembersToOneToOne ) { + Label("INVITE_ALL_GROUP_MEMBERS_BUTTON_TITLE", systemIcon: .personCropCircleBadgePlus) + } + Button("Cancel", role: .cancel, action: {}) + } message: { + Text("INVITE_ALL_GROUP_MEMBERS_EXPLANATION") + } + + } + } - } - + + }.padding() } - - }.padding() + + } // End of VStack + + if let hudCategory { + HUDView(category: hudCategory) + } + } + } } @@ -818,15 +1048,15 @@ struct SingleGroupMemberView: View { } } - private var circledTextView: Text? { - let string = otherMember.displayedFirstName ?? otherMember.displayedCustomDisplayNameOrLastName - if let char = string?.first { - return Text(String(char)) - } else { - return nil - } + + private var circleAndTitlesViewModel: CircleAndTitlesView.Model { + .init(content: otherMember.circleAndTitlesViewModelContent, + colors: otherMember.initialCircleViewModelColors, + displayMode: .normal, + editionMode: .none) } + var body: some View { HStack(alignment: .center, spacing: 0) { OlvidButtonSquare(style: .redOnTransparentBackground, systemIcon: .trash, action: { @@ -836,19 +1066,7 @@ struct SingleGroupMemberView: View { }) .opacity(editMode ? 1.0 : 0.0) .frame(width: editMode ? nil : 0.0, height: editMode ? nil : 0.0) - CircleAndTitlesView(titlePart1: otherMember.displayedFirstName, - titlePart2: otherMember.displayedCustomDisplayNameOrLastName, - subtitle: otherMember.displayedPosition, - subsubtitle: otherMember.displayedCompany, - circleBackgroundColor: otherMember.contact?.circledInitialsConfiguration.backgroundColor(appTheme: AppTheme.shared), - circleTextColor: otherMember.contact?.circledInitialsConfiguration.foregroundColor(appTheme: AppTheme.shared), - circledTextView: circledTextView, - systemImage: .person, - profilePicture: otherMember.displayedProfilePicture, - showGreenShield: otherMember.isKeycloakManaged, - showRedShield: false, - editionMode: .none, - displayMode: .normal) + CircleAndTitlesView(model: circleAndTitlesViewModel) Spacer() VStack(alignment: .center, spacing: 0) { Toggle("", isOn: Binding( @@ -866,6 +1084,9 @@ struct SingleGroupMemberView: View { .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) } .frame(width: 60) // Heuristic, width of "Not admin" + if let persistedContact = otherMember.contact { + SpinnerViewForContactCell(model: persistedContact) + } if !editMode { ObvChevron(selected: selected) } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/AllInvitationsHostingController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/AllInvitationsHostingController.swift new file mode 100644 index 00000000..e078fdbc --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/AllInvitationsHostingController.swift @@ -0,0 +1,89 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import ObvTypes +import ObvUICoreData + + +protocol AllInvitationsHostingControllerDelegate: AnyObject { + func userWantsToRespondToDialog(controller: AllInvitationsHostingController, obvDialog: ObvDialog) async throws + func userWantsToAbortProtocol(controller: AllInvitationsHostingController, obvDialog: ObvTypes.ObvDialog) async throws + func userWantsToDeleteDialog(controller: AllInvitationsHostingController, obvDialog: ObvTypes.ObvDialog) async throws + func userWantsToDiscussWithContact(controller: AllInvitationsHostingController, ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) async throws +} + + +final class AllInvitationsHostingController: UIHostingController>, AllInvitationsViewActionsProtocol { + + private weak var delegate: AllInvitationsHostingControllerDelegate? + + init(ownedIdentity: PersistedObvOwnedIdentity, delegate: AllInvitationsHostingControllerDelegate) { + let actions = AllInvitationsViewActions() + let view = AllInvitationsView(actions: actions, model: ownedIdentity) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // AllInvitationsViewActionsProtocol + + func userWantsToRespondToDialog(_ obvDialog: ObvDialog) async throws { + try await delegate?.userWantsToRespondToDialog(controller: self, obvDialog: obvDialog) + } + + func userWantsToAbortProtocol(associatedTo obvDialog: ObvTypes.ObvDialog) async throws { + try await delegate?.userWantsToAbortProtocol(controller: self, obvDialog: obvDialog) + } + + func userWantsToDeleteDialog(_ obvDialog: ObvDialog) async throws { + try await delegate?.userWantsToDeleteDialog(controller: self, obvDialog: obvDialog) + } + + func userWantsToDiscussWithContact(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) async throws { + try await delegate?.userWantsToDiscussWithContact(controller: self, ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) + } +} + + +private final class AllInvitationsViewActions: AllInvitationsViewActionsProtocol { + + weak var delegate: AllInvitationsViewActionsProtocol? + + func userWantsToRespondToDialog(_ obvDialog: ObvDialog) async throws { + try await delegate?.userWantsToRespondToDialog(obvDialog) + } + + func userWantsToAbortProtocol(associatedTo obvDialog: ObvTypes.ObvDialog) async throws { + try await delegate?.userWantsToAbortProtocol(associatedTo: obvDialog) + } + + func userWantsToDeleteDialog(_ obvDialog: ObvDialog) async throws { + try await delegate?.userWantsToDeleteDialog(obvDialog) + } + + func userWantsToDiscussWithContact(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) async throws { + try await delegate?.userWantsToDiscussWithContact(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/AllInvitationsViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/AllInvitationsViewController.swift new file mode 100644 index 00000000..66cd810b --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/AllInvitationsViewController.swift @@ -0,0 +1,119 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import ObvUICoreData +import ObvTypes + + +protocol AllInvitationsViewControllerDelegate: AnyObject { + func userWantsToRespondToDialog(controller: AllInvitationsViewController, obvDialog: ObvDialog) async throws + func userWantsToAbortProtocol(controller: AllInvitationsViewController, obvDialog: ObvTypes.ObvDialog) async throws + func userWantsToDeleteDialog(controller: AllInvitationsViewController, obvDialog: ObvTypes.ObvDialog) async throws + func userWantsToDiscussWithContact(controller: AllInvitationsViewController, ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) async throws +} + + +final class AllInvitationsViewController: ShowOwnedIdentityButtonUIViewController, ViewControllerWithEllipsisCircleRightBarButtonItem { + + weak var delegate: AllInvitationsViewControllerDelegate? + private var viewDidLoadWasCalled = false + + init(ownedCryptoId: ObvCryptoId) { + super.init(ownedCryptoId: ownedCryptoId, logCategory: "AllInvitationsViewController") + self.setTitle(CommonString.Word.Invitations) + } + + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + viewDidLoadWasCalled = true + // Set navigationItem.title instead of title: this prevents showing a title on the tabbar button item + navigationItem.title = CommonString.Word.Invitations + navigationItem.rightBarButtonItem = getConfiguredEllipsisCircleRightBarButtonItem() + addAndConfigureAllInvitationsHostingController() + definesPresentationContext = true + } + + + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + ObvMessengerInternalNotification.allPersistedInvitationCanBeMarkedAsOld(ownedCryptoId: currentOwnedCryptoId) + .postOnDispatchQueue() + } + + // MARK: - Switching current owned identity + + @MainActor + override func switchCurrentOwnedCryptoId(to newOwnedCryptoId: ObvCryptoId) async { + await super.switchCurrentOwnedCryptoId(to: newOwnedCryptoId) + guard viewDidLoadWasCalled else { return } + for multipleContactsHostingViewController in children.compactMap({ $0 as? AllInvitationsHostingController }) { + multipleContactsHostingViewController.view.removeFromSuperview() + multipleContactsHostingViewController.willMove(toParent: nil) + multipleContactsHostingViewController.removeFromParent() + multipleContactsHostingViewController.didMove(toParent: nil) + } + addAndConfigureAllInvitationsHostingController() + } + + + /// Called the first time the view is loaded, and each time the user switches her owned identity. + private func addAndConfigureAllInvitationsHostingController() { + if let ownedIdentity = try? PersistedObvOwnedIdentity.get(cryptoId: currentOwnedCryptoId, within: ObvStack.shared.viewContext) { + let vc = AllInvitationsHostingController(ownedIdentity: ownedIdentity, delegate: self) + vc.willMove(toParent: self) + self.addChild(vc) + vc.didMove(toParent: self) + vc.view.translatesAutoresizingMaskIntoConstraints = false + self.view.insertSubview(vc.view, at: 0) + self.view.pinAllSidesToSides(of: vc.view) + } + } + +} + + +// MARK: - AllInvitationsHostingControllerDelegate + +extension AllInvitationsViewController: AllInvitationsHostingControllerDelegate { + + func userWantsToRespondToDialog(controller: AllInvitationsHostingController, obvDialog: ObvDialog) async throws { + try await delegate?.userWantsToRespondToDialog(controller: self, obvDialog: obvDialog) + } + + + func userWantsToAbortProtocol(controller: AllInvitationsHostingController, obvDialog: ObvDialog) async throws { + try await delegate?.userWantsToAbortProtocol(controller: self, obvDialog: obvDialog) + } + + + func userWantsToDeleteDialog(controller: AllInvitationsHostingController, obvDialog: ObvDialog) async throws { + try await delegate?.userWantsToDeleteDialog(controller: self, obvDialog: obvDialog) + } + + func userWantsToDiscussWithContact(controller: AllInvitationsHostingController, ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) async throws { + try await delegate?.userWantsToDiscussWithContact(controller: self, ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/AcceptGroupInviteCollectionViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/AcceptGroupInviteCollectionViewCell.swift deleted file mode 100644 index a3e04fb5..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/AcceptGroupInviteCollectionViewCell.swift +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit - -class AcceptGroupInviteCollectionViewCell: ObvCardCollectionViewCell, InvitationCollectionCell, CellContainingHeaderView, CellContainingTwoButtonsView, CellContainingOneColumnView { - - static let nibName = "AcceptGroupInviteCollectionViewCell" - static let identifier = "AcceptGroupInviteCollectionViewCell" - - // Views - - @IBOutlet weak var placeholderView: UIView! - @IBOutlet weak var topPlaceholderView: UIView! - @IBOutlet weak var middlePlaceholderView: UIView! - @IBOutlet weak var bottomPlaceholderView: UIView! - - // Constraints - - private var widthConstraint: NSLayoutConstraint! - - // Subviews set in awakeFromNib - - var cellHeaderView: CellHeaderView! - var oneColumnView: OneColumnView! - var twoButtonsView: TwoButtonsView! - -} - - -// MARK: - awakeFromNib - -extension AcceptGroupInviteCollectionViewCell { - - override func awakeFromNib() { - super.awakeFromNib() - self.accessibilityIdentifier = "AcceptGroupInviteCollectionViewCell" - self.contentView.translatesAutoresizingMaskIntoConstraints = false - backgroundColor = AppTheme.shared.colorScheme.tertiarySystemBackground - self.widthConstraint = self.contentView.widthAnchor.constraint(equalToConstant: 50.0) - self.widthConstraint.isActive = true - configurePlaceholdersAttributes() - instantiateAndPlaceTheCellHeaderView() - instantiateAndPlaceTheTwoColumnsView() - instantiateAndPlaceTheTwoButtonsView() - } - - - private func configurePlaceholdersAttributes() { - placeholderView.backgroundColor = .clear - topPlaceholderView.backgroundColor = .clear - middlePlaceholderView.backgroundColor = .clear - bottomPlaceholderView.backgroundColor = .clear - } - - - private func instantiateAndPlaceTheCellHeaderView() { - cellHeaderView = (Bundle.main.loadNibNamed(CellHeaderView.nibName, owner: nil, options: nil)!.first as! CellHeaderView) - topPlaceholderView.addSubview(cellHeaderView) - topPlaceholderView.pinAllSidesToSides(of: cellHeaderView) - } - - - private func instantiateAndPlaceTheTwoColumnsView() { - oneColumnView = (Bundle.main.loadNibNamed(OneColumnView.nibName, owner: nil, options: nil)!.first as! OneColumnView) - middlePlaceholderView.addSubview(oneColumnView) - middlePlaceholderView.pinAllSidesToSides(of: oneColumnView) - } - - - private func instantiateAndPlaceTheTwoButtonsView() { - twoButtonsView = Bundle.main.loadNibNamed(TwoButtonsView.nibName, owner: nil, options: nil)!.first as! TwoButtonsView? - bottomPlaceholderView?.addSubview(twoButtonsView!) - bottomPlaceholderView?.pinAllSidesToSides(of: twoButtonsView!) - } - - override func prepareForReuse() { - super.prepareForReuse() - cellHeaderView.prepareForReuse() - unfreeze() - } - - func freeze() { - self.twoButtonsView.button1?.isEnabled = false - } - - func unfreeze() { - self.twoButtonsView.button1?.isEnabled = true - } - -} - - -// MARK: - Setting the width and accessing the size - -extension AcceptGroupInviteCollectionViewCell { - - func setWidth(to newWidth: CGFloat) { - widthConstraint.constant = newWidth - setNeedsLayout() - } - - override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes { - setNeedsLayout() - layoutIfNeeded() - let size = contentView.systemLayoutSizeFitting(layoutAttributes.size) - var newFrame = layoutAttributes.frame - newFrame.size = size - layoutAttributes.frame = newFrame - return layoutAttributes - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/AcceptGroupInviteCollectionViewCell.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/AcceptGroupInviteCollectionViewCell.xib deleted file mode 100644 index 7b1b1c0b..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/AcceptGroupInviteCollectionViewCell.xib +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/Base.lproj/HelpCardCollectionViewCell.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/Base.lproj/HelpCardCollectionViewCell.xib deleted file mode 100644 index fef17b3d..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/Base.lproj/HelpCardCollectionViewCell.xib +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/ButtonsCardCollectionViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/ButtonsCardCollectionViewCell.swift deleted file mode 100644 index cc73d0f2..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/ButtonsCardCollectionViewCell.swift +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit - -class ButtonsCardCollectionViewCell: ObvCardCollectionViewCell, InvitationCollectionCell, CellContainingHeaderView, CellContainingTwoButtonsView { - - static let nibName = "ButtonsCardCollectionViewCell" - static let identifier = "buttonsCardCollectionViewCellIdentifier" - - // Views - - @IBOutlet weak var placeholderView: UIView! - @IBOutlet weak var topPlaceholderView: UIView! - @IBOutlet weak var bottomPlaceholderView: UIView! - - // Constraints - - private var widthConstraint: NSLayoutConstraint! - - // Subviews set in awakeFromNib - - var cellHeaderView: CellHeaderView! - var twoButtonsView: TwoButtonsView! - -} - - -// MARK: - awakeFromNib - -extension ButtonsCardCollectionViewCell { - - override func awakeFromNib() { - super.awakeFromNib() - self.accessibilityIdentifier = "ButtonsCardCollectionViewCell" - self.contentView.translatesAutoresizingMaskIntoConstraints = false - backgroundColor = AppTheme.shared.colorScheme.tertiarySystemBackground - self.widthConstraint = self.contentView.widthAnchor.constraint(equalToConstant: 50.0) - self.widthConstraint.isActive = true - instantiateAndPlaceTheCellHeaderView() - instantiateAndPlaceTheTwoButtonsView() - } - - private func instantiateAndPlaceTheCellHeaderView() { - topPlaceholderView.backgroundColor = .clear - cellHeaderView = (Bundle.main.loadNibNamed(CellHeaderView.nibName, owner: nil, options: nil)!.first as! CellHeaderView) - topPlaceholderView.addSubview(cellHeaderView) - topPlaceholderView.pinAllSidesToSides(of: cellHeaderView) - } - - private func instantiateAndPlaceTheTwoButtonsView() { - bottomPlaceholderView?.backgroundColor = .clear - twoButtonsView = (Bundle.main.loadNibNamed(TwoButtonsView.nibName, owner: nil, options: nil)!.first as! TwoButtonsView) - bottomPlaceholderView.addSubview(twoButtonsView) - bottomPlaceholderView.pinAllSidesToSides(of: twoButtonsView) - } - - override func prepareForReuse() { - super.prepareForReuse() - cellHeaderView.prepareForReuse() - } - -} - -// MARK: - Setting the width and accessing the size - -extension ButtonsCardCollectionViewCell { - - func setWidth(to newWidth: CGFloat) { - widthConstraint.constant = newWidth - } - - override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes { - setNeedsLayout() - layoutIfNeeded() - let size = contentView.systemLayoutSizeFitting(layoutAttributes.size) - var newFrame = layoutAttributes.frame - newFrame.size = size - layoutAttributes.frame = newFrame - return layoutAttributes - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/ButtonsCardCollectionViewCell.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/ButtonsCardCollectionViewCell.xib deleted file mode 100644 index a7cf963f..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/ButtonsCardCollectionViewCell.xib +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/HelpCardCollectionViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/HelpCardCollectionViewCell.swift deleted file mode 100644 index 1a6d6aa8..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/HelpCardCollectionViewCell.swift +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit - - -class HelpCardCollectionViewCell: ObvCardCollectionViewCell, InvitationCollectionCell { - - static let nibName = "HelpCardCollectionViewCell" - static let identifier = "HelpCardCollectionViewCellIdentifier" - - private var widthConstraint: NSLayoutConstraint! - @IBOutlet weak var titleLabel: UILabel! - @IBOutlet weak var explanationLabel: UILabel! - -} - -// MARK: - awakeFromNib - -extension HelpCardCollectionViewCell { - - override func awakeFromNib() { - super.awakeFromNib() - self.contentView.translatesAutoresizingMaskIntoConstraints = false - backgroundColor = AppTheme.shared.colorScheme.tertiarySystemBackground - self.widthConstraint = self.contentView.widthAnchor.constraint(equalToConstant: 50.0) - self.widthConstraint.isActive = true - - titleLabel.textColor = AppTheme.shared.colorScheme.label - explanationLabel.textColor = AppTheme.shared.colorScheme.secondaryLabel - } -} - -// MARK: - Configuring the cell - -extension HelpCardCollectionViewCell { - - func setWidth(to newWidth: CGFloat) { - widthConstraint.constant = newWidth - } - - override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes { - setNeedsLayout() - layoutIfNeeded() - let size = contentView.systemLayoutSizeFitting(layoutAttributes.size) - var newFrame = layoutAttributes.frame - newFrame.size = size - layoutAttributes.frame = newFrame - return layoutAttributes - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/MultipleButtonsCollectionViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/MultipleButtonsCollectionViewCell.swift deleted file mode 100644 index 5cca0bcc..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/MultipleButtonsCollectionViewCell.swift +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit - -class MultipleButtonsCollectionViewCell: ObvCardCollectionViewCell, InvitationCollectionCell, CellContainingHeaderView { - - static let nibName = "MultipleButtonsCollectionViewCell" - static let identifier = "MultipleButtonsCollectionViewCell" - - // Views - - @IBOutlet weak var placeholderView: UIView! - @IBOutlet weak var topPlaceholderView: UIView! - @IBOutlet weak var bottomPlaceholderView: UIView! - - // Constraints - - private var widthConstraint: NSLayoutConstraint! - - // Subviews set in awakeFromNib - - var cellHeaderView: CellHeaderView! - var buttonsStackView: UIStackView! - private var buttonAction = [UIButton: () -> Void]() - -} - - -// MARK: - awakeFromNib - -extension MultipleButtonsCollectionViewCell { - - override func awakeFromNib() { - super.awakeFromNib() - self.accessibilityIdentifier = "MultipleButtonsCollectionViewCell" - self.contentView.translatesAutoresizingMaskIntoConstraints = false - backgroundColor = AppTheme.shared.colorScheme.tertiarySystemBackground - self.widthConstraint = self.contentView.widthAnchor.constraint(equalToConstant: 50.0) - self.widthConstraint.isActive = true - instantiateAndPlaceTheCellHeaderView() - instantiateAndPlaceTheButtonsStackView() - } - - private func instantiateAndPlaceTheCellHeaderView() { - topPlaceholderView.backgroundColor = .clear - cellHeaderView = (Bundle.main.loadNibNamed(CellHeaderView.nibName, owner: nil, options: nil)!.first as! CellHeaderView) - topPlaceholderView.addSubview(cellHeaderView) - topPlaceholderView.pinAllSidesToSides(of: cellHeaderView) - } - - private func instantiateAndPlaceTheButtonsStackView() { - bottomPlaceholderView?.backgroundColor = .clear - self.buttonsStackView = UIStackView() - self.buttonsStackView.translatesAutoresizingMaskIntoConstraints = false - self.buttonsStackView.axis = .vertical - self.buttonsStackView.spacing = 16.0 - bottomPlaceholderView.addSubview(buttonsStackView) - let constraints = [bottomPlaceholderView.topAnchor.constraint(equalTo: buttonsStackView.topAnchor, constant: 0.0), - bottomPlaceholderView.trailingAnchor.constraint(equalTo: buttonsStackView.trailingAnchor, constant: 16.0), - bottomPlaceholderView.bottomAnchor.constraint(equalTo: buttonsStackView.bottomAnchor, constant: 16.0), - bottomPlaceholderView.leadingAnchor.constraint(equalTo: buttonsStackView.leadingAnchor, constant: -16.0)] - NSLayoutConstraint.activate(constraints) - } - - override func prepareForReuse() { - super.prepareForReuse() - cellHeaderView.prepareForReuse() - buttonAction.removeAll() - for view in buttonsStackView.arrangedSubviews { - buttonsStackView.removeArrangedSubview(view) - view.removeFromSuperview() - } - } - -} - - -// MARK: - Setting the width and accessing the size - -extension MultipleButtonsCollectionViewCell { - - func setWidth(to newWidth: CGFloat) { - widthConstraint.constant = newWidth - } - - override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes { - setNeedsLayout() - layoutIfNeeded() - let size = contentView.systemLayoutSizeFitting(layoutAttributes.size) - var newFrame = layoutAttributes.frame - newFrame.size = size - layoutAttributes.frame = newFrame - return layoutAttributes - } -} - - -// MARK: - Adding buttons - -extension MultipleButtonsCollectionViewCell { - - enum ButtonStyle { - case obvButton - case obvButtonBorderless - } - - func addButton(title: String, style: ButtonStyle, action: @escaping (() -> Void)) { - let button: ObvButton - switch style { - case .obvButton: - button = ObvButton() - case .obvButtonBorderless: - button = ObvButtonBorderless() - } - button.setTitle(title, for: .normal) - buttonAction[button] = action - button.addTarget(self, action: #selector(buttonTapped), for: UIControl.Event.touchUpInside) - buttonsStackView.addArrangedSubview(button) - } - - @objc func buttonTapped(button: UIButton) { - guard let action = buttonAction[button] else { return } - action() - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/MultipleButtonsCollectionViewCell.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/MultipleButtonsCollectionViewCell.xib deleted file mode 100644 index 8d27a7a7..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/MultipleButtonsCollectionViewCell.xib +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasAcceptedCardCollectionViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasAcceptedCardCollectionViewCell.swift deleted file mode 100644 index 6ae9d533..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasAcceptedCardCollectionViewCell.swift +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit - -class SasAcceptedCardCollectionViewCell: ObvCardCollectionViewCell, InvitationCollectionCell, CellContainingHeaderView, CellContainingSasAcceptedView, CellContainingOneButtonView { - - static let nibName = "SasAcceptedCardCollectionViewCell" - static let identifier = "sasAcceptedCardCollectionViewCellIdentifier" - - // Views - - @IBOutlet weak var placeholderView: UIView! - @IBOutlet weak var topPlaceholderView: UIView! - @IBOutlet weak var middlePlaceholderView: UIView! - @IBOutlet weak var bottomPlaceholderView: UIView! - - // Constraints - - private var widthConstraint: NSLayoutConstraint! - - // Subviews set in awakeFromNib - - var cellHeaderView: CellHeaderView! - var sasAcceptedView: SasAcceptedView! - var oneButtonView: OneButtonView? - -} - -// MARK: - awakeFromNib - -extension SasAcceptedCardCollectionViewCell { - - override func awakeFromNib() { - super.awakeFromNib() - self.accessibilityIdentifier = "SasAcceptedCardCollectionViewCell" - self.contentView.translatesAutoresizingMaskIntoConstraints = false - backgroundColor = AppTheme.shared.colorScheme.tertiarySystemBackground - self.widthConstraint = self.contentView.widthAnchor.constraint(equalToConstant: 50.0) - self.widthConstraint.isActive = true - instantiateAndPlaceTheCellHeaderView() - instantiateAndPlaceTheSasAcceptedView() - instantiateAndPlaceTheOneButtonView() - } - - private func instantiateAndPlaceTheCellHeaderView() { - topPlaceholderView.backgroundColor = .clear - cellHeaderView = (Bundle.main.loadNibNamed(CellHeaderView.nibName, owner: nil, options: nil)!.first as! CellHeaderView) - topPlaceholderView.addSubview(cellHeaderView) - topPlaceholderView.pinAllSidesToSides(of: cellHeaderView) - } - - private func instantiateAndPlaceTheSasAcceptedView() { - middlePlaceholderView.backgroundColor = .clear - sasAcceptedView = (Bundle.main.loadNibNamed(SasAcceptedView.nibName, owner: nil, options: nil)!.first as! SasAcceptedView) - middlePlaceholderView.addSubview(sasAcceptedView) - middlePlaceholderView.pinAllSidesToSides(of: sasAcceptedView) - } - - private func instantiateAndPlaceTheOneButtonView() { - bottomPlaceholderView?.backgroundColor = .clear - oneButtonView = Bundle.main.loadNibNamed(OneButtonView.nibName, owner: nil, options: nil)!.first as! OneButtonView? - bottomPlaceholderView?.addSubview(oneButtonView!) - bottomPlaceholderView?.pinAllSidesToSides(of: oneButtonView!) - } - - override func prepareForReuse() { - super.prepareForReuse() - cellHeaderView.prepareForReuse() - } - -} - -// MARK: - Setting the width and accessing the size - -extension SasAcceptedCardCollectionViewCell { - - func setWidth(to newWidth: CGFloat) { - widthConstraint.constant = newWidth - } - - override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes { - setNeedsLayout() - layoutIfNeeded() - let size = contentView.systemLayoutSizeFitting(layoutAttributes.size) - var newFrame = layoutAttributes.frame - newFrame.size = size - layoutAttributes.frame = newFrame - return layoutAttributes - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasAcceptedCardCollectionViewCell.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasAcceptedCardCollectionViewCell.xib deleted file mode 100644 index 5244bf88..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasAcceptedCardCollectionViewCell.xib +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasCardCollectionViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasCardCollectionViewCell.swift deleted file mode 100644 index 00a3a7e8..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasCardCollectionViewCell.swift +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit - -class SasCardCollectionViewCell: ObvCardCollectionViewCell, InvitationCollectionCell, CellContainingHeaderView, CellContainingSasView { - - static let nibName = "SasCardCollectionViewCell" - static let identifier = "sasCardCollectionViewCellIdentifier" - - // Views - - @IBOutlet weak var placeholderView: UIView! - @IBOutlet weak var topPlaceholderView: UIView! - @IBOutlet weak var bottomPlaceholderView: UIView! - - // Constraints - - private var widthConstraint: NSLayoutConstraint! - - // Subviews set in awakeFromNib - - var cellHeaderView: CellHeaderView! - var sasView: SasView! - -} - - -// MARK: - awakeFromNib - -extension SasCardCollectionViewCell { - - override func awakeFromNib() { - super.awakeFromNib() - self.accessibilityIdentifier = "SasCardCollectionViewCell" - self.contentView.translatesAutoresizingMaskIntoConstraints = false - backgroundColor = AppTheme.shared.colorScheme.tertiarySystemBackground - self.widthConstraint = self.contentView.widthAnchor.constraint(equalToConstant: 50.0) - self.widthConstraint.isActive = true - instantiateAndPlaceTheCellHeaderView() - instantiateAndPlaceTheSasView() - - let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(cellWasTapped)) - self.addGestureRecognizer(tapGestureRecognizer) - } - - private func instantiateAndPlaceTheCellHeaderView() { - topPlaceholderView.backgroundColor = .clear - cellHeaderView = (Bundle.main.loadNibNamed(CellHeaderView.nibName, owner: nil, options: nil)!.first as! CellHeaderView) - topPlaceholderView.addSubview(cellHeaderView) - topPlaceholderView.pinAllSidesToSides(of: cellHeaderView) - } - - private func instantiateAndPlaceTheSasView() { - bottomPlaceholderView?.backgroundColor = .clear - sasView = (Bundle.main.loadNibNamed(SasView.nibName, owner: nil, options: nil)!.first as! SasView) - bottomPlaceholderView.addSubview(sasView) - bottomPlaceholderView.pinAllSidesToSides(of: sasView) - } - - @objc func cellWasTapped() { - _ = sasView.resignFirstResponder() - } - - override func prepareForReuse() { - super.prepareForReuse() - cellHeaderView.prepareForReuse() - } - -} - - -// MARK: - Setting the width and accessing the size - -extension SasCardCollectionViewCell { - - func setWidth(to newWidth: CGFloat) { - widthConstraint.constant = newWidth - } - - override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes { - setNeedsLayout() - layoutIfNeeded() - let size = contentView.systemLayoutSizeFitting(layoutAttributes.size) - var newFrame = layoutAttributes.frame - newFrame.size = size - layoutAttributes.frame = newFrame - return layoutAttributes - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasCardCollectionViewCell.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasCardCollectionViewCell.xib deleted file mode 100644 index 0c51f24a..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/SasCardCollectionViewCell.xib +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/TitledCardCollectionViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/TitledCardCollectionViewCell.swift deleted file mode 100644 index 1f1ed154..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/TitledCardCollectionViewCell.swift +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit - -final class TitledCardCollectionViewCell: ObvCardCollectionViewCell, InvitationCollectionCell, CellContainingHeaderView, CellContainingOneButtonView { - - static let nibName = "TitledCardCollectionViewCell" - static let identifier = "titledCardCollectionViewCellIdentifier" - - // Views - - @IBOutlet weak var placeholderView: UIView! - @IBOutlet weak var topPlaceholderView: UIView! - @IBOutlet weak var bottomPlaceholderView: UIView? - - // Vars set in awakeFromNib - - private var widthConstraint: NSLayoutConstraint! - var cellHeaderView: CellHeaderView! - var oneButtonView: OneButtonView? -} - -// MARK: - awakeFromNib - -extension TitledCardCollectionViewCell { - - override func awakeFromNib() { - super.awakeFromNib() - self.contentView.translatesAutoresizingMaskIntoConstraints = false - backgroundColor = AppTheme.shared.colorScheme.tertiarySystemBackground - self.widthConstraint = self.contentView.widthAnchor.constraint(equalToConstant: 50.0) - self.widthConstraint.isActive = true - instantiateAndPlaceTheCellHeaderView() - instantiateAndPlaceTheOneButtonView() - } - - - private func instantiateAndPlaceTheCellHeaderView() { - // We add a CellHeaderView and pin it to the 4 hedges of the main placeholder view - topPlaceholderView.backgroundColor = .clear - cellHeaderView = (Bundle.main.loadNibNamed(CellHeaderView.nibName, owner: nil, options: nil)!.first as! CellHeaderView) - topPlaceholderView.addSubview(cellHeaderView) - topPlaceholderView.pinAllSidesToSides(of: cellHeaderView) - } - - - private func instantiateAndPlaceTheOneButtonView() { - bottomPlaceholderView?.backgroundColor = .clear - oneButtonView = Bundle.main.loadNibNamed(OneButtonView.nibName, owner: nil, options: nil)!.first as! OneButtonView? - bottomPlaceholderView?.addSubview(oneButtonView!) - bottomPlaceholderView?.pinAllSidesToSides(of: oneButtonView!) - } - - override func prepareForReuse() { - super.prepareForReuse() - cellHeaderView.prepareForReuse() - } - -} - -// MARK: - Setting the width and accessing the size - -extension TitledCardCollectionViewCell { - - func setWidth(to newWidth: CGFloat) { - widthConstraint.constant = newWidth - } - - - override func preferredLayoutAttributesFitting(_ layoutAttributes: UICollectionViewLayoutAttributes) -> UICollectionViewLayoutAttributes { - setNeedsLayout() - layoutIfNeeded() - let size = contentView.systemLayoutSizeFitting(layoutAttributes.size) - var newFrame = layoutAttributes.frame - newFrame.size = size - layoutAttributes.frame = newFrame - return layoutAttributes - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/TitledCardCollectionViewCell.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/TitledCardCollectionViewCell.xib deleted file mode 100644 index 7b751466..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/TitledCardCollectionViewCell.xib +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/en.lproj/HelpCardCollectionViewCell.strings b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Cells/en.lproj/HelpCardCollectionViewCell.strings deleted file mode 100644 index c2971095bfff0496c95486b1ff0447370ad3e940..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 976 zcmb`FJ5R$v5QL}puQ;UvA`)n*5EW@65L5_J#)%<;#74FWj~@?wbEmwdhzeQ0z1^F= zotxdC?@TA^D(F&kjnwc3UGR5wr=hNi&^9 z);IkR(~O$`q1QNS6JTjorr3H%C#zSjPu!ChKcG<+)wFt6-dQEtt={o#z34b*I_|!0 zYhTc%K9ONmKL_v10nOd_g5SCB*>=`;$BeAGB~Wd~Ow8G(Dii!huW^RlS7Xwv%;7NJ z>R8QLLX9IkGjL|mA~I+|KCwH3>EDyl>WZ%i{)}~?8|HF%GWH?%O-9ng>P@I@<&xH$ zsa?(TrXvCEtyvv4^NR|YIO6OPZ*>2xWa_SUn(;E*Il0E=*f!QO&N@5h8m_;. - */ - -import UIKit -import CoreData -import os.log -import ObvTypes -import ObvEngine -import ObvUI -import ObvUICoreData - - -final class InvitationsCollectionViewController: ShowOwnedIdentityButtonUIViewController, ViewControllerWithEllipsisCircleRightBarButtonItem { - - private static let nibName = "InvitationsCollectionViewController" - - @IBOutlet weak var collectionViewPlaceholder: UIView! - private let collectionViewLayout: UICollectionViewLayout - private let collectionView: UICollectionView - private var collectionViewSizeChanged = false - private var viewDidLoadWasCalled = false - - private let obvEngine: ObvEngine - - // All insets *must* have the same left and right values - private let collectionViewLayoutInsetFirstSection = UIEdgeInsets(top: 8, left: 8, bottom: 0, right: 8) - private let collectionViewLayoutInsetSecondSection = UIEdgeInsets(top: 0, left: 8, bottom: 8, right: 8) - - private var notificationTokens = [NSObjectProtocol]() - - var fetchedResultsController: NSFetchedResultsController! = nil - - var currentNumberOfInvitations: Int { - guard let fetchedResultsController = self.fetchedResultsController else { return 0 } - guard let sections = fetchedResultsController.sections else { return 0 } - guard sections.count > 0 else { return 0 } - return sections[0].numberOfObjects - } - - private var doDisplayHelpCell = false - - private var keyboardIsShown = false - - weak var delegate: InvitationsCollectionViewControllerDelegate? - - private var contactsForWhichASASWasEntered = Set() // Allows to track when bad SAS are entered - - // Required within the implementation of NSFetchedResultsControllerDelegate - private var sectionChanges = [(cvSectionIndex: Int, type: NSFetchedResultsChangeType)]() - private var itemChanges = [(persistedInvitation: PersistedInvitation, indexPath: IndexPath?, type: NSFetchedResultsChangeType, newIndexPath: IndexPath?)]() - - private var observationTokens = [NSObjectProtocol]() - private var currentKbdHeight: CGFloat = 0.0 - private static let typicalDurationKbdAnimation: TimeInterval = 0.25 - let animatorForCollectionViewContent = UIViewPropertyAnimator(duration: typicalDurationKbdAnimation*2.3, dampingRatio: 0.65) - private var activeTextField: UITextField? - - var extraBottomInset: CGFloat = 0.0 - - // MARK: - Initializer - - init(ownedCryptoId: ObvCryptoId, obvEngine: ObvEngine, collectionViewLayout: UICollectionViewLayout) { - self.obvEngine = obvEngine - self.collectionViewLayout = collectionViewLayout - self.collectionView = UICollectionView.init(frame: CGRect.zero, collectionViewLayout: collectionViewLayout) - super.init(ownedCryptoId: ownedCryptoId, logCategory: "InvitationsCollectionViewController") - self.setTitle(CommonString.Word.Invitations) - } - - - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - deinit { - observationTokens.forEach { NotificationCenter.default.removeObserver($0) } - notificationTokens.forEach { NotificationCenter.default.removeObserver($0) } - } - - - // MARK: - Switching current owned identity - - @MainActor - override func switchCurrentOwnedCryptoId(to newOwnedCryptoId: ObvCryptoId) async { - await super.switchCurrentOwnedCryptoId(to: newOwnedCryptoId) - guard viewDidLoadWasCalled else { return } - configureTheFetchedResultsController() - performFetch() - collectionView.reloadData() - } - -} - -// MARK: - Mappings between IndexPath - -extension InvitationsCollectionViewController { - - func frcIndexPathFrom(cvIndexPath: IndexPath) -> IndexPath { - return IndexPath(item: cvIndexPath.item, section: cvIndexPath.section-1) - } - - func cvIndexPathFrom(frcIndexPath: IndexPath) -> IndexPath { - return IndexPath(item: frcIndexPath.item, section: frcIndexPath.section+1) - } - - func cvSectionIndexFrom(frcSectionIndex: Int) -> Int { - return frcSectionIndex + 1 - } -} - -// MARK: - View controller life cycle - -extension InvitationsCollectionViewController { - - override func viewDidLoad() { - super.viewDidLoad() - viewDidLoadWasCalled = true - - registerCells() - configureFlowLayoutForAutoSizingCells() - configureTheFetchedResultsController() - - self.view.backgroundColor = AppTheme.shared.colorScheme.systemBackground - self.collectionViewPlaceholder.backgroundColor = AppTheme.shared.colorScheme.systemFill - - self.collectionViewPlaceholder.addSubview(self.collectionView) - self.collectionViewPlaceholder.pinAllSidesToSides(of: self.collectionView) - - self.collectionView.translatesAutoresizingMaskIntoConstraints = false - self.collectionView.backgroundColor = AppTheme.shared.colorScheme.systemBackground - self.collectionView.keyboardDismissMode = .interactive - - self.collectionView.alwaysBounceVertical = true - self.extraBottomInset = 16 + 56 // It's height + bottom margin - self.collectionView.delegate = self - self.collectionView.dataSource = self - - registerTextDidBeginEditingNotification() - registerTextDidEndEditingNotification() - registerKeyboardNotifications() - observeIdentityColorStyleDidChangeNotifications() - - if #available(iOS 14, *) { - navigationItem.rightBarButtonItem = getConfiguredEllipsisCircleRightBarButtonItem() - } else { - navigationItem.rightBarButtonItem = getConfiguredEllipsisCircleRightBarButtonItem(selector: #selector(ellipsisButtonTappedSelector)) - } - - } - - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - performFetch() - } - - - @available(iOS, introduced: 13.0, deprecated: 14.0, message: "Used because iOS 13 does not support UIMenu on UIBarButtonItem") - @objc private func ellipsisButtonTappedSelector() { - ellipsisButtonTapped(sourceBarButtonItem: navigationItem.rightBarButtonItem) - } - - - override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { - super.viewWillTransition(to: size, with: coordinator) - coordinator.animate(alongsideTransition: nil) { [weak self] (_) in - self?.collectionView.collectionViewLayout.invalidateLayout() - self?.collectionView.reloadData() - } - } - - private func observeIdentityColorStyleDidChangeNotifications() { - let token = ObvMessengerSettingsNotifications.observeIdentityColorStyleDidChange { - DispatchQueue.main.async { [weak self] in - self?.collectionView.reloadData() - } - } - self.notificationTokens.append(token) - } - - - private func configureFlowLayoutForAutoSizingCells() { - if let flowLayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout { - flowLayout.estimatedItemSize = UICollectionViewFlowLayout.automaticSize - } - } - - - private func registerCells() { - self.collectionView.register(UINib(nibName: HelpCardCollectionViewCell.nibName, bundle: nil), forCellWithReuseIdentifier: HelpCardCollectionViewCell.identifier) - self.collectionView.register(UINib(nibName: TitledCardCollectionViewCell.nibName, bundle: nil), forCellWithReuseIdentifier: TitledCardCollectionViewCell.identifier) - self.collectionView.register(UINib(nibName: ButtonsCardCollectionViewCell.nibName, bundle: nil), forCellWithReuseIdentifier: ButtonsCardCollectionViewCell.identifier) - self.collectionView.register(UINib(nibName: SasCardCollectionViewCell.nibName, bundle: nil), forCellWithReuseIdentifier: SasCardCollectionViewCell.identifier) - self.collectionView.register(UINib(nibName: SasAcceptedCardCollectionViewCell.nibName, bundle: nil), forCellWithReuseIdentifier: SasAcceptedCardCollectionViewCell.identifier) - self.collectionView.register(UINib(nibName: AcceptGroupInviteCollectionViewCell.nibName, bundle: nil), forCellWithReuseIdentifier: AcceptGroupInviteCollectionViewCell.identifier) - self.collectionView.register(UINib(nibName: MultipleButtonsCollectionViewCell.nibName, bundle: nil), forCellWithReuseIdentifier: MultipleButtonsCollectionViewCell.identifier) - } - - - override func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - - // Mark all the invitations as "old" - - let ownCryptoId = self.currentOwnedCryptoId - let log = self.log - ObvStack.shared.performBackgroundTask { (context) in - guard let persistedOwnedIdentity = try? PersistedObvOwnedIdentity.get(cryptoId: ownCryptoId, within: context) else { return } - do { - try PersistedInvitation.markAllAsOld(for: persistedOwnedIdentity) - try context.save(logOnFailure: log) - } catch { - os_log("Could not mark invitations as old", log: log, type: .error) - } - } - - } -} - - -// MARK: - NSFetchedResultsControllerDelegate - -extension InvitationsCollectionViewController: NSFetchedResultsControllerDelegate { - - private func configureTheFetchedResultsController() { - fetchedResultsController = PersistedInvitation.getFetchedResultsControllerForOwnedIdentity(with: currentOwnedCryptoId, within: ObvStack.shared.viewContext) - fetchedResultsController.delegate = self - } - - - private func performFetch() { - do { - try fetchedResultsController.performFetch() - } catch let error { - fatalError("Failed to fetch entities: \(error.localizedDescription)") - } - doDisplayHelpCell = (currentNumberOfInvitations == 0) - } - - - func controller(_ controller: NSFetchedResultsController, didChange sectionInfo: NSFetchedResultsSectionInfo, atSectionIndex sectionIndex: Int, for type: NSFetchedResultsChangeType) { - let cvSectionIndex = cvSectionIndexFrom(frcSectionIndex: sectionIndex) - sectionChanges.append((cvSectionIndex, type)) - } - - func controller(_ controller: NSFetchedResultsController, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?) { - guard let persistedInvitation = anObject as? PersistedInvitation else { return } - var cvIndexPath: IndexPath? = nil - if let ip = indexPath { - cvIndexPath = cvIndexPathFrom(frcIndexPath: ip) - } - var cvNewIndexPath: IndexPath? = nil - if let ip = newIndexPath { - cvNewIndexPath = cvIndexPathFrom(frcIndexPath: ip) - } - itemChanges.append((persistedInvitation, cvIndexPath, type, cvNewIndexPath)) - } - - - func controllerDidChangeContent(_ controller: NSFetchedResultsController) { - - var objectsToReload = Set() - - collectionView.performBatchUpdates({ - - while let (cvSectionIndex, type) = sectionChanges.popLast() { - - switch type { - case .insert: - collectionView.insertSections(IndexSet(integer: cvSectionIndex)) - case .delete: - collectionView.deleteSections(IndexSet(integer: cvSectionIndex)) - case .move, .update: - break - @unknown default: - assertionFailure() - } - - } - - while let (persistedInvitation, indexPath, type, newIndexPath) = itemChanges.popLast() { - - switch type { - case .insert: - collectionView.insertItems(at: [newIndexPath!]) - case .delete: - collectionView.deleteItems(at: [indexPath!]) - case .update: - collectionView.deleteItems(at: [indexPath!]) - collectionView.insertItems(at: [indexPath!]) - case .move: - // It is likely that the current cell does not correpond to the one required by the updated invitation. We cannot simply configure the cell again. So we add it the the set of objects to reload - collectionView.moveItem(at: indexPath!, to: newIndexPath!) - objectsToReload.insert(persistedInvitation) - @unknown default: - assertionFailure() - } - - - } - }, completion: { [weak self] (_) -> Void in - guard let _self = self else { return } - // Display or hide the help cell, depending on the number of current inventations - if _self.doDisplayHelpCell && _self.currentNumberOfInvitations > 0 { - _self.doDisplayHelpCell = false - _self.collectionView.reloadSections([0]) - } else if !_self.doDisplayHelpCell && _self.currentNumberOfInvitations == 0 { - _self.doDisplayHelpCell = true - _self.collectionView.reloadSections([0]) - } - - // Update the objects that require it - var cvIndexPathsToReload = Set() - for persistedInvitation in objectsToReload { - guard let frcIndexPath = _self.fetchedResultsController.indexPath(forObject: persistedInvitation) else { continue } - let cvIndexPath = _self.cvIndexPathFrom(frcIndexPath: frcIndexPath) - cvIndexPathsToReload.insert(cvIndexPath) - } - DispatchQueue(label: "ReloadPersistedInvitationsQueue").asyncAfter(deadline: DispatchTime.now() + .milliseconds(200), execute: { - DispatchQueue.main.async { - _self.collectionView.reloadItems(at: Array(cvIndexPathsToReload)) - } - }) - }) - } -} - - -// MARK: - UICollectionViewDataSource - -extension InvitationsCollectionViewController: UICollectionViewDataSource { - - - func numberOfSections(in collectionView: UICollectionView) -> Int { - return 2 - } - - - func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - switch section { - case 0: - return doDisplayHelpCell ? 1 : 0 - case 1: - return currentNumberOfInvitations - default: - return 0 - } - } - - - func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { - - switch indexPath.section { - case 0: - let helpCell = collectionView.dequeueReusableCell(withReuseIdentifier: HelpCardCollectionViewCell.identifier, for: indexPath) - if let cell = helpCell as? InvitationCollectionCell { - configureHelpCell(cell, in: collectionView) - } - return helpCell - case 1: - let frcIndexPath = frcIndexPathFrom(cvIndexPath: indexPath) - let persistedInvitation = fetchedResultsController.object(at: frcIndexPath) - guard let obvDialog = persistedInvitation.obvDialog else { - return fakeCell(indexPath: indexPath) - } - let cell = dequeueReusableCell(for: obvDialog.category, in: collectionView, at: indexPath) - if let cell = cell as? InvitationCollectionCell { - configure(cell, with: persistedInvitation) - } - return cell - default: - return UICollectionViewCell() - } - } - - - /// In case we cannot parse the ObvDialog of a PersistedInvitation, we display a fake cell. It won't last for long anyway, since the corresponding - /// PersistedInvitation is going to be deleted during bottstrap. - private func fakeCell(indexPath: IndexPath) -> UICollectionViewCell { - assertionFailure() - var cell = collectionView.dequeueReusableCell(withReuseIdentifier: TitledCardCollectionViewCell.identifier, for: indexPath) as! TitledCardCollectionViewCell - cell.title = "" - cell.subtitle = "" - cell.date = Date() - cell.identityColors = nil - cell.details = "" - cell.buttonTitle = CommonString.Word.Abort - cell.buttonAction = {} - cell.useLeadingButton() - return cell - } - - - private func dequeueReusableCell(for category: ObvDialog.Category, in collectionView: UICollectionView, at indexPath: IndexPath) -> UICollectionViewCell { - switch category { - case .inviteSent: - return collectionView.dequeueReusableCell(withReuseIdentifier: TitledCardCollectionViewCell.identifier, for: indexPath) - case .invitationAccepted: - return collectionView.dequeueReusableCell(withReuseIdentifier: TitledCardCollectionViewCell.identifier, for: indexPath) - case .mutualTrustConfirmed: - return collectionView.dequeueReusableCell(withReuseIdentifier: MultipleButtonsCollectionViewCell.identifier, for: indexPath) - case .acceptInvite: - return collectionView.dequeueReusableCell(withReuseIdentifier: ButtonsCardCollectionViewCell.identifier, for: indexPath) - case .sasExchange: - return collectionView.dequeueReusableCell(withReuseIdentifier: SasCardCollectionViewCell.identifier, for: indexPath) - case .sasConfirmed: - return collectionView.dequeueReusableCell(withReuseIdentifier: SasAcceptedCardCollectionViewCell.identifier, for: indexPath) - case .acceptMediatorInvite: - return collectionView.dequeueReusableCell(withReuseIdentifier: ButtonsCardCollectionViewCell.identifier, for: indexPath) - case .mediatorInviteAccepted: - return collectionView.dequeueReusableCell(withReuseIdentifier: TitledCardCollectionViewCell.identifier, for: indexPath) - case .acceptGroupInvite: - return collectionView.dequeueReusableCell(withReuseIdentifier: AcceptGroupInviteCollectionViewCell.identifier, for: indexPath) - case .increaseMediatorTrustLevelRequired: - return collectionView.dequeueReusableCell(withReuseIdentifier: MultipleButtonsCollectionViewCell.identifier, for: indexPath) - case .increaseGroupOwnerTrustLevelRequired: - return collectionView.dequeueReusableCell(withReuseIdentifier: MultipleButtonsCollectionViewCell.identifier, for: indexPath) - case .autoconfirmedContactIntroduction: - return collectionView.dequeueReusableCell(withReuseIdentifier: MultipleButtonsCollectionViewCell.identifier, for: indexPath) - case .oneToOneInvitationSent: - return collectionView.dequeueReusableCell(withReuseIdentifier: TitledCardCollectionViewCell.identifier, for: indexPath) - case .oneToOneInvitationReceived: - return collectionView.dequeueReusableCell(withReuseIdentifier: MultipleButtonsCollectionViewCell.identifier, for: indexPath) - case .acceptGroupV2Invite: - return collectionView.dequeueReusableCell(withReuseIdentifier: AcceptGroupInviteCollectionViewCell.identifier, for: indexPath) - case .freezeGroupV2Invite: - return collectionView.dequeueReusableCell(withReuseIdentifier: AcceptGroupInviteCollectionViewCell.identifier, for: indexPath) - } - } - - - private func configureCell(atIndexPath indexPath: IndexPath, with persistedInvitation: PersistedInvitation) { - guard indexPath.section == 1 else { - return - } - let cell = collectionView.cellForItem(at: indexPath) - if let cell = cell as? InvitationCollectionCell { - configure(cell, with: persistedInvitation) - } - } - - - private func configure(_ cellToConfigure: InvitationCollectionCell, with persistedInvitation: PersistedInvitation) { - - let newWidth = collectionView.bounds.width - collectionViewLayoutInsetFirstSection.left - collectionViewLayoutInsetFirstSection.right - - cellToConfigure.setWidth(to: newWidth) - - guard let obvDialog = persistedInvitation.obvDialog else { assertionFailure(); return } - - switch obvDialog.category { - - case .inviteSent(contactIdentity: let contactURLIdentity): - guard var cell = cellToConfigure as? TitledCardCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - cell.title = contactURLIdentity.fullDisplayName - cell.subtitle = Strings.InviteSent.subtitle - cell.date = persistedInvitation.date - cell.identityColors = contactURLIdentity.cryptoId.colors - cell.details = Strings.InviteSent.details(contactURLIdentity.fullDisplayName) - cell.buttonTitle = CommonString.Word.Abort - cell.buttonAction = { [weak self] in - self?.abandonInvitation(dialog: obvDialog, confirmed: false) - } - cell.useLeadingButton() - - case .acceptInvite(contactIdentity: let contactIdentity): - guard var cell = cellToConfigure as? ButtonsCardCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - cell.title = contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full) - cell.subtitle = Strings.AcceptInvite.subtitle - cell.date = persistedInvitation.date - cell.identityColors = contactIdentity.cryptoId.colors - cell.details = Strings.AcceptInvite.details(contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full)) - cell.buttonTitle1 = CommonString.Word.Accept - cell.buttonTitle2 = Strings.AcceptInvite.buttonTitle2 - cell.button1Action = { [weak self] in - self?.acceptInvitation(dialog: obvDialog) - } - cell.button2Action = { [weak self] in - self?.rejectInvitation(dialog: obvDialog, confirmed: false) - } - - case .invitationAccepted(contactIdentity: let contactIdentity): - guard var cell = cellToConfigure as? TitledCardCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - cell.title = contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full) - cell.subtitle = Strings.InvitationAccepted.subtitle - cell.date = persistedInvitation.date - cell.identityColors = contactIdentity.cryptoId.colors - cell.details = Strings.InvitationAccepted.details(contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full)) - cell.buttonTitle = CommonString.Word.Abort - cell.buttonAction = { [weak self] in - self?.abandonInvitation(dialog: obvDialog, confirmed: false) - } - cell.useLeadingButton() - - case .sasExchange(contactIdentity: let contactIdentity, sasToDisplay: let sasToDisplay, numberOfBadEnteredSas: let numberOfBadEnteredSas): - guard var cell = cellToConfigure as? SasCardCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - let sas = String.init(data: sasToDisplay, encoding: .utf8) ?? "" - cell.title = contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full) - cell.subtitle = Strings.SasExchange.subtitle - cell.date = persistedInvitation.date - cell.identityColors = contactIdentity.cryptoId.colors - cell.details = Strings.SasExchange.details(contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.firstNameThenLastName), sas) - try? cell.setOwnSas(ownSas: sasToDisplay) - cell.resetContactSas() - cell.onSasInput = { [weak self] (enteredDigits) in - self?.contactsForWhichASASWasEntered.insert(contactIdentity.cryptoId) - self?.onSasInput(dialog: obvDialog, enteredDigits) - } - cell.onAbort = { [weak self] in - self?.abandonInvitation(dialog: obvDialog, confirmed: false) - } - if numberOfBadEnteredSas > 0 && contactsForWhichASASWasEntered.contains(contactIdentity.cryptoId) { - contactsForWhichASASWasEntered.remove(contactIdentity.cryptoId) - let alert = UIAlertController(title: Strings.IncorrectSASAlert.title, message: Strings.IncorrectSASAlert.message, preferredStyle: .alert) - let okAction = UIAlertAction(title: CommonString.Word.Ok, style: .default) - alert.addAction(okAction) - self.present(alert, animated: true) - } - - case .sasConfirmed(contactIdentity: let contactIdentity, sasToDisplay: let sasToDisplay, sasEntered: _): - guard var cell = cellToConfigure as? SasAcceptedCardCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - let sas = String.init(data: sasToDisplay, encoding: .utf8) ?? "" - cell.title = contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full) - cell.subtitle = Strings.SasConfirmed.subtitle - cell.date = persistedInvitation.date - cell.identityColors = contactIdentity.cryptoId.colors - cell.details = Strings.SasConfirmed.details(contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.firstNameThenLastName), sas) - try? cell.setOwnSas(ownSas: sasToDisplay) - cell.buttonTitle = CommonString.Word.Abort - cell.buttonAction = { [weak self] in - self?.abandonInvitation(dialog: obvDialog, confirmed: false) - } - cell.useLeadingButton() - - case .mutualTrustConfirmed(contactIdentity: let contactIdentity): - guard var cell = cellToConfigure as? MultipleButtonsCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - cell.title = contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full) - cell.subtitle = Strings.MutualTrustConfirmed.subtitle - cell.date = persistedInvitation.date - cell.identityColors = contactIdentity.cryptoId.colors - cell.details = Strings.MutualTrustConfirmed.details(contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.firstNameThenLastName)) - // Button for showing the new contact - cell.addButton(title: Strings.showContactButtonTitle, style: .obvButtonBorderless) { [weak self] in - guard let _self = self else { return } - ObvStack.shared.performBackgroundTask { (context) in - guard let ownedIdentityObject = try? PersistedObvOwnedIdentity.get(cryptoId: _self.currentOwnedCryptoId, within: context) else { return } - guard let contactIdendityObject = try? PersistedObvContactIdentity.get(cryptoId: contactIdentity.cryptoId, ownedIdentity: ownedIdentityObject, whereOneToOneStatusIs: .any) else { return } - let deepLink = ObvDeepLink.contactIdentityDetails(ownedCryptoId: _self.currentOwnedCryptoId, objectPermanentID: contactIdendityObject.objectPermanentID) - ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: deepLink) - .postOnDispatchQueue() - } - } - // Button for discarding the invitation - cell.addButton(title: CommonString.Word.Ok, style: .obvButton) { [weak self] in - try? self?.obvEngine.deleteDialog(with: persistedInvitation.uuid) - } - - case .acceptMediatorInvite(contactIdentity: let contactIdentity, mediatorIdentity: let mediatorIdentity): - guard var cell = cellToConfigure as? ButtonsCardCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - cell.title = "\(mediatorIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full)) → \(contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full))" - cell.subtitle = Strings.AcceptMediatorInvite.subtitle - cell.date = persistedInvitation.date - cell.identityColors = mediatorIdentity.cryptoId.colors - cell.details = Strings.AcceptMediatorInvite.details(mediatorIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full), contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full)) - cell.buttonTitle1 = CommonString.Word.Accept - cell.buttonTitle2 = Strings.AcceptMediatorInvite.buttonTitle2 - cell.button1Action = { [weak self] in - self?.respondToAcceptMediatorInvite(dialog: obvDialog, acceptInvite: true) - } - cell.button2Action = { [weak self] in - self?.respondToAcceptMediatorInvite(dialog: obvDialog, acceptInvite: false) - } - - case .increaseMediatorTrustLevelRequired(contactIdentity: let contactIdentity, mediatorIdentity: let mediatorIdentity): - guard var cell = cellToConfigure as? MultipleButtonsCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - cell.title = "\(mediatorIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full)) → \(contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full))" - cell.subtitle = Strings.IncreaseMediatorTrustLevelRequired.subtitle - cell.date = persistedInvitation.date - cell.identityColors = mediatorIdentity.cryptoId.colors - cell.details = Strings.IncreaseMediatorTrustLevelRequired.details(mediatorIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full), contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full)) - // Button for increasing the mediator TL - do { - let mediatorName = mediatorIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.firstNameThenLastName) - let title = Strings.IncreaseMediatorTrustLevelRequired.buttonTitle1(mediatorName) - cell.addButton(title: title, style: .obvButton) { [weak self] in - self?.delegate?.rePerformTrustEstablishmentProtocolOfContactIdentity(contactCryptoId: mediatorIdentity.cryptoId, contactFullDisplayName: mediatorName) - - } - } - // Button for inviting the introduced identity - do { - let remoteFullDisplayName = contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.firstNameThenLastName) - let title = Strings.IncreaseMediatorTrustLevelRequired.buttonTitle2(remoteFullDisplayName) - cell.addButton(title: title, style: .obvButton) { [weak self] in - self?.delegate?.performTrustEstablishmentProtocolOfRemoteIdentity(remoteCryptoId: contactIdentity.cryptoId, remoteFullDisplayName: remoteFullDisplayName) - } - } - // Button for aborting - cell.addButton(title: CommonString.Word.Abort, style: .obvButtonBorderless) { [weak self] in - self?.abandonInvitation(dialog: obvDialog, confirmed: false) - } - - case .mediatorInviteAccepted(contactIdentity: let contactIdentity, mediatorIdentity: let mediatorIdentity): - guard var cell = cellToConfigure as? TitledCardCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - cell.title = "\(mediatorIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full)) → \(contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full))" - cell.subtitle = Strings.MediatorInviteAccepted.subtitle - cell.date = persistedInvitation.date - cell.identityColors = mediatorIdentity.cryptoId.colors - cell.details = Strings.MediatorInviteAccepted.details(mediatorIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full), contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full)) - cell.buttonTitle = CommonString.Word.Abort - cell.buttonAction = { [weak self] in - self?.abandonInvitation(dialog: obvDialog, confirmed: false) - } - cell.useLeadingButton() - - case .autoconfirmedContactIntroduction(contactIdentity: let contactIdentity, mediatorIdentity: let mediatorIdentity): - guard var cell = cellToConfigure as? MultipleButtonsCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - cell.title = "\(mediatorIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full)) → \(contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full))" - cell.subtitle = Strings.AutoconfirmedContactIntroduction.subtitle - cell.date = persistedInvitation.date - cell.identityColors = contactIdentity.cryptoId.colors - cell.details = Strings.AutoconfirmedContactIntroduction.details(mediatorIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full), contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full)) - // Button for showing the new contact - cell.addButton(title: Strings.showContactButtonTitle, style: .obvButtonBorderless) { [weak self] in - guard let _self = self else { return } - ObvStack.shared.performBackgroundTask { (context) in - guard let ownedIdentityObject = try? PersistedObvOwnedIdentity.get(cryptoId: _self.currentOwnedCryptoId, within: context) else { return } - guard let contactIdendityObject = try? PersistedObvContactIdentity.get(cryptoId: contactIdentity.cryptoId, ownedIdentity: ownedIdentityObject, whereOneToOneStatusIs: .any) else { return } - let deepLink = ObvDeepLink.contactIdentityDetails(ownedCryptoId: _self.currentOwnedCryptoId, objectPermanentID: contactIdendityObject.objectPermanentID) - ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: deepLink) - .postOnDispatchQueue() - } - } - // Button for discarding the invitation - cell.addButton(title: CommonString.Word.Ok, style: .obvButton) { [weak self] in - try? self?.obvEngine.deleteDialog(with: persistedInvitation.uuid) - } - - case .acceptGroupInvite(groupMembers: let groupMembers, groupOwner: let groupOwner): - guard var cell = cellToConfigure as? AcceptGroupInviteCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - cell.title = "\(groupOwner.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full))" - cell.subtitle = Strings.AcceptGroupInvite.subtitle - cell.date = persistedInvitation.date - cell.identityColors = groupOwner.cryptoId.colors - cell.details = Strings.AcceptGroupInvite.details(groupOwner.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full)) - cell.buttonTitle1 = CommonString.Word.Accept - cell.buttonTitle2 = CommonString.Word.Decline - cell.button1Action = { [weak self] in - self?.acceptGroupInvite(dialog: obvDialog) - } - cell.button2Action = { [weak self] in - self?.rejectGroupInvite(dialog: obvDialog, confirmed: false) - } - cell.setTitle(with: Strings.AcceptGroupInvite.subsubTitle) - cell.setList(with: groupMembers.map { $0.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full) }) - - case .increaseGroupOwnerTrustLevelRequired(groupOwner: let groupOwner): - guard var cell = cellToConfigure as? MultipleButtonsCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - cell.title = "\(groupOwner.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full))" - cell.subtitle = Strings.IncreaseGroupOwnerTrustLevelRequired.subtitle - cell.date = persistedInvitation.date - cell.identityColors = groupOwner.cryptoId.colors - cell.details = Strings.IncreaseGroupOwnerTrustLevelRequired.details(groupOwner.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full)) - // Button for increasing the group owner TL - do { - let groupOwnerName = groupOwner.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.firstNameThenLastName) - let title = Strings.IncreaseGroupOwnerTrustLevelRequired.buttonTitle(groupOwnerName) - cell.addButton(title: title, style: .obvButton) { [weak self] in - self?.delegate?.rePerformTrustEstablishmentProtocolOfContactIdentity(contactCryptoId: groupOwner.cryptoId, contactFullDisplayName: groupOwnerName) - - } - } - // Button for aborting - cell.addButton(title: CommonString.Word.Reject, style: .obvButtonBorderless) { [weak self] in - self?.rejectGroupInvite(dialog: obvDialog, confirmed: false) - } - - case .oneToOneInvitationSent(contactIdentity: let contactIdentity): - guard var cell = cellToConfigure as? TitledCardCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - cell.title = "\(contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full))" - cell.subtitle = Strings.OneToOneInvitationSent.subtitle - cell.date = persistedInvitation.date - cell.identityColors = contactIdentity.cryptoId.colors - cell.details = Strings.OneToOneInvitationSent.details(contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.short)) - // Button for aborting - cell.buttonTitle = CommonString.Word.Abort - cell.buttonAction = { [weak self] in - assert(Thread.isMainThread) - guard let ownCryptoId = self?.currentOwnedCryptoId else { return } - self?.delegate?.userWantsToCancelSentInviteContactToOneToOne(ownedCryptoId: ownCryptoId, contactCryptoId: contactIdentity.cryptoId) - } - cell.useLeadingButton() - - case .oneToOneInvitationReceived(contactIdentity: let contactIdentity): - guard var cell = cellToConfigure as? MultipleButtonsCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - cell.title = "\(contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full))" - cell.subtitle = Strings.OneToOneInvitationReceived.subtitle - cell.date = persistedInvitation.date - cell.identityColors = contactIdentity.cryptoId.colors - cell.details = Strings.OneToOneInvitationReceived.details(contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.short)) - // Button for increasing the group owner TL - do { - let title = CommonString.Word.Accept - cell.addButton(title: title, style: .obvButton) { [weak self] in - var localDialog = obvDialog - try? localDialog.setResponseToOneToOneInvitationReceived(invitationAccepted: true) - guard let obvEngine = self?.obvEngine else { assertionFailure(); return } - DispatchQueue(label: "Queue for responding to dialog").async { - obvEngine.respondTo(localDialog) - } - } - } - // Button for aborting - cell.addButton(title: CommonString.Word.Reject, style: .obvButtonBorderless) { [weak self] in - var localDialog = obvDialog - try? localDialog.setResponseToOneToOneInvitationReceived(invitationAccepted: false) - guard let obvEngine = self?.obvEngine else { assertionFailure(); return } - DispatchQueue(label: "Queue for responding to dialog").async { - obvEngine.respondTo(localDialog) - } - } - - case .acceptGroupV2Invite(inviter: let inviter, group: let group), - .freezeGroupV2Invite(inviter: let inviter, group: let group): - guard var cell = cellToConfigure as? AcceptGroupInviteCollectionViewCell else { - os_log("The cell type (%{public}@) does not correspond to the dialog's category of the invitation (%{public}@)", log: log, type: .fault, String(describing: cellToConfigure), obvDialog.category.description) - return - } - guard let inviterContact = try? PersistedObvContactIdentity.get(contactCryptoId: inviter, ownedIdentityCryptoId: currentOwnedCryptoId, whereOneToOneStatusIs: .any, within: ObvStack.shared.viewContext) else { - assertionFailure() - return - } - cell.title = inviterContact.customOrNormalDisplayName - cell.subtitle = Strings.AcceptGroupInvite.subtitle - cell.date = persistedInvitation.date - cell.identityColors = inviterContact.cryptoId.colors - cell.details = Strings.AcceptGroupInvite.details(inviterContact.customOrNormalDisplayName) - cell.buttonTitle1 = CommonString.Word.Accept - cell.buttonTitle2 = CommonString.Word.Decline - cell.button1Action = { [weak self] in - self?.acceptGroupInvite(dialog: obvDialog) - } - cell.button2Action = { [weak self] in - self?.rejectGroupInvite(dialog: obvDialog, confirmed: false) - } - cell.setTitle(with: Strings.AcceptGroupInvite.subsubTitle) - let list: [String] = group.otherMembers.map { - if let memberContact = try? PersistedObvContactIdentity.get(contactCryptoId: $0.identity, ownedIdentityCryptoId: currentOwnedCryptoId, whereOneToOneStatusIs: .any, within: ObvStack.shared.viewContext) { - return memberContact.customOrNormalDisplayName - } else if let details = try? ObvIdentityCoreDetails($0.serializedIdentityCoreDetails) { - return details.getDisplayNameWithStyle(.firstNameThenLastName) - } else { - assertionFailure() - return Strings.unknownGroupMemberName - } - } - cell.setList(with: list.sorted()) - // If the invite should be freezed, do it now - switch obvDialog.category { - case .freezeGroupV2Invite: - cell.freeze() - default: - cell.unfreeze() - } - } - - - if let cell = cellToConfigure as? InvitationCollectionCell & CellContainingHeaderView { - if persistedInvitation.actionRequired { - cell.addChip(withText: Strings.chipTitleActionRequired) - } - switch persistedInvitation.status { - case .new: - cell.addChip(withText: Strings.chipTitleNew) - case .updated: - cell.addChip(withText: Strings.chipTitleUpdated) - case .old: - break - } - } - - (cellToConfigure as! UICollectionViewCell).layoutIfNeeded() - - } - - - private func configureHelpCell(_ cell: InvitationCollectionCell, in collectionView: UICollectionView) { - let newWidth = collectionView.bounds.width - collectionViewLayoutInsetFirstSection.left - collectionViewLayoutInsetFirstSection.right - collectionView.contentInset.left - collectionView.contentInset.right - cell.setWidth(to: newWidth) - (cell as! UICollectionViewCell).layoutIfNeeded() - } - - - private func acceptInvitation(dialog: ObvDialog) { - switch dialog.category { - case .acceptInvite: - var localDialog = dialog - try? localDialog.setResponseToAcceptInvite(acceptInvite: true) - let obvEngine = self.obvEngine - DispatchQueue(label: "Queue for responding to dialog").async { - obvEngine.respondTo(localDialog) - } - default: - break - } - } - - - private func rejectInvitation(dialog: ObvDialog, confirmed: Bool) { - let currentTraitCollection = self.traitCollection - switch dialog.category { - case .acceptInvite: - if confirmed { - var localDialog = dialog - try? localDialog.setResponseToAcceptInvite(acceptInvite: false) - let obvEngine = self.obvEngine - DispatchQueue(label: "Queue for responding to dialog").async { - obvEngine.respondTo(localDialog) - } - } else { - let alert = UIAlertController(title: Strings.AbandonInvitation.title, message: nil, preferredStyleForTraitCollection: currentTraitCollection) - alert.addAction(UIAlertAction(title: Strings.AbandonInvitation.actionTitleDiscard, style: .destructive, handler: { [weak self] _ in - self?.rejectInvitation(dialog: dialog, confirmed: true) - })) - alert.addAction(UIAlertAction(title: Strings.AbandonInvitation.actionTitleDontDiscard, style: .default)) - alert.addAction(UIAlertAction(title: CommonString.Word.Cancel, style: .cancel)) - present(alert, animated: true, completion: nil) - } - default: - break - } - } - - - private func respondToAcceptMediatorInvite(dialog: ObvDialog, acceptInvite: Bool) { - DispatchQueue(label: "RespondingToMediatorInvitationDialog").async { [weak self] in - switch dialog.category { - case .acceptMediatorInvite: - var localDialog = dialog - try? localDialog.setResponseToAcceptMediatorInvite(acceptInvite: acceptInvite) - guard let obvEngine = self?.obvEngine else { assertionFailure(); return } - DispatchQueue(label: "Queue for responding to dialog").async { - obvEngine.respondTo(localDialog) - } - default: - break - } - } - } - - - private func acceptGroupInvite(dialog: ObvDialog) { - DispatchQueue(label: "RespondingToGroupInvitationDialog").async { [weak self] in - switch dialog.category { - case .acceptGroupInvite: - var localDialog = dialog - try? localDialog.setResponseToAcceptGroupInvite(acceptInvite: true) - guard let obvEngine = self?.obvEngine else { assertionFailure(); return } - DispatchQueue(label: "Queue for responding to dialog").async { - obvEngine.respondTo(localDialog) - } - case .acceptGroupV2Invite: - var localDialog = dialog - try? localDialog.setResponseToAcceptGroupV2Invite(acceptInvite: true) - guard let obvEngine = self?.obvEngine else { assertionFailure(); return } - DispatchQueue(label: "Queue for responding to dialog").async { - obvEngine.respondTo(localDialog) - } - default: - break - } - } - } - - - private func rejectGroupInvite(dialog: ObvDialog, confirmed: Bool) { - let currentTraitCollection = self.traitCollection - DispatchQueue(label: "RespondingToGroupInvitationDialog").async { [weak self] in - switch dialog.category { - case .acceptGroupInvite, - .increaseGroupOwnerTrustLevelRequired, - .acceptGroupV2Invite: - if confirmed { - var localDialog = dialog - switch dialog.category { - case .acceptGroupInvite: - try? localDialog.setResponseToAcceptGroupInvite(acceptInvite: false) - case .increaseGroupOwnerTrustLevelRequired: - try? localDialog.rejectIncreaseGroupOwnerTrustLevelRequired() - case .acceptGroupV2Invite: - try? localDialog.setResponseToAcceptGroupV2Invite(acceptInvite: false) - default: - assertionFailure() - return - } - self?.obvEngine.respondTo(localDialog) - } else { - let alert = UIAlertController(title: Strings.AbandonInvitation.title, message: nil, preferredStyleForTraitCollection: currentTraitCollection) - alert.addAction(UIAlertAction(title: Strings.AbandonInvitation.actionTitleDiscard, style: .destructive, handler: { [weak self] _ in - self?.rejectGroupInvite(dialog: dialog, confirmed: true) - })) - alert.addAction(UIAlertAction(title: Strings.AbandonInvitation.actionTitleDontDiscard, style: .default)) - alert.addAction(UIAlertAction(title: CommonString.Word.Cancel, style: .cancel)) - DispatchQueue.main.async { [weak self] in - self?.present(alert, animated: true, completion: nil) - } - } - default: - break - } - } - } - - - private func onSasInput(dialog: ObvDialog, _ enteredDigits: String) { - switch dialog.category { - case .sasExchange: - var localDialog = dialog - try? localDialog.setResponseToSasExchange(otherSas: enteredDigits.data(using: .utf8)!) - let obvEngine = self.obvEngine - DispatchQueue(label: "Queue for responding to dialog").async { - obvEngine.respondTo(localDialog) - } - default: - break - } - } - - private func abandonInvitation(dialog: ObvDialog, confirmed: Bool) { - if confirmed { - DispatchQueue(label: "AbandonInvitation").async { [weak self] in - ((try? self?.obvEngine.abortProtocol(associatedTo: dialog)) as ()??) - } - } else { - let alert = UIAlertController(title: Strings.AbandonInvitation.title, message: nil, preferredStyleForTraitCollection: self.traitCollection) - alert.addAction(UIAlertAction(title: Strings.AbandonInvitation.actionTitleDiscard, style: .destructive, handler: { [weak self] _ in - self?.abandonInvitation(dialog: dialog, confirmed: true) - })) - alert.addAction(UIAlertAction(title: Strings.AbandonInvitation.actionTitleDontDiscard, style: .default)) - alert.addAction(UIAlertAction(title: CommonString.Word.Cancel, style: .cancel)) - DispatchQueue.main.async { [weak self] in - self?.present(alert, animated: true, completion: nil) - } - } - } - - - private func deletePersistedInvitation(_ persistedInvitation: PersistedInvitation) { - DispatchQueue(label: "Queue for deleting invitation").async { [weak self] in - guard let _self = self else { return } - do { - try _self.obvEngine.deleteDialog(with: persistedInvitation.uuid) - } catch { - os_log("Could not delete persisted invitation", log: _self.log, type: .error) - } - } - } - -} - - -// MARK: - UICollectionViewDelegateFlowLayout - -extension InvitationsCollectionViewController: UICollectionViewDelegateFlowLayout { - - func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { - switch section { - case 0: - return collectionViewLayoutInsetFirstSection - case 1: - return UIEdgeInsets.init(top: collectionViewLayoutInsetSecondSection.top, - left: collectionViewLayoutInsetSecondSection.left, - bottom: collectionViewLayoutInsetSecondSection.bottom + extraBottomInset, - right: collectionViewLayoutInsetSecondSection.right) - default: - // Never occurs - return UIEdgeInsets.zero - } - } -} - - -// MARK: - Handling keyboard appearance - -extension InvitationsCollectionViewController { - - func registerTextDidBeginEditingNotification() { - let NotificationType = MessengerInternalNotification.TextFieldDidBeginEditing.self - let token = NotificationCenter.default.addObserver(forName: NotificationType.name, object: nil, queue: nil) { [weak self] (notification) in - guard let activeTextField = NotificationType.parse(notification) else { return } - self?.activeTextField = activeTextField - } - observationTokens.append(token) - } - - func registerTextDidEndEditingNotification() { - let NotificationType = MessengerInternalNotification.TextFieldDidEndEditing.self - let token = NotificationCenter.default.addObserver(forName: NotificationType.name, object: nil, queue: nil) { [weak self] (notification) in - guard let fieldThatEndEditing = NotificationType.parse(notification) else { return } - guard let activeTextField = self?.activeTextField else { return } - guard activeTextField == fieldThatEndEditing else { return } - guard let activeSasView = self?.getSasViewCorrespondingToActiveTextField() else { return } - _ = activeSasView.resignFirstResponder() - self?.activeTextField = nil - } - observationTokens.append(token) - } - - - func registerKeyboardNotifications() { - - do { - let token = NotificationCenter.default.addObserver(forName: UIResponder.keyboardWillShowNotification, object: nil, queue: nil) { [weak self] (notification) in - self?.keyboardWillShow(notification) - } - observationTokens.append(token) - } - - do { - let token = NotificationCenter.default.addObserver(forName: UIResponder.keyboardDidShowNotification, object: nil, queue: nil) { [weak self] (notification) in - self?.keyboardIsShown = true - } - observationTokens.append(token) - } - - do { - let token = NotificationCenter.default.addObserver(forName: UIResponder.keyboardWillHideNotification, object: nil, queue: nil) { [weak self] (notification) in - guard self?.keyboardIsShown == true else { return } - self?.keyboardWillHide(notification) - } - observationTokens.append(token) - } - - } - - - private func keyboardWillShow(_ notification: Notification) { - - defer { - if animatorForCollectionViewContent.state != .active { - animatorForCollectionViewContent.startAnimation() - } - } - - let kbdHeight = getKeyboardHeight(notification) - let tabbarHeight = tabBarController?.tabBar.frame.height ?? 0.0 - - guard let activeTextField = self.activeTextField else { return } - guard let activeCell = getCellCorrespondingToActiveTextField() else { return } - - // If the active text field is visible on screen, do not scroll any further. Otherwise, scroll. - - var aRect = self.view.frame - aRect.size.height -= kbdHeight - let bottomLeftCornerOfActiveTextField = activeTextField.convert(CGPoint(x: 0, y: activeTextField.bounds.height), to: view) - let doScrollAfterSettingTheCollectionViewBottomInset = !aRect.contains(bottomLeftCornerOfActiveTextField) - - setCollectionViewBottomInset(to: kbdHeight - tabbarHeight) - - guard doScrollAfterSettingTheCollectionViewBottomInset else { return } - - let cellOrigin = activeCell.convert(CGPoint.zero, to: self.collectionView) - let cellHeight = activeCell.frame.height - let collectionViewHeight = collectionView.bounds.height - let newY = cellOrigin.y + cellHeight - collectionViewHeight + kbdHeight + collectionViewLayoutInsetSecondSection.bottom - let newContentOffset = CGPoint(x: collectionView.contentOffset.x, - y: max(0, newY)) - animatorForCollectionViewContent.addAnimations { [weak self] in - self?.collectionView.contentOffset = newContentOffset - } - - } - - private func keyboardWillHide(_ notification: Notification) { - - defer { - if animatorForCollectionViewContent.state != .active { - animatorForCollectionViewContent.startAnimation() - } - } - - animatorForCollectionViewContent.addAnimations { [weak self] in - self?.setCollectionViewBottomInset(to: 0.0) - } - } - - - private func getKeyboardHeight(_ notification: Notification) -> CGFloat { - let userInfo = notification.userInfo! - let kbSize = (userInfo[UIResponder.keyboardFrameEndUserInfoKey] as! CGRect).size - return kbSize.height - } - - - private func setCollectionViewBottomInset(to bottom: CGFloat) { - collectionView.contentInset = UIEdgeInsets(top: collectionView.contentInset.top, - left: collectionView.contentInset.left, - bottom: bottom + extraBottomInset, - right: collectionView.contentInset.right) - collectionView.scrollIndicatorInsets = UIEdgeInsets( - top: collectionView.verticalScrollIndicatorInsets.top, - left: collectionView.horizontalScrollIndicatorInsets.left, - bottom: bottom + extraBottomInset, - right: collectionView.horizontalScrollIndicatorInsets.right) - - } - - - private func getCellCorrespondingToActiveTextField() -> UICollectionViewCell? { - guard let activeTextField = self.activeTextField else { return nil } - var currentSuperView = activeTextField.superview - while currentSuperView != nil { - if currentSuperView! is UICollectionViewCell { - return (currentSuperView! as! UICollectionViewCell) - } else { - currentSuperView = currentSuperView!.superview - } - } - return nil - } - - - private func getSasViewCorrespondingToActiveTextField() -> SasView? { - guard let activeTextField = self.activeTextField else { return nil } - var currentSuperView = activeTextField.superview - while currentSuperView != nil { - if currentSuperView! is SasView { - return (currentSuperView! as! SasView) - } else { - currentSuperView = currentSuperView!.superview - } - } - return nil - } -} - - -// MARK: - Localized strings - -extension InvitationsCollectionViewController { - - struct Strings { - - static let unknownGroupMemberName = NSLocalizedString("UNKNOWN_GROUP_MEMBER_NAME", comment: "") - - struct InviteSent { - static let subtitle = NSLocalizedString("Your invitation was sent", comment: "Invitation subtitle") - static let details = { (name: String) in - String.localizedStringWithFormat(NSLocalizedString("If %@ accepts your invitation, you will be notified here.", comment: "Invitation details"), name) - } - } - - struct AcceptInvite { - static let subtitle = NSLocalizedString("Invitation received", comment: "Invitation subtitle") - static let details = { (name: String) in - String.localizedStringWithFormat(NSLocalizedString("The invitation appears to come from %@. If you accept this invitation you will guided through the process allowing to make sure that this is the case.", comment: "Invitation details"), name) - } - static let buttonTitle2 = NSLocalizedString("Ignore", comment: "Button title") - } - - struct InvitationAccepted { - static let subtitle = NSLocalizedString("Invitation accepted", comment: "Invitation subtitle") - static let details = { (name: String) in - String.localizedStringWithFormat(NSLocalizedString("We are bootstraping the secure channel between you and %@. Please note that this requires %@'s device to be online.", comment: "Invitation details"), name, name) - } - } - - struct SasExchange { - static let subtitle = NSLocalizedString("Exchange digits", comment: "Invitation subtitle") - static let details = { (name: String, sas: String) in - String.localizedStringWithFormat(NSLocalizedString("You should communicate your four digits to %@. Your digits are %@. You should also enter the 4 digits of %@.", comment: "Invitation details"), name, sas, name) - } - } - - struct SasConfirmed { - static let subtitle = NSLocalizedString("Digits confirmed", comment: "Invitation subtitle") - static let details = { (name: String, sas: String) in - String.localizedStringWithFormat(NSLocalizedString("You have successfully entered the 4 digits of %1$@. You should communicate your four digits to %1$@. Your digits are %2$@.", comment: "Invitation details"), name, sas) - } - } - - struct MutualTrustConfirmed { - static let subtitle = NSLocalizedString("MUTUAL_TRUST_CONFIRMED", comment: "Invitation subtitle") - static let details = { (name: String) in - String.localizedStringWithFormat(NSLocalizedString("MUTUAL_TRUST_CONFIRMED_DETAILS_%@", comment: "Invitation details"), name) - } - - } - - static let showContactButtonTitle = NSLocalizedString("Show Contact", comment: "Button title allowing to navigation towards a contact") - - struct AutoconfirmedContactIntroduction { - static let subtitle = CommonString.Title.newContact - static let details = { (mediatorName: String, contactName: String) in - String.localizedStringWithFormat(NSLocalizedString("%@ was added to your contacts following an introduction by %@.", comment: "Invitation details"), contactName, mediatorName) - } - } - - struct AcceptMediatorInvite { - static let subtitle = CommonString.Title.newSuggestedIntroduction - static let details = { (mediatorName: String, contactName: String) in - String.localizedStringWithFormat(NSLocalizedString("%@ wants to introduce you to %@. If you do trust %@ for this, you may accept this invitation and %@ will soon appear in your contacts, with no further actions from your part (provided that %@ also accepts the invitation). If you don't trust %@ or if you simply do not want to be introduced to %@ you can ignore this invitation (neither %@ nor %@ will be notified of this).", comment: "Invitation details"), mediatorName, contactName, mediatorName, contactName, contactName, mediatorName, contactName, contactName, mediatorName) - } - static let buttonTitle2 = NSLocalizedString("Ignore", comment: "Button title") - } - - struct MediatorInviteAccepted { - static let subtitle = NSLocalizedString("Introduction Accepted", comment: "Invitation subtitle") - static let details = { (mediatorName: String, contactName: String) in - String.localizedStringWithFormat(NSLocalizedString("You accepted to be introduced to %@ by %@. Please wait until %@ also accepts this invitation.", comment: "Invitation details"), contactName, mediatorName, contactName) - } - } - - struct IncreaseMediatorTrustLevelRequired { - static let subtitle = AcceptInvite.subtitle - static let details = { (mediatorName: String, contactName: String) in - String.localizedStringWithFormat(NSLocalizedString("%1@ wants to introduce you to %2@.\n\nOlvid\'s security policy requires you to re-validate the identity of %2@ by exchanging 4-digit codes with them, or to invite %1@ directly.", comment: "Invitation details"), contactName, mediatorName, contactName) - } - static let buttonTitle1 = { (mediatorName: String) in String.localizedStringWithFormat(NSLocalizedString("Exchange digits with %@", comment: "Button title"), mediatorName) } - static let buttonTitle2 = { (contactName: String) in String.localizedStringWithFormat(NSLocalizedString("Invite %@", comment: "Button title"), contactName) } - } - - struct AcceptGroupInvite { - static let subtitle = CommonString.Title.invitationToJoinGroup - static let details = { (groupOwnerName: String) in - String.localizedStringWithFormat(NSLocalizedString("YOU_ARE_INVITED_TO_JOIN_A_GROUP_CREATED_BY_%@_EXPLANATION", comment: "Invitation details"), groupOwnerName) - } - static let subsubTitle = NSLocalizedString("Group Members:", comment: "Title before the list of group members.") - } - - struct GroupJoined { - static let subtitle = NSLocalizedString("New Group Joined", comment: "Invitation subtitle") - static let details = { (groupOwnerName: String) in - String.localizedStringWithFormat(NSLocalizedString("You have joined a group created by %@.", comment: "Invitation details"), groupOwnerName) - } - static let showGroupButtonTitle = NSLocalizedString("Show Group", comment: "Button title allowing to navigation towards a contact group") - } - - struct IncreaseGroupOwnerTrustLevelRequired { - static let subtitle = AcceptInvite.subtitle - static let details = { (groupOwnerName: String) in - String.localizedStringWithFormat(NSLocalizedString("%1$@ is inviting you to a discussion group.\n\nOlvid\'s security policy requires you to re-validate the identity of %1$@ by exchanging 4-digit codes with them.", comment: "Invitation details"), groupOwnerName) - } - static let buttonTitle = { (groupOwnerName: String) in String.localizedStringWithFormat(NSLocalizedString("Exchange digits with %@", comment: "Button title"), groupOwnerName) } - } - - struct OneToOneInvitationSent { - static let subtitle = NSLocalizedString("ONE_TO_ONE_INVITATION_SENT", comment: "") - static let details = { (contactName: String) in - String.localizedStringWithFormat(NSLocalizedString("ONE_TO_ONE_DISCUSSION_INVITATION_SENT_TO_%@", comment: "Invitation details"), contactName) - } - } - - struct OneToOneInvitationReceived { - static let subtitle = NSLocalizedString("ONE_TO_ONE_INVITATION_RECEIVED", comment: "") - static let details = { (contactName: String) in - String.localizedStringWithFormat(NSLocalizedString("ONE_TO_ONE_DISCUSSION_INVITATION_RECEIVED_FROM_%@", comment: "Invitation details"), contactName) - } - } - - struct GroupCreated { - static let subtitle = NSLocalizedString("Group Created", comment: "Invitation subtitle") - static let details = { (groupOwnerName: String) in - String.localizedStringWithFormat(NSLocalizedString("All the members of the group created by %@ have accepted the invitation.", comment: "Invitation details"), groupOwnerName) - } - static let subsubTitle = NSLocalizedString("Confirmed Group Members:", comment: "Title before the list of group members.") - } - - struct AbandonInvitation { - static let title = NSLocalizedString("Discard this invitation?", comment: "Action title") - static let actionTitleDiscard = NSLocalizedString("Discard invitation", comment: "Action title") - static let actionTitleDontDiscard = NSLocalizedString("Do not discard invitation", comment: "Action title") - } - - struct AbandonGroupCreation { - static let title = NSLocalizedString("Discard this group creation?", comment: "Action title") - static let message = NSLocalizedString("The other group members will not be notified.", comment: "Action message") - static let actionTitleDiscard = NSLocalizedString("Discard group creation", comment: "Action title") - static let actionTitleDontDiscard = NSLocalizedString("Do not discard group creation", comment: "Action title") - } - - static let chipTitleActionRequired = NSLocalizedString("Action Required", comment: "Chip title") - static let chipTitleNew = NSLocalizedString("New", comment: "Chip title") - static let chipTitleUpdated = NSLocalizedString("Updated", comment: "Chip title") - - struct IncorrectSASAlert { - static let title = NSLocalizedString("Incorrect code", comment: "Title of an alert") - static let message = NSLocalizedString("The core you entered is incorrect. The code you need to enter is the one displayed on your contact's device.", comment: "Message of an alert") - } - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/InvitationsCollectionViewController.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/InvitationsCollectionViewController.xib deleted file mode 100644 index 14f4c413..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/InvitationsCollectionViewController.xib +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/InvitationsCollectionViewControllerDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/InvitationsCollectionViewControllerDelegate.swift deleted file mode 100644 index a8a73520..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/InvitationsCollectionViewControllerDelegate.swift +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import ObvTypes - -protocol InvitationsCollectionViewControllerDelegate: AnyObject { - - func performTrustEstablishmentProtocolOfRemoteIdentity(remoteCryptoId: ObvCryptoId, remoteFullDisplayName: String) - func rePerformTrustEstablishmentProtocolOfContactIdentity(contactCryptoId: ObvCryptoId, contactFullDisplayName: String) - - func userWantsToCancelSentInviteContactToOneToOne(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingHeaderView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingHeaderView.swift deleted file mode 100644 index 46292ea7..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingHeaderView.swift +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - -protocol CellContainingHeaderView { - - var cellHeaderView: CellHeaderView! { get } - -} - -extension CellContainingHeaderView where Self: InvitationCollectionCell { - - var title: String { - get { return cellHeaderView.title } - set { cellHeaderView.title = newValue } - } - - var subtitle: String { - get { return cellHeaderView.subtitle } - set { cellHeaderView.subtitle = newValue } - } - - var details: String { - get { return cellHeaderView.details } - set { cellHeaderView.details = newValue } - } - - var date: Date? { - get { return cellHeaderView.date } - set { cellHeaderView.date = newValue } - } - - var identityColors: (background: UIColor, text: UIColor)? { - get { return cellHeaderView.identityColors } - set { cellHeaderView.identityColors = newValue } - } - - func addChip(withText text: String) { - cellHeaderView.addChip(withText: text) - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingOneButtonView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingOneButtonView.swift deleted file mode 100644 index fa8972a6..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingOneButtonView.swift +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - -protocol CellContainingOneButtonView { - - var oneButtonView: OneButtonView? { get } - - var buttonTitle: String? { get set } - var buttonAction: (() -> Void)? { get set } -} - -extension CellContainingOneButtonView { - - var buttonTitle: String? { - get { return oneButtonView?.buttonTitle } - set { oneButtonView?.buttonTitle = newValue } - } - - var buttonAction: (() -> Void)? { - get { return oneButtonView?.buttonAction } - set { oneButtonView?.buttonAction = newValue } - } - - func useLeadingButton() { - oneButtonView?.useLeadingButton() - } - - func useTrailingButton() { - oneButtonView?.useTrailingButton() - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingOneColumnView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingOneColumnView.swift deleted file mode 100644 index 751109fa..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingOneColumnView.swift +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - -protocol CellContainingOneColumnView { - - var oneColumnView: OneColumnView! { get } - -} - -extension CellContainingOneColumnView { - - func setTitle(with title: String) { - oneColumnView.setTitle(with: title) - } - - func setList(with list: [String]) { - oneColumnView.setList(with: list) - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingSasView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingSasView.swift deleted file mode 100644 index d94b41fb..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingSasView.swift +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - -protocol CellContainingSasView { - - var sasView: SasView! { get } - - var onSasInput: ((String) -> Void)? { get set } - var onAbort: (() -> Void)? { get set } - - func setOwnSas(ownSas: Data) throws - -} - -extension CellContainingSasView { - - func resetContactSas() { - sasView.resetContactSas() - } - - var onSasInput: ((String) -> Void)? { - get { - return sasView.onSasInput - } - set { - sasView.onSasInput = newValue - } - } - - var onAbort: (() -> Void)? { - get { - return sasView.onAbort - } - set { - sasView.onAbort = newValue - } - } - - func setOwnSas(ownSas: Data) throws { - try sasView.setOwnSas(ownSas: ownSas) - } - - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingTwoButtonsView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingTwoButtonsView.swift deleted file mode 100644 index 681f434a..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingTwoButtonsView.swift +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation - -protocol CellContainingTwoButtonsView { - - var twoButtonsView: TwoButtonsView! { get } - - var buttonTitle1: String { get set } - var buttonTitle2: String { get set } - - var button1Action: (() -> Void)? { get set } - var button2Action: (() -> Void)? { get set } - -} - -extension CellContainingTwoButtonsView { - - var buttonTitle1: String { - get { return twoButtonsView.buttonTitle1 } - set { twoButtonsView.buttonTitle1 = newValue } - } - - var buttonTitle2: String { - get { return twoButtonsView.buttonTitle2 } - set { twoButtonsView.buttonTitle2 = newValue } - } - - var button1Action: (() -> Void)? { - get { return twoButtonsView.button1Action } - set { twoButtonsView.button1Action = newValue } - } - - var button2Action: (() -> Void)? { - get { return twoButtonsView.button2Action } - set { twoButtonsView.button2Action = newValue } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingTwoColumnsView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingTwoColumnsView.swift deleted file mode 100644 index 1d325f65..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/CellContainingTwoColumnsView.swift +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - -protocol CellContainingTwoColumnsView { - - var oneColumnView: TwoColumnsView! { get } - -} - -extension CellContainingTwoColumnsView { - - func setLeftTile(with title: String) { - oneColumnView.setLeftTile(with: title) - } - - func setRightTile(with title: String) { - oneColumnView.setRightTile(with: title) - } - - func setLeftList(with list: [String]) { - oneColumnView.setLeftList(with: list) - } - - func setRightList(with list: [String]) { - oneColumnView.setRightList(with: list) - } - - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/InvitationCollectionCell.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/InvitationCollectionCell.swift deleted file mode 100644 index 2ad66577..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/Protocols/InvitationCollectionCell.swift +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - - -protocol InvitationCollectionCell { - - static var nibName: String { get } - static var identifier: String { get } - - func setWidth(to: CGFloat) - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/Base.lproj/SasAcceptedView.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/Base.lproj/SasAcceptedView.xib deleted file mode 100644 index 57aabeff..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/Base.lproj/SasAcceptedView.xib +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/Base.lproj/SasView.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/Base.lproj/SasView.xib deleted file mode 100644 index 0a14aa6f..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/Base.lproj/SasView.xib +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/CellHeaderView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/CellHeaderView.swift deleted file mode 100644 index d1540a66..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/CellHeaderView.swift +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit - -final class CellHeaderView: UIView { - - static let nibName = "CellHeaderView" - - var title = "" { didSet { setTitleViewText(); setCircledText() } } - var subtitle = "" { didSet { setSubtitleViewText() } } - var details = "" { didSet { setDetailsTextViewText() } } - var date: Date? { didSet { setDateLabelText() } } - var identityColors: (background: UIColor, text: UIColor)? { didSet { setIdentityColors() } } - - // Views - - @IBOutlet weak var circlePlaceholder: UIView! { didSet { circlePlaceholder.backgroundColor = .clear }} - @IBOutlet weak var titleLabel: UILabel! { didSet { titleLabel.textColor = AppTheme.shared.colorScheme.label } } - @IBOutlet weak var subtitleLabel: UILabel! { didSet { subtitleLabel?.textColor = AppTheme.shared.colorScheme.secondaryLabel } } - @IBOutlet weak var detailsLabel: UILabel! { didSet { detailsLabel?.textColor = AppTheme.shared.colorScheme.secondaryLabel } } - @IBOutlet weak var dateLabel: UILabel! { didSet { dateLabel?.textColor = AppTheme.shared.colorScheme.tertiaryLabel } } - @IBOutlet weak var titleStackView: UIStackView! - private var chipsStack: UIStackView? = nil - - // Subviews set in awakeFromNib - - var circledInitials: CircledInitials! - var leadingTextAnchor: NSLayoutXAxisAnchor! - - let dateFormater: DateFormatter = { - let df = DateFormatter() - df.doesRelativeDateFormatting = true - df.dateStyle = .short - df.timeStyle = .short - df.locale = Locale.current - return df - }() - - - func addChip(withText text: String) { - let obvChipView = ObvChipLabel() - obvChipView.chipColor = appTheme.colorScheme.systemFill - obvChipView.text = text - obvChipView.textColor = ObvChipLabel.defaultTextColor - if let chipsStack = self.chipsStack { - chipsStack.addArrangedSubview(obvChipView) - } else { - self.chipsStack = UIStackView(arrangedSubviews: [obvChipView]) - self.chipsStack?.spacing = 4 - if let titleStackView = self.titleStackView { - titleStackView.addArrangedSubview(self.chipsStack!) - } - } - } - - - func prepareForReuse() { - if let chipsStack = self.chipsStack { - titleStackView.removeArrangedSubview(chipsStack) - chipsStack.removeFromSuperview() - self.setNeedsDisplay() - } - self.chipsStack = nil - } -} - -// MARK: - awakeFromNib - -extension CellHeaderView { - - override func awakeFromNib() { - super.awakeFromNib() - translatesAutoresizingMaskIntoConstraints = false - leadingTextAnchor = titleLabel.leadingAnchor - instantiateAndPlaceCircledInitials() - - if let chipsStack = self.chipsStack { - titleStackView.addArrangedSubview(chipsStack) - } - } - - private func instantiateAndPlaceCircledInitials() { - - circledInitials = (Bundle.main.loadNibNamed(CircledInitials.nibName, owner: nil, options: nil)!.first as! CircledInitials) - circlePlaceholder.addSubview(circledInitials) - circledInitials.topAnchor.constraint(equalTo: circlePlaceholder.topAnchor).isActive = true - circledInitials.bottomAnchor.constraint(equalTo: circlePlaceholder.bottomAnchor).isActive = true - circledInitials.leadingAnchor.constraint(equalTo: circlePlaceholder.leadingAnchor).isActive = true - circledInitials.trailingAnchor.constraint(equalTo: circlePlaceholder.trailingAnchor).isActive = true - - } - -} - -// MARK: - Setting the view's texts and sizes - -extension CellHeaderView { - - private func setTitleViewText() { - titleLabel.text = title - } - - private func setSubtitleViewText() { - subtitleLabel.text = subtitle - } - - private func setDetailsTextViewText() { - detailsLabel.text = details - } - - private func setDateLabelText() { - if let date = date { - dateLabel.text = dateFormater.string(from: date) - } - } - -} - -// MARK: - Drawing the circle - -extension CellHeaderView { - - private func setCircledText() { - circledInitials.showCircledText(from: title) - } - - private func setIdentityColors() { - circledInitials.identityColors = identityColors - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/CellHeaderView.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/CellHeaderView.xib deleted file mode 100644 index 242979ef..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/CellHeaderView.xib +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneButtonView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneButtonView.swift deleted file mode 100644 index d55beb7a..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneButtonView.swift +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - -class OneButtonView: UIView { - - static let nibName = "OneButtonView" - - var buttonTitle: String? = "" { - didSet { - trailingButton.setTitle(buttonTitle, for: .normal) - leadingButton.setTitle(buttonTitle, for: .normal) - } - } - var buttonAction: (() -> Void)? = nil - - // Views - - @IBOutlet weak var leadingButton: UIButton! - @IBOutlet weak var trailingButton: UIButton! - -} - -// MARK: - awakeFromNib - -extension OneButtonView { - - override func awakeFromNib() { - super.awakeFromNib() - translatesAutoresizingMaskIntoConstraints = false - useTrailingButton() - } - - func useLeadingButton() { - leadingButton.isHidden = false - trailingButton.isHidden = true - } - - func useTrailingButton() { - leadingButton.isHidden = true - trailingButton.isHidden = false - } -} - - -extension OneButtonView { - - @IBAction func buttonPressed(_ sender: UIButton) { - buttonAction?() - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneButtonView.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneButtonView.xib deleted file mode 100644 index 0279e675..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneButtonView.xib +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneColumnView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneColumnView.swift deleted file mode 100644 index 820a8148..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneColumnView.swift +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit - - -class OneColumnView: UIView { - - static let nibName = "OneColumnView" - - // Views - - @IBOutlet weak var titleLabel: UILabel! - @IBOutlet weak var listLabel: UILabel! - -} - -// MARK: - awakeFromNib - -extension OneColumnView { - - override func awakeFromNib() { - super.awakeFromNib() - translatesAutoresizingMaskIntoConstraints = false - configureAttributes() - } - - - private func configureAttributes() { - titleLabel.textColor = AppTheme.shared.colorScheme.label - listLabel.textColor = AppTheme.shared.colorScheme.secondaryLabel - } - -} - - -// MARK: - API - -extension OneColumnView { - - func setTitle(with title: String) { - titleLabel.text = title - } - - - func setList(with list: [String]) { - var s = "" - for (index, item) in list.enumerated() { - s += "∙ \(item)" - if index != list.count-1 { - s += "\n" - } - } - if s == "" { - s = "None" - } - listLabel.text = s - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneColumnView.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneColumnView.xib deleted file mode 100644 index d5da1047..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/OneColumnView.xib +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/SasAcceptedView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/SasAcceptedView.swift deleted file mode 100644 index 7c3df3c0..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/SasAcceptedView.swift +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit -import OlvidUtils -import ObvUI - -class SasAcceptedView: UIView, ObvErrorMaker { - - static let nibName = "SasAcceptedView" - - private let expectedSasLength = 4 - private let sasFont = UIFont.preferredFont(forTextStyle: .title2) - - static let errorDomain = "SasAcceptedView" - - @IBOutlet weak var ownSasTitleLabel: UILabel! { didSet { ownSasTitleLabel.textColor = AppTheme.shared.colorScheme.label } } - @IBOutlet weak var contactSasTitleLabel: UILabel! { didSet { contactSasTitleLabel.textColor = AppTheme.shared.colorScheme.label }} - - @IBOutlet weak var ownSasLabel: UILabel! { - didSet { - ownSasLabel.textColor = AppTheme.shared.colorScheme.secondaryLabel - ownSasLabel.font = sasFont - } - } - @IBOutlet weak var contactSasLabel: UILabel! { - didSet { - contactSasLabel.textColor = AppTheme.shared.colorScheme.secondaryLabel - contactSasLabel.font = sasFont - contactSasLabel.text = "✓" - } - } - -} - -// MARK: - awakeFromNib, configuration and responding to external events - -extension SasAcceptedView { - - override func awakeFromNib() { - super.awakeFromNib() - translatesAutoresizingMaskIntoConstraints = false - } - -} - -// MARK: - SAS related stuff - -fileprivate extension String { - - func isValidSas(ofLength length: Int) -> Bool { - guard self.count == length else { return false } - return self.allSatisfy { $0.isValidSasCharacter() } - } - -} - -fileprivate extension Character { - - func isValidSasCharacter() -> Bool { - return self >= "0" && self <= "9" - } - -} - -extension SasAcceptedView { - - func setOwnSas(ownSas: Data) throws { - guard let sas = String(data: ownSas, encoding: .utf8) else { throw Self.makeError(message: "Could not turn SAS into string") } - guard sas.isValidSas(ofLength: expectedSasLength) else { throw Self.makeError(message: "SAS is not valid") } - ownSasLabel.text = sas - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/SasView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/SasView.swift deleted file mode 100644 index fc749918..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/SasView.swift +++ /dev/null @@ -1,201 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit -import OlvidUtils -import ObvUI - - -class SasView: UIView, ObvErrorMaker { - - static let nibName = "SasView" - - private let expectedSasLength = 4 - private let sasFont = UIFont.preferredFont(forTextStyle: .title2) - static let errorDomain = "SasView" - - // Views - - @IBOutlet weak var ownSasTitleLabel: UILabel! { didSet { ownSasTitleLabel.textColor = AppTheme.shared.colorScheme.label } } - @IBOutlet weak var contactSasTitleLabel: UILabel! { didSet { contactSasTitleLabel.textColor = AppTheme.shared.colorScheme.label }} - - @IBOutlet weak var ownSasLabel: UILabel! { - didSet { - ownSasLabel.textColor = AppTheme.shared.colorScheme.secondaryLabel - ownSasLabel.font = sasFont - } - } - - @IBOutlet weak var contactSasTextField: ObvTextField! { - didSet { - contactSasTextField.delegate = self - contactSasTextField.font = sasFont - contactSasTextField.textColor = appTheme.colorScheme.secondaryLabel - NotificationCenter.default.addObserver(forName: UITextField.textDidChangeNotification, object: contactSasTextField, queue: OperationQueue.main, using: self.textFieldDidChange) - } - } - - @IBOutlet weak var contactSasTextFieldWidth: NSLayoutConstraint! { - didSet { - let width = computeWidthOfContactSasTextField() - if contactSasTextFieldWidth.constant != width { - contactSasTextFieldWidth.constant = width - setNeedsLayout() - } - } - } - - @IBOutlet weak var doneButton: ObvButtonBorderless! - - var onSasInput: ((_ enteredDigits: String) -> Void)? - var onAbort: (() -> Void)? -} - -// MARK: - awakeFromNib, configuration and responding to external events - -extension SasView { - - override func awakeFromNib() { - super.awakeFromNib() - translatesAutoresizingMaskIntoConstraints = false - evaluateEnteredContactSasAndUpdateUI() - } - - @IBAction func doneButtonTapped(_ sender: UIButton) { - if let sas = evaluateEnteredContactSasAndUpdateUI() { - onSasInput?(sas) - } - } - - @IBAction func abortButtonTapped(_ sender: Any) { - onAbort?() - } - - - private func computeWidthOfContactSasTextField() -> CGFloat { - let typicalSas = String(repeating: "X", count: expectedSasLength) as NSString - let minimumWidth = typicalSas.size(withAttributes: [NSAttributedString.Key.font: sasFont]).width - let finalWidth = minimumWidth * 1.1 - return finalWidth - } - - override func resignFirstResponder() -> Bool { - if let enteredSas = contactSasTextField.text { - if enteredSas.isEmpty { - resetContactSas() - } - } else { - resetContactSas() - } - return contactSasTextField.resignFirstResponder() - } - -} - -// MARK: - SAS related stuff - -fileprivate extension String { - - func isValidSas(ofLength length: Int) -> Bool { - guard self.count == length else { return false } - return self.allSatisfy { $0.isValidSasCharacter() } - } - -} - -fileprivate extension Character { - - func isValidSasCharacter() -> Bool { - return self >= "0" && self <= "9" - } - -} - -extension SasView { - - func setOwnSas(ownSas: Data) throws { - guard let sas = String(data: ownSas, encoding: .utf8) else { throw Self.makeError(message: "Could not turn SAS into string") } - guard sas.isValidSas(ofLength: expectedSasLength) else { throw Self.makeError(message: "Invalid SAS") } - ownSasLabel.text = sas - - } - - func resetContactSas() { - contactSasTextField.text = "" - contactSasTextField.placeholder = String(repeating: "X", count: expectedSasLength) - evaluateEnteredContactSasAndUpdateUI() - } - - // Returns a SAS as a String iff it may be a valid SAS - @discardableResult - private func evaluateEnteredContactSasAndUpdateUI() -> String? { - var sas: String? = nil - doneButton.isEnabled = false - if let text = contactSasTextField.text { - if text.isValidSas(ofLength: expectedSasLength) { - sas = text - doneButton.isEnabled = true - } - } - return sas - } - -} - -// MARK: - UITextFieldDelegate - -extension SasView: UITextFieldDelegate { - - func textFieldDidBeginEditing(_ textField: UITextField) { - let NotificationType = MessengerInternalNotification.TextFieldDidBeginEditing.self - let userInfo = [NotificationType.Key.textField: textField] - NotificationCenter.default.post(name: NotificationType.name, - object: nil, - userInfo: userInfo) - contactSasTextField.placeholder = "" - } - - func textFieldDidEndEditing(_ textField: UITextField) { - let NotificationType = MessengerInternalNotification.TextFieldDidEndEditing.self - let userInfo = [NotificationType.Key.textField: textField] - NotificationCenter.default.post(name: NotificationType.name, - object: nil, - userInfo: userInfo) - - } - - func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { - - defer { - evaluateEnteredContactSasAndUpdateUI() - } - - // Validate the string - guard range.location >= 0 && range.location < expectedSasLength else { return false } - guard string.isValidSas(ofLength: string.count) else { return false } - - return true - } - - func textFieldDidChange(notification: Notification) { - debugPrint(contactSasTextField.text ?? "Vide") - evaluateEnteredContactSasAndUpdateUI() - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoButtonsView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoButtonsView.swift deleted file mode 100644 index dab7666a..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoButtonsView.swift +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit - -class TwoButtonsView: UIView { - - static let nibName = "TwoButtonsView" - - // Vars - - var buttonTitle1: String = "" { didSet { button1?.setTitle(buttonTitle1.uppercased(), for: .normal) }} - var buttonTitle2: String = "" { didSet { button2?.setTitle(buttonTitle2.uppercased(), for: .normal) }} - var button1Action: (() -> Void)? = nil - var button2Action: (() -> Void)? = nil - - // Views - - @IBOutlet weak var stackView: UIStackView! - @IBOutlet weak var button1: UIButton! - @IBOutlet weak var button2: UIButton! - -} - -// MARK: - awakeFromNib - -extension TwoButtonsView { - - override func awakeFromNib() { - super.awakeFromNib() - translatesAutoresizingMaskIntoConstraints = false - } - -} - - -extension TwoButtonsView { - - @IBAction func button1Pressed(_ sender: UIButton) { - button1Action?() - } - - @IBAction func button2Pressed(_ sender: UIButton) { - button2Action?() - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoButtonsView.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoButtonsView.xib deleted file mode 100644 index 132ed7bb..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoButtonsView.xib +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoColumnsView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoColumnsView.swift deleted file mode 100644 index 6bca22f1..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoColumnsView.swift +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit -import ObvUICoreData - -class TwoColumnsView: UIView { - - static let nibName = "TwoColumnsView" - - // Views - - @IBOutlet weak var titleLeft: UILabel! - @IBOutlet weak var titleRight: UILabel! - @IBOutlet weak var listLeft: UILabel! - @IBOutlet weak var listRight: UILabel! - -} - - -// MARK: - awakeFromNib - -extension TwoColumnsView { - - override func awakeFromNib() { - super.awakeFromNib() - translatesAutoresizingMaskIntoConstraints = false - configureAttributes() - } - - - private func configureAttributes() { - titleLeft.textColor = AppTheme.shared.colorScheme.label - titleRight.textColor = AppTheme.shared.colorScheme.label - listLeft.textColor = AppTheme.shared.colorScheme.secondaryLabel - listRight.textColor = AppTheme.shared.colorScheme.secondaryLabel - } - -} - - -// MARK: - API - -extension TwoColumnsView { - - func setLeftTile(with title: String) { - titleLeft.text = title - } - - func setRightTile(with title: String) { - titleRight.text = title - } - - func setLeftList(with list: [String]) { - var s = "" - for (index, item) in list.enumerated() { - s += "✓ \(item)" - if index != list.count-1 { - s += "\n" - } - } - if s == "" { - s = CommonString.Word.None - } - listLeft.text = s - } - - func setRightList(with list: [String]) { - var s = "" - for (index, item) in list.enumerated() { - s += "∙ \(item)" - if index != list.count-1 { - s += "\n" - } - } - if s == "" { - s = "None" - } - listRight.text = s - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoColumnsView.xib b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoColumnsView.xib deleted file mode 100644 index bdcba942..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/TwoColumnsView.xib +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/en.lproj/SasAcceptedView.strings b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/en.lproj/SasAcceptedView.strings deleted file mode 100644 index 2e2933556c65157a80cf5aaa296b20fda6cfe92c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 802 zcmbu7+Y13f7{!0j`&Vcml{=;6#ihut#q zVuT4%#AV1%BSc=)rc0H&Y9l5(v&pHt*ZL%UaXQRYnX^^JVa-^(2eYNVg?5hERZ3n* zmYzmLI!$3u3ae*FSWYahO^m3gYX!<6Jx zF{u9pNm8VLyn`#o-M2$Q=&~g4b8ljp+`sDu^*+!aI{fjQ_B1HV|CoyKtV9`K3KPSW I!mMm@0~kthPyhe` diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/en.lproj/SasView.strings b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/InvitationsCollection/ViewsForCells/en.lproj/SasView.strings deleted file mode 100644 index bd76dcbbffea69c061788eb18c5f715fb97b31f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1274 zcmbu9K~KU!5QX2lzk>8gLPb$AF&1C>?Mm8Kf#l~K|KpRcZ3xZNmHmnb~wSM)RaOnxSHiSgkDE zoSU#3V%<_RKT+2$>xv%qj(pLAu{u%46OXygBFK^b{HDLKJ#N{>=@P_*5i43FN6hDX zhU-)v*d+W-j?;iix}P|hg~Z|nPDTx6Rd?zYnAt1>ys)8fc>ct9v2$hY5wyh~`5M7# z0-r=}2TK zP2_w*MsMUH&B!%!sIy;nX0veD**3b1SqCrEK5)ZpNxQ>n9nBf@0X`X`9WV7}S!=6~ n(kJri*xex_a#e%bLZ`?sJt%v5S%. - */ - -import UIKit -import os.log -import ObvTypes -import ObvEngine -import ObvUICoreData - -final class InvitationsFlowViewController: UINavigationController, ObvFlowController { - - private(set) var currentOwnedCryptoId: ObvCryptoId - let obvEngine: ObvEngine - - let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: InvitationsFlowViewController.self)) - - var observationTokens = [NSObjectProtocol]() - - static let errorDomain = "InvitationsFlowViewController" - - weak var flowDelegate: ObvFlowControllerDelegate? - - // MARK: - Factory - - init(ownedCryptoId: ObvCryptoId, obvEngine: ObvEngine) { - - self.currentOwnedCryptoId = ownedCryptoId - self.obvEngine = obvEngine - - let layout = UICollectionViewFlowLayout() - let invitationsCollectionViewController = InvitationsCollectionViewController(ownedCryptoId: ownedCryptoId, obvEngine: obvEngine, collectionViewLayout: layout) - super.init(rootViewController: invitationsCollectionViewController) - - invitationsCollectionViewController.delegate = self - - } - - override var delegate: UINavigationControllerDelegate? { - get { - super.delegate - } - set { - // The ObvUserActivitySingleton properly iff it is the delegate of this UINavigationController - guard newValue is ObvUserActivitySingleton else { assertionFailure(); return } - super.delegate = newValue - } - } - - - required init?(coder aDecoder: NSCoder) { fatalError("die") } - - deinit { - observationTokens.forEach { NotificationCenter.default.removeObserver($0) } - } - -} - -// MARK: - Lifecycle - -extension InvitationsFlowViewController { - - override func viewDidLoad() { - super.viewDidLoad() - - title = CommonString.Word.Invitations - - let symbolConfiguration = UIImage.SymbolConfiguration(pointSize: 20.0, weight: .bold) - let image = UIImage(systemName: "tray.and.arrow.down", withConfiguration: symbolConfiguration) - tabBarItem = UITabBarItem(title: nil, image: image, tag: 0) - - delegate = ObvUserActivitySingleton.shared - - let appearance = UINavigationBarAppearance() - appearance.configureWithOpaqueBackground() - navigationBar.standardAppearance = appearance - - } - -} - - -// MARK: - Switching current owned identity - -extension InvitationsFlowViewController { - - @MainActor - func switchCurrentOwnedCryptoId(to newOwnedCryptoId: ObvCryptoId) async { - popToRootViewController(animated: false) - guard let invitationsCollectionViewController = viewControllers.first as? InvitationsCollectionViewController else { assertionFailure(); return } - await invitationsCollectionViewController.switchCurrentOwnedCryptoId(to: newOwnedCryptoId) - } - -} - - -// MARK: - InvitationsDelegate - -extension InvitationsFlowViewController { - - private func respondToInvitation(dialog: ObvDialog, acceptInvite: Bool) { - var localDialog = dialog - do { - try localDialog.setResponseToAcceptInvite(acceptInvite: acceptInvite) - } catch { - assertionFailure() - return - } - obvEngine.respondTo(localDialog) - } - - private func confirmDigits(dialog: ObvDialog, enteredDigits: String) { - var localDialog = dialog - guard let sas = enteredDigits.data(using: .utf8) else { return } - try? localDialog.setResponseToSasExchange(otherSas: sas) - obvEngine.respondTo(localDialog) - } -} - - -// MARK: - InvitationsCollectionViewControllerDelegate - -extension InvitationsFlowViewController: InvitationsCollectionViewControllerDelegate { - - func performTrustEstablishmentProtocolOfRemoteIdentity(remoteCryptoId: ObvCryptoId, remoteFullDisplayName: String) { - flowDelegate?.performTrustEstablishmentProtocolOfRemoteIdentity(remoteCryptoId: remoteCryptoId, remoteFullDisplayName: remoteFullDisplayName) - } - - func rePerformTrustEstablishmentProtocolOfContactIdentity(contactCryptoId: ObvCryptoId, contactFullDisplayName: String) { - flowDelegate?.rePerformTrustEstablishmentProtocolOfContactIdentity(contactCryptoId: contactCryptoId, contactFullDisplayName: contactFullDisplayName) - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/NewInvitationsFlowViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/NewInvitationsFlowViewController.swift new file mode 100644 index 00000000..9449ca94 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/NewInvitationsFlowViewController.swift @@ -0,0 +1,123 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import os.log +import ObvTypes +import ObvEngine +import ObvUICoreData + + + +final class NewInvitationsFlowViewController: UINavigationController, ObvFlowController { + + private(set) var currentOwnedCryptoId: ObvCryptoId + let obvEngine: ObvEngine + + let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: NewInvitationsFlowViewController.self)) + static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: NewInvitationsFlowViewController.self)) + + static let errorDomain = "" + + weak var flowDelegate: ObvFlowControllerDelegate? + + var observationTokens = [NSObjectProtocol]() + + init(ownedCryptoId: ObvCryptoId, obvEngine: ObvEngine) { + self.currentOwnedCryptoId = ownedCryptoId + self.obvEngine = obvEngine + let vc = AllInvitationsViewController(ownedCryptoId: ownedCryptoId) + super.init(rootViewController: vc) + vc.delegate = self + } + + + required init?(coder aDecoder: NSCoder) { fatalError("die") } + + + override var delegate: UINavigationControllerDelegate? { + get { + super.delegate + } + set { + // The ObvUserActivitySingleton property iff it is the delegate of this UINavigationController + guard newValue is ObvUserActivitySingleton else { assertionFailure(); return } + super.delegate = newValue + } + } + + + func switchCurrentOwnedCryptoId(to newOwnedCryptoId: ObvCryptoId) async { + popToRootViewController(animated: false) + guard let allInvitationsVC = viewControllers.first as? AllInvitationsViewController else { assertionFailure(); return } + await allInvitationsVC.switchCurrentOwnedCryptoId(to: newOwnedCryptoId) + } + +} + + +// MARK: - Lifecycle + +extension NewInvitationsFlowViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + let symbolConfiguration = UIImage.SymbolConfiguration(pointSize: 20.0, weight: .bold) + let image = UIImage(systemName: "tray.and.arrow.down", withConfiguration: symbolConfiguration) + tabBarItem = UITabBarItem(title: nil, image: image, tag: 0) + + delegate = ObvUserActivitySingleton.shared + + } + +} + + +// MARK: - AllInvitationsViewControllerDelegate + +extension NewInvitationsFlowViewController: AllInvitationsViewControllerDelegate { + + func userWantsToRespondToDialog(controller: AllInvitationsViewController, obvDialog: ObvDialog) async throws { + try await obvEngine.respondTo(obvDialog) + } + + func userWantsToAbortProtocol(controller: AllInvitationsViewController, obvDialog: ObvTypes.ObvDialog) async throws { + try obvEngine.abortProtocol(associatedTo: obvDialog) + } + + func userWantsToDeleteDialog(controller: AllInvitationsViewController, obvDialog: ObvDialog) async throws { + try obvEngine.deleteDialog(with: obvDialog.uuid) + } + + @MainActor + func userWantsToDiscussWithContact(controller: AllInvitationsViewController, ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) async throws { + guard let contact = try? PersistedObvContactIdentity.get(contactCryptoId: contactCryptoId, + ownedIdentityCryptoId: ownedCryptoId, + whereOneToOneStatusIs: .oneToOne, + within: ObvStack.shared.viewContext), + let discussionId = contact.oneToOneDiscussion?.discussionPermanentID else { + return + } + let deepLink = ObvDeepLink.singleDiscussion(ownedCryptoId: ownedCryptoId, objectPermanentID: discussionId) + ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: deepLink) + .postOnDispatchQueue() + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/AllInvitationsView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/AllInvitationsView.swift new file mode 100644 index 00000000..71c59f5e --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/AllInvitationsView.swift @@ -0,0 +1,153 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvTypes +import UI_SystemIcon + + +/// Is expected to be implemented by ``PersistedObvOwnedIdentity``. +protocol AllInvitationsViewModelProtocol: ObservableObject { + + associatedtype InvitationViewModel: InvitationViewModelProtocol + + var sortedInvitations: [InvitationViewModel] { get } + +} + + +protocol AllInvitationsViewActionsProtocol: AnyObject, InvitationViewActionsProtocol {} + +struct AllInvitationsView: View { + + let actions: AllInvitationsViewActionsProtocol + @ObservedObject var model: Model + + var body: some View { + if !model.sortedInvitations.isEmpty { + ScrollView { + VStack { + ForEach(model.sortedInvitations, id: \.invitationUUID) { invitation in + ObvCardView { + InvitationView(actions: actions, model: invitation) + } + .padding(.bottom) + } + } + .padding() + } + } else { + VStack(alignment: .center) { + HStack { + Spacer() + VStack { + Image(systemIcon: .tray) + .font(.system(size: 50)) + .foregroundStyle(.secondary) + .padding(.bottom) + Text("NO_INVITATION_FOR_NOW_TITLE") + .font(.headline) + .foregroundStyle(.primary) + Text("NO_INVITATION_FOR_NOW_BODY") + .font(.subheadline) + .foregroundStyle(.secondary) + } + Spacer() + } + } + } + } +} + + +// MARK: - Previews + +struct AllInvitationsView_Previews: PreviewProvider { + + private static let ownedCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!) + + private static let otherCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!) + + private final class InvitationModelForPreviews: InvitationViewModelProtocol { + + private static let someDialog = ObvDialog( + uuid: UUID(), + encodedElements: 0.obvEncode(), + ownedCryptoId: AllInvitationsView_Previews.ownedCryptoId, + category: .acceptInvite(contactIdentity: .init( + cryptoId: otherCryptoId, + currentIdentityDetails: .init(coreDetails: try! .init(firstName: "Steve", + lastName: "Jobs", + company: nil, + position: nil, + signedUserDetails: nil), + photoURL: nil)))) + + let ownedCryptoId: ObvCryptoId? = AllInvitationsView_Previews.ownedCryptoId + let title = "Invitation title" + let subtitle = "Invitation subtitle" + let body: String? = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam placerat dignissim nulla. Nullam sed felis nec purus maximus ultricies vitae non mauris. Maecenas quis volutpat lectus." + let invitationUUID = UUID() + var dismissDialog: ObvDialog? { Self.someDialog } + var sasToExchange: (sasToShow: [Character], onSASInput: ((String) -> ObvTypes.ObvDialog?)?)? { + return nil + } + + var buttons: [InvitationViewButtonKind] { + return [] + } + + var numberOfBadEnteredSas = 0 + + var groupMembers: [String] { + ["Steve Jobs"] + } + + var showRedDot: Bool { true } + + var titleSystemIcon: SystemIcon? { return .person } + + var titleSystemIconColor: Color { Color(UIColor.systemPink) } + + } + + + private final class ModelForPreviews: AllInvitationsViewModelProtocol { + let sortedInvitations: [InvitationModelForPreviews] = [ + InvitationModelForPreviews(), + InvitationModelForPreviews(), + ] + } + + private static let model = ModelForPreviews() + + final class ActionsForPreviews: AllInvitationsViewActionsProtocol { + func userWantsToRespondToDialog(_ obvDialog: ObvDialog) {} + func userWantsToAbortProtocol(associatedTo obvDialog: ObvDialog) async throws {} + func userWantsToDeleteDialog(_ obvDialog: ObvDialog) async throws {} + func userWantsToDiscussWithContact(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) async throws {} + } + + private static let actions = ActionsForPreviews() + + static var previews: some View { + AllInvitationsView(actions: actions, model: model) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/Cells/InvitationView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/Cells/InvitationView.swift new file mode 100644 index 00000000..f6de1768 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/Cells/InvitationView.swift @@ -0,0 +1,686 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvTypes +import Combine +import UI_SystemIcon + + +protocol InvitationViewModelProtocol: ObservableObject { + var ownedCryptoId: ObvCryptoId? { get } // Expected to be non-nil + var title: String { get } + var titleSystemIcon: SystemIcon? { get } + var titleSystemIconColor: Color { get } + var subtitle: String { get } + var body: String? { get } + var invitationUUID: UUID { get } + var sasToExchange: (sasToShow: [Character], onSASInput: ((String) -> ObvDialog?)?)? { get } + var buttons: [InvitationViewButtonKind] { get } + var numberOfBadEnteredSas: Int { get } + var groupMembers: [String] { get } + var showRedDot: Bool { get } +} + + +protocol InvitationViewActionsProtocol { + func userWantsToRespondToDialog(_ obvDialog: ObvDialog) async throws + func userWantsToAbortProtocol(associatedTo obvDialog: ObvDialog) async throws + func userWantsToDeleteDialog(_ obvDialog: ObvDialog) async throws + func userWantsToDiscussWithContact(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) async throws +} + + +enum InvitationViewButtonKind: Identifiable, Equatable { + case blueForRespondingToDialog(obvDialog: ObvDialog, localizedTitle: String) + case plainForRespondingToDialog(obvDialog: ObvDialog, localizedTitle: String, confirmationTitle: LocalizedStringKey?) + case plainForAbortingProtocol(obvDialog: ObvDialog, localizedTitle: String) + case plainForDeletingDialog(obvDialog: ObvDialog, localizedTitle: String) + case discussWithContact(contact: ObvGenericIdentity) + case spacer + var id: String { + switch self { + case .blueForRespondingToDialog(let obvDialog, let localizedTitle), + .plainForRespondingToDialog(obvDialog: let obvDialog, localizedTitle: let localizedTitle, _), + .plainForAbortingProtocol(obvDialog: let obvDialog, localizedTitle: let localizedTitle), + .plainForDeletingDialog(obvDialog: let obvDialog, localizedTitle: let localizedTitle): + return [obvDialog.uuid.uuidString, localizedTitle].joined(separator: "|") + case .discussWithContact(contact: let contact): + return ["discussWithContact", contact.cryptoId.getIdentity().hexString()].joined(separator: "|") + case .spacer: + return UUID().uuidString + } + } +} + + +struct InvitationView: View, SASTextFieldActions { + + let actions: InvitationViewActionsProtocol + @ObservedObject var model: Model + + @State private var isInterfaceDisabled = false + @State private var isAbortConfirmationShown = false + @State private var isRespondingToDialogConfirmationShown = false + + + private func respondButtonTapped(dialog: ObvDialog) { + Task { + do { + try await actions.userWantsToRespondToDialog(dialog) + } catch { + assertionFailure() + } + } + } + + + private func abortButtonTapped(obvDialog: ObvDialog) { + Task { + do { + try await actions.userWantsToAbortProtocol(associatedTo: obvDialog) + } catch { + assertionFailure() + } + } + } + + + private func dismissButtonTapped(obvDialog: ObvDialog) { + Task { + do { + try await actions.userWantsToDeleteDialog(obvDialog) + } catch { + assertionFailure() + } + } + } + + + private func discussWithContactButtonTapped(contactCryptoId: ObvCryptoId) { + guard let ownedCryptoId = model.ownedCryptoId else { return } + Task { + do { + try await actions.userWantsToDiscussWithContact(ownedCryptoId: ownedCryptoId, contactCryptoId: contactCryptoId) + } catch { + assertionFailure() + } + } + } + + // SASTextFieldActions + + func userEnteredSAS(in dialog: ObvDialog) { + isInterfaceDisabled = true + Task { + do { + try await actions.userWantsToRespondToDialog(dialog) + } catch { + assertionFailure() + } + } + } + + + func userNeedsToTypeSASAgain() { + withAnimation { + isInterfaceDisabled = false + } + } + + + // Body + + var body: some View { + VStack { + + HStack { + if let titleSystemIcon = model.titleSystemIcon { + Image(systemIcon: titleSystemIcon) + .font(.title) + .foregroundStyle(model.titleSystemIconColor) + } + VStack(alignment: .leading) { + Text(model.title) + .font(.headline) + Text(model.subtitle) + .font(.subheadline) + .foregroundStyle(.secondary) + } + Spacer() + if model.showRedDot { + Image(systemIcon: .circleFill) + .foregroundStyle(Color(UIColor.systemRed)) + } + } + .padding(.bottom, 4) + + if let body = model.body { + HStack { + Text(body) + .font(.body) + .foregroundStyle(.secondary) + Spacer() + }.padding(.bottom, 4) + } + + if let (sasToShow, onSASInput) = model.sasToExchange { + HStack(alignment: .top) { + VStack(alignment: .leading, spacing: 4) { + Text("YOUR_CODE") + .font(.headline) + SASTextField(actions: self, model: .init(mode: .showSAS(sas: sasToShow))) + }.frame(maxWidth: .infinity) + Spacer() + VStack(alignment: .leading, spacing: 4) { + Text("THEIR_CODE") + .font(.headline) + if let onSASInput { + SASTextField(actions: self, model: .init(mode: .enterSAS(numberOfBadEnteredSAS: model.numberOfBadEnteredSas, onSASInput: onSASInput))) + } else { + SASTextField(actions: self, model: .init(mode: .showCheckMark)) + } + }.frame(maxWidth: .infinity) + }.padding(.top) + } + + if !model.groupMembers.isEmpty { + VStack(alignment: .leading) { + HStack { + Text("\(model.groupMembers.count)_GROUP_MEMBERS") + .font(.subheadline) + Spacer() + } + ForEach(model.groupMembers) { groupMember in + Text(verbatim: ["·", groupMember].joined(separator: " ")) + .foregroundStyle(.secondary) + } + } + } + + HStack { + Spacer() + ForEach(model.buttons) { button in + switch button { + + case .plainForRespondingToDialog(obvDialog: let obvDialog, localizedTitle: let localizedTitle, confirmationTitle: let confirmationTitle): + if let confirmationTitle { + Button(action: { isRespondingToDialogConfirmationShown = true }, label: { + Text(verbatim: localizedTitle) + }) + .confirmationDialog(confirmationTitle, isPresented: $isRespondingToDialogConfirmationShown, titleVisibility: .visible) { + Button("YES", action: { respondButtonTapped(dialog: obvDialog) }) + Button("NO", role: .cancel, action: {}) + } + } else { + Button(action: { respondButtonTapped(dialog: obvDialog) }, label: { + Text(verbatim: localizedTitle) + }) + } + + case .blueForRespondingToDialog(obvDialog: let obvDialog, localizedTitle: let localizedTitle): +// if let confirmationLocalizedTitle { +// BlueButtonView(localizedTitle, action: { isRespondingConfirmationShown = true }) +// .confirmationDialog(confirmationLocalizedTitle, isPresented: $isRespondingConfirmationShown, titleVisibility: .visible) { +// Button("YES") { +// respondButtonTapped(obvDialog: obvDialog) +// } +// Button("NO", role: .cancel, action: {}) +// } +// } else { + BlueButtonView(localizedTitle, action: { respondButtonTapped(dialog: obvDialog) }) + // } + + case .plainForAbortingProtocol(obvDialog: let obvDialog, localizedTitle: let localizedTitle): + Button(action: { isAbortConfirmationShown = true }, label: { Text(verbatim: localizedTitle) }) + .confirmationDialog("ARE_YOU_SURE_YOU_WANT_TO_ABORT", isPresented: $isAbortConfirmationShown, titleVisibility: .visible) { + Button("YES") { abortButtonTapped(obvDialog: obvDialog) } + Button("NO", role: .cancel, action: {}) + } + + case .plainForDeletingDialog(obvDialog: let obvDialog, localizedTitle: let localizedTitle): + Button(action: { dismissButtonTapped(obvDialog: obvDialog) }, label: { Text(verbatim: localizedTitle) }) + + case .discussWithContact(contact: let contact): + OtherBlueButtonView("DISCUSS_WITH_\(contact.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.short))", action: { discussWithContactButtonTapped(contactCryptoId: contact.cryptoId) }) + + case .spacer: + Spacer() + + } + } + } + + } + .disabled(isInterfaceDisabled) + .onChange(of: model.buttons) { _ in + isInterfaceDisabled = false + } + } +} + + +protocol SASTextFieldActions { + func userEnteredSAS(in dialog: ObvDialog) + func userNeedsToTypeSASAgain() +} + + +private struct SASTextField: View, SingleSASDigitTextFielddActions { + + let actions: SASTextFieldActions + let model: Model + + @State private var shownAlert: AlertKind = .badSAS + @State private var isAlertShown = false + + private enum AlertKind { + case badSAS + } + + enum Mode { + case showSAS(sas: [Character]) + case enterSAS(numberOfBadEnteredSAS: Int, onSASInput: (String) -> ObvDialog?) + case showCheckMark + } + + struct Model { + let mode: Mode + } + + @State private var textValue0: String = "" + @State private var textValue1: String = "" + @State private var textValue2: String = "" + @State private var textValue3: String = "" + + private var textValues: [String] { + [textValue0, textValue1, textValue2, textValue3] + } + + @FocusState private var indexOfFocusedField: Int? + + private func clearAll() { + textValue0 = "" + textValue1 = "" + textValue2 = "" + textValue3 = "" + indexOfFocusedField = nil + } + + + private var showClearButton: Bool { + switch model.mode { + case .enterSAS: + return true + case .showSAS, .showCheckMark: + return false + } + } + + // SingleTextFieldActions + + /// Called by the ``SingleTextField`` at index `index` each time its text value changes. + func singleTextFieldDidChangeAtIndex(_ index: Int) { + switch model.mode { + case .showSAS, .showCheckMark: + return + case .enterSAS(numberOfBadEnteredSAS: _, onSASInput: let onSASInput): + gotoNextTextFieldIfPossible(fromIndex: index) + if let enteredSAS { + indexOfFocusedField = nil + guard let obvDialog = onSASInput(enteredSAS) else { return } + actions.userEnteredSAS(in: obvDialog) + } + } + } + + // Helpers + + /// Returns an 4 characters SAS if the texts in the text fields allow to compute one. + /// Returns `nil` otherwise. + private var enteredSAS: String? { + let concatenation = textValues + .reduce("", { $0 + $1 }) + .removingAllCharactersNotInCharacterSet(.decimalDigits) + return concatenation.count == 4 ? concatenation : nil + } + + private func gotoNextTextFieldIfPossible(fromIndex: Int) { + guard fromIndex < 3 else { return } + let toIndex = fromIndex + 1 + if textValues[fromIndex].count == 1, textValues[toIndex].count < 1 { + indexOfFocusedField = toIndex + } + } + + + private var isCheckMarkShown: Bool { + switch model.mode { + case .showSAS, .enterSAS: + return false + case .showCheckMark: + return true + } + } + + private var numberOfBadEnteredSAS: Int { + switch model.mode { + case .showSAS, .showCheckMark: + return 0 + case .enterSAS(let numberOfBadEnteredSAS, _): + return numberOfBadEnteredSAS + } + } + + private func alertOkButtonTapped() { + clearAll() + actions.userNeedsToTypeSASAgain() + } + + // Body + + var body: some View { + VStack { + HStack(spacing: 0) { + + switch model.mode { + + case .showSAS(let sas): + ForEach((0.. + private let actions: SingleSASDigitTextFielddActions? // Not needed when the this text field stays disabled + private let model: Model? // Not needed when the this text field stays disabled + + @Environment(\.isEnabled) var isEnabled + + struct Model { + let index: Int // Index of this text field in the BackupKeyTextField + } + + @State private var previousText: String? = nil + + private static let maxLength = 1 + + /// Both `actions` and `model` must be set, unless this text field is disabled by default (just used to show some existing value). + init(_ key: LocalizedStringKey, text: Binding, actions: SingleSASDigitTextFielddActions?, model: Model?) { + self.key = key + self.text = text + self.actions = actions + self.model = model + } + + private let myFont = Font + .system(size: 18) + .monospaced() + .weight(.bold) + + var body: some View { + TextField(key, text: text) + .keyboardType(.decimalPad) + .textContentType(.none) + .multilineTextAlignment(.center) + .font(myFont) + .padding(.vertical, 8) + .overlay(content: { + RoundedRectangle(cornerRadius: 12, style: .continuous) + .stroke(Color(UIColor.systemGray2), lineWidth: 1) + .padding(.horizontal, 1) + }) + .background( + RoundedRectangle(cornerRadius: 12) + .fill(Color(UIColor.systemGray5)) + .padding(.horizontal, 1) + .opacity(isEnabled ? 0 : 1) + ) + .onReceive(Just(text)) { _ in + guard let actions, let model else { return } + guard previousText != text.wrappedValue else { return } + previousText = text.wrappedValue + // We limit the string length to maxLength characters. + let newText = String(text.wrappedValue.removingAllCharactersNotInCharacterSet(.decimalDigits).prefix(Self.maxLength)) + if text.wrappedValue != newText { + text.wrappedValue = newText + } + actions.singleTextFieldDidChangeAtIndex(model.index) + } + } + +} + + + + + + +// MARK: - Button used in this view only + +private struct OtherBlueButtonView: View { + + private let action: () -> Void + private let key: LocalizedStringKey + + @Environment(\.isEnabled) var isEnabled + + init(_ key: LocalizedStringKey, action: @escaping () -> Void) { + self.key = key + self.action = action + } + + var body: some View { + Button(action: action) { + Text(key) + .foregroundStyle(.white) + .padding() + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + } + +} + + +private struct BlueButtonView: View { + + private let action: () -> Void + private let localizedTitle: String + + @Environment(\.isEnabled) var isEnabled + + init(_ localizedTitle: String, action: @escaping () -> Void) { + self.localizedTitle = localizedTitle + self.action = action + } + + var body: some View { + Button(action: action) { + Text(verbatim: localizedTitle) + .foregroundStyle(.white) + .padding() + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + } + +} + + +// MARK: - Private helpers + +fileprivate extension String { + func removingAllCharactersNotInCharacterSet(_ characterSet: CharacterSet) -> String { + return String(self + .trimmingWhitespacesAndNewlines() + .unicodeScalars + .filter({ + characterSet.contains($0) + })) + } +} + + + + + + + + + +// MARK: - Previews + +struct InvitationView_Previews: PreviewProvider { + + private static let ownedCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!) + + private static let otherCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!) + + private final class ModelForPreviews: InvitationViewModelProtocol { + + @Published var numberOfBadEnteredSas = 0 + + private static let someDialog = ObvDialog( + uuid: UUID(), + encodedElements: 0.obvEncode(), + ownedCryptoId: InvitationView_Previews.ownedCryptoId, + category: .acceptInvite(contactIdentity: .init( + cryptoId: otherCryptoId, + currentIdentityDetails: .init(coreDetails: try! .init(firstName: "Steve", + lastName: "Jobs", + company: nil, + position: nil, + signedUserDetails: nil), + photoURL: nil)))) + + let ownedCryptoId: ObvCryptoId? = InvitationView_Previews.ownedCryptoId + let title = "Invitation title" + let subtitle = "Invitation subtitle" + let body: String? = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam placerat dignissim nulla. Nullam sed felis nec purus maximus ultricies vitae non mauris. Maecenas quis volutpat lectus." + let invitationUUID = UUID() + var sasToExchange: (sasToShow: [Character], onSASInput: ((String) -> ObvTypes.ObvDialog?)?)? { + let sasToShow = "1234".map { $0 } + let onSASInput: (String) -> ObvTypes.ObvDialog? = { inputSAS in + guard inputSAS == "0000" else { + self.numberOfBadEnteredSas += 1 + return nil + } + return Self.someDialog + } + return (sasToShow, onSASInput) + } + + var buttons: [InvitationViewButtonKind] { + return [ + .plainForAbortingProtocol(obvDialog: Self.someDialog, localizedTitle: "Abort"), + .spacer, + ] + } + + var groupMembers: [String] { + ["Steve Jobs", "Tim Cook"] + } + + var showRedDot: Bool { true } + + var titleSystemIcon: SystemIcon? { return .person } + + var titleSystemIconColor: Color { Color(UIColor.systemCyan) } + + } + + private static let model = ModelForPreviews() + + final class ActionsForPreviews: InvitationViewActionsProtocol { + func userWantsToAbortProtocol(associatedTo obvDialog: ObvTypes.ObvDialog) async throws {} + func userWantsToRespondToDialog(_ obvDialog: ObvDialog) {} + func userWantsToDeleteDialog(_ obvDialog: ObvDialog) async throws {} + func userWantsToDiscussWithContact(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) async throws {} + } + + private static let actions = ActionsForPreviews() + + static var previews: some View { + InvitationView(actions: actions, model: model) + .previewLayout(PreviewLayout.sizeThatFits) + .padding() + .previewDisplayName("InvitationView") + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/ViewModelsFromCoreDataEntities/PersistedInvitation+InvitationViewModelProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/ViewModelsFromCoreDataEntities/PersistedInvitation+InvitationViewModelProtocol.swift new file mode 100644 index 00000000..dab336ba --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/ViewModelsFromCoreDataEntities/PersistedInvitation+InvitationViewModelProtocol.swift @@ -0,0 +1,411 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI +import ObvUICoreData +import ObvTypes +import UI_SystemIcon + + +extension PersistedInvitation: InvitationViewModelProtocol { + + var ownedCryptoId: ObvCryptoId? { + self.ownedIdentity?.cryptoId + } + + var invitationUUID: UUID { + self.uuid + } + + var showRedDot: Bool { + if actionRequired { + return true + } + switch status { + case .old: + return false + case .updated, .new: + return true + } + } + + var titleSystemIcon: SystemIcon? { + guard let category = obvDialog?.category else { return nil } + switch category { + case .inviteSent, .acceptInvite, .invitationAccepted, .sasExchange, .sasConfirmed: + return .person + case .mutualTrustConfirmed: + return .personBadgeShieldCheckmark + case .acceptMediatorInvite, .mediatorInviteAccepted: + return .personLineDottedPerson + case .acceptGroupInvite, .acceptGroupV2Invite, .freezeGroupV2Invite: + return .person3 + case .oneToOneInvitationSent, .oneToOneInvitationReceived: + return .person + case .syncRequestReceivedFromOtherOwnedDevice: + return nil + } + } + + + var titleSystemIconColor: Color { + guard let category = obvDialog?.category else { return .primary } + switch category { + case .inviteSent, .acceptInvite, .invitationAccepted, .sasExchange, .sasConfirmed: + return Color(UIColor.systemPink) + case .mutualTrustConfirmed: + return Color(UIColor.systemGreen) + case .acceptMediatorInvite, .mediatorInviteAccepted: + return Color(UIColor.systemOrange) + case .acceptGroupInvite, .acceptGroupV2Invite, .freezeGroupV2Invite: + return Color(UIColor.systemIndigo) + case .oneToOneInvitationSent, .oneToOneInvitationReceived: + return Color(UIColor.systemTeal) + case .syncRequestReceivedFromOtherOwnedDevice: + return .primary + } + } + + + var title: String { + switch obvDialog?.category { + + case .inviteSent(let contactIdentity): + return String(format: NSLocalizedString("INVITATION_TITLE_INVITE_SENT_%@", comment: ""), + contactIdentity.fullDisplayName) + + case .acceptInvite(let contactIdentity): + return String(format: NSLocalizedString("INVITATION_TITLE_ACCEPT_INVITE_%@", comment: ""), + contactIdentity.getDisplayNameWithStyle(.short)) + + case .invitationAccepted(let contactIdentity): + return String(format: NSLocalizedString("INVITATION_TITLE_INVITATION_ACCEPTED_%@", comment: ""), + contactIdentity.getDisplayNameWithStyle(.short)) + + case .sasExchange(let contactIdentity, _, _): + return String(format: NSLocalizedString("INVITATION_TITLE_SAS_EXCHANGE_%@", comment: ""), + contactIdentity.getDisplayNameWithStyle(.short)) + + case .sasConfirmed(let contactIdentity, _, _): + return String(format: NSLocalizedString("INVITATION_TITLE_SAS_CONFIRMED_%@", comment: ""), + contactIdentity.getDisplayNameWithStyle(.short)) + + case .mutualTrustConfirmed(let contactIdentity): + return String(format: NSLocalizedString("INVITATION_TITLE_MUTUAL_TRUST_CONFIRMED_%@", comment: ""), + contactIdentity.getDisplayNameWithStyle(.short)) + + case .acceptMediatorInvite(let contactIdentity, let mediatorIdentity): + return String(format: NSLocalizedString("INVITATION_TITLE_ACCEPT_MEDIATOR_INVITE_%@_%@", comment: ""), + mediatorIdentity.getDisplayNameWithStyle(.short), + contactIdentity.getDisplayNameWithStyle(.firstNameThenLastName)) + + case .mediatorInviteAccepted(let contactIdentity, let mediatorIdentity): + return String(format: NSLocalizedString("INVITATION_TITLE_MEDIATOR_INVITE_ACCEPTED_%@_%@", comment: ""), + mediatorIdentity.getDisplayNameWithStyle(.short), + contactIdentity.getDisplayNameWithStyle(.firstNameThenLastName)) + + case .acceptGroupInvite(_, let groupOwner): + return String(format: NSLocalizedString("INVITATION_TITLE_ACCEPT_GROUP_INVITE_%@", comment: ""), + groupOwner.getDisplayNameWithStyle(.short)) + + case .acceptGroupV2Invite: + return NSLocalizedString("INVITATION_TITLE_ACCEPT_GROUP_V2_INVITE", comment: "") + + case .freezeGroupV2Invite: + return NSLocalizedString("INVITATION_TITLE_FREEZE_GROUP_V2_INVITE", comment: "") + + case .oneToOneInvitationSent(let contactIdentity): + return String(format: NSLocalizedString("INVITATION_TITLE_ONE_TO_ONE_INVITATION_SENT_%@", comment: ""), + contactIdentity.getDisplayNameWithStyle(.short)) + + case .oneToOneInvitationReceived(let contactIdentity): + return String(format: NSLocalizedString("INVITATION_TITLE_ONE_TO_ONE_INVITATION_RECEIVED_%@", comment: ""), + contactIdentity.getDisplayNameWithStyle(.short)) + + case nil, .syncRequestReceivedFromOtherOwnedDevice: + return NSLocalizedString("-", comment: "") + } + } + + var subtitle: String { + let df = DateFormatter() + df.dateStyle = .short + df.timeStyle = .short + return self.date.formatted(date: .abbreviated, time: .shortened) + } + + + var body: String? { + guard let obvDialog else { return nil } + switch obvDialog.category { + + case .invitationAccepted(let contactIdentity): + return String(format: NSLocalizedString("INVITATION_BODY_INVITATION_ACCEPTED_%@", comment: ""), contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.short)) + + case .sasExchange(let contactIdentity, _, _): + return String(format: NSLocalizedString("INVITATION_BODY_SAS_EXCHANGE_%@", comment: ""), contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.short)) + + case .sasConfirmed(contactIdentity: let contactIdentity, _, _): + return String(format: NSLocalizedString("INVITATION_BODY_SAS_CONFIRMED_%@", comment: ""), contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.short)) + + case .mutualTrustConfirmed(let contactIdentity): + return String(format: NSLocalizedString("INVITATION_BODY_MUTUAL_TRUST_CONFIRMED_%@", comment: ""), contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.short)) + + case .acceptMediatorInvite(let contactIdentity, let mediatorIdentity): + return String(format: NSLocalizedString("INVITATION_BODY_ACCEPT_MEDIATOR_INVITE_%@_%@", comment: ""), + mediatorIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.firstNameThenLastName), + contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.firstNameThenLastName)) + + case .mediatorInviteAccepted(let contactIdentity, let mediatorIdentity): + return String(format: NSLocalizedString("INVITATION_BODY_MEDIATOR_INVITE_ACCEPTED_%@_%@", comment: ""), + mediatorIdentity.getDisplayNameWithStyle(.short), + contactIdentity.getDisplayNameWithStyle(.firstNameThenLastName)) + + case .acceptGroupInvite(groupMembers: _, groupOwner: let groupOwner): + return String(format: NSLocalizedString("INVITATION_BODY_ACCEPT_GROUP_INVITE_%@", comment: ""), + groupOwner.getDisplayNameWithStyle(.firstNameThenLastName)) + + case .acceptGroupV2Invite(_, let group): + guard let coreDetails = try? GroupV2CoreDetails.jsonDecode(serializedGroupCoreDetails: group.trustedDetailsAndPhoto.serializedGroupCoreDetails), + let groupName = coreDetails.groupName else { + return NSLocalizedString("INVITATION_BODY_ACCEPT_GROUP_V2_INVITE", comment: "") + } + return String(format: NSLocalizedString("INVITATION_BODY_ACCEPT_GROUP_V2_INVITE_%@", comment: ""), groupName) + + case .freezeGroupV2Invite: + return NSLocalizedString("INVITATION_BODY_FREEZE_GROUP_V2_INVITE", comment: "") + + case .oneToOneInvitationSent(let contactIdentity): + return String(format: NSLocalizedString("INVITATION_BODY_ONE_TO_ONE_INVITATION_SENT_%@", comment: ""), + contactIdentity.getDisplayNameWithStyle(.short)) + + case .oneToOneInvitationReceived(contactIdentity: let contactIdentity): + return String(format: NSLocalizedString("INVITATION_BODY_ONE_TO_ONE_INVITATION_RECEIVED_%@", comment: ""), + contactIdentity.getDisplayNameWithStyle(.full)) + + case .inviteSent(contactIdentity: let contactIdentity): + return String(format: NSLocalizedString("INVITATION_BODY_INVITE_SENT_%@", comment: ""), + contactIdentity.fullDisplayName) + + case .acceptInvite(contactIdentity: let contactIdentity): + return String(format: NSLocalizedString("INVITATION_BODY_ACCEPT_INVITE_%@", comment: ""), + contactIdentity.getDisplayNameWithStyle(.full)) + + case .syncRequestReceivedFromOtherOwnedDevice: + assertionFailure("This category should not end up here") + return nil + + } + } + + + var buttons: [InvitationViewButtonKind] { + guard let obvDialog else { return [] } + switch obvDialog.category { + + case .acceptInvite(contactIdentity: _): + guard let dialogForAccepting = try? obvDialog.settingResponseToAcceptInvite(acceptInvite: true), + let dialogForIgnoring = try? obvDialog.settingResponseToAcceptInvite(acceptInvite: false) else { + assertionFailure() + return [] + } + return [ + .plainForRespondingToDialog(obvDialog: dialogForIgnoring, + localizedTitle: NSLocalizedString("Ignore", comment: ""), + confirmationTitle: "ARE_YOU_SURE_YOU_WANT_TO_IGNORE_THIS_INVITATION"), + .blueForRespondingToDialog(obvDialog: dialogForAccepting, + localizedTitle: NSLocalizedString("Accept", comment: "")), + ] + + case .invitationAccepted: + return [ + .plainForAbortingProtocol(obvDialog: obvDialog, localizedTitle: NSLocalizedString("Abort", comment: "")), + ] + + case .sasExchange(contactIdentity: _, sasToDisplay: _, numberOfBadEnteredSas: _): + return [ + .plainForAbortingProtocol(obvDialog: obvDialog, localizedTitle: NSLocalizedString("Abort", comment: "")), + .spacer, + ] + + case .sasConfirmed: + return [ + .plainForAbortingProtocol(obvDialog: obvDialog, localizedTitle: NSLocalizedString("Abort", comment: "")), + ] + + case .inviteSent(contactIdentity: _): + return [ + .plainForAbortingProtocol(obvDialog: obvDialog, localizedTitle: NSLocalizedString("Abort", comment: "")), + ] + + case .mutualTrustConfirmed(contactIdentity: let contactIdentity): + return [ + .plainForDeletingDialog(obvDialog: obvDialog, localizedTitle: NSLocalizedString("Dismiss", comment: "")), + .discussWithContact(contact: contactIdentity), + ] + + case .acceptMediatorInvite: + guard let dialogForAccepting = try? obvDialog.settingResponseToAcceptMediatorInvite(acceptInvite: true), + let dialogForIgnoring = try? obvDialog.settingResponseToAcceptMediatorInvite(acceptInvite: false) else { + assertionFailure() + return [] + } + return [ + .plainForRespondingToDialog(obvDialog: dialogForIgnoring, + localizedTitle: NSLocalizedString("Ignore", comment: ""), + confirmationTitle: "ARE_YOU_SURE_YOU_WANT_TO_IGNORE_THIS_INVITATION"), + .blueForRespondingToDialog(obvDialog: dialogForAccepting, + localizedTitle: NSLocalizedString("Accept", comment: "")), + ] + + case .mediatorInviteAccepted: + return [ + .plainForAbortingProtocol(obvDialog: obvDialog, localizedTitle: NSLocalizedString("Abort", comment: "")), + ] + + case .acceptGroupInvite: + guard let dialogForAccepting = try? obvDialog.settingResponseToAcceptGroupInvite(acceptInvite: true), + let dialogForIgnoring = try? obvDialog.settingResponseToAcceptGroupInvite(acceptInvite: false) else { + assertionFailure() + return [] + } + return [ + .plainForRespondingToDialog(obvDialog: dialogForIgnoring, + localizedTitle: NSLocalizedString("Decline", comment: ""), + confirmationTitle: "ARE_YOU_SURE_YOU_WANT_TO_DECLINE_THIS_INVITATION"), + .blueForRespondingToDialog(obvDialog: dialogForAccepting, + localizedTitle: NSLocalizedString("Accept", comment: "")), + ] + + case .acceptGroupV2Invite: + guard let dialogForAccepting = try? obvDialog.settingResponseToAcceptGroupV2Invite(acceptInvite: true), + let dialogForIgnoring = try? obvDialog.settingResponseToAcceptGroupV2Invite(acceptInvite: false) else { + assertionFailure() + return [] + } + return [ + .plainForRespondingToDialog(obvDialog: dialogForIgnoring, + localizedTitle: NSLocalizedString("Decline", comment: ""), + confirmationTitle: "ARE_YOU_SURE_YOU_WANT_TO_DECLINE_THIS_INVITATION"), + .blueForRespondingToDialog(obvDialog: dialogForAccepting, + localizedTitle: NSLocalizedString("Accept", comment: "")), + ] + + case .oneToOneInvitationSent: + guard let dialogForAborting = try? obvDialog.cancellingOneToOneInvitationSent() else { + assertionFailure() + return [] + } + return [ + .plainForRespondingToDialog(obvDialog: dialogForAborting, + localizedTitle: NSLocalizedString("Abort", comment: ""), + confirmationTitle: "ARE_YOU_SURE_YOU_WANT_TO_ABORT"), + ] + + case .oneToOneInvitationReceived: + guard let dialogForAccepting = try? obvDialog.settingResponseToOneToOneInvitationReceived(invitationAccepted: true), + let dialogForIgnoring = try? obvDialog.settingResponseToOneToOneInvitationReceived(invitationAccepted: false) else { + assertionFailure() + return [] + } + return [ + .plainForRespondingToDialog(obvDialog: dialogForIgnoring, + localizedTitle: NSLocalizedString("Decline", comment: ""), + confirmationTitle: "ARE_YOU_SURE_YOU_WANT_TO_DECLINE_THIS_INVITATION"), + .blueForRespondingToDialog(obvDialog: dialogForAccepting, + localizedTitle: NSLocalizedString("Accept", comment: "")), + ] + + case .freezeGroupV2Invite: + return [ + .plainForAbortingProtocol(obvDialog: obvDialog, localizedTitle: NSLocalizedString("Abort", comment: "")), + ] + + case .syncRequestReceivedFromOtherOwnedDevice: + assertionFailure("This category should never end up here") + return [] + + } + } + + + var groupMembers: [String] { + assert(Thread.isMainThread) + guard let obvDialog else { return [] } + switch obvDialog.category { + case .acceptGroupInvite(groupMembers: let groupMembers, groupOwner: _): + return groupMembers + .map({ $0.getDisplayNameWithStyle(.firstNameThenLastName) }) + .sorted() + case .acceptGroupV2Invite(inviter: _, group: let group): + guard let ownedCryptoId else { return [] } + return group.otherMembers.map { + if let memberContact = try? PersistedObvContactIdentity.get(contactCryptoId: $0.identity, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: ObvStack.shared.viewContext) { + return memberContact.customOrNormalDisplayName + } else if let details = try? ObvIdentityCoreDetails($0.serializedIdentityCoreDetails) { + return details.getDisplayNameWithStyle(.firstNameThenLastName) + } else { + assertionFailure() + return NSLocalizedString("UNKNOWN_GROUP_MEMBER_NAME", comment: "") + } + } + default: + return [] + } + } + + + var numberOfBadEnteredSas: Int { + guard let obvDialog else { return 0 } + switch obvDialog.category { + case .sasExchange(contactIdentity: _, sasToDisplay: _, numberOfBadEnteredSas: let numberOfBadEnteredSas): + return numberOfBadEnteredSas + default: + return 0 + } + } + + + var sasToExchange: (sasToShow: [Character], onSASInput: ((String) -> ObvDialog?)?)? { + guard var obvDialog = self.obvDialog else { return nil } + switch obvDialog.category { + case .sasExchange(contactIdentity: _, sasToDisplay: let sasToDisplay, numberOfBadEnteredSas: _): + guard let sasAsString = String(data: sasToDisplay, encoding: .utf8)?.trimmingWhitespacesAndNewlines(), + sasAsString.count == 4 else { assertionFailure(); return nil } + let onSASInput: (String) -> ObvDialog? = { inputSAS in + guard let data = inputSAS.data(using: .utf8) else { assertionFailure(); return nil } + do { + try obvDialog.setResponseToSasExchange(otherSas: data) + return obvDialog + } catch { + return nil + } + } + return (sasAsString.map({ $0 }), onSASInput) + case .sasConfirmed(contactIdentity: _, sasToDisplay: let sasToDisplay, sasEntered: _): + guard let sasAsString = String(data: sasToDisplay, encoding: .utf8)?.trimmingWhitespacesAndNewlines(), + sasAsString.count == 4 else { assertionFailure(); return nil } + return (sasAsString.map({ $0 }), nil) + default: + return nil + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/ViewModelsFromCoreDataEntities/PersistedObvOwnedIdentity+AllInvitationsViewModelProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/ViewModelsFromCoreDataEntities/PersistedObvOwnedIdentity+AllInvitationsViewModelProtocol.swift new file mode 100644 index 00000000..390b6a4a --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Invitations/SwiftUI/ViewModelsFromCoreDataEntities/PersistedObvOwnedIdentity+AllInvitationsViewModelProtocol.swift @@ -0,0 +1,31 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvUICoreData + + +extension PersistedObvOwnedIdentity: AllInvitationsViewModelProtocol { + + var sortedInvitations: [PersistedInvitation] { + self.invitations.sorted(by: \.date) + } + + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/MainFlowViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/MainFlowViewController.swift index 48b53e7a..71ed89a3 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/MainFlowViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/MainFlowViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -19,6 +19,7 @@ import UIKit import os.log +import StoreKit import CoreData import ObvEngine import ObvTypes @@ -27,6 +28,13 @@ import LinkPresentation import SwiftUI import ObvCrypto import ObvUICoreData +import ObvUI +import ObvSettings + + +protocol MainFlowViewControllerDelegate: AnyObject { + func userWantsToAddNewDevice(_ viewController: MainFlowViewController, ownedCryptoId: ObvCryptoId) async +} final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvFlowControllerDelegate { @@ -37,7 +45,10 @@ final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvF private let splitDelegate: MainFlowViewControllerSplitDelegate // Strong reference to the delegate private weak var createPasscodeDelegate: CreatePasscodeDelegate? + private weak var localAuthenticationDelegate: LocalAuthenticationDelegate? private weak var appBackupDelegate: AppBackupDelegate? + private weak var mainFlowViewControllerDelegate: MainFlowViewControllerDelegate? + private weak var storeKitDelegate: StoreKitDelegate? fileprivate let mainTabBarController = ObvSubTabBarController() fileprivate let navForDetailsView = UINavigationController(rootViewController: OlvidPlaceholderViewController()) @@ -45,15 +56,13 @@ final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvF fileprivate let discussionsFlowViewController: DiscussionsFlowViewController private let contactsFlowViewController: ContactsFlowViewController private let groupsFlowViewController: GroupsFlowViewController - private let invitationsFlowViewController: InvitationsFlowViewController + private let invitationsFlowViewController: NewInvitationsFlowViewController private var shouldPopViewController = false private var shouldScrollToTop = false private var observationTokens = [NSObjectProtocol]() - private var ownedIdentityIsNotActiveViewControllerWasShowAtLeastOnce = false - private var secureCallsInBetaModalWasShown = false /// This variable is set when Olvid is started because an invite or configuration link was opened. @@ -78,14 +87,17 @@ final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvF private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: MainFlowViewController.self)) - init(ownedCryptoId: ObvCryptoId, obvEngine: ObvEngine, createPasscodeDelegate: CreatePasscodeDelegate, appBackupDelegate: AppBackupDelegate) { + init(ownedCryptoId: ObvCryptoId, obvEngine: ObvEngine, createPasscodeDelegate: CreatePasscodeDelegate, localAuthenticationDelegate: LocalAuthenticationDelegate, appBackupDelegate: AppBackupDelegate, mainFlowViewControllerDelegate: MainFlowViewControllerDelegate, storeKitDelegate: StoreKitDelegate) { os_log("🥏🏁 Call to the initializer of MainFlowViewController", log: log, type: .info) self.obvEngine = obvEngine self.currentOwnedCryptoId = ownedCryptoId self.createPasscodeDelegate = createPasscodeDelegate + self.localAuthenticationDelegate = localAuthenticationDelegate self.appBackupDelegate = appBackupDelegate + self.storeKitDelegate = storeKitDelegate + self.mainFlowViewControllerDelegate = mainFlowViewControllerDelegate self.splitDelegate = MainFlowViewControllerSplitDelegate() discussionsFlowViewController = DiscussionsFlowViewController(ownedCryptoId: ownedCryptoId, obvEngine: obvEngine) @@ -97,13 +109,15 @@ final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvF groupsFlowViewController = GroupsFlowViewController(ownedCryptoId: ownedCryptoId, obvEngine: obvEngine) mainTabBarController.addChild(groupsFlowViewController) - invitationsFlowViewController = InvitationsFlowViewController(ownedCryptoId: ownedCryptoId, obvEngine: obvEngine) + //invitationsFlowViewController = InvitationsFlowViewController(ownedCryptoId: ownedCryptoId, obvEngine: obvEngine) + invitationsFlowViewController = NewInvitationsFlowViewController(ownedCryptoId: ownedCryptoId, obvEngine: obvEngine) mainTabBarController.addChild(invitationsFlowViewController) super.init(nibName: nil, bundle: nil) self.delegate = splitDelegate - self.preferredDisplayMode = .allVisible + #warning("This single discussion view controller looks bad in split view under iPad. It looked ok when using .allVisible") + self.preferredDisplayMode = .oneBesideSecondary // .allVisible navForDetailsView.delegate = ObvUserActivitySingleton.shared let appearance = UINavigationBarAppearance() @@ -132,20 +146,9 @@ final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvF observeUserWantsToCallNotifications() observeServerDoesNotSupportCall() observeUserWantsToSelectAndCallContactsNotifications() - observeCallHasBeenUpdated() observationTokens.append(contentsOf: [ - // ObvMessengerCoreDataNotification - ObvMessengerCoreDataNotification.observeOwnedIdentityWasDeactivated(queue: .main) { [weak self] _ in - self?.presentOwnedIdentityIsNotActiveViewControllerIfRequired() - }, - - // ObvEngineNotificationNew - ObvEngineNotificationNew.observeNetworkOperationFailedSinceOwnedIdentityIsNotActive(within: NotificationCenter.default, queue: .main) { [weak self] (_) in - self?.presentOwnedIdentityIsNotActiveViewControllerIfRequired() - }, - // ObvMessengerInternalNotification ObvMessengerInternalNotification.observeUserWantsToDisplayContactIntroductionScreen(queue: .main) { [weak self] contactObjectID, viewController in self?.processUserWantsToDisplayContactIntroductionScreen(contactObjectID: contactObjectID, viewController: viewController) @@ -191,7 +194,6 @@ final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvF if viewDidAppearWasCalled == true { presentOneOfTheModalViewControllersIfRequired() } - presentOwnedIdentityIsNotActiveViewControllerIfRequired() } @@ -243,6 +245,10 @@ final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvF case .newerAppVersionAvailable: guard UIApplication.shared.canOpenURL(ObvMessengerConstants.shortLinkToOlvidAppIniTunes) else { assertionFailure(); return } UIApplication.shared.open(ObvMessengerConstants.shortLinkToOlvidAppIniTunes, options: [:], completionHandler: nil) + case .ownedIdentityIsInactive: + let deepLink = ObvDeepLink.myId(ownedCryptoId: ownedCryptoId) + ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: deepLink) + .postOnDispatchQueue() } } }, @@ -259,16 +265,17 @@ final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvF case .newerAppVersionAvailable: ObvMessengerInternalNotification.UserDismissedSnackBarForLater(ownedCryptoId: ownedCryptoId, snackBarCategory: snackBarCategory) .postOnDispatchQueue() + case .ownedIdentityIsInactive: + ObvMessengerInternalNotification.UserDismissedSnackBarForLater(ownedCryptoId: ownedCryptoId, snackBarCategory: snackBarCategory) + .postOnDispatchQueue() } } }) vc.modalPresentationStyle = .pageSheet - if #available(iOS 15, *) { - if let sheet = vc.sheetPresentationController { - sheet.detents = [.medium(), .large()] - sheet.prefersGrabberVisible = true - sheet.preferredCornerRadius = 16.0 - } + if let sheet = vc.sheetPresentationController { + sheet.detents = [.medium(), .large()] + sheet.prefersGrabberVisible = true + sheet.preferredCornerRadius = 16.0 } self.present(vc, animated: true) @@ -331,10 +338,10 @@ final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvF externallyScannedOrTappedOlvidURL = nil Task { await processExternallyScannedOrTappedOlvidURL(olvidURL: olvidURL) } } - if !ownedIdentityIsNotActiveViewControllerWasShowAtLeastOnce { - presentOwnedIdentityIsNotActiveViewControllerIfRequired() + guard let obvOwnedIdentity = try? obvEngine.getOwnedIdentity(with: currentOwnedCryptoId) else { + assertionFailure() + return } - guard let obvOwnedIdentity = try? obvEngine.getOwnedIdentity(with: currentOwnedCryptoId) else { assertionFailure(); return } if obvOwnedIdentity.isKeycloakManaged { Task { await KeycloakManagerSingleton.shared.registerKeycloakManagedOwnedIdentity(ownedCryptoId: currentOwnedCryptoId, firstKeycloakBinding: false) @@ -343,33 +350,6 @@ final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvF } - @MainActor - private func presentOwnedIdentityIsNotActiveViewControllerIfRequired() { - guard viewDidAppearWasCalled else { return } - guard !anOwnedIdentityWasJustCreatedOrRestored else { return } - let log = self.log - ObvStack.shared.performBackgroundTask { [weak self] (context) in - guard let _self = self else { return } - guard let ownedIdentityObv = try? PersistedObvOwnedIdentity.get(cryptoId: _self.currentOwnedCryptoId, within: context) else { - os_log("Could not find persisted owned identity", log: log, type: .fault) - return - } - guard !ownedIdentityObv.isActive else { return } - // If we reach this point, the current owned identity is not active. So we should present the appropriate view controller. - DispatchQueue.main.async { - // Check that we are not presenting an OwnedIdentityIsNotActiveViewController already - if let presentedVC = self?.presentedViewController as? UINavigationController, presentedVC.children.filter({ $0 is OwnedIdentityIsNotActiveViewController }).isEmpty { - return - } - let ownedIdentityIsNotActiveVC = OwnedIdentityIsNotActiveViewController() - let nav = ObvNavigationController(rootViewController: ownedIdentityIsNotActiveVC) - self?.present(nav, animated: true) - self?.ownedIdentityIsNotActiveViewControllerWasShowAtLeastOnce = true - } - } - } - - @MainActor private func processUserWantsToDisplayContactIntroductionScreen(contactObjectID: TypeSafeManagedObjectID, viewController: UIViewController) { assert(Thread.isMainThread) @@ -412,11 +392,13 @@ final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvF @MainActor private func presentUserNotificationsSubscriberHostingController() async { - self.dismiss(animated: true) { [weak self] in - guard let _self = self else { return } - let vc = AutorisationRequesterHostingController(autorisationCategory: .localNotifications, delegate: _self) - _self.present(vc, animated: true) + guard presentedViewController == nil else { + // We are already presengtin a view controller (e.g., a keycloak authentication view controller) + // We do not present the NewAutorisationRequesterViewController + return } + let vc = NewAutorisationRequesterViewController(autorisationCategory: .localNotifications, delegate: self) + present(vc, animated: true) } @@ -447,12 +429,10 @@ final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvF self?.dismissPresentedViewController() }) vc.modalPresentationStyle = .pageSheet - if #available(iOS 15, *) { - if let sheet = vc.sheetPresentationController { - sheet.detents = [.large()] - sheet.prefersGrabberVisible = true - sheet.preferredCornerRadius = 16.0 - } + if let sheet = vc.sheetPresentationController { + sheet.detents = [.large()] + sheet.prefersGrabberVisible = true + sheet.preferredCornerRadius = 16.0 } self.present(vc, animated: true) return @@ -466,16 +446,6 @@ final class MainFlowViewController: UISplitViewController, OlvidURLHandler, ObvF extension MainFlowViewController { - /// This methods makes sure the interface stays consistent when a `PersistedDiscussion` instance gets deleted. - /// - /// When a `PersistedDiscussion` instance gets deleted, we are in one of the two following cases: - /// - The user (or a contact) deleted all messages of the discussion. In that case, a new `PersistedDiscussion` instance has been created, with the same permanent ID, but with a different `objectID`. - /// In that case: - /// - If the new `PersistedDiscussion` instance, representing the same logical discussion (i.e., with the same permanent ID) is archived, we **remove** all `SomeSingleContactViewController` for that discussion from the view hierarchy. - /// - If the new `PersistedDiscussion` instance is not archived, we **replace** any `SomeSingleContactViewController` instance by a new one, representing the same logical discussion. - /// - The user deleted all messages from a locked discussion. In that case, no new `PersistedDiscussion` instance was created. We remove all `SomeSingleContactViewController` instance from the view hierarchy. - /// - /// Moreover, we must deal with both situations, under iPad and iPhone (where the split view interface is collapsed). @MainActor func processPersistedDiscussionWasDeletedOrArchived(discussionPermanentID: ObvManagedObjectPermanentID) async { @@ -513,7 +483,7 @@ extension MainFlowViewController { } - /// Helper method for `processPersistedDiscussionWasInserted()` + /// Helper method @MainActor private func removeFromTheObvFlowControllersAllSomeSingleDiscussionViewControllerForDiscussionWithPermanentID(_ discussionPermanentID: ObvManagedObjectPermanentID) async { let allFlowViewControllers = self.mainTabBarController.viewControllers?.compactMap { $0 as? ObvFlowController } ?? [] @@ -532,20 +502,11 @@ extension MainFlowViewController { if someSingleDiscussionVC.discussionPermanentID != discussion.discussionPermanentID { return someSingleDiscussionVC } else { - if #available(iOS 15.0, *), !ObvMessengerSettings.Interface.useOldDiscussionInterface { - do { - return try currentFlow?.getNewSingleDiscussionViewController(for: discussion, initialScroll: .newMessageSystemOrLastMessage) - } catch { - assertionFailure(error.localizedDescription) // In production, continue anyway - return nil - } - } else { - do { - return try currentFlow?.getSingleDiscussionViewController(for: discussion) - } catch { - assertionFailure(error.localizedDescription) // In production, continue anyway - return nil - } + do { + return try currentFlow?.getNewSingleDiscussionViewController(for: discussion, initialScroll: .newMessageSystemOrLastMessage) + } catch { + assertionFailure(error.localizedDescription) // In production, continue anyway + return nil } } } @@ -611,13 +572,13 @@ extension MainFlowViewController { } -// MARK: - AutorisationRequesterHostingControllerDelegate +// MARK: - NewAutorisationRequesterViewControllerDelegate -extension MainFlowViewController: AutorisationRequesterHostingControllerDelegate { +extension MainFlowViewController: NewAutorisationRequesterViewControllerDelegate { @MainActor - func requestAutorisation(now: Bool, for autorisationCategory: AutorisationRequesterHostingController.AutorisationCategory) async { - assert(Thread.isMainThread) + func requestAutorisation(autorisationRequester: NewAutorisationRequesterViewController, now: Bool, for autorisationCategory: NewAutorisationRequesterViewController.AutorisationCategory) async { + preventPrivacyWindowSceneFromShowingOnNextWillResignActive() switch autorisationCategory { case .localNotifications: if now { @@ -632,7 +593,7 @@ extension MainFlowViewController: AutorisationRequesterHostingControllerDelegate case .recordPermission: if now { let granted = await AVAudioSession.sharedInstance().requestRecordPermission() - os_log("User granted access to audio: %@", log: log, type: .error, String(describing: granted)) + os_log("User granted access to audio: %@", log: log, type: .info, String(describing: granted)) } dismiss(animated: true) } @@ -699,35 +660,68 @@ extension MainFlowViewController { assertionFailure() return } + let deleteAction = UIAlertAction(title: Strings.AlertConfirmProfileDeletion.actionDeleteProfile, style: .destructive) { [weak self] _ in + Task { [weak self] in await self?.processUserWantsToDeleteOwnedIdentityButMustChooseBetweenLocalAndGlobalDeletion(ownedCryptoId: ownedCryptoId) } + } + + let cancelAction = UIAlertAction(title: CommonString.Word.Cancel, style: .default) + + alert.addAction(deleteAction) + alert.addAction(cancelAction) + + present(alert, animated: true) + + } + + + @MainActor + private func processUserWantsToDeleteOwnedIdentityButMustChooseBetweenLocalAndGlobalDeletion(ownedCryptoId: ObvCryptoId) async { + + assert(Thread.isMainThread) + dismissPresentedViewController() + let traitCollection = self.traitCollection + + guard let ownedIdentityToDelete = try? PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: ObvStack.shared.viewContext) else { return } + + if ownedIdentityToDelete.isActive { - let alert = UIAlertController(title: Strings.AlertNotifyContactsOnOwnedIdentityDeletion.title, - message: Strings.AlertNotifyContactsOnOwnedIdentityDeletion.message, - preferredStyleForTraitCollection: traitCollection) + let alert = UIAlertController( + title: Strings.AlertChooseBetweenGlobalAndLocalOnOwnedIdentityDeletion.title, + message: Strings.AlertChooseBetweenGlobalAndLocalOnOwnedIdentityDeletion.message, + preferredStyleForTraitCollection: traitCollection) - let notifyContactsAction = UIAlertAction(title: Strings.AlertNotifyContactsOnOwnedIdentityDeletion.notifyContactsAction, style: .default) { _ in - self?.processUserWantsToDeleteOwnedIdentityAfterHavingConfirmed(ownedCryptoId: ownedCryptoId, notifyContacts: true) + let globalDeletionAction = UIAlertAction( + title: Strings.AlertChooseBetweenGlobalAndLocalOnOwnedIdentityDeletion.globalDeletionAction, style: .destructive) + { [weak self] _ in + Task { [weak self] in await self?.processUserWantsToDeleteOwnedIdentityAfterHavingConfirmed(ownedCryptoId: ownedCryptoId, globalOwnedIdentityDeletion: true) } } - let doNotNotifyContactsAction = UIAlertAction(title: Strings.AlertNotifyContactsOnOwnedIdentityDeletion.doNotNotifyContactsAction, style: .default) { _ in - self?.processUserWantsToDeleteOwnedIdentityAfterHavingConfirmed(ownedCryptoId: ownedCryptoId, notifyContacts: false) + let localDeletionAction = UIAlertAction( + title: Strings.AlertChooseBetweenGlobalAndLocalOnOwnedIdentityDeletion.localDeletionAction, style: .destructive) + { [weak self] _ in + Task { [weak self] in await self?.processUserWantsToDeleteOwnedIdentityAfterHavingConfirmed(ownedCryptoId: ownedCryptoId, globalOwnedIdentityDeletion: false) } } let cancelAction = UIAlertAction(title: CommonString.Word.Cancel, style: .default) - alert.addAction(notifyContactsAction) - alert.addAction(doNotNotifyContactsAction) + alert.addAction(globalDeletionAction) + alert.addAction(localDeletionAction) alert.addAction(cancelAction) - self?.present(alert, animated: true) + present(alert, animated: true) + + } else { + + // Since the identity is not active, a global delete makes no sense. + // We immediately go to the last step, assuming a local delete. + + await processUserWantsToDeleteOwnedIdentityAfterHavingConfirmed(ownedCryptoId: ownedCryptoId, globalOwnedIdentityDeletion: false) } - let cancelAction = UIAlertAction(title: CommonString.Word.Cancel, style: .default) - alert.addAction(deleteAction) - alert.addAction(cancelAction) - present(alert, animated: true) } /// This method is called last during the UI process allowing to delete an owned identity. It allows to make sure that the does want to delete her owned identity by asking her to write the DELETE word. - private func processUserWantsToDeleteOwnedIdentityAfterHavingConfirmed(ownedCryptoId: ObvCryptoId, notifyContacts: Bool) { + @MainActor + private func processUserWantsToDeleteOwnedIdentityAfterHavingConfirmed(ownedCryptoId: ObvCryptoId, globalOwnedIdentityDeletion: Bool) async { guard let ownedIdentityToDelete = try? PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: ObvStack.shared.viewContext) else { return } let profileName = ownedIdentityToDelete.customDisplayName ?? ownedIdentityToDelete.identityCoreDetails.getFullDisplayName() @@ -735,21 +729,20 @@ extension MainFlowViewController { message: Strings.AlertTypeDeleteToProceedWithOwnedIdentityDeletion.message, preferredStyle: .alert) alert.addTextField { textField in - textField.text = NSLocalizedString("", comment: "") + textField.text = "" textField.autocapitalizationType = .allCharacters } alert.addAction(UIAlertAction(title: Strings.AlertTypeDeleteToProceedWithOwnedIdentityDeletion.doDelete, style: .destructive, handler: { [unowned alert] _ in guard let textField = alert.textFields?.first else { assertionFailure(); return } guard textField.text?.trimmingWhitespacesAndNewlines() == Strings.AlertTypeDeleteToProceedWithOwnedIdentityDeletion.wordToType else { return } - ObvMessengerInternalNotification.userWantsToDeleteOwnedIdentityAndHasConfirmed(ownedCryptoId: ownedCryptoId, notifyContacts: notifyContacts) + ObvMessengerInternalNotification.userWantsToDeleteOwnedIdentityAndHasConfirmed(ownedCryptoId: ownedCryptoId, globalOwnedIdentityDeletion: globalOwnedIdentityDeletion) .postOnDispatchQueue() })) alert.addAction(UIAlertAction(title: CommonString.Word.Cancel, style: .cancel)) present(alert, animated: true) - - } + } @@ -819,7 +812,9 @@ extension MainFlowViewController { checkSignatureMutualScanUrl: { [weak self] mutualScanUrl in guard let _self = self else { return false } return _self.checkSignatureMutualScanUrl(mutualScanUrl) - }) + }, + obvEngine: obvEngine, + delegate: self) else { assertionFailure() return @@ -870,10 +865,15 @@ extension MainFlowViewController { func userWantsToUpdateTrustedIdentityDetailsOfContactIdentity(with contactCryptoId: ObvCryptoId, using newContactIdentityDetails: ObvIdentityDetails) { - do { - try obvEngine.updateTrustedIdentityDetailsOfContactIdentity(with: contactCryptoId, ofOwnedIdentityWithCryptoId: currentOwnedCryptoId, with: newContactIdentityDetails) - } catch { - os_log("Could not update trusted identity details of a contact", log: log, type: .error) + let obvEngine = self.obvEngine + let log = self.log + let currentOwnedCryptoId = self.currentOwnedCryptoId + Task.detached { + do { + try await obvEngine.updateTrustedIdentityDetailsOfContactIdentity(with: contactCryptoId, ofOwnedIdentityWithCryptoId: currentOwnedCryptoId, with: newContactIdentityDetails) + } catch { + os_log("Could not update trusted identity details of a contact", log: log, type: .error) + } } } @@ -898,6 +898,157 @@ extension MainFlowViewController { .postOnDispatchQueue() } + + /// Helper enum used in ``userWantsToInviteContactsToOneToOne(ownedCryptoId:users:)`` + private enum OneToOneInvitationKind { + case oneToOneInvitationProtocol(ownedCryptoId: ObvCryptoId, userCryptoId: ObvCryptoId) + case keycloak(ownedCryptoId: ObvCryptoId, userCryptoId: ObvCryptoId, userIdOrSignedDetails: KeycloakAddContactInfo) + } + + + /// Central method to call to invite a contact to be one2one. In most cases, this only triggers a `OneToOneContactInvitationProtocol`. In the case the owned identity is keycloak managed by the same server as the contact, this *also* triggers a Keycloak invitation. + func userWantsToInviteContactsToOneToOne(ownedCryptoId: ObvCryptoId, users: [(cryptoId: ObvCryptoId, keycloakDetails: ObvKeycloakUserDetails?)]) async throws { + + let invitationsToSend = try await computeListOfOneToOneInvitationsToSend(ownedCryptoId: ownedCryptoId, users: users) + + for invitationToSend in invitationsToSend { + + switch invitationToSend { + + case .oneToOneInvitationProtocol(ownedCryptoId: let ownedCryptoId, userCryptoId: let userCryptoId): + + do { + try obvEngine.sendOneToOneInvitation(ownedIdentity: ownedCryptoId, contactIdentity: userCryptoId) + } catch { + assertionFailure(error.localizedDescription) + continue // In production, do not fail the whole process because something went wrong for one invitation + } + + case .keycloak(ownedCryptoId: let ownedCryptoId, userCryptoId: let userCryptoId, userIdOrSignedDetails: let userIdOrSignedDetails): + + do { + try await KeycloakManagerSingleton.shared.addContact(ownedCryptoId: ownedCryptoId, userIdOrSignedDetails: userIdOrSignedDetails, userIdentity: userCryptoId.getIdentity()) + } catch let addContactError as KeycloakManager.AddContactError { + switch addContactError { + case .authenticationRequired, + .ownedIdentityNotManaged, + .badResponse, + .userHasCancelled, + .keycloakApiRequest, + .invalidSignature, + .unkownError: + throw addContactError + case .willSyncKeycloakServerSignatureKey: + break + case .ownedIdentityWasRevoked: + ObvMessengerInternalNotification.userOwnedIdentityWasRevokedByKeycloak(ownedCryptoId: ownedCryptoId) + .postOnDispatchQueue() + } + } catch { + assertionFailure(error.localizedDescription) + continue // In production, do not fail the whole process because something went wrong for one invitation + } + + } + + } + + } + + + /// Helper methods for ``userWantsToInviteContactsToOneToOne(ownedCryptoId:users:)``. Returns a list of one2one invitations to send. Note that we might return two invitation types for the same user. This is intended. + /// + /// If the owned identity is Keycloak managed and the contact is managed by the same keycloak: + /// - if there is a corresponding PersistedObvContactIdentity: + /// - if one2one, don't start a keycloak invitation + /// - otherwise, check whether she's keycloak managed. In that case, start a keycloak invitation. + /// - If there is no contact and this method caller provided JSON signed details, start a keycloak invitation. + private func computeListOfOneToOneInvitationsToSend(ownedCryptoId: ObvCryptoId, users: [(cryptoId: ObvCryptoId, keycloakDetails: ObvKeycloakUserDetails?)]) async throws -> [OneToOneInvitationKind] { + + // In case the owned identity is keycloak managed, we augment the received list of users using the keycloak details available from the engine + + let usersWithAllKeyclakInfos: [(cryptoId: ObvCryptoId, userIdOrSignedDetails: KeycloakAddContactInfo?)] + + if try await ownedIdentityIsKeycloakManaged(ownedCryptoId: ownedCryptoId) { + + var constructedListOfUsers = [(cryptoId: ObvCryptoId, userIdOrSignedDetails: KeycloakAddContactInfo?)]() + for user in users { + if let userId = user.keycloakDetails?.id { + constructedListOfUsers.append((user.cryptoId, .userId(userId: userId))) + } else if let keycloakSignedDetails = try? await obvEngine.getSignedContactDetailsAsync(ownedIdentity: ownedCryptoId, contactIdentity: user.cryptoId) { + constructedListOfUsers.append((user.cryptoId, .signedDetails(signedDetails: keycloakSignedDetails))) + } else { + constructedListOfUsers.append((user.cryptoId, nil)) + } + } + + usersWithAllKeyclakInfos = constructedListOfUsers + + } else { + + usersWithAllKeyclakInfos = users.map { ($0.cryptoId, nil) } + + } + + // Now that we have a list of users to invite (and all the available info concerning their keycloak details), we can compute a list of one2one invitations to send. + + return await withCheckedContinuation { (continuation: CheckedContinuation<[OneToOneInvitationKind], Never>) in + + ObvStack.shared.performBackgroundTask { context in + + var invitationsToPerform = [OneToOneInvitationKind]() + + for user in usersWithAllKeyclakInfos { + + do { + + if let contact = try PersistedObvContactIdentity.get(contactCryptoId: user.cryptoId, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: context) { + + if !contact.isOneToOne && contact.isActive && contact.hasAtLeastOneRemoteContactDevice() { + invitationsToPerform.append(.oneToOneInvitationProtocol(ownedCryptoId: ownedCryptoId, userCryptoId: user.cryptoId)) + } + + if !contact.isOneToOne && contact.isActive, let userIdOrSignedDetails = user.userIdOrSignedDetails { + invitationsToPerform.append(.keycloak(ownedCryptoId: ownedCryptoId, userCryptoId: user.cryptoId, userIdOrSignedDetails: userIdOrSignedDetails)) + } + + } else if let userIdOrSignedDetails = user.userIdOrSignedDetails { + + invitationsToPerform.append(.keycloak(ownedCryptoId: ownedCryptoId, userCryptoId: user.cryptoId, userIdOrSignedDetails: userIdOrSignedDetails)) + + } + + } catch { + assertionFailure(error.localizedDescription) + continue + } + + } + + continuation.resume(returning: invitationsToPerform) + } + + } + + } + + + /// Helper method for ``computeListOfOneToOneInvitationsToSend(ownedCryptoId:users:)`` + private func ownedIdentityIsKeycloakManaged(ownedCryptoId: ObvCryptoId) async throws -> Bool { + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + ObvStack.shared.performBackgroundTask { context in + do { + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: context) else { + throw ObvFlowControllerError.couldNotFindOwnedIdentity + } + continuation.resume(returning: ownedIdentity.isKeycloakManaged) + } catch { + continuation.resume(throwing: error) + } + } + } + } + } @@ -955,6 +1106,17 @@ extension MainFlowViewController: UITabBarControllerDelegate, ObvSubTabBarContro } +// MARK: - AddContactHostingViewControllerDelegate + +extension MainFlowViewController: AddContactHostingViewControllerDelegate { + + func userWantsToAddNewContactViaKeycloak(ownedCryptoId: ObvCryptoId, keycloakUserDetails: ObvKeycloakUserDetails, userCryptoId: ObvCryptoId) async throws { + try await userWantsToInviteContactsToOneToOne(ownedCryptoId: ownedCryptoId, users: [(userCryptoId, keycloakUserDetails)]) + } + +} + + // MARK: - Handling DeepLinks extension MainFlowViewController { @@ -973,22 +1135,24 @@ extension MainFlowViewController { /// Otherwise, we show the subscription plans. private func observeUserWantsToCallNotifications() { os_log("📲 Observing UserWantsToCall notifications", log: log, type: .info) - observationTokens.append(ObvMessengerInternalNotification.observeUserWantsToCallButWeShouldCheckSheIsAllowedTo(queue: .main) { [weak self] (contactIDs, groupId) in - self?.processUserWantsToCallButWeShouldCheckSheIsAllowedTo(contactIDs: contactIDs, groupId: groupId) + + observationTokens.append(ObvMessengerInternalNotification.observeUserWantsToCallButWeShouldCheckSheIsAllowedTo { ownedCryptoId, contactCryptoIds, groupId in + Task { [weak self] in await self?.processUserWantsToCallButWeShouldCheckSheIsAllowedTo(ownedCryptoId: ownedCryptoId, contactCryptoIds: contactCryptoIds, groupId: groupId) } }) + } @MainActor - private func processUserWantsToCallButWeShouldCheckSheIsAllowedTo(contactIDs: [TypeSafeManagedObjectID], groupId: GroupIdentifierBasedOnObjectID?) { + private func processUserWantsToCallButWeShouldCheckSheIsAllowedTo(ownedCryptoId: ObvCryptoId, contactCryptoIds: Set, groupId: GroupIdentifier?) async { assert(Thread.isMainThread) // Check access to the microphone guard AVAudioSession.sharedInstance().recordPermission == .granted else { AVAudioSession.sharedInstance().requestRecordPermission { [weak self] granted in if granted { - DispatchQueue.main.async { - self?.processUserWantsToCallButWeShouldCheckSheIsAllowedTo(contactIDs: contactIDs, groupId: groupId) + Task { [weak self] in + await self?.processUserWantsToCallButWeShouldCheckSheIsAllowedTo(ownedCryptoId: ownedCryptoId, contactCryptoIds: contactCryptoIds, groupId: groupId) } } else { ObvMessengerInternalNotification.requestUserDeniedRecordPermissionAlert.postOnDispatchQueue() @@ -997,9 +1161,9 @@ extension MainFlowViewController { return } - guard !contactIDs.isEmpty else { assertionFailure(); return } - let contacts = contactIDs.compactMap({try? PersistedObvContactIdentity.get(objectID: $0, within: ObvStack.shared.viewContext)}) - guard contacts.count == contactIDs.count else { + guard !contactCryptoIds.isEmpty else { assertionFailure(); return } + let contacts = contactCryptoIds.compactMap({try? PersistedObvContactIdentity.get(contactCryptoId: $0, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: ObvStack.shared.viewContext) }) + guard contacts.count == contactCryptoIds.count else { os_log("One of the contacts to be called could not be fetched from database", log: log, type: .fault) assertionFailure() return @@ -1026,22 +1190,21 @@ extension MainFlowViewController { } let ownedIdentity = ownedIdentities.first! - let contactIds = contacts.map({ OlvidUserId.known(contactObjectID: $0.typedObjectID, ownCryptoId: ownedIdentity.cryptoId, remoteCryptoId: $0.cryptoId, displayName: $0.fullDisplayName) }) + let contactCryptoIds = Set(contacts.map({ $0.cryptoId })) // If the owned identity is allowed to make outgoing calls, we use it to request turn credentials. If it is not, we look for another owned identity that is allowed to and use it (exclusively) to request turn credentials. // This way, if one identity it allowed to make outgoing calls, all other owned identity are as well. - let ownedIdentityForRequestingTurnCredentials: ObvCryptoId? - if ownedIdentity.apiPermissions.contains(.canCall) { - ownedIdentityForRequestingTurnCredentials = ownedIdentity.cryptoId - } else if let ownedIdentityAllowedToCall = try? PersistedObvOwnedIdentity.getAllNonHiddenOwnedIdentities(within: ObvStack.shared.viewContext).first(where: { $0.apiPermissions.contains(.canCall) }) { - ownedIdentityForRequestingTurnCredentials = ownedIdentityAllowedToCall.cryptoId - } else { - ownedIdentityForRequestingTurnCredentials = nil - } + let ownedIdentityForRequestingTurnCredentials = ownedIdentity.ownedCryptoIdAllowedToEmitSecureCall if let ownedIdentityForRequestingTurnCredentials { - ObvMessengerInternalNotification.userWantsToCallAndIsAllowedTo(contactIds: contactIds, ownedIdentityForRequestingTurnCredentials: ownedIdentityForRequestingTurnCredentials, groupId: groupId) + do { + ObvMessengerInternalNotification.userWantsToCallAndIsAllowedTo( + ownedCryptoId: ownedCryptoId, + contactCryptoIds: contactCryptoIds, + ownedIdentityForRequestingTurnCredentials: ownedIdentityForRequestingTurnCredentials, + groupId: groupId) .postOnDispatchQueue() + } } else { let vc = UserTriesToAccessPaidFeatureHostingController(requestedPermission: .canCall, ownedCryptoId: ownedIdentity.cryptoId) dismiss(animated: true) { [weak self] in @@ -1050,62 +1213,54 @@ extension MainFlowViewController { } } - + private func observeUserWantsToSelectAndCallContactsNotifications() { - observationTokens.append(ObvMessengerInternalNotification.observeUserWantsToSelectAndCallContacts(queue: OperationQueue.main) { [weak self] (allContactsID, groupId) in - guard !allContactsID.isEmpty else { return } - var contacts: [PersistedObvContactIdentity] = [] - for contactID in allContactsID { - guard let contact = try? PersistedObvContactIdentity.get(objectID: contactID, within: ObvStack.shared.viewContext) else { assertionFailure(); return } - guard !contact.devices.isEmpty else { continue } - contacts += [contact] - } - guard !contacts.isEmpty else { return } - guard let ownedIdentity = contacts.first?.ownedIdentity else { assertionFailure(); return } - - var contactCryptoIds = Set() - if let groupId = groupId { - switch groupId { - case .groupV1(let objectID): - if let contactGroup = try? PersistedContactGroup.get(objectID: objectID.objectID, within: ObvStack.shared.viewContext) { - contactGroup.contactIdentities.forEach { contactCryptoIds.insert($0.cryptoId) } - } - case .groupV2(let objectID): - if let group = try? PersistedGroupV2.get(objectID: objectID, within: ObvStack.shared.viewContext) { - group.contactsAmongNonPendingOtherMembers.forEach { contactCryptoIds.insert($0.cryptoId) } - } - } - } else { - contacts.forEach { contactCryptoIds.insert($0.cryptoId) } - } - - let button = MultipleContactsButton.floating(title: CommonString.Word.Call, systemIcon: .phoneFill) - - let vc = MultipleContactsViewController(ownedCryptoId: ownedIdentity.cryptoId, - mode: .restricted(to: contactCryptoIds, oneToOneStatus: .any), - button: button, defaultSelectedContacts: Set(contacts), - disableContactsWithoutDevice: true, - allowMultipleSelection: true, - showExplanation: false, - allowEmptySetOfContacts: false, - textAboveContactList: nil, - selectionStyle: .checkmark) { selectedContacts in - - ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(contactIDs: selectedContacts.map({ $0.typedObjectID }), groupId: groupId).postOnDispatchQueue() + observationTokens.append(ObvMessengerInternalNotification.observeUserWantsToSelectAndCallContacts { ownedCryptoId, contactCryptoIds, groupId in + Task { [weak self] in await self?.processUserWantsToSelectAndCallContacts(ownedCryptoId: ownedCryptoId, contactCryptoIds: contactCryptoIds, groupId: groupId) } + }) + } + + + @MainActor + private func processUserWantsToSelectAndCallContacts(ownedCryptoId: ObvCryptoId, contactCryptoIds: Set, groupId: GroupIdentifier?) async { + guard !contactCryptoIds.isEmpty else { return } + + let persistedContacts = contactCryptoIds + .compactMap { try? PersistedObvContactIdentity.get(contactCryptoId: $0, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: ObvStack.shared.viewContext) } + .filter { !$0.devices.isEmpty } + + guard !persistedContacts.isEmpty else { return } + + let button = MultipleContactsButton.floating(title: CommonString.Word.Call, systemIcon: .phoneFill) + + let vc = MultipleContactsViewController(ownedCryptoId: ownedCryptoId, + mode: .restricted(to: contactCryptoIds, oneToOneStatus: .any), + button: button, + defaultSelectedContacts: Set(persistedContacts), + disableContactsWithoutDevice: true, + allowMultipleSelection: true, + showExplanation: false, + allowEmptySetOfContacts: false, + textAboveContactList: nil, + selectionStyle: .checkmark) { [weak self] selectedContacts in + + let selectedContactCryptoIs = selectedContacts.map { $0.cryptoId } + ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(ownedCryptoId: ownedCryptoId, contactCryptoIds: Set(selectedContactCryptoIs), groupId: groupId) + .postOnDispatchQueue() - self?.dismiss(animated: true) - } dismissAction: { - self?.dismiss(animated: true) - } - let nav = ObvNavigationController(rootViewController: vc) + self?.dismiss(animated: true) + } dismissAction: { [weak self] in + self?.dismiss(animated: true) + } + let nav = ObvNavigationController(rootViewController: vc) - if let presentedViewController = self?.presentedViewController { - presentedViewController.present(nav, animated: true) - } else { - self?.present(nav, animated: true) - } - }) + if let presentedViewController { + presentedViewController.present(nav, animated: true) + } else { + present(nav, animated: true) + } } + private func observeServerDoesNotSupportCall() { observationTokens.append(VoIPNotification.observeServerDoesNotSupportCall(queue: OperationQueue.main) { [weak self] in @@ -1119,21 +1274,7 @@ extension MainFlowViewController { }) } - private func observeCallHasBeenUpdated() { - observationTokens.append(VoIPNotification.observeCallHasBeenUpdated(queue: OperationQueue.main) { [weak self] _, updateKind in - guard case .state(let newState) = updateKind else { return } - guard newState == .kicked else { return } - let alert = UIAlertController(title: Strings.UserHasBeenKilled.title, message: nil, preferredStyle: .alert) - alert.addAction(UIAlertAction(title: CommonString.Word.Ok, style: .default)) - if let presentedViewController = self?.presentedViewController { - presentedViewController.present(alert, animated: true) - } else { - self?.present(alert, animated: true) - } - }) - } - @MainActor private func presentUIActivityViewControllerForSharingOwnPublishedDetails(sourceView: UIView) { guard let obvOwnedIdentity = try? obvEngine.getOwnedIdentity(with: currentOwnedCryptoId) else { return } @@ -1179,7 +1320,7 @@ extension MainFlowViewController { os_log("🥏 The current deep link is a myId", log: log, type: .info) guard let ownedIdentity = try? PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: ObvStack.shared.viewContext) else { assertionFailure(); return } presentedViewController?.dismiss(animated: true) - let vc = SingleOwnedIdentityFlowViewController(ownedIdentity: ownedIdentity, obvEngine: obvEngine) + let vc = SingleOwnedIdentityFlowViewController(ownedIdentity: ownedIdentity, obvEngine: obvEngine, delegate: self) let nav = UINavigationController(rootViewController: vc) vc.delegate = self present(nav, animated: true) @@ -1242,24 +1383,30 @@ extension MainFlowViewController { } case .airDrop(fileURL: let fileURL): - if let discussionVC = currentDiscussionViewControllerShownToUser() { - // The user is currently within a discussion. We add the AirDrop'ed files within that discussion - discussionVC.addAttachmentFromAirDropFile(at: fileURL) - } else { - // The user is not within a discussion. Go to the list of latest discussions and wait until a discussion is chosen - // We save the file URL - mainTabBarController.selectedIndex = ChildTypes.latestDiscussions - _ = discussionsFlowViewController.children.first?.navigationController?.popViewController(animated: true) - DispatchQueue.main.async { [weak self] in - guard let _self = self else { return } - _self.airDroppedFileURLs.append(fileURL) - guard !_self.hudIsShown() else { return } - _self.showHUD(type: ObvHUDType.text(text: Strings.chooseDiscussion), completionHandler: nil) - DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(2)) { [weak self] in - self?.hideHUD() - } - } + + #if targetEnvironment(macCatalyst) + + // For catalyst, we copy the file to a tmp folder in order to prevent it to be deleted by future operations + + let targetFileURL = ObvUICoreDataConstants.ContainerURL.forTemporaryDroppedItems.appendingPathComponent(fileURL.lastPathComponent) + let fileManager = FileManager.default + if fileManager.fileExists(atPath: fileURL.path) { + // copy the file + do { + try fileManager.copyItem(at: fileURL, to: targetFileURL) + addAttachmentFromFile(at: targetFileURL) + } catch { + os_log("Unable to copy file to tmp Folder", log: log, type: .info) + } } + + #else + + let targetFileURL = fileURL + addAttachmentFromFile(at: targetFileURL) + + #endif + case .requestRecordPermission: switch AVAudioSession.sharedInstance().recordPermission { case .undetermined: @@ -1299,6 +1446,16 @@ extension MainFlowViewController { presentSettingsFlowViewController(specificSetting: .backup) } + case .voipSettings: + assert(Thread.isMainThread) + if let presentedViewController = self.presentedViewController { + presentedViewController.dismiss(animated: true) { [weak self] in + self?.presentSettingsFlowViewController(specificSetting: .voip) + } + } else { + presentSettingsFlowViewController(specificSetting: .voip) + } + case .privacySettings: assert(Thread.isMainThread) if let presentedViewController = self.presentedViewController { @@ -1318,17 +1475,36 @@ extension MainFlowViewController { } + + @MainActor + private func addAttachmentFromFile(at fileURL: URL) { + if let discussionVC = currentDiscussionViewControllerShownToUser() { + // The user is currently within a discussion. We add the AirDrop'ed files within that discussion + discussionVC.addAttachmentFromAirDropFile(at: fileURL) + } else { + // The user is not within a discussion. Go to the list of latest discussions and wait until a discussion is chosen + // We save the file URL + mainTabBarController.selectedIndex = ChildTypes.latestDiscussions + _ = discussionsFlowViewController.children.first?.navigationController?.popViewController(animated: true) + DispatchQueue.main.async { [weak self] in + guard let _self = self else { return } + _self.airDroppedFileURLs.append(fileURL) + guard !_self.hudIsShown() else { return } + _self.showHUD(type: ObvHUDType.text(text: Strings.chooseDiscussion), completionHandler: nil) + DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(2)) { [weak self] in + self?.hideHUD() + } + } + } + } @MainActor private func presentSettingsFlowViewController() { assert(Thread.isMainThread) - guard let createPasscodeDelegate = self.createPasscodeDelegate else { - assertionFailure(); return - } - guard let appBackupDelegate = self.appBackupDelegate else { + guard let createPasscodeDelegate, let appBackupDelegate, let localAuthenticationDelegate else { assertionFailure(); return } - let vc = SettingsFlowViewController(ownedCryptoId: currentOwnedCryptoId, obvEngine: obvEngine, createPasscodeDelegate: createPasscodeDelegate, appBackupDelegate: appBackupDelegate) + let vc = SettingsFlowViewController(ownedCryptoId: currentOwnedCryptoId, obvEngine: obvEngine, createPasscodeDelegate: createPasscodeDelegate, localAuthenticationDelegate: localAuthenticationDelegate, appBackupDelegate: appBackupDelegate) let closeButton = UIBarButtonItem.forClosing(target: self, action: #selector(dismissPresentedViewController)) vc.viewControllers.first?.navigationItem.setLeftBarButton(closeButton, animated: false) present(vc, animated: true) @@ -1338,13 +1514,10 @@ extension MainFlowViewController { @MainActor private func presentSettingsFlowViewController(specificSetting: AllSettingsTableViewController.Setting) { assert(Thread.isMainThread) - guard let createPasscodeDelegate = self.createPasscodeDelegate else { + guard let createPasscodeDelegate, let appBackupDelegate, let localAuthenticationDelegate else { assertionFailure(); return } - guard let appBackupDelegate = self.appBackupDelegate else { - assertionFailure(); return - } - let vc = SettingsFlowViewController(ownedCryptoId: currentOwnedCryptoId, obvEngine: obvEngine, createPasscodeDelegate: createPasscodeDelegate, appBackupDelegate: appBackupDelegate) + let vc = SettingsFlowViewController(ownedCryptoId: currentOwnedCryptoId, obvEngine: obvEngine, createPasscodeDelegate: createPasscodeDelegate, localAuthenticationDelegate: localAuthenticationDelegate, appBackupDelegate: appBackupDelegate) let closeButton = UIBarButtonItem.forClosing(target: self, action: #selector(dismissPresentedViewController)) vc.viewControllers.first?.navigationItem.setLeftBarButton(closeButton, animated: false) present(vc, animated: true) { @@ -1390,14 +1563,14 @@ extension MainFlowViewController { extension MainFlowViewController { - func handleOlvidURL(_ olvidURL: OlvidURL) { + @MainActor + func handleOlvidURL(_ olvidURL: OlvidURL) async { // When receiving an OlvidURL, we store it in the externallyScannedOrTappedOlvidURL variable. This URL will be processed when the viewDidAppear lifecycle method is called. // We do not process the URL here to prevent a race condition between the alert presented to process the link, and the alert presented when authenticating (when the user decided to activate this option). // This only exception to the above is when viewDidAppear was already called, in which case we process the link immediately. - assert(Thread.isMainThread) assert(externallyScannedOrTappedOlvidURL == nil) if viewDidAppearWasCalled { - Task { await processExternallyScannedOrTappedOlvidURL(olvidURL: olvidURL) } + await processExternallyScannedOrTappedOlvidURL(olvidURL: olvidURL) } else { externallyScannedOrTappedOlvidURL = olvidURL } @@ -1405,7 +1578,8 @@ extension MainFlowViewController { /// Lets the user choose which of her identities she wants to use before proceeding with the processing of an an external OlvidURL. - @MainActor private func processExternallyScannedOrTappedOlvidURL(olvidURL: OlvidURL) async { + @MainActor + private func processExternallyScannedOrTappedOlvidURL(olvidURL: OlvidURL) async { os_log("Processing an externally scanned or tapped Olvid URL", log: log, type: .info) do { let ownedIdentities = try PersistedObvOwnedIdentity.getAllNonHiddenOwnedIdentities(within: ObvStack.shared.viewContext) @@ -1453,14 +1627,19 @@ extension MainFlowViewController { let ownedIdentityChooserVC = OwnedIdentityChooserViewController(currentOwnedCryptoId: currentOwnedCryptoId, ownedIdentities: ownedIdentities, delegate: self) - ownedIdentityChooserVC.modalPresentationStyle = .popover - if let popover = ownedIdentityChooserVC.popoverPresentationController { - if #available(iOS 15, *) { + + // Under iPhone, we use a popover presentation style. Since we have no source view, we cannot do the same under iPad or mac. + // Note that this method gets also called when the user taps an invitation link in a Safari window. In that case, we cannot have a source view anyway. + if traitCollection.userInterfaceIdiom == .phone { + ownedIdentityChooserVC.modalPresentationStyle = .popover + if let popover = ownedIdentityChooserVC.popoverPresentationController { let sheet = popover.adaptiveSheetPresentationController sheet.detents = [.medium(), .large()] sheet.prefersGrabberVisible = true sheet.preferredCornerRadius = 16.0 } + } else { + ownedIdentityChooserVC.modalPresentationStyle = .formSheet } // In case the OwnedIdentityChooserViewController gets dismissed without choosing a profile, we simply want to discard the externallyScannedOrTappedOlvidURLExpectingAnOwnedIdentityToBeChosen ownedIdentityChooserVC.callbackOnViewDidDisappear = { [weak self] in @@ -1626,11 +1805,43 @@ extension MainFlowViewController: ScannerHostingViewDelegate { // MARK: - SingleOwnedIdentityFlowViewControllerDelegate extension MainFlowViewController: SingleOwnedIdentityFlowViewControllerDelegate { - + func userWantsToDismissSingleOwnedIdentityFlowViewController(_ viewController: SingleOwnedIdentityFlowViewController) { assert(Thread.isMainThread) viewController.dismiss(animated: true) } + + + @MainActor + func userWantsToAddNewDevice(_ viewController: SingleOwnedIdentityFlowViewController, ownedCryptoId: ObvCryptoId) async { + guard let mainFlowViewControllerDelegate else { assertionFailure(); return } + viewController.dismiss(animated: true) { + Task { await mainFlowViewControllerDelegate.userWantsToAddNewDevice(self, ownedCryptoId: ownedCryptoId) } + } + } + + + func userRequestedListOfSKProducts() async throws -> [Product] { + assert(storeKitDelegate != nil) + return try await storeKitDelegate?.userRequestedListOfSKProducts() ?? [] + } + + + func userWantsToBuy(_ product: Product) async throws -> StoreKitDelegatePurchaseResult { + guard let storeKitDelegate else { + throw ObvError.storeKitDelegateIsNil + } + return try await storeKitDelegate.userWantsToBuy(product) + } + + + func userWantsToRestorePurchases() async throws { + guard let storeKitDelegate else { + throw ObvError.storeKitDelegateIsNil + } + return try await storeKitDelegate.userWantsToRestorePurchases() + } + } @@ -1798,12 +2009,21 @@ private final class MainFlowViewControllerSplitDelegate: UISplitViewControllerDe mainFlowViewController.mainTabBarController.selectedIndex = MainFlowViewController.ChildTypes.latestDiscussions } - // Push the discussionsVCs onto the stack of the flow + // Push the discussionsVCs onto the stack of the flow: + // Remove the discussionsVCs from their parent, then add them to the flow. + // We perform this last step asynchronously as failing to do so leads to a crash under certain iPhones (e.g., iPhone XR). for vc in discussionsVCs { - obvFlowViewController.pushViewController(vc, animated: false) + vc.view.removeFromSuperview() + vc.willMove(toParent: nil) + vc.removeFromParent() + vc.didMove(toParent: nil) } - + + DispatchQueue.main.async { + obvFlowViewController.setViewControllers(obvFlowViewController.viewControllers + discussionsVCs, animated: false) + } + // We dealt with the discussionsVCs, we do not want the split view controller to do anything with the secondary view controller so we return true return true @@ -1849,7 +2069,7 @@ extension MainFlowViewController { static let message = NSLocalizedString("In order to invite another Olvid user, you can either scan their QR code or show them your own QR code.", comment: "Message of an alert") static let actionShowMyQRCode = NSLocalizedString("Show my QR code", comment: "Title of an alert action") static let actionScanQRCode = NSLocalizedString("Scan another user's QR code", comment: "Title of an alert action") - static let messageAdvanced = NSLocalizedString("In order to invite another Olvid user, you can copy your identity in order to paste it in an email, sms, and so forth. If you receive an identity, you can paste it here.", comment: "Message of an alert") + static let messageAdvanced = NSLocalizedString("In order to invite another Olvid user, you can copy your identity in order to paste it in an email, SMS, and so forth. If you receive an identity, you can paste it here.", comment: "Message of an alert") static let copyYourIdentity = NSLocalizedString("Copy your Id", comment: "Action of an alert") static let pastAnotherIdentity = NSLocalizedString("Paste an Id", comment: "Action of an alert") } @@ -1878,10 +2098,6 @@ extension MainFlowViewController { static let title = NSLocalizedString("SERVER_DOES_NOT_SUPPORT_CALLS", comment: "Alert title") } - struct UserHasBeenKilled { - static let title = NSLocalizedString("USER_HAS_BEEN_KICKED", comment: "Alert title") - } - struct MissingChannelForCallAlert { static let title = { (contactName: String) in String.localizedStringWithFormat(NSLocalizedString("MISSING_CHANNEL_FOR_CALL_TITLE_%@", comment: "Alert title"), contactName) @@ -1910,11 +2126,11 @@ extension MainFlowViewController { static let message = NSLocalizedString("DELETE_THIS_LAST_UNHIDDEN_IDENTITY_QUESTION_MESSAGE", comment: "") } - struct AlertNotifyContactsOnOwnedIdentityDeletion { - static let title = NSLocalizedString("NOTIFY_CONTACTS_ON_OWNED_IDENTITY_DELETION_TITLE", comment: "") - static let message = NSLocalizedString("NOTIFY_CONTACTS_ON_OWNED_IDENTITY_DELETION_MESSAGE", comment: "") - static let notifyContactsAction = NSLocalizedString("NOTIFY_CONTACTS_ON_OWNED_IDENTITY_DELETION_DO_NOTIFY_CONTACTS_ACTION", comment: "") - static let doNotNotifyContactsAction = NSLocalizedString("NOTIFY_CONTACTS_ON_OWNED_IDENTITY_DELETION_DO_NOT_NOTIFY_CONTACTS_ACTION", comment: "") + struct AlertChooseBetweenGlobalAndLocalOnOwnedIdentityDeletion { + static let title = NSLocalizedString("CHOOSE_BETWEEN_GLOBAL_AND_LOCAL_OWNED_IDENTITY_DELETION_TITLE", comment: "") + static let message = NSLocalizedString("CHOOSE_BETWEEN_GLOBAL_AND_LOCAL_OWNED_IDENTITY_DELETION_MESSAGE", comment: "") + static let globalDeletionAction = NSLocalizedString("CHOOSE_GLOBAL_OWNED_IDENTITY_DELETION_BUTTON_TITLE", comment: "") + static let localDeletionAction = NSLocalizedString("CHOOSE_LOCAL_OWNED_IDENTITY_DELETION_BUTTON_TITLE", comment: "") } struct AlertTypeDeleteToProceedWithOwnedIdentityDeletion { @@ -1929,3 +2145,14 @@ extension MainFlowViewController { } } + + +// MARK: - Errors + +extension MainFlowViewController { + + enum ObvError: Error { + case storeKitDelegateIsNil + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/MetaFlowController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/MetaFlowController.swift index 1afd93f5..f19db944 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/MetaFlowController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/MetaFlowController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,6 +20,7 @@ import UIKit import os.log import CoreData +import StoreKit import ObvEngine import ObvCrypto import ObvTypes @@ -27,12 +28,19 @@ import SwiftUI import AVFAudio import ObvUI import ObvUICoreData +import UniformTypeIdentifiers +import ObvSettings +import ObvDesignSystem +import JWS +import AppAuth +import Contacts @MainActor -final class MetaFlowController: UIViewController, OlvidURLHandler { +final class MetaFlowController: UIViewController, OlvidURLHandler, MainFlowViewControllerDelegate { private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: MetaFlowController.self)) + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: MetaFlowController.self)) var observationTokens = [NSObjectProtocol]() @@ -46,10 +54,18 @@ final class MetaFlowController: UIViewController, OlvidURLHandler { // Coordinators and Services private var mainFlowViewController: MainFlowViewController? - private var onboardingFlowViewController: OnboardingFlowViewController? + private var onboardingFlowViewController: NewOnboardingFlowViewController? private weak var createPasscodeDelegate: CreatePasscodeDelegate? + private weak var localAuthenticationDelegate: LocalAuthenticationDelegate? private weak var appBackupDelegate: AppBackupDelegate? + private weak var storeKitDelegate: StoreKitDelegate? + private weak var singleOwnedIdentityStoreKitDelegate: StoreKitDelegate? + + /// To ensure a smooth transistion during a cold boot, we add the launcscreen's view as the first child view. + /// Once the other child views are show, we hide this view to prevent glitches (e.g., when switch back and forth between the call and the main view). + /// So we keep a reference to it to make this hiding easy. + private var launchView: UIView? private let callBannerView = CallBannerView() private let viewOnTopOfCallBannerView = UIView() @@ -60,6 +76,7 @@ final class MetaFlowController: UIViewController, OlvidURLHandler { private var currentOwnedCryptoId: ObvCryptoId? = nil private var viewDidLoadWasCalled = false + private var shouldShowCallBannerOnViewDidLoad = false private var viewDidAppearWasCalledAtLeastOnce = false private var completionHandlersToCallOnViewDidAppear = [() -> Void]() @@ -69,14 +86,24 @@ final class MetaFlowController: UIViewController, OlvidURLHandler { private let obvEngine: ObvEngine - init(obvEngine: ObvEngine, createPasscodeDelegate: CreatePasscodeDelegate, appBackupDelegate: AppBackupDelegate) { + init(obvEngine: ObvEngine, createPasscodeDelegate: CreatePasscodeDelegate, localAuthenticationDelegate: LocalAuthenticationDelegate, appBackupDelegate: AppBackupDelegate, storeKitDelegate: StoreKitDelegate, shouldShowCallBanner: Bool) { self.obvEngine = obvEngine self.createPasscodeDelegate = createPasscodeDelegate + self.localAuthenticationDelegate = localAuthenticationDelegate self.appBackupDelegate = appBackupDelegate + self.storeKitDelegate = storeKitDelegate super.init(nibName: nil, bundle: nil) + // If the RootViewController indicates that there is a call in progress, show the call banner. + // This happens when the app was force quitted before receiving a CallKit incoming call. In that case, + // if the user launches the app from the CallKit UI, this MetFlowController is not instantiated during launch + // as the in-hous call view is shown instead. As a consequence, this MetaFlowController did not receive the + // notification about the call. So we need to have the information about this call at init time. + + shouldShowCallBannerOnViewDidLoad = shouldShowCallBanner + observeDidBecomeActiveNotifications() // Internal notifications @@ -110,6 +137,9 @@ final class MetaFlowController: UIViewController, OlvidURLHandler { ObvEngineNotificationNew.observeWellKnownUpdatedSuccess(within: NotificationCenter.default) { [weak self] _, appInfo in self?.processWellKnownAppInfo(appInfo) }, + ObvEngineNotificationNew.observeAnOwnedIdentityTransferProtocolFailed(within: NotificationCenter.default) { [weak self] ownedCryptoId, protocolInstanceUID, error in + Task { [weak self] in await self?.processAnOwnedIdentityTransferProtocolFailed(ownedCryptoId: ownedCryptoId, protocolInstanceUID: protocolInstanceUID, error: error) } + }, ]) // App notifications @@ -118,22 +148,17 @@ final class MetaFlowController: UIViewController, OlvidURLHandler { ObvMessengerInternalNotification.observeUserWantsToRestartChannelEstablishmentProtocol { [weak self] (contactCryptoId, ownedCryptoId) in self?.processUserWantsToRestartChannelEstablishmentProtocol(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) }, - ObvMessengerInternalNotification.observeUserWantsToReCreateChannelEstablishmentProtocol() { [weak self] (contactCryptoId, ownedCryptoId) in - self?.processUserWantsToReCreateChannelEstablishmentProtocol(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) - }, ObvMessengerInternalNotification.observeUserWantsToCreateNewGroupV1(queue: OperationQueue.main) { [weak self] (groupName, groupDescription, groupMembersCryptoIds, ownedCryptoId, photoURL) in self?.processUserWantsToCreateNewGroupV1(groupName: groupName, groupDescription: groupDescription, groupMembersCryptoIds: groupMembersCryptoIds, ownedCryptoId: ownedCryptoId, photoURL: photoURL) }, ObvMessengerInternalNotification.observeUserWantsToCreateNewGroupV2(queue: OperationQueue.main) { [weak self] (groupCoreDetails, ownPermissions, otherGroupMembers, ownedCryptoId, photoURL) in self?.processUserWantsToCreateNewGroupV2(groupCoreDetails: groupCoreDetails, ownPermissions: ownPermissions, otherGroupMembers: otherGroupMembers, ownedCryptoId: ownedCryptoId, photoURL: photoURL) }, - ObvMessengerCoreDataNotification.observeDisplayedContactGroupWasJustCreated { permanentID in - OperationQueue.main.addOperation { [weak self] in - self?.processDisplayedContactGroupWasJustCreated(permanentID: permanentID) - } + ObvMessengerCoreDataNotification.observeDisplayedContactGroupWasJustCreated { [weak self] permanentID in + Task { await self?.processDisplayedContactGroupWasJustCreated(permanentID: permanentID) } }, - ObvMessengerInternalNotification.observeUserWantsToCreateNewOwnedIdentity { [weak self] in - Task { await self?.processUserWantsToCreateNewOwnedIdentityNotification() } + ObvMessengerInternalNotification.observeUserWantsToAddOwnedProfile { [weak self] in + Task { await self?.processUserWantsToAddOwnedProfileNotification() } }, ObvMessengerInternalNotification.observeUserWantsToSwitchToOtherOwnedIdentity { [weak self] ownedCryptoId in Task { await self?.processUserWantsToSwitchToOtherOwnedIdentity(ownedCryptoId: ownedCryptoId) } @@ -165,17 +190,23 @@ final class MetaFlowController: UIViewController, OlvidURLHandler { // VoIP notifications observationTokens.append(contentsOf: [ - VoIPNotification.observeShowCallViewControllerForAnsweringNonCallKitIncomingCall(queue: .main) { [weak self] _ in - self?.setupAndShowAppropriateCallBanner(shouldShowCallBanner: true) - }, - VoIPNotification.observeNewOutgoingCall(queue: .main) { [weak self] _ in - self?.setupAndShowAppropriateCallBanner(shouldShowCallBanner: true) +// VoIPNotification.observeShowCallViewControllerForAnsweringNonCallKitIncomingCall(queue: .main) { [weak self] _ in +// self?.setupAndShowAppropriateCallBanner(shouldShowCallBanner: true) +// }, + VoIPNotification.observeNewCallToShow { [weak self] _ in + Task { [weak self] in await self?.setupAndShowAppropriateCallBanner(shouldShowCallBanner: true, animate: true) } }, - VoIPNotification.observeAnIncomingCallShouldBeShownToUser(queue: .main) { [weak self] _ in - self?.setupAndShowAppropriateCallBanner(shouldShowCallBanner: true) - }, - VoIPNotification.observeNoMoreCallInProgress(queue: .main) { [weak self] in - self?.setupAndShowAppropriateCallBanner(shouldShowCallBanner: false) +// VoIPNotification.observeNewOutgoingCall { [weak self] _ in +// self?.setupAndShowAppropriateCallBanner(shouldShowCallBanner: true) +// }, +// VoIPNotification.observeAnIncomingCallShouldBeShownToUser(queue: .main) { [weak self] _ in +// self?.setupAndShowAppropriateCallBanner(shouldShowCallBanner: true) +// }, + VoIPNotification.observeNoMoreCallInProgress { [weak self] in + Task(priority: .userInitiated) { [weak self] in + os_log("☎️🔚 Observed observeNoMoreCallInProgress notification", log: Self.log, type: .info) + await self?.setupAndShowAppropriateCallBanner(shouldShowCallBanner: false, animate: true) + } } ]) } @@ -208,6 +239,18 @@ final class MetaFlowController: UIViewController, OlvidURLHandler { os_log("Latest recommended app build version from server: %{public}@", log: log, type: .info, String(describing: ObvMessengerSettings.AppVersionAvailable.latest)) os_log("Installed app build version: %{public}@", log: log, type: .info, ObvMessengerConstants.bundleVersion) } + + + private func processAnOwnedIdentityTransferProtocolFailed(ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID, error: Error) async { + if let onboardingFlowViewController { + await onboardingFlowViewController.anOwnedIdentityTransferProtocolFailed(ownedCryptoId: ownedCryptoId, protocolInstanceUID: protocolInstanceUID, error: error) + } else if let onboardingFlowViewController = presentedViewController as? NewOnboardingFlowViewController { + await onboardingFlowViewController.anOwnedIdentityTransferProtocolFailed(ownedCryptoId: ownedCryptoId, protocolInstanceUID: protocolInstanceUID, error: error) + } else { + debugPrint("Could not find onboarding") + } + } + private func observePastedStringIsNotValidOlvidURLNotifications() { observationTokens.append(ObvMessengerInternalNotification.observePastedStringIsNotValidOlvidURL(queue: OperationQueue.main) { [weak self] in @@ -312,7 +355,6 @@ final class MetaFlowController: UIViewController, OlvidURLHandler { let toExecuteAfterViewDidAppear = { [weak self] in guard let _self = self else { return } VoIPNotification.hideCallView.postOnDispatchQueue() - assert(_self.mainFlowViewController != nil) Task { await _self.mainFlowViewController?.performCurrentDeepLinkInitialNavigation(deepLink: deepLink) } @@ -331,12 +373,22 @@ final class MetaFlowController: UIViewController, OlvidURLHandler { // MARK: - Implementing MetaFlowDelegate -extension MetaFlowController: OnboardingFlowViewControllerDelegate { +extension MetaFlowController: NewOnboardingFlowViewControllerDelegate { override func viewDidLoad() { super.viewDidLoad() viewDidLoadWasCalled = true + // Since ``MetaFlowController.setupAndShowAppropriateChildViewControllers(ownedCryptoIdGeneratedDuringOnboarding:completion:)`` is async, + // we need to add an appropriate background view identical to the one shown in the ``InitializerViewController`` to prevent a quick transition + // through a black screen. + let launchScreenStoryBoard = UIStoryboard(name: "LaunchScreen", bundle: nil) + guard let launchViewController = launchScreenStoryBoard.instantiateInitialViewController() else { assertionFailure(); return } + self.launchView = launchViewController.view + self.view.addSubview(launchViewController.view) + launchViewController.view.translatesAutoresizingMaskIntoConstraints = false + self.view.pinAllSidesToSides(of: launchViewController.view) + self.view.addSubview(callBannerView) callBannerView.translatesAutoresizingMaskIntoConstraints = false callBannerView.isHidden = true @@ -354,6 +406,11 @@ extension MetaFlowController: OnboardingFlowViewControllerDelegate { assertionFailure() return } + + // See the comment in the initializer + if shouldShowCallBannerOnViewDidLoad { + await setupAndShowAppropriateCallBanner(shouldShowCallBanner: true, animate: false) + } } } @@ -409,31 +466,9 @@ extension MetaFlowController: OnboardingFlowViewControllerDelegate { mainFlowViewController?.sceneWillResignActive(scene) } - - func onboardingIsFinished(ownedCryptoIdGeneratedDuringOnboarding: ObvCryptoId?, olvidURLScannedDuringOnboarding: OlvidURL?) async { - let log = self.log - do { - try await setupAndShowAppropriateChildViewControllers(ownedCryptoIdGeneratedDuringOnboarding: ownedCryptoIdGeneratedDuringOnboarding) { result in - assert(Thread.isMainThread) - switch result { - case .failure(let error): - assertionFailure(error.localizedDescription) - case .success: - os_log("Did setup and show the appropriate child view controller", log: log, type: .info) - } - // In all cases, we handle the OlvidURL scanned during the onboarding - if let olvidURL = olvidURLScannedDuringOnboarding { - Task { await NewAppStateManager.shared.handleOlvidURL(olvidURL) } - } - } - } catch { - assertionFailure() - } - } - @MainActor - private func setupAndShowAppropriateCallBanner(shouldShowCallBanner: Bool) { + private func setupAndShowAppropriateCallBanner(shouldShowCallBanner: Bool, animate: Bool) async { assert(Thread.isMainThread) guard viewDidLoadWasCalled else { return } @@ -454,8 +489,10 @@ extension MetaFlowController: OnboardingFlowViewControllerDelegate { } view.setNeedsUpdateConstraints() - UIView.animate(withDuration: 0.3) { [weak self] in - self?.view.layoutIfNeeded() + if animate { + UIView.animate(withDuration: 0.3) { [weak self] in + self?.view.layoutIfNeeded() + } } } @@ -578,13 +615,17 @@ extension MetaFlowController: OnboardingFlowViewControllerDelegate { if let ownedCryptoId = appropriateOwnedCryptoIdToShow { if mainFlowViewController == nil { - guard let createPasscodeDelegate = self.createPasscodeDelegate else { - assertionFailure(); return - } - guard let appBackupDelegate = self.appBackupDelegate else { + guard let createPasscodeDelegate, let appBackupDelegate, let localAuthenticationDelegate, let storeKitDelegate else { assertionFailure(); return } - mainFlowViewController = MainFlowViewController(ownedCryptoId: ownedCryptoId, obvEngine: obvEngine, createPasscodeDelegate: createPasscodeDelegate, appBackupDelegate: appBackupDelegate) + mainFlowViewController = MainFlowViewController( + ownedCryptoId: ownedCryptoId, + obvEngine: obvEngine, + createPasscodeDelegate: createPasscodeDelegate, + localAuthenticationDelegate: localAuthenticationDelegate, + appBackupDelegate: appBackupDelegate, + mainFlowViewControllerDelegate: self, + storeKitDelegate: storeKitDelegate) } guard let mainFlowViewController else { @@ -644,6 +685,8 @@ extension MetaFlowController: OnboardingFlowViewControllerDelegate { setupMainFlowViewControllerConstraintsWithoutCallBannerViewIfNecessary() NSLayoutConstraint.activate(mainFlowViewControllerConstraintsWithoutCallBannerView) callBannerView.isHidden = true + launchView?.removeFromSuperview() + launchView = nil internalCompletion(.success(())) @@ -663,11 +706,16 @@ extension MetaFlowController: OnboardingFlowViewControllerDelegate { assertionFailure() } } else { - onboardingFlowViewController = OnboardingFlowViewController(obvEngine: obvEngine, appBackupDelegate: appBackupDelegate) + //onboardingFlowViewController = OnboardingFlowViewController(obvEngine: obvEngine, appBackupDelegate: appBackupDelegate) + let mdmConfig = getMDMConfigurationForOnboarding() + onboardingFlowViewController = NewOnboardingFlowViewController( + logSubsystem: ObvMessengerConstants.logSubsystem, + directoryForTempFiles: ObvUICoreDataConstants.ContainerURL.forTempFiles.url, + mode: .initialOnboarding(mdmConfig: mdmConfig)) onboardingFlowViewController?.delegate = self } - guard let onboardingFlowViewController = onboardingFlowViewController else { + guard let onboardingFlowViewController else { assertionFailure() internalCompletion(.failure(makeError(message: "No onboarding flow view controller"))) return @@ -710,6 +758,28 @@ extension MetaFlowController: OnboardingFlowViewControllerDelegate { } + /// Helper method called to configure the very first onboarding + private func getMDMConfigurationForOnboarding() -> Onboarding.MDMConfiguration? { + + if ObvMessengerSettings.MDM.isConfiguredFromMDM, + let mdmConfigurationURI = ObvMessengerSettings.MDM.Configuration.uri, + let olvidURL = OlvidURL(urlRepresentation: mdmConfigurationURI) { + + switch olvidURL.category { + case .configuration(_, _, let keycloakConfig): + guard let keycloakConfig else { return nil } + return .init(keycloakConfiguration: .init(keycloakServerURL: keycloakConfig.serverURL, clientId: keycloakConfig.clientId, clientSecret: keycloakConfig.clientSecret)) + default: + assertionFailure() + return nil + } + } + + return nil + + } + + /// Returns the most appropriate owned identity to show. Returns `nil` if no owned identity exists. @MainActor private func getMostAppropriateOwnedCryptoIdToShow() async -> ObvCryptoId? { guard let latestCurrentOWnedIdentityStored = await LatestCurrentOwnedIdentityStorage.shared.getLatestCurrentOwnedIdentityStored() else { @@ -778,41 +848,385 @@ extension MetaFlowController: OnboardingFlowViewControllerDelegate { } + +// MARK: - NewOnboardingFlowViewControllerDelegate + +extension MetaFlowController { + + func onboardingRequiresKeycloakToSyncAllManagedIdentities() async { + do { + try await KeycloakManagerSingleton.shared.syncAllManagedIdentities() + } catch { + assertionFailure(error.localizedDescription) + } + } + + + @MainActor + func userWantsToDismissOnboardingAfterSuccessfulOwnedIdentityTransferOnThisTargetDevice(onboardingFlow: NewOnboardingFlowViewController, transferredOwnedCryptoId: ObvCryptoId, userWantsToAddAnotherProfile: Bool) async { + if mainFlowViewController != nil { + await switchToOwnedIdentity(ownedCryptoId: transferredOwnedCryptoId) + onboardingFlow.dismiss(animated: true) + } else { + do { + try await setupAndShowAppropriateChildViewControllers(ownedCryptoIdGeneratedDuringOnboarding: transferredOwnedCryptoId) { result in + switch result { + case .success: + onboardingFlow.dismiss(animated: true) { + if userWantsToAddAnotherProfile { + ObvMessengerInternalNotification.userWantsToAddOwnedProfile + .postOnDispatchQueue() + } + } + case .failure: + assertionFailure() + } + } + } catch { + assertionFailure(error.localizedDescription) + } + } + } + + + func onboardingRequiresToPerformOwnedDeviceDiscoveryNow(for ownedCryptoId: ObvCryptoId) async throws -> (ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult, currentDeviceIdentifier: Data) { + let ownedDeviceDiscoveryResult = try await obvEngine.performOwnedDeviceDiscoveryNow(ownedCryptoId: ownedCryptoId) + let currentDeviceIdentifier = try await obvEngine.getCurrentDeviceIdentifier(ownedCryptoId: ownedCryptoId) + return (ownedDeviceDiscoveryResult, currentDeviceIdentifier) + } + + + + + func onboardingIsShowingSasAndExpectingEndOfProtocol(onboardingFlow: NewOnboardingFlowViewController, protocolInstanceUID: UID, onSyncSnapshotReception: @escaping () -> Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async { + await obvEngine.appIsShowingSasAndExpectingEndOfProtocol( + protocolInstanceUID: protocolInstanceUID, + onSyncSnapshotReception: onSyncSnapshotReception, + onSuccessfulTransfer: onSuccessfulTransfer) + } + + + func onboardingRequiresToInitiateOwnedIdentityTransferProtocolOnTargetDevice(onboardingFlow: NewOnboardingFlowViewController, transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, currentDeviceName: String, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void) async throws { + try await obvEngine.initiateOwnedIdentityTransferProtocolOnTargetDevice( + currentDeviceName: currentDeviceName, + transferSessionNumber: transferSessionNumber, + onIncorrectTransferSessionNumber: onIncorrectTransferSessionNumber, + onAvailableSas: onAvailableSas) + } + + + func onboardingRequiresToInitiateOwnedIdentityTransferProtocolOnSourceDevice(onboardingFlow: NewOnboardingFlowViewController, ownedCryptoId: ObvCryptoId, onAvailableSessionNumber: @escaping (ObvOwnedIdentityTransferSessionNumber) -> Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void) async throws { + try await obvEngine.initiateOwnedIdentityTransferProtocolOnSourceDevice( + ownedCryptoId: ownedCryptoId, + onAvailableSessionNumber: onAvailableSessionNumber, + onAvailableSASExpectedOnInput: onAvailableSASExpectedOnInput) + } + + + func userWishesToFinalizeOwnedIdentityTransferFromSourceDevice(onboardingFlow: NewOnboardingFlowViewController, enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws { + try await obvEngine.userEnteredValidSASOnSourceDeviceForOwnedIdentityTransferProtocol( + enteredSAS: enteredSAS, + deviceToKeepActive: deviceToKeepActive, + ownedCryptoId: ownedCryptoId, + protocolInstanceUID: protocolInstanceUID) + onboardingFlow.dismiss(animated: true) + } + + + func userWantsToCloseOnboardingAndCancelAnyOwnedTransferProtocol(onboardingFlow: NewOnboardingFlowViewController) async { + do { + try await obvEngine.userWantsToCancelAllOwnedIdentityTransferProtocols() + } catch { + assertionFailure() + } + + onboardingFlow.dismiss(animated: true) + + } + + + func onboardingRequiresToRegisterAndUploadOwnedIdentityToKeycloakServer(ownedCryptoId: ObvCryptoId) async throws { + await KeycloakManagerSingleton.shared.registerKeycloakManagedOwnedIdentity(ownedCryptoId: ownedCryptoId, firstKeycloakBinding: true) + try await KeycloakManagerSingleton.shared.uploadOwnIdentity(ownedCryptoId: ownedCryptoId) + } + + + func onboardingRequiresKeycloakAuthentication(onboardingFlow: NewOnboardingFlowViewController, keycloakConfiguration: Onboarding.KeycloakConfiguration, keycloakServerKeyAndConfig: (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration)) async throws -> (keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff, keycloakState: ObvKeycloakState) { + let authState = try await KeycloakManagerSingleton.shared.authenticate(configuration: keycloakServerKeyAndConfig.serviceConfig, + clientId: keycloakConfiguration.clientId, + clientSecret: keycloakConfiguration.clientSecret, + ownedCryptoId: nil) + let keycloakConfig = KeycloakConfiguration(serverURL: keycloakConfiguration.keycloakServerURL, clientId: keycloakConfiguration.clientId, clientSecret: keycloakConfiguration.clientSecret) + return try await getOwnedDetailsAfterSucessfullAuthentication(keycloakConfiguration: keycloakConfig, keycloakServerKeyAndConfig: keycloakServerKeyAndConfig, authState: authState) + } + + + @MainActor + private func getOwnedDetailsAfterSucessfullAuthentication(keycloakConfiguration: KeycloakConfiguration, keycloakServerKeyAndConfig: (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration), authState: OIDAuthState) async throws -> (keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff, keycloakState: ObvKeycloakState) { + + let (keycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff) = try await KeycloakManagerSingleton.shared.getOwnDetails( + keycloakServer: keycloakConfiguration.serverURL, + authState: authState, + clientSecret: keycloakConfiguration.clientSecret, + jwks: keycloakServerKeyAndConfig.jwks, + latestLocalRevocationListTimestamp: nil) + + if let minimumBuildVersion = keycloakServerRevocationsAndStuff.minimumIOSBuildVersion { + guard ObvMessengerConstants.bundleVersionAsInt >= minimumBuildVersion else { + throw ObvError.installedOlvidAppIsOutdated + } + } + + let rawAuthState = try authState.serialize() + + let keycloakState = ObvKeycloakState( + keycloakServer: keycloakConfiguration.serverURL, + clientId: keycloakConfiguration.clientId, + clientSecret: keycloakConfiguration.clientSecret, + jwks: keycloakServerKeyAndConfig.jwks, + rawAuthState: rawAuthState, + signatureVerificationKey: keycloakUserDetailsAndStuff.serverSignatureVerificationKey, + latestLocalRevocationListTimestamp: nil, + latestGroupUpdateTimestamp: nil) + + return (keycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff, keycloakState) + + } + + + func onboardingRequiresToDiscoverKeycloakServer(onboardingFlow: NewOnboardingFlowViewController, keycloakServerURL: URL) async throws -> (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration) { + return try await KeycloakManagerSingleton.shared.discoverKeycloakServer(for: keycloakServerURL) + } + + + func userWantsToEnableAutomaticBackup(onboardingFlow: NewOnboardingFlowViewController) async throws { + + guard !ObvMessengerSettings.Backup.isAutomaticBackupEnabled else { return } + + guard let appBackupDelegate else { + throw ObvError.theAppBackupDelegateIsNotSet + } + + // The user wants to activate automatic backup. + // We must check whether it's possible. + let defaultTitleAndMessageOnError = (title: "AUTOMATIC_BACKUP_COULD_NOT_BE_ENABLED_TITLE", message: "PLEASE_TRY_AGAIN_LATER") + do { + let accountStatus = try await appBackupDelegate.getAccountStatus() + if case .available = accountStatus { + obvEngine.userJustActivatedAutomaticBackup() + ObvMessengerSettings.Backup.isAutomaticBackupEnabled = true + return + } else { + let titleAndMessage = AppBackupManager.CKAccountStatusMessage(accountStatus) ?? AppBackupManager.CKAccountStatusMessage(.couldNotDetermine) ?? defaultTitleAndMessageOnError + throw ObvError.ckAccountStatusError(title: titleAndMessage.title, message: titleAndMessage.message) + } + } catch { + let titleAndMessage = AppBackupManager.CKAccountStatusMessage(.noAccount) ?? defaultTitleAndMessageOnError + throw ObvError.ckAccountStatusError(title: titleAndMessage.title, message: titleAndMessage.message) + } + + } + + + @MainActor + func onboardingRequiresToRestoreBackup(onboardingFlow: NewOnboardingFlowViewController, backupRequestIdentifier: UUID) async throws -> ObvCryptoId { + let ownedDeviceName = UIDevice.current.preciseModel + let cryptoIdsOfRestoredOwnedIdentities = try await obvEngine.restoreFullBackup(backupRequestIdentifier: backupRequestIdentifier, nameToGiveToCurrentDevice: ownedDeviceName) + guard let randomCryptoId = cryptoIdsOfRestoredOwnedIdentities.first else { + assertionFailure() + throw ObvError.couldNotFindOwnedIdentity + } + // We obtained a list of restored owned identities. We only need to return one. We search for a non-hidden one + do { + let nonHiddenOwnedIdentities = try PersistedObvOwnedIdentity.getAllNonHiddenOwnedIdentities(within: ObvStack.shared.viewContext) + let cryptoIdsOfNonHiddenOwnedIdentities = Set(nonHiddenOwnedIdentities.map { $0.cryptoId }) + return cryptoIdsOfNonHiddenOwnedIdentities.intersection(cryptoIdsOfRestoredOwnedIdentities).first ?? randomCryptoId + } catch { + // If something goes wrong, we return a "random" restored owned identity + assertionFailure() + return randomCryptoId + } + } + + + func onboardingRequiresToRecoverBackupFromEncryptedBackup(onboardingFlow: NewOnboardingFlowViewController, encryptedBackup: Data, backupKey: String) async throws -> (backupRequestIdentifier: UUID, backupDate: Date) { + return try await obvEngine.recoverBackupData(encryptedBackup, withBackupKey: backupKey) + } + + + func onboardingRequiresAcceptableCharactersForBackupKeyString() async -> CharacterSet { + return obvEngine.getAcceptableCharactersForBackupKeyString() + } + + + func onboardingRequiresToGenerateOwnedIdentity(onboardingFlow: NewOnboardingFlowViewController, identityDetails: ObvIdentityDetails, nameForCurrentDevice: String, keycloakState: ObvKeycloakState?, customServerAndAPIKey: ServerAndAPIKey?) async throws -> ObvCryptoId { + let usedCustomServerAndAPIKey: ServerAndAPIKey? + if keycloakState != nil { + usedCustomServerAndAPIKey = nil + } else { + usedCustomServerAndAPIKey = customServerAndAPIKey // nil, most of the time + } + let generatedOwnedCryptoId = try await obvEngine.generateOwnedIdentity( + onServerURL: usedCustomServerAndAPIKey?.server ?? ObvMessengerConstants.serverURL, + with: identityDetails, + nameForCurrentDevice: nameForCurrentDevice, + keycloakState: keycloakState) + if let apiKey = usedCustomServerAndAPIKey?.apiKey { + _ = try await obvEngine.registerOwnedAPIKeyOnServerNow(ownedCryptoId: generatedOwnedCryptoId, apiKey: apiKey) + } + return generatedOwnedCryptoId + } + + + func onboardingIsFinished(onboardingFlow: NewOnboardingFlowViewController, ownedCryptoIdGeneratedDuringOnboarding: ObvTypes.ObvCryptoId) async { + let log = self.log + do { + try await setupAndShowAppropriateChildViewControllers(ownedCryptoIdGeneratedDuringOnboarding: ownedCryptoIdGeneratedDuringOnboarding) { result in + assert(Thread.isMainThread) + switch result { + case .failure(let error): + assertionFailure(error.localizedDescription) + case .success: + os_log("Did setup and show the appropriate child view controller", log: log, type: .info) + } + } + } catch { + assertionFailure() + } + } + + + func onboardingNeedsToPreventPrivacyWindowSceneFromShowingOnNextWillResignActive(onboardingFlow: NewOnboardingFlowViewController) async { + preventPrivacyWindowSceneFromShowingOnNextWillResignActive() + } + + + func onboardingRequiresToSyncAppDatabasesWithEngine(onboardingFlow: NewOnboardingFlowViewController) async throws { + try await requestSyncAppDatabasesWithEngine() + } + + + @MainActor + private func requestSyncAppDatabasesWithEngine() async throws { + try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + ObvMessengerInternalNotification.requestSyncAppDatabasesWithEngine(queuePriority: .veryHigh) { result in + switch result { + case .failure(let error): + continuation.resume(throwing: error) + case .success: + continuation.resume() + } + }.postOnDispatchQueue() + } + } + +} + + +// MARK: - SubscriptionPlansViewActionsProtocol (required for NewOnboardingFlowViewControllerDelegate) + +extension MetaFlowController { + + func fetchSubscriptionPlans(for ownedCryptoId: ObvCryptoId, alsoFetchFreePlan: Bool) async throws -> (freePlanIsAvailable: Bool, products: [Product]) { + + // Step 1: Ask the engine (i.e., Olvid's server) whether a free trial is still available for this identity + let freePlanIsAvailable: Bool + if alsoFetchFreePlan { + freePlanIsAvailable = try await obvEngine.queryServerForFreeTrial(for: ownedCryptoId) + } else { + freePlanIsAvailable = false + } + + // Step 2: As StoreKit about available products + assert(storeKitDelegate != nil) + let products = try await storeKitDelegate?.userRequestedListOfSKProducts() ?? [] + + return (freePlanIsAvailable, products) + } + + + func userWantsToStartFreeTrialNow(ownedCryptoId: ObvCryptoId) async throws -> APIKeyElements { + let newAPIKeyElements = try await obvEngine.startFreeTrial(for: ownedCryptoId) + return newAPIKeyElements + } + + + func userWantsToBuy(_ product: Product) async throws -> StoreKitDelegatePurchaseResult { + guard let storeKitDelegate else { assertionFailure(); throw ObvError.storeKitDelegateIsNil } + return try await storeKitDelegate.userWantsToBuy(product) + } + + + func userWantsToRestorePurchases() async throws { + guard let storeKitDelegate else { assertionFailure(); throw ObvError.storeKitDelegateIsNil } + return try await storeKitDelegate.userWantsToRestorePurchases() + } + +} + + +// MARK: - MainFlowViewControllerDelegate + +extension MetaFlowController { + + func userWantsToAddNewDevice(_ viewController: MainFlowViewController, ownedCryptoId: ObvCryptoId) async { + guard let ownedDetails = try? await getOwnedIdentityDetails(ownedCryptoId: ownedCryptoId) else { assertionFailure(); return } + let newOnboardingFlowViewController = NewOnboardingFlowViewController( + logSubsystem: ObvMessengerConstants.logSubsystem, + directoryForTempFiles: ObvUICoreDataConstants.ContainerURL.forTempFiles.url, + mode: .addNewDevice(ownedCryptoId: ownedCryptoId, ownedDetails: ownedDetails)) + newOnboardingFlowViewController.delegate = self + present(newOnboardingFlowViewController, animated: true) + } + + + private func getOwnedIdentityDetails(ownedCryptoId: ObvCryptoId) async throws -> CNContact? { + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + ObvStack.shared.performBackgroundTask { context in + do { + let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: context) + let ownedDetails = ownedIdentity?.asCNContact + continuation.resume(returning: ownedDetails) + } catch { + continuation.resume(throwing: error) + } + } + } + } + + +} + + // MARK: - Feeding the contact database extension MetaFlowController { private func observeUserWantsToDeleteOwnedContactGroupNotifications() { - let NotificationType = MessengerInternalNotification.UserWantsToDeleteOwnedContactGroup.self - let token = NotificationCenter.default.addObserver(forName: NotificationType.name, object: nil, queue: nil) { [weak self] (notification) in - guard let (groupUid, ownedCryptoId) = NotificationType.parse(notification) else { return } - guard self?.currentOwnedCryptoId == ownedCryptoId else { return } - self?.deleteOwnedContactGroup(groupUid: groupUid, ownedCryptoId: ownedCryptoId, confirmed: false) - } - observationTokens.append(token) + observationTokens.append(ObvMessengerInternalNotification.observeUserWantsToDeleteOwnedContactGroup { [weak self] ownedCryptoId, groupUid in + Task { await self?.deleteOwnedContactGroup(groupUid: groupUid, ownedCryptoId: ownedCryptoId, confirmed: false) } + }) } - private func deleteOwnedContactGroup(groupUid: UID, ownedCryptoId: ObvCryptoId, confirmed: Bool) { + @MainActor + private func deleteOwnedContactGroup(groupUid: UID, ownedCryptoId: ObvCryptoId, confirmed: Bool) async { if confirmed { do { - try obvEngine.deleteOwnedContactGroup(ownedCryptoId: ownedCryptoId, groupUid: groupUid) + try await obvEngine.disbandGroupV1(groupUid: groupUid, ownedCryptoId: ownedCryptoId) } catch { - // We could not delete the group owned. For now, we just display an alert indicating that a non-empty owned group cannot be deleted - let uiAlert = UIAlertController(title: Strings.AlertDeleteOwnedGroupFailed.title, message: Strings.AlertDeleteOwnedGroupFailed.message, preferredStyle: .alert) let okAction = UIAlertAction(title: CommonString.Word.Ok, style: .default, handler: nil) uiAlert.addAction(okAction) - if let presentedViewController = presentedViewController { + if let presentedViewController { presentedViewController.present(uiAlert, animated: true) } else { present(uiAlert, animated: true) } - } } else { @@ -821,7 +1235,7 @@ extension MetaFlowController { message: Strings.deleteGroupExplanation, preferredStyleForTraitCollection: self.traitCollection) alert.addAction(UIAlertAction(title: CommonString.AlertButton.performDeletionAction, style: .destructive, handler: { [weak self] (action) in - self?.deleteOwnedContactGroup(groupUid: groupUid, ownedCryptoId: ownedCryptoId, confirmed: true) + Task { await self?.deleteOwnedContactGroup(groupUid: groupUid, ownedCryptoId: ownedCryptoId, confirmed: true) } })) alert.addAction(UIAlertAction(title: CommonString.Word.Cancel, style: .cancel)) @@ -1070,24 +1484,7 @@ extension MetaFlowController { observationTokens.append(token) } - - private func processUserWantsToReCreateChannelEstablishmentProtocol(contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId) { - let obvEngine = self.obvEngine - DispatchQueue(label: "Background queue for recreating secure channel with contact").async { - do { - try obvEngine.reCreateAllChannelEstablishmentProtocolsWithContactIdentity(with: contactCryptoId, ofOwnedIdentyWith: ownedCryptoId) - } catch { - DispatchQueue.main.async { [weak self] in - let alert = UIAlertController(title: Strings.AlertChannelEstablishementRestartedFailed.title, message: "", preferredStyle: .alert) - alert.addAction(UIAlertAction(title: CommonString.Word.Ok, style: .default)) - self?.present(alert, animated: true) - } - } - // No feedback alert in case of success - } - } - private func processUserWantsToCreateNewGroupV1(groupName: String, groupDescription: String?, groupMembersCryptoIds: Set, ownedCryptoId: ObvCryptoId, photoURL: URL?) { assert(Thread.isMainThread) // Required because we access automaticallyNavigateToCreatedDisplayedContactGroup automaticallyNavigateToCreatedDisplayedContactGroup = true @@ -1127,7 +1524,8 @@ extension MetaFlowController { } - private func processDisplayedContactGroupWasJustCreated(permanentID: ObvManagedObjectPermanentID) { + @MainActor + private func processDisplayedContactGroupWasJustCreated(permanentID: ObvManagedObjectPermanentID) async { assert(Thread.isMainThread) // Required because we access automaticallyNavigateToCreatedDisplayedContactGroup guard automaticallyNavigateToCreatedDisplayedContactGroup else { return } guard let currentOwnedCryptoId else { return } @@ -1145,11 +1543,14 @@ extension MetaFlowController { @MainActor - private func processUserWantsToCreateNewOwnedIdentityNotification() async { + private func processUserWantsToAddOwnedProfileNotification() async { presentedViewController?.dismiss(animated: true) - let onboardingFlowViewController = OnboardingFlowViewController(obvEngine: obvEngine, appBackupDelegate: nil) - onboardingFlowViewController.delegate = self - present(onboardingFlowViewController, animated: true) + let newOnboardingFlowViewController = NewOnboardingFlowViewController( + logSubsystem: ObvMessengerConstants.logSubsystem, + directoryForTempFiles: ObvUICoreDataConstants.ContainerURL.forTempFiles.url, + mode: .addProfile) + newOnboardingFlowViewController.delegate = self + present(newOnboardingFlowViewController, animated: true) } } @@ -1233,11 +1634,26 @@ extension MetaFlowController { extension MetaFlowController { - nonisolated func handleOlvidURL(_ olvidURL: OlvidURL) { - DispatchQueue.main.async { [weak self] in - guard let _self = self else { return } - guard let olvidURLHandler = _self.children.compactMap({ $0 as? OlvidURLHandler }).first else { assertionFailure(); return } - olvidURLHandler.handleOlvidURL(olvidURL) + func handleOlvidURL(_ olvidURL: OlvidURL) async { + // If the OlvidURL is an openId redirect, we handle it immediately. + // Otherwise, we passe it down to the olvidURLHandler + if let opendIdRedirectURL = olvidURL.isOpenIdRedirectWithURL { + do { + _ = try await KeycloakManagerSingleton.shared.resumeExternalUserAgentFlow(with: opendIdRedirectURL) + os_log("Successfully resumed the external user agent flow", log: Self.log, type: .info) + } catch { + os_log("Failed to resume external user agent flow: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + return + } + } else { + if let olvidURLHandler = self.presentedViewController as? OlvidURLHandler { + // When the onboarding is presented (e.g., to create a second profile), this allows to pass any scanned URL to it (in particular, keycloak configurations) + await olvidURLHandler.handleOlvidURL(olvidURL) + } else { + guard let olvidURLHandler = self.children.compactMap({ $0 as? OlvidURLHandler }).first else { assertionFailure(); return } + await olvidURLHandler.handleOlvidURL(olvidURL) + } } } @@ -1269,3 +1685,54 @@ extension MetaFlowController { } } + + +// MARK: - Errors + +extension MetaFlowController { + + enum ObvError: LocalizedError { + case couldNotFindOwnedIdentity + case couldNotCompressImage + case theAppBackupDelegateIsNotSet + case ckAccountStatusError(title: String, message: String?) + case installedOlvidAppIsOutdated + case storeKitDelegateIsNil + + var errorDescription: String? { + switch self { + case .couldNotFindOwnedIdentity: + return "Could not find owned identity" + case .couldNotCompressImage: + return "Could not compress image" + case .theAppBackupDelegateIsNotSet: + return "The app backup delegate is not set" + case .ckAccountStatusError(title: let title, message: _): + return title + case .installedOlvidAppIsOutdated: + return "The installed Olvid App is outdated" + case .storeKitDelegateIsNil: + return "The store kit delegate is nil" + } + } + + var recoverySuggestion: String? { + switch self { + case .couldNotFindOwnedIdentity: + return nil + case .couldNotCompressImage: + return nil + case .theAppBackupDelegateIsNotSet: + return nil + case .ckAccountStatusError(_, let message): + return message + case .installedOlvidAppIsOutdated: + return nil + case .storeKitDelegateIsNil: + return nil + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/ObvSubTabBarController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/ObvSubTabBarController.swift index 032c20bb..2f85c589 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/ObvSubTabBarController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/ObvSubTabBarController.swift @@ -19,6 +19,8 @@ import UIKit import ObvTypes +import ObvEngine +import ObvUICoreData protocol ObvSubTabBarControllerDelegate: AnyObject { var currentOwnedCryptoId: ObvCryptoId { get } @@ -65,21 +67,6 @@ final class ObvSubTabBarController: UITabBarController, ObvSubTabBarDelegate, Ol return menu } - @available(iOS, introduced: 13, deprecated: 14, message: "Use provideMenu() instead") - func provideAlertActions() -> [UIAlertAction] { - let actions: [UIAlertAction] = [ - UIAlertAction(title: Strings.showBackupScreen, style: .default) { _ in - ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: .backupSettings) - .postOnDispatchQueue() - }, - UIAlertAction(title: Strings.showSettingsScreen, style: .default) { _ in - ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: .settings) - .postOnDispatchQueue() - }, - ] - return actions - } - @objc func dismissPresentedViewController() { presentedViewController?.dismiss(animated: true) } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/About/AboutSettingsTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/About/AboutSettingsTableViewController.swift index c8e88767..40c9bea6 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/About/AboutSettingsTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/About/AboutSettingsTableViewController.swift @@ -20,6 +20,9 @@ import ObvUI import UIKit import ObvUICoreData +import ObvSettings +import ObvDesignSystem + final class AboutSettingsTableViewController: UITableViewController { @@ -111,58 +114,32 @@ final class AboutSettingsTableViewController: UITableViewController { case .minimumSupportedVersion: let cell = tableView.dequeueReusableCell(withIdentifier: "AboutSettingsTableViewControllerCell") ?? UITableViewCell(style: .value1, reuseIdentifier: "AboutSettingsTableViewControllerCell") cell.selectionStyle = .none - if #available(iOS 14, *) { - var configuration = cell.defaultContentConfiguration() - configuration.text = Strings.minimumSupportedVersion - if let version = ObvMessengerSettings.AppVersionAvailable.minimum { - configuration.secondaryText = String(describing: version) - } else { - configuration.secondaryText = CommonString.Word.Unavailable - } - cell.contentConfiguration = configuration + var configuration = cell.defaultContentConfiguration() + configuration.text = Strings.minimumSupportedVersion + if let version = ObvMessengerSettings.AppVersionAvailable.minimum { + configuration.secondaryText = String(describing: version) } else { - cell.textLabel?.text = Strings.minimumSupportedVersion - if let version = ObvMessengerSettings.AppVersionAvailable.minimum { - cell.detailTextLabel?.text = String(describing: version) - } else { - cell.detailTextLabel?.text = CommonString.Word.Unavailable - } - cell.selectionStyle = .none + configuration.secondaryText = CommonString.Word.Unavailable } + cell.contentConfiguration = configuration return cell case .minimumRecommendedVersion: let cell = tableView.dequeueReusableCell(withIdentifier: "AboutSettingsTableViewControllerCell") ?? UITableViewCell(style: .value1, reuseIdentifier: "AboutSettingsTableViewControllerCell") - if #available(iOS 14, *) { - var configuration = cell.defaultContentConfiguration() - configuration.text = Strings.minimumRecommendedVersion - if let version = ObvMessengerSettings.AppVersionAvailable.latest { - configuration.secondaryText = String(describing: version) - } else { - configuration.secondaryText = CommonString.Word.Unavailable - } - cell.contentConfiguration = configuration + var configuration = cell.defaultContentConfiguration() + configuration.text = Strings.minimumRecommendedVersion + if let version = ObvMessengerSettings.AppVersionAvailable.latest { + configuration.secondaryText = String(describing: version) } else { - cell.textLabel?.text = Strings.minimumRecommendedVersion - if let version = ObvMessengerSettings.AppVersionAvailable.latest { - cell.detailTextLabel?.text = String(describing: version) - } else { - cell.detailTextLabel?.text = CommonString.Word.Unavailable - } - cell.selectionStyle = .none + configuration.secondaryText = CommonString.Word.Unavailable } + cell.contentConfiguration = configuration return cell case .goToAppStore: let cell = tableView.dequeueReusableCell(withIdentifier: "AboutSettingsTableViewControllerCell") ?? UITableViewCell(style: .value1, reuseIdentifier: "AboutSettingsTableViewControllerCell") - if #available(iOS 14, *) { - var configuration = cell.defaultContentConfiguration() - configuration.text = Strings.upgradeOlvidNow - configuration.textProperties.color = AppTheme.shared.colorScheme.link - cell.contentConfiguration = configuration - } else { - cell.textLabel?.text = Strings.upgradeOlvidNow - cell.detailTextLabel?.text = nil - cell.textLabel?.textColor = AppTheme.shared.colorScheme.link - } + var configuration = cell.defaultContentConfiguration() + configuration.text = Strings.upgradeOlvidNow + configuration.textProperties.color = AppTheme.shared.colorScheme.link + cell.contentConfiguration = configuration cell.selectionStyle = .default return cell } @@ -175,22 +152,18 @@ final class AboutSettingsTableViewController: UITableViewController { cell.textLabel?.text = Strings.termsOfUse cell.textLabel?.textColor = AppTheme.shared.colorScheme.link cell.selectionStyle = .default - if #available(iOS 14.0, *) { - let icon = NSTextAttachment() - icon.image = UIImage(systemIcon: .network)?.withTintColor(AppTheme.shared.colorScheme.link) - cell.detailTextLabel?.attributedText = NSMutableAttributedString(attachment: icon) - } + let icon = NSTextAttachment() + icon.image = UIImage(systemIcon: .network)?.withTintColor(AppTheme.shared.colorScheme.link) + cell.detailTextLabel?.attributedText = NSMutableAttributedString(attachment: icon) return cell case .privacyPolicy: let cell = tableView.dequeueReusableCell(withIdentifier: "AboutSettingsTableViewControllerCell") ?? UITableViewCell(style: .value1, reuseIdentifier: "AboutSettingsTableViewControllerCell") cell.textLabel?.text = Strings.privacyPolicy cell.textLabel?.textColor = AppTheme.shared.colorScheme.link cell.selectionStyle = .default - if #available(iOS 14.0, *) { - let icon = NSTextAttachment() - icon.image = UIImage(systemIcon: .network)?.withTintColor(AppTheme.shared.colorScheme.link) - cell.detailTextLabel?.attributedText = NSMutableAttributedString(attachment: icon) - } + let icon = NSTextAttachment() + icon.image = UIImage(systemIcon: .network)?.withTintColor(AppTheme.shared.colorScheme.link) + cell.detailTextLabel?.attributedText = NSMutableAttributedString(attachment: icon) return cell case .acknowlegments: let cell = tableView.dequeueReusableCell(withIdentifier: "AboutSettingsTableViewControllerCell") ?? UITableViewCell(style: .value1, reuseIdentifier: "AboutSettingsTableViewControllerCell") diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/About/ExternalLibrariesViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/About/ExternalLibrariesViewController.swift index 6258d883..76a8ed1f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/About/ExternalLibrariesViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/About/ExternalLibrariesViewController.swift @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + private enum Licence { case webrtc diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/BackupKeyAllTextFields.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/BackupKeyAllTextFields.swift index 46a8f1ea..bba5c72c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/BackupKeyAllTextFields.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/BackupKeyAllTextFields.swift @@ -34,7 +34,7 @@ struct BackupKeyAllTextFields: View { BackupKeyPartTextField(index: index, textFieldWasCreatedAction: { textField in internalTextFieldWasCreatedAction(index, textField) }) if index < 3 { - Text("-") + Text(verbatim: "-") } } Spacer(minLength: 0) @@ -45,7 +45,7 @@ struct BackupKeyAllTextFields: View { BackupKeyPartTextField(index: index, textFieldWasCreatedAction: { textField in internalTextFieldWasCreatedAction(index, textField) }) if index < 7 { - Text("-") + Text(verbatim: "-") } } Spacer(minLength: 0) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/BackupKeyVerifierView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/BackupKeyVerifierView.swift index 272dcfd6..a26e31e7 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/BackupKeyVerifierView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/BackupKeyVerifierView.swift @@ -24,6 +24,7 @@ import ObvEngine import ObvTypes import ObvUI import ObvUICoreData +import ObvDesignSystem final class BackupKeyVerifierViewHostingController: UIHostingController { @@ -359,7 +360,7 @@ fileprivate struct BackupKeyVerifierInnerView: View { if let keyStatusReport = self.keyStatusReport { KeyStatusReportView(keyStatusReport: keyStatusReport) .transition(.scale) - .animation(.spring()) + .animation(.spring(), value: 0.3) } if isInBackupRecoveryMode { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/BackupTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/BackupTableViewController.swift index abc912ff..6aa4d895 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/BackupTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/BackupTableViewController.swift @@ -25,6 +25,9 @@ import CloudKit import OlvidUtils import ObvUI import ObvUICoreData +import ObvSettings +import ObvDesignSystem + /// First table view controller shown when navigating to the backup settings. @MainActor @@ -643,24 +646,20 @@ extension BackupTableViewController { private func updateComputeCKRecordCountCell(cell: UITableViewCell) { - if #available(iOS 14, *) { - var configuration = UIListContentConfiguration.valueCell() - configuration.text = Strings.computeCKRecordCount - configuration.textProperties.color = AppTheme.shared.colorScheme.link - if let ckRecordCountState = ckRecordCountState { - switch ckRecordCountState { - case .count(let count): - configuration.secondaryText = String(count) - case .error: - configuration.secondaryText = CommonString.Word.Error - } - } else { - configuration.secondaryText = nil + var configuration = UIListContentConfiguration.valueCell() + configuration.text = Strings.computeCKRecordCount + configuration.textProperties.color = AppTheme.shared.colorScheme.link + if let ckRecordCountState = ckRecordCountState { + switch ckRecordCountState { + case .count(let count): + configuration.secondaryText = String(count) + case .error: + configuration.secondaryText = CommonString.Word.Error } - cell.contentConfiguration = configuration } else { - cell.textLabel?.text = Strings.computeCKRecordCount + configuration.secondaryText = nil } + cell.contentConfiguration = configuration } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/ICloudBackupListView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/ICloudBackupListView.swift index 6212f06e..bdbb4d38 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/ICloudBackupListView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Backup/ICloudBackupListView.swift @@ -17,7 +17,6 @@ * along with Olvid. If not, see . */ - import CloudKit import Combine import ObvUI @@ -25,6 +24,7 @@ import SwiftUI import ObvUICoreData import UI_SystemIcon import UI_SystemIcon_SwiftUI +import ObvDesignSystem protocol ICloudBackupListViewControllerDelegate: AnyObject { @@ -308,14 +308,14 @@ struct ICloudBackupListView: View { private func numberOfRecordTitle(count: Int, canHaveMoreRecords: Bool) -> String { if canHaveMoreRecords { - return String.localizedStringWithFormat(NSLocalizedString("recent backups count", comment: "Header for n recent backups"), count) + return String(format: NSLocalizedString("recent backups count", comment: "Header for n recent backups"), count) } else { - return String.localizedStringWithFormat(NSLocalizedString("backups count", comment: "Header for n backups"), count) + return String(format: NSLocalizedString("BACKUP_%llu_COUNT", comment: "Header for n backups"), count) } } private func cleanInProgressTitle(count: Int64) -> String { - String.localizedStringWithFormat(NSLocalizedString("clean in progress count", comment: "Header for n backups"), count) + return String(format: NSLocalizedString("%lld_DELETED_BACKUPS", comment: ""), count) } @@ -388,35 +388,22 @@ struct ICloudBackupListView: View { model.loadMoreRecords(appendResult: true) } } - if #available(iOS 15.0, *) { - cell - .swipeActions { - Button(role: .destructive) { - deleteAction(record: record) - } label: { - Label(CommonString.Word.Delete, systemImage: SystemIcon.trash.systemName) - } - } - } else { - HStack { - cell - Spacer() - Button { + cell + .swipeActions { + Button(role: .destructive) { deleteAction(record: record) } label: { - Image(systemIcon: .trash) + Label(CommonString.Word.Delete, systemImage: SystemIcon.trash.systemName) } - .foregroundColor(.red) } - } } if model.isLoadingMoreRecords { - ObvActivityIndicator(isAnimating: .constant(true), style: .medium, color: nil) + ProgressView() .frame(idealWidth: .infinity, maxWidth: .infinity, alignment: .center) } } } - .obvListStyle() + .listStyle(InsetGroupedListStyle()) .disabled(model.isFetching || actionSheet != nil) } } @@ -439,7 +426,7 @@ struct ICloudBackupListView: View { Spacer() } } else { - let progressView = ObvProgressView() + let progressView = ProgressView() .foregroundColor(.secondary) .padding() ZStack { @@ -454,9 +441,7 @@ struct ICloudBackupListView: View { Text(model.fractionCompletedString ?? "") } VStack(alignment: .leading) { - if #available(iOS 15, *) { - ProgressView(value: model.fractionCompleted) - } + ProgressView(value: model.fractionCompleted) Text(model.estimatedTimeRemainingString ?? "") } case .terminate: @@ -476,12 +461,8 @@ struct ICloudBackupListView: View { Spacer() HStack { Spacer() - if #available(iOS 15.0, *) { - progressView - .background(.ultraThinMaterial) - } else { - progressView - } + progressView + .background(.ultraThinMaterial) Spacer() } Spacer() diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/ContactsAndGroups/ContactsAndGroupsSettingsTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/ContactsAndGroups/ContactsAndGroupsSettingsTableViewController.swift index 01d5c3a4..4154de55 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/ContactsAndGroups/ContactsAndGroupsSettingsTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/ContactsAndGroups/ContactsAndGroupsSettingsTableViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,6 +22,8 @@ import UIKit import ObvTypes import ObvEngine import ObvUICoreData +import Combine +import ObvSettings final class ContactsAndGroupsSettingsTableViewController: UITableViewController { @@ -29,6 +31,9 @@ final class ContactsAndGroupsSettingsTableViewController: UITableViewController private let ownedCryptoId: ObvCryptoId private let obvEngine: ObvEngine + /// Allows to observe changes made to certain settings made from other owned devices + private var cancellables = Set() + init(ownedCryptoId: ObvCryptoId, obvEngine: ObvEngine) { self.ownedCryptoId = ownedCryptoId self.obvEngine = obvEngine @@ -39,9 +44,15 @@ final class ContactsAndGroupsSettingsTableViewController: UITableViewController fatalError("init(coder:) has not been implemented") } + deinit { + cancellables.forEach { $0.cancel() } + cancellables.removeAll() + } + override func viewDidLoad() { super.viewDidLoad() title = CommonString.Title.contactsAndGroups + observeChangesMadeFromOtherOwnedDevices() } override func viewWillAppear(_ animated: Bool) { @@ -65,6 +76,23 @@ final class ContactsAndGroupsSettingsTableViewController: UITableViewController } private var shownGroupsRows = [GroupsRow.autoAcceptGroupInvitesFrom] + + private func observeChangesMadeFromOtherOwnedDevices() { + + ObvMessengerSettingsObservableObject.shared.$autoAcceptGroupInviteFrom + .compactMap { (autoAcceptGroupInviteFrom, changeMadeFromAnotherOwnedDevice, ownedCryptoId) in + // We only observe changes made from other owned devices + guard changeMadeFromAnotherOwnedDevice else { return nil } + return autoAcceptGroupInviteFrom + } + .receive(on: DispatchQueue.main) + .sink { [weak self] (autoAcceptGroupInviteFrom: ObvMessengerSettings.ContactsAndGroups.AutoAcceptGroupInviteFrom) in + self?.tableView.reloadData() + } + .store(in: &cancellables) + + } + } @@ -99,42 +127,26 @@ extension ContactsAndGroupsSettingsTableViewController { guard indexPath.row < shownContactsRows.count else { assertionFailure(); return UITableViewCell() } switch shownContactsRows[indexPath.row] { case .contactSortOrder: - if #available(iOS 14, *) { - let cell = UITableViewCell(style: .default, reuseIdentifier: nil) - var configuration = UIListContentConfiguration.valueCell() - configuration.text = CommonString.Title.contactsSortOrder - configuration.secondaryText = ObvMessengerSettings.Interface.contactsSortOrder.description - cell.contentConfiguration = configuration - cell.accessoryType = .disclosureIndicator - return cell - } else { - let cell = UITableViewCell(style: .value1, reuseIdentifier: nil) - cell.textLabel?.text = CommonString.Title.contactsSortOrder - cell.detailTextLabel?.text = ObvMessengerSettings.Interface.contactsSortOrder.description - cell.accessoryType = .disclosureIndicator - return cell - } + let cell = UITableViewCell(style: .default, reuseIdentifier: nil) + var configuration = UIListContentConfiguration.valueCell() + configuration.text = CommonString.Title.contactsSortOrder + configuration.secondaryText = ObvMessengerSettings.Interface.contactsSortOrder.description + cell.contentConfiguration = configuration + cell.accessoryType = .disclosureIndicator + return cell } case .groups: guard indexPath.row < shownGroupsRows.count else { assertionFailure(); return UITableViewCell() } switch shownGroupsRows[indexPath.row] { case .autoAcceptGroupInvitesFrom: - if #available(iOS 14, *) { - let cell = UITableViewCell(style: .default, reuseIdentifier: nil) - var configuration = UIListContentConfiguration.valueCell() - configuration.text = DetailedSettingForAutoAcceptGroupInvitesViewController.Strings.autoAcceptGroupInvitesFrom - configuration.secondaryText = ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom.localizedDescription - cell.contentConfiguration = configuration - cell.accessoryType = .disclosureIndicator - return cell - } else { - let cell = UITableViewCell(style: .value1, reuseIdentifier: nil) - cell.textLabel?.text = DetailedSettingForAutoAcceptGroupInvitesViewController.Strings.autoAcceptGroupInvitesFrom - cell.detailTextLabel?.text = ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom.localizedDescription - cell.accessoryType = .disclosureIndicator - return cell - } + let cell = UITableViewCell(style: .default, reuseIdentifier: nil) + var configuration = UIListContentConfiguration.valueCell() + configuration.text = DetailedSettingForAutoAcceptGroupInvitesViewController.Strings.autoAcceptGroupInvitesFrom + configuration.secondaryText = ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom.localizedDescription + cell.contentConfiguration = configuration + cell.accessoryType = .disclosureIndicator + return cell } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/ContactsAndGroups/DetailedSettingForAutoAcceptGroupInvitesViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/ContactsAndGroups/DetailedSettingForAutoAcceptGroupInvitesViewController.swift index 238a857c..564a004e 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/ContactsAndGroups/DetailedSettingForAutoAcceptGroupInvitesViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/ContactsAndGroups/DetailedSettingForAutoAcceptGroupInvitesViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,8 @@ import ObvTypes import ObvEngine import OlvidUtils import ObvUICoreData +import Combine +import ObvSettings final class DetailedSettingForAutoAcceptGroupInvitesViewController: UITableViewController, ObvErrorMaker { @@ -35,6 +37,11 @@ final class DetailedSettingForAutoAcceptGroupInvitesViewController: UITableViewC self.obvEngine = obvEngine super.init(style: Self.settingsTableStyle) } + + deinit { + cancellables.forEach { $0.cancel() } + cancellables.removeAll() + } static let errorDomain = "DetailedSettingForAutoAcceptGroupInvitesViewController" @@ -44,10 +51,31 @@ final class DetailedSettingForAutoAcceptGroupInvitesViewController: UITableViewC override func viewDidLoad() { super.viewDidLoad() + observeChangesMadeFromOtherOwnedDevices() } private var shownRows = ObvMessengerSettings.ContactsAndGroups.AutoAcceptGroupInviteFrom.allCases + /// Allows to observe changes made to certain settings made from other owned devices + private var cancellables = Set() + + + private func observeChangesMadeFromOtherOwnedDevices() { + + ObvMessengerSettingsObservableObject.shared.$autoAcceptGroupInviteFrom + .compactMap { (autoAcceptGroupInviteFrom, changeMadeFromAnotherOwnedDevice, ownedCryptoId) in + // We only observe changes made from other owned devices + guard changeMadeFromAnotherOwnedDevice else { return nil } + return autoAcceptGroupInviteFrom + } + .receive(on: DispatchQueue.main) + .sink { [weak self] (autoAcceptGroupInviteFrom: ObvMessengerSettings.ContactsAndGroups.AutoAcceptGroupInviteFrom) in + self?.tableView.reloadData() + } + .store(in: &cancellables) + + } + } @@ -95,7 +123,7 @@ extension DetailedSettingForAutoAcceptGroupInvitesViewController { let acceptableAutoAcceptType = try await suggestAutoAcceptingCurrentGroupInvitationsNowIfRequired( selectedAutoAcceptType: selectedAutoAcceptType, currentAutoAcceptType: ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom) - ObvMessengerSettings.ContactsAndGroups.autoAcceptGroupInviteFrom = acceptableAutoAcceptType + ObvMessengerSettings.ContactsAndGroups.setAutoAcceptGroupInviteFrom(to: acceptableAutoAcceptType, changeMadeFromAnotherOwnedDevice: false, ownedCryptoId: ownedCryptoId) tableView.reloadData() } catch { assertionFailure(error.localizedDescription) @@ -152,12 +180,13 @@ extension DetailedSettingForAutoAcceptGroupInvitesViewController { assert(Thread.isMainThread) guard !groupInvites.isEmpty else { return true } let traitCollection = self.traitCollection + let obvEngine = self.obvEngine return try await withCheckedThrowingContinuation { [weak self] (continuation: CheckedContinuation) in assert(Thread.isMainThread) let alert = UIAlertController(title: Strings.Alert.title, message: Strings.Alert.message(numberOfInvitations: groupInvites.count), preferredStyleForTraitCollection: traitCollection) - let okAction = UIAlertAction(title: Strings.Alert.AcceptAction.title(numberOfInvitations: groupInvites.count), style: .default) { [weak self] _ in + let okAction = UIAlertAction(title: Strings.Alert.AcceptAction.title(numberOfInvitations: groupInvites.count), style: .default) { _ in do { var dialogsForEngine = [ObvDialog]() for groupInvite in groupInvites { @@ -173,10 +202,9 @@ extension DetailedSettingForAutoAcceptGroupInvitesViewController { assertionFailure() } } - let queueForRespondingToDialog = DispatchQueue(label: "Queue for responding to dialog") for dialog in dialogsForEngine { - queueForRespondingToDialog.async { [weak self] in - self?.obvEngine.respondTo(dialog) + Task { + try? await obvEngine.respondTo(dialog) } } } catch { @@ -205,9 +233,9 @@ extension DetailedSettingForAutoAcceptGroupInvitesViewController { static let autoAcceptGroupInvitesFrom = NSLocalizedString("AUTO_ACCEPT_GROUP_INVITES_FROM", comment: "") struct Alert { static let title = NSLocalizedString("AUTO_ACCEPT_GROUP_INVITATIONS_ALERT_TITLE", comment: "") - static func message(numberOfInvitations: Int) -> String { String.localizedStringWithFormat(NSLocalizedString("AUTO_ACCEPT_GROUP_INVITATIONS_ALERT_MESSAGE", comment: ""), numberOfInvitations) } + static func message(numberOfInvitations: Int) -> String { String(format: NSLocalizedString("AUTO_ACCEPT_GROUP_%llu_INVITATIONS_ALERT_MESSAGE", comment: ""), numberOfInvitations) } struct AcceptAction { - static func title(numberOfInvitations: Int) -> String { String.localizedStringWithFormat(NSLocalizedString("AUTO_ACCEPT_GROUP_INVITATIONS_ALERT_ACCEPT_ACTION_TITLE", comment: ""), numberOfInvitations) } + static func title(numberOfInvitations: Int) -> String { String(format: NSLocalizedString("AUTO_ACCEPT_GROUP_%llu_INVITATIONS_ALERT_ACCEPT_ACTION_TITLE", comment: ""), numberOfInvitations) } } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/AdvancedSettingsViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/AdvancedSettingsViewController.swift index 6be149e8..9d233680 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/AdvancedSettingsViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/AdvancedSettingsViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,17 +24,22 @@ import OlvidUtils import os.log import ObvUI import ObvUICoreData +import ObvEngine +import ObvSettings +import ObvDesignSystem @MainActor final class AdvancedSettingsViewController: UITableViewController { let ownedCryptoId: ObvCryptoId + let obvEngine: ObvEngine let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: AdvancedSettingsViewController.self)) - init(ownedCryptoId: ObvCryptoId) { + init(ownedCryptoId: ObvCryptoId, obvEngine: ObvEngine) { self.ownedCryptoId = ownedCryptoId + self.obvEngine = obvEngine super.init(style: Self.settingsTableStyle) } @@ -65,6 +70,7 @@ final class AdvancedSettingsViewController: UITableViewController { private enum Section: CaseIterable { case clearCache + case downloadMissingProfilePictures case customKeyboards case websockedStatus case diskUsage @@ -72,7 +78,7 @@ final class AdvancedSettingsViewController: UITableViewController { case exportsDatabasesAndCopyURLs static var shown: [Section] { - var result = [Section.clearCache, .customKeyboards, .websockedStatus, .diskUsage] + var result = [Section.clearCache, .downloadMissingProfilePictures, .customKeyboards, .websockedStatus, .diskUsage] if ObvMessengerConstants.showExperimentalFeature { result += [Section.logs, .exportsDatabasesAndCopyURLs] } @@ -82,6 +88,7 @@ final class AdvancedSettingsViewController: UITableViewController { var numberOfItems: Int { switch self { case .clearCache: return ClearCacheItem.shown.count + case .downloadMissingProfilePictures: return DownloadMissingProfilePicturesItem.shown.count case .customKeyboards: return CustomKeyboardsItem.shown.count case .websockedStatus: return WebsockedStatusItem.shown.count case .diskUsage: return DiskUsageItem.shown.count @@ -113,7 +120,23 @@ final class AdvancedSettingsViewController: UITableViewController { } } } - + + private enum DownloadMissingProfilePicturesItem: CaseIterable { + case downloadMissingProfilePictures + static var shown: [Self] { + return self.allCases + } + static func shownItemAt(item: Int) -> Self? { + guard item < shown.count else { assertionFailure(); return nil } + return shown[item] + } + var cellIdentifier: String { + switch self { + case .downloadMissingProfilePictures: return "DownloadMissingProfilePicturesCell" + } + } + } + private enum CustomKeyboardsItem: CaseIterable { case customKeyboards static var shown: [CustomKeyboardsItem] { @@ -148,8 +171,9 @@ final class AdvancedSettingsViewController: UITableViewController { private enum DiskUsageItem: CaseIterable { case diskUsage + case internalStorageExplorer static var shown: [DiskUsageItem] { - return self.allCases + return ObvMessengerConstants.showExperimentalFeature ? self.allCases : [.diskUsage] } static func shownItemAt(item: Int) -> DiskUsageItem? { guard item < shown.count else { assertionFailure(); return nil } @@ -157,6 +181,7 @@ final class AdvancedSettingsViewController: UITableViewController { } var cellIdentifier: String { switch self { + case .internalStorageExplorer: return "InternalStorageExplorer" case .diskUsage: return "DiskUsage" } } @@ -246,6 +271,18 @@ extension AdvancedSettingsViewController { return cell } + case .downloadMissingProfilePictures: + guard let item = DownloadMissingProfilePicturesItem.shownItemAt(item: indexPath.item) else { assertionFailure(); return cellInCaseOfError } + switch item { + case .downloadMissingProfilePictures: + let cell = tableView.dequeueReusableCell(withIdentifier: item.cellIdentifier) ?? UITableViewCell(style: .default, reuseIdentifier: item.cellIdentifier) + var content = cell.defaultContentConfiguration() + content.text = Strings.downloadMissingProfilePictures + content.textProperties.color = AppTheme.shared.colorScheme.link + cell.contentConfiguration = content + return cell + } + case .customKeyboards: guard let item = CustomKeyboardsItem.shownItemAt(item: indexPath.item) else { assertionFailure(); return cellInCaseOfError } switch item { @@ -285,11 +322,7 @@ extension AdvancedSettingsViewController { DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(AdvancedSettingsViewController.websocketRefreshTimeInterval)) { guard let tableView = self?.tableView else { return } guard tableView.numberOfSections > indexPath.section && tableView.numberOfRows(inSection: indexPath.section) > indexPath.row else { return } - if #available(iOS 15, *) { - tableView.reconfigureRows(at: [indexPath]) - } else { - tableView.reloadRows(at: [indexPath], with: .none) - } + tableView.reconfigureRows(at: [indexPath]) } } let ownedCryptoId = self.ownedCryptoId @@ -300,11 +333,7 @@ extension AdvancedSettingsViewController { DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(AdvancedSettingsViewController.websocketRefreshTimeInterval)) { [weak self] in guard let tableView = self?.tableView else { return } guard tableView.numberOfSections > indexPath.section && tableView.numberOfRows(inSection: indexPath.section) > indexPath.row else { return } - if #available(iOS 15, *) { - tableView.reconfigureRows(at: [indexPath]) - } else { - tableView.reloadRows(at: [indexPath], with: .none) - } + tableView.reconfigureRows(at: [indexPath]) } } return cell @@ -318,6 +347,11 @@ extension AdvancedSettingsViewController { cell.textLabel?.text = Strings.diskUsageTitle cell.accessoryType = .disclosureIndicator return cell + case .internalStorageExplorer: + let cell = tableView.dequeueReusableCell(withIdentifier: item.cellIdentifier) ?? UITableViewCell(style: .default, reuseIdentifier: item.cellIdentifier) + cell.textLabel?.text = Strings.internalStorageExplorer + cell.accessoryType = .disclosureIndicator + return cell } case .logs: @@ -395,6 +429,7 @@ extension AdvancedSettingsViewController { override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { guard let section = Section.shownSectionAt(section: indexPath.section) else { assertionFailure(); return } switch section { + case .clearCache: guard let item = ClearCacheItem.shownItemAt(item: indexPath.item) else { assertionFailure(); return } switch item { @@ -404,15 +439,45 @@ extension AdvancedSettingsViewController { tableView.deselectRow(at: indexPath, animated: true) } return + + case .downloadMissingProfilePictures: + guard let item = DownloadMissingProfilePicturesItem.shownItemAt(item: indexPath.item) else { assertionFailure(); return } + switch item { + case .downloadMissingProfilePictures: + showHUD(type: .spinner) + Task { + var finalHUDTypeToShow = ObvHUDType.checkmark + do { try await obvEngine.downloadMissingProfilePicturesForContacts() } catch { finalHUDTypeToShow = .xmark } + do { try await obvEngine.downloadMissingProfilePicturesForGroupsV1() } catch { finalHUDTypeToShow = .xmark } + do { try await obvEngine.downloadMissingProfilePicturesForGroupsV2() } catch { finalHUDTypeToShow = .xmark } + do { try await obvEngine.downloadMissingProfilePicturesForOwnedIdentities() } catch { finalHUDTypeToShow = .xmark } + await showThenHideHUD(type: finalHUDTypeToShow, andDeselectRowAt: indexPath) + } + } + case .customKeyboards: return case .websockedStatus: return + case .diskUsage: - let vc = DiskUsageViewController() - present(vc, animated: true) { - tableView.deselectRow(at: indexPath, animated: true) + guard let item = DiskUsageItem.shownItemAt(item: indexPath.item) else { assertionFailure(); return } + switch item { + case .diskUsage: + let vc = DiskUsageViewController() + present(vc, animated: true) { + tableView.deselectRow(at: indexPath, animated: true) + } + case .internalStorageExplorer: + let vc = InternalStorageExplorerViewController(root: ObvUICoreDataConstants.ContainerURL.securityApplicationGroupURL) + let nav = UINavigationController(rootViewController: vc) + present(nav, animated: true) { + tableView.deselectRow(at: indexPath, animated: true) + } + break } + + case .logs: guard let item = LogsItem.shownItemAt(item: indexPath.item) else { assertionFailure(); return } switch (item) { @@ -471,10 +536,20 @@ extension AdvancedSettingsViewController { } + @MainActor + private func showThenHideHUD(type: ObvHUDType, andDeselectRowAt indexPath: IndexPath) async { + showHUD(type: type) + try? await Task.sleep(seconds: 2) + hideHUD() + tableView.deselectRow(at: indexPath, animated: true) + } + + override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { guard let section = Section.shownSectionAt(section: section) else { assertionFailure(); return nil } switch section { case .clearCache: return Strings.cacheManagement + case .downloadMissingProfilePictures: return nil case .customKeyboards: return Strings.customKeyboardsManagement case .websockedStatus: return Strings.webSocketStatus case .logs: return Strings.inAppLogs @@ -487,6 +562,7 @@ extension AdvancedSettingsViewController { guard let section = Section.shownSectionAt(section: section) else { assertionFailure(); return nil } switch section { case .clearCache: return nil + case .downloadMissingProfilePictures: return Strings.downloadMissingProfilePicturesExplanation case .customKeyboards: return Strings.customKeyboardsManagementExplanation case .websockedStatus: return nil case .diskUsage: return nil @@ -503,6 +579,8 @@ extension AdvancedSettingsViewController { struct Strings { static let clearCache = NSLocalizedString("Clear cache", comment: "") + static let downloadMissingProfilePictures = NSLocalizedString("DOWNLOAD_MISSING_PROFILE_PICTURES_BUTTON_TITLE", comment: "") + static let downloadMissingProfilePicturesExplanation = NSLocalizedString("DOWNLOAD_MISSING_PROFILE_PICTURES_EXPLANATION", comment: "") static let copyDocumentsURL = NSLocalizedString("Copy Documents URL", comment: "Button title, only in dev mode") static let copyAppDatabaseURL = NSLocalizedString("Copy App Database URL", comment: "Button title, only in dev mode") static let cacheManagement = NSLocalizedString("Cache management", comment: "") @@ -516,6 +594,7 @@ extension AdvancedSettingsViewController { static let allowAPIKeyActivationWithBadKeyStatusTitle = NSLocalizedString("Allow all api key activations", comment: "") static let webSocketStatus = NSLocalizedString("Websocket status", comment: "") static let diskUsageTitle = NSLocalizedString("DISK_USAGE", comment: "") + static let internalStorageExplorer = NSLocalizedString("INTERNAL_STORAGE_EXPLORER", comment: "") static let enableRunningLogs = NSLocalizedString("ENABLE_RUNNING_LOGS", comment: "") static let inAppLogs = NSLocalizedString("IN_APP_LOGS", comment: "") static let showCoordinatorsQueue = NSLocalizedString("SHOW_CURRENT_COORDINATORS_OPS", comment: "") diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/DiskUsageViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/DiskUsageViewController.swift index 3be18e08..40ba1673 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/DiskUsageViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/DiskUsageViewController.swift @@ -20,6 +20,8 @@ import ObvUI import ObvUICoreData import SwiftUI +import ObvSettings +import ObvDesignSystem final class DiskUsageViewController: UIHostingController { @@ -216,7 +218,7 @@ private struct DiskInfoView: View { private var valueView: some View { switch info.computationStatus { case .computing: - ObvActivityIndicator(isAnimating: .constant(true), style: .medium, color: nil) + ProgressView() case .failed: Image(systemIcon: .exclamationmarkCircle) case .computed(size: let size, count: let count): diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/DisplayableLogs/DisplayableLogsHostingViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/DisplayableLogs/DisplayableLogsHostingViewController.swift index 94f26c10..6f20a503 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/DisplayableLogs/DisplayableLogsHostingViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/DisplayableLogs/DisplayableLogsHostingViewController.swift @@ -141,22 +141,17 @@ struct DisplayableLogsListInnerView: View { } } } - if #available(iOS 15.0, *) { - navigationLink.swipeActions { - Button(role: .destructive) { - deleteLogAction(filename) - } label: { - Image(systemIcon: .trash) - } - Button { - shareAction(filename) - } label: { - Image(systemIcon: .squareAndArrowUp) - } + navigationLink.swipeActions { + Button(role: .destructive) { + deleteLogAction(filename) + } label: { + Image(systemIcon: .trash) + } + Button { + shareAction(filename) + } label: { + Image(systemIcon: .squareAndArrowUp) } - } else { - // Delete and share actions are in SingleDisplayableLogView - navigationLink } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/DisplayableLogs/SingleDisplayableLogView.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/DisplayableLogs/SingleDisplayableLogView.swift index 4fa938fd..4cbbbaf5 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/DisplayableLogs/SingleDisplayableLogView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/DisplayableLogs/SingleDisplayableLogView.swift @@ -20,6 +20,8 @@ import SwiftUI import QuickLook import ObvUICoreData +import ObvSettings + struct SingleDisplayableLogView: UIViewControllerRepresentable { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/InternalStorageExplorerViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/InternalStorageExplorerViewController.swift new file mode 100644 index 00000000..5892ab61 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Debug/InternalStorageExplorerViewController.swift @@ -0,0 +1,300 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import ObvUICoreData + + +final class InternalStorageExplorerViewController: UIViewController, UICollectionViewDelegate { + + private enum Section: Int, CaseIterable { + case directories + case files + } + + private enum Item: Hashable { + case directory(name: String, creationDate: Date, url: URL) + case file(name: String, creationDate: Date, byteSize: Int, url: URL) + + var text: String { + switch self { + case .directory(name: let name, creationDate: _, url: _): + return name + case .file(name: let name, creationDate: _, byteSize: _, url: _): + return name + } + } + + func secondaryText(dateFormater df: DateFormatter, byteCountFormatter bf: ByteCountFormatter) -> String { + switch self { + case .directory(name: _, creationDate: let creationDate, url: _): + return df.string(from: creationDate) + case .file(name: _, creationDate: let creationDate, byteSize: let byteSize, url: _): + return [df.string(from: creationDate), bf.string(fromByteCount: Int64(byteSize))].joined(separator: " - ") + } + } + + var url: URL { + switch self { + case .directory(name: _, creationDate: _, url: let url): + return url + case .file(name: _, creationDate: _, byteSize: _, url: let url): + return url + } + } + + } + + private typealias DataSource = UICollectionViewDiffableDataSource + private typealias Snapshot = NSDiffableDataSourceSnapshot + + private let root: URL + private weak var collectionView: UICollectionView! + private var dataSource: DataSource! + + private static let dateFormater: DateFormatter = { + let df = DateFormatter() + df.dateStyle = .short + df.timeStyle = .short + return df + }() + + private static let byteCountFormatter: ByteCountFormatter = { + let bf = ByteCountFormatter() + bf.countStyle = .file + return bf + }() + + init(root: URL) { + self.root = root + super.init(nibName: nil, bundle: nil) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + view.backgroundColor = .systemBackground + title = root.lastPathComponent + configureHierarchy() + configureDataSource() + setInitialData() + + let action = UIAction(handler: { [weak self] _ in self?.dismiss(animated: true) }) + let doneBarButtomItem = UIBarButtonItem(systemItem: .done, primaryAction: action, menu: nil) + navigationItem.rightBarButtonItem = doneBarButtomItem + + } + + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + guard let indexPathsForSelectedItems = collectionView?.indexPathsForSelectedItems else { return } + for indexPath in indexPathsForSelectedItems { + collectionView.deselectItem(at: indexPath, animated: true) + } + } + + // MARK: - Configuring the collection view + + private func configureHierarchy() { + let collectionView = UICollectionView(frame: view.bounds, collectionViewLayout: createLayout()) + collectionView.translatesAutoresizingMaskIntoConstraints = false + collectionView.backgroundColor = .systemBackground + collectionView.delegate = self + + view.addSubview(collectionView) + + self.collectionView = collectionView + + NSLayoutConstraint.activate([ + collectionView.topAnchor.constraint(equalTo: view.topAnchor), + collectionView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + collectionView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + collectionView.bottomAnchor.constraint(equalTo: view.bottomAnchor), + ]) + } + + + private func createLayout() -> UICollectionViewLayout { + let sectionProvider = { (sectionIndex: Int, layoutEnvironment: NSCollectionLayoutEnvironment) -> NSCollectionLayoutSection? in + let configuration = UICollectionLayoutListConfiguration(appearance: .plain) + let section = NSCollectionLayoutSection.list(using: configuration, layoutEnvironment: layoutEnvironment) + return section + } + return UICollectionViewCompositionalLayout(sectionProvider: sectionProvider) + } + + + private func configureDataSource() { + + let cellRegistrationForDirectories = UICollectionView.CellRegistration { cell, _, item in + var content = cell.defaultContentConfiguration() + content.text = item.text + content.secondaryText = item.secondaryText(dateFormater: Self.dateFormater, byteCountFormatter: Self.byteCountFormatter) + content.image = UIImage(systemIcon: .folder) + content.textProperties.font = UIFont.preferredFont(forTextStyle: .footnote) + content.secondaryTextProperties.color = .secondaryLabel + cell.contentConfiguration = content + cell.accessories = [.disclosureIndicator()] + } + + let cellRegistrationForFiles = UICollectionView.CellRegistration { cell, _, item in + var content = cell.defaultContentConfiguration() + content.text = item.text + content.secondaryText = item.secondaryText(dateFormater: Self.dateFormater, byteCountFormatter: Self.byteCountFormatter) + content.image = UIImage(systemIcon: .doc) + content.textProperties.font = UIFont.preferredFont(forTextStyle: .footnote) + content.secondaryTextProperties.color = .secondaryLabel + cell.contentConfiguration = content + } + + dataSource = DataSource(collectionView: collectionView) { (collectionView: UICollectionView, indexPath: IndexPath, item: Item) -> UICollectionViewCell? in + switch item { + case .directory: + return collectionView.dequeueConfiguredReusableCell(using: cellRegistrationForDirectories, for: indexPath, item: item) + case .file: + return collectionView.dequeueConfiguredReusableCell(using: cellRegistrationForFiles, for: indexPath, item: item) + } + } + + } + + + private func setInitialData() { + do { + let keys: [URLResourceKey] = [ + .isDirectoryKey, + .nameKey, + .creationDateKey, + .fileSizeKey, + ] + let urls = try FileManager.default.contentsOfDirectory(at: root, includingPropertiesForKeys: keys) + + var snapshot = NSDiffableDataSourceSnapshot() + + // Populate the directories section + + do { + snapshot.appendSections([.directories]) + let items: [Item] = urls + .compactMap { url in + guard let values = try? url.resourceValues(forKeys: Set(keys)) else { assertionFailure(); return nil } + guard let isDirectory = values.isDirectory else { assertionFailure(); return nil } + guard isDirectory else { return nil } + guard let name = values.name, let creationDate = values.creationDate else { assertionFailure(); return nil } + return Item.directory(name: name, creationDate: creationDate, url: url) + } + snapshot.appendItems(items) + } + + // Populate the files section + + do { + snapshot.appendSections([.files]) + let items: [Item] = urls + .compactMap { url in + guard let values = try? url.resourceValues(forKeys: Set(keys)) else { assertionFailure(); return nil } + guard let isDirectory = values.isDirectory else { assertionFailure(); return nil } + guard !isDirectory else { return nil } + guard let name = values.name, let creationDate = values.creationDate, let fileSize = values.fileSize else { assertionFailure(); return nil } + return Item.file(name: name, creationDate: creationDate, byteSize: fileSize, url: url) + } + snapshot.appendItems(items) + } + + // Apply the snapshot + + dataSource.apply(snapshot) + + } catch { + assertionFailure(error.localizedDescription) + } + } + + + // MARK: - UICollectionViewDelegate + + func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { + + guard let item = self.dataSource.itemIdentifier(for: indexPath) else { return } + + switch item { + + case .directory(name: _, creationDate: _, url: let url): + let vc = InternalStorageExplorerViewController(root: url) + navigationController?.pushViewController(vc, animated: true) + + case .file(name: _, creationDate: _, byteSize: _, url: _): + collectionView.deselectItem(at: indexPath, animated: true) + + } + + + } + + + func collectionView(_ collectionView: UICollectionView, contextMenuConfigurationForItemsAt indexPaths: [IndexPath], point: CGPoint) -> UIContextMenuConfiguration? { + guard indexPaths.count == 1, let indexPath = indexPaths.first else { return nil } + guard let cell = collectionView.cellForItem(at: indexPath) else { return nil } + + guard let item = self.dataSource.itemIdentifier(for: indexPath) else { return nil } + let url = item.url + guard FileManager.default.fileExists(atPath: url.path) else { return nil } + + + let actionProvider = makeActionProvider(collectionView, cell: cell, url: url) + + let menuConfiguration = UIContextMenuConfiguration(indexPath: indexPath, + previewProvider: nil, + actionProvider: actionProvider) + + return menuConfiguration + + } + + + private func makeActionProvider(_ collectionView: UICollectionView, cell: UICollectionViewCell, url: URL) -> (([UIMenuElement]) -> UIMenu?) { + return { (suggestedActions) in + + var children = [UIMenuElement]() + + // Share action + + do { + + let action = UIAction(title: CommonString.Word.Share) { [weak self] (_) in + let ativityController = UIActivityViewController(activityItems: [url], applicationActivities: nil) + ativityController.popoverPresentationController?.sourceView = cell + self?.present(ativityController, animated: true) + } + action.image = UIImage(systemIcon: .squareAndArrowUp) + children.append(action) + + } + + return UIMenu(title: "", image: nil, identifier: nil, options: .displayInline, children: children) + + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/SwiftUI/DiscussionsDefaultSettingsHostingViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/SwiftUI/DiscussionsDefaultSettingsHostingViewController.swift index c44942da..04e221bc 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/SwiftUI/DiscussionsDefaultSettingsHostingViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/SwiftUI/DiscussionsDefaultSettingsHostingViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,15 +23,18 @@ import Combine import ObvUI import ObvUICoreData import UI_SystemIcon +import ObvTypes +import ObvSettings +import ObvDesignSystem final class DiscussionsDefaultSettingsHostingViewController: UIHostingController { fileprivate let model: DiscussionsDefaultSettingsViewModel - init() { + init(ownedCryptoId: ObvCryptoId) { assert(Thread.isMainThread) - let model = DiscussionsDefaultSettingsViewModel() + let model = DiscussionsDefaultSettingsViewModel(ownedCryptoId: ownedCryptoId) let view = DiscussionsDefaultSettingsWrapperView(model: model) self.model = model super.init(rootView: view) @@ -52,6 +55,7 @@ final class DiscussionsDefaultSettingsHostingViewController: UIHostingController final fileprivate class DiscussionsDefaultSettingsViewModel: ObservableObject { + let ownedCryptoId: ObvCryptoId var doSendReadReceipt: Binding! var alwaysShowNotificationsWhenMentioned: Binding! var doFetchContentRichURLsMetadata: Binding! @@ -68,7 +72,11 @@ final fileprivate class DiscussionsDefaultSettingsViewModel: ObservableObject { @Published var changed: Bool // This allows to "force" the refresh of the view - init() { + /// Allows to observe changes made to certain settings made from other owned devices + private var cancellables = Set() + + init(ownedCryptoId: ObvCryptoId) { + self.ownedCryptoId = ownedCryptoId self.changed = false self.doSendReadReceipt = Binding(get: getDoSendReadReceipt, set: setDoSendReadReceipt) alwaysShowNotificationsWhenMentioned = Binding { @@ -95,8 +103,32 @@ final fileprivate class DiscussionsDefaultSettingsViewModel: ObservableObject { self.retainWipedOutboundMessages = Binding(get: getRetainWipedOutboundMessages, set: setRetainWipedOutboundMessages) self.notificationSound = Binding(get: getNotificationSound, set: setNotificationSound) self.performInteractionDonation = Binding(get: getPerformInteractionDonation, set: setPerformInteractionDonation) + observeChangesMadeFromOtherOwnedDevices() } + deinit { + cancellables.forEach { $0.cancel() } + cancellables.removeAll() + } + + private func observeChangesMadeFromOtherOwnedDevices() { + + ObvMessengerSettingsObservableObject.shared.$doSendReadReceipt + .compactMap { (doSendReadReceipt, changeMadeFromAnotherOwnedDevice, ownedCryptoId) in + // We only observe changes made from other owned devices + guard changeMadeFromAnotherOwnedDevice else { return nil } + return doSendReadReceipt + } + .receive(on: DispatchQueue.main) + .sink { [weak self] (doSendReadReceipt: Bool) in + withAnimation { + self?.changed.toggle() + } + } + .store(in: &cancellables) + + } + private func getTimeBasedRetention() -> DurationOptionAlt { ObvMessengerSettings.Discussions.timeBasedRetentionPolicy } @@ -135,7 +167,7 @@ final fileprivate class DiscussionsDefaultSettingsViewModel: ObservableObject { } private func setDoSendReadReceipt(_ newValue: Bool) { - ObvMessengerSettings.Discussions.doSendReadReceipt = newValue + ObvMessengerSettings.Discussions.setDoSendReadReceipt(to: newValue, changeMadeFromAnotherOwnedDevice: false, ownedCryptoId: ownedCryptoId) withAnimation { self.changed.toggle() } @@ -278,7 +310,14 @@ fileprivate struct DiscussionsDefaultSettingsView: View { @State private var presentChooseNotificationSoundSheet: Bool = false private var sendReadReceiptSectionFooter: Text { - Text(doSendReadReceipt ? DiscussionsSettingsTableViewController.Strings.SendReadRecceipts.explanationWhenYes : DiscussionsSettingsTableViewController.Strings.SendReadRecceipts.explanationWhenNo) + Text(doSendReadReceipt ? Strings.SendReadRecceipts.explanationWhenYes : Strings.SendReadRecceipts.explanationWhenNo) + } + + private struct Strings { + struct SendReadRecceipts { + static let explanationWhenYes = NSLocalizedString("Your contacts will be notified when you have read their messages. This settting can be overriden on a per discussion basis.", comment: "Explantation") + static let explanationWhenNo = NSLocalizedString("Your contacts won't be notified when you read their messages. This settting can be overriden on a per discussion basis.", comment: "Explantation") + } } private func countBasedRetentionIncrement() { @@ -293,12 +332,12 @@ fileprivate struct DiscussionsDefaultSettingsView: View { Form { Section(footer: sendReadReceiptSectionFooter) { Toggle(isOn: $doSendReadReceipt) { - ObvLabel("SEND_READ_RECEIPTS_LABEL", systemImage: "eye.fill") + Label("SEND_READ_RECEIPTS_LABEL", systemImage: "eye.fill") } } Section(footer: Text("discussion-default-settings-view.mention-notification-mode.picker.footer.title")) { Picker(selection: $alwaysShowNotificationsWhenMentioned, - label: ObvLabel("discussion-default-settings-view.mention-notification-mode.picker.title", systemIcon: .bell(.fill))) { + label: Label("discussion-default-settings-view.mention-notification-mode.picker.title", systemIcon: .bell(.fill))) { Text(NSLocalizedString("discussion-default-settings-view.mention-notification-mode.picker.mode.always", comment: "Display title for the `always` value for mention notification mode")) .tag(true) @@ -310,7 +349,7 @@ fileprivate struct DiscussionsDefaultSettingsView: View { } Section { Picker(selection: $doFetchContentRichURLsMetadata, label: - ObvLabel("SHOW_RICH_LINK_PREVIEW_LABEL", systemImage: "text.below.photo.fill")) { + Label("SHOW_RICH_LINK_PREVIEW_LABEL", systemImage: "text.below.photo.fill")) { ForEach(ObvMessengerSettings.Discussions.FetchContentRichURLsMetadataChoice.allCases) { value in switch value { case .never: @@ -341,7 +380,7 @@ fileprivate struct DiscussionsDefaultSettingsView: View { } Section(footer: Text("PERFORM_INTERACTION_DONATION_FOOTER")) { Toggle(isOn: $performInteractionDonation) { - ObvLabel("PERFORM_INTERACTION_DONATION_LABEL", systemIcon: .squareAndArrowUp) + Label("PERFORM_INTERACTION_DONATION_LABEL", systemIcon: .squareAndArrowUp) } } Group { @@ -353,7 +392,7 @@ fileprivate struct DiscussionsDefaultSettingsView: View { } Section(footer: Text("COUNT_BASED_SECTION_FOOTER")) { Toggle(isOn: $countBasedRetentionIsActive) { - ObvLabel("COUNT_BASED_LABEL", systemImage: "number") + Label("COUNT_BASED_LABEL", systemImage: "number") } if countBasedRetentionIsActive { Stepper(onIncrement: countBasedRetentionIncrement, @@ -363,7 +402,7 @@ fileprivate struct DiscussionsDefaultSettingsView: View { } } Section(footer: Text("TIME_BASED_SECTION_FOOTER")) { - Picker(selection: $timeBasedRetention, label: ObvLabel("TIME_BASED_LABEL", systemIcon: .calendarBadgeClock)) { + Picker(selection: $timeBasedRetention, label: Label("TIME_BASED_LABEL", systemIcon: .calendarBadgeClock)) { ForEach(DurationOptionAlt.allCases) { duration in Text(duration.description).tag(duration) } @@ -384,12 +423,12 @@ fileprivate struct DiscussionsDefaultSettingsView: View { } Section(footer: Text("AUTO_READ_SECTION_FOOTER")) { Toggle(isOn: $autoRead) { - ObvLabel("AUTO_READ_LABEL", systemImage: "hand.tap.fill") + Label("AUTO_READ_LABEL", systemImage: "hand.tap.fill") } } Section(footer: Text("RETAIN_WIPED_OUTBOUND_MESSAGES_SECTION_FOOTER")) { Toggle(isOn: $retainWipedOutboundMessages) { - ObvLabel("RETAIN_WIPED_OUTBOUND_MESSAGES_LABEL", systemImage: "trash.slash") + Label("RETAIN_WIPED_OUTBOUND_MESSAGES_LABEL", systemImage: "trash.slash") } } } @@ -407,18 +446,18 @@ fileprivate struct DiscussionsDefaultSettingsView: View { } Section(footer: Text("READ_ONCE_SECTION_FOOTER")) { Toggle(isOn: $readOnce) { - ObvLabel("READ_ONCE_LABEL", systemImage: "flame.fill") + Label("READ_ONCE_LABEL", systemImage: "flame.fill") } } Section(footer: Text("LIMITED_VISIBILITY_SECTION_FOOTER")) { - Picker(selection: $visibilityDuration, label: ObvLabel("LIMITED_VISIBILITY_LABEL", systemIcon: .eyes)) { + Picker(selection: $visibilityDuration, label: Label("LIMITED_VISIBILITY_LABEL", systemIcon: .eyes)) { ForEach(DurationOption.allCases) { duration in Text(duration.description).tag(duration) } } } Section(footer: Text("LIMITED_EXISTENCE_SECTION_FOOTER")) { - Picker(selection: $existenceDuration, label: ObvLabel("LIMITED_EXISTENCE_SECTION_LABEL", systemImage: "timer")) { + Picker(selection: $existenceDuration, label: Label("LIMITED_EXISTENCE_SECTION_LABEL", systemImage: "timer")) { ForEach(DurationOption.allCases) { duration in Text(duration.description).tag(duration) } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/SwiftUI/NotificationSoundPicker.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/SwiftUI/NotificationSoundPicker.swift index 3172118e..1883ce36 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/SwiftUI/NotificationSoundPicker.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/SwiftUI/NotificationSoundPicker.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -16,7 +16,6 @@ * You should have received a copy of the GNU Affero General Public License * along with Olvid. If not, see . */ - import AudioToolbox import ObvUI @@ -24,6 +23,8 @@ import ObvUICoreData import SwiftUI import UI_SystemIcon import UI_SystemIcon_SwiftUI +import ObvSettings +import ObvDesignSystem struct NotificationSoundPicker: View { @@ -37,7 +38,7 @@ struct NotificationSoundPicker: View { content: content, showDefault: showDefault)) { HStack { - ObvLabel("NOTIFICATION_SOUNDS_LABEL", systemIcon: .musicNoteList) + Label("NOTIFICATION_SOUNDS_LABEL", systemIcon: .musicNoteList) Spacer() content(selection) .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) @@ -114,7 +115,7 @@ struct NotificationSoundList: View { selection: $selection, content: content) } - .obvNavigationTitle(Text("NOTIFICATION_SOUNDS_LABEL")) + .navigationTitle(Text("NOTIFICATION_SOUNDS_LABEL")) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/UIKit/DiscussionsSettingsTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/UIKit/DiscussionsSettingsTableViewController.swift deleted file mode 100644 index 167223af..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/UIKit/DiscussionsSettingsTableViewController.swift +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit -import ObvUICoreData - -final class DiscussionsSettingsTableViewController: UITableViewController { - - init() { - super.init(style: Self.settingsTableStyle) - } - - required init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - - override func viewDidLoad() { - super.viewDidLoad() - title = CommonString.Word.Discussions - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - tableView.reloadData() - } - -} - -// MARK: - UITableViewDataSource - -extension DiscussionsSettingsTableViewController { - - override func numberOfSections(in tableView: UITableView) -> Int { - return 2 - } - - - override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - switch section { - case 0: return 1 - case 1: return 1 - default: return 0 - } - } - - override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - - let cell: UITableViewCell - - switch indexPath { - case IndexPath(row: 0, section: 0): - let _cell = ObvTitleAndSwitchTableViewCell(reuseIdentifier: "SendReadReceiptCell") - _cell.selectionStyle = .none - _cell.title = CommonString.Title.sendReadRecceipts - _cell.switchIsOn = ObvMessengerSettings.Discussions.doSendReadReceipt - _cell.blockOnSwitchValueChanged = { (value) in - ObvMessengerSettings.Discussions.doSendReadReceipt = value - DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(400)) { - tableView.reloadData() - } - } - cell = _cell - case IndexPath(row: 0, section: 1): - cell = UITableViewCell(style: .value1, reuseIdentifier: nil) - cell.textLabel?.text = Strings.RichLinks.title - switch ObvMessengerSettings.Discussions.doFetchContentRichURLsMetadata { - case .never: - cell.detailTextLabel?.text = CommonString.Word.Never - case .withinSentMessagesOnly: - cell.detailTextLabel?.text = Strings.RichLinks.sentMessagesOnly - case .always: - cell.detailTextLabel?.text = CommonString.Word.Always - } - cell.accessoryType = .disclosureIndicator - - default: - cell = UITableViewCell(style: .value1, reuseIdentifier: nil) - assert(false) - } - - return cell - } - - - override func tableView(_ tableView: UITableView, titleForFooterInSection section: Int) -> String? { - guard section == 0 else { return nil } - return ObvMessengerSettings.Discussions.doSendReadReceipt ? Strings.SendReadRecceipts.explanationWhenYes : Strings.SendReadRecceipts.explanationWhenNo - } - - - override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - switch indexPath { - case IndexPath(row: 0, section: 1): - let vc = FetchContentRichURLsMetadataChooserTableViewController() - self.navigationController?.pushViewController(vc, animated: true) - default: - break - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/UIKit/FetchContentRichURLsMetadataChooserTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/UIKit/FetchContentRichURLsMetadataChooserTableViewController.swift index f3a16f95..74e34025 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/UIKit/FetchContentRichURLsMetadataChooserTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/UIKit/FetchContentRichURLsMetadataChooserTableViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -19,8 +19,11 @@ import UIKit import ObvUICoreData +import ObvSettings -class FetchContentRichURLsMetadataChooserTableViewController: UITableViewController { + + +final class FetchContentRichURLsMetadataChooserTableViewController: UITableViewController { init() { super.init(style: Self.settingsTableStyle) @@ -32,7 +35,7 @@ class FetchContentRichURLsMetadataChooserTableViewController: UITableViewControl override func viewDidLoad() { super.viewDidLoad() - title = DiscussionsSettingsTableViewController.Strings.RichLinks.title + title = Strings.RichLinks.title } // MARK: - Table view data source @@ -54,7 +57,7 @@ class FetchContentRichURLsMetadataChooserTableViewController: UITableViewControl case .never: cell.textLabel?.text = CommonString.Word.Never case .withinSentMessagesOnly: - cell.textLabel?.text = DiscussionsSettingsTableViewController.Strings.RichLinks.sentMessagesOnly + cell.textLabel?.text = Strings.RichLinks.sentMessagesOnly case .always: cell.textLabel?.text = CommonString.Word.Always } @@ -79,3 +82,15 @@ class FetchContentRichURLsMetadataChooserTableViewController: UITableViewControl } + + +extension FetchContentRichURLsMetadataChooserTableViewController { + + struct Strings { + struct RichLinks { + static let title = NSLocalizedString("Rich link preview", comment: "Cell title") + static let sentMessagesOnly = NSLocalizedString("Sent messages only", comment: "") + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/UIKit/SizeChooserForAutomaticDownloadsTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/UIKit/SizeChooserForAutomaticDownloadsTableViewController.swift index 8bb24e01..aba7660f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/UIKit/SizeChooserForAutomaticDownloadsTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Discussions/UIKit/SizeChooserForAutomaticDownloadsTableViewController.swift @@ -19,6 +19,8 @@ import UIKit import ObvUICoreData +import ObvSettings + class SizeChooserForAutomaticDownloadsTableViewController: UITableViewController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Downloads/DownloadsSettingsTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Downloads/DownloadsSettingsTableViewController.swift index 7f12947a..748dab79 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Downloads/DownloadsSettingsTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Downloads/DownloadsSettingsTableViewController.swift @@ -19,6 +19,8 @@ import UIKit import ObvUICoreData +import ObvSettings + final class DownloadsSettingsTableViewController: UITableViewController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/ChangeNewComposeMessageViewActionOrderViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/ChangeNewComposeMessageViewActionOrderViewController.swift index badeb7c2..3d1a06a8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/ChangeNewComposeMessageViewActionOrderViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/ChangeNewComposeMessageViewActionOrderViewController.swift @@ -20,6 +20,8 @@ import ObvUI import ObvUICoreData import UIKit +import ObvSettings +import ObvDesignSystem enum ComposeMessageViewSettingsViewControllerInput { @@ -27,7 +29,6 @@ enum ComposeMessageViewSettingsViewControllerInput { case global } -@available(iOS 15, *) final class ComposeMessageViewSettingsViewController: UITableViewController { var notificationTokens = [NSObjectProtocol]() diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/ContactsSortOrderChooserTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/ContactsSortOrderChooserTableViewController.swift index 8ee790e7..4a1b8334 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/ContactsSortOrderChooserTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/ContactsSortOrderChooserTableViewController.swift @@ -20,6 +20,8 @@ import UIKit import ObvTypes import ObvUICoreData +import ObvSettings + class ContactsSortOrderChooserTableViewController: UITableViewController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/IdentityColorStyleChooserTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/IdentityColorStyleChooserTableViewController.swift index e50582bf..e16a8d0c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/IdentityColorStyleChooserTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/IdentityColorStyleChooserTableViewController.swift @@ -20,6 +20,9 @@ import ObvUI import UIKit import ObvUICoreData +import ObvSettings +import ObvDesignSystem + class IdentityColorStyleChooserTableViewController: UITableViewController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/InterfaceSettingsTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/InterfaceSettingsTableViewController.swift index d31b4236..96237e59 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/InterfaceSettingsTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Interface/InterfaceSettingsTableViewController.swift @@ -20,6 +20,7 @@ import UIKit import ObvTypes import ObvUICoreData +import ObvSettings class InterfaceSettingsTableViewController: UITableViewController { @@ -49,21 +50,13 @@ class InterfaceSettingsTableViewController: UITableViewController { private enum Section: CaseIterable { case customizeMessageComposeArea - case interfaceOptions case identityColorStyle static var shown: [Section] { - var result = [Section]() - if #available(iOS 15, *) { - result += [customizeMessageComposeArea] - result += [interfaceOptions] - } - result += [identityColorStyle] - return result + Section.allCases } var numberOfItems: Int { switch self { case .customizeMessageComposeArea: return CustomizeMessageComposeAreaItem.shown.count - case .interfaceOptions: return InterfaceOptionsItem.shown.count case .identityColorStyle: return IdentityColorStyleItem.shown.count } } @@ -77,9 +70,7 @@ class InterfaceSettingsTableViewController: UITableViewController { case customizeMessageComposeArea static var shown: [CustomizeMessageComposeAreaItem] { var result = [CustomizeMessageComposeAreaItem]() - if #available(iOS 15, *) { - result += [customizeMessageComposeArea] - } + result += [customizeMessageComposeArea] return result } static func shownItemAt(item: Int) -> CustomizeMessageComposeAreaItem? { @@ -93,26 +84,6 @@ class InterfaceSettingsTableViewController: UITableViewController { } - private enum InterfaceOptionsItem: CaseIterable { - case useOldDiscussionInterface - static var shown: [InterfaceOptionsItem] { - var result = [InterfaceOptionsItem]() - if #available(iOS 15, *) { - result += [useOldDiscussionInterface] - } - return result - } - static func shownItemAt(item: Int) -> InterfaceOptionsItem? { - return shown[safe: item] - } - var cellIdentifier: String { - switch self { - case .useOldDiscussionInterface: return "useOldDiscussionInterface" - } - } - } - - private enum IdentityColorStyleItem: CaseIterable { case identityColorStyle static var shown: [IdentityColorStyleItem] { @@ -160,46 +131,21 @@ extension InterfaceSettingsTableViewController { switch item { case .customizeMessageComposeArea: let cell = UITableViewCell(style: .default, reuseIdentifier: item.cellIdentifier) - if #available(iOS 14, *) { - var configuration = cell.defaultContentConfiguration() - configuration.text = Strings.newComposeMessageViewActionOrder - cell.contentConfiguration = configuration - } else { - cell.textLabel?.text = Strings.newComposeMessageViewActionOrder - } + var configuration = cell.defaultContentConfiguration() + configuration.text = Strings.newComposeMessageViewActionOrder + cell.contentConfiguration = configuration cell.accessoryType = .disclosureIndicator return cell } - case .interfaceOptions: - guard let item = InterfaceOptionsItem.shownItemAt(item: indexPath.item) else { assertionFailure(); return cellInCaseOfError } - switch item { - case .useOldDiscussionInterface: - let cell = ObvTitleAndSwitchTableViewCell(reuseIdentifier: item.cellIdentifier) - cell.selectionStyle = .none - cell.title = Strings.useOldDiscussionInterface - cell.switchIsOn = ObvMessengerSettings.Interface.useOldDiscussionInterface - cell.blockOnSwitchValueChanged = { (value) in - ObvMessengerSettings.Interface.useOldDiscussionInterface = value - DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(400)) { - tableView.reloadData() - } - } - return cell - } case .identityColorStyle: guard let item = IdentityColorStyleItem.shownItemAt(item: indexPath.item) else { assertionFailure(); return cellInCaseOfError } switch item { case .identityColorStyle: let cell = UITableViewCell(style: .value1, reuseIdentifier: nil) - if #available(iOS 14, *) { - var configuration = cell.defaultContentConfiguration() - configuration.text = Strings.identityColorStyle - configuration.secondaryText = ObvMessengerSettings.Interface.identityColorStyle.description - cell.contentConfiguration = configuration - } else { - cell.textLabel?.text = Strings.identityColorStyle - cell.detailTextLabel?.text = ObvMessengerSettings.Interface.identityColorStyle.description - } + var configuration = cell.defaultContentConfiguration() + configuration.text = Strings.identityColorStyle + configuration.secondaryText = ObvMessengerSettings.Interface.identityColorStyle.description + cell.contentConfiguration = configuration cell.accessoryType = .disclosureIndicator return cell } @@ -214,13 +160,9 @@ extension InterfaceSettingsTableViewController { guard let item = CustomizeMessageComposeAreaItem.shownItemAt(item: indexPath.item) else { assertionFailure(); return } switch item { case .customizeMessageComposeArea: - if #available(iOS 15, *) { - let vc = ComposeMessageViewSettingsViewController(input: .global) - navigationController?.pushViewController(vc, animated: true) - } + let vc = ComposeMessageViewSettingsViewController(input: .global) + navigationController?.pushViewController(vc, animated: true) } - case .interfaceOptions: - return case .identityColorStyle: guard let item = IdentityColorStyleItem.shownItemAt(item: indexPath.item) else { assertionFailure(); return } switch item { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/CreatePasscodeViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/CreatePasscodeViewController.swift index 455fbea5..0ff428a5 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/CreatePasscodeViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/CreatePasscodeViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -17,11 +17,12 @@ * along with Olvid. If not, see . */ - import Foundation import SwiftUI import Combine import ObvUI +import ObvDesignSystem + enum CreatePasscodeViewResult { case passcode(passcode: String, passcodeIsPassword: Bool) @@ -171,23 +172,21 @@ fileprivate struct InnerCreatePasscodeView: View { secureFocus: $model.secureFocus, textFocus: $model.textFocus, remainingLockoutTime: .constant(nil)) - if #available(iOS 15.0, *) { - Picker("Passcode", selection: $model.passcodeKind.animation()) { - ForEach(PasscodeKind.allCases) { kind in - Text(kind.localizedDescription) - } - } - .pickerStyle(.segmented) - .onChange(of: model.passcodeKind) { _ in - let secureFocus = model.secureFocus - let textFocus = model.textFocus - model.secureFocus = false - model.textFocus = false - model.passcode = "" - model.secureFocus = secureFocus - model.textFocus = textFocus + Picker("Passcode", selection: $model.passcodeKind.animation()) { + ForEach(PasscodeKind.allCases) { kind in + Text(kind.localizedDescription) } } + .pickerStyle(.segmented) + .onChange(of: model.passcodeKind) { _ in + let secureFocus = model.secureFocus + let textFocus = model.textFocus + model.secureFocus = false + model.textFocus = false + model.passcode = "" + model.secureFocus = secureFocus + model.textFocus = textFocus + } NavigationLink(destination: VerifyCreatedPasscodeView(model: model), isActive: $showVerificationView) { OlvidButton(style: .blue, title: Text("CREATE_MY_PASSCODE")) { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/GracePeriodsChooserTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/GracePeriodsChooserTableViewController.swift index 5a603a71..1647eb6c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/GracePeriodsChooserTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/GracePeriodsChooserTableViewController.swift @@ -21,6 +21,8 @@ import Foundation import UIKit import ObvUICoreData +import ObvSettings + class GracePeriodsChooserTableViewController: UITableViewController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/HiddenProfileClosePolicyChooserViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/HiddenProfileClosePolicyChooserViewController.swift index 59cec9c1..a6d29d64 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/HiddenProfileClosePolicyChooserViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/HiddenProfileClosePolicyChooserViewController.swift @@ -20,6 +20,8 @@ import UIKit import ObvUICoreData +import ObvSettings + class HiddenProfileClosePolicyChooserViewController: UITableViewController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/NotificationContentPrivacyStyleChooserTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/NotificationContentPrivacyStyleChooserTableViewController.swift index 92d6a1a5..e163bcd7 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/NotificationContentPrivacyStyleChooserTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/NotificationContentPrivacyStyleChooserTableViewController.swift @@ -19,6 +19,8 @@ import UIKit import ObvUICoreData +import ObvSettings + class NotificationContentPrivacyStyleChooserTableViewController: UITableViewController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/PrivacyTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/PrivacyTableViewController.swift index cb0c55e2..e7efc52e 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/PrivacyTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/PrivacyTableViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,8 +23,11 @@ import OlvidUtils import ObvTypes import ObvUI import ObvUICoreData +import ObvSettings +import ObvDesignSystem +@MainActor final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { static let errorDomain = "PrivacyTableViewController" @@ -35,6 +38,7 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { private var observationTokens = [NSObjectProtocol]() private(set) weak var createPasscodeDelegate: CreatePasscodeDelegate? + private(set) weak var localAuthenticationDelegate: LocalAuthenticationDelegate? let dateComponentsFormatter: DateComponentsFormatter = { let df = DateComponentsFormatter() @@ -43,9 +47,10 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { return df }() - init(ownedCryptoId: ObvCryptoId, createPasscodeDelegate: CreatePasscodeDelegate) { + init(ownedCryptoId: ObvCryptoId, createPasscodeDelegate: CreatePasscodeDelegate, localAuthenticationDelegate: LocalAuthenticationDelegate) { self.ownedCryptoId = ownedCryptoId self.createPasscodeDelegate = createPasscodeDelegate + self.localAuthenticationDelegate = localAuthenticationDelegate self.authenticationMethod = AuthenticationMethod.bestAvailableAuthenticationMethod() super.init(style: Self.settingsTableStyle) @@ -57,8 +62,10 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { } private func observeNotifications() { - let token = NotificationCenter.default.addObserver(forName: UIApplication.didBecomeActiveNotification, object: nil, queue: .main) { [weak self] _ in - self?.reload() + let token = NotificationCenter.default.addObserver(forName: UIApplication.didBecomeActiveNotification, object: nil, queue: nil) { _ in + Task { [weak self] in + await self?.reload() + } } observationTokens += [token] } @@ -138,7 +145,7 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { case biometricsWithCustomPasscodeFallback case customPasscode static var shown: [LocalAuthenticationPolicyItem] { - assert(LocalAuthenticationPolicy.allCases.count == LocalAuthenticationPolicyItem.allCases.count) + assert(ObvLocalAuthenticationPolicy.allCases.count == LocalAuthenticationPolicyItem.allCases.count) return LocalAuthenticationPolicyItem.allCases } static func shownItemAt(item: Int) -> LocalAuthenticationPolicyItem? { @@ -152,7 +159,7 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { case .customPasscode: return "customPasscode" } } - var localAuthenticationPolicy: LocalAuthenticationPolicy { + var localAuthenticationPolicy: ObvLocalAuthenticationPolicy { switch self { case .none: return .none case .deviceOwnerAuthentication: return .deviceOwnerAuthentication @@ -259,15 +266,10 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { let cell = UITableViewCell(style: .default, reuseIdentifier: item.cellIdentifier) let isPolicyAvailable = policy.isAvailable(whenBestAvailableAuthenticationMethodIs: authenticationMethod) let title = policy.title(authenticationMethod: authenticationMethod) - if #available(iOS 14, *) { - var configuration = cell.defaultContentConfiguration() - configuration.text = title - configuration.textProperties.color = isPolicyAvailable ? AppTheme.shared.colorScheme.label : AppTheme.shared.colorScheme.secondaryLabel - cell.contentConfiguration = configuration - } else { - cell.textLabel?.text = title - cell.textLabel?.isEnabled = isPolicyAvailable - } + var configuration = cell.defaultContentConfiguration() + configuration.text = title + configuration.textProperties.color = isPolicyAvailable ? AppTheme.shared.colorScheme.label : AppTheme.shared.colorScheme.secondaryLabel + cell.contentConfiguration = configuration if ObvMessengerSettings.Privacy.localAuthenticationPolicy == policy { cell.accessoryType = .checkmark } else { @@ -288,15 +290,10 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { } else if let duration = dateComponentsFormatter.string(from: gracePeriod) { details = CommonString.gracePeriodTitle(duration) } - if #available(iOS 14, *) { - var configuration = cell.defaultContentConfiguration() - configuration.text = title - configuration.secondaryText = details - cell.contentConfiguration = configuration - } else { - cell.textLabel?.text = title - cell.detailTextLabel?.text = details - } + var configuration = cell.defaultContentConfiguration() + configuration.text = title + configuration.secondaryText = details + cell.contentConfiguration = configuration cell.accessoryType = .disclosureIndicator return cell } @@ -332,15 +329,10 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { case .background: details = NSLocalizedString("ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_ACTION_BACKGROUND", comment: "") } - if #available(iOS 14, *) { - var configuration = cell.defaultContentConfiguration() - configuration.text = title - configuration.secondaryText = details - cell.contentConfiguration = configuration - } else { - cell.textLabel?.text = title - cell.detailTextLabel?.text = details - } + var configuration = cell.defaultContentConfiguration() + configuration.text = title + configuration.secondaryText = details + cell.contentConfiguration = configuration cell.accessoryType = .disclosureIndicator return cell } @@ -348,7 +340,7 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { } - private func localAuthenticationPolicy(changeTo newPolicy: LocalAuthenticationPolicy, completionHandler: @escaping () -> Void) { + private func localAuthenticationPolicy(changeTo newPolicy: ObvLocalAuthenticationPolicy, completionHandler: @escaping () -> Void) { let currentPolicy = ObvMessengerSettings.Privacy.localAuthenticationPolicy guard currentPolicy != newPolicy else { DispatchQueue.main.async { @@ -368,7 +360,7 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { try await requestLocalAuthentication(with: .deviceOwnerAuthentication) case .biometricsWithCustomPasscodeFallback: - try await requestLocalAuthentication(with: .deviceOwnerAuthenticationWithBiometrics) + try await requestLocalAuthentication(with: newPolicy) try await startCustomPasscodeDefinitionWorkflow() case .customPasscode: @@ -420,7 +412,7 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { case .biometricsWithCustomPasscodeFallback: try await requestCustomPasscode() - try await requestLocalAuthentication(with: .deviceOwnerAuthenticationWithBiometrics) + try await requestLocalAuthentication(with: .biometricsWithCustomPasscodeFallback) case .customPasscode: assertionFailure(); return } @@ -513,19 +505,23 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { } - private func requestLocalAuthentication(with policy: LAPolicy) async throws { - let laContext = LAContext() - var error: NSError? - guard laContext.canEvaluatePolicy(policy, error: &error) else { - if let error = error { - throw error - } else { - assertionFailure() - throw ObvLAError.internalError - } + private func requestLocalAuthentication(with policy: ObvLocalAuthenticationPolicy) async throws { + + preventPrivacyWindowSceneFromShowingOnNextWillResignActive() + + let result = await localAuthenticationDelegate?.performLocalAuthentication( + customPasscodePresentingViewController: self, + uptimeAtTheTimeOfChangeoverToNotActiveState: nil, + localizedReason: Strings.changingSettingRequiresAuthentication, + policy: policy) + + switch result { + case .authenticated: + return + case .cancelled, .lockedOut, .none: + throw ObvLAError.internalError } - try await laContext.evaluatePolicy(policy, localizedReason: Strings.changingSettingRequiresAuthentication) - + } @@ -554,7 +550,7 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { assertionFailure() throw ObvLAError.internalError } - let laResult = await createPasscodeDelegate.requestCustomPasscode(viewController: self) + let laResult = await createPasscodeDelegate.requestCustomPasscode(customPasscodePresentingViewController: self) switch laResult { case .authenticated: return @@ -662,53 +658,92 @@ final class PrivacyTableViewController: UITableViewController, ObvErrorMaker { } -fileprivate extension LocalAuthenticationPolicy { - private func localizedString(for method: AuthenticationMethod, systemOrCustom: Bool, titleOrExplanation: Bool) -> String { - var component = ["LOGIN_WITH"] - switch method { - case .none: - // Biometry method is unknown we show both. - component += ["TOUCH_ID", "FACE_ID"] - case .passcode: - break - case .touchID: - component += ["TOUCH_ID"] - case .faceID: - component += ["FACE_ID"] +fileprivate extension ObvLocalAuthenticationPolicy { + + + private enum PasscodeKind { + case system + case custom + } + + + private enum LocalizedStringKind { + case title + case explanation + } + + + private func localizedString(for method: AuthenticationMethod, passcodeKind: PasscodeKind, localizedStringKind: LocalizedStringKind) -> String { + switch (method, passcodeKind, localizedStringKind) { + + case (.none, .system, .title): + return NSLocalizedString("LOGIN_WITH_TOUCH_ID_FACE_ID_SYSTEM_PASSCODE_TITLE", comment: "") + case (.none, .system, .explanation): + return NSLocalizedString("LOGIN_WITH_TOUCH_ID_FACE_ID_SYSTEM_PASSCODE_EXPLANATION", comment: "") + case (.none, .custom, .title): + return NSLocalizedString("LOGIN_WITH_TOUCH_ID_FACE_ID_CUSTOM_PASSCODE_TITLE", comment: "") + case (.none, .custom, .explanation): + return NSLocalizedString("LOGIN_WITH_TOUCH_ID_FACE_ID_CUSTOM_PASSCODE_EXPLANATION", comment: "") + + case (.passcode, .system, .title): + return NSLocalizedString("LOGIN_WITH_SYSTEM_PASSCODE_TITLE", comment: "") + case (.passcode, .system, .explanation): + return NSLocalizedString("LOGIN_WITH_SYSTEM_PASSCODE_EXPLANATION", comment: "") + case (.passcode, .custom, .title): + return NSLocalizedString("LOGIN_WITH_CUSTOM_PASSCODE_TITLE", comment: "") + case (.passcode, .custom, .explanation): + return NSLocalizedString("LOGIN_WITH_CUSTOM_PASSCODE_EXPLANATION", comment: "") + + case (.touchID, .system, .title): + return NSLocalizedString("LOGIN_WITH_TOUCH_ID_SYSTEM_PASSCODE_TITLE", comment: "") + case (.touchID, .system, .explanation): + return NSLocalizedString("LOGIN_WITH_TOUCH_ID_SYSTEM_PASSCODE_EXPLANATION", comment: "") + case (.touchID, .custom, .title): + return NSLocalizedString("LOGIN_WITH_TOUCH_ID_CUSTOM_PASSCODE_TITLE", comment: "") + case (.touchID, .custom, .explanation): + return NSLocalizedString("LOGIN_WITH_TOUCH_ID_CUSTOM_PASSCODE_EXPLANATION", comment: "") + + case (.faceID, .system, .title): + return NSLocalizedString("LOGIN_WITH_FACE_ID_SYSTEM_PASSCODE_TITLE", comment: "") + case (.faceID, .system, .explanation): + return NSLocalizedString("LOGIN_WITH_FACE_ID_SYSTEM_PASSCODE_EXPLANATION", comment: "") + case (.faceID, .custom, .title): + return NSLocalizedString("LOGIN_WITH_FACE_ID_CUSTOM_PASSCODE_TITLE", comment: "") + case (.faceID, .custom, .explanation): + return NSLocalizedString("LOGIN_WITH_FACE_ID_CUSTOM_PASSCODE_EXPLANATION", comment: "") + } - component += systemOrCustom ? ["SYSTEM"] : ["CUSTOM"] - component += ["PASSCODE"] - component += titleOrExplanation ? ["TITLE"] : ["EXPLANATION"] - return NSLocalizedString(component.joined(separator: "_"), comment: "") } + func title(authenticationMethod method: AuthenticationMethod) -> String { switch self { case .none: return CommonString.Word.None case .deviceOwnerAuthentication: - return localizedString(for: method, systemOrCustom: true, titleOrExplanation: true) + return localizedString(for: method, passcodeKind: .system, localizedStringKind: .title) case .biometricsWithCustomPasscodeFallback: var method = method if method == .passcode { method = .none // We only want biometry in this case } - return localizedString(for: method, systemOrCustom: false, titleOrExplanation: true) + return localizedString(for: method, passcodeKind: .custom, localizedStringKind: .title) case .customPasscode: - return localizedString(for: .passcode, systemOrCustom: false, titleOrExplanation: true) + return localizedString(for: .passcode, passcodeKind: .custom, localizedStringKind: .title) } } + func explanation(authenticationMethod method: AuthenticationMethod) -> String { switch self { case .none: return NSLocalizedString("NO_AUTHENTICATION_EXPLANATION", comment: "") case .deviceOwnerAuthentication: - return localizedString(for: method, systemOrCustom: true, titleOrExplanation: false) + return localizedString(for: method, passcodeKind: .system, localizedStringKind: .explanation) case .biometricsWithCustomPasscodeFallback: - return localizedString(for: method, systemOrCustom: false, titleOrExplanation: false) + return localizedString(for: method, passcodeKind: .custom, localizedStringKind: .explanation) case .customPasscode: - return localizedString(for: .passcode, systemOrCustom: false, titleOrExplanation: false) + return localizedString(for: .passcode, passcodeKind: .custom, localizedStringKind: .explanation) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/VerifyPasscodeViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/VerifyPasscodeViewController.swift index d508da05..a2b398d1 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/VerifyPasscodeViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/Privacy/VerifyPasscodeViewController.swift @@ -17,13 +17,15 @@ * along with Olvid. If not, see . */ - import Foundation import SwiftUI import Combine import os.log import ObvUI import ObvUICoreData +import ObvSettings +import ObvDesignSystem + enum VerifyPasscodeViewResult { case succeed diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/VoIP/MaxAverageBitrateChooserTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/VoIP/MaxAverageBitrateChooserTableViewController.swift index 64ff6d64..21d57b03 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/VoIP/MaxAverageBitrateChooserTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/VoIP/MaxAverageBitrateChooserTableViewController.swift @@ -20,6 +20,8 @@ import UIKit import OlvidUtils import ObvUICoreData +import ObvSettings + class MaxAverageBitrateChooserTableViewController: UITableViewController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/VoIP/VoIPSettingsTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/VoIP/VoIPSettingsTableViewController.swift index d930b8d4..584545fd 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/VoIP/VoIPSettingsTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/AllSettings/VoIP/VoIPSettingsTableViewController.swift @@ -20,6 +20,8 @@ import UIKit import OlvidUtils import ObvUICoreData +import ObvSettings + class VoIPSettingsTableViewController: UITableViewController { @@ -44,6 +46,83 @@ class VoIPSettingsTableViewController: UITableViewController { private let kbsFormatter = KbsFormatter() + + private enum Section: CaseIterable { + + case normal + case experimental + + static var shown: [Section] { + if ObvMessengerConstants.showExperimentalFeature { + return Section.allCases + } else { + return [.normal] + } + } + + var numberOfItems: Int { + switch self { + case .normal: return NormalItem.shown.count + case .experimental: return ExperimentalItem.shown.count + } + } + + static func shownSectionAt(section: Int) -> Section? { + guard section < shown.count else { assertionFailure(); return nil } + return shown[section] + } + + } + + + private enum NormalItem: CaseIterable { + case receiveCallsOnThisDevice + case includesCallsInRecents + + static var shown: [NormalItem] { + if ObvMessengerConstants.targetEnvironmentIsMacCatalyst { + return [.receiveCallsOnThisDevice] + } else { + return [.receiveCallsOnThisDevice, .includesCallsInRecents] + } + } + + static func shownItemAt(item: Int) -> NormalItem? { + guard item < shown.count else { assertionFailure(); return nil } + return shown[item] + } + + var cellIdentifier: String { + switch self { + case .receiveCallsOnThisDevice: return "ReceiveCallsOnThisDeviceCell" + case .includesCallsInRecents: return "IncludesCallsInRecentsCell" + } + } + + } + + + private enum ExperimentalItem: CaseIterable { + + case maxaveragebitrate + + static var shown: [ExperimentalItem] { + return ExperimentalItem.allCases + } + + static func shownItemAt(item: Int) -> ExperimentalItem? { + guard item < shown.count else { assertionFailure(); return nil } + return shown[item] + } + + var cellIdentifier: String { + switch self { + case .maxaveragebitrate: return "MaxAverageBitrateCell" + } + } + + } + } // MARK: - UITableViewDataSource @@ -51,80 +130,106 @@ class VoIPSettingsTableViewController: UITableViewController { extension VoIPSettingsTableViewController { override func numberOfSections(in tableView: UITableView) -> Int { - return ObvMessengerConstants.showExperimentalFeature ? 3 : 2 + return Section.shown.count } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - switch section { - case 0: - var rows = 1 - if isCallKitEnabled { rows += 1 } // For includesCallsInRecents - return rows - case 1: - return 1 // Maxaveragebitrate - default: - return 0 - } - } - - private var isCallKitEnabled: Bool { - get { ObvMessengerSettings.VoIP.isCallKitEnabled } - set { ObvMessengerSettings.VoIP.isCallKitEnabled = newValue } + guard let section = Section.shownSectionAt(section: section) else { return 0 } + return section.numberOfItems } + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let cell: UITableViewCell - - switch indexPath { - case IndexPath(row: 0, section: 0): - let _cell = ObvTitleAndSwitchTableViewCell(reuseIdentifier: "UseCallKitCell") - _cell.selectionStyle = .none - _cell.title = Strings.useCallKit - _cell.switchIsOn = isCallKitEnabled - _cell.blockOnSwitchValueChanged = { (value) in - ObvMessengerSettings.VoIP.isCallKitEnabled = value - DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(400)) { - tableView.reloadData() + let cellInCaseOfError = UITableViewCell(style: .default, reuseIdentifier: nil) + + guard let section = Section.shownSectionAt(section: indexPath.section) else { + assertionFailure() + return cellInCaseOfError + } + + switch section { + + case .normal: + + guard let item = NormalItem.shownItemAt(item: indexPath.item) else { assertionFailure(); return cellInCaseOfError } + + switch item { + + case .receiveCallsOnThisDevice: + let cell = tableView.dequeueReusableCell(withIdentifier: item.cellIdentifier) as? ObvTitleAndSwitchTableViewCell ?? ObvTitleAndSwitchTableViewCell(reuseIdentifier: item.cellIdentifier) + cell.title = Strings.receiveCallsOnThisDevice + cell.switchIsOn = ObvMessengerSettings.VoIP.receiveCallsOnThisDevice + cell.blockOnSwitchValueChanged = { (value) in + ObvMessengerSettings.VoIP.receiveCallsOnThisDevice = value + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(400)) { + tableView.reloadData() + } } + return cell + + case .includesCallsInRecents: + let cell = tableView.dequeueReusableCell(withIdentifier: item.cellIdentifier) as? ObvTitleAndSwitchTableViewCell ?? ObvTitleAndSwitchTableViewCell(reuseIdentifier: item.cellIdentifier) + cell.title = Strings.includesCallsInRecents + cell.switchIsOn = ObvMessengerSettings.VoIP.isIncludesCallsInRecentsEnabled + cell.blockOnSwitchValueChanged = { (value) in + ObvMessengerSettings.VoIP.isIncludesCallsInRecentsEnabled = value + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(400)) { + tableView.reloadData() + } + } + return cell + } - cell = _cell - case IndexPath(row: 1, section: 0): - let _cell = ObvTitleAndSwitchTableViewCell(reuseIdentifier: "IncludesCallsInRecents") - _cell.selectionStyle = .none - _cell.title = Strings.includesCallsInRecents - _cell.switchIsOn = ObvMessengerSettings.VoIP.isIncludesCallsInRecentsEnabled - _cell.blockOnSwitchValueChanged = { (value) in - ObvMessengerSettings.VoIP.isIncludesCallsInRecentsEnabled = value - } - cell = _cell - case IndexPath(row: 0, section: 1): - cell = UITableViewCell(style: .value1, reuseIdentifier: nil) - cell.textLabel?.text = Strings.maxaveragebitrate - if let maxaveragebitrate = ObvMessengerSettings.VoIP.maxaveragebitrate { - cell.detailTextLabel?.text = kbsFormatter.string(from: maxaveragebitrate as NSNumber) - } else { - cell.detailTextLabel?.text = CommonString.Word.None + + case .experimental: + + guard let item = ExperimentalItem.shownItemAt(item: indexPath.item) else { assertionFailure(); return cellInCaseOfError } + + switch item { + + case .maxaveragebitrate: + let cell = tableView.dequeueReusableCell(withIdentifier: item.cellIdentifier) ?? UITableViewCell(style: .value1, reuseIdentifier: nil) + cell.textLabel?.text = Strings.maxaveragebitrate + if let maxaveragebitrate = ObvMessengerSettings.VoIP.maxaveragebitrate { + cell.detailTextLabel?.text = kbsFormatter.string(from: maxaveragebitrate as NSNumber) + } else { + cell.detailTextLabel?.text = CommonString.Word.None + } + cell.accessoryType = .disclosureIndicator + return cell + } - cell.accessoryType = .disclosureIndicator - default: - cell = UITableViewCell(style: .value1, reuseIdentifier: nil) - assert(false) + + } - - return cell + } override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - switch indexPath { - case IndexPath(row: 0, section: 1): - let vc = MaxAverageBitrateChooserTableViewController() - self.navigationController?.pushViewController(vc, animated: true) - default: - break + + guard let section = Section.shownSectionAt(section: indexPath.section) else { assertionFailure(); return } + + switch section { + + case .normal: + + return + + case .experimental: + + guard let item = ExperimentalItem.shownItemAt(item: indexPath.item) else { return } + + switch item { + case .maxaveragebitrate: + let vc = MaxAverageBitrateChooserTableViewController() + self.navigationController?.pushViewController(vc, animated: true) + } + } + } } @@ -133,9 +238,8 @@ extension VoIPSettingsTableViewController { extension VoIPSettingsTableViewController { private struct Strings { - static let useCallKit = NSLocalizedString("USE_CALLKIT", comment: "") + static let receiveCallsOnThisDevice = NSLocalizedString("RECEIVE_CALLS_ON_THIS_DEVICE", comment: "") static let includesCallsInRecents = NSLocalizedString("INCLUDE_CALL_IN_RECENTS", comment: "") - static let useLoadBalancedTurnServers = NSLocalizedString("USE_LOAD_BALANCED_TURN_SERVERS", comment: "") static let maxaveragebitrate = NSLocalizedString("MAX_AVG_BITRATE", comment: "") } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/ObvMessengerSettings+Utils.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/ObvMessengerSettings+Utils.swift index caf414fc..56376365 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/ObvMessengerSettings+Utils.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/ObvMessengerSettings+Utils.swift @@ -19,6 +19,7 @@ import Foundation import ObvUICoreData +import ObvSettings extension ObvMessengerSettings.ContactsAndGroups.AutoAcceptGroupInviteFrom { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/SettingsFlowViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/SettingsFlowViewController.swift index e3965816..37753962 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/SettingsFlowViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Main/Settings/SettingsFlowViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -29,9 +29,10 @@ final class SettingsFlowViewController: UINavigationController { private(set) var obvEngine: ObvEngine! private weak var createPasscodeDelegate: CreatePasscodeDelegate? + private weak var localAuthenticationDelegate: LocalAuthenticationDelegate? private weak var appBackupDelegate: AppBackupDelegate? - init(ownedCryptoId: ObvCryptoId, obvEngine: ObvEngine, createPasscodeDelegate: CreatePasscodeDelegate, appBackupDelegate: AppBackupDelegate) { + init(ownedCryptoId: ObvCryptoId, obvEngine: ObvEngine, createPasscodeDelegate: CreatePasscodeDelegate, localAuthenticationDelegate: LocalAuthenticationDelegate, appBackupDelegate: AppBackupDelegate) { let allSettingsTableViewController = AllSettingsTableViewController(ownedCryptoId: ownedCryptoId) super.init(rootViewController: allSettingsTableViewController) @@ -39,6 +40,7 @@ final class SettingsFlowViewController: UINavigationController { self.ownedCryptoId = ownedCryptoId self.obvEngine = obvEngine self.createPasscodeDelegate = createPasscodeDelegate + self.localAuthenticationDelegate = localAuthenticationDelegate self.appBackupDelegate = appBackupDelegate allSettingsTableViewController.delegate = self @@ -85,18 +87,21 @@ extension SettingsFlowViewController: AllSettingsTableViewControllerDelegate { case .interface: settingViewController = InterfaceSettingsTableViewController(ownedCryptoId: ownedCryptoId) case .discussions: - settingViewController = DiscussionsDefaultSettingsHostingViewController() + settingViewController = DiscussionsDefaultSettingsHostingViewController(ownedCryptoId: ownedCryptoId) case .privacy: - guard let createPasscodeDelegate = self.createPasscodeDelegate else { + guard let createPasscodeDelegate, let localAuthenticationDelegate else { assertionFailure(); return } - settingViewController = PrivacyTableViewController(ownedCryptoId: ownedCryptoId, createPasscodeDelegate: createPasscodeDelegate) + settingViewController = PrivacyTableViewController( + ownedCryptoId: ownedCryptoId, + createPasscodeDelegate: createPasscodeDelegate, + localAuthenticationDelegate: localAuthenticationDelegate) case .backup: settingViewController = BackupTableViewController(obvEngine: obvEngine, appBackupDelegate: appBackupDelegate) case .about: settingViewController = AboutSettingsTableViewController() case .advanced: - settingViewController = AdvancedSettingsViewController(ownedCryptoId: ownedCryptoId) + settingViewController = AdvancedSettingsViewController(ownedCryptoId: ownedCryptoId, obvEngine: obvEngine) case .voip: settingViewController = VoIPSettingsTableViewController() } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/AppBackupManager/AppBackupManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/AppBackupManager/AppBackupManager.swift index 5521e40c..aae69aca 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/AppBackupManager/AppBackupManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/AppBackupManager/AppBackupManager.swift @@ -26,6 +26,7 @@ import OlvidUtils import ObvCrypto import ObvUICoreData import CoreData +import ObvSettings @@ -499,12 +500,13 @@ private extension CKDatabase { return try await withCheckedThrowingContinuation({ cont in let operation = CKModifyRecordsOperation(recordsToSave: recordsToSave, recordIDsToDelete: recordIDsToDelete) - operation.modifyRecordsCompletionBlock = { (savedRecords, deletedRecordIDs, error) in - if let error = error { + operation.modifyRecordsResultBlock = { result in + switch result { + case .failure(let error): cont.resume(throwing: CloudKitError.operationError(error)) - return + case .success: + cont.resume() } - cont.resume() } self.add(operation) }) @@ -687,7 +689,7 @@ extension AppBackupManager: ObvBackupable { try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in - ObvMessengerInternalNotification.requestSyncAppDatabasesWithEngine { result in + ObvMessengerInternalNotification.requestSyncAppDatabasesWithEngine(queuePriority: .veryHigh) { result in switch result { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/AppMainManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/AppMainManager.swift index 20674bc5..67a943d6 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/AppMainManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/AppMainManager.swift @@ -25,6 +25,8 @@ import OlvidUtils import ObvTypes import ObvUI import ObvUICoreData +import ObvSettings +import ObvDesignSystem final actor AppMainManager: ObvErrorMaker { @@ -207,6 +209,7 @@ final actor AppMainManager: ObvErrorMaker { migrationToV0_12_5() migrationToV0_12_6() migrationToV0_12_8() + migrationToV1_4() } @@ -348,7 +351,7 @@ extension AppMainManager { os_log("🍎✅ We received a remote notification device token: %{public}@", log: Self.log, type: .info, deviceToken.hexString()) _ = await NewAppStateManager.shared.waitUntilAppIsInitialized() await ObvPushNotificationManager.shared.setCurrentDeviceToken(to: deviceToken) - await ObvPushNotificationManager.shared.tryToRegisterToPushNotifications() + await ObvPushNotificationManager.shared.requestRegisterToPushNotificationsForAllActiveOwnedIdentities() } @@ -358,7 +361,7 @@ extension AppMainManager { if ObvMessengerConstants.areRemoteNotificationsAvailable == true { os_log("%@", log: Self.log, type: .error, error.localizedDescription) } - Task { await ObvPushNotificationManager.shared.tryToRegisterToPushNotifications() } + await ObvPushNotificationManager.shared.requestRegisterToPushNotificationsForAllActiveOwnedIdentities() } @@ -403,6 +406,23 @@ extension AppMainManager { os_log("🌊 We sucessfully synced all managed identities with the keycloak server, calling the completion handler of the background notification with tag %{public}@", log: Self.log, type: .info, tag.uuidString) completionHandler(.newData) return + + } else if userInfo["ownedDevices"] != nil { + + os_log("🧥 The received notification is an ownedDevices notification targeted for our owned identity", log: Self.log, type: .debug) + + Task { + do { + try await obvEngine.performOwnedDeviceDiscoveryForAllOwnedIdentities() + await ObvPushNotificationManager.shared.requestRegisterToPushNotificationsForAllActiveOwnedIdentities() + completionHandler(.newData) + } catch { + completionHandler(.failed) + return + } + } + + return } else { @@ -455,6 +475,16 @@ extension AppMainManager { // MARK: AppCoreDataStackInitialization utils extension AppMainManager { + + private func migrationToV1_4() { + guard let userDefaults = UserDefaults(suiteName: ObvMessengerConstants.appGroupIdentifier) else { return } + userDefaults.removeObject(forKey: "settings.voip.isCallKitEnabled") + } + + private func migrationToV0_12_12() { + guard let userDefaults = UserDefaults(suiteName: ObvMessengerConstants.appGroupIdentifier) else { return } + userDefaults.removeObject(forKey: "settings.interface.useOldDiscussionInterface") + } private func migrationToV0_12_8() { guard let userDefaults = UserDefaults(suiteName: ObvMessengerConstants.appGroupIdentifier) else { return } @@ -712,6 +742,12 @@ extension AppMainManager { } } + var storeKitDelegate: StoreKitDelegate? { + get async { + await appManagersHolder?.storeKitDelegate + } + } + } @@ -994,23 +1030,20 @@ final actor NewAppStateManager { // MARK: Handling Olvid URLs - func setOlvidURLHandler(to olvidURLHandler: OlvidURLHandler) { + func setOlvidURLHandler(to olvidURLHandler: OlvidURLHandler) async { assert(self.olvidURLHandler == nil) self.olvidURLHandler = olvidURLHandler - olvidURLsOnHold.forEach { - _ = olvidURLHandler.handleOlvidURL($0) + while let olvidURLOnHold = olvidURLsOnHold.popLast() { + _ = await olvidURLHandler.handleOlvidURL(olvidURLOnHold) } - olvidURLsOnHold.removeAll() } /// Can be called from anywhere within the app. This methods forwards the `OlvidURL` to the appropriate handler, /// at the appropriate time (i.e., when a handler is available). - func handleOlvidURL(_ olvidURL: OlvidURL) { + func handleOlvidURL(_ olvidURL: OlvidURL) async { if let olvidURLHandler = self.olvidURLHandler { - DispatchQueue.main.async { - olvidURLHandler.handleOlvidURL(olvidURL) - } + await olvidURLHandler.handleOlvidURL(olvidURL) } else { olvidURLsOnHold.append(olvidURL) } @@ -1023,5 +1056,5 @@ final actor NewAppStateManager { // MARK: - OlvidURLHandler protocol protocol OlvidURLHandler: AnyObject { - func handleOlvidURL(_ olvidURL: OlvidURL) + func handleOlvidURL(_ olvidURL: OlvidURL) async } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/AppManagersHolder.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/AppManagersHolder.swift index 2f71d335..4e4bd97b 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/AppManagersHolder.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/AppManagersHolder.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -38,7 +38,8 @@ final actor AppManagersHolder { private let appBackupManager: AppBackupManager private let expirationMessagesManager: ExpirationMessagesManager private let retentionMessagesManager: RetentionMessagesManager - private let callManager: CallManager + //private let callManager: CallManager + private let callProvider: CallProviderDelegate private let profilePictureManager: ProfilePictureManager private let subscriptionManager: SubscriptionManager private let muteDiscussionManager: MuteDiscussionManager @@ -48,13 +49,7 @@ final actor AppManagersHolder { private let backgroundTasksManager: BackgroundTasksManager private let webSocketManager: WebSocketManager private let localAuthenticationManager: LocalAuthenticationManager - private let intentManager: IntentDelegate? = { - if #available(iOS 14, *) { - return IntentManager() - } else { - return nil - } - }() + private let intentManager: IntentDelegate = IntentManager() private var observationTokens = [NSObjectProtocol]() @@ -67,6 +62,10 @@ final actor AppManagersHolder { var appBackupDelegate: AppBackupDelegate { appBackupManager } + + var storeKitDelegate: StoreKitDelegate { + subscriptionManager + } init(obvEngine: ObvEngine, backgroundTasksManager: BackgroundTasksManager, userNotificationsManager: UserNotificationsManager) { @@ -80,7 +79,8 @@ final actor AppManagersHolder { self.appBackupManager = AppBackupManager(obvEngine: obvEngine) self.expirationMessagesManager = ExpirationMessagesManager() self.retentionMessagesManager = RetentionMessagesManager() - self.callManager = CallManager(obvEngine: obvEngine) + //self.callManager = CallManager(obvEngine: obvEngine) + self.callProvider = CallProviderDelegate(obvEngine: obvEngine) self.profilePictureManager = ProfilePictureManager() self.subscriptionManager = SubscriptionManager(obvEngine: obvEngine) self.muteDiscussionManager = MuteDiscussionManager() @@ -103,15 +103,14 @@ final actor AppManagersHolder { // Observe app lifecycle events await observeAppBasedLifeCycleEvents() // Subscribe to notifications - await callManager.performPostInitialization() + // await callManager.performPostInitialization() + callProvider.performPostInitialization() // Initialize the Keycloak manager singleton await keycloakManager.performPostInitialization() await webSocketManager.performPostInitialization() await localAuthenticationManager.performPostInitialization() await snackBarManager.performPostInitialization() - if #available(iOS 14, *) { - (intentManager as? IntentManager)?.performPostInitialization() - } + (intentManager as? IntentManager)?.performPostInitialization() } @@ -121,7 +120,7 @@ final actor AppManagersHolder { await expirationMessagesManager.applicationAppearedOnScreen(forTheFirstTime: forTheFirstTime) await userNotificationsBadgesManager.applicationAppearedOnScreen(forTheFirstTime: forTheFirstTime) await snackBarManager.applicationAppearedOnScreen(forTheFirstTime: forTheFirstTime) - await callManager.applicationAppearedOnScreen(forTheFirstTime: forTheFirstTime) + //await callManager.applicationAppearedOnScreen(forTheFirstTime: forTheFirstTime) await webSocketManager.applicationAppearedOnScreen(forTheFirstTime: forTheFirstTime) } @@ -132,11 +131,11 @@ final actor AppManagersHolder { let didEnterBackgroundNotification = UIApplication.didEnterBackgroundNotification let tokens = [ NotificationCenter.default.addObserver(forName: didEnterBackgroundNotification, object: nil, queue: .main) { _ in - os_log("🧦 didEnterBackgroundNotification", log: Self.log, type: .info) + os_log("didEnterBackgroundNotification", log: Self.log, type: .info) Task { [weak self] in - os_log("🧦 Call to cancelThenScheduleBackgroundTasksWhenAppDidEnterBackground starts", log: Self.log, type: .info) + os_log("Call to cancelThenScheduleBackgroundTasksWhenAppDidEnterBackground starts", log: Self.log, type: .info) await self?.cancelThenScheduleBackgroundTasksWhenAppDidEnterBackground() - os_log("🧦 Call to cancelThenScheduleBackgroundTasksWhenAppDidEnterBackground ends", log: Self.log, type: .info) + os_log("Call to cancelThenScheduleBackgroundTasksWhenAppDidEnterBackground ends", log: Self.log, type: .info) } }, ] diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/HardLinksToFylesManager/HardLinksToFylesManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/HardLinksToFylesManager/HardLinksToFylesManager.swift index 01ca9d17..1aef2f97 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/HardLinksToFylesManager/HardLinksToFylesManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/HardLinksToFylesManager/HardLinksToFylesManager.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,7 @@ import QuickLook import MobileCoreServices import CoreData import ObvUICoreData +import ObvSettings /// The purpose of this coordinator is to manage all the hard links to fyles within Olvid. It subscribes to `RequestHardLinkToFyle` notifications. @@ -255,24 +256,26 @@ final class HardLinksToFylesManager { final class HardLinkToFyle: NSObject, QLPreviewItem { let creationDate = Date() - let uti: String + let contentType: UTType let fyleURL: URL let fileName: String private(set) var hardlinkURL: URL? private(set) var activityItemProvider: ActivityItemProvider? + private (set) var itemProvider: NSItemProvider? + private (set) var uiDragItem: UIDragItem? override func isEqual(_ object: Any?) -> Bool { guard let otherObject = object as? HardLinkToFyle else { return false } - return self.uti == otherObject.uti && self.fyleURL == otherObject.fyleURL && self.fileName == otherObject.fileName && self.hardlinkURL == otherObject.hardlinkURL + return self.contentType == otherObject.contentType && self.fyleURL == otherObject.fyleURL && self.fileName == otherObject.fileName && self.hardlinkURL == otherObject.hardlinkURL } override var debugDescription: String { - "HardLinkToFyle(creationDate: \(creationDate.debugDescription) uti: \(uti), fileName: \(fileName), fyleURL: \(fyleURL), hardlinkURL: \(hardlinkURL?.path ?? "nil")" + "HardLinkToFyle(creationDate: \(creationDate.debugDescription) contentType: \(contentType.debugDescription), fileName: \(fileName), fyleURL: \(fyleURL), hardlinkURL: \(hardlinkURL?.path ?? "nil")" } override var hash: Int { var hasher = Hasher() - hasher.combine(uti) + hasher.combine(contentType) hasher.combine(fyleURL) hasher.combine(fileName) hasher.combine(hardlinkURL) @@ -286,11 +289,11 @@ final class HardLinkToFyle: NSObject, QLPreviewItem { final class ActivityItemProvider: UIActivityItemProvider { private let hardlinkURL: URL - private let uti: String + private let contentType: UTType - fileprivate init(hardlinkURL: URL, uti: String) { + fileprivate init(hardlinkURL: URL, contentType: UTType) { self.hardlinkURL = hardlinkURL - self.uti = uti + self.contentType = contentType super.init(placeholderItem: hardlinkURL) } @@ -299,7 +302,7 @@ final class HardLinkToFyle: NSObject, QLPreviewItem { } var excludedActivityTypes: [UIActivity.ActivityType]? { - if ObvUTIUtils.uti(self.uti, conformsTo: kUTTypeImage) { + if contentType.conforms(to: .image) { return [.openInIBooks] } else { return [] @@ -311,9 +314,11 @@ final class HardLinkToFyle: NSObject, QLPreviewItem { fileprivate init(fyleElement: FyleElement, currentSessionDirectoryForHardlinks: URL, log: OSLog) throws { let log = HardLinksToFylesManager.log os_log("Starting creation of HardLinkToFyle for fyle %{public}@", log: log, type: .info, fyleElement.fyleURL.lastPathComponent) - self.uti = fyleElement.uti + self.contentType = fyleElement.contentType self.fyleURL = fyleElement.fyleURL self.fileName = fyleElement.fileName + self.itemProvider = NSItemProvider(fyleElement: fyleElement) + self.uiDragItem = UIDragItem(fyleElement: fyleElement) guard fyleElement.fullFileIsAvailable else { os_log("Since the full file for fyle %{public}@ is not available, the hardlink won't contain a hardlink URL", log: log, type: .info, fyleElement.fyleURL.lastPathComponent) self.hardlinkURL = nil @@ -324,31 +329,32 @@ final class HardLinkToFyle: NSObject, QLPreviewItem { os_log("Since the full file for fyle %{public}@ is available, we create a hardlink on disk now", log: log, type: .info, fyleElement.fyleURL.lastPathComponent) let directoryForHardLink = fyleElement.directoryForHardLink(in: currentSessionDirectoryForHardlinks) try FileManager.default.createDirectory(at: directoryForHardLink, withIntermediateDirectories: true, attributes: nil) - let appropriateFilename = HardLinkToFyle.determineAppropriateFilename(originalFilename: fyleElement.fileName, uti: fyleElement.uti) + let appropriateFilename = HardLinkToFyle.determineAppropriateFilename(originalFilename: fyleElement.fileName, contentType: fyleElement.contentType) let hardlinkURL = directoryForHardLink.appendingPathComponent(appropriateFilename, isDirectory: false) try HardLinkToFyle.linkOrCopyItem(at: fyleElement.fyleURL, to: hardlinkURL, log: log) self.hardlinkURL = hardlinkURL - self.activityItemProvider = ActivityItemProvider(hardlinkURL: hardlinkURL, uti: fyleElement.uti) + self.activityItemProvider = ActivityItemProvider(hardlinkURL: hardlinkURL, contentType: fyleElement.contentType) super.init() } - private static func determineAppropriateFilename(originalFilename: String, uti: String) -> String { + + private static func determineAppropriateFilename(originalFilename: String, contentType: UTType) -> String { let escapedFilename = originalFilename.replacingOccurrences(of: "/", with: "_") // We have a specific case of .m4a files to fix the issue where Android sends audio/mpeg as a MIME type of .m4a files - if let utiFromFilename = ObvUTIUtils.utiOfFile(withName: escapedFilename), (utiFromFilename == uti || ObvUTIUtils.uti(utiFromFilename, conformsTo: kUTTypeMPEG4Audio)) { + if let contentTypeFromFilename = UTType(filenameExtension: (originalFilename as NSString).pathExtension), (contentTypeFromFilename == contentType || contentTypeFromFilename.conforms(to: .mpeg4Audio)) { return escapedFilename + } else if let preferredFilenameExtension = contentType.preferredFilenameExtension { + return [escapedFilename, preferredFilenameExtension].joined(separator: ".") } else { - if let filenameExtension = ObvUTIUtils.preferredTagWithClass(inUTI: uti, inTagClass: .FilenameExtension) { - return [escapedFilename, filenameExtension].joined(separator: ".") - } else { - return escapedFilename - } + return escapedFilename } } + + private static func linkOrCopyItem(at fyleURL: URL, to hardlinkURL: URL, log: OSLog) throws { let log = HardLinksToFylesManager.log - os_log("Trying to link or copy item to disk during the creaton of the HardLinkToFyle for fyle %{public}@ to the following hardlink URL: %{public}@", log: log, type: .info, fyleURL.lastPathComponent, hardlinkURL.description) + os_log("Trying to link or copy item to disk during the creation of the HardLinkToFyle for fyle %{public}@ to the following hardlink URL: %{public}@", log: log, type: .info, fyleURL.lastPathComponent, hardlinkURL.description) guard !FileManager.default.fileExists(atPath: hardlinkURL.path) else { os_log("The hardlink URL already exists for the HardLinkToFyle for fyle %{public}@", log: log, type: .info, fyleURL.lastPathComponent) return @@ -392,7 +398,8 @@ extension FyleJoin { struct FyleElementForDraftFyleJoin: FyleElement { let fileName: String - let uti: String + let contentType: UTType + //let uti: String let fullFileIsAvailable: Bool let fyleURL: URL let sha256: Data @@ -400,15 +407,15 @@ struct FyleElementForDraftFyleJoin: FyleElement { init?(_ fyleJoin: FyleJoin) { guard let fyle = fyleJoin.fyle else { return nil } self.fileName = fyleJoin.fileName - self.uti = fyleJoin.uti + self.contentType = fyleJoin.contentType self.fullFileIsAvailable = true self.fyleURL = fyle.url self.sha256 = fyle.sha256 } - private init(fileName: String, uti: String, fullFileIsAvailable: Bool, fyleURL: URL, sha256: Data) { + private init(fileName: String, contentType: UTType, fullFileIsAvailable: Bool, fyleURL: URL, sha256: Data) { self.fileName = fileName - self.uti = uti + self.contentType = contentType self.fullFileIsAvailable = fullFileIsAvailable self.fyleURL = fyleURL self.sha256 = sha256 @@ -423,6 +430,30 @@ struct FyleElementForDraftFyleJoin: FyleElement { } func replacingFullFileIsAvailable(with newFullFileIsAvailable: Bool) -> FyleElement { - FyleElementForDraftFyleJoin(fileName: fileName, uti: uti, fullFileIsAvailable: newFullFileIsAvailable, fyleURL: fyleURL, sha256: sha256) + Self.init(fileName: fileName, contentType: contentType, fullFileIsAvailable: newFullFileIsAvailable, fyleURL: fyleURL, sha256: sha256) } } + + +// MARK: - System types' extensions + +fileprivate extension NSItemProvider { + + convenience init?(fyleElement: FyleElement) { + guard fyleElement.fullFileIsAvailable else { return nil } + self.init(item: fyleElement.fyleURL as NSURL, typeIdentifier: fyleElement.contentType.identifier) + self.suggestedName = fyleElement.fileName + } + +} + + +fileprivate extension UIDragItem { + + convenience init?(fyleElement: FyleElement) { + guard fyleElement.fullFileIsAvailable else { return nil } + guard let itemProvider = NSItemProvider(fyleElement: fyleElement) else { return nil } + self.init(itemProvider: itemProvider) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/IntentManager/IntentManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/IntentManager/IntentManager.swift index 56f9b750..ab871ca5 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/IntentManager/IntentManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/IntentManager/IntentManager.swift @@ -16,7 +16,6 @@ * You should have received a copy of the GNU Affero General Public License * along with Olvid. If not, see . */ - import Foundation import CoreData @@ -25,6 +24,7 @@ import os.log import ObvUI import UIKit import ObvUICoreData +import ObvSettings protocol IntentDelegate: AnyObject { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/IntentManager/IntentManagerUtils.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/IntentManager/IntentManagerUtils.swift index 3c7874b5..62fb94ca 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/IntentManager/IntentManagerUtils.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/IntentManager/IntentManagerUtils.swift @@ -25,6 +25,9 @@ import os.log import ObvUI import ObvUICoreData import UI_SystemIcon +import ObvSettings +import ObvDesignSystem + /// IntentManager utilities that can be used by all extentions. @available(iOS 14.0, *) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/KeycloakManager/KeycloakManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/KeycloakManager/KeycloakManager.swift index 61d99b45..142732a0 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/KeycloakManager/KeycloakManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/KeycloakManager/KeycloakManager.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -33,7 +33,23 @@ import ObvUICoreData final class KeycloakManagerSingleton: ObvErrorMaker { static var shared = KeycloakManagerSingleton() - private init() {} + private init() { + observeNotifications() + } + + private var observationTokens = [NSObjectProtocol]() + + deinit { + observationTokens.forEach { NotificationCenter.default.removeObserver($0) } + } + + private func observeNotifications() { + observationTokens = [ + ObvMessengerInternalNotification.observeNetworkInterfaceTypeChanged { isConnected in + Task { [weak self] in await self?.processNetworkInterfaceTypeChangedNotification(isConnected: isConnected) } + }, + ] + } static let errorDomain = "KeycloakManagerSingleton" @@ -124,12 +140,12 @@ final class KeycloakManagerSingleton: ObvErrorMaker { /// If the manager is not set, this function throws an `Error`. If any other error occurs, it can be casted to a `KeycloakManager.AddContactError`. - func addContact(ownedCryptoId: ObvCryptoId, userId: String, userIdentity: Data) async throws { + func addContact(ownedCryptoId: ObvCryptoId, userIdOrSignedDetails: KeycloakAddContactInfo, userIdentity: Data) async throws { guard let manager = manager else { assertionFailure() throw Self.makeError(message: "The internal manager is not set") } - try await manager.addContact(ownedCryptoId: ownedCryptoId, userId: userId, userIdentity: userIdentity) + try await manager.addContact(ownedCryptoId: ownedCryptoId, userIdOrSignedDetails: userIdOrSignedDetails, userIdentity: userIdentity) } @@ -152,6 +168,19 @@ final class KeycloakManagerSingleton: ObvErrorMaker { } return try await manager.syncAllManagedIdentities(ignoreSynchronizationInterval: true) } + + + private func processNetworkInterfaceTypeChangedNotification(isConnected: Bool) async { + guard isConnected else { return } + do { + os_log("🧥🛜 Call to syncAllManagedIdentities as network connexion is available", log: KeycloakManager.log, type: .info) + try await manager?.syncAllManagedIdentities(ignoreSynchronizationInterval: false) + os_log("🧥🛜 Call to syncAllManagedIdentities was successful", log: KeycloakManager.log, type: .info) + } catch { + os_log("🧥🛜 Call to syncAllManagedIdentities failed: %{public}@", log: KeycloakManager.log, type: .error, error.localizedDescription) + } + } + } @@ -173,6 +202,7 @@ actor KeycloakManager: NSObject { private var currentAuthorizationFlow: OIDExternalUserAgentSession? private func setCurrentAuthorizationFlow(to newCurrentAuthorizationFlow: OIDExternalUserAgentSession?) { + self.currentAuthorizationFlow?.cancel() self.currentAuthorizationFlow = newCurrentAuthorizationFlow } @@ -184,7 +214,7 @@ actor KeycloakManager: NSObject { private static var groupsPath = "olvid-rest/groups" private static let errorDomain = "KeycloakManager" - private static var log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "KeycloakManager") + fileprivate static var log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "KeycloakManager") static func makeError(message: String) -> Error { NSError(domain: KeycloakManager.errorDomain, code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) } private func makeError(message: String) -> Error { KeycloakManager.makeError(message: message) } @@ -237,7 +267,7 @@ actor KeycloakManager: NSObject { os_log("🧥 Call to unregisterKeycloakManagedOwnedIdentity", log: KeycloakManager.log, type: .info) do { setLastSynchronizationDate(forOwnedIdentity: ownedCryptoId, to: nil) - try await obvEngine.unbindOwnedIdentityFromKeycloakServer(ownedCryptoId: ownedCryptoId) + try await obvEngine.unbindOwnedIdentityFromKeycloak(ownedCryptoId: ownedCryptoId) } catch { guard failedAttempts < maxFailCount else { assertionFailure() @@ -305,6 +335,7 @@ actor KeycloakManager: NSObject { throw UploadOwnedIdentityError.ownedIdentityWasRevoked case .authenticationRequired: do { + ObvDisplayableLogs.shared.log("🧥[OpenKeycloakAuthentication][2]") try await openKeycloakAuthenticationRequiredTokenExpired(internalKeycloakState: iks, ownedCryptoId: ownedCryptoId) return try await uploadOwnIdentity(ownedCryptoId: ownedCryptoId) } catch let error as KeycloakDialogError { @@ -397,77 +428,89 @@ actor KeycloakManager: NSObject { /// Throws a AddContactError - fileprivate func addContact(ownedCryptoId: ObvCryptoId, userId: String, userIdentity: Data) async throws { + fileprivate func addContact(ownedCryptoId: ObvCryptoId, userIdOrSignedDetails: KeycloakAddContactInfo, userIdentity: Data) async throws { os_log("🧥 Call to addContact", log: KeycloakManager.log, type: .info) - let iks: InternalKeycloakState - do { - iks = try await getInternalKeycloakState(for: ownedCryptoId) - } catch { - throw AddContactError.unkownError(error) - } - - let addContactJSON = AddContactJSON(userId: userId) - let encoder = JSONEncoder() - let dataToSend: Data - do { - dataToSend = try encoder.encode(addContactJSON) - } catch { - throw AddContactError.unkownError(error) - } - - let result: KeycloakManager.ApiResultForGetKeyPath - do { - result = try await keycloakApiRequest(serverURL: iks.keycloakServer, path: KeycloakManager.getKeyPath, accessToken: iks.accessToken, dataToSend: dataToSend) - } catch let error as KeycloakApiRequestError { - switch error { - case .permissionDenied: - throw AddContactError.authenticationRequired - case .internalError, .invalidRequest, .identityAlreadyUploaded, .badResponse, .decodingFailed: - throw AddContactError.badResponse - case .ownedIdentityWasRevoked: - throw AddContactError.ownedIdentityWasRevoked - } - } catch { - assertionFailure("Unexpected error") - throw AddContactError.unkownError(error) - } - let signedUserDetails: SignedObvKeycloakUserDetails - do { - guard let signatureVerificationKey = iks.signatureVerificationKey else { - // We did not save the signature key used to sign our own details, se we cannot make sure the details of our future contact are signed with the appropriate key. - // We fail and force a resync that will eventually store this server signature verification key - Task { - setLastSynchronizationDate(forOwnedIdentity: ownedCryptoId, to: nil) - currentlySyncingOwnedIdentities.remove(ownedCryptoId) - await synchronizeOwnedIdentityWithKeycloakServer(ownedCryptoId: ownedCryptoId, ignoreSynchronizationInterval: false, failedAttempts: 0) - } - throw AddContactError.willSyncKeycloakServerSignatureKey + switch userIdOrSignedDetails { + case .userId(let userId): + + let iks: InternalKeycloakState + do { + iks = try await getInternalKeycloakState(for: ownedCryptoId) + } catch { + throw AddContactError.unkownError(error) } - // The signature key used to sign our own details is available, we use it to check the details of our future contact + + let addContactJSON = AddContactJSON(userId: userId) + let encoder = JSONEncoder() + let dataToSend: Data do { - signedUserDetails = try SignedObvKeycloakUserDetails.verifySignedUserDetails(result.signature, with: signatureVerificationKey) + dataToSend = try encoder.encode(addContactJSON) } catch { - // The signature verification failed when using the key used to signed our own details. We check if the signature is valid using the key sent by the server + throw AddContactError.unkownError(error) + } + + let result: KeycloakManager.ApiResultForGetKeyPath + do { + result = try await keycloakApiRequest(serverURL: iks.keycloakServer, path: KeycloakManager.getKeyPath, accessToken: iks.accessToken, dataToSend: dataToSend) + } catch let error as KeycloakApiRequestError { + switch error { + case .permissionDenied: + throw AddContactError.authenticationRequired + case .internalError, .invalidRequest, .identityAlreadyUploaded, .badResponse, .decodingFailed: + throw AddContactError.badResponse + case .ownedIdentityWasRevoked: + throw AddContactError.ownedIdentityWasRevoked + } + } catch { + assertionFailure("Unexpected error") + throw AddContactError.unkownError(error) + } + + do { + guard let signatureVerificationKey = iks.signatureVerificationKey else { + // We did not save the signature key used to sign our own details, se we cannot make sure the details of our future contact are signed with the appropriate key. + // We fail and force a resync that will eventually store this server signature verification key + Task { + setLastSynchronizationDate(forOwnedIdentity: ownedCryptoId, to: nil) + currentlySyncingOwnedIdentities.remove(ownedCryptoId) + await synchronizeOwnedIdentityWithKeycloakServer(ownedCryptoId: ownedCryptoId, ignoreSynchronizationInterval: false, failedAttempts: 0) + } + throw AddContactError.willSyncKeycloakServerSignatureKey + } + // The signature key used to sign our own details is available, we use it to check the details of our future contact do { - _ = try JWSUtil.verifySignature(jwks: iks.jwks, signature: result.signature) + signedUserDetails = try SignedObvKeycloakUserDetails.verifySignedUserDetails(result.signature, with: signatureVerificationKey) } catch { - // The signature is definitively invalid, we fail - throw AddContactError.invalidSignature(error) - } - // If we reach this point, the signature is valid but with the wrong signature key --> we force a resync to detect key change and prompt user with a dialog - Task { - setLastSynchronizationDate(forOwnedIdentity: ownedCryptoId, to: nil) - currentlySyncingOwnedIdentities.remove(ownedCryptoId) - await synchronizeOwnedIdentityWithKeycloakServer(ownedCryptoId: ownedCryptoId, ignoreSynchronizationInterval: false, failedAttempts: 0) + // The signature verification failed when using the key used to signed our own details. We check if the signature is valid using the key sent by the server + do { + _ = try JWSUtil.verifySignature(jwks: iks.jwks, signature: result.signature) + } catch { + // The signature is definitively invalid, we fail + throw AddContactError.invalidSignature(error) + } + // If we reach this point, the signature is valid but with the wrong signature key --> we force a resync to detect key change and prompt user with a dialog + Task { + setLastSynchronizationDate(forOwnedIdentity: ownedCryptoId, to: nil) + currentlySyncingOwnedIdentities.remove(ownedCryptoId) + await synchronizeOwnedIdentityWithKeycloakServer(ownedCryptoId: ownedCryptoId, ignoreSynchronizationInterval: false, failedAttempts: 0) + } + throw AddContactError.willSyncKeycloakServerSignatureKey } - throw AddContactError.willSyncKeycloakServerSignatureKey } + + + case .signedDetails(let signedDetails): + + signedUserDetails = signedDetails + } + guard signedUserDetails.identity == userIdentity else { throw AddContactError.badResponse } + do { try obvEngine.addKeycloakContact(with: ownedCryptoId, signedContactDetails: signedUserDetails) } catch(let error) { @@ -780,7 +823,9 @@ actor KeycloakManager: NSObject { assert(Date().timeIntervalSince(lastSynchronizationDate) > 0) - guard Date().timeIntervalSince(lastSynchronizationDate) > self.synchronizationInterval || ignoreSynchronizationInterval else { + let timeIntervalSinceLastSynchronizationDate = Date().timeIntervalSince(lastSynchronizationDate) + guard timeIntervalSinceLastSynchronizationDate > self.synchronizationInterval || ignoreSynchronizationInterval else { + os_log("🧥 No need to sync as the last sync occured %{public}d seconds ago", log: KeycloakManager.log, type: .info, Int(timeIntervalSinceLastSynchronizationDate)) return } @@ -804,6 +849,7 @@ actor KeycloakManager: NSObject { switch error { case .authenticationRequired: do { + ObvDisplayableLogs.shared.log("🧥[OpenKeycloakAuthentication][3]") try await openKeycloakAuthenticationRequiredTokenExpired(internalKeycloakState: iks, ownedCryptoId: ownedCryptoId) return await retrySynchronizeOwnedIdentityWithKeycloakServerOnError(error: error, ownedCryptoId: ownedCryptoId, ignoreSynchronizationInterval: ignoreSynchronizationInterval, currentFailedAttempts: failedAttempts) } catch let error as KeycloakDialogError { @@ -962,6 +1008,7 @@ actor KeycloakManager: NSObject { break // Do nothing case .authenticationRequired: do { + ObvDisplayableLogs.shared.log("🧥[OpenKeycloakAuthentication][4]") try await openKeycloakAuthenticationRequiredTokenExpired(internalKeycloakState: iks, ownedCryptoId: ownedCryptoId) return await retrySynchronizeOwnedIdentityWithKeycloakServerOnError(error: error, ownedCryptoId: ownedCryptoId, ignoreSynchronizationInterval: ignoreSynchronizationInterval, currentFailedAttempts: failedAttempts) } catch let error as KeycloakDialogError { @@ -1051,11 +1098,11 @@ actor KeycloakManager: NSObject { // If we reach this point, the details on the server are identical to the ones stored locally. // We update the current API key if needed - let apiKey: UUID + let apiKey: UUID? do { - apiKey = try obvEngine.getApiKeyForOwnedIdentity(with: ownedCryptoId) + apiKey = try await obvEngine.getKeycloakAPIKey(ownedCryptoId: ownedCryptoId) } catch { - os_log("🧥 Could not retrieve the current API key from the owned identity.", log: KeycloakManager.log, type: .fault) + os_log("🧥 Could not retrieve the current API key from the owned identity: %{public}@", log: KeycloakManager.log, type: .fault, error.localizedDescription) return await retrySynchronizeOwnedIdentityWithKeycloakServerOnError(error: error, ownedCryptoId: ownedCryptoId, ignoreSynchronizationInterval: ignoreSynchronizationInterval, currentFailedAttempts: failedAttempts) } @@ -1063,7 +1110,7 @@ actor KeycloakManager: NSObject { guard apiKey == apiKeyOnServer else { // The api key returned by the server differs from the one store locally. We update the local key do { - try obvEngine.setAPIKey(for: ownedCryptoId, apiKey: apiKeyOnServer, keycloakServerURL: iks.keycloakServer) + _ = try await obvEngine.registerThenSaveKeycloakAPIKey(ownedCryptoId: ownedCryptoId, apiKey: apiKeyOnServer) return await retrySynchronizeOwnedIdentityWithKeycloakServerOnError(error: nil, ownedCryptoId: ownedCryptoId, ignoreSynchronizationInterval: ignoreSynchronizationInterval, currentFailedAttempts: 0) } catch { os_log("🧥 Could not update the local API key with the new one returned by the server.", log: KeycloakManager.log, type: .fault) @@ -1077,7 +1124,7 @@ actor KeycloakManager: NSObject { // We update the Keycloak push topics stored within the engine do { - try obvEngine.updateKeycloakPushTopicsIfNeeded(ownedCryptoId: ownedCryptoId, pushTopics: keycloakUserDetailsAndStuff.pushTopics) + try await ObvPushNotificationManager.shared.updateKeycloakPushTopicsIfNeeded(ownedCryptoId: ownedCryptoId, pushTopics: keycloakUserDetailsAndStuff.pushTopics) } catch { os_log("🧥 Could not update the engine using the push topics returned by the server.", log: KeycloakManager.log, type: .fault) return await retrySynchronizeOwnedIdentityWithKeycloakServerOnError(error: error, ownedCryptoId: ownedCryptoId, ignoreSynchronizationInterval: ignoreSynchronizationInterval, currentFailedAttempts: failedAttempts) @@ -1128,6 +1175,7 @@ actor KeycloakManager: NSObject { switch error { case .authenticationRequired: do { + ObvDisplayableLogs.shared.log("🧥[OpenKeycloakAuthentication][5]") try await openKeycloakAuthenticationRequiredTokenExpired(internalKeycloakState: iks, ownedCryptoId: ownedCryptoId) return await retrySynchronizeOwnedIdentityWithKeycloakServerOnError(error: error, ownedCryptoId: ownedCryptoId, ignoreSynchronizationInterval: ignoreSynchronizationInterval, currentFailedAttempts: failedAttempts) } catch let error as KeycloakDialogError { @@ -1193,7 +1241,7 @@ actor KeycloakManager: NSObject { guard currentFailedAttempts < self.maxFailCount else { currentlySyncingOwnedIdentities.remove(ownedCryptoId) - assertionFailure("Unexpected error") + //assertionFailure("Unexpected error. This also happens when the keycloak cannot be reached. When testing this scenario, this line can be commented out.") return } @@ -1231,7 +1279,7 @@ actor KeycloakManager: NSObject { // We use the core details from the server, but keep the local photo URL let updatedIdentityDetails = ObvIdentityDetails(coreDetails: coreDetailsOnServer, photoURL: obvOwnedIdentity.currentIdentityDetails.photoURL) do { - try obvEngine.updatePublishedIdentityDetailsOfOwnedIdentity(with: ownedCryptoId, with: updatedIdentityDetails) + try await obvEngine.updatePublishedIdentityDetailsOfOwnedIdentity(with: ownedCryptoId, with: updatedIdentityDetails) } catch { os_log("🧥 Could not updated published identity details of owned identity: %{public}@", log: KeycloakManager.log, type: .fault, error.localizedDescription) assertionFailure() @@ -1267,7 +1315,9 @@ actor KeycloakManager: NSObject { authState.isAuthorized, let (accessToken, _) = try? await authState.performAction(), let accessToken = accessToken else { + do { + ObvDisplayableLogs.shared.log("🧥[OpenKeycloakAuthentication][1] \(String(describing: obvKeycloakState.rawAuthState))") try await openKeycloakAuthenticationRequiredTokenExpired(obvKeycloakState: obvKeycloakState, ownedCryptoId: ownedCryptoId) } catch let error as KeycloakDialogError { switch error { @@ -1276,9 +1326,12 @@ actor KeycloakManager: NSObject { case .keycloakManagerError(let error): throw GetObvKeycloakStateError.unkownError(error) } + } catch { - assertionFailure("Unexpected error") + + //assertionFailure("Unexpected error. This also happens when the keycloak cannot be reached. When testing this scenario, this line can be commented out.") throw GetObvKeycloakStateError.unkownError(error) + } guard failedAttempts < maxFailCount else { @@ -1308,21 +1361,8 @@ actor KeycloakManager: NSObject { private func getJkws(url: URL) async throws -> Data { os_log("🧥 Call to getJkws", log: KeycloakManager.log, type: .info) - if #available(iOS 15, *) { - let (data, _) = try await URLSession.shared.data(from: url) - return data - } else { - return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in - let task = URLSession.shared.dataTask(with: url) { (data, response, error) in - if let data = data { - continuation.resume(returning: data) - } else { - continuation.resume(throwing: error ?? KeycloakManager.makeError(message: "No data received")) - } - } - task.resume() - } - } + let (data, _) = try await URLSession.shared.data(from: url) + return data } @@ -1619,6 +1659,11 @@ extension KeycloakManager { // Before authenticating, we test whether we have been revoked by the keycloak server guard let selfRevocationTestNonceFromEngine = try obvEngine.getOwnedIdentityKeycloakSelfRevocationTestNonce(ownedCryptoId: ownedCryptoId) else { + + // If reach this point, we make sure we can reach the keycloak server. To so, we perform a selfRevocationTest with a empty nonce. + // If this test throws, the user is not prompted to authenticate. + _ = try await selfRevocationTest(serverURL: serverURL, selfRevocationTestNonce: "") + // If we reach this point, we have no selfRevocationTestNonceFromEngine, we can immediately prompt for authentication try await openKeycloakAuthenticationRequired(serverURL: serverURL, clientId: clientId, clientSecret: clientSecret, ownedCryptoId: ownedCryptoId, title: title, message: message) return @@ -1631,7 +1676,7 @@ extension KeycloakManager { // We unbind it at the engine level and display an alert to the user setLastSynchronizationDate(forOwnedIdentity: ownedCryptoId, to: nil) do { - try await obvEngine.unbindOwnedIdentityFromKeycloakServer(ownedCryptoId: ownedCryptoId) + try await obvEngine.unbindOwnedIdentityFromKeycloak(ownedCryptoId: ownedCryptoId) try await openAppDialogKeycloakIdentityRevoked() } catch { os_log("Could not unbind revoked owned identity: %{public}@", log: KeycloakManager.log, type: .fault, error.localizedDescription) @@ -1675,13 +1720,18 @@ extension KeycloakManager { os_log("🧥 Call to openKeycloakAuthenticationRequired", log: KeycloakManager.log, type: .info) assert(Thread.isMainThread) + os_log("🧥 In openKeycloakAuthenticationRequired: Will request keycloakSceneDelegate", log: KeycloakManager.log, type: .debug) guard let keycloakSceneDelegate = await keycloakSceneDelegate else { + os_log("🧥 In openKeycloakAuthenticationRequired: could not get keycloakSceneDelegate", log: KeycloakManager.log, type: .error) assertionFailure() throw Self.makeError(message: "The keycloakSceneDelegate is not set") } - + os_log("🧥 In openKeycloakAuthenticationRequired: Did obtain keycloakSceneDelegate", log: KeycloakManager.log, type: .debug) + + os_log("🧥 In openKeycloakAuthenticationRequired: Will request view controller for presenting", log: KeycloakManager.log, type: .debug) let viewController = try await keycloakSceneDelegate.requestViewControllerForPresenting() - + os_log("🧥 In openKeycloakAuthenticationRequired: Did obtain view controller for presenting", log: KeycloakManager.log, type: .debug) + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in assert(Thread.isMainThread) @@ -1711,6 +1761,7 @@ extension KeycloakManager { menu.addAction(authenticateAction) menu.addAction(cancelAction) + os_log("🧥 In openKeycloakAuthenticationRequired: Will present alert", log: KeycloakManager.log, type: .debug) viewController.present(menu, animated: true, completion: nil) } @@ -1862,54 +1913,6 @@ extension KeycloakManager { } - /// Throws a KeycloakDialogError - @MainActor - func openAddContact(userDetail: ObvKeycloakUserDetails, ownedCryptoId: ObvCryptoId) async throws { - os_log("🧥 Call to openAddContact", log: KeycloakManager.log, type: .info) - - assert(Thread.isMainThread) - - guard let identity = userDetail.identity else { return } - - guard let keycloakSceneDelegate = await keycloakSceneDelegate else { - assertionFailure() - throw Self.makeError(message: "The keycloakSceneDelegate is not set") - } - - let viewController = try await keycloakSceneDelegate.requestViewControllerForPresenting() - - try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in - - assert(Thread.isMainThread) - - let menu = UIAlertController(title: Strings.AddContactTitle, message: Strings.AddContactMessage(userDetail.firstNameAndLastName), preferredStyle: UIDevice.current.actionSheetIfPhoneAndAlertOtherwise) - - let addContactAction = UIAlertAction(title: Strings.AddContactButton, style: .default) { _ in - Task { [weak self] in - guard let _self = self else { return } - do { - try await _self.addContact(ownedCryptoId: ownedCryptoId, userId: userDetail.id, userIdentity: identity) - continuation.resume() - } catch { - continuation.resume(throwing: KeycloakDialogError.keycloakManagerError(error)) - } - } - } - - let cancelAction = UIAlertAction(title: CommonString.Word.Cancel, style: .cancel) { _ in - continuation.resume(throwing: KeycloakDialogError.userHasCancelled) - } - - menu.addAction(addContactAction) - menu.addAction(cancelAction) - - viewController.present(menu, animated: true, completion: nil) - - } - - } - - /// This method is called each time the user re-authenticates succesfully. It saves the fresh jwks and auth state both in cache and within the engine. /// It also forces a new sychronization with the keycloak server. private func reAuthenticationSuccessful(ownedCryptoId: ObvCryptoId, jwks: ObvJWKSet, authState: OIDAuthState) { @@ -2087,3 +2090,9 @@ extension OIDAuthState: ObvErrorMaker { } } + + +enum KeycloakAddContactInfo { + case userId(userId: String) + case signedDetails(signedDetails: SignedObvKeycloakUserDetails) +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/LocalAuthenticationManager/LocalAuthenticationManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/LocalAuthenticationManager/LocalAuthenticationManager.swift index 54239b27..7b28527d 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/LocalAuthenticationManager/LocalAuthenticationManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/LocalAuthenticationManager/LocalAuthenticationManager.swift @@ -23,6 +23,8 @@ import ObvCrypto import LocalAuthentication import UIKit import ObvUICoreData +import ObvSettings + enum VerifyPasscodeResult { case valid @@ -46,14 +48,14 @@ protocol VerifyPasscodeDelegate: AnyObject { protocol CreatePasscodeDelegate: AnyObject { func clearPasscode() async func savePasscode(_ passcode: String, passcodeIsPassword: Bool) async throws - func requestCustomPasscode(viewController: UIViewController) async -> LocalAuthenticationResult + func requestCustomPasscode(customPasscodePresentingViewController: UIViewController) async -> LocalAuthenticationResult } protocol LocalAuthenticationDelegate: AnyObject { var remainingLockoutTime: TimeInterval? { get async } var isLockedOut: Bool { get async } - func performLocalAuthentication(viewController: UIViewController, uptimeAtTheTimeOfChangeoverToNotActiveState: TimeInterval?, localizedReason: String) async -> LocalAuthenticationResult + func performLocalAuthentication(customPasscodePresentingViewController: UIViewController, uptimeAtTheTimeOfChangeoverToNotActiveState: TimeInterval?, localizedReason: String, policy: ObvLocalAuthenticationPolicy) async -> LocalAuthenticationResult } @@ -122,8 +124,13 @@ final actor LocalAuthenticationManager: LocalAuthenticationDelegate, VerifyPassc ObvMessengerSettings.Privacy.passcodeIsPassword = passcodeIsPassword } - func performLocalAuthentication(viewController: UIViewController, uptimeAtTheTimeOfChangeoverToNotActiveState: TimeInterval?, localizedReason: String) async -> LocalAuthenticationResult { - let result = await self.internalPerformLocalAuthentication(viewController: viewController, uptimeAtTheTimeOfChangeoverToNotActiveState: uptimeAtTheTimeOfChangeoverToNotActiveState, localizedReason: localizedReason) + + func performLocalAuthentication(customPasscodePresentingViewController: UIViewController, uptimeAtTheTimeOfChangeoverToNotActiveState: TimeInterval?, localizedReason: String, policy: ObvLocalAuthenticationPolicy) async -> LocalAuthenticationResult { + let result = await self.internalPerformLocalAuthentication( + customPasscodePresentingViewController: customPasscodePresentingViewController, + uptimeAtTheTimeOfChangeoverToNotActiveState: uptimeAtTheTimeOfChangeoverToNotActiveState, + localizedReason: localizedReason, + policy: policy) switch result { case .authenticated: ObvMessengerSettings.Privacy.userHasBeenLockedOut = false @@ -133,7 +140,8 @@ final actor LocalAuthenticationManager: LocalAuthenticationDelegate, VerifyPassc return result } - private func internalPerformLocalAuthentication(viewController: UIViewController, uptimeAtTheTimeOfChangeoverToNotActiveState: TimeInterval?, localizedReason: String) async -> LocalAuthenticationResult { + + private func internalPerformLocalAuthentication(customPasscodePresentingViewController: UIViewController, uptimeAtTheTimeOfChangeoverToNotActiveState: TimeInterval?, localizedReason: String, policy: ObvLocalAuthenticationPolicy) async -> LocalAuthenticationResult { guard !isLockedOut else { return .lockedOut } @@ -151,7 +159,8 @@ final actor LocalAuthenticationManager: LocalAuthenticationDelegate, VerifyPassc guard !userIsAlreadyAuthenticated else { return .authenticated(authenticationWasPerformed: false) } - switch ObvMessengerSettings.Privacy.localAuthenticationPolicy { + // switch ObvMessengerSettings.Privacy.localAuthenticationPolicy { + switch policy { case .none: return .authenticated(authenticationWasPerformed: false) case .deviceOwnerAuthentication: @@ -173,23 +182,27 @@ final actor LocalAuthenticationManager: LocalAuthenticationDelegate, VerifyPassc case .biometricsWithCustomPasscodeFallback: let laContext = LAContext() var error: NSError? + debugPrint("🔐 LocalAuthenticationManager laContext.evaluatePolicy") guard laContext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) else { - return await requestCustomPasscode(viewController: viewController) + return await requestCustomPasscode(customPasscodePresentingViewController: customPasscodePresentingViewController) } do { + debugPrint("🔐 LocalAuthenticationManager laContext.evaluatePolicy") try await laContext.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: localizedReason) return .authenticated(authenticationWasPerformed: true) } catch { - return await requestCustomPasscode(viewController: viewController) + return await requestCustomPasscode(customPasscodePresentingViewController: customPasscodePresentingViewController) } case .customPasscode: - return await requestCustomPasscode(viewController: viewController) + return await requestCustomPasscode(customPasscodePresentingViewController: customPasscodePresentingViewController) } } - func requestCustomPasscode(viewController: UIViewController) async -> LocalAuthenticationResult { + func requestCustomPasscode(customPasscodePresentingViewController: UIViewController) async -> LocalAuthenticationResult { let passcodeViewController = await VerifyPasscodeViewController(verifyPasscodeDelegate: self) - await viewController.present(passcodeViewController, animated: true) + // Since we are about to present the VerifyPasscodeViewController, we dismiss any presented view controller + await customPasscodePresentingViewController.presentedViewController?.dismiss(animated: false) + await customPasscodePresentingViewController.present(passcodeViewController, animated: true) switch await passcodeViewController.getResult() { case .succeed: return .authenticated(authenticationWasPerformed: true) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/ProfilePictureManager/ProfilePictureManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/ProfilePictureManager/ProfilePictureManager.swift index 854afc05..327eb6bd 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/ProfilePictureManager/ProfilePictureManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/ProfilePictureManager/ProfilePictureManager.swift @@ -22,6 +22,7 @@ import CoreData import UIKit import os.log import ObvUICoreData +import ObvSettings final class ProfilePictureManager { @@ -58,6 +59,9 @@ final class ProfilePictureManager { try! FileManager.default.createDirectory(at: profilePicturesCacheDirectory, withIntermediateDirectories: true, attributes: nil) } + + /// Legacy method. We should move away from the pattern where this `ProfilePictureManager` is used to save files. + /// For example, we chose a different approach in the new view controller allowing to choose a custom contact photo (where we only manipulate an UIImage, until the user requests a save). private func saveImage(_ image: UIImage, into url: URL) -> URL? { guard let jpegData = image.jpegData(compressionQuality: 0.75) else { assertionFailure() @@ -139,7 +143,7 @@ final class ProfilePictureManager { } private func getAllCustomPhotoURLOnDisk() throws -> Set { - Set(try FileManager.default.contentsOfDirectory(at: self.customContactProfilePicturesDirectory, includingPropertiesForKeys: nil)) + return Set(try FileManager.default.contentsOfDirectory(at: self.customContactProfilePicturesDirectory, includingPropertiesForKeys: nil).map({ $0.resolvingSymlinksInPath() })) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/SnackBarManager/OlvidSnackBarCategory.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/SnackBarManager/OlvidSnackBarCategory.swift index e637d593..8090d668 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/SnackBarManager/OlvidSnackBarCategory.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/SnackBarManager/OlvidSnackBarCategory.swift @@ -32,6 +32,7 @@ enum OlvidSnackBarCategory: CaseIterable { case upgradeIOS case newerAppVersionAvailable case lastUploadBackupHasFailed + case ownedIdentityIsInactive static func removeAllLastDisplayDate() { for category in OlvidSnackBarCategory.allCases { @@ -76,6 +77,8 @@ enum OlvidSnackBarCategory: CaseIterable { return NSLocalizedString("SNACK_BAR_BODY_NEW_APP_VERSION_AVAILABLE", comment: "") case .lastUploadBackupHasFailed: return NSLocalizedString("SNACK_BAR_BODY_LAST_UPLOAD_BACKUP_HAS_FAILED", comment: "") + case .ownedIdentityIsInactive: + return NSLocalizedString("SNACK_BAR_BODY_INACTIVE_PROFILE", comment: "") } } @@ -103,6 +106,8 @@ enum OlvidSnackBarCategory: CaseIterable { return NSLocalizedString("SNACK_BAR_BUTTON_TITLE_NEW_APP_VERSION_AVAILABLE", comment: "") case .lastUploadBackupHasFailed: return NSLocalizedString("SNACK_BAR_TITLE_LAST_UPLOAD_BACKUP_HAS_FAILED", comment: "") + case .ownedIdentityIsInactive: + return NSLocalizedString("SNACK_BAR_BUTTON_TITLE_INACTIVE_PROFILE", comment: "") } } @@ -124,6 +129,8 @@ enum OlvidSnackBarCategory: CaseIterable { return "io.olvid.snackBarCoordinator.lastDisplayDate.newerAppVersionAvailable" case .lastUploadBackupHasFailed: return "io.olvid.snackBarCoordinator.lastDisplayDate.lastUploadBackupHasFailed" + case .ownedIdentityIsInactive: + return "io.olvid.snackBarCoordinator.lastDisplayDate.ownedIdentityIsInactive" } } @@ -139,6 +146,8 @@ enum OlvidSnackBarCategory: CaseIterable { return .forwardFill case .lastUploadBackupHasFailed: return .icloud() + case .ownedIdentityIsInactive: + return .exclamationmarkCircle } } @@ -166,6 +175,8 @@ enum OlvidSnackBarCategory: CaseIterable { return NSLocalizedString("SNACK_BAR_DETAILS_TITLE_NEW_APP_VERSION_AVAILABLE", comment: "") case .lastUploadBackupHasFailed: return NSLocalizedString("SNACK_BAR_DETAILS_TITLE_LAST_UPLOAD_BACKUP_HAS_FAILED", comment: "") + case .ownedIdentityIsInactive: + return NSLocalizedString("SNACK_BAR_DETAILS_TITLE_INACTIVE_PROFILE", comment: "") } } @@ -193,6 +204,8 @@ enum OlvidSnackBarCategory: CaseIterable { return NSLocalizedString("SNACK_BAR_DETAILS_BODY_NEW_APP_VERSION_AVAILABLE", comment: "") case .lastUploadBackupHasFailed: return NSLocalizedString("SNACK_BAR_DETAILS_BODY_LAST_UPLOAD_BACKUP_HAS_FAILED", comment: "") + case .ownedIdentityIsInactive: + return NSLocalizedString("SNACK_BAR_DETAILS_BODY_INACTIVE_PROFILE", comment: "") } } @@ -214,6 +227,8 @@ enum OlvidSnackBarCategory: CaseIterable { return NSLocalizedString("GO_TO_APP_STORE_BUTTON_TITLE", comment: "") case .lastUploadBackupHasFailed: return NSLocalizedString("CONFIGURE_BACKUPS_BUTTON_TITLE", comment: "") + case .ownedIdentityIsInactive: + return NSLocalizedString("REACTIVATE_PROFILE_BUTTON_TITLE", comment: "") } } @@ -235,6 +250,8 @@ enum OlvidSnackBarCategory: CaseIterable { return NSLocalizedString("REMIND_ME_LATER", comment: "") case .lastUploadBackupHasFailed: return NSLocalizedString("REMIND_ME_LATER", comment: "") + case .ownedIdentityIsInactive: + return NSLocalizedString("MAYBE_ME_LATER_BUTTON_TITLE", comment: "") } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/SnackBarManager/SnackBarManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/SnackBarManager/SnackBarManager.swift index fe0dfecc..7465c89c 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/SnackBarManager/SnackBarManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/SnackBarManager/SnackBarManager.swift @@ -24,6 +24,7 @@ import UIKit import AVFAudio import ObvEngine import ObvUICoreData +import ObvSettings actor SnackBarManager { @@ -63,7 +64,31 @@ actor SnackBarManager { await listenToUIApplicationNotifications() observationTokens.append(contentsOf: [ ObvMessengerInternalNotification.observeMetaFlowControllerDidSwitchToOwnedIdentity { newOwnedCryptoId in - Task { [weak self] in await self?.replaceCurrentCryptoId(by: newOwnedCryptoId) } + Task { [weak self] in + await self?.removeAllAlreadyCheckedIdentities() + await self?.replaceCurrentCryptoId(by: newOwnedCryptoId) + if let currentCryptoId = await self?.currentCryptoId { + await self?.determineSnackBarToDisplay(for: currentCryptoId) + } + } + }, + ObvMessengerCoreDataNotification.observeOwnedIdentityWasReactivated { _ in + Task { [weak self] in + await self?.removeAllAlreadyCheckedIdentities() + if let currentCryptoId = await self?.currentCryptoId { + // Since a backup is not linked to a specific owned identity, we use the current one for the snack bar + await self?.determineSnackBarToDisplay(for: currentCryptoId) + } + } + }, + ObvMessengerCoreDataNotification.observeOwnedIdentityWasDeactivated { _ in + Task { [weak self] in + await self?.removeAllAlreadyCheckedIdentities() + if let currentCryptoId = await self?.currentCryptoId { + // Since a backup is not linked to a specific owned identity, we use the current one for the snack bar + await self?.determineSnackBarToDisplay(for: currentCryptoId) + } + } }, ObvMessengerInternalNotification.observeUserDismissedSnackBarForLater { [weak self] ownedCryptoId, snackBarCategory in Task { [weak self] in await self?.processUserDismissedSnackBarForLater(ownedCryptoId: ownedCryptoId, snackBarCategory: snackBarCategory) } @@ -198,6 +223,7 @@ actor SnackBarManager { let obvEngine = self.obvEngine var ownedIdentityHasAtLeastOneContact: Bool = false + var ownedIdentityIsActive = true ObvStack.shared.performBackgroundTaskAndWait { context in do { guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: currentCryptoId, within: context) else { @@ -206,12 +232,22 @@ actor SnackBarManager { } ownedIdentityHasAtLeastOneContact = !ownedIdentity.contacts.isEmpty + ownedIdentityIsActive = ownedIdentity.isActive } catch { os_log("SnackBarManager error: %{public}@", log: Self.log, type: .fault, error.localizedDescription) assertionFailure() return } } + + // If the owned identity (profile) is inactive, inform the user + + guard ownedIdentityIsActive else { + ObvMessengerInternalNotification.olvidSnackBarShouldBeShown(ownedCryptoId: currentCryptoId, snackBarCategory: OlvidSnackBarCategory.ownedIdentityIsInactive) + .postOnDispatchQueue() + return + } + // We never display a snackbar if the owned identity has no contact diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/SubscriptionManager/Operations/ProcessPurchasedOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/SubscriptionManager/Operations/ProcessPurchasedOperation.swift deleted file mode 100644 index 141d2823..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/SubscriptionManager/Operations/ProcessPurchasedOperation.swift +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import StoreKit -import os.log -import OlvidUtils - -final class ProcessPurchasedOperation: OperationWithSpecificReasonForCancel { - - private let transaction: SKPaymentTransaction - private weak var delegate: PaymentOperationsDelegate? - - - init(transaction: SKPaymentTransaction, delegate: PaymentOperationsDelegate) { - self.transaction = transaction - self.delegate = delegate - super.init() - } - - override func main() { - - guard let transactionIdentifier = transaction.transactionIdentifier else { return cancel(withReason: .paymentTransactionHasNoIdentifier) } - guard let appStoreReceiptURL = Bundle.main.appStoreReceiptURL else { return cancel(withReason: .noAppStoreReceiptURL) } - guard FileManager.default.fileExists(atPath: appStoreReceiptURL.path) else { return cancel(withReason: .noFileAtAppStoreReceiptURL) } - let rawReceiptData: Data - do { - rawReceiptData = try Data(contentsOf: appStoreReceiptURL, options: .alwaysMapped) - } catch { - return cancel(withReason: .couldNotReadReceipt(error: error)) - } - let receiptData = rawReceiptData.base64EncodedString(options: []) - delegate?.processAppStorePurchase(receiptData: receiptData, transactionIdentifier: transactionIdentifier, transaction: transaction) - } - -} - -enum ProcessPurchasedOperationReasonForCancel: LocalizedErrorWithLogType { - case noAppStoreReceiptURL - case noFileAtAppStoreReceiptURL - case couldNotReadReceipt(error: Error) - case paymentTransactionHasNoIdentifier - - var logType: OSLogType { - switch self { - case .noAppStoreReceiptURL, .noFileAtAppStoreReceiptURL, .couldNotReadReceipt, .paymentTransactionHasNoIdentifier: - return .fault - } - } - - var errorDescription: String? { - switch self { - case .noAppStoreReceiptURL: return "The AppStoreReceiptURL is nil" - case .noFileAtAppStoreReceiptURL: return "Could not find receipt file at the AppStoreReceiptURL" - case .couldNotReadReceipt(error: let error): return "Could not read receipt data: \(error.localizedDescription)" - case .paymentTransactionHasNoIdentifier: return "The Payment transaction has no identifier, which is unexpected for a purchase" - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/SubscriptionManager/SubscriptionManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/SubscriptionManager/SubscriptionManager.swift index dfee2734..03963b3b 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/SubscriptionManager/SubscriptionManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/SubscriptionManager/SubscriptionManager.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,356 +25,192 @@ import ObvTypes import ObvUICoreData -final class SubscriptionManager: NSObject, SKPaymentTransactionObserver, SKProductsRequestDelegate { +final class SubscriptionManager: NSObject, StoreKitDelegate { private static let allProductIdentifiers = Set(["io.olvid.premium_2020_monthly"]) private let obvEngine: ObvEngine - private var notificationTokens = [NSObjectProtocol]() private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: SubscriptionManager.self)) - private var currentProductRequest: SKProductsRequest? - private var currentPurchaseTransactionsSentToEngine = [String: PurchaseTransactionForToEngine]() - private var numberOfTransactionsToRestore = 0 - private let internalQueue: OperationQueue = { - let queue = OperationQueue() - queue.maxConcurrentOperationCount = 1 - queue.name = "SubscriptionManager internal queue" - return queue - }() + private var updates: Task? = nil + init(obvEngine: ObvEngine) { self.obvEngine = obvEngine super.init() - observeNotifications() } deinit { - notificationTokens.forEach { NotificationCenter.default.removeObserver($0) } + updates?.cancel() } - - struct PurchaseTransactionForToEngine { - - let transactionIdentifier: String - let transaction: SKPaymentTransaction - var ownedCryptoIds: Set - - mutating func wasProcessedByEngineForOwnedCryptoId(_ ownedCryptoId: ObvCryptoId) { - ownedCryptoIds.remove(ownedCryptoId) - } - - var wasProcessedByEngineForAllOwnedIdentities: Bool { - ownedCryptoIds.isEmpty - } - - } - - private func observeNotifications() { - notificationTokens.append(contentsOf: [ - // ObvMessengerInternalNotification - ObvMessengerInternalNotification.observeUserRequestedAPIKeyStatus(queue: internalQueue) { [weak self] (ownedCryptoId, apiKey) in - self?.obvEngine.queryAPIKeyStatus(for: ownedCryptoId, apiKey: apiKey) - }, - ObvMessengerInternalNotification.observeUserRequestedNewAPIKeyActivation(queue: internalQueue) { [weak self] (ownedCryptoId, apiKey) in - try? self?.obvEngine.setAPIKey(for: ownedCryptoId, apiKey: apiKey) - }, - - // SubscriptionNotification - SubscriptionNotification.observeUserRequestedListOfSKProducts { [weak self] in - self?.processUserRequestedListOfSKProducts() - }, - SubscriptionNotification.observeUserRequestedToBuySKProduct { [weak self] (product) in - self?.processUserRequestedToBuySKProduct(product: product) - }, - SubscriptionNotification.observeUserRequestedToRestoreAppStorePurchases { [weak self] in - self?.processUserRequestedToRestoreAppStorePurchasesNotification() - }, - - // ObvEngineNotificationNew - ObvEngineNotificationNew.observeAppStoreReceiptVerificationSucceededAndSubscriptionIsValid(within: NotificationCenter.default, queue: internalQueue) { [weak self] (ownedIdentity, transactionIdentifier) in - self?.processAppStoreReceiptVerificationSucceededAndSubscriptionIsValidNotification(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier) - }, - ObvEngineNotificationNew.observeAppStoreReceiptVerificationFailed(within: NotificationCenter.default, queue: internalQueue) { [weak self] (ownedIdentity, transactionIdentifier) in - self?.processAppStoreReceiptVerificationFailedNotification(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier) - }, - ObvEngineNotificationNew.observeAppStoreReceiptVerificationSucceededButSubscriptionIsExpired(within: NotificationCenter.default, queue: internalQueue) { [weak self] (ownedIdentity, transactionIdentifier) in - self?.processAppStoreReceiptVerificationSucceededButSubscriptionIsExpiredNotification(ownedIdentity: ownedIdentity, transactionIdentifier: transactionIdentifier) - }, - ]) - } - + // Called at an appropriate time by the AppManagersHolder func listenToSKPaymentTransactions() { guard SKPaymentQueue.canMakePayments() else { return } - SKPaymentQueue.default().add(self) - notificationTokens.append(NotificationCenter.default.addObserver(forName: UIApplication.willTerminateNotification, object: nil, queue: nil, using: { (_) in - DispatchQueue.main.async { - SKPaymentQueue.default().remove(self) - } - })) + self.updates = listenForTransactions() } - enum RequestedListOfSKProductsError: Error { - case userCannotMakePayments + + private func listenForTransactions() -> Task { + return Task(priority: .background) { + for await verificationResult in Transaction.updates { + do { + _ = try await self.handle(updatedTransaction: verificationResult) + } catch { + assertionFailure() + os_log("💰 Could not handle the updated transaction: %{public}@", log: log, type: .fault, error.localizedDescription) + } + } + } } + +} + +// MARK: - StoreKitDelegate + +extension SubscriptionManager { - private func processUserRequestedListOfSKProducts() { - + func userRequestedListOfSKProducts() async throws -> [Product] { + os_log("💰 User requested a list of available SKProducts", log: log, type: .info) guard SKPaymentQueue.canMakePayments() else { os_log("💰 User is *not* allowed to make payments, returning an empty list of SKProducts", log: log, type: .error) - SubscriptionNotification.newListOfSKProducts(result: .failure(.userCannotMakePayments)) - .postOnDispatchQueue() - return + throw ObvError.userCannotMakePayments } - internalQueue.addOperation { [weak self] in - guard self?.currentProductRequest == nil else { return } - self?.currentProductRequest = SKProductsRequest(productIdentifiers: SubscriptionManager.allProductIdentifiers) - self?.currentProductRequest?.delegate = self - self?.currentProductRequest?.start() - } + let storeProducts = try await Product.products(for: SubscriptionManager.allProductIdentifiers) - } - - - private func processUserRequestedToBuySKProduct(product: SKProduct) { - let log = self.log - os_log("💰 User requested purchase of the SKProduct with identifier %{public}@", log: log, type: .info, product.productIdentifier) - internalQueue.addOperation { - let payment = SKMutablePayment(product: product) - payment.quantity = 1 - os_log("💰 Adding the payment for SKProduct with identifier %{public}@ to the payment queue", log: log, type: .info, product.productIdentifier) - SKPaymentQueue.default().add(payment) - } - } - - - private func processUserRequestedToRestoreAppStorePurchasesNotification() { - os_log("💰 User requested to restore AppStore purchases", log: log, type: .info) - internalQueue.addOperation { [weak self] in - self?.numberOfTransactionsToRestore = 0 - let refresh = SKReceiptRefreshRequest() - refresh.delegate = self - refresh.start() - } - } - -} - + return storeProducts -// MARK: - Implementing SKPaymentTransactionObserver + } -extension SubscriptionManager { - func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) { + func userWantsToBuy(_ product: Product) async throws -> StoreKitDelegatePurchaseResult { - os_log("💰 Receiving an updated transactions callback with %d transactions", log: log, type: .info, transactions.count) + let log = self.log + os_log("💰 User requested purchase of the SKProduct with identifier %{public}@", log: log, type: .info, product.id) - var originalTransactionsToRestore = [String: SKPaymentTransaction]() + // Make sure the user has at least one active (non-hidden) identity - for transaction in transactions { - - os_log("💰 Updated transaction state is %{public}@", log: log, type: .info, transaction.transactionState.debugDescription) - - switch transaction.transactionState { - case .purchasing: - // Nothing to do - break - case .purchased: - let op = ProcessPurchasedOperation(transaction: transaction, delegate: self) - internalQueue.addOperation(op) - internalQueue.waitUntilAllOperationsAreFinished() - op.logReasonIfCancelled(log: log) - case .restored: - numberOfTransactionsToRestore += 1 - os_log("💰 Transaction to restore identified by %{public}@, transactionDate: %{public}@", log: log, type: .info, transaction.transactionIdentifier ?? "None", transaction.transactionDate?.debugDescription ?? "None") - os_log("💰 Transaction to restore identified by %{public}@, original: %{public}@", log: log, type: .info, transaction.transactionIdentifier ?? "None", transaction.original?.debugDescription ?? "None") - if let original = transaction.original, let transactionIdentifier = original.transactionIdentifier { - os_log("💰 Transaction to restore identified by %{public}@, original.transactionDate: %{public}@", log: log, type: .info, original.transactionIdentifier ?? "None", original.transactionDate?.debugDescription ?? "None") - originalTransactionsToRestore[transactionIdentifier] = original - } else { - os_log("💰 Could not find the original transaction!") - } - queue.finishTransaction(transaction) - case .failed: - guard let error = transaction.error as? SKError else { assertionFailure(); return } - switch error.code { - case .paymentCancelled: - SubscriptionNotification.userDecidedToCancelToTheSKProductPurchase - .postOnDispatchQueue() - default: - SubscriptionNotification.skProductPurchaseFailed(error: error) - .postOnDispatchQueue() - } - case .deferred: - SubscriptionNotification.skProductPurchaseWasDeferred - .postOnDispatchQueue() - @unknown default: - assertionFailure() + do { + guard try await userHasAtLeastOneActiveNonKeycloakNonHiddenIdentity() else { + os_log("💰 User requested a purchase but has no active non-hidden non-keycloak identity. Aborting.", log: log, type: .error) + throw ObvError.userHasNoActiveIdentity } - + } catch { + assertionFailure() + os_log("💰 User requested a purchase but we could not check if she has at least one active non-hidden non-keycloak identity. Aborting", log: log, type: .error) + throw ObvError.userHasNoActiveIdentity } - if !originalTransactionsToRestore.isEmpty { - os_log("💰 We have found %d candidate(s) for the restore process. We process them now", log: log, type: .info, originalTransactionsToRestore.count) - for original in originalTransactionsToRestore.values { - let op = ProcessPurchasedOperation(transaction: original, delegate: self) - internalQueue.addOperation(op) - internalQueue.waitUntilAllOperationsAreFinished() - op.logReasonIfCancelled(log: log) - } - } - } - - - private func processAppStoreReceiptVerificationSucceededAndSubscriptionIsValidNotification(ownedIdentity: ObvCryptoId, transactionIdentifier: String) { - assert(OperationQueue.current == internalQueue) - assert(currentPurchaseTransactionsSentToEngine.keys.contains(transactionIdentifier)) - os_log("💰 The AppStore receipt was successfully verified by Olvid's server for the transaction identifier by %{public}@ for identity %{public}@", log: log, type: .info, transactionIdentifier, ownedIdentity.debugDescription) - defer { - if currentPurchaseTransactionsSentToEngine.isEmpty { - SubscriptionNotification.allPurchaseTransactionsSentToEngineWereProcessed - .postOnDispatchQueue() - } - } - guard var transactionSentToEngine = currentPurchaseTransactionsSentToEngine.removeValue(forKey: transactionIdentifier) else { - os_log("💰 Could not find the transaction with identifier %{public}@", log: log, type: .fault, transactionIdentifier) + // Proceed with the purchase + + let result = try await product.purchase() + + switch result { + + case .success(let verificationResult): + + return try await handle(updatedTransaction: verificationResult) + + case .userCancelled: + // No need to throw + return .userCancelled + + case .pending: + // The purchase requires action from the customer (e.g., parents approval). + // If the transaction completes, it's available through Transaction.updates. + // To listen to these updates, we iterate over `SubscriptionManager.listenForTransactions()`. + return .pending + + @unknown default: assertionFailure() - return - } - transactionSentToEngine.wasProcessedByEngineForOwnedCryptoId(ownedIdentity) - if transactionSentToEngine.wasProcessedByEngineForAllOwnedIdentities { - os_log("💰 Finishing the transaction with identifier %{public}@", log: log, type: .info, transactionIdentifier) - SKPaymentQueue.default().finishTransaction(transactionSentToEngine.transaction) - } else { - currentPurchaseTransactionsSentToEngine[transactionIdentifier] = transactionSentToEngine + return .userCancelled } + } - - /// This happens when the server fails to process the receipt (most probably because it is invalid, or because of a bug). - /// We do *not* finish the transaction in this case, but display an error message to the user, inviting her to cancel her subscription - /// if the problem persists. - private func processAppStoreReceiptVerificationFailedNotification(ownedIdentity: ObvCryptoId, transactionIdentifier: String) { - assert(OperationQueue.current == internalQueue) - os_log("💰 The AppStore receipt with identifier by %{public}@ verification failed for owned identity %{public}@", log: log, type: .info, transactionIdentifier, ownedIdentity.debugDescription) - // If the verification fails for one identity, we consider it fails for all identities - _ = currentPurchaseTransactionsSentToEngine.removeValue(forKey: transactionIdentifier) - if currentPurchaseTransactionsSentToEngine.isEmpty { - SubscriptionNotification.allPurchaseTransactionsSentToEngineWereProcessed - .postOnDispatchQueue() - } - } - - private func processAppStoreReceiptVerificationSucceededButSubscriptionIsExpiredNotification(ownedIdentity: ObvCryptoId, transactionIdentifier: String) { - os_log("💰 The AppStore receipt with identifier by %{public}@ verification succeed but the subscription has expired for owned identity %{public}@", log: log, type: .info, transactionIdentifier, ownedIdentity.debugDescription) - defer { - if currentPurchaseTransactionsSentToEngine.isEmpty { - SubscriptionNotification.allPurchaseTransactionsSentToEngineWereProcessed - .postOnDispatchQueue() - } - } - guard var transactionSentToEngine = currentPurchaseTransactionsSentToEngine.removeValue(forKey: transactionIdentifier) else { - os_log("💰 Could not find the transaction with identifier %{public}@", log: log, type: .fault, transactionIdentifier) - assertionFailure() - return - } - transactionSentToEngine.wasProcessedByEngineForOwnedCryptoId(ownedIdentity) - if transactionSentToEngine.wasProcessedByEngineForAllOwnedIdentities { - os_log("💰 Finishing the transaction with identifier %{public}@", log: log, type: .info, transactionIdentifier) - SKPaymentQueue.default().finishTransaction(transactionSentToEngine.transaction) + /// Called either when the user makes a purchase in the app, or when a transaction is obtained in `SubscriptionManager.listenForTransactions()`. + private func handle(updatedTransaction verificationResult: VerificationResult) async throws -> StoreKitDelegatePurchaseResult { + + let (transaction, signedAppStoreTransactionAsJWS) = try checkVerified(verificationResult) + + let results = try await obvEngine.processAppStorePurchase(signedAppStoreTransactionAsJWS: signedAppStoreTransactionAsJWS, transactionIdentifier: transaction.id) + + await transaction.finish() + + // Since the same receipt data was used for all appropriate owned identities, we expect all results to be the same. Yet, we have to take into account exceptional circumstances ;-) + // So we globally fail if any of the results is distinct from `.succeededAndSubscriptionIsValid`. + + if results.values.allSatisfy({ $0 == .succeededAndSubscriptionIsValid }) { + + os_log("💰 The AppStore receipt was successfully verified by Olvid's server", log: log, type: .info) + return .purchaseSucceeded(serverVerificationResult: .succeededAndSubscriptionIsValid) + + } else if results.values.first(where: { $0 == .succeededButSubscriptionIsExpired }) != nil { + + os_log("💰 The AppStore receipt verification succeeded but the subscription has expired", log: log, type: .info) + return .purchaseSucceeded(serverVerificationResult: .succeededButSubscriptionIsExpired) + } else { - currentPurchaseTransactionsSentToEngine[transactionIdentifier] = transactionSentToEngine + + os_log("💰 The AppStore receipt verification failed", log: log, type: .error) + return .purchaseSucceeded(serverVerificationResult: .failed) + } - } - -} - -// MARK: - PaymentOperationsDelegate and its implementation -protocol PaymentOperationsDelegate: AnyObject { - func processAppStorePurchase(receiptData: String, transactionIdentifier: String, transaction: SKPaymentTransaction) -} + } -extension SubscriptionManager: PaymentOperationsDelegate { - func processAppStorePurchase(receiptData: String, transactionIdentifier: String, transaction: SKPaymentTransaction) { - assert(OperationQueue.current == internalQueue) - assert(!currentPurchaseTransactionsSentToEngine.keys.contains(transactionIdentifier)) - os_log("💰 Processing AppStore purchase transaction with identifier %{public}@", log: log, type: .info, transactionIdentifier) - ObvStack.shared.performBackgroundTaskAndWait { (context) in - let ownedCryptoIds: Set - do { - let ownedIdentities = try PersistedObvOwnedIdentity.getAll(within: context) - ownedCryptoIds = Set(ownedIdentities.map({ $0.cryptoId })) - } catch { - assertionFailure(error.localizedDescription) - return - } - let transactionSentToEngine = PurchaseTransactionForToEngine(transactionIdentifier: transactionIdentifier, - transaction: transaction, - ownedCryptoIds: ownedCryptoIds) - currentPurchaseTransactionsSentToEngine[transactionIdentifier] = transactionSentToEngine - - os_log("💰 Sending the receipt data to the engine for verification. Transaction identifier is %{public}@ and it concerns %d identitie(s)", log: log, type: .info, transactionIdentifier, ownedCryptoIds.count) - obvEngine.processAppStorePurchase(for: ownedCryptoIds, receiptData: receiptData, transactionIdentifier: transactionIdentifier) - } + func userWantsToRestorePurchases() async throws { + try await AppStore.sync() } + } -// MARK: - Implementing SKProductsRequestDelegate + +// MARK: - Helpers extension SubscriptionManager { - - func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) { - internalQueue.addOperation { [weak self] in - guard let _self = self else { return } - guard _self.currentProductRequest != nil else { assertionFailure(); return } - _self.currentProductRequest = nil - assert(response.invalidProductIdentifiers.isEmpty) - let products = response.products - os_log("💰 New list of SKProduct is available with %d products.", log: _self.log, type: .info, products.count) - SubscriptionNotification.newListOfSKProducts(result: .success(products)) - .postOnDispatchQueue() - } - } - - func requestDidFinish(_ request: SKRequest) { - if request is SKReceiptRefreshRequest { - // The only case when we perform an SKReceiptRefreshRequest is when we want to restore purhcases. We do this now. - SKPaymentQueue.default().restoreCompletedTransactions() + + private func checkVerified(_ result: VerificationResult) throws -> (transaction: Transaction, jwsRepresentation: String) { + switch result { + case .unverified: + throw ObvError.failedVerification + case .verified(let signedType): + let jwsRepresentation = result.jwsRepresentation + return (signedType, jwsRepresentation) } } + - func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) { - os_log("💰 Payment queue restore completed transactions finished", log: log, type: .info) - if numberOfTransactionsToRestore == 0 { - SubscriptionNotification.thereWasNoAppStorePurchaseToRestore - .postOnDispatchQueue() + private func userHasAtLeastOneActiveNonKeycloakNonHiddenIdentity() async throws -> Bool { + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + ObvStack.shared.performBackgroundTask { context in + do { + let count = try PersistedObvOwnedIdentity.countCryptoIdsOfAllActiveNonHiddenNonKeycloakOwnedIdentities(within: context) + continuation.resume(returning: count > 0) + } catch { + continuation.resume(throwing: error) + } + } } } -} - - -extension SKPaymentTransactionState: CustomDebugStringConvertible { - public var debugDescription: String { - switch self { - case .deferred: return "deferred" - case .failed: return "failed" - case .purchased: return "purchased" - case .purchasing: return "purchasing" - case .restored: return "restored" - @unknown default: - return "unknown default" - } + enum ObvError: LocalizedError { + case transactionHasNoIdentifier + case couldNotRetrieveAppStoreReceiptURL + case thereIsNoFileAtTheURLIndicatedInTheTransaction + case couldReadDataAtTheURLIndicatedInTheTransaction + case userHasNoActiveIdentity + case failedVerification + case userCannotMakePayments } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/ThumbnailManager/ThumbnailManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/ThumbnailManager/ThumbnailManager.swift index b33460c9..8d6adaf0 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/ThumbnailManager/ThumbnailManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/ThumbnailManager/ThumbnailManager.swift @@ -22,6 +22,7 @@ import os.log import QuickLookThumbnailing import MobileCoreServices import ObvUICoreData +import ObvSettings enum ThumbnailType { @@ -139,9 +140,9 @@ final class ThumbnailManager { case .normal: guard fyleElement.fullFileIsAvailable else { - self?.createSymbolThumbnail(uti: fyleElement.uti) { (image) in + self?.createSymbolThumbnail(contentType: fyleElement.contentType) { (image) in guard let image = image else { - os_log("Could not generate an appropriate thumbnail for uti %{public}@", log: log, type: .fault, fyleElement.uti) + os_log("Could not generate an appropriate thumbnail for content type %{public}@", log: log, type: .fault, fyleElement.contentType.debugDescription) assertionFailure() return } @@ -166,7 +167,7 @@ final class ThumbnailManager { guard let _self = self else { return } switch result { case .success(let hardLinkToFyle): - _self.createThumbnail(hardLinkToFyle: hardLinkToFyle, size: size, uti: hardLinkToFyle.uti) { (image, isSymbol) in + _self.createThumbnail(hardLinkToFyle: hardLinkToFyle, size: size, contentType: hardLinkToFyle.contentType) { (image, isSymbol) in let thumbnail = Thumbnail(fyleURL: hardLinkToFyle.fyleURL, fileName: hardLinkToFyle.fileName, size: size, image: image, isSymbol: isSymbol) if !isSymbol { self?.thumbnails.insert(thumbnail) @@ -186,7 +187,7 @@ final class ThumbnailManager { } - private func createThumbnail(hardLinkToFyle: HardLinkToFyle, size: CGSize, uti: String, completionHandler: @escaping (UIImage, Bool) -> Void) { + private func createThumbnail(hardLinkToFyle: HardLinkToFyle, size: CGSize, contentType: UTType, completionHandler: @escaping (UIImage, Bool) -> Void) { assert(size != CGSize.zero) guard let hardlinkURL = hardLinkToFyle.hardlinkURL else { os_log("The hardlink within the hardLinkToFyle is nil, which is unexpected", log: log, type: .fault) @@ -200,9 +201,9 @@ final class ThumbnailManager { guard let log = self?.log else { return } if thumbnail == nil || error != nil { os_log("The thumbnail generation failed. We try to set an appropriate generic thumbnail", log: log, type: .error) - self?.createSymbolThumbnail(uti: uti) { (thumbnail) in + self?.createSymbolThumbnail(contentType: contentType) { (thumbnail) in guard let thumbnail = thumbnail else { - os_log("Could not generate an appropriate thumbnail for uti %{public}@", log: log, type: .fault, uti) + os_log("Could not generate an appropriate thumbnail for content type %{public}@", log: log, type: .fault, contentType.debugDescription) return } self?.queueForNotifications.addOperation { @@ -220,17 +221,17 @@ final class ThumbnailManager { } - private func createSymbolThumbnail(uti: String, completionHandler: @escaping (UIImage?) -> Void) { + private func createSymbolThumbnail(contentType: UTType, completionHandler: @escaping (UIImage?) -> Void) { // See CoreServices > UTCoreTypes - if ObvUTIUtils.uti(uti, conformsTo: "org.openxmlformats.wordprocessingml.document" as CFString) { + if contentType.conforms(to: UTType.OpenXML.docx) { // Word (docx) document let image = UIImage(systemName: "doc.fill") completionHandler(image) - } else if ObvUTIUtils.uti(uti, conformsTo: kUTTypeArchive) { + } else if contentType.conforms(to: .archive) { // Zip archive let image = UIImage(systemName: "rectangle.compress.vertical") completionHandler(image) - } else if ObvUTIUtils.uti(uti, conformsTo: kUTTypeWebArchive) { + } else if contentType.conforms(to: .webArchive) { // Web archive let image = UIImage(systemName: "archivebox.fill") completionHandler(image) @@ -239,7 +240,7 @@ final class ThumbnailManager { completionHandler(image) } } - + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/NotificationSoundPlayer.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/NotificationSoundPlayer.swift index 5a01ee02..b6925af1 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/NotificationSoundPlayer.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/NotificationSoundPlayer.swift @@ -18,7 +18,7 @@ */ import Foundation -import ObvUICoreData +import ObvSettings @MainActor diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/ObvUserNotificationIdentifier.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/ObvUserNotificationIdentifier.swift index 63f22cac..0002336b 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/ObvUserNotificationIdentifier.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/ObvUserNotificationIdentifier.swift @@ -35,8 +35,6 @@ enum ObvUserNotificationID: Int { case mutualTrustConfirmed case acceptMediatorInvite case acceptGroupInvite - case autoconfirmedContactIntroduction - case increaseMediatorTrustLevelRequired case oneToOneInvitationReceived case missedCall case shouldGrantRecordPermissionToReceiveIncomingCalls @@ -68,8 +66,6 @@ enum ObvUserNotificationIdentifier { case mutualTrustConfirmed(persistedInvitationUUID: UUID) case acceptMediatorInvite(persistedInvitationUUID: UUID) case acceptGroupInvite(persistedInvitationUUID: UUID) - case autoconfirmedContactIntroduction(persistedInvitationUUID: UUID) - case increaseMediatorTrustLevelRequired(persistedInvitationUUID: UUID) case oneToOneInvitationReceived(persistedInvitationUUID: UUID) case missedCall(callUUID: UUID) // When a called was missed because of record permission is either denied or undetermined @@ -95,10 +91,6 @@ enum ObvUserNotificationIdentifier { return "acceptMediatorInvite_\(uuid.uuidString)" case .acceptGroupInvite(persistedInvitationUUID: let uuid): return "acceptGroupInvite_\(uuid.uuidString)" - case .autoconfirmedContactIntroduction(persistedInvitationUUID: let uuid): - return "autoconfirmedContactIntroduction_\(uuid.uuidString)" - case .increaseMediatorTrustLevelRequired(persistedInvitationUUID: let uuid): - return "increaseMediatorTrustLevelRequired_\(uuid.uuidString)" case .missedCall(callUUID: let uuid): return "missedCall_\(uuid.uuidString)" case .newReaction(messagePermanentID: let messagePermanentID, contactPermanentId: let contactPermanentId): @@ -125,8 +117,6 @@ enum ObvUserNotificationIdentifier { case .mutualTrustConfirmed: return .mutualTrustConfirmed case .acceptMediatorInvite: return .acceptMediatorInvite case .acceptGroupInvite: return .acceptGroupInvite - case .autoconfirmedContactIntroduction: return .autoconfirmedContactIntroduction - case .increaseMediatorTrustLevelRequired: return .increaseMediatorTrustLevelRequired case .missedCall: return .missedCall case .oneToOneInvitationReceived: return .oneToOneInvitationReceived case .shouldGrantRecordPermissionToReceiveIncomingCalls: return .shouldGrantRecordPermissionToReceiveIncomingCalls @@ -138,7 +128,7 @@ enum ObvUserNotificationIdentifier { switch self { case .newMessage, .newMessageNotificationWithHiddenContent: return "MessageThread" - case .acceptInvite, .sasExchange, .mutualTrustConfirmed, .acceptMediatorInvite, .acceptGroupInvite, .autoconfirmedContactIntroduction, .increaseMediatorTrustLevelRequired, .oneToOneInvitationReceived: + case .acceptInvite, .sasExchange, .mutualTrustConfirmed, .acceptMediatorInvite, .acceptGroupInvite, .oneToOneInvitationReceived: return "InvitationThread" case .missedCall, .shouldGrantRecordPermissionToReceiveIncomingCalls: return "CallThread" @@ -163,7 +153,7 @@ enum ObvUserNotificationIdentifier { return .missedCallCategory case .newReaction, .newReactionNotificationWithHiddenContent: return .newReactionCategory - case .sasExchange, .mutualTrustConfirmed, .autoconfirmedContactIntroduction, .increaseMediatorTrustLevelRequired, .staticIdentifier: + case .sasExchange, .mutualTrustConfirmed, .staticIdentifier: return nil } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/OptionalNotificationSound.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/OptionalNotificationSound.swift index 5ed51d51..dc0fb772 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/OptionalNotificationSound.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/OptionalNotificationSound.swift @@ -18,7 +18,7 @@ */ import Foundation -import ObvUICoreData +import ObvSettings enum OptionalNotificationSound: Identifiable, Hashable { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationAction.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationAction.swift index 011a7eed..db2780cb 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationAction.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationAction.swift @@ -91,12 +91,8 @@ extension UserNotificationAction { extension UNNotificationAction { convenience init(identifier: String, title: String, options: UNNotificationActionOptions = [], icon: SystemIcon) { - if #available(iOS 15.0, *) { - let actionIcon = UNNotificationActionIcon(systemImageName: icon.systemName) - self.init(identifier: identifier, title: title, options: options, icon: actionIcon) - } else { - self.init(identifier: identifier, title: title, options: options) - } + let actionIcon = UNNotificationActionIcon(systemImageName: icon.systemName) + self.init(identifier: identifier, title: title, options: options, icon: actionIcon) } } @@ -104,11 +100,7 @@ extension UNNotificationAction { extension UNTextInputNotificationAction { convenience init(identifier: String, title: String, options: UNNotificationActionOptions = [], icon: SystemIcon, textInputButtonTitle: String, textInputPlaceholder: String) { - if #available(iOS 15.0, *) { - let actionIcon = UNNotificationActionIcon(systemImageName: icon.systemName) - self.init(identifier: identifier, title: title, options: options, icon: actionIcon, textInputButtonTitle: textInputButtonTitle, textInputPlaceholder: textInputPlaceholder) - } else { - self.init(identifier: identifier, title: title, options: options, textInputButtonTitle: textInputButtonTitle, textInputPlaceholder: textInputPlaceholder) - } + let actionIcon = UNNotificationActionIcon(systemImageName: icon.systemName) + self.init(identifier: identifier, title: title, options: options, icon: actionIcon, textInputButtonTitle: textInputButtonTitle, textInputPlaceholder: textInputPlaceholder) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationCenterDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationCenterDelegate.swift index 65c668c1..93a8cafb 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationCenterDelegate.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationCenterDelegate.swift @@ -90,7 +90,7 @@ extension UserNotificationCenterDelegate { guard let rawId = notification.request.content.userInfo[UserNotificationKeys.id] as? Int, let id = ObvUserNotificationID(rawValue: rawId) else { assertionFailure() - return .alert + return [.list, .banner] } // If we reach this point, we know we are initialized and active. We decide what to show depending on the current activity of the user. @@ -99,23 +99,23 @@ extension UserNotificationCenterDelegate { switch id { case .newReactionNotificationWithHiddenContent, .newReaction: // Always show reaction notification even if it is a reaction for the current discussion. - return .alert + return [.list, .banner] case .newMessageNotificationWithHiddenContent, .newMessage, .missedCall: // The current activity type is `continueDiscussion`. We check whether the notification concerns the current "single discussion". If this is the case, we do not display the notification, otherwise, we do. guard let persistedDiscussionPermanentIDDescription = notification.request.content.userInfo[UserNotificationKeys.persistedDiscussionPermanentIDDescription] as? String, let expectedEntityName = PersistedDiscussion.entity().name, let notificationPersistedDiscussionPermanentID = ObvManagedObjectPermanentID(persistedDiscussionPermanentIDDescription, expectedEntityName: expectedEntityName) else { assertionFailure() - return .alert + return [.list, .banner] } if notificationPersistedDiscussionPermanentID == currentDiscussionPermanentID { return [] } else { - return .alert + return [.list, .banner] } - case .acceptInvite, .sasExchange, .mutualTrustConfirmed, .acceptMediatorInvite, .acceptGroupInvite, .autoconfirmedContactIntroduction, .increaseMediatorTrustLevelRequired, .oneToOneInvitationReceived, .shouldGrantRecordPermissionToReceiveIncomingCalls: - return .alert + case .acceptInvite, .sasExchange, .mutualTrustConfirmed, .acceptMediatorInvite, .acceptGroupInvite, .oneToOneInvitationReceived, .shouldGrantRecordPermissionToReceiveIncomingCalls: + return [.list, .banner] case .staticIdentifier: assertionFailure() return [] @@ -131,8 +131,8 @@ extension UserNotificationCenterDelegate { requestIdentifiersThatPlayedSound.insert(notification.request.identifier) return .sound } - case .newReactionNotificationWithHiddenContent, .newReaction, .acceptInvite, .sasExchange, .mutualTrustConfirmed, .acceptMediatorInvite, .acceptGroupInvite, .autoconfirmedContactIntroduction, .increaseMediatorTrustLevelRequired, .missedCall, .oneToOneInvitationReceived, .staticIdentifier, .shouldGrantRecordPermissionToReceiveIncomingCalls: - return .alert + case .newReactionNotificationWithHiddenContent, .newReaction, .acceptInvite, .sasExchange, .mutualTrustConfirmed, .acceptMediatorInvite, .acceptGroupInvite, .missedCall, .oneToOneInvitationReceived, .staticIdentifier, .shouldGrantRecordPermissionToReceiveIncomingCalls: + return [.list, .banner] } case .displayInvitations: /* The user is currently looking at the invitiation tab. @@ -141,7 +141,7 @@ extension UserNotificationCenterDelegate { * or if it concerned a sas exchange or a mutual trust confirmation. * Now, we always show it */ - return .alert + return [.list, .banner] case .other, .displaySingleContact, .displayContacts, @@ -149,7 +149,7 @@ extension UserNotificationCenterDelegate { .displaySingleGroup, .displaySettings, .unknown: - return .alert + return [.list, .banner] } } @@ -265,10 +265,10 @@ extension UserNotificationCenterDelegate { @MainActor private func handleCallBackAction(callUUID: UUID) async throws { guard let item = try PersistedCallLogItem.get(callUUID: callUUID, within: ObvStack.shared.viewContext) else { assertionFailure(); return } - let contacts = item.logContacts.compactMap { $0.contactIdentity?.typedObjectID } - ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo( - contactIDs: contacts, - groupId: try? item.getGroupIdentifier()) + let contactCryptoIds = item.logContacts.compactMap { $0.contactIdentity?.cryptoId } + guard let ownedCryptoId = item.ownedCryptoId else { return } + let groupId = item.groupIdentifier + ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(ownedCryptoId: ownedCryptoId, contactCryptoIds: Set(contactCryptoIds), groupId: groupId) .postOnDispatchQueue() } @@ -305,37 +305,27 @@ extension UserNotificationCenterDelegate { var localDialog = obvDialog try localDialog.setResponseToAcceptInvite(acceptInvite: acceptInvite) let dialogForResponse = localDialog - DispatchQueue(label: "Background queue for responding to a dialog").async { - obvEngine.respondTo(dialogForResponse) - } + try await obvEngine.respondTo(dialogForResponse) case .acceptMediatorInvite: var localDialog = obvDialog try localDialog.setResponseToAcceptMediatorInvite(acceptInvite: acceptInvite) let dialogForResponse = localDialog - DispatchQueue(label: "Background queue for responding to a dialog").async { - obvEngine.respondTo(dialogForResponse) - } + try await obvEngine.respondTo(dialogForResponse) case .acceptGroupInvite: var localDialog = obvDialog try localDialog.setResponseToAcceptGroupInvite(acceptInvite: acceptInvite) let dialogForResponse = localDialog - DispatchQueue(label: "Background queue for responding to a dialog").async { - obvEngine.respondTo(dialogForResponse) - } + try await obvEngine.respondTo(dialogForResponse) case .acceptGroupV2Invite: var localDialog = obvDialog try localDialog.setResponseToAcceptGroupV2Invite(acceptInvite: acceptInvite) let dialogForResponse = localDialog - DispatchQueue(label: "Background queue for responding to a dialog").async { - obvEngine.respondTo(dialogForResponse) - } + try await obvEngine.respondTo(dialogForResponse) case .oneToOneInvitationReceived: var localDialog = obvDialog try localDialog.setResponseToOneToOneInvitationReceived(invitationAccepted: acceptInvite) let dialogForResponse = localDialog - DispatchQueue(label: "Background queue for responding to a dialog").async { - obvEngine.respondTo(dialogForResponse) - } + try await obvEngine.respondTo(dialogForResponse) default: assertionFailure() return diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationCreator.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationCreator.swift index 43625a7a..a9a8413a 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationCreator.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationCreator.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,6 +26,7 @@ import os.log import MobileCoreServices import ObvTypes import ObvUICoreData +import ObvSettings struct UserNotificationKeys { @@ -51,18 +52,14 @@ struct UserNotificationCreator { let ownedCryptoId: ObvCryptoId let discussionPermanentID: ObvManagedObjectPermanentID let contactCustomOrFullDisplayName: String - let receivedMessageIntentInfos: ReceivedMessageIntentInfos? // Only used for iOS14+ + let receivedMessageIntentInfos: ReceivedMessageIntentInfos let discussionNotificationSound: NotificationSound? init(contact: PersistedObvContactIdentity.Structure, discussionKind: PersistedDiscussion.StructureKind, urlForStoringPNGThumbnail: URL?) { self.ownedCryptoId = contact.ownedIdentity.cryptoId self.discussionPermanentID = discussionKind.discussionPermanentID self.contactCustomOrFullDisplayName = contact.customOrFullDisplayName - if #available(iOS 14.0, *) { - receivedMessageIntentInfos = ReceivedMessageIntentInfos.init(contact: contact, discussionKind: discussionKind, urlForStoringPNGThumbnail: urlForStoringPNGThumbnail) - } else { - receivedMessageIntentInfos = nil - } + receivedMessageIntentInfos = ReceivedMessageIntentInfos.init(contact: contact, discussionKind: discussionKind, urlForStoringPNGThumbnail: urlForStoringPNGThumbnail) discussionNotificationSound = discussionKind.localConfiguration.notificationSound } @@ -97,11 +94,7 @@ struct UserNotificationCreator { notificationContent.userInfo[UserNotificationKeys.persistedDiscussionPermanentIDDescription] = infos.discussionPermanentID.description notificationContent.userInfo[UserNotificationKeys.callUUID] = callUUID.uuidString - if #available(iOS 14.0, *) { - if let receivedMessageIntentInfos = infos.receivedMessageIntentInfos { - sendMessageIntent = IntentManager.getSendMessageIntentForMessageReceived(infos: receivedMessageIntentInfos, showGroupName: true) - } - } + sendMessageIntent = IntentManager.getSendMessageIntentForMessageReceived(infos: infos.receivedMessageIntentInfos, showGroupName: true) setNotificationSound(discussionNotificationSound: infos.discussionNotificationSound, notificationContent: notificationContent) @@ -125,8 +118,7 @@ struct UserNotificationCreator { setThreadAndCategory(notificationId: notificationId, notificationContent: notificationContent) - if #available(iOS 15.0, *), - let sendMessageIntent = sendMessageIntent, + if let sendMessageIntent = sendMessageIntent, let updatedNotificationContent = try? notificationContent.updating(from: sendMessageIntent) { return (notificationId, updatedNotificationContent) } else { @@ -189,7 +181,7 @@ struct UserNotificationCreator { let groupDiscussionTitle: String? let discussionNotificationSound: NotificationSound? public let isEphemeralMessageWithUserAction: Bool - let receivedMessageIntentInfos: ReceivedMessageIntentInfos? // Only used for iOS14+ + let receivedMessageIntentInfos: ReceivedMessageIntentInfos let attachmentLocation: NotificationAttachmentLocation let attachmentsCount: Int let attachementImages: [NotificationAttachmentImage]? @@ -213,11 +205,7 @@ struct UserNotificationCreator { } self.discussionNotificationSound = messageReceived.discussionKind.localConfiguration.notificationSound self.isEphemeralMessageWithUserAction = messageReceived.isReplyToAnotherMessage - if #available(iOS 14.0, *) { - self.receivedMessageIntentInfos = ReceivedMessageIntentInfos(messageReceived: messageReceived, urlForStoringPNGThumbnail: urlForStoringPNGThumbnail) - } else { - self.receivedMessageIntentInfos = nil - } + self.receivedMessageIntentInfos = ReceivedMessageIntentInfos(messageReceived: messageReceived, urlForStoringPNGThumbnail: urlForStoringPNGThumbnail) self.attachmentLocation = attachmentLocation self.attachmentsCount = messageReceived.attachmentsCount self.attachementImages = messageReceived.attachementImages @@ -248,11 +236,7 @@ struct UserNotificationCreator { } self.discussionNotificationSound = discussionKind.localConfiguration.notificationSound self.isEphemeralMessageWithUserAction = isEphemeralMessageWithUserAction - if #available(iOS 14.0, *) { - self.receivedMessageIntentInfos = ReceivedMessageIntentInfos(contact: contact, discussionKind: discussionKind, urlForStoringPNGThumbnail: urlForStoringPNGThumbnail) - } else { - self.receivedMessageIntentInfos = nil - } + self.receivedMessageIntentInfos = ReceivedMessageIntentInfos(contact: contact, discussionKind: discussionKind, urlForStoringPNGThumbnail: urlForStoringPNGThumbnail) self.attachmentLocation = attachmentLocation self.attachmentsCount = attachmentsCount self.attachementImages = attachementImages @@ -313,11 +297,7 @@ struct UserNotificationCreator { notificationContent.userInfo[UserNotificationKeys.persistedContactPermanentIDDescription] = infos.contactPermanentID.description notificationContent.userInfo[UserNotificationKeys.messageIdentifierFromEngine] = infos.messageIdentifierFromEngine.hexString() - if #available(iOS 14.0, *) { - if let receivedMessageIntentInfos = infos.receivedMessageIntentInfos { - incomingMessageIntent = IntentManager.getSendMessageIntentForMessageReceived(infos: receivedMessageIntentInfos, showGroupName: true) - } - } + incomingMessageIntent = IntentManager.getSendMessageIntentForMessageReceived(infos: infos.receivedMessageIntentInfos, showGroupName: true) setNotificationSound(discussionNotificationSound: infos.discussionNotificationSound, notificationContent: notificationContent) @@ -348,8 +328,7 @@ struct UserNotificationCreator { setThreadAndCategory(notificationId: notificationId, notificationContent: notificationContent) - if #available(iOS 15.0, *), - let incomingMessageIntent = incomingMessageIntent, + if let incomingMessageIntent = incomingMessageIntent, let updatedNotificationContent = try? notificationContent.updating(from: incomingMessageIntent) { return (notificationId, updatedNotificationContent) } else { @@ -395,16 +374,6 @@ struct UserNotificationCreator { let contactDisplayName = contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full) notificationContent.title = Strings.AcceptGroupInvite.title notificationContent.body = Strings.AcceptGroupInvite.body(contactDisplayName) - case .autoconfirmedContactIntroduction(contactIdentity: let contactIdentity, mediatorIdentity: let mediatorIdentity): - let contactDisplayName = contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full) - let mediatorDisplayName = mediatorIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full) - notificationContent.title = Strings.AutoconfirmedContactIntroduction.title - notificationContent.body = Strings.AutoconfirmedContactIntroduction.body(mediatorDisplayName, contactDisplayName) - case .increaseMediatorTrustLevelRequired(contactIdentity: let contactIdentity, mediatorIdentity: let mediatorIdentity): - let contactDisplayName = contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full) - let mediatorDisplayName = mediatorIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full) - notificationContent.title = Strings.IncreaseMediatorTrustLevelRequired.title - notificationContent.body = Strings.IncreaseMediatorTrustLevelRequired.body(mediatorDisplayName, contactDisplayName) case .oneToOneInvitationReceived(contactIdentity: let contactIdentity): let contactDisplayName = contactIdentity.currentIdentityDetails.coreDetails.getDisplayNameWithStyle(.full) notificationContent.title = Strings.AcceptOneToOneInvite.title @@ -425,7 +394,7 @@ struct UserNotificationCreator { .sasConfirmed, .mediatorInviteAccepted, .oneToOneInvitationSent, - .increaseGroupOwnerTrustLevelRequired, + .syncRequestReceivedFromOtherOwnedDevice, .freezeGroupV2Invite: // For now, we do not notify when receiving these dialogs return nil @@ -476,10 +445,6 @@ struct UserNotificationCreator { case .acceptGroupInvite: notificationId = ObvUserNotificationIdentifier.acceptGroupInvite(persistedInvitationUUID: persistedInvitationUUID) notificationContent.userInfo[UserNotificationKeys.persistedInvitationUUID] = persistedInvitationUUID.uuidString - case .autoconfirmedContactIntroduction: - notificationId = ObvUserNotificationIdentifier.autoconfirmedContactIntroduction(persistedInvitationUUID: persistedInvitationUUID) - case .increaseMediatorTrustLevelRequired: - notificationId = ObvUserNotificationIdentifier.increaseMediatorTrustLevelRequired(persistedInvitationUUID: persistedInvitationUUID) case .oneToOneInvitationReceived: notificationId = ObvUserNotificationIdentifier.oneToOneInvitationReceived(persistedInvitationUUID: persistedInvitationUUID) notificationContent.userInfo[UserNotificationKeys.persistedInvitationUUID] = persistedInvitationUUID.uuidString @@ -491,7 +456,7 @@ struct UserNotificationCreator { .sasConfirmed, .mediatorInviteAccepted, .oneToOneInvitationSent, - .increaseGroupOwnerTrustLevelRequired, + .syncRequestReceivedFromOtherOwnedDevice, .freezeGroupV2Invite: // For now, we do not notify when receiving these dialogs return nil @@ -560,7 +525,7 @@ struct UserNotificationCreator { let discussionNotificationSound: NotificationSound? let isEphemeralPersistedMessageSentWithLimitedVisibility: Bool let messageTextBody: String? - let receivedMessageIntentInfos: ReceivedMessageIntentInfos? // Only used for iOS14+ + let receivedMessageIntentInfos: ReceivedMessageIntentInfos init(messageSent: PersistedMessageSent.Structure, contact: PersistedObvContactIdentity.Structure, urlForStoringPNGThumbnail: URL?) { let discussionKind = messageSent.discussionKind @@ -572,11 +537,7 @@ struct UserNotificationCreator { self.discussionNotificationSound = discussionKind.localConfiguration.notificationSound self.isEphemeralPersistedMessageSentWithLimitedVisibility = messageSent.isEphemeralMessageWithLimitedVisibility self.messageTextBody = messageSent.textBody - if #available(iOS 14.0, *) { - self.receivedMessageIntentInfos = ReceivedMessageIntentInfos(contact: contact, discussionKind: discussionKind, urlForStoringPNGThumbnail: urlForStoringPNGThumbnail) - } else { - self.receivedMessageIntentInfos = nil - } + self.receivedMessageIntentInfos = ReceivedMessageIntentInfos(contact: contact, discussionKind: discussionKind, urlForStoringPNGThumbnail: urlForStoringPNGThumbnail) } } @@ -607,12 +568,7 @@ struct UserNotificationCreator { notificationContent.body = String.localizedStringWithFormat(NSLocalizedString("MESSAGE_REACTION_NOTIFICATION_%@", comment: ""), emoji) } - if #available(iOS 14.0, *), let receivedMessageIntentInfos = infos.receivedMessageIntentInfos { - sendMessageIntent = IntentManager.getSendMessageIntentForMessageReceived(infos: receivedMessageIntentInfos, showGroupName: false) - } else { - notificationContent.title = infos.contactCustomOrFullDisplayName - notificationContent.subtitle = "" - } + sendMessageIntent = IntentManager.getSendMessageIntentForMessageReceived(infos: infos.receivedMessageIntentInfos, showGroupName: false) let deepLink = ObvDeepLink.message(ownedCryptoId: infos.ownedCryptoId, objectPermanentID: infos.messagePermanentID.downcast) notificationContent.userInfo[UserNotificationKeys.deepLinkDescription] = deepLink.description @@ -641,8 +597,7 @@ struct UserNotificationCreator { setThreadAndCategory(notificationId: notificationId, notificationContent: notificationContent) - if #available(iOS 15.0, *), - let sendMessageIntent = sendMessageIntent, + if let sendMessageIntent = sendMessageIntent, let updatedNotificationContent = try? notificationContent.updating(from: sendMessageIntent) { return (notificationId, updatedNotificationContent) } else { @@ -734,11 +689,7 @@ struct UserNotificationCreator { url.appendPathComponent(location) url.appendPathComponent(quality) url.appendPathComponent(String(attachmentNumber)) - if #available(iOS 14.0, *) { - url.appendPathExtension(for: .jpeg) - } else { - url.appendPathExtension("jpeg") - } + url.appendPathExtension(for: .jpeg) return url } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationsManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationsManager.swift index c217f758..e612b639 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationsManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationsManager.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,6 +25,8 @@ import ObvTypes import CoreData import AVFAudio import ObvUICoreData +import ObvSettings + final class UserNotificationsManager: NSObject { @@ -145,13 +147,13 @@ extension UserNotificationsManager { let discussion: PersistedDiscussion? switch groupId { - case .groupV1(let objectID): - guard let contactGroup = try? PersistedContactGroup.get(objectID: objectID.objectID, within: context) else { return } + case .groupV1(groupV1Identifier: let groupV1Identifier): + guard let contactGroup = try? PersistedContactGroup.getContactGroup(groupIdentifier: groupV1Identifier, ownedCryptoId: ownedCryptoId, within: context) else { return } discussion = contactGroup.discussion - case .groupV2(let objectID): - guard let group = try? PersistedGroupV2.get(objectID: objectID, within: context) else { return } + case .groupV2(groupV2Identifier:let groupV2Identifier): + guard let group = try? PersistedGroupV2.get(ownIdentity: ownedCryptoId, appGroupIdentifier: groupV2Identifier, within: context) else { return } discussion = group.discussion - case .none: + case nil: discussion = contactIdentity.oneToOneDiscussion } guard let discussion = discussion, discussion.status == .active else { return } @@ -195,7 +197,7 @@ extension UserNotificationsManager { @unknown default: break } - case .acceptedOutgoingCall, .acceptedIncomingCall, .rejectedOutgoingCall, .rejectedIncomingCall, .busyOutgoingCall, .unansweredOutgoingCall, .uncompletedOutgoingCall, .newParticipantInIncomingCall, .newParticipantInOutgoingCall: + case .acceptedOutgoingCall, .acceptedIncomingCall, .rejectedOutgoingCall, .rejectedIncomingCall, .busyOutgoingCall, .unansweredOutgoingCall, .uncompletedOutgoingCall, .newParticipantInIncomingCall, .newParticipantInOutgoingCall, .answeredOrRejectedOnOtherDevice, .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse: // Do nothing break } @@ -234,7 +236,7 @@ extension UserNotificationsManager { ObvStack.shared.performBackgroundTask { (context) in let notificationCenter = UNUserNotificationCenter.current() guard let messageReceived = try? PersistedMessageReceived.get(with: persistedMessageReceivedObjectID, within: context) as? PersistedMessageReceived else { assertionFailure(); return } - let discussion = messageReceived.discussion + guard let discussion = messageReceived.discussion else { assertionFailure(); return } do { let notificationId = ObvUserNotificationIdentifier.newMessage(messageIdentifierFromEngine: messageReceived.messageIdentifierFromEngine) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationsScheduler.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationsScheduler.swift index 9d6d6d35..227795c3 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationsScheduler.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/UserNotificationManager/UserNotificationsScheduler.swift @@ -21,6 +21,7 @@ import Foundation import UserNotifications import os.log import ObvUICoreData +import ObvSettings final class UserNotificationsScheduler { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Managers/WebSocketManager/WebSocketManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Managers/WebSocketManager/WebSocketManager.swift index dd1bffd9..6c5cd3bb 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Managers/WebSocketManager/WebSocketManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Managers/WebSocketManager/WebSocketManager.swift @@ -75,14 +75,14 @@ actor WebSocketManager { Task { [weak self] in await self?.setiOSLifecycleStateRequiresWebSocket(to: true) } }, NotificationCenter.default.addObserver(forName: didEnterBackgroundNotification, object: nil, queue: nil) { _ in - os_log("🧦 didEnterBackgroundNotification", log: Self.log, type: .info) + os_log("didEnterBackgroundNotification", log: Self.log, type: .info) Task { [weak self] in await self?.setiOSLifecycleStateRequiresWebSocket(to: false) } }, NotificationCenter.default.addObserver(forName: willTerminateNotification, object: nil, queue: nil) { _ in os_log("🧦 willTerminateNotification", log: Self.log, type: .info) Task { [weak self] in await self?.setiOSLifecycleStateRequiresWebSocket(to: false) } }, - VoIPNotification.observeNewIncomingCall { incomingCall in + VoIPNotification.observeNewCallToShow { _ in os_log("🧦 observeNewIncomingCall", log: Self.log, type: .info) Task { [weak self] in await self?.setAnIncomingCallRequiresWebSocket(to: true) } }, @@ -136,7 +136,7 @@ actor WebSocketManager { private func disconnectWebsockets() async { assert(!Thread.isMainThread) - os_log("🧦🏁☎️🏓 Will request the engine to disconnect websockets", log: Self.log, type: .info) + os_log("🏁☎️🏓 Will request the engine to disconnect websockets", log: Self.log, type: .info) do { try await obvEngine.disconnectWebsockets() } catch { diff --git a/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/BadConfiguration/BadConfigurationViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/BadConfiguration/BadConfigurationViewController.swift index 694f29a2..d18bd567 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/BadConfiguration/BadConfigurationViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/BadConfiguration/BadConfigurationViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + class BadConfigurationViewController: UIViewController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/InitializationFailure/InitializationFailureViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/InitializationFailure/InitializationFailureViewController.swift index bc41c4c4..5067721e 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/InitializationFailure/InitializationFailureViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/InitializationFailure/InitializationFailureViewController.swift @@ -42,6 +42,8 @@ class InitializationFailureViewController: UIViewController { } } + override var canBecomeFirstResponder: Bool { true } + private var errorMessage: String? { guard let error = self.error else { return nil } let exactModel = UIDevice.current.exactModel diff --git a/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/OwnedIdentityIsNotActive/OwnedIdentityIsNotActiveViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/OwnedIdentityIsNotActive/OwnedIdentityIsNotActiveViewController.swift deleted file mode 100644 index 8021284f..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/OwnedIdentityIsNotActive/OwnedIdentityIsNotActiveViewController.swift +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUICoreData -import UIKit - - -class OwnedIdentityIsNotActiveViewController: UIViewController { - - @IBOutlet weak var explanationBodyLabel: UILabel! - @IBOutlet weak var whatToDoLabel: UILabel! - @IBOutlet weak var whatToDoBodyLabel: UILabel! - @IBOutlet weak var reactivateButton: UIButton! - - private var notificationTokens = [NSObjectProtocol]() - - deinit { - notificationTokens.forEach { NotificationCenter.default.removeObserver($0) } - } - - override func viewDidLoad() { - super.viewDidLoad() - self.navigationController?.navigationBar.prefersLargeTitles = true - self.title = Strings.title - let closeButton = UIBarButtonItem.forClosing(target: self, action: #selector(dismissPresentedViewController)) - self.navigationItem.setLeftBarButton(closeButton, animated: false) - - explanationBodyLabel.text = Strings.explanationBody - whatToDoLabel.text = Strings.whatToDo - whatToDoBodyLabel.text = Strings.whatToDoBody - reactivateButton.setTitle(Strings.reactivateIdentity, for: .normal) - - // Always dismiss this view controller if the identity is reactivated - notificationTokens.append(ObvMessengerCoreDataNotification.observeOwnedIdentityWasReactivated(queue: OperationQueue.main, block: { [weak self] (_) in - self?.dismissPresentedViewController() - })) - - } - - @objc private func dismissPresentedViewController() { - self.navigationController?.dismiss(animated: true) - } - - @IBAction func reactivateButtonTapped(_ sender: Any) { - Task { - await ObvPushNotificationManager.shared.doKickOtherDevicesOnNextRegister() - await ObvPushNotificationManager.shared.tryToRegisterToPushNotifications() - } - } - -} - - -// MARK: Localized Strings - -extension OwnedIdentityIsNotActiveViewController { - - private struct Strings { - static let title = NSLocalizedString("Oups...", comment: "Title displayed on the VC shown when an owned identity is deactivated") - static let explanationBody = NSLocalizedString("Your identity is deactivated on this device since it is active on another device. This tipically happens when you restore a backup on a device: this deactivates your previous device.", comment: "Explanation shown on the VC shown when an owned identity is deactivated") - static let whatToDo = NSLocalizedString("What can I do?", comment: "Subtitle shown on the VC shown when an owned identity is deactivated") - static let whatToDoBody = NSLocalizedString("You can still access your old discussions on this device, but you cannot send nor receive new messages. If you want to do so, you can tap on Reactivate this device. Please note that this will deactivate your other device.", comment: "Body text shown on the VC shown when an owned identity is deactivated") - static let reactivateIdentity = NSLocalizedString("Reactivate my identity on this device", comment: "Button title") - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/OwnedIdentityIsNotActive/OwnedIdentityIsNotActiveViewController.xib b/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/OwnedIdentityIsNotActive/OwnedIdentityIsNotActiveViewController.xib deleted file mode 100644 index 779e0853..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/ModalViewControllers/OwnedIdentityIsNotActive/OwnedIdentityIsNotActiveViewController.xib +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Notifications/HardLinksToFylesNotifications.yml b/iOSClient/ObvMessenger/ObvMessenger/Notifications/HardLinksToFylesNotifications.yml deleted file mode 100644 index 3760fb1f..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Notifications/HardLinksToFylesNotifications.yml +++ /dev/null @@ -1,12 +0,0 @@ -import: - - Foundation - - ObvUICoreData -notifications: -- name: requestHardLinkToFyle - params: - - {name: fyleElement, type: FyleElement} - - {name: completionHandler, type: "((Result) -> Void)", escaping: true} -- name: requestAllHardLinksToFyles - params: - - {name: fyleElements, type: [FyleElement]} - - {name: completionHandler, type: "(([HardLinkToFyle?]) -> Void)", escaping: true} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Notifications/MessengerInternalNotification.swift b/iOSClient/ObvMessenger/ObvMessenger/Notifications/MessengerInternalNotification.swift index 389fc77a..c15c0541 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Notifications/MessengerInternalNotification.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Notifications/MessengerInternalNotification.swift @@ -82,22 +82,22 @@ struct MessengerInternalNotification { static let name = NSNotification.Name("MessengerInternalNotification.UserTriedToAccessCameraButAccessIsDenied") } - // MARK: - UserWantsToDeleteOwnedContactGroup - - struct UserWantsToDeleteOwnedContactGroup { - static let name = NSNotification.Name("MessengerInternalNotification.UserWantsToDeleteOwnedContactGroup") - struct Key { - static let groupUid = "groupUid" - static let ownedCryptoId = "ownedCryptoId" - } - static func parse(_ notification: Notification) -> (groupUid: UID, ownedCryptoId: ObvCryptoId)? { - guard notification.name == name else { return nil } - guard let userInfo = notification.userInfo else { return nil } - guard let groupUid = userInfo[Key.groupUid] as? UID else { return nil } - guard let ownedCryptoId = userInfo[Key.ownedCryptoId] as? ObvCryptoId else { return nil } - return (groupUid, ownedCryptoId) - } - } +// // MARK: - UserWantsToDeleteOwnedContactGroup +// +// struct UserWantsToDeleteOwnedContactGroup { +// static let name = NSNotification.Name("MessengerInternalNotification.UserWantsToDeleteOwnedContactGroup") +// struct Key { +// static let groupUid = "groupUid" +// static let ownedCryptoId = "ownedCryptoId" +// } +// static func parse(_ notification: Notification) -> (groupUid: UID, ownedCryptoId: ObvCryptoId)? { +// guard notification.name == name else { return nil } +// guard let userInfo = notification.userInfo else { return nil } +// guard let groupUid = userInfo[Key.groupUid] as? UID else { return nil } +// guard let ownedCryptoId = userInfo[Key.ownedCryptoId] as? ObvCryptoId else { return nil } +// return (groupUid, ownedCryptoId) +// } +// } // MARK: - UserWantsToLeaveJoinedContactGroup diff --git a/iOSClient/ObvMessenger/ObvMessenger/Notifications/NewSingleDiscussionNotification.swift b/iOSClient/ObvMessenger/ObvMessenger/Notifications/NewSingleDiscussionNotification.swift index c0785bf7..d440f4e2 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Notifications/NewSingleDiscussionNotification.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Notifications/NewSingleDiscussionNotification.swift @@ -48,6 +48,8 @@ enum NewSingleDiscussionNotification { case userWantsToPauseDownloadReceivedFyleMessageJoinWithStatus(receivedJoinObjectID: TypeSafeManagedObjectID) case userWantsToDownloadReceivedFyleMessageJoinWithStatus(receivedJoinObjectID: TypeSafeManagedObjectID) case updatedSetOfCurrentlyDisplayedMessagesWithLimitedVisibility(discussionPermanentID: ObvManagedObjectPermanentID, messagePermanentIDs: Set>) + case userWantsToDownloadSentFyleMessageJoinWithStatusFromOtherOwnedDevice(sentJoinObjectID: TypeSafeManagedObjectID) + case userWantsToPauseSentFyleMessageJoinWithStatusFromOtherOwnedDevice(sentJoinObjectID: TypeSafeManagedObjectID) private enum Name { case userWantsToReadReceivedMessagesThatRequiresUserAction @@ -65,6 +67,8 @@ enum NewSingleDiscussionNotification { case userWantsToPauseDownloadReceivedFyleMessageJoinWithStatus case userWantsToDownloadReceivedFyleMessageJoinWithStatus case updatedSetOfCurrentlyDisplayedMessagesWithLimitedVisibility + case userWantsToDownloadSentFyleMessageJoinWithStatusFromOtherOwnedDevice + case userWantsToPauseSentFyleMessageJoinWithStatusFromOtherOwnedDevice private var namePrefix: String { String(describing: NewSingleDiscussionNotification.self) } @@ -92,6 +96,8 @@ enum NewSingleDiscussionNotification { case .userWantsToPauseDownloadReceivedFyleMessageJoinWithStatus: return Name.userWantsToPauseDownloadReceivedFyleMessageJoinWithStatus.name case .userWantsToDownloadReceivedFyleMessageJoinWithStatus: return Name.userWantsToDownloadReceivedFyleMessageJoinWithStatus.name case .updatedSetOfCurrentlyDisplayedMessagesWithLimitedVisibility: return Name.updatedSetOfCurrentlyDisplayedMessagesWithLimitedVisibility.name + case .userWantsToDownloadSentFyleMessageJoinWithStatusFromOtherOwnedDevice: return Name.userWantsToDownloadSentFyleMessageJoinWithStatusFromOtherOwnedDevice.name + case .userWantsToPauseSentFyleMessageJoinWithStatusFromOtherOwnedDevice: return Name.userWantsToPauseSentFyleMessageJoinWithStatusFromOtherOwnedDevice.name } } } @@ -171,6 +177,14 @@ enum NewSingleDiscussionNotification { "discussionPermanentID": discussionPermanentID, "messagePermanentIDs": messagePermanentIDs, ] + case .userWantsToDownloadSentFyleMessageJoinWithStatusFromOtherOwnedDevice(sentJoinObjectID: let sentJoinObjectID): + info = [ + "sentJoinObjectID": sentJoinObjectID, + ] + case .userWantsToPauseSentFyleMessageJoinWithStatusFromOtherOwnedDevice(sentJoinObjectID: let sentJoinObjectID): + info = [ + "sentJoinObjectID": sentJoinObjectID, + ] } return info } @@ -334,4 +348,20 @@ enum NewSingleDiscussionNotification { } } + static func observeUserWantsToDownloadSentFyleMessageJoinWithStatusFromOtherOwnedDevice(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (TypeSafeManagedObjectID) -> Void) -> NSObjectProtocol { + let name = Name.userWantsToDownloadSentFyleMessageJoinWithStatusFromOtherOwnedDevice.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let sentJoinObjectID = notification.userInfo!["sentJoinObjectID"] as! TypeSafeManagedObjectID + block(sentJoinObjectID) + } + } + + static func observeUserWantsToPauseSentFyleMessageJoinWithStatusFromOtherOwnedDevice(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (TypeSafeManagedObjectID) -> Void) -> NSObjectProtocol { + let name = Name.userWantsToPauseSentFyleMessageJoinWithStatusFromOtherOwnedDevice.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let sentJoinObjectID = notification.userInfo!["sentJoinObjectID"] as! TypeSafeManagedObjectID + block(sentJoinObjectID) + } + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Notifications/NewSingleDiscussionNotification.yml b/iOSClient/ObvMessenger/ObvMessenger/Notifications/NewSingleDiscussionNotification.yml deleted file mode 100644 index 6402fcfd..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Notifications/NewSingleDiscussionNotification.yml +++ /dev/null @@ -1,65 +0,0 @@ -import: - - Foundation - - CoreData - - PhotosUI - - ObvUICoreData -notifications: -- name: userWantsToReadReceivedMessagesThatRequiresUserAction - params: - - {name: persistedMessageObjectIDs, type: Set} -- name: userWantsToAddAttachmentsToDraft - params: - - {name: draftPermanentID, type: ObvManagedObjectPermanentID} - - {name: itemProviders, type: [NSItemProvider]} - - {name: completionHandler, type: (Bool) -> Void, escaping: true} -- name: userWantsToAddAttachmentsToDraftFromURLs - params: - - {name: draftPermanentID, type: ObvManagedObjectPermanentID} - - {name: urls, type: [URL]} - - {name: completionHandler, type: (Bool) -> Void, escaping: true} -- name: userWantsToDeleteAllAttachmentsToDraft - params: - - {name: draftObjectID, type: TypeSafeManagedObjectID} -- name: userWantsToReplyToMessage - params: - - {name: messageObjectID, type: TypeSafeManagedObjectID} - - {name: draftObjectID, type: TypeSafeManagedObjectID} -- name: userWantsToRemoveReplyToMessage - params: - - {name: draftObjectID, type: TypeSafeManagedObjectID} -- name: userWantsToSendDraft - params: - - {name: draftPermanentID, type: ObvManagedObjectPermanentID} - - {name: textBody, type: String} - - {name: mentions, type: Set} -- name: userWantsToSendDraftWithOneAttachment - params: - - {name: draftPermanentID, type: ObvManagedObjectPermanentID} - - {name: attachmentURL, type: URL} -- name: insertDiscussionIsEndToEndEncryptedSystemMessageIntoDiscussionIfEmpty - params: - - {name: discussionObjectID, type: TypeSafeManagedObjectID} - - {name: markAsRead, type: Bool} -- name: userWantsToUpdateDraftExpiration - params: - - {name: draftObjectID, type: TypeSafeManagedObjectID} - - {name: value, type: "PersistedDiscussionSharedConfigurationValue?"} -- name: userWantsToUpdateDraftBodyAndMentions - params: - - {name: draftObjectID, type: TypeSafeManagedObjectID} - - {name: body, type: String} - - {name: mentions, type: Set} -- name: draftCouldNotBeSent - params: - - {name: draftPermanentID, type: ObvManagedObjectPermanentID} -- name: userWantsToPauseDownloadReceivedFyleMessageJoinWithStatus - params: - - {name: receivedJoinObjectID, type: TypeSafeManagedObjectID} -- name: userWantsToDownloadReceivedFyleMessageJoinWithStatus - params: - - {name: receivedJoinObjectID, type: TypeSafeManagedObjectID} -- name: updatedSetOfCurrentlyDisplayedMessagesWithLimitedVisibility - params: - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} - - {name: messagePermanentIDs, type: Set>} - diff --git a/iOSClient/ObvMessenger/ObvMessenger/Notifications/ObvMessengerInternalNotification.swift b/iOSClient/ObvMessenger/ObvMessenger/Notifications/ObvMessengerInternalNotification.swift index cc52b78f..dec69d08 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Notifications/ObvMessengerInternalNotification.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Notifications/ObvMessengerInternalNotification.swift @@ -24,6 +24,7 @@ import ObvEngine import OlvidUtils import ObvCrypto import ObvUICoreData +import ObvSettings fileprivate struct OptionalWrapper { let value: T? @@ -36,18 +37,16 @@ fileprivate struct OptionalWrapper { } enum ObvMessengerInternalNotification { - case messagesAreNotNewAnymore(persistedMessageObjectIDs: Set>) + case messagesAreNotNewAnymore(ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier, messageIds: [MessageIdentifier]) case userWantsToRefreshContactGroupJoined(obvContactGroup: ObvContactGroup) case externalTransactionsWereMergedIntoViewContext case newMuteExpiration(expirationDate: Date) case wipeAllMessagesThatExpiredEarlierThanNow(launchedByBackgroundTask: Bool, completionHandler: (Bool) -> Void) - case userWantsToCallAndIsAllowedTo(contactIds: [OlvidUserId], ownedIdentityForRequestingTurnCredentials: ObvCryptoId, groupId: GroupIdentifierBasedOnObjectID?) - case userWantsToSelectAndCallContacts(contactIDs: [TypeSafeManagedObjectID], groupId: GroupIdentifierBasedOnObjectID?) - case userWantsToCallButWeShouldCheckSheIsAllowedTo(contactIDs: [TypeSafeManagedObjectID], groupId: GroupIdentifierBasedOnObjectID?) - case newWebRTCMessageWasReceived(webrtcMessage: WebRTCMessageJSON, contactId: OlvidUserId, messageUploadTimestampFromServer: Date, messageIdentifierFromEngine: Data) - case newObvMessageWasReceivedViaPushKitNotification(obvMessage: ObvMessage) - case newWebRTCMessageToSend(webrtcMessage: WebRTCMessageJSON, contactID: TypeSafeManagedObjectID, forStartingCall: Bool) - case isCallKitEnabledSettingDidChange + case userWantsToCallAndIsAllowedTo(ownedCryptoId: ObvCryptoId, contactCryptoIds: Set, ownedIdentityForRequestingTurnCredentials: ObvCryptoId, groupId: GroupIdentifier?) + case userWantsToSelectAndCallContacts(ownedCryptoId: ObvCryptoId, contactCryptoIds: Set, groupId: GroupIdentifier?) + case userWantsToCallButWeShouldCheckSheIsAllowedTo(ownedCryptoId: ObvCryptoId, contactCryptoIds: Set, groupId: GroupIdentifier?) + case newWebRTCMessageWasReceived(webrtcMessage: WebRTCMessageJSON, fromOlvidUser: OlvidUserId, messageUID: UID) + case newObvEncryptedPushNotificationWasReceivedViaPushKitNotification(encryptedNotification: ObvEncryptedPushNotification) case isIncludesCallsInRecentsEnabledSettingDidChange case networkInterfaceTypeChanged(isConnected: Bool) case outgoingCallFailedBecauseUserDeniedRecordPermission @@ -55,26 +54,24 @@ enum ObvMessengerInternalNotification { case rejectedIncomingCallBecauseUserDeniedRecordPermission case userRequestedDeletionOfPersistedMessage(ownedCryptoId: ObvCryptoId, persistedMessageObjectID: NSManagedObjectID, deletionType: DeletionType) case trashShouldBeEmptied - case userRequestedDeletionOfPersistedDiscussion(persistedDiscussionObjectID: NSManagedObjectID, deletionType: DeletionType, completionHandler: (Bool) -> Void) + case userRequestedDeletionOfPersistedDiscussion(ownedCryptoId: ObvCryptoId, discussionObjectID: TypeSafeManagedObjectID, deletionType: DeletionType, completionHandler: (Bool) -> Void) case newCallLogItem(objectID: TypeSafeManagedObjectID) case callLogItemWasUpdated(objectID: TypeSafeManagedObjectID) case userWantsToIntroduceContactToAnotherContact(ownedCryptoId: ObvCryptoId, firstContactCryptoId: ObvCryptoId, secondContactCryptoIds: Set) case userWantsToShareOwnPublishedDetails(ownedCryptoId: ObvCryptoId, sourceView: UIView) case userWantsToSendInvite(ownedIdentity: ObvOwnedIdentity, urlIdentity: ObvURLIdentity) - case userRequestedAPIKeyStatus(ownedCryptoId: ObvCryptoId, apiKey: UUID) - case userRequestedNewAPIKeyActivation(ownedCryptoId: ObvCryptoId, apiKey: UUID) case userWantsToNavigateToDeepLink(deepLink: ObvDeepLink) case useLoadBalancedTurnServersDidChange - case userWantsToReadReceivedMessagesThatRequiresUserAction(persistedMessageObjectIDs: Set>) + case userWantsToReadReceivedMessageThatRequiresUserAction(ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier, messageId: ReceivedMessageIdentifier) case requestThumbnail(fyleElement: FyleElement, size: CGSize, thumbnailType: ThumbnailType, completionHandler: ((Thumbnail) -> Void)) case userHasOpenedAReceivedAttachment(receivedFyleJoinID: TypeSafeManagedObjectID) - case userWantsToSetAndShareNewDiscussionSharedExpirationConfiguration(persistedDiscussionObjectID: NSManagedObjectID, expirationJSON: ExpirationJSON, ownedCryptoId: ObvCryptoId) + case userWantsToSetAndShareNewDiscussionSharedExpirationConfiguration(ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier, expirationJSON: ExpirationJSON) case userWantsToDeleteContact(contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId, viewController: UIViewController, completionHandler: ((Bool) -> Void)) case cleanExpiredMessagesBackgroundTaskWasLaunched(completionHandler: (Bool) -> Void) case applyRetentionPoliciesBackgroundTaskWasLaunched(completionHandler: (Bool) -> Void) case updateBadgeBackgroundTaskWasLaunched(completionHandler: (Bool) -> Void) case applyAllRetentionPoliciesNow(launchedByBackgroundTask: Bool, completionHandler: (Bool) -> Void) - case userWantsToSendEditedVersionOfSentMessage(sentMessageObjectID: NSManagedObjectID, newTextBody: String) + case userWantsToSendEditedVersionOfSentMessage(ownedCryptoId: ObvCryptoId, sentMessageObjectID: TypeSafeManagedObjectID, newTextBody: String) case newProfilePictureCandidateToCache(requestUUID: UUID, profilePicture: UIImage) case newCachedProfilePictureCandidate(requestUUID: UUID, url: URL) case newCustomContactPictureCandidateToSave(requestUUID: UUID, profilePicture: UIImage) @@ -82,15 +79,13 @@ enum ObvMessengerInternalNotification { case obvContactRequest(requestUUID: UUID, contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId) case obvContactAnswer(requestUUID: UUID, obvContact: ObvContactIdentity) case userWantsToMarkAllMessagesAsNotNewWithinDiscussion(persistedDiscussionObjectID: NSManagedObjectID, completionHandler: (Bool) -> Void) - case resyncContactIdentityDevicesWithEngine(contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId) - case resyncContactIdentityDetailsStatusWithEngine(contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId) + case resyncContactIdentityDevicesWithEngine(obvContactIdentifier: ObvContactIdentifier) case serverDoesNotSuppoortCall case pastedStringIsNotValidOlvidURL case userWantsToRestartChannelEstablishmentProtocol(contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId) - case userWantsToReCreateChannelEstablishmentProtocol(contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId) case contactIdentityDetailsWereUpdated(contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId) case userDidSeeNewDetailsOfContact(contactCryptoId: ObvCryptoId, ownedCryptoId: ObvCryptoId) - case userWantsToEditContactNicknameAndPicture(persistedContactObjectID: NSManagedObjectID, customDisplayName: String?, customPhotoURL: URL?) + case userWantsToEditContactNicknameAndPicture(persistedContactObjectID: NSManagedObjectID, customDisplayName: String?, customPhoto: UIImage?) case userWantsToBindOwnedIdentityToKeycloak(ownedCryptoId: ObvCryptoId, obvKeycloakState: ObvKeycloakState, keycloakUserId: String, completionHandler: (Bool) -> Void) case userWantsToUnbindOwnedIdentityFromKeycloak(ownedCryptoId: ObvCryptoId, completionHandler: (Bool) -> Void) case userWantsToRemoveDraftFyleJoin(draftFyleJoinObjectID: TypeSafeManagedObjectID) @@ -110,7 +105,7 @@ enum ObvMessengerInternalNotification { case UserDismissedSnackBarForLater(ownedCryptoId: ObvCryptoId, snackBarCategory: OlvidSnackBarCategory) case UserRequestedToResetAllAlerts case olvidSnackBarShouldBeHidden(ownedCryptoId: ObvCryptoId) - case userWantsToUpdateReaction(messageObjectID: TypeSafeManagedObjectID, emoji: String?) + case userWantsToUpdateReaction(ownedCryptoId: ObvCryptoId, messageObjectID: TypeSafeManagedObjectID, newEmoji: String?) case currentUserActivityDidChange(previousUserActivity: ObvUserActivityType, currentUserActivity: ObvUserActivityType) case displayedSnackBarShouldBeRefreshed case requestUserDeniedRecordPermissionAlert @@ -122,7 +117,7 @@ enum ObvMessengerInternalNotification { case installedOlvidAppIsOutdated(presentingViewController: UIViewController?) case userOwnedIdentityWasRevokedByKeycloak(ownedCryptoId: ObvCryptoId) case uiRequiresSignedContactDetails(ownedIdentityCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId, completion: (SignedObvKeycloakUserDetails?) -> Void) - case requestSyncAppDatabasesWithEngine(completion: (Result) -> Void) + case requestSyncAppDatabasesWithEngine(queuePriority: Operation.QueuePriority, completion: (Result) -> Void) case uiRequiresSignedOwnedDetails(ownedIdentityCryptoId: ObvCryptoId, completion: (SignedObvKeycloakUserDetails?) -> Void) case listMessagesOnServerBackgroundTaskWasLaunched(completionHandler: (Bool) -> Void) case userWantsToSendOneToOneInvitationToContact(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) @@ -140,16 +135,16 @@ enum ObvMessengerInternalNotification { case badgeForInvitationsHasBeenUpdated(ownedCryptoId: ObvCryptoId, newCount: Int) case requestRunningLog(completion: (RunningLogError) -> Void) case metaFlowControllerViewDidAppear - case userWantsToUpdateCustomNameAndGroupV2Photo(groupObjectID: TypeSafeManagedObjectID, customName: String?, customPhotoURL: URL?) + case userWantsToUpdateCustomNameAndGroupV2Photo(ownedCryptoId: ObvCryptoId, groupIdentifier: Data, customName: String?, customPhoto: UIImage?) case userHasSeenPublishedDetailsOfGroupV2(groupObjectID: TypeSafeManagedObjectID) case tooManyWrongPasscodeAttemptsCausedLockOut case backupForExportWasExported case backupForUploadWasUploaded case backupForUploadFailedToUpload - case userWantsToCreateNewOwnedIdentity + case userWantsToAddOwnedProfile case userWantsToSwitchToOtherOwnedIdentity(ownedCryptoId: ObvCryptoId) case userWantsToDeleteOwnedIdentityButHasNotConfirmedYet(ownedCryptoId: ObvCryptoId) - case userWantsToDeleteOwnedIdentityAndHasConfirmed(ownedCryptoId: ObvCryptoId, notifyContacts: Bool) + case userWantsToDeleteOwnedIdentityAndHasConfirmed(ownedCryptoId: ObvCryptoId, globalOwnedIdentityDeletion: Bool) case userWantsToHideOwnedIdentity(ownedCryptoId: ObvCryptoId, password: String) case failedToHideOwnedIdentity(ownedCryptoId: ObvCryptoId) case userWantsToSwitchToOtherHiddenOwnedIdentity(password: String) @@ -169,6 +164,15 @@ enum ObvMessengerInternalNotification { case userWantsToUnarchiveDiscussion(discussionPermanentID: ObvManagedObjectPermanentID, updateTimestampOfLastMessage: Bool, completionHandler: ((Bool) -> Void)?) case userWantsToRefreshDiscussions(completionHandler: (() -> Void)) case updateNormalizedSearchKeyOnPersistedDiscussions(ownedIdentity: ObvCryptoId, completionHandler: (() -> Void)?) + case aDiscussionSharedConfigurationIsNeededByContact(contactIdentifier: ObvContactIdentifier, discussionId: DiscussionIdentifier) + case aDiscussionSharedConfigurationIsNeededByAnotherOwnedDevice(ownedCryptoId: ObvCryptoId, discussionId: DiscussionIdentifier) + case userWantsToDeleteOwnedContactGroup(ownedCryptoId: ObvCryptoId, groupUid: UID) + case singleOwnedIdentityFlowViewControllerDidAppear(ownedCryptoId: ObvCryptoId) + case userWantsToSetCustomNameOfJoinedGroupV1(ownedCryptoId: ObvCryptoId, groupId: GroupV1Identifier, groupNameCustom: String?) + case userWantsToUpdatePersonalNoteOnContact(contactIdentifier: ObvContactIdentifier, newText: String?) + case userWantsToUpdatePersonalNoteOnGroupV1(ownedCryptoId: ObvCryptoId, groupId: GroupV1Identifier, newText: String?) + case userWantsToUpdatePersonalNoteOnGroupV2(ownedCryptoId: ObvCryptoId, groupIdentifier: Data, newText: String?) + case allPersistedInvitationCanBeMarkedAsOld(ownedCryptoId: ObvCryptoId) private enum Name { case messagesAreNotNewAnymore @@ -180,9 +184,7 @@ enum ObvMessengerInternalNotification { case userWantsToSelectAndCallContacts case userWantsToCallButWeShouldCheckSheIsAllowedTo case newWebRTCMessageWasReceived - case newObvMessageWasReceivedViaPushKitNotification - case newWebRTCMessageToSend - case isCallKitEnabledSettingDidChange + case newObvEncryptedPushNotificationWasReceivedViaPushKitNotification case isIncludesCallsInRecentsEnabledSettingDidChange case networkInterfaceTypeChanged case outgoingCallFailedBecauseUserDeniedRecordPermission @@ -196,11 +198,9 @@ enum ObvMessengerInternalNotification { case userWantsToIntroduceContactToAnotherContact case userWantsToShareOwnPublishedDetails case userWantsToSendInvite - case userRequestedAPIKeyStatus - case userRequestedNewAPIKeyActivation case userWantsToNavigateToDeepLink case useLoadBalancedTurnServersDidChange - case userWantsToReadReceivedMessagesThatRequiresUserAction + case userWantsToReadReceivedMessageThatRequiresUserAction case requestThumbnail case userHasOpenedAReceivedAttachment case userWantsToSetAndShareNewDiscussionSharedExpirationConfiguration @@ -218,11 +218,9 @@ enum ObvMessengerInternalNotification { case obvContactAnswer case userWantsToMarkAllMessagesAsNotNewWithinDiscussion case resyncContactIdentityDevicesWithEngine - case resyncContactIdentityDetailsStatusWithEngine case serverDoesNotSuppoortCall case pastedStringIsNotValidOlvidURL case userWantsToRestartChannelEstablishmentProtocol - case userWantsToReCreateChannelEstablishmentProtocol case contactIdentityDetailsWereUpdated case userDidSeeNewDetailsOfContact case userWantsToEditContactNicknameAndPicture @@ -281,7 +279,7 @@ enum ObvMessengerInternalNotification { case backupForExportWasExported case backupForUploadWasUploaded case backupForUploadFailedToUpload - case userWantsToCreateNewOwnedIdentity + case userWantsToAddOwnedProfile case userWantsToSwitchToOtherOwnedIdentity case userWantsToDeleteOwnedIdentityButHasNotConfirmedYet case userWantsToDeleteOwnedIdentityAndHasConfirmed @@ -304,6 +302,15 @@ enum ObvMessengerInternalNotification { case userWantsToUnarchiveDiscussion case userWantsToRefreshDiscussions case updateNormalizedSearchKeyOnPersistedDiscussions + case aDiscussionSharedConfigurationIsNeededByContact + case aDiscussionSharedConfigurationIsNeededByAnotherOwnedDevice + case userWantsToDeleteOwnedContactGroup + case singleOwnedIdentityFlowViewControllerDidAppear + case userWantsToSetCustomNameOfJoinedGroupV1 + case userWantsToUpdatePersonalNoteOnContact + case userWantsToUpdatePersonalNoteOnGroupV1 + case userWantsToUpdatePersonalNoteOnGroupV2 + case allPersistedInvitationCanBeMarkedAsOld private var namePrefix: String { String(describing: ObvMessengerInternalNotification.self) } @@ -325,9 +332,7 @@ enum ObvMessengerInternalNotification { case .userWantsToSelectAndCallContacts: return Name.userWantsToSelectAndCallContacts.name case .userWantsToCallButWeShouldCheckSheIsAllowedTo: return Name.userWantsToCallButWeShouldCheckSheIsAllowedTo.name case .newWebRTCMessageWasReceived: return Name.newWebRTCMessageWasReceived.name - case .newObvMessageWasReceivedViaPushKitNotification: return Name.newObvMessageWasReceivedViaPushKitNotification.name - case .newWebRTCMessageToSend: return Name.newWebRTCMessageToSend.name - case .isCallKitEnabledSettingDidChange: return Name.isCallKitEnabledSettingDidChange.name + case .newObvEncryptedPushNotificationWasReceivedViaPushKitNotification: return Name.newObvEncryptedPushNotificationWasReceivedViaPushKitNotification.name case .isIncludesCallsInRecentsEnabledSettingDidChange: return Name.isIncludesCallsInRecentsEnabledSettingDidChange.name case .networkInterfaceTypeChanged: return Name.networkInterfaceTypeChanged.name case .outgoingCallFailedBecauseUserDeniedRecordPermission: return Name.outgoingCallFailedBecauseUserDeniedRecordPermission.name @@ -341,11 +346,9 @@ enum ObvMessengerInternalNotification { case .userWantsToIntroduceContactToAnotherContact: return Name.userWantsToIntroduceContactToAnotherContact.name case .userWantsToShareOwnPublishedDetails: return Name.userWantsToShareOwnPublishedDetails.name case .userWantsToSendInvite: return Name.userWantsToSendInvite.name - case .userRequestedAPIKeyStatus: return Name.userRequestedAPIKeyStatus.name - case .userRequestedNewAPIKeyActivation: return Name.userRequestedNewAPIKeyActivation.name case .userWantsToNavigateToDeepLink: return Name.userWantsToNavigateToDeepLink.name case .useLoadBalancedTurnServersDidChange: return Name.useLoadBalancedTurnServersDidChange.name - case .userWantsToReadReceivedMessagesThatRequiresUserAction: return Name.userWantsToReadReceivedMessagesThatRequiresUserAction.name + case .userWantsToReadReceivedMessageThatRequiresUserAction: return Name.userWantsToReadReceivedMessageThatRequiresUserAction.name case .requestThumbnail: return Name.requestThumbnail.name case .userHasOpenedAReceivedAttachment: return Name.userHasOpenedAReceivedAttachment.name case .userWantsToSetAndShareNewDiscussionSharedExpirationConfiguration: return Name.userWantsToSetAndShareNewDiscussionSharedExpirationConfiguration.name @@ -363,11 +366,9 @@ enum ObvMessengerInternalNotification { case .obvContactAnswer: return Name.obvContactAnswer.name case .userWantsToMarkAllMessagesAsNotNewWithinDiscussion: return Name.userWantsToMarkAllMessagesAsNotNewWithinDiscussion.name case .resyncContactIdentityDevicesWithEngine: return Name.resyncContactIdentityDevicesWithEngine.name - case .resyncContactIdentityDetailsStatusWithEngine: return Name.resyncContactIdentityDetailsStatusWithEngine.name case .serverDoesNotSuppoortCall: return Name.serverDoesNotSuppoortCall.name case .pastedStringIsNotValidOlvidURL: return Name.pastedStringIsNotValidOlvidURL.name case .userWantsToRestartChannelEstablishmentProtocol: return Name.userWantsToRestartChannelEstablishmentProtocol.name - case .userWantsToReCreateChannelEstablishmentProtocol: return Name.userWantsToReCreateChannelEstablishmentProtocol.name case .contactIdentityDetailsWereUpdated: return Name.contactIdentityDetailsWereUpdated.name case .userDidSeeNewDetailsOfContact: return Name.userDidSeeNewDetailsOfContact.name case .userWantsToEditContactNicknameAndPicture: return Name.userWantsToEditContactNicknameAndPicture.name @@ -426,7 +427,7 @@ enum ObvMessengerInternalNotification { case .backupForExportWasExported: return Name.backupForExportWasExported.name case .backupForUploadWasUploaded: return Name.backupForUploadWasUploaded.name case .backupForUploadFailedToUpload: return Name.backupForUploadFailedToUpload.name - case .userWantsToCreateNewOwnedIdentity: return Name.userWantsToCreateNewOwnedIdentity.name + case .userWantsToAddOwnedProfile: return Name.userWantsToAddOwnedProfile.name case .userWantsToSwitchToOtherOwnedIdentity: return Name.userWantsToSwitchToOtherOwnedIdentity.name case .userWantsToDeleteOwnedIdentityButHasNotConfirmedYet: return Name.userWantsToDeleteOwnedIdentityButHasNotConfirmedYet.name case .userWantsToDeleteOwnedIdentityAndHasConfirmed: return Name.userWantsToDeleteOwnedIdentityAndHasConfirmed.name @@ -449,15 +450,26 @@ enum ObvMessengerInternalNotification { case .userWantsToUnarchiveDiscussion: return Name.userWantsToUnarchiveDiscussion.name case .userWantsToRefreshDiscussions: return Name.userWantsToRefreshDiscussions.name case .updateNormalizedSearchKeyOnPersistedDiscussions: return Name.updateNormalizedSearchKeyOnPersistedDiscussions.name + case .aDiscussionSharedConfigurationIsNeededByContact: return Name.aDiscussionSharedConfigurationIsNeededByContact.name + case .aDiscussionSharedConfigurationIsNeededByAnotherOwnedDevice: return Name.aDiscussionSharedConfigurationIsNeededByAnotherOwnedDevice.name + case .userWantsToDeleteOwnedContactGroup: return Name.userWantsToDeleteOwnedContactGroup.name + case .singleOwnedIdentityFlowViewControllerDidAppear: return Name.singleOwnedIdentityFlowViewControllerDidAppear.name + case .userWantsToSetCustomNameOfJoinedGroupV1: return Name.userWantsToSetCustomNameOfJoinedGroupV1.name + case .userWantsToUpdatePersonalNoteOnContact: return Name.userWantsToUpdatePersonalNoteOnContact.name + case .userWantsToUpdatePersonalNoteOnGroupV1: return Name.userWantsToUpdatePersonalNoteOnGroupV1.name + case .userWantsToUpdatePersonalNoteOnGroupV2: return Name.userWantsToUpdatePersonalNoteOnGroupV2.name + case .allPersistedInvitationCanBeMarkedAsOld: return Name.allPersistedInvitationCanBeMarkedAsOld.name } } } private var userInfo: [AnyHashable: Any]? { let info: [AnyHashable: Any]? switch self { - case .messagesAreNotNewAnymore(persistedMessageObjectIDs: let persistedMessageObjectIDs): + case .messagesAreNotNewAnymore(ownedCryptoId: let ownedCryptoId, discussionId: let discussionId, messageIds: let messageIds): info = [ - "persistedMessageObjectIDs": persistedMessageObjectIDs, + "ownedCryptoId": ownedCryptoId, + "discussionId": discussionId, + "messageIds": messageIds, ] case .userWantsToRefreshContactGroupJoined(obvContactGroup: let obvContactGroup): info = [ @@ -474,41 +486,35 @@ enum ObvMessengerInternalNotification { "launchedByBackgroundTask": launchedByBackgroundTask, "completionHandler": completionHandler, ] - case .userWantsToCallAndIsAllowedTo(contactIds: let contactIds, ownedIdentityForRequestingTurnCredentials: let ownedIdentityForRequestingTurnCredentials, groupId: let groupId): + case .userWantsToCallAndIsAllowedTo(ownedCryptoId: let ownedCryptoId, contactCryptoIds: let contactCryptoIds, ownedIdentityForRequestingTurnCredentials: let ownedIdentityForRequestingTurnCredentials, groupId: let groupId): info = [ - "contactIds": contactIds, + "ownedCryptoId": ownedCryptoId, + "contactCryptoIds": contactCryptoIds, "ownedIdentityForRequestingTurnCredentials": ownedIdentityForRequestingTurnCredentials, "groupId": OptionalWrapper(groupId), ] - case .userWantsToSelectAndCallContacts(contactIDs: let contactIDs, groupId: let groupId): + case .userWantsToSelectAndCallContacts(ownedCryptoId: let ownedCryptoId, contactCryptoIds: let contactCryptoIds, groupId: let groupId): info = [ - "contactIDs": contactIDs, + "ownedCryptoId": ownedCryptoId, + "contactCryptoIds": contactCryptoIds, "groupId": OptionalWrapper(groupId), ] - case .userWantsToCallButWeShouldCheckSheIsAllowedTo(contactIDs: let contactIDs, groupId: let groupId): + case .userWantsToCallButWeShouldCheckSheIsAllowedTo(ownedCryptoId: let ownedCryptoId, contactCryptoIds: let contactCryptoIds, groupId: let groupId): info = [ - "contactIDs": contactIDs, + "ownedCryptoId": ownedCryptoId, + "contactCryptoIds": contactCryptoIds, "groupId": OptionalWrapper(groupId), ] - case .newWebRTCMessageWasReceived(webrtcMessage: let webrtcMessage, contactId: let contactId, messageUploadTimestampFromServer: let messageUploadTimestampFromServer, messageIdentifierFromEngine: let messageIdentifierFromEngine): + case .newWebRTCMessageWasReceived(webrtcMessage: let webrtcMessage, fromOlvidUser: let fromOlvidUser, messageUID: let messageUID): info = [ "webrtcMessage": webrtcMessage, - "contactId": contactId, - "messageUploadTimestampFromServer": messageUploadTimestampFromServer, - "messageIdentifierFromEngine": messageIdentifierFromEngine, + "fromOlvidUser": fromOlvidUser, + "messageUID": messageUID, ] - case .newObvMessageWasReceivedViaPushKitNotification(obvMessage: let obvMessage): + case .newObvEncryptedPushNotificationWasReceivedViaPushKitNotification(encryptedNotification: let encryptedNotification): info = [ - "obvMessage": obvMessage, + "encryptedNotification": encryptedNotification, ] - case .newWebRTCMessageToSend(webrtcMessage: let webrtcMessage, contactID: let contactID, forStartingCall: let forStartingCall): - info = [ - "webrtcMessage": webrtcMessage, - "contactID": contactID, - "forStartingCall": forStartingCall, - ] - case .isCallKitEnabledSettingDidChange: - info = nil case .isIncludesCallsInRecentsEnabledSettingDidChange: info = nil case .networkInterfaceTypeChanged(isConnected: let isConnected): @@ -529,9 +535,10 @@ enum ObvMessengerInternalNotification { ] case .trashShouldBeEmptied: info = nil - case .userRequestedDeletionOfPersistedDiscussion(persistedDiscussionObjectID: let persistedDiscussionObjectID, deletionType: let deletionType, completionHandler: let completionHandler): + case .userRequestedDeletionOfPersistedDiscussion(ownedCryptoId: let ownedCryptoId, discussionObjectID: let discussionObjectID, deletionType: let deletionType, completionHandler: let completionHandler): info = [ - "persistedDiscussionObjectID": persistedDiscussionObjectID, + "ownedCryptoId": ownedCryptoId, + "discussionObjectID": discussionObjectID, "deletionType": deletionType, "completionHandler": completionHandler, ] @@ -559,25 +566,17 @@ enum ObvMessengerInternalNotification { "ownedIdentity": ownedIdentity, "urlIdentity": urlIdentity, ] - case .userRequestedAPIKeyStatus(ownedCryptoId: let ownedCryptoId, apiKey: let apiKey): - info = [ - "ownedCryptoId": ownedCryptoId, - "apiKey": apiKey, - ] - case .userRequestedNewAPIKeyActivation(ownedCryptoId: let ownedCryptoId, apiKey: let apiKey): - info = [ - "ownedCryptoId": ownedCryptoId, - "apiKey": apiKey, - ] case .userWantsToNavigateToDeepLink(deepLink: let deepLink): info = [ "deepLink": deepLink, ] case .useLoadBalancedTurnServersDidChange: info = nil - case .userWantsToReadReceivedMessagesThatRequiresUserAction(persistedMessageObjectIDs: let persistedMessageObjectIDs): + case .userWantsToReadReceivedMessageThatRequiresUserAction(ownedCryptoId: let ownedCryptoId, discussionId: let discussionId, messageId: let messageId): info = [ - "persistedMessageObjectIDs": persistedMessageObjectIDs, + "ownedCryptoId": ownedCryptoId, + "discussionId": discussionId, + "messageId": messageId, ] case .requestThumbnail(fyleElement: let fyleElement, size: let size, thumbnailType: let thumbnailType, completionHandler: let completionHandler): info = [ @@ -590,11 +589,11 @@ enum ObvMessengerInternalNotification { info = [ "receivedFyleJoinID": receivedFyleJoinID, ] - case .userWantsToSetAndShareNewDiscussionSharedExpirationConfiguration(persistedDiscussionObjectID: let persistedDiscussionObjectID, expirationJSON: let expirationJSON, ownedCryptoId: let ownedCryptoId): + case .userWantsToSetAndShareNewDiscussionSharedExpirationConfiguration(ownedCryptoId: let ownedCryptoId, discussionId: let discussionId, expirationJSON: let expirationJSON): info = [ - "persistedDiscussionObjectID": persistedDiscussionObjectID, - "expirationJSON": expirationJSON, "ownedCryptoId": ownedCryptoId, + "discussionId": discussionId, + "expirationJSON": expirationJSON, ] case .userWantsToDeleteContact(contactCryptoId: let contactCryptoId, ownedCryptoId: let ownedCryptoId, viewController: let viewController, completionHandler: let completionHandler): info = [ @@ -620,8 +619,9 @@ enum ObvMessengerInternalNotification { "launchedByBackgroundTask": launchedByBackgroundTask, "completionHandler": completionHandler, ] - case .userWantsToSendEditedVersionOfSentMessage(sentMessageObjectID: let sentMessageObjectID, newTextBody: let newTextBody): + case .userWantsToSendEditedVersionOfSentMessage(ownedCryptoId: let ownedCryptoId, sentMessageObjectID: let sentMessageObjectID, newTextBody: let newTextBody): info = [ + "ownedCryptoId": ownedCryptoId, "sentMessageObjectID": sentMessageObjectID, "newTextBody": newTextBody, ] @@ -661,15 +661,9 @@ enum ObvMessengerInternalNotification { "persistedDiscussionObjectID": persistedDiscussionObjectID, "completionHandler": completionHandler, ] - case .resyncContactIdentityDevicesWithEngine(contactCryptoId: let contactCryptoId, ownedCryptoId: let ownedCryptoId): - info = [ - "contactCryptoId": contactCryptoId, - "ownedCryptoId": ownedCryptoId, - ] - case .resyncContactIdentityDetailsStatusWithEngine(contactCryptoId: let contactCryptoId, ownedCryptoId: let ownedCryptoId): + case .resyncContactIdentityDevicesWithEngine(obvContactIdentifier: let obvContactIdentifier): info = [ - "contactCryptoId": contactCryptoId, - "ownedCryptoId": ownedCryptoId, + "obvContactIdentifier": obvContactIdentifier, ] case .serverDoesNotSuppoortCall: info = nil @@ -680,11 +674,6 @@ enum ObvMessengerInternalNotification { "contactCryptoId": contactCryptoId, "ownedCryptoId": ownedCryptoId, ] - case .userWantsToReCreateChannelEstablishmentProtocol(contactCryptoId: let contactCryptoId, ownedCryptoId: let ownedCryptoId): - info = [ - "contactCryptoId": contactCryptoId, - "ownedCryptoId": ownedCryptoId, - ] case .contactIdentityDetailsWereUpdated(contactCryptoId: let contactCryptoId, ownedCryptoId: let ownedCryptoId): info = [ "contactCryptoId": contactCryptoId, @@ -695,11 +684,11 @@ enum ObvMessengerInternalNotification { "contactCryptoId": contactCryptoId, "ownedCryptoId": ownedCryptoId, ] - case .userWantsToEditContactNicknameAndPicture(persistedContactObjectID: let persistedContactObjectID, customDisplayName: let customDisplayName, customPhotoURL: let customPhotoURL): + case .userWantsToEditContactNicknameAndPicture(persistedContactObjectID: let persistedContactObjectID, customDisplayName: let customDisplayName, customPhoto: let customPhoto): info = [ "persistedContactObjectID": persistedContactObjectID, "customDisplayName": OptionalWrapper(customDisplayName), - "customPhotoURL": OptionalWrapper(customPhotoURL), + "customPhoto": OptionalWrapper(customPhoto), ] case .userWantsToBindOwnedIdentityToKeycloak(ownedCryptoId: let ownedCryptoId, obvKeycloakState: let obvKeycloakState, keycloakUserId: let keycloakUserId, completionHandler: let completionHandler): info = [ @@ -784,10 +773,11 @@ enum ObvMessengerInternalNotification { info = [ "ownedCryptoId": ownedCryptoId, ] - case .userWantsToUpdateReaction(messageObjectID: let messageObjectID, emoji: let emoji): + case .userWantsToUpdateReaction(ownedCryptoId: let ownedCryptoId, messageObjectID: let messageObjectID, newEmoji: let newEmoji): info = [ + "ownedCryptoId": ownedCryptoId, "messageObjectID": messageObjectID, - "emoji": OptionalWrapper(emoji), + "newEmoji": OptionalWrapper(newEmoji), ] case .currentUserActivityDidChange(previousUserActivity: let previousUserActivity, currentUserActivity: let currentUserActivity): info = [ @@ -830,8 +820,9 @@ enum ObvMessengerInternalNotification { "contactCryptoId": contactCryptoId, "completion": completion, ] - case .requestSyncAppDatabasesWithEngine(completion: let completion): + case .requestSyncAppDatabasesWithEngine(queuePriority: let queuePriority, completion: let completion): info = [ + "queuePriority": queuePriority, "completion": completion, ] case .uiRequiresSignedOwnedDetails(ownedIdentityCryptoId: let ownedIdentityCryptoId, completion: let completion): @@ -926,11 +917,12 @@ enum ObvMessengerInternalNotification { ] case .metaFlowControllerViewDidAppear: info = nil - case .userWantsToUpdateCustomNameAndGroupV2Photo(groupObjectID: let groupObjectID, customName: let customName, customPhotoURL: let customPhotoURL): + case .userWantsToUpdateCustomNameAndGroupV2Photo(ownedCryptoId: let ownedCryptoId, groupIdentifier: let groupIdentifier, customName: let customName, customPhoto: let customPhoto): info = [ - "groupObjectID": groupObjectID, + "ownedCryptoId": ownedCryptoId, + "groupIdentifier": groupIdentifier, "customName": OptionalWrapper(customName), - "customPhotoURL": OptionalWrapper(customPhotoURL), + "customPhoto": OptionalWrapper(customPhoto), ] case .userHasSeenPublishedDetailsOfGroupV2(groupObjectID: let groupObjectID): info = [ @@ -944,7 +936,7 @@ enum ObvMessengerInternalNotification { info = nil case .backupForUploadFailedToUpload: info = nil - case .userWantsToCreateNewOwnedIdentity: + case .userWantsToAddOwnedProfile: info = nil case .userWantsToSwitchToOtherOwnedIdentity(ownedCryptoId: let ownedCryptoId): info = [ @@ -954,10 +946,10 @@ enum ObvMessengerInternalNotification { info = [ "ownedCryptoId": ownedCryptoId, ] - case .userWantsToDeleteOwnedIdentityAndHasConfirmed(ownedCryptoId: let ownedCryptoId, notifyContacts: let notifyContacts): + case .userWantsToDeleteOwnedIdentityAndHasConfirmed(ownedCryptoId: let ownedCryptoId, globalOwnedIdentityDeletion: let globalOwnedIdentityDeletion): info = [ "ownedCryptoId": ownedCryptoId, - "notifyContacts": notifyContacts, + "globalOwnedIdentityDeletion": globalOwnedIdentityDeletion, ] case .userWantsToHideOwnedIdentity(ownedCryptoId: let ownedCryptoId, password: let password): info = [ @@ -1043,6 +1035,52 @@ enum ObvMessengerInternalNotification { "ownedIdentity": ownedIdentity, "completionHandler": OptionalWrapper(completionHandler), ] + case .aDiscussionSharedConfigurationIsNeededByContact(contactIdentifier: let contactIdentifier, discussionId: let discussionId): + info = [ + "contactIdentifier": contactIdentifier, + "discussionId": discussionId, + ] + case .aDiscussionSharedConfigurationIsNeededByAnotherOwnedDevice(ownedCryptoId: let ownedCryptoId, discussionId: let discussionId): + info = [ + "ownedCryptoId": ownedCryptoId, + "discussionId": discussionId, + ] + case .userWantsToDeleteOwnedContactGroup(ownedCryptoId: let ownedCryptoId, groupUid: let groupUid): + info = [ + "ownedCryptoId": ownedCryptoId, + "groupUid": groupUid, + ] + case .singleOwnedIdentityFlowViewControllerDidAppear(ownedCryptoId: let ownedCryptoId): + info = [ + "ownedCryptoId": ownedCryptoId, + ] + case .userWantsToSetCustomNameOfJoinedGroupV1(ownedCryptoId: let ownedCryptoId, groupId: let groupId, groupNameCustom: let groupNameCustom): + info = [ + "ownedCryptoId": ownedCryptoId, + "groupId": groupId, + "groupNameCustom": OptionalWrapper(groupNameCustom), + ] + case .userWantsToUpdatePersonalNoteOnContact(contactIdentifier: let contactIdentifier, newText: let newText): + info = [ + "contactIdentifier": contactIdentifier, + "newText": OptionalWrapper(newText), + ] + case .userWantsToUpdatePersonalNoteOnGroupV1(ownedCryptoId: let ownedCryptoId, groupId: let groupId, newText: let newText): + info = [ + "ownedCryptoId": ownedCryptoId, + "groupId": groupId, + "newText": OptionalWrapper(newText), + ] + case .userWantsToUpdatePersonalNoteOnGroupV2(ownedCryptoId: let ownedCryptoId, groupIdentifier: let groupIdentifier, newText: let newText): + info = [ + "ownedCryptoId": ownedCryptoId, + "groupIdentifier": groupIdentifier, + "newText": OptionalWrapper(newText), + ] + case .allPersistedInvitationCanBeMarkedAsOld(ownedCryptoId: let ownedCryptoId): + info = [ + "ownedCryptoId": ownedCryptoId, + ] } return info } @@ -1072,11 +1110,13 @@ enum ObvMessengerInternalNotification { } } - static func observeMessagesAreNotNewAnymore(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (Set>) -> Void) -> NSObjectProtocol { + static func observeMessagesAreNotNewAnymore(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, DiscussionIdentifier, [MessageIdentifier]) -> Void) -> NSObjectProtocol { let name = Name.messagesAreNotNewAnymore.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let persistedMessageObjectIDs = notification.userInfo!["persistedMessageObjectIDs"] as! Set> - block(persistedMessageObjectIDs) + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let discussionId = notification.userInfo!["discussionId"] as! DiscussionIdentifier + let messageIds = notification.userInfo!["messageIds"] as! [MessageIdentifier] + block(ownedCryptoId, discussionId, messageIds) } } @@ -1112,70 +1152,55 @@ enum ObvMessengerInternalNotification { } } - static func observeUserWantsToCallAndIsAllowedTo(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping ([OlvidUserId], ObvCryptoId, GroupIdentifierBasedOnObjectID?) -> Void) -> NSObjectProtocol { + static func observeUserWantsToCallAndIsAllowedTo(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, Set, ObvCryptoId, GroupIdentifier?) -> Void) -> NSObjectProtocol { let name = Name.userWantsToCallAndIsAllowedTo.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let contactIds = notification.userInfo!["contactIds"] as! [OlvidUserId] + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let contactCryptoIds = notification.userInfo!["contactCryptoIds"] as! Set let ownedIdentityForRequestingTurnCredentials = notification.userInfo!["ownedIdentityForRequestingTurnCredentials"] as! ObvCryptoId - let groupIdWrapper = notification.userInfo!["groupId"] as! OptionalWrapper + let groupIdWrapper = notification.userInfo!["groupId"] as! OptionalWrapper let groupId = groupIdWrapper.value - block(contactIds, ownedIdentityForRequestingTurnCredentials, groupId) + block(ownedCryptoId, contactCryptoIds, ownedIdentityForRequestingTurnCredentials, groupId) } } - static func observeUserWantsToSelectAndCallContacts(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping ([TypeSafeManagedObjectID], GroupIdentifierBasedOnObjectID?) -> Void) -> NSObjectProtocol { + static func observeUserWantsToSelectAndCallContacts(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, Set, GroupIdentifier?) -> Void) -> NSObjectProtocol { let name = Name.userWantsToSelectAndCallContacts.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let contactIDs = notification.userInfo!["contactIDs"] as! [TypeSafeManagedObjectID] - let groupIdWrapper = notification.userInfo!["groupId"] as! OptionalWrapper + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let contactCryptoIds = notification.userInfo!["contactCryptoIds"] as! Set + let groupIdWrapper = notification.userInfo!["groupId"] as! OptionalWrapper let groupId = groupIdWrapper.value - block(contactIDs, groupId) + block(ownedCryptoId, contactCryptoIds, groupId) } } - static func observeUserWantsToCallButWeShouldCheckSheIsAllowedTo(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping ([TypeSafeManagedObjectID], GroupIdentifierBasedOnObjectID?) -> Void) -> NSObjectProtocol { + static func observeUserWantsToCallButWeShouldCheckSheIsAllowedTo(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, Set, GroupIdentifier?) -> Void) -> NSObjectProtocol { let name = Name.userWantsToCallButWeShouldCheckSheIsAllowedTo.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let contactIDs = notification.userInfo!["contactIDs"] as! [TypeSafeManagedObjectID] - let groupIdWrapper = notification.userInfo!["groupId"] as! OptionalWrapper + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let contactCryptoIds = notification.userInfo!["contactCryptoIds"] as! Set + let groupIdWrapper = notification.userInfo!["groupId"] as! OptionalWrapper let groupId = groupIdWrapper.value - block(contactIDs, groupId) + block(ownedCryptoId, contactCryptoIds, groupId) } } - static func observeNewWebRTCMessageWasReceived(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (WebRTCMessageJSON, OlvidUserId, Date, Data) -> Void) -> NSObjectProtocol { + static func observeNewWebRTCMessageWasReceived(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (WebRTCMessageJSON, OlvidUserId, UID) -> Void) -> NSObjectProtocol { let name = Name.newWebRTCMessageWasReceived.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in let webrtcMessage = notification.userInfo!["webrtcMessage"] as! WebRTCMessageJSON - let contactId = notification.userInfo!["contactId"] as! OlvidUserId - let messageUploadTimestampFromServer = notification.userInfo!["messageUploadTimestampFromServer"] as! Date - let messageIdentifierFromEngine = notification.userInfo!["messageIdentifierFromEngine"] as! Data - block(webrtcMessage, contactId, messageUploadTimestampFromServer, messageIdentifierFromEngine) - } - } - - static func observeNewObvMessageWasReceivedViaPushKitNotification(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvMessage) -> Void) -> NSObjectProtocol { - let name = Name.newObvMessageWasReceivedViaPushKitNotification.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let obvMessage = notification.userInfo!["obvMessage"] as! ObvMessage - block(obvMessage) - } - } - - static func observeNewWebRTCMessageToSend(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (WebRTCMessageJSON, TypeSafeManagedObjectID, Bool) -> Void) -> NSObjectProtocol { - let name = Name.newWebRTCMessageToSend.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let webrtcMessage = notification.userInfo!["webrtcMessage"] as! WebRTCMessageJSON - let contactID = notification.userInfo!["contactID"] as! TypeSafeManagedObjectID - let forStartingCall = notification.userInfo!["forStartingCall"] as! Bool - block(webrtcMessage, contactID, forStartingCall) + let fromOlvidUser = notification.userInfo!["fromOlvidUser"] as! OlvidUserId + let messageUID = notification.userInfo!["messageUID"] as! UID + block(webrtcMessage, fromOlvidUser, messageUID) } } - static func observeIsCallKitEnabledSettingDidChange(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { - let name = Name.isCallKitEnabledSettingDidChange.name + static func observeNewObvEncryptedPushNotificationWasReceivedViaPushKitNotification(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvEncryptedPushNotification) -> Void) -> NSObjectProtocol { + let name = Name.newObvEncryptedPushNotificationWasReceivedViaPushKitNotification.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - block() + let encryptedNotification = notification.userInfo!["encryptedNotification"] as! ObvEncryptedPushNotification + block(encryptedNotification) } } @@ -1232,13 +1257,14 @@ enum ObvMessengerInternalNotification { } } - static func observeUserRequestedDeletionOfPersistedDiscussion(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (NSManagedObjectID, DeletionType, @escaping (Bool) -> Void) -> Void) -> NSObjectProtocol { + static func observeUserRequestedDeletionOfPersistedDiscussion(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, TypeSafeManagedObjectID, DeletionType, @escaping (Bool) -> Void) -> Void) -> NSObjectProtocol { let name = Name.userRequestedDeletionOfPersistedDiscussion.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let persistedDiscussionObjectID = notification.userInfo!["persistedDiscussionObjectID"] as! NSManagedObjectID + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let discussionObjectID = notification.userInfo!["discussionObjectID"] as! TypeSafeManagedObjectID let deletionType = notification.userInfo!["deletionType"] as! DeletionType let completionHandler = notification.userInfo!["completionHandler"] as! (Bool) -> Void - block(persistedDiscussionObjectID, deletionType, completionHandler) + block(ownedCryptoId, discussionObjectID, deletionType, completionHandler) } } @@ -1286,24 +1312,6 @@ enum ObvMessengerInternalNotification { } } - static func observeUserRequestedAPIKeyStatus(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, UUID) -> Void) -> NSObjectProtocol { - let name = Name.userRequestedAPIKeyStatus.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId - let apiKey = notification.userInfo!["apiKey"] as! UUID - block(ownedCryptoId, apiKey) - } - } - - static func observeUserRequestedNewAPIKeyActivation(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, UUID) -> Void) -> NSObjectProtocol { - let name = Name.userRequestedNewAPIKeyActivation.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId - let apiKey = notification.userInfo!["apiKey"] as! UUID - block(ownedCryptoId, apiKey) - } - } - static func observeUserWantsToNavigateToDeepLink(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvDeepLink) -> Void) -> NSObjectProtocol { let name = Name.userWantsToNavigateToDeepLink.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in @@ -1319,11 +1327,13 @@ enum ObvMessengerInternalNotification { } } - static func observeUserWantsToReadReceivedMessagesThatRequiresUserAction(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (Set>) -> Void) -> NSObjectProtocol { - let name = Name.userWantsToReadReceivedMessagesThatRequiresUserAction.name + static func observeUserWantsToReadReceivedMessageThatRequiresUserAction(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, DiscussionIdentifier, ReceivedMessageIdentifier) -> Void) -> NSObjectProtocol { + let name = Name.userWantsToReadReceivedMessageThatRequiresUserAction.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let persistedMessageObjectIDs = notification.userInfo!["persistedMessageObjectIDs"] as! Set> - block(persistedMessageObjectIDs) + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let discussionId = notification.userInfo!["discussionId"] as! DiscussionIdentifier + let messageId = notification.userInfo!["messageId"] as! ReceivedMessageIdentifier + block(ownedCryptoId, discussionId, messageId) } } @@ -1346,13 +1356,13 @@ enum ObvMessengerInternalNotification { } } - static func observeUserWantsToSetAndShareNewDiscussionSharedExpirationConfiguration(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (NSManagedObjectID, ExpirationJSON, ObvCryptoId) -> Void) -> NSObjectProtocol { + static func observeUserWantsToSetAndShareNewDiscussionSharedExpirationConfiguration(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, DiscussionIdentifier, ExpirationJSON) -> Void) -> NSObjectProtocol { let name = Name.userWantsToSetAndShareNewDiscussionSharedExpirationConfiguration.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let persistedDiscussionObjectID = notification.userInfo!["persistedDiscussionObjectID"] as! NSManagedObjectID - let expirationJSON = notification.userInfo!["expirationJSON"] as! ExpirationJSON let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId - block(persistedDiscussionObjectID, expirationJSON, ownedCryptoId) + let discussionId = notification.userInfo!["discussionId"] as! DiscussionIdentifier + let expirationJSON = notification.userInfo!["expirationJSON"] as! ExpirationJSON + block(ownedCryptoId, discussionId, expirationJSON) } } @@ -1400,12 +1410,13 @@ enum ObvMessengerInternalNotification { } } - static func observeUserWantsToSendEditedVersionOfSentMessage(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (NSManagedObjectID, String) -> Void) -> NSObjectProtocol { + static func observeUserWantsToSendEditedVersionOfSentMessage(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, TypeSafeManagedObjectID, String) -> Void) -> NSObjectProtocol { let name = Name.userWantsToSendEditedVersionOfSentMessage.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let sentMessageObjectID = notification.userInfo!["sentMessageObjectID"] as! NSManagedObjectID + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let sentMessageObjectID = notification.userInfo!["sentMessageObjectID"] as! TypeSafeManagedObjectID let newTextBody = notification.userInfo!["newTextBody"] as! String - block(sentMessageObjectID, newTextBody) + block(ownedCryptoId, sentMessageObjectID, newTextBody) } } @@ -1473,21 +1484,11 @@ enum ObvMessengerInternalNotification { } } - static func observeResyncContactIdentityDevicesWithEngine(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, ObvCryptoId) -> Void) -> NSObjectProtocol { + static func observeResyncContactIdentityDevicesWithEngine(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvContactIdentifier) -> Void) -> NSObjectProtocol { let name = Name.resyncContactIdentityDevicesWithEngine.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let contactCryptoId = notification.userInfo!["contactCryptoId"] as! ObvCryptoId - let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId - block(contactCryptoId, ownedCryptoId) - } - } - - static func observeResyncContactIdentityDetailsStatusWithEngine(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, ObvCryptoId) -> Void) -> NSObjectProtocol { - let name = Name.resyncContactIdentityDetailsStatusWithEngine.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let contactCryptoId = notification.userInfo!["contactCryptoId"] as! ObvCryptoId - let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId - block(contactCryptoId, ownedCryptoId) + let obvContactIdentifier = notification.userInfo!["obvContactIdentifier"] as! ObvContactIdentifier + block(obvContactIdentifier) } } @@ -1514,15 +1515,6 @@ enum ObvMessengerInternalNotification { } } - static func observeUserWantsToReCreateChannelEstablishmentProtocol(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, ObvCryptoId) -> Void) -> NSObjectProtocol { - let name = Name.userWantsToReCreateChannelEstablishmentProtocol.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let contactCryptoId = notification.userInfo!["contactCryptoId"] as! ObvCryptoId - let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId - block(contactCryptoId, ownedCryptoId) - } - } - static func observeContactIdentityDetailsWereUpdated(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, ObvCryptoId) -> Void) -> NSObjectProtocol { let name = Name.contactIdentityDetailsWereUpdated.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in @@ -1541,15 +1533,15 @@ enum ObvMessengerInternalNotification { } } - static func observeUserWantsToEditContactNicknameAndPicture(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (NSManagedObjectID, String?, URL?) -> Void) -> NSObjectProtocol { + static func observeUserWantsToEditContactNicknameAndPicture(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (NSManagedObjectID, String?, UIImage?) -> Void) -> NSObjectProtocol { let name = Name.userWantsToEditContactNicknameAndPicture.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in let persistedContactObjectID = notification.userInfo!["persistedContactObjectID"] as! NSManagedObjectID let customDisplayNameWrapper = notification.userInfo!["customDisplayName"] as! OptionalWrapper let customDisplayName = customDisplayNameWrapper.value - let customPhotoURLWrapper = notification.userInfo!["customPhotoURL"] as! OptionalWrapper - let customPhotoURL = customPhotoURLWrapper.value - block(persistedContactObjectID, customDisplayName, customPhotoURL) + let customPhotoWrapper = notification.userInfo!["customPhoto"] as! OptionalWrapper + let customPhoto = customPhotoWrapper.value + block(persistedContactObjectID, customDisplayName, customPhoto) } } @@ -1716,13 +1708,14 @@ enum ObvMessengerInternalNotification { } } - static func observeUserWantsToUpdateReaction(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (TypeSafeManagedObjectID, String?) -> Void) -> NSObjectProtocol { + static func observeUserWantsToUpdateReaction(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, TypeSafeManagedObjectID, String?) -> Void) -> NSObjectProtocol { let name = Name.userWantsToUpdateReaction.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId let messageObjectID = notification.userInfo!["messageObjectID"] as! TypeSafeManagedObjectID - let emojiWrapper = notification.userInfo!["emoji"] as! OptionalWrapper - let emoji = emojiWrapper.value - block(messageObjectID, emoji) + let newEmojiWrapper = notification.userInfo!["newEmoji"] as! OptionalWrapper + let newEmoji = newEmojiWrapper.value + block(ownedCryptoId, messageObjectID, newEmoji) } } @@ -1816,11 +1809,12 @@ enum ObvMessengerInternalNotification { } } - static func observeRequestSyncAppDatabasesWithEngine(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (@escaping (Result) -> Void) -> Void) -> NSObjectProtocol { + static func observeRequestSyncAppDatabasesWithEngine(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (Operation.QueuePriority, @escaping (Result) -> Void) -> Void) -> NSObjectProtocol { let name = Name.requestSyncAppDatabasesWithEngine.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let queuePriority = notification.userInfo!["queuePriority"] as! Operation.QueuePriority let completion = notification.userInfo!["completion"] as! (Result) -> Void - block(completion) + block(queuePriority, completion) } } @@ -1988,15 +1982,16 @@ enum ObvMessengerInternalNotification { } } - static func observeUserWantsToUpdateCustomNameAndGroupV2Photo(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (TypeSafeManagedObjectID, String?, URL?) -> Void) -> NSObjectProtocol { + static func observeUserWantsToUpdateCustomNameAndGroupV2Photo(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, Data, String?, UIImage?) -> Void) -> NSObjectProtocol { let name = Name.userWantsToUpdateCustomNameAndGroupV2Photo.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let groupObjectID = notification.userInfo!["groupObjectID"] as! TypeSafeManagedObjectID + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let groupIdentifier = notification.userInfo!["groupIdentifier"] as! Data let customNameWrapper = notification.userInfo!["customName"] as! OptionalWrapper let customName = customNameWrapper.value - let customPhotoURLWrapper = notification.userInfo!["customPhotoURL"] as! OptionalWrapper - let customPhotoURL = customPhotoURLWrapper.value - block(groupObjectID, customName, customPhotoURL) + let customPhotoWrapper = notification.userInfo!["customPhoto"] as! OptionalWrapper + let customPhoto = customPhotoWrapper.value + block(ownedCryptoId, groupIdentifier, customName, customPhoto) } } @@ -2036,8 +2031,8 @@ enum ObvMessengerInternalNotification { } } - static func observeUserWantsToCreateNewOwnedIdentity(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { - let name = Name.userWantsToCreateNewOwnedIdentity.name + static func observeUserWantsToAddOwnedProfile(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { + let name = Name.userWantsToAddOwnedProfile.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in block() } @@ -2063,8 +2058,8 @@ enum ObvMessengerInternalNotification { let name = Name.userWantsToDeleteOwnedIdentityAndHasConfirmed.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId - let notifyContacts = notification.userInfo!["notifyContacts"] as! Bool - block(ownedCryptoId, notifyContacts) + let globalOwnedIdentityDeletion = notification.userInfo!["globalOwnedIdentityDeletion"] as! Bool + block(ownedCryptoId, globalOwnedIdentityDeletion) } } @@ -2236,4 +2231,90 @@ enum ObvMessengerInternalNotification { } } + static func observeADiscussionSharedConfigurationIsNeededByContact(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvContactIdentifier, DiscussionIdentifier) -> Void) -> NSObjectProtocol { + let name = Name.aDiscussionSharedConfigurationIsNeededByContact.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let contactIdentifier = notification.userInfo!["contactIdentifier"] as! ObvContactIdentifier + let discussionId = notification.userInfo!["discussionId"] as! DiscussionIdentifier + block(contactIdentifier, discussionId) + } + } + + static func observeADiscussionSharedConfigurationIsNeededByAnotherOwnedDevice(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, DiscussionIdentifier) -> Void) -> NSObjectProtocol { + let name = Name.aDiscussionSharedConfigurationIsNeededByAnotherOwnedDevice.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let discussionId = notification.userInfo!["discussionId"] as! DiscussionIdentifier + block(ownedCryptoId, discussionId) + } + } + + static func observeUserWantsToDeleteOwnedContactGroup(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, UID) -> Void) -> NSObjectProtocol { + let name = Name.userWantsToDeleteOwnedContactGroup.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let groupUid = notification.userInfo!["groupUid"] as! UID + block(ownedCryptoId, groupUid) + } + } + + static func observeSingleOwnedIdentityFlowViewControllerDidAppear(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId) -> Void) -> NSObjectProtocol { + let name = Name.singleOwnedIdentityFlowViewControllerDidAppear.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + block(ownedCryptoId) + } + } + + static func observeUserWantsToSetCustomNameOfJoinedGroupV1(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, GroupV1Identifier, String?) -> Void) -> NSObjectProtocol { + let name = Name.userWantsToSetCustomNameOfJoinedGroupV1.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let groupId = notification.userInfo!["groupId"] as! GroupV1Identifier + let groupNameCustomWrapper = notification.userInfo!["groupNameCustom"] as! OptionalWrapper + let groupNameCustom = groupNameCustomWrapper.value + block(ownedCryptoId, groupId, groupNameCustom) + } + } + + static func observeUserWantsToUpdatePersonalNoteOnContact(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvContactIdentifier, String?) -> Void) -> NSObjectProtocol { + let name = Name.userWantsToUpdatePersonalNoteOnContact.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let contactIdentifier = notification.userInfo!["contactIdentifier"] as! ObvContactIdentifier + let newTextWrapper = notification.userInfo!["newText"] as! OptionalWrapper + let newText = newTextWrapper.value + block(contactIdentifier, newText) + } + } + + static func observeUserWantsToUpdatePersonalNoteOnGroupV1(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, GroupV1Identifier, String?) -> Void) -> NSObjectProtocol { + let name = Name.userWantsToUpdatePersonalNoteOnGroupV1.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let groupId = notification.userInfo!["groupId"] as! GroupV1Identifier + let newTextWrapper = notification.userInfo!["newText"] as! OptionalWrapper + let newText = newTextWrapper.value + block(ownedCryptoId, groupId, newText) + } + } + + static func observeUserWantsToUpdatePersonalNoteOnGroupV2(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, Data, String?) -> Void) -> NSObjectProtocol { + let name = Name.userWantsToUpdatePersonalNoteOnGroupV2.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let groupIdentifier = notification.userInfo!["groupIdentifier"] as! Data + let newTextWrapper = notification.userInfo!["newText"] as! OptionalWrapper + let newText = newTextWrapper.value + block(ownedCryptoId, groupIdentifier, newText) + } + } + + static func observeAllPersistedInvitationCanBeMarkedAsOld(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId) -> Void) -> NSObjectProtocol { + let name = Name.allPersistedInvitationCanBeMarkedAsOld.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + block(ownedCryptoId) + } + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Notifications/ObvMessengerInternalNotification.yml b/iOSClient/ObvMessenger/ObvMessenger/Notifications/ObvMessengerInternalNotification.yml deleted file mode 100644 index 4b9abbe7..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Notifications/ObvMessengerInternalNotification.yml +++ /dev/null @@ -1,464 +0,0 @@ -import: - - Foundation - - CoreData - - ObvTypes - - ObvEngine - - OlvidUtils - - ObvCrypto - - ObvUICoreData -notifications: -- name: messagesAreNotNewAnymore - params: - - {name: persistedMessageObjectIDs, type: Set>} -- name: userWantsToRefreshContactGroupJoined - params: - - {name: obvContactGroup, type: ObvContactGroup} -- name: externalTransactionsWereMergedIntoViewContext -- name: newMuteExpiration - params: - - {name: expirationDate, type: Date} -- name: wipeAllMessagesThatExpiredEarlierThanNow - params: - - {name: launchedByBackgroundTask, type: Bool} - - {name: completionHandler, type: (Bool) -> Void, escaping: true} -- name: userWantsToCallAndIsAllowedTo - params: - - {name: contactIds, type: [OlvidUserId]} - - {name: ownedIdentityForRequestingTurnCredentials, type: ObvCryptoId} - - {name: groupId, type: "GroupIdentifierBasedOnObjectID?"} -- name: userWantsToSelectAndCallContacts - params: - - {name: contactIDs, type: [TypeSafeManagedObjectID]} - - {name: groupId, type: "GroupIdentifierBasedOnObjectID?"} -- name: userWantsToCallButWeShouldCheckSheIsAllowedTo - params: - - {name: contactIDs, type: [TypeSafeManagedObjectID]} - - {name: groupId, type: "GroupIdentifierBasedOnObjectID?"} -- name: newWebRTCMessageWasReceived - params: - - {name: webrtcMessage, type: WebRTCMessageJSON} - - {name: contactId, type: OlvidUserId} - - {name: messageUploadTimestampFromServer, type: Date} - - {name: messageIdentifierFromEngine, type: Data} -- name: newObvMessageWasReceivedViaPushKitNotification - params: - - {name: obvMessage, type: ObvMessage} -- name: newWebRTCMessageToSend - params: - - {name: webrtcMessage, type: WebRTCMessageJSON} - - {name: contactID, type: TypeSafeManagedObjectID} - - {name: forStartingCall, type: Bool} -- name: isCallKitEnabledSettingDidChange -- name: isIncludesCallsInRecentsEnabledSettingDidChange -- name: networkInterfaceTypeChanged - params: - - {name: isConnected, type: Bool} -- name: outgoingCallFailedBecauseUserDeniedRecordPermission -- name: voiceMessageFailedBecauseUserDeniedRecordPermission -- name: rejectedIncomingCallBecauseUserDeniedRecordPermission -- name: userRequestedDeletionOfPersistedMessage - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: persistedMessageObjectID, type: NSManagedObjectID} - - {name: deletionType, type: DeletionType} -- name: trashShouldBeEmptied -- name: userRequestedDeletionOfPersistedDiscussion - params: - - {name: persistedDiscussionObjectID, type: NSManagedObjectID} - - {name: deletionType, type: DeletionType} - - {name: completionHandler, type: (Bool) -> Void, escaping: true} -- name: newCallLogItem - params: - - {name: objectID, type: TypeSafeManagedObjectID} -- name: callLogItemWasUpdated - params: - - {name: objectID, type: TypeSafeManagedObjectID} -- name: userWantsToIntroduceContactToAnotherContact - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: firstContactCryptoId, type: ObvCryptoId} - - {name: secondContactCryptoIds, type: Set} -- name: userWantsToShareOwnPublishedDetails - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: sourceView, type: UIView} -- name: userWantsToSendInvite - params: - - {name: ownedIdentity, type: ObvOwnedIdentity} - - {name: urlIdentity, type: ObvURLIdentity} -- name: userRequestedAPIKeyStatus - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: apiKey, type: UUID} -- name: userRequestedNewAPIKeyActivation - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: apiKey, type: UUID} -- name: userWantsToNavigateToDeepLink - params: - - {name: deepLink, type: ObvDeepLink} -- name: useLoadBalancedTurnServersDidChange -- name: userWantsToReadReceivedMessagesThatRequiresUserAction - params: - - {name: persistedMessageObjectIDs, type: Set>} -- name: requestThumbnail - params: - - {name: fyleElement, type: FyleElement} - - {name: size, type: CGSize} - - {name: thumbnailType, type: ThumbnailType} - - {name: completionHandler, type: ((Thumbnail) -> Void), escaping: true} -- name: userHasOpenedAReceivedAttachment - params: - - {name: receivedFyleJoinID, type: TypeSafeManagedObjectID} -- name: userWantsToSetAndShareNewDiscussionSharedExpirationConfiguration - params: - - {name: persistedDiscussionObjectID, type: NSManagedObjectID} - - {name: expirationJSON, type: ExpirationJSON} - - {name: ownedCryptoId, type: ObvCryptoId} -- name: userWantsToDeleteContact - params: - - {name: contactCryptoId, type: ObvCryptoId} - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: viewController, type: UIViewController} - - {name: completionHandler, type: ((Bool) -> Void), escaping: true} -- name: cleanExpiredMessagesBackgroundTaskWasLaunched - params: - - {name: completionHandler, type: (Bool) -> Void, escaping: true} -- name: applyRetentionPoliciesBackgroundTaskWasLaunched - params: - - {name: completionHandler, type: (Bool) -> Void, escaping: true} -- name: updateBadgeBackgroundTaskWasLaunched - params: - - {name: completionHandler, type: (Bool) -> Void, escaping: true} -- name: applyAllRetentionPoliciesNow - params: - - {name: launchedByBackgroundTask, type: Bool} - - {name: completionHandler, type: (Bool) -> Void, escaping: true} -- name: userWantsToSendEditedVersionOfSentMessage - params: - - {name: sentMessageObjectID, type: NSManagedObjectID} - - {name: newTextBody, type: String} -- name: newProfilePictureCandidateToCache - params: - - {name: requestUUID, type: UUID} - - {name: profilePicture, type: UIImage} -- name: newCachedProfilePictureCandidate - params: - - {name: requestUUID, type: UUID} - - {name: url, type: URL} -- name: newCustomContactPictureCandidateToSave - params: - - {name: requestUUID, type: UUID} - - {name: profilePicture, type: UIImage} -- name: newSavedCustomContactPictureCandidate - params: - - {name: requestUUID, type: UUID} - - {name: url, type: URL} -- name: obvContactRequest - params: - - {name: requestUUID, type: UUID} - - {name: contactCryptoId, type: ObvCryptoId} - - {name: ownedCryptoId, type: ObvCryptoId} -- name: obvContactAnswer - params: - - {name: requestUUID, type: UUID} - - {name: obvContact, type: ObvContactIdentity} -- name: userWantsToMarkAllMessagesAsNotNewWithinDiscussion - params: - - {name: persistedDiscussionObjectID, type: NSManagedObjectID} - - {name: completionHandler, type: (Bool) -> Void, escaping: true} -- name: resyncContactIdentityDevicesWithEngine - params: - - {name: contactCryptoId, type: ObvCryptoId} - - {name: ownedCryptoId, type: ObvCryptoId} -- name: resyncContactIdentityDetailsStatusWithEngine - params: - - {name: contactCryptoId, type: ObvCryptoId} - - {name: ownedCryptoId, type: ObvCryptoId} -- name: serverDoesNotSuppoortCall -- name: pastedStringIsNotValidOlvidURL -- name: userWantsToRestartChannelEstablishmentProtocol - params: - - {name: contactCryptoId, type: ObvCryptoId} - - {name: ownedCryptoId, type: ObvCryptoId} -- name: userWantsToReCreateChannelEstablishmentProtocol - params: - - {name: contactCryptoId, type: ObvCryptoId} - - {name: ownedCryptoId, type: ObvCryptoId} -- name: contactIdentityDetailsWereUpdated - params: - - {name: contactCryptoId, type: ObvCryptoId} - - {name: ownedCryptoId, type: ObvCryptoId} -- name: userDidSeeNewDetailsOfContact - params: - - {name: contactCryptoId, type: ObvCryptoId} - - {name: ownedCryptoId, type: ObvCryptoId} -- name: userWantsToEditContactNicknameAndPicture - params: - - {name: persistedContactObjectID, type: NSManagedObjectID} - - {name: customDisplayName, type: "String?"} - - {name: customPhotoURL, type: "URL?"} -- name: userWantsToBindOwnedIdentityToKeycloak - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: obvKeycloakState, type: ObvKeycloakState} - - {name: keycloakUserId, type: String} - - {name: completionHandler, type: (Bool) -> Void, escaping: true} -- name: userWantsToUnbindOwnedIdentityFromKeycloak - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: completionHandler, type: (Bool) -> Void, escaping: true} -- name: userWantsToRemoveDraftFyleJoin - params: - - {name: draftFyleJoinObjectID, type: TypeSafeManagedObjectID} -- name: userWantsToChangeContactsSortOrder - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: sortOrder, type: ContactsSortOrder} -- name: userWantsToUpdateLocalConfigurationOfDiscussion - params: - - {name: value, type: PersistedDiscussionLocalConfigurationValue} - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} - - {name: completionHandler, type: () -> Void, escaping: true} -- name: audioInputHasBeenActivated - params: - - {name: label, type: String} - - {name: activate, type: () -> Void, escaping: true} -- name: aViewRequiresObvMutualScanUrl - params: - - {name: remoteIdentity, type: Data} - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: completionHandler, type: ((ObvMutualScanUrl) -> Void), escaping: true} -- name: userWantsToStartTrustEstablishmentWithMutualScanProtocol - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: mutualScanUrl, type: ObvMutualScanUrl} -- name: insertDebugMessagesInAllExistingDiscussions -- name: draftExpirationWasBeenUpdated - params: - - {name: persistedDraftObjectID, type: TypeSafeManagedObjectID} -- name: cleanExpiredMuteNotficationsThatExpiredEarlierThanNow -- name: needToRecomputeAllBadges - params: - - {name: completionHandler, type: (Bool) -> Void, escaping: true} -- name: userWantsToDisplayContactIntroductionScreen - params: - - {name: contactObjectID, type: TypeSafeManagedObjectID} - - {name: viewController, type: UIViewController} -- name: userDidTapOnMissedMessageBubble -- name: olvidSnackBarShouldBeShown - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: snackBarCategory, type: OlvidSnackBarCategory} -- name: UserWantsToSeeDetailedExplanationsOfSnackBar - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: snackBarCategory, type: OlvidSnackBarCategory} -- name: UserDismissedSnackBarForLater - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: snackBarCategory, type: OlvidSnackBarCategory} -- name: UserRequestedToResetAllAlerts -- name: olvidSnackBarShouldBeHidden - params: - - {name: ownedCryptoId, type: ObvCryptoId} -- name: userWantsToUpdateReaction - params: - - {name: messageObjectID, type: TypeSafeManagedObjectID} - - {name: emoji, type: "String?"} -- name: currentUserActivityDidChange - params: - - {name: previousUserActivity, type: ObvUserActivityType} - - {name: currentUserActivity, type: ObvUserActivityType} -- name: displayedSnackBarShouldBeRefreshed -- name: requestUserDeniedRecordPermissionAlert -- name: userWantsToStartIncrementalCleanBackup - params: - - {name: cleanAllDevices, type: Bool} -- name: incrementalCleanBackupStarts -- name: incrementalCleanBackupTerminates -- name: userWantsToUnblockContact - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: contactCryptoId, type: ObvCryptoId} -- name: userWantsToReblockContact - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: contactCryptoId, type: ObvCryptoId} -- name: installedOlvidAppIsOutdated - params: - - {name: presentingViewController, type: "UIViewController?"} -- name: userOwnedIdentityWasRevokedByKeycloak - params: - - {name: ownedCryptoId, type: ObvCryptoId} -- name: uiRequiresSignedContactDetails - params: - - {name: ownedIdentityCryptoId, type: ObvCryptoId} - - {name: contactCryptoId, type: ObvCryptoId} - - {name: completion, type: "(SignedObvKeycloakUserDetails?) -> Void", escaping: true} -- name: requestSyncAppDatabasesWithEngine - params: - - {name: completion, type: "(Result) -> Void", escaping: true} -- name: uiRequiresSignedOwnedDetails - params: - - {name: ownedIdentityCryptoId, type: ObvCryptoId} - - {name: completion, type: "(SignedObvKeycloakUserDetails?) -> Void", escaping: true} -- name: listMessagesOnServerBackgroundTaskWasLaunched - params: - - {name: completionHandler, type: (Bool) -> Void, escaping: true} -- name: userWantsToSendOneToOneInvitationToContact - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: contactCryptoId, type: ObvCryptoId} -- name: userRepliedToReceivedMessageWithinTheNotificationExtension - params: - - {name: contactPermanentID, type: ObvManagedObjectPermanentID} - - {name: messageIdentifierFromEngine, type: Data} - - {name: textBody, type: String} - - {name: completionHandler, type: () -> Void, escaping: true} -- name: userRepliedToMissedCallWithinTheNotificationExtension - params: - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} - - {name: textBody, type: String} - - {name: completionHandler, type: () -> Void, escaping: true} -- name: userWantsToMarkAsReadMessageWithinTheNotificationExtension - params: - - {name: contactPermanentID, type: ObvManagedObjectPermanentID} - - {name: messageIdentifierFromEngine, type: Data} - - {name: completionHandler, type: () -> Void, escaping: true} -- name: userWantsToWipeFyleMessageJoinWithStatus - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: objectIDs, type: Set>} -- name: userWantsToCreateNewGroupV1 - params: - - {name: groupName, type: String} - - {name: groupDescription, type: "String?"} - - {name: groupMembersCryptoIds, type: Set} - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: photoURL, type: "URL?"} -- name: userWantsToCreateNewGroupV2 - params: - - {name: groupCoreDetails, type: GroupV2CoreDetails} - - {name: ownPermissions, type: Set} - - {name: otherGroupMembers, type: Set} - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: photoURL, type: "URL?"} -- name: userWantsToForwardMessage - params: - - {name: messagePermanentID, type: ObvManagedObjectPermanentID} - - {name: discussionPermanentIDs, type: Set>} -- name: userWantsToUpdateGroupV2 - params: - - {name: groupObjectID, type: TypeSafeManagedObjectID} - - {name: changeset, type: ObvGroupV2.Changeset} -- name: inviteContactsToGroupOwned - params: - - {name: groupUid, type: UID} - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: newGroupMembers, type: Set} -- name: removeContactsFromGroupOwned - params: - - {name: groupUid, type: UID} - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: removedContacts, type: Set} -- name: badgeForNewMessagesHasBeenUpdated - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: newCount, type: Int} -- name: badgeForInvitationsHasBeenUpdated - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: newCount, type: Int} -- name: requestRunningLog - params: - - {name: completion, type: (RunningLogError) -> Void} -- name: metaFlowControllerViewDidAppear -- name: userWantsToUpdateCustomNameAndGroupV2Photo - params: - - {name: groupObjectID, type: TypeSafeManagedObjectID} - - {name: customName, type: "String?"} - - {name: customPhotoURL, type: "URL?"} -- name: userHasSeenPublishedDetailsOfGroupV2 - params: - - {name: groupObjectID, type: TypeSafeManagedObjectID} -- name: tooManyWrongPasscodeAttemptsCausedLockOut -- name: backupForExportWasExported -- name: backupForUploadWasUploaded -- name: backupForUploadFailedToUpload -- name: userWantsToCreateNewOwnedIdentity -- name: userWantsToSwitchToOtherOwnedIdentity - params: - - {name: ownedCryptoId, type: ObvCryptoId} -- name: userWantsToDeleteOwnedIdentityButHasNotConfirmedYet - params: - - {name: ownedCryptoId, type: ObvCryptoId} -- name: userWantsToDeleteOwnedIdentityAndHasConfirmed - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: notifyContacts, type: Bool} -- name: userWantsToHideOwnedIdentity - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: password, type: String} -- name: failedToHideOwnedIdentity - params: - - {name: ownedCryptoId, type: ObvCryptoId} -- name: userWantsToSwitchToOtherHiddenOwnedIdentity - params: - - {name: password, type: String} -- name: userWantsToUnhideOwnedIdentity - params: - - {name: ownedCryptoId, type: ObvCryptoId} -- name: metaFlowControllerDidSwitchToOwnedIdentity - params: - - {name: ownedCryptoId, type: ObvCryptoId} -- name: recomputeRecomputeBadgeCountForDiscussionsTabForAllOwnedIdentities -- name: closeAnyOpenHiddenOwnedIdentity -- name: userWantsToUpdateOwnedCustomDisplayName - params: - - {name: ownedCryptoId, type: ObvCryptoId} - - {name: newCustomDisplayName, type: "String?"} -- name: userWantsToReorderDiscussions - params: - - {name: discussionObjectIds, type: [NSManagedObjectID]} - - {name: ownedIdentity, type: ObvCryptoId} - - {name: completionHandler, type: "((Bool) -> Void)?"} -- name: betaUserWantsToDebugCoordinatorsQueue -- name: betaUserWantsToSeeLogString - params: - - {name: logString, type: String} -- name: draftFyleJoinWasDeleted - params: - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} - - {name: draftPermanentID, type: ObvManagedObjectPermanentID} - - {name: draftFyleJoinPermanentID, type: ObvManagedObjectPermanentID} -- name: draftToSendWasReset - params: - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} - - {name: draftPermanentID, type: ObvManagedObjectPermanentID} -- name: fyleMessageJoinWasWiped - params: - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} - - {name: messagePermanentID, type: ObvManagedObjectPermanentID} - - {name: fyleMessageJoinPermanentID, type: ObvManagedObjectPermanentID} -- name: userWantsToUpdateDiscussionLocalConfiguration - params: - - {name: value, type: PersistedDiscussionLocalConfigurationValue} - - {name: localConfigurationObjectID, type: TypeSafeManagedObjectID} -- name: userWantsToArchiveDiscussion - params: - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} - - {name: completionHandler, type: "((Bool) -> Void)?"} -- name: userWantsToUnarchiveDiscussion - params: - - {name: discussionPermanentID, type: ObvManagedObjectPermanentID} - - {name: updateTimestampOfLastMessage, type: Bool} - - {name: completionHandler, type: "((Bool) -> Void)?"} -- name: userWantsToRefreshDiscussions - params: - - {name: completionHandler, type: "(() -> Void)", escaping: true} -- name: updateNormalizedSearchKeyOnPersistedDiscussions - params: - - {name: ownedIdentity, type: ObvCryptoId} - - {name: completionHandler, type: "(() -> Void)?"} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Notifications/SubscriptionNotification.swift b/iOSClient/ObvMessenger/ObvMessenger/Notifications/SubscriptionNotification.swift deleted file mode 100644 index ed20746b..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Notifications/SubscriptionNotification.swift +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2023 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import StoreKit - -fileprivate struct OptionalWrapper { - let value: T? - public init() { - self.value = nil - } - public init(_ value: T?) { - self.value = value - } -} - -enum SubscriptionNotification { - case newListOfSKProducts(result: Result<[SKProduct], SubscriptionManager.RequestedListOfSKProductsError>) - case userRequestedToBuySKProduct(skProduct: SKProduct) - case skProductPurchaseFailed(error: SKError) - case userRequestedListOfSKProducts - case userDecidedToCancelToTheSKProductPurchase - case skProductPurchaseWasDeferred - case userRequestedToRestoreAppStorePurchases - case thereWasNoAppStorePurchaseToRestore - case allPurchaseTransactionsSentToEngineWereProcessed - - private enum Name { - case newListOfSKProducts - case userRequestedToBuySKProduct - case skProductPurchaseFailed - case userRequestedListOfSKProducts - case userDecidedToCancelToTheSKProductPurchase - case skProductPurchaseWasDeferred - case userRequestedToRestoreAppStorePurchases - case thereWasNoAppStorePurchaseToRestore - case allPurchaseTransactionsSentToEngineWereProcessed - - private var namePrefix: String { String(describing: SubscriptionNotification.self) } - - private var nameSuffix: String { String(describing: self) } - - var name: NSNotification.Name { - let name = [namePrefix, nameSuffix].joined(separator: ".") - return NSNotification.Name(name) - } - - static func forInternalNotification(_ notification: SubscriptionNotification) -> NSNotification.Name { - switch notification { - case .newListOfSKProducts: return Name.newListOfSKProducts.name - case .userRequestedToBuySKProduct: return Name.userRequestedToBuySKProduct.name - case .skProductPurchaseFailed: return Name.skProductPurchaseFailed.name - case .userRequestedListOfSKProducts: return Name.userRequestedListOfSKProducts.name - case .userDecidedToCancelToTheSKProductPurchase: return Name.userDecidedToCancelToTheSKProductPurchase.name - case .skProductPurchaseWasDeferred: return Name.skProductPurchaseWasDeferred.name - case .userRequestedToRestoreAppStorePurchases: return Name.userRequestedToRestoreAppStorePurchases.name - case .thereWasNoAppStorePurchaseToRestore: return Name.thereWasNoAppStorePurchaseToRestore.name - case .allPurchaseTransactionsSentToEngineWereProcessed: return Name.allPurchaseTransactionsSentToEngineWereProcessed.name - } - } - } - private var userInfo: [AnyHashable: Any]? { - let info: [AnyHashable: Any]? - switch self { - case .newListOfSKProducts(result: let result): - info = [ - "result": result, - ] - case .userRequestedToBuySKProduct(skProduct: let skProduct): - info = [ - "skProduct": skProduct, - ] - case .skProductPurchaseFailed(error: let error): - info = [ - "error": error, - ] - case .userRequestedListOfSKProducts: - info = nil - case .userDecidedToCancelToTheSKProductPurchase: - info = nil - case .skProductPurchaseWasDeferred: - info = nil - case .userRequestedToRestoreAppStorePurchases: - info = nil - case .thereWasNoAppStorePurchaseToRestore: - info = nil - case .allPurchaseTransactionsSentToEngineWereProcessed: - info = nil - } - return info - } - - func post(object anObject: Any? = nil) { - let name = Name.forInternalNotification(self) - NotificationCenter.default.post(name: name, object: anObject, userInfo: userInfo) - } - - func postOnDispatchQueue(object anObject: Any? = nil) { - let name = Name.forInternalNotification(self) - postOnDispatchQueue(withLabel: "Queue for posting \(name.rawValue) notification", object: anObject) - } - - func postOnDispatchQueue(_ queue: DispatchQueue) { - let name = Name.forInternalNotification(self) - queue.async { - NotificationCenter.default.post(name: name, object: nil, userInfo: userInfo) - } - } - - private func postOnDispatchQueue(withLabel label: String, object anObject: Any? = nil) { - let name = Name.forInternalNotification(self) - let userInfo = self.userInfo - DispatchQueue(label: label).async { - NotificationCenter.default.post(name: name, object: anObject, userInfo: userInfo) - } - } - - static func observeNewListOfSKProducts(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (Result<[SKProduct], SubscriptionManager.RequestedListOfSKProductsError>) -> Void) -> NSObjectProtocol { - let name = Name.newListOfSKProducts.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let result = notification.userInfo!["result"] as! Result<[SKProduct], SubscriptionManager.RequestedListOfSKProductsError> - block(result) - } - } - - static func observeUserRequestedToBuySKProduct(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (SKProduct) -> Void) -> NSObjectProtocol { - let name = Name.userRequestedToBuySKProduct.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let skProduct = notification.userInfo!["skProduct"] as! SKProduct - block(skProduct) - } - } - - static func observeSkProductPurchaseFailed(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (SKError) -> Void) -> NSObjectProtocol { - let name = Name.skProductPurchaseFailed.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let error = notification.userInfo!["error"] as! SKError - block(error) - } - } - - static func observeUserRequestedListOfSKProducts(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { - let name = Name.userRequestedListOfSKProducts.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - block() - } - } - - static func observeUserDecidedToCancelToTheSKProductPurchase(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { - let name = Name.userDecidedToCancelToTheSKProductPurchase.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - block() - } - } - - static func observeSkProductPurchaseWasDeferred(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { - let name = Name.skProductPurchaseWasDeferred.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - block() - } - } - - static func observeUserRequestedToRestoreAppStorePurchases(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { - let name = Name.userRequestedToRestoreAppStorePurchases.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - block() - } - } - - static func observeThereWasNoAppStorePurchaseToRestore(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { - let name = Name.thereWasNoAppStorePurchaseToRestore.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - block() - } - } - - static func observeAllPurchaseTransactionsSentToEngineWereProcessed(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { - let name = Name.allPurchaseTransactionsSentToEngineWereProcessed.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - block() - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Notifications/SubscriptionNotification.yml b/iOSClient/ObvMessenger/ObvMessenger/Notifications/SubscriptionNotification.yml deleted file mode 100644 index e653d47f..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Notifications/SubscriptionNotification.yml +++ /dev/null @@ -1,19 +0,0 @@ -import: - - Foundation - - StoreKit -notifications: -- name: newListOfSKProducts - params: - - {name: result, type: "Result<[SKProduct], SubscriptionManager.RequestedListOfSKProductsError>"} -- name: userRequestedToBuySKProduct - params: - - {name: skProduct, type: SKProduct} -- name: skProductPurchaseFailed - params: - - {name: error, type: SKError} -- name: userRequestedListOfSKProducts -- name: userDecidedToCancelToTheSKProductPurchase -- name: skProductPurchaseWasDeferred -- name: userRequestedToRestoreAppStorePurchases -- name: thereWasNoAppStorePurchaseToRestore -- name: allPurchaseTransactionsSentToEngineWereProcessed diff --git a/iOSClient/ObvMessenger/ObvMessenger/ObvMessenger.entitlements b/iOSClient/ObvMessenger/ObvMessenger/ObvMessenger.entitlements index c77c0391..e501e387 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/ObvMessenger.entitlements +++ b/iOSClient/ObvMessenger/ObvMessenger/ObvMessenger.entitlements @@ -2,6 +2,8 @@ + aps-environment + development com.apple.developer.associated-domains applinks:$(OBV_HOST_FOR_INVITATIONS) @@ -20,8 +22,6 @@ com.apple.developer.usernotifications.communication - aps-environment - development com.apple.security.app-sandbox com.apple.security.application-groups @@ -32,8 +32,12 @@ com.apple.security.device.camera + com.apple.security.files.user-selected.read-write + com.apple.security.network.client + com.apple.security.network.server + com.apple.security.personal-information.photos-library diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/AddProfile/AddProfileView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/AddProfile/AddProfileView.swift new file mode 100644 index 00000000..744d9dbc --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/AddProfile/AddProfileView.swift @@ -0,0 +1,61 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI + +protocol AddProfileViewActionsProtocol: AnyObject { + func userWantsToCreateNewProfile() async + func userWantsToImportProfileFromAnotherDevice() async +} + + +struct AddProfileView: View { + + let actions: AddProfileViewActionsProtocol + + var body: some View { + VStack { + + // Vertically center the view, but not on iPhone + + if UIDevice.current.userInterfaceIdiom != .phone { + Spacer() + } + + NewOnboardingHeaderView( + title: "ONBOARDING_ADD_PROFILE_TITLE", + subtitle: nil) + .padding(.bottom, 35) + + VStack { + OnboardingSpecificPlainButton("ONBOARDING_ADD_PROFILE_IMPORT_BUTTON", action: { + Task { await actions.userWantsToImportProfileFromAnotherDevice() } + }) + .padding(.bottom) + OnboardingSpecificPlainButton("ONBOARDING_ADD_PROFILE_CREATE_BUTTON", action: { + Task { await actions.userWantsToCreateNewProfile() } + }) + } + + Spacer() + + }.padding(.horizontal) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/AddProfile/AddProfileViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/AddProfile/AddProfileViewController.swift new file mode 100644 index 00000000..b4155a86 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/AddProfile/AddProfileViewController.swift @@ -0,0 +1,110 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI + + +protocol AddProfileViewControllerDelegate: AnyObject { + func userWantsToCloseOnboarding(controller: AddProfileViewController) async + func userWantsToCreateNewProfile(controller: AddProfileViewController) async + func userWantsToImportProfileFromAnotherDevice(controller: AddProfileViewController) async +} + + +final class AddProfileViewController: UIHostingController, AddProfileViewActionsProtocol { + + private weak var delegate: AddProfileViewControllerDelegate? + + private let showCloseButton: Bool + + init(showCloseButton: Bool, delegate: AddProfileViewControllerDelegate) { + self.showCloseButton = showCloseButton + let actions = AddProfileViewActions() + let view = AddProfileView(actions: actions) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + if showCloseButton { + let handler: UIActionHandler = { [weak self] _ in self?.closeAction() } + let closeButton = UIBarButtonItem(systemItem: .close, primaryAction: .init(handler: handler)) + navigationItem.rightBarButtonItem = closeButton + } + } + + + private func closeAction() { + Task { [weak self] in + guard let self else { return } + await delegate?.userWantsToCloseOnboarding(controller: self) + } + } + + + // AddProfileViewActionsProtocol + + func userWantsToCreateNewProfile() async { + await delegate?.userWantsToCreateNewProfile(controller: self) + } + + func userWantsToImportProfileFromAnotherDevice() async { + await delegate?.userWantsToImportProfileFromAnotherDevice(controller: self) + } + +} + + + + +private final class AddProfileViewActions: AddProfileViewActionsProtocol { + + weak var delegate: AddProfileViewActionsProtocol? + + func userWantsToCreateNewProfile() async { + await delegate?.userWantsToCreateNewProfile() + } + + func userWantsToImportProfileFromAnotherDevice() async { + await delegate?.userWantsToImportProfileFromAnotherDevice() + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/AutorisationRequesterHostingController/AutorisationRequesterHostingController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/AutorisationRequesterHostingController/AutorisationRequesterHostingController.swift deleted file mode 100644 index ba41dd6b..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/AutorisationRequesterHostingController/AutorisationRequesterHostingController.swift +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import SwiftUI -import ObvEngine -import ObvUI -import ObvUICoreData - -final class AutorisationRequesterHostingController: UIHostingController { - - enum AutorisationCategory { - case localNotifications - case recordPermission - } - - init(autorisationCategory: AutorisationCategory, delegate: AutorisationRequesterHostingControllerDelegate) { - let view = AutorisationRequesterView(autorisationCategory: autorisationCategory, delegate: delegate) - super.init(rootView: view) - } - - @objc required dynamic init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - -} - -struct AutorisationRequesterView: View { - - let autorisationCategory: AutorisationRequesterHostingController.AutorisationCategory - let delegate: AutorisationRequesterHostingControllerDelegate - - private var textBody: Text { - switch autorisationCategory { - case .localNotifications: - return Text("SUBSCRIBING_TO_USER_NOTIFICATIONS_EXPLANATION") - case .recordPermission: - return Text("EXPLANATION_WHY_RECORD_PERMISSION_IS_IMPORTANT") - } - } - - private var textTitle: Text { - switch autorisationCategory { - case .localNotifications: - return Text("TITLE_NEVER_MISS_A_MESSAGE") - case .recordPermission: - return Text("TITLE_NEVER_MISS_A_SECURE_CALL") - } - } - - private var buttonTitle: Text { - switch autorisationCategory { - case .localNotifications: - return Text("BUTON_TITLE_ACTIVATE_NOTIFICATION") - case .recordPermission: - return Text("BUTON_TITLE_REQUEST_RECORD_PERMISSION") - } - } - - var body: some View { - - ZStack { - Color(AppTheme.shared.colorScheme.systemBackground) - .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity) - .edgesIgnoringSafeArea(.all) - VStack(alignment: .leading, spacing: 16) { - HStack { - textTitle - .font(.largeTitle) - .fontWeight(.bold) - Spacer() - } - ObvCardView { - textBody - .frame(minWidth: .none, - maxWidth: .infinity, - minHeight: .none, - idealHeight: .none, - maxHeight: .none, - alignment: .center) - .font(.body) - } - Spacer() - OlvidButton(style: .blue, title: buttonTitle) { - Task(priority: .userInitiated) { - await delegate.requestAutorisation(now: true, for: autorisationCategory) - } - } - OlvidButton(style: .standardWithBlueText, title: Text(CommonString.Word.Later)) { - Task(priority: .userInitiated) { - await delegate.requestAutorisation(now: false, for: autorisationCategory) - } - } - }.padding() - } - } -} - - -struct AutorisationRequesterView_Previews: PreviewProvider { - - private final class MocAutorisationRequesterHostingControllerDelegate: AutorisationRequesterHostingControllerDelegate { - @MainActor - func requestAutorisation(now: Bool, for autorisationCategory: AutorisationRequesterHostingController.AutorisationCategory) async {} - } - - private static let delegate = MocAutorisationRequesterHostingControllerDelegate() - - static var previews: some View { - Group { - AutorisationRequesterView(autorisationCategory: .recordPermission, delegate: delegate) - AutorisationRequesterView(autorisationCategory: .recordPermission, delegate: delegate) - .environment(\.locale, .init(identifier: "fr")) - AutorisationRequesterView(autorisationCategory: .localNotifications, delegate: delegate) - AutorisationRequesterView(autorisationCategory: .localNotifications, delegate: delegate) - .environment(\.locale, .init(identifier: "fr")) - } - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/AutorisationRequesterHostingController/AutorisationRequesterHostingControllerDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/AutorisationRequesterHostingController/AutorisationRequesterHostingControllerDelegate.swift deleted file mode 100644 index 14267f75..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/AutorisationRequesterHostingController/AutorisationRequesterHostingControllerDelegate.swift +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import ObvEngine - -protocol AutorisationRequesterHostingControllerDelegate: AnyObject { - - @MainActor - func requestAutorisation(now: Bool, for autorisationCategory: AutorisationRequesterHostingController.AutorisationCategory) async - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/01ChooseBackupFile/ChooseBackupFileView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/01ChooseBackupFile/ChooseBackupFileView.swift new file mode 100644 index 00000000..ef21dd04 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/01ChooseBackupFile/ChooseBackupFileView.swift @@ -0,0 +1,443 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import CloudKit +import UI_SystemIcon + + +protocol ChooseBackupFileViewActionsProtocol: AnyObject { + func userWantsToRestoreBackupFromFile() async -> [NewBackupInfo] + func userWantsToRestoreBackupFromICloud() async throws -> [NewBackupInfo] + func userWantsToProceedWithBackup(encryptedBackup: Data) async +} + + + +struct ChooseBackupFileView: View, NewBackupFileDropViewActionsDelegate { + + let actions: ChooseBackupFileViewActionsProtocol + + @State private var backupInfos = [NewBackupInfo]() + @State private var alertType: AlertType? = nil + @State private var isAlertPresented: Bool = false + @State private var selectedBackup: NewBackupInfo? = nil + @State private var isPerformingCloudFetch = false + + private enum AlertType { + case icloudAccountStatusIsNotAvailable + case cloudKitError(ckError: CKError) + case otherCloudError(error: NSError) + } + + enum ObvError: Error { + case icloudAccountStatusIsNotAvailable + case cloudKitError(ckError: CKError) + case otherCloudError(error: NSError) + } + + private func userWantsToRestoreBackupFromFile() { + Task { + let newBackupInfos = await actions.userWantsToRestoreBackupFromFile() + await addNewBackupInfos(newBackupInfos) + } + } + + @MainActor + private func userWantsToRestoreBackupFromICloud() async { + isPerformingCloudFetch = true + defer { isPerformingCloudFetch = false } + do { + let newBackupInfos = try await actions.userWantsToRestoreBackupFromICloud() + await addNewBackupInfos(newBackupInfos) + } catch { + let obvError = (error as? ObvError) ?? ObvError.otherCloudError(error: error as NSError) + switch obvError { + case .icloudAccountStatusIsNotAvailable: + alertType = .icloudAccountStatusIsNotAvailable + case .cloudKitError(let ckError): + alertType = .cloudKitError(ckError: ckError) + case .otherCloudError(let error): + alertType = .otherCloudError(error: error) + } + isAlertPresented = true + } + } + + + private func userWantsToProceedWithBackup(url: URL) { + guard let encryptedBackupData = try? Data(contentsOf: url) else { return } + Task { await actions.userWantsToProceedWithBackup(encryptedBackup: encryptedBackupData) } + } + + + func userDroppedBackupInfos(_ backupInfos: [NewBackupInfo]) -> Bool { + Task { await addNewBackupInfos(backupInfos) } + return true + } + + + @MainActor + private func addNewBackupInfos(_ newBackupInfos: [NewBackupInfo]) async { + let mergedBackupInfos = Set(self.backupInfos).union(Set(newBackupInfos)) + withAnimation { + self.backupInfos = Array(mergedBackupInfos) + self.backupInfos.sort { b1, b2 in + if let d1 = b1.creationDate, let d2 = b2.creationDate { + return d1 > d2 + } + return b1.fileUrl.lastPathComponent > b2.fileUrl.lastPathComponent + } + } + } + + + private var alertTitle: LocalizedStringKey { + switch alertType { + case .icloudAccountStatusIsNotAvailable: + return "Sign in to iCloud" + case .cloudKitError: + return "iCloud error" + case .otherCloudError: + return "ERROR" + case .none: + return "" + } + } + + private var alertMessage: LocalizedStringKey { + switch alertType { + case .icloudAccountStatusIsNotAvailable: + return "Please sign in to your iCloud account. On the Home screen, launch Settings, tap iCloud, and enter your Apple ID. Turn iCloud Drive on." + case .cloudKitError(ckError: let ckError): + return LocalizedStringKey(stringLiteral: ckError.localizedDescription) + case .otherCloudError(error: let error): + return LocalizedStringKey(stringLiteral: error.localizedDescription) + case .none: + return "" + } + } + + + var body: some View { + VStack { + ScrollView { + VStack { + + NewOnboardingHeaderView( + title: "CHOOSE_YOUR_BACKUP_FILE_ONBOARDING_TITLE", + subtitle: nil) + + HStack { + OnboardingSpecificBlueButton("ONBOARDING_BUTTON_CHOOSE_BACKUP_FILE_FROM_FILES", + systemIcon: .folderFill, + action: userWantsToRestoreBackupFromFile) + OnboardingSpecificBlueButton("ONBOARDING_BUTTON_CHOOSE_BACKUP_FILE_FROM_ICLOUD", + systemIcon: .icloud(.fill), + action: { Task { await userWantsToRestoreBackupFromICloud() } }) + .disabled(isPerformingCloudFetch) + .overlay { + ProgressView() + .progressViewStyle(CircularProgressViewStyle(tint: Color.white)) + .opacity(isPerformingCloudFetch ? 1.0 : 0.0) + } + }.padding() + + if #available(iOS 16, *), UIDevice.current.userInterfaceIdiom != .phone { + NewBackupFileDropView(actions: self) + .padding(.horizontal) + } + + if !backupInfos.isEmpty { + VStack { + Divider() + .padding(.vertical) + VStack { + HStack { + Text("ONBOARDING_WHICH_BACKUP_DO_YOU_WANT_TO_RESTORE") + .font(.headline) + Spacer() + } + NewBackupInfoListView(model: backupInfos, + selectedBackup: $selectedBackup) + } + .padding(.trailing) + } + .padding(.leading) + } + + + } + } + + Spacer() + + ValidateButton(action: { + guard let selectedBackup else { return } + userWantsToProceedWithBackup(url: selectedBackup.fileUrl) + }) + .disabled(selectedBackup == nil) + .padding() + + }.alert(alertTitle, + isPresented: $isAlertPresented, + presenting: alertType) + { details in + } message: { details in + Text(alertMessage) + } + } +} + + +// MARK: - OnboardingSpecificBlueButton + +struct OnboardingSpecificBlueButton: View { + + private let key: LocalizedStringKey + private let systemIcon: SystemIcon + private let action: () -> Void + + @Environment(\.isEnabled) var isEnabled + + init(_ key: LocalizedStringKey, systemIcon: SystemIcon, action: @escaping () -> Void) { + self.key = key + self.systemIcon = systemIcon + self.action = action + } + + var body: some View { + Button(action: action) { + Label(key, systemIcon: systemIcon) + .lineLimit(1) + .foregroundStyle(.white) + .padding(.vertical) + } + .frame(maxWidth: .infinity) // So that two side-by-side buttons have the same size + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + } + +} + + +// MARK: - Internal validate button + +private struct ValidateButton: View { + + let action: () -> Void + + @Environment(\.isEnabled) var isEnabled + + var body: some View { + Button(action: action) { + Label("VALIDATE", systemIcon: .checkmarkCircleFill) + .lineLimit(1) + .foregroundStyle(.white) + .padding(.vertical) + .frame(maxWidth: .infinity) + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.0) + } + +} + +// MARK: - NewBackupInfoListView and Cell + +private struct NewBackupInfoListView: View { + + let model: [NewBackupInfo] + @Binding var selectedBackup: NewBackupInfo? + + var body: some View { + ForEach(model) { backupInfo in + NewBackupInfoListViewCell( + model: backupInfo, + showAsSelectable: true, + selectedBackup: $selectedBackup) + } + .onAppear(perform: { + // If there is only one backup in the list, select it immediately + if model.count == 1, let onlyBackup = model.first { + selectedBackup = onlyBackup + } + }) + } + +} + + +private struct NewBackupInfoListViewCell: View { + + let model: NewBackupInfo + let showAsSelectable: Bool + @Binding var selectedBackup: NewBackupInfo? + + private let dateFormater: DateFormatter = { + let df = DateFormatter() + df.locale = Locale.current + df.doesRelativeDateFormatting = true + df.timeStyle = .short + df.dateStyle = .short + return df + }() + + var body: some View { + HStack(alignment: .center) { + + if showAsSelectable { + Image(systemIcon: model == selectedBackup ? .checkmarkCircleFill : .circle) + .font(Font.system(size: 24, weight: .regular, design: .default)) + .foregroundColor(model == selectedBackup ? Color.green : Color.gray) + } + + VStack(alignment: .leading) { + if let deviceName = model.deviceName { + Text(deviceName) + .font(.system(.headline, design: .rounded)) + } + if let formattedDate = model.creationDate?.relativeFormatted { + Text(formattedDate) + .font(.system(.callout)) + } else { + Text(model.fileUrl.lastPathComponent) + .font(.system(.footnote, design: .monospaced)) + } + } + + Spacer() + + } + .padding(.vertical, 6.0) + .contentShape(Rectangle()) // This makes it possible to have an "on tap" gesture that also works when the Spacer is tapped + .onTapGesture { + selectedBackup = model + } + } + +} + + +// MARK: - BackupFileDropView + + +protocol NewBackupFileDropViewActionsDelegate { + /// Returns `true` if the drop operation was successful; otherwise, return `false`. + func userDroppedBackupInfos(_ backupInfos: [NewBackupInfo]) -> Bool +} + + +@available(iOS 16.0, *) +fileprivate struct NewBackupFileDropView: View { + + let actions: NewBackupFileDropViewActionsDelegate + + var body: some View { + ZStack { + RoundedRectangle(cornerRadius: 12) + .strokeBorder(style: StrokeStyle(lineWidth: 1, dash: [8])) + .frame(maxHeight: .infinity, alignment: .center) + Label("ONBOARDING_DROP_A_BACKUP_FILE_HERE", systemIcon: .squareAndArrowDownOnSquare) + .font(.body) + .padding(.vertical, 64) + } + .contentShape(Rectangle()) // This makes it possible to have an "on tap" gesture that also works when the Spacer is tapped + .dropDestination(for: NewBackupInfo.self) { items, location in + return actions.userDroppedBackupInfos(items) + } + } + +} + + + + +struct ChooseBackupFileView_Previews: PreviewProvider { + + private final class ActionsForPreviews: ChooseBackupFileViewActionsProtocol { + + func userWantsToRestoreBackupFromFile() async -> [NewBackupInfo] { + let backupInfosForPreviews: [NewBackupInfo] = [ + .init(fileUrl: URL(fileURLWithPath: "Olvid backup 2023-09-05 16-13-27.olvidbackup"), + deviceName: nil, + creationDate: nil), + .init(fileUrl: URL(fileURLWithPath: "Olvid backup 2023-09-05 16-11-26.olvidbackup"), + deviceName: nil, + creationDate: nil), + ] + return backupInfosForPreviews + } + + func userWantsToRestoreBackupFromICloud() async throws -> [NewBackupInfo] { + try await Task.sleep(seconds: 2) // Simulate cloud fetch + let backupInfosForPreviews: [NewBackupInfo] = [ + .init(fileUrl: URL(fileURLWithPath: "Olvid backup from iCloud"), + deviceName: "iPhone", + creationDate: .init(timeIntervalSince1970: 1_700_000_000)), + .init(fileUrl: URL(fileURLWithPath: "Another Olvid backup from iCloud"), + deviceName: "iPhone", + creationDate: .init(timeIntervalSince1970: 1_600_000_000)), + ] + return backupInfosForPreviews + } + + func userDroppedBackupInfos(_ backupInfos: [NewBackupInfo]) -> Bool { return false } + func userWantsToProceedWithBackup(encryptedBackup: Data) async {} + } + + + private final class ThrowingActionsForPreviews: ChooseBackupFileViewActionsProtocol { + + func userWantsToRestoreBackupFromFile() async -> [NewBackupInfo] { + return [] + } + + func userWantsToRestoreBackupFromICloud() async throws -> [NewBackupInfo] { + throw ChooseBackupFileView.ObvError.icloudAccountStatusIsNotAvailable + } + + func userDroppedBackupInfos(_ backupInfos: [NewBackupInfo]) -> Bool { return false } + func userWantsToProceedWithBackup(encryptedBackup: Data) async {} + + } + + private static let actions = ActionsForPreviews() + private static let throwingActions = ThrowingActionsForPreviews() + + private static let backupInfosForPreviews: [NewBackupInfo] = [ + .init(fileUrl: URL(fileURLWithPath: "Olvid backup 2023-09-05 16-13-27.olvidbackup"), + deviceName: nil, + creationDate: nil), + .init(fileUrl: URL(fileURLWithPath: "Olvid backup 2023-09-05 16-11-26.olvidbackup"), + deviceName: nil, + creationDate: nil), + ] + + static var previews: some View { + ChooseBackupFileView(actions: actions) + ChooseBackupFileView(actions: throwingActions) + } + +} + + + diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/01ChooseBackupFile/ChooseBackupFileViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/01ChooseBackupFile/ChooseBackupFileViewController.swift new file mode 100644 index 00000000..6cb84751 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/01ChooseBackupFile/ChooseBackupFileViewController.swift @@ -0,0 +1,201 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import CloudKit +import os.log + + +protocol ChooseBackupFileViewControllerDelegate: AnyObject { + func userWantsToProceedWithBackup(controller: ChooseBackupFileViewController, encryptedBackup: Data) async +} + + +final class ChooseBackupFileViewController: UIHostingController, ChooseBackupFileViewActionsProtocol, UIDocumentPickerDelegate { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: ChooseBackupFileViewController.self)) + weak private var delegate: ChooseBackupFileViewControllerDelegate? + + init(delegate: ChooseBackupFileViewControllerDelegate) { + let actions = ChooseBackupFileViewActions() + let view = ChooseBackupFileView(actions: actions) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + deinit { + debugPrint("ChooseBackupFileViewController deinit") + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func viewDidLoad() { + super.viewDidLoad() + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + } + + // ChooseBackupFileViewActionsProtocol + + /// The continuation is created when presenting the document picker, and resumed in the delegates methods called when the picker is dismissed. + private var currentContinuation: CheckedContinuation<[NewBackupInfo], Never>? + + @MainActor + func userWantsToRestoreBackupFromFile() async -> [NewBackupInfo] { + // We do *not* specify ObvUTIUtils.kUTTypeOlvidBackup here. It does not work under Google Drive. + // And it never works within the simulator. + let documentPicker = UIDocumentPickerViewController(forOpeningContentTypes: [.item]) + // let documentTypes = [kUTTypeItem] as [String] // 2020-03-13 Custom UTIs do not work in the simulator + // let documentPicker = UIDocumentPickerViewController(documentTypes: documentTypes, in: .import) + documentPicker.delegate = self + documentPicker.allowsMultipleSelection = true + let backupInfos: [NewBackupInfo] = await withCheckedContinuation { (continuation: CheckedContinuation<[NewBackupInfo], Never>) in + resumePreviousContinuationIfRequired() + currentContinuation = continuation + present(documentPicker, animated: true) + } + return backupInfos + } + + + private func resumePreviousContinuationIfRequired() { + guard let continuation = currentContinuation else { return } + self.currentContinuation = nil + continuation.resume(returning: []) + } + + + func userWantsToRestoreBackupFromICloud() async throws -> [NewBackupInfo] { + let container = CKContainer(identifier: ObvMessengerConstants.iCloudContainerIdentifierForEngineBackup) + do { + let accountStatus = try await container.accountStatus() + guard accountStatus == .available else { + os_log("The iCloud account isn't available. We cannot restore an uploaded backup.", log: Self.log, type: .fault) + throw ChooseBackupFileView.ObvError.icloudAccountStatusIsNotAvailable + } + + // The iCloud service is available. Look for backups to restore. + + let container = CKContainer(identifier: ObvMessengerConstants.iCloudContainerIdentifierForEngineBackup) + let database = container.privateCloudDatabase + + let config = CKOperation.Configuration() + config.qualityOfService = .userInitiated + + let predicate = NSPredicate(value: true) + let query = CKQuery(recordType: AppBackupManager.recordType, predicate: predicate) + query.sortDescriptors = [NSSortDescriptor(key: AppBackupManager.creationDate, ascending: false)] + + let records = try await database.configuredWith(configuration: config) { db in + try await db.records(matching: query, resultsLimit: 5) // Get up to 5 records + } + + let infos: [NewBackupInfo] = records.matchResults + .compactMap { matchResult in + let result = matchResult.1 + switch result { + case .success(let ckRecord): + guard let asset = ckRecord[.encryptedBackupFile] as? CKAsset, + let url = asset.fileURL else { + return nil + } + let deviceName = ckRecord[.deviceName] as? String + let creationDate = ckRecord.creationDate + let backupInfos = NewBackupInfo(fileUrl: url, deviceName: deviceName, creationDate: creationDate) + return backupInfos + case .failure: + return nil + } + } + + return infos + + } catch { + if let ckError = error as? CKError { + throw ChooseBackupFileView.ObvError.cloudKitError(ckError: ckError) + } else if error is ChooseBackupFileView.ObvError { + throw error + } else { + throw ChooseBackupFileView.ObvError.otherCloudError(error: error as NSError) + } + } + } + + + func userWantsToProceedWithBackup(encryptedBackup: Data) async { + Task { [weak self] in + guard let self else { return } + await delegate?.userWantsToProceedWithBackup(controller: self, encryptedBackup: encryptedBackup) + } + } + + + // MARK: - UIDocumentPickerDelegate + + func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) { + guard let continuation = self.currentContinuation else { assertionFailure(); return } + self.currentContinuation = nil + let infos = urls.compactMap({ NewBackupInfo.createBackupInfoByCopyingFile(at: $0) }) + continuation.resume(returning: infos) + } + + + func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) { + guard let continuation = self.currentContinuation else { assertionFailure(); return } + self.currentContinuation = nil + continuation.resume(returning: []) + } + +} + + +private final class ChooseBackupFileViewActions: ChooseBackupFileViewActionsProtocol { + + weak var delegate: ChooseBackupFileViewActionsProtocol? + + func userWantsToRestoreBackupFromFile() async -> [NewBackupInfo] { + guard let delegate else { assertionFailure(); return [] } + return await delegate.userWantsToRestoreBackupFromFile() + } + + func userWantsToRestoreBackupFromICloud() async throws -> [NewBackupInfo] { + guard let delegate else { assertionFailure(); return [] } + return try await delegate.userWantsToRestoreBackupFromICloud() + } + + func userWantsToProceedWithBackup(encryptedBackup: Data) async { + await delegate?.userWantsToProceedWithBackup(encryptedBackup: encryptedBackup) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/01ChooseBackupFile/NewBackupInfo.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/01ChooseBackupFile/NewBackupInfo.swift new file mode 100644 index 00000000..a1b0c621 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/01ChooseBackupFile/NewBackupInfo.swift @@ -0,0 +1,106 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import UniformTypeIdentifiers +import ObvSettings +import CoreTransferable + + +struct NewBackupInfo: Identifiable, Transferable, Equatable, Hashable { + + let fileUrl: URL + let deviceName: String? + let creationDate: Date? + var id: URL { fileUrl } + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: Self.self)) + + static func createBackupInfoByCopyingFile(at url: URL) -> Self? { + + let tempBackupFileUrl: URL + do { + _ = url.startAccessingSecurityScopedResource() + defer { url.stopAccessingSecurityScopedResource() } + + guard let pathExtension = (url as NSURL).pathExtension, pathExtension == UTType.olvidBackup.preferredFilenameExtension else { + os_log("The chosen file does not conform to the appropriate type. The file name shoud in with .olvidbackup", log: Self.log, type: .error) + assertionFailure() + return nil + } + + os_log("A file with an appropriate file extension was returned.", log: Self.log, type: .info) + + // We can copy the backup file at an appropriate location + + let tempDir = ObvUICoreDataConstants.ContainerURL.forTempFiles.appendingPathComponent("BackupFilesToRestore", isDirectory: true) + do { + if FileManager.default.fileExists(atPath: tempDir.path) { + try FileManager.default.removeItem(at: tempDir) // Clean the directory + } + try FileManager.default.createDirectory(at: tempDir, withIntermediateDirectories: true, attributes: nil) + } catch let error { + os_log("Could not create temporary directory: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + return nil + } + + let fileName = url.lastPathComponent + tempBackupFileUrl = tempDir.appendingPathComponent(fileName) + + do { + try FileManager.default.copyItem(at: url, to: tempBackupFileUrl) + } catch let error { + os_log("Could not copy backup file to temp location: %{public}@", log: Self.log, type: .error, error.localizedDescription) + return nil + } + + // Check that the file can be read + do { + _ = try Data(contentsOf: tempBackupFileUrl) + } catch { + os_log("Could not read backup file: %{public}@", log: Self.log, type: .error, error.localizedDescription) + return nil + } + } + + // If we reach this point, we can start processing the backup file located at tempBackupFileUrl + let info = NewBackupInfo(fileUrl: tempBackupFileUrl, deviceName: nil, creationDate: nil) + return info + + } + + @available(iOS 16.0, macCatalyst 16.0, *) + static var transferRepresentation: some TransferRepresentation { + + // For some reason, specifying .olvidBackup does not work. + // This can be seen in the console by filtering on the Olvid process and DragAndDrop. + // At some point, the recognized type appears to be something like "dyn.ah62d4rv4ge8085d0rfwge2pdrr41a". + FileRepresentation(importedContentType: .item) { received in + + guard let backupInfo = Self.createBackupInfoByCopyingFile(at: received.file) else { + assertionFailure() + return .init(fileUrl: received.file, deviceName: nil, creationDate: nil) + } + return backupInfo + + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/02EnterBackupKey/EnterBackupKeyView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/02EnterBackupKey/EnterBackupKeyView.swift new file mode 100644 index 00000000..c418b5d0 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/02EnterBackupKey/EnterBackupKeyView.swift @@ -0,0 +1,508 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import Combine + + +protocol EnterBackupKeyViewActionsProtocol: AnyObject { + func recoverBackupFromEncryptedBackup(_ encryptedBackup: Data, backupKey: String) async throws -> (backupRequestIdentifier: UUID, backupDate: Date) + func userWantsToRestoreBackup(backupRequestIdentifier: UUID) async throws +} + + +private enum EnteredBackupKeyStatus { + + /// When a backup key is entered, it is immediately used to try to decrypt the encryted backup + /// If the decryption succeeds (at the engine level), we set this value which will later be used to + /// inform the engine that we want to restore the backup on the basis of the decrypted backup identifier by + /// this `backupRequestIdentifier`. + case correct(backupRequestIdentifier: UUID) + + case incorrect +} + + +struct EnterBackupKeyView: View, BackupKeyTextFieldActionsProtocol { + + let model: Model + let actions: EnterBackupKeyViewActionsProtocol + + @State private var enteredBackupKeyStatus: EnteredBackupKeyStatus? + @State private var backupKeyCurrentlyChecked: String? + @State private var isInterfaceDisabled = false + + struct Model { + let encryptedBackup: Data + let acceptableCharactersForBackupKeyString: CharacterSet + } + + /// Called when the user entered a complete 32 characters backup key + @MainActor + func userEnteredBackupKey(backupKey: String) async { + + guard backupKeyCurrentlyChecked != backupKey else { return } + backupKeyCurrentlyChecked = backupKey + enteredBackupKeyStatus = nil + + let backupRequestIdentifier = try? await actions.recoverBackupFromEncryptedBackup(model.encryptedBackup, backupKey: backupKey).backupRequestIdentifier + + guard backupKeyCurrentlyChecked == backupKey else { return } + if let backupRequestIdentifier { + enteredBackupKeyStatus = .correct(backupRequestIdentifier: backupRequestIdentifier) + } else { + enteredBackupKeyStatus = .incorrect + } + backupKeyCurrentlyChecked = nil + + } + + + func userIsTypingBackupKey() { + enteredBackupKeyStatus = nil + } + + + private var showClearButton: Bool { + switch enteredBackupKeyStatus { + case .correct: + return false + default: + return true + } + } + + + private func userWantsToRestoreBackup(backupRequestIdentifier: UUID) { + isInterfaceDisabled = true + Task { + try? await actions.userWantsToRestoreBackup(backupRequestIdentifier: backupRequestIdentifier) + } + } + + + private func viewDidAppear() { + isInterfaceDisabled = false + } + + + var body: some View { + VStack { + ScrollView { + VStack { + + // Vertically center the view, but not on iPhone + + if UIDevice.current.userInterfaceIdiom != .phone { + Spacer() + } + + NewOnboardingHeaderView( + title: "ONBOARDING_ENTER_BACKUP_KEY", + subtitle: nil) + .padding(.bottom, 35) + + BackupKeyTextField(model: .init(showClearButton: showClearButton, acceptableCharactersForBackupKeyString: model.acceptableCharactersForBackupKeyString), + actions: self) + .padding(.horizontal) + + Spacer() + + if let enteredBackupKeyStatus { + EnteredBackupKeyStatusReportView(enteredBackupKeyStatus: enteredBackupKeyStatus) + .padding(.horizontal) + .padding(.top) + } + + HStack { + Spacer() + ProgressView() + Spacer() + } + .padding(.top) + .opacity(isInterfaceDisabled ? 1.0 : 0.0) + + } + } + switch enteredBackupKeyStatus { + case .correct(let backupRequestIdentifier): + ValidateButton(action: { userWantsToRestoreBackup(backupRequestIdentifier: backupRequestIdentifier) }) + .padding() + default: + EmptyView() + } + } + .onAppear(perform: viewDidAppear) + .disabled(isInterfaceDisabled) + } + +} + + +// MARK: - Internal validate button + +private struct ValidateButton: View { + + let action: () -> Void + + @Environment(\.isEnabled) var isEnabled + + var body: some View { + Button(action: action) { + Label("Restore this backup", systemIcon: .checkmarkCircleFill) + .lineLimit(1) + .foregroundStyle(.white) + .padding(.vertical) + .frame(maxWidth: .infinity) + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + } + +} + + + +private struct EnteredBackupKeyStatusReportView: View { + + let enteredBackupKeyStatus: EnteredBackupKeyStatus + + private var imageSystemName: String { + switch enteredBackupKeyStatus { + case .correct: + return "checkmark.circle.fill" + case .incorrect: + return "exclamationmark.circle.fill" + } + } + + + private var imageColor: Color { + switch enteredBackupKeyStatus { + case .correct: + return Color(UIColor.systemGreen) + case .incorrect: + return Color(UIColor.red) + } + } + + + private var title: LocalizedStringKey { + switch enteredBackupKeyStatus { + case .correct: + return "The backup key is correct" + case .incorrect: + return "The backup key is incorrect" + } + } + + + private var description: LocalizedStringKey? { + switch enteredBackupKeyStatus { + case .correct: + return nil + case .incorrect: + return nil + } + } + + var body: some View { + HStack { + Spacer() + Image(systemName: imageSystemName) + .font(.system(size: 32)) + .foregroundColor(imageColor) + VStack(alignment: .leading, spacing: 4) { + Text(title) + .font(.body) + .fixedSize(horizontal: false, vertical: true) + if let description { + Text(description) + .font(.caption) + .fixedSize(horizontal: false, vertical: true) + .foregroundColor(.secondary) + } + } + Spacer() + } + } +} + + +protocol BackupKeyTextFieldActionsProtocol { + func userEnteredBackupKey(backupKey: String) async + func userIsTypingBackupKey() +} + + +private struct BackupKeyTextField: View, SingleTextFieldActions { + + let model: Model + let actions: BackupKeyTextFieldActionsProtocol + + struct Model { + let showClearButton: Bool + let acceptableCharactersForBackupKeyString: CharacterSet + } + + @State private var textValue0: String = "" + @State private var textValue1: String = "" + @State private var textValue2: String = "" + @State private var textValue3: String = "" + @State private var textValue4: String = "" + @State private var textValue5: String = "" + @State private var textValue6: String = "" + @State private var textValue7: String = "" + + private var textValues: [String] { + [textValue0, textValue1, textValue2, textValue3, + textValue4, textValue5, textValue6, textValue7] + } + + @FocusState private var indexOfFocusedField: Int? + + private func clearAll() { + textValue0 = "" + textValue1 = "" + textValue2 = "" + textValue3 = "" + textValue4 = "" + textValue5 = "" + textValue6 = "" + textValue7 = "" + } + + // SingleTextFieldActions + + func tryToPasteTextIfItIsSomeBackupKey(_ receivedText: String) -> Bool { + let filteredString = receivedText.removingAllCharactersNotInCharacterSet(model.acceptableCharactersForBackupKeyString) + guard filteredString.count == 32 else { + return false + } + let allStrings = filteredString.byFour.map { String($0) } + guard allStrings.count == 8 else { + return false + } + let allStringsAreComplete = allStrings.allSatisfy { $0.count == 4 } + guard allStringsAreComplete else { + return false + } + textValue0 = allStrings[0] + textValue1 = allStrings[1] + textValue2 = allStrings[2] + textValue3 = allStrings[3] + textValue4 = allStrings[4] + textValue5 = allStrings[5] + textValue6 = allStrings[6] + textValue7 = allStrings[7] + indexOfFocusedField = nil + return true + } + + + /// Called by the ``SingleTextField`` at index `index` each time its text value changes. + fileprivate func singleTextFieldDidChangeAtIndex(_ index: Int) { + gotoNextTextFieldIfPossible(fromIndex: index) + if let enteredBackupKey { + indexOfFocusedField = nil + Task { + await actions.userEnteredBackupKey(backupKey: enteredBackupKey) + } + } else { + actions.userIsTypingBackupKey() + } + } + + + // Helpers + + private func gotoNextTextFieldIfPossible(fromIndex: Int) { + guard fromIndex < 7 else { return } + let toIndex = fromIndex + 1 + if textValues[fromIndex].count == 4, textValues[toIndex].count < 4 { + indexOfFocusedField = toIndex + } + } + + /// Returns a 32 characters backup key if the text in the text fields allow to compute one. + /// Returns `nil` otherwise. + private var enteredBackupKey: String? { + let concatenation = textValues + .reduce("", { $0 + $1 }) + .removingAllCharactersNotInCharacterSet(model.acceptableCharactersForBackupKeyString) + return concatenation.count == 32 ? concatenation : nil + } + + + // Body + + var body: some View { + VStack { + HStack { + SingleTextField("X", text: $textValue0, actions: self, model: .init(index: 0, acceptableCharactersForBackupKeyString: model.acceptableCharactersForBackupKeyString)) + SingleTextField("X", text: $textValue1, actions: self, model: .init(index: 1, acceptableCharactersForBackupKeyString: model.acceptableCharactersForBackupKeyString)) + .focused($indexOfFocusedField, equals: 1) + SingleTextField("X", text: $textValue2, actions: self, model: .init(index: 2, acceptableCharactersForBackupKeyString: model.acceptableCharactersForBackupKeyString)) + .focused($indexOfFocusedField, equals: 2) + SingleTextField("X", text: $textValue3, actions: self, model: .init(index: 3, acceptableCharactersForBackupKeyString: model.acceptableCharactersForBackupKeyString)) + .focused($indexOfFocusedField, equals: 3) + } + HStack { + SingleTextField("X", text: $textValue4, actions: self, model: .init(index: 4, acceptableCharactersForBackupKeyString: model.acceptableCharactersForBackupKeyString)) + .focused($indexOfFocusedField, equals: 4) + SingleTextField("X", text: $textValue5, actions: self, model: .init(index: 5, acceptableCharactersForBackupKeyString: model.acceptableCharactersForBackupKeyString)) + .focused($indexOfFocusedField, equals: 5) + SingleTextField("X", text: $textValue6, actions: self, model: .init(index: 6, acceptableCharactersForBackupKeyString: model.acceptableCharactersForBackupKeyString)) + .focused($indexOfFocusedField, equals: 6) + SingleTextField("X", text: $textValue7, actions: self, model: .init(index: 7, acceptableCharactersForBackupKeyString: model.acceptableCharactersForBackupKeyString)) + .focused($indexOfFocusedField, equals: 7) + } + if model.showClearButton { + HStack { + Spacer() + Button("CLEAR_ALL", action: clearAll) + }.padding(.top, 4) + } + } + } + +} + + +// MARK: - Text field used in this view only + + +private protocol SingleTextFieldActions { + func tryToPasteTextIfItIsSomeBackupKey(_ receivedText: String) -> Bool + func singleTextFieldDidChangeAtIndex(_ index: Int) +} + + +private struct SingleTextField: View { + + private let key: LocalizedStringKey + private let text: Binding + private let actions: SingleTextFieldActions + private let model: Model + + struct Model { + let index: Int // Index of this text field in the BackupKeyTextField + let acceptableCharactersForBackupKeyString: CharacterSet + } + + @State private var previousText: String? = nil + + private static let maxLength = 4 + + init(_ key: LocalizedStringKey, text: Binding, actions: SingleTextFieldActions, model: Model) { + self.key = key + self.text = text + self.actions = actions + self.model = model + } + + private let myFont = Font + .system(size: 18) + .monospaced() + + var body: some View { + TextField("XXXX", text: text) + .textInputAutocapitalization(.characters) + .textFieldStyle(.roundedBorder) + .autocorrectionDisabled() + .multilineTextAlignment(.center) + .font(myFont) + .onReceive(Just(text)) { _ in + guard previousText != text.wrappedValue else { return } + previousText = text.wrappedValue + // If the user pastes a backup key, the "text" received here will contain it. + // To handle this case, we call our "superview" (the BackupKeyTextField) using the + // tryToPasteTextIfItIsSomeBackupKey method. This method will paste the key in all 8 text + // fields (including this one) if a key is found. In that case, the method returns true + // and there is nothing left to do here. + if actions.tryToPasteTextIfItIsSomeBackupKey(text.wrappedValue) { + return + } + // If we reach this point, we are not in a situation where the text contains + // a pasted backup key. + // We limit the string length to maxLength characters. + let uppercasedText = text.wrappedValue.uppercased() + let newText = String(uppercasedText.removingAllCharactersNotInCharacterSet(model.acceptableCharactersForBackupKeyString).prefix(4)) + if text.wrappedValue != newText { + text.wrappedValue = newText + } + actions.singleTextFieldDidChangeAtIndex(model.index) + } + } + +} + + + +fileprivate extension Collection { + var byFour: [SubSequence] { + var startIndex = self.startIndex + let count = self.count + let n = count/4 + count % 4 + return (0.. String { + return String(self + .trimmingWhitespacesAndNewlines() + .unicodeScalars + .filter({ + characterSet.contains($0) + })) + } +} + + + +struct EnterBackupKeyView_Previews: PreviewProvider { + + private final class ActionsForPreviews: EnterBackupKeyViewActionsProtocol { + func recoverBackupFromEncryptedBackup(_ encryptedBackup: Data, backupKey: String) async throws -> (backupRequestIdentifier: UUID, backupDate: Date) { + if backupKey == String(repeating: "0", count: 32) { + return (UUID(), Date()) + } else { + throw NSError(domain: "EnterBackupKeyView_Previews", code: 0) + } + } + func userWantsToRestoreBackup(backupRequestIdentifier: UUID) async throws {} + } + + + private static let model = EnterBackupKeyView.Model(encryptedBackup: Data(), acceptableCharactersForBackupKeyString: CharacterSet(charactersIn: "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ")) + + private static let actions = ActionsForPreviews() + + static var previews: some View { + EnterBackupKeyView(model: model, actions: actions) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/02EnterBackupKey/EnterBackupKeyViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/02EnterBackupKey/EnterBackupKeyViewController.swift new file mode 100644 index 00000000..23d9bed8 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/02EnterBackupKey/EnterBackupKeyViewController.swift @@ -0,0 +1,85 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI + + +protocol EnterBackupKeyViewControllerDelegate: AnyObject { + func recoverBackupFromEncryptedBackup(controller: EnterBackupKeyViewController, encryptedBackup: Data, backupKey: String) async throws -> (backupRequestIdentifier: UUID, backupDate: Date) + func userWantsToRestoreBackup(controller: EnterBackupKeyViewController, backupRequestIdentifier: UUID) async throws +} + + +final class EnterBackupKeyViewController: UIHostingController, EnterBackupKeyViewActionsProtocol { + + private weak var delegate: EnterBackupKeyViewControllerDelegate? + + init(model: EnterBackupKeyView.Model, delegate: EnterBackupKeyViewControllerDelegate) { + let actions = EnterBackupKeyViewActions() + let view = EnterBackupKeyView(model: model, actions: actions) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // EnterBackupKeyViewActionsProtocol + + func recoverBackupFromEncryptedBackup(_ encryptedBackup: Data, backupKey: String) async throws -> (backupRequestIdentifier: UUID, backupDate: Date) { + guard let delegate else { assertionFailure(); throw ObvError.theDelegateIsNotSet } + return try await delegate.recoverBackupFromEncryptedBackup(controller: self, encryptedBackup: encryptedBackup, backupKey: backupKey) + } + + func userWantsToRestoreBackup(backupRequestIdentifier: UUID) async throws { + guard let delegate else { assertionFailure(); throw ObvError.theDelegateIsNotSet } + try await delegate.userWantsToRestoreBackup(controller: self, backupRequestIdentifier: backupRequestIdentifier) + } + + // Error + + enum ObvError: Error { + case theDelegateIsNotSet + } + +} + + +private final class EnterBackupKeyViewActions: EnterBackupKeyViewActionsProtocol { + + weak var delegate: EnterBackupKeyViewActionsProtocol? + + func recoverBackupFromEncryptedBackup(_ encryptedBackup: Data, backupKey: String) async throws -> (backupRequestIdentifier: UUID, backupDate: Date) { + guard let delegate else { assertionFailure(); throw ObvError.theDelegateIsNotSet } + return try await delegate.recoverBackupFromEncryptedBackup(encryptedBackup, backupKey: backupKey) + } + + func userWantsToRestoreBackup(backupRequestIdentifier: UUID) async throws { + guard let delegate else { assertionFailure(); throw ObvError.theDelegateIsNotSet } + return try await delegate.userWantsToRestoreBackup(backupRequestIdentifier: backupRequestIdentifier) + } + + enum ObvError: Error { + case theDelegateIsNotSet + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/03WaitingForBackupRestore/WaitingForBackupRestoreView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/03WaitingForBackupRestore/WaitingForBackupRestoreView.swift new file mode 100644 index 00000000..670df2db --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/03WaitingForBackupRestore/WaitingForBackupRestoreView.swift @@ -0,0 +1,326 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import UI_SystemIcon +import ObvTypes + + +protocol WaitingForBackupRestoreViewActionsProtocol: AnyObject { + /// Returns the CryptoId of the restore owned identity. When many identities were restored, only one is returned here + func restoreBackupNow(backupRequestIdentifier: UUID) async throws -> ObvCryptoId + func userWantsToEnableAutomaticBackup() async throws + func backupRestorationSucceeded(restoredOwnedCryptoId: ObvCryptoId) async // 2023-09-15 Many Ids can be restored at this time, we only return one + func backupRestorationFailed() async +} + +struct WaitingForBackupRestoreView: View { + + let actions: WaitingForBackupRestoreViewActionsProtocol + let model: Model + + @State private var backupRestoreRequested = false + @State private var restoreState = RestoreState.restoreInProgress + @State private var isAlertPresented: Bool = false + @State private var alertType: AlertType? = nil + + struct Model { + let backupRequestIdentifier: UUID + } + + private enum AlertType { + case couldNotEnableAutomaticBackup(error: LocalizedError) + } + + fileprivate enum RestoreState { + case restoreInProgress + case restoreSucceeded(restoredOwnedCryptoId: ObvCryptoId) + case restoreFailed(error: Error) + } + + @MainActor + private func restoreBackupNow() async { + guard !backupRestoreRequested else { return } + backupRestoreRequested = true + do { + let restoredOwnedCryptoId = try await actions.restoreBackupNow(backupRequestIdentifier: model.backupRequestIdentifier) + restoreState = .restoreSucceeded(restoredOwnedCryptoId: restoredOwnedCryptoId) + } catch { + restoreState = .restoreFailed(error: error) + } + } + + private var alertTitle: String { + switch alertType { + case .couldNotEnableAutomaticBackup(let error): + return error.errorDescription ?? DefaultError.couldNotEnableAutomaticBackup.errorDescription + case nil: + return DefaultError.genericError.errorDescription + } + } + + private var alertMessage: String { + switch alertType { + case .couldNotEnableAutomaticBackup(let error): + return error.recoverySuggestion ?? DefaultError.couldNotEnableAutomaticBackup.recoverySuggestion + case nil: + return DefaultError.genericError.recoverySuggestion + } + } + + @MainActor + private func userWantsToEnableAutomaticBackup() async { + do { + try await actions.userWantsToEnableAutomaticBackup() + backupRestorationSucceeded() + } catch { + let localizedError = (error as? LocalizedError) ?? DefaultError.couldNotEnableAutomaticBackup + alertType = .couldNotEnableAutomaticBackup(error: localizedError) + isAlertPresented = true + } + } + + /// Error used when something when wrong but we fail to obtain a localized error + private enum DefaultError: LocalizedError { + case couldNotEnableAutomaticBackup + case genericError + var errorDescription: String { + switch self { + case .couldNotEnableAutomaticBackup: + return NSLocalizedString("AUTOMATIC_BACKUP_COULD_NOT_BE_ENABLED_TITLE", comment: "") + case .genericError: + return NSLocalizedString("ERROR", comment: "") + } + } + var recoverySuggestion: String { + return NSLocalizedString("PLEASE_TRY_AGAIN_LATER", comment: "") + } + } + + + private func backupRestorationSucceeded() { + let restoredOwnedCryptoId: ObvCryptoId + switch restoreState { + case .restoreSucceeded(let _restoredOwnedCryptoId): + restoredOwnedCryptoId = _restoredOwnedCryptoId + default: + assertionFailure() + return + } + Task { await actions.backupRestorationSucceeded(restoredOwnedCryptoId: restoredOwnedCryptoId) } // This call navigates to the next onboarding screen + } + + + private func backupRestorationFailed() { + Task { await actions.backupRestorationFailed() } // This call navigates to the next onboarding screen + } + + + var body: some View { + VStack(alignment: .leading, spacing: 16) { + switch restoreState { + + case .restoreInProgress: + + RestoringBackupView() + + case .restoreSucceeded: + + VStack { + ScrollView { + VStack { + NewOnboardingHeaderView(title: "TITLE_BACKUP_RESTORED", subtitle: nil) + Text("ENABLE_AUTOMATIC_BACKUP_EXPLANATION") + .padding() + } + } + VStack { + ValidateButton(title: "ENABLE_AUTOMATIC_BACKUP_AND_CONTINUE", systemIcon: .checkmarkCircleFill, action: { Task { await userWantsToEnableAutomaticBackup() } }) + .padding(.bottom) + HStack { + Spacer() + Button("Later", action: backupRestorationSucceeded) + } + }.padding() + } + + + case .restoreFailed(error: let error): + + VStack { + ScrollView { + VStack { + NewOnboardingHeaderView(title: "Restore failed 🥺", subtitle: nil) + Text("RESTORE_BACKUP_FAILED_EXPLANATION") + .frame(maxWidth: .infinity, alignment: .leading) + .padding() + if ObvMessengerConstants.showExperimentalFeature { + VStack { + Text("ERROR_DESCRIPTION") + .foregroundColor(.secondary) + .frame(maxWidth: .infinity, alignment: .leading) + Text(error.localizedDescription) + .foregroundColor(.secondary) + .frame(maxWidth: .infinity, alignment: .leading) + Text((error as NSError).debugDescription) + .foregroundColor(.secondary) + .frame(maxWidth: .infinity, alignment: .leading) + }.padding(.horizontal) + } + } + } + ValidateButton(title: "Back", systemIcon: .arrowshapeTurnUpBackwardFill, action: backupRestorationFailed) + .padding() + } + + } + + } + .onAppear { + Task { await restoreBackupNow() } + } + .alert(alertTitle, + isPresented: $isAlertPresented, + presenting: alertType) + { _ in + } message: { _ in + Text(alertMessage) + } + } +} + + +// MARK: - Internal validate button + +private struct ValidateButton: View { + + let title: LocalizedStringKey + let systemIcon: SystemIcon + let action: () -> Void + + var body: some View { + Button(action: action) { + Label(title, systemIcon: systemIcon) + .lineLimit(1) + .foregroundStyle(.white) + .padding(.vertical) + .frame(maxWidth: .infinity) + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + } + +} + + +private struct RestoringBackupView: View { + var body: some View { + HStack { + Spacer() + VStack { + Text("RESTORING_BACKUP_PLEASE_WAIT") + .font(.headline) + .fontWeight(.bold) + ProgressView() + } + Spacer() + } + } +} + + +struct WaitingForBackupRestoreView_Previews: PreviewProvider { + + private final class ActionsForPreviews: WaitingForBackupRestoreViewActionsProtocol { + + private let ownedCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!) + + private let errorWhenEnablingAutomaticBackup: LocalizedError? + private let errorWhenRestoringBackup: LocalizedError? + + init(errorWhenRestoringBackup: LocalizedError?, errorWhenEnablingAutomaticBackup: LocalizedError?) { + self.errorWhenRestoringBackup = errorWhenRestoringBackup + self.errorWhenEnablingAutomaticBackup = errorWhenEnablingAutomaticBackup + } + + func backupRestorationIsOver() async {} + + func userWantsToEnableAutomaticBackup() async throws { + if let errorWhenEnablingAutomaticBackup { + throw errorWhenEnablingAutomaticBackup + } else { + // Do nothing to simulate success + } + } + + func restoreBackupNow(backupRequestIdentifier: UUID) async throws -> ObvTypes.ObvCryptoId { + if let errorWhenRestoringBackup { + throw errorWhenRestoringBackup + } else { + try! await Task.sleep(seconds: 1) + return ownedCryptoId + } + } + + func backupRestorationSucceeded(restoredOwnedCryptoId: ObvTypes.ObvCryptoId) async { + // Should navigate to the next onboarding screen + } + + func backupRestorationFailed() async { + // Should navigate to the backup selection screen + } + + } + + private static let actions = [ + ActionsForPreviews(errorWhenRestoringBackup: nil, + errorWhenEnablingAutomaticBackup: nil), + ActionsForPreviews(errorWhenRestoringBackup: ObvErrorForPreviews.someError, + errorWhenEnablingAutomaticBackup: nil), + ActionsForPreviews(errorWhenRestoringBackup: nil, + errorWhenEnablingAutomaticBackup: ObvErrorForPreviews.someError), + ] + private static let model = WaitingForBackupRestoreView.Model(backupRequestIdentifier: UUID()) + + static var previews: some View { + WaitingForBackupRestoreView(actions: actions[0], model: model) // No error when enabling automatic backups + WaitingForBackupRestoreView(actions: actions[1], model: model) // When backup restore fails + WaitingForBackupRestoreView(actions: actions[2], model: model) // When restore succeeds, but cannot enable auto auto backup + } + + private enum ObvErrorForPreviews: LocalizedError { + case someError + + var errorDescription: String? { + switch self { + case .someError: + return "Some error" + } + } + + var recoverySuggestion: String? { + switch self { + case .someError: + return NSLocalizedString("PLEASE_TRY_AGAIN_LATER", comment: "") + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/03WaitingForBackupRestore/WaitingForBackupRestoreViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/03WaitingForBackupRestore/WaitingForBackupRestoreViewController.swift new file mode 100644 index 00000000..1b6d333c --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/03WaitingForBackupRestore/WaitingForBackupRestoreViewController.swift @@ -0,0 +1,120 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import ObvTypes + +protocol WaitingForBackupRestoreViewControllerDelegate: AnyObject { + /// Returns the CryptoId of the restore owned identity. When many identities were restored, only one is returned here + func restoreBackupNow(controller: WaitingForBackupRestoreViewController, backupRequestIdentifier: UUID) async throws -> ObvCryptoId + func userWantsToEnableAutomaticBackup(controller: WaitingForBackupRestoreViewController) async throws + func backupRestorationSucceeded(controller: WaitingForBackupRestoreViewController, restoredOwnedCryptoId: ObvCryptoId) async + func backupRestorationFailed(controller: WaitingForBackupRestoreViewController) async +} + + +final class WaitingForBackupRestoreViewController: UIHostingController, WaitingForBackupRestoreViewActionsProtocol { + + weak var delegate: WaitingForBackupRestoreViewControllerDelegate? + + init(model: WaitingForBackupRestoreView.Model, delegate: WaitingForBackupRestoreViewControllerDelegate) { + let actions = WaitingForBackupRestoreViewActions() + let view = WaitingForBackupRestoreView(actions: actions, model: model) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func viewDidLoad() { + super.viewDidLoad() + configureNavigation(animated: false) + } + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + } + + + // WaitingForBackupRestoreViewActionsProtocol + + func restoreBackupNow(backupRequestIdentifier: UUID) async throws -> ObvCryptoId { + guard let delegate else { assertionFailure(); throw ObvError.theDelegateIsNotSet } + return try await delegate.restoreBackupNow(controller: self, backupRequestIdentifier: backupRequestIdentifier) + } + + func userWantsToEnableAutomaticBackup() async throws { + try await delegate?.userWantsToEnableAutomaticBackup(controller: self) + } + + func backupRestorationSucceeded(restoredOwnedCryptoId: ObvCryptoId) async { + await delegate?.backupRestorationSucceeded(controller: self, restoredOwnedCryptoId: restoredOwnedCryptoId) + } + + func backupRestorationFailed() async { + await delegate?.backupRestorationFailed(controller: self) + } + + + // Errors + + enum ObvError: Error { + case theDelegateIsNotSet + } + +} + + +private final class WaitingForBackupRestoreViewActions: WaitingForBackupRestoreViewActionsProtocol { + + weak var delegate: WaitingForBackupRestoreViewActionsProtocol? + + func restoreBackupNow(backupRequestIdentifier: UUID) async throws -> ObvCryptoId { + guard let delegate else { assertionFailure(); throw ObvError.theDelegateIsNotSet } + return try await delegate.restoreBackupNow(backupRequestIdentifier: backupRequestIdentifier) + } + + func userWantsToEnableAutomaticBackup() async throws { + try await delegate?.userWantsToEnableAutomaticBackup() + } + + func backupRestorationSucceeded(restoredOwnedCryptoId: ObvCryptoId) async { + await delegate?.backupRestorationSucceeded(restoredOwnedCryptoId: restoredOwnedCryptoId) + } + + func backupRestorationFailed() async { + await delegate?.backupRestorationFailed() + } + + enum ObvError: Error { + case theDelegateIsNotSet + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/BackupRestoreView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/BackupRestoreView.swift deleted file mode 100644 index 3f086301..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/BackupRestoreView.swift +++ /dev/null @@ -1,674 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import SwiftUI -import CloudKit -import os.log -import MobileCoreServices -import ObvUICoreData - - -protocol BackupRestoreViewHostingControllerDelegate: AnyObject { - func proceedWithBackupFile(atUrl: URL) async -} - - -final class BackupRestoreViewHostingController: UIHostingController, BackupRestoreViewModelDelegate, UIDocumentPickerDelegate { - - private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: BackupRestoreViewHostingController.self)) - - private let backupRestoreViewModel: BackupRestoreViewModel - private var allCloudOperationsAreCancelled = false - - private weak var delegate: BackupRestoreViewHostingControllerDelegate? - - init(delegate: BackupRestoreViewHostingControllerDelegate) { - let backupRestoreViewModel = BackupRestoreViewModel() - self.backupRestoreViewModel = backupRestoreViewModel - let view = BackupRestoreView(store: backupRestoreViewModel) - super.init(rootView: view) - self.backupRestoreViewModel.delegate = self - self.delegate = delegate - } - - deinit { - debugPrint("BackupRestoreViewHostingController deinit") - } - - override func viewDidLoad() { - super.viewDidLoad() - title = NSLocalizedString("Restore", comment: "") - } - - @objc required dynamic init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - override func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - backupRestoreViewModel.clear() - allCloudOperationsAreCancelled = true - } - - - // MARK: - BackupRestoreViewModelDelegate - - func userWantsToRestoreBackupFromFile() async { - // We do *not* specify ObvUTIUtils.kUTTypeOlvidBackup here. It does not work under Google Drive. - // And it never works within the simulator. - let documentTypes = [kUTTypeItem] as [String] // 2020-03-13 Custom UTIs do not work in the simulator - let documentPicker = UIDocumentPickerViewController(documentTypes: documentTypes, in: .import) - documentPicker.delegate = self - documentPicker.allowsMultipleSelection = false - present(documentPicker, animated: true) - } - - - func userWantToRestoreBackupFromCloud() async { - self.allCloudOperationsAreCancelled = false - let container = CKContainer(identifier: ObvMessengerConstants.iCloudContainerIdentifierForEngineBackup) - let backupRestoreViewModel = self.backupRestoreViewModel - do { - let accountStatus = try await container.accountStatus() - guard accountStatus == .available else { - os_log("The iCloud account isn't available. We cannot restore an uploaded backup.", log: Self.log, type: .fault) - await backupRestoreViewModel.backupFileFailedToBeRetrievedFromCloud(cloudFailureReason: .icloudAccountStatusIsNotAvailable) - return - } - - // The iCloud service is available. Look for backups to restore. - // This iterator only fetches the deviceIdentifierForVendor to load records efficiently. - let iterator = CloudKitBackupRecordIterator(identifierForVendor: nil, - resultsLimit: nil, - desiredKeys: [.deviceIdentifierForVendor]) - // The already seen devices, since we show the latest record by device. - var seenDevices = Set() - try await withThrowingTaskGroup(of: Void.self) { group in - for try await records in iterator { - guard !allCloudOperationsAreCancelled else { break } - for recordWithoutData in records { - guard !allCloudOperationsAreCancelled else { break } - guard let deviceIdentifierForVendor = recordWithoutData.deviceIdentifierForVendor else { - continue - } - guard !seenDevices.contains(deviceIdentifierForVendor) else { - // We have already seen this record. - continue - } - // 'record' should be the latest record for the device 'deviceIdentifierForVendor' - seenDevices.insert(deviceIdentifierForVendor) - // Launch a task that fetches all the data of the latest record - group.addTask { - let iteratorWithData = CloudKitBackupRecordIterator(identifierForVendor: deviceIdentifierForVendor, - resultsLimit: 1, - desiredKeys: nil) - guard await !self.allCloudOperationsAreCancelled else { return } - guard let recordWithData = try? await iteratorWithData.next()?.first else { - await backupRestoreViewModel.backupFileFailedToBeRetrievedFromCloud(cloudFailureReason: .couldNotRetrieveEncryptedBackupFile) - return - } - guard await !self.allCloudOperationsAreCancelled else { return } - guard let asset = recordWithData[.encryptedBackupFile] as? CKAsset, - let url = asset.fileURL else { - await backupRestoreViewModel.backupFileFailedToBeRetrievedFromCloud(cloudFailureReason: .couldNotRetrieveEncryptedBackupFile) - return - } - guard await !self.allCloudOperationsAreCancelled else { return } - guard let creationDate = recordWithData.creationDate else { - await backupRestoreViewModel.backupFileFailedToBeRetrievedFromCloud(cloudFailureReason: .couldNotRetrieveCreationDate) - return - } - guard await !self.allCloudOperationsAreCancelled else { return } - guard let deviceName = recordWithData[.deviceName] as? String else { - await backupRestoreViewModel.backupFileFailedToBeRetrievedFromCloud(cloudFailureReason: .couldNotRetrieveDeviceName) - return - } - guard await !self.allCloudOperationsAreCancelled else { return } - let info = BackupInfo(fileUrl: url, deviceName: deviceName, creationDate: creationDate) - await backupRestoreViewModel.addNewSelectableBackups([info]) - } - } - } - } - await backupRestoreViewModel.noMoreCloudBackupToFetch() - } catch { - await backupRestoreViewModel.backupFileFailedToBeRetrievedFromCloud(cloudFailureReason: .couldNotRetrieveEncryptedBackupFile) - return - } - } - - - func proceedWithBackupFile(atUrl url: URL) async { - assert(delegate != nil) - await delegate?.proceedWithBackupFile(atUrl: url) - } - - - // MARK: - UIDocumentPickerDelegate - - func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) { - - DispatchQueue(label: "Queue for processing the backup file").async { [weak self] in - - guard urls.count == 1 else { return } - let url = urls.first! - - let tempBackupFileUrl: URL - do { - _ = url.startAccessingSecurityScopedResource() - defer { url.stopAccessingSecurityScopedResource() } - - guard let fileUTI = ObvUTIUtils.utiOfFile(atURL: url) else { - os_log("Could not determine the UTI of the file at URL %{public}@", log: Self.log, type: .fault, url.path) - return - } - - guard ObvUTIUtils.uti(fileUTI, conformsTo: ObvUTIUtils.kUTTypeOlvidBackup) else { - os_log("The chosen file does not conform to the appropriate type. The file name shoud in with .olvidbackup", log: Self.log, type: .error) - return - } - - os_log("A file with an appropriate file extension was returned.", log: Self.log, type: .info) - - // We can copy the backup file at an appropriate location - - let tempDir = ObvUICoreDataConstants.ContainerURL.forTempFiles.appendingPathComponent("BackupFilesToRestore", isDirectory: true) - do { - if FileManager.default.fileExists(atPath: tempDir.path) { - try FileManager.default.removeItem(at: tempDir) // Clean the directory - } - try FileManager.default.createDirectory(at: tempDir, withIntermediateDirectories: true, attributes: nil) - } catch let error { - os_log("Could not create temporary directory: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - return - } - - let fileName = url.lastPathComponent - tempBackupFileUrl = tempDir.appendingPathComponent(fileName) - - do { - try FileManager.default.copyItem(at: url, to: tempBackupFileUrl) - } catch let error { - os_log("Could not copy backup file to temp location: %{public}@", log: Self.log, type: .error, error.localizedDescription) - return - } - - // Check that the file can be read - do { - _ = try Data(contentsOf: tempBackupFileUrl) - } catch { - os_log("Could not read backup file: %{public}@", log: Self.log, type: .error, error.localizedDescription) - return - } - } - - // If we reach this point, we can start processing the backup file located at tempBackupFileUrl - let info = BackupInfo(fileUrl: tempBackupFileUrl, deviceName: nil, creationDate: nil) - - Task { - await self?.backupRestoreViewModel.addNewSelectableBackups([info]) - } - - } - - } - - - func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) { - assert(Thread.isMainThread) - backupRestoreViewModel.userCanceledSelectionOfBackupFile() - } - -} - -struct BackupInfo: Identifiable { - var id: URL { fileUrl } - - let fileUrl: URL - let deviceName: String? - let creationDate: Date? -} - - -protocol BackupRestoreViewModelDelegate: AnyObject { - func userWantToRestoreBackupFromCloud() async - func userWantsToRestoreBackupFromFile() async - func proceedWithBackupFile(atUrl: URL) async -} - -fileprivate final class BackupRestoreViewModel: ObservableObject { - - @Published private(set) var backups: [BackupInfo] = [] - @Published var userIsRequestingBackupFileOrCloudBackup = false - @Published var backupFileOrCloudBackupHasBeenRequested = false - @Published fileprivate var isAlertPresented = false - @Published fileprivate var alertType = AlertType.none - @Published fileprivate var isFetchingFromICloud: Bool = false - @Published fileprivate var selectedBackup: URL? - - - fileprivate enum AlertType { - case cloudFailure(reason: CloudFailureReason) - case noMoreCloudBackupToFetch - case none // Dummy type - } - - weak var delegate: BackupRestoreViewModelDelegate? - - func restoreFromFileAction() { - withAnimation { - userIsRequestingBackupFileOrCloudBackup = true - backupFileOrCloudBackupHasBeenRequested = true - } - Task { await delegate?.userWantsToRestoreBackupFromFile() } - } - - func restoreFromCloudAction() { - withAnimation { - userIsRequestingBackupFileOrCloudBackup = true - backupFileOrCloudBackupHasBeenRequested = true - isFetchingFromICloud = true - } - Task { - await delegate?.userWantToRestoreBackupFromCloud() - } - } - - @MainActor - func addNewSelectableBackups(_ backups: [BackupInfo]) async { - assert(Thread.isMainThread) - withAnimation { - self.userIsRequestingBackupFileOrCloudBackup = false - self.backups += backups - self.backups.sort { b1, b2 in - guard let d1 = b1.creationDate else { assertionFailure(); return false } - guard let d2 = b2.creationDate else { assertionFailure(); return false } - return d2 < d1 - } - } - } - - func userCanceledSelectionOfBackupFile() { - assert(Thread.isMainThread) - clear() - } - - func proceedWithBackupFile(backupFileUrl: URL) { - Task { await delegate?.proceedWithBackupFile(atUrl: backupFileUrl) } - } - - @MainActor - func backupFileFailedToBeRetrievedFromCloud(cloudFailureReason: CloudFailureReason) async { - withAnimation { - self.alertType = .cloudFailure(reason: cloudFailureReason) - self.isAlertPresented = true - } - } - - @MainActor - func noMoreCloudBackupToFetch() async { - if backups.isEmpty { - withAnimation { - alertType = .noMoreCloudBackupToFetch - isAlertPresented = true - } - } - withAnimation { - isFetchingFromICloud = false - } - } - - func clear() { - DispatchQueue.main.async { - withAnimation { - self.selectedBackup = nil - self.backups.removeAll() - self.userIsRequestingBackupFileOrCloudBackup = false - self.backupFileOrCloudBackupHasBeenRequested = false - self.isAlertPresented = false - self.alertType = AlertType.none - self.isFetchingFromICloud = false - } - } - } -} - -struct BackupRestoreView: View { - - @ObservedObject fileprivate var store: BackupRestoreViewModel - - var body: some View { - BackupRestoreInnerView(backups: store.backups, - restoreFromFileAction: store.restoreFromFileAction, - restoreFromCloudAction: store.restoreFromCloudAction, - proceedWithBackupFile: store.proceedWithBackupFile, - alertType: store.alertType, - isAlertPresented: $store.isAlertPresented, - disableButtons: $store.userIsRequestingBackupFileOrCloudBackup, - backupFileOrCloudBackupHasBeenRequested: $store.backupFileOrCloudBackupHasBeenRequested, - isFetchingFromICloud: $store.isFetchingFromICloud, - selectedBackup: $store.selectedBackup) - } - -} - -struct BackupRestoreInnerView: View { - - fileprivate let backups: [BackupInfo] - fileprivate let restoreFromFileAction: () -> Void - fileprivate let restoreFromCloudAction: () -> Void - fileprivate let proceedWithBackupFile: (URL) -> Void - fileprivate let alertType: BackupRestoreViewModel.AlertType - @Binding var isAlertPresented: Bool - @Binding var disableButtons: Bool - @Binding var backupFileOrCloudBackupHasBeenRequested: Bool - @Binding var isFetchingFromICloud: Bool - @Binding var selectedBackup: URL? - - private let dateFormater: DateFormatter = { - let df = DateFormatter() - df.locale = Locale.current - df.doesRelativeDateFormatting = true - df.timeStyle = .short - df.dateStyle = .short - return df - }() - - private var alertTitle: Text { - switch alertType { - case .cloudFailure(reason: let reason): - switch reason { - case .icloudAccountStatusIsNotAvailable: - return Text("Sign in to iCloud") - case .couldNotRetrieveEncryptedBackupFile: - return Text("Unexpected iCloud file error") - case .couldNotRetrieveCreationDate: - return Text("Unexpected iCloud file error") - case .couldNotRetrieveDeviceName: - return Text("Unexpected iCloud file error") - case .iCloudError: - return Text("iCloud error") - } - case .noMoreCloudBackupToFetch: - return Text("No backup available in iCloud") - case .none: - assertionFailure() - return Text("") - } - } - - private var alertMessage: Text { - switch alertType { - case .cloudFailure(reason: let reason): - switch reason { - case .icloudAccountStatusIsNotAvailable: - return Text("Please sign in to your iCloud account. On the Home screen, launch Settings, tap iCloud, and enter your Apple ID. Turn iCloud Drive on.") - case .couldNotRetrieveEncryptedBackupFile: - return Text("We could not retrieve the encrypted backup content from iCloud") - case .couldNotRetrieveCreationDate: - return Text("We could not retrieve the creation date of the backup content from iCloud") - case .couldNotRetrieveDeviceName: - return Text("We could not retrieve the device name of the backup content from iCloud") - case .iCloudError(description: let description): - return Text(description) - } - case .noMoreCloudBackupToFetch: - return Text("We could not find any backup in you iCloud account. Please make sure this device uses the same iCloud account as the one you were using on the previous device.") - case .none: - assertionFailure() - return Text("") - } - } - - var body: some View { - ZStack { - Color(AppTheme.shared.colorScheme.systemBackground) - .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity) - .edgesIgnoringSafeArea(.all) - VStack(spacing: 16) { - BackupRestoreExplanationView(backupFileOrCloudBackupHasBeenRequested: backupFileOrCloudBackupHasBeenRequested) - if !backupFileOrCloudBackupHasBeenRequested { - HStack { - OlvidButton(style: .blue, - title: Text("From a file"), - systemIcon: .folderFill, - action: restoreFromFileAction) - OlvidButton(style: .blue, - title: Text("From the cloud"), - systemIcon: .icloud(.fill), - action: restoreFromCloudAction) - }.disabled(disableButtons) - } else { - if !backups.isEmpty { - ObvCardView(padding: 0) { - List { - ForEach(backups) { backup in - BackupFileDescriptionView(fileUrl: backup.fileUrl, - deviceName: backup.deviceName, - creationDate: backup.creationDate, - selectedBackup: $selectedBackup) - } - if isFetchingFromICloud { - ObvActivityIndicator(isAnimating: .constant(true), style: .medium, color: nil) - .frame(idealWidth: .infinity, maxWidth: .infinity, alignment: .center) - } - } - .listStyle(.plain) - } - } else { - ObvActivityIndicator(isAnimating: .constant(true), style: .medium, color: nil) - .frame(idealWidth: .infinity, maxWidth: .infinity, alignment: .center) - } - } - Spacer() - OlvidButton(style: .blue, title: Text("Proceed and enter backup key"), systemIcon: .checkmarkShieldFill) { - guard let selectedBackup else { assertionFailure(); return } - proceedWithBackupFile(selectedBackup) - } - .disabled(selectedBackup == nil) - }.padding() - } - .alert(isPresented: $isAlertPresented) { - Alert(title: alertTitle, - message: alertMessage, - dismissButton: Alert.Button.cancel { - withAnimation { - disableButtons = false - } - }) - } - } -} - - -fileprivate struct BackupFileDescriptionView: View { - - let fileUrl: URL - let deviceName: String? - let creationDate: Date? - - @Binding var selectedBackup: URL? - - private let dateFormater: DateFormatter = { - let df = DateFormatter() - df.locale = Locale.current - df.doesRelativeDateFormatting = true - df.timeStyle = .short - df.dateStyle = .short - return df - }() - - var body: some View { - HStack { - VStack(alignment: .leading, spacing: 4) { - if let deviceName { - Text(deviceName) - .font(.system(.headline, design: .rounded)) - } - if let formattedDate = creationDate?.relativeFormatted { - Text(formattedDate) - .font(.system(.callout)) - } else { - Text(fileUrl.lastPathComponent) - .font(.system(.footnote, design: .monospaced)) - } - } - Spacer() - Image(systemIcon: fileUrl == selectedBackup ? .checkmarkCircleFill : .circle) - .font(Font.system(size: 24, weight: .regular, design: .default)) - .foregroundColor(fileUrl == selectedBackup ? Color.green : Color.gray) - .padding(.leading) - } - .padding(.vertical, 6.0) - .contentShape(Rectangle()) // This makes it possible to have an "on tap" gesture that also works when the Spacer is tapped - .onTapGesture { - selectedBackup = fileUrl - } - } - -} - - -fileprivate struct BackupRestoreExplanationView: View { - - let backupFileOrCloudBackupHasBeenRequested: Bool - - var body: some View { - ObvCardView(padding: 0) { - HStack { - VStack(alignment: .leading, spacing: 8) { - if backupFileOrCloudBackupHasBeenRequested { - Text("PLEASE_CHOOSE_THE_BACKUP_TO_RESTORE") - } else { - Text("Please choose the location of the backup file you wish to restore.") - Text("Choose From a file to pick a backup file create from a manual backup.") - Text("Choose From the cloud to select an account used for automatic backups.") - } - } - Spacer() - } - .font(.body) - .padding() - } - } -} - - -struct BackupRestoreInnerView_Previews: PreviewProvider { - - static let backups = [ - BackupInfo(fileUrl: URL(string: "file://fake.url.olvid.io/Olvid_backup_2020-11-10_12-57-45.olvidbackup")!, - deviceName: "iPhone 8", - creationDate: Date()), - BackupInfo(fileUrl: URL(string: "file://fake.url.olvid.io/Olvid_backup_2020-11-10_12-57-46.olvidbackup")!, - deviceName: "iPhone X", - creationDate: Date()), - BackupInfo(fileUrl: URL(string: "file://fake.url.olvid.io/Olvid_backup_2020-11-10_12-57-47.olvidbackup")!, - deviceName: "iPhone 11", - creationDate: Date()), - BackupInfo(fileUrl: URL(string: "file://fake.url.olvid.io/Olvid_backup_2020-11-10_12-57-48.olvidbackup")!, - deviceName: "iPhone 14", - creationDate: Date()) - ] - - static let fileUrl = URL(string: "file://fake.url.olvid.io/Olvid_backup_2020-11-10_12-57-45.olvidbackup")! - - static var previews: some View { - Group { - NavigationView { - BackupRestoreInnerView(backups: backups, - restoreFromFileAction: {}, - restoreFromCloudAction: {}, - proceedWithBackupFile: { _ in }, - alertType: .none, - isAlertPresented: .constant(false), - disableButtons: .constant(false), - backupFileOrCloudBackupHasBeenRequested: .constant(false), - isFetchingFromICloud: .constant(false), - selectedBackup: .constant(nil)) - } - NavigationView { - BackupRestoreInnerView(backups: backups, - restoreFromFileAction: {}, - restoreFromCloudAction: {}, - proceedWithBackupFile: { _ in }, - alertType: .none, - isAlertPresented: .constant(false), - disableButtons: .constant(false), - backupFileOrCloudBackupHasBeenRequested: .constant(false), - isFetchingFromICloud: .constant(false), - selectedBackup: .constant(nil)) - } - .environment(\.colorScheme, .dark) - NavigationView { - BackupRestoreInnerView(backups: backups, - restoreFromFileAction: {}, - restoreFromCloudAction: {}, - proceedWithBackupFile: { _ in }, - alertType: .none, - isAlertPresented: .constant(false), - disableButtons: .constant(false), - backupFileOrCloudBackupHasBeenRequested: .constant(true), - isFetchingFromICloud: .constant(false), - selectedBackup: .constant(fileUrl)) - } - .environment(\.colorScheme, .dark) - .previewDevice(PreviewDevice(rawValue: "iPhone8,4")) - NavigationView { - BackupRestoreInnerView(backups: backups, - restoreFromFileAction: {}, - restoreFromCloudAction: {}, - proceedWithBackupFile: { _ in }, - alertType: .none, - isAlertPresented: .constant(false), - disableButtons: .constant(false), - backupFileOrCloudBackupHasBeenRequested: .constant(true), - isFetchingFromICloud: .constant(false), - selectedBackup: .constant(nil)) - } - NavigationView { - BackupRestoreInnerView(backups: backups, - restoreFromFileAction: {}, - restoreFromCloudAction: {}, - proceedWithBackupFile: { _ in }, - alertType: .none, - isAlertPresented: .constant(false), - disableButtons: .constant(false), - backupFileOrCloudBackupHasBeenRequested: .constant(true), - isFetchingFromICloud: .constant(true), - selectedBackup: .constant(nil)) - .environment(\.colorScheme, .dark) - } - NavigationView { - BackupRestoreInnerView(backups: backups, - restoreFromFileAction: {}, - restoreFromCloudAction: {}, - proceedWithBackupFile: { _ in }, - alertType: .cloudFailure(reason: .icloudAccountStatusIsNotAvailable), - isAlertPresented: .constant(true), - disableButtons: .constant(false), - backupFileOrCloudBackupHasBeenRequested: .constant(false), - isFetchingFromICloud: .constant(false), - selectedBackup: .constant(nil)) - .environment(\.colorScheme, .dark) - } - } - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/BackupRestoringWaitingScreenViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/BackupRestoringWaitingScreenViewController.swift deleted file mode 100644 index 4a3e47ea..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/BackupRestoringWaitingScreenViewController.swift +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvEngine -import ObvUI -import SwiftUI -import ObvUICoreData - - -protocol BackupRestoringWaitingScreenViewControllerDelegate: AnyObject { - func userWantsToStartOnboardingFromScratch() async - @MainActor func ownedIdentityRestoredFromBackupRestore() async -} - -/// This view controller is shown right after the user entered her backup key. It shows a confirmation message if the backup was restored, or an error message if not. -/// In case the backup was restored, the user gets a chance to activate automatic backups to iCloud. -final class BackupRestoringWaitingScreenHostingController: UIHostingController { - - fileprivate let model: BackupRestoringWaitingScreenModel - - var delegate: BackupRestoringWaitingScreenViewControllerDelegate? { - get { - self.model.delegate - } - set { - self.model.delegate = newValue - } - } - - var appBackupDelegate: AppBackupDelegate? { - get { - self.model.appBackupDelegate - } - set { - self.model.appBackupDelegate = newValue - } - } - - init(backupRequestUuid: UUID, obvEngine: ObvEngine) { - self.model = BackupRestoringWaitingScreenModel(backupRequestUuid: backupRequestUuid, obvEngine: obvEngine) - let view = BackupRestoringWaitingScreenView(model: self.model) - super.init(rootView: view) - } - - @objc required dynamic init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - navigationController?.setNavigationBarHidden(true, animated: false) - } - - override func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) - Task { await model.restoreFullBackupNow() } - } - -} - -fileprivate enum RestoreState { - case restoreInProgress - case restoreSucceeded - case restoreFailed - case restoreSucceededButActivationOfAutomaticBackupsFailed(title: String, message: String) -} - -fileprivate class BackupRestoringWaitingScreenModel: ObservableObject { - - let obvEngine: ObvEngine - let backupRequestUuid: UUID - weak var delegate: BackupRestoringWaitingScreenViewControllerDelegate? - weak var appBackupDelegate: AppBackupDelegate? - - init(backupRequestUuid: UUID, obvEngine: ObvEngine) { - self.backupRequestUuid = backupRequestUuid - self.obvEngine = obvEngine - } - - @Published var restoreState: RestoreState = .restoreInProgress - - func userWantsToStartOnboardingFromScratch() { - Task { await delegate?.userWantsToStartOnboardingFromScratch() } - } - - func ownedIdentityRestoredFromBackupRestore() { - Task { await delegate?.ownedIdentityRestoredFromBackupRestore() } - } - - - @MainActor - fileprivate func restoreFullBackupNow() async { - do { - try await obvEngine.restoreFullBackup(backupRequestIdentifier: backupRequestUuid) - withAnimation { - restoreState = .restoreSucceeded - } - } catch { - withAnimation { - restoreState = .restoreFailed - } - } - } - - - /// Activates automatic backups to iCloud. - /// - Returns: `nil`if this method succeeds, or an error title and message if it fails. - @MainActor - func userWantsToEnableAutomaticBackup() async { - if let errorTitleAndMessage = await userWantsToEnableAutomaticBackup() { - withAnimation { - self.restoreState = .restoreSucceededButActivationOfAutomaticBackupsFailed(title: errorTitleAndMessage.title, message: errorTitleAndMessage.message) - } - } else { - ownedIdentityRestoredFromBackupRestore() - } - } - - - /// Activates automatic backups to iCloud. - /// - Returns: `nil`if this method succeeds, or an error title and message if it fails. - private func userWantsToEnableAutomaticBackup() async -> (title: String, message: String)? { - - guard !ObvMessengerSettings.Backup.isAutomaticBackupEnabled else { return nil } - guard let appBackupDelegate else { assertionFailure(); return nil } - - // The user wants to activate automatic backup. - // We must check whether it's possible. - do { - let accountStatus = try await appBackupDelegate.getAccountStatus() - if case .available = accountStatus { - obvEngine.userJustActivatedAutomaticBackup() - ObvMessengerSettings.Backup.isAutomaticBackupEnabled = true - return nil - } else { - guard let titleAndMessage = AppBackupManager.CKAccountStatusMessage(accountStatus) else { - assertionFailure() - return AppBackupManager.CKAccountStatusMessage(.couldNotDetermine) - } - return titleAndMessage - } - } catch { - return AppBackupManager.CKAccountStatusMessage(.noAccount) - } - } - - -} - - -struct BackupRestoringWaitingScreenView: View { - - @ObservedObject fileprivate var model: BackupRestoringWaitingScreenModel - - var body: some View { - ZStack { - Color(AppTheme.shared.colorScheme.systemBackground) - .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity) - .edgesIgnoringSafeArea(.all) - VStack(alignment: .leading, spacing: 16) { - HStack { - switch model.restoreState { - case .restoreInProgress: - Text(Strings.restoringBackup) - .font(.largeTitle) - .fontWeight(.bold) - case .restoreSucceeded, .restoreSucceededButActivationOfAutomaticBackupsFailed: - Text("TITLE_BACKUP_RESTORED") - .font(.largeTitle) - .fontWeight(.bold) - case .restoreFailed: - Text(Strings.restoreFailed) - .font(.largeTitle) - .fontWeight(.bold) - } - Spacer() - } - ObvCardView { - switch model.restoreState { - case .restoreInProgress: - HStack { - Spacer() - ObvActivityIndicator(isAnimating: .constant(true), style: .large, color: nil) - Spacer() - } - case .restoreSucceeded: - Text("ENABLE_AUTOMATIC_BACKUP_EXPLANATION") - .frame(minWidth: .none, - maxWidth: .infinity, - minHeight: .none, - idealHeight: .none, - maxHeight: .none, - alignment: .center) - case .restoreFailed: - Text("RESTORE_BACKUP_FAILED_EXPLANATION") - .frame(minWidth: .none, - maxWidth: .infinity, - minHeight: .none, - idealHeight: .none, - maxHeight: .none, - alignment: .center) - case .restoreSucceededButActivationOfAutomaticBackupsFailed(title: let title, message: let message): - VStack { - Text(title) - .font(.body) - .fontWeight(.heavy) - .lineLimit(1) - Text(message) - .font(.body) - .multilineTextAlignment(.center) - } - } - } - switch model.restoreState { - case .restoreInProgress: - EmptyView() - case .restoreSucceeded, .restoreSucceededButActivationOfAutomaticBackupsFailed: - if model.appBackupDelegate != nil { - OlvidButton(style: .blue, title: Text("ENABLE_AUTOMATIC_BACKUP_AND_CONTINUE")) { - Task { - await model.userWantsToEnableAutomaticBackup() - } - } - OlvidButton(style: .standard, title: Text("Later")) { - model.ownedIdentityRestoredFromBackupRestore() - } - } else { - OlvidButton(style: .standard, title: Text("Continue")) { - model.ownedIdentityRestoredFromBackupRestore() - } - } - case .restoreFailed: - OlvidButton(style: .standard, title: Text("Back")) { - model.userWantsToStartOnboardingFromScratch() - } - } - Spacer() - }.padding() - - } - } - - private struct Strings { - static let restoringBackup = NSLocalizedString("RESTORING_BACKUP_PLEASE_WAIT", comment: "Title centered on screen") - static let restoreFailed = NSLocalizedString("Restore failed 🥺", comment: "Body displayed when a backup restore failed") - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/CloudFailureReason.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/CloudFailureReason.swift deleted file mode 100644 index 6b65e5a6..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/BackupRestore/CloudFailureReason.swift +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation - -enum CloudFailureReason { - case icloudAccountStatusIsNotAvailable - case couldNotRetrieveEncryptedBackupFile - case couldNotRetrieveCreationDate - case couldNotRetrieveDeviceName - case iCloudError(description: String) -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ChooseBetweenBackupRestoreAndAddThisDevice/ChooseBetweenBackupRestoreAndAddThisDeviceView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ChooseBetweenBackupRestoreAndAddThisDevice/ChooseBetweenBackupRestoreAndAddThisDeviceView.swift new file mode 100644 index 00000000..5ccafd8f --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ChooseBetweenBackupRestoreAndAddThisDevice/ChooseBetweenBackupRestoreAndAddThisDeviceView.swift @@ -0,0 +1,92 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI + + +protocol ChooseBetweenBackupRestoreAndAddThisDeviceViewActionsProtocol: AnyObject { + func userWantsToRestoreBackup() + func userWantsToActivateHerProfileOnThisDevice() + func userIndicatedHerProfileIsManagedByOrganisation() +} + + +struct ChooseBetweenBackupRestoreAndAddThisDeviceView: View { + + let actions: ChooseBetweenBackupRestoreAndAddThisDeviceViewActionsProtocol + + var body: some View { + ScrollView { + VStack { + + // Vertically center the view, but not on iPhone + + if UIDevice.current.userInterfaceIdiom != .phone { + Spacer() + } + + NewOnboardingHeaderView( + title: "WHAT_DO_YOU_WANT_TO_DO_ONBOARDING_TITLE", + subtitle: nil) + + VStack { + OnboardingSpecificPlainButton("ONBOARDING_BUTTON_TITLE_ACTIVATE_MY_PROFILE_ON_THIS_DEVICE", action: actions.userWantsToActivateHerProfileOnThisDevice) + .padding(.bottom) + OnboardingSpecificPlainButton("ONBOARDING_BUTTON_TITLE_RESTORE_BACKUP", action: actions.userWantsToRestoreBackup) + } + .padding(.horizontal) + .padding(.top) + + HStack { + Text("ONBOARDING_NAME_CHOOSER_MANAGED_PROFILE_LABEL") + .foregroundStyle(.secondary) + Button("ONBOARDING_NAME_CHOOSER_MANAGED_PROFILE_BUTTON_TITLE", action: actions.userIndicatedHerProfileIsManagedByOrganisation) + } + .font(.subheadline) + .padding(.top, 40) + + Spacer() + + } + } + } + +} + + + + + + + +struct ChooseBetweenBackupRestoreAndAddThisDeviceView_Previews: PreviewProvider { + + private final class Actions: ChooseBetweenBackupRestoreAndAddThisDeviceViewActionsProtocol { + func userWantsToRestoreBackup() {} + func userWantsToActivateHerProfileOnThisDevice() {} + func userIndicatedHerProfileIsManagedByOrganisation() {} + } + + private static let actions = Actions() + + static var previews: some View { + ChooseBetweenBackupRestoreAndAddThisDeviceView(actions: actions) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ChooseBetweenBackupRestoreAndAddThisDevice/ChooseBetweenBackupRestoreAndAddThisDeviceViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ChooseBetweenBackupRestoreAndAddThisDevice/ChooseBetweenBackupRestoreAndAddThisDeviceViewController.swift new file mode 100644 index 00000000..b64069ba --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ChooseBetweenBackupRestoreAndAddThisDevice/ChooseBetweenBackupRestoreAndAddThisDeviceViewController.swift @@ -0,0 +1,102 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI + + +protocol ChooseBetweenBackupRestoreAndAddThisDeviceViewControllerDelegate: AnyObject { + func userWantsToRestoreBackup(controller: ChooseBetweenBackupRestoreAndAddThisDeviceViewController) async + func userWantsToActivateHerProfileOnThisDevice(controller: ChooseBetweenBackupRestoreAndAddThisDeviceViewController) async + func userIndicatedHerProfileIsManagedByOrganisation(controller: ChooseBetweenBackupRestoreAndAddThisDeviceViewController) async +} + + +final class ChooseBetweenBackupRestoreAndAddThisDeviceViewController: UIHostingController, ChooseBetweenBackupRestoreAndAddThisDeviceViewActionsProtocol { + + weak var delegate: ChooseBetweenBackupRestoreAndAddThisDeviceViewControllerDelegate? + + init(delegate: ChooseBetweenBackupRestoreAndAddThisDeviceViewControllerDelegate) { + let actions = ChooseBetweenBackupRestoreAndAddThisDeviceViewActions() + let view = ChooseBetweenBackupRestoreAndAddThisDeviceView(actions: actions) + super.init(rootView: view) + actions.delegate = self + self.delegate = delegate + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = .systemBackground + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + } + + // ChooseBetweenBackupRestoreAndAddThisDeviceViewActionsProtocol + + func userWantsToRestoreBackup() { + Task { await delegate?.userWantsToRestoreBackup(controller: self) } + } + + func userWantsToActivateHerProfileOnThisDevice() { + Task { await delegate?.userWantsToActivateHerProfileOnThisDevice(controller: self) } + } + + func userIndicatedHerProfileIsManagedByOrganisation() { + Task { await delegate?.userIndicatedHerProfileIsManagedByOrganisation(controller: self) } + } + +} + + +// MARK: - ChooseBetweenBackupRestoreAndAddThisDeviceViewActions + +private final class ChooseBetweenBackupRestoreAndAddThisDeviceViewActions: ChooseBetweenBackupRestoreAndAddThisDeviceViewActionsProtocol { + + weak var delegate: ChooseBetweenBackupRestoreAndAddThisDeviceViewActionsProtocol? + + func userWantsToRestoreBackup() { + delegate?.userWantsToRestoreBackup() + } + + func userWantsToActivateHerProfileOnThisDevice() { + delegate?.userWantsToActivateHerProfileOnThisDevice() + } + + func userIndicatedHerProfileIsManagedByOrganisation() { + delegate?.userIndicatedHerProfileIsManagedByOrganisation() + } + + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/CommonViews/NewOnboardingHeaderView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/CommonViews/NewOnboardingHeaderView.swift new file mode 100644 index 00000000..b8d85fe1 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/CommonViews/NewOnboardingHeaderView.swift @@ -0,0 +1,61 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PART ICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI + + +struct NewOnboardingHeaderView: View { + + let title: LocalizedStringKey + let subtitle: LocalizedStringKey? + + var body: some View { + VStack { + Image("badge", bundle: nil) + .resizable() + .frame(width: 60, height: 60, alignment: .center) + .padding() + Text(title) + .multilineTextAlignment(.center) + .font(.title) + if let subtitle { + Text(subtitle) + .multilineTextAlignment(.center) + .font(.title3) + .foregroundStyle(.secondary) + } + } + } + +} + + +struct NewOnboardingHeaderView_Previews: PreviewProvider { + + static var previews: some View { + NewOnboardingHeaderView( + title: "WELCOME_ONBOARDING_TITLE", + subtitle: "WELCOME_ONBOARDING_SUBTITLE") + NewOnboardingHeaderView( + title: "WELCOME_ONBOARDING_TITLE", + subtitle: "WELCOME_ONBOARDING_SUBTITLE") + .environment(\.locale, .init(identifier: "fr")) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/CommonViews/SingleDigitTextField.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/CommonViews/SingleDigitTextField.swift new file mode 100644 index 00000000..f70d38b1 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/CommonViews/SingleDigitTextField.swift @@ -0,0 +1,104 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import Combine + + +protocol SingleDigitTextFielddActions { + func singleTextFieldDidChangeAtIndex(_ index: Int) +} + + + +struct SingleDigitTextField: View { + + private let key: LocalizedStringKey + private let text: Binding + private let actions: SingleDigitTextFielddActions? // Not needed when the this text field stays disabled + private let model: Model? // Not needed when the this text field stays disabled + + @Environment(\.isEnabled) var isEnabled + + struct Model { + let index: Int // Index of this text field in the BackupKeyTextField + } + + @State private var previousText: String? = nil + + private static let maxLength = 1 + + /// Both `actions` and `model` must be set, unless this text field is disabled by default (just used to show some existing value). + init(_ key: LocalizedStringKey, text: Binding, actions: SingleDigitTextFielddActions?, model: Model?) { + self.key = key + self.text = text + self.actions = actions + self.model = model + } + + private let myFont = Font + .system(size: 18) + .monospaced() + .weight(.bold) + + var body: some View { + TextField(key, text: text) + .keyboardType(.decimalPad) + .textContentType(.none) + .multilineTextAlignment(.center) + .font(myFont) + .padding(.vertical, 10) + .overlay(content: { + RoundedRectangle(cornerRadius: 12, style: .continuous) + .stroke(Color(UIColor.systemGray2), lineWidth: 1) + .padding(.horizontal, 1) + }).background( + RoundedRectangle(cornerRadius: 12) + .fill(Color(UIColor.systemGray5)) + .padding(.horizontal, 1) + .opacity(isEnabled ? 0 : 1) + ) + .onReceive(Just(text)) { _ in + guard let actions, let model else { return } + guard previousText != text.wrappedValue else { return } + previousText = text.wrappedValue + // We limit the string length to maxLength characters. + let newText = String(text.wrappedValue.removingAllCharactersNotInCharacterSet(.decimalDigits).prefix(Self.maxLength)) + if text.wrappedValue != newText { + text.wrappedValue = newText + } + actions.singleTextFieldDidChangeAtIndex(model.index) + } + } + +} + + +// MARK: - Private helpers + +fileprivate extension String { + func removingAllCharactersNotInCharacterSet(_ characterSet: CharacterSet) -> String { + return String(self + .trimmingWhitespacesAndNewlines() + .unicodeScalars + .filter({ + characterSet.contains($0) + })) + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/CurrentDeviceNameChooser/CurrentDeviceNameChooserView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/CurrentDeviceNameChooser/CurrentDeviceNameChooserView.swift new file mode 100644 index 00000000..23b705ea --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/CurrentDeviceNameChooser/CurrentDeviceNameChooserView.swift @@ -0,0 +1,152 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI + +protocol CurrentDeviceNameChooserViewActionsProtocol: AnyObject { + func userDidChooseCurrentDeviceName(deviceName: String) async +} + + +struct CurrentDeviceNameChooserView: View { + + let actions: CurrentDeviceNameChooserViewActionsProtocol + let model: Model + + struct Model { + let defaultDeviceName: String + } + + @State private var deviceName = ""; + @State private var deviceNameSetWithDefaultName = false + @State private var isButtonDisabled = true + @State private var isInterfaceDisabled = false + + + private func isResetButtonDisabled() { + isButtonDisabled = deviceName.trimmingWhitespacesAndNewlines().isEmpty + } + + private func userDidChooseCurrentDeviceName() { + isInterfaceDisabled = true + Task { await actions.userDidChooseCurrentDeviceName(deviceName: deviceName) } + } + + var body: some View { + ScrollView { + VStack { + + NewOnboardingHeaderView(title: "ONBOARDING_DEVICE_NAME_CHOOSER_TITLE", subtitle: "ONBOARDING_DEVICE_NAME_CHOOSER_SUBTITLE") + .padding(.bottom, 40) + + InternalTextField("ONBOARDING_DEVICE_NAME_CHOOSER_TEXTFIELD_\(model.defaultDeviceName)", text: $deviceName) + .onChange(of: deviceName) { _ in isResetButtonDisabled() } + .padding(.bottom) + + HStack { + Spacer() + ProgressView() + Spacer() + }.opacity(isInterfaceDisabled ? 1.0 : 0.0) + + InternalButton("ONBOARDING_DEVICE_NAME_CHOOSER_BUTTON_TITLE", action: userDidChooseCurrentDeviceName) + .disabled(isButtonDisabled) + .padding(.top, 20) + + } + .padding(.horizontal) + } + .onAppear { + isInterfaceDisabled = false + guard !deviceNameSetWithDefaultName else { return } + deviceNameSetWithDefaultName = true + deviceName = String.localizedStringWithFormat(NSLocalizedString("MY_DEVICE_NAME_%@", comment: ""), model.defaultDeviceName) + } + .disabled(isInterfaceDisabled) + } + +} + + +// MARK: - Button used in this view only + +private struct InternalButton: View { + + private let key: LocalizedStringKey + private let action: () -> Void + @Environment(\.isEnabled) var isEnabled + + init(_ key: LocalizedStringKey, action: @escaping () -> Void) { + self.key = key + self.action = action + } + + var body: some View { + Button(action: action) { + Text(key) + .foregroundStyle(.white) + .padding(.horizontal, 30) + .padding(.vertical, 24) + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + } + +} + + +// MARK: - Text field used in this view only + +private struct InternalTextField: View { + + private let key: LocalizedStringKey + private let text: Binding + + init(_ key: LocalizedStringKey, text: Binding) { + self.key = key + self.text = text + } + + var body: some View { + TextField(key, text: text) + .padding() + .background(Color("TextFieldBackgroundColor")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + } + +} + + +struct CurrentDeviceNameChooserViewActionsProtocol_Previews: PreviewProvider { + + final class ActionsForPreviews: CurrentDeviceNameChooserViewActionsProtocol{ + func userDidChooseCurrentDeviceName(deviceName: String) {} + } + + private static let actions = ActionsForPreviews() + + private static let model = CurrentDeviceNameChooserView.Model( + defaultDeviceName: "iPhone 15") + + static var previews: some View { + CurrentDeviceNameChooserView(actions: actions, model: model) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/CurrentDeviceNameChooser/CurrentDeviceNameChooserViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/CurrentDeviceNameChooser/CurrentDeviceNameChooserViewController.swift new file mode 100644 index 00000000..c7084f27 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/CurrentDeviceNameChooser/CurrentDeviceNameChooserViewController.swift @@ -0,0 +1,110 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI + + +protocol CurrentDeviceNameChooserViewControllerDelegate: AnyObject { + func userWantsToCloseOnboarding(controller: CurrentDeviceNameChooserViewController) async + func userDidChooseCurrentDeviceName(controller: CurrentDeviceNameChooserViewController, deviceName: String) async +} + + +@MainActor +final class CurrentDeviceNameChooserViewController: UIHostingController, CurrentDeviceNameChooserViewActionsProtocol { + + private weak var delegate: CurrentDeviceNameChooserViewControllerDelegate? + + private let showCloseButton: Bool + + init(model: CurrentDeviceNameChooserView.Model, delegate: CurrentDeviceNameChooserViewControllerDelegate, showCloseButton: Bool) { + self.showCloseButton = showCloseButton + let actions = CurrentDeviceNameChooserViewActions() + let view = CurrentDeviceNameChooserView(actions: actions, model: model) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + configureNavigation(animated: false) + } + + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + configureNavigation(animated: false) + } + + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + configureNavigation(animated: animated) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + if showCloseButton && navigationItem.rightBarButtonItem == nil { + let handler: UIActionHandler = { [weak self] _ in self?.closeAction() } + let closeButton = UIBarButtonItem(systemItem: .close, primaryAction: .init(handler: handler)) + navigationItem.setRightBarButton(closeButton, animated: animated) + } + } + + + private func closeAction() { + Task { [weak self] in + guard let self else { return } + await delegate?.userWantsToCloseOnboarding(controller: self) + } + } + + + // CurrentDeviceNameChooserViewActionsProtocol + + func userDidChooseCurrentDeviceName(deviceName: String) async { + await delegate?.userDidChooseCurrentDeviceName(controller: self, deviceName: deviceName) + } + +} + + + + +private final class CurrentDeviceNameChooserViewActions: CurrentDeviceNameChooserViewActionsProtocol { + + weak var delegate: CurrentDeviceNameChooserViewActionsProtocol? + + func userDidChooseCurrentDeviceName(deviceName: String) async { + await delegate?.userDidChooseCurrentDeviceName(deviceName: deviceName) + } + +} + diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/DisplayNameChooserViewController/DisplayNameChooserView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/DisplayNameChooserViewController/DisplayNameChooserView.swift deleted file mode 100644 index 0f39e0f0..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/DisplayNameChooserViewController/DisplayNameChooserView.swift +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import SwiftUI -import ObvTypes -import ObvUICoreData - - -protocol DisplayNameChooserViewControllerDelegate: AnyObject { - func userDidSetUnmanagedDetails(ownedIdentityCoreDetails: ObvIdentityCoreDetails, photoURL: URL?) async - func userDidAcceptedKeycloakDetails(keycloakDetails: (keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff), keycloakState: ObvKeycloakState, photoURL: URL?) async -} - - -final class DisplayNameChooserViewController: UIHostingController { - - private let singleIdentity: SingleIdentity - - init(delegate: DisplayNameChooserViewControllerDelegate) { - self.singleIdentity = SingleIdentity(serverAndAPIKeyToShow: nil, identityDetails: nil) - let view = DisplayNameChooserView(singleIdentity: singleIdentity, completionHandlerOnSave: { [weak delegate] (coreDetails, photoURL) in - Task { await delegate?.userDidSetUnmanagedDetails(ownedIdentityCoreDetails: coreDetails, photoURL: photoURL) } - }) - super.init(rootView: view) - } - - init(keycloakDetails: (keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff), keycloakState: ObvKeycloakState, delegate: DisplayNameChooserViewControllerDelegate) { - self.singleIdentity = SingleIdentity(keycloakDetails: keycloakDetails) - let view = DisplayNameChooserView(singleIdentity: singleIdentity, completionHandlerOnSave: { [weak delegate] (coreDetails, photoURL) in - assert(try! keycloakDetails.keycloakUserDetailsAndStuff.getObvIdentityCoreDetails() == coreDetails) - Task { await delegate?.userDidAcceptedKeycloakDetails(keycloakDetails: keycloakDetails, keycloakState: keycloakState, photoURL: photoURL) } - }) - super.init(rootView: view) - } - - override func viewDidLoad() { - super.viewDidLoad() - title = CommonString.Title.myId - } - - deinit { - debugPrint("DisplayNameChooserViewController deinit") - } - - @MainActor required dynamic init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - -} - - -struct DisplayNameChooserView: View { - - var singleIdentity: SingleIdentity - var completionHandlerOnSave: (ObvIdentityCoreDetails, URL?) -> Void - var editionType: EditSingleOwnedIdentityView.EditionType = .creation - - var body: some View { - EditSingleOwnedIdentityView( - editionType: editionType, - singleIdentity: singleIdentity, - userConfirmedPublishAction: { - if let userDetails = try? singleIdentity.keycloakDetails?.keycloakUserDetailsAndStuff.getObvIdentityCoreDetails() { - completionHandlerOnSave(userDetails, singleIdentity.photoURL) - } else if let unmanagedIdentityDetails = singleIdentity.unmanagedIdentityDetails { - completionHandlerOnSave(unmanagedIdentityDetails, singleIdentity.photoURL) - } - }, - userWantsToUnbindFromKeycloakServer: { _ in - assertionFailure("We do not expect any unbinding during an onboarding") - }) - } -} - - -struct DisplayNameChooserView_Previews: PreviewProvider { - - private static let emptyIdentity = SingleIdentity(firstName: nil, - lastName: nil, - position: nil, - company: nil, - isKeycloakManaged: false, - showGreenShield: false, - showRedShield: false, - identityColors: nil, - photoURL: nil) - - static var previews: some View { - Group { - DisplayNameChooserView(singleIdentity: emptyIdentity, completionHandlerOnSave: {_,_ in }) - DisplayNameChooserView(singleIdentity: emptyIdentity, completionHandlerOnSave: {_,_ in }) - .environment(\.colorScheme, .dark) - .environment(\.locale, .init(identifier: "fr")) - } - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderManualConfiguration/IdentityProviderManualConfigurationHostingView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderManualConfiguration/IdentityProviderManualConfigurationHostingView.swift deleted file mode 100644 index 5f58caa0..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderManualConfiguration/IdentityProviderManualConfigurationHostingView.swift +++ /dev/null @@ -1,207 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import SwiftUI -import Combine -import JWS -import AppAuth -import ObvTypes -import ObvUI - -protocol IdentityProviderManualConfigurationHostingViewDelegate: AnyObject { - - func userWantsToValidateManualKeycloakConfiguration(keycloakConfig: KeycloakConfiguration) async - -} - - -final class IdentityProviderManualConfigurationHostingView: UIHostingController { - - private let store: IdentityProviderManualConfigurationViewStore - - init(delegate: IdentityProviderManualConfigurationHostingViewDelegate) { - let store = IdentityProviderManualConfigurationViewStore(delegate: delegate) - let view = IdentityProviderManualConfigurationView(store: store) - self.store = store - super.init(rootView: view) - title = Strings.title - } - - @objc required dynamic init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - navigationController?.navigationBar.prefersLargeTitles = false - } - - override func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - navigationController?.navigationBar.prefersLargeTitles = true - } - - private struct Strings { - static let title = NSLocalizedString("IDENTITY_PROVIDER", comment: "") - } - -} - - -final class IdentityProviderManualConfigurationViewStore: ObservableObject { - - @Published fileprivate var displayedIdentityServerAsString = "" - @Published fileprivate var displayedClientId = "" - @Published fileprivate var displayedClientSecret = "" - - @Published fileprivate var validatedServerURL: URL? = nil - - private var cancellables = [AnyCancellable]() - - weak var delegate: IdentityProviderManualConfigurationHostingViewDelegate? - - @Published private var identityServer: URL? - @Published private(set) var keycloakConfig: KeycloakConfiguration? - - init(delegate: IdentityProviderManualConfigurationHostingViewDelegate?) { - self.delegate = delegate - processDisplayedValues() - } - - private func processDisplayedValues() { - cancellables.append(contentsOf: [ - // When the identity server changes, we invalidate any previously validated server, and check whether the new displayed server can be validated - self.$displayedIdentityServerAsString.sink(receiveValue: { [weak self] displayedServer in - if let url = URL(string: displayedServer), UIApplication.shared.canOpenURL(url) { - self?.identityServer = url - } else { - self?.identityServer = nil - } - }), - self.$identityServer.combineLatest(self.$displayedClientId).sink { [weak self] (serverURL, clientId) in - guard let serverURL = serverURL, let displayedClientId = self?.displayedClientId, !clientId.isEmpty else { - withAnimation { self?.keycloakConfig = nil } - return - } - let keycloakConfig = KeycloakConfiguration(serverURL: serverURL, clientId: clientId, clientSecret: displayedClientId) - guard self?.keycloakConfig != keycloakConfig else { return } - withAnimation { self?.keycloakConfig = keycloakConfig } - }, - ]) - } - - fileprivate func userWantsToValidateDisplayedServer() { - guard let keycloakConfig = keycloakConfig else { assertionFailure(); return } - Task { await delegate?.userWantsToValidateManualKeycloakConfiguration(keycloakConfig: keycloakConfig) } - } - -} - - -struct IdentityProviderManualConfigurationView: View { - - @ObservedObject var store: IdentityProviderManualConfigurationViewStore - - var body: some View { - ZStack { - Color(AppTheme.shared.colorScheme.systemBackground) - .edgesIgnoringSafeArea(.all) - VStack { - - Form { - Text("IDENTITY_PROVIDER_OPTION_EXPLANATION") - .font(.body) - IdentityProviderServerAndOtherTextFields(displayedIdentityServer: $store.displayedIdentityServerAsString, - displayedClientId: $store.displayedClientId, - displayedClientSecret: $store.displayedClientSecret) - } - - OlvidButton(style: .blue, - title: Text("VALIDATE_SERVER"), - systemIcon: .checkmarkCircle, - action: store.userWantsToValidateDisplayedServer) - .disabled(store.keycloakConfig == nil) - .padding(.bottom, 16) - .padding(.horizontal) - - } - - } - } -} - - - - -fileprivate struct IdentityProviderServerAndOtherTextFields: View { - - @Binding var displayedIdentityServer: String - @Binding var displayedClientId: String - @Binding var displayedClientSecret: String - let validating: Bool = false - - var body: some View { - - // Identity Server URL - Section(header: Text("IDENTITY_PROVIDER_SERVER")) { - HStack { - TextField(LocalizedStringKey("URL"), text: $displayedIdentityServer) - .disableAutocorrection(true) - .autocapitalization(.none) - .disabled(validating) - if validating { - ObvProgressView() - } - } - HStack { - TextField(LocalizedStringKey("SERVER_CLIENT_ID"), text: $displayedClientId) - .disableAutocorrection(true) - .autocapitalization(.none) - .disabled(validating) - if validating { - ObvProgressView() - } - } - HStack { - SecureField(LocalizedStringKey("SERVER_CLIENT_SECRET"), text: $displayedClientSecret) - .disableAutocorrection(true) - .autocapitalization(.allCharacters) - .disabled(validating) - if validating { - ObvProgressView() - } - } - } - - } -} - - - - - - -struct IdentityProviderOptionsView_Previews: PreviewProvider { - - private static let mockStore = IdentityProviderManualConfigurationViewStore(delegate: nil) - - static var previews: some View { - IdentityProviderManualConfigurationView(store: mockStore) - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/IdentityProviderValidationHostingViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/IdentityProviderValidationHostingViewController.swift deleted file mode 100644 index b1af01d0..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/IdentityProviderValidationHostingViewController.swift +++ /dev/null @@ -1,404 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import AppAuth -import JWS -import ObvUI -import ObvTypes -import SwiftUI -import UI_SystemIcon -import UI_SystemIcon_SwiftUI - - -protocol IdentityProviderValidationHostingViewControllerDelegate: AnyObject { - func newKeycloakUserDetailsAndStuff(_ keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff, keycloakState: ObvKeycloakState) async - func userWantsToRestoreBackup() async -} - -final class IdentityProviderValidationHostingViewController: UIHostingController { - - private let store: IdentityProviderValidationHostingViewStore - - init(keycloakConfig: KeycloakConfiguration, isConfiguredFromMDM: Bool, delegate: IdentityProviderValidationHostingViewControllerDelegate) { - let store = IdentityProviderValidationHostingViewStore(keycloakConfig: keycloakConfig, isConfiguredFromMDM: isConfiguredFromMDM) - let view = IdentityProviderValidationHostingView(store: store) - self.store = store - super.init(rootView: view) - store.delegate = delegate - } - - @objc required dynamic init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - override func viewDidLoad() { - super.viewDidLoad() - title = store.isConfiguredFromMDM ? nil : Strings.title - navigationItem.largeTitleDisplayMode = .never - - let symbolConfiguration = UIImage.SymbolConfiguration(pointSize: 20.0, weight: .bold) - let questionmarkCircleImage = UIImage(systemIcon: .questionmarkCircle, withConfiguration: symbolConfiguration) - let questionmarkCircleButton = UIBarButtonItem(image: questionmarkCircleImage, style: UIBarButtonItem.Style.plain, target: self, action: #selector(questionmarkCircleButtonTapped)) - navigationItem.rightBarButtonItem = questionmarkCircleButton - - } - - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - navigationController?.navigationBar.barStyle = .black - navigationController?.navigationBar.tintColor = .white - } - - - override func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - navigationController?.navigationBar.barStyle = .default - navigationController?.navigationBar.tintColor = .systemBlue - } - - - @objc func questionmarkCircleButtonTapped() { - let view = KeycloakConfigurationDetailsView(keycloakConfig: store.keycloakConfig) - let vc = UIHostingController(rootView: view) - if #available(iOS 15, *) { - vc.sheetPresentationController?.detents = [.medium(), .large()] - vc.sheetPresentationController?.preferredCornerRadius = 16.0 - vc.sheetPresentationController?.prefersGrabberVisible = true - } - present(vc, animated: true) - } - - private struct Strings { - static let title = NSLocalizedString("IDENTITY_PROVIDER", comment: "") - } - -} - - -final class IdentityProviderValidationHostingViewStore: ObservableObject { - - fileprivate let keycloakConfig: KeycloakConfiguration - fileprivate let isConfiguredFromMDM: Bool - - fileprivate var delegate: IdentityProviderValidationHostingViewControllerDelegate? - - // Nil while validating - @Published fileprivate var validationStatus: ValidationStatus - - @Published fileprivate var isAlertPresented = false - @Published fileprivate var alertType = AlertType.none - - init(keycloakConfig: KeycloakConfiguration, isConfiguredFromMDM: Bool) { - self.keycloakConfig = keycloakConfig - self.isConfiguredFromMDM = isConfiguredFromMDM - self.validationStatus = .validating - } - - fileprivate enum AlertType { - case userAuthenticationFailed - case badKeycloakServerResponse - case none // Dummy type - } - - enum ValidationStatus { - case validating - case validationFailed - case validated(keycloakServerKeyAndConfig: (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration)) - - var isValidated: Bool { - switch self { - case .validated: return true - default: return false - } - } - } - - @MainActor - fileprivate func userWantsToValidateDisplayedServer() { - assert(Thread.isMainThread) - switch validationStatus { - case .validating: - break - case .validationFailed, .validated: - return // Already validated, happens typically when the user comes back to this view after a successfull authentication - } - Task { - let keycloakServerKeyAndConfig: (ObvJWKSet, OIDServiceConfiguration) - do { - keycloakServerKeyAndConfig = try await KeycloakManagerSingleton.shared.discoverKeycloakServer(for: keycloakConfig.serverURL) - } catch { - assert(Thread.isMainThread) - withAnimation { validationStatus = .validationFailed } - return - } - assert(Thread.isMainThread) - withAnimation { validationStatus = .validated(keycloakServerKeyAndConfig: keycloakServerKeyAndConfig) } - } - } - - - @MainActor - fileprivate func userWantsToAuthenticate(keycloakServerKeyAndConfig: (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration)) async { - do { - let authState = try await KeycloakManagerSingleton.shared.authenticate(configuration: keycloakServerKeyAndConfig.serviceConfig, - clientId: keycloakConfig.clientId, - clientSecret: keycloakConfig.clientSecret, - ownedCryptoId: nil) - assert(Thread.isMainThread) - await getOwnedDetailsAfterSucessfullAuthentication(keycloakServerKeyAndConfig: keycloakServerKeyAndConfig, authState: authState) - } catch { - assert(Thread.isMainThread) - alertType = .userAuthenticationFailed - isAlertPresented = true - return - } - } - - - @MainActor - private func getOwnedDetailsAfterSucessfullAuthentication(keycloakServerKeyAndConfig: (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration), authState: OIDAuthState) async { - - assert(Thread.isMainThread) - - let keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff - let keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff - do { - (keycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff) = try await KeycloakManagerSingleton.shared.getOwnDetails(keycloakServer: keycloakConfig.serverURL, - authState: authState, - clientSecret: keycloakConfig.clientSecret, - jwks: keycloakServerKeyAndConfig.jwks, - latestLocalRevocationListTimestamp: nil) - } catch let error as KeycloakManager.GetOwnDetailsError { - switch error { - case .badResponse: - alertType = .badKeycloakServerResponse - isAlertPresented = true - default: - // We should be more specific - alertType = .badKeycloakServerResponse - isAlertPresented = true - } - return - } catch { - // We should be more specific - alertType = .badKeycloakServerResponse - isAlertPresented = true - return - } - - assert(Thread.isMainThread) - - if let minimumBuildVersion = keycloakServerRevocationsAndStuff.minimumIOSBuildVersion { - guard ObvMessengerConstants.bundleVersionAsInt >= minimumBuildVersion else { - ObvMessengerInternalNotification.installedOlvidAppIsOutdated(presentingViewController: nil) - .postOnDispatchQueue() - return - } - } - - guard let rawAuthState = try? authState.serialize() else { - alertType = .badKeycloakServerResponse - isAlertPresented = true - return - } - let keycloakState = ObvKeycloakState( - keycloakServer: keycloakConfig.serverURL, - clientId: keycloakConfig.clientId, - clientSecret: keycloakConfig.clientSecret, - jwks: keycloakServerKeyAndConfig.jwks, - rawAuthState: rawAuthState, - signatureVerificationKey: keycloakUserDetailsAndStuff.serverSignatureVerificationKey, - latestLocalRevocationListTimestamp: nil, - latestGroupUpdateTimestamp: nil) - Task { await delegate?.newKeycloakUserDetailsAndStuff(keycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: keycloakServerRevocationsAndStuff, keycloakState: keycloakState) } - } - - func userWantsToRestoreBackup() { - Task { await delegate?.userWantsToRestoreBackup() } - } - -} - - -struct IdentityProviderValidationHostingView: View { - - @ObservedObject var store: IdentityProviderValidationHostingViewStore - - @Environment(\.colorScheme) var colorScheme - - var body: some View { - ZStack { - Image("SplashScreenBackground") - .resizable() - .edgesIgnoringSafeArea(.all) - VStack(spacing: 0) { - switch store.validationStatus { - case .validating: - ObvActivityIndicator(isAnimating: .constant(true), style: .large, color: .white) - if store.isConfiguredFromMDM { - HStack { - Spacer() - Text("VALIDATING_ENTERPRISE_CONFIGURATION") - .font(.system(.subheadline, design: .default)) - .foregroundColor(.white) - Spacer() - } - .padding(.top, 16) - } - case .validationFailed, .validated: - if store.isConfiguredFromMDM { - Image("logo") - .resizable() - .scaledToFit() - .padding(.horizontal) - .padding(.bottom, 16) - .frame(maxWidth: 300) - .transition(.scale) - } - ScrollView { - HStack { - Spacer() - BigCircledSystemIconView(systemIcon: store.validationStatus.isValidated ? .checkmark : .xmark, - backgroundColor: store.validationStatus.isValidated ? .green : .red) - Spacer() - } - .padding(.top, 32) - .padding(.bottom, 32) - Text(store.validationStatus.isValidated ? "IDENTITY_PROVIDER_CONFIGURED_SUCCESS" : "IDENTITY_PROVIDER_CONFIGURED_FAILURE") - .font(.system(.body, design: .default)) - .foregroundColor(.white) - } - Spacer() - if case .validated(keycloakServerKeyAndConfig: let keycloakServerKeyAndConfig) = store.validationStatus { - if store.validationStatus.isValidated { - VStack { - if store.isConfiguredFromMDM { - OlvidButton(style: colorScheme == .dark ? .standard : .standardAlt, - title: Text("Restore a backup"), - systemIcon: .folderCircle, - action: store.userWantsToRestoreBackup) - } - OlvidButton(style: colorScheme == .dark ? .blue : .white, - title: Text("AUTHENTICATE"), - systemIcon: .personCropCircleBadgeCheckmark, - action: { Task { await store.userWantsToAuthenticate(keycloakServerKeyAndConfig: keycloakServerKeyAndConfig) } }) - .padding(.bottom, 16) - } - } - } - } - } - .padding(.horizontal) - } - .onAppear { - store.userWantsToValidateDisplayedServer() - } - .alert(isPresented: $store.isAlertPresented) { - switch store.alertType { - case .userAuthenticationFailed: - return Alert(title: Text("AUTHENTICATION_FAILED"), - message: Text("CHECK_IDENTITY_SERVER_PARAMETERS"), - dismissButton: Alert.Button.default(Text("Ok")) - ) - case .badKeycloakServerResponse: - return Alert(title: Text("BAD_KEYCLOAK_SERVER_RESPONSE"), - dismissButton: Alert.Button.default(Text("Ok")) - ) - case .none: - assertionFailure() - return Alert(title: Text("AUTHENTICATION_FAILED"), - message: Text("CHECK_IDENTITY_SERVER_PARAMETERS"), - dismissButton: Alert.Button.default(Text("Ok")) - ) - } - } - } - -} - - -fileprivate struct KeycloakConfigurationDetailsView: View { - - let keycloakConfig: KeycloakConfiguration - - @Environment(\.presentationMode) var presentationMode - - var body: some View { - ZStack { - Color(AppTheme.shared.colorScheme.systemBackground) - .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity) - .edgesIgnoringSafeArea(.all) - - VStack { - - List { - Section { - ObvSimpleListItemView( - title: Text("SERVER_URL"), - value: keycloakConfig.serverURL.absoluteString) - ObvSimpleListItemView( - title: Text("CLIENT_ID"), - value: keycloakConfig.clientId) - ObvSimpleListItemView( - title: Text("CLIENT_SECRET"), - value: keycloakConfig.clientSecret) - } header: { - Text("IDENTITY_PROVIDER_CONFIGURATION") - } - - } - .padding(.bottom, 16) - - OlvidButton(style: .blue, - title: Text("Back"), - systemIcon: .arrowshapeTurnUpBackwardFill, - action: { presentationMode.wrappedValue.dismiss() }) - .padding(.vertical) - .padding(.horizontal, 16) - - - } - .padding(.top, 16) - - } - } - -} - - - - - -fileprivate struct BigCircledSystemIconView: View { - - let systemIcon: SystemIcon - let backgroundColor: Color - - var body: some View { - Image(systemIcon: systemIcon) - .font(Font.system(size: 50, weight: .heavy, design: .rounded)) - .foregroundColor(.white) - .padding(32) - .background(Circle().fill(backgroundColor)) - .padding() - .background(Circle().fill(backgroundColor.opacity(0.2))) - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/IdentityProviderValidationView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/IdentityProviderValidationView.swift new file mode 100644 index 00000000..3e4ecdff --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/IdentityProviderValidationView.swift @@ -0,0 +1,225 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import JWS +import AppAuth +import UI_SystemIcon +import AuthenticationServices + + +protocol IdentityProviderValidationViewActionsProtocol: AnyObject { + func discoverKeycloakServer(keycloakServerURL: URL) async throws -> (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration) + func userWantsToAuthenticateOnKeycloakServer(keycloakConfiguration: Onboarding.KeycloakConfiguration, isConfiguredFromMDM: Bool, keycloakServerKeyAndConfig: (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration)) async throws +} + + +struct IdentityProviderValidationView: View { + + let model: Model + let actions: IdentityProviderValidationViewActionsProtocol + @State private var discoveryStatus: KeycloakServerDiscoveryStatus = .toDiscover + + @State private var errorForAlert: Error? + @State private var isAlertShown = false + + + struct Model { + let keycloakConfiguration: Onboarding.KeycloakConfiguration + let isConfiguredFromMDM: Bool + } + + + private enum KeycloakServerDiscoveryStatus { + + case toDiscover + case discovering + case discoveryFailed + case discovered(keycloakServerKeyAndConfig: (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration)) + + var isDiscovered: Bool { + switch self { + case .toDiscover, .discovering, .discoveryFailed: + return false + case .discovered: + return true + } + } + } + + + @MainActor + private func discoverKeycloakServerIfRequired() async { + switch discoveryStatus { + case .toDiscover: + break + case .discovering, .discoveryFailed, .discovered: + return + } + discoveryStatus = .discovering + do { + let keycloakServerKeyAndConfig = try await actions.discoverKeycloakServer(keycloakServerURL: model.keycloakConfiguration.keycloakServerURL) + discoveryStatus = .discovered(keycloakServerKeyAndConfig: keycloakServerKeyAndConfig) + } catch { + discoveryStatus = .discoveryFailed + } + } + + + private var systemIcon: SystemIcon { + discoveryStatus.isDiscovered ? .checkmark : .xmark + } + + private var systemIconColor: UIColor { + discoveryStatus.isDiscovered ? .systemGreen : .systemRed + } + + private var discoveryStatusLocalizedStringKey: LocalizedStringKey { + discoveryStatus.isDiscovered ? "IDENTITY_PROVIDER_CONFIGURED_SUCCESS" : "IDENTITY_PROVIDER_CONFIGURED_FAILURE" + } + + + private func userWantsToAuthenticate(keycloakServerKeyAndConfig: (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration)) async { + do { + try await actions.userWantsToAuthenticateOnKeycloakServer( + keycloakConfiguration: model.keycloakConfiguration, + isConfiguredFromMDM: model.isConfiguredFromMDM, + keycloakServerKeyAndConfig: keycloakServerKeyAndConfig) + } catch { + // Do not show an alert if the user just cancelled the authentication process + let nsError = error as NSError + let errorsToCheck = [nsError] + nsError.underlyingErrors.map({ $0 as NSError }) + for er in errorsToCheck { + if er.domain == ASWebAuthenticationSessionError.errorDomain && er.code == ASWebAuthenticationSessionError.canceledLogin.rawValue { + // No need to show an alert + return + } + } + errorForAlert = error + isAlertShown = true + } + } + + + private var authenticationFailureAlertTitle: LocalizedStringKey { + if let errorForAlert { + return "KEYCLOAK_AUTHENTICATION_FAILED_ALERT_\((errorForAlert as NSError).localizedDescription)" + } else { + return "KEYCLOAK_AUTHENTICATION_FAILED_ALERT" + } + } + + + var body: some View { + + switch discoveryStatus { + + case .toDiscover, .discovering: + + DiscoveringInProgressView(isConfiguredFromMDM: model.isConfiguredFromMDM) + .onAppear { + Task { await discoverKeycloakServerIfRequired() } + } + + case .discoveryFailed, .discovered: + + ScrollView { + VStack { + + NewOnboardingHeaderView(title: "IDENTITY_PROVIDER", subtitle: nil) + + HStack { + Spacer() + BigCircledSystemIconView( + systemIcon: systemIcon, + backgroundColor: systemIconColor) + Spacer() + } + .padding(.top, 32) + .padding(.bottom, 32) + + Text(discoveryStatusLocalizedStringKey) + .font(.system(.body, design: .default)) + + Spacer() + + }.padding(.horizontal) + } + + if case .discovered(keycloakServerKeyAndConfig: let config) = discoveryStatus { + + Button(action: { Task { await userWantsToAuthenticate(keycloakServerKeyAndConfig: config) } }) { + Label("AUTHENTICATE", systemIcon: .personCropCircleBadgeCheckmark) + .foregroundStyle(.white) + .padding() + .frame(maxWidth: .infinity) + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .padding() + .alert(authenticationFailureAlertTitle, isPresented: $isAlertShown) { + Button("OK", role: .cancel) { } + } + } + + } + + } +} + + +// MARK: - DiscoveringInProgressView + +private struct DiscoveringInProgressView: View { + + let isConfiguredFromMDM: Bool + + var body: some View { + ProgressView() + if isConfiguredFromMDM { + HStack { + Spacer() + Text("VALIDATING_ENTERPRISE_CONFIGURATION") + .font(.system(.subheadline, design: .default)) + Spacer() + } + .padding(.top, 16) + } + } +} + + +// MARK: - BigCircledSystemIconView + +private struct BigCircledSystemIconView: View { + + let systemIcon: SystemIcon + let backgroundColor: UIColor + + var body: some View { + Image(systemIcon: systemIcon) + .font(Font.system(size: 50, weight: .heavy, design: .rounded)) + .foregroundColor(.white) + .padding(32) + .background(Circle().fill(Color(backgroundColor))) + .padding() + .background(Circle().fill(Color(backgroundColor).opacity(0.2))) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/IdentityProviderValidationViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/IdentityProviderValidationViewController.swift new file mode 100644 index 00000000..789e6dbe --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/IdentityProviderValidationViewController.swift @@ -0,0 +1,133 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import JWS +import AppAuth + + +protocol IdentityProviderValidationViewControllerDelegate: AnyObject { + func discoverKeycloakServer(controller: IdentityProviderValidationViewController, keycloakServerURL: URL) async throws -> (jwks: JWS.ObvJWKSet, serviceConfig: OIDServiceConfiguration) + func userWantsToAuthenticateOnKeycloakServer(controller: IdentityProviderValidationViewController, keycloakConfiguration: Onboarding.KeycloakConfiguration, isConfiguredFromMDM: Bool, keycloakServerKeyAndConfig: (jwks: JWS.ObvJWKSet, serviceConfig: OIDServiceConfiguration)) async throws +} + + +final class IdentityProviderValidationViewController: UIHostingController, IdentityProviderValidationViewActionsProtocol { + + private weak var delegate: IdentityProviderValidationViewControllerDelegate? + + private let keycloakConfiguration: Onboarding.KeycloakConfiguration + + init(model: IdentityProviderValidationView.Model, delegate: IdentityProviderValidationViewControllerDelegate) { + self.keycloakConfiguration = model.keycloakConfiguration + let actions = IdentityProviderValidationViewActions() + let view = IdentityProviderValidationView(model: model, actions: actions) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + // If Olvid is configured via an MDM, we don't want to allow the user to go back. + // Otherwise, we do. + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + // Configure a bar button item allowing to show the keycloak configuration details + let image = UIImage(systemIcon: .questionmarkCircle) + let barButton = UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(questionmarkCircleButtonTapped)) + navigationItem.rightBarButtonItem = barButton + } + + + @objc func questionmarkCircleButtonTapped() { + let view = NewKeycloakConfigurationDetailsView(model: .init(keycloakConfiguration: self.keycloakConfiguration)) + let vc = UIHostingController(rootView: view) + vc.sheetPresentationController?.detents = [.medium(), .large()] + vc.sheetPresentationController?.preferredCornerRadius = 16.0 + vc.sheetPresentationController?.prefersGrabberVisible = true + present(vc, animated: true) + } + + + + // IdentityProviderValidationViewActionsProtocol + + func discoverKeycloakServer(keycloakServerURL: URL) async throws -> (jwks: JWS.ObvJWKSet, serviceConfig: OIDServiceConfiguration) { + guard let delegate else { throw ObvError.theDelegateIsNotSet } + return try await delegate.discoverKeycloakServer(controller: self, keycloakServerURL: keycloakServerURL) + } + + + func userWantsToAuthenticateOnKeycloakServer(keycloakConfiguration: Onboarding.KeycloakConfiguration, isConfiguredFromMDM: Bool, keycloakServerKeyAndConfig: (jwks: JWS.ObvJWKSet, serviceConfig: OIDServiceConfiguration)) async throws { + guard let delegate else { throw ObvError.theDelegateIsNotSet } + return try await delegate.userWantsToAuthenticateOnKeycloakServer( + controller: self, + keycloakConfiguration: keycloakConfiguration, + isConfiguredFromMDM: isConfiguredFromMDM, + keycloakServerKeyAndConfig: keycloakServerKeyAndConfig) + } + + + // Errors + + enum ObvError: Error { + case theDelegateIsNotSet + } + +} + + +private final class IdentityProviderValidationViewActions: IdentityProviderValidationViewActionsProtocol { + + weak var delegate: IdentityProviderValidationViewActionsProtocol? + + func discoverKeycloakServer(keycloakServerURL: URL) async throws -> (jwks: JWS.ObvJWKSet, serviceConfig: OIDServiceConfiguration) { + guard let delegate else { throw ObvError.theDelegateIsNotSet } + return try await delegate.discoverKeycloakServer(keycloakServerURL: keycloakServerURL) + } + + func userWantsToAuthenticateOnKeycloakServer(keycloakConfiguration: Onboarding.KeycloakConfiguration, isConfiguredFromMDM: Bool, keycloakServerKeyAndConfig: (jwks: JWS.ObvJWKSet, serviceConfig: OIDServiceConfiguration)) async throws { + guard let delegate else { throw ObvError.theDelegateIsNotSet } + try await delegate.userWantsToAuthenticateOnKeycloakServer(keycloakConfiguration: keycloakConfiguration, isConfiguredFromMDM: isConfiguredFromMDM, keycloakServerKeyAndConfig: keycloakServerKeyAndConfig) + } + + enum ObvError: Error { + case theDelegateIsNotSet + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/NewKeycloakConfigurationDetailsView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/NewKeycloakConfigurationDetailsView.swift new file mode 100644 index 00000000..dea75823 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/IdentityProviderValidation/NewKeycloakConfigurationDetailsView.swift @@ -0,0 +1,97 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI + + +struct NewKeycloakConfigurationDetailsView: View { + + let model: Model + + struct Model { + let keycloakConfiguration: Onboarding.KeycloakConfiguration + } + + @Environment(\.presentationMode) var presentationMode + + var body: some View { + + ZStack { + + Color(UIColor.secondarySystemBackground) + .edgesIgnoringSafeArea(.all) + + VStack { + + List { + Section { + ObvSimpleListItemView( + title: Text("SERVER_URL"), + value: model.keycloakConfiguration.keycloakServerURL.absoluteString) + ObvSimpleListItemView( + title: Text("CLIENT_ID"), + value: model.keycloakConfiguration.clientId) + ObvSimpleListItemView( + title: Text("CLIENT_SECRET"), + value: model.keycloakConfiguration.clientSecret) + } header: { + Text("IDENTITY_PROVIDER_CONFIGURATION") + } + + } + .padding(.bottom, 16) + + InternalButton("Back", action: { presentationMode.wrappedValue.dismiss() }) + .padding() + + + } + .padding(.top, 16) + } + + } + +} + + +private struct InternalButton: View { + + private let key: LocalizedStringKey + private let action: () -> Void + @Environment(\.isEnabled) var isEnabled + + init(_ key: LocalizedStringKey, action: @escaping () -> Void) { + self.key = key + self.action = action + } + + var body: some View { + Button(action: action) { + Text(key) + .foregroundStyle(.white) + .padding(.horizontal, 26) + .padding(.vertical, 16) + .frame(maxWidth: .infinity) + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ManagedDetailsViewer/ManagedDetailsViewerView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ManagedDetailsViewer/ManagedDetailsViewerView.swift new file mode 100644 index 00000000..7ede07bd --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ManagedDetailsViewer/ManagedDetailsViewerView.swift @@ -0,0 +1,312 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvTypes +import UI_SystemIcon + + + +protocol ManagedDetailsViewerViewActionsProtocol: AnyObject { + func userWantsToCreateProfileWithDetailsFromIdentityProvider(keycloakDetails: (keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff)) async +} + + +struct ManagedDetailsViewerView: View, ManagedDetailsViewerInnerViewActionsProtocol { + + let actions: ManagedDetailsViewerViewActionsProtocol + let model: Model + + struct Model { + let keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff + let keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff + } + + private var coreDetails: ObvIdentityCoreDetails? { + try? model.keycloakUserDetailsAndStuff.signedUserDetails.userDetails.getCoreDetails() + } + + fileprivate func createProfileAction() async { + await actions.userWantsToCreateProfileWithDetailsFromIdentityProvider(keycloakDetails: (model.keycloakUserDetailsAndStuff, model.keycloakServerRevocationsAndStuff)) + } + + private var anOldIdentityAlreadyExistsOnTheIdentityProvider: Bool { + model.keycloakUserDetailsAndStuff.signedUserDetails.identity != nil + } + + private var identityProviderAllowsRevocation: Bool { + model.keycloakServerRevocationsAndStuff.revocationAllowed + } + + var body: some View { + ManagedDetailsViewerInnerView( + actions: self, + model: .init(coreDetails: coreDetails, + anOldIdentityAlreadyExistsOnTheIdentityProvider: anOldIdentityAlreadyExistsOnTheIdentityProvider, + identityProviderAllowsRevocation: identityProviderAllowsRevocation)) + } + +} + + + +// MARK: - ManagedDetailsViewerInnerView + + +private protocol ManagedDetailsViewerInnerViewActionsProtocol { + func createProfileAction() async +} + + +private struct ManagedDetailsViewerInnerView: View { + + let actions: ManagedDetailsViewerInnerViewActionsProtocol + let model: Model + @State private var isProfileCreationInProgress = false + + struct Model { + let coreDetails: ObvIdentityCoreDetails? // Expected to be non nil, unless the identity provider did a bad job + let anOldIdentityAlreadyExistsOnTheIdentityProvider: Bool + let identityProviderAllowsRevocation: Bool + } + + @MainActor + private func createProfile() async { + isProfileCreationInProgress = true + await actions.createProfileAction() + isProfileCreationInProgress = false + } + + + private var warningPanelConfig: (icon: SystemIcon, iconColor: Color, body: LocalizedStringKey)? { + guard model.anOldIdentityAlreadyExistsOnTheIdentityProvider else { return nil } + if model.identityProviderAllowsRevocation { + return (SystemIcon.exclamationmarkCircle, Color(UIColor.systemYellow), "TEXT_EXPLANATION_WARNING_IDENTITY_CREATION_KEYCLOAK_REVOCATION_NEEDED") + } else { + return (SystemIcon.xmarkCircle, Color(UIColor.systemRed), "TEXT_EXPLANATION_WARNING_IDENTITY_CREATION_KEYCLOAK_REVOCATION_IMPOSSIBLE") + } + } + + + private var indentityProviderWouldRejectProfileCreation: Bool { + model.anOldIdentityAlreadyExistsOnTheIdentityProvider && !model.identityProviderAllowsRevocation + } + + + private var createProfileButtonIsDisabled: Bool { + isProfileCreationInProgress || indentityProviderWouldRejectProfileCreation + } + + var body: some View { + VStack { + + NewOnboardingHeaderView(title: "ONBOARDING_NAME_CHOOSER_TITLE", subtitle: "ONBOARDING_MANAGED_IDENTITY_SUBTITLE") + .padding(.bottom, 40) + + if let coreDetails = model.coreDetails { + + ScrollView { + + VStack { + + if let firstName = coreDetails.firstName, !firstName.isEmpty { + InternalCellView(title: "FORM_FIRST_NAME", verbatim: firstName) + } + + if let lastName = coreDetails.lastName, !lastName.isEmpty { + InternalCellView(title: "FORM_LAST_NAME", verbatim: lastName) + } + + if let position = coreDetails.position, !position.isEmpty { + InternalCellView(title: "FORM_POSITION", verbatim: position) + } + + if let company = coreDetails.company, !company.isEmpty { + InternalCellView(title: "FORM_COMPANY", verbatim: company) + } + + if model.anOldIdentityAlreadyExistsOnTheIdentityProvider { + WarningPreviousIDExistsOnIdentityProviderView(model: .init(identityProviderAllowsRevocation: model.identityProviderAllowsRevocation)) + .padding(.top) + } + + if isProfileCreationInProgress { + HStack { + Spacer() + ProgressView() + .controlSize(.large) + Spacer() + }.padding(.top) + } + + } + + } + + InternalButton("ONBOARDING_NAME_CHOOSER_BUTTON_TITLE", action: { Task { await createProfile() } }) + .disabled(createProfileButtonIsDisabled) + .padding(.bottom) + + } else { + + BadInformationsReturnedByIdentityProviderView() + + } + + } + .padding(.horizontal) + } +} + + +// MARK: Warning panel when an Olvid ID already exists on the identity provider + +private struct WarningPreviousIDExistsOnIdentityProviderView: View { + + let model: Model + + struct Model { + let identityProviderAllowsRevocation: Bool + } + + private var warningPanelConfig: (icon: SystemIcon, iconColor: Color, body: LocalizedStringKey) { + if model.identityProviderAllowsRevocation { + return (SystemIcon.exclamationmarkCircle, Color(UIColor.systemYellow), "TEXT_EXPLANATION_WARNING_IDENTITY_CREATION_KEYCLOAK_REVOCATION_NEEDED") + } else { + return (SystemIcon.xmarkCircle, Color(UIColor.systemRed), "TEXT_EXPLANATION_WARNING_IDENTITY_CREATION_KEYCLOAK_REVOCATION_IMPOSSIBLE") + } + } + + var body: some View { + Label( + title: { + Text(warningPanelConfig.body) + .foregroundStyle(.secondary) + }, + icon: { + Image(systemIcon: warningPanelConfig.icon) + .foregroundStyle(warningPanelConfig.iconColor) + } + ) + } + +} + + +// MARK: InternalCellView + +private struct InternalCellView: View { + + let title: LocalizedStringKey + let verbatim: String + + var body: some View { + VStack(alignment: .leading, spacing: 0) { + Text(title) + .font(.headline) + .foregroundStyle(.secondary) + .padding(.leading, 6) + TextField(title, text: .constant(verbatim)) + .disabled(true) + .padding() + .background(Color("TextFieldBackgroundColor")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + HStack { Spacer() } + } + } + +} + + +// MARK: View used when bad informations were returned by the identity provider + +private struct BadInformationsReturnedByIdentityProviderView: View { + + var body: some View { + ScrollView { + HStack { + Label { + Text("ONBOARDING_BAD_INFORMATIONS_RETURNED_BY_IDENTITY_PROVIDER") + .font(.body) + } icon: { + Image(systemIcon: .xmarkCircle) + .foregroundStyle(Color(UIColor.systemRed)) + } + + Spacer(minLength: 0) + } + } + } + +} + + +private struct InternalButton: View { + + private let key: LocalizedStringKey + private let action: () -> Void + @Environment(\.isEnabled) var isEnabled + + init(_ key: LocalizedStringKey, action: @escaping () -> Void) { + self.key = key + self.action = action + } + + var body: some View { + Button(action: action) { + Text(key) + .foregroundStyle(.white) + .padding(.horizontal, 26) + .padding(.vertical, 16) + .frame(maxWidth: .infinity) + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + } + +} + + + +// MARK: - Previews + +struct ManagedDetailsViewerInnerView_Previews: PreviewProvider { + + private static let model = ManagedDetailsViewerInnerView.Model( + coreDetails: try? .init( + firstName: "Alice", + lastName: nil, + company: nil, + position: nil, + signedUserDetails: nil), + anOldIdentityAlreadyExistsOnTheIdentityProvider: false, + identityProviderAllowsRevocation: false) + + private struct ActionsForPreviews: ManagedDetailsViewerInnerViewActionsProtocol { + func createProfileAction() async {} + } + + private static let actions = ActionsForPreviews() + + static var previews: some View { + ManagedDetailsViewerInnerView(actions: actions, model: model) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ManagedDetailsViewer/ManagedDetailsViewerViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ManagedDetailsViewer/ManagedDetailsViewerViewController.swift new file mode 100644 index 00000000..218cf4fa --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ManagedDetailsViewer/ManagedDetailsViewerViewController.swift @@ -0,0 +1,91 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import ObvTypes + + +protocol ManagedDetailsViewerViewControllerDelegate: AnyObject { + func userWantsToCreateProfileWithDetailsFromIdentityProvider(controller: ManagedDetailsViewerViewController, keycloakDetails: (keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff), keycloakState: ObvKeycloakState) async +} + + +final class ManagedDetailsViewerViewController: UIHostingController, ManagedDetailsViewerViewActionsProtocol { + + private weak var delegate: ManagedDetailsViewerViewControllerDelegate? + + /// The following value is not used in this VC (or in the View). We store it so as to send them back in the delegate method + private let keycloakState: ObvKeycloakState + + init(model: ManagedDetailsViewerView.Model, keycloakState: ObvKeycloakState, delegate: ManagedDetailsViewerViewControllerDelegate) { + self.keycloakState = keycloakState + let actions = ManagedDetailsViewerViewActions() + let view = ManagedDetailsViewerView(actions: actions, model: model) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + } + + // ManagedDetailsViewerViewActionsProtocol + + @MainActor + func userWantsToCreateProfileWithDetailsFromIdentityProvider(keycloakDetails: (keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff)) async { + await delegate?.userWantsToCreateProfileWithDetailsFromIdentityProvider( + controller: self, + keycloakDetails: keycloakDetails, + keycloakState: keycloakState) + } + +} + + + + +private final class ManagedDetailsViewerViewActions: ManagedDetailsViewerViewActionsProtocol { + + weak var delegate: ManagedDetailsViewerViewActionsProtocol? + + func userWantsToCreateProfileWithDetailsFromIdentityProvider(keycloakDetails: (keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff)) async { + await delegate?.userWantsToCreateProfileWithDetailsFromIdentityProvider(keycloakDetails: keycloakDetails) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewAutorisationRequester/NewAutorisationRequesterView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewAutorisationRequester/NewAutorisationRequesterView.swift new file mode 100644 index 00000000..34dc0ae7 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewAutorisationRequester/NewAutorisationRequesterView.swift @@ -0,0 +1,166 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import UI_SystemIcon + + +protocol NewAutorisationRequesterViewActionsProtocol: AnyObject { + func requestAutorisation(now: Bool, for autorisationCategory: NewAutorisationRequesterViewController.AutorisationCategory) async +} + + +struct NewAutorisationRequesterView: View { + + let autorisationCategory: NewAutorisationRequesterViewController.AutorisationCategory + let actions: NewAutorisationRequesterViewActionsProtocol + + private var textBodyKey: LocalizedStringKey { + switch autorisationCategory { + case .localNotifications: + return "SUBSCRIBING_TO_USER_NOTIFICATIONS_EXPLANATION" + case .recordPermission: + return "EXPLANATION_WHY_RECORD_PERMISSION_IS_IMPORTANT" + } + } + + private var textTitleKey: LocalizedStringKey { + switch autorisationCategory { + case .localNotifications: + return "TITLE_NEVER_MISS_A_MESSAGE" + case .recordPermission: + return "TITLE_NEVER_MISS_A_SECURE_CALL" + } + } + + private var buttonTitleKey: LocalizedStringKey { + switch autorisationCategory { + case .localNotifications: + return "BUTON_TITLE_ACTIVATE_NOTIFICATION" + case .recordPermission: + return "BUTON_TITLE_REQUEST_RECORD_PERMISSION" + } + } + + private var buttonSystemIcon: SystemIcon { + switch autorisationCategory { + case .localNotifications: + return .envelopeBadge + case .recordPermission: + return .mic + } + } + + private func userTappedSkipButton() { + Task(priority: .userInitiated) { + await actions.requestAutorisation(now: false, for: autorisationCategory) + } + } + + private func userTappedAllowButton() { + Task(priority: .userInitiated) { + await actions.requestAutorisation(now: true, for: autorisationCategory) + } + } + + private var showSkipButton: Bool { + switch autorisationCategory { + case .localNotifications: + return true + case .recordPermission: + return false + } + } + + var body: some View { + VStack { + + ScrollView { + + VStack { + + Image("badge", bundle: nil) + .resizable() + .frame(width: 60, height: 60, alignment: .center) + .padding() + Text(textTitleKey) + .font(.title) + .multilineTextAlignment(.center) + + Text(textBodyKey) + .frame(minWidth: .none, + maxWidth: .infinity, + minHeight: .none, + idealHeight: .none, + maxHeight: .none, + alignment: .center) + .font(.body) + .padding() + + Button(action: userTappedAllowButton) { + Label(buttonTitleKey, systemIcon: buttonSystemIcon) + .foregroundStyle(.white) + .padding() + } + .background(Color(UIColor.systemGreen)) + .clipShape(RoundedRectangle(cornerRadius: 12)) + + } + + } + + // Show a "skip" button bellow the scroll view + + Spacer() + + if showSkipButton { + HStack { + Spacer() + Button("MAYBE_LATER", action: userTappedSkipButton) + } + .padding(.horizontal) + .padding(.bottom) + } + + } + } + +} + + +struct NewAutorisationRequesterView_Previews: PreviewProvider { + + private final class ActionsForPreviews: NewAutorisationRequesterViewActionsProtocol { + func requestAutorisation(now: Bool, for autorisationCategory: NewAutorisationRequesterViewController.AutorisationCategory) async {} + } + + private static let actions = ActionsForPreviews() + + static var previews: some View { + Group { + NewAutorisationRequesterView(autorisationCategory: .recordPermission, actions: actions) + NewAutorisationRequesterView(autorisationCategory: .recordPermission, actions: actions) + .environment(\.locale, .init(identifier: "fr")) + NewAutorisationRequesterView(autorisationCategory: .localNotifications, actions: actions) + NewAutorisationRequesterView(autorisationCategory: .localNotifications, actions: actions) + .environment(\.locale, .init(identifier: "fr")) + } + } +} + diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewAutorisationRequester/NewAutorisationRequesterViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewAutorisationRequester/NewAutorisationRequesterViewController.swift new file mode 100644 index 00000000..48637334 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewAutorisationRequester/NewAutorisationRequesterViewController.swift @@ -0,0 +1,87 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI + + +protocol NewAutorisationRequesterViewControllerDelegate: AnyObject { + func requestAutorisation(autorisationRequester: NewAutorisationRequesterViewController, now: Bool, for autorisationCategory: NewAutorisationRequesterViewController.AutorisationCategory) async +} + + +final class NewAutorisationRequesterViewController: UIHostingController, NewAutorisationRequesterViewActionsProtocol { + + enum AutorisationCategory { + case localNotifications + case recordPermission + } + + weak var delegate: NewAutorisationRequesterViewControllerDelegate? + + init(autorisationCategory: AutorisationCategory, delegate: NewAutorisationRequesterViewControllerDelegate) { + let actions = NewAutorisationRequesterViewActions() + let view = NewAutorisationRequesterView(autorisationCategory: autorisationCategory, actions: actions) + super.init(rootView: view) + actions.delegate = self + self.delegate = delegate + } + + deinit { + debugPrint("NewAutorisationRequesterViewController deinit") + } + + @objc required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = .systemBackground + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + } + + // NewAutorisationRequesterViewActionsProtocol + + func requestAutorisation(now: Bool, for autorisationCategory: AutorisationCategory) async { + await delegate?.requestAutorisation(autorisationRequester: self, now: now, for: autorisationCategory) + } + +} + + +private final class NewAutorisationRequesterViewActions: NewAutorisationRequesterViewActionsProtocol { + weak var delegate: NewAutorisationRequesterViewActionsProtocol? + + func requestAutorisation(now: Bool, for autorisationCategory: NewAutorisationRequesterViewController.AutorisationCategory) async { + await delegate?.requestAutorisation(now: now, for: autorisationCategory) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewIdentityProviderManualConfiguration/NewIdentityProviderManualConfigurationView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewIdentityProviderManualConfiguration/NewIdentityProviderManualConfigurationView.swift new file mode 100644 index 00000000..ea9713f5 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewIdentityProviderManualConfiguration/NewIdentityProviderManualConfigurationView.swift @@ -0,0 +1,204 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI + + +protocol NewIdentityProviderManualConfigurationViewActionsProtocol: AnyObject { + + func userWantsToValidateManualKeycloakConfiguration(keycloakConfig: Onboarding.KeycloakConfiguration) async + +} + + +struct NewIdentityProviderManualConfigurationView: View { + + let actions: NewIdentityProviderManualConfigurationViewActionsProtocol + + @State private var url = ""; + @State private var clientId = ""; + @State private var clientSecret = ""; + + @State private var currentKeycloakConfig: Onboarding.KeycloakConfiguration? + @State private var isValidating = false + + + private func resetCurrentKeycloakConfig() { + self.currentKeycloakConfig = computeKeycloakConfig() + } + + private var isValidateButtonDisabled: Bool { + isValidating || currentKeycloakConfig == nil + } + + private func computeKeycloakConfig() -> Onboarding.KeycloakConfiguration? { + let localURL = url.trimmingWhitespacesAndNewlines() + let localClientId = clientId.trimmingWhitespacesAndNewlines() + let clientSecret = clientSecret.trimmingWhitespacesAndNewlines() + guard !localClientId.isEmpty else { return nil } + guard let url = URL(string: localURL), UIApplication.shared.canOpenURL(url) else { + return nil + } + return .init(keycloakServerURL: url, clientId: localClientId, clientSecret: clientSecret) + } + + @MainActor + private func validateButtonTapped() async { + guard let currentKeycloakConfig else { assertionFailure(); return } + isValidating = true + await actions.userWantsToValidateManualKeycloakConfiguration(keycloakConfig: currentKeycloakConfig) + isValidating = false + } + + + var body: some View { + ZStack { + VStack { + ScrollView { + VStack { + + NewOnboardingHeaderView( + title: "CONFIGURE_YOUR_IDENTITY_PROVIDER_MANUALLY", + subtitle: "") + + HStack { + Text("IDENTITY_PROVIDER_OPTION_EXPLANATION") + Spacer(minLength: 0) + } + .padding(.vertical) + + InternalCellView(title: "ONBOARDING_KEYCLOAK_MANUAL_CONFIGURATION_TITLE_URL", + placeholder: "https://...", + text: $url) + .onChange(of: url) { _ in resetCurrentKeycloakConfig() } + + InternalCellView(title: "ONBOARDING_KEYCLOAK_MANUAL_CONFIGURATION_TITLE_CLIENT_ID", + placeholder: "", + text: $clientId) + .onChange(of: clientId) { _ in resetCurrentKeycloakConfig() } + + InternalCellView(title: "ONBOARDING_KEYCLOAK_MANUAL_CONFIGURATION_TITLE_CLIENT_SECRET", + placeholder: "", + text: $clientSecret) + .onChange(of: clientSecret) { _ in resetCurrentKeycloakConfig() } + + }.padding(.horizontal) + } + + InternalButton("VALIDATE_SERVER", action: { Task { await validateButtonTapped() } }) + .disabled(isValidateButtonDisabled) + .padding(.horizontal) + .padding(.bottom) + + } + .disabled(isValidating) + + if isValidating { + ProgressView() + .controlSize(.large) + .padding(32) + .background(.ultraThinMaterial, in: RoundedRectangle(cornerRadius: 12)) + } + + } + + } + +} + + +private struct InternalButton: View { + + private let key: LocalizedStringKey + private let action: () -> Void + @Environment(\.isEnabled) var isEnabled + + init(_ key: LocalizedStringKey, action: @escaping () -> Void) { + self.key = key + self.action = action + } + + var body: some View { + Button(action: action) { + Label { + Text(key) + .foregroundStyle(.white) + } icon: { + Image(systemIcon: .serverRack) + .foregroundStyle(.white) + } + .padding(.horizontal, 26) + .padding(.vertical, 16) + .frame(maxWidth: .infinity) + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + } + +} + + +// MARK: InternalCellView + +private struct InternalCellView: View { + + let title: LocalizedStringKey + let placeholder: String + let text: Binding + + private let monospacedBodyFont = Font.callout.monospaced() + + var body: some View { + VStack(alignment: .leading, spacing: 0) { + Text(title) + .font(.headline) + .foregroundStyle(.secondary) + .padding(.leading, 6) + TextField(placeholder, text: text) + .font(monospacedBodyFont) + .textInputAutocapitalization(.never) + .autocorrectionDisabled() + .padding() + .background(Color("TextFieldBackgroundColor")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + HStack { Spacer() } + } + } + +} + + +struct NewIdentityProviderManualConfigurationView_Previews: PreviewProvider { + + private final class ActionsForPreviews: NewIdentityProviderManualConfigurationViewActionsProtocol { + + func userWantsToValidateManualKeycloakConfiguration(keycloakConfig: Onboarding.KeycloakConfiguration) async { + try! await Task.sleep(seconds: 3) + } + + } + + private static let actions = ActionsForPreviews() + + static var previews: some View { + NewIdentityProviderManualConfigurationView(actions: actions) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewIdentityProviderManualConfiguration/NewIdentityProviderManualConfigurationViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewIdentityProviderManualConfiguration/NewIdentityProviderManualConfigurationViewController.swift new file mode 100644 index 00000000..a444a7fd --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewIdentityProviderManualConfiguration/NewIdentityProviderManualConfigurationViewController.swift @@ -0,0 +1,65 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI + + +protocol NewIdentityProviderManualConfigurationViewControllerDelegate: AnyObject { + func userWantsToValidateManualKeycloakConfiguration(controller: NewIdentityProviderManualConfigurationViewController, keycloakConfig: Onboarding.KeycloakConfiguration) async +} + + +final class NewIdentityProviderManualConfigurationViewController: UIHostingController, NewIdentityProviderManualConfigurationViewActionsProtocol { + + private weak var delegate: NewIdentityProviderManualConfigurationViewControllerDelegate? + + init(delegate: NewIdentityProviderManualConfigurationViewControllerDelegate) { + let actions = NewIdentityProviderManualConfigurationViewActions() + let view = NewIdentityProviderManualConfigurationView(actions: actions) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + // NewIdentityProviderManualConfigurationViewActionsProtocol + + func userWantsToValidateManualKeycloakConfiguration(keycloakConfig: Onboarding.KeycloakConfiguration) async { + await delegate?.userWantsToValidateManualKeycloakConfiguration(controller: self, keycloakConfig: keycloakConfig) + } + +} + + +private final class NewIdentityProviderManualConfigurationViewActions: NewIdentityProviderManualConfigurationViewActionsProtocol { + + weak var delegate: NewIdentityProviderManualConfigurationViewActionsProtocol? + + func userWantsToValidateManualKeycloakConfiguration(keycloakConfig: Onboarding.KeycloakConfiguration) async { + await delegate?.userWantsToValidateManualKeycloakConfiguration(keycloakConfig: keycloakConfig) + } + + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOnboardingFlowViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOnboardingFlowViewController.swift new file mode 100644 index 00000000..77a8cd35 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOnboardingFlowViewController.swift @@ -0,0 +1,1271 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import CoreData +import UIKit +import StoreKit +import os.log +import UniformTypeIdentifiers +import AVFoundation +import ObvTypes +import JWS +import AppAuth +import ObvCrypto +import Contacts + + +protocol NewOnboardingFlowViewControllerDelegate: AnyObject, SubscriptionPlansViewActionsProtocol { + + func onboardingIsFinished(onboardingFlow: NewOnboardingFlowViewController, ownedCryptoIdGeneratedDuringOnboarding: ObvCryptoId) async + + func onboardingNeedsToPreventPrivacyWindowSceneFromShowingOnNextWillResignActive(onboardingFlow: NewOnboardingFlowViewController) async + + func onboardingRequiresToSyncAppDatabasesWithEngine(onboardingFlow: NewOnboardingFlowViewController) async throws + + func onboardingRequiresToGenerateOwnedIdentity(onboardingFlow: NewOnboardingFlowViewController, identityDetails: ObvIdentityDetails, nameForCurrentDevice: String, keycloakState: ObvKeycloakState?, customServerAndAPIKey: ServerAndAPIKey?) async throws -> ObvCryptoId + + func onboardingRequiresAcceptableCharactersForBackupKeyString() async -> CharacterSet + + func onboardingRequiresToRecoverBackupFromEncryptedBackup(onboardingFlow: NewOnboardingFlowViewController, encryptedBackup: Data, backupKey: String) async throws -> (backupRequestIdentifier: UUID, backupDate: Date) + + /// Returns the CryptoId of the restore owned identity. When many identities were restored, only one is returned here + func onboardingRequiresToRestoreBackup(onboardingFlow: NewOnboardingFlowViewController, backupRequestIdentifier: UUID) async throws -> ObvCryptoId + + func userWantsToEnableAutomaticBackup(onboardingFlow: NewOnboardingFlowViewController) async throws + + func onboardingRequiresToDiscoverKeycloakServer(onboardingFlow: NewOnboardingFlowViewController, keycloakServerURL: URL) async throws -> (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration) + + func onboardingRequiresKeycloakAuthentication(onboardingFlow: NewOnboardingFlowViewController, keycloakConfiguration: Onboarding.KeycloakConfiguration, keycloakServerKeyAndConfig: (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration)) async throws -> (keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff, keycloakState: ObvKeycloakState) + + func onboardingRequiresKeycloakToSyncAllManagedIdentities() async + + func onboardingRequiresToRegisterAndUploadOwnedIdentityToKeycloakServer(ownedCryptoId: ObvCryptoId) async throws + + /// Called when the first view of the owned identity transfer protocol flow is shown. + /// - Parameters: + /// - onboardingFlow: The `NewOnboardingFlowViewController` instance calling this method. + /// - ownedCryptoId: The `ObvCryptoId` of the owned identity. + /// - onAvailableSessionNumber: A block called as soon as the session number is available. In practice, it is called by the engine as soon as the session number is available. + /// - onAvailableSASExpectedOnInput: A block called as soon as the SAS is available on this source device. The user on this source device will enter this SAS, we use the value received in this block to make sure it is correct before sending it back to the engine + func onboardingRequiresToInitiateOwnedIdentityTransferProtocolOnSourceDevice(onboardingFlow: NewOnboardingFlowViewController, ownedCryptoId: ObvCryptoId, onAvailableSessionNumber: @escaping (ObvOwnedIdentityTransferSessionNumber) -> Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void) async throws + + + /// Called when the user tapped the cancel button while an owned identity transfer protocol is ongoing, or when the user simply closes the onboarding when it is presented + /// - Parameter controller: The `NewOnboardingFlowViewController` instance calling this method. + func userWantsToCloseOnboardingAndCancelAnyOwnedTransferProtocol(onboardingFlow: NewOnboardingFlowViewController) async + + func userWishesToFinalizeOwnedIdentityTransferFromSourceDevice(onboardingFlow: NewOnboardingFlowViewController, enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws + + func onboardingRequiresToInitiateOwnedIdentityTransferProtocolOnTargetDevice(onboardingFlow: NewOnboardingFlowViewController, transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, currentDeviceName: String, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void) async throws + + + /// This method gets called during the owned identity transfer flow, on the target device, when the SAS appears (which should be entered on the source device). We call this method to receive appropriate callbacks from the engine when, e.g., the source + /// sync snapshot is received and processing, and when it is fully processed. + /// - Parameters: + /// - onboardingFlow: The `NewOnboardingFlowViewController` instance calling this method. + /// - protocolInstanceUID: The identifier of the protocol running on this target device for transfering the owned identity. + /// - onSyncSnapshotReception: A block called by the engine when the snapshot is received from the source device. + func onboardingIsShowingSasAndExpectingEndOfProtocol(onboardingFlow: NewOnboardingFlowViewController, protocolInstanceUID: UID, onSyncSnapshotReception: @escaping () -> Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async + + + /// Called at then end of the owned identity transfer flow on this target device. + /// - Parameters: + /// - onboardingFlow: The `NewOnboardingFlowViewController` instance calling this method. + /// - userWantsToAddAnotherProfile: `true` when the user wants to start a new flow allowing to add a new profile on this target device, `false` if she just want to dismiss the onboarding. + func userWantsToDismissOnboardingAfterSuccessfulOwnedIdentityTransferOnThisTargetDevice(onboardingFlow: NewOnboardingFlowViewController, transferredOwnedCryptoId: ObvCryptoId, userWantsToAddAnotherProfile: Bool) async + + + /// On the source device, when a correct SAS is entered by the user, we want to show a list of owned devices so as to let the user choose which one she wishes to keep active (in case she does not have a multidevice subscription) or just to inform here that a new device will be added. + func onboardingRequiresToPerformOwnedDeviceDiscoveryNow(for ownedCryptoId: ObvCryptoId) async throws -> (ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult, currentDeviceIdentifier: Data) + +} + + +/// Structure allowing to encapsulate type definitions +public struct Onboarding { + + /// This onboarding starts in one of these modes: + /// - The `initialOnboarding` mode is used for the very first onboarding only. MDM configurations are considered in this mode only. + /// - The `addNewDevice` mode is used when starting an owned identity transfer protocol on a source device (where the owned identity already exist). + /// - The `addProfile` mode is used on a device where an owned identity already exist, but where the user wants to add an owned identity existing on another device. This thus starts the owned identity transfer protocol on the target device. + public enum Mode { + case initialOnboarding(mdmConfig: MDMConfiguration?) + case addNewDevice(ownedCryptoId: ObvCryptoId, ownedDetails: CNContact) + case addProfile + + var mdmConfigDuringInitialOnboarding: MDMConfiguration? { + switch self { + case .initialOnboarding(let mdmConfig): + return mdmConfig + case .addNewDevice, .addProfile: + return nil + } + } + + } + + + public struct KeycloakConfiguration { + let keycloakServerURL: URL // Keycloak server URL + let clientId: String + let clientSecret: String? + } + + + public struct MDMConfiguration { + let keycloakConfiguration: KeycloakConfiguration + } + +} + + +@MainActor +public final class NewOnboardingFlowViewController: UIViewController, NewWelcomeScreenViewControllerDelegate, NewUnmanagedDetailsChooserViewControllerDelegate, NewAutorisationRequesterViewControllerDelegate, NewOwnedIdentityGeneratedViewControllerDelegate, UINavigationControllerDelegate, ChooseBetweenBackupRestoreAndAddThisDeviceViewControllerDelegate, ChooseBackupFileViewControllerDelegate, EnterBackupKeyViewControllerDelegate, WaitingForBackupRestoreViewControllerDelegate, ScannerHostingViewDelegate, IdentityProviderValidationViewControllerDelegate, OlvidURLHandler, ManagedDetailsViewerViewControllerDelegate, TransfertProtocolSourceCodeDisplayerViewControllerDelegate, AddProfileViewControllerDelegate, CurrentDeviceNameChooserViewControllerDelegate, TransfertProtocolTargetCodeFormViewControllerDelegate, TransferProtocolTargetShowSasViewControllerDelegate, SuccessfulTransferConfirmationViewControllerDelegate, InputSASOnSourceViewControllerDelegate, ChooseDeviceToKeepActiveViewControllerDelegate, OwnedIdentityTransferSummaryViewControllerDelegate, NewIdentityProviderManualConfigurationViewControllerDelegate, UIAdaptivePresentationControllerDelegate { + + private var internalState = NewOnboardingState.initial + + private var flowNavigationController: UINavigationController? + private var flowNavigationControllerWidthConstraint: NSLayoutConstraint? + private var flowNavigationControllerHeightConstraint: NSLayoutConstraint? + + private static let defaultLogSubsystem = "io.olvid.messenger" + private static var log = OSLog(subsystem: defaultLogSubsystem, category: String(describing: NewOnboardingFlowViewController.self)) + + weak var delegate: NewOnboardingFlowViewControllerDelegate? + + /// If, at any point during the onboarding, we receive an `OlvidURL` with a custom API Key and custom Server URL, + /// we store the value here. At the time we request the generation of the owned identity, we pass this value to our delegate. + private var customServerAndAPIKey: ServerAndAPIKey? + + private let mode: Onboarding.Mode + + private let directoryForTempFiles: URL + + public init(logSubsystem: String, directoryForTempFiles: URL, mode: Onboarding.Mode) { + self.mode = mode + self.directoryForTempFiles = directoryForTempFiles + super.init(nibName: nil, bundle: nil) + Self.log = OSLog(subsystem: logSubsystem, category: String(describing: NewOnboardingFlowViewController.self)) + } + + required init?(coder aDecoder: NSCoder) { fatalError("die") } + + private var requestKeycloakSyncOnDeinit = true + + deinit { + if requestKeycloakSyncOnDeinit { + guard let delegate else { return } + Task { + await delegate.onboardingRequiresKeycloakToSyncAllManagedIdentities() + } + } + debugPrint("NewOnboardingFlowViewController deinit") + } + + // MARK: - View controller lifecycle + + public override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = UIColor(named: "OnboardingBackgroundColor") + showFirstOnboardingScreen() + self.presentationController?.delegate = self + } + + + /// Called by the `MetaFlowController` when an owned identity transfer protocol fails + @MainActor + public func anOwnedIdentityTransferProtocolFailed(ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID, error: Error) async { + guard protocolInstanceUID == internalState.ownedIdentityTransferProtocolInstanceUID || internalState.userIsEnteringTransferCode else { assertionFailure(); return } + internalState = .showOwnedIdentityTransferFailed(error: error) + await showNextOnboardingScreen(animated: true) + } + + + private var defaultShowCloseButton: Bool { + switch mode { + case .initialOnboarding: + return false + case .addNewDevice, .addProfile: + return true + } + } + + + /// Sets the appropriate internal state and show the most appropriate first view controller + private func showFirstOnboardingScreen() { + + // Set an appropriate first view controller to show during onboarding + + let rootViewController: UIViewController + + switch mode { + + case .initialOnboarding(mdmConfig: _): + + // Even when we have an MDM configuration, we show the standard Welcome screen. + // If the user taps on the button allowing to create a new profile, we + // apply the mdm configuration if there is one. Otherwise, we lead the user to the + // screen allowing to freely choose her given name and family name. + // See the delegate method lower in this file: + // NewOnboardingFlowViewController.userWantsToLeaveWelcomeScreenAndHasNoOlvidProfileYet(controller:) + + rootViewController = NewWelcomeScreenViewController(delegate: self, showCloseButton: defaultShowCloseButton) + + case .addNewDevice(let ownedCryptoId, let ownedDetails): + + rootViewController = TransfertProtocolSourceCodeDisplayerViewController( + model: .init(ownedCryptoId: ownedCryptoId, ownedDetails: ownedDetails), + delegate: self) + + case .addProfile: + + rootViewController = AddProfileViewController(showCloseButton: defaultShowCloseButton, delegate: self) + + } + + flowNavigationController = UINavigationController(rootViewController: rootViewController) + flowNavigationController!.delegate = self + flowNavigationController!.setNavigationBarHidden(false, animated: false) + flowNavigationController!.navigationBar.prefersLargeTitles = true + displayFlowNavigationController(flowNavigationController!) + + } + + + private func userDidCancelOwnedIdentityTransferProtocol() async { + await delegate?.userWantsToCloseOnboardingAndCancelAnyOwnedTransferProtocol(onboardingFlow: self) + switch mode { + case .initialOnboarding: + // Go back to the initial screen of the onboarding + internalState = .initial + await showNextOnboardingScreen(animated: true) + case .addNewDevice, .addProfile: + // This flow has been dismissed by the meta flow controller + break + } + } + + + private func showNextOnboardingScreen(animated: Bool) async { + + guard let flowNavigationController else { assertionFailure(); return } + + // Dismiss any presented view controller + + presentedViewController?.dismiss(animated: true) + + // Setup the navigation view controllers given the current internal state + + switch internalState { + case .initial: + if flowNavigationController.viewControllers.first is NewWelcomeScreenViewController { + flowNavigationController.popToRootViewController(animated: true) + return + } else if !flowNavigationController.viewControllers.isEmpty { + let newViewControllers: [UIViewController] = [NewWelcomeScreenViewController(delegate: self, showCloseButton: defaultShowCloseButton)] + flowNavigationController.viewControllers + flowNavigationController.setViewControllers(newViewControllers, animated: false) + flowNavigationController.popToRootViewController(animated: true) + } else { + let welcomeScreenVC = NewWelcomeScreenViewController(delegate: self, showCloseButton: defaultShowCloseButton) + flowNavigationController.setViewControllers([welcomeScreenVC], animated: animated) + return + } + case .userWantsToChooseUnmanagedDetails: + if let displayNameChooserVC = flowNavigationController.viewControllers.first(where: { $0 is NewUnmanagedDetailsChooserViewController }) { + flowNavigationController.popToViewController(displayNameChooserVC, animated: animated) + return + } else if let welcomeScreenVC = flowNavigationController.viewControllers.first as? NewWelcomeScreenViewController { + let displayNameChooserVC = NewUnmanagedDetailsChooserViewController( + model: .init(showPositionAndOrganisation: false), + delegate: self, + showCloseButton: defaultShowCloseButton) + flowNavigationController.setViewControllers([welcomeScreenVC, displayNameChooserVC], animated: animated) + return + } else if let addProfileVC = flowNavigationController.viewControllers.first as? AddProfileViewController { + let displayNameChooserVC = NewUnmanagedDetailsChooserViewController( + model: .init(showPositionAndOrganisation: false), + delegate: self, + showCloseButton: defaultShowCloseButton) + flowNavigationController.setViewControllers([addProfileVC, displayNameChooserVC], animated: animated) + return + } else { + let displayNameChooserVC = NewUnmanagedDetailsChooserViewController( + model: .init(showPositionAndOrganisation: false), + delegate: self, + showCloseButton: defaultShowCloseButton) + flowNavigationController.setViewControllers([displayNameChooserVC], animated: animated) + return + } + case .keycloakConfigAvailable(keycloakConfiguration: let keycloakConfiguration, isConfiguredFromMDM: let isConfiguredFromMDM): + var viewControllers = [UIViewController]() + let welcomeScreenVC = flowNavigationController.viewControllers.first(where: { $0 is NewWelcomeScreenViewController }) ?? NewWelcomeScreenViewController(delegate: self, showCloseButton: defaultShowCloseButton) + viewControllers.append(welcomeScreenVC) + if let manualVC = flowNavigationController.viewControllers.first(where: { $0 is NewIdentityProviderManualConfigurationViewController }) { + viewControllers.append(manualVC) + } + let identityProviderValidationVC = IdentityProviderValidationViewController( + model: .init(keycloakConfiguration: keycloakConfiguration, + isConfiguredFromMDM: isConfiguredFromMDM), + delegate: self) + viewControllers.append(identityProviderValidationVC) + flowNavigationController.setViewControllers(viewControllers, animated: animated) + case .keycloakUserDetailsAndStuffAvailable(let keycloakUserDetailsAndStuff, let keycloakServerRevocationsAndStuff, let keycloakState): + let managedDetailsViewerVC = ManagedDetailsViewerViewController( + model: .init(keycloakUserDetailsAndStuff: keycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: keycloakServerRevocationsAndStuff), + keycloakState: keycloakState, + delegate: self) + flowNavigationController.pushViewController(managedDetailsViewerVC, animated: true) + case .userIndicatedSheHasAnExistingProfile: + let welcomeScreenVC = flowNavigationController.viewControllers.first(where: { $0 is NewWelcomeScreenViewController }) ?? NewWelcomeScreenViewController(delegate: self, showCloseButton: defaultShowCloseButton) + let chooseVC = flowNavigationController.viewControllers.first(where: { $0 is ChooseBetweenBackupRestoreAndAddThisDeviceViewController }) ?? ChooseBetweenBackupRestoreAndAddThisDeviceViewController(delegate: self) + flowNavigationController.setViewControllers([welcomeScreenVC, chooseVC], animated: animated) + case .userWantsToRestoreSomeBackup: + let welcomeScreenVC = flowNavigationController.viewControllers.first(where: { $0 is NewWelcomeScreenViewController }) ?? NewWelcomeScreenViewController(delegate: self, showCloseButton: defaultShowCloseButton) + let chooseVC = flowNavigationController.viewControllers.first(where: { $0 is ChooseBetweenBackupRestoreAndAddThisDeviceViewController }) ?? ChooseBetweenBackupRestoreAndAddThisDeviceViewController(delegate: self) + let chooseBackupFileVC = flowNavigationController.viewControllers.first(where: { $0 is ChooseBackupFileViewController }) ?? ChooseBackupFileViewController(delegate: self) + flowNavigationController.setViewControllers([welcomeScreenVC, chooseVC, chooseBackupFileVC], animated: animated) + case .userWantsToRestoreThisEncryptedBackup(encryptedBackup: let encryptedBackup): + guard let acceptableCharactersForBackupKeyString = await delegate?.onboardingRequiresAcceptableCharactersForBackupKeyString() else { assertionFailure(); return } + let enterBackupKeyViewController = EnterBackupKeyViewController( + model: .init(encryptedBackup: encryptedBackup, + acceptableCharactersForBackupKeyString: acceptableCharactersForBackupKeyString), + delegate: self) + flowNavigationController.pushViewController(enterBackupKeyViewController, animated: true) + case .userWantsToRestoreThisDecryptedBackup(backupRequestIdentifier: let backupRequestIdentifier): + let waitingForBackupRestoreVC = WaitingForBackupRestoreViewController(model: .init(backupRequestIdentifier: backupRequestIdentifier), delegate: self) + // Don't allow the user to go back (and interface button allows to do so if the restore fails) + flowNavigationController.setViewControllers([waitingForBackupRestoreVC], animated: true) + case .shouldRequestPermission(profileKind: _, category: let category): + let vc = NewAutorisationRequesterViewController(autorisationCategory: category, delegate: self) + flowNavigationController.pushViewController(vc, animated: true) + return + case .finalize: + if flowNavigationController.viewControllers.last is NewOwnedIdentityGeneratedViewController { + // Nothing to do + } else { + let vc = NewOwnedIdentityGeneratedViewController(delegate: self) + flowNavigationController.pushViewController(vc, animated: true) + } + return + case .userWantsToChooseNameForCurrentDevice: + let vc = CurrentDeviceNameChooserViewController(model: .init(defaultDeviceName: defaultNameForCurrentDevice), delegate: self, showCloseButton: defaultShowCloseButton) + flowNavigationController.pushViewController(vc, animated: true) + case .userWantsToEnterTransferCode(currentDeviceName: _): + let vc = TransfertProtocolTargetCodeFormViewController(delegate: self) + flowNavigationController.pushViewController(vc, animated: true) + case .userWantsToDisplaySasOnThisTargetDevice(currentDeviceName: _, protocolInstanceUID: let protocolInstanceUID, sas: let sas): + let vc = TransferProtocolTargetShowSasViewController(model: .init(protocolInstanceUID: protocolInstanceUID, sas: sas), delegate: self) + flowNavigationController.setViewControllers([vc], animated: animated) + case .successfulTransferWasPerfomed(transferredOwnedCryptoId: let transferredOwnedCryptoId, postTransferError: let postTransferError): + let vc = SuccessfulTransferConfirmationViewController(model: .init(transferredOwnedCryptoId: transferredOwnedCryptoId, postTransferError: postTransferError), delegate: self) + flowNavigationController.setViewControllers([vc], animated: animated) + case .userMustEnterSASOnSourceDevice(sasExpectedOnInput: let sasExpectedOnInput, targetDeviceName: let targetDeviceName, ownedCryptoId: let ownedCryptoId, ownedDetails: let ownedDetails, protocolInstanceUID: let protocolInstanceUID): + let vc = InputSASOnSourceViewController(model: .init(sasExpectedOnInput: sasExpectedOnInput, targetDeviceName: targetDeviceName, ownedCryptoId: ownedCryptoId, ownedDetails: ownedDetails, protocolInstanceUID: protocolInstanceUID), delegate: self) + flowNavigationController.setViewControllers([vc], animated: animated) + case .userMustChooseDeviceToKeepActiveOnSourceDevice(ownedCryptoId: let ownedCryptoId, ownedDetails: let ownedDetails, enteredSAS: let enteredSAS, ownedDeviceDiscoveryResult: let ownedDeviceDiscoveryResult, currentDeviceIdentifier: let currentDeviceIdentifier, targetDeviceName: let targetDeviceName, protocolInstanceUID: let protocolInstanceUID): + let vc = ChooseDeviceToKeepActiveViewController( + model: .init(ownedCryptoId: ownedCryptoId, ownedDetails: ownedDetails, enteredSAS: enteredSAS, ownedDeviceDiscoveryResult: ownedDeviceDiscoveryResult, currentDeviceIdentifier: currentDeviceIdentifier, targetDeviceName: targetDeviceName, protocolInstanceUID: protocolInstanceUID), + delegate: self) + flowNavigationController.setViewControllers([vc], animated: animated) + case .finalOwnedIdentityTransferCheckOnSourceDevice(ownedCryptoId: let ownedCryptoId, ownedDetails: let ownedDetails, enteredSAS: let enteredSAS, ownedDeviceDiscoveryResult: let ownedDeviceDiscoveryResult, targetDeviceName: let targetDeviceName, protocolInstanceUID: let protocolInstanceUID, deviceToKeepActive: let deviceToKeepActive): + let vc = OwnedIdentityTransferSummaryViewController( + model: .init( + ownedCryptoId: ownedCryptoId, + ownedDetails: ownedDetails, + enteredSAS: enteredSAS, + ownedDeviceDiscoveryResult: ownedDeviceDiscoveryResult, + targetDeviceName: targetDeviceName, + deviceToKeepActive: deviceToKeepActive, + protocolInstanceUID: protocolInstanceUID), + delegate: self) + flowNavigationController.pushViewController(vc, animated: animated) + case .showOwnedIdentityTransferFailed(error: let error): + let welcomeScreenVC = flowNavigationController.viewControllers.first as? NewWelcomeScreenViewController ?? NewWelcomeScreenViewController(delegate: self, showCloseButton: defaultShowCloseButton) + let failureVC = OwnedIdentityTransferFailureViewController(model: .init(error: error)) + flowNavigationController.setViewControllers([welcomeScreenVC, failureVC], animated: animated) + case .userWantsToManuallyConfigureTheIdentityProvider: + let welcomeScreenVC = flowNavigationController.viewControllers.first as? NewWelcomeScreenViewController ?? NewWelcomeScreenViewController(delegate: self, showCloseButton: defaultShowCloseButton) + let manualVC = NewIdentityProviderManualConfigurationViewController(delegate: self) + flowNavigationController.setViewControllers([welcomeScreenVC, manualVC], animated: animated) + } + } + + // MARK: - Adapting the size of the onboarding screens + + private func displayFlowNavigationController(_ flowNavigationController: UINavigationController) { + assert(flowNavigationController == self.flowNavigationController) + + flowNavigationController.willMove(toParent: self) + addChild(flowNavigationController) + flowNavigationController.didMove(toParent: self) + + view.addSubview(flowNavigationController.view) + + // Under iPhone, we want the onboarding to be as large as possible. + // This is not the case under iPad or Mac, during the first onboarding. + // If this onboarding is presented (whatever the platform, we want maximum width) + if traitCollection.userInterfaceIdiom == .phone || self.isBeingPresented { + flowNavigationController.view.translatesAutoresizingMaskIntoConstraints = true + flowNavigationController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight] + flowNavigationController.view.frame = view.bounds + } else { + flowNavigationController.view.translatesAutoresizingMaskIntoConstraints = false + flowNavigationControllerWidthConstraint = flowNavigationController.view.widthAnchor.constraint(equalToConstant: 443) + flowNavigationControllerHeightConstraint = flowNavigationController.view.heightAnchor.constraint(equalToConstant: 426) + flowNavigationControllerWidthConstraint?.priority = .defaultHigh // less than the priority on the maximum width + flowNavigationControllerHeightConstraint?.priority = .defaultHigh // less than the priority on the maximum height + NSLayoutConstraint.activate([ + flowNavigationController.view.centerXAnchor.constraint(equalTo: view.centerXAnchor), + flowNavigationController.view.centerYAnchor.constraint(equalTo: view.centerYAnchor), + flowNavigationControllerWidthConstraint!, + flowNavigationControllerHeightConstraint!, + flowNavigationController.view.widthAnchor.constraint(lessThanOrEqualTo: view.widthAnchor), + flowNavigationController.view.heightAnchor.constraint(lessThanOrEqualTo: view.heightAnchor), + ]) + flowNavigationController.view.layer.cornerRadius = 12 + flowNavigationController.additionalSafeAreaInsets = .init(top: 20, left: 20, bottom: 40, right: 20) + } + + } + + + // MARK: - UIAdaptivePresentationControllerDelegate + + /// This `UIAdaptivePresentationControllerDelegate` delegate gets called when the user dismisses a presented onboarding flow. + /// In case there was an onboarding flow, we ask our delegate to cancel it. + public func presentationControllerDidDismiss(_ presentationController: UIPresentationController) { + guard let delegate else { return } + let localSelf = self + Task { + await delegate.userWantsToCloseOnboardingAndCancelAnyOwnedTransferProtocol(onboardingFlow: localSelf) + } + } + + + // MARK: - NewWelcomeScreenViewControllerDelegate + + func userWantsToCloseOnboarding(controller: NewWelcomeScreenViewController) async { + await delegate?.userWantsToCloseOnboardingAndCancelAnyOwnedTransferProtocol(onboardingFlow: self) + } + + + func userWantsToLeaveWelcomeScreenAndHasNoOlvidProfileYet(controller: NewWelcomeScreenViewController) async { + + // In case we are performing the initial onboarding and there is an MDM configuration, we apply it. + // Othersise, we send the user to the screen allowing her to choose her given name and family name. + + if let mdmConfig = mode.mdmConfigDuringInitialOnboarding { + self.internalState = .keycloakConfigAvailable(keycloakConfiguration: mdmConfig.keycloakConfiguration, isConfiguredFromMDM: true) + } else { + self.internalState = .userWantsToChooseUnmanagedDetails + } + + await showNextOnboardingScreen(animated: true) + + } + + + func userWantsToLeaveWelcomeScreenAndHasAnOlvidProfile(controller: NewWelcomeScreenViewController) async { + self.internalState = .userIndicatedSheHasAnExistingProfile + await showNextOnboardingScreen(animated: true) + } + + + // MARK: - NewUnmanagedDetailsChooserViewControllerDelegate + + func userWantsToCloseOnboarding(controller: NewUnmanagedDetailsChooserViewController) async { + await delegate?.userWantsToCloseOnboardingAndCancelAnyOwnedTransferProtocol(onboardingFlow: self) + } + + + func userDidChooseUnmanagedDetails(controller: NewUnmanagedDetailsChooserViewController, ownedIdentityCoreDetails: ObvIdentityCoreDetails, photo: UIImage?) async { + + guard let delegate else { assertionFailure(); return } + + // If the user chose a profile picture, save it to disk so that the engine can process it + + let photoURL: URL? + if let photo, let jpegData = photo.jpegData(compressionQuality: 1.0) { + let filename = [UUID().uuidString, UTType.jpeg.preferredFilenameExtension ?? "jpeg"].joined(separator: ".") + let filepath = directoryForTempFiles.appendingPathComponent(filename) + do { + try jpegData.write(to: filepath) + photoURL = filepath + } catch { + assertionFailure() + photoURL = nil + } + } else { + photoURL = nil + } + + // Create the details to pass to the engine + + let currentDetails = ObvIdentityDetails(coreDetails: ownedIdentityCoreDetails, photoURL: photoURL) + let ownedCryptoId: ObvCryptoId + + // Note that we could have let the user choose a name for her device. We decide not to, for now, and use the device model name + + do { + ownedCryptoId = try await delegate.onboardingRequiresToGenerateOwnedIdentity( + onboardingFlow: self, + identityDetails: currentDetails, + nameForCurrentDevice: defaultNameForCurrentDevice, + keycloakState: nil, + customServerAndAPIKey: customServerAndAPIKey) + } catch { + os_log("Could not generate owned identity: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + return + } + + do { + try await delegate.onboardingRequiresToSyncAppDatabasesWithEngine(onboardingFlow: self) + } catch { + os_log("Could not sync engine and app: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + return + } + + // At the end, the engine will be managing the photo, we can delete the one we store in the temporary folder + + if let photoURL { + try? FileManager.default.removeItem(at: photoURL) + } + + // Transition to the next screen + + await requestNextAutorisationPermissionAfterCreatingTheOwnedIdentity(profileKind: .unmanaged(ownedCryptoId: ownedCryptoId)) + + } + + + func userIndicatedHerProfileIsManagedByOrganisation(controller: NewUnmanagedDetailsChooserViewController) async { + await userIndicatedHerProfileIsManagedByOrganisation() + } + + + // MARK: - NewAutorisationRequesterViewControllerDelegate + + func requestAutorisation(autorisationRequester: NewAutorisationRequesterViewController, now: Bool, for autorisationCategory: NewAutorisationRequesterViewController.AutorisationCategory) async { + guard let profileKind = internalState.profileKind else { assertionFailure(); return } + await delegate?.onboardingNeedsToPreventPrivacyWindowSceneFromShowingOnNextWillResignActive(onboardingFlow: self) + switch autorisationCategory { + case .localNotifications: + if now { + let center = UNUserNotificationCenter.current() + do { + try await center.requestAuthorization(options: [.alert, .sound, .badge]) + } catch { + os_log("Could not request authorization for notifications: %@", log: Self.log, type: .error, error.localizedDescription) + } + } + if await requestingAutorisationIsNecessary(for: .recordPermission) { + internalState = .shouldRequestPermission(profileKind: profileKind, category: .recordPermission) + } else { + internalState = determineLastInternalState(profileKind: profileKind) + } + case .recordPermission: + if now { + let granted = await AVAudioSession.sharedInstance().requestRecordPermission() + os_log("User granted access to audio: %@", log: Self.log, type: .info, String(describing: granted)) + } + internalState = determineLastInternalState(profileKind: profileKind) + } + await showNextOnboardingScreen(animated: true) + } + + + // MARK: - NewOwnedIdentityGeneratedViewControllerDelegate + + func userWantsToStartUsingOlvid(controller: NewOwnedIdentityGeneratedViewController) async { + guard let ownedCryptoId = internalState.ownedCryptoId else { assertionFailure(); return } + await delegate?.onboardingIsFinished(onboardingFlow: self, ownedCryptoIdGeneratedDuringOnboarding: ownedCryptoId) + + } + + + // MARK: - UINavigationControllerDelegate + + public func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) { + + guard let flowNavigationControllerWidthConstraint, let flowNavigationControllerHeightConstraint else { return } + + var isHeightIncreased = false + var newSize: Size? + + enum Size { + case small + case normal + case large + + var width: CGFloat { + return 443 + } + + var height: CGFloat { + switch self { + case .small: + return 426 + case .normal: + return 700 + case .large: + return 800 + } + } + } + + switch viewController.self { + case is NewUnmanagedDetailsChooserViewController: + newSize = .normal + case is NewAutorisationRequesterViewController: + newSize = .normal + case is ChooseBetweenBackupRestoreAndAddThisDeviceViewController: + newSize = .normal + case is ChooseBackupFileViewController: + newSize = .large + case is EnterBackupKeyViewController: + newSize = .large + case is WaitingForBackupRestoreViewController: + newSize = .large + case is NewOwnedIdentityGeneratedViewController: + newSize = nil + case is NewWelcomeScreenViewController: + newSize = .small + default: + newSize = .large + } + + if let newSize { + + if flowNavigationControllerWidthConstraint.constant != newSize.width { + flowNavigationControllerWidthConstraint.constant = newSize.width + } + + if flowNavigationControllerHeightConstraint.constant != newSize.height { + isHeightIncreased = flowNavigationControllerHeightConstraint.constant < newSize.height + flowNavigationControllerHeightConstraint.constant = newSize.height + } + + } + + if animated && isHeightIncreased { + UIView.animate(withDuration: 0.3) { [weak self] in + self?.view.layoutIfNeeded() + } + } + + } + + + // MARK: - ChooseBetweenBackupRestoreAndAddThisDeviceViewControllerDelegate + + func userWantsToRestoreBackup(controller: ChooseBetweenBackupRestoreAndAddThisDeviceViewController) async { + self.internalState = .userWantsToRestoreSomeBackup + await showNextOnboardingScreen(animated: true) + } + + + func userWantsToActivateHerProfileOnThisDevice(controller: ChooseBetweenBackupRestoreAndAddThisDeviceViewController) async { + self.internalState = .userWantsToChooseNameForCurrentDevice + await showNextOnboardingScreen(animated: true) + } + + + func userIndicatedHerProfileIsManagedByOrganisation(controller: ChooseBetweenBackupRestoreAndAddThisDeviceViewController) async { + await userIndicatedHerProfileIsManagedByOrganisation() + } + + + // MARK: - ChooseBackupFileViewControllerDelegate + + func userWantsToProceedWithBackup(controller: ChooseBackupFileViewController, encryptedBackup: Data) async { + self.internalState = .userWantsToRestoreThisEncryptedBackup(encryptedBackup: encryptedBackup) + await showNextOnboardingScreen(animated: true) + } + + + // MARK: - EnterBackupKeyViewControllerDelegate + + func recoverBackupFromEncryptedBackup(controller: EnterBackupKeyViewController, encryptedBackup: Data, backupKey: String) async throws -> (backupRequestIdentifier: UUID, backupDate: Date) { + guard let delegate else { assertionFailure(); throw ObvError.theDelegateIsNotSet } + return try await delegate.onboardingRequiresToRecoverBackupFromEncryptedBackup(onboardingFlow: self, encryptedBackup: encryptedBackup, backupKey: backupKey) + } + + + func userWantsToRestoreBackup(controller: EnterBackupKeyViewController, backupRequestIdentifier: UUID) async throws { + self.internalState = .userWantsToRestoreThisDecryptedBackup(backupRequestIdentifier: backupRequestIdentifier) + await showNextOnboardingScreen(animated: true) + } + + + // MARK: - WaitingForBackupRestoreViewControllerDelegate + + /// Returns the CryptoId of the restore owned identity. When many identities were restored, only one is returned here + func restoreBackupNow(controller: WaitingForBackupRestoreViewController, backupRequestIdentifier: UUID) async throws -> ObvCryptoId { + guard let delegate else { throw ObvError.theDelegateIsNotSet } + return try await delegate.onboardingRequiresToRestoreBackup(onboardingFlow: self, backupRequestIdentifier: backupRequestIdentifier) + } + + + func userWantsToEnableAutomaticBackup(controller: WaitingForBackupRestoreViewController) async throws { + guard let delegate else { throw ObvError.theDelegateIsNotSet } + try await delegate.userWantsToEnableAutomaticBackup(onboardingFlow: self) + } + + + func backupRestorationSucceeded(controller: WaitingForBackupRestoreViewController, restoredOwnedCryptoId: ObvCryptoId) async { + await requestNextAutorisationPermissionAfterCreatingTheOwnedIdentity(profileKind: .backupRestored(ownedCryptoId: restoredOwnedCryptoId)) + } + + + func backupRestorationFailed(controller: WaitingForBackupRestoreViewController) async { + self.internalState = .userWantsToRestoreSomeBackup + await showNextOnboardingScreen(animated: true) + } + + + // MARK: - ScannerHostingViewDelegate + + func scannerViewActionButtonWasTapped() async { + flowNavigationController?.presentedViewController?.dismiss(animated: true) + } + + + func qrCodeWasScanned(olvidURL: OlvidURL) async { + flowNavigationController?.presentedViewController?.dismiss(animated: true) + await NewAppStateManager.shared.handleOlvidURL(olvidURL) + } + + + // MARK: - IdentityProviderValidationViewControllerDelegate + + func discoverKeycloakServer(controller: IdentityProviderValidationViewController, keycloakServerURL: URL) async throws -> (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration) { + guard let delegate else { throw ObvError.theDelegateIsNotSet } + return try await delegate.onboardingRequiresToDiscoverKeycloakServer(onboardingFlow: self, keycloakServerURL: keycloakServerURL) + } + + + func userWantsToAuthenticateOnKeycloakServer(controller: IdentityProviderValidationViewController, keycloakConfiguration: Onboarding.KeycloakConfiguration, isConfiguredFromMDM: Bool, keycloakServerKeyAndConfig: (jwks: ObvJWKSet, serviceConfig: OIDServiceConfiguration)) async throws { + guard let delegate else { throw ObvError.theDelegateIsNotSet } + let (keycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff, keycloakState) = try await delegate.onboardingRequiresKeycloakAuthentication( + onboardingFlow: self, + keycloakConfiguration: keycloakConfiguration, + keycloakServerKeyAndConfig: keycloakServerKeyAndConfig) + internalState = .keycloakUserDetailsAndStuffAvailable(keycloakUserDetailsAndStuff: keycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: keycloakServerRevocationsAndStuff, keycloakState: keycloakState) + await showNextOnboardingScreen(animated: true) + } + + + // MARK: - ManagedDetailsViewerViewControllerDelegate + + @MainActor + func userWantsToCreateProfileWithDetailsFromIdentityProvider(controller: ManagedDetailsViewerViewController, keycloakDetails: (keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff), keycloakState: ObvKeycloakState) async { + + guard let delegate else { + assertionFailure() + return + } + + // We are dealing with an identity server. If there was no previous olvid identity for this user, then we can safely generate a new one. If there was a previous identity, we must make sure that the server allows revocation before trying to create a new identity. + + guard keycloakDetails.keycloakUserDetailsAndStuff.identity == nil || keycloakDetails.keycloakServerRevocationsAndStuff.revocationAllowed else { + // If this happens, there is an UI bug. + assertionFailure() + return + } + + // The following call discards the signed details. This is intentional. The reason is that these signed details, if they exist, contain an old identity that will be revoked. We do not want to store this identity. + + guard let coreDetails = try? keycloakDetails.keycloakUserDetailsAndStuff.signedUserDetails.userDetails.getCoreDetails() else { + assertionFailure() + return + } + + // We use the hardcoded API here, it will be updated during the keycloak registration + + let currentDetails = ObvIdentityDetails(coreDetails: coreDetails, photoURL: nil) + + // Request the generation of the owned identity and sync it with the app + + let ownedCryptoId: ObvCryptoId + do { + ownedCryptoId = try await delegate.onboardingRequiresToGenerateOwnedIdentity( + onboardingFlow: self, + identityDetails: currentDetails, + nameForCurrentDevice: defaultNameForCurrentDevice, + keycloakState: keycloakState, + customServerAndAPIKey: customServerAndAPIKey) + } catch { + os_log("Could not generate owned identity: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + return + } + + do { + try await delegate.onboardingRequiresToSyncAppDatabasesWithEngine(onboardingFlow: self) + } catch { + os_log("Could not sync engine and app: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + return + } + + // The owned identity is created, we register it with the keycloak manager + + do { + try await delegate.onboardingRequiresToRegisterAndUploadOwnedIdentityToKeycloakServer(ownedCryptoId: ownedCryptoId) + } catch { + let alert = UIAlertController(title: NSLocalizedString("DIALOG_TITLE_IDENTITY_PROVIDER_ERROR", comment: "") , + message: NSLocalizedString("DIALOG_MESSAGE_FAILED_TO_UPLOAD_IDENTITY_TO_KEYCLOAK", comment: ""), + preferredStyle: .alert) + alert.addAction(UIAlertAction(title: "Ok", style: .default)) + present(alert, animated: true) + return + } + + // We are done, we can proceed with the next screen + + await requestNextAutorisationPermissionAfterCreatingTheOwnedIdentity(profileKind: .keycloakManaged(ownedCryptoId: ownedCryptoId)) + + } + + + // MARK: - TransfertProtocolSourceCodeDisplayerViewControllerDelegate + + func userWantsToInitiateOwnedIdentityTransferProtocolOnSourceDevice(controller: TransfertProtocolSourceCodeDisplayerViewController, ownedCryptoId: ObvCryptoId, onAvailableSessionNumber: @escaping (ObvOwnedIdentityTransferSessionNumber) -> Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void) async throws { + try await delegate?.onboardingRequiresToInitiateOwnedIdentityTransferProtocolOnSourceDevice( + onboardingFlow: self, + ownedCryptoId: ownedCryptoId, + onAvailableSessionNumber: onAvailableSessionNumber, + onAvailableSASExpectedOnInput: onAvailableSASExpectedOnInput) + } + + + func userDidCancelOwnedIdentityTransferProtocol(controller: TransfertProtocolSourceCodeDisplayerViewController) async { + await userDidCancelOwnedIdentityTransferProtocol() + } + + + func sasExpectedOnInputIsAvailable(controller: TransfertProtocolSourceCodeDisplayerViewController, sasExpectedOnInput: ObvOwnedIdentityTransferSas, targetDeviceName: String, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, protocolInstanceUID: UID) async { + self.internalState = .userMustEnterSASOnSourceDevice( + sasExpectedOnInput: sasExpectedOnInput, + targetDeviceName: targetDeviceName, + ownedCryptoId: ownedCryptoId, + ownedDetails: ownedDetails, + protocolInstanceUID: protocolInstanceUID) + await showNextOnboardingScreen(animated: true) + } + + // MARK: - AddProfileViewControllerDelegate + + func userWantsToCloseOnboarding(controller: AddProfileViewController) async { + await delegate?.userWantsToCloseOnboardingAndCancelAnyOwnedTransferProtocol(onboardingFlow: self) + } + + + func userWantsToCreateNewProfile(controller: AddProfileViewController) async { + self.internalState = .userWantsToChooseUnmanagedDetails + await showNextOnboardingScreen(animated: true) + } + + + func userWantsToImportProfileFromAnotherDevice(controller: AddProfileViewController) async { + self.internalState = .userWantsToChooseNameForCurrentDevice + await showNextOnboardingScreen(animated: true) + } + + + // MARK: - CurrentDeviceNameChooserViewControllerDelegate + + func userWantsToCloseOnboarding(controller: CurrentDeviceNameChooserViewController) async { + await delegate?.userWantsToCloseOnboardingAndCancelAnyOwnedTransferProtocol(onboardingFlow: self) + } + + + func userDidChooseCurrentDeviceName(controller: CurrentDeviceNameChooserViewController, deviceName: String) async { + self.internalState = .userWantsToEnterTransferCode(currentDeviceName: deviceName) + await showNextOnboardingScreen(animated: true) + } + + + // MARK: - TransfertProtocolTargetCodeFormViewControllerDelegate + + func userEnteredTransferSessionNumberOnTargetDevice(controller: TransfertProtocolTargetCodeFormViewController, transferSessionNumber: ObvTypes.ObvOwnedIdentityTransferSessionNumber, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void) async throws { + guard let currentDeviceName = internalState.currentDeviceName else { assertionFailure(); return } + try await delegate?.onboardingRequiresToInitiateOwnedIdentityTransferProtocolOnTargetDevice( + onboardingFlow: self, + transferSessionNumber: transferSessionNumber, + currentDeviceName: currentDeviceName, + onIncorrectTransferSessionNumber: onIncorrectTransferSessionNumber, + onAvailableSas: onAvailableSas) + } + + + /// Called when the user entered a correct session number on the target device, and after the protocol managed to exchanged the appropriate data with the source device in order to compute a SAS to show on this target device. + func sasIsAvailable(controller: TransfertProtocolTargetCodeFormViewController, protocolInstanceUID: UID, sas: ObvOwnedIdentityTransferSas) async { + guard let currentDeviceName = internalState.currentDeviceName else { assertionFailure("We expect to be in the userWantsToEnterTransferCode that contains a device name"); return } + self.internalState = .userWantsToDisplaySasOnThisTargetDevice(currentDeviceName: currentDeviceName, protocolInstanceUID: protocolInstanceUID, sas: sas) + await showNextOnboardingScreen(animated: true) + } + + + // MARK: - TransferProtocolTargetShowSasViewControllerDelegate + + func targetDeviceIsShowingSasAndExpectingEndOfProtocol(controller: TransferProtocolTargetShowSasViewController, protocolInstanceUID: UID, onSyncSnapshotReception: @escaping () -> Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async { + await delegate?.onboardingIsShowingSasAndExpectingEndOfProtocol( + onboardingFlow: self, + protocolInstanceUID: protocolInstanceUID, + onSyncSnapshotReception: onSyncSnapshotReception, + onSuccessfulTransfer: onSuccessfulTransfer) + } + + + /// Called at the end of the transfer protocol on the target device, when everything worked + func successfulTransferWasPerformedOnThisTargetDevice(controller: TransferProtocolTargetShowSasViewController, transferredOwnedCryptoId: ObvCryptoId, postTransferError: Error?) async { + await requestNextAutorisationPermissionAfterCreatingTheOwnedIdentity(profileKind: .transferred(ownedCryptoId: transferredOwnedCryptoId, postTransferError: postTransferError)) + } + + + func userDidCancelOwnedIdentityTransferProtocol(controller: TransferProtocolTargetShowSasViewController) async { + await userDidCancelOwnedIdentityTransferProtocol() + } + + + // MARK: - SuccessfulTransferConfirmationViewControllerDelegate + + func userWantsToDismissOnboardingAfterSuccessfulOwnedIdentityTransferOnThisTargetDevice(controller: SuccessfulTransferConfirmationViewController, transferredOwnedCryptoId: ObvCryptoId, userWantsToAddAnotherProfile: Bool) async { + if userWantsToAddAnotherProfile { + requestKeycloakSyncOnDeinit = false + } + await delegate?.userWantsToDismissOnboardingAfterSuccessfulOwnedIdentityTransferOnThisTargetDevice( + onboardingFlow: self, + transferredOwnedCryptoId: transferredOwnedCryptoId, + userWantsToAddAnotherProfile: userWantsToAddAnotherProfile) + } + + + // MARK: - InputSASOnSourceViewControllerDelegate + + func userEnteredValidSASOnSourceDevice(controller: InputSASOnSourceViewController, enteredSAS: ObvOwnedIdentityTransferSas, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, protocolInstanceUID: UID, targetDeviceName: String) async throws { + // Before going to the next screen, we need more information, namely the current list of owned devices and if the user has a multidevice subscription or not + guard let delegate else { assertionFailure(); return } + let (ownedDeviceDiscoveryResult, currentDeviceIdentifier) = try await delegate.onboardingRequiresToPerformOwnedDeviceDiscoveryNow(for: ownedCryptoId) + internalState = .userMustChooseDeviceToKeepActiveOnSourceDevice( + ownedCryptoId: ownedCryptoId, + ownedDetails: ownedDetails, + enteredSAS: enteredSAS, + ownedDeviceDiscoveryResult: ownedDeviceDiscoveryResult, + currentDeviceIdentifier: currentDeviceIdentifier, + targetDeviceName: targetDeviceName, + protocolInstanceUID: protocolInstanceUID) + await showNextOnboardingScreen(animated: true) + } + + + func userDidCancelOwnedIdentityTransferProtocol(controller: InputSASOnSourceViewController) async { + await userDidCancelOwnedIdentityTransferProtocol() + } + + + // MARK: - ChooseDeviceToKeepActiveViewControllerDelegate + + func userChoseDeviceToKeepActive(controller: ChooseDeviceToKeepActiveViewController, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, enteredSAS: ObvOwnedIdentityTransferSas, ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult, currentDeviceIdentifier: Data, targetDeviceName: String, deviceToKeepActive: ObvOwnedDeviceDiscoveryResult.Device?, protocolInstanceUID: UID) async { + internalState = .finalOwnedIdentityTransferCheckOnSourceDevice( + ownedCryptoId: ownedCryptoId, + ownedDetails: ownedDetails, + enteredSAS: enteredSAS, + ownedDeviceDiscoveryResult: ownedDeviceDiscoveryResult, + targetDeviceName: targetDeviceName, + protocolInstanceUID: protocolInstanceUID, + deviceToKeepActive: deviceToKeepActive) + await showNextOnboardingScreen(animated: true) + } + + + func userDidCancelOwnedIdentityTransferProtocol(controller: ChooseDeviceToKeepActiveViewController) async { + await userDidCancelOwnedIdentityTransferProtocol() + } + + + // MARK: - OwnedIdentityTransferSummaryViewControllerDelegate + + func userDidCancelOwnedIdentityTransferProtocol(controller: OwnedIdentityTransferSummaryViewController) async { + await userDidCancelOwnedIdentityTransferProtocol() + } + + + func userWishesToFinalizeOwnedIdentityTransferFromSourceDevice(controller: OwnedIdentityTransferSummaryViewController, enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws { + try await delegate?.userWishesToFinalizeOwnedIdentityTransferFromSourceDevice( + onboardingFlow: self, + enteredSAS: enteredSAS, + deviceToKeepActive: deviceToKeepActive, + ownedCryptoId: ownedCryptoId, + protocolInstanceUID: protocolInstanceUID) + } + + + func refreshDeviceDiscovery(controller: ChooseDeviceToKeepActiveViewController, for ownedCryptoId: ObvCryptoId) async throws -> ObvOwnedDeviceDiscoveryResult { + guard let delegate else { throw ObvError.theDelegateIsNotSet } + let result = try await delegate.onboardingRequiresToPerformOwnedDeviceDiscoveryNow(for: ownedCryptoId) + return result.ownedDeviceDiscoveryResult + } + + + // MARK: - SubscriptionPlansViewActionsProtocol (required for ChooseDeviceToKeepActiveViewControllerDelegate) + + func fetchSubscriptionPlans(for ownedCryptoId: ObvCryptoId, alsoFetchFreePlan: Bool) async throws -> (freePlanIsAvailable: Bool, products: [Product]) { + guard let delegate else { throw ObvError.theDelegateIsNotSet } + return try await delegate.fetchSubscriptionPlans(for: ownedCryptoId, alsoFetchFreePlan: alsoFetchFreePlan) + } + + + func userWantsToStartFreeTrialNow(ownedCryptoId: ObvCryptoId) async throws -> APIKeyElements { + guard let delegate else { throw ObvError.theDelegateIsNotSet } + let newAPIKeyElements = try await delegate.userWantsToStartFreeTrialNow(ownedCryptoId: ownedCryptoId) + return newAPIKeyElements + } + + + func userWantsToBuy(_ product: Product) async throws -> StoreKitDelegatePurchaseResult { + guard let delegate else { assertionFailure(); throw ObvError.theDelegateIsNotSet } + return try await delegate.userWantsToBuy(product) + } + + + func userWantsToRestorePurchases() async throws { + guard let delegate else { assertionFailure(); throw ObvError.theDelegateIsNotSet } + try await delegate.userWantsToRestorePurchases() + } + + + // MARK: - NewIdentityProviderManualConfigurationViewControllerDelegate + + @MainActor + func userWantsToValidateManualKeycloakConfiguration(controller: NewIdentityProviderManualConfigurationViewController, keycloakConfig: Onboarding.KeycloakConfiguration) async { + self.internalState = .keycloakConfigAvailable(keycloakConfiguration: keycloakConfig, isConfiguredFromMDM: false) + await showNextOnboardingScreen(animated: true) + } + + + // MARK: - OlvidURLHandler + + @MainActor + func handleOlvidURL(_ olvidURL: OlvidURL) async { + switch olvidURL.category { + + case .openIdRedirect: + // This case should have been dealt with by the MetaFlowController + assertionFailure() + + case .invitation: + // Not handled while the user is performing an onboarding (it used to be, in the old flow, but not anymore) + assertionFailure() + + case .mutualScan: + // Not handled while the user is performing an onboarding + assertionFailure() + + case .configuration(let serverAndAPIKey, _, let keycloakConfig): + + if let serverAndAPIKey { + await userWantsToUseCustomServerAndAPIKey(serverAndAPIKey) + } else if let keycloakConfig { + let keycloakConfiguration = Onboarding.KeycloakConfiguration(keycloakServerURL: keycloakConfig.serverURL, clientId: keycloakConfig.clientId, clientSecret: keycloakConfig.clientSecret) + self.internalState = .keycloakConfigAvailable(keycloakConfiguration: keycloakConfiguration, isConfiguredFromMDM: false) + await showNextOnboardingScreen(animated: true) + } else { + assertionFailure() + // betaConfiguration are not handled + } + + } + + } + + + @MainActor + private func userWantsToUseCustomServerAndAPIKey(_ customServerAndAPIKey: ServerAndAPIKey) async { + + let title = NSLocalizedString("USE_CUSTOM_API_KEY_AND_SERVER_ALERT_TITLE", comment: "") + let message = String.localizedStringWithFormat(NSLocalizedString("USE_CUSTOM_API_KEY_AND_SERVER_ALERT_BODY_%@_%@", comment: ""), customServerAndAPIKey.server.absoluteString, customServerAndAPIKey.apiKey.uuidString) + + let alert = UIAlertController(title: title, + message: message, + preferredStyleForTraitCollection: .current) + alert.addAction(.init(title: "Cancel", style: .cancel)) + alert.addAction(.init(title: "Ok", style: .default) { _ in + self.customServerAndAPIKey = customServerAndAPIKey + }) + + present(alert, animated: true) + + } + + + // MARK: - Helpers + + @MainActor + private func userIndicatedHerProfileIsManagedByOrganisation() async { + let vc = ScannerHostingView(buttonType: .back, delegate: self) + let nav = UINavigationController(rootViewController: vc) + // Configure the ScannerHostingView properly for the navigation controller + vc.title = NSLocalizedString("CONFIGURATION_SCAN", comment: "") + let ellipsisButton = getConfiguredEllipsisCircleRightBarButtonItem() + vc.navigationItem.rightBarButtonItem = ellipsisButton + flowNavigationController?.present(nav, animated: true) + } + + + /// Returns the bar button item shown on the scanner hosting view + private func getConfiguredEllipsisCircleRightBarButtonItem() -> UIBarButtonItem { + let menuElements: [UIMenuElement] = [ + UIAction(title: NSLocalizedString("PASTE_CONFIGURATION_LINK", comment: ""), + image: UIImage(systemIcon: .docOnClipboardFill)) { [weak self] _ in + self?.presentedViewController?.dismiss(animated: true) { [weak self] in + Task { [weak self] in await self?.userWantsToPasteConfigurationURL() } + } + }, + UIAction(title: NSLocalizedString("MANUAL_CONFIGURATION", comment: ""), + image: UIImage(systemIcon: .serverRack)) { [weak self] _ in + self?.presentedViewController?.dismiss(animated: true) { [weak self] in + Task { [weak self] in await self?.userChooseToUseManualIdentityProvider() } + } + }, + ] + let menu = UIMenu(title: "", children: menuElements) + let symbolConfiguration = UIImage.SymbolConfiguration(pointSize: 20.0, weight: .bold) + let ellipsisImage = UIImage(systemIcon: .ellipsisCircle, withConfiguration: symbolConfiguration) + let ellipsisButton = UIBarButtonItem( + title: "Menu", + image: ellipsisImage, + primaryAction: nil, + menu: menu) + return ellipsisButton + } + + + @MainActor + private func userWantsToPasteConfigurationURL() async { + + guard let pastedString = UIPasteboard.general.string, + let url = URL(string: pastedString), + let olvidURL = OlvidURL(urlRepresentation: url) else { + ObvMessengerInternalNotification.pastedStringIsNotValidOlvidURL + .postOnDispatchQueue() + return + } + + await NewAppStateManager.shared.handleOlvidURL(olvidURL) + + } + + + @MainActor + private func userChooseToUseManualIdentityProvider() async { + self.internalState = .userWantsToManuallyConfigureTheIdentityProvider + await showNextOnboardingScreen(animated: true) + } + + + /// This method is sytematically called after the creation of an owned identity (unmanaged, keycloak ,transferred, etc.). + /// When all the permissions screen have been dealt with, the appropriate "final" screen is chosen depending on the profile kind + @MainActor + private func requestNextAutorisationPermissionAfterCreatingTheOwnedIdentity(profileKind: NewOnboardingState.ProfileKind) async { + if await requestingAutorisationIsNecessary(for: .localNotifications) { + internalState = .shouldRequestPermission(profileKind: profileKind, category: .localNotifications) + } else if await requestingAutorisationIsNecessary(for: .recordPermission) { + internalState = .shouldRequestPermission(profileKind: profileKind, category: .recordPermission) + } else { + internalState = determineLastInternalState(profileKind: profileKind) + } + await showNextOnboardingScreen(animated: true) + } + + + @MainActor + private func determineLastInternalState(profileKind: NewOnboardingState.ProfileKind) -> NewOnboardingState { + switch profileKind { + case .unmanaged, .keycloakManaged, .backupRestored: + return .finalize(profileKind: profileKind) + case .transferred(ownedCryptoId: let transferredOwnedCryptoId, postTransferError: let postTransferError): + return .successfulTransferWasPerfomed(transferredOwnedCryptoId: transferredOwnedCryptoId, postTransferError: postTransferError) + } + } + + + @MainActor + private func requestingAutorisationIsNecessary(for autorisationCategory: NewAutorisationRequesterViewController.AutorisationCategory) async -> Bool { + switch autorisationCategory { + case .localNotifications: + let center = UNUserNotificationCenter.current() + let authorizationStatus = await center.notificationSettings().authorizationStatus + switch authorizationStatus { + case .notDetermined, .provisional, .ephemeral: + return true + case .denied, .authorized: + return false + @unknown default: + assertionFailure() + return true + } + case .recordPermission: + let recordPermission = AVAudioSession.sharedInstance().recordPermission + switch recordPermission { + case .undetermined: + return true + case .denied, .granted: + return false + @unknown default: + return true + } + } + } + + + private var defaultNameForCurrentDevice: String { + UIDevice.current.preciseModel + } + + +// private func requestSyncAppDatabasesWithEngine() async throws { +// showHUD(type: .spinner) +// try await withCheckedThrowingContinuation { [weak self] (continuation: CheckedContinuation) in +// ObvMessengerInternalNotification.requestSyncAppDatabasesWithEngine { result in +// DispatchQueue.main.async { +// self?.hideHUD() +// } +// switch result { +// case .failure(let error): +// continuation.resume(throwing: error) +// case .success: +// continuation.resume() +// } +// }.postOnDispatchQueue() +// } +// } + + + // MARK: - Errors + + enum ObvError: Error { + case couldNotCompressImage + case theDelegateIsNotSet + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOnboardingInternalState.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOnboardingInternalState.swift new file mode 100644 index 00000000..988450a6 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOnboardingInternalState.swift @@ -0,0 +1,186 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes +import ObvCrypto +import Contacts + + +enum NewOnboardingState { + + enum ProfileKind { + case unmanaged(ownedCryptoId: ObvCryptoId) + case keycloakManaged(ownedCryptoId: ObvCryptoId) + case backupRestored(ownedCryptoId: ObvCryptoId) + case transferred(ownedCryptoId: ObvCryptoId, postTransferError: Error?) + var ownedCryptoId: ObvCryptoId { + switch self { + case .unmanaged(let ownedCryptoId), + .keycloakManaged(let ownedCryptoId), + .backupRestored(let ownedCryptoId), + .transferred(let ownedCryptoId, _): + return ownedCryptoId + } + } + } + + case initial + case userWantsToChooseUnmanagedDetails + case userIndicatedSheHasAnExistingProfile + case userWantsToManuallyConfigureTheIdentityProvider + case userWantsToRestoreSomeBackup + case userWantsToChooseNameForCurrentDevice + case userWantsToRestoreThisEncryptedBackup(encryptedBackup: Data) + case userWantsToRestoreThisDecryptedBackup(backupRequestIdentifier: UUID) + case keycloakConfigAvailable(keycloakConfiguration: Onboarding.KeycloakConfiguration, isConfiguredFromMDM: Bool) + case keycloakUserDetailsAndStuffAvailable(keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff, keycloakState: ObvKeycloakState) + case shouldRequestPermission(profileKind: ProfileKind, category: NewAutorisationRequesterViewController.AutorisationCategory) + case finalize(profileKind: ProfileKind) + + // States while transfering an owned identity + case finalOwnedIdentityTransferCheckOnSourceDevice(ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, enteredSAS: ObvOwnedIdentityTransferSas, ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult, targetDeviceName: String, protocolInstanceUID: UID, deviceToKeepActive: ObvOwnedDeviceDiscoveryResult.Device?) + case userMustChooseDeviceToKeepActiveOnSourceDevice(ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, enteredSAS: ObvOwnedIdentityTransferSas, ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult, currentDeviceIdentifier: Data, targetDeviceName: String, protocolInstanceUID: UID) + case userMustEnterSASOnSourceDevice(sasExpectedOnInput: ObvOwnedIdentityTransferSas, targetDeviceName: String, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, protocolInstanceUID: UID) + case userWantsToDisplaySasOnThisTargetDevice(currentDeviceName: String, protocolInstanceUID: UID, sas: ObvOwnedIdentityTransferSas) + case userWantsToEnterTransferCode(currentDeviceName: String) + case successfulTransferWasPerfomed(transferredOwnedCryptoId: ObvCryptoId, postTransferError: Error?) + case showOwnedIdentityTransferFailed(error: Error) + + + var currentDeviceName: String? { + switch self { + case .userWantsToEnterTransferCode(currentDeviceName: let currentDeviceName), + .userWantsToDisplaySasOnThisTargetDevice(currentDeviceName: let currentDeviceName, protocolInstanceUID: _, sas: _): + return currentDeviceName + default: + return nil + } + } + + + var ownedIdentityTransferProtocolInstanceUID: UID? { + switch self { + case .initial, + .userWantsToChooseUnmanagedDetails, + .userIndicatedSheHasAnExistingProfile, + .userWantsToRestoreSomeBackup, + .userWantsToChooseNameForCurrentDevice, + .userWantsToRestoreThisEncryptedBackup, + .userWantsToRestoreThisDecryptedBackup, + .keycloakConfigAvailable, + .keycloakUserDetailsAndStuffAvailable, + .shouldRequestPermission, + .userWantsToEnterTransferCode, + .successfulTransferWasPerfomed, + .userWantsToManuallyConfigureTheIdentityProvider, + .showOwnedIdentityTransferFailed, + .finalize: + return nil + case .finalOwnedIdentityTransferCheckOnSourceDevice(_, _, _, _, _, let protocolInstanceUID, _), + .userMustChooseDeviceToKeepActiveOnSourceDevice(_, _, _, _, _, _, let protocolInstanceUID), + .userMustEnterSASOnSourceDevice(_, _, _, _, let protocolInstanceUID), + .userWantsToDisplaySasOnThisTargetDevice(_, let protocolInstanceUID, _): + return protocolInstanceUID + } + } + + + var userIsEnteringTransferCode: Bool { + switch self { + case .userWantsToEnterTransferCode: + return true + default: + return false + } + } + + + /// Returns the owned crypto id generated or transferred during the onboarding process if we are in a state occuring after the generation of the owned identity. + var ownedCryptoId: ObvCryptoId? { + switch self { + case .initial: + return nil + case .userIndicatedSheHasAnExistingProfile: + return nil + case .userWantsToChooseUnmanagedDetails: + return nil + case .userWantsToRestoreSomeBackup: + return nil + case .userWantsToRestoreThisEncryptedBackup: + return nil + case .userWantsToRestoreThisDecryptedBackup: + return nil + case .keycloakConfigAvailable: + return nil + case .keycloakUserDetailsAndStuffAvailable: + return nil + case .userWantsToChooseNameForCurrentDevice: + return nil + case .userWantsToEnterTransferCode: + return nil + case .userWantsToDisplaySasOnThisTargetDevice: + return nil + case .showOwnedIdentityTransferFailed: + return nil + case .userWantsToManuallyConfigureTheIdentityProvider: + return nil + case .finalOwnedIdentityTransferCheckOnSourceDevice(ownedCryptoId: let ownedCryptoId, ownedDetails: _, enteredSAS: _, ownedDeviceDiscoveryResult: _, targetDeviceName: _, protocolInstanceUID: _, deviceToKeepActive: _): + return ownedCryptoId + case .userMustChooseDeviceToKeepActiveOnSourceDevice(ownedCryptoId: let ownedCryptoId, ownedDetails: _, enteredSAS: _, ownedDeviceDiscoveryResult: _, currentDeviceIdentifier: _, targetDeviceName: _, protocolInstanceUID: _): + return ownedCryptoId + case .userMustEnterSASOnSourceDevice(sasExpectedOnInput: _, targetDeviceName: _, ownedCryptoId: let ownedCryptoId, ownedDetails: _, protocolInstanceUID: _): + return ownedCryptoId + case .successfulTransferWasPerfomed(transferredOwnedCryptoId: let transferredOwnedCryptoId, postTransferError: _): + return transferredOwnedCryptoId + case .shouldRequestPermission(let profileKind, _): + return profileKind.ownedCryptoId + case .finalize(let profileKind): + return profileKind.ownedCryptoId + } + } + + + var profileKind: ProfileKind? { + switch self { + case .shouldRequestPermission(profileKind: let profileKind, category: _), + .finalize(profileKind: let profileKind): + return profileKind + case .initial, + .userWantsToChooseUnmanagedDetails, + .userIndicatedSheHasAnExistingProfile, + .userWantsToManuallyConfigureTheIdentityProvider, + .userWantsToRestoreSomeBackup, + .userWantsToChooseNameForCurrentDevice, + .userWantsToRestoreThisEncryptedBackup, + .userWantsToRestoreThisDecryptedBackup, + .keycloakConfigAvailable, + .keycloakUserDetailsAndStuffAvailable, + .finalOwnedIdentityTransferCheckOnSourceDevice, + .userMustChooseDeviceToKeepActiveOnSourceDevice, + .userMustEnterSASOnSourceDevice, + .userWantsToDisplaySasOnThisTargetDevice, + .userWantsToEnterTransferCode, + .successfulTransferWasPerfomed, + .showOwnedIdentityTransferFailed: + return nil + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOwnedIdentityGenerated/NewOwnedIdentityGeneratedView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOwnedIdentityGenerated/NewOwnedIdentityGeneratedView.swift new file mode 100644 index 00000000..f5ea3835 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOwnedIdentityGenerated/NewOwnedIdentityGeneratedView.swift @@ -0,0 +1,101 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI + + +protocol NewOwnedIdentityGeneratedViewActionsProtocol: AnyObject { + func startUsingOlvidAction() async +} + + +struct NewOwnedIdentityGeneratedView: View { + + let actions: NewOwnedIdentityGeneratedViewActionsProtocol + + private func startUsingOlvidAction() { + Task { + await actions.startUsingOlvidAction() + } + } + + var body: some View { + + VStack { + + Image("badge", bundle: nil) + .resizable() + .frame(width: 60, height: 60, alignment: .center) + .padding() + Text("Congratulations!") + .font(.title) + .multilineTextAlignment(.center) + + ScrollView { + Text("OWNED_IDENTITY_GENERATED_EXPLANATION") + .frame(minWidth: .none, + maxWidth: .infinity, + minHeight: .none, + idealHeight: .none, + maxHeight: .none, + alignment: .center) + .font(.body) + .padding() + } + + // Show a "skip" button bellow the scroll view + + Spacer() + + Button(action: startUsingOlvidAction) { + Text("START_USING_OLVID") + .foregroundStyle(.white) + .padding() + .frame(maxWidth: .infinity) + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .padding() + } + + + } + +} + + +// MARK: - Previews + +struct NewOwnedIdentityGeneratedView_Previews: PreviewProvider { + + private final class ActionsForPreviews: NewOwnedIdentityGeneratedViewActionsProtocol { + func startUsingOlvidAction() async {} + } + + private static let actions = ActionsForPreviews() + + static var previews: some View { + Group { + NewOwnedIdentityGeneratedView(actions: actions) + NewOwnedIdentityGeneratedView(actions: actions) + .environment(\.locale, .init(identifier: "fr")) + } + } +} + diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOwnedIdentityGenerated/NewOwnedIdentityGeneratedViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOwnedIdentityGenerated/NewOwnedIdentityGeneratedViewController.swift new file mode 100644 index 00000000..2d78e300 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewOwnedIdentityGenerated/NewOwnedIdentityGeneratedViewController.swift @@ -0,0 +1,81 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + + +import SwiftUI +import UIKit + + +protocol NewOwnedIdentityGeneratedViewControllerDelegate: AnyObject { + func userWantsToStartUsingOlvid(controller: NewOwnedIdentityGeneratedViewController) async +} + +final class NewOwnedIdentityGeneratedViewController: UIHostingController, NewOwnedIdentityGeneratedViewActionsProtocol { + + private weak var delegate: NewOwnedIdentityGeneratedViewControllerDelegate? + + init(delegate: NewOwnedIdentityGeneratedViewControllerDelegate) { + let actions = NewOwnedIdentityGeneratedViewActions() + let view = NewOwnedIdentityGeneratedView(actions: actions) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + @objc required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = .systemBackground + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(true, animated: animated) + } + + // NewOwnedIdentityGeneratedViewActions + + func startUsingOlvidAction() async { + await delegate?.userWantsToStartUsingOlvid(controller: self) + } + +} + + +private final class NewOwnedIdentityGeneratedViewActions: NewOwnedIdentityGeneratedViewActionsProtocol { + + weak var delegate: NewOwnedIdentityGeneratedViewActionsProtocol? + + func startUsingOlvidAction() async { + await delegate?.startUsingOlvidAction() + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewUnmanagedDetailsChooser/NewUnmanagedDetailsChooserView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewUnmanagedDetailsChooser/NewUnmanagedDetailsChooserView.swift new file mode 100644 index 00000000..53df302c --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewUnmanagedDetailsChooser/NewUnmanagedDetailsChooserView.swift @@ -0,0 +1,257 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvTypes +import UI_ObvCircledInitials +import UI_ObvPhotoButton + + +protocol NewUnmanagedDetailsChooserViewModelProtocol: ObservableObject, ObvPhotoButtonViewModelProtocol { + // The circledInitialsConfiguration is part of InitialCircleViewNewModelProtocol + func updatePhoto(with photo: UIImage?) async + var showPositionAndOrganisation: Bool { get } +} + + +protocol NewUnmanagedDetailsChooserViewActions: AnyObject { + func userDidChooseUnmanagedDetails(ownedIdentityCoreDetails: ObvIdentityCoreDetails, photo: UIImage?) + func userIndicatedHerProfileIsManagedByOrganisation() + // The following two methods leverages the view controller to show + // the appropriate UI allowing the user to create her profile picture. + func userWantsToTakePhoto() async -> UIImage? + func userWantsToChoosePhoto() async -> UIImage? +} + + +struct NewUnmanagedDetailsChooserView: View, ObvPhotoButtonViewActionsProtocol { + + @ObservedObject var model: Model + let actions: NewUnmanagedDetailsChooserViewActions + + @State private var firstname = ""; + @State private var lastname = ""; + @State private var position = ""; + @State private var company = ""; + @State private var isButtonDisabled = true + @State private var isInterfaceDisabled = false + @State private var photoAlertToShow: PhotoAlertType? + + enum PhotoAlertType { + case camera + case photoLibrary + } + + private func resetIsButtonDisabled() { + isButtonDisabled = firstname.trimmingWhitespacesAndNewlines().isEmpty && lastname.trimmingWhitespacesAndNewlines().isEmpty + } + + private var coreDetails: ObvIdentityCoreDetails? { + return try? .init( + firstName: firstname, + lastName: lastname, + company: company, + position: position, + signedUserDetails: nil) + } + + + private func createProfileButtonTapped() { + guard let coreDetails else { return } + withAnimation { + isInterfaceDisabled = true + } + actions.userDidChooseUnmanagedDetails(ownedIdentityCoreDetails: coreDetails, photo: model.circledInitialsConfiguration.photo) + } + + // PhotoButtonViewActionsProtocol + + func userWantsToAddProfilPictureWithCamera() { + Task { + guard let image = await actions.userWantsToTakePhoto() else { return } + await model.updatePhoto(with: image) + } + } + + + func userWantsToAddProfilPictureWithPhotoLibrary() { + Task { + guard let image = await actions.userWantsToChoosePhoto() else { return } + await model.updatePhoto(with: image) + } + } + + + func userWantsToRemoveProfilePicture() { + Task { + await model.updatePhoto(with: nil) + } + } + + + var body: some View { + ScrollView { + VStack { + + NewOnboardingHeaderView(title: "ONBOARDING_NAME_CHOOSER_TITLE", subtitle: "LETS_CREATE_YOUR_PROFILE") + .padding(.bottom, 20) + + ObvPhotoButtonView(actions: self, model: model) + .padding(.bottom, 10) + + InternalTextField("ONBOARDING_NAME_CHOOSER_TEXTFIELD_FIRSTNAME", text: $firstname) + .onChange(of: firstname) { _ in resetIsButtonDisabled() } + .padding(.bottom, 10) + InternalTextField("ONBOARDING_NAME_CHOOSER_TEXTFIELD_LASTNAME", text: $lastname) + .onChange(of: lastname) { _ in resetIsButtonDisabled() } + .padding(.bottom, 10) + if model.showPositionAndOrganisation { + InternalTextField("ONBOARDING_NAME_CHOOSER_TEXTFIELD_POSITION", text: $position) + .padding(.bottom, 10) + InternalTextField("ONBOARDING_NAME_CHOOSER_TEXTFIELD_COMPANY", text: $company) + .padding(.bottom, 10) + } + + HStack { + Spacer() + ProgressView() + Spacer() + }.opacity(isInterfaceDisabled ? 1.0 : 0.0) + + HStack { + Text("ONBOARDING_NAME_CHOOSER_MANAGED_PROFILE_LABEL") + .foregroundStyle(.secondary) + Button("ONBOARDING_NAME_CHOOSER_MANAGED_PROFILE_BUTTON_TITLE", action: actions.userIndicatedHerProfileIsManagedByOrganisation) + } + .font(.subheadline) + .padding(.top, 10) + + InternalButton("ONBOARDING_NAME_CHOOSER_BUTTON_TITLE", action: createProfileButtonTapped) + .disabled(isButtonDisabled) + .padding(.vertical, 20) + + } + .padding(.horizontal) + .disabled(isInterfaceDisabled) + } + } +} + + +// MARK: - Button used in this view only + +private struct InternalButton: View { + + private let key: LocalizedStringKey + private let action: () -> Void + @Environment(\.isEnabled) var isEnabled + + init(_ key: LocalizedStringKey, action: @escaping () -> Void) { + self.key = key + self.action = action + } + + var body: some View { + Button(action: action) { + Text(key) + .foregroundStyle(.white) + .padding(.horizontal, 30) + .padding(.vertical, 24) + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + } + +} + + + + +// MARK: - Text field used in this view only + +private struct InternalTextField: View { + + private let key: LocalizedStringKey + private let text: Binding + + init(_ key: LocalizedStringKey, text: Binding) { + self.key = key + self.text = text + } + + var body: some View { + TextField(key, text: text) + .padding() + .background(Color("TextFieldBackgroundColor")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + } + +} + + +// MARK: - Previews + +struct NewUnmanagedDetailsChooserView_Previews: PreviewProvider { + + private final class ActionsForPreviews: NewUnmanagedDetailsChooserViewActions { + func userWantsToTakePhoto() async -> UIImage? { + return UIImage(systemIcon: .checkmarkShield) + + } + + func userWantsToChoosePhoto() async -> UIImage? { + return UIImage(systemIcon: .checkmarkSealFill) + } + + func userDidChooseUnmanagedDetails(ownedIdentityCoreDetails: ObvTypes.ObvIdentityCoreDetails, photo: UIImage?) {} + func userIndicatedHerProfileIsManagedByOrganisation() {} + } + + private static let actions = ActionsForPreviews() + + final class ModelForPreviews: NewUnmanagedDetailsChooserViewModelProtocol { + + var photoThatCannotBeRemoved: UIImage? { nil } + @Published var circledInitialsConfiguration: CircledInitialsConfiguration + let showPositionAndOrganisation: Bool + + init(showPositionAndOrganisation: Bool) { + self.showPositionAndOrganisation = showPositionAndOrganisation + self.circledInitialsConfiguration = .icon(.person) + } + + @MainActor + func updatePhoto(with photo: UIImage?) async { + if let photo { + self.circledInitialsConfiguration = .photo(photo: .image(image: photo)) + } else { + self.circledInitialsConfiguration = .icon(.person) + } + } + + } + + private static let model = ModelForPreviews(showPositionAndOrganisation: false) + + static var previews: some View { + NewUnmanagedDetailsChooserView(model: model, actions: actions) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewUnmanagedDetailsChooser/NewUnmanagedDetailsChooserViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewUnmanagedDetailsChooser/NewUnmanagedDetailsChooserViewController.swift new file mode 100644 index 00000000..efb52ef4 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewUnmanagedDetailsChooser/NewUnmanagedDetailsChooserViewController.swift @@ -0,0 +1,313 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import PhotosUI +import ObvTypes +import UI_ObvCircledInitials +import UI_ObvImageEditor + + +protocol NewUnmanagedDetailsChooserViewControllerDelegate: AnyObject { + func userWantsToCloseOnboarding(controller: NewUnmanagedDetailsChooserViewController) async + func userDidChooseUnmanagedDetails(controller: NewUnmanagedDetailsChooserViewController, ownedIdentityCoreDetails: ObvIdentityCoreDetails, photo: UIImage?) async + func userIndicatedHerProfileIsManagedByOrganisation(controller: NewUnmanagedDetailsChooserViewController) async +} + + +final class NewUnmanagedDetailsChooserViewController: UIHostingController>, NewUnmanagedDetailsChooserViewActions, PHPickerViewControllerDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate, ObvImageEditorViewControllerDelegate { + + weak var delegate: NewUnmanagedDetailsChooserViewControllerDelegate? + + private let showCloseButton: Bool + + init(model: NewUnmanagedDetailsChooserViewModel, delegate: NewUnmanagedDetailsChooserViewControllerDelegate, showCloseButton: Bool) { + self.showCloseButton = showCloseButton + let actions = Actions() + let view = NewUnmanagedDetailsChooserView(model: model, actions: actions) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + if showCloseButton { + let handler: UIActionHandler = { [weak self] _ in self?.closeAction() } + let closeButton = UIBarButtonItem(systemItem: .close, primaryAction: .init(handler: handler)) + navigationItem.rightBarButtonItem = closeButton + } + } + + + private func closeAction() { + Task { [weak self] in + guard let self else { return } + await delegate?.userWantsToCloseOnboarding(controller: self) + } + } + + + // NewUnmanagedDetailsChooserViewActions + + func userDidChooseUnmanagedDetails(ownedIdentityCoreDetails: ObvTypes.ObvIdentityCoreDetails, photo: UIImage?) { + Task(priority: .userInitiated) { + await delegate?.userDidChooseUnmanagedDetails(controller: self, ownedIdentityCoreDetails: ownedIdentityCoreDetails, photo: photo) + } + } + + func userIndicatedHerProfileIsManagedByOrganisation() { + Task { + await delegate?.userIndicatedHerProfileIsManagedByOrganisation(controller: self) + } + } + + private var continuationForPicker: CheckedContinuation? + + + @MainActor + func userWantsToTakePhoto() async -> UIImage? { + + removeAnyPreviousContinuation() + + guard UIImagePickerController.isSourceTypeAvailable(.camera) else { return nil } + + let picker = UIImagePickerController() + picker.delegate = self + picker.allowsEditing = false + picker.sourceType = .camera + picker.cameraDevice = .front + + let imageFromPicker = await withCheckedContinuation { (continuation: CheckedContinuation) in + self.continuationForPicker = continuation + present(picker, animated: true) + } + + guard let imageFromPicker else { return nil } + + let resizedImage = await resizeImageFromPicker(imageFromPicker: imageFromPicker) + + return resizedImage + + } + + + @MainActor + func userWantsToChoosePhoto() async -> UIImage? { + + removeAnyPreviousContinuation() + + guard UIImagePickerController.isSourceTypeAvailable(.photoLibrary) else { return nil } + + var configuration = PHPickerConfiguration() + configuration.selectionLimit = 1 + configuration.filter = .images + let picker = PHPickerViewController(configuration: configuration) + picker.delegate = self + + let imageFromPicker = await withCheckedContinuation { (continuation: CheckedContinuation) in + self.continuationForPicker = continuation + present(picker, animated: true) + } + + guard let imageFromPicker else { return nil } + + let resizedImage = await resizeImageFromPicker(imageFromPicker: imageFromPicker) + + return resizedImage + + } + + + private func removeAnyPreviousContinuation() { + if let continuationForPicker { + continuationForPicker.resume(returning: nil) + self.continuationForPicker = nil + } + } + + + // PHPickerViewControllerDelegate + + func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { + picker.dismiss(animated: true) + guard let continuationForPicker else { assertionFailure(); return } + self.continuationForPicker = nil + if results.count == 1, let result = results.first { + result.itemProvider.loadObject(ofClass: UIImage.self) { item, error in + guard error == nil else { + continuationForPicker.resume(returning: nil) + return + } + guard let image = item as? UIImage else { + continuationForPicker.resume(returning: nil) + return + } + continuationForPicker.resume(returning: image) + } + } else { + continuationForPicker.resume(with: .success(nil)) + } + } + + + // UIImagePickerControllerDelegate + + func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { + assert(Thread.isMainThread) + picker.dismiss(animated: true) + guard let continuationForPicker else { assertionFailure(); return } + self.continuationForPicker = nil + let image = info[.originalImage] as? UIImage + continuationForPicker.resume(returning: image) + } + + + func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { + assert(Thread.isMainThread) + picker.dismiss(animated: true) + guard let continuationForPicker else { assertionFailure(); return } + self.continuationForPicker = nil + continuationForPicker.resume(returning: nil) + } + + + // ObvImageEditorViewControllerDelegate + + func userCancelledImageEdition(_ imageEditor: ObvImageEditorViewController) async { + imageEditor.dismiss(animated: true) + guard let continuationForPicker else { assertionFailure(); return } + self.continuationForPicker = nil + continuationForPicker.resume(returning: nil) + } + + func userConfirmedImageEdition(_ imageEditor: ObvImageEditorViewController, image: UIImage) async { + imageEditor.dismiss(animated: true) + guard let continuationForPicker else { assertionFailure(); return } + self.continuationForPicker = nil + continuationForPicker.resume(returning: image) + } + + + // Resizing the photos received from the camera or the photo library + + private func resizeImageFromPicker(imageFromPicker: UIImage) async -> UIImage? { + + let imageEditor = ObvImageEditorViewController(originalImage: imageFromPicker, + showZoomButtons: Utils.targetEnvironmentIsMacCatalyst, + maxReturnedImageSize: (1024, 1024), + delegate: self) + + removeAnyPreviousContinuation() + + let resizedImage = await withCheckedContinuation { (continuation: CheckedContinuation) in + self.continuationForPicker = continuation + present(imageEditor, animated: true) + } + + return resizedImage + + } + +} + + + + +fileprivate final class Actions: NewUnmanagedDetailsChooserViewActions { + + weak var delegate: NewUnmanagedDetailsChooserViewActions? + + func userDidChooseUnmanagedDetails(ownedIdentityCoreDetails: ObvTypes.ObvIdentityCoreDetails, photo: UIImage?) { + delegate?.userDidChooseUnmanagedDetails(ownedIdentityCoreDetails: ownedIdentityCoreDetails, photo: photo) + } + + func userIndicatedHerProfileIsManagedByOrganisation() { + delegate?.userIndicatedHerProfileIsManagedByOrganisation() + } + + func userWantsToTakePhoto() async -> UIImage? { + await delegate?.userWantsToTakePhoto() + } + + func userWantsToChoosePhoto() async -> UIImage? { + await delegate?.userWantsToChoosePhoto() + } + +} + + +// MARK: - NewUnmanagedDetailsChooserViewModel + +final class NewUnmanagedDetailsChooserViewModel: NewUnmanagedDetailsChooserViewModelProtocol { + + @Published var circledInitialsConfiguration: CircledInitialsConfiguration + let showPositionAndOrganisation: Bool + var photoThatCannotBeRemoved: UIImage? { nil } + + init(showPositionAndOrganisation: Bool) { + self.showPositionAndOrganisation = showPositionAndOrganisation + self.circledInitialsConfiguration = .icon(.person) + } + + @MainActor + func updatePhoto(with photo: UIImage?) async { + if let photo { + self.circledInitialsConfiguration = .photo(photo: .image(image: photo)) + } else { + self.circledInitialsConfiguration = .icon(.person) + } + } + +} + + + +// MARK: Utils + +fileprivate struct Utils { + + static var targetEnvironmentIsMacCatalyst: Bool { + #if targetEnvironment(macCatalyst) + return true + #else + return false + #endif + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewWelcomeScreen/NewWelcomeScreenView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewWelcomeScreen/NewWelcomeScreenView.swift new file mode 100644 index 00000000..ef5831dd --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewWelcomeScreen/NewWelcomeScreenView.swift @@ -0,0 +1,130 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI + + +protocol NewWelcomeScreenViewActionsProtocol: AnyObject { + func userWantsToLeaveWelcomeScreenAndHasAnOlvidProfile() async + func userWantsToLeaveWelcomeScreenAndHasNoOlvidProfileYet() async +} + + +// MARK: - NewWelcomeScreenView + +struct NewWelcomeScreenView: View { + + let actions: NewWelcomeScreenViewActionsProtocol + + var body: some View { + VStack { + + // Vertically center the view, but not on iPhone + + if UIDevice.current.userInterfaceIdiom != .phone { + Spacer() + } + + NewOnboardingHeaderView( + title: "WELCOME_ONBOARDING_TITLE", + subtitle: "WELCOME_ONBOARDING_SUBTITLE") + .padding(.bottom, 35) + + VStack { + OnboardingSpecificPlainButton("ONBOARDING_BUTTON_TITLE_I_HAVE_AN_OLVID_PROFILE", action: { + Task { await actions.userWantsToLeaveWelcomeScreenAndHasAnOlvidProfile() } + }) + .padding(.bottom) + OnboardingSpecificPlainButton("ONBOARDING_BUTTON_TITLE_I_DO_NOT_HAVE_AN_OLVID_PROFILE", action: { + Task { await actions.userWantsToLeaveWelcomeScreenAndHasNoOlvidProfileYet() } + }) + } + .padding(.horizontal) + + Spacer() + + } + } +} + + +// MARK: - Button used in this view only + +struct OnboardingSpecificPlainButton: View { + + private let key: LocalizedStringKey + private let action: () -> Void + @Environment(\.colorScheme) var colorScheme + + init(_ key: LocalizedStringKey, action: @escaping () -> Void) { + self.key = key + self.action = action + } + + var body: some View { + Button(action: action) { + HStack { + Text(key) + .if(colorScheme == .light) { + $0.foregroundStyle(.black) + } + .multilineTextAlignment( .leading) + Spacer() + Image(systemIcon: .chevronRight) + .if(colorScheme == .light) { + $0.foregroundStyle(.black) + } + } + .padding(.horizontal) + .padding(.vertical, 24) + } + .overlay(content: { + RoundedRectangle(cornerRadius: 12) + .stroke(Color(UIColor.lightGray), lineWidth: 1) + }) + } + +} + + +// MARK: - Previews + +struct NewWelcomeScreenView_Previews: PreviewProvider { + + private final class ActionsForPreviews: NewWelcomeScreenViewActionsProtocol { + func userWantsToLeaveWelcomeScreenAndHasNoOlvidProfileYet() async {} + func userWantsToLeaveWelcomeScreenAndHasAnOlvidProfile() async {} + } + + private static let actions = ActionsForPreviews() + + static var previews: some View { + NewWelcomeScreenView(actions: actions) + NewWelcomeScreenView(actions: actions) + .environment(\.locale, .init(identifier: "fr")) + NewWelcomeScreenView(actions: actions) + .previewLayout(.sizeThatFits) + .padding(.top, 20) + .padding(.leading, 20) + .padding(.trailing, 20) + .padding(.bottom, 40) + .frame(width: 443, height: 426) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewWelcomeScreen/NewWelcomeScreenViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewWelcomeScreen/NewWelcomeScreenViewController.swift new file mode 100644 index 00000000..3149d62e --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/NewWelcomeScreen/NewWelcomeScreenViewController.swift @@ -0,0 +1,111 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI + + +protocol NewWelcomeScreenViewControllerDelegate: AnyObject { + func userWantsToCloseOnboarding(controller: NewWelcomeScreenViewController) async + func userWantsToLeaveWelcomeScreenAndHasNoOlvidProfileYet(controller: NewWelcomeScreenViewController) async + func userWantsToLeaveWelcomeScreenAndHasAnOlvidProfile(controller: NewWelcomeScreenViewController) async +} + + +final class NewWelcomeScreenViewController: UIHostingController, NewWelcomeScreenViewActionsProtocol { + + private weak var delegate: NewWelcomeScreenViewControllerDelegate? + + private let showCloseButton: Bool + + init(delegate: NewWelcomeScreenViewControllerDelegate, showCloseButton: Bool) { + self.showCloseButton = showCloseButton + let actions = NewWelcomeScreenViewActions() + let view = NewWelcomeScreenView(actions: actions) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + + override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = .systemBackground + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + if showCloseButton { + let handler: UIActionHandler = { [weak self] _ in self?.closeAction() } + let closeButton = UIBarButtonItem(systemItem: .close, primaryAction: .init(handler: handler)) + navigationItem.rightBarButtonItem = closeButton + } + } + + + private func closeAction() { + Task { [weak self] in + guard let self else { return } + await delegate?.userWantsToCloseOnboarding(controller: self) + } + } + + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + // NewWelcomeScreenViewActionsProtocol + + func userWantsToLeaveWelcomeScreenAndHasAnOlvidProfile() async { + await delegate?.userWantsToLeaveWelcomeScreenAndHasAnOlvidProfile(controller: self) + } + + + func userWantsToLeaveWelcomeScreenAndHasNoOlvidProfileYet() async { + await delegate?.userWantsToLeaveWelcomeScreenAndHasNoOlvidProfileYet(controller: self) + } + +} + + + +private final class NewWelcomeScreenViewActions: NewWelcomeScreenViewActionsProtocol { + + weak var delegate: NewWelcomeScreenViewActionsProtocol? + + func userWantsToLeaveWelcomeScreenAndHasAnOlvidProfile() async { + await delegate?.userWantsToLeaveWelcomeScreenAndHasAnOlvidProfile() + } + + + func userWantsToLeaveWelcomeScreenAndHasNoOlvidProfileYet() async { + await delegate?.userWantsToLeaveWelcomeScreenAndHasNoOlvidProfileYet() + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ObvOnboardingAssets.xcassets/Contents.json b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ObvOnboardingAssets.xcassets/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ObvOnboardingAssets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ObvOnboardingAssets.xcassets/badge.imageset/Contents.json b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ObvOnboardingAssets.xcassets/badge.imageset/Contents.json new file mode 100644 index 00000000..e9ed6778 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ObvOnboardingAssets.xcassets/badge.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "badge.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ObvOnboardingAssets.xcassets/badge.imageset/badge.pdf b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/ObvOnboardingAssets.xcassets/badge.imageset/badge.pdf new file mode 100644 index 0000000000000000000000000000000000000000..28de8fb29a05147825801034ee17e61cf6db78e2 GIT binary patch literal 6551 zcmb_h2{@E(_eYy#N#RYrn(RwvHD<{Y##Z)yNf|SPVa$w~!Pp|QCX!TASzk+=LPepn zD|uD2Rb)@e5}_#HGiZOm|My+j|C{T=Gv_(?Ip@Bg`}}^t`ypq6Gf;(rQG9ZP1Ajl^ zLx7+lnwuA&h6cohMD<{Kg5ZF~3SvN}ut*Gu0R_(@;Yb7;kpwXVAs|+Gst3s#3W5Pn zD?ct;T6|0vgM|0tV|SlF6<}l2Ar|v@Wk68YBj^+HpcF7Pd zE*|aS=QdibBE23p&yQR(e{$KTii@l9VC^u)47;!PqqNxrk=*!q2&eBdvZ5%8a1uHcbnjBE)I_mLdm$%lD;&lChGm zmZoNEQ-7<#l1A+kda`KRVS8iT&?H8~5?A2)psWIIc_)x^H9WmKhZ(q37`Fr+Gj}@Y zovipFgA4h9*XU&?&)|qwc=l%QErAv*eJ+j+!dH#CI{ z!F9l${Csg)M#7TTg)-YQnWs~n}A4vA2GjE*l1U^p*kqa2xApf3UV=mFgA(nTQ@?C*cn`)b)*ZL0|O$}7C1X|TSAv4M>N$ggaaIhgN^Lgv()_~T5 z*Qjm$(b13ZJK!~7eP`A-V@+VgTzR5QDMYwIR>wm;mmj{o?ifGj>!?BIn`m$S|#kJRRNuMr@bI{Q+tI(B{tCDFtK4T2dH9B#; zG=+79b%B*M6K^8#o$_asFp)b@p*%SxdGXAmU4%4VwomTpxyN9b;*{HN;}2ZygU>!-o^bRTDySvZ_jJsI>s?g3gdw;v174q zu?Nx6lh-tTSbtx3YO7gmwCBWWMToCcwPP{C_~D8Ba!f`%BatClu3K(bzMC;IH2R+U zKJNXUq1}T!lrlwTM0rHuqJql%tD7 zSDfy4SKLkviVeCDbm^0fK*V}I8M_>l9A|=owe3@TgnfzQbd}hFqgkRwH_R{Ddz(2M z?luWd_m7#)O+1%)+APtmq(#rA_-Z8eEcN`jk7k0D9>j7YyvH=up;uS?z}>w|(cBbQ z@;xNl6?#pivMor7Mt=DOuXiFV1s{zs=_?R^)Yzc-cR|hTsOx#YN2aI)2L{aL#pI3U zKgbK2kWB2)45#_0eeuep)x$5r@A#Oh2cUXAd&plHY4_nR#gPxkoh){RsNQsBIfs;% z77se#bTD%yJLx;yItw5Q_`?if1M$f2?yjJm59GH2>ZjCs(zmML?cCli->u$d2JUcd zaXfH0q}l9cBH7*>>83VOyFYXI9;<-K?l0(T^rz6z(VsB)(y_xc)m^n|6EB7} zM%)I9dxk1h`rq_9z3!fn9}w%e8=dWRd8ye_*%ew}Q%yME5NKYSe`|#LHy%QQoU+g9 zXy&^l`qqAiol+55p;DPK|9W9E^mYioSF|cPWXIJurzYpFz72~Ni?j2Z?>nZE@eMj@t7UHowA zYK+PeX3cJyYrUMiUfNB#XiAZV9XDf24LnTS&tCEtZI{2Ixm8ZQE&(fkEK%?% zHU7)J8A3bEgHYjik>KtCz8rdagktC~9vn|-P#Q9+?XEjjZ&u$`_bx6yJ|Gs7lremp zu2K%!sM#YL{d*)K6%(CvMr)5SuMS^l8gwU z9n!;|tdg&^-Xr?ij(Eqqjw<-)i~X0P&R^fX zuy5Bs!SU*`{&(BE-(6eqEM$?*Mmwc?HQ$kDimQt|f^%jMs2;RCP?B`byo{DxouAFT zJN(6ELEEO@zNe6J)$5Ag#U4w|fbdY)$;^TKr?wBB%|1I9Qx-Gc9@KWTgWQq2qh7KF zy;!PMS~cfg-*HTUPe5N_N77_sf~0^(_fyYjot?RDHc$9bo6_?W^`-87JoXlKUNu_v z#+B0c?15Khlk+9CoV$Nw`$Dr9WCw^31DtwoZ&`NpJ&E#+O)g(LZpT9<8a6W<)7`#!6CuF0+W`E&)u zrF`trN4FyDiEm;JFTntP|X{I5!1KnE^8ic zXc5HnA1E6Ndi&m|=y}J)ExHEF;k2AgZV>SFK#`S;+~S9|018N<@}kl z82D!T<7h<2Utw1dWi9mIIVc%6n(l~1d^xei=Xiy@V0SENjeV{S8Qw4!6Q2~c0KS`X&*H!KN)nzpij^=|WQ#m@<1(3b4 z-(@e51nLY0!_aDgfCeKl>VOyqW7MH&;0BD784Oof2j&4rq0w-TL|#p){ypWY+(vS0 z`UkoFqpWtZF>UElM}g*nf@QdX0KgYV}un=#G>#rM6;mao00; z)PzN)K6kJxoIB9FDfvdz0AH|Q!$Iqiv{#0=J}FlYUnrW_k{F+xz9oYS@EaU=(weF~ zy40>TSMflQ`Mg8LM8vW0*110`9youz^JSAp*cIe)R!?P1)$Sm@sE*)|lOL~iOwfj` zKTb|Diw;)(ad9eS!K#f{&f`yw?br1Z9mMw)rGot$s%of*qU!B6I-sOA0w==kU5c$gq09PrRLD&w4m3QGRc1@PIgvk|m-<+2q*Ew~`4~ zcH-h*Il7thYRc*A>G)0yucK>K+D^85N4Sr1-5mO0C>*{y{{i!+@FTA1z;{PrHN{@}IG;iPSBuA)qPMVaj(Vm(i8uVtonaxc{dr$=i? zxbqZZl`~_E42%4l?E^;O>4Hqp1Q#>BXNIyEMxb+*oPkH*<;sZu!%$19RKIRd?BM0>mMCtc5!@-Neq zfT|r9vJu^Wb<>v!(|~zp2~FjZuszkA&%Jxvx-Iv@`fF=Tg?Q?WbJ)GSw$OCKVztiU zM(BK#m9J#qYs;NN^*Jfjjv2+mGuY~iyeA4;2L|`vP8EIfNL#4)5}G-^XI(|sWU#O2 z9e0cKS8^_9MJw9pR4Kf;mlK&R(5zHPhS58am+HnAo;_Qe=B<8gZ~wv~#&{r9TH%XH zHAyCUW4WHhImBdrXkEjFggyoS(Z6*i1^K&`Hp|esrb}aCxmtp}^}NF8_8m`%FuVK2 zH7|6HyroljdsPy6CvSslkCN!PrDV|M_PDI%#yzIdADOk#D+*fchxWD}-i1_owVem6 zt%-xJ)r?i(!@rOy^Q9gi^WL4Vwk=@$mCob1G+zmVT$Jnl8_zVW(%QZm8IBrC?fd zRA#ox5v8%Yjlg{EPZ$R@Rx#l_+5m@R z9LXK;M_~bg;|wv@)6>N>NkkCm@N5NiH)Iv206%L_D2Rh!0L*ZZ$+lXI??@WFaQE^Ks6vm92O3R zL!mG@3Z{m@s6kbrFa;=70q`@W5&x5m1%pQPBLMjofj0>hvYUzp&KQIN!@zJlOqC2& zWo`{}fcW4E=GL5|zR#93{ng2GVD|g+K+G*b%d>{i=&Kjz7N#KB_n~UP47I>}kRTR# z28qgAehpy-U_KR~0TvU)L0Bt@6^TjnV-QG8(DD4 zhexqo9VZ1722>58Qv1}i@4-g&1_MuRjShl7#9$-!q7P#h^A<`?3fGdOOjj z{$U-yuJnJsLjU*r{IKFHbHFa+0EyF;TAZ#`g#zn=vVo~#5g6=p>tdlR760h@t=`oj zKwp#H1OJ;KKY0EcWEGKYXf%q}zXPQoF-d88Ay>+xF_wq@8uDw4{8yE&w$rljw?O~T z2Liz3KR*!Q2C!ifzwB1Piv0?JTK|ZDKfoU_|DXK-hcyEozuLw>bs3P3{m)giv8x25 zwT!gOm3_DUuPP%FzSTwdV^EgCg-C#qC?rk~GJ(=yzbq(`fMs!5>w6n5H!r8jbSSK! zt*b3YA#>mcO95U*Yf7_Ki7U)3t@SJIt?Ud6`R5=j)?Z?4Kz^^|-)^jx8vv-T1O_(w zS2)(<`wr@W;MbI9a3CAF`uWVW%n=+Wgdt(@Z(Q;#$LRsgL7{m7GzSpTD$9Ls7Z7Y& zdVFUhHiP8O2XGpa4`8*`4@ez}L?A)#pjDe10tJvG=L4dCwZTzPAkxn^Ko|hZ=x3W6 z90jPFpKS;<5+Kc=ZE%blK!Cs4Q1IV!z|rvE;;F%5z=`bVu?RE@P-MT@FzDZG>VO3L z)lW?g{#!hCsM-%>ftDasNDR(DKdi|?Bw+ao%NIDnfBQ0f>Q2C0j~=%Td#vj;~!08GbVEk7`I7!=MYC#P?2!1piC CkQQbD literal 0 HcmV?d00001 diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/OnboardingFlowViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/OnboardingFlowViewController.swift deleted file mode 100644 index b4533f46..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/OnboardingFlowViewController.swift +++ /dev/null @@ -1,839 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import UIKit -import os.log -import ObvEngine -import ObvTypes -import AppAuth -import OlvidUtils -import AVFoundation -import ObvUICoreData - - -final class OnboardingFlowViewController: UIViewController, OlvidURLHandler, ObvErrorMaker, WelcomeScreenHostingControllerDelegate, DisplayNameChooserViewControllerDelegate, OwnedIdentityGeneratedHostingControllerDelegate, IdentityProviderValidationHostingViewControllerDelegate, ScannerHostingViewDelegate, IdentityProviderManualConfigurationHostingViewDelegate, BackupRestoreViewHostingControllerDelegate, BackupKeyTesterDelegate, BackupRestoringWaitingScreenViewControllerDelegate { - - private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: OnboardingFlowViewController.self)) - static let errorDomain = "OnboardingFlowViewController" - - private let obvEngine: ObvEngine - - private var flowNavigationController: UINavigationController? - private var internalState = OnboardingState.initial(externalOlvidURL: nil) - - private weak var appBackupDelegate: AppBackupDelegate? - - weak var delegate: OnboardingFlowViewControllerDelegate? - - private var ownedCryptoIdGeneratedOrRestoredDuringOnboarding: ObvCryptoId? - - // MARK: - Init and deinit - - init(obvEngine: ObvEngine, appBackupDelegate: AppBackupDelegate?) { - self.obvEngine = obvEngine - self.appBackupDelegate = appBackupDelegate - super.init(nibName: nil, bundle: nil) - } - - required init?(coder aDecoder: NSCoder) { fatalError("die") } - - deinit { - debugPrint("OnboardingFlowViewController deinit") - } - -} - - -// MARK: - View controller lifecycle - -extension OnboardingFlowViewController { - - override func viewDidLoad() { - super.viewDidLoad() - showFirstOnboardingScreen() - } - - - override func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) - Task { - await showNextOnboardingScreen(animated: true) - } - } - - /// Sets the appropriate internal state and show the most appropriate first view controller - private func showFirstOnboardingScreen() { - - var noOwnedIdentityExist = true - do { - let ownedIdentities = try PersistedObvOwnedIdentity.getAllNonHiddenOwnedIdentities(within: ObvStack.shared.viewContext) - noOwnedIdentityExist = ownedIdentities.isEmpty - } catch { - assertionFailure(error.localizedDescription) - // Continue anyway - } - - // If we find a keycloak configuration thanks to an MDM, we change the inital state. - // We do *not* use the usual way to handle an Olvid URL so as to distinguish between a keycloak configuration obtained through an MDM, and one that was scanned. - - if noOwnedIdentityExist, - ObvMessengerSettings.MDM.isConfiguredFromMDM, - let mdmConfigurationURI = ObvMessengerSettings.MDM.Configuration.uri, - let olvidURL = OlvidURL(urlRepresentation: mdmConfigurationURI) { - switch olvidURL.category { - case .configuration(serverAndAPIKey: _, betaConfiguration: _, keycloakConfig: let keycloakConfig): - if let keycloakConfig { - let currentExternalOlvidURL = internalState.externalOlvidURL - internalState = .keycloakConfigAvailable(keycloakConfig: keycloakConfig, isConfiguredFromMDM: true, externalOlvidURL: currentExternalOlvidURL) - } - default: - break - } - } else if !noOwnedIdentityExist { - internalState = .userWantsToChooseUnmanagedDetails(userIsCreatingHerFirstIdentity: false, externalOlvidURL: nil) - } - - // Set an appropriate first view controller to show during onboarding - - switch internalState { - case .keycloakConfigAvailable(let keycloakConfig, let isConfiguredFromMDM, _): - let identityProviderValidationHostingViewController = IdentityProviderValidationHostingViewController( - keycloakConfig: keycloakConfig, - isConfiguredFromMDM: isConfiguredFromMDM, - delegate: self) - flowNavigationController = ObvNavigationController(rootViewController: identityProviderValidationHostingViewController) - flowNavigationController!.setNavigationBarHidden(false, animated: false) - flowNavigationController!.navigationBar.prefersLargeTitles = true - displayContentController(content: flowNavigationController!) - case .userWantsToChooseUnmanagedDetails(let userIsCreatingHerFirstIdentity, _): - if !userIsCreatingHerFirstIdentity { - let displayNameChooserVC = DisplayNameChooserViewController(delegate: self) - flowNavigationController = ObvNavigationController(rootViewController: displayNameChooserVC) - displayContentController(content: flowNavigationController!) - } else { - let welcomeScreenVC = WelcomeScreenHostingController(delegate: self) - flowNavigationController = ObvNavigationController(rootViewController: welcomeScreenVC) - flowNavigationController!.setNavigationBarHidden(false, animated: false) - flowNavigationController!.navigationBar.prefersLargeTitles = true - displayContentController(content: flowNavigationController!) - } - default: - let welcomeScreenVC = WelcomeScreenHostingController(delegate: self) - flowNavigationController = ObvNavigationController(rootViewController: welcomeScreenVC) - flowNavigationController!.setNavigationBarHidden(false, animated: false) - flowNavigationController!.navigationBar.prefersLargeTitles = true - displayContentController(content: flowNavigationController!) - } - - } - - - @MainActor - private func showNextOnboardingScreen(animated: Bool) async { - - if flowNavigationController == nil { - assertionFailure() - switch internalState { - case .userWantsToChooseUnmanagedDetails(userIsCreatingHerFirstIdentity: let userIsCreatingHerFirstIdentity, externalOlvidURL: _): - if !userIsCreatingHerFirstIdentity { - let displayNameChooserVC = DisplayNameChooserViewController(delegate: self) - flowNavigationController = ObvNavigationController(rootViewController: displayNameChooserVC) - displayContentController(content: flowNavigationController!) - } - default: - break - } - if flowNavigationController == nil { - let welcomeScreenVC = WelcomeScreenHostingController(delegate: self) - flowNavigationController = ObvNavigationController(rootViewController: welcomeScreenVC) - flowNavigationController!.setNavigationBarHidden(false, animated: false) - flowNavigationController!.navigationBar.prefersLargeTitles = true - displayContentController(content: flowNavigationController!) - } - } - - guard let flowNavigationController else { assertionFailure(); return } - - // We defer the internal state's external olvid URL transmission to the view controllers of the navigation until they are all set. - - defer { - for vc in flowNavigationController.viewControllers.compactMap({ $0 as? CanShowInformationAboutExternalOlvidURL }) { - vc.showInformationAboutOlvidURL(internalState.externalOlvidURL) - } - } - - // Setup the navigation view controllers given the current internal state - - switch internalState { - case .initial: - if let welcomeScreenVC = flowNavigationController.viewControllers.first(where: { $0 is WelcomeScreenHostingController }) { - flowNavigationController.popToViewController(welcomeScreenVC, animated: animated) - return - } else { - let welcomeScreenVC = WelcomeScreenHostingController(delegate: self) - flowNavigationController.setViewControllers([welcomeScreenVC], animated: animated) - return - } - case .userWantsToRestoreBackup: - let backupRestoreViewVC = BackupRestoreViewHostingController(delegate: self) - if flowNavigationController.viewControllers.count == 1 && (flowNavigationController.viewControllers.first is WelcomeScreenHostingController || flowNavigationController.viewControllers.first is IdentityProviderValidationHostingViewController) { - flowNavigationController.pushViewController(backupRestoreViewVC, animated: animated) - return - } else { - assertionFailure() - let welcomeScreenVC = WelcomeScreenHostingController(delegate: self) - flowNavigationController.setViewControllers([welcomeScreenVC, backupRestoreViewVC], animated: animated) - return - } - case .userSelectedBackupFileToRestore(backupFileURL: let backupFileURL, _): - let backupKeyVerifierViewHostingController = BackupKeyVerifierViewHostingController(obvEngine: obvEngine, backupFileURL: backupFileURL, dismissAction: {}, dismissThenGenerateNewBackupKeyAction: {}) - backupKeyVerifierViewHostingController.delegate = self - if flowNavigationController.viewControllers.last is BackupRestoreViewHostingController { - flowNavigationController.pushViewController(backupKeyVerifierViewHostingController, animated: animated) - return - } else { - assertionFailure() - let welcomeScreenVC = WelcomeScreenHostingController(delegate: self) - flowNavigationController.setViewControllers([welcomeScreenVC, backupKeyVerifierViewHostingController], animated: animated) - return - } - case .userWantsToRestoreBackupNow(backupRequestUuid: let backupRequestUuid, _): - let backupRestoringWaitingScreenVC = BackupRestoringWaitingScreenHostingController(backupRequestUuid: backupRequestUuid, obvEngine: obvEngine) - backupRestoringWaitingScreenVC.delegate = self - assert(appBackupDelegate != nil) - backupRestoringWaitingScreenVC.appBackupDelegate = appBackupDelegate - if flowNavigationController.viewControllers.last is BackupKeyVerifierViewHostingController { - flowNavigationController.pushViewController(backupRestoringWaitingScreenVC, animated: animated) - return - } else { - assertionFailure() - let welcomeScreenVC = WelcomeScreenHostingController(delegate: self) - flowNavigationController.setViewControllers([welcomeScreenVC, backupRestoringWaitingScreenVC], animated: animated) - return - } - case .userWantsToManuallyConfigureTheIdentityProvider: - let identityProviderManualConfigurationHostingView = IdentityProviderManualConfigurationHostingView(delegate: self) - if flowNavigationController.viewControllers.count == 1 && flowNavigationController.viewControllers.first is WelcomeScreenHostingController { - flowNavigationController.pushViewController(identityProviderManualConfigurationHostingView, animated: animated) - return - } else { - assertionFailure() - let welcomeScreenVC = WelcomeScreenHostingController(delegate: self) - flowNavigationController.setViewControllers([welcomeScreenVC, identityProviderManualConfigurationHostingView], animated: animated) - return - } - case .userWantsToChooseUnmanagedDetails(userIsCreatingHerFirstIdentity: let userIsCreatingHerFirstIdentity, _): - if userIsCreatingHerFirstIdentity { - if flowNavigationController.viewControllers.count == 1 && flowNavigationController.viewControllers.first is WelcomeScreenHostingController { - let displayNameChooserVC = DisplayNameChooserViewController(delegate: self) - flowNavigationController.pushViewController(displayNameChooserVC, animated: animated) - return - } else if flowNavigationController.viewControllers.last is DisplayNameChooserViewController { - // Nothing to do - return - } else { - assertionFailure() - let welcomeScreenVC = WelcomeScreenHostingController(delegate: self) - let displayNameChooserVC = DisplayNameChooserViewController(delegate: self) - flowNavigationController.setViewControllers([welcomeScreenVC, displayNameChooserVC], animated: animated) - return - } - } else { - if flowNavigationController.viewControllers.last is DisplayNameChooserViewController { - // Nothing to do - return - } else { - assertionFailure() - let displayNameChooserVC = DisplayNameChooserViewController(delegate: self) - flowNavigationController.setViewControllers([displayNameChooserVC], animated: animated) - return - } - } - case .keycloakConfigAvailable(keycloakConfig: let keycloakConfig, isConfiguredFromMDM: let isConfiguredFromMDM, _): - let identityProviderValidationHostingViewController = IdentityProviderValidationHostingViewController( - keycloakConfig: keycloakConfig, - isConfiguredFromMDM: isConfiguredFromMDM, - delegate: self) - if isConfiguredFromMDM { - if flowNavigationController.viewControllers.last is IdentityProviderValidationHostingViewController { - // Nothing left to do - return - } else { - assertionFailure() - flowNavigationController.setViewControllers([identityProviderValidationHostingViewController], animated: animated) - flowNavigationController.setNavigationBarHidden(false, animated: false) - flowNavigationController.navigationBar.prefersLargeTitles = true - return - } - } else { - if flowNavigationController.viewControllers.last is WelcomeScreenHostingController || flowNavigationController.viewControllers.last is IdentityProviderManualConfigurationHostingView { - flowNavigationController.pushViewController(identityProviderValidationHostingViewController, animated: animated) - return - } else { - assertionFailure() - let welcomeScreenVC = WelcomeScreenHostingController(delegate: self) - flowNavigationController.setViewControllers([welcomeScreenVC, identityProviderValidationHostingViewController], animated: animated) - return - } - } - case .keycloakUserDetailsAndStuffAvailable(let keycloakUserDetailsAndStuff, let keycloakServerRevocationsAndStuff, let keycloakState, _): - if flowNavigationController.viewControllers.last is IdentityProviderValidationHostingViewController { - let displayNameChooserVC = DisplayNameChooserViewController(keycloakDetails: (keycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff), keycloakState: keycloakState, delegate: self) - flowNavigationController.pushViewController(displayNameChooserVC, animated: animated) - return - } else { - assertionFailure() - let welcomeScreenVC = WelcomeScreenHostingController(delegate: self) - let displayNameChooserVC = DisplayNameChooserViewController(keycloakDetails: (keycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff), keycloakState: keycloakState, delegate: self) - flowNavigationController.setViewControllers([welcomeScreenVC, displayNameChooserVC], animated: animated) - return - } - case .shouldRequestPermission(category: let category, _): - let vc = AutorisationRequesterHostingController(autorisationCategory: category, delegate: self) - flowNavigationController.pushViewController(vc, animated: true) - vc.navigationItem.setHidesBackButton(true, animated: false) - vc.navigationController?.setNavigationBarHidden(true, animated: false) - case .finalize: - if flowNavigationController.viewControllers.last is OwnedIdentityGeneratedHostingController { - // Nothing to do - } else { - let vc = OwnedIdentityGeneratedHostingController(delegate: self) - vc.navigationItem.setHidesBackButton(true, animated: false) - vc.navigationController?.setNavigationBarHidden(true, animated: false) - flowNavigationController.pushViewController(vc, animated: true) - } - } - - } - -} - -// MARK: - DisplayNameChooserViewControllerDelegate - -extension OnboardingFlowViewController { - - @MainActor - func userDidSetUnmanagedDetails(ownedIdentityCoreDetails: ObvIdentityCoreDetails, photoURL: URL?) async { - guard let serverAndAPIKey = ObvMessengerConstants.defaultServerAndAPIKey else { assertionFailure(); return } - let currentDetails = ObvIdentityDetails(coreDetails: ownedIdentityCoreDetails, photoURL: photoURL) - do { - ownedCryptoIdGeneratedOrRestoredDuringOnboarding = try await obvEngine.generateOwnedIdentity( - withApiKey: serverAndAPIKey.apiKey, - onServerURL: serverAndAPIKey.server, - with: currentDetails, - keycloakState: nil) - } catch { - os_log("Could not generate owned identity: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - do { - try await requestSyncAppDatabasesWithEngine() - } catch { - os_log("Could not sync engine and app: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - - await requestNextAutorisationPermissionAfterCreatingTheOwnedIdentity() - - } - - - @MainActor - private func requestNextAutorisationPermissionAfterCreatingTheOwnedIdentity() async { - let currentExternalOlvidURL = internalState.externalOlvidURL - if await requestingAutorisationIsNecessary(for: .localNotifications) { - internalState = .shouldRequestPermission(category: .localNotifications, externalOlvidURL: currentExternalOlvidURL) - } else if await requestingAutorisationIsNecessary(for: .recordPermission) { - internalState = .shouldRequestPermission(category: .recordPermission, externalOlvidURL: currentExternalOlvidURL) - } else { - internalState = .finalize(externalOlvidURL: currentExternalOlvidURL) - } - await showNextOnboardingScreen(animated: true) - } - - - @MainActor - func userDidAcceptedKeycloakDetails(keycloakDetails: (keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff), keycloakState: ObvKeycloakState, photoURL: URL?) async { - - showHUD(type: .spinner) - defer { hideHUD() } - - // We are dealing with an identity server. If there was no previous olvid identity for this user, then we can safely generate a new one. If there was a previous identity, we must make sure that the server allows revocation before trying to create a new identity. - - guard keycloakDetails.keycloakUserDetailsAndStuff.identity == nil || keycloakDetails.keycloakServerRevocationsAndStuff.revocationAllowed else { - // If this happens, there is an UI bug. - assertionFailure() - return - } - - // The following call discards the signed details. This is intentional. The reason is that these signed details, if they exist, contain an old identity that will be revoked. We do not want to store this identity. - - guard let coreDetails = try? keycloakDetails.keycloakUserDetailsAndStuff.signedUserDetails.userDetails.getCoreDetails() else { - assertionFailure() - return - } - - // We use the hardcoded API here, it will be updated during the keycloak registration - - let currentDetails = ObvIdentityDetails(coreDetails: coreDetails, photoURL: photoURL) - guard let apiKey = ObvMessengerConstants.hardcodedAPIKey else { hideHUD(); assertionFailure(); return } - - // Request the generation of the owned identity and sync it with the app - - let ownedCryptoIdentity: ObvCryptoId - do { - ownedCryptoIdentity = try await obvEngine.generateOwnedIdentity(withApiKey: apiKey, - onServerURL: keycloakDetails.keycloakUserDetailsAndStuff.server, - with: currentDetails, - keycloakState: keycloakState) - ownedCryptoIdGeneratedOrRestoredDuringOnboarding = ownedCryptoIdentity - } catch { - os_log("Could not generate owned identity: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - - do { - try await requestSyncAppDatabasesWithEngine() - } catch { - os_log("Could not sync engine and app: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - - // The owned identity is created, we register it with the keycloak manager - - await KeycloakManagerSingleton.shared.registerKeycloakManagedOwnedIdentity(ownedCryptoId: ownedCryptoIdentity, firstKeycloakBinding: true) - do { - try await KeycloakManagerSingleton.shared.uploadOwnIdentity(ownedCryptoId: ownedCryptoIdentity) - } catch { - let alert = UIAlertController(title: Strings.dialogTitleIdentityProviderError, - message: Strings.dialogMessageFailedToUploadIdentityToKeycloak, - preferredStyle: .alert) - alert.addAction(UIAlertAction(title: CommonString.Word.Ok, style: .default)) - present(alert, animated: true) - return - } - - // We are done, we can proceed with the next screen - - await requestNextAutorisationPermissionAfterCreatingTheOwnedIdentity() - - } - - - private func requestSyncAppDatabasesWithEngine() async throws { - showHUD(type: .spinner) - try await withCheckedThrowingContinuation { [weak self] (continuation: CheckedContinuation) in - ObvMessengerInternalNotification.requestSyncAppDatabasesWithEngine { result in - DispatchQueue.main.async { - self?.hideHUD() - } - switch result { - case .failure(let error): - continuation.resume(throwing: error) - case .success: - continuation.resume() - } - }.postOnDispatchQueue() - } - } - -} - - -// MARK: - OwnedIdentityGeneratedHostingControllerDelegate - -extension OnboardingFlowViewController { - - func userWantsToStartUsingOlvid() async { - assert(ownedCryptoIdGeneratedOrRestoredDuringOnboarding != nil) - await delegate?.onboardingIsFinished(ownedCryptoIdGeneratedDuringOnboarding: ownedCryptoIdGeneratedOrRestoredDuringOnboarding, - olvidURLScannedDuringOnboarding: internalState.externalOlvidURL) - } - -} - - -// MARK: - AutorisationRequesterHostingControllerDelegate - -extension OnboardingFlowViewController: AutorisationRequesterHostingControllerDelegate { - - @MainActor - func requestAutorisation(now: Bool, for autorisationCategory: AutorisationRequesterHostingController.AutorisationCategory) async { - assert(Thread.isMainThread) - let currentExternalOlvidURL = internalState.externalOlvidURL - switch autorisationCategory { - case .localNotifications: - if now { - let center = UNUserNotificationCenter.current() - do { - try await center.requestAuthorization(options: [.alert, .sound, .badge]) - } catch { - os_log("Could not request authorization for notifications: %@", log: Self.log, type: .error, error.localizedDescription) - } - } - if await requestingAutorisationIsNecessary(for: .recordPermission) { - internalState = .shouldRequestPermission(category: .recordPermission, externalOlvidURL: currentExternalOlvidURL) - } else { - internalState = .finalize(externalOlvidURL: currentExternalOlvidURL) - } - case .recordPermission: - if now { - let granted = await AVAudioSession.sharedInstance().requestRecordPermission() - os_log("User granted access to audio: %@", log: Self.log, type: .error, String(describing: granted)) - } - internalState = .finalize(externalOlvidURL: currentExternalOlvidURL) - } - await showNextOnboardingScreen(animated: true) - } - - - @MainActor - private func requestingAutorisationIsNecessary(for autorisationCategory: AutorisationRequesterHostingController.AutorisationCategory) async -> Bool { - switch autorisationCategory { - case .localNotifications: - let center = UNUserNotificationCenter.current() - let authorizationStatus = await center.notificationSettings().authorizationStatus - switch authorizationStatus { - case .notDetermined, .provisional, .ephemeral: - return true - case .denied, .authorized: - return false - @unknown default: - assertionFailure() - return true - } - case .recordPermission: - let recordPermission = AVAudioSession.sharedInstance().recordPermission - switch recordPermission { - case .undetermined: - return true - case .denied, .granted: - return false - @unknown default: - return true - } - } - } - -} - - -// MARK: - WelcomeScreenHostingControllerDelegate - -extension OnboardingFlowViewController { - - /// Call from the first view controller (`WelcomeScreenHostingController`) when the user chooses to scan a QR code. - func userWantsWantsToScanQRCode() { - assert(Thread.isMainThread) - let vc = ScannerHostingView(buttonType: .back, delegate: self) - let nav = UINavigationController(rootViewController: vc) - // Configure the ScannerHostingView properly for the navigation controller - vc.title = NSLocalizedString("CONFIGURATION_SCAN", comment: "") - if #available(iOS 14, *) { - let ellipsisButton = getConfiguredEllipsisCircleRightBarButtonItem() - vc.navigationItem.rightBarButtonItem = ellipsisButton - } else { - let ellipsisButton = getConfiguredEllipsisCircleRightBarButtonItem(selector: #selector(ellipsisButtonTappedOnScannerHostingView)) - vc.navigationItem.rightBarButtonItem = ellipsisButton - } - flowNavigationController?.present(nav, animated: true) - } - - - func userWantsToClearExternalOlvidURL() async { - internalState = internalState.addingExternalOlvidURL(nil) - await showNextOnboardingScreen(animated: true) - } - - - @available(iOS, introduced: 14.0) - private func getConfiguredEllipsisCircleRightBarButtonItem() -> UIBarButtonItem { - let menuElements: [UIMenuElement] = [ - UIAction(title: Strings.pasteConfigurationLink, - image: UIImage(systemIcon: .docOnClipboardFill)) { [weak self] _ in - self?.presentedViewController?.dismiss(animated: true) { - self?.userWantsToPasteConfigurationURL() - } - }, - UIAction(title: Strings.manualConfiguration, - image: UIImage(systemIcon: .serverRack)) { [weak self] _ in - self?.presentedViewController?.dismiss(animated: true) { - Task { await self?.userChooseToUseManualIdentityProvider() } - } - }, - ] - let menu = UIMenu(title: "", children: menuElements) - let symbolConfiguration = UIImage.SymbolConfiguration(pointSize: 20.0, weight: .bold) - let ellipsisImage = UIImage(systemIcon: .ellipsisCircle, withConfiguration: symbolConfiguration) - let ellipsisButton = UIBarButtonItem( - title: "Menu", - image: ellipsisImage, - primaryAction: nil, - menu: menu) - return ellipsisButton - } - - - @available(iOS, introduced: 13.0, deprecated: 14.0, message: "Used because iOS 13 does not support UIMenu on UIBarButtonItem") - func getConfiguredEllipsisCircleRightBarButtonItem(selector: Selector) -> UIBarButtonItem { - let symbolConfiguration = UIImage.SymbolConfiguration(pointSize: 20.0, weight: .bold) - let ellipsisImage = UIImage(systemIcon: .ellipsisCircle, withConfiguration: symbolConfiguration) - let ellipsisButton = UIBarButtonItem(image: ellipsisImage, style: UIBarButtonItem.Style.plain, target: self, action: selector) - return ellipsisButton - } - - - @available(iOS, introduced: 13.0, deprecated: 14.0, message: "Used because iOS 13 does not support UIMenu on UIBarButtonItem") - @objc private func ellipsisButtonTappedOnScannerHostingView() { - assert(Thread.isMainThread) - let alert = UIAlertController(title: CommonString.Word.Advanced, message: nil, preferredStyle: UIDevice.current.actionSheetIfPhoneAndAlertOtherwise) - alert.addAction(UIAlertAction(title: Strings.pasteLink, style: .default, handler: { [weak self] _ in self?.userWantsToPasteConfigurationURL() })) - alert.addAction(UIAlertAction(title: Strings.manualConfiguration, style: .default, handler: { [weak self] _ in Task { await self?.userChooseToUseManualIdentityProvider() } })) - alert.addAction(UIAlertAction(title: CommonString.Word.Cancel, style: .cancel)) - present(alert, animated: true) - } - - - private func userWantsToPasteConfigurationURL() { - guard let pastedString = UIPasteboard.general.string, - let url = URL(string: pastedString), - let olvidURL = OlvidURL(urlRepresentation: url) else { - ObvMessengerInternalNotification.pastedStringIsNotValidOlvidURL - .postOnDispatchQueue() - return - } - Task { await NewAppStateManager.shared.handleOlvidURL(olvidURL) } - } - - - @MainActor - func userWantsToContinueAsNewUser() async { - var userIsCreatingHerFirstIdentity = true - do { - let ownedIdentities = try PersistedObvOwnedIdentity.getAllNonHiddenOwnedIdentities(within: ObvStack.shared.viewContext) - userIsCreatingHerFirstIdentity = ownedIdentities.isEmpty - } catch { - assertionFailure(error.localizedDescription) - // Continue anyway - } - let currentExternalOlvidURL = internalState.externalOlvidURL - self.internalState = .userWantsToChooseUnmanagedDetails(userIsCreatingHerFirstIdentity: userIsCreatingHerFirstIdentity, externalOlvidURL: currentExternalOlvidURL) - await showNextOnboardingScreen(animated: true) - } - - - @MainActor - func userWantsToRestoreBackup() async { - let currentExternalOlvidURL = internalState.externalOlvidURL - internalState = .userWantsToRestoreBackup(externalOlvidURL: currentExternalOlvidURL) - await showNextOnboardingScreen(animated: true) - } - - - @MainActor - private func userChooseToUseManualIdentityProvider() async { - let currentExternalOlvidURL = internalState.externalOlvidURL - internalState = .userWantsToManuallyConfigureTheIdentityProvider(externalOlvidURL: currentExternalOlvidURL) - await showNextOnboardingScreen(animated: true) - } - -} - - - -// MARK: - IdentityProviderManualConfigurationHostingViewDelegate - -extension OnboardingFlowViewController { - - @MainActor - func userWantsToValidateManualKeycloakConfiguration(keycloakConfig: KeycloakConfiguration) async { - let currentExternalOlvidURL = internalState.externalOlvidURL - internalState = .keycloakConfigAvailable(keycloakConfig: keycloakConfig, isConfiguredFromMDM: false, externalOlvidURL: currentExternalOlvidURL) - await showNextOnboardingScreen(animated: true) - } - -} - - - -// MARK: - IdentityProviderValidationHostingViewControllerDelegate - -extension OnboardingFlowViewController { - - func newKeycloakUserDetailsAndStuff(_ keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff, keycloakState: ObvKeycloakState) async { - let currentExternalOlvidURL = internalState.externalOlvidURL - internalState = .keycloakUserDetailsAndStuffAvailable(keycloakUserDetailsAndStuff: keycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: keycloakServerRevocationsAndStuff, keycloakState: keycloakState, externalOlvidURL: currentExternalOlvidURL) - await showNextOnboardingScreen(animated: true) - } - -} - - - -// MARK: - BackupRestoreViewHostingControllerDelegate - -extension OnboardingFlowViewController { - - @MainActor - func proceedWithBackupFile(atUrl url: URL) async { - assert(Thread.isMainThread) - let currentExternalOlvidURL = internalState.externalOlvidURL - internalState = .userSelectedBackupFileToRestore(backupFileURL: url, externalOlvidURL: currentExternalOlvidURL) - await showNextOnboardingScreen(animated: true) - } - -} - - -// MARK: - ScannerHostingViewDelegate - -extension OnboardingFlowViewController { - - func scannerViewActionButtonWasTapped() { - flowNavigationController?.presentedViewController?.dismiss(animated: true) - } - - - func qrCodeWasScanned(olvidURL: OlvidURL) { - flowNavigationController?.presentedViewController?.dismiss(animated: true) - Task { await NewAppStateManager.shared.handleOlvidURL(olvidURL) } - } - -} - - -// MARK: - BackupKeyTesterDelegate - -extension OnboardingFlowViewController { - - @MainActor - func userWantsToRestoreBackupIdentifiedByRequestUuid(_ backupRequestUuid: UUID) async { - let currentExternalOlvidURL = internalState.externalOlvidURL - internalState = .userWantsToRestoreBackupNow(backupRequestUuid: backupRequestUuid, externalOlvidURL: currentExternalOlvidURL) - await showNextOnboardingScreen(animated: true) - } - -} - - -// MARK: - BackupRestoringWaitingScreenViewControllerDelegate - -extension OnboardingFlowViewController { - - @MainActor - func userWantsToStartOnboardingFromScratch() async { - assert(Thread.isMainThread) - let currentExternalOlvidURL = internalState.externalOlvidURL - internalState = .initial(externalOlvidURL: currentExternalOlvidURL) - await showNextOnboardingScreen(animated: true) - } - - - /// Called after a backup is successfully restored. In that case, we know that app database is already in sync with the one within the engine. - @MainActor - func ownedIdentityRestoredFromBackupRestore() async { - ownedCryptoIdGeneratedOrRestoredDuringOnboarding = await getRandomExistingNonHiddenOwnedCryptoId() - assert(ownedCryptoIdGeneratedOrRestoredDuringOnboarding != nil) - await requestNextAutorisationPermissionAfterCreatingTheOwnedIdentity() - } - - - @MainActor private func getRandomExistingNonHiddenOwnedCryptoId() async -> ObvCryptoId? { - guard let ownedIdentities = try? PersistedObvOwnedIdentity.getAllNonHiddenOwnedIdentities(within: ObvStack.shared.viewContext) else { assertionFailure(); return nil } - return ownedIdentities.first?.cryptoId - } - -} - - -// MARK: - OlvidURLHandler - -extension OnboardingFlowViewController { - - @MainActor - func handleOlvidURL(_ olvidURL: OlvidURL) { - assert(Thread.isMainThread) - let currentExternalOlvidURL = internalState.externalOlvidURL - switch olvidURL.category { - case .configuration(serverAndAPIKey: _, betaConfiguration: _, keycloakConfig: let _keycloakConfig): - if let keycloakConfig = _keycloakConfig { - internalState = .keycloakConfigAvailable(keycloakConfig: keycloakConfig, isConfiguredFromMDM: false, externalOlvidURL: currentExternalOlvidURL) - Task { await showNextOnboardingScreen(animated: true) } - } else { - internalState = internalState.addingExternalOlvidURL(olvidURL) - Task { await showNextOnboardingScreen(animated: true) } - } - case .invitation: - internalState = internalState.addingExternalOlvidURL(olvidURL) - Task { await showNextOnboardingScreen(animated: true) } - case .mutualScan: - assertionFailure("Cannot happen") - case .openIdRedirect: - Task { - do { - _ = try await KeycloakManagerSingleton.shared.resumeExternalUserAgentFlow(with: olvidURL.url) - os_log("Successfully resumed the external user agent flow", log: Self.log, type: .info) - } catch { - os_log("Failed to resume external user agent flow: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - } - } - } - -} - - -extension OnboardingFlowViewController { - - struct Strings { - - static let qrCodeScannerTitle = NSLocalizedString("SCAN_QR_CODE_CONFIGURATION", comment: "View controller title") - static let qrCodeScannerExplanation = NSLocalizedString("Please scan an Olvid configuation QR code.", comment: "") - static let initialConfiguratorVCTitle = NSLocalizedString("Welcome", comment: "View controller title") - static let localNotificationsSubscriberVCTitle = NSLocalizedString("Almost there!", comment: "View controller title") - static let ownedIdentityGeneratedVCTitle = NSLocalizedString("Congratulations!", comment: "View controller title") - - struct NotServerConfigurationAlert { - static let title = NSLocalizedString("Bad QR code", comment: "Alert title") - static let message = NSLocalizedString("This QR code does not allow to configure Olvid. Please use an Olvid configuration QR code.", comment: "Alert message") - } - - struct BadServer { - static let title = NSLocalizedString("Bad server", comment: "Alert title") - static let message = NSLocalizedString("The imported API Key seems to be for a different server.", comment: "Alert message") - } - - static let pasteLink = NSLocalizedString("PASTE_CONFIGURATION_LINK", comment: "") - static let enterAPIKey = NSLocalizedString("ENTER_API_KEY", comment: "") - static let manualConfiguration = NSLocalizedString("MANUAL_CONFIGURATION", comment: "") - - static let dialogTitleIdentityProviderError = NSLocalizedString("DIALOG_TITLE_IDENTITY_PROVIDER_ERROR", comment: "") - static let dialogMessageFailedToUploadIdentityToKeycloak = NSLocalizedString("DIALOG_MESSAGE_FAILED_TO_UPLOAD_IDENTITY_TO_KEYCLOAK", comment: "") - - static let pasteConfigurationLink = NSLocalizedString("PASTE_CONFIGURATION_LINK", comment: "") - - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/OnboardingFlowViewControllerDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/OnboardingFlowViewControllerDelegate.swift deleted file mode 100644 index d5680b4a..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/OnboardingFlowViewControllerDelegate.swift +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import ObvTypes -import ObvEngine - -protocol OnboardingFlowViewControllerDelegate: AnyObject { - func onboardingIsFinished(ownedCryptoIdGeneratedDuringOnboarding: ObvCryptoId?, olvidURLScannedDuringOnboarding: OlvidURL?) async -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/OnboardingInternalState.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/OnboardingInternalState.swift deleted file mode 100644 index 885f4168..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/OnboardingInternalState.swift +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import Foundation -import ObvTypes - - -enum OnboardingState { - case initial(externalOlvidURL: OlvidURL?) - case userWantsToChooseUnmanagedDetails(userIsCreatingHerFirstIdentity: Bool, externalOlvidURL: OlvidURL?) - case userWantsToManuallyConfigureTheIdentityProvider(externalOlvidURL: OlvidURL?) - case userWantsToRestoreBackup(externalOlvidURL: OlvidURL?) - case userSelectedBackupFileToRestore(backupFileURL: URL, externalOlvidURL: OlvidURL?) - case userWantsToRestoreBackupNow(backupRequestUuid: UUID, externalOlvidURL: OlvidURL?) - case keycloakConfigAvailable(keycloakConfig: KeycloakConfiguration, isConfiguredFromMDM: Bool, externalOlvidURL: OlvidURL?) - case keycloakUserDetailsAndStuffAvailable(keycloakUserDetailsAndStuff: KeycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: KeycloakServerRevocationsAndStuff, keycloakState: ObvKeycloakState, externalOlvidURL: OlvidURL?) - case shouldRequestPermission(category: AutorisationRequesterHostingController.AutorisationCategory, externalOlvidURL: OlvidURL?) - case finalize(externalOlvidURL: OlvidURL?) - - var externalOlvidURL: OlvidURL? { - switch self { - case .initial(let externalOlvidURL): - return externalOlvidURL - case .userWantsToChooseUnmanagedDetails(_, let externalOlvidURL): - return externalOlvidURL - case .userWantsToManuallyConfigureTheIdentityProvider(let externalOlvidURL): - return externalOlvidURL - case .userWantsToRestoreBackup(let externalOlvidURL): - return externalOlvidURL - case .userSelectedBackupFileToRestore(_, let externalOlvidURL): - return externalOlvidURL - case .userWantsToRestoreBackupNow(_, let externalOlvidURL): - return externalOlvidURL - case .keycloakConfigAvailable(_, _, let externalOlvidURL): - return externalOlvidURL - case .keycloakUserDetailsAndStuffAvailable(_, _, _, let externalOlvidURL): - return externalOlvidURL - case .shouldRequestPermission(_, let externalOlvidURL): - return externalOlvidURL - case .finalize(let externalOlvidURL): - return externalOlvidURL - } - } - - /// Returns a copy of the current `OnboardingState`, after setting its `externalOlvidURL`. - func addingExternalOlvidURL(_ externalOlvidURL: OlvidURL?) -> OnboardingState { - switch self { - case .initial: - return .initial(externalOlvidURL: externalOlvidURL) - case .userWantsToChooseUnmanagedDetails(let userIsCreatingHerFirstIdentity, _): - return .userWantsToChooseUnmanagedDetails(userIsCreatingHerFirstIdentity: userIsCreatingHerFirstIdentity, externalOlvidURL: externalOlvidURL) - case .userWantsToManuallyConfigureTheIdentityProvider: - return .userWantsToManuallyConfigureTheIdentityProvider(externalOlvidURL: externalOlvidURL) - case .userWantsToRestoreBackup: - return .userWantsToRestoreBackup(externalOlvidURL: externalOlvidURL) - case .userSelectedBackupFileToRestore(let backupFileURL, _): - return .userSelectedBackupFileToRestore(backupFileURL: backupFileURL, externalOlvidURL: externalOlvidURL) - case .userWantsToRestoreBackupNow(let backupRequestUuid, _): - return .userWantsToRestoreBackupNow(backupRequestUuid: backupRequestUuid, externalOlvidURL: externalOlvidURL) - case .keycloakConfigAvailable(let keycloakConfig, let isConfiguredFromMDM, _): - return .keycloakConfigAvailable(keycloakConfig: keycloakConfig, isConfiguredFromMDM: isConfiguredFromMDM, externalOlvidURL: externalOlvidURL) - case .keycloakUserDetailsAndStuffAvailable(let keycloakUserDetailsAndStuff, let keycloakServerRevocationsAndStuff, let keycloakState, _): - return .keycloakUserDetailsAndStuffAvailable(keycloakUserDetailsAndStuff: keycloakUserDetailsAndStuff, keycloakServerRevocationsAndStuff: keycloakServerRevocationsAndStuff, keycloakState: keycloakState, externalOlvidURL: externalOlvidURL) - case .shouldRequestPermission(let category, _): - return .shouldRequestPermission(category: category, externalOlvidURL: externalOlvidURL) - case .finalize(let externalOlvidURL): - return .finalize(externalOlvidURL: externalOlvidURL) - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/OwnedIdentityGeneratedViewController/OwnedIdentityGeneratedView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/OwnedIdentityGeneratedViewController/OwnedIdentityGeneratedView.swift deleted file mode 100644 index 8e348d1c..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/OwnedIdentityGeneratedViewController/OwnedIdentityGeneratedView.swift +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import SwiftUI - -protocol OwnedIdentityGeneratedHostingControllerDelegate: AnyObject { - func userWantsToStartUsingOlvid() async -} - -final class OwnedIdentityGeneratedHostingController: UIHostingController { - - init(delegate: OwnedIdentityGeneratedHostingControllerDelegate) { - let view = OwnedIdentityGeneratedView(startUsingOlvidAction: { [weak delegate] in - Task { await delegate?.userWantsToStartUsingOlvid() } - }) - super.init(rootView: view) - } - - @objc required dynamic init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - -} - -struct OwnedIdentityGeneratedView: View { - - let startUsingOlvidAction: () -> Void - - var body: some View { - - ZStack { - Color(AppTheme.shared.colorScheme.systemBackground) - .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity) - .edgesIgnoringSafeArea(.all) - VStack(alignment: .leading, spacing: 0) { - HStack { - Text("Congratulations!") - .font(.largeTitle) - .fontWeight(.bold) - .padding(.horizontal) - .padding(.top) - Spacer() - } - ScrollView { - VStack(spacing: 0) { - HStack { Spacer() } - ObvCardView { - Text("OWNED_IDENTITY_GENERATED_EXPLANATION") - .frame(minWidth: .none, - maxWidth: .infinity, - minHeight: .none, - idealHeight: .none, - maxHeight: .none, - alignment: .center) - .font(.body) - } - .padding(.bottom) - OlvidButton(style: .blue, title: Text("START_USING_OLVID")) { - startUsingOlvidAction() - } - Spacer() - } - .padding(.horizontal) - .padding(.top) - } - Spacer() - } - } - // Although the back button is hidden at the VC level, this is required - .navigationBarBackButtonHidden(true) - } -} - -struct OwnedIdentityGeneratedView_Previews: PreviewProvider { - static var previews: some View { - Group { - OwnedIdentityGeneratedView(startUsingOlvidAction: {}) - .environment(\.colorScheme, .dark) - OwnedIdentityGeneratedView(startUsingOlvidAction: {}) - .environment(\.locale, .init(identifier: "fr")) - OwnedIdentityGeneratedView(startUsingOlvidAction: {}) - .previewDevice(PreviewDevice(rawValue: "iPhone8,4")) - OwnedIdentityGeneratedView(startUsingOlvidAction: {}) - .environment(\.locale, .init(identifier: "fr")) - .environment(\.colorScheme, .dark) - .previewDevice(PreviewDevice(rawValue: "iPhone8,4")) - } - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnBoth/OwnedIdentityTransferFailure/OwnedIdentityTransferFailureView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnBoth/OwnedIdentityTransferFailure/OwnedIdentityTransferFailureView.swift new file mode 100644 index 00000000..24acc850 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnBoth/OwnedIdentityTransferFailure/OwnedIdentityTransferFailureView.swift @@ -0,0 +1,163 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import MessageUI + + + +protocol OwnedIdentityTransferFailureViewActionsProtocol: AnyObject { + func userWantsToSendErrorByEmail(errorMessage: String) async +} + + +struct OwnedIdentityTransferFailureView: View { + + let actions: OwnedIdentityTransferFailureViewActionsProtocol + let model: Model + let canSendMail: Bool + + struct Model { + let error: Error + } + + + private static func stringForError(_ error: Error) -> String { + let fullOlvidVersion = ObvMessengerConstants.fullVersion + let preciseModel = UIDevice.current.preciseModel + let systemName = UIDevice.current.systemName + let systemVersion = UIDevice.current.systemVersion + let msg = [ + "Olvid version: \(fullOlvidVersion)", + "Device model: \(preciseModel)", + "System: \(systemName) \(systemVersion)", + "Error messages:\n\(error.localizedDescription)", + ] + return msg.joined(separator: "\n") + } + + + private func userWantsToSendErrorByEmail() { + Task { await actions.userWantsToSendErrorByEmail(errorMessage: Self.stringForError(model.error) ) } + } + + var body: some View { + VStack { + ScrollView { + VStack { + + NewOnboardingHeaderView( + title: "OWNED_IDENTITY_TRANSFER_FAILED_TITLE", + subtitle: "OWNED_IDENTITY_TRANSFER_FAILED_SUBTITLE") + + Image(systemIcon: .xmarkCircleFill) + .font(.title) + .foregroundStyle(Color(UIColor.systemRed)) + .padding(.vertical) + + HStack { + VStack(alignment: .leading) { + Text("OWNED_IDENTITY_TRANSFER_FAILED_BODY_\(ObvMessengerConstants.toEmailForSendingInitializationFailureErrorMessage)") + .font(.body) + .foregroundStyle(.primary) + .padding(.bottom, 4) + Text(verbatim: Self.stringForError(model.error)) + .lineLimit(nil) + .font(.body) + .foregroundStyle(.secondary) + .padding(.bottom, 4) + HStack { + Spacer() + Button("COPY_ERROR_TO_PASTEBOARD") { + UIPasteboard.general.string = Self.stringForError(model.error) + } + } + } + Spacer() + } + + + }.padding(.horizontal) + } + if canSendMail { + InternalButton("SEND_ERROR_BY_EMAIL", action: userWantsToSendErrorByEmail) + .padding(.horizontal) + .padding(.bottom) + } + } + } + +} + + +// MARK: - Button used in this view only + +private struct InternalButton: View { + + private let key: LocalizedStringKey + private let action: () -> Void + @Environment(\.isEnabled) var isEnabled + + init(_ key: LocalizedStringKey, action: @escaping () -> Void) { + self.key = key + self.action = action + } + + var body: some View { + Button(action: action) { + Label( + title: { + Text(key) + .foregroundStyle(.white) + .padding(.vertical, 16) + }, + icon: { + Image(systemIcon: .envelope) + .foregroundStyle(.white) + } + ) + } + .frame(maxWidth: .infinity) + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + } + +} + + + +struct OwnedIdentityTransferFailureView_Previews: PreviewProvider { + + private final class ActionsForPreviews: OwnedIdentityTransferFailureViewActionsProtocol { + func userWantsToSendErrorByEmail(errorMessage: String) async {} + } + + private static let actions = ActionsForPreviews() + + static var previews: some View { + + OwnedIdentityTransferFailureView(actions: actions, model: .init(error: ObvError.errorForPreviews), canSendMail: true) + } + + private enum ObvError: Error { + case errorForPreviews + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnBoth/OwnedIdentityTransferFailure/OwnedIdentityTransferFailureViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnBoth/OwnedIdentityTransferFailure/OwnedIdentityTransferFailureViewController.swift new file mode 100644 index 00000000..45c98c25 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnBoth/OwnedIdentityTransferFailure/OwnedIdentityTransferFailureViewController.swift @@ -0,0 +1,123 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import MessageUI + + +final class OwnedIdentityTransferFailureViewController: UIHostingController, MFMailComposeViewControllerDelegate, OwnedIdentityTransferFailureViewActionsProtocol { + + init(model: OwnedIdentityTransferFailureView.Model) { + let actions = OwnedIdentityTransferFailureViewActions() + let view = OwnedIdentityTransferFailureView(actions: actions, model: model, canSendMail: Self.canSendMail) + super.init(rootView: view) + actions.delegate = self + } + + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = .systemBackground + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + } + + + private static var canSendMail: Bool { + MFMailComposeViewController.canSendMail() + } + + + // OwnedIdentityTransferFailureViewActions + + @MainActor + func userWantsToSendErrorByEmail(errorMessage: String) async { + + assert(MFMailComposeViewController.canSendMail()) + + let composeVC = MFMailComposeViewController() + composeVC.mailComposeDelegate = self + + // Configure the fields of the interface. + composeVC.setToRecipients([ObvMessengerConstants.toEmailForSendingInitializationFailureErrorMessage]) + composeVC.setSubject(Strings.mailSubject) + composeVC.setMessageBody(Strings.messageBody(errorMessage), isHTML: false) + + // Present the view controller modally. + self.present(composeVC, animated: true, completion: nil) + + } + + + // MFMailComposeViewControllerDelegate + + func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) { + guard error == nil else { return } + Task { [weak self] in + await self?.showSuccess() + } + } + + + @MainActor + private func showSuccess() async { + await showHUDAndAwaitAnimationEnd(type: .checkmark) + try? await Task.sleep(seconds: 1) + hideHUD() + } + + + // Strings + + private struct Strings { + static let mailSubject = NSLocalizedString("MAIL_SUBJECT_COULD_NOT_TRANSFER_PROFILE_ERROR", comment: "Mail subject") + static let messageBody = { (errorMessage: String) in + String.localizedStringWithFormat(NSLocalizedString("MAIL_BODY_COULD_NOT_TRANSFER_PROFILE_ERROR$@", comment: "mail body text"), errorMessage) + } + } + +} + + +private final class OwnedIdentityTransferFailureViewActions: OwnedIdentityTransferFailureViewActionsProtocol { + + weak var delegate: OwnedIdentityTransferFailureViewActionsProtocol? + + func userWantsToSendErrorByEmail(errorMessage: String) async { + await delegate?.userWantsToSendErrorByEmail(errorMessage: errorMessage) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/01TransfertProtocolSourceCodeDisplayer/TransfertProtocolSourceCodeDisplayerView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/01TransfertProtocolSourceCodeDisplayer/TransfertProtocolSourceCodeDisplayerView.swift new file mode 100644 index 00000000..84e8142e --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/01TransfertProtocolSourceCodeDisplayer/TransfertProtocolSourceCodeDisplayerView.swift @@ -0,0 +1,183 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvTypes +import ObvCrypto +import Contacts + + +protocol TransfertProtocolSourceCodeDisplayerViewActionsProtocol: AnyObject { + + typealias BlockCancellingOwnedIdentityTransferProtocol = () -> Void + typealias TransferSessionNumber = Int + + /// Called as soon as the view appears. + /// - Parameters: + /// - ownedCryptoId: The `ObvCryptoId` of the owned identity. + /// - onAvailableSessionNumber: A block called as soon as the session number is available. + func userWantsToInitiateOwnedIdentityTransferProtocolOnSourceDevice(ownedCryptoId: ObvCryptoId, onAvailableSessionNumber: @escaping (ObvOwnedIdentityTransferSessionNumber) -> Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void) async throws + + func sasExpectedOnInputIsAvailable(_ sasExpectedOnInput: ObvOwnedIdentityTransferSas, targetDeviceName: String, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, protocolInstanceUID: UID) async + +} + + +struct TransfertProtocolSourceCodeDisplayerView: View { + + let model: Model + let actions: TransfertProtocolSourceCodeDisplayerViewActionsProtocol + @State private var sessionNumber: ObvOwnedIdentityTransferSessionNumber? + + struct Model { + let ownedCryptoId: ObvCryptoId + let ownedDetails: CNContact + } + + private func userWantsToStartTransferProtocolAsSourceDevice() { + Task { + do { + try await actions.userWantsToInitiateOwnedIdentityTransferProtocolOnSourceDevice( + ownedCryptoId: model.ownedCryptoId, + onAvailableSessionNumber: onAvailableSessionNumber, + onAvailableSASExpectedOnInput: onAvailableSASExpectedOnInput) + } catch { + assertionFailure(error.localizedDescription) + } + } + } + + + private func onAvailableSASExpectedOnInput(_ sasExpectedOnInput: ObvOwnedIdentityTransferSas, _ targetDeviceName: String, _ protocolInstanceUID: UID) { + Task { + await actions.sasExpectedOnInputIsAvailable(sasExpectedOnInput, targetDeviceName: targetDeviceName, ownedCryptoId: model.ownedCryptoId, ownedDetails: model.ownedDetails, protocolInstanceUID: protocolInstanceUID) + } + } + + + private func onAvailableSessionNumber(_ sessionNumber: ObvOwnedIdentityTransferSessionNumber) { + Task { await setSessionNumber(sessionNumber) } + } + + + @MainActor + private func setSessionNumber(_ sessionNumber: ObvOwnedIdentityTransferSessionNumber) async { + withAnimation { + self.sessionNumber = sessionNumber + } + } + + + var body: some View { + VStack { + + if let sessionNumber { + + ScrollView { + + NewOnboardingHeaderView(title: "OWNED_IDENTITY_TRANSFER_ENTER_CODE_ON_NEW_DEVICE", subtitle: nil) + + Text("OWNED_IDENTITY_TRANSFER_ENTER_CODE_ON_OTHER_DEVICE_BODY") + .font(.body) + .padding(.top) + + SessionNumberView(sessionNumber: sessionNumber) + .padding(.top) + + HStack { + Text("PLEASE_NOTE_THIS_CODE_WORKS_ONLY_ONCE") + .font(.footnote) + .foregroundStyle(.secondary) + Spacer() + }.padding(.top) + + } + + } else { + Spacer() + ProgressView() + .onAppear(perform: userWantsToStartTransferProtocolAsSourceDevice) + Text("OWNED_IDENTITY_TRANSFER_CONTACTING_SERVER") + .font(.body) + .foregroundStyle(.secondary) + Spacer() + } + + } + .padding(.horizontal) + } + +} + + +private struct SessionNumberView: View { + + let sessionNumber: ObvOwnedIdentityTransferSessionNumber + + var body: some View { + HStack { + ForEach((0.. Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void) async throws { + + Task { + try! await Task.sleep(seconds: 0) + onAvailableSessionNumber(try! ObvOwnedIdentityTransferSessionNumber(sessionNumber: 112233)) + } + + } + + func sasExpectedOnInputIsAvailable(_ sasExpectedOnInput: ObvTypes.ObvOwnedIdentityTransferSas, targetDeviceName: String, ownedCryptoId: ObvTypes.ObvCryptoId, ownedDetails: CNContact, protocolInstanceUID: ObvCrypto.UID) async {} + + } + + private static let actions = ActionsForPreviews() + + static var previews: some View { + TransfertProtocolSourceCodeDisplayerView( + model: model, + actions: actions) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/01TransfertProtocolSourceCodeDisplayer/TransfertProtocolSourceCodeDisplayerViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/01TransfertProtocolSourceCodeDisplayer/TransfertProtocolSourceCodeDisplayerViewController.swift new file mode 100644 index 00000000..8cd2430a --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/01TransfertProtocolSourceCodeDisplayer/TransfertProtocolSourceCodeDisplayerViewController.swift @@ -0,0 +1,158 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import ObvTypes +import ObvCrypto +import Contacts + + +protocol TransfertProtocolSourceCodeDisplayerViewControllerDelegate: AnyObject { + + typealias BlockCancellingOwnedIdentityTransferProtocol = () -> Void + typealias TransferSessionNumber = Int + + /// Called as soon as the view appears. + /// - Parameters: + /// - controller: The `TransfertProtocolSourceCodeDisplayerViewController` instance calling this method. + /// - ownedCryptoId: The `ObvCryptoId` of the owned identity. + /// - onAvailableSessionNumber: A block called as soon as the session number is available. + func userWantsToInitiateOwnedIdentityTransferProtocolOnSourceDevice(controller: TransfertProtocolSourceCodeDisplayerViewController, ownedCryptoId: ObvCryptoId, onAvailableSessionNumber: @escaping (ObvOwnedIdentityTransferSessionNumber) -> Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void) async throws + + func userDidCancelOwnedIdentityTransferProtocol(controller: TransfertProtocolSourceCodeDisplayerViewController) async + + + /// Called when the engine sent us back the SAS we expect the user to enter on this source device. + /// - Parameters: + /// - controller: The `TransfertProtocolSourceCodeDisplayerViewController` instance calling this method. + /// - sasExpectedOnInput: The SAS we expect the user to enter on the next screen of the onboarding + func sasExpectedOnInputIsAvailable(controller: TransfertProtocolSourceCodeDisplayerViewController, sasExpectedOnInput: ObvOwnedIdentityTransferSas, targetDeviceName: String, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, protocolInstanceUID: UID) async + +} + + + +final class TransfertProtocolSourceCodeDisplayerViewController: UIHostingController, TransfertProtocolSourceCodeDisplayerViewActionsProtocol { + + private weak var delegate: TransfertProtocolSourceCodeDisplayerViewControllerDelegate? + + init(model: TransfertProtocolSourceCodeDisplayerView.Model, delegate: TransfertProtocolSourceCodeDisplayerViewControllerDelegate) { + let actions = TransfertProtocolSourceCodeDisplayerViewActions() + let view = TransfertProtocolSourceCodeDisplayerView( + model: model, + actions: actions) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = .systemBackground + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelButtonTapped)) + } + + + @objc + private func cancelButtonTapped() { + Task { [weak self] in + guard let self else { return } + await delegate?.userDidCancelOwnedIdentityTransferProtocol(controller: self) + } + } + + + // TransfertProtocolSourceCodeDisplayerViewActionsProtocol + + func userWantsToInitiateOwnedIdentityTransferProtocolOnSourceDevice(ownedCryptoId: ObvCryptoId, onAvailableSessionNumber: @escaping (ObvOwnedIdentityTransferSessionNumber) -> Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void) async throws { + guard let delegate else { throw ObvError.theDelegateIsNil } + return try await delegate.userWantsToInitiateOwnedIdentityTransferProtocolOnSourceDevice( + controller: self, + ownedCryptoId: ownedCryptoId, + onAvailableSessionNumber: onAvailableSessionNumber, + onAvailableSASExpectedOnInput: onAvailableSASExpectedOnInput) + } + + + func sasExpectedOnInputIsAvailable(_ sasExpectedOnInput: ObvOwnedIdentityTransferSas, targetDeviceName: String, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, protocolInstanceUID: UID) async { + await delegate?.sasExpectedOnInputIsAvailable( + controller: self, + sasExpectedOnInput: sasExpectedOnInput, + targetDeviceName: targetDeviceName, + ownedCryptoId: ownedCryptoId, + ownedDetails: ownedDetails, + protocolInstanceUID: protocolInstanceUID) + } + + enum ObvError: Error { + case theDelegateIsNil + } + +} + + +// MARK: - TransfertProtocolSourceCodeDisplayerViewActions + +private final class TransfertProtocolSourceCodeDisplayerViewActions: TransfertProtocolSourceCodeDisplayerViewActionsProtocol { + + weak var delegate: TransfertProtocolSourceCodeDisplayerViewActionsProtocol? + + func userWantsToInitiateOwnedIdentityTransferProtocolOnSourceDevice(ownedCryptoId: ObvCryptoId, onAvailableSessionNumber: @escaping (ObvOwnedIdentityTransferSessionNumber) -> Void, onAvailableSASExpectedOnInput: @escaping (ObvOwnedIdentityTransferSas, String, UID) -> Void) async throws { + guard let delegate else { throw ObvError.theDelegateIsNil } + try await delegate.userWantsToInitiateOwnedIdentityTransferProtocolOnSourceDevice( + ownedCryptoId: ownedCryptoId, + onAvailableSessionNumber: onAvailableSessionNumber, + onAvailableSASExpectedOnInput: onAvailableSASExpectedOnInput) + } + + + func sasExpectedOnInputIsAvailable(_ sasExpectedOnInput: ObvOwnedIdentityTransferSas, targetDeviceName: String, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, protocolInstanceUID: UID) async { + await delegate?.sasExpectedOnInputIsAvailable( + sasExpectedOnInput, + targetDeviceName: targetDeviceName, + ownedCryptoId: ownedCryptoId, + ownedDetails: ownedDetails, + protocolInstanceUID: protocolInstanceUID) + } + + + enum ObvError: Error { + case theDelegateIsNil + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/02InputSASOnSource/InputSASOnSourceView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/02InputSASOnSource/InputSASOnSourceView.swift new file mode 100644 index 00000000..03d2fdc6 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/02InputSASOnSource/InputSASOnSourceView.swift @@ -0,0 +1,157 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvTypes +import ObvCrypto +import Contacts + + +protocol InputSASOnSourceViewActionsProtocol: AnyObject { + func userEnteredValidSASOnSourceDevice(enteredSAS: ObvOwnedIdentityTransferSas, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, protocolInstanceUID: UID, targetDeviceName: String) async throws +} + + +struct InputSASOnSourceView: View, SessionNumberTextFieldActionsProtocol { + + private enum AlertType { + case userEnteredIncorrectSAS + case seriousError + } + + let actions: InputSASOnSourceViewActionsProtocol + let model: Model + + @State private var shownAlert: AlertType? = nil + @State private var userEnteredValidSAS = false + + struct Model { + let sasExpectedOnInput: ObvOwnedIdentityTransferSas + let targetDeviceName: String + let ownedCryptoId: ObvCryptoId + let ownedDetails: CNContact + let protocolInstanceUID: UID + } + + + private func alertTitle(for alertType: AlertType) -> LocalizedStringKey { + switch alertType { + case .userEnteredIncorrectSAS: + return "OWNED_IDENTITY_TRANSFER_INCORRECT_TRANSFER_SESSION_NUMBER" + case .seriousError: + return "OWNED_IDENTITY_TRANSFER_INCORRECT_SERIOUS_ERROR" + } + } + + // SessionNumberTextFieldActionsProtocol + + func userEnteredSessionNumber(sessionNumber: String) async { + guard let data = sessionNumber.data(using: .utf8) else { assertionFailure(); return } + guard let enteredSAS = try? ObvOwnedIdentityTransferSas(fullSas: data) else { assertionFailure(); return } + if enteredSAS == model.sasExpectedOnInput { + shownAlert = nil + userEnteredValidSAS = true + Task { + do { + try await actions.userEnteredValidSASOnSourceDevice( + enteredSAS: enteredSAS, + ownedCryptoId: model.ownedCryptoId, + ownedDetails: model.ownedDetails, + protocolInstanceUID: model.protocolInstanceUID, + targetDeviceName: model.targetDeviceName) + } catch { + shownAlert = .seriousError + } + } + } else { + shownAlert = .userEnteredIncorrectSAS + } + } + + + func userIsTypingSessionNumber() { + shownAlert = nil + } + + + + var body: some View { + ScrollView { + VStack { + + NewOnboardingHeaderView( + title: "OWNED_IDENTITY_TRANSFER_ENTER_CODE_FROM_NEW_DEVICE", + subtitle: nil) + + SessionNumberTextField(actions: self, model: .init(mode: .enterSessionNumber)) + .padding(.top) + .disabled(userEnteredValidSAS) + + if let shownAlert { + HStack { + Label( + title: { Text(alertTitle(for: shownAlert)) }, + icon: { + Image(systemIcon: .xmarkCircle) + .renderingMode(.template) + .foregroundColor(Color(.systemRed)) + }) + Spacer() + } + } + + if userEnteredValidSAS { + HStack { + Spacer() + ProgressView() + Spacer() + } + } + + } + .padding(.horizontal) + } + } +} + + + +struct InputSASOnSourceView_Previews: PreviewProvider { + + private static let sas = "12345678".data(using: .utf8)! + + private final class ActionsForPreviews: InputSASOnSourceViewActionsProtocol { + func userEnteredValidSASOnSourceDevice(enteredSAS: ObvTypes.ObvOwnedIdentityTransferSas, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, protocolInstanceUID: UID, targetDeviceName: String) async throws {} + } + + private static let ownedCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!) + + private static let actions = ActionsForPreviews() + + private static let ownedDetails: CNContact = { + let details = CNMutableContact() + details.givenName = "Steve" + return details + }() + + static var previews: some View { + InputSASOnSourceView(actions: actions, model: .init(sasExpectedOnInput: try! .init(fullSas: sas), targetDeviceName: "Name of new device", ownedCryptoId: ownedCryptoId, ownedDetails: ownedDetails, protocolInstanceUID: UID.zero)) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/02InputSASOnSource/InputSASOnSourceViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/02InputSASOnSource/InputSASOnSourceViewController.swift new file mode 100644 index 00000000..2ed6ed9f --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/02InputSASOnSource/InputSASOnSourceViewController.swift @@ -0,0 +1,105 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import ObvTypes +import ObvCrypto +import Contacts + + +protocol InputSASOnSourceViewControllerDelegate: AnyObject { + func userEnteredValidSASOnSourceDevice(controller: InputSASOnSourceViewController, enteredSAS: ObvOwnedIdentityTransferSas, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, protocolInstanceUID: UID, targetDeviceName: String) async throws + func userDidCancelOwnedIdentityTransferProtocol(controller: InputSASOnSourceViewController) async +} + + +final class InputSASOnSourceViewController: UIHostingController, InputSASOnSourceViewActionsProtocol { + + private weak var delegate: InputSASOnSourceViewControllerDelegate? + + init(model: InputSASOnSourceView.Model, delegate: InputSASOnSourceViewControllerDelegate) { + let actions = InputSASOnSourceViewActions() + let view = InputSASOnSourceView(actions: actions, model: model) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = .systemBackground + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelButtonTapped)) + } + + + @objc + private func cancelButtonTapped() { + Task { [weak self] in + guard let self else { return } + await delegate?.userDidCancelOwnedIdentityTransferProtocol(controller: self) + } + } + + // InputSASOnSourceViewActionsProtocol + + func userEnteredValidSASOnSourceDevice(enteredSAS: ObvOwnedIdentityTransferSas, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, protocolInstanceUID: UID, targetDeviceName: String) async throws { + try await delegate?.userEnteredValidSASOnSourceDevice( + controller: self, + enteredSAS: enteredSAS, + ownedCryptoId: ownedCryptoId, + ownedDetails: ownedDetails, + protocolInstanceUID: protocolInstanceUID, + targetDeviceName: targetDeviceName) + } + +} + + +private final class InputSASOnSourceViewActions: InputSASOnSourceViewActionsProtocol { + + weak var delegate: InputSASOnSourceViewActionsProtocol? + + func userEnteredValidSASOnSourceDevice(enteredSAS: ObvOwnedIdentityTransferSas, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, protocolInstanceUID: UID, targetDeviceName: String) async throws { + try await delegate?.userEnteredValidSASOnSourceDevice( + enteredSAS: enteredSAS, + ownedCryptoId: ownedCryptoId, + ownedDetails: ownedDetails, + protocolInstanceUID: protocolInstanceUID, + targetDeviceName: targetDeviceName) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/03ChooseDeviceToKeepActive/ChooseDeviceToKeepActiveView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/03ChooseDeviceToKeepActive/ChooseDeviceToKeepActiveView.swift new file mode 100644 index 00000000..2da10ec0 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/03ChooseDeviceToKeepActive/ChooseDeviceToKeepActiveView.swift @@ -0,0 +1,476 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import StoreKit +import ObvTypes +import ObvCrypto +import Contacts + + +protocol ChooseDeviceToKeepActiveViewActionsProtocol: AnyObject, SubscriptionPlansViewActionsProtocol { + + func userChoseDeviceToKeepActive(ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, enteredSAS: ObvOwnedIdentityTransferSas, ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult, currentDeviceIdentifier: Data, targetDeviceName: String, deviceToKeepActive: ObvOwnedDeviceDiscoveryResult.Device?, protocolInstanceUID: UID) async + func refreshDeviceDiscovery(for ownedCryptoId: ObvCryptoId) async throws -> ObvOwnedDeviceDiscoveryResult + +} + + +final class ChooseDeviceToKeepActiveViewModel: ChooseDeviceToKeepActiveViewModelProtocol { + + let ownedCryptoId: ObvCryptoId + let ownedDetails: CNContact + let enteredSAS: ObvOwnedIdentityTransferSas + @Published var ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult + let currentDeviceIdentifier: Data + let targetDeviceName: String + let protocolInstanceUID: UID + + init(ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, enteredSAS: ObvOwnedIdentityTransferSas, ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult, currentDeviceIdentifier: Data, targetDeviceName: String, protocolInstanceUID: UID) { + self.ownedCryptoId = ownedCryptoId + self.ownedDetails = ownedDetails + self.enteredSAS = enteredSAS + self.ownedDeviceDiscoveryResult = ownedDeviceDiscoveryResult + self.currentDeviceIdentifier = currentDeviceIdentifier + self.targetDeviceName = targetDeviceName + self.protocolInstanceUID = protocolInstanceUID + } + + + @MainActor + func resetOwnedDeviceDiscoveryResult(with newObvOwnedDeviceDiscoveryResult: ObvTypes.ObvOwnedDeviceDiscoveryResult) async { + withAnimation { + self.ownedDeviceDiscoveryResult = newObvOwnedDeviceDiscoveryResult + } + } + +} + + +protocol ChooseDeviceToKeepActiveViewModelProtocol: AnyObject, ObservableObject { + var ownedCryptoId: ObvCryptoId { get } + var ownedDetails: CNContact { get } + var enteredSAS: ObvOwnedIdentityTransferSas { get } + var ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult { get } // Published + var currentDeviceIdentifier: Data { get } + var targetDeviceName: String { get } + var protocolInstanceUID: UID { get } + + func resetOwnedDeviceDiscoveryResult(with newObvOwnedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult) async +} + + +struct ChooseDeviceToKeepActiveView: View, SubscriptionPlansViewDismissActionsProtocol { + + let actions: ChooseDeviceToKeepActiveViewActionsProtocol + @ObservedObject var model: Model + @State private var selectedDevice: ObvOwnedDeviceDiscoveryResult.Device? + @State private var isInterfaceDisabled = false + @State private var isSubscriptionPlansViewPresented = false + @State private var userJustSubscribedToMultidevice = false + + private var title: LocalizedStringKey { + if model.ownedDeviceDiscoveryResult.isMultidevice { + return "CHOOSE_ACTIVE_DEVICE_TITLE_WHEN_MULTIDEVICE_TRUE" + } else { + return "CHOOSE_ACTIVE_DEVICE_TITLE_WHEN_MULTIDEVICE_FALSE" + } + } + + + private var subtitle: LocalizedStringKey { + if model.ownedDeviceDiscoveryResult.isMultidevice { + return "CHOOSE_ACTIVE_DEVICE_SUBTITLE_WHEN_MULTIDEVICE_TRUE" + } else { + return "CHOOSE_ACTIVE_DEVICE_SUBTITLE_WHEN_MULTIDEVICE_FALSE" + } + } + + + private var sortedDevices: [ObvOwnedDeviceDiscoveryResult.Device] { + let existingDevices = model.ownedDeviceDiscoveryResult.devices.sorted { device1, device2 in + if device1.identifier == model.currentDeviceIdentifier { return true } + if device2.identifier == model.currentDeviceIdentifier { return false } + return device1.hashValue < device2.hashValue + } + let newDevice = ObvOwnedDeviceDiscoveryResult.Device( + identifier: OwnedIdentityTransferSummaryView.fakeDeviceIdForNewDevice, + expirationDate: nil, + latestRegistrationDate: nil, + name: model.targetDeviceName) + return existingDevices + [newDevice] + } + + + private func titleOfKeepDeviceActiveButton(device: ObvOwnedDeviceDiscoveryResult.Device) -> LocalizedStringKey { + if let name = device.name { + return "KEEP_\(name)_ACTIVE" + } else { + return "KEEP_SELECTED_DEVICE_ACTIVE" + } + } + + + private func proceedButtonTapped(deviceToKeepActive: ObvOwnedDeviceDiscoveryResult.Device?) { + isInterfaceDisabled = true + Task { + await userChoseDeviceToKeepActive(deviceToKeepActive: deviceToKeepActive) + } + } + + + private func userWantsToSeeMultideviceSubscriptionsOptions() { + isSubscriptionPlansViewPresented = true + } + + + @MainActor + private func userChoseDeviceToKeepActive(deviceToKeepActive: ObvOwnedDeviceDiscoveryResult.Device?) async { + isInterfaceDisabled = true + await actions.userChoseDeviceToKeepActive( + ownedCryptoId: model.ownedCryptoId, + ownedDetails: model.ownedDetails, + enteredSAS: model.enteredSAS, + ownedDeviceDiscoveryResult: model.ownedDeviceDiscoveryResult, + currentDeviceIdentifier: model.currentDeviceIdentifier, + targetDeviceName: model.targetDeviceName, + deviceToKeepActive: deviceToKeepActive, + protocolInstanceUID: model.protocolInstanceUID) + isInterfaceDisabled = false // In case the user comes back + } + + // SubscriptionPlansViewDismissActionsProtocol + + @MainActor + func userWantsToDismissSubscriptionPlansView() async { + isSubscriptionPlansViewPresented = false + } + + + func dismissSubscriptionPlansViewAfterPurchaseWasMade() async { + await refreshDeviceDiscovery() + } + + + /// Called when the subscription view is dismissed after a purchase is made (so as to reflect the acquisition of the multi-device feature) + /// and when the subscription view is dismissed manually (since, in that case, was cannot know whether a purchase was made or not). + @MainActor + private func refreshDeviceDiscovery() async { + isInterfaceDisabled = true + do { + let newObvOwnedDeviceDiscoveryResult = try await actions.refreshDeviceDiscovery(for: model.ownedCryptoId) + await model.resetOwnedDeviceDiscoveryResult(with: newObvOwnedDeviceDiscoveryResult) + if newObvOwnedDeviceDiscoveryResult.isMultidevice { + userJustSubscribedToMultidevice = true + } + } catch { + assertionFailure(error.localizedDescription) + } + isInterfaceDisabled = false + } + + + // Body + + var body: some View { + VStack { + ScrollView { + VStack { + + NewOnboardingHeaderView(title: title, subtitle: subtitle) + .padding(.bottom) + + if userJustSubscribedToMultidevice { + HStack { + Label { + Text("NO_DEVICE_WILL_EXPIRE_SINCE_YOUR_SUBSCRIPTION_INCLUDES_MULTIDEVICE") + } icon: { + Image(systemIcon: .checkmarkCircleFill) + .foregroundStyle(Color(UIColor.systemGreen)) + } + Spacer() + } + } + + ProgressView() + .opacity(isInterfaceDisabled ? 1 : 0) + + ForEach(sortedDevices) { device in + DeviceView(mode: model.ownedDeviceDiscoveryResult.isMultidevice ? .list : .select(selectedDevice: $selectedDevice), + model: .init(device: device, + currentDeviceIdentifier: model.currentDeviceIdentifier, + fakeDeviceIdForNewDevice: OwnedIdentityTransferSummaryView.fakeDeviceIdForNewDevice)) + .padding(.leading) + .padding(.top) + } + + + }.padding(.horizontal) + + if model.ownedDeviceDiscoveryResult.isMultidevice { + InternalButton("VALIDATE", action: { proceedButtonTapped(deviceToKeepActive: nil) }) + .padding() + } else if let selectedDevice { + InternalButton(titleOfKeepDeviceActiveButton(device: selectedDevice), action: { proceedButtonTapped(deviceToKeepActive: selectedDevice) }) + .padding() + } + } + + if !model.ownedDeviceDiscoveryResult.isMultidevice { + HStack { + Spacer() + // We use a Markdown trick so as to show an in-line link instead of a button. + Text("DO_YOU_WANT_ALL_YOUR_DEVICE_TO_STAY_ACTIVE_[THIS_WAY](_)") + .environment(\.openURL, OpenURLAction { url in + userWantsToSeeMultideviceSubscriptionsOptions() + return .discarded + }) + Spacer() + } + } + + } + .disabled(isInterfaceDisabled) + .sheet(isPresented: $isSubscriptionPlansViewPresented, onDismiss: { + Task { await refreshDeviceDiscovery() } + }, content: { + let model = SubscriptionPlansViewModel(ownedCryptoId: model.ownedCryptoId, showFreePlanIfAvailable: false) + SubscriptionPlansView(model: model, actions: actions, dismissActions: self) + }) + } +} + + +// MARK: - DeviceView + +private struct DeviceView: View { + + enum Mode { + case list + case select(selectedDevice: Binding) + } + + let mode: Mode + let model: Model + + struct Model { + let device: ObvOwnedDeviceDiscoveryResult.Device + let currentDeviceIdentifier: Data + let fakeDeviceIdForNewDevice: Data + } + + + private func cellTapped() { + switch mode { + case .list: + return + case .select(selectedDevice: let selectedDevice): + selectedDevice.wrappedValue = model.device + } + } + + + private var isSelected: Bool { + switch mode { + case .list: + return false + case .select(selectedDevice: let selectedDevice): + return model.device == selectedDevice.wrappedValue + } + } + + + var body: some View { + HStack { + Label( + title: { + VStack(alignment: .leading) { + Text(verbatim: model.device.name ?? String(model.device.identifier.hexString().prefix(4))) + .font(.headline) + if model.device.identifier == model.currentDeviceIdentifier { + Text("CURRENT_DEVICE") + .foregroundStyle(.secondary) + .font(.subheadline) + } else if model.device.identifier == model.fakeDeviceIdForNewDevice { + Text("NEW_DEVICE") + .foregroundStyle(.secondary) + .font(.subheadline) + } + } + }, + icon: { + Image(systemIcon: .laptopcomputerAndIphone) + } + ) + Spacer() + switch mode { + case .list: + EmptyView() + case .select: + Image(systemIcon: isSelected ? .checkmarkCircleFill : .circle) + .foregroundStyle(isSelected ? Color(UIColor.systemGreen) : .secondary) + } + } + .contentShape(Rectangle()) // This makes it possible to have an "on tap" gesture that also works when the Spacer is tapped + .onTapGesture(perform: cellTapped) + } +} + + + +// MARK: - Button used in this view only + +private struct InternalButton: View { + + private let key: LocalizedStringKey + private let action: () -> Void + @Environment(\.isEnabled) var isEnabled + + init(_ key: LocalizedStringKey, action: @escaping () -> Void) { + self.key = key + self.action = action + } + + var body: some View { + Button(action: action) { + Text(key) + .foregroundStyle(.white) + .padding(.horizontal, 26) + .padding(.vertical, 16) + .frame(maxWidth: .infinity) + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + } + +} + + + +// MARK: - Previews + +struct ChooseDeviceToKeepActiveView_Previews: PreviewProvider { + + private static let ownedCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!) + + private static let enteredSAS = try! ObvOwnedIdentityTransferSas(fullSas: "12345678".data(using: .utf8)!) + + private static let devices: Set = Set([ + .init(identifier: UID(uid: Data(repeating: 0x01, count: UID.length))!.raw, + expirationDate: Date(timeIntervalSinceNow: 400), + latestRegistrationDate: Date(timeIntervalSinceNow: -200), + name: "iPad Pro"), + .init(identifier: UID.zero.raw, + expirationDate: Date(timeIntervalSinceNow: 500), + latestRegistrationDate: Date(timeIntervalSinceNow: -100), + name: "iPhone 15"), + ]) + + private static let ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult = .init( + devices: devices, + isMultidevice: false) + + private static let ownedDeviceDiscoveryResultWithMultidevice: ObvOwnedDeviceDiscoveryResult = .init( + devices: devices, + isMultidevice: true) + + final class ActionsForPreviews: ChooseDeviceToKeepActiveViewActionsProtocol { + func userChoseDeviceToKeepActive(ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, enteredSAS: ObvOwnedIdentityTransferSas, ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult, currentDeviceIdentifier: Data, targetDeviceName: String, deviceToKeepActive: ObvOwnedDeviceDiscoveryResult.Device?, protocolInstanceUID: UID) async {} + func userWantsToSeeMultideviceSubscriptionsOptions() async {} + + func fetchSubscriptionPlans(for ownedCryptoId: ObvCryptoId, alsoFetchFreePlan: Bool) async throws -> (freePlanIsAvailable: Bool, products: [Product]) { + try! await Task.sleep(seconds: 1) + return (alsoFetchFreePlan, []) + } + + func userWantsToStartFreeTrialNow(ownedCryptoId: ObvTypes.ObvCryptoId) async throws -> APIKeyElements { + try! await Task.sleep(seconds: 2) + return .init(status: .freeTrial, permissions: [.canCall], expirationDate: Date().addingTimeInterval(.init(days: 30))) + } + + func userWantsToBuy(_: Product) async -> StoreKitDelegatePurchaseResult { + try! await Task.sleep(seconds: 2) + return .userCancelled + } + + func userWantsToRestorePurchases() async { + try! await Task.sleep(seconds: 2) + } + + func refreshDeviceDiscovery(for ownedCryptoId: ObvCryptoId) async throws -> ObvOwnedDeviceDiscoveryResult { + try? await Task.sleep(seconds: 2) + return ownedDeviceDiscoveryResultWithMultidevice + } + + } + + private static let actions = ActionsForPreviews() + + private static let ownedDetails: CNContact = { + let details = CNMutableContact() + details.givenName = "Steve" + return details + }() + + + private final class ModelForPreviews: ChooseDeviceToKeepActiveViewModelProtocol { + + let ownedCryptoId: ObvCryptoId + let ownedDetails: CNContact + let enteredSAS: ObvOwnedIdentityTransferSas + @Published var ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult + let currentDeviceIdentifier: Data + let targetDeviceName: String + let protocolInstanceUID: UID + + init(ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, enteredSAS: ObvOwnedIdentityTransferSas, ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult, currentDeviceIdentifier: Data, targetDeviceName: String, protocolInstanceUID: UID) { + self.ownedCryptoId = ownedCryptoId + self.ownedDetails = ownedDetails + self.enteredSAS = enteredSAS + self.ownedDeviceDiscoveryResult = ownedDeviceDiscoveryResult + self.currentDeviceIdentifier = currentDeviceIdentifier + self.targetDeviceName = targetDeviceName + self.protocolInstanceUID = protocolInstanceUID + } + + func resetOwnedDeviceDiscoveryResult(with newObvOwnedDeviceDiscoveryResult: ObvTypes.ObvOwnedDeviceDiscoveryResult) async { + withAnimation { + self.ownedDeviceDiscoveryResult = newObvOwnedDeviceDiscoveryResult + } + } + + } + + private static let model = ModelForPreviews( + ownedCryptoId: ownedCryptoId, + ownedDetails: ownedDetails, + enteredSAS: enteredSAS, + ownedDeviceDiscoveryResult: ownedDeviceDiscoveryResult, + currentDeviceIdentifier: UID.zero.raw, + targetDeviceName: "New Device Name", + protocolInstanceUID: UID.zero) + + static var previews: some View { + ChooseDeviceToKeepActiveView( + actions: actions, + model: model) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/03ChooseDeviceToKeepActive/ChooseDeviceToKeepActiveViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/03ChooseDeviceToKeepActive/ChooseDeviceToKeepActiveViewController.swift new file mode 100644 index 00000000..06e68a86 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/03ChooseDeviceToKeepActive/ChooseDeviceToKeepActiveViewController.swift @@ -0,0 +1,187 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import StoreKit +import ObvTypes +import ObvCrypto +import Contacts + + +protocol ChooseDeviceToKeepActiveViewControllerDelegate: AnyObject, SubscriptionPlansViewActionsProtocol { + func userChoseDeviceToKeepActive(controller: ChooseDeviceToKeepActiveViewController, ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, enteredSAS: ObvOwnedIdentityTransferSas, ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult, currentDeviceIdentifier: Data, targetDeviceName: String, deviceToKeepActive: ObvOwnedDeviceDiscoveryResult.Device?, protocolInstanceUID: UID) async + func userDidCancelOwnedIdentityTransferProtocol(controller: ChooseDeviceToKeepActiveViewController) async + func refreshDeviceDiscovery(controller: ChooseDeviceToKeepActiveViewController, for ownedCryptoId: ObvCryptoId) async throws -> ObvOwnedDeviceDiscoveryResult +} + + +final class ChooseDeviceToKeepActiveViewController: UIHostingController>, ChooseDeviceToKeepActiveViewActionsProtocol { + + private weak var delegate: ChooseDeviceToKeepActiveViewControllerDelegate? + + init(model: ChooseDeviceToKeepActiveViewModel, delegate: ChooseDeviceToKeepActiveViewControllerDelegate) { + let actions = ChooseDeviceToKeepActiveViewActions() + let view = ChooseDeviceToKeepActiveView(actions: actions, model: model) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = .systemBackground + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelButtonTapped)) + } + + + @objc + private func cancelButtonTapped() { + Task { [weak self] in + guard let self else { return } + await delegate?.userDidCancelOwnedIdentityTransferProtocol(controller: self) + } + } + + + // ChooseDeviceToKeepActiveViewActionsProtocol + + func userChoseDeviceToKeepActive(ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, enteredSAS: ObvOwnedIdentityTransferSas, ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult, currentDeviceIdentifier: Data, targetDeviceName: String, deviceToKeepActive: ObvOwnedDeviceDiscoveryResult.Device?, protocolInstanceUID: UID) async { + await delegate?.userChoseDeviceToKeepActive( + controller: self, + ownedCryptoId: ownedCryptoId, + ownedDetails: ownedDetails, + enteredSAS: enteredSAS, + ownedDeviceDiscoveryResult: ownedDeviceDiscoveryResult, + currentDeviceIdentifier: currentDeviceIdentifier, + targetDeviceName: targetDeviceName, + deviceToKeepActive: deviceToKeepActive, + protocolInstanceUID: protocolInstanceUID) + } + + + // SubscriptionPlansViewActionsProtocol (required for ChooseDeviceToKeepActiveViewActionsProtocol) + + func fetchSubscriptionPlans(for ownedCryptoId: ObvCryptoId, alsoFetchFreePlan: Bool) async throws -> (freePlanIsAvailable: Bool, products: [Product]) { + guard let delegate else { assertionFailure(); throw ObvError.delegateIsNil } + return try await delegate.fetchSubscriptionPlans(for: ownedCryptoId, alsoFetchFreePlan: alsoFetchFreePlan) + } + + + func userWantsToStartFreeTrialNow(ownedCryptoId: ObvCryptoId) async throws -> APIKeyElements { + assertionFailure("Not expected to be called here. The subscription view shall only show plans allowing to subscribe to multidevice") + throw ObvError.cannotStartFreeTrialDuringOnboarding + } + + + func userWantsToBuy(_ product: Product) async throws -> StoreKitDelegatePurchaseResult { + guard let delegate else { assertionFailure(); throw ObvError.delegateIsNil } + return try await delegate.userWantsToBuy(product) + } + + + func userWantsToRestorePurchases() async throws { + guard let delegate else { assertionFailure(); throw ObvError.delegateIsNil } + try await delegate.userWantsToRestorePurchases() + } + + + func refreshDeviceDiscovery(for ownedCryptoId: ObvCryptoId) async throws -> ObvOwnedDeviceDiscoveryResult { + guard let delegate else { assertionFailure(); throw ObvError.delegateIsNil } + return try await delegate.refreshDeviceDiscovery(controller: self, for: ownedCryptoId) + } + + enum ObvError: Error { + case delegateIsNil + case cannotStartFreeTrialDuringOnboarding + } + +} + + +private final class ChooseDeviceToKeepActiveViewActions: ChooseDeviceToKeepActiveViewActionsProtocol { + + weak var delegate: ChooseDeviceToKeepActiveViewActionsProtocol? + + func userChoseDeviceToKeepActive(ownedCryptoId: ObvCryptoId, ownedDetails: CNContact, enteredSAS: ObvOwnedIdentityTransferSas, ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult, currentDeviceIdentifier: Data, targetDeviceName: String, deviceToKeepActive: ObvOwnedDeviceDiscoveryResult.Device?, protocolInstanceUID: UID) async { + await delegate?.userChoseDeviceToKeepActive( + ownedCryptoId: ownedCryptoId, + ownedDetails: ownedDetails, + enteredSAS: enteredSAS, + ownedDeviceDiscoveryResult: ownedDeviceDiscoveryResult, + currentDeviceIdentifier: currentDeviceIdentifier, + targetDeviceName: targetDeviceName, + deviceToKeepActive: deviceToKeepActive, + protocolInstanceUID: protocolInstanceUID) + } + + + // SubscriptionPlansViewActionsProtocol (required for ChooseDeviceToKeepActiveViewActionsProtocol) + + func fetchSubscriptionPlans(for ownedCryptoId: ObvCryptoId, alsoFetchFreePlan: Bool) async throws -> (freePlanIsAvailable: Bool, products: [Product]) { + guard let delegate else { assertionFailure(); throw ObvError.delegateIsNil } + return try await delegate.fetchSubscriptionPlans(for: ownedCryptoId, alsoFetchFreePlan: alsoFetchFreePlan) + } + + func userWantsToStartFreeTrialNow(ownedCryptoId: ObvCryptoId) async throws -> APIKeyElements { + guard let delegate else { assertionFailure(); throw ObvError.delegateIsNil } + return try await delegate.userWantsToStartFreeTrialNow(ownedCryptoId: ownedCryptoId) + } + + + func userWantsToBuy(_ product: Product) async throws -> StoreKitDelegatePurchaseResult { + guard let delegate else { assertionFailure(); throw ObvError.delegateIsNil } + return try await delegate.userWantsToBuy(product) + } + + + func userWantsToRestorePurchases() async throws { + guard let delegate else { assertionFailure(); throw ObvError.delegateIsNil } + try await delegate.userWantsToRestorePurchases() + } + + + func refreshDeviceDiscovery(for ownedCryptoId: ObvCryptoId) async throws -> ObvOwnedDeviceDiscoveryResult { + guard let delegate else { assertionFailure(); throw ObvError.delegateIsNil } + return try await delegate.refreshDeviceDiscovery(for: ownedCryptoId) + } + + enum ObvError: Error { + case delegateIsNil + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/04OwnedIdentityTransferSummary/OwnedIdentityTransferSummaryView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/04OwnedIdentityTransferSummary/OwnedIdentityTransferSummaryView.swift new file mode 100644 index 00000000..750057c6 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/04OwnedIdentityTransferSummary/OwnedIdentityTransferSummaryView.swift @@ -0,0 +1,372 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import Contacts +import ObvTypes +import ObvCrypto + + +protocol OwnedIdentityTransferSummaryViewActionsProtocol: AnyObject { + func userDidCancelOwnedIdentityTransferProtocol() async + func userWishesToFinalizeOwnedIdentityTransferFromSourceDevice(enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws +} + + + +struct OwnedIdentityTransferSummaryView: View { + + let actions: OwnedIdentityTransferSummaryViewActionsProtocol + let model: Model + + @State private var isInterfaceDisabled = false + + @State private var errorForAlert: Error? + @State private var isAlertShown = false + + struct Model { + let ownedCryptoId: ObvCryptoId + let ownedDetails: CNContact + let enteredSAS: ObvOwnedIdentityTransferSas + let ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult + let targetDeviceName: String + let deviceToKeepActive: ObvOwnedDeviceDiscoveryResult.Device? + let protocolInstanceUID: UID + } + + + private var ownedIdentityName: String { + let formatter = PersonNameComponentsFormatter() + formatter.style = .default + return formatter.string(from: model.ownedDetails.personNameComponents) + } + + + private var jobTitleAndOrganizationName: String? { + let jobTitle = model.ownedDetails.jobTitle.mapToNilIfZeroLength() + let organizationName = model.ownedDetails.organizationName.mapToNilIfZeroLength() + switch (jobTitle, organizationName) { + case (.none, .none): + return nil + case (.some(let jobTitle), .none): + return jobTitle + case (.none, .some(let organizationName)): + return organizationName + case (.some(let jobTitle), .some(let organizationName)): + return [jobTitle, organizationName].joined(separator: "@") + } + } + + + private var nameOfDeviceToKeepActive: String { + if let device = model.deviceToKeepActive { + return device.name ?? String(device.identifier.hexString().prefix(4)) + } else { + return model.targetDeviceName + } + } + + + private func cancelButtonTapped() { + isInterfaceDisabled = true + Task { + await actions.userDidCancelOwnedIdentityTransferProtocol() + } + } + + static let fakeDeviceIdForNewDevice: Data = Data(repeating: 0, count: 1) + + private func proceedButtonTapped() { + let deviceToKeepActive: UID? + // The ChooseDeviceToKeepActiveView.fakeDeviceIdForNewDevice was used to give a fake identifier to the target device. + // Setting the deviceToKeepActive to nil means "keep target device active". + if let identifier = model.deviceToKeepActive?.identifier, identifier != Self.fakeDeviceIdForNewDevice { + guard let uid = UID(uid: identifier) else { assertionFailure(); return } + deviceToKeepActive = uid + } else { + deviceToKeepActive = nil + } + isInterfaceDisabled = true + Task { + do { + try await actions.userWishesToFinalizeOwnedIdentityTransferFromSourceDevice( + enteredSAS: model.enteredSAS, + deviceToKeepActive: deviceToKeepActive, + ownedCryptoId: model.ownedCryptoId, + protocolInstanceUID: model.protocolInstanceUID) + } catch { + errorForAlert = error + isAlertShown = true + } + } + } + + + private var alertTitle: LocalizedStringKey { + if let errorForAlert { + return "COULD_NOT_PERFORM_OWNED_IDENTITY_TRANSFER_ALERT_\(ObvMessengerConstants.toEmailForSendingInitializationFailureErrorMessage)_\((errorForAlert as NSError).description)" + } else { + return "COULD_NOT_PERFORM_OWNED_IDENTITY_TRANSFER_ALERT_\(ObvMessengerConstants.toEmailForSendingInitializationFailureErrorMessage)" + } + } + + + var body: some View { + + VStack { + + ScrollView { + VStack { + + NewOnboardingHeaderView( + title: "OWNED_IDENTITY_SUMMARY_VIEW_TITLE", + subtitle: "OWNED_IDENTITY_SUMMARY_VIEW_SUBTITLE") + + Divider() + .padding(.top) + + HStack(alignment: .top) { + + HStack { + + Label( + title: { + VStack(alignment: .leading) { + Text("PROFILE_YOU_ARE_ABOUT_TO_ADD_TO_NEW_DEVICE") + .font(.headline) + Text(verbatim: ownedIdentityName) + .font(.subheadline) + .foregroundStyle(.secondary) + if let jobTitleAndOrganizationName { + Text(verbatim: jobTitleAndOrganizationName) + .font(.subheadline) + .foregroundStyle(.secondary) + } + } + }, + icon: { + Image(systemIcon: .person) + } + ) + + Spacer() + }.padding(.top) + + + HStack { + + Label( + title: { + VStack(alignment: .leading) { + Text("WILL_BE_ADDED_TO_THIS_DEVICE") + .font(.headline) + Text(verbatim: model.targetDeviceName) + .font(.subheadline) + .foregroundStyle(.secondary) + } + }, + icon: { + Image(systemIcon: .laptopcomputerAndIphone) + } + ) + + Spacer() + }.padding(.top) + + } + + Divider() + .padding(.top) + + if !model.ownedDeviceDiscoveryResult.isMultidevice { + + HStack { + + Label( + title: { + VStack(alignment: .leading) { + Text("THE_FOLLOWING_DEVICE_WILL_REMAIN_ACTIVE") + .font(.headline) + Text(verbatim: nameOfDeviceToKeepActive) + .font(.subheadline) + .foregroundStyle(.secondary) + Text("YOUR_OTHER_DEVICES_WILL_BE_DEACTIVATED_EXPLANATION") + .foregroundStyle(.secondary) + .padding(.top) + } + }, + icon: { + Image(systemIcon: .poweroff) + } + ) + + Spacer() + }.padding(.top) + + Divider() + .padding(.top) + + } + + + if isInterfaceDisabled { + HStack { + Spacer() + ProgressView() + Spacer() + }.padding(.top) + } + + + }.padding(.horizontal) + } + + HStack { + InternalButton("Cancel", style: .red, action: cancelButtonTapped) + InternalButton("VALIDATE", style: .blue, action: proceedButtonTapped) + }.padding() + + } + .disabled(isInterfaceDisabled) + .alert(alertTitle, isPresented: $isAlertShown) { + Button("OK", role: .cancel) { } + if let errorForAlert { + Button("COPY_ERROR", role: .none) { UIPasteboard.general.string = (errorForAlert as NSError).description } + } + } + + } +} + + +// MARK: - Button used in this view only + +private struct InternalButton: View { + + enum Style { + case red + case blue + } + + private var backgroundColor: Color { + switch style { + case .red: + return Color(UIColor.systemRed) + case .blue: + return Color("Blue01") + } + } + + private let key: LocalizedStringKey + private let action: () -> Void + private let style: Style + @Environment(\.isEnabled) var isEnabled + + init(_ key: LocalizedStringKey, style: Style, action: @escaping () -> Void) { + self.key = key + self.action = action + self.style = style + } + + var body: some View { + Button(action: action) { + Text(key) + .foregroundStyle(.white) + .padding(.horizontal, 26) + .padding(.vertical, 16) + .frame(maxWidth: .infinity) + } + .background(backgroundColor) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + } + +} + + +extension CNContact { + + var personNameComponents: PersonNameComponents { + .init(namePrefix: self.namePrefix, + givenName: self.givenName, + middleName: self.middleName, + familyName: self.familyName, + nameSuffix: self.nameSuffix, + nickname: self.nickname, + phoneticRepresentation: nil) + } + +} + + + + +// MARK: - Previews + +struct OwnedIdentityTransferSummaryView_Previews: PreviewProvider { + + private static let ownedDetails: CNContact = { + let contact = CNMutableContact() + contact.givenName = "Steve" + contact.familyName = "Jobs" + contact.jobTitle = "CEO" + contact.organizationName = "Apple" + contact.nickname = "The boss" + return contact + }() + + private static let devices: Set = Set([ + .init(identifier: UID(uid: Data(repeating: 0x01, count: UID.length))!.raw, + expirationDate: Date(timeIntervalSinceNow: 400), + latestRegistrationDate: Date(timeIntervalSinceNow: -200), + name: "iPad Pro"), + .init(identifier: UID.zero.raw, + expirationDate: Date(timeIntervalSinceNow: 500), + latestRegistrationDate: Date(timeIntervalSinceNow: -100), + name: "iPhone 15"), + ]) + + private static let ownedDeviceDiscoveryResult: ObvOwnedDeviceDiscoveryResult = .init( + devices: devices, + isMultidevice: false) + + private static let ownedCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!) + + private static let enteredSAS = try! ObvOwnedIdentityTransferSas(fullSas: "12345678".data(using: .utf8)!) + + private final class ActionsForPreviews: OwnedIdentityTransferSummaryViewActionsProtocol { + func userDidCancelOwnedIdentityTransferProtocol() async {} + func userWishesToFinalizeOwnedIdentityTransferFromSourceDevice(enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws {} + } + + private static let actions = ActionsForPreviews() + + static var previews: some View { + OwnedIdentityTransferSummaryView(actions: actions, + model: .init(ownedCryptoId: ownedCryptoId, + ownedDetails: ownedDetails, + enteredSAS: enteredSAS, + ownedDeviceDiscoveryResult: ownedDeviceDiscoveryResult, + targetDeviceName: "iPhone 13", + deviceToKeepActive: devices.first, + protocolInstanceUID: UID.zero)) + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/04OwnedIdentityTransferSummary/OwnedIdentityTransferSummaryViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/04OwnedIdentityTransferSummary/OwnedIdentityTransferSummaryViewController.swift new file mode 100644 index 00000000..8c742510 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnSourceDevice/04OwnedIdentityTransferSummary/OwnedIdentityTransferSummaryViewController.swift @@ -0,0 +1,108 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import ObvTypes +import ObvCrypto + + +protocol OwnedIdentityTransferSummaryViewControllerDelegate: AnyObject { + + func userDidCancelOwnedIdentityTransferProtocol(controller: OwnedIdentityTransferSummaryViewController) async + func userWishesToFinalizeOwnedIdentityTransferFromSourceDevice(controller: OwnedIdentityTransferSummaryViewController, enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws + +} + + +final class OwnedIdentityTransferSummaryViewController: UIHostingController, OwnedIdentityTransferSummaryViewActionsProtocol { + + private var delegate: OwnedIdentityTransferSummaryViewControllerDelegate? + + init(model: OwnedIdentityTransferSummaryView.Model, delegate: OwnedIdentityTransferSummaryViewControllerDelegate) { + let actions = OwnedIdentityTransferSummaryViewActions() + let view = OwnedIdentityTransferSummaryView(actions: actions, model: model) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = .systemBackground + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + } + + + // OwnedIdentityTransferSummaryViewActionsProtocol + + func userDidCancelOwnedIdentityTransferProtocol() async { + await delegate?.userDidCancelOwnedIdentityTransferProtocol(controller: self) + } + + + func userWishesToFinalizeOwnedIdentityTransferFromSourceDevice(enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws { + try await delegate?.userWishesToFinalizeOwnedIdentityTransferFromSourceDevice( + controller: self, + enteredSAS: enteredSAS, + deviceToKeepActive: deviceToKeepActive, + ownedCryptoId: ownedCryptoId, + protocolInstanceUID: protocolInstanceUID) + } + + +} + + +private final class OwnedIdentityTransferSummaryViewActions: OwnedIdentityTransferSummaryViewActionsProtocol { + + weak var delegate: OwnedIdentityTransferSummaryViewActionsProtocol? + + func userDidCancelOwnedIdentityTransferProtocol() async { + await delegate?.userDidCancelOwnedIdentityTransferProtocol() + } + + + func userWishesToFinalizeOwnedIdentityTransferFromSourceDevice(enteredSAS: ObvOwnedIdentityTransferSas, deviceToKeepActive: UID?, ownedCryptoId: ObvCryptoId, protocolInstanceUID: UID) async throws { + try await delegate?.userWishesToFinalizeOwnedIdentityTransferFromSourceDevice( + enteredSAS: enteredSAS, + deviceToKeepActive: deviceToKeepActive, + ownedCryptoId: ownedCryptoId, + protocolInstanceUID: protocolInstanceUID) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/01TransfertProtocolTargetCodeForm/TransfertProtocolTargetCodeFormView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/01TransfertProtocolTargetCodeForm/TransfertProtocolTargetCodeFormView.swift new file mode 100644 index 00000000..c9e72015 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/01TransfertProtocolTargetCodeForm/TransfertProtocolTargetCodeFormView.swift @@ -0,0 +1,379 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvTypes +import Combine +import ObvCrypto + + +protocol TransfertProtocolTargetCodeFormViewActionsProtocol: AnyObject { + func userEnteredTransferSessionNumberOnTargetDevice(transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void) async throws + func sasIsAvailable(protocolInstanceUID: UID, sas: ObvOwnedIdentityTransferSas) async +} + + +struct TransfertProtocolTargetCodeFormView: View, SessionNumberTextFieldActionsProtocol { + + let actions: TransfertProtocolTargetCodeFormViewActionsProtocol + + private enum AlertType { + case userEnteredIncorrectSessionNumber + case seriousError + } + + @State private var enteredTransferSessionNumber: ObvOwnedIdentityTransferSessionNumber? + @State private var engineIsProcessingEnteredSessionNumber = false + @State private var sasAvailable = false + @State private var shownAlert: AlertType? = nil + + // SessionNumberTextFieldActionsProtocol + + func userEnteredSessionNumber(sessionNumber: String) async { + guard let sessionNumber = try? Int(sessionNumber, format: .number) else { assertionFailure(); return } + guard let transferSessionNumber = try? ObvOwnedIdentityTransferSessionNumber(sessionNumber: sessionNumber) else { return } + shownAlert = nil + withAnimation { + enteredTransferSessionNumber = transferSessionNumber + } + } + + + func userIsTypingSessionNumber() { + shownAlert = nil + withAnimation { + enteredTransferSessionNumber = nil + } + } + + + private func userTappedConfirmButton() { + guard let enteredTransferSessionNumber else { assertionFailure(); return } + withAnimation { + engineIsProcessingEnteredSessionNumber = true + shownAlert = nil + } + Task { + do { + try await actions.userEnteredTransferSessionNumberOnTargetDevice( + transferSessionNumber: enteredTransferSessionNumber, + onIncorrectTransferSessionNumber: { Task { await onIncorrectTransferSessionNumber() } }, + onAvailableSas: { (uid, sas) in Task { await onAvailableSas(uid, sas) } }) + } catch { + engineIsProcessingEnteredSessionNumber = false + shownAlert = .seriousError + } + } + } + + + /// Called by the engine if the `enteredTransferSessionNumber` happens to be incorrect + @MainActor + private func onIncorrectTransferSessionNumber() async { + withAnimation { + engineIsProcessingEnteredSessionNumber = false + shownAlert = .userEnteredIncorrectSessionNumber + } + } + + + /// Called by the engine if something went really wrong + @MainActor + private func onAvailableSas(_ protocolInstanceUID: UID, _ sas: ObvOwnedIdentityTransferSas) async { + shownAlert = nil + engineIsProcessingEnteredSessionNumber = false + sasAvailable = true + await actions.sasIsAvailable(protocolInstanceUID: protocolInstanceUID, sas: sas) + } + + + private func alertTitle(for alertType: AlertType) -> LocalizedStringKey { + switch alertType { + case .userEnteredIncorrectSessionNumber: + return "OWNED_IDENTITY_TRANSFER_INCORRECT_TRANSFER_SESSION_NUMBER" + case .seriousError: + return "OWNED_IDENTITY_TRANSFER_INCORRECT_SERIOUS_ERROR" + } + } + + + var body: some View { + VStack { + + ScrollView { + + ScrollViewReader { reader in + + NewOnboardingHeaderView(title: "OWNED_IDENTITY_TRANSFER_ENTER_CODE_FROM_OTHER_DEVICE", subtitle: nil) + + Text("OWNED_IDENTITY_TRANSFER_ENTER_CODE_FROM_OTHER_DEVICE_BODY") + .font(.body) + .padding(.top) + + SessionNumberTextField(actions: self, model: .init(mode: .enterSessionNumber)) + .id("SessionNumberTextField") + .padding(.top) + .disabled(engineIsProcessingEnteredSessionNumber || sasAvailable) + .onTapGesture { + // Allows the text field to be properly above the keyboard, the automatic scrolling is not enough + if UIDevice.current.userInterfaceIdiom == .phone { + reader.scrollTo("SessionNumberTextField", anchor: .top) + } + } + + ProgressView() + .opacity(engineIsProcessingEnteredSessionNumber ? 1.0 : 0) + + if let shownAlert { + HStack { + Label( + title: { Text(alertTitle(for: shownAlert)) }, + icon: { + Image(systemIcon: .xmarkCircle) + .renderingMode(.template) + .foregroundColor(Color(.systemRed)) + }) + Spacer() + } + } + + } + + } + + InternalButton("OWNED_IDENTITY_TRANSFER_ENTER_CODE_FROM_OTHER_DEVICE_BUTTON_TITLE", action: userTappedConfirmButton) + .disabled(enteredTransferSessionNumber == nil || engineIsProcessingEnteredSessionNumber || sasAvailable) + .padding(.bottom) + + } + .padding(.horizontal) + } + + +} + + +protocol SessionNumberTextFieldActionsProtocol { + func userEnteredSessionNumber(sessionNumber: String) async + func userIsTypingSessionNumber() +} + + +struct SessionNumberTextField: View, SingleDigitTextFielddActions { + + let actions: SessionNumberTextFieldActionsProtocol + let model: Model + + enum Mode { + case showSessionNumber(sessionNumber: ObvOwnedIdentityTransferSessionNumber) + case enterSessionNumber + } + + struct Model { + let mode: Mode + } + + @State private var textValue0: String = "" + @State private var textValue1: String = "" + @State private var textValue2: String = "" + @State private var textValue3: String = "" + @State private var textValue4: String = "" + @State private var textValue5: String = "" + @State private var textValue6: String = "" + @State private var textValue7: String = "" + + private var textValues: [String] { + [textValue0, textValue1, textValue2, textValue3, + textValue4, textValue5, textValue6, textValue7] + } + + @FocusState private var indexOfFocusedField: Int? + + private func clearAll() { + textValue0 = "" + textValue1 = "" + textValue2 = "" + textValue3 = "" + textValue4 = "" + textValue5 = "" + textValue6 = "" + textValue7 = "" + indexOfFocusedField = nil + } + + + private var showClearButton: Bool { + switch model.mode { + case .enterSessionNumber: + return true + case .showSessionNumber: + return false + } + } + + + // SingleTextFieldActions + + /// Called by the ``SingleTextField`` at index `index` each time its text value changes. + func singleTextFieldDidChangeAtIndex(_ index: Int) { + gotoNextTextFieldIfPossible(fromIndex: index) + if let enteredSessionNumber { + indexOfFocusedField = nil + Task { + await actions.userEnteredSessionNumber(sessionNumber: enteredSessionNumber) + } + } else { + actions.userIsTypingSessionNumber() + } + } + + // Helpers + + /// Returns an 8 characters session number if the texts in the text fields allow to compute one. + /// Returns `nil` otherwise. + private var enteredSessionNumber: String? { + let concatenation = textValues + .reduce("", { $0 + $1 }) + .removingAllCharactersNotInCharacterSet(.decimalDigits) + return concatenation.count == ObvOwnedIdentityTransferSessionNumber.expectedCount ? concatenation : nil + } + + private func gotoNextTextFieldIfPossible(fromIndex: Int) { + guard fromIndex < 7 else { return } + let toIndex = fromIndex + 1 + if textValues[fromIndex].count == 1, textValues[toIndex].count < 1 { + indexOfFocusedField = toIndex + } + } + + + // Body + + var body: some View { + VStack { + HStack { + SingleDigitTextField("X", text: $textValue0, actions: self, model: .init(index: 0)) + SingleDigitTextField("X", text: $textValue1, actions: self, model: .init(index: 1)) + .focused($indexOfFocusedField, equals: 1) + SingleDigitTextField("X", text: $textValue2, actions: self, model: .init(index: 2)) + .focused($indexOfFocusedField, equals: 2) + SingleDigitTextField("X", text: $textValue3, actions: self, model: .init(index: 3)) + .focused($indexOfFocusedField, equals: 3) + SingleDigitTextField("X", text: $textValue4, actions: self, model: .init(index: 4)) + .focused($indexOfFocusedField, equals: 4) + SingleDigitTextField("X", text: $textValue5, actions: self, model: .init(index: 5)) + .focused($indexOfFocusedField, equals: 5) + SingleDigitTextField("X", text: $textValue6, actions: self, model: .init(index: 6)) + .focused($indexOfFocusedField, equals: 6) + SingleDigitTextField("X", text: $textValue7, actions: self, model: .init(index: 7)) + .focused($indexOfFocusedField, equals: 7) + } + if showClearButton { + HStack { + Spacer() + Button("CLEAR_ALL", action: clearAll) + }.padding(.top, 4) + } + } + } + +} + + +// MARK: - Button used in this view only + +private struct InternalButton: View { + + private let key: LocalizedStringKey + private let action: () -> Void + @Environment(\.isEnabled) var isEnabled + + init(_ key: LocalizedStringKey, action: @escaping () -> Void) { + self.key = key + self.action = action + } + + var body: some View { + Button(action: action) { + Text(key) + .foregroundStyle(.white) + .padding(.horizontal, 26) + .padding(.vertical, 16) + .frame(maxWidth: .infinity) + } + .background(Color("Blue01")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + } + +} + + +// MARK: - Private helpers + +fileprivate extension String { + func removingAllCharactersNotInCharacterSet(_ characterSet: CharacterSet) -> String { + return String(self + .trimmingWhitespacesAndNewlines() + .unicodeScalars + .filter({ + characterSet.contains($0) + })) + } +} + + +// MARK: - Previews + + +struct TransfertProtocolTargetCodeFormView_Previews: PreviewProvider { + + + private final class ActionsForPreviews: TransfertProtocolTargetCodeFormViewActionsProtocol { + + private static let protocolInstanceUIDForPreviews = UID.zero + private static let sasForPreviews = try! ObvOwnedIdentityTransferSas(fullSas: "12345678".data(using: .utf8)!) + + func userEnteredTransferSessionNumberOnTargetDevice(transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void) async throws { + + try! await Task.sleep(seconds: 1) + + if transferSessionNumber.sessionNumber == 0 { + onAvailableSas(Self.protocolInstanceUIDForPreviews, Self.sasForPreviews) + } else { + onIncorrectTransferSessionNumber() + } + + } + + func sasIsAvailable(protocolInstanceUID: UID, sas: ObvOwnedIdentityTransferSas) async {} + + } + + private static let actions = ActionsForPreviews() + + private enum ObvError: Error { + case fakeErrorForPreviews + } + + static var previews: some View { + TransfertProtocolTargetCodeFormView(actions: actions) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/01TransfertProtocolTargetCodeForm/TransfertProtocolTargetCodeFormViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/01TransfertProtocolTargetCodeForm/TransfertProtocolTargetCodeFormViewController.swift new file mode 100644 index 00000000..532e8a07 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/01TransfertProtocolTargetCodeForm/TransfertProtocolTargetCodeFormViewController.swift @@ -0,0 +1,101 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import ObvTypes +import ObvCrypto + + +protocol TransfertProtocolTargetCodeFormViewControllerDelegate: AnyObject { + func userEnteredTransferSessionNumberOnTargetDevice(controller: TransfertProtocolTargetCodeFormViewController, transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void) async throws + func sasIsAvailable(controller: TransfertProtocolTargetCodeFormViewController, protocolInstanceUID: UID, sas: ObvOwnedIdentityTransferSas) async +} + + +final class TransfertProtocolTargetCodeFormViewController: UIHostingController, TransfertProtocolTargetCodeFormViewActionsProtocol { + + private weak var delegate: TransfertProtocolTargetCodeFormViewControllerDelegate? + + init(delegate: TransfertProtocolTargetCodeFormViewControllerDelegate) { + let actions = TransfertProtocolTargetCodeFormViewActions() + let view = TransfertProtocolTargetCodeFormView(actions: actions) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = .systemBackground + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + } + + // TransfertProtocolTargetCodeFormViewActionsProtocol + + func userEnteredTransferSessionNumberOnTargetDevice(transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void) async throws { + try await delegate?.userEnteredTransferSessionNumberOnTargetDevice( + controller: self, + transferSessionNumber: transferSessionNumber, + onIncorrectTransferSessionNumber: onIncorrectTransferSessionNumber, + onAvailableSas: onAvailableSas) + } + + func sasIsAvailable(protocolInstanceUID: UID, sas: ObvOwnedIdentityTransferSas) async { + await delegate?.sasIsAvailable(controller: self, protocolInstanceUID: protocolInstanceUID, sas: sas) + } + +} + + +private final class TransfertProtocolTargetCodeFormViewActions: TransfertProtocolTargetCodeFormViewActionsProtocol { + + weak var delegate: TransfertProtocolTargetCodeFormViewActionsProtocol? + + func userEnteredTransferSessionNumberOnTargetDevice(transferSessionNumber: ObvOwnedIdentityTransferSessionNumber, onIncorrectTransferSessionNumber: @escaping () -> Void, onAvailableSas: @escaping (UID, ObvOwnedIdentityTransferSas) -> Void) async throws { + try await delegate?.userEnteredTransferSessionNumberOnTargetDevice( + transferSessionNumber: transferSessionNumber, + onIncorrectTransferSessionNumber: onIncorrectTransferSessionNumber, + onAvailableSas: onAvailableSas) + } + + + func sasIsAvailable(protocolInstanceUID: UID, sas: ObvOwnedIdentityTransferSas) async { + await delegate?.sasIsAvailable(protocolInstanceUID: protocolInstanceUID, sas: sas) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/02TransferProtocolTargetShowSas/TransferProtocolTargetShowSasView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/02TransferProtocolTargetShowSas/TransferProtocolTargetShowSasView.swift new file mode 100644 index 00000000..ba364c19 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/02TransferProtocolTargetShowSas/TransferProtocolTargetShowSasView.swift @@ -0,0 +1,156 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvTypes +import ObvCrypto + + +protocol TransferProtocolTargetShowSasViewActionsProtocol: AnyObject { + func targetDeviceIsShowingSasAndExpectingEndOfProtocol(protocolInstanceUID: UID, onSyncSnapshotReception: @escaping () -> Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async + func successfulTransferWasPerformedOnThisTargetDevice(transferredOwnedCryptoId: ObvCryptoId, postTransferError: Error?) async +} + + +struct TransferProtocolTargetShowSasView: View { + + let actions: TransferProtocolTargetShowSasViewActionsProtocol + let model: Model + + @State private var isSpinnerShown = false + + struct Model { + let protocolInstanceUID: UID + let sas: ObvOwnedIdentityTransferSas + } + + private func onAppear() { + Task { + await actions.targetDeviceIsShowingSasAndExpectingEndOfProtocol( + protocolInstanceUID: model.protocolInstanceUID, + onSyncSnapshotReception: onSyncSnapshotReception, + onSuccessfulTransfer: onSuccessfulTransfer) + } + } + + + private func onSyncSnapshotReception() { + DispatchQueue.main.async { + isSpinnerShown = true + } + } + + + private func onSuccessfulTransfer(_ transferredOwnedCryptoId: ObvCryptoId, _ postTransferError: Error?) { + DispatchQueue.main.async { + isSpinnerShown = false + Task { + // This call will allow to push the last screen for the transfer + // The postTransferError, if not nil, is the error occuring after a successful restore at the engine level, when something goes wrong at the app leve, or when setting the unexpiring device. We display this error on the last screen, by we cannot do much better. + await actions.successfulTransferWasPerformedOnThisTargetDevice(transferredOwnedCryptoId: transferredOwnedCryptoId, postTransferError: postTransferError) + } + } + } + + + var body: some View { + ScrollView { + VStack { + + NewOnboardingHeaderView(title: "OWNED_IDENTITY_TRANSFER_ENTER_CODE_ON_OTHER_DEVICE", subtitle: nil) + + OnboardingSasView(sas: model.sas) + .padding(.top) + + HStack { + Text("OWNED_IDENTITY_TRANSFER_TARGET_LAST_STEP") + Spacer() + } + .padding(.top) + .font(.body) + + // Show an activity indicator when the snapshot is receive from the source device, + // and thus processing (restored, register to push notifications, keep device active) + // on this target device. + + HStack { + Spacer() + ProgressView() + Spacer() + } + .padding(.top) + .opacity(isSpinnerShown ? 1.0 : 0.0) + + } + .padding(.horizontal) + } + .onAppear(perform: onAppear) + } + +} + + +private struct OnboardingSasView: View { + + let sas: ObvOwnedIdentityTransferSas + + var body: some View { + HStack { + ForEach((0.. Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async { + try! await Task.sleep(seconds: 0) + onSyncSnapshotReception() + try! await Task.sleep(seconds: 0) + } + + + func successfulTransferWasPerformedOnThisTargetDevice(transferredOwnedCryptoId: ObvCryptoId, postTransferError: Error?) async {} + + } + + private static let actions = ActionsForPreviews() + + static var previews: some View { + TransferProtocolTargetShowSasView(actions: actions, model: .init(protocolInstanceUID: UID.zero, sas: Self.sasForPreviews)) + } + + fileprivate enum ObvError: Error { + case errorForPreviews + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/02TransferProtocolTargetShowSas/TransferProtocolTargetShowSasViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/02TransferProtocolTargetShowSas/TransferProtocolTargetShowSasViewController.swift new file mode 100644 index 00000000..22ae12a1 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/02TransferProtocolTargetShowSas/TransferProtocolTargetShowSasViewController.swift @@ -0,0 +1,120 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import UIKit +import ObvCrypto +import ObvTypes + + +protocol TransferProtocolTargetShowSasViewControllerDelegate: AnyObject { + func targetDeviceIsShowingSasAndExpectingEndOfProtocol(controller: TransferProtocolTargetShowSasViewController, protocolInstanceUID: UID, onSyncSnapshotReception: @escaping () -> Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async + func successfulTransferWasPerformedOnThisTargetDevice(controller: TransferProtocolTargetShowSasViewController, transferredOwnedCryptoId: ObvCryptoId, postTransferError: Error?) async + func userDidCancelOwnedIdentityTransferProtocol(controller: TransferProtocolTargetShowSasViewController) async +} + + +final class TransferProtocolTargetShowSasViewController: UIHostingController, TransferProtocolTargetShowSasViewActionsProtocol { + + private weak var delegate: TransferProtocolTargetShowSasViewControllerDelegate? + + init(model: TransferProtocolTargetShowSasView.Model, delegate: TransferProtocolTargetShowSasViewControllerDelegate) { + let actions = TransferProtocolTargetShowSasViewActions() + let view = TransferProtocolTargetShowSasView(actions: actions, model: model) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = .systemBackground + configureNavigation(animated: false) + // Add a cancel button + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(cancelButtonTapped)) + } + + + @objc + private func cancelButtonTapped() { + Task { [weak self] in + guard let self else { return } + await delegate?.userDidCancelOwnedIdentityTransferProtocol(controller: self) + } + } + + + // TransferProtocolTargetShowSasViewActionsProtocol + + func targetDeviceIsShowingSasAndExpectingEndOfProtocol(protocolInstanceUID: UID, onSyncSnapshotReception: @escaping () -> Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async { + await delegate?.targetDeviceIsShowingSasAndExpectingEndOfProtocol( + controller: self, + protocolInstanceUID: protocolInstanceUID, + onSyncSnapshotReception: onSyncSnapshotReception, + onSuccessfulTransfer: onSuccessfulTransfer) + } + + + func successfulTransferWasPerformedOnThisTargetDevice(transferredOwnedCryptoId: ObvCryptoId, postTransferError: Error?) async { + await delegate?.successfulTransferWasPerformedOnThisTargetDevice( + controller: self, + transferredOwnedCryptoId: transferredOwnedCryptoId, + postTransferError: postTransferError) + } + +} + + +fileprivate final class TransferProtocolTargetShowSasViewActions: TransferProtocolTargetShowSasViewActionsProtocol { + + weak var delegate: TransferProtocolTargetShowSasViewActionsProtocol? + + func targetDeviceIsShowingSasAndExpectingEndOfProtocol(protocolInstanceUID: UID, onSyncSnapshotReception: @escaping () -> Void, onSuccessfulTransfer: @escaping (ObvCryptoId, Error?) -> Void) async { + await delegate?.targetDeviceIsShowingSasAndExpectingEndOfProtocol( + protocolInstanceUID: protocolInstanceUID, + onSyncSnapshotReception: onSyncSnapshotReception, + onSuccessfulTransfer: onSuccessfulTransfer) + } + + + func successfulTransferWasPerformedOnThisTargetDevice(transferredOwnedCryptoId: ObvCryptoId, postTransferError: Error?) async { + await delegate?.successfulTransferWasPerformedOnThisTargetDevice( + transferredOwnedCryptoId: transferredOwnedCryptoId, + postTransferError: postTransferError) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/03SuccessfulTransferConfirmation/SuccessfulTransferConfirmationView.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/03SuccessfulTransferConfirmation/SuccessfulTransferConfirmationView.swift new file mode 100644 index 00000000..014161ff --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/03SuccessfulTransferConfirmation/SuccessfulTransferConfirmationView.swift @@ -0,0 +1,244 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvTypes + + +protocol SuccessfulTransferConfirmationViewActionsProtocol: AnyObject { + func userWantsToDismissOnboardingAfterSuccessfulOwnedIdentityTransferOnThisTargetDevice(transferredOwnedCryptoId: ObvCryptoId, userWantsToAddAnotherProfile: Bool) async +} + + + +struct SuccessfulTransferConfirmationView: View { + + let actions: SuccessfulTransferConfirmationViewActionsProtocol + let model: Model + + struct Model { + let transferredOwnedCryptoId: ObvCryptoId + let postTransferError: Error? + } + + private func doneButtonTapped() { + Task { + await actions.userWantsToDismissOnboardingAfterSuccessfulOwnedIdentityTransferOnThisTargetDevice( + transferredOwnedCryptoId: model.transferredOwnedCryptoId, + userWantsToAddAnotherProfile: false) + } + } + + private func addButtonTapped() { + Task { + await actions.userWantsToDismissOnboardingAfterSuccessfulOwnedIdentityTransferOnThisTargetDevice( + transferredOwnedCryptoId: model.transferredOwnedCryptoId, + userWantsToAddAnotherProfile: true) + } + } + + + private static func stringForError(_ error: Error) -> String { + error.localizedDescription + } + + + var body: some View { + ScrollView { + VStack { + + NewOnboardingHeaderView(title: "PROFILE_ADDED_SUCCESSFULLY", + subtitle: nil) + + + LaptopcomputerAndIphoneView() + .padding(.top) + + // In case something went wrong after a successful snapshot restoratin at the engine level, + // we show the error here. + + if let postTransferError = model.postTransferError { + HStack { + Label( + title: { + VStack(alignment: .leading) { + Text("OWNED_IDENTITY_TRANSFER_KINDA_FAILED_TITLE") + .font(.headline) + .padding(.bottom, 4) + Text("OWNED_IDENTITY_TRANSFER_KINDA_FAILED_BODY_\(ObvMessengerConstants.toEmailForSendingInitializationFailureErrorMessage)") + .font(.body) + .foregroundStyle(.primary) + .padding(.bottom, 4) + Text(verbatim: Self.stringForError(postTransferError)) + .font(.body) + .foregroundStyle(.secondary) + .padding(.bottom, 4) + HStack { + Spacer() + Button("COPY_ERROR_TO_PASTEBOARD") { + UIPasteboard.general.string = Self.stringForError(postTransferError) + } + } + } + }, + icon: { + Image(systemIcon: .exclamationmarkCircle) + .foregroundStyle(Color(UIColor.systemYellow)) + .padding(.trailing) + } + ) + Spacer() + } + .padding(.top) + } + + HStack { + Text("DO_YOU_HAVE_OTHER_PROFILES_TO_ADD") + .font(.body) + .foregroundStyle(.secondary) + Spacer() + }.padding(.top) + + HStack { + InternalButton(style: .white, "ADD_ANOTHER_PROFILE", action: addButtonTapped) + InternalButton(style: .blue, "NO_OTHER_PROFILE_TO_ADD", action: doneButtonTapped) + }.padding(.top) + + Spacer() + + } + .padding(.horizontal) + } + } +} + + +// MARK: - Button used in this view only + +private struct InternalButton: View { + + private let style: Style + private let key: LocalizedStringKey + private let action: () -> Void + @Environment(\.isEnabled) var isEnabled + + enum Style { + case blue + case white + } + + private var backgroundColor: Color { + switch style { + case .blue: + return Color("Blue01") + case .white: + return Color(UIColor.systemBackground) + } + } + + + private var textColor: Color { + switch style { + case .blue: + return .white + case .white: + return Color(UIColor.label) + } + } + + private var borderOpacity: Double { + switch style { + case .blue: + return 0.0 + case .white: + return 1.0 + } + } + + init(style: Style, _ key: LocalizedStringKey, action: @escaping () -> Void) { + self.style = style + self.key = key + self.action = action + } + + var body: some View { + Button(action: action) { + Text(key) + .foregroundStyle(textColor) + .padding(.horizontal, 26) + .padding(.vertical, 16) + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + .background(backgroundColor) + .clipShape(RoundedRectangle(cornerRadius: 12)) + .opacity(isEnabled ? 1.0 : 0.6) + .overlay(content: { + RoundedRectangle(cornerRadius: 12) + .stroke(Color(UIColor.lightGray), lineWidth: 1) + .opacity(borderOpacity) + }) + } + +} + + +private struct LaptopcomputerAndIphoneView: View { + var body: some View { + HStack { + Spacer() + Image(systemIcon: .laptopcomputerAndIphone) + .font(.system(size: 80, weight: .regular)) + .foregroundStyle(.secondary) + .overlay(alignment: .topTrailing) { + Image(systemIcon: .checkmarkCircleFill) + .font(.system(size: 30, weight: .regular)) + .foregroundStyle(Color(UIColor.systemGreen)) + .background(.background, in: .circle.inset(by: -2)) + .offset(y: -10) + } + Spacer() + } + } +} + + + +// MARK: - Previews + +struct SuccessfulTransferConfirmationView_Previews: PreviewProvider { + + private static let ownedCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!) + + private final class ActionsForPreviews: SuccessfulTransferConfirmationViewActionsProtocol { + func userWantsToDismissOnboardingAfterSuccessfulOwnedIdentityTransferOnThisTargetDevice(transferredOwnedCryptoId: ObvCryptoId, userWantsToAddAnotherProfile: Bool) async {} + } + + private static let actions = ActionsForPreviews() + + static var previews: some View { + SuccessfulTransferConfirmationView(actions: actions, model: .init(transferredOwnedCryptoId: ownedCryptoId, postTransferError: ObvError.errorForPreviews)) + } + + + fileprivate enum ObvError: Error { + case errorForPreviews + } + +} + diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/03SuccessfulTransferConfirmation/SuccessfulTransferConfirmationViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/03SuccessfulTransferConfirmation/SuccessfulTransferConfirmationViewController.swift new file mode 100644 index 00000000..116ab355 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/OnTargetDevice/03SuccessfulTransferConfirmation/SuccessfulTransferConfirmationViewController.swift @@ -0,0 +1,87 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import SwiftUI +import ObvTypes + + +protocol SuccessfulTransferConfirmationViewControllerDelegate: AnyObject { + func userWantsToDismissOnboardingAfterSuccessfulOwnedIdentityTransferOnThisTargetDevice(controller: SuccessfulTransferConfirmationViewController, transferredOwnedCryptoId: ObvCryptoId, userWantsToAddAnotherProfile: Bool) async +} + + +final class SuccessfulTransferConfirmationViewController: UIHostingController, SuccessfulTransferConfirmationViewActionsProtocol { + + private weak var delegate: SuccessfulTransferConfirmationViewControllerDelegate? + + init(model: SuccessfulTransferConfirmationView.Model, delegate: SuccessfulTransferConfirmationViewControllerDelegate) { + let actions = SuccessfulTransferConfirmationViewActions() + let view = SuccessfulTransferConfirmationView(actions: actions, model: model) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + override func viewDidLoad() { + super.viewDidLoad() + self.view.backgroundColor = .systemBackground + configureNavigation(animated: false) + } + + + override func viewIsAppearing(_ animated: Bool) { + super.viewIsAppearing(animated) + configureNavigation(animated: animated) + } + + + private func configureNavigation(animated: Bool) { + navigationItem.largeTitleDisplayMode = .never + navigationController?.setNavigationBarHidden(false, animated: animated) + } + + // SuccessfulTransferConfirmationViewActionsProtocol + + func userWantsToDismissOnboardingAfterSuccessfulOwnedIdentityTransferOnThisTargetDevice(transferredOwnedCryptoId: ObvCryptoId, userWantsToAddAnotherProfile: Bool) async { + await delegate?.userWantsToDismissOnboardingAfterSuccessfulOwnedIdentityTransferOnThisTargetDevice( + controller: self, + transferredOwnedCryptoId: transferredOwnedCryptoId, + userWantsToAddAnotherProfile: userWantsToAddAnotherProfile) + } + +} + + +private final class SuccessfulTransferConfirmationViewActions: SuccessfulTransferConfirmationViewActionsProtocol { + + weak var delegate: SuccessfulTransferConfirmationViewActionsProtocol? + + func userWantsToDismissOnboardingAfterSuccessfulOwnedIdentityTransferOnThisTargetDevice(transferredOwnedCryptoId: ObvCryptoId, userWantsToAddAnotherProfile: Bool) async { + await delegate?.userWantsToDismissOnboardingAfterSuccessfulOwnedIdentityTransferOnThisTargetDevice( + transferredOwnedCryptoId: transferredOwnedCryptoId, + userWantsToAddAnotherProfile: userWantsToAddAnotherProfile) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/TransferProtocolViewsNotifications.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/TransferProtocolViewsNotifications.swift new file mode 100644 index 00000000..ae43e039 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/TransferProtocolViews/TransferProtocolViewsNotifications.swift @@ -0,0 +1,97 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation + +fileprivate struct OptionalWrapper { + let value: T? + public init() { + self.value = nil + } + public init(_ value: T?) { + self.value = value + } +} + +enum TransferProtocolViewsNotifications { + case someNotification(value: Bool) + + private enum Name { + case someNotification + + private var namePrefix: String { String(describing: TransferProtocolViewsNotifications.self) } + + private var nameSuffix: String { String(describing: self) } + + var name: NSNotification.Name { + let name = [namePrefix, nameSuffix].joined(separator: ".") + return NSNotification.Name(name) + } + + static func forInternalNotification(_ notification: TransferProtocolViewsNotifications) -> NSNotification.Name { + switch notification { + case .someNotification: return Name.someNotification.name + } + } + } + private var userInfo: [AnyHashable: Any]? { + let info: [AnyHashable: Any]? + switch self { + case .someNotification(value: let value): + info = [ + "value": value, + ] + } + return info + } + + func post(object anObject: Any? = nil) { + let name = Name.forInternalNotification(self) + NotificationCenter.default.post(name: name, object: anObject, userInfo: userInfo) + } + + func postOnDispatchQueue(object anObject: Any? = nil) { + let name = Name.forInternalNotification(self) + postOnDispatchQueue(withLabel: "Queue for posting \(name.rawValue) notification", object: anObject) + } + + func postOnDispatchQueue(_ queue: DispatchQueue) { + let name = Name.forInternalNotification(self) + queue.async { + NotificationCenter.default.post(name: name, object: nil, userInfo: userInfo) + } + } + + private func postOnDispatchQueue(withLabel label: String, object anObject: Any? = nil) { + let name = Name.forInternalNotification(self) + let userInfo = self.userInfo + DispatchQueue(label: label).async { + NotificationCenter.default.post(name: name, object: anObject, userInfo: userInfo) + } + } + + static func observeSomeNotification(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (Bool) -> Void) -> NSObjectProtocol { + let name = Name.someNotification.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let value = notification.userInfo!["value"] as! Bool + block(value) + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/WelcomeScreen/WelcomeScreenHostingController.swift b/iOSClient/ObvMessenger/ObvMessenger/Onboarding/WelcomeScreen/WelcomeScreenHostingController.swift deleted file mode 100644 index fd203b3e..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/Onboarding/WelcomeScreen/WelcomeScreenHostingController.swift +++ /dev/null @@ -1,254 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import UIKit -import SwiftUI - - -protocol WelcomeScreenHostingControllerDelegate: AnyObject { - - func userWantsToContinueAsNewUser() async - func userWantsToRestoreBackup() async - func userWantsWantsToScanQRCode() async - func userWantsToClearExternalOlvidURL() async - -} - - -protocol CanShowInformationAboutExternalOlvidURL { - func showInformationAboutOlvidURL(_: OlvidURL?) -} - -final class WelcomeScreenHostingController: UIHostingController, WelcomeScreenHostingViewStoreDelegate, CanShowInformationAboutExternalOlvidURL { - - fileprivate let store: WelcomeScreenHostingViewStore - weak var delegate: WelcomeScreenHostingControllerDelegate? - - init(delegate: WelcomeScreenHostingControllerDelegate) { - let store = WelcomeScreenHostingViewStore() - self.store = store - let view = WelcomeScreenHostingView(store: store) - super.init(rootView: view) - self.delegate = delegate - store.delegate = self - } - - @objc required dynamic init?(coder aDecoder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - // WelcomeScreenHostingViewStoreDelegate - - func userWantsToContinueAsNewUser() { - Task { await - delegate?.userWantsToContinueAsNewUser() - } - } - - func userWantsToRestoreBackup() { - Task { await - delegate?.userWantsToRestoreBackup() - } - } - - func userWantsWantsToScanQRCode() { - Task { await - delegate?.userWantsWantsToScanQRCode() - } - } - - func userWantsToClearExternalOlvidURL() { - Task { await - delegate?.userWantsToClearExternalOlvidURL() - } - } - - // CanShowInformationAboutExternalOlvidURL - - func showInformationAboutOlvidURL(_ externalOlvidURL: OlvidURL?) { - withAnimation { - store.externalOlvidURL = externalOlvidURL - } - } - -} - - -protocol WelcomeScreenHostingViewStoreDelegate: AnyObject { - - func userWantsToContinueAsNewUser() - func userWantsToRestoreBackup() - func userWantsWantsToScanQRCode() - func userWantsToClearExternalOlvidURL() - -} - - -final class WelcomeScreenHostingViewStore: ObservableObject { - - weak var delegate: WelcomeScreenHostingViewStoreDelegate? - @Published var externalOlvidURL: OlvidURL? - - func userWantsToContinueAsNewUser() { - delegate?.userWantsToContinueAsNewUser() - } - - func userWantsToRestoreBackup() { - delegate?.userWantsToRestoreBackup() - } - - fileprivate func userWantsWantsToScanQRCode() { - delegate?.userWantsWantsToScanQRCode() - } - - fileprivate func userWantsToClearExternalOlvidURL() { - delegate?.userWantsToClearExternalOlvidURL() - } - -} - - -struct WelcomeScreenHostingView: View { - - @ObservedObject var store: WelcomeScreenHostingViewStore - @Environment(\.colorScheme) var colorScheme - - private var textForExternalOlvidURL: Text? { - guard let olvidURL = store.externalOlvidURL else { return nil } - switch olvidURL.category { - case .invitation(urlIdentity: let urlIdentity): - return Text("WILL_INVITE_\(urlIdentity.fullDisplayName)_AFTER_ONBOARDING") - case .mutualScan: - return nil - case .configuration(serverAndAPIKey: let serverAndAPIKey, betaConfiguration: _, keycloakConfig: _): - guard serverAndAPIKey != nil else { return nil } - return Text("WILL_PROCESS_API_KEY_AFTER_ONBOARDING") - case .openIdRedirect: - return nil - } - } - - var body: some View { - ZStack { - Image("SplashScreenBackground") - .resizable() - .edgesIgnoringSafeArea(.all) - VStack { - Image("logo") - .resizable() - .scaledToFit() - .padding(.horizontal) - .padding(.bottom, 32) - .frame(maxWidth: 300) - ScrollView { - TextExplanationsView() - if let textForExternalOlvidURL = textForExternalOlvidURL { - ObvCardView { - HStack { - textForExternalOlvidURL - .font(.body) - .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) - Spacer() - } - } - .overlay( - Image(systemIcon: .xmarkCircleFill) - .font(Font.system(size: 20, weight: .heavy, design: .rounded)) - .foregroundColor(.red) - .background(Circle().fill(Color.white)) - .offset(x: 10, y: -10) - .onTapGesture { store.userWantsToClearExternalOlvidURL() }, - alignment: .topTrailing) - .padding(.top, 16) - .padding(.trailing, 10) - .transition(.asymmetric(insertion: .opacity, removal: .scale)) - } - } - Spacer() - HStack { - OlvidButton(style: colorScheme == .dark ? .standard : .standardAlt, - title: Text("Restore a backup"), - systemIcon: .folderCircle) { - store.userWantsToRestoreBackup() - } - OlvidButton(style: colorScheme == .dark ? .standard : .standardAlt, - title: Text("SCAN_QR_CODE"), - systemIcon: .qrcodeViewfinder) { - store.userWantsWantsToScanQRCode() - } - } - .padding(.bottom, 4) - OlvidButton(style: colorScheme == .dark ? .blue : .white, - title: Text("Continue as a new user"), - systemIcon: .personCropCircle) { - store.userWantsToContinueAsNewUser() - } - } - .foregroundColor(.white) - .padding(.horizontal) - .padding(.bottom) - } - } - -} - -fileprivate struct TextExplanationsView: View { - - var body: some View { - HStack { - VStack(alignment: .leading, spacing: 24) { - Text("Welcome to Olvid!") - .font(.headline) - Text("If you are a new Olvid user, simply click Continue as a new user below.") - .lineLimit(nil) - .multilineTextAlignment(.leading) - Text("If you already used Olvid and want to restore your identity and contacts from a backup, click Restore a backup") - .lineLimit(nil) - .multilineTextAlignment(.leading) - } - .font(.body) - .fixedSize(horizontal: false, vertical: true) - Spacer() - } - } - -} - - - - -struct WelcomeScreenHostingView_Previews: PreviewProvider { - - static let mockupStore = WelcomeScreenHostingViewStore() - - static var previews: some View { - Group { - WelcomeScreenHostingView(store: mockupStore) - .environment(\.colorScheme, .light) - WelcomeScreenHostingView(store: mockupStore) - .environment(\.colorScheme, .dark) - WelcomeScreenHostingView(store: mockupStore) - .environment(\.colorScheme, .dark) - .previewDevice(PreviewDevice(rawValue: "com.apple.CoreSimulator.SimDeviceType.iPhone-SE")) - .previewDisplayName("iPhone SE 1st generation") - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/OwnedIdentityChooser/LatestCurrentOwnedIdentityStorage.swift b/iOSClient/ObvMessenger/ObvMessenger/OwnedIdentityChooser/LatestCurrentOwnedIdentityStorage.swift index 031e6cb7..d8b90107 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/OwnedIdentityChooser/LatestCurrentOwnedIdentityStorage.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/OwnedIdentityChooser/LatestCurrentOwnedIdentityStorage.swift @@ -16,12 +16,12 @@ * You should have received a copy of the GNU Affero General Public License * along with Olvid. If not, see . */ - import Foundation import ObvTypes import OlvidUtils import ObvUICoreData +import ObvSettings /// This singleton allows to store and fetch a `LatestCurrentOWnedIdentityStored` to and from the user defaults shared between the app and the app extensions. diff --git a/iOSClient/ObvMessenger/ObvMessenger/OwnedIdentityChooser/OwnedIdentityChooserViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/OwnedIdentityChooser/OwnedIdentityChooserViewController.swift index 031be778..b615fa00 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/OwnedIdentityChooser/OwnedIdentityChooserViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/OwnedIdentityChooser/OwnedIdentityChooserViewController.swift @@ -25,7 +25,10 @@ import CoreData import Combine import ObvUI import ObvUICoreData -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvSettings +import ObvDesignSystem + protocol OwnedIdentityChooserViewControllerDelegate: AnyObject { func userUsedTheOwnedIdentityChooserViewControllerToChoose(ownedCryptoId: ObvCryptoId) async @@ -136,16 +139,10 @@ fileprivate struct OwnedIdentityChooserInnerView: View { } List { ForEach(models) { model in - if #available(iOS 15.0, *) { - OwnedIdentityItemView( - model: model, - delegate: delegate) - .listRowSeparator(.hidden) - } else { - OwnedIdentityItemView( - model: model, - delegate: delegate) - } + OwnedIdentityItemView( + model: model, + delegate: delegate) + .listRowSeparator(.hidden) } .if(allowDeletion, transform: { view in view.onDelete { indexSet in @@ -169,9 +166,9 @@ fileprivate struct OwnedIdentityChooserInnerView: View { } if allowCreation { OlvidButton(style: .blue, - title: Text("CREATE_NEW_OWNED_IDENTITY"), + title: Text("ADD_OWNED_IDENTITY"), systemIcon: .personCropCircleBadgePlus) { - ObvMessengerInternalNotification.userWantsToCreateNewOwnedIdentity + ObvMessengerInternalNotification.userWantsToAddOwnedProfile .postOnDispatchQueue() }.padding(.horizontal).padding(.bottom) } @@ -347,8 +344,8 @@ struct OwnedIdentityChooserInnerView_Previews: PreviewProvider { private static let ownedCryptoIds = identitiesAsURLs.map({ ObvURLIdentity(urlRepresentation: $0)!.cryptoId }) private static let ownedCircledInitialsConfigurations = [ - CircledInitialsConfiguration.contact(initial: "S", photoURL: nil, showGreenShield: false, showRedShield: false, cryptoId: ownedCryptoIds[0], tintAdjustementMode: .normal), - CircledInitialsConfiguration.contact(initial: "T", photoURL: nil, showGreenShield: false, showRedShield: false, cryptoId: ownedCryptoIds[1], tintAdjustementMode: .normal), + CircledInitialsConfiguration.contact(initial: "S", photo: nil, showGreenShield: false, showRedShield: false, cryptoId: ownedCryptoIds[0], tintAdjustementMode: .normal), + CircledInitialsConfiguration.contact(initial: "T", photo: nil, showGreenShield: false, showRedShield: false, cryptoId: ownedCryptoIds[1], tintAdjustementMode: .normal), ] private static let models = [ diff --git a/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Contents.json b/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/Contents.json b/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto01.imageset/Contents.json b/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto01.imageset/Contents.json new file mode 100644 index 00000000..eaf82933 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto01.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "DevPhoto01.jpg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto01.imageset/DevPhoto01.jpg b/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto01.imageset/DevPhoto01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a5fc85c290f6a6d2f8a8d5049ee473cd0738b2ab GIT binary patch literal 2682233 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

Rm}EbF^FMgy=irf)^ycs$8!YzN-?{o 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∨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∨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

F##0Z6t4qC2%C9P6y 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

`3C=k&(1ef9 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ð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ℑ5&}L4`;wHYk2^` zJB&4`KcbOE7o&U?-ram9ct?YRBOWg$zSjm3Y`MS`c?nTsP6G6zrGREDprz*pL-ljD zNb3)#T+oB$S35nrey@=oU#iM74VOXAPVIKJ*-sOMg1a(|D=M~5mpH#?&+~5A`P8_0 zwtGgqGe1E?4&-??rdRx81lQ#L0Du|=oZ%Umb9<}h3*42{s$TyQ)B0gg6Qu3?=hdtR z>FV5-g&giFIc$^-o>{uy(9g*5m1I*gx6g7S1&xvmzjV1HN%X~a&&Mx}Guv3ftwu?m z?q%6=^kZn{I!4cohv0>#5I0~<4CI!eUqujt5mXqVe3mwTG)l2kbDdHF6lZ7KOX1d^ z5@qz9N<66^a0dEv%Rg;;a%%%=Txph+>Kj>I(TI&itQ=HyX%n(Nh6J zv1pa!>jqk$D`)OVR?HXyHfg8I7@8gqU93;;K4LnQ|D)(E{F+=JKCCccqlAqfwV=B} zdJNd;Zj_BiKtM$hLvSuU%8Etb{r_N9cGH>|X9&i48bA!JYQ)rJ$uiX1h z{mztC-{2$zTr3hwou&y?kLoU`on`*U6^k_!o(H5@FECk>>+%=Cxp$VhKEqkXIv+CG zT)FSpeIUQiCO#r%`$!?`_O$JD=E3L@ONn29u<3)=*96u-Wl!C8{W6aEV#wd=J<`bM z$-#0ko~2{(yDZ}^vH=Z&-=DuYOy4F8d`%lXDzwLeI5WaU!$mT4L$V4e)d=zl=r-W& zH!w?6N?J#l%$vSyO$b&@4ntQ~Ukk%%|AJ}DcX&jnkA}0jf@?8&YO1a(kFL@ec_y<3 z)=W#Z}kA*&ISn9bEFudYO-bLfi-*H3te$o76YRySLecA}A46L}(&PK%iUl(mIg<+TA znA?Ad3HFtBmn!J$PNgTDAVm%fXnr$9w=%M$7 zcYL66DR^fa97r3t{Vu6|lX7nY{~!eb^U)x{kq7X<+q~tM@C$X;BNP!FM5+|?lWlt$ zzU{XzCW8kYSZS-AT`;xkX}JF11rCjOJ>tU@+O!!Rt>F|)tnfatIq%X36R={xlRqi5 zsbc-QEff3?3m4l?>qQ?THK3{A_`?qjgyW%&9}&~MlOoMsU(9H<9@`Kq}nl!b+BtcF&RX1@^QeAxe~R#6I#LMv=@)w9b0n8~&wj?_LDP{pEFs6E2QVhjUIz7LMuU6 zW5T+zl2#BG+w5$QFhP|>kicdm_4pI(2*FZL8WcyJJm#!0$ehthwot53!rqLLqi)zN zCkq3A_LABBDQZsv<@j>+O^YWsrm;M!Pbj~Ot)=odNTXer(%5-qEf#4F#rKxkv13EZ z=UWx=Ui$`=u@fr#lDAa$+*0YIud-Eu(L+9p>ajXc=9dCZSKw>z641is8bB^*H-d|) zQ1*+an&POddJ0JG67Gp3d|plnvtEX73bW_pL|J|9gcWFMDy1`|(=unPe6t!$2;SRq z%;ESm=oTBqe?V{J2BSEU@}czmc~9vUB~2TeI)*~Y!ZbBsb@9cnSYIj=#IYX6X;0zz zUmN64!H(O8X;Pgxdxc$I_-0uqs^zCMcUr`QbxaD!zu3*Qlqu>_D?eNML30_P zd-!(Vl;kiMcmYs<{4Z;F0?;c(n7j%0J3?P}ep%Z52l)1xXb%3UIm2LO3I|UoNB@&H zB-*YYt`l`B&8F9`OKk+p=Y|Ok?No0_T_KxPx-252s%9-x`=eV+=%Qu!;NGg*{U*64 z^to*xujk>TnO{?f%|Wfw20_Kcqt}bGVP;0cSX2xxb7 zQr_+C=|&45{mjLpTi1h(%!`FjLwo~1N`WvFOdPu353YDtY;xXt-f<#VcRp;)P%NI8 zHEBOFBu1UNGgi(RR@k3r+d$SqACOS&x2s``!+&;f&tpF zSdEPhx?550In3u$v#TE%B-1km%E3k^!e)hZ&?$dkogc6#%SaW-yMPC+|P5sY6gb@cId97ie*FM4T zOf7IQ+4XfF#IGV&PxN;*jwW$H$KAXwvN}2jPdpuRa8c>Uyg*iE7@3SmNDEz#(Qpc8 z{gHN{Nuw!rMVwTIo;{OPPq;03ftBX`h~Uyj zQ>yOXd%*g>gzkbQg{ z(wH|$IUs*wIfm+1@|wA`?lGl6W9xJny|5wyxufxAri8$6+XV92j^*#7u#2@uh5}S(oa~6xxvzF zYRJFCA{qZ(_$T8CtsC%asME^JtmC<6&QoBxq<%`ijPMm6raQ!nQGS=51QJ=;A?Hs2YA?6f z061TNy9ASj>|8;(`wCe(;tiMNyN~MoN)3`78U+8L+1JcQLXQBoehpEzdmf*u&pi`T zF3*o^#9+Jz$+{>;r%OT4T>~_+Ikk-|3-jQmera7--C5kZJux_*ZM+&hu&V zz9@7H>E`lsNzZq1d1or`%>Y_E-jJlky`}3+7cF}ISqfFeG!NW0`r-r_F5R|Q`Q5Dy zbtYZiU#Afj*)R_IyF5qt@lTr7b|8+0b!PV?N6c3qkqYw%ZiQ>2bH)rF-W;j`Vh8Uj z+AbA3Sl?_Fdy2Zg9vD$Yg_3?V8!T0ySJyvREKP06P^KPHw_yFE68Kn@#?jr1dqtkDr^^F09xbn#eb*et5|T20}{Trntc~CS$=-%Q*!!uEtQ+ z^7C6mXfozFIj3HQ*^rvjY~Jgy3*d3HXft^ySy=6xxrDwcdH*d~Mt~@{Xvj3w{@s5; z6HUPy$cTIjD42VYV-$IgcTu;eK3Zu>Cck*Og?i-um9l9j2$hoa*MyUk#d9)K*g@^CP*FOJ?LjjhsZM)yxq6VbF^n-G7X{Wo{?9YB*s+qi7u;B=5 zYzcAkDT#*cMTw)I6q;&)&8#fmRH-h>^SmbFyALbKA`DW9Z(&!Hr?R2UDi}agL z?+W4xA6Q-T*r>UmkrCT-M((wn6v|v?BhxO4KK6Z2b)SNV3I0VpcIwwZ0tlO>*JsTZ zYZ1p@OCYvR^TX5Dseto8^ZWgag3U8Smc%-Iz`Xnzu$-*8A086!wK5DR+qwE$> zC1sT$6gY7lpPum4f817D4BFx7(y?YpYl<{=tY&~Wvb{vw5_oL<2V%_C&KF2Xx5b`Q z;iDzsOlbD=P+X6UBeF-tN3Mht^waSZ-NMs;+y15DIH2dU&V)bUicgz=xup};jbKQq zGkTxI5)yQnPmmmNzNa~UFDZ;CZ{LcmLZ7S|{q_-oK7TD(*^%QU)IK6D3Pam=7+c&# z!jz>SMs2+a*VVb6#2o7#?;+C2tQ~Rv(jH$Q<}NYvy42(vkCBV;5irZi+QKOz6On;i zg0ilP0xztLal3axvd@ib`_)Ic8H!Rkm-fjECmJLBU;Y#iClF_bdA;(O#kjwdT-?k4 zg3Y@)%%rSlE&lj7$NNoJ2y3*Xm%SF6bxwF>9{{AfWClOk1ms8jqPr?(=Syova7}^g zq}z@I3Y^Gp3d5ScgayS)o;C%+8r|4%@(uZCMJ zJ$8(ldM>qfedw~Skr38RhmBvfF!gCXbm+ROWfOGAk}S^A7oeutCaAggl(qDobUVL9 zk3;!Yn5axP8}?5D9~&bAa_#%H?>5cVq<1J*lcyJQC8)RtSA&q|wnhb6hkOrN6hw(Dz5E}#rBzSZ1TIThky>?)do&jP$mfCFG22$>3sohh}zE~x&eJByFzy{5XzFvTLEP7H4 zYyl?voWs`6jvpm=Z7pSgy8P@F=*gHAX}lK>ROxaoh&s(jQH3}1>pNo!$Nk3UX}0#X zkm7ecm802pjTJqAFS3_^NocSLc^0k)LLUc@4lbtc$Ojs+7_Hp*1=E=KSV}jp>XeB% z59V9{ccIwAR@uU)sCxjw(YQRt}CqJ<~RW)9+Y4Z=y ziVWfiu@lGa8fM&+t#|J}g1Z=RnWO~d=JHDH#f*P9NZJZKSO2WDyOVoL-#Zh;mOq)I z@Aom|Z$TODA5`}VmrcXG;3GG}SFczWHGwPXWS@6Wh1yXDB#a5vWKB zSDlK(MPze0uWz2YIicC1-$07bZfYERUJCDR+;ACYP^=n((S#y{)<0a7m%9dD$clDf zHEO0A#4V30lHDYsS&&yws+Hzh@Tuv}g$$pf)m!4DKai2@_E}h7k7xJ4idCu!#B@x5 z6S0Mx*K421tgQ@*sj9mxAa%*_$FvJrhtazsax_4qo@gB!PWG2HR__%?aqS%|zG9`= za&RD+AVXMoi5OT1e{urn{hm6np?xa_AmHf?sE>!vJicxyx0>C4{|)noA7`mIbdLip)Xs!GARjj)N3c5*2X-7 z^XJ197w8e?tevOa!i3jt|4hTk72@8~BG8N`j;>cD{_O=telJtadb*yhDI#KFuS6v4#Tw>(0C|^>+J+?S>W0^ zbO=>!=jw^Fa_;c1E^lU0bcR`%6vura=;zn9W#5Iul;DX4LzL6BjS~KCyCb0mQEP|v zA3!-wOrXL`VRbg5cATZOj7*kA#N*9>!JKv=Qg}`^G5mD;Aw>-^_<#qkIfDj!5^Awj$LBYq`NeTC>g1g zZRP5l(_>S6E0e$Jz{*WK73tSnPZoJ`P$Q(bq=x$B zopaFT0=4gHpHNihXz@PKt*32xe0ojUWK7CLMVBVgn*AA43A4;3`In_9UF+jIdJd!Z z^f;dD{|b!xHk9r@W1)oAD9!9*f>aB~kZ%harJvm9N)i)*^2C|~e_YbekPoxZla|4? zMqFv}p;?=mVqpcXw_z7`y^P(O{tF73CL969T2H$H@e9~OL4oX>M^z*Cy zzPIfW{PHl;(UBr2xAI(CwZ*mb{@;evj_AGp6l5LSjErfc&6Ix&I_-`BcMVxekV;9K zarY(0%vG6DQ`TJoh4H6i4^j;kKDTkZ{F81{G9{Szfd#ps6UYSE*n5R3HcCmeb0H z{{o4s$tjIM4&OW~3MNk~i1t(Qat37}H^Z)crJcX5)q7OW6FE4K7h?UloZ_;@HmdM7 z)18-VRwk*^4J@dNXYb8sBSfN3zzyAdSP`-PEPGey&2ux3>BkSoj)DM zC~!?oG{PBDz4WWvSy#9Qv^S?~S}S&O@-wSyX(kF3nl`Ce5iq``jag~emu&MAYfh+q zNV)n)kEM9Sl6eJv22#utM4EMabqTR>LO+ICIKNP_x=G$f*3=I+c8D|9?6?+A3-SK2 zjX0X7C%8aNp!TMP^7$`UR|h?U1<0q730oXceMB6I?m#umsVhOY({|9!!@82zme7Xl zEd=mDhMc$FA2kzd$G*1WcK9=bi01Ga2oxvQE~RqYbb0#H>3(E3p&R3$OgFqdo{nsO?nPeU&>?|4egR zz#3$Qx%Xzu&{ebcN&&XW(aIKZgnzV?rQPeOxlhj9PbG%(k{Ka1fx2|P)68Y1MZUP1 zd8WmF%y9invc!T=-J3pBBOA9-lv!Fp$&<=r0Rf-Cq=S+@WL?u-g|b{PhnEqnyHhS8 zWTaH%1g5z0SWBEz4+mdvgj;>U{f2q+az}99i;{r9oL-X(8)zggEjxhAqXl5}NO3K;$& zC~lqQUW_D8Zu3&my)?}YZ^A}}Ga4`zWS89O&Z^w}y=N_2c~l@)*4#ycJB#Buj5v_j zFRe)#`0s+rVxP>P3i$OxI~p-q-M%>E;CG;E10tfXOa8HY0nf4c7wNWD*H#Nr~4qd!iZC(ZrBQYF2fGq(VJo$+xj&+&6&8!G|iJ|lgMX10j`Cpt%C^u~j3T+cNadls;qXw6n zQQTQNa`f`25W**LVvhDpb$Ufkc@Zkkxv?y_wwKI+YTji9GKmfy(fna)Jh z@Jqf)ZPOaIppu23aH<+)#CY(iz2cRQG4uwaLQu&Ysr@{X))}fIL?giPMp-O8SqnDFyMgzW>nmm|fUu#8o(~Bf^8rq# zi(G+A7I%p)KyTK4_E8L+3@M((91a*KL!-;qKAj)q^X9nDs2A{$1t`|4}O@^8UV3x>vHpos-l)lAtzuuy%=a za9$#*{_QPlwi~(V9iZiY`!X9q)cV+g`keMB^OKKE&%X{G%=1PG$qjpu@N+@P(3e8{ zb#UsX9(Ak|bHI(REJ(wzVi7thSo-=HOmcnE(c=%q8#x6H`t)LdI=8aGSoS-KHZ_H<&Z>i0QWY)=BSN zOUJVjW|qHG{&t62|2|KGN?uJeczssgPt&A?1dQ#KN=0dyM@k`xoqW%eI9a zk24Y<>%W}%d~dMtFYNMWjRZXUMRVlT^g{{7A{E{m7PD0!7#Tf_BKGvN?@qf+#PAX2 z{<{DLYbFpPV#?&l5+1TjeQQqccmh76Ky^|O)Bq}RvFgD z(xV)~)LWY|u&!Y~aAXx}=62v|pv`lRLr5yS1cOK5rf2AkB! ztQ9i-yCiEv4161|XWdgZEb96kQ1}s03~E4s_jshlz}jlVXW7&Afs34g)*m$HsHSWI zE<>tmF>478ytCo&$xYTGx9(WRaDF+r!{05Gw;E@qZnnjk;XI|t%0VZhkW3w3P^tcB z2aRSWiC&=Runo5vX2Ns|5E0)tMlOgH%2`+->2HGN7HW}+v*RO9mjlY@QUjpfEDOa% z8)N?f&6-;41Q0F#{>!OCt?--(xb~2mV1`3Uq8gJ55`QxrSeH2;?@)T$Zb)id*cfb8 z3Lji-4OSgbYFo_YK+RFJH-vxv@%EmU1)S zwy30-v|q@!#z(1w0d-nJ05i-ozJ^wTbjEmqJ<~{hRQZj_Wh;Mfa)?t764BulJ$Ww? zp(vVM z0dI$A047khWRC)#YI}7#C4x+8=`%9CL!MojsP^QhRo%f^e#^Q>v@ALdZyl@jNn7Xz zjothRV!Cx*CAsf9@M`}cc`A+iU|WTC6!9;5Fw>_-lFMS%t%XEz*KrC(Y6AD~}gP$Cs zPKyfSvbb~=3R+W_tu*s)TJ;(Wbs)UM4;30`c)O$J{i8a!w$Y4_i_lolhJZ5+&hV9X zV#$p9$f-`@7=m@$xTk*8u(j+4M<-$6#pm|%)eUcTw|FqnVPk1rSWad7<*|@_o%;a$ zqjRD{KJn_@i$+AEI}TX%q8pjwbuElnLaswOkkdcAdt*%IlizB_n>Z3LQFm$=1Zd)0 zQV2@w|?H8IZ#CH029p z)RSSS;gIEIi47`*xm3x3rv$#$9GSbP;P=DA(OUxE!Y4P;kNNvG2zDqDUt>)eYnCcx z6pt`eQ`zu4dSISpGJ8C)H2uJ#>FH>T(}#B6xx`#r&T6>XE6d%BfS)Q{8R$vRc9357 z)hqyKVdW#Knz*~dU)SIK&Ggb(u^y~!PB{{dGORh|f189;iYtd!JRI!v-*?dNsX4)U zRGd%NYDcP?BCju{$<@jXTW&`@Hc;aVdqRDz_mj5mM5MR7Y@#D_s%;%c9$dZn+HU7M zE71Q@nceVLKM3-@e-l@wV;PWLs9CcZO<{@Rr2(VHv${o`3@nJ!Pt7B@ykZhF@;`kh zn{(2hQy&Q30Itf8C3b0FZmtUxe9nz}YQCW(_Qs~J%(i#mldrjw9FMg#_vR^556+mJ zss!s4M|>R#c&v(cR5!B;nT{5OWl~C2I|>)g5T)q+cItCA!v`!QYetyhfYDRA%W90= zkHNjyqvk_}V+Xjdl`nCBh<4PTaP2s7j^3`6wZ9bIe=n*^9&wNLBD#{qZR4U>@X25M z_lRPS3_9moG+4Qti<7|}%V&8ALS}z&D;A&}7qW{Qrd~GPgh1VX%NO5j`+_OvJA`(9 z2ht?lMe{~s7DC_Iy@cI#+7*uQXifouq-3NN-$bF7qb#_e*qr8XSt$MSoEr^x3BBB5 zk?f#Z#S?ye*r^8PEu5YKZow!0+_0i#eXhmM6)xYoBh1elQe#2<>JPdDGbuo!((#&K z&0r2Xm!C2RP^Sk2%^das`L#D`Vj4hUQEO{YJ&_nIlYfTJ(+!c3^{}uF9B+9i@6*PEcR6f{)l#jEr?mRTpM@;HPWw zCI+7a6^0PRPIEGAC2I^ffqEwStpHn0#f>}DdEA&7tdMA(vZ}v`3%EeZI`@3|YhH<- zA?iZXWRxeXr1eat)`v643XFtGK9azrXW)IgjkMu~mj&@oSzmz!oJ4=0%x?~`Fq93| zQr01{ZM&VA8AC4v(xv4EY5eG5L`bA$rzs&4L7nMUfrk$&nLbuJR&lT z(f3${snu2^yp=b3dHe~yyGGLi->_P|N7u!f?V0Hr1f;ysY5Q8$V1w$#tp6A!08Pb9 zPvULt;|@K$I%M~J(?R<-1%&CjU*1^pt=)2Kq<$G3yc;V;?Na|L8#y&#@!y50fd0Zr z$%K@dM@1p70krpb8*J6Er((5(XJ66{PPXNKJNyA=e&0tn88cidpHo&&^U}OUdR$Lo zoSm#C(+V%=yStJG7kwHH2^x=LPXd3O0jKf?95BE|V`af4_IX@D;73AqzX)Si;=c<& zM|einLBk>Q++kl2#jm`aMrH9#slNUl@%ALS%ge!)-ooTeQ>t5K+qma+uZ}b-YAn0E zinXs*g$E{-K*W4MFs9xVU8Y9LEUBj725si@2NBjInLy6^+xj-fLC-mLQQjF`E| zM}*;EeHhBtANq$lkxo67Mb+pE9_syLH^a4c1eO}8xO@L0=z>?ui&@9eLlQ{y&nW*+huEimnX&7E zhY*85R6Ka}gpXoB3f7xQGkjK+-G4TmvmvxXE$dH{%;VI0$->`+AT`)hcG=cauW06a z5~alo+}SmE=-t<(ShB_Ugb_i^A zW-i?BNgq#(>fbb)D{rigb|J9XZl!iwXGmwon?2qNV^+xkcUVXtb0fHiUrr-|k*VDB25SSqM zJ;|zeeyyBuF)#M)%vUu{4?&fq`|x`8P?SgdfjRT@pK|!;EWXODs9DvCwr`9;CybfG zRi-#$gwdvP8bOmRn(=r~Bq02C8*APvZ1UyAYld$gr6fybTa=FxR{12tCVZ#<(h3a!`+2r6J82ejSrh{B;XF0W$(yeHIc#Jp>ru_EF*9mi^*|# z3T7)PEeK}7x4)OpWA8fu*ycAk?bNt)bN0|#p z3a(ry9Bs1@|A=@U#?0F~ctZunx1-7kVDqF>K5|E}kG{5~h$!4h?LCFpJp*m92P$my zoDtX;F!^!3`9#(t`)IR>)dUthD+A1A^KE~-g)3C)%}gx>u_|p$C4nCLBGTciz#$~! zlML}jB+>dpBP!T!9i&=|fmFFySSStB1#HVMH)D-^v?VYdg= zD`4cz_d5sfDulrApvzx04&)>l#NuXobk(}KOYewG!vI{)dE`1wzW=-0{_Q>tahB>( zL63^Do$sl8#~fyU_q?(B8ApKyifQ$bp;}reNHfkJduyxqLF8JPOI=M>&F2C~lb|-$CW9aG3n{7MFVL5ci=-~0aQo@VjoNtTf zy5w*CfxXWrWpt;{&+43y#~XmR)j$7bDLoHUKs`Pl#Q2l7WpJv)6Tg`G7dQO>ZP(>| z7Z_pzwhg~Lz9Qid-jOTb<}!J*o5;~DAwunt8X!#_+h5~Q?;nSj=l@gN3#p$D>dd75 zH8&a(GN~8b&Ww+EIZVu3old15C`io=i#mw(#~Eas*@df%#`|QNoF#@-UcJB<`w=SK zD9ZBHLDwu(j$P!*G_5B}Eij7T@bAv^vV;b$rfoAD$qsC4%=K8ru?fr z=$OH9dClaAG$`rKNIB0ZCt0*Qcscu3h_CeA7LQO%@tI`^)@zj^9xV&wez1IXl8QSP z{;k0$W9P!6?}%rbQGWUyVYOgheN%_~X7V2;0qaK^yzd~5iq!)e{)+qIsbWYI>)x_x zxA*|eq`q@v#>CJIu0A1aw>d9-cnZ}!tjb3{hRpf3r2vUFVtndQ=ENxMw?9=+r(3y9 zFUvSb>DUBQ*E-Z$hs1KD@nbz!A&Q_2%MNPoLoz2Tg@*chvRGz6oyK&g8gX))fcX#; z?}M>ofUg#-r%fM74M#H91uq4X;d?>GOwXZ0^uY+8LYe7bm_2BQr^#v$p{e;H_1qLQ@5!}dH}lgrI|sPp4Qd{?{q>I2V3NE~_{+r} zWW5F|b5^-wR6^LzS%Vr(A#1lt(0HfP-(WxaxD6YQs)WpAYS(ImoO*b>HC}ud>8Lar z2F`)E59H5&UbSZnAQy|2cI!!K6~3QNi)VEp+X}3xzYlHGGN<1?LAvxy3q4y+Z^X;E z9w`bj4TH{+ll9gDf;C9vvD$T;w-)U+b2^nB={a6Z^G?=m@%0?K$U46g2X6S`G; z%A=P8gp}j>fs3T1& zg%jRNjdYA_UWV9CB0gbh(%Sj29x+4F6uhR81u_!(}p zzMG@c<0;#e<8lwJ+Bup-{~Ltq#6_tA_SB zZrQ2cEf>QAcpRPrjeU{ZSC@S6RwOY~#;#?1Oabw&1#~;Vvze!6%dv-V7)h33A0B4| zreinSve}q(V!kFRWJ?X<64!;+pR$$P#YK;_zoAEBBV>}?MT>+;%iOF8c~+lx&%3v@gse+bnQ=G6oj!~Flm32@p;&kZ5=D&gpSJ{to>xGwB$<|e zkBMbyfeG1RB>-wx&(nG_QrqiHh#9*=WuoaE~Tsj2r44N!Fmn0n{HYarHP6q%OlEFV2uBA0qahtED;} z`E?8@T37t9U0jLU;jAPLW_{0M4f4%Uq{~QYkB&HUT5R4Wj@IYyI861J{iZz zzU9Jn!^{0lc?0=_omY|{=yL9>mw`~|0G-mcntz5QsEy4v3w2nn5eoLt@VIMxj^nt6 z?281BXrP`Knf%jXaY&o*l5FBaMCTmMKuE01N#4m-v7Bl7nq-}gGc>{U#YRPn|DCfYI1{(=@o}7pdy4LFjC1suAkpV1Oy=nC~`+Yte*Hzu}OQv5*&STgEexY+$-d( z@y0g-kixSp&&<>6{!SMq=6TJRaR2TRXBsj(k<7&?%Vrg7zlpBz^Nkbj=fWN2!i1eN zVtq(Mn*9|Y{#tAFOb-436_c}PDmLq=IgrCHSE`}T6dA79I&3*Ga=Ca^%A4~{eNWY_ zFrXQBt`1{07xGGz3x1_7VX!eCG#pg85V=a4&Q~c`=|V@z4u21UO|IzvUFiJ-?y;wM z?3#4`AlyhZd5KtJ0pt}+H5d^3GH0HM@jJ%dJ}`m`XfS8Q!3*SS6qLrn#5$K9GB1;< zS$I{M{`QXnb(<)x5sS(qdb)#Ibg;L8z=fnN&u6Mv$@X$Df#(X%Lfn~=skYDWBbnwS zbmitK)H^VL*=J1ndE%m&RJ{Q;{;{B<^m9N(yr{Be`-Xi=Cninv5e?Dsm?LBlf|MEJ z5YU9~X+9QAZ>t_@ErKp4Lga}lHb_iN63fe`1=(WaC?clVg{vJlg7?0W$iq^Zmi3NV zx@*BZl{2Hu2{gwUyqd9@R>m7ym>>T1OHL;dfvhfOG=}KNcFF0)@)Sfo7$to^j7Y)HYZ0kjp(~~PAjWDl+?524D zt7mbx^?^~*3-5#-4u1yJKo!s{351hxmIP-LXaMq|GUwM86QkW&Nv_H@oQNik@J-y0n%4%?%S3Q#8 zRwEn?_t1Qtiy5t5k)n`9JhQ+v>$)&I|LFXxenjAu_Ud`HY5ax#;QNA%>o*NPi}HhP z|7RpyC>3J=r)ohN&Ir6RvdV5?+_pEwRr*b#9UBu5q;j)-6RLdw}qz11%(nmZY} zOHEawu6;a|T>1O@U&$q>=n>?Owg;xr@8}DCv!C(uUADyWYPK9S$T(T#LubhiF;3^B z%2+`jQM^rLm-2#$gAKprLwqpDr4;eHd4sK0qVQ*M1k)>1I%d^yGPFgl5ZQE{Bk0a5 zBl#IoV!QZuz$IKBaiWp$QZe`Qnu>0^^CR@LWG}4kJ(vtr@PPS3V~km(4N5B&HrsW| zS>D9gWn*E6xgFX04-E_CDoE5&4S2xn1PtBNZfO@6@H(ZSkSC~f>Jue99I+kIGMq>e z%4D+SR=lVfdDT{3^Dyx1x~$c&c4|u42nl4%em$x&u;RENBvPv9@&knqEw7l2@#_8p z+nC9w3GjXdv`dWC`?{?J(@H#y1HTH)N@kIf`zpD#%DU+r$F7OV9AjG<$O5U zeb@Yp`F@oU<$q0Y*uf)IesmCAeJ#}|zt-ZAr6rQxQsU8%u))h53 zb0o)fjU{ZDS|f|;9OfTW_Ldhf80;!2Oej_!9tqtJT8Ktws7k5p>LIi`JJ7YRMN%2I z)cNqCVEtyWH|&JR3UlW>D{R~e8)Hj9K-QKJvU&9Z)Mq`JC+hF_?dYkhRW%tKnKy#g z%k*i+NDb-fwE3Edv|tFl-ebH0g&)YT2R-S}c(JFX`^0dr$>B)iI(6|-phu?G;oInG zioaz~`GFo&K@3U{SX}xdPJHBhg?IP9cEQh%sG=RyfPx&V$su01HQUO_U4qy$IPUwk~iZ{0V-Rm7Llp zGFw_0D-{Q^KrA2#BQf$8OaTW`=&xGam|a!jQG4AGF9J3o?1mu1965BSDI|0jnDGxy zsYgRwbOM*pCdD9GX!xXZgXgLr9g6M-Kc`n+jqb_c`Alu%s)O=~lh=TkU`DB>aPf(*W_j-WSeKf8KnC6JM57lst^mz`XCQ-kPcF+H_(u}) zl-ZxgbF1wdjqk)HK?z&Lv#C&_3Ns-M*jzL`_LbwgTLNXp)yOpcia>)XTspTtSL+(^cxsXV@6qemNDDz_N)ViJsBjQ~>e)AuwT=yJKWgh6 zkowvg-mBe&<1^p5>g&4xiN{<4_w%6G=Z;%rzHW%KLYe z8w9}?_rZa)%rM7cpW+q&g}<(EfL{;UU3lE^YwYilZ6n0G=8hY2YUl?4xryiiayv@C zmEfD2>7t=q9v6cSDakgF8}@9e$eeOJYzq1ESGB}1R>P@_ah>b_YFDSMjd14eW^bon z@a2vYVU^((owM!jI6BR(%wbGLKhWr4OFgjDJBD8*eV5Q6HN>i0H^xuGz|2ay~VG$__i zAG6lh{!7Rj%qAUQwu*>08dn*6Xk8+$=h*ojWxj;$BEcG`#U`ZAjlaVL;X9WCqk`A- zr7x3z7w~U6D(Pq+HxSP>k%?NHJacs#D1&@Aqt30)VenG9##HN)1<^WSyRV0@eFRxB z98)}_EJBPGDhi?xrQ0S0@0T*ZCn2QpU-Om2Y)#R&NyKElqo^%<_ni3k*Cb03NUNt- z8S!`zULOl&GVsK0d2HUkLQ{@jIY~+&{4%OsjK8o)y;bZPFa5e!kzNxC>_qmf9HK%K zP2ICP)hwno7gDd6KsU4Oue{txNzSh-@dWy`g_~Or4Q*h3)4zowsO6C%NpcdogbQ1IkUXjKlk7bk*EG+ z7@{ux4qDC3K>c7@F$>~&w$BDVhu}F&+@i>K=eQK4aBdLS$>q&CYJ90k;#cSNJ9p{&g&y;5wKE8N^>*ox4G&!p(KqG9 z-x}+ElF9Mz#=c}PyKy5Qptf78{sJQdsli%`1&(MVtr=2znKfyJMiy~f&WXO7du^nh z9VqqSyVAc~<~fz@xHs*Fy#@M@Cn%4?FGcYsR|a==-Uk7G&KXNOe%i>RT^KDdDuch; z!I+&Q1pN_&b3{6BQ#vGd!S5{r|EcLL9v6sB%AI2IS?<-XNqO}J?Jw?}%GfdbyEdb$ z`%+E;y&8OUe*Ot!b30os6wB!$CtW4*Ca8WnNfK-TTP=GpX-4qSmQ8^wts$nqD{fgwEvj}t~X?%^XO>NCxF{hqi8k5W|GUe zTb0Lh4TL;VXSlB@VO_;E)if)Ne8F>VZOT`np15z{y$$lydY7jccar(~CkEkeu|{^Sf`6rtg77v^B=wWZs{S`g91oBb>pb-Ibky z{e1YojCCwn-I3Xm_n;i3{^p;Q#pdy-MRtM%ule1chuFF7fs30Gfc?Z>JC};8B3`N| zp`dyzZ(oerMY};4?3W^#Er=T4lllV0J^AJAUQ}7)J1_>dyY|szmpSEKD_Lh~G7T+r z%dh)+X~~`bgRbcKtdF>7USs#Vr;ic6lYD@?^L$U~ep{#1o|wh-iS)GNgx3nC^S2(q z*S&J}auw{VUumgve+`BaruCP#jhmNiI2H3nty_9o5^d>N8gmSjokaN6bfyM`HpC6Q z`$MbBZ>t<5TudKK+I%nPx&|!>OZugCE}(HZ7x0BM6I>BJQHtvGkxkSuCm=1KkJmna zd!xQur^V&2Naz4ovWc~m?FJEW@YuCn9~?uuJE;1BAKYx@bF~jj1ap8`Ii-R4Uqx*A zRCGoI;Mfb!+1r-D0MKO4CpS1E1^}`))0yJC2w8xTO=tWH0&boNeQ~`rub*BU_k}<1 z5+_NOE9RIX95vp5TNnXa&La7S)1Vi$0=xL+lu@hd#lCD>juP^OXlfAwCkZaGd}XF( z-Fio&{1vHE;|@HRcaxm?skEnj}6q!B~SCv!=`|vI- z>fOeI0pOj0BDUBED5Pc?F}l zjk4k5RLXNpY{55bug?Fg)_Pv$ac(AmS99Jyc}beuOMXw?IV!D#p+0V>1|2I0K12A8 zwpx(h+H`I~+O;s~i%9}+81$UimAylOvJFn~Z`>Cabz`($)=B>-C5~KYqjw@_S5r_K zN5_bZ9DGlAsv9&YbNAATlm>}E0kq5Z3I&T;TN^$l;LUysGtWZmsKjE{ltR3^5=yr& zaIrsl%Yh{~QidJAIfmB31vGywvo5<^z5$BFHC5)b7+VyL+F||J+RKV&x{lr83G>R{ zBhd_jULHrA3&2*V2&7UYl;iwmjc%KkBw*C_Eb@whDYy-s&DoVaSA48tGY*HD$jMc^ zLq7eb2TuoR78MW4*yQzcW=CutUW_(6AP1?&Cn{)dF&1NxZvao-D~)36Pmr-MZ_}41 zIiaP{-C_MZWee{r_`6SOpoyCH(8G(^+9P%yb#oEnH@~Y+ku#TzL^E|89(B(teqv7a z1Jrq0iG3RJ>K#)SuS=P=I5*-M71!9XaX=r;FCO^A7smFHk_73)PAI(|lNp<(LpM(Z zo|eVbuNKW}7EkW@Xu?IctHyHaJ?zgQ>4E`F6?oB90_9>&i|w=lqnR0F-2$aO^%?HX zkA&TD^@E>o$T7p-_;4-Z+Ew^MvcR@vA?sCnfau!PY>I!$!&Lb-6=D&fm_;XEkzdfC zM8w$QQt51hetAxD$TZ^AgewADZR_PAHUpofM0aZfeB`7ewV0Lir?61G*dWL#LBpkv zGkrftCEJ*Uzbz@*c*F?xCLQbSUasHc7YfR`m%IRu*Zv{r)#nqL#J{N$Wvd_+oDDa^ z^$S*#Qsm5M^lGf$wkq)?+w?FB6&kU&KS6~Hmn$U;0%}DCtTn5GQ$<_B)AaFrpxYCn z$JS9ouM=1~RipA-<6@jsN8lLRic-K{!VbC7S!2g2K)J)1plZmTXg8rd)S=!(wAW#b z?9}csyrKT_*=mGTOk^0VM=CgP>8%I-W6N&-ij$M_NAsH{5?iW~2~%38N2%59XP9vN zQN*FX{L6R+jN3SBrs>NKEi=Tpto>7enWVXX?nn+6^l6rBXoZY)QnWDT-~N+tZlrPd<5JtP_E*9#ud`2FFmhC;P2(# zcyV;9_OLckNO0SUQ0m&6PmW%X5hRTCTD&8CFD7MHuWNCCPhWr-d>19V1|#Iu$Z&(6 zsXbDCRRSkQ#JDzLWGLX?Az{9d6ng2cxW{t2+(Y42^gk?)(!Yk3<{KC3yZOYa+4T}* zxa8)dAfb;CuQ}rD9=S`Zb_lqVd2!&LR_p=(RlZi8r6Hx>Pf&(hAHAmmR4beULZY~h z+Icj`<8vYMLAN_7*Y9jd_`XR}oG;LdZa+yDR^@-*-mD~p(tX&a>ei<}dd;Xt!TR`+ zN}{R8xhbuO^x*cwyM~4}0bhKScO9=U3Jwj0)_FeUoOuc>xmwIMiX8&BLtt{8BxNUHA( z8#W%N$mXmW5^P1>konjK6$)a>5$AZrCOu2qry_i{ypl^r^_H$gt+I&T-aF4 z@v39XfZy4r&%gUK$VwE}Xk=t}Rj-5>#r#m%r(sCRmQRJ9d^$<=VP*Nd6E_(J7y+_> zZuLS5+wo&Pam#WejE)jqG182C!-I&91}&aQzla+9X+bpxmy3j{e1f)>{C2%L;!C1E z1%%K2Pg|sB`q|79EAAXvke+rhN zc}1<%S5HSFTD|hGhC5EbKpOss+`1-EE6<7DTQTqwbKDmkxO~|qb-rN;*a|GXZKCom zMS4`NDEG-kV*Q|=YTbHA*D!taERY6h&VCA5NSBmfkDC&U-ty6$(+q-hL|s%`THJ@l z-Vh^`Rr+LakIW5f+2Z)(nWc^D#RwvY1!S;SLI*4|2`vvV855F%sbr#DpsCdM2rZa* zZki#YMOyeh%S{D+bIsT8AGmCghBsG@4?^snl_CmjqPlQULb=W5ok!%o zt^ujPk>EnezzU+DkJOUS>wrGaMuDa=kHfA{Z0tZraU?cP;> zzq(}>xJ*vUHtD1NnLtuFQvd)pBep4y*kySeV&a_$-;s3!=H_9~wFAPGYHs^TZ zw9a!Tckn~{<{~dM!mWFZ<{!k(X3BmYbh>Esk}z>`)Zw{B+x5<#OWIhepXeX5-?MHO z>I;NA;Xg(!deFai?KmX+sMMkia&uSs|95O_GmK#R0Z|!(>@?@FAHx^BHJRy%sJTyh zKV?VCk1J#+K@1cyD;!(S!iPhhgn=bbQ8E0m)%#PpVqYb}>CAs5wVzXbbbU1y10zDK zP`NjiwQe|Pj!N34fGlzuqWA5ZL8reVBX1xi@q@-HfdkV~z!e-h=gUQ0fXHK50To_U zM0Ts#E&=img7pQ)g0cT_;EYj1U3c{6@3wKe8c zJ%{mXPsZEBkKY8J&DZNuGKMvw3V%y2NH6G=L#MVnTY4XMFj9dIek%174c3o>@$%Cg zaWw%?9jw7d*3M@IkY{^4wz%m}rapK*&t2EP)n0<=*QJHa^OiDmiwX2Ptw4cRs415r zLVs9NT{lK$PJxUqenJ+tmIOdm3mG8Y2p11A$p?Xx>daPDW!pvQR=`vGEAuR}8cO)~ zz^0r-@X0PyBe0t2%!ZRQ-1wL+CKSdF-MITAalb#A(w+9rx-lS(& zr*%#amWx0WkR%LKDz<--Fq;w_(J@+CJ@%d%Q zF+xem4GI*$RV?m!uD0<)n3_52CsN{`Xz0_iL39-4@7NFT{zh8o4pb>GE6&*`#+KSn zixS-aYz%IFUq=myWXvBm(x>^bN)8#ZAAJZEDgX+}T5GmNmTHIL5c0IFR#cc)6CW*N zR&0{8-*La34J9qgnbazUlD+irbpC4tU8U zB|oy~r8ma#jT6%LL>QYa~8tFw`eHR#lVbH zkfJC3oczCIaxlr~A6*%QEeZ5cClB+1#s6JfY~W-F$y^*hljwR=Dt<<08Ar-$D&S_n z77svS4xZQ>z54sBy3h($9)b1l z;B`TevXqp9PJ78}O1Ns7$c8PX5fh)PCzc9n?Gu;GO{BZkXjpx($jcoC1S7!R2#4}m z{T2=HDI$gJe}nM*)78%sQSeM*Ouq4Em`xIxWv!u%Cl8XWL-A1;(iwJu<~~I~JuZe%Rg&$JnH;9uR^c&Oae}VO z11mmyJK2yaff<0_a4U^B6~+ z18oxT)~x$saTRAUPI`@QG6afN5s~B9wdjD>0%Nd`ni$tSV$w^G&I1*3p%!EF4i~U2&qu8Ls4KG-MTqaJSQi% zqsRnd5Of;Q(`kP>U7u$hc%GWj#8upKKi;k1S_v;SoUNrlO{;nJzhfxdaU44;{Wyit z9gSH?pwI++Ws@5{8VEtLHbo0S1YV)EX-ia3sjNWKM^VewR6&VEcCzhi1%%xS>~tSt z+5*9h2GN;4L=eAMBoz$qphH$?UDX?77cW&xE*U(pf>(RSfVD0JgVE}{NU;Mz^v#!$ z=waz&c2S6FIx3KJK3YJM`#u1V@0WQ_92VLh>TNj{;3m=Rg(%&mg$zPFh?TMEr05Ns z(H>pLp$ zO$r;3ALkvV#{w8ApGA7z`lX`X-#sV0Ra~)FZ_O|zQbOP#LVJ!Q=^TeAHoKfSjtNoS z*!I(dj0)f~X%LmwFWE=f?$|jEcAD|)_EB#c3>TkkvoS`=r}dGhWpC;2%4iRC>GgCQ zoaJVQnmwPb@{er0k##0L@mG`Ij+P13J|yQGb6xeV?w)CW1Gh15RFmWINWXG~H79|? z4JzsC5wuubNolU?<_Og4ky(n1;aVQH`dfB09Fut`D^>@NUGNXxaNX}Zh zi_jGt(8p|hCU9LV%?v-M`-uKrB>xw?!WRzFXr9DD#??B1m8jPsQ`x@!X@dJSj7zyT zv&cA!bgwnzmDd}dSq+=>O?GXTu9#Pvd6v8`jcvBRZ*xhn_Z!1D`6u+Izx$Jsi5~qc zgm7asW>CwzE^o2DPnQtSdIiRVRQ zr^Os1yB?r>q74Fry7cf-^Lcf%=a&}5lCM6;HZJel-A<*oETCFX23y*xnM&62zgSZ} z3XtsDn+24nCanuOkL){CSN`{o{YduiGz3I{%*)TIEs*C}hx z-@>NV+2^;U(2$;M zE_u>X;ule@NOa_o?kmX#krQnq21OwRNqB-?cWcxabT%@*Rd zBKSd(cHvHw5nAh7h_~t>W@{24?QLL~Q-N^M532LFTN1whYT_Zq9B6}?`hg1{lrYy9 zPBc6eS{axxeESnp%jTp4(KF?k`bf9rup#_DDU8OxP47RgGO9!LYe%EnHSr(IXHaw# zrKX$-9~HqjYcR2sv1NyXOrKlB4}^Y5cVFVHI9zR{MnD>k>`^bV2Y>t$eCo=Mg!+$rUE5IHi8cCedofKUX9?;XQ=*jUkpbgq& z!}NNMGaWpIog9mgFEgXle*8-IBj`iQ!TZ`Xj@o~ zO=*#KL{dHLJck{{b7v0p0!%~tDTAK zK1fJ{T6VM{6J<^anVbt{Y4(X;(#%PZbr*J#op(cZ6LN&T8np18K0S zoQ9kAp*qZIJ1&*x0(V^9aFM6-CPdo*7PxFT3+>4(2YqrrzHwHRmUSrL@wPjaqq7NYb*&hqseNtZqpI8$4p%4 z(?Bt9Eirit$|>d3mFE_Rn<$RQo4#6_f`krCyftk~%5*t3e?QTDVWp&DStYuGZ3DWK zr<-vz{|V-}?c-!H7ruG!hFkVuCqj5?Zra2@!0$cGheFxekM`x=`htsC!*eufW<1l1 zjDw)dwq9^nz28V*!4R$^BiO%>eJz1^Wevl&4#SuHm!&dQ$62Y=uXcq0*Y#|&0%BQ7YoeyuF8@x7eL-1oX7DpEmC z*CheRPn51EQgd*PQ{)R7eGNKTZK8>04sH*1nOwl)K(BY7+L81);RZq~NJh$RooXCu z^C;g@bg|%9BcSPikS<(#2fcErAcO{Xk^EMenMc2!27<0}& zV5G)}>{_z`MFVzhA8>l~x!9P$_>;-@OCPUhKG=1iJW#l4=|#DZHogcu zJ5XELpcT7Z%j&4w_ZWzDpRPJ`n#u0I& zExp@O7^yh$avMLcd8SKXPgPwD_@9O)NUAxlz(>nOvKQ!_@odm(FYvoK1>F1sP(ol? zu^4pYH70AxxFU?GUY1I!#M?%3J$*CsRvG5Z{~fdaDHW8Yo7DmzkE*X6bVvqOj7H;d zf!&nGA+eWk@--xfD+UQ;0O&y94wi(md6`Zfe?ZnYh2PA1V^{zB30}@U$=WD=Cq-C9 z_=To)Iq)0Dp6%1YW#6$t}EUIh%& z6IK!A83kDf!*Qi6ku1iJo21^UQ?o^n*x5n0GRcq4{;ZX@$Gb{F@YPi^DXnL~&4eR_163TR+y&8cckX%uFN#O^b*>**Sj-EzT3^x1$aum+B#G`1 zi>|n6Cepibq8JMSvr+nL7fv}267X`i_(%R@Q?2A~eRG_$!!lb5)y*Ork>= zS>NPr(5vFfq(Ie6(x7WZ8O)nEo-p1cKWO^%_rO^Ft*j1*qReUcQ};cn;{WE!dD;n+4LjmA3-5HHv;#Mockh)WY7l;t`TcIE!sH zyB4ttyIa=syuZ2ci0JO#^bS7I#}a420?0&cGw;%T!WxF#qQHweGT5lPE9*UuwXME& z{HPixh>|K-`Koi|z14>4@YLz>I(w(ES=G!x6Fx%zjO5KoQ>XPFd(;M%(V)Acvlb^A zZMz39|7vRH;CG9C30IRpZXnjJ+McUW^YfccCr|mEj^r8sTgpH$qxf?sK86!5L61N} zXzFZLfU6`_gGzRb%i+o-ig^)5D@UAy@lfXzW)Jn{Iaq+5Kqc?F(wGm*KCqu{^9a`J zFtF3yrB=qeUfO7Y^#_LEDMc^YJ~Pxd&H#pw0mCl0JWOnGRTtL?+jRghp0~j&nYj5S zG<2j^l>!_63KJ+tQ%{C)g6PB(i3?^6X3<`1`sG_?voA8#MZKI7ue{es^A+W6`(!W< zppFBO#xL?a`o;6}-;S?$MK^~9_v2BkOF;(~)pFyGg|~03vzPS`^mQPC#sAnZts2L#nvwXphg!aM zbD9&wbk%moLvajxJXt)dy*61M^RWr9r?iVFmH_Y5HBMXPG<51F|QGkj=RM zs>!jN*JM-FGt%9xCwyA^rLM^6BkHwr!^(yUk64@8jSaxN_waDk6HTH(ZM%d~w>H-> z&!R*))KubYbJVhSY6P=r^Tb7>EUj0*lpyx=db6Hj2YVQJmm&+~Yc9|_JD}SH^$AT9 zHaQJ5NEdU$HGTY4ta&Ouo?`cI)%6kIK?cT8ur$h|WwpW;0^CTorn zByK<%=$G*gkYpLMk~sWKV)5iPTz%e#T$lcoz{&JI#n1Y+ybq#TW9I=F`B7*vR-^B{ z$R&4+3-Qi=l&s=E__xePH4n?RjAJIYrA%p6pQ0|~$jl>Nn7z*mB$&7ltbVhrbzvOp zs@uLVNr`evdQDA`^1gGlg;rcfk+Ft}~wJQ~}!n+2UQtg>KeIUu52+Io9g7L>od*{2yKP$HcHG92`9j|3Ni+@_$eOh)Ina*yecQIaM&i79AeMdDJofefg%+HN0 z)ngb67+Rr79%1@0$_+#ap0*gp@YTc4Hz4L?DR(88z>AVXcVVAp*BYscbRg?0x5fwF z&{t3qxJP0I2gM5(5Mr}NN0@%?DzU2rIq~w|`b~US1e>GPtV1obwe|Nrm}}z_4z#U3(%?wBn|H zWiCs1Yx9KhNT#Ia-;8+A4{@<7F%M#2fvt(Hv-PnnavKljWOD6mDpK-SZZo@)j7$74 zVKQo^{CP3Qg*E?E(WKtdxwPXsUjr$2T)agl#$%g_7Y|^mfZP88y3+}bgiF^j?wZ_$ zSp7|9LHs1tD&r%VBMX~l?3|=i*EyDKc{zn8sYKpZB&h_G(v)}^-nNKxyRkj~4x1dx za4h&-k}C1sQoyz%!xr!}4bszW2L%7SL&&sTZ>vnYr{OXnTLRH_?Bm*Z!MD47vYKx^ zOwcZMZCOw$enp{XWRkD6FCuMBI0F&dxV6xEwX&%^w$}Rk$9HRC!`1|A+r_g#)z2lFMN(_39zUyA+P8F7CEGLh z^6t3%m%toIx%R-iIdq(d&A#G(7XvfEWboD!>tnzB-!N}3|Frwbte zI|f&A7!3L#WJIDFf^#yE6Od0fv1`Hk>BMXo&QIwXCTnh@MGgxK56iKE5dHIPSbZ<# ziDV-&^pI6Vvbsr8#r9HZ0uOOZEkXJ_QMd#tOdp7!pSdvd60VnGtpRuw?eAzgmKl2{ zaLX}S;+sH7wTQm$U;OINfSyR?DnxR~tjs7LeT(_3U?3NMy}L9+HF(yZ7wZzor*r0C z5T~2#QK}-OSpR%AaItyB-imnbwPiYL#t;}HUiS)kV5{F^u!ua zXB|b4h|}$LD&!!*+e*zcRY9RaBfTJa62D*~hb1#4_=$%L6&dZ!6<1h|^Igu->rYoe zo0YI_B4@i}FT=D7es8+Q-_B7rC;m_vD|3%4f?jeeO#oi=2P{K85vO7KyE%5!JlBsO zlY_>h%{`hguqyVIx6b9}SftxCjK4E$}Id1Xj%{t3dP-tiQo^b$zAv0mm$aa~ygHoBzzPf!iQbmmp-h2G54$N;or<$^?s9f+T*H1>z+_7hHc^_u~=b{hR+ z&={+)T7h(xpLVvK>|DkYclvV6BzJrOSD$lhb3J!Y!;m`}uIJaYJ~&OI%$s6#+~PyV z@GT|{dg5i2K@V?8+CNa$t9MkZ&lLlqhQ^|22F;A6PJU@n4T1bzP3Ig=-dm;h!wgO1 zBaXP0dA4iHZquiQx0IGetjfwoGe5y94Dp7;-74c%*KK$LJEnYF%^JcY7x?dc+0ELL zu%WR&5qZ)QR6w_1aq1BuZh;$T(<70-gFYF#ud;+BxLbpTP4%%sz%@z9i)L`1OI4T| zMfEM=!gsA2hh20@s_pqHibwm5$<+DmGSUbo+d<;ASlS1bjNf z-%bHDy4CxpA}Y~1m{6)X#Z#G5-b27fxgCL(@_tRJxx^SpP5>^P=rLv{hjM6JTehwz zQ6JtxY%Qp+tq5C(gPVE&2Kl!tOB}P}JzG%@(ldS#C_NhyJ3p$AD^WE#tQ?5fXpuqk zwOV1VRR_?X`wy>A{ew-E{kw0j%3TWL-Wfb`t23jybKUd)v+E!8akBYqXbx(}`Vmk; zt61vQ-5>fNdBdVwg(Lt6+LufEn5|&NN~+&(+V0THG5$Q8`b7M>S$rrQ1^N|&Y9fqe z!yroMmhOoY7CvYDcEP8` zlwmzX^I(hY0F{&=wjX+k_T7`1zKzF z;MM|&!&J>J1s~+71+|<{C|Ms786UM{X2zIyx<-oh5du9TCuu*sM z=U9>)wXc9ZeV+qaS%-p%s)7)B8?qtXdm}0Mp3t(L3C7I=%!IkEO$gJ)0qF^f6X7`h zb9lv4vX~8W`Zd6krZt$&swYERDSIaBS+SAjl@&?R%RnFb4gD^)c@ss^!}+g$vYaZk z&ErgVTz$*Yt4kj`oSa3i#@Z~B*d819gId#s&t&16q^?5a9BQzm@kk~5uZbg1$U@)A z1bH;`lf@7EeF|*vKC=&G#3LZC)|U+=+_VIk0zF!g!SQJG1Jz1%;Sl`QxxcxNzJHzg zZu?yDc->f?@&I<{n!u1PBItqpxUw*)wCx`A-PMLpCxVO~T)|>m2fPINxZNmQdJFZy za~aTv7_aZo*A#*kGJ+BN>N-PtPCmh<*USW(v(G?G(Dmat2DTazLjnvIqRDIOxwk`s zQt(AT*RU=VB=(nps`q(-p*F;03(fAxr9gkA!+o*+cUj$4-7l}yc<5%+#YXg%D)4W3v3hw}IR>O%x}Sdd%E} z?c_l0o<^h9j`9E;m|a|~RH-H(UzpKaVCN=zr?A|@$9r9?;0#I+bMv52+EHx-! zpfhITlk!UyltTr^)KJu_w62S)f+}vo+7llX#TJRn^K2T28Lo-LED35yZxB`=Nh&zm zD5T{r3aMQ;PrJp>Ypf+=)|}(`SGSQ5jQ8Pkjhc>2Uq_V}@}7_BVtT=!La_DyoOKCZ zXdQT4Ie=wGW0c$Xk{RmF7H`a04A&jqV zIUDSQME$rI0)Lw8je_h@O&m<~mfipb(G?j5^2mP0 zrNH5Px772)an1r_=@Vm++e6UeG2Gt)-J85yd4WP1lX_cX@3~e7icjg+zT)Es@-f-r z58`g|kt1ioIqNtdIZufndS6QM5y=R|+O8|U>iG%DkG>NrY#kl=-ZJ;Z&QLJh#K@r75=?M0Q1oxoREA@1AlVXy2Uh zbh!X1H$tI09fUIC+es>}UcM52=p~RVpIu7L)^ny81f(YU$@(QF^Z+WORfyKDP=Fh% z{>qMmiD1&`#(ZiBcOSX>u~^2Ry@Wp5K2>#OH8MxNoN<`dJXBSamx%10)1$tE+#dLJ z<}IQ*3*uq95JR?Qzj5tFe6WedC7j%|rm3CQuWHf*^otp;O6T~DFBMT zL0FDz<6j9$HzF%cM^%G(q*fNx!MAigwJ75Hq;n_Ty3y}!8Q>;!JcdVFES}VOAmAp= zMBPHVspToCvP7z5RY4c`^*y{{$ytoubmMq+uc`OT^r7qcK}$KY3%l0pR#n}*E*a9d zzwoJR8eT|>q*Q^aNkqx9l1H!}x?pN$ajvl(kDjIJ;6?;|sxFCMdR2>@!IEl1ZN1n`(2HkA_0e36Lj*Yw=yRhXdN&Y99HuiR3s;BF% z$b#d}3OmLc5O2M10?Q37zMCy84mk~R!;&$NP~PeuP)-rSX0%Vt-sh# zEbT}yiy8?mi<8Ca$X;~oI$fIL(T7{#7^NJFL^m+?^4jhcN<%0+6CTB+yz@RD#wKnm zL$hAbmves?zMws%)57OK65PB2LWJ!ATyL_-t?zW-Av+gf;6d<=3TEgbs5EDVGLH*< zF7MQEMUTHATtR372Bd=H3@o3g5tTf&8M)!+QpIXX$(yiagq4bdid)qs+ThQ&Z-55mA^AG(W@M06`{(# z*vdczI3&qKU}ExOsT5P&SwSK9Lh$K#grV4*_L6=T`h-!Ia$4KZ9NY0UAsZ@`*!7<+ z*Y7`0;`Uwumj8XONY0G=$mfPUPEk$9-Oe0k9paR^kdtFG(s6)|spH2{{PGWAJN z63Y!$2l_usze4SBbCchj$m2RwXUP4c0}`Pp!tjuA`qBDPduQnvuy9Ca&G!c^i*`gaBlKI$GxIR_YAd9)vub?A>5KHE zK#Sy0dp8p?2TDTCGc_9t=fO1fkxx8-uEw(0MBavJ(&&05F~wJjkXRlD{d0yEL29)dgfG_jk)VDM|9n{}-g9Rv`Gm7Z5B3SR zx3@Dt>c4;pZSQ}s<_z+j=wr;arJDUoPDr7_w73*~xzANAHOFe2WAkC8aC{sVFs&_W zf?@#fA{`9hn+sLe5<)L6RTZGWOMV%6vPe?-Rifi|W#rHIeF|dmq*|((XtU=vUicEy z%&$QrxGiArF7wcb{Oj|~N~0jQMPlx*pealNqoyu8fsiUZg$8e8Fl4XC|E_Q+dg-UC zm`SH39}A32zB0A&f)~EjMSQo`kv1wq zBDNUfs3Wh5*1aFFI9*$4n%oYxykI8;e<*(EXLgxKWbO^j^#6|Wg@4Vo{dBYWqSqI4 zRM0a-#Vx?f|BgY3owSEA6bN_A@oE*Pqyj5G@UYG=hMY&XiEZFdBK{m7dbI0vd+>BT)!4OQ0wi{d=?9K&l!mwOL#OP( z)~`S*N`i7h%GJ3Bahb+-8ukztcV20Q<}188cDiAQH$XcPG%GmBs z{@13}w>uxBNlB2TXnBoDCBt+Y;HZ!B9qTf?lGT?(6|sB`&&rfQFLAZ z{HuZJ1hpNi3QYnHz@rBoBFtkKVx^2 z2kR_-A(vNmRcUc~i>=72x4*~RP2i#^s9%+2s>DdnThw9EL+hu1rc4fR^3HOq1_?{f zDJXT-Y?sa-D#AnY7EGSZ1+8LhwUJ-l=H@CaKp(LEeegcxu&~cSTAU^9svxxfSm~|u zoI_!A1ixRO0T$xz+pU<4`Z57WiQUousNK@=6V_?^e+-?6KbvhEhFhz#lNhx}24ag{ zw3S#1v8#58QK_x1Q92MLc4F_^)F`S-X=@YI>OYtWW2L_rosP4)M;)?8v19YrkoQKf|TSoGf-o5OYJ{{fVf3J4k=0g5bi}uV=P9SHc##jk)h>jaS7|j=y5B8!|8++}g+p6? zVMxkHH@oH5Tsfn#u7HhW@fR?8c@9_gn@uzS4W4+g5u3rUbc~X-w+cPJy2#wu)Y^jtA&R*?6jx4C92ut`QNHCMxWNI z7-oiiJ(2|`3Hm{)DXc<>`>?tcQDI|jH@C?eYIZFfOogH+qA-{PwnYpE>B7DQ5 zl8tqomo4bt_a4FW_Tu&1)3n8H^E#ZTGH zn$PxGb&&0o2@zs?Az$YcU$}L3vd!-RC6ASUJ5buh-orftZa# zK6j*wrIm>Q9^)+FUhAb%Rpcs$ww-IUzy1^f(&dJ|G%59G+jF?6cPf|7g4NpBM_edh^r3Qd-&2BNQ!RzjO< z@OHa?kTx;NTHsOhaP|ynb+qRGQ~(VPApyT^qXqWm(nnquvAbK5>#??8KiHdgTY)3> z;q=PEJ4(vj+Bh|dN@E|K*o)$9I8udp=ZTb;Mwgp#Sv}1O-Y9uR!pxjO`DP#~R|yrI zUS)fER-b~_b6U&?6-9APZog=Ik6f93+V0AZ375Tdq=|e?2vpYyxfELTi{~F_bDzXA z18|89HQwMTJ-h2RYg}fGUM-~92So0k|IIpTAp^e`~p6Ns$`G zV_PD2gx9(DjS<-P3{`pJ7jR!9n%*TKA})uH_TgHK)3deK|mAMLhi!j!g#%D3}#%!T=~p>5_w)8=)L6B_viT&li@T6;HunF*ghO3XCcj3|`9e7!BU8RXZVan=`2dk`k<4sckN_R=y|g%}?T!{8P%jobbniVLX0@>D{!x{Fu(DF_0r>tM(PVgV)6YP+e#RP2$Vd}vr zt5`6L<{Y3e%y9&25DiSzq$#F))jjl&KGfEn>aJ!ahpC&mR(<425UfJ#c3(?gAJn-6 zg*lLI&9e~eg|Qt}-MfYmb}rSKA%xbq?pC}E6z8n2Zd^yY=51YyB~ub#qYjw)l0dXjxbr4RI?CI`h+ z{UJq^KabwlP>7XOgf-G%>*}C&Ykio`(t2LL`AdYq0(RnoseP{efVFZu=i9ncen2IQ zy`|!CmzGZ5k(zYmg>pyIr}{Q(i^*(G(999ZsNSm~qjRt|Ptoh>b8K9Ob9Xgd{7FJaZSgq@96{lgOaFc&7KmcRvd z)X*S<$m+#eGpF&rwie#-=dHw@)GK}Zs-a0`xbMWc*nb<9kq+BFI6&HcC z6GCdDs3+_GpJj5pd{v-M4bPB%C~B7?L{OfWJ8%y6O>I$aKpOeLMK2f@TrA6^Z2cl| zC@h01T3=ETUBY>|(0kzb8|7Du2ym{AoStv?H)UllcEtbc81yF;+%>~)Xgn+Bk|nIl znTWq*-pW>q7gJ6C=2|}G)^sNG8TX#DozsQ;+>&{{gFi5&&f9UjD>IWXz#>xEd8bD* zw=8^H%h~CWGnZGB3}L~5_57C?iT;(<3;ncQZ@&IT+p@>Gj?Q(vOQMV|h*Fw-M{jIl zhc!05ZR6fuZt+_*s;p+1VT%|o#3Iw{Ap~Jk1ap0*eifeY#1cb<#T+KRLZK8d+>!+E z8%R_lnl-3P8Lq=t34E9FCD_wa4#b7|hF0pFoxO9z#$Ia}b*)E<9SP}* zs|)k1f9xj60yOkufOUV>9i-p#_1GT-%?s6c7Cx1r6@OC;XdAu=z5c?UO^a{z_KMW` zMn|w-N|v{C_8%Fa#Vc&0T7Q!5H6WAoC@{pM5)h&+MM>UO4kFqb{ z!URpV!f-f!DVJ`j1R+{@DdS+yTj4~`B3hGvyN26e9R=c5q4D`W+Jm@F=lHN9Qe?Yo z7)2^6B`1R8dD=PcNP$+_Ql}uGl}?bDHK!(v?=N02Doq~dzL9N71JbYeD->E<=Fv#j z;*$9H>(t z5-(%9uXRMzsM{u&;r{P$+007=8|Ve zjj+th)%V^@K(;_Eh9d(^T?oF83*EX<1DTg4?M0g1P2NmXC9zmw{%f@GndEeAaK{&e zMDPeuF$R$8Ui$qf6f_L=t+_|W!!puc!aRZPDQA=rRHQdb4_Krm%+18Eyv=KV|7z6N zN8U)VYxFxNtf-i%EEm=sp{paV$}ZoLdjj{i7y0xFWe)R{AWz)x-x>pfrb4v!)fYn< z_=cBe-^~{24vnU+!T;)h)!+23%kHYuPupPd<1hBOC+;MYj7g%>_ zShDWrq5l#UOnRmvu?>*U<4TrY4()S9CU!fL@3X4YMNsJ5`uB%Zeu{BjVRv!uUKzRS zcYRd*^8&e|nnjcf_Rt`*I{9{6c~Mewsi0A-#R0!PPb$@MMvvu{mM>RH|jY#@8pnYJ?xL zurI2}c7_B^eD{aO$cVXohYU6w1Y!Li*vQDT#J#qk4V(NI5TOQe{-(q4Xtw)R=OZ5i%jg0fBEk?h%__xoo} z+{jCN>b!e{peG6fP zs^zUgE>|B}odl^l@p)vLStgU61mBY$O#mxDp~NGCDv_u_WVqcCRe8G#BBnV7%H^rb zs{triZp1wpatFMeG{qSW4m5k|AD8hoC4muA*HCS_O7QqJM^~VPhc2uae*r!fWZAL# zA@7^p6CCLcC1y+A2r!O=UL;9OsQ>*q(jWyU9m683?Wk$tGQq zQTw0zWQcBkZi82IFb(gTGoQn7nIq5pqt-!*-oCS=h&#v#SoSiKw_6&(Yq|IWB*E8> zMvAwLA6CSR!MXPqWGcG-)N8x+())NPk2x0@uE%inh4BJv-dcRHjJJPJP@i0Vf+b&E zdp;%7J{l}?1IAan8;tQ~6e^T&@tj$TSBH%X80NXZWK)NL=KZ-uuwlLlm&B2;Ea(X4 z+VR<_OY;&zG#q-TcDsOZ3X#dk{UuoKIryYVI>PKjBpP@WlpOSt?#J7CDoy|*w;{~8 zuDBD(t$C~YDgz#mIgVQ+scP~B#tZm~Sms=fc7AWldL$fHvaG>xKu%R2D#T!}`06e` z^m!(jas@BKJiutg@bYV}ckP5Yt%bLjVm`=itG_L^X0Ca+`f9CE1$BjF?Xc|(4qv4h z!B*$d4KIvvP#e~9Gy)XCHorOk=z+<+wevKAdq~b1t1BuRLu#(?t^DKE9U)KM-MzWU zt*Z&!{LVrZ*S;|RX`x4T!mO70AP1IFnAj(ZI@Er(Z@-^iN*sPZ*?lZ+nLx+b7u;8G zBnvYO4pdW#w6BH$W}HY4R?$ZJ?)&&JS#0)&osLHqCaH^p9t{5bsE2Ji!OK_9{xo=Q zB~`iTmNSjtMMfAq8EQ_@Os7ZQQJ*Me&6bTraKHm%3-1qB?(*FwMR2`S^V{0K%)jf& zJKIJ04RDarXiiFmH4?EXmz2G|y{mOoYj(v+J59a8T!Pn|%c5EE3d>XccB>9poN}G= zlqrYxTn1@1(%7}KpIv5s>kD~v9w^=v&x>_&KNPg|nF18>FqKCKwM8siWsjA+@t9A!n2S|-M@Hc?I}wFCsn}ZYr^B}3wm(GR3#=_;bP=Yh}^oHZJxJA z^#j|`>pwuE(2%512f5?D$;GCHH(kidoLRb@b(bWJ_cx*PHlbWg7{1MnfZc*ealN8P&v!{!WF917njPU}{ZeLR12}Y(OxjKTQs$G%E1G{nDk#8mT$bY9z4FCRs zYN~(aF($WY`$09-*aCVg=@QE*=bJ8FDHKi7U&Uf|$2Z){&rZ4qpX171BckR(4qjl| zFqZS?qdWr)$FB?Hu%l=RB3&Qc!mCiF$jIYK&)?t_UzemU0@7E}LZHqV0jzvG^xgKX zDe&DTE>r5AkADPMn@plUU3XZa+)t`WIndE>05c{GV2KQr2kN+-65k8Fu5zl`jgMqDioB~K`c`K!mDc$_2qfa+bPjboe6L3S z-PTIZ_>NZFbIwoTd!ImPHum~~Dvl!^n+FZ^_X#HHf!=mcA=wS7jrFaT{*xDMr!$rp|EsH*`a*7b2SOCS+N?bVIn8Z0?H;O!RJmr z*$;i@@T+blyD-_)aS$&r+RWG;WSZ*SeJ8zAPhDJvjj0EuT$*XCLlgq62x7_#ZF1fn zssT01CYiv0JGUrm!te|oKF4~xOzw7j31A)l+;ekZax`U8JgP5wqY;I6Y}cCITk{s| zl-uCOVxay7iU-ScFUBC_#Ryt{*p@e;SXw+(uCyOXx7E(-H@4R1iN)rT!WSW7ob??Bv^M(qhWY0 zJc^e!rXXIaOFA9YD^v(+Kj!7#u1q^rrmnK>Ojt)Mzuk-<*9r<`lM{4dKTwd#tEE!|VF`1`Rtv$^%kCoku;$IfFusuP`Kb+U{ zS!Zy86|)QBbx5k%!A;bWNRjNQRaVICtPN-lIf62CW4YaCb_M!Gns#O?W8>St5G`Ss znRRB7<*hYckGDG+;N|_2%J)e-bHt1qeKso_(nXy9A-HI5Xnnp1y+j${L0tru!FTmK ze1e)wA`o4|#CWhmNo7ruXaBti{j zO}uvqZ|a0-DJdUlS^Gu!5?U8kr6bKIfKEzL;T}ylFAe}&7*!HjZkY}F_1z2Sw$$VB z1u*Z)%iIYP+0TX;!VJv5Y=?)KuP$DE?^jBH=--T`ba9z?U9zl*xDp=~jcz6}Oj|ob zTzEOobI?OP%3P>qPdXf4n-l0qRf__onnxUd(n^7qmx8fBLK%`Ki2SdXVr8A>b*FY9 zyYA&=^{J&D(_6E2QpX8+E#yVDjQij7vL%Mv1F&ar_CpE~KsZ#*e2+$2{ABwp)hp@> z#g`VOOMXT*gFo6(Hw@H_xSXBQ-Y5iFl^x5iLjRNB=@l&Ox5rKGSH>CMsfQo4XvjX-c~UM|2>mSf-Und zlHBzd*3oH5M}CWp^wcU2kHL$J^Ut}2lx5luv`SSywUSt21eF^wi4Q5No?AuLAJWuE z&Yt#c!A_P-vm><%Z}VvtmnaXWlgZB~F8}PQ_PP`JG&MhY65?hi6c0-%mL@E|6Xi;cHDd|$tQ0#*IC32<_FZ>UxHB>{tir3 zc7BdMsU1jsl~9Q9czF>?%lehN_d8L+<_24z?7BYp<AE6}ysG>3KAsmLvMBA-?3| zdUF1hbLOc*L9Sa86ka5A08VE;lYek!X;#18xKCTUO;3!<$w9|Fuhvitzq9#;_m`-5 zJu}mduaAfE#@}o2!Mx}#$lI)L#t(yACR4^TBOSAXim%!X*IV-rO-C9M!@-nHOA9r+ zkR2axkE@(b@8)?&1T~^N!1zk;eS7YBVmmUwzqm_oS1aeyNu=rj&UF{RN1lmkSAB7= zBDq!EzKX$MvY4exKK7IB_mE<6i~l|V&G*AjYc1O2%Abp@9cY2tcsjK|a&@%7c-t75 zd5sSvoxpf|tV7sWCB7c%{?>=?n-6X0+XA_W4S_9f%ePc?dH`40qJ-CJUCu8dnlx2t zbGt=!tvi2hH5CS%h9xy8Up6J*1cRUCIylX!XRJR>BAVKMRedt&cz89&M*oX0IB`0QZ<^!c(Uz%~A zoB3*MsN?i;H@WiVP1DtfI@bJ^Syk`}yvdSS+1Vt9=Iqsid_R^sUaB#9Aujp&MY|d$ zCt2A~jkVi#OgJyPBmIGELL;7sBR>xGK5qti^)W&F3HuW_y?|SkHr+p28f9T| zi5}b9ap3+gSINd*OFq=emqyKnODKcX^Lz_}r&LG}Q@x3g{jC=?Lpb)Gkvu^hm}^4W zp#_z(ik=B2wAn66UC>Oxd|Y_}Qt^$?PY$O6OX^$=aK~&K@vyg9-k5Ec@v)izoqJaZ zyLT9Cam^F&vrW%6%bgIiK%1T4Ip#m#`i33lIjrEOH5OIHI$2sXHoLfEUo2Q}DRy;O zx%^IMs)1Ed$yXO9eM5=8I(ukUI^1mT-T2T7bGpSrKhOx_en#(r)f3 z{iRqMP1od>dFRfn+R4VaO|kFsV!2K!bxV6SRIG0Q3tMc*+s?GNdIU;(cG0#R@bx$L zjP64O$90OCeV9{jSyeMeyhi8VAlspPn5dDC2yg05W7;de!r8RRS$(e2jZ6vI%GrV7 zd2d-UFs|1i0pG4&I1RQ4uBE&lyqmFY(^lt+eb_%&e5w$eYS1KZW)H9B9IrC^%;WL$ zlW_nh!fM1kqB4t?GDwey)l9kdf+aL1w7%+#8FvjU5GoAlFXy1X@c!K!up?pr@9o!d zst%H$cO@$x5m%mq{jc=rH<}&5#jM&V?AEPKg~q+#$CkvXT~IMVX4HbL^bb+ffpYnA z;LHD+a-yvgG1C!h+pOa3ePtgh6T`hEr(%@z4T|&`#|mbcJ!!$rm;i~{PPJW^8Q%O& zmJO$WI)iZL_kmS9>!0}qcbk3f6CDdaz{Z!+48Aek)C>HvCypu|1@XCNh67h1Jysf{ zsGHB?H%naw^|fGzS@k?ogFyqzo#VJHIGA_6WZ9gUT^Qil&>30vvnHp{Ij=>axNvv4 zl}~E(`9mHY=){k6aBbIC^QE}j53aJm>@cEGq<`~JkT72ahO->rLvh^@Rsa@{jwh+qKl_t= z-=ofKYV<`<>L~ipxNKi`#22H-&wV0k^-(?CdOAX}`>t(5@A={t>pTZ}APX{IM|A&p z&NyHp%upkAIGAEeUFz=y6VX+emi4OGO@N=Cs&<>7e4|f`$yO9kcepEaZ!0P%U{BV)?+6?o66qcaN^=2sXV4agDiwG%~Iqg;Jl*RvvQhwsSBbuPjx_nM^H z`xNjd`of)8t2=^xQ#&zia0!Xz#a(NQ+QN#*=(iG9{VdG$pFL4B~i7Q z!E+kN+w)`m@U%Fq*2(2f0xjnN%Twt`O83CTD>XC(s_&1t zy#3#~et&s&e}4yA4O#>YGo>K$G_v~aF6Q{cf}yc-8l}1RPn%dQ<_=doyjQ&?fH-{r zqfN>Bf9KRHbudS}A#;F@|D9W?70R^z^ws~;Z;7O4!_q`k<8FhDlCzmxFYkO$!ZHz?iq|whga+ zeQEtA_V?+J_1Zm@b#p%D@8Vw05R*;NhGgFYO84c>OX61xun*V{9q$+B-`=M@g&qRi zrN^osuxg2mgy4i*M+uS`bLC=9Y9qri)9N+5%sf9qp?AmM;Xyyi@=)dy^257lGP;7P zOAjL=IwC>k*T-|{q!9L1%P*n&TuL{fZJWZ_{DLoHh$QW_wKZ=R!68CC{I5kz8FSgU z|G5NN^LSa))PPsLc!gN*_tM_idp~_88fCez%*XV9oW`x#w)w!9(y<$JX*yoj%gjEY z3hcrv&CcsB=}f~_2AEj4Ik4JK3OJFjFmF*&2WCsjt}+p?2Yl7Xq;{yBfzw5|li&HK zSpsgQENMWM2gUDfUN$RsPbSN=w#~eyRLC;X>#(I|aJd&DggrKYH}K`_ov`N+JV)k7 zJeq-(Y!{sU&&#LcNa$KYcJQUV?J)IUEQqJ!l&o>eNg?7fNk6Kp`y<;!y0H$Zf2qfF z$lZTt*K&eVbXQBh7xt_=q+5s?7>=}31X zoIC!E%}O-_cwWt@x^+RJfvxhH@TafI`xjrg?4>`e(vA=K#Bs$ZGbXuc0{)7#)A_?h z7Z)*cFgVjomoa<{$lTTvx&Y*IqoE?wv%~5S6;h3gb1j%f2d@+eS__WD*OrK?UTc09 zmtO#bftXYDnm|@M$>%J6{)+#HvZt2{h$_fy9DucX?gSizQP=)Hww4}GBqz^)Zqu(T z$*rI;Z~U#2uoB;KK&nfm2m}SVo9BHdqcvhl1T((3g1&B?JAVxyp1W#w=@c3T%61jp zJg!z-Pg(_<)P~bh>DK)>O2zMVTz(G{RK2jD2UNqe_nY4x*2gX+etzuGEwwKu#&C^6 z_K-ajb-$GPK05a4+fT`m5~=MA8EZ=?jky-16IH7GLvcJeN&ZC_^UQs`tJ=GxrG^b> zvrVcJY;!)9Cm{n@|)=WXX0atVGf67%PyU)QsuUiIz^NXp6JQ#eS^G^kPao+0@ z>LyqOdFf;2E1!eyHWh=zpke#O^NE8p#u`_r&3J_K7#A;jCh+vz%ke^;9Kf>NRf8Q) zChb)O(yb3f(Uwd1X(6`uu_Y3qM@de0?xiLG4?RDp*X-|6kL`n73X@{9bMi~p6UfIm zfo3q>m-5Eq!(=`-;TH3K^WWT{F=s)Qtve#WhNNwuN{}6+ZVf+|=z&DVWnGi=3gedF zg zl0Eyj5hc$+DM;0;t8Ln2s%#ja+al^EFMB}@zTWeOq5jIeT4Md>-_#c#rzucghvk&| ztp|r8Heh{_srv4AIaJf{lxql{2J30D=x2Vc`745UiH-Y#QWO9cW#g#A%{bBvLQE&&jYo-6_H0y}E^3UJtyO&K649^H#^)`qz4Qn+NCxt1t|35BA5 z7hH%cNp4|CS@O0xCc6JUc)`LR*L{G>e_MH|$Q==OT}-|GnYUc7eNntS&qoHs`V&{k z&*|lr@!ZF0WEvZ3z8U|QbRz+3%6eY6s)Qmz%nQ2wO>P&K7XBMz@xI!hSl?aBNv>=> z5q?%JcJg8k)hcx3h1EA#eOHT?`T)`ZDZT`4r#pl(S z{sNDmSXzImZB5L*`FAs~UHkjHPs@5evL3n@q7KDA9dl#mD5re)i+&6ISfWY{Pl#vB zYw|#4?%P~@Hzyk;*<>5$QD6D&#r0&5o`UYi*9vhHwPbJJ1)2P<2!I07ZvD+}QLe_M z8eEm(3gc zUc&EO#hhY|3@Y}T_JNlS16tEvyqwRVb@ zpUvM@Qa@z&R1^DeoG=qzGbgQablruu@7sd&~7J}#3>&m-qa&pt@&W^OBPEB zc6Hbx#FE8n>!l<-^fg8m$yRqP4L3^P_Fx8vtPu5c?e#ACr@J|?4v(nOht{YtTgwpe zf|Y68ZvfsNJ4^E#?c+xJs?T)4vn46m!iLA`kQl0x=cqx5ss6=u=|&KY?uTk)eTfxk zHAzbT#SbA`t@?#M+!)`2|0l8%1@DiOeG$F^`W)JQP@zm}wCf;8U-sU|>RuV(CRV_> z&mz;`nYUu7m!yW_$@hyjIk`I{6FGt-ZXO`JPE`i0IX!ZK-52O7!wW1|nh zWx6JadBTUe&rH3GXMEdU7%=p3+@)O&>TiOtN#v4qbrR0~b^-M80Xj~8MJUfV=?074 zWdCwfP)BDi(B#`ol_Hm8sZbiL$PtQ_3$4RpPQg4HPo+1=B~#~Zs0)N+86R^%iMKw^ zS|1pWpxr-zZzU}swu=7T_GgGE|66z7xiT8DLM3t{VN zA|jNlbqwQ6Ck-a+?ls2a< zJp3*@;a~^KIw6y}Yb$$(sMpZTC>GE7iGbzH4Ed7zM9#E=B!V!AYc_UPf*bTi2o%qn z1+ZJve!_<+$-0|C4oAqn&A&?P#&m(g`F3MZ50EsaNhxaEHKf#_;FpjyH6Ny?3!iVJ zhS%TEvU~`yDogg2H5(oO`Z+ZIR&!xOOaG@s8xn;0hs+nKyWU=tA3E;!#41K(Xm=-C z5;MEdt7AL!mc`BuBKqq9`Df5hcb`N3A{#%;p<_cwvQYYW5MJ_KMu+8MNqFp;jjMtt z;THu_6QWrX-|RpUA=2UV)AVTkhj**4ge}7?<4$ zp%5eTB=TM)l2H3h%)_kF)u;0aQ_2^_-8QenrGB>LjJyya`Xr{!FvnP+L%n!EsW*<3 z{3}UURY#!aSlK;G_DLzt@llo#(StT3&O_^~iP0TjxXvniJD^ISzuWe`zYynjnWRx& zC$lCu$`7puOQ}t`FC5j%iMKr%KN7<^2qW!Y945brX!?mMeMK(_o=}dr6>!oWIIkR^ zm&1$;!;x+scvBRh;XxY90=}Qph&ilx)IA`AIl?loivU0WzouAu1>ZWFops^z9=um} z<%M5Px49_l3pGedIDyPD)FMqKxWy^&uL>-J9J(W|?Os#!_f@{-et-8fHTdV% zpT1w@Z;8GRl2_8G;kB!ezuslfTnQK8n>maDw{A{it8$csy*&r()g~p~B@v9?{mXF>x zuLBw$)tSt(fvUgz_)$v}keMHD_R8keiz9^;QRxH-CX{}2D!5f&N|OTo`Z8qd8+WZ@ z`qS~Z6AE7o@n#zXxc<@g$jgs%X#BkPveqX?opTDXuPzy483XB$ZARmH&t{Kh9LHda zR~8#-%nE9@gwgm?WAT%my+U5}M(`sGzvK_Cy5S>W3)uTfsrC**9^?5A^03KvosuI( zJA7!Z8U^arE0Udmqp2&=;M{S78-0BSK!(ftK=~@0=mDkE?i7uhS3^CKpJ9-%uT9Fi zC5Kl&4#)-n;`?+0s5&x^(d^nX)bj)Zg5LmU{BE%0eW3yd9fS#IX0TvW7w*$p=Ut5s zzq}P*%06D)oP~N|YW_>TswanK)hw+o7FfahE}ayd6V$%m3;waMT(i1`aoGl_$6H(Z z)n8{myf>R$6-Lhl-+(+v<(%kPiLT#Hrl`WQ=jK92CDF?H*@*rp0a1)=-;QLrVYt@& zDYa&Ymk4iP4}z&-@(4?{4d=b_2o3WkxgQ{US z24UBuCy0|_sKw#^2qT$KsV(|hTvRn*rRP?J{Q`x-f0%uXe%zGCWa0N3UNVikhG2o^ zeUxu8DON@G=CtCyQ$B(LOyHGTgmTe#y6*srKv^oe$onRMo;>@rG-Ekp;&|WKQq4Qz z!*YV_5}>9ef>ERJzVJzm9p{9|+gFrE+51FPh~1%j@eRnPW1q&Q=nzL8?Qi!2uy;GT zT<^dF6k@nk^rZ%+aa~xE#_}{U(RKa+-JJ?-0WC+x<<&aRkJ~39HF7!U^C}ao{rDp+ z?5JW^J?gZJ7rVFJ7Squb_!RLW*mzISp%a%mGQ<8{#@n$K%CIbni`A&gy>XlU1qYfR zqE{zqrUsk0s7v+zuwXjYagE{BO&YO6{Fl2EaA32E{%tIHcqn&LbVogVxJ$+o;`?ei z>Co1!YuY{XrO0+q;Y|vpvBI09yQ1ye;+F)A_hqSXZ1bedl=6Cc)v{me42lZ>+@DIY zp$zWQn}@~^up$*xDPbS!g%-G%)-aC&05l|f`ewXYBJL&W7PEqmlWqAo0j0)z^%THT zW9ySnYZ_-L#ybTWb6xo&EW9zZl>eH~d9k|xKxR0rJ4g-s{kGtS$k+c$U(OGh3*DBn z_S{64-ngI>I#RAEU(4;z3A-rW?UwConp+WXFI={1@1iXbFHp=%{Nds*$L>1uEA7jDjjA9_cG#o3Rfj6|ZlvH*eRnI3 z{F!IBeP5pPXmKJGBkUCnQE@@vFQSX#2}3q8!V%g&b)?Z`uv0FjodkSU$e4L1L|3>6 z|7Jxfx+c`eLC^6PBL-@*P076vNEDPoRerMOK#onY+D1<79gc7ya=HzUX8$>CIubm zS3|$EQhUHm_5i;-WjqQ(lRALN$jSXAip}XKe$K{6 zn-A+&k zcP$#H>@ZqAyrcE>RQ=4&j;U*o_Aa9=XpdnCkrVp^?>7ixGzoa{%wK*7O+u(%n6>Sp zO!#l92lJY~JuqVTwbz1|Xxo?+!>O3GFmYZQopLzyrGOQdU2N~Kv*nKtV{(8fz zHR+!giEB}2?7wM}{64Ax%#@Y@Cl-Yu49d8gk>ZbJ1)~YDYz)$br#k#aBlMnJLn}t4 zfHim>JF0e%BPmjAJw-%sj-3V5aUHsDk;r8v5>P(D45uq9uZN}E8=b# ztbF+E6yLUd+u!p-?GK=uCfDRyMep=-W@ld9HxupnLzKII!pVUHF~Xw7Kfw>K3fCZa zk0lJ)Oii=G^{%Dt`)EwZfR8)kzOJ6(mP*?#!iffo!tAG#ZBP!OCu9F^_|dI`YDN&v z{bxynLi1&)%Dg4Be9KPB5R7<|_&hX%>Q1fCv!VO!WFR-{m7_BrE**(7;=hD{^u5By*_~;m!H-HVreO7qC3SE3%Vo!AI>>tLvPki8 zv`$+_6R?H6zn63Yu31-$kxKk%P;w_GA>xzS$+loA?L>l@tTly_1O>?6PvP{kdxG+m zyVD|)xG~nQ+A^%Yl&W={eg7ouJn?IPXra{XVF#q0`TlmYAwSI1GBx`^NZrVN?y6nn z*IR5|SHEg~NzdIU_aeu=#^y?(XYBghBbC8TOa^hAn<}F$gSy`TEn;lOcqP7K370c} zbuQ0;a?EB8P&gWLxf$xYwfsC~LagRm%~!pftM9)i*IkE<^XxqF$9`167*rNm?|gDT zolr2U%thkbSdmX^1@%dbtM$}D`18Bn{CfM-9^oK0VgQAzk|Y@zwL6z zm~Q)<>_uwXwN?65-Xj9eO`ro07nuDwo*?&g{2t`eg++3z+m{lld}FqV2{E)UQd|NR ziF`EIEx&KBZTN`BK2HP2ynsbI%br((5S&(8t<6r9Z zKPKf)-lXtc?@xmEla(ry*j_zKAyoH=pss|M8_9grTcg_?r#m!->cI}zVR8#L+zBT7 zc&<;bJ#cGw`JQYSBkDDigGjBXUS)7pl((Ub|2OmV-kBQX#PuY>aR;k_J}%-8wd})C zW?uR+Mvx)^b9hoKp9>gO*C{@T2EQGCZu}VTXo+&F0+xL;TMclrEj1xj@6wt<+1t2I zi+L7hP&6!_(aXt2LeF#$bNL*NTJU@}R{B7LT3hYQ~UePUeU; zyW!!?cP1AZh!z-r&lcsr#u&VFKIF8%JJVyt9#(S-U4Tn@J(oNq60%<0rXlnN0wVWI zqeLNr57JC~0UrZjF?~<%SoI_H;Y_>f^Pi_01NCjX6FNLnc(2|`vVaYaZx`;^u@cjQ z60DAcY#|{jdV*grMFwOO2fTYPl8B7&J%F$`KF@w5PLjr4g}0_YE4`FP&wc5mS0<_N zAO>Cvk}Juu-~awv5T~aWXZ>J}(um9In&-$R3Af>%Wc060S(2r;`D8suXOqDcviz&3 zt=ti~3I5L4Y-21zY22`B-Ly|&G@+Rj!;@D0V5E~KGnnXef0!aSuo~x)l%+ttm5RJS z_lC>dGFosJcikIPmKFdD9DhwS?@#t$_pa}EHv`yu2ldrvmkFCYP64jcNuuCi*10|H zb3GEz7VdE{nZ(!GvfG8g6FIu;O zhT-}Ob|toJ{5*uRBMXa+Rj{r?J99$)x$S1b)OHgG0S=Tfei%IIg%IL%%9IsAx65wx zv1L<_#J)Vgp^%65wZAZIzSdS`Z-GxeW8(goh$q9=$ zzTz!hJ*fe}KJ{0II~N#|oF00|_6>Jh(Jr=q>NzlFG~VQ?)++D`wV`=jkky$lYDxi` zbn{XSN;4|%shnO+hEK(%P61q0z?|M_m?hbeJ4gjsb?I@dCACulmTP1Ae~Qk-Bm*7r4JReu6k@>h7f;gb*Ep&TFt+f-^S)(iE)V4n$~+ z9wZUC@yTx%>H?^*qicKtJx04C!|mW#&-C2>;uHDPYDf^yoZD3w=Nk{#E0AxUB5utlvA zWdhy;PJ6}fDGELfca?sq3+Usv_r8MkYpae@5_26ZjUY~9NK^AD$d1$c@NbPSmrZJU z_FRXDYxmWc5|V9j)G?N-tyZ}f6)R-j$g$FGwyQu#WwYkz*lG3}WEXINFU-vLo)WPP zPI+XTE@INilv+Mh(}wpp=swWt?Kt78m8yG1LW>>(AH`Hj$7j)c9U0LCijOv`WU zd-$5@y$01m1`Nr%44$&a4m_)CZ0)x0iU6c%fF)Cbt}o*3NY9DFj^g z)K&k_Zsgtsur?k~M)6MPI!z>e5iNcF=1~FIYwI;bCp!5B))mv+sT|Q|WGS{0+KT9u zyLZVe32{yOOV{y<_kVs8n|hj@edhl^bE^cu{Nn|%AZF0!DcqumOzb=FvJ^QW_x-pk z^_ukAec98L*&EwQ2Var+PZ#BvoB#U*rKY&jkNKDJX;6-Cmf;CCQ)@*VHOj!Y5Rad+ zJQ|zSm5;5kj55$&T;CY-mOIy%;>k=W>z;#0G?u;O)!5iW4d_Y`xin?+h+9*No{*lz zdKP*0#5=2)z!bx+<1%3nV*9P$K^A8~E;e1q+|xTHKE6A8`L{%~>FUbWTR9d5gL`gc z-H`PQ$HmrdVI18fqR*A;N*q`^0ws;aw9|m#fahsy(Y(4lA-#u>8B(!ze?DZ;Kzo08 zyc|Gj{COzR`_bYP&C*Qq-k2d}HLKITf`XP)+y)FO_)VEad@zwqAR346>gt3@aN=ED z>-C|^lDL&Cn*KYK29q$-yJ%XIMA0DOInEB+z9lqc3^q0j7nCG)QM+ zd?Hn1vjCVxhI^*o*)a%)tP0liJfea6zEl0k)8grsH&Z)i1_RI*qET)FZ?ji4dK*Sv_xi6z zw-NAI#zbf-E3{l)AqSc*vNuL z3U{9kJDWU2EjkH-5n7>gQK#V5I^Hw;8aepDO~m>}kIV_-^@=U$4@?J*RV_vZh>N0y zw2Rh!K?Do$4^X~6pd<)-V*%d1(Aht+0WE0%i5dpPaYlwBY0bsuX_*6_y8Q>Mm7(U#`1R7#x!4~<#e zFJx@yTon-1h<6G>t};?jwW^}|HbqGNxi7<<3sUYalGOMGCs9S5cF+I|khktHo#kDY z;F>fwu|gW#Q+%2LoXceY17KmSrTHxdp2`D1)YZL*g_ANp%j?(Uw;kVe_oJi2cktc>LGC>R0$4^cjsVUJi zdF)IXNFpd0m%cBzfWy}1T+e$r_*+^ODITO2u8iM_ON6%WN%7B#S!7NF9b#>d9Ga4t z{p>W>2jZmWcfG%-!y8`KAF|s19(U5vy_3{2C=5c7ksITL*7zUrWcH>JZezTu!Ix6| zG7r;vRLZ>_?4$bX7jWb)Sq!7EG8qaQz3t~CylupSuvM!)+%Zg2F9ru7u@jOw$!7Ml z3^}mXy|noviF*Arsq+UgKd`zreU_KU&jf-JEnH_n(b)6DY(c|#A62ni=r``KfwAJ@ z0x8DtLT{C(CpGOS3JYJ5Qmt<)W!j1EglA{d^fK1uZ^rW3E>5YNyuAb1?~9?ocKjPM zquYA{0N9?5{@-VG_rsXU3USc-G8%ao20oc?d<;6Mv+B?xG5K}avjFH(OPTIq4iM6`D48e$xqT#uTIR`})}*bA zZl);iO9l_Rh{@$V4~+XgUYRy08f&YidF?)1pq?pKE({2%PD<4fi^`#0IX{(o{Z{$C zQrqOw^OQq?I}Nx|miai!phCV(Lv_hH%TgkGxg3_VwW5UcmwfYxKG=23h!-hdK&;RY zl@;W_-}aaGj$5lGyOqG?LXMkpUlP03`*WfmrAb8IMA%5=hn?v#jBqbHtxvS4J|nVp zbV;p-3yu6N8G5R(m^v11eqIN>G1Hp#El`EShW%X#IXc_T;RLMSEuwYqX&hss&#uZ8 z<;=AhaRqGY{PjRVO>^4vXiX z@7XdCGlUjX{~JR|JjB+=LhxTo?Z$c8M9Qq0PyR?asu#K}-T;P$)|Q+Zor)|izY#+Eq&`yh zzdx!K-ZZ?8H2W9$dD;G+^7LOs^{LxA$7?me^Dge^J#jlRR;yRG))cn@$WUyh9T0>@ zt-R7;BxNUnxk_fv;6B&->JbsHt>s5T5coSiO@o1TuJ$;bWON=9L^A@`;*=~dfc@)A zN;gaQRS5|_-~{x^_~5r;Tkzy!_ql*=^8y&z)}eEG0~1>i77Z9^Z=4m-UOtbWZ;*^} z^@$;rR)P0o#??tx8-KHW2v^s}lpM9uakIJnJNXgdYYd>(0ZGH$aodYGV)Xq3v;svq zW-9FIQ}i7!?VK-9?!1J8xdga+L)8*Ii&u>cJ$%M3TstqOT2+kEt&aY=F2`5_jfx7) z`(Rwk(Ac5tbHs5gWF0-xP2U$2KY(_jH&nM@S)g*p6IpA+#cKvEog3~VHNZPG)u`B@ zdp*G{*0hcn@Akn~=rQ%}tP7@6y1^V#<#dO)n4Lv8^cRHZ8A86Nab5c78*9cBwsWYp z#2a1N#i5rz#|aEZXlUkdE!7a6+J-cvb;wz4S7}$ zS)uDz?6bsQ5g)iac&3FiTC90zrP3_iU&fZ7SHy;@M&Yaq_*MTN9YFht4yeP@^-se) z0e-n*I%{bhI+%aKZh=t6@08e4Dgc^3n*}}|5#X+TiIG_$VzwYY8<%qxpCavOLUijo zEO4E#Zx_5187m_*@{8W0rY+sFU%cn*rruZ1GO;zE`%i50N5uT{clhhDVCmY^(Fd*Z zb5Py`#y4wZ5{?z}i&=KZ6{)hi+H z{pa^O4GjJAP=^s2AgfplWX{A%F_=r-PV!KGs$dm6>vqdefQPoakyU7%2e`6IwR>_r z-M1oo{6`dRT)&;_5%PMVXBiz$_guHk7KS!ny_jjztYwEQ*kw0Z6)uXwR+Nl6mLVii zef@n7$Rj}aF52mz4vr2UD&8x0u-Pk!(0@{0I&W8|&(>zQlpjDrdAj}R)F}DibRRXl zFJp?Vdqc>>q%28?`6pT>zX58x7OruAKnVW}j5O299-$jU{B@Gs0h=Wwrup0F3pGmO zLuU*hH%LUCg?ct@mh&b{Vk=ZXW4{-;sv8imS_{Dlfj_uN(jUz2r*63G^)b-8kDy0j znbDo9H8Dl`o2DM6y_B+`sA``}zVlaQiO)1K`Z1ICL~MJJN7_ewmO%!({@b2{Kq*`F zUPgXPNm+82ZDw1iCtU?>XBvdK$lbyNmDCQL3$7As-aB0tL1OkHabx||6AseX{Wm;` zd&;(FZfcyZVd-5QFSmH}UpEVIL2>?0v-B6|`wIrjZnsF1Jp5Fci~`eda$J$+3h2{O zfvV>#h+xh08YyvrWhGI?dYOLB?j<>F)Ki9Zlk0Kb&K+ILmBv;f*yOGi9zvsQ{cf=_ z?wL+;`+Pa)Jg}H}AxSd+TmnV;A;CL#^6OEI!AK zz^`tD5V~5A()HJOxNB1xos464yaMJP84^e?Qbv{O`7t%8`ppgp3aF>)VvmLc!%j%w z6JVA_23o!}B}5-%W@DI}SqjNx==llf{>fjQj=ugp**8zOR*d_VJ6k?d-HXb5=p~r@ zyNehfcI(8DhGmPKTeEU`>vIlC{YkXSe5H4yQH~W0udra@W)eCTOSaHdW|#oQhPt*q z*3O~vN>GVpYV?h14g!JW7vPWs+FcJY?QUHKP5*dAE6N4(5udvh(2FtLsTc1>f?s_l z>QV8Af*;D^&H+z*MKT)06QY$)W}pqWJV#8oZK32E_!U>gY?d36?<@9EV^Rj^f`=S zP4}Eik2Ea6Beu-`(HkTrj66|rq?F%<9p-+JH_n>b(;icX`z;uZ0Asb^r=CY0s=8GZpvA%+ZSf`BK00?6Om)d`VRf35q$wz( zY?xO}nsfKv*ALVObFN$fMt!gpkr9N*9Qh-EcfTT8|4b9^+D{O?@p^5^;ZPN$db+pn zQ=Rrrjjg=jjX^IZqC&rQ9(Ks1Rcl*t_tBrGV_w*ro(4q4>$GHq9L*0FDf;siMKm_a zjzBFgd$~RTD;>l}B8Js0PiGp*(I>Dy`!e4V)Sa=TJL3aBZ^PepOaz{W4a^2H-()UM z-HuAvz@HM7tK`Tu(x*T{wm2sVr_lnf0=Sg?fsY>hZnThJq23svy#P|2MiG$tR%zWS zCJT@=rlN*PRT(7|s$&Y|ATI7fLLL?#g#edD5z{fopikXX9~;W5J~}qbfGgIYKTwoY zXz^>W?pSKgw=kiFR628YH0Q?!e)%x>u-?HN8nIZ;lsC>_0P<{OdEF}<;qvIS-qEb(53hldslY! zNAbOq0PQjEV!{g~4GS4w&=OZ0QCcX~v7%vsXCR4gXN*76!jB^7AB2=N4OzI!OkD)B zIVZg;{Pmu~8Atu@6A;Dp9}6+)oGe)&i0BWWup$MM75~eodxP$xg{eh1%>2olae(_Y z#hWW94;}0GDwh)(;-;jUnt2&I zJmzb-9_+lWMY9;b)6QRt0a28VGhtJQ=-MaXV=Zg66bb#ZMdX0-vBKWVjv;EyDi?M`VKbzlIpcXP2D)tAO)Evi{`Wg3bmx72z7hG9bo;r<(Rf9H#Pcm zjD37}3HxlBZ&MK(m85zZPA(TkcH2V7VRQiB= zM90O^x%|$82BFTL2H=U98$yUKvFh9QpEI!tSu@|KW6HNIJEs+EQX<(Tdo>elMDfDm z(J{2H_6_pO?WIKWoVb)`h<0rFTp8JfQ~O+W%XPv_>C__yV+yuZO~uU6QkNOwY2 z-_RA2xjqY`7H%JRw46kz#mKWJkPAj`C2kc;17Kuy7rIQAg2R^not86ur%){aP|%fH zOQ>Hrz!{sO#l{+%=o7PUMhigu%=dNLfk<@#7rX&`Vogr$qJIr?NPZdM=ahw79_ z8NGySIgO&c$bf%sm{7Kn;*}8duerraSmAVM9&4|2I+OqR2j~=E*ZmdlW{jr+0b_98 z-Fka7Cxm&RdY`3y<;tSyf8A)vB&Tke7JZ)0$u;=##|{{hhd;?|7E^e zOG<3@ZaE2YruPomRuN41!hGm|$ezDiA9}yvvCMYy41>_kkVtrdQg^qiyoo_NAdUiE z9IcYMW2HW(Fs}e z<-0aDgmJ5iY$knM^G$J8LPvsBvRjdBzJ8N$w8JiVW3Vzf!w5;S8h<)AWHOxW<2EbN zQMKW8{dwBW1ZuKhQ=vgYP3XPKemww}Rq>3ad_XKXRX0aPw0lT4!=w1u^E?0SpJIVA zS=1mmN6Bx5voV*2n$6_?`<+VySeu&6=ka8vgFc#tcRxfl=Ap!iXHFmL--Wnej>_}C zRZc0ZHJ@Ztt!!guvagnAy_}F2wn10!cbt$Epb4`@_PTtwvh(*%yd*EQN9OYlLjSXC zWYK}MvI+i|7Kf(V6IaFK%rDL7i6FD-t244@L$>7E%GzFNcTxG;77WMqXGUDFlt#8p z$!eReNSqt!Z1|p(wCJ>>D#daIcNlu4Mxrn|Iq|VC5iU+4Wmd?jvLlq6s{L%Pf$lpD zLr(0m7X{&UohjGN)8Dq!&$6%`(GyzfHr~Gb=If3;<=LrMP7}wQFGo;J*ic;Y1{3~> zWKTf5(c9~*b_f}pW@AUzSAdmCioS=YC-#-H``xpPRZVBJ42@p_rlhw@{+Jx;2MxVp zN9R*JPmAiJmj?RPj;Y)lUh$@_mG{O^Zb?@c^mttr6O7G4Td)^d zEUFuyyn-IoddY5TW9w&d z2!akmqbC)d9peMZr*$LtoX>8s*7d-YwBJ<& z&8VomiTGKb|6>t+U_l372Q1NXOxr0T-pOe zP9F%R-z+vlm9Pl3HU@Uk|4Yz)l_HOvd{HTuwcaDUd~g)b>u%;RI#$`BUo@c{NAP<6 z^rJpn?GGUC@6H+aNTF@UGl4flbWW$AH->c15RL)Cqr(1120D!^m@@!o0Y8}jqY71#doWR_5agV`2ADKjpdaQhCOwo0nNXWG-gE;y z1jtuHUw5#As;2}taNbqTHBSm;vLVQ_!lal~zG=pVpZ-PV2DqSWtGYZg#=E8eXp_dJ zbC3C<%bpEW+mHZS*X+P)-uI3ksN&y;?Y2`(9}y$QbRaUl|{{Y?NW38Vg=GJ6?u}%UYA5MkCDd9nkr`tRFxmG9c6v> zgR(te0(pmne*fn>JJz@YEL~B|QbW|Sd*S!{tXACLbb9QGdlEDZ9 zK;^``>RZ3KzPobhv6A7GdVH&snu}jY`xbRRt0LHD8Eb*rMHud?zS>iL+OGax9)5TH z#g7Nu)``4pgfPc-lMTF&0u0f&HFb>g*?hD3^F~z5%zFF{lYbG&DbIvJ(= zD!K0@;V;i?TT66Fg3D7&D_b0eW1X8vOcY+{a4X|uD6s*lo`0(Gj$1u+5mg?24H0q@ zSxSF1Xm3=J1RpEg9T>lv@QrsI7y3csVUPb&@V^!p)KUsT-52~f-Ah9nenLLDf!%%v zoNBxS^MoC1^-^d`#d22&D0nkjwRFBr_KVw1%E02;%*BIE5vD8t82khvk_A!KCHjR- zu3}dtrAPMvaCd#=0$-RE1D+JYv`WsZmey+4x5yeFw9$AkB^FI%4H*76v;e(*QHOoz zulqb@#g_B_bfcXe_Yfz5+XIW=oE~f{Z$5kU>TWr)!+?VkSU*JqJIR3n29Kh!X{n_< zUTDl>m6;CRU_En&*a@ywqrI@<5N+E$VTS!=Tt1qhk%3|?+NlS&z#lEYlLssmzsp^$ z_$Z6<{GpQyIMp$A!d>i-xc~h@KGCb~d)64O|AYre=#I&V^9xaR?3g4kzaOfDJNQFK zqV}+bwtxHEmOA>k%NK>ad)CuW`1_~eTa(7IJtIzI=&j2l@cQS1V#HyqKOqKN|NG-Q z{XNW$fZaMZbx zP%jw-Wj97TL4HIFoYR7`Fu2!UTlEqd7*Y-X?nX>0fR2&3A1TmQPP`vjgvkqsY-Nw| zww?_@FMmO|9BGvK#4^X`>p4RlG+w8Hh zzj0V=2aAvX+6t-mu*ZxB177pX)!UCxoDfFDXV z>fL_*-FhPJ$0y*ci3U41-NdXpJ&afVv@7O6oSW#zYp4NFfBJd?eMF(^?vp`7G+Oir zB(RXwJ>S~ix~Gsl+!ma&&K|J}h){#VR$?A*2UlZcNa#H=+URtu`cgp%WYdbQkzh%5 zSk>yYDYwes4l*TP2IQX?t@yU-0f}Ra9zl)l2Epc2&to5JfBhi~wi0hTuwF?5#yN)QDrIBhr{y;E8eavOt`m#P_n+ zZ=W+At%?KPk2~DDYFAuZ>*A_NaG+T5l6K{3@+*ER7zo!;LWG#jb!Y1a+4w?hxLf(+ z@()KN?j>FKgjm-p@{Xgyq6c6&uIeSUUEF*KH#3-x+opBJ?B8UFSUD~mZNDi^*q zT{udt2Y+N(HW}Yh?KXX9-2~4iTTQ7uyT8LOR=g!N+UmKVYEt}I?TgbeM#A7C(SG$Z zu1H0_CQg`s6E*9@CX56xR?=yP^((UcU}+PneO;#Q!uSp@ z$CrGPbLxD|dA+{R+w%)OYVvDmZRGzuWH6r&h!OtKwvy45|N9qP^w_pa1qf>2l%ok&rVCbLFuKGM(eH0nny5O@jKYjnP3 z>Y)qL8g@YBYUp@Te%&x?PF#|_ZA)@~)nApg)osSdyDVx%NT$5QcHz+C;Q{9pZGt|@S9UT=a{0$T>(-n(8NvFCm#bf{##w)qd!b@r1Kzi1Rk;-s!Yk+1uZE;v#dL={LgH_>nvViiq(zEABb~sD2b&bn zsi6DuwlUs%0Ie`z08`8lK5% zmHF1n;4#k+P4*&Ol*@Hp{PXAG&%t(f{jK?rv6-U2hRT%}9I;@-ExVQnUTjaM&%_)y zRzueC=DV4UaDK1`I(}`hvC8SlaOjW!a^8)J45(!n=WwrWR0Ta@MkO3bW?hHVT8^YW zF%9ibj3w3xC_V|@zb9W3PY6wDzsK1DHcw7nl1@11dbG*YCIwK}7_dzoi^j>QYm1^Q z1Z(9dGh;}+X#;)08{fl;nqsqhY{L&sh|?QRvV>bwRQT7v`CIZx^Ltg7SpYujKqa2< zc4XJ<4J%7>u6)prf>`v=R1OT{P3~>!XWPg;1v(RvsKu`Wd?jF z=ni`|_(MDsD3#{<4}SP^+lnfz)iA-cr&1X;)@dVFCp-WVE&uz2f)4)yDJVYvm&8nD z*b!FzeBh?te9PtQw9}AVM$Dq7HX~fTT$dfTyq{P2L(lcA>Q`jH?z+X9MR#1iKGJrG z#5*x3WPHPF(w~(kOf`k(-CT4ZuO+ZHsDT}ev|OE{+yb^q%d_$kdD-o$?mcs00BObU zyU~B5!Lc(7X?YSAm&DCVGqM}7(R>FJWm+WZ@FJ|Wa6BSDzo6Q3F4vjtP_=p6d0GDO zj15fp!uXAv3+70?0>N4lGvmHC4F-6#(J44c$3U|YG>2MDR@?ej+@-wUCHEg~CP&jp zBs0`sJ}**l0Gc)8pHm)l$f?lcWmm9##k#u2R+R6iQGId9>UP+SInxgAqL&8GQLp>p zR4(OvIt2Hj>1;#)GHysA+$+AzGL2<5t%81V;x9K2wA*cip>XiX1&e^he;d9XaGC=) zuURY_(x6zlFTgTgnFdHRfpVKp?f32g&k;_4bqeh=DphZReCQbdu&8&OriOpmZDs>n+~cIu@q(d;;;7MKYmMQX09!3JBR6^x#pWhT=Bl^dj&(XBmLZ9kcaU#7&Z!BD^q{Dp zKa$?zGfN8Ry>BGh@BcJ+FK_!hV)0DQ&*o4w_XqHQZfpOX(yv!-I&(u0|CE4}hnI%b z(%6%?F=bf{f}ZzJIMu@~5nhUf*c^4AW&Hpx$jsBJy8bqJy^IR=mX;iK%rIwqhlmtY zwuqr0<;M0YI_CsLc#I%Xu6_3s5~PofkkM}h?0(953n^jV@cfxDS&7ANR8gbNf3SbN zQ*E886LGWjb$O5Jr{^x9Kzheb&o4Dfkrm8uXToAek}S>oL6HdI+!zPLc-nS&Avdkv zA6~$KWb8L(XUZUCW(s*1H1#W`GerN(m{y53ZSG7=>x4Y;R`Gi%VD+?Hyqg(QU+LTS z{NXKa+)6H5e%e%WjI3x$^`bj;rAqFcpzP0C)#3ozkDGU{9)9Nz@^kqy zc6_b1JK*NF@aCI;i+ucgvmX^rV|6|WETA{S&wY)NC+f6^k!5P4Y1FSG@;6`x+jz0e zMDN+RbltnjuIvB%W1JPA*7s6A+QOo&R(=W}r}02d@k!rL*XqAua?@IUuZ$BG8n=lX zFq2{ZUBUPRb65UJRGBpBxJIX*pxSW3 z6Rk%{!&X<=_?12jEXK~$xj$+vK6)ojxAj96%0~?H8t*jTpzG7xWtM1Bh6|Fu&VJBnz4-(=Ptv@iAVOH5r=* z1Ux2X>aj(YMzDw!?R5Y6wr81DBP)_FjTVatUHlo-YQ+Ev@4%XVw#}!tYBK_8pq~%F4&YFILkWk zj^csPN!o~X0epE>10(I-)a=LY_T+Ql;d94tYPw`%EJ|=Z65J}gxyqqbGARyf*i^#v zlv!hyPZL*DJ^jJq!_5dY7N_8eC$>*M=TCVlGWl7T0gUicH!{8&8gmiwrCI$bbiAK2 zdC>g=f91R?I1f3esXohopjzw9IsdqIP_@{XiuM2Q{+gQ9qJLh)f(oFz-GUGOMX~2D zsu$5i4B7;R+je_;gUt@NrUPzyr9`LrMn?WgX%6jDiKTOQ{J-$qPKq4=(rVn%2w}NFDcqPe1roB3jR?YE2E#z0UppP|{47pm?KR z9YSORJ%uOI4Kua^Umtd9hveuDWD?M&8#R}(-QG~l=(P>p!*^ymey60k{CFcNVo-s@=QbPoeda`3VIFQ9JIeZKV=#fJT@9azX+4ZE z^q~l~5A2^~;_{w0voBrYWVbr$*F2>RB~BEu!t6BM*Hz_NL>@p$?`~-=m(}_!CiCw; zXZy-&N3mF0O9c@;jWi(SW<17&C;E|hUh}NJPd7E^bDT$|_F}wWS?_ zg=)fI&DqR9k~bp*!n{rvp!Lac(D*-{fG+^?Fnn170O zA07FoUjw>pqpV6pmMaKcW#0sus45Y>;}hirVgS1F?&_-B-c9~d^v*Uk+^tGcI%9zh zvC`qGjPOcp6fNV+sznMHoehmA7sHe+e)8)TVtnK0p2p{oasp;8;p3`sPp0&6rD$;Z za4kvwj*1tM6n^wn;|F`xQm1{AFZxN~!dVylqsEO6%ctClr-Qn4xEGcO%9~WX8&#U+ zLC`ZfqRbO4-3B~?@!7`tLX&xY zHosP}E4~ssAV&9M2{tvsHjq2hOcV^#eLHbg4TLcOoaGf!UDTTq)}>#@h^Bn@8bxAn z3uV6S!H{nbiOPJ*M@Os0CUy)d6D@cFCPwa5>nMs1enAjY8S+~?zV%OX9=d(+yKZK{ zN!^K@lhHYkN5MfI69-+BE$|F#`8de$mH{R)<;_-o=s^li7mai4-$oj79hw4pgohde zp>+?Cw6uwi@wP$As%5KyAJdv40CH*ixq`)op_BlmPliZ&7C>0tICFWk1g@Z!{VJr@Ge4avlAag9O z`H{if90UQKp^Dx79;0q+a0@(&vw;m5c~ohS2B=><(DxV!u8<**XREqXz-{h8rq!Oh zFf=Z|cFhhgDzV?$q1b&eDIC$G^gDCdo#u6FFCI6(npE{FJZ~cO^4ETQj`=~(a=7X2 zY4JlxVUauFiXTddn{GR_CFDY;32*k3f<7tbariX+Rh;D>qig#b^Q^?P@-L5~AqldT z*-ZhHG5+gv7C}P=byEaP_iRNl+1t)1NcQb5)t=YTc+fOTL&Bi7S4wVTVcWtW|le*2=56oLW9-M@K`2-zzY$0UM9-^u#5qj~k>jiAL zZ*s=6)z)E59ENqxyOz!C@X&eER@K#kn9tSaxRU({1o0OEXzxrOMUvW#)MgN_KVx`J z!F=8@c?r)##wAxFSQ@ZTIr)P{5SZwi0+0qqslZw=vx6Uk38|!$N!5!Jrg+a4*DneWM_526;rXjveN9mpT7? z!6x4%P_y%M_)` zsRM6+CZo4?+}~X6UFZsu&W!>3fWF()hpP`i?-K~R^Y4mh1EZ)i8)%z_`;FL{RvnTa z-)H%H_3`0UdAQ%sf|}_~&NzU6ve!5gBA=;>GN z-pt7`Ft94zEhDz_X*f zwO%mo2YTrKu83|S|4!0iKuvOIG+O}~8>VvZ7em42^ZCV)wKsH~dw%$GX8M!~yhSdD zX&l2#Md9FgD`?6^7mamIru{r?_F4JVyJBFG0!+r)BLKcu;q7v5L`}lKgB0i{ zA6LDWgprkCg>stkQBmogtz+`QrjKIW{IPq(720R6@(GLF4;{1c>QAeaSK$c778=8BOXv?Ph~nWIca>7pKu9F*KMJlxn&)d=AHxv-v-sO!pDD)-~o-#Rkx2oC@_dur84gw^h zFBW}irj%88!)q>!gj6kaH!FZTA5-HUp{C4G*3JELgmdR(4?m9Ljb?c#zk zDO$l0BPDwE=+Y0#mm@``*Xw6r#}H{AcCuw(oLO@hLXEE>(8;K3)dIa;v2PX7W@C_v zBy+mJD|N?dQSrIT6ZrEYKz~d1CN4RWopPfY6A>%aH>~24cGcY zNcEgtF#db&o2F?{+aSHj;NE%5AKdFp^d3Cfw${JzQ*i{ZVinkhj=y~yP1}wpMlu?E zn!u@nFTtxBbnuOSWg&{|HQ#A$fYC?}W6>;#p)sC{EN5);BjUc(0l(pq@s{ z-Rv`<&~#P|Ay+%-UXNV8Nh`mYx2DXg8xyx|)ucJuvLZg{&NzXWH|btE{2&faBKeJT zU06_QCXi+9c~Fc!EHc?h$F}N*2S&(6NOIh)%EGcG#)0$-b2#q7e6^vC*!*1RceRg= zFp~2()Mv2OZIGec{3mkAXvVi(z&AWRXUTrSDeqgufCSf7aU-9reRYwrKyoTiRCn+2 zVJ=zeFP`;u@8%r`dtR6dZ!G6_hhsSw?i1r|_(Xg+moGDa{i=}C3968STKC)Nb*kFP z3-Cp17;ysNHh<_U%GSkD%97~xHkDw)xc6d(GRZ)zv5KPW}7$5v5Q&!g4z z)3HPr^kC6Xd0tsMcsOI97TkG}@tjg*45}86cFV?h!-RQ zK(a%Y1R7F-*(DpX9#hJb8Or1`ViE#S>�Gk%chext^V`PnM$3`REUywpGN*-4l>h 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

I}Srjj$rA2Gdk3 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%0A+j`df;r=ka^tj4pA7UXTOi} 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

2y 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�N4)NA{< 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π-giDps((*%qU!(wNU_-9xN@ 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 QK+;@!(WyU5S8JI>+=%&P8}dl#r+w7Bv-vn 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

E{Ov9F~or3Pmx-Qmyv_0bgJ2#EAGhyaf>X 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�csbu7uKBQdQu1~I)D9K zM zZ=Z%a1#Vbfa;fM@AQXxy?&j_epc|t}u7abXgDz<+#B@UnP-9*(yRCKcL?9aWPMN6D zbcCutqun*bGEqB@cHzdrO1bPQ#4vTW0*$F zr{wqLc;xKm{{Z-@?;#H11>~yRBPjmS>H=1k7WcFdG(>cg1K)A3bi@{*7oHy!!Q!EY z&u3827y(Va%j6N4U?CfY^D5e?46u}rL$)wRo3j!$oeSOKYf(d<&KP%RIeBma&fEV0 zBF`kj8WE{TtDK@sCRH@TcgzZ}5)-9G@K+Ctwou`Os2yBxn~=1Isn(@14Tca~)<NQikKJvZ7g=0>30`a$Q^apC-6J_W@@##;9_0QY+yL zkQ;|WsgF+JAcyiolt*<@V51;*Eaq9jf;l+idKm=?X4m!s8~5%FFlz9eiWry%;dDzC z+Fo3ySy!oy0ljWkEW4s;5Wcma3CFf1pd4Md3u!*gf-t`{2P$t%*ptQJoPM9Pun?CcMNd7>2Nb zH)MNKhP}$OOirs1FYa;R* zVMk(?sr!nmSSSc+N`>y|mJBMSLDJ<$yK>wqZdw#iXs=~YOM-<|dWWFNcIpzcjaRrn znH}8b<}pQ&xE|DoI#?ho4&!E)(qQ7XDZx$|I)?6sfv4T4t|2#;v<7L}y<7O*E=2+~OfX zrN!1QXQ;v@?YhVYuvx_nJEqJ0F>OkZNA_;Zd3oYp@S$lv_Y^pw<1b=_(nsu!wRcb# zehszvEE$ZT7w;zhsdZ2CYYn+#AsH_Vy^@GPGl%gPDkJJscwS`-JAn)Bjpk4r+z3Vm z;3BB)MHpRpd@6ipMyPEhtk~2%8_1#V;tVvU+#~GxxN{j5R6NHsi>KT~v(cGM0b^O!dS$mo<&h0INYrjqe87_8 z@0bdRJ|+OD)O+ayjjCT=OZT?D0^(LtNc&+HYj3K-fo=iciArTUoM{PzC<2xxrCeMm?tCs$=Om85k6!`?@&dLC8{DzvQxhE-WTgMKuduVc)YD z3YRV`2)iuo$?GT@t|5DlNW&BYeg<5{#o_*@9!c>eSU4J^a$SW}YCmz?T_wa?tvV)Q zTt0SLU#8A%_ZTp!{zMWAd4O8QJ03^WzvUN?a;>gvlNy=m32QuXe;v&mF0^G=yFUt* zf1+I2bv9@#{y7)qjy?^+djzeHWtZ^E8D#K-cL#a?tboz0i+L(g5eU@8sMoNZH-Ec_ zLrZ52C=pB>N&>E!w|zU}CI7P$B4uprAjQk3jy$Bv=B3DjGPyP>d>mh-Uk06brFYqfJ_S zgO5!IcmDv4=S5VHxf8a%+j$h;-QKT5fwp95!>M|)R1Q4y*FmRAt zUK!N5hjQ4ewjtHS^Tk>hDDin41I2X#9Ht5~P)tcfb@2))Okp~!l-F#i>bPMNTf(9g zkI^d~x`-g9Zc+aL_)!Qo6b;@JxP>_qIVI8_zF9%ruoWw*Yumi2!S@!%$^#Oz1A4Bi z1z3xmRIIWrSXay|vodA7Va!JnAt??Z%B_V#T*Gba-oQA24>a!Ur|rNJRBM@E>rE*|O#Qc=;k6_dd~OX@<8u5}D%^drtBYIk6zP`w@Cr&>s-0s2y^W?oO;}U`DC0g9h+~BjDTy3SH&rc@ zd0K|FLD0&0Sd59fmbr0kcPe2+FYa`>Dye|`Bf}y#Lbc3K1S50O+-)PbF|u8DHt8~3 zX+bQaQh2Dsk9qML?wj1g zu3^PVPEr)T=crh(%tE#7tg0sh)S~AI@+l}laRLNy&1|}ZQ2^bT7@!x-8rCtxeH8>) z;nGSij1(K640PY&DGMi-!wN0eqy3CdEZTr6vSXve{auPb2vN;u{^gUB-e)7cj|i_8 zszv#MieA7#Km3$KN|gy)N)ad0&9#-GjC*`gmNltri=uSSU?5-=OQs*W0=-mOl?VJ? zAxtzA-Uu6Qs7daw7O)cMlOn%%DvvVX_5rAR3Px@bP6i*cR*plT*wwFebC|;5%ex|b z3U{zjX+xK|MO-u=Kg6lf7vlUm66NdGhwK6#E7rv7l|*12b5_7Z?Nbm!%Nn?YmXI;Z ztX{#pxXbF;uf8WUf~)ZzCvC$$Ff}IyY+BmQ+sr0%I_hUCQ;3Kdh|4G+xcyQ({!Ug0lUiVshOA zztq7q{$h{KEnR7aF$LhTzm(Yn_ykr=toXzQ|K06)U(L_#_Ip zqR=fKeUi(XLF~3)hryJGdP{qXl5rR%BoOu|j%GO>l}bfxip3jXdHqLZVQQ`#$8@%P z*yX0{579PokO14U$VOJj6oR0Z0@L1ewA#$}2C zz?noMohFDP)~vZbJUmoVA2k-QykLmoCBMWrJoDu6YB8`Q%s7Z&5{Y>R)qMEX@`7}p zY9JkWM-IfByOiX>NV`R055MT}QR-BCLE3Dk1v|q&Ej6`#1aooE5f*n5M&eDL`ZY^95 zR>D-PjY{j7^rn##c4|~A;uI+2Qh{gGbSe7DT+uGQOJ36xbPo_V1hnVkacB>@#NgTK z(af?RRYXFBI#_hGmRgs9Te1SGb$xpf$@x44aap+Avv3Y7LRBT4%qG`RB7rMyjc_|S zTi~9eWUQ%xK?L2lQy?WK*=Vm2QRXTnwKuO-0-@1zr#gdmkZN5TnNUF;X*A)fnTg&o zQCO?-EvOQRV&*7R$=zJS<4mZ0rSmNauNOFvr*NYXeM}V~TuMnn$tk&Ch$q~7i=;|} z2Jnp~qm^WB;en*9Ib~eXZ>e^f%yPouvj#J>cPctV9wsH$tmin5*06M7h!*$Uvdfli zF6I11y3XZ<$Psl6_#iygczOf?wTF2&IV+Ux5}VoegfA;)@RVL#C{1yTl{PwBR3?j6 z4Y*Vq&4o^K6DWMkx6%UDM%{NR$;CvmTV2IMzVcCRK@ocVL%x3!<$7Q&xAz;Y?omZv z?%b#~4#;!d0~IfE*+#jz(@IKi+~(kv*2w+Hs|!+E-#G^xsJtnkoOmH(oT$15w>WOO z3$(=lKZ&Z ztf0R{uXsGJO?OI^DtafOtOmmqtEJW#EaX2$a6yIvmw6jB=Lj!t+6aK)I|yk`C6j)3 zJ=-l5tR7gLwOnMvYAMt}5cMNG#qD~Z_lq?GP^Eu)r)6`&zhwaMW!XFJPB^KIdRlwYR zBg4|Juj*Ed!=JI7tp@}cKJbYb2|B2+VEBWOmX8|wCnT!giIf4?+YHjez8Okv6!;KO zuj3n;8K#UzPq9MolReM{^B zuAE_}K^iU8zaiC18c=nvN?VP*gN;u`laG6)1!Z&G1G-c>D)5zXH9qbt#IQ~Nqpq^p zpFGMi0NVJb+Z0Av%oO^*ZR)K6R8p2d{NBR*f8LgF|c?_<;dQ zsFqmR%cAEHtX1qVDNEPPWfzP^2QrPN$-V+~ea6Gfzr+Nh$c#;XCE`wS)^y9jG)DTK z^d;O&qJVEv^q9+xDm3F)V+g5XY$eU5_bJbv%eXZh(UFPO^CC29E4fcpSP2r+`y(N! z$W&=`Qk1|8Vq~(kBCA(L%vEeGKmyO0IYx!yk!%eD^Ba^XM@B?LW$GL?J{A(?Nd;V; zXSf3D(V{^J#;t8N#6F1Hey1Wlr%96MfOT3yVOi>>G}5XFc%lF-TGtVwN^Xz?v@!K6 zia;I2ue=A;9m;CE5HRe1$!^^uvil7ryEzdmD0Q!*Og&g$1$PAj4(7*dZxvHNZx^Xj z#y^Q&jU~jQu=DOIdyD)|;489O4fHO!iZmPCsKv;kQr_oq0)^`($wjgHWlA)|>GZ}h zR-n3I%eYP#%EXRcM(mQFCd;}guzGzt?bt12W4Tve51-%YkrHiUI2yXGlC zaXHF|3J-j~qNCag3(&U=ZfSZ-Hxg4{q2)MT0)6Xqfuj&rC zGgpd_Ff?En^v8aLU1F{RI*U1+9#uLp-+L{q*VF@&4^ROXkNuXsAwY1;&2PExfdcY3 z+X1yfazw^6l%as+q@zEuRb)g1c92E|2Imndy~PbN>M;Q|wNeGC(iwZ!0=`s59U#iT zFjz8F_LZT3&DKtuC5-PBGM*;RDk##m z>k^VB`F`P1r@v(3C<_6oDhLM#BX3R=m03(&Z2T7$IKGo6NCaJ|sDi>EsdHkp794Ji zA;*R6wOhTzkdLBO@g=p)XNR&i3oDE8zbcYdLMsDd|>Jwy^9jcbVA6%4jU z33=}o6YX3pNRt*)L$7Q7N9=@c)l>uv06?mAuydq3Y4U^4((lH_Yj?k;(Fk7F98q(* zhTh8}-lZ|n1CQhzFXckA>H~)xU-APLD5_r$qFV`MdB7hL1mK4^VHwjZB zm+3i{`XN<05;7aJo^Cj8Mg?p=mv&7&u7Il_%w;z{w#Pf7zL<}d4LXBE`2p0Jt#jLC zpjDK(76Fl3_Aehj#E3QlODGmbk9J4cp$ACL(m%a%y-GT(-y{%F*84u72U|`- zHWeV*kcmL@F2bjVAi9F`QAjH>hHr+cfpl){4&of6)T&(~{w^xz=EZ*{#)fjo1?c3e zXkURz^H(n#bNw>T%W*LX#7xBJoQ27JmQ)DVz+7TbY5d~D>Wnh&7D1Qq&Ob7trw&WE zK?)rNhXOOn#8GCAfAS_&%4@g+Xz9}sBI?KDVXP>U?i|rCgoQzD&rV9+H5KGwX!p#k zCG8VZScyw?zfiT*Hx!l>C;tGNB@2KArJPhZQn}qh0xa-V^BK2YC0LOwHWqbcwjelq zWmTx#vE8baTq%a$AO83SoV=|pjaZ8qO2>}ni+%cytbpu!{{RxTfm6ZU1D;%xk8t=5 zu34OYl5dp3trdO^AdSG$I zP8b){P<8-*ZGg-C1Y|6!+#7$Ojb94oWktpIh^k(lN92JmXu=@o(iR#XBv89j+ftoc zqVB6=+?L(4_<(JzhcLe5Sx}}UTtTsFrH&XYM@U{ejEZV{F{B<7W5*D*!f_5_RR&uw zRm95(4P0%NNkD^RJ}L@bM6v}=Ur55#plib3%mqaGm+6Rfb0|Bu1PikQQIe5c##Cq% zDuQnjsc=Y)0=1~8FuMDNJVGU#E^4B%v7$#KYydP%R|G@?rw6&zFpCkQVxnmIBIek% zg2Iv+bLJ*<#P0@}!*#^9g*I{)%3bPl6?mEDFlg>Hu41L?*fqe#V*db9tX&fba|=~i zqXr6fyO&aPaDt7gw-6Upv2LmQj)ZM^JYZ$97_hC6yABfdsvy#bR#}=!Y0rd!Gm^qm(p%tVLvo7oe ztxY1Fwq2)cpvpp45|RDDfV}p^0aq0oK`Dk0>T=M?GnO%Q4Wzb~#&#PuMoLftQ`k`u z3n(H{a<~i}@yiSy6LQ$&LjDbh4OhblhXms#dZ-OcDk1a4PxAC!KSUkiq-i3sT8pV& zAEm&Y^|cOQQ|y+ZzS?1NcUu4|vn-`b^3c}od5UO>{{U_nL8l{Y*<~ufAgqJOSxOu3 z`icG8Zp2BSXSTLAaGUo~*i;5E-L>QfC8$-u9$9kcqZ%C4`avKIPIBUS65~+D4*;*+ zTqZTvF}RcHR5|p>UKJGaTguN+_{J)8|rwGb)nQXAS zhI1+%2P*Mg$^|bPm5Wv<`hyM}`;`%P+myg|?@^kVt}u9kYVKKT)%}&-wq^9j;?$mo z6FMK%SJ|c76#oE{tGs^Mc?i5)pJcEq0Z&RmsNtwfURjK!8fvT5UkCyOd!>*viMFC* zR5j{2M{Budp^7@X_Z$U41F1lp?H=LJ-a~nu3y`?A1tR*WxC|b}lObpYn%HkFSAS%& zAUbd=nN&|Y`@R-0(vecqmHbU2)Vi_9gAAOMX*#lwB;@@Nei?Bd zAwLNF0mC_0ZBngj?3}}%gTL+&(Nq$ZzQg7ss3?9$R*Iqdjc?M3L9^?+rXQee=>m@! zIa@4Krd$`KbgZr+g=scYVWbEuU13Wva{>x7#Zhx~jSk3_1KR82EJ%{t7>Hi)`{{@? zuA&gJ)%t3oa9Vwy$v|=85}n{|<3O~Ku}dD9bOjNemjcnZAa2S@Xq2e?O0TbTh8ZeN z^)Lrz75*3-ur04lp=^3F5v7lMHoda&4BSL`R1S;fa5S=y6sG%yuS!~ zD@vAGBDI+XwfwJ$`au|~2q)o#gQ{*?$C0?K2P0%EbT6(u=}!Rcvw zkt>H!70Mu&Py*7jSQsD++D^zCb1xaR^pOyJ9Ueh^&_q^7l76Aj4%q7%?p#qh&g)h~6msBhUEqjvF1Yms@cqn*D@Y<&|R! zi`1ZJ_?*0|vZZ*h1hTHC1@b{#tvy9tY$edjQkE-WEPCP%so}NZNB9h7?;G~KxP*?deO7Y)NJnWk4TPG7*f zn=83{MoK^dAuy;>41GkUcQ!0pLbzWM*2*bga9TUe=GBWYR=s+gl^A&`Rms6EA1BnY zrMW{`+{T+BxjewV48)6ER02G`pnjq}vm)VLl`QN&rLOA#05ChXIJP>JAF5!VpZ6Mf zwhEVL#1&(niKH3sR~~n9m5M0su1Il0erSs!rThr3o33L)8)c(#JfNdq=D~xQ9xE)Y zf*ey|xLOWotP#6^@>tOOm6lu(>MGev7GL2DWBHPX;3fNF*D!mA$waIa#sb@wx8Mwv zdYNWLx0q7OQIHo7Q1l@AsGhc8#36h@m5(!JhO1z&Qy^YyHn}R@mjKI!C;WENGS_Ql$8=?%$USx!mfgqJ1+<6SE2dXB z6p8de2`D`_X@~~cQGYYhbipdwaF>J(wg{>voRZV|je~N+QCYVV0SRCVxC2`Nucm8Fx7;?@SeHjI1KP_< z%^-!VEO0^1FNSkX)xBOLr`<9Ac~*_1zDWSUKYzb1eUro z@;u__BhfAz)xoDylMAA9;;sSWE0SzaGo3ouFi}ZQ?5fMw1f^UHzr^2OWlu0vypO3v zWw25)EK-rB7=o$}#v_5BnOrd`X0VQa->GHa9`+i3%UDJWvatQdsI>^uRS>-H8+^-f z4~e8orj67$xsUh>9Vb(iwp{fC0b_VeC1mt+IKHO6Jfq-dJW3`7TN@YLBTv8CnJT50h;M5W z+LWEeB^dPr8>Ad_DlVE80ss})Px^~u=E}FoO4<{P-qbM$%j|TO>@BjlR0J!)`eTGr z^xP&wS2_u(%8UT}AeUG%&eWwmh05Tj+_DXk%&0}q$NR8CCfPZcgR$Fu24#8*nx{3>Lp_|pP z@km6efn&>lp=!q~dnX?iUh$lzZKiZHb(Kwlr21k5poDc0t8-2gHPk6-?1tu*Sqn)@ zqkj`se4N26gBlAat{_ty75;znWN-ffNENd0WhnkYQ=1K~W#_>wRr(>6PbVQbY2Vpshh2T5oFXG|1iq8z8mz}Rc^I@6ppeedT+4RBX4f*A(lrC`SvlCo zR+Ypedx|X@49T(qH#kb~DY5SJlA1P&Bb_R$hCkXo@8ezse3ACwY%1O(*Wn?1m zmQxcI+zQb8NPMjuUo)%+Fo*V&r>S@YMh#qAT?m?bbHYKAz)}wv_10>j*(AuKc$b?=gQ9gRBVzUC5#o_gWYf;^#JQ5vt>F3P z;Iwyajbve<{9Q|=ap$;F&x@Drb?ucO^Dub0yS;*_{l=DF`S1x-n-DNU1ECFLw*m_4 z9gd9S#XxGJ-*7JAOAF>XOxOX9oVQ{KE3Ak6f>m5n+baPAI`oHHfGSMW(_mXx&6;K>4+UD%7RZOGrBz#ay6(uHFVU zhAOGT*eELoWkbc?rQ;$6toH2W4KJ7p%Tt)E`%tp%3WC3ijR6S3r!`zc_bBQkDO@mC zcK{1nhb1>;2}vy+xX^JG9;1j` zEOl(KIXfyAcnVYEL?JrPp6s5)hXvv$il zih+Yt#eO9a$)X)gpw4dD!7dbOl*4j|-O3C^;8Z=L?6y=q5Pr4>Hv-4~fzudHC}cb# zXr+`w#EQQwIa|sl%|h8nDa^tz8s;g}9IeaKHQ7OJMNnRM;h0s*fH65h zT8fy&a3f>{e~4DoVr2CWA+i-7tS!zX7J>~ykkZ=((7vu&IOnz%EwE)AfJE6%KoiVV zTpq8et$5{>1F55ZPDTN$X@C~oD?yiwbt=^gsj*a05NT^h_6a z>IojmHO|1M#Y8db5FCf*0@B8oQFCv#9%w8)uI5*XkHmy53x+Vi&ToTB%V+5!Ius<{({g=*ASSm&M!`+xI9u zV#2_xsmd~!uNAR5h1DShPzBgf5es`CV9U%c7EtuutA;kt2@^a9I)p2E zY^rPZDZ)sKDMH~5fGS-d5$JMd-NVCMKTJ#3@cqXNtgc4&3jY9fzjA<93DS?X>?@r= ze3ToBHLLXoXQumNT3cxLvAD{ z=5a6H>!G-KqwWhl5)BiQQYmkSS@{HY2FXqM8v^XbP=QC2mx7}W<#!pR?=x}X%0|Z+ zGj3XyhkvZ4Y?d9(hZS&|@M<9S+Q>6>!`1nNler#s70sfe6{d)G_<&i5wsU z(xo;)tN^&c&QOb83`*k!&j3D+%RP(gBC>}b;gDq#vYyL?T~cYhAVVR-n)#LaA%A3U zU6k=@qHRR6!LF(Va?nQGE|FqBkgIpEK?)Qsq3cAhAu*h1>D=#y3Dt}hYhwQZ5mrku zHjqlAL&Z$8Y!D!-i?@jHfUmrjWo6kbZ^K~2O*-ao;YQ!Y1vCyoTvAa_Wx`Fj;7HW9 zTF6?3VQ>~TPI3!bD=W8x!Y{&ZHEK%iaPd(v78HaddYo27##fIrhcRoJ_FvACrMi9% z%}QI;RZ_-^EZ85LOq$<4tP>fgCQ0t==Vw`I#xmMnm~6-NYe);u$Sw@)xbxSX2*07&bT z_H45Ib#lj92)q$!pq3xGMRghQe9ii6vL9U_1oR{?#YN(umhu{AI%oc>C0@cJh1c&iAqEJW*wqzUVqE_(} zP$I65_dT5%t9w%lSwyOp?bbx#i73#4T4A#(m0|&7xfd*bexlOr0@|n;VE#yU>6UzC z2Az%}0wtj_zZ%R}qy+NRrA$9}FD#5iu|DDG8O)+psbMGqYH$#i9zBxJ`&`s{ke$^i zxdLb0Qrg}nnXn;Xs_K(U13;+ZUdKBaDK$}{q3Ln>QSXr;5I;8wcTO%>>+sY@^gyF- z3L>bK7(vDr8@Rs`uLe^V#-ps`s9i0-<6f40X6t`?!k6 zQSMV`=2>#RC0BObLYKc%vcs#33hou^4ai1I2R9CMj-)7ZQ7U$wlTHb>GQGlVWQbR&#X#G>dMfgSJaBlnUll-CPFjs8s;R8PB;` zS~BhI^e{|jlAIzuin;THZA2)PadBBivV-wEAo_!e5pexL3uFbiQ6H7fGE$GhF-M39 zcN8W>?7KKr0HRq8qmwFfq(#>-p~8q5-wX{=u*Rl!3NET8S;T5x5L;hy1eHOA#VH;J;E(^obPQ<+c}#FXja_Dvj-uv$?f_S8Ij~y~UM?u5d(vO99kB?CXsmQw&8# zG}%K8vgmDwh=u<0P$^*#{t-wT>H)_3m8~wkhYMlZ0>~8`3kBxh%Lr{3C{glEvfXUT zzbvxvOBA~(xnNfXG1hQJY#ClEPy_BAYix2?sPE9kZCu6hO^N9)nUTP8OnxBZi+9e# z+DOlvgY;I*`9X=XqDy6+9VSfF{?RG+R_KjYQtILc0ETo*BFeaQMBcqzcm~KB>P7rU z;1Y5TBV!s~d@LtjMMnsaSr8!E*Qeqt#c#gPh=$M-$5k~LH`g&JycaIvVBgV{F9@gZ z3wF`B&M_s>8ffHQ-6c)cYXO%wC+%?fGnvv6ZWK>yeBgCIQ(V zTGfx4La4Q?79G%q1*Q2Vsc5LYjP;s2zc5`59qW5O;N3u1-(-Cq)G{blJ;k_0*o-N@?j#Ud4Zt*1Z5@}L#-$gx7UvUtgO?~&Zs4I>?h=-j0AClC%t>ji zdm^E-Wq*Rv7q5b`m7Xif<1O*Za`K2G$=^f!iQ1c667#6=b1T^XB@SiI4kZ{KV*}BI z3s`FGpwv}PlVkHMfwxSx=2IO7KtwX37U||27dE63gT0qk-bP)jl#DV}#P3jmT9*RA znAujs`58wWxEFO4g-`NsQbwa(utuKaulWw`Gisov6cOeoQ4X`EfHlZE1Xs9-Ur-hi z7u45j6;%PU%M2C)(*80B3)jmPZ|$y~wP;I8V?gf;B6O{%^v<@YgfIvl&3$7&`BHvywXqNE;$e6G-L<(6O5@JX9 zGU6ex5w%$c@Qv2Pf_7BXY{*l$5nPxyqRVDSQlO4huSs5+6S|3`ASUwh3k(~nU~xZ? ztM^eiI)&6bQvBSIjQk?jl^{TwJ7b+=AK#Tvg@oxaYyJ8td1%TI-opN*v26LVP8;EHxGDCEJMx zsfD!{nfii&vil-t03bokwbc@%#oj`e-T0am0^l9m`=4qCppRfx8p z*{9T^^08$wbv-RN9ul@7DJ-w-_8$$4abW4P>)PHEVZn6d8PgA2BiBPx_?6_VkEzIc)1Jv{YmfOa zrMnmH7b|)|XbZcF8Av%zFqOmNj|=4jT(?&*rXXEzz>{FL>*8prCud-G(40k3)x$M; zE|z3JMRHd}XcnzEh*6D_E@G_xR5G6~gzFfq=o}{#p5O->ad80Ynl6fjA1kzBEeemq zR}c&#Xi})}I!v>*l&;f$$b7QPi{z1}?PH0G+4q(6Ia3E|Ls9e3xYngmTlATRErG}p zMb1tSh;U#9fFfxMis4l`Tz$&PC*w(Z@7%botVHhjXNHAcumT*$?NPETNJ=5H$;*)t zY*5B9iI7k(xf&xFTbmeQ(ftXu3>?8sqr(3HE+ASwClT3>G@-Pp2AB6zwPn|T6D#Is za$J<2#NLD*oX3<|^_LKorLVF*gHI@i!xDu+CJTlF&G!I0yFkB) zWK3**O1KtZu^ZF1Uks@yE^1n$k#sX*A(m7HLOd+6V?YW zP_}Rd__<)STe$ZI({fdZNXv*c9X?Y>b~wc)DVQ<_GzbE#^E7X+9%0oGhVAQc0qng6 z-li%z6{mnjF_5O=9v z?#NSO;>f`US1|%)j0m$!i8wJCdEzii84kXnqX0 ze5EU1psB@&N(ozw`7TCtHCmGB}KvL8%Xa~(A(S=k2lvXOVPD5f+>J1Z=sDsKt zwigMo06B<_aT4a7#oB*nML<%>L@nrx&RnM@Bf(K3h^?=vuTZ7SCA)DDYnirQL@yYx zTa+3_d48o|P=yRt)l2l&QlvFG6nWRVR@Y)2)bt_+O1luNiy{{1AZ5YRJAhk+uyIfZ zn5B7-vQ`?2HZ=3hH*t+c?Zi^<;%FL+U96yU5UcjUHE5!{D%B{6+EKj9ue1*;*{^cL zt^3G~R6rh}rOa3LZ+p_t|PFk1U`viI2w>k_cM;f3fud%Xr#GgY||Nb`VH~ z8?woH0Uagt63QNB>=ami-}M(lCpNApz&`mHRkEj1y16A;k1fIAl*hjtm-8*IVH>*m zi10q50*f0Olwi~whbkqgwJ+7c0HxJ0se!jly*M@$;A#~|+-u<|aXARnQ@^^DirS*| z2vY%fPl$=d#vG6UWozl zdyKQ9tNg4`-qnib01}3gC$yk0kNu3V2;E1LI@qe1IAe05VP2)YG@(0Y3Sr`%nCQQ9 zwbI}Fi%rvI#0BfWa2GI|Fy#T{$wy+FP1G@4WGq}8KQR!zVLN3IT<(I2Z;fTr1$w9! zrZkUXa(9uzXpWq+T~fadmiVErH^5()nR%K};oF&6M^vEllS_NQTL@N;Z%St%2C7t>C-;%GNk=Nqlq zkY34RO{{S-PN@nfz z3JrHjT*EOqPBJPG#XUaBdmY))vu-tEEN~12WI>xZE*3J`b&KiBinq(Ax1QlsGCO@l zmF2@Av49RwMaLes-Ew3ixulG+wYm^)fK_drQcsI0sLXZfY+jGW&+J%q=6fRa+Ns56 zO6j8>gzA&rH#I9Z>L`YZV+m^coE|=4`RYIwu;s|gu(8clt`eS!VoIdSET9tukBLqv zFf%A!6acO|MVc{q9W(JBOBzpfyOt4Yghq-~z!o~RuEyeDq&1E$@P_e z+;zp1m@-?M#G+x2(2mO)z zZs4{8+~dH8^X^~*a2Mu&l(HPljA@jsl?X;FaV*Q}^BLT0PQkb;##9`iGR6QGNOHwq zMQ9jwh(21_7UeRtk(d@-Dk%sh)kG;;-*FckZY{xtAyWG=8A0;`gO09j4G^F!Y<4i* z53Pw^TMXOVg)oSQz{a?)JwtRx>P(cqg1K39vi(b-zU8+;d`t3>S+b$9C7KfEq5zMo zmRB{6M<5HzMU4G1RoD87Edh<=6SktT9ch&XwGmPua?QrARJOT? z#_9v!MMj7MvIK3ra`NgY+@bDp))bluBpIPbvXCr*FHr@^v=B)}Glwy0%WNK}z3vqV zHEY=$VT#&w9HZZlqCe35TEykv%MC>pSS1W%I8{&zF zo?=0T!p29k%4}6(w*^}&m^{k`M)6>${v)ii)X}>WiXnHHX^5@Vt^Gyllr%vEGodsO z>>|x9qEv9rU<+F>u*DLza$qeF#2QHM-1|@3e^Sp^G&YH52H}F`v02P-QL0+%WtRkt zQD3=3g+UQ+q8*lk6%XQC!}E!HXHc*iP}O!tI9puKO9U-|1_M!2!URz`rIn2;Ev^J~ z3u*~nz-(TzEaNS=umwafrq0eHQ*F`G$dOWTuun2Pae# z;IzSMO*wD@v`gWGiEg$DOaA~NCvxE20W4-tMOrtw#5q*9T_bAR{i2z)oxpPYLBQ|L z)S#}!8lfMHi76MND@A{^{X><1fBVC$zhq|fE!sa3l`Y2IO70N$;taX|C6E^w+R1bk za*>q{Ze8+JC@usUM9mtlifl)k+{N$>s2s6KxZmsSIuQ#O4KAwPx6 z-041}b0zmGBSTLV!%FBN;_Dlr(}qB|Jox!hoY>5ZZGUIqfP_)C!Kt zdN+wGL{)bci`dH+_5s_LdYC*-azwibtB-;&u&BG~Kx)zvL7kMopxABI-yKJzOFBza zvWHACO3Owtrk0eD3IHpJ25)t~<%iib5fpzR5MI|R>Lv8El)8?EtK2XC;J4~f1Y{_< z)f(cG@lJZ?T$-Mlz@}WQGzS-$8Q^(}Dsgh(J|nj}m?I0NQueLy5`^|>}_Wn;5_o8;Nn_j2^P$%FPk8te!GG)%z0^{ zgJ>AqbdK0MOYJum?J-CZ>s-0qNpU5cGS!+zRKxijagSRH!g5P`*{Kke*RnQNMyhWE z3)li0vc4sp;!vqXCB#B(IR-xwYS_|OfG$xr6{u7WY6xzzS-}cPbF6M#E?bLs&A_E#-++yQmPd7k=fs=4zH)pyF+jZZvTRDxh9SJVshr79>6pNTM`s zr0IySs+)aGT@zkq4U7*2rD6_}gzySehX}rp16K%;xx%MI5nDppo6BF^84|gh5&O?@ zXBQ~85-bx$p{Rvd6)1;nSFRuh*2S-C;LELGNZoKYWP7mDxH%H)3Z?)f-Vc_(qfj8x zR~o80xnbrYlNEJ>=0v1u?x*F+bfOvQx$b3KMf61n%wBFKT^b=^^h-)D0!no{ghQ;k z+9bLl9dKX}D0+>omAsZvDUzF?&NPv|mZQ)STi~2GyMf7Vk1cB+0R*H%-dWEVeO^Q+ zmXgpS?0_j(aFtvbfdG}kNYxfC5FvNMCc}H-pjVkeZIB|q`H8g?@o)kPkgRYr)k{JXZM6A;H^$`PMMLSxrkD-{L3D_) z@_1Ad_UAneC|o&v*=;LU`kA4w(oz*wvX<0H2)aTo5Uy_-e9O2aDxf5MJ|RzrqhSML zz-Hx@OCcNXSpR;nVSf@BiLAhrb( zgRWp|@+FA|#^r#W`LiIX3rJ<`yyiM3=P=YmXsf6+Hmh%@azj=dW({f|QscGc^@^5Q z1J3$@Vm7B>L8uk+95D*3;uHQC4a$OvT^-<&4*d=bS1KdNicP^wXQi?xu zmJG5DRm?wW@MHX7nXTn;1v;)Fdr?fI!D)##nFSb__YRcWZ@gjsL9xs=UR0GLpjlm$ zD&B`Mqrd}|aNfKSPXK|k!(tk`Un3e8z&tTPnPhEGY*E(SuQ~N{$W?y?=vxQ{mc<%d z(h(t_5y7io4#wpGnJUv>FZ>P!VZ()H+^*OUNe3=vLW&?7aJOETEtS>49N+i`!xziD=C9KPV*SWkNAh5==*h2(w2@-AjABSS@ zEP^{bh4F9d3?`owsb`K+3jh^6{{a0tLSD;_g%I*fO&IqAq5cXb>gog?Rw^u9PjKw9 z1ygiJhr5ZqfG(mDcz$kK!%pRn;gw+|TZje%7^}H^rldI8E|3U}9Lgo!p)Mr>_?CVU zo@F3VyQZQ%Ha4&jxkI+yN(CKm)VkTR`yx`;hi8x?B*~|_^H<$ST0CJlO{{V4XG!?lyGRx>x zETG_}l>p|P2~!J!v-n4XuSG?`150rY0Ddk4fDVT-kgMl{0y_t?0BrPRvu!*RX=Qv% z3V@Z71q-hdx$+KIG08&=X$O*_0IV27cMFAF(Zr~wOCg-gD(Vo6sZUbEC|@YDk;GiY zf7uq*hXz>V7bu=-Ljf6>`iPG8*nf zb+1gNL*J;1#}q=mOCk(R162SXCcULPPF(I z;s~n6w?)7TujFdw7*OKLtx98spG>fAc7r^kS2&e)2bX&_Ep-VcAupvJl@Y zbB8Vqw-!Lq-o!JSi1RiN8p@o+L#8wotT}cMa_S4iFPOGE38*TF;IRnMN;5|t&ItbE zGhwuWAa8Yc^-;N{CBVlJ*T*Dk+d^I4q=r40FcDxj}W}oaU0m`6xQ^jVJHwvI8?oQi0{Rc;lv+2TJAJr2ykQ# zSP4`FJKC@0geoZ%Ji?#9 z-_*LucvypCg0TItvjO$YE@>jopa&%>`HEXtxJqeJDzIx$6&G7W-P{Uo!mYVtXtiC& zw{g0PLF(+!}{s6h`h->GGf;vF# zHF0r8B-d<>+uO-uF!d{ugTrK4^BP9S(z%6cML6|ws0DquDj*%}V_usVZ-dn0HWeF{ zgVZTQl9KtCYO86e`kMgk7{0C68u++eBBYq@*fpASH6PJ!rs#K@ky^RSj$-QzL1m+{si7N<)qY#`^<1onU zTy|ccP{|eTIu1CAD-Wo!!aF94Kn}6-v8QE#(rANGhYv)BqLv#d$3O^wWrS=UJBsB& zoke}BA_TwoKA-^ps%i+bk%+wHgQ90os5(5CEL^zACyMdP0cChm{$ig5rgHGzL#Rkr zj6ti11W!=&Z>pR~Ylxk;Zn10c*Wdj7=O70NU55frP91D<`s5s}j!HiGt|-2;yO| z(ohC+qNv%@G=Ab!5 zvVPFRV!o#m%#1ojkgC^ngl@|cJB=l$B|z$?-;IGPxgU=JmBdI}sOj3tl^h8;e6ZAN zB{xuG_DZ#}1)h)xt(FVWP1xe*rw|a?E88fnXVN3qR0La%azXeAwHfxJG0f6^IE(RD z?q5}tg;W`t1iHD)oQF=3dbw?x--`v4mID3|S!p)8uX2eK>I#sg8&1rm314tu1jm!{ zC=`*#5NQ-S?ld)UZ*Ha9tWLO0E)TR(;v&U*h3eRnv*3x(0nC1(s+hhIu3-8uTfn2q z1=~^dg``0z0D^xJbZQ)JQd1sC6w`18n`9RuacmXU!-46Sd_+&GV_%d&3@Led0TJqA zm`#rQ&gutbg&?~!4dJDlDMSm)O952@R}sx1fZuGTL)r-0P(sPDi0tN~tz<}6MMtz{ zb|V|=_=PPP5Y!RFJ;Xu8Y7>SIF}r|1wpw@?;Gd|1t^f?Nh3`t0+OO0!Ue7~i#3j*W z3NTS{EiJ;a7Nk%?6Wn1g^79T2Y(PTEa3F_a*QdcS*J9BtIlJP97VZ77h#&K~6x5YDI$ySJZ4{0;Pvo%~5H|ETkQ2 z65BHUKmi)K0IfW@uZ2-)jYKXeo-&0;gKi^va$l(7(mw{F2T93MGB({MfEI;kcL7ma z>@vdpE*8xRaSE{6#a2eL&`w*0a7Eb`1p#ZkVOpvymO-;DZYV5Rr--G1U@L0Tm9f5eQnB54Y02x|&dXBe z1KZ>V<~Ii14Tl>3k+!X<(xN3V z8;fh^;Ks(5Ep%5WBtxl`>Ie-=A)&#PT|f%9F&u|_14*vRT)JaCd;PxvMR$Iya> zEytKauCJ3NzJ-q}ekQ^S1K+5nqd^*i7WH;zAr_?qspMb+go)zlae<*mJl@@YMcYUIZD7wIdr=%O3cYZ%_o5 zaz!ib6DN;ns4Web(=L`SF{oQ=?joUm=F^9mrP4b%mbSk!RG05@NRlt}v69q9TNT!L z>Q(7wMGShRJBM1X9*dVi7B)P`V%dT%F3_lpY@tuoY%YaMV}Ejn9%VX;vI=F2<_Y9f zKf#=!x5qCQcoxDBE+NEp;fj4>b3=VxzgT5kTKKDO1;?13p}fUxzlc#WzWu<^Vk|Mi?2hAP$S$SIk%lW= zkvch-8o7R%EW1r%gGu;_SuR)15N=cp<{D!!o3{v(bJq}|fTGKJZTv-OQ0IsrNA?4N znr6T-T#KM*@|ut3V|&i7XJWYd#l(ac(nAP3s`>ycsVbqYa|MD@({2ywCJ`K7z=kf51(0F)8p-Nj%LIe-%%@fED^PJ3 zqlRdOB(0s1Yl(8D*AN9RSbido33N+uV-5ZzRhb8J?()be!wK+VtOAvjrG90K3mpmZ z2FG}m1Gu%_m3Ib)1ggA+Bko0gRJ@eSjf>dMxs7)gSc=mTA15{r3CF}MLfYR z8BoWni0$GI!nPyyL^&b=R%&m!j{~rHTkl~&$|d@XU0@vFFx2J}>3L$g5cq$n9d7d} zSNj1JK~;?Sf~u88MQv@ur7a~2&5eTEJG~R-W*v4%ty{w#tQps#$frX&mq4~XuI3uwQshc4a$k@^!@f{XONSz|Se?@q zMH~V#TF;wBW;bElfiPRbhwQ*uUy7j@v1SO|eOIj*mb&yvxT5deKw)=szIAs6Z&VYt zVYm!k6^XIJ_AVEf+k` zby)?z<*C5wt_xt{Y^xx;+g!>Y4!M+uU@YOu0wuJz#tW`-OlIFme5?^?+S*783DN@V z3D3+@wuX-z9!v_h55lYC^bNGa`YTDwqUOLzyr%V}a=SV>}o1Ke~T+8){9x0x=zOF05OqehYDBm8~Ef3U9J2Ax`%Td9%-^F2$v-YWQa+zwwDD zM{=;XBCI6&?1Z=_Y(7>!a}&alh>~d5_H95hi=yd|BI(?W4kX*Gyp=bSDW&)p4*^;7CpcMXm)oK z!pF>8Ri39e*4ZDF7Nol|imYYbiEQPC6Os*{R1(uAzE3oHBNP=ZUgH>^iNtrBMg}+^ z;G5z3^r0hN!U|0#kv8n9R*`4R0-q5(UBF8SO0Y$>P`Nl_7-k4KJ2?jvhBqlU+~B>B z@JRg$YO)q+ayHc>JYXR`S}>umSVR%9U_~zSQ($#brLKPyD8nstK^t|%oXV<(l)`VO z4v46}XS(0qru~q=MNBHC-+zh4vJV1dl^VHG%Bb!)>r#;x`LgRNt}5kP&cjy~S@Q^V zB?`4L8z&OS>Tw`iVH*AD#05k-WlM@*ArXjtQ&wM;by*7FKj9%ls=CP|D)gp@+&t_J zZ03a6dV-ueu*D2_mloP9g(bP6%n`0!*&4{kI6r9_yKBLst{lK({a<1RVIu_U+ z)_n{$@g9<2Yv7d!t8{XMAM?3?7XC1)x>s0;UXHP4g0SpaIj@ok8E8w&6i$p!VnK`( z-yaoIhd;S(-{z%_K*_Jv9Jl&IeW2c#>`B5=ha>Z6`-=@H++E-EA9-Hmd>s&L&5@#l zp~Ef#0*ht7vH;HNrJ$??Qp7S!Z$KyJo&3td4!fb~d&fSuB@v zsw@;)AZ$v?i{B(s*%Y@1<3vWipccd;Ux>J_Q4yq>h15jX5uvGJTe6`QQs#g+OynmL zsC%hq0}BkkH>f9Ch`hNdVMCg%b((raD$3lmoDk+{fDJ*iq`6HPp>?b*bO}KHu;on+ zhNH9XfVzlHEGzpJT1!@v%?1X=#CG<|+(Hh*i_r#%HsYewEr5BCZQLn1*ap}j>AU%g zp6!hm8kXhFP0){PrV81<;G&UqZ@iUNbv8>DN>J2cDC=RtRSUO~3r>>vMhm)WsmoZz z@l^t0W418FQ{oGyljk5iiVnQaOG|;SHZHu;Uf>{)?2AD25Wa3N3%iyCT#(Y@rrHe* z0<~SntYrzzXoPOA>()X-(b!!?Z6IN(K$Tm9Lx9?PcYiA#zbQCuN5en*(63RRj)drj4;$7+jU{Xj=l zRan92NjY-6fY`kpxFsuJzu}aKmz2Uuwy7FQh3_S33->gS9VB>YMLk$9EkFtGrB$lG z&|m_c!Qh;r5p`Jt)d%JTqe22dXmfg4~d5(H?^foAX)`7$~f0hy$|BqS;2~+y5pJ8mbgbY&Cyq%{F=$)Ph%`M-PBhq z#tM@5WVnK5+`Nqe;#ClB>UGsz#nAI9IHMiE>;-l?`hjeguzq5;s!WI0vK6AcaqNhS zfoaW30x4@Hsj}USwxV^uoV$mHEW=QMl-xD~*5$#h9i6`NX|TAlSgGnP1lw}RS$iGK zF3DB$ODeup#>#_ByuVQhg<$i)_78=D$x_y%v1_EzKwn!6M{f2sJ%#2F=pJU{=B3qC z-7eGd7~KXZF+^61;x4@&8Aus(F#Cyaiepe#1Vcn8SPXA>f)u2t2WFR|OJUQTpi+l( z8d!Av!SyfP7^96u{{W$aAnfjb5qWkl7IoB-q`~#Om6Lg=@)ue|=;mQf z1m)pCh!mKTod9_ngj-sa)EwEB1geEJy&}Y>P~v=fmb)!{S#pmCHYF;F@(`~o5aY!k z;ANg#a-(Xa0a!pbU-;6;i;C;c)GEBen#2MP$X1{y-1Hrb$-*SWtCuiK196rWFHrXr zB3=_!waQ>0XVgSKXT?<%7hnc0fdHZhI6&?Ie8Qt_q*OtOY_+=k1ea#%JE9}3=wA@riFf(g?Rn`pdEPX z=@JCz#CFvnmmPjYm4fG>xYMKPNEZjg0hyk%G%0tb7FPwX-C@w#-oa@CCDKo(;Cn~b zMP*g`Ny|q?mJ}O=)+%4kMTDR)RU8Br1Q33113<5$F0J!QF8=_LR$X4_lE2hG!To~3 zM!y44f=u?yc?$Etgs{~sw{Xn5U)lE?=snA3FY)ApOdsA?JyPRUrl!wH# z>K(t(s0xesvare#xToQpV|%QcH~q^`;-s)QZ}W?r1@lu!CJfg;Xr@+*jdi)CmfMR4HHCP6K3tK6!>F9$WmOQ7Cn;>XlRQ{1AQGnsd_Lt=+JDygj?0BKoW z>Q%^D4bJY>Q=UVtudV|fxq_Ho|GuJZ+JRDk&l!I+0;MOan4>=L86O}Ko@X|44&u^ zLsff`wxESiUUUU(u;>u2%al5yBX70U{ zlcW5C?38cej#<^zx|U~Rhb@+@2fmr9kIZg<NW z$$3up0IMsAyH?i|mPezc7_GH0RZUy-6MXT^EyndS7^<^)_Z&t;Wt(*hi7MYAmxlS~ zFrF6uUlLX$;1gGjZ~_+jZSwPqm}f;(|NGA}VqWr`8=6r*!qnq5U;Z1XHQ8gH(p zz3|+$SeGFsO?Ab_wI8Xx5W2E$sQO`nA6vK_HAR=366UuBx@8AQ-NxIheaw0FzTi7Ov#1mtp~>%R_~>GKJzb zY7q%JiUT!TOINgKa+7(e*mWsqC5$O#s7QJ$g-Yp2+6VK=15~vxZ-szya&gUxaes-* zQ7tU+?TwFj4E%qNfmEkCwTQY!i+P1sE=^1+lw&vU6{nJQ`yKT~CGy8|?3uyZ42B}vN%Ds&aCW;(_TGm*ur%;?!62MIqxYVhtvj{P*V7?`@ zPF!C=L>C7&<1g~N!sb3dB3GuEQJ>gG(*eB2Y94mGDIBX5Nhy1)PkEqwM^1JaR_oN^ z3VXP5i0ZC))A4ai8{v#of3q7EZjgIV@=8hbR}gN;!o|C?+_vDZh3KVVW;c@|99uA=Wc0DUt?-ZHSv63PQ4vi!~Og zeOgY!a}%)YkoE(zn2R`i+m}lI1mm;%*=q50l9GsZRX*|Ui0Owy#cvUYzG(L(Jjo08Q= z`m3zFJVpm1#+l768%-+-6dKXCLWE)@@y z18azFWz{)`9PCa7?K|-R6*;aEbW!$dJ1E;-+x}J(nTBxGc%Moi)df|v- zFv<*z?KMnoQr-h}xWUQsGT2~Iy_~lK~gv+KiTV zWOBvYz;!4aAyZXe=IizM1P0%81ObY3`h_^Tu3bi#2sPi-;`$P{y?y6}@E0r|sE8fl zLl9lo0Gn*LW{S8Dz!|3ka+V&#;GEafQ+}=*nvEdv!O>)Og#hXYS5!=gj?{G8SdO)r zP<2g}ADAU6%?IWL8i9v*0SPiR6lAX}=7J9o)yoI|#@e+kD^o6$pdY9vv@fz+#1Xo< zKQY1YPQhGL^A#>G#zk93ny3f^a?=J$VD^aM!ap3UE2@BvhU%*>Raf$t1w^`ly3%7; zOmc#~WG7v!*db);O@AWk6cPK2%L>R*6!m`*L9!)>(H-W`#}TWL0q&tR)Q(o{c41hs zUq=8qATJ|lru}_Dj1&RFeM2CEZ#H~E2!BIfqNb&S%Dv)pTCP{>T*^SQY#Cf!bysLu zS@Qap_PFgGJ0AUN_fd}oYyF5d)KZdlAO(Neur%LQWGiZ-3yi}>Flf$JvD0&@LT>wp zQpo~^c*Np#Ma~GOqV4$jm(6RM{{XV`E-=V#s?^j_tAM#+oFbgR9_92FpjCTwDGqJ!qbBDgPBs^$zM;|-<$DdhXY%|- zEm1aC{{Uk$?;=iRTcyBC2iuvjq~-&n)6uz*OUL6BB09N)Ll3kcrr`n^pg@RXJh6d zHP?R(O$a78k#1TN&ZCtPIVva7qgQd1;9Pbq^)H}ezR`NEd6=S$t8Ee?pg4~aZisQl z@f;34uE=w-a2dzUMz5QKuUt!n0MAR83Top{U2y)RFbQb|a9ytv5~W#n%-DZ06F9pg zHMInmJWCd zzKlB>4tcp>72^4ZyaH~zdjY6?Qop>R5Tj)h$0IU_+Ex>h)OX~agDX^ zRm*{-*Xk5?v0O+XS^=xcb;tKDR_OR_pbQgKhw8B!m%>JYbIZB#f({-AN9*R~uZSG3D}E~*bZ^=(UJ z6XF;Xv6WJRFuxN(Bkag3J0q;iRBZnMl%3FgeO$F|dqD>w4~>G#-@`OgoncR5b50*f4$XR|Q@Uq2 z+*~nR=)qbo`I;CjIKO4iSL+oN%HE1*oA^e5san22RT2H8WMZ{FGQ)4Zlyc9BdzQO~ zqX)66%2Dv#$o#o+-*eO%3jWDRC(#xK&&9y_{zaSFm$(=*4@o4vME&QNFD{st;QgIZoo0rz60p)V7U&sw{rBzvRH5 zl%=%X<1CB)n=51Xv?FAn^)ZNkCoa7DAiEznfHa@2%~W56f=wT!NLzl`(o(O@M_=o3U_g@ey&jCk zU-4u_&(4In{W2I-R0bdrCeppjdPuWlOtLf+Z&t-B%JiYd)7BBznf8$Yd2vx;%=omZ zFK@VT8|<6UZ9y$lgH~Dya|07-TX{)Sy;1J@_?e>ipY;!aw8P0^!42Ifs?*9G+otX1_hP`{Gm?A7|%+orAnZ(CzD4S#AoVy%Lzx@F2+*+sE&ol1FRKyAItd5^A9t%&u(0~LU7x`V1!IBGAf zl-OOs4*vjg4O5KZL_igdfN750>!w0@w~JFAyDg$P$4hVp z0hnu>xXeFYRIC-P+$Z) zQ5#xR&kCv7wOjabSb<4raY_|gjd3mr1{IqxtZ0V}HSaysD438s$L(pVWBzGdAozIY-U(C+wR^2J`+im4F%9L-@C4rv%G1(?^fsH%W9(;vi?D5PSJ zFhpt$Cs5eaLN%^ZiY#*Y8Mfy0+@X`l!Vr72O6eo0nw%N!fX3-&*SSC~`}V~$5EQyk zaH$M-HM6+AMK!2gcateahhXIj^{AF$YN> zA;883t>>m1njK6k-8l}GZGK^DiV3_^2D^Qtr!w>8m#T|d1zw((0tFwa;=Nmz4de|u zdM4aT#34HFT#Ugc1PXmeVnG2{%r9(;d%0rqI)*YgZQ+?yjZR9UbqnoNI>780e_|X1 zrb>Y*?)@_NObNg!xcuLk?#wYZqiFMFU{9|sfByg>VE7yyQy1cd+a&|Qoj<-Mwi^gJ zhRfO9_K~mZ;eD%vA+|-_ghklKS0(IHUAc0A2;))8T-jF)DENQ^w=@j>!zOVqFf?71 zD1M{j$fHgI%SHQ^)TooyOO}AA1iS34ql07a6x1l-wTVh|>S1NdIqVIPK48(}D^OQ* zw*w}D%o}36lDSWYRZDXM4?|xf7z2m z^wdP#_fQxMkZFA>o{H~!(3`2u4=hd7I8Tk4`2YW>9@`;0v|{V^u0uZc#ZZ@VmTKP2GI z@XiTesz$soT;Qc$^R*H*-;v-&G#<=JOG5Xx8rHt9;Fs(a#=BqHaN(l*FHxg(_EQ$W z_f)*AUsYe!4G;9$Rj>EI?or3=7#4l1$A=5?4Q*eFP7-|sG`bIpm!(&&{{W~1Z2M%m zu~1Dpz1naM^CDySPj~DP2+|NA;%gSGYJN%X&)X9L`(RgZrsopF^vATlMvuUkV4ukl zLeG(5YMZ0k=xMfEt62Pl_V65RD%C-OwiXr^3AWm@Zp2=l?F5tQitz1A9uxzVx zthVZ?+ygLaa|Og*-}W{n)@NY@cDUv>2sReyEg@MPfM0CPlNZV@j4-NMdnh=7j}g*` zULl6vvu*2QEM2iatfSnwE{UyEN!)N8#duBTp<0r&a=S*xG~7c*LD{itoQ8*amM_d{ zO=K`o{KRXsJs2|66GjrofkyQ?;>Z9aD5k!7f>nV8N8(u61Kguz1!_FPfKBx|C7+sr zN^keDXauIRTnc|+8%tYp! z_b%fTTBcN+hWySGr_{1JT+|KQd*WY$RReanaI|dr<^`@SVcS8V>MeDEgJS9!sch5p zgC(=(P=W!MT|GjzZZRg?`;S3`x=M3ma8m9#HMcGwIHl~NO5zB00L$v^hziFd+hG;& z{{SGW`AZXHf~pB#R3Ix9Z_FHYJw>t?2ez^n6y184Bzb+@8xRL04=SucYK$Gu(@x`q zN8(x&fMXJ~@T1}&mzGA@ErK}R5*ePxQ0P+x~mAWni%E`}l8OwJRvzWkE1%LYvrGacx zYb_ofjzBCgWa53b!`xrjx8WV4nntFEvaUQL1goAeAOTxrwbUxQ;!q~5f$8p8c3)cp zgyXU$_8dcFmm2O?qz0?Fj1QvVGC&ux>Rx0G@D-H|gbQ4XsK(YzYe3cQLRTrecSvxP z_qbStVV!X|R(UDj@VxLTU>LQi+;$|+Z zNe|>O#ymuE(z-TBOO49wz8|rKfIc{f zoP}M-wjY5T@%WyjNE&=Z2C|-_RY27!)>d-3?SZwlxwIBohBm;Bc$A$M#1Pj}M#Tzv zf-K+|b<#`PsB133i4I_$O9-2PCC);)Jz4|~UZTmz2qc}(V>V%SqX#xr3RDPEQ1s3c z>Y3YYjx&g+8CJFf$uG;~z<8$3-5&~;Hrg6hQwje7TnF4Y^|Ni$QHYio1;vCBiZW6g zs)!tr)^jXn-Occ}MdY9S=;b{KeN2o-+^7p7T<$WBrGqrtNrDYVH4mccfeuTHPYxrJ z+=@A*#X4NknPyac9!M;bz^#oGe7>T9#O5SW>QwB8js(oy`h~2=$rx}$e?Z7WcSgt5 z{jODjrS8|n6Mwi6;sg?!wp(F%bqQEbGNX5R>cjU5VFoc?MJxeo%VTNc5LODCDTjts zHWOayEEJ*9&ZEZX~xaL_pRn8JE#l~vbeOr}#_;;r+QiFSJk$gitfexTFZXcDBh zUMPZda*)RND+hdsi1MEV8UW^^P@f9_0I{rTe=t*Jl{g_Ia@l*t?Pup=qM(En0zM0y z4R78-$}PgIrlKb8HoQUL&&+GpkDY;YW8A(8ekU0hau^L&zfo&G6lz;PFJSl&lB1md zD&RkOmlLM%u>ztcTy}Ja>ch6;%CqybwBPekO`GyCw|^20yuTtq&83x)fnoebN(bRc z{{Xm`E^U7{xOFS=!qvYNj3_lesg@<5+n2g4?;!PpYf|BD{)~ZHXYM2@KK5^ymE!wF zM5^z6)CetpCJhhT7FfSXj#KQZXxshleW%>RPr<8&xAYL)uduABTYol`Eh+L;Myj6f zR^RU=%0c|)&i??F7%T}N9KJ9|2ZTyAB zo%I7tm{!Gll#Kp_%sA%S)TgFj0v-oqg$L-eIg9W~**_{lp+3d7TrD4U6PYQD)L*hJ z#=sU-Z3gOf+g%Hg*QLKCR+SV zugqm_&MW(dHaC}Ja_|+|cMmGd${$z+Dr)WS2)tHX4Fbn@Z|WAf9dRl8zQ(28R|rC8 z2`cGHls%j~3;`*8@hQ|4%7MC0Sdd-pL#az^2<39PMB~v>E>@~oGXl2yfm&rC2Mi6f zOB4=cWjB(8PpXYNsbD*1R@XF3s#u4f`jx~4`=(hHtgi{dQ(S4BCndeqcLAp>;-S1k zm;FN3)=?{>RptV)OXl`9z6%gE;y~}&3IVeFgcW&Q!iv87o|O_6jRq2^s z-pyzXL9XW$OAbhcvZK<|Su1py$~I-`7k$32HRvu7s#GkYWN8Di70Wqb6)k#{aTpRH zw~E-bw*BNeZ2iYs@_j<=UgbriO8(=o3_NRRHU_8-w!8L1^!a#UoL)gh!nom4E~=PoeN8icwXYEYyyz<+9#y%9aqLj^*RXCyU6MpkSB zgkFy^;*o)^Yb!hJn+0@`Vyg=rhtvsI;ckpbXDGJzOXt=$o02yZPCgHaQN^YK#Ijv+ zJ%bLV1{Re}z2Q=OC9Q@pq6&bSbsF@*1-SM86IF6-(8vX{xXvH^je~3r@3~YcPT-zv z4EGRUqeJtia@yu{jmF=!qLRF`m<1VX z&MI3!4(=o3>!P#OM5~p;vMEg!Ii%c{b-$VT^wBd&Gqv+7isB7Uu}0Zm7GH3qlv~EY zR^YPDvIXLBjU~IQ7ua0G6!LX(*Z?S?#C9g40BZMRd9tJPFs-_TLcQ)m1skkLv{42; zO@kH$0@SAcOC^QBS1~%A-899tHgOH7xCS@!PDT;-kh!nmfhe*us;Z2t9?4-8iR`G2 zQxyyWkzWYYF5rR{=_uHkxw^k(xKX^i!I~XC!79hv9f&ntP9>a0OB&^tD3p=UN?0X~ zQQXJT2G8>tcSJ!tCnCg#%8(LNt%ekasB;=akG3fXb#krq3`n?cHeiThPX7SdIF@R| zz<7vCfzZ%FqjxTA%3!jb$ZrT$rvw_2FE~>CRI=lfPc!D_nJ>Ke4(LNgw6eEojvVA0 zi)dpBE+W|t?-Po%VMakJdW9RX#35&?#O!pKl%tUzf7Ibw3Md*)(GA;zj=tWb2981> z#`;TwB`?8HAw(|aNh{QKx*(;h06@NKBNks#hbN;6Vw&Rzs0ZhkrX?xSq^|)_vMIZc z>f@R=t*C4u-^@njC}_$Ywz|1`M39D{MO6A?2O6-saA0O<+M zzKA?k#~}Wtm`I-&F%9~;#U!jnF_xEj^ML#{Eg!wH;fhhteQe<1i{b#eAE;)QWMbt< z@k<)lwZ(3A*Wsw)J$qab{f*)HPrQqj7t) zR+ygbo9a(m#c6)AgSV60Qyx{&!S+^jg>LSr{^_{RWNLymf{wwI6%Wj)P-o4=@;JT{ z98>dEIWo-KBUxwD2c&g(a@GhFo`Ah579G4@fG)M>71bS$gk`szq?Z7|+FIAs6_@sw zQ`ysTUR?K(w{;AH{^6=l?Q9yazll?i6Q~8Mx+^khl)9P($evg++Cw zxj&B+cr8wvfW+)_vh2W!sdMa=gAcF#lmia;8qj^IE6a<*R-&I(owE9oJZQ!WARJ!G zOGl_#NUt|>dm-vAM17eHET<`iTOysZ?%+P#aR=cGj*KabJ0&a(-uAfesrZnMDZ{QM z9G;SG2V`+y5`}t*2&-&7*B$W@y~LwyMqOg9?hX5xuk591mjpxLAjDR8aC4O#d53k# zMD}3w9)eQc?aMCd8uw93pw!>$6*pD@mlnjfiC(o30$@XpY(SK3<%W$*Jz$OdW2eNh zv|L&pm9|~ZLI~oiiM!>B%fl!Eu+3WfKwK9EIti8s#r#PUjaL_e$Z9 zXXy+~rO<_AO^3NqwjgLN&VYd~j4mJwgI3VNEm|}Jk+G?f$gVJYsLM{=M6F9ez(N2w zYzjXRUdcxj_b%m8A8@v5eRB#~d-X2cySaCrWGsXE3YQKYmQ+nL%$6t~PGu}3wN3YM zEu&K6^MSf)k0sQwGSQBuG}%fiM>Au2oyr#r9HkNwrIi8EtSPKpgSfvH%UXE#5ZD$E z4{=r?)C|EPt2B0{Z8$weO;bW4sb)DJxQG@QC{^RI{^OAlIOYJ#rm#vx_)OSl7TrGM z3lWhsL(7U{mVgU+5&{a4bOfPWzo-kf;-iG=m+hf>Z%Z z+}Wf#VggwFKpU-ksHQc>lDeXsX#x)`;tI-E=Q$ICiOR&mkGq2Cjw-f#C7e_iDpxQX zv<$$O8$ix7R>SiIL-!FZq!XUfV}MCiUiL-Ukl?{<%Z!SSC&0&nR#hR>K0x9!h-Q32 zS15z*-&+^|0A9!jfWTe4g-I&cS{V`G8+u&GA8MNVVP}vTN%IOdGaAMfuUPdJMTG=% zB1Gc+tlf=S!A9(>B|1e^?zow}=(#fHDPOeAIc}mt06vLDr*zZeW?quU)zed!)oG~4 zk>@)g*)&A}lR#|0oRO^t$00p1PuPYP(1*II%Ryjv(AhXVYWE-s4sy(82>{xTU+Gxu{65+oG7IOC!%ggb9H?};G>BGx{&fUIR%V8lDK7< zTB@R;$V@4mO1alN532a^`KX-H_jLhXR|0E$jZ0`>m?d`j=247cC_|9c1O2(5sD#lDlzQ zz=3?)oUADb00VK?VRD;#V+C7+x9Sie#geT*kg_mgkp#-7GXid&j{f#^S1q9pRmM`$;t{!Rw~+-?+hr=nD|lQ)aeRO5Kvo_tb7b%d?j}o%l^{Tb!!BHl z?xo5FMT%+bV)hBR1>6QTc(TYq2we(*32@|qspjGgAhg3;s%Hg|n{F%!ZiZOyJJegr zjKH=$pc|SwUmVOe9_C`iM;Gg5gAl*Dt7kYHiu7VO{{WK0_dzK?C~TutSB6m7{MvEDarZNVA%Y}m{-oG3*Qh7eo;|m zv-XeW7Q*|0w7#|mvY3LdjqV{Vo!38*m03@OfYT4TLOoLebU!hWe+!G`#6Y$41;dBL zOKg3?)Cui}c|Vlk>)QeHhHDrtGo8k9V~Y~3_nNRlP|~rwohrU|;$Dc6RpK>D6$aYh zZK0?W`v_DIsZ#Y{May_&<*0=o%&g6HN(?Ru>?T1L*g+9(54e|5mt$_oQ$RiDQCJ@b zW@At0Sr`cCA55@n9;5Wy&5sd&nPnA21h@RVRTDhg_-R0{*}N>2idGUgW=Ou)K=npqLWpMo`ytG+Zt zvHHsj@#3}_wl}y;#9L52#y~XqJ8icv)9A)Gi5#gc08`3z_aA zEo+^}h-(1cTxjKMpir9<{TMQuXP=F7(ypb%eEH1etTBwli5|PcH15kf(v2bux zm~%|!L?kR&{v&V3M$)>0fZg02`|caFW}7l&_c=H20-5=Rh8)BzdYukNU~I*3#mP)q z75WIQaZGK3O^XQN(~$6bSsm^qZDr zhHh>Xayp{gsEH%;OT_qrd98IMU1l1#KLe3{o<)U?^PgbuT(SCkI3$R~8Y3 zH9GC5?KlNxF~PMb&k~Zse=|v?pWJL(R|Z^^1Hjw{n?q0`Mca1H@4AFnD{J=~v1JBT zlThTk(PI%sw<^E85MVGWpp0rVhKm$Efwv?vP1{BXo$2%_mC>n90@^J z06W|Yzf?eI*)lalt&N2WmqJH`iq@X)SybOu-0b3;j=^ihw?G-b04(X4jaLzI133rO zQ@lL-gwxea>169;HzYQLpUk-%Mxe z-~OST@zsmjE!q_;_SPiW;3*Tur5P%=r>~o_kXO?m?l9D|)g%7^;RUDP#8XTPb|TQl z^8uHNlS%%i!iW$1iWUaz7&yH0K`!I_g}nmbcN@6MgVMs{ge~+iEM)id7baRD2=*?_ zhXfz?F*6fenXyzCI18(S!XP6B=qt)vzudBp6e8wRb<*W^e;O(3^>Vp3SF6U$?!#J)TsXe=!TS|^DF@p(Tk}> zqER34Fh4aa;148Z7o&=6D0AEfosg?w!q%!S378a!`IUVhHghfX#H~B1`itT##iHRT z@Z*!@me{{AtsH8lpu)(Q1#K8z$H;`TlETvy4q}mB4{6ix_#2u8w&JZSS+imd@L&qg zC4X{8Kee2z)>K<)Iw65+t{)0!8F3ov2VYXdRj}FaHRC>FrYqMITvY5Fy=0 zKIK7MG(?8o$dM+u1QF~zjz4Tnx?(um*?(}>(xx0-A5j2MZ`>ok<4;VMsf&1+)$12jfXdV2&yLrZp(MF zx}O9cSyxmDH7?cJz6iJnvei&qVA>mt%P(Ts4ZV)45LeK6Cfn!ZBijSPs8=;g*y+Ud za~PuRbIL-%57}_G0=jlE6#00X7Np{dg^a_ff^j)QEVj8}c~Y@ZAS(Lo1YuQ?6lKa> zS2lq(TvDaaRz2tYjRTe0{{YA-llKB_H!mH91X3rcE}*ga0|LgKFclxlFpT_*D`+DpdWn&?vLCS zc62e){{T5SZ;aeajq?T4{WvtF-rHisTjK63f1ud%KcakAbA)r3n1pOcs!xezpnZ@t z%VAeqFPN`RJ;e2M)H&Vzj92avtk?4~2C3>bAXheQ$s6LT7&)DhjmPDSSkgCRT$OU- zRyxf3pUx6r>gB-?iS#GC^9Y-5^^=efs6qKA$bKMnoT#UcYEbNdCW}+n!{SHG<^HB{ zSLC-aQ5O8~G81h*K%20?FDN%-I7-3| zfynbN+jhYRTd%kYZ!mt4xP@a(4I5`P#auzo>fkR}Dilh02oDpJDrn=lEG?V{u2b5# zn9|K#FBrA;1bjq|p@pnQv?ahOvQuI?5|$*8J1vrmyY#~>a9_AsmPFLps1$okzj52Y zaaJM1fP-~YaD{y*HpByjO4-#^+N_8sTCsai#v0rV*?Xv79v@LbhDQ5wmePgXQe9~Y z+<*>=u@!fi%WbbrWxO480=2=8)>{{J4a2xf@%>yb!;fUpFx>3rY@lwg1aC_rVpqZq zw9yy8B%U4W!E0A=OPfAVXa}dW%&mJ(>?}N`(=IlHGSKv1nNV2HFi>k@21`DE0P3 z`4s@RhY;a-VfXK;`ZCqXMWmbA?xR%L@WYVAmPAU4xk~02a?N*8GOPHF)L`{2*8{4k zEoxGhRIDs%i3$|oPzr^8?5HE38v&xHys_TFQtMxcE`mO}fFF-g1AuS17JE2}q${PqCFyDh3~;7~F9@TszU;YgQ-MvQOU8n_J1Q)))fDv*bOm{) z`j8^~oHfs!-SfRLcuL60katl5SSr z{^cmceT*F)I%$Y#?CJ&ns-bcJ0H`((#A`B}jvyf_MOn;sMp14?-9f4^ zB?pt{S_Xrc?juLQ%OlE|jf3J62NOmDT>;_u6Q|&A1OnL`1@wDE3Yb=*iqls%OSU>$ z^$8e;cU-vKBQd=rB>wq`Ufj<*vVefG7b6u9b8tu##l$w`-BX#-=!yzsCncrTH7XZ4 zg@Ji$prp_ra9Ic_E0H#tVPb}^#uPzZ!;4Nm%2}3N`(Oypu)BoS&D|cHs3~gNt|RCJ z#spwc`i3gV!cISniXIZhY9^GnfZ!uDys98|Dc-Sf1sGz8u6#3yBm}r3N znogX8ThY`m1%s6WF{+d%`79({BSm~gX@3L)jlU!asJeb4lM942ldFwdADV|WzS@Or zSFL3|FW`!W1H)NaOWMEpDFmnmv-1wu2^xNKaXI^kwjXlVjL~%axT1o)Az${c8eIeC z0=N9s(^vXu5B4&x##3l9wXrk9Q&AM-S964pc=g*4wl7r9I1ShFDK-Qy};%ol+hH_Uv!bb zitKY`GlUi`5UKb@MJzAGE?F1U64Zj@_`{8S$+DUj)hAV=KI|90fiVG{GLfUumfQRo zrm@G6{{V?-gkMcWPZQ?iaSy``uyxPOp#t`Vs1*WQhvouUz_ZkG?xh$(4cImWa!XNv zEkIOL_ij9bJ>MsQWw6gV?N zkYTB9O(S3{WquOt0$0ZP?}!RyET|2uutJFnnkBM@8=MO2obO2~tV(c3|x1Okh1 zo+AEb0BHs)H~fMC9%EvYYpc(73q(}d>Wj~voD!9|HNBVss;`fUi7}QI1(JM`dCWhdIvA}g2yrS&X1`RCaK(jIeDjd%aYg~yudQ@$BWw#Sz*PY5Q5T6{+Kje)B=K|*?8WY1Uq~pOs&#&BlZux zh^3pvy=W&gsY@0Y(G{#7F6vn1Z(wcc$O|mhK^Xgj{h6Po{KHVt!qdL0I^OT+z9M$u4%X7h2Xy&G1M`OT9HwM zo+@Y}iR)l3oRf>iSdlu|bsii&1%sqXT)79eSH!wEw~2HR1PaCIg6*v%R{l{u-pe&D z*D$Er>~TT*-a1H!QCC+&OUru~F~xLs7Ue*d_H!29(cZ(Zvnw`Q{{UdY zS6t5JJ*rkzzHP>LT{ESbUnSHq`miN}^8MsQF1y&1I9)tn%oYw$Yw8Z!hfhqs7f;ZA zM6%>0{;N|BSPm&ZPa0icBztWWey-pld3k*i@;s+_axg3_l$irRB?IkSs8w80g!Ez`|^-lo6Cdy~_hosA^Ce<^|n2sQt#WnwA#M69$cd zD63(i2z2IMbx*l_Z}Bb6A4E<;E;7I`WE9jBmr$DGu$7bg)@l%24|+%q_CYmV&qa`x zx(IIH2GvXRRs4KLZ~p))1pp6m!)?R@h&tj5ii6u?Ait1`gd^i<$ccT830`{bJc05&o4^h%sQ(;$S1j+w1SQd};^<)hfCeqV`X_Kh9&f4X3Ntjg zIbHDwUwrJoX}uE-ru5Vc{ZW?B$(I~-d^s**e={}Ud4{ft!#E2RG$+->IA1U_q4y7q zK1&D-IQ_$0tl~?n9l0w)U#1kl*oM#%x>D*pbl>tmOTL?$BO+k+NVCaawjhCmZ^~?p z3m1Gj2W)T54cN$UOOM(=8#k5uq+o8ouH|Mc-Gm=L1UPVGHV_HC(7gt=e^ z->Fm=x7|uXYwU+_SgE(wWvw5)$O3-YA8pC9y$kf@DOA<^i`9pVYH&kg+8FOBOUfTn zyqW(1_q&MY=C=A%NYv2cTfZv>`2Na)cM}QN%3qEy3ZSTeht*uDO*{Vp#6sK9N|dJD z2}HQ*0N<*BY}+B5{H~xZFP1k=?i+(`MdF|$mi@I+B)3Y|lH{+ti|RqcElG`(+*Bl2 z^A4bpIEqV3WpqN;c`9hG(6}*lr!${cFwiVTZhXMIEahDhoVtNa8h~t3n06xaIKjPO zlWz)x3u^*g>gOPYsapjXw)K&<2>QWbS=38>30`4^c1fYBTS%NJJ`^xQ5RI-U!ca9NRBh9NkOm^(A-87-1FxU+EMa-)M71c?UZ z0Zn%SHN@ozl~5&QEOX?ra?Y>@)s$D1BxQV%SS%i3@q`fcLw)y&KnE0pp|lDJu`11? zVhkm|kvxKF4~;mQC1Ie=3$GtHImjBDbg^` zLZearjJXa|hK60;gln*us#L45Oyus#X2vN-n_&n}TqPF+06}SCBFZ<+01s|uim+}r zP<0G!x)4~xAt{KV99LE|mww0qhVDi%MI0mbFB99BV$e$Q;!qN<6(HeRI3%Jue?R#E z>jU=2?4y6i04ncsii9hOD?`!^!@S*bu@@~Jg+)qpF@Z=Nh%pDegg{k5%KK8m0+TZ6 zSb$ll9^!DW@Mkni>KULSSG!Z4sG2Rm7aL+fGk}ZFQ2bxT##XV&-^U%f__CDa( zrtO1bmv=T-M8YvVEw(n|K&KDfcdClB(=1F=ULq7_5GoYpBCrh`wH>C;7D3QaSAL>} zbi0ZuqxlR?qB_Jl;r{?*y6zA+H>K3fP9M`K3ND^w(?7|r%JGE7g!UqOX1&9G zox-YJ%eoDGN?B`%iMUJ@Zv62H-+mLgTbPBUp;s{Kv|ttj{vuK}K(2MlfENCbQ44S2 ziVWF?;+BNEXK8+6q>8F~iDB=U3=YN~V@x+d!D(ZJOV)1vv~qn7}X!8A^Szw}ma3!d&hw8=KuKP;7*Ck#mVm=K7C+G1)DKE>pM+ z1jN;_s+_OPwwVUy0AyBGokboH+v+JpP7Y-)6n_^U zwNbrfr%c9G{{Rfsvf`W!d?0XdhUHDtxFPL|71yBw;8#EX z5tYy#Kz}(2AbPk%PA?JO0|RPj&HaFyTl1gzN280TJOqp@n)3@TB(bp<1g16F9mV_; zclzYorSS!7DcY=f*Y0n>!@HeUgsV87!F|-&BC(IVrs_3 zmka7s)77%^Z%m<-eYDjqo2s1D1%AC@L1WX5F9ZeeE)lxa;MrWiFjeEy>TreW$l;hS zvT~&RAVml$yw)B?NbiUsgGqu%GcE_se-TGF?-KMUUj(FtW`50LI7`>K?HdULA6mbzA7D-Mt);dAAT^t@Use2<)TyijG8n2$X8| z7K-DqDeE8^MQO65v)n6Zt&8M+MYb?fg!+v7uQLWkm#3wR44$9FIS_;yh~SqK?e{%TZ&mCq1kc5?y*N{uJp z7Z!?NqB|Gng|9==AKovYaMUIB55mS7NV4n=<+DOCdtg&KvtVcc2CKTUy5z z#wo8NSOHb|AYP3j+qAx{5cdX_HTANA?j;ss0jnzrX-Ao=dLTR%^DNW|0FE&QOXPy+ zI+v=sX$n^;m9byS2{YGm7{$g?(CJH*l>q(?TW6uaa5 z8cD-R&O{+XLw)7S6Oo)25p8lKVzI=#oqgOuOg}Xoqrohq*n~JCsO#@0q}VHbs<_xK zPa#}G4a<^Rn#5(9Ncfj@8j7x!!~y_{*dOw!;l6itN>Bz<0e5`tZsy_H3l1t;8!l=k z1xt`Fcz5RF=c#_6a3AWWs@>>~D|lnKbxA4!!WSvfI+Snth@^7C9wi0QV!(Ykf?o(+ zRJ?15**5ABg#`DoQ1?&_3Qtf$NC2_;*-%!GQI}(wn^9h+Hk4c#z}f_iYn!hC3_}>c z(*nzd(Df>&iaCn_oyOIQe`CV-iHKLE87HFU)Oj&1-9G2TNKGmwaH0e&Lh2N6RG*S< zmPJz)*^#vE>IH?f<}@nLFbt^Uk_2)Z%|;#4y=1#TupOo1Hah3?E3rbQ#^f*Phk-7{ zwU2R6-?M)xhYG{9@fIB!WwMZS+Zk*XngnG#)%PkqN(b2%;bFUOpx01!#ALe`@|Vc? znh;ISoGD^0jWIrF~G!JzeJ`P(`m~#4s%63{ZTo*D4Eg4@E6Esb`dzRdWGXU9$N0 zvQfPPn|Y7-t*#{t8#5oK3e`(-%Y)Mq{>doC)l&M=Asl1i@zqCBd)kViri^uAnm1+E zl*%%EjH}`7_YU>MEzq8rq~OXnz}R*1vbDItuy>aW%K|AqgjyD2k>zZ zl;l#=+~YE=E`ASi$34RTm>Yv>b;VE@&%YLy|tMwh~`%#g-owm^khP>%d%vDtTWx?!uaZuJq7(&tYE{{^# zx9(WfWhlD7S-|#op@QdE4lS>!4(`TEIKPUBx)@`1J~B0+@221}e&K1ARYAcK_K=7R z^>CWU%0HHrxb;`;N~?dEUu=mZXgAJW5nFzUqPZ*y;)fbl)g{6&&Hn(n*RSJAX;bl+ zIG=&DBA>}~g8j;hG?y$^uaLG;RYJi4Z@|PiT4I~@>=RWz3z%#N#ZH0zHyWjx%zCg8 z0U%h6(_%jV0MjLfTKl-77ZXVt>-c0VD11cd0H}TpN>xVMLMIkoU88gt@x*1Opnybs z*uivr5@nn{69}X81lI&O&T2XXY;Lk#J9fq=#&Jrcqj3#j`{G}yCv{yhaX(Fjyn_Rp zQw^$)P3!(36>9iWa%g%G;(w`$MgIU-9~E3SLjI$g>^Zn1pcM?$eGF`>9}Py~)78)H zu~e>7nMi7s34(IVoWk$s39Z)?fUq@#>I-Cfjzv$cCNhKBcLW#WXkrK_VqDG)r8JS% z&^f3rvFVr4rx8q{0{kF|{SJSrxORQ8KO)OpV3CfB){s&ZrEJfRVmu|#_ZNA})>UD% zf?}dvQuA41w5oxoq4TlhV!K$_7QhNh2>{QY_EnqVh(QmVfN!6ug>_cTH&D!H6he~f z1!q~N*_aR`M?K7{Y_&zXF_U?{xmB4wiKY?={D>RCrN%C5z$td-I+gKcd= zR+n&Y-HWeq7*$K&sU$a?Rq(up zmHqY$aKP>*N-a51)wNWy_DQVXUiA~mHbS-qAuKEwHoC3+sv&9D*D$YEh9nYRc5`zZ zF6H|cP<(L`i(kmaA;VE}$XNcxhfw+%o9Wk?ggdcDD-{;ka>PM$HNLLmR0$OO$loK( zE{XVwZBM5eeEF9$XmZA(BD{MbtA--uMk=Yh;go8opNpx7To|o8fgtZetAsX{W1l?3 z-iF)Ely&6UitT!egc-NoRu{n#w(|ED1P8uqSQSV20o)u$Y|iiGqENq4bsDk?07;PWmTmS2Y8 zRj$Ge28>=J_)9il5o=caqzPbui5pVyn0mMy$i%2_AxV_Nqt$n{FQ7zrkN*Hj2vwED zy30C+LwK+yRLYj00&E|1myP8R0){*H6a_s!+_eC%&g0KW@o;tLV<4~0OEz0>-F(C# z*X z+nmKqhq%u6BB^qirwLy?%Yg7p7psT`gl#NEG9V8z*+>ZBWd<#Zb?DeRth5EkR>UL*Un2ze zY_>h|Go)pDys1OJE*uGW7FvA;U<+Sq2=zbE!;hD12}0fN8~YXq3fUuan)cI>ziOGoeRv%=^8f#fe^m zKi2+bCr#|flr`+RPY>LItL4mrWZgT}#O{7co4 zt*!Wmi!}X0OIP0#nJiUBT7QTo51nj(`q}Frc@8({VAvm~;7I8i&%4g5sWABfKX097MdC)^H4N7M8o|KbFSI()uNB06!26P^RVK;Qf&C zJ}XNGeCo@U=C^6aKu8Nqs0ygDQ*!UPOKG8qqPN3W0~Wtnw_1xuHdz>ZDPvRr0Mc4= zL2D0D9cpqgiWEpy?;}^lL#ZoqyDJEk$e6iJtP1ApJ=>!!>Q*BP#8+7q$mrCfmIH{> z99#}!*p(Im7*qsw>^YU}y7e8ZvOOa~8%HXmLN9y7u&qT&ToG38P<_Ex?6y8!L^!X5 zkrSBrxeKN2TDE`y1MXU3*jANNhcI^8F0HN0)of1eD9W?q0IpkwQ6awanZq;zY`u%X zu}N~Bzud6l1zRvf7K&LGkyi05JxqxUx>lfW`GZAV3MpX}iUNeKsIKZ3QHX2coJwcZ zx9N$kh;j*eLls?aQi@s8{-uTqVpN+H;-adJ+694v>E;;uC{p>90jQ<} zZVFwdTt1~WtIPa*ml|t{YCW3@@2PidzY#4N7qP-?0&u@1gLz%IIDv6Q>|lVYQEd&z zo(D2JLOsIlG#ZPi%6JW5#&pa!E0X>h4aC_Da$isNNmS3NF3i_-Ix1~%bp zBKi_t4i_xf4{Z*}sL`N3GP0^`Y90;6Rl=V6lum4dELpF3 z#IT6<%-3QUHbnIh>?JK08eA|4!lEM08D%yB>Nf?KsNK38k-@0vqu#~0%2q0evKmuS ztOhtu0{;LpRis=31%tLKS1UHrdWG5gEwkcT=;yf=G&yvRT@;{bEC8-pdY=cFg7{pr z6%e;HhGxZC2#g7C$VhIg8zQ>n#VUbI9LU%fdXxvEILoLO=9S9;>^~Ebbp7NpzCr@G ze^IB?0n4wu@k74u4U*&`iM}fN5*Jf-{DnY(VKJ75(}p&fNk-Y@mnC6QFjo^J3|T`8 zm6?K%AUqRmo~wv|x5cJ~BdWgTHd2y|C2GLeDl)O$xbCZ&qLf@9EkRJz#!gPP_j4-1 zxs@4ErvBv}i};E<8$T!{9X8@XN9v>7EAF5582f4{fTdpS#_83{+FFIDlunrKN3?D&meyH&9zp|NVKl=Vlp$}CaXRN%A{12EA6gOCWMK;AXnX3MX{yu^t zsiE}PCu#YnFo5_r6zY@Q%cJVy7LTh?CQqVcu=(+xB6O6Dr2we-vMWpKqfM8GscZ`3 z;Z>^sY7)?I+Q!&@>rgPe`f3UT4$UD`@R=^=M%57g2HZaTNcDrJFb(bkz52OsK5NN{7&_?1xij}HEW@Exa9ayHTlF3* zUXsm#S4euRfnz?xP?zG&#lXFY!?)c)MGd`NQWO)p%QyF@`4=bdmgd*NrAul)Ljl75 zkUIPhM>St1M{xu4Bg!;zAVQ1wMOv@BRH(c-6o61KShGZ3)`TLo^oa^2{A{3=Tr*7z z$Yqsi5lepKUxH)_?FO?uXAG_ThXB8prXQEh!Vps(S_Cwzpv1#XBCxtMx{-aRHG(Q4 ziB_CkF!gM#scH?bZlZ)E({~ym&nOUU&^;IYoL~<;T7)SC=U_&a1qHY|Smv(fFMs4y z+7*XxUDb+-EhW}DWj3dCXe!7D6(|LkqgfGUHw{50)U@i@yI}?<4^yK1f;4Qn7xxVo zMusqPdmSJ-HR@SGsPid0mMtU-K@~9M>TyVd!7Kv*0Nh#6GLNru_wej%7sR&~+@ppG ztHxM{roE+{*Y#4a5WrK}%&@(eDH&mq;|$dv<{gxD!;`3)3gXMKimN68v4RfM2aNR* z(GkK@t>#_!L=>x7tbULejaMW^>Xd=qee4eKuHvDg#K~ZlVNr96cx9GVB(1p14C8Hy z7tKUib%voYkWu%rxLrVq(Yt2gQ7fytVQ{k|DATbn3-=34kSNnhR}R0hr=nh@!LNh} zyC23DO~x5YdzLM>DRkJJuZn@X#Nr4T7^?ucD?Q`;m$-j1G`cbES8)X{ltu+o);}-_ zQDzBj_<&eDb<7M_)Eic$si5tW+HLm*ygz)vD*2yK!1vp5EMDUaXq+Z-PJ-gILHix*aEk(i_Qk+1eKlC6tH|t?>Fcb`{9gUAA{{Xqp zskNzf2911FO$+3fD7N9aEOM(vr9$hNmAbu&kQT+g8v2w)U57H>h~X{D;Bj(05j`_U z^rjY;+)_NQADE@mTUgyo#Bg#2!oU@<4K}!oBv=pB-dYS5TXKj-*eQKo#9nOBW(%N! zHYM02i~gewLNHcdM7aT#n-N$Y%hJl1y$D2q`Edf#vR`S}f?WRq5I`(20@W|5?{NyO z6QsR_MtZ&?Xh5Ao^Ax{OV5sOm`G;`bu)+ow>&j?t`6{PNgJ~&=hB$6Tb-*LD77joK zS=3{F6)6&y_DU@*c^ZT^jYxE{ohW9-!P%vpU(5%kB+?i>#guD!ahg&^1ciX44(~2N zN8(T*)0l&hwT#L+d`oOb1tC{2BD(M}1(?F7gIzH0aoG$DTk02KM;7>sSuB=^o~1(6 zeyRw%aS`$mh=N^sEf27AAxa{4*U7OL6Co)B_=sz&;ek~jVTiiZ3Pgy%2_VW!>h2FV z8umWFaXnf*$|ijlq8*(Fe^Q%~mzC>dN8C4M#UmV?&6^c_=4#ti{4fdPI`KsyKBof& z`Q`y|30*sgDX`;V!>ohy`ljHb$dKGrJWTfas6NvXNO`Cd_7FkN0OV`8wM#S|%8QHu z#TU6@jAgQv;X5udV<8Y8VIgPUl(L@bbGFuzZJZ5#h7${v% zR>P=i0vds_qfcm-1dzi?75{CBTT%wG*OF+Wk^#O0T*-uOLur|#3 zqF~PrSKUP7ZWW{@OG~0Az`o#Hu#XzCJ}>49()-!KDehVQ)DX=1u3}4R4(0({a*B%L z`GPD)W0DJnlAg!n1lYIMPC|zksA)|3Ajtfh#f&~95*wio0$(+AfE(glLD!`19Xq&{G6dhTx(eqlIYsPq_dD|(7Tw&aFVm)${&PXf{? z7$yZhsZ!~=%ZPI#yw=rkQlM2+x}aUiyq5|kJ3 zA(!qDmi6Be(3N|3BUo;TC2ysd2dUFZ7@{1!r`;cn9xVOA(~cI(oYpP7_Xep#q2pjW zlvRhhK?>a`Gq@*R!RJ-XW_8;>WxZ=hMs47F*5hkFtRi(S=u;J2=WbnG?$-YRX1~DL zDuua))024Xh|x>Abor{3RQAhN^Bt%Mw#+fqGUcM`GK#!daV`s&DOr%d_Mp35;vqvw z+Bky*DbR&2F!V(^tBIiyFOr}T#2{P{*u<2jN+EWQ+4Yv`QT9^hxS_tF0lQ=ZjZ+oZ zF$Y$?M}0N{R;|Ziz(gKCC8=G+HB1=hrH&S9z{BCkC0d2s#>Uq~X)}z7iQDfY>8i*FD7O;gojgmgq7tI! zTfb2POWC6Jw!qjTl-P8vgJ8oz+yTrjZMfNUOZO1CrcgTgCnfUI2wMPiUgEfykz6MP zLTncFLx8KB93?2&y|^krOs)fl%2cxAua%0enk1lxnNd{+h~B+Kp!7uF#`eV6jj1YG zz+Ws&b4$vciY8l$D}v2}i6v_D9zeNlK%-G$(Tzn5c_~LIi!5AeY(Xh-ex+*XQRKMRdX5JaENncDWZo1 zSqgbx#?Gk>NG9ODPM$^w5_J zmHyr!n$*lCvA1(CA{lat4O7IVsZgm-W?shs0Q%-w*43mjcq2>#t^A|Ww-bWxgfnBm z-AP&lsxL$g9r%B#Y^m|Ys1mQ_Kq|dQ5fpt(E*#_e7X{bxNBxk@zW)IDL;|mKo9nEY zbcW;#-j`*tA)Mi-`ipPA>f`A$uIpzL#|44~EWco9+}YVIX3>0l}^-o&^+5-|t$CD~T^smD0yYE`ekANeZ_56Ms*Gk`z1v7r?# z@3K)3n<_4{ea({ts)_-NmxM3Vuu=7600Y?08s8&OyDWOWg6Ovt)w*|) zG<$(yRqcp!52;e51=K4RPhl&_Bl~@zEgRzHjlt=J(+CSpe%TRc^0~~3#0TbV4qDtE z%rY@qrL9blwjslDB z94kH>mK=}Ku{MTYS+}?buil{455ZGXi+z%qfD3q-mLEyD{{YQKu@~+lZ)_=l2%R_X zE~^Ja&QB%M=(L-NCf7 zx#f;*{jhN{>02?&SdX!s)hKMLfzZ zMpA>FA~)yq9)%Pjkrw_#}3aC@0qj4dkQ63NIM!pqlivD=UR5rvNt zi}x0DWst*#FJPMhe&-W|vI#2rt|5n$a+R=Ia;V4(tqBkUN^LBf8r{OXE)Aj5;ahHW zoxsqRa}|+*tk|2X>R5EcnqfyNE(ECthVvdocDEwx^C>VRKoP-Bcho3ofn3%?!b8Bk zPfo#rK>W(Fe4?eWxEm9A%7uRgMbV6G=`3ZbRZ@+ca9D!2$_u6R)b`#H~vG%G~`*L+gYJQ3KQ$ zJ@+vj1|!Q5+WUaisC?W+42Qn)AZ$!2caeKb{y~8ULKP8gaw2FSe8s~@Jj!2{^h-ge zkUIKj%c}BvA(HKVF;w)&)WjC4 zwkHN${3%30zJfLu(8F7buN%w>r-O;4c2cAHEIhd>%s`;BpYoLSs*N4746rWK0|**d zxDhebO#@;mbrdOYaA?yP{lvXnbt?mCTh)+lcu<(@e-hgmTx*g_R-xp9CHlK5KbAu- z6^u&dCi{Q{t?pT>QrEI{7A$V}!^EYw5&lPmk$a7(?k`%1EJ~53mGy}jx(g23iufms z(U+}Ch9pXWI9z88raOpFa@H+hx!=UCt3)an^~6ZcjtRU(_oi{w0?oKEN)r$*+Wpia z%_9YL#P&@XvIXJa7E6RIX^koIkSv~w)Tvc(5Z}&^P>#nBs1EiG9D^7u6A?KjFp$t6 za*I!?)H)^#RG`|}HJjtrz;R2|qXi3zeQ?!S%y7*`nOuwzS+RD~D59Xf7JHZ&FMb(f zHK|Rg(Z`=i{{ZneqVJW8V=7j-WwD2>3al7F(Asw3plDeNiF31exD|W^gG$mQtNcUZ zs%&6IlJ?U0t$?ZRdboAotaQ{+#treL6`xXjQ&p?a2{;;g=)%8f*ov)mr<9+g!y91RP+W@<;*5$#u?VG}GZTwJ>m zgj?F|6moXJ$}0H?wN=M)aFgMc3`}e`y)pj)u;hG~9Xw1!H(Bm15E5&Q z5utsV6R*T#CbRwQb%p#R!H;Vo>Fp&NWGt+?MyxfESexLzh_9RwU`%&J%46m{IlvPz3q{ zkV>U|>;a)E(5t$a9jSR${A5+C!~(kYQN3kTDFTxv3C81!@5I+5^;0(2!p-sgHpHA~ z$1q_(Wka#WqiO7^b~<~>qD@OZ$~|!~+$O8~hgtesrc&AUO-hRY07-E`BA(istoPDZ zD;3DYfc?r|)d%5o95!52e^5m_dnHI(KqC({lRBT@5Ll?`>J48E z7X}3k4hde42c~Xa4SD7%V`W=#IhR^QDcTYH*kYy8{{Ry0OhWq(I8-lCyj{)|FriE{ zOT-i{^UMPGnF}SVhJUe3Hddkfb^zWGb!$ZRN^* zl9W0vn?;n-ds>(wX#U1MH1#ta0oOjRH7FE!FEfJv(&ip9AcFz zZ8MEGjNq2B27!fCTN%w9uHh;!xg#j9@&X;}nT3pux;=9>ni8dXQDb4JxlFXRPjK9J zj6PwTL;nC$z%}*UE7K2B@f(C=UvM3ayPaLw?mhAmR^LfhRb z`ilxRM6eB%K#QtNJyQ{?-8JvDdx{au9_moKT1897!N6kzxb7J)UrZBIZ6ofXa`);T zd0*4!AQW&(XjES|LXM0G)oZTc(6m@L@vDYZ6u$c+6h=DNOb}fAmZ~qP-BEuc%^^eT z0B*Qn5PsDOznM(J$Tswi0Em*-fbj$u+!&M%BLZR`Kl+aKbbQ4iF9eH~?l@hJ$8HGP zo}Lx4qjJ_q?d~TK>!{LQ!B>a*2s_<=t}V(SwblEaDice{JEP5#z-H2~Ve_ciwQ#L_ zMFQ`Lgt995MDe4Xxy+sl>|}ac@c_V&8!Z$%nv=1gjN6 zWNa;U01L&z9>wk*qS#x}I<+`Jlvfwx;&D6psND*Ek%b?MB86h|f8;-~=@Kzz%RLqZ zC>1^t#<%Xov58(?ex(BW_f&krwi1+WhKbwDZ4?L6N+62}0gAU4<-k9Ac#>!%5H#4o z5vdsrbEH7RyrwS{{1cqoH>2|!KayZIXnskezjnt0#JjQkDl9)ylKd~bfFC*LC~D&J z08?Mgq{UiavfwrP6$~oBnO4*~*i*|bY=#hVH;dn?!2DDcnwc&0#7V>)wESFh*2h6m zRogylS!DW@D$3qcSZzO%{{V1df$~(f?c-yr?)jV{1WRs4KW-NvV)uwW(Xs;CeUawY z`jkZnp*DyI!cBHpv@vJP-KOM8Y=T}RaWGPT;50k+1W2FwV%ndJiY6{K&!Lb#{+oZP zK?)&pp_QVq>`buvasp7lnZb!!l7StW;{G7*AE>g(zcns*o^Bj|%9tvt9_V1ozwL6M z{ef_#1+NZE626$wGUkI_MO*0>#G(G6lrK1hQ_Si%u|8pp{1~^z^wh-ul%nK!9A~6G zGOM554mFRsV`^&M`yfrT-otzI@;eX#?f!KAhsWGhfFX3DaoVe8z$55_>(!wt$| zy#o?Z(|D<(JmGTSK>V0A2$tWtlC1Vm(IwpWJG+*K?3|iDrC0_0lIDg~OJd80XGYYk4Svi}+Egf@b!#JZrhPE#k7mpBD$JyfU>pYKGYSq#cpFt*U8Q!) zAZrLYTQxKCX8=AWbves3P#n-;?Y8u?W)y8&RE-h&G;-2MZIRC#^BiuR=T!~}v$R;$ zXnqh7Y4?y~#jzLnJD%VaXa4|GTJY<5h-$@a6kf&GWZx=uTetJx+aIN?BX6w#$6x^YCH6&PRt1uS!F|PB9FF|Ocip2_S^%Qlg%5YERu3r#oTx_M>Qb`)ASrz%Zelm8EMhjY zpbsf}IVFe6AOxBRaEi(S^%l2ehznI7a@G~K02J@;4a`>whQMwm5tP)i;HiDCwpPk< z;wuA7IL*|lbR2V#6PUEC#}QPnR4_1DSX7|*B57Sq0}v~ei&8@LoW;TwThlN#^ir^f zkxL2QF;!r|1gb(9BW?bZs;}8OFf9l$N+>wS^vt5}q0gm|Xq_U4mj1!yfFsauz$9oY zSX!_vO@_ia{6h2t0>CXJf<0PObvkCuv&!1Py#Zipp7+ zrsdj;@sfg&3bg?qT_rTC{NKj-BXKe-+8}(v-o#kF8&(9^vFwR%+L| zi!B;Eu5Ky`rQQ+!O0!o%pRI>Le@WA1M46&#{ z=iGQ(d_q(KUantNJNpmbApW7 zt?^q2O#@#ft6l+f2?T=5Dt=|u^1jGvSfp?sVdQ}VtKU(=uC;lXPsPo_c7j!(Fz75c zfX}$qFM_9aPjadK3OE%)$;#hh`<@oMg7OLhj`j!}l!c8M-o3lw5ftq6Kf@oD}bp0=BiMGQFPqb{PRGp<~usRxXn8 zx(hz8;y{x{UH;|89Q)iAfa_RDF@EP~VZ%fo0t{NJhqpJl!6kDELJy`^qTQuS+bS9r zKw6($1w<+}RTeIy`>ptgWPHNNzTnwe?iyni+M&cDtq+!IJNwvH{{THysj((JouzzK z*+MiFqth}@;UHD@DseuTn=x~@?rEqH7DL)3D-@U4FdaW)X5M<)Y8+QADw;o-w>`$L z5XP1U){w!0`Id199E?JT4yl^${E=0fAlRGBs-Ws` z>Tv^})F~9-yonSqQo37>%0{tCCXmuDtY3?RacPW7s}sLX%vWOcl)@BRtLkDkTMLmG-QO3I*Fb(JKy;tpd_WK$>g6PO%H}K7FC0|j z&}SHyORmHCxVG=vv1lI%ah351G0f&rCdB55{E=GKeL=%-Jb%crG;$?lYV@C*v9V!t zv}TB2=CJ`FFp0|N(JeN~E1Kf=!|9htQAYRi{-EVp9xtg=_hNIT^$v&>Y|@xEyfTZq zrKUJicPn#?6CmDDEZ1?YWAifh2H_KY#G*FtsvBD_P%NsAT`H8f2JpDp7m+RlQ9^{~ z8gd8P0qFcfnu+eY?2Zat3n|7`z}>}~DvnL=RU9JJd8n%9*%>PHfY1gBrO>6-a32qc7D` zG+kpFKzWF;SrDLTfQrx{i`2TR;pe$|R4N+<<~mbqFq*ch2qkG*Oa}&`dg%taC8)t( z_b4l+{lr;R^7RXEAGN{9k~DUOm=2rbYzIAY41%zm8@nPMfjCv2$AJSS(kQ49zmnbW zpw7suA#n7P{hGd@j*6i8l(^-Pmn(a@c!a#c6v9)Gd(}y(@J6}5W$WGcN~3MY6+1#5 zKy@sxVP{1aBEF^CpOe`w*EoClU;^B5SGu2U}P)(Ky(VDsD7zE6o|RnLF9OaSrK_<&JX_2m3b0DR)hlxEk%Ha6F} ziEkjvY)%au?TH=YN9Gegs&fYo8fm&`A-y;rpn!RnfvJyCp?;u%0?JFfnC55)WVxny z;u@{`IABWWjkL=AX$0Zpn1%lJ9ioB!)JnZ>ej(fIbqWnq1c_h!6tsx{02yi^C{nO_ zNbnI)sP-_A(WG0-V+m~Cw2v6^W=o3h`4k>b)(pX1aZG1zZljI`=(^x!U6W=F>_S|e zk8vF$hE=1%Q0c;QMD0EU{=l`&7{X7i4SY88oEz5(OGv+oiT4i@kxQ%M|;~zx*Mn^iz zdR%R!q#J}yOI8<97Lin}Sd~ZCTTqH&3d@Dn0-iaFNmhkhP#zkTO5l`StUM0a5T#=(tk-SAY5G7c!QU{w zZ{Wvo2RRwy_!CGe>zPPCTGAh2ed7$ekJ%}d{;DOPQ;3n69g*j0%-kvXnW<4Jf3!3l zkSw-W4)8}&=Hdeg=ZJHQ_bx24P5dNFl>OXq&_Dg`kE%fRaLZWuk5D(k++}~ntxcmP za8Y6kLVaB2L`#~@*c3TMU*JQM7uS zVhx$ZxC6&ADQ#Y*xjvna)CDW+wqrN?6%XdUHv~O8M|?tHrN<*vQT$~~YASjy#^j@w z`ns0FwF6DO;3RPvf$7|@i9b+n zlG?`M+(|??gYzs>j|p4NthbQqGE@gDk_?Wn(P9<{0o+tBr(F zY-MBO=!pe2ho?`osm15cLm^9Y4`G2KcU5z46i#W79iwAnbjj!tvDTp|r*SgQ;`si~ zT*#rOj1RR){sSe_*n}kN;dJ3-psl5;4g5zk>xVH0!y?I|DXijID9eZw`vhruakmVp ztJW?Xl~so?k}246Rcu8hKwA)Kf$8R;-P>j497=Y!<*2gRMY}S1csIx<8-^pWX1c5U^1fBE2tu?Z z-Brr6hN7(4$OIw$maN3a`GRO#B)XP@YQ0>xeX^l{IE%Cm^z$+yHBzCqX@Mxst) zX^31M`iPov{z%)288C8O20bSen9d&$!y% z*-TYlN>qWWwxbK>uxAhhh{E+KicN^YGrrOeJlu2Wklp?q8xo7B{Qd zaTK}2x#9t+3*3Rw#biYbswKdt__#E#)}JW_p|IdFt(a9+p@Id?dbw&IvL&-ihb)Qi zfv;}JLfe)B+H1IB(#LCtD+79ckyz2{HmfRB@W`oL3?OxUY_b);HsUHfZ>~IPxLCWN z{Ua9C+i@HqM&xSa;7gy&mGcnqi34iU>)cQUl+(gl7zYz@ zt$ps}MP01=ho#w3OhZc??DYXfByGFt$#XDrjL0r4c`9OfuW`WN)>N{#x`4=qp{@wue&Rmb13k>aP0K^%8|ENdAf4C8N^#L2U znek|U{$EEIJ;Y5}*1a9IP?uppIuupCsv%Bf16g2-1s z;BlMnsNkTZiBur^i4^12LJuL!0*k`*cH-=cQB}6}uZWOP^i%Z`vMa+#V^7;)pq6z= zOGS@3*Vq35A{-OtZgOQJy;S&=B#BBGBJ1?SiFs>crTjk(h6+;yh*_+CTvcqBJ+P!8 zK`D`4Wiz&)a6pR@o~bZ(no?P+DEulKsgsCc@b!7b`nGR(9e(H3@jtcvMF z=z}Sr6B&o+VW?CBNLia=^ir+p`r6|ZuDRp z+4n1GZ>Y3Rel9EvA#4yD?zo)kW5Fc7#&kI@+4v&1#QZR~FKd}Vd?U9DWPK=jZsIsh zVYIQw66%xoH7uW`%8F3@&BH!4!v=&N%_0mf^i)k* ztI2R)`iTTAx-S0!_H)7d6%j;Th?)G87 zEPpGq^RKSLj)1bUL0565rf7!FHdR3?CYLM~64q>K%}Z|xy*SbVBQ23g4l1I)L1FfW_m)h;Hs~b+ zBoB%UHr~Y*Jxgz85Uwtgg1442HW3q%db#S9Kfs(Ws`QQ zvQVAp5EoX2F2>mbzuzzoqSJOdfdPK1RuTlF)kfo7z#XRwCcOp8j>3nRQkbi0#f}L9%R{ zNRD9WRk^WVrFW$Dup#J!HHLd_pbZdS@~$p|+pQr)4S0#6DV!m-%cq)( z0K*UE9KzE@a|uN}`h@}??3bdkr~`Zs*=h@qWlA?x2OL2zE4M_YphcgCB_q3v^vetv zF02&69f5e96LOJx z8y449)U|*pJx@>`er189xdCjjc|}IxB3;nf7fnv8f753<(#mMr>b=WA z4l$bUi{(<^G`n+iN@iy+Qij}d!Sl>jw(iUDB|&gI0EDC&u<{sG+!lfl(jX(JFp#@O zArC&{3&3G{G2E!D#F&vNl~n|&RaHh2gwVBfQzn$WfPdK<-?vTDRw_O2!5ALpxqkA1 zmWJGikti!Z_Tn5+8tdgETA?)-Tour{pV<8v{k}5RGPnxqvZWN7%ax(f@)(GCg26SOnYMs65vZkm1j_#a$cOLA4wg}` zluf$0AhfksQ>|W5>>{u(-bbiwNT$n{V+!7wSOjOYM3>tDIavK{DurER7%aF2$Q`8L zgv(b5Jz!}BAcyAQA(Z&53n9TUg$MX;3ZuyE7arwz3illr!rFHCnfthJu__^<#>xxA zFqkhc;3bby7VkbCN3HmaXcf3>KBe|A$GDc4)CFad<&=OxR`fnOj;!O2BsdD&dBK@|OZIQ^h4wi3Yx9+b*au^vp$kRAJ-h zXcWH_h`8yFoGYk23jM(#b-_Bw3?>`z#=?hf`l^dpKy*e0=#h`Y_hF-ox;63R1`2!$AF9-havi!S@mlp?+lUQrTVl2zjz0RYGc8 z+h4&h64$Yu*AGbxa>Iv$Fzx#y0=DX11*+vCLC5Z40&rn2RLb;@)qhdAqQ0tI<6Uzd zV0O8%rO$}jPqU~$?F7CX^F>Q(Ukq<1YA|ESrOPX~&oD$|U1J!CZZ{~-=WF>a#n;p@ zusat9D7RJ*qpyZ>Kz?#nu^962m$T4UuA!!g?l$NV18kH;ej;7Iiblrp{4qUXk7<84 zK$!hg9oaA0Q;qM2GA~Qpl{As2C}}M0q`h|d%7C@+or{4d*&f~w!sf-U@}RqF7UY4A z5$uB~cRM9kk~gRIAJ*Tm^)1&D>k8ou*2JK{q)EY-`hesNH)J&yjjW7z4JF6nV0e#G|3zmNvie=$p;i&!1K4ors5+;D6%rg28*L0FsEMs0I0FqV{>KGbjn*3+ZWW~terFE;`G;~JHv!>; z6hHDb5Gu$GG}TKkQC^}K>Nr8Q*Kl3Ch-Ex5w#sd%CTV?&=Alt4u2GgL=>hlL3#MFS zQCih{k4xXoqEj2ExYCl?v2UoN^OV_Dmt4bYK3dC^@S+9`w{Msi=`1$v1}T>Vjbz{& zW7uRB0IA)VbCr5a7KT)+4dq7Eu^cwd`;EC+!J@q}W2P#$HTVz(#a&KC&Op&n(zfvg z0T?Bc3B)nW#mX&l0t#fy_snkFk|ld;TKY4UC6nCzOxQfYOCUu(a|+VnCI>kwS`G^&ud<9Z75WJBJYROt4mjSdT%Vmk`R>9$o;1#*B zQtFsqZ{`i7tQB@d)mXo(jM6ON)NNxp`;@h`5Q;5|3* zC3cu>3FpiW?}WOTZX{l7j#)nQ4_#I(9nnm~_WU zWkGE}GKsbFY)rR|7{%7y+eO`iKu4D#ICK$1p#UoJHE^1@t|^1IcqLS<_t(AQmr8iVS=0aqTo& zdpd!WeXc=kIT9dfJ={q(5zrJ7`HOrOJ5s?>Q;-tvfkioDF@aUfsMQ!$*AX5%m#Tx?N5TtD9T;m2{J&ZdWeznsWn1fSHP@ zRalE0upW&Z9Fn-s_?F(NudyXYf!;WjlbZk*kiYg+b*gE`3!PLf59(D`tZEP30f3Yl zXA(qrj+26S+f?+#Oavy?L@9vuxM@kPRSZ=o8OO{Al+)Vym7KN71gVD%zDi;KR(s{t zb-ftKTFc?yvsEk~a6gZ}BDQpqHo?%nov4Z?;IoNputY+AK$@Cm$ZF?nNm+l8=!gVi z9?45h#&+9$kqXmyFDw)o;}X*0Tri>sbMva6@MS`+sKYyfsBA}spx09`Ux-sm*+bQ3 z-2;f#2WXB|LJL2MeWQrb(5Ye+fqj}lEkI>wcykC;SE{yN#iBZ=7tFG&eL-EJbldA$ zWUy95*2cy42II`IRE0QY2yf#i>gb6)sxe@FN=l;{cd@e2#8xm}#Zm+Mirt^9F1@>! z&)H;iR!b$&^{h}6_{*8IhnTtrGZ!z^T2Npmz!8tE&QL-eA5!^E$|Fe1jdgILxvzCD zEmX}b{Xq*p>A1)Sat6s^WV%FV{kF-@6#PrW#njYt1$T#BON+7Hv5H%rg9GTe0oWvV zFwxo|H@MH26~TbFZ&6BCnSWrN6)#JS*cRhzE-NXIo1knB?t&{6N)VSO8Tt)MG zf2e}*>Lw*IG7&5{pQ?-raA3fTer0jFlxHz9<=gHgs1`Qd^|=%X7uA1ee7_JNZ@P>w zE?`F+oKnPAHXe~VY6S@axrAWCsf9`w(CM3q9o@?1*Ud0)=pBuJH!9eaF6JWC)KyuL z>qx#ML_bEO#D8tZtTUKFw)rw723d)DDlKQ+1NWov>NXT5>Yu?;bNd^O(TfpubTUvXPe_Dx4R1(&by+!bmJGFX*I-((Kg`GzvQ{{SEe)WvPi zIfyX_43(4|22K_J8E`MiQ8{xow2j6kx3U0%Iuy62{@HZ#wQN^{4mOxG_b9oDmwYmw z*V`+g{PPOBzA9BJ7_FE*kCJ>Kn{Wnoc|YtCy&an`#Nj2f3&i2*IdTA9OtnnAW2W{G z1f9Y(E?XE;Qm(Cpzhg*OU$m+Z^>-Mcsp+xhA6vxM-BychC)IEXqKuP zlxgQ<&gFxt5K`cSVQenLCf-giL@*+&vY_E#I}_4f=YtXiQC5rg%J1Ao#*!I1)|2RS!s#5Tg+lPddQ>Xops;iWg0ZL=X!vAlo6L>Ij4-V&|x(v`EF6!Up$oI01UW2DG#H2S)WM z((JGo5R3joLlst(--M`Gs@sa?g_fS8`w7gfXm{M|HqOqU46kJhd8>iq{ii{h?jU1i zE~%XW9Ez5NQA8jJLHAIkuyk@v9?K=@s!3vlWn87ys9XnKSitQO<^m86kx!(!d_xan zRU-%rnljU&hUV(o+vog%6~c9l*t!sIl#r+lY@gJI8 zW$sWd^7)>ShLq%^;$TH6!d~JKLG(2p%9bdE@HH53W6v_@itJ)IEK~I>`JEIUXZ{5f-;>1%GW|&oJVbmx}c5opz0t||=}Q2tOKH^&4s4+kIMVGtB>iLPGL z7}qVh{+l%_638ed zHmo#)@0rV>K0^f+h~YBDPuy@})ki%_+BO8CV^y6&$$=P;x)4%2!HX38=tD5bmBb(e zwe<>mFvOt2Vokad#dJkDt-I!nhTss6a~1Kab7JiM#7At4yjLY-B2J`dmm6K z1b6}l&f*;tgrlX+ab>_%!MP8fU^wsYH=$m6*bmlSPFwKIQa=T2t^P&;C(IC`EJX=(HO_6iD_*}${}orr5|=& z+kXKWYLjqrfPVw2K8t%sw;IKtNara4kN) zT&d@D*DRzUmF;sq5y2F0(KHPyi(mOTvA zqUD1wE~6b$LZ#hojNnC9{Y2iU<8D+{i-5C68ri#S!!SE@qRfrMxE5czaBa~{d2ns* zaa-c5HpjLb8H8RA;IMFHN(NJNxni%0c#|7Yw86%+nDlbQ%4*4Np>e1KMgq5kh=B)) zmV3kZ1nJDcm2seGt{|$g77=OqLEWX)2r1p-=QbW-!`0IQyvb)M0#HD&qzbpQxFrYN zN92@sap?+{8dt;($lMY!5O_k_Mn^VOI4#t4v$hJD@9GFQYG|u*RoxIroQj65TKvRf zG&Ecg6HwbA+-e2$a=|$PrDF;Lxe7O}MbT={LROp1)~fFPM1Q#{9*nYqv9Alb;N(W- z@dNZ6cTu?MaV$?TYua^&M{+kGR#XBRxlV|Sh1R)QrulB{7ZOh zplB5hcM(J)6$qqI>M3vvo~i=MfUrk~KLk=9G7U}&NAO#NXS0du4U?2OC8xO!5GrD; zScQrOfnn7X?iyOc0S-(`*5$L0xpwdomMvJhD#eGo*Ql0`CubR~5cl280_et8n^7wR z1_W%X;tC3hr$lZPD`P8U+V?Zr2pZ~kpFOX>(Vry^$iAk>e9Eqog0QZFkpv!77~ zX&#NUs5vSTL3U9aeZ}OIL0Q)_%r9>BP^4*Bw*$Z$fRtavr~)qv2n6lZECMb;TQ;eQ zL;4#M5V#<#h4JZ@3)QeMRoyb{AQwqmQOuwmuV(C34;`6|1SmWdKS+uT2!{B**K=dx5>`TV19C{mVk*L=3zC0QNP|7+FPK`i*0siD786TO4Fs4jvdB+V6?L4GBwe0|21 z4kJIioFQ@4#!L2CiDE?LO=4}px)l!Z?_eu!M3)?6HwN_9!C?8AuJRO9GGI1Qq;mA`P_cTrGa(WGkR_CrQmK}>r-qG0g}cDHdZ9djRY^NjU!if?>MU83DPs4Sv^ zJ?W@5*!Ki_y7_{oE6rR{M&3URy+|fJ5eHaoZOlrUWacj(cztA1V1nsW+m{RSj6sEc zK*}c-l@p5}Yq3Rqq!c3MFiWT#_WKRR#eY{h=ECe4Lq&bW7i3#B{WG8k#l;?zhNH_B zqvs;+LGV(JMCZij+Ysx0lJ%v!-E1n$`A#-f<`d|upa8t{QHYXa{>jSb7%97syg(&pDV3#&3Kr3X*v8($>{2&q z_N=Kuf$RQd;l&U}M8gSQ@?nU<)~aVJdp0-h^#{Fl&Lm^2>1mDi=gcGlI|;C#nMgMI zBcB{|rMT7cq%*h!4_q0mB0}HZOCb6joMjx>{fn!~;^j4vNusL`V}#wwmDRxLL5&-x z{w`iw6yz#f^@M72A1+c7=%evbRY&dyBakQ_ZH+*!-1&x6yyR-x`D~^SaM${XY?kK4 ztZOn~A65RA5Q|@kP3n~t8#(4Nap=NZRUG~xLD#9n1Jy>le;FOaUi5$}v$`_>0Lz}B zG&c0gj!N;MdFB|ryy^rMYzoSMvbay;3Zgi112{hPih%pD0$uqk1fdtKQZVgV2v;a1 zu23{AuHt2X87|Q3Eci>8n_b>qJQfRwBj~onaW=k|5)GHJLKflmI9YZIhM$0z*GpA# zD}=&+c2k{s-ol^~%y)h&*^(K{7 zl4U+HSu$w)N@YT7{gZ&Nu&G$fx;#ox;%TY?jd9uUz z9kMFA;DwM`jxVr|x6%^5^vtGm!74D6I$T;`&$y$r)XnXTJ8?Ra{-zvSxul8|Fez@I z$e!=!1$>t}D#mcXu(^~a47gBNcFIx@`7c4S1Ohmt8}&YGs0^u1eUNBX)I}A`G-qxg zbr!f*;tG!(#Evd?O(n}u1;jkYfx48Mj+RsZ03|>*ijcK|-9d*Jy<>Ji62gi+Ocqls zSjt1y-;yrsa72qO2wUc&j+{Jm6LrJ0qZ>P^4IDw-(+1NFGM`etT$Q%zUvS*N)F4~o zf~uBraHA@Y80cl}u^<30M0J1IFfY86gH`m)4FUL^hbjvDnRc#(s9ok<8C4dyxRo;` z0H-pLDy@R(T%zeEf}8q+k%OS-7h8hk)DBTKv~0)#o#ZqvBr=s6VX}xk>;e~I#TPB@ z2E))?IF-s44G@$a6!$G^)r_Wt)1CVv=#aLxq9OwwElnR%II;H!O;po2a@$T4p9h8zikCg#7JPYgo8=XL z>IR1?ajX~wauVIL(#fKPZCK|>E*)REw+LZSLVG2oF|uB&6#m8zED(D;Ea-IyK( zRJ5?Jy~Bbyttge*jjD2G6z(7{A#&I-nTUq(VyiLAwg{n*Dv+%|HdL)E`KS$#>9P@b73wP~q8hq`2Log@{{Vc$uunoo?A>1FdLH5{YEguJ?4=YQk$~w>#m`Oq$j6a? z6C@S|#NiF5J54!zvF;0TxQ&Ka)eY#^*TNh1pffp9<7e_gM2Th9KOK)f^aggc`hg*NGUCH?wMsPa=-Fc3gQar^_K;+ z@)>Jr`+#_V>;=GAGeZ{vv$!O2>I>Z0wh>e7sFJbQ{{XgDiZ|(JIvegK%MdOF_Z^G^ z=cEf>!bpLF{=miS()%u@?T9gZ_Eb(k0|_*HV_g5L+nTz0B$*I32~QU z@s|$%6-QS#Dz6N4VB(?F0v6p=3rl;R%stL=7cdiG=<@ChUQYOc8@K3y%Xl%VlDFOL zPk&P`T~eo|of&VAAtiU}Hp-_lzwV4dTMHvoB;(uh0Mq%nrvc18F0E`sXT)3Z1Jn$H zay^hWmpPU;dRGOkovVZ+ahJcjY?043aJKW3;%Tj-HBml|!v6s5wq4wawUfYJAjeKL zmV+tNQIZFBuuxRo@9n?$9f9!X5CS@El+{Pw#wyY2xZWb)a_%})MoKE%wxu#O%ogq& zc%Gcb24OCi)NW}mBJ*^|023C9n$WKO*$7J|j5g!MMyUl>wjH)z%hCF|mB#_na~0i1Zl6rF zim*?_Rt;E-%qszD9Kb0*u(I0f;9Ra?r7Mk%4qH)6+HnL8l*?7AOufE-wkc(`2EKrl z8uK2UONg3SPDPwC0M+rv$8?gqD#mDX%O#buc6>6pC~REfdIkXmtKfn`wPGVo97qP- zVmVh80DQzIs+yK+k@!j6`;T(;`;DkkH&o=+s<#9H6zXeqJdTYi@51s3}KZ>NTT`wc`Q&Fdi=W>Zb!_VeN_#3It^nAI(Fhm7)kU$& zKERraI7*h-^#)o~eQf0@OA64bWc5rJLt+RDZq<$r+%kBh7B-dpA<$Amrv-g;G_O-p z_CjSfOaQH_A)KQqG>XkC`jnK$3%A%r#kWhAl@MvTX}(S&0ITr;&+M-8TH%)AvDX(0 zi&K+$JDCM5_{34N(}_(i4GXRrS}(zJ%V`fo0MhH{k|Nd4%9ady^%Sagp$ieP%mKCV z+ySt%rrSwizVZ+eM}wGg`4@k2VYMI>gt51j1U9AU5g10AULy#eni0ZCgZYru1NSW( zVM0net?(DsH!_%0mmWMPlFLDmMaXjZaG-ruEeLLsrTP=NQwdYle@_U4;wJw3gpOR( zRSJyD*e#y3!zx6>+7$=q#JK`h{{WHGoQ}wY38GsO&$t~SFD7gLqxs6)C-VfL+I})4 zd2H^q{KP^c<*M+(yr<#_XMeaIDSb?Oj`be9D&^K|)KG!C<`=BEM%57u?7#x$DKqw5 zy$ZkrT8T)Y+rb)}qTvK->Eu4P1*ZBDwv%QMjS=+1 z0U{9mkYb*FkQxj17+D-`ncZE=D+w?%y)vs$;r{@{y15Tg3Qx|FI4{OAiURwUkQC-+ zJB`itp-oD05y^9^ujn&Dl75J9KA6mf{#!y(7DMLwWfihX#FxeCMkAYSLaJ{IbKXh^;4N3}ZK+3r@ zaxts+hS($q7Tb-&EyHf&#-WM?{+fh69LkgnKzmqN3;jV$H3m^|vwX+)a}r*S@kw9K z!093OTzdBSAj;SCvW9^=)Wo2^>pANq@jslGE*+BYrM4PJ?iK1Gh~!yRW$Q1qAPTSS zhuN63`AZV$w{>=Bx*aV)rWaDcB^gk5P|1Fafbg$jvo)uwrXTKWy>$&|?dGQ{v))BA zixWuVQiJtzf?q=*6dR+En?78kB4~Re!zs;d$@!uonP0M|O8QH!#VE0sb&1ppI2rC# z{{V1CzYR^~P7AUICC;t5m@@NLMpEbSW5HLEhH`=TaI-8bqRiIVm7x!yiw~;3h?#wX zaj!alDsp?3))6dcv$+mo zzYJ}JRl--}Pizzpd2jg%QGGWPBD1)3An|gTRXQOxq|^gvQC;pL>grR2smNJ)h;z(x z4$MNcCDU}8ETUWJTpO~|k*l_#M0?nJ9N3nE>g9uJD$B@J8GN(3qU9C1#X6`FzCz$r z)x&^d*>gg&6%jOlDN`j@jv9!gneZH;tJ`2yn(hJFqz;L!2#UIAZbwTMF3SR$#8P}QSy+9g01%Ykg1RHYTJIu}tF9^wnkfVNJm zSlyYJVg@mBcDCbN;dcR;E_r!vlGR zrWwMY5H!m@&9^8^jx(O+;b9OyNAU_(SJm9Rp{{UkVN`Pl!p~b*b>NaYrc#B)wI(k&}bz}7q z`?84a@l?Q6Wr;Gwm0KxyShcN6f64Z`?wGI!ZXC23e?4ZX!2k&3iB=`R1M~4MEiHxE6AIrH{NwDR%;>Z=oEBC!i(>Jnl$Kkn4R9>8d9AbEO zI7m#(8kINF*cp3EoT=%HEr&u!MhCoXt?(f=hsfL*Df^VlHz=ub)^Adh;K2>r%)1H`wIm$nhfTlQ5 zuXPoaKDG{?&%3E&0;ht`Nm5thZ{v~h$#gR1sLQB7DBlT$rf8M*U+!`r^Ap)npp8)b zm2WO4*nZCvkVZ!H+#r5O7bz_I2yY^VEgJhSYJ+e}Cdz56m3?}J-1{y$0^1Qj z3&v^?eb@VhQ~m2WgYl@v8b3f#$k-WL7$s%RkWZM7p!jNAzs@Yyb%6q*>Xufw2h~fM zNrS@*^tg_~ru?{&U84dGFH5|5jI3ZvCgq)?15`Y3F(KwVbsA2;_ zAh2q}Adrm<*cNngx|Ab}VrtejImrRnP>%&d0>!*EcA=waXm12am0Un6cX~iV+`Fk} zM6NY-)j?Zs;Q?Y)7tg5CM-+~zhdgsRAm+S4yjVu6VlINdVPagNaR#}lYFr{OrVBy` zt+}4ID3G~c!UCqAxC8vGaweBxUJ#5Rm!1Hzyveow#6A#)KDqh zZHtJsUcZsrdD@iUj-r$}R{YAYEIK8aHx!nJ33XIU@d!O_#E|72z&K+4a~8V>P@-Ax zDI-Gi02LaBEKLfH){>I`CWsq%kWGYpFJgSk1&a|oRLZsC~*p-;wut0Nht2?iGO1Sw*bH_ zt5I4}dVm&Cm>tLS_nXBwYfy_P%bB!@PI1rd~B_uyIqK&0XCXGr}QKc*|GJ~ zmLxhOPK*v0K@%XF+G~jJXQn+-MtzM1xLPXep5PPN1?P7H#H0|)&)+hy2H`t~mi(YY zdm#l6P#!Mgz$DOPBH9D{Ej@?SvaD2!3jQJ)6)#QNV1-m&Rt|1k>-PeY1f26Vw$wRA z^;-a*^_HWl#7*=?!MSKgQb#Js?r2k9xPYZ>rf!(jt^uT=>jPz)z+RCfrynu)6PSTZ zoc&knh|r2(=`%Afss`z?a4D2&VS2@I4;2?L&_pI4k(IkS$2AoI6gL7Q3`iAMVz48j z+@h^wx#}q~$!T-lrY6@AmgRJpx;jdb>cr%lfRY}#i!7Yzp51-3V(V2?m{l~z(ks~* zH*=H)h{Fgx*LXsMGU1MI>H*Hx+E#P+sTEREJ$d@u=753+8uTq_E| z?u)6joM7^obK5}Rnhr{bXrT&MQ*?Mz-auVdQv&!kh%J${u07Q4@UboniVB4nb9Dx_ zKxms6w+CL1u#a3r762MTGH(P^&kzfI1kjlI3L{gUzrS zI4~C)SEyB#+`2%wiAPW^#IzV+x$u=mM-T!pQ4kn8_Y!ROMxxePh+xe-9=Z}2eW0)p zv2x)+)V|e>!y%zdxR(X_zN_Lgz!#%ZuJsO}kIX#}>TTH%i-A@zu>*=-MD#)GD@AMG zN)SikxLHzc97P3l8|s{OeRDFO>Qe{sTxnQ-b|sb$+ONcZ*V<3~uFe2{Vhl!7-6~n5 ziCp1?j$d;0F@4@FzkvtO^%iU?eBvkY>J(LxsHtagGv}zvxMfjoqU8u0vx>ihIFu1>F zXqHPJ`I!*BAkEqz{-hbWW5;pw6&oUEmNgwiWUCFzN^k38hO1#Q_u%PC0(5l@_$8zP((aa7Q7lC<$Fa3J}w0)X87*40hhgGTxX8P<03J z+`Jllsh$DRnrYktTSvyi4Sm5ZY+#ga&6PK-l>Y!=xnajF5a%!pMCv|@A6LPuV;RBj za%J63kmj_w)e63{J9o3pwlpS1jc&#TAG|V)e>VjlOF6ltEw55iPuXnxOlr?a)e4 zI~~hfPp0LBJy%O8&yq`kE}I0Vzm-9$D*p0NLf0m-kwIg^*WlTHEts`Yurz%S`jvn| z$y0lw>7oKH6ve9FqOPTY$FpKEWV)!Xm#1Y}>g=XbmR&-`da${uaRgQUtRiB`c_T@$ zX_#AT&>Bs;VO9jvplI;a>@v=o6eL^ujfYt&utz!-04Ap#D&?=6i$TRDDUDRJ#&Ud| z{w4@fySsp*X^e=O*r@w1VV>dw?t2u785*L$M{=9vh>bcR3_(ze46Y&#r8Q-gfvkd2 zX;1+)z#CpJad((JQ?^aI<|G!m zY}!kVk2q&)XaROL3H2D}TcupN!ErI1!T$iHyFfTba)YVtE?wemzieJ80@l^UOJLkP zgW%Il3Z%iAad`y`(Z`LHy@?RK>6WsoS*oDK8FGR(XYl|O?qJ=xmj@NgN8cP_-PQMXA8y(_Y6v6AiCNYr>*KytAr8s@klR$R7=C_8(|s-V~r z+Yw+}Oe~@~Zv8}B=#&xbhb7@Ni`bpTsBUkPEtPR0&T%^+-FOCcAXvmxvr$qeAqtDL zh{3d6vaD7aLqQLsOapm(A;#=vvG*w^xG|<2eXRHk)V~VYM(f`(vYM{BfQX=`%OMmp z#k}d3urK0NmiJP-UxfKjWGzp$_-X(&vB=QIlF9{ATsT1qFwo;w4%uM@3fbD)bH=3= zh#s;UrVS_-^8yuWDxCs7b;OTC@;&vBID5#H6;*9BFp9tk0mO({Way9NYb(>PcqNPDK26G!( zdlyFK1%0yIIf@gAwYmp$*fv`~6QC%V^D14kH7w#O2TMkH3Rft}r@#x6IbbT{-XK=0 zIpX#qESL)-6sO{*&;Fs&75tSZ5^w(i5LgSi=O6++y)E`Pkg}hQFu6j^#j$gS8o0(j3jWwWpiW@ z3HX+rekx-Sov*=Y=Lh3RK>q-X32*3P171pCp;UW~KvD!qwoYU}i0$Ewh^wYou|HW7 zLDxbIgO!Ks4G@3UIt);ta#DoiH7PFKy=)rzQ71`9 zh-=(NL7NEpPux!SSlKMSVbb#g0cW&2eb)prfpHh!N;N{gjm7zaghK&1NlayL&0WN; zP4xs>wD)ll9QGtpQQ#=P@=(U$akAIBN|l;&CJ1xUIBH8%RN*~07kHk^Vn#tIkjjQu zZHZ~Se9E$yRm@+I%lkX=5>YqOk?J>2%dKPbRl^ncjg%WyFXC`Q{{S}+gkh&dX(}f4 zi!2-XxbU@pGxZD&>038&2P7O=eqdV}#4yF9g)u%UK4wIgKE=mkuT?76m&^cuRyLd~ zh6aADV$%cP5Cli&3NHKml}p^oFXNeIaBef7Ftu&QOSyh2i-+QwT?!91WXu8d&IKFw zw-F$uy77Fe*xn)x6TFQZjkR1zVRqEcr0C{2wR{phq)VB>xOqr?TtW)KC`*)o_7dw) z!p8;0@Ru047$|?bUf6I;xvm5Bi~_h|m-JK0OU?&L6uXWA%sgo3;ssfhR{*JTTYX2( z6xblSsrGRK3DDKY2?>|PCdSveyWP53FXqcExZZnI_XI0B*v^+un2(LUnPG4kIS0B^ z;-Zao<`eO_iiV3CnZg<>_xq0pmy)gzK-Yz+kf4vPoElY23cG{LE*yzaV_xN>cPORn z^AfI01M@ZZ=Aec8NCgWewiT=3m=^Bh7_9|NT^2%sgXNX|Ft>K(aJ+ks>lX^?ttCLF z;01ECOO3Gy374og+4HkG5-#zPg#h{H3dX#VOPYh?_c_s=6vXdRCO-cY6FvHRcmLg z3zn8zD|S#-o|kdlD*2YQxFJp=21-Oft?01#BBZALcBbfU?) z87!AcV%e#?p%ZEwwC{)&YROXtaNi$^XUJSd2}A{ru6~(}x5DFCh(3yARlx6e5pM@E zpyf)wpI{}MEkDtjt))NmZaty(Eltu~0HK3vFuff{o1teatq!2l-lD8k!qRBD#dw-h z@srYTvJ5svR&fPvS=eAeR+dys08;=PkT2CWS#->bi(?Xj>xO(1jZ_D6kV$U4RL0P6K*rmbU#oH-I>MV%BBPvpCV4}7>J9QQf z7DX4+%mI!bVP%kI#d4{B<;|?ZM^DYga_g8_DcJI(eZkd}e>WEbI7q5{yC&RIBFo4T zqqSX;7A72^Ub&6kT$>!ME(XOi!Kc$4v7tiFO^a%>DwK@xm}V|jjG!5QB6nrI!aGjD z18K865`lbslmOhYyT?_T1qjMz*KB%hzm1Bk&dZ8XOh7eA zKtRpFzO-c*kI^iADH7xYFv-5Eh%E9&9^sZ~u;3g=9j~?$jfdD66;CX`QAz2F>jumQ!wt@E=*QX4=RJDDLKtU{s#Sj5PF_vSKh^@NFc$!|4j4|S1W{pNG z58@`?ApuM5h+bpv02Y)fwJnw!{nT_XzI@C39;KgnOYSl^e8y2)lzhdq!tSNoR5GgK z94Rrx2B8!#pic1sVmam*OChMhTCb?ADT8DJi&_xs+FFqU5qz~^Ehjg@p_f=%2QCeWDrhVoT&D}Rslp-*Id3!ixxN*LQ6n5QHL z2ESD*mxd5&1_ktL2pl~nz(*~5$X4t<7`i+9Wk^yE5~ILp8ob^ z+jV>~H#c6GVnf3=@t1AbmsJEUQa6=@bue zMzn9-Z@%}WB><;c1ghtGL`fmq*dCM}^B0ZIY)|(IDZfimBxpX!VxfL=4=={aN0jzP z$szZ$>|di4s*|O2CV|pBTSBZLszE7BR*KtRsN;G*Sol1*R?L=(rWIb7YW_El&o;F)&jLDOJ7p} zh;(d7HhbbU-CR0HO6cre%Hc`DWHOQNuD?()6?=9{s-mcGxyg}-GO*{hsNh9)7J~K+ z{mj`<3RqqG>6DaPXhuaZk%9VcOtyY9SXACcs*Gxe*1#QN6?Xd=>vGchmF$`kKai>d z(wiA>FJhQhK7L|>9+0VErB))`Q3cz@jG?yn!aZm;yd?ob`5AyM>NIy)8R=rjt(Q>m zsFshp0N+zWSYkIv#c&-E1q^7yr5Dj`D>W?38ShFq~)*o|v0An%N9N~4vssK>G+c)i(i zZVC=l4x1e-NG0N<$i2el5!wo-K)r^VR9x=~e;qzIt*9;?rcl8YQww)k7|@B&Fx9NF z@noo|IXy?)OGIuJ?1wZ$-Zm&Za3)q>L5pJOBEb@?nBA^boCG4$%d5GunoF^GsA9W8 zx<69-Ff4Ov5DB}t!MT$G{DwwQTUH##wC3V&=n2kRnzDG(7Ny(1qwpb=C~N-!u!*}_ zVg*xo0~3psHeB(aJ20as#!9tlM3ls%l@rRTu)Da#YHUyk7}$fdg49HF1`lu#i!N5~ zr>!=82^=S;UaeX)l{mo^*aEWhee!QRwxqepw-$36qr3(>LuWp^Q1V; zsavROveSlAKV<4(5lw@MN(zN|aVqN#G2$4C1pJtQl%V~P)fgg5-5hiE0|D=Tq31!I zT^@|Y6?@?Pz+-^MGuW|Csr4xE70NA9_@-Du3LGvlRIj~*v@&A<0BndiMZg1skPp)e ztxtcPRMXZYsUBNc2mpN7uwG0+FcT=1gj#kNN1#4WoBY>9{ zp>B+vo?~9fdZGd0SSH*a5MVG{-B}*t3j&Inp@-LC#Z?cv*ZqN*r8?n=2b+PRK?P?M zPHBS4R(%Xo^wK}7+_&%f34&g| z^ElP1(LqL09v`{dU}sQJ%Z81Wu`Ps)d1$Eu^?Pskhw*%X#wmuqL>lLmC_OOe3VN%B z2m$zJwH4rq8sqy2GarWiN-4ncDcs~}Tvbt!J2&N&1@#r`h^wS3Z!7c6KqiV};kzIN zqVDB-L}0ENVM@d1L~6;ze`GF%;_duE!(cG3CI;m>9w4S_Lzcmd>_ma7Qtn?W`4Uza zpEJ4?+x|sCYv2MPaj@_~nP;iGEedc>;bWhPaRt9H36|}ZWSiXOr_?G{*Rw)){{Xf` zD@nr*#e-{uYm3yYyi?)~Q|YPHPh1c%{QI0ZPqid+bOJjzk4>E0k&&ctY*lGP=2aO9WO>^~dKSOj>_a z+XNUacX&ezx2E9-g6vs^`O-SjkbdIPrf?UQ4@@%EFV;mlVDtN_l#AEQT|)Lsgka-w zC;qJm(+0N=DqUP1(jA}|YbE^_^uQ*f7)$d+Km(3;c96>ig|+=eEe7IPlF%$g?@Kv3 z*a&0zhK;OhY|(n+8O2)T2-B~rUS+P}7?0C&wMyW!5Tb;44q%1pK0uEvfgdYxSrxi& zt_7hXt_v)i`rlm5UjG0YF^#7307X7xI9uurU8CCK(M0;l*KkUz3ELD6UQux}Y+l4P z;$J*N2a-^<2Z&ZI=7rVVX3>0gL)*KV;8KC@EC6mkjLJ}mRuj1WgX$6`f&TzdbA}}a zh!Ob=k9c2;Nr+0m;gnPECv9E#1V#{AyM(Cm)1dKru%q37;WkUfmJb@RjkYx#?4 zexc3;y2*Ztb{mB%T;4^Pj{+F!`!-c2{=Z~m9Pa_SeSzIXpub@au|(!)uAxEdE81)* z7ge;}O-P?|oy)CmD6l*T1|LK#dN>yiU>_^@P?1U;#^66@k!PFb!vyHlvDlbH1>J++ z6klXzHRx*|?2RajS4SH}T@kD5TebTJ;j4p&S0U^wGN?D|02azxHZgi5@Mph0$|=(0 zTf9WT@YHCnEW3iCz`o))#8Cqqi7Me97F!TQF@V0~4wbN=rwoOr@J3#72NifQdg@i( zGOmd#FVPUx(!^bR10l}h2wL0gZ^v* zLJ2B)EDMw?RhI>p@*{&Tllv_E5D39_25hB4D+yU~NPnm+V&jxdps8ToEE5Bk5aUEN zz%5E4wRemfTtplzkab|ByGE@tuHq5cF1B+(g(_=`f*+iMu;GZTx71bk%gL+KVkoFs zMzs7erm7*a9!VOm9uI6%^J>YpTrh!EbHRR~y(@wNa8lqQqEsp?gCMSwEiXh(11>LH zjgu}6YZ6wBG6Gj|V|p3Lu47Fq7=_{rRj}I~g4k(N^v+{YcS&WwYnqP@mKO@D3waZH zWKtV}Q34oxt<>lzxRl$3unfI2popP`3U0O-Y7HL@$8=;%5Br7@jU9Q8H*xV@zzT9z zT}!p;fdHHxg-(><_bt2mL2N{JP+LJex{Ye(%n1pAVUY#kx>&VU0NAM1BE=-SN+0BP zyS3P*^8?teAHbAuLL&a|D)KkhqM$DRj9^%hGRB_Cfu_*GBJ!9yDjAv0RIgJ4HA)Bq zoSa+}^epyAcd2;Yr!YipD8ka4g}6iWFL)^joncKC`hd$6+%Tbfn8p;tW(7qdm!C?rNOPbqCh$p#l(4|#GREk?D_9qgR z(lKNfo|pk|z1gx`X_2C;o5^;G%94NtRPE&*278NAtufHHR@ZBRx*HLIP2rZH9gRRz zLMr6M)L5Spsla~_w-h>r(5JeH)UU%ZOCICP*%xMwM0cocVXE~JNhyyAqqSRd-(*;l zKWtLS{6T`s%3C>)Un4EOkr7KN`{dQBKvUzix&Aly*ZjJlNQ$3nRsm{^BmQ@2?i4OQ_FS0pjai}g$a;t~>Y768h+?mCoL z%rv$2FEss1eKqaIArFj{Syj~JYFD{lM?ED0BUe+f4@MAF{YwDpwiIsO$jb8S4oa!b zM#zv#-AK7z!{S1*8{3({#O>T6wr?Kh(=p|Zwp)U3HN+bdzPf=;Zst_$iLfJtt9ghu zvWy6e(}qz57ABdu61RvgjSwoMz9x-gE**7$66}N5xQ;Kza@9IHnJEWxrKi-(RfMAb ztlNj!h%U9qGT6$!VF{{5$T7GDs3AKX>Z)uKNC{zcf&n%^%b>8BanIw zP;Ttb=W11Jj1YGVkK9K?GnHo1A=4~20oih%kaU#BjXx+cRz@FaC3D0nAVo=vh9|0J z_P6E)o)aBG%{LYwwL{#8iKHe}KE!2?#V;WJ_ZVupgyeD;^E6f5A!lr3$b<6<#2*$$ z*chy#`6n3tB3q2aTzcPi+oNX zRrnxlB6eh8v&Y(!+l2baiom@rKw8#RyC}WEDi`f_bD!n#rus+m#+^$s8Rsr0H@p=Z$od*Kv2eXw_s-~-Q7CT5?zK|K=v8@K}ioS+ASsUwK#WsmWWVxuk}CDx{U?voIsu4j6HsRaFXv%6qXQP z2PE&mXT*G(e8J0ywatn$zDVS{J{hN0bx1DJM-_~z3cPH@P(KV>1XFA=LzdJ9FCTjl zB$gJenmxDU_cnyYMgIVjp=+DR?3UxuTBzKrjHw1ZB%~7tt`b(=+|D=ZB9C!3gi-3* zS+d)OPS#vL;v$z&3RtQ@0N1Hu6*QGpt0fYG{@sR!v8Zb5EMxWhf<;zKHulEda7%Gn zQ6^Nc4sJK;&v6r;_<-dL|CkQC0~Yn+Xb zO8&$n1{6`@1e7=XB9Iz)5!T!#ASk9ORDY-va_11`7O&oOdz_@XMc2m={4*^P8=nwJ z*0b{grddSgxGHCG1;eXC?ok(p2`jaQ-YtyVQQ(LEj|dR^O2BG22^Uand2O&amIhS; z@AO1hx?{4imW~#~te3I4;#%fp+CE~KmMRG1-UcDJH;ARus0ET1t3J7x#*raFcebr<`!A|CBX#XS2LWe)C>f%F;EG%>ROfz5`s*PHN+LOQHVIp zYDEUUOVZgNRo`(7KMBpn#S+S?nyGV&tBmC2+kzcn!p1AV7?3ZiN~NcFV|QU&RW{fV z9(D`5T&@n`sCKR`dZ|KzXVeCX-2AdAJ&(PXt+Fs^3>aHn%3Dn_sI4HdYI=ye3qt|T zf=W531PqnSAB0O#-b#298UpFY6eUscpBh^F}*T z%uFRVgh3jlgv$nn*E5dssa6FG#p-iDT9l&c;vBq@)}gonweu-ju58=~)Hc#VO6)M{ z@3@z)X@M=h#sgZ`l{jCs$~7S#G(sMdDMS5bhG?}&R(=3c)?GoLxtK^j(2)}1??*$1du z8~dGZ66zKJ&gIY;a_$uMD@03-OYo}0nU%s7b4H-*GZ3=9Y@{lDFl0u^2kr?yJC*Rh z>ME8u1fnjDs6qT3sJ%b+4OBClfNTsv=I1_=i3thxPW*l#3(J?<+CPzf-2VW;C6irt zY^o5!@7Y@d4u3fa%S9qaf~91mZA{{e<$+N)E6~6%ABlqGJ?u?x{FyMr`Pokt_+`Ll zs@V;V;|4o>g4tIKbWD_4*$8UG)<<#-wV(@mxR>2+R2mU#^<1Z$dY45p3ik{0aTSWv zFWf&XzOp(5I=Q8&(1bo=)u`p>GKKlLOzRI((5w914+&euLog~)jUe2)Qj@48C(}@{ zy|`A(5)ppO`GbXzOgX^&h>S~_ScLi+8!PQqnNYnf=9-I<=+gELz|=Fb-p1F0662a znt!7Q7^uAuc?JN$xa3Bqui{!lpf%+6kj=d-7o!7#U$!IpK~k(Y(_0e|+-o=saJ9k@ z=;l-reKddwviD+?&Ol6*d$^XWQ7i2pzw%f*`y=s);v5$jPQ$pnov83YiVMHd1Vj1F zlqrK=;zAWdN|@y%mtEFNuKr@YZF*&`vIu zKs!dRY!_fk2rOTFn#2K7o*NKaifvUK3zgrDq@>G~YAauCVP_o0-!fTm7d2XzTALw3 zdA9!m5Ex2SYZ-hlSCHlfroth_HbG;gr$=1hB5iAh!eD z24Ia$j>K-0H($7}3suQOh+~E-C9qoy45XaXTO6RXu$LH=fHl%+0+`rp?TK`K$~3RU zYExG(c3*KiAGnvNn38Tirz-B;NP8j-s|YULG9ji#E`*npgJN(paB zh>6w90Ah0%3s{_hG;z3;dgOx;5kgsxNEG{(Smn*C2cEcr+8cc^0EXrM2z0JfFzqFM zk=z_?dTFLo%Q{RffoK%4P^vO%su~W}}j6^u@u?O!lR+uMf+SnD^YLDy{zjbDt?;g&itVM7v_I zPpG+z`i=W9(iC}&0`TJQHkuz%RA`B1-OluIUh9e64|N{Mz2pVt-%i4mg|NFN>mf&a ziMi_bt|YGV4vFbCC$0W zvlup9q;O1H;_(=eR}|9v9LWvh~dE@i`f7RI)d?E^ZqukXu;XqSNU`wnj{y4a6sDf4QWyCeBG-ECZViUzH3o7hYN<%; zdW=B5fk?VKGCZ|c?r}vA%weGU$xyBOg&f|TfK-k8gI6;)a@j`US+DL8v}$ms#TGBZ zS*=6Ya}9qC5l;Nv3i0s8h_J*o$YGnu>IqveRKVRN1Pr;RF~$9pOFQhirLydb7eMBc z_fkdfc4ARu02I=~Q44W6Qc%hOB;!SOQ+BJ~#I`eNt7|zs3|U02f{56g%o$H?Z`Cl^ zPM`n_F6N(R$CTwYq`s~!SxnN* z?Gu>Zml_6lxRKsb(MaJGQAf%qS{>~|sCwm?`HjS%Jdebe0fVG6`*SmH_jwI5dEA?8p^nA#wIM^ za7a1sP!>;pZ`1&T0F98Y;Pkx0%cAC7aTYRGBl8Q48OVK77@N#q$L46fWNux`u|1N) z-xUkeOBUq^TujH@2N(^lT9I{`uy(O3P9pPiP_+o*a4V%t7MoIq*agqYC@ob~Ks~t? zx{IYo(F|s70d6rMSnL|bAlrRGF8Rr0h?i8&ZsxmAEh>`8!#PWVENQT+&vL?Pxllma z(3V>?$x18p1jBbNXx-9SxbCI&6(}eXVkaw1yZj{sDSs1Ex{X>&ixhU}1?w1=H4tLh zfd#OFrkQ**v#D@PMYo1u`#t*`6nd5{dz^#2j>Q{sV06>@fnB^s&Lsn~2~?qUa!WgACzGLjYh5JjJShrJ|li(#ft8e)=#JnVJ z0aC7!_LYS*RA~V0sEQ{+l?PE48D%b04ol>lseqmCrD}|*Dn+d3T3W-V3=jVRvehW& zBc6@ta*HWSKBWsCYbE-4mRCU|SGB*XawaYqpQJ!yQ&i;Pg^XfFRk2%uW5!bv^>WKu z2I)ftdp;)<(rbm6!xdefo7y3g(z4DsGFK z5HZr}IoSN-!+(=}acFwmh@|K^rUC?91v#l^abaWL^yUIm%eld*NamUZTc_$h5l>J- zmt)h^TU%lJsOvlwcNuK4kjgy)Spx(fOOjcE$8k!SN-s%F06N{4b)b|My+nxO&4+|t z)D}@|k`ULj3h`saY3VOomBSD^2k!hTgmy07FS1b|C$cV+$5Es&F&C&b0_GfPfydB{ zN%KPJR1rd7+yTL31U4<=SEZ|J1qo;3E>eETcJJmiNGTH}YQwx^r~zbPrAq)py|iHa zU{v-Igr_l3_QXRjU4>^6hA>i+Rj@0GaeYBby}<}PFlvMz_B9?hb+E4ym5&UB&J}@e zry_Tq>L{~Ia#*jZvDh(an6o$N3Q}GFp{rxRumVOX-C;Wy<-bz6nu_-XPe30w@Bl*+PqHmB1aLESe<+ zEz-v=Q+C^4;0=(>8ooq*>RKTTp2jM<9B|ky2$vo{E+q6^N?`0AKq>;O#0S({3rIN& zx!hGUQbUT0;DRJcOO1%$Cj?<_$}mVsD;ISfkkwbpUWT47ASsz-E?q?9E)LL)Lw9eb5WWtD!kGU6 zjELODCv^Uxg7!k9B8^x{OT=~tT9@h%sV|i>ns$9;LUlK)%j#W)n^4kA?!+ezvzGu$ zQZO8hyaat;>I_gi67femc(~L-4-aR<175f;LPy`YLM_8-r8=6|b<`{k_Xegp$S1NF zwJB%{-*5^wa3RU=C$asdnEsySf1$);#28sCNmfN%)M50*l)V{yKzw5=Qm-#0WI%UN z;+A>1nqQsDC8}`%R8^l*<~f7xJrV5z`7x^AUF3aYJtO_Cdbp7qb7WK&{W+D<8n!Xo zRl^K3b=|{Q-f0;W)kKY4Cl@D6OdV8s+82oMKKDa0_DT z4Z;asMcyP6MvLkii*W`zl&oPc!X4XyNJJ=SSY_NB+aU6sLb!W^^5zSAs;U0~oh)j* zHUMdE9AH+WS2&jlwkhi%RgT%+x|A_8BnRpPiAl1QJWI5#;s9gBqP`g0&@ZWJUSnVl zOI5I^)Vq`_QK*Hl#YU7m{{Ufd4&TWsL(`Iu7yuP^#*T!Q5G9?;%46I{#}fB!1X3Mj zuqP2V7~W}xln^Yx4p}eNkPE<{ei*q0K}CJauC_}+R3CGhID+BJ4HvQtDK$5!i-_A- zE!_}g7i}Df8mOlz=3!K;Y?N)%Go668Ss0eUQ6q_8QNYl};et~cex9Og;6STHq1IuH z9qgc1qKtPJ(l-tfg*VR4M%tFBc3I6MaQ zI|~XDu4n<;C!{jVlH03_06QYrAuS7!`wcJX68E3$77pH8#tH9w-tCr%9yEeJeMmQcK|q|3v8kR z4xy&>k5aheBH*?Sj#J>J*o!krfmAykl_@eg;=&I|1B?uLB`k9F9|-kDK(QWT>Ofw3 zfvOKoQPG3$0}a+e6}H5Fu-9BxwFE^qY{LY(SrjZwaz>D1;PQa2moCP;uX5mzn;Tw{=Rv@hK&MEWep>a)>BaTrX|b z>@mgkN5urV)lqXG_j6RQG?wmH)LB*^6v}YdcOED{$O5H6kW(ZQBGvSjuNSRj>oJw6 z*AQ+jA%KskB^+PP%L162AZfW^11$xP#y3$c<|S?X!wu)vKrJb7>J}=Tf~? z6uV17MCqIj{x)$1`f{Q+?p)b+LkAG9;TUoNR#_kXRm8VJQ+vR4yZ`sjqx0q84xM^RqUB;0LSX4l9Dj)oh zUU#B%%q8fCTF^siF~4%qgzL5gYCRh{surTHaLSZ_acOZF;R8(%Bz<^UKn2;v!Y9cn zGWu#Nb3X1;2zp9@m&cG=miE7KB6G4xD2C5sMXzjH~AQBN!1Q6 zVdLP8Y9MDmUUOp>Q1!CKkTY@+N~HHGyhK(Tor?Hs0b8EfsR=!`0Ml2(N9QC8scJ9B zQ1Gv26??g3e8nhS-7MyS`;Bw1M|ps}V_%5PYCKDvhC?*|!iot?)E10)2D_Fp;af2) zQ1!3PF!fCHR}ih-gy?@;9?Bw`V#sd=x%7k=E5xU530~DSE+PBl5lP8>h-+!}Oi`ht4(G?6!G`)>j;!%j%-HOerPJ+yYUZwz%V>p$cOtJ8@1<=JF zV@(LV=u8)$<_2G~qs2VTgU9@s^R~d&G5`XJ6102$MnM396VQpo={a#5F4fHnyH_2( z+8>xS?Qv5I??_V7`VC|_6_Grs1Ycip_$ZW&#-qt`M&)2()F{vCDKLXH;oyVdER@tx zymJ)Og%CTr*j|2^Hf)uznLtct#G;-qvI`D`1+7_;{Fge4P8fl60$Pb|$rQMW1hy~K zEUPghK=W<;zPDMkAS>~dUrI4_{^tj5% zu&J0P!WM*J4gntGhH1D^`;Aqpy2s)e zO#n}+SPghN*aM?5m&mA;fyCU)>R;^?q0UPec#^C1C3dtSCm&NGXvEpcq*ov&`XJl7 zQJ#}~Z_05z zeL;R@V4O$ff>$F4n~|kIv6Qh~k=P*M3MKt@00h$?s%yEAF=#nsoVE2Aqtst3x{MoO zmx{Q!Ux*(087dHgsd-a5y1gz|?JL@d>WiWm6{Q(3A8>04O#;<*HR0JpTo-ApE*EIx zE5XE6(Wkj|Qm1l?UC%%XONDdV%eh9frwD~a;~)a=3wF!4G+oaIyI@155f%@aW&~QS z>I>XR35p+xu0^ph^){uOCj~5EvRHFOqc6Zin3t%8wv2|RxQ7tlXGU`sah|~x2!6|p zrqH{9gL3!WTA{@*EJA%$Uy#_J3r^lk5!Bn2Q~ki*JbC-G2rmvX?YmODuB0w&$iaRsBMXS$c((3gokJ zCe=oPhODW?1bj-3tL(TcF*1mLnV4dB zsXNHn8;+5`aI_b3z0rpySYpsQu675e#tB4>zX$~X0BUM*f!u@}cj7dMprfa;G%CR*IJtfMu zy80#sndztieL#Z0g`_cTvf)*m8uy+@sY+y}iZ5)hnt&nq1MP86A|6>#0+!>028NQt zBSJlXlnf-`duf3~W38A)cBpAWF;$~;q8s*H*+AsYixoAi%*T0L@eI*;fBOs-bmdFI zo6XsG3R9Z-gVuBim>f#e^9OkI7Ev4STXtUG%y?15v)S5UaX-3^ zQu~S)1}W+>MizllBGsW?@i^!;+%v6IMB$1AW|6V?7U~*>x$xaVp-v^Dl@g_`OMm84 zKP|x7yf94#-y*K0w=PPzDuHq$^wtYOB}WLxUN%f_?1aucIh2)`^Ev6HE`4@0eqxKT zTretCKCr|JSS4(Ayx_$uf;4Sjp-@=h_D)QH1OYbW-V6T#7u(2PWk9<{K+}4#=(55q z+p3#Ul;Z0cmgqMvF4+{ic$^4B5DmYP77%&BpeQcHB2Qpdl)DkmMC4qh>3_!e_o?`P!wcUYGEv^ ziVlxa76EwZ#{l#b>lMzD??typ!C*aTK^(EQ61U{%pSi)W`a_ueU~sVY3hn7HOe7E+0D2yZfVRu)Zt#|1gTs=Z{h(Ob{Fbha9l^>f$9LdK}Rt% zQ3V%J3zE+1zFbwtttA_0LZ@PzD1R# z))(Vxp_=G@R>f>ehB+Sh{ao$>_(`1FJ7L2x44RMe5!x4UTG+yIv$GN^i&=W?m12At zj{c%&2iY=#hIR9tL~Gat(35hntDNz2E(b1_KDWX;0-c!z*Y}Y6Wm{2m2`beK5g zG5HCYMc}B}1JJUr!5he`@Lpr(@#Z{OkY-QQ9H1XgK=RR*E4NH(RF{phFfF-yxeE4p z#J+oaZdW&b5&BwuK~gU2HZCI(Zsvv}n$ZayOfw^6MNETSw=QnZAYxQXXJ7U~^sGoM zA4SUquozOl@^;BxOGbmT`C%f(sNmtnmQ5mC$Q3PL5Wx%BR0N`48-}^Zul?y0KkV!pE#}9%*feD3iCK zO*-AjN5iXS-%;syE?r)&NoHBqTrrBPw13%cZ}kH_A9(?lfR!()Xd*_pbzMW_+61v< z@Wudt6R)qP4O(~>=J7`yW-5<{QGXz~ogQv#SYZA_P%C?}7%6UiTxzj6qN3}NII4ju z_`y-4>7wLSO7`-{z;dky{X;Y^`;Thg$`Z;lIX^nz`y8i2>c#|LO}dx$ZxPw|2I7uX zvIjoB7~H_s4Y@`1ViL%`Ynp)uqt)zV?U$1Gm-v>1&otFdFa?DJ7e_+t1UZ{cRHwlgxHFz_FcW);Kk{dP@Me1;?|fx{1Bma zjG&whv%|UUcN-Jb(v6Er$|O?8M1@(t;s6dHx!go2V4M$pMikC8Yer~xoJO)JMcwWc zZO2nsU@(lqa7ryr^#fo^mP1dffpP;*V`~bwRECay&a=&rv5mLfDufFg#HChI#McNR zW=4yskmSW=8%5Zr1TjkhEO>|lG1ZT7uGAnTTw7};C>lt>E0s|q*0h?QqWvaHm9Rkv zr%@G;H6TH~kMa0{s|!t8RSPL@80)u06>(NY3$mMgAXW1K6$jHQnaWnkM3UqR&wWJT zN@a^&S&>D!rHg???h~Dh9u5K^sqR?+0BDJLALQRv5|n+%tUibuxwT_Tp5tGpX?pYK zJVora#ywAG7j0w(C10p1y3~wWXPRMZv?nL#H^QO-Y){PHFr#Y8Y(wsh;OZ8XUmm5; zGct9$sb>vHnz4;VZJafR_<*dp5Y_FDp9}!4)(6oCIgA=SI0!!z<)+C^Nly1~sdKAP zBkX12$3|2Iy2jV3WzUFMI)ZZpdcmCT3mS7~PEdYh(#upI!Egf0Uh0GDTQPqHO&HTG zKh$ir?%+`oQ4UhVBCKtS3{xR>PsGt~QPq=0DnU}A+S`LwcRFb+!{|X8xDRF3pTl;fk=Oe8n)|1P4yyL|8Lxd=Q{HoX|tD0+o?b zjmi>Q4BGw6loGoPh}s6!I}5>%dzDd>huuPrYb|xn#ECx{CM+r?u^&DowM>69ysGm?`LJM-)2uko&Y)39R7jnl?LMs`` z3yp2bd=Y97^*v&vHmE(91VwJ;`H=M~>%&(H>GqcD7u0-;8)ib5FWgO3sm#@A^%dF# z0(gyt0_>@xi^`t~c%=iZfr~lZ<1D_cyDrxv(>XGokoQ>?LQptPG+^`erHY@XO=Yx> zpnnW#ReVJRZIp@%Dt*B4rkuz$15h;pH;UNVdxq_;12P$c+ zmHB13%av}+xy~{QwU53F$k&COkc%LDmV^WVGxlsKqkf!#aj}5>Awnah<}WCxJ;nU# z5f$7nfPF{JU&czYL6*_gI}{wgfA~Smqc13D39@=-@Ie4jd7S>a{4ooC%wqg&w`K3Z z*}9eL>Z1`weZ|(nx-u9Vr?_@BFz9u#Uvmr~+ENOlDr~U>#mN4UdoDewRyBg8udce? zl$W0-%I&4g*df^WQo-s{!dz6W9K`H|4WPc@&|DV+p?=B;XaICBbujUv9aaZt1au*% z4pC8xOe{0Eo+d5~kMaf9e~i_Ekaj3^)Y(W$uMp(cimbGVH1uW1PsR6f9TwnrAh%o#nqV2B5@ON6z#S$M*BJi*b2!(lkZ;w)Llj!? zZZa6(FfxbMFbXmGKeCE&!w7jwuXf?KIrj+w4?j^kAn*m2DwD2O0Gq4B^%IK^sfw2d z7>?Fma!wQsg}GD>nnAYDS5mJZV{Q%~piSJ4n1pF*5mmdOlq%`0`-a9Qzo-hkt%l0x z*;gK_HiUtS#u32F0W;ifZtCGzFHs^W7jr#IOZ+Yk#8Kh~!m?26<>pc$X9#+hT}!w= zro}_>v2C}8Dz@d3WdemlTCuVV>H&ACX=9POYSJ{A)9O{{E;MAIaa9oA zzaKRuUk$VMGM3#Ss&wGDvZ^pq{Y4iy9-v=PT8($^6#XH`@im>n0ea_xV00M|M0FTM7qXF=o*=%^phG*-#txtSmYAc*zGb@Nk^npZ03vS`fSOeqqe-Zs zbuw8INpj`O$GFhFs3tTYb5%{(FdIOFSPoVU9hY)ap^SyQao)IM6t=?m^fD>N2ow%W zGP#JURTAI1Quv4(fxqP5z0J**(pNAAU9#hSOIL+q77{2Xpe|nF9sR?Yu(JMP%~V9? z$a8FJXvBo#0dd$}eab2vl*hOsg9aA35Wx_*xr^~oK4E7O-lZ|{P}qxDxN6E4-Ccn- zL*nDWh)g1%Z9#7WHq#!ytCCRa|!~vHt#C=O* z&r?HZ)GU@yj$)MP_r#;=2cVDam*UEd1>~x+%Pehyu(eECa|dwHYwd)gufn5c*ql^^ z8e9t@xJB;eN#KGS7XVs6L9_Trk|wgL>NUtX;^m%yrdD+P#&KztaJTuK!E-Fpz6^o; zd2GH(L`(Ow;!*ZSiLvS*7Ov2RUyX-i{BbU)vR9a!nL3DCiPQ3j$EZ_iFjmciG$+o* z+W!DlB8m3{vjhQVzbEoE)*hK^;vU3s-TOqOP^WuuS7|u+&_2pM+FgS ziS`*$kUPKm4Fi~!a7Y7rK4PYp^#;y}l=qPWsvIOwShvO8AiXOV$OxnrWCI4iCiky` z3Rh4600>gn`PAfpHq0V&2qN&@C0Q|$P^jo*Cn-wOq8>7)&W~YI(h$9hLemEjJ5$9a zx((lCIZy~NUklh!gJA^Q^8^mZdmYhR#Oz3Az~jT+MVGQ$Qk{GoS217Dpj=KAdBXny)F`d8nD-0PVVg&rFa1YxtlX5upzy|UR)o9M$OS#*a_YL- zc7SnGz)E^~l$ABqGkOZ~M55)og-_uezKAbe1qzwZ;Dc@(m!S zra^ZX&naApZe&EE+mq@7accK6!TbXWq>eaO>I*Ko

n7v}0f$7diewHEY-uJ_Eq17l-FhKrq7H7ZrNQbYWC07_*wy4_gVYwq>__X|YWD!^nn;Ms zI9oM^vh`ftb?&X4CgNRpQm)Ks<`Qwf$)mkQv+h{Zmm8p~id!tN#L~=8VYat&`YJ3C zKN6h@P7ArqIf{1BjiL%dU9H1U|6`tHdhI$ER7Cx z0@fQ7k5TA#1iJa=CYt_A2v+QrSJVP7A$g+9TpJ6M8@SnW*nxGCt-5(2yFiAUO{s6O z6GduEw)O?oU9y-nuTxQVP(ULbYhn(s`-X0pWq@KfaIjn~JFZAp%X%QnL@TvkKqW%-*f+o2;eO#}!PlNZJhd zG67>XD~W4Ml!Z$7R@@xLe4Nz6`Vd-Jp?3`x0XpX3sbZO=M&ZjI*`_sDcBdJ&KH{Z; zoWUaT1OZ$saTcF@0A$nd1>tEf$R)tiXyYSRqV561aD^mNEz@s|76(|6PG_bO5@mF4 zzf%5MmtTIPFy%|6RXax|{YLkBj|3RER@;O%Su6>#W5LA9IFC0Q;%_4m>LvPd_w}Lg1x?FxO3T1)<34p7qO-g4H0@Jw3eaN&{TQ2 ztsir5m~g0;c%+=5Q7VqF&db_gNL;zZE-k@SddXE5S`CuT$i|EyyKBOdtC%SPea7XK znFRpn+$_GL;69~JWhWDEZMn=U#BChSE;C$3TEthleXSfz6%}dNpt;*&$8({^Q|d#;(E$_>jM{Hc-Hv?;HGr4lnyiT!x zvIa`;gr+DC{hU1?Oe|K6Rv%Ge1L|LBSEyKZ0b1R1O$5J71>5AQA2!iR{RLEhPEC5EpEy4Ul8o3uZ&Q6W02> zjqG)oa6tD12*QudBk;|EGtqNvtJbCP>D&s6e9GF~Z9x`b#+TN@%2&Kgdq14BI9!Fr zip;ceHZ(ZIxFPKfSJli!DiH@Z<<9I_3VenX!Tc31L;BUm3v2Ho?YF_P&&EVmf3k3_ z{mM-gEMCSjgL{q^7~L2H^`rchw}` zg^rT{05SalTh+y)6mU{Y@TX$W+@xzq*-o+=OoN_f-N%Sxw)e7BujR@leqj>}fWbsp ztsxM7ii69aNgPwF-bkdk+O8EGJ*BGMxl#J#_LVO8cL7Wg_05(_bqn7NI~X0>*x{$F z+`tb;Cw3l^UPIEjyO4YkZB_QkW{Q4e;jQc<#4Ulo5i{p({{YLE!(AmAN7{KYjQ;>D z#^uW3b);obA8dnUz0L@;%D|KV05YzO!jth1dWdpfL0fs0HN;!1Y!yU4+`opW-O9w)Ut#>&>hsv_J?)(ch35RG;_b@+rY zw8gFp9d-MJ2V*R+vI-;0GT-W4fH>XC_tbUmaKmOW6oU_86#oE8Zrn*q>NbbmHH7UUE>3b~2;!r{FXjUC z?p0SPYa);avZAQNl{)MT5CI$bV4IrpHS~tY;B)3B;P{3W_fS+=)l%t91SKh!7SdPA zQBm?tLPB_}qN3A;yY+Isav)XgZf34pCy*dA3~WudW5f@>7*u`A(mpd8Wz0AhViuny zT0EZMgNW$#J2at?bzIY97KfOMZ3O#?D9|D(DS1(o7&P`ka*Z;OE4ZOYrx;d3O)+`8=@+LCSd9GlWno zQmX+OwF`C5%~Wxb zT7Y9OHgHk{O&Am{fLQ_Dg0JJeLN5rIbjM+!FHoWD)0&Z?W1%|6*_(S1Ohc!j!A2OG$d zjrfCAHnMfgVQ57r9L=ql80nS~aJ%tMN+S~rmv9@h%K{q0S20VKeZ*~=!-%1B>?JiF zTxzmj8#%I7!Mi0lI#gJu5N&R9j5S2snp@^p+doKMPAU}DL{2q@(Q^|5*;exr>L*l= zF^cJ^?b zdFl`gWUmmRyo439Gvs|rKz8H7slIuG6$7{Hk%bYzcOTG`^nvZ96{F;2NC-aRnE)>_ z@1n>cep!g7XyVjOF<@Z|A4`?Mm+8&$fWpM4qV;tTQtg_8zOE4_g=&f$ZfIyi z>Wt}>s5kkEvn{ibEhoQE5Z;jmb?=58TWM&A(WW|xIB}Q&Z`2iNr8?rqhq}4c7J~s{ zR>4?Z-gz7VimF`F+wx_MmF)>$cN57|UpCjPj83O8f~%8MSxsHeLRGQ7O)K0M!0gT$ zEOP+ol#z%WysKc9E0EMtww)r{U$u-b=HTJDYsfuk;yWGO2)qez)j(}RGS93_a_fX4 zdMxC~!V2o=W4kEiYGV{1f@;9Z1Lb=o$`P}JM7E(urtA?9r&}FU~3;zJpa~t+T+2}b}ErLSn zj9JCnjsre z42IqehnuPrF zLi2XU?Jy*cLZ`%at6Y>AbM7w|!E`Pv)&R=n8`Pk44lo|PkEBwckIxsrQgsGgHjW-pqObbM`U{w%$2 zY19i^orG3BS1>-}TvH#j5qHTMPfrsq>J}4C7x4=NTEV?UWz;dT@n3J5ZF2-Jwhk)K zL>5bo^eS4ca$OtR$$io-!d1n3T&3Wag3vwF4h6&ztEoqaGP#uAO)gmR8eR;<6j%i9 z5f|1MHdEp#q03UrJkGjh>-I-jd;b7ansS@gH9;lkJjG$I%;aSiTL2nG${Al>kRG{< zSTx91iMCj5M==~jg|TS+i-20_c)lZGyIf1A0hX-7A~Len>TyzQZXS ztVWFK7DT=^IhAijKB_=)yNX^>T|qa5ay}SgE#1(SieZr$v5r>2u(yTIIKURnVW9h- zkd+@zZX*0lu>!HnC{*ByU_p%cZANve1v-=#6BsJ4T)L@J8OytI3Q(>tVYcIQq%syK zJkbpC2oj9&Ja!-T)I?mEI}xjO>vVEnMrb& zxG!ZYD)q?FiEJQkSsI*~ZSYsb429eoSW41X-+-dhV)2zL)3*+1t#><>49Q~Tyvaq3 zQkc_+(q0knQv2+ZH^lE4cC(vtO>@I8@^#u%OQ5uvhTQr1+oJR#3^xR zhvFXb#3Ue)$ZA#9Fo>-lwl<(z;tf65s3Fi0S^I+kx~!ixJxy?@>OM`RR{4STO4b;K zu)W)kDAEwKq(W3>X2f8Sd|7^#d%1Y3U#gr53;3N;D#s}p!ce~2fFwo^RltF8ZXwR2 zx+5^t$tzfa(eKo}zLnNW^mKD7t8JPS+!x-=xl~1rz%1&R++UBRSgssSP65F28?e7s z1}R^0e34iSDOorXISmTAaICdmTvaUShFN%usQm;`*-y;AT$?YVHUxmbB}&2mT*@^s z=OV@=UL0n?mpP{U-S*0X|>Ta#ScvgBQt0iaoC z*Bm^3^DmBIcO%|L*xPW~#O3n@QNOv>Z`=T;HF3;!YTJjBQd33tt7UjAD%k7QFPw-L zDzUqiG=0#KQnthQ8@l_gfQR*U6y6_i>_{AEG#ogV+aOg!KuZj`z0=W5N0Wl~BP@#$8N#@$hisymMDXk@TiRjHt%s#H>kbOj7Ji?%gg`m|#mR9R?k;Fppxyvjg zS;E4wO)T%2YrG^t6?FvEORrTP9n=j+PRX2$jaju&wWPM{1yY4tM^BxWLODfbvRT+W zB2}w*>H&2to~3OzI%9JfylaRy^<+Zg{h?eL9B-PAIOjb?wpPTKz}UsFtkc4rignUQrV1P*z47;+U6QM8NY7-;=L!=!9$uQ|>z>!z~MBG%t)!EvA?A`c5UL zn{bBU6kfr*^C%ffj0-!&5G-cCl(IO&?_w4qXijRk**mhqU6Qtvf(kMRNceXZFYP$2 zhXyH>1wxg3h9&Yrb8b<|w-6Gh3fqWkYh9r4r9>N_CnE~qa6zh-tBnY;5DpO^T0vhC zbvc~A*6m(gY+h0n{{Z48@let!x02T?a(jtEceetHX&Npl0eF<4dqk{G9E(ml zpB9n1o3SHKz@exwD_~mXZelxe5ordPi&SlP+*<@)1ePqp$jkOAjNfP{GNZT5Dv%+L zHUZ_h3Pf6k%s^t{$zh{=Ihz=~u)uV&fGr^vxcowiL5C8+!M2M0qEbPot6}i-9UX3K zE)tTc9++6S4blr6@XBGCK&0r3bqtgf`51Y|1xsBF2sFuJ#mdyG?lf?^d)a7NQLfIW z1E`m-d}Tn=+5^%-DvB~tSj&`KAPCi{g{iRpNtjiSa1Iwe5eCp6@^#cp4V1Xh!R{}B_#&(4wB^sHhmB* zxPe?Z1XV0rySM>u7o%b*3Zg6_b4WyL)sva>lwA$6QGCSUi>X@yG`fLkG52gnuM*4% zYUS+`?LH!Un<#U!r+m+W1_gY~R#nRq;aQNwQuR=WG(>cXhupa>ih{f?Iz-QKq!_@I zUlDR9qf9jBP-1GK21HxQKpBM4+&EJ;r!u7hS2&4ldo|pl;etmvgH1#WP+?U9A%#Ti zFe(P!QYFE^QshJKFn1+lhPxm;HPTC`8JSTA#eEU|!WgHQQNe76j&T`#eiUgsSDhhM?Zsw~addD*w8>>^+Q{_%mSmnk!nsXh4K_jJwPjQbz*X5Cevc^b$ZC|oqE`| zo1NZ9!pcOockT!aq+E^MqRZQq;gtg0^%U0`71EGe)Osbs0Oy8e)p=!F9>g)EIhNvw z<%!qcZOsRVP@50l73$03C0|y=@Z=(hE~AsHA%l5C?|T;kY1{_VQJ5ba3@u^B)KCB* zpj7*q{W^yR&?QptdyE|}JJ$R3M1jalk>BH{ajC@npW$`cRHLBNlT zxOf*Jpo)rUeF~^CBAkEZ7g_3ks0FaQV)||$ma-RWT)|_Knv9p*j$&8BzjFm{+KACr z)Ks9h&|%GAfMpLC(N06uFYZ(uXiov;|Eh zY=yepE((4yg|%jxkzc4vmCQuJC+Z8kxG?EUBf2IY`}avJK>W@Y{lwdFJFS+$oJHJY zxU7STR5EJVNt$|!5r=JA0lSRBvGZ48i)sv7;S%F-iE9xhAah;D)DTug0ftW*D8#8B zt8&TF?it2!w&w~);-}_bmd?x02}0p?>B;Q(GTm>23dA}(f!ZEjTrs-jNu9w@5z%-} z16dB@>?DGonN*jEEoQ(+@PQR;Kd}BNiA^~pTWF{&RX5EWI;a%2L*B=>@tJb&04ytb zfVBYlBB(5YNq4f?gM-vD(bNUdmcj`^SU{;$kX9*?>Nh7)ZH8qUQ6g(vLbcCRmLI5d z5cL*uDhn+d)EC{QK?$xdPC5;PgARu~i)NQh^5uo$(MG#O8BzzHBG`R0v}BmjgB_W6m%bOFjv1M&_=`Qs*R9#Ib{fvOjrymR%9y)!a>GKKO=_S{g<% z;rXcEl{l60LOS{=s77V47k(pK0SF4$@V*N*y zFW{ETSKJuW{zG~Xaimk9Q#OAw^&>1z80x9!0OZ1=OJ4*{@eR@XmYiRSdj2TeoA7Q8 zSAE6mlB2UeD8NJlpDZss*arQ^sGq_pO1p*>(pV9Uy(g4r^}I^Oe_(28H6Gyy3x#2i zwxUo`aifL6R=rQGiVz+q1!&Z&oul>g;tE*Uzf#029yvS^8;R7myk1L>rpI}6abc{v zh}(6w8todg5m8nk)!VPspk-8B_lq z48NkATPiPWY1zCtmdNH_@vug*&M~6>%%pitMtrC;lwJG(0C9B%@FEyB;>I$T%`C8KG>`M7I9-*B8u_$LtU>Kv-6#9s#K2q*`p5VD^* ztc8A-sy}#eK!8T+$_YvA?_n5(>|jQJBLd`0Yid~WUi)Uk~Tvjm>UH&JmM9Ko>Q zk1SwHfmp<%9l@ya5b9b==<_TZaTTHcMsHWfR0zAsqlh_({X-ISDa5MSg%%eZ zz0XchZ)|a=hyeMxq9EO{L2W}vH+L6nh!M}%Q5z~YRIdT^9aG5#Rylc>l~l7`2l*)O zq5zjkbq8042jF{;_&`N{z2Kmfj1{LeMrBdNQtByLC{*JA0I^(+@J5hpnMxe9oQC(# zO7cNUPQzCPS)ffKKbcGy5Tsyfe&SynsD!)%(;9iQ3P9l>wurRz2E=TxSxcrXKim$5 z-1Mwt7O8|p%86xY^(Z}MK<2oc`XI{}WTeV=76a7WZS}Ie;`x>`$|G3S_>%=$Yba`^ zueMPG2(9o}_8>4u7IRC)3|!=LM6>{VmL900~B4;rf0D zh+9k2atW(cC^@kT!jPFND!GQMQJdVIY2}LYBMmk{5JFD~r8SY`9}sXpA3MoGLfy}&=Ebv`{shP6S_XZmtIF|^nPGi9;oXQgjlBj!+ zBe|y~#8-G?pvB|~PiT2aAn~!Smj3{5vSt`jHO=)Mw!yg!2lXj5eas+Y)w}f_z7i5N zftCe*%}s7!ieF@Fot!`YoLi4(!?85t;2k*@_O2Ga72%=81f(g1-7ncLRr;MeQ`A0z zuX3OH$VAcGaI81=9_Q*X#;%^pQwX|U?o)!UBt`UMm9NCZAm*8_O?<`Xl*_f@h7(YK zw=sZWLP|kUSwE|az=FJh2GF{Q>NFAfgP-i9GCT%81}&uG)7lrq3bDcd&K&Hn%w2WY{xq^7_;S;){$m(*&>eC^a|9Xw4~1AZzo?rKX64&`aR^U8XS6 zI0C{gx5iw&EvBOcXKSmJp}6LuU_`{3`-@I2swJ@Cc9`HD`?`&sIxXHMnh7AhUIO6(}}MG)XiBwpu=ax zd~K*y?{M_yRfVXs1qag&3#J3pvh`yrhK%C9%iMfQY6Zh93G7j#pF+wn>PV#Cpg^MK8`-rZcf)#lv@sCje*ok8s7UvyV zyA|S>R$L;r!DJSMO)@72kkB}QPe}v~+Efj)F3zD&v#8*S3fPP)m)^j$)IxDmm5>03Gl*fJY@N0F2g*SJANGRYZA#5v*^a}+rK)Nu$jYS;fpW<}h9nnsjvr z<>cENtT0!Y9mEzApK-yU4O78C@RnPL3M^?ilP;w}EMUIMR3fffvt70}t5Szr>QE2i za+p|1CaQl}1~~%=KWGiu)NQ{oO$~lFAnt4u3FEj~F+hhrLuD&&4=kp~)Ngpm8W$E^ zyp$2jHBfq|Vl-q$Wnmm45&%mn_X`Drqq>O8gNz{Z;xr}N@$XPQ#i?^^nW2c}tk^0y zTx=ZTRTE9ug(oKXQuOc;7YIOL6ncm}Mc9M!1xG6jMpOd2xXGfC!bb--rNvzxTnMU! ztMVda4{#z)gIHJ0c0)k5Ul&&ngDSjHyq-#xLByg21K7hkKK5|J_#z=?`q-JbPEMxy z^h$4V5cg3Ow!p#rOWAOX6wECVJ9+mASuv`EHpGIiSk_~WAV@yq{DyIMmwZo#QGdwW zgryzC?+ciuc!0SlTM48O!wM7Ua!cVKY?-h>h{B5{jY_v2HIByM)qq$PP=2M#PaCFQ zyl|)#J#28QYs-+(!v<6j2Zmq)N4Rx==1V(Lu=5RFVFM#*WvYlK-NRchMKt#6EWw1>|((^HS0C1K*6tP9ms~Vxk;Y!Ep7X8N-$7juhR> zo{|U=7&ggsK}E|=T*9y}$xsR>Wy%L1jEOde7ZS1SD(ShDe~MU%QVhJJ3q~wzGbI4! z78Dn<@9HjVvF;nDe+>Iz6$kEmb| z62MAcdX|=2<~}h@CRGvi)Ve_*%oOeNR8IW~*H5Mj_AVh|B@RW4Cw(I3hZxRFzDb~k zx-JGlW;Gm?O8#EG%2sxna;n<1g=KXC^-#d}Wp5a;b@dr<%EMXsh+{p|D|@HrEDjop zv=zN}71rMmH55{t;J7&un?HxYi> zTuL16Ov?{)yfnWz5@RSL6`LsCbvi&}&P*%Z8vg)N)J|(jMlcJP;^Jv~Gm3o2>_UsV zbJ?g3E2!=us@GuK*cQGRsmP@0zjrh#lnO44s9h57d}0K2W{J&2HD8#dr%10DAyKjg z$}nPvkL+$lIE)IZWF9N{i&ao=#5(F)ms?SwTQn;zisAuP%07$`vt7o8-oQ493`%J# zr1uim>_~w@f`nOt=A)!4rGf%BMU<>?ijjnEab&p2axAuCRld57=JPOY_q|3Y1GAV!2rMis zcBX-?gowE2T$+qlq75PH1l27mrBU?5VW}0>q9f^nHBzRcH?6pU?-6K79++?a!~`^3 zmla)!$#{WvhDJQmg$5FVe=4P*+hN<1s;BBL?l#7EAfZqrvdAh8t9`;zaL{)EYvv34oSu?W1|asA z*>*$)@x)*esM%fAb$Q%Vh)dZzJ0&evTrk^ZF!+YpE&v|cWoSfj-G}0?AuF^Sf{ZO` z@9qFm+nUI=8bv~!NL{|Af;eKIgzAWNG`TXqy|;+F$^PFfJ$xJ%p`6K`wK2RCSzH2KCz> zQ8Hw2whj`pFC-BhmPV>sZ9$Q`B|~&EV8qB7DqwNkt0z*(Ahf7`n;OfD9E7gdiAW8y z%B`PR)AuMqQz#2(DRPTBZUThm0^#WCl@}7%xL_&(!nX^!?gxsNiPZg(90|5ePa2V! zq&6U``-0R8=#7-6dxKY(sX|IGDkADqylx)wYmxxi4}1Q+M25fmBQxG+HE7mUmimoN zgG#6g!4*)yMMSs9cA_N-$PW_0B;tycR?Ip-ro=EprBzM=8x>PS$eWLXa&TPd|l zRN8F`V1;}20XJ?^CEe9CP$y-_rmO@5ZeV@1s6MB%IvxkyDTz(`=2PD`Hyw*?piE5e zSBfVLPDmpewS&fzr;w}WUAs<@d9OGYP)cH#oEwM@E+q#{%L@9AMe;HjAGxTBR*o`v zKbi{TeBI4tv*K0(AW{iSh`($o2N=Mh9QPg!Jx+LDx?tW-s%8ER95~WZ$mt57vEL)Zcm~k4l za>_3`fM!ZN~MjVg>#8{ zdjMmDDt@A+UsIK=3hn_}xWi42oayxwVqKLjLt%wOam$f#m1a**m<0!jzV^x~Lx{FY z5<65570PI#B`I$54Y3TP6`e*KO zXABDz<9axNu8MeOcTmYd)nucYh`I4Bbv9k^sfn}qGJAxoERLo9GU~)BQw9a>LsZq| zpeoE3$ctK~4ve^hu*`D%oV&vg>!fb>VvLk_2$ep%)#;*|^d73rN0UC6u3;TZnjWFjC>tB8B^wrArIV zM{iw$x6HvCg`agQIk9mm;*snnspv}CmvAyKLbA4`Cd%d=wr{71ny%nOhOd}BB?9^I zDG^e{K91rpoI+_Wv!*Go(<~UPAU>ITR|EAhJ;!e97S+TJfR&fT-1g2AqBhW)*tr@C zW*v(Al?=~@Qwx1cZr28{3YDutSDAG{qCG&^oHuCiZ%-4VkN=5 zdg@#~wcG{d1GAUh3?P=CqGOQO?T~H3%|uoQ(o|eWQIp@qEx48gA<<Dg6-o*^?z8+KU=)?4w7eX%dKRSzNe>K0F$sfh;s(5XB=MiL34>%S|EApuiP}{>n{X zvfy@IePlqJeLxy6eKQd2?5OJo=2=s&CAH1Oa;dm!SG!?lp-M{DVFf@ z4b}EX)$lMz&gYweERShY*jc-YvFWXh4wqlJN0Xi)qFKzWg3(>YR-ckOe^i#DAHb=X zrngA6EL9y7V6qX9Q4BVpaP3q+DBIW=8{>8v zq4xkc-kT-u!R`P>K+&+JEUv2?m8aQmQ~iQ#-c-j2s*8Y;M3FZUla`X@CzhU!^;%&@1{#*H9gs)3aY<_s$QRJNt` zZ7mJ>DRO~du}n^okTt$U9z}6^6B`wD)y%sz*I87~pCra^-b)It`e`7ya4UqHH5}sc z7MzEHs8q!{X@ydBtfo59k(oFG8CV(rpZ^-R~_C#;4%f<0Ddy zjAb0Qr8S#0UKwW}-!Q11q9cqG1s$+Yc~eWKI}hw^XWNco!a2I`0c@&BI6ELJ_?B(h zMF(QjQ8-POP@kCl?#F?JWS*o}o1K-UeTyScQ~i@$FsIBWt~9yL#jzj}${>>D;wt+w z!YZnMJwPHd>LjP8^(>*66YNVH8cWJ$F%gVmGZ}N{oQw#95lVTVIl3dx%Y(KbDPt3lsvXFnZuXI@2Rn7~rLX#s$L>j7>Y9d$~((R1L9=ss7 zFbkKg9kQjax3Z0LBCfZXHf_VeHwHJvqEUq$Dpe&@`b(<2VVjwuBnw)6&S0|C956{> zl`YVQikMWfc`~^{`eI#^iMcFVW8A8wRKSp2&45aj!t01t<&RKZV?!-!b`ws>t$=G) zC{q5TR1vv**rj5d8)}GQMj2X!F1DY-9T&|1^tIVY=bHw>&Xd#Wg_W*_CCn z8jZaqYs7{?b{IQMak9a!#JP;C+zVS!K-m;=;E(|Ue<#ky-Bkowc$(1@; zSX>2##)#^p&_adFp>_C}y`lq6WxEi&Pvpd60MBtOE18BlaRS*(btCPdWm2Lxpju`U zl{vv2of!u7kRsOf!7ARhc~Di%3yBw`Y4Bikv8+2|920V)xsg7W#8r*=ER{vMA)yIt zsvNZxyg{{Y+< z6L6~Fh_+TiuA=p+dd^4~xU79tcSmF|CU2;Sf3K(+8E;adv4#uzvInqVh9ln+%ZY1I zlvKaPSg9#EBR-bKAxble!qjfa?xA_X?L-gZLRSKBvHt*(aH%LLw-6DS4aWfL>Y(5i z^9h$%`kurG7tFbqk&306_DgG=lGw((>Q|_({M5Au*C{G?ovu||F3p+@E=w`*6*wsF zBoBEJuyInXAE{-yw~b{NY3YS6IOMopDseF7zF;DeJ~lX=pvE@ZiUGqLT7p22ae}RU z^9L;)yK&GgQ&hiu6~+AAHCHgyafdjMj#0kA90;dqEBg~rZ`DgA-k{4{Hm>Rsrt9#_ zAuHrbZa4V_Zt~2*;$>NUEINQ0r9g&}Kusht4HD>TVA`XyUh3o2;vMA3syQfHLnjZa zvDQcDHwHV3Z02I@u2~-KfnvVU@Kart04qSi%A6tx;$H-Q##1&1jQGegrFk8K3g;}S zn6w(!N>*3JTvST&vcd^!B6mYknf2mnXPfdTSjU@v4K`SBE)CdgX-ha4U zeqq!mPv#9voGAAd>)d&b*fWpDtM%oO)$52kQ31Vs9Q z%He<*k3>~#%9fam{^LT%V;Qj_77R`JVq}mJmZ(UM0VrA71KW5fMjtR5U;h9hyQ7*x zQCtLRPefHz4^b7%=5d~3RS3O7r_2FR*lNQHO1q274SQ4tGR3%*7{bPqXcrh@Uoa5_ z4i8rVrumu@xt9Tg1VJJFgbP6?hdV73E((*fEgFiXM`|N1<_)P`kQ8exRyVe&LNJ*DOd+^LJCxYbrP2W?o!yXRd>uz;xtr1jJH89lH#<)0@wzO zpnf56ZsG+Nm;wlW#B(APO(#C3pc@|MoJCnx1NKD)1P^9E*g*ZPyZQG5hNV4+s0Gcb zW_y_du|RJUjD=ax#A~SH$c+g`gkG>IQME&HinZVcLij3mxxls)-#x~@Vd=cML>FJo z2L?U*BM01be-U6OF<9+=MBPh8aPdHl1IyntZgC$~utF>? zZNS#T$A$|%EH3r9tb3RdEEOn$VGM?VE@}r>To%Q}+KafdCeES zLC&GDiKb||!NjSfcZ|wOWHA6e#UQ)Lgl(xs2dTGGv&)&Su$wK&*stjYrX0;21$@fn zsNPI^VC7GUI&?-ZcGK@2Y z4F(^(iB)p@fmD;FPmvk268$U+U2_!`Qj-7(Vt*2!6~V|Ky?}9pqczUp2AXR*jaG~9 zKLn;iMJc=9p%nm)M5GB9E0fxC4VuM@L64T&`u83Bsd&rKB@Xqm=-C+`L&mG5Vi(yh5TQ+(iY_ z#-moKI9N5N?~03O8ck7T(F*#=K0`QSgTu10P`)G7MHpK>cKAr!lLmPfXrw8|M=uu54ki4R1{Y;P(tQE-QJeiB+$lF_uLQ5;!-5W0Yu z;dX{3LYLeZ<;xy2T>>O9V6OJ(M%GxV$cVO`AOT?jtl|Z3Vije}k*?(~+s#ob&^rND5- zia9Eh)+>{k0PNx;9wI8;XAn^3uvYHwB3IO_3oH{kDl7(GFui{=4wKVz)K_d6*eI`7 zHHa;y38%D_D%Qh|#e@w8)rMt`4cx|Ct|7@$OZO`(AVw>NXH#NW&LDpXw@L67unMOv zUXz+6^>RzvO1Kq45q!jHA_>FX1n)7ovh@RDckyvl*`W!XO*ukKAd;W3#dzZj7CRD( z7R2z4wldo05189Fiqd63G!Ra})Dl+NL1*iUuXmOCAXVhLWDKhjC9aW*uF}=9=To7# z)X1U%qE{qmC?PI6Q>H3^YY}kWF+98-4T+d^fQKw9Rb5VO-4D1ceSToul*=n6 zPGV_X$3ms#9LDE=lYk=*t0D;{;t?qgYu^F$LVMeLyo( z%0}s{F6j3vhTI|*TN;mS<+oxTbp+(vn7s^Y>6hF`m()OAqZKs;vZ=_Qfiewd5iiCb zARPrlgBIo#E>gQ$#J9--6%+zEG6|Rbh8Ji8U0gu4WGfR8GU0T?Q)UpVA=Cstz<{#K z^%1Rv?Q@BA)Z7-4jh{tOA#!?{{Yya3IH>BJY#es zaVW0Sg*aice8*&4ctCeMxLTyig`t=EE-7UH0B@2$1Gqz(mhYc&J6@%4vKG0i%&OkD zJ3e0F)w+dcTrXunjK4KCZQYi^zj;#6B?Xb*ZlXlPrd?In)c1;ZVxxVx-0$#8rUKq9 zhsep4hzAK4u(c}ts6G~Zo2HYPP{IUtErkG5B;@hogam3%CQGE3C^f|zWtJt-AzF&z z3#-0@79zfRhytz++A{qLiNjfQnnw0fE1Xnov1wvCp27;scQV{TWZRPXwf_KdsL-ofd|%S684UN?3!LE;eM0%^45DriM=Rb&n=!asKjmWwRZrH#hu1vgozzRja zBZF1y9#kAy(W|Q(hh5fyu4%f)5VHH>gD`sfm#XKxA+#f$zzWjs8F@HZyHddr>e4mD z%qxt@m;(=)Omiq~U?u@TUvR7li_$WyksD@=Ix+)(V9`dzLW1>)7C*^-85X%Ep;FJ0 z1susv#Rdu|1;w>Y&@h!JI)p#zg`&Dxn^ZV9p~nQcCLqAug(Y^x4M1J*JC#PG6~6EB zD$ilutUEOTBCi$gR2GcU{!K^`rzw(!JjGl&o{!lZJeL5|Y>2pJKJ0DEt^&gLidWYV z;JJeOji}hVH3%Aoj!S>?F5h`6p_IFVf+$*o*&8Z+_ZYfWlB20EJo1AmWuvhPoYXA~ zmijR*Nc@dz48mR<Y!>bW{}W|s6?gvf-B&N%D{Z0 z!s>gggJ}&+gL*(2VP?%PpdCG2$VqeEr}Z6Ufn!~?*s412FWTek#;1naQH}e#a4>;z zRA25fT8NV7%~Fb)H0VWdsc1$N9wibCsTnQ`x~?h}JA+Q_je{Ex7|VSG4PP*Q8S9aY zMQ_Xv`-+1>>4gOZF4l7wv4kOkz4(DB+7MC>)Jl^ersb`HwfU64PShPV(Gas{A)!&7 z*#zh3vKVYG`97{3UKgWfo~*>k(E_8?Kx}nP*<-9q;ug-PX37s+%kI4XWlq3=fp5Udvdu*+Y$mUASNgq{T$eN`FVq=r?dBXU@v9|@!{W%6>UM0J!p*Q> z;#e#)N+3dUGKcjUXEsYV*|1H>3=Gk1B~w+yllf(`m{;!Srned8mTg2p?jWZwKH$z$ zFb>LW9rnY4634a^=VO+Q{!68l^5P5&4(3o58x^rd%Hrkl-2B8tKZwt?ii%|+RVzvS zT<$~P62&h*_7P?nTXi-lRnr9ZINXmHki$@E5(vc^!XmZIN+q7Ach{*#{GMQX!Gc_% zRyk7Y0uusJ`$8;|;?m|bwp=&02!Uy+cSNq>mW2-$TP|!qzxxDS4u-##3+7K(99mz) z3dx06GeP==S!YuBRGSQA)FUd;rP!8$9Y#uz*%SxbG4jQy1_KoGSM?B}1Bh7?BX$s~ zgKw#gLVh5w0NS=H`lEnzCDLoqTyU%R)DdJsi8zn2K7}Q_Aj?W16-89Ow)0fXb2J>v zc;|8)S1cb8eH=;Hi}M#T%mU-NNORppppO%uML7!sD0nKCZY`GK3JD%dIzg?9_i_8>kY542Ufjby5b4b-o$5!PZ2 zRsD(4CNFTv_>{b)?@&3+t#>d54BmgSP)A9<$8#E$yTa}UHhs%fYNjBGe1l2x}s)3zy6-mPYQ4h0ahYvmz>73y0Q5p{_iri-IXaa57SktEe$T5Ei?R zzU5JPy{TN=h{Q8g5T#|8J4LRdxn)BTUk?y{v3N%YBg#vhAYlMow=Q1FVFqyqh-Vk9 z5ILL!E;igt$l=68Ig3JDJ}zH~--*w~Mu-bp9HR{768!8SK&i4M>X^gO>?Ecx&RCs} zm7(ikM;{K)N%@|ju4YaWQC%Pc!Vty{%eim3X>QxZ9HVl(l6A!lypn%ixXO#K8d8Fw&Gcu+jY#Lc>i(EMPpWxnp3AxS?Llh+(5W zOHt7Tp*U?y*d4^_t6j&m3+|&+SwA3XWTSh5xW@kglx=#V?jZ2{9Lhm@BJf>smky~x z6)fl(ltlb77H4ZKOT}_skX5|>aTNmPL$OwZ5VYZ(cil$i@;4GbDggHUTtsv>irGTN zawS1Z9x@2fQxwIaOkqq(0gBCt><#=&8xo9Tw)KSjldBftV#WEmO@s3;mawQR(*#N$s&avajJ6GZ%Ta3c$p|!4sC6`c2wNmS zB3#h7^1_OS8MU6WEiGBa7zHeyfl<>0FiZacQlL?-*O*>kU;UuqFDdR+5PKV`YfCR% zsPGXv7@(h;5D2mXcN7hA3y=#k-iLikuJD`*!D1n7l?c%va}2O{VjBHR<*~WujeCkP zs?jT%Vb>s2rdAsOFhP=0nYRrf?M++(x3cFD2t_i74ImhLWjOZ=9&!k>q6CXzF`0bq zx$dI4EV2}N$y0a4M@Fo#!vOFW9;1icL4ZuH>MV=03b~xy_clPw(H8n(Yb2-= ziStnvdVmT-tfy;b7I=A{hk|iRVnDpbZ!aU_Y;-f2ZsW*GH;Q5@#K;_K@=+Iylp1iv z4G$Xs>LEcPwwHt0{nlji``O@e(6h60$!J zOdDup0cgdPG4}-IZyjW8SWO!Sm{m?ZQ*okG2QWht#Wat^E28a(Mg-&BL1(~Ou}flH z8QBKV*;l~8t`I|+8_cd?w%Sx36_X8%lI+<^UYS)C3hy)AZs~$l9j2(dm3y4p*j2%5B5)x;69;fMvBaui9E!5+#bXLaub9E{ z3t4g3(8KG@Aw3M;klJfLV*zk9<{PEJ2DRT%juypiI+>7~U8DyyP4>tZ79zTs(Q>(E zth$o1*w&0=t}=>yfYe&TePUCy19R>hF6;-ExK;7^pR|Wf?7-hpqJ?n~s9J&Oh9oRU z&PCb}bgIEra_q7VcM}c-#iMUgMnD72T*Me9i%T3JT8_QsLf^Az68sZHGli{)t}ucC zk4RhTY4Z&`WsbEe@|4|IQne7Us17TF4+lweE^1SJO8|;jFx4VnadixD5OQVI1bQXB z5f)MIP!n%5IEC}zN@Y;kT%yW{JX|6fNiv3V;)uEKRq+6{xbe+>OO5z2>BhR*s!Q}NrOLSTJMwM7D)W343-s4|D>L@ruj41jLsF&?3 zjys&RyCJ&_E3tztO^KMMd_V)QaY%12G$L+BTn@@E%eZ5UCKPSNjeC`&(8V?ZyyTR? ze-MW1Tua$r?qQ0BRf5Z?{{Ra0u=UYzxmM%hfD-%@f-QiFf~nbafCVhdD%~VU2_bd0 z9KOL-c@-~brP)nb=b4tn!;Gmc&T8UKHf*ND?J-qI78)D%Zky(Bl?Y37;YTHR9dh) zaqE~sCY%a4!hfIwKSgJc%Z`Xa0acPX+4 zfmeycEPw|G;fkZlUXvio7@>KtD)umK9_mtxQtwg2_=+?Nr(@AKxpcS+IYSmJiHswr zE>f$lQB+QImk>q79mBqX{gz8tu9gdTda+P9i4(E=1Vvn^grXc|TC&2U1(xyA4IHs- z6*(ML!DTKnb8a9NQousoV%Qi~#-j@3pn!yS5ggSR9m<8zVA-{*xZx}uaS>f01K!23 z{L0VVp#{T?IEbqzxoW*cW6YyO1RTLT7O<;Mi*PBmLA z!KltA4Q2!beB4cVB&fJ6^AP7XlFT@Ym46XVwlFT(9^&3(H6LUSQ3RnYVSA=}xtSK6 z5Vr^|VnJ`2PE<=J;$;AGmaD8-aAlMg+!9p14=|R2?g1z)I>57C;_zUI=~iWejqVi{eF5-q?gauaWI1*CCq7wpAG z#<8eUsD+J~Y0O3-BBoT}h;u%ox`X#9mbCR619Gk)rMD`~iLNT=$Bsyac_Jk|M7IO# zRlpQ%)qEvULI(aKnny$Ym+&5Q)*>UrZj-63xGpK zt|}4tHf_pD)h^&1Vr>c~${A_|z$>r~T(-QhxkLRyN(LKKT_uXUiebx@YXZWmQHWy> z!WON)MYtL#I9=`7iR8YbDN7>q*Yuay6vEDRTo9@iUx+Oy(b$6U-w{h3lnIx;Ov9P5 zKbUAge8qboCt`^U`G{#E3fY%K#Jsu6msn|pt%17K1!lrTyC}H7H}L|>fDQYfM%cV0 zEOriwV8lpZ@?z ze&w4W7Q)c^Ws8B*cf_N4RW7z>Oj#GGOG#p@0ssq%%=we&mFf6sZoJV06 zi-Z`CFgP@Nhiq;sSS=!Te{u5@kA@|9oakm4S0Rv&gL=%0)K%~9H@`x1zuAD+u9WeV zi1`~0Ab*TByN%MNIzo{`STf?a0&sMw_m=(2oKTKfaULkavt-78`3@4%TjC{taL_9j zYNGQgr-jrI1y$50n~~L)<+lb}@p`L*6u*elH0i^mk-9UGkAmxQG^W;fLX8`;xrP=SkjL$U5U^ns8-2V>o}rV zlyM5G*k!$i+!RA4QlgX)SXWR_9tKbccP$q(bM}Qw$XqM+E&#{{b^1W$rw42)5AC1E z1f^j5x@KWE8-#6$&=Rsk*{j8tN2Xme$=VeGl6BZ#F+9Au-l`iDlu zqIF7bLaa&9-CP!Q+T=56ctd6)16ybEYqUl}+)c(yHSZ-jskwR=Ckqw-08tj5gN-BR zZQgaTqZV*MP9R$q>bKN&M===~TQ9^Ib0XWvA;6?=;<6Ir zyhmYdp|IX5j!Q3?jRV;lNGW_p6$twW>Y-{=^-N6WGUKlMUWkwP5YmRHwHIo}R?&YY zk$54)kM$iy-;a-&iP&qlDgd`gzyqzs(g+X8mH@JZ7FF}iwH5l$^)hWCDQ>Ez@r37R zZ+u)E9d~m))x}2}J4hS#?2W!L4Q#t+2(J>J(=`F1GP)XBSlk@S7zu3{cQqf zlKnASnO#~(g+MXPA084G#vm68t}L9*Tn?4sR%kgJrJaOoUf?34iNmo`tClLDpcg2s zs3>P>i4a)A$ZrgH202>|i2aeT5S14TVP(h$nw+5H2yn>Jh7OPjOZJJpLs}5+EleXw zUYJzhsji|bp=rBI_JuKkt{Ddq4xgEl1%t2_4 zzj05DQ=VeEn9EU>kHb@evAMSkRoq@=Xne5&kX@Xj zTWmu3fXle&Kadipgf=ReOFxwYml_;JlXusED2Sn0Y!W+Xvf#DMyCiO^ri8WgH{H~- z>l_B^1eCxbV-OiYUj(GJuecS&l~4+byP=lXxU|!FlwW~+sDLpa@)@PVAR#dS03$Hk z7m@803`p8W6bgivv)2$(*cE%3K@$q2NLTYT0>%be0z>zM-NAJc>ZRzeNw5wwg4dha zvU72X%>^;PT1E59XN-M75&IA&!0362GultmpxP^Xk~<0?7y)uJ3g{(l@1wpmmap~ zL=p3#V&TIGx6C6~s4`I(Nq-1s!XzPTs>xmsUZHdRnD(gHSkO*ws1&nE*t&qB%A=W< z5lhH}LfG1+!lgY+UE&m0FNwY5YW7eCM%Kek@$7(zY@kyv`=%up-~fBs(Bj;J6XFHg zWE$I{cPfB5h(@k1A_~12p5=_oA6394Uj+;bb=ihHrr_dYH%b=6}0Xp3SSPv*^bgA zW0M}-`pD9&3TD8P;NIL{5!WLZaFwE8M>&)CzJ+ zxhL&&zx4rs98m)cs3aR&RIJ2Za|tewS28uc+FY`J0SVvzl!XJ;$HSv{bd4#pbp+uH zMzX{tqACaq-+jui#|_gQTRMR5e|)z-M+7VV$_G`#8!uK$^;}CTa0vxCT$doXvdBHYMSQVR1h42DL3*X(?QsyNyEmfDOFG0X7A32jT!rHwM6p=4_X4I3;M_ zClOqM_Q917&4S!4FtU}zQ082?ZA-pWT8Zc8B_hy+w8V)>hcR@iVwV!zmf!~L-HfkW z6!9Elblo$6d#SD-Van#ch!pWss!U^NSi*orZ?wL}G}I`_T$N<6A=dV!Wr`;q!16Xae}ugx52%GfuKtr>j}n;5xVMmj zNG$@z{X)k1jjltCbpxq(JirWs!mMFsxPTnpL#3#ykQgU&kWNacdJ}AlHZ+7YW;GQP zc97!cn5ZifHa#TEeaaT*!-WWHU9K23O1fo6EXq?2bTN%mb&7a}d5mkV$-z?GbY)p^ zCn(XXo3I^RFESxd#PrMVSXLH=qR0ifSTF{clM0BW0JQ+DDj#TIJqTg#nfrnRP)r19 zwaBLNefF*fz*Cyax~#aU0b7+13|ovO?jR}`bc&Uq$t*Y23aeKs*6c;jS>*0q4J_H+ zaSKk=CY3~|t~-UobbUu#90EAvrPa8hR>511h$mMMRsv;g1Fq#LcE&`$>OA|Yz{<|H zQ&v@#C=|=W%4u~5QlaiN4w5^+P6JGL9ehdKVC3vVL$1!-Ab$Jr%QnB#K~SnRH5~_g`juD*jPH)Z9RL2 z^A4bnF)}XF(rT^(;=RIwHrt6@i5my;a_nbLq>bSnIKa3!+(oCm_Xk`ybIiExKq{pR z)=SM`G9a?j!Z-lJj%x6j_CCGA`+|G(%oxZ}j1jp+WF9P>3aEFd1O0_Zw(?vjA`3W+ z#i6?@($&@srF4QJU06-!l-(J78CIN-ZQPk7lh;#ht;vgNvc}5<-4wb~Bu*(8yJWL8 zs&Z3_J?MKMf+#-BmuhJBvmA+42%mcj zwU4r(BmzudtU*8?m;zlDDXiw88xC#)Re&_*!~!qCe#w7T4oRv+_mZ3#JkmuvHCO)t z@&^L)lOxn!a%lk8+&CR&t0`E@SH2?qw8VJ&$bqXOkUhnO3(tEA35&o%+5!bSi4045 zWHwpB5zpoe(or3<7512DZdGw8YG{B>S@6Q`K8skvka{xRFXK=x3ykq)na;4f9F;HA zyhA__c@H4Aquc{sKuEjN8!KActqB2O-2I6KJb&(6P?#RHJk!sE$g@#|7YO zr3gh-mo4~xN+upx10^1-WeDG!RW8aJffJ-M+CI#ICy(M)7O)7+JJ@UekZA(um0#F@ z2J{f&S?h>LSJ@b%$ExyQ{F}oShp2NI;_3Xt61N+&R)&T}lrOE9g9iDH2u~&KGPD<* z!UkjL%20f6!gavXH3W#vaass6E5MASGDXx7O0lH zj7aM#V!Dq9+fe@i(q5^W}xISUsc~nQWAV1pAE%U}Hs8vfWB< z{p`D`ZxZ8oToGC9Y!e(vB8ca5@QVi{EI6fzTBp@xXQu(c!Oyt=?-MNdLmWO(1X?p-tG#w)=ZRy{DdjDMD(d5u+!?OOId=)V>E%(1~}L^}eFZqkPJ+rM!RkaP1PKmcMaK z;@}I4+m;(;ao}%YWyay{W7!McvRRbVnBn1EOZC(pkI5c?oq-l2gKz18Y9im%DZXwu zNJX4Foo!*_3`tMW{{SYCJ{cQA$57Qu_YnXX(5@_7gI0)?z0T`>PN3$azVlE<@%n~U zF+$K1p4xmdQndCz?mJ2YhHyddD1||_vi^spy_Ui+-#;-0d=kDRV6r!Xi1>XnI;Hoq z3=`m3jJ4g$gJue;mV%a>iUE*{SviCov__uNi!3TErt(mN`IbRsO^2xAaXAh@uwtKr z0!Q#iUq8*mRHAw=4!RSP3|)gP(JbomFqf!NIBbA%D{d;By)cGZee(jw3*p#ZTWgGu zWp`HtH;|i%uC}F~>)l0KxtBaWRIEK7));hmS7aRi+?*k! z*2J+>HrWjZu3>~6Sdcgtc1400b6k39*hrr=TV#0e|S3!dmSeCrmM1rOXe`LWlOQMHG zWLr6tklh%qwZyVncZNgLXNq0|b(gHdAA zjfs4SoJ1z%CMzW@va&j33NRwxGWC+2WvqgjAW4-|dj_S;FHG(oH@GVrw3hr?pk|STW!UI^pK-@uMiFy~ zUqV`e>RNHRVvxBS7<%#XD^kB?+aAj(9DA7;%vOpjqA-D1Hp6np0vW{>++$NHYS^tV z2K6c9Flq=bTXNd0dfSa6{7HpZ-r<8s<04vl`;96f_<;!w!q`p-g7!|HS2r$bx-KMJ zzYxAkIwfw`4yBdqHEn3Zrm#yYUq%D3;XMQl&gM00h}@t8VE2%^;^NgeHv3pxm2jPs zsxVx8q)l>DL`{l}8)3wV-w>_YD_2srdn%aFirhyhi+50G5JXxFPRb7j23hKSrVns= zg_Uyqs@c&WaH&>9DIud0(`DCCX|t4|EK3CyZI1oN-Z={vM@dF8t9}@UqPT;3+$S)E zwyci9n>-k z)Iy281V`&>Kwk98E{7|k0&MSxKk zE=regrBN$Dox-%rWyWgB({+hUUu3>o0^fBlThUO+^*Jr|8vUVdFfPj1+FK$xNK`c+ zc?Y0;nK%Z#J{iJh6%xeJYMP#oAk>Z^Zw4;49a>H|dl0ew&4A58k+y_A)T|h%s5Oni zqLsDSoI})eE^;7UHPv(*ENIixk2RG!owjvJf9AVZn8?c$w;Q z3+LkJ8DC-MR|MP&`qj87gI91w+B+@;Mm&shOMFYDepucf7`mu_@RvF!_Y1uOCkhL@jErr85Kg6|QwjI!N^>}d78V>T;A~*%H9ie^(K#G7DrLFo?ZGyCw@@>~kOu@i!MmtCW=Y8n_p#i;pGx zmN3gm)l{uqN>y>$VCLYwC+00pK%+CbKmJNZY8OK_G?XUbH2~AQ2ryW_rB`FD0)sB& zaH@Ju-&rs+a+1P>Rx!np>0dBqzUp9{?k=A+!A)mmE`+Uop{5r6L(dC=M5>C66$v$~ zxmK|aevW08CN?l5S1eN!vm1d@inx7Em6ql1ch~)>M>{3!*3_xkWIrab4;*;dwOr&b zf&l@)#IkLTCA9j73_2d)Q{3MzaRJ(Ximc^C?+iAptp<4uM zQY~yb<`kWWHydsnhGWDYF=A7rA(EIi+fsYegxImE(a_jR`PpK%s7+fd1htEVQX{r% zjj9n!jJB#;ZB>`{^ZfLbXczFaSg-kYOuB_Z?SUait?Z6)fay`Vy1&TP-~w-fMh!_SMIUSE1D zuV36g?-}H@nhB<9 z*U&);0T)+jLtmMt^$7d}_--?VVsPoNI?}~?bJw9cq}9U+bf?Ot{o4?g&?6o2*~oJL z3RCYfxH6_H^S0lMKbYa@Dida!*Q1x1?<=E0(*Z)#Qwj^Bx0%%y`N^o{(iPSTQ9xxD zNzHA-Hnkp9XEJ`l_dg>ovc8}P$m#ZE=19spO&Yhd>s}Y>QL&6yhV;= zs0)-~`cK91oWtPbRog|(20HcKVd3X5X)%2{0pnDyse+GG(<)9utnEz|TJ_DRytZwN zf2+s;u2?V_saH)iUmA=_s8JfB-FQN~a-5KdqOD9g@_Mqoa1pSPq>e^A37eeW{&d~@%(pK zchMA?$pPFj2=F{?V&{HxX0_~5E@#!++Hi)XM(d0RWMs`8VLC!Sp9ko}cW{RR{Jgz= zx{q^X{zTGgC3qf~{R#=SZDk#fIAyIL9Knohrw!}Pv!Y7i-D{qNj+4v-XVqe+!Hzy1N_m)u0^mjAk zE~yj5u^L&|rnuu)Q=KkzntrgHyhxQ=R0O@IXjF6CUvO)OasKwL@z`7`SCn<2yfo~r zcJIAUW9Y(3ejg$Amz{l8S@H=qNXxnm&byxDEd-h;ryOZu!mP{#?p0>RgaaCDrqUkS zRh3&bm5OFsJ;2vIw!-7cowjX8GX?@M*ha40K4im^$HLcUu^=QfCNg=FpLT&Yc)tn5 z`d+WKR+7O_#eVKT-V$5#4Ul9BC=(<*8&XDAo4zk)5$l;#lo-yqe%m&q48N|6V~&JLx2~5#m8{O21q&V= zteMJouE2cPE*~SPd%rS-Ic+QmZsOLDRb11YWsZG>&6OTGPp6)&q_4nb*dEuild5Ku z7-(@E!qw398s&4Il55!v*>HLRY&)S+$Q5QP2g}f^q` zLOF-z3OENDQ1C$^c4tv>M;fm2$3E9*?iZ!L87k`)Iq1o;=jo7~4J-YivyMeYj;C1# z_ld%kF+WO=3SzEy(pTRR(QW0ydyi4PQYP{(#KP#@_$B=nSwOHMpIW(|NIQNceI^za z?;1x)U9vAV|Bh>xkZLP2O4`u0WdpX69qNjp_5M+ss zYN57tJ@bjsifo-@{`nl_yIp?))>)YH1ggFf#=53)u>Hh_)ypsMT*lEy;{14zL+J5O zlR*AwoeZeL>7l}-Ee6bJ(eLzLDzEa&I4~?)6`kJ%B(+~tH4&JimLzZKsT?}ZWA9W$ zr?EvAzlrnEB89Uh+0jcyh`D|`t(VdyAeU6LZcHvMVi#r2DyXVi0(iYzjU2xz4XsJ8t=lIeE=L>M)c3ls)oOZ?9Ix1 z`h14Wuq%0qbR*Wf_M7~}qaC>c>XWvHSz0s(3obin)*cR_VVvyC+)zg`0ectAJ-+zy z;0v44W7-5z_{B74bbf!LI2ja@s=u%UP z3Ig`s&bX8z>y+GG*In`R{M z%(yQy-qcPcF|9mixNCGhg;SoMCgTY2M4yE#1gH1|OHEcoqy3GZpaak0+L@kRrD-8y*9s|iUbqF-PEZYBo-~MSAT-422R!R{0HX^4M7b7GZClFYBrJh|c zZlA$&)}co6=5ZyDaD|-Yz4p(*2c)%6c&Aiz1G4cGi=tSCzh-21LVxXWDQ%hHxz6@?xR6U%Q5;?9 z;KLYb6|r;VW{qwvQlp&uC$0+7Y8uNogScTU^HaA;<{u~r0XCff0C}Fjy=8}lR?%JE z&q_znEL<$pNf1g(v?gtPJN06RWM`!w+IX+`6gY4QtVRARO8!x2Ob0FFFKb4&aw1n@SaSR8SlN)zT6^gl_OQ11FbjthDF`g zA9XJV`&{b@hPYG7E+^aR!HAV?)bDBI^VZsS=jkVZmtG(r^ltib>gk!?%TCQBGWJ54 zfl8_lB@glfe<9v3&_u!3GaXHI?%RagP3s$4#iKWpTPGpc>TS?U==lRVyjO>#qtcS5 zJjN~=d@D8CVlCCkuU1Q0#FAHtX^E8DQ0(|tL;XrCI24kEdmoYsL-t-(FE2^H9@i7Fft)=K*vO16^yVIplXsMvT$-vX zM%bnERYSnVjtK4i8tu9U<%jP?E2N4*qbuXYT%t(k7(+DQOhQQEZjuknsPG&|`H@BN5cH`fvXL-}m4%dsHT-^iu?}1Y>f!`h;`1wF=d~%3#tw z7H*I<23=$Wa9DP-xpMOSXig$GPCPZUWc^Tv6cspVg*6L)&KDd8t(gV4$}C|5KEafX z;z$uuGFkrs5<#w2+>Y!cCZy&<6GoF_kbQ9bmw=TVp2+C@A9r8e+- z&79CVxmp26-KHN)sFI0_&Jzif1OBiVWO*5I>kKV{dKz+uwH(hQJN9_bY+pAnNKH+s zDs)h9r;#nn2mL;&0Fs-P5yZ4=8q=8jSdLfESaJnFlcgmIZcZ^Za|3yl-BqzHW;&o# zNr&~&pBc74ILrG0la_j3qxF3b2HwHJylvH|)E1y~Ip%gdI(Gg<|fNBQz`FAi2c3 zUb@2W$1d!|<5c)K2>JCNz-Rl8rC4Y?zs9uv$(CMCdn((pe`7nzxBYuoM86$ga#M-g zg1{f?Jbzv}Yu|N~edOow%D+dt442Br&bK{%8#r#_Kmb2$HT2*Kzs9bk2Zza2;0$7? zo7wHFM5Fz|s*~o6**8*0oEw1D!Y5Z*5GXeJk-ITzzeA8&RmGMG%Ie6a9xyTPQ5x6<*;dLmXhb4Ge-Zpr zT~V1g5@#L(ldYeWC}ESFB)%J3DfpOVkCVJoxYQuqyVUbB1)a6TOakt*Kq2AqfyTOf z{D)q5ogH+yE^DRPox<8b>&Hin*Dmo(_Km-n~H^Dt(8vr zV?Jk_(eKNXy}vLEaE5C=v*UsYh0DCkKV#SWGd>9e%EUft4cFOq^GrB`Cnfg=U$qE* z5@r7I^|A@e+6gbk>AUQQgabhtYEWCvP~Q=gOs)cH$kH#l!=4mdYOF-<5eNqvy(hCjgIgB0b4->vmehsn-|y36yWl^G`*@n zo!{G*nla)PmquAzOPO-aLy4|9y*_WkkC?=TNX4s`R&Zh@XpxX)6HNm##p&bq;o~m zf}>%TF8a}t(4{C&r|H}e(%<%77oIut(f&4AxaWIK1~x_;oXj?v)l;9!V-7>1<0AoQ z`kIIqDavae@XyNbNt`JB*hfVDML|{3>pFLJ9)G&{`~_{dT{xpT#u)0pVH&0SlmCDt zP0ylAZG6b%)r7k70Ho3U3t8Xb*W*NX8-W91l4Bf{k)p9N4bIbGj^k!=yf?*O#^i;9ihy6*q zA=-jX%8{u_VVwD>eoOEZb?f9h%7^de$z@sz_q=n^T|tg(!6XT3uGb*81t!987=L1K z(2a|XqT!bXK(<4D2Woyp>|M~B;{OKfnf{!wjElt8+qU*6KZosTl3HjCHiTa#7wWjC zrHWshbSbDQG;&_t@c9RD`Uj9F*&qIVAf84@UrYyBV8>N8>r|Idrq%WAEhAjMS{2p} z?)ljtw1)XWa5B#Hua|#$L-uzYHM_EspEZb4BiM9k7V|d`VxMQoY*G-IGtjxp^6eSIpvfck+*+K9(|_R^6}hi zTsAr$XO`Iw5zl|kAbDcS1i()LGNunKW0V`ruow0&*M_Qrg=%r0?D%4It-X@RM!eDV4l zl-QCWGkXee>dzwc5``dq;nQI;74KVl$yCm5Kf3q7-G+|SjntK6h`a(MFotc>`Q)0o7_j3W#k(6`737_T(*$} z99GvVit1AvopbA$AEPaF$6X|U7u}g%k0}}O8;cAD^0e?N zKs{2(TdA~tpCvZz~XIJs(R{3|is3S{l6IQ}7H2JxrlXl``aE*H_ zR}Sd-KZ}}2*X>#n!A zdK^cBNa0$fua|D;CgSd(wZLI>FZ+S#P?r{kHhgFPNu)CO5w!C)i2mS)Ge?4F9sCt~ zW(G%>Nw_+#TnV|~b@K)2K=ov4@wbsA-P$U;{!Fz*g4TGAUI5U!$D7k_X0OQbs|d7; z`(+R}a>D7d9Eze?`c-Pl2*+X0yZ`X$d}OOoQD!$cW${n;O7~Y@W$n|jZ{AmB06q3s zkV(6Rqv=i>Tn4&yMVhCJTwov9)Qb1t{9ryC%880+l+#BjV1oD3aFLJwnDsH6fj%)o zKr4U~+rl7h`%yj0=O-hZlS8@Ro@n9xL8xMFYa#lRwRK4bJCbF4f*3m_SjNf`{}uY} z8p@d8uNMxBSmp@RGLq(yPSJ`;&TWqc=>&%k3Y@OK3 zIttMpei-{=Uk0(#jAJOdULpIw)kfm>k<&Kpmt`w0T9JZ4OeHWX%&pXi@iOIqrxKGp z-vcY76=wOLIuD0xAd7&O?6(ucuIAMewN>VkHEzei{tA#dhCQ!~#?GZggZ7J5YZz8K z1+*#mdLfhmIZv8Z)U{=wViKxcf|%j*7JEgX^VITcnwaa{XpHgsa=cGy z&hdFHJ1Bw;L_x138GmtDfY)u-IBi0ns{g{0k^32W29rw2WZn5v=#i5&>K9q}#2)Ma z2=O?Y=ofOOs}xu;JRzYs?U;Ykou!R_Up6JMlHD#(!Jv*Y+A|5 z6tQA?T~;TEq%+t&R=SyOO5gLHyG@b8NcB(-4DEiOXg~`J*3%1OblZkqrPdVl9wCZ0 z{nSNON28&qYFSFEIOEsY_5XN=<3Zqexr*{8zE8ByyA3Op)*Ev_%O7Pr+Q`~CqB8VV zLWXU(%#2lotA-{ZnE_+omXHY9H=r-^gFduJd=iw)s%w(eELSUUaueB%Gt-0UjoXM% zGl`l92+r{*D)7(1KCFYY`U_tb$)Eb=eGk)XS@GI=mWfO5%LOxPXedBfGTFy(dM%#{ zE9l$ae-C*57`;Eq_Yr!+#eN6#jG>e`{fVrnVG>Yv%2g<&@$_-xJ6tFesU9Xyu#BPj zx_Jw{=HasO@~k-RihK}?s8j)srcd8%<^3zB9`4e9LgCvaSf;Hj&nyJ;D?{LSWj(-~ zqmR!7jI(OqvuQsITl+X*xi-vVMHt-Hx==xyz%3%7Z>HoO#vr9LO#?PU8kZKTjh+J` z$45c}bDek4TQeyleY=+-JXS|s)U`5=87&nD5x3c`aJH^k&FbGt-J!y~J^uEgm)`D! zRQ!1^k0In$9$2>LU!tRSq83P(y$kdE3d-i_l8BjcMLtmV;#9X7??&z95!!v-~Ks$E)UF=Uvwu1vVz`g|WZzq)Az_Kb2c#b!4zW1}}F@8Yq7t zfwFXKRa|O$q669)jycmGEQHAC^h>^CDEDG8%<>j@8`U#CxRpC#`KnKKa>+B=J_A

+5`#MJsGc^`)MV`C_$m$&ismsQn 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%0AThMD{59;-|9 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 I`p2zN-<6y(8lSaI14| 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ÒnS!%7aNwvVf&3{LpxaXq!RujlCSja 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 O<9X)F0$RYotp5+{gBF$m literal 0 HcmV?d00001 diff --git a/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto02.imageset/Contents.json b/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto02.imageset/Contents.json new file mode 100644 index 00000000..e41d62f9 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto02.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "DevPhoto02.jpg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto02.imageset/DevPhoto02.jpg b/iOSClient/ObvMessenger/ObvMessenger/Preview Content/Preview Assets.xcassets/Photos/DevPhoto02.imageset/DevPhoto02.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a6d5f090c26967a33274b0c973ccb2e8036e86e GIT binary patch literal 1213447 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

T~WD49DJb#O$hspspa=-l#%BcZlx zHv&|rcDVF%^J_)=B;^_$EzW7*C2U@(Lg^gg^)i5Uv0An@Th~j;e^;9{szWIUQZI z9$7;63Ad5fyFpC6y)tKBCtqTwTpoY8sau$iwUVw)dRJ0BL_G{_uRLbnm1D_6tS*b> z++Wc_5%I0>QK@U>V0z|fH+Pq6?~QI{#H<+-WUEHVV?x%kl2d75%{T)*VT9EYT9GjAT3cOL z=Fl#UqVp@Fak%`CL=hj&#qrxtH>^T_Z)g*@@$@(u3 z$?1en-jwiN+|qB)VHDXbX2(Z6&-Fym16p?LeHVl7&OHosb1R(2X4Y@5=JTA#em(j8 ze=pfM{yx4VarU@93pc#;tMz=I#-MNN~!4A)eU9KVDIJ~dF*`w zZGc~y(HV$#1HkaHtlZ?`NOzFTy9diRnBD92{P(Zf?WxHcxRA3%tmtSAOm%D!`nFnd zvF=7`gLxHI8oEHoK41_9!Y`{$CylC1a);dM4&dcP^b5Fsq8$XXNHqJf=bNioH(>cY z4wd3_y%LD@d2n8Xl|G)xIm_jK!HdcYcImT1oU17jd!WYHE5LyTcv|bBIny@c+}jMr zu9Diotd!}bg=DQpfDpyguO3(vQ! zZf|nt%_3us&u#a>o^0sWi%3)G&d{*(mwy0RevzRz^X{f~$DolN){SegKeT~sBd?Nz zReceCVE+7-AFSVVQ%UXHy z$n-fhb+>ck@Z?Gtt~B0sogBCwlGNvK!sGM@3cG#33L4SrzJKVs@#@X*;l9V*;qS~i ztp5N<%DM0r7k8cO|(gZTg`= z)5NSti53NFz3Ed}Kx)B!zkds98s@5qbiwoP=;b#moWnX@UU#Ker~>o(yGX;fj-EUs zx3sO#T&Ii6+D88XH@{c`CdAFuSsG1?OAE0>H!n;+e!w+zpQDhwSbShm{Zpd=*ih)w zKPykO&$mB9zJAQ>8!6|gsU%Xww2DTdG{9PhBd3Y?)u)e{R`)ur`q;X;wZ_oHGUK!9 zJ-czvFjDih0S-=DwXdIhVKdbia++=pDm3&!8qx;R#eiq#;i-E&sL?MPbc`nkTdL5Y zGK*@h8p7FlToHEdbi>dl2CF4_wAf9#xsW3OZR(1C(9Wm&FF^;Bv_Q{F}z9Nh{@)!&*!mT`H??`@b+}}swJtL2z zb(|+(7H=!xRny7kSsu6&U&eHMzCV}HzFdYZ?dez;84Lo6pHIoF zR~-4*LqC+yPLDv^7HzlQxJ%kp=5>q!(z(@0?B8W}*4S20&>#A?e8En`B~*;xy1&teZUZ=y4s&wQee zsUG`8s?bAUTQrIewA~12wd8zgl2RlwV&@OI4WW5B6$eNQ>8X`@0?w!B096*s3T|$< zsF?I~P)+rcoj^xk`m3FgTY3q}bL|*ZwwfCJ+9PQ+kS9)w+{y<{Gn%H%dL%BE6VH{^ z&#bC5n#$T^HY(hPymai&d~JL&mZ;%xUC|s(O@)a}#mYxEaJ8~I=&MP>GQHet_hCtA z>q?|!C>rE?$!qP;N|Ht%1gd3HtaeLlx{2CxB5Sc}KCEw?g^1IRwN|wZ9WhyS!Jcrf z5~eSbCBtRh$rD3^vJxJB+(k831m{hN#0-aFr(w$AqeMo%!jM^Lh0d_i8k88p!_!S> zQ+f4R=$;OMjJB?*nms{D?Iwe?po%Mvt$TxIDYKr4R`vn>uUdA>$|5RCx+;gU=X9Ff zzNgOmkFASLtD%9Z9;j11iv2!5ha*dx;qUGN2V2f;y}-i0PeV2}o%)=SlBsrMW>nED zC#Yq~H>u}%cK$@pj?KkuZsG3NUKu`wSerrVfrSUL$$Tvks9=o4b~$>p_FJ5m*NLa4 z*CC7O`EG5?)6}%6c;jUB!%!nODV+DBVPbjxTHK{&dOUZPU6e~RN?AecaOoV@(w`?@ zF5DyO`C6-;((-+rUF_?-y#9lm$}f|yx%9Y>fRLxx%O`T}0k4Kpnz?JV(D|tx=vVj=8-j>&DVxx$7HEqe_ss+()`_!0?MaC zDyTY2i!R@+p=0B5dKTwoQR#V`8bNGgUo86NVQOvMdf+xpk~=w~#@ zvMtTmov?gO2_ zPB1sb=2RAjc5H_rzyN!qm4M{jkDs5?XS#FZ_Z8~-7hkw%H(xQ%`XILF@WFk|0$d+a z)au#z^3Ue!%iDC`E6sQL{{Tnne7)9Q9^q$#jQjM#A2jO;^gZ7_Y*Iev-f~Ox`W*bv zNZ!i+PSkz%%Z|_9iO*{yP3oXFh{KG!dK>xDOzLHkJWWFR-IFdHndapI(N>k_gX@4@ z=5jjF3S<>v`GT~BDYAbkNu3bf_D=6*XBnZJ=%;y~Vdi@K(ge<~8(Pb4&5O(W0Ghr* z%lpPJFQMRq`j->oeJ&YVIZYAtZ#mXAJ++Pb+hOKlzN2`bL#?;V^jn>uapfCV=Jktt z4zs(;%FgKV{f{FbJE5bqi;NSm1t=JrqDH{v_BF$!#bxZ=-!E?nKV_Rm;m*+#7KV&P zv^F|iZkxNzsL1DL=mpQv&8jKBgIM`xzM%|W0`Ah{d?CGXi@f6LNqpw|TcxpucV5|> zY4(7(muBU6tLqHEKJ|={`Tnl|0FCqg?G2tNr(Up0>D!MU-3qi8nGD%!L0YuvCw|?0 z?32sAC@j#_jR5aUQx?Xgti?K7kZER$imSQ=;Z zbb+Clp6k=Y0Jg(p2x>DjU?s0XiQ{$-ZZ|!f-iw9N^7Q2wwU><{D8A7W{V|oqCFrb8 zi1SUH6;(xarj9YWmAdKVjHh^P005`^Ce98C?}doD<~l z)$@9>Zls*rLo#=mT2FK-ohk$F0GIe_=`nGNbWy23un%pL3#tD8oOt>x*@E%UEEK|s=j<(a#g8-~K_bjC30xqfdOlpY zK&ywWEPWmNs680muaWCri%yrN=ibvFr=I)s%;)K&E?{^0#o4q!Ctx6KZ0=#3SY6(6 z_*T~OrqjxG$zoxRA+!qT>CKr=$!9Us^O3a3iT3D4DdbZ_)> zbA^&aBy2A_9ah(L88NjZb-C+~feBn#Nf>IPgr=}MZrRTjaH#j!VZZ?*9d39DqD0@7 z(SeHdCp5sUT}<_8ACYSYU7dIqE%Ym5CeV2lc5#fkmJ|*#Oy{c#J%nRfc2wSO4v<=> zSw;Bu4sKdG4U&GVms{yYU}@?Pd39#a{PGfvXk

oMlr_7ci9_hxeUSi-{GwqJ1Vn=z$C>t!;%l4!s}Lo{#>8ii7M*?mL};x+b4 zGmN*UqZ`d|eRn80E|+^zjuIWXdc0)&K6#}xeDkpH;N1rUHFv+#@?^>Cz1Pfz>-`aT zitKdrdg;DBLB7&=nDkv9XQDqcMjc7qtj+7M=SrUKLnTM2MushOBR{5wSC0p|6B~yU zvCkiwhP_2_W7O2ShF+G0-u~arZ{_awL3#d)6s9On?i)ci{;xld^WSpAoxCvq*Pi3_ zs8^AjSQf%I4t4{KZm&1d)*+(7^ZjjWaW!R4uG@p#=jrs^*ALh5s#Cw(`TP;I^R3S| zoca53u=`A&e@B_ytklY;4vl$v?px4@=j`&zI;wd(>n5@(K2}|jxY^x3W_S5JrE&vS zU4Z;VCvLL-TV<21)8@_CY%Ib?(0Z@TgH6S0JU4Anw{lk3D#rHB5|Yv8bcvn#3_ns* z>hg;H69BIXXG%P}a|PFD=I8XZ=4rimpKVu@yC;`DlcBpiLE|YkxPW2yf*ZxRN(R1b z7f!B7T?Ip7&qB7&nXZrL-=vLv>DD!ZlPq)0zIVVgTK!6(Ei0u8Oz4@V-p1QRs6`EQ zccG1R#7jtB3S9vXyJori5!c4kh>8>1Fw` z+#fLi@kt+&YRA` z^y2R1W!E=5INdc)XM0CFE>!t}I;GRuhkr*dtTSm#X=Os%M-NMOGqFVTESt9hYurDd zi5;9`YApB7Wtdvw0_dN?-^!X;ww9G4+UZ-9En1vY9U=zgdHQgP(5I`Ohl$1lUY*=_ z#eGbH&@-{jvo((wnIlXq!nUf8h!v%nT&uYOM&atvT-}Toscz0oC~FyKWMM1R8QPh- z7vFSfHF_Yn$oxX{E^*CMGF?bft{tR<)def5TL*TAz9t#^7~J+aF%Q<0-cJ?rw3-Gu zx(jiJgx?3Yt-JH*#&`2{3AKe~XQPyGiqvQhM}H2W{BCNSaLVhGr#Ez(`SYaXbuRhu zN0-~$#p|A@I~scC{SHk%ujoDt#K2) zXEA3$L_c??7xUI)@ZE>$HoN(%0cCj|ZG+G*;M4gINS8%HJx$9fybtWKSB7}I(=Mp>yl+*RdH^9!N}b2l|{t<9aNGK*O>v*{#L$q!Lq5M8ciFRMI#M~tjRvS!BE^Yzf;<~DR8T21*e zwLubhxXGT$k8yPwDBqgc0Npn_G1lkmrruy{G|Y`aakIAYZ)p@J*E*LsXO!I3JbM|H zV(MDSixcv(x;;*BWgj{y9Bp!Q^fg~MMx5MRtq9!>8V$ff=@&vza8Eo*oYIno2V9L1@i*6I6>y#D2S6(G>eX{H(?Pka#=d!arsZnnfVv{} zojjOuBv^IlzNJf`2wkr{J+gFOJm}k3L$8?3>hUzhhUVzJPEVp{tMGw(Ey+$(eYyVs z05?~n^V=w%xz&92)pvRR+b=vn(egW;PBTLvuPc=~6Lij3PZM06Jw&M@UkP*vpS-7T zUXH$r*N<+DRi*}iMh;sGe<8VhyH@k-x%xZuIct3%FRZtlFSp3p7>hGG-eb~X9I+6uW9GX_%73V5m&5fRUW%pM*Q^MZ1yEUIyt%y7NVG} z(F9{m2QfibwrriIENY{Vrq6&MWvKLAJwRIy`dkqf%F%f>A#GK@W5J-sdAoPsIC{iG zi?Zqt%I2w*)pw`ovj=?;WAya7FPm8zQF2Jjg^ez2ZtL@N5bLDNfwgXIY;^()c@VGE z+|JaPeAGWN6_1ZsLr-5XKXKL8bW3=yTH%&fV(BsnXUj4*&gzDKm4Zp-MOiLw<+hTz zItF8=?MDUrIS<0nzN?UVv3b1YruEoJ5$M++n1<&;P$b%S&LZk-N03iFQ6_j>ua{pv zb_352bds6fQ-!YqXjjohLrTLkBhW!Bm!xgkgG%6(C`p}~IW;7EBm**)aI=lB3QoYJ zoIN9AVPVivNixeyZz=#}gjcSsOuVbMPs`9LwM+^bSarFo;I9|t_)HgMm8(uGK*Z6*y0Bb;$zYE-AbBUcto8)voswblDgTuJJ2NBKp z$ExOXW$3`dv-bLA*d0eVJqv#QAS(~1<9z<;%nLm}1K>4$y=-{*baNksETL+)W}bEE z23CaQSD7{qmj3{$r{-+pK8$I569UX#mbyJRNzc{;Nm#fZ0MBU1$+yj%iI*FsJh$(;{PbR4&-_O@* zch4G)+_owwTFm zsfILh#t6-FsMuvg=7etFF{!B2$&TJ`<7wjSvRDkOodO42p1(O8cpG!Ju^7{3n1+Is z%eHnhX<2MigXZgtjV(Nr5|zSHX@RGSEN+2e9h;qhLOwQjrWT@7Y!#ZhvE0(PFc@1R zPS7`F3=1P1y-H_1w#|^tTDZ~M%v#r{j6)@-LfG9EO(76pc99n|Z@@Xpw4bB%Da zWiY`hk3_7Zrk$2mp}Hls5rpROdDa1Sm8WekHhE~;k{*@Reg2%@iZ>0E0V>^Rvs23 zD9q}zX#iuk*xYs(q~ZrFS85-l=H_k4Wp2Bp@a<1a&i6vRPh+df_8pHd*KF?Y;g&ac zUl+8iyLKTGwuAw;eHM&-@o@6G_{#ouiR+_tcX*f{(5tXnGuQ9p-$mnkLR?H%~d4*pbiK=ULvRnGVc9Y25PRqGwHpfQ;;B@24 zoVIUupBwVM9$^bzF*D<3h<1-EXlh_|JzS?=Mt?2s&Cd~w%E{GC(=Rs8o-L-&lIigg zFlC{Wxp5gVXm5j(^g~F>Cn>T|EORD?PJpI3f>k-y zYY%KU$h$iE{dJkn($to5idhw4{3X>dg#9?Hgikx}s$CqnMvD3RZ61{lsZwRwQFSx4 z6bU9y3zqY&DQd-LvP@PUgm(iWMpm|Pl_v_V%zQ9g3)K*z#N6G6X{aI|^m-*&dzM!g zY${{k$RV#jF1leB=#+=PT|CsAXfURMJmH4vV<*#?*68fNFy#v_e!WZi$}(Dj2X9R3 zBS5_tj!su5?&k%n?i{wW9%lqDMsD_V?OiF-6DyATm^YQz0ZN5e=ai`>YBC`s2PxY` zDy*X7@~YvR1v5l_!Ul^`6*40=o?;0xhuSxqx3i{nz`t7(nIOg0bjd%U%IB$2=XGeK z*S?uEtRYfW8WnlE2t<`DKDMOkyGvS4i!A`-c0*66o>0Bob3mq35Cma+HhNQDymO7c z>@%CDhZim6W_Gz3o;8|vjQU~KGgm&lIXWKFDPqg(Zd%H>i><9u6R3~0G@m|nS=-Jz z;!^0cbhmdgF4E79wI`PHEZ4@x?dI*VIdiKc^l^$>^qJug;(9y5RDEHh*)_rU^T4@U z>DOdy3$l6s_#eC$y`;0ox=wb6V34Or&epl=Z3KfZnlYjm(Rq5k7DfCP$Le!*y#B6q ztj@c>MBnGSd_bA~KRev{baZ`RZx^5T>yh&NI(`!;SJ(5$*}qO*HFUgQ{{WTIrRNYT zr!%Xs*mrYqnR>Y{^_m|-jh~&lop@b-X?2c=J<;WPewcBMUZ0*#wVTb<5Idn(bQb~| zdKi$&jgHQ>^K!4*zOokS^PQYJFb7+Mw@Wv32PvG2r_}Or^zG@CS$z*Z&E1vL0i|AS z+6X4m3at=t&2XoOn}^a@s}7Jd&*vl1Q;0`zpQJc7^m1xyW5ru@7*~f);?N_j5+>!j ziUU_C&h@8A^XlU>b1u7cUCTCkm+$0s7KVsxBcH0Fg)!%;XqQK#wH&^Vca~-Aro!!X zYhk5SI>Dxgq=1>4EQ1gLQn4fpqtVO>RaF~jE#mrlaOpm@qY}>>L|rV~b7S<_eN4JC zXGQa_aGMb8;^q1|XzI^C+%9gtSw`obZb|1>);Z~1`OTHu zwx%~ej9o6CEiwY!v@&Wcj&8~i9=1gY*6Ta#qHm>LG-l|U8P7bS%@-Oa)t@_VSC6E- zc20=3mBrH)Yw9VrMVW${WDu!RtIl+xaU4dRi~^QTEjly>D;h#asuhJ7L%L3LMx5kK zQsLSIRRm=`&HD4xSv7>jC1#C5HEs~r9P5rAi~|nMD;Y9l(N@XAk)fclPn6qWqH#4NIr+#Jfsc2V6y+Yh!hdSKea4x|zapv#Q zPF!nDp^MpsH%9!)Cq|3s+O1|@;fcO}FQnqF`6yq3okV93naSzy>Tm)P^__nMEMK8* z@jjEQ&g*%e#txjHdC%|jbnj(PE0eYHOwsJ);SKbBsXhq;Ti3>D_YJB950Sj=_n?>N z;n4>RWgBfWrY0v!7oF^5ZiArGCnP+}^KXo|>mG8>z;2#gYly_{q8VM4if-xp23ht9Nm zd3`Sa1UmA1@t!nby|Yg5h5Z?>1Uk=DT(Tu+kvGo3mdqAaC9<;MsaGs{*9%o?6zJE} zV!e=SwpLYBbKgKf2fU4g$EqgS&k~^Szjqr<_7;kVjTJ&su3Ivm6b>6?BH|Mu2RwP% zf-5i!^YmQ9Xyf5%bty9rT4AN3ZaZ{Hm|1;NbQe@=9P}&MK)gz*YymAL+@+%~T={v0XGclZUli(9c~{2Pv5*R4nWjcX+6%KZmQ+D8u5N{(2EhE%!%7FT(X>Io3-g7c z@Tk|Q>OJ>~&2nxM{%cp6s`b)gT|BlpTGDB`hbkpW>%7caT8W{ZOFHgmj}J4XTY7Cr zk2WRzmsIpe(YwE!BR*F4b7^XvU&{Nu(Y+Q`F@ zu6$jl^f|84xPJ$yk;>i^>^Nw$<0D7X#1DeqX9J{SSD&8vzLz=CG(Vm6wRt@udLVu^ zomCc^IWhWp<6wO+YuTBTI<5w;zeCGx`P{jwnhR%j;MK&hTg+QXS-pqghJa9gOD{uC zc6T35!UpwSj>m=4<|)9?&ui0tHudtAwhXy18s8oC%5ur*=Y$NlHw@CJSXoww7L3&+ zJ%189WfR5dRnBy{d_Ij8$^DNI{oE0z1eU z9a)*PB+GT|mlvakNtX5SH3U(P21x+YO{;NIs@n|qL8!MTceJ`|c@;?D+n*+9Xx0{8 zVDRf$dinElIw7^*d1T7S^kEiW7e^&JIodQy>BOsFbG!z9{L$~ z>~b@3@~)|qpwY=8YFT{FmZ^B6h z#*hqgnFr{gYbZpBk%`aL$g~T)A5|%P76j@NeEP!jMM~ssWNP7|mTp?s5)Acd3uUg9 zY0M?suCjRLfuTldV(BeV8Y51~SxS)B9mLGDUV|M{P>>u1VJBo1{ou zZ8|ZwFtLi+&FL@Cnl;Rn%YhYJn!x%x)%kJucbh!wU9NjB0Y_!pJ$3vN?(@BKqwrmS zN6PlCZwKnSIDIz0Uq5B&i<8`4Hey+rW!Y9`HRJ@+x6tsNiG!tP9O^S_u6FLySTa}9 zyPh)}OE$apd2C-wv1#N$dq6O^&%k@nG3WapNFRNL$>{3(ug~2-f0gX?^IIOjg>4!a zX7haz#=`v|6xTODR&c5?O8<9dhYHa5&k#nY{qBR8Z1J$#^@RxdAq zJJmyD6j~_C);+8`umdY>Ij{%NTdvm5HkVhOc;~jDH|gk^hnL#ISK+k!DCP-zm7`U{ zU1^Za*pL{QWdNg6Ql=JnOHx;ouco1#O0Uma3=QM4=uch$02}tztcK_5--xX$StTdI zj8)nM4|J0OD#*4*!KEs~sKXsK*70?rkB*=u(Vg4PqZO%1(KIs!gqbv3?y2VSax`NB zr5|HBY1#yllOA5pf%(fjxK1*?1bJtixh#Y zjUDk?vL>SSar2JEqcU+XP0$-M@%1(FIxWGuPM*P}9{NJ4E<8ai|5Ny51~+T zjhXZtR^+cv`0etp+_9_^P-MqOMq!P5r2NP%_8z!Nhp zT`YXFHIB9sK&HzSZQT6*^lU;k8PhvV7}8p!2Y#v7;z~6!#)dIeA6Qgajir_hWqIy6 z9Ih^%;W^{op4;=Q9ZG>^sjv`c&0w#R?Iv71%SN2&%CnhP;|pk0)z!0@E>+m7BFg0z zm_WALv^cAYYY*KsbTG8}-lA{Qj^x=MPgi3$-KSnVRGy2snn!Q2;Q?Bp5xOQHrc#5iJ8?6 zSnE!!y19(1mz4tpb{c^&qouT_Ayt*24WC$!29>m(J9!!%99p#tm(AFISsEUHrIdTu z?D%R`PIZ)rhn?w{oqlImBUfy@yxC3_RuS5)w5@D#Jl$AEk*8QyT*LEyaqP&y(DOC( zZW~rP*0uTe^cp@lxD(?Q>v-0z0iJz;m^xFr^gGv@!yPiXkgJ=pJ)GORIM0@JQm5x; z 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%0AZ(0#gl3W`CS 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Ξ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

YzAU5$%WR+1`&+L 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¥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�{m@2gqp?{bu<}8jkpw=P@|NgC3V5Lq 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 rmyOy6>OrY6|CxWc)ZV@c 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 literal 0 HcmV?d00001 diff --git a/iOSClient/ObvMessenger/ObvMessenger/RootViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/RootViewController.swift new file mode 100644 index 00000000..70967ec8 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/RootViewController.swift @@ -0,0 +1,866 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import UIKit +import ObvEngine +import ObvUICoreData +import Intents +import os.log +import ObvSettings + + +@MainActor +final class RootViewController: UIViewController, LocalAuthenticationViewControllerDelegate, KeycloakSceneDelegate { + + enum ChildViewControllerType { + case initializer + case initializationFailure(error: Error) + //case call(callInProgress: GenericCall) + case call(model: OlvidCallViewController.Model) + case metaFlow(obvEngine: ObvEngine) + case localAuthentication + } + + private let initializerViewController = InitializerViewController() + private var initializationFailureViewController: InitializationFailureViewController? + //private var callViewHostingController: CallViewHostingController? + private var callViewController: OlvidCallViewController? + private var metaFlowViewController: MetaFlowController? + private var localAuthenticationVC: LocalAuthenticationViewController? + + private var sceneIsActive = false + //private var callInProgress: GenericCall? + private var callViewControllerModel: OlvidCallViewController.Model? + private var preferMetaViewControllerOverCallViewController = false + private var userSuccessfullyPerformedLocalAuthentication = false + private var shouldAutomaticallyPerformLocalAuthentication = true + private var keycloakManagerWillPresentAuthenticationScreen = false + + private var observationTokens = [NSObjectProtocol]() + + private var uptimeAtTheTimeOfChangeoverToNotActiveState: TimeInterval? + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "RootViewController") + + deinit { + observationTokens.forEach { NotificationCenter.default.removeObserver($0) } + } + + override func viewDidLoad() { + + // This allows to make sure the initializer view controller is part of the view hierarchy + _ = getInitializerViewController() + + observeVoIPNotifications() + + } + + + func sceneDidBecomeActive(_ scene: UIScene) { + + debugPrint("🫵 sceneDidBecomeActive") + + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + sceneIsActive = true + Task(priority: .userInitiated) { + do { + try await switchToNextViewController() + } catch { + assertionFailure(error.localizedDescription) + } + } + Task { + _ = await NewAppStateManager.shared.waitUntilAppIsInitializedAndMetaFlowControllerViewDidAppearAtLeastOnce() + await KeycloakManagerSingleton.shared.setKeycloakSceneDelegate(to: self) + guard let metaFlowViewController else { assertionFailure(); return } + metaFlowViewController.sceneDidBecomeActive(scene) + } + + } + + + func sceneDidEnterBackground(_ scene: UIScene) { + + // If the user successfully authenticated, we want to reset reset the `uptimeAtTheTimeOfChangeoverToNotActiveState` for this scene. + // Note that if the user successfully authenticated, it means that the app was initialized properly. + if userSuccessfullyPerformedLocalAuthentication { + uptimeAtTheTimeOfChangeoverToNotActiveState = TimeInterval.getUptime() + } + + userSuccessfullyPerformedLocalAuthentication = false + shouldAutomaticallyPerformLocalAuthentication = true + keycloakManagerWillPresentAuthenticationScreen = false + + // In case we have a local authentication policy, we dismiss any presented view controller to prevent a glitch + // during next relaunch (the presented screen would show in front of the other screens, including the privacy screen and + // the authentication screen. + + if ObvMessengerSettings.Privacy.localAuthenticationPolicy != .none { + presentedViewController?.dismiss(animated: false) + } + + } + + + func sceneWillResignActive(_ scene: UIScene) { + + sceneIsActive = false + + // If the keycloak manager is about to present a Safari authentication screen, we ignore the fact that the scene will resign active. + guard !keycloakManagerWillPresentAuthenticationScreen else { + keycloakManagerWillPresentAuthenticationScreen = false + return + } + + Task(priority: .userInitiated) { + do { + try await switchToNextViewController() + } catch { + assertionFailure(error.localizedDescription) + } + } + Task { + _ = await NewAppStateManager.shared.waitUntilAppIsInitializedAndMetaFlowControllerViewDidAppearAtLeastOnce() + guard let metaFlowViewController else { assertionFailure(); return } + metaFlowViewController.sceneWillResignActive(scene) + } + + } + + + func sceneWillEnterForeground(_ scene: UIScene) { + + // We now deal with the closing of opened hidden profiles: + // - If the `hiddenProfileClosePolicy` is `.background` + // - and the elapsed time since the last switch to background is "large", + // We close any opened hidden profile. + if ObvMessengerSettings.Privacy.hiddenProfileClosePolicy == .background { + let timeIntervalSinceLastChangeoverToNotActiveState = TimeInterval.getUptime() - (uptimeAtTheTimeOfChangeoverToNotActiveState ?? 0) + assert(0 <= timeIntervalSinceLastChangeoverToNotActiveState) + if timeIntervalSinceLastChangeoverToNotActiveState > ObvMessengerSettings.Privacy.timeIntervalForBackgroundHiddenProfileClosePolicy.timeInterval || ObvMessengerSettings.Privacy.timeIntervalForBackgroundHiddenProfileClosePolicy == .immediately { + Task { + // The following line allows to make sure we won't switch to the hidden profile + await LatestCurrentOwnedIdentityStorage.shared.removeLatestHiddenCurrentOWnedIdentityStored() + await switchToNonHiddenOwnedIdentityIfCurrentIsHidden() + } + } + } + + } + + + private func switchToNextViewController() async throws { + assert(Thread.isMainThread) + + let result = await NewAppStateManager.shared.waitUntilAppInitializationSucceededOrFailed() + + let obvEngine: ObvEngine + + switch result { + case .failure(let error): + return try await switchToChildViewController(type: .initializationFailure(error: error)) + case .success(let _obvEngine): + obvEngine = _obvEngine + } + + // If we reach this point, the initialization was successful. + + // Since the app did initialize, we don't want the initializerWindow to show the spinner ever again + + self.initializerViewController.appInitializationSucceeded() + + // We choose the most appropriate view controller to show depending on the current view controller and on various state variables + + guard sceneIsActive else { + // When the user choosed to lock the screen, we hide the app content each time the scene becomes inactive + if ObvMessengerSettings.Privacy.localAuthenticationPolicy.lockScreen { + return try await switchToChildViewController(type: .initializer) + } + return + } + + // If we reach this point, the scene is active + + // If there is a call in progress, show it instead of any other view controller + + if let callViewControllerModel, !preferMetaViewControllerOverCallViewController { + //return try await switchToChildViewController(type: .call(callInProgress: callInProgress)) + return try await switchToChildViewController(type: .call(model: callViewControllerModel)) + } + + // At this point, there is not call in progress (or the user prefers to see the meta view controller instead of the call view) + + if userSuccessfullyPerformedLocalAuthentication || !ObvMessengerSettings.Privacy.localAuthenticationPolicy.lockScreen { + return try await switchToChildViewController(type: .metaFlow(obvEngine: obvEngine)) + } else { + try await switchToChildViewController(type: .localAuthentication) + let localAuthenticationVC = try await getLocalAuthenticationViewController() + if shouldAutomaticallyPerformLocalAuthentication { + shouldAutomaticallyPerformLocalAuthentication = false + await localAuthenticationVC.performLocalAuthentication( + customPasscodePresentingViewController: self, + uptimeAtTheTimeOfChangeoverToNotActiveState: uptimeAtTheTimeOfChangeoverToNotActiveState) + } else { + await localAuthenticationVC.shouldPerformLocalAuthentication() + } + return + } + + } + + + private func switchToChildViewController(type: ChildViewControllerType) async throws { + + debugPrint("🫵 switchToChildViewController(\(type))") + + defer { + // Make sure the child view controller views are in the right order + if let view = localAuthenticationVC?.view { + self.view.bringSubviewToFront(view) + } + self.view.bringSubviewToFront(initializerViewController.view) + } + + switch type { + + case .initializer: + let vc = getInitializerViewController() + vc.becomeFirstResponder() + vc.view.isHidden = true + hideAllChildViewControllersBut(type: type) + + case .initializationFailure(error: let error): + let vc = getInitializationFailureViewController() + vc.becomeFirstResponder() + vc.view.isHidden = true + vc.error = error + hideAllChildViewControllersBut(type: type) + +// case .call(callInProgress: let callInProgress): +// let vc = getCallViewHostingController(callInProgress: callInProgress) +// vc.becomeFirstResponder() +// vc.view.isHidden = true +// hideAllChildViewControllersBut(type: type) + + case .call(model: let callViewControllerModel): + let vc = getOlvidCallViewController(callViewControllerModel: callViewControllerModel) + vc.becomeFirstResponder() + vc.view.isHidden = true + hideAllChildViewControllersBut(type: type) + + case .metaFlow(obvEngine: let obvEngine): + let vc = try await getMetaFlowViewController(obvEngine: obvEngine) + vc.becomeFirstResponder() + vc.view.isHidden = true + hideAllChildViewControllersBut(type: type) + + case .localAuthentication: + let vc = try await getLocalAuthenticationViewController() + vc.becomeFirstResponder() + vc.view.isHidden = true + hideAllChildViewControllersBut(type: type) + + } + + } + + + private func hideAllChildViewControllersBut(type: ChildViewControllerType) { + + let allChildViewControllers = [ + initializerViewController, + initializationFailureViewController, + //callViewHostingController, + callViewController, + metaFlowViewController, + localAuthenticationVC, + ] + + // We hide all view controllers + + allChildViewControllers.forEach { vcToHide in + vcToHide?.view.endEditing(true) + vcToHide?.view.isHidden = true + } + + // We show the appropriate one. Certain child view controllers, like the call view controller, must make sure no view controller is presented. Otherwise, the user would not see them. Other situations are a bit more complex: for example, when pasting an API key, the system request an authorization to the user, and hides the meta flow controller. When unhiding the meta flow, we don't want to dismiss the presented view controller. + + switch type { + case .initializer: + initializerViewController.view.isHidden = false + case .initializationFailure: + initializationFailureViewController?.view.isHidden = false + case .call: +// callViewHostingController?.view.isHidden = false + callViewController?.view.isHidden = false + allChildViewControllers.forEach({ $0?.presentedViewController?.dismiss(animated: true) }) + case .metaFlow: + metaFlowViewController?.view.isHidden = false + case .localAuthentication: + localAuthenticationVC?.view.isHidden = false + } + + // When type != call, we want to deallocate the CallViewController (to release the OlvidCall object) + + switch type { + case .call: + break + default: + removeCurrentCallViewController() + } + + } + + + // MARK: - Creating/Getting child view controllers + + private func getMetaFlowViewController(obvEngine: ObvEngine) async throws -> MetaFlowController { + + guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { assertionFailure(); throw ObvError.couldNotGetAppDelegate } + + if let metaFlowViewController { + + return metaFlowViewController + + } else { + + guard let createPasscodeDelegate = await appDelegate.createPasscodeDelegate else { assertionFailure(); throw ObvError.couldNotGetCreatePasscodeDelegate } + guard let localAuthenticationDelegate = await appDelegate.localAuthenticationDelegate else { assertionFailure(); throw ObvError.couldNotGetLocalAuthenticationDelegate } + guard let appBackupDelegate = await appDelegate.appBackupDelegate else { assertionFailure(); throw ObvError.couldNotGetAppBackupDelegate } + guard let storeKitDelegate = await appDelegate.storeKitDelegate else { assertionFailure(); throw ObvError.couldNotGetStoreKitDelegate } + + // Since we had to "await", another task might have created the MetaFlowController in the meantime + + if let metaFlowViewController { + return metaFlowViewController + } + + assert(self.metaFlowViewController == nil) + let shouldShowCallBanner = callViewControllerModel != nil + let metaFlowViewController = MetaFlowController( + obvEngine: obvEngine, + createPasscodeDelegate: createPasscodeDelegate, + localAuthenticationDelegate: localAuthenticationDelegate, + appBackupDelegate: appBackupDelegate, + storeKitDelegate: storeKitDelegate, + shouldShowCallBanner: shouldShowCallBanner) + + addChildViewControllerAndChildView(metaFlowViewController) + assert(self.metaFlowViewController == nil) + self.metaFlowViewController = metaFlowViewController + return metaFlowViewController + + } + + } + + + private func getInitializationFailureViewController() -> InitializationFailureViewController { + + if let initializationFailureViewController { + + return initializationFailureViewController + + } else { + + let initializationFailureViewController = InitializationFailureViewController() + addChildViewControllerAndChildView(initializationFailureViewController) + self.initializationFailureViewController = initializationFailureViewController + return initializationFailureViewController + + } + + } + + + private func getInitializerViewController() -> InitializerViewController { + + if initializerViewController.parent == nil { + addChildViewControllerAndChildView(initializerViewController) + } + + return initializerViewController + + } + + +// private func getCallViewHostingController(callInProgress: GenericCall) -> CallViewHostingController { +// +// if let callViewHostingController { +// callViewHostingController.view.removeFromSuperview() +// callViewHostingController.willMove(toParent: nil) +// callViewHostingController.removeFromParent() +// callViewHostingController.didMove(toParent: nil) +// self.callViewHostingController = nil +// } +// let callViewHostingController = CallViewHostingController(call: callInProgress) +// addChildViewControllerAndChildView(callViewHostingController) +// self.callViewHostingController = callViewHostingController +// return callViewHostingController +// +// } + + private func getOlvidCallViewController(callViewControllerModel: OlvidCallViewController.Model) -> OlvidCallViewController { + + removeCurrentCallViewController() + + let callViewController = OlvidCallViewController(model: callViewControllerModel) + addChildViewControllerAndChildView(callViewController) + self.callViewController = callViewController + return callViewController + + } + + + private func removeCurrentCallViewController() { + if let callViewController { + callViewController.view.removeFromSuperview() + callViewController.willMove(toParent: nil) + callViewController.removeFromParent() + callViewController.didMove(toParent: nil) + self.callViewController = nil + } + } + + + private func getLocalAuthenticationViewController() async throws -> LocalAuthenticationViewController { + + guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { assertionFailure(); throw ObvError.couldNotGetAppDelegate } + + if let localAuthenticationVC { + + return localAuthenticationVC + + } else { + + guard let localAuthenticationDelegate = await appDelegate.localAuthenticationDelegate else { assertionFailure(); throw ObvError.couldNotGetLocalAuthenticationDelegate } + + // Since we had to "await", another task might have created the view controller in the meantime + if let localAuthenticationVC { + return localAuthenticationVC + } + + let localAuthenticationVC = LocalAuthenticationViewController(localAuthenticationDelegate: localAuthenticationDelegate, delegate: self) + addChildViewControllerAndChildView(localAuthenticationVC) + assert(self.localAuthenticationVC == nil) + self.localAuthenticationVC = localAuthenticationVC + return localAuthenticationVC + + } + + } + + /// Helper method + private func addChildViewControllerAndChildView(_ vc: UIViewController) { + guard vc.parent == nil else { assertionFailure(); return } + vc.willMove(toParent: self) + self.addChild(vc) + vc.didMove(toParent: self) + vc.view.translatesAutoresizingMaskIntoConstraints = false + self.view.addSubview(vc.view) + self.view.pinAllSidesToSides(of: vc.view) + } + + + // MARK: - Errors + + enum ObvError: Error { + case couldNotGetLocalAuthenticationDelegate + case couldNotGetAppDelegate + case couldNotGetCreatePasscodeDelegate + case couldNotGetAppBackupDelegate + case couldNotGetStoreKitDelegate + case metaFlowViewControllerIsNotSet + } + +} + + +// MARK: - LocalAuthenticationViewControllerDelegate + +extension RootViewController { + + func userLocalAuthenticationDidSucceed(authenticationWasPerformed: Bool) async { + + userSuccessfullyPerformedLocalAuthentication = true + // If we just performed authentication, it means the screen was locked. If the hidden profile close policy is `.screenLock`, we should make sure the current identity is not hidden. + if authenticationWasPerformed && ObvMessengerSettings.Privacy.hiddenProfileClosePolicy == .screenLock { + // The following line allows to make sure we won't switch to the hidden profile + await LatestCurrentOwnedIdentityStorage.shared.removeLatestHiddenCurrentOWnedIdentityStored() + await switchToNonHiddenOwnedIdentityIfCurrentIsHidden() + } + Task(priority: .userInitiated) { [weak self] in + do { + try await self?.switchToNextViewController() + } catch { + assertionFailure(error.localizedDescription) + } + } + + } + + + func tooManyWrongPasscodeAttemptsCausedLockOut() async { + await switchToNonHiddenOwnedIdentityIfCurrentIsHidden() + ObvMessengerInternalNotification.tooManyWrongPasscodeAttemptsCausedLockOut.postOnDispatchQueue() + + } + +} + + +extension RootViewController { + + /// Allows to switch to a non hidden profile if the current one is hidden + /// + /// This is called in two cases: + /// - when the user just authenticated and the hidden profile closing policy is `screenLock` + /// - or when she was locked out after entering too many bad passcodes. + private func switchToNonHiddenOwnedIdentityIfCurrentIsHidden() async { + // In case the meta flow controller is nil, we do nothing. This is not an issue: if it is nil, there is no risk it displays a hidden profile. + await self.metaFlowViewController?.switchToNonHiddenOwnedIdentityIfCurrentIsHidden() + } + + +} + + +// MARK: - Observing notifications + +extension RootViewController { + + private func observeVoIPNotifications() { + observationTokens.append(contentsOf: [ +// VoIPNotification.observeShowCallViewControllerForAnsweringNonCallKitIncomingCall { incomingCall in +// Task(priority: .userInitiated) { [weak self] in +// self?.preferMetaViewControllerOverCallViewController = false +// await self?.setCallInProgress(to: incomingCall) +// } +// }, + VoIPNotification.observeNewCallToShow { model in + Task(priority: .userInitiated) { [weak self] in + self?.preferMetaViewControllerOverCallViewController = false + await self?.setCallViewControllerModel(to: model) + } + }, + VoIPNotification.observeNoMoreCallInProgress { + Task(priority: .userInitiated) { [weak self] in + self?.preferMetaViewControllerOverCallViewController = false + await self?.setCallViewControllerModel(to: nil) + } + }, +// VoIPNotification.observeNewOutgoingCall { newOutgoingCall in +// Task(priority: .userInitiated) { [weak self] in +// self?.preferMetaViewControllerOverCallViewController = false +// await self?.setCallInProgress(to: newOutgoingCall) +// } +// }, +// VoIPNotification.observeAnIncomingCallShouldBeShownToUser { newOutgoingCall in +// Task(priority: .userInitiated) { [weak self] in +// self?.preferMetaViewControllerOverCallViewController = false +// await self?.setCallInProgress(to: newOutgoingCall) +// } +// }, + VoIPNotification.observeHideCallView { + Task(priority: .userInitiated) { [weak self] in + self?.preferMetaViewControllerOverCallViewController = true + do { + try await self?.switchToNextViewController() + } catch { + assertionFailure(error.localizedDescription) + } + } + }, + VoIPNotification.observeShowCallView { + Task(priority: .userInitiated) { [weak self] in + self?.preferMetaViewControllerOverCallViewController = false + do { + try await self?.switchToNextViewController() + } catch { + assertionFailure(error.localizedDescription) + } + } + }, + ]) + } + +} + + +// MARK: - Managing calls + +extension RootViewController { + +// private func setCallInProgress(to call: GenericCall?) async { +// _ = await NewAppStateManager.shared.waitUntilAppIsInitialized() +// callInProgress = call +// Task(priority: .userInitiated) { [weak self] in +// do { +// try await self?.switchToNextViewController() +// } catch { +// assertionFailure(error.localizedDescription) +// } +// } +// } + + + private func setCallViewControllerModel(to newCallViewControllerModel: OlvidCallViewController.Model?) async { + _ = await NewAppStateManager.shared.waitUntilAppIsInitialized() + callViewControllerModel = newCallViewControllerModel + Task(priority: .userInitiated) { [weak self] in + do { + try await self?.switchToNextViewController() + } catch { + assertionFailure(error.localizedDescription) + } + } + } + + + private func processINStartCallIntent(startCallIntent: INStartCallIntent, obvEngine: ObvEngine) { + + os_log("📲 Process INStartCallIntent", log: Self.log, type: .info) + + guard let handle = startCallIntent.contacts?.first?.personHandle?.value else { + os_log("📲 Could not get appropriate value of INStartCallIntent", log: Self.log, type: .error) + return + } + + ObvStack.shared.performBackgroundTaskAndWait { (context) in + + if let callUUID = UUID(handle), let item = try? PersistedCallLogItem.get(callUUID: callUUID, within: context), let ownedCryptoId = item.ownedCryptoId { + let contactCryptoIds = item.logContacts.compactMap { $0.contactIdentity?.cryptoId } + let groupId = item.groupIdentifier + os_log("📲 Posting a userWantsToCallButWeShouldCheckSheIsAllowedTo notification following an INStartCallIntent", log: Self.log, type: .info) + ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(ownedCryptoId: ownedCryptoId, contactCryptoIds: Set(contactCryptoIds), groupId: groupId) + .postOnDispatchQueue() + } else if let contact = try? PersistedObvContactIdentity.getAll(within: context).first(where: { $0.getGenericHandleValue(engine: obvEngine) == handle }) { + // To be compatible with previous 1to1 versions + let contactCryptoId = contact.cryptoId + guard let ownedCryptoId = contact.ownedIdentity?.cryptoId else { return } + ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(ownedCryptoId: ownedCryptoId, contactCryptoIds: Set([contactCryptoId]), groupId: nil) + .postOnDispatchQueue() + } else { + os_log("📲 Could not parse INStartCallIntent", log: Self.log, type: .fault) + } + + } + } + + + private func processINSendMessageIntent(sendMessageIntent: INSendMessageIntent) { + os_log("📲 Process INSendMessageIntent", log: Self.log, type: .info) + + guard let handle = sendMessageIntent.recipients?.first?.personHandle?.value else { + os_log("📲 Could not get appropriate value of INSendMessageIntent", log: Self.log, type: .error) + assertionFailure() + return + } + + guard let objectPermanentID = ObvManagedObjectPermanentID(handle) else { assertionFailure(); return } + + ObvStack.shared.performBackgroundTaskAndWait { (context) in + guard let contact = try? PersistedObvContactIdentity.getManagedObject(withPermanentID: objectPermanentID, within: context) else { assertionFailure(); return } + guard let ownedCryptoId = contact.ownedIdentity?.cryptoId else { assertionFailure(); return } + let deepLink: ObvDeepLink + if let oneToOneDiscussion = contact.oneToOneDiscussion { + deepLink = .singleDiscussion(ownedCryptoId: ownedCryptoId, objectPermanentID: oneToOneDiscussion.discussionPermanentID) + } else { assertionFailure(); return } + ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: deepLink).postOnDispatchQueue() + } + } + +} + + +// MARK: - Continuing User Activities + +extension RootViewController { + + func continueUserActivities(_ userActivities: Set) { + Task { [weak self] in + for userActivity in userActivities { + await self?.continueUserActivity(userActivity) + } + } + } + + func continueUserActivity(_ userActivity: NSUserActivity) async { + let obvEngine = await NewAppStateManager.shared.waitUntilAppIsInitializedAndMetaFlowControllerViewDidAppearAtLeastOnce() + if let url = userActivity.webpageURL { + // Called when tapping the "open in" button on an "identity" webpage or when tapping a call entry in the system call log (?) + await openOlvidURL(url) + } else if let startCallIntent = userActivity.interaction?.intent as? INStartCallIntent { + processINStartCallIntent(startCallIntent: startCallIntent, obvEngine: obvEngine) + } else if let sendMessageIntent = userActivity.interaction?.intent as? INSendMessageIntent { + processINSendMessageIntent(sendMessageIntent: sendMessageIntent) + } else { + assertionFailure() + } + } + + + +} + + +// MARK: - Opening Olvid URLs + +extension RootViewController { + + private func openOlvidURL(_ url: URL) async { + assert(Thread.isMainThread) + os_log("🥏 Call to openDeepLink with URL %{public}@", log: Self.log, type: .info, url.debugDescription) + guard let olvidURL = OlvidURL(urlRepresentation: url) else { assertionFailure(); return } + os_log("An OlvidURL struct was successfully created", log: Self.log, type: .info) + await NewAppStateManager.shared.handleOlvidURL(olvidURL) + } + + + func openURLContexts(_ URLContexts: Set) { + os_log("📲 Scene openURLContexts", log: Self.log, type: .info) + // Called when tapping an Olvid link, e.g., on an invite webpage + Task { + + _ = await NewAppStateManager.shared.waitUntilAppIsInitializedAndMetaFlowControllerViewDidAppearAtLeastOnce() + + assert(URLContexts.count < 2) + if let url = URLContexts.first?.url { + + if url.scheme == "olvid" || url.scheme == "olvid.dev" { + + guard var urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: true) else { return } + urlComponents.scheme = "https" + guard let newUrl = urlComponents.url else { return } + await openOlvidURL(newUrl) + return + + } else if url.isFileURL { + + /* We are certainly dealing with an AirDrop'ed file. See + * https://developer.apple.com/library/archive/qa/qa1587/_index.html + * for handling Open in... + */ + let deepLink = ObvDeepLink.airDrop(fileURL: url) + Task { + ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: deepLink) + .postOnDispatchQueue() + } + return + + } else { + assertionFailure() + } + + } + + } + + } + +} + + +// MARK: - Performing Tasks + +extension RootViewController { + + func performActionFor(shortcutItem: UIApplicationShortcutItem) async -> Bool { + // Called when the users taps on the "Scan QR code" shortcut on the app icon + os_log("UIWindowScene perform action for shortcut", log: Self.log, type: .info) + _ = await NewAppStateManager.shared.waitUntilAppIsInitializedAndMetaFlowControllerViewDidAppearAtLeastOnce() + guard let shortcut = ApplicationShortcut(shortcutItem.type) else { assertionFailure(); return false } + let deepLink: ObvDeepLink + switch shortcut { + case .scanQRCode: + deepLink = ObvDeepLink.qrCodeScan + } + os_log("🥏 Sending a UserWantsToNavigateToDeepLink notification for shortut item %{public}@", log: Self.log, type: .info, shortcut.description) + ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: deepLink) + .postOnDispatchQueue() + return true + } + +} + + +// MARK: - KeycloakSceneDelegate + +extension RootViewController { + + func requestViewControllerForPresenting() async throws -> UIViewController { + + _ = await NewAppStateManager.shared.waitUntilAppIsInitializedAndMetaFlowControllerViewDidAppearAtLeastOnce() + + guard let metaFlowViewController else { + assertionFailure() + throw ObvError.metaFlowViewControllerIsNotSet + } + + keycloakManagerWillPresentAuthenticationScreen = true + + var viewControllerToReturn = metaFlowViewController as UIViewController + while let presentedViewController = viewControllerToReturn.presentedViewController { + viewControllerToReturn = presentedViewController + } + return viewControllerToReturn + + } + +} + + + +// MARK: - Helpers + +extension RootViewController.ChildViewControllerType: CustomDebugStringConvertible { + + var debugDescription: String { + switch self { + case .initializer: return "initializer" + case .initializationFailure: return "initializationFailure" + case .call: return "call" + case .metaFlow: return "metaFlow" + case .localAuthentication: return "localAuthentication" + } + } + +} + + +fileprivate extension PersistedObvContactIdentity { + + func getGenericHandleValue(engine: ObvEngine) -> String? { + guard let context = self.managedObjectContext else { assertionFailure(); return nil } + var _handleTagData: Data? + context.performAndWait { + guard let ownedIdentity = self.ownedIdentity else { assertionFailure(); return } + do { + _handleTagData = try engine.computeTagForOwnedIdentity(with: ownedIdentity.cryptoId, on: self.cryptoId.getIdentity()) + } catch { + assertionFailure() + return + } + } + guard let handleTagData = _handleTagData else { assertionFailure(); return nil } + return handleTagData.base64EncodedString() + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/SceneDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/SceneDelegate.swift index 86c12467..cc5e4055 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/SceneDelegate.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/SceneDelegate.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,45 +25,20 @@ import ObvEngine import OlvidUtils import ObvUICoreData +final class SceneDelegate: UIResponder, UIWindowSceneDelegate { -class SceneDelegate: UIResponder, UIWindowSceneDelegate, KeycloakSceneDelegate, ObvErrorMaker { - - static let errorDomain = "SceneDelegate" - - private var initializerWindow: UIWindow? - private var localAuthenticationWindow: UIWindow? - private var initializationFailureWindow: UIWindow? - private var metaWindow: UIWindow? - private var callWindow: UIWindow? - - private let animator = UIViewPropertyAnimator(duration: 0.15, curve: .linear) + var window: UIWindow? + var privacyWindow: UIWindow? // For iOS - private var allWindows: [UIWindow?] { [ - initializerWindow, - localAuthenticationWindow, - initializationFailureWindow, - metaWindow, - callWindow, - ] } + private var rootViewController: RootViewController? + private let privacyViewControler = UIStoryboard(name: "LaunchScreen", bundle: nil).instantiateInitialViewController()! - private var callNotificationObserved = false - private var observationTokens = [NSObjectProtocol]() - - private var sceneIsActive = false - private var userSuccessfullyPerformedLocalAuthentication = false - private var shouldAutomaticallyPerformLocalAuthentication = true - private var callInProgress: GenericCall? - private var preferMetaWindowOverCallWindow = false - private var keycloakManagerWillPresentAuthenticationScreen = false - - private var uptimeAtTheTimeOfChangeoverToNotActiveStateForScene = [UIScene: TimeInterval]() - private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "SceneDelegate") - - deinit { - observationTokens.forEach { NotificationCenter.default.removeObserver($0) } - } + /// On some occasions, we want to prevent the privacy window from showing the next time ``SceneDelegate.sceneWillResignActive(_:)`` is called. + /// This variable is typically set to `true` from a child view controller, just before showing a system alert. This is for example the case during onboarding, + /// when requesting the authorization to send push notifications. + fileprivate var preventPrivacyWindowFromShowingOnNextWillResignActive = false func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. @@ -74,136 +49,100 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate, KeycloakSceneDelegate, guard let windowScene = (scene as? UIWindowScene) else { assertionFailure(); return } - initializerWindow = UIWindow(windowScene: windowScene) - initializerWindow?.rootViewController = InitializerViewController() - changeKeyWindow(to: initializerWindow) - - observeVoIPNotifications(scene) - + let rootViewController = RootViewController() + self.rootViewController = rootViewController + let window = UIWindow(windowScene: windowScene) + window.rootViewController = rootViewController + window.makeKeyAndVisible() + self.window = window + + let privacyWindow = UIWindow(windowScene: windowScene) + privacyWindow.windowLevel = .alert + privacyWindow.rootViewController = privacyViewControler + privacyWindow.makeKeyAndVisible() + self.privacyWindow = privacyWindow + if !connectionOptions.userActivities.isEmpty { os_log("📲 Scene will connect with user activities", log: Self.log, type: .info) - Task { [weak self] in - for userActivity in connectionOptions.userActivities { - self?.scene(scene, continue: userActivity) - } - } + rootViewController.continueUserActivities(connectionOptions.userActivities) } - + if !connectionOptions.urlContexts.isEmpty { os_log("📲 Scene will connect with url contexts", log: Self.log, type: .info) - Task { [weak self] in - self?.scene(scene, openURLContexts: connectionOptions.urlContexts) - } + rootViewController.openURLContexts(connectionOptions.urlContexts) } - + if let shortcutItem = connectionOptions.shortcutItem { os_log("📲 Scene will connect with a shortcutItem", log: Self.log, type: .info) Task { [weak self] in - await self?.windowScene(windowScene, performActionFor: shortcutItem) + assert(self?.rootViewController != nil) + _ = await self?.rootViewController?.performActionFor(shortcutItem: shortcutItem) } } } + + + func scene(_ scene: UIScene, openURLContexts URLContexts: Set) { + // Called when, e.g., the user taps on an Olvid backup file from the Files app. + os_log("🧦 openURLContexts", log: Self.log, type: .info) + rootViewController?.openURLContexts(URLContexts) + } + func sceneDidDisconnect(_ scene: UIScene) { // Called as the scene is being released by the system. // This occurs shortly after the scene enters the background, or when its session is discarded. // Release any resources associated with this scene that can be re-created the next time the scene connects. // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). - debugPrint("sceneDidDisconnect") os_log("🧦 sceneDidDisconnect", log: Self.log, type: .info) } + func sceneDidBecomeActive(_ scene: UIScene) { // Called when the scene has moved from an inactive state to an active state. // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. - sceneIsActive = true - Task(priority: .userInitiated) { - await switchToNextWindowForScene(scene) - } - Task { - _ = await NewAppStateManager.shared.waitUntilAppIsInitializedAndMetaFlowControllerViewDidAppearAtLeastOnce() - await KeycloakManagerSingleton.shared.setKeycloakSceneDelegate(to: self) - if let metaWindow = metaWindow, let metaFlowController = metaWindow.rootViewController as? MetaFlowController { - metaFlowController.sceneDidBecomeActive(scene) - } else { - assertionFailure() - } - } + os_log("🧦 sceneDidBecomeActive", log: Self.log, type: .info) + assert(rootViewController != nil) + rootViewController?.sceneDidBecomeActive(scene) + self.privacyWindow?.resignKey() + self.privacyWindow?.isHidden = true } + func sceneWillResignActive(_ scene: UIScene) { // Called when the scene will move from an active state to an inactive state. // This may occur due to temporary interruptions (ex. an incoming phone call). - os_log("🧦 sceneWillResignActive", log: Self.log, type: .info) - - sceneIsActive = false - - // If the keycloak manager is about to present a Safari authentication screen, we ignore the fact that the scene will resign active. - guard !keycloakManagerWillPresentAuthenticationScreen else { - keycloakManagerWillPresentAuthenticationScreen = false - return - } - - Task(priority: .userInitiated) { - await switchToNextWindowForScene(scene) - } - Task { - _ = await NewAppStateManager.shared.waitUntilAppIsInitializedAndMetaFlowControllerViewDidAppearAtLeastOnce() - if let metaWindow = metaWindow, let metaFlowController = metaWindow.rootViewController as? MetaFlowController { - metaFlowController.sceneWillResignActive(scene) - } else { - assertionFailure() - } + assert(rootViewController != nil) + rootViewController?.sceneWillResignActive(scene) + if !preventPrivacyWindowFromShowingOnNextWillResignActive { + self.privacyWindow?.makeKeyAndVisible() } + preventPrivacyWindowFromShowingOnNextWillResignActive = false } + func sceneWillEnterForeground(_ scene: UIScene) { // Called as the scene transitions from the background to the foreground. // Use this method to undo the changes made on entering the background. - debugPrint("sceneWillEnterForeground") os_log("🧦 sceneWillEnterForeground", log: Self.log, type: .info) - - // We now deal with the closing of opened hidden profiles: - // - If the `hiddenProfileClosePolicy` is `.background` - // - and the elapsed time since the last switch to background is "large", - // We close any opened hidden profile. - if ObvMessengerSettings.Privacy.hiddenProfileClosePolicy == .background { - let uptimeAtTheTimeOfChangeoverToNotActiveState = uptimeAtTheTimeOfChangeoverToNotActiveStateForScene[scene] ?? 0 - let timeIntervalSinceLastChangeoverToNotActiveState = TimeInterval.getUptime() - uptimeAtTheTimeOfChangeoverToNotActiveState - assert(0 <= timeIntervalSinceLastChangeoverToNotActiveState) - if timeIntervalSinceLastChangeoverToNotActiveState > ObvMessengerSettings.Privacy.timeIntervalForBackgroundHiddenProfileClosePolicy.timeInterval || ObvMessengerSettings.Privacy.timeIntervalForBackgroundHiddenProfileClosePolicy == .immediately { - Task { - // The following line allows to make sure we won't switch to the hidden profile - await LatestCurrentOwnedIdentityStorage.shared.removeLatestHiddenCurrentOWnedIdentityStored() - await switchToNonHiddenOwnedIdentityIfCurrentIsHidden() - } - } - } - + assert(rootViewController != nil) + preventPrivacyWindowFromShowingOnNextWillResignActive = false + rootViewController?.sceneWillEnterForeground(scene) + window?.makeKeyAndVisible() } + func sceneDidEnterBackground(_ scene: UIScene) { // Called as the scene transitions from the foreground to the background. // Use this method to save data, release shared resources, and store enough scene-specific state information to restore the scene back to its current state. - os_log("🧦 sceneDidEnterBackground", log: Self.log, type: .info) - - // If the user successfully authenticated, we want to reset reset the `uptimeAtTheTimeOfChangeoverToNotActiveState` for this scene. - // Note that if the user successfully authenticated, it means that the app was initialized properly. - if userSuccessfullyPerformedLocalAuthentication { - uptimeAtTheTimeOfChangeoverToNotActiveStateForScene[scene] = TimeInterval.getUptime() - } - - userSuccessfullyPerformedLocalAuthentication = false - shouldAutomaticallyPerformLocalAuthentication = true - keycloakManagerWillPresentAuthenticationScreen = false - + assert(rootViewController != nil) + rootViewController?.sceneDidEnterBackground(scene) } - // MARK: - Continuing User Activities func scene(_ scene: UIScene, willContinueUserActivityWithType userActivityType: String) { @@ -217,17 +156,8 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate, KeycloakSceneDelegate, os_log("📲 Continue user activity", log: Self.log, type: .info) Task { assert(Thread.isMainThread) - let obvEngine = await NewAppStateManager.shared.waitUntilAppIsInitializedAndMetaFlowControllerViewDidAppearAtLeastOnce() - if let url = userActivity.webpageURL { - // Called when tapping the "open in" button on an "identity" webpage or when tapping a call entry in the system call log (?) - await openOlvidURL(url) - } else if let startCallIntent = userActivity.interaction?.intent as? INStartCallIntent { - processINStartCallIntent(startCallIntent: startCallIntent, obvEngine: obvEngine) - } else if let sendMessageIntent = userActivity.interaction?.intent as? INSendMessageIntent { - processINSendMessageIntent(sendMessageIntent: sendMessageIntent) - } else { - assertionFailure() - } + assert(rootViewController != nil) + await rootViewController?.continueUserActivity(userActivity) } } @@ -243,455 +173,20 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate, KeycloakSceneDelegate, func windowScene(_ windowScene: UIWindowScene, performActionFor shortcutItem: UIApplicationShortcutItem) async -> Bool { // Called when the users taps on the "Scan QR code" shortcut on the app icon os_log("UIWindowScene perform action for shortcut", log: Self.log, type: .info) - _ = await NewAppStateManager.shared.waitUntilAppIsInitializedAndMetaFlowControllerViewDidAppearAtLeastOnce() - guard let shortcut = ApplicationShortcut(shortcutItem.type) else { assertionFailure(); return false } - let deepLink: ObvDeepLink - switch shortcut { - case .scanQRCode: - deepLink = ObvDeepLink.qrCodeScan - } - os_log("🥏 Sending a UserWantsToNavigateToDeepLink notification for shortut item %{public}@", log: Self.log, type: .info, shortcut.description) - ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: deepLink) - .postOnDispatchQueue() - return true - } - - - // MARK: - Opening URLs - - func scene(_ scene: UIScene, openURLContexts URLContexts: Set) { - os_log("📲 Scene openURLContexts", log: Self.log, type: .info) - // Called when tapping an Olvid link, e.g., on an invite webpage - Task { - - _ = await NewAppStateManager.shared.waitUntilAppIsInitializedAndMetaFlowControllerViewDidAppearAtLeastOnce() - - assert(URLContexts.count < 2) - if let url = URLContexts.first?.url { - - if url.scheme == "olvid" { - - guard var urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: true) else { return } - urlComponents.scheme = "https" - guard let newUrl = urlComponents.url else { return } - await openOlvidURL(newUrl) - return - - } else if url.isFileURL { - - /* We are certainly dealing with an AirDrop'ed file. See - * https://developer.apple.com/library/archive/qa/qa1587/_index.html - * for handling Open in... - */ - let deepLink = ObvDeepLink.airDrop(fileURL: url) - Task { - ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: deepLink) - .postOnDispatchQueue() - } - return - - } else { - assertionFailure() - } - - } - - } - - } - - - // MARK: - Switching between windows - - @MainActor - private func switchToNextWindowForScene(_ scene: UIScene) async { - assert(Thread.isMainThread) - - guard let windowScene = (scene as? UIWindowScene) else { assertionFailure(); return } - guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { assertionFailure(); return } - - // When switching view controller, we alway make sure the metaWindow is available. - // The only exception is when the initialization failed. - - if metaWindow == nil { - let result = await NewAppStateManager.shared.waitUntilAppInitializationSucceededOrFailed() - switch result { - case .failure(let error): - initializationFailureWindow = UIWindow(windowScene: windowScene) - let initializationFailureVC = InitializationFailureViewController() - initializationFailureVC.error = error - let nav = UINavigationController(rootViewController: initializationFailureVC) - initializationFailureWindow?.rootViewController = nav - changeKeyWindow(to: initializationFailureWindow) - return - case .success(let obvEngine): - if metaWindow == nil { - metaWindow = UIWindow(windowScene: windowScene) - guard let createPasscodeDelegate = await appDelegate.createPasscodeDelegate else { assertionFailure(); return } - guard let appBackupDelegate = await appDelegate.appBackupDelegate else { assertionFailure(); return } - metaWindow?.rootViewController = MetaFlowController(obvEngine: obvEngine, createPasscodeDelegate: createPasscodeDelegate, appBackupDelegate: appBackupDelegate) - metaWindow?.alpha = 0.0 - } - } - } - - // We make sure all the windows are instanciated - - if localAuthenticationWindow == nil { - localAuthenticationWindow = UIWindow(windowScene: windowScene) - guard let localAuthenticationDelegate = await appDelegate.localAuthenticationDelegate else { assertionFailure(); return } - let localAuthenticationVC = LocalAuthenticationViewController(localAuthenticationDelegate: localAuthenticationDelegate, delegate: self) - localAuthenticationWindow?.rootViewController = localAuthenticationVC - } - - // If we reach this point, we know the initialization succeeded and that the metaWindow was initialized - - guard let initializerWindow = self.initializerWindow, - let metaWindow = self.metaWindow, - let localAuthenticationWindow = self.localAuthenticationWindow else { - assertionFailure(); return - } - - // Since the app did initialize, we don't want the initializerWindow to show the spinner ever again - - (initializerWindow.rootViewController as? InitializerViewController)?.appInitializationSucceeded() - - // We choose the most appropriate window to show depending on the current key window and on various state variables - - if sceneIsActive { - - // If there is a call in progress, show it instead of any other view controller - - if let callInProgress = callInProgress, !preferMetaWindowOverCallWindow { - if callWindow == nil || (callWindow?.rootViewController as? CallViewHostingController)?.callUUID != callInProgress.uuid { - callWindow = UIWindow(windowScene: windowScene) - callWindow?.rootViewController = CallViewHostingController(call: callInProgress) - } - changeKeyWindow(to: callWindow) - return - } - - // At this point, there is not call in progress - - if initializerWindow.isKeyWindow || callWindow?.isKeyWindow == true || localAuthenticationWindow.isKeyWindow { - if userSuccessfullyPerformedLocalAuthentication || !ObvMessengerSettings.Privacy.localAuthenticationPolicy.lockScreen { - changeKeyWindow(to: metaWindow) - return - } else { - changeKeyWindow(to: localAuthenticationWindow) - let localAuthenticationViewController = localAuthenticationWindow.rootViewController as? LocalAuthenticationViewController - if shouldAutomaticallyPerformLocalAuthentication { - shouldAutomaticallyPerformLocalAuthentication = false - let uptimeAtTheTimeOfChangeoverToNotActiveState = uptimeAtTheTimeOfChangeoverToNotActiveStateForScene[scene] - await localAuthenticationViewController?.performLocalAuthentication(uptimeAtTheTimeOfChangeoverToNotActiveState: uptimeAtTheTimeOfChangeoverToNotActiveState) - } else { - await localAuthenticationViewController?.shouldPerformLocalAuthentication() - } - return - } - } - } else { - // When the user choosed to lock the screen, we hide the app content each time the scene becomes inactive - if ObvMessengerSettings.Privacy.localAuthenticationPolicy.lockScreen { - changeKeyWindow(to: initializerWindow) - } - } + assert(rootViewController != nil) + guard let rootViewController else { return false } + return await rootViewController.performActionFor(shortcutItem: shortcutItem) } - - - private func debugDescriptionOfWindow(_ window: UIWindow) -> String { - switch window { - case initializerWindow: - return "Initializer window" - case localAuthenticationWindow: - return "Local authentication window" - case initializationFailureWindow: - return "Initialization failure window" - case metaWindow: - return "Meta Window" - case callWindow: - return "Call Window" - default: - assertionFailure() - return "Unknown" - } - } - - /// Exclusivemy called from ``func switchToNextWindowForScene(_ scene: UIScene) async``. - @MainActor - private func changeKeyWindow(to newKeyWindow: UIWindow?) { - guard let newKeyWindow = newKeyWindow else { assertionFailure(); return } - - // Find the current key window, if none can be found, show one requested - - guard let currentKeyWindow = allWindows.compactMap({ $0 }).first(where: { $0.isKeyWindow }) else { - newKeyWindow.alpha = 1.0 - newKeyWindow.makeKeyAndVisible() - return - } - - // If the current key window is the one requested, there is nothing left to do - - guard currentKeyWindow != newKeyWindow else { return } - - // We have a current key window and a (distinct) window that must become key and visisble. - - // If an animation is in progress, stop it - - if animator.state == UIViewAnimatingState.active { - animator.stopAnimation(true) - } - - // We choose the appropriate animation for the transition between the windows - - debugPrint("🪟 Changing from \(debugDescriptionOfWindow(currentKeyWindow)) to \(debugDescriptionOfWindow(newKeyWindow))") - - switch (currentKeyWindow, newKeyWindow) { - case (initializerWindow, metaWindow), - (metaWindow, callWindow), - (callWindow, metaWindow): - - newKeyWindow.makeKeyAndVisible() - - animator.addAnimations { - newKeyWindow.alpha = 1.0 - } - - animator.addCompletion { [weak self] animatingPosition in - guard animatingPosition == .end else { return } - // If the animation ended, we make sure all non-key windows are properly hidden - self?.hideAllNonKeyWindows() - } - - animator.startAnimation() - - default: - - // No animation - newKeyWindow.alpha = 1.0 - newKeyWindow.makeKeyAndVisible() - hideAllNonKeyWindows() - } - - - } - - - private func hideAllNonKeyWindows() { - let allNonKeyWindows = allWindows.compactMap({ $0 }).filter({ !$0.isKeyWindow }) - allNonKeyWindows.forEach { window in - window.alpha = 0.0 - } - } - - - // MARK: - Managing calls - - @MainActor - private func setCallInProgress(to call: GenericCall?, for scene: UIScene) async { - _ = await NewAppStateManager.shared.waitUntilAppIsInitialized() - callInProgress = call - Task(priority: .userInitiated) { - await switchToNextWindowForScene(scene) - } - } - - - private func observeVoIPNotifications(_ scene: UIScene) { - guard !callNotificationObserved else { return } - defer { callNotificationObserved = true } - observationTokens.append(contentsOf: [ - VoIPNotification.observeShowCallViewControllerForAnsweringNonCallKitIncomingCall { incomingCall in - Task(priority: .userInitiated) { [weak self] in - self?.preferMetaWindowOverCallWindow = false - await self?.setCallInProgress(to: incomingCall, for: scene) - } - }, - VoIPNotification.observeNoMoreCallInProgress { - Task(priority: .userInitiated) { [weak self] in - self?.preferMetaWindowOverCallWindow = false - await self?.setCallInProgress(to: nil, for: scene) - } - }, - VoIPNotification.observeNewOutgoingCall { newOutgoingCall in - Task(priority: .userInitiated) { [weak self] in - self?.preferMetaWindowOverCallWindow = false - await self?.setCallInProgress(to: newOutgoingCall, for: scene) - } - }, - VoIPNotification.observeAnIncomingCallShouldBeShownToUser { newOutgoingCall in - Task(priority: .userInitiated) { [weak self] in - self?.preferMetaWindowOverCallWindow = false - await self?.setCallInProgress(to: newOutgoingCall, for: scene) - } - }, - VoIPNotification.observeHideCallView(queue: .main) { - Task(priority: .userInitiated) { [weak self] in - self?.preferMetaWindowOverCallWindow = true - await self?.switchToNextWindowForScene(scene) - } - }, - VoIPNotification.observeShowCallView(queue: .main) { - Task(priority: .userInitiated) { [weak self] in - self?.preferMetaWindowOverCallWindow = false - await self?.switchToNextWindowForScene(scene) - } - }, - ]) - } - - - private func processINStartCallIntent(startCallIntent: INStartCallIntent, obvEngine: ObvEngine) { - - os_log("📲 Process INStartCallIntent", log: Self.log, type: .info) - - guard let handle = startCallIntent.contacts?.first?.personHandle?.value else { - os_log("📲 Could not get appropriate value of INStartCallIntent", log: Self.log, type: .error) - return - } - - ObvStack.shared.performBackgroundTaskAndWait { (context) in - - if let callUUID = UUID(handle), let item = try? PersistedCallLogItem.get(callUUID: callUUID, within: context) { - let contacts = item.logContacts.compactMap { $0.contactIdentity?.typedObjectID } - os_log("📲 Posting a userWantsToCallButWeShouldCheckSheIsAllowedTo notification following an INStartCallIntent", log: Self.log, type: .info) - ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(contactIDs: contacts, groupId: try? item.getGroupIdentifier()).postOnDispatchQueue() - } else if let contact = try? PersistedObvContactIdentity.getAll(within: context).first(where: { $0.getGenericHandleValue(engine: obvEngine) == handle }) { - // To be compatible with previous 1to1 versions - let contacts = [contact.typedObjectID] - ObvMessengerInternalNotification.userWantsToCallButWeShouldCheckSheIsAllowedTo(contactIDs: contacts, groupId: nil).postOnDispatchQueue() - } else { - os_log("📲 Could not parse INStartCallIntent", log: Self.log, type: .fault) - } - - } - } - - - private func processINSendMessageIntent(sendMessageIntent: INSendMessageIntent) { - os_log("📲 Process INSendMessageIntent", log: Self.log, type: .info) - - guard let handle = sendMessageIntent.recipients?.first?.personHandle?.value else { - os_log("📲 Could not get appropriate value of INSendMessageIntent", log: Self.log, type: .error) - assertionFailure() - return - } - - guard let objectPermanentID = ObvManagedObjectPermanentID(handle) else { assertionFailure(); return } - - ObvStack.shared.performBackgroundTaskAndWait { (context) in - guard let contact = try? PersistedObvContactIdentity.getManagedObject(withPermanentID: objectPermanentID, within: context) else { assertionFailure(); return } - guard let ownedCryptoId = contact.ownedIdentity?.cryptoId else { assertionFailure(); return } - let deepLink: ObvDeepLink - if let oneToOneDiscussion = contact.oneToOneDiscussion { - deepLink = .singleDiscussion(ownedCryptoId: ownedCryptoId, objectPermanentID: oneToOneDiscussion.discussionPermanentID) - } else { assertionFailure(); return } - ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: deepLink).postOnDispatchQueue() - } - } - - - // MARK: - Opening Olvid URLs - - @MainActor - private func openOlvidURL(_ url: URL) async { - assert(Thread.isMainThread) - os_log("🥏 Call to openDeepLink with URL %{public}@", log: Self.log, type: .info, url.debugDescription) - guard let olvidURL = OlvidURL(urlRepresentation: url) else { assertionFailure(); return } - os_log("An OlvidURL struct was successfully created", log: Self.log, type: .info) - await NewAppStateManager.shared.handleOlvidURL(olvidURL) - } - - -} - - -// MARK: - LocalAuthenticationViewControllerDelegate - -extension SceneDelegate: LocalAuthenticationViewControllerDelegate { - - @MainActor - func userLocalAuthenticationDidSucceed(authenticationWasPerformed: Bool) async { - userSuccessfullyPerformedLocalAuthentication = true - guard let scene = localAuthenticationWindow?.windowScene else { assertionFailure(); return } - // If we just performed authentication, it means the screen was locked. If the hidden profile close policy is `.screenLock`, we should make sure the current identity is not hidden. - if authenticationWasPerformed && ObvMessengerSettings.Privacy.hiddenProfileClosePolicy == .screenLock { - // The following line allows to make sure we won't switch to the hidden profile - await LatestCurrentOwnedIdentityStorage.shared.removeLatestHiddenCurrentOWnedIdentityStored() - await switchToNonHiddenOwnedIdentityIfCurrentIsHidden() - } - Task(priority: .userInitiated) { - await switchToNextWindowForScene(scene) - } - } - - @MainActor - func tooManyWrongPasscodeAttemptsCausedLockOut() async { - await switchToNonHiddenOwnedIdentityIfCurrentIsHidden() - ObvMessengerInternalNotification.tooManyWrongPasscodeAttemptsCausedLockOut.postOnDispatchQueue() - } - - - /// Allows to switch to a non hidden profile if the current one is hidden - /// - /// This is called in two cases: - /// - when the user just authenticated and the hidden profile closing policy is `screenLock` - /// - or when she was locked out after entering too many bad passcodes. - private func switchToNonHiddenOwnedIdentityIfCurrentIsHidden() async { - let metaFlowController = metaWindow?.rootViewController as? MetaFlowController - // In case the meta flow controller is nil, we do nothing. This is not an issue: if it is nil, there is no risk it displays a hidden profile. - await metaFlowController?.switchToNonHiddenOwnedIdentityIfCurrentIsHidden() - } - } -// MARK: - KeycloakSceneDelegate +// MARK: - Helper of all UIViewControllers -extension SceneDelegate { +extension UIViewController { - func requestViewControllerForPresenting() async throws -> UIViewController { - - _ = await NewAppStateManager.shared.waitUntilAppIsInitializedAndMetaFlowControllerViewDidAppearAtLeastOnce() - - guard let metaWindow = metaWindow else { - throw Self.makeError(message: "The meta window is not set, unexpected at this point") - } - - guard let rootViewController = metaWindow.rootViewController else { - throw Self.makeError(message: "The root view controller is not set, unexpected at this point") - } - - assert(rootViewController is MetaFlowController) - - keycloakManagerWillPresentAuthenticationScreen = true - - return rootViewController - - } - -} - - -// MARK: - PersistedObvContactIdentity utils - -fileprivate extension PersistedObvContactIdentity { - - func getGenericHandleValue(engine: ObvEngine) -> String? { - guard let context = self.managedObjectContext else { assertionFailure(); return nil } - var _handleTagData: Data? - context.performAndWait { - guard let ownedIdentity = self.ownedIdentity else { assertionFailure(); return } - do { - _handleTagData = try engine.computeTagForOwnedIdentity(with: ownedIdentity.cryptoId, on: self.cryptoId.getIdentity()) - } catch { - assertionFailure() - return - } - } - guard let handleTagData = _handleTagData else { assertionFailure(); return nil } - return handleTagData.base64EncodedString() + func preventPrivacyWindowSceneFromShowingOnNextWillResignActive() { + (self.view.window?.windowScene?.delegate as? SceneDelegate)?.preventPrivacyWindowFromShowingOnNextWillResignActive = true } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Singletons/AppTheme.swift b/iOSClient/ObvMessenger/ObvMessenger/Singletons/AppTheme.swift index 5f865cba..5923e9d3 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Singletons/AppTheme.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Singletons/AppTheme.swift @@ -22,6 +22,7 @@ import ObvEngine import ObvTypes import ObvCrypto import ObvUI +import ObvDesignSystem final class ObvSemanticColorScheme { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Singletons/NetworkStatus.swift b/iOSClient/ObvMessenger/ObvMessenger/Singletons/NetworkStatus.swift index d3c83ce6..2f246772 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Singletons/NetworkStatus.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Singletons/NetworkStatus.swift @@ -25,13 +25,12 @@ final class NetworkStatus { static let shared = NetworkStatus() - private let monitor: NWPathMonitor + private let monitor = NWPathMonitor() private let networkQueue = DispatchQueue(label: "Queue for monitoring network path changes") private var currentInterfaceType: NWInterface.InterfaceType? private var currentIsConnectedStatus: Bool init() { - monitor = NWPathMonitor() currentIsConnectedStatus = (monitor.currentPath.status == .satisfied) monitor.pathUpdateHandler = { [weak self] in self?.pathUpdateHandler(nWPath: $0) } monitor.start(queue: networkQueue) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Singletons/ObvDisplayableLogs.swift b/iOSClient/ObvMessenger/ObvMessenger/Singletons/ObvDisplayableLogs.swift index 001df5df..3f0843a2 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Singletons/ObvDisplayableLogs.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Singletons/ObvDisplayableLogs.swift @@ -19,6 +19,8 @@ import Foundation import ObvUICoreData +import ObvSettings + final class ObvDisplayableLogs { @@ -47,22 +49,20 @@ final class ObvDisplayableLogs { let now = Date() let dateFormatterForLog = self.dateFormatterForLog let dateFormatterForFilename = self.dateFormatterForFilename - if #available(iOS 13.4, *) { - let logURL = self.logURL - internalQueue.async { - guard let data = dateFormatterForLog.string(from: now).appending(" - ").appending(string).appending("\n").data(using: .utf8) else { return } + let logURL = self.logURL + internalQueue.async { + guard let data = dateFormatterForLog.string(from: now).appending(" - ").appending(string).appending("\n").data(using: .utf8) else { return } + if let fh = try? FileHandle(forWritingTo: logURL) { + defer { try? fh.close() } + _ = try? fh.seekToEnd() + fh.write(data) + } else { + guard let firstline = dateFormatterForFilename.string(from: now).appending("\n").data(using: .utf8) else { return } + try? firstline.write(to: logURL) if let fh = try? FileHandle(forWritingTo: logURL) { defer { try? fh.close() } _ = try? fh.seekToEnd() fh.write(data) - } else { - guard let firstline = dateFormatterForFilename.string(from: now).appending("\n").data(using: .utf8) else { return } - try? firstline.write(to: logURL) - if let fh = try? FileHandle(forWritingTo: logURL) { - defer { try? fh.close() } - _ = try? fh.seekToEnd() - fh.write(data) - } } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Singletons/ObvPushNotificationManager.swift b/iOSClient/ObvMessenger/ObvMessenger/Singletons/ObvPushNotificationManager.swift index a23d63f7..1989b035 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Singletons/ObvPushNotificationManager.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Singletons/ObvPushNotificationManager.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -21,6 +21,10 @@ import Foundation import os.log import ObvEngine import ObvUICoreData +import OlvidUtils +import ObvTypes +import ObvSettings + actor ObvPushNotificationManager { @@ -62,8 +66,6 @@ actor ObvPushNotificationManager { } - private var kickOtherDevicesOnNextRegister = false - // Private variables private var notificationTokens = [NSObjectProtocol]() @@ -76,33 +78,90 @@ actor ObvPushNotificationManager { private func observeNotifications() { let log = self.log notificationTokens.append(contentsOf: [ - ObvEngineNotificationNew.observeServerRequiresThisDeviceToRegisterToPushNotifications(within: NotificationCenter.default) { ownedCryptoId in + ObvEngineNotificationNew.observeServerRequiresAllActiveOwnedIdentitiesToRegisterToPushNotifications(within: NotificationCenter.default) { os_log("Since the server reported that we need to register to push notification, we do so now", log: log, type: .info) - Task { [weak self] in await self?.tryToRegisterToPushNotifications() } + Task { [weak self] in await self?.requestRegisterToPushNotificationsForAllActiveOwnedIdentities() } }, - ObvMessengerSettingsNotifications.observeIsCallKitEnabledSettingDidChange { [weak self] in - Task { [weak self] in await self?.tryToRegisterToPushNotifications() } + ObvMessengerSettingsNotifications.observeReceiveCallsOnThisDeviceSettingDidChange { [weak self] in + Task { [weak self] in await self?.requestRegisterToPushNotificationsForAllActiveOwnedIdentities() } }, + ObvEngineNotificationNew.observeEngineRequiresOwnedIdentityToRegisterToPushNotifications(within: NotificationCenter.default) { _ in + Task { [weak self] in await self?.requestRegisterToPushNotificationsForAllActiveOwnedIdentities() } + } ]) } - func doKickOtherDevicesOnNextRegister() { - kickOtherDevicesOnNextRegister = true + func requestRegisterToPushNotificationsForAllActiveOwnedIdentities() async { + + let obvEngine = await NewAppStateManager.shared.waitUntilAppIsInitialized() + + let defaultDeviceNameForFirstRegistration = await UIDevice.current.preciseModel + + let tokens: (pushToken: Data, voipToken: Data?)? + if ObvMessengerConstants.areRemoteNotificationsAvailable { + if let _currentDeviceToken = currentDeviceToken { + let voipToken = ObvMessengerSettings.VoIP.receiveCallsOnThisDevice ? currentVoipToken : nil + tokens = (_currentDeviceToken, voipToken) + } else { + tokens = nil + } + } else { + tokens = nil + } + + do { + os_log("🍎 Will call registerToPushNotificationFor (tokens is %{public}@, voipToken is %{public}@)", log: log, type: .info, tokens == nil ? "nil" : "set", tokens?.voipToken == nil ? "nil" : "set") + try await obvEngine.requestRegisterToPushNotificationsForAllActiveOwnedIdentities(deviceTokens: tokens, defaultDeviceNameForFirstRegistration: defaultDeviceNameForFirstRegistration) + os_log("🍎 Youpi, we successfully requested to register to remote push notifications", log: log, type: .info) + } catch { + os_log("🍎 We Could not register to push notifications", log: log, type: .fault) + return + } + } - func tryToRegisterToPushNotifications() async { + func userRequestedReactivationOf(ownedCryptoId: ObvCryptoId, replacedDeviceIdentifier: Data?) async throws { + let obvEngine = await NewAppStateManager.shared.waitUntilAppIsInitialized() - tryToRegisterToPushNotifications(obvEngine: obvEngine) + + let deviceNameForFirstRegistration = await UIDevice.current.preciseModel + + let tokens: (pushToken: Data, voipToken: Data?)? + if ObvMessengerConstants.areRemoteNotificationsAvailable { + if let _currentDeviceToken = currentDeviceToken { + let voipToken = ObvMessengerSettings.VoIP.receiveCallsOnThisDevice ? currentVoipToken : nil + tokens = (_currentDeviceToken, voipToken) + } else { + tokens = nil + } + } else { + tokens = nil + } + + do { + try await obvEngine.reactivateOwnedIdentity(ownedCryptoId: ownedCryptoId, deviceTokens: tokens, deviceNameForFirstRegistration: deviceNameForFirstRegistration, replacedDeviceIdentifier: replacedDeviceIdentifier) + } catch { + os_log("🍎 We could not reactivate owned identity", log: log, type: .fault) + throw error + } + + os_log("🍎 Youpi, we successfully reactivated the owned identity", log: log, type: .info) + } - private func tryToRegisterToPushNotifications(obvEngine: ObvEngine) { + func updateKeycloakPushTopicsIfNeeded(ownedCryptoId: ObvCryptoId, pushTopics: Set) async throws { + + let obvEngine = await NewAppStateManager.shared.waitUntilAppIsInitialized() + + let deviceNameForFirstRegistration = await UIDevice.current.preciseModel + let tokens: (pushToken: Data, voipToken: Data?)? if ObvMessengerConstants.areRemoteNotificationsAvailable { if let _currentDeviceToken = currentDeviceToken { - let voipToken = ObvMessengerSettings.VoIP.isCallKitEnabled ? currentVoipToken : nil + let voipToken = ObvMessengerSettings.VoIP.receiveCallsOnThisDevice ? currentVoipToken : nil tokens = (_currentDeviceToken, voipToken) } else { tokens = nil @@ -110,23 +169,15 @@ actor ObvPushNotificationManager { } else { tokens = nil } - + do { - os_log("🍎 Will call registerToPushNotificationFor (tokens is %{public}@, voipToken is %{public}@)", log: log, type: .info, tokens == nil ? "nil" : "set", tokens?.voipToken == nil ? "nil" : "set") - let log = self.log - try obvEngine.registerToPushNotificationFor(deviceTokens: tokens, kickOtherDevices: kickOtherDevicesOnNextRegister, useMultiDevice: false) { result in - switch result { - case .failure(let error): - os_log("🍎 We Could not register to push notifications: %{public}@", log: log, type: .fault, error.localizedDescription) - case .success: - os_log("🍎 Youpi, we successfully subscribed to remote push notifications", log: log, type: .info) - } - } - kickOtherDevicesOnNextRegister = false + try await obvEngine.updateKeycloakPushTopicsIfNeeded(ownedCryptoId: ownedCryptoId, deviceTokens: tokens, deviceNameForFirstRegistration: deviceNameForFirstRegistration, pushTopics: pushTopics) + os_log("🍎 Youpi, we successfully requested the reactivation of the owned identity", log: log, type: .info) } catch { - os_log("🍎 We Could not register to push notifications", log: log, type: .fault) + os_log("🍎 We could not reactivate owned identity", log: log, type: .fault) return } + } - + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Singletons/ObvUserActivitySingleton/ObvUserActivitySingleton.swift b/iOSClient/ObvMessenger/ObvMessenger/Singletons/ObvUserActivitySingleton/ObvUserActivitySingleton.swift index 6744dd00..5c1df541 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Singletons/ObvUserActivitySingleton/ObvUserActivitySingleton.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Singletons/ObvUserActivitySingleton/ObvUserActivitySingleton.swift @@ -143,7 +143,7 @@ extension ObvUserActivitySingleton { let displayedContactGroupPermanentID = vc.displayedContactGroupPermanentID newUserActivity = .displaySingleGroup(ownedCryptoId: ownedCryptoId, displayedContactGroupPermanentID: displayedContactGroupPermanentID) - case let vc as InvitationsCollectionViewController: + case let vc as AllInvitationsViewController: let ownedCryptoId = vc.currentOwnedCryptoId newUserActivity = .displayInvitations(ownedCryptoId: ownedCryptoId) diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/ContactsTableViewController/ContactsTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/ContactsTableViewController/ContactsTableViewController.swift index 4b7196bf..22f1ed97 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/ContactsTableViewController/ContactsTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/ContactsTableViewController/ContactsTableViewController.swift @@ -23,6 +23,7 @@ import CoreData import ObvTypes import ObvUICoreData import ObvUI +import ObvSettings class ContactsTableViewController: UITableViewController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/FloatingActionButton.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/FloatingActionButton.swift index 793a4fb7..7032db20 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/FloatingActionButton.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/FloatingActionButton.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -68,12 +68,9 @@ struct FloatingButtonView: View { Spacer() if !showBackground { content - } else if #available(iOS 15.0, *) { - content - .background(.ultraThinMaterial) } else { content - .background(Color(.systemBackground).edgesIgnoringSafeArea(.all)) + .background(.ultraThinMaterial) } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/MultiContactChooserViewControllerDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/MultiContactChooserViewControllerDelegate.swift index 5b55cf2f..d7447757 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/MultiContactChooserViewControllerDelegate.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/MultiContactChooserViewControllerDelegate.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/MultipleContactsHostingViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/MultipleContactsHostingViewController.swift index d3cee058..bd43830d 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/MultipleContactsHostingViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/MultipleContactsHostingViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -17,7 +17,6 @@ * along with Olvid. If not, see . */ - import CoreData import os.log import ObvEngine @@ -27,6 +26,8 @@ import ObvUICoreData import SwiftUI import UI_SystemIcon import UI_SystemIcon_SwiftUI +import ObvDesignSystem +import ObvSettings final class MultipleContactsHostingViewController: UIHostingController, ContactsViewStoreDelegate { @@ -469,16 +470,18 @@ fileprivate class ContactsViewStore: NSObject, ObservableObject, UISearchResults /// and perform a search that is likely to return no result. Soon after we cancel the search and display the list again. This seems to work, but /// this is clearely an ugly hack. private func refreshFetchRequestWhenSortOrderChanges() { - notificationTokens.append(ObvMessengerSettingsNotifications.observeContactsSortOrderDidChange(queue: OperationQueue.main) { [weak self] in - withAnimation { - self?.showSortingSpinner = true - } - DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(300)) { - self?.refreshFetchRequest(searchText: String(repeating: " ", count: 100)) + notificationTokens.append(ObvMessengerSettingsNotifications.observeContactsSortOrderDidChange { [weak self] in + DispatchQueue.main.async { + withAnimation { + self?.showSortingSpinner = true + } DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(300)) { - self?.refreshFetchRequest(searchText: nil) - withAnimation { - self?.showSortingSpinner = false + self?.refreshFetchRequest(searchText: String(repeating: " ", count: 100)) + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(300)) { + self?.refreshFetchRequest(searchText: nil) + withAnimation { + self?.showSortingSpinner = false + } } } } @@ -576,7 +579,7 @@ struct ContactsScrollingViewOrExplanationView: View { var body: some View { if store.showSortingSpinner { - ObvProgressView() + ProgressView() } else if store.showExplanation && fetchRequest.wrappedValue.isEmpty { ExplanationView() } else { @@ -690,26 +693,22 @@ fileprivate struct ContactsScrollingView: View { Spacer() } } else { - if #available(iOS 14.0, *) { - ScrollViewReader { scrollViewProxy in - innerView - .onChange(of: contactToScrollTo) { (_) in - guard let contact = contactToScrollTo else { return } - withAnimation { - scrollViewProxy.scrollTo(contact) - } + ScrollViewReader { scrollViewProxy in + innerView + .onChange(of: contactToScrollTo) { (_) in + guard let contact = contactToScrollTo else { return } + withAnimation { + scrollViewProxy.scrollTo(contact) } - .onChange(of: scrollToTop) { (_) in - if let firstItem = try? ObvStack.shared.viewContext.fetch(nsFetchRequest).first { - withAnimation { - scrollViewProxy.scrollTo(firstItem) - scrollToTop = false - } + } + .onChange(of: scrollToTop) { (_) in + if let firstItem = try? ObvStack.shared.viewContext.fetch(nsFetchRequest).first { + withAnimation { + scrollViewProxy.scrollTo(firstItem) + scrollToTop = false } } - } - } else { - innerView + } } } if let floatingButtonModel { @@ -783,10 +782,10 @@ fileprivate struct ContactsInnerView: View { if contactCellCanBeSelected(for: contact) { SelectableContactCellView(selection: $multipleSelection, contact: contact, selectionStyle: selectionStyle) } else { - ContactCellView(identity: contact, showChevron: false, selected: false) + ContactCellView(model: contact, state: .init(chevronStyle: .hidden, showDetailsStatus: false)) } } else { - ContactCellView(identity: contact, showChevron: true, selected: tappedContact == contact) + ContactCellView(model: contact, state: .init(chevronStyle: .shown(selected: tappedContact == contact), showDetailsStatus: true)) .onTapGesture { withAnimation(Animation.easeIn(duration: 0.1)) { tappedContact = contact @@ -810,7 +809,7 @@ fileprivate struct ContactsInnerView: View { .foregroundColor(.clear) } } - .obvListStyle() + .listStyle(InsetGroupedListStyle()) } } @@ -845,7 +844,7 @@ fileprivate struct SelectableContactCellView: View { var body: some View { HStack { - ContactCellView(identity: contact, showChevron: false, selected: false) + ContactCellView(model: contact, state: .init(chevronStyle: .hidden, showDetailsStatus: false)) Image(systemName: selection.contains(contact) ? imageSystemName : "circle") .font(Font.system(size: 24, weight: .regular, design: .default)) .foregroundColor(selection.contains(contact) ? imageColor : Color.gray) @@ -863,47 +862,6 @@ fileprivate struct SelectableContactCellView: View { } - -struct ContactCellView: View { - - @ObservedObject var identity: PersistedObvContactIdentity - let showChevron: Bool - var selected: Bool - - private var data: SingleContactIdentity { SingleContactIdentity(persistedContact: identity, observeChangesMadeToContact: false) } - - var body: some View { - HStack { - ContactIdentityCardContentView(model: data, - preferredDetails: .customOrTrusted) - Spacer() - if !identity.isActive { - Image(systemIcon: .exclamationmarkShieldFill) - .foregroundColor(.red) - } else { - ObvActivityIndicator(isAnimating: .constant(identity.devices.isEmpty), style: .medium, color: nil) - } - if showChevron { - switch identity.status { - case .noNewPublishedDetails: - EmptyView() - case .unseenPublishedDetails: - Image(systemName: "person.crop.rectangle") - .foregroundColor(.red) - case .seenPublishedDetails: - Image(systemName: "person.crop.rectangle") - .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) - } - ObvChevron(selected: selected) - } - } - .contentShape(Rectangle()) // This makes it possible to have an "on tap" gesture that also works when the Spacer is tapped - } - -} - - - struct ExplanationView_Previews: PreviewProvider { static var previews: some View { diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/MultipleContactsHostingViewControllerDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/MultipleContactsHostingViewControllerDelegate.swift index 30b40c08..dd216748 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/MultipleContactsHostingViewControllerDelegate.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/MultipleContactsHostingViewControllerDelegate.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ContactCellView.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ContactCellView.swift new file mode 100644 index 00000000..711840b9 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ContactCellView.swift @@ -0,0 +1,194 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI +import UI_ObvCircledInitials +import ObvUI +import ObvTypes + + +protocol ContactCellViewModelProtocol: ObservableObject, SpinnerViewForContactCellModelProtocol, ContactTextViewModelProtocol, InitialCircleViewNewModelProtocol { + + var detailsStatus: ContactCellViewTypes.ContactDetailsStatus { get } + +} + + +struct ContactCellViewTypes { + + enum ContactDetailsStatus { + case noNewPublishedDetails + case unseenPublishedDetails + case seenPublishedDetails + } + +} + + +struct ContactCellView: View { + + @ObservedObject var model: Model + let state: State + + struct State { + + let chevronStyle: ChevronStyle + let showDetailsStatus: Bool + + enum ChevronStyle { + case hidden + case shown(selected: Bool) + } + + } + + + var body: some View { + HStack { + HStack(alignment: .center, spacing: 16) { + InitialCircleViewNew(model: model, state: .init(circleDiameter: 60)) + ContactTextView(model: model) + } + + Spacer() + + SpinnerViewForContactCell(model: model) + + if state.showDetailsStatus { + switch model.detailsStatus { + case .noNewPublishedDetails: + EmptyView() + case .unseenPublishedDetails: + Image(systemIcon: .personCropRectangle) + .foregroundColor(.red) + case .seenPublishedDetails: + Image(systemIcon: .personCropRectangle) + .foregroundColor(.secondary) + } + } + + switch state.chevronStyle { + case .hidden: + EmptyView() + case .shown(selected: let selected): + ObvChevron(selected: selected) + } + + } + .contentShape(Rectangle()) // This makes it possible to have an "on tap" gesture that also works when the Spacer is tapped + } + +} + + +protocol ContactTextViewModelProtocol: ObservableObject { + + var customDisplayName: String? { get } + var firstName: String? { get } + var lastName: String? { get } + var displayedPosition: String? { get } + var displayedCompany: String? { get } + +} + + +fileprivate struct ContactTextView: View { + + @ObservedObject var model: Model + + var body: some View { + TextView(model: .init( + titlePart1: model.customDisplayName == nil ? model.firstName : nil, + titlePart2: model.customDisplayName ?? model.lastName, + subtitle: model.displayedPosition, + subsubtitle: model.displayedCompany)) + } + +} + + + + + + + +struct ContactCellView_Previews: PreviewProvider { + + private final class Contact: ContactCellViewModelProtocol { + + let isActive: Bool + let contactHasNoDevice: Bool + let atLeastOneDeviceAllowsThisContactToReceiveMessages: Bool + let detailsStatus: ContactCellViewTypes.ContactDetailsStatus + let customDisplayName: String? + let firstName: String? + let lastName: String? + let displayedPosition: String? + let displayedCompany: String? + let circledInitialsConfiguration: CircledInitialsConfiguration + + + init(detailsStatus: ContactCellViewTypes.ContactDetailsStatus, contactIsActive: Bool, contactHasNoDevice: Bool, atLeastOneDeviceAllowsThisContactToReceiveMessages: Bool, customDisplayName: String?, firstName: String?, lastName: String?, displayedPosition: String?, displayedCompany: String?, circledInitialsConfiguration: CircledInitialsConfiguration) { + self.detailsStatus = detailsStatus + self.isActive = contactIsActive + self.contactHasNoDevice = contactHasNoDevice + self.atLeastOneDeviceAllowsThisContactToReceiveMessages = atLeastOneDeviceAllowsThisContactToReceiveMessages + self.customDisplayName = customDisplayName + self.firstName = firstName + self.lastName = lastName + self.displayedPosition = displayedPosition + self.displayedCompany = displayedCompany + self.circledInitialsConfiguration = circledInitialsConfiguration + } + + } + + private static let identityAsURL = URL(string: "https://invitation.olvid.io/#AwAAAIAAAAAAXmh0dHBzOi8vc2VydmVyLmRldi5vbHZpZC5pbwAA1-NJhAuO742VYzS5WXQnM3ACnlxX_ZTYt9BUHrotU2UBA_FlTxBTrcgXN9keqcV4-LOViz3UtdEmTZppHANX3JYAAAAAGEFsaWNlIFdvcmsgKENFTyBAIE9sdmlkKQ==")! + private static let cryptoId = ObvURLIdentity(urlRepresentation: identityAsURL)!.cryptoId + + static var previews: some View { + Group { + ContactCellView( + model: Contact( + detailsStatus: .noNewPublishedDetails, + contactIsActive: true, + contactHasNoDevice: false, + atLeastOneDeviceAllowsThisContactToReceiveMessages: true, + customDisplayName: nil, + firstName: "Alice", + lastName: "Spring", + displayedPosition: "CEO", + displayedCompany: "MyCo", + circledInitialsConfiguration: .contact( + initial: "S", + photo: nil, + showGreenShield: false, + showRedShield: false, + cryptoId: cryptoId, + tintAdjustementMode: .normal)), + state: .init( + chevronStyle: .hidden, + showDetailsStatus: true)) + .previewLayout(.sizeThatFits) + .padding() + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/SpinnerViewForContactCell.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/SpinnerViewForContactCell.swift new file mode 100644 index 00000000..d325c33e --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/SpinnerViewForContactCell.swift @@ -0,0 +1,51 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI + + +protocol SpinnerViewForContactCellModelProtocol: ObservableObject { + + var contactHasNoDevice: Bool { get } + var isActive: Bool { get } + var atLeastOneDeviceAllowsThisContactToReceiveMessages: Bool { get } + +} + + +/// This view conditionally shows a spinner (typically, when we are creating a channel with the contact), an exclamation mark (when the keycloak contact is inactive), or nothing (most of the time). It is used in the list of contacts, but also in other places, like in the list of group members. +struct SpinnerViewForContactCell: View { + + @ObservedObject var model: Model + + var body: some View { + if !model.isActive { + Image(systemIcon: .exclamationmarkShieldFill) + .foregroundColor(.red) + } else if !model.contactHasNoDevice && !model.atLeastOneDeviceAllowsThisContactToReceiveMessages { + ProgressView() + } else { + EmptyView() + .frame(width: 0, height: 0) + } + } + +} + diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+ContactCellViewNewModelProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+ContactCellViewNewModelProtocol.swift new file mode 100644 index 00000000..7b0ae95b --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+ContactCellViewNewModelProtocol.swift @@ -0,0 +1,38 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvUICoreData + + + +extension PersistedObvContactIdentity: ContactCellViewModelProtocol { + + var detailsStatus: ContactCellViewTypes.ContactDetailsStatus { + switch self.status { + case .noNewPublishedDetails: + return .noNewPublishedDetails + case .seenPublishedDetails: + return .seenPublishedDetails + case .unseenPublishedDetails: + return .unseenPublishedDetails + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+ContactTextViewModelProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+ContactTextViewModelProtocol.swift new file mode 100644 index 00000000..f1fb7739 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+ContactTextViewModelProtocol.swift @@ -0,0 +1,26 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvUICoreData + + +extension PersistedObvContactIdentity: ContactTextViewModelProtocol { + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+InitialCircleViewNewModelProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+InitialCircleViewNewModelProtocol.swift new file mode 100644 index 00000000..cfac4472 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+InitialCircleViewNewModelProtocol.swift @@ -0,0 +1,28 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import UI_ObvCircledInitials +import ObvUICoreData +import CoreData + + +extension PersistedObvContactIdentity: InitialCircleViewNewModelProtocol { + // We only need to declare the protocol conformance here +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+SpinnerViewForContactCellModelProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+SpinnerViewForContactCellModelProtocol.swift new file mode 100644 index 00000000..7d743f8e --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Contacts/MultiContactChooserViewController/Subviews/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+SpinnerViewForContactCellModelProtocol.swift @@ -0,0 +1,30 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvUICoreData + + +extension PersistedObvContactIdentity: SpinnerViewForContactCellModelProtocol { + + var contactHasNoDevice: Bool { + self.devices.isEmpty + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/DiscussionsTableViewController/DiscussionsTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/DiscussionsTableViewController/DiscussionsTableViewController.swift index 667250ba..0ee756a8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/DiscussionsTableViewController/DiscussionsTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/DiscussionsTableViewController/DiscussionsTableViewController.swift @@ -25,6 +25,8 @@ import ObvEngine import ObvTypes import ObvUI import ObvUICoreData +import ObvDesignSystem +import ObvSettings /// This view controller is replaced by NewDiscussionsViewController under iOS 16 @@ -170,7 +172,6 @@ extension DiscussionsTableViewController { observeIdentityColorStyleDidChangeNotifications() observeDiscussionLocalConfigurationHasBeenUpdatedNotifications() - observeCallLogItemWasUpdatedNotifications() } @@ -193,12 +194,6 @@ extension DiscussionsTableViewController { self.notificationTokens.append(token) } - private func observeCallLogItemWasUpdatedNotifications() { - let token = VoIPNotification.observeCallHasBeenUpdated(queue: OperationQueue.main) { [weak self] _, _ in - self?.tableView.reloadData() - } - self.notificationTokens.append(token) - } private func registerTableViewCell() { self.tableView?.register(UINib(nibName: ObvSubtitleTableViewCell.nibName, bundle: nil), forCellReuseIdentifier: ObvSubtitleTableViewCell.identifier) diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/NewDiscussionsViewController/Cell/NewDiscussionsViewControllerCell.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/NewDiscussionsViewController/Cell/NewDiscussionsViewControllerCell.swift index d5137a0f..c4fc29b0 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/NewDiscussionsViewController/Cell/NewDiscussionsViewControllerCell.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/NewDiscussionsViewController/Cell/NewDiscussionsViewControllerCell.swift @@ -19,6 +19,8 @@ import SwiftUI import ObvUI +import ObvDesignSystem + @available(iOS 16.0, *) private let kCircledInitialsViewSize = CircledInitialsView.Size.medium diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/NewDiscussionsViewController/Cell/NewDiscussionsViewControllerCellViewModel.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/NewDiscussionsViewController/Cell/NewDiscussionsViewControllerCellViewModel.swift index d06144b7..a84df3ee 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/NewDiscussionsViewController/Cell/NewDiscussionsViewControllerCellViewModel.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/NewDiscussionsViewController/Cell/NewDiscussionsViewControllerCellViewModel.swift @@ -20,7 +20,10 @@ import Foundation import CoreData import ObvUICoreData -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvSettings +import ObvDesignSystem + @available(iOS 16.0, *) extension NewDiscussionsViewController.Cell { diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/NewDiscussionsViewController/NewDiscussionsViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/NewDiscussionsViewController/NewDiscussionsViewController.swift index c256d2d3..5b2dba3f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/NewDiscussionsViewController/NewDiscussionsViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/Discussions/NewDiscussionsViewController/NewDiscussionsViewController.swift @@ -27,6 +27,7 @@ import OlvidUtils import OSLog import SwiftUI import UIKit +import ObvDesignSystem protocol NewDiscussionsViewControllerDelegate: AnyObject { @@ -302,8 +303,8 @@ final class NewDiscussionsViewController: UIViewController, NSFetchedResultsCont guard let selectedItem = dataSource.itemIdentifier(for: indexPath) else { return UISwipeActionsConfiguration(actions: []) } switch (selectedItem) { case .persistedDiscussion(let listItemID): - let deleteAllMessagesAction = self.createDeleteAllMessagesAction(for: listItemID) - let archiveDiscussionAction = self.createArchiveDiscussionAction(for: listItemID) + let deleteAllMessagesAction = self.createDeleteAllMessagesContextualAction(for: listItemID) + let archiveDiscussionAction = self.createArchiveDiscussionContextualAction(for: listItemID) let configuration = UISwipeActionsConfiguration(actions: [deleteAllMessagesAction, archiveDiscussionAction]) configuration.performsFirstActionWithFullSwipe = false return configuration @@ -318,8 +319,8 @@ final class NewDiscussionsViewController: UIViewController, NSFetchedResultsCont guard let selectedItem = dataSource.itemIdentifier(for: indexPath) else { return UISwipeActionsConfiguration(actions: []) } switch (selectedItem) { case .persistedDiscussion(let listItemID): - let unpinAction = self.createUnpinAction(for: listItemID) - let markAllMessagesAsNotNewAction = self.createMarkAllMessagesAsNotNewAction(for: listItemID) + let unpinAction = self.createUnpinContextualAction(for: listItemID) + let markAllMessagesAsNotNewAction = self.createMarkAllMessagesAsNotNewContextualAction(for: listItemID) let configuration = UISwipeActionsConfiguration(actions: [unpinAction, markAllMessagesAsNotNewAction]) configuration.performsFirstActionWithFullSwipe = false return configuration @@ -328,8 +329,8 @@ final class NewDiscussionsViewController: UIViewController, NSFetchedResultsCont guard let selectedItem = dataSource.itemIdentifier(for: indexPath) else { return UISwipeActionsConfiguration(actions: []) } switch (selectedItem) { case .persistedDiscussion(let listItemID): - let pinAction = self.createPinAction(for: listItemID) - let markAllMessagesAsNotNewAction = self.createMarkAllMessagesAsNotNewAction(for: listItemID) + let pinAction = self.createPinContextualAction(for: listItemID) + let markAllMessagesAsNotNewAction = self.createMarkAllMessagesAsNotNewContextualAction(for: listItemID) let configuration = UISwipeActionsConfiguration(actions: [pinAction, markAllMessagesAsNotNewAction]) configuration.performsFirstActionWithFullSwipe = false return configuration @@ -338,7 +339,7 @@ final class NewDiscussionsViewController: UIViewController, NSFetchedResultsCont } - private func createMarkAllMessagesAsNotNewAction(for listItemID: (ObvUICoreData.TypeSafeManagedObjectID)) -> UIContextualAction { + private func createMarkAllMessagesAsNotNewContextualAction(for listItemID: (ObvUICoreData.TypeSafeManagedObjectID)) -> UIContextualAction { let markAllAsNotNewAction = UIContextualAction(style: UIContextualAction.Style.normal, title: PersistedMessage.Strings.markAllAsRead) { (action, view, handler) in guard let discussion: PersistedDiscussion = try? PersistedDiscussion.get(objectID: listItemID.objectID, within: ObvStack.shared.viewContext) else { return } ObvMessengerInternalNotification.userWantsToMarkAllMessagesAsNotNewWithinDiscussion(persistedDiscussionObjectID: discussion.objectID, completionHandler: handler) @@ -346,9 +347,19 @@ final class NewDiscussionsViewController: UIViewController, NSFetchedResultsCont } return markAllAsNotNewAction } + + + private func createMarkAllMessagesAsNotNewAction(for listItemID: (ObvUICoreData.TypeSafeManagedObjectID)) -> UIAction { + let title = NSLocalizedString("MENU_ACTION_TITLE_MARK_ALL_MESSAGES_AS_READ", comment: "") + return UIAction(title: title) { _ in + guard let discussion: PersistedDiscussion = try? PersistedDiscussion.get(objectID: listItemID.objectID, within: ObvStack.shared.viewContext) else { return } + ObvMessengerInternalNotification.userWantsToMarkAllMessagesAsNotNewWithinDiscussion(persistedDiscussionObjectID: discussion.objectID, completionHandler: { _ in }) + .postOnDispatchQueue() + } + } - private func createDeleteAllMessagesAction(for listItemID: (ObvUICoreData.TypeSafeManagedObjectID)) -> UIContextualAction { + private func createDeleteAllMessagesContextualAction(for listItemID: (ObvUICoreData.TypeSafeManagedObjectID)) -> UIContextualAction { let deleteAction = UIContextualAction(style: .destructive, title: CommonString.Word.Delete) { [weak self] (action, view, handler) in guard let discussion: PersistedDiscussion = try? PersistedDiscussion.get(objectID: listItemID.objectID, within: ObvStack.shared.viewContext) else { return } self?.delegate?.userAskedToDeleteDiscussion(discussion, completionHandler: handler) @@ -356,9 +367,18 @@ final class NewDiscussionsViewController: UIViewController, NSFetchedResultsCont deleteAction.image = UIImage(systemIcon: .trash) return deleteAction } + + + private func createDeleteAllMessagesAction(for listItemID: (ObvUICoreData.TypeSafeManagedObjectID)) -> UIAction { + let title = NSLocalizedString("MENU_ACTION_TITLE_DELETE_ALL_MESSAGES", comment: "") + return UIAction(title: title, attributes: .destructive) { [weak self] _ in + guard let discussion: PersistedDiscussion = try? PersistedDiscussion.get(objectID: listItemID.objectID, within: ObvStack.shared.viewContext) else { return } + self?.delegate?.userAskedToDeleteDiscussion(discussion, completionHandler: { _ in }) + } + } - private func createPinAction(for listItemID: (TypeSafeManagedObjectID)) -> UIContextualAction { + private func createPinContextualAction(for listItemID: (TypeSafeManagedObjectID)) -> UIContextualAction { let pinAction = UIContextualAction(style: .normal, title: CommonString.Word.Pin) { [weak self] (action, view, handler) in self?.pinDiscussion(listItemID: listItemID, handler: handler) } @@ -367,6 +387,54 @@ final class NewDiscussionsViewController: UIViewController, NSFetchedResultsCont return pinAction } + + private func createPinAction(for listItemID: (TypeSafeManagedObjectID)) -> UIAction { + let title = NSLocalizedString("MENU_ACTION_TITLE_PIN_DISCUSSION", comment: "") + return UIAction(title: title) { [weak self] _ in + self?.pinDiscussion(listItemID: listItemID, handler: { _ in }) + } + } + + + func collectionView(_ collectionView: UICollectionView, contextMenuConfigurationForItemsAt indexPaths: [IndexPath], point: CGPoint) -> UIContextMenuConfiguration? { + + // Only provide a menu on a Mac + + guard ObvMessengerConstants.targetEnvironmentIsMacCatalyst else { + return nil + } + + // For now, we only show a menu for one item at a time + + guard let indexPath = indexPaths.first, indexPaths.count == 1 else { + debugPrint(indexPaths) + return nil + } + guard let sectionKind = dataSource.sectionIdentifier(for: indexPath.section) else { return nil } + guard let item = dataSource.itemIdentifier(for: indexPath) else { return nil } + + // Create the actions + + var actions = [UIAction]() + switch item { + case .persistedDiscussion(let listItemID): + actions += [createMarkAllMessagesAsNotNewAction(for: listItemID)] + switch sectionKind { + case .pinnedDiscussions: + actions += [createUnpinAction(for: listItemID)] + case .discussions: + actions += [createPinAction(for: listItemID)] + } + actions += [createArchiveDiscussionAction(for: listItemID)] + actions += [createDeleteAllMessagesAction(for: listItemID)] + } + + return UIContextMenuConfiguration(actionProvider: { _ in + return UIMenu(children: actions) + }) + + } + private let millisecondsToWaitAfterCallingHandler = 500 @@ -395,7 +463,7 @@ final class NewDiscussionsViewController: UIViewController, NSFetchedResultsCont } - private func createUnpinAction(for listItemID: (TypeSafeManagedObjectID)) -> UIContextualAction { + private func createUnpinContextualAction(for listItemID: (TypeSafeManagedObjectID)) -> UIContextualAction { let unpinAction = UIContextualAction(style: .normal, title: CommonString.Word.Unpin) { [weak self] (action, view, handler) in self?.unpinDiscussion(listItemID: listItemID, handler: handler) } @@ -403,9 +471,17 @@ final class NewDiscussionsViewController: UIViewController, NSFetchedResultsCont unpinAction.image = UIImage(systemIcon: .unpin) return unpinAction } - - private func createArchiveDiscussionAction(for listItemID: (ObvUICoreData.TypeSafeManagedObjectID)) -> UIContextualAction { + + private func createUnpinAction(for listItemID: (TypeSafeManagedObjectID)) -> UIAction { + let title = NSLocalizedString("MENU_ACTION_TITLE_UNPIN_DISCUSSION", comment: "") + return UIAction(title: title) { [weak self] _ in + self?.unpinDiscussion(listItemID: listItemID, handler: nil) + } + } + + + private func createArchiveDiscussionContextualAction(for listItemID: (ObvUICoreData.TypeSafeManagedObjectID)) -> UIContextualAction { let archiveDiscussionAction = UIContextualAction(style: .destructive, title: CommonString.Word.Archive) { [weak self] (action, view, handler) in self?.archiveDiscussion(listItemID: listItemID, handler: handler) } @@ -415,6 +491,14 @@ final class NewDiscussionsViewController: UIViewController, NSFetchedResultsCont } + private func createArchiveDiscussionAction(for listItemID: (ObvUICoreData.TypeSafeManagedObjectID)) -> UIAction { + let title = NSLocalizedString("MENU_ACTION_TITLE_ARCHIVE_DISCUSSION", comment: "") + return UIAction(title: title) { [weak self] _ in + self?.archiveDiscussion(listItemID: listItemID, handler: nil) + } + } + + private func unpinDiscussion(listItemID: (ObvUICoreData.TypeSafeManagedObjectID), handler: ((Bool) -> Void)?) { var discussionObjectIds = Self.retrieveDiscussionObjectIds(from: dataSource.snapshot()) discussionObjectIds.removeAll(where: { $0 == listItemID.objectID }) @@ -451,6 +535,7 @@ final class NewDiscussionsViewController: UIViewController, NSFetchedResultsCont private func reorderingCompleted() { let snapshot = dataSource.snapshot() + guard snapshot.sectionIdentifiers.contains(where: { $0 == .pinnedDiscussions }) else { return } let discussionObjectIds = snapshot.itemIdentifiers(inSection: .pinnedDiscussions).map { switch $0 { case .persistedDiscussion(let listItemID): diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/PendingGroupMembers/PendingGroupMembersTableViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/PendingGroupMembers/PendingGroupMembersTableViewController.swift index 0c2e3ca1..7eb64a9e 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/PendingGroupMembers/PendingGroupMembersTableViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/PendingGroupMembers/PendingGroupMembersTableViewController.swift @@ -23,6 +23,7 @@ import CoreData import ObvEngine import ObvUICoreData import ObvUI +import ObvSettings class PendingGroupMembersTableViewController: UITableViewController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/TableViewCells/ObvSubtitleTableViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/TableViewCells/ObvSubtitleTableViewCell.swift index 7d3a24ab..05323ee7 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/TableViewCells/ObvSubtitleTableViewCell.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/TableViewCells/ObvSubtitleTableViewCell.swift @@ -20,7 +20,9 @@ import ObvUI import ObvUICoreData import UIKit -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvDesignSystem + class ObvSubtitleTableViewCell: UITableViewCell, ObvTableViewCellWithActivityIndicator { diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/TableViewCells/ObvTitleAndSwitchTableViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/TableViewCells/ObvTitleAndSwitchTableViewCell.swift index 5ab8ee2f..0adf53be 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/TableViewCells/ObvTitleAndSwitchTableViewCell.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/TableViewCells/ObvTitleAndSwitchTableViewCell.swift @@ -29,13 +29,9 @@ final class ObvTitleAndSwitchTableViewCell: UITableViewCell { var title: String? { get { self.textLabel?.text } set { - if #available(iOS 14, *) { - var config = self.defaultContentConfiguration() - config.text = newValue - self.contentConfiguration = config - } else { - self.textLabel?.text = newValue - } + var config = self.defaultContentConfiguration() + config.text = newValue + self.contentConfiguration = config } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/TableViewCells/ObvTitleTableViewCell.swift b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/TableViewCells/ObvTitleTableViewCell.swift index 7858da9b..42596e31 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/TableViewCells/ObvTitleTableViewCell.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/TableViewControllers/TableViewCells/ObvTitleTableViewCell.swift @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + class ObvTitleTableViewCell: UITableViewCell, ObvTableViewCellWithActivityIndicator { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Types/ObvFlowController.swift b/iOSClient/ObvMessenger/ObvMessenger/Types/ObvFlowController.swift index f4b94545..a443d541 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Types/ObvFlowController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Types/ObvFlowController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,9 +25,10 @@ import CoreData import ObvCrypto import OlvidUtils import ObvUICoreData +import ObvSettings -protocol ObvFlowController: UINavigationController, SingleDiscussionViewControllerDelegate, SingleGroupViewControllerDelegate, SingleGroupV2ViewControllerDelegate, SingleContactIdentityViewHostingControllerDelegate, SingleOwnedIdentityFlowViewControllerDelegate, ObvErrorMaker { +protocol ObvFlowController: UINavigationController, SingleDiscussionViewControllerDelegate, SingleGroupViewControllerDelegate, SingleGroupV2ViewControllerDelegate, SingleContactIdentityViewHostingControllerDelegate, ObvErrorMaker { var flowDelegate: ObvFlowControllerDelegate? { get } var log: OSLog { get } @@ -121,7 +122,7 @@ extension ObvFlowController { } func userWantsToDisplay(persistedMessage message: PersistedMessage) { - let discussion = message.discussion + guard let discussion = message.discussion else { assertionFailure(); return } userWantsToDisplayImpl(persistedDiscussion: discussion, messageToShow: message) } @@ -261,11 +262,7 @@ extension ObvFlowController { if someSingleDiscussionVC.discussionPermanentID != discussion.discussionPermanentID { return someSingleDiscussionVC } else { - if #available(iOS 15.0, *), !ObvMessengerSettings.Interface.useOldDiscussionInterface { - return try getNewSingleDiscussionViewController(for:discussion, initialScroll: .newMessageSystemOrLastMessage) - } else { - return try getSingleDiscussionViewController(for: discussion) - } + return try getNewSingleDiscussionViewController(for:discussion, initialScroll: .newMessageSystemOrLastMessage) } } self.setViewControllers(newStack, animated: false) @@ -273,23 +270,17 @@ extension ObvFlowController { func buildSingleDiscussionVC(discussion: PersistedDiscussion, messageToShow: PersistedMessage?) throws -> SomeSingleDiscussionViewController { - if #available(iOS 15.0, *), !ObvMessengerSettings.Interface.useOldDiscussionInterface { - let initialScroll: NewSingleDiscussionViewController.InitialScroll - if let messageToShow = messageToShow { - initialScroll = .specificMessage(messageToShow) - } else { - initialScroll = .newMessageSystemOrLastMessage - } - let singleDiscussionVC = try getNewSingleDiscussionViewController(for: discussion, initialScroll: initialScroll) - return singleDiscussionVC + let initialScroll: NewSingleDiscussionViewController.InitialScroll + if let messageToShow = messageToShow { + initialScroll = .specificMessage(messageToShow) } else { - let singleDiscussionVC = try getSingleDiscussionViewController(for: discussion) - return singleDiscussionVC + initialScroll = .newMessageSystemOrLastMessage } + let singleDiscussionVC = try getNewSingleDiscussionViewController(for: discussion, initialScroll: initialScroll) + return singleDiscussionVC } - @available(iOS 15.0, *) func getNewSingleDiscussionViewController(for discussion: PersistedDiscussion, initialScroll: NewSingleDiscussionViewController.InitialScroll) throws -> NewSingleDiscussionViewController { assert(Thread.isMainThread) let singleDiscussionVC = try NewSingleDiscussionViewController(discussion: discussion, delegate: self, initialScroll: initialScroll) @@ -297,22 +288,6 @@ extension ObvFlowController { return singleDiscussionVC } - - func getSingleDiscussionViewController(for discussion: PersistedDiscussion) throws -> SingleDiscussionViewController { - guard let ownedCryptoId = discussion.ownedIdentity?.cryptoId else { - throw Self.makeError(message: "Could not determine owned identity") - } - let singleDiscussionVC = SingleDiscussionViewController(ownedCryptoId: ownedCryptoId, collectionViewLayout: UICollectionViewLayout()) - singleDiscussionVC.discussion = discussion - singleDiscussionVC.composeMessageViewDataSource = ComposeMessageDataSourceWithDraft(draft: discussion.draft) - singleDiscussionVC.composeMessageViewDocumentPickerDelegate = ComposeMessageViewDocumentPickerAdapterWithDraft(draft: discussion.draft) - singleDiscussionVC.strongComposeMessageViewSendMessageDelegate = ComposeMessageViewSendMessageAdapterWithDraft(draft: discussion.draft) - singleDiscussionVC.uiApplication = UIApplication.shared - singleDiscussionVC.delegate = self - singleDiscussionVC.hidesBottomBarWhenPushed = true - return singleDiscussionVC - } - } // MARK: - SingleDiscussionViewControllerDelegate @@ -431,9 +406,7 @@ extension ObvFlowController { return } - let vcToPresent = SingleOwnedIdentityFlowViewController(ownedIdentity: ownedIdentity, obvEngine: obvEngine) - - vcToPresent.delegate = self + let vcToPresent = SingleOwnedIdentityFlowViewController(ownedIdentity: ownedIdentity, obvEngine: obvEngine, delegate: flowDelegate) viewControllerToPresent = vcToPresent @@ -479,6 +452,19 @@ extension ObvFlowController { extension ObvFlowController { + func userWantsToNavigateToListOfContactDevicesView(_ contact: PersistedObvContactIdentity, within nav: UINavigationController?) { + let appropriateNav = nav ?? self + let vc = ListOfContactDevicesViewController(persistedContact: contact, obvEngine: obvEngine) + appropriateNav.pushViewController(vc, animated: true) + } + + + func userWantsToNavigateToListOfTrustOriginsView(_ trustOrigins: [ObvTrustOrigin], within nav: UINavigationController?) { + let appropriateNav = nav ?? self + let vc = ListOfTrustOriginsViewController(trustOrigins: trustOrigins) + appropriateNav.pushViewController(vc, animated: true) + } + func userWantsToNavigateToSingleGroupView(_ group: DisplayedContactGroup, within nav: UINavigationController?) { @@ -534,80 +520,32 @@ extension ObvFlowController { flowDelegate?.userWantsToUpdateTrustedIdentityDetailsOfContactIdentity(with: contactCryptoId, using: newContactIdentityDetails) } - func userWantsToEditContactNickname(persistedContactObjectId: NSManagedObjectID) { - assert(Thread.isMainThread) - - guard let persistedObvContactIdentity = try? PersistedObvContactIdentity.get(objectID: persistedContactObjectId, within: ObvStack.shared.viewContext) else { assertionFailure(); return } - - let title = NSLocalizedString("Set Contact Nickname", comment: "") - let message = NSLocalizedString("This nickname will only be visible to you and used instead of your contact name within the Olvid interface.", comment: "UIAlertController message") - let alert = UIAlertController(title: title, message: message, preferredStyle: .alert) - alert.addTextField { textField in - textField.font = UIFont.preferredFont(forTextStyle: UIFont.TextStyle.headline) - textField.autocapitalizationType = .words - if let customDisplayName = persistedObvContactIdentity.customDisplayName { - textField.text = customDisplayName - } else { - textField.text = persistedObvContactIdentity.identityCoreDetails?.getDisplayNameWithStyle(.firstNameThenLastName) ?? persistedObvContactIdentity.fullDisplayName - } - } - guard let textField = alert.textFields?.first else { return } - let removeNicknameAction = UIAlertAction(title: CommonString.removeNickname, style: .destructive) { [weak self] (_) in - self?.setContactNickname(to: nil, persistedContactObjectId: persistedContactObjectId) - } - let cancelAction = UIAlertAction(title: CommonString.Word.Cancel, style: UIAlertAction.Style.cancel) - let okAction = UIAlertAction(title: CommonString.Word.Ok, style: UIAlertAction.Style.default) { [weak self] (action) in - if let newNickname = textField.text, !newNickname.isEmpty { - self?.setContactNickname(to: newNickname, persistedContactObjectId: persistedContactObjectId) - } else { - self?.setContactNickname(to: nil, persistedContactObjectId: persistedContactObjectId) - } - } - alert.addAction(removeNicknameAction) - alert.addAction(cancelAction) - alert.addAction(okAction) - if let presentedViewController = self.presentedViewController { - presentedViewController.present(alert, animated: true) - } else { - self.present(alert, animated: true, completion: nil) - } - } - - - private func setContactNickname(to newNickname: String?, persistedContactObjectId: NSManagedObjectID) { - ObvStack.shared.performBackgroundTask { [weak self] (context) in - guard let _self = self else { return } + func userWantsToInviteContactToOneToOne(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) { + Task { [weak self] in + guard let self else { return } do { - guard let writableContact = try PersistedObvContactIdentity.get(objectID: persistedContactObjectId, within: context) else { assertionFailure(); return } - try writableContact.setCustomDisplayName(to: newNickname) - try context.save(logOnFailure: _self.log) + assert(flowDelegate != nil) + try await flowDelegate?.userWantsToInviteContactsToOneToOne(ownedCryptoId: ownedCryptoId, users: [(contactCryptoId, nil)]) } catch { - os_log("Could not remove contact custom display name", log: _self.log, type: .error) + assertionFailure(error.localizedDescription) } } } - - func userWantsToInviteContactToOneToOne(persistedContactObjectID: TypeSafeManagedObjectID) { - let log = self.log - ObvStack.shared.performBackgroundTask { [weak self] (context) in - do { - guard let contact = try PersistedObvContactIdentity.get(objectID: persistedContactObjectID, within: context) else { assertionFailure(); return } - assert(!contact.isOneToOne) - guard let ownedIdentity = contact.ownedIdentity else { assertionFailure(); return } - try self?.obvEngine.sendOneToOneInvitation(ownedIdentity: ownedIdentity.cryptoId, contactIdentity: contact.cryptoId) - } catch { - os_log("Could not invite contact to OneToOne: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - } - } - } + /// Method part of the `SingleGroupV2ViewControllerDelegate`, called when the user wants to add all the group members as one2one contacts at once. + func userWantsToInviteContactToOneToOne(ownedCryptoId: ObvCryptoId, contactCryptoIds: Set) async throws { + assert(flowDelegate != nil) + let users: [(cryptoId: ObvCryptoId, keycloakDetails: ObvKeycloakUserDetails?)] = contactCryptoIds.map { ($0, nil) } + try await flowDelegate?.userWantsToInviteContactsToOneToOne(ownedCryptoId: ownedCryptoId, users: users) + } + func userWantsToCancelSentInviteContactToOneToOne(ownedCryptoId: ObvCryptoId, contactCryptoId: ObvCryptoId) { let log = self.log - ObvStack.shared.performBackgroundTask { [weak self] (context) in + let obvEngine = self.obvEngine + ObvStack.shared.performBackgroundTask { (context) in do { guard let oneToOneInvitationSent = try PersistedInvitationOneToOneInvitationSent.get(fromOwnedIdentity: ownedCryptoId, toContact: contactCryptoId, @@ -616,7 +554,10 @@ extension ObvFlowController { } guard var dialog = oneToOneInvitationSent.obvDialog else { assertionFailure(); return } try dialog.cancelOneToOneInvitationSent() - self?.obvEngine.respondTo(dialog) + let dialogForEngine = dialog + Task { + try? await obvEngine.respondTo(dialogForEngine) + } } catch { os_log("Could not invite contact to OneToOne: %{public}@", log: log, type: .fault, error.localizedDescription) assertionFailure() @@ -796,16 +737,17 @@ extension ObvFlowController { } -// MARK: - SingleOwnedIdentityFlowViewControllerDelegate -extension ObvFlowController { - func userWantsToDismissSingleOwnedIdentityFlowViewController(_ viewController: SingleOwnedIdentityFlowViewController) { - viewController.dismiss(animated: true) - } + +// MARK: - Errors + +enum ObvFlowControllerError: Error { + case couldNotFindOwnedIdentity } + // MARK: - ObvFlowControllerDelegate -protocol ObvFlowControllerDelegate: AnyObject { +protocol ObvFlowControllerDelegate: AnyObject, SingleOwnedIdentityFlowViewControllerDelegate { func getAndRemoveAirDroppedFileURLs() -> [URL] @MainActor func userSelectedURL(_ url: URL, within viewController: UIViewController) @@ -813,5 +755,6 @@ protocol ObvFlowControllerDelegate: AnyObject { func rePerformTrustEstablishmentProtocolOfContactIdentity(contactCryptoId: ObvCryptoId, contactFullDisplayName: String) func userWantsToUpdateTrustedIdentityDetailsOfContactIdentity(with: ObvCryptoId, using: ObvIdentityDetails) func userAskedToRefreshDiscussions(completionHandler: @escaping () -> Void) + func userWantsToInviteContactsToOneToOne(ownedCryptoId: ObvCryptoId, users: [(cryptoId: ObvCryptoId, keycloakDetails: ObvKeycloakUserDetails?)]) async throws } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Types/OlvidURL.swift b/iOSClient/ObvMessenger/ObvMessenger/Types/OlvidURL.swift index af6d9c11..6a9e2f66 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Types/OlvidURL.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Types/OlvidURL.swift @@ -19,6 +19,7 @@ import Foundation import ObvEngine +import ObvTypes struct OlvidURL { @@ -33,40 +34,44 @@ struct OlvidURL { } init?(urlRepresentation: URL) { - guard urlRepresentation.scheme == "https" else { assertionFailure(); return nil } - guard let urlComponents = URLComponents(url: urlRepresentation, resolvingAgainstBaseURL: true) else { assertionFailure(); return nil } + + // If the scheme of the URL is "olvid", try to replace it by "https" + let updatedURL = Self.replaceOlvidSchemeByHTTPS(urlRepresentation: urlRepresentation) + + guard updatedURL.scheme == "https" else { assertionFailure(); return nil } + guard let urlComponents = URLComponents(url: updatedURL, resolvingAgainstBaseURL: true) else { assertionFailure(); return nil } switch urlComponents.host { case ObvMessengerConstants.Host.forConfigurations: - if let serverAndAPIKey = ServerAndAPIKey(urlRepresentation: urlRepresentation) { + if let serverAndAPIKey = ServerAndAPIKey(urlRepresentation: updatedURL) { // For now, if the URL representation decodes to a ServerAndAPIKey, we do not expect to find a BetaConfiguration nor a KeycloakConfiguration - assert(BetaConfiguration(urlRepresentation: urlRepresentation) == nil && KeycloakConfiguration(urlRepresentation: urlRepresentation) == nil) + assert(BetaConfiguration(urlRepresentation: updatedURL) == nil && KeycloakConfiguration(urlRepresentation: updatedURL) == nil) self.category = .configuration(serverAndAPIKey: serverAndAPIKey, betaConfiguration: nil, keycloakConfig: nil) - self.url = urlRepresentation + self.url = updatedURL return - } else if let betaConfiguration = BetaConfiguration(urlRepresentation: urlRepresentation) { + } else if let betaConfiguration = BetaConfiguration(urlRepresentation: updatedURL) { // For now, if the URL representation decodes to a BetaConfiguration, we do not expect to find a ServerAndAPIKey nor a KeycloakConfiguration - assert(ServerAndAPIKey(urlRepresentation: urlRepresentation) == nil && KeycloakConfiguration(urlRepresentation: urlRepresentation) == nil) + assert(ServerAndAPIKey(urlRepresentation: updatedURL) == nil && KeycloakConfiguration(urlRepresentation: updatedURL) == nil) self.category = .configuration(serverAndAPIKey: nil, betaConfiguration: betaConfiguration, keycloakConfig: nil) - self.url = urlRepresentation + self.url = updatedURL return - } else if let keycloakConfig = KeycloakConfiguration(urlRepresentation: urlRepresentation) { + } else if let keycloakConfig = KeycloakConfiguration(urlRepresentation: updatedURL) { // For now, if the URL representation decodes to a KeycloakConfiguration, we do not expect to find a ServerAndAPIKey nor a BetaConfiguration - assert(ServerAndAPIKey(urlRepresentation: urlRepresentation) == nil && BetaConfiguration(urlRepresentation: urlRepresentation) == nil) + assert(ServerAndAPIKey(urlRepresentation: updatedURL) == nil && BetaConfiguration(urlRepresentation: updatedURL) == nil) self.category = .configuration(serverAndAPIKey: nil, betaConfiguration: nil, keycloakConfig: keycloakConfig) - self.url = urlRepresentation + self.url = updatedURL return } else { assertionFailure() return nil } case ObvMessengerConstants.Host.forInvitations: - if let mutualScanURL = ObvMutualScanUrl(urlRepresentation: urlRepresentation) { + if let mutualScanURL = ObvMutualScanUrl(urlRepresentation: updatedURL) { self.category = .mutualScan(mutualScanURL: mutualScanURL) - self.url = urlRepresentation + self.url = updatedURL return - } else if let urlIdentity = ObvURLIdentity(urlRepresentation: urlRepresentation) { + } else if let urlIdentity = ObvURLIdentity(urlRepresentation: updatedURL) { self.category = .invitation(urlIdentity: urlIdentity) - self.url = urlRepresentation + self.url = updatedURL return } else { assertionFailure() @@ -74,7 +79,7 @@ struct OlvidURL { } case ObvMessengerConstants.Host.forOpenIdRedirect: self.category = .openIdRedirect - self.url = urlRepresentation + self.url = updatedURL return default: assertionFailure() @@ -82,6 +87,26 @@ struct OlvidURL { } } + + private static func replaceOlvidSchemeByHTTPS(urlRepresentation: URL) -> URL { + guard var components = URLComponents(url: urlRepresentation, resolvingAgainstBaseURL: false), + components.scheme == "olvid" else { + return urlRepresentation + } + components.scheme = "https" + return components.url ?? urlRepresentation + } + + + var isOpenIdRedirectWithURL: URL? { + switch self.category { + case .invitation, .mutualScan, .configuration: + return nil + case .openIdRedirect: + return url + } + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Types/OlvidUserId.swift b/iOSClient/ObvMessenger/ObvMessenger/Types/OlvidUserId.swift index 339fa5f5..26466cb2 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Types/OlvidUserId.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Types/OlvidUserId.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -26,16 +26,40 @@ import ObvUICoreData enum OlvidUserId: Hashable { case known(contactObjectID: TypeSafeManagedObjectID, ownCryptoId: ObvCryptoId, remoteCryptoId: ObvCryptoId, displayName: String) case unknown(ownCryptoId: ObvCryptoId, remoteCryptoId: ObvCryptoId, displayName: String) + case ownedIdentity(ownedCryptoId: ObvCryptoId) var contactObjectID: TypeSafeManagedObjectID? { if case .known(contactObjectID: let contactObjectID, ownCryptoId: _, remoteCryptoId: _, displayName: _) = self { return contactObjectID } else { return nil } } + var isOwnedIdentity: Bool { + switch self { + case .known, .unknown: + return false + case .ownedIdentity: + return true + } + } + + + /// Non-nil iff we are in the `known` case + var contactIdentifier: ObvContactIdentifier? { + switch self { + case .known(_, ownCryptoId: let ownCryptoId, remoteCryptoId: let remoteCryptoId, _): + return .init(contactCryptoId: remoteCryptoId, ownedCryptoId: ownCryptoId) + case .unknown, .ownedIdentity: + return nil + } + } + + var ownCryptoId: ObvCryptoId { switch self { case .known(contactObjectID: _, ownCryptoId: let ownCryptoId, remoteCryptoId: _, displayName: _), .unknown(ownCryptoId: let ownCryptoId, remoteCryptoId: _, displayName: _): return ownCryptoId + case .ownedIdentity(ownedCryptoId: let ownedCryptoId): + return ownedCryptoId } } @@ -44,6 +68,8 @@ enum OlvidUserId: Hashable { case .known(contactObjectID: _, ownCryptoId: _, remoteCryptoId: let remoteIdentity, displayName: _), .unknown(ownCryptoId: _, remoteCryptoId: let remoteIdentity, displayName: _): return remoteIdentity + case .ownedIdentity(ownedCryptoId: let ownedCryptoId): + return ownedCryptoId } } @@ -52,6 +78,9 @@ enum OlvidUserId: Hashable { case .known(contactObjectID: _, ownCryptoId: _, remoteCryptoId: _, displayName: let displayName), .unknown(ownCryptoId: _, remoteCryptoId: _, displayName: let displayName): return displayName + case .ownedIdentity: + assertionFailure() + return "" } } @@ -66,6 +95,8 @@ extension OlvidUserId: CustomDebugStringConvertible { return "known (\(remoteCryptoId.getIdentity().debugDescription))" case .unknown(ownCryptoId: _, remoteCryptoId: let remoteCryptoId, displayName: _): return "unknown (\(remoteCryptoId.getIdentity().debugDescription))" + case .ownedIdentity: + return "ownedIdentity" } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ActivityIndicators/BallScaleMultipleActivityIndicatorView.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ActivityIndicators/BallScaleMultipleActivityIndicatorView.swift index 13294c76..5b8a0e34 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ActivityIndicators/BallScaleMultipleActivityIndicatorView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ActivityIndicators/BallScaleMultipleActivityIndicatorView.swift @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + final class BallScaleMultipleActivityIndicatorView: UIView, ActivityIndicator { diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ActivityIndicators/CircleStrokeSpinActivityIndicatorView.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ActivityIndicators/CircleStrokeSpinActivityIndicatorView.swift index c10e6a93..14f3f09d 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ActivityIndicators/CircleStrokeSpinActivityIndicatorView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ActivityIndicators/CircleStrokeSpinActivityIndicatorView.swift @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + final class CircleStrokeSpinActivityIndicatorView: UIView, ActivityIndicator { diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ActivityIndicators/DotsActivityIndicatorView.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ActivityIndicators/DotsActivityIndicatorView.swift index a1ac6056..fb63b2cc 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ActivityIndicators/DotsActivityIndicatorView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ActivityIndicators/DotsActivityIndicatorView.swift @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + class DotsActivityIndicatorView: UIView, ActivityIndicator { diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvButton.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvButton.swift index 91be5577..7e5f48a7 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvButton.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvButton.swift @@ -19,6 +19,7 @@ import ObvUI import UIKit +import ObvDesignSystem /// When setting this class within a storyboard, the type should be set to "custom" @@ -56,7 +57,7 @@ class ObvButton: UIButton { private func setup() { self.layer.cornerRadius = self.cornerRadius - self.contentEdgeInsets = UIEdgeInsets(top: topPadding, left: sidePadding, bottom: topPadding, right: sidePadding) + // self.contentEdgeInsets = UIEdgeInsets(top: topPadding, left: sidePadding, bottom: topPadding, right: sidePadding) setTitle(self.title(for: .normal), for: .normal) setTitleColors() resetColors() diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvButtonBorderless.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvButtonBorderless.swift index 004b30b0..2a3ac0d3 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvButtonBorderless.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvButtonBorderless.swift @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + class ObvButtonBorderless: ObvButton { diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvFloatingButton.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvFloatingButton.swift index eed72480..3e3d0621 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvFloatingButton.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvFloatingButton.swift @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + final class ObvFloatingButton: UIButton { @@ -38,7 +40,7 @@ final class ObvFloatingButton: UIButton { self.backgroundColor = .clear resetShadowPath() self.tintColor = .white - self.adjustsImageWhenHighlighted = false + // self.adjustsImageWhenHighlighted = false } override func draw(_ rect: CGRect) { diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvRoundedButton.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvRoundedButton.swift index 3dcc0afa..e288d997 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvRoundedButton.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvRoundedButton.swift @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + class ObvRoundedButton: UIButton { @@ -39,7 +41,7 @@ class ObvRoundedButton: UIButton { resetBackgroundColor() resetTintColor() self.tintColor = AppTheme.shared.colorScheme.secondaryLabel - self.adjustsImageWhenHighlighted = false + // self.adjustsImageWhenHighlighted = false } diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvRoundedButtonBorderless.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvRoundedButtonBorderless.swift index ea2f77a5..25a78045 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvRoundedButtonBorderless.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/Buttons/ObvRoundedButtonBorderless.swift @@ -19,13 +19,15 @@ import Foundation import ObvUI +import ObvDesignSystem + final class ObvRoundedButtonBorderless: ObvRoundedButton { internal override func setup() { layer.cornerRadius = frame.size.height / 2.0 resetBackgroundColor() - self.adjustsImageWhenHighlighted = false + // self.adjustsImageWhenHighlighted = false } diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/EditNicknameAndCustomPicture/EditNicknameAndCustomPictureView.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/EditNicknameAndCustomPicture/EditNicknameAndCustomPictureView.swift new file mode 100644 index 00000000..50611e82 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/EditNicknameAndCustomPicture/EditNicknameAndCustomPictureView.swift @@ -0,0 +1,302 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import ObvTypes +import UI_ObvPhotoButton +import UI_ObvCircledInitials + + + +protocol EditNicknameAndCustomPictureViewActionsProtocol: AnyObject { + func userWantsToSaveNicknameAndCustomPicture(identifier: EditNicknameAndCustomPictureView.Model.IdentifierKind, nickname: String, customPhoto: UIImage?) async + func userWantsToDismissEditNicknameAndCustomPictureView() async + // The following two methods leverages the view controller to show + // the appropriate UI allowing the user to create her profile picture. + func userWantsToTakePhoto() async -> UIImage? + func userWantsToChoosePhoto() async -> UIImage? +} + + + +// MARK: - EditNicknameAndCustomPictureView + +struct EditNicknameAndCustomPictureView: View, ObvPhotoButtonViewActionsProtocol { + + + final class Model: ObservableObject, ObvPhotoButtonViewModelProtocol { + + enum IdentifierKind { + case contact(contactIdentifier: ObvContactIdentifier) + case groupV2(groupV2Identifier: GroupV2Identifier) + } + + fileprivate let identifier: IdentifierKind + fileprivate let currentNickname: String // Empty string means "no nickname" + fileprivate let currentInitials: String + fileprivate let defaultPhoto: UIImage? // The photo chosen by the contact or by a group owner + fileprivate let currentCustomPhoto: UIImage? + + var photoThatCannotBeRemoved: UIImage? { + defaultPhoto + } + + @Published var circledInitialsConfiguration: CircledInitialsConfiguration + + init(identifier: IdentifierKind, currentInitials: String, defaultPhoto: UIImage?, currentCustomPhoto: UIImage?, currentNickname: String) { + self.identifier = identifier + self.currentInitials = currentInitials + self.currentNickname = currentNickname + self.defaultPhoto = defaultPhoto + self.currentCustomPhoto = currentCustomPhoto + let photo = currentCustomPhoto ?? defaultPhoto + switch identifier { + case .contact(let contactIdentifier): + self.circledInitialsConfiguration = .contact( + initial: currentInitials, + photo: .image(image: photo), + showGreenShield: false, + showRedShield: false, + cryptoId: contactIdentifier.contactCryptoId, + tintAdjustementMode: .normal) + case .groupV2(let groupV2Identifier): + self.circledInitialsConfiguration = .groupV2( + photo: .image(image: photo), + groupIdentifier: groupV2Identifier, + showGreenShield: false) + } + } + + + /// When the user choses a new photo: + /// - If it is non-`nil`, we show it and this is the one that will be saved as a custom photo if the user hits the save button + /// - If it is `nil`, we consider that the user wants to remove the current custom photo (if any) and show the default photo chosen by the contact or a group owner + @MainActor + fileprivate func userChoseNewCustomPhoto(_ customPhoto: UIImage?) async { + let photo = customPhoto ?? self.defaultPhoto + withAnimation { + self.circledInitialsConfiguration = self.circledInitialsConfiguration.replacingPhoto(with: .image(image: photo)) + } + } + + + @MainActor + fileprivate func userChoseNewNickname(_ nickname: String) async { + let sanitizedNickname = nickname.trimmingWhitespacesAndNewlines() + let newInitials: String + if let firstCharacter = sanitizedNickname.first { + newInitials = String(firstCharacter) + } else { + newInitials = currentInitials + } + withAnimation { + self.circledInitialsConfiguration = circledInitialsConfiguration.replacingInitials(with: newInitials) + } + } + + } + + + let actions: EditNicknameAndCustomPictureViewActionsProtocol + @ObservedObject var model: Model + @State private var nickname = "" + @State private var isSaveButtonDisabled = true + + + private func userWantsToSaveNicknameAndCustomPicture() { + Task { + let customPhoto: UIImage? + if model.circledInitialsConfiguration.photo != model.defaultPhoto { + customPhoto = model.circledInitialsConfiguration.photo + } else { + customPhoto = nil + } + await actions.userWantsToSaveNicknameAndCustomPicture(identifier: model.identifier, + nickname: nickname.trimmingWhitespacesAndNewlines(), + customPhoto: customPhoto) + } + } + + + private func userWantsToCancel() { + Task { + await actions.userWantsToDismissEditNicknameAndCustomPictureView() + } + } + + + private func nicknameDidChange() { + Task { + await model.userChoseNewNickname(nickname) + resetIsSaveButtonDisabled() + } + } + + + private func onAppear() { + self.nickname = model.currentNickname + } + + + private func resetIsSaveButtonDisabled() { + let nicknameChanged = nickname != model.currentNickname + let customPhotoChanged: Bool + if let currentCustomPhoto = model.currentCustomPhoto { + customPhotoChanged = model.circledInitialsConfiguration.photo != currentCustomPhoto + } else if let defaultPhoto = model.defaultPhoto { + customPhotoChanged = model.circledInitialsConfiguration.photo != defaultPhoto + } else { + customPhotoChanged = model.circledInitialsConfiguration.photo != nil + } + withAnimation { + isSaveButtonDisabled = !nicknameChanged && !customPhotoChanged + } + } + + // ObvPhotoButtonViewActionsProtocol + + func userWantsToAddProfilPictureWithCamera() { + Task { + guard let newImage = await actions.userWantsToTakePhoto() else { return } + await model.userChoseNewCustomPhoto(newImage) + resetIsSaveButtonDisabled() + } + } + + + func userWantsToAddProfilPictureWithPhotoLibrary() { + Task { + guard let newImage = await actions.userWantsToChoosePhoto() else { return } + await model.userChoseNewCustomPhoto(newImage) + resetIsSaveButtonDisabled() + } + } + + + func userWantsToRemoveProfilePicture() { + Task { + await model.userChoseNewCustomPhoto(nil) + resetIsSaveButtonDisabled() + } + } + + + private var explanationLocalizedStringKey: LocalizedStringKey { + switch model.identifier { + case .contact: + return "EDIT_NICKNAME_AND_CUSTOM_PICTURE_EXPLANATION_FOR_CONTACT" + case .groupV2: + return "EDIT_NICKNAME_AND_CUSTOM_PICTURE_EXPLANATION_FOR_GROUP" + } + } + + + var body: some View { + VStack { + ScrollView { + VStack { + Text("EDIT_NICKNAME_AND_CUSTOM_PICTURE") + .font(.title) + .fontWeight(.heavy) + .multilineTextAlignment(.center) + .padding(.bottom) + Text(explanationLocalizedStringKey) + .padding(.bottom) + .multilineTextAlignment(.center) + ObvPhotoButtonView(actions: self, model: model) + .padding(.bottom, 10) + InternalTextField("FORM_NICKNAME", text: $nickname) + .onChange(of: nickname) { _ in nicknameDidChange() } + .padding(.bottom, 10) + } + .padding() + } + VStack { + OlvidButton(style: .blue, title: Text("Save"), systemIcon: nil, action: userWantsToSaveNicknameAndCustomPicture) + .disabled(isSaveButtonDisabled) + OlvidButton(style: .text, title: Text("Cancel"), systemIcon: nil, action: userWantsToCancel) + }.padding() + } + .onAppear(perform: onAppear) + } +} + + +// MARK: - Text field used in this view only + +private struct InternalTextField: View { + + private let key: LocalizedStringKey + private let text: Binding + + init(_ key: LocalizedStringKey, text: Binding) { + self.key = key + self.text = text + } + + var body: some View { + TextField(key, text: text) + .padding() + .background(Color("TextFieldBackgroundColor")) + .clipShape(RoundedRectangle(cornerRadius: 12)) + } + +} + + + +// MARK: - Previews + + +struct EditNicknameAndCustomPictureView_Previews: PreviewProvider { + + private static let ownedCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!) + private static let contactCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f000009e171a9c73a0d6e9480b022154c83b13dfa8e4c99496c061c0c35b9b0432b3a014a5393f98a1aead77b813df0afee6b8af7e5f9a5aae6cb55fdb6bc5cc766f8da")!) + + private static let contactIdentifier = ObvContactIdentifier(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) + + private final class ActionsForPreviews: EditNicknameAndCustomPictureViewActionsProtocol { + + func userWantsToSaveNicknameAndCustomPicture(identifier: EditNicknameAndCustomPictureView.Model.IdentifierKind, nickname: String, customPhoto: UIImage?) async {} + func userWantsToDismissEditNicknameAndCustomPictureView() async {} + + func userWantsToTakePhoto() async -> UIImage? { + return UIImage(systemIcon: .archivebox) + } + + func userWantsToChoosePhoto() async -> UIImage? { + return UIImage(systemIcon: .book) + } + + } + + private static let actions = ActionsForPreviews() + + private static let model = EditNicknameAndCustomPictureView.Model( + identifier: .contact(contactIdentifier: contactIdentifier), + currentInitials: "A", + defaultPhoto: UIImage(systemIcon: .alarm), + currentCustomPhoto: nil, + currentNickname: "") // Empty string means "no nickname" + + static var previews: some View { + EditNicknameAndCustomPictureView(actions: actions, model: model) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/EditNicknameAndCustomPicture/EditNicknameAndCustomPictureViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/EditNicknameAndCustomPicture/EditNicknameAndCustomPictureViewController.swift new file mode 100644 index 00000000..20cbfb7d --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/EditNicknameAndCustomPicture/EditNicknameAndCustomPictureViewController.swift @@ -0,0 +1,252 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import SwiftUI +import UIKit +import ObvTypes +import PhotosUI +import UI_ObvImageEditor + + +protocol EditNicknameAndCustomPictureViewControllerDelegate: AnyObject { + func userWantsToSaveNicknameAndCustomPicture(controller: EditNicknameAndCustomPictureViewController, identifier: EditNicknameAndCustomPictureView.Model.IdentifierKind, nickname: String, customPhoto: UIImage?) async + func userWantsToDismissEditNicknameAndCustomPictureViewController(controller: EditNicknameAndCustomPictureViewController) async +} + + + +/// This view controller is used in the single contact a single group v2 and allows the user to edit the nickname and custom photo of the contact or the group. +final class EditNicknameAndCustomPictureViewController: UIHostingController, EditNicknameAndCustomPictureViewActionsProtocol, PHPickerViewControllerDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate, ObvImageEditorViewControllerDelegate { + + + private weak var delegate: EditNicknameAndCustomPictureViewControllerDelegate? + + + init(model: EditNicknameAndCustomPictureView.Model, delegate: EditNicknameAndCustomPictureViewControllerDelegate) { + let actions = EditNicknameAndCustomPictureViewActions() + let view = EditNicknameAndCustomPictureView(actions: actions, model: model) + super.init(rootView: view) + self.delegate = delegate + actions.delegate = self + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + + // EditNicknameAndCustomPictureViewActionsProtocol + + private var continuationForPicker: CheckedContinuation? + + + func userWantsToSaveNicknameAndCustomPicture(identifier: EditNicknameAndCustomPictureView.Model.IdentifierKind, nickname: String, customPhoto: UIImage?) async { + await delegate?.userWantsToSaveNicknameAndCustomPicture(controller: self, identifier: identifier, nickname: nickname, customPhoto: customPhoto) + } + + + func userWantsToDismissEditNicknameAndCustomPictureView() async { + await delegate?.userWantsToDismissEditNicknameAndCustomPictureViewController(controller: self) + } + + + @MainActor + func userWantsToTakePhoto() async -> UIImage? { + + removeAnyPreviousContinuation() + + guard UIImagePickerController.isSourceTypeAvailable(.camera) else { return nil } + + let picker = UIImagePickerController() + picker.delegate = self + picker.allowsEditing = false + picker.sourceType = .camera + picker.cameraDevice = .front + + let imageFromPicker = await withCheckedContinuation { (continuation: CheckedContinuation) in + self.continuationForPicker = continuation + present(picker, animated: true) + } + + guard let imageFromPicker else { return nil } + + let resizedImage = await resizeImageFromPicker(imageFromPicker: imageFromPicker) + + return resizedImage + + } + + + @MainActor + func userWantsToChoosePhoto() async -> UIImage? { + + removeAnyPreviousContinuation() + + guard UIImagePickerController.isSourceTypeAvailable(.photoLibrary) else { return nil } + + var configuration = PHPickerConfiguration() + configuration.selectionLimit = 1 + configuration.filter = .images + let picker = PHPickerViewController(configuration: configuration) + picker.delegate = self + + let imageFromPicker = await withCheckedContinuation { (continuation: CheckedContinuation) in + self.continuationForPicker = continuation + present(picker, animated: true) + } + + guard let imageFromPicker else { return nil } + + let resizedImage = await resizeImageFromPicker(imageFromPicker: imageFromPicker) + + return resizedImage + + } + + + private func removeAnyPreviousContinuation() { + if let continuationForPicker { + continuationForPicker.resume(returning: nil) + self.continuationForPicker = nil + } + } + + + // PHPickerViewControllerDelegate + + func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) { + picker.dismiss(animated: true) + guard let continuationForPicker else { assertionFailure(); return } + self.continuationForPicker = nil + if results.count == 1, let result = results.first { + result.itemProvider.loadObject(ofClass: UIImage.self) { item, error in + guard error == nil else { + continuationForPicker.resume(returning: nil) + return + } + guard let image = item as? UIImage else { + continuationForPicker.resume(returning: nil) + return + } + continuationForPicker.resume(returning: image) + } + } else { + continuationForPicker.resume(with: .success(nil)) + } + } + + + // UIImagePickerControllerDelegate + + func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { + assert(Thread.isMainThread) + picker.dismiss(animated: true) + guard let continuationForPicker else { assertionFailure(); return } + self.continuationForPicker = nil + let image = info[.originalImage] as? UIImage + continuationForPicker.resume(returning: image) + } + + + func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { + assert(Thread.isMainThread) + picker.dismiss(animated: true) + guard let continuationForPicker else { assertionFailure(); return } + self.continuationForPicker = nil + continuationForPicker.resume(returning: nil) + } + + + // ObvImageEditorViewControllerDelegate + + func userCancelledImageEdition(_ imageEditor: ObvImageEditorViewController) async { + imageEditor.dismiss(animated: true) + guard let continuationForPicker else { assertionFailure(); return } + self.continuationForPicker = nil + continuationForPicker.resume(returning: nil) + } + + func userConfirmedImageEdition(_ imageEditor: ObvImageEditorViewController, image: UIImage) async { + imageEditor.dismiss(animated: true) + guard let continuationForPicker else { assertionFailure(); return } + self.continuationForPicker = nil + continuationForPicker.resume(returning: image) + } + + + // Resizing the photos received from the camera or the photo library + + private func resizeImageFromPicker(imageFromPicker: UIImage) async -> UIImage? { + + let imageEditor = ObvImageEditorViewController(originalImage: imageFromPicker, + showZoomButtons: Utils.targetEnvironmentIsMacCatalyst, + maxReturnedImageSize: (1024, 1024), + delegate: self) + + removeAnyPreviousContinuation() + + let resizedImage = await withCheckedContinuation { (continuation: CheckedContinuation) in + self.continuationForPicker = continuation + present(imageEditor, animated: true) + } + + return resizedImage + + } + +} + + +private final class EditNicknameAndCustomPictureViewActions: EditNicknameAndCustomPictureViewActionsProtocol { + + weak var delegate: EditNicknameAndCustomPictureViewActionsProtocol? + + func userWantsToTakePhoto() async -> UIImage? { + return await delegate?.userWantsToTakePhoto() + } + + func userWantsToChoosePhoto() async -> UIImage? { + return await delegate?.userWantsToChoosePhoto() + } + + func userWantsToSaveNicknameAndCustomPicture(identifier: EditNicknameAndCustomPictureView.Model.IdentifierKind, nickname: String, customPhoto: UIImage?) async { + await delegate?.userWantsToSaveNicknameAndCustomPicture(identifier: identifier, nickname: nickname, customPhoto: customPhoto) + } + + func userWantsToDismissEditNicknameAndCustomPictureView() async { + await delegate?.userWantsToDismissEditNicknameAndCustomPictureView() + } + +} + + + +// MARK: Utils + +fileprivate struct Utils { + + static var targetEnvironmentIsMacCatalyst: Bool { + #if targetEnvironment(macCatalyst) + return true + #else + return false + #endif + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/EmojiPickerView.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/EmojiPickerView.swift index 38a74605..012747ea 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/EmojiPickerView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/EmojiPickerView.swift @@ -22,6 +22,9 @@ import UniformTypeIdentifiers import Combine import ObvUICoreData import ObvUI +import OlvidUtils +import ObvSettings + @available(iOS 15.0, *) final class EmojiPickerHostingViewController: UIHostingController, EmojiPickerViewModelDelegate { @@ -35,6 +38,18 @@ final class EmojiPickerHostingViewController: UIHostingController. - */ - -import SwiftUI - - -struct ObvActivityIndicator: UIViewRepresentable { - - @Binding var isAnimating: Bool - let style: UIActivityIndicatorView.Style - let color: UIColor? - - func makeUIView(context: UIViewRepresentableContext) -> UIActivityIndicatorView { - return UIActivityIndicatorView(style: style) - } - - func updateUIView(_ uiView: UIActivityIndicatorView, context: UIViewRepresentableContext) { - if let color = self.color { - uiView.color = color - } - if isAnimating { - uiView.startAnimating() - } else { - uiView.stopAnimating() - } - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ImageEditor.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ImageEditor.swift deleted file mode 100644 index 219cb1de..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ImageEditor.swift +++ /dev/null @@ -1,397 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import SwiftUI - - -struct ImageEditor: View { - - @Binding var image: UIImage? - - @State var scale: CGFloat = 1.0 - @State var accumulatedScales: CGFloat = 1.0 - - @State var offset: CGSize = CGSize.zero - @State var accumulatedOffsets: CGSize = CGSize.zero - - private static var widthScale: CGFloat = 0.8 - private static var profilSize: CGFloat = 1080 - - @State var orientation = UIDevice.current.orientation - - var completionHandler: () -> Void - - let orientationChanged = NotificationCenter.default.publisher(for: UIDevice.orientationDidChangeNotification) - .makeConnectable() - .autoconnect() - - var body: some View { - ZStack { - Color.black.edgesIgnoringSafeArea(.all) - GeometryReader() { geo in - let isPortrait = geo.size.height > geo.size.width - let circleDiameter = (isPortrait ? geo.size.width : geo.size.height) * ImageEditor.widthScale - if let image { - let geometry = Geometry(circleDiameter: circleDiameter, geo: geo, imageSize: image.size) - - VStack(alignment: .center) { - Spacer() - HStack(alignment: .center) { - let base = Image(uiImage: image) - .resizable() - .aspectRatio(image.size, contentMode: .fill) - .frame(width: isPortrait ? geo.size.width * ImageEditor.widthScale : geo.size.width, - height: isPortrait ? geo.size.height : geo.size.height * ImageEditor.widthScale) - .offset(offset) - .scaleEffect(scale) - .onAppear { - scale = geometry.defaultScale - accumulatedScales = scale - } - Spacer() - ZStack { - base - .opacity(0.4) - .blur(radius: 1.0) - base - .opacity(0.55) - .blur(radius: 0.4) - .frame(width: circleDiameter, height: circleDiameter) - .clipped() - base - .clipShape(Circle()) - .gesture(MagnificationGesture() - .onChanged { value in - let newScale = self.accumulatedScales * value - let defaultScale = geometry.defaultScale - guard newScale > defaultScale else { return } - if let fixedOffset = checkBounds(geometry: geometry, - newScale: newScale, - newOffset: offset) { - self.offset = fixedOffset - } - self.scale = newScale - } - .onEnded { value in - let newScale = self.accumulatedScales * value - let defaultScale = geometry.defaultScale - guard newScale > defaultScale else { return } - if let fixedOffset = checkBounds(geometry: geometry, - newScale: newScale, - newOffset: offset) { - self.offset = fixedOffset - } - self.scale = newScale - self.accumulatedScales = self.scale - } - .simultaneously(with: DragGesture() - .onChanged { value in - let newOffset = self.accumulatedOffsets + (value.translation / scale) - let fixedOffset = checkBounds(geometry: geometry, - newScale: scale, - newOffset: newOffset) ?? newOffset - self.offset = fixedOffset - } - .onEnded { value in - let newOffset = self.accumulatedOffsets + (value.translation / scale) - let fixedOffset = checkBounds(geometry: geometry, - newScale: scale, - newOffset: newOffset) ?? newOffset - self.offset = fixedOffset - self.accumulatedOffsets = self.offset - } - )) - .onTapGesture(count: 2) { - withAnimation { - self.scale = geometry.defaultScale - self.offset = CGSize.zero - self.accumulatedScales = scale - self.accumulatedOffsets = offset - } - } - } - Spacer() - } - Spacer() - } - .overlay( - HStack { - if let xmark = UIImage(systemName: "multiply.circle.fill") { - Button(action: { - self.image = nil - completionHandler() - }, label: { - Image(uiImage: xmark) - .resizable() - .renderingMode(.template) - .foregroundColor(.red) - .scaledToFill() - .frame(width: 44, height: 44) - .padding(30) - }) - } - Spacer() - if let checkmark = UIImage(systemName: "checkmark.circle.fill") { - Button(action: { - if let scaledImage = buildImage(geometry: geometry, image: image, offset: offset, scale: scale) { - self.image = scaledImage - completionHandler() - } - }, label: { - Image(uiImage: checkmark) - .resizable() - .renderingMode(.template) - .foregroundColor(.green) - .scaledToFill() - .frame(width: 44, height: 44) - .padding(30) - }) - } - } - ,alignment: .bottom) - .onReceive(orientationChanged) { _ in - self.orientation = UIDevice.current.orientation - self.scale = CGFloat.maximum(self.scale, geometry.defaultScale) - } - } - } - } - } - - private func buildImage(geometry: Geometry, image: UIImage, offset: CGSize, scale: CGFloat) -> UIImage? { - let x = geometry.left(scale: scale, offset: offset) - geometry.radius - let y = geometry.top(scale: scale, offset: offset) - geometry.radius - - let circleSize = CGSize(width: geometry.circleDiameter, height: geometry.circleDiameter) - - let origin = geometry.convertToPixel(x: x, y: y, scale: scale) - let size = geometry.convertToPixel(size: circleSize, scale: scale) - - let cropZone = CGRect(x: origin.x, y: origin.y, - width: size.width, height: size.height) - - var result = image.croppedImage(inRect: cropZone) - - result = ImageEditor.resize(image: result, size: ImageEditor.profilSize) - - if let colorSpace = result.cgImage?.colorSpace?.name { - if colorSpace != CGColorSpace.sRGB { - result = ImageEditor.convertColorSpace(image: result, to: CGColorSpaceCreateDeviceRGB()) - } - } - - return result - } - - static func convertColorSpace(image: UIImage, to colorSpace: CGColorSpace) -> UIImage { - guard let cgImage = image.cgImage else { assertionFailure(); return image } - - guard cgImage.colorSpace != colorSpace else { assertionFailure(); return image } - - let context = CGContext(data: nil, width: cgImage.width, height: cgImage.height, bitsPerComponent: cgImage.bitsPerComponent, bytesPerRow: cgImage.bytesPerRow, space: colorSpace, bitmapInfo: cgImage.bitmapInfo.rawValue) - - let size = CGSize(width: cgImage.width, height: cgImage.height) - context?.draw(cgImage, in: CGRect(origin: .zero, size: size)) - - guard let makeImage = context?.makeImage() else { assertionFailure(); return image } - - return UIImage(cgImage: makeImage, scale: image.scale, orientation: image.imageOrientation) - } - - static func resize(image: UIImage, size newSize: CGFloat) -> UIImage { - let currentSize = image.size - guard currentSize.width > newSize else { return image } - - let newSize = CGSize(width: newSize / UIScreen.main.scale, height: newSize / UIScreen.main.scale) - - return UIGraphicsImageRenderer(size: newSize).image { _ in - image.draw(in: CGRect(origin: .zero, size: newSize)) - } - } - - struct Geometry { - - let circleDiameter: CGFloat - let geo: GeometryProxy - let imageSize: CGSize - - var radius: CGFloat { circleDiameter / 2 } - var imageRatio: CGFloat { imageSize.width / imageSize.height } - var imageIsInPortrait: Bool { imageRatio < 1 } - - var isScreenInPortrait: Bool { geo.size.height > geo.size.width } - - func convertToPixel(x: CGFloat, y: CGFloat, scale: CGFloat) -> CGPoint { - let imageSizeOnScreen = self.imageSizeOnScreen(scale: scale) - - let xRatio = x / imageSizeOnScreen.width - let yRatio = y / imageSizeOnScreen.height - - return CGPoint(x: imageSize.width * xRatio, y: imageSize.height * yRatio) - } - - func convertToPixel(size: CGSize, scale: CGFloat) -> CGSize { - let imageSizeOnScreen = self.imageSizeOnScreen(scale: scale) - - let widthRatio = size.width / imageSizeOnScreen.width - let heightRatio = size.height / imageSizeOnScreen.height - - return CGSize(width: imageSize.width * widthRatio, height: imageSize.height * heightRatio) - } - - func imageSizeOnScreen(scale: CGFloat) -> CGSize { - let imageHeight: CGFloat - let imageWidth: CGFloat - if (isScreenInPortrait) { - imageHeight = scale * geo.size.height - imageWidth = imageHeight * imageRatio - } else { - imageWidth = scale * geo.size.width - imageHeight = imageWidth / imageRatio - } - return CGSize(width: imageWidth, height: imageHeight) - } - - func top(scale: CGFloat, offset: CGSize) -> CGFloat { - let imageHeight = imageSizeOnScreen(scale: scale).height - return (imageHeight / 2) - (offset.height * scale) - } - - func bottom(scale: CGFloat, offset: CGSize) -> CGFloat { - let top = self.top(scale: scale, offset: offset) - let imageHeight = imageSizeOnScreen(scale: scale).height - return top - imageHeight - } - - func left(scale: CGFloat, offset: CGSize) -> CGFloat { - let imageWidth = imageSizeOnScreen(scale: scale).width - return (imageWidth / 2) - (offset.width * scale) - } - - func right(scale: CGFloat, offset: CGSize) -> CGFloat { - let left = self.left(scale: scale, offset: offset) - let imageWidth = imageSizeOnScreen(scale: scale).width - return left - imageWidth - } - - var defaultScale: CGFloat { - if isScreenInPortrait { - if imageIsInPortrait { - return (circleDiameter / geo.size.height) / imageRatio - } else { // ImageInLandscape - return circleDiameter / geo.size.height - } - } else { // ScreenInLandscape - if imageIsInPortrait { - return circleDiameter / geo.size.width - } else { // ImageInLandscape - return circleDiameter / geo.size.width * imageRatio - } - } - } - - - } - - private func checkBounds(geometry: Geometry, newScale: CGFloat, newOffset: CGSize) -> CGSize? { - var fixedOffset: CGSize? = nil - - let radius = geometry.radius - - let top = geometry.top(scale: newScale, offset: newOffset) - if top < radius { - if fixedOffset == nil { fixedOffset = newOffset } - let correction = (radius - top) / newScale - fixedOffset = CGSize(width: fixedOffset!.width, - height: fixedOffset!.height - correction) - } - - let bottom = geometry.bottom(scale: newScale, offset: newOffset) - if bottom > -radius { - if fixedOffset == nil { fixedOffset = newOffset } - let correction = (bottom + radius) / newScale - fixedOffset = CGSize(width: fixedOffset!.width, - height: fixedOffset!.height + correction) - } - - let left = geometry.left(scale: newScale, offset: newOffset) - if left < radius { - if fixedOffset == nil { fixedOffset = newOffset } - let correction = (radius - left) / newScale - fixedOffset = CGSize(width: fixedOffset!.width - correction, - height: fixedOffset!.height) - } - - let right = geometry.right(scale: newScale, offset: newOffset) - if right > -radius { - if fixedOffset == nil { fixedOffset = newOffset } - let correction = (radius + right) / newScale - fixedOffset = CGSize(width: fixedOffset!.width + correction, - height: fixedOffset!.height) - } - - return fixedOffset - } - -} - - -struct Landscape: View where Content: View { - let content: () -> Content - let height = UIScreen.main.bounds.width - let width = UIScreen.main.bounds.height - var body: some View { - content().previewLayout(PreviewLayout.fixed(width: width, height: height)) - } -} - -fileprivate extension CGSize { - - static func + (lhs: CGSize, rhs: CGSize) -> CGSize { - return CGSize(width: lhs.width + rhs.width, height: lhs.height + rhs.height) - } - - static func / (size: CGSize, denominator: CGFloat) -> CGSize { - return CGSize(width: size.width / denominator, height: size.height / denominator) - } - -} - -fileprivate extension UIImage { - func croppedImage(inRect rect: CGRect) -> UIImage { - var rectTransform: CGAffineTransform - switch imageOrientation { - case .left: - let rotation = CGAffineTransform(rotationAngle: .pi / 2) - rectTransform = rotation.translatedBy(x: 0, y: -size.height) - case .right: - let rotation = CGAffineTransform(rotationAngle: -.pi / 2) - rectTransform = rotation.translatedBy(x: -size.width, y: 0) - case .down: - let rotation = CGAffineTransform(rotationAngle: -.pi) - rectTransform = rotation.translatedBy(x: -size.width, y: -size.height) - default: - rectTransform = .identity - } - rectTransform = rectTransform.scaledBy(x: scale, y: scale) - let transformedRect = rect.applying(rectTransform) - let imageRef = cgImage!.cropping(to: transformedRect)! - return UIImage(cgImage: imageRef, scale: scale, orientation: imageOrientation) - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/InitialCircleView.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/InitialCircleView.swift index ec51baee..6824a212 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/InitialCircleView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/InitialCircleView.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,26 +20,58 @@ import ObvUI import SwiftUI import ObvUICoreData -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvDesignSystem + + +/// Legacy view. Use InitialCircleViewNew instead. struct InitialCircleView: View { - let circledTextView: Text? - let systemImage: CircledInitialsIcon - let circleBackgroundColor: UIColor? - let circleTextColor: UIColor? - let circleDiameter: CGFloat - - init(circledTextView: Text?, systemImage: CircledInitialsIcon, circleBackgroundColor: UIColor?, circleTextColor: UIColor?, circleDiameter: CGFloat = 70.0) { - self.circledTextView = circledTextView - self.systemImage = systemImage - self.circleBackgroundColor = circleBackgroundColor - self.circleTextColor = circleTextColor - self.circleDiameter = circleDiameter - } + struct Model: Identifiable { + + let id: UUID + + struct Content { + let text: String? + let icon: CircledInitialsIcon + } - private var systemImageSizeAdjustement: CGFloat { - switch systemImage { + struct Colors { + let background: UIColor + let foreground: UIColor + + init(background: UIColor?, foreground: UIColor?) { + self.background = background ?? AppTheme.shared.colorScheme.systemFill + self.foreground = foreground ?? AppTheme.shared.colorScheme.secondaryLabel + } + + } + + let content: Content + let colors: Colors + let circleDiameter: CGFloat + + init(content: Content, colors: Colors, circleDiameter: CGFloat) { + self.id = UUID() + self.content = content + self.colors = colors + self.circleDiameter = circleDiameter + } + + } + + + let model: Model + + + init(model: Model) { + self.model = model + } + + + private var iconSizeAdjustement: CGFloat { + switch model.content.icon { case .person: return 2 case .person3Fill: return 3 case .personFillXmark: return 2 @@ -48,97 +80,90 @@ struct InitialCircleView: View { } } - private var textColor: Color { - Color(circleTextColor ?? AppTheme.shared.colorScheme.secondaryLabel) - } - private var backgroundColor: Color { - Color(circleBackgroundColor ?? AppTheme.shared.colorScheme.systemFill) - } - var body: some View { ZStack { Circle() - .frame(width: circleDiameter, height: circleDiameter) - .foregroundColor(backgroundColor) - if let circledTextView = self.circledTextView { - circledTextView - .font(Font.system(size: circleDiameter/2.0, weight: .black, design: .rounded)) - .foregroundColor(textColor) + .frame(width: model.circleDiameter, height: model.circleDiameter) + .foregroundColor(Color(model.colors.background)) + if let text = model.content.text { + Text(text) + .font(Font.system(size: model.circleDiameter/2.0, weight: .black, design: .rounded)) + .foregroundColor(Color(model.colors.foreground)) } else { - Image(systemName: systemImage.icon.systemName) - .font(Font.system(size: circleDiameter/systemImageSizeAdjustement, weight: .semibold, design: .default)) - .foregroundColor(textColor) + Image(systemName: model.content.icon.icon.systemName) + .font(Font.system(size: model.circleDiameter/iconSizeAdjustement, weight: .semibold, design: .default)) + .foregroundColor(Color(model.colors.foreground)) } } } } +// MARK: - NSManagedObjects extensions -struct InitialCircleView_Previews: PreviewProvider { +extension PersistedObvOwnedIdentity { - private struct TestData: Identifiable { - let id = UUID() - let circledTextView: Text? - let systemImage: CircledInitialsIcon - let circleBackgroundColor: UIColor? - let circleTextColor: UIColor? - let circleDiameter: CGFloat + var initialCircleViewModelColors: InitialCircleView.Model.Colors { + .init(background: self.circledInitialsConfiguration.backgroundColor(appTheme: AppTheme.shared), + foreground: self.circledInitialsConfiguration.foregroundColor(appTheme: AppTheme.shared)) } - private static let testData = [ - TestData(circledTextView: Text("SV"), - systemImage: .person, - circleBackgroundColor: nil, - circleTextColor: nil, - circleDiameter: 70), - TestData(circledTextView: Text("A"), - systemImage: .person, - circleBackgroundColor: .red, - circleTextColor: .blue, - circleDiameter: 70), - TestData(circledTextView: Text("MF"), - systemImage: .person, - circleBackgroundColor: nil, - circleTextColor: nil, - circleDiameter: 120), - TestData(circledTextView: nil, - systemImage: .person, - circleBackgroundColor: .purple, - circleTextColor: .green, - circleDiameter: 70), - TestData(circledTextView: nil, - systemImage: .person, - circleBackgroundColor: .purple, - circleTextColor: .green, - circleDiameter: 120), - TestData(circledTextView: nil, - systemImage: .person, - circleBackgroundColor: .purple, - circleTextColor: .green, - circleDiameter: 70), +} + +extension PersistedGroupV2Member { + + var initialCircleViewModelColors: InitialCircleView.Model.Colors { + .init(background: self.circledInitialsConfiguration.backgroundColor(appTheme: AppTheme.shared), + foreground: self.circledInitialsConfiguration.foregroundColor(appTheme: AppTheme.shared)) + } + +} + + + +struct InitialCircleView_Previews: PreviewProvider { + + + private static let testModels = [ + InitialCircleView.Model(content: .init(text: "SV", + icon: .person), + colors: .init(background: nil, + foreground: nil), + circleDiameter: 60), + InitialCircleView.Model(content: .init(text: "A", + icon: .person), + colors: .init(background: .red, + foreground: .blue), + circleDiameter: 70), + InitialCircleView.Model(content: .init(text: "MF", + icon: .person), + colors: .init(background: nil, + foreground: nil), + circleDiameter: 120), + InitialCircleView.Model(content: .init(text: nil, + icon: .person), + colors: .init(background: .purple, + foreground: .green), + circleDiameter: 70), + InitialCircleView.Model(content: .init(text: nil, + icon: .person), + colors: .init(background: .purple, + foreground: .green), + circleDiameter: 120), ] static var previews: some View { Group { - ForEach(testData) { - InitialCircleView(circledTextView: $0.circledTextView, - systemImage: $0.systemImage, - circleBackgroundColor: $0.circleBackgroundColor, - circleTextColor: $0.circleTextColor, - circleDiameter: $0.circleDiameter) + ForEach(testModels) { model in + InitialCircleView(model: model) .padding() .background(Color(.systemBackground)) .environment(\.colorScheme, .dark) .previewLayout(.sizeThatFits) } - ForEach(testData) { - InitialCircleView(circledTextView: $0.circledTextView, - systemImage: $0.systemImage, - circleBackgroundColor: $0.circleBackgroundColor, - circleTextColor: $0.circleTextColor, - circleDiameter: $0.circleDiameter) + ForEach(testModels) { model in + InitialCircleView(model: model) .padding() .background(Color(.systemBackground)) .environment(\.colorScheme, .light) diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvAutoGrowingTextView/ObvAutoGrowingTextView.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvAutoGrowingTextView/ObvAutoGrowingTextView.swift index 0dd7c504..55029b69 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvAutoGrowingTextView/ObvAutoGrowingTextView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvAutoGrowingTextView/ObvAutoGrowingTextView.swift @@ -20,6 +20,7 @@ import UIKit import PDFKit import MobileCoreServices +import UniformTypeIdentifiers class ObvAutoGrowingTextView: UITextView, ViewForDragAndDropDelegate { @@ -129,7 +130,7 @@ final class ViewForDragAndDrop: UIView { } private func setup() { - self.pasteConfiguration = UIPasteConfiguration(acceptableTypeIdentifiers: [String(kUTTypeData)]) + self.pasteConfiguration = UIPasteConfiguration(acceptableTypeIdentifiers: [UTType.data.identifier]) } override func canPaste(_ itemProviders: [NSItemProvider]) -> Bool { diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvCardView.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvCardView.swift index 93968c90..af101ff0 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvCardView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvCardView.swift @@ -19,6 +19,7 @@ import ObvUI import SwiftUI +import ObvDesignSystem /// A View Builder allowing to create a card around the content. diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvChevron.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvChevron.swift index 479988c6..b7c26385 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvChevron.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvChevron.swift @@ -19,6 +19,7 @@ import ObvUI import SwiftUI +import ObvDesignSystem struct ObvChevron: View { @@ -38,13 +39,13 @@ struct ObvChevron: View { .imageScale(.large) .foregroundColor(.white) .colorMultiply(selected ? Color.clear : ObvChevron.normalColor) - .animation(.spring()) + .animation(.spring(), value: 0.3) .clipShape(Circle().scale(0.7)) Image(systemIcon: .chevronRightCircleFill) .imageScale(.large) .foregroundColor(.white) .colorMultiply(selected ? ObvChevron.selectedColor : Color.clear) - .animation(.spring()) + .animation(.spring(), value: 0.3) } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvChipLabel.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvChipLabel.swift index 792f90c1..671d3575 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvChipLabel.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvChipLabel.swift @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + final class ObvChipLabel: UIView { diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvSimpleListItemView.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvSimpleListItemView.swift index 7de7f435..a23737db 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvSimpleListItemView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvSimpleListItemView.swift @@ -19,7 +19,7 @@ import ObvUI import SwiftUI - +import ObvDesignSystem struct ObvSimpleListItemView: View { @@ -43,18 +43,9 @@ struct ObvSimpleListItemView: View { self.title = title self.buttonConfig = nil if let date = date { - if #available(iOS 14, *) { - self.value = Text(date, style: .date) - } else { - let df = DateFormatter() - df.locale = Locale.current - df.doesRelativeDateFormatting = true - df.timeStyle = .short - df.dateStyle = .short - self.value = Text(df.string(from: date)) - } + self.value = Text(date, style: .date) } else { - self.value = Text("-") + self.value = Text(verbatim: "-") } self.valueToCopyOnLongPress = nil } diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvTextField.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvTextField.swift index 0c0170bd..36951252 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvTextField.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ObvTextField.swift @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + final class ObvTextField: UITextField { diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/OlvidAlertViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/OlvidAlertViewController.swift index 52f38003..2de1ebd8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/OlvidAlertViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/OlvidAlertViewController.swift @@ -19,6 +19,7 @@ import ObvUI import UIKit +import ObvDesignSystem final class OlvidAlertViewController: UIViewController { @@ -102,7 +103,7 @@ final class OlvidAlertViewController: UIViewController { buttonsStack.spacing = 8.0 buttonsStack.addArrangedSubview(primaryButton) - if #available(iOS 15, *) { + do { var configuration = UIButton.Configuration.filled() configuration.buttonSize = .large configuration.cornerStyle = .large @@ -111,7 +112,7 @@ final class OlvidAlertViewController: UIViewController { primaryButton.addTarget(self, action: #selector(primaryButtonTapped), for: .touchUpInside) buttonsStack.addArrangedSubview(secondaryButton) - if #available(iOS 15, *) { + do { var configuration = UIButton.Configuration.gray() configuration.buttonSize = .large configuration.cornerStyle = .large diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/OlvidSnackBarView.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/OlvidSnackBarView.swift index c5bc8e7d..3367a4e8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/OlvidSnackBarView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/OlvidSnackBarView.swift @@ -20,6 +20,7 @@ import UIKit import ObvTypes import ObvUI +import ObvDesignSystem final class OlvidSnackBarView: UIView { @@ -41,19 +42,11 @@ final class OlvidSnackBarView: UIView { self.currentOwnedCryptoId = ownedCryptoId self.label.text = snackBarCategory.body self.button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside) - if #available(iOS 15, *) { - self.button.configuration = makeButtonConfiguration(title: snackBarCategory.buttonTitle) - } else { - self.button.setTitle(snackBarCategory.buttonTitle, for: .normal) - } + self.button.configuration = makeButtonConfiguration(title: snackBarCategory.buttonTitle) let config = UIImage.SymbolConfiguration(pointSize: 30, weight: .regular) let image = UIImage(systemIcon: snackBarCategory.icon, withConfiguration: config) - if #available(iOS 15, *) { - self.button.maximumContentSizeCategory = .extraLarge - imageView.image = image?.withTintColor(labelColor, renderingMode: .alwaysOriginal) - } else { - imageView.image = image - } + self.button.maximumContentSizeCategory = .extraLarge + imageView.image = image?.withTintColor(labelColor, renderingMode: .alwaysOriginal) } private let labelColor = AppTheme.shared.colorScheme.secondaryLabel diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/PasscodeUtils.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/PasscodeUtils.swift index 2bcddc33..deeecd01 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/PasscodeUtils.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/PasscodeUtils.swift @@ -19,6 +19,7 @@ import ObvUI import SwiftUI +import ObvDesignSystem // Allows to fix an iOS 14/13 bug with @available(iOS 15.0, *) @FocusState @@ -116,41 +117,26 @@ struct PasscodeField: View { @ViewBuilder private var field: some View { if showPasscode { - if #available(iOS 15.0, *) { - textField - .obvFocused(state: $textFocus) - } else { - textField - } + textField + .obvFocused(state: $textFocus) } else { - if #available(iOS 15.0, *) { - secureField - .obvFocused(state: $secureFocus) - } else { - secureField - } + secureField + .obvFocused(state: $secureFocus) } } var body: some View { HStack { - if #available(iOS 15.0, *) { - field - .keyboardType(passcodeKind.passcodeIsPassword ? .alphabet : .numberPad) - } else { - field - .keyboardType(.numberPad) - } + field + .keyboardType(passcodeKind.passcodeIsPassword ? .alphabet : .numberPad) if isLockedOut { Image(systemIcon: .lock(.none, .none)) .font(.system(size: 20)) .foregroundColor(.primary) } else { Button(action: { - if #available(iOS 15.0, *) { - withAnimation { - showPasscode.toggle() - } + withAnimation { + showPasscode.toggle() } }, label: { Image(systemIcon: .eyes) diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteEditor/PersonalNoteEditorHostingController.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteEditor/PersonalNoteEditorHostingController.swift new file mode 100644 index 00000000..56781c8d --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteEditor/PersonalNoteEditorHostingController.swift @@ -0,0 +1,42 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import UIKit +import SwiftUI + +@available(iOS 14.0, *) +final class PersonalNoteEditorHostingController: UIHostingController> { + + init(model: PersonalNoteEditorViewModel, actions: PersonalNoteEditorViewActionsDelegate) { + let view = PersonalNoteEditorView(model: model, actions: actions) + super.init(rootView: view) + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} + + + +struct PersonalNoteEditorViewModel: PersonalNoteEditorViewModelProtocol { + let initialText: String? +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteEditor/PersonalNoteEditorView.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteEditor/PersonalNoteEditorView.swift new file mode 100644 index 00000000..37fe393c --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteEditor/PersonalNoteEditorView.swift @@ -0,0 +1,128 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI + + +protocol PersonalNoteEditorViewModelProtocol { + var initialText: String? { get } +} + + +protocol PersonalNoteEditorViewActionsDelegate { + func userWantsToDismissPersonalNoteEditorView() async + func userWantsToUpdatePersonalNote(with newText: String?) async +} + +@available(iOS 14.0, *) +struct PersonalNoteEditorView: View { + + let model: Model + let actions: PersonalNoteEditorViewActionsDelegate + + @State private var text = "" + @State private var isOkButtonDisabled = true + @State private var isShowingPlaceHolderText = false + + private func cancel() { + Task { + await actions.userWantsToDismissPersonalNoteEditorView() + } + } + + private func setInitialTextValue() { + if let initialText = model.initialText, !initialText.isEmpty { + self.text = model.initialText ?? "" + } else { + self.isShowingPlaceHolderText = true + self.text = NSLocalizedString("TYPE_PERSONAL_NOTE_HERE", comment: "") + } + } + + private func ok() { + let newText = self.text + Task { + await actions.userWantsToUpdatePersonalNote(with: newText) + } + } + + private func textDidChange(_ newText: String) { + isOkButtonDisabled = text == (model.initialText ?? "") || isShowingPlaceHolderText + } + + private func textEditorWasTapped() { + if isShowingPlaceHolderText { + self.text = "" + self.isShowingPlaceHolderText = false + } + } + + var body: some View { + VStack { + TextEditor(text: $text) + .onChange(of: text, perform: textDidChange) + .foregroundColor(isShowingPlaceHolderText ? .secondary : .primary) + .onTapGesture(perform: textEditorWasTapped) + HStack { + OlvidButton( + style: .standardWithBlueText, + title: Text("Cancel"), + systemIcon: .xmarkCircle, + action: cancel) + OlvidButton( + style: .blue, + title: Text("Ok"), + systemIcon: .checkmarkCircle, + action: ok) + .disabled(isOkButtonDisabled) + } + } + .padding() + .onAppear(perform: setInitialTextValue) + } + +} + + + +@available(iOS 14.0, *) +struct PersonalNoteEditorView_Previews: PreviewProvider { + + private struct ModelForPreviews: PersonalNoteEditorViewModelProtocol { + let initialText: String? + } + + private struct ActionsForPreviews: PersonalNoteEditorViewActionsDelegate { + func userWantsToUpdatePersonalNote(with newText: String?) async {} + func userWantsToDismissPersonalNoteEditorView() async {} + } + + static var previews: some View { + Group { + PersonalNoteEditorView( + model: ModelForPreviews(initialText: "Some note writted before"), + actions: ActionsForPreviews()) + PersonalNoteEditorView( + model: ModelForPreviews(initialText: nil), + actions: ActionsForPreviews()) + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteViewer/PersonalNoteView.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteViewer/PersonalNoteView.swift new file mode 100644 index 00000000..422a59e2 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteViewer/PersonalNoteView.swift @@ -0,0 +1,71 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI + + +protocol PersonalNoteViewModelProtocol: ObservableObject { + var text: String? { get } +} + + +struct PersonalNoteView: View { + + @ObservedObject var model: Model + + var body: some View { + ObvCardView { + VStack(alignment: .leading) { + HStack { + Text("PERSONAL_NOTE") + .font(.headline) + .padding(.bottom, 4) + Spacer(minLength: 0) + } + Text(verbatim: model.text ?? "") + .font(.body) + .foregroundColor(.secondary) + } + } + } + +} + + +struct PersonalNoteView_Previews: PreviewProvider { + + final class ModelForPreviews: PersonalNoteViewModelProtocol { + + let text: String? + + init(text: String?) { + self.text = text + } + + } + + static var previews: some View { + Group { + PersonalNoteView( + model: ModelForPreviews(text: "The text of the personal note")) + } + } + +} diff --git a/Modules/UI/CircledInitialsView/CircledInitialsConfiguration/CircledInitialsIcon.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteViewer/ViewModelsForCoreDataEntities/PersistedGroupV2+PersonalNoteViewModelProtocol.swift similarity index 78% rename from Modules/UI/CircledInitialsView/CircledInitialsConfiguration/CircledInitialsIcon.swift rename to iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteViewer/ViewModelsForCoreDataEntities/PersistedGroupV2+PersonalNoteViewModelProtocol.swift index 7a1cfdd1..6d811cb1 100644 --- a/Modules/UI/CircledInitialsView/CircledInitialsConfiguration/CircledInitialsIcon.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteViewer/ViewModelsForCoreDataEntities/PersistedGroupV2+PersonalNoteViewModelProtocol.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -16,15 +16,15 @@ * You should have received a copy of the GNU Affero General Public License * along with Olvid. If not, see . */ - import Foundation +import ObvUICoreData -public enum CircledInitialsIcon: Hashable { - case lockFill - case person - case person3Fill - case personFillXmark - case plus +extension PersistedGroupV2: PersonalNoteViewModelProtocol { + + var text: String? { + self.personalNote + } + } diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteViewer/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+PersonalNoteViewModelProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteViewer/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+PersonalNoteViewModelProtocol.swift new file mode 100644 index 00000000..2ed46509 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/PersonalNoteViewer/ViewModelsForCoreDataEntities/PersistedObvContactIdentity+PersonalNoteViewModelProtocol.swift @@ -0,0 +1,30 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvUICoreData + + +extension PersistedObvContactIdentity: PersonalNoteViewModelProtocol { + + var text: String? { + self.note + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ReorderableForEach.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ReorderableForEach.swift index e3344826..63dc702a 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/ReorderableForEach.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/ReorderableForEach.swift @@ -19,6 +19,7 @@ import SwiftUI import UniformTypeIdentifiers +import OlvidUtils @available(iOS 15, *) protocol ReorderableItem: Identifiable, Equatable { diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/StandardViewControllerSubclasses/ObvDocumentPickerViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/StandardViewControllerSubclasses/ObvDocumentPickerViewController.swift index 8ad3bd63..f8422b1d 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/StandardViewControllerSubclasses/ObvDocumentPickerViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/StandardViewControllerSubclasses/ObvDocumentPickerViewController.swift @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + final class ObvDocumentPickerViewController: UIDocumentPickerViewController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/StandardViewControllerSubclasses/PrivacyViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/StandardViewControllerSubclasses/PrivacyViewController.swift index ede7d6d4..1fdafe95 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/StandardViewControllerSubclasses/PrivacyViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/StandardViewControllerSubclasses/PrivacyViewController.swift @@ -19,6 +19,8 @@ import ObvUI import UIKit +import ObvDesignSystem + final class PrivacyViewController: UIViewController { diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/StandardViewControllerSubclasses/ShowOwnedIdentityButtonUIViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/StandardViewControllerSubclasses/ShowOwnedIdentityButtonUIViewController.swift index dd2bf059..adb92aa7 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/StandardViewControllerSubclasses/ShowOwnedIdentityButtonUIViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/StandardViewControllerSubclasses/ShowOwnedIdentityButtonUIViewController.swift @@ -25,7 +25,7 @@ import Combine import OlvidUtils import ObvUI import ObvUICoreData -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials class ShowOwnedIdentityButtonUIViewController: UIViewController, OwnedIdentityChooserViewControllerDelegate { @@ -182,12 +182,10 @@ class ShowOwnedIdentityButtonUIViewController: UIViewController, OwnedIdentityCh let ownedIdentityChooserVC = OwnedIdentityChooserViewController(currentOwnedCryptoId: currentOwnedCryptoId, ownedIdentities: ownedIdentities, delegate: self) ownedIdentityChooserVC.modalPresentationStyle = .popover if let popover = ownedIdentityChooserVC.popoverPresentationController { - if #available(iOS 15, *) { - let sheet = popover.adaptiveSheetPresentationController - sheet.detents = [.medium(), .large()] - sheet.prefersGrabberVisible = true - sheet.preferredCornerRadius = 16.0 - } + let sheet = popover.adaptiveSheetPresentationController + sheet.detents = [.medium(), .large()] + sheet.prefersGrabberVisible = true + sheet.preferredCornerRadius = 16.0 assert(profilePictureBarButtonItem != nil) if #available(iOS 16, *) { popover.sourceItem = profilePictureBarButtonItem @@ -244,7 +242,7 @@ class ShowOwnedIdentityButtonUIViewController: UIViewController, OwnedIdentityCh preferredStyle: .alert) alert.addTextField { textField in textField.passwordRules = UITextInputPasswordRules(descriptor: "minlength: \(ObvMessengerConstants.minimumLengthOfPasswordForHiddenProfiles);") - textField.text = NSLocalizedString("", comment: "") + textField.text = "" textField.isSecureTextEntry = true textField.addTarget(self, action: #selector(self.textFieldForUnlockingHiddenProfileDidChange(textField:)), for: .editingChanged) } diff --git a/iOSClient/ObvMessenger/ObvMessenger/UIElements/SubscriptionStatusView.swift b/iOSClient/ObvMessenger/ObvMessenger/UIElements/SubscriptionStatusView.swift index 25e481c0..46c8db8f 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/UIElements/SubscriptionStatusView.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/UIElements/SubscriptionStatusView.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,6 +20,8 @@ import SwiftUI import ObvTypes import ObvUI +import UI_SystemIcon +import ObvDesignSystem struct SubscriptionStatusView: View { @@ -28,9 +30,10 @@ struct SubscriptionStatusView: View { let apiKeyStatus: APIKeyStatus let apiKeyExpirationDate: Date? let showSubscriptionPlansButton: Bool - let subscriptionPlanAction: () -> Void + let userWantsToSeeSubscriptionPlans: () -> Void let showRefreshStatusButton: Bool let refreshStatusAction: () -> Void + let apiPermissions: APIPermissions struct Feature: Identifiable { let id = UUID() @@ -38,38 +41,24 @@ struct SubscriptionStatusView: View { let imageColor: Color let description: String } - - private var isPremiumFeaturesAvailable: Bool { - switch apiKeyStatus { - case .expired, .unknown, .licensesExhausted, .awaitingPaymentOnHold, .freeTrialExpired: - return false - case .free, .valid, .freeTrial, .awaitingPaymentGracePeriod, .anotherOwnedIdentityHasValidAPIKey: - return true - } - } private func refreshStatusNow() { refreshStatusAction() } - private static let freeFeatures = [ - SubscriptionStatusView.Feature(imageSystemName: "bubble.left.and.bubble.right.fill", - imageColor: Color(.displayP3, red: 1.0, green: 0.35, blue: 0.39, opacity: 1.0), - description: NSLocalizedString("Sending & receiving messages and attachments", comment: "")), - SubscriptionStatusView.Feature(imageSystemName: "person.3.fill", - imageColor: Color(.displayP3, red: 7.0/255, green: 132.0/255, blue: 254.0/255, opacity: 1.0), - description: NSLocalizedString("Create groups", comment: "")), - SubscriptionStatusView.Feature(imageSystemName: "phone.fill.arrow.down.left", - imageColor: Color(.displayP3, red: 253.0/255, green: 56.0/255, blue: 95.0/255, opacity: 1.0), - description: NSLocalizedString("Receive secure calls", comment: "")), + private static let freeFeature: [FeatureView.Model] = [ + .init(feature: .sendAndReceiveMessagesAndAttachments, showAsAvailable: true), + .init(feature: .createGroupChats, showAsAvailable: true), + .init(feature: .receiveSecureCalls, showAsAvailable: true), ] - static let premiumFeatures = [ - SubscriptionStatusView.Feature(imageSystemName: "phone.fill.arrow.up.right", - imageColor: Color(.displayP3, red: 253.0/255, green: 56.0/255, blue: 95.0/255, opacity: 1.0), - description: NSLocalizedString("Make secure calls", comment: "")), - ] + + private var premiumFeatures: [FeatureView.Model] {[ + .init(feature: .startSecureCalls, showAsAvailable: apiPermissions.contains(.canCall)), + .init(feature: .multidevice, showAsAvailable: apiPermissions.contains(.multidevice)) + ]} + var body: some View { VStack { if let title = self.title { @@ -90,7 +79,7 @@ struct SubscriptionStatusView: View { OlvidButton(style: .blue, title: Text("See subscription plans"), systemIcon: .flameFill, - action: subscriptionPlanAction) + action: userWantsToSeeSubscriptionPlans) .padding(.bottom, 16) } HStack { Spacer() } // Force full width @@ -98,16 +87,14 @@ struct SubscriptionStatusView: View { SeparatorView() .padding(.bottom, 16) FeatureListView(title: NSLocalizedString("Free features", comment: ""), - features: SubscriptionStatusView.freeFeatures, - available: true) + features: SubscriptionStatusView.freeFeature) SeparatorView() .padding(.bottom, 16) FeatureListView(title: NSLocalizedString("Premium features", comment: ""), - features: SubscriptionStatusView.premiumFeatures, - available: isPremiumFeaturesAvailable) + features: premiumFeatures) } if showRefreshStatusButton { - OlvidButton(style: .standard, + OlvidButton(style: .standardWithBlueText, title: Text("Refresh status"), systemIcon: .arrowClockwise, action: refreshStatusNow) @@ -125,36 +112,19 @@ struct SubscriptionStatusView: View { struct FeatureListView: View { let title: String - let features: [SubscriptionStatusView.Feature] - let available: Bool + let features: [FeatureView.Model] - private var colorScheme: AppThemeSemanticColorScheme { AppTheme.shared.colorScheme } - private let colorWhenUnavailable = Color(AppTheme.shared.colorScheme.secondaryLabel) var body: some View { VStack(alignment: .leading, spacing: 0) { HStack { Text(title) .font(.headline) - Image(systemName: available ? "checkmark.seal.fill" : "xmark.seal.fill") - .foregroundColor(available ? .green : colorWhenUnavailable) - .font(.headline) } .padding(.bottom, 16) ForEach(features) { feature in - HStack(alignment: .firstTextBaseline) { - Image(systemName: feature.imageSystemName) - .font(.system(size: 16)) - .foregroundColor(available ? feature.imageColor : colorWhenUnavailable) - .frame(minWidth: 30) - Text(feature.description) - .foregroundColor(available ? Color(colorScheme.label) : colorWhenUnavailable) - .font(.body) - .lineLimit(nil) - .fixedSize(horizontal: false, vertical: true) - Spacer() - } - .padding(.bottom, 16) + FeatureView(model: feature) + .padding(.bottom, 16) } } } @@ -162,6 +132,94 @@ struct FeatureListView: View { } +// MARK: - FeatureView + +struct FeatureView: View { + + let model: Model + + + struct Model: Identifiable { + let feature: FeatureView.Feature + let showAsAvailable: Bool + var id: Int { self.feature.rawValue } + } + + + enum Feature: Int, Identifiable { + case startSecureCalls = 0 + case multidevice + case sendAndReceiveMessagesAndAttachments + case createGroupChats + case receiveSecureCalls + var id: Int { self.rawValue } + } + + + private var systemIcon: SystemIcon { + switch model.feature { + case .startSecureCalls: return .phoneArrowUpRightFill + case .multidevice: return .macbookAndIphone + case .sendAndReceiveMessagesAndAttachments: return .bubbleLeftAndBubbleRightFill + case .createGroupChats: return .person3Fill + case .receiveSecureCalls: return .phoneArrowDownLeftFill + } + } + + + private var systemIconColor: Color { + switch model.feature { + case .startSecureCalls: return Color(.displayP3, red: 253.0/255, green: 56.0/255, blue: 95.0/255, opacity: 1.0) + case .multidevice: return Color(UIColor.systemBlue) + case .sendAndReceiveMessagesAndAttachments: return Color(.displayP3, red: 1.0, green: 0.35, blue: 0.39, opacity: 1.0) + case .createGroupChats: return Color(.displayP3, red: 7.0/255, green: 132.0/255, blue: 254.0/255, opacity: 1.0) + case .receiveSecureCalls: return Color(.displayP3, red: 253.0/255, green: 56.0/255, blue: 95.0/255, opacity: 1.0) + } + } + + + private var description: LocalizedStringKey { + switch model.feature { + case .startSecureCalls: return "MAKE_SECURE_CALLS" + case .multidevice: return "MULTIDEVICE" + case .sendAndReceiveMessagesAndAttachments: return "Sending & receiving messages and attachments" + case .createGroupChats: return "Create groups" + case .receiveSecureCalls: return "RECEIVE_SECURE_CALLS" + } + } + + + private var systemIconForAvailability: SystemIcon { + model.showAsAvailable ? .checkmarkSealFill : .xmarkSealFill + } + + + private var systemIconForAvailabilityColor: Color { + model.showAsAvailable ? Color(UIColor.systemGreen) : Color(AppTheme.shared.colorScheme.secondaryLabel) + } + + + var body: some View { + HStack(alignment: .firstTextBaseline) { + Image(systemIcon: systemIcon) + .font(.system(size: 16)) + .foregroundColor(systemIconColor) + .frame(minWidth: 30) + Text(description) + .foregroundColor(Color(AppTheme.shared.colorScheme.label)) + .font(.body) + .lineLimit(nil) + .fixedSize(horizontal: false, vertical: true) + Spacer() + Image(systemIcon: systemIconForAvailability) + .font(.system(size: 16)) + .foregroundColor(systemIconForAvailabilityColor) + } + } + +} + + struct SubscriptionStatusSummaryView: View { @@ -337,87 +395,115 @@ struct FeatureListView_Previews: PreviewProvider { description: "Make secure calls"), ] + private static let apiPermissionsCalls = { + var permissions = APIPermissions() + permissions.insert(.canCall) + return permissions + }() + + private static let apiPermissionsMultiDevice = { + var permissions = APIPermissions() + permissions.insert(.multidevice) + return permissions + }() + + private static let apiPermissionsCallsAndMultiDevice = { + var permissions = APIPermissions() + permissions.insert(.canCall) + permissions.insert(.multidevice) + return permissions + }() + static var previews: some View { Group { SubscriptionStatusView(title: Text("SUBSCRIPTION_STATUS"), apiKeyStatus: .anotherOwnedIdentityHasValidAPIKey, apiKeyExpirationDate: Date(), showSubscriptionPlansButton: false, - subscriptionPlanAction: {}, - showRefreshStatusButton: false, - refreshStatusAction: {}) + userWantsToSeeSubscriptionPlans: {}, + showRefreshStatusButton: true, + refreshStatusAction: {}, + apiPermissions: Self.apiPermissionsCalls) .padding() .previewLayout(.sizeThatFits) SubscriptionStatusView(title: Text("SUBSCRIPTION_STATUS"), apiKeyStatus: .unknown, apiKeyExpirationDate: nil, showSubscriptionPlansButton: true, - subscriptionPlanAction: {}, + userWantsToSeeSubscriptionPlans: {}, showRefreshStatusButton: true, - refreshStatusAction: {}) + refreshStatusAction: {}, + apiPermissions: apiPermissionsCallsAndMultiDevice) .padding() .previewLayout(.sizeThatFits) SubscriptionStatusView(title: Text("SUBSCRIPTION_STATUS"), apiKeyStatus: .valid, apiKeyExpirationDate: Date(), showSubscriptionPlansButton: false, - subscriptionPlanAction: {}, + userWantsToSeeSubscriptionPlans: {}, showRefreshStatusButton: true, - refreshStatusAction: {}) + refreshStatusAction: {}, + apiPermissions: apiPermissionsMultiDevice) .padding() .previewLayout(.sizeThatFits) SubscriptionStatusView(title: Text("SUBSCRIPTION_STATUS"), apiKeyStatus: .licensesExhausted, apiKeyExpirationDate: nil, showSubscriptionPlansButton: false, - subscriptionPlanAction: {}, + userWantsToSeeSubscriptionPlans: {}, showRefreshStatusButton: false, - refreshStatusAction: {}) + refreshStatusAction: {}, + apiPermissions: apiPermissionsMultiDevice) .padding() .previewLayout(.sizeThatFits) SubscriptionStatusView(title: Text("SUBSCRIPTION_STATUS"), apiKeyStatus: .expired, apiKeyExpirationDate: Date(), showSubscriptionPlansButton: false, - subscriptionPlanAction: {}, + userWantsToSeeSubscriptionPlans: {}, showRefreshStatusButton: true, - refreshStatusAction: {}) + refreshStatusAction: {}, + apiPermissions: apiPermissionsMultiDevice) .padding() .previewLayout(.sizeThatFits) SubscriptionStatusView(title: Text("SUBSCRIPTION_STATUS"), apiKeyStatus: .free, apiKeyExpirationDate: Date(), showSubscriptionPlansButton: false, - subscriptionPlanAction: {}, + userWantsToSeeSubscriptionPlans: {}, showRefreshStatusButton: false, - refreshStatusAction: {}) + refreshStatusAction: {}, + apiPermissions: apiPermissionsMultiDevice) .padding() .previewLayout(.sizeThatFits) SubscriptionStatusView(title: Text("SUBSCRIPTION_STATUS"), apiKeyStatus: .awaitingPaymentGracePeriod, apiKeyExpirationDate: Date(), showSubscriptionPlansButton: false, - subscriptionPlanAction: {}, + userWantsToSeeSubscriptionPlans: {}, showRefreshStatusButton: false, - refreshStatusAction: {}) + refreshStatusAction: {}, + apiPermissions: apiPermissionsMultiDevice) .padding() .previewLayout(.sizeThatFits) SubscriptionStatusView(title: Text("SUBSCRIPTION_STATUS"), apiKeyStatus: .awaitingPaymentOnHold, apiKeyExpirationDate: Date(), showSubscriptionPlansButton: false, - subscriptionPlanAction: {}, + userWantsToSeeSubscriptionPlans: {}, showRefreshStatusButton: false, - refreshStatusAction: {}) + refreshStatusAction: {}, + apiPermissions: apiPermissionsMultiDevice) .padding() .previewLayout(.sizeThatFits) SubscriptionStatusView(title: Text("SUBSCRIPTION_STATUS"), apiKeyStatus: .freeTrialExpired, apiKeyExpirationDate: Date(), showSubscriptionPlansButton: false, - subscriptionPlanAction: {}, + userWantsToSeeSubscriptionPlans: {}, showRefreshStatusButton: false, - refreshStatusAction: {}) + refreshStatusAction: {}, + apiPermissions: apiPermissionsMultiDevice) .padding() .previewLayout(.sizeThatFits) .environment(\.locale, .init(identifier: "fr")) diff --git a/iOSClient/ObvMessenger/ObvMessenger/Utils/CloudKitUtils.swift b/iOSClient/ObvMessenger/ObvMessenger/Utils/CloudKitUtils.swift index e00315d6..6c4e1b6e 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Utils/CloudKitUtils.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Utils/CloudKitUtils.swift @@ -87,17 +87,24 @@ final class CloudKitBackupRecordIterator: AsyncIteratorProtocol { return try await withCheckedThrowingContinuation { cont in @Atomic var records: [CKRecord] = [] - op.recordFetchedBlock = { record in - records += [record] + op.recordMatchedBlock = { (_, result) in + switch result { + case .success(let record): + records += [record] + case .failure(let error): + assertionFailure(error.localizedDescription) + } } - op.queryCompletionBlock = { cursor, error in - if let error = error { + op.queryResultBlock = { result in + switch result { + case .failure(let error): cont.resume(throwing: error) return + case .success(let cursor): + self.cursor = cursor + self.hasNext = self.cursor != nil + cont.resume(returning: records) } - self.cursor = cursor - self.hasNext = self.cursor != nil - cont.resume(returning: records) } self.database.add(op) } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Utils/LPMetadataProviderUtils.swift b/iOSClient/ObvMessenger/ObvMessenger/Utils/LPMetadataProviderUtils.swift index cbcb9721..44fe2355 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Utils/LPMetadataProviderUtils.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Utils/LPMetadataProviderUtils.swift @@ -21,6 +21,7 @@ import LinkPresentation import CryptoKit import os.log import ObvUICoreData +import ObvSettings extension LPMetadataProvider { diff --git a/iOSClient/ObvMessenger/ObvMessenger/Utils/Loading Item Providers/LoadItemProviderOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/Utils/Loading Item Providers/LoadItemProviderOperation.swift index 2c42ae45..ce2d94cf 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Utils/Loading Item Providers/LoadItemProviderOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Utils/Loading Item Providers/LoadItemProviderOperation.swift @@ -19,12 +19,14 @@ import Foundation import MobileCoreServices +import UniformTypeIdentifiers import os.log import UIKit import Contacts import OlvidUtils import ObvUI import ObvUICoreData +import ObvSettings /// This operation takes an `itemProvider` and loads it. @@ -35,12 +37,12 @@ import ObvUICoreData /// - It keeps track of the UTI and of the file name so as to return an appropriate `loadedFileRepresentation`. final class LoadItemProviderOperation: OperationWithSpecificReasonForCancel, OperationProvidingLoadedItemProvider { - private let preferredUTIs = [kUTTypeFileURL, kUTTypeJPEG, kUTTypePNG, kUTTypeMPEG4, kUTTypeMP3, kUTTypeQuickTimeMovie].map({ $0 as String }) - private let ignoredUTIs = [UTI.Bitmoji.avatarID, UTI.Bitmoji.comicID, UTI.Bitmoji.packID, UTI.Apple.groupActivitiesActivity] + private let preferredTypes: [UTType] = [.fileURL, .jpeg, .png, .mpeg4Movie, .mp3, .quickTimeMovie] + private let ignoredTypes: Set = Set([.groupActivitiesActivity, .Bitmoji.avatarID, .Bitmoji.comicID, .Bitmoji.packID]) private let itemProviderOrItemURL: ItemProviderOrItemURL - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "LoadItemProviderOperation") + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "LoadItemProviderOperation") // Called iff a progress is available for tracking the loading progress private let progressAvailable: (Progress) -> Void @@ -89,54 +91,66 @@ final class LoadItemProviderOperation: OperationWithSpecificReasonForCancel UTType { + if (url as NSURL).pathExtension == UTType.olvidBackup.preferredFilenameExtension { + return .olvidBackup + } else if let type = try? url.resourceValues(forKeys: [.contentTypeKey]).contentType { + return type + } else { + return .data + } + } + + private func process(_ itemProvider: NSItemProvider) { // Find the most appropriate UTI to load - let availableTypeIdentifiers = itemProvider.registeredTypeIdentifiers(fileOptions: NSItemProviderFileOptions(rawValue: 0)) - os_log("Available type identifiers of the attachment: %{public}@", log: log, type: .info, availableTypeIdentifiers.debugDescription) - guard !availableTypeIdentifiers.isEmpty else { assertionFailure(); return cancel(withReason: .itemHasNoRegisteredTypeIdentifier) } + let availableContentTypes = itemProvider.registeredTypeIdentifiers(fileOptions: NSItemProviderFileOptions(rawValue: 0)) + .compactMap({ UTType($0) }) + os_log("Available type identifiers of the attachment: %{public}@", log: Self.log, type: .info, availableContentTypes.debugDescription) + guard !availableContentTypes.isEmpty else { assertionFailure(); return cancel(withReason: .itemHasNoRegisteredTypeIdentifier) } - let filteredTypeIdentifiers = availableTypeIdentifiers.filter({ !ignoredUTIs.contains($0) }) - guard !filteredTypeIdentifiers.isEmpty else { - os_log("No acceptable UTI was found, we do not load any item provider", log: log, type: .info) + let filteredContentTypes = availableContentTypes.filter({ !ignoredTypes.contains($0) }) + guard !filteredContentTypes.isEmpty else { + os_log("No acceptable content type was found, we do not load any item provider", log: Self.log, type: .info) _isFinished = true return } - let availablePreferredUTIs = preferredUTIs.filter({ filteredTypeIdentifiers.contains($0) }) - let utiToLoad: String - if !availablePreferredUTIs.isEmpty { - // This is the easy case, where the file provider does provide an UTI we "prefer" - utiToLoad = preferredUTIs.first(where: { availablePreferredUTIs.contains($0) })! + let availablePreferredContentTypes = preferredTypes.filter({ filteredContentTypes.contains($0) }) + let contentTypeToLoad: UTType + if !availablePreferredContentTypes.isEmpty { + // This is the easy case, where the file provider does provide a content type we "prefer" + contentTypeToLoad = preferredTypes.first(where: { availablePreferredContentTypes.contains($0) })! } else { // There is no "preferred" UTI available. We simply take the first UTI available - assert(filteredTypeIdentifiers.count == 1, "We should have a special rule and include one of the UTIs in the list of preferred UTIs") - utiToLoad = filteredTypeIdentifiers.first! + assert(filteredContentTypes.count == 1, "We should have a special rule and include one of the UTIs in the list of preferred UTIs") + contentTypeToLoad = filteredContentTypes.first! } - assert(itemProvider.hasItemConformingToTypeIdentifier(utiToLoad)) + assert(itemProvider.hasItemConformingToTypeIdentifier(contentTypeToLoad.identifier)) // We have found an appropriate UTI for the item provider // We can load it - os_log("Type identifier to load is: %{public}@", log: log, type: .info, utiToLoad) + os_log("Content type to load is: %{public}@", log: Self.log, type: .info, contentTypeToLoad.debugDescription) var progress: Progress? - if utiToLoad.utiConformsTo(kUTTypeVCard) { + if contentTypeToLoad.conforms(to: .vCard) { - os_log("Type identifier to load conforms to kUTTypeVCard", log: log, type: .info) + os_log("Type identifier to load conforms to kUTTypeVCard", log: Self.log, type: .info) - progress = itemProvider.loadDataRepresentation(forTypeIdentifier: String(kUTTypeVCard), completionHandler: { [weak self] (data, error) in + progress = itemProvider.obvLoadDataRepresentation(for: .vCard, completionHandler: { [weak self] (data, error) in guard error == nil else { if let progress = self?.operationProgress, progress.isCancelled { // The user cancelled the file loading, there is nothing left to do @@ -166,16 +180,16 @@ final class LoadItemProviderOperation: OperationWithSpecificReasonForCancel Bool { - UTTypeConformsTo(self as CFString, otherUTI) - } -} +//fileprivate extension String { +// func utiConformsTo(_ otherUTI: CFString) -> Bool { +// UTTypeConformsTo(self as CFString, otherUTI) +// } +//} enum LoadItemProviderOperationReasonForCancel: LocalizedErrorWithLogType { - case noneOfTheItemTypeIdentifiersCouldBeLoaded(itemTypeIdentifiers: [String]) + case noneOfTheItemTypeIdentifiersCouldBeLoaded(contentTypes: [UTType]) case loadFileRepresentationFailed(error: Error) case pickerURLIsNil case itemHasNoRegisteredTypeIdentifier @@ -379,8 +396,8 @@ enum LoadItemProviderOperationReasonForCancel: LocalizedErrorWithLogType { var errorDescription: String? { switch self { - case .noneOfTheItemTypeIdentifiersCouldBeLoaded(itemTypeIdentifiers: let itemTypeIdentifiers): - return "None of the item type identifiers could be loaded: \(itemTypeIdentifiers.debugDescription)" + case .noneOfTheItemTypeIdentifiersCouldBeLoaded(contentTypes: let contentTypes): + return "None of the item type identifiers could be loaded: \(contentTypes.debugDescription)" case .loadFileRepresentationFailed(error: let error): return "Failed to load representation: \(error.localizedDescription)" case .pickerURLIsNil: @@ -413,3 +430,38 @@ fileprivate struct UTI { } } + + +fileprivate extension UTType { + + static var groupActivitiesActivity: UTType? { + .init("com.apple.group-activities.activity") + } + + struct Bitmoji { + static var avatarID: UTType? { + .init("com.bitmoji.metadata.avatarID") + } + static var packID: UTType? { + .init("com.bitmoji.metadata.packID") + } + static var comicID: UTType? { + .init("com.bitmoji.metadata.comicID") + } + } + +} + + +fileprivate extension NSItemProvider { + + /// Trivial wrapper around the ``NSItemProvider.loadDataRepresentation(for:completionHandler:)`` method since it is only available under iOS 16 + func obvLoadDataRepresentation(for contentType: UTType, completionHandler: @escaping @Sendable (Data?, (Error)?) -> Void) -> Progress { + if #available(iOS 16, *) { + return loadDataRepresentation(for: contentType, completionHandler: completionHandler) + } else { + return loadDataRepresentation(forTypeIdentifier: contentType.identifier, completionHandler: completionHandler) + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Utils/NSItemProvider+Utils.swift b/iOSClient/ObvMessenger/ObvMessenger/Utils/NSItemProvider+Utils.swift new file mode 100644 index 00000000..2b9da7e4 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/Utils/NSItemProvider+Utils.swift @@ -0,0 +1,64 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import UniformTypeIdentifiers + + +extension NSItemProvider { + + /// Simple wrapper as ``registeredContentTypes`` only exists in iOS 16 + var obvRegisteredContentTypes: [UTType] { + if #available(iOS 16, *) { + return self.registeredContentTypes + } else { + let types = self.registeredTypeIdentifiers.compactMap({ UTType($0) }) + assert(types.count == self.registeredTypeIdentifiers.count) + return types + } + } + + + func loadText() async throws -> String { + + return try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in + + loadItem(forTypeIdentifier: UTType.text.identifier) { item, error in + if let error { + assertionFailure() + continuation.resume(throwing: error) + return + } + guard let text = item as? String else { + assertionFailure() + continuation.resume(throwing: ObvError.cannotCastItemAsString) + return + } + continuation.resume(returning: text) + } + + } + + } + + enum ObvError: Error { + case cannotCastItemAsString + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Utils/ObvDeepLink.swift b/iOSClient/ObvMessenger/ObvMessenger/Utils/ObvDeepLink.swift index 7a833c46..b9fc9ae8 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Utils/ObvDeepLink.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Utils/ObvDeepLink.swift @@ -33,6 +33,7 @@ enum ObvDeepLinkHost: CaseIterable { case requestRecordPermission case settings case backupSettings + case voipSettings case privacySettings case message case allGroups @@ -67,6 +68,7 @@ enum ObvDeepLink: Equatable, LosslessStringConvertible { case settings case backupSettings case privacySettings + case voipSettings case message(ownedCryptoId: ObvCryptoId, objectPermanentID: ObvManagedObjectPermanentID) case allGroups(ownedCryptoId: ObvCryptoId) @@ -98,6 +100,8 @@ enum ObvDeepLink: Equatable, LosslessStringConvertible { return host.name case .backupSettings: return host.name + case .voipSettings: + return host.name case .privacySettings: return host.name case .message(let ownedCryptoId, let objectPermanentID): @@ -159,6 +163,8 @@ enum ObvDeepLink: Equatable, LosslessStringConvertible { self = .settings case .backupSettings: self = .backupSettings + case .voipSettings: + self = .voipSettings case .privacySettings: self = .privacySettings case .message: @@ -187,6 +193,7 @@ enum ObvDeepLink: Equatable, LosslessStringConvertible { case .requestRecordPermission: return .requestRecordPermission case .settings: return .settings case .backupSettings: return .backupSettings + case .voipSettings: return .voipSettings case .privacySettings: return .privacySettings case .message: return .message case .allGroups: return .allGroups @@ -220,6 +227,8 @@ enum ObvDeepLink: Equatable, LosslessStringConvertible { return nil case .backupSettings: return nil + case .voipSettings: + return nil case .privacySettings: return nil case .message(let ownedCryptoId, _): diff --git a/iOSClient/ObvMessenger/ObvMessenger/Utils/SoundsPlayer.swift b/iOSClient/ObvMessenger/ObvMessenger/Utils/SoundsPlayer.swift index 536c8924..a0b08c5b 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Utils/SoundsPlayer.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Utils/SoundsPlayer.swift @@ -23,6 +23,7 @@ import AVFoundation import os.log import UIKit import ObvUICoreData +import ObvSettings extension Sound { @@ -46,9 +47,28 @@ final class SoundsPlayer: NSObject, AVAudioPlayerDelegate { guard let filename = sound.filename else { assertionFailure(); return } let soundURL: URL if let note = note { - soundURL = Bundle.main.bundleURL.appendingPathComponent(filename + note.index).appendingPathExtension("caf") + if ObvMessengerConstants.targetEnvironmentIsMacCatalyst { + soundURL = Bundle.main.bundleURL + .appendingPathComponent("Contents") + .appendingPathComponent("Resources") + .appendingPathComponent(filename + note.index).appendingPathExtension("caf") + } else { + soundURL = Bundle.main.bundleURL.appendingPathComponent(filename + note.index).appendingPathExtension("caf") + } } else { - soundURL = Bundle.main.bundleURL.appendingPathComponent(filename) + if ObvMessengerConstants.targetEnvironmentIsMacCatalyst { + soundURL = Bundle.main.bundleURL + .appendingPathComponent("Contents") + .appendingPathComponent("Resources") + .appendingPathComponent(filename) + } else { + soundURL = Bundle.main.bundleURL.appendingPathComponent(filename) + } + } + guard FileManager.default.fileExists(atPath: soundURL.path) else { + os_log("🎵 Could not find audio file at path: %{public}@", log: log, type: .fault, filename, soundURL.path) + assertionFailure() + throw ObvError.fileDoesNotExist } let player = try AVAudioPlayer(contentsOf: soundURL) player.numberOfLoops = sound.loops ? Int.max : 0 @@ -75,11 +95,12 @@ final class SoundsPlayer: NSObject, AVAudioPlayerDelegate { os_log("🎵 Error in AVAudioSession %{public}@", log: self.log, type: .info, error.localizedDescription) } } + guard let currentAudioPlayer else { return } os_log("🎵 Play %{public}@", log: self.log, type: .info, filename) - self.currentAudioPlayer?.currentTime = 0 - self.currentAudioPlayer?.play() - self.currentAudioPlayer?.delegate = self + currentAudioPlayer.currentTime = 0 + currentAudioPlayer.delegate = self self.soundCurrentlyPlaying = sound + currentAudioPlayer.play() if let feedback = sound.feedback { self.feedbackGenerator.notificationOccurred(feedback) } @@ -124,4 +145,7 @@ final class SoundsPlayer: NSObject, AVAudioPlayerDelegate { } } + enum ObvError: Error { + case fileDoesNotExist + } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Utils/ThumbnailWorker.swift b/iOSClient/ObvMessenger/ObvMessenger/Utils/ThumbnailWorker.swift index 9d824c0a..c43606c0 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Utils/ThumbnailWorker.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Utils/ThumbnailWorker.swift @@ -23,6 +23,7 @@ import CoreGraphics import AVKit import PDFKit import ObvUICoreData +import ObvSettings final class ThumbnailWorker: NSObject { @@ -46,9 +47,9 @@ final class ThumbnailWorker: NSObject { var fileExtension: String { switch self { case .jpeg: - return ObvUTIUtils.jpegExtension() + return UTType.jpeg.preferredFilenameExtension ?? "jpeg" case .png: - return ObvUTIUtils.pngExtension() + return UTType.png.preferredFilenameExtension ?? "png" } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Utils/TimeUtils.swift b/iOSClient/ObvMessenger/ObvMessenger/Utils/TimeUtils.swift index 9bd46a7f..39f240c9 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Utils/TimeUtils.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Utils/TimeUtils.swift @@ -105,23 +105,14 @@ extension Date { formatter.dateTimeStyle = .named return formatter.localizedString(for: self, relativeTo: Date()) } else { - if #available(iOS 15.0, *) { - var dateStyle: Date.FormatStyle = .dateTime - .weekday(.wide) - .month() - .day() - if calendar.component(.year, from: self) != calendar.component(.year, from: Date()) { - dateStyle = dateStyle.year() - } - return self.formatted(dateStyle) - } else { - let df = DateFormatter() - df.doesRelativeDateFormatting = true - df.dateStyle = .short - df.timeStyle = .medium - df.locale = Locale.current - return df.string(from: self) + var dateStyle: Date.FormatStyle = .dateTime + .weekday(.wide) + .month() + .day() + if calendar.component(.year, from: self) != calendar.component(.year, from: Date()) { + dateStyle = dateStyle.year() } + return self.formatted(dateStyle) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Utils/UIView+AppTheme.swift b/iOSClient/ObvMessenger/ObvMessenger/Utils/UIView+AppTheme.swift index 56ad5f21..24f32356 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Utils/UIView+AppTheme.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Utils/UIView+AppTheme.swift @@ -19,11 +19,12 @@ import ObvUI import UIKit +import ObvDesignSystem extension UIView { - var appTheme: ObvUI.AppTheme { - return ObvUI.AppTheme.shared + var appTheme: AppTheme { + return AppTheme.shared } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Utils/UIViewController+ContentController.swift b/iOSClient/ObvMessenger/ObvMessenger/Utils/UIViewController+ContentController.swift index 478bd367..b252abae 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Utils/UIViewController+ContentController.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Utils/UIViewController+ContentController.swift @@ -23,7 +23,9 @@ extension UIViewController { func displayContentController(content: UIViewController) { + content.willMove(toParent: self) addChild(content) + content.didMove(toParent: self) content.view.translatesAutoresizingMaskIntoConstraints = true content.view.autoresizingMask = [.flexibleWidth, .flexibleHeight] @@ -31,7 +33,6 @@ extension UIViewController { view.addSubview(content.view) - content.didMove(toParent: self) } diff --git a/iOSClient/ObvMessenger/ObvMessenger/Utils/URL+MoveToTrash.swift b/iOSClient/ObvMessenger/ObvMessenger/Utils/URL+MoveToTrash.swift index 2e9cf7d0..182e5ce9 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Utils/URL+MoveToTrash.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/Utils/URL+MoveToTrash.swift @@ -18,7 +18,8 @@ */ import Foundation -import ObvUICoreData +import ObvSettings + extension URL { diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Call/Call.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Call/Call.swift deleted file mode 100644 index c4aedf6b..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Call/Call.swift +++ /dev/null @@ -1,1558 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import Foundation -import OlvidUtils -import ObvEngine -import os.log -import ObvTypes -import WebRTC -import ObvCrypto -import ObvUICoreData - - -actor Call: GenericCall, ObvErrorMaker { - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: Call.self)) - static let errorDomain = "Call" - - let uuid: UUID // Corresponds to the UUID for CallKit when using it - let usesCallKit: Bool - let direction: CallDirection - - let uuidForWebRTC: UUID - let groupId: GroupIdentifierBasedOnObjectID? - let ownedIdentity: ObvCryptoId - /// Used for an outgoing call. If the owned identity making the call is allowed to do so, this is set to this owned identity. If she is not, this is set to some other owned identity on this device that is allowed to make calls. - /// This makes it possible to make secure outgoing calls available to all profiles on this device as soon as one profile is allowed to make secure outgoing calls. - let ownedIdentityForRequestingTurnCredentials: ObvCryptoId - private var callParticipants = Set() - - private var tokens: [NSObjectProtocol] = [] - - weak var delegate: CallDelegate? - - private func setDelegate(to delegate: CallDelegate) { - self.delegate = delegate - } - - private var pendingIceCandidates = [OlvidUserId: [IceCandidateJSON]]() - - /// If we are a call participant, we might receive relayed WebRTC messages from the caller (in the case another participant is not "known" to us, i.e., we have not secure channel with her). - /// We may receive those messages before we are aware of this participant. When this happens, we add those messages to `pendingReceivedRelayedMessages`. - /// These messages will be used as soon as we are aware of this participant. - private var pendingReceivedRelayedMessages = [ObvCryptoId: [(messageType: WebRTCMessageJSON.MessageType, messagePayload: String)]]() - - private let queueForPostingNotifications: DispatchQueue - - /// This Boolean is set to `true` when entering a method that could end up modifying the set of call participants. - /// It is set back to `false` whenever this method is done. - /// It allows to implement a mechanism preventing two distinct methods to interfere when both can end up modifying the set of call participants. - private var aTaskIsCurrentlyModifyingCallParticipants = false { - didSet { - guard !aTaskIsCurrentlyModifyingCallParticipants else { return } - oneOfTheTaskCurrentlyModifyingCallParticipantsIsDone() - } - } - - /// See the comment about ``aTaskIsCurrentlyModifyingCallParticipants``. - private var continuationsOfTaskWaitingUntilTheyCanModifyCallParticipants = [CheckedContinuation]() - - // Specific to incoming calls - - let messageIdentifierFromEngine: Data? // Non-nil for an incoming call, nil for an outgoing call - private let messageUploadTimestampFromServer: Date? // Should not be nil for an incoming call - let initialParticipantCount: Int - let turnCredentialsReceivedFromCaller: TurnCredentials? - private var userAnsweredIncomingCall = false - private(set) var receivedOfferMessages: [OlvidUserId: (Date, NewParticipantOfferMessageJSON)] = [:] - private var ringingMessageHasBeenSent = false // For incoming calls - - private var pushKitNotificationWasReceived = false - - // Specific to outgoing calls - - private var obvTurnCredentials: ObvTurnCredentials? - - // Common methods - - private func addParticipant(callParticipant: CallParticipantImpl, report: Bool) async { - await callParticipant.setDelegate(to: self) - assert(callParticipants.firstIndex(of: HashableCallParticipant(callParticipant)) == nil, "The participant already exists in the set, we should never happen since we have an anti-race mechanism") - callParticipants.insert(HashableCallParticipant(callParticipant)) - if report { - VoIPNotification.callHasBeenUpdated(callUUID: self.uuid, updateKind: .callParticipantChange) - .postOnDispatchQueue(queueForPostingNotifications) - } - for iceCandidate in pendingIceCandidates[callParticipant.userId] ?? [] { - try? await callParticipant.processIceCandidatesJSON(message: iceCandidate) - } - // Process the relayed messages from this participant that were received before we were aware of this participant. - if let relayedMessagesToProcess = pendingReceivedRelayedMessages.removeValue(forKey: callParticipant.remoteCryptoId) { - for relayedMsg in relayedMessagesToProcess { - os_log("☎️ Processing a relayed message received while we were not aware of this call participant", log: log, type: .info) - await receivedRelayedMessage(from: callParticipant.remoteCryptoId, messageType: relayedMsg.messageType, messagePayload: relayedMsg.messagePayload) - } - } - pendingIceCandidates[callParticipant.userId] = nil - } - - - private func removeParticipant(callParticipant: CallParticipantImpl) async { - callParticipants.remove(HashableCallParticipant(callParticipant)) - if callParticipants.isEmpty { - await endCallAsAllOtherParticipantsLeft() - } - VoIPNotification.callHasBeenUpdated(callUUID: self.uuid, updateKind: .callParticipantChange) - .postOnDispatchQueue(queueForPostingNotifications) - - // If we are the caller (i.e., if this is an outgoing call) and if the call is not over, we send an updated list of participants to the remaining participants - - if direction == .outgoing && !internalState.isFinalState { - let otherParticipants = callParticipants.map({ $0.callParticipant }) - let message: WebRTCDataChannelMessageJSON - do { - message = try await UpdateParticipantsMessageJSON(callParticipants: otherParticipants).embedInWebRTCDataChannelMessageJSON() - } catch { - os_log("☎️ Could not send UpdateParticipantsMessageJSON: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - for otherParticipant in otherParticipants { - try? await otherParticipant.sendDataChannelMessage(message) - } - } - - } - - - func getParticipant(remoteCryptoId: ObvCryptoId) -> CallParticipantImpl? { - return callParticipants.first(where: { $0.remoteCryptoId == remoteCryptoId })?.callParticipant - } - - func getCallParticipants() async -> [CallParticipant] { - callParticipants.map({ $0.callParticipant }) - } - - func userDidAnsweredIncomingCall() async -> Bool { - userAnsweredIncomingCall - } - - func getStateDates() async -> [CallState: Date] { - stateDate - } - - // MARK: State management - - private var internalState: CallState = .initial - private var stateDate = [CallState: Date]() - - static let acceptableTimeIntervalForStartCallMessages: TimeInterval = 30.0 // 30 seconds - private static let ringingTimeoutInterval = 60 // 60 seconds - - private var currentAudioInput: (label: String, activate: () -> Void)? - - var state: CallState { - get async { - internalState - } - } - - - private func setCallState(to newState: CallState) async { - - guard !internalState.isFinalState else { return } - let previousState = internalState - if previousState == .callInProgress && newState == .ringing { return } - if previousState == newState { return } - - os_log("☎️ WebRTCCall will change state: %{public}@ --> %{public}@", log: log, type: .info, internalState.debugDescription, newState.debugDescription) - - internalState = newState - - // Play sounds - - switch self.direction { - case .outgoing: - if internalState == .ringing { - await CallSounds.shared.play(sound: .ringing, category: nil) - } else if internalState == .callInProgress && previousState != .callInProgress { - await CallSounds.shared.play(sound: .connect, category: nil) - } else if internalState.isFinalState && previousState == .callInProgress { - await CallSounds.shared.play(sound: .disconnect, category: nil) - } else { - await CallSounds.shared.stopCurrentSound() - } - case .incoming: - if internalState == .callInProgress && previousState != .callInProgress { - await CallSounds.shared.play(sound: .connect, category: nil) - } else if internalState.isFinalState && previousState == .callInProgress { - await CallSounds.shared.play(sound: .disconnect, category: nil) - } else { - await CallSounds.shared.stopCurrentSound() - } - } - - if !stateDate.keys.contains(internalState) { - stateDate[internalState] = Date() - } - - VoIPNotification.callHasBeenUpdated(callUUID: self.uuid, updateKind: .state(newState: newState)) - .postOnDispatchQueue(queueForPostingNotifications) - - // Notify of the fact that the incoming call is initializing (this is used to show the call view and the call toggle view) - - if self.direction == .incoming && newState == .initializingCall { - VoIPNotification.anIncomingCallShouldBeShownToUser(newIncomingCall: self) - .postOnDispatchQueue(queueForPostingNotifications) - } - - if internalState.isFinalState { - - // Close all connections - - let callParticipants = self.callParticipants.map({ $0.callParticipant }) - for participant in callParticipants { - do { - try await participant.closeConnection() - } catch { - os_log("Failed to close a connection with a participant while ending WebRTC call: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() // Continue anyway - } - } - - // Notify our delegate - - await delegate?.callReachedFinalState(call: self) - } - - if direction == .outgoing && internalState == .callInProgress { - await delegate?.outgoingCallReachedReachedInProgressState(call: self) - } - - } - - - private func updateStateFromPeerStates() async { - let callParticipants = self.callParticipants.map({ $0.callParticipant }) - for callParticipant in callParticipants { - guard await callParticipant.getPeerState().isFinalState else { return } - } - // If we reach this point, all call participants are in a final state, we can end the call. - await endCallAsAllOtherParticipantsLeft() - } - - - private init(direction: CallDirection, uuid: UUID, usesCallKit: Bool, uuidForWebRTC: UUID?, groupId: GroupIdentifierBasedOnObjectID?, ownedIdentity: ObvCryptoId, ownedIdentityForRequestingTurnCredentials: ObvCryptoId?, messageIdentifierFromEngine: Data?, messageUploadTimestampFromServer: Date?, initialParticipantCount: Int, turnCredentialsReceivedFromCaller: TurnCredentials?, obvTurnCredentials: ObvTurnCredentials?, queueForPostingNotifications: DispatchQueue) { - - self.uuid = uuid - self.usesCallKit = usesCallKit - self.direction = direction - self.uuidForWebRTC = uuidForWebRTC ?? uuid - self.groupId = groupId - self.ownedIdentity = ownedIdentity - self.ownedIdentityForRequestingTurnCredentials = ownedIdentityForRequestingTurnCredentials ?? ownedIdentity - self.queueForPostingNotifications = queueForPostingNotifications - - // Specific to incoming calls - - self.messageIdentifierFromEngine = messageIdentifierFromEngine - self.messageUploadTimestampFromServer = messageUploadTimestampFromServer - self.initialParticipantCount = initialParticipantCount - self.turnCredentialsReceivedFromCaller = turnCredentialsReceivedFromCaller - - // Specific to outgoing calls - - self.obvTurnCredentials = obvTurnCredentials - - } - - - deinit { - tokens.forEach { NotificationCenter.default.removeObserver($0) } - } - - - // MARK: Creating an incoming call - - static func createIncomingCall(uuid: UUID, startCallMessage: StartCallMessageJSON, contactId: OlvidUserId, uuidForWebRTC: UUID, messageIdentifierFromEngine: Data, messageUploadTimestampFromServer: Date, delegate: IncomingCallDelegate, useCallKit: Bool, queueForPostingNotifications: DispatchQueue) async -> Call { - - let callParticipant = await CallParticipantImpl.createCaller(startCallMessage: startCallMessage, contactId: contactId) - - var groupId: GroupIdentifierBasedOnObjectID? - switch startCallMessage.groupIdentifier { - case .none: - groupId = nil - case .groupV1(groupV1Identifier: let groupV1Identifier): - ObvStack.shared.performBackgroundTaskAndWait { context in - if let persistedGroup = try? PersistedContactGroup.getContactGroup(groupId: groupV1Identifier, ownedCryptoId: callParticipant.ownedIdentity, within: context) { - groupId = .groupV1(persistedGroup.typedObjectID) - } - } - case .groupV2(groupV2Identifier: let groupV2Identifier): - ObvStack.shared.performBackgroundTaskAndWait { context in - if let group = try? PersistedGroupV2.get(ownIdentity: callParticipant.ownedIdentity, appGroupIdentifier: groupV2Identifier, within: context) { - groupId = .groupV2(group.typedObjectID) - } - } - } - - let call = Call(direction: .incoming, - uuid: uuid, - usesCallKit: useCallKit, - uuidForWebRTC: uuidForWebRTC, - groupId: groupId, - ownedIdentity: callParticipant.ownedIdentity, - ownedIdentityForRequestingTurnCredentials: nil, - messageIdentifierFromEngine: messageIdentifierFromEngine, - messageUploadTimestampFromServer: messageUploadTimestampFromServer, - initialParticipantCount: startCallMessage.participantCount, - turnCredentialsReceivedFromCaller: startCallMessage.turnCredentials, - obvTurnCredentials: nil, - queueForPostingNotifications: queueForPostingNotifications) - - await call.setDelegate(to: delegate) - - await call.addParticipant(callParticipant: callParticipant, report: false) - - await call.observeAudioInputHasBeenActivatedNotifications() - - return call - - } - - - // MARK: Creating an outgoing call - - static func createOutgoingCall(contactIds: [OlvidUserId], ownedIdentityForRequestingTurnCredentials: ObvCryptoId, delegate: OutgoingCallDelegate, usesCallKit: Bool, groupId: GroupIdentifierBasedOnObjectID?, queueForPostingNotifications: DispatchQueue) async throws -> Call { - - var callParticipants = [CallParticipantImpl]() - for contactId in contactIds { - let participant = await Self.createRecipient(contactId: contactId) - callParticipants.append(participant) - } - - guard let participant = contactIds.first else { - throw Self.makeError(message: "Cannot create an outgoing call with no participant") - } - - let call = Call(direction: .outgoing, - uuid: UUID(), - usesCallKit: usesCallKit, - uuidForWebRTC: nil, - groupId: groupId, - ownedIdentity: participant.ownCryptoId, - ownedIdentityForRequestingTurnCredentials: ownedIdentityForRequestingTurnCredentials, - messageIdentifierFromEngine: nil, - messageUploadTimestampFromServer: nil, - initialParticipantCount: callParticipants.count, - turnCredentialsReceivedFromCaller: nil, - obvTurnCredentials: nil, - queueForPostingNotifications: queueForPostingNotifications) - - await call.setDelegate(to: delegate) - - for callParticipant in callParticipants { - await call.addParticipant(callParticipant: callParticipant, report: false) - } - - await call.observeAudioInputHasBeenActivatedNotifications() - - return call - - } - - - // MARK: - For any kind of call - - - private func observeAudioInputHasBeenActivatedNotifications() { - self.tokens.append(ObvMessengerInternalNotification.observeAudioInputHasBeenActivated { label, activate in - Task { [weak self] in await self?.processAudioInputHasBeenActivatedNotification(label: label, activate: activate) } - }) - } - - - func processAudioInputHasBeenActivatedNotification(label: String, activate: @escaping () -> Void) { - guard isOutgoingCall else { return } - guard currentAudioInput?.label != label else { return } - /// Keep a trace of audio input during ringing state to restore it when the call become inProgress - os_log("☎️🎵 Call stores %{public}@ as audio input", log: log, type: .info, label) - currentAudioInput = (label: label, activate: activate) - } - - - var isMuted: Bool { - get async { - // We return true only if audio is disabled for everyone - let callParticipants = self.callParticipants.map({ $0.callParticipant }) - for callParticipant in callParticipants { - if await !callParticipant.isMuted { - return false - } - } - return true - } - } - - - /// Called from the Olvid UI when the user taps on the mute button - func userRequestedToToggleAudio() async { - do { - if await self.isMuted { - try await callManager.requestUnmuteCallAction(call: self) - } else { - try await callManager.requestMuteCallAction(call: self) - } - } catch { - os_log("☎️ Failed to toggle audio: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - } - } - - - /// This method is *not* called from the UI but from the coordinator, as a response to our request made in - /// ``func userRequestedToToggleAudio() async`` - func muteSelfForOtherParticipants() async { - let callParticipants = self.callParticipants.map({ $0.callParticipant }) - for participant in callParticipants { - guard await !participant.isMuted else { continue } - await participant.mute() - } - VoIPNotification.callHasBeenUpdated(callUUID: self.uuid, updateKind: .mute) - .postOnDispatchQueue(queueForPostingNotifications) - } - - - /// This method is *not* called from the UI but from the coordinator, as a response to our request made in - /// ``func userRequestedToToggleAudio() async`` - func unmuteSelfForOtherParticipants() async { - let callParticipants = self.callParticipants.map({ $0.callParticipant }) - for participant in callParticipants { - guard await participant.isMuted else { continue } - await participant.unmute() - } - VoIPNotification.callHasBeenUpdated(callUUID: self.uuid, updateKind: .mute) - .postOnDispatchQueue(queueForPostingNotifications) - } - - - func callParticipantDidHangUp(participantId: OlvidUserId) async throws { - guard let participant = getParticipant(remoteCryptoId: participantId.remoteCryptoId) else { return } - try await participant.setPeerState(to: .hangedUp) - let newParticipantState = await participant.getPeerState() - assert(newParticipantState.isFinalState) - await updateStateFromPeerStates() - } - - // - MARK: Restarting a call - - /// Called when a network connection status changed - func restartIceIfAppropriate() async throws { - guard internalState == .callInProgress else { return } - let log = self.log - let callParticipants = self.callParticipants.map({ $0.callParticipant }) - for callParticipant in callParticipants { - do { - try await callParticipant.restartIceIfAppropriate() - } catch { - os_log("☎️ Could not restart ICE: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - } - } - } - - - func handleReconnectCallMessage(callParticipant: CallParticipantImpl, _ reconnectCallMessage: ReconnectCallMessageJSON) async throws { - let sessionDescription = RTCSessionDescription(type: reconnectCallMessage.sessionDescriptionType, sdp: reconnectCallMessage.sessionDescription) - try await callParticipant.handleReceivedRestartSdp( - sessionDescription: sessionDescription, - reconnectCounter: reconnectCallMessage.reconnectCounter ?? 0, - peerReconnectCounterToOverride: reconnectCallMessage.peerReconnectCounterToOverride ?? 0) - } - - - private var callManager: ObvCallManager { usesCallKit ? CXCallManager() : NCXCallManager() } - -} - - -// MARK: - Implementing CallParticipantDelegate - -extension Call: CallParticipantDelegate { - - nonisolated var isOutgoingCall: Bool { self.direction == .outgoing } - - func participantWasUpdated(callParticipant: CallParticipantImpl, updateKind: CallParticipantUpdateKind) async { - - guard callParticipants.contains(HashableCallParticipant(callParticipant)) else { return } - VoIPNotification.callParticipantHasBeenUpdated(callParticipant: callParticipant, updateKind: updateKind) - .postOnDispatchQueue(queueForPostingNotifications) - - switch updateKind { - case .state(newState: let newState): - switch newState { - case .initial: - break - case .startCallMessageSent: - break - case .ringing: - guard self.direction == .outgoing else { return } - guard [CallState.initializingCall, .gettingTurnCredentials, .initial].contains(internalState) else { return } - await setCallState(to: .ringing) - case .busy: - await removeParticipant(callParticipant: callParticipant) - case .connectingToPeer: - guard internalState == .userAnsweredIncomingCall else { return } - await setCallState(to: .initializingCall) - case .connected: - guard internalState != .callInProgress else { return } - await setCallState(to: .callInProgress) - if let currentAudioInput = currentAudioInput { - os_log("☎️🎵 Connected call restores %{public}@ as audio input ", log: log, type: .info, currentAudioInput.label) - currentAudioInput.activate() - } - case .reconnecting, .callRejected, .hangedUp, .kicked, .failed: - break - } - case .contactID: - break - case .contactMuted: - break - } - } - - - nonisolated func connectionIsChecking(for callParticipant: CallParticipant) { - Task { await CallSounds.shared.prepareFeedback() } - } - - - func connectionIsConnected(for callParticipant: CallParticipant, oldParticipantState: PeerState) async { - - let callParticipants = self.callParticipants.map({ $0.callParticipant }) - - do { - if self.direction == .outgoing && oldParticipantState != .connected && oldParticipantState != .reconnecting { - let message = try await UpdateParticipantsMessageJSON(callParticipants: callParticipants).embedInWebRTCDataChannelMessageJSON() - let callParticipantsToNotify = self.callParticipants.filter({ $0.callParticipant.uuid != callParticipant.uuid }).map({ $0.callParticipant }) - for callParticipant in callParticipantsToNotify { - try await callParticipant.sendDataChannelMessage(message) - } - } - } catch { - os_log("We failed to notify the other participants about the new participants list: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - // Continue anywait - } - - // If the current state is not already "callInProgress", it means that the first participant - // Just joined to call. We want to change the state to "callInProgress" (which will play the - // Appropriate sounds, etc.). - - guard internalState != .callInProgress else { return } - await setCallState(to: .callInProgress) - } - - - func connectionWasClosed(for callParticipant: CallParticipantImpl) async { - await removeParticipant(callParticipant: callParticipant) - await updateStateFromPeerStates() - } - - func dataChannelIsOpened(for callParticipant: CallParticipant) async { - guard self.direction == .outgoing else { return } - guard callParticipant.role == .recipient else { assertionFailure(); return } - let callParticipants = self.callParticipants.map({ $0.callParticipant }) - try? await callParticipant.sendUpdateParticipantsMessageJSON(callParticipants: callParticipants) - } - - nonisolated func shouldISendTheOfferToCallParticipant(cryptoId: ObvCryptoId) -> Bool { - /// REMARK it should be the same as io.olvid.messenger.webrtc.WebrtcCallService#shouldISendTheOfferToCallParticipant in java - return ownedIdentity > cryptoId - } - - - func updateParticipants(with allCallParticipants: [ContactBytesAndNameJSON]) async throws { - - os_log("☎️ Entering updateParticipant(newCallParticipants: [ContactBytesAndNameJSON])", log: log, type: .info) - os_log("☎️ The latest list of call participants contains %d participant(s)", log: log, type: .info, allCallParticipants.count) - os_log("☎️ Before processing this list, we consider there are %d participant(s) in this call", log: log, type: .info, callParticipants.count) - - // In case of large group calls, we can encounter race conditions. We prevent that by waiting until it is safe to process the new participants list - - await waitUntilItIsSafeToModifyParticipants() - - // Now that it is our turn to potentially modify the participants set, we must make sure no other task will interfere. - // The mechanism allowing to do so requires to set the following Boolean to true now, and to false when we are done. - - aTaskIsCurrentlyModifyingCallParticipants = true - defer { aTaskIsCurrentlyModifyingCallParticipants = false } - - // We can proceed - - guard direction == .incoming else { - assertionFailure() - throw Self.makeError(message: "self is not an incoming call") - } - guard let turnCredentials = self.turnCredentialsReceivedFromCaller else { - assertionFailure() - throw Self.makeError(message: "No turn credentials found") - } - - let callIsMuted = await self.isMuted - - // Remove our own identity from the list of call participants. - - let allCallParticipants = allCallParticipants.filter({ $0.byteContactIdentity != ownedIdentity.getIdentity() }) - - // Determine the CryptoIds of the local list of participants and of the reveived version of the list - - let currentIdsOfParticipants = Set(callParticipants.compactMap({ $0.callParticipant.userId })) - let updatedIdsOfParticipants = Set(allCallParticipants.compactMap({ try? getOlvidUserIdFor(contactInfos: $0) })) - - // Determine the participants to add to the local list, and those that should be removed - - let idsOfParticipantsToAdd = updatedIdsOfParticipants.subtracting(currentIdsOfParticipants) - let idsOfParticipantsToRemove = currentIdsOfParticipants.subtracting(updatedIdsOfParticipants) - - // Perform the necessary steps to add the participants - - os_log("☎️ We have %d participant(s) to add", log: log, type: .info, idsOfParticipantsToAdd.count) - - for userId in idsOfParticipantsToAdd { - - let gatheringPolicy = allCallParticipants - .first(where: { $0.byteContactIdentity == userId.remoteCryptoId.getIdentity() }) - .map({ $0.gatheringPolicy ?? .gatherOnce }) ?? .gatherOnce - - let callParticipant = await CallParticipantImpl.createRecipientForIncomingCall(contactId: userId, gatheringPolicy: gatheringPolicy) - await addParticipant(callParticipant: callParticipant, report: true) - await delegate?.newParticipantWasAdded(call: self, callParticipant: callParticipant) - - if shouldISendTheOfferToCallParticipant(cryptoId: userId.remoteCryptoId) { - os_log("☎️ Will set credentials for offer to a call participant", log: log, type: .info) - try await callParticipant.setTurnCredentialsAndCreateUnderlyingPeerConnection(turnCredentials: turnCredentials) - } else { - os_log("☎️ No need to send offer to the call participant", log: log, type: .info) - /// check if we already received the offer the CallParticipant is supposed to send us - if let (date, newParticipantOfferMessage) = self.receivedOfferMessages.removeValue(forKey: userId) { - try await delegate?.processNewParticipantOfferMessageJSON(newParticipantOfferMessage, - uuidForWebRTC: uuidForWebRTC, - contact: userId, - messageUploadTimestampFromServer: date) - } - } - - } - - // If we were muted, we must make sure we stay muted for all participant, including the new ones - - if callIsMuted { - await muteSelfForOtherParticipants() - } - - // Perform the necessary steps to remove the participants. - // Note that we know the caller is among the participants and we do not want to remove her here. - - os_log("☎️ We have %d participant(s) to remove (unless one if the caller)", log: log, type: .info, idsOfParticipantsToRemove.count) - - for userId in idsOfParticipantsToRemove { - guard let participant = getParticipant(remoteCryptoId: userId.remoteCryptoId) else { assertionFailure(); continue } - guard participant.role != .caller else { continue } - try await participant.closeConnection() - await removeParticipant(callParticipant: participant) - } - - } - - - /// This method allows to make sure we are not risking race conditions when updating the list of participants. - private func waitUntilItIsSafeToModifyParticipants() async { - guard aTaskIsCurrentlyModifyingCallParticipants else { return } - os_log("☎️ Since we are already currently modifying call participants, we must wait", log: log, type: .info) - await withCheckedContinuation { (continuation: CheckedContinuation) in - guard aTaskIsCurrentlyModifyingCallParticipants else { continuation.resume(); return } - continuationsOfTaskWaitingUntilTheyCanModifyCallParticipants.insert(continuation, at: 0) // first in, first out - } - } - - - private func oneOfTheTaskCurrentlyModifyingCallParticipantsIsDone() { - assert(!aTaskIsCurrentlyModifyingCallParticipants) - guard !continuationsOfTaskWaitingUntilTheyCanModifyCallParticipants.isEmpty else { return } - os_log("☎️ Since a task potentially modifying the set of call participants is done, we can proceed with the next one", log: log, type: .info) - guard let continuation = continuationsOfTaskWaitingUntilTheyCanModifyCallParticipants.popLast() else { return } - aTaskIsCurrentlyModifyingCallParticipants = true - continuation.resume() - } - - - // MARK: - Post office service - - func relay(from: ObvCryptoId, to: ObvCryptoId, messageType: WebRTCMessageJSON.MessageType, messagePayload: String) async { - - guard messageType.isAllowedToBeRelayed else { assertionFailure(); return } - - guard let participant = getParticipant(remoteCryptoId: to) else { return } - let message: WebRTCDataChannelMessageJSON - do { - message = try RelayedMessageJSON(from: from.getIdentity(), relayedMessageType: messageType.rawValue, serializedMessagePayload: messagePayload).embedInWebRTCDataChannelMessageJSON() - } catch { - os_log("☎️ Could not send UpdateParticipantsMessageJSON: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - do { - try await participant.sendDataChannelMessage(message) - } catch { - os_log("☎️ Could not send data channel message: %{public}@", log: log, type: .fault, error.localizedDescription) - return - } - } - - - func receivedRelayedMessage(from: ObvCryptoId, messageType: WebRTCMessageJSON.MessageType, messagePayload: String) async { - os_log("☎️ Call to receivedRelayedMessage", log: log, type: .info) - guard let callParticipant = callParticipants.first(where: { $0.remoteCryptoId == from })?.callParticipant else { - os_log("☎️ Could not find the call participant in receivedRelayedMessage. We store the relayed message for later", log: log, type: .info) - if var previous = pendingReceivedRelayedMessages[from] { - previous.append((messageType, messagePayload)) - pendingReceivedRelayedMessages[from] = previous - } else { - pendingReceivedRelayedMessages[from] = [(messageType, messagePayload)] - } - return - } - let contactId = callParticipant.userId - await delegate?.processReceivedWebRTCMessage(messageType: messageType, - serializedMessagePayload: messagePayload, - callIdentifier: uuidForWebRTC, - contact: contactId, - messageUploadTimestampFromServer: Date(), - messageIdentifierFromEngine: nil) - } - - - private func sendLocalUserHangedUpMessageToAllParticipants() async { - let hangedUpMessage = HangedUpMessageJSON() - for participant in self.callParticipants { - do { - try await sendWebRTCMessage(to: participant.callParticipant, innerMessage: hangedUpMessage, forStartingCall: false) - } catch { - os_log("Failed to send a HangedUpMessageJSON to a participant: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() // Continue anyway - } - } - } - - - private func sendRejectIncomingCallToCaller() async { - assert(direction == .incoming) - guard let caller = self.callerCallParticipant else { - os_log("Could not find caller", log: log, type: .fault) - assertionFailure() - return - } - let rejectedMessage = RejectCallMessageJSON() - do { - try await sendWebRTCMessage(to: caller, innerMessage: rejectedMessage, forStartingCall: false) - } catch { - os_log("Failed to send a RejectCallMessageJSON to the caller: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() // Continue anyway - } - } - - - private func sendBusyMessageToCaller() async { - assert(direction == .incoming) - guard let caller = self.callerCallParticipant else { - os_log("Could not find caller", log: log, type: .fault) - assertionFailure() - return - } - let rejectedMessage = BusyMessageJSON() - do { - try await sendWebRTCMessage(to: caller, innerMessage: rejectedMessage, forStartingCall: false) - } catch { - os_log("Failed to send a BusyMessageJSON to the caller: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() // Continue anyway - } - } - - - func sendRingingMessageToCaller() async { - assert(direction == .incoming) - guard !ringingMessageHasBeenSent else { return } - ringingMessageHasBeenSent = true - guard let caller = self.callerCallParticipant else { - os_log("Could not find caller", log: log, type: .fault) - assertionFailure() - return - } - let rejectedMessage = RingingMessageJSON() - do { - try await sendWebRTCMessage(to: caller, innerMessage: rejectedMessage, forStartingCall: false) - } catch { - os_log("Failed to send a RejectCallMessageJSON to the caller: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() // Continue anyway - } - await scheduleRingingIncomingCallTimeout() - } - - - func sendWebRTCMessage(to: CallParticipant, innerMessage: WebRTCInnerMessageJSON, forStartingCall: Bool) async throws { - let message = try innerMessage.embedInWebRTCMessageJSON(callIdentifier: uuidForWebRTC) - if case .hangedUp = message.messageType { - // Also send message on the data channel, if the caller is gone - do { - let hangedUpDataChannel = try HangedUpDataChannelMessageJSON().embedInWebRTCDataChannelMessageJSON() - try await to.sendDataChannelMessage(hangedUpDataChannel) - } catch { - os_log("☎️ Could not send HangedUpDataChannelMessageJSON: %{public}@", log: log, type: .fault, error.localizedDescription) - // Continue anyway - } - } - switch to.userId { - case .known(contactObjectID: let contactObjectID, ownCryptoId: _, remoteCryptoId: _, displayName: _): - os_log("☎️ Posting a newWebRTCMessageToSend", log: log, type: .info) - ObvMessengerInternalNotification.newWebRTCMessageToSend(webrtcMessage: message, contactID: contactObjectID, forStartingCall: forStartingCall) - .postOnDispatchQueue(queueForPostingNotifications) - case .unknown(ownCryptoId: _, remoteCryptoId: let remoteCryptoId, displayName: _): - guard message.messageType.isAllowedToBeRelayed else { assertionFailure(); return } - guard self.direction == .incoming else { assertionFailure(); return } - guard let caller = self.callerCallParticipant else { return } - let toContactIdentity = remoteCryptoId.getIdentity() - - do { - let dataChannelMessage = try RelayMessageJSON(to: toContactIdentity, relayedMessageType: message.messageType.rawValue, serializedMessagePayload: message.serializedMessagePayload).embedInWebRTCDataChannelMessageJSON() - try await caller.sendDataChannelMessage(dataChannelMessage) - } catch { - os_log("☎️ Could not send RelayMessageJSON: %{public}@", log: log, type: .fault, error.localizedDescription) - return - } - } - } - - - func sendStartCallMessage(to callParticipant: CallParticipant, sessionDescription: RTCSessionDescription, turnCredentials: TurnCredentials) async throws { - - guard let gatheringPolicy = await callParticipant.gatheringPolicy else { - assertionFailure() - throw Self.makeError(message: "The gathering policy is not specified, which is unexpected at this point") - } - - guard let turnServers = turnCredentials.turnServers else { - assertionFailure() - throw Self.makeError(message: "The turn servers are not set, which is unexpected at this point") - } - - var filteredGroupId: GroupIdentifier? - switch groupId { - case .groupV1(let objectID): - let participantIdentity = callParticipant.remoteCryptoId - ObvStack.shared.performBackgroundTaskAndWait { context in - guard let contactGroup = try? PersistedContactGroup.get(objectID: objectID.objectID, within: context) else { - os_log("Could not find contactGroup", log: log, type: .fault) - return - } - let groupMembers = Set(contactGroup.contactIdentities.map { $0.cryptoId }) - if groupMembers.contains(participantIdentity), let groupV1Identifier = try? contactGroup.getGroupId() { - filteredGroupId = .groupV1(groupV1Identifier: groupV1Identifier) - } - } - case .groupV2(let objectID): - let participantIdentity = callParticipant.remoteCryptoId - ObvStack.shared.performBackgroundTaskAndWait { context in - guard let group = try? PersistedGroupV2.get(objectID: objectID, within: context) else { - os_log("Could not find PersistedGroupV2", log: log, type: .fault) - return - } - let groupMembers = Set(group.otherMembers.compactMap({ $0.cryptoId })) - if groupMembers.contains(participantIdentity) { - filteredGroupId = .groupV2(groupV2Identifier: group.groupIdentifier) - } - } - case .none: - filteredGroupId = nil - } - - let message = try StartCallMessageJSON( - sessionDescriptionType: RTCSessionDescription.string(for: sessionDescription.type), - sessionDescription: sessionDescription.sdp, - turnUserName: turnCredentials.turnUserName, - turnPassword: turnCredentials.turnPassword, - turnServers: turnServers, - participantCount: callParticipants.count, - groupIdentifier: filteredGroupId, - gatheringPolicy: gatheringPolicy) - - try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: true) - - } - - - func sendAnswerCallMessage(to callParticipant: CallParticipant, sessionDescription: RTCSessionDescription) async throws { - - let message: WebRTCInnerMessageJSON - let messageDescripton = callParticipant.role == .caller ? "AnswerIncomingCall" : "NewParticipantAnswerMessage" - do { - if callParticipant.role == .caller { - message = try AnswerCallJSON(sessionDescriptionType: RTCSessionDescription.string(for: sessionDescription.type), sessionDescription: sessionDescription.sdp) - } else { - message = try NewParticipantAnswerMessageJSON(sessionDescriptionType: RTCSessionDescription.string(for: sessionDescription.type), sessionDescription: sessionDescription.sdp) - } - } catch { - os_log("Could not create and send %{public}@: %{public}@", log: log, type: .fault, messageDescripton, error.localizedDescription) - assertionFailure() - throw error - } - try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: false) - } - - - func sendNewParticipantOfferMessage(to callParticipant: CallParticipant, sessionDescription: RTCSessionDescription) async throws { - let message = try await NewParticipantOfferMessageJSON( - sessionDescriptionType: RTCSessionDescription.string(for: sessionDescription.type), - sessionDescription: sessionDescription.sdp, - gatheringPolicy: callParticipant.gatheringPolicy ?? .gatherContinually) - try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: false) - } - - - func sendNewParticipantAnswerMessage(to callParticipant: CallParticipant, sessionDescription: RTCSessionDescription) async throws { - let message = try NewParticipantAnswerMessageJSON( - sessionDescriptionType: RTCSessionDescription.string(for: sessionDescription.type), - sessionDescription: sessionDescription.sdp) - try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: false) - } - - - func sendReconnectCallMessage(to callParticipant: CallParticipant, sessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int) async throws { - let message = try ReconnectCallMessageJSON( - sessionDescriptionType: RTCSessionDescription.string(for: sessionDescription.type), - sessionDescription: sessionDescription.sdp, - reconnectCounter: reconnectCounter, - peerReconnectCounterToOverride: peerReconnectCounterToOverride) - try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: false) - } - - - func sendNewIceCandidateMessage(to callParticipant: CallParticipant, iceCandidate: RTCIceCandidate) async throws { - let message = IceCandidateJSON(sdp: iceCandidate.sdp, sdpMLineIndex: iceCandidate.sdpMLineIndex, sdpMid: iceCandidate.sdpMid) - try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: false) - } - - - func sendRemoveIceCandidatesMessages(to callParticipant: CallParticipant, candidates: [RTCIceCandidate]) async throws { - let message = RemoveIceCandidatesMessageJSON(candidates: candidates.map({ IceCandidateJSON(sdp: $0.sdp, sdpMLineIndex: $0.sdpMLineIndex, sdpMid: $0.sdpMid) })) - try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: false) - } - - - func processIceCandidatesJSON(iceCandidate: IceCandidateJSON, participantId: OlvidUserId) async throws { - - if let callParticipant = callParticipants.first(where: { $0.callParticipant.userId == participantId })?.callParticipant { - try await callParticipant.processIceCandidatesJSON(message: iceCandidate) - } else { - if var previousCandidates = pendingIceCandidates[participantId] { - previousCandidates.append(iceCandidate) - pendingIceCandidates[participantId] = previousCandidates - } else { - pendingIceCandidates[participantId] = [iceCandidate] - } - } - - } - - - func removeIceCandidatesJSON(removeIceCandidatesJSON: RemoveIceCandidatesMessageJSON, participantId: OlvidUserId) async throws { - if let callParticipant = callParticipants.first(where: { $0.callParticipant.userId == participantId })?.callParticipant { - await callParticipant.processRemoveIceCandidatesMessageJSON(message: removeIceCandidatesJSON) - } else { - if var candidates = pendingIceCandidates[participantId] { - candidates.removeAll(where: { removeIceCandidatesJSON.candidates.contains($0) }) - pendingIceCandidates[participantId] = candidates - } - } - } - -} - - -// MARK: - Ending a call - -extension Call { - - /// This is the method call by the Olvid UI when a the user taps on the hangup button. - /// It simply creates an end call action that it passed to the system. Eventually, the - /// ``func provider(perform action: ObvEndCallAction) async throws`` - /// delegate method of the call coordinator will be called after dismissing the CallKit UI (when using it). - /// This delegate method will call us back so that we can properly end this WebRTC call. - nonisolated func userRequestedToEndCall() { - Task { - do { - try await callManager.requestEndCallAction(call: self) - } catch { - os_log("Failed to request an end call action: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - } - } - } - - - /// When the user requests to end the call, the - /// ``func userRequestedToEndCall()`` - /// the call coordinator - /// ``func provider(perform action: ObvEndCallAction) async throws`` - /// delegate is called. After fullfilling the action, it calls this method. - /// We can not properly end the WebRTC call. - func userRequestedToEndCallWasFulfilled() async { - await endWebRTCCall(reason: .localUserRequest) - } - - - func endCallAsInitiationNotSupported() async { - assert(direction == .outgoing) - await endWebRTCCall(reason: .callInitiationNotSupported) - } - - - func endCallAsLocalUserGotKicked() async { - assert(direction == .incoming) - await endWebRTCCall(reason: .kicked) - } - - - func endCallAsPermissionWasDeniedByServer() async { - assert(direction == .outgoing) - await endWebRTCCall(reason: .permissionDeniedByServer) - } - - - func endCallAsReportingAnIncomingCallFailed(error: ObvErrorCodeIncomingCallError) async { - assert(direction == .incoming) - await endWebRTCCall(reason: .reportIncomingCallFailed(error: error)) - } - - - func endCallAsAllOtherParticipantsLeft() async { - await endWebRTCCall(reason: .allOtherParticipantsLeft) - } - - - func endCallAsOutgoingCallInitializationFailed() async { - assert(direction == .outgoing) - await endWebRTCCall(reason: .outgoingCallInitializationFailed) - } - - - func endCallBecauseOfMissingRecordPermission() async { - await endWebRTCCall(reason: .missingRecordPermission) - } - - - private func endCallBecauseOfTimeout() async { - await endWebRTCCall(reason: .callTimedOut) - } - - /// This method is eventually called when ending a call, either because the local user requested to end the call, or the remote user hanged up, - /// Or because some error occured, etc. It perfoms final important steps before settting the call into an appropriate final state. - /// This is the only method that actually sets the call state to a final state. - private func endWebRTCCall(reason: EndCallReason) async { - - guard !internalState.isFinalState else { return } - - let callParticipants = self.callParticipants.map({ $0.callParticipant }) - - // Potentially send a hangup/reject call message to the other participants or the to the caller - - switch reason { - - case .callTimedOut: - await sendLocalUserHangedUpMessageToAllParticipants() - - case .localUserRequest: - switch direction { - case .outgoing: - await sendLocalUserHangedUpMessageToAllParticipants() - case .incoming: - switch internalState { - case .initial, .ringing, .initializingCall: - await sendRejectIncomingCallToCaller() - case .userAnsweredIncomingCall, .callInProgress: - await sendLocalUserHangedUpMessageToAllParticipants() - case .gettingTurnCredentials, .hangedUp, .kicked, .callRejected, .permissionDeniedByServer, .unanswered, .callInitiationNotSupported, .failed: - assertionFailure() - await sendRejectIncomingCallToCaller() - } - } - - case .callInitiationNotSupported: - assert(direction == .outgoing) // No need to send reject/hangup message - - case .kicked: - assert(direction == .incoming) // No need to send reject/hangup message - - case .permissionDeniedByServer: - assert(direction == .outgoing) // No need to send reject/hangup message - - case .allOtherParticipantsLeft: - break // No need to send reject/hangup message - - case .reportIncomingCallFailed(error: let error): - assert(direction == .incoming) - switch error { - case .unknown, .unentitled, .callUUIDAlreadyExists, .filteredByDoNotDisturb, .filteredByBlockList: - await sendRejectIncomingCallToCaller() - case .maximumCallGroupsReached: - await sendBusyMessageToCaller() - } - - case .outgoingCallInitializationFailed: - assert(direction == .outgoing) // No need to send reject/hangup message - - case .missingRecordPermission: - await sendRejectIncomingCallToCaller() - // No need to send reject/hangup message - - } - - // In the end, we might have to report to our delegate - - var callReport: CallReport? - - // Set the call in an appropriate final state and perform final steps - - switch reason { - - case .callTimedOut: - await setCallState(to: .unanswered) - switch direction { - case .incoming: - callReport = .missedIncomingCall(caller: callerCallParticipant?.info, - participantCount: initialParticipantCount) - case .outgoing: - callReport = .unansweredOutgoingCall(with: callParticipants.map({ $0.info })) - } - await delegate?.callOutOfBoundEnded(call: self, reason: .unanswered) - - case .localUserRequest: - switch direction { - case .outgoing: - callReport = .uncompletedOutgoingCall(with: callParticipants.map({ $0.info })) - await setCallState(to: .hangedUp) - case .incoming: - switch internalState { - case .initial, .ringing, .initializingCall: - await setCallState(to: .callRejected) - if let caller = callerCallParticipant?.info { - callReport = .rejectedIncomingCall(caller: caller, participantCount: initialParticipantCount) - } - case .userAnsweredIncomingCall, .callInProgress: - await setCallState(to: .hangedUp) - case .gettingTurnCredentials, .hangedUp, .kicked, .callRejected, .permissionDeniedByServer, .unanswered, .callInitiationNotSupported, .failed: - assertionFailure() - await setCallState(to: .callRejected) - if let caller = callerCallParticipant?.info { - callReport = .rejectedIncomingCall(caller: caller, participantCount: initialParticipantCount) - } - } - } - - case .callInitiationNotSupported: - assert(direction == .outgoing) - await setCallState(to: .callInitiationNotSupported) - await delegate?.callOutOfBoundEnded(call: self, reason: .failed) - callReport = .uncompletedOutgoingCall(with: callParticipants.map({ $0.info })) - - case .kicked: - assert(direction == .incoming) - await setCallState(to: .kicked) - await delegate?.callOutOfBoundEnded(call: self, reason: .remoteEnded) - - case .permissionDeniedByServer: - assert(direction == .outgoing) - await setCallState(to: .permissionDeniedByServer) - await delegate?.callOutOfBoundEnded(call: self, reason: .failed) - callReport = .uncompletedOutgoingCall(with: callParticipants.map({ $0.info })) - - case .allOtherParticipantsLeft: - if internalState == .initial { - await setCallState(to: .unanswered) - await delegate?.callOutOfBoundEnded(call: self, reason: .unanswered) - } else { - await setCallState(to: .hangedUp) - await delegate?.callOutOfBoundEnded(call: self, reason: .remoteEnded) - } - - case .reportIncomingCallFailed(error: let error): - assert(direction == .incoming) - switch error { - case .unknown, .unentitled, .callUUIDAlreadyExists: - await setCallState(to: .failed) - if let caller = callerCallParticipant?.info { - callReport = .rejectedIncomingCall(caller: caller, participantCount: initialParticipantCount) - } - case .filteredByDoNotDisturb, .filteredByBlockList: - await setCallState(to: .unanswered) - if let caller = callerCallParticipant?.info { - callReport = .filteredIncomingCall(caller: caller, participantCount: initialParticipantCount) - } - if let caller = callerCallParticipant?.info { - callReport = .rejectedIncomingCall(caller: caller, participantCount: initialParticipantCount) - } - - case .maximumCallGroupsReached: - await setCallState(to: .unanswered) - } - - case .outgoingCallInitializationFailed: - assert(direction == .outgoing) - await setCallState(to: .failed) - callReport = .uncompletedOutgoingCall(with: callParticipants.map({ $0.info })) - - - case .missingRecordPermission: - await setCallState(to: .failed) - await delegate?.callOutOfBoundEnded(call: self, reason: .failed) - if direction == .incoming, let caller = callerCallParticipant?.info { - callReport = .rejectedIncomingCallBecauseOfDeniedRecordPermission(caller: caller, participantCount: initialParticipantCount) - } - - } - - assert(internalState.isFinalState) - - // If we have a call report, transmit it to our delegate - - if let callReport = callReport { - if let delegate = delegate { - type(of: delegate).report(call: self, report: callReport) - } else { - assertionFailure() - } - } - - } - - - enum EndCallReason { - case callTimedOut - case localUserRequest - case callInitiationNotSupported - case kicked // incoming call only - case permissionDeniedByServer // outgoing call only - case allOtherParticipantsLeft - case reportIncomingCallFailed(error: ObvErrorCodeIncomingCallError) - case outgoingCallInitializationFailed - case missingRecordPermission - } -} - - -// MARK: - Incoming calls - -extension Call { - - var callerCallParticipant: CallParticipant? { - guard direction == .incoming else { assertionFailure(); return nil } - return callParticipants.first(where: { $0.callParticipant.role == .caller })?.callParticipant - } - - - func addPendingOffer(_ receivedOfferMessage: (Date, NewParticipantOfferMessageJSON), from userId: OlvidUserId) { - assert(receivedOfferMessages[userId] == nil) - receivedOfferMessages[userId] = receivedOfferMessage - } - - - func isReady() -> Bool { - assert(direction == .incoming) - let pushKitIsEitherDisabledOrReady = !ObvMessengerSettings.VoIP.isCallKitEnabled || pushKitNotificationWasReceived - return pushKitIsEitherDisabledOrReady - } - - - /// This method is called after when the local user answers an incoming call - func answerWebRTCCall() async throws { - assert(direction == .incoming) - userAnsweredIncomingCall = true - await setCallState(to: .userAnsweredIncomingCall) - try await answerIfRequestedAndIfPossible() - } - - - private func answerIfRequestedAndIfPossible() async throws { - assert(direction == .incoming) - guard let caller = callerCallParticipant else { return } - guard userAnsweredIncomingCall else { return } - try await caller.localUserAcceptedIncomingCallFromThisCallParticipant() - } - - - /// Called when the user taps on the ansert button on the Olvid UI - func userRequestedToAnswerCall() async { - guard direction == .incoming else { - os_log("Can only answer an incoming call", log: log, type: .fault) - assertionFailure() - return - } - if internalState == .initial || internalState == .ringing { - do { - try await callManager.requestAnswerCallAction(incomingCall: self) - } catch { - os_log("Failed to answer incoming call: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - } - } else { - os_log("To answer an incoming call, we must be either in the initial or ringing state. But we are in the %{public}@ state", log: log, type: .fault, internalState.debugDescription) - assertionFailure() - } - } - - - - - /// When receiving an incoming call, we heventully arrive in the ringing state. We do not want the phone to ring forever. We thus schedule a timeout using this method. - private func scheduleRingingIncomingCallTimeout() async { - let log = self.log - guard direction == .incoming else { assertionFailure(); return } - os_log("☎️ Scheduling a ringing timeout for this incoming call", log: log, type: .info) - DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(Call.ringingTimeoutInterval)) { - Task { [weak self] in await self?.ringingTimerForIncomingCallFired() } - } - } - - - /// This method is *always* called after the `ringingTimeoutInterval`. For this reason, we *do* check whether it is appropriate to end the call - private func ringingTimerForIncomingCallFired() async { - guard direction == .incoming else { assertionFailure(); return } - guard internalState == .initial else { - os_log("☎️ We prevent the ringing timer from firing since we are not in a ringing state anymore", log: log, type: .info) - return - } - os_log("☎️ The incoming call did ring for too long, we timeout it now", log: log, type: .info) - await endCallBecauseOfTimeout() - } - -} - - -// MARK: - Outgoing calls - -extension Call { - - var outgoingCallDelegate: OutgoingCallDelegate? { - assert(direction == .outgoing) - return delegate as? OutgoingCallDelegate - } - - - var turnCredentialsForRecipient: TurnCredentials? { - assert(direction == .outgoing) - return obvTurnCredentials?.turnCredentialsForRecipient - } - - - var turnCredentialsForCaller: TurnCredentials? { - assert(direction == .outgoing) - return obvTurnCredentials?.turnCredentialsForCaller - } - - - private static func createRecipient(contactId: OlvidUserId) async -> CallParticipantImpl { - var contactInfo: ContactInfo? - if let contactObjectID = contactId.contactObjectID { - contactInfo = CallHelper.getContactInfo(contactObjectID) - } - return await CallParticipantImpl.createRecipientForOutgoingCall(contactId: contactId, gatheringPolicy: contactInfo?.gatheringPolicy ?? .gatherOnce) - } - - - // MARK: Starting an outgoing call - - func startCall() async throws { - assert(direction == .outgoing) - guard internalState == .initial else { - os_log("☎️ Trying to start this call although it is not initial", log: log, type: .fault) - assertionFailure() - throw Self.makeError(message: "Trying to start this call although it is not initial") - } - await setCallState(to: .gettingTurnCredentials) - assert(outgoingCallDelegate != nil) - await outgoingCallDelegate?.turnCredentialsRequiredByOutgoingCall(outgoingCallUuidForWebRTC: uuidForWebRTC, forOwnedIdentity: ownedIdentityForRequestingTurnCredentials) - } - - - func setTurnCredentials(_ obvTurnCredentials: ObvTurnCredentials) async { - assert(direction == .outgoing) - let log = self.log - guard self.obvTurnCredentials == nil else { assertionFailure(); return } - self.obvTurnCredentials = obvTurnCredentials - - let callParticipants = self.callParticipants.map({ $0.callParticipant }) - - for callParticipant in callParticipants { - do { - try await callParticipant.setTurnCredentialsAndCreateUnderlyingPeerConnection(turnCredentials: obvTurnCredentials.turnCredentialsForRecipient) - } catch { - os_log("☎️ We failed to set the turn credentials for one of the call participants: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() // Continue anyway - } - usleep(300_000) // 300 ms, dirty trick, required to prevent a deadlock of the WebRTC library - } - await setCallState(to: .initializingCall) - } - - - func processAnswerCallJSON(callParticipant: CallParticipantImpl, _ answerCallMessage: AnswerCallJSON) async throws { - assert(direction == .outgoing) - let sessionDescription = RTCSessionDescription(type: answerCallMessage.sessionDescriptionType, sdp: answerCallMessage.sessionDescription) - try await callParticipant.setRemoteDescription(sessionDescription: sessionDescription) - } - - - /// This method gets called when the local user (as the caller) wants to add more participants in an ongoing outgoing call. - func processUserWantsToAddParticipants(contactIds: [OlvidUserId]) async throws { - - assert(direction == .outgoing) - - guard let turnCredentialsForRecipient = self.turnCredentialsForRecipient else { - throw Self.makeError(message: "No turn credentials for recipient") - } - - guard !contactIds.isEmpty else { return } - - let callIsMuted = await self.isMuted - - let contactIdsToAdd = contactIds - .filter({ $0.ownCryptoId == ownedIdentity }) - .filter({ getParticipant(remoteCryptoId: $0.remoteCryptoId) == nil }) // Remove contacts that are already in the call - - var callParticipantsToAdd = [CallParticipantImpl]() - for contactId in contactIdsToAdd { - let participant = await Self.createRecipient(contactId: contactId) - callParticipantsToAdd.append(participant) - } - - guard !callParticipantsToAdd.isEmpty else { return } - - let log = self.log - - for newCallParticipant in callParticipantsToAdd { - os_log("☎️ Adding a new participant", log: log, type: .info) - await addParticipant(callParticipant: newCallParticipant, report: true) - try? await newCallParticipant.setTurnCredentialsAndCreateUnderlyingPeerConnection(turnCredentials: turnCredentialsForRecipient) - if callIsMuted { - await newCallParticipant.mute() - } - } - - } - - - /// This method is called by the coordinator when receiving the notification that the caller wants to kick a participant of the call - func processUserWantsToKickParticipant(callParticipant: CallParticipant) async throws { - - assert(direction == .outgoing) - - guard let participant = callParticipants.first(where: { $0.remoteCryptoId == callParticipant.remoteCryptoId })?.callParticipant else { return } - - guard participant.role != .caller else { assertionFailure(); return } - - try await participant.setPeerState(to: .kicked) - - // Close the Connection - - do { - try await participant.closeConnection() - } catch { - os_log("☎️ Could not close connection with kicked participant: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - // Continue anyway - } - - // Send kick to the kicked participant - - let kickMessage = KickMessageJSON() - do { - try await sendWebRTCMessage(to: participant, innerMessage: kickMessage, forStartingCall: false) - } catch { - os_log("☎️ Could not send KickMessageJSON to kicked contact: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - // Continue anyway - } - - } - - - func initializeCall(contactIdentifier: String, handleValue: String) async throws { - assert(direction == .outgoing) - try await callManager.requestStartCallAction(call: self, contactIdentifier: contactIdentifier, handleValue: handleValue) - } - -} - - -extension Call { - - private func getOlvidUserIdFor(contactInfos: ContactBytesAndNameJSON) throws -> OlvidUserId { - let remoteCryptoId = try ObvCryptoId(identity: contactInfos.byteContactIdentity) - var contactId: OlvidUserId! - ObvStack.shared.performBackgroundTaskAndWait { (context) in - do { - if let identity = try PersistedObvContactIdentity.get(contactCryptoId: remoteCryptoId, ownedIdentityCryptoId: ownedIdentity, whereOneToOneStatusIs: .any, within: context), let ownedIdentity = identity.ownedIdentity, !identity.devices.isEmpty { - contactId = .known(contactObjectID: identity.typedObjectID, ownCryptoId: ownedIdentity.cryptoId, remoteCryptoId: identity.cryptoId, displayName: identity.fullDisplayName) - } - } catch { - assertionFailure() // Continue anyway - } - } - if let contactId = contactId { - return contactId - } else { - return .unknown(ownCryptoId: ownedIdentity, remoteCryptoId: remoteCryptoId, displayName: contactInfos.displayName) - } - } - -} - - - -private struct HashableCallParticipant: Hashable { - - let remoteCryptoId: ObvCryptoId - let callParticipant: CallParticipantImpl - - init(_ callParticipant: CallParticipantImpl) { - self.remoteCryptoId = callParticipant.remoteCryptoId - self.callParticipant = callParticipant - } - - static func == (lhs: HashableCallParticipant, rhs: HashableCallParticipant) -> Bool { - lhs.remoteCryptoId == rhs.remoteCryptoId - } - - func hash(into hasher: inout Hasher) { - hasher.combine(remoteCryptoId) - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Call/CallDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Call/CallDelegate.swift deleted file mode 100644 index 5014631f..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Call/CallDelegate.swift +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import Foundation -import ObvTypes -import ObvUICoreData - - -// MARK: - CallDelegate - -protocol CallDelegate: AnyObject { - - func processReceivedWebRTCMessage(messageType: WebRTCMessageJSON.MessageType, serializedMessagePayload: String, callIdentifier: UUID, contact: OlvidUserId, messageUploadTimestampFromServer: Date, messageIdentifierFromEngine: Data?) async - func processNewParticipantOfferMessageJSON(_ newParticipantOffer: NewParticipantOfferMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId, messageUploadTimestampFromServer: Date) async throws - static func report(call: Call, report: CallReport) - func newParticipantWasAdded(call: Call, callParticipant: CallParticipant) async - func callReachedFinalState(call: Call) async - func outgoingCallReachedReachedInProgressState(call: Call) async - func callOutOfBoundEnded(call: Call, reason: ObvCallEndedReason) async - -} - - -// MARK: - IncomingCallDelegate - -protocol IncomingCallDelegate: CallDelegate {} - - -// MARK: - OutgoingCallDelegate - -protocol OutgoingCallDelegate: CallDelegate { - func turnCredentialsRequiredByOutgoingCall(outgoingCallUuidForWebRTC: UUID, forOwnedIdentity ownedIdentityCryptoId: ObvCryptoId) async -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Call/GenericCall.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Call/GenericCall.swift deleted file mode 100644 index a6668c11..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Call/GenericCall.swift +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import Foundation -import ObvEngine -import ObvTypes - - -// MARK: - GenericCall protocol - -protocol GenericCall: AnyObject { - - var direction: CallDirection { get } - var uuid: UUID { get } - var usesCallKit: Bool { get } - - func getCallParticipants() async -> [CallParticipant] - - var state: CallState { get async } - func getStateDates() async -> [CallState: Date] - - var isMuted: Bool { get async } - - func userRequestedToToggleAudio() async - func userRequestedToEndCall() // Called from the Olvid UI when the user taps the end call button - func userRequestedToAnswerCall() async // Throws if called on anything else than an incoming call - - func userDidAnsweredIncomingCall() async -> Bool // Only makes sense for an incoming call - - var initialParticipantCount: Int { get } - -} - - -// MARK: - Call State - -enum CallState: Hashable, CustomDebugStringConvertible { - case initial - case userAnsweredIncomingCall - case gettingTurnCredentials // Only for outgoing calls - case initializingCall - case ringing - case callInProgress - - case hangedUp - case kicked - case callRejected - - case permissionDeniedByServer - case unanswered - case callInitiationNotSupported - case failed - - var debugDescription: String { - switch self { - case .kicked: return "kicked" - case .userAnsweredIncomingCall: return "userAnsweredIncomingCall" - case .gettingTurnCredentials: return "gettingTurnCredentials" - case .initializingCall: return "initializingCall" - case .ringing: return "ringing" - case .initial: return "initial" - case .callRejected: return "callRejected" - case .callInProgress: return "callInProgress" - case .hangedUp: return "hangedUp" - case .permissionDeniedByServer: return "permissionDeniedByServer" - case .unanswered: return "unanswered" - case .callInitiationNotSupported: return "callInitiationNotSupported" - case .failed: return "failed" - } - } - - var isFinalState: Bool { - switch self { - case .callRejected, .hangedUp, .unanswered, .callInitiationNotSupported, .kicked, .permissionDeniedByServer, .failed: return true - case .gettingTurnCredentials, .userAnsweredIncomingCall, .initializingCall, .ringing, .initial, .callInProgress: return false - } - } - - var localizedString: String { - switch self { - case .initial: return NSLocalizedString("CALL_STATE_NEW", comment: "") - case .gettingTurnCredentials: return NSLocalizedString("CALL_STATE_GETTING_TURN_CREDENTIALS", comment: "") - case .kicked: return NSLocalizedString("CALL_STATE_KICKED", comment: "") - case .userAnsweredIncomingCall, .initializingCall: return NSLocalizedString("CALL_STATE_INITIALIZING_CALL", comment: "") - case .ringing: return NSLocalizedString("CALL_STATE_RINGING", comment: "") - case .callRejected: return NSLocalizedString("CALL_STATE_CALL_REJECTED", comment: "") - case .callInProgress: return NSLocalizedString("SECURE_CALL_IN_PROGRESS", comment: "") - case .hangedUp: return NSLocalizedString("CALL_STATE_HANGED_UP", comment: "") - case .permissionDeniedByServer: return NSLocalizedString("CALL_STATE_PERMISSION_DENIED_BY_SERVER", comment: "") - case .unanswered: return NSLocalizedString("UNANSWERED", comment: "") - case .callInitiationNotSupported: return NSLocalizedString("CALL_INITIALISATION_NOT_SUPPORTED", comment: "") - case .failed: return NSLocalizedString("CALL_FAILED", comment: "") - } - } -} - - -enum CallDirection { - case incoming - case outgoing -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/CXCallController+CallControllerProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/CXCallController+CallControllerProtocol.swift new file mode 100644 index 00000000..0f1427ea --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/CXCallController+CallControllerProtocol.swift @@ -0,0 +1,24 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CallKit + + +extension CXCallController: CallControllerProtocol {} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/CallControllerHolder.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/CallControllerHolder.swift new file mode 100644 index 00000000..cf2234bd --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/CallControllerHolder.swift @@ -0,0 +1,38 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CallKit +import ObvSettings + + +final class CallControllerHolder { + + private let cxCallController = CXCallController() + private let nxCallController = NCXCallController() + + var callController: CallControllerProtocol { + ObvUICoreDataConstants.useCallKit ? cxCallController : nxCallController + } + + func setNCXCallControllerDelegate(_ delegate: NCXCallControllerDelegate) { + Task { await nxCallController.setDelegate(delegate) } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/CallControllerProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/CallControllerProtocol.swift new file mode 100644 index 00000000..034b110c --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/CallControllerProtocol.swift @@ -0,0 +1,30 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CallKit + + +protocol CallControllerProtocol { + + func request(_ transaction: CXTransaction) async throws + func requestTransaction(with action: CXAction) async throws + func requestTransaction(with actions: [CXAction]) async throws + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/NCXCallController.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/NCXCallController.swift new file mode 100644 index 00000000..4b0a681b --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallController/NCXCallController.swift @@ -0,0 +1,76 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CallKit + + +protocol NCXCallControllerDelegate: AnyObject { + func process(action: CXAction) async throws +} + + +actor NCXCallController: CallControllerProtocol { + + private weak var delegate: NCXCallControllerDelegate? + + func setDelegate(_ delegate: NCXCallControllerDelegate) { + self.delegate = delegate + } + + + func request(_ transaction: CXTransaction) async throws { + try await process(transaction.actions) + } + + + func requestTransaction(with action: CXAction) async throws { + try await process([action]) + } + + + func requestTransaction(with actions: [CXAction]) async throws { + try await process(actions) + } + +} + +// MARK: - Internal methods + +extension NCXCallController { + + private func process(_ actions: [CXAction]) async throws { + guard let delegate else { assertionFailure(); throw ObvError.delegateIsNil } + for action in actions { + try await delegate.process(action: action) + } + } + +} + + +// MARK: - Errors + +extension NCXCallController { + + enum ObvError: Error { + case delegateIsNil + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallKitSupport.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallKitSupport.swift deleted file mode 100644 index 06b89ab0..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallKitSupport.swift +++ /dev/null @@ -1,424 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import os.log -import CallKit -import AVKit - -class CXCallManager: ObvCallManager { - - var isCallKit: Bool { true } - - private let callController = CXCallController() - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: CXCallManager.self)) - - func requestEndCallAction(call: Call) async throws { - let endCallAction = CXEndCallAction(call: call.uuid) - let transaction = CXTransaction() - transaction.addAction(endCallAction) - try await requestTransaction(transaction) - } - - func requestAnswerCallAction(incomingCall: Call) async throws { - let answerCallAction = CXAnswerCallAction(call: incomingCall.uuid) - let transaction = CXTransaction() - transaction.addAction(answerCallAction) - try await requestTransaction(transaction) - } - - func requestMuteCallAction(call: Call) async throws { - let muteCallAction = CXSetMutedCallAction(call: call.uuid, muted: true) - let transaction = CXTransaction() - transaction.addAction(muteCallAction) - try await requestTransaction(transaction) - } - - func requestUnmuteCallAction(call: Call) async throws { - let muteCallAction = CXSetMutedCallAction(call: call.uuid, muted: false) - let transaction = CXTransaction() - transaction.addAction(muteCallAction) - try await requestTransaction(transaction) - } - - func requestStartCallAction(call: Call, contactIdentifier: String, handleValue: String) async throws { - let handle = CXHandle(type: .generic, value: handleValue) - - let startCallAction = CXStartCallAction(call: call.uuid, handle: handle) - startCallAction.contactIdentifier = contactIdentifier - - let transaction = CXTransaction() - transaction.addAction(startCallAction) - try await requestTransaction(transaction) - } - - - private func requestTransaction(_ transaction: CXTransaction) async throws { - os_log("☎️ Requesting transaction with %{public}d action(s). The first is: %{public}@", log: log, type: .error, transaction.actions.count, transaction.actions.first ?? "nil") - try await callController.request(transaction) - } - -} - -extension ObvHandleType { - var cxHandleType: CXHandle.HandleType { CXHandle.HandleType(rawValue: rawValue) ?? .generic } -} - -extension CXHandle.HandleType { - var obvHandleType: ObvHandleType { ObvHandleType(rawValue: rawValue) ?? .generic } -} - - -extension CXProviderConfiguration: ObvProviderConfiguration { - var supportedHandleTypes_: Set { - get { Set(supportedHandleTypes.map { $0.obvHandleType }) } - set { supportedHandleTypes = Set(newValue.map { $0.cxHandleType }) } - } -} - -extension ObvProviderConfiguration { - var cxProviderConfiguration: CXProviderConfiguration { - var configuration: CXProviderConfiguration - if #available(iOS 14.0, *) { - configuration = CXProviderConfiguration() - } else { - assert(localizedName != nil) - configuration = CXProviderConfiguration(localizedName: localizedName ?? "CXProviderConfiguration") - } - configuration.ringtoneSound = ringtoneSound - configuration.iconTemplateImageData = iconTemplateImageData - configuration.maximumCallGroups = maximumCallGroups - configuration.maximumCallsPerCallGroup = maximumCallsPerCallGroup - configuration.includesCallsInRecents = includesCallsInRecents - configuration.supportsVideo = supportsVideo - configuration.supportedHandleTypes_ = supportedHandleTypes_ - return configuration - } -} - -extension ObvCallEndedReason { - var cxReason: CXCallEndedReason { - switch self { - case .failed: return .failed - case .remoteEnded: return .remoteEnded - case .unanswered: return .unanswered - case .answeredElsewhere: return .answeredElsewhere - case .declinedElsewhere: return .declinedElsewhere - } - } - -} - -extension ObvErrorCodeRequestTransactionError { - var cxError: CXErrorCodeRequestTransactionError { - var code: CXErrorCodeRequestTransactionError.Code? - switch self { - case .unknown: code = .unknown - case .unentitled: code = .unentitled - case .unknownCallProvider: code = .unknownCallProvider - case .emptyTransaction: code = .emptyTransaction - case .unknownCallUUID: code = .unknownCallUUID - case .callUUIDAlreadyExists: code = .callUUIDAlreadyExists - case .invalidAction: code = .invalidAction - case .maximumCallGroupsReached: code = .maximumCallGroupsReached - } - return CXErrorCodeRequestTransactionError(code ?? .unknown) - } -} - -extension CXErrorCodeRequestTransactionError { - var obvError: ObvErrorCodeRequestTransactionError { - switch self.code { - case .unknown: return .unknown - case .unentitled: return .unentitled - case .unknownCallProvider: return .unknownCallProvider - case .emptyTransaction: return .emptyTransaction - case .unknownCallUUID: return .unknownCallUUID - case .callUUIDAlreadyExists: return .callUUIDAlreadyExists - case .invalidAction: return .invalidAction - case .maximumCallGroupsReached: return .maximumCallGroupsReached - @unknown default: assertionFailure(); return .unknown - } - } -} - -extension CXErrorCodeIncomingCallError { - var obvError: ObvErrorCodeIncomingCallError { - switch self.code { - case .unknown: return .unknown - case .unentitled: return .unentitled - case .callUUIDAlreadyExists: return .callUUIDAlreadyExists - case .filteredByDoNotDisturb: return .filteredByDoNotDisturb - case .filteredByBlockList: return .filteredByBlockList - @unknown default: return .unknown - } - } -} - -class CXObvProvider: ObvProvider { - - var isCallKit: Bool { true } - - private var provider: CXProvider - - init(configuration: ObvProviderConfiguration) { - self.provider = CXProvider(configuration: configuration.cxProviderConfiguration) - } - - /// Allows to keep a strong ref on delegate since setDelegate keeps a weak ref and CallKitProviderDelegate is a local variable - private var delegate: CXProviderDelegate? - - func setDelegate(_ delegate: ObvProviderDelegate?, queue: DispatchQueue?) { - self.delegate = CXObvProviderDelegate(delegate: delegate) - self.provider.setDelegate(self.delegate, queue: queue) - } - - func reportNewIncomingCall(with UUID: UUID, update: ObvCallUpdate, completion: @escaping (Result) -> Void) { - provider.reportNewIncomingCall(with: UUID, update: update.cxCallUpdate) { error in - if let error = error { - completion(.failure(error)) - } else { - completion(.success(())) - } - } - } - - func reportCall(with UUID: UUID, updated update: ObvCallUpdate) { - provider.reportCall(with: UUID, updated: update.cxCallUpdate) - } - - func reportCall(with UUID: UUID, endedAt dateEnded: Date?, reason endedReason: ObvCallEndedReason) { - provider.reportCall(with: UUID, endedAt: dateEnded, reason: endedReason.cxReason) - } - - func reportOutgoingCall(with UUID: UUID, startedConnectingAt dateStartedConnecting: Date?) { - provider.reportOutgoingCall(with: UUID, startedConnectingAt: dateStartedConnecting) - } - - func reportOutgoingCall(with UUID: UUID, connectedAt dateConnected: Date?) { - provider.reportOutgoingCall(with: UUID, connectedAt: dateConnected) - } - - var configuration_: ObvProviderConfiguration { - get { provider.configuration } - set { provider.configuration = newValue.cxProviderConfiguration } - } - - func invalidate() { - provider.invalidate() - } - - - func reportNewCancelledIncomingCall() { - let uuid = UUID() - let update = ObvCallUpdateImpl(remoteHandle_: nil, - localizedCallerName: "...", - supportsHolding: false, - supportsGrouping: false, - supportsUngrouping: false, - supportsDTMF: false, - hasVideo: false) - provider.reportNewIncomingCall(with: uuid, update: update.cxCallUpdate) { [weak self] _ in - self?.endReportedIncomingCall(with: uuid, inSeconds: 2) - } - } - - - func endReportedIncomingCall(with uuid: UUID, inSeconds: Int) { - let callController = CXCallController() - let endCallAction = CXEndCallAction(call: uuid) - let transaction = CXTransaction() - transaction.addAction(endCallAction) - DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(inSeconds)) { - Task { try await callController.request(transaction) } - } - } - -} - -extension CXHandle: ObvHandle { - var type_: ObvHandleType { type.obvHandleType } -} -extension ObvHandle { - var cxHandle: CXHandle { CXHandle(type: type_.cxHandleType, value: value) } -} - -extension CXCallUpdate: ObvCallUpdate { - var remoteHandle_: ObvHandle? { - get { remoteHandle } - set { remoteHandle = newValue?.cxHandle } - } -} -extension ObvCallUpdate { - var cxCallUpdate: CXCallUpdate { - let update = CXCallUpdate() - update.remoteHandle = remoteHandle_?.cxHandle - update.localizedCallerName = localizedCallerName - update.supportsHolding = supportsHolding - update.supportsGrouping = supportsGrouping - update.supportsUngrouping = supportsUngrouping - update.supportsDTMF = supportsDTMF - update.hasVideo = hasVideo - return update - } -} - - -extension CXStartCallAction: ObvStartCallAction { - var handle_: ObvHandle { self.handle } -} -extension CXAnswerCallAction: ObvAnswerCallAction { } -extension CXEndCallAction: ObvEndCallAction { } -extension CXSetHeldCallAction: ObvSetHeldCallAction { } -extension CXSetMutedCallAction: ObvSetMutedCallAction { } -extension CXPlayDTMFCallAction.ActionType { - var obvType: ObvPlayDTMFCallActionType { - switch self { - case .singleTone: return .singleTone - case .softPause: return .softPause - case .hardPause: return .hardPause - @unknown default: return .unknown - } - } -} -extension CXPlayDTMFCallAction: ObvPlayDTMFCallAction { - var type_: ObvPlayDTMFCallActionType { type.obvType } -} -class CXObvProviderDelegate: NSObject, CXProviderDelegate { - - let delegate: ObvProviderDelegate? - - init(delegate: ObvProviderDelegate?) { - self.delegate = delegate - super.init() - } - - func providerDidBegin(_ provider: CXProvider) { - Task { [weak self] in await self?.delegate?.providerDidBegin() } - } - func providerDidReset(_ provider: CXProvider) { - Task { [weak self] in await self?.delegate?.providerDidReset() } - } - func provider(_ provider: CXProvider, perform action: CXStartCallAction) { - guard let delegate = delegate else { assertionFailure(); action.fail(); return } - Task { await delegate.provider(perform: action) } - } - func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) { - guard let delegate = delegate else { assertionFailure(); action.fail(); return } - Task { await delegate.provider(perform: action) } - } - func provider(_ provider: CXProvider, perform action: CXEndCallAction) { - guard let delegate = delegate else { assertionFailure(); action.fail(); return } - Task { await delegate.provider(perform: action) } - } - func provider(_ provider: CXProvider, perform action: CXSetHeldCallAction) { - Task { [weak self] in await self?.delegate?.provider(perform: action) } - } - func provider(_ provider: CXProvider, perform action: CXSetMutedCallAction) { - Task { [weak self] in await self?.delegate?.provider(perform: action) } - } - func provider(_ provider: CXProvider, perform action: CXPlayDTMFCallAction) { - Task { [weak self] in await self?.delegate?.provider(perform: action) } - } - func provider(_ provider: CXProvider, timedOutPerforming action: CXAction) { - if let obvAction = action as? ObvAction { - Task { [weak self] in await self?.delegate?.provider(timedOutPerforming: obvAction) } - } else { - assertionFailure() - action.fail() - } - } - func provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession) { - Task { [weak self] in await self?.delegate?.provider(didActivate: audioSession) } - } - func provider(_ provider: CXProvider, didDeactivate audioSession: AVAudioSession) { - Task { [weak self] in await self?.delegate?.provider(didDeactivate: audioSession) } - } -} - -extension CXCall: ObvCall { } - -class CXObvCallObserverDelegate: NSObject, CXCallObserverDelegate { - - let delegate: ObvCallObserverDelegate? - - init(delegate: ObvCallObserverDelegate?) { - self.delegate = delegate - super.init() - } - func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) { - delegate?.callObserver(callChanged: call) - } -} - -class CXObvCallObserver: CXCallObserver, ObvCallObserver { - var calls_: [ObvCall] { calls } - - private var delegate: CXObvCallObserverDelegate? - - func setDelegate(_ delegate: ObvCallObserverDelegate?, queue: DispatchQueue?) { - self.delegate = CXObvCallObserverDelegate(delegate: delegate) - super.setDelegate(self.delegate, queue: queue) - } - -} - -/// CXCallObserverDelegate Exemple -class CXCallObserverTest: NSObject, CXCallObserverDelegate { - - private let callObserver = CXObvCallObserver() - - override init() { - super.init() - callObserver.setDelegate(self, queue: DispatchQueue.main) - } - - func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) { - print("☎️ CX Observe call changed uuid=", call.uuid, " isOutgoing=", call.isOutgoing, " isOnHold=", call.isOnHold, " hasConnected=", call.hasConnected, " hasEnded=", call.hasEnded) - print("☎️ CX Number of ObvCall=", callObserver.calls.count) - } -} - - - -// MARK: - ObvErrorCodeRequestTransactionError - -enum ObvErrorCodeRequestTransactionError: Int { - case unknown = 0 - case unentitled = 1 - case unknownCallProvider = 2 - case emptyTransaction = 3 - case unknownCallUUID = 4 - case callUUIDAlreadyExists = 5 - case invalidAction = 6 - case maximumCallGroupsReached = 7 - - var localizedDescription: String { - switch self { - case .unknown: return "unknown" - case .unentitled: return "unentitled" - case .unknownCallProvider: return "unknownCallProvider" - case .emptyTransaction: return "emptyTransaction" - case .unknownCallUUID: return "unknownCallUUID" - case .callUUIDAlreadyExists: return "callUUIDAlreadyExists" - case .invalidAction: return "invalidAction" - case .maximumCallGroupsReached: return "maximumCallGroupsReached" - } - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallManager.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallManager.swift deleted file mode 100644 index 64f8aca2..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallManager.swift +++ /dev/null @@ -1,1347 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import os.log -import CoreData -import ObvTypes -import ObvEngine -import PushKit -import AVKit -import WebRTC -import OlvidUtils -import ObvCrypto -import ObvUICoreData - - -final actor CallManager: ObvErrorMaker { - - static let errorDomain = "CallManager" - private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: CallManager.self)) - - private let pushRegistryHandler: ObvPushRegistryHandler - - private var continuationsWaitingForCallKitVoIPNotification = [Data: CheckedContinuation]() - private var filteredIncomingCalls = [UUID]() - private var currentCalls = [Call]() - private var messageIdentifiersFromEngineOfRecentlyDeletedIncomingCalls = [Data]() - private var currentIncomingCalls: [Call] { currentCalls.filter({ $0.direction == .incoming }) } - private var currentOutgoingCalls: [Call] { currentCalls.filter({ $0.direction == .outgoing }) } - private var remotelyHangedUpCalls = Set() - - private var receivedIceCandidates = [UUID: [(IceCandidateJSON, OlvidUserId)]]() - - /// This array allows to make sure we do not process the same `StartCallMessageJSON` twice. This is required as this message may be received twice. - private var messageIdentifierFromEngineFromProcessingStartCallMessage = Set() - - /// When receiving a pushkit notification, we do not immediately create a call like we used to do in previous versions of this framework. - /// Instead, we add an element to this dictionary, indexed by message Ids from the engine. The values are UUID to use with CallKit and when creating the (incoming) call instance - private var receivedCallKitVoIPNotifications = [Data: UUID]() - - private let obvEngine: ObvEngine - private var notificationTokens = [NSObjectProtocol]() - - private let cxProvider: CXObvProvider - private let ncxProvider: NCXObvProvider - - private func provider(isCallKit: Bool) -> ObvProvider { - RTCAudioSession.sharedInstance().useManualAudio = isCallKit - return isCallKit ? cxProvider : ncxProvider - } - - init(obvEngine: ObvEngine) { - let cxProvider = CXObvProvider(configuration: CallManager.providerConfiguration) - let ncxProvider = NCXObvProvider.instance - self.obvEngine = obvEngine - self.cxProvider = cxProvider - self.ncxProvider = ncxProvider - self.pushRegistryHandler = ObvPushRegistryHandler(obvEngine: obvEngine, cxObvProvider: cxProvider) - ncxProvider.setConfiguration(CallManager.providerConfiguration) - cxProvider.setDelegate(self, queue: nil) - ncxProvider.setDelegate(self, queue: nil) - } - - deinit { - notificationTokens.forEach { NotificationCenter.default.removeObserver($0) } - } - - private let queueForPostingNotifications = DispatchQueue(label: "Call queue for posting notifications") - - - func performPostInitialization() { - listenToNotifications() - /// Force provider initialization - _ = provider(isCallKit: ObvMessengerSettings.VoIP.isCallKitEnabled) - pushRegistryHandler.registerForVoIPPushes(delegate: self) - } - - - /// The app's provider configuration, representing its CallKit capabilities - private static var providerConfiguration: ObvProviderConfiguration { - let localizedName = NSLocalizedString("Olvid", comment: "Name of application") - var providerConfiguration = ObvProviderConfigurationImpl(localizedName: localizedName) - providerConfiguration.supportsVideo = false - providerConfiguration.maximumCallGroups = 1 - providerConfiguration.maximumCallsPerCallGroup = 1 - providerConfiguration.supportedHandleTypes_ = [.generic] - providerConfiguration.includesCallsInRecents = ObvMessengerSettings.VoIP.isIncludesCallsInRecentsEnabled - providerConfiguration.iconTemplateImageData = UIImage(named: "olvid-callkit-logo")?.pngData() - return providerConfiguration - } - - - func applicationAppearedOnScreen(forTheFirstTime: Bool) async { - for call in currentIncomingCalls { - guard await !call.state.isFinalState else { return } - VoIPNotification.anIncomingCallShouldBeShownToUser(newIncomingCall: call) - .postOnDispatchQueue(queueForPostingNotifications) - return - } - } - - - private func listenToNotifications() { - - // VoIP notifications - - notificationTokens.append(contentsOf: [ - VoIPNotification.observeUserWantsToKickParticipant { (call, callParticipant) in - Task { [weak self] in await self?.processUserWantsToKickParticipant(call: call, callParticipant: callParticipant) } - }, - VoIPNotification.observeUserWantsToAddParticipants { [weak self] (call, contactIds) in - Task { [weak self] in await self?.processUserWantsToAddParticipants(call: call, contactIds: contactIds) } - }, - ]) - - // Internal notifications - - notificationTokens.append(contentsOf: [ - ObvMessengerInternalNotification.observeNewWebRTCMessageWasReceived { (webrtcMessage, contactId, messageUploadTimestampFromServer, messageIdentifierFromEngine) in - Task { [weak self] in - await self?.processReceivedWebRTCMessage(messageType: webrtcMessage.messageType, - serializedMessagePayload: webrtcMessage.serializedMessagePayload, - callIdentifier: webrtcMessage.callIdentifier, - contact: contactId, - messageUploadTimestampFromServer: messageUploadTimestampFromServer, - messageIdentifierFromEngine: messageIdentifierFromEngine) - } - }, - ObvMessengerInternalNotification.observeUserWantsToCallAndIsAllowedTo { (contactIds, ownedIdentityForRequestingTurnCredentials, groupId) in - Task { [weak self] in await self?.processUserWantsToCallNotification(contactIds: contactIds, ownedIdentityForRequestingTurnCredentials: ownedIdentityForRequestingTurnCredentials, groupId: groupId) } - }, - ObvMessengerInternalNotification.observeNetworkInterfaceTypeChanged { [weak self] (isConnected) in - Task { [weak self] in await self?.processNetworkStatusChangedNotification(isConnected: isConnected) } - }, - ObvMessengerInternalNotification.observeIsCallKitEnabledSettingDidChange { [weak self] in - Task { [weak self] in await self?.processIsCallKitEnabledSettingDidChangeNotification() } - }, - ObvMessengerInternalNotification.observeIsIncludesCallsInRecentsEnabledSettingDidChange { [weak self] in - Task { [weak self] in await self?.processIsIncludesCallsInRecentsEnabledSettingDidChangeNotification() } - }, - ]) - - // Engine notifications - - notificationTokens.append(contentsOf: [ - ObvEngineNotificationNew.observeCallerTurnCredentialsReceived(within: NotificationCenter.default) { [weak self] (ownedIdentity, callUuid, turnCredentials) in - Task { [weak self] in await self?.processCallerTurnCredentialsReceivedNotification(ownedIdentity: ownedIdentity, uuidForWebRTC: callUuid, turnCredentials: turnCredentials) } - }, - ObvEngineNotificationNew.observeCallerTurnCredentialsReceptionFailure(within: NotificationCenter.default) { [weak self] (ownedIdentity, callUuid) in - Task { [weak self] in await self?.processCallerTurnCredentialsReceptionFailureNotification(ownedIdentity: ownedIdentity, uuidForWebRTC: callUuid) } - }, - ObvEngineNotificationNew.observeCallerTurnCredentialsReceptionPermissionDenied(within: NotificationCenter.default) { [weak self] (ownedIdentity, callUuid) in - Task { [weak self] in await self?.processCallerTurnCredentialsReceptionPermissionDeniedNotification(ownedIdentity: ownedIdentity, uuidForWebRTC: callUuid) } - }, - ObvEngineNotificationNew.observeCallerTurnCredentialsServerDoesNotSupportCalls(within: NotificationCenter.default) { [weak self] (ownedIdentity, callUuid) in - Task { [weak self] in await self?.processTurnCredentialsServerDoesNotSupportCalls(ownedIdentity: ownedIdentity, uuidForWebRTC: callUuid) } - }, - ]) - } - - - private func addCallToCurrentCalls(call: Call) async throws { - let callState = await call.state - assert(callState == .initial) - os_log("☎️ Adding call to the list of current calls", log: Self.log, type: .info) - - assert(currentCalls.first(where: { $0.uuid == call.uuid }) == nil, "Trying to add a call that already exists in the list of current calls") - currentCalls.append(call) - - switch call.direction { - case .outgoing: - VoIPNotification.newOutgoingCall(newOutgoingCall: call) - .postOnDispatchQueue(queueForPostingNotifications) - case .incoming: - VoIPNotification.newIncomingCall(newIncomingCall: call) - .postOnDispatchQueue(queueForPostingNotifications) - } - - } - - - private func removeCallFromCurrentCalls(call: Call) async throws { - os_log("☎️ Removing call from the list of current calls", log: Self.log, type: .info) - let callState = await call.state - assert(callState.isFinalState) - - currentCalls.removeAll(where: { $0.uuid == call.uuid }) - if currentCalls.isEmpty { - // Yes, we need to make sure the calls are properly freed... - currentCalls = [] - } - if call.direction == .incoming { - assert(call.messageIdentifierFromEngine != nil) - if let messageIdentifierFromEngine = call.messageIdentifierFromEngine { - messageIdentifiersFromEngineOfRecentlyDeletedIncomingCalls.append(messageIdentifierFromEngine) - } - } - if let newCall = currentCalls.first { - let newCallState = await newCall.state - assert(!newCallState.isFinalState) - VoIPNotification.callHasBeenUpdated(callUUID: newCall.uuid, updateKind: .state(newState: newCallState)) - .postOnDispatchQueue(queueForPostingNotifications) - } else { - VoIPNotification.noMoreCallInProgress - .postOnDispatchQueue(queueForPostingNotifications) - } - receivedIceCandidates[call.uuidForWebRTC] = nil - } - - - private func createOutgoingCall(contactIds: [OlvidUserId], ownedIdentityForRequestingTurnCredentials: ObvCryptoId, groupId: GroupIdentifierBasedOnObjectID?) async throws -> Call { - let outgoingCall = try await Call.createOutgoingCall(contactIds: contactIds, - ownedIdentityForRequestingTurnCredentials: ownedIdentityForRequestingTurnCredentials, - delegate: self, - usesCallKit: ObvMessengerSettings.VoIP.isCallKitEnabled, - groupId: groupId, - queueForPostingNotifications: queueForPostingNotifications) - try await addCallToCurrentCalls(call: outgoingCall) - assert(outgoingCall.direction == .outgoing) - return outgoingCall - } - -} - - -// MARK: - Processing notifications - -extension CallManager { - - private func processIsCallKitEnabledSettingDidChangeNotification() { - // Force provider initialization - _ = provider(isCallKit: ObvMessengerSettings.VoIP.isCallKitEnabled) - } - - - private func processIsIncludesCallsInRecentsEnabledSettingDidChangeNotification() { - let provider = self.provider(isCallKit: ObvMessengerSettings.VoIP.isCallKitEnabled) - var configuration = provider.configuration_ - configuration.includesCallsInRecents = ObvMessengerSettings.VoIP.isIncludesCallsInRecentsEnabled - provider.configuration_ = configuration - } - - - private func processNetworkStatusChangedNotification(isConnected: Bool) async { - os_log("☎️ Processing a network status changed notification", log: Self.log, type: .info) - await withTaskGroup(of: Void.self) { taskGroup in - for call in currentCalls { - taskGroup.addTask { - do { - try await call.restartIceIfAppropriate() - } catch { - os_log("☎️ Could not restart ICE after a network status change: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - assertionFailure() - } - } - } - } - } - - - private func processCallerTurnCredentialsReceptionFailureNotification(ownedIdentity: ObvCryptoId, uuidForWebRTC: UUID) async { - os_log("☎️ Processing a CallerTurnCredentialsReceptionFailure notification", log: Self.log, type: .fault) - guard let call = currentOutgoingCalls.first(where: { $0.uuidForWebRTC == uuidForWebRTC }) else { return } - await call.endCallAsPermissionWasDeniedByServer() - } - - - private func processCallerTurnCredentialsReceptionPermissionDeniedNotification(ownedIdentity: ObvCryptoId, uuidForWebRTC: UUID) async { - os_log("☎️ Processing a CallerTurnCredentialsReceptionPermissionDenied notification", log: Self.log, type: .fault) - guard let call = currentOutgoingCalls.first(where: { $0.uuidForWebRTC == uuidForWebRTC }) else { return } - await call.endCallAsPermissionWasDeniedByServer() - } - - - private func processTurnCredentialsServerDoesNotSupportCalls(ownedIdentity: ObvCryptoId, uuidForWebRTC: UUID) async { - os_log("☎️ Processing a TurnCredentialsServerDoesNotSupportCalls notification", log: Self.log, type: .fault) - guard let call = currentOutgoingCalls.first(where: { $0.uuidForWebRTC == uuidForWebRTC }) else { return } - await call.endCallAsInitiationNotSupported() - VoIPNotification.serverDoesNotSupportCall - .postOnDispatchQueue(queueForPostingNotifications) - } - - - /// This method is called when receiving the credentials allowing to make an outgoing call. At this point, the outgoing call has already been created and is waiting for these credentials. - /// Under the hood, the caller has a peer connection holder which of the call participants, but these connection holders do *not* have a WebRTC peer connection yet. - /// Setting the credentials will create these peer connections. - private func processCallerTurnCredentialsReceivedNotification(ownedIdentity: ObvCryptoId, uuidForWebRTC: UUID, turnCredentials: ObvTurnCredentials) async { - let currentOutgoingCalls = self.currentCalls.filter({ $0.direction == .outgoing }) - guard let outgoingCall = currentOutgoingCalls.first(where: { $0.uuidForWebRTC == uuidForWebRTC }) else { return } - await outgoingCall.setTurnCredentials(turnCredentials) - } - -} - - - -// MARK: - ObvPushRegistryHandlerDelegate - -extension CallManager: ObvPushRegistryHandlerDelegate { - - /// When using CallKit, we always wait until the pushkit notification is received before creating an incoming call. - /// When we receive it, we do not create an "empty" call instance like we used to do in previous versions of the framework. - /// Instead, we simply add an element to the `receivedCallKitVoIPNotifications` dictionary. - /// This essentially is what this method is about. - func successfullyReportedNewIncomingCallToCallKit(uuidForCallKit: UUID, messageIdentifierFromEngine: Data) async { - - // If the incoming call was recently deleted, we just dismiss the CallKit UI (that we just showed) and terminate. - - guard !messageIdentifiersFromEngineOfRecentlyDeletedIncomingCalls.contains(messageIdentifierFromEngine) else { - cxProvider.endReportedIncomingCall(with: uuidForCallKit, inSeconds: 2) - return - } - - // Add an entry to the receivedCallKitVoIPNotifications array - - assert(receivedCallKitVoIPNotifications[messageIdentifierFromEngine] == nil) - receivedCallKitVoIPNotifications[messageIdentifierFromEngine] = uuidForCallKit - - // We may have already received a start call message (in case we are in a CallKit scenario and the WebSocket was faster than the VoIP notification) - // In that situation, we know the StartCall processing method is waiting that the VoIP push notification is received before creating the incoming call and adding it to the list of current call. - // The following two lines allows to "unblock" the start call processing method. - - if let continuation = continuationsWaitingForCallKitVoIPNotification.removeValue(forKey: messageIdentifierFromEngine) { - continuation.resume(returning: uuidForCallKit) - } - - } - - - func failedToReportNewIncomingCallToCallKit(callUUID: UUID, error: Error) async { - - let incomingCallError = ObvErrorCodeIncomingCallError(rawValue: (error as NSError).code) ?? .unknown - switch incomingCallError { - case .unknown, .unentitled, .callUUIDAlreadyExists, .maximumCallGroupsReached: - os_log("☎️ reportNewIncomingCall failed -> ending call: %{public}@", log: Self.log, type: .error, error.localizedDescription) - assertionFailure() - case .filteredByDoNotDisturb, .filteredByBlockList: - os_log("☎️ reportNewIncomingCall filtered (busy/blocked) -> set call has been filtered", log: Self.log, type: .info) - filteredIncomingCalls.append(callUUID) - } - - } - -} - - - -// MARK: - Processing received WebRTC messages - -extension CallManager { - - internal func processReceivedWebRTCMessage(messageType: WebRTCMessageJSON.MessageType, serializedMessagePayload: String, callIdentifier: UUID, contact: OlvidUserId, messageUploadTimestampFromServer: Date, messageIdentifierFromEngine: Data?) async { - if case .hangedUp = messageType { - os_log("☎️🛑 We received %{public}@ message", log: Self.log, type: .info, messageType.description) - } else { - os_log("☎️ We received %{public}@ message", log: Self.log, type: .info, messageType.description) - } - do { - switch messageType { - - case .startCall: - let startCallMessage = try StartCallMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) - guard let messageIdentifierFromEngine = messageIdentifierFromEngine else { assertionFailure(); return } - try await processStartCallMessage(startCallMessage, - uuidForWebRTC: callIdentifier, - userId: contact, - messageUploadTimestampFromServer: messageUploadTimestampFromServer, - messageIdentifierFromEngine: messageIdentifierFromEngine) - - case .answerCall: - let answerCallMessage = try AnswerCallJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) - try await processAnswerCallMessage(answerCallMessage, uuidForWebRTC: callIdentifier, contact: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) - - case .rejectCall: - let rejectCallMessage = try RejectCallMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) - try await processRejectCallMessage(rejectCallMessage, uuidForWebRTC: callIdentifier, contact: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) - - case .hangedUp: - let hangedUpMessage = try HangedUpMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) - try await processHangedUpMessage(hangedUpMessage, uuidForWebRTC: callIdentifier, contact: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) - - case .ringing: - _ = try RingingMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) - try await processRingingMessageJSON(uuidForWebRTC: callIdentifier, contact: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) - - case .busy: - _ = try BusyMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) - try await processBusyMessageJSON(uuidForWebRTC: callIdentifier, contact: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) - - case .reconnect: - let reconnectCallMessage = try ReconnectCallMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) - try await processReconnectCallMessageJSON(reconnectCallMessage, uuidForWebRTC: callIdentifier, contact: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) - - case .newParticipantAnswer: - let newParticipantAnswer = try NewParticipantAnswerMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) - try await processNewParticipantAnswerMessageJSON(newParticipantAnswer, uuidForWebRTC: callIdentifier, contact: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) - - case .newParticipantOffer: - let newParticipantOffer = try NewParticipantOfferMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) - try await processNewParticipantOfferMessageJSON(newParticipantOffer, uuidForWebRTC: callIdentifier, contact: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) - - case .kick: - let kickMessage = try KickMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) - try await processKickMessageJSON(kickMessage, uuidForWebRTC: callIdentifier, contact: contact, messageUploadTimestampFromServer: messageUploadTimestampFromServer) - - case .newIceCandidate: - os_log("☎️❄️ We received new ICE Candidate message: %{public}@", log: Self.log, type: .info, messageType.description) - let iceCandidate = try IceCandidateJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) - try await processIceCandidateMessage(message: iceCandidate, uuidForWebRTC: callIdentifier, contact: contact) - - case .removeIceCandidates: - let removeIceCandidatesMessage = try RemoveIceCandidatesMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) - try await processRemoveIceCandidatesMessage(message: removeIceCandidatesMessage, uuidForWebRTC: callIdentifier, contact: contact) - - } - } catch { - os_log("☎️ Could not parse or process the WebRTCMessageJSON: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - } - } - - - /// This method processes a received StartCallMessageJSON. In case we use CallKit and Olvid is in the background, this message is probably first received first within a PushKit notification, that gets decrypted very fast, which eventually triggers this method. Note that - /// since decrypting a notification does *not* delete the decryption key, it almost certain that this method will get called a second time: the message will be fetched from the server, decrypted as usual, which eventually triggers this method again. - private func processStartCallMessage(_ startCallMessage: StartCallMessageJSON, uuidForWebRTC: UUID, userId: OlvidUserId, messageUploadTimestampFromServer: Date, messageIdentifierFromEngine: Data) async throws { - - // If the call was already terminated, discard this message - - guard !remotelyHangedUpCalls.contains(uuidForWebRTC) else { - return - } - - // If the StartCallMessageJSON was already received (i.e., we are processing it already), we do nothing. This can happen when decrypting the VoIP notification first (when using CallKit), then receiving the start call message via the network. In that case, we can receive the start call message twice. We only consider the first occurence. - - guard !messageIdentifierFromEngineFromProcessingStartCallMessage.contains(messageIdentifierFromEngine) && currentIncomingCalls.first(where: { $0.messageIdentifierFromEngine == messageIdentifierFromEngine }) == nil else { - os_log("☎️ We already received this start call message (which can occur when using CallKit). We discard this one.", log: Self.log, type: .info) - return - } - - messageIdentifierFromEngineFromProcessingStartCallMessage.insert(messageIdentifierFromEngine) - - // We check that the `StartCallMessageJSON` is not too old. If this is the case, we ignore it - - let timeInterval = Date().timeIntervalSince(messageUploadTimestampFromServer) // In seconds - guard timeInterval < Call.acceptableTimeIntervalForStartCallMessages else { - os_log("☎️ We received an old StartCallMessageJSON, uploaded %{timeInterval}f seconds ago on the server. We ignore it.", log: Self.log, type: .info, timeInterval) - return - } - - os_log("☎️ We received a fresh StartCallMessageJSON, uploaded %{timeInterval}f seconds ago on the server.", log: Self.log, type: .info, timeInterval) - - // In the CallKit case, we are not in charge of inserting the incoming call in the `currentIncomingCalls` array. - // In that case, we wait until this is done. - // In the non-CallKit case, we are in charge and we insert it right away. - - let useCallKit = ObvMessengerSettings.VoIP.isCallKitEnabled - let callUUID: UUID - if useCallKit { - callUUID = await waitUntilCallKitVoIPIsReceived(messageIdentifierFromEngine: messageIdentifierFromEngine) - } else { - callUUID = UUID() - } - let incomingCall = await Call.createIncomingCall(uuid: callUUID, - startCallMessage: startCallMessage, - contactId: userId, - uuidForWebRTC: uuidForWebRTC, - messageIdentifierFromEngine: messageIdentifierFromEngine, - messageUploadTimestampFromServer: messageUploadTimestampFromServer, - delegate: self, - useCallKit: useCallKit, - queueForPostingNotifications: queueForPostingNotifications) - - // After the following line, currentIncomingCalls.first(where: { $0.messageIdentifierFromEngine == messageIdentifierFromEngine }) will be not nil. - // This is important for the test made at the beginning of this method. - // Consequently, we can remove the corresponding entry from the messageIdentifierFromEngineFromProcessingStartCallMessage array. - try await addCallToCurrentCalls(call: incomingCall) - - messageIdentifierFromEngineFromProcessingStartCallMessage.remove(messageIdentifierFromEngine) - - assert(incomingCall.direction == .incoming) - - // Now that we know for sure that the incoming call is part of the current calls, we can process the - // ICE candidates we may already have received - - for (iceCandidate, contact) in receivedIceCandidates[incomingCall.uuidForWebRTC] ?? [] { - os_log("☎️❄️ Process pending remote IceCandidateJSON message", log: Self.log, type: .info) - try? await incomingCall.processIceCandidatesJSON(iceCandidate: iceCandidate, participantId: contact) - } - receivedIceCandidates[incomingCall.uuidForWebRTC] = nil - - // Finish the processing - - if incomingCall.usesCallKit { - - guard !filteredIncomingCalls.contains(where: { $0 == incomingCall.uuid }) else { - os_log("☎️ processStartCallMessage: end the filtered call", log: Self.log, type: .info) - await incomingCall.endCallAsReportingAnIncomingCallFailed(error: .filteredByDoNotDisturb) - return - } - - // Update the CallKit UI - - let callUpdate = await ObvCallUpdateImpl.make(with: incomingCall) - self.provider(isCallKit: true).reportCall(with: incomingCall.uuid, updated: callUpdate) - - // Send the ringing message - - await sendRingingMessageToCaller(forIncomingCall: incomingCall) - - } else { - - await provider(isCallKit: false).reportNewIncomingCall(with: incomingCall.uuid, update: ObvCallUpdateImpl.make(with: incomingCall)) { result in - Task { [weak self] in - guard let _self = self else { return } - switch result { - case .failure(let error): - let incomingCallError = ObvErrorCodeIncomingCallError(rawValue: (error as NSError).code) ?? .unknown - switch incomingCallError { - case .unknown, .unentitled, .callUUIDAlreadyExists, .filteredByDoNotDisturb, .filteredByBlockList: - os_log("☎️ reportNewIncomingCall failed -> ending call", log: Self.log, type: .error) - case .maximumCallGroupsReached: - os_log("☎️ reportNewIncomingCall maximumCallGroupsReached -> ending call", log: Self.log, type: .error) - await Self.report(call: incomingCall, report: .missedIncomingCall(caller: incomingCall.callerCallParticipant?.info, participantCount: startCallMessage.participantCount)) - } - await incomingCall.endCallAsReportingAnIncomingCallFailed(error: incomingCallError) - case .success: - VoIPNotification.showCallViewControllerForAnsweringNonCallKitIncomingCall(incomingCall: incomingCall) - .postOnDispatchQueue(_self.queueForPostingNotifications) - await self?.sendRingingMessageToCaller(forIncomingCall: incomingCall) - } - } - } - - } - - } - - - /// In case we use CallKit, we insert a call in the `currentCalls` array when receiving the start call message, not when receiving the VoIP notification. - /// Yet, in the case we use CallKit, we first need to wait until we receive a CallKit VoIP notification. The fact that we received this notification - /// is materialized by the insertion of a new element in the `receivedCallKitVoIPNotifications` dictionary, and the "start call message" - /// processing method waits until this event occurs. - /// This method (using a patern based on async/await continuations) allows to do just that. To make it work, we must resume the continuation - /// stored in the `continuationsWaitingForCallKitVoIPNotification` array at the time we add an element in the `receivedCallKitVoIPNotifications` array. - private func waitUntilCallKitVoIPIsReceived(messageIdentifierFromEngine: Data) async -> UUID { - if let uuidForCallKit = receivedCallKitVoIPNotifications[messageIdentifierFromEngine] { - return uuidForCallKit - } - return await withCheckedContinuation { (continuation: CheckedContinuation) in - Task { - if let uuidForCallKit = receivedCallKitVoIPNotifications[messageIdentifierFromEngine] { - continuation.resume(returning: uuidForCallKit) - } else { - assert(continuationsWaitingForCallKitVoIPNotification[messageIdentifierFromEngine] == nil) - continuationsWaitingForCallKitVoIPNotification[messageIdentifierFromEngine] = continuation - } - } - } - } - - - private func processAnswerCallMessage(_ answerCallMessage: AnswerCallJSON, uuidForWebRTC: UUID, contact: OlvidUserId, messageUploadTimestampFromServer: Date) async throws { - guard let outgoingCall = currentOutgoingCalls.first(where: { $0.uuidForWebRTC == uuidForWebRTC }) else { return } - guard let participant = await outgoingCall.getParticipant(remoteCryptoId: contact.remoteCryptoId) else { return } - provider(isCallKit: outgoingCall.usesCallKit).reportOutgoingCall(with: outgoingCall.uuid, startedConnectingAt: nil) - do { - try await outgoingCall.processAnswerCallJSON(callParticipant: participant, answerCallMessage) - } catch { - os_log("Could not set remote description -> ending call", log: Self.log, type: .fault) - try await participant.closeConnection() - assertionFailure() - throw error - } - Self.report(call: outgoingCall, report: .acceptedOutgoingCall(from: participant.info)) - } - - - private func processRejectCallMessage(_ rejectCallMessage: RejectCallMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId, messageUploadTimestampFromServer: Date) async throws { - guard let call = currentCalls.filter({ $0.uuidForWebRTC == uuidForWebRTC }).first else { return } - guard let participant = await call.getParticipant(remoteCryptoId: contact.remoteCryptoId) else { return } - guard call.direction == .outgoing else { return } - let participantState = await participant.getPeerState() - guard [.startCallMessageSent, .ringing].contains(participantState) else { return } - - try await participant.setPeerState(to: .callRejected) - Self.report(call: call, report: .rejectedOutgoingCall(from: participant.info)) - } - - - private func processHangedUpMessage(_ hangedUpMessage: HangedUpMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId, messageUploadTimestampFromServer: Date) async throws { - guard let call = currentCalls.filter({ $0.uuidForWebRTC == uuidForWebRTC }).first else { - remotelyHangedUpCalls.insert(uuidForWebRTC) - return - } - let callStateIsInitial = await call.state == .initial - if call.direction == .incoming && callStateIsInitial { - await Self.report(call: call, report: .missedIncomingCall(caller: call.callerCallParticipant?.info, participantCount: call.initialParticipantCount)) - } - try await call.callParticipantDidHangUp(participantId: contact) - } - - - private func processBusyMessageJSON(uuidForWebRTC: UUID, contact: OlvidUserId, messageUploadTimestampFromServer: Date) async throws { - guard let call = currentCalls.filter({ $0.uuidForWebRTC == uuidForWebRTC }).first else { return } - guard let participant = await call.getParticipant(remoteCryptoId: contact.remoteCryptoId) else { return } - guard await participant.getPeerState() == .startCallMessageSent else { return } - - try await participant.setPeerState(to: .busy) - Self.report(call: call, report: .busyOutgoingCall(from: participant.info)) - } - - - private func processRingingMessageJSON(uuidForWebRTC: UUID, contact: OlvidUserId, messageUploadTimestampFromServer: Date) async throws { - guard let outgoingCall = currentOutgoingCalls.first(where: { $0.uuidForWebRTC == uuidForWebRTC }) else { return } - guard let participant = await outgoingCall.getParticipant(remoteCryptoId: contact.remoteCryptoId) else { return } - guard await participant.getPeerState() == .startCallMessageSent else { return } - - try await participant.setPeerState(to: .ringing) - } - - - private func processReconnectCallMessageJSON(_ reconnectCallMessage: ReconnectCallMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId, messageUploadTimestampFromServer: Date) async throws { - guard let call = currentCalls.first(where: { $0.uuidForWebRTC == uuidForWebRTC }) else { return } - guard let participant = await call.getParticipant(remoteCryptoId: contact.remoteCryptoId) else { return } - try await call.handleReconnectCallMessage(callParticipant: participant, reconnectCallMessage) - } - - - private func processNewParticipantAnswerMessageJSON(_ newParticipantAnswer: NewParticipantAnswerMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId, messageUploadTimestampFromServer: Date) async throws { - os_log("☎️ Call to processNewParticipantAnswerMessageJSON", log: Self.log, type: .info) - guard let call = currentCalls.first(where: { $0.uuidForWebRTC == uuidForWebRTC }) else { return } - guard let participant = await call.getParticipant(remoteCryptoId: contact.remoteCryptoId) else { return } - guard participant.role == .recipient else { return } - let remoteCryptoId = participant.remoteCryptoId - guard call.shouldISendTheOfferToCallParticipant(cryptoId: remoteCryptoId) else { return } - let sessionDescription = RTCSessionDescription(type: newParticipantAnswer.sessionDescriptionType, sdp: newParticipantAnswer.sessionDescription) - os_log("☎️ Will call setRemoteDescription on the participant", log: Self.log, type: .info) - try await participant.setRemoteDescription(sessionDescription: sessionDescription) - } - - - func processNewParticipantOfferMessageJSON(_ newParticipantOffer: NewParticipantOfferMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId, messageUploadTimestampFromServer: Date) async throws { - /// We check that the `NewParticipantOfferMessageJSON` is not too old. If this is the case, we ignore it - let timeInterval = Date().timeIntervalSince(messageUploadTimestampFromServer) // In seconds - guard timeInterval < 30 else { - os_log("☎️ We received an old NewParticipantOfferMessageJSON, uploaded %{timeInterval}f seconds ago on the server. We ignore it.", log: Self.log, type: .info, timeInterval) - return - } - - guard let incomingCall = currentCalls.first(where: { $0.uuidForWebRTC == uuidForWebRTC && $0.direction == .incoming }) else { return } - guard let participant = await incomingCall.getParticipant(remoteCryptoId: contact.remoteCryptoId) else { - // Put the message in queue as we might simply receive the update call participant message later - await incomingCall.addPendingOffer((messageUploadTimestampFromServer, newParticipantOffer), from: contact) - return - } - guard participant.role == .recipient else { return } - let remoteCryptoId = participant.remoteCryptoId - guard !incomingCall.shouldISendTheOfferToCallParticipant(cryptoId: remoteCryptoId) else { return } - - guard let turnCredentials = incomingCall.turnCredentialsReceivedFromCaller else { assertionFailure(); return } - - try await participant.updateRecipient(newParticipantOfferMessage: newParticipantOffer, turnCredentials: turnCredentials) - } - - - private func processKickMessageJSON(_ kickMessage: KickMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId, messageUploadTimestampFromServer: Date) async throws { - guard let call = currentCalls.first(where: { $0.uuidForWebRTC == uuidForWebRTC }) else { return } - guard let participant = await call.getParticipant(remoteCryptoId: contact.remoteCryptoId) else { return } - guard participant.role == .caller else { return } - os_log("☎️ We received an KickMessageJSON from caller", log: Self.log, type: .info) - await call.endCallAsLocalUserGotKicked() - } - - - private func processIceCandidateMessage(message: IceCandidateJSON, uuidForWebRTC: UUID, contact: OlvidUserId) async throws { - - if let call = currentCalls.first(where: { $0.uuidForWebRTC == uuidForWebRTC }) { - - os_log("☎️❄️ Process IceCandidateJSON message", log: Self.log, type: .info) - try await call.processIceCandidatesJSON(iceCandidate: message, participantId: contact) - - } else { - - guard !remotelyHangedUpCalls.contains(uuidForWebRTC) else { return } - os_log("☎️❄️ Received new remote ICE Candidates for a call that does not exists yet. Adding the ICE candidate to the receivedIceCandidates array.", log: Self.log, type: .info) - var candidates = receivedIceCandidates[uuidForWebRTC] ?? [] - candidates += [(message, contact)] - receivedIceCandidates[uuidForWebRTC] = candidates - return - - } - - } - - - private func processRemoveIceCandidatesMessage(message: RemoveIceCandidatesMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId) async throws { - - if let call = currentCalls.first(where: { $0.uuidForWebRTC == uuidForWebRTC }) { - - os_log("☎️❄️ Process RemoveIceCandidatesMessageJSON message", log: Self.log, type: .info) - try await call.removeIceCandidatesJSON(removeIceCandidatesJSON: message, participantId: contact) - - } else { - - guard !remotelyHangedUpCalls.contains(uuidForWebRTC) else { return } - os_log("☎️❄️ Received removed remote ICE Candidates for a call that does not exists yet", log: Self.log, type: .info) - var candidates = receivedIceCandidates[uuidForWebRTC] ?? [] - candidates.removeAll { message.candidates.contains($0.0) } - receivedIceCandidates[uuidForWebRTC] = candidates - - } - - } - - - private func processUserWantsToCallNotification(contactIds: [OlvidUserId], ownedIdentityForRequestingTurnCredentials: ObvCryptoId, groupId: GroupIdentifierBasedOnObjectID?) async { - - // 2022-06-20 We used to wait until the app is initialized and active. Still needed? - // 2022-06-27 We comment the following line, it shouldn't be necessary now. - // _ = await NewAppStateManager.shared.waitUntilAppIsInitialized() - - // We first check that there is no ongoing call before allowing a new call - - for currentCall in currentCalls { - guard await currentCall.state.isFinalState else { - os_log("☎️ Trying to create a new outgoing call while another (not finished) call exists is not allowed", log: Self.log, type: .error) - return - } - } - - let granted = await AVAudioSession.sharedInstance().requestRecordPermission() - if granted { - await initiateCall(with: contactIds, ownedIdentityForRequestingTurnCredentials: ownedIdentityForRequestingTurnCredentials, groupId: groupId) - } else { - ObvMessengerInternalNotification.outgoingCallFailedBecauseUserDeniedRecordPermission - .postOnDispatchQueue(queueForPostingNotifications) - } - - } - - - private func processUserWantsToKickParticipant(call: GenericCall, callParticipant: CallParticipant) async { - guard let call = call as? Call else { - os_log("☎️ Unknown call type", log: Self.log, type: .fault) - assertionFailure() - return - } - guard let outgoingCall = currentOutgoingCalls.first(where: { $0.uuidForWebRTC == call.uuidForWebRTC }) else { return } - do { - try await outgoingCall.processUserWantsToKickParticipant(callParticipant: callParticipant) - } catch { - os_log("☎️ Could not properly kick participant: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - assertionFailure() - } - } - - - private func processUserWantsToAddParticipants(call: GenericCall, contactIds: [OlvidUserId]) async { - guard !contactIds.isEmpty else { assertionFailure(); return } - guard let call = call as? Call else { - os_log("Unknown call type", log: Self.log, type: .fault) - assertionFailure() - return - } - guard currentOutgoingCalls.first(where: { $0.uuidForWebRTC == call.uuidForWebRTC }) != nil else { return } - guard call.direction == .outgoing else { return } - do { - try await call.processUserWantsToAddParticipants(contactIds: contactIds) - } catch { - os_log("☎️ Could not process processUserWantsToAddParticipants: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - } -} - - -// MARK: - Incoming/Outgoing Call Delegate - -extension CallManager: IncomingCallDelegate, OutgoingCallDelegate { - - func turnCredentialsRequiredByOutgoingCall(outgoingCallUuidForWebRTC: UUID, forOwnedIdentity ownedIdentityCryptoId: ObvCryptoId) async { - obvEngine.getTurnCredentials(ownedIdenty: ownedIdentityCryptoId, callUuid: outgoingCallUuidForWebRTC) - } - -} - - -// MARK: - Helpers - -extension CallManager { - - /// This method sends a `RingingMessageJSON` to the caller. It makes sure this message is sent only once. - private func sendRingingMessageToCaller(forIncomingCall call: Call) async { - assert(call.direction == .incoming) - os_log("☎️ Within sendRingingMessageToCaller", log: Self.log, type: .info) - await call.sendRingingMessageToCaller() - } - -} - - -// MARK: - Actions - -extension CallManager { - - private func initiateCall(with contactIds: [OlvidUserId], ownedIdentityForRequestingTurnCredentials: ObvCryptoId, groupId: GroupIdentifierBasedOnObjectID?) async { - - guard !contactIds.isEmpty else { assertionFailure(); return } - - os_log("☎️ initiateCall with %{public}@", log: Self.log, type: .info, contactIds.map { $0.debugDescription }.joined(separator: ", ")) - - do { - try ObvAudioSessionUtils.shared.configureAudioSessionForMakingOrAnsweringCall() - } catch { - os_log("☎️ Failed to configure audio session: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - assertionFailure() // Continue anyway - } - - let sortedContactIds = contactIds.sorted(by: { $0.displayName < $1.displayName }) - - let outgoingCall: Call - do { - outgoingCall = try await createOutgoingCall(contactIds: sortedContactIds, ownedIdentityForRequestingTurnCredentials: ownedIdentityForRequestingTurnCredentials, groupId: groupId) - assert(outgoingCall.direction == .outgoing) - } catch { - os_log("☎️ Could not create outgoing call: %{public}@", log: Self.log, type: .error, error.localizedDescription) - assertionFailure() - return - } - - guard let firstContactId = contactIds.first else { return } - let firstContactDisplayName = firstContactId.displayName - - let outgoingCallUuid = outgoingCall.uuid - let handleValue: String = String(outgoingCallUuid) - - do { - try await outgoingCall.initializeCall(contactIdentifier: firstContactDisplayName, handleValue: handleValue) - } catch { - os_log("☎️ Start call failed: %{public}@", log: Self.log, type: .error, error.localizedDescription) - await outgoingCall.endCallAsOutgoingCallInitializationFailed() - return - } - } - -} - - -// MARK: - Call Delegate - -extension CallManager { - - static func report(call: Call, report: CallReport) { - let ownedIdentity = call.ownedIdentity - os_log("☎️📖 Report call to user as %{public}@", log: Self.log, type: .info, report.description) - VoIPNotification.reportCallEvent(callUUID: call.uuid, callReport: report, groupId: call.groupId, ownedCryptoId: ownedIdentity) - .postOnDispatchQueue() - } - - - func newParticipantWasAdded(call: Call, callParticipant: CallParticipant) async { - switch call.direction { - case .incoming: - Self.report(call: call, report: .newParticipantInIncomingCall(callParticipant.info)) - case .outgoing: - Self.report(call: call, report: .newParticipantInOutgoingCall(callParticipant.info)) - } - let callUpdate = await ObvCallUpdateImpl.make(with: call) - self.provider(isCallKit: call.usesCallKit).reportCall(with: call.uuid, updated: callUpdate) - } - - - func callReachedFinalState(call: Call) async { - do { - try await removeCallFromCurrentCalls(call: call) - } catch { - os_log("Could not remove call from current calls: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - assertionFailure() - } - } - - - func outgoingCallReachedReachedInProgressState(call: Call) async { - assert(call.direction == .outgoing) - provider(isCallKit: call.usesCallKit).reportOutgoingCall(with: call.uuid, connectedAt: nil) - } - - - /// This call delegate method gets called when a call is ended in an out-of-band manner, i.e., not because the local user decided to end the call. - /// In that case, we want to report this information to CallKit. - func callOutOfBoundEnded(call: Call, reason: ObvCallEndedReason) async { - let callState = await call.state - assert(callState.isFinalState) - provider(isCallKit: call.usesCallKit).reportCall(with: call.uuid, endedAt: nil, reason: reason) - } - -} - - -// MARK: - ObvProviderDelegate - -extension CallManager: ObvProviderDelegate { - - func providerDidBegin() async { - os_log("☎️ Provider did begin", log: Self.log, type: .info) - } - - - func providerDidReset() async { - os_log("☎️ Provider did reset", log: Self.log, type: .info) - } - - - func provider(perform action: ObvStartCallAction) async { - - os_log("☎️ Provider perform action: %{public}@", log: Self.log, type: .info, action.debugDescription) - - guard let outgoingCall = currentCalls.first(where: { $0.uuid == action.callUUID && $0.direction == .outgoing }) else { - os_log("☎️ Could not start call, call not found", log: Self.log, type: .fault) - action.fail() - assertionFailure() - return - } - - do { - try await outgoingCall.startCall() - } catch(let error) { - os_log("☎️ startCall failed: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - await outgoingCall.endCallAsOutgoingCallInitializationFailed() - action.fail() - assertionFailure() - return - } - - action.fulfill() - - // If we stop here, the name displayed within iOS call log is incorrect (it shows the CoreData instance's URI). Updating the call right now does the trick. - let callUpdate = await ObvCallUpdateImpl.make(with: outgoingCall) - provider(isCallKit: outgoingCall.usesCallKit).reportCall(with: outgoingCall.uuid, updated: callUpdate) - - // At this point, credentials have been requested to the engine (when calling outgoingCall.startCall() above). - // The outgoing call will evolve when receiving these credentials. - } - - - func provider(perform action: ObvAnswerCallAction) async { - - os_log("☎️ Provider perform answer call action", log: Self.log, type: .info) - - guard let call = currentCalls.first(where: { $0.uuid == action.callUUID && $0.direction == .incoming }) else { - os_log("☎️ Could not answer call: could not find the call within the current calls", log: Self.log, type: .fault) - action.fail() - return - } - - guard AVAudioSession.sharedInstance().recordPermission == .granted else { - os_log("☎️ We reject the call since there is no record permission", log: Self.log, type: .fault) - await call.endCallBecauseOfMissingRecordPermission() - action.fail() - return - } - - guard await !call.userDidAnsweredIncomingCall() else { - action.fail() - return - } - - /* Although https://www.youtube.com/watch?v=_64EiziqbuE @ 20:35 says that we should not configure - * the audio here, we do so anyway. Otherwise, CallKit does not call the - * func provider(didActivate audioSession: AVAudioSession) - * delegate method in the case the call is received when the screen is locked. - */ - do { - try ObvAudioSessionUtils.shared.configureAudioSessionForMakingOrAnsweringCall() - } catch { - os_log("☎️🎵 Could not configure the audio session: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - action.fail() - assertionFailure() - return - } - - do { - try await call.answerWebRTCCall() - } catch { - os_log("☎️ Failed to answer WebRTC call: %{public}@", log: Self.log, type: .fault, error.localizedDescription) - action.fail() - assertionFailure() - return - } - - action.fulfill() - - await Self.report(call: call, report: .acceptedIncomingCall(caller: call.callerCallParticipant?.info)) - } - - - /// This delegate method is called when the local user ends the call from the CallKit UI or from the Olvid UI. - func provider(perform action: ObvEndCallAction) async { - - os_log("☎️🛑 Provider perform end call action for call with UUID %{public}@", log: Self.log, type: .info, action.callUUID as CVarArg) - - guard let call = currentCalls.first(where: { $0.uuid == action.callUUID }) else { - os_log("Cannot find call after performing ObvEndCallAction", log: Self.log, type: .fault) - action.fail() - assertionFailure() - return - } - - await call.userRequestedToEndCallWasFulfilled() - - action.fulfill() - - } - - - func provider(perform action: ObvSetHeldCallAction) async { - os_log("☎️ Provider perform set held call action", log: Self.log, type: .info) - action.fulfill() - assertionFailure("Not implemented") - } - - - func provider(perform action: ObvSetMutedCallAction) async { - os_log("☎️ Provider perform set muted call action", log: Self.log, type: .info) - guard let call = currentCalls.first(where: { $0.uuid == action.callUUID }) else { action.fail(); return } - if action.isMuted { - await call.muteSelfForOtherParticipants() - } else { - await call.unmuteSelfForOtherParticipants() - } - action.fulfill() - } - - - func provider(perform action: ObvPlayDTMFCallAction) async { - os_log("☎️ Provider perform play DTMF action", log: Self.log, type: .info) - action.fulfill() - } - - - func provider(timedOutPerforming action: ObvAction) async { - os_log("☎️ Provider timed out performing action %{public}@", log: Self.log, type: .info, action.debugDescription) - action.fulfill() - } - - - func provider(didActivate audioSession: AVAudioSession) async { - // See https://stackoverflow.com/a/55781328 - os_log("☎️🎵 Provider did activate audioSession %{public}@", log: Self.log, type: .info, audioSession.description) - RTCAudioSession.sharedInstance().audioSessionDidActivate(audioSession) - RTCAudioSession.sharedInstance().isAudioEnabled = true - } - - - func provider(didDeactivate audioSession: AVAudioSession) async { - os_log("☎️🎵 Provider did deactivate audioSession %{public}@", log: Self.log, type: .info, audioSession.description) - RTCAudioSession.sharedInstance().audioSessionDidDeactivate(audioSession) - RTCAudioSession.sharedInstance().isAudioEnabled = false - } - -} - - -// MARK: - Extensions / Helpers - -fileprivate extension EncryptedPushNotification { - - init?(dict: [AnyHashable: Any]) { - - guard let wrappedKeyString = dict["encryptedHeader"] as? String else { return nil } - guard let encryptedContentString = dict["encryptedMessage"] as? String else { return nil } - - guard let wrappedKey = Data(base64Encoded: wrappedKeyString), - let encryptedContent = Data(base64Encoded: encryptedContentString), - let maskingUID = dict["maskinguid"] as? String, - let messageUploadTimestampFromServerAsDouble = dict["timestamp"] as? Double, - let messageIdFromServer = dict["messageuid"] as? String else { - return nil - } - - let messageUploadTimestampFromServer = Date(timeIntervalSince1970: messageUploadTimestampFromServerAsDouble / 1000.0) - - self.init(messageIdFromServer: messageIdFromServer, - wrappedKey: wrappedKey, - encryptedContent: encryptedContent, - encryptedExtendedContent: nil, - maskingUID: maskingUID, - messageUploadTimestampFromServer: messageUploadTimestampFromServer, - localDownloadTimestamp: Date()) - - } - -} - - -fileprivate extension ObvCallUpdateImpl { - - static func make(with call: Call) async -> ObvCallUpdate { - var update = ObvCallUpdateImpl() - let callParticipants = await call.getCallParticipants() - let sortedContacts: [(isCaller: Bool, displayName: String)] = callParticipants.map { - let displayName = $0.displayName - return ($0.role == .caller, displayName) - }.sorted { - if $0.isCaller { return true } - if $1.isCaller { return false } - return $0.displayName < $1.displayName - } - - update.remoteHandle_ = ObvHandleImpl(type_: .generic, value: String(call.uuid)) - if call.direction == .incoming && sortedContacts.count == 1 { - update.localizedCallerName = sortedContacts.first?.displayName - if call.initialParticipantCount > 1 { - update.localizedCallerName! += " + \(call.initialParticipantCount - 1)" - } - } else if sortedContacts.count > 0 { - let contactName = sortedContacts.map({ $0.displayName }).joined(separator: ", ") - update.localizedCallerName = contactName - } else { - update.localizedCallerName = "..." - } - update.hasVideo = false - update.supportsGrouping = false - update.supportsUngrouping = false - update.supportsHolding = false - update.supportsDTMF = false - return update - } - - - static func make(with encryptedNotification: EncryptedPushNotification) -> (uuidForCallKit: UUID, obvCallUpdate: ObvCallUpdate) { - var update = ObvCallUpdateImpl() - let uuidForCallKit = UUID() - update.remoteHandle_ = ObvHandleImpl(type_: .generic, value: String(uuidForCallKit)) - update.localizedCallerName = "..." - update.hasVideo = false - update.supportsGrouping = false - update.supportsUngrouping = false - update.supportsHolding = false - update.supportsDTMF = false - return (uuidForCallKit, update) - } - -} - - -// MARK: - ContactInfo - -protocol ContactInfo { - var objectID: TypeSafeManagedObjectID { get } - var ownedIdentity: ObvCryptoId? { get } - var cryptoId: ObvCryptoId? { get } - var fullDisplayName: String { get } - var customDisplayName: String? { get } - var sortDisplayName: String { get } - var photoURL: URL? { get } - var identityColors: (background: UIColor, text: UIColor)? { get } - var gatheringPolicy: GatheringPolicy { get } -} - - -// MARK: - ContactInfoImpl - -struct ContactInfoImpl: ContactInfo { - var objectID: TypeSafeManagedObjectID - var ownedIdentity: ObvCryptoId? - var cryptoId: ObvCryptoId? - var fullDisplayName: String - var customDisplayName: String? - var sortDisplayName: String - var photoURL: URL? - var identityColors: (background: UIColor, text: UIColor)? - var gatheringPolicy: GatheringPolicy - - init(contact persistedContactIdentity: PersistedObvContactIdentity) { - self.objectID = persistedContactIdentity.typedObjectID - self.ownedIdentity = persistedContactIdentity.ownedIdentity?.cryptoId - self.cryptoId = persistedContactIdentity.cryptoId - self.fullDisplayName = persistedContactIdentity.fullDisplayName - self.customDisplayName = persistedContactIdentity.customDisplayName - self.sortDisplayName = persistedContactIdentity.sortDisplayName - self.photoURL = persistedContactIdentity.customPhotoURL ?? persistedContactIdentity.photoURL - self.identityColors = persistedContactIdentity.cryptoId.colors - self.gatheringPolicy = persistedContactIdentity.supportsCapability(.webrtcContinuousICE) ? .gatherContinually : .gatherOnce - } -} - - -// MARK: - GatheringPolicy - -extension GatheringPolicy { - var rtcPolicy: RTCContinualGatheringPolicy { - switch self { - case .gatherOnce: return .gatherOnce - case .gatherContinually: return .gatherContinually - } - } -} - - - -// MARK: - ObvPushRegistryHandler - -/// We create one instance of this class when instantiating the call coordinator. This instance handles the interaction with the PushKit registry as it register to VoIP push notifications and -/// Receives incoming pushes. When an incoming VoIP push notification is received, it reports it (as required by Apple specifications) then calls its delegate (the call coordinator). -fileprivate final class ObvPushRegistryHandler: NSObject, PKPushRegistryDelegate { - - private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: CallManager.self)) - - private let obvEngine: ObvEngine - private let cxObvProvider: CXObvProvider - private var didRegisterToVoIPNotifications = false - private var voipRegistry: PKPushRegistry! - private let internalQueue = DispatchQueue(label: "ObvPushRegistryHandler internal queue") - - weak var delegate: ObvPushRegistryHandlerDelegate? - - init(obvEngine: ObvEngine, cxObvProvider: CXObvProvider) { - self.obvEngine = obvEngine - self.cxObvProvider = cxObvProvider - super.init() - } - - - func registerForVoIPPushes(delegate: ObvPushRegistryHandlerDelegate) { - internalQueue.async { [weak self] in - guard let _self = self else { return } - guard !_self.didRegisterToVoIPNotifications else { return } - defer { _self.didRegisterToVoIPNotifications = true } - assert(_self.delegate == nil) - _self.delegate = delegate - os_log("☎️ Registering for VoIP push notifications", log: Self.log, type: .info) - _self.voipRegistry = PKPushRegistry(queue: _self.internalQueue) - _self.voipRegistry.delegate = self - _self.voipRegistry.desiredPushTypes = [.voIP] - } - } - - - func pushRegistry(_ registry: PKPushRegistry, didUpdate pushCredentials: PKPushCredentials, for type: PKPushType) { - guard type == .voIP else { return } - let voipToken = pushCredentials.token - os_log("☎️✅ We received a voip notification token: %{public}@", log: Self.log, type: .info, voipToken.hexString()) - Task { - await ObvPushNotificationManager.shared.setCurrentVoipToken(to: voipToken) - await ObvPushNotificationManager.shared.tryToRegisterToPushNotifications() - } - } - - - // Implementing PKPushRegistryDelegate - - func pushRegistry(_ registry: PKPushRegistry, didInvalidatePushTokenFor type: PKPushType) { - guard type == .voIP else { return } - os_log("☎️✅❌ Push Registry did invalidate push token", log: Self.log, type: .info) - Task { - await ObvPushNotificationManager.shared.setCurrentVoipToken(to: nil) - await ObvPushNotificationManager.shared.tryToRegisterToPushNotifications() - } - } - - - func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) { - - os_log("☎️✅ We received a voip notification", log: Self.log, type: .info) - - guard let encryptedNotification = EncryptedPushNotification(dict: payload.dictionaryPayload) else { - os_log("☎️ Could not extract encrypted notification", log: Self.log, type: .fault) - // We are not be able to make a link between this call and the received StartCallMessageJSON, we report a cancelled call to respect PushKit constraints. - cxObvProvider.reportNewCancelledIncomingCall() - assertionFailure() - return - } - - // We request the immediate decryption of the encrypted notification. This call returns nothing. - // Eventually, we should receive a NewWebRTCMessageWasReceived notification from the discussion coordinator, - // Containing the decrypted data. Calling this method here is an optimization (we could also wait for the same - // Message arriving through the websocket). - - tryDecryptAndProcessEncryptedNotification(encryptedNotification) - - let (uuidForCallKit, callUpdate) = ObvCallUpdateImpl.make(with: encryptedNotification) - - os_log("☎️✅ We will report new incoming call to CallKit", log: Self.log, type: .info) - - cxObvProvider.reportNewIncomingCall(with: uuidForCallKit, update: callUpdate) { result in - switch result { - case .failure(let error): - os_log("☎️✅❌ We failed to report an incoming call: %{public}@", log: Self.log, type: .info, error.localizedDescription) - Task { [weak self] in - await self?.delegate?.failedToReportNewIncomingCallToCallKit(callUUID: uuidForCallKit, error: error) - DispatchQueue.main.async { - completion() - } - } - case .success: - Task { [weak self] in - os_log("☎️✅ We successfully reported an incoming call to CallKit", log: Self.log, type: .info) - await self?.delegate?.successfullyReportedNewIncomingCallToCallKit(uuidForCallKit: uuidForCallKit, messageIdentifierFromEngine: encryptedNotification.messageIdentifierFromEngine) - DispatchQueue.main.async { - completion() - } - } - } - } - - } - - - private func tryDecryptAndProcessEncryptedNotification(_ encryptedNotification: EncryptedPushNotification) { - let obvMessage: ObvMessage - do { - obvMessage = try obvEngine.decrypt(encryptedPushNotification: encryptedNotification) - } catch { - os_log("☎️ Could not decrypt received voip notification, the contained message has certainly been decrypted after being received by the webSocket", log: Self.log, type: .info) - return - } - // We send the obvMessage to the PersistedDiscussionsUpdatesCoordinator, who will pass us back an StartCallMessageJSON - ObvMessengerInternalNotification.newObvMessageWasReceivedViaPushKitNotification(obvMessage: obvMessage) - .postOnDispatchQueue() - } - -} - - -protocol ObvPushRegistryHandlerDelegate: IncomingCallDelegate { - - func failedToReportNewIncomingCallToCallKit(callUUID: UUID, error: Error) async - func successfullyReportedNewIncomingCallToCallKit(uuidForCallKit: UUID, messageIdentifierFromEngine: Data) async - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipant.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipant.swift deleted file mode 100644 index 9560936c..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipant.swift +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import UIKit -import ObvTypes -import ObvEngine -import ObvUICoreData - - -protocol CallParticipant: AnyObject { - - var uuid: UUID { get } - var role: Role { get } - func getPeerState() async -> PeerState - func getContactIsMuted() async -> Bool - - var userId: OlvidUserId { get } - var info: ParticipantInfo? { get } - var ownedIdentity: ObvCryptoId { get } - var remoteCryptoId: ObvCryptoId { get } - var gatheringPolicy: GatheringPolicy? { get async } - - /// Use to be sent to others participants, we do not want to send the displayName that can include custom name - var fullDisplayName: String { get } - var displayName: String { get } - var photoURL: URL? { get } - var identityColors: (background: UIColor, text: UIColor)? { get } - func setTurnCredentials(to turnCredentials: TurnCredentials) async - - func setPeerState(to state: PeerState) async throws - - func localUserAcceptedIncomingCallFromThisCallParticipant() async throws - func setTurnCredentialsAndCreateUnderlyingPeerConnection(turnCredentials: TurnCredentials) async throws - - func updateRecipient(newParticipantOfferMessage: NewParticipantOfferMessageJSON, turnCredentials: TurnCredentials) async throws - - func restartIceIfAppropriate() async throws - func closeConnection() async throws - - func sendUpdateParticipantsMessageJSON(callParticipants: [CallParticipant]) async throws - func sendDataChannelMessage(_ message: WebRTCDataChannelMessageJSON) async throws - - var isMuted: Bool { get async } - func mute() async - func unmute() async - - func processIceCandidatesJSON(message: IceCandidateJSON) async throws - func processRemoveIceCandidatesMessageJSON(message: RemoveIceCandidatesMessageJSON) async -} - - -// MARK: - Role - -enum Role { - case none - case caller - case recipient -} - - -// MARK: - PeerState - -enum PeerState: Hashable, CustomDebugStringConvertible { - case initial - // States for the caller only (during this time, the recipient stays in the initial state) - case startCallMessageSent - case ringing - case busy - case callRejected - // States common to the caller and the recipient - case connectingToPeer - case connected - case reconnecting - case hangedUp - case kicked - case failed - - var debugDescription: String { - switch self { - case .initial: return "initial" - case .startCallMessageSent: return "startCallMessageSent" - case .busy: return "busy" - case .reconnecting: return "reconnecting" - case .ringing: return "ringing" - case .callRejected: return "callRejected" - case .connectingToPeer: return "connectingToPeer" - case .connected: return "connected" - case .hangedUp: return "hangedUp" - case .kicked: return "kicked" - case .failed: return "failed" - } - } - - var isFinalState: Bool { - switch self { - case .callRejected, .hangedUp, .kicked, .failed: return true - case .initial, .startCallMessageSent, .ringing, .busy, .connectingToPeer, .connected, .reconnecting: return false - } - } - - var localizedString: String { - switch self { - case .initial: return NSLocalizedString("CALL_STATE_NEW", comment: "") - case .startCallMessageSent: return NSLocalizedString("CALL_STATE_INCOMING_CALL_MESSAGE_WAS_POSTED", comment: "") - case .ringing: return NSLocalizedString("CALL_STATE_RINGING", comment: "") - case .busy: return NSLocalizedString("CALL_STATE_BUSY", comment: "") - case .callRejected: return NSLocalizedString("CALL_STATE_CALL_REJECTED", comment: "") - case .connectingToPeer: return NSLocalizedString("CALL_STATE_CONNECTING_TO_PEER", comment: "") - case .connected: return NSLocalizedString("SECURE_CALL_IN_PROGRESS", comment: "") - case .reconnecting: return NSLocalizedString("CALL_STATE_RECONNECTING", comment: "") - case .hangedUp: return NSLocalizedString("CALL_STATE_HANGED_UP", comment: "") - case .kicked: return NSLocalizedString("CALL_STATE_KICKED", comment: "") - case .failed: return NSLocalizedString("FAILED", comment: "") - } - } - -} - - -// MARK: - TurnCredentials and extension - -struct TurnCredentials { - let turnUserName: String - let turnPassword: String - let turnServers: [String]? -} - - -extension ObvTurnCredentials { - - var turnCredentialsForCaller: TurnCredentials { - TurnCredentials(turnUserName: callerUsername, - turnPassword: callerPassword, - turnServers: turnServersURL) - } - - var turnCredentialsForRecipient: TurnCredentials { - TurnCredentials(turnUserName: recipientUsername, - turnPassword: recipientPassword, - turnServers: turnServersURL) - } - -} - -extension StartCallMessageJSON { - - var turnCredentials: TurnCredentials { - TurnCredentials(turnUserName: turnUserName, - turnPassword: turnPassword, - turnServers: turnServers) - } - -} - - -// MARK: - ParticipantInfo - -struct ParticipantInfo { - let contactObjectID: TypeSafeManagedObjectID - let isCaller: Bool -} - - -// MARK: - GatheringPolicy - -enum GatheringPolicy: Int { - case gatherOnce = 1 - case gatherContinually = 2 - - var localizedDescription: String { - switch self { - case .gatherOnce: return "gatherOnce" - case .gatherContinually: return "gatherContinually" - } - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipantDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipantDelegate.swift deleted file mode 100644 index 019c41f2..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipantDelegate.swift +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import Foundation -import ObvTypes -import WebRTC -import ObvUICoreData - - -// MARK: - CallParticipantDelegate - -protocol CallParticipantDelegate: AnyObject { - - var isOutgoingCall: Bool { get } - - func participantWasUpdated(callParticipant: CallParticipantImpl, updateKind: CallParticipantUpdateKind) async - - func connectionIsChecking(for callParticipant: CallParticipant) - func connectionIsConnected(for callParticipant: CallParticipant, oldParticipantState: PeerState) async - func connectionWasClosed(for callParticipant: CallParticipantImpl) async - - func dataChannelIsOpened(for callParticipant: CallParticipant) async - - func updateParticipants(with newCallParticipants: [ContactBytesAndNameJSON]) async throws - func relay(from: ObvCryptoId, to: ObvCryptoId, messageType: WebRTCMessageJSON.MessageType, messagePayload: String) async - func receivedRelayedMessage(from: ObvCryptoId, messageType: WebRTCMessageJSON.MessageType, messagePayload: String) async - - func sendStartCallMessage(to callParticipant: CallParticipant, sessionDescription: RTCSessionDescription, turnCredentials: TurnCredentials) async throws - func sendAnswerCallMessage(to callParticipant: CallParticipant, sessionDescription: RTCSessionDescription) async throws - func sendNewParticipantOfferMessage(to callParticipant: CallParticipant, sessionDescription: RTCSessionDescription) async throws - func sendNewParticipantAnswerMessage(to callParticipant: CallParticipant, sessionDescription: RTCSessionDescription) async throws - func sendReconnectCallMessage(to callParticipant: CallParticipant, sessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int) async throws - func sendNewIceCandidateMessage(to callParticipant: CallParticipant, iceCandidate: RTCIceCandidate) async throws - func sendRemoveIceCandidatesMessages(to callParticipant: CallParticipant, candidates: [RTCIceCandidate]) async throws - - func shouldISendTheOfferToCallParticipant(cryptoId: ObvCryptoId) -> Bool - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipantImpl.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipantImpl.swift deleted file mode 100644 index 946ebfa3..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipantImpl.swift +++ /dev/null @@ -1,598 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import Foundation -import os.log -import ObvTypes -import OlvidUtils -import WebRTC -import ObvUICoreData - - -// MARK: - CallParticipantImpl - -actor CallParticipantImpl: CallParticipant, ObvErrorMaker { - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: CallParticipantImpl.self)) - - let uuid: UUID = UUID() - let role: Role - let ownRole: Role // Role of the owned identity - let userId: OlvidUserId - private var state: PeerState - - static let errorDomain = "CallParticipantImpl" - - private var contactIsMuted = false - - /// The only case where the `peerConnectionHolder` can be nil is when we receive pushkit notification for an incoming call - /// And cannot immediately determine the caller. - private var peerConnectionHolder: WebrtcPeerConnectionHolder? - - private var connectingTimeoutTimer: Timer? - private static let connectingTimeoutInterval: TimeInterval = 15.0 // 15 seconds - - private func setPeerConnectionHolder(to peerConnectionHolder: WebrtcPeerConnectionHolder) async { - assert(self.peerConnectionHolder == nil) - self.peerConnectionHolder = peerConnectionHolder - } - - - var gatheringPolicy: GatheringPolicy? { - get async { - await peerConnectionHolder?.gatheringPolicy - } - } - - func getPeerState() async -> PeerState { - return state - } - - private weak var delegate: CallParticipantDelegate? - - - func setDelegate(to delegate: CallParticipantDelegate) async { - self.delegate = delegate - } - - func getContactIsMuted() async -> Bool { - return contactIsMuted - } - - nonisolated var contactInfo: ContactInfo? { - switch userId { - case .known(let contactObjectID, _, _, _): - return CallHelper.getContactInfo(contactObjectID) - case .unknown: - return nil - } - } - - - nonisolated var ownedIdentity: ObvCryptoId { - userId.ownCryptoId - } - - - nonisolated var remoteCryptoId: ObvCryptoId { - userId.remoteCryptoId - } - - - nonisolated var fullDisplayName: String { - switch userId { - case .known(_, _, _, displayName: let displayName): - return contactInfo?.fullDisplayName ?? displayName - case .unknown(ownCryptoId: _, remoteCryptoId: _, displayName: let displayName): - return displayName - } - } - - - nonisolated var displayName: String { - switch userId { - case .known(contactObjectID: _, ownCryptoId: _, remoteCryptoId: _, displayName: let displayName): - return contactInfo?.customDisplayName ?? contactInfo?.fullDisplayName ?? displayName - case .unknown(ownCryptoId: _, remoteCryptoId: _, displayName: let displayName): - return displayName - } - } - - - nonisolated var photoURL: URL? { contactInfo?.photoURL } - - nonisolated var identityColors: (background: UIColor, text: UIColor)? { contactInfo?.identityColors } - - - nonisolated var info: ParticipantInfo? { - if let contactObjectID = userId.contactObjectID { - return ParticipantInfo(contactObjectID: contactObjectID, isCaller: role == .caller) - } else { - return nil - } - } - - - /// Create the `caller` participant for an incoming call when the contact ID of this caller is already known. - static func createCaller(startCallMessage: StartCallMessageJSON, contactId: OlvidUserId) async -> Self { - let callParticipant = self.init(role: .caller, ownRole: .recipient, userId: contactId) - await callParticipant.setTurnCredentials(to: startCallMessage.turnCredentials) - await callParticipant.setPeerConnectionHolder(to: WebrtcPeerConnectionHolder(startCallMessage: startCallMessage, delegate: callParticipant)) - return callParticipant - } - - - /// Create a `recipient` participant for an outgoing call - static func createRecipientForOutgoingCall(contactId: OlvidUserId, gatheringPolicy: GatheringPolicy) async -> Self { - let callParticipant = self.init(role: .recipient, ownRole: .caller, userId: contactId) - await callParticipant.setPeerConnectionHolder(to: WebrtcPeerConnectionHolder(gatheringPolicy: gatheringPolicy, delegate: callParticipant)) - return callParticipant - } - - - /// Create a `recipient` participant for an incoming call - static func createRecipientForIncomingCall(contactId: OlvidUserId, gatheringPolicy: GatheringPolicy) async -> Self { - let callParticipant = self.init(role: .recipient, ownRole: .recipient, userId: contactId) - await callParticipant.setPeerConnectionHolder(to: WebrtcPeerConnectionHolder(gatheringPolicy: gatheringPolicy, delegate: callParticipant)) - return callParticipant - } - - - /// Update a recipient in a multi-user incoming call where we also are a recipient (not the caller), and not in charge of the offer. - func updateRecipient(newParticipantOfferMessage: NewParticipantOfferMessageJSON, turnCredentials: TurnCredentials) async throws { - assert(role == .recipient) - assert(self.peerConnectionHolder != nil) - self.turnCredentials = turnCredentials - try await self.peerConnectionHolder?.setRemoteDescriptionAndTurnCredentialsThenCreateTheUnderlyingPeerConnectionIfRequired(newParticipantOfferMessage: newParticipantOfferMessage, turnCredentials: turnCredentials) - } - - - private init(role: Role, ownRole: Role, userId: OlvidUserId) { - self.role = role - self.ownRole = ownRole - self.userId = userId - self.state = .initial - } - - - func setPeerState(to newState: PeerState) async throws { - guard newState != self.state else { return } - os_log("☎️ WebRTCCall participant will change state: %{public}@ --> %{public}@", log: log, type: .info, self.state.debugDescription, newState.debugDescription) - self.state = newState - - invalidateConnectingTimeout() - - switch self.state { - case .startCallMessageSent: - break - case .ringing: - break - case .connectingToPeer, .reconnecting: - scheduleConnectingTimeout() - case .connected: - break - case .busy, .callRejected, .hangedUp, .kicked, .failed, .initial: - break - } - if self.state.isFinalState { - try await closeConnection() - } - - await delegate?.participantWasUpdated(callParticipant: self, updateKind: .state(newState: state)) - } - - func localUserAcceptedIncomingCallFromThisCallParticipant() async throws { - assert(self.role == .caller) - assert(self.ownRole == .recipient) - guard let peerConnectionHolder = self.peerConnectionHolder else { - assertionFailure() - throw Self.makeError(message: "No peer connection holder") - } - try await peerConnectionHolder.createPeerConnectionIfRequiredAfterAcceptingAnIncomingCall() - } - - - /// This method is two situations: - /// - During an outgoing call, when setting the turn credential of a call participant. - /// - During a multi-users incoming call, when we are in charge of sending the offer to another recipient (who isn't the caller). - func setTurnCredentialsAndCreateUnderlyingPeerConnection(turnCredentials: TurnCredentials) async throws { - assert(role == .recipient) - self.turnCredentials = turnCredentials - assert(self.peerConnectionHolder != nil) - try await self.peerConnectionHolder?.setTurnCredentialsAndCreateUnderlyingPeerConnectionIfRequired(turnCredentials) - } - - - func setRemoteDescription(sessionDescription: RTCSessionDescription) async throws { - guard let peerConnectionHolder = self.peerConnectionHolder else { - assertionFailure() - throw Self.makeError(message: "Cannot set remote description, the peer connection holder is nil") - } - try await peerConnectionHolder.setRemoteDescription(sessionDescription) - } - - - func handleReceivedRestartSdp(sessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int) async throws { - guard let peerConnectionHolder = self.peerConnectionHolder else { - throw Self.makeError(message: "No peer connection holder") - } - try await peerConnectionHolder.handleReceivedRestartSdp(sessionDescription: sessionDescription, - reconnectCounter: reconnectCounter, - peerReconnectCounterToOverride: peerReconnectCounterToOverride) - } - - - func reconnectAfterConnectionLoss() async throws { - guard [PeerState.connectingToPeer, .connected, .reconnecting].contains(self.state) else { return } - try await setPeerState(to: .reconnecting) - guard let peerConnectionHolder = self.peerConnectionHolder else { - assertionFailure() - throw Self.makeError(message: "No peer connection holder") - } - try await peerConnectionHolder.restartIce() - } - - - /// Called when a network connection status changed - func restartIceIfAppropriate() async throws { - guard let peerConnectionHolder = self.peerConnectionHolder else { - throw Self.makeError(message: "No peer connection holder") - } - guard [.connected, .connectingToPeer, .reconnecting].contains(self.state) else { return } - try await peerConnectionHolder.restartIce() - } - - - func closeConnection() async throws { - guard let peerConnectionHolder = self.peerConnectionHolder else { - os_log("☎️🛑 No need to close connection: peer connection holder is nil", log: log, type: .info) - return - } - try await peerConnectionHolder.close() - } - - - var isMuted: Bool { - get async { - await peerConnectionHolder?.isAudioTrackMuted ?? false - } - } - - - func mute() async { - guard let peerConnectionHolder = peerConnectionHolder else { return } - await peerConnectionHolder.muteAudioTracks() - await sendMutedMessageJSON() - } - - - func unmute() async { - guard let peerConnectionHolder = peerConnectionHolder else { return } - await peerConnectionHolder.unmuteAudioTracks() - await sendMutedMessageJSON() - } - - - private var turnCredentials: TurnCredentials? - - - func setTurnCredentials(to turnCredentials: TurnCredentials) async { - self.turnCredentials = turnCredentials - } - - - private func processMutedMessageJSON(message: MutedMessageJSON) async { - guard contactIsMuted != message.muted else { return } - contactIsMuted = message.muted - await delegate?.participantWasUpdated(callParticipant: self, updateKind: .contactMuted) - } - - - private func processUpdateParticipantsMessageJSON(message: UpdateParticipantsMessageJSON) async throws { - // Check that the participant list is indeed sent by the caller (and thus, not by a "simple" participant). - guard role == .caller else { - assertionFailure() - return - } - try await delegate?.updateParticipants(with: message.callParticipants) - } - - - private func processRelayMessageJSON(message: RelayMessageJSON) async { - guard role == .recipient else { return } - - do { - let fromId = self.remoteCryptoId - let toId = try ObvCryptoId(identity: message.to) - guard let messageType = WebRTCMessageJSON.MessageType(rawValue: message.relayedMessageType) else { throw Self.makeError(message: "Could not parse WebRTCMessageJSON.MessageType") } - let messagePayload = message.serializedMessagePayload - await delegate?.relay(from: fromId, to: toId, messageType: messageType, messagePayload: messagePayload) - } catch { - os_log("☎️ Could not read received RelayMessageJSON: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - } - - - private func processRelayedMessageJSON(message: RelayedMessageJSON) async throws { - - guard role == .caller else { return } - - do { - let fromId = try ObvCryptoId(identity: message.from) - guard let messageType = WebRTCMessageJSON.MessageType(rawValue: message.relayedMessageType) else { - throw Self.makeError(message: "Could not compute message type") - } - let messagePayload = message.serializedMessagePayload - await delegate?.receivedRelayedMessage(from: fromId, messageType: messageType, messagePayload: messagePayload) - } catch { - os_log("☎️ Could not read received RelayedMessageJSON: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - } - - - private func processHangedUpMessage(message: HangedUpDataChannelMessageJSON) async throws { - try await setPeerState(to: .hangedUp) - } - - - func sendDataChannelMessage(_ message: WebRTCDataChannelMessageJSON) async throws { - guard let peerConnectionHolder = self.peerConnectionHolder else { assertionFailure(); return } - try await peerConnectionHolder.sendDataChannelMessage(message) - } - - - func sendUpdateParticipantsMessageJSON(callParticipants: [CallParticipant]) async throws { - let message = try await UpdateParticipantsMessageJSON(callParticipants: callParticipants).embedInWebRTCDataChannelMessageJSON() - try await sendDataChannelMessage(message) - } - - - func processIceCandidatesJSON(message: IceCandidateJSON) async throws { - guard let peerConnectionHolder = self.peerConnectionHolder else { assertionFailure(); return } - try await peerConnectionHolder.addIceCandidate(iceCandidate: message.iceCandidate) - } - - - func processRemoveIceCandidatesMessageJSON(message: RemoveIceCandidatesMessageJSON) async { - guard let peerConnectionHolder = self.peerConnectionHolder else { return } - await peerConnectionHolder.removeIceCandidates(iceCandidates: message.iceCandidates) - } - -} - - -// MARK: - Timers - -extension CallParticipantImpl { - - private func scheduleConnectingTimeout() { - invalidateConnectingTimeout() - let log = self.log - os_log("☎️ Schedule connecting timeout timer", log: log, type: .info) - let nextConnectingTimeoutInterval = CallParticipantImpl.connectingTimeoutInterval * Double.random(in: 1.0..<1.3) // Approx. between 15 and 20 seconds - let timer = Timer.init(timeInterval: nextConnectingTimeoutInterval, repeats: false) { timer in - guard timer.isValid else { return } - Task { [weak self] in await self?.connectingTimeoutTimerFired() } - } - self.connectingTimeoutTimer = timer - RunLoop.main.add(timer, forMode: .default) - } - - - private func invalidateConnectingTimeout() { - if let timer = self.connectingTimeoutTimer { - os_log("☎️ Invalidating connecting timeout timer", log: log, type: .info) - timer.invalidate() - self.connectingTimeoutTimer = nil - } - } - - - private func connectingTimeoutTimerFired() async { - guard [PeerState.connectingToPeer, .reconnecting].contains(self.state) else { return } - os_log("☎️ Reconnection timer fired -> trying to reconnect after connection loss", log: log, type: .info) - do { - try await reconnectAfterConnectionLoss() - } catch { - os_log("☎️ Could not reconnect: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - } - } - -} - - -// MARK: - Implementing WebrtcPeerConnectionHolderDelegate - -extension CallParticipantImpl: WebrtcPeerConnectionHolderDelegate { - - func shouldISendTheOfferToCallParticipant() async -> Bool { - guard let delegate = delegate else { assertionFailure(); return false } - return delegate.shouldISendTheOfferToCallParticipant(cryptoId: userId.remoteCryptoId) - } - - - func peerConnectionStateDidChange(newState: RTCIceConnectionState) async { - switch newState { - case .new: return - case .checking: - delegate?.connectionIsChecking(for: self) - case .connected: - let oldState = self.state - try? await setPeerState(to: .connected) - await delegate?.connectionIsConnected(for: self, oldParticipantState: oldState) - case .failed, .disconnected: - try? await reconnectAfterConnectionLoss() - case .closed: - await delegate?.connectionWasClosed(for: self) - case .completed, .count: - return - @unknown default: - assertionFailure() - } - } - - - func dataChannel(of peerConnectionHolder: WebrtcPeerConnectionHolder, didReceiveMessage message: WebRTCDataChannelMessageJSON) async { - do { - switch message.messageType { - - case .muted: - let mutedMessage = try MutedMessageJSON.jsonDecode(serializedMessage: message.serializedMessage) - os_log("☎️ MutedMessageJSON received", log: log, type: .info) - await processMutedMessageJSON(message: mutedMessage) - - case .updateParticipant: - let updateParticipantsMessage = try UpdateParticipantsMessageJSON.jsonDecode(serializedMessage: message.serializedMessage) - os_log("☎️ UpdateParticipantsMessageJSON received", log: log, type: .info) - try await processUpdateParticipantsMessageJSON(message: updateParticipantsMessage) - - case .relayMessage: - let relayMessage = try RelayMessageJSON.jsonDecode(serializedMessage: message.serializedMessage) - os_log("☎️ RelayMessageJSON received", log: log, type: .info) - await processRelayMessageJSON(message: relayMessage) - - case .relayedMessage: - let relayedMessage = try RelayedMessageJSON.jsonDecode(serializedMessage: message.serializedMessage) - os_log("☎️ RelayedMessageJSON received", log: log, type: .info) - try await processRelayedMessageJSON(message: relayedMessage) - - case .hangedUpMessage: - let hangedUpMessage = try HangedUpDataChannelMessageJSON.jsonDecode(serializedMessage: message.serializedMessage) - os_log("☎️ HangedUpDataChannelMessageJSON received", log: log, type: .info) - try await processHangedUpMessage(message: hangedUpMessage) - - } - } catch { - os_log("☎️ Failed to parse or process WebRTCDataChannelMessageJSON: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - } - } - - - func dataChannel(of peerConnectionHolder: WebrtcPeerConnectionHolder, didChangeState state: RTCDataChannelState) async { - os_log("☎️ Data channel changed state. New state is %{public}@", log: log, type: .info, state.description) - switch state { - case .open: - await delegate?.dataChannelIsOpened(for: self) - await sendMutedMessageJSON() - case .connecting, .closing, .closed: - break - @unknown default: - assertionFailure() - } - } - - func sendMutedMessageJSON() async { - let message: WebRTCDataChannelMessageJSON - do { - message = try await MutedMessageJSON(muted: isMuted).embedInWebRTCDataChannelMessageJSON() - } catch { - os_log("☎️ Could not send MutedMessageJSON: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - return - } - do { - try await peerConnectionHolder?.sendDataChannelMessage(message) - } catch { - os_log("☎️ Could not send data channel message: %{public}@", log: log, type: .fault, error.localizedDescription) - return - } - } - - - func sendNewIceCandidateMessage(candidate: RTCIceCandidate) async throws { - try await delegate?.sendNewIceCandidateMessage(to: self, iceCandidate: candidate) - } - - - func sendRemoveIceCandidatesMessages(candidates: [RTCIceCandidate]) async throws { - try await delegate?.sendRemoveIceCandidatesMessages(to: self, candidates: candidates) - } - - - /// Send the local description to the call participant corresponding to `self` - func sendLocalDescription(sessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int) async { - - os_log("☎️ Calling sendLocalDescription for a participant", log: log, type: .info) - - guard let delegate = self.delegate else { assertionFailure(); return } - - do { - switch self.state { - case .initial: - os_log("☎️ Sending peer the following SDP: %{public}@", log: log, type: .info, sessionDescription.sdp) - switch ownRole { - case .caller: - guard let turnCredentials = self.turnCredentials else { assertionFailure(); throw Self.makeError(message: "Turn credentials are required") } - try await delegate.sendStartCallMessage(to: self, sessionDescription: sessionDescription, turnCredentials: turnCredentials) - try await setPeerState(to: .startCallMessageSent) - case .recipient: - switch self.role { - case .caller: - try await delegate.sendAnswerCallMessage(to: self, sessionDescription: sessionDescription) - try await setPeerState(to: .connectingToPeer) - case .recipient: - if await shouldISendTheOfferToCallParticipant() { - try await delegate.sendNewParticipantOfferMessage(to: self, sessionDescription: sessionDescription) - try await self.setPeerState(to: .startCallMessageSent) - } else { - try await delegate.sendNewParticipantAnswerMessage(to: self, sessionDescription: sessionDescription) - try await self.setPeerState(to: .connectingToPeer) - } - case .none: - assertionFailure() - return - } - case .none: - assertionFailure() - } - case .connected, .reconnecting: - os_log("☎️ Sending peer the following restart SDP: %{public}@", log: log, type: .info, sessionDescription.sdp) - try await delegate.sendReconnectCallMessage(to: self, sessionDescription: sessionDescription, reconnectCounter: reconnectCounter, peerReconnectCounterToOverride: peerReconnectCounterToOverride) - case .startCallMessageSent, .ringing, .busy, .callRejected, .connectingToPeer, .hangedUp, .kicked, .failed: - break // Do nothing - } - } catch { - try? await self.setPeerState(to: .failed) - assertionFailure() - return - } - - } - -} - - -fileprivate extension IceCandidateJSON { - var iceCandidate: RTCIceCandidate { - RTCIceCandidate(sdp: sdp, sdpMLineIndex: sdpMLineIndex, sdpMid: sdpMid) - } -} - -fileprivate extension RemoveIceCandidatesMessageJSON { - var iceCandidates: [RTCIceCandidate] { - candidates.map { $0.iceCandidate } - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipantUpdateKind.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipantUpdateKind.swift deleted file mode 100644 index 14c6667d..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallParticipant/CallParticipantUpdateKind.swift +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import Foundation - - -// MARK: - CallParticipantUpdateKind - -enum CallParticipantUpdateKind { - case state(newState: PeerState) - case contactID - case contactMuted -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/CXProvider+CallProviderProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/CXProvider+CallProviderProtocol.swift new file mode 100644 index 00000000..9c152e81 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/CXProvider+CallProviderProtocol.swift @@ -0,0 +1,24 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CallKit + + +extension CXProvider: CallProviderProtocol {} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/CallProviderHolder.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/CallProviderHolder.swift new file mode 100644 index 00000000..ed6d1a39 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/CallProviderHolder.swift @@ -0,0 +1,245 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CallKit +import AVFoundation +import ObvSettings + + +protocol CallProviderHolderDelegate: AnyObject { + + // Handling Provider Events + // func providerDidBegin(_ provider: CallProviderHolder) async + func providerDidReset(_ provider: CallProviderHolder) async + + // Determining the Execution of Transactions + // func provider(_ provider: CallProviderHolder, execute transaction: CXTransaction) -> Bool + + // Handling Call Actions + func provider(_ provider: CallProviderHolder, perform: CXStartCallAction) async + func provider(_ provider: CallProviderHolder, perform: CXAnswerCallAction) async + func provider(_ provider: CallProviderHolder, perform: CXEndCallAction) async + //func provider(_ provider: CallProviderHolder, perform: CXSetHeldCallAction) async + func provider(_ provider: CallProviderHolder, perform: CXSetMutedCallAction) async + //func provider(_ provider: CallProviderHolder, perform: CXSetGroupCallAction) async + //func provider(_ provider: CallProviderHolder, perform: CXPlayDTMFCallAction) async + //func provider(_ provider: CallProviderHolder, timedOutPerforming action: CXAction) async + + // Handling Changes to Audio Session Activation State + func provider(_ provider: CallProviderHolder, didActivate audioSession: AVAudioSession) async + func provider(_ provider: CallProviderHolder, didDeactivate audioSession: AVAudioSession) async +} + + +/// Subclass of `NSObject` as this class implements `CXProviderDelegate`. +final class CallProviderHolder: NSObject { + + private let cxProvider: CXProvider + private let nxProvider: NCXProvider + + var provider: CallProviderProtocol { + ObvUICoreDataConstants.useCallKit ? cxProvider : nxProvider + } + + var ncxCallControllerDelegate: NCXCallControllerDelegate { + nxProvider + } + + private weak var delegate: CallProviderHolderDelegate? + + /// The app's provider configuration, representing its CallKit capabilities + /// A `CXProviderConfiguration` object controls the native call UI for incoming and outgoing calls. + private static let providerConfiguration: CXProviderConfiguration = { + let providerConfiguration = CXProviderConfiguration() + providerConfiguration.iconTemplateImageData = UIImage(named: "olvid-callkit-logo")?.pngData() + providerConfiguration.maximumCallGroups = 1 + providerConfiguration.maximumCallsPerCallGroup = 1 + providerConfiguration.supportedHandleTypes = [.generic] + providerConfiguration.supportsVideo = false + providerConfiguration.includesCallsInRecents = ObvMessengerSettings.VoIP.isIncludesCallsInRecentsEnabled + return providerConfiguration + }() + + + override init() { + self.cxProvider = .init(configuration: Self.providerConfiguration) + self.nxProvider = NCXProvider() + super.init() + self.cxProvider.setDelegate(self, queue: nil) + self.nxProvider.setDelegate(self) + } + + + func setDelegate(_ delegate: CallProviderHolderDelegate?) { + self.delegate = delegate + } + +} + + +// MARK: - Implementing CXProviderDelegate + +extension CallProviderHolder: CXProviderDelegate { + + // Handling Provider Events + + func providerDidReset(_ provider: CXProvider) { + genericProviderDidReset(provider) + } + + // Handling Call Actions + + func provider(_ provider: CXProvider, perform action: CXStartCallAction) { + genericProvider(provider, perform: action) + } + + func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) { + genericProvider(provider, perform: action) + } + + func provider(_ provider: CXProvider, perform action: CXEndCallAction) { + genericProvider(provider, perform: action) + } + + func provider(_ provider: CXProvider, perform action: CXSetMutedCallAction) { + genericProvider(provider, perform: action) + } + + // Handling Changes to Audio Session Activation State + + func provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession) { + genericProvider(provider, didActivate: audioSession) + } + + func provider(_ provider: CXProvider, didDeactivate audioSession: AVAudioSession) { + genericProvider(provider, didDeactivate: audioSession) + } + +} + + +// MARK: - Implementing NCXProviderDelegate + +extension CallProviderHolder: NCXProviderDelegate { + + // Handling Call Actions + + func provider(_ provider: NCXProvider, perform action: CXStartCallAction) { + genericProvider(provider, perform: action) + } + + func provider(_ provider: NCXProvider, perform action: CXAnswerCallAction) { + genericProvider(provider, perform: action) + } + + func provider(_ provider: NCXProvider, perform action: CXEndCallAction) { + genericProvider(provider, perform: action) + } + + func provider(_ provider: NCXProvider, perform action: CXSetMutedCallAction) { + genericProvider(provider, perform: action) + } + + + // Handling Changes to Audio Session Activation State + + func provider(_ provider: NCXProvider, didActivate audioSession: AVAudioSession) { + genericProvider(provider, didActivate: audioSession) + } + + func provider(_ provider: NCXProvider, didDeactivate audioSession: AVAudioSession) { + genericProvider(provider, didDeactivate: audioSession) + } + +} + + +// MARK: - For both CXProviderDelegate and NCXProviderDelegate + +extension CallProviderHolder { + + // Handling Provider Events + + private func genericProviderDidReset(_ provider: CallProviderProtocol) { + guard let delegate else { assertionFailure(); return } + Task { [weak self] in + guard let self else { return } + await delegate.providerDidReset(self) + } + } + + // Handling Call Actions + + private func genericProvider(_ provider: CallProviderProtocol, perform action: CXStartCallAction) { + guard let delegate else { assertionFailure(); return } + Task { [weak self] in + guard let self else { return } + await delegate.provider(self, perform: action) + } + } + + + private func genericProvider(_ provider: CallProviderProtocol, perform action: CXAnswerCallAction) { + guard let delegate else { assertionFailure(); return } + Task { [weak self] in + guard let self else { return } + await delegate.provider(self, perform: action) + } + } + + + private func genericProvider(_ provider: CallProviderProtocol, perform action: CXEndCallAction) { + guard let delegate else { assertionFailure(); return } + Task { [weak self] in + guard let self else { return } + await delegate.provider(self, perform: action) + } + } + + + private func genericProvider(_ provider: CallProviderProtocol, perform action: CXSetMutedCallAction) { + guard let delegate else { assertionFailure(); return } + Task { [weak self] in + guard let self else { return } + await delegate.provider(self, perform: action) + } + } + + + // Handling Changes to Audio Session Activation State + + private func genericProvider(_ provider: CallProviderProtocol, didActivate audioSession: AVAudioSession) { + guard let delegate else { assertionFailure(); return } + Task { [weak self] in + guard let self else { return } + await delegate.provider(self, didActivate: audioSession) + } + } + + + private func genericProvider(_ provider: CallProviderProtocol, didDeactivate audioSession: AVAudioSession) { + guard let delegate else { assertionFailure(); return } + Task { [weak self] in + guard let self else { return } + await delegate.provider(self, didDeactivate: audioSession) + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/CallProviderProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/CallProviderProtocol.swift new file mode 100644 index 00000000..d1bad7c9 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/CallProviderProtocol.swift @@ -0,0 +1,34 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CallKit + + +protocol CallProviderProtocol { + + /// We do *not* use the async way for reporting new incoming call. We had too much issues when calling this method on the `CXProvider` while in the background. + func reportNewIncomingCall(with UUID: UUID, update: CXCallUpdate,completion: @escaping (Error?) -> Void) + + func reportOutgoingCall(with: UUID, startedConnectingAt: Date?) + func reportOutgoingCall(with: UUID, connectedAt: Date?) + func reportCall(with: UUID, updated: CXCallUpdate) + func reportCall(with: UUID, endedAt: Date?, reason: CXCallEndedReason) + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/NCXProvider.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/NCXProvider.swift new file mode 100644 index 00000000..97439462 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProvider/NCXProvider.swift @@ -0,0 +1,113 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CallKit +import AVFoundation + + +protocol NCXProviderDelegate: AnyObject { + + // Handling Call Actions + func provider(_ provider: NCXProvider, perform action: CXStartCallAction) + func provider(_ provider: NCXProvider, perform action: CXAnswerCallAction) + func provider(_ provider: NCXProvider, perform action: CXEndCallAction) + func provider(_ provider: NCXProvider, perform action: CXSetMutedCallAction) + + // Handling Changes to Audio Session Activation State (only used in the CallKit case) + func provider(_ provider: NCXProvider, didActivate audioSession: AVAudioSession) + func provider(_ provider: NCXProvider, didDeactivate audioSession: AVAudioSession) + +} + + + + + +final class NCXProvider: CallProviderProtocol { + + private weak var delegate: NCXProviderDelegate? + + func setDelegate(_ delegate: NCXProviderDelegate) { + self.delegate = delegate + } + + + func reportNewIncomingCall(with UUID: UUID, update: CXCallUpdate, completion: @escaping (Error?) -> Void) { + // We do nothing + } + + + func reportOutgoingCall(with: UUID, startedConnectingAt: Date?) { + // We do nothing + } + + + func reportOutgoingCall(with: UUID, connectedAt: Date?) { + // We do nothing + } + + + func reportCall(with: UUID, updated: CXCallUpdate) { + // We do nothing + } + + + func reportCall(with: UUID, endedAt: Date?, reason: CXCallEndedReason) { + // We do nothing + } + +} + + +// MARK: - Implementing NCXCallControllerDelegate + +extension NCXProvider: NCXCallControllerDelegate { + + func process(action: CXAction) async throws { + + guard let delegate else { assertionFailure(); throw ObvError.delegateIsNil } + + switch action { + case let action as CXStartCallAction: + delegate.provider(self, perform: action) + case let action as CXAnswerCallAction: + delegate.provider(self, perform: action) + case let action as CXEndCallAction: + delegate.provider(self, perform: action) + case let action as CXSetMutedCallAction: + delegate.provider(self, perform: action) + default: + assertionFailure("Not implemented (yet)") + } + + } + +} + + +// MARK: - Errors + +extension NCXProvider { + + enum ObvError: Error { + case delegateIsNil + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProviderDelegate.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProviderDelegate.swift new file mode 100644 index 00000000..78873f1b --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallProviderDelegate.swift @@ -0,0 +1,951 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import CallKit +import PushKit +import WebRTC +import ObvEngine +import ObvTypes +import ObvCrypto +import ObvSettings +import ObvUICoreData + + +/// Main class of Olvid's VoIP implementation. +/// +/// Remark: Subclass of NSObject as this class implements `PKPushRegistryDelegate` which inherits from `NSObjectProtocol`. +/// +/// Remark: We do *not* use an external PushRegistryDelegate (as done in Apple sample code). The reason is that, we receiving a pushkit notification +/// using the async delegate method, we need to report the new incoming call to the system immediately (we cannot call any async method or create a Task). +final class CallProviderDelegate: NSObject { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: CallProviderDelegate.self)) + + /// Allows to let the system know about any out-of-band notifications that have happened (i.e., *not* local user actions). + /// When using CallKit, this holds the CXProvider. + /// The second important class is the ``CallControllerHolder`` at the ``OlvidCallManager`` level. + private let callProviderHolder = CallProviderHolder() + private let callManager = OlvidCallManager() + private let pushKitNotificationSynchronizer = PushKitNotificationSynchronizer() + private var pkPushRegistry: PKPushRegistry? + private let obvEngine: ObvEngine + private let rtcPeerConnectionQueue = OperationQueue.createSerialQueue(name: "CallProviderDelegate serial queue common to all OlvidCallParticipantPeerConnectionHolder") + private let callAudioPlayer = OlvidCallAudioPlayer() + + private var notificationTokens = [NSObjectProtocol]() + + private let queueForPostingNotifications = DispatchQueue(label: "CallProviderDelegate queue for posting notifications") + + init(obvEngine: ObvEngine) { + self.obvEngine = obvEngine + super.init() + self.callProviderHolder.setDelegate(self) // CallProviderHolderDelegate + self.callManager.setNCXCallControllerDelegate(self.callProviderHolder.ncxCallControllerDelegate) + Task { [weak self] in + guard let self else { return } + await callManager.setDelegate(to: self) + } + } + + deinit { + notificationTokens.forEach { NotificationCenter.default.removeObserver($0) } + } + + + func performPostInitialization() { + listenToNotifications() + registerToPushKitNotifications() + } + + + private func listenToNotifications() { + + // Internal notifications + + notificationTokens.append(contentsOf: [ + ObvMessengerInternalNotification.observeNewWebRTCMessageWasReceived { (webrtcMessage, fromOlvidUser, messageIdentifierFromEngine) in + Task { [weak self] in + await self?.processReceivedWebRTCMessage( + messageType: webrtcMessage.messageType, + serializedMessagePayload: webrtcMessage.serializedMessagePayload, + uuidForWebRTC: webrtcMessage.callIdentifier, + fromOlvidUser: fromOlvidUser, + messageIdentifierFromEngine: messageIdentifierFromEngine) + } + }, + ObvMessengerInternalNotification.observeUserWantsToCallAndIsAllowedTo { (ownedCryptoId, contactCryptoIds, ownedIdentityForRequestingTurnCredentials, groupId) in + Task { [weak self] in await self?.processUserWantsToCallNotification(ownedCryptoId: ownedCryptoId, contactCryptoIds: contactCryptoIds, ownedIdentityForRequestingTurnCredentials: ownedIdentityForRequestingTurnCredentials, groupId: groupId) } + }, + ]) + + } + + + private func registerToPushKitNotifications() { + guard self.pkPushRegistry == nil else { assertionFailure(); return } + pkPushRegistry = PKPushRegistry(queue: nil) + pkPushRegistry?.delegate = self // PKPushRegistryDelegate + pkPushRegistry?.desiredPushTypes = [.voIP] + } + +} + + +// MARK: - Implementing PKPushRegistryDelegate + +extension CallProviderDelegate: PKPushRegistryDelegate { + + func pushRegistry(_ registry: PKPushRegistry, didUpdate pushCredentials: PKPushCredentials, for type: PKPushType) { + guard type == .voIP else { return } + let voipToken = pushCredentials.token + os_log("☎️✅ We received a voip notification token: %{public}@", log: Self.log, type: .info, voipToken.hexString()) + Task { + await ObvPushNotificationManager.shared.setCurrentVoipToken(to: voipToken) + await ObvPushNotificationManager.shared.requestRegisterToPushNotificationsForAllActiveOwnedIdentities() + } + } + + + func pushRegistry(_ registry: PKPushRegistry, didInvalidatePushTokenFor type: PKPushType) { + guard type == .voIP else { return } + os_log("☎️✅❌ Push Registry did invalidate push token", log: Self.log, type: .info) + Task { + await ObvPushNotificationManager.shared.setCurrentVoipToken(to: nil) + await ObvPushNotificationManager.shared.requestRegisterToPushNotificationsForAllActiveOwnedIdentities() + } + } + + + /// Remark: We do *not* use the async version of the this delegate method, not the async version of ``reportNewIncomingCall(with:update:completion:)`` as we encountered countless issues with them (in particular, when in the background). + func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) { + + os_log("☎️✅ We received a voip notification", log: Self.log, type: .info) + + assert(ObvMessengerSettings.VoIP.receiveCallsOnThisDevice, "When setting receiveCallsOnThisDevice to false, we should have removed the VoIP token from the server (and thus we should not receive this notification)") + + guard let encryptedNotification = ObvEncryptedPushNotification(dict: payload.dictionaryPayload) else { + os_log("☎️ Could not extract encrypted notification", log: Self.log, type: .fault) + reportFakeNewIncomingCall() + return + } + + // We notify the discussions coordinator. + // Eventually the encrypted notification will be decrypted and sent back to us. + + os_log("☎️ We request a decryption of the encrypted notification", log: Self.log, type: .info) + + ObvMessengerInternalNotification.newObvEncryptedPushNotificationWasReceivedViaPushKitNotification(encryptedNotification: encryptedNotification) + .postOnDispatchQueue() + + // The incoming call UUID is derived from the message identifier from engine of the received pushkit notification + + let callIdentifierForCallKit = encryptedNotification.messageIdFromServer.deterministicUUID + + // Get a "fake" CXCallUpdate describing the incoming call. It will be updated once we receive the result of the decryption of the notification. + + let initalUpdate = CXCallUpdate.createForIncomingCallUntilStartCallMessageIsAvailable(callIdentifierForCallKit: callIdentifierForCallKit) + + // Report the incoming call to the system. + // Do so before creating an incoming call so as to make sure reporting the call did not throw. + // Calls may be denied for various legitimate reasons. See CXErrorCodeIncomingCallError. + + os_log("☎️✅ We will report new incoming call to the system", log: Self.log, type: .info) + + callProviderHolder.provider.reportNewIncomingCall(with: callIdentifierForCallKit, update: initalUpdate) { [weak self] error in + + if let error { + os_log("☎️✅❌ We failed to report an incoming call: %{public}@", log: Self.log, type: .info, error.localizedDescription) + DispatchQueue.main.async { + completion() + } + assertionFailure() + return + } + + Task { [weak self] in + DispatchQueue.main.async { + completion() + } + await self?.didReportNewIncomingCallToCallKit(encryptedNotification: encryptedNotification, callIdentifierForCallKit: callIdentifierForCallKit) + } + + } + + } + + + /// Called when we fail to recover the `ObvEncryptedPushNotification` when receiving a `PushKit` notification. + /// Since this "never" happens, we just do what it takes to prevent the system from crashing the app. + private func reportFakeNewIncomingCall() { + let fakeUUIDForCallKit = UUID() + let fakeUpdate = CXCallUpdate.createForIncomingCallUntilStartCallMessageIsAvailable(callIdentifierForCallKit: fakeUUIDForCallKit) + callProviderHolder.provider.reportNewIncomingCall(with: fakeUUIDForCallKit, update: fakeUpdate) { _ in assertionFailure() } + } + + + /// Called after successfully reporting a new incoming call to the system when using `CallKit`. + private func didReportNewIncomingCallToCallKit(encryptedNotification: ObvEncryptedPushNotification, callIdentifierForCallKit: UUID) async { + os_log("☎️✅ Did report new incoming call to the system", log: Self.log, type: .info) + + // Wait for the (decrypted) start call message allowing to create a proper CXCallUpdate + + let callerId: ObvContactIdentifier + let startCallMessage: StartCallMessageJSON + let uuidForWebRTC: UUID + do { + (callerId, startCallMessage, uuidForWebRTC) = try await pushKitNotificationSynchronizer.waitForStartCallMessage(encryptedNotification: encryptedNotification) + } catch { + callProviderHolder.provider.reportCall(with: callIdentifierForCallKit, endedAt: Date(), reason: .failed) + assertionFailure() + return + } + + // Create an incoming call and add it to the call manager + + os_log("☎️ Creating an incoming OlvidCall", log: Self.log, type: .info) + + let incomingCall: OlvidCall + do { + incomingCall = try await callManager.createIncomingCall( + uuidForCallKit: callIdentifierForCallKit, + uuidForWebRTC: uuidForWebRTC, + contactIdentifier: callerId, + startCallMessage: startCallMessage, + rtcPeerConnectionQueue: rtcPeerConnectionQueue, + callDelegate: self) + } catch { + os_log("☎️ Could not create incoming call: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + callProviderHolder.provider.reportCall(with: callIdentifierForCallKit, endedAt: Date(), reason: .failed) + assertionFailure() + return + } + + // Use the updated call to update the CallKit interface + + let update = await incomingCall.createUpToDateCXCallUpdate() + os_log("☎️ Using the created incoming call to update the CXCallProvider", log: Self.log, type: .info) + callProviderHolder.provider.reportCall(with: callIdentifierForCallKit, updated: update) + + } + +} + + +// MARK: - Processing WebRTCMessageJSON messages received from the discussions coordinator + +extension CallProviderDelegate { + + /// This method gets called when a `WebRTCMessageJSON` is received by the discussions coordinator. This is in particular called when a start call message is received either through the websocket, + /// or when an encrypted notification that we notified from the `PushKitNotificationSynchronizer` was successfuly decrypted. + /// It is also called when we need to relay a message received on the data channel of an ongoing call. In that case, the `messageIdentifierFromEngine` is `nil`. This cannot happen for a `StartCallMessageJSON`. + /// + /// + /// + private func processReceivedWebRTCMessage(messageType: WebRTCMessageJSON.MessageType, serializedMessagePayload: String, uuidForWebRTC: UUID, fromOlvidUser: OlvidUserId, messageIdentifierFromEngine: UID?) async { + + do { + + switch messageType { + case .startCall: + guard let messageIdentifierFromEngine else { assertionFailure(); return } + guard let contactIdentifier = fromOlvidUser.contactIdentifier else { assertionFailure(); return } + guard ObvMessengerSettings.VoIP.receiveCallsOnThisDevice else { + // The local user decided not to receive calls on this device. + // If the user has only one device, we reject the call and notify the user that she missed a call due to her settings. + // If she has several devices, we do nothing. + if try await ownedIdentityHasSeveralDevices(ownedCryptoId: fromOlvidUser.ownCryptoId) { + return + } else { + // Notify the caller that the call is not going to be answered + let rejectedMessage = try RejectCallMessageJSON().embedInWebRTCMessageJSON(callIdentifier: uuidForWebRTC) + guard let contactID = fromOlvidUser.contactObjectID else { assertionFailure(); return } + await newWebRTCMessageToSend(webrtcMessage: rejectedMessage, contactID: contactID, forStartingCall: false) + // Notify the local user that a call was missed + let caller = OlvidCallParticipantInfo(contactObjectID: contactID, isCaller: true) + VoIPNotification.reportCallEvent(callUUID: messageIdentifierFromEngine.deterministicUUID, callReport: .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse(caller: caller), groupId: nil, ownedCryptoId: fromOlvidUser.ownCryptoId) + .postOnDispatchQueue() + return + } + } + let startCallMessage = try StartCallMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) + if ObvUICoreDataConstants.useCallKit { + await pushKitNotificationSynchronizer.continuePushKitNotificationProcessing(startCallMessage, messageIdFromServer: messageIdentifierFromEngine, callerId: contactIdentifier, uuidForWebRTC: uuidForWebRTC) + } else { + // Since we are not using CallKit, we don't use manual audio. Note that the CallKit counterpart of this call is made in + // ``pushRegistry(_:didReceiveIncomingPushWith:for:)``, thus, prior reporting the call. + let uuidForCallKit = messageIdentifierFromEngine.deterministicUUID + let incomingCall = try await callManager.createIncomingCall( + uuidForCallKit: uuidForCallKit, + uuidForWebRTC: uuidForWebRTC, + contactIdentifier: contactIdentifier, + startCallMessage: startCallMessage, + rtcPeerConnectionQueue: rtcPeerConnectionQueue, + callDelegate: self) + let update = await incomingCall.createUpToDateCXCallUpdate() + callProviderHolder.provider.reportNewIncomingCall(with: uuidForCallKit, update: update) { error in + if let error { + os_log("☎️ Could not report new incoming call: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + return + } + } + } + case .answerCall: + guard !fromOlvidUser.isOwnedIdentity else { assertionFailure(); return } + let contact = fromOlvidUser + let answerCallMessage = try AnswerCallJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) + try await processAnswerCallMessage(answerCallMessage, uuidForWebRTC: uuidForWebRTC, contact: contact) + + case .rejectCall: + guard !fromOlvidUser.isOwnedIdentity else { assertionFailure(); return } + let contact = fromOlvidUser + let rejectCallMessage = try RejectCallMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) + let (outgoingCall, participantInfo) = try await callManager.processRejectCallMessage(rejectCallMessage, uuidForWebRTC: uuidForWebRTC, contact: contact) + Self.report(call: outgoingCall, report: .rejectedOutgoingCall(from: participantInfo)) + callProviderHolder.provider.reportCall(with: outgoingCall.uuidForCallKit, endedAt: Date(), reason: .unanswered) + + case .hangedUp: + guard !fromOlvidUser.isOwnedIdentity else { assertionFailure(); return } + let contact = fromOlvidUser + let hangedUpMessage = try HangedUpMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) + try await processHangedUpMessage(hangedUpMessage, uuidForWebRTC: uuidForWebRTC, contact: contact) + + case .ringing: + guard !fromOlvidUser.isOwnedIdentity else { assertionFailure(); return } + let contact = fromOlvidUser + _ = try RingingMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) + await callManager.processRingingMessageJSON(uuidForWebRTC: uuidForWebRTC, contact: contact) + + case .busy: + guard !fromOlvidUser.isOwnedIdentity else { assertionFailure(); return } + let contact = fromOlvidUser + _ = try BusyMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) + let (outgoingCall, participantInfo) = try await callManager.processBusyMessageJSON(uuidForWebRTC: uuidForWebRTC, contact: contact) + Self.report(call: outgoingCall, report: .busyOutgoingCall(from: participantInfo)) + + case .reconnect: + guard !fromOlvidUser.isOwnedIdentity else { assertionFailure(); return } + let contact = fromOlvidUser + let reconnectCallMessage = try ReconnectCallMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) + try await callManager.processReconnectCallMessageJSON(reconnectCallMessage, uuidForWebRTC: uuidForWebRTC, contact: contact) + + case .newParticipantAnswer: + guard !fromOlvidUser.isOwnedIdentity else { assertionFailure(); return } + let contact = fromOlvidUser + let newParticipantAnswer = try NewParticipantAnswerMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) + try await callManager.processNewParticipantAnswerMessageJSON(newParticipantAnswer, uuidForWebRTC: uuidForWebRTC, contact: contact) + + case .newParticipantOffer: + guard !fromOlvidUser.isOwnedIdentity else { assertionFailure(); return } + let contact = fromOlvidUser + let newParticipantOffer = try NewParticipantOfferMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) + try await callManager.processNewParticipantOfferMessageJSON(newParticipantOffer, uuidForWebRTC: uuidForWebRTC, contact: contact) + + case .kick: + guard !fromOlvidUser.isOwnedIdentity else { assertionFailure(); return } + let contact = fromOlvidUser + try await processKickMessageJSON(serializedMessagePayload: serializedMessagePayload, uuidForWebRTC: uuidForWebRTC, contact: contact) + + case .newIceCandidate: + guard !fromOlvidUser.isOwnedIdentity else { assertionFailure(); return } + let contact = fromOlvidUser + os_log("☎️❄️ We received new ICE Candidate message: %{public}@", log: Self.log, type: .info, messageType.description) + let iceCandidate = try IceCandidateJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) + try await callManager.processICECandidateForCall(uuidForWebRTC: uuidForWebRTC, iceCandidate: iceCandidate, contact: contact) + + case .removeIceCandidates: + guard !fromOlvidUser.isOwnedIdentity else { assertionFailure(); return } + let contact = fromOlvidUser + let removeIceCandidatesMessage = try RemoveIceCandidatesMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) + try await callManager.processRemoveIceCandidatesMessage(message: removeIceCandidatesMessage, uuidForWebRTC: uuidForWebRTC, contact: contact) + + case .answeredOrRejectedOnOtherDevice: + guard fromOlvidUser.isOwnedIdentity else { assertionFailure(); return } + let answeredOrRejectedOnOtherDeviceMessage = try AnsweredOrRejectedOnOtherDeviceMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) + let (incomingCall, callReport, cxCallEndedReason) = try await callManager.processAnsweredOrRejectedOnOtherDeviceMessage(answered: answeredOrRejectedOnOtherDeviceMessage.answered, uuidForWebRTC: uuidForWebRTC, ownedCryptoId: fromOlvidUser.ownCryptoId) + guard let incomingCall else { return } + if let cxCallEndedReason { + callProviderHolder.provider.reportCall(with: incomingCall.uuidForCallKit, endedAt: Date(), reason: cxCallEndedReason) + } + if let callReport { + Self.report(call: incomingCall, report: callReport) + } + + } + + } catch { + if let error = error as? OlvidCallManager.ObvError, error == .callNotFound { + return + } else { + assertionFailure() + os_log("☎️ Could not parse or process the WebRTCMessageJSON: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + } + } + + } + + + func processKickMessageJSON(serializedMessagePayload: String, uuidForWebRTC: UUID, contact: OlvidUserId) async throws { + let kickMessage = try KickMessageJSON.jsonDecode(serializedMessagePayload: serializedMessagePayload) + let (incomingCall, callReport, cxCallEndedReason) = try await callManager.processKickMessageJSON(kickMessage, uuidForWebRTC: uuidForWebRTC, contact: contact) + if let cxCallEndedReason { + assert(cxCallEndedReason == .remoteEnded) + callProviderHolder.provider.reportCall(with: incomingCall.uuidForCallKit, endedAt: Date(), reason: cxCallEndedReason) + } + if let callReport { + Self.report(call: incomingCall, report: callReport) + } + } + + + private func processAnswerCallMessage(_ answerCallMessage: AnswerCallJSON, uuidForWebRTC: UUID, contact: OlvidUserId) async throws { + do { + let (outgoingCall, participantInfo) = try await callManager.processAnswerCallMessage(answerCallMessage, uuidForWebRTC: uuidForWebRTC, contact: contact) + Self.report(call: outgoingCall, report: .acceptedOutgoingCall(from: participantInfo)) + } catch { + os_log("☎️ Failed to answer call: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + throw error + } + } + + + private func processHangedUpMessage(_ hangedUpMessage: HangedUpMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId) async throws { + + let (call, missedIncomingCallReport) = try await callManager.processHangedUpMessage(hangedUpMessage, uuidForWebRTC: uuidForWebRTC, contact: contact) + + if let missedIncomingCallReport { + Self.report(call: call, report: missedIncomingCallReport) + } + + if call.state.isFinalState { + + // Stop call audio when ending a call in a simulator + stopAudioWhenNotUsingCallKit() + + callProviderHolder.provider.reportCall(with: call.uuidForCallKit, endedAt: Date(), reason: .remoteEnded) + + } + + } + +} + + +// MARK: - Implementing OlvidCallDelegate + +extension CallProviderDelegate: OlvidCallDelegate { + + + /// We leverage the call's state change to let the system know about certain out-of-band notifications that have happened. + func callDidChangeState(call: OlvidCall, previousState: OlvidCall.State, newState: OlvidCall.State) { + + // Calling reportOutgoingCall(with: UUID, startedConnectingAt: Date?) + + switch call.direction { + case .outgoing: + if newState == .outgoingCallIsConnecting { + callProviderHolder.provider.reportOutgoingCall(with: call.uuidForCallKit, startedConnectingAt: Date()) + } + case .incoming: + if newState == .userAnsweredIncomingCall { + callProviderHolder.provider.reportOutgoingCall(with: call.uuidForCallKit, startedConnectingAt: Date()) + } + } + + // Calling reportOutgoingCall(with: UUID, connectedAt: Date?) + + if newState == .callInProgress { + callProviderHolder.provider.reportOutgoingCall(with: call.uuidForCallKit, connectedAt: Date()) + } + + // Notify (allows to show the in-house UI when using CallKit + + if call.direction == .incoming && newState == .userAnsweredIncomingCall { + if call.direction == .incoming && ObvUICoreDataConstants.useCallKit { + let model = OlvidCallViewController.Model(call: call, manager: callManager) + VoIPNotification.newCallToShow(model: model) + .post() + } else { + // The notification was already sent + } + } + + // Notify if a call was ended + + if call.state.isFinalState { + VoIPNotification.callWasEnded(uuidForCallKit: call.uuidForCallKit) + .postOnDispatchQueue() + } + + // Play a sound + + playSound(call: call, previousState: previousState, newState: newState) + + } + + + /// Disconnect sounds are not played in the simulator. For some reason, this dramatically slows down everything. + private func playSound(call: OlvidCall, previousState: OlvidCall.State, newState: OlvidCall.State) { + + switch call.direction { + case .outgoing: + if newState == .ringing { + os_log("☎️ OlvidCall will play sound .ringing", log: Self.log, type: .info) + callAudioPlayer.play(.ringing) + } else if newState == .callInProgress && previousState != .callInProgress { + os_log("☎️ OlvidCall will play sound .connect", log: Self.log, type: .info) + callAudioPlayer.play(.connect) + } else if newState == .reconnecting && previousState != .reconnecting { + callAudioPlayer.play(.reconnecting) + } else if newState.isFinalState && (previousState == .callInProgress || previousState == .ringing), ObvMessengerConstants.isRunningOnRealDevice { + os_log("☎️ OlvidCall will play sound .disconnect", log: Self.log, type: .info) + if !ObvMessengerConstants.targetEnvironmentIsMacCatalyst { + // We do not play the disconnect sound under macOS, the timing is too random in practice + callAudioPlayer.play(.disconnect) + } else { + callAudioPlayer.stop() + } + } else { + callAudioPlayer.stop() + } + case .incoming: + if newState == .callInProgress && previousState != .callInProgress { + os_log("☎️ OlvidCall will play sound .connect", log: Self.log, type: .info) + callAudioPlayer.play(.connect) + } else if newState == .reconnecting && previousState != .reconnecting { + callAudioPlayer.play(.reconnecting) + } else if newState.isFinalState && previousState == .callInProgress, ObvMessengerConstants.isRunningOnRealDevice { + os_log("☎️ OlvidCall will play sound .disconnect", log: Self.log, type: .info) + if !ObvMessengerConstants.targetEnvironmentIsMacCatalyst { + // We do not play the disconnect sound under macOS, the timing is too random in practice + callAudioPlayer.play(.disconnect) + } else { + callAudioPlayer.stop() + } + } else { + callAudioPlayer.stop() + } + } + + } + + + func incomingWasNotAnsweredToAndTimedOut(call: OlvidCall) async { + + let (callReport, cxCallEndedReason) = await callManager.incomingWasNotAnsweredToAndTimedOut(uuidForCallKit: call.uuidForCallKit) + + if let cxCallEndedReason { + assert(cxCallEndedReason == .unanswered) + callProviderHolder.provider.reportCall(with: call.uuidForCallKit, endedAt: Date(), reason: cxCallEndedReason) + } + + if let callReport { + Self.report(call: call, report: callReport) + } + + } + + + func requestTurnCredentialsForCall(call: OlvidCall, ownedIdentityForRequestingTurnCredentials: ObvCryptoId) async throws -> ObvTurnCredentials { + return try await obvEngine.getTurnCredentials(ownedCryptoId: ownedIdentityForRequestingTurnCredentials) + } + + + func newWebRTCMessageToSend(webrtcMessage: ObvUICoreData.WebRTCMessageJSON, contactID: ObvUICoreData.TypeSafeManagedObjectID, forStartingCall: Bool) async { + os_log("☎️ Posting a newWebRTCMessageToSend", log: Self.log, type: .info) + VoIPNotification.newWebRTCMessageToSend(webrtcMessage: webrtcMessage, contactID: contactID, forStartingCall: forStartingCall) + .postOnDispatchQueue(queueForPostingNotifications) + } + + + func newParticipantWasAdded(call: OlvidCall, callParticipant: OlvidCallParticipant) async { + switch call.direction { + case .incoming: + Self.report(call: call, report: .newParticipantInIncomingCall(callParticipant.info)) + case .outgoing: + Self.report(call: call, report: .newParticipantInOutgoingCall(callParticipant.info)) + } + let update = await call.createUpToDateCXCallUpdate() + callProviderHolder.provider.reportCall(with: call.uuidForCallKit, updated: update) + } + + + private static func report(call: OlvidCall, report: CallReport) { + os_log("☎️📖 Report call to user as %{public}@", log: Self.log, type: .info, report.description) + VoIPNotification.reportCallEvent(callUUID: call.uuidForCallKit, callReport: report, groupId: call.groupId, ownedCryptoId: call.ownedCryptoId) + .postOnDispatchQueue() + } + + + func receivedRelayedMessage(call: OlvidCall, messageType: WebRTCMessageJSON.MessageType, serializedMessagePayload: String, uuidForWebRTC: UUID, fromOlvidUser: OlvidUserId) async { + await self.processReceivedWebRTCMessage( + messageType: messageType, + serializedMessagePayload: serializedMessagePayload, + uuidForWebRTC: uuidForWebRTC, + fromOlvidUser: fromOlvidUser, + messageIdentifierFromEngine: nil) + } + + + func receivedHangedUpMessage(call: OlvidCall, serializedMessagePayload: String, uuidForWebRTC: UUID, fromOlvidUser: OlvidUserId) async { + await self.processReceivedWebRTCMessage( + messageType: .hangedUp, + serializedMessagePayload: serializedMessagePayload, + uuidForWebRTC: uuidForWebRTC, + fromOlvidUser: fromOlvidUser, + messageIdentifierFromEngine: nil) + } + +} + + +// MARK: - Processing user requests + +extension CallProviderDelegate { + + private func processUserWantsToCallNotification(ownedCryptoId: ObvCryptoId, contactCryptoIds: Set, ownedIdentityForRequestingTurnCredentials: ObvCryptoId, groupId: GroupIdentifier?) async { + + let granted = await AVAudioSession.sharedInstance().requestRecordPermission() + + if granted { + + do { + // The following call will eventually trigger a system call to provider(_ provider: CXProvider, perform action: CXStartCallAction) + try await callManager.localUserWantsToStartOutgoingCall( + ownedCryptoId: ownedCryptoId, + contactCryptoIds: contactCryptoIds, + ownedIdentityForRequestingTurnCredentials: ownedIdentityForRequestingTurnCredentials, + groupId: groupId, + rtcPeerConnectionQueue: rtcPeerConnectionQueue, + olvidCallDelegate: self) + } catch { + os_log("☎️ Failed to create outgoing call %{public}@", log: Self.log, type: .info, error.localizedDescription) + assertionFailure() + return + } + + } else { + + ObvMessengerInternalNotification.outgoingCallFailedBecauseUserDeniedRecordPermission + .postOnDispatchQueue(queueForPostingNotifications) + + } + + } + +} + + +// MARK: - Implementing ObvProviderDelegate + +extension CallProviderDelegate: CallProviderHolderDelegate { + + /// Required method of the `CXProviderDelegate` protocol. + func providerDidReset(_ provider: CallProviderHolder) async { + assertionFailure() + os_log("☎️ Provider did reset", log: Self.log, type: .info) + } + + + /// Called by the system when the user starts an outgoing call. + func provider(_ provider: CallProviderHolder, perform action: CXStartCallAction) async { + os_log("☎️ Call to provider(CXStartCallAction) for call with uuidForCallKit %{public}@", log: Self.log, type: .info, action.callUUID.debugDescription) + do { + + // Configure the audio session but do not start call audio here. + // When using CallKit, call audio should not be started until the audio session is activated by the system, + // after having its priority elevated. + await configureAudioSession() + + // Trigger the call to be started via the underlying network service. + let upToDateCXCallUpdate = try await callManager.localUserWantsToPerform(action) + + // Signal to the system that the action was successfully performed. + os_log("☎️ Fulfills call to provider(CXStartCallAction) for call with uuidForCallKit %{public}@", log: Self.log, type: .info, action.callUUID.debugDescription) + action.fulfill() + + // If we stop here, the name displayed within iOS call log is incorrect (it shows the call UUID). Updating the call right now does the trick. + os_log("☎️ Using the created incoming call to update the CXCallProvider", log: Self.log, type: .info) + callProviderHolder.provider.reportCall(with: action.callUUID, updated: upToDateCXCallUpdate) + + } catch { + os_log("☎️ Fails call to provider(CXStartCallAction) for call with uuidForCallKit %{public}@", log: Self.log, type: .error, action.callUUID.debugDescription) + assertionFailure() + action.fail() + } + } + + + /// Called by the system when the user answers an incoming call from the CallKit interface. Also called when the user accepts a call from the non-CallKit interface (on a simulator). + /// In that last case, we created a `CXAnswerCallAction` ourselves at the OlvidCallManager level. + func provider(_ provider: CallProviderHolder, perform action: CXAnswerCallAction) async { + os_log("☎️ [CXAnswerCallAction] Call to provider(CXAnswerCallAction) for call with uuidForCallKit %{public}@", log: Self.log, type: .info, action.callUUID.debugDescription) + do { + + // Configure the audio session but do not start call audio here. + // When using CallKit, call audio should not be started until the audio session is activated by the system, + // after having its priority elevated. + await configureAudioSession() + + // Trigger the call to be answered via the underlying network service. + let (incomingCall, callerInfo, answeredOnOtherDeviceMessageJSON) = try await callManager.localUserWantsToPerform(action) + + // Signal to the system that the action was successfully performed. + os_log("☎️ [CXAnswerCallAction] Fulfills call to provider(CXAnswerCallAction) for call with uuidForCallKit %{public}@", log: Self.log, type: .info, action.callUUID.debugDescription) + action.fulfill() + + Self.report(call: incomingCall, report: .acceptedIncomingCall(caller: callerInfo)) + + // Notify other owned devices that the call was accepted on this device + + if let answeredOnOtherDeviceMessageJSON { + VoIPNotification.newOwnedWebRTCMessageToSend(ownedCryptoId: incomingCall.ownedCryptoId, webrtcMessage: answeredOnOtherDeviceMessageJSON) + .postOnDispatchQueue() + } + + } catch { + os_log("☎️ [CXAnswerCallAction] Fails call to provider(CXAnswerCallAction) for call with uuidForCallKit %{public}@", log: Self.log, type: .error, action.callUUID.debugDescription) + assertionFailure() + action.fail() + } + } + + + /// Called by the system when the user ends (or rejects) an incoming call from the CallKit interface or as a result of a `CXEndCallAction` requested by the `OlvidCallManager` (triggered by the Olvid UI). + /// Note that this is *not* called when the call is ended by the contact. + func provider(_ provider: CallProviderHolder, perform action: CXEndCallAction) async { + os_log("☎️ Call to provider(CXEndCallAction) for call with uuidForCallKit %{public}@", log: Self.log, type: .info, action.callUUID.debugDescription) + do { + + // Let the OlvidCallManager end the call. + // This returns an optional report as well as the call removed from the list of calls. + let (call, report, rejectedOnOtherDeviceMessageJSON) = try await callManager.localUserWantsToPerform(action) + + // If there is a report to send, do it now + if let call, let report { + Self.report(call: call, report: report) + } + + // Stop call audio when ending a call in a simulator + stopAudioWhenNotUsingCallKit() + + // Signal to the system that the action was successfully performed. + os_log("☎️ Fulfills call to provider(CXEndCallAction) for call with uuidForCallKit %{public}@", log: Self.log, type: .info, action.callUUID.debugDescription) + action.fulfill() + + // If answeredOnOtherDeviceMessageJSON != nil, it means we have to notify other owned devices that the call was rejected on this device + + if let call, let rejectedOnOtherDeviceMessageJSON { + VoIPNotification.newOwnedWebRTCMessageToSend(ownedCryptoId: call.ownedCryptoId, webrtcMessage: rejectedOnOtherDeviceMessageJSON) + .postOnDispatchQueue() + } + + } catch { + os_log("☎️ Fails call to provider(CXEndCallAction) for call with uuidForCallKit %{public}@", log: Self.log, type: .error, action.callUUID.debugDescription) + assertionFailure() + action.fail() + } + } + + + func provider(_ provider: CallProviderHolder, perform action: CXSetMutedCallAction) async { + os_log("☎️ Call to provider(CXSetMutedCallAction) for call with uuidForCallKit %{public}@", log: Self.log, type: .info, action.callUUID.debugDescription) + do { + + try await callManager.localUserWantsToSetMuteSelf(action) + os_log("☎️ Fulfills call to provider(CXSetMutedCallAction) for call with uuidForCallKit %{public}@", log: Self.log, type: .info, action.callUUID.debugDescription) + action.fulfill() + + } catch { + os_log("☎️ Fails call to provider(CXSetMutedCallAction) for call with uuidForCallKit %{public}@", log: Self.log, type: .error, action.callUUID.debugDescription) + assertionFailure() + action.fail() + } + } + + + /// This delegate method is called *only* when using CallKit. + func provider(_ provider: CallProviderHolder, didActivate audioSession: AVAudioSession) async { + // See https://stackoverflow.com/a/55781328 + os_log("☎️🎵 Provider did activate audioSession %{public}@", log: Self.log, type: .info, audioSession.description) + RTCAudioSession.sharedInstance().audioSessionDidActivate(audioSession) + if RTCAudioSession.sharedInstance().useManualAudio { + // true when using CallKit + RTCAudioSession.sharedInstance().isAudioEnabled = true + } + } + + + /// This delegate method is called *only* when using CallKit. + func provider(_ provider: CallProviderHolder, didDeactivate audioSession: AVAudioSession) async { + os_log("☎️🎵 Provider did deactivate audioSession %{public}@", log: Self.log, type: .info, audioSession.description) + RTCAudioSession.sharedInstance().audioSessionDidDeactivate(audioSession) + if RTCAudioSession.sharedInstance().useManualAudio { + // true when using CallKit + RTCAudioSession.sharedInstance().isAudioEnabled = false + } + } + +} + + +// MARK: - Audio utils + +extension CallProviderDelegate { + + private func configureAudioSession() async { + os_log("☎️🎵 Configure audio session", log: Self.log, type: .info) + let op = ConfigureAudioSessionOperation() + os_log("☎️ Operations in the queue: %{public}@ before adding %{public}@", log: Self.log, type: .info, rtcPeerConnectionQueue.operations.debugDescription, op.debugDescription) + await rtcPeerConnectionQueue.addAndAwaitOperation(op) + if op.isCancelled { + os_log("☎️🎵 Audio configuration failed", log: Self.log, type: .fault) + // We do not throw as the configuration fails sometimes (e.g., when accepting an incoming call while another Olvid call was in progress). + // In the failure cases we encoutered, the call worked anyway. + } + } + + + /// This is called when ending a call (both incoming and ougoing). In the CallKit case, this does nothing, as the same work is done at the appropriate time in ``provider(_:didDeactivate:)``. + /// In the non-CallKit case, we stop the WebRTC audio. + func stopAudioWhenNotUsingCallKit() { + if !(ObvUICoreDataConstants.useCallKit) { + // We don't await until the audio session is stopped + // To allow the call window to close quickly, we wait some time before diactivating audio + let rtcPeerConnectionQueue = self.rtcPeerConnectionQueue + rtcPeerConnectionQueue.addOperation { + os_log("☎️🔚 Deactivating audio on end call", log: Self.log, type: .info) + RTCAudioSession.sharedInstance().isAudioEnabled = false + try? RTCAudioSession.sharedInstance().setActive(false) + os_log("☎️🔚 Deactivated audio on end call", log: Self.log, type: .info) + } + } + } + +} + + +// MARK: - Implementing OlvidCallManagerDelegate + +extension CallProviderDelegate: OlvidCallManagerDelegate { + + func callWasAdded(callManager: OlvidCallManager, call: OlvidCall) async { + let model = OlvidCallViewController.Model(call: call, manager: callManager) + if call.direction == .incoming && ObvUICoreDataConstants.useCallKit { + // In the CallKit case, we don't want to show the in-house UI together with the CallKit UI for an incoming call. + // We wait until the local user accepts the incoming call. + } else { + VoIPNotification.newCallToShow(model: model) + .post() + } + } + + nonisolated + func callWasRemoved(callManager: OlvidCallManager, removedCall: OlvidCall, callStillInProgress: OlvidCall?) async { + + os_log("☎️🔚 Call to callWasRemoved(callManager: OlvidCallManager, removedCall: OlvidCall, callStillInProgress: OlvidCall?)", log: Self.log, type: .info) + + if let callStillInProgress { + let model = OlvidCallViewController.Model(call: callStillInProgress, manager: callManager) + VoIPNotification.newCallToShow(model: model) + .post() + } else { + VoIPNotification.noMoreCallInProgress + .postOnDispatchQueue() + } + + } + +} + + +// MARK: - Errors + +extension CallProviderDelegate { + + enum ObvError: Error { + case audioConfigurationFailed + case couldNotFindIncomingCallInCallManager + case couldNotFindOutgoingCallInCallManager + case noSpecifiedOwnedCryptoIdForRequestingTurnCredentialsForOutgoingCall + } + +} + + +// MARK: - Extensions / Helpers + +fileprivate extension CallProviderDelegate { + + @MainActor + func ownedIdentityHasSeveralDevices(ownedCryptoId: ObvCryptoId) async throws -> Bool { + guard let ownedIdentity = try PersistedObvOwnedIdentity.get(cryptoId: ownedCryptoId, within: ObvStack.shared.viewContext) else { assertionFailure(); return false } + return ownedIdentity.devices.count > 1 + } + +} + +fileprivate extension ObvEncryptedPushNotification { + + init?(dict: [AnyHashable: Any]) { + + guard let wrappedKeyString = dict["encryptedHeader"] as? String else { return nil } + guard let encryptedContentString = dict["encryptedMessage"] as? String else { return nil } + + guard let wrappedKey = Data(base64Encoded: wrappedKeyString), + let encryptedContent = Data(base64Encoded: encryptedContentString), + let maskingUID = dict["maskinguid"] as? String, + let messageUploadTimestampFromServerAsDouble = dict["timestamp"] as? Double, + let messageIdFromServer = dict["messageuid"] as? String else { + return nil + } + + let messageUploadTimestampFromServer = Date(timeIntervalSince1970: messageUploadTimestampFromServerAsDouble / 1000.0) + + self.init(messageIdFromServer: messageIdFromServer, + wrappedKey: wrappedKey, + encryptedContent: encryptedContent, + encryptedExtendedContent: nil, + maskingUID: maskingUID, + messageUploadTimestampFromServer: messageUploadTimestampFromServer, + localDownloadTimestamp: Date()) + + } + +} + + +extension CXCallUpdate { + + static func createForIncomingCallUntilStartCallMessageIsAvailable(callIdentifierForCallKit: UUID) -> Self { + let update = Self() + update.localizedCallerName = "..." + update.remoteHandle = .init(type: .generic, value: callIdentifierForCallKit.uuidString) + update.hasVideo = false + update.supportsGrouping = false + update.supportsUngrouping = false + update.supportsHolding = false + update.supportsDTMF = false + return update + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallSupport.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallSupport.swift deleted file mode 100644 index 41b9f8bf..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallSupport.swift +++ /dev/null @@ -1,233 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import AVKit - -protocol ObvCallManager { - - var isCallKit: Bool { get } - - func requestEndCallAction(call: Call) async throws - func requestAnswerCallAction(incomingCall: Call) async throws - func requestMuteCallAction(call: Call) async throws - func requestUnmuteCallAction(call: Call) async throws - func requestStartCallAction(call: Call, contactIdentifier: String, handleValue: String) async throws -} - -protocol ObvCallUpdate { - var remoteHandle_: ObvHandle? { get set } - var localizedCallerName: String? { get set } - var supportsHolding: Bool { get set } - var supportsGrouping: Bool { get set } - var supportsUngrouping: Bool { get set } - var supportsDTMF: Bool { get set } - var hasVideo: Bool { get set } -} -struct ObvCallUpdateImpl: ObvCallUpdate { - var remoteHandle_: ObvHandle? - var localizedCallerName: String? - var supportsHolding: Bool = false - var supportsGrouping: Bool = false - var supportsUngrouping: Bool = false - var supportsDTMF: Bool = false - var hasVideo: Bool = false -} - - -enum ObvCallEndedReason { - case failed - case remoteEnded - case unanswered - case answeredElsewhere - case declinedElsewhere -} - -protocol ObvProviderConfiguration { - var localizedName: String? { get } - var ringtoneSound: String? { get set } - var iconTemplateImageData: Data? { get set } - var maximumCallGroups: Int { get set } - var maximumCallsPerCallGroup: Int { get set } - var includesCallsInRecents: Bool { get set } - var supportsVideo: Bool { get set } - var supportedHandleTypes_: Set { get set } -} - -struct ObvProviderConfigurationImpl: ObvProviderConfiguration { - var localizedName: String? - var ringtoneSound: String? - var iconTemplateImageData: Data? - var maximumCallGroups: Int = 2 - var maximumCallsPerCallGroup: Int = 5 - var includesCallsInRecents: Bool = true - var supportsVideo: Bool = false - var supportedHandleTypes_: Set = Set() -} - -enum ObvErrorCodeIncomingCallError: Int { - case unknown = 0 - case unentitled = 1 - case callUUIDAlreadyExists = 2 - case filteredByDoNotDisturb = 3 - case filteredByBlockList = 4 - - case maximumCallGroupsReached = 5 // For NCX -} - -protocol ObvProvider: AnyObject { - - var isCallKit: Bool { get } - - func setDelegate(_ delegate: ObvProviderDelegate?, queue: DispatchQueue?) - - /// Report a cancelled incoming call. - func reportNewCancelledIncomingCall() - - /// Report a new incoming call to the system. - /// If completion is invoked with a non-nil `error`, the incoming call has been disallowed by the system and will not be displayed, so the provider should not proceed with the call. - /// Completion block will be called on delegate queue, if specified, otherwise on a private serial queue. - func reportNewIncomingCall(with UUID: UUID, update: ObvCallUpdate, completion: @escaping (Result) -> Void) - - /// Report an update to call information. - func reportCall(with UUID: UUID, updated update: ObvCallUpdate) - - /// Report that a call ended. A nil value for `dateEnded` results in the ended date being set to now. - func reportCall(with UUID: UUID, endedAt dateEnded: Date?, reason endedReason: ObvCallEndedReason) - - /// Report that an outgoing call started connecting. A nil value for `dateStartedConnecting` results in the started connecting date being set to now. - func reportOutgoingCall(with UUID: UUID, startedConnectingAt dateStartedConnecting: Date?) - - /// Report that an outgoing call connected. A nil value for `dateConnected` results in the connected date being set to now. - func reportOutgoingCall(with UUID: UUID, connectedAt dateConnected: Date?) - - var configuration_: ObvProviderConfiguration { get set } - - /// Invalidate the receiver. All existing calls will be marked as ended in failure. The provider must be invalidated before it is deallocated. - func invalidate() -} - -enum ObvHandleType: Int { - case generic = 1 - case phoneNumber = 2 - case emailAddress = 3 -} - -protocol ObvHandle { - var type_: ObvHandleType { get } - var value: String { get } -} -struct ObvHandleImpl: ObvHandle { - var type_: ObvHandleType - var value: String -} -protocol ObvAction { - - var debugDescription: String { get } - - var isComplete: Bool { get } - - /// Report successful execution of the receiver. - func fulfill() - - /// Report failed execution of the receiver. - func fail() -} - -enum ObvActionKind { - case start - case answer - case end - case held - case mute - case playDTMF -} - -protocol ObvCallAction: ObvAction { - var callUUID: UUID { get } -} - -protocol ObvStartCallAction: ObvCallAction { - var handle_: ObvHandle { get } - var contactIdentifier: String? { get } - var isVideo: Bool { get } - - func fulfill(withDateStarted: Date) -} - -protocol ObvAnswerCallAction: ObvCallAction { - func fulfill(withDateConnected: Date) -} - -protocol ObvEndCallAction: ObvCallAction { - func fulfill(withDateEnded: Date) -} - -protocol ObvSetHeldCallAction: ObvCallAction { - var isOnHold: Bool { get } -} - -protocol ObvSetMutedCallAction: ObvCallAction { - var isMuted: Bool { get } -} - -enum ObvPlayDTMFCallActionType: Int { - case singleTone = 1 - case softPause = 2 - case hardPause = 3 - case unknown = 100 -} - -protocol ObvPlayDTMFCallAction: ObvCallAction { - var digits: String { get } - var type_: ObvPlayDTMFCallActionType { get } -} - -protocol ObvProviderDelegate: AnyObject { - func providerDidBegin() async - func providerDidReset() async - func provider(perform action: ObvStartCallAction) async - func provider(perform action: ObvAnswerCallAction) async - func provider(perform action: ObvEndCallAction) async - func provider(perform action: ObvSetHeldCallAction) async - func provider(perform action: ObvSetMutedCallAction) async - func provider(perform action: ObvPlayDTMFCallAction) async - func provider(timedOutPerforming action: ObvAction) async - func provider(didActivate audioSession: AVAudioSession) async - func provider(didDeactivate audioSession: AVAudioSession) async -} - -protocol ObvCall: AnyObject { - var uuid: UUID { get } - var isOutgoing: Bool { get } - var isOnHold: Bool { get } - var hasConnected: Bool { get } - var hasEnded: Bool { get } -} - -protocol ObvCallObserverDelegate: AnyObject { - func callObserver(callChanged call: ObvCall) -} -protocol ObvCallObserver { - /// Retrieve the current call list, blocking on initial state retrieval if necessary - var calls_: [ObvCall] { get } - /// Set delegate and optional queue for delegate callbacks to be performed on. - /// A nil queue implies that delegate callbacks should happen on the main queue. The delegate is stored weakly - func setDelegate(_ delegate: ObvCallObserverDelegate?, queue: DispatchQueue?) -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/AVAudioSessionPortDescription+isSpeaker.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/AVAudioSessionPortDescription+isSpeaker.swift new file mode 100644 index 00000000..a91b55f5 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/AVAudioSessionPortDescription+isSpeaker.swift @@ -0,0 +1,30 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import AVFAudio + + +extension AVAudioSessionPortDescription { + + var isSpeaker: Bool { + return portType == AVAudioSession.Port.builtInSpeaker + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallReport.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/CallReport.swift similarity index 66% rename from iOSClient/ObvMessenger/ObvMessenger/VoIP/CallReport.swift rename to iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/CallReport.swift index f2d82d72..94bb5254 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/CallReport.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/CallReport.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -22,19 +22,21 @@ import ObvEngine import ObvUICoreData enum CallReport { - case missedIncomingCall(caller: ParticipantInfo?, participantCount: Int?) - case filteredIncomingCall(caller: ParticipantInfo?, participantCount: Int?) - case rejectedIncomingCall(caller: ParticipantInfo?, participantCount: Int?) - case rejectedIncomingCallBecauseOfDeniedRecordPermission(caller: ParticipantInfo?, participantCount: Int?) - case acceptedIncomingCall(caller: ParticipantInfo?) - case newParticipantInIncomingCall(_: ParticipantInfo?) + case missedIncomingCall(caller: OlvidCallParticipantInfo?, participantCount: Int?) + case filteredIncomingCall(caller: OlvidCallParticipantInfo?, participantCount: Int?) + case rejectedIncomingCall(caller: OlvidCallParticipantInfo?, participantCount: Int?) + case rejectedIncomingCallBecauseOfDeniedRecordPermission(caller: OlvidCallParticipantInfo?, participantCount: Int?) + case rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse(caller: OlvidCallParticipantInfo) + case acceptedIncomingCall(caller: OlvidCallParticipantInfo?) + case newParticipantInIncomingCall(_: OlvidCallParticipantInfo?) + case answeredOrRejectedOnOtherDevice(caller: OlvidCallParticipantInfo?, answered: Bool) - case acceptedOutgoingCall(from: ParticipantInfo?) - case rejectedOutgoingCall(from: ParticipantInfo?) - case busyOutgoingCall(from: ParticipantInfo?) - case unansweredOutgoingCall(with: [ParticipantInfo?]) - case uncompletedOutgoingCall(with: [ParticipantInfo?]) - case newParticipantInOutgoingCall(_: ParticipantInfo?) + case acceptedOutgoingCall(from: OlvidCallParticipantInfo?) + case rejectedOutgoingCall(from: OlvidCallParticipantInfo?) + case busyOutgoingCall(from: OlvidCallParticipantInfo?) + case unansweredOutgoingCall(with: [OlvidCallParticipantInfo?]) + case uncompletedOutgoingCall(with: [OlvidCallParticipantInfo?]) + case newParticipantInOutgoingCall(_: OlvidCallParticipantInfo?) } extension CallReport: CustomStringConvertible { @@ -53,10 +55,14 @@ extension CallReport: CustomStringConvertible { case .uncompletedOutgoingCall: return .uncompletedOutgoingCall case .newParticipantInIncomingCall: return .newParticipantInIncomingCall case .newParticipantInOutgoingCall: return .newParticipantInOutgoingCall + case .answeredOrRejectedOnOtherDevice(caller: _, answered: let answered): + return answered ? .answeredOnOtherDevice : .rejectedOnOtherDevice + case .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse: + return .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse } } - var participantInfos: [ParticipantInfo?] { + var participantInfos: [OlvidCallParticipantInfo?] { switch self { case .missedIncomingCall(caller: let caller, _): return [caller] @@ -82,13 +88,17 @@ extension CallReport: CustomStringConvertible { return [participant] case .newParticipantInOutgoingCall(let participant): return [participant] + case .answeredOrRejectedOnOtherDevice(caller: let caller, answered: _): + return [caller] + case .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse(caller: let caller): + return [caller] } } var isIncoming: Bool { switch self { - case .missedIncomingCall, .filteredIncomingCall, .rejectedIncomingCall, .acceptedIncomingCall, .newParticipantInIncomingCall, .rejectedIncomingCallBecauseOfDeniedRecordPermission: + case .missedIncomingCall, .filteredIncomingCall, .rejectedIncomingCall, .acceptedIncomingCall, .newParticipantInIncomingCall, .rejectedIncomingCallBecauseOfDeniedRecordPermission, .answeredOrRejectedOnOtherDevice, .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse: return true case .acceptedOutgoingCall, .rejectedOutgoingCall, .busyOutgoingCall, .unansweredOutgoingCall, .uncompletedOutgoingCall, .newParticipantInOutgoingCall: return false @@ -109,6 +119,8 @@ extension CallReport: CustomStringConvertible { case .uncompletedOutgoingCall: return "uncompletedOutgoingCall" case .newParticipantInIncomingCall: return "newParticipantInIncomingCall" case .newParticipantInOutgoingCall: return "newParticipantInOutgoingCall" + case .answeredOrRejectedOnOtherDevice: return "answeredOrRejectedOnOtherDevice" + case .rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse: return "rejectedIncomingCallAsTheReceiveCallsOnThisDeviceSettingIsFalse" } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/CallSounds.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/CallSounds.swift deleted file mode 100644 index 7c5e100a..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/CallSounds.swift +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import UIKit -import AVFoundation -import ObvUICoreData - - -enum CallSound: Sound, CaseIterable { - - case ringing - case connect - case disconnect - - var filename: String? { - switch self { - case .ringing: return "ringing.mp3" - case .connect: return "connect.mp3" - case .disconnect: return "disconnect.mp3" - } - } - - var loops: Bool { - switch self { - case .ringing: - return true - case .connect, .disconnect: - return false - } - } - - var feedback: UINotificationFeedbackGenerator.FeedbackType? { - switch self { - case .ringing: - return nil - case .connect: - return .success - case .disconnect: - return .error - } - } -} - -@MainActor -final class CallSounds { - static private(set) var shared = SoundsPlayer() -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/DataChannelWorker.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/DataChannelWorker.swift deleted file mode 100644 index 408fcdbc..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/DataChannelWorker.swift +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import os.log -import WebRTC - - -protocol CallDataChannelWorkerDelegate: AnyObject { - func dataChannel(didReceiveMessage message: WebRTCDataChannelMessageJSON) async - func dataChannel(didChangeState state: RTCDataChannelState) async -} - - -/// This class allows to create an object that conforms to the `RTCDataChannelDelegate` protocol. It is typically instanciated as call local variable so -/// as to receive and post messages/data within the data channel corresponding to the peer connection holder of the call. -final class DataChannelWorker: NSObject, RTCDataChannelDelegate { - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: DataChannelWorker.self)) - private static func makeError(message: String) -> Error { - NSError(domain: String(describing: self), code: 0, userInfo: [NSLocalizedFailureReasonErrorKey: message]) - } - private func makeError(message: String) -> Error { - DataChannelWorker.makeError(message: message) - } - - weak var delegate: CallDataChannelWorkerDelegate? - - private let peerConnection: ObvPeerConnection - - init(with peerConnection: ObvPeerConnection) async throws { - self.peerConnection = peerConnection - super.init() - - let configuration = RTCDataChannelConfiguration() - configuration.isOrdered = true - configuration.isNegotiated = true - configuration.channelId = 1 - await peerConnection.createDataChannel(for: "data0", with: configuration, delegate: self) - } - - - func sendDataChannelMessage(_ message: WebRTCDataChannelMessageJSON) async throws { - let data = try message.jsonEncode() - let buffer = RTCDataBuffer(data: data, isBinary: false) - guard await peerConnection.sendData(buffer: buffer) else { - throw makeError(message: "☎️ Failed to send message of type \(message.messageType.description) on webrtc data channel") - } - } - -} - - -// MARK: - RTCDataChannelDelegate - -extension DataChannelWorker { - - func dataChannelDidChangeState(_ dataChannel: RTCDataChannel) { - os_log("☎️ Data Channel %{public}@ has a new state: %{public}@", log: log, type: .info, dataChannel.debugDescription, dataChannel.readyState.description) - assert(delegate != nil) - Task { - await delegate?.dataChannel(didChangeState: dataChannel.readyState) - } - } - - func dataChannel(_ dataChannel: RTCDataChannel, didReceiveMessageWith buffer: RTCDataBuffer) { - os_log("☎️ Data Channel %{public}@ did receive message with buffer", log: log, type: .info, dataChannel.debugDescription) - assert(!buffer.isBinary) - let webRTCDataChannelMessageJSON: WebRTCDataChannelMessageJSON - do { - webRTCDataChannelMessageJSON = try WebRTCDataChannelMessageJSON.jsonDecode(data: buffer.data) - } catch { - os_log("☎️ Could not decode message received on the RTC data channel as a WebRTCMessageJSON: %{public}@", log: log, type: .fault, error.localizedDescription) - return - } - assert(delegate != nil) - Task { await delegate?.dataChannel(didReceiveMessage: webRTCDataChannelMessageJSON) } - } - -} - - -// MARK: - RTCDataChannelState+CustomStringConvertible - -extension RTCDataChannelState: CustomStringConvertible { - - public var description: String { - switch self { - case .connecting: return "connecting" - case .closed: return "closed" - case .closing: return "closing" - case .open: return "open" - default: - assertionFailure() - return "unknown" - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/OlvidCallAudioPlayer.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/OlvidCallAudioPlayer.swift new file mode 100644 index 00000000..0d685edb --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/OlvidCallAudioPlayer.swift @@ -0,0 +1,160 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import AVFAudio +import os.log + + +/// Very simple player used instead of the ``SoundsPlayer`` for performance reasons under macOS. +/// We tested several solutions for playing call sounds (including the system sounds framework and the AVAudioEngine APIs) and came up with this solution that uses +/// the `AVAudioPlayer` API. Although not perferct (sometimes, play/pause hang for a long time under macOS), it has the advantage of not blocking the main thread and does not crash +/// (unlike some of the tests we made with AVAudioEngine, that does not seem to be very resilient during audio interrupts, which often happen during an audio call). +final class OlvidCallAudioPlayer: NSObject, AVAudioPlayerDelegate { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "OlvidCallAudioPlayer") + + private let internalQueue = OperationQueue.createSerialQueue(name: "OlvidCallAudioPlayer internal queue") + + private var currentPlayer: AVAudioPlayer? + private var currentSound: Sound? + private let feedbackGenerator = UINotificationFeedbackGenerator() + + func play(_ sound: Sound) { + let scheduledTime = Date.now + internalQueue.addOperation { [weak self] in + + guard let self else { return } + + currentPlayer?.stop() + currentPlayer = nil + currentSound = nil + + guard abs(Date.now.timeIntervalSince(scheduledTime)) < 1 else { + return + } + + currentPlayer = try? AVAudioPlayer(contentsOf: sound.url) + currentSound = sound + currentPlayer?.delegate = self + + currentPlayer?.play() + + if let feedback = sound.feedback { + DispatchQueue.main.async { [weak self] in + self?.feedbackGenerator.notificationOccurred(feedback) + } + } + + } + } + + + func stop() { + internalQueue.addOperation { [weak self] in + guard let self else { return } + currentPlayer?.stop() + currentPlayer = nil + currentSound = nil + } + } + + + func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) { + internalQueue.addOperation { [weak self] in + + guard let self else { return } + + if let currentSound, currentSound.doesLoop == true { + // Note that + play(currentSound) + } + + currentPlayer?.stop() + currentPlayer = nil + currentSound = nil + + } + } + + + enum Sound: CaseIterable { + + case connect + case disconnect + case reconnecting + case ringing + + private var filename: String { + switch self { + case .connect: return "connect.mp3" + case .disconnect: return "disconnect.mp3" + case .reconnecting: return "reconnecting.mp3" + case .ringing: return "ringing.mp3" + } + } + + fileprivate var url: URL { + if ObvMessengerConstants.targetEnvironmentIsMacCatalyst { + return Bundle.main.bundleURL + .appendingPathComponent("Contents") + .appendingPathComponent("Resources") + .appendingPathComponent(filename) + .resolvingSymlinksInPath() + } else { + return Bundle.main.bundleURL.appendingPathComponent(filename) + } + } + + fileprivate var avAudioFile: AVAudioFile { + get throws { + try .init(forReading: url) + } + } + + + fileprivate var doesLoop: Bool { + switch self { + case .ringing: + return true + case .connect, .disconnect, .reconnecting: + return false + } + } + + + fileprivate var feedback: UINotificationFeedbackGenerator.FeedbackType? { + switch self { + case .ringing: + return nil + case .connect: + return .success + case .disconnect, .reconnecting: + return .error + } + } + + } + + + enum ObvError: Error { + case failedToCreateAVAudioPCMBuffer + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/RTCDataChannelState+CustomStringConvertible.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/RTCDataChannelState+CustomStringConvertible.swift new file mode 100644 index 00000000..f302863d --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/RTCDataChannelState+CustomStringConvertible.swift @@ -0,0 +1,38 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import WebRTC + + +extension RTCDataChannelState: CustomStringConvertible { + + public var description: String { + switch self { + case .connecting: return "connecting" + case .closed: return "closed" + case .closing: return "closing" + case .open: return "open" + default: + assertionFailure() + return "unknown" + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/Sounds/connect.mp3 b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/Sounds/connect.mp3 similarity index 100% rename from iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/Sounds/connect.mp3 rename to iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/Sounds/connect.mp3 diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/Sounds/disconnect.mp3 b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/Sounds/disconnect.mp3 similarity index 100% rename from iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/Sounds/disconnect.mp3 rename to iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/Sounds/disconnect.mp3 diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/Sounds/reconnecting.mp3 b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/Sounds/reconnecting.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..54527e2b3e5c8a3ff3dc52e485f86ec34c381174 GIT binary patch literal 7968 zcmb`Mc{r5s`}eOgV~nlrSu@tGHP*6}L5O52`%<#+sW2qDF?O;GB`V2M*~h+?C=%I1 z3Q4jjS!15LeV*s}egFCX@i~s4|Hj<+%XysF`#j(0c_HtzwE}=NK{8IF@W2T;tTV-< z6vE|wFP%!&0mxtFrNbcYh6tG7K6i;cDc3MYvdiZpY5tn;nMj; zy}xLg(kZTOo0B6;3p=ZcTz1`V0xT_vc#kcEJLZh!{pFV3V)$8@&xvd=}((8|5$i?{y%)XfA|2D01S9Vr&W2pmbEK-fHV9F?fWNYnosEP z+n3Jc{os=WRQRMl2drKS4U$miwNgQdhSWLijfoclO};6~SvP zpBQ5hHZK?XBc&ct-`+bT{EVPoTJytw{oGte*;)kRh5NG1rK(M}MY9j&of~u#%$BrL zbO=m+cWqM_Xa2C{l3vW{GI`~~P*;{K#7VrT^aL&Q!izwF`6mJO48L(*e;$)55c*Bg zPwa|nlfN|G{`*{8(od%f{*P2FQWpdV2rKbB(vO?Ozix)aRmn19Ud3YXyJ=)$0nK$N z@UmO)S7?me{bZYtN^DR z26tQT4(qoE@&ma0Cxyl`0&(@!uP{kEGQSzaF-eN@v>0ZlqgYxC7WQpHs<%c>js_JA zF;bDNwTMgrgs2cOUkgH_5OQe<2-kpesA0l^$8R4*T>s^0fn%a85>1PwQcp>WmCZ<5 z>vj)*k{`Fl`prBbUFKr0S~uTZ`5m*IA)@&z`g#ebK!V{+NW0`(-AD+zxLtA!d1{CV z^K~Ga2Xca3vj7ts{_Gn?|CiX&{AyF|+cw`D$onhg-SsKfccsS@swDA`I@Bsq~F&h2_7(?$6xH4wN*jBL$ zBP#lJ3lrp> zb!c3?^UOR_FR8#N=7B}{X_LP$OMAh7PMC1aJ{6mEw`W`f`^6Ir3ozdUpfLQ(?2`by z9w{7t1_!oY(2uSB48;}VB3a#ac(3;30mFXN?~1_RYx8PLaczgQQq{Fv)C_8`PE2+( z7n#*5-DfUs)EU^D+qVQ*9#24xL~Ko7Zv{wdn12;QvGGgsl>sqF;IPURjS_vY$Bn!1 z$@oErkKw0XnLMrq>qPA%PsNjD>!rv6z>a$TB+@rmxZhU?V=DP!`*GPptA|7W6gnU3WD8{VUGb{}=ANtI>5VocL_o#~Ev8ALI64jF{Dxe1J!@0STIzf|G9SixeBg47M2~sKhqnbSNKW zKH&B%Z@_#XfW-5$fXjK%t#DBv9(|5nAyzX+Fpg@)g8$ zz;_FOjHl=`v7ko&a^ko*vra*EUYfe__Ms-^O1E0k3L+(3gl5$WWg0ReT{%uB;&|-}lStJ~n|@ z`sR(+7rbZOy|HtAKfA$tS`Ust9-zedHPTxl>>Sa(MNv?L%Z&va#L@1YtRZf8UqY+r z%7D*)qP@F&#$(|bCp>i3urb`IzG2UIpues;cl={4&dwF5crHsF@UdS0as5Nz$S!{i zVIo!~r0>Ar!y%+RLi#Tgz+QpuXDIq4S>)#%A@Az@u0Pxf%4%LGXI}2^Hl@kLIJ>$j z+yGJm8XJR|3%C3)S$H>)LcE*YKZmqzS$i^o$T#I~f*DQCuh-X&7s>n8;)-zmNdU=< zV6`LK0aNIpzGl2l2B~bq-dWwN`@S?3JhpdcMI*$>uLG4(hZQ>|^}24Y?oe}ma98E# zvyIvGj~-4HQX@}h0ve%VmqtbZ(70iDKs2UNh00O`SIQlThqh5Pe zmw{9|*IHVZE)o22ov7d1ot<4IV^C(!->{DjPNdrLbD+aR=9&1TyWdD$d7^F6!iVfT z$7epR3Acq|85)j$|71BaIy#kA4f9_Ds#PQpM6|=&0jE_EjV5UWM_=Dn>7KO1k5*3+ z-|lNM1REC@6r}%FjeF)!6Yb(c@bXKBBt(e{$Q;oZom%foG+k@h_HzFWF!iqWF7Hfu z0vn~H`E%icFuwspVi1P`(F3vt4n7D5RQp|FZxh}DFyYbpU3Y}rQYeCyTxL&7Nxq^W zOSK>Q!`a!{)!EG}8A8S0diX3~R7@)CN9h&y;-Oj;$l& z(JgL{DS++KYL${A?{&d*L36Q~-ak8o-{KZR>CG$yV@J-5r058qLueVTu=mX#rBV2b z_qmaZT{ooD$-#aB0RaR;5UB!ivR%5!LYEley*gK8HTF#G zRrYHZtE6OV!{cfP^}7Ng*^n}n`2ria%&h-^WNY@3CHMAiLu}2ZcEmT z3ek9_A>$VDB|US-Elu8@3$HKqkUNrNUY4h4XeH^;+SCOq8RgH6HRIMEo?xX29iMaK zz+biiYD+{qk7!?Z7jx`3Q+#tm=E__8uHHqy8f~)6{o9WPlkEU9O^`(d6RU4@G{M~9 zs^gTG(Ma-vyvg;|_ssf#bB{VBaXD6|ddXA?p`K&Vd= z&zH4kK5N7!w0zi~4bk%HU0hyVA(3!Y9OW_8#+qiGsTn3G#yV0s6N}y{5e$PB*#8V? z6K!q=Ha;(mM)UWUV87fWb#Me;yLFEW|+SLp)3$8lSJJz58&F!6pc=L zBc3(#zG|&@I@$)Q?nRT0jq&+L%aXEKFU~~W> zm{bK=!quaqxiq+Io9{Z$edp}85rFx70R8-x%2c%PYBb~`PpPjJ-IV3*vo&5`q_;eH zge9Wfd#{^rr3Om%O@VwSAvRv_nCPeg zXO9<@B1sL8#Ln#&y|C)bsMJcUod28XmP;b9?2+1&(^+W64*LHbgv>*#t;&J_5+5yA;UQe%Yj!o z(ogdEi#~7#Y}P`WjRH4nZ-@VK{OGV)3djEwP(4SSfEW(+uga8goJQ08*vNd!tcOSM z!p#liOwY*I3n$&5oGZ7;6e4}LG#Yg#*;JgZl(Oz%`zTgWJ|i{VY2?*^ctx#y!|x0 zzcb|Q%t&e1>|ya|qRu(Xj+Bo|Tu&?9c)4+~|E@qNRU|)UKE!$h5mn0lz#AbAE50v$ zSzoR5A#~_vzN;dfZ%0IH;tdI6&AHF^L`^f?C|lVeQrG6HxyAUzcEaM2%gTz!e21w} zQXU3>lnKK??UI+5gVC3O2CD zQupebORn4AwqSG=bcTt`^5a93P?Cjx%fN1aEvRL3u zSbQ%#ZyDnh(Qi)PnQ0!aE+_Q^Jeo*<_OAW7=Ff|>j_tc3?eVkc2{W!d%kRODC)E3 zI=}znn^cCSBjcNBX@}OAzIRK-4(8|I0BsRLA4>GW+=0YyGsP&Hq;#_#*}6-a1Z7R`WX21UuEfAqJB8sxwQ5!U(mXo#tz6|V<}Skb}$z5&uVm} z#@%rGdIsN3@8_yR#WcOw3s0zF7@bLc-$nD!w=2K3QxFaahz@}H^8lGo>2H+tb%8`F z_hV=RoCc1-uslg(3l=C98y~QvK z?rrooGdv2+d?)lSRwHdW;HG^3w)iC@n7Di5It`Cd1 z#QZuZ73TeesEB`htqA6C17tMpzj)jTvxBby19gkxPygt55~Gd^f+C7LB2+X3Pe#Qu zbos_w#aH4E=iZQTS5XPRSKHawOnx&Ic3#*!(a;A;`Z-%_!B(@R-L(*1V7SzR-I zc=KSt`vYl;QSwjeKQ|#~U&{F&M_79gTdE8J`+~DtooUv5K|zY6BQn=q_9p0fuWs?v zdom#WO00wRb}Ujx2u3+x@81OOy%3{UAWis@Mul9#8}ZIQ$+N;mIgAxc{C1TK ztf#N!&!<-pFZi#b=jOt3&vfyz($q3kXj&*8=98hb=a4#Zeo7CE-NwZ{<7DUU0PbWa z9c}JPc3Hcm(;PDsI77ov9NsR*XM5TbvyYrr%BbL{+^j4;k4MldP2NDieZ-C(piT0i z9_e={yEl`)qzk6>RDS}PzYox@ZCsCtp00sF{5GZk%PhY$=}@DIVBtnuR+in94dw2N z3GR@Vt8x$|$gw(wc7%EU!pYz+)|#d{p1qNDo70NRy}^28#8}7^49AK;;b21+^`p=d z0PO#BzS@Q5YEwj~Q~tnBmBMdO49=|-G!@WwK}Win4_jivt@}aT4KI_mf^(`ihFcbQ z&JWoU0-XK5sw)6r(BWj?eh!Hgwx{@vK|?O{d8zb3kM-x_;jbE18esk(K;!e4ULf-} zu!lr(h-frys#0=h7v}^j=o^o_nyqi|sQH$1ZCIDziy65^oQ|zo@E`7W^aKX-c63pN z$%&sYo84XE9Qv(*HERC6ANV`;s{8R%H?zJ5pMd$Rlxs%66A)2%)d@KJfOzy2y{c1~ z66d|A&Ibzs+~o3k$?n)XQ-F=h+D~?4dd~CY;0=g{jHV z6NV0t`?Gz%Wff-zhqpgA^go#2wjioSxIf$BY7ZCsGRK5;shZmSyvH_`&cR^utLBrJ zXNqDg^DMW7V(h5>(u!)q?s3yN8HC52DOSQ%`+F>zg<84iHMjXKt(x^y9UH&h`d$U^ zPWbOET_YddpX`G0Mubux(FM1{`F&L;TkWvYZ$_R1nWY;_jv0or(D{oq<*qkRsx-g5 zL~i-{;^aKDX_OCv;0jNNbg{f~RTm=>m@!-R%2gvNE$XPav0c{KkxQYO>4JlJI6uE3 zWDi0M?ms`W1bt)}d%pC0*IQDwKqGK6_Cs>Qz#Zcax))8V{yXv?F#!QIQ81W8OzOy? zYv&DCen{>D%z*mTKk0gyZ|d z-%Qx_=D*%mr0m)8V5EMnIGV2EQ+5-~r_3kv2lJ25y~A^q{pF6_j@b9XDCL-yr!#=d z%0fOv5m0BRqzzp0z5KPl_`L#o;g6_gl(~O|$IB$Z<@dfI@~PqC*HP{JJ1sYdnsd&Q ztcARV@pQXZGxack15j7xoTTJ`>oRnppSt%&qcug-J;vA%e=K+AQ*@7pk_eugvPrSIsj41 z{Ttdcv2;l^tuK#%^rSoil%cpi?lf1{bm85|8#LV-Igmt z!VK-?66rzN>FNG_k&-$Jn5z%*x<56N(uMQ$2cnijQ05=EGIwxHp5kAKNj6#&0*6+0 zs^9ZKyAmh)AqlM5w|wCmI%#@&qxaW}qzd{5_m$*NM_%myky)msoN7(1IQ7jHL^3O; z4=BmLU`r43^UE;(fH}wy#a~*Hx|0%WS*IwKHS`%&zWz36E6k-@9a%Db+f%ZwPLtL)6M)#W^i{YRfjBcwE?|6@IX za}~v3==CjoyF|4^NsJux`3WRTRK@kzebWRl7G8?MeBD*N=1lIRiG;UzuM{9D+iyf0 z;bklj73|b(+!1#v4!x5Z7!}|G@0?UHpA4vLJEcR3H*tQDGdw?3R31NPn8lrl7R ziQj|PUi+3?vie2RhSTZX0-cWXYQI>)mGA2v6PA`&jd)Q}e$*Eu`5(VANHOx9KP&Q> zi=EK>K*X8icK!$aeTdezlUg`S0fZmS4~m!a^{q_4D3_Y-S#?T4i;`jW(PDNg*Oa>j z78*X3=s4_X?6Ow3gpyP1Pah?$^sj6;jSuS$t}Qgxyp{9;9pycG-deJ@euR;s9XS3a z2-SyFgZ(icIN&Jx_x@CRZ`Z?%)Gh1^E}mD`HB@1yahJd;myKR}X2w^-QmZ8?ts0<5 zh%T8L`@hp;3VsqGgd72jivBhiUq!c64S6xc(kTh%F9Q?<;w0SPynqONzFkAlNlJ7^ zt!-#DMp+sr$Q@TwI<8>)?|)$aALz9WMW4}loHZmKK&h{PkNK}}!2Ern3*Mq$adt!I zaR2#V=dVM^GPr(SaIZ5c^GTe}e~sqfe*wq82BC>{i~{j)(WyXSl9^Hb-(&vk8!&$X uLShk;6o0`!1WvI2|LfEL{tKADgnZrDT$cxV1pvyGJLR92{~q&S-}paZ#9Ao; literal 0 HcmV?d00001 diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/Sounds/ringing.mp3 b/iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/Sounds/ringing.mp3 similarity index 100% rename from iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/Sounds/ringing.mp3 rename to iOSClient/ObvMessenger/ObvMessenger/VoIP/Helpers/Sounds/ringing.mp3 diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/JSON Messages/WebRTCDataChannelMessageJSON.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/JSON Messages/WebRTCDataChannelMessageJSON.swift index 9803d6e9..75b9b1dd 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/JSON Messages/WebRTCDataChannelMessageJSON.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/JSON Messages/WebRTCDataChannelMessageJSON.swift @@ -115,7 +115,7 @@ struct ContactBytesAndNameJSON: Codable { case rawGatheringPolicy = "gp" } - init(byteContactIdentity: Data, displayName: String, gatheringPolicy: GatheringPolicy) { + init(byteContactIdentity: Data, displayName: String, gatheringPolicy: OlvidCallGatheringPolicy) { self.byteContactIdentity = byteContactIdentity self.displayName = displayName self.rawGatheringPolicy = gatheringPolicy.rawValue @@ -135,9 +135,9 @@ struct ContactBytesAndNameJSON: Codable { try container.encode(rawGatheringPolicy, forKey: .rawGatheringPolicy) } - var gatheringPolicy: GatheringPolicy? { + var gatheringPolicy: OlvidCallGatheringPolicy? { guard let rawGatheringPolicy = rawGatheringPolicy else { return nil } - return GatheringPolicy(rawValue: rawGatheringPolicy) + return OlvidCallGatheringPolicy(rawValue: rawGatheringPolicy) } } @@ -152,19 +152,6 @@ struct UpdateParticipantsMessageJSON: WebRTCDataChannelInnerMessageJSON { case callParticipants = "cp" } - init(callParticipants: [CallParticipant]) async { - var callParticipants_: [ContactBytesAndNameJSON] = [] - for callParticipant in callParticipants { - let callParticipantState = await callParticipant.getPeerState() - guard callParticipantState == .connected || callParticipantState == .reconnecting else { continue } - let remoteCryptoId = callParticipant.remoteCryptoId - let displayName = callParticipant.fullDisplayName - guard let gatheringPolicy = await callParticipant.gatheringPolicy else { continue } - callParticipants_.append(ContactBytesAndNameJSON(byteContactIdentity: remoteCryptoId.getIdentity(), displayName: displayName, gatheringPolicy: gatheringPolicy)) - } - self.callParticipants = callParticipants_ - } - init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) self.callParticipants = try values.decode([ContactBytesAndNameJSON].self, forKey: .callParticipants) diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/JSON Messages/WebRTCInnerMessageJSON.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/JSON Messages/WebRTCInnerMessageJSON.swift index 1ecb3c55..2ad3c308 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/JSON Messages/WebRTCInnerMessageJSON.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/JSON Messages/WebRTCInnerMessageJSON.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -52,6 +52,7 @@ extension WebRTCInnerMessageJSON { return try decoder.decode(Self.self, from: data) } + /// The `callIdentifier` is the `uuidForWebRTC` func embedInWebRTCMessageJSON(callIdentifier: UUID) throws -> WebRTCMessageJSON { let serializedMessagePayloadAsData = try self.jsonEncode() guard let serializedMessagePayload = String(data: serializedMessagePayloadAsData, encoding: .utf8) else { @@ -115,7 +116,7 @@ struct StartCallMessageJSON: WebRTCInnerMessageJSON { } } - init(sessionDescriptionType: String, sessionDescription: String, turnUserName: String, turnPassword: String, turnServers: [String], participantCount: Int, groupIdentifier: GroupIdentifier?, gatheringPolicy: GatheringPolicy) throws { + init(sessionDescriptionType: String, sessionDescription: String, turnUserName: String, turnPassword: String, turnServers: [String], participantCount: Int, groupIdentifier: GroupIdentifier?, gatheringPolicy: OlvidCallGatheringPolicy) throws { self.sessionDescriptionType = sessionDescriptionType self.sessionDescription = sessionDescription self.turnUserName = turnUserName @@ -145,7 +146,8 @@ struct StartCallMessageJSON: WebRTCInnerMessageJSON { let groupOwnerIdentity = try values.decodeIfPresent(Data.self, forKey: .groupOwner), let groupUid = UID(uid: groupUidRaw), let groupOwner = try? ObvCryptoId(identity: groupOwnerIdentity) { - self.groupIdentifier = .groupV1(groupV1Identifier: (groupUid, groupOwner)) + let groupIdentifier = GroupV1Identifier(groupUid: groupUid, groupOwner: groupOwner) + self.groupIdentifier = .groupV1(groupV1Identifier: groupIdentifier) } else if let groupV2Identifier = try values.decodeIfPresent(Data.self, forKey: .groupV2Identifier) { self.groupIdentifier = .groupV2(groupV2Identifier: groupV2Identifier) } else { @@ -153,9 +155,9 @@ struct StartCallMessageJSON: WebRTCInnerMessageJSON { } } - var gatheringPolicy: GatheringPolicy? { + var gatheringPolicy: OlvidCallGatheringPolicy? { guard let rawGatheringPolicy = rawGatheringPolicy else { return nil } - return GatheringPolicy(rawValue: rawGatheringPolicy) + return OlvidCallGatheringPolicy(rawValue: rawGatheringPolicy) } } @@ -270,7 +272,7 @@ struct NewParticipantOfferMessageJSON: WebRTCInnerMessageJSON { case rawGatheringPolicy = "gp" } - init(sessionDescriptionType: String, sessionDescription: String, gatheringPolicy: GatheringPolicy) throws { + init(sessionDescriptionType: String, sessionDescription: String, gatheringPolicy: OlvidCallGatheringPolicy) throws { self.sessionDescriptionType = sessionDescriptionType self.sessionDescription = sessionDescription guard let data = sessionDescription.data(using: .utf8) else { throw Self.makeError(message: "Could not compress session description") } @@ -288,9 +290,9 @@ struct NewParticipantOfferMessageJSON: WebRTCInnerMessageJSON { self.rawGatheringPolicy = try values.decodeIfPresent(Int.self, forKey: .rawGatheringPolicy) } - var gatheringPolicy: GatheringPolicy? { + var gatheringPolicy: OlvidCallGatheringPolicy? { guard let rawGatheringPolicy = rawGatheringPolicy else { return nil } - return GatheringPolicy(rawValue: rawGatheringPolicy) + return OlvidCallGatheringPolicy(rawValue: rawGatheringPolicy) } } @@ -360,3 +362,16 @@ struct RemoveIceCandidatesMessageJSON: WebRTCInnerMessageJSON { } } + + +struct AnsweredOrRejectedOnOtherDeviceMessageJSON: WebRTCInnerMessageJSON { + + var messageType: WebRTCMessageJSON.MessageType { .answeredOrRejectedOnOtherDevice } + + let answered: Bool + + enum CodingKeys: String, CodingKey { + case answered = "ans" + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/NonCallKitSupport.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/NonCallKitSupport.swift deleted file mode 100644 index 211a8e9c..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/NonCallKitSupport.swift +++ /dev/null @@ -1,445 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import AudioToolbox -import OlvidUtils - -class NCXCallManager: ObvCallManager { - - var isCallKit: Bool { false } - private var callController = NCXCallController.instance - - func requestEndCallAction(call: Call) async throws { - let endCallAction = NCXEndCallAction(call: call.uuid) - try await callController.request(action: endCallAction) - } - - func requestAnswerCallAction(incomingCall: Call) async throws { - guard incomingCall.direction == .incoming else { assertionFailure(); return } - guard await !incomingCall.userDidAnsweredIncomingCall() else { return } - let answerCallAction = NCXAnswerCallAction(call: incomingCall.uuid) - try await callController.request(action: answerCallAction) - } - - func requestMuteCallAction(call: Call) async throws { - let muteCallAction = NCXSetMutedCallAction(call: call.uuid, muted: true) - try await callController.request(action: muteCallAction) - } - - func requestUnmuteCallAction(call: Call) async throws { - let umuteCallAction = NCXSetMutedCallAction(call: call.uuid, muted: false) - try await callController.request(action: umuteCallAction) - } - - func requestStartCallAction(call: Call, contactIdentifier: String, handleValue: String) async throws { - let handle = ObvHandleImpl(type_: .generic, value: handleValue) - let startCallAction = NCXStartCallAction(call: call.uuid, handle: handle) - startCallAction.contactIdentifier = contactIdentifier - try await callController.request(action: startCallAction) - } -} - -class NCXAction: ObvAction { - var debugDescription: String { String(describing: Self.self) } - var isComplete: Bool = false - func fulfill() { } - - func fail() { } -} - -class NCXCallAction: NCXAction, ObvCallAction { - var kind: ObvActionKind - - var callUUID: UUID - init(call: UUID, kind: ObvActionKind) { - self.kind = kind - self.callUUID = call - } -} - -class NCXStartCallAction: NCXCallAction, ObvStartCallAction { - var handle_: ObvHandle - var contactIdentifier: String? - var isVideo: Bool = false - - init(call: UUID, handle: ObvHandle) { - self.handle_ = handle - super.init(call: call, kind: .start) - } - func fulfill(withDateStarted: Date) { } -} - -class NCXAnswerCallAction: NCXCallAction, ObvAnswerCallAction { - init(call: UUID) { - super.init(call: call, kind: .answer) - } - func fulfill(withDateConnected: Date) { } - -} - -class NCXEndCallAction: NCXCallAction, ObvEndCallAction { - init(call: UUID) { - super.init(call: call, kind: .end) - } - func fulfill(withDateEnded: Date) { } -} - -class NCXSetHeldCallAction: NCXCallAction, ObvSetHeldCallAction { - var isOnHold: Bool - init(call: UUID, onHold: Bool) { - self.isOnHold = onHold - super.init(call: call, kind: .held) - } -} - -class NCXSetMutedCallAction: NCXCallAction, ObvSetMutedCallAction { - var isMuted: Bool - init(call: UUID, muted: Bool) { - self.isMuted = muted - super.init(call: call, kind: .mute) - } -} -class NCXPlayDTMFCallAction: NCXCallAction, ObvPlayDTMFCallAction { - var digits: String - var type_: ObvPlayDTMFCallActionType - init(call: UUID, digits: String, type_: ObvPlayDTMFCallActionType) { - self.digits = digits - self.type_ = type_ - super.init(call: call, kind: .playDTMF) - } -} - -class NCXCall: ObvCall { - var uuid: UUID - var isOutgoing: Bool - var isOnHold: Bool = false - var hasConnected: Bool = false - var hasEnded: Bool = false - - init(uuid: UUID, isOutgoing: Bool) { - self.uuid = uuid - self.isOutgoing = isOutgoing - } -} - -class NCXCallController: ObvErrorMaker { - - static let errorDomain = "NCXCallController" - - private static var _instance: NCXCallController? = nil - private init() { /* You shall not pass */ } - static var instance: NCXCallController { - Concurrency.sync(lock: "NCXCallController.instance") { - if _instance == nil { _instance = NCXCallController() } - return _instance! - } - } - - private var callObserver = NCXCallObserver.instance - - private var delegate: ObvProviderDelegate? - private var delegateQueue: DispatchQueue? - func setDelegate(_ delegate: ObvProviderDelegate?, queue: DispatchQueue?) { - self.delegate = delegate - self.delegateQueue = queue - } - - private var configuration: ObvProviderConfiguration! - fileprivate func setConfiguration(_ configuration: ObvProviderConfiguration) { - self.configuration = configuration - } - - - fileprivate func request(action: NCXCallAction) async throws { - guard let delegate = self.delegate else { - throw Self.makeError(message: "Unknown call provider") - } - - switch action.kind { - - case .start: - if let action = action as? ObvStartCallAction { - guard callObserver.calls_.first(where: { $0.uuid == action.callUUID }) == nil else { - throw Self.makeError(message: "Call UUID alreadt exists") - } - guard callObserver.calls_.count < configuration.maximumCallGroups else { - throw Self.makeError(message: "Maximum call groups reached") - } - let call = NCXCall(uuid: action.callUUID, isOutgoing: true) - callObserver.calls_.append(call) - callObserver.callObserver(callChanged: call) - await delegate.provider(perform: action) - } - - case .answer: - if let action = action as? ObvAnswerCallAction { - guard callObserver.calls_.count <= configuration.maximumCallGroups else { - throw Self.makeError(message: "Maximum call groups reached") - } - await delegate.provider(perform: action) - if let call = self.callObserver.calls_.first(where: { $0.uuid == action.callUUID }) as? NCXCall { - if !call.hasConnected { - call.hasConnected = true - self.callObserver.callObserver(callChanged: call) - } - } - } - - case .end: - if let action = action as? ObvEndCallAction { - guard callObserver.calls_.first(where: { $0.uuid == action.callUUID }) != nil else { - throw Self.makeError(message: "Unknown call UUID") - } - await delegate.provider(perform: action) - if let call = self.callObserver.calls_.first(where: { $0.uuid == action.callUUID }) as? NCXCall { - callObserver.calls_.removeAll(where: { $0.uuid == action.callUUID }) - if !call.hasEnded { - call.hasEnded = true - self.callObserver.callObserver(callChanged: call) - } - } - } - - case .held: - if let action = action as? ObvSetHeldCallAction { - guard callObserver.calls_.first(where: { $0.uuid == action.callUUID }) != nil else { - throw Self.makeError(message: "Unknown call UUID") - } - await delegate.provider(perform: action) - } - - case .mute: - if let action = action as? ObvSetMutedCallAction { - guard callObserver.calls_.first(where: { $0.uuid == action.callUUID }) != nil else { - throw Self.makeError(message: "Unknown call UUID") - } - await delegate.provider(perform: action) - } - - case .playDTMF: - if let action = action as? ObvPlayDTMFCallAction { - guard callObserver.calls_.first(where: { $0.uuid == action.callUUID }) != nil else { - throw Self.makeError(message: "Unknown call UUID") - } - await delegate.provider(perform: action) - } - - } - } - -} - -class NCXObvProvider: ObvProvider, ObvErrorMaker { - - static let errorDomain = "NCXObvProvider" - - private static var _instance: NCXObvProvider? = nil - private init() { /* You shall not pass */ } - static var instance: NCXObvProvider { - Concurrency.sync(lock: "NCXObvProvider.instance") { - if _instance == nil { _instance = NCXObvProvider() } - return _instance! - } - } - - private var configuration: ObvProviderConfiguration! - private var callObserver = NCXCallObserver.instance - private var callController = NCXCallController.instance - - func setConfiguration(_ configuration: ObvProviderConfiguration) { - self.configuration = configuration - self.callController.setConfiguration(configuration) - } - - var isCallKit: Bool { false } - - private let internalQueue: OperationQueue = { - let queue = OperationQueue() - queue.maxConcurrentOperationCount = 1 - queue.qualityOfService = .userInteractive - return queue - }() - - func setDelegate(_ delegate: ObvProviderDelegate?, queue: DispatchQueue?) { - callController.setDelegate(delegate, queue: queue) - } - - private var startedConnectingDates: [UUID: Date] = [:] - private var connectedDates: [UUID: Date] = [:] - private var callUpdates: [UUID: ObvCallUpdate] = [:] - - - func reportNewIncomingCall(with UUID: UUID, update: ObvCallUpdate, completion: @escaping (Result) -> Void) { - - guard callObserver.calls_.first(where: { $0.uuid == UUID }) == nil else { - let error = Self.makeError(message: "Call UUID already exists", code: ObvErrorCodeIncomingCallError.callUUIDAlreadyExists.rawValue) - completion(.failure(error)) - return - } - - /// REMARK It is not like in CX but it simplify a lot of code to have this test here - guard callObserver.calls_.count < configuration.maximumCallGroups else { - let error = Self.makeError(message: "Maximum call groups reached", code: ObvErrorCodeIncomingCallError.maximumCallGroupsReached.rawValue) - completion(.failure(error)) - return - } - - let call = NCXCall(uuid: UUID, isOutgoing: false) - callObserver.calls_.append(call) - - callObserver.callObserver(callChanged: call) - - completion(.success(())) - - // REMARK ? We should deal with do not disturb - - } - - - func reportCall(with UUID: UUID, updated update: ObvCallUpdate) { - print("☎️ NCX reportCall with ", update, UUID) - - if var current = callUpdates[UUID] { - current.remoteHandle_ = update.remoteHandle_ - current.localizedCallerName = update.localizedCallerName - current.supportsHolding = update.supportsHolding - current.supportsGrouping = update.supportsGrouping - current.supportsUngrouping = update.supportsUngrouping - current.supportsDTMF = update.supportsDTMF - current.hasVideo = update.hasVideo - } else { - callUpdates[UUID] = update - } - } - - func reportCall(with UUID: UUID, endedAt dateEnded: Date?, reason endedReason: ObvCallEndedReason) { - print("☎️ NCX reportCall", endedReason, UUID) - - guard let call = callObserver.calls_.first(where: { $0.uuid == UUID }) as? NCXCall else { - print("☎️ NCX reportCall (1): the given call does not exists ", UUID); return - } - if call.isOutgoing { - if let dateStartedConnecting = startedConnectingDates.removeValue(forKey: UUID) { - if let dateConnected = connectedDates.removeValue(forKey: UUID) { - if dateStartedConnecting >= dateConnected { - print("☎️ NCX reportCall (4): dates are incoherents ", UUID); assertionFailure(); return - assertionFailure() - } - } - } else { - print("☎️ NCX reportCall (2): the given call does not exists", UUID) - } - } - callObserver.calls_.removeAll(where: { $0.uuid == UUID }) - - if !call.hasEnded { - call.hasEnded = true - callObserver.callObserver(callChanged: call) - } - } - - func reportOutgoingCall(with UUID: UUID, startedConnectingAt dateStartedConnecting: Date?) { - print("☎️ NCX reportOutgoingCall startedConnectingAt") - guard let call = callObserver.calls_.first(where: { $0.uuid == UUID }) else { - print("☎️ NCX reportOutgoingCall startedConnectingAt -> could not find call"); return - } - startedConnectingDates[UUID] = dateStartedConnecting ?? Date() - callObserver.callObserver(callChanged: call) - } - - func reportOutgoingCall(with UUID: UUID, connectedAt dateConnected: Date?) { - print("☎️ NCX reportOutgoingCall connectedAt") - guard let call = callObserver.calls_.first(where: { $0.uuid == UUID }) as? NCXCall else { - print("☎️ NCX reportOutgoingCall connectedAt: the given call does not exists ", UUID); assertionFailure(); return - } - - assert(startedConnectingDates.keys.contains(UUID)) - connectedDates[UUID] = dateConnected ?? Date() - - call.hasConnected = true - callObserver.callObserver(callChanged: call) - } - - var configuration_: ObvProviderConfiguration { - get { configuration } - set { configuration = newValue } - } - - func invalidate() { - print("☎️ NCX invalidate") - for call in callObserver.calls_ { - reportCall(with: call.uuid, endedAt: Date(), reason: .failed) - } - callObserver.calls_.removeAll() - startedConnectingDates.removeAll() - connectedDates.removeAll() - callUpdates.removeAll() - } - - func reportNewCancelledIncomingCall() { - /// Nothing to call we do not have to present something to the user in case of error - } - -} - -class NCXCallObserver: ObvCallObserver { - - private static var _instance: NCXCallObserver? = nil - - private init() { /* You shall not pass */ } - - static var instance: NCXCallObserver { - Concurrency.sync(lock: "NCXCallObserver.instance") { - if _instance == nil { _instance = NCXCallObserver() } - return _instance! - } - } - - var calls_: [ObvCall] = [] - - private weak var delegate: ObvCallObserverDelegate? - private var queue: DispatchQueue? - - func setDelegate(_ delegate: ObvCallObserverDelegate?, queue: DispatchQueue?) { - self.delegate = delegate - self.queue = queue - } - - func callObserver(callChanged call: ObvCall) { - queue?.async { self.delegate?.callObserver(callChanged: call) } ?? self.delegate?.callObserver(callChanged: call) - } - -} - -/// NCXCallObserverDelegate Exemple -class NCXCallObserverTest: NSObject, ObvCallObserverDelegate { - - private let callObserver: ObvCallObserver = NCXCallObserver.instance - - override init() { - super.init() - callObserver.setDelegate(self, queue: DispatchQueue(label: "Queue for observing call")) - } - - func callObserver(callChanged call: ObvCall) { - print("☎️ NCX Observe call changed uuid=", call.uuid, " isOutgoing=", call.isOutgoing, " isOnHold=", call.isOnHold, " hasConnected=", call.hasConnected, " hasEnded=", call.hasEnded) - print("☎️ NCX Number of ObvCall=", callObserver.calls_.count) - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ObvAudioSessionUtils.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/ObvAudioSessionUtils.swift deleted file mode 100644 index b101055a..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ObvAudioSessionUtils.swift +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import Foundation -import AVFoundation -import os.log -import WebRTC -import ObvUICoreData - -enum AudioInputIcon { - case sf(_: String) - case png(_: String) -} - -struct AudioInput { - let label: String - let isCurrent: Bool - fileprivate let activate0: () -> Void - let icon: AudioInputIcon - let isSpeaker: Bool - - init(label: String, isCurrent: Bool, activate0: @escaping () -> Void, icon: AudioInputIcon, isSpeaker: Bool) { - self.label = label - self.isCurrent = isCurrent - self.activate0 = activate0 - self.icon = icon - self.isSpeaker = isSpeaker - } - - /// For testing purpose - init(label: String, isCurrent: Bool, icon: AudioInputIcon, isSpeaker: Bool) { - self.init(label: label, isCurrent: isCurrent, activate0: {}, icon: icon, isSpeaker: isSpeaker) - } - - func activate() { - activate0() - ObvMessengerInternalNotification.audioInputHasBeenActivated( - label: label, - activate: activate0).postOnDispatchQueue() - } -} - -extension AudioInput { - - var toAction: UIAction { - let state: UIMenuElement.State = isCurrent ? .on : .off - let image: UIImage? - switch icon { - case .sf(let systemName): - image = UIImage(systemName: systemName) - case .png(let name): - image = UIImage(named: name)?.withTintColor(UIColor.label) - } - return UIAction(title: label, image: image, identifier: nil, discoverabilityTitle: nil, state: state) { action in - activate() - } - } -} - -final class ObvAudioSessionUtils { - - @Atomic() static private(set) var shared = ObvAudioSessionUtils() - - private init() {} - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: ObvAudioSessionUtils.self)) - - private let rtcAudioSession = RTCAudioSession.sharedInstance() - private var audioSession: AVAudioSession { rtcAudioSession.session } - - func configureAudioSessionForMakingOrAnsweringCall() throws { - os_log("☎️🎵 Configure audio session", log: log, type: .info) - try audioSession.setCategory(.playAndRecord) - try audioSession.setMode(.voiceChat) - } - - func getAllInputs() -> [AudioInput] { - let log = self.log - var inputs: [AudioInput] = [] - let currentRoute = audioSession.currentRoute - func isSpeakerCurrent() -> Bool { - return currentRoute.outputs.contains(where: { $0.isSpeaker }) - } - if let availableInputs = audioSession.availableInputs { - for input in availableInputs { - let label = input.portName - let activate = { - let audioSession = AVAudioSession.sharedInstance() - if isSpeakerCurrent() { - do { - try audioSession.overrideOutputAudioPort(.none) - os_log("☎️🎵 Speaker was disabled", log: log, type: .info) - } catch { - os_log("☎️🎵 Could not disable speaker: %{public}@", log: log, type: .info, error.localizedDescription) - } - } - try? audioSession.setPreferredInput(input) - } - var isCurrent = currentRoute.inputs.contains(where: {$0.portType == input.portType}) - if isCurrent, input.portType == .builtInMic { - /// Special case, we do not want to have both .builtInMic and speaker checked - /// we deselect manually builtInMic if the speaker is enabled. - isCurrent = !isSpeakerCurrent() - } - let icon = getAudioIcon(input: input) - inputs.append(AudioInput(label: label, isCurrent: isCurrent, activate0: activate, icon: icon, isSpeaker: false)) - } - } - do { - let label = CommonString.Word.Speaker - let activate = { - if !isSpeakerCurrent() { - do { - // This also switch back the input to the Built-In Microphone - let audioSession = AVAudioSession.sharedInstance() - try audioSession.overrideOutputAudioPort(.speaker) - os_log("☎️🎵 Speaker was enabled", log: log, type: .info) - } catch { - os_log("☎️🎵 Could not enable speaker: %{public}@", log: log, type: .info, error.localizedDescription) - } - } - } - inputs.append(AudioInput(label: label, isCurrent: isSpeakerCurrent(), activate0: activate, icon: .sf("speaker.3.fill"), isSpeaker: true)) - } - return inputs - } - - func getCurrentAudioInput() -> AudioInput? { - let allInputs = getAllInputs() - return allInputs.first { $0.isCurrent } - } - - - private func getAudioIcon(input: AVAudioSessionPortDescription) -> AudioInputIcon { - switch input.portType { - case .builtInMic: return .sf("iphone") - case .headsetMic: return .sf("headphones") - case .lineIn: return .sf("rectangle.dock") - case .airPlay: return .sf("airplayaudio") - case .bluetoothA2DP: return .png("bluetooth") - case .bluetoothLE: return .png("bluetooth") - case .bluetoothHFP: return .png("bluetooth") - case .builtInReceiver: return .sf("iphone") - case .builtInSpeaker: return .sf("speaker.3.fill") - case .HDMI: return .sf("display") - case .headphones: return .sf("headphones") - case .lineOut: return .sf("rectangle.dock") - default: assertionFailure() - } - return .sf("speaker.1.fill") - } - -} - - -extension AVAudioSessionPortDescription { - var isSpeaker: Bool { - return portType == AVAudioSession.Port.builtInSpeaker - } -} - -extension AVAudioSession.RouteChangeReason: CustomStringConvertible { - public var description: String { - switch self { - case .unknown: return "unknown" - case .newDeviceAvailable: return "newDeviceAvailable" - case .oldDeviceUnavailable: return "oldDeviceUnavailable" - case .categoryChange: return "categoryChange" - case .override: return "override" - case .wakeFromSleep: return "wakeFromSleep" - case .noSuitableRouteForCategory: return "noSuitableRouteForCategory" - case .routeConfigurationChange: return "routeConfigurationChange" - @unknown default: return "@unknown" - } - } - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/PeerConnection/ObvPeerConnection.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/ObvPeerConnection.swift similarity index 71% rename from iOSClient/ObvMessenger/ObvMessenger/VoIP/PeerConnection/ObvPeerConnection.swift rename to iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/ObvPeerConnection.swift index dd8c1166..8a069e59 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/PeerConnection/ObvPeerConnection.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/ObvPeerConnection.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -25,7 +25,7 @@ import OlvidUtils /// An instance of this class is a wrapper around a WebRTC `RTCPeerConnection` object. It ensures all the calls made to this wrapped object are made on the same internal serial queue. -final class ObvPeerConnection: NSObject, ObvErrorMaker { +final class ObvPeerConnection: NSObject { private static let internalQueue = DispatchQueue(label: "ObvPeerConnection internal queue") private static let factory = ObvPeerConnectionFactory(internalQueue: internalQueue) @@ -34,20 +34,22 @@ final class ObvPeerConnection: NSObject, ObvErrorMaker { private var peerConnection: RTCPeerConnection! private var dataChannel: RTCDataChannel? + private var audioTrack: RTCAudioTrack? - static let errorDomain = "ObvPeerConnection" - private(set) var connectionState: RTCPeerConnectionState = .new private(set) var signalingState: RTCSignalingState = .stable private(set) var iceConnectionState: RTCIceConnectionState = .new private weak var delegate: ObvPeerConnectionDelegate? + private weak var dataChannelDelegate: ObvDataChannelDelegate? - init?(with configuration: RTCConfiguration, constraints: RTCMediaConstraints, delegate: ObvPeerConnectionDelegate) async { + init(with configuration: RTCConfiguration, constraints: RTCMediaConstraints, delegate: ObvPeerConnectionDelegate) async throws { self.delegate = delegate super.init() - guard let pc = await ObvPeerConnection.factory.make(with: configuration, constraints: constraints, delegate: self) else { return nil } + guard let pc = await ObvPeerConnection.factory.make(with: configuration, constraints: constraints, delegate: self) else { + throw ObvError.rtcPeerConnectionCreationFailed + } self.peerConnection = pc } @@ -55,6 +57,7 @@ final class ObvPeerConnection: NSObject, ObvErrorMaker { func close() async { return await withCheckedContinuation { cont in Self.internalQueue.async { + os_log("☎️🔌 peerConnection.close()", log: Self.log, type: .info) self.peerConnection.close() cont.resume() } @@ -65,6 +68,7 @@ final class ObvPeerConnection: NSObject, ObvErrorMaker { func restartIce() async { return await withCheckedContinuation { cont in Self.internalQueue.async { + os_log("☎️🔌 peerConnection.restartIce()", log: Self.log, type: .info) self.peerConnection.restartIce() cont.resume() } @@ -87,13 +91,14 @@ final class ObvPeerConnection: NSObject, ObvErrorMaker { func offer(for mediaConstraints: RTCMediaConstraints) async throws -> RTCSessionDescription { return try await withCheckedThrowingContinuation({ cont in Self.internalQueue.async { + os_log("☎️🔌 peerConnection.peerConnection.offer", log: Self.log, type: .info) self.peerConnection.offer(for: mediaConstraints) { rtcSessionDescription, error in if let error = error { cont.resume(throwing: error) } else if let rtcSessionDescription = rtcSessionDescription { cont.resume(returning: rtcSessionDescription) } else { - cont.resume(throwing: Self.makeError(message: "rtcSessionDescription is nil, which is unexpected")) + cont.resume(throwing: ObvError.sdpOfferGenerationFailed) } } } @@ -104,13 +109,14 @@ final class ObvPeerConnection: NSObject, ObvErrorMaker { func answer(for mediaConstraints: RTCMediaConstraints) async throws -> RTCSessionDescription { return try await withCheckedThrowingContinuation({ cont in Self.internalQueue.async { + os_log("☎️🔌 peerConnection.peerConnection.answer", log: Self.log, type: .info) self.peerConnection.answer(for: mediaConstraints) { localRTCSessionDescription, error in if let error = error { cont.resume(throwing: error) } else if let localRTCSessionDescription = localRTCSessionDescription { cont.resume(returning: localRTCSessionDescription) } else { - cont.resume(throwing: Self.makeError(message: "localRTCSessionDescription is nil, which is unexpected")) + cont.resume(throwing: ObvError.sdpAnswerGenerationFailed) } } } @@ -121,7 +127,9 @@ final class ObvPeerConnection: NSObject, ObvErrorMaker { func setLocalDescription(_ sessionDescription: RTCSessionDescription) async throws { return try await withCheckedThrowingContinuation { cont in Self.internalQueue.async { - os_log("☎️ Setting the local description with sdp: %{public}@", log: Self.log, type: .info, sessionDescription.sdp) + //os_log("☎️ Setting the local description with sdp: %{public}@", log: Self.log, type: .info, sessionDescription.sdp) + os_log("☎️ Setting the local description", log: Self.log, type: .info) + os_log("☎️🔌 peerConnection.peerConnection.setLocalDescription", log: Self.log, type: .info) self.peerConnection.setLocalDescription(sessionDescription) { error in if let error = error { cont.resume(throwing: error) @@ -137,7 +145,9 @@ final class ObvPeerConnection: NSObject, ObvErrorMaker { func setRemoteDescription(_ sessionDescription: RTCSessionDescription) async throws { return try await withCheckedThrowingContinuation { cont in Self.internalQueue.async { - os_log("☎️ Setting the remote description with sdp: %{public}@", log: Self.log, type: .info, sessionDescription.sdp) + //os_log("☎️ Setting the remote description with sdp: %{public}@", log: Self.log, type: .info, sessionDescription.sdp) + os_log("☎️ Setting the remote description", log: Self.log, type: .info) + os_log("☎️🔌 peerConnection.peerConnection.setRemoteDescription", log: Self.log, type: .info) self.peerConnection.setRemoteDescription(sessionDescription) { error in if let error = error { cont.resume(throwing: error) @@ -150,9 +160,16 @@ final class ObvPeerConnection: NSObject, ObvErrorMaker { } + func rollback() async throws { + let rollbackSessionDescription = RTCSessionDescription(type: .rollback, sdp: "") + try await self.setLocalDescription(rollbackSessionDescription) + } + + func addIceCandidate(_ iceCandidate: RTCIceCandidate) async throws { return try await withCheckedThrowingContinuation { cont in Self.internalQueue.async { + os_log("☎️🔌 peerConnection.peerConnection.add(iceCandidate)", log: Self.log, type: .info) self.peerConnection.add(iceCandidate) { error in if let error = error { cont.resume(throwing: error) @@ -168,6 +185,7 @@ final class ObvPeerConnection: NSObject, ObvErrorMaker { func removeIceCandidates(_ iceCandidates: [RTCIceCandidate]) async { return await withCheckedContinuation { cont in Self.internalQueue.async { + os_log("☎️🔌 peerConnection.peerConnection.remove(iceCandidate)", log: Self.log, type: .info) self.peerConnection.remove(iceCandidates) cont.resume() } @@ -175,17 +193,34 @@ final class ObvPeerConnection: NSObject, ObvErrorMaker { } - func createDataChannel(for label: String, with configuration: RTCDataChannelConfiguration, delegate: RTCDataChannelDelegate) async { - return await withCheckedContinuation { cont in + func addDataChannel(dataChannelDelegate: ObvDataChannelDelegate) async throws { + let label = "data0" + let configuration = Self.createRTCDataChannelConfiguration() + try await withCheckedThrowingContinuation { (cont: CheckedContinuation) in Self.internalQueue.async { - self.dataChannel = self.peerConnection.dataChannel(forLabel: label, configuration: configuration) - self.dataChannel?.delegate = delegate + os_log("☎️🔌 peerConnection.peerConnection.dataChannel", log: Self.log, type: .info) + guard let dataChannel = self.peerConnection.dataChannel(forLabel: label, configuration: configuration) else { + cont.resume(throwing: ObvError.dataChannelCreationFailed) + return + } + self.dataChannel = dataChannel + self.dataChannelDelegate = dataChannelDelegate + self.dataChannel?.delegate = self cont.resume() } } } + private static func createRTCDataChannelConfiguration() -> RTCDataChannelConfiguration { + let configuration = RTCDataChannelConfiguration() + configuration.isOrdered = true + configuration.isNegotiated = true + configuration.channelId = 1 + return configuration + } + + func sendData(buffer: RTCDataBuffer) async -> Bool { return await withCheckedContinuation { cont in Self.internalQueue.async { [weak self] in @@ -198,20 +233,61 @@ final class ObvPeerConnection: NSObject, ObvErrorMaker { } - func addOlvidTracks() async throws -> RTCAudioTrack { + func addAudioTrack(isEnabled: Bool) async throws { let streamId = "audioStreamId" let audioConstrains = RTCMediaConstraints(mandatoryConstraints: nil, optionalConstraints: nil) let audioSource = try await Self.factory.audioSource(with: audioConstrains) let audioTrack = try await Self.factory.audioTrack(with: audioSource, trackId: "audio0") - return await withCheckedContinuation { cont in + await withCheckedContinuation { cont in Self.internalQueue.async { - audioTrack.isEnabled = true + audioTrack.isEnabled = isEnabled + os_log("☎️🔌 peerConnection.peerConnection.add(audioTrack)", log: Self.log, type: .info) self.peerConnection.add(audioTrack, streamIds: [streamId]) - cont.resume(returning: audioTrack) + self.audioTrack = audioTrack + cont.resume() + } + } + } + + + func setAudioTrack(isEnabled: Bool) async throws { + guard let audioTrack else { + assertionFailure() + throw ObvError.audioTrackIsNil + } + await withCheckedContinuation { (cont: CheckedContinuation) in + Self.internalQueue.async { + audioTrack.isEnabled = isEnabled + cont.resume() } } } + + + var isAudioTrackEnabled: Bool { + get throws { + guard let audioTrack else { + throw ObvError.audioTrackIsNil + } + return audioTrack.isEnabled + } + } + +} + +// MARK: - Errors + +extension ObvPeerConnection { + + enum ObvError: Error { + case sdpOfferGenerationFailed + case sdpAnswerGenerationFailed + case rtcPeerConnectionCreationFailed + case dataChannelCreationFailed + case audioTrackIsNil + } + } @@ -312,7 +388,7 @@ extension ObvPeerConnection: RTCPeerConnectionDelegate { guard peerConnection == self.peerConnection else { assertionFailure(); return } self.iceConnectionState = newState Task { [weak self] in - guard let _self = self else { assertionFailure(); return } + guard let _self = self else { return } guard let delegate = _self.delegate else { assertionFailure(); return } await delegate.peerConnection(_self, didChange: newState) } @@ -368,6 +444,32 @@ extension ObvPeerConnection: RTCPeerConnectionDelegate { } +// MARK: - RTCDataChannelDelegate + +extension ObvPeerConnection: RTCDataChannelDelegate { + + func dataChannelDidChangeState(_ dataChannel: RTCDataChannel) { + guard peerConnection == self.peerConnection else { assertionFailure(); return } + assert(self.dataChannel == dataChannel) + Task { [weak self] in + guard let self else { return } + await dataChannelDelegate?.dataChannelDidChangeState(dataChannel) + } + } + + + func dataChannel(_ dataChannel: RTCDataChannel, didReceiveMessageWith buffer: RTCDataBuffer) { + guard peerConnection == self.peerConnection else { assertionFailure(); return } + assert(self.dataChannel == dataChannel) + Task { [weak self] in + guard let self else { return } + await dataChannelDelegate?.dataChannel(dataChannel, didReceiveMessageWith: buffer) + } + } + +} + + protocol ObvPeerConnectionDelegate: AnyObject { func peerConnectionShouldNegotiate(_ peerConnection: ObvPeerConnection) async @@ -380,3 +482,11 @@ protocol ObvPeerConnectionDelegate: AnyObject { func peerConnection(_ peerConnection: ObvPeerConnection, didOpen dataChannel: RTCDataChannel) async } + + +protocol ObvDataChannelDelegate: AnyObject { + + func dataChannel(_ dataChannel: RTCDataChannel, didReceiveMessageWith buffer: RTCDataBuffer) async + func dataChannelDidChangeState(_ dataChannel: RTCDataChannel) async + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCall.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCall.swift new file mode 100644 index 00000000..09c55958 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCall.swift @@ -0,0 +1,1674 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI +import Combine +import os.log +import CallKit +import WebRTC +import ObvTypes +import ObvUICoreData + + +protocol OlvidCallDelegate: AnyObject { + func newWebRTCMessageToSend(webrtcMessage: WebRTCMessageJSON, contactID: TypeSafeManagedObjectID, forStartingCall: Bool) async + func newParticipantWasAdded(call: OlvidCall, callParticipant: OlvidCallParticipant) async + func receivedRelayedMessage(call: OlvidCall, messageType: WebRTCMessageJSON.MessageType, serializedMessagePayload: String, uuidForWebRTC: UUID, fromOlvidUser: OlvidUserId) async + func receivedHangedUpMessage(call: OlvidCall, serializedMessagePayload: String, uuidForWebRTC: UUID, fromOlvidUser: OlvidUserId) async + func requestTurnCredentialsForCall(call: OlvidCall, ownedIdentityForRequestingTurnCredentials: ObvCryptoId) async throws -> ObvTurnCredentials + func incomingWasNotAnsweredToAndTimedOut(call: OlvidCall) async + func callDidChangeState(call: OlvidCall, previousState: OlvidCall.State, newState: OlvidCall.State) +} + + +final class OlvidCall: ObservableObject { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "OlvidCall") + + let uuidForCallKit: UUID + let uuidForWebRTC: UUID + let groupId: GroupIdentifier? + let ownedCryptoId: ObvCryptoId + /// Used for an outgoing call. If the owned identity making the call is allowed to do so, this is set to this owned identity. If she is not, this is set to some other owned identity on this device that is allowed to make calls. + /// This makes it possible to make secure outgoing calls available to all profiles on this device as soon as one profile is allowed to make secure outgoing calls. + let ownedIdentityForRequestingTurnCredentials: ObvCryptoId? // Only for outgoing calls + private var turnCredentials: ObvTurnCredentials? // Only for outgoing calls + let turnCredentialsReceivedFromCaller: TurnCredentials? // Only for incoming calls + let direction: Direction + let initialParticipantCount: Int + private var pendingIceCandidates = [ObvCryptoId: [IceCandidateJSON]]() + /// If we are a call participant, we might receive relayed WebRTC messages from the caller (in the case another participant is not "known" to us, i.e., we have not secure channel with her). + /// We may receive those messages before we are aware of this participant. When this happens, we add those messages to `pendingReceivedRelayedMessages`. + /// These messages will be used as soon as we are aware of this participant. + private var pendingReceivedRelayedMessages = [ObvCryptoId: [(messageType: WebRTCMessageJSON.MessageType, messagePayload: String)]]() + private(set) var receivedOfferMessages: [ObvCryptoId: (OlvidUserId, NewParticipantOfferMessageJSON)] = [:] + private let rtcPeerConnectionQueue: OperationQueue + @Published private(set) var otherParticipants: [OlvidCallParticipant] + @Published private(set) var state = State.initial + @Published private(set) var dateWhenCallSwitchedToInProgress: Date? + + /* Variables used for audio */ + + @Published private(set) var selfIsMuted = false + @Published private(set) var availableAudioOptions: [OlvidCallAudioOption]? // Nil if the available options cannot be determined yet + @Published private(set) var currentAudioOptions: [OlvidCallAudioOption] // Empty if the current option cannot be determined yet + @Published private(set) var isSpeakerEnabled: Bool + private var isSpeakerEnabledValueChosenByUser: Bool? // Nil unless the user manually decided to activate/deactivate the speaker. This allows to reflect the user choice even if the audio choices are not yet available. + private let timer = Timer.publish(every: 2, on: .main, in: .common).autoconnect() // Allows to keep availableAudioOptions up-to-date + private var cancellables = Set() + + /// When receiving an incoming call, we let some time to the user to answer the call. After that, we end it automatically. + private static let ringingTimeoutInterval: TimeInterval = 60 // 60 seconds + + /// This task allows to implement the mechanism allowing to wait until ``currentlyCreatingPeerConnection`` + /// is set back to false before proceeding with a negotiation. + private var sleepingTasksToCancelWhenEndingCallParticipantsModification = [Task]() + + /// This Boolean is set to `true` when entering a method that could end up modifying the set of call participants. + /// It is set back to `false` whenever this method is done. + /// It allows to implement a mechanism preventing two distinct methods to interfere when both can end up modifying the set of call participants. + private var aTaskIsCurrentlyModifyingCallParticipants = false { + didSet { + guard !aTaskIsCurrentlyModifyingCallParticipants else { return } + oneOfTheTaskCurrentlyModifyingCallParticipantsIsDone() + } + } + + private weak var delegate: OlvidCallDelegate? + + + private init(ownedCryptoId: ObvCryptoId, callIdentifierForCallKit: UUID, otherParticipants: [OlvidCallParticipant], ownedIdentityForRequestingTurnCredentials: ObvCryptoId?, direction: Direction, uuidForWebRTC: UUID, initialParticipantCount: Int, groupId: GroupIdentifier?, turnCredentialsReceivedFromCaller: TurnCredentials?, rtcPeerConnectionQueue: OperationQueue, delegate: OlvidCallDelegate) { + self.ownedCryptoId = ownedCryptoId + self.uuidForCallKit = callIdentifierForCallKit + self.otherParticipants = otherParticipants + self.ownedIdentityForRequestingTurnCredentials = ownedIdentityForRequestingTurnCredentials + self.direction = direction + self.uuidForWebRTC = uuidForWebRTC + self.initialParticipantCount = initialParticipantCount + self.groupId = groupId + self.turnCredentialsReceivedFromCaller = turnCredentialsReceivedFromCaller + self.rtcPeerConnectionQueue = rtcPeerConnectionQueue + self.delegate = delegate + self.availableAudioOptions = Self.getAvailableOlvidCallAudioOption() + self.currentAudioOptions = RTCAudioSession.sharedInstance().session.currentRoute.inputs.map({ .init(portDescription: $0) }) + self.isSpeakerEnabled = false // The currentRoute.outputs always contain the builtInSpeaker speaker at this point, although we know it won't be activated. We set this value to false by default. + regularlyUpdatePublishedAudioInformations() + } + + + deinit { + cancellables.forEach { $0.cancel() } + os_log("☎️ OlvidCall deinit", log: Self.log, type: .fault) + } + + + static func createIncomingCall(callIdentifierForCallKit: UUID, uuidForWebRTC: UUID, callerId: ObvContactIdentifier, startCallMessage: StartCallMessageJSON, rtcPeerConnectionQueue: OperationQueue, delegate: OlvidCallDelegate) async throws -> OlvidCall { + + let shouldISendTheOfferToCallParticipant = Self.shouldISendTheOfferToCallParticipant(ownedCryptoId: callerId.ownedCryptoId, cryptoId: callerId.contactCryptoId) + + let caller = try await OlvidCallParticipant.createCallerOfIncomingCall( + callerId: callerId, + startCallMessage: startCallMessage, + shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant, + rtcPeerConnectionQueue: rtcPeerConnectionQueue) + + let incomingCall = OlvidCall( + ownedCryptoId: callerId.ownedCryptoId, + callIdentifierForCallKit: callIdentifierForCallKit, + otherParticipants: [caller], + ownedIdentityForRequestingTurnCredentials: nil, + direction: .incoming, + uuidForWebRTC: uuidForWebRTC, + initialParticipantCount: startCallMessage.participantCount, + groupId: startCallMessage.groupIdentifier, + turnCredentialsReceivedFromCaller: startCallMessage.turnCredentials, + rtcPeerConnectionQueue: rtcPeerConnectionQueue, + delegate: delegate) + + await caller.setDelegate(to: incomingCall) + + await incomingCall.sendRingingMessageToCallerAndScheduleTimeout() + + return incomingCall + + } + + + @MainActor + static func createOutgoingCall(ownedCryptoId: ObvCryptoId, contactCryptoIds: Set, ownedIdentityForRequestingTurnCredentials: ObvCryptoId, groupId: GroupIdentifier?, rtcPeerConnectionQueue: OperationQueue, delegate: OlvidCallDelegate) async throws -> OlvidCall { + + let callIdentifierForCallKitAndWebRTC = UUID() + + var callees = [OlvidCallParticipant]() + for contactCryptoId in contactCryptoIds { + let shouldISendTheOfferToCallParticipant = Self.shouldISendTheOfferToCallParticipant(ownedCryptoId: ownedCryptoId, cryptoId: contactCryptoId) + let contactId = ObvContactIdentifier(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) + let callee = try await OlvidCallParticipant.createCalleeOfOutgoingCall( + calleeId: contactId, + shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant, + rtcPeerConnectionQueue: rtcPeerConnectionQueue) + callees.append(callee) + } + + callees.sort(by: \.displayName) + + let outgoingCall = OlvidCall( + ownedCryptoId: ownedCryptoId, + callIdentifierForCallKit: callIdentifierForCallKitAndWebRTC, + otherParticipants: callees, + ownedIdentityForRequestingTurnCredentials: ownedIdentityForRequestingTurnCredentials, + direction: .outgoing, + uuidForWebRTC: callIdentifierForCallKitAndWebRTC, + initialParticipantCount: contactCryptoIds.count, + groupId: groupId, + turnCredentialsReceivedFromCaller: nil, + rtcPeerConnectionQueue: rtcPeerConnectionQueue, + delegate: delegate) + + for otherParticipant in outgoingCall.otherParticipants { + await otherParticipant.setDelegate(to: outgoingCall) + } + + return outgoingCall + + } + + + private var callerOfIncomingCall: OlvidCallParticipant? { + return otherParticipants.first(where: { $0.isCallerOfIncomingCall }) + } + + + /// Given the information available for this call, this method returns the most up-to-date `CXCallUpdate` possible. + func createUpToDateCXCallUpdate() async -> CXCallUpdate { + let update = CXCallUpdate() + let sortedContacts: [(isCaller: Bool, displayName: String)] = otherParticipants.map { + let displayName = $0.displayName + return ($0.isCallerOfIncomingCall, displayName) + }.sorted { + if $0.isCaller { return true } + if $1.isCaller { return false } + return $0.displayName < $1.displayName + } + + if self.direction == .incoming && sortedContacts.count == 1 { + update.localizedCallerName = sortedContacts.first?.displayName + if initialParticipantCount > 1 { + update.localizedCallerName! += " + \(initialParticipantCount - 1)" + } + } else if sortedContacts.count > 0 { + let contactName = sortedContacts.map({ $0.displayName }).joined(separator: ", ") + update.localizedCallerName = contactName + } else { + update.localizedCallerName = "..." + } + update.remoteHandle = .init(type: .generic, value: uuidForCallKit.uuidString) + update.hasVideo = false + update.supportsGrouping = false + update.supportsUngrouping = false + update.supportsHolding = false + update.supportsDTMF = false + return update + } + + + static func shouldISendTheOfferToCallParticipant(ownedCryptoId: ObvTypes.ObvCryptoId, cryptoId: ObvTypes.ObvCryptoId) -> Bool { + /// REMARK it should be the same as io.olvid.messenger.webrtc.WebrtcCallService#shouldISendTheOfferToCallParticipant in java + return ownedCryptoId > cryptoId + } + +} + + +// MARK: - Audio + +extension OlvidCall { + + /// This method is *not* called from the UI but from the coordinator, as a response to our request made in + /// ``func userRequestedToToggleAudio() async`` + func setMuteSelfForOtherParticipants(muted: Bool) async throws { + for participant in self.otherParticipants { + try await participant.setMuteSelf(muted: muted) + } + await setSelfIsMuted(to: muted) + for participant in self.otherParticipants { + Task { await participant.sendMutedMessageJSON() } + } + } + + /// We set the ``selfIsMuted`` propery on the main actor as it is a published property, used at the UI level. + @MainActor + private func setSelfIsMuted(to newSelfIsMuted: Bool) async { + withAnimation { + self.selfIsMuted = newSelfIsMuted + } + } + + + func userWantsToChangeSpeaker(to isSpeakerEnabled: Bool) async throws { + isSpeakerEnabledValueChosenByUser = isSpeakerEnabled + let rtcAudioSession = RTCAudioSession.sharedInstance() + rtcAudioSession.lockForConfiguration() + try rtcAudioSession.overrideOutputAudioPort(isSpeakerEnabled ? .speaker : .none) + rtcAudioSession.unlockForConfiguration() + } + + + func userWantsToActivateAudioOption(_ audioOption: OlvidCallAudioOption) async throws { + let rtcAudioSession = RTCAudioSession.sharedInstance() + rtcAudioSession.lockForConfiguration() + do { + if let portDescription = audioOption.portDescription { + isSpeakerEnabledValueChosenByUser = false + try rtcAudioSession.overrideOutputAudioPort(.none) + try rtcAudioSession.setPreferredInput(portDescription) + } else { + isSpeakerEnabledValueChosenByUser = true + try rtcAudioSession.overrideOutputAudioPort(.speaker) + } + } catch { + rtcAudioSession.unlockForConfiguration() + throw error + } + rtcAudioSession.unlockForConfiguration() + await updatePublishedAudioInformations() + } + + + /// Returns `nil` if the options are not yet known (e.g., at the very begining of an outgoing call). + private static func getAvailableOlvidCallAudioOption() -> [OlvidCallAudioOption]? { + let rtcAudioSession = RTCAudioSession.sharedInstance() + guard let availableInputs = rtcAudioSession.session.availableInputs else { return nil } + var inputs: [OlvidCallAudioOption] = availableInputs.map({ .init(portDescription: $0) }) + inputs.append(OlvidCallAudioOption.builtInSpeaker()) + return inputs + } + + + /// Called during init, so as to make sure the ``availableAudioOptions`` stay up-to-date. + private func regularlyUpdatePublishedAudioInformations() { + timer + .sink { [weak self] _ in + Task { [weak self] in await self?.updatePublishedAudioInformations() } + } + .store(in: &cancellables) + } + + + @MainActor + private func updatePublishedAudioInformations() async { + let rtcAudioSession = RTCAudioSession.sharedInstance() + self.availableAudioOptions = Self.getAvailableOlvidCallAudioOption() + self.currentAudioOptions = rtcAudioSession.currentRoute.inputs.map({ .init(portDescription: $0) }) + if currentAudioOptions.isEmpty { + // The available audio options are not yet available (typicall at the very begining of an outgoing call) + // We set the isSpeakerEnabled to the value manually chosen by the user (if any) or to false otherwise + self.isSpeakerEnabled = isSpeakerEnabledValueChosenByUser ?? false + } else { + // Typical case during a call. We don't use the value chosen by the user as we want the UI to reflect the "true" + // state of the speaker, now that we are able to determine it. + self.isSpeakerEnabled = rtcAudioSession.currentRoute.outputs.contains(where: { $0.portType == .builtInSpeaker }) + } + } + +} + +// MARK: - For incoming calls + +extension OlvidCall { + + /// This method is called by the ``OlvidCallManager`` immediately after the local user accepted an incoming call from the in-house UI. + /// This allows to quickly switch the call state (and thus, allows to have a responsive UI). + /// Note that the call manager will still have to notify the call acceptance to the call controller. Eventually, this will trigger the + /// ``localUserWantsToAnswerThisIncomingCall()`` method. + /// Note that if the user accepts an incoming call from the CallKit UI, this method is not called, but the ``localUserWantsToAnswerThisIncomingCall()`` is always called. + func localUserAcceptedIncomingCallFromInHouseUI() async { + assert(self.direction == .incoming) + await setCallState(to: .userAnsweredIncomingCall) + } + + + /// This is called from the `OlvidCallManager` when the local user accepted an incoming call (either on the CallKit interface or on the Olvid UI). + /// Returns the caller infos. + func localUserWantsToAnswerThisIncomingCall() async throws -> OlvidCallParticipantInfo? { + os_log("☎️ Call to localUserWantsToAnswerThisIncomingCall()", log: Self.log, type: .info) + await setCallState(to: .userAnsweredIncomingCall) + guard let callerOfIncomingCall else { + assertionFailure() + throw ObvError.callerIsNotSet + } + try await callerOfIncomingCall.localUserAcceptedIncomingCallFromThisCallParticipant() + return callerOfIncomingCall.info + } + + + + /// This called from the ``OlvidCallManager`` when the user ends an incoming call (either on the CallKit interface or on the Olvid UI). + func endWasRequestedByLocalUser() async -> CallReport? { + os_log("☎️🔚 Call to endWasRequestedByLocalUser()", log: Self.log, type: .info) + let values = await endWebRTCCall(reason: .localUserRequest) + assert(values.cxCallEndedReason == nil, "Since the end of this call was request by the local user, it does not make sense to have a CXCallEndedReason") + return values.callReport + } + + + func processNewParticipantOfferMessageJSONFromContact(_ contact: OlvidUserId, _ newParticipantOffer: NewParticipantOfferMessageJSON) async throws { + guard let participant = await getParticipant(remoteCryptoId: contact.remoteCryptoId) else { + // Put the message in queue as we might simply receive the update call participant message later + await addPendingOffer((contact, newParticipantOffer), from: contact.remoteCryptoId) + return + } + guard !Self.shouldISendTheOfferToCallParticipant(ownedCryptoId: ownedCryptoId, cryptoId: contact.remoteCryptoId) else { assertionFailure(); return } + guard let turnCredentialsReceivedFromCaller else { assertionFailure(); throw ObvError.noTurnCredentialsFound } + try await participant.updateRecipient(newParticipantOfferMessage: newParticipantOffer, turnCredentials: turnCredentialsReceivedFromCaller) + } + + + func processKickMessageJSONFromContact(_ contact: OlvidUserId) async throws -> (callReport: CallReport?, cxCallEndedReason: CXCallEndedReason?) { + guard direction == .incoming else { assertionFailure(); return (nil, nil) } + guard let participant = await getParticipant(remoteCryptoId: contact.remoteCryptoId) else { assertionFailure(); return (nil, nil) } + guard participant.isCallerOfIncomingCall else { assertionFailure(); return (nil, nil) } + os_log("☎️ We received an KickMessageJSON from caller", log: Self.log, type: .info) + return await endWebRTCCall(reason: .kicked) + } + + + func processAnsweredOrRejectedOnOtherDeviceMessage(answered: Bool) async -> (callReport: CallReport?, cxCallEndedReason: CXCallEndedReason?) { + guard direction == .incoming else { assertionFailure(); return (nil, nil) } + return await endWebRTCCall(reason: .answeredOrRejectedOnOtherDevice(answered: answered)) + } + + + /// Called when creating an incoming call + func sendRingingMessageToCallerAndScheduleTimeout() async { + + assert(direction == .incoming) + + guard let caller = self.callerOfIncomingCall else { + os_log("☎️ Could not send ringing message as the caller is not set", log: Self.log, type: .fault) + assertionFailure() + return + } + + // Send a RingingMessageJSON + + let rejectedMessage = RingingMessageJSON() + do { + try await sendWebRTCMessage(to: caller, innerMessage: rejectedMessage, forStartingCall: false) + } catch { + os_log("☎️ Failed to send a RejectCallMessageJSON to the caller: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() // Continue anyway + } + + // Schedule a timeout after which this incoming call should be automatically ended + + Task { [weak self] in + try? await Task.sleep(for: Self.ringingTimeoutInterval) + guard let self else { return } + guard state == .initial else { return } + // The following call will eventually call us back, with the endIncomingCallAsItTimedOut() method. + // We don't call it directly since ending the call is not enough (we have to remove it from the call manager, etc.) + await delegate?.incomingWasNotAnsweredToAndTimedOut(call: self) + } + + } + + +} + + +// MARK: - For outgoing calls + +extension OlvidCall { + + func startOutgoingCall() async throws { + + guard let delegate else { + assertionFailure() + throw ObvError.delegateIsNil + } + + guard let ownedIdentityForRequestingTurnCredentials else { + assertionFailure() + throw ObvError.ownedIdentityForRequestingTurnCredentialsIsNil + } + + // Will will request turn credentials, we want the outgoing call to reflect that + await setCallState(to: .gettingTurnCredentials) + + assert(self.turnCredentials == nil) + let turnCredentials = try await delegate.requestTurnCredentialsForCall(call: self, ownedIdentityForRequestingTurnCredentials: ownedIdentityForRequestingTurnCredentials) + + self.turnCredentials = turnCredentials + for otherParticipant in self.otherParticipants { + try await otherParticipant.setTurnCredentialsAndCreateUnderlyingPeerConnection(turnCredentials: turnCredentials.turnCredentialsForRecipient) + try? await Task.sleep(milliseconds: 300) // 300 ms, dirty trick, required to prevent a deadlock of the WebRTC library + } + await setCallState(to: .initializingCall) + + } + + + func processAnswerCallJSONFromContact(_ contact: OlvidUserId, _ answerCallMessage: AnswerCallJSON) async throws -> OlvidCallParticipantInfo? { + guard self.direction == .outgoing else { assertionFailure(); throw ObvError.notOutgoingCall } + await setCallState(to: .outgoingCallIsConnecting) + guard let participant = await getParticipant(remoteCryptoId: contact.remoteCryptoId) else { assertionFailure(); throw ObvError.couldNotFindParticipant } + let sessionDescription = RTCSessionDescription(type: answerCallMessage.sessionDescriptionType, sdp: answerCallMessage.sessionDescription) + do { + try await participant.setRemoteDescription(sessionDescription: sessionDescription) + } catch { + try await participant.closeConnection() + throw error + } + return participant.info + } + + + func processRejectCallMessageFromContact(_ contact: OlvidUserId) async -> OlvidCallParticipantInfo? { + guard self.direction == .outgoing else { assertionFailure(); return nil } + guard let participant = await getParticipant(remoteCryptoId: contact.remoteCryptoId) else { return nil } + await participant.rejectedOutgoingCall() + assert(participant.state.isFinalState) + await updateStateFromPeerStates() + return participant.info + } + + + func processRingingMessageJSONFromContact(_ contact: OlvidUserId) async { + guard self.direction == .outgoing else { assertionFailure(); return } + guard let participant = await getParticipant(remoteCryptoId: contact.remoteCryptoId) else { return } + await participant.isRinging() + } + + + /// Dispatching on the main actor as we modify a published variable used at the UI level. + @MainActor + func userWantsToAddParticipantsToThisOutgoingCall(participantsToAdd: Set) async throws { + + guard self.direction == .outgoing else { + assertionFailure() + throw ObvError.notOutgoingCall + } + + guard let turnCredentials else { + assertionFailure() + throw ObvError.noTurnCredentialsFound + } + + var callees = [OlvidCallParticipant]() + for contactCryptoId in participantsToAdd { + guard otherParticipants.first(where: { $0.cryptoId == contactCryptoId }) == nil else { assertionFailure(); continue } + let shouldISendTheOfferToCallParticipant = Self.shouldISendTheOfferToCallParticipant(ownedCryptoId: ownedCryptoId, cryptoId: contactCryptoId) + let contactId = ObvContactIdentifier(contactCryptoId: contactCryptoId, ownedCryptoId: ownedCryptoId) + let callee = try await OlvidCallParticipant.createCalleeOfOutgoingCall( + calleeId: contactId, + shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant, + rtcPeerConnectionQueue: rtcPeerConnectionQueue) + callees.append(callee) + } + + callees.sort(by: \.displayName) + + var newOtherParticipants = callees + self.otherParticipants + newOtherParticipants.sort(by: \.displayName) + withAnimation { + self.otherParticipants = newOtherParticipants + } + + for newParticipant in callees { + try? await Task.sleep(milliseconds: 300) // 300 ms, dirty trick, required to prevent a deadlock of the WebRTC library + await newParticipant.setDelegate(to: self) + do { + try await newParticipant.setTurnCredentialsAndCreateUnderlyingPeerConnection(turnCredentials: turnCredentials.turnCredentialsForRecipient) + } catch { + assertionFailure(error.localizedDescription) + continue + } + await delegate?.newParticipantWasAdded(call: self, callParticipant: newParticipant) + } + + } + + + func userWantsToRemoveParticipantFromThisOutgoingCall(cryptoId: ObvCryptoId) async throws { + + guard self.direction == .outgoing else { + assertionFailure() + throw ObvError.notOutgoingCall + } + + guard let participantToKick = otherParticipants.first(where: { $0.cryptoId == cryptoId }) else { assertionFailure(); return } + + await participantToKick.callerKicksThisParticipant() + + // Send kick to the kicked participant + + let kickMessage = KickMessageJSON() + do { + try await sendWebRTCMessage(to: participantToKick, innerMessage: kickMessage, forStartingCall: false) + } catch { + os_log("☎️ Could not send KickMessageJSON to kicked contact: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + // Continue anyway + } + + } + +} + + +// MARK: - Processing messages received by the CallProviderDelegate + +extension OlvidCall { + + func callParticipantDidHangUp(participantId: OlvidUserId) async throws -> OlvidCallParticipantInfo? { + guard let participant = await getParticipant(remoteCryptoId: participantId.remoteCryptoId) else { return nil } + await participant.didHangUp() + assert(participant.state.isFinalState) + await updateStateFromPeerStates() + return participant.info + } + + + func processBusyMessageJSONFromContact(_ contact: OlvidUserId) async -> OlvidCallParticipantInfo? { + guard let participant = await getParticipant(remoteCryptoId: contact.remoteCryptoId) else { assertionFailure(); return nil } + await participant.isBusy() + return participant.info + } + + + func processReconnectCallMessageJSONFromContact(_ contact: OlvidUserId, _ reconnectCallMessage: ReconnectCallMessageJSON) async throws { + guard !self.state.isFinalState else { return } + guard let participant = await getParticipant(remoteCryptoId: contact.remoteCryptoId) else { + // Happens when receiving a message from a kicked participant + return + } + let sessionDescription = RTCSessionDescription(type: reconnectCallMessage.sessionDescriptionType, sdp: reconnectCallMessage.sessionDescription) + try await participant.handleReceivedRestartSdp( + sessionDescription: sessionDescription, + reconnectCounter: reconnectCallMessage.reconnectCounter ?? 0, + peerReconnectCounterToOverride: reconnectCallMessage.peerReconnectCounterToOverride ?? 0) + } + + + func processNewParticipantAnswerMessageJSONFromContact(_ contact: OlvidUserId, _ newParticipantAnswer: NewParticipantAnswerMessageJSON) async throws { + guard let participant = await getParticipant(remoteCryptoId: contact.remoteCryptoId) else { assertionFailure(); return } + guard Self.shouldISendTheOfferToCallParticipant(ownedCryptoId: ownedCryptoId, cryptoId: contact.remoteCryptoId) else { return } + let sessionDescription = RTCSessionDescription(type: newParticipantAnswer.sessionDescriptionType, sdp: newParticipantAnswer.sessionDescription) + try await participant.processNewParticipantAnswerMessageJSON(sessionDescription: sessionDescription) + } + +} + + +// MARK: - Ending a call + +extension OlvidCall { + + + /// Called from the ``OlvidCallManager`` when an incoming call times out because the user did not answer it + func endIncomingCallAsItTimedOut() async -> (callReport: CallReport?, cxCallEndedReason: CXCallEndedReason?) { + guard direction == .incoming else { + assertionFailure() + return (nil, nil) + } + guard state == .initial else { + assertionFailure() + return (nil, nil) + } + let values = await endWebRTCCall(reason: .callTimedOut) + assert(values.cxCallEndedReason == .unanswered) + return values + } + + + /// This method is eventually called when ending a call, either because the local user requested to end the call, or the remote user hanged up, + /// Or because some error occured, etc. It perfoms final important steps before settting the call into an appropriate final state. + /// This is the only method that actually sets the call state to a final state. + private func endWebRTCCall(reason: EndCallReason) async -> (callReport: CallReport?, cxCallEndedReason: CXCallEndedReason?) { + + assert(delegate != nil) + + guard !state.isFinalState else { return (nil, nil) } + + // Potentially send a hangup/reject call message to the other participants or to the caller + + await sendAppropriateMessageOnEndCall(reason: reason) + + // Change the call state + + let finalStateToSet = getFinalStateToSetOnEndCall(reason: reason) + assert(finalStateToSet.isFinalState) + await setCallState(to: finalStateToSet) + + // In the end, we might have to report to our delegate + + let callReport = getEndCallReport(reason: reason) + + // Get appropriate end reason + + let cxCallEndedReason = getEndCallReasonForOurDelegate(reason: reason) + + // Return values + + return (callReport, cxCallEndedReason) + + } + + + private func getFinalStateToSetOnEndCall(reason: EndCallReason) -> State { + + switch reason { + + case .callTimedOut: + return .unanswered + + case .localUserRequest: + switch direction { + case .outgoing: + return .hangedUp + case .incoming: + switch state { + case .initial, .ringing, .initializingCall: + return .callRejected + case .userAnsweredIncomingCall, .callInProgress, .outgoingCallIsConnecting, .reconnecting: + return .hangedUp + case .gettingTurnCredentials, .hangedUp, .kicked, .callRejected, .unanswered, .answeredOnAnotherDevice: + assertionFailure() + return .callRejected + } + } + + case .kicked: + assert(direction == .incoming) + return .kicked + + case .allOtherParticipantsLeft: + if state == .initial { + return .unanswered + } else { + return .hangedUp + } + + case .answeredOrRejectedOnOtherDevice(answered: _): + assert(direction == .incoming) + return .answeredOnAnotherDevice + + } + + } + + + /// Exclusively called from ``endWebRTCCall(reason:)`` + private func getEndCallReasonForOurDelegate(reason: EndCallReason) -> CXCallEndedReason? { + switch reason { + case .callTimedOut: + return .unanswered + case .localUserRequest: + return nil + case .kicked: + assert(direction == .incoming) + return .remoteEnded + case .allOtherParticipantsLeft: + if state == .initial { + return .unanswered + } else { + return .remoteEnded + } + case .answeredOrRejectedOnOtherDevice(answered: let answered): + assert(direction == .incoming) + return answered ? .answeredElsewhere : .declinedElsewhere + } + } + + + /// Exclusively called from ``endWebRTCCall(reason:)`` + private func sendAppropriateMessageOnEndCall(reason: EndCallReason) async { + + switch reason { + + case .callTimedOut: + await sendLocalUserHangedUpMessageToAllParticipants() + + case .localUserRequest: + switch direction { + case .outgoing: + await sendLocalUserHangedUpMessageToAllParticipants() + case .incoming: + switch state { + case .initial, .ringing, .initializingCall: + await sendRejectIncomingCallToCaller() + case .userAnsweredIncomingCall, .callInProgress, .outgoingCallIsConnecting, .reconnecting: + await sendLocalUserHangedUpMessageToAllParticipants() + case .gettingTurnCredentials, .hangedUp, .kicked, .callRejected, .unanswered: + assertionFailure() + await sendRejectIncomingCallToCaller() + case .answeredOnAnotherDevice: + assertionFailure() + break + } + } + + case .kicked: + assert(direction == .incoming) // No need to send reject/hangup message + + case .allOtherParticipantsLeft: + break // No need to send reject/hangup message + + case .answeredOrRejectedOnOtherDevice(answered: _): + assert(direction == .incoming) // No need to send reject/hangup message + + } + + } + + + /// Exclusively called from ``endWebRTCCall(reason:)`` + private func getEndCallReport(reason: EndCallReason) -> CallReport? { + + switch reason { + case .callTimedOut: + switch direction { + case .incoming: + return .missedIncomingCall(caller: callerOfIncomingCall?.info, participantCount: initialParticipantCount) + case .outgoing: + return .unansweredOutgoingCall(with: otherParticipants.map({ $0.info })) + } + case .localUserRequest: + switch direction { + case .incoming: + switch state { + case .initial, .ringing, .initializingCall, .callRejected: + return .rejectedIncomingCall(caller: callerOfIncomingCall?.info, participantCount: initialParticipantCount) + case .userAnsweredIncomingCall, .callInProgress, .hangedUp, .outgoingCallIsConnecting, .reconnecting: + return nil + case .gettingTurnCredentials, .kicked, .unanswered, .answeredOnAnotherDevice: + assertionFailure() + return .rejectedIncomingCall(caller: callerOfIncomingCall?.info, participantCount: initialParticipantCount) + } + case .outgoing: + return .uncompletedOutgoingCall(with: otherParticipants.map({ $0.info })) + } + case .kicked: + assert(direction == .incoming) + return nil + case .allOtherParticipantsLeft: + return nil + case .answeredOrRejectedOnOtherDevice(let answered): + assert(direction == .incoming) + assert(callerOfIncomingCall?.info != nil) + return .answeredOrRejectedOnOtherDevice(caller: callerOfIncomingCall?.info, answered: answered) + } + + } + + + private func sendLocalUserHangedUpMessageToAllParticipants() async { + let hangedUpMessage = HangedUpMessageJSON() + for participant in self.otherParticipants { + do { + try await sendWebRTCMessage(to: participant, innerMessage: hangedUpMessage, forStartingCall: false) + } catch { + os_log("☎️ Failed to send a HangedUpMessageJSON to a participant: %{public}@", log: Self.log, type: .error, error.localizedDescription) + assertionFailure() // Continue anyway + } + } + } + + + private func sendRejectIncomingCallToCaller() async { + assert(direction == .incoming) + guard let caller = self.callerOfIncomingCall else { + os_log("Could not find caller", log: Self.log, type: .fault) + assertionFailure() + return + } + let rejectedMessage = RejectCallMessageJSON() + do { + try await sendWebRTCMessage(to: caller, innerMessage: rejectedMessage, forStartingCall: false) + } catch { + os_log("Failed to send a RejectCallMessageJSON to the caller: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() // Continue anyway + } + } + + + private func sendBusyMessageToCaller() async { + assert(direction == .incoming) + guard let caller = self.callerOfIncomingCall else { + os_log("Could not find caller", log: Self.log, type: .fault) + assertionFailure() + return + } + let rejectedMessage = BusyMessageJSON() + do { + try await sendWebRTCMessage(to: caller, innerMessage: rejectedMessage, forStartingCall: false) + } catch { + os_log("Failed to send a BusyMessageJSON to the caller: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() // Continue anyway + } + } + + + enum EndCallReason { + case callTimedOut + case localUserRequest + case kicked // incoming call only + case allOtherParticipantsLeft + case answeredOrRejectedOnOtherDevice(answered: Bool) + } + + +} + + +// MARK: - Sending WebRTC (and other) messages + +extension OlvidCall { + + private func sendWebRTCMessage(to: OlvidCallParticipant, innerMessage: WebRTCInnerMessageJSON, forStartingCall: Bool) async throws { + guard let delegate else { assertionFailure(); throw ObvError.delegateIsNil } + let message = try innerMessage.embedInWebRTCMessageJSON(callIdentifier: uuidForWebRTC) + if case .hangedUp = message.messageType { + // Also send message on the data channel, if the caller is gone + do { + let hangedUpDataChannel = try HangedUpDataChannelMessageJSON().embedInWebRTCDataChannelMessageJSON() + try await to.sendDataChannelMessage(hangedUpDataChannel) + } catch { + os_log("☎️ Could not send HangedUpDataChannelMessageJSON: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + // Continue anyway + } + } + switch to.knownOrUnknown { + case .known(contactObjectID: let contactObjectID): + await delegate.newWebRTCMessageToSend(webrtcMessage: message, contactID: contactObjectID, forStartingCall: forStartingCall) + case .unknown(remoteCryptoId: let remoteCryptoId): + guard message.messageType.isAllowedToBeRelayed else { assertionFailure(); return } + guard self.direction == .incoming else { assertionFailure(); return } + guard let caller = self.callerOfIncomingCall else { + // This happen if the caller quit the call before we did, and we continued the call with a user who is not a contact + return + } + let toContactIdentity = remoteCryptoId.getIdentity() + + do { + let dataChannelMessage = try RelayMessageJSON(to: toContactIdentity, relayedMessageType: message.messageType.rawValue, serializedMessagePayload: message.serializedMessagePayload).embedInWebRTCDataChannelMessageJSON() + try await caller.sendDataChannelMessage(dataChannelMessage) + } catch { + assertionFailure() + os_log("☎️ Could not send RelayMessageJSON: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + return + } + } + } + +} + + +// MARK: - Implementing CallParticipantDelegate + +extension OlvidCall: OlvidCallParticipantDelegate { + + func participantWasUpdated(callParticipant: OlvidCallParticipant, updateKind: OlvidCallParticipant.UpdateKind) async { + + guard self.otherParticipants.firstIndex(where: { $0.cryptoId == callParticipant.cryptoId }) != nil else { + // Happens when the participant was kicked + return + } + + switch updateKind { + case .state(newState: let newState): + switch newState { + case .initial: + break + case .startCallMessageSent: + break + case .ringing: + guard self.direction == .outgoing else { return } + guard [State.initializingCall, .gettingTurnCredentials, .initial].contains(state) else { return } + await setCallState(to: .ringing) + case .busy: + await removeParticipant(callParticipant: callParticipant) + case .connectingToPeer: + guard state == .userAnsweredIncomingCall else { return } + await setCallState(to: .initializingCall) + case .connected: + guard state != .callInProgress else { return } + await setCallState(to: .callInProgress) + case .reconnecting: + // If the call is not in a final state and + // if all other participants are in a reconnecting state, play a sound + if !state.isFinalState { + let allOtherParticipantsAreReconnecting = otherParticipants.allSatisfy({ $0.state == .reconnecting }) + if allOtherParticipantsAreReconnecting { + await setCallState(to: .reconnecting) + } + } + case .callRejected, .hangedUp, .kicked, .failed, .connectionTimeout: + break + } + case .contactID: + break + case .contactMuted: + break + } + } + + + func connectionIsChecking(for callParticipant: OlvidCallParticipant) { + // Task { await CallSounds.shared.prepareFeedback() } + } + + + func connectionIsConnected(for callParticipant: OlvidCallParticipant, oldParticipantState: OlvidCallParticipant.State) async { + + do { + if self.direction == .outgoing && oldParticipantState != .connected && oldParticipantState != .reconnecting { + let message = try await UpdateParticipantsMessageJSON(callParticipants: otherParticipants).embedInWebRTCDataChannelMessageJSON() + let callParticipantsToNotify = otherParticipants.filter({ $0.cryptoId != callParticipant.cryptoId }) + for callParticipant in callParticipantsToNotify { + try await callParticipant.sendDataChannelMessage(message) + } + } + } catch { + os_log("We failed to notify the other participants about the new participants list: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + // Continue anyway + } + + // If the current state is not already "callInProgress", it means that the first participant + // just joined to call. We want to change the state to "callInProgress" (which will play the + // appropriate sounds, etc.). + + await setCallState(to: .callInProgress) + } + + + func connectionWasClosed(for callParticipant: OlvidCallParticipant) async { + await removeParticipant(callParticipant: callParticipant) + await updateStateFromPeerStates() + } + + + func dataChannelIsOpened(for callParticipant: OlvidCallParticipant) async { + guard self.direction == .outgoing else { return } + do { + let message = try await UpdateParticipantsMessageJSON(callParticipants: otherParticipants).embedInWebRTCDataChannelMessageJSON() + try await callParticipant.sendDataChannelMessage(message) + } catch { + os_log("We failed to notify the participant about the new participants list: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + } + } + + + func updateParticipants(with allCallParticipants: [ContactBytesAndNameJSON]) async throws { + + os_log("☎️ Entering updateParticipant(newCallParticipants: [ContactBytesAndNameJSON])", log: Self.log, type: .info) + os_log("☎️ The latest list of call participants contains %d participant(s)", log: Self.log, type: .info, allCallParticipants.count) + os_log("☎️ Before processing this list, we consider there are %d participant(s) in this call", log: Self.log, type: .info, otherParticipants.count) + + // In case of large group calls, we can encounter race conditions. We prevent that by waiting until it is safe to process the new participants list + + await waitUntilItIsSafeToModifyParticipants() + + // Now that it is our turn to potentially modify the participants set, we must make sure no other task will interfere. + // The mechanism allowing to do so requires to set the following Boolean to true now, and to false when we are done. + + aTaskIsCurrentlyModifyingCallParticipants = true + defer { aTaskIsCurrentlyModifyingCallParticipants = false } + + // We can proceed + + guard direction == .incoming else { + assertionFailure() + throw ObvError.selfIsNotIncomingCall + } + guard let turnCredentials = self.turnCredentialsReceivedFromCaller else { + assertionFailure() + throw ObvError.noTurnCredentialsFound + } + + let selfIsMuted = self.selfIsMuted + + // Remove our own identity from the list of call participants. + + let allCallParticipants = allCallParticipants.filter({ $0.byteContactIdentity != ownedCryptoId.getIdentity() }) + + // Determine the CryptoIds of the local list of participants and of the reveived version of the list + + let currentIdsOfParticipants = Set(otherParticipants.compactMap({ $0.cryptoId })) + let updatedIdsOfParticipants = Set(allCallParticipants.compactMap({ try? ObvCryptoId(identity: $0.byteContactIdentity) })) + + // Determine the participants to add to the local list, and those that should be removed + + let idsOfParticipantsToAdd = updatedIdsOfParticipants.subtracting(currentIdsOfParticipants) + let idsOfParticipantsToRemove = currentIdsOfParticipants.subtracting(updatedIdsOfParticipants) + + // Perform the necessary steps to add the participants + + os_log("☎️ We have %d participant(s) to add", log: Self.log, type: .info, idsOfParticipantsToAdd.count) + + for remoteCryptoId in idsOfParticipantsToAdd { + + let gatheringPolicy = allCallParticipants + .first(where: { $0.byteContactIdentity == remoteCryptoId.getIdentity() }) + .map({ $0.gatheringPolicy ?? .gatherOnce }) ?? .gatherOnce + + let displayName = allCallParticipants + .first(where: { $0.byteContactIdentity == remoteCryptoId.getIdentity() }) + .map({ $0.displayName }) ?? "-" + + let shouldISendTheOfferToCallParticipant = Self.shouldISendTheOfferToCallParticipant(ownedCryptoId: ownedCryptoId, cryptoId: remoteCryptoId) + + let callParticipant = try await OlvidCallParticipant.createOtherParticipantOfIncomingCall( + ownedCryptoId: ownedCryptoId, + remoteCryptoId: remoteCryptoId, + gatheringPolicy: gatheringPolicy, + displayName: displayName, + shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant, + rtcPeerConnectionQueue: rtcPeerConnectionQueue) + + await addParticipant(callParticipant: callParticipant) + await delegate?.newParticipantWasAdded(call: self, callParticipant: callParticipant) + + if shouldISendTheOfferToCallParticipant { + os_log("☎️ Will set credentials for offer to a call participant", log: Self.log, type: .info) + try await callParticipant.setTurnCredentialsAndCreateUnderlyingPeerConnection(turnCredentials: turnCredentials) + } else { + os_log("☎️ No need to send offer to the call participant", log: Self.log, type: .info) + /// check if we already received the offer the CallParticipant is supposed to send us + if let (user, newParticipantOfferMessage) = self.receivedOfferMessages.removeValue(forKey: remoteCryptoId) { + try await processNewParticipantOfferMessageJSONFromContact(user, newParticipantOfferMessage) + } + } + + } + + // If we were muted, we must make sure we stay muted for all participant, including the new ones + + try await setMuteSelfForOtherParticipants(muted: selfIsMuted) + + // Perform the necessary steps to remove the participants. + // Note that we know the caller is among the participants and we do not want to remove her here. + + os_log("☎️ We have %d participant(s) to remove (unless one if the caller)", log: Self.log, type: .info, idsOfParticipantsToRemove.count) + + for remoteCryptoId in idsOfParticipantsToRemove { + guard let participant = otherParticipants.first(where: { $0.cryptoId == remoteCryptoId }) else { continue } + guard !participant.isCallerOfIncomingCall else { continue } + try await participant.closeConnection() + await removeParticipant(callParticipant: participant) + } + + } + + + func relay(from: ObvTypes.ObvCryptoId, to: ObvTypes.ObvCryptoId, messageType: ObvUICoreData.WebRTCMessageJSON.MessageType, messagePayload: String) async { + + guard messageType.isAllowedToBeRelayed else { assertionFailure(); return } + + guard let participant = otherParticipants.first(where: { $0.cryptoId == to }) else { assertionFailure(); return } + let message: WebRTCDataChannelMessageJSON + do { + message = try RelayedMessageJSON(from: from.getIdentity(), relayedMessageType: messageType.rawValue, serializedMessagePayload: messagePayload).embedInWebRTCDataChannelMessageJSON() + } catch { + os_log("☎️ Could not send UpdateParticipantsMessageJSON: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + return + } + do { + try await participant.sendDataChannelMessage(message) + } catch { + os_log("☎️ Could not send data channel message: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + return + } + } + + + + /// Called by an `OlvidCallParticipant` when receiving a hanged up message. Since we want this message (received on the WebRTC data channel) to receive the same + /// treatment as the one we can received on the WebSocket, we notify our delegate. + @MainActor + func receivedHangedUpMessage(from callParticipant: OlvidCallParticipant, messagePayload: String) async { + let fromOlvidUser: OlvidUserId + switch callParticipant.knownOrUnknown { + case .known(let contactObjectID): + do { + guard let contact = try PersistedObvContactIdentity.get(objectID: contactObjectID.objectID, within: ObvStack.shared.viewContext) else { + assertionFailure() + os_log("☎️ Could not find the contact to whom we should relay the message", log: Self.log, type: .error) + return + } + let contactIdentifier = try contact.contactIdentifier + let ownedCryptoId = contactIdentifier.ownedCryptoId + fromOlvidUser = .known(contactObjectID: contact.typedObjectID, ownCryptoId: ownedCryptoId, remoteCryptoId: contactIdentifier.contactCryptoId, displayName: contact.customOrNormalDisplayName) + } catch { + assertionFailure() + return + } + case .unknown: + fromOlvidUser = .unknown(ownCryptoId: ownedCryptoId, remoteCryptoId: callParticipant.cryptoId, displayName: callParticipant.displayName) + } + await delegate?.receivedHangedUpMessage( + call: self, + serializedMessagePayload: messagePayload, + uuidForWebRTC: uuidForWebRTC, + fromOlvidUser: fromOlvidUser) + } + + + /// Processes a messages that was relayed by the caller but originally sent by the `from` + @MainActor + func receivedRelayedMessage(from: ObvTypes.ObvCryptoId, messageType: ObvUICoreData.WebRTCMessageJSON.MessageType, messagePayload: String) async { + os_log("☎️ Call to receivedRelayedMessage", log: Self.log, type: .info) + guard let callParticipant = otherParticipants.first(where: { $0.cryptoId == from }) else { + os_log("☎️ Could not find the call participant in receivedRelayedMessage. We store the relayed message for later", log: Self.log, type: .info) + if var previous = pendingReceivedRelayedMessages[from] { + previous.append((messageType, messagePayload)) + pendingReceivedRelayedMessages[from] = previous + } else { + pendingReceivedRelayedMessages[from] = [(messageType, messagePayload)] + } + return + } + let fromOlvidUser: OlvidUserId + let contactIdentifier: ObvContactIdentifier + switch callParticipant.knownOrUnknown { + case .known(let contactObjectID): + do { + guard let contact = try PersistedObvContactIdentity.get(objectID: contactObjectID.objectID, within: ObvStack.shared.viewContext) else { + assertionFailure() + os_log("☎️ Could not find the contact to whom we should relay the message", log: Self.log, type: .error) + return + } + contactIdentifier = try contact.contactIdentifier + let ownedCryptoId = contactIdentifier.ownedCryptoId + fromOlvidUser = .known(contactObjectID: contact.typedObjectID, ownCryptoId: ownedCryptoId, remoteCryptoId: contactIdentifier.contactCryptoId, displayName: contact.customOrNormalDisplayName) + } catch { + assertionFailure() + return + } + case .unknown(remoteCryptoId: let remoteCryptoId): + os_log("☎️ Receiving a message from a participant that is not a contact. The message was relayed by the caller", log: Self.log, type: .error) + fromOlvidUser = .unknown(ownCryptoId: ownedCryptoId, remoteCryptoId: remoteCryptoId, displayName: callParticipant.displayName) + } + await delegate?.receivedRelayedMessage( + call: self, + messageType: messageType, + serializedMessagePayload: messagePayload, + uuidForWebRTC: uuidForWebRTC, + fromOlvidUser: fromOlvidUser) + } + + + @MainActor + func sendStartCallMessage(to callParticipant: OlvidCallParticipant, sessionDescription: RTCSessionDescription, turnCredentials: TurnCredentials) async throws { + + let gatheringPolicy = await callParticipant.gatheringPolicy + + guard let turnServers = turnCredentials.turnServers else { + assertionFailure() + os_log("☎️ The turn servers are not set, which is unexpected at this point", log: Self.log, type: .fault) + throw ObvError.noTurnServersFound + } + + var filteredGroupId: GroupIdentifier? + switch groupId { + case .groupV1(groupV1Identifier: let groupV1Identifier): + do { + guard let contactGroup = try? PersistedContactGroup.getContactGroup(groupIdentifier: groupV1Identifier, ownedCryptoId: ownedCryptoId, within: ObvStack.shared.viewContext) else { + os_log("☎️ Could not find contactGroup", log: Self.log, type: .fault) + return + } + let groupMembers = Set(contactGroup.contactIdentities.map { $0.cryptoId }) + if groupMembers.contains(callParticipant.cryptoId) { + filteredGroupId = .groupV1(groupV1Identifier: groupV1Identifier) + } + } + case .groupV2(groupV2Identifier: let groupV2Identifier): + do { + guard let group = try? PersistedGroupV2.get(ownIdentity: ownedCryptoId, appGroupIdentifier: groupV2Identifier, within: ObvStack.shared.viewContext) else { + os_log("☎️ Could not find PersistedGroupV2", log: Self.log, type: .fault) + return + } + let groupMembers = Set(group.otherMembers.compactMap({ $0.cryptoId })) + if groupMembers.contains(callParticipant.cryptoId) { + filteredGroupId = .groupV2(groupV2Identifier: group.groupIdentifier) + } + } + case .none: + filteredGroupId = nil + } + + let message = try StartCallMessageJSON( + sessionDescriptionType: RTCSessionDescription.string(for: sessionDescription.type), + sessionDescription: sessionDescription.sdp, + turnUserName: turnCredentials.turnUserName, + turnPassword: turnCredentials.turnPassword, + turnServers: turnServers, + participantCount: otherParticipants.count, + groupIdentifier: filteredGroupId, + gatheringPolicy: gatheringPolicy) + + try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: true) + + } + + + func sendAnswerCallMessage(to callParticipant: OlvidCallParticipant, sessionDescription: RTCSessionDescription) async throws { + + let message: WebRTCInnerMessageJSON + let messageDescripton = callParticipant.isCallerOfIncomingCall ? "AnswerIncomingCall" : "NewParticipantAnswerMessage" + do { + if callParticipant.isCallerOfIncomingCall { + message = try AnswerCallJSON(sessionDescriptionType: RTCSessionDescription.string(for: sessionDescription.type), sessionDescription: sessionDescription.sdp) + } else { + message = try NewParticipantAnswerMessageJSON(sessionDescriptionType: RTCSessionDescription.string(for: sessionDescription.type), sessionDescription: sessionDescription.sdp) + } + } catch { + os_log("Could not create and send %{public}@: %{public}@", log: Self.log, type: .fault, messageDescripton, error.localizedDescription) + assertionFailure() + throw error + } + try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: false) + } + + + func sendNewParticipantOfferMessage(to callParticipant: OlvidCallParticipant, sessionDescription: RTCSessionDescription) async throws { + let message = try await NewParticipantOfferMessageJSON( + sessionDescriptionType: RTCSessionDescription.string(for: sessionDescription.type), + sessionDescription: sessionDescription.sdp, + gatheringPolicy: callParticipant.gatheringPolicy) + try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: false) + } + + + func sendNewParticipantAnswerMessage(to callParticipant: OlvidCallParticipant, sessionDescription: RTCSessionDescription) async throws { + let message = try NewParticipantAnswerMessageJSON( + sessionDescriptionType: RTCSessionDescription.string(for: sessionDescription.type), + sessionDescription: sessionDescription.sdp) + try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: false) + } + + + func sendReconnectCallMessage(to callParticipant: OlvidCallParticipant, sessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int) async throws { + let message = try ReconnectCallMessageJSON( + sessionDescriptionType: RTCSessionDescription.string(for: sessionDescription.type), + sessionDescription: sessionDescription.sdp, + reconnectCounter: reconnectCounter, + peerReconnectCounterToOverride: peerReconnectCounterToOverride) + try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: false) + } + + + func sendNewIceCandidateMessage(to callParticipant: OlvidCallParticipant, iceCandidate: RTCIceCandidate) async throws { + let message = IceCandidateJSON(sdp: iceCandidate.sdp, sdpMLineIndex: iceCandidate.sdpMLineIndex, sdpMid: iceCandidate.sdpMid) + try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: false) + } + + + func sendRemoveIceCandidatesMessages(to callParticipant: OlvidCallParticipant, candidates: [RTCIceCandidate]) async throws { + let message = RemoveIceCandidatesMessageJSON(candidates: candidates.map({ IceCandidateJSON(sdp: $0.sdp, sdpMLineIndex: $0.sdpMLineIndex, sdpMid: $0.sdpMid) })) + try await sendWebRTCMessage(to: callParticipant, innerMessage: message, forStartingCall: false) + } + +} + + +// MARK: - Helpers for managing participants + +extension OlvidCall { + + @MainActor + private func addParticipant(callParticipant: OlvidCallParticipant) async { + await callParticipant.setDelegate(to: self) + guard otherParticipants.firstIndex(where: { $0.cryptoId == callParticipant.cryptoId }) == nil else { + os_log("☎️ The participant already exists in the set, we should never happen since we have an anti-race mechanism", log: Self.log, type: .fault) + assertionFailure() + return + } + withAnimation { + otherParticipants.append(callParticipant) + otherParticipants.sort(by: \.displayName) + } + let iceCandidates = pendingIceCandidates.removeValue(forKey: callParticipant.cryptoId) ?? [] + for iceCandidate in iceCandidates { + try? await callParticipant.processIceCandidatesJSON(message: iceCandidate) + } + // Process the messages from this participant that were relayed by the caller that were received before we were aware of this participant. + if let relayedMessagesToProcess = pendingReceivedRelayedMessages.removeValue(forKey: callParticipant.cryptoId) { + for relayedMsg in relayedMessagesToProcess { + os_log("☎️ Processing a relayed message received while we were not aware of this call participant", log: Self.log, type: .info) + await receivedRelayedMessage(from: callParticipant.cryptoId, messageType: relayedMsg.messageType, messagePayload: relayedMsg.messagePayload) + } + } + } + + + @MainActor + func getParticipant(remoteCryptoId: ObvCryptoId) async -> OlvidCallParticipant? { + return otherParticipants.first(where: { $0.cryptoId == remoteCryptoId }) + } + + + @MainActor + func addPendingOffer(_ receivedOfferMessage: (OlvidUserId, NewParticipantOfferMessageJSON), from remoteCryptoId: ObvCryptoId) async { + assert(receivedOfferMessages[remoteCryptoId] == nil) + receivedOfferMessages[remoteCryptoId] = receivedOfferMessage + } + + + @MainActor + private func removeParticipant(callParticipant: OlvidCallParticipant) async { + + guard let index = otherParticipants.firstIndex(where: { $0.cryptoId == callParticipant.cryptoId }) else { return } + otherParticipants.remove(at: index) + + if otherParticipants.isEmpty { + _ = await endWebRTCCall(reason: .allOtherParticipantsLeft) + } + + // If we are the caller (i.e., if this is an outgoing call) and if the call is not over, we send an updated list of participants to the remaining participants + + if direction == .outgoing && !state.isFinalState { + let message: WebRTCDataChannelMessageJSON + do { + message = try await UpdateParticipantsMessageJSON(callParticipants: otherParticipants).embedInWebRTCDataChannelMessageJSON() + } catch { + os_log("☎️ Could not send UpdateParticipantsMessageJSON: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + return + } + for otherParticipant in otherParticipants { + try? await otherParticipant.sendDataChannelMessage(message) + } + } + + } + + + private func updateStateFromPeerStates() async { + for callParticipant in otherParticipants { + guard callParticipant.state.isFinalState else { return } + } + // If we reach this point, all call participants are in a final state, we can end the call. + _ = await endWebRTCCall(reason: .allOtherParticipantsLeft) + } + + + /// This method allows to make sure we are not risking race conditions when updating the list of participants. + private func waitUntilItIsSafeToModifyParticipants() async { + while aTaskIsCurrentlyModifyingCallParticipants { + os_log("☎️ Since we are already currently modifying call participants, we must wait", log: Self.log, type: .info) + let sleepTask: Task = Task { try? await Task.sleep(seconds: 60) } + sleepingTasksToCancelWhenEndingCallParticipantsModification.insert(sleepTask, at: 0) // First in, first out + try? await sleepTask.value // Note the "try?": we don't want to throw when the task is cancelled + } + } + + + private func oneOfTheTaskCurrentlyModifyingCallParticipantsIsDone() { + assert(!aTaskIsCurrentlyModifyingCallParticipants) + while let sleepingTask = sleepingTasksToCancelWhenEndingCallParticipantsModification.popLast() { + os_log("☎️ Since a task potentially modifying the set of call participants is done, we can proceed with the next one", log: Self.log, type: .info) + sleepingTask.cancel() + } + } + +} + + +// MARK: - ICE candidates + +extension OlvidCall { + + @MainActor + func processIceCandidatesJSON(iceCandidate: IceCandidateJSON, participantId: OlvidUserId) async throws { + if let callParticipant = otherParticipants.first(where: { $0.cryptoId == participantId.remoteCryptoId }) { + try await callParticipant.processIceCandidatesJSON(message: iceCandidate) + } else { + if var previousCandidates = pendingIceCandidates[participantId.remoteCryptoId] { + previousCandidates.append(iceCandidate) + pendingIceCandidates[participantId.remoteCryptoId] = previousCandidates + } else { + pendingIceCandidates[participantId.remoteCryptoId] = [iceCandidate] + } + } + } + + + @MainActor + func removeIceCandidatesJSON(removeIceCandidatesJSON: RemoveIceCandidatesMessageJSON, participantId: OlvidUserId) async throws { + if let callParticipant = otherParticipants.first(where: { $0.cryptoId == participantId.remoteCryptoId }) { + await callParticipant.processRemoveIceCandidatesMessageJSON(message: removeIceCandidatesJSON) + } else { + if var candidates = pendingIceCandidates[participantId.remoteCryptoId] { + candidates.removeAll(where: { removeIceCandidatesJSON.candidates.contains($0) }) + pendingIceCandidates[participantId.remoteCryptoId] = candidates + } + } + } + + +} + + +// MARK: - Errors + +extension OlvidCall { + + enum ObvError: Error { + case delegateIsNil + case couldNotFindCallerAmongContacts + case callerIsNotSet + case tryingToStartOutgoingCallAlthoughItIsNotInInitalState + case selfIsNotIncomingCall + case noTurnCredentialsFound + case noTurnServersFound + case notOutgoingCall + case couldNotFindParticipant + case ownedIdentityForRequestingTurnCredentialsIsNil + } + +} + +extension OlvidCall: CustomDebugStringConvertible { + + var debugDescription: String { + "OlvidCall" + } + +} + +// MARK: - State management + +extension OlvidCall { + + enum State: Hashable, CustomDebugStringConvertible { + + case initial + case userAnsweredIncomingCall + case gettingTurnCredentials // Only for outgoing calls + case initializingCall + case ringing + case outgoingCallIsConnecting + case callInProgress + case reconnecting + + case hangedUp + case kicked + case callRejected + + case unanswered + case answeredOnAnotherDevice + + var debugDescription: String { + switch self { + case .outgoingCallIsConnecting: return "outgoingCallIsConnecting" + case .kicked: return "kicked" + case .userAnsweredIncomingCall: return "userAnsweredIncomingCall" + case .gettingTurnCredentials: return "gettingTurnCredentials" + case .initializingCall: return "initializingCall" + case .ringing: return "ringing" + case .initial: return "initial" + case .callRejected: return "callRejected" + case .callInProgress: return "callInProgress" + case .hangedUp: return "hangedUp" + case .unanswered: return "unanswered" + case .answeredOnAnotherDevice: return "answeredOnAnotherDevice" + case .reconnecting: return "reconnecting" + } + } + + var isFinalState: Bool { + switch self { + case .callRejected, .hangedUp, .unanswered, .kicked, .answeredOnAnotherDevice: + return true + case .gettingTurnCredentials, .userAnsweredIncomingCall, .initializingCall, .ringing, .initial, .callInProgress, .outgoingCallIsConnecting, .reconnecting: + return false + } + } + + var localizedString: String { + switch self { + case .initial: return NSLocalizedString("CALL_STATE_NEW", comment: "") + case .gettingTurnCredentials: return NSLocalizedString("CALL_STATE_GETTING_TURN_CREDENTIALS", comment: "") + case .kicked: return NSLocalizedString("CALL_STATE_KICKED", comment: "") + case .userAnsweredIncomingCall, .initializingCall: return NSLocalizedString("CALL_STATE_INITIALIZING_CALL", comment: "") + case .ringing: return NSLocalizedString("CALL_STATE_RINGING", comment: "") + case .callRejected: return NSLocalizedString("CALL_STATE_CALL_REJECTED", comment: "") + case .callInProgress: return NSLocalizedString("SECURE_CALL_IN_PROGRESS", comment: "") + case .hangedUp: return NSLocalizedString("CALL_STATE_HANGED_UP", comment: "") + case .unanswered: return NSLocalizedString("UNANSWERED", comment: "") + case .answeredOnAnotherDevice: return NSLocalizedString("ANSWERED_ON_ANOTHER_OWNED_DEVICE", comment: "") + case .outgoingCallIsConnecting: return NSLocalizedString("OUTGOING_CALL_IS_CONNECTING", comment: "") + case .reconnecting: return NSLocalizedString("RECONNECTING", comment: "") + } + } + } + + + @MainActor + private func setCallState(to newState: State) async { + + guard state != newState else { return } + guard !state.isFinalState else { return } + + let previousState = state + + if previousState == .callInProgress && newState == .ringing { return } + + // And outgoing call can move to the outgoingCallIsConnecting state from the ringing state only. + if newState == .outgoingCallIsConnecting && previousState != .ringing { return } + + os_log("☎️ OlvidCall will change state: %{public}@ --> %{public}@", log: Self.log, type: .info, previousState.debugDescription, newState.debugDescription) + + self.state = newState + + await performPostStateChangeActions(previousState: previousState, newState: newState) + + Task { [weak self] in + guard let self else { return } + delegate?.callDidChangeState(call: self, previousState: previousState, newState: newState) + } + + } + + + private func performPostStateChangeActions(previousState: State, newState: State) async { + + if newState == .callInProgress && self.dateWhenCallSwitchedToInProgress == nil { + Task { await setDateWhenCallSwitchedToInProgressToNow() } + } + + if newState.isFinalState { + cancellables.forEach { $0.cancel() } + } + + // When the local user starts an outgoing call, she might decide to switch on the speaker before the call + // is connected. Without the following lines, WebRTC (?) automatically overrides the output audio port + // to .none (i.e., removes the speaker). Here, we make sure that the choice of the user is maintained. + // Note that isSpeakerEnabledValueChosenByUser is nil if the user did not touch the speaker button so, in + // most cases, the following code does nothing. + if let isSpeakerEnabledValueChosenByUser, newState == .callInProgress { + let rtcAudioSession = RTCAudioSession.sharedInstance() + rtcAudioSession.lockForConfiguration() + try? rtcAudioSession.overrideOutputAudioPort(isSpeakerEnabledValueChosenByUser ? .speaker : .none) + rtcAudioSession.unlockForConfiguration() + } + + } + + + @MainActor + private func setDateWhenCallSwitchedToInProgressToNow() async { + assert(self.dateWhenCallSwitchedToInProgress == nil) + self.dateWhenCallSwitchedToInProgress = Date.now + } + + +} + + +// MARK: - Call Direction + +extension OlvidCall { + + enum Direction { + case incoming + case outgoing + } + +} + + +// MARK: - Utils + +fileprivate extension UpdateParticipantsMessageJSON { + + init(callParticipants: [OlvidCallParticipant]) async { + var callParticipants_: [ContactBytesAndNameJSON] = [] + for callParticipant in callParticipants { + let callParticipantState = callParticipant.state + guard callParticipantState == .connected || callParticipantState == .reconnecting else { continue } + let remoteCryptoId = callParticipant.cryptoId + let displayName = callParticipant.displayName + let gatheringPolicy = await callParticipant.gatheringPolicy + callParticipants_.append(ContactBytesAndNameJSON(byteContactIdentity: remoteCryptoId.getIdentity(), displayName: displayName, gatheringPolicy: gatheringPolicy)) + } + self.callParticipants = callParticipants_ + } + +} + + +fileprivate extension AVAudioSessionPortDescription { + + var detailedDebugDescription: String { + var values = [String]() + values.append(self.portName) + values.append(self.portType.rawValue.description) + values.append(self.uid) + let concat = values.joined(separator: ",") + return "AVAudioSessionPortDescription<\(concat)>" + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallAudioOption.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallAudioOption.swift new file mode 100644 index 00000000..606c5953 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallAudioOption.swift @@ -0,0 +1,129 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import AVFoundation +import UI_SystemIcon + + +/// Represents an audio option made available to the user when tapping the audio button in the in-house user interface. +struct OlvidCallAudioOption: Identifiable { + + enum Identifier: Hashable { + case builtInSpeaker + case notBuiltInSpeaker(uid: String) + } + + let id: Identifier + let portDescription: AVAudioSessionPortDescription? // Nil for the built-in speaker + let portType: AVAudioSession.Port + let portName: String + + enum IconKind { + case sf(_: SystemIcon) + case png(_: String) + } + + + var icon: IconKind { + switch portType { + case .builtInMic: + return .sf(.mic) + case .headsetMic: + return .sf(.headphones) + case .airPlay: + return .sf(.airplayaudio) + case .bluetoothA2DP: + return .png("bluetooth") + case .bluetoothLE: + return .png("bluetooth") + case .bluetoothHFP: + return iconKindForBluetooth() + case .builtInSpeaker: + return .sf(.speakerWave3Fill) + case .builtInReceiver: + return .sf(.mic) + case .builtInSpeaker: + return .sf(.speakerWave3Fill) + case .HDMI: + return .sf(.display) + case .headphones: + return .sf(.headphones) + case .usbAudio: + if self.portName.lowercased().contains("Studio Display".lowercased()) { + return .sf(.display) + } else { + return .sf(.waveform) + } + default: + if portType.rawValue == "Bluetooth" { + return iconKindForBluetooth() + } else { + return .sf(.speakerWave3Fill) + } + } + } + + private func iconKindForBluetooth() -> IconKind { + if self.portName.lowercased().contains("AirPods M".lowercased()) { + return .sf(.airpodsmax) + } else if self.portName.lowercased().contains("AirPods Pro".lowercased()) { + return .sf(.airpodspro) + } else if self.portName.lowercased().contains("AirPods".lowercased()) { + return .sf(.airpods) + } else { + return .png("bluetooth") + } + } + + + private init(id: Identifier, portDescription: AVAudioSessionPortDescription?, portType: AVAudioSession.Port, portName: String) { + self.id = id + self.portDescription = portDescription + self.portType = portType + self.portName = portName + } + + /// Initializes an `OlvidCallAudioOption` from an `AVAudioSessionPortDescription`. This is typically used when listing all available audio inputs. + init(portDescription: AVAudioSessionPortDescription) { + self.init(id: .notBuiltInSpeaker(uid: portDescription.uid), + portDescription: portDescription, + portType: portDescription.portType, + portName: portDescription.portName) + } + + + /// Returns the `OlvidCallAudioOption` appropriate for the built-in speaker + static func builtInSpeaker() -> OlvidCallAudioOption { + .init(id: .builtInSpeaker, + portDescription: nil, + portType: .builtInSpeaker, + portName: NSLocalizedString("BUILT_IN_SPEAKER", comment: "")) + } + + + /// Only used for SwiftUI previews + static func forPreviews(portType: AVAudioSession.Port, portName: String) -> OlvidCallAudioOption { + .init(id: .notBuiltInSpeaker(uid: UUID().uuidString), + portDescription: nil, + portType: portType, + portName: portName) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallParticipant.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallParticipant.swift new file mode 100644 index 00000000..17f20223 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallParticipant.swift @@ -0,0 +1,853 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI +import os.log +import WebRTC +import ObvTypes +import ObvUICoreData + + +protocol OlvidCallParticipantDelegate: AnyObject { + + func participantWasUpdated(callParticipant: OlvidCallParticipant, updateKind: OlvidCallParticipant.UpdateKind) async + + func connectionIsChecking(for callParticipant: OlvidCallParticipant) + func connectionIsConnected(for callParticipant: OlvidCallParticipant, oldParticipantState: OlvidCallParticipant.State) async + func connectionWasClosed(for callParticipant: OlvidCallParticipant) async + + func dataChannelIsOpened(for callParticipant: OlvidCallParticipant) async + + func updateParticipants(with allCallParticipants: [ContactBytesAndNameJSON]) async throws + func relay(from: ObvCryptoId, to: ObvCryptoId, messageType: WebRTCMessageJSON.MessageType, messagePayload: String) async + func receivedRelayedMessage(from: ObvCryptoId, messageType: WebRTCMessageJSON.MessageType, messagePayload: String) async + func receivedHangedUpMessage(from callParticipant: OlvidCallParticipant, messagePayload: String) async + + func sendStartCallMessage(to callParticipant: OlvidCallParticipant, sessionDescription: RTCSessionDescription, turnCredentials: TurnCredentials) async throws + func sendAnswerCallMessage(to callParticipant: OlvidCallParticipant, sessionDescription: RTCSessionDescription) async throws + func sendNewParticipantOfferMessage(to callParticipant: OlvidCallParticipant, sessionDescription: RTCSessionDescription) async throws + func sendNewParticipantAnswerMessage(to callParticipant: OlvidCallParticipant, sessionDescription: RTCSessionDescription) async throws + func sendReconnectCallMessage(to callParticipant: OlvidCallParticipant, sessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int) async throws + func sendNewIceCandidateMessage(to callParticipant: OlvidCallParticipant, iceCandidate: RTCIceCandidate) async throws + func sendRemoveIceCandidatesMessages(to callParticipant: OlvidCallParticipant, candidates: [RTCIceCandidate]) async throws + +} + + +final class OlvidCallParticipant: ObservableObject { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "OlvidCallParticipant") + + let kind: Kind + private let peerConnectionHolder: OlvidCallParticipantPeerConnectionHolder + let cryptoId: ObvCryptoId + let displayName: String + @Published private(set) var state = State.initial + private var connectingTimeoutTimer: Timer? + private static let connectingTimeoutInterval: TimeInterval = 15.0 // 15 seconds + private var turnCredentials: TurnCredentials? + let shouldISendTheOfferToCallParticipant: Bool + @Published private(set) var contactIsMuted = false + + private weak var delegate: OlvidCallParticipantDelegate? + + + private init(kind: Kind, peerConnectionHolder: OlvidCallParticipantPeerConnectionHolder, cryptoId: ObvCryptoId, displayName: String, shouldISendTheOfferToCallParticipant: Bool) { + self.kind = kind + self.peerConnectionHolder = peerConnectionHolder + self.cryptoId = cryptoId + self.displayName = displayName + self.shouldISendTheOfferToCallParticipant = shouldISendTheOfferToCallParticipant + } + + + @MainActor + static func createCallerOfIncomingCall(callerId: ObvContactIdentifier, startCallMessage: StartCallMessageJSON, shouldISendTheOfferToCallParticipant: Bool, rtcPeerConnectionQueue: OperationQueue) async throws -> OlvidCallParticipant { + guard let persistedContact = try PersistedObvContactIdentity.get(persisted: callerId, whereOneToOneStatusIs: .any, within: ObvStack.shared.viewContext) else { + throw ObvError.couldNotFindContact + } + let peerConnectionHolder = OlvidCallParticipantPeerConnectionHolder( + startCallMessage: startCallMessage, + shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant, + rtcPeerConnectionQueue: rtcPeerConnectionQueue) + let caller = OlvidCallParticipant( + kind: .callerOfIncomingCall(contactObjectID: persistedContact.typedObjectID), + peerConnectionHolder: peerConnectionHolder, + cryptoId: persistedContact.cryptoId, + displayName: persistedContact.customOrNormalDisplayName, + shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant) + return caller + } + + + /// After calling this method, we should immediately call ``setDelegate(to:)``. + @MainActor + static func createCalleeOfOutgoingCall(calleeId: ObvContactIdentifier, shouldISendTheOfferToCallParticipant: Bool, rtcPeerConnectionQueue: OperationQueue) async throws -> OlvidCallParticipant { + guard let persistedContact = try PersistedObvContactIdentity.get(persisted: calleeId, whereOneToOneStatusIs: .any, within: ObvStack.shared.viewContext) else { + throw ObvError.couldNotFindContact + } + let gatheringPolicy: OlvidCallGatheringPolicy = persistedContact.supportsCapability(.webrtcContinuousICE) ? .gatherContinually : .gatherOnce + let peerConnectionHolder = OlvidCallParticipantPeerConnectionHolder( + gatheringPolicy: gatheringPolicy, + shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant, + rtcPeerConnectionQueue: rtcPeerConnectionQueue) + let callee = OlvidCallParticipant( + kind: .calleeOfOutgoingCall(contactObjectID: persistedContact.typedObjectID), + peerConnectionHolder: peerConnectionHolder, + cryptoId: persistedContact.cryptoId, + displayName: persistedContact.customOrNormalDisplayName, + shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant) + await callee.peerConnectionHolder.setDelegate(to: callee) + return callee + } + + + @MainActor + static func createOtherParticipantOfIncomingCall(ownedCryptoId: ObvCryptoId, remoteCryptoId: ObvCryptoId, gatheringPolicy: OlvidCallGatheringPolicy, displayName: String, shouldISendTheOfferToCallParticipant: Bool, rtcPeerConnectionQueue: OperationQueue) async throws -> OlvidCallParticipant { + let knownOrUnknown: KnownOrUnknown + let usedDisplayName: String + if let persistedContact = try PersistedObvContactIdentity.get(contactCryptoId: remoteCryptoId, ownedIdentityCryptoId: ownedCryptoId, whereOneToOneStatusIs: .any, within: ObvStack.shared.viewContext) { + knownOrUnknown = .known(contactObjectID: persistedContact.typedObjectID) + usedDisplayName = persistedContact.customOrNormalDisplayName + } else { + knownOrUnknown = .unknown(remoteCryptoId: remoteCryptoId) + usedDisplayName = displayName + } + let peerConnectionHolder = OlvidCallParticipantPeerConnectionHolder( + gatheringPolicy: gatheringPolicy, + shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant, + rtcPeerConnectionQueue: rtcPeerConnectionQueue) + let otherParticipant = OlvidCallParticipant( + kind: .otherParticipantOfIncomingCall(knownOrUnknown: knownOrUnknown), + peerConnectionHolder: peerConnectionHolder, + cryptoId: remoteCryptoId, + displayName: usedDisplayName, + shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant) + await peerConnectionHolder.setDelegate(to: otherParticipant) + return otherParticipant + } + + + @MainActor + func setDelegate(to delegate: OlvidCallParticipantDelegate) async { + self.delegate = delegate + } + +} + + +// MARK: - Audio + +extension OlvidCallParticipant { + + var selfIsMuted: Bool { + get async throws { + try await !peerConnectionHolder.isAudioTrackEnabled + } + } + + func setMuteSelf(muted: Bool) async throws { + try await peerConnectionHolder.setAudioTrack(isEnabled: !muted) + } + + +} + + +// MARK: - Implementing OlvidCallParticipantPeerConnectionHolderDelegate + +extension OlvidCallParticipant: OlvidCallParticipantPeerConnectionHolderDelegate { + + @MainActor + func peerConnectionStateDidChange(newState: RTCIceConnectionState) async { + switch newState { + case .new: return + case .checking: + delegate?.connectionIsChecking(for: self) + case .connected: + let oldState = self.state + setPeerState(to: .connected) + await delegate?.connectionIsConnected(for: self, oldParticipantState: oldState) + case .failed, .disconnected: + await reconnectAfterConnectionLoss() + case .closed: + await delegate?.connectionWasClosed(for: self) + case .completed, .count: + return + @unknown default: + assertionFailure() + } + } + + + @MainActor + func dataChannel(of peerConnectionHolder: OlvidCallParticipantPeerConnectionHolder, didReceiveMessage message: WebRTCDataChannelMessageJSON) async { + do { + switch message.messageType { + + case .muted: + let mutedMessage = try MutedMessageJSON.jsonDecode(serializedMessage: message.serializedMessage) + os_log("☎️ MutedMessageJSON received on data channel", log: Self.log, type: .info) + await processMutedMessageJSON(message: mutedMessage) + + case .updateParticipant: + let updateParticipantsMessage = try UpdateParticipantsMessageJSON.jsonDecode(serializedMessage: message.serializedMessage) + os_log("☎️ UpdateParticipantsMessageJSON received on data channel", log: Self.log, type: .info) + try await processUpdateParticipantsMessageJSON(message: updateParticipantsMessage) + + case .relayMessage: + let relayMessage = try RelayMessageJSON.jsonDecode(serializedMessage: message.serializedMessage) + os_log("☎️ RelayMessageJSON received on data channel", log: Self.log, type: .info) + await processRelayMessageJSON(message: relayMessage) + + case .relayedMessage: + let relayedMessage = try RelayedMessageJSON.jsonDecode(serializedMessage: message.serializedMessage) + os_log("☎️ RelayedMessageJSON received on data channel", log: Self.log, type: .info) + await processRelayedMessageJSON(message: relayedMessage) + + case .hangedUpMessage: + os_log("☎️ HangedUpDataChannelMessageJSON received on data channel", log: Self.log, type: .info) + // We want hangedUpMessage received on the data channel and on the WebSocket to receive the same treatment. + // So we don't process the this message here, and report to our delegate + let messagePayload = message.serializedMessage + await delegate?.receivedHangedUpMessage(from: self, messagePayload: messagePayload) + + } + } catch { + os_log("☎️ Failed to parse or process WebRTCDataChannelMessageJSON: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + } + } + + + private func processRelayedMessageJSON(message: RelayedMessageJSON) async { + + guard isCallerOfIncomingCall else { assertionFailure(); return } + + do { + let fromId = try ObvCryptoId(identity: message.from) + guard let messageType = WebRTCMessageJSON.MessageType(rawValue: message.relayedMessageType) else { assertionFailure(); throw ObvError.couldNotParseWebRTCMessageJSONMessageType } + let messagePayload = message.serializedMessagePayload + await delegate?.receivedRelayedMessage(from: fromId, messageType: messageType, messagePayload: messagePayload) + } catch { + os_log("☎️ Could not read received RelayedMessageJSON: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + return + } + } + + + private func processRelayMessageJSON(message: RelayMessageJSON) async { + guard !isCallerOfIncomingCall else { assertionFailure(); return } + + do { + let fromId = self.cryptoId + let toId = try ObvCryptoId(identity: message.to) + guard let messageType = WebRTCMessageJSON.MessageType(rawValue: message.relayedMessageType) else { assertionFailure(); throw ObvError.couldNotParseWebRTCMessageJSONMessageType } + let messagePayload = message.serializedMessagePayload + await delegate?.relay(from: fromId, to: toId, messageType: messageType, messagePayload: messagePayload) + } catch { + os_log("☎️ Could not read received RelayMessageJSON: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + return + } + } + + + private func processUpdateParticipantsMessageJSON(message: UpdateParticipantsMessageJSON) async throws { + // Check that the participant list is indeed sent by the caller (and thus, not by a "simple" participant). + guard isCallerOfIncomingCall else { + assertionFailure() + return + } + try await delegate?.updateParticipants(with: message.callParticipants) + } + + + /// Dispatching on the main actor as we are setting a published variable, used at the UI level + @MainActor + private func processMutedMessageJSON(message: MutedMessageJSON) async { + guard contactIsMuted != message.muted else { return } + contactIsMuted = message.muted + await delegate?.participantWasUpdated(callParticipant: self, updateKind: .contactMuted) + } + + + func dataChannel(of peerConnectionHolder: OlvidCallParticipantPeerConnectionHolder, didChangeState state: RTCDataChannelState) async { + os_log("☎️ Data channel changed state. New state is %{public}@", log: Self.log, type: .info, state.description) + switch state { + case .open: + await delegate?.dataChannelIsOpened(for: self) + await sendMutedMessageJSON() + case .connecting, .closing, .closed: + break + @unknown default: + assertionFailure() + } + } + + + func sendMutedMessageJSON() async { + let message: WebRTCDataChannelMessageJSON + do { + message = try await MutedMessageJSON(muted: selfIsMuted).embedInWebRTCDataChannelMessageJSON() + } catch { + os_log("☎️ Could not send MutedMessageJSON: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() + return + } + do { + try await peerConnectionHolder.sendDataChannelMessage(message) + } catch { + os_log("☎️ Could not send data channel message: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + return + } + } + + + func sendNewIceCandidateMessage(candidate: RTCIceCandidate) async throws { + guard !state.isFinalState else { return } + guard let delegate else { return } + try await delegate.sendNewIceCandidateMessage(to: self, iceCandidate: candidate) + } + + + func sendRemoveIceCandidatesMessages(candidates: [RTCIceCandidate]) async throws { + guard let delegate else { assertionFailure(); return } + try await delegate.sendRemoveIceCandidatesMessages(to: self, candidates: candidates) + } + + + /// Sends the local description to the call participant corresponding to `self` + @MainActor + func sendLocalDescription(sessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int) async { + + os_log("☎️ Calling sendLocalDescription for a participant", log: Self.log, type: .info) + + guard let delegate else { + // This typically happen when the call has been deallocated as it reached a final state + return + } + + do { + switch self.state { + case .initial: + os_log("☎️ Sending peer the following SDP: %{public}@", log: Self.log, type: .info, sessionDescription.sdp) + if isCallOutgoing { + guard let turnCredentials else { assertionFailure(); throw ObvError.turnCredentialsRequired } + try await delegate.sendStartCallMessage(to: self, sessionDescription: sessionDescription, turnCredentials: turnCredentials) + setPeerState(to: .startCallMessageSent) + } else { + if self.isCallerOfIncomingCall { + try await delegate.sendAnswerCallMessage(to: self, sessionDescription: sessionDescription) + setPeerState(to: .connectingToPeer) + } else { + if shouldISendTheOfferToCallParticipant { + try await delegate.sendNewParticipantOfferMessage(to: self, sessionDescription: sessionDescription) + setPeerState(to: .startCallMessageSent) + } else { + try await delegate.sendNewParticipantAnswerMessage(to: self, sessionDescription: sessionDescription) + setPeerState(to: .connectingToPeer) + } + } + } + case .connected, .reconnecting: + os_log("☎️ Sending peer the following restart SDP: %{public}@", log: Self.log, type: .info, sessionDescription.sdp) + try await delegate.sendReconnectCallMessage(to: self, sessionDescription: sessionDescription, reconnectCounter: reconnectCounter, peerReconnectCounterToOverride: peerReconnectCounterToOverride) + case .startCallMessageSent, .ringing, .busy, .callRejected, .connectingToPeer, .hangedUp, .kicked, .failed, .connectionTimeout: + os_log("☎️ Not sending peer the restart SDP as we are in state %{public}@", log: Self.log, type: .info, self.state.debugDescription) + break // Do nothing + } + } catch { + setPeerState(to: .failed) + assertionFailure() + return + } + + } + +} + + +// MARK: - Turn credentials + +extension OlvidCallParticipant { + + /// This method is two situations: + /// - During an outgoing call, when setting the turn credential of a call participant. + /// - During a multi-users incoming call, when we are in charge of sending the offer to another recipient (who isn't the caller). + func setTurnCredentialsAndCreateUnderlyingPeerConnection(turnCredentials: TurnCredentials) async throws { + assert(self.isOtherParticipantOfIncomingCall || self.isCalleeOfOutgoingCall) + self.turnCredentials = turnCredentials + try await self.peerConnectionHolder.setTurnCredentialsAndCreateUnderlyingPeerConnectionIfRequired(turnCredentials) + } + +} + + +// MARK: - Methods called when this participant is the caller of an incoming call + +extension OlvidCallParticipant { + + func localUserAcceptedIncomingCallFromThisCallParticipant() async throws { + assert(self.isCallerOfIncomingCall) + assert(!self.isCallOutgoing) + try await peerConnectionHolder.createPeerConnectionIfRequiredAfterAcceptingAnIncomingCall(delegate: self) + } + + + /// Called by ``OlvidCall`` when the local user is the caller, and decided to kick this participant. + @MainActor + func callerKicksThisParticipant() async { + await peerConnectionHolder.close() + setPeerState(to: .kicked) + } + +} + + +// MARK: - Methods for outgoing calls + +extension OlvidCallParticipant { + + /// Called by the associated `OlvidCall` when we received a message indicating that this participant rejected our outgoing call. + @MainActor + func rejectedOutgoingCall() async { + guard [.startCallMessageSent, .ringing].contains(self.state) else { assertionFailure(); return } + setPeerState(to: .callRejected) + } + + + /// Called by the associated `OlvidCall` when we received a message indicating that this participant is ringing. + @MainActor + func isRinging() async { + guard state == .startCallMessageSent else { return } + setPeerState(to: .ringing) + } + +} + + +// MARK: - Methods for processing participants actions + +extension OlvidCallParticipant { + + @MainActor + func didHangUp() async { + setPeerState(to: .hangedUp) + } + + + @MainActor + func isBusy() async { + guard state == .startCallMessageSent else { assertionFailure(); return } + setPeerState(to: .busy) + } + +} + + + +// MARK: - Distinguishing between known (i.e., contacts) and unknown participants + +extension OlvidCallParticipant { + + enum KnownOrUnknown { + case known(contactObjectID: TypeSafeManagedObjectID) + case unknown(remoteCryptoId: ObvCryptoId) + } + + var knownOrUnknown: KnownOrUnknown { + switch self.kind { + case .otherParticipantOfIncomingCall(knownOrUnknown: let knownOrUnknown): + return knownOrUnknown + case .callerOfIncomingCall(contactObjectID: let contactObjectID), + .calleeOfOutgoingCall(contactObjectID: let contactObjectID): + return .known(contactObjectID: contactObjectID) + } + } + +} + + +// MARK: - Participant kind and data extracted from its kind + +extension OlvidCallParticipant { + + enum Kind { + case otherParticipantOfIncomingCall(knownOrUnknown: KnownOrUnknown) + case callerOfIncomingCall(contactObjectID: TypeSafeManagedObjectID) + case calleeOfOutgoingCall(contactObjectID: TypeSafeManagedObjectID) + } + + + var isCallerOfIncomingCall: Bool { + switch kind { + case .callerOfIncomingCall: + return true + default: + return false + } + } + + + private var isOtherParticipantOfIncomingCall: Bool { + switch kind { + case .otherParticipantOfIncomingCall: + return true + default: + return false + } + } + + + private var isCalleeOfOutgoingCall: Bool { + switch kind { + case .calleeOfOutgoingCall: + return true + default: + return false + } + } + + + private var isCallOutgoing: Bool { + switch kind { + case .calleeOfOutgoingCall: + return true + case .callerOfIncomingCall, .otherParticipantOfIncomingCall: + return false + } + } + +} + + +// MARK: - Reconnecting + +extension OlvidCallParticipant { + + @MainActor + func reconnectAfterConnectionLoss() async { + guard [State.connectingToPeer, .connected, .reconnecting].contains(self.state) else { return } + setPeerState(to: .connectionTimeout) + setPeerState(to: .reconnecting) + } + +} + + +// MARK: - Timers + +extension OlvidCallParticipant { + + private func scheduleConnectingTimeout() { + invalidateConnectingTimeout() + os_log("☎️ Schedule connecting timeout timer", log: Self.log, type: .info) + let nextConnectingTimeoutInterval = Self.connectingTimeoutInterval * Double.random(in: 1.0..<1.3) // Approx. between 15 and 20 seconds + let timer = Timer.init(timeInterval: nextConnectingTimeoutInterval, repeats: false) { timer in + guard timer.isValid else { return } + Task { [weak self] in await self?.connectingTimeoutTimerFired() } + } + self.connectingTimeoutTimer = timer + RunLoop.main.add(timer, forMode: .default) + } + + + private func invalidateConnectingTimeout() { + guard let timer = self.connectingTimeoutTimer else { return } + os_log("☎️ Invalidating connecting timeout timer", log: Self.log, type: .info) + timer.invalidate() + self.connectingTimeoutTimer = nil + } + + + @MainActor + private func connectingTimeoutTimerFired() async { + guard [State.connectingToPeer, .connected, .reconnecting].contains(self.state) else { return } + os_log("☎️ Reconnection timer fired -> trying to reconnect after connection loss", log: Self.log, type: .info) + setPeerState(to: .connectionTimeout) + setPeerState(to: .reconnecting) + } + +} + + +// MARK: - Peer connection + +extension OlvidCallParticipant { + + func closeConnection() async throws { + os_log("☎️🛑 Closing peer connection", log: Self.log, type: .info) + await peerConnectionHolder.close() + } + + var gatheringPolicy: OlvidCallGatheringPolicy { + get async { + await peerConnectionHolder.gatheringPolicy + } + } + + + func setRemoteDescription(sessionDescription: RTCSessionDescription) async throws { + os_log("☎️ Will call setRemoteDescription on the peerConnectionHolder", log: Self.log, type: .info) + try await peerConnectionHolder.setRemoteDescription(sessionDescription) + } + + + func handleReceivedRestartSdp(sessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int) async throws { + os_log("☎️ Will call handleReceivedRestartSdp on the peerConnectionHolder", log: Self.log, type: .info) + try await peerConnectionHolder.handleReceivedRestartSdp( + sessionDescription: sessionDescription, + reconnectCounter: reconnectCounter, + peerReconnectCounterToOverride: peerReconnectCounterToOverride, + shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant) + } + + + /// Called when we receive a `NewParticipantAnswerMessageJSON` from this participant and when we determined that we must set a remote description + func processNewParticipantAnswerMessageJSON(sessionDescription: RTCSessionDescription) async throws { + guard self.isCalleeOfOutgoingCall || self.isOtherParticipantOfIncomingCall else { assertionFailure(); return } + os_log("☎️ Will call setRemoteDescription on the peerConnectionHolder", log: Self.log, type: .info) + try await peerConnectionHolder.setRemoteDescription(sessionDescription) + } + +} + + +// MARK: - Participant state + +extension OlvidCallParticipant { + + private func setPeerState(to newState: State) { + + // We want to make sure we are on the main thread since we are modifying a published value + assert(Thread.isMainThread) + + guard newState != self.state else { return } + + os_log("☎️ WebRTCCall participant will change state: %{public}@ --> %{public}@", log: Self.log, type: .info, self.state.debugDescription, newState.debugDescription) + self.state = newState + + invalidateConnectingTimeout() + + switch self.state { + case .startCallMessageSent: + break + case .ringing: + break + case .connectingToPeer: + scheduleConnectingTimeout() + case .reconnecting: + scheduleConnectingTimeout() + Task { [weak self] in + guard let self else { return } + try await peerConnectionHolder.restartIce(shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant) + } + case .connectionTimeout: + break + case .connected: + break + case .busy, .callRejected, .hangedUp, .kicked, .failed, .initial: + break + } + + if self.state.isFinalState { + Task { + try await closeConnection() + } + } + + Task { + await delegate?.participantWasUpdated(callParticipant: self, updateKind: .state(newState: state)) + } + } + + + enum State: Hashable, CustomDebugStringConvertible { + case initial + // States for the caller only (during this time, the recipient stays in the initial state) + case startCallMessageSent + case ringing + case busy + case callRejected + // States common to the caller and the recipient + case connectingToPeer + case connected + case reconnecting + case connectionTimeout + case hangedUp + case kicked + case failed + + var debugDescription: String { + switch self { + case .initial: return "initial" + case .startCallMessageSent: return "startCallMessageSent" + case .busy: return "busy" + case .reconnecting: return "reconnecting" + case .connectionTimeout: return "connectionTimeout" + case .ringing: return "ringing" + case .callRejected: return "callRejected" + case .connectingToPeer: return "connectingToPeer" + case .connected: return "connected" + case .hangedUp: return "hangedUp" + case .kicked: return "kicked" + case .failed: return "failed" + } + } + + var isFinalState: Bool { + switch self { + case .callRejected, .hangedUp, .kicked, .failed: return true + case .initial, .startCallMessageSent, .ringing, .busy, .connectingToPeer, .connected, .reconnecting, .connectionTimeout: return false + } + } + + var localizedString: String { + switch self { + case .initial: return NSLocalizedString("CALL_STATE_NEW", comment: "") + case .startCallMessageSent: return NSLocalizedString("CALL_STATE_INCOMING_CALL_MESSAGE_WAS_POSTED", comment: "") + case .ringing: return NSLocalizedString("CALL_STATE_RINGING", comment: "") + case .busy: return NSLocalizedString("CALL_STATE_BUSY", comment: "") + case .callRejected: return NSLocalizedString("CALL_STATE_CALL_REJECTED", comment: "") + case .connectingToPeer: return NSLocalizedString("CALL_STATE_CONNECTING_TO_PEER", comment: "") + case .connected: return NSLocalizedString("SECURE_CALL_IN_PROGRESS", comment: "") + case .reconnecting: return NSLocalizedString("CALL_STATE_RECONNECTING", comment: "") + case .connectionTimeout: return NSLocalizedString("CALL_STATE_CONNECTION_TIMEOUT", comment: "") + case .hangedUp: return NSLocalizedString("CALL_STATE_HANGED_UP", comment: "") + case .kicked: return NSLocalizedString("CALL_STATE_KICKED", comment: "") + case .failed: return NSLocalizedString("FAILED", comment: "") + } + } + + } + +} + + +// MARK: - Update kind + +extension OlvidCallParticipant { + + enum UpdateKind { + case state(newState: State) + case contactID + case contactMuted + } + +} + + +// MARK: - Offers + +extension OlvidCallParticipant { + + /// Update a recipient in a multi-user incoming call where we also are a recipient (not the caller), and not in charge of the offer. + func updateRecipient(newParticipantOfferMessage: NewParticipantOfferMessageJSON, turnCredentials: TurnCredentials) async throws { + assert(!self.isCallerOfIncomingCall) + self.turnCredentials = turnCredentials + try await self.peerConnectionHolder.setRemoteDescriptionAndTurnCredentialsThenCreateTheUnderlyingPeerConnectionIfRequired(newParticipantOfferMessage: newParticipantOfferMessage, turnCredentials: turnCredentials) + } + +} + + +// MARK: - Sending WebRTC messages + +extension OlvidCallParticipant { + + func sendDataChannelMessage(_ message: WebRTCDataChannelMessageJSON) async throws { + try await peerConnectionHolder.sendDataChannelMessage(message) + } + +} + + +// MARK: - Informations for call reports + +extension OlvidCallParticipant { + + var info: OlvidCallParticipantInfo? { + switch knownOrUnknown { + case .known(contactObjectID: let contactObjectID): + return .init(contactObjectID: contactObjectID, + isCaller: isCallerOfIncomingCall) + case .unknown: + return nil + } + } + +} + + +// MARK: ICE candidates + +extension OlvidCallParticipant { + + func processIceCandidatesJSON(message: IceCandidateJSON) async throws { + try await peerConnectionHolder.addIceCandidate(iceCandidate: message.iceCandidate) + } + + + func processRemoveIceCandidatesMessageJSON(message: RemoveIceCandidatesMessageJSON) async { + await peerConnectionHolder.removeIceCandidates(iceCandidates: message.iceCandidates) + } + +} + + +// MARK: - Errors + +extension OlvidCallParticipant { + + enum ObvError: Error, CustomDebugStringConvertible { + + case turnCredentialsRequired + case couldNotParseWebRTCMessageJSONMessageType + case couldNotFindContact + + var debugDescription: String { + switch self { + case .turnCredentialsRequired: return "Turn credentials are required" + case .couldNotParseWebRTCMessageJSONMessageType: return "Could not parse WebRTCMessageJSON.MessageType" + case .couldNotFindContact: return "Could not find contact" + } + } + + } + +} + + +// MARK: - Helpers + +fileprivate extension IceCandidateJSON { + var iceCandidate: RTCIceCandidate { + RTCIceCandidate(sdp: sdp, sdpMLineIndex: sdpMLineIndex, sdpMid: sdpMid) + } +} + + +fileprivate extension RemoveIceCandidatesMessageJSON { + var iceCandidates: [RTCIceCandidate] { + candidates.map { $0.iceCandidate } + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallParticipantInfo.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallParticipantInfo.swift new file mode 100644 index 00000000..f9a681ad --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallParticipantInfo.swift @@ -0,0 +1,27 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvUICoreData + + +struct OlvidCallParticipantInfo { + let contactObjectID: TypeSafeManagedObjectID + let isCaller: Bool +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallParticipantPeerConnectionHolder.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallParticipantPeerConnectionHolder.swift new file mode 100644 index 00000000..dbe33df5 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/OlvidCallParticipantPeerConnectionHolder.swift @@ -0,0 +1,744 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import WebRTC +import ObvSettings + + +protocol OlvidCallParticipantPeerConnectionHolderDelegate: AnyObject { + + func peerConnectionStateDidChange(newState: RTCIceConnectionState) async + func dataChannel(of peerConnectionHolder: OlvidCallParticipantPeerConnectionHolder, didReceiveMessage message: WebRTCDataChannelMessageJSON) async + func dataChannel(of peerConnectionHolder: OlvidCallParticipantPeerConnectionHolder, didChangeState state: RTCDataChannelState) async + + func sendNewIceCandidateMessage(candidate: RTCIceCandidate) async throws + func sendRemoveIceCandidatesMessages(candidates: [RTCIceCandidate]) async throws + + func sendLocalDescription(sessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int) async + +} + + +actor OlvidCallParticipantPeerConnectionHolder { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "OlvidCallParticipantPeerConnectionHolder") + + /// Serial queue shared among all `OlvidCallParticipantPeerConnectionHolder`, among all calls. + private let rtcPeerConnectionQueue: OperationQueue + + private(set) var turnCredentials: TurnCredentials? + private(set) var gatheringPolicy: OlvidCallGatheringPolicy + + weak var delegate: OlvidCallParticipantPeerConnectionHolderDelegate? + + /// Used to save the remote session description obtained when receiving an incoming call. + /// Since we do not create the underlying peer connection until the local user accepts (picks up) the call, + /// We need to store the session description until she does so. If she does pick up the call, we create the + /// Underlying peer connection and immediately set its session description using the value saved here. + private var remoteSessionDescription: RTCSessionDescription? + + private var peerConnection: ObvPeerConnection? + private var pendingRemoteIceCandidates = [RTCIceCandidate]() + private var iceCandidatesGeneratedLocally = [RTCIceCandidate]() // Legacy, used when gatheringPolicy == gatherOnce + private var reconnectOfferCounter: Int = 0 // Counter of the last reconnect offer we sent + private var reconnectAnswerCounter: Int = 0 // Counter of the last reconnect offer from the peer for which we sent an answer + private var iceGatheringCompletedWasCalled = false + private let shouldISendTheOfferToCallParticipant: Bool + /// ICE candidates can be processed after an SDP was set on the peer connection. + private var readyToProcessPeerIceCandidates = false { + didSet { + guard self.readyToProcessPeerIceCandidates else { return } + Task { await drainRemoteIceCandidates() } + } + } + /// Allows the user to mute self before the peer connection is created (e.g., before answering the call) + private var audioTrackIsEnabledOnCreation = true + + + private static var factory: RTCPeerConnectionFactory = { + RTCInitializeSSL() + let videoEncoderFactory = RTCDefaultVideoEncoderFactory() + let videoDecoderFactory = RTCDefaultVideoDecoderFactory() + let factory = RTCPeerConnectionFactory(encoderFactory: videoEncoderFactory, decoderFactory: videoDecoderFactory) + return factory + }() + + + // Remark: we do not test whether self.rtcPeerConnection == peerConnection as it happens that self.rtcPeerConnection == nil + // at this point. This happens as the rtcPeerConnection is created in an operation and only set after the operation finishes. + // This callback is typically called because of the creation of the peer connection in the operation, reason why + // we may have self.rtcPeerConnection == nil. But this is not an issue as we can use the peerConnection received as a parameter. + + /// Creating the peer connection is done by means of executing a ``CreatePeerConnectionOperation``. Once the operation finishes, we set ``self.rtcPeerConnection`` + /// to the value created by the operation. Yet, the sole fact to create this peer connection triggers calls to several ``RTCPeerConnectionDelegateWrapperDelegate`` delegate + /// methods. These methods may be called before we have time to set ``self.rtcPeerConnection`` after the operation finishes. We made the choice to also set + /// ``self.rtcPeerConnection`` from these delegate methods. We do so by always calling this function for setting ``self.rtcPeerConnection``. + private func setRTCPeerConnectionIfRequired(_ newPeerConnection: ObvPeerConnection) { + if let peerConnection { + assert(peerConnection == newPeerConnection) + } else { + self.peerConnection = newPeerConnection + } + } + + /// Used when receiving an incoming call (the delegate shall be set immediately) + init(startCallMessage: StartCallMessageJSON, shouldISendTheOfferToCallParticipant: Bool, rtcPeerConnectionQueue: OperationQueue) { + self.turnCredentials = startCallMessage.turnCredentials + self.shouldISendTheOfferToCallParticipant = shouldISendTheOfferToCallParticipant + self.remoteSessionDescription = RTCSessionDescription(type: startCallMessage.sessionDescriptionType, + sdp: startCallMessage.sessionDescription) + self.gatheringPolicy = startCallMessage.gatheringPolicy ?? .gatherOnce + self.rtcPeerConnectionQueue = rtcPeerConnectionQueue + // We do *not* create the peer connection now, we wait until the user explicitely accepts the incoming call + } + + + /// Used during the init of an outgoing call. Also used during a multi-call, when we are a recipient and need to create a peer connection holder with another participant. + /// When calling this initalizer, one should immediately call ``setDelegate(to:)``. + init(gatheringPolicy: OlvidCallGatheringPolicy, shouldISendTheOfferToCallParticipant: Bool, rtcPeerConnectionQueue: OperationQueue) { + self.gatheringPolicy = gatheringPolicy + self.shouldISendTheOfferToCallParticipant = shouldISendTheOfferToCallParticipant + self.remoteSessionDescription = nil + self.rtcPeerConnectionQueue = rtcPeerConnectionQueue + } + + + deinit { + os_log("☎️ OlvidCallParticipantPeerConnectionHolder deinit", log: Self.log, type: .debug) + } + + + func setDelegate(to newDelegate: OlvidCallParticipantPeerConnectionHolderDelegate) { + assert(self.delegate == nil) + self.delegate = newDelegate + } + +} + + +// MARK: - Dealing with incoming calls + +extension OlvidCallParticipantPeerConnectionHolder { + + /// When receiving an incoming call, we quickly create this peer connection holder, but we do not create the underlying peer connection. + /// For this, we want to wait until the user explictely accepts (picks up) the incoming call. + /// This method is called when the local user does so. + /// It creates the peer connection. This will eventually trigger a call to + /// ``func peerConnectionShouldNegotiate(_ peerConnection: ObvPeerConnection) async`` + /// where the local description (answer) will be created. + func createPeerConnectionIfRequiredAfterAcceptingAnIncomingCall(delegate: OlvidCallParticipantPeerConnectionHolderDelegate) async throws { + assert(self.peerConnection == nil) + assert(self.delegate == nil) + self.delegate = delegate + try await createPeerConnectionIfRequired() + } + + + /// Used for an incoming call that was already accepted, when the caller adds a participant to the call + func setRemoteDescriptionAndTurnCredentialsThenCreateTheUnderlyingPeerConnectionIfRequired(newParticipantOfferMessage: NewParticipantOfferMessageJSON, turnCredentials: TurnCredentials) async throws { + + os_log("☎️ Setting remote description and turn credentials, then creating peer connection", log: Self.log, type: .info) + + assert(self.delegate != nil) + + self.turnCredentials = turnCredentials + self.remoteSessionDescription = RTCSessionDescription(type: newParticipantOfferMessage.sessionDescriptionType, + sdp: newParticipantOfferMessage.sessionDescription) + + // We override the gathering policy we had (indicated by the caller for this participant) by the one sent the participant herself. + self.gatheringPolicy = newParticipantOfferMessage.gatheringPolicy ?? .gatherOnce + + // Since the call was already accepted (we are only adding another participant here), we can safely create the peer connection immediately. + // The situation here is different from the one encountered in the initializer executed when receiving an incoming call, where we had to wait + // Until the local user explicitely accepted the call. + + try await createPeerConnectionIfRequired() + + } + +} + + +// MARK: - Creating and closing the peer connection + +extension OlvidCallParticipantPeerConnectionHolder { + + /// This method is two situations: + /// - During an outgoing call, when setting the turn credential of a call participant. + /// - During a multi-users incoming call, when we are in charge of sending the offer to another recipient (who isn't the caller). + func setTurnCredentialsAndCreateUnderlyingPeerConnectionIfRequired(_ turnCredentials: TurnCredentials) async throws { + assert(self.delegate != nil) + guard self.turnCredentials == nil else { + assertionFailure() + throw ObvError.turnCredentialsAreSetAlready + } + self.turnCredentials = turnCredentials + try await createPeerConnectionIfRequired() + } + + + func close() async { + guard let peerConnection else { + os_log("☎️🛑 Execute signaling state closed completion handler: peer connection is nil", log: Self.log, type: .info) + return + } + let op = ClosePeerConnectionOperation(peerConnection: peerConnection) + os_log("☎️ Operations in the queue: %{public}@ before adding %{public}@", log: Self.log, type: .info, rtcPeerConnectionQueue.operations.debugDescription, op.debugDescription) + await rtcPeerConnectionQueue.addAndAwaitOperation(op) + } + + + /// This method creates the peer connection underlying this peer connection holder. + /// + /// This method is called in two situations : + /// - For an outgoing call, it is called right after setting the credentials. + /// - For an incoming call, it is not called when setting the credentials as we want to wait until the user explicitely accepts (picks up) the incoming call. + /// It is called as soon as the user accepts the incoming call. + private func createPeerConnectionIfRequired() async throws { + + os_log("☎️ Call to createPeerConnection", log: Self.log, type: .info) + + guard peerConnection == nil else { + os_log("☎️ No need to create the peer connection, it already exists", log: Self.log, type: .info) + assert(delegate != nil) + return + } + + guard delegate != nil else { + os_log("☎️ The delegate is nil, which not expected", log: Self.log, type: .fault) + assertionFailure() + throw ObvError.delegateIsNil + } + + guard let turnCredentials else { + os_log("☎️ No turn credentials availabe", log: Self.log, type: .fault) + assertionFailure() + throw ObvError.noTurnCredentialsAvailable + } + + // Create the peer connection and store it + + os_log("☎️ Creating the RTC peer connection", log: Self.log, type: .info) + + var operationsToQueue = [Operation]() + + let op1 = CreatePeerConnectionOperation( + turnCredentials: turnCredentials, + gatheringPolicy: gatheringPolicy, + isAudioTrackEnabled: audioTrackIsEnabledOnCreation, + obvPeerConnectionDelegate: self, + obvDataChannelDelegate: self) + + operationsToQueue.append(op1) + + // We might already have a session description available. This typically happens when receiving an incoming call: + // We created the call and saved the session description for later, i.e., for the time the local user accepts the incoming call, + // Which is what led us here. + + let shouldSetReadyToProcessPeerIceCandidates: Bool + if let remoteSessionDescription { + self.remoteSessionDescription = nil + let op2 = SetRemoteDescriptionOperation(input: .createPeerConnectionOperation(operation: op1), remoteSessionDescription: remoteSessionDescription) + op2.addDependency(op1) + operationsToQueue.append(op2) + shouldSetReadyToProcessPeerIceCandidates = true + } else { + shouldSetReadyToProcessPeerIceCandidates = false + } + + os_log("☎️ Operations in the queue: %{public}@ before adding %{public}@", log: Self.log, type: .info, rtcPeerConnectionQueue.operations.debugDescription, operationsToQueue.debugDescription) + operationsToQueue.makeEachOperationDependentOnThePreceedingOne() + await rtcPeerConnectionQueue.addAndAwaitOperations(operationsToQueue) + + guard let peerConnection = op1.peerConnection else { + assertionFailure() + throw ObvError.peerConnectionCreationFailed + } + + setRTCPeerConnectionIfRequired(peerConnection) + + os_log("☎️ The RTC peer connection was created", log: Self.log, type: .info) + + if shouldSetReadyToProcessPeerIceCandidates { + self.readyToProcessPeerIceCandidates = true + } + + } + + + private func createRTCConfiguration(turnCredentials: TurnCredentials) -> RTCConfiguration { + + // 2022-03-11, we used to use the servers indicated in the turn credentials. + // We do not do that anymore and use the (user) preferred servers. + let iceServer = WebRTC.RTCIceServer(urlStrings: ObvMessengerConstants.ICEServerURLs.preferred, + username: turnCredentials.turnUserName, + credential: turnCredentials.turnPassword, + tlsCertPolicy: .insecureNoCheck) + + let rtcConfiguration = RTCConfiguration() + rtcConfiguration.iceServers = [iceServer] + rtcConfiguration.iceTransportPolicy = .relay + rtcConfiguration.sdpSemantics = .unifiedPlan + rtcConfiguration.continualGatheringPolicy = gatheringPolicy.rtcPolicy + + return rtcConfiguration + + } + + +} + + +// MARK: - Gathering ICE candidates + +extension OlvidCallParticipantPeerConnectionHolder { + + private func drainRemoteIceCandidates() async { + guard case .gatherContinually = gatheringPolicy else { return } + guard readyToProcessPeerIceCandidates else { assertionFailure(); return } + guard !pendingRemoteIceCandidates.isEmpty else { return } + os_log("☎️❄️ Drain remote %{public}@ ICE candidate(s)", log: Self.log, type: .info, String(pendingRemoteIceCandidates.count)) + let pendingRemoteIceCandidates = self.pendingRemoteIceCandidates + self.pendingRemoteIceCandidates.removeAll() + for iceCandidate in pendingRemoteIceCandidates { + do { + try await addIceCandidate(iceCandidate: iceCandidate) + } catch { + os_log("☎️ Could not drain one of the ice candidates: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + assertionFailure() // Continue anyway + } + } + } + + + func addIceCandidate(iceCandidate: RTCIceCandidate) async throws { + os_log("☎️❄️ addIceCandidate called", log: Self.log, type: .info) + guard gatheringPolicy == .gatherContinually else { assertionFailure(); return } + if readyToProcessPeerIceCandidates { + os_log("☎️❄️ As we are ready to process ICE candidates, we will queue an AddIceCandidateOperation", log: Self.log, type: .info) + guard let peerConnection else { assertionFailure("We expect rtcPeerConnection to exist when readyToProcessPeerIceCandidates is true"); return } + let op = AddIceCandidateOperation(input: .peerConnection(peerConnection: peerConnection), iceCandidate: iceCandidate) + os_log("☎️ Operations in the queue: %{public}@ before adding %{public}@", log: Self.log, type: .info, rtcPeerConnectionQueue.operations.debugDescription, op.debugDescription) + await rtcPeerConnectionQueue.addAndAwaitOperation(op) + guard !op.isCancelled else { + assertionFailure() + throw ObvError.addIceCandidateFailed(error: op.reasonForCancel) + } + } else { + os_log("☎️❄️ Not ready to forward remote ICE candidates, add candidate to pending list (count %{public}@)", log: Self.log, type: .info, String(pendingRemoteIceCandidates.count)) + pendingRemoteIceCandidates.append(iceCandidate) + } + } + + + func removeIceCandidates(iceCandidates: [RTCIceCandidate]) async { + os_log("☎️❄️ removeIceCandidates called", log: Self.log, type: .info) + if readyToProcessPeerIceCandidates { + guard let peerConnection else { assertionFailure("We expect rtcPeerConnection to exist when readyToProcessPeerIceCandidates is true"); return } + let op = RemoveIceCandidatesOperation(peerConnection: peerConnection, iceCandidates: iceCandidates) + os_log("☎️ Operations in the queue: %{public}@ before adding %{public}@", log: Self.log, type: .info, rtcPeerConnectionQueue.operations.debugDescription, op.debugDescription) + await rtcPeerConnectionQueue.addAndAwaitOperation(op) + } else { + os_log("☎️❄️ Not ready to forward remote ICE candidates, remove candidates from pending list (count %{public}@)", log: Self.log, type: .info, String(pendingRemoteIceCandidates.count)) + pendingRemoteIceCandidates.removeAll { iceCandidates.contains($0) } + } + } + + + private func resetGatheringState() { + guard case .gatherOnce = gatheringPolicy else { assertionFailure(); return } + iceCandidatesGeneratedLocally.removeAll() + iceGatheringCompletedWasCalled = false + } + + + func restartIce(shouldISendTheOfferToCallParticipant: Bool) async throws { + + guard let peerConnection else { assertionFailure(); return } + + let op = RestartIceIfRequiredOperation(peerConnection: peerConnection, shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant) + os_log("☎️ Operations in the queue: %{public}@ before adding %{public}@", log: Self.log, type: .info, rtcPeerConnectionQueue.operations.debugDescription, op.debugDescription) + await rtcPeerConnectionQueue.addAndAwaitOperation(op) + guard !op.isCancelled else { + throw ObvError.restartIceFailed(error: op.reasonForCancel) + } + + } + + + private func iceGatheringCompleted() async throws { + + guard !iceGatheringCompletedWasCalled else { return } + iceGatheringCompletedWasCalled = true + + os_log("☎️ ICE gathering is completed", log: Self.log, type: .info) + + guard let localDescription = await peerConnection?.localDescription else { assertionFailure(); return } + guard let delegate = delegate else { assertionFailure(); return } + + switch localDescription.type { + case .offer: + await delegate.sendLocalDescription(sessionDescription: localDescription, reconnectCounter: reconnectOfferCounter, peerReconnectCounterToOverride: reconnectAnswerCounter) + case .answer: + await delegate.sendLocalDescription(sessionDescription: localDescription, reconnectCounter: reconnectAnswerCounter, peerReconnectCounterToOverride: -1) + case .prAnswer, .rollback: + assertionFailure() // Do nothing + @unknown default: + assertionFailure() // Do nothing + } + + } + +} + + +// MARK: - Implementing RTCDataChannelDelegateWrapperDelegate (wrapper around a RTCDataChannelDelegate) and other methods + +extension OlvidCallParticipantPeerConnectionHolder: ObvDataChannelDelegate { + + func dataChannelDidChangeState(_ dataChannel: RTCDataChannel) async { + os_log("☎️ Data Channel %{public}@ has a new state: %{public}@", log: Self.log, type: .info, dataChannel.debugDescription, dataChannel.readyState.description) + await delegate?.dataChannel(of: self, didChangeState: dataChannel.readyState) + } + + + func dataChannel(_ dataChannel: RTCDataChannel, didReceiveMessageWith buffer: RTCDataBuffer) async { + os_log("☎️ Data Channel %{public}@ did receive message with buffer", log: Self.log, type: .info, dataChannel.debugDescription) + assert(!buffer.isBinary) + let webRTCDataChannelMessageJSON: WebRTCDataChannelMessageJSON + do { + webRTCDataChannelMessageJSON = try WebRTCDataChannelMessageJSON.jsonDecode(data: buffer.data) + } catch { + os_log("☎️ Could not decode message received on the RTC data channel as a WebRTCMessageJSON: %{public}@", log: Self.log, type: .fault, error.localizedDescription) + return + } + assert(delegate != nil) + await delegate?.dataChannel(of: self, didReceiveMessage: webRTCDataChannelMessageJSON) + } + + + func sendDataChannelMessage(_ message: WebRTCDataChannelMessageJSON) async throws { + guard let peerConnection else { + throw ObvError.noPeerConnectionAvailable + } + let op = SendDataThroughPeerConnectionOperation(peerConnection: peerConnection, message: message) + // Do not await the end of this operation, as it might take a long time + os_log("☎️ Operations in the queue: %{public}@ before adding %{public}@", log: Self.log, type: .info, rtcPeerConnectionQueue.operations.debugDescription, op.debugDescription) + rtcPeerConnectionQueue.addOperation(op) + //await rtcPeerConnectionQueue.addAndAwaitOperation(op) + //guard !op.isCancelled else { + // throw ObvError.sendDataChannelMessage(error: op.reasonForCancel) + //} + } + +} + + +// MARK: - Implementing RTCPeerConnectionDelegateWrapperDelegate (wrapper around a RTCPeerConnectionDelegate) + +extension OlvidCallParticipantPeerConnectionHolder: ObvPeerConnectionDelegate { + + /// According to https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Perfect_negotiation, + /// This is the best place to get a local description and send it using the signaling channel to the remote peer. + func peerConnectionShouldNegotiate(_ peerConnection: ObvPeerConnection) async { + + os_log("☎️ Peer Connection should negociate was called", log: Self.log, type: .info) + setRTCPeerConnectionIfRequired(peerConnection) + + let reconnectOfferCounterBeforeOp = self.reconnectOfferCounter + + let op = CreateAndSetLocalDescriptionIfAppropriateOperation( + peerConnection: peerConnection, + gatheringPolicy: gatheringPolicy, + reconnectOfferCounter: reconnectOfferCounter, + reconnectAnswerCounter: reconnectAnswerCounter, + maxaveragebitrate: ObvMessengerSettings.VoIP.maxaveragebitrate) + os_log("☎️ Operations in the queue: %{public}@ before adding %{public}@", log: Self.log, type: .info, rtcPeerConnectionQueue.operations.debugDescription, op.debugDescription) + await rtcPeerConnectionQueue.addAndAwaitOperation(op) + guard !op.isCancelled else { + os_log("☎️🛑Could not negotiate: %{public}@", log: Self.log, type: .fault, op.reasonForCancel?.localizedDescription ?? "None") + assertionFailure() + return + } + + // Make sure we have no race condition (occuring if this method was called back-to-back) + + guard self.reconnectOfferCounter == reconnectOfferCounterBeforeOp else { + await peerConnectionShouldNegotiate(peerConnection) + return + } + + self.reconnectOfferCounter = op.reconnectOfferCounter + + if op.gaetheringStateNeedsToBeReset { + resetGatheringState() + } + + if let toSend = op.toSend { + guard let delegate else { assertionFailure(); return } + await delegate.sendLocalDescription(sessionDescription: toSend.filteredSessionDescription, reconnectCounter: toSend.reconnectCounter, peerReconnectCounterToOverride: toSend.peerReconnectCounterToOverride) + } + + } + + + func peerConnection(_ peerConnection: ObvPeerConnection, didChange newState: RTCPeerConnectionState) async { + os_log("☎️ RTCPeerConnection didChange RTCPeerConnectionState: %{public}@", log: Self.log, type: .info, newState.debugDescription) + } + + + func peerConnection(_ peerConnection: ObvPeerConnection, didChange stateChanged: RTCSignalingState) async { + os_log("☎️ RTCPeerConnection didChange RTCSignalingState: %{public}@. Current ICE connection state is %{public}@", log: Self.log, type: .info, stateChanged.debugDescription, peerConnection.iceConnectionState.debugDescription) + self.setRTCPeerConnectionIfRequired(peerConnection) + if stateChanged == .stable && peerConnection.iceConnectionState == .connected { + await delegate?.peerConnectionStateDidChange(newState: .connected) + } + if stateChanged == .closed { + os_log("☎️🛑 Signaling state is closed", log: Self.log, type: .info) + } + } + + + func peerConnection(_ peerConnection: ObvPeerConnection, didAdd stream: RTCMediaStream) async { + os_log("☎️ RTCPeerConnection didAdd RTCMediaStream", log: Self.log, type: .info) + setRTCPeerConnectionIfRequired(peerConnection) + } + + + func peerConnection(_ peerConnection: ObvPeerConnection, didRemove stream: RTCMediaStream) async { + os_log("☎️ RTCPeerConnection didRemove RTCMediaStream", log: Self.log, type: .info) + setRTCPeerConnectionIfRequired(peerConnection) + } + + + func peerConnection(_ peerConnection: ObvPeerConnection, didChange newState: RTCIceConnectionState) async { + os_log("☎️ RTCPeerConnection didChange RTCIceConnectionState: %{public}@", log: Self.log, type: .info, newState.debugDescription) + setRTCPeerConnectionIfRequired(peerConnection) + await delegate?.peerConnectionStateDidChange(newState: newState) + } + + + func peerConnection(_ peerConnection: ObvPeerConnection, didChange newState: RTCIceGatheringState) async { + os_log("☎️❄️ Peer Connection Ice Gathering State changed to: %{public}@", log: Self.log, type: .info, newState.debugDescription) + setRTCPeerConnectionIfRequired(peerConnection) + guard case .gatherOnce = gatheringPolicy else { return } + switch newState { + case .new: + break + case .gathering: + // We start gathering --> clear the turnCandidates list + resetGatheringState() + case .complete: + switch gatheringPolicy { + case .gatherOnce: + if iceCandidatesGeneratedLocally.isEmpty { + os_log("☎️❄️ No ICE candidates found", log: Self.log, type: .info) + } else { + // We have all we need to send the local description to the caller. + os_log("☎️❄️ Calls completed ICE Gathering with %{public}@ candidates", log: Self.log, type: .info, String(self.iceCandidatesGeneratedLocally.count)) + Task { + try? await iceGatheringCompleted() + } + } + case .gatherContinually: + break // Do nothing + } + @unknown default: + assertionFailure() + } + } + + + func peerConnection(_ peerConnection: ObvPeerConnection, didGenerate candidate: RTCIceCandidate) async { + os_log("☎️❄️ Peer Connection didGenerate RTCIceCandidate", log: Self.log, type: .info) + setRTCPeerConnectionIfRequired(peerConnection) + switch gatheringPolicy { + case .gatherOnce: + iceCandidatesGeneratedLocally.append(candidate) + if iceCandidatesGeneratedLocally.count == 1 { /// At least one candidate, we wait one second and hope that the other candidate will be added. + try? await Task.sleep(seconds: 2) + try? await iceGatheringCompleted() + } + case .gatherContinually: + Task { + try? await delegate?.sendNewIceCandidateMessage(candidate: candidate) + } + } + } + + + func peerConnection(_ peerConnection: ObvPeerConnection, didRemove candidates: [RTCIceCandidate]) async { + os_log("☎️❄️ Peer Connection didRemove RTCIceCandidate", log: Self.log, type: .info) + assert(delegate != nil) + setRTCPeerConnectionIfRequired(peerConnection) + switch gatheringPolicy { + case .gatherOnce: + iceCandidatesGeneratedLocally.removeAll { candidates.contains($0) } + case .gatherContinually: + try? await delegate?.sendRemoveIceCandidatesMessages(candidates: candidates) + } + } + + + func peerConnection(_ peerConnection: ObvPeerConnection, didOpen dataChannel: RTCDataChannel) async { + os_log("☎️ Peer Connection didOpen RTCDataChannel", log: Self.log, type: .info) + setRTCPeerConnectionIfRequired(peerConnection) + } + +} + + +// MARK: - Managing session descriptions + +extension OlvidCallParticipantPeerConnectionHolder { + + func setRemoteDescription(_ sessionDescription: RTCSessionDescription) async throws { + + os_log("☎️ Setting a session description of type %{public}@", log: Self.log, type: .info, sessionDescription.type.debugDescription) + + guard let peerConnection else { + assertionFailure() + throw ObvError.noPeerConnectionAvailable + } + + // Since we are setting a remote description, we expect to be either in the stable or haveLocalOffer states. + // We do not test this though, as the following call will throw if we are not in one of these states. + + let op = SetRemoteDescriptionOperation(input: .peerConnection(peerConnection: peerConnection), remoteSessionDescription: sessionDescription) + os_log("☎️ Operations in the queue: %{public}@ before adding %{public}@", log: Self.log, type: .info, rtcPeerConnectionQueue.operations.debugDescription, op.debugDescription) + await rtcPeerConnectionQueue.addAndAwaitOperation(op) + guard !op.isCancelled else { + throw ObvError.setRemoteDescriptionFailed(error: op.reasonForCancel) + } + self.readyToProcessPeerIceCandidates = true + + } + + + func handleReceivedRestartSdp(sessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int, shouldISendTheOfferToCallParticipant: Bool) async throws { + + guard let peerConnection else { + assertionFailure("We expect rtcPeerConnection to exist at this point") + throw ObvError.noPeerConnectionAvailable + } + + let op = HandleReceivedRestartSdpOperation( + peerConnection: peerConnection, + sessionDescription: sessionDescription, + receivedReconnectCounter: reconnectCounter, + receivedPeerReconnectCounterToOverride: peerReconnectCounterToOverride, + reconnectAnswerCounter: reconnectAnswerCounter, + reconnectOfferCounter: reconnectOfferCounter, + shouldISendTheOfferToCallParticipant: shouldISendTheOfferToCallParticipant) + + os_log("☎️ Operations in the queue: %{public}@ before adding %{public}@", log: Self.log, type: .info, rtcPeerConnectionQueue.operations.debugDescription, op.debugDescription) + await rtcPeerConnectionQueue.addAndAwaitOperation(op) + + guard !op.isCancelled else { + throw ObvError.handleReceivedRestartSdpFailed(error: op.reasonForCancel) + } + + if let newReconnectAnswerCounter = op.newReconnectAnswerCounter { + self.reconnectAnswerCounter = newReconnectAnswerCounter + } + + } + +} + + +// MARK: - Audio control + +extension OlvidCallParticipantPeerConnectionHolder { + + func setAudioTrack(isEnabled: Bool) async throws { + guard let peerConnection else { + self.audioTrackIsEnabledOnCreation = isEnabled + return + } + try await peerConnection.setAudioTrack(isEnabled: isEnabled) + } + + var isAudioTrackEnabled: Bool { + get throws { + guard let peerConnection else { + return audioTrackIsEnabledOnCreation + } + return try peerConnection.isAudioTrackEnabled + } + } +} + + +// MARK - Errors + +extension OlvidCallParticipantPeerConnectionHolder { + + enum ObvError: Error, CustomStringConvertible { + + case noTurnCredentialsAvailable + case couldNotFindExpectedMatchInSDP + case turnCredentialsAreSetAlready + case noPeerConnectionAvailable + case unexpectedNumberOfMediaLinesInSessionDescription + case delegateIsNil + case peerConnectionCreationFailed + case setRemoteDescriptionFailed(error: SetRemoteDescriptionOperation.ReasonForCancel?) + case addIceCandidateFailed(error: AddIceCandidateOperation.ReasonForCancel?) + case restartIceFailed(error: RestartIceIfRequiredOperation.ReasonForCancel?) + case dataChannelIsNil + case sendDataChannelMessage(error: SendDataThroughPeerConnectionOperation.ReasonForCancel?) + case handleReceivedRestartSdpFailed(error: HandleReceivedRestartSdpOperation.ReasonForCancel?) + + var description: String { + switch self { + case .noTurnCredentialsAvailable: + return "No turn credentials available" + case .couldNotFindExpectedMatchInSDP: + return "Could not find expected match in SDP" + case .turnCredentialsAreSetAlready: + return "Turn credentials already set" + case .noPeerConnectionAvailable: + return "No peer connection available" + case .unexpectedNumberOfMediaLinesInSessionDescription: + return "Unexpected number of media lines in session description" + case .delegateIsNil: + return "Delegate is nil" + case .peerConnectionCreationFailed: + return "Peer connection creation failed" + case .setRemoteDescriptionFailed(error: let error): + return "Set remote description failed: \(error?.localizedDescription ?? "No reason specified")" + case .addIceCandidateFailed(error: let error): + return "Add ICE candidate failed: \(error?.localizedDescription ?? "No reason specified")" + case .restartIceFailed(error: let error): + return "Restart ICE failed: \(error?.localizedDescription ?? "No reason specified")" + case .dataChannelIsNil: + return "Data channel is nil" + case .sendDataChannelMessage(error: let error): + return "Send data channel message failed: \(error?.localizedDescription ?? "No reason specified")" + case .handleReceivedRestartSdpFailed(error: let error): + return "Handle received restart SDP failed: \(error?.localizedDescription ?? "No reason specified")" + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/AddIceCandidateOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/AddIceCandidateOperation.swift new file mode 100644 index 00000000..290397ea --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/AddIceCandidateOperation.swift @@ -0,0 +1,138 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import WebRTC +import OlvidUtils + + + +final class AddIceCandidateOperation: AsyncOperationWithSpecificReasonForCancel { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "AddIceCandidateOperation") + + enum InputType { + case peerConnection(peerConnection: ObvPeerConnection) + case operation(op: CreatePeerConnectionOperation) + } + + private let input: InputType + private let iceCandidate: RTCIceCandidate + + init(input: InputType, iceCandidate: RTCIceCandidate) { + self.input = input + self.iceCandidate = iceCandidate + } + + + override func main() async { + os_log("☎️❄️ [WebRTCOperation][AddIceCandidateOperation] Start", log: Self.log, type: .info) + defer { os_log("☎️❄️ [WebRTCOperation][AddIceCandidateOperation] Finish", log: Self.log, type: .info) } + + let peerConnection: ObvPeerConnection + switch input { + case .peerConnection(let _peerConnection): + peerConnection = _peerConnection + case .operation(let op): + guard let _peerConnection = op.peerConnection else { + assertionFailure() + return cancel(withReason: .noRTCPeerConnectionProvided) + } + peerConnection = _peerConnection + } + + do { + try await peerConnection.addIceCandidate(iceCandidate) + } catch { + assertionFailure() + return cancel(withReason: .addIceCandidateFailed(error: error)) + } + return finish() + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + case noRTCPeerConnectionProvided + case addIceCandidateFailed(error: Error) + var logType: OSLogType { + return .fault + } + } + +} + + +//final class AddIceCandidateOperation: OperationWithSpecificReasonForCancel { +// +// private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "AddIceCandidateOperation") +// +// private let peerConnection: RTCPeerConnection +// private let iceCandidate: RTCIceCandidate +// +// init(peerConnection: RTCPeerConnection, iceCandidate: RTCIceCandidate) { +// self.peerConnection = peerConnection +// self.iceCandidate = iceCandidate +// } +// +// +// private var _isFinished = false { +// willSet { willChangeValue(for: \.isFinished) } +// didSet { didChangeValue(for: \.isFinished) } +// } +// +// +// final public override var isFinished: Bool { _isFinished } +// +// +// final public override func cancel(withReason reason: ReasonForCancel) { +// super.cancel(withReason: reason) +// _isFinished = true +// } +// +// +// final public func finish() { +// _isFinished = true +// } +// +// +// override func main() { +// os_log("☎️❄️ [WebRTCOperation][AddIceCandidateOperation] Start", log: Self.log, type: .info) +// defer { os_log("☎️❄️ [WebRTCOperation][AddIceCandidateOperation] Finish", log: Self.log, type: .info) } +// +// peerConnection.add(iceCandidate) { [weak self] error in +// guard let self else { return } +// if let error { +// return cancel(withReason: .addIceCandidateFailed(error: error)) +// } else { +// return finish() +// } +// } +// } +// +// +// enum ReasonForCancel: LocalizedErrorWithLogType { +// case addIceCandidateFailed(error: Error) +// var logType: OSLogType { +// return .fault +// } +// } +// +//} +// diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/ClosePeerConnectionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/ClosePeerConnectionOperation.swift new file mode 100644 index 00000000..117ccb88 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/ClosePeerConnectionOperation.swift @@ -0,0 +1,68 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import WebRTC +import OlvidUtils + + + +final class ClosePeerConnectionOperation: AsyncOperationWithSpecificReasonForCancel { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "ClosePeerConnectionOperation") + + let peerConnection: ObvPeerConnection + + init(peerConnection: ObvPeerConnection) { + self.peerConnection = peerConnection + } + + + override func main() async { + + os_log("☎️ [WebRTCOperation][ClosePeerConnectionOperation] Start", log: Self.log, type: .info) + defer { os_log("☎️ [WebRTCOperation][ClosePeerConnectionOperation] Finish", log: Self.log, type: .info) } + + let currentConnectionState = peerConnection.connectionState + + guard currentConnectionState != .closed else { + os_log("☎️🛑 Trying to close a peer connection whose connection state is already closed. We do nothing.", log: Self.log, type: .info) + return finish() + } + + os_log("☎️🛑 Closing peer connection. State before closing: %{public}@", log: Self.log, type: .info, currentConnectionState.debugDescription) + + await peerConnection.close() + + assert(peerConnection.connectionState == .closed) + + return finish() + + } + + + + enum ReasonForCancel: LocalizedErrorWithLogType { + var logType: OSLogType { + return .fault + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/ConfigureAudioSessionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/ConfigureAudioSessionOperation.swift new file mode 100644 index 00000000..6cbdcbf0 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/ConfigureAudioSessionOperation.swift @@ -0,0 +1,88 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import AVFoundation +import WebRTC +import ObvSettings +import os.log +import OlvidUtils + + +final class ConfigureAudioSessionOperation: OperationWithSpecificReasonForCancel { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "ConfigureAudioSessionOperation") + + private static var dateOfLastConfiguration: Date? + + override func main() { + + os_log("☎️🎵 [WebRTCOperation][ConfigureAudioSessionOperation] Start", log: Self.log, type: .info) + defer { os_log("☎️🎵 [WebRTCOperation][ConfigureAudioSessionOperation] Finish", log: Self.log, type: .info) } + + do { + + // See also https://stackoverflow.com/questions/49170274/callkit-loudspeaker-bug-how-whatsapp-fixed-it/49466250#49466250 + // See also https://developer.apple.com/forums/thread/64544#189703 + // See also https://stackoverflow.com/questions/48023629/abnormal-behavior-of-speaker-button-on-system-provided-call-screen?rq=1 + + let rtcAudioSession = RTCAudioSession.sharedInstance() + + rtcAudioSession.lockForConfiguration() + defer { rtcAudioSession.unlockForConfiguration() } + +// try rtcAudioSession.setCategory(.playAndRecord, mode: .voiceChat) + + let configuration = RTCAudioSessionConfiguration.webRTC() + configuration.categoryOptions = [.allowBluetooth, .allowBluetoothA2DP, .duckOthers] + try rtcAudioSession.setConfiguration(configuration) + + if ObvUICoreDataConstants.useCallKit { + rtcAudioSession.useManualAudio = true + } else { + rtcAudioSession.useManualAudio = false + if !ObvMessengerConstants.isRunningOnRealDevice { + try rtcAudioSession.setActive(true) + } + //rtcAudioSession.audioSessionDidActivate(rtcAudioSession.session) + } + + try rtcAudioSession.overrideOutputAudioPort(.none) + + Self.dateOfLastConfiguration = Date.now + + } catch { + if let date = Self.dateOfLastConfiguration, abs(date.timeIntervalSinceNow) < 1 { + assertionFailure("\(error.localizedDescription) - This happens when answering an incoming call while another Olvid call was in progress. In practice, it seems to work.") + } + return cancel(withReason: .configureAudioSessionFailed(error: error)) + } + + } + + + + enum ReasonForCancel: LocalizedErrorWithLogType { + case configureAudioSessionFailed(error: Error) + var logType: OSLogType { + return .fault + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/CreateAndSetLocalDescriptionIfAppropriateOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/CreateAndSetLocalDescriptionIfAppropriateOperation.swift new file mode 100644 index 00000000..ba1df6a1 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/CreateAndSetLocalDescriptionIfAppropriateOperation.swift @@ -0,0 +1,584 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import WebRTC +import OlvidUtils + + + +final class CreateAndSetLocalDescriptionIfAppropriateOperation: AsyncOperationWithSpecificReasonForCancel { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "CreateAndSetLocalDescriptionIfAppropriateOperation") + + private let peerConnection: ObvPeerConnection + private let gatheringPolicy: OlvidCallGatheringPolicy + private(set) var reconnectOfferCounter: Int + private let reconnectAnswerCounter: Int + private let maxaveragebitrate: Int? + + init(peerConnection: ObvPeerConnection, gatheringPolicy: OlvidCallGatheringPolicy, reconnectOfferCounter: Int, reconnectAnswerCounter: Int, maxaveragebitrate: Int?) { + self.peerConnection = peerConnection + self.gatheringPolicy = gatheringPolicy + self.reconnectOfferCounter = reconnectOfferCounter + self.reconnectAnswerCounter = reconnectAnswerCounter + self.maxaveragebitrate = maxaveragebitrate + } + + + private(set) var gaetheringStateNeedsToBeReset = false + private(set) var toSend: (filteredSessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int)? + + override func main() async { + + os_log("☎️ [WebRTCOperation][CreateAndSetLocalDescriptionIfAppropriateOperation] Start", log: Self.log, type: .info) + defer { os_log("☎️ [WebRTCOperation][CreateAndSetLocalDescriptionIfAppropriateOperation] Finish", log: Self.log, type: .info) } + + // Check that the current state is not closed + + guard peerConnection.connectionState != .closed else { + os_log("☎️ Since the peer connection is in a closed state, we do not negotiate", log: Self.log, type: .info) + return finish() + } + + // Create session description + + os_log("☎️ Creating session description", log: Self.log, type: .info) + + let sessionDescription: RTCSessionDescription? + do { + sessionDescription = try await createLocalDescriptionIfAppropriateForCurrentSignalingState() + } catch { + return cancel(withReason: .localDescriptionCreationFailed(error: error)) + } + + guard let sessionDescription else { + // No need to set a local decription + os_log("☎️ No need to set a local description", log: Self.log, type: .info) + return finish() + } + + // Filter the session description we just created + + let filteredSessionDescription: RTCSessionDescription + do { + os_log("☎️ Filtering SDP...", log: Self.log, type: .info) + filteredSessionDescription = try self.filterSdpDescriptionCodec(rtcSessionDescription: sessionDescription) + //os_log("☎️ Filtered SDP: %{public}@", log: Self.log, type: .info, filteredSessionDescription.sdp) + } catch { + return cancel(withReason: .filterLocalSessionDescriptionFailed(error: error)) + } + + // Set the filtered session description + + do { + os_log("☎️ Setting local (filtered) SDP...", log: Self.log, type: .info) + try await peerConnection.setLocalDescription(filteredSessionDescription) + os_log("☎️ The filtered SDP was set", log: Self.log, type: .info) + } catch { + os_log("☎️ Failed to set the filtered SDP", log: Self.log, type: .fault) + return cancel(withReason: .setLocalDescriptionFailed(error: error)) + } + + + switch gatheringPolicy { + case .gatherOnce: + gaetheringStateNeedsToBeReset = true + case .gatherContinually: + switch filteredSessionDescription.type { + case .offer: + toSend = (filteredSessionDescription, reconnectOfferCounter, reconnectAnswerCounter) + case .answer: + toSend = (filteredSessionDescription, reconnectAnswerCounter, -1) + case .prAnswer, .rollback: + assertionFailure() + @unknown default: + assertionFailure() + } + } + + os_log("☎️ Finishing the CreateAndSetLocalDescriptionIfAppropriateOperation", log: Self.log, type: .info) + + return finish() + + } + + + private func createLocalDescriptionIfAppropriateForCurrentSignalingState() async throws -> RTCSessionDescription? { + os_log("☎️ Calling Create Local Description if appropriate for the current signaling state", log: Self.log, type: .info) + let constraints = RTCMediaConstraints(mandatoryConstraints: nil, optionalConstraints: nil) + switch peerConnection.signalingState { + case .stable: + os_log("☎️ We are in a stable state --> create offer", log: Self.log, type: .info) + reconnectOfferCounter += 1 + let offer = try await peerConnection.offer(for: constraints) + return offer + case .haveRemoteOffer: + os_log("☎️ We are in a haveRemoteOffer state --> create answer", log: Self.log, type: .info) + let answer = try await peerConnection.answer(for: constraints) + return answer + case .haveLocalOffer, .haveLocalPrAnswer, .haveRemotePrAnswer, .closed: + os_log("☎️ We are neither in a stable or a haveRemoteOffer state, we do not create any offer", log: Self.log, type: .info) + return nil + @unknown default: + assertionFailure() + return nil + } + } + + + // MARK: - Filtering session descriptions + + private static let audioCodecs = Set(["opus", "PCMU", "PCMA", "telephone-event", "red"]) + + + private func filterSdpDescriptionCodec(rtcSessionDescription: RTCSessionDescription) throws -> RTCSessionDescription { + + let sessionDescription = rtcSessionDescription.sdp + + let mediaStartAudio = try NSRegularExpression(pattern: "^m=audio\\s+", options: .anchorsMatchLines) + let mediaStart = try NSRegularExpression(pattern: "^m=", options: .anchorsMatchLines) + let lines = sessionDescription.split(whereSeparator: { $0.isNewline }).map({String($0)}) + var audioSectionStarted = false + var audioLines = [String]() + var filteredLines = [String]() + for line in lines { + if audioSectionStarted { + let isFirstLineOfAnotherMediaSection = mediaStart.numberOfMatches(in: line, options: [], range: NSRange(location: 0, length: line.count)) > 0 + if isFirstLineOfAnotherMediaSection { + audioSectionStarted = false + // The audio section has ended, we can process all the audio lines with gathered + let filteredAudioLines = try processAudioLines(audioLines) + filteredLines.append(contentsOf: filteredAudioLines) + filteredLines.append(line) + } else { + audioLines.append(line) + } + } else { + let isFirstLineOfAudioSection = mediaStartAudio.numberOfMatches(in: line, options: [], range: NSRange(location: 0, length: line.count)) > 0 + if isFirstLineOfAudioSection { + audioSectionStarted = true + audioLines.append(line) + } else { + filteredLines.append(line) + } + } + } + if audioSectionStarted { + // In case the audio section was the last section of the session description + audioSectionStarted = false + let filteredAudioLines = try processAudioLines(audioLines) + filteredLines.append(contentsOf: filteredAudioLines) + } + let filteredSessionDescription = filteredLines.joined(separator: "\r\n").appending("\r\n") + return RTCSessionDescription(type: rtcSessionDescription.type, sdp: filteredSessionDescription) + } + + + private func processAudioLines(_ audioLines: [String]) throws -> [String] { + + let rtpmapPattern = try NSRegularExpression(pattern: "^a=rtpmap:([0-9]+)\\s+([^\\s/]+)", options: .anchorsMatchLines) + + // First pass + var formatsToKeep = Set() + var opusFormat: String? + for line in audioLines { + guard let result = rtpmapPattern.firstMatch(in: line, options: [], range: NSRange(location: 0, length: line.count)) else { continue } + let formatRange = result.range(at: 1) + let codecRange = result.range(at: 2) + let format = (line as NSString).substring(with: formatRange) + let codec = (line as NSString).substring(with: codecRange) + guard Self.audioCodecs.contains(codec) else { continue } + formatsToKeep.insert(format) + if codec == "opus" { + opusFormat = format + } + } + + assert(opusFormat != nil) + + // Second pass + // 1. Rewrite the first line (only keep the formats to keep) + var processedAudioLines = [String]() + do { + let firstLine = try NSRegularExpression(pattern: "^(m=\\S+\\s+\\S+\\s+\\S+)\\s+(([0-9]+\\s*)+)$", options: .anchorsMatchLines) + guard let result = firstLine.firstMatch(in: audioLines[0], options: [], range: NSRange(location: 0, length: audioLines[0].count)) else { + throw ObvError.couldNotFindExpectedMatchInSDP + } + let processedFirstLine = (audioLines[0] as NSString) + .substring(with: result.range(at: 1)) + .appending(" ") + .appending( + (audioLines[0] as NSString) + .substring(with: result.range(at: 2)) + .split(whereSeparator: { $0.isWhitespace }) + .map({String($0)}) + .filter({ formatsToKeep.contains($0) }) + .joined(separator: " ")) + processedAudioLines.append(processedFirstLine) + } + // 2. Filter subsequent lines + let rtpmapOrOptionPattern = try NSRegularExpression(pattern: "^a=(rtpmap|fmtp|rtcp-fb):([0-9]+)\\s+", options: .anchorsMatchLines) + + for i in 1.. { +// +// private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "CreateAndSetLocalDescriptionIfAppropriateOperation") +// +// private let peerConnection: RTCPeerConnection +// private let gatheringPolicy: GatheringPolicy +// private(set) var reconnectOfferCounter: Int +// private let reconnectAnswerCounter: Int +// private let maxaveragebitrate: Int? +// +// init(peerConnection: RTCPeerConnection, gatheringPolicy: GatheringPolicy, reconnectOfferCounter: Int, reconnectAnswerCounter: Int, maxaveragebitrate: Int?) { +// self.peerConnection = peerConnection +// self.gatheringPolicy = gatheringPolicy +// self.reconnectOfferCounter = reconnectOfferCounter +// self.reconnectAnswerCounter = reconnectAnswerCounter +// self.maxaveragebitrate = maxaveragebitrate +// } +// +// +// private(set) var gaetheringStateNeedsToBeReset = false +// private(set) var toSend: (filteredSessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int)? +// +// +// private var _isFinished = false { +// willSet { willChangeValue(for: \.isFinished) } +// didSet { didChangeValue(for: \.isFinished) } +// } +// +// +// final public override var isFinished: Bool { _isFinished } +// +// +// final public override func cancel(withReason reason: ReasonForCancel) { +// super.cancel(withReason: reason) +// _isFinished = true +// } +// +// +// final public func finish() { +// _isFinished = true +// } +// +// +// override func main() { +// +// os_log("☎️ [WebRTCOperation][CreateAndSetLocalDescriptionIfAppropriateOperation] Start", log: Self.log, type: .info) +// defer { os_log("☎️ [WebRTCOperation][CreateAndSetLocalDescriptionIfAppropriateOperation] Finish", log: Self.log, type: .info) } +// +// // Check that the current state is not closed +// +// guard peerConnection.connectionState != .closed else { +// os_log("☎️ Since the peer connection is in a closed state, we do not negotiate", log: Self.log, type: .info) +// return finish() +// } +// +// // Create session description +// +// os_log("☎️ Creating session description", log: Self.log, type: .info) +// +// createLocalDescriptionIfAppropriateForCurrentSignalingState { [weak self] sessionDescription, error in +// guard let self else { return } +// if let error { +// return cancel(withReason: .localDescriptionCreationFailed(error: error)) +// } +// +// guard let sessionDescription else { +// // No need to set a local decription +// os_log("☎️ No need to set a local description", log: Self.log, type: .info) +// return finish() +// } +// +// // Filter the session description we just created +// +// let filteredSessionDescription: RTCSessionDescription +// do { +// os_log("☎️ Filtering SDP...", log: Self.log, type: .info) +// filteredSessionDescription = try self.filterSdpDescriptionCodec(rtcSessionDescription: sessionDescription) +// //os_log("☎️ Filtered SDP: %{public}@", log: Self.log, type: .info, filteredSessionDescription.sdp) +// } catch { +// return cancel(withReason: .filterLocalSessionDescriptionFailed(error: error)) +// } +// +// // Set the filtered session description +// +// os_log("☎️ Setting the filtered SDP...", log: Self.log, type: .info) +// +// peerConnection.setLocalDescription(filteredSessionDescription) { [weak self] error in +// guard let self else { return } +// +// if let error { +// return cancel(withReason: .setLocalDescriptionFailed(error: error)) +// } +// +// os_log("☎️ The filtered SDP was set", log: Self.log, type: .info) +// +// switch gatheringPolicy { +// case .gatherOnce: +// gaetheringStateNeedsToBeReset = true +// case .gatherContinually: +// switch filteredSessionDescription.type { +// case .offer: +// toSend = (filteredSessionDescription, reconnectOfferCounter, reconnectAnswerCounter) +// case .answer: +// toSend = (filteredSessionDescription, reconnectAnswerCounter, -1) +// case .prAnswer, .rollback: +// assertionFailure() +// @unknown default: +// assertionFailure() +// } +// } +// +// os_log("☎️ Finishing the CreateAndSetLocalDescriptionIfAppropriateOperation", log: Self.log, type: .info) +// +// return finish() +// +// } +// +// } +// +// } +// +// +// private func createLocalDescriptionIfAppropriateForCurrentSignalingState(_ completionHandler: @escaping RTCCreateSessionDescriptionCompletionHandler) { +// os_log("☎️ Calling Create Local Description if appropriate for the current signaling state", log: Self.log, type: .info) +// let constraints = RTCMediaConstraints(mandatoryConstraints: nil, optionalConstraints: nil) +// switch peerConnection.signalingState { +// case .stable: +// os_log("☎️ We are in a stable state --> create offer", log: Self.log, type: .info) +// reconnectOfferCounter += 1 +// peerConnection.offer(for: constraints, completionHandler: completionHandler) +// case .haveRemoteOffer: +// os_log("☎️ We are in a haveRemoteOffer state --> create answer", log: Self.log, type: .info) +// peerConnection.answer(for: constraints, completionHandler: completionHandler) +// case .haveLocalOffer, .haveLocalPrAnswer, .haveRemotePrAnswer, .closed: +// os_log("☎️ We are neither in a stable or a haveRemoteOffer state, we do not create any offer", log: Self.log, type: .info) +// completionHandler(nil, nil) +// @unknown default: +// assertionFailure() +// completionHandler(nil, nil) +// } +// } +// +// +// // MARK: - Filtering session descriptions +// +// private static let audioCodecs = Set(["opus", "PCMU", "PCMA", "telephone-event", "red"]) +// +// +// private func filterSdpDescriptionCodec(rtcSessionDescription: RTCSessionDescription) throws -> RTCSessionDescription { +// +// let sessionDescription = rtcSessionDescription.sdp +// +// let mediaStartAudio = try NSRegularExpression(pattern: "^m=audio\\s+", options: .anchorsMatchLines) +// let mediaStart = try NSRegularExpression(pattern: "^m=", options: .anchorsMatchLines) +// let lines = sessionDescription.split(whereSeparator: { $0.isNewline }).map({String($0)}) +// var audioSectionStarted = false +// var audioLines = [String]() +// var filteredLines = [String]() +// for line in lines { +// if audioSectionStarted { +// let isFirstLineOfAnotherMediaSection = mediaStart.numberOfMatches(in: line, options: [], range: NSRange(location: 0, length: line.count)) > 0 +// if isFirstLineOfAnotherMediaSection { +// audioSectionStarted = false +// // The audio section has ended, we can process all the audio lines with gathered +// let filteredAudioLines = try processAudioLines(audioLines) +// filteredLines.append(contentsOf: filteredAudioLines) +// filteredLines.append(line) +// } else { +// audioLines.append(line) +// } +// } else { +// let isFirstLineOfAudioSection = mediaStartAudio.numberOfMatches(in: line, options: [], range: NSRange(location: 0, length: line.count)) > 0 +// if isFirstLineOfAudioSection { +// audioSectionStarted = true +// audioLines.append(line) +// } else { +// filteredLines.append(line) +// } +// } +// } +// if audioSectionStarted { +// // In case the audio section was the last section of the session description +// audioSectionStarted = false +// let filteredAudioLines = try processAudioLines(audioLines) +// filteredLines.append(contentsOf: filteredAudioLines) +// } +// let filteredSessionDescription = filteredLines.joined(separator: "\r\n").appending("\r\n") +// return RTCSessionDescription(type: rtcSessionDescription.type, sdp: filteredSessionDescription) +// } +// +// +// private func processAudioLines(_ audioLines: [String]) throws -> [String] { +// +// let rtpmapPattern = try NSRegularExpression(pattern: "^a=rtpmap:([0-9]+)\\s+([^\\s/]+)", options: .anchorsMatchLines) +// +// // First pass +// var formatsToKeep = Set() +// var opusFormat: String? +// for line in audioLines { +// guard let result = rtpmapPattern.firstMatch(in: line, options: [], range: NSRange(location: 0, length: line.count)) else { continue } +// let formatRange = result.range(at: 1) +// let codecRange = result.range(at: 2) +// let format = (line as NSString).substring(with: formatRange) +// let codec = (line as NSString).substring(with: codecRange) +// guard Self.audioCodecs.contains(codec) else { continue } +// formatsToKeep.insert(format) +// if codec == "opus" { +// opusFormat = format +// } +// } +// +// assert(opusFormat != nil) +// +// // Second pass +// // 1. Rewrite the first line (only keep the formats to keep) +// var processedAudioLines = [String]() +// do { +// let firstLine = try NSRegularExpression(pattern: "^(m=\\S+\\s+\\S+\\s+\\S+)\\s+(([0-9]+\\s*)+)$", options: .anchorsMatchLines) +// guard let result = firstLine.firstMatch(in: audioLines[0], options: [], range: NSRange(location: 0, length: audioLines[0].count)) else { +// throw ObvError.couldNotFindExpectedMatchInSDP +// } +// let processedFirstLine = (audioLines[0] as NSString) +// .substring(with: result.range(at: 1)) +// .appending(" ") +// .appending( +// (audioLines[0] as NSString) +// .substring(with: result.range(at: 2)) +// .split(whereSeparator: { $0.isWhitespace }) +// .map({String($0)}) +// .filter({ formatsToKeep.contains($0) }) +// .joined(separator: " ")) +// processedAudioLines.append(processedFirstLine) +// } +// // 2. Filter subsequent lines +// let rtpmapOrOptionPattern = try NSRegularExpression(pattern: "^a=(rtpmap|fmtp|rtcp-fb):([0-9]+)\\s+", options: .anchorsMatchLines) +// +// for i in 1... + */ + +import Foundation +import os.log +import WebRTC +import OlvidUtils + + + +final class CreatePeerConnectionOperation: AsyncOperationWithSpecificReasonForCancel { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "CreatePeerConnectionOperation") + + static let labelForDataChannel = "data0" + + private let turnCredentials: TurnCredentials + private let gatheringPolicy: OlvidCallGatheringPolicy + private let obvPeerConnectionDelegate: ObvPeerConnectionDelegate + private let obvDataChannelDelegate: ObvDataChannelDelegate + private let isAudioTrackEnabled: Bool + + // If this operation finishes without cancelling, this is set + private(set) var peerConnection: ObvPeerConnection? + + init(turnCredentials: TurnCredentials, gatheringPolicy: OlvidCallGatheringPolicy, isAudioTrackEnabled: Bool, obvPeerConnectionDelegate: ObvPeerConnectionDelegate, obvDataChannelDelegate: ObvDataChannelDelegate) { + self.turnCredentials = turnCredentials + self.gatheringPolicy = gatheringPolicy + self.obvPeerConnectionDelegate = obvPeerConnectionDelegate + self.obvDataChannelDelegate = obvDataChannelDelegate + self.isAudioTrackEnabled = isAudioTrackEnabled + } + + + override func main() async { + + os_log("☎️ [WebRTCOperation][CreatePeerConnectionOperation] Start", log: Self.log, type: .info) + defer { os_log("☎️ [WebRTCOperation][CreatePeerConnectionOperation] Finish", log: Self.log, type: .info) } + + let rtcConfiguration = Self.createRTCConfiguration(turnCredentials: turnCredentials, gatheringPolicy: gatheringPolicy) + let constraints = RTCMediaConstraints(mandatoryConstraints: nil, optionalConstraints: nil) + os_log("☎️ Create Peer Connection with %{public}@ policy", log: Self.log, type: .info, gatheringPolicy.localizedDescription) + + do { + peerConnection = try await ObvPeerConnection(with: rtcConfiguration, constraints: constraints, delegate: obvPeerConnectionDelegate) + } catch { + return cancel(withReason: .peerConnectionCreationFailed) + } + + guard let peerConnection else { + assertionFailure() + return cancel(withReason: .peerConnectionCreationFailed) + } + + os_log("☎️ Add Olvid audio tracks", log: Self.log, type: .info) + do { + try await peerConnection.addAudioTrack(isEnabled: isAudioTrackEnabled) + } catch { + assertionFailure() + return cancel(withReason: .audiotrackCreationFailed) + } + + os_log("☎️ Create Data Channel", log: Self.log, type: .info) + do { + try await peerConnection.addDataChannel(dataChannelDelegate: obvDataChannelDelegate) + } catch { + return cancel(withReason: .dataChannelCreationFailed) + } + + return finish() + + } + + + private static func createRTCConfiguration(turnCredentials: TurnCredentials, gatheringPolicy: OlvidCallGatheringPolicy) -> RTCConfiguration { + + // 2022-03-11, we used to use the servers indicated in the turn credentials. + // We do not do that anymore and use the (user) preferred servers. + let iceServer = WebRTC.RTCIceServer(urlStrings: ObvMessengerConstants.ICEServerURLs.preferred, + username: turnCredentials.turnUserName, + credential: turnCredentials.turnPassword, + tlsCertPolicy: .insecureNoCheck) + + let rtcConfiguration = RTCConfiguration() + rtcConfiguration.iceServers = [iceServer] + rtcConfiguration.iceTransportPolicy = .relay + rtcConfiguration.sdpSemantics = .unifiedPlan + rtcConfiguration.continualGatheringPolicy = gatheringPolicy.rtcPolicy + + return rtcConfiguration + + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case peerConnectionCreationFailed + case dataChannelCreationFailed + case audiotrackCreationFailed + + var logType: OSLogType { + return .fault + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/HandleReceivedRestartSdpOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/HandleReceivedRestartSdpOperation.swift new file mode 100644 index 00000000..a85a39c8 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/HandleReceivedRestartSdpOperation.swift @@ -0,0 +1,143 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import WebRTC +import OlvidUtils + + + +final class HandleReceivedRestartSdpOperation: AsyncOperationWithSpecificReasonForCancel { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "AddIceCandidateOperation") + + private let peerConnection: ObvPeerConnection + private let sessionDescription: RTCSessionDescription + private let receivedReconnectCounter: Int + private let receivedPeerReconnectCounterToOverride: Int + private let reconnectAnswerCounter: Int + private let reconnectOfferCounter: Int + private let shouldISendTheOfferToCallParticipant: Bool + + init(peerConnection: ObvPeerConnection, sessionDescription: RTCSessionDescription, receivedReconnectCounter: Int, receivedPeerReconnectCounterToOverride: Int, reconnectAnswerCounter: Int, reconnectOfferCounter: Int, shouldISendTheOfferToCallParticipant: Bool) { + self.peerConnection = peerConnection + self.sessionDescription = sessionDescription + self.receivedReconnectCounter = receivedReconnectCounter + self.receivedPeerReconnectCounterToOverride = receivedPeerReconnectCounterToOverride + self.reconnectAnswerCounter = reconnectAnswerCounter + self.reconnectOfferCounter = reconnectOfferCounter + self.shouldISendTheOfferToCallParticipant = shouldISendTheOfferToCallParticipant + self.newReconnectAnswerCounter = reconnectAnswerCounter // Will be modified in the main() method of this operation + } + + + private(set) var newReconnectAnswerCounter: Int? + + + override func main() async { + + os_log("☎️ [WebRTCOperation][HandleReceivedRestartSdpOperation] Start", log: Self.log, type: .info) + defer { os_log("☎️ [WebRTCOperation][HandleReceivedRestartSdpOperation] Finish", log: Self.log, type: .info) } + + do { + + switch sessionDescription.type { + + case .offer: + + // If we receive an offer with a counter smaller than another offer we previously received, we can ignore it. + guard receivedReconnectCounter >= reconnectAnswerCounter else { + os_log("☎️ Received restart offer with counter too low %{public}@ vs. %{public}@", log: Self.log, type: .info, String(receivedReconnectCounter), String(reconnectAnswerCounter)) + return finish() + } + + switch peerConnection.signalingState { + case .haveRemoteOffer: + os_log("☎️ Received restart offer while already having one --> rollback", log: Self.log, type: .info) + try await peerConnection.rollback() + + case .haveLocalOffer: + // We already sent an offer. + // If we are the offer sender, do nothing, otherwise rollback and process the new offer + if shouldISendTheOfferToCallParticipant { + if receivedPeerReconnectCounterToOverride == reconnectOfferCounter { + os_log("☎️ Received restart offer while already having created an offer. It specifies to override my current offer --> rollback", log: Self.log, type: .info) + try await peerConnection.rollback() + } else { + os_log("☎️ Received restart offer while already having created an offer. I am the offerer --> ignore this new offer", log: Self.log, type: .info) + return finish() + } + } else { + os_log("☎️ Received restart offer while already having created an offer. I am not the offerer --> rollback", log: Self.log, type: .info) + try await peerConnection.rollback() + } + + default: + break + } + + newReconnectAnswerCounter = receivedReconnectCounter + + os_log("☎️ Setting remote description", log: Self.log, type: .info) + try await peerConnection.setRemoteDescription(sessionDescription) + + await peerConnection.restartIce() + + case .answer: + + guard receivedReconnectCounter == reconnectOfferCounter else { + os_log("☎️ Received restart answer with bad counter %{public}@ vs. %{public}@", log: Self.log, type: .info, String(receivedReconnectCounter), String(reconnectOfferCounter)) + return finish() + } + + guard peerConnection.signalingState == .haveLocalOffer else { + os_log("☎️ Received restart answer while not in the haveLocalOffer state --> ignore this answer", log: Self.log, type: .info) + return finish() + } + + os_log("☎️ Applying received restart answer", log: Self.log, type: .info) + os_log("☎️ Setting remote description", log: Self.log, type: .info) + try await peerConnection.setRemoteDescription(sessionDescription) + + default: + + assertionFailure() + + } + + return finish() + + } catch { + assertionFailure() + return cancel(withReason: .failed(error: error)) + } + + } + + enum ReasonForCancel: LocalizedErrorWithLogType { + case rollbackFailed(error: Error) + case setRemoteDescriptionFailed(error: Error) + case failed(error: Error) + var logType: OSLogType { + return .fault + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/RemoveIceCandidateOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/RemoveIceCandidateOperation.swift new file mode 100644 index 00000000..ad3a41fa --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/RemoveIceCandidateOperation.swift @@ -0,0 +1,55 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import WebRTC +import OlvidUtils + + + +final class RemoveIceCandidatesOperation: AsyncOperationWithSpecificReasonForCancel { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "RemoveIceCandidatesOperation") + + private let peerConnection: ObvPeerConnection + private let iceCandidates: [RTCIceCandidate] + + init(peerConnection: ObvPeerConnection, iceCandidates: [RTCIceCandidate]) { + self.peerConnection = peerConnection + self.iceCandidates = iceCandidates + } + + + override func main() async { + os_log("☎️❄️ [WebRTCOperation][RemoveIceCandidatesOperation] Start", log: Self.log, type: .info) + defer { os_log("☎️❄️ [WebRTCOperation][RemoveIceCandidatesOperation] Finish", log: Self.log, type: .info) } + await peerConnection.removeIceCandidates(iceCandidates) + return finish() + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + var logType: OSLogType { + return .fault + } + } + +} + diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/RestartIceIfRequiredOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/RestartIceIfRequiredOperation.swift new file mode 100644 index 00000000..fec9cb93 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/RestartIceIfRequiredOperation.swift @@ -0,0 +1,96 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import WebRTC +import OlvidUtils + + + +final class RestartIceIfRequiredOperation: AsyncOperationWithSpecificReasonForCancel { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "RestartIceIfRequiredOperation") + + private let peerConnection: ObvPeerConnection + private let shouldISendTheOfferToCallParticipant: Bool + + init(peerConnection: ObvPeerConnection, shouldISendTheOfferToCallParticipant: Bool) { + self.peerConnection = peerConnection + self.shouldISendTheOfferToCallParticipant = shouldISendTheOfferToCallParticipant + } + + + override func main() async { + + os_log("☎️❄️ [WebRTCOperation][RestartIceIfRequiredOperation] Start", log: Self.log, type: .info) + defer { os_log("☎️❄️ [WebRTCOperation][RestartIceIfRequiredOperation] Finish", log: Self.log, type: .info) } + + guard isRestartICENeeded else { + return finish() + } + + if isRollbackNeeded { + let rollbackSessionDescription = RTCSessionDescription(type: .rollback, sdp: "") + do { + try await peerConnection.setLocalDescription(rollbackSessionDescription) + } catch { + return cancel(withReason: .rollbackFailed(error: error)) + } + } + + await peerConnection.restartIce() + + return finish() + + } + + + private var isRestartICENeeded: Bool { + switch peerConnection.signalingState { + case .haveRemoteOffer: + return shouldISendTheOfferToCallParticipant + default: + return true + } + } + + private var isRollbackNeeded: Bool { + switch peerConnection.signalingState { + case .haveLocalOffer: + return true + case .haveRemoteOffer: + return shouldISendTheOfferToCallParticipant + case .stable, .haveLocalPrAnswer, .haveRemotePrAnswer, .closed: + return false + @unknown default: + assertionFailure() + return false + } + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + case rollbackFailed(error: Error) + var logType: OSLogType { + return .fault + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/SendDataThroughPeerConnectionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/SendDataThroughPeerConnectionOperation.swift new file mode 100644 index 00000000..3372212b --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/SendDataThroughPeerConnectionOperation.swift @@ -0,0 +1,71 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import WebRTC +import OlvidUtils + + +final class SendDataThroughPeerConnectionOperation: AsyncOperationWithSpecificReasonForCancel { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "SendDataThroughPeerConnectionOperation") + + private let peerConnection: ObvPeerConnection + private let message: WebRTCDataChannelMessageJSON + + init(peerConnection: ObvPeerConnection, message: WebRTCDataChannelMessageJSON) { + self.peerConnection = peerConnection + self.message = message + } + + + override func main() async { + + os_log("☎️ [WebRTCOperation][SendDataThroughPeerConnectionOperation] Start", log: Self.log, type: .info) + defer { os_log("☎️ [WebRTCOperation][SendDataThroughPeerConnectionOperation] Finish", log: Self.log, type: .info) } + + let buffer: RTCDataBuffer + do { + let data = try message.jsonEncode() + buffer = RTCDataBuffer(data: data, isBinary: false) + } catch { + return cancel(withReason: .messageEncodingFailed(error: error)) + } + + let isSuccess = await peerConnection.sendData(buffer: buffer) + + guard isSuccess else { + return cancel(withReason: .sendDataThroughPeerConnectionFailed) + } + + return finish() + } + + enum ReasonForCancel: LocalizedErrorWithLogType { + + case sendDataThroughPeerConnectionFailed + case messageEncodingFailed(error: Error) + + var logType: OSLogType { + return .fault + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/SetRemoteDescriptionOperation.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/SetRemoteDescriptionOperation.swift new file mode 100644 index 00000000..535c1d43 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCall/Operations/SetRemoteDescriptionOperation.swift @@ -0,0 +1,107 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import WebRTC +import OlvidUtils + + + +final class SetRemoteDescriptionOperation: AsyncOperationWithSpecificReasonForCancel { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "SetRemoteDescriptionOperation") + + enum Input { + case peerConnection(peerConnection: ObvPeerConnection) + case createPeerConnectionOperation(operation: CreatePeerConnectionOperation) + } + + private let input: Input + private let remoteSessionDescription: RTCSessionDescription + + init(input: Input, remoteSessionDescription: RTCSessionDescription) { + self.input = input + self.remoteSessionDescription = remoteSessionDescription + } + + + override func main() async { + + os_log("☎️ [WebRTCOperation][SetRemoteDescriptionOperation] Start", log: Self.log, type: .info) + defer { os_log("☎️ [WebRTCOperation][SetRemoteDescriptionOperation] Finish", log: Self.log, type: .info) } + + do { + if try countSdpMedia(sessionDescription: remoteSessionDescription.sdp) != 2 { + assertionFailure() + return cancel(withReason: .unexpectedNumberOfMediaLinesInSessionDescription) + } + } catch { + assertionFailure() + return cancel(withReason: .unableToCheckSDP) + } + + let peerConnection: ObvPeerConnection + + switch input { + case .peerConnection(let _peerConnection): + peerConnection = _peerConnection + case .createPeerConnectionOperation(let operation): + guard let _peerConnection = operation.peerConnection else { + return cancel(withReason: .noPeerConnectionProvidedByOperation) + } + peerConnection = _peerConnection + } + + do { + try await peerConnection.setRemoteDescription(remoteSessionDescription) + } catch { + return cancel(withReason: .setRemoteDescriptionFailed(error: error)) + } + + return finish() + + } + + + private func countSdpMedia(sessionDescription: String) throws -> Int { + var counter = 0 + let mediaStart = try NSRegularExpression(pattern: "^m=", options: .anchorsMatchLines) + let lines = sessionDescription.split(whereSeparator: { $0.isNewline }).map({String($0)}) + for line in lines { + let isFirstLineOfAnotherMediaSection = mediaStart.numberOfMatches(in: line, options: [], range: NSRange(location: 0, length: line.count)) > 0 + if isFirstLineOfAnotherMediaSection { + counter += 1 + } + } + return counter + } + + + enum ReasonForCancel: LocalizedErrorWithLogType { + case noPeerConnectionProvidedByOperation + case unableToCheckSDP + case unexpectedNumberOfMediaLinesInSessionDescription + case setRemoteDescriptionFailed(error: Error) + var logType: OSLogType { + return .fault + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCallManager.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCallManager.swift new file mode 100644 index 00000000..49de4634 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/OlvidCallManager.swift @@ -0,0 +1,632 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import CallKit +import os.log +import ObvTypes +import ObvUICoreData + + +protocol OlvidCallManagerDelegate: AnyObject { + func callWasAdded(callManager: OlvidCallManager, call: OlvidCall) async + func callWasRemoved(callManager: OlvidCallManager, removedCall: OlvidCall, callStillInProgress: OlvidCall?) async +} + + +actor OlvidCallManager { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "OlvidCallManager") + + /// Allows to let the system know about any local user actions (i.e., *not* out-of-band notifications that have happened). + /// When using CallKit, this holds the ``CXCallController``. + /// The second important class is the ``CallProviderHolder`` at the ``CallProviderDelegate`` level. + private let callControllerHolder = CallControllerHolder() + private var calls = [OlvidCall]() + /// Stores ICE candidates received for a call that cannot be found yet. They will be used as soon as the call is added to the list of calls. + private var receivedIceCandidatesStoredForLater = [UUID: [(iceCandidate: IceCandidateJSON, userId: OlvidUserId)]]() + + private weak var delegate: OlvidCallManagerDelegate? + + nonisolated + func setNCXCallControllerDelegate(_ delegate: NCXCallControllerDelegate) { + callControllerHolder.setNCXCallControllerDelegate(delegate) + } + + + func setDelegate(to newDelegate: OlvidCallManagerDelegate) { + self.delegate = newDelegate + } + + + /// Adds a call to the array of active calls. + /// - Parameter call: The call to add. + private func addCall(_ call: OlvidCall) { + os_log("☎️ Adding call %{public}@", log: Self.log, type: .info, call.debugDescription) + assert(delegate != nil) + calls.append(call) + Task { await delegate?.callWasAdded(callManager: self, call: call) } + // The call has been added to the list of calls, we can process the ICE candidate saved for later. + os_log("☎️❄️ Looking for ICE candidates saved for later for call %{public}@", log: Self.log, type: .info, call.uuidForWebRTC.uuidString) + if let candidates = receivedIceCandidatesStoredForLater.removeValue(forKey: call.uuidForWebRTC), !candidates.isEmpty { + os_log("☎️❄️ Found %{public}d ICE saved for later for call %{public}@", log: Self.log, type: .info, candidates.count, call.uuidForWebRTC.uuidString) + Task { + for candidate in candidates { + do { + os_log("☎️❄️ Processing an ICE candidate saved for later for call %{public}@", log: Self.log, type: .info, call.uuidForWebRTC.uuidString) + try await call.processIceCandidatesJSON(iceCandidate: candidate.iceCandidate, participantId: candidate.userId) + } catch { + os_log("☎️❄️ Failed to process an ICE candidate saved for later %{public}@", log: Self.log, type: .error, error.localizedDescription) + assertionFailure() // Continue anyway + } + } + } + } + } + + + func createIncomingCall(uuidForCallKit: UUID, uuidForWebRTC: UUID, contactIdentifier: ObvContactIdentifier, startCallMessage: StartCallMessageJSON, rtcPeerConnectionQueue: OperationQueue, callDelegate: OlvidCallDelegate) async throws -> OlvidCall { + let incomingCall = try await OlvidCall.createIncomingCall( + callIdentifierForCallKit: uuidForCallKit, + uuidForWebRTC: uuidForWebRTC, + callerId: contactIdentifier, + startCallMessage: startCallMessage, + rtcPeerConnectionQueue: rtcPeerConnectionQueue, + delegate: callDelegate) + addCall(incomingCall) + return incomingCall + } + + + /// Removes a call from the array of active calls if it exists. + /// - Parameter call: The call to remove. + private func removeCall(_ call: OlvidCall) { + os_log("☎️ Remove call %{public}@", log: Self.log, type: .info, call.debugDescription) + guard let index = calls.firstIndex(where: { $0 === call }) else { return } + calls.remove(at: index) + let callStillInProgress = calls.first(where: { !$0.state.isFinalState }) + Task(priority: .userInitiated) { [weak self] in + guard let self else { return } + await delegate?.callWasRemoved(callManager: self, removedCall: call, callStillInProgress: callStillInProgress) + } + } + + + /// Returns the call with the specified UUID if it exists. + /// - Parameter uuid: The call's unique identifier. + /// - Returns: The call with the specified UUID if it exists, otherwise `nil`. + private func callWithCallIdentifierForCallKit(_ uuid: UUID) -> OlvidCall? { + os_log("☎️ Looking for call with uuidForCallKit %{public}@", log: Self.log, type: .info, uuid.debugDescription) + guard let index = calls.firstIndex(where: { $0.uuidForCallKit == uuid }) else { return nil } + return calls[index] + } + + + private func callWithCallIdentifierForWebRTC(_ uuid: UUID) -> OlvidCall? { + os_log("☎️ Looking for call with uuidForWebRTC %{public}@", log: Self.log, type: .info, uuid.debugDescription) + guard let index = calls.firstIndex(where: { $0.uuidForWebRTC == uuid }) else { return nil } + return calls[index] + } + + + var someCallIsInProgress: Bool { + let inProgressCall = calls.first(where: { !$0.state.isFinalState }) + return inProgressCall != nil + } + +} + + +// MARK: - ICE candidates stored for later + +extension OlvidCallManager { + + func processICECandidateForCall(uuidForWebRTC: UUID, iceCandidate: IceCandidateJSON, contact: OlvidUserId) async throws { + if let call = callWithCallIdentifierForWebRTC(uuidForWebRTC) { + os_log("☎️❄️ Process IceCandidateJSON message for call %{public}@", log: Self.log, type: .info, call.uuidForWebRTC.uuidString) + try await call.processIceCandidatesJSON(iceCandidate: iceCandidate, participantId: contact) + } else { + os_log("☎️❄️ Received new remote ICE Candidates for a call %{public}@ that does not exists yet: we save it for later.", log: Self.log, type: .info, uuidForWebRTC.uuidString) + saveICECandidateForLater(uuidForWebRTC: uuidForWebRTC, iceCandidate: iceCandidate, contact: contact) + } + } + + + private func saveICECandidateForLater(uuidForWebRTC: UUID, iceCandidate: IceCandidateJSON, contact: OlvidUserId) { + os_log("☎️❄️ Saving an ICE candidate for later for call %{public}@", log: Self.log, type: .info, uuidForWebRTC.uuidString) + var candidates = receivedIceCandidatesStoredForLater[uuidForWebRTC] ?? [] + candidates += [(iceCandidate, contact)] + receivedIceCandidatesStoredForLater[uuidForWebRTC] = candidates + } + + + /// Called when an ICE candidate previously received (and saved for later) should actually be discarded. In that case, we remove it from the list of candidates saved for later. + private func removeIceCandidatesMessageSavedForLater(uuidForWebRTC: UUID, message: RemoveIceCandidatesMessageJSON) { + var candidates = receivedIceCandidatesStoredForLater[uuidForWebRTC] ?? [] + candidates.removeAll { message.candidates.contains($0.0) } + receivedIceCandidatesStoredForLater[uuidForWebRTC] = candidates + } + +} + + +// MARK: - Process JSON messages received from remote users + +extension OlvidCallManager { + + func processNewParticipantOfferMessageJSON(_ newParticipantOffer: NewParticipantOfferMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId) async throws { + + guard let incomingCall = callWithCallIdentifierForWebRTC(uuidForWebRTC) else { + throw ObvError.callNotFound + } + + guard incomingCall.direction == .incoming else { + assertionFailure() + throw ObvError.expectingAnIncomingCall + } + + try await incomingCall.processNewParticipantOfferMessageJSONFromContact(contact, newParticipantOffer) + + } + + + func processHangedUpMessage(_ hangedUpMessage: HangedUpMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId) async throws -> (call: OlvidCall, report: CallReport?) { + + guard let call = callWithCallIdentifierForWebRTC(uuidForWebRTC) else { + throw ObvError.callNotFound + } + + guard !call.state.isFinalState else { return (call, nil) } + + let callStateWasInitial = (call.state == .initial) + let callStateWasRinging = (call.state == .ringing) + + let participantInfo = try await call.callParticipantDidHangUp(participantId: contact) + + let callReport: CallReport? + if callStateWasInitial && call.direction == .incoming { + callReport = .missedIncomingCall(caller: participantInfo, participantCount: call.initialParticipantCount) + } else if callStateWasRinging && call.direction == .outgoing { + callReport = .unansweredOutgoingCall(with: [participantInfo]) + } else { + callReport = nil + } + + if call.state.isFinalState { + removeCall(call) + } + + return (call, callReport) + + } + + + func processRingingMessageJSON(uuidForWebRTC: UUID, contact: OlvidUserId) async { + + guard let outgoingCall = callWithCallIdentifierForWebRTC(uuidForWebRTC) else { + // No need to throw for a ringing message + return + } + + await outgoingCall.processRingingMessageJSONFromContact(contact) + + } + + + func processRejectCallMessage(_ rejectCallMessage: RejectCallMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId) async throws -> (outgoingCall: OlvidCall, participantInfo: OlvidCallParticipantInfo?) { + + guard let outgoingCall = callWithCallIdentifierForWebRTC(uuidForWebRTC) else { + throw ObvError.callNotFound + } + + assert(outgoingCall.direction == .outgoing) + + let participantInfo = await outgoingCall.processRejectCallMessageFromContact(contact) + + if outgoingCall.state.isFinalState { + removeCall(outgoingCall) + } + + return (outgoingCall, participantInfo) + } + + + func processAnswerCallMessage(_ answerCallMessage: AnswerCallJSON, uuidForWebRTC: UUID, contact: OlvidUserId) async throws -> (outgoingCall: OlvidCall, participantInfo: OlvidCallParticipantInfo?) { + + guard let outgoingCall = callWithCallIdentifierForWebRTC(uuidForWebRTC) else { + throw ObvError.callNotFound + } + + let participantInfo = try await outgoingCall.processAnswerCallJSONFromContact(contact, answerCallMessage) + + + return (outgoingCall, participantInfo) + } + + + func processBusyMessageJSON(uuidForWebRTC: UUID, contact: OlvidUserId) async throws -> (outgoingCall: OlvidCall, participantInfo: OlvidCallParticipantInfo?) { + + guard let outgoingCall = callWithCallIdentifierForWebRTC(uuidForWebRTC) else { + throw ObvError.callNotFound + } + + let participantInfo = await outgoingCall.processBusyMessageJSONFromContact(contact) + + return (outgoingCall, participantInfo) + + } + + + func processReconnectCallMessageJSON(_ reconnectCallMessage: ReconnectCallMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId) async throws { + + guard let call = callWithCallIdentifierForWebRTC(uuidForWebRTC) else { + // The message certainly concerns an old call + return + } + + try await call.processReconnectCallMessageJSONFromContact(contact, reconnectCallMessage) + + } + + + func processNewParticipantAnswerMessageJSON(_ newParticipantAnswer: NewParticipantAnswerMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId) async throws { + + guard let call = callWithCallIdentifierForWebRTC(uuidForWebRTC) else { + throw ObvError.callNotFound + } + + try await call.processNewParticipantAnswerMessageJSONFromContact(contact, newParticipantAnswer) + + } + + + func processKickMessageJSON(_ kickMessage: KickMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId) async throws -> (cll: OlvidCall, callReport: CallReport?, cxCallEndedReason: CXCallEndedReason?) { + + guard let incomingCall = callWithCallIdentifierForWebRTC(uuidForWebRTC) else { + throw ObvError.callNotFound + } + + guard incomingCall.direction == .incoming else { + assertionFailure() + throw ObvError.expectingAnIncomingCall + } + + let (callReport, cxCallEndedReason) = try await incomingCall.processKickMessageJSONFromContact(contact) + + assert(incomingCall.state.isFinalState) + removeCall(incomingCall) + + return (incomingCall, callReport, cxCallEndedReason) + + } + + + func processRemoveIceCandidatesMessage(message: RemoveIceCandidatesMessageJSON, uuidForWebRTC: UUID, contact: OlvidUserId) async throws { + + if let call = callWithCallIdentifierForWebRTC(uuidForWebRTC) { + os_log("☎️❄️ Process RemoveIceCandidatesMessageJSON message", log: Self.log, type: .info) + try await call.removeIceCandidatesJSON(removeIceCandidatesJSON: message, participantId: contact) + } else { + os_log("☎️❄️ Received removed remote ICE Candidates for a call that does not exists yet", log: Self.log, type: .info) + removeIceCandidatesMessageSavedForLater(uuidForWebRTC: uuidForWebRTC, message: message) + } + + } + + + func processAnsweredOrRejectedOnOtherDeviceMessage(answered: Bool, uuidForWebRTC: UUID, ownedCryptoId: ObvCryptoId) async throws -> (incomingCall: OlvidCall?, callReport: CallReport?, cxCallEndedReason: CXCallEndedReason?) { + + os_log("☎️ Process AnsweredOrRejectedOnOtherDeviceMessage", log: Self.log, type: .info) + + if let incomingCall = callWithCallIdentifierForWebRTC(uuidForWebRTC) { + + assert(incomingCall.direction == .incoming) + let (callReport, cxCallEndedReason) = await incomingCall.processAnsweredOrRejectedOnOtherDeviceMessage(answered: answered) + + assert(incomingCall.state.isFinalState) + removeCall(incomingCall) + + return (incomingCall, callReport, cxCallEndedReason) + + } else { + + // We expect to rarely arrive here as the CallKit notification should be fast enough + assertionFailure() + return (nil, nil, nil) + + } + + } + +} + + +// MARK: - Processing local user requests + +extension OlvidCallManager { + + /// Called from the ``CallProviderDelegate.provider(_:perform:)`` delegate method. + /// + /// This delegate method was either called because + /// - the user ended the call from the CallKit UI + /// - the user ended the call from the in-house UI. In that case, we created a `CXEndCallAction` within this manager + /// and passed it to the `CallControllerHolder` so as to let the system know about the local user action. + func localUserWantsToPerform(_ action: CXEndCallAction) async throws -> (call: OlvidCall?, callReport: CallReport?, rejectedOnOtherDeviceMessageJSON: WebRTCMessageJSON?) { + + os_log("☎️🔚 Call to localUserWantsToPerform(_ action: CXEndCallAction)", log: Self.log, type: .info) + + guard let call = callWithCallIdentifierForCallKit(action.callUUID) else { + return (nil, nil, nil) + } + + // Remove the ended call from the app's list of calls. + os_log("☎️🔚 Removing call from the list of calls", log: Self.log, type: .info) + removeCall(call) + + let endingIncomingCallInInitialState = (call.direction == .incoming) && (call.state == .initial) + + // Trigger the call to be ended via the underlying network service. + let callReport = await call.endWasRequestedByLocalUser() + + let rejectedOnOtherDeviceMessageJSON: WebRTCMessageJSON? + if endingIncomingCallInInitialState { + rejectedOnOtherDeviceMessageJSON = try? AnsweredOrRejectedOnOtherDeviceMessageJSON(answered: false).embedInWebRTCMessageJSON(callIdentifier: call.uuidForWebRTC) + } else { + rejectedOnOtherDeviceMessageJSON = nil + } + + os_log("☎️🔚 End of call to localUserWantsToPerform(_ action: CXEndCallAction)", log: Self.log, type: .info) + + return (call, callReport, rejectedOnOtherDeviceMessageJSON) + + } + + + /// Called from the ``CallProviderDelegate.provider(_:perform:)`` delegate method. + /// Returns the `ParticipantInfo` of the caller. + /// + /// This delegate method was either called because + /// - the user accepted an incoming call from the CallKit UI + /// - the user accepted an incoming call from the in-house UI. In that case, we created a `CXAnswerCallAction` within this manager + /// and passed it to the `CallControllerHolder` so as to let the system know about the local user action. + func localUserWantsToPerform(_ action: CXAnswerCallAction) async throws -> (incomingCall: OlvidCall, callerInfo: OlvidCallParticipantInfo?, answeredOnOtherDeviceMessageJSON: WebRTCMessageJSON?) { + + os_log("☎️ Call to localUserWantsToPerform %{public}@", log: Self.log, type: .info, action.uuid.uuidString) + + guard let incomingCall = callWithCallIdentifierForCallKit(action.callUUID) else { + assertionFailure() + throw ObvError.callNotFound + } + + let callerInfo = try await incomingCall.localUserWantsToAnswerThisIncomingCall() + + let answeredOnOtherDeviceMessageJSON = try? AnsweredOrRejectedOnOtherDeviceMessageJSON(answered: true).embedInWebRTCMessageJSON(callIdentifier: incomingCall.uuidForWebRTC) + + return (incomingCall, callerInfo, answeredOnOtherDeviceMessageJSON) + + } + + + /// Called from the ``CallProviderDelegate.provider(_:perform:)`` delegate method. + /// Returns up-to-date ``CXCallUpdate`` so as to update the CallKit UI. + /// + /// This delegate method was called as we created a ``CXStartCallAction`` in ``localUserWantsToStartOutgoingCall(ownedCryptoId:contactCryptoIds:ownedIdentityForRequestingTurnCredentials:groupId:rtcPeerConnectionQueue:olvidCallDelegate:)`` + func localUserWantsToPerform(_ action: CXStartCallAction) async throws -> CXCallUpdate { + + guard let outgoingCall = callWithCallIdentifierForCallKit(action.callUUID) else { + assertionFailure() + throw ObvError.callNotFound + } + + try await outgoingCall.startOutgoingCall() + + let update = await outgoingCall.createUpToDateCXCallUpdate() + return update + + } + + + func localUserWantsToSetMuteSelf(_ action: CXSetMutedCallAction) async throws { + + guard let call = callWithCallIdentifierForCallKit(action.callUUID) else { + // As this is sometimes called by CallKit when hanging up a call, we simply return here. + return + } + + try await call.setMuteSelfForOtherParticipants(muted: action.isMuted) + + } + +} + + +// MARK: - Automatically ending a call + +extension OlvidCallManager { + + func incomingWasNotAnsweredToAndTimedOut(uuidForCallKit: UUID) async -> (callReport: CallReport?, cxCallEndedReason: CXCallEndedReason?) { + + guard let incomingCall = callWithCallIdentifierForCallKit(uuidForCallKit) else { + assertionFailure() + return (nil, nil) + } + + let values = await incomingCall.endIncomingCallAsItTimedOut() + + if incomingCall.state.isFinalState { + removeCall(incomingCall) + } else { + assertionFailure() + } + + return values + + } + +} + + +// MARK: - Starting an outgoing call or adding/removeing new participants + +extension OlvidCallManager { + + /// This is called when the local user wants to start a new outgoing call. This method creates a ``CXStartCallAction`` so as to let the system know about the user action. + /// Eventually, this manager will be called back from the ``provider(_:perform:CXStartCallAction)`` delegate method of the ``CallProviderDelegate``. + func localUserWantsToStartOutgoingCall(ownedCryptoId: ObvCryptoId, contactCryptoIds: Set, ownedIdentityForRequestingTurnCredentials: ObvCryptoId, groupId: GroupIdentifier?, rtcPeerConnectionQueue: OperationQueue, olvidCallDelegate: OlvidCallDelegate) async throws { + + guard !contactCryptoIds.isEmpty else { + assertionFailure() + throw ObvError.cannotStartOutgoingCallAsNotCalleeWasSpecified + } + + guard !someCallIsInProgress else { + assertionFailure() + throw ObvError.cannotStartOutgoingCallWhileAnotherCallIsInProgress + } + + // Create the outgoing call and add it to the list of calls + + let outgoingCall = try await OlvidCall.createOutgoingCall( + ownedCryptoId: ownedCryptoId, + contactCryptoIds: contactCryptoIds, + ownedIdentityForRequestingTurnCredentials: ownedIdentityForRequestingTurnCredentials, + groupId: groupId, + rtcPeerConnectionQueue: rtcPeerConnectionQueue, + delegate: olvidCallDelegate) + + addCall(outgoingCall) + + // Create a CXStartCallAction and pass it to the CallControllerHolder to inform it about the local user action + // Eventually, this manager will be called back in localUserWantsToPerform(_:) + + os_log("☎️ Creating CXStartCallAction for call with uuidForCallKit %{public}@", log: Self.log, type: .info, outgoingCall.uuidForCallKit.uuidString) + + let handle = CXHandle(type: .generic, value: outgoingCall.uuidForCallKit.uuidString) + let startCallAction = CXStartCallAction(call: outgoingCall.uuidForCallKit, handle: handle) + // We don't set the startCallAction.contactIdentifier as it is not used by CallKit (to the contrary of what the documentation says). + // Instead, in the CallProviderHolderDelegate, we update the call using a CXCallUpdate. + startCallAction.isVideo = false + let transaction = CXTransaction() + transaction.addAction(startCallAction) + try await callControllerHolder.callController.request(transaction) + + } + + + /// This method is actully required by the ``OlvidCallViewActionsProtocol``. It is called when the user wants to add new participants to an existing outgoing call. + func userWantsToAddParticipantsToExistingCall(uuidForCallKit: UUID, participantsToAdd: Set) async throws { + + guard let outgoingCall = callWithCallIdentifierForCallKit(uuidForCallKit) else { + throw ObvError.callNotFound + } + + try await outgoingCall.userWantsToAddParticipantsToThisOutgoingCall(participantsToAdd: participantsToAdd) + + } + + + /// This method is actully required by the ``OlvidCallViewActionsProtocol``. It is called when the user (caller) wants to remove a participant from an existing outgoing call. + func userWantsToRemoveParticipant(uuidForCallKit: UUID, participantToRemove: ObvCryptoId) async throws { + + guard let outgoingCall = callWithCallIdentifierForCallKit(uuidForCallKit) else { + throw ObvError.callNotFound + } + + try await outgoingCall.userWantsToRemoveParticipantFromThisOutgoingCall(cryptoId: participantToRemove) + + } + +} + + +// MARK: - Implementing the OlvidCallViewActionsProtocol for the UI + +extension OlvidCallManager { + + /// This is called from the in house-UI (``OlvidCallView``) when the user accepts an incoming call. + /// We first end "all" calls that are not in a finished state, then accept the call. + func userAcceptedIncomingCall(uuidForCallKit: UUID) async throws { + + // End all current calls + + let callsToEnd = calls + .filter({ !$0.state.isFinalState && $0.uuidForCallKit != uuidForCallKit }) + .map({ $0.uuidForCallKit }) + for call in callsToEnd { + try await userWantsToEndOngoingCall(uuidForCallKit: call) + } + + // Accept the incoming call + + os_log("☎️ Creating CXAnswerCallAction for call %{public}@", log: Self.log, type: .info, uuidForCallKit.uuidString) + guard let incomingCall = callWithCallIdentifierForCallKit(uuidForCallKit) else { + throw ObvError.callNotFound + } + await incomingCall.localUserAcceptedIncomingCallFromInHouseUI() + let answerCallAction = CXAnswerCallAction(call: uuidForCallKit) + let transaction = CXTransaction() + transaction.addAction(answerCallAction) + try await callControllerHolder.callController.request(transaction) + + } + + + /// Called when the local user taps the reject call button on the in-house UI when receiving an incoming call. + func userRejectedIncomingCall(uuidForCallKit: UUID) async throws { + let endCallAction = CXEndCallAction(call: uuidForCallKit) + let transaction = CXTransaction() + transaction.addAction(endCallAction) + try await callControllerHolder.callController.request(transaction) + } + + + /// Called when the user taps the end call button on the in-house UI during an ongoing call (both for incoming and outgoing calls). + func userWantsToEndOngoingCall(uuidForCallKit: UUID) async throws { + os_log("☎️🔚 userWantsToEndOngoingCall %{public}@", log: Self.log, type: .info, uuidForCallKit.uuidString) + let endCallAction = CXEndCallAction(call: uuidForCallKit) + let transaction = CXTransaction() + transaction.addAction(endCallAction) + try await callControllerHolder.callController.request(transaction) + } + + + /// Called when the user taps the mute (or unmute) call button on the in-house UI during an ongoing call (both for incoming and outgoing calls). + func userWantsToSetMuteSelf(uuidForCallKit: UUID, muted: Bool) async throws { + os_log("☎️ userWantsToMuteSelf %{public}@", log: Self.log, type: .info, uuidForCallKit.uuidString) + let mutedCallAction = CXSetMutedCallAction(call: uuidForCallKit, muted: muted) + let transaction = CXTransaction() + transaction.addAction(mutedCallAction) + try await callControllerHolder.callController.request(transaction) + } + +} + + +// MARK: - Errors + +extension OlvidCallManager { + + enum ObvError: Error { + case callNotFound + case cannotStartOutgoingCallWhileAnotherCallIsInProgress + case cannotStartOutgoingCallAsNotCalleeWasSpecified + case expectingAnIncomingCall + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/PeerConnection/WebrtcPeerConnectionHolder.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/PeerConnection/WebrtcPeerConnectionHolder.swift deleted file mode 100644 index 62885596..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/PeerConnection/WebrtcPeerConnectionHolder.swift +++ /dev/null @@ -1,928 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - - -import Foundation -import WebRTC -import OlvidUtils -import os.log -import ObvUICoreData - - -final actor WebrtcPeerConnectionHolder: ObvPeerConnectionDelegate, CallDataChannelWorkerDelegate, ObvErrorMaker { - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: WebrtcPeerConnectionHolder.self)) - static let errorDomain = "WebrtcPeerConnectionHolder" - - private(set) var gatheringPolicy: GatheringPolicy - - private var iceCandidates = [RTCIceCandidate]() - private var pendingRemoteIceCandidates = [RTCIceCandidate]() - private var readyToProcessPeerIceCandidates = false { - didSet { - Task { - guard readyToProcessPeerIceCandidates else { return } - os_log("☎️❄️ Forwarding remote ICE candidates is ready", log: self.log, type: .info) - await drainRemoteIceCandidates() - } - } - } - private var iceGatheringCompletedWasCalled = false - private var reconnectOfferCounter: Int = 0 // Counter of the last reconnect offer we sent - private var reconnectAnswerCounter: Int = 0 // Counter of the last reconnect offer from the peer for which we sent an answer - - private static let audioCodecs = Set(["opus", "PCMU", "PCMA", "telephone-event", "red"]) - - private var dataChannelWorker: DataChannelWorker? - weak var delegate: WebrtcPeerConnectionHolderDelegate? - - private(set) var turnCredentials: TurnCredentials? - - /// The ``createPeerConnection()`` method being highly asynchronous, it occurs that - /// ``func peerConnectionShouldNegotiate(_ peerConnection: ObvPeerConnection) async`` - /// is called although we did not properly finish the creation of the peer connection (i.e., we did not had time to add tracks or - /// To consider a potential received remote session description). This Boolean value is thus set to `true` when starting the - /// Peer connection creation, and set back to false when its appropriate to do so. If the - /// ``func peerConnectionShouldNegotiate(_ peerConnection: ObvPeerConnection) async`` - /// is called when this Boolean is `true`, we do **not ** negotiate immediately but wait until this value is reset to `false` - /// to do so. - private var currentlyCreatingPeerConnection = false { - didSet { - guard !currentlyCreatingPeerConnection else { return } - noLongerCreatingPeerConnection() - } - } - - /// This continuation allows to implement the mechanism allowing to wait until ``currentlyCreatingPeerConnection`` - /// Is set back to false before proceeding with a negotiation. - private var continuationToResumeWhenPeerConnectionIsCreated: CheckedContinuation? - - /// This Boolean is set to `true` when entering a method that could end up setting a local/remote description. - /// It is set back to `false` whenever this method is done. - /// It allows to implement a mechanism preventing two distinct methods to interfere when both can end up setting a description. - private var aTaskIsCurrentlySettingSomeDescription = false { - didSet { - guard !aTaskIsCurrentlySettingSomeDescription else { return } - oneOfTheTaskCurrentlySettingSomeDescriptionIsDone() - } - } - - /// See the comment about ``anotherTaskIsCurrentlySettingSomeDescription``. - private var continuationsOfTaskWaitingUntilTheyCanSetSomeDescription = [CheckedContinuation]() - - /// Used to save the remote session description obtained when receiving an incoming call. - /// Since we do not create the underlying peer connection until the local user accepts (picks up) the call, - /// We need to store the session description until she does so. If she does pick up the call, we create the - /// Underlying peer connection and immediately set its session description using the value saved here. - private var remoteSessionDescription: RTCSessionDescription? - - private var peerConnection: ObvPeerConnection? - private var connectionState: RTCPeerConnectionState = .new - - private var audioTrack: RTCAudioTrack? = nil - private var isAudioEnabled: Bool = true - - enum CompletionKind { - case answer - case offer - case restart - } - - private let mediaConstraints = [kRTCMediaConstraintsOfferToReceiveAudio: kRTCMediaConstraintsValueTrue, - kRTCMediaConstraintsOfferToReceiveVideo: kRTCMediaConstraintsValueFalse] - - /// Used when receiving an incoming call - init(startCallMessage: StartCallMessageJSON, delegate: WebrtcPeerConnectionHolderDelegate) { - self.delegate = delegate - self.turnCredentials = startCallMessage.turnCredentials - self.remoteSessionDescription = RTCSessionDescription(type: startCallMessage.sessionDescriptionType, - sdp: startCallMessage.sessionDescription) - self.gatheringPolicy = startCallMessage.gatheringPolicy ?? .gatherOnce - - // We do *not* create the peer connection now, we wait until the user explicitely accepts the incoming call - - } - - /// Used for an incoming call that was already accepted, when the caller adds a participant to the call - func setRemoteDescriptionAndTurnCredentialsThenCreateTheUnderlyingPeerConnectionIfRequired(newParticipantOfferMessage: NewParticipantOfferMessageJSON, turnCredentials: TurnCredentials) async throws { - - os_log("☎️ Setting remote description and turn credentials, then creating peer connection", log: log, type: .info) - - assert(self.delegate != nil) - - self.turnCredentials = turnCredentials - self.remoteSessionDescription = RTCSessionDescription(type: newParticipantOfferMessage.sessionDescriptionType, - sdp: newParticipantOfferMessage.sessionDescription) - - // We override the gathering policy we had (indicated by the caller for this participant) by the one sent the participant herself. - self.gatheringPolicy = newParticipantOfferMessage.gatheringPolicy ?? .gatherOnce - - // Since the call was already accepted (we are only adding another participant here), we can safely create the peer connection immediately. - // The situation here is different from the one encountered in the initializer executed when receiving an incoming call, where we had to wait - // Until the local user explicitely accepted the call. - - try await createPeerConnectionIfRequired() - - } - - - /// Used during the init of an outgoing call. Also used during a multi-call, when we are a recipient and need to create a peer connection holder with another participant. - init(gatheringPolicy: GatheringPolicy, delegate: WebrtcPeerConnectionHolderDelegate) { - self.delegate = delegate - self.gatheringPolicy = gatheringPolicy - self.remoteSessionDescription = nil - } - - - private var additionalOpusOptions: String { - var options = [(name: String, value: String)]() - options.append(("cbr", "1")) - if let maxaveragebitrate = ObvMessengerSettings.VoIP.maxaveragebitrate { - options.append(("maxaveragebitrate", "\(maxaveragebitrate)")) - } - let optionsAsString = options.reduce("") { $0.appending(";\($1.name)=\($1.value)") } - debugPrint(optionsAsString) - return optionsAsString - } - - - func setTurnCredentialsAndCreateUnderlyingPeerConnectionIfRequired(_ turnCredentials: TurnCredentials) async throws { - assert(self.delegate != nil) - guard self.turnCredentials == nil else { - assertionFailure() - throw Self.makeError(message: "Turn credentials already set") - } - self.turnCredentials = turnCredentials - try await createPeerConnectionIfRequired() - } - - - /// This method creates the peer connection underlying this peer connection holder. - /// - /// This method is called in two situations : - /// - For an outgoing call, it is called right after setting the credentials. - /// - For an incoming call, it is not called when setting the credentials as we want to wait until the user explicitely accepts (picks up) the incoming call. - /// It called as soon as the user accepts the incoming call. - private func createPeerConnectionIfRequired() async throws { - - os_log("☎️ Call to createPeerConnection", log: log, type: .info) - - guard peerConnection == nil else { - os_log("☎️ No need to create the peer connection, it already exists", log: log, type: .info) - assert(delegate != nil) - return - } - - if delegate == nil { - os_log("☎️ The delegate is nil, which not expected", log: log, type: .fault) - assertionFailure() - } - - currentlyCreatingPeerConnection = true - defer { currentlyCreatingPeerConnection = false } - - guard let turnCredentials = turnCredentials else { - throw Self.makeError(message: "No turn credentials available") - } - // 2022-03-11, we used to use the servers indicated in the turn credentials. - // We do not do that anymore and use the (user) preferred servers. - let iceServer = WebRTC.RTCIceServer(urlStrings: ObvMessengerConstants.ICEServerURLs.preferred, - username: turnCredentials.turnUserName, - credential: turnCredentials.turnPassword, - tlsCertPolicy: .insecureNoCheck) - let rtcConfiguration = RTCConfiguration() - rtcConfiguration.iceServers = [iceServer] - rtcConfiguration.iceTransportPolicy = .relay - rtcConfiguration.sdpSemantics = .unifiedPlan - rtcConfiguration.continualGatheringPolicy = gatheringPolicy.rtcPolicy - let constraints = RTCMediaConstraints(mandatoryConstraints: nil, - optionalConstraints: nil) - os_log("☎️❄️ Create Peer Connection with %{public}@ policy", log: log, type: .info, gatheringPolicy.localizedDescription) - - guard let peerConnection = await ObvPeerConnection(with: rtcConfiguration, constraints: constraints, delegate: self) else { assertionFailure(); return } - self.peerConnection = peerConnection - - os_log("☎️ Add Olvid audio tracks", log: log, type: .info) - self.audioTrack = try? await peerConnection.addOlvidTracks() - setAudioTrack(isEnabled: isAudioEnabled) // Usefull when a participant was added to a group call while we were muted - assert(self.audioTrack != nil) - - os_log("☎️ Create Data Channel", log: log, type: .info) - try await createDataChannel(for: peerConnection) - assert(self.dataChannelWorker != nil) - - // We might already have a session description available. This typically happens when receiving an incoming call: - // We created the called and saved the session description for later, i.e., for the time the local user accepts the incoming call, - // Which is what led us here. - - if let remoteSessionDescription = self.remoteSessionDescription { - os_log("☎️ We just created the peer connection and have a remote description available. We set it now.", log: log, type: .info) - self.remoteSessionDescription = nil - try await peerConnection.setRemoteDescription(remoteSessionDescription) - self.readyToProcessPeerIceCandidates = true - } - - } - - - func close() async throws { - guard let peerConnection = self.peerConnection else { - os_log("☎️🛑 Execute signaling state closed completion handler: peer connection is nil", log: log, type: .info) - return - } - guard connectionState != .closed else { - os_log("☎️🛑 Execute signaling state closed completion handler: signaling state is already closed", log: log, type: .info) - return - } - os_log("☎️🛑 Closing peer connection. State before closing: %{public}@", log: log, type: .info, connectionState.debugDescription) - await peerConnection.close() - } - - - func setRemoteDescription(_ sessionDescription: RTCSessionDescription) async throws { - os_log("☎️ Setting a session description of type %{public}@", log: log, type: .info, sessionDescription.type.debugDescription) - guard let peerConnection = peerConnection else { - throw Self.makeError(message: "No peer connection available") - } - if try countSdpMedia(sessionDescription: sessionDescription.sdp) != 2 { - assertionFailure() - throw Self.makeError(message: "Unexpected number of media lines in session description") - } - - // Since we will set a description, we must wait until it is our turn to do so. - - await waitUntilItIsSafeToSetSomeDescription() - - // Now that it is our turn to potentially set a description, we must make sure no other task will interfere. - // The mechanism allowing to do so requires to set the following Boolean to true now, and to false when we are done. - - aTaskIsCurrentlySettingSomeDescription = true - defer { aTaskIsCurrentlySettingSomeDescription = false } - - // Since we are setting a remote description, we expect to be either in the stable or haveLocalOffer states. - // We do not test this though, as the following call will throw if we are not in one of these states. - - os_log("☎️ Will call setRemoteDescription on the ObvPeerConnection", log: log, type: .info) - try await peerConnection.setRemoteDescription(sessionDescription) - self.readyToProcessPeerIceCandidates = true - } - - - /// When receiving an incoming call, we quickly create this peer connection holder, but we do not create the underlying peer connection. - /// For this, we want to wait until the user explictely accepts (picks up) the incoming call. - /// This method is called when the local user does so. - /// It creates the peer connection. This will eventually trigger a call to - /// ``func peerConnectionShouldNegotiate(_ peerConnection: ObvPeerConnection) async`` - /// where the local description (answer) will be created. - func createPeerConnectionIfRequiredAfterAcceptingAnIncomingCall() async throws { - assert(peerConnection == nil) - assert(delegate != nil) - try await createPeerConnectionIfRequired() - } - - - private func rollback() async throws { - assert(aTaskIsCurrentlySettingSomeDescription, "This method must exclusively be called from a method (belonging to this actor) that sets this Boolean to true") - guard let peerConnection = peerConnection else { assertionFailure(); return } - os_log("☎️ Rollback", log: log, type: .info) - try await peerConnection.setLocalDescription(RTCSessionDescription(type: .rollback, sdp: "")) - assert(self.dataChannelWorker != nil) - } - - - func restartIce() async throws { - - guard let peerConnection = peerConnection else { assertionFailure(); return } - guard let delegate = delegate else { assertionFailure(); return } - - // Since we might set a description, we must wait until it is our turn to do so. - - await waitUntilItIsSafeToSetSomeDescription() - - // Now that it is our turn to potentially set a description, we must make sure no other task will interfere. - // The mechanism allowing to do so requires to set the following Boolean to true now, and to false when we are done. - - aTaskIsCurrentlySettingSomeDescription = true - defer { aTaskIsCurrentlySettingSomeDescription = false } - - switch peerConnection.signalingState { - case .haveLocalOffer: - // Rollback to a stable set before creating the new restart offer - try await rollback() - case .haveRemoteOffer: - // We received a remote offer. - // If we are the offer sender, rollback and send a new offer, otherwise juste wait for the answer process to finish - if await delegate.shouldISendTheOfferToCallParticipant() { - try await rollback() - } else { - return - } - default: - break - } - - await peerConnection.restartIce() - } - - - func handleReceivedRestartSdp(sessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int) async throws { - - guard let peerConnection = peerConnection else { assertionFailure(); return } - guard let delegate = delegate else { assertionFailure(); return } - - os_log("☎️ Received restart SDP with reconnect counter: %{public}@", log: log, type: .info, String(reconnectCounter)) - - // Since we might set a description, we must wait until it is our turn to do so. - - await waitUntilItIsSafeToSetSomeDescription() - - // Now that it is our turn to potentially set a description, we must make sure no other task will interfere. - // The mechanism allowing to do so requires to set the following Boolean to true now, and to false when we are done. - - aTaskIsCurrentlySettingSomeDescription = true - defer { aTaskIsCurrentlySettingSomeDescription = false } - - switch sessionDescription.type { - - case .offer: - - // If we receive an offer with a counter smaller than another offer we previously received, we can ignore it. - guard reconnectCounter >= reconnectAnswerCounter else { - os_log("☎️ Received restart offer with counter too low %{public}@ vs. %{public}@", log: log, type: .info, String(reconnectCounter), String(reconnectAnswerCounter)) - return - } - - switch peerConnection.signalingState { - case .haveRemoteOffer: - os_log("☎️ Received restart offer while already having one --> rollback", log: log, type: .info) - // Rollback to a stable set before handling the new restart offer - try await rollback() - - case .haveLocalOffer: - // We already sent an offer. - // If we are the offer sender, do nothing, otherwise rollback and process the new offer - if await delegate.shouldISendTheOfferToCallParticipant() { - if peerReconnectCounterToOverride == reconnectOfferCounter { - os_log("☎️ Received restart offer while already having created an offer. It specifies to override my current offer --> rollback", log: log, type: .info) - try await rollback() - } else { - os_log("☎️ Received restart offer while already having created an offer. I am the offerer --> ignore this new offer", log: log, type: .info) - return - } - } else { - os_log("☎️ Received restart offer while already having created an offer. I am not the offerer --> rollback", log: log, type: .info) - try await rollback() - } - - default: - break - } - - reconnectAnswerCounter = reconnectCounter - os_log("☎️ Setting remote description (1)", log: log, type: .info) - try await peerConnection.setRemoteDescription(sessionDescription) - - await peerConnection.restartIce() - - case .answer: - guard reconnectCounter == reconnectOfferCounter else { - os_log("☎️ Received restart answer with bad counter %{public}@ vs. %{public}@", log: log, type: .info, String(reconnectCounter), String(reconnectOfferCounter)) - return - } - - guard peerConnection.signalingState == .haveLocalOffer else { - os_log("☎️ Received restart answer while not in the haveLocalOffer state --> ignore this restart answer", log: log, type: .info) - return - } - - os_log("☎️ Applying received restart answer", log: log, type: .info) - os_log("☎️ Setting remote description (2)", log: log, type: .info) - try await peerConnection.setRemoteDescription(sessionDescription) - - default: - return - } - - } - - - private func resetGatheringState() { - guard case .gatherOnce = gatheringPolicy else { assertionFailure(); return } - iceCandidates.removeAll() - iceGatheringCompletedWasCalled = false - } - - - private func createDataChannel(for peerConnection: ObvPeerConnection) async throws { - assert(dataChannelWorker == nil) - self.dataChannelWorker = try await DataChannelWorker(with: peerConnection) - self.dataChannelWorker?.delegate = self - } - - - func addIceCandidate(iceCandidate: RTCIceCandidate) async throws { - os_log("☎️❄️ addIceCandidate called", log: self.log, type: .info) - guard gatheringPolicy == .gatherContinually else { assertionFailure(); return } - if readyToProcessPeerIceCandidates { - guard let peerConnection = peerConnection else { assertionFailure(); return } - try await peerConnection.addIceCandidate(iceCandidate) - } else { - os_log("☎️❄️ Not ready to forward remote ICE candidates, add candidate to pending list (count %{public}@)", log: self.log, type: .info, String(pendingRemoteIceCandidates.count)) - pendingRemoteIceCandidates.append(iceCandidate) - } - } - - - func removeIceCandidates(iceCandidates: [RTCIceCandidate]) async { - os_log("☎️❄️ removeIceCandidates called", log: self.log, type: .info) - if readyToProcessPeerIceCandidates { - guard let peerConnection = peerConnection else { assertionFailure(); return } - await peerConnection.removeIceCandidates(iceCandidates) - } else { - os_log("☎️❄️ Not ready to forward remote ICE candidates, remove candidates from pending list (count %{public}@)", log: self.log, type: .info, String(pendingRemoteIceCandidates.count)) - pendingRemoteIceCandidates.removeAll { iceCandidates.contains($0) } - } - } - - - private func createLocalDescriptionIfAppropriateForCurrentSignalingState(for peerConnection: ObvPeerConnection) async throws -> RTCSessionDescription? { - os_log("☎️ Calling Create Local Description if appropriate for the current signaling state", log: self.log, type: .info) - assert(self.peerConnection == peerConnection) - let rtcSessionDescription: RTCSessionDescription? - switch peerConnection.signalingState { - case .stable: - os_log("☎️ We are in a stable state --> create offer", log: self.log, type: .info) - reconnectOfferCounter += 1 - rtcSessionDescription = try await peerConnection.offer(for: RTCMediaConstraints(mandatoryConstraints: nil, optionalConstraints: nil)) - case .haveRemoteOffer: - os_log("☎️ We are in a haveRemoteOffer state --> create answer", log: self.log, type: .info) - rtcSessionDescription = try await peerConnection.answer(for: RTCMediaConstraints(mandatoryConstraints: nil, optionalConstraints: nil)) - case .haveLocalOffer, .haveLocalPrAnswer, .haveRemotePrAnswer, .closed: - os_log("☎️ We are neither in a stable or a haveRemoteOffer state, we do not create any offer", log: self.log, type: .info) - rtcSessionDescription = nil - @unknown default: - assertionFailure() - rtcSessionDescription = nil - } - return rtcSessionDescription - } - - - private func drainRemoteIceCandidates() async { - let log = self.log - guard case .gatherContinually = gatheringPolicy else { return } - guard readyToProcessPeerIceCandidates else { return } - guard !pendingRemoteIceCandidates.isEmpty else { return } - os_log("☎️❄️ Drain remote %{public}@ ICE candidate(s)", log: self.log, type: .info, String(pendingRemoteIceCandidates.count)) - for iceCandidate in pendingRemoteIceCandidates { - do { - try await addIceCandidate(iceCandidate: iceCandidate) - } catch { - os_log("☎️ Could not drain one of the ice candidates: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() // Continue anyway - } - } - pendingRemoteIceCandidates.removeAll() - } - - - private func iceGatheringCompleted() async throws { - - guard !iceGatheringCompletedWasCalled else { return } - iceGatheringCompletedWasCalled = true - - os_log("☎️ ICE gathering is completed", log: log, type: .info) - - guard let localDescription = await peerConnection?.localDescription else { assertionFailure(); return } - guard let delegate = delegate else { assertionFailure(); return } - - switch localDescription.type { - case .offer: - await delegate.sendLocalDescription(sessionDescription: localDescription, reconnectCounter: reconnectOfferCounter, peerReconnectCounterToOverride: reconnectAnswerCounter) - case .answer: - await delegate.sendLocalDescription(sessionDescription: localDescription, reconnectCounter: reconnectAnswerCounter, peerReconnectCounterToOverride: -1) - case .prAnswer, .rollback: - assertionFailure() // Do nothing - @unknown default: - assertionFailure() // Do nothing - } - - } - - - // MARK: - Implementing ObvPeerConnectionDelegate - - /// According to https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Perfect_negotiation, - /// This is the best place to get a local description and send it using the signaling channel to the remote peer. - func peerConnectionShouldNegotiate(_ peerConnection: ObvPeerConnection) async { - - os_log("☎️ Peer Connection should negociate was called", log: log, type: .info) - assert(self.peerConnection == peerConnection) - - await waitUntilNoLongerCreatingPeerConnection() - assert(!currentlyCreatingPeerConnection) - - // Since we might set a description, we must wait until it is our turn to do so. - - await waitUntilItIsSafeToSetSomeDescription() - - // Now that it is our turn to potentially set a description, we must make sure no other task will interfere. - // The mechanism allowing to do so requires to set the following Boolean to true now, and to false when we are done. - - aTaskIsCurrentlySettingSomeDescription = true - defer { aTaskIsCurrentlySettingSomeDescription = false } - - // Check that the current state is not closed - - guard connectionState != .closed else { - os_log("☎️ Since the peer connection is in a closed state, we do not negotiate", log: log, type: .info) - return - } - - do { - guard let sessionDescription = try await createLocalDescriptionIfAppropriateForCurrentSignalingState(for: peerConnection) else { return } - guard connectionState != .closed else { return } // The connection was closed during the creation of the local description - try await onCreateSuccess(sessionDescription: sessionDescription, for: peerConnection) - } catch { - guard connectionState != .closed else { return } // The connection was closed during the call to onCreateSuccess - os_log("☎️🛑 Could not negotiate: %{public}@", log: log, type: .fault, error.localizedDescription) - assertionFailure() - } - } - - - private func waitUntilNoLongerCreatingPeerConnection() async { - guard currentlyCreatingPeerConnection else { return } - os_log("☎️ Since we currently creating the peer connection (e.g., adding tracks), we wait until the creation is done before negotiating", log: log, type: .info) - await withCheckedContinuation { (continuation: CheckedContinuation) in - guard currentlyCreatingPeerConnection else { continuation.resume(); return } - assert(continuationToResumeWhenPeerConnectionIsCreated == nil) - continuationToResumeWhenPeerConnectionIsCreated = continuation - } - } - - - private func noLongerCreatingPeerConnection() { - assert(!currentlyCreatingPeerConnection) - guard let continuation = continuationToResumeWhenPeerConnectionIsCreated else { return } - os_log("☎️ Since the peer connection is now properly created (with tracks and all), we can proceed with the negotiation", log: log, type: .info) - continuationToResumeWhenPeerConnectionIsCreated = nil - continuation.resume() - } - - - private func waitUntilItIsSafeToSetSomeDescription() async { - guard aTaskIsCurrentlySettingSomeDescription else { return } - os_log("☎️ Since we are currently negotiating, we must wait", log: log, type: .info) - await withCheckedContinuation { (continuation: CheckedContinuation) in - guard aTaskIsCurrentlySettingSomeDescription else { continuation.resume(); return } - continuationsOfTaskWaitingUntilTheyCanSetSomeDescription.insert(continuation, at: 0) // first in, first out - } - } - - - private func oneOfTheTaskCurrentlySettingSomeDescriptionIsDone() { - assert(!aTaskIsCurrentlySettingSomeDescription) - guard !continuationsOfTaskWaitingUntilTheyCanSetSomeDescription.isEmpty else { return } - os_log("☎️ Since a task potentially setting a description is done, we can proceed with the next one", log: log, type: .info) - guard let continuation = continuationsOfTaskWaitingUntilTheyCanSetSomeDescription.popLast() else { return } - aTaskIsCurrentlySettingSomeDescription = true - continuation.resume() - } - - - private func onCreateSuccess(sessionDescription: RTCSessionDescription, for peerConnection: ObvPeerConnection) async throws { - os_log("☎️ onCreateSuccess", log: log, type: .info) - assert(self.peerConnection == peerConnection) - - guard let delegate = delegate else { - os_log("☎️ The delegate is not set on holder", log: log, type: .fault) - assertionFailure() - return - } - - // If we are not in stable or in a "have remote offer" state, we shouldn't be creating an offer nor an anser. - // In that case, we return immediately. - // Moreover, because the state might have changed since we created the session description, we check whether this description - // Is still appropriate for the current signaling state. - guard (peerConnection.signalingState, sessionDescription.type) == (.stable, .offer) || - (peerConnection.signalingState, sessionDescription.type) == (.haveRemoteOffer, .answer) else { - return - } - - os_log("☎️ Filtering SDP...", log: log, type: .info) - let filteredSessionDescription = try self.filterSdpDescriptionCodec(rtcSessionDescription: sessionDescription) - os_log("☎️ Filtered SDP: %{public}@", log: log, type: .info, filteredSessionDescription.sdp) - - os_log("☎️ Setting the local description in onCreateSuccess", log: log, type: .info) - try await peerConnection.setLocalDescription(filteredSessionDescription) - - switch gatheringPolicy { - case .gatherOnce: - resetGatheringState() - case .gatherContinually: - switch filteredSessionDescription.type { - case .offer: - await delegate.sendLocalDescription(sessionDescription: filteredSessionDescription, reconnectCounter: reconnectOfferCounter, peerReconnectCounterToOverride: reconnectAnswerCounter) - case .answer: - await delegate.sendLocalDescription(sessionDescription: filteredSessionDescription, reconnectCounter: reconnectAnswerCounter, peerReconnectCounterToOverride: -1) - case .prAnswer, .rollback: - assertionFailure() - @unknown default: - assertionFailure() - } - } - } - - - func peerConnection(_ peerConnection: ObvPeerConnection, didChange stateChanged: RTCSignalingState) async { - os_log("☎️ RTCPeerConnection didChange RTCSignalingState: %{public}@", log: log, type: .info, stateChanged.debugDescription) - assert(self.peerConnection == peerConnection) - Task { - if stateChanged == .stable && peerConnection.iceConnectionState == .connected { - await delegate?.peerConnectionStateDidChange(newState: .connected) - } - if stateChanged == .closed { - os_log("☎️🛑 Signaling state is closed", log: log, type: .info) - } - } - } - - - func peerConnection(_ peerConnection: ObvPeerConnection, didChange newState: RTCPeerConnectionState) async { - os_log("☎️ RTCPeerConnection didChange RTCPeerConnectionState: %{public}@", log: log, type: .info, newState.debugDescription) - assert(self.peerConnection == peerConnection) - self.connectionState = newState - } - - - func peerConnection(_ peerConnection: ObvPeerConnection, didChange newState: RTCIceConnectionState) async { - os_log("☎️ RTCPeerConnection didChange RTCIceConnectionState: %{public}@", log: log, type: .info, newState.debugDescription) - assert(self.peerConnection == peerConnection) - await delegate?.peerConnectionStateDidChange(newState: newState) - } - - - func peerConnection(_ peerConnection: ObvPeerConnection, didChange newState: RTCIceGatheringState) async { - os_log("☎️❄️ Peer Connection Ice Gathering State changed to: %{public}@", log: log, type: .info, newState.debugDescription) - assert(self.peerConnection == peerConnection) - guard case .gatherOnce = gatheringPolicy else { return } - switch newState { - case .new: - break - case .gathering: - // We start gathering --> clear the turnCandidates list - resetGatheringState() - case .complete: - switch gatheringPolicy { - case .gatherOnce: - if iceCandidates.isEmpty { - os_log("☎️❄️ No ICE candidates found", log: log, type: .info) - } else { - // We have all we need to send the local description to the caller. - os_log("☎️❄️ Calls completed ICE Gathering with %{public}@ candidates", log: self.log, type: .info, String(self.iceCandidates.count)) - Task { - try? await iceGatheringCompleted() - } - } - case .gatherContinually: - break // Do nothing - } - @unknown default: - assertionFailure() - } - } - - - func peerConnection(_ peerConnection: ObvPeerConnection, didGenerate candidate: RTCIceCandidate) async { - os_log("☎️❄️ Peer Connection didGenerate RTCIceCandidate", log: log, type: .info) - assert(self.peerConnection == peerConnection) - switch gatheringPolicy { - case .gatherOnce: - iceCandidates.append(candidate) - if iceCandidates.count == 1 { /// At least one candidate, we wait one second and hope that the other candidate will be added. - let queue = DispatchQueue(label: "Sleeping queue", qos: .userInitiated) - queue.asyncAfter(deadline: .now() + .seconds(2)) { [weak self] in - guard let _self = self else { return } - Task { - try? await _self.iceGatheringCompleted() - } - } - } - case .gatherContinually: - Task { - try? await delegate?.sendNewIceCandidateMessage(candidate: candidate) - } - } - } - - - func peerConnection(_ peerConnection: ObvPeerConnection, didRemove candidates: [RTCIceCandidate]) async { - os_log("☎️❄️ Peer Connection didRemove RTCIceCandidate", log: log, type: .info) - assert(self.peerConnection == peerConnection) - switch gatheringPolicy { - case .gatherOnce: - iceCandidates.removeAll { candidates.contains($0) } - case .gatherContinually: - Task { - try? await delegate?.sendRemoveIceCandidatesMessages(candidates: candidates) - } - } - } - - - func peerConnection(_ peerConnection: ObvPeerConnection, didOpen dataChannel: RTCDataChannel) async { - os_log("☎️ Peer Connection didOpen RTCDataChannel", log: log, type: .info) - assert(self.peerConnection == peerConnection) - } - - - // MARK: CallDataChannelWorkerDelegate and related methods - - func dataChannel(didReceiveMessage message: WebRTCDataChannelMessageJSON) async { - await delegate?.dataChannel(of: self, didReceiveMessage: message) - } - - func dataChannel(didChangeState state: RTCDataChannelState) async { - await delegate?.dataChannel(of: self, didChangeState: state) - } - - func sendDataChannelMessage(_ message: WebRTCDataChannelMessageJSON) throws { - Task { - try await dataChannelWorker?.sendDataChannelMessage(message) - } - } - - -} - - - -// MARK: - Filtering session descriptions - -extension WebrtcPeerConnectionHolder { - - - private func countSdpMedia(sessionDescription: String) throws -> Int { - var counter = 0 - let mediaStart = try NSRegularExpression(pattern: "^m=", options: .anchorsMatchLines) - let lines = sessionDescription.split(whereSeparator: { $0.isNewline }).map({String($0)}) - for line in lines { - let isFirstLineOfAnotherMediaSection = mediaStart.numberOfMatches(in: line, options: [], range: NSRange(location: 0, length: line.count)) > 0 - if isFirstLineOfAnotherMediaSection { - counter += 1 - } - } - return counter - } - - - private func filterSdpDescriptionCodec(rtcSessionDescription: RTCSessionDescription) throws -> RTCSessionDescription { - - let sessionDescription = rtcSessionDescription.sdp - - let mediaStartAudio = try NSRegularExpression(pattern: "^m=audio\\s+", options: .anchorsMatchLines) - let mediaStart = try NSRegularExpression(pattern: "^m=", options: .anchorsMatchLines) - let lines = sessionDescription.split(whereSeparator: { $0.isNewline }).map({String($0)}) - var audioSectionStarted = false - var audioLines = [String]() - var filteredLines = [String]() - for line in lines { - if audioSectionStarted { - let isFirstLineOfAnotherMediaSection = mediaStart.numberOfMatches(in: line, options: [], range: NSRange(location: 0, length: line.count)) > 0 - if isFirstLineOfAnotherMediaSection { - audioSectionStarted = false - // The audio section has ended, we can process all the audio lines with gathered - let filteredAudioLines = try processAudioLines(audioLines) - filteredLines.append(contentsOf: filteredAudioLines) - filteredLines.append(line) - } else { - audioLines.append(line) - } - } else { - let isFirstLineOfAudioSection = mediaStartAudio.numberOfMatches(in: line, options: [], range: NSRange(location: 0, length: line.count)) > 0 - if isFirstLineOfAudioSection { - audioSectionStarted = true - audioLines.append(line) - } else { - filteredLines.append(line) - } - } - } - if audioSectionStarted { - // In case the audio section was the last section of the session description - audioSectionStarted = false - let filteredAudioLines = try processAudioLines(audioLines) - filteredLines.append(contentsOf: filteredAudioLines) - } - let filteredSessionDescription = filteredLines.joined(separator: "\r\n").appending("\r\n") - return RTCSessionDescription(type: rtcSessionDescription.type, sdp: filteredSessionDescription) - } - - - private func processAudioLines(_ audioLines: [String]) throws -> [String] { - - let rtpmapPattern = try NSRegularExpression(pattern: "^a=rtpmap:([0-9]+)\\s+([^\\s/]+)", options: .anchorsMatchLines) - - // First pass - var formatsToKeep = Set() - var opusFormat: String? - for line in audioLines { - guard let result = rtpmapPattern.firstMatch(in: line, options: [], range: NSRange(location: 0, length: line.count)) else { continue } - let formatRange = result.range(at: 1) - let codecRange = result.range(at: 2) - let format = (line as NSString).substring(with: formatRange) - let codec = (line as NSString).substring(with: codecRange) - guard Self.audioCodecs.contains(codec) else { continue } - formatsToKeep.insert(format) - if codec == "opus" { - opusFormat = format - } - } - - assert(opusFormat != nil) - - // Second pass - // 1. Rewrite the first line (only keep the formats to keep) - var processedAudioLines = [String]() - do { - let firstLine = try NSRegularExpression(pattern: "^(m=\\S+\\s+\\S+\\s+\\S+)\\s+(([0-9]+\\s*)+)$", options: .anchorsMatchLines) - guard let result = firstLine.firstMatch(in: audioLines[0], options: [], range: NSRange(location: 0, length: audioLines[0].count)) else { - throw Self.makeError(message: "Could not find expected match") - } - let processedFirstLine = (audioLines[0] as NSString) - .substring(with: result.range(at: 1)) - .appending(" ") - .appending( - (audioLines[0] as NSString) - .substring(with: result.range(at: 2)) - .split(whereSeparator: { $0.isWhitespace }) - .map({String($0)}) - .filter({ formatsToKeep.contains($0) }) - .joined(separator: " ")) - processedAudioLines.append(processedFirstLine) - } - // 2. Filter subsequent lines - let rtpmapOrOptionPattern = try NSRegularExpression(pattern: "^a=(rtpmap|fmtp|rtcp-fb):([0-9]+)\\s+", options: .anchorsMatchLines) - - for i in 1... - */ - - -import Foundation -import WebRTC - - -protocol WebrtcPeerConnectionHolderDelegate: AnyObject { - - func peerConnectionStateDidChange(newState: RTCIceConnectionState) async - func dataChannel(of peerConnectionHolder: WebrtcPeerConnectionHolder, didReceiveMessage message: WebRTCDataChannelMessageJSON) async - func dataChannel(of peerConnectionHolder: WebrtcPeerConnectionHolder, didChangeState state: RTCDataChannelState) async - func shouldISendTheOfferToCallParticipant() async -> Bool - - func sendNewIceCandidateMessage(candidate: RTCIceCandidate) async throws - func sendRemoveIceCandidatesMessages(candidates: [RTCIceCandidate]) async throws - - func sendLocalDescription(sessionDescription: RTCSessionDescription, reconnectCounter: Int, peerReconnectCounterToOverride: Int) async - -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/PushKitNotificationSynchronizer.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/PushKitNotificationSynchronizer.swift new file mode 100644 index 00000000..51bd7ff5 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/PushKitNotificationSynchronizer.swift @@ -0,0 +1,113 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import ObvTypes +import ObvCrypto +import ObvSettings + + + +actor PushKitNotificationSynchronizer { + + private static let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "PushKitNotificationSynchronizer") + + private var receivedStartCallMessageForCallWithCallIdentifierForCallKit = [UUID: (callerId: ObvContactIdentifier, startCallMessage: StartCallMessageJSON, uuidForWebRTC: UUID)]() + private var sleepTaskForCallWithCallIdentifierForCallKit = [UUID: Task]() + + + /// Called by the `CallProviderDelegate` when receiving a pushkit notification, after reporting the call to the system using a "fake" `CXCallUpdate`. + /// As soon as a `StartCallMessageJSON` is available, this method returns it, allowing the `CallProviderDelegate` to update the + /// call with a proper `CXCallUpdate`. + func waitForStartCallMessage(encryptedNotification: ObvEncryptedPushNotification) async throws -> (callerId: ObvContactIdentifier, startCallMessage: StartCallMessageJSON, uuidForWebRTC: UUID) { + + let callIdentifierForCallKit = encryptedNotification.messageIdFromServer.deterministicUUID + + // The start call message may already be available, in which case, we return it + + if let receivedValues = receivedStartCallMessageForCallWithCallIdentifierForCallKit[callIdentifierForCallKit] { + os_log("☎️ Start call message is readily available, so we return it now", log: Self.log, type: .info) + return receivedValues + } + + // Now that we notified, we wait until the start call message is available + + os_log("☎️ We wait until the start call message is available", log: Self.log, type: .info) + + assert(sleepTaskForCallWithCallIdentifierForCallKit[callIdentifierForCallKit] == nil) + let sleepTask = Task { try await Task.sleep(seconds: 10) } + sleepTaskForCallWithCallIdentifierForCallKit[callIdentifierForCallKit] = sleepTask + // Wait until the sleep task is cancelled (upon reception of the start call message) + // Note the try? instead of try: we don't want to throw when the task is cancelled. + try? await sleepTask.value + + // Either the sleep task has been cancelled because the start call message is available, or it waited for too long + + guard let startCallMessage = receivedStartCallMessageForCallWithCallIdentifierForCallKit[callIdentifierForCallKit] else { + os_log("☎️ Enough waiting for the start call message. We fail.", log: Self.log, type: .error) + throw ObvError.startCallMessageNeverArrived + } + + os_log("☎️ The start call message we were waiting for is now available, we return it", log: Self.log, type: .info) + + return startCallMessage + + } + + + /// Called by the `CallProviderDelegate` when receiving a `StartCallMessageJSON` when CallKit is enabled (which never happens in a simulator). + /// We store this message and cancel any sleeping task. This mechanism allows to make sure the PushKit notification is received before actually using this start call message to start an incoming call. + func continuePushKitNotificationProcessing(_ startCallMessage: StartCallMessageJSON, messageIdFromServer: UID, callerId: ObvContactIdentifier, uuidForWebRTC: UUID) { + + assert(ObvUICoreDataConstants.useCallKit) + + os_log("☎️ Receiving a start call message", log: Self.log, type: .info) + + let callIdentifierForCallKit = messageIdFromServer.deterministicUUID + + guard receivedStartCallMessageForCallWithCallIdentifierForCallKit[callIdentifierForCallKit] == nil else { + // We already received this start call message. This happens when: + // - The PushKit notification was decrypted + // - Then the same encrypted message arrived from the net work fetch manager. + // So that this method is called twice. In that case, we discard the second call here. + return + } + + receivedStartCallMessageForCallWithCallIdentifierForCallKit[callIdentifierForCallKit] = (callerId, startCallMessage, uuidForWebRTC) + + if let sleepTask = sleepTaskForCallWithCallIdentifierForCallKit.removeValue(forKey: callIdentifierForCallKit) { + // Now that the start call message is available, we can resume the waitForStartCallMessage(encryptedNotification:) method. + os_log("☎️ We will resume the sleeping waitForStartCallMessage(encryptedNotification:) method as the expected start call message is now available", log: Self.log, type: .info) + sleepTask.cancel() + } else { + // The PushKit notification will arrive soon and the waitForStartCallMessage(encryptedNotification:) method will called. + // The start call message will be ready to be used immediately. + os_log("☎️ The start call message has been stored, waiting for the PsuhKit notification that will arrive soon", log: Self.log, type: .info) + } + + } + + + enum ObvError: Error { + case startCallMessageNeverArrived + case obvMessageIsNotWebRTCMessage + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/SupportingTypes/OlvidCallGatheringPolicy+RTCContinualGatheringPolicy.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/SupportingTypes/OlvidCallGatheringPolicy+RTCContinualGatheringPolicy.swift new file mode 100644 index 00000000..29ae7c40 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/SupportingTypes/OlvidCallGatheringPolicy+RTCContinualGatheringPolicy.swift @@ -0,0 +1,33 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import WebRTC + + +// MARK: - OlvidCallGatheringPolicy extension + +extension OlvidCallGatheringPolicy { + var rtcPolicy: RTCContinualGatheringPolicy { + switch self { + case .gatherOnce: return .gatherOnce + case .gatherContinually: return .gatherContinually + } + } +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/Localization/ComposeMessageView+Strings.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/SupportingTypes/OlvidCallGatheringPolicy.swift similarity index 69% rename from iOSClient/ObvMessenger/ObvMessenger/Localization/ComposeMessageView+Strings.swift rename to iOSClient/ObvMessenger/ObvMessenger/VoIP/SupportingTypes/OlvidCallGatheringPolicy.swift index 1817b7eb..389bc916 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/Localization/ComposeMessageView+Strings.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/SupportingTypes/OlvidCallGatheringPolicy.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -19,12 +19,17 @@ import Foundation -extension ComposeMessageView { - - struct Strings { - - static let placeholderText = NSLocalizedString("Type a confidential message...", comment: "Placeholder text within the text view. Keep it short.") - + +enum OlvidCallGatheringPolicy: Int { + + case gatherOnce = 1 + case gatherContinually = 2 + + var localizedDescription: String { + switch self { + case .gatherOnce: return "gatherOnce" + case .gatherContinually: return "gatherContinually" + } } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/SupportingTypes/TurnCredentials.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/SupportingTypes/TurnCredentials.swift new file mode 100644 index 00000000..507ada7d --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/SupportingTypes/TurnCredentials.swift @@ -0,0 +1,56 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import ObvTypes + + +struct TurnCredentials { + let turnUserName: String + let turnPassword: String + let turnServers: [String]? +} + + +extension ObvTurnCredentials { + + var turnCredentialsForCaller: TurnCredentials { + TurnCredentials(turnUserName: callerUsername, + turnPassword: callerPassword, + turnServers: turnServersURL) + } + + var turnCredentialsForRecipient: TurnCredentials { + TurnCredentials(turnUserName: recipientUsername, + turnPassword: recipientPassword, + turnServers: turnServersURL) + } + +} + + +extension StartCallMessageJSON { + + var turnCredentials: TurnCredentials { + TurnCredentials(turnUserName: turnUserName, + turnPassword: turnPassword, + turnServers: turnServers) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/OlvidCallParticipantView.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/OlvidCallParticipantView.swift new file mode 100644 index 00000000..0b7653f0 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/OlvidCallParticipantView.swift @@ -0,0 +1,162 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI +import ObvTypes +import UI_ObvCircledInitials + + +protocol OlvidCallParticipantViewModelProtocol: ObservableObject, Identifiable, InitialCircleViewNewModelProtocol { + var displayName: String { get } + var stateLocalizedDescription: String { get } + var contactIsMuted: Bool { get } + var cryptoId: ObvCryptoId { get } +} + + +protocol OlvidCallParticipantViewActionsProtocol { + func userWantsToRemoveParticipant(cryptoId: ObvCryptoId) async throws +} + +/// Encapsulates view parameters that cannot be easily implemented at the model level (i.e., by an `OlvidCallParticipant`, that will implement `OlvidCallParticipantViewModelProtocol`) +/// but that can easily be computed par the `OlvidCallView`. +struct OlvidCallParticipantViewState { + let showRemoveParticipantButton: Bool +} + + +// MARK: - OlvidCallParticipantView + +struct OlvidCallParticipantView: View { + + @ObservedObject var model: Model + let state: OlvidCallParticipantViewState + let actions: OlvidCallParticipantViewActionsProtocol + + + private func userWantsToRemoveParticipant() { + Task { + do { + try await actions.userWantsToRemoveParticipant(cryptoId: model.cryptoId) + } catch { + assertionFailure() + } + } + } + + var body: some View { + HStack(spacing: 12) { + InitialCircleViewNew(model: model, state: .init(circleDiameter: 70)) + .overlay(alignment: .topTrailing) { + MuteView() + .opacity(model.contactIsMuted ? 1.0 : 0.0) + } + VStack(alignment: .leading) { + ScrollView(.horizontal, showsIndicators: false) { + Text(verbatim: model.displayName) + .font(.title) + .fontWeight(.heavy) + .lineLimit(1) + .foregroundStyle(.primary) + } + Text(verbatim: model.stateLocalizedDescription) + .font(.callout) + .lineLimit(1) + .foregroundStyle(.secondary) + } + if state.showRemoveParticipantButton { + Button(action: userWantsToRemoveParticipant) { + Image(systemIcon: .minusCircleFill) + .foregroundStyle(Color(UIColor.systemRed)) + .background(Color(.white).clipShape(Circle()).padding(4)) + .font(.system(size: 24)) + }.padding(.leading, 4) + } + } + } + + +} + + +// MARK: - Small mute icon shown when the participant is muted + +private struct MuteView: View { + var body: some View { + Image(systemIcon: .micSlashFill) + .foregroundStyle(Color(UIColor.white)) + .font(.system(size: 12, weight: .semibold)) + .frame(width: 24, height: 24) + .background(Color(UIColor.systemRed)) + .clipShape(Circle()) + } +} + + + +// MARK: - Previews + +struct OlvidCallParticipantView_Previews: PreviewProvider { + + private static let ownedCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!) + private static let contactCryptoId = try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f000009e171a9c73a0d6e9480b022154c83b13dfa8e4c99496c061c0c35b9b0432b3a014a5393f98a1aead77b813df0afee6b8af7e5f9a5aae6cb55fdb6bc5cc766f8da")!) + + private final class ModelForPreviews: OlvidCallParticipantViewModelProtocol { + + var cryptoId: ObvTypes.ObvCryptoId { contactCryptoId } + + var circledInitialsConfiguration: CircledInitialsConfiguration { + .contact(initial: "S", + photo: nil, + showGreenShield: false, + showRedShield: false, + cryptoId: contactCryptoId, + tintAdjustementMode: .normal) + } + + var displayName: String { + "Steve Jobs" + } + + var stateLocalizedDescription: String { + "Some description" + } + + @Published var contactIsMuted: Bool = false + + var uuidForCallKit: UUID { UUID() } + + } + + + private final class ActionsForPreviews: OlvidCallParticipantViewActionsProtocol { + func userWantsToRemoveParticipant(cryptoId: ObvCryptoId) async throws {} + } + + private static let model = ModelForPreviews() + private static let actions = ActionsForPreviews() + private static let state = OlvidCallParticipantViewState( + showRemoveParticipantButton: true) + + static var previews: some View { + OlvidCallParticipantView(model: model, state: state, actions: actions) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/OlvidCallView.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/OlvidCallView.swift new file mode 100644 index 00000000..05d9bc03 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/OlvidCallView.swift @@ -0,0 +1,804 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI +import ObvTypes +import UI_ObvCircledInitials +import UI_SystemIcon + + +protocol OlvidCallViewModelProtocol: ObservableObject, OngoingCallButtonsViewModelProtocol, AcceptOrRejectButtonsViewModelProtocol { + associatedtype OlvidCallParticipantViewModel: OlvidCallParticipantViewModelProtocol + var ownedCryptoId: ObvCryptoId { get } + var otherParticipants: [OlvidCallParticipantViewModel] { get } + var localUserStillNeedsToAcceptOrRejectIncomingCall: Bool { get } + var uuidForCallKit: UUID { get } + var direction: OlvidCall.Direction { get } + var dateWhenCallSwitchedToInProgress: Date? { get } +} + + +protocol OlvidCallViewActionsProtocol: AcceptOrRejectButtonsViewActionsProtocol, OngoingCallButtonsViewActionsProtocol { + func userWantsToAddParticipantsToExistingCall(uuidForCallKit: UUID, participantsToAdd: Set) async throws + func userWantsToRemoveParticipant(uuidForCallKit: UUID, participantToRemove: ObvCryptoId) async throws +} + + +protocol OlvidCallViewNavigationActionsProtocol: AnyObject { + func userWantsToAddParticipantToCall(ownedCryptoId: ObvCryptoId, currentOtherParticipants: Set) async -> Set +} + + +fileprivate enum Orientation { + case vertical + case horizontal +} + +/// Main view used when displaying a call to the user. +struct OlvidCallView: View, OlvidCallParticipantViewActionsProtocol { + + @ObservedObject var model: Model + let actions: OlvidCallViewActionsProtocol + let navigationActions: OlvidCallViewNavigationActionsProtocol + + private let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect() + @State private var callDuration: String? + + @Environment(\.horizontalSizeClass) var horizontalSizeClass + @Environment(\.verticalSizeClass) var verticalSizeClass + + private var orientation: Orientation { + switch (horizontalSizeClass, verticalSizeClass) { + case (.compact, .compact), (.regular, .compact): + return .horizontal + default: + return .vertical + } + } + + /// State common to all `OlvidCallParticipantView` instances displayed by this view + private var callParticipantViewState: OlvidCallParticipantViewState { + let showRemoveParticipantButton: Bool + switch model.direction { + case .incoming: + showRemoveParticipantButton = false + case .outgoing: + showRemoveParticipantButton = model.otherParticipants.count != 1 + } + return .init(showRemoveParticipantButton: showRemoveParticipantButton) + } + + + private func userWantsToAddParticipantToCall() { + Task { + let currentOtherParticipants = Set(model.otherParticipants.map({ $0.cryptoId })) + let participantsToAdd = await navigationActions.userWantsToAddParticipantToCall(ownedCryptoId: model.ownedCryptoId, currentOtherParticipants: currentOtherParticipants) + do { + try await actions.userWantsToAddParticipantsToExistingCall(uuidForCallKit: model.uuidForCallKit, participantsToAdd: participantsToAdd) + } catch { + assertionFailure(error.localizedDescription) + } + } + } + + + func userWantsToRemoveParticipant(cryptoId: ObvCryptoId) async throws { + do { + try await actions.userWantsToRemoveParticipant(uuidForCallKit: model.uuidForCallKit, participantToRemove: cryptoId) + } catch { + assertionFailure(error.localizedDescription) + } + } + + private let dateFormatter: DateComponentsFormatter = { + let f = DateComponentsFormatter() + f.unitsStyle = .abbreviated // Or .short or .abbreviated + f.allowedUnits = [.second, .minute, .hour] + return f + }() + + + private func refreshCallDuration() { + guard let date = model.dateWhenCallSwitchedToInProgress else { return } + let newCallDuration = dateFormatter.string(from: abs(date.timeIntervalSinceNow)) + if callDuration == nil { + withAnimation(.bouncy) { + callDuration = newCallDuration + } + } else { + callDuration = newCallDuration + } + } + + + var body: some View { + VHStack(orientation: orientation) { + + if orientation == .horizontal { + + VStack { + + if model.localUserStillNeedsToAcceptOrRejectIncomingCall { + AcceptOrRejectButtonsView(model: model, actions: actions) + } else { + OngoingCallButtonsView(globalOrientation: orientation, model: model, actions: actions) + } + } + .padding(.trailing) + + Divider() + .padding(.trailing) + + } + + VStack { + + // If the call is an outgoing call, show a button allowing the caller to add participants to the call + + if model.direction == .outgoing { + HStack { + Spacer() + Button(action: userWantsToAddParticipantToCall) { + Image(systemIcon: .personCropCircleBadgePlus) + .font(.system(size: 26)) + } + } + } + + // Show a list of all participants + + ScrollView { + ForEach(model.otherParticipants) { participant in + OlvidCallParticipantView(model: participant, state: callParticipantViewState, actions: self) + } + } + + Spacer() + + CallDurationAndTitle(orientation: orientation, callDuration: callDuration) + + } + + if orientation == .vertical { + VStack { + + if model.localUserStillNeedsToAcceptOrRejectIncomingCall { + AcceptOrRejectButtonsView(model: model, actions: actions) + } else { + OngoingCallButtonsView(globalOrientation: orientation, model: model, actions: actions) + } + + } + } + + } + .padding() + .onReceive(timer) { (_) in + refreshCallDuration() + } + + } +} + + +// MARK: Call duration and title + +private struct CallDurationAndTitle: View { + + let orientation: Orientation + let callDuration: String? + + var body: some View { + + switch orientation { + case .vertical: + VStack { + BadgeAndTextView() + if let callDuration { + Text(verbatim: callDuration) + } + } + .font(.system(size: 16)) + .foregroundStyle(Color(UIColor.secondaryLabel)) + case .horizontal: + HStack { + BadgeAndTextView() + if let callDuration { + Text(verbatim: "-") + Text(verbatim: callDuration) + } + Spacer() + } + .font(.system(size: 16)) + .foregroundStyle(Color(UIColor.secondaryLabel)) + .padding(.leading, 82) + } + + } + +} + + +// MARK: - BadgeAndTextView + +private struct BadgeAndTextView: View { + var body: some View { + HStack { + Image("badge") + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: 20, height: 20) + Text("OLVID_AUDIO") + } + } +} + + +// MARK: - VHStack view + +private struct VHStack: View { + + let orientation: Orientation + let spacing: CGFloat? + + let content: Content + + init(orientation: Orientation, spacing: CGFloat? = nil, @ViewBuilder _ content: () -> Content) { + self.orientation = orientation + self.spacing = spacing + self.content = content() + } + + var body: some View { + switch orientation { + case .vertical: + VStack(spacing: spacing) { + content + } + case .horizontal: + HStack(spacing: spacing) { + content + } + } + } +} + + +// MARK: - Buttons shown when the local user needs to accept/reject incoming call + +protocol AcceptOrRejectButtonsViewActionsProtocol { + func userAcceptedIncomingCall(uuidForCallKit: UUID) async throws + func userRejectedIncomingCall(uuidForCallKit: UUID) async throws +} + + +protocol AcceptOrRejectButtonsViewModelProtocol: ObservableObject { + var uuidForCallKit: UUID { get } +} + + +private struct AcceptOrRejectButtonsView: View { + + @ObservedObject var model: Model + let actions: AcceptOrRejectButtonsViewActionsProtocol + + private let buttonImageFontSize: CGFloat = 20 + + private func userRejectedIncomingCall() { + Task { + do { + try await actions.userRejectedIncomingCall(uuidForCallKit: model.uuidForCallKit) + } catch { + assertionFailure(error.localizedDescription) + } + } + } + + private func userAcceptedIncomingCall() { + Task { + do { + try await actions.userAcceptedIncomingCall(uuidForCallKit: model.uuidForCallKit) + } catch { + assertionFailure(error.localizedDescription) + } + } + } + + var body: some View { + HStack(spacing: 24) { + + CallButton(action: userRejectedIncomingCall, + systemIcon: .xmark, + background: .systemRed, + text: nil) + + CallButton(action: userAcceptedIncomingCall, + systemIcon: .checkmark, + background: .systemGreen, + text: nil) + + } + } +} + + +// MARK: - Stack of buttons shown during an ongoing call + +protocol OngoingCallButtonsViewModelProtocol: ObservableObject, AudioMenuButtonModelProtocol { + var selfIsMuted: Bool { get } + var uuidForCallKit: UUID { get } +} + + +protocol OngoingCallButtonsViewActionsProtocol: AudioMenuButtonActionsProtocol { + func userWantsToEndOngoingCall(uuidForCallKit: UUID) async throws + func userWantsToSetMuteSelf(uuidForCallKit: UUID, muted: Bool) async throws +} + + +private struct OngoingCallButtonsView: View { + + let globalOrientation: Orientation + @ObservedObject var model: Model + let actions: OngoingCallButtonsViewActionsProtocol + + private let buttonImageFontSize: CGFloat = 20 + + private func userWantsToToggleMuteSelf() { + Task { + do { + try await actions.userWantsToSetMuteSelf(uuidForCallKit: model.uuidForCallKit, muted: !model.selfIsMuted) + } catch { + assertionFailure() + } + } + } + + + private func userWantsToEndOngoingCall() { + Task { + do { + try await actions.userWantsToEndOngoingCall(uuidForCallKit: model.uuidForCallKit) + } catch { + assertionFailure(error.localizedDescription) + } + } + } + + + private func userWantsToChat() { + VoIPNotification.hideCallView.postOnDispatchQueue() + } + + + private var buttonStackOrientation: Orientation { + switch globalOrientation { + case .horizontal: return .vertical + case .vertical: return .horizontal + } + } + + var body: some View { + + VHStack(orientation: buttonStackOrientation, spacing: 24) { + + HStack(alignment: .top, spacing: 24) { + + CallButton(action: userWantsToToggleMuteSelf, + systemIcon: .micSlashFill, + background: model.selfIsMuted ? .systemRed : .systemFill, + text: model.selfIsMuted ? "Unmute" : "Mute") + + AudioMenuButton(model: model, actions: actions) + + } + + HStack(alignment: .top, spacing: 24) { + + CallButton(action: userWantsToChat, + systemIcon: .bubbleLeftAndBubbleRightFill, + background: .systemFill, + text: "Chat") + + CallButton(action: userWantsToEndOngoingCall, + systemIcon: .phoneDownFill, + background: .systemRed, + text: "End") + + } + } + + } +} + + +// MARK: - Generic view for most buttons shown during a call + +private struct CallButton: View { + + let action: () -> Void + let systemIcon: SystemIcon + let background: UIColor + let text: LocalizedStringKey? + + var body: some View { + VStack { + Button(action: action, label: { + ZStack { + Circle() + .foregroundStyle(Color(background)) + Image(systemIcon: systemIcon) + .font(Constants.inCallImageFont) + .foregroundStyle(.white) + } + }) + .frame(width: Constants.inCallButtonFrameWidth, height: Constants.inCallButtonFrameWidth) + if let text { + VStack { + Text(text) + .font(.system(size: Constants.inCallButtonTextSize)) + .multilineTextAlignment(.center) + .lineLimit(2) + .foregroundStyle(Color(UIColor.tertiaryLabel)) + Spacer(minLength: 0) + } + .frame(height: Constants.inCallButtonTextFrameHeight) + } + } + .frame(width: Constants.inCallButtonFrameWidth) + } + +} + + +// MARK: - Button for choosing Audio input + +protocol AudioMenuButtonModelProtocol: ObservableObject, AudioMenuButtonLabelViewModelProtocol { + var availableAudioOptions: [OlvidCallAudioOption]? { get } // Nil if the available options cannot be determined yet + func userWantsToActivateAudioOption(_ audioOption: OlvidCallAudioOption) async throws + func userWantsToChangeSpeaker(to isSpeakerEnabled: Bool) async throws +} + + +protocol AudioMenuButtonActionsProtocol { +} + + +private struct AudioMenuButton: View { + + @ObservedObject var model: Model + let actions: AudioMenuButtonActionsProtocol + + /// Called when the user chooses a particular audio input from the menu displayed when tapping the audio button + private func userTappedOnAudioOption(_ audioOption: OlvidCallAudioOption) { + Task { + do { + try await model.userWantsToActivateAudioOption(audioOption) + } catch { + assertionFailure(error.localizedDescription) + } + } + } + + + /// The button is available only if the user can only toggle between the built-in speaker in the internal mic. + private func userTappedOnAudioButton() { + Task { + do { + try await model.userWantsToChangeSpeaker(to: !model.isSpeakerEnabled) + } catch { + assertionFailure(error.localizedDescription) + } + } + } + + + /// Type of the input shown on screen. + /// + /// On macOS, the input can only be chosen in the menu bar, so tapping the button shows an alert. + /// On iOS/iPadOS : + /// - if the only alternative choice would be to activate the speaker, we show a button that toggle the speaker; + /// - if more choices are available, we show a menu allowing to choose among the inputs. + private enum InputType { + case button + case menu(availableAudioOptions: [OlvidCallAudioOption]) + case alertOnMac + } + + + private var inputType: InputType { + if ObvMessengerConstants.targetEnvironmentIsMacCatalyst { + return .alertOnMac + } + guard let availableAudioOptions = model.availableAudioOptions else { + return .button + } + switch availableAudioOptions.count { + case let nbrAvailableAudioOptions where nbrAvailableAudioOptions > 2: + return .menu(availableAudioOptions: availableAudioOptions) + default: + return .button + } + } + + private var subtitleLocalizedStringKey: LocalizedStringKey { + if model.isSpeakerEnabled { + return "SPEAKER" + } else { + return "AUDIO" + } + } + + + var body: some View { + + VStack { + + // Show a Menu or a simple button, depending on the number of options to choose from + + switch inputType { + + case .alertOnMac: + + Menu { + Text("THE_CALL_AUDIO_CONFIG_FOR_MAC_IS_AVAILABLE_IN_MENU_BAR") + .foregroundStyle(.primary) + } label: { + AudioMenuButtonLabelView(model: model) + } + .frame(width: Constants.inCallButtonFrameWidth, height: Constants.inCallButtonFrameWidth) + + case .button: + + Button(action: userTappedOnAudioButton) { + AudioMenuButtonLabelView(model: model) + } + .frame(width: Constants.inCallButtonFrameWidth, height: Constants.inCallButtonFrameWidth) + + case .menu(availableAudioOptions: let availableAudioOptions): + + Menu { + ForEach(availableAudioOptions) { audioOption in + Button(action: { userTappedOnAudioOption(audioOption) }) { + Label { + Text(verbatim: audioOption.portName) + } icon: { + switch audioOption.icon { + case .sf(let systemIcon): + Image(systemIcon: systemIcon) + .font(Constants.inCallImageFont) + case .png(let filename): + Image(filename) + .renderingMode(.template) + .resizable() + .foregroundColor(.white) + .frame(width: Constants.inCallImagePngSize, height: Constants.inCallImagePngSize) + + } + } + } + } + } label: { + AudioMenuButtonLabelView(model: model) + } + .frame(width: Constants.inCallButtonFrameWidth, height: Constants.inCallButtonFrameWidth) + } + + // In all cases, show text bellow the menu or button + + VStack { + Text(subtitleLocalizedStringKey) + .font(.system(size: Constants.inCallButtonTextSize)) + .foregroundStyle(Color(UIColor.tertiaryLabel)) + Spacer(minLength: 0) + } + .frame(height: Constants.inCallButtonTextFrameHeight) + + } + .frame(width: Constants.inCallButtonFrameWidth) + + } + +} + +// MARK: - The view used for the audio button, both when using a menu or a button + +protocol AudioMenuButtonLabelViewModelProtocol: ObservableObject { + var isSpeakerEnabled: Bool { get } + var currentAudioOptions: [OlvidCallAudioOption] { get } // Empty if the current option cannot be determined yet +} + + +private struct AudioMenuButtonLabelView: View { + + @ObservedObject var model: Model + + private var displayedAudioOption: OlvidCallAudioOption? { + model.currentAudioOptions.first + } + + private var displayedIcon: OlvidCallAudioOption.IconKind { + if model.isSpeakerEnabled { + return .sf(.speakerWave3Fill) + } else { + return displayedAudioOption?.icon ?? .sf(.speakerWave3Fill) + } + } + + var body: some View { + ZStack { + Circle() + .foregroundStyle(model.isSpeakerEnabled ? Color(UIColor.systemRed) : Color(UIColor.systemFill)) + switch displayedIcon { + case .sf(let systemIcon): + Image(systemIcon: systemIcon) + .font(Constants.inCallImageFont) + .foregroundStyle(.white) + case .png(let filename): + Image(filename) + .renderingMode(.template) + .resizable() + .foregroundColor(.white) + .frame(width: Constants.inCallImagePngSize, height: Constants.inCallImagePngSize) + } + } + } + +} + + +// MARK: Local constants for the views + +private struct Constants { + + /// Width of the frame of all the buttons shown during a call (e.g., the end call button and the mute button). + static let inCallButtonFrameWidth: CGFloat = 64 + + /// The buttons shown during a call show a title. This is its size. + static let inCallButtonTextSize: CGFloat = 16 + + /// For buttons that show a png instead of an SF symbol (like for the bluetooth image) + static let inCallImagePngSize: CGFloat = 20 + + /// The font used for SF symbol images contained in the buttons shown during a call + static let inCallImageFont = Font.system(size: 20, weight: .semibold, design: .default) + + /// Height of the frame delimiting the frame around the text below the buttons shown during a call. + /// Specifying this height allows to have an acceptable design whatever the number of lines that the text requires (1 or 2). + static let inCallButtonTextFrameHeight: CGFloat = 42 + +} + + +// MARK: - Previews + +struct OlvidCallView_Previews: PreviewProvider { + + private static let cryptoIds: [ObvCryptoId] = [ + try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f0000b82ae0c57e570389cb03d5ad93dab4606bda7bbe01c09ce5e423094a8603a61e01693046e10e04606ef4461d31e1aa1819222a0a606a250e91749095a4410778c1")!), + try! ObvCryptoId(identity: Data(hexString: "68747470733a2f2f7365727665722e6465762e6f6c7669642e696f000009e171a9c73a0d6e9480b022154c83b13dfa8e4c99496c061c0c35b9b0432b3a014a5393f98a1aead77b813df0afee6b8af7e5f9a5aae6cb55fdb6bc5cc766f8da")!), + ] + + private final class CallParticipantModelForPreviews: OlvidCallParticipantViewModelProtocol { + var uuidForCallKit: UUID { UUID() } + var cryptoId: ObvTypes.ObvCryptoId + var stateLocalizedDescription: String + let showRemoveParticipantButton: Bool + let displayName: String + let circledInitialsConfiguration: UI_ObvCircledInitials.CircledInitialsConfiguration + var contactIsMuted: Bool + init(cryptoId: ObvTypes.ObvCryptoId, showRemoveParticipantButton: Bool, displayName: String, stateLocalizedDescription: String, circledInitialsConfiguration: UI_ObvCircledInitials.CircledInitialsConfiguration, contactIsMuted: Bool) { + self.showRemoveParticipantButton = showRemoveParticipantButton + self.displayName = displayName + self.stateLocalizedDescription = stateLocalizedDescription + self.circledInitialsConfiguration = circledInitialsConfiguration + self.contactIsMuted = contactIsMuted + self.cryptoId = cryptoId + } + } + + private final class ModelForPreviews: OlvidCallViewModelProtocol { + let dateWhenCallSwitchedToInProgress: Date? = Date.now + var direction: OlvidCall.Direction { .outgoing } + let ownedCryptoId = OlvidCallView_Previews.cryptoIds[0] + let availableAudioOptions: [OlvidCallAudioOption]? + var currentAudioOptions: [OlvidCallAudioOption] + @Published var isSpeakerEnabled: Bool + let uuidForCallKit = UUID() + let selfIsMuted: Bool + let otherParticipants: [CallParticipantModelForPreviews] + let localUserStillNeedsToAcceptOrRejectIncomingCall: Bool + init(selfIsMuted: Bool, otherParticipants: [CallParticipantModelForPreviews], localUserStillNeedsToAcceptOrRejectIncomingCall: Bool, availableAudioOptions: [OlvidCallAudioOption]?) { + self.otherParticipants = otherParticipants + self.selfIsMuted = selfIsMuted + self.localUserStillNeedsToAcceptOrRejectIncomingCall = localUserStillNeedsToAcceptOrRejectIncomingCall + self.availableAudioOptions = availableAudioOptions + self.currentAudioOptions = [availableAudioOptions!.first!] + self.isSpeakerEnabled = false + } + func userWantsToActivateAudioOption(_ audioOption: OlvidCallAudioOption) async throws {} + func userWantsToChangeSpeaker(to isSpeakerEnabled: Bool) async throws { + self.isSpeakerEnabled = isSpeakerEnabled + } + } + + private static let model = ModelForPreviews( + selfIsMuted: false, + otherParticipants: [ + .init(cryptoId: cryptoIds[0], + showRemoveParticipantButton: true, + displayName: "Thomas Baignères", + stateLocalizedDescription: "Some s0tate", + circledInitialsConfiguration: .contact( + initial: "S", + photo: nil, + showGreenShield: false, + showRedShield: false, + cryptoId: cryptoIds[0], + tintAdjustementMode: .normal), + contactIsMuted: true), + .init(cryptoId: cryptoIds[1], + showRemoveParticipantButton: true, + displayName: "Tim Cooks", + stateLocalizedDescription: "Some other state", + circledInitialsConfiguration: .contact( + initial: "T", + photo: nil, + showGreenShield: false, + showRedShield: false, + cryptoId: cryptoIds[1], + tintAdjustementMode: .normal), + contactIsMuted: false), + ], + localUserStillNeedsToAcceptOrRejectIncomingCall: false, + availableAudioOptions: [ + OlvidCallAudioOption.builtInSpeaker(), + OlvidCallAudioOption.forPreviews(portType: .headphones, portName: "Headphones"), + //OlvidCallAudioOption.forPreviews(portType: .airPlay, portName: "Airplay"), + ]) + + private final class ActionsForPreviews: OlvidCallViewActionsProtocol { + func userWantsToRemoveParticipant(uuidForCallKit: UUID, participantToRemove: ObvCryptoId) async throws {} + func userWantsToAddParticipantsToExistingCall(uuidForCallKit: UUID, participantsToAdd: Set) async throws {} + func userWantsToSetMuteSelf(uuidForCallKit: UUID, muted: Bool) async throws {} + func userWantsToEndOngoingCall(uuidForCallKit: UUID) async throws {} + func userAcceptedIncomingCall(uuidForCallKit: UUID) async {} + func userRejectedIncomingCall(uuidForCallKit: UUID) async {} + func userWantsToAddParticipantToCall() {} + func userWantsToMuteSelf() {} + } + + + private final class NavigationActionsForPreviews: OlvidCallViewNavigationActionsProtocol { + func userWantsToAddParticipantToCall(ownedCryptoId: ObvTypes.ObvCryptoId, currentOtherParticipants: Set) async -> Set { + return Set([]) + } + } + + private static let actions = ActionsForPreviews() + private static let navigationActions = NavigationActionsForPreviews() + + + static var previews: some View { + OlvidCallView(model: model, actions: actions, navigationActions: navigationActions) + .environment(\.locale, .init(identifier: "fr")) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/OlvidCallViewController.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/OlvidCallViewController.swift new file mode 100644 index 00000000..f3985037 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/OlvidCallViewController.swift @@ -0,0 +1,120 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI +import UIKit +import ObvTypes +import ObvUICoreData + + +final class OlvidCallViewController: UIHostingController> { + + private var continuationWhenPresentingMultipleContactsViewController: CheckedContinuation, Never>? + + struct Model { + let call: OlvidCall + let manager: OlvidCallManager + } + + init(model: Model) { + let navigationActions = OlvidCallViewNavigationActions() + let view = OlvidCallView(model: model.call, actions: model.manager, navigationActions: navigationActions) + super.init(rootView: view) + navigationActions.delegate = self + } + + deinit { + debugPrint("deinit OlvidCallViewController") + } + + @MainActor required dynamic init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + +} + + +// MARK: - Implementing OlvidCallViewNavigationActionsProtocol + +extension OlvidCallViewController: OlvidCallViewNavigationActionsProtocol { + + @MainActor + func userWantsToAddParticipantToCall(ownedCryptoId: ObvCryptoId, currentOtherParticipants: Set) async -> Set { + + return await withCheckedContinuation { (continuation: CheckedContinuation, Never>) in + + continuationWhenPresentingMultipleContactsViewController = continuation + + let vc = MultipleContactsViewController( + ownedCryptoId: ownedCryptoId, + mode: .excluded(from: currentOtherParticipants, oneToOneStatus: .any, requiredCapabilitites: nil), + button: .floating(title: NSLocalizedString("ADD_SELECTED_CONTACTS_TO_CALL", comment: ""), systemIcon: .phoneFill), + disableContactsWithoutDevice: true, + allowMultipleSelection: true, + showExplanation: false, + allowEmptySetOfContacts: false, + textAboveContactList: NSLocalizedString("SELECT_NEW_CALL_PARTICIPANTS", comment: "")) { [weak self] selectedContacts in + self?.presentedViewController?.dismiss(animated: true) + self?.continuationWhenPresentingMultipleContactsViewController = nil + continuation.resume(returning: Set(selectedContacts.map({ $0.cryptoId }))) + } dismissAction: { [weak self] in + self?.presentedViewController?.dismiss(animated: true) + self?.continuationWhenPresentingMultipleContactsViewController = nil + continuation.resume(returning: Set([])) + } + + let nav = UINavigationController(rootViewController: vc) + + nav.presentationController?.delegate = self + + self.present(nav, animated: true) + + } + + } + +} + + +// MARK: - UIAdaptivePresentationControllerDelegate + +extension OlvidCallViewController: UIAdaptivePresentationControllerDelegate { + + /// This `UIAdaptivePresentationControllerDelegate` delegate gets called when the user dismisses the presented `MultipleContactsViewController` manually. + public func presentationControllerDidDismiss(_ presentationController: UIPresentationController) { + guard let continuation = self.continuationWhenPresentingMultipleContactsViewController else { return } + self.continuationWhenPresentingMultipleContactsViewController = nil + continuation.resume(returning: Set([])) + } + +} + +// MARK: - OlvidCallViewNavigationActions + +private final class OlvidCallViewNavigationActions: OlvidCallViewNavigationActionsProtocol { + + weak var delegate: OlvidCallViewNavigationActionsProtocol? + + func userWantsToAddParticipantToCall(ownedCryptoId: ObvCryptoId, currentOtherParticipants: Set) async -> Set { + guard let delegate else { assertionFailure(); return Set([])} + return await delegate.userWantsToAddParticipantToCall(ownedCryptoId: ownedCryptoId, currentOtherParticipants: currentOtherParticipants) + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/ViewModelsImplementation/OlvidCall+OlvidCallViewModelProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/ViewModelsImplementation/OlvidCall+OlvidCallViewModelProtocol.swift new file mode 100644 index 00000000..0b838494 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/ViewModelsImplementation/OlvidCall+OlvidCallViewModelProtocol.swift @@ -0,0 +1,51 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation + + +extension OlvidCall: OlvidCallViewModelProtocol { + + var localUserStillNeedsToAcceptOrRejectIncomingCall: Bool { + switch direction { + case .outgoing: + return false + case .incoming: + switch self.state { + case .initial: + return true + case .userAnsweredIncomingCall, + .gettingTurnCredentials, + .initializingCall, + .callInProgress, + .hangedUp, + .ringing, + .kicked, + .callRejected, + .unanswered, + .outgoingCallIsConnecting, + .reconnecting, + .answeredOnAnotherDevice: + return false + } + } + + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/ViewModelsImplementation/OlvidCallManager+OlvidCallViewActionsProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/ViewModelsImplementation/OlvidCallManager+OlvidCallViewActionsProtocol.swift new file mode 100644 index 00000000..875e67f2 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/ViewModelsImplementation/OlvidCallManager+OlvidCallViewActionsProtocol.swift @@ -0,0 +1,27 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import os.log +import CallKit +import WebRTC + + +/// We declare the conformance of the `OlvidCallManager` to the `OlvidCallViewActionsProtocol` used at the UI level. All methods are implemented in the `OlvidCallManager` file itself. +extension OlvidCallManager: OlvidCallViewActionsProtocol {} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/ViewModelsImplementation/OlvidCallParticipant+OlvidCallParticipantViewModelProtocol.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/ViewModelsImplementation/OlvidCallParticipant+OlvidCallParticipantViewModelProtocol.swift new file mode 100644 index 00000000..32fa2c83 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/UI/ViewModelsImplementation/OlvidCallParticipant+OlvidCallParticipantViewModelProtocol.swift @@ -0,0 +1,69 @@ +/* + * Olvid for iOS + * Copyright © 2019-2023 Olvid SAS + * + * This file is part of Olvid for iOS. + * + * Olvid is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * Olvid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Olvid. If not, see . + */ + +import Foundation +import SwiftUI +import ObvTypes +import UI_ObvCircledInitials +import ObvUICoreData + + +// MARK: - Implementing OlvidCallParticipantViewModelProtocol (for the UI) + +extension OlvidCallParticipant: OlvidCallParticipantViewModelProtocol { + + var stateLocalizedDescription: String { + return self.state.localizedString + } + + var circledInitialsConfiguration: UI_ObvCircledInitials.CircledInitialsConfiguration { + assert(Thread.isMainThread) + do { + switch self.knownOrUnknown { + case .known(contactObjectID: let contactObjectID): + guard let persistedContact = try PersistedObvContactIdentity.get(objectID: contactObjectID.objectID, within: ObvStack.shared.viewContext) else { + assertionFailure() + return defaultCircledInitialsConfiguration + } + return persistedContact.circledInitialsConfiguration + case .unknown: + // This happens if we are a callee and do not have this participant among our contacts + return defaultCircledInitialsConfiguration + } + } catch { + assertionFailure() + return defaultCircledInitialsConfiguration + } + } + + + private var defaultCircledInitialsConfiguration: UI_ObvCircledInitials.CircledInitialsConfiguration { + if let firstCharacter = self.displayName.trimmingWhitespacesAndNewlines().first { + return .contact(initial: String(firstCharacter), + photo: nil, + showGreenShield: false, + showRedShield: false, + cryptoId: self.cryptoId, + tintAdjustementMode: .normal) + } else { + return .icon(.person) + } + } + +} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallAnswerAndRejectButtonsView.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallAnswerAndRejectButtonsView.swift deleted file mode 100644 index 1212c85b..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallAnswerAndRejectButtonsView.swift +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import SwiftUI - -struct CallAnswerAndRejectButtonsView: View { - var callIsInInitialState: Bool - var actionReject: () -> Void - var actionAccept: () -> Void - var actionAddParticipant: () -> Void - var showAcceptButton: Bool - var showAddParticipantButton: Bool - var body: some View { - HStack { - if showAddParticipantButton { - Spacer() - AddParticipantButtonView(actionAddParticipant: actionAddParticipant) - } - Spacer() - HangupDeclineButtonView(callIsInInitialState: callIsInInitialState, actionReject: actionReject) - Spacer() - if showAcceptButton { - AcceptButtonView(actionAccept: actionAccept) - Spacer() - } - } - } -} - - - -struct CallAnswerAndRejectButtonsView_Previews: PreviewProvider { - static var previews: some View { - Group { - CallAnswerAndRejectButtonsView(callIsInInitialState: true, actionReject: {}, actionAccept: {}, actionAddParticipant: {}, showAcceptButton: true, showAddParticipantButton: false) - .padding() - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .light) - .previewDisplayName("Static example in light mode") - CallAnswerAndRejectButtonsView(callIsInInitialState: true, actionReject: {}, actionAccept: {}, actionAddParticipant: {}, showAcceptButton: true, showAddParticipantButton: false) - .padding() - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .dark) - .previewDisplayName("Static example in dark mode") - CallAnswerAndRejectButtonsView(callIsInInitialState: false, actionReject: {}, actionAccept: {}, actionAddParticipant: {}, showAcceptButton: false, showAddParticipantButton: false) - .padding() - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .dark) - .previewDisplayName("Static example in dark mode") - CallAnswerAndRejectButtonsView(callIsInInitialState: false, actionReject: {}, actionAccept: {}, actionAddParticipant: {}, showAcceptButton: false, showAddParticipantButton: true) - .padding() - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .dark) - .previewDisplayName("Static example in dark mode") - CallAnswerAndRejectButtonsMockView(object: MockObject()) - .padding() - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .dark) - .previewDisplayName("Dynamic example in dark mode") - } - } -} - -fileprivate struct CallAnswerAndRejectButtonsMockView: View { - @ObservedObject var object: MockObject - var body: some View { - CallAnswerAndRejectButtonsView(callIsInInitialState: object.callIsInInitialState, - actionReject: object.actionReject, - actionAccept: object.actionAccept, - actionAddParticipant: object.actionAddParticipant, - showAcceptButton: object.showAcceptButton, - showAddParticipantButton: object.showAddPartcipantButton) - } -} - - -fileprivate class MockObject: ObservableObject { - @Published private(set) var showAcceptButton = true - @Published private(set) var showAddPartcipantButton = false - @Published private(set) var callIsInInitialState: Bool = true - func actionReject() { - withAnimation { callIsInInitialState.toggle(); showAcceptButton.toggle() } - } - func actionAccept() { - withAnimation { callIsInInitialState.toggle(); showAcceptButton.toggle() } - } - func actionAddParticipant() { } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallButtonsViews.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallButtonsViews.swift deleted file mode 100644 index c4265a1d..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallButtonsViews.swift +++ /dev/null @@ -1,254 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import SwiftUI - -struct MuteButtonView: View { - - var actionToggleAudio: () -> Void - var isMuted: Bool - - var body: some View { - RoundedButtonView(icon: isMuted ? .sf("mic.slash.fill") : .sf("mic.fill"), - text: nil, // "mute", - backgroundColor: Color(.systemFill), - backgroundColorWhenOn: Color.red, - isOn: isMuted, - action: actionToggleAudio) - .buttonStyle(CallSettingButtonStyle()) - } - -} - - -struct AudioButtonView: View { - - let audioInputs: [AudioInput] - let showAudioAction: () -> Void - let audioIcon: AudioInputIcon - - var body: some View { - if audioInputs.count == 2 { - RoundedButtonView(icon: .sf("speaker.3.fill"), - text: nil, // CommonString.Word.Speaker, - backgroundColor: Color(.systemFill), - backgroundColorWhenOn: Color(AppTheme.shared.colorScheme.olvidLight), - isOn: audioInputs.first(where: { $0.isCurrent })?.isSpeaker ?? false, - action: { audioInputs.first(where: { !$0.isCurrent })?.activate() }) - .buttonStyle(CallSettingButtonStyle()) - } else if #available(iOS 14.0, *) { - UIButtonWrapper(title: nil, actions: audioInputs.map { $0.toAction }) { - RoundedButtonView(icon: audioIcon, - text: nil, // "audio", - backgroundColor: Color(.systemFill), - backgroundColorWhenOn: Color(AppTheme.shared.colorScheme.olvidLight), - isOn: false, - action: { }) - } - .frame(width: 60, height: 60) - .buttonStyle(CallSettingButtonStyle()) - } else { - RoundedButtonView(icon: audioIcon, - text: nil, // "audio", - backgroundColor: Color(.systemFill), - backgroundColorWhenOn: Color(AppTheme.shared.colorScheme.olvidLight), - isOn: false, - action: showAudioAction) - .buttonStyle(CallSettingButtonStyle()) - } - - } -} - - -struct DiscussionButtonView: View { - - var actionDiscussions: () -> Void - var discussionsIsOn: Bool - - var body: some View { - RoundedButtonView(icon: .sf("bubble.left.fill"), - text: nil, // "discussions", - backgroundColor: Color(.systemFill), - backgroundColorWhenOn: Color(AppTheme.shared.colorScheme.olvidLight), - isOn: discussionsIsOn, - action: actionDiscussions) - .buttonStyle(CallSettingButtonStyle()) - } -} - - -struct AddParticipantButtonView: View { - - var actionAddParticipant: () -> Void - - var body: some View { - RoundedButtonView(icon: .sf("plus"), - text: nil, // "Add Participant", - backgroundColor: Color(.systemFill), - backgroundColorWhenOn: Color(AppTheme.shared.colorScheme.olvidLight), - isOn: false, - action: actionAddParticipant) - .transition(.opacity) - - } -} - - -struct HangupDeclineButtonView: View { - - var callIsInInitialState: Bool // True iff callState == .initial - var actionReject: () -> Void - - var body: some View { - if callIsInInitialState { - RoundedButtonView(icon: .sf("xmark"), - text: nil, // "Decline", - backgroundColor: Color.red, - backgroundColorWhenOn: Color.red, - isOn: false, - action: actionReject) - } else { - RoundedButtonView(icon: .sf("phone.down.fill"), - text: nil, // "Hangup", - backgroundColor: Color.red, - backgroundColorWhenOn: Color.red, - isOn: false, - action: actionReject) - } - - } - -} - - -struct AcceptButtonView: View { - - var actionAccept: () -> Void - - var body: some View { - RoundedButtonView(icon: .sf("checkmark"), - text: nil, // "Accept", - backgroundColor: Color(AppTheme.shared.colorScheme.olvidLight), - backgroundColorWhenOn: Color(AppTheme.shared.colorScheme.olvidLight), - isOn: false, - action: actionAccept) - .transition(.opacity) - } -} - - -struct CallSettingsButtonsView: View { - - var actionToggleAudio: () -> Void - var isMuted: Bool - - let audioInputs: [AudioInput] - let showAudioAction: () -> Void - let audioIcon: AudioInputIcon - - var actionDiscussions: () -> Void - var discussionsIsOn: Bool - - var body: some View { - HStack { - MuteButtonView(actionToggleAudio: actionToggleAudio, isMuted: isMuted) - AudioButtonView(audioInputs: audioInputs, showAudioAction: showAudioAction, audioIcon: audioIcon) - DiscussionButtonView(actionDiscussions: actionDiscussions, discussionsIsOn: discussionsIsOn) - } - } - -} - - - -struct CallSettingsButtonsView_Previews: PreviewProvider { - static var previews: some View { - Group { - CallSettingsButtonsView(actionToggleAudio: {}, - isMuted: true, - audioInputs: [], - showAudioAction: {}, - audioIcon: .sf("speaker.3.fill"), - actionDiscussions: {}, - discussionsIsOn: false) - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .light) - .previewDisplayName("Static example in light mode") - CallSettingsButtonsView(actionToggleAudio: {}, - isMuted: true, audioInputs: [], - showAudioAction: {}, - audioIcon: .sf("speaker.3.fill"), - actionDiscussions: {}, - discussionsIsOn: false) - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .dark) - .previewDisplayName("Static example in dark mode") - CallSettingsButtonsMockView(object: MockObject()) - .padding() - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .light) - .previewDisplayName("Dynamic example in light mode") - CallSettingsButtonsMockView(object: MockObject()) - .padding() - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .dark) - .previewDisplayName("Dynamic example in dark mode") - } - } -} - - - -fileprivate struct CallSettingsButtonsMockView: View { - - @ObservedObject var object: MockObject - - var body: some View { - CallSettingsButtonsView(actionToggleAudio: object.actionToggleAudio, - isMuted: object.isMuted, - audioInputs: [], - showAudioAction: object.showAudioAction, - audioIcon: object.audioIcon, - actionDiscussions: object.actionDiscussions, - discussionsIsOn: object.discussionsIsOn) - } - -} - - - -fileprivate class MockObject: ObservableObject { - @Published private(set) var isMuted: Bool = true - func actionToggleAudio() { - isMuted.toggle() - } - func showAudioAction() { - } - @Published private(set) var discussionsIsOn: Bool = false - func actionDiscussions() { - discussionsIsOn.toggle() - } - @State var audioIcon: AudioInputIcon = .sf("speaker.3.fill") -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallView.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallView.swift deleted file mode 100644 index cfbcc59a..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/CallView.swift +++ /dev/null @@ -1,757 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import SwiftUI -import AVKit -import ObvTypes -import CoreData -import os.log -import ObvUICoreData - - -@MainActor -final class ObservableCallWrapper: ObservableObject { - - private let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: String(describing: ObservableCallWrapper.self)) - - let call: GenericCall - private var tokens: [NSObjectProtocol] = [] - - var isOutgoingCall: Bool { call.direction == .outgoing } - - @Published var callParticipantDatas = Set() - @Published var isCallIsAnswered: Bool = false - @Published var initialParticipantCount: Int? - @Published var startTimestamp: Date? - @Published var isMuted = false - @Published var callIsInInitialState: Bool = true - @Published var audioIcon: AudioInputIcon = .sf("iphone") - @Published var audioInputs: [AudioInput] = ObvAudioSessionUtils.shared.getAllInputs() - @Published var callHeadline: String - - private var selectedGroupMembers = Set() - - nonisolated func actionReject() { - call.userRequestedToEndCall() - } - - - nonisolated func actionAccept() { - Task { - await call.userRequestedToAnswerCall() - } - } - - - nonisolated func actionAddParticipant(_ selectedContacts: Set) { - assert(Thread.isMainThread) - for contact in selectedContacts { - assert(contact.managedObjectContext == ObvStack.shared.viewContext) - } - let contactIds: [OlvidUserId] = selectedContacts.compactMap { persistedContact in - guard let ownCryptoId = persistedContact.ownedIdentity?.cryptoId else { return nil } - return OlvidUserId.known(contactObjectID: persistedContact.typedObjectID, - ownCryptoId: ownCryptoId, - remoteCryptoId: persistedContact.cryptoId, - displayName: persistedContact.fullDisplayName) - } - VoIPNotification.userWantsToAddParticipants(call: call, contactIds: contactIds) - .postOnDispatchQueue() - } - - - nonisolated func actionKick(_ callParticipant: CallParticipant) { - VoIPNotification.userWantsToKickParticipant(call: call, callParticipant: callParticipant) - .postOnDispatchQueue() - } - - - nonisolated func actionToggleAudio() { - Task { - await call.userRequestedToToggleAudio() - } - } - - - nonisolated func actionDiscussions() { - VoIPNotification.hideCallView.postOnDispatchQueue() - } - - - init(call: GenericCall) { - self.call = call - self.callHeadline = "" - self.tokens.append(contentsOf: [ - VoIPNotification.observeCallHasBeenUpdated { (callUUID, updateKind) in - Task { [weak self] in await self?.processCallHasBeenUpdated(callUUID: callUUID, updateKind: updateKind) } - }, - VoIPNotification.observeCallParticipantHasBeenUpdated(queue: OperationQueue.main) { [weak self] (updatedParticipant, updateKind) in - Task { [weak self] in - assert(Thread.isMainThread) - guard let callParticipant = self?.callParticipantDatas.first(where: { $0.id == updatedParticipant.uuid}) else { return } - await callParticipant.update() - await self?.update() - } - }, - NotificationCenter.default.addObserver(forName: AVAudioSession.routeChangeNotification, object: nil, queue: nil) { _ in - Task { [weak self] in await self?.update() } - }, - ]) - Task { [weak self] in - await self?.updateCallParticipants() - await self?.update() - } - } - - deinit { - tokens.forEach { NotificationCenter.default.removeObserver($0) } - } - - - private func processCallHasBeenUpdated(callUUID: UUID, updateKind: CallUpdateKind) async { - assert(Thread.isMainThread) - guard callUUID == call.uuid else { return } - switch updateKind { - case .state, .mute: - break - case .callParticipantChange: - await updateCallParticipants() - } - await update() - } - - - private func updateCallParticipants() async { - - let callParticipants = await call.getCallParticipants() - let newParticipantDatas = await withTaskGroup(of: CallParticipantData.self, returning: Set.self) { taskGroup in - for callParticipant in callParticipants { - taskGroup.addTask { - return await CallParticipantData(callParticipant: callParticipant, startTimestamp: self.startTimestamp) - } - } - var collected = Set() - for await value in taskGroup { - collected.insert(value) - } - return collected - } - - let callParticipantsToInsert = newParticipantDatas.subtracting(self.callParticipantDatas) - let callParticipantsToRemove = self.callParticipantDatas.subtracting(newParticipantDatas) - - for participant in callParticipantsToInsert { - withAnimation { - _ = self.callParticipantDatas.insert(participant) - } - } - - for participant in callParticipantsToRemove { - withAnimation { - _ = self.callParticipantDatas.remove(participant) - } - } - - - - } - - - private func update() async { - assert(Thread.isMainThread) - // Update isCallIsAnswered - switch call.direction { - case .incoming: - switch await call.state { - case .initial, .ringing: - /// We never show the answerCallButton when we use call kit - isCallIsAnswered = call.usesCallKit - initialParticipantCount = call.initialParticipantCount - - default: - isCallIsAnswered = true - } - case .outgoing: - isCallIsAnswered = true - } - // Update the startTimestamp - - if self.startTimestamp == nil, let start = await call.getStateDates()[.callInProgress] { - self.startTimestamp = start - for participant in callParticipantDatas { - participant.startTimestamp = start - } - } - // Update muteIsOn - Task { - let isMuted = await call.isMuted - DispatchQueue.main.async { - self.isMuted = isMuted - } - } - // Update state - let callState = await call.state - callIsInInitialState = callState == .initial - - // Update the call headline - if callState != .callInProgress { - callHeadline = callState.localizedString - } else { - // If we reach this point, the call is not a group call and it is in progess. - // We always display the call state, unless the (only) participant is connecting or reconnecting - if let singleParticipantState = callParticipantDatas.first?.state, [PeerState.connectingToPeer, PeerState.reconnecting].contains(singleParticipantState) { - callHeadline = singleParticipantState.localizedString - } else { - callHeadline = callState.localizedString - } - } - - audioInputs = ObvAudioSessionUtils.shared.getAllInputs() - - // Update current route - if let currentInput = ObvAudioSessionUtils.shared.getCurrentAudioInput() { - self.audioIcon = currentInput.icon - } else { - self.audioIcon = .sf("iphone") - } - } - -} - -struct CallView: View { - - @ObservedObject var wrappedCall: ObservableCallWrapper - - private var sortedCallParticipantDatas: [CallParticipantData] { - wrappedCall.callParticipantDatas.sorted { - $0.name < $1.name - } - } - - var body: some View { - InnerCallView(callParticipantDatas: sortedCallParticipantDatas, - isOutgoingCall: wrappedCall.isOutgoingCall, - startTimestamp: wrappedCall.startTimestamp, - isMuted: wrappedCall.isMuted, - audioIcon: wrappedCall.audioIcon, - audioInputs: wrappedCall.audioInputs, - discussionsIsOn: false, - isCallIsAnswered: wrappedCall.isCallIsAnswered, - initialParticipantCount: wrappedCall.initialParticipantCount, - callIsInInitialState: wrappedCall.callIsInInitialState, - callHeadline: wrappedCall.callHeadline, - - actionToggleAudio: wrappedCall.actionToggleAudio, - actionDiscussions: wrappedCall.actionDiscussions, - actionReject: wrappedCall.actionReject, - actionAccept: wrappedCall.actionAccept, - actionAddParticipant: wrappedCall.actionAddParticipant, - actionKick: wrappedCall.actionKick) - } - -} - -struct CounterView: View { - - let startTimestamp: Date? - - init(startTimestamp: Date?) { - self.startTimestamp = startTimestamp - refreshCounter() - } - - @State private var counter: TimeInterval? - private var timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect() - - private func refreshCounter() { - if let st = self.startTimestamp { - self.counter = Date().timeIntervalSince(st) - } - } - - private let formatter: DateComponentsFormatter = { - let f = DateComponentsFormatter() - f.unitsStyle = .abbreviated // Or .short or .abbreviated - f.allowedUnits = [.second, .minute, .hour] - return f - }() - - private func makeCounterString() -> String { - var res = "Olvid Audio" - if let counter = self.counter, - let formattedCounter = formatter.string(from: counter) { - res = [res, formattedCounter].joined(separator: " - ") - } - return res - } - - var body: some View { - HStack { - Image("badge") - .resizable() - .aspectRatio(contentMode: .fill) - .frame(width: 20, height: 20) - Text(makeCounterString()) - .onReceive(timer) { (_) in - refreshCounter() - } - .font(.callout) - .foregroundColor(Color(.secondaryLabel)) - } - } -} - -fileprivate struct InnerCallView: View { - - let callParticipantDatas: [CallParticipantData] - let isOutgoingCall: Bool - let startTimestamp: Date? - let isMuted: Bool - let audioIcon: AudioInputIcon - let audioInputs: [AudioInput] - let discussionsIsOn: Bool - let isCallIsAnswered: Bool - let initialParticipantCount: Int? - let callIsInInitialState: Bool - let callHeadline: String - - let actionToggleAudio: () -> Void - let actionDiscussions: () -> Void - let actionReject: () -> Void - let actionAccept: () -> Void - let actionAddParticipant: (_ selectedContacts: Set) -> Void - let actionKick: (_ callParticipant: CallParticipant) -> Void - - var isGroupCall: Bool { callParticipantDatas.count > 1 } - var showAddParticipantButton: Bool { isOutgoingCall } - var showAcceptButton: Bool { !isCallIsAnswered } - var ownedIdentity: ObvCryptoId? { - let ids = callParticipantDatas.compactMap { $0.callParticipant?.ownedIdentity } - return ids.first - } - var imagesOnTheLeft: Bool { - isGroupCall || verticalSizeClass == .compact - } - - @State private var showAddParticipantView = false - @State private var showAudioActionSheet = false - - @Environment(\.verticalSizeClass) var verticalSizeClass - - private func getSpeakerActionSheetButtons() -> [ActionSheet.Button] { - var buttons: [ActionSheet.Button] = audioInputs.map({ - let label = $0.label + ($0.isCurrent ? " ✔︎" : "") - return Alert.Button.default(Text(label), action: $0.activate) - }) - buttons.append(Alert.Button.cancel({ showAudioActionSheet = false })) - return buttons - } - - func participantView(_ data: CallParticipantData) -> ParticipantView { - ParticipantView( - callParticipantData: data, - isOutgoingCall: isOutgoingCall, - isGroupCall: isGroupCall, - isCallIsAnswered: isCallIsAnswered, - imagesOnTheLeft: imagesOnTheLeft, - initialParticipantCount: initialParticipantCount, - actionKick: actionKick) - } - - struct CallButton: Identifiable { - var id = UUID() - var view: AnyView - var bottom: Bool - - init(_ view: AnyView, bottom: Bool) { - self.view = view - self.bottom = bottom - } - } - - var buttons: [CallButton] { - var result = [CallButton]() - - if !showAcceptButton { - if showAddParticipantButton { - result += [CallButton(AnyView(AddParticipantButtonView(actionAddParticipant: { - showAddParticipantView.toggle() })), - bottom: false)] - } - - result += [CallButton(AnyView(MuteButtonView(actionToggleAudio: actionToggleAudio, - isMuted: isMuted)), - bottom: true)] - - result += [CallButton(AnyView(AudioButtonView(audioInputs: audioInputs, - showAudioAction: { - showAudioActionSheet.toggle() - }, - audioIcon: audioIcon) - .actionSheet(isPresented: $showAudioActionSheet, content: { - ActionSheet(title: Text("CHOOSE_PREFERRED_AUDIO_SOURCE"), message: nil, buttons: getSpeakerActionSheetButtons()) - })), - bottom: true)] - - result += [CallButton(AnyView(DiscussionButtonView(actionDiscussions: actionDiscussions, - discussionsIsOn: discussionsIsOn)), - bottom: true)] - - } - - result += [CallButton(AnyView(HangupDeclineButtonView(callIsInInitialState: callIsInInitialState, actionReject: actionReject)), - bottom: true)] - - if showAcceptButton { - result += [CallButton(AnyView(AcceptButtonView(actionAccept: actionAccept)), - bottom: true)] - } - - return result - } - - - - var body: some View { - ZStack { - Color(.systemBackground) - .edgesIgnoringSafeArea(.all) - VStack(alignment: .leading) { - if callParticipantDatas.count == 1, - let participantData = callParticipantDatas.first { - participantView(participantData) - if !imagesOnTheLeft { - Spacer() - HStack { - Spacer() - participantData.profilePictureView(customCircleDiameter: 150.0) - Spacer() - } - } - } else { - ScrollView { - ForEach(callParticipantDatas) { participantData in - participantView(participantData) - } - } - } - Spacer() - HStack { - Spacer() - VStack { - if isGroupCall { - CounterView(startTimestamp: startTimestamp) - } else { - Text(callHeadline) - .font(Font.headline.smallCaps()) - .foregroundColor(Color(.tertiaryLabel)) - } - } - Spacer() - } - Spacer() - if verticalSizeClass != .compact && showAddParticipantButton { - HStack(alignment: .center) { - Spacer() - ForEach(buttons.filter({ !$0.bottom })) { button in - button.view - .padding([.bottom]) - Spacer() - } - } - } - HStack(alignment: .center) { - Spacer() - ForEach(buttons.filter({ $0.bottom || verticalSizeClass == .compact })) { button in - button.view - .padding([.bottom]) - Spacer() - } - } - } - } - .sheet(isPresented: $showAddParticipantView) { - let contactsToExclude = Set(callParticipantDatas.compactMap { $0.callParticipant?.remoteCryptoId }) - // We allow to call any contact (even non OneToOne) when this is done via a group discussion. - let mode = MultipleContactsMode.excluded(from: contactsToExclude, oneToOneStatus: .any, requiredCapabilitites: nil) - MultipleContactsView(ownedCryptoId: ownedIdentity, - mode: mode, - button: .floating(title: CommonString.Word.Call, systemIcon: .phoneFill), - disableContactsWithoutDevice: true, - allowMultipleSelection: true, - showExplanation: false, - allowEmptySetOfContacts: false, - textAboveContactList: nil) { selectedContacts in - actionAddParticipant(selectedContacts) - showAddParticipantView = false - } dismissAction: { - showAddParticipantView = false - } - } - } - -} - - -final class CallParticipantData: ObservableObject, Identifiable, Equatable, Hashable { - - static func == (lhs: CallParticipantData, rhs: CallParticipantData) -> Bool { - return lhs.callParticipant?.uuid == rhs.callParticipant?.uuid - } - - var callParticipant: CallParticipant? - var id: UUID - @Published var name: String - @Published var photoURL: URL? - @Published var isMuted = false - @Published var state: PeerState - @Published var startTimestamp: Date? - - /// For preview purposes - fileprivate init(name: String, isMuted: Bool, state: PeerState) { - self.callParticipant = nil - self.id = UUID() - self.name = name - self.isMuted = isMuted - self.state = state - self.startTimestamp = Date() - } - - @MainActor - init(callParticipant: CallParticipant, startTimestamp: Date?) async { - assert(Thread.isMainThread) - self.callParticipant = callParticipant - self.id = callParticipant.uuid - self.startTimestamp = startTimestamp - self.name = callParticipant.displayName - self.isMuted = await callParticipant.getContactIsMuted() - self.state = await callParticipant.getPeerState() - self.photoURL = callParticipant.photoURL - } - - @MainActor - func update() async { - assert(Thread.isMainThread) - guard let callParticipant = callParticipant else { return } - self.name = callParticipant.displayName - self.isMuted = await callParticipant.getContactIsMuted() - self.state = await callParticipant.getPeerState() - debugPrint("☎️ ****** CHANGED INTERFACE PARTICIPANT STATE TO \(self.state.debugDescription)") - self.photoURL = callParticipant.photoURL - } - - var circledTextView: Text? { - if let char = name.first { - return Text(String(char)) - } else { - return nil - } - } - - var uiImage: UIImage? { - guard let photoURL = photoURL else { return nil } - return UIImage(contentsOfFile: photoURL.path) - } - - - func profilePictureView(customCircleDiameter: CGFloat? = nil) -> ProfilePictureView { - ProfilePictureView(profilePicture: uiImage, - circleBackgroundColor: callParticipant?.identityColors?.background, - circleTextColor: callParticipant?.identityColors?.text, - circledTextView: circledTextView, - systemImage: .person, - showGreenShield: false, - showRedShield: false, - customCircleDiameter: customCircleDiameter) - } - - func hash(into hasher: inout Hasher) { - hasher.combine(self.id) - } - -} - -struct ParticipantView: View { - - @ObservedObject var callParticipantData: CallParticipantData - - var isOutgoingCall: Bool - var isGroupCall: Bool - var isCallIsAnswered: Bool - var imagesOnTheLeft: Bool - var initialParticipantCount: Int? - var actionKick: (_ callParticipant: CallParticipant) -> Void - - @State private var showingKickConfirmationActionSheet: Bool = false - - var participantName: String { - var result = callParticipantData.name - if !isCallIsAnswered, - let initialParticipantCount = initialParticipantCount, - initialParticipantCount > 1 { - result += " + \(initialParticipantCount - 1)" - } - return result - } - - var body: some View { - HStack { - if imagesOnTheLeft { - Button(action: { - guard let contactObjectID = callParticipantData.callParticipant?.userId.contactObjectID else { return } - ObvStack.shared.viewContext.perform { - guard let persistedContact = try? PersistedObvContactIdentity.get(objectID: contactObjectID, within: ObvStack.shared.viewContext) else { return } - guard let discussionPermanentID = persistedContact.oneToOneDiscussion?.discussionPermanentID else { assertionFailure(); return } - guard let ownedCryptoId = persistedContact.ownedIdentity?.cryptoId else { assertionFailure(); return } - let deepLink = ObvDeepLink.singleDiscussion(ownedCryptoId: ownedCryptoId, objectPermanentID: discussionPermanentID) - ObvMessengerInternalNotification.userWantsToNavigateToDeepLink(deepLink: deepLink) - .postOnDispatchQueue() - return - } - }) { - callParticipantData.profilePictureView() - } - } - VStack(alignment: .leading) { - Text(participantName) - .font(imagesOnTheLeft ? .title : .largeTitle) - .fontWeight(.heavy) - .padding(.bottom, -4.0) - .lineLimit(1) - .foregroundColor(Color(.label)) - .overlay(callParticipantData.isMuted ? AnyView(MutedBadgeView().offset(x: MutedBadgeView.size / 2, y: -0)) : AnyView(EmptyView()), alignment: Alignment(horizontal: .trailing, vertical: .top)) - if isGroupCall { - Text(callParticipantData.state.localizedString) - .font(.callout) - .foregroundColor(Color(.tertiaryLabel)) - } else { - CounterView(startTimestamp: callParticipantData.startTimestamp) - } - } - Spacer() - if isOutgoingCall && isGroupCall { - RoundedButtonView(size: 30, - icon: .sf("minus"), - text: nil, - backgroundColor: Color(.red), - backgroundColorWhenOn: Color(.red), - isOn: false, - action: { - showingKickConfirmationActionSheet = true - }) - } - } - .padding(.top, 16) - .padding([.leading, .trailing], 24) - .actionSheet(isPresented: $showingKickConfirmationActionSheet) { - ActionSheet(title: Text("ALERT_TITLE_KICK_PARTICIPANT"), - message: Text("ALERT_MESSAGE_KICK_PARTICIPANT_\(participantName)"), - buttons: [ - .default(Text( CommonString.Word.Exclude)) { - if let callParticipant = callParticipantData.callParticipant { - actionKick(callParticipant) - } - }, - .cancel() - ]) - } - } -} - - - -// MARK: - Previews - - -struct InnerCallView_Previews: PreviewProvider { - - static var logiciansNames = ["Alan Turing", "Kurt Gödel", "David Hilbert", "Stephen Cole Kleene", "Haskell Curry", "Georg Cantor", "Willard Van Orman Quine", "Aristote", "Giuseppe Peano"] - - static var logicians = logiciansNames.map { CallParticipantData(name: $0, isMuted: $0.count % 2 == 0, state: .connected) } - - private static let fakeAudioInputs = [ - AudioInput(label: "Nice speaker", isCurrent: true, icon: .sf("speaker.1.fill"), isSpeaker: true), - AudioInput(label: "Great handset", isCurrent: false, icon: .sf("headphones"), isSpeaker: false), - ] - static var audioIcon: AudioInputIcon = fakeAudioInputs.first!.icon - - static var previews: some View { - Group { - InnerCallView(callParticipantDatas: [CallParticipantData(name: "Alan Turing", isMuted: true, state: .connected)], - isOutgoingCall: true, - startTimestamp: Date(), - isMuted: true, - audioIcon: audioIcon, - audioInputs: fakeAudioInputs, - discussionsIsOn: false, - isCallIsAnswered: true, - initialParticipantCount: nil, - callIsInInitialState: false, - callHeadline: CallState.callInProgress.localizedString, - - actionToggleAudio: {}, - actionDiscussions: {}, - actionReject: {}, - actionAccept: {}, - actionAddParticipant: {_ in}, - actionKick: { _ in }) - .environment(\.colorScheme, .dark) - - InnerCallView(callParticipantDatas: logicians, - isOutgoingCall: true, - startTimestamp: Date(), - isMuted: true, - audioIcon: audioIcon, - audioInputs: fakeAudioInputs, - discussionsIsOn: false, - isCallIsAnswered: true, - initialParticipantCount: nil, - callIsInInitialState: false, - callHeadline: CallState.callInProgress.localizedString, - - actionToggleAudio: {}, - actionDiscussions: {}, - actionReject: {}, - actionAccept: {}, - actionAddParticipant: {_ in}, - actionKick: { _ in }) - .environment(\.colorScheme, .light) - - InnerCallView(callParticipantDatas: logicians, - isOutgoingCall: false, - startTimestamp: Date(), - isMuted: true, - audioIcon: audioIcon, - audioInputs: fakeAudioInputs, - discussionsIsOn: false, - isCallIsAnswered: true, - initialParticipantCount: nil, - callIsInInitialState: false, - callHeadline: CallState.callInProgress.localizedString, - - actionToggleAudio: {}, - actionDiscussions: {}, - actionReject: {}, - actionAccept: {}, - actionAddParticipant: {_ in}, - actionKick: { _ in }) - .environment(\.colorScheme, .light) - } - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/MutedBadgeView.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/MutedBadgeView.swift deleted file mode 100644 index 12e64f4f..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/MutedBadgeView.swift +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import SwiftUI - -struct MutedBadgeView: View { - static let size: CGFloat = 20.0 - var body: some View { - Circle() - .fill(Color.red) - .frame(width: MutedBadgeView.size, height: MutedBadgeView.size) - .overlay(Image(systemName: "mic.slash.fill") - .font(Font.system(size: MutedBadgeView.size*0.4).bold())) - .foregroundColor(.white) - } -} - -struct MutedBadgeView_Previews: PreviewProvider { - static var previews: some View { - Group { - MutedBadgeView() - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .light) - .previewDisplayName("Static example in light mode") - MutedBadgeView() - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .dark) - .previewDisplayName("Static example in dark mode") - } - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/RoundedButtonView.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/RoundedButtonView.swift deleted file mode 100644 index 377ffb6f..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/ViewsAndViewControllers/SwiftUI/RoundedButtonView.swift +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS - * - * This file is part of Olvid for iOS. - * - * Olvid is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * Olvid is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Olvid. If not, see . - */ - -import ObvUI -import SwiftUI - - -struct RoundedButtonView: View { - var size: CGFloat = 60 - let icon: AudioInputIcon - let text: String? - let backgroundColor: Color - let backgroundColorWhenOn: Color - let isOn: Bool - let action: () -> Void - - var body: some View { - VStack { - switch icon { - case .sf(let systemName): - Button(action: action) { - Circle() - .fill(isOn ? backgroundColorWhenOn : backgroundColor) - .frame(width: size, height: size) - .overlay(Image(systemName: systemName) - .font(Font.system(size: size*0.4).bold())) - .foregroundColor(.white) - } - case .png(let name): - Button(action: action) { - Circle() - .fill(isOn ? backgroundColorWhenOn : backgroundColor) - .frame(width: size, height: size) - .overlay( - Image(name) - .renderingMode(.template) - .resizable() - .foregroundColor(.white) - .frame(width: size * 0.5, height: size * 0.5) - ) - .foregroundColor(.white) - } - } - if let text = text { - Text(text) - .font(.footnote) - .foregroundColor(Color(.secondaryLabel)) - } - } - } -} - - -struct CallSettingButtonStyle: PrimitiveButtonStyle { - - func makeBody(configuration: Configuration) -> some View { - configuration - .label - .gesture(TapGesture().onEnded({ _ in configuration.trigger() })) - .animation(.easeInOut(duration: 0.2)) - } - -} - - -// MARK: - Previews - -struct RoundedButtonView_Previews: PreviewProvider { - - fileprivate static let mockObject = MockObject() - - static var previews: some View { - Group { - HStack { - RoundedButtonView(icon: .sf("mic.slash.fill"), - text: "mute", - backgroundColor: Color(.systemFill), - backgroundColorWhenOn: Color(.systemFill), - isOn: false, - action: defaultAction) - .padding() - RoundedButtonView(icon: .sf("mic.slash.fill"), - text: "mute", - backgroundColor: Color(.systemFill), - backgroundColorWhenOn: Color(AppTheme.shared.colorScheme.olvidLight), - isOn: true, - action: defaultAction) - .padding() - } - .previewLayout(.sizeThatFits) - .previewDisplayName("Static example in light mode") - HStack { - RoundedButtonView(size: 30, - icon: .sf("minus"), - text: nil, - backgroundColor: Color(.red), - backgroundColorWhenOn: Color(.red), - isOn: false, - action: defaultAction) - .padding() - } - .previewLayout(.sizeThatFits) - .previewDisplayName("Static example (2) in light mode") - HStack { - RoundedButtonView(icon: .sf("mic.slash.fill"), - text: "mute", - backgroundColor: Color(.systemFill), - backgroundColorWhenOn: Color(.systemFill), - isOn: false, - action: defaultAction) - .padding() - RoundedButtonView(icon: .sf("mic.slash.fill"), - text: "mute", - backgroundColor: Color(.systemFill), - backgroundColorWhenOn: Color(AppTheme.shared.colorScheme.olvidLight), - isOn: true, - action: defaultAction) - .padding() - } - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .dark) - .previewDisplayName("Static example in dark mode") - RoundedButtonMockView(object: MockObject()) - .buttonStyle(CallSettingButtonStyle()) - .padding() - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .light) - .previewDisplayName("Dynamic example in light mode with call setting style") - RoundedButtonMockView(object: MockObject()) - .buttonStyle(CallSettingButtonStyle()) - .padding() - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .dark) - .previewDisplayName("Dynamic example in dark mode with call setting style") - HStack { - RoundedButtonView(icon: .png("bluetooth"), - text: "audio", - backgroundColor: Color(.systemFill), - backgroundColorWhenOn: Color(.systemFill), - isOn: false, - action: defaultAction) - .padding() - RoundedButtonView(icon: .png("bluetooth"), - text: "audio", - backgroundColor: Color(.systemFill), - backgroundColorWhenOn: Color(AppTheme.shared.colorScheme.olvidLight), - isOn: true, - action: defaultAction) - .padding() - } - .previewLayout(.sizeThatFits) - .background(Color(.systemBackground)) - .environment(\.colorScheme, .dark) - .previewDisplayName("Static bluetooth example in dark mode") - } - } - - private static func defaultAction() { - debugPrint("Button tapped") - } -} - - -fileprivate class MockObject: ObservableObject { - @Published private(set) var isOn: Bool = false - func toggle() { - debugPrint("Toggle!") - isOn.toggle() - } -} - - -fileprivate struct RoundedButtonMockView: View { - @ObservedObject var object: MockObject - var body: some View { - RoundedButtonView(icon: .sf("mic.slash.fill"), - text: object.isOn ? "unmute" : "mute", - backgroundColor: Color(.systemFill), - backgroundColorWhenOn: Color(AppTheme.shared.colorScheme.olvidLight), - isOn: object.isOn, - action: object.toggle) - } -} diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/VoIPNotification/VoIPNotification.swift b/iOSClient/ObvMessenger/ObvMessenger/VoIP/VoIPNotification/VoIPNotification.swift index 188e9cb3..e3530370 100644 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/VoIPNotification/VoIPNotification.swift +++ b/iOSClient/ObvMessenger/ObvMessenger/VoIP/VoIPNotification/VoIPNotification.swift @@ -36,34 +36,26 @@ fileprivate struct OptionalWrapper { } enum VoIPNotification { - case userWantsToKickParticipant(call: GenericCall, callParticipant: CallParticipant) - case userWantsToAddParticipants(call: GenericCall, contactIds: [OlvidUserId]) - case callHasBeenUpdated(callUUID: UUID, updateKind: CallUpdateKind) - case callParticipantHasBeenUpdated(callParticipant: CallParticipant, updateKind: CallParticipantUpdateKind) - case reportCallEvent(callUUID: UUID, callReport: CallReport, groupId: GroupIdentifierBasedOnObjectID?, ownedCryptoId: ObvCryptoId) - case showCallViewControllerForAnsweringNonCallKitIncomingCall(incomingCall: GenericCall) + case reportCallEvent(callUUID: UUID, callReport: CallReport, groupId: GroupIdentifier?, ownedCryptoId: ObvCryptoId) + case newCallToShow(model: OlvidCallViewController.Model) case noMoreCallInProgress + case callWasEnded(uuidForCallKit: UUID) case serverDoesNotSupportCall - case newOutgoingCall(newOutgoingCall: GenericCall) - case newIncomingCall(newIncomingCall: GenericCall) case showCallView case hideCallView - case anIncomingCallShouldBeShownToUser(newIncomingCall: GenericCall) + case newWebRTCMessageToSend(webrtcMessage: WebRTCMessageJSON, contactID: TypeSafeManagedObjectID, forStartingCall: Bool) + case newOwnedWebRTCMessageToSend(ownedCryptoId: ObvCryptoId, webrtcMessage: WebRTCMessageJSON) private enum Name { - case userWantsToKickParticipant - case userWantsToAddParticipants - case callHasBeenUpdated - case callParticipantHasBeenUpdated case reportCallEvent - case showCallViewControllerForAnsweringNonCallKitIncomingCall + case newCallToShow case noMoreCallInProgress + case callWasEnded case serverDoesNotSupportCall - case newOutgoingCall - case newIncomingCall case showCallView case hideCallView - case anIncomingCallShouldBeShownToUser + case newWebRTCMessageToSend + case newOwnedWebRTCMessageToSend private var namePrefix: String { String(describing: VoIPNotification.self) } @@ -76,45 +68,21 @@ enum VoIPNotification { static func forInternalNotification(_ notification: VoIPNotification) -> NSNotification.Name { switch notification { - case .userWantsToKickParticipant: return Name.userWantsToKickParticipant.name - case .userWantsToAddParticipants: return Name.userWantsToAddParticipants.name - case .callHasBeenUpdated: return Name.callHasBeenUpdated.name - case .callParticipantHasBeenUpdated: return Name.callParticipantHasBeenUpdated.name case .reportCallEvent: return Name.reportCallEvent.name - case .showCallViewControllerForAnsweringNonCallKitIncomingCall: return Name.showCallViewControllerForAnsweringNonCallKitIncomingCall.name + case .newCallToShow: return Name.newCallToShow.name case .noMoreCallInProgress: return Name.noMoreCallInProgress.name + case .callWasEnded: return Name.callWasEnded.name case .serverDoesNotSupportCall: return Name.serverDoesNotSupportCall.name - case .newOutgoingCall: return Name.newOutgoingCall.name - case .newIncomingCall: return Name.newIncomingCall.name case .showCallView: return Name.showCallView.name case .hideCallView: return Name.hideCallView.name - case .anIncomingCallShouldBeShownToUser: return Name.anIncomingCallShouldBeShownToUser.name + case .newWebRTCMessageToSend: return Name.newWebRTCMessageToSend.name + case .newOwnedWebRTCMessageToSend: return Name.newOwnedWebRTCMessageToSend.name } } } private var userInfo: [AnyHashable: Any]? { let info: [AnyHashable: Any]? switch self { - case .userWantsToKickParticipant(call: let call, callParticipant: let callParticipant): - info = [ - "call": call, - "callParticipant": callParticipant, - ] - case .userWantsToAddParticipants(call: let call, contactIds: let contactIds): - info = [ - "call": call, - "contactIds": contactIds, - ] - case .callHasBeenUpdated(callUUID: let callUUID, updateKind: let updateKind): - info = [ - "callUUID": callUUID, - "updateKind": updateKind, - ] - case .callParticipantHasBeenUpdated(callParticipant: let callParticipant, updateKind: let updateKind): - info = [ - "callParticipant": callParticipant, - "updateKind": updateKind, - ] case .reportCallEvent(callUUID: let callUUID, callReport: let callReport, groupId: let groupId, ownedCryptoId: let ownedCryptoId): info = [ "callUUID": callUUID, @@ -122,29 +90,32 @@ enum VoIPNotification { "groupId": OptionalWrapper(groupId), "ownedCryptoId": ownedCryptoId, ] - case .showCallViewControllerForAnsweringNonCallKitIncomingCall(incomingCall: let incomingCall): + case .newCallToShow(model: let model): info = [ - "incomingCall": incomingCall, + "model": model, ] case .noMoreCallInProgress: info = nil - case .serverDoesNotSupportCall: - info = nil - case .newOutgoingCall(newOutgoingCall: let newOutgoingCall): - info = [ - "newOutgoingCall": newOutgoingCall, - ] - case .newIncomingCall(newIncomingCall: let newIncomingCall): + case .callWasEnded(uuidForCallKit: let uuidForCallKit): info = [ - "newIncomingCall": newIncomingCall, + "uuidForCallKit": uuidForCallKit, ] + case .serverDoesNotSupportCall: + info = nil case .showCallView: info = nil case .hideCallView: info = nil - case .anIncomingCallShouldBeShownToUser(newIncomingCall: let newIncomingCall): + case .newWebRTCMessageToSend(webrtcMessage: let webrtcMessage, contactID: let contactID, forStartingCall: let forStartingCall): + info = [ + "webrtcMessage": webrtcMessage, + "contactID": contactID, + "forStartingCall": forStartingCall, + ] + case .newOwnedWebRTCMessageToSend(ownedCryptoId: let ownedCryptoId, webrtcMessage: let webrtcMessage): info = [ - "newIncomingCall": newIncomingCall, + "ownedCryptoId": ownedCryptoId, + "webrtcMessage": webrtcMessage, ] } return info @@ -175,59 +146,23 @@ enum VoIPNotification { } } - static func observeUserWantsToKickParticipant(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (GenericCall, CallParticipant) -> Void) -> NSObjectProtocol { - let name = Name.userWantsToKickParticipant.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let call = notification.userInfo!["call"] as! GenericCall - let callParticipant = notification.userInfo!["callParticipant"] as! CallParticipant - block(call, callParticipant) - } - } - - static func observeUserWantsToAddParticipants(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (GenericCall, [OlvidUserId]) -> Void) -> NSObjectProtocol { - let name = Name.userWantsToAddParticipants.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let call = notification.userInfo!["call"] as! GenericCall - let contactIds = notification.userInfo!["contactIds"] as! [OlvidUserId] - block(call, contactIds) - } - } - - static func observeCallHasBeenUpdated(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (UUID, CallUpdateKind) -> Void) -> NSObjectProtocol { - let name = Name.callHasBeenUpdated.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let callUUID = notification.userInfo!["callUUID"] as! UUID - let updateKind = notification.userInfo!["updateKind"] as! CallUpdateKind - block(callUUID, updateKind) - } - } - - static func observeCallParticipantHasBeenUpdated(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (CallParticipant, CallParticipantUpdateKind) -> Void) -> NSObjectProtocol { - let name = Name.callParticipantHasBeenUpdated.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let callParticipant = notification.userInfo!["callParticipant"] as! CallParticipant - let updateKind = notification.userInfo!["updateKind"] as! CallParticipantUpdateKind - block(callParticipant, updateKind) - } - } - - static func observeReportCallEvent(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (UUID, CallReport, GroupIdentifierBasedOnObjectID?, ObvCryptoId) -> Void) -> NSObjectProtocol { + static func observeReportCallEvent(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (UUID, CallReport, GroupIdentifier?, ObvCryptoId) -> Void) -> NSObjectProtocol { let name = Name.reportCallEvent.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in let callUUID = notification.userInfo!["callUUID"] as! UUID let callReport = notification.userInfo!["callReport"] as! CallReport - let groupIdWrapper = notification.userInfo!["groupId"] as! OptionalWrapper + let groupIdWrapper = notification.userInfo!["groupId"] as! OptionalWrapper let groupId = groupIdWrapper.value let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId block(callUUID, callReport, groupId, ownedCryptoId) } } - static func observeShowCallViewControllerForAnsweringNonCallKitIncomingCall(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (GenericCall) -> Void) -> NSObjectProtocol { - let name = Name.showCallViewControllerForAnsweringNonCallKitIncomingCall.name + static func observeNewCallToShow(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (OlvidCallViewController.Model) -> Void) -> NSObjectProtocol { + let name = Name.newCallToShow.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let incomingCall = notification.userInfo!["incomingCall"] as! GenericCall - block(incomingCall) + let model = notification.userInfo!["model"] as! OlvidCallViewController.Model + block(model) } } @@ -238,26 +173,18 @@ enum VoIPNotification { } } - static func observeServerDoesNotSupportCall(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { - let name = Name.serverDoesNotSupportCall.name + static func observeCallWasEnded(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (UUID) -> Void) -> NSObjectProtocol { + let name = Name.callWasEnded.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - block() + let uuidForCallKit = notification.userInfo!["uuidForCallKit"] as! UUID + block(uuidForCallKit) } } - static func observeNewOutgoingCall(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (GenericCall) -> Void) -> NSObjectProtocol { - let name = Name.newOutgoingCall.name - return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let newOutgoingCall = notification.userInfo!["newOutgoingCall"] as! GenericCall - block(newOutgoingCall) - } - } - - static func observeNewIncomingCall(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (GenericCall) -> Void) -> NSObjectProtocol { - let name = Name.newIncomingCall.name + static func observeServerDoesNotSupportCall(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping () -> Void) -> NSObjectProtocol { + let name = Name.serverDoesNotSupportCall.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let newIncomingCall = notification.userInfo!["newIncomingCall"] as! GenericCall - block(newIncomingCall) + block() } } @@ -275,11 +202,22 @@ enum VoIPNotification { } } - static func observeAnIncomingCallShouldBeShownToUser(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (GenericCall) -> Void) -> NSObjectProtocol { - let name = Name.anIncomingCallShouldBeShownToUser.name + static func observeNewWebRTCMessageToSend(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (WebRTCMessageJSON, TypeSafeManagedObjectID, Bool) -> Void) -> NSObjectProtocol { + let name = Name.newWebRTCMessageToSend.name + return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in + let webrtcMessage = notification.userInfo!["webrtcMessage"] as! WebRTCMessageJSON + let contactID = notification.userInfo!["contactID"] as! TypeSafeManagedObjectID + let forStartingCall = notification.userInfo!["forStartingCall"] as! Bool + block(webrtcMessage, contactID, forStartingCall) + } + } + + static func observeNewOwnedWebRTCMessageToSend(object obj: Any? = nil, queue: OperationQueue? = nil, block: @escaping (ObvCryptoId, WebRTCMessageJSON) -> Void) -> NSObjectProtocol { + let name = Name.newOwnedWebRTCMessageToSend.name return NotificationCenter.default.addObserver(forName: name, object: obj, queue: queue) { (notification) in - let newIncomingCall = notification.userInfo!["newIncomingCall"] as! GenericCall - block(newIncomingCall) + let ownedCryptoId = notification.userInfo!["ownedCryptoId"] as! ObvCryptoId + let webrtcMessage = notification.userInfo!["webrtcMessage"] as! WebRTCMessageJSON + block(ownedCryptoId, webrtcMessage) } } diff --git a/iOSClient/ObvMessenger/ObvMessenger/VoIP/VoIPNotification/VoIPNotification.yml b/iOSClient/ObvMessenger/ObvMessenger/VoIP/VoIPNotification/VoIPNotification.yml deleted file mode 100644 index 4d1dda61..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/VoIP/VoIPNotification/VoIPNotification.yml +++ /dev/null @@ -1,47 +0,0 @@ -import: - - Foundation - - CoreData - - ObvTypes - - ObvEngine - - OlvidUtils - - ObvCrypto - - ObvUICoreData -notifications: -- name: userWantsToKickParticipant - params: - - {name: call, type: GenericCall} - - {name: callParticipant, type: CallParticipant} -- name: userWantsToAddParticipants - params: - - {name: call, type: GenericCall} - - {name: contactIds, type: [OlvidUserId]} -- name: callHasBeenUpdated - params: - - {name: callUUID, type: UUID} - - {name: updateKind, type: CallUpdateKind} -- name: callParticipantHasBeenUpdated - params: - - {name: callParticipant, type: CallParticipant} - - {name: updateKind, type: CallParticipantUpdateKind} -- name: reportCallEvent - params: - - {name: callUUID, type: UUID} - - {name: callReport, type: CallReport} - - {name: groupId, type: "GroupIdentifierBasedOnObjectID?"} - - {name: ownedCryptoId, type: ObvCryptoId} -- name: showCallViewControllerForAnsweringNonCallKitIncomingCall - params: - - {name: incomingCall, type: GenericCall} -- name: noMoreCallInProgress -- name: serverDoesNotSupportCall -- name: newOutgoingCall - params: - - {name: newOutgoingCall, type: GenericCall} -- name: newIncomingCall - params: - - {name: newIncomingCall, type: GenericCall} -- name: showCallView -- name: hideCallView -- name: anIncomingCallShouldBeShownToUser - params: - - {name: newIncomingCall, type: GenericCall} diff --git a/iOSClient/ObvMessenger/ObvMessenger/en.lproj/Localizable.strings b/iOSClient/ObvMessenger/ObvMessenger/en.lproj/Localizable.strings deleted file mode 100644 index 1e249c72..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/en.lproj/Localizable.strings +++ /dev/null @@ -1,2764 +0,0 @@ -"Olvid" = "Olvid"; - -/* No comment provided by engineer. */ -"%@ and" = "%@ and"; - -/* Invitation details */ -"%@ wants to introduce you to %@. If you do trust %@ for this, you may accept this invitation and %@ will soon appear in your contacts, with no further actions from your part (provided that %@ also accepts the invitation). If you don't trust %@ or if you simply do not want to be introduced to %@ you can ignore this invitation (neither %@ nor %@ will be notified of this)." = "%1$@ would like to introduce you to %2$@. If you accept, %2$@ will be part of your contacts and you will have a private discussion with them."; - -/* No comment provided by engineer. */ -"A file named %@ already exists within the following location: -On My iPhone > Olvid" = "A file named %@ already exists within the following location: -On My iPhone > Olvid"; - -/* Button title */ -"Abort" = "Abort"; - -/* Accept acction - Button title */ -"Accept" = "Accept"; - -/* Invitation details */ -"All the members of the group created by %@ have accepted the invitation." = "All the members of the group created by %@ have accepted the invitation."; - -/* Notification title */ -"An invitation requires your attention!" = "An invitation requires your attention!"; - -/* Action of alert - Action title - Button title - Cancel */ -"Cancel" = "Cancel"; - -/* Title before the list of group members. */ -"Confirmed Group Members:" = "Confirmed Group Members:"; - -/* Title before a list of group members. */ -"Confirmed Members:" = "Confirmed Members:"; - -/* Tab title - Title of the AllContactsViewController */ -"Contacts" = "Contacts"; - -/* Create word, capitalized */ -"Create" = "Create"; - -/* Perform the attachment deletion */ -"Delete attachment" = "Delete attachment"; - -/* Action title */ -"Delete contact" = "Delete contact"; - -/* Action of alert */ -"Delete file" = "Delete file"; - -/* Title of alert */ -"Delete File" = "Delete File"; - -/* Title of alert */ -"Delete Message" = "Delete Message"; - -/* Title of alert */ -"Delete Message and Attachments" = "Delete Message and Attachments"; - -/* Alert title */ -"Delete this contact?" = "Delete this user?"; - -/* Invitation subtitle */ -"Digits confirmed" = "Code confirmed"; - -/* Action title */ -"Discard group creation" = "Discard group creation"; - -/* Action title */ -"Discard invitation" = "Decline invitation"; - -/* Action title */ -"Discard this group creation?" = "Discard this group creation?"; - -/* Action title */ -"Discard this invitation?" = "Decline this invitation?"; - -/* Discussions word, capitalized */ -"Discussions" = "Discussions"; - -/* Action title */ -"Do not discard group creation" = "Do not discard group creation"; - -/* Action title */ -"Do not discard invitation" = "Do not decline invitation"; - -/* Alert message */ -"Do you want to send an invitation to %@?" = "Do you want add %@ to your contacts?"; - -/* Title of the EditDisplayNameViewController */ -"Edit your name" = "Edit your name"; - -/* Invitation subtitle */ -"Exchange digits" = "Exchange your codes"; - -/* Action of alert */ -"Export to the system's File App" = "Export to the system's File App"; - -/* Title of alert */ -"File Management" = "File Management"; - -/* Invitation subtitle */ -"Group Created" = "Group Created"; - -/* Title before the list of group members. */ -"Group Members:" = "Group Members:"; - -/* Invitation details */ -"If %@ accepts your invitation, you will be notified here." = "Please wait for %@ to confirm."; - -/* Button title */ -"Ignore" = "Ignore"; - -/* Title of the table listing all identities but the one to introduce */ -"Introduce %@ to..." = "Introduce %@ to..."; - -/* Invitation subtitle */ -"Introduction Accepted" = "Introduction Accepted"; - -/* Alert title */ -"Invitation" = "Invitation"; - -/* Invitation subtitle */ -"Invitation accepted" = "Invitation in progress"; - -/* Invitation subtitle */ -"Invitation received" = "Invitation in progress"; - -/* Invitation subtitle */ -"Invitation to join a group" = "Invitation to join a group"; - -"Invitations" = "Invitations"; - -/* Title of the table listing all members of a discussion group. */ -"Members of %@" = "Members of %@"; - -/* Invitation subtitle */ -"MUTUAL_TRUST_CONFIRMED" = "User added to your contacts"; - -/* Notification title */ -"Mutual trust confirmed!" = "Secure channel in progress"; - -/* Title of the MyIdViewController */ -"My Id" = "My profile"; - -/* Notification body */ -"n more attachments" = "n more attachments"; - -/* Notification title */ -"New Invitation!" = "New Invitation!"; -"New invitation" = "New invitation"; - -/* Notification title */ -"New message from %@" = "New message from %@"; - -/* Invitation subtitle */ -"New Suggested Introduction" = "Contact introduction"; - -/* Action title */ -"No" = "No"; - -/* Action title - Button title */ -"Ok" = "Ok"; - -/* Invitation subtitle */ -"Ongoing Group Creation" = "Ongoing Group Creation"; - -/* Title before a list of group members. */ -"Pending Members:" = "Pending Members:"; - -/* Action of alert */ -"Perform the deletion" = "Perform the deletion"; - -/* Perform the introduction */ -"Perform the introduction" = "Perform the introduction"; - -/* No comment provided by engineer. */ -"The file %@ can now be found in the File App, within the following location: -On My iPhone > Olvid" = "The file %@ can now be found in the File App, within the following location: -On My iPhone > Olvid"; - -/* Invitation details */ -"The invitation appears to come from %@. If you accept this invitation you will guided through the process allowing to make sure that this is the case." = "%@ would like to be part of your contacts. Please \"ACCEPT\" if you wish to proceed. Otherwise, you can \"IGNORE\"."; - -/* Action message */ -"The other group members will not be notified." = "The other group members will not be notified."; - -/* Alert message */ -"The scanned identity is already part of your trusted contacts 🙌. Do you still wish to proceed?" = "The scanned identity is already part of your trusted contacts 🙌. Do you still wish to proceed?"; - -"%@ is already part of your trusted contacts 🙌. Do you still wish to proceed?" = "%@ is already part of your trusted contacts 🙌. Do you still wish to proceed?"; - -/* Alert message */ -"The scanned identity is one of your own 😇." = "The scanned identity is one of your own 😇."; - -/* Invitation details */ -"We are bootstraping the secure channel between you and %@. Please note that this requires %@'s device to be online." = "We are bootstraping the secure channel between you and %@. Please wait..."; - -/* Invitation details */ -"MUTUAL_TRUST_CONFIRMED_DETAILS_%@" = "Well done! %1$@ is now part of your contacts and you can have a private discussion with them."; - -/* Message of alert */ -"What do you want to do with this file?" = "What do you want to do with this file?"; - -/* Action title */ -"Yes" = "Yes"; - -/* Invitation details */ -"You accepted to be introduced to %@ by %@. Please wait until %@ also accepts this invitation." = "You accepted to be introduced to %@ by %@. Please wait until %@ also accepts this invitation."; - -/* Message of alert */ -"You are about to delete a file." = "You are about to delete a file."; - -/* Invitation details */ -"YOU_ARE_INVITED_TO_JOIN_A_GROUP_CREATED_BY_%@_EXPLANATION" = "You are invited to join a group created by %@."; - -/* Invitation details */ -"You have accepted to join a group created by %@." = "You have accepted to join a group created by %@."; - -/* Invitation details */ -"You have successfully entered the 4 digits of %1$@. You should communicate your four digits to %1$@. Your digits are %2$@." = "You successfully entered the code of %1$@. Please communicate them your code (%2$@).\n\nPrefer a face-to-face meeting or a phone call (avoid email, SMS, or any other messenger)."; - -/* Notification body */ -"You now appear in %@'s contacts list. A secure channel is being established. When this is done, you will be able to exchange confidential messages and more!" = "You now appear in %@'s contacts list. A secure channel is being established. When this is done, you will be able to exchange confidential messages and more!"; - -/* Notification body */ -"You receive a new invitation from %@. You can accept or silently discard it." = "You received a new invitation from %@. You can accept or silently discard it."; - -/* Invitation details */ -"You should communicate your four digits to %@. Your digits are %@. You should also enter the 4 digits of %@." = "To add %1$@ to your contacts, please give them your code (%2$@) and enter theirs. - -Please make sure that %1$@ is indeed the one giving you this code: prefer a face-to-face meeting or a phone call (avoid email, SMS, or any other messenger)."; - -/* Notification body */ -"Your are one step away to create a secure channel with %@!" = "Your are one step away to create a secure channel with %@!"; - -/* Invitation subtitle */ -"Your invitation was sent" = "Invitation in progress"; - -"New Suggested Introduction" = "New Suggested Introduction"; - -"You are invited to join a group created by %@." = "You are invited to join a group created by %@."; - -/* Placeholder text within the text view. Keep it short. */ -"Type a confidential message..." = "Write message"; - -/* Title of the view controller allowing to edit a contact */ -"Contact Edition" = "Contact Edition"; - -/* No comment provided by engineer. */ -"One-to-one verification" = "One-to-one verification"; - -/* No comment provided by engineer. */ -"Introduced by %@" = "Introduced by %@"; - -/* No comment provided by engineer. */ -"Introduced by a former contact" = "Introduced by a former contact"; - -/* No comment provided by engineer. */ -"Introduced as part of a group discussion" = "Introduced as part of a group discussion"; - -/* Must be short, label for the company name */ -"Company" = "Company"; - -/* No comment provided by engineer. */ -"Please scan an Olvid configuation QR code." = "Please scan an Olvid configuation QR code."; - -/* No comment provided by engineer. */ -"Scan server settings" = "Scan server settings"; - -/* No comment provided by engineer. */ -"URL" = "URL"; - -/* Indicates a mandatory text field */ -"mandatory" = "mandatory"; - -/* View controller title */ -"Almost there!" = "Almost there!"; - -/* No comment provided by engineer. */ -"API Key" = "API Key"; - -/* No comment provided by engineer. */ -"None" = "None"; - -/* No comment provided by engineer. */ -"Please specify an identifier that will make it possible for other users to identify you." = "Please specify an identifier that will make it possible for other users to identify you."; - -/* No comment provided by engineer. */ -"Your Id" = "Your ID"; - -/* Must be short, label for first name */ -"First" = "First"; - -/* View controller title */ -"Congratulations!" = "Congratulations!"; - -/* Must be short, label for last name */ -"Last" = "Last"; - -/* No comment provided by engineer. */ -"Server Settings" = "Server Settings"; - -/* Indicates an optional text field */ -"optional" = "optional"; - -/* View controller title */ -"Welcome" = "Welcome"; - -/* No comment provided by engineer. */ -"Re-Scan server settings" = "Scan server settings again"; - -/* No comment provided by engineer. */ -"In order to automatically configure Olvid, you can either scan a configuration QR code or click on the link you received by email." = "In order to automatically configure Olvid, you can either scan a configuration QR code or configuration click on the link you should have received by email."; - -/* Chip title */ -"Updated" = "Updated"; - -/* Chip title */ -"Action Required" = "Action Required"; - -/* Chip title */ -"New" = "New"; - -/* Title */ -"New contact" = "New contact"; - -/* UIAlertController title */ -"Mutual Introduction" = "Mutual Introduction"; - -/* Title of the UIAlertAction allowing to add a document as an attachment within a message to send */ -"Document" = "Document"; - -"Documents" = "Documents"; - -/* Title of the UIAlertAction allowing to add a photo as an attachment within a message to send */ -"Photo & Video Library" = "Photo & Video Library"; - -/* Title of the UIAlertController allowing to add an attachment within a message to send. */ -"Add attachment" = "Add attachment"; - -/* UIAlertController message */ -"You are about to introduce %@ to %@" = "You are about to introduce %@ to %@"; - -/* Alert message */ -"Do you really wish to restart the channel establishment?" = "Do you really wish to restart the channel establishment?"; - -/* Alert title */ -"Restart channel establishment" = "Restart channel establishment"; - -/* Alert title */ -"The channel establishment was restarted" = "The channel establishment was restarted"; - -/* Alert title */ -"At least one of the channel establishment failed to restart" = "At least one of the channel establishment failed to restart"; - -/* Title */ -"Background App Refresh is disabled" = "Background App Refresh is disabled"; - -/* View Controller title */ -"Misconfiguration" = "Misconfiguration"; - -/* Long explanation */ -"Olvid requires the Background App Refresh to be turned on. Unfortunately it appears to be off. If you wish to use Olvid, please turn it back on. - -The reason why this is required lies in the fact that Olvid regularly executes complex, multipass, cryptographic protocols in order to achieve a security level no other app can compete with. These protocols happen in the background and could not work if you had to manually launch Olvid each time a cryptographic computation has to be performed." = "Olvid requires the Background App Refresh setting to be turned on. Unfortunately it appears to be off."; - -/* Button title */ -"Open Settings" = "Open Settings"; - -/* Long solution */ -"Please open settings and enable Background App Refresh. Hint: If the button is grayed out, you may have turned off the general setting which can be found within:\n\n Settings > General > Background App Refresh" = "Please open settings and enable Background App Refresh.\n\nHint: If the button is grayed out, you may have turned off the general setting which can be found within: - -Settings > General > Background App Refresh"; - -/* Title */ -"Problem" = "Problem"; - -/* Title */ -"Solution" = "Solution"; - -/* Alert title */ -"Bad QR code" = "Bad QR code"; - -/* Alert title */ -"Bad server" = "Bad server"; - -/* Section title */ -"Enter your personal details" = "Enter your personal details"; - -/* No comment provided by engineer. */ -"Scan" = "Scan"; - -/* View controller title */ -"Scan QR code" = "Scan QR code"; - -/* No comment provided by engineer. */ -"Server" = "Server"; - -/* Section title */ -"Server settings" = "Server settings"; - -/* Alert message */ -"The imported API Key seems to be for a different server." = "The imported API Key seems to be for a different server."; - -/* Alert message */ -"The scanned QR code does not appear to be an Olvid identity." = "The scanned QR code does not appear to be an Olvid identity."; - -/* Alert message */ -"This QR code does not allow to configure Olvid. Please use an Olvid configuration QR code." = "This QR code does not allow to configure Olvid. Please use an Olvid configuration QR code."; - -/* Alert action title */ -"Delete all messages" = "Delete all messages"; - -/* Alert title */ -"Delete all messages?" = "Delete all messages?"; - -/* Alert message */ -"Do you wish to delete all the messages within this discussion? This action is irrevisble." = "Do you wish to delete all the messages within this discussion? This action is irreversible."; - -/* Subtitle displayed within a discussion cell when there is no message preview to display */ -"No message yet." = "No message yet."; - -/* Notification body */ -"%@ wants to introduce you to %@" = "%@ wants to introduce you to %@"; - -/* Text used within the footer in a discussion. */ -"Your messages will be automatically sent once a secure channel is established for this discussion. Until then, they will remain on hold." = "Your messages will be automatically sent once a secure channel is established for this discussion. Until then, they will remain on hold."; - -/* Text used within the footer in a discussion. */ -"Your messages will be automatically sent once a contact accepts to join this group discussion. Until then, they will remain on hold." = "You cannot write any message in this discussion until a contact accepts to join this group."; - -/* System message displayed within a group discussion */ -"%@_ACCEPTED_TO_JOIN_THIS_GROUP_AT_%@" = "%@ has joined this group - %@"; - -"%@_ACCEPTED_TO_JOIN_THIS_GROUP" = "%@ has joined this group"; - -/* Discussion word, capitalized */ -"Discussion" = "Discussion"; - -/* Groups word, capitalized */ -"Groups" = "Groups"; - -/* Camera word, capitalized */ -"Camera" = "Camera"; - -/* Stack view title */ -"Members" = "Members"; - -/* Stack view title */ -"Pending members" = "Pending members"; - -/* Can serve as a name in the sentence \"%@ accepted to join this group\" */ -"A (now deleted) contact" = "Deleted contact"; - -/* Alert title */ -"Export Picture" = "Export Picture"; - -/* Details word, capitalized */ -"Details" = "Details"; - -/* Table View section title */ -"Groups created" = "Groups created"; - -/* Table View section title */ -"Groups joined" = "Groups joined"; - -/* Copy word, capitalized */ -"Copy" = "Copy"; - -/* Reply word, capitalized */ -"Reply" = "Reply"; - -/* Delete word, capitalized */ -"Delete" = "Delete"; - -/* Title of the contact details view controller */ -"Contact Details" = "Contact details"; - -/* Introduce word, capitalized */ -"Introduce" = "Introduce"; - -/* Type title of a owned Olvid card */ -"Olvid Card" = "Olvid Card"; - -/* Button title */ -"Accept published version" = "Accept published version"; - -/* Alert title */ -"Name update available" = "Name update available"; - -/* No comment provided by engineer. */ -"Set Contact Nickname" = "Set Contact Nickname"; - -/* UIAlertController message */ -"This nickname will only be visible to you and used instead of your contact name within the Olvid interface." = "This nickname will only be visible to you and used instead of your contact name within the Olvid interface."; - -/* UIAlertController action */ -"Remove nickname" = "Remove nickname"; - -/* Message of an alert */ -"The core you entered is incorrect. The code you need to enter is the one displayed on your contact's device." = "The code you entered is incorrect. The one you need to enter is the displayed on your contact's device."; - -/* Title of an alert */ -"Incorrect code" = "Incorrect code"; - -/* Type title of a owned Olvid card */ -"Olvid Card - Trusted" = "Olvid Card - On my iPhone"; - -/* Alert title */ -"Set Group Name" = "Set Group Name"; - -/* Update word, capitalized */ -"Update" = "Update"; - -/* Body */ -"Your contact published a new version of their Olvid card. Both the old and new versions are shown below. - -Click to update yout contact's informations with the new version." = "Your contact updated their Olvid Card. Both the old and new versions are shown below. - -Click to update your contact's informations with the new version."; - -/* Title */ -"New contact details" = "New Olvid Card"; - -/* Type title of a owned Olvid card */ -"Olvid Card - New" = "Olvid Card - New"; - -/* Title of an alert action */ -"Scan another user's QR code" = "Scan another user's QR code"; - -/* Button title */ -"QR code" = "QR code"; - -/* Title of an alert action */ -"Show my QR code" = "Show my QR code"; - -/* Message of an alert */ -"In order to invite another Olvid user, you can either scan their QR code or show them your own QR code." = "In order to add another Olvid user to your contacts, you can send an invitation, scan their QR code, or show them your own QR code."; - -/* Title of an alert */ -"Invite another Olvid user" = "Choose how to add a contact"; - -/* Table View section title */ -"My Olvid Card" = "My profile"; - -/* Advanced word, capitalized */ -"Advanced" = "Advanced"; - -/* button title */ -"Restart Channel Establishment" = "Restart Channel Establishment"; - -/* Invitation details */ -"%@ was added to your contacts following an introduction by %@." = "%@ was added to your contacts following an introduction by %@."; - -/* Proceed word, capitalized */ -"Proceed" = "Proceed"; - -/* Invitation details */ -"%1@ wants to introduce you to %2@. - -Olvid's security policy requires you to re-validate the identity of %2@ by exchanging 4-digit codes with them, or to invite %1@ directly." = "%1@ wants to introduce you to %2@. - -Olvid's security policy requires you to re-validate the identity of %2@ by exchanging 4-digit codes with them, or to invite %1@ directly."; - -/* Button title */ -"Invite %@" = "Invite %@"; - -/* Button title */ -"Exchange digits with %@" = "Exchange codes with %@"; - -/* Invitation details */ -"%1$@ wants to introduce you to %2$@." = "%1$@ wants to introduce you to %2$@."; - -/* Alert title */ -"Your Messages are on hold" = "Your Messages are on hold"; - -/* Must be short, label for the position name within the company */ -"Position" = "Position"; - -/* Settings word, capitalized */ -"Settings" = "Settings"; - -/* Downloads word, capitalized */ -"Downloads" = "Downloads"; - -/* Version word, capitalized */ -"Version" = "Version"; - -/* About word, capitalized */ -"About" = "About"; - -/* Table view group header */ -"Maximum size for automatic downloads" = "Maximum size for automatic downloads"; - -/* Table view group footer */ -"Attachments smaller than the specified size will be automatically downloaded. Larger attachments will require manual download." = "Attachments smaller than the specified size will be automatically downloaded. Larger attachments will require manual download."; - -/* Invitation details */ -"You have joined a group created by %@." = "You have joined a group created by %@."; - -/* Button title allowing to navigation towards a contact group */ -"Show Group" = "Show Group"; - -/* Invitation subtitle */ -"New Group Joined" = "New Group Joined"; - -/* Invitation details */ -"%1$@ is inviting you to a discussion group.\n\nOlvid\'s security policy requires you to re-validate the identity of %1$@ by exchanging 4-digit codes with them." = "%1$@ is inviting you to a discussion group.\n\nOlvid's security policy requires you to re-validate the identity of %1$@ by exchanging 4-digit codes with them."; - -/* Placeholder for group name */ -"Optional description..." = "Optional description..."; - -/* Olvid card corner text */ -"Group Card - New" = "Group Card - New"; - -/* Button title for removing members from an owned contact groupe */ -"Remove Members" = "Remove Members"; - -/* Olvid card corner text */ -"Group Card" = "Group Card"; - -/* Next word, capitalized */ -"Next" = "Next"; - -/* Body */ -"The group owner published a new version of Group Card. Both the old and new versions are shown below.\n\nClick to update the group informations with the new version." = "The group owner published a new version of Group Card. Both the old and new versions are shown below.\n\nClick to update the group informations with the new version."; - -/* Placeholder for group name */ -"Type a discussion group name..." = "Type a discussion group name..."; - -/* Title used above the Table view allowing to choose the new members of a group */ -"Choose Members:" = "Choose Members:"; - -/* Title */ -"New group details" = "New group details"; - -/* System message displayed within a group discussion */ -"%@_LEFT_THIS_GROUP_AT_%@" = "%@ left this group - %@"; - -"%@_LEFT_THIS_GROUP" = "%@ left this group"; - -/* Title group name text field */ -"Group name:" = "Group name:"; - -/* Olvid card corner text */ -"Group Card - Published" = "Group Card - Published"; - -/* Olvid card corner text */ -"Group Card - Unpublished Draft" = "Group Card - Unpublished Draft"; - -/* Button title for inviting new members to an owned contact group */ -"Invite Members" = "Invite Members"; - -/* Olvid card corner text */ -"Group Card - On My iPhone" = "Group Card - On My iPhone"; - -/* Title group description text field */ -"Group description:" = "Group description:"; - -/* Send word, capitalized */ -"Send" = "Send"; - -/* Two lines label indicating that a contact declined a group invitation */ -"Invitation\nDeclined" = "Invitation\nDeclined"; - -/* Alert message */ -"Do you want to send a new invitation to your contact?" = "Do you want to send a new invitation to your contact?"; - -/* Alert title */ -"Reinvite contact?" = "Reinvite contact?"; - -"Invite" = "Invite"; - -"Send invite" = "Send invitation"; - -"Admin" = "Admin"; - -"Paste" = "Paste"; - -"Back" = "Back"; - -"Leave group" = "Leave group"; - -"Your are about to leave a group." = "Your are about to permanently leave a group."; - -"Your are about to permanently delete a group." = "Your are about to permanently delete a group."; - -"Delete group" = "Delete group"; - -"Mark all as read" = "Mark all as read"; - -"MARK_AS_READ" = "Mark as read"; - -"Deleted message" = "Deleted message"; - -"Contact Introduction Performed" = "Contact Introduction Performed"; - -"You successfully introduced %@ to %@" = "You successfully introduced %@ to %@"; - -"Messages posted in this discussion are protected using end-to-end encryption. Their confidentiality, their authenticity, and the identity of their sender are guaranteed through cryptography." = "🔒 Messages posted in this discussion are protected using end-to-end encryption. Their confidentiality, their authenticity, and the identity of their sender are guaranteed through cryptography."; - -/* Disclaimer showed during the onboarding */ -"Please enter a name which will be displayed to your contacts. These details will never be sent to Olvid's servers." = "Please enter a name which will be displayed to your contacts. These details will never be sent to Olvid's servers."; - -"More..." = "More..."; - -"In order to invite another Olvid user, you can copy your identity in order to paste it in an email, sms, and so forth. If you receive an identity, you can paste it here." = "In order to invite another Olvid user, you can copy your identity in order to paste it in an email, sms, and so forth. If you receive the identity of another user, you can paste it here."; - -"Copy your Id" = "Copy your ID"; - -"Paste an Id" = "Paste an ID"; - -/* Alert title */ -"File exported to Files App" = "File exported to Files App"; - -/* Alert title */ -"Contact cannot be deleted for now" = "This user cannot be deleted for now"; - -/* Alert message */ -"You cannot remove %@ from your contacts as both of you belong to some common groups. You will need to leave these groups to proceed." = "You cannot delete the user %@ as both of you belong to some common groups. You will need to leave these groups to proceed."; - -/* Alert message */ -"You are about to remove %1$@ from your contacts. You will no longer be able to exchange messages with them.\n\nReally delete this contact?" = "You are about to delete the user %1$@.\n\nReally delete this contact?"; - -/* Alert message */ -"You are about to remove %1$@ from your contacts. You will no longer be able to exchange messages with them.\n\nNote that %1$@ is a pending member in at least one group you belong to. %1$@ might get added back to your contacts in a near future. You may want to leave these groups to avoid this.\n\nReally delete this contact?" = "You are about to remove %1$@ from your contacts. You will no longer be able to exchange messages with them.\n\nNote that %1$@ is a pending member in at least one group you belong to. %1$@ might get added back to your contacts in a near future. You may want to leave these groups to avoid this.\n\nReally delete this contact?"; - -/* Reject word, capitalized */ -"Reject" = "Reject"; - -/* System message displayed within a group discussion */ -"This contact was deleted from your contacts, either because you did or because this contact deleted you." = "This contact was deleted from your Olvid contacts, either because you did or because this contact deleted you from their own contacts."; - -"Show detailed infos" = "Show detailed infos"; - -"Discard changes" = "Discard changes"; - -"Save changes" = "Save changes"; - -"Copy text" = "Copy text"; - -"Attachments smaller than %@ will be automatically downloaded. Larger attachments will require manual download." = "Attachments smaller than %@ will be automatically downloaded. Larger attachments will require manual download."; - -"ALL_ATTACHMENTS_WILL_BE_AUTOMATICALLY_DOWNLOADED" = "All attachments will be automatically downloaded."; - -"Size" = "Size"; - -"Identity color style" = "Identity color style"; - -"Interface" = "Interface"; - -/* Small string used in tab controller to sort by latest discussions */ -"Latest Discussions" = "Latest"; - -/* Displayed in QuickLook when showing a downloading file */ -"Downloading File..." = "File not downloaded yet 😕"; - -/* Subject used when inviting another user to Olvid, i.e., when sharing ones owned identity using, e.g., an email */ -"%@ invites you to discuss on Olvid" = "%@ would like to discuss with you on Olvid"; - -/* Body used when inviting another user to Olvid, i.e., when sharing ones owned identity using, e.g., an email or message */ -"%@ invites you to discuss on Olvid. To accept, please click the link below:\n\n%@" = "%@ would like to discuss with you on Olvid. To invite them, please click the link below:\n\n%@\n"; - -"Scan document" = "Scan document"; - -"Read" = "Read"; - -"Delivered" = "Delivered"; - -"Sent" = "Sent"; - -"Send Read Receipts" = "Send Read Receipts"; - -"Recent" = "Recent"; - -/* General Read Receipt explanantions */ - -"Your contacts will be notified when you have read their messages. This settting can be overriden on a per discussion basis." = "Your contacts will be notified when you have read their messages. This settting can be overriden on a per discussion basis."; - -"Your contacts won't be notified when you read their messages. This settting can be overriden on a per discussion basis." = "Your contacts won't be notified when you read their messages. This settting can be overriden on a per discussion basis."; - -/* Per discussion Read Receipt explanations */ - -"A read receipt will be sent for each message you read within this discussion." = "Your contacts will be notified when you have read their messages within this discussion."; - -"No read receipt will be sent within this discussion." = "Your contacts won't be notified when you read their messages within this discussion."; - -"Default" = "Default"; - -"DISCUSSION_SETTINGS" = "Discussion settings"; - -"Use application default" = "Use application default"; - -"Privacy" = "Privacy"; - -"LOGIN_WITH_SYSTEM_PASSCODE_TITLE" = "Log in with your device's passcode"; -"LOGIN_WITH_TOUCH_ID_SYSTEM_PASSCODE_TITLE" = "Log in with Touch ID or your device's passcode"; -"LOGIN_WITH_FACE_ID_SYSTEM_PASSCODE_TITLE" = "Log in with Face ID or your device's passcode"; -"LOGIN_WITH_TOUCH_ID_FACE_ID_SYSTEM_PASSCODE_TITLE" = "Log in with Touch ID, Face ID, or your device's passcode"; - -"LOGIN_WITH_CUSTOM_PASSCODE_TITLE" = "Log in with a custom passcode"; -"LOGIN_WITH_TOUCH_ID_CUSTOM_PASSCODE_TITLE" = "Log in with Touch ID or a custom passcode"; -"LOGIN_WITH_TOUCH_ID_FACE_ID_CUSTOM_PASSCODE_TITLE" = "Log in with Touch ID, Face ID, or a custom passcode"; -"LOGIN_WITH_FACE_ID_CUSTOM_PASSCODE_TITLE" = "Log in with Face ID or a custom passcode"; - -"LOGIN_WITH_SYSTEM_PASSCODE_EXPLANATION" = "This option allows you to protect Olvid using your device's passcode."; -"LOGIN_WITH_TOUCH_ID_SYSTEM_PASSCODE_EXPLANATION" = "This option allows you to protect Olvid using Touch ID or your device's passcode"; -"LOGIN_WITH_FACE_ID_SYSTEM_PASSCODE_EXPLANATION" = "This option allows you to protect Olvid using Face ID or your device's passcode"; -"LOGIN_WITH_TOUCH_ID_FACE_ID_SYSTEM_PASSCODE_EXPLANATION" = "This option allows you to protect Olvid using Touch ID, Face ID, or your device's passcode"; - -"NO_AUTHENTICATION_EXPLANATION" = "Olvid's screen won't be locked."; - -"LOGIN_WITH_CUSTOM_PASSCODE_EXPLANATION" = "This option allows you to protect Olvid using a custom passcode."; -"LOGIN_WITH_TOUCH_ID_CUSTOM_PASSCODE_EXPLANATION" = "This option allows you to protect Olvid using Touch ID or a custom passcode"; -"LOGIN_WITH_FACE_ID_CUSTOM_PASSCODE_EXPLANATION" = "This option allows you to protect Olvid using Face ID or a custom passcode"; -"LOGIN_WITH_TOUCH_ID_FACE_ID_CUSTOM_PASSCODE_EXPLANATION" = "This option allows you to protect Olvid using Touch ID, Face ID, or a custom passcode"; - -"Authenticate" = "Authenticate"; - -"Please authenticate to start Olvid" = "Please authenticate to start Olvid"; - -"After" = "After"; - -"Immediately" = "Immediately"; - -"Please authenticate in order to change this setting." = "Please authenticate in order to change this setting."; - -"No passcode set on this iPhone." = "No passcode set on this iPhone."; - -"😧 Oups..." = "😧 Oops..."; - -/* Used within a HUD to indicate to the user that she should choose a discussion for AirDrop'ed files */ -"Choose Discussion" = "Choose a Discussion"; - -/* Title of the screen displaying informations about a specific message within a discussion */ -"MESSAGE_INFO" = "Message informations"; - -"Rich link preview" = "Rich link preview"; - -"Never" = "Never"; - -"Sent messages only" = "Sent messages only"; - -"Always" = "Always"; - -"Clear cache" = "Clear cache"; - -"Cache management" = "Cache management"; - -"Websocket status" = "Websocket connexion status"; - -"Hide notifications content" = "Hide content"; - -"Hide notifications" = "Hide notifications"; - -"Olvid requires your attention" = "Olvid requires your attention."; - -"Show" = "Show"; - -"Partially" = "Partially"; - -"Notifications will preview new messages and new invitations content." = "Notifications will preview new messages and new invitations content."; - -"Notifications will not preview any message content nor any invitation content. Instead, they will display the number of new messages as well as the number of new invitations." = "Notifications will not preview any message content nor any invitation content. It will be possible to distinguish between a new message notification and new invitation notification."; - -"Notifications will not provide any information about messages nor invitations. A minimal static notification will show to indicate that Olvid requires your attention." = "Notifications will not provide any information about messages nor invitations. A minimal static notification will show to indicate that Olvid requires your attention."; - -"Completely" = "Completely"; - -"New message" = "New message"; - -"Tap to see the message" = "Tap to see the message."; - -"Tap to see the invitation" = "Tap to see the invitation."; - -"Notifications" = "Notifications"; - -"Screen Lock" = "Screen Lock"; - -"Backup" = "Backup"; - -/* Explanation shown on on top of a backup key shown to the user. */ -"The backup key below will be used to encrypt all your Olvid backups. Please keep it in a safe place.\nOlvid will periodically check you are able to enter this key to ensure you do not lose access to your backups." = "The backup key below will be used to encrypt all your Olvid backups. Please keep it in a safe place.\nOlvid will periodically check you are able to enter this key to ensure you do note lose access to your backups."; - -/* Explanation shown below a backup key shown to the user. */ -"This is the only time this key will be displayed. If you lose it, you will need to generate a new one." = "This is the only time this key will be displayed. If you lose it, you will need to generate a new one."; - -/* "Button title shown to the user" */ -"I have copied the key" = "I have copied the key"; - -/* Title of the view showing a new backup key */ -"New backup key" = "New backup key"; - -"GENERATE_NEW_BACKUP_KEY" = "Generate a backup key"; - -"VERIFIY_OR_GENERATE_NEW_BACKUP_KEY" = "Verify or generate new backup key"; - -"Decline" = "Decline"; - -/* Table view section footer */ -"NO_BACKUP_KEY_GENERATED_YET" = "In order to perform encrypted backups of your contacts, groups, and settings, you first need to generate a backup key 🔐. No backup key has been generated yet."; - -/* Table view section header */ -"GENERATE_BACKUP_KEY_SECTION_TITLE" = "Backup key"; - -/* Table view section header */ -"MANUAL_BACKUP_TITLE" = "Manual backup"; - -/* Button title allowing to backup now */ -"BACKUP_AND_SHARE_NOW" = "Backup and share now"; - -/* Table view section footer */ -"MANUAL_BACKUP_EXPLANATION_FOOTER" = "Allows to export an encrypted backup of your contacts, groups, and settings (messages and attachments are not backuped). You can either share it (email it, save it to Files,...) or upload it directely to iCloud. Do not worry, this backup is encrypted 😇."; - -"Refresh group" = "Refresh group"; - -"Debug" = "Debug"; - -"Olvid requires the Background App Refresh to be turned on. Unfortunately it appears to be off. If you wish to use Olvid, please turn it back on.\n\nThe reason why this is required lies in the fact that Olvid regularly executes complex, multipass, cryptographic protocols in order to achieve a security level no other app can compete with. These protocols happen in the background and could not work if you had to manually launch Olvid each time a cryptographic computation has to be performed." = "Olvid requires the Background App Refresh to be turned on. Unfortunately it appears to be off. If you wish to use Olvid, please turn it back on.\n\nThe reason why this is required lies in the fact that Olvid regularly executes complex, multipass, cryptographic protocols in order to achieve a security level no other app can compete with. These protocols happen in the background and could not work if you had to manually launch Olvid each time a cryptographic computation has to be performed."; - -"Your contact published a new version of their Olvid card. Both the old and new versions are shown below.\n\nClick to update yout contact's informations with the new version." = "Your contact published a new version of their Olvid card. Both the old and new versions are shown below.\n\nClick to update yout contact's informations with the new version."; - -"Authorization Required" = "Authorization Required"; - -"Olvid is not authorized to access the camera. You can change this setting within the Settings app." = "Olvid is not authorized to access the camera 😱. You can change this setting within the Settings app."; - -"Could not delete group" = "Could not delete group"; - -"Please remove any pending/group member and try again." = "Please remove any pending/group member and try again."; - -"Olvid Card - Published" = "Olvid Card - Published"; - -"Olvid Card - Unpublished draft" = "Olvid Card - Unpublished draft"; - -"Actions" = "Actions"; - -"Share" = "Share"; - -"Export to File App" = "Export to File App"; - -"Show Contact" = "Show Contact"; - -"Open in Safari?" = "Open in Safari?"; - -"Do you wish to open %@ in Safari?" = "Do you wish to open %@ in Safari?"; - -"YOUR_ID_WAS_COPIED" = "Your ID was copied"; - -"YOUR_ID_WAS_COPIED_TO_CLIPBOARD_YOU_CAN_WRITE_EMAIL_AND_COPY_IT_THERE" = "Your ID was copied to the clipboard. You can now write an email or sms and copy it there."; - -"%1@ wants to introduce you to %2@.\n\nOlvid\'s security policy requires you to re-validate the identity of %2@ by exchanging 4-digit codes with them, or to invite %1@ directly." = "%1@ wants to introduce you to %2@.\n\nOlvid\'s security policy requires you to re-validate the identity of %2@ by exchanging 4-digit codes with them, or to invite %1@ directly."; - -"Fetching latest upload" = "Fetching latest upload..."; - -"CANNOT_FETCH_LATEST_UPLOAD" = "Cannot fetch latest upload. You might need to configure your iCloud account."; - -"Latest export: %@" = "Latest export: %@"; - -"No backup was exported yet." = "No backup was exported yet."; - -"Thank you!" = "Thank you!"; - -"Sorry..." = "Sorry..."; - -"Olvid failed to start properly. This is a terrible experience, we deeply appologize about this." = "Olvid failed to start properly. This is a terrible experience, we deeply appologize about this. Please be reassured, none of your data was lost."; - -"Send this to the development team" = "Send this to the development team"; - -"If you wish, you can help the development team by tapping the button below. This will share (only) the above message with them." = "If you wish, you can help the development team by tapping the button below. This will share (only) the following message with them."; - -"Please report this error to %1$@ so we can fix this issue as fast as possible." = "Restarting your device may fix this issue. If it does not, please report this error to %1$@ so we can fix this issue as fast as possible."; - -"Please fix this serious issue with Olvid" = "Please fix this serious issue with Olvid"; - -"Olvid failed to initialize with the following error message:\n\n%1$@" = "Olvid failed to initialize with the following error message:\n\n%1$@"; - -"Your identity is deactivated on this device since it is active on another device. This tipically happens when you restore a backup on a device: this deactivates your previous device." = "Your identity is deactivated on this device since it is active on another device. This tipically happens when you restore a backup on a device: this deactivates your previous device."; - -"What can I do?" = "What can I do?"; - -"You can still access your old discussions on this device, but you cannot send nor receive new messages. If you want to do so, you can tap on Reactivate this device. Please note that this will deactivate your other device." = "You can still access your old discussions on this device, but you cannot send nor receive new messages. If you want to do so, you can tap on \"Reactivate this device\". Please note that this will deactivate your other device."; - -"Reactivate my identity on this device" = "Reactivate this device"; - -"Current backup key generated: %@" = "Current backup key generated: %@"; - -"Verify backup key" = "Verify backup key"; - -"Enter backup key" = "Enter backup key"; - -"Forgot your backup key?" = "Forgot your backup key?"; - -"Please enter all the characters of your backup key." = "Please enter all the characters of your backup key."; - -"Please enter the backup key that was presented to you when you configured backups.\n\nThis key is the only way to decrypt the backup. If you lost it, backup restoration is impossible." = "Please enter the backup key that was presented to you when you configured backups.\n\nThis key is the only way to decrypt the backup. If you lost it, backup restoration is impossible."; - -"The backup key is correct" = "The backup key is correct"; - -"You may proceed with the restoration." = "You may proceed with the restoration."; - -"Restore this backup" = "Restore this backup"; - -"The backup key is incorrect" = "The backup key is incorrect"; - -"Please check your backup key and try again." = "Please check your backup key and try again."; - -"Please choose the location of the backup file you wish to restore." = "Please choose the location of the backup file you wish to restore."; - -"Choose From a file to pick a backup file create from a manual backup." = "Choose \"From a file\" to pick a backup file create from a manual backup."; - -"Choose From the cloud to select an account used for automatic backups." = "Choose \"From iCloud\" to select an account used for automatic backups."; - -"From a file" = "From a file"; - -"From the cloud" = "From iCloud"; - -"Backup file selected" = "Backup file selected"; - -"Proceed and enter backup key" = "Proceed and enter backup key"; - -"RESTORING_BACKUP_PLEASE_WAIT" = "Restoring backup. Please Wait."; - -"Restore failed 🥺" = "Restore failed 🥺"; - -"Try again" = "Try again"; - -"Welcome to Olvid!" = "Welcome to Olvid!"; - -"If you are a new Olvid user, simply click Continue as a new user below." = "If you are a new Olvid user, simply click \"Continue as a new user\" below."; - -"If you already used Olvid and want to restore your identity and contacts from a backup, click Restore a backup" = "If you already used Olvid and want to restore your identity and contacts from a backup, click \"Restore a backup\"."; - -"Continue as a new user" = "Continue as a new user"; - -"Restore a backup" = "Restore a backup"; - -"BACKUP_AND_UPLOAD_NOW" = "Backup and upload to iCloud now"; - -"AUTOMATIC_BACKUP" = "Automatic backup to iCloud"; - -"ENABLE_AUTOMATIC_BACKUP" = "Enable automatic backups to iCloud"; - -"AUTOMATIC_BACKUP_EXPLANATION" = "Activating this option allows to perform an automatic encrypted backup of your contacts, groups, and settings (messages and attachments are not backuped). Do not worry, this backup is encrypted 😇."; - -"Latest upload: %@" = "Latest upload: %@"; - -"⚠️ Latest failed upload: %@" = "⚠️ Latest failed upload: %@"; - -"No backup was uploaded yet." = "No backup was uploaded yet."; - -"Sign in to iCloud" = "Sign in to iCloud"; - -"iCloud status is unclear" = "iCloud status is unclear"; - -"iCloud access is restricted" = "iCloud access is restricted"; - -"Your iCloud account is not available. Access was denied due to Parental Controls or Mobile Device Management restrictions" = "Your iCloud account is not available. Access was denied due to Parental Controls or Mobile Device Management restrictions"; - -"Please sign in to your iCloud account to enable automatic backups. On the Home screen, launch Settings, tap iCloud, and enter your Apple ID. Turn iCloud Drive on. If you don't have an iCloud account, tap Create a new Apple ID." = "Please sign in to your iCloud account to enable automatic backups. On the Home screen, launch Settings, tap iCloud, and enter your Apple ID. Turn iCloud Drive on. If you don't have an iCloud account, tap Create a new Apple ID."; - -"AUTOMATIC_ICLOUD_BACKUPS" = "Automatic iCloud backups"; - -"iCloud backups list" = "iCloud backups list"; - -"Clean" = "Clean"; - -"CLEAN_OLD_BACKUPS" = "Delete old iCloud backups"; - -"CLEAN_OLD_BACKUPS_ON_ALL_DEVICES" = "Delete backups for all devices"; - -"CLEAN_OLD_BACKUPS_ON_CURRENT_DEVICE" = "Delete backups for this device"; - -"CLEAN_OLD_BACKUPS_TITLE" = "Delete old iCloud backups?"; - -"CLEAN_OLD_BACKUPS_MESSAGE" = "Delete all iCloud backups but the last one."; - -"CLEAN_LATEST_BACKUP_FOR_OTHER_DEVICE_TITLE" = "Delete the latest iCloud backup of another device?"; - -"CLEAN_LATEST_BACKUP_FOR_OTHER_DEVICE_MESSAGE" = "Please note that you are about to delete the latest iCloud backup of another device."; - -"CLEAN_LATEST_BACKUP_FOR_CURRENT_DEVICE_TITLE" = "Delete the latest iCloud backup?"; - -"CLEAN_LATEST_BACKUP_FOR_CURRENT_DEVICE_MESSAGE" = "Please note that you are about to delete the latest iCloud backup."; - -"Automatic iCloud backup cleaning" = "Automatic old iCloud backups deletion"; - -"Copy Documents URL" = "Copy Documents URL"; - -"Copy App Database URL" = "Copy App Database URL"; - -"Backup creation date: %@" = "Backup creation date: %@"; - -"Please sign in to your iCloud account. On the Home screen, launch Settings, tap iCloud, and enter your Apple ID. Turn iCloud Drive on." = "Please sign in to your iCloud account. On the Home screen, launch Settings, tap iCloud, and enter your Apple ID. Turn iCloud Drive on."; - -"Sign in to iCloud" = "Sign in to iCloud"; - -"Unexpected iCloud file error" = "Unexpected iCloud file error"; - -"We could not retrieve the encrypted backup content from iCloud" = "We could not retrieve the encrypted backup content from iCloud"; - -"We could not retrieve the creation date of the backup content from iCloud" = "We could not retrieve the creation date of the backup content from iCloud"; - -"We could not retrieve the device name of the backup content from iCloud" = "We could not retrieve the device name associated to the backup content from iCloud"; - -"iCloud error" = "iCloud error"; - -"No backup available in iCloud" = "No backup available in iCloud"; - -"We could not find any backup in you iCloud account. Please make sure this device uses the same iCloud account as the one you were using on the previous device." = "We could not find any backup in you iCloud account. Please make sure this device uses the same iCloud account as the one you were using on the previous device."; - -"Generate new backup key?" = "Generate new backup key?"; - -"Please note that generating a new backup key will invalidate all your previous backups. If you generate a new backup key, please create a fresh backup right afterwards." = "Please note that generating a new backup key will invalidate all your previous backups. If you generate a new backup key, please create a fresh backup right afterwards."; - -"Generate new backup key now" = "Generate new backup key now"; - -"Export App Database" = "Export App Database"; - -"Export Engine Database" = "Export Engine Database"; - -"Custom Display Name" = "Custom Display Name"; - -"Full Display Name" = "Full Display Name"; - -"Identity" = "Identity"; - -"Devices" = "Devices"; - -"USE_CALLKIT" = "Use CallKit"; - -"BUTTON_TITLE_AUTHENTICATE" = "Authenticate"; - -"VoIP" = "VoIP"; - -"CALL_STATE_NEW" = "New call..."; - -"CALL_STATE_GETTING_TURN_CREDENTIALS" = "Authentication..."; - -"CALL_STATE_KICKED" = "Excluded"; - -"USER_HAS_BEEN_KICKED" = "You were excluded from the call."; - -"CALL_STATE_INCOMING_CALL_MESSAGE_WAS_POSTED" = "Connecting..."; - -"CALL_STATE_INITIALIZING_CALL" = "Initializing call..."; - -"CALL_STATE_USER_ANSWERED_INCOMING_CALL" = "Incoming call accepted..."; - -"CALL_STATE_CONNECTING_TO_PEER" = "Connection..."; - -"CALL_STATE_CONNECTED" = "Connected"; - -"CALL_STATE_BUSY" = "Busy"; - -"CALL_STATE_RECONNECTING" = "Reconnection"; - -"CALL_STATE_RINGING" = "Ringing..."; - -"CALL_STATE_CALL_REJECTED" = "Call rejected"; - -"CALL_STATE_CALL_IN_PROGRESS" = "Call in progress"; - -"CALL_STATE_HANGED_UP" = "Hanged up"; - -"Restore" = "Restore"; - -"Could not read backup file" = "Could not read backup file"; - -"Speaker" = "Speaker"; - -"ALERT_TITLE_KICK_PARTICIPANT" = "Exclude contact from call?"; - -"ALERT_MESSAGE_KICK_PARTICIPANT_%@" = "Do you really wish to exclude %@ from this call?"; - -"Exclude" = "Exclude"; - -"DO_NO_SHOW_MSG_AGAIN" = "Do not show this message again"; - -"TITLE_RESET_ALL_ALERTS" = "Reset all alerts"; - -"TITLE_HELP_FAQ" = "Help/FAQ"; - -"ALERT_MSG_OUTGOING_CALL_FAILED_USER_DENIED_RECORDING" = "To make this call, you need to allow Olvid to access the microphone. Open Settings and turn on the Microphone"; - -"ALERT_VOICE_MESSAGE_FAILED_USER_DENIED_RECORDING" = "To record a voice message, you need to allow Olvid to access the microphone. Open Settings and turn on the Microphone"; - -"CALL_STATE_PERMISSION_DENIED_BY_SERVER" = "Connection denied by the server"; - -"INCLUDE_CALL_IN_RECENTS" = "Include calls in iOS call log"; - -"Pending" = "Pending"; - -"MISSED_CALL" = "Missed Call"; - -"MISSED_CALL_FILTERED" = "Missed call while you were in \"Focus\" mode."; - -"ACCEPTED_OUTGOING_CALL" = "Outgoing call"; - -"ACCEPTED_INCOMING_CALL" = "Incoming call"; - -"ANY_OUTGOING_CALL" = "Outgoing call..."; - -"ANY_INCOMING_CALL" = "Incoming call..."; - -"REJECTED_OUTGOING_CALL" = "Rejected outgoing call"; - -"REJECTED_INCOMING_CALL" = "Rejected incoming call"; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_UNDETERMINED" = "The incoming call was rejected because Olvid is not allowed to access the microphone. Please tap on this message to allow Olvid to access the Microphone."; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_UNDETERMINED_NOTIFICATION_BODY" = "To received a call, you need to allow Olvid to access the microphone. Please tap on this notification to allow Olvid to access the microphone."; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_GRANTED" = "The incoming call was rejected because Olvid was not allowed to access the Microphone. Fortunately, since then, this autorisation was granted. You won't miss a call again 🥳!"; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_DENIED" = "The incoming call was rejected because Olvid is not allowed to access the Microphone. To never miss a call again, please go to Settings and grant Olvid access to the microphone."; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_DENIED_NOTIFICATION_BODY" = "The incoming call was rejected because Olvid was not allowed to access the Microphone. To never miss a call again, please go to Settings and grant Olvid access to the microphone."; - -"BUSY_OUTGOING_CALL" = "Busy outgoing call"; - -"UNANSWERED_OUTGOING_CALL" = "Unanswered outgoing call"; - -"UNCOMPLETED_OUTGOING_CALL" = "Uncompleted outgoing call"; - -"CHOOSE_PREFERRED_AUDIO_SOURCE" = "Choose your preferred audio source"; - -"SECURE_CALL_IN_PROGRESS" = "Secure call in progress"; - -"SECURING_CALL_LINE" = "Securing line"; - -"UNANSWERED" = "Unanswered"; - -"WITH_%@" = "with %@"; - -"FROM_%@" = "from %@"; - -"AND_ONE_OTHER" = "and one other"; - -"AND_%@_OTHERS" = "and %@ others"; - -"Hangup" = "Hangup"; - -"HOW_DO_YOU_WANT_TO_SHARE_ID" = "How do you want to share your ID?"; - -"SHARE_MY_ID" = "Share my ID"; - -"SCAN_CONTACT_ID" = "Scan contact ID"; - -"SHARING_YOUR_ID_ALLOWS_OTHERS_TO_INVITE_YOU_REMOTELY" = "Sharing your ID allows another Olvid user to invite you."; - -"SCANNING_CONTACT_ID_ALLOWS_YOU_TO_INVITE_THEM_NOW" = "Scanning the ID of another user allows you to invite them."; - -"Show my Id" = "Show my ID"; - -"Olvid is not authorized to access the camera. Because your settings are restricted, there is nothing we can do about this. Please contact your administrator." = "Olvid is not authorized to access the camera. Because your settings are restricted, there is nothing we can do about this. Please contact your administrator."; - -"Do you wish to send an invite to %@?" = "Do you wish to send an invite to %@?"; - -"YOUR_ID_WAS_COPIED_TO_CLIPBOARD" = "Your ID was copied to clipboard"; - -"Oops..." = "Oops..."; - -"What you pasted doesn't seem to be an Olvid identity 🧐" = "What you pasted doesn't seem to be an Olvid ID 🧐"; - -"THIS_ID_IS_THE_ONE_YOU_OWN" = "This ID is the one you own 😇."; - -"Add new contact" = "Add new contact"; - -"SUBSCRIBING_TO_USER_NOTIFICATIONS_EXPLANATION" = "Olvid works best if you are notified of new messages & invitations! On the next screen, you will get a chance to subscribe to user notifications.\n\nYou can always change your mind later 😇."; - -"CONTINUE" = "Continue"; - -"SCAN" = "Scan"; - -"COPY_MY_ID_TO_CLIPBOARD" = "Copy my ID to clipboard"; - -"PASTE_CONTACT_ID_FROM_CLIPBOARD" = "Paste contact ID from clipboard"; - -"More invitations methods" = "Additional methods for adding a contact"; - -"CHOOSE_GROUP_MEMBERS" = "Choose group members"; - -"You successfully introduced %@ to %@ and %d other contacts" = "You successfully introduced %@ to %@ and %d other contact(s)"; - -"EDIT_MY_ID" = "Edit my ID"; - -"SUBSCRIPTION_STATUS" = "Subscription status"; - -"Premium features tryout" = "Premium features tryout"; - -"No active subscription" = "No active subscription"; - -"Valid license" = "Valid license"; - -"Invalid subscription" = "Invalid subscription"; - -"Subscription expired" = "Subscription expired"; - -"This subscription is already associated to another user" = "This subscription is already associated to another user"; - -"FORM_FIRST_NAME" = "First name"; - -"FORM_LAST_NAME" = "Last name"; - -"FORM_POSITION" = "Position"; - -"FORM_COMPANY" = "Company"; - -"PUBLISH_MY_ID" = "Publish my ID"; - -"PUBLISH_NEW_ID" = "Publish your new ID?"; - -"ARE_YOU_SURE_PUBLISH_NEW_OWNED_ID" = "Once published, all your contacts will receive your new ID."; - -"Premium features are available for a limited period of time" = "Premium features are available for a limited period of time."; - -"Free features" = "Free features"; - -"Premium features" = "Premium features"; - -"Sending & receiving messages and attachments" = "Sending & receiving messages and attachments"; - -"Create groups" = "Create groups"; - -"Receive secure calls" = "Receive secure calls"; - -"Make secure calls" = "Make secure calls"; - -"NEW_LICENSE_TO_ACTIVATE" = "New license to activate"; - -"CURRENT_LICENSE_STATUS" = "Current license status"; - -"ACTIVATE_NEW_LICENSE" = "Activate new license"; - -"Confirm invite" = "Confirm invite"; - -"Premium features free trial" = "Premium features free trial"; - -"Premium features available for free" = "Premium features available for free"; - -"Valid until %@" = "Valid until %@"; - -"Premium features available until %@" = "Premium features available until %@"; - -"Fallback to free version" = "Fallback to free version"; - -"See subscription plans" = "See subscription plans"; - -"Available subscription plans" = "Available subscription plans"; - -"Looking for available subscription plans" = "Looking for available subscription plans"; - -"Get access to premium features for free for one month. This free trial can be activated only once." = "Get access to premium features for free for 30 days. This free trial can be activated only once."; - -"Start free trial now" = "Start free trial now"; - -"Free Trial" = "Free trial"; - -"Subscribe now" = "Subscribe now"; - -"month" = "month"; - -"Free" = "Free"; - -"Sorry, it seems you are not allowed to issue the request 😢." = "Sorry, it seems you are not allowed to issue the request 😢."; - -"Ok, the payment was successfully cancelled." = "Ok, the payment was successfully cancelled."; - -"Sorry, it seems you are not allowed to make the payment 😢." = "Sorry, it seems you are not allowed to make the payment 😢."; - -"Sorry, the product is not available in your store 😢." = "Sorry, the product is not available in your store 😢."; - -"The purchase failed because you did not allowed access to cloud service information 😢." = "The purchase failed because you did not allowed access to cloud service information 😢."; - -"Sorry, the purchase failed because we could not connect to the nework 😢. Please try again later." = "Sorry, the purchase failed because we could not connect to the nework 😢. Please try again later."; - -"Sorry, the purchase failed because you still need to acknowledge Apple's privacy policy 😢." = "Sorry, the purchase failed because you still need to acknowledge Apple's privacy policy 😢."; - -"Sorry, the purchase failed 😢. Please try again later or contact us if this problem is recurring." = "Sorry, the purchase failed 😢. Please try again later or contact us if this problem is recurring."; - -"Your purchase must be approved before it can go through." = "Your purchase must be approved before it can go through."; - -"Manage your subscription" = "Manage your subscription"; - -"START_USING_OLVID" = "Welcome to Olvid 😇"; - -"OWNED_IDENTITY_GENERATED_EXPLANATION" = "You just finished Olvid's configuration!\n\nNo data (first name, last name,...) was ever transmitted to our servers. Everything stays on your device.\n\nDid you notice that we did not ask for your phone number nor your email address?\n\nAnd unlike your previous messenger, Olvid will never request access to your address book."; - -"Restore Purchases" = "Restore Purchases"; - -"Manage payments" = "Manage payments"; - -"We found no purchase to restore." = "We found no purchase to restore."; - -"Premium features are available for free until %@" = "Premium features are available for free until %@"; - -"Refresh status" = "Refresh status"; - -"Looking for the new license" = "Looking for the new license"; - -"SUBSCRIPTION_REQUIRED" = "Subscription required"; - -"BUTTON_LABEL_CHECK_SUBSCRIPTION" = "Check subscription status"; - -"MESSAGE_SUBSCRIPTION_REQUIRED_CALL" = "Initiating secure phone calls with Olvid requires a subscription.\n\nYou can check your current subscription status and see available subscription plans on the \"My ID\" page."; - -"MESSAGE_SUBSCRIPTION_REQUIRED_GENERIC" = "Th requested feature requires a subscription.\n\nYou can check your current subscription status and see available subscription plans on the \"My ID\" page."; - -"License activation" = "License activation"; - -"BILLING_GRACE_PERIOD" = "Billing Grace Period"; - -"GRACE_PERIOD_ENDS_ON_%@" = "Grace period ends on %@"; - -"GRACE_PERIOD_ENDED" = "Grace period ended"; - -"GRACE_PERIOD_ENDED_ON_%@" = "Grace period ended on %@"; - -"TERMS_OF_USE" = "Terms of use"; - -"PRIVACY_POLICY" = "Privacy policy"; - -"FREE_TRIAL_EXPIRED" = "Free trial expired"; - -"FREE_TRIAL_ENDED_ON_%@" = "The free trial expired on %@"; - -"Premium subscription" = "Premium subscription"; - -"Unlock all premium features in Olvid" = "Unlock all premium features in Olvid."; - -"Allow all api key activations" = "Allow all api key activations"; - -"The backup could not be recovered" = "The backup could not be recovered"; - -"The backuped data could not be decrypted." = "The backuped data could not be decrypted."; - -"The integrity check of the backuped data failed." = "Are you sure this is the correct backup key?"; - -"The backup could not be recovered (error code: %@)." = "The backup could not be recovered (error code: %@)."; - -"The backup file could not be read" = "The backup file could not be read"; - -"USE_LOAD_BALANCED_TURN_SERVERS" = "Use load balanced turn servers"; - -"WIPE_AFTER_READ_SECTION_HEADER" = "Wipe after read"; - -"WIPE_AFTER_PICKER_LABEL" = "Wipe after"; - -"TIMER_PICKER_LABEL" = "Timer"; - -"MESSAGE_EXPIRATION_SECTION_HEADER" = "Message expiration"; - -"EXPIRE_PICKER_LABEL" = "Expiration"; - -"EXPIRATION_SETTINGS_TITLE" = "Ephemeral messages"; - -"READ_ONCE" = "Read once"; - -"Timer" = "Timer"; - -"AFTER_DATE" = "After date"; - -"AFTER_TIMER" = "After timer"; - -"TEN_SECONDS" = "10 seconds"; - -"ONE_MINUTE" = "1 minute"; - -"FIVE_MINUTE" = "5 minutes"; - -"ONE_HOUR" = "1 hour"; - -"EIGHT_HOURS" = "8 hours"; - -"ONE_DAY" = "1 day"; - -"FIFTEEN_DAYS" = "15 days"; - -"TWO_DAYS" = "2 days"; - -"ONE_WEEK" = "1 week"; - -"FOUR_WEEKS" = "4 weeks"; - -"INDEFINITELY" = "indefinitely"; - -"DATE" = "Date"; - -"MESSAGE_WAS_WIPED" = "Last message was wiped 🧹"; - -"READ_ONCE_SECTION_HEADER" = "Delete"; - -"READ_ONCE_LABEL" = "Read once"; - -"TAP_TO_READ" = "Click to view\nmessage content"; - -"AUTO_READ_LABEL" = "Auto read"; - -"EPHEMERAL_MESSAGE" = "Ephemeral message"; - -"DEFAULT_DISCUSSION_SETTINGS" = "Default settings for this discussion"; - -"DRAFT_EXPIRATION_EXPLANATION" = "Use the settings below to modify the visibility and existence durations of your next message. You may only use more restrictive settings than the discussion's default."; - -"Reset" = "Reset"; - -"ACTIVATE_NEW_LICENSE_CONFIRMATION_TITLE" = "Activate the license?"; - -"DO_YOU_WISH_TO_ACTIVATE_API_KEY" = "Any previous license will be lost. Do you wish to activate the new license?"; - -"Expired since %@" = "Expired since %@"; - -"FALLBACK_FREE_VERSION_WARNING" = "Are you sure you wish to fallback to the free version of Olvid? Any existing subscription advantage would be lost."; - -"Wiped" = "Wiped"; - -"WIPED_MESSAGE" = "Wiped message 🧹"; - -"WIPED_MESSAGE_BY_%@" = "Message deleted by %@"; - -"EXPIRATION_SETTINGS_EXPLANATION" = "The settings below are shared between all participants in this discussion. Changing them will affect the default visibility and existence duration of messages sent by all participants."; - -"READ_ONCE_SECTION_FOOTER" = "When activated, messages and attachments are displayed only once, and are deleted when exiting the discussion."; - -"LIMITED_VISIBILITY_SECTION_FOOTER" = "When activated, messages and attachments are visible for a limited period of time after they have been read."; - -"LIMITED_VISIBILITY_LABEL" = "Visibility duration"; - -"LIMITED_EXISTENCE_SECTION_FOOTER" = "When activated, messages and attachments are auto-deleted after a limited period of time."; - -"LIMITED_EXISTENCE_SECTION_LABEL" = "Existence duration"; - -"FIVE_SECONDS" = "5 seconds"; - -"THIRTY_SECONDS" = "30 seconds"; - -"TWO_MINUTES" = "2 minutes"; - -"THIRTY_MINUTES" = "30 minutes"; - -"SIX_HOUR" = "6 hours"; - -"TWELVE_HOURS" = "12 hours"; - -"SEVEN_DAYS" = "7 days"; - -"THIRTY_DAYS" = "30 days"; - -"NINETY_DAYS" = "90 days"; - -"ONE_HUNDRED_AND_HEIGHTY_DAYS" = "180 days"; - -"ONE_YEAR" = "1 year"; - -"AUTO_READ_SECTION_FOOTER" = "Automaticall open ephemeral messages."; - -"RETAIN_WIPED_OUTBOUND_MESSAGES_LABEL" = "Retain wiped ephemeral outbound messages"; - -"RETAIN_WIPED_OUTBOUND_MESSAGES_SECTION_FOOTER" = "When activated, outbound ephemeral messages are not deleted when they expire, but replaced by a static text."; - -"THREE_YEAR" = "3 years"; - -"FIVE_YEAR" = "5 years"; - -"Mute" = "Mute"; - -"MUTE_NOTIFICATIONS" = "Mute notifications"; - -"UNMUTE_NOTIFICATIONS" = "Unmute notifications"; - -"UNMUTED_NOTIFICATIONS_FOOTER" = "When activated, you won't be notified of new messages in this discussion."; - -"MUTED_NOTIFICATIONS_FOOTER_UNTIL_%@" = "New message notifications muted until %@"; - -"MUTED_NOTIFICATIONS_CONFIRMATION_%@" = "New message notifications muted until %@.\nDo you want to unmute them?"; - -"MUTED_NOTIFICATIONS_FOOTER_INDEFINITELY" = "New message notifications muted indefinitely"; - -"SEND_READ_RECEIPT_SECTION_FOOTER" = "When activated, your contacts will be notified when you have read their messages within this discussion."; - -"SEND_READ_RECEIPTS_LABEL" = "Send read receipts"; - -"SHOW_RICH_LINK_PREVIEW_LABEL" = "Show rich link previews"; - -"NOTIFICATION_SOUNDS_LABEL" = "Notification sound"; - -"MODIFIED_SHARED_SETTINGS_CONFIRMATION_TITLE" = "Modified shared ephemeral message settings"; - -"MODIFIED_SHARED_SETTINGS_CONFIRMATION_MESSAGE" = "You have modified the message settings for this discussion.\n\nDo you want to update these settings for you and all other discussion participants, or do you want to discard your changes?"; - -"Discard" = "Discard"; - -"DISCUSSION_SHARED_SETTINGS_WERE_UPDATED" = "Discussion shared settings were updated"; - -"NON_EPHEMERAL_MESSAGES_LABEL" = "Non-ephemeral messages"; - -"GLOBAL_EXPIRATION_SETTINGS_EXPLANATION" = "The settings below will be applied to all new one-to-one discussions and to all new group discussions that you create. Please note that these settings will be shared among all the participant of the discussion."; - -"ONLY_GROUP_OWNER_CAN_MODIFY" = "Only a group administrator can modify these settings."; - -"UNREAD_EPHEMERAL_MESSAGE" = "Unread ephemeral message"; - -"All logs" = "All logs"; - -"Unlimited" = "Unlimited"; - -"RETENTION_SETTINGS_TITLE" = "Message retention policy"; - -"GLOBAL_RETENTION_SETTINGS_EXPLANATION" = "The settings below allow you to automatically delete old messages in your discussions. They can be overidden in each discussion."; - -"COUNT_BASED_LABEL" = "Count based"; - -"COUNT_BASED_KEEP_ALL" = "Keep all"; - -"COUNT_BASED_SECTION_FOOTER" = "Old messages will be regularly deleted, so as to keep the number of message per discussion less than the value you enter here."; - -"KEEP_%lld_MESSAGES" = "Keep %lld messages"; - -"TIME_BASED_LABEL" = "Time based"; - -"TIME_BASED_SECTION_FOOTER" = "If activated, messages older than the specified time will be regularly deleted."; - -"LOCAL_RETENTION_SETTINGS_EXPLANATION" = "The settings below allow you to automatically delete old messages in this discussion."; - -"EPHEMERAL_MESSAGES" = "Ephemeral messages"; - -"LOCAL_CONFIG" = "Local configuration"; - -"SHARED_CONFIG" = "Shared configuration"; - -"COUNT_BASED_SINGLE_DISCUSSION_SECTION_FOOTER" = "Old messages will be regularly deleted from this discussion, so as to keep the number of message less than the value you enter here."; - -"LOCAL_EPHEMERAL_SETTINGS_EXPLANATION" = "The settings below allow you to locally customize how ephemeral messages behave within this discussion. These settings are not shared with other participants."; - -"TIME_BASED_SINGLE_DISCUSSION_SECTION_FOOTER" = "If activated, messages older than the specified time will be regularly deleted from this discussion."; - -"EXPECTED_DELETION_DATE" = "Deletion date"; - -"RETENTION_INFO_LABEL" = "Message retention information"; - -"NUMBER_OF_MESSAGES_BEFORE_DELETION" = "Number of new messages before deletion"; - -"WILL_SOON_BE_DELETED" = "This message will soon be deleted"; - -"NO_MESSAGE" = "No message"; - -"SETTINGS_UPDATE_TITLE" = "Settings update"; - -"ACCESS_TO_ADVANCED_SETTINGS" = "Access to advanced settings"; - -"SKIP_SAS_DURING_WEBCLIENT_TESTING" = "Skip the SAS during the webclient testing"; - -"USE_SCALED_TURN" = "Use scaled turn servers for VoIP"; - -"Received" = "Received"; - -"Remotely wiped" = "Remotely wiped"; - -"Remotely wiped by %@" = "Remotely wiped by %@"; - -"Perform the deletion for all users" = "Perform the deletion for all users"; - -"REMOTE_WIPED_MESSAGE" = "Remotely wiped"; - -"Delete all messages for all users" = "Delete all messages for all users"; - -"Delete all messages for all users?" = "Delete all messages for all users?"; - -"Do you wish to delete all the messages on all the devices of all the users of this discussion? This action is irrevisble." = "Do you wish to delete all the messages on all the devices of all the users of this discussion? This action is irreversible."; - -"This discussion was remotely wiped by %@ on %@" = "This discussion was remotely wiped by %@ on %@"; - -"This discussion was remotely wiped by %@" = "This discussion was remotely wiped by %@"; - -"EDIT_YOUR_MESSAGE" = "Edit your message"; - -"UPDATE_YOUR_ALREADY_SENT_MESSAGE" = "Update your already sent message"; - -"Edited" = "Edited"; - -"Edit" = "Edit"; - -"CREATE_MY_ID" = "Create my profile"; - -"TAKE_PICTURE" = "Take a photo"; - -"CHOOSE_PICTURE" = "Choose a photo"; - -"REMOVE_PICTURE" = "Remove the photo"; - -"PROFILE_PICTURE" = "Profile picture"; - -"ENTER_GROUP_DETAILS" = "New group details"; - -"GROUP_NAME" = "Group name"; - -"GROUP_DESCRIPTION" = "Group description"; - -"PUBLISH_NEW_GROUP" = "Publish this new group?"; - -"ARE_YOU_SURE_CREATE_NEW_OWNED_GROUP" = "Do you wish to create this new group now?"; - -"CREATE_MY_GROUP" = "Create the group now"; - -"CREATE_GROUP" = "Create the group"; - -"EDIT_GROUP" = "Edit group"; - -"PUBLISH_GROUP" = "Publish group changes"; - -"ARE_YOU_SURE_PUBLISH_EDITED_OWNED_GROUP" = "Do you you wish to publish the group changes?"; - -"PUBLISH_MY_GROUP" = "Publish group changes"; - -"INTRODUCE_%@_TO" = "Introduce %@ to..."; - -"ON_MY_DEVICE_%@" = "On my %@"; - -"DELETE_CONTACT" = "Delete contact"; - -"UPDATE_DETAILS" = "Use new details"; - -"START_HERE" = "Add your first contact!"; - -"IDENTITY_CREATION_OPTION_TITLE" = "Options"; - -"IDENTITY_CREATION_OPTION_EXPLANATION" = "This screen lets you choose additional options for the creation of your Olvid identity. You can enter the options manually or scan a configuration QR-code."; - -"VALIDATE_OPTIONS" = "Validate options"; - -"OLVID_SERVER" = "Olvid server"; - -"LICENSE_ACTIVATION_CODE" = "License activation code"; - -"UNABLE_TO_CHECK_LICENSE_STATUS" = "Unable to check license status"; - -"CHECK_SERVER_AND_LICENSE_ACTIVATION_CODE" = "Please check the server url as well as the license activation code."; - -"Server: %@" = "Server: %@"; - -"LEAVE_BLANK_IF_USING_THE_DEFAULT_ACTIVATION_CODE" = "Leave blank to use the default code."; - -"SERVER_URL" = "Server URL"; - -"PASTED_STRING_IS_NOT_VALID_OLVID_CONFIG" = "What you just pasted does not seem to be a valid Olvid configuration link 🤔."; - -"IDENTITY_SETTINGS" = "Identity settings"; - -"PASTE_CONFIGURATION_LINK" = "Paste a configuration from the clipboard"; - -"IDENTITY_PROVIDER_OPTION_EXPLANATION" = "This screen lets you to manually configure your company's identity provider. If you received a configuration link (or QR code), please tap on \"Back\" and tap the link or scan the code. This will make the onboarding process much easier 😇.\n\nPlease contact your administrator for more details."; - -"IDENTITY_PROVIDER_SERVER" = "Identity provider server"; - -"SERVER_CLIENT_ID" = "Client ID"; - -"SERVER_CLIENT_SECRET" = "Client Secret"; - -"IDENTITY_PROVIDER" = "Identity provider"; - -"VALIDATE_SERVER" = "Validate server"; - -"AUTHENTICATE" = "Authenticate"; - -"IDENTITY_SERVER_VALIDATION_FAILED" = "The identity server validation failed"; - -"CHECK_IDENTITY_SERVER" = "Please check the URL of the identity server"; - -"AUTHENTICATION_FAILED" = "Authentication failed"; - -"CHECK_IDENTITY_SERVER_PARAMETERS" = "Please check the identity provider parameters."; - -"Identity Server: %@" = "Identity Server: %@"; - -"EXPLANATION_MANAGED_IDENTITY" = "The name above was retrieved from your Identity provider and can't be changed. You may still choose a profile picture. These details will never be sent to Olvid's servers."; - -"ENTER_API_KEY" = "Enter a license key"; - -"SCAN_QR_CODE_CONFIGURATION" = "Scan a configuration QR code"; - -"Successfully revoked previous Olvid ID" = "You previous ID was revoked."; - -"Search" = "Search"; - -"SEARCH_HERE" = "Search for a contact within your company 🔎"; - -"UNABLE_TO_PERFORM_KEYCLOAK_SEARCH" = "Search could not be performed."; - -"Confirmation" = "Confirmation"; - -"Do you wish to add %@ to your contacts?" = "Do you wish to add %@ to your contacts?"; - -"ADD_TO_CONTACTS" = "Add to contacts"; - -"NEW_DETAILS_EXPLANATION_%@_%@" = "%1$@ updated their details. If you wish to use these new details instead of those currently on your %2$@, please tap the button bellow."; - -"ESTABLISHING_SECURE_CHANNEL" = "Establishing a secure discussion channel"; - -"ESTABLISHING_SECURE_CHANNEL_EXPLANATION" = "A secure discussion channel is currently being created. This process should take a few seconds if both you and your contact are online.\n\nIf you believe that something went wrong, you can restart the channel creation."; - -"RESTART_CHANNEL_CREATION" = "Restart secure channel creation"; - -"Restart" = "Restart"; - -"RECREATE_CHANNEL" = "Recreate secure channel"; - -"Do you really wish to recreate the secure channel?" = "Do you really wish to recreate the secure channel?"; - -"REALLY_DELETE_CONTACT" = "If you delete this contact, you will no longer be able to exchange messages with them.\n\nDo you still wish to delete this contact?"; - -"TRUST_ORIGIN_TITLE_DIRECT" = "One-to-one verification"; - -"TRUST_ORIGIN_TITLE_INTRODUCTION_%@" = "Introduced by %@"; - -"INTRODUCED_BY_FORMER_CONTACT" = "Introduced by a former contact"; - -"TRUST_ORIGIN_TITLE_GROUP" = "Introduced as part of a group discussion"; - -"TRUST_ORIGINS" = "Trust origins"; - -"Chat" = "Chat"; - -"Call" = "Call"; - -"CALL_BACK" = "Call back"; - -"CUSTOM_KEYBOARD_MANAGEMENT" = "Custom keyboards management"; - -"ALLOW_CUSTOM_KEYBOARDS" = "Allow custom keyboards"; - -"CUSTOM_KEYBOARD_MANAGEMENT_EXPLANATION" = "Any change to this parameter will require a complete restart of Olvid before it can take effect."; - -"IDENTITY_SERVER" = "Identity server"; - -"BAD_KEYCLOAK_SERVER_RESPONSE" = "There is something wrong with the identity server 😨. Please contact your administrator."; - -"Unavailable" = "Unavailable"; - -"EDIT_CONTACT_NICKNAME_EXPLANATION_%@" = "You can choose a nickname and a custom profile picture for your contact. They will only appear on your %@, and won't be shared with anyone."; - -"Save" = "Save"; - -"Reset" = "Reset"; - -"FORM_NICKNAME" = "Nickname"; - -"EDIT_CONTACT_NICKNAME" = "Edit nickname and picture"; - -"TEXT_EXPLANATION_WARNING_IDENTITY_CREATION_KEYCLOAK_REVOCATION_NEEDED" = "Your identity provider indicates that an Olvid ID is already associated to the user you signed in as. If you proceed, this Olvid ID will be revoked and your new one will be associated to this user.\n\nPlease contact your administrator for more details."; - -"WARNING" = "Warning"; - -"TEXT_EXPLANATION_WARNING_IDENTITY_CREATION_KEYCLOAK_REVOCATION_IMPOSSIBLE" = "Your identity provider indicates that an Olvid ID is already associated to the user you signed in as. You cannot proceed with the creation of your identity.\n\nPlease contact your administrator for more details."; - -"DIALOG_TITLE_IDENTITY_PROVIDER_ERROR" = "Identity provider error"; - -"DIALOG_MESSAGE_FAILED_TO_UPLOAD_IDENTITY_TO_KEYCLOAK" = "Olvid was unable to upload your Olvid ID to your company's identity provider. It will be retried in the background."; - -"LAST_MESSAGE_WAS_REMOTELY_WIPED" = "Last message was remotely wiped"; - -"UNABLE_TO_ACTIVATE_LICENSE_TITLE" = "Unable to activate license"; - -"UNABLE_TO_ACTIVATE_LICENSE_EXPLANATION" = "Your Olvid ID is currently managed by your company's identity provider. You cannot manually activate an Olvid license."; - -"PLEASE_CONTACT_ADMIN_FOR_MORE_DETAILS" = "Please contact your administrator for more details."; - -"EXPLANATION_KEYCLOAK_UPDATE_NEW" = "You are about to configure your company's identity provider in Olvid. Once configured, you can authenticate with this server and Olvid will let you to seamlessly add other employees to your contacts."; - -"LABEL_BIND_KEYCLOAK" = "Use an identity provider"; - -"BUTTON_LABEL_MANAGE_KEYCLOAK" = "Switch to a managed ID"; - -"EXPLANATION_KEYCLOAK_BIND" = "The name above was retrieved from your company's identity provider. Once your Olvid ID is managed by your this provider, this is how your contacts will see you in Olvid."; - -"EXPLANATION_KEYCLOAK_UPDATE_BAD_SERVER" = "Olvid was unable to configure your company's identity provider with your current Olvid ID because your ID was generated on a different Olvid server."; - -"REMOVE_IDENTITY_PROVIDER" = "Remove identity provider"; - -"DIALOG_MESSAGE_UNBIND_FROM_KEYCLOAK" = "Your Olvid ID is currently managed by your company's identity provider. You are about to switch to a normal, un-managed, Olvid ID.\n\nIf you proceed, you will no longer be able to seamlessly add contacts from your company to Olvid. Please contact your administrator for more details.\n\nDo you wish to proceed?"; - -"GLOBAL_LOCAL_EPHEMERAL_SETTINGS_EXPLANATION" = "The settings below allow you to locally customize the default behavior of ephemeral messages. These settings are not shared with other discussion participants."; - -"GLOBAL_LOCAL_EPHEMERAL_SETTINGS_EXPLANATION" = "The settings below allow you to locally customize the default behavior of ephemeral messages. These settings are not shared with other discussion participants."; - -"SERVER_DOES_NOT_SUPPORT_CALLS" = "The server does not support calls."; - -"STD_MSG_OLVID_TAKES_TOO_LONG_TO_START" = "Olvid seems to take longer than usual to start. This typically occurs after installing a new version. Please be reassured, none of your data was lost."; - -"SHARE_MSG_OLVID_TAKES_TOO_LONG_TO_START" = "If the problem persists, you can help the development team by tapping the button below. This will share (only) the following message with them."; - -"ADDING_KEYCLOAK_CONTACT_FAILED" = "Failed to add contact"; - -"PLEASE_TRY_AGAIN_LATER" = "Please try again later"; - -"AUTHENTICATION_FAILED" = "Authentication failed"; - -"PLEASE_TRY_AGAIN" = "Please try again"; - -"COULD_NOT_SWITCH_TO_MANAGED_ID" = "Could not switch to a managed ID"; - -"UNABLE_TO_ACTIVATE_LICENSE_EXPLANATION_ALT" = "The message distribution server associated with your Olvid ID is incompatible with the server indicated within the license"; - -"CONTACTS_SORT_ORDER" = "Contact sort order"; - -"FIRST_NAME_LAST_NAME" = "First, Last"; - -"LAST_NAME_FIRST_NAME" = "Last, First"; - -"MAX_AVG_BITRATE" = "Max. average bitrate"; - -"ICLOUD_ACCOUNT_TEMPORARILY_UNAVAILABLE" = "iCloud account temporarily unavailable"; - -"ICLOUD_ACCOUNT_TRY_AGAIN_LATER" = "Please try again later"; - -"DISMISS" = "Dismiss"; - -"INVALID_QR_CODE" = "This QR code is invalid"; - -"IMPOSSIBLE_TO_ADD_%@_WITH_THIS_QR_CODE" = "This QR code cannot be used to add %1$@ to your contacts. Please try again, making sure %1$@ scans your QR code before you scan their's."; - -"SEND_INVITE_TO_%@_TO_ADD_THEM_TO_YOUR_CONTACTS_FROM_A_DISTANCE" = "Send an invitation to %@ to add them to your contacts from a distance."; - -"OPTION_%@_FROM_A_DISTANCE" = "Option %@: Invite remotely"; - -"OPTION_%@_LOCALLY" = "Option %@: Invite locally"; - -"INVITE_%@_LOCALLY" = "If %@ is next to you, have them scan this QR code to add them to your contacts directly."; - -"MISSING_CHANNEL_FOR_CALL_TITLE_%@" = "%@ cannot be called yet"; - -"MISSING_CHANNEL_FOR_CALL_MESSAGE_%@" = "You will be able to call %@ once a secure channel is established with them. Please try again later."; - -"REPLYING_TO_%@" = "Replying to %@"; - -"REPLYING_TO_CONTACT" = "Replying to a contact"; - -"REPLYING_TO_YOURSELF" = "Replying to yourself"; - -"REPLYING" = "Replying"; - -"REPLYING_TO_YOU" = "Replying to you"; - -"Loading" = "Loading"; - -"USE_OLD_DISCUSSION_INTERFACE" = "Use old discussion interface"; - -"TAP_TO_CANCEL" = "Tap to cancel"; - -"PLEASE_UPDATE_OLVID_FROM_MAIN_APP" = "Please launch the Olvid App in order to finalize its update 🚀. You will be able to share content once this is done 😉."; - -"PLEASE_LAUNCH_OLVID_FROM_MAIN_APP" = "Please launch the Olvid App to be able to share content 😉."; - -"SCAN_DOCUMENT" = "Scan a document"; - -"EPHEMERAL_MESSAGE" = "Ephemeral message"; - -"SHOOT_PHOTO_OR_MOVIE" = "Camera"; - -"CHOOSE_IMAGE_FROM_LIBRARY" = "Photo & video library"; - -"CHOOSE_FILE" = "Attach file"; - -"INTRODUCE_CONTACT_%@_TO" = "Introduce %@ to..."; - -"DIALOG_MISSING_MESSAGES_TITLE" = "Missing messages"; - -"DIALOG_MISSING_MESSAGES_MESSAGE" = "This missing message indicator tells you that a gap was detected in the numbering sequence of messages received from your contact.\n\nThis can either be that the sending of a message was cancelled (the message will never reach you), or that a larger message (typically with attachment) has not finished uploading yet (you should receive it soon)."; - -"SHOW_BACKUP_SCREEN" = "Backup settings"; - -"SHOW_SETTINGS_SCREEN" = "All settings"; - -"TOGGLE_EDIT_PINNED_STATE" = "Edit pinned discussions"; - -"CONTACT_SORT_ORDER" = "Contact sort order..."; - -"Later" = "Later"; -"Now" = "Now"; -"REMIND_ME_LATER" = "Remind me later"; - -"SNACK_BAR_BODY_CREATE_BACKUP_KEY" = "It's time to setup backups!"; -"SNACK_BAR_BUTTON_TITLE_CREATE_BACKUP_KEY" = "Show me"; -"SNACK_BAR_DETAILS_TITLE_CREATE_BACKUP_KEY" = "Why should I setup backups 🧐?"; -"SNACK_BAR_DETAILS_BODY_CREATE_BACKUP_KEY_%@" = "If you were to lose your %@, or to uninstall Olvid by mistake, you would lose your Olvid ID, all your contacts, and all your groups 😱. Luckily for you, it is possible to setup secure backups 😅.\n\nPress \"Setup backups\" to begin."; -"CONFIGURE_BACKUPS_BUTTON_TITLE" = "Setup backups"; - -"SNACK_BAR_BODY_SHOULD_PERFORM_BACKUP" = "It's backup time!"; -"SNACK_BAR_BUTTON_TITLE_SHOULD_PERFORM_BACKUP" = "Show me"; -"SNACK_BAR_DETAILS_TITLE_SHOULD_PERFORM_BACKUP" = "Why should I create a backup 🧐?"; -"SNACK_BAR_DETAILS_BODY_SHOULD_PERFORM_BACKUP_%@" = "In order not to lose any contact, we recommend you activate automatic backups to iCloud. Don't worry, these backups are encrypted 🤓!\nOtherwise, you may also perform manual backups on a regular basis.\n\nPress \"Setup backups\" to begin."; - -"SNACK_BAR_BODY_SHOULD_VERIFY_BACKUP_KEY" = "Do you remember your backup key?"; -"SNACK_BAR_BUTTON_TITLE_SHOULD_VERIFY_BACKUP_KEY" = "Show me"; -"SNACK_BAR_DETAILS_TITLE_SHOULD_VERIFY_BACKUP_KEY" = "Why should I remember my backup key 🧐?"; -"SNACK_BAR_DETAILS_BODY_SHOULD_VERIFY_BACKUP_KEY_%@" = "Having an up to date Olvid backup is essential, but you need your backup key to restore it!\n\nPress \"Setup backups\" to verify your key. If you lost it, don't worry, you can generate a new one 🤗."; - -"You" = "You"; - -"Touch to return to call" = "Touch to return to call"; - -"ERROR" = "Error"; - -"SNACK_BAR_BODY_GRANT_PERMISSION_TO_RECORD" = "You missed a call!"; -"SNACK_BAR_BODY_GRANT_PERMISSION_TO_RECORD_IN_SETTINGS" = "You missed a call!"; -"SNACK_BAR_BUTTON_TITLE_GRANT_PERMISSION_TO_RECORD" = "Show me"; -"SNACK_BAR_BUTTON_TITLE_GRANT_PERMISSION_TO_RECORD_IN_SETTINGS" = "Show me"; -"SNACK_BAR_DETAILS_TITLE_GRANT_PERMISSION_TO_RECORD" = "You missed a call because Olvid is not allowed to access the microphone"; -"SNACK_BAR_DETAILS_TITLE_GRANT_PERMISSION_TO_RECORD_IN_SETTINGS" = "You missed a call because Olvid is not allowed to access the microphone"; -"SNACK_BAR_DETAILS_BODY_GRANT_PERMISSION_TO_RECORD" = "To received a call, you need to allow Olvid to access the microphone."; -"SNACK_BAR_DETAILS_BODY_GRANT_PERMISSION_TO_RECORD_IN_SETTINGS" = "To received a call, you need to allow Olvid to access the microphone. To never miss a call again, please go to Settings and grant Olvid access to the microphone."; -"GRANT_PERMISSION_TO_RECORD_BUTTON_TITLE" = "Allow microphone access"; -"GRANT_PERMISSION_TO_RECORD_IN_SETTINGS_BUTTON_TITLE" = "Go to Settings"; - -"SNACK_BAR_BODY_LAST_UPLOAD_BACKUP_HAS_FAILED" = "The last backup failed"; -"SNACK_BAR_TITLE_LAST_UPLOAD_BACKUP_HAS_FAILED" = "Show me"; -"SNACK_BAR_DETAILS_TITLE_LAST_UPLOAD_BACKUP_HAS_FAILED" = "Why should I fix this?"; -"SNACK_BAR_DETAILS_BODY_LAST_UPLOAD_BACKUP_HAS_FAILED" = "You should make sure your iCloud account is properly configured on this device. Once this is done, we can try again."; - -"DIALOG_TITLE_KEYCLOAK_IDENTITY_WAS_REVOKED" = "Identity provider removed"; -"DIALOG_MESSAGE_KEYCLOAK_IDENTITY_WAS_REVOKED" = "It seems that your account was removed from your company's identity provider. If you left your company, this is normal and you may continue using Olvid as a free user.\n\nIf you believe this is an error, please contact your administrator to re-register this identity provider with Olvid."; - -"AUTHENTICATION_REQUIRED" = "Authentication Required"; - -"AUTHENTICATION_REQUIRED_TOKEN_EXPIRED_MESSAGE" = "Your Olvid identity is managed by your company's identity provider. You need to re-authenticate with this identity provider to continue."; - -"USER_CHANGE_DETECTED" = "User change detected"; - -"AUTHENTICATION_REQUIRED_USER_ID_CHANGED_MESSAGE" = "You Olvid ID is managed by your company's identity provider. It seems you authenticated as a different user than usual. This is not supported.\n\nPlease contact your administrator or re-authenticate as the correct user."; - -"KEYCLOAK_REVOCATION" = "Revoke previous Olvid ID"; - -"KEYCLOAK_REVOCATION_BUTTON" = "Revoke previous ID"; - -"KEYCLOAK_REVOCATION_MESSAGE" = "Another Olvid ID is associated with your account on your company's identity provider. If you generated a new ID you need to revoke the previous one."; - -"KEYCLOAK_REVOCATION_SUCCESSFUL" = "Successfully revoked previous Olvid ID"; - -"KEYCLOAK_REVOCATION_FAILURE" = "Failed to revoke previous Olvid ID"; - -"ADD_CONTACT_BUTTON" = "Add contact"; - -"ADD_CONTACT_TITLE" = "Add a contact"; - -"DIALOG_TITLE_KEYCLOAK_SIGNATURE_KEY_CHANGED" = "Identity provider key change"; - -"DIALOG_MESSAGE_KEYCLOAK_SIGNATURE_KEY_CHANGED" = "Olvid detected a change in the cryptographic signature key of your identity provider. This should normally never happen.\n\nPlease contact your administrator and only press \"Update Key\" if she can confirm the key change was intentional. If unsure, press \"Cancel\"."; - -"BUTTON_LABEL_UPDATE_KEY" = "Update key"; - -"USER_CANNOT_MAKE_PAYMENT_TITLE" = "It seems you cannot make payments 😢"; -"USER_CANNOT_MAKE_PAYMENT_DESCRIPTION" = "Olvid paid options are made available through the App Store in-app purchases. It seems that you cannot make a payment right now. This may happen if your credit card has expired, or if your iPhone is restricted from accessing the Apple App Store (through parental control or enterprise management)."; - -"Directory" = "Directory"; - -"DELETION_IN_PROGRESS" = "Deletion in progress"; -"DELETION_TERMINATED" = "Deletion done"; - -"DRAG_AND_DROP_TO_CONFIGURE_PREFERRED_EMOJIS_LIST" = "Drop your favorite reactions here!"; - -"CONTACT_IS_NOT_ACTIVE_EXPLANATION_TITLE" = "Contact revoked by your company's identity provider"; - -"CONTACT_IS_NOT_ACTIVE_EXPLANATION_BODY" = "This contact was revoked by your company's identity provider. Their Olvid ID may have been compromised and the security of your communications cannot be guaranteed.\n\nIf you are sure your contact's Olvid ID was never compromised you may manually unblock them.\nPlease contact your administrator for more details."; - -"UNBLOCK_CONTACT" = "Unblock contact"; - -"UNBLOCK_CONTACT_CONFIRMATION" = "Do you really wish to unblock the contact?"; - -"EXPLANATION_CONTACT_REVOKED_AND_UNBLOCKED" = "This contact was revoked by your company's identity provider. Their Olvid ID may have been compromised and the security of your communications cannot be guaranteed.\n\nYou previously decided to manually unblock them. If you are unsure about your decision, it is recommended you re-block this contact.\nPlease contact your administrator for more details."; - -"REBLOCK_CONTACT_CONFIRMATION" = "Do you really want to re-block the contact?"; - -"REBLOCK_CONTACT" = "Re-block contact"; - -"DIALOG_TITLE_OUTDATED_VERSION" = "Update required"; -"DIALOG_MESSAGE_OUTDATED_VERSION" = "Your version of Olvid is outdated and needs to be updated.\n\nYou are probably missing out on many new features and we cannot guarantee the compatibility of your version with newer versions of the app that your contacts may use."; -"BUTTON_LABEL_UPDATE" = "Update"; -"BUTTON_LABEL_REMIND_ME_LATER" = "Remind me later"; - -"DIALOG_OWNED_IDENTITY_WAS_REVOKED_BY_KEYCLOAK_TITLE" = "Your Olvid ID was revoked"; -"DIALOG_OWNED_IDENTITY_WAS_REVOKED_BY_KEYCLOAK_MESSAGE" = "Your company's identity provider revoked your Olvid ID. Please contact your administrator."; - -"CONTACT_REVOKED_BY_COMPANY_IDENTITY_PROVIDER" = "Contact revoked by your company's identity provider"; - -"Active" = "Active"; - -"CERTIFIED_BY_IDENTITY_PROVIDER" = "Certified by identity provider"; - -"DEVICE %lld" = "Device %lld"; - -"TECHNICAL_DETAILS" = "Technical details"; - -"DETAILS_SIGNED_BY_IDENTITY_PROVIDER" = "Details signed by the identity provider"; - -"SIGNED_DETAILS_DATE" = "Signature date"; - -"KEYCLOAK_ID" = "Keycloak ID"; - -"SHOW_CONTACT_DETAILS" = "Show all contact details"; - -"VALUE_COPIED" = "Value copied"; - -"DEFAULT_EMOJI" = "Default quick emoji"; - -"SCAN_QR_CODE" = "Scan a QR code"; - -"CONFIGURATION_SCAN" = "Configuration scan"; - -"IDENTITY_PROVIDER_CONFIGURED_SUCCESS" = "The identity provider of your company was successfully configured. Press \"Authenticate\" to log in and retrieve your personal information."; - -"IDENTITY_PROVIDER_CONFIGURED_FAILURE" = "The identity provider of your company does not seem to be available. Please contact your administrator"; - -"MANUAL_CONFIGURATION" = "Manual configuration"; - -"WILL_INVITE_%@_AFTER_ONBOARDING" = "We will invite %@ right after the onboarding process ✌️."; - -"WILL_PROCESS_API_KEY_AFTER_ONBOARDING" = "The API key will be processed right after the onboarding process ✌️."; - -"CLIENT_ID" = "Client Id"; - -"CLIENT_SECRET" = "Client secret"; - -"IDENTITY_PROVIDER_CONFIGURATION" = "Identity provider configuration"; - -"CURRENT_DEVICE" = "This device"; - -"OTHER_DEVICE" = "Other device"; - -"NEW_COMPOSE_MESSAGE_VIEW_PREFERENCES" = "Customize the message compose area"; - -"NEW_COMPOSE_MESSAGE_VIEW_ACTION_ORDER_HEADER" = "Preferred message buttons order"; - -"NEW_COMPOSE_MESSAGE_VIEW_ACTION_ORDER_FOOTER" = "The first button will be located next to the text field allowing to compose messages. The buttons you use the most should be put at the top of this list so that you can access them in one tap."; - -"COMPOSE_MESSAGE_SETTINGS" = "Customize"; - -"OPEN_SOURCE_LICENCES" = "Open Source Licenses"; - -"HOW_TO_ADD_REACTION_TO_A_MESSAGE" = "You can double a tap a message to add a reaction."; - -"RESET_COMPOSE_MESSAGE_VIEW_ACTIONS_ORDER" = "Reset buttons order to default"; - -"UNAVAILABLE_MESSAGE" = "Unavailable message"; - -"RESET_DISCUSSION_EMOJI_TO_DEFAULT" = "Reset"; - -"RESET_DISCUSSION_EMOJI_TO_DEFAULT_DISCUSSION_LEVEL" = "Reset"; - -"DEFAULT_EMOJI_AT_APP_LEVEL" = "Quick emoji"; - -"QUICK_EMOJI_EXPLANATION" = "The quick emoji is available when the text field allowing to compose messages is empty. Tapping this emoji sends it emmediately. Tapping this emoji twice (or three times) sends it twice (or three times). Here, you can customize the default quick emoji for all discussions. This choice can be overriden at the discussion level, by customizing the quick emoji of the discussion."; - -"DISCUSSION_QUICK_EMOJI" = "Quick emoji for this discussion"; - -"SNACK_BAR_BODY_IOS_VERSION_WILL_BE_UNSUPPORTED" = "⚠️ Support for your iOS version will soon be dropped."; -"SNACK_BAR_BODY_IOS_VERSION_SHOULD_UPGRADE" = "iOS upgrade recommended."; -"SNACK_BAR_BODY_IOS_VERSION_ACCEPTABLE" = "iOS upgrade recommended."; - -"SNACK_BAR_TITLE_IOS_VERSION_WILL_BE_UNSUPPORTED" = "More"; -"SNACK_BAR_TITLE_IOS_VERSION_SHOULD_UPGRADE" = "More"; -"SNACK_BAR_TITLE_IOS_VERSION_ACCEPTABLE" = "More"; - -"SNACK_BAR_DETAILS_TITLE_IOS_VERSION_WILL_BE_UNSUPPORTED" = "Support for your iOS version will soon be dropped"; -"SNACK_BAR_DETAILS_TITLE_IOS_VERSION_SHOULD_UPGRADE" = "iOS upgrade recommended"; -"SNACK_BAR_DETAILS_TITLE_IOS_VERSION_ACCEPTABLE" = "iOS upgrade recommended"; - -"SNACK_BAR_DETAILS_BODY_IOS_VERSION_WILL_BE_UNSUPPORTED" = "We detected that you use an iOS version that Olvid will not support anymore, starting with the next update. We appologize for this. If possible, we recommend you upgrade to the latest iOS version.\nTo do so, open the Settings App on your device. Go to General and tap Software Update."; -"SNACK_BAR_DETAILS_BODY_IOS_VERSION_SHOULD_UPGRADE" = "We detected that you are not using the latest version of iOS. You are missing out on important features of Olvid. To make the most out of Olvid, you should upgrade iOS.\nTo do so, open the Settings App on your device. Go to General and tap Software Update."; -"SNACK_BAR_DETAILS_BODY_IOS_VERSION_ACCEPTABLE" = "To make sure you use the latest version of iOS, go to Settings > General, then tap Software Update."; - -"MESSAGE_REACTION_NOTIFICATION_%@_%@" = "Reacted %@ to: %@"; -"MESSAGE_REACTION_NOTIFICATION_%@" = "Reacted %@ to your message"; - -"NEW_REACTION" = "New reaction"; -"TAP_TO_SEE_THE_REACTION" = "Tap to see the reaction."; - -/* Notification title */ -"NEW_REACTION_FROM_%@" = "New reaction from %@"; - -"CAPABILITIES" = "Capabilities"; - -"CAPABILITY_WEBRTC_CONTINUOUS_ICE" = "VoIP v2"; - -"DELETE_OWN_REACTION" = "Delete my reaction"; - -"VALIDATING_ENTERPRISE_CONFIGURATION" = "Performing an automatic configuration..."; - -"CONTACTS_AND_GROUPS" = "Contacts & Groups"; - -"Everyone" = "Everyone"; - -"No one" = "No one"; - -"AUTO_ACCEPT_GROUP_INVITES_FROM" = "Automatically accept group invitations from…"; - -"AUTO_ACCEPT_GROUP_INVITATIONS_ALERT_TITLE" = "Heads up!"; - -"CAPABILITY_ONE_TO_ONE_CONTACTS" = "One2One contacts "; - -"CAPABILITY_GROUPS_V2" = "Groups v2"; - -"INVITE_%@_IF_YOU_WANT_ONE_TO_ONE_DISCUSSION" = "To have a private discussion with %@ and add them to your contacts, touch \"Invite\"."; - -"ONE_TO_ONE_DISCUSSION_INVITATION_SENT_TO_%@" = "You invited %@ to have a private discussion. Please wait until they accept it 🤞."; - -"ONE_TO_ONE_INVITATION_SENT" = "Invitation sent"; - -"ONE_TO_ONE_INVITATION_RECEIVED" = "Private discussion invitation"; - -"ONE_TO_ONE_DISCUSSION_INVITATION_RECEIVED_FROM_%@" = "To start a private discussion with %@ and add them to your contacts, touch \"Accept\"."; - -"STOP_ONE_TO_ONE_DISCUSSION_WITH_CONTACT_ALERT_TITLE" = "Remove from contacts?"; - -"DO_YOU_WISH_TO_STOP_ONE_TO_ONE_DISCUSSION_WITH_@_ALERT_MESSAGE" = "Removing %1$@ from your contacts will end the private discussion you have with this user (in other words, you will no longer be able to exchange messages in your private discussion with %1$@). You will still be able to exchange messages in groups you have in common."; - -"DO_STOP_ONE_TO_ONE_DISCUSSION" = "Remove from contacts"; - -"DOWNGRADE_CONTACT_TO_NON_ONE_TO_ONE_BUTTON_TITLE" = "Remove from contacts"; - -"DELETE_OLVID_USER" = "Delete this user"; - -"OTHER_KNOWN_USERS" = "Other known users"; - -"EXPLANATION_PLACED_ABOVE_LIST_OF_NON_ONE_TO_ONE_CONTACTS" = "The following users are not part of your contacts (yet), so you cannot have a private discussion with them. But you can invite them easily 🚀!"; - -"%@_INVITES_YOU_TO_ONE_TO_ONE_DISCUSSION" = "%@ invites you to have a private discussion. If you accept, this user will be added to your contacts."; - -"DELETE_USER_ACTION_TITLE" = "Delete this user now"; - -"INVITE_REQUIRED_ALERT_TITLE" = "Invitation required"; - -"YOU_NEED_TO_INVITE_%@_BEFORE_HAVING_DISCUSSION_ALERT_MESSAGE" = "You cannot have a private discussion with %@ until they are part of your contacts. Do you wish to invite them now?"; - -"SNACK_BAR_BODY_NEW_APP_VERSION_AVAILABLE" = "A new version of Olvid is available 🥳!"; - -"SNACK_BAR_BUTTON_TITLE_NEW_APP_VERSION_AVAILABLE" = "Info"; - -"SNACK_BAR_DETAILS_TITLE_NEW_APP_VERSION_AVAILABLE" = "A new version of Olvid is available 🥳!"; - -"SNACK_BAR_DETAILS_BODY_NEW_APP_VERSION_AVAILABLE" = "A new version of Olvid is available from the App Store. You are missing out amazing new features 🤓! We recommend you upgrade now 🚀."; - -"GO_TO_APP_STORE_BUTTON_TITLE" = "Open the App Store"; - -"INSTALLED_APP_IS_OUTDATED_ALERT_TITLE" = "Your Olvid version is obsolete 😱!"; - -"INSTALLED_APP_IS_OUTDATED_ALERT_BODY" = "But don't worry 😊. You can upgrade now to the latest version of Olvid and discover its amazing new features 🤓! We recommend you upgrade now 🚀."; - -"UPGRADE_NOW" = "Upgrade now"; - -"MINIMUM_SUPPORTED_VERSION" = "Minimum supported version"; - -"MINIMUM_RECOMMENDED_VERSION" = "Minimum recommended version"; - -"UPGRADE_OLVID_NOW" = "Upgrade Olvid now"; - -"SYNC" = "Sync"; - -"SYNC_REQUEST_SENT" = "Sync request sent"; - -"Choose" = "Choose"; - -"SEND_MESSAGE" = "Send message"; - -"FAILED" = "Failed"; - -"CALL_INITIALISATION_NOT_SUPPORTED" = "Secure calls are not supported"; - -"CALL_FAILED" = "Call failed 😟"; - -"Choose" = "Choose"; - -"YOUR_MESSAGE" = "Your message..."; - -"HOW_TO_ADD_MESSAGE_REACTION" = "Double tap a message to add a reaction."; - -"HOW_TO_ADD_REACTION_TO_PREFFERED" = "Add a star to a reaction to add it to your favorite reactions."; - -"HOW_TO_REMOVE_OWN_REACTION" = "Tap to remove your reaction."; - -"Gallery" = "Gallery"; - -"Select" = "Select"; - -"DELETE_ITEMS" = "Delete items"; - -"SHOW_IN_DISCUSSION" = "Show in discussion"; - -"NOT_PART_OF_THE_GROUP_ANYMORE" = "You are not part of this group anymore, either because you left it, because an administrator removed you, or because the group was deleted 🥲."; - -"REJOINED_GROUP" = "You are again part of this group ✌️."; - -"CONTACT_%@_IS_ONE_TO_ONE_AGAIN" = "%@ is part of your contacts again, you can continue your discussion where you left off 🤗."; - -"Medias" = "Medias"; - -"UNKNOWN_USER" = "Unknown user"; - -"CREATE_GROUP_WITH_OWN_PERMISSION_ADMIN" = "Create a group"; - -"CREATE_FIRST_GROUP_WITH_OWN_PERMISSION_ADMIN" = "Create your first group"; - -"GROUPS_THAT_YOU_ADMINISTER" = "Groups that you administer"; - -"Forward" = "Forward"; - -"Forwarded" = "Forwarded"; - -"NO_SOUNDS" = "None"; - -"ATTACHMENTS_INFO" = "Attachments"; - -"NOTIFICATION_SOUNDS_TITLE_POLYPHONIC" = "Polyphonic tones"; - -"NOTIFICATION_SOUNDS_TITLE_NEUTRAL" = "Neutral tones"; - -"NOTIFICATION_SOUNDS_NEUTRAL_CATEGORY_TITLE" = "Neutral"; -"NOTIFICATION_SOUNDS_ALARM_CATEGORY_TITLE" = "Alarms"; -"NOTIFICATION_SOUNDS_ANIMAL_CATEGORY_TITLE" = "Animals"; -"NOTIFICATION_SOUNDS_TOY_CATEGORY_TITLE" = "Toys"; - -"BUSY" = "Busy"; -"CHIME" = "Chime"; -"BRING_THE_DRAMA" = "Bring the drama"; -"FRENZY" = "Frenzy"; -"HORN_BOAT" = "Fog horn"; -"HORN_BUS" = "Bus Horn"; -"HORN_CAR" = "Car Horn"; -"HORN_DIXIE" = "1916 car horn"; -"HORN_TAXI" = "Taxi horn"; -"HORN_TRAIN_1" = "Train horn 1"; -"HORN_TRAIN_2" = "Train horn 2"; -"PARANOID" = "Paranoid"; -"WEIRD" = "Weird"; - -"BIRD_CARDINAL" = "Cardinal"; -"BIRD_COQUI" = "Coqui"; -"BIRD_CROW" = "Crow"; -"BIRD_CUCKOO" = "Cuckoo"; -"BIRD_DUCK_QUACK" = "Duck"; -"BIRD_DUCK_QUACKS" = "Duck quacks"; -"BIRD_EAGLE" = "Eagle"; -"BIRD_IN_FOREST" = "Bird in the forest"; -"BIRD_MAGPIE" = "Magpie"; -"BIRD_OWL_HORNED" = "Horned owl"; -"BIRD_OWL_TAWNY" = "Tawny owl"; -"BIRD_TWEET" = "Bird Tweet"; -"BIRD_WARNING" = "Hawk"; -"CHICKEN_ROOSTER" = "Rooster 1"; -"CHICKEN_ROSTER" = "Rooster 2"; -"CHICKEN" = "Chicken"; -"CICADA" = "Cicada"; -"COW_MOO" = "Cow"; -"ELEPHANT" = "Elephant"; -"PANTHERA" = "Panthera"; -"TIGER" = "Tiger"; -"FROG" = "Frog"; -"GOAT" = "Goat"; -"HORSE_WHINNIES" = "Horse"; -"PUPPY" = "Puppy"; -"SHEEP" = "Sheep"; -"TURKEY_GOBBLE" = "Turkey"; -"TURKEY_NOISES" = "Turkeys"; - -"BELL" = "Bell"; -"BLOCK" = "Block"; -"CALM" = "Clam"; -"CLOUD" = "Cloud"; -"HEY_CHAMP" = "Hey champ"; -"KOTO" = "Koto"; -"MODULAR" = "Modular"; -"ORINGZ" = "Oring"; -"POLITE" = "Polite"; -"SONAR" = "Sonar"; -"STRIKE" = "Strike"; -"UNPHASED" = "Unphased"; -"UNSTRUNG" = "Unstrung"; -"WOODBLOCK" = "Woodblock"; - -"CIRCUS_CLOWN_HORN" = "Circus clown horn"; -"FUNNY_FANFARE" = "Funny fanfare"; -"ARE_YOU_KIDDING" = "Are you kidding?"; -"ENOUGH_WITH_THE_TALKING" = "Enough with the talking"; -"NESTLING" = "Nestling"; -"NICE_CUT" = "Nice cut"; -"OH_REALLY" = "Oh really"; -"SPRINGY" = "Springy"; - -"BASSOON" = "Bassoon"; -"BRASS" = "Brass"; -"CLARINET" = "Clarinet"; -"CLAV_FLY" = "Kemence"; -"CLAV_GUITAR" = "Cura"; -"FLUTE" = "Flute"; -"GLOCKENSPIEL" = "Glockenspiel"; -"HARP" = "Harp"; -"KOTO" = "Koto"; -"OBOE" = "Oboe"; -"PIANO" = "Piano"; -"PIPA" = "Pipa"; -"SAXO" = "Saxo"; -"STRINGS" = "Strings"; -"SYNTH_AIRSHIP" = "Synth Airship"; -"SYNTH_CHORDAL" = "Synth Chordal"; -"SYNTH_COSMIC" = "Synth Cosmic"; -"SYNTH_DROPLETS" = "Synth Droplets"; -"SYNTH_EMOTIVE" = "Synth Emotive"; -"SYNTH_FM" = "Synth FM"; -"SYNTH_LUSHARP" = "Synth LushArp"; -"SYNTH_PECUSSIVE" = "Synth Percussive"; -"SYNTH_QUANTIZER" = "Synth Quantizer"; - -"NOTIFICATION_SOUNDS_SUBTITLE_POLYPHONIC" = "When receiving a message, a random note of the selected instrument will be played. Give it a try by tapping your preferred choice several times 😉."; - -"SYSTEM_SOUND" = "System sound"; - -"GRACE_PERIOD" = "Require authentication"; - -"PIN" = "PIN"; - -"PASSWORD" = "Password"; - -"CREATE_YOUR_PASSCODE" = "Create your passcode"; - -"CONFIRM_YOUR_PASSCODE" = "Confirm your passcode"; - -"ENTER_YOUR_PASSCODE" = "Enter your passcode"; - -"CREATE_MY_PASSCODE" = "Create my passcode"; - -"LOCKED_OUT_FOR" = "Locked for "; - -"LOCKED_OUT" = "Locked Out"; - -"RETRY_WITH_TOUCH_ID" = "Retry with Touch ID"; - -"RETRY_WITH_FACE_ID" = "Retry with Face ID"; - -"LOCKED_OUT_EXPLANATION" = "Olvid is locked following too many wrong passcode attempts."; - -"LOCKOUT_CLEAN_EPHEMERAL_TITLE" = "Erase sensitive messages after 3 bad passcode attempts"; - -"LOCKOUT_CLEAN_EPHEMERAL_EXPLANATION" = "When activated, entering a wrong passcode 3 times in a row will silently erase all read once and limited visibility messages."; - -"BIOMETRY_NOT_ENROLLED_ERROR_TITLE" = "Please set up Face ID or Touch ID"; - -"BIOMETRY_NOT_ENROLLED_ERROR_MESSAGE" = "To use this feature, you need to set up either Face ID or Touch ID in the Settings app."; - -"NO_GRACE_PERIOD_EXPLANATION" = "Olvid will be locked immediately after being closed."; - -"GRACE_PERIOD_EXPLANATION_%@" = "After being closed, Olvid will be locked after %@."; - -"GRACE_PERIOD_TITLE_%@" = "after %@"; - -"OTHER_GROUP_MEMBERS" = "Other group members"; - -"EDIT_GROUP_MEMBERS" = "Edit group members"; - -"IS_ADMIN" = "Admin"; - -"IS_NOT_ADMIN" = "Not admin"; - -"ADD_GROUP_MEMBERS" = "Add group members"; - -"PUBLISH" = "Publish"; - -"GROUP_V2_PUBLISHED_DETAILS_EXPLANATION_%@" = "The group details were updated. If you wish to use these new details instead of the ones on your %@, please tap the button bellow."; - -"CHOOSE_GROUP_NICKNAME" = "Choose a group nickname"; - -"ADD_MEMBER_BY_TAPPING_EDIT_GROUP_MEMBERS_BUTTON" = "You are the only member of this group 😅. Start adding group members by tapping the \"Edit members\" button above ☝️."; - -"GROUP_UPDATE_IN_PROGRESS_EXPLANATION_TITLE" = "Update in progress"; - -"GROUP_UPDATE_IN_PROGRESS_EXPLANATION_BODY" = "An update of this group is in progress. Please wait until it is done to make further modifications."; - -"MANUAL_RESYNC_OF_GROUP_V2" = "Resynchronize this group"; - -"SINGLE_GROUP_V2_VIEW_ALERT_CANNOT_LEAVE_GROUP_TITLE" = "You cannot leave the group for now"; - -"SINGLE_GROUP_V2_VIEW_ALERT_CANNOT_LEAVE_GROUP_MESSAGE" = "Since you are the only administrator of this group, you cannot leave it now (you would leave the group with no administrator). You can name another administrator among the other group members and try again."; - -"SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_LEAVE_GROUP_TITLE" = "Do you really wish to leave this group?"; - -"SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_LEAVE_GROUP_MESSAGE" = "Please note that this action is irreversible (unless a group administrator decides to invite you again later on)."; - -"SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_LEAVE_GROUP_BUTTON_TITLE" = "Leave this group"; - -"LEAVE_GROUP" = "Leave this group"; - -"SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_DISBAND_GROUP_TITLE" = "Heads-up! Do you really wish to disband this group?"; - -"SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_DISBAND_GROUP_MESSAGE" = "Please note that this action is irreversible. I you confirm, this group will be deleted for all members."; - -"SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_DISBAND_GROUP_BUTTON_TITLE" = "Delete this group for all members"; - -"DISBAND_GROUP" = "Disband this group"; - -"UNKNOWN_GROUP_MEMBER_NAME" = "Unknown name"; - -"IS_PENDING" = "Pending"; - -"IS_PENDING_ADMIN" = "Pending\nadmin"; - -"SAVE_CUSTOM_GROUP_VALUES" = "Save your modifications"; - -"EDIT_GROUP_DETAILS_AS_ADMINISTRATOR_BUTTON_TITLE" = "Edit title"; - -"EDIT_GROUP_MEMBERS_AS_ADMINISTRATOR_BUTTON_TITLE" = "Edit members"; - -"CHOOSE_GROUP_CUSTOM_NAME_AND_PHOTO_TITLE" = "Custom photo and group name"; - -"GROUP_TITLE_WHEN_NO_SPECIFIC_TITLE_IS_GIVEN" = "Group with no name 😅"; - -"MEMBERS_OF_GROUP_V2_WERE_UPDATED_SYSTEM_MESSAGE" = "Group members have been updated. Tap to learn more."; - -"CHOSEN_GROUP_MEMBERS" = "Chosen group members"; - -"CLONE_THIS_GROUP" = "Clone this group"; - -"CLONE_THIS_GROUP_V1_TO_GROUP_V2" = "Clone this group"; - -"SOME_GROUP_MEMBERS_MUST_UPGRADE" = "Some members must upgrade Olvid"; - -"FOLLOWING_MEMBERS_MUST_UPGRADE_BEFORE_CREATING_GROUP_V2_%@" = "In order to create a group V2, all group members must use a recent version of Olvid 🤓. Please try again after asking the following members to upgrade to the latest version of Olvid:\n%@."; - -"YOU_ARE_NOW_PART_OF_THE_ADMINISTRATORS_OF_THIS_GROUP_V2" = "You are now a group administrator 😎."; - -"YOU_ARE_NO_LONGER_PART_OF_THE_ADMINISTRATORS_OF_THIS_GROUP_V2" = "You are no longer a group administrator."; - -"PLEASE_AUTHENTICATE" = "Authentication required"; - -"PLEASE_NOTE_THAT_YOUR_CUSTOM_PASSCODE_CANNOT_BE_RECOVERED" = "Please note that if you forget your passcode, it cannot be recovered and you won't be able to access Olvid anymore."; - -"CLONED_GROUP_NAME_FROM_ORIGINAL_NAME_%@" = "Copy of %@"; - -"COMPUTE_CKRECORD_COUNT" = "Compute iCloud record count"; - -"DISK_USAGE" = "Storage used"; - -"REFERENCED_BY_DATABASE" = "Referenced by database"; - -"APP_DIRECTORIES" = "Directories within the app"; - -"ENGINE_DIRECTORIES" = "Directories within the engine"; - -"ABOUT_DISKUSAGEVIEW_%@" = "This screen allows you to evaluate the storage used by Olvid on your %@. Beware though, the total storage is not the sum of all the values indicated here (as Olvid uses deduplication techniques). To evaluate the total storage, it is in general sufficient to consider the values referenced by the database"; - -"IS_DELETING" = "is deleting"; - -"ENABLE_AUTOMATIC_BACKUP_AND_CONTINUE" = "Activate automatic backup"; - -"ESTIMATING_TIME_REMAINING" = "Estimating remaining time..."; - -"YOU_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE" = "You took a screenshot of a sensitive message, other participants have been notified."; - -"CONTACT_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE_%@" = "%@ took a screenshot of a sensitive message."; - -"CONTACT_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE_WHEN_CONTACT_IS_UNKNOWN" = "A participant took a screenshot of a sensitive message."; - -"ENABLE" = "Enable"; - -"PLEASE_CHOOSE_THE_BACKUP_TO_RESTORE" = "Please choose the backup to restore"; - -"TITLE_BACKUP_RESTORED" = "Backup restored"; - -"ENABLE_AUTOMATIC_BACKUP_EXPLANATION" = "The backup was successfully restored. To make sure you can restore a fresh backup the next time you need to, we recommend to activate automatic iCloud backups."; - -"RESTORE_BACKUP_FAILED_EXPLANATION" = "The backup could not be restored. If you can, we recommend you try to restore another backup."; - -"KEYCLOAK_REVOCATION_FORBIDDEN_TITLE" = "You cannot revoke your identity"; - -"KEYCLOAK_REVOCATION_FORBIDDEN_MESSAGE" = "Please contact your administrator."; - -"Processing" = "Processing"; - -"Unprocessed" = "Unprocessed"; - -"Metadata" = "Metadata"; - -"You selected to add %@ to your contacts. Do you want to proceed?" = "You selected to add %@ to your contacts. Do you want to proceed?"; - -"Unread" = "Unread"; - -"EXPORT_TMP_DIRECTORY" = "Export the tmp directory"; - -"SOME_OF_YOUR_CONTACTS_MAY_NOT_APPEAR_AS_GROUP_V2_CANDIDATES" = "Please choose who to add to this group. Can't find the user you are looking for? Please ask them to upgrade to the latest version of Olvid 🚀."; - -"EXPLANATION_FOR_CLONING_A_GROUP_V1_TO_GROUP_V2" = "This group does not support more than one administrator. But you can clone this group into a new one that will 🚀!"; - -"TITLE_NEVER_MISS_A_MESSAGE" = "Never miss a message"; - -"TITLE_NEVER_MISS_A_SECURE_CALL" = "Never miss a call"; - -"EXPLANATION_WHY_RECORD_PERMISSION_IS_IMPORTANT" = "To place or receive secure calls ☎️, and to record voice messages 🎵, Olvid needs access to the microphone.\n\nTo make sure you never miss a secure call, we recommend you grant access now 🤓."; - -"BUTON_TITLE_ACTIVATE_NOTIFICATION" = "Allow notifications"; - -"BUTON_TITLE_REQUEST_RECORD_PERMISSION" = "Grant access to the microphone"; - -"PERFORM_INTERACTION_DONATION_LABEL" = "Suggest Olvid's discussions when sharing"; - -"PERFORM_INTERACTION_DONATION_FOOTER" = "If you activate this option, your Olvid discussions will be suggested when sharing from another app. This choice can be overridden at the discussion level."; - -"PERFORM_INTERACTION_DONATION_FOR_THIS_DISCUSSION_LABEL" = "Suggest this discussion when sharing"; - -"PERFORM_INTERACTION_DONATION_FOR_THIS_DISCUSSION_FOOTER" = "If you activate this option, this discussion will be suggested when sharing from another app."; - -"DISCUSSIONS_FILTER_CELL_PICKER_TEXT" = "Filter discussions"; - -"MY_OWN_IDS" = "My profiles"; - -"CREATE_NEW_OWNED_IDENTITY" = "Create a new profile"; - -"DELETE_THIS_IDENTITY_QUESTION_TITLE_%@" = "Delete the profile \"%@\"?"; - -"DELETE_THIS_IDENTITY_QUESTION_MESSAGE" = "Deleting this profile will delete any information related to it from your device. This includes the contacts, groups, and the content of all your discussions (messages and attachments) for this profile. Your other profiles will not be affected by this operation.\nIf you have enabled backups in Olvid, your future backups will not contain any trace of this profile and you will not be able to restore it."; - -"DELETE_THIS_IDENTITY_BUTTON" = "Delete this profile"; - -"CHOOSE_PASSWORD" = "Choose a password"; - -"HIDE_PROFILE_EXPLANATION" = "Hidden profiles are protected by a password and do not appear in you profile list until you enter this password.\nAccessing a hidden profile requires a long press on the top left button shown on each tab.\nIf you forget this password, you will permanently lose access to this profile 😱!"; - -"ENTER_PASSWORD" = "Enter a password"; - -"CONFIRM_PASSWORD" = "Confirm password"; - -"CREATE_PASSWORD" = "Create password"; - -"EDIT_CURRENT_IDENTITY" = "Edit current profile"; - -"HIDE_THIS_IDENTITY" = "Hide this profile"; - -"UNHIDE_THIS_IDENTITY" = "Unhide this profile"; - -"SHOW_OWNED_IDENTITY_DETAILS" = "Show profile informations"; - -"FAILED_TO_HIDE_OWNED_ID_ALERT_TITLE" = "The profile could not be hidden"; - -"FAILED_TO_HIDE_OWNED_ID_ALERT_MESSAGE" = "Please try again. When choosing the password, please make sure it is not a prefix of an existing hidden profile password."; - -"UNHIDE_OWNED_IDENTITY_ALERT_TITLE" = "Unhide this profile?"; - -"UNHIDE_OWNED_IDENTITY_ALERT_MESSAGE" = "You are about to unhide a profile. If you do so, the profile will be systematically shown in the profile switcher, with no need for a specific password."; - -"UNHIDE_OWNED_IDENTITY_ALERT_ACTION_STAY_HIDDEN" = "Do not unhide"; - -"UNHIDE_OWNED_IDENTITY_ALERT_ACTION_UNHIDE" = "Unhide"; - -"OPEN_HIDDEN_PROFILE_ALERT_TITLE" = "Open a hidden profile"; - -"OPEN_HIDDEN_PROFILE_ALERT_MESSAGE" = "If you created a hidden profile, please enter its password to open it."; - -"AT_LEAST_ONE_UNHIDDEN_PROFILE_MUST_EXIST_TITLE" = "This profile cannot be hidden at the moment"; - -"AT_LEAST_ONE_UNHIDDEN_PROFILE_MUST_EXIST_MESSAGE" = "You must have at least one visible profile. Since this profile is the only one you have, you cannot hide it. Nonetheless, you can create a new profile and try again."; - -"DELETE_THIS_LAST_UNHIDDEN_IDENTITY_QUESTION_TITLE" = "Delete this last profile?"; - -"DELETE_THIS_LAST_UNHIDDEN_IDENTITY_QUESTION_MESSAGE" = "Deleting this profile will delete any information related to it from your device. This includes the contacts, groups, and the content of all your discussions (messages and attachments) for this profile.\n\nThis is your only visible profile and if you have any hidden profile, they will be deleted simultaneously.\nIf you have enabled backups in Olvid, your future backups will not contain any trace of this profile and you will not be able to restore it."; - -"NOTIFY_CONTACTS_ON_OWNED_IDENTITY_DELETION_TITLE" = "Do you wish to notify your contacts?"; - -"NOTIFY_CONTACTS_ON_OWNED_IDENTITY_DELETION_MESSAGE" = "We recommend you do notify your contacts. By doing so:\n- your profile will be deleted from your contact's devices,\n- the groups you created will be disbanded if your are the only administrator,\n- you will leave other groups.\n\nIf you do not notify, your contacts may still try sending you messages and might not realize these messages cannot be delivered."; - -"NOTIFY_CONTACTS_ON_OWNED_IDENTITY_DELETION_DO_NOTIFY_CONTACTS_ACTION" = "Notify my contacts (recommended)"; - -"NOTIFY_CONTACTS_ON_OWNED_IDENTITY_DELETION_DO_NOT_NOTIFY_CONTACTS_ACTION" = "Do not notify my contacts"; - -"TYPE_DELETE_TO_PROCEED_WITH_OWNED_IDENTITY_DELETION_TITLE_%@" = "Confirm the deletion of the profile \"%@\""; - -"TYPE_DELETE_TO_PROCEED_WITH_OWNED_IDENTITY_DELETION_MESSAGE" = "To confirm the deletion of your profile, please type 'DELETE' to proceed."; - -"TYPE_DELETE_TO_PROCEED_WITH_OWNED_IDENTITY_DELETION_DO_DELETE_ACTION" = "Delete my profile"; - -"TYPE_DELETE_TO_PROCEED_WITH_OWNED_IDENTITY_DELETION_WORD_TO_TYPE" = "DELETE"; - -"ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_TITLE" = "When to close an open hidden profile?"; - -"ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_MESSAGE" = "Please choose when an open profile should be closed. By default, hidden profiles will be closed when manually switching to another profile."; - -"ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_ACTION_SCREEN_LOCK" = "When Olvid lock screen activates"; - -"ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_ACTION_MANUAL_SWITCHING" = "When manually switching profile"; - -"ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_ACTION_BACKGROUND" = "When Olvid enters background"; - -"CLOSE_OPEN_HIDDEN_PROFILE" = "Close open hidden profile"; - -"HIDDEN_PROFILES" = "Hidden profiles"; - -"AFTER_TEN_SECONDS" = "after 10 seconds"; -"AFTER_THIRTY_SECONDS" = "after 30 seconds"; -"AFTER_ONE_MINUTE" = "after 1 minute"; -"AFTER_TWO_MINUTE" = "after 2 minutes"; -"AFTER_FIVE_MINUTE" = "after 5 minutes"; - -"TIME_INTERVAL_FOR_BG_HIDDEN_PROFILE_CLOSE_POLICY" = "Close hidden profile when Olvid enters background..."; - -"ALERT_SHOULD_ACTIVATE_SCREEN_LOCK_AFTER_CREATING_HIDDEN_PROFILE_TITLE" = "Olvid lock screen not configured"; -"ALERT_SHOULD_ACTIVATE_SCREEN_LOCK_AFTER_CREATING_HIDDEN_PROFILE_MESSAGE" = "You chose to close any open hidden profile when the Olvid lock screen activate. However you have not configured any lock screen.\n\nIn the current setting, hidden profiles will only be closed when manually switching to another profile.\n\nPlease go to the privacy settings to configure a lock screen."; -"ALERT_SHOULD_ACTIVATE_SCREEN_LOCK_AFTER_CREATING_HIDDEN_PROFILE_ACTION_GOTO_PRIVACY_SETTINGS" = "Go to privacy settings"; - -"PLEASE_CHOOSE_PROFILE_TO_PROCESS_OLVID_URL" = "Please choose the profile you wish to use."; - -"EDIT_OWNED_IDENTITY_NICKNAME" = "Edit my nickname"; - -"ALERT_FOR_EDITING_NICKNAME_TITLE" = "Edit my nickname"; -"ALERT_FOR_EDITING_NICKNAME_MESSAGE" = "Your nickname is for your eyes only and allows you to easily distinguish your profiles from each other."; - -"DISCUSSIONS_LIST_SELECTED_DISCUSSION_GROUP_SUBTITLE" = "Participants: %d"; - -"SHARE_VIEW_PROFILE_SELECTION_BAR_TITLE" = "Profile"; - -"PLEASE_WAIT_DURING_UPDATE" = "Update in progress. Please do not quit Olvid."; - -"Message" = "Message"; - -"ANOTHER_PROFILE_HAS_VALID_API_KEY" = "This profile benefits from the license of another profile."; - -"Stored" = "Stored"; - -"ENABLE_RUNNING_LOGS" = "Enable in-app logs"; - -"IN_APP_LOGS" = "In-app logs"; - -"NO_OTHER_MEMBER_FOR_NOW" = "No other group member for now."; - -"SHOW_CURRENT_COORDINATORS_OPS" = "Show current coordinators operations"; - -"SINGLE_GROUP_V2_VIEW_ALERT_CANNOT_LEAVE_GROUP_AS_KEYCLOAK_TITLE" = "You cannot leave the group"; - -"SINGLE_GROUP_V2_VIEW_ALERT_CANNOT_LEAVE_GROUP_AS_KEYCLOAK_MESSAGE" = "Since this group a managed by your company's server, you cannot leave it."; - -"ARCHIVE" = "Archive"; - -"UNARCHIVE" = "Unarchive"; - -"PERFORM_CONTACT_INTRODUCTION" = "Perform contact introduction"; - -/* Picker title for the mention notification mode */ -"discussion-expiration-settings-view.body.section.mention-notification-mode.picker.title" = "Mention Notification Mode"; -/* Display title for the `default` value for mention notification mode. Takes one argument, the global discussion notification mode */ -"discussion-mention-notification-mode.display-title.default" = "Default (%1$@)"; -/* Display title for the `always` value for mention notification mode */ -"discussion-mention-notification-mode.display-title.always" = "Always"; -/* Display title for the `never` value for mention notification mode */ -"discussion-mention-notification-mode.display-title.never" = "Never"; -/* Picker footer for the mention notification mode */ -"discussion-expiration-settings-view.body.section.mention-notification-mode.picker.footer.title" = "Setting to be notified when being mentioned within this Discussion"; - -/* Picker title for the default mention notification mode */ -"discussion-default-settings-view.mention-notification-mode.picker.title" = "Mention Notification Mode"; -/* Display title for the `always` value for mention notification mode */ -"discussion-default-settings-view.mention-notification-mode.picker.mode.always" = "Always"; -/* Display title for the `never` value for mention notification mode */ -"discussion-default-settings-view.mention-notification-mode.picker.mode.never" = "Never"; -/* Picker footer for the default mention notification mode */ -"discussion-default-settings-view.mention-notification-mode.picker.footer.title" = "Global Setting to be notified when being mentioned within a Discussion"; diff --git a/iOSClient/ObvMessenger/ObvMessenger/en.lproj/Localizable.stringsdict b/iOSClient/ObvMessenger/ObvMessenger/en.lproj/Localizable.stringsdict deleted file mode 100644 index 96fd9fb5..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/en.lproj/Localizable.stringsdict +++ /dev/null @@ -1,340 +0,0 @@ - - - - - You are about to introduce X to Y and count other contacts. - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - You are about to introduce %2$@ to %3$@. - one - You are about to introduce %2$@ to %3$@ and one other contact. - other - You are about to introduce %2$@ to %3$@ and %1$u other contacts. - - - You successfully introduced X to Y and count other contacts. - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - You successfully introduced %2$@ to %3$@. - one - You successfully introduced %2$@ to %3$@ and one other contact. - other - You successfully introduced %2$@ to %3$@ and %1$u other contacts. - - - see count attachments - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - No attachment - one - → See the attachment - other - → See %u attachments - - - count new messages - - NSStringLocalizedFormatKey - %#@VARIABLE@ - VARIABLE - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - No new message - one - 1 new message - other - %u new messages - - - count attachments - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - No attachment - one - One attachment - other - %u attachments - - - share count photos - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - No photo to share - one - Share the photo - other - Share the %u photos - - - share count attachments - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - No attachment to share - one - Share attachment - other - Share %u attachments - - - You are about to delete a message together with its count attachments - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - You are about to delete a message. - one - You are about to delete a message together with its attachment. - other - You are about to delete a message together with its %u attachments. - - - recent backups count - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - No backups - one - One backup - other - %u most recent backups - - - backups count - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - No backups - one - One backup - other - %u backups - - - missed messages count - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - One missing message - other - %u missing messages - - - clean in progress count - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - no deleted backups - one - one deleted backup - other - %u deleted backups - - - KEYCLOAK_MISSING_SEARCH_RESULT - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - One additional search result is available. Please refine your search. - other - %u additional search results are available. Please refine your search. - - - AUTO_ACCEPT_GROUP_INVITATIONS_ALERT_MESSAGE - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - Modifying this setting requires you to accept one pending group invitation. - other - Modifying this setting requires you to accept %u pending group invitations. - - - AUTO_ACCEPT_GROUP_INVITATIONS_ALERT_ACCEPT_ACTION_TITLE - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - Accept the pending group invitation now - other - Accept the %u pending group invitations now - - - CHOOSE_OR_NUMBER_OF_CHOSEN_DISCUSSION - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - choose - one - one selected - other - %u selected - - - NUMBER_OF_ITEMS_SELECTED - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Choose items - one - 1 item selected - other - %u items selected - - - NUMBER_OF_ELEMENTS - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - No element - one - 1 element - other - %u elements - - - WITH_N_PARTICIPANTS - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - without any participant - one - with one participant - other - with %u participants - - - - diff --git a/iOSClient/ObvMessenger/ObvMessenger/fr.lproj/InfoPlist.strings b/iOSClient/ObvMessenger/ObvMessenger/fr.lproj/InfoPlist.strings deleted file mode 100644 index a94e6a4d..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/fr.lproj/InfoPlist.strings +++ /dev/null @@ -1,18 +0,0 @@ -/* Bundle display name */ -//"CFBundleDisplayName" = "Olvid"; - -/* Bundle name */ -//"CFBundleName" = "Olvid"; - -/* Privacy - Camera Usage Description */ -"NSCameraUsageDescription" = "L'accès à l'appareil photo permet de scanner le code QR de vos contacts et de prendre des photos et des vidéos directement au sein d'une discussion."; - -/* Privacy - Face ID Usage Description */ -"NSFaceIDUsageDescription" = "Utiliser Face ID pour accéder à Olvid"; - -/* Privacy - Microphone Usage Description */ -"NSMicrophoneUsageDescription" = "L'accès au micro est nécessaire pour passer des appels sécurisés ainsi que pour enregistrer des films et des messages audios."; - -/* Privacy - Photo Library Additions Usage Description */ -"NSPhotoLibraryAddUsageDescription" = "L'accès en écriture à votre librairie de photos permet d'y sauver une image directement. Notez que Olvid n'aura pas accès aux autres photos de votre librairie de photos."; - diff --git a/iOSClient/ObvMessenger/ObvMessenger/fr.lproj/Localizable.strings b/iOSClient/ObvMessenger/ObvMessenger/fr.lproj/Localizable.strings deleted file mode 100644 index 83f66cb8..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/fr.lproj/Localizable.strings +++ /dev/null @@ -1,2796 +0,0 @@ -"Olvid" = "Olvid"; - -/* System message displayed within a group discussion */ -"%@_ACCEPTED_TO_JOIN_THIS_GROUP_AT_%@" = "%@ a rejoint ce groupe - %@"; - -"%@_ACCEPTED_TO_JOIN_THIS_GROUP" = "%@ a rejoint ce groupe"; - -/* No comment provided by engineer. */ -"%@ and" = "%@ et"; - -/* System message displayed within a group discussion */ -"%@_LEFT_THIS_GROUP_AT_%@" = "%@ a quitté ce groupe - %@"; - -"%@_LEFT_THIS_GROUP" = "%@ a quitté ce groupe"; - -/* Notification body */ -"%@ wants to introduce you to %@" = "%1$@ aimerait vous présenter à %2$@"; - -/* Invitation details */ -"%@ wants to introduce you to %@. If you do trust %@ for this, you may accept this invitation and %@ will soon appear in your contacts, with no further actions from your part (provided that %@ also accepts the invitation). If you don't trust %@ or if you simply do not want to be introduced to %@ you can ignore this invitation (neither %@ nor %@ will be notified of this)." = "%1$@ aimerait vous présenter à %2$@. Si vous acceptez, %2$@ fera partie de vos contacts et vous pourrez avoir une discussion privée."; - -/* Invitation details */ -"%@ was added to your contacts following an introduction by %@." = "%1$@ apparait maintenant dans vos contacts suite à une présentation par %2$@."; - -/* Invitation details */ -"%1@ wants to introduce you to %2@.\n\nOlvid\'s security policy requires you to re-validate the identity of %2@ by exchanging 4-digit codes with them, or to invite %1@ directly." = "%1$@ aimerait vous présenter à %2$@.\n \nLa politique de sécurité d'Olvid requiert une re-validation de l'identité de %2$@ via un échange de 4 chiffres. Vous pouvez aussi inviter %1$@ directement."; - -/* Invitation details */ -"%1$@ is inviting you to a discussion group.\n\nOlvid\'s security policy requires you to re-validate the identity of %1$@ by exchanging 4-digit codes with them." = "%1$@ aimerait vous inviter à un nouveau groupe de discussion.\n\nLa politique de sécurité d'Olvid requiert une re-validation de l'identité de %1$@ via un échange de 4 chiffres."; - -/* Invitation details */ -"%1$@ wants to introduce you to %2$@." = "%1$@ aimerait vous présenter à %2$@."; - -/* Can serve as a name in the sentence \"%@ accepted to join this group\" */ -"A (now deleted) contact" = "Contact supprimé"; - -/* Abort word, capitalized */ -"Abort" = "Abandonner"; - -/* About word, capitalized */ -"About" = "À propos"; - -/* Accept word, capitalized */ -"Accept" = "Accepter"; - -/* Button title */ -"Accept published version" = "Accepter la version publiée"; - -/* Chip title */ -"Action Required" = "Action requise"; - -/* Actions word, capitalized */ -"Actions" = "Actions"; - -/* Title of the UIAlertController allowing to add an attachment within a message to send. */ -"Add attachment" = "Ajouter une pièce jointe"; - -/* Admin word, capitalized */ -"Admin" = "Administrateur"; - -/* Advanced word, capitalized */ -"Advanced" = "Avancé"; - -/* Invitation details */ -"All the members of the group created by %@ have accepted the invitation." = "Tous les membres du groupe créé par %@ ont accepté l'invitation."; - -/* View controller title */ -"Almost there!" = "Bienvenue"; - -/* Notification title */ -"An invitation requires your attention!" = "Une invitation requiert votre attention !"; - -/* No comment provided by engineer. */ -"API Key" = "Clé d'API"; - -/* Alert title */ -"At least one of the channel establishment failed to restart" = "Erreur lors du redémarrage de l'établissement de canal sécurisé"; - -/* (No Comment) */ -"Attachments smaller than %@ will be automatically downloaded. Larger attachments will require manual download." = "Les pièces jointes de taille inférieure à %@ seront téléchargées automatiquement. Les pièces jointes de plus grande taille devront être téléchargées manuellement."; - -"ALL_ATTACHMENTS_WILL_BE_AUTOMATICALLY_DOWNLOADED" = "Toutes les pièces jointes seront téléchargées automatiquement."; - -/* Table view group footer */ -"Attachments smaller than the specified size will be automatically downloaded. Larger attachments will require manual download." = "Les pièces jointes de taille inférieure à celle spécifiée ici seront téléchargées automatiquement. Les pièces jointes de plus grande taille devront être téléchargées manuellement."; - -/* Alert title */ -"Authorization Required" = "Autorisation Requise"; - -/* Back word, capitalized */ -"Back" = "Retour"; - -/* Title */ -"Background App Refresh is disabled" = "L'actualisation en arrière-plan est désactivée"; - -/* Alert title */ -"Bad QR code" = "Mauvais code QR"; - -/* Alert title */ -"Bad server" = "Mauvais serveur"; - -/* Camera word, capitalized */ -"Camera" = "Appareil photo"; - -/* Cancel word, capitalized */ -"Cancel" = "Annuler"; - -/* Title used above the Table view allowing to choose the new members of a group */ -"Choose Members:" = "Choisir les participants:"; - -/* Must be short, label for the company name */ -"Company" = "Société"; - -/* Title before the list of group members. */ -"Confirmed Group Members:" = "Membres du Groupe:"; - -/* Title before a list of group members. */ -"Confirmed Members:" = "Membres du Groupe:"; - -/* View controller title */ -"Congratulations!" = "Bravo !"; - -/* Alert title */ -"Contact cannot be deleted for now" = "Cet utilisateur ne peut pas être supprimé pour le moment"; - -/* Title of the contact details view controller */ -"Contact Details" = "Détails du contact"; - -/* Title of the view controller allowing to edit a contact */ -"Contact Edition" = "Renommer le contact"; - -/* UIAlert title */ -"Contact Introduction Performed" = "Les présentations sont faites"; - -/* Contacts word, capitalized */ -"Contacts" = "Contacts"; - -/* Copy word, capitalized */ -"Copy" = "Copier"; - -/* Title */ -"Copy text" = "Copier le texte"; - -/* Action of an alert */ -"Copy your Id" = "Copier votre ID"; - -/* Alert title */ -"Could not delete group" = "Le groupe n'a pas pu être supprimé"; - -/* Create word, capitalized */ -"Create" = "Créer"; - -/* Delete word, capitalized */ -"Delete" = "Supprimer"; - -/* Alert action title */ -"Delete all messages" = "Supprimer tous les messages"; - -/* Alert title */ -"Delete all messages?" = "Supprimer tous les messages ?"; - -/* Perform the attachment deletion */ -"Delete attachment" = "Supprimer la pièce jointe"; - -/* Action title */ -"Delete contact" = "Supprimer le contact"; - -/* Action of alert */ -"Delete file" = "Supprimer le fichier"; - -/* Title of alert */ -"Delete File" = "Supprimer le fichier"; - -/* Title */ -"Delete group" = "Supprimer le groupe"; - -/* Title of alert */ -"Delete Message" = "Supprimer le message"; - -/* Title of alert */ -"Delete Message and Attachments" = "Supprimer le message et les pièces jointes"; - -/* Alert title */ -"Delete this contact?" = "Supprimer cet utilisateur ?"; - -/* Body displayed when a reply-to message cannot be found. */ -"Deleted message" = "Message supprimé"; - -/* Details word, capitalized */ -"Details" = "Détails"; - -/* Invitation subtitle */ -"Digits confirmed" = "Code confirmé"; - -/* Discard word, capitalized */ -"Discard" = "Supprimer"; - -/* Alert button title */ -"Discard changes" = "Abandonner les modifications"; - -/* Action title */ -"Discard group creation" = "Abandonner la création du groupe"; - -/* Action title */ -"Discard invitation" = "Décliner l'invitation"; - -/* Action title */ -"Discard this group creation?" = "Écarter cette création de groupe ?"; - -/* Action title */ -"Discard this invitation?" = "Décliner l'invitation ?"; - -/* Discussion word, capitalized */ -"Discussion" = "Discussion"; - -/* Discussions word, capitalized */ -"Discussions" = "Discussions"; - -/* Action title */ -"Do not discard group creation" = "Ne pas écarter la création de groupe"; - -/* Action title */ -"Do not discard invitation" = "Ne pas décliner l'invitation"; - -/* Alert message */ -"Do you really wish to restart the channel establishment?" = "Voulez vous redémarrer l'établissement de canal sécurisé ?"; - -/* Alert message */ -"Do you want to send a new invitation to your contact?" = "Voulez-vous envoyer une nouvelle invitation à votre contact ?"; - -/* Alert message */ -"Do you want to send an invitation to %@?" = "Souhaitez-vous entrer en contact avec %@ ?"; - -/* Alert message */ -"Do you wish to delete all the messages within this discussion? This action is irrevisble." = "Voulez-vous supprimer tous les messages de cette discussion ? Attention, cette opération est irréversible."; - -/* Alert message */ -"Do you wish to open %@ in Safari?" = "Voulez-vous ouvrir %@ dans Safari ?"; - -/* Title of the UIAlertAction allowing to add a document as an attachment within a message to send */ -"Document" = "Document"; - -"Documents" = "Documents"; - -/* Downloads word, capitalized */ -"Downloads" = "Téléchargements"; - -/* Edit word, capitalized */ -"Edit" = "Modifier"; - -/* Title of the EditDisplayNameViewController */ -"Edit your name" = "Modifiez votre nom"; - -/* Section title */ -"Enter your personal details" = "Votre identité"; - -/* Invitation subtitle */ -"Exchange digits" = "Échangez vos codes"; - -/* Button title */ -"Exchange digits with %@" = "Échanger chiffres avec %@"; - -/* Alert title */ -"Export Picture" = "Exporter l'image"; - -/* Alert button title */ -"Export to File App" = "Exporter vers l'App Fichiers"; - -/* Action of alert */ -"Export to the system's File App" = "Exporter le fichier vers l'application Fichiers"; - -/* Alert title */ -"File exported to Files App" = "Fichier exporté vers l'App Fichiers"; - -/* Title of alert */ -"File Management" = "Gestion du fichier"; - -/* Must be short, label for first name */ -"First" = "Prénom"; - -/* Olvid card corner text */ -"Group Card" = "Group Card"; - -/* Olvid card corner text */ -"Group Card - New" = "Group Card - Nouvelle"; - -/* Olvid card corner text */ -"Group Card - On My iPhone" = "Group Card - Sur mon iPhone"; - -/* Olvid card corner text */ -"Group Card - Published" = "Group Card - Publiée"; - -/* Olvid card corner text */ -"Group Card - Unpublished Draft" = "Group Card - Brouillon non publié"; - -/* Invitation subtitle */ -"Group Created" = "Groupe Créé"; - -/* Title group description text field */ -"Group description:" = "Description du groupe:"; - -/* Title before the list of group members. */ -"Group Members:" = "Membres du Groupe:"; - -/* Title group name text field */ -"Group name:" = "Nom du groupe:"; - -/* Groups word, capitalized */ -"Groups" = "Groupes"; - -/* Table View section title */ -"Groups created" = "Groupes créés"; - -/* Table View section title */ -"Groups joined" = "Groupes rejoints"; - -/* Invitation details */ -"If %@ accepts your invitation, you will be notified here." = "En attente de confirmation de la part de %@."; - -/* Button title */ -"Ignore" = "Ignorer"; - -/* No comment provided by engineer. */ -"In order to automatically configure Olvid, you can either scan a configuration QR code or click on the link you received by email." = "Pour configurer Olvid automatiquement, il vous suffit de scanner un code QR de configuration ou de cliquer (depuis votre iPhone) sur le lien que vous devriez avoir reçu par email."; - -/* Message of an alert */ -"In order to invite another Olvid user, you can copy your identity in order to paste it in an email, sms, and so forth. If you receive an identity, you can paste it here." = "Pour inviter un autre utilisateur, vous pouvez copier votre identité puis la coller dans un courriel, un sms, etc. Si vous recevez l'identité d'un autre utilisateur, vous pouvez la coller ici."; - -/* Message of an alert */ -"In order to invite another Olvid user, you can either scan their QR code or show them your own QR code." = "Afin d'entrer en contact avec un autre utilisateur d'Olvid, vous pouvez lui envoyer une invitation, scanner son code QR, ou afficher le vôtre pour qu'il le scanne."; - -/* Title of an alert */ -"Incorrect code" = "Code incorrect"; - -/* Introduce word, capitalized */ -"Introduce" = "Présenter"; - -/* Title of the table listing all identities but the one to introduce */ -"Introduce %@ to..." = "Présenter %@ à..."; - -/* No comment provided by engineer. */ -"Introduced as part of a group discussion" = "Présenté lors d'une création de groupe"; - -/* No comment provided by engineer. */ -"Introduced by %@" = "Présenté par %@"; - -/* No comment provided by engineer. */ -"Introduced by a former contact" = "Présenté par un ancien contact"; - -/* Invitation subtitle */ -"Introduction Accepted" = "Présentation acceptée"; - -/* Alert title */ -"Invitation" = "Invitation"; - -/* Two lines label indicating that a contact declined a group invitation */ -"Invitation\nDeclined" = "Invitation Refusée"; - -/* Invitation subtitle */ -"Invitation accepted" = "Invitation en cours"; - -/* Invitation subtitle */ -"Invitation received" = "Invitation en cours"; - -/* Invitation subtitle, Notification title */ -"Invitation to join a group" = "Invitation à rejoindre un groupe"; - -"Invitations" = "Invitations"; - -/* Invite word, capitalized */ -"Invite" = "Inviter"; - -/* Button title */ -"Invite %@" = "Inviter %@"; - -/* Title of an alert */ -"Invite another Olvid user" = "Choisissez comment inviter un contact"; - -/* Button title for inviting new members to an owned contact group */ -"Invite Members" = "Inviter des participants"; - -/* Must be short, label for last name */ -"Last" = "Nom"; - -/* Title */ -"Leave group" = "Quitter le groupe"; - -/* Indicates a mandatory text field */ -"mandatory" = "requis"; - -/* Action title */ -"Mark all as read" = "Tout marquer comme lu"; - -/* Action title */ -"MARK_AS_READ" = "Marquer comme lu"; - -/* Table view group header */ -"Maximum size for automatic downloads" = "Taille maximum pour téléchargement automatique"; - -/* Stack view title */ -"Members" = "Membres"; - -/* Title of the table listing all members of a discussion group. */ -"Members of %@" = "Membres de %@"; - -/* System message displayed at the top of each conversation. */ -"Messages posted in this discussion are protected using end-to-end encryption. Their confidentiality, their authenticity, and the identity of their sender are guaranteed through cryptography." = "🔒 Les messages postés dans cette discussion sont protégés par du chiffrement de bout-en-bout. Leur confidentialité, leur authenticité et l'identité de leur expéditeur sont garanties grâce à la cryptographie."; - -/* View Controller title */ -"Misconfiguration" = "Configuration"; - -/* UIAlert action title */ -"More..." = "Avancé..."; - -/* UIAlertController title */ -"Mutual Introduction" = "Faire les présentations"; - -/* Invitation subtitle */ -"MUTUAL_TRUST_CONFIRMED" = "Utilisateur ajouté à vos contacts"; - -/* Notification title */ -"Mutual trust confirmed!" = "Canal sécurisé en cours"; - -/* Title of a tab, Title of the MyIdViewController, View Controller title */ -"My Id" = "Mon profil"; - -/* Table View section title */ -"My Olvid Card" = "Mon ID"; - -/* Notification body */ -"n more attachments" = "n pieces jointes de plus"; - -/* Alert title */ -"Name update available" = "Mise à jour disponible"; - -/* Chip title */ -"New" = "Nouveau"; - -/* Title */ -"New contact" = "Nouveau contact"; - -/* Title */ -"New contact details" = "Nouvelle Olvid Card"; - -/* Title */ -"New group details" = "Nouveaux détails de groupe"; - -/* Invitation subtitle */ -"New Group Joined" = "Nouveau groupe rejoint"; - -/* Notification title */ -"New Invitation!" = "Nouvelle Invitation !"; -"New Invitation" = "Nouvelle Invitation"; - -/* No comment provided by engineer. */ -"New message" = "Nouveau message"; - -/* Notification title */ -"New message from %@" = "Nouveau message de %@"; - -/* Invitation subtitle, Notification title */ -"New Suggested Introduction" = "Mise en relation"; - -/* Next word, capitalized */ -"Next" = "Suivant"; - -/* Action title */ -"No" = "Non"; - -/* Subtitle displayed within a discussion cell when there is no message preview to display */ -"No message yet." = "Aucun message pour le moment."; - -/* None word, capitalized */ -"None" = "Aucun"; - -/* Ok word, capitalized */ -"Ok" = "Ok"; - -/* Type title of a owned Olvid card */ -"Olvid Card" = "Olvid Card"; - -/* Type title of a owned Olvid card */ -"Olvid Card - New" = "Olvid Card - Nouvelle"; - -/* Type title of a owned Olvid card */ -"Olvid Card - Published" = "Olvid Card - Publiée"; - -/* Type title of a owned Olvid card */ -"Olvid Card - Trusted" = "Olvid Card - Sur mon iPhone"; - -/* Type title of a owned Olvid card */ -"Olvid Card - Unpublished draft" = "Olvid Card - Brouillon non publié"; - -/* Body of an alert */ -"Olvid is not authorized to access the camera. You can change this setting within the Settings app." = "Olvid n'a pas l'autorisation d'accéder à l'appareil photo 😱. Vous pouvez changer ce paramètre dans l'application Réglages."; - -/* Long explanation */ -"Olvid requires the Background App Refresh to be turned on. Unfortunately it appears to be off. If you wish to use Olvid, please turn it back on.\n\nThe reason why this is required lies in the fact that Olvid regularly executes complex, multipass, cryptographic protocols in order to achieve a security level no other app can compete with. These protocols happen in the background and could not work if you had to manually launch Olvid each time a cryptographic computation has to be performed." = "Olvid nécessite que l'actualisation en arrière-plan soit activée. Malheureusement, cela ne semble pas être le cas sur cet appareil."; - -/* No comment provided by engineer. */ -"One-to-one verification" = "Vérification face-à-face"; - -/* Invitation subtitle */ -"Ongoing Group Creation" = "Création de Groupe en Cours"; - -/* Aloert button title */ -"Open" = "Ouvrir"; - -/* Alert title */ -"Open in Safari?" = "Ouvrir dans Safari ?"; - -/* Button title */ -"Open Settings" = "Aller dans les Réglages"; - -/* Indicates an optional text field */ -"optional" = "optionnel"; - -/* Placeholder for group name */ -"Optional description..." = "Description optionnelle..."; - -/* Paste word, capitalized */ -"Paste" = "Coller"; - -/* Action of an alert */ -"Paste an Id" = "Coller un ID"; - -/* Stack view title */ -"Pending members" = "Membres en attente"; - -/* Title before a list of group members. */ -"Pending Members:" = "Membres en attente:"; - -/* Action of alert - Alert button title */ -"Perform the deletion" = "Suppression"; - -/* UIAlertController action */ -"Perform the introduction" = "Faire les présentations"; - -/* Title of the UIAlertAction allowing to add a photo as an attachment within a message to send */ -"Photo & Video Library" = "Librairie de photos & vidéos"; - -/* Disclaimer showed during the onboarding */ -"Please enter a name which will be displayed to your contacts. These details will never be sent to Olvid's servers." = "Choisissez un nom qui sera affiché chez vos contacts. Ces informations ne seront jamais envoyées aux serveurs d'Olvid."; - -/* Long solution */ -"Please open settings and enable Background App Refresh. Hint: If the button is grayed out, you may have turned off the general setting which can be found within:\n\n Settings > General > Background App Refresh" = "Allez dans les Réglages et activez l'actualisation en arrière-plan.\n\nAstuce : Si le bouton est grisé, vous avez probablement désactivé le réglage global qui se trouve ici :\n \nRéglages > Général > Actualisation en arrière-plan"; - -/* Alert body */ -"Please remove any pending/group member and try again." = "Retirez tous les membres et membres en attente et essayez à nouveau."; - -/* No comment provided by engineer. */ -"Please scan an Olvid configuation QR code." = "Scannez le code QR d'une configuration d'Olvid."; - -/* No comment provided by engineer. */ -"Please specify an identifier that will make it possible for other users to identify you." = "Choisissez un identifiant qui permettra aux autres utilisateurs de vous identifier sans se tromper."; - -/* Must be short, label for the position name within the company */ -"Position" = "Poste"; - -/* Title */ -"Problem" = "Problème"; - -/* Proceed word, capitalized */ -"Proceed" = "Poursuivre"; - -/* Publish word, capitalized */ -"Publish" = "Publier"; - -/* Button title */ -"QR code" = "Code QR"; - -/* No comment provided by engineer. */ -"Re-Scan server settings" = "Scanner à nouveau les paramètres"; - -/* Alert title */ -"Reinvite contact?" = "Inviter à nouveau ?"; - -/* Reject word, capitalized */ -"Reject" = "Refuser"; - -/* Button title for removing members from an owned contact groupe */ -"Remove Members" = "Retirer des Participants"; - -/* Olvid card corner text - UIAlertController action */ -"Remove nickname" = "Supprimer le surnom"; - -/* Reply word, capitalized */ -"Reply" = "Répondre"; - -/* Alert title */ -"Restart channel establishment" = "Redémarrer l'établissement de canal sécurisé"; - -/* button title */ -"Restart Channel Establishment" = "Recréer le canal sécurisé"; - -/* Alert button title */ -"Save changes" = "Sauver les modifications"; - -/* No comment provided by engineer. */ -"Scan" = "Scanner"; - -/* Title of an alert action */ -"Scan another user's QR code" = "Scanner le code QR d'un autre utilisateur"; - -/* View controller title */ -"Scan QR code" = "Scannez un code QR"; - -/* No comment provided by engineer. */ -"Scan server settings" = "Scanner les paramètres du serveur"; - -/* Send word, capitalized */ -"Send" = "Envoyer"; - -/* title of an alert */ -"Send invite" = "Envoyer une invitation"; - -/* No comment provided by engineer. */ -"Server" = "Serveur"; - -/* Section title */ -"Server settings" = "Paramètres du serveur"; - -/* No comment provided by engineer. */ -"Server Settings" = "Paramètres du serveur"; - -/* No comment provided by engineer. */ -"Set Contact Nickname" = "Surnom du Contact"; - -/* Alert title */ -"Set Group Name" = "Choisir un nom pour ce groupe"; - -/* Settings word, capitalized */ -"Settings" = "Paramètres"; - -/* Share word, capitalized */ -"Share" = "Partager"; - -/* Button title allowing to navigation towards a contact */ -"Show Contact" = "Afficher le contact"; - -/* Button title */ -"Show detailed infos" = "Informations détaillées"; - -/* Button title allowing to navigation towards a contact group */ -"Show Group" = "Afficher le Groupe"; - -/* Title of an alert action */ -"Show my QR code" = "Afficher mon code QR"; - -/* Share word, capitalized */ -"Size" = "Taille"; - -/* Title */ -"Solution" = "Solution"; - -/* No comment provided by engineer. */ -"Tap this notification to download the message" = "Appuyez sur cette notification pour télécharger le message"; - -/* Alert title */ -"The channel establishment was restarted" = "L'établissement de canal sécurisé a redémarré"; - -/* Message of an alert */ -"The core you entered is incorrect. The code you need to enter is the one displayed on your contact's device." = "Le code que vous avez entré est incorrect. Celui que vous devez entrer est affiché sur l'écran de votre contact."; - -/* Body */ -"The group owner published a new version of Group Card. Both the old and new versions are shown below.\n\nClick to update the group informations with the new version." = "Le propriétaire du groupe a publié une nouvelle version de la Group Card. L'ancienne et la nouvelle version se trouvent ci-dessous.\n\nCliquez pour mettre à jour les informations du groupe en utilisant la nouvelle version."; - -/* Alert message */ -"The imported API Key seems to be for a different server." = "La clé d'API importée semble être destinée à un autre serveur."; - -/* Invitation details */ -"The invitation appears to come from %@. If you accept this invitation you will guided through the process allowing to make sure that this is the case." = "%@ aimerait entrer en contact avec vous. Cliquez sur « ACCEPTER » si vous êtes d'accord. Sinon, vous pouvez « IGNORER »."; - -/* Action message */ -"The other group members will not be notified." = "Les autres membres du groupe ne seront pas notifiés."; - -/* Alert message */ -"The scanned identity is already part of your trusted contacts 🙌. Do you still wish to proceed?" = "L'identité scannée fait déjà partie de vos contacts 🙌. Voulez-vous quand même poursuivre ?"; - -"%@ is already part of your trusted contacts 🙌. Do you still wish to proceed?" = "%@ fait déjà partie de vos contacts 🙌. Voulez-vous quand même poursuivre ?"; - -/* Alert message */ -"The scanned identity is one of your own 😇." = "L'identité scannée vous appartient 😇."; - -/* Alert message */ -"The scanned QR code does not appear to be an Olvid identity." = "Le code QR ne semble pas correspondre à une identité Olvid."; - -/* System message displayed within a group discussion */ -"This contact was deleted from your contacts, either because you did or because this contact deleted you." = "Ce contact a été supprimé de vos contacts Olvid, soit par vous-même, soit parce que ce contact vous a supprimé de ses propres contacts."; - -/* UIAlertController message */ -"This nickname will only be visible to you and used instead of your contact name within the Olvid interface." = "Ce surnom ne sera visible que de vous. Il sera utilisé en lieu et place du nom de votre contact dans l'interface d'Olvid."; - -/* Alert message */ -"This QR code does not allow to configure Olvid. Please use an Olvid configuration QR code." = "Ce code QR ne permet pas de configurer Olvid. Utilisez plutôt un code de configuration Olvid."; - -/* Placeholder text within the text view. Keep it short. */ -"Type a confidential message..." = "Écrire un message"; - -/* Placeholder for group name */ -"Type a discussion group name..." = "Nom de la discussion de groupe..."; - -/* Update word, capitalized */ -"Update" = "Mettre à jour"; - -/* Chip title */ -"Updated" = "Mis à jour"; - -/* No comment provided by engineer. */ -"URL" = "URL"; - -/* Version word, capitalized */ -"Version" = "Version"; - -/* Invitation details */ -"We are bootstraping the secure channel between you and %@. Please note that this requires %@'s device to be online." = "Nous procédons à la création du canal sécurisé entre vous et %1$@. Merci de patienter..."; - -/* View controller title */ -"Welcome" = "Bienvenue"; - -/* Invitation details */ -"MUTUAL_TRUST_CONFIRMED_DETAILS_%@" = "Bravo ! %1$@ fait maintenant partie de vos contacts et vous pouvez donc avoir une discussion privée."; - -/* Message of alert */ -"What do you want to do with this file?" = "Que voulez-vous faire de ce fichier ?"; - -/* Alert message */ -"Where do you wish to export this picture?" = "Où voulez-vous exporter cette photo ?"; - -/* Yes word, capitalized */ -"Yes" = "Oui"; - -/* Invitation details */ -"You accepted to be introduced to %@ by %@. Please wait until %@ also accepts this invitation." = "Vous avez accepté d'être présenté à %1$@ par %2$@. %3$@ doit à son tour accepter cette invitation."; - -/* Message of alert */ -"You are about to delete a file." = "Vous vous apprêtez à supprimer un fichier."; - -/* UIAlertController message */ -"You are about to introduce %@ to %@" = "Vous allez présenter %1$@ à %2$@"; - -/* Alert message */ -"You are about to remove %1$@ from your contacts. You will no longer be able to exchange messages with them.\n\nNote that %1$@ is a pending member in at least one group you belong to. %1$@ might get added back to your contacts in a near future. You may want to leave these groups to avoid this.\n\nReally delete this contact?" = "Vous êtes sur le point de retirer %1$@ de vos contacts. Vous ne pourrez plus échanger de message avec cette personne.\n\nNotez que %1$@ est un membre en attente dans certains groupes auxquel vous appartenez. Il risque d'être ajouté à vos contacts à nouveau dans un future proche. Vous pouvez vous prémunir de cela en quittant ces groupes.\n\nSouhaitez-vous supprimer ce contact ?"; - -/* Alert message */ -"You are about to remove %1$@ from your contacts. You will no longer be able to exchange messages with them.\n\nReally delete this contact?" = "Vous êtes sur le point de supprimer l'utilisateur %1$@."; - -/* Notification body */ -"You are invited to join a group created by %@." = "Vous êtes invité à rejoindre un groupe créé par %@."; - -/* Invitation details */ -"YOU_ARE_INVITED_TO_JOIN_A_GROUP_CREATED_BY_%@_EXPLANATION" = "Vous êtes invité à rejoindre un groupe créé par %@."; - -/* Alert message */ -"You cannot remove %@ from your contacts as both of you belong to some common groups. You will need to leave these groups to proceed." = "Vous ne pouvez pas supprimer l'utilisateur %@ car vous appartenez à certains groupes en commun. Vous devrez quitter ces groupes pour pouvoir continuer."; - -/* Invitation details */ -"You have accepted to join a group created by %@." = "Vous avez rejoint un groupe créé par %@."; - -/* Invitation details */ -"You have joined a group created by %@." = "Vous avez rejoint un groupe créé par %@."; - -/* Invitation details */ -"You have successfully entered the 4 digits of %1$@. You should communicate your four digits to %1$@. Your digits are %2$@." = "Vous avez entré le code de %1$@ avec succès. Il ne vous reste plus qu'à lui communiquer le vôtre (%2$@).\n\nPrivilégiez le face-à-face ou un appel téléphonique (évitez absolument email, SMS ou toute messagerie électronique)."; - -/* Notification body */ -"You now appear in %@'s contacts list. A secure channel is being established. When this is done, you will be able to exchange confidential messages and more!" = "Vous apparaissez dans les contacts de %@. Un canal sécurisé s'établit. Une fois fini, vous pourrez communiquer."; - -/* Notification body */ -"You receive a new invitation from %@. You can accept or silently discard it." = "Vous avez reçu une invitation de la part de %@. Vous pouvez accepter cette invitation ou l'écarter sans notifier votre correspondant."; - -/* Invitation details */ -"You should communicate your four digits to %@. Your digits are %@. You should also enter the 4 digits of %@." = "Pour entrer en contact avec %1$@, vous devez lui communiquer votre code (%2$@) et saisir le sien.\n\nAssurez-vous que c’est bien %3$@ qui vous donne son code. Privilégiez le face-à-face ou un appel téléphonique (évitez absolument email, SMS ou toute messagerie électronique)."; - -/* UIAlertController message */ -"You successfully introduced %@ to %@" = "Vous avez présenté %1$@ à %2$@"; - -"You successfully introduced %@ to %@ and %d other contacts" = "Vous avez présenté %1$@ à %2$@ ainsi qu'à %2$d autre(s) contacts(s)"; - -/* Explanation */ -"Your are about to leave a group." = "Vous vous apprêtez à quitter définitivement un groupe."; - -/* Explanation */ -"Your are about to permanently delete a group." = "Vous vous apprêtez à supprimer définitivement un groupe."; - -/* Notification body */ -"Your are one step away to create a secure channel with %@!" = "Plus qu'une étape pour établir un canal sécurisé avec %@!"; - -/* Body */ -"Your contact published a new version of their Olvid card. Both the old and new versions are shown below.\n\nClick to update yout contact's informations with the new version." = "Votre contact a mis à jour son Olvid Card. L'ancienne version et la nouvelle se trouvent ci-dessous.\n \nActualisez les informations de votre contact en cliquant « Mettre à jour »."; - -/* No comment provided by engineer. */ -"Your Id" = "Votre ID"; - -/* Alert title */ -"YOUR_ID_WAS_COPIED" = "Votre ID a été copiée"; - -/* Alert message */ -"YOUR_ID_WAS_COPIED_TO_CLIPBOARD_YOU_CAN_WRITE_EMAIL_AND_COPY_IT_THERE" = "Votre ID a été copiée dans le presse-papier. Vous pouvez préparer un courriel ou un sms et l'y copier directement."; - -/* Invitation subtitle */ -"Your invitation was sent" = "Invitation en cours"; - -/* Alert title */ -"Your Messages are on hold" = "Vos messages sont en attente"; - -/* Text used within the footer in a discussion. */ -"Your messages will be automatically sent once a contact accepts to join this group discussion. Until then, they will remain on hold." = "Vous pourrez écrire dans cette discussion dès que l'un de vos contacts aura accepté votre invitation."; - -/* Text used within the footer in a discussion. */ -"Your messages will be automatically sent once a secure channel is established for this discussion. Until then, they will remain on hold." = "Vos messages seront automatiquement envoyés dès qu'un canal sécurisé sera établi pour cette discussion. D'ici là, ils resteront en attente."; - -"Identity color style" = "Couleurs pour les identités"; - -"Interface" = "Interface"; - -/* Small string used in tab controller to sort by latest discussions */ -"Latest Discussions" = "Récentes"; - -/* Displayed in QuickLook when showing a downloading file */ -"Downloading File..." = "Le téléchargement n'est pas terminé 😕"; - -/* Subject used when inviting another user to Olvid, i.e., when sharing ones owned identity using, e.g., an email */ -"%@ invites you to discuss on Olvid" = "%@ aimerait discuter avec vous sur Olvid"; - -/* Body used when inviting another user to Olvid, i.e., when sharing ones owned identity using, e.g., an email or message */ -"%@ invites you to discuss on Olvid. To accept, please click the link below:\n\n%@" = "%@ aimerait discuter avec vous sur Olvid. Pour l'y inviter, veuillez cliquer sur le lien suivant :\n\n%@\n"; - -"Scan document" = "Scanner un document"; - -"Read" = "Lu"; - -"Delivered" = "Distribué"; - -"Sent" = "Envoyé"; - -"Send Read Receipts" = "Confirmation de lecture"; - -"Recent" = "Récent"; - -/* General Read Receipt explanantions */ - -"Your contacts will be notified when you have read their messages. This settting can be overriden on a per discussion basis." = "Vos correspondants recevront une confirmation lorsque vous aurez lu leurs messages. Ce paramètre peut être modifié indépendemment pour chaque discussion."; - -"Your contacts won't be notified when you read their messages. This settting can be overriden on a per discussion basis." = "Vos correspondants ne recevront pas de confirmation lorsque vous lirez leurs messages. Ce paramètre peut être modifié indépendamment pour chaque discussion."; - -/* Per discussion Read Receipt explanations */ - -"A read receipt will be sent for each message you read within this discussion." = "Vos correspondants recevront une confirmation lorsque vous aurez lu leurs messages dans le cadre de cette discussion."; - -"No read receipt will be sent within this discussion." = "Vos correspondants ne recevront pas de confirmation lorsque vous lirez leurs messages dans le cadre de cette discussion."; - -"Default" = "Par défaut"; - -"DISCUSSION_SETTINGS" = "Paramètres de la discussion"; - -"Use application default" = "Réglage par défaut"; - -"Privacy" = "Vie Privée"; - -"LOGIN_WITH_SYSTEM_PASSCODE_TITLE" = "S'authentifier avec le code d’accès de votre appareil"; -"LOGIN_WITH_TOUCH_ID_SYSTEM_PASSCODE_TITLE" = "S'authentifier avec Touch ID ou le code d’accès de votre appareil"; -"LOGIN_WITH_FACE_ID_SYSTEM_PASSCODE_TITLE" = "S'authentifier avec Face ID ou le code d’accès de votre appareil"; -"LOGIN_WITH_TOUCH_ID_FACE_ID_SYSTEM_PASSCODE_TITLE" = "S'authentifier avec Touch ID, Face ID ou le code d’accès de votre appareil"; - -"LOGIN_WITH_CUSTOM_PASSCODE_TITLE" = "S'authentifier avec un code personnalisé"; -"LOGIN_WITH_TOUCH_ID_CUSTOM_PASSCODE_TITLE" = "S'authentifier avec Touch ID ou un code personnalisé"; -"LOGIN_WITH_FACE_ID_CUSTOM_PASSCODE_TITLE" = "S'authentifier avec Face ID ou un code personnalisé"; -"LOGIN_WITH_TOUCH_ID_FACE_ID_CUSTOM_PASSCODE_TITLE" = "S'authentifier avec Touch ID, Face ID ou un code personnalisé"; - -"LOGIN_WITH_SYSTEM_PASSCODE_EXPLANATION" = "Cette option vous permet de protéger l'accès à Olvid grâce au code d’accès de votre appareil."; -"LOGIN_WITH_TOUCH_ID_SYSTEM_PASSCODE_EXPLANATION" = "Cette option vous permet de protéger l'accès à Olvid grâce à Touch ID ou au code d’accès de votre appareil."; -"LOGIN_WITH_FACE_ID_SYSTEM_PASSCODE_EXPLANATION" = "Cette option vous permet de protéger l'accès à Olvid grâce à Face ID ou au code d’accès de votre appareil."; -"LOGIN_WITH_TOUCH_ID_FACE_ID_SYSTEM_PASSCODE_EXPLANATION" = "Cette option vous permet de protéger l'accès à Olvid grâce à Face ID, Touch ID ou au code d’accès de votre appareil."; - -"NO_AUTHENTICATION_EXPLANATION" = "L'écran d'Olvid ne sera pas vérouillé."; - -"LOGIN_WITH_CUSTOM_PASSCODE_EXPLANATION" = "Cette option vous permet de protéger l'accès à Olvid grâce au code personnalisé."; -"LOGIN_WITH_TOUCH_ID_CUSTOM_PASSCODE_EXPLANATION" = "Cette option vous permet de protéger l'accès à Olvid grâce à Touch ID ou au code personnalisé."; -"LOGIN_WITH_FACE_ID_CUSTOM_PASSCODE_EXPLANATION" = "Cette option vous permet de protéger l'accès à Olvid grâce à Face ID ou au code personnalisé."; -"LOGIN_WITH_TOUCH_ID_FACE_ID_CUSTOM_PASSCODE_EXPLANATION" = "Cette option vous permet de protéger l'accès à Olvid grâce à Touch/Face ID ou au code personnalisé."; - -"Authenticate" = "S'authentifier"; - -"Please authenticate to start Olvid" = "Authentifiez-vous pour démarrer Olvid"; - -"After" = "Après"; - -"Immediately" = "Immédiatement"; - -"Please authenticate in order to change this setting." = "Authentifiez-vous pour changer ce paramètre."; - -"No passcode set on this iPhone." = "Aucun code PIN n'a été choisi sur cet iPhone."; - -"😧 Oups..." = "😧 Oups..."; - -/* Used within a HUD to indicate to the user that she should choose a discussion for AirDrop'ed files */ -"Choose Discussion" = "Choisir une Discussion"; - -/* Title of the screen displaying informations about a specific message within a discussion */ -"MESSAGE_INFO" = "Informations sur le message"; - -"Rich link preview" = "Prévisualisation des liens"; - -"Never" = "Jamais"; - -"Sent messages only" = "Messages envoyés uniquement"; - -"Always" = "Toujours"; - -"Clear cache" = "Supprimer le cache"; - -"Cache management" = "Gestion du cache"; - -"Websocket status" = "État de la connexion de la websocket"; - -"Hide notifications content" = "Cacher le contenu"; - -"Hide notifications" = "Cacher les notifications"; - -"Olvid requires your attention" = "Olvid requiert votre attention."; - -"Show" = "Afficher"; - -"Partially" = "Partiellement"; - -"Notifications will preview new messages and new invitations content." = "Les notifications afficheront une prévisualisation du contenu des nouveaux messages ainsi que des nouvelles invitations."; - -"Notifications will not preview any message content nor any invitation content. Instead, they will display the number of new messages as well as the number of new invitations." = "Les notifications n'afficheront pas le contenu des nouveaux messages ni des nouvelles invitations. Il sera néanmoins possible de distinguer une notification de nouveau message d'une notification de nouvelle invitation."; - -"Notifications will not provide any information about messages nor invitations. A minimal static notification will show to indicate that Olvid requires your attention." = "Les notifications n'afficheront aucune information concernant les messages ou les invitations. À la place, elles afficherons un texte standard indiquant qu'Olvid requiert votre attention."; - -"Completely" = "Totalement"; - -"Tap to see the message" = "Appuyez pour voir le message."; - -"New invitation" = "Nouvelle invitation"; - -"Tap to see the invitation" = "Appuyez pour voir l'invitation."; - -"Notifications" = "Notifications"; - -"Screen Lock" = "Verrouillage d'écran"; - -"Backup" = "Sauvegarde"; - -/* Explanation shown on on top of a backup key shown to the user. */ -"The backup key below will be used to encrypt all your Olvid backups. Please keep it in a safe place.\nOlvid will periodically check you are able to enter this key to ensure you do note lose access to your backups." = "La clé de sauvegarde ci-dessous sera utilisée pour chiffrer toutes vos sauvegardes d'Olvid. Gardez la précieusement.\nIl vous sera périodiquement demandé d'entrer cette clé pour vous assurer de ne perdre l'accès à vos sauvegardes."; - -/* Explanation shown below a backup key shown to the user. */ -"This is the only time this key will be displayed. If you lose it, you will need to generate a new one." = "C'est votre seule occasion de noter cette clé puisqu'elle ne sera plus jamais réaffichée. Si vous la perdez, vous devrez en générer une nouvelle."; - -/* "Button title shown to the user" */ -"I have copied the key" = "J'ai bien copié la clé"; - -/* Title of the view showing a new backup key */ -"New backup key" = "Nouvelle clé de sauvegarde"; - -"GENERATE_NEW_BACKUP_KEY" = "Générer une clé de sauvegarde"; - -"VERIFIY_OR_GENERATE_NEW_BACKUP_KEY" = "Vérifier ou générer une nouvelle clé"; - -"Decline" = "Décliner"; - -/* Table view section footer */ -"NO_BACKUP_KEY_GENERATED_YET" = "Pour effectuer une sauvegarde chiffrée de vos contacts, groupes et paramètres, la première étape est de générer une clé de sauvegarde 🔐. Aucune clé de sauvegarde n'a été générée pour le moment."; - -/* Table view section header */ -"GENERATE_BACKUP_KEY_SECTION_TITLE" = "Clé de sauvegarde"; - -/* Table view section header */ -"MANUAL_BACKUP_TITLE" = "Sauvegarde manuelle"; - -/* Button title allowing to backup now */ -"BACKUP_AND_SHARE_NOW" = "Sauvegarder et partager"; - -/* Table view section footer */ -"MANUAL_BACKUP_EXPLANATION_FOOTER" = "Permet d'exporter une sauvegarde chiffrée de vos contacts, groupes et paramètres (les messages et pièces jointes ne sont pas sauvegardés). Vous pouvez la partager (l'envoyer par mail, la sauvegarder dans Fichiers, etc.) ou la sauvegarder directement vers iCloud. Ne vous en faites pas, cette sauvegarde est chiffrée 😇."; - -"Refresh group" = "Actualiser le groupe"; - -"Debug" = "Debug"; - -"Fetching latest upload" = "Récupération de la dernière sauvegarde..."; - -"CANNOT_FETCH_LATEST_UPLOAD" = "Impossible de récuperer la dernière sauvegarde. Avez-vous bien configuré iCloud ?"; - -"Latest export: %@" = "Dernier export: %@"; - -"No backup was exported yet." = "Aucune sauvegarde exportée pour le moment."; - -"Thank you!" = "Merci !"; - -"Sorry..." = "Désolé..."; - -"Olvid failed to start properly. This is a terrible experience, we deeply appologize about this." = "Olvid n'a pas pu démarrer correctement. Nous en sommes désolés. Mais rassurez-vous, aucune de vos données n'a été perdue."; - -"Send this to the development team" = "Envoyer à l'équipe de développement"; - -"If you wish, you can help the development team by tapping the button below. This will share (only) the above message with them." = "Si vous le désirez, vous pouvez aider l'équipe de développement via la bouton ci-dessous. Vous partagerez (uniquement) le message encadré ci-dessous avec elle."; - -"Please report this error to %1$@ so we can fix this issue as fast as possible." = "Il se peut qu'un redémarrage de votre iPhone corrige ce problème. Sinon, nous vous serions reconnaissant d'envoyer cette erreur à %1$@ pour que nous puissions la corriger le plus vite possible."; - -"Please fix this serious issue with Olvid" = "Merci de corriger cette erreur dans Olvid"; - -"Olvid failed to initialize with the following error message:\n\n%1$@" = "Olvid n'a pas pu démarrer correctement. Voici le message d'erreur:\n\n%1$@"; - -"Your identity is deactivated on this device since it is active on another device. This tipically happens when you restore a backup on a device: this deactivates your previous device." = "Votre identité est désactivée sur cet appareil puisqu'elle est active sur un autre appareil. Cela arrive quand une sauvegarde est restaurée sur un nouvel appareil : l'ancien est désactivé."; - -"What can I do?" = "Que puis-je faire ?"; - -"You can still access your old discussions on this device, but you cannot send nor receive new messages. If you want to do so, you can tap on Reactivate this device. Please note that this will deactivate your other device." = "Vous pouvez toujours accéder à votre anciennes discussions sur cet appareil, mais vous ne pouvez plus recevoir de nouveaux messages. Si vous le voulez, vous pouvez appuyer sur « Réactiver mon identité sur cet appareil ». Attention, ceci désactivera votre deuxième appareil."; - -"Reactivate my identity on this device" = "Réactiver mon identité sur cet appareil"; - -"Current backup key generated: %@" = "Clé de sauvegarde générée: %@"; - -"Verify backup key" = "Vérifier la clé de sauvegarde"; - -"Enter backup key" = "Clé de sauvegarde"; - -"Forgot your backup key?" = "Clé de sauvegarde oubliée ?"; - -"Please enter all the characters of your backup key." = "Entrez tous les caractères de votre clé de sauvegarde."; - -"Please enter the backup key that was presented to you when you configured backups.\n\nThis key is the only way to decrypt the backup. If you lost it, backup restoration is impossible." = "Veuillez entrer la clé de sauvegarde qui vous a été présentée lorsque vous avez configuré les sauvegardes.\n\nCette clé est l'unique moyen de déchiffrer la sauvegarde. Sans elle, la restauration est impossible."; - -"The backup key is correct" = "La clé de sauvegarde est correcte"; - -"You may proceed with the restoration." = "Vous pouvez continuer."; - -"Restore this backup" = "Restaurer la sauvegarde"; - -"The backup key is incorrect" = "La clé de sauvegarde est incorrecte"; - -"Please check your backup key and try again." = "Vérifier votre clé de sauvegarde et essayez à nouveau."; - -"Please choose the location of the backup file you wish to restore." = "Choisissez l'emplacement du fichier de sauvegarde que vous souhaitez restaurer."; - -"Choose From a file to pick a backup file create from a manual backup." = "Choisissez « Depuis un fichier » pour restaurer une sauvegarde effectuée manuellement."; - -"Choose From the cloud to select an account used for automatic backups." = "Choisissez « Depuis iCloud » pour restaurer une sauvarde effectuée automatiquement."; - -"From a file" = "Depuis un fichier"; - -"From the cloud" = "Depuis iCloud"; - -"Backup file selected" = "Fichier de sauvegarde séléctionné"; - -"Proceed and enter backup key" = "Entrer la clé de sauvegarde"; - -"RESTORING_BACKUP_PLEASE_WAIT" = "Restauration en cours..."; - -"Restore failed 🥺" = "La restauration a échoué 🥺"; - -"Try again" = "Essayer à nouveau"; - -"Welcome to Olvid!" = "Bienvenue sur Olvid !"; - -"If you are a new Olvid user, simply click Continue as a new user below." = "Si vous êtes un nouvel utilisateur d'Olvid, touchez « Nouvel utilisateur »."; - -"If you already used Olvid and want to restore your identity and contacts from a backup, click Restore a backup" = "Si vous avez déjà utilisé Olvid et souhaitez restaurer une sauvegarde de vos contacts, touchez « Restaurer une sauvegarde »."; - -"Continue as a new user" = "Nouvel utilisateur"; - -"Restore a backup" = "Restaurer une sauvegarde"; - -"BACKUP_AND_UPLOAD_NOW" = "Sauvegarder et télécharger vers iCloud"; - -"AUTOMATIC_BACKUP" = "Sauvegarde automatique vers iCloud"; - -"ENABLE_AUTOMATIC_BACKUP" = "Activer la sauvegarde automatique vers iCloud"; - -"AUTOMATIC_BACKUP_EXPLANATION" = "Activer cette option permet d'effectuer une sauvegarde automatique de vos contacts, groupes et paramètres (les messages et pièces jointes ne sont pas sauvegardés)."; - -"Latest upload: %@" = "Dernier téléchargement : %@"; - -"⚠️ Latest failed upload: %@" = "⚠️ Dernière erreur : %@"; - -"No backup was uploaded yet." = "Aucune sauvegarde pour le moment."; - -"Sign in to iCloud" = "Connectez-vous à iCloud"; - -"iCloud status is unclear" = "Le status de iCloud n'est pas clair"; - -"iCloud access is restricted" = "Accès restreint à iCloud"; - -"Your iCloud account is not available. Access was denied due to Parental Controls or Mobile Device Management restrictions" = "Votre compte iCloud n'est pas accessible. L'accès a été refusé suite à des restrictions liées à du contrôle parental ou à la gestion des terminaux mobiles (MDM) de votre entreprise."; - -"Please sign in to your iCloud account to enable automatic backups. On the Home screen, launch Settings, tap iCloud, and enter your Apple ID. Turn iCloud Drive on. If you don't have an iCloud account, tap Create a new Apple ID." = "Connectez-vous à iCloud pour activer les sauvegardes automatiques. Sur l'écran d'accueil, démarrez l'App Réglages, touchez iCloud et entrez votre Apple ID. Activez iCloud Drive. Si vous n'avez pas de compte iCloud, touchez Créer un nouvel Apple ID."; - -"AUTOMATIC_ICLOUD_BACKUPS" = "Sauvegardes iCloud automatiques"; - -"iCloud backups list" = "Liste des sauvegardes iCloud"; - -"Clean" = "Nettoyer"; - -"CLEAN_OLD_BACKUPS" = "Supprimer les anciennes sauvegardes iCloud"; - -"CLEAN_OLD_BACKUPS_ON_ALL_DEVICES" = "Supprimer pour tous les appareils"; - -"CLEAN_OLD_BACKUPS_ON_CURRENT_DEVICE" = "Supprimer pour cet appareil"; - -"CLEAN_OLD_BACKUPS_TITLE" = "Supprimer les anciennes sauvegardes iCloud ?"; - -"CLEAN_OLD_BACKUPS_MESSAGE" = "Supprimer les anciennes sauvegardes iCloud pour ne garder que la plus récente."; - -"CLEAN_LATEST_BACKUP_FOR_OTHER_DEVICE_TITLE" = "Supprimer la sauvegarde iCloud la plus récente d'un autre appareil ?"; - -"CLEAN_LATEST_BACKUP_FOR_OTHER_DEVICE_MESSAGE" = "Attention, vous vous apprêtez à supprimer la sauvegarde iCloud la plus récente d'un autre apparail."; - -"CLEAN_LATEST_BACKUP_FOR_CURRENT_DEVICE_TITLE" = "Supprimer la sauvegarde iCloud la plus récente ?"; - -"CLEAN_LATEST_BACKUP_FOR_CURRENT_DEVICE_MESSAGE" = "Attention, vous vous apprêtez à supprimer la sauvegarde iCloud la plus récente."; - -"Automatic iCloud backup cleaning" = "Suppression automatique des anciennes sauvegardes iCloud"; - -"Copy Documents URL" = "Copier l'URL des Documents"; - -"Copy App Database URL" = "Copier l'URL des bases de données"; - -"Backup creation date: %@" = "Date de création de la sauvegarde : %@"; - -"Please sign in to your iCloud account. On the Home screen, launch Settings, tap iCloud, and enter your Apple ID. Turn iCloud Drive on." = "Connectez-vous à iCloud. Sur l'écran d'accueil, démarrez l'App Réglages, touchez iCloud et entrez votre Apple ID. Activez iCloud Drive."; - -"Sign in to iCloud" = "Connectez-vous à iCloud"; - -"Unexpected iCloud file error" = "Erreur de fichier iCloud inattendue"; - -"We could not retrieve the encrypted backup content from iCloud" = "Impossible de récupérer la sauvegarde chiffrée depuis iCloud"; - -"We could not retrieve the creation date of the backup content from iCloud" = "Il n'a pas été possible de récupérer la date de création de la sauvegarde depuis iCloud"; - -"We could not retrieve the device name of the backup content from iCloud" = "Il n'a pas été possible de récupérer le nom de l'appareil correspondant à la sauvegarde depuis iCloud"; - -"iCloud error" = "Erreur iCloud"; - -"No backup available in iCloud" = "Aucune sauvegarde trouvée sur iCloud"; - -"We could not find any backup in you iCloud account. Please make sure this device uses the same iCloud account as the one you were using on the previous device." = "Aucune sauvegarde n'a été trouvé sur votre compte iCloud. Assurez-vous que cet appareil utilise bien le même compte iCloud que celui de votre appareil précédent."; - -"Generate new backup key?" = "Générer une nouvelle clé de sauvegarde ?"; - -"Please note that generating a new backup key will invalidate all your previous backups. If you generate a new backup key, please create a fresh backup right afterwards." = "Générer une nouvelle clé de sauvegarde invalide vos sauvegardes précédentes. Si vous décidez de générer une nouvelle clé, nous vous recommandons d'effectuer une sauvegarde juste après."; - -"Generate new backup key now" = "Regénérer une clé de sauvegarde maintenant"; - -"Export App Database" = "Exporter la base de données de l'App"; - -"Export Engine Database" = "Exporter la base de données de l'Engine"; - -"Custom Display Name" = "Surnom à afficher"; - -"Full Display Name" = "Nom complet"; - -"Identity" = "Identité"; - -"Devices" = "Dispositifs"; - -"USE_CALLKIT" = "Utiliser CallKit"; - -"BUTTON_TITLE_AUTHENTICATE" = "S'authentifier"; - -"VoIP" = "VoIP"; - -"CALL_STATE_NEW" = "Nouvel appel..."; - -"CALL_STATE_GETTING_TURN_CREDENTIALS" = "Authentification..."; - -"CALL_STATE_KICKED" = "Exclue"; - -"USER_HAS_BEEN_KICKED" = "Vous avez été exclu de l'appel."; - -"CALL_STATE_INCOMING_CALL_MESSAGE_WAS_POSTED" = "Connexion..."; - -"CALL_STATE_INITIALIZING_CALL" = "Initialisation de l'appel..."; - -"CALL_STATE_USER_ANSWERED_INCOMING_CALL" = "Appel accepté..."; - -"CALL_STATE_CONNECTING_TO_PEER" = "Connexion..."; - -"CALL_STATE_CONNECTED" = "Connecté"; - -"CALL_STATE_BUSY" = "Occupé"; - -"CALL_STATE_RECONNECTING" = "Reconnexion"; - -"CALL_STATE_RINGING" = "Sonnerie..."; - -"CALL_STATE_CALL_REJECTED" = "Appel refusé"; - -"CALL_STATE_CALL_IN_PROGRESS" = "Appel en cours"; - -"CALL_STATE_HANGED_UP" = "Appel raccroché"; - -"Restore" = "Restaurer"; - -"Could not read backup file" = "Le fichier de sauvegarde n'a pas pu être lu"; - -"Speaker" = "Haut-parleur"; - -"ALERT_TITLE_KICK_PARTICIPANT" = "Exclure un contact de l'appel ?"; - -"ALERT_MESSAGE_KICK_PARTICIPANT_%@" = "Souhaitez-vous réellement exclure %@ de l'appel en cours ?"; - -"Exclude" = "Exclure"; - -"DO_NO_SHOW_MSG_AGAIN" = "Ne plus afficher ce message"; - -"TITLE_RESET_ALL_ALERTS" = "Réinitialiser les alertes"; - -"TITLE_HELP_FAQ" = "Aide/FAQ"; - -"ALERT_MSG_OUTGOING_CALL_FAILED_USER_DENIED_RECORDING" = "Pour passer cet appel, vous devez autoriser Olvid à accéder au micro. Allez dans les Réglages et activez le Micro."; - -"ALERT_VOICE_MESSAGE_FAILED_USER_DENIED_RECORDING" = "Pour enregistrer un message vocal, vous devez autoriser Olvid à accéder au micro. Allez dans les Réglages et activez le Micro."; - -"CALL_STATE_PERMISSION_DENIED_BY_SERVER" = "Connexion refusée par le serveur"; - -"INCLUDE_CALL_IN_RECENTS" = "Partager liste appels avec le système"; - -"Pending" = "En attente"; - -"MISSED_CALL" = "Appel manqué"; - -"MISSED_CALL_FILTERED" = "Appel manqué alors que vous étiez en mode « Concentration »."; - -"ACCEPTED_OUTGOING_CALL" = "Appel sortant"; - -"ACCEPTED_INCOMING_CALL" = "Appel entrant"; - -"ANY_OUTGOING_CALL" = "Appel sortant..."; - -"ANY_INCOMING_CALL" = "Appel entrant..."; - -"REJECTED_OUTGOING_CALL" = "Appel sortant rejeté"; - -"REJECTED_INCOMING_CALL" = "Appel entrant rejeté"; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_UNDETERMINED" = "L'appel entrant n'a pas abouti car Olvid n'a pas l'autorisation d'accéder au micro. Cliquez sur ce message pour autoriser l'accès au micro."; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_UNDETERMINED_NOTIFICATION_BODY" = "Pour recevoir des appels, vous devez autoriser Olvid à accéder au micro. Cliquez sur la notification et autorisez l'accès au micro."; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_GRANTED" = "L'appel entrant n'a pas abouti car Olvid n'avait pas l'autorisation d'accéder au micro. Fort heureusement, l'autorisation a été accordée. Vous ne raterez plus aucun appel 🥳 !"; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_DENIED" = "L'appel entrant n'a pas abouti car Olvid n'a pas l'autorisation d'accéder au micro. Pour ne plus rater d'appel, allez dans les Réglages et autorisez l'accès au micro pour Olvid."; - -"REJECTED_INCOMING_CALL_BECAUSE_RECORD_PERMISSION_IS_DENIED_NOTIFICATION_BODY" = "Pour recevoir des appels, vous devez autoriser Olvid à accéder au micro. Pour ne plus rater d'appel, allez dans les Réglages et autorisez l'accès au micro pour Olvid."; - -"BUSY_OUTGOING_CALL" = "Appel sortant occupé"; - -"UNANSWERED_OUTGOING_CALL" = "Appel sortant sans réponse"; - -"UNCOMPLETED_OUTGOING_CALL" = "Appel sortant non abouti"; - -"CHOOSE_PREFERRED_AUDIO_SOURCE" = "Choisissez votre source audio"; - -"SECURE_CALL_IN_PROGRESS" = "Appel sécurisé en cours"; - -"SECURING_CALL_LINE" = "Sécurisation de la ligne"; - -"UNANSWERED" = "Sans réponse"; - -"WITH_%@" = "avec %@"; - -"FROM_%@" = "de %@"; - -"AND_ONE_OTHER" = "et un autre"; - -"AND_%@_OTHERS" = "et %@ autres"; - -"Hangup" = "Raccrocher"; - -"HOW_DO_YOU_WANT_TO_SHARE_ID" = "Comment voulez-vous partager votre ID ?"; - -"SHARE_MY_ID" = "Partager mon ID"; - -"SCAN_CONTACT_ID" = "Scanner l'Id d'un contact"; - -"SHARING_YOUR_ID_ALLOWS_OTHERS_TO_INVITE_YOU_REMOTELY" = "Partager votre ID permet à un autre utilisateur de vous inviter."; - -"SCANNING_CONTACT_ID_ALLOWS_YOU_TO_INVITE_THEM_NOW" = "Scanner l'ID d'un autre utilisateur vous permet de l'inviter."; - -"Show my Id" = "Montrer mon ID"; - -"Olvid is not authorized to access the camera. Because your settings are restricted, there is nothing we can do about this. Please contact your administrator." = "Olvid n'a pas l'autorisation d'accéder à l'appareil photo 😱. Vos paramètres étants restreints, il n'y a rien que nous ne puissions faire. Nous vous recommandons de contacter votre administrateur."; - -"Do you wish to send an invite to %@?" = "Voulez-vous envoyer une invitation à %@ ?"; - -"YOUR_ID_WAS_COPIED_TO_CLIPBOARD" = "Votre ID a été copiée dans le presse-papiers"; - -"Oops..." = "Oups..."; - -"What you pasted doesn't seem to be an Olvid identity 🧐" = "Ce que vous venez de coller ne semble pas être un ID Olvid 🧐"; - -/* Alert message */ -"THIS_ID_IS_THE_ONE_YOU_OWN" = "Cette ID est la vôtre 😇."; - -"Add new contact" = "Ajouter un nouveau contact"; - -"SUBSCRIBING_TO_USER_NOTIFICATIONS_EXPLANATION" = "Olvid est plus agréable à utiliser si vous acceptez d'être notifié à chaque nouveau message & invitation ! Le prochain écran vous donnera la possibilité de souscrire aux notifications.\n\nVous pourrez toujours changer d'avis plus tard 😇."; - -"CONTINUE" = "Continuer"; - -"SCAN" = "Scanner"; - -"COPY_MY_ID_TO_CLIPBOARD" = "Copier mon ID dans le presse-papiers"; - -"PASTE_CONTACT_ID_FROM_CLIPBOARD" = "Coller un ID de contact depuis le presse-papiers"; - -"More invitations methods" = "Autres méthodes d'ajout de contact"; - -"CHOOSE_GROUP_MEMBERS" = "Choisir les participants"; - -"EDIT_MY_ID" = "Modifier mon ID"; - -"SUBSCRIPTION_STATUS" = "État de l'abonnement"; - -"Premium features tryout" = "Essai des fonctionnalités premium"; - -"No active subscription" = "Aucun abonnement actif"; - -"Valid license" = "Licence valide"; - -"Invalid subscription" = "Abonnement non valide"; - -"Subscription expired" = "Abonnement expiré"; - -"This subscription is already associated to another user" = "Cet abonnement est déjà associé à un autre utilisateur"; - -"FORM_FIRST_NAME" = "Prénom"; - -"FORM_LAST_NAME" = "Nom de famille"; - -"FORM_POSITION" = "Poste"; - -"FORM_COMPANY" = "Société"; - -"PUBLISH_MY_ID" = "Publier mon ID"; - -"PUBLISH_NEW_ID" = "Publier votre nouvelle ID ?"; - -"ARE_YOU_SURE_PUBLISH_NEW_OWNED_ID" = "Une fois publiée, la nouvelle version de votre ID s'affichera chez tous vos contacts."; - -"Premium features are available for a limited period of time" = "Les fonctionnalités premium sont disponibles pour une durée limitée."; - -"Free features" = "Fonctionnalités gratuites"; - -"Premium features" = "Fonctionnalités premium"; - -"Sending & receiving messages and attachments" = "Envoyer & recevoir des messages et des pièces jointes"; - -"Create groups" = "Créer des groupes"; - -"Receive secure calls" = "Recevoir des appels sécurisés"; - -"Make secure calls" = "Émettre des appels sécurisés"; - -"NEW_LICENSE_TO_ACTIVATE" = "Nouvelle licence à activer"; - -"CURRENT_LICENSE_STATUS" = "Licence actuelle"; - -"ACTIVATE_NEW_LICENSE" = "Activer la licence"; - -"Confirm invite" = "Confirmer l'invitation"; - -"Premium features free trial" = "Période d'essai gratuite des fonctionnalités premiums"; - -"Premium features available for free" = "Fonctionnalités premiums disponibles gratuitement"; - -"Valid until %@" = "Valide jusqu'au %@"; - -"Premium features available until %@" = "Fonctionnalités prémiums disponibles jusqu'au %@"; - -"Fallback to free version" = "Retourner à la version gratuite"; - -"See subscription plans" = "Voir les offres d'abonnement"; - -"Available subscription plans" = "Offres d'abonnement"; - -"Looking for available subscription plans" = "Recherche des offres d'abonnement"; - -"Get access to premium features for free for one month. This free trial can be activated only once." = "Accéder aux fonctionnalités premium gratuitement pendant 30 jours. Cette offre d'essai ne peut être activée qu'une seule fois."; - -"Start free trial now" = "Commencer l'essai maintenant"; - -"Free Trial" = "Essai gratuit"; - -"Subscribe now" = "S'abonner maintenant"; - -"month" = "mois"; - -"Free" = "Gratuit"; - -"Sorry, it seems you are not allowed to issue the request 😢." = "Désolé, il semblerait que vous ne soyez pas autorisé à faire cette requête 😢."; - -"Ok, the payment was successfully cancelled." = "Ok, le paiement a été abandonné."; - -"Sorry, it seems you are not allowed to make the payment 😢." = "Désolé, il semblerait que vous ne soyez pas autorisé à faire le paiement 😢."; - -"Sorry, the product is not available in your store 😢." = "Désolé, le produit n'est pas disponible dans votre Store 😢."; - -"The purchase failed because you did not allowed access to cloud service information 😢." = "L'achat a échoué car vous n'avez pas donné accès à certaines informations demandées par l'App Store 😢."; - -"Sorry, the purchase failed because we could not connect to the nework 😢. Please try again later." = "Désolé, l'achat a échoué car le réseau est indisponible 😢. N'hésitez pas à essayer plus tard."; - -"Sorry, the purchase failed because you still need to acknowledge Apple's privacy policy 😢." = "Désolé, l'achat a échoué car vous devez au préalable accepter la politique de confidentialité d'Apple 😢."; - -"Sorry, the purchase failed 😢. Please try again later or contact us if this problem is recurring." = "Désolé, l'achat a échoué 😢. N'hésitez pas à essayer plus tard ou à nous contacter si le problème est récurent."; - -"Your purchase must be approved before it can go through." = "Votre achat est en attente d'approbation."; - -"Manage your subscription" = "Gérer vos abonnements"; - -"START_USING_OLVID" = "Bienvenue sur Olvid 😇"; - -"OWNED_IDENTITY_GENERATED_EXPLANATION" = "Vous venez de terminer la configuration d'Olvid !\n\nAucune donnée (nom, prénom, etc.) n'a été transmise à nos serveurs. Tout reste sur votre appareil.\n\nAvez-vous remarqué que nous ne vous avons pas demandé votre numéro de téléphone ni votre adresse email ?\n\nEt contrairement à votre messagerie précédente, Olvid ne demandera jamais l’accès à votre carnet d’adresses."; - -"Restore Purchases" = "Restaurer les achats"; - -"Manage payments" = "Modes de paiement"; - -"We found no purchase to restore." = "Nous n'avons trouvé aucun achat à restaurer."; - -"Premium features are available for free until %@" = "Les fonctionnalités premium sont disponibles gratuitement jusqu'au %@"; - -"Refresh status" = "Actualiser le statut"; - -"Looking for the new license" = "Nous recherchons la nouvelle licence"; - -"SUBSCRIPTION_REQUIRED" = "Abonnement requis"; - -"BUTTON_LABEL_CHECK_SUBSCRIPTION" = "Vérifier votre abonnement"; - -"MESSAGE_SUBSCRIPTION_REQUIRED_CALL" = "L'émission d'appels téléphoniques sécurisés avec Olvid nécessite un abonnement.\n\nVous pouvez vérifier le statut de votre abonnement et les options d'abonnement disponibles depuis la page « Mon ID »."; - -"MESSAGE_SUBSCRIPTION_REQUIRED_GENERIC" = "La fonctionnalité demandée nécessite un abonnement.\n\nVous pouvez vérifier le statut de votre abonnement et les options d'abonnement disponibles depuis la page « Mon ID »."; - -"License activation" = "Activer une licence"; - -"BILLING_GRACE_PERIOD" = "Délai de grâce"; - -"GRACE_PERIOD_ENDS_ON_%@" = "La période de grâce prendra fin le %@"; - -"GRACE_PERIOD_ENDED" = "Le délai de grâce est échu"; - -"GRACE_PERIOD_ENDED_ON_%@" = "La période de grâce a pris fin le %@"; - -"TERMS_OF_USE" = "Conditions générales d'utilisation"; - -"PRIVACY_POLICY" = "Politique de confidentialité"; - -"FREE_TRIAL_EXPIRED" = "Période d'essai expirée"; - -"FREE_TRIAL_ENDED_ON_%@" = "La période d'essai a expiré le %@"; - -"Premium subscription" = "Abonnement premium"; - -"Unlock all premium features in Olvid" = "Accès à toutes les fonctionnalités premium."; - -"Allow all api key activations" = "Permettre l'activation de toute clé d'API"; - -"The backup could not be recovered" = "La sauvegarde n'a pas pu être restaurée"; - -"The backuped data could not be decrypted." = "La sauvegarde n'a pas pu être déchiffrée."; - -"The integrity check of the backuped data failed." = "Êtes-vous certain d'avoir utilisé la bonne clé de sauvegarde ?"; - -"The backup could not be recovered (error code: %@)." = "La sauvegarde n'a pas pu être restaurée (code d'erreur : %@)."; - -"The backup file could not be read" = "Le fichier de sauvegarde n'a pas pu être lu"; - -"USE_LOAD_BALANCED_TURN_SERVERS" = "Utiliser serveurs turn distribués"; - -"WIPE_AFTER_READ_SECTION_HEADER" = "Effacer après lecture"; - -"WIPE_AFTER_PICKER_LABEL" = "Effacer après"; - -"TIMER_PICKER_LABEL" = "Minuteur"; - -"MESSAGE_EXPIRATION_SECTION_HEADER" = "Expiration du message"; - -"EXPIRE_PICKER_LABEL" = "Expiration"; - -"EXPIRATION_SETTINGS_TITLE" = "Messages éphémères"; - -"READ_ONCE" = "Première lecture"; - -"Timer" = "Minuteur"; - -"AFTER_DATE" = "Après date"; - -"AFTER_TIMER" = "Après minuteur"; - -"TEN_SECONDS" = "10 secondes"; - -"ONE_MINUTE" = "1 minute"; - -"FIVE_MINUTE" = "5 minutes"; - -"ONE_HOUR" = "1 heure"; - -"EIGHT_HOURS" = "8 heures"; - -"ONE_DAY" = "1 jour"; - -"FIFTEEN_DAYS" = "15 jours"; - -"TWO_DAYS" = "2 jours"; - -"ONE_WEEK" = "1 semaine"; - -"FOUR_WEEKS" = "4 semaines"; - -"INDEFINITELY" = "Indéfiniment"; - -"DATE" = "Date"; - -"MESSAGE_WAS_WIPED" = "Dernier message expiré 🧹"; - -"READ_ONCE_SECTION_HEADER" = "Effacement"; - -"READ_ONCE_LABEL" = "Lecture unique"; - -"TAP_TO_READ" = "Cliquez pour voir\nle contenu du message"; - -"AUTO_READ_LABEL" = "Ouverture automatique"; - -"EPHEMERAL_MESSAGE" = "Message éphémère"; - -"DEFAULT_DISCUSSION_SETTINGS" = "Paramètres par défaut pour cette discussion"; - -"Reset" = "Réinitialiser"; - -"DRAFT_EXPIRATION_EXPLANATION" = "Utilisez les paramètres ci-dessous pour modifier les durées de visibilité et d'existence de votre prochain message. Vous ne pouvez pas choisir des paramètres moins restrictifs que les paramètres par défaut de la discussion."; - -"ACTIVATE_NEW_LICENSE_CONFIRMATION_TITLE" = "Activer la licence ?"; - -"DO_YOU_WISH_TO_ACTIVATE_API_KEY" = "Toute licence précédente sera perdue. Confirmez-vous vouloir activer la nouvelle licence ?"; - -"Expired since %@" = "Expirée depuis le %@"; - -"FALLBACK_FREE_VERSION_WARNING" = "Êtes-vous certain de vouloir retourner à la version gratuite ? Tout avantage lié à votre licence actuelle sera perdu."; - -"Wiped" = "Expiré"; - -"WIPED_MESSAGE" = "Contenu expiré 🧹"; - -"WIPED_MESSAGE_BY_%@" = "Contenu supprimé par %@"; - -"EXPIRATION_SETTINGS_EXPLANATION" = "Les paramètres ci-dessous sont partagés par l'ensemble des participants à la discussion. En cas de modification, la nouvelle durée de visibilité et d'existence sera envoyée à tous les participants."; - -"READ_ONCE_SECTION_FOOTER" = "Si ce réglage est activé, les messages et leurs pièces jointes ne sont affichés qu'une seule fois. Il sont supprimés au sortir de la discussion."; - -"LIMITED_VISIBILITY_SECTION_FOOTER" = "Si ce réglage est activé, les messages et leurs pièces jointes sont affichés pour une durée limitée après avoir été lus."; - -"LIMITED_VISIBILITY_LABEL" = "Durée de visibilité"; - -"LIMITED_EXISTENCE_SECTION_FOOTER" = "Si ce réglage est activé, les messages et leurs pièces jointes sont automatiquement supprimés après une certaine durée."; - -"LIMITED_EXISTENCE_SECTION_LABEL" = "Durée d'existence"; - -"FIVE_SECONDS" = "5 secondes"; - -"THIRTY_SECONDS" = "30 secondes"; - -"TWO_MINUTES" = "2 minutes"; - -"THIRTY_MINUTES" = "30 minutes"; - -"SIX_HOUR" = "6 heures"; - -"TWELVE_HOURS" = "12 heures"; - -"SEVEN_DAYS" = "7 jours"; - -"THIRTY_DAYS" = "30 jours"; - -"NINETY_DAYS" = "90 jours"; - -"ONE_HUNDRED_AND_HEIGHTY_DAYS" = "180 jours"; - -"ONE_YEAR" = "1 an"; - -"AUTO_READ_SECTION_FOOTER" = "Ouvrir automatiquement les messages éphémères."; - -"RETAIN_WIPED_OUTBOUND_MESSAGES_LABEL" = "Conserver une trace des messages éphémères envoyés"; - -"RETAIN_WIPED_OUTBOUND_MESSAGES_SECTION_FOOTER" = "Si ce réglage est activé, les messages éphémères sortants ne sont pas supprimés à expiration, mais remplacés par un texte fixe."; - -"THREE_YEAR" = "3 ans"; - -"FIVE_YEAR" = "5 ans"; - -"Mute" = "Silencieux"; - -"MUTE_NOTIFICATIONS" = "Désactiver les notifications"; - -"UNMUTE_NOTIFICATIONS" = "Réactiver les notifications"; - -"UNMUTED_NOTIFICATIONS_FOOTER" = "Activez cette option pour ne plus recevoir de notifications de nouveau message dans cette discussion."; - -"MUTED_NOTIFICATIONS_FOOTER_UNTIL_%@" = "Notifications de nouveau message désactivées jusqu\'à %@"; - -"MUTED_NOTIFICATIONS_CONFIRMATION_%@" = "Notifications de nouveau message désactivées jusqu\'à %@.\n Souhaitez-vous les réactiver ?"; - -"MUTED_NOTIFICATIONS_FOOTER_INDEFINITELY" = "Notifications de nouveau message désactivées indéfiniment."; - -"SEND_READ_RECEIPT_SECTION_FOOTER" = "Si ce réglage est activé, vos correspondants recevront une confirmation lorsque vous aurez lu leurs messages dans le cadre de cette discussion."; - -"SEND_READ_RECEIPTS_LABEL" = "Confirmation de lecture"; - -"SHOW_RICH_LINK_PREVIEW_LABEL" = "Prévisualiser"; - -"NOTIFICATION_SOUNDS_LABEL" = "Son de notification"; - -"DISCUSSION_SHARED_SETTINGS_WERE_UPDATED" = "Les paramètres partagés de la discussion ont été mis à jour"; - -"NON_EPHEMERAL_MESSAGES_LABEL" = "Message non-éphémère"; - -"GLOBAL_EXPIRATION_SETTINGS_EXPLANATION" = "Les paramètres ci-dessous seront appliqués à toute nouvelle discussion « one-to-one » ainsi qu'à toute nouvelle discussion de groupe que vous créerez. Veuillez noter que ces paramètres de discussion seront partagés avec tous les participants."; - -"ONLY_GROUP_OWNER_CAN_MODIFY" = "Seul un administrateur du groupe peut modifier ces paramètres."; - -"UNREAD_EPHEMERAL_MESSAGE" = "Message éphémère non lu"; - -"MODIFIED_SHARED_SETTINGS_CONFIRMATION_TITLE" = "Les paramètres partagés ont été modifiés"; - -"MODIFIED_SHARED_SETTINGS_CONFIRMATION_MESSAGE" = "Vous avez modifié les paramètres partagés de cette discussion.\n\nVoulez-vous mettre à jour ces paramètres pour vous et tous les participants à la discussion, ou préférez-vous supprimer vos modifications ?"; - -"day" = "jour"; - -"week" = "semaine"; - -"year" = "année"; - -"All logs" = "Tous les logs"; - -"Unlimited" = "Illimité"; - -"RETENTION_SETTINGS_TITLE" = "Politique de rétention des messages"; - -"GLOBAL_RETENTION_SETTINGS_EXPLANATION" = "Les réglages ci-dessous vous permettent de supprimer automatiquement de vieux messages dans vos discussions. Ces paramètres par défaut peuvent être modifiés indépendamment pour chaque discussion."; - -"COUNT_BASED_LABEL" = "En nombre"; - -"COUNT_BASED_KEEP_ALL" = "Tout garder"; - -"COUNT_BASED_SECTION_FOOTER" = "Les anciens messages de vos discussions seront régulièrement supprimés afin que le nombre maximum de messages par discussion reste inférieur à la limite que vous indiquez ici."; - -"KEEP_%lld_MESSAGES" = "Conserver %lld messages"; - -"TIME_BASED_LABEL" = "En temps"; - -"TIME_BASED_SECTION_FOOTER" = "Si ce réglage est activé, les messages plus anciens que le temps spécifié seront régulièrement supprimés."; - -"LOCAL_RETENTION_SETTINGS_EXPLANATION" = "Les réglages ci-dessous vous permettent de supprimer automatiquement de vieux messages dans cette discussion."; - -"EPHEMERAL_MESSAGES" = "Messages éphémères"; - -"LOCAL_CONFIG" = "Configuration locale"; - -"SHARED_CONFIG" = "Configuration partagée"; - -"COUNT_BASED_SINGLE_DISCUSSION_SECTION_FOOTER" = "Les anciens messages de cette discussion seront régulièrement supprimés afin que leur nombre reste inférieur à la limite que vous indiquez ici."; - -"LOCAL_EPHEMERAL_SETTINGS_EXPLANATION" = "Les réglages ci-dessous vous permettent d'ajuster localement le comportement des messages éphémères. Ces paramètres ne sont pas partagés avec les autres participants."; - -"TIME_BASED_SINGLE_DISCUSSION_SECTION_FOOTER" = "Si ce réglage est activé, les messages plus anciens que le temps spécifié seront régulièrement supprimés de cette discussion."; - -"EXPECTED_DELETION_DATE" = "Date de suppression"; - -"RETENTION_INFO_LABEL" = "Informations de rétention de message"; - -"NUMBER_OF_MESSAGES_BEFORE_DELETION" = "Nombre de nouveaux messages avant suppression"; - -"WILL_SOON_BE_DELETED" = "Ce message sera prochainement supprimé"; - -"NO_MESSAGE" = "Aucun message"; - -"SETTINGS_UPDATE_TITLE" = "Mise à jour de la configuration"; - -"ACCESS_TO_ADVANCED_SETTINGS" = "Accès aux paramètres avancés"; - -"SKIP_SAS_DURING_WEBCLIENT_TESTING" = "Ne pas utiliser le SAS pendant le test du client web"; - -"USE_SCALED_TURN" = "Utilisation des serveurs turn distribués pour la VoIP"; - -"Received" = "Reçu"; - -"Remotely wiped" = "Éliminé à distance"; - -"Remotely wiped by %@" = "Éliminé à distance par %@"; - -"Perform the deletion for all users" = "Suppression chez tous les utilisateurs"; - -"REMOTE_WIPED_MESSAGE" = "Éliminé à distance"; - -"Delete all messages for all users" = "Supprimer tous les messages chez tous les utilisateurs"; - -"Delete all messages for all users?" = "Supprimer tous les messages chez tous les utilisateurs ?"; - -"Do you wish to delete all the messages on all the devices of all the users of this discussion? This action is irrevisble." = "Voulez-vous supprimer tous les messages des téléphones de tous les participants de cette discussion ? Attention, cette opération est irréversible."; - -"This discussion was remotely wiped by %@ on %@" = "Cette discussion a été effacée à distance par %@ le %@"; - -"This discussion was remotely wiped by %@" = "Cette discussion a été effacée à distance par %@"; - -"EDIT_YOUR_MESSAGE" = "Modifiez votre message"; - -"UPDATE_YOUR_ALREADY_SENT_MESSAGE" = "Mettez à jour le message déjà envoyé"; - -"Edited" = "Modifié"; - -"CREATE_MY_ID" = "Créer mon profil"; - -"TAKE_PICTURE" = "Prendre une photo"; - -"CHOOSE_PICTURE" = "Choisir une photo"; - -"REMOVE_PICTURE" = "Supprimer la photo"; - -"PROFILE_PICTURE" = "Photo de profil"; - -"ENTER_GROUP_DETAILS" = "Détails du nouveau groupe"; - -"GROUP_NAME" = "Nom du groupe"; - -"GROUP_DESCRIPTION" = "Description du groupe"; - -"PUBLISH_NEW_GROUP" = "Publier ce nouveau groupe ?"; - -"ARE_YOU_SURE_CREATE_NEW_OWNED_GROUP" = "Voulez-vous créer ce nouveau groupe maintenant ?"; - -"CREATE_MY_GROUP" = "Créer le groupe"; - -"CREATE_GROUP" = "Créer le groupe"; - -"EDIT_GROUP" = "Modifier le groupe"; - -"PUBLISH_GROUP" = "Publier les modifications"; - -"ARE_YOU_SURE_PUBLISH_EDITED_OWNED_GROUP" = "Voulez-vous publier les modifications ou les annuler ?"; - -"PUBLISH_MY_GROUP" = "Publier les modifications"; - -"INTRODUCE_%@_TO" = "Présenter %@ à..."; - -"ON_MY_DEVICE_%@" = "Sur mon %@"; - -"DELETE_CONTACT" = "Supprimer le contact"; - -"UPDATE_DETAILS" = "Utiliser les nouveaux détails"; - -"START_HERE" = "Ajoutez votre premier contact !"; - -"IDENTITY_CREATION_OPTION_TITLE" = "Options"; - -"IDENTITY_CREATION_OPTION_EXPLANATION" = "Cet écran vous permet de paramétrer des options avancées pour la création de votre identité Olvid. Vous pouvez saisir ces options manuellement, ou scanner un code QR de configuration."; - -"VALIDATE_OPTIONS" = "Valider les options"; - -"OLVID_SERVER" = "Serveur Olvid"; - -"LICENSE_ACTIVATION_CODE" = "Code d'activation de licence"; - -"UNABLE_TO_CHECK_LICENSE_STATUS" = "Impossible de vérifier le status de la licence"; - -"CHECK_SERVER_AND_LICENSE_ACTIVATION_CODE" = "Veuillez vérifier l'url du serveur ainsi que le code d'activation de licence."; - -"Server: %@" = "Serveur: %@"; - -"LEAVE_BLANK_IF_USING_THE_DEFAULT_ACTIVATION_CODE" = "Laisser vide pour utiliser le code par défaut."; - -"SERVER_URL" = "URL du serveur"; - -"PASTED_STRING_IS_NOT_VALID_OLVID_CONFIG" = "Ce que vous venez de coller ne semble pas être une URL de configuration d'Olvid 🤔."; - -"IDENTITY_SETTINGS" = "Paramètres de l'identité"; - -"PASTE_CONFIGURATION_LINK" = "Coller une configuration depuis le presse-papier"; - -"IDENTITY_PROVIDER_OPTION_EXPLANATION" = "Cet écran vous permet de configurer manuellement le fournisseur d'identités de votre entreprise. Si vous avez reçu un lien (ou un code QR) de configuration, appuyez sur « Retour » et appuyez sur le lien ou scannez le code. Le processus de démarrage n'en sera que plus simple 😇.\n\nVeuillez contacter votre administrateur pour plus de détails."; - -"IDENTITY_PROVIDER_SERVER" = "Serveur fournisseur d'identités"; - -"SERVER_CLIENT_ID" = "Client ID"; - -"SERVER_CLIENT_SECRET" = "Client Secret"; - -"IDENTITY_PROVIDER" = "Fournisseur d'identités"; - -"VALIDATE_SERVER" = "Valider le serveur"; - -"AUTHENTICATE" = "S'authentifier"; - -"IDENTITY_SERVER_VALIDATION_FAILED" = "La validation du serveur a échoué"; - -"CHECK_IDENTITY_SERVER" = "Veuillez vérifier l'url du serveur d'identités."; - -"AUTHENTICATION_FAILED" = "L'authentification a échoué"; - -"CHECK_IDENTITY_SERVER_PARAMETERS" = "Veuillez vérifier votre paramètres de connexion au fournisseur d'identités."; - -"Identity Server: %@" = "Serveur d'identité: %@"; - -"EXPLANATION_MANAGED_IDENTITY" = "Le nom ci-dessus a été obtenu via votre fournisseur d'identités et ne peut être modifié. Vous pouvez néanmoins choisir une photo de profil. Ces informations ne seront jamais envoyées aux serveurs d'Olvid."; - -"ENTER_API_KEY" = "Entrer une clé de licence"; - -"SCAN_QR_CODE_CONFIGURATION" = "Scanner un code QR de configuration"; - -"Successfully revoked previous Olvid ID" = "Votre ID précédent a été révoqué."; - -"Search" = "Rechercher"; - -"SEARCH_HERE" = "Recherchez un contact de votre entreprise 🔎"; - -"UNABLE_TO_PERFORM_KEYCLOAK_SEARCH" = "La recherche n'a pas pu s'effectuer."; - -"Confirmation" = "Confirmation"; - -"Do you wish to add %@ to your contacts?" = "Voulez-vous ajouter %@ à vos contacts ?"; - -"ADD_TO_CONTACTS" = "Ajouter aux contacts"; - -"NEW_DETAILS_EXPLANATION_%@_%@" = "%1$@ a mis à jour ses informations. Si vous voulez utiliser ces nouveaux détails à la place de ceux actuellements stockés sur votre %2$@, touchez le bouton ci-dessous."; - -"ESTABLISHING_SECURE_CHANNEL" = "Établissement d'un canal de discussion sécurisé"; - -"ESTABLISHING_SECURE_CHANNEL_EXPLANATION" = "Un canal sécurisé est actuellement en cours de création. Ce processus ne demande que quelques secondes si vous et votre contact êtes tous deux en ligne.\n\nSi vous pensez que quelque chose s'est mal passé, vous pouvez redémarrer la création de ce canal."; - -"RESTART_CHANNEL_CREATION" = "Redémarrer la création du canal sécurisé"; - -"Restart" = "Redémarrer"; - -"RECREATE_CHANNEL" = "Recréer le canal sécurisé"; - -"Do you really wish to recreate the secure channel?" = "Voulez-vous vraiment recréer le canal sécurisé ?"; - -"REALLY_DELETE_CONTACT" = "Si vous supprimez ce contact, vous ne pourrez plus échanger de message avec cette personne.\n\nSouhaitez-vous supprimer ce contact ?"; - -"TRUST_ORIGIN_TITLE_DIRECT" = "Vérification face-à-face"; - -"TRUST_ORIGIN_TITLE_INTRODUCTION_%@" = "Présenté par %@"; - -"INTRODUCED_BY_FORMER_CONTACT" = "Présenté par un ancien contact"; - -"TRUST_ORIGIN_TITLE_GROUP" = "Présenté lors d'une création de groupe"; - -"TRUST_ORIGINS" = "Origines de confiance"; - -"Chat" = "Discuter"; - -"Call" = "Appeler"; - -"CALL_BACK" = "Rappeler"; - -"CUSTOM_KEYBOARD_MANAGEMENT" = "Gestion des claviers personnalisés"; - -"ALLOW_CUSTOM_KEYBOARDS" = "Autoriser les claviers personnalisés"; - -"CUSTOM_KEYBOARD_MANAGEMENT_EXPLANATION" = "Tout changement de ce paramètre ne prendra effet qu'après un redémarrage complet d'Olvid."; - -"IDENTITY_SERVER" = "Serveur d'identités"; - -"BAD_KEYCLOAK_SERVER_RESPONSE" = "Quelque chose s'est mal passé avec le serveur d'identités 😨. Si le problème persiste, nous vous recommandons de contacter votre administrateur."; - -"Unavailable" = "Indisponible"; - -"EDIT_CONTACT_NICKNAME_EXPLANATION_%@" = "Vous pouvez choisir un surnom et une photo de profil personnalisée pour votre contact. Ils apparaîtront sur votre %@ uniquement, et ne seront partagés avec personne."; - -"Save" = "Enregistrer"; - -"Reset" = "Réinitialiser"; - -"FORM_NICKNAME" = "Surnom"; - -"EDIT_CONTACT_NICKNAME" = "Edition surnom et photo"; - -"TEXT_EXPLANATION_WARNING_IDENTITY_CREATION_KEYCLOAK_REVOCATION_NEEDED" = "Votre serveur d'identités indique qu'un ID Olvid est déjà associé avec votre compte utilisateur. Si vous continuez, cet ID Olvid sera révoqué et remplacé par votre nouvel ID.\nVeuillez contacter votre administrateur si vous désirez plus d'informations."; - -"WARNING" = "Attention"; - -"TEXT_EXPLANATION_WARNING_IDENTITY_CREATION_KEYCLOAK_REVOCATION_IMPOSSIBLE" = "Votre serveur d'identités indique qu'un ID Olvid est déjà associé avec votre compte utilisateur. Vous ne pouvez pas procéder à la création de votre identité Olvid.\nVeuillez contacter votre administrateur pour plus d'informations."; - -"DIALOG_TITLE_IDENTITY_PROVIDER_ERROR" = "Erreur du fournisseur d'identités"; - -"DIALOG_MESSAGE_FAILED_TO_UPLOAD_IDENTITY_TO_KEYCLOAK" = "Olvid n'a pas réussi à transmettre votre ID Olvid au fournisseur d'identités de votre entreprise. De nouveaux essais seront réalisés en tâche de fond."; - -"LAST_MESSAGE_WAS_REMOTELY_WIPED" = "Dernier message éliminé à distance"; - -"UNABLE_TO_ACTIVATE_LICENSE_TITLE" = "Impossible d'activer la licence"; - -"UNABLE_TO_ACTIVATE_LICENSE_EXPLANATION" = "Votre ID Olvid est actuellement gérée par le fournisseur d'identité de votre entreprise. À ce titre, vous ne pouvez pas activer de license Olvid manuellement."; - -"PLEASE_CONTACT_ADMIN_FOR_MORE_DETAILS" = "Veuillez contacter votre administrateur pour plus d'informations."; - -"EXPLANATION_KEYCLOAK_UPDATE_NEW" = "Vous êtes sur le point de configurer le fournisseur d'identités de votre société au sein d'Olvid. Une fois configuré, vous pourrez vous authentifier auprès de ce serveur et Olvid vous permettra d'ajouter automatiquement d'autres employés à vos contacts."; - -"LABEL_BIND_KEYCLOAK" = "Utiliser un serveur d'identités"; - -"BUTTON_LABEL_MANAGE_KEYCLOAK" = "Passer à un ID géré"; - -"EXPLANATION_KEYCLOAK_BIND" = "Le nom ci-dessus à été récupéré depuis le fournisseur d'identités de votre société.\nUne fois votre ID Olvid géré par ce fournisseur, c'est comme cela que vos contacts vous verront dans Olvid."; - -"EXPLANATION_KEYCLOAK_UPDATE_BAD_SERVER" = "Olvid ne peut pas configurer le fournisseur d'identité de votre société avec votre ID Olvid actuel. Votre ID a été généré sur un serveur Olvid différent."; - -"REMOVE_IDENTITY_PROVIDER" = "Supprimer le fournisseur d'identités"; - -"DIALOG_MESSAGE_UNBIND_FROM_KEYCLOAK" = "Votre ID Olvid est actuellement géré par le fournisseur d'identités de votre société. Vous êtes sur le point de passer à un ID Olvid normal, non-géré.\n\nSi vous continuez, vous ne pourrez plus ajouter automatiquement d'autres employés à vos contacts. Veuillez contacter votre administrateur pour plus de détails.\n\nSouhaitez-vous continuer ?"; - -"GLOBAL_LOCAL_EPHEMERAL_SETTINGS_EXPLANATION" = "Les réglages ci-dessous vous permettent d'ajuster localement le comportement par défaut des messages éphémères. Ces paramètres ne sont pas partagés avec les autres participants aux discussions."; - -"GLOBAL_LOCAL_EPHEMERAL_SETTINGS_EXPLANATION" = "Les réglages ci-dessous vous permettent d'ajuster localement le comportement par défaut des messages éphémères. Ces paramètres ne sont pas partagés avec les autres participants aux discussions."; - -"SERVER_DOES_NOT_SUPPORT_CALLS" = "Le serveur ne permet pas de passer des appels"; - -"STD_MSG_OLVID_TAKES_TOO_LONG_TO_START" = "Olvid semble prendre plus de temps que d'habitude pour démarrer. Cela peut arriver après une mise à jour. Rassurez-vous, même si le problème persiste, aucune de vos données n'a été perdue."; - -"SHARE_MSG_OLVID_TAKES_TOO_LONG_TO_START" = "Si le problème persiste, vous pouvez aider l'équipe de développement à résoudre votre problème via la bouton ci-dessous. Vous partagerez (uniquement) le message encadré ci-dessous avec elle."; - -"ADDING_KEYCLOAK_CONTACT_FAILED" = "L'ajout de contact a échoué"; - -"PLEASE_TRY_AGAIN_LATER" = "Veuillez essayer à nouveau plus tard"; - -"AUTHENTICATION_FAILED" = "L'authentification a échoué"; - -"PLEASE_TRY_AGAIN" = "Essayez à nouveau"; - -"COULD_NOT_SWITCH_TO_MANAGED_ID" = "Il n'a pas été possible de passer à un ID géré"; - -"UNABLE_TO_ACTIVATE_LICENSE_EXPLANATION_ALT" = "Le serveur de distribution de message spécifié dans votre ID Olvid est incompatible avec le serveur indiqué dans la licence."; - -"CONTACTS_SORT_ORDER" = "Ordre de tri des contacts"; - -"FIRST_NAME_LAST_NAME" = "Prénom Nom"; - -"LAST_NAME_FIRST_NAME" = "Nom Prénom"; - -"MAX_AVG_BITRATE" = "Débit moyen maximum"; - -"ICLOUD_ACCOUNT_TEMPORARILY_UNAVAILABLE" = "Compte iCloud indisponible pour le moment"; - -"ICLOUD_ACCOUNT_TRY_AGAIN_LATER" = "Veuillez essayer à nouveau plus tard"; - -"DISMISS" = "Quitter"; - -"INVALID_QR_CODE" = "Ce code QR n'est pas valide"; - -"IMPOSSIBLE_TO_ADD_%@_WITH_THIS_QR_CODE" = "Ce code QR ne peut pas être utilisé pour ajouter %1$@ à vos contacts. Veuillez essayer à nouveau, en vous assurant que %1$@ scanne votre code QR avant que vous ne scanniez le sien."; - -"SEND_INVITE_TO_%@_TO_ADD_THEM_TO_YOUR_CONTACTS_FROM_A_DISTANCE" = "Envoyez une invitation à %@ pour l'ajouter à vos contacts à distance."; - -"OPTION_%@_FROM_A_DISTANCE" = "Option %@ : Inviter à distance"; - -"OPTION_%@_LOCALLY" = "Option %@ : Inviter localement"; - -"INVITE_%@_LOCALLY" = "Si %@ est à côté de vous, faites lui scanner ce code QR pour l'ajouter à vos contacts immédiatement."; - -"MISSING_CHANNEL_FOR_CALL_TITLE_%@" = "%@ ne peut pas encore être appelé"; - -"MISSING_CHANNEL_FOR_CALL_MESSAGE_%@" = "Vous pourrez appeler %@ dès que le canal sécurisé sera établi. Veuillez essayer à nouveau plus tard."; - -"REPLYING_TO_%@" = "Réponse à %@"; - -"REPLYING_TO_CONTACT" = "Réponse à un contact"; - -"REPLYING_TO_YOURSELF" = "Réponse à vous-même"; - -"REPLYING" = "Réponse"; - -"REPLYING_TO_YOU" = "Réponse à vous"; - -"Loading" = "Chargement"; - -"USE_OLD_DISCUSSION_INTERFACE" = "Utiliser l'ancien style de discussions"; - -"TAP_TO_CANCEL" = "Appuyez pour annuler"; - -"PLEASE_UPDATE_OLVID_FROM_MAIN_APP" = "Veuillez lancer l'app Olvid afin de terminer la mise à jour 🚀. Vous pourrez à nouveau partager du contenu une fois que ce sera fait 😉."; - -"PLEASE_LAUNCH_OLVID_FROM_MAIN_APP" = "Il vous faut lancer l'app Olvid avant de pouvoir partager du contenu 😉."; - -"SCAN_DOCUMENT" = "Scanner un document"; - -"EPHEMERAL_MESSAGE" = "Message éphémère"; - -"SHOOT_PHOTO_OR_MOVIE" = "Appareil photo"; - -"CHOOSE_IMAGE_FROM_LIBRARY" = "Librairie de photos & vidéos"; - -"CHOOSE_FILE" = "Choisir un fichier"; - -"INTRODUCE_CONTACT_%@_TO" = "Présenter %@ à..."; - -"DIALOG_MISSING_MESSAGES_TITLE" = "Messages manquants"; - -"DIALOG_MISSING_MESSAGES_MESSAGE" = "Cet indicateur de message manquant vous prévient qu'un trou a été détecté dans la séquence de numérotation des messages reçus de votre contact.\n\nCeci est soit dû à l'annulation d'envoi d'un message (vous ne recevrez jamais ce message), soit à l'envoi d'un message plus gros (en général, avec des pièces jointes) qui n'a pas encore été entièrement déposé sur le serveur (vous devriez le recevoir prochainement)."; - -"SHOW_BACKUP_SCREEN" = "Paramètres de sauvegarde"; - -"SHOW_SETTINGS_SCREEN" = "Tous les paramètres"; - -"TOGGLE_EDIT_PINNED_STATE" = "Modifier les discussions épinglées"; - -"CONTACT_SORT_ORDER" = "Ordre de tri des contacts..."; - -"Later" = "Plus tard"; -"Now" = "Maintenant"; -"REMIND_ME_LATER" = "Me rappeler plus tard"; - -"SNACK_BAR_BODY_CREATE_BACKUP_KEY" = "Il est temps de configurer les sauvegardes !"; -"SNACK_BAR_BUTTON_TITLE_CREATE_BACKUP_KEY" = "Info"; -"SNACK_BAR_DETAILS_TITLE_CREATE_BACKUP_KEY" = "Pourquoi configurer les sauvegardes 🧐 ?"; -"SNACK_BAR_DETAILS_BODY_CREATE_BACKUP_KEY_%@" = "Si vous veniez à égarer votre %@, ou à désinstaller Olvid par erreur, vous perdriez votre ID Olvid, l'intégralité de vos contacts et tous vos groupes 😱. Fort heureusement, il est possible de les sauvegarder de façon sécurisée 😅. Appuyez sur « Paramétrer les sauvegardes » pour commencer."; -"CONFIGURE_BACKUPS_BUTTON_TITLE" = "Paramétrer les sauvegardes"; - -"SNACK_BAR_BODY_SHOULD_PERFORM_BACKUP" = "Il est temps de faire une sauvegarde !"; -"SNACK_BAR_BUTTON_TITLE_SHOULD_PERFORM_BACKUP" = "Info"; -"SNACK_BAR_DETAILS_TITLE_SHOULD_PERFORM_BACKUP" = "Pourquoi faire une sauvegarde 🧐 ?"; -"SNACK_BAR_DETAILS_BODY_SHOULD_PERFORM_BACKUP_%@" = "Pour ne perdre aucun contact, nous vous recommandons d'activer les sauvegardes automatiques vers iCloud. Rassurez-vous, elles sont chiffrées 🤓 ! Sinon, vous pouvez aussi effectuer des sauvegardes manuelles régulièrement. Appuyez sur « Paramétrer les sauvegardes » pour commencer."; - -"SNACK_BAR_BODY_SHOULD_VERIFY_BACKUP_KEY" = "Vous souvenez-vous de votre clé de sauvegarde ?"; -"SNACK_BAR_BUTTON_TITLE_SHOULD_VERIFY_BACKUP_KEY" = "Info"; -"SNACK_BAR_DETAILS_TITLE_SHOULD_VERIFY_BACKUP_KEY" = "Pourquoi vérifier sa clé de sauvegarde 🧐 ?"; -"SNACK_BAR_DETAILS_BODY_SHOULD_VERIFY_BACKUP_KEY_%@" = "Avoir une sauvegarde à jour est essentiel, mais il vous faut votre clé de sauvegarde pour la restaurer ! Appuyez sur « Paramétrer les sauvegardes » pour vérifier votre clé. Si vous avez perdu cette clé, pas d'inquiétude, vous pourrez en générer une nouvelle 🤗."; - -"You" = "Vous"; - -"Touch to return to call" = "Touchez pour revenir à l'appel"; - -"ERROR" = "Erreur"; - -"SNACK_BAR_BODY_GRANT_PERMISSION_TO_RECORD" = "Vous avez raté un appel !"; -"SNACK_BAR_BODY_GRANT_PERMISSION_TO_RECORD_IN_SETTINGS" = "Vous avez raté un appel !"; -"SNACK_BAR_BUTTON_TITLE_GRANT_PERMISSION_TO_RECORD" = "Info"; -"SNACK_BAR_BUTTON_TITLE_GRANT_PERMISSION_TO_RECORD_IN_SETTINGS" = "Info"; -"SNACK_BAR_DETAILS_TITLE_GRANT_PERMISSION_TO_RECORD" = "Vous avez raté un appel car Olvid n'a pas accès au micro"; -"SNACK_BAR_DETAILS_TITLE_GRANT_PERMISSION_TO_RECORD_IN_SETTINGS" = "Vous avez raté un appel car Olvid n'a pas accès au micro"; -"SNACK_BAR_DETAILS_BODY_GRANT_PERMISSION_TO_RECORD" = "Pour recevoir des appels, vous devez autoriser Olvid à accéder au micro."; -"SNACK_BAR_DETAILS_BODY_GRANT_PERMISSION_TO_RECORD_IN_SETTINGS" = "Pour recevoir des appels, vous devez autoriser Olvid à accéder au micro. Pour ne plus rater d'appel, allez dans les Réglages et autorisez l'accès au micro pour Olvid."; -"GRANT_PERMISSION_TO_RECORD_BUTTON_TITLE" = "Autoriser l'accès au micro"; -"GRANT_PERMISSION_TO_RECORD_IN_SETTINGS_BUTTON_TITLE" = "Aller dans les Réglages"; - -"SNACK_BAR_BODY_LAST_UPLOAD_BACKUP_HAS_FAILED" = "La dernière sauvegarde a échoué"; -"SNACK_BAR_TITLE_LAST_UPLOAD_BACKUP_HAS_FAILED" = "Info"; -"SNACK_BAR_DETAILS_TITLE_LAST_UPLOAD_BACKUP_HAS_FAILED" = "Que puis-je faire ?"; -"SNACK_BAR_DETAILS_BODY_LAST_UPLOAD_BACKUP_HAS_FAILED" = "Nous vous recommandons de vérifier que vous avez bien configurer votre compte iCloud sur cet appareil. Ensuite, vous pourrez essayer à nouveau."; - -"DIALOG_TITLE_KEYCLOAK_IDENTITY_WAS_REVOKED" = "Fournisseur d'identités supprimé"; -"DIALOG_MESSAGE_KEYCLOAK_IDENTITY_WAS_REVOKED" = "Il semble que votre compte a été supprimé du fournisseur d'identités de votre société. Si vous avez quitté votre entreprise, ceci est normal et vous pouvez continuer à utiliser Olvid en tant qu'utilisateur gratuit.\n\nSi vous pensez que c'est une erreur, veuillez contacter votre administrateur pour enregistrer à nouveau ce fournisseur d'identités dans Olvid."; - -"AUTHENTICATION_REQUIRED" = "Authentification Requise"; - -"AUTHENTICATION_REQUIRED_TOKEN_EXPIRED_MESSAGE" = "Votre identité Olvid est gérée par le fournisseur d'identité de votre entreprise. Il faut vous ré-authentifier auprès de ce fournisseur d'identité pour continuer."; - -"USER_CHANGE_DETECTED" = "Changement d'utilisateur détecté"; - -"AUTHENTICATION_REQUIRED_USER_ID_CHANGED_MESSAGE" = "Votre ID Olvid est gérée par le fournisseur d'identités de votre entreprise. Il semblerait que vous vous soyiez authentifié avec un compte différent du compte habituel. Ceci n'est pas supporté.\n\nContactez votre adminisrateur ou ré-authentifié vous avec le compte habituel."; - -"KEYCLOAK_REVOCATION" = "Révoquer l'ID Olvid précédent"; - -"KEYCLOAK_REVOCATION_BUTTON" = "Révoquer ID précédent"; - -"KEYCLOAK_REVOCATION_MESSAGE" = "Un autre ID Olvid est associé avec le compte géré avec le fournisseur d'identités de votre entreprise. Si vous avez générez un nouvel ID Olvid, il vous faut révoquer le précédent."; - -"KEYCLOAK_REVOCATION_SUCCESSFUL" = "L'ID Olvid précédent a été révoqué"; - -"KEYCLOAK_REVOCATION_FAILURE" = "L'ID Olvid précédent n'a pas pu être révoqué"; - -"ADD_CONTACT_BUTTON" = "Ajouter un contact"; - -"ADD_CONTACT_TITLE" = "Ajouter un contact"; - -"DIALOG_TITLE_KEYCLOAK_SIGNATURE_KEY_CHANGED" = "Changement de clé du fournisseur d'identités"; - -"DIALOG_MESSAGE_KEYCLOAK_SIGNATURE_KEY_CHANGED" = "Olvid a détecté une modification de la clé de signature cryptographique de votre fournisseur d'identités. Cela ne devrait normalement jamais arriver.\n\nVeuillez contacter votre administrateur et n'appuyer sur « Mettre la clé à jour » que si elle peut confirmer que cette modification est intentionnelle. En cas de doute, appuyez sur « Annuler »."; - -"BUTTON_LABEL_UPDATE_KEY" = "Mettre la clé à jour"; - -"USER_CANNOT_MAKE_PAYMENT_TITLE" = "Il semblerait que vous ne puissiez pas faire de paiement 😢"; -"USER_CANNOT_MAKE_PAYMENT_DESCRIPTION" = "Les options payantes d'Olvid sont disponibles via les achats intégrés de l'App Store. Il semblerait que vous ne puissiez pas y faire d'achat. Ceci peut arriver si votre moyen de paiement est invalide ou si votre compte est restreint (contrôle parental ou compte entreprise)."; - -"Directory" = "Annuaire"; - - -"DELETION_IN_PROGRESS" = "Suppression en cours"; -"DELETION_TERMINATED" = "Suppression terminée"; - -"DRAG_AND_DROP_TO_CONFIGURE_PREFERRED_EMOJIS_LIST" = "Déposez ici vos réactions préférés !"; - -"CONTACT_IS_NOT_ACTIVE_EXPLANATION_TITLE" = "Contact revoqué par le fournisseur d'identités de votre société"; - -"CONTACT_IS_NOT_ACTIVE_EXPLANATION_BODY" = "Ce contact a été révoqué par le fournisseur d'identités de votre société. Son ID Olvid a peut-être été compromis et la sécurité de vos communications ne peut être garantie.\n\nSi vous êtes certain que l'ID Olvid de votre contact n'a jamais été compromis, vous pouvez le débloquer manuellement.\nVeuillez contacter votre administrateur pour plus d'informations."; - -"UNBLOCK_CONTACT" = "Débloquer le contact"; - -"UNBLOCK_CONTACT_CONFIRMATION" = "Voulez-vous débloquer le contact ?"; - -"EXPLANATION_CONTACT_REVOKED_AND_UNBLOCKED" = "Ce contact a été révoqué par le fournisseur d'identités de votre société. Leur ID Olvid a peut-être été compromis et la sécurité de vos communications ne peut être garantie.\n\nVous avez précédemment décidé de le débloquer manuellement. Si vous n'êtes pas certain de votre décision, il est recommandé de re-bloquer ce contact.\nVeuillez contacter votre administrateur pour plus d'informations."; - -"REBLOCK_CONTACT_CONFIRMATION" = "Voulez-vous re-bloquer le contact ?"; - -"REBLOCK_CONTACT" = "Re-bloquer le contact"; - -"DIALOG_TITLE_OUTDATED_VERSION" = "Mise à jour requise"; -"DIALOG_MESSAGE_OUTDATED_VERSION" = "Votre version d'Olvid est dépassée et doit être mise à jour.\n\nVous passez probablement à côté de nombreuses nouvelles fonctionnalités et nous ne pouvons pas vous garantir la compatibilité de votre version avec les versions plus récentes utilisées par vos contacts."; -"BUTTON_LABEL_UPDATE" = "Mettre à jour"; -"BUTTON_LABEL_REMIND_ME_LATER" = "Me rappeler plus tard"; - -"DIALOG_OWNED_IDENTITY_WAS_REVOKED_BY_KEYCLOAK_TITLE" = "Votre ID Olvid a été révoquée"; -"DIALOG_OWNED_IDENTITY_WAS_REVOKED_BY_KEYCLOAK_MESSAGE" = "Le fournisseur d'identités de votre entreprise a révoqué votre ID Olvid. Nous vous recommandons de contacter votre administrateur."; - -"CONTACT_REVOKED_BY_COMPANY_IDENTITY_PROVIDER" = "Contact revoqué par le fournisseur d'identités de votre société"; - -"Active" = "Active"; - -"CERTIFIED_BY_IDENTITY_PROVIDER" = "Certifiée par un fournisseur d'identité"; - -"DEVICE %lld" = "Dispositif %lld"; - -"TECHNICAL_DETAILS" = "Détails techniques"; - -"DETAILS_SIGNED_BY_IDENTITY_PROVIDER" = "Détails signés par le fournisseur d'identités"; - -"SIGNED_DETAILS_DATE" = "Date de la signature"; - -"KEYCLOAK_ID" = "Keycloak ID"; - -"SHOW_CONTACT_DETAILS" = "Voir tous les détails du contact"; - -"VALUE_COPIED" = "Valeur copiée"; - -"DEFAULT_EMOJI" = "Emoji rapide par défaut"; - -"SCAN_QR_CODE" = "Scanner un code QR"; - -"CONFIGURATION_SCAN" = "Scan de configuration"; - -"IDENTITY_PROVIDER_CONFIGURED_SUCCESS" = "Le fournisseur d'identités de votre société a été configuré avec succès. Appuyez sur « S'authentifier » pour vous y connecter et récupérer vos informations personnelles."; - -"IDENTITY_PROVIDER_CONFIGURED_FAILURE" = "Le fournisseur d'identités de votre société ne semble pas disponible. Veuillez contacter votre administrateur."; - -"MANUAL_CONFIGURATION" = "Configuration manuelle"; - -"WILL_INVITE_%@_AFTER_ONBOARDING" = "Vous pourrez inviter %@ juste après la création de votre ID Olvid ✌️."; - -"WILL_PROCESS_API_KEY_AFTER_ONBOARDING" = "La clé d'API sera prise en compte juste après la création de votre ID Olvid ✌️."; - -"CLIENT_ID" = "Client Id"; - -"CLIENT_SECRET" = "Secret client"; - -"IDENTITY_PROVIDER_CONFIGURATION" = "Configuration du fournisseur d'identités"; - -"CURRENT_DEVICE" = "Cet appareil"; - -"OTHER_DEVICE" = "Autre appareil"; - -"NEW_COMPOSE_MESSAGE_VIEW_PREFERENCES" = "Personnaliser la composition de message"; - -"NEW_COMPOSE_MESSAGE_VIEW_ACTION_ORDER_HEADER" = "Ordre préféré des boutons de composition de message"; - -"NEW_COMPOSE_MESSAGE_VIEW_ACTION_ORDER_FOOTER" = "Le premier bouton apparaîtra juste à côté la zone de composition du message de vos messages. Nous vous recommandons de placer les boutons que vous utilisez le plus au sommet de la liste, de façon à les atteindre en une touche."; - -"COMPOSE_MESSAGE_SETTINGS" = "Personnaliser"; - -"OPEN_SOURCE_LICENCES" = "Licences Open Source"; - -"HOW_TO_ADD_REACTION_TO_A_MESSAGE" = "Vous pouvez appuyer deux fois sur un message pour ajouter une reaction."; - -"RESET_COMPOSE_MESSAGE_VIEW_ACTIONS_ORDER" = "Réinitialiser l'ordre des boutons"; - -"UNAVAILABLE_MESSAGE" = "Message non disponible"; - -"RESET_DISCUSSION_EMOJI_TO_DEFAULT" = "Réinitialiser"; - -"RESET_DISCUSSION_EMOJI_TO_DEFAULT_DISCUSSION_LEVEL" = "Réinitialiser"; - -"DEFAULT_EMOJI_AT_APP_LEVEL" = "Emoji rapide"; - -"QUICK_EMOJI_EXPLANATION" = "L'emoji rapide est accessible quand la zone de composition de message ne contient pas de texte. Appuyer sur cet emoji l'envoie immédiatement. Appuyer deux (ou trois) fois en envoie deux (ou trois). Vous pouvez personnaliser ici l'emoji rapide par défaut pour toutes les discussions. Ce choix peut-être outrepassé au niveau de chaque discussion, en personnalisant l'emoji rapide de la discussion."; - -"DISCUSSION_QUICK_EMOJI" = "Emoji rapide pour cette discussion"; - -"SNACK_BAR_BODY_IOS_VERSION_WILL_BE_UNSUPPORTED" = "⚠️ Le support pour votre version d'iOS sera bientôt abandonné."; -"SNACK_BAR_BODY_IOS_VERSION_SHOULD_UPGRADE" = "Mise à jour d'iOS recommandée."; -"SNACK_BAR_BODY_IOS_VERSION_ACCEPTABLE" = "Mise à jour d'iOS recommandée."; - -"SNACK_BAR_TITLE_IOS_VERSION_WILL_BE_UNSUPPORTED" = "Info"; -"SNACK_BAR_TITLE_IOS_VERSION_SHOULD_UPGRADE" = "Info"; -"SNACK_BAR_TITLE_IOS_VERSION_ACCEPTABLE" = "Info"; - -"SNACK_BAR_DETAILS_TITLE_IOS_VERSION_WILL_BE_UNSUPPORTED" = "Le support pour votre version d'iOS sera bientôt abandonné."; -"SNACK_BAR_DETAILS_TITLE_IOS_VERSION_SHOULD_UPGRADE" = "Mise à jour d'iOS recommandée"; -"SNACK_BAR_DETAILS_TITLE_IOS_VERSION_ACCEPTABLE" = "Mise à jour d'iOS recommandée"; - -"SNACK_BAR_DETAILS_BODY_IOS_VERSION_WILL_BE_UNSUPPORTED" = "Nous avons détecté que vous utilisez une version d'iOS que Olvid ne supportera plus, à partir de la prochaine mise à jour. Nous vous présentons toutes nos excuses. Si possible, nous vous recommandons de mettre à jour iOS.\nPour ce faire, accédez à l'App Réglages sur votre appareil. Allez dans Général puis touchez Mise à jour logicielle."; -"SNACK_BAR_DETAILS_BODY_IOS_VERSION_SHOULD_UPGRADE" = "Nous avons détecté que vous n'utilisez pas la dernière version d'iOS. Vous être en train de passer à côté de fonctionnalités importantes d'Olvid. Pour profiter d'Olvid au maximum, vous devriez mettre à jour iOS.\nPour ce faire, accédez à l'App Réglages sur votre appareil. Allez dans Général puis touchez Mise à jour logicielle."; -"SNACK_BAR_DETAILS_BODY_IOS_VERSION_ACCEPTABLE" = "Pour vous assurez que vous utilisez la dernière version d'iOS, accédez à l'App Réglages sur votre appareil. Allez dans Général puis touchez Mise à jour logicielle."; - -"MESSAGE_REACTION_NOTIFICATION_%@_%@" = "A réagi %@ à : %@"; -"MESSAGE_REACTION_NOTIFICATION_%@" = "A réagi %@ à votre message"; - -"NEW_REACTION" = "Nouvelle réaction"; -"TAP_TO_SEE_THE_REACTION" = "Appuyez pour voir la réaction."; - -/* Notification title */ -"NEW_REACTION_FROM_%@" = "Nouvelle réaction de %@"; - -"CAPABILITIES" = "Capacités"; - -"CAPABILITY_WEBRTC_CONTINUOUS_ICE" = "VoIP v2"; - -"DELETE_OWN_REACTION" = "Supprimer ma réaction"; - -"VALIDATING_ENTERPRISE_CONFIGURATION" = "Configuration automatique en cours..."; - -"CONTACTS_AND_GROUPS" = "Contacts & Groupes"; - -"Everyone" = "Tout le monde"; - -"No one" = "Personne"; - -"AUTO_ACCEPT_GROUP_INVITES_FROM" = "Accepter automatiquement les invitations de groupe de…"; - -"AUTO_ACCEPT_GROUP_INVITATIONS_ALERT_TITLE" = "Avant d'aller plus loin…"; - -"CAPABILITY_ONE_TO_ONE_CONTACTS" = "Contacts One2One"; - -"CAPABILITY_GROUPS_V2" = "Groupes v2"; - -"INVITE_%@_IF_YOU_WANT_ONE_TO_ONE_DISCUSSION" = "Pour discuter en privé avec %@ et l'ajouter à vos contacts, touchez « Inviter »."; - -"ONE_TO_ONE_DISCUSSION_INVITATION_SENT_TO_%@" = "Vous avez envoyé une invitation à discuter en privé à %@, qui doit encore l'accepter 🤞."; - -"ONE_TO_ONE_INVITATION_SENT" = "Invitation envoyée"; - -"ONE_TO_ONE_INVITATION_RECEIVED" = "Invitation à discuter en privé"; - -"ONE_TO_ONE_DISCUSSION_INVITATION_RECEIVED_FROM_%@" = "Pour accepter de discuter en privé avec %@ et l'ajouter à vos contacts, touchez « Accepter »."; - -"STOP_ONE_TO_ONE_DISCUSSION_WITH_CONTACT_ALERT_TITLE" = "Retirer des contacts ?"; - -"DO_YOU_WISH_TO_STOP_ONE_TO_ONE_DISCUSSION_WITH_@_ALERT_MESSAGE" = "En retirant %1$@ de vos contacts, vous mettez fin à la discussion privée avec cet utilisateur (autrement dit, vous ne pourrez plus échanger de messages dans votre discussion privée avec %1$@). Cela ne vous empêchera pas d'échanger des messages dans vos groupes communs."; - -"DO_STOP_ONE_TO_ONE_DISCUSSION" = "Retirer des contacts"; - -"DOWNGRADE_CONTACT_TO_NON_ONE_TO_ONE_BUTTON_TITLE" = "Retirer des contacts"; - -"DELETE_OLVID_USER" = "Supprimer cet utilisateur"; - -"OTHER_KNOWN_USERS" = "Autres utilisateurs"; - -"EXPLANATION_PLACED_ABOVE_LIST_OF_NON_ONE_TO_ONE_CONTACTS" = "Les utilisateurs ci-dessous ne font pas (encore) partie de vos contacts, et vous ne pouvez donc pas encore avoir de discussion privée avec eux. Mais vous pouvez les y inviter facilement 🚀 !"; - -"%@_INVITES_YOU_TO_ONE_TO_ONE_DISCUSSION" = "%@ vous invite à discuter en privé. Si vous acceptez, cet utilisateur sera ajouté à vos contacts."; - -"DELETE_USER_ACTION_TITLE" = "Supprimer cet utilisateur maintenant"; - -"INVITE_REQUIRED_ALERT_TITLE" = "Invitation requise"; - -"YOU_NEED_TO_INVITE_%@_BEFORE_HAVING_DISCUSSION_ALERT_MESSAGE" = "Vous ne pouvez pas discuter en privé avec %@ tant que cet utilisateur ne fait pas partie de vos contacts. Vous pouvez l'y inviter maintenant."; - -"SNACK_BAR_BODY_NEW_APP_VERSION_AVAILABLE" = "Une nouvelle version d'Olvid est disponible 🥳 !"; - -"SNACK_BAR_BUTTON_TITLE_NEW_APP_VERSION_AVAILABLE" = "Info"; - -"SNACK_BAR_DETAILS_TITLE_NEW_APP_VERSION_AVAILABLE" = "Une nouvelle version d'Olvid est disponible 🥳 !"; - -"SNACK_BAR_DETAILS_BODY_NEW_APP_VERSION_AVAILABLE" = "Une nouvelle version d'Olvid est disponible dès maintenant sur l'App Store. Pour ne pas rater les dernières nouveautés d'Olvid 🤓, nous vous recommandons de mettre à jour maintenant 🚀."; - -"GO_TO_APP_STORE_BUTTON_TITLE" = "Ouvrir l'App Store"; - -"INSTALLED_APP_IS_OUTDATED_ALERT_TITLE" = "Votre version d'Olvid est obsolète 😱 !"; - -"INSTALLED_APP_IS_OUTDATED_ALERT_BODY" = "Mais ne vous inquiétez pas 😊. Vous pouvez mettre à jour Olvid dès maintenant et ainsi découvrir les dernières nouveautés 🤓. Nous vous recommandons de mettre à jour maintenant 🚀."; - -"UPGRADE_NOW" = "Mettre à jour maintenant"; - -"MINIMUM_SUPPORTED_VERSION" = "Version minimum prise en charge"; - -"MINIMUM_RECOMMENDED_VERSION" = "Version minimum recommandée"; - -"UPGRADE_OLVID_NOW" = "Mettre à jour Olvid maintenant"; - -"SYNC" = "Sync"; - -"SYNC_REQUEST_SENT" = "Synchronisation envoyée"; - -"Choose" = "Choisir"; - -"SEND_MESSAGE" = "Envoyer un message"; - -"FAILED" = "Échec"; - -"CALL_INITIALISATION_NOT_SUPPORTED" = "Appels non supportés"; - -"CALL_FAILED" = "L'appel a échoué 😟"; - -"Choose" = "Choisir"; - -"YOUR_MESSAGE" = "Votre message..."; - -"HOW_TO_ADD_MESSAGE_REACTION" = "Tapez deux fois sur le message pour ajouter votre réaction."; - -"HOW_TO_ADD_REACTION_TO_PREFFERED" = "Ajoutez une étoile à une réaction pour l'ajouter à vos réactions préférées."; - -"HOW_TO_REMOVE_OWN_REACTION" = "Tapez pour supprimer votre réaction."; - -"Gallery" = "Galerie"; - -"Select" = "Choisir"; - -"DELETE_ITEMS" = "Supprimer les éléments"; - -"SHOW_IN_DISCUSSION" = "Afficher dans la discussion"; - -"NOT_PART_OF_THE_GROUP_ANYMORE" = "Vous ne faites plus partie de ce groupe, parce que vous l'avez quitté, parce qu'un administrateur vous a retiré du groupe, ou tout simplement parce que le groupe a été supprimé 🥲."; - -"REJOINED_GROUP" = "Vous faites à nouveau partie du groupe ✌️"; - -"CONTACT_%@_IS_ONE_TO_ONE_AGAIN" = "%@ fait à nouveau partie de vos contacts, vous pouvez reprendre la discussion là où vous l'aviez laissée 🤗."; - -"Medias" = "Médias"; - -"UNKNOWN_USER" = "Utilisateur inconnu"; - -"CREATE_GROUP_WITH_OWN_PERMISSION_ADMIN" = "Créer un groupe"; - -"CREATE_FIRST_GROUP_WITH_OWN_PERMISSION_ADMIN" = "Créez votre premier groupe"; - -"GROUPS_THAT_YOU_ADMINISTER" = "Groupes que vous administrez"; - -"NO_SOUNDS" = "Aucun"; - -"Forward" = "Transférer"; - -"Forwarded" = "Transféré"; - -"NO_SOUNDS" = "Aucun"; - -"ATTACHMENTS_INFO" = "Pièces jointes"; - -"NOTIFICATION_SOUNDS_TITLE_POLYPHONIC" = "Sons polyphoniques"; - -"NOTIFICATION_SOUNDS_TITLE_NEUTRAL" = "Sons neutres"; - -"NOTIFICATION_SOUNDS_NEUTRAL_CATEGORY_TITLE" = "Neutre"; -"NOTIFICATION_SOUNDS_ALARM_CATEGORY_TITLE" = "Alarmes"; -"NOTIFICATION_SOUNDS_ANIMAL_CATEGORY_TITLE" = "Animaux"; -"NOTIFICATION_SOUNDS_TOY_CATEGORY_TITLE" = "Jouets"; - -"BUSY" = "Occupé"; -"CHIME" = "Carillon"; -"BRING_THE_DRAMA" = "Feu aux poudres"; -"FRENZY" = "Frénésie"; -"HORN_BOAT" = "Corne de brume"; -"HORN_BUS" = "Klaxon de bus"; -"HORN_CAR" = "Klaxon automobile"; -"HORN_DIXIE" = "Klaxon 1916"; -"HORN_TAXI" = "Klaxon de taxi"; -"HORN_TRAIN_1" = "Train 1"; -"HORN_TRAIN_2" = "Train 2"; -"PARANOID" = "Paranoïaque"; -"WEIRD" = "Bizarre"; - -"BIRD_CARDINAL" = "Cardinal"; -"BIRD_COQUI" = "Francolin coqui"; -"BIRD_CROW" = "Corbeau"; -"BIRD_CUCKOO" = "Coucou"; -"BIRD_DUCK_QUACK" = "Canard"; -"BIRD_DUCK_QUACKS" = "Coin-coin"; -"BIRD_EAGLE" = "Aigle"; -"BIRD_IN_FOREST" = "Oiseau dans la forêt"; -"BIRD_MAGPIE" = "Pie"; -"BIRD_OWL_HORNED" = "Hibou à cornes"; -"BIRD_OWL_TAWNY" = "Chouette hulotte"; -"BIRD_TWEET" = "Cui-cui"; -"BIRD_WARNING" = "Buse"; -"CHICKEN_ROOSTER" = "Coq 1"; -"CHICKEN_ROSTER" = "Coq 2"; -"CHICKEN" = "Poulet"; -"CICADA" = "Cigale"; -"COW_MOO" = "Vache"; -"ELEPHANT" = "Éléphant"; -"PANTHERA" = "Panthère"; -"TIGER" = "Tigre"; -"FROG" = "Grenouille"; -"GOAT" = "Chèvre"; -"HORSE_WHINNIES" = "Cheval"; -"PUPPY" = "Chiot"; -"SHEEP" = "Mouton"; -"TURKEY_GOBBLE" = "Dinde"; -"TURKEY_NOISES" = "Dindes"; - -"BELL" = "Cloche"; -"BLOCK" = "Bloquer"; -"CALM" = "Calme"; -"CLOUD" = "Nuage"; -"HEY_CHAMP" = "Hé, champion !"; -"KOTO" = "Koto"; -"MODULAR" = "Modulaire"; -"ORINGZ" = "Anneau"; -"POLITE" = "Poli"; -"SONAR" = "Sonar"; -"STRIKE" = "Frappe"; -"UNPHASED" = "Déphasé"; -"UNSTRUNG" = "Décordé"; -"WOODBLOCK" = "Woodblock"; - -"CIRCUS_CLOWN_HORN" = "Corne de clown"; -"FUNNY_FANFARE" = "Drôle de fanfare"; -"ARE_YOU_KIDDING" = "Vous plaisantez ?"; -"ENOUGH_WITH_THE_TALKING" = "Assez parlé"; -"NESTLING" = "Nid d'abeilles"; -"NICE_CUT" = "Jolie coupe"; -"OH_REALLY" = "Oh vraiment"; -"SPRINGY" = "Ressort"; - -"BASSOON" = "Basson"; -"BRASS" = "Cuivres"; -"CLARINET" = "Clarinette"; -"CLAV_FLY" = "Guitare"; -"CLAV_GUITAR" = "Cura"; -"FLUTE" = "Flûte"; -"GLOCKENSPIEL" = "Carillon"; -"HARP" = "Harpe"; -"KOTO" = "Koto"; -"OBOE" = "Hautbois"; -"PIANO" = "Piano"; -"PIPA" = "Pipa"; -"SAXO" = "Saxo"; -"STRINGS" = "Cordes"; -"SYNTH_AIRSHIP" = "Synthé airship"; -"SYNTH_CHORDAL" = "Synthé cordes"; -"SYNTH_COSMIC" = "Synthé cosmique"; -"SYNTH_DROPLETS" = "Synthé gouttelettes"; -"SYNTH_EMOTIVE" = "Synthé émotif"; -"SYNTH_FM" = "Synthé FM"; -"SYNTH_LUSHARP" = "Synthé luxuriant"; -"SYNTH_PECUSSIVE" = "Synthé percussif"; -"SYNTH_QUANTIZER" = "Synthé quantizer"; - -"NOTIFICATION_SOUNDS_SUBTITLE_POLYPHONIC" = "Lorsque vous recevrez un message, vous entendrez une note aléatoire de l'instrument choisi. N'hésitez pas à essayer en appuyant plusieurs fois sur votre instrument préféré 😉."; - -"SYSTEM_SOUND" = "Son système"; - -"GRACE_PERIOD" = "Exiger l'authentification"; - -"PIN" = "PIN"; - -"PASSWORD" = "Mot de passe"; - -"CREATE_YOUR_PASSCODE" = "Créez votre code personnalisé"; - -"CONFIRM_YOUR_PASSCODE" = "Confirmez votre code personnalisé"; - -"ENTER_YOUR_PASSCODE" = "Entrez votre code personnalisé"; - -"CREATE_MY_PASSCODE" = "Créer mon code personnalisé"; - -"LOCKED_OUT_FOR" = "Bloqué pour "; - -"LOCKED_OUT" = "Bloqué"; - -"RETRY_WITH_TOUCH_ID" = "Réessayer avec Touch ID"; - -"RETRY_WITH_FACE_ID" = "Réessayer avec Face ID"; - -"LOCKED_OUT_EXPLANATION" = "Olvid est verrouillée suite à la saisie d'un nombre trop important de mauvais passcode."; - -"LOCKOUT_CLEAN_EPHEMERAL_TITLE" = "Effacer les messages sensibles après 3 mauvais codes"; - -"LOCKOUT_CLEAN_EPHEMERAL_EXPLANATION" = "Quand cette option est activée, saisir 3 mauvais codes d'affilée entraîne l'effacement silencieux de tous les messages à visibilité limitée."; - -"BIOMETRY_NOT_ENROLLED_ERROR_TITLE" = "Il vous faut configurer Face ID ou Touch ID"; - -"BIOMETRY_NOT_ENROLLED_ERROR_MESSAGE" = "Pour utiliser cette fonctionnalité, vous devez configurer Face ID ou Touch ID dans l'app Réglages de votre appareil."; - -"NO_GRACE_PERIOD_EXPLANATION" = "Une fois fermée, Olvid se vérrouillera immédiatement."; - -"GRACE_PERIOD_EXPLANATION_%@" = "Une fois fermée, Olvid se vérrouillera après %@."; - -"GRACE_PERIOD_TITLE_%@" = "après %@"; - -"OTHER_GROUP_MEMBERS" = "Autres membres du groupe"; - -"EDIT_GROUP_MEMBERS" = "Modifier les membres du groupe"; - -"IS_ADMIN" = "Admin"; - -"IS_NOT_ADMIN" = "Pas admin"; - -"ADD_GROUP_MEMBERS" = "Ajouter des membres"; - -"PUBLISH" = "Publier"; - -"GROUP_V2_PUBLISHED_DETAILS_EXPLANATION_%@" = "Les détails du groupe ont été mis à jour. Si vous désirez utiliser ces nouveaux détails au lieu de ceux sur votre %@, touchez le bouton ci-dessous."; - -"CHOOSE_GROUP_NICKNAME" = "Choisir un surnom pour le groupe"; - -"ADD_MEMBER_BY_TAPPING_EDIT_GROUP_MEMBERS_BUTTON" = "Vous êtes le seul membre de ce groupe 😅. Ajoutez des membres en touchant le bouton \"Modifier les membres\" ☝️."; - -"GROUP_UPDATE_IN_PROGRESS_EXPLANATION_TITLE" = "Mise à jour en cours"; - -"GROUP_UPDATE_IN_PROGRESS_EXPLANATION_BODY" = "Une mise à jour du groupe est en cours. Merci de patienter jusqu'à son terme pour faire de nouvelles modifications."; - -"MANUAL_RESYNC_OF_GROUP_V2" = "Resynchroniser ce groupe"; - -"SINGLE_GROUP_V2_VIEW_ALERT_CANNOT_LEAVE_GROUP_TITLE" = "Vous ne pouvez pas quitter le groupe pour le moment"; - -"SINGLE_GROUP_V2_VIEW_ALERT_CANNOT_LEAVE_GROUP_MESSAGE" = "Comme vous êtes le seul administrateur de ce groupe, il vous est impossible de le quitter (vous laisseriez le groupe sans administrateur). Une fois que vous aurez nommé un autre administrateur, vous pourrez essayer à nouveau."; - -"SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_LEAVE_GROUP_TITLE" = "Voulez-vous vraiment quitter le groupe ?"; - -"SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_LEAVE_GROUP_MESSAGE" = "Attention, cette action est irréversible (sauf si un administrateur du groupe vous y invite à nouveau après que vous l'ayez quitté)."; - -"SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_LEAVE_GROUP_BUTTON_TITLE" = "Quitter ce groupe"; - -"LEAVE_GROUP" = "Quitter ce groupe"; - -"SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_DISBAND_GROUP_TITLE" = "Attention ! Voulez-vous vraiment supprimer ce groupe ?"; - -"SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_DISBAND_GROUP_MESSAGE" = "Supprimer un groupe est une opération irréversible. Si vous continuez, le groupe sera supprimé chez tous les membres."; - -"SINGLE_GROUP_V2_VIEW_SHEET_CONFIRM_DISBAND_GROUP_BUTTON_TITLE" = "Supprimer ce groupe chez tous les utilisateurs"; - -"DISBAND_GROUP" = "Supprimer ce groupe"; - -"UNKNOWN_GROUP_MEMBER_NAME" = "Nom inconnu"; - -"IS_PENDING" = "En attente"; - -"IS_PENDING_ADMIN" = "Admin\nen attente"; - -"SAVE_CUSTOM_GROUP_VALUES" = "Sauvegarder vos modifications"; - -"EDIT_GROUP_DETAILS_AS_ADMINISTRATOR_BUTTON_TITLE" = "Modifier le titre"; - -"EDIT_GROUP_MEMBERS_AS_ADMINISTRATOR_BUTTON_TITLE" = "Modifier les membres"; - -"CHOOSE_GROUP_CUSTOM_NAME_AND_PHOTO_TITLE" = "Photo et nom personalisés"; - -"GROUP_TITLE_WHEN_NO_SPECIFIC_TITLE_IS_GIVEN" = "Groupe sans nom 😅"; - -"MEMBERS_OF_GROUP_V2_WERE_UPDATED_SYSTEM_MESSAGE" = "Les membres du groupe ont été mis à jour. Touchez pour en savoir plus."; - -"CHOSEN_GROUP_MEMBERS" = "Participants choisis"; - -"CLONE_THIS_GROUP" = "Cloner ce groupe"; - -"CLONE_THIS_GROUP_V1_TO_GROUP_V2" = "Cloner ce groupe"; - -"SOME_GROUP_MEMBERS_MUST_UPGRADE" = "Certains membres doivent mettre à jour Olvid"; - -"FOLLOWING_MEMBERS_MUST_UPGRADE_BEFORE_CREATING_GROUP_V2_%@" = "Pour pouvoir créer un groupe v2, tous les membres doivent utiliser une version récente d'Olvid 🤓. Avant d'essayer à nouveau, demandez aux contacts suivants de mettre Olvid à jour:\n%@."; - -"YOU_ARE_NOW_PART_OF_THE_ADMINISTRATORS_OF_THIS_GROUP_V2" = "Vous êtes maintenant un administrateur de ce groupe 😎."; - -"YOU_ARE_NO_LONGER_PART_OF_THE_ADMINISTRATORS_OF_THIS_GROUP_V2" = "Vous n'êtes plus administrateur de ce groupe."; - -"PLEASE_AUTHENTICATE" = "Authentification requise"; - -"PLEASE_NOTE_THAT_YOUR_CUSTOM_PASSCODE_CANNOT_BE_RECOVERED" = "Veuillez noter que si vous oubliez votre code personnalisé, il ne sera pas possible de le récupérer, et vous ne pourrez plus accéder à Olvid."; - -"CLONED_GROUP_NAME_FROM_ORIGINAL_NAME_%@" = "Copie de %@"; - -"COMPUTE_CKRECORD_COUNT" = "Calculer le nombre d'entrées iCloud"; - -"DISK_USAGE" = "Espace de stockage occupé"; - -"REFERENCED_BY_DATABASE" = "Référencés depuis la base de données"; - -"APP_DIRECTORIES" = "Répertoires de l'app"; - -"ENGINE_DIRECTORIES" = "Répertoires de l'engine"; - -"ABOUT_DISKUSAGEVIEW_%@" = "Cet écran permet d'évaluer l'espace de stockage occupé par Olvid sur votre %@. Attention cependant, le stockage total n'est pas la somme des valeurs indiquées ici (Olvid utilise des techniques de déduplication). Pour évaluer le stockage total, il suffit en général de considérer les valeurs référencées depuis la base de données."; - -"IS_DELETING" = "suppression en cours"; - -"ENABLE_AUTOMATIC_BACKUP_AND_CONTINUE" = "Activer les sauvegardes automatiques"; - -"ESTIMATING_TIME_REMAINING" = "Estimation du temps restant..."; - -"YOU_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE" = "Vous avez fait une capture d'un message sensible, les participants de cette discussion ont été notifiés."; - -"CONTACT_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE_%@" = "%@ a fait une capture d'un message sensible."; - -"CONTACT_CAPTURED_SENSITIVE_CONTENT_WARNING_MESSAGE_WHEN_CONTACT_IS_UNKNOWN" = "Un particpant a fait une capture d'un message sensible."; - -"ENABLE" = "Activer"; - -"PLEASE_CHOOSE_THE_BACKUP_TO_RESTORE" = "Veuillez choisir la sauvegarde à restaurer."; - -"TITLE_BACKUP_RESTORED" = "Sauvegarde restaurée"; - -"ENABLE_AUTOMATIC_BACKUP_EXPLANATION" = "La sauvegarde a été restaurée avec succès. Pour vous assurer de pouvoir restaurer à nouveau une sauvegarde la prochaine fois que vous en aurez besoin, nous vous recommandons d'activer les sauvegardes automatiques vers iCloud."; - -"RESTORE_BACKUP_FAILED_EXPLANATION" = "La sauvegarde n'a malheureusement pas pu être restaurée. Si vous le pouvez, nous vous recommandons d'essayer de restaurer une autre sauvegarde."; - -"KEYCLOAK_REVOCATION_FORBIDDEN_TITLE" = "Vous ne pouvez pas révoquer votre identité"; - -"KEYCLOAK_REVOCATION_FORBIDDEN_MESSAGE" = "Nous vous recommandons de contacter votre administrateur."; - -"Processing" = "Traitement"; - -"Unprocessed" = "À traiter"; - -"Metadata" = "Métadonnées"; - -"You selected to add %@ to your contacts. Do you want to proceed?" = "Vous avez choisi d'ajouter %@ à vos contacts. Voulez-vous continuer ?"; - -"Unread" = "Non lu"; - -"EXPORT_TMP_DIRECTORY" = "Exporter le répertoire tmp"; - -"SOME_OF_YOUR_CONTACTS_MAY_NOT_APPEAR_AS_GROUP_V2_CANDIDATES" = "Choisissez qui ajouter à ce groupe. Vous ne trouvez pas la personne que vous cherchez ? Demandez-lui de mettre à jour Olvid 🚀 !"; - -"EXPLANATION_FOR_CLONING_A_GROUP_V1_TO_GROUP_V2" = "Ce groupe ne permet pas d'avoir plusieurs administrateurs. Mais vous pouvez le cloner en un nouveau groupe de dernière génération qui le permettra 🚀 !"; - -"TITLE_NEVER_MISS_A_MESSAGE" = "Ne ratez aucun message"; - -"TITLE_NEVER_MISS_A_SECURE_CALL" = "Ne ratez aucun appel"; - -"EXPLANATION_WHY_RECORD_PERMISSION_IS_IMPORTANT" = "Pour passer ou recevoir des appels sécurisés ☎️ et pour enregistrer des messages audio 🎵, il faut accorder à Olvid le droit d'accéder au micro.\n\nAfin de ne rater aucun appel, nous vous recommandons de le faire maintenant 🤓."; - -"BUTON_TITLE_ACTIVATE_NOTIFICATION" = "Activer les notifications"; - -"BUTON_TITLE_REQUEST_RECORD_PERMISSION" = "Autoriser le micro"; - -"PERFORM_INTERACTION_DONATION_LABEL" = "Suggérer les discussions Olvid pendant un partage"; - -"PERFORM_INTERACTION_DONATION_FOOTER" = "Si vous activez cette option, les discussions Olvid apparaitront directement lorsque vous partagerez du contenu depuis une autre app. Ce paramètre peut être modifié indépendamment pour chaque discussion."; - -"PERFORM_INTERACTION_DONATION_FOR_THIS_DISCUSSION_LABEL" = "Suggérer cette discussion pendant un partage"; - -"PERFORM_INTERACTION_DONATION_FOR_THIS_DISCUSSION_FOOTER" = "Si vous activez cette option, cette discussion apparaîtra directement lorsque vous partagerez du contenu depuis une autre app."; - -"DISCUSSIONS_FILTER_CELL_PICKER_TEXT" = "Filtrer les discussions"; - -"MY_OWN_IDS" = "Mes profils"; - -"CREATE_NEW_OWNED_IDENTITY" = "Créer un nouveau profil"; - -"DELETE_THIS_IDENTITY_QUESTION_TITLE_%@" = "Supprimer le profil « %@ » ?"; - -"DELETE_THIS_IDENTITY_QUESTION_MESSAGE" = "Supprimer un profil effacera toute information associée à ce profil de votre appareil. Cela inclut vos contacts, vos groupes et le contenu de toutes vos discussions pour ce profil. Vos autres profils ne seront pas affectés par cette opération.\nSi vous avez activé les sauvegardes Olvid, vos futures sauvegardes ne contiendront aucune trace de ce profil et vous ne serez pas en mesure de le restaurer."; - -"DELETE_THIS_IDENTITY_BUTTON" = "Supprimer ce profil"; - -"CHOOSE_PASSWORD" = "Choisissez un mot de passe"; - -"HIDE_PROFILE_EXPLANATION" = "Les profils masqués sont protégés par un mot de passe et n'apparaissent dans la liste de profils qu'après avoir saisi ce mot de passe.\nFaites un appui long sur le bouton supérieur gauche affiché sur chaque onglet pour accéder à un profil masqué.\nSi vous oubliez ce mot de passe, vous perdrez définitivement accès à ce profil 😱 !"; - -"ENTER_PASSWORD" = "Entrez un mot de passe"; - -"CONFIRM_PASSWORD" = "Confirmez le mot de passe"; - -"CREATE_PASSWORD" = "Créer le mot de passe"; - -"EDIT_CURRENT_IDENTITY" = "Éditer le profil courant"; - -"HIDE_THIS_IDENTITY" = "Masquer ce profil"; - -"UNHIDE_THIS_IDENTITY" = "Démasquer ce profil"; - -"SHOW_OWNED_IDENTITY_DETAILS" = "Afficher les détails de ce profil"; - -"FAILED_TO_HIDE_OWNED_ID_ALERT_TITLE" = "Le profil n'a pas pu être masquée"; - -"FAILED_TO_HIDE_OWNED_ID_ALERT_MESSAGE" = "Vous pouvez essayer à nouveau, en prenant garde à choisir un mot de passe qui ne soit pas le préfixe d'un mot de passe d'un autre profil masqué."; - -"UNHIDE_OWNED_IDENTITY_ALERT_TITLE" = "Démasquer ce profil ?"; - -"UNHIDE_OWNED_IDENTITY_ALERT_MESSAGE" = "Vous êtes sur le point de démasquer un profil. Si vous confirmez, ce profil sera sytématiquement visible, sans mot de passe spécifique."; - -"UNHIDE_OWNED_IDENTITY_ALERT_ACTION_STAY_HIDDEN" = "Ne pas démasquer"; - -"UNHIDE_OWNED_IDENTITY_ALERT_ACTION_UNHIDE" = "Démasquer"; - -"OPEN_HIDDEN_PROFILE_ALERT_TITLE" = "Afficher un profil masqué"; - -"OPEN_HIDDEN_PROFILE_ALERT_MESSAGE" = "Si vous avez créé un profil masqué, veuillez entrer son mot de passe pour l'afficher."; - -"AT_LEAST_ONE_UNHIDDEN_PROFILE_MUST_EXIST_TITLE" = "Impossible de masquer ce profil pour le moment"; - -"AT_LEAST_ONE_UNHIDDEN_PROFILE_MUST_EXIST_MESSAGE" = "Vous devez toujours avoir au moins un profil visible. Comme ce profil est le seul que vous ayez, vous ne pouvez pas le masquer. Vous pouvez néanmoins créer un nouveau profil et essayer à nouveau."; - -"DELETE_THIS_LAST_UNHIDDEN_IDENTITY_QUESTION_TITLE" = "Supprimer ce dernier profil ?"; - -"DELETE_THIS_LAST_UNHIDDEN_IDENTITY_QUESTION_MESSAGE" = "Supprimer un profil effacera toute information associée à ce profil de votre appareil. Cela inclut vos contacts, vos groupes et le contenu de toutes vos discussions pour ce profil.\n\nCe profil est votre seul profil visible et si vous avez des profils masqués, ceux-ci seront également supprimés.\nSi vous avez activé les sauvegardes Olvid, vos futures sauvegardes ne contiendront aucune trace de ce profil et vous ne serez pas en mesure de le restaurer."; - -"NOTIFY_CONTACTS_ON_OWNED_IDENTITY_DELETION_TITLE" = "Voulez-vous prévenir vos contacts ?"; - -"NOTIFY_CONTACTS_ON_OWNED_IDENTITY_DELETION_MESSAGE" = "Nous vous recommandons de prévenir vos contacts. De cette façon:\n- votre profil supprimé n'apparaîtra plus dans le carnet d'adresses de vos contacts,\n- les groupes que vous gérez serons dissous si vous en êtes le seul administrateur,\n- vous quitterez les groupes dont vous êtes membre.\n\nSi vous ne prévenez pas, à moins d\'avoir transféré votre ID sur un autre appareil, vos contacts pourraient continuer à vous écrire sans réaliser que leurs messages ne peuvent vous être distribués."; - -"NOTIFY_CONTACTS_ON_OWNED_IDENTITY_DELETION_DO_NOTIFY_CONTACTS_ACTION" = "Prévenir mes contacts (recommandé)"; - -"NOTIFY_CONTACTS_ON_OWNED_IDENTITY_DELETION_DO_NOT_NOTIFY_CONTACTS_ACTION" = "Ne pas prévenir mes contacts"; - -"TYPE_DELETE_TO_PROCEED_WITH_OWNED_IDENTITY_DELETION_TITLE_%@" = "Confirmez la suppression du profil « %@ »"; - -"TYPE_DELETE_TO_PROCEED_WITH_OWNED_IDENTITY_DELETION_MESSAGE" = "Pour confirmer la suppression de votre profil, veuillez taper le mot 'SUPPRIMER'."; - -"TYPE_DELETE_TO_PROCEED_WITH_OWNED_IDENTITY_DELETION_DO_DELETE_ACTION" = "Supprimer mon profil"; - -"TYPE_DELETE_TO_PROCEED_WITH_OWNED_IDENTITY_DELETION_WORD_TO_TYPE" = "SUPPRIMER"; - -"ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_TITLE" = "Quand désirez-vous fermer un profil masqué ?"; - -"ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_MESSAGE" = "Veuillez choisir le bon moment pour fermer un profil masqué. Par défaut, un profil masqué est fermé quand vous basculez manuellement vers un autre profil."; - -"ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_ACTION_SCREEN_LOCK" = "Au verrouillage de l'écran d'Olvid"; - -"ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_ACTION_MANUAL_SWITCHING" = "En changeant de profil manuellement"; - -"ALERT_CHOOSE_HIDDEN_PROFILE_CLOSE_POLICY_ACTION_BACKGROUND" = "Quand Olvid passe en arrière-plan"; - -"CLOSE_OPEN_HIDDEN_PROFILE" = "Fermer un profil masqué ouvert"; - -"HIDDEN_PROFILES" = "Profils masqués"; - -"AFTER_TEN_SECONDS" = "après 10 secondes"; -"AFTER_THIRTY_SECONDS" = "après 30 secondes"; -"AFTER_ONE_MINUTE" = "après 1 minute"; -"AFTER_TWO_MINUTE" = "après 2 minutes"; -"AFTER_FIVE_MINUTE" = "après 5 minutes"; - -"TIME_INTERVAL_FOR_BG_HIDDEN_PROFILE_CLOSE_POLICY" = "Fermer un profil masqué quand Olvid passe en arrière plan..."; - -"ALERT_SHOULD_ACTIVATE_SCREEN_LOCK_AFTER_CREATING_HIDDEN_PROFILE_TITLE" = "Écran de verrouillage non configuré"; -"ALERT_SHOULD_ACTIVATE_SCREEN_LOCK_AFTER_CREATING_HIDDEN_PROFILE_MESSAGE" = "Vous avez choisi de fermer les profils masqués ouverts au verrouillage de l'écran d'Olvid. Cependant, vous n'avez pas configuré d'écran de verrouillage.\n\nAvec le réglage actuel, les profils masqués ne seront fermés que si vous basculez manuellement vers un autre profil.\n\nPour configurer un écran de verrouillage, allez dans les paramètres de « Vie privée »."; -"ALERT_SHOULD_ACTIVATE_SCREEN_LOCK_AFTER_CREATING_HIDDEN_PROFILE_ACTION_GOTO_PRIVACY_SETTINGS" = "Aller dans les paramètres"; - -"PLEASE_CHOOSE_PROFILE_TO_PROCESS_OLVID_URL" = "Veuillez choisir le profil avec lequel vous désirez continuer."; - -"EDIT_OWNED_IDENTITY_NICKNAME" = "Éditer mon pseudo"; - -"ALERT_FOR_EDITING_NICKNAME_TITLE" = "Éditer mon pseudo"; -"ALERT_FOR_EDITING_NICKNAME_MESSAGE" = "Votre pseudo n'est visible que par vous et vous permet de facilement distinguer vos profils les uns des autres."; - -"DISCUSSIONS_LIST_SELECTED_DISCUSSION_GROUP_SUBTITLE" = "Participants : %d"; - -"SHARE_VIEW_PROFILE_SELECTION_BAR_TITLE" = "Profil"; - -"PLEASE_WAIT_DURING_UPDATE" = "Mise à jour en cours. Veuillez ne pas quitter Olvid."; - -"Message" = "Message"; - -"ANOTHER_PROFILE_HAS_VALID_API_KEY" = "Ce profil bénéficie de la licence d'un autre profil."; - -"Stored" = "Stocké"; - -/* Picker title for the mention notification mode */ -"discussion-expiration-settings-view.body.section.mention-notification-mode.picker.title" = "Mode de notification pour les mentions"; -/* Display title for the `default` value for mention notification mode. Takes one argument, the global discussion notification mode */ -"discussion-mention-notification-mode.display-title.default" = "par défaut (%1$@)"; -/* Display title for the `always` value for mention notification mode */ -"discussion-mention-notification-mode.display-title.always" = "toujours"; -/* Display title for the `never` value for mention notification mode */ -"discussion-mention-notification-mode.display-title.never" = "jamais"; -/* Picker footer for the mention notification mode */ -"discussion-expiration-settings-view.body.section.mention-notification-mode.picker.footer.title" = "Réglage pour être notifié lorsqu’on est mentionné dans cette Discussion"; - -/* Picker title for the default mention notification mode */ -"discussion-default-settings-view.mention-notification-mode.picker.title" = "Mode de notification pour les mentions"; -/* Display title for the `always` value for mention notification mode */ -"discussion-default-settings-view.mention-notification-mode.picker.mode.always" = "toujours"; -/* Display title for the `never` value for mention notification mode */ -"discussion-default-settings-view.mention-notification-mode.picker.mode.never" = "jamais"; -/* Picker footer for the default mention notification mode */ -"discussion-default-settings-view.mention-notification-mode.picker.footer.title" = "Réglage global pour être notifié lorsqu’on est mentionné dans une Discussion"; - - -"ENABLE_RUNNING_LOGS" = "Activer les logs intégrés"; - -"IN_APP_LOGS" = "Logs intégrés"; - -"NO_OTHER_MEMBER_FOR_NOW" = "Aucun autre membre pour le moment."; - -"SHOW_CURRENT_COORDINATORS_OPS" = "Voir les opérations courantes"; - -"SINGLE_GROUP_V2_VIEW_ALERT_CANNOT_LEAVE_GROUP_AS_KEYCLOAK_TITLE" = "Vous ne pouvez pas quitter le groupe"; - -"SINGLE_GROUP_V2_VIEW_ALERT_CANNOT_LEAVE_GROUP_AS_KEYCLOAK_MESSAGE" = "Comme ce groupe et géré par le serveur de votre entreprise, il ne vous est pas possible de le quitter."; - -"ARCHIVE" = "Archiver"; - -"UNARCHIVE" = "Désarchiver"; - -"PERFORM_CONTACT_INTRODUCTION" = "Faire les présentations"; diff --git a/iOSClient/ObvMessenger/ObvMessenger/fr.lproj/Localizable.stringsdict b/iOSClient/ObvMessenger/ObvMessenger/fr.lproj/Localizable.stringsdict deleted file mode 100644 index 13ed3a7f..00000000 --- a/iOSClient/ObvMessenger/ObvMessenger/fr.lproj/Localizable.stringsdict +++ /dev/null @@ -1,340 +0,0 @@ - - - - - You are about to introduce X to Y and count other contacts. - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Vous allez présenter %2$@ à %3$@. - one - Vous allez présenter %2$@ à %3$@ et un autre contact. - other - Vous allez présenter %2$@ à %3$@ et %1$d autres contacts. - - - You successfully introduced X to Y and count other contacts. - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Vous avez présenté %2$@ à %3$@. - one - Vous avez présenté %2$@ à %3$@ et un autre contact. - other - Vous avez présenté %2$@ à %3$@ et %1$d autres contacts. - - - see count attachments - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - → Voir la pièce jointe - other - → Voir les %u pièces jointes - zero - Aucune pièce jointe - - - count new messages - - NSStringLocalizedFormatKey - %#@VARIABLE@ - VARIABLE - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - 1 nouveau message - other - %u nouveaux messages - zero - Aucun nouveau message - - - count attachments - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - Une pièce jointe - other - %u pièces jointes - zero - Aucune pièce jointe - - - share count photos - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - Partager la photo - other - Partager les %u photos - zero - Aucune photo à partager - - - share count attachments - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Aucune pièce jointe - one - Partager la pièce jointe - other - Partager les %u pièces jointes - - - You are about to delete a message together with its count attachments - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Vous vous apprêtez à supprimer un message. - one - Vous vous apprêtez à supprimer un message et sa pièce jointe. - other - Vous vous apprêtez à supprimer un message et ses %d pièces jointes. - - - recent backups count - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Aucune sauvegarde - one - Une sauvegarde - other - %u sauvegardes les plus récentes - - - backups count - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Aucune sauvegarde - one - Une sauvegarde - other - %u sauvegardes - - - missed messages count - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - 1 message manquant - other - %u messages manquants - - - clean in progress count - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Pas de sauvegardes supprimées - one - Une sauvegarde supprimée - other - %u sauvegardes supprimées - - - KEYCLOAK_MISSING_SEARCH_RESULT - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - Un résultat supplémentaire est disponible. Veuillez affiner votre recherche. - other - %u résultats supplémentaires sont disponibles. Veuillez affiner votre recherche. - - - AUTO_ACCEPT_GROUP_INVITATIONS_ALERT_MESSAGE - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - Pour changer ce paramètre, vous devez accepter une invitation de groupe en attente. - other - Pour changer ce paramètre, vous devez accepter %u invitations de groupe en attente. - - - AUTO_ACCEPT_GROUP_INVITATIONS_ALERT_ACCEPT_ACTION_TITLE - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - one - Accepter l'invitation de groupe maintenant - other - Accepter les %u invitations de groupe maintenant - - - CHOOSE_OR_NUMBER_OF_CHOSEN_DISCUSSION - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - choisir - one - une sélectionnée - other - %u sélectionnées - - - NUMBER_OF_ITEMS_SELECTED - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Sélectionner des éléments - one - 1 élément sélectionné - other - %u éléments sélectionnés - - - NUMBER_OF_ELEMENTS - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - Aucun élément - one - 1 élément - other - %u éléments - - - WITH_N_PARTICIPANTS - - NSStringLocalizedFormatKey - %#@Variable@ - Variable - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - u - zero - sans aucun participant - one - avec un participant - other - avec %u participants - - - - diff --git a/iOSClient/ObvMessenger/ObvMessengerIntentsExtension/ObvMessengerIntentsExtension.entitlements b/iOSClient/ObvMessenger/ObvMessengerIntentsExtension/ObvMessengerIntentsExtension.entitlements new file mode 100644 index 00000000..852fa1a4 --- /dev/null +++ b/iOSClient/ObvMessenger/ObvMessengerIntentsExtension/ObvMessengerIntentsExtension.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/iOSClient/ObvMessenger/ObvMessengerNotificationServiceExtension/NotificationService.swift b/iOSClient/ObvMessenger/ObvMessengerNotificationServiceExtension/NotificationService.swift index 9835ec5e..76443dec 100644 --- a/iOSClient/ObvMessenger/ObvMessengerNotificationServiceExtension/NotificationService.swift +++ b/iOSClient/ObvMessenger/ObvMessengerNotificationServiceExtension/NotificationService.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,6 +24,7 @@ import OlvidUtils import ObvTypes import ObvCrypto import ObvUICoreData +import ObvSettings final class NotificationService: UNNotificationServiceExtension { @@ -89,7 +90,7 @@ final class NotificationService: UNNotificationServiceExtension { // Extract the information from the received notification - guard let encryptedNotification = EncryptedPushNotification(content: request.content) else { + guard let encryptedNotification = ObvEncryptedPushNotification(content: request.content) else { os_log("Could not extract information from the received notification", log: log, type: .error) cleanUserDefaults() addNotification() @@ -142,7 +143,7 @@ final class NotificationService: UNNotificationServiceExtension { } - private func tryToCreateNewMessageNotificationByFetchingReceivedMessageFromDatabase(encryptedPushNotification: EncryptedPushNotification, request: UNNotificationRequest) async -> Bool { + private func tryToCreateNewMessageNotificationByFetchingReceivedMessageFromDatabase(encryptedPushNotification: ObvEncryptedPushNotification, request: UNNotificationRequest) async -> Bool { var messageReceivedStructure: PersistedMessageReceived.Structure? var messageRepliedToStructure: PersistedMessage.AbstractStructure? @@ -179,7 +180,7 @@ final class NotificationService: UNNotificationServiceExtension { } } - guard let messageReceivedStructure = messageReceivedStructure else { + guard let messageReceivedStructure else { return false } @@ -217,7 +218,7 @@ final class NotificationService: UNNotificationServiceExtension { /// Returns true if the encrypted pushed notification was processed, either because a user notification was created, or because we detected that no notification should be shown. - private func tryToCreateNewMessageNotificationByDecrypting(encryptedPushNotification: EncryptedPushNotification, request: UNNotificationRequest) async -> Bool { + private func tryToCreateNewMessageNotificationByDecrypting(encryptedPushNotification: ObvEncryptedPushNotification, request: UNNotificationRequest) async -> Bool { let log = self.log @@ -230,7 +231,7 @@ final class NotificationService: UNNotificationServiceExtension { let obvMessage: ObvMessage do { - obvMessage = try obvEngine.decrypt(encryptedPushNotification: encryptedPushNotification) + obvMessage = try await obvEngine.decrypt(encryptedPushNotification: encryptedPushNotification) } catch { os_log("Could not decrypt information", log: log, type: .info) return false @@ -275,8 +276,8 @@ final class NotificationService: UNNotificationServiceExtension { return } - let groupV1Identifier: (groupUid: UID, groupOwner: ObvCryptoId)? - let groupV2Identifier: Data? + let groupV1Identifier: GroupV1Identifier? + let groupV2Identifier: GroupV2Identifier? if let messageJSON = persistedItemJSON.message { groupV1Identifier = messageJSON.groupV1Identifier groupV2Identifier = messageJSON.groupV2Identifier @@ -298,7 +299,7 @@ final class NotificationService: UNNotificationServiceExtension { os_log("Could not find owned identity. This is ok if it was just deleted.", log: log, type: .error) return } - guard let contactGroup = try PersistedContactGroup.getContactGroup(groupId: groupV1Identifier, ownedIdentity: ownedIdentity) else { + guard let contactGroup = try PersistedContactGroup.getContactGroup(groupIdentifier: groupV1Identifier, ownedIdentity: ownedIdentity) else { throw Self.makeError(message: "Could not find contact group") } discussion = contactGroup.discussion @@ -392,8 +393,8 @@ final class NotificationService: UNNotificationServiceExtension { try NotificationService.obvEngine!.postReturnReceiptWithElements( returnReceiptJSON.elements, andStatus: ReturnReceiptJSON.Status.delivered.rawValue, - forContactCryptoId: obvMessage.fromContactIdentity.cryptoId, - ofOwnedIdentityCryptoId: obvMessage.fromContactIdentity.ownedIdentity.cryptoId, + forContactCryptoId: obvMessage.fromContactIdentity.contactCryptoId, + ofOwnedIdentityCryptoId: obvMessage.fromContactIdentity.ownedCryptoId, messageIdentifierFromEngine: obvMessage.messageIdentifierFromEngine, attachmentNumber: nil) } catch { @@ -436,7 +437,7 @@ final class NotificationService: UNNotificationServiceExtension { } else { // Extract Extended Payload // In practice, this is disappointing as the server seems to often send a nil extended payload as soon as there are more than one image (i.e., one attachment) to show. - let op = ExtractReceivedExtendedPayloadOperation(obvMessage: obvMessage) + let op = ExtractReceivedExtendedPayloadOperation(input: .messageSentByContact(obvMessage: obvMessage)) op.start() assert(op.isFinished) attachementImages = op.attachementImages @@ -575,11 +576,11 @@ final class NotificationService: UNNotificationServiceExtension { } -fileprivate extension EncryptedPushNotification { +fileprivate extension ObvEncryptedPushNotification { init?(content: UNNotificationContent) { - let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "EncryptedPushNotification") + let log = OSLog(subsystem: ObvMessengerConstants.logSubsystem, category: "ObvEncryptedPushNotification") let wrappedKeyString = content.userInfo["encryptedHeader"] as? String ?? content.title let encryptedContentString = content.userInfo["encryptedMessage"] as? String ?? content.body diff --git a/iOSClient/ObvMessenger/ObvMessengerNotificationServiceExtension/ObvMessengerNotificationServiceExtension.entitlements b/iOSClient/ObvMessenger/ObvMessengerNotificationServiceExtension/ObvMessengerNotificationServiceExtension.entitlements index c199ed8c..2664f4ef 100644 --- a/iOSClient/ObvMessenger/ObvMessengerNotificationServiceExtension/ObvMessengerNotificationServiceExtension.entitlements +++ b/iOSClient/ObvMessenger/ObvMessengerNotificationServiceExtension/ObvMessengerNotificationServiceExtension.entitlements @@ -2,6 +2,8 @@ + com.apple.developer.usernotifications.filtering + com.apple.security.app-sandbox com.apple.security.application-groups @@ -10,7 +12,5 @@ com.apple.security.network.client - com.apple.developer.usernotifications.filtering - diff --git a/iOSClient/ObvMessenger/ObvMessengerShareExtension/DiscussionsView.swift b/iOSClient/ObvMessenger/ObvMessengerShareExtension/DiscussionsView.swift index abc74449..182b2204 100644 --- a/iOSClient/ObvMessenger/ObvMessengerShareExtension/DiscussionsView.swift +++ b/iOSClient/ObvMessenger/ObvMessengerShareExtension/DiscussionsView.swift @@ -17,15 +17,15 @@ * along with Olvid. If not, see . */ - - import CoreData import ObvUI import ObvTypes import os.log import SwiftUI import ObvUICoreData -import UI_CircledInitialsView_CircledInitialsConfiguration +import UI_ObvCircledInitials +import ObvDesignSystem + protocol DiscussionsHostingViewControllerDelegate: AnyObject { func setSelectedDiscussions(to: [PersistedDiscussion]) async throws @@ -51,13 +51,9 @@ final class DiscussionViewModel: ObservableObject, Hashable { do { if let photoURL = try persistedDiscussion.displayPhotoURL { let image = UIImage(contentsOfFile: photoURL.path) - if #available(iOS 15, *) { - let scale = UIScreen.main.scale - let size = CGSize(width: scale * Self.circleDiameter, height: scale * Self.circleDiameter) - self.profilePicture = image?.preparingThumbnail(of: size) - } else { - self.profilePicture = nil - } + let scale = UIScreen.main.scale + let size = CGSize(width: scale * Self.circleDiameter, height: scale * Self.circleDiameter) + self.profilePicture = image?.preparingThumbnail(of: size) } else { self.profilePicture = nil } @@ -129,10 +125,8 @@ struct DiscussionsView: View { private var subView: some View { if #available(iOSApplicationExtension 16.0, *) { return AnyView(NewDiscussionsListView(ownedCryptoId: ownedCryptoId, discussionsViewModel: model)) - } else if #available(iOSApplicationExtension 15.0, *) { - return AnyView(DiscussionsListView(ownedCryptoId: ownedCryptoId, discussionsViewModel: model)) } else { - return AnyView(DiscussionsScrollingView(discussionModels: model.discussions)) + return AnyView(DiscussionsListView(ownedCryptoId: ownedCryptoId, discussionsViewModel: model)) } } } @@ -162,7 +156,7 @@ fileprivate struct DiscussionsInnerView: View { DiscussionCellView(model: discussionModel) } } - .obvListStyle() + .listStyle(InsetGroupedListStyle()) } } @@ -202,35 +196,45 @@ fileprivate struct DiscussionCellView: View { } } - private var circledTextView: Text? { + private var circledText: String? { let title = model.persistedDiscussion.title.trimmingCharacters(in: .whitespacesAndNewlines) if let char = title.first { - return Text(String(char)) + return String(char) } else { return nil } } - - private var pictureViewInner: some View { - let showGreenShield = (try? model.persistedDiscussion.showGreenShield) ?? false - let showRedShield = (try? model.persistedDiscussion.showRedShield) ?? false - return ProfilePictureView(profilePicture: model.profilePicture, - circleBackgroundColor: identityColors?.background, - circleTextColor: identityColors?.text, - circledTextView: circledTextView, - systemImage: systemImage, - showGreenShield: showGreenShield, - showRedShield: showRedShield, - customCircleDiameter: DiscussionViewModel.circleDiameter) + + private var profilePictureViewModelContent: ProfilePictureView.Model.Content { + .init(text: circledText, + icon: systemImage, + profilePicture: model.profilePicture, + showGreenShield: (try? model.persistedDiscussion.showGreenShield) ?? false, + showRedShield: (try? model.persistedDiscussion.showRedShield) ?? false) + } + + private var initialCircleViewModelColors: InitialCircleView.Model.Colors { + .init(background: identityColors?.background, + foreground: identityColors?.text) + } + + private var profilePictureViewModel: ProfilePictureView.Model { + .init(content: profilePictureViewModelContent, + colors: initialCircleViewModelColors, + circleDiameter: 60.0) + } + + private var textViewModel: TextView.Model { + .init(titlePart1: model.persistedDiscussion.title, + titlePart2: nil, + subtitle: nil, + subsubtitle: nil) } var body: some View { HStack { - pictureViewInner - TextView(titlePart1: model.persistedDiscussion.title, - titlePart2: nil, - subtitle: nil, - subsubtitle: nil) + ProfilePictureView(model: profilePictureViewModel) + TextView(model: textViewModel) Spacer() Image(systemIcon: model.selected ? .checkmarkCircleFill : .circle) .font(Font.system(size: 24, weight: .regular, design: .default)) diff --git a/iOSClient/ObvMessenger/ObvMessengerShareExtension/Operations/CreateFylesFromLoadedFileRepresentationsOperation.swift b/iOSClient/ObvMessenger/ObvMessengerShareExtension/Operations/CreateFylesFromLoadedFileRepresentationsOperation.swift index 8fc24227..b44e4414 100644 --- a/iOSClient/ObvMessenger/ObvMessengerShareExtension/Operations/CreateFylesFromLoadedFileRepresentationsOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessengerShareExtension/Operations/CreateFylesFromLoadedFileRepresentationsOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -23,6 +23,8 @@ import os.log import OlvidUtils import ObvCrypto import ObvUICoreData +import CoreData + protocol LoadedItemProviderProvider: Operation { var loadedItemProviders: [LoadedItemProvider]? { get } @@ -49,85 +51,78 @@ final class CreateFylesFromLoadedFileRepresentationsOperation: ContextualOperati private let Sha256 = ObvCryptoSuite.sharedInstance.hashFunctionSha256() - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + assert(loadedItemProviderProvider.isFinished) - - guard let obvContext = self.obvContext else { - cancel(withReason: .contextIsNil) - return - } - + guard let loadedItemProviders = loadedItemProviderProvider.loadedItemProviders else { cancel(withReason: .noLoadedItemProviders) return } - - obvContext.performAndWait { - - var tempURLsToDelete = [URL]() - var fyleJoins = [FyleJoin]() - var bodyTexts = [String]() - - for loadedItemProvider in loadedItemProviders { - - switch loadedItemProvider { - - case .file(tempURL: let tempURL, uti: let uti, filename: let filename): - - // Compute the sha256 of the file - let sha256: Data - do { - sha256 = try Sha256.hash(fileAtUrl: tempURL) - } catch { - cancelAndContinue(withReason: .couldNotComputeSha256) - tempURLsToDelete.append(tempURL) - continue - } - - // Get or create a Fyle - guard let fyle: Fyle = try? Fyle.getOrCreate(sha256: sha256, within: obvContext.context) else { - cancelAndContinue(withReason: .couldNotGetOrCreateFyle) - tempURLsToDelete.append(tempURL) - continue - } - - // We move the received file to a permanent location - - do { - try fyle.moveFileToPermanentURL(from: tempURL, logTo: log) - } catch { - cancelAndContinue(withReason: .couldNotMoveFileToPermanentURL(error: error)) - tempURLsToDelete.append(tempURL) - continue - } - - let fyleJoin = FyleJoinImpl(fyle: fyle, fileName: filename, uti: uti, index: fyleJoins.count) - - fyleJoins += [fyleJoin] - - case .text(content: let textContent): - - let qBegin = Locale.current.quotationBeginDelimiter ?? "\"" - let qEnd = Locale.current.quotationEndDelimiter ?? "\"" - - let textToAppend = [qBegin, textContent, qEnd].joined(separator: "") - - bodyTexts.append(textToAppend) - - case .url(content: let url): - bodyTexts.append(url.absoluteString) + + var tempURLsToDelete = [URL]() + var fyleJoins = [FyleJoin]() + var bodyTexts = [String]() + + for loadedItemProvider in loadedItemProviders { + + switch loadedItemProvider { + + case .file(tempURL: let tempURL, fileType: let fileType, filename: let filename): + + // Compute the sha256 of the file + let sha256: Data + do { + sha256 = try Sha256.hash(fileAtUrl: tempURL) + } catch { + cancelAndContinue(withReason: .couldNotComputeSha256) + tempURLsToDelete.append(tempURL) + continue } - - } - - self.bodyTexts = bodyTexts - self.fyleJoins = fyleJoins - - for urlToDelete in tempURLsToDelete { - try? urlToDelete.moveToTrash() + + // Get or create a Fyle + guard let fyle: Fyle = try? Fyle.getOrCreate(sha256: sha256, within: obvContext.context) else { + cancelAndContinue(withReason: .couldNotGetOrCreateFyle) + tempURLsToDelete.append(tempURL) + continue + } + + // We move the received file to a permanent location + + do { + try fyle.moveFileToPermanentURL(from: tempURL, logTo: log) + } catch { + cancelAndContinue(withReason: .couldNotMoveFileToPermanentURL(error: error)) + tempURLsToDelete.append(tempURL) + continue + } + + let fyleJoin = FyleJoinImpl(fyle: fyle, fileName: filename, contentType: fileType, index: fyleJoins.count) + + fyleJoins += [fyleJoin] + + case .text(content: let textContent): + + let qBegin = Locale.current.quotationBeginDelimiter ?? "\"" + let qEnd = Locale.current.quotationEndDelimiter ?? "\"" + + let textToAppend = [qBegin, textContent, qEnd].joined(separator: "") + + bodyTexts.append(textToAppend) + + case .url(content: let url): + bodyTexts.append(url.absoluteString) } - + + } + + self.bodyTexts = bodyTexts + self.fyleJoins = fyleJoins + + for urlToDelete in tempURLsToDelete { + try? urlToDelete.moveToTrash() } + } } diff --git a/iOSClient/ObvMessenger/ObvMessengerShareExtension/Operations/CreateUnprocessedPersistedMessageSentFromFylesStrings.swift b/iOSClient/ObvMessenger/ObvMessengerShareExtension/Operations/CreateUnprocessedPersistedMessageSentFromFylesStrings.swift index b0bbee01..ecc996fa 100644 --- a/iOSClient/ObvMessenger/ObvMessengerShareExtension/Operations/CreateUnprocessedPersistedMessageSentFromFylesStrings.swift +++ b/iOSClient/ObvMessenger/ObvMessengerShareExtension/Operations/CreateUnprocessedPersistedMessageSentFromFylesStrings.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -24,23 +24,27 @@ import CoreData import OlvidUtils import ObvCrypto import ObvUICoreData +import UniformTypeIdentifiers final class FyleJoinImpl: FyleJoin { var fyle: Fyle? let fileName: String + let contentType: UTType let uti: String let index: Int let fyleObjectID: NSManagedObjectID - init(fyle: Fyle, fileName: String, uti: String, index: Int) { + init(fyle: Fyle, fileName: String, contentType: UTType, index: Int) { self.fyle = fyle self.fyleObjectID = fyle.objectID self.fileName = fileName - self.uti = uti + self.contentType = contentType self.index = index + self.uti = contentType.identifier } + } final class CreateUnprocessedPersistedMessageSentFromFylesAndStrings: ContextualOperationWithSpecificReasonForCancel, UnprocessedPersistedMessageSentProvider { @@ -60,42 +64,40 @@ final class CreateUnprocessedPersistedMessageSentFromFylesAndStrings: Contextual super.init() } - override func main() { + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { + assert(fyleJoinsProvider.isFinished) - + let body = body ?? "" - + guard let fyleJoins = fyleJoinsProvider.fyleJoins else { return } - - guard let obvContext = self.obvContext else { - cancel(withReason: .contextIsNil) - return - } - - obvContext.performAndWait { + + do { + guard let discussion = try PersistedDiscussion.get(objectID: discussionObjectID, within: obvContext.context) else { + return cancel(withReason: .couldNotFindDiscussion) + } + + let persistedMessageSent = try PersistedMessageSent.createPersistedMessageSentFromShareExtension( + body: body, + fyleJoins: fyleJoins, + discussion: discussion) + do { - guard let discussion = try PersistedDiscussion.get(objectID: discussionObjectID, within: obvContext.context) else { - return cancel(withReason: .couldNotFindDiscussion) - } - - let persistedMessageSent = try PersistedMessageSent(body: body, replyTo: nil, fyleJoins: fyleJoins, discussion: discussion, readOnce: false, visibilityDuration: nil, existenceDuration: nil, forwarded: false, mentions: []) - - do { - try obvContext.context.obtainPermanentIDs(for: [persistedMessageSent]) - } catch { - return cancel(withReason: .couldNotObtainPermanentIDForPersistedMessageSent) - } - - self.messageSentPermanentID = persistedMessageSent.objectPermanentID + try obvContext.context.obtainPermanentIDs(for: [persistedMessageSent]) } catch { - return cancel(withReason: .coreDataError(error: error)) + return cancel(withReason: .couldNotObtainPermanentIDForPersistedMessageSent) } + + self.messageSentPermanentID = persistedMessageSent.objectPermanentID + } catch { + return cancel(withReason: .coreDataError(error: error)) } + } - } + enum CreateUnprocessedPersistedMessageSentFromPersistedDraftOperationReasonForCancel: LocalizedErrorWithLogType { case contextIsNil diff --git a/iOSClient/ObvMessenger/ObvMessengerShareExtension/Operations/SaveContextOperation.swift b/iOSClient/ObvMessenger/ObvMessengerShareExtension/Operations/SaveContextOperation.swift index 8907b785..cdcadbd1 100644 --- a/iOSClient/ObvMessenger/ObvMessengerShareExtension/Operations/SaveContextOperation.swift +++ b/iOSClient/ObvMessenger/ObvMessengerShareExtension/Operations/SaveContextOperation.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -33,24 +33,20 @@ final class SaveContextOperation: ContextualOperationWithSpecificReasonForCancel self.userDefaults = userDefaults } - override func main() { - - guard let obvContext = self.obvContext else { - return cancel(withReason: .contextIsNil) - } + override func main(obvContext: ObvContext, viewContext: NSManagedObjectContext) { var modifiedObjects = Set() do { - try obvContext.performAndWaitOrThrow { - - modifiedObjects = obvContext.context.insertedObjects - .union(obvContext.context.updatedObjects) - .union(obvContext.context.deletedObjects) - - try obvContext.save(logOnFailure: Self.log) - os_log("📤 Saving Context done.", log: Self.log, type: .info) - } + + modifiedObjects = obvContext.context.insertedObjects + .union(obvContext.context.updatedObjects) + .union(obvContext.context.deletedObjects) + + try obvContext.save(logOnFailure: Self.log) + + os_log("📤 Saving Context done.", log: Self.log, type: .info) + } catch(let error) { return cancel(withReason: .coreDataError(error: error)) } diff --git a/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareExtensionErrorViewController.swift b/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareExtensionErrorViewController.swift index 3ec19374..0a5d399a 100644 --- a/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareExtensionErrorViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareExtensionErrorViewController.swift @@ -1,6 +1,6 @@ /* * Olvid for iOS - * Copyright © 2019-2022 Olvid SAS + * Copyright © 2019-2023 Olvid SAS * * This file is part of Olvid for iOS. * @@ -20,6 +20,7 @@ import ObvUI import UIKit import ObvUICoreData +import ObvDesignSystem protocol ShareExtensionErrorViewControllerDelegate: AnyObject { @@ -57,7 +58,7 @@ final class ShareExtensionErrorViewController: UIViewController { okButton.setTitle(CommonString.Word.Ok, for: .normal) okButton.layer.cornerRadius = 16 okButton.layer.masksToBounds = true - okButton.contentEdgeInsets = UIEdgeInsets(top: 16, left: 32, bottom: 16, right: 32) + // okButton.contentEdgeInsets = UIEdgeInsets(top: 16, left: 32, bottom: 16, right: 32) okButton.backgroundColor = AppTheme.shared.colorScheme.olvidLight okButton.addTarget(self, action: #selector(okOlvidButtonTapped), for: .touchUpInside) diff --git a/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareView.swift b/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareView.swift index aa5ab1fe..ebc47662 100644 --- a/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareView.swift +++ b/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareView.swift @@ -21,6 +21,8 @@ import ObvUI import SwiftUI import ObvUICoreData +import ObvDesignSystem +import ObvSettings private enum ActiveSheet: Identifiable { @@ -94,9 +96,7 @@ struct ShareView: View { .frame(width: 30, height: 30) Spacer() Button(action: { - if #available(iOSApplicationExtension 15.0, *) { - isFocused = false - } + isFocused = false model.userWantsToSendMessages(to: model.selectedDiscussions) }) { Image(systemIcon: .paperplaneFill) @@ -107,16 +107,10 @@ struct ShareView: View { } private var textArea: some View { - Group { - if #available(iOSApplicationExtension 14.0, *) { - ZStack { - TextEditor(text: model.textBinding) - if model.textBinding.wrappedValue.isEmpty { - textEditorPlaceholderView - } - } - } else { - TextField(LocalizedStringKey("YOUR_MESSAGE"), text: model.textBinding) + ZStack { + TextEditor(text: model.textBinding) + if model.textBinding.wrappedValue.isEmpty { + textEditorPlaceholderView } } } @@ -148,7 +142,7 @@ struct ShareView: View { RoundedRectangle(cornerRadius: 10.0) .foregroundColor(.secondary) .aspectRatio(1.0, contentMode: .fill) - ObvProgressView() + ProgressView() } .frame(height: 100) case .image(let image): @@ -198,7 +192,7 @@ struct ShareView: View { Text(LocalizedStringKey("Discussions")) .foregroundColor(Color(AppTheme.shared.colorScheme.label)) Spacer() - Text(String.localizedStringWithFormat(NSLocalizedString("CHOOSE_OR_NUMBER_OF_CHOSEN_DISCUSSION", comment: ""), model.selectedDiscussions.count)) + Text("CHOOSE_OR_\(model.selectedDiscussions.count)_CHOSEN_DISCUSSION") .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) Image(systemIcon: .chevronRight) .foregroundColor(Color(AppTheme.shared.colorScheme.secondaryLabel)) @@ -208,14 +202,10 @@ struct ShareView: View { private var navigationViewPresentingOwnedIdentityChooserView: some View { NavigationView { - if #available(iOSApplicationExtension 14.0, *) { - ownedIdentityChooserView - .onChange(of: model.selectedOwnedIdentity) { _ in - activeSheet = nil - } - } else { - ownedIdentityChooserView - } + ownedIdentityChooserView + .onChange(of: model.selectedOwnedIdentity) { _ in + activeSheet = nil + } } } diff --git a/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareViewController.swift b/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareViewController.swift index 1e26aa7f..cbc7c62d 100644 --- a/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareViewController.swift +++ b/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareViewController.swift @@ -28,7 +28,7 @@ import OlvidUtils import os.log import SwiftUI import ObvUICoreData - +import ObvSettings @objc(ShareViewController) @@ -44,7 +44,7 @@ final class ShareViewController: UIViewController, ShareExtensionErrorViewContro private var localAuthenticationViewController: LocalAuthenticationViewController? private var obvEngine: ObvEngine! - private var model: ShareViewModel! + private var model: ShareViewModel? private var wipeOp: WipeAllReadOnceAndLimitedVisibilityMessagesAfterLockOutOperation? @@ -105,12 +105,14 @@ final class ShareViewController: UIViewController, ShareExtensionErrorViewContro // Make sure at least one owned identity has been generated within the main app + let model: ShareViewModel do { let allOwnedIdentities = try PersistedObvOwnedIdentity.getAllNonHiddenOwnedIdentities(within: ObvStack.shared.viewContext) guard !allOwnedIdentities.isEmpty else { throw Self.makeError(message: "Cannot find any owned identity") } - self.model = try ShareViewModel(allOwnedIdentities: allOwnedIdentities) + model = try ShareViewModel(allOwnedIdentities: allOwnedIdentities) + self.model = model } catch { let vc = ShareExtensionErrorViewController() vc.delegate = self @@ -122,7 +124,7 @@ final class ShareViewController: UIViewController, ShareExtensionErrorViewContro // Instantiate the two view controllers that we might need and add them as child view controllers // The appropriate vc view will be added as a subview later, in showAppropriateViewControllerView() let shareViewHostingController = ShareViewHostingController(obvEngine: self.obvEngine, - model: self.model, + model: model, internalQueue: internalQueue, userDefaults: userDefaults) shareViewHostingController.delegate = self @@ -130,8 +132,9 @@ final class ShareViewController: UIViewController, ShareExtensionErrorViewContro shareViewHostingController.didMove(toParent: self) self.shareViewHostingController = shareViewHostingController - let localAuthenticationViewController = LocalAuthenticationViewController(localAuthenticationDelegate: localAuthenticationDelegate, - delegate: self) + let localAuthenticationViewController = LocalAuthenticationViewController( + localAuthenticationDelegate: localAuthenticationDelegate, + delegate: self) self.addChild(localAuthenticationViewController) localAuthenticationViewController.didMove(toParent: self) self.localAuthenticationViewController = localAuthenticationViewController @@ -152,6 +155,7 @@ final class ShareViewController: UIViewController, ShareExtensionErrorViewContro guard let localAuthenticationViewController = localAuthenticationViewController else { assertionFailure(); return } guard let shareViewHostingController = shareViewHostingController else { assertionFailure(); return } + guard let model else { assertionFailure(); return } let vcToShow = !model.isAuthenticated ? localAuthenticationViewController : shareViewHostingController let vcToHide = model.isAuthenticated ? localAuthenticationViewController : shareViewHostingController @@ -186,9 +190,11 @@ final class ShareViewController: UIViewController, ShareExtensionErrorViewContro private func authenticateIfRequired() async { - assert(model != nil, "Should not occur. May be nil under testing conditions via Xcode with no owned identity set up.") + guard let model else { assertionFailure("Should not occur. May be nil under testing conditions via Xcode with no owned identity set up."); return } if !model.isAuthenticated { - await localAuthenticationViewController?.performLocalAuthentication(uptimeAtTheTimeOfChangeoverToNotActiveState: nil) + await localAuthenticationViewController?.performLocalAuthentication( + customPasscodePresentingViewController: self, + uptimeAtTheTimeOfChangeoverToNotActiveState: nil) } } @@ -282,7 +288,8 @@ extension ShareViewController: LocalAuthenticationViewControllerDelegate { func userLocalAuthenticationDidSucceed(authenticationWasPerformed: Bool) async { assert(Thread.isMainThread) - self.model.isAuthenticated = true + assert(model != nil) + self.model?.isAuthenticated = true showAppropriateViewControllerView() } @@ -510,7 +517,7 @@ final class ShareViewHostingController: UIHostingController, ShareVie try await withCheckedThrowingContinuation { (continuation: CheckedContinuation) in dispatchGroupForEngine.enter() - let op = SendUnprocessedPersistedMessageSentOperation(messageSentPermanentID: messageSentPermanentID, extendedPayloadProvider: nil, obvEngine: obvEngine) { + let op = SendUnprocessedPersistedMessageSentOperation(messageSentPermanentID: messageSentPermanentID, alsoPostToOtherOwnedDevices: true, extendedPayloadProvider: nil, obvEngine: obvEngine) { // Called by the engine when the message and its attachments were taken into account progress.completedUnitCount += 1 dispatchGroupForEngine.leave() @@ -579,11 +586,13 @@ final class ShareViewHostingController: UIHostingController, ShareVie internalQueue.addOperation { [weak self] in dispatchGroupForEngine.wait() - progress.completedUnitCount += 1 + progress.completedUnitCount += 1 // If we reach this point, we know for sure that *all* messages to send were sent by the engine debugPrint(progress.completedUnitCount, progress.totalUnitCount) // Give some time to the progress to reach 100 percent and complete the request - self?.delegate?.showSuccessAndCompleteRequestAfter(deadline: .now() + .milliseconds(300)) + Task { [weak self] in + await self?.delegate?.showSuccessAndCompleteRequestAfter(deadline: .now() + .milliseconds(300)) + } } } diff --git a/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareViewModel.swift b/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareViewModel.swift index b7dc7158..38954a38 100644 --- a/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareViewModel.swift +++ b/iOSClient/ObvMessenger/ObvMessengerShareExtension/ShareViewModel.swift @@ -29,6 +29,7 @@ import SwiftUI import CoreData import ObvUICoreData import UI_SystemIcon +import ObvSettings final class ShareViewModel: ObservableObject, DiscussionsHostingViewControllerDelegate, ObvErrorMaker { @@ -215,25 +216,7 @@ final class ShareViewModel: ObservableObject, DiscussionsHostingViewControllerDe let thumbnail = try await generator.generateBestRepresentation(for: request) return .image(thumbnail.uiImage) } catch { - let uti = hardlink.uti - if #available(iOS 14.0, *) { - let icon = ObvUTIUtils.getIcon(forUTI: uti) - return .symbol(icon) - } else { - // See CoreServices > UTCoreTypes - if ObvUTIUtils.uti(uti, conformsTo: "org.openxmlformats.wordprocessingml.document" as CFString) { - // Word (docx) document - return .symbol(.docFill) - } else if ObvUTIUtils.uti(uti, conformsTo: kUTTypeArchive) { - // Zip archive - return .symbol(.rectangleCompressVertical) - } else if ObvUTIUtils.uti(uti, conformsTo: kUTTypeWebArchive) { - // Web archive - return .symbol(.archiveboxFill) - } else { - return .symbol(.paperclip) - } - } + return .symbol(hardlink.contentType.systemIcon) } } } diff --git a/iOSClient/ObvMessenger/Project.swift b/iOSClient/ObvMessenger/Project.swift index c7c828d5..57dba52d 100644 --- a/iOSClient/ObvMessenger/Project.swift +++ b/iOSClient/ObvMessenger/Project.swift @@ -29,6 +29,7 @@ SUBQUERY ( ], "CFBundleShortVersionString": "$(MARKETING_VERSION)", "CFBundleVersion": "$(CURRENT_PROJECT_VERSION)", + "NSHumanReadableCopyright": .init(stringLiteral: Constants.nsHumanReadableCopyrightValue), "CFBundleDisplayName": "$(OBV_BUNDLE_DISPLAY_NAME_FOR_SHARE_EXTENSION)", "OBV_APP_GROUP_IDENTIFIER": "$(OBV_APP_GROUP_IDENTIFIER)" ]) @@ -36,7 +37,7 @@ SUBQUERY ( let target = Target.appExtension(name: "ObvMessengerShareExtension", bundleIdentifier: "$(OBV_PRODUCT_BUNDLE_IDENTIFIER_FOR_SHARE_EXTENSION)", infoPlist: infoPlist, - sources: [ //this is going to be a fuckfest… this WILL need to be organized and not have target files from other targets + sources: [ // This will need to be organized and not have target files from other targets "ObvMessengerShareExtension/*.swift", "ObvMessengerShareExtension/Operations/*.swift", "ObvMessenger/Constants/ObvMessengerConstants.swift", @@ -44,7 +45,6 @@ SUBQUERY ( "ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/DeletePersistedGroupV2Operation.swift", "ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/MarkPublishedDetailsOfGroupV2AsSeenOperation.swift", "ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/RemoveUpdateInProgressForGroupV2Operation.swift", - "ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdateCustomNameAndGroupV2PhotoOperation.swift", "ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdateGroupV2Operation.swift", "ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Deleting messages and discussions/WipeAllReadOnceAndLimitedVisibilityMessagesAfterLockOutOperation.swift", "ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Sending messages/SendUnprocessedPersistedMessageSentOperation.swift", @@ -113,8 +113,7 @@ SUBQUERY ( "ObvMessenger/VoIP/Helpers/CallSounds.swift", ], resources: [ - "ObvMessenger/*.lproj/*.strings", - "ObvMessenger/*.lproj/*.stringsdict", + "ObvMessenger/*.xcstrings", "ObvMessenger/Assets.xcassets", "ObvMessenger/LaunchScreen.storyboard", ], @@ -143,6 +142,7 @@ func createNotificationServiceExtension() -> Target { ], "CFBundleShortVersionString": "$(MARKETING_VERSION)", "CFBundleVersion": "$(CURRENT_PROJECT_VERSION)", + "NSHumanReadableCopyright": .init(stringLiteral: Constants.nsHumanReadableCopyrightValue), "CFBundleDisplayName": "$(OBV_BUNDLE_DISPLAY_NAME_FOR_NOTIFICATION_SERVICE_EXTENSION)", "OBV_APP_GROUP_IDENTIFIER": "$(OBV_APP_GROUP_IDENTIFIER)" ]) @@ -150,16 +150,14 @@ func createNotificationServiceExtension() -> Target { let target = Target.appExtension(name: "ObvMessengerNotificationServiceExtension", bundleIdentifier: "$(OBV_PRODUCT_BUNDLE_IDENTIFIER_FOR_NOTIFICATION_SERVICE_EXTENSION)", infoPlist: infoPlist, - sources: [ //this is going to be a fuckfest… this WILL need to be organized and not have target files from other targets + sources: [ "ObvMessenger/Constants/ObvMessengerConstants.swift", "ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/CreateOrUpdatePersistedGroupV2Operation.swift", "ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/DeletePersistedGroupV2Operation.swift", "ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/MarkPublishedDetailsOfGroupV2AsSeenOperation.swift", "ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/RemoveUpdateInProgressForGroupV2Operation.swift", - "ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdateCustomNameAndGroupV2PhotoOperation.swift", "ObvMessenger/Coordinators/ContactGroupCoordinator/Operations/UpdateGroupV2Operation.swift", "ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/CallLog/CleanCallLogContactsOperation.swift", - "ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/CallLog/ReportCallEventOperation.swift", "ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/CallLog/ReportEndCallOperation.swift", "ObvMessenger/Coordinators/PersistedDiscussionsUpdatesCoordinator/Operations/Receiving messages/ExtractReceivedExtendedPayloadOperation.swift", "ObvMessenger/CoreData/DataMigrationManagerForObvMessenger.swift", @@ -204,12 +202,8 @@ func createNotificationServiceExtension() -> Target { "ObvMessenger/VoIP/Call/GenericCall.swift", "ObvMessenger/VoIP/CallParticipant/CallParticipant.swift", "ObvMessenger/VoIP/CallParticipant/CallParticipantUpdateKind.swift", - "ObvMessenger/VoIP/CallReport.swift", "ObvMessenger/VoIP/Helpers/CallSounds.swift", - "ObvMessenger/VoIP/JSON Messages/WebRTCDataChannelMessageJSON.swift", - "ObvMessenger/VoIP/JSON Messages/WebRTCInnerMessageJSON.swift", "ObvMessenger/VoIP/VoIPNotification/CallUpdateKind.swift", - "ObvMessenger/VoIP/VoIPNotification/VoIPNotification.swift", "ObvMessengerNotificationServiceExtension/NotificationService.swift", ], resources: [ @@ -250,8 +244,7 @@ func createNotificationServiceExtension() -> Target { "ObvMessenger/Managers/UserNotificationManager/Sounds/Synth-Emotive/Synth-Emotive08.caf", "ObvMessenger/Managers/UserNotificationManager/Sounds/alarm-paranoid.caf", "ObvMessenger/Managers/UserNotificationManager/Sounds/Synth-FM/Synth-FM12.caf", - "ObvMessenger/*.lproj/*.strings", - "ObvMessenger/*.lproj/*.stringsdict", + "ObvMessenger/*.xcstrings", "ObvMessenger/Managers/UserNotificationManager/Sounds/Piano/Piano05.caf", "ObvMessenger/Managers/UserNotificationManager/Sounds/Oboe/Oboe13.caf", "ObvMessenger/Managers/UserNotificationManager/Sounds/Synth-Quantizer/Synth-Quantizer13.caf", @@ -608,6 +601,7 @@ func createIntentsServiceExtension() -> Target { "NSExtensionPrincipalClass" : "$(PRODUCT_MODULE_NAME).IntentHandler" ], "CFBundleShortVersionString": "$(MARKETING_VERSION)", + "NSHumanReadableCopyright": .init(stringLiteral: Constants.nsHumanReadableCopyrightValue), "CFBundleVersion": "$(CURRENT_PROJECT_VERSION)", "CFBundleDisplayName": "$(OBV_BUNDLE_DISPLAY_NAME_FOR_INTENTS_EXTENSION)", ]) @@ -620,7 +614,7 @@ func createIntentsServiceExtension() -> Target { "ObvMessengerIntentsExtension/IntentHandler.swift" ], resources: [], - entitlements: nil, + entitlements: "ObvMessengerIntentsExtension/ObvMessengerIntentsExtension.entitlements", dependencies: [ .sdk(name: "Intents", type: .framework, status: .required) ], @@ -630,16 +624,17 @@ func createIntentsServiceExtension() -> Target { return target } + func createApp(shareExtension: Target, notificationExtension: Target, - intentsExtension: Target) -> Target { + intentsExtension: Target, + devMode: Bool) -> Target { let infoPlist: InfoPlist = .extendingDefault(with: [ "BGTaskSchedulerPermittedIdentifiers": [ "io.olvid.background.tasks" ], "CFBundleDocumentTypes": [ [ - "CFBundleTypeIconFiles" : [], "CFBundleTypeName" : "com.adobe.pdf", "CFBundleTypeRole" : "None", "LSHandlerRank" : "Default", @@ -655,20 +650,40 @@ func createApp(shareExtension: Target, "CFBundleTypeName" : "public.comma-separated-values-text", "LSHandlerRank" : "Default", "LSItemContentTypes" : ["public.comma-separated-values-text"] - ] + ], + [ + "CFBundleTypeName" : "Microsoft Word 97 document", + "LSHandlerRank" : "Default", + "LSItemContentTypes" : ["com.microsoft.word.doc"] + ], + [ + "CFBundleTypeName" : "Microsoft Word document", + "LSHandlerRank" : "Default", + "LSItemContentTypes" : ["org.openxmlformats.wordprocessingml.document"] + ], + [ + "CFBundleTypeName" : "Microsoft Powerpoint document", + "LSHandlerRank" : "Default", + "LSItemContentTypes" : ["org.openxmlformats.presentationml.presentation"] + ], + [ + "CFBundleTypeName" : "Microsoft Excel document", + "LSHandlerRank" : "Default", + "LSItemContentTypes" : ["org.openxmlformats.spreadsheetml.sheet"] + ], ], "CFBundleURLTypes": [ [ "CFBundleTypeRole" : "Editor", "CFBundleURLSchemes" : [ - "olvid" + devMode ? "olvid.dev" : "olvid" ] ] ], "CFBundleDisplayName": "$(OBV_BUNDLE_DISPLAY_NAME)", "CFBundleShortVersionString": "$(MARKETING_VERSION)", + "NSHumanReadableCopyright": .init(stringLiteral: Constants.nsHumanReadableCopyrightValue), "CFBundleVersion": "$(CURRENT_PROJECT_VERSION)", - "HARDCODED_API_KEY": "$(HARDCODED_API_KEY)", "ITSAppUsesNonExemptEncryption": false, "LSApplicationCategoryType": "public.app-category.social-networking", "LSRequiresIPhoneOS": true, @@ -730,7 +745,8 @@ func createApp(shareExtension: Target, "UTExportedTypeDeclarations" : [ [ "UTTypeConformsTo" : [ - "public.item" + "public.data", + "public.content", ], "UTTypeDescription" : "Olvid Backup", "UTTypeIconFiles" : [], @@ -740,54 +756,109 @@ func createApp(shareExtension: Target, "olvidbackup" ] ] - ] - ] + ], + ], + "UTImportedTypeDeclarations" : [ + [ + "UTTypeDescription" : "Web Internet Location", + "UTTypeIdentifier" : "com.apple.web-internet-location", + "UTTypeConformsTo" : [ + "public.data", + ], + ], + [ + "UTTypeDescription" : "Microsoft Word 97 document", + "UTTypeIdentifier" : "com.microsoft.word.doc", + "UTTypeConformsTo" : [ + "public.data", + ], + "UTTypeTagSpecification" : [ + "public.filename-extension" : [ + "doc", + ], + ], + ], + [ + "UTTypeDescription" : "Microsoft Word document", + "UTTypeIdentifier" : "org.openxmlformats.wordprocessingml.document", + "UTTypeConformsTo" : [ + "public.data", + ], + "UTTypeTagSpecification" : [ + "public.filename-extension" : [ + "docx", + ], + ], + ], + [ + "UTTypeDescription" : "Microsoft Powerpoint document", + "UTTypeIdentifier" : "org.openxmlformats.presentationml.presentation", + "UTTypeConformsTo" : [ + "public.data", + ], + "UTTypeTagSpecification" : [ + "public.filename-extension" : [ + "pptx", + ], + ], + ], + [ + "UTTypeDescription" : "Microsoft Excel document", + "UTTypeIdentifier" : "org.openxmlformats.spreadsheetml.sheet", + "UTTypeConformsTo" : [ + "public.data", + ], + "UTTypeTagSpecification" : [ + "public.filename-extension" : [ + "xlsx", + ], + ], + ], + ], ]) - let dependencies: [TargetDependency] = { - let _base: [TargetDependency] = [ - .target(shareExtension), - .target(notificationExtension), - .target(intentsExtension), - .Engine.obvFlowManager, - .Engine.obvTypes, - .Engine.obvServerInterface, - .Modules.obvUI, - .Engine.obvNetworkFetchManager, - .Engine.bigInt, - .Engine.jws, - .Engine.obvIdentityManager, - .init(.webRTC), - .Engine.obvOperation, - .Engine.obvNotificationCenter, - .Engine.obvNetworkSendManager, - .Engine.obvEncoder, - .init(.orderedCollections), - .Engine.obvDatabaseManager, - .Engine.obvChannelManager, - .Engine.obvBackupManager, - .Engine.obvCrypto, - .Engine.obvEngine, - .Engine.obvProtocolManager, - .Modules.obvUICoreData, - .Engine.obvMetaManager, - .Modules.olvidUtils, - .Modules.Platform.base, - .Modules.Discussions.Mentions.AutoGrowingTextView.textViewDelegateProxy, - .Modules.Platform.uiKitAdditions, - .init(.appAuth), - .Modules.Discussions.attachmentsDropView, - .Modules.Components.textInputShortcutsResultView, - .Modules.Discussions.Mentions.Builders.composeMessage, - .Modules.Discussions.Mentions.Builders.textBubble, - .Modules.Discussions.Mentions.Builders.buildersShared, - .Modules.Discussions.scrollToBottomButton, - ] - - return _base - }() + let dependencies: [TargetDependency] = [ + .target(shareExtension), + .target(notificationExtension), + .target(intentsExtension), + .Engine.obvFlowManager, + .Engine.obvTypes, + .Engine.obvServerInterface, + .Modules.obvUI, + .Engine.obvNetworkFetchManager, + .Engine.bigInt, + .Engine.jws, + .Engine.obvIdentityManager, + .init(.webRTC), + .package(product: "AppAuth"), + .Engine.obvOperation, + .Engine.obvNotificationCenter, + .Engine.obvNetworkSendManager, + .Engine.obvEncoder, + //.init(.orderedCollections), + .Engine.obvDatabaseManager, + .Engine.obvChannelManager, + .Engine.obvBackupManager, + .Engine.obvSyncSnapshotManager, + .Engine.obvCrypto, + .Engine.obvEngine, + .Engine.obvProtocolManager, + .Modules.obvUICoreData, + //.Engine.obvMetaManager, + .Modules.olvidUtils, + .Modules.obvDesignSystem, + .Modules.obvSettings, + .Modules.Platform.base, + .Modules.Discussions.Mentions.AutoGrowingTextView.textViewDelegateProxy, + .Modules.Platform.uiKitAdditions, + .Modules.Components.textInputShortcutsResultView, + .Modules.Discussions.Mentions.Builders.composeMessage, + .Modules.Discussions.Mentions.Builders.textBubble, + .Modules.Discussions.Mentions.Builders.buildersShared, + .Modules.Discussions.scrollToBottomButton, + ] - let mainApp = Target.mainApp(name: "Olvid", + let mainApp = Target.mainApp(name: devMode ? "Olvid_dev" : "Olvid", infoPlist: infoPlist, sources: [ "ObvMessenger/**/*.swift", @@ -798,10 +869,8 @@ func createApp(shareExtension: Target, "ObvMessenger/**/*.mp3", "ObvMessenger/**/*.xib", "ObvMessenger/**/*.storyboard", - "ObvMessenger/**/*.lproj/*.strings", - "ObvMessenger/**/*.lproj/*.stringsdict", + "ObvMessenger/**/*.xcstrings", "ObvMessenger/**/*.lproj/AppIntentVocabulary.plist", - "ObvMessenger/**/*.lproj/*.strings", "ObvMessenger/Assets.xcassets", "ObvMessenger/Settings.bundle" ], @@ -814,7 +883,6 @@ func createApp(shareExtension: Target, additionalFiles: [ "ObvMessenger/**/*.md", "ObvMessenger/**/*.txt", - "TestConfiguration.storekit" ]) return mainApp @@ -829,12 +897,19 @@ let intentsExtension = createIntentsServiceExtension() let app = createApp(shareExtension: shareExtension, notificationExtension: notificationExtension, - intentsExtension: intentsExtension) + intentsExtension: intentsExtension, + devMode: false) + +let appDev = createApp(shareExtension: shareExtension, + notificationExtension: notificationExtension, + intentsExtension: intentsExtension, + devMode: true) let project = Project.createProject(name: "ObvMessenger", packages: [], targets: [ app, + appDev, shareExtension, notificationExtension, intentsExtension diff --git a/iOSClient/ObvMessenger/TestConfiguration.storekit b/iOSClient/ObvMessenger/TestConfiguration.storekit deleted file mode 100644 index fb4064e1..00000000 --- a/iOSClient/ObvMessenger/TestConfiguration.storekit +++ /dev/null @@ -1,54 +0,0 @@ -{ - "identifier" : "D2AEBB39", - "nonRenewingSubscriptions" : [ - - ], - "products" : [ - - ], - "settings" : { - - }, - "subscriptionGroups" : [ - { - "id" : "98BEABAA", - "localizations" : [ - - ], - "name" : "io.olvid.group.premium", - "subscriptions" : [ - { - "adHocOffers" : [ - - ], - "displayPrice" : "0.99", - "familyShareable" : false, - "groupNumber" : 1, - "internalID" : "C43ECCD9", - "introductoryOffer" : null, - "localizations" : [ - { - "description" : "Access to all premium features.", - "displayName" : "Premium features", - "locale" : "en_US" - }, - { - "description" : "Accès à toutes les fonctionnalités premimum.", - "displayName" : "Fonctionnalités Premium", - "locale" : "fr" - } - ], - "productID" : "io.olvid.premium_2020_monthly", - "recurringSubscriptionPeriod" : "P1M", - "referenceName" : "Olvid Premium Features", - "subscriptionGroupID" : "98BEABAA", - "type" : "RecurringSubscription" - } - ] - } - ], - "version" : { - "major" : 1, - "minor" : 1 - } -} diff --git a/tuist/Config.swift b/tuist/Config.swift index 3a7659a0..32bfc771 100644 --- a/tuist/Config.swift +++ b/tuist/Config.swift @@ -4,16 +4,19 @@ import Foundation let xcodeVersionFileVersion = try! { let currentPath = (#file as NSString).deletingLastPathComponent - let xcodesVersionFilePath = currentPath.appending("/../.xcode-version") + let xcodesVersionFilePath = (currentPath.appending("/../.xcode-version") as NSString) + .resolvingSymlinksInPath guard FileManager.default.fileExists(atPath: xcodesVersionFilePath) else { fatalError("expected \(xcodesVersionFilePath) to exist") } return try String(contentsOfFile: xcodesVersionFilePath) + .trimmingCharacters(in: .whitespacesAndNewlines) }() let config = Config( - compatibleXcodeVersions: .exact(.init(stringLiteral: xcodeVersionFileVersion)), + //compatibleXcodeVersions: .exact(.init(stringLiteral: xcodeVersionFileVersion)), + compatibleXcodeVersions: .all, generationOptions: .options(resolveDependenciesWithSystemScm: true) ) diff --git a/tuist/Dependencies.swift b/tuist/Dependencies.swift index 12416848..b5789e88 100644 --- a/tuist/Dependencies.swift +++ b/tuist/Dependencies.swift @@ -4,5 +4,5 @@ import ProjectDescriptionHelpers let dependencies = Dependencies( carthage: .init(TargetDependency.CarthageDependency.allCases), swiftPackageManager: .init(TargetDependency.SPMDependency.allCases), - platforms: [.iOS] + platforms: [.iOS, .macOS] ) diff --git a/tuist/Dependencies/Lockfiles/Cartfile.resolved b/tuist/Dependencies/Lockfiles/Cartfile.resolved deleted file mode 100644 index 4fc74403..00000000 --- a/tuist/Dependencies/Lockfiles/Cartfile.resolved +++ /dev/null @@ -1 +0,0 @@ -github "olvid-io/AppAuth-iOS-for-Olvid" "0d90e24667c4a1fd9a84edb27ce966cc395f1314" diff --git a/tuist/Dependencies/Lockfiles/Package.resolved b/tuist/Dependencies/Lockfiles/Package.resolved deleted file mode 100644 index 2bb33884..00000000 --- a/tuist/Dependencies/Lockfiles/Package.resolved +++ /dev/null @@ -1,23 +0,0 @@ -{ - "pins" : [ - { - "identity" : "joseswift", - "kind" : "remoteSourceControl", - "location" : "https://github.com/airsidemobile/JOSESwift.git", - "state" : { - "revision" : "10ed3b6736def7c26eb87135466b1cb46ea7e37f", - "version" : "2.4.0" - } - }, - { - "identity" : "swift-collections", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-collections.git", - "state" : { - "revision" : "937e904258d22af6e447a0b72c0bc67583ef64a2", - "version" : "1.0.4" - } - } - ], - "version" : 2 -} diff --git a/tuist/GMPSPM/GMP.xcframework/Info.plist b/tuist/GMPSPM/GMP.xcframework/Info.plist index 27a7a503..88f5c723 100644 --- a/tuist/GMPSPM/GMP.xcframework/Info.plist +++ b/tuist/GMPSPM/GMP.xcframework/Info.plist @@ -4,6 +4,23 @@ AvailableLibraries + + HeadersPath + Headers + LibraryIdentifier + ios-arm64_x86_64-maccatalyst + LibraryPath + libgmp.a + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + maccatalyst + HeadersPath Headers diff --git a/tuist/GMPSPM/GMP.xcframework/ios-arm64/Headers/gmp.h b/tuist/GMPSPM/GMP.xcframework/ios-arm64/Headers/gmp.h index 3fd30559..db976b96 100644 --- a/tuist/GMPSPM/GMP.xcframework/ios-arm64/Headers/gmp.h +++ b/tuist/GMPSPM/GMP.xcframework/ios-arm64/Headers/gmp.h @@ -2323,7 +2323,7 @@ enum }; /* Define CC and CFLAGS which were used to build this version of GMP */ -#define __GMP_CC "/Applications/Xcode-14.2.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" +#define __GMP_CC "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" #define __GMP_CFLAGS "-O2 -pedantic -march=armv8-a" /* Major version number is the value of __GNU_MP__ too, above. */ diff --git a/tuist/GMPSPM/GMP.xcframework/ios-arm64/libgmp.a b/tuist/GMPSPM/GMP.xcframework/ios-arm64/libgmp.a index 28769f56..5534859c 100644 --- a/tuist/GMPSPM/GMP.xcframework/ios-arm64/libgmp.a +++ b/tuist/GMPSPM/GMP.xcframework/ios-arm64/libgmp.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6c654ad2ce40feebba458fe5d6d5f06feece1cc3cddbcf8799bde8db1f6adabe -size 3312984 +oid sha256:95fa151b49d78a9e79d344a9485758cdff36374c6f2ddcfbf713eb63d0bbad53 +size 3372152 diff --git a/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-maccatalyst/Headers/gmp.h b/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-maccatalyst/Headers/gmp.h new file mode 100644 index 00000000..db976b96 --- /dev/null +++ b/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-maccatalyst/Headers/gmp.h @@ -0,0 +1,2336 @@ +/* Definitions for GNU multiple precision functions. -*- mode: c -*- + +Copyright 1991, 1993-1997, 1999-2016, 2020 Free Software Foundation, Inc. + +This file is part of the GNU MP Library. + +The GNU MP Library is free software; you can redistribute it and/or modify +it under the terms of either: + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at your + option) any later version. + +or + + * the GNU General Public License as published by the Free Software + Foundation; either version 2 of the License, or (at your option) any + later version. + +or both in parallel, as here. + +The GNU MP Library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received copies of the GNU General Public License and the +GNU Lesser General Public License along with the GNU MP Library. If not, +see https://www.gnu.org/licenses/. */ + +#ifndef __GMP_H__ + +#if defined (__cplusplus) +#include /* for std::istream, std::ostream, std::string */ +#include +#endif + + +/* Instantiated by configure. */ +#if ! defined (__GMP_WITHIN_CONFIGURE) +#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 +#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 0 +#define GMP_LIMB_BITS 64 +#define GMP_NAIL_BITS 0 +#endif +#define GMP_NUMB_BITS (GMP_LIMB_BITS - GMP_NAIL_BITS) +#define GMP_NUMB_MASK ((~ __GMP_CAST (mp_limb_t, 0)) >> GMP_NAIL_BITS) +#define GMP_NUMB_MAX GMP_NUMB_MASK +#define GMP_NAIL_MASK (~ GMP_NUMB_MASK) + + +#ifndef __GNU_MP__ +#define __GNU_MP__ 6 + +#include /* for size_t */ +#include + +/* Instantiated by configure. */ +#if ! defined (__GMP_WITHIN_CONFIGURE) +/* #undef _LONG_LONG_LIMB */ +#define __GMP_LIBGMP_DLL 0 +#endif + + +/* __GMP_DECLSPEC supports Windows DLL versions of libgmp, and is empty in + all other circumstances. + + When compiling objects for libgmp, __GMP_DECLSPEC is an export directive, + or when compiling for an application it's an import directive. The two + cases are differentiated by __GMP_WITHIN_GMP defined by the GMP Makefiles + (and not defined from an application). + + __GMP_DECLSPEC_XX is similarly used for libgmpxx. __GMP_WITHIN_GMPXX + indicates when building libgmpxx, and in that case libgmpxx functions are + exports, but libgmp functions which might get called are imports. + + Libtool DLL_EXPORT define is not used. + + There's no attempt to support GMP built both static and DLL. Doing so + would mean applications would have to tell us which of the two is going + to be used when linking, and that seems very tedious and error prone if + using GMP by hand, and equally tedious from a package since autoconf and + automake don't give much help. + + __GMP_DECLSPEC is required on all documented global functions and + variables, the various internals in gmp-impl.h etc can be left unadorned. + But internals used by the test programs or speed measuring programs + should have __GMP_DECLSPEC, and certainly constants or variables must + have it or the wrong address will be resolved. + + In gcc __declspec can go at either the start or end of a prototype. + + In Microsoft C __declspec must go at the start, or after the type like + void __declspec(...) *foo()". There's no __dllexport or anything to + guard against someone foolish #defining dllexport. _export used to be + available, but no longer. + + In Borland C _export still exists, but needs to go after the type, like + "void _export foo();". Would have to change the __GMP_DECLSPEC syntax to + make use of that. Probably more trouble than it's worth. */ + +#if defined (__GNUC__) +#define __GMP_DECLSPEC_EXPORT __declspec(__dllexport__) +#define __GMP_DECLSPEC_IMPORT __declspec(__dllimport__) +#endif +#if defined (_MSC_VER) || defined (__BORLANDC__) +#define __GMP_DECLSPEC_EXPORT __declspec(dllexport) +#define __GMP_DECLSPEC_IMPORT __declspec(dllimport) +#endif +#ifdef __WATCOMC__ +#define __GMP_DECLSPEC_EXPORT __export +#define __GMP_DECLSPEC_IMPORT __import +#endif +#ifdef __IBMC__ +#define __GMP_DECLSPEC_EXPORT _Export +#define __GMP_DECLSPEC_IMPORT _Import +#endif + +#if __GMP_LIBGMP_DLL +#ifdef __GMP_WITHIN_GMP +/* compiling to go into a DLL libgmp */ +#define __GMP_DECLSPEC __GMP_DECLSPEC_EXPORT +#else +/* compiling to go into an application which will link to a DLL libgmp */ +#define __GMP_DECLSPEC __GMP_DECLSPEC_IMPORT +#endif +#else +/* all other cases */ +#define __GMP_DECLSPEC +#endif + + +#ifdef __GMP_SHORT_LIMB +typedef unsigned int mp_limb_t; +typedef int mp_limb_signed_t; +#else +#ifdef _LONG_LONG_LIMB +typedef unsigned long long int mp_limb_t; +typedef long long int mp_limb_signed_t; +#else +typedef unsigned long int mp_limb_t; +typedef long int mp_limb_signed_t; +#endif +#endif +typedef unsigned long int mp_bitcnt_t; + +/* For reference, note that the name __mpz_struct gets into C++ mangled + function names, which means although the "__" suggests an internal, we + must leave this name for binary compatibility. */ +typedef struct +{ + int _mp_alloc; /* Number of *limbs* allocated and pointed + to by the _mp_d field. */ + int _mp_size; /* abs(_mp_size) is the number of limbs the + last field points to. If _mp_size is + negative this is a negative number. */ + mp_limb_t *_mp_d; /* Pointer to the limbs. */ +} __mpz_struct; + +#endif /* __GNU_MP__ */ + + +typedef __mpz_struct MP_INT; /* gmp 1 source compatibility */ +typedef __mpz_struct mpz_t[1]; + +typedef mp_limb_t * mp_ptr; +typedef const mp_limb_t * mp_srcptr; +#if defined (_CRAY) && ! defined (_CRAYMPP) +/* plain `int' is much faster (48 bits) */ +#define __GMP_MP_SIZE_T_INT 1 +typedef int mp_size_t; +typedef int mp_exp_t; +#else +#define __GMP_MP_SIZE_T_INT 0 +typedef long int mp_size_t; +typedef long int mp_exp_t; +#endif + +typedef struct +{ + __mpz_struct _mp_num; + __mpz_struct _mp_den; +} __mpq_struct; + +typedef __mpq_struct MP_RAT; /* gmp 1 source compatibility */ +typedef __mpq_struct mpq_t[1]; + +typedef struct +{ + int _mp_prec; /* Max precision, in number of `mp_limb_t's. + Set by mpf_init and modified by + mpf_set_prec. The area pointed to by the + _mp_d field contains `prec' + 1 limbs. */ + int _mp_size; /* abs(_mp_size) is the number of limbs the + last field points to. If _mp_size is + negative this is a negative number. */ + mp_exp_t _mp_exp; /* Exponent, in the base of `mp_limb_t'. */ + mp_limb_t *_mp_d; /* Pointer to the limbs. */ +} __mpf_struct; + +/* typedef __mpf_struct MP_FLOAT; */ +typedef __mpf_struct mpf_t[1]; + +/* Available random number generation algorithms. */ +typedef enum +{ + GMP_RAND_ALG_DEFAULT = 0, + GMP_RAND_ALG_LC = GMP_RAND_ALG_DEFAULT /* Linear congruential. */ +} gmp_randalg_t; + +/* Random state struct. */ +typedef struct +{ + mpz_t _mp_seed; /* _mp_d member points to state of the generator. */ + gmp_randalg_t _mp_alg; /* Currently unused. */ + union { + void *_mp_lc; /* Pointer to function pointers structure. */ + } _mp_algdata; +} __gmp_randstate_struct; +typedef __gmp_randstate_struct gmp_randstate_t[1]; + +/* Types for function declarations in gmp files. */ +/* ??? Should not pollute user name space with these ??? */ +typedef const __mpz_struct *mpz_srcptr; +typedef __mpz_struct *mpz_ptr; +typedef const __mpf_struct *mpf_srcptr; +typedef __mpf_struct *mpf_ptr; +typedef const __mpq_struct *mpq_srcptr; +typedef __mpq_struct *mpq_ptr; + + +#if __GMP_LIBGMP_DLL +#ifdef __GMP_WITHIN_GMPXX +/* compiling to go into a DLL libgmpxx */ +#define __GMP_DECLSPEC_XX __GMP_DECLSPEC_EXPORT +#else +/* compiling to go into a application which will link to a DLL libgmpxx */ +#define __GMP_DECLSPEC_XX __GMP_DECLSPEC_IMPORT +#endif +#else +/* all other cases */ +#define __GMP_DECLSPEC_XX +#endif + + +#ifndef __MPN +#define __MPN(x) __gmpn_##x +#endif + +/* For reference, "defined(EOF)" cannot be used here. In g++ 2.95.4, + defines EOF but not FILE. */ +#if defined (FILE) \ + || defined (H_STDIO) \ + || defined (_H_STDIO) /* AIX */ \ + || defined (_STDIO_H) /* glibc, Sun, SCO */ \ + || defined (_STDIO_H_) /* BSD, OSF */ \ + || defined (__STDIO_H) /* Borland */ \ + || defined (__STDIO_H__) /* IRIX */ \ + || defined (_STDIO_INCLUDED) /* HPUX */ \ + || defined (__dj_include_stdio_h_) /* DJGPP */ \ + || defined (_FILE_DEFINED) /* Microsoft */ \ + || defined (__STDIO__) /* Apple MPW MrC */ \ + || defined (_MSL_STDIO_H) /* Metrowerks */ \ + || defined (_STDIO_H_INCLUDED) /* QNX4 */ \ + || defined (_ISO_STDIO_ISO_H) /* Sun C++ */ \ + || defined (__STDIO_LOADED) /* VMS */ \ + || defined (__DEFINED_FILE) /* musl */ +#define _GMP_H_HAVE_FILE 1 +#endif + +/* In ISO C, if a prototype involving "struct obstack *" is given without + that structure defined, then the struct is scoped down to just the + prototype, causing a conflict if it's subsequently defined for real. So + only give prototypes if we've got obstack.h. */ +#if defined (_OBSTACK_H) /* glibc */ +#define _GMP_H_HAVE_OBSTACK 1 +#endif + +/* The prototypes for gmp_vprintf etc are provided only if va_list is defined, + via an application having included . Usually va_list is a typedef + so can't be tested directly, but C99 specifies that va_start is a macro. + + will define some sort of va_list for vprintf and vfprintf, but + let's not bother trying to use that since it's not standard and since + application uses for gmp_vprintf etc will almost certainly require the + whole anyway. */ + +#ifdef va_start +#define _GMP_H_HAVE_VA_LIST 1 +#endif + +/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */ +#if defined (__GNUC__) && defined (__GNUC_MINOR__) +#define __GMP_GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +#else +#define __GMP_GNUC_PREREQ(maj, min) 0 +#endif + +/* "pure" is in gcc 2.96 and up, see "(gcc)Function Attributes". Basically + it means a function does nothing but examine its arguments and memory + (global or via arguments) to generate a return value, but changes nothing + and has no side-effects. __GMP_NO_ATTRIBUTE_CONST_PURE lets + tune/common.c etc turn this off when trying to write timing loops. */ +#if __GMP_GNUC_PREREQ (2,96) && ! defined (__GMP_NO_ATTRIBUTE_CONST_PURE) +#define __GMP_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#else +#define __GMP_ATTRIBUTE_PURE +#endif + + +/* __GMP_CAST allows us to use static_cast in C++, so our macros are clean + to "g++ -Wold-style-cast". + + Casts in "extern inline" code within an extern "C" block don't induce + these warnings, so __GMP_CAST only needs to be used on documented + macros. */ + +#ifdef __cplusplus +#define __GMP_CAST(type, expr) (static_cast (expr)) +#else +#define __GMP_CAST(type, expr) ((type) (expr)) +#endif + + +/* An empty "throw ()" means the function doesn't throw any C++ exceptions, + this can save some stack frame info in applications. + + Currently it's given only on functions which never divide-by-zero etc, + don't allocate memory, and are expected to never need to allocate memory. + This leaves open the possibility of a C++ throw from a future GMP + exceptions scheme. + + mpz_set_ui etc are omitted to leave open the lazy allocation scheme + described in doc/tasks.html. mpz_get_d etc are omitted to leave open + exceptions for float overflows. + + Note that __GMP_NOTHROW must be given on any inlines the same as on their + prototypes (for g++ at least, where they're used together). Note also + that g++ 3.0 demands that __GMP_NOTHROW is before other attributes like + __GMP_ATTRIBUTE_PURE. */ + +#if defined (__cplusplus) +#if __cplusplus >= 201103L +#define __GMP_NOTHROW noexcept +#else +#define __GMP_NOTHROW throw () +#endif +#else +#define __GMP_NOTHROW +#endif + + +/* PORTME: What other compilers have a useful "extern inline"? "static + inline" would be an acceptable substitute if the compiler (or linker) + discards unused statics. */ + + /* gcc has __inline__ in all modes, including strict ansi. Give a prototype + for an inline too, so as to correctly specify "dllimport" on windows, in + case the function is called rather than inlined. + GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. */ +#ifdef __GNUC__ +#if (defined __GNUC_STDC_INLINE__) || (__GNUC__ == 4 && __GNUC_MINOR__ == 2) \ + || (defined __GNUC_GNU_INLINE__ && defined __cplusplus) +#define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__)) +#else +#define __GMP_EXTERN_INLINE extern __inline__ +#endif +#define __GMP_INLINE_PROTOTYPES 1 +#endif + +/* DEC C (eg. version 5.9) supports "static __inline foo()", even in -std1 + strict ANSI mode. Inlining is done even when not optimizing (ie. -O0 + mode, which is the default), but an unnecessary local copy of foo is + emitted unless -O is used. "extern __inline" is accepted, but the + "extern" appears to be ignored, ie. it becomes a plain global function + but which is inlined within its file. Don't know if all old versions of + DEC C supported __inline, but as a start let's do the right thing for + current versions. */ +#ifdef __DECC +#define __GMP_EXTERN_INLINE static __inline +#endif + +/* SCO OpenUNIX 8 cc supports "static inline foo()" but not in -Xc strict + ANSI mode (__STDC__ is 1 in that mode). Inlining only actually takes + place under -O. Without -O "foo" seems to be emitted whether it's used + or not, which is wasteful. "extern inline foo()" isn't useful, the + "extern" is apparently ignored, so foo is inlined if possible but also + emitted as a global, which causes multiple definition errors when + building a shared libgmp. */ +#ifdef __SCO_VERSION__ +#if __SCO_VERSION__ > 400000000 && __STDC__ != 1 \ + && ! defined (__GMP_EXTERN_INLINE) +#define __GMP_EXTERN_INLINE static inline +#endif +#endif + +/* Microsoft's C compiler accepts __inline */ +#ifdef _MSC_VER +#define __GMP_EXTERN_INLINE __inline +#endif + +/* Recent enough Sun C compilers want "inline" */ +#if defined (__SUNPRO_C) && __SUNPRO_C >= 0x560 \ + && ! defined (__GMP_EXTERN_INLINE) +#define __GMP_EXTERN_INLINE inline +#endif + +/* Somewhat older Sun C compilers want "static inline" */ +#if defined (__SUNPRO_C) && __SUNPRO_C >= 0x540 \ + && ! defined (__GMP_EXTERN_INLINE) +#define __GMP_EXTERN_INLINE static inline +#endif + + +/* C++ always has "inline" and since it's a normal feature the linker should + discard duplicate non-inlined copies, or if it doesn't then that's a + problem for everyone, not just GMP. */ +#if defined (__cplusplus) && ! defined (__GMP_EXTERN_INLINE) +#define __GMP_EXTERN_INLINE inline +#endif + +/* Don't do any inlining within a configure run, since if the compiler ends + up emitting copies of the code into the object file it can end up + demanding the various support routines (like mpn_popcount) for linking, + making the "alloca" test and perhaps others fail. And on hppa ia64 a + pre-release gcc 3.2 was seen not respecting the "extern" in "extern + __inline__", triggering this problem too. */ +#if defined (__GMP_WITHIN_CONFIGURE) && ! __GMP_WITHIN_CONFIGURE_INLINE +#undef __GMP_EXTERN_INLINE +#endif + +/* By default, don't give a prototype when there's going to be an inline + version. Note in particular that Cray C++ objects to the combination of + prototype and inline. */ +#ifdef __GMP_EXTERN_INLINE +#ifndef __GMP_INLINE_PROTOTYPES +#define __GMP_INLINE_PROTOTYPES 0 +#endif +#else +#define __GMP_INLINE_PROTOTYPES 1 +#endif + + +#define __GMP_ABS(x) ((x) >= 0 ? (x) : -(x)) +#define __GMP_MAX(h,i) ((h) > (i) ? (h) : (i)) + + +/* __builtin_expect is in gcc 3.0, and not in 2.95. */ +#if __GMP_GNUC_PREREQ (3,0) +#define __GMP_LIKELY(cond) __builtin_expect ((cond) != 0, 1) +#define __GMP_UNLIKELY(cond) __builtin_expect ((cond) != 0, 0) +#else +#define __GMP_LIKELY(cond) (cond) +#define __GMP_UNLIKELY(cond) (cond) +#endif + +#ifdef _CRAY +#define __GMP_CRAY_Pragma(str) _Pragma (str) +#else +#define __GMP_CRAY_Pragma(str) +#endif + + +/* Allow direct user access to numerator and denominator of an mpq_t object. */ +#define mpq_numref(Q) (&((Q)->_mp_num)) +#define mpq_denref(Q) (&((Q)->_mp_den)) + + +#if defined (__cplusplus) +extern "C" { +using std::FILE; +#endif + +#define mp_set_memory_functions __gmp_set_memory_functions +__GMP_DECLSPEC void mp_set_memory_functions (void *(*) (size_t), + void *(*) (void *, size_t, size_t), + void (*) (void *, size_t)) __GMP_NOTHROW; + +#define mp_get_memory_functions __gmp_get_memory_functions +__GMP_DECLSPEC void mp_get_memory_functions (void *(**) (size_t), + void *(**) (void *, size_t, size_t), + void (**) (void *, size_t)) __GMP_NOTHROW; + +#define mp_bits_per_limb __gmp_bits_per_limb +__GMP_DECLSPEC extern const int mp_bits_per_limb; + +#define gmp_errno __gmp_errno +__GMP_DECLSPEC extern int gmp_errno; + +#define gmp_version __gmp_version +__GMP_DECLSPEC extern const char * const gmp_version; + + +/**************** Random number routines. ****************/ + +/* obsolete */ +#define gmp_randinit __gmp_randinit +__GMP_DECLSPEC void gmp_randinit (gmp_randstate_t, gmp_randalg_t, ...); + +#define gmp_randinit_default __gmp_randinit_default +__GMP_DECLSPEC void gmp_randinit_default (gmp_randstate_t); + +#define gmp_randinit_lc_2exp __gmp_randinit_lc_2exp +__GMP_DECLSPEC void gmp_randinit_lc_2exp (gmp_randstate_t, mpz_srcptr, unsigned long int, mp_bitcnt_t); + +#define gmp_randinit_lc_2exp_size __gmp_randinit_lc_2exp_size +__GMP_DECLSPEC int gmp_randinit_lc_2exp_size (gmp_randstate_t, mp_bitcnt_t); + +#define gmp_randinit_mt __gmp_randinit_mt +__GMP_DECLSPEC void gmp_randinit_mt (gmp_randstate_t); + +#define gmp_randinit_set __gmp_randinit_set +__GMP_DECLSPEC void gmp_randinit_set (gmp_randstate_t, const __gmp_randstate_struct *); + +#define gmp_randseed __gmp_randseed +__GMP_DECLSPEC void gmp_randseed (gmp_randstate_t, mpz_srcptr); + +#define gmp_randseed_ui __gmp_randseed_ui +__GMP_DECLSPEC void gmp_randseed_ui (gmp_randstate_t, unsigned long int); + +#define gmp_randclear __gmp_randclear +__GMP_DECLSPEC void gmp_randclear (gmp_randstate_t); + +#define gmp_urandomb_ui __gmp_urandomb_ui +__GMP_DECLSPEC unsigned long gmp_urandomb_ui (gmp_randstate_t, unsigned long); + +#define gmp_urandomm_ui __gmp_urandomm_ui +__GMP_DECLSPEC unsigned long gmp_urandomm_ui (gmp_randstate_t, unsigned long); + + +/**************** Formatted output routines. ****************/ + +#define gmp_asprintf __gmp_asprintf +__GMP_DECLSPEC int gmp_asprintf (char **, const char *, ...); + +#define gmp_fprintf __gmp_fprintf +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC int gmp_fprintf (FILE *, const char *, ...); +#endif + +#define gmp_obstack_printf __gmp_obstack_printf +#if defined (_GMP_H_HAVE_OBSTACK) +__GMP_DECLSPEC int gmp_obstack_printf (struct obstack *, const char *, ...); +#endif + +#define gmp_obstack_vprintf __gmp_obstack_vprintf +#if defined (_GMP_H_HAVE_OBSTACK) && defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_obstack_vprintf (struct obstack *, const char *, va_list); +#endif + +#define gmp_printf __gmp_printf +__GMP_DECLSPEC int gmp_printf (const char *, ...); + +#define gmp_snprintf __gmp_snprintf +__GMP_DECLSPEC int gmp_snprintf (char *, size_t, const char *, ...); + +#define gmp_sprintf __gmp_sprintf +__GMP_DECLSPEC int gmp_sprintf (char *, const char *, ...); + +#define gmp_vasprintf __gmp_vasprintf +#if defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vasprintf (char **, const char *, va_list); +#endif + +#define gmp_vfprintf __gmp_vfprintf +#if defined (_GMP_H_HAVE_FILE) && defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vfprintf (FILE *, const char *, va_list); +#endif + +#define gmp_vprintf __gmp_vprintf +#if defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vprintf (const char *, va_list); +#endif + +#define gmp_vsnprintf __gmp_vsnprintf +#if defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vsnprintf (char *, size_t, const char *, va_list); +#endif + +#define gmp_vsprintf __gmp_vsprintf +#if defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vsprintf (char *, const char *, va_list); +#endif + + +/**************** Formatted input routines. ****************/ + +#define gmp_fscanf __gmp_fscanf +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC int gmp_fscanf (FILE *, const char *, ...); +#endif + +#define gmp_scanf __gmp_scanf +__GMP_DECLSPEC int gmp_scanf (const char *, ...); + +#define gmp_sscanf __gmp_sscanf +__GMP_DECLSPEC int gmp_sscanf (const char *, const char *, ...); + +#define gmp_vfscanf __gmp_vfscanf +#if defined (_GMP_H_HAVE_FILE) && defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vfscanf (FILE *, const char *, va_list); +#endif + +#define gmp_vscanf __gmp_vscanf +#if defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vscanf (const char *, va_list); +#endif + +#define gmp_vsscanf __gmp_vsscanf +#if defined (_GMP_H_HAVE_VA_LIST) +__GMP_DECLSPEC int gmp_vsscanf (const char *, const char *, va_list); +#endif + + +/**************** Integer (i.e. Z) routines. ****************/ + +#define _mpz_realloc __gmpz_realloc +#define mpz_realloc __gmpz_realloc +__GMP_DECLSPEC void *_mpz_realloc (mpz_ptr, mp_size_t); + +#define mpz_abs __gmpz_abs +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_abs) +__GMP_DECLSPEC void mpz_abs (mpz_ptr, mpz_srcptr); +#endif + +#define mpz_add __gmpz_add +__GMP_DECLSPEC void mpz_add (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_add_ui __gmpz_add_ui +__GMP_DECLSPEC void mpz_add_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_addmul __gmpz_addmul +__GMP_DECLSPEC void mpz_addmul (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_addmul_ui __gmpz_addmul_ui +__GMP_DECLSPEC void mpz_addmul_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_and __gmpz_and +__GMP_DECLSPEC void mpz_and (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_array_init __gmpz_array_init +__GMP_DECLSPEC void mpz_array_init (mpz_ptr, mp_size_t, mp_size_t); + +#define mpz_bin_ui __gmpz_bin_ui +__GMP_DECLSPEC void mpz_bin_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_bin_uiui __gmpz_bin_uiui +__GMP_DECLSPEC void mpz_bin_uiui (mpz_ptr, unsigned long int, unsigned long int); + +#define mpz_cdiv_q __gmpz_cdiv_q +__GMP_DECLSPEC void mpz_cdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_cdiv_q_2exp __gmpz_cdiv_q_2exp +__GMP_DECLSPEC void mpz_cdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); + +#define mpz_cdiv_q_ui __gmpz_cdiv_q_ui +__GMP_DECLSPEC unsigned long int mpz_cdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_cdiv_qr __gmpz_cdiv_qr +__GMP_DECLSPEC void mpz_cdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_cdiv_qr_ui __gmpz_cdiv_qr_ui +__GMP_DECLSPEC unsigned long int mpz_cdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_cdiv_r __gmpz_cdiv_r +__GMP_DECLSPEC void mpz_cdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_cdiv_r_2exp __gmpz_cdiv_r_2exp +__GMP_DECLSPEC void mpz_cdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); + +#define mpz_cdiv_r_ui __gmpz_cdiv_r_ui +__GMP_DECLSPEC unsigned long int mpz_cdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_cdiv_ui __gmpz_cdiv_ui +__GMP_DECLSPEC unsigned long int mpz_cdiv_ui (mpz_srcptr, unsigned long int) __GMP_ATTRIBUTE_PURE; + +#define mpz_clear __gmpz_clear +__GMP_DECLSPEC void mpz_clear (mpz_ptr); + +#define mpz_clears __gmpz_clears +__GMP_DECLSPEC void mpz_clears (mpz_ptr, ...); + +#define mpz_clrbit __gmpz_clrbit +__GMP_DECLSPEC void mpz_clrbit (mpz_ptr, mp_bitcnt_t); + +#define mpz_cmp __gmpz_cmp +__GMP_DECLSPEC int mpz_cmp (mpz_srcptr, mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_cmp_d __gmpz_cmp_d +__GMP_DECLSPEC int mpz_cmp_d (mpz_srcptr, double) __GMP_ATTRIBUTE_PURE; + +#define _mpz_cmp_si __gmpz_cmp_si +__GMP_DECLSPEC int _mpz_cmp_si (mpz_srcptr, signed long int) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define _mpz_cmp_ui __gmpz_cmp_ui +__GMP_DECLSPEC int _mpz_cmp_ui (mpz_srcptr, unsigned long int) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_cmpabs __gmpz_cmpabs +__GMP_DECLSPEC int mpz_cmpabs (mpz_srcptr, mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_cmpabs_d __gmpz_cmpabs_d +__GMP_DECLSPEC int mpz_cmpabs_d (mpz_srcptr, double) __GMP_ATTRIBUTE_PURE; + +#define mpz_cmpabs_ui __gmpz_cmpabs_ui +__GMP_DECLSPEC int mpz_cmpabs_ui (mpz_srcptr, unsigned long int) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_com __gmpz_com +__GMP_DECLSPEC void mpz_com (mpz_ptr, mpz_srcptr); + +#define mpz_combit __gmpz_combit +__GMP_DECLSPEC void mpz_combit (mpz_ptr, mp_bitcnt_t); + +#define mpz_congruent_p __gmpz_congruent_p +__GMP_DECLSPEC int mpz_congruent_p (mpz_srcptr, mpz_srcptr, mpz_srcptr) __GMP_ATTRIBUTE_PURE; + +#define mpz_congruent_2exp_p __gmpz_congruent_2exp_p +__GMP_DECLSPEC int mpz_congruent_2exp_p (mpz_srcptr, mpz_srcptr, mp_bitcnt_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_congruent_ui_p __gmpz_congruent_ui_p +__GMP_DECLSPEC int mpz_congruent_ui_p (mpz_srcptr, unsigned long, unsigned long) __GMP_ATTRIBUTE_PURE; + +#define mpz_divexact __gmpz_divexact +__GMP_DECLSPEC void mpz_divexact (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_divexact_ui __gmpz_divexact_ui +__GMP_DECLSPEC void mpz_divexact_ui (mpz_ptr, mpz_srcptr, unsigned long); + +#define mpz_divisible_p __gmpz_divisible_p +__GMP_DECLSPEC int mpz_divisible_p (mpz_srcptr, mpz_srcptr) __GMP_ATTRIBUTE_PURE; + +#define mpz_divisible_ui_p __gmpz_divisible_ui_p +__GMP_DECLSPEC int mpz_divisible_ui_p (mpz_srcptr, unsigned long) __GMP_ATTRIBUTE_PURE; + +#define mpz_divisible_2exp_p __gmpz_divisible_2exp_p +__GMP_DECLSPEC int mpz_divisible_2exp_p (mpz_srcptr, mp_bitcnt_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_dump __gmpz_dump +__GMP_DECLSPEC void mpz_dump (mpz_srcptr); + +#define mpz_export __gmpz_export +__GMP_DECLSPEC void *mpz_export (void *, size_t *, int, size_t, int, size_t, mpz_srcptr); + +#define mpz_fac_ui __gmpz_fac_ui +__GMP_DECLSPEC void mpz_fac_ui (mpz_ptr, unsigned long int); + +#define mpz_2fac_ui __gmpz_2fac_ui +__GMP_DECLSPEC void mpz_2fac_ui (mpz_ptr, unsigned long int); + +#define mpz_mfac_uiui __gmpz_mfac_uiui +__GMP_DECLSPEC void mpz_mfac_uiui (mpz_ptr, unsigned long int, unsigned long int); + +#define mpz_primorial_ui __gmpz_primorial_ui +__GMP_DECLSPEC void mpz_primorial_ui (mpz_ptr, unsigned long int); + +#define mpz_fdiv_q __gmpz_fdiv_q +__GMP_DECLSPEC void mpz_fdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_fdiv_q_2exp __gmpz_fdiv_q_2exp +__GMP_DECLSPEC void mpz_fdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); + +#define mpz_fdiv_q_ui __gmpz_fdiv_q_ui +__GMP_DECLSPEC unsigned long int mpz_fdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_fdiv_qr __gmpz_fdiv_qr +__GMP_DECLSPEC void mpz_fdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_fdiv_qr_ui __gmpz_fdiv_qr_ui +__GMP_DECLSPEC unsigned long int mpz_fdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_fdiv_r __gmpz_fdiv_r +__GMP_DECLSPEC void mpz_fdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_fdiv_r_2exp __gmpz_fdiv_r_2exp +__GMP_DECLSPEC void mpz_fdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); + +#define mpz_fdiv_r_ui __gmpz_fdiv_r_ui +__GMP_DECLSPEC unsigned long int mpz_fdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_fdiv_ui __gmpz_fdiv_ui +__GMP_DECLSPEC unsigned long int mpz_fdiv_ui (mpz_srcptr, unsigned long int) __GMP_ATTRIBUTE_PURE; + +#define mpz_fib_ui __gmpz_fib_ui +__GMP_DECLSPEC void mpz_fib_ui (mpz_ptr, unsigned long int); + +#define mpz_fib2_ui __gmpz_fib2_ui +__GMP_DECLSPEC void mpz_fib2_ui (mpz_ptr, mpz_ptr, unsigned long int); + +#define mpz_fits_sint_p __gmpz_fits_sint_p +__GMP_DECLSPEC int mpz_fits_sint_p (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_fits_slong_p __gmpz_fits_slong_p +__GMP_DECLSPEC int mpz_fits_slong_p (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_fits_sshort_p __gmpz_fits_sshort_p +__GMP_DECLSPEC int mpz_fits_sshort_p (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_fits_uint_p __gmpz_fits_uint_p +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_uint_p) +__GMP_DECLSPEC int mpz_fits_uint_p (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_fits_ulong_p __gmpz_fits_ulong_p +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_ulong_p) +__GMP_DECLSPEC int mpz_fits_ulong_p (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_fits_ushort_p __gmpz_fits_ushort_p +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_ushort_p) +__GMP_DECLSPEC int mpz_fits_ushort_p (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_gcd __gmpz_gcd +__GMP_DECLSPEC void mpz_gcd (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_gcd_ui __gmpz_gcd_ui +__GMP_DECLSPEC unsigned long int mpz_gcd_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_gcdext __gmpz_gcdext +__GMP_DECLSPEC void mpz_gcdext (mpz_ptr, mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_get_d __gmpz_get_d +__GMP_DECLSPEC double mpz_get_d (mpz_srcptr) __GMP_ATTRIBUTE_PURE; + +#define mpz_get_d_2exp __gmpz_get_d_2exp +__GMP_DECLSPEC double mpz_get_d_2exp (signed long int *, mpz_srcptr); + +#define mpz_get_si __gmpz_get_si +__GMP_DECLSPEC /* signed */ long int mpz_get_si (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_get_str __gmpz_get_str +__GMP_DECLSPEC char *mpz_get_str (char *, int, mpz_srcptr); + +#define mpz_get_ui __gmpz_get_ui +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_get_ui) +__GMP_DECLSPEC unsigned long int mpz_get_ui (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_getlimbn __gmpz_getlimbn +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_getlimbn) +__GMP_DECLSPEC mp_limb_t mpz_getlimbn (mpz_srcptr, mp_size_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_hamdist __gmpz_hamdist +__GMP_DECLSPEC mp_bitcnt_t mpz_hamdist (mpz_srcptr, mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_import __gmpz_import +__GMP_DECLSPEC void mpz_import (mpz_ptr, size_t, int, size_t, int, size_t, const void *); + +#define mpz_init __gmpz_init +__GMP_DECLSPEC void mpz_init (mpz_ptr) __GMP_NOTHROW; + +#define mpz_init2 __gmpz_init2 +__GMP_DECLSPEC void mpz_init2 (mpz_ptr, mp_bitcnt_t); + +#define mpz_inits __gmpz_inits +__GMP_DECLSPEC void mpz_inits (mpz_ptr, ...) __GMP_NOTHROW; + +#define mpz_init_set __gmpz_init_set +__GMP_DECLSPEC void mpz_init_set (mpz_ptr, mpz_srcptr); + +#define mpz_init_set_d __gmpz_init_set_d +__GMP_DECLSPEC void mpz_init_set_d (mpz_ptr, double); + +#define mpz_init_set_si __gmpz_init_set_si +__GMP_DECLSPEC void mpz_init_set_si (mpz_ptr, signed long int); + +#define mpz_init_set_str __gmpz_init_set_str +__GMP_DECLSPEC int mpz_init_set_str (mpz_ptr, const char *, int); + +#define mpz_init_set_ui __gmpz_init_set_ui +__GMP_DECLSPEC void mpz_init_set_ui (mpz_ptr, unsigned long int); + +#define mpz_inp_raw __gmpz_inp_raw +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpz_inp_raw (mpz_ptr, FILE *); +#endif + +#define mpz_inp_str __gmpz_inp_str +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpz_inp_str (mpz_ptr, FILE *, int); +#endif + +#define mpz_invert __gmpz_invert +__GMP_DECLSPEC int mpz_invert (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_ior __gmpz_ior +__GMP_DECLSPEC void mpz_ior (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_jacobi __gmpz_jacobi +__GMP_DECLSPEC int mpz_jacobi (mpz_srcptr, mpz_srcptr) __GMP_ATTRIBUTE_PURE; + +#define mpz_kronecker mpz_jacobi /* alias */ + +#define mpz_kronecker_si __gmpz_kronecker_si +__GMP_DECLSPEC int mpz_kronecker_si (mpz_srcptr, long) __GMP_ATTRIBUTE_PURE; + +#define mpz_kronecker_ui __gmpz_kronecker_ui +__GMP_DECLSPEC int mpz_kronecker_ui (mpz_srcptr, unsigned long) __GMP_ATTRIBUTE_PURE; + +#define mpz_si_kronecker __gmpz_si_kronecker +__GMP_DECLSPEC int mpz_si_kronecker (long, mpz_srcptr) __GMP_ATTRIBUTE_PURE; + +#define mpz_ui_kronecker __gmpz_ui_kronecker +__GMP_DECLSPEC int mpz_ui_kronecker (unsigned long, mpz_srcptr) __GMP_ATTRIBUTE_PURE; + +#define mpz_lcm __gmpz_lcm +__GMP_DECLSPEC void mpz_lcm (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_lcm_ui __gmpz_lcm_ui +__GMP_DECLSPEC void mpz_lcm_ui (mpz_ptr, mpz_srcptr, unsigned long); + +#define mpz_legendre mpz_jacobi /* alias */ + +#define mpz_lucnum_ui __gmpz_lucnum_ui +__GMP_DECLSPEC void mpz_lucnum_ui (mpz_ptr, unsigned long int); + +#define mpz_lucnum2_ui __gmpz_lucnum2_ui +__GMP_DECLSPEC void mpz_lucnum2_ui (mpz_ptr, mpz_ptr, unsigned long int); + +#define mpz_millerrabin __gmpz_millerrabin +__GMP_DECLSPEC int mpz_millerrabin (mpz_srcptr, int) __GMP_ATTRIBUTE_PURE; + +#define mpz_mod __gmpz_mod +__GMP_DECLSPEC void mpz_mod (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_mod_ui mpz_fdiv_r_ui /* same as fdiv_r because divisor unsigned */ + +#define mpz_mul __gmpz_mul +__GMP_DECLSPEC void mpz_mul (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_mul_2exp __gmpz_mul_2exp +__GMP_DECLSPEC void mpz_mul_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); + +#define mpz_mul_si __gmpz_mul_si +__GMP_DECLSPEC void mpz_mul_si (mpz_ptr, mpz_srcptr, long int); + +#define mpz_mul_ui __gmpz_mul_ui +__GMP_DECLSPEC void mpz_mul_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_neg __gmpz_neg +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_neg) +__GMP_DECLSPEC void mpz_neg (mpz_ptr, mpz_srcptr); +#endif + +#define mpz_nextprime __gmpz_nextprime +__GMP_DECLSPEC void mpz_nextprime (mpz_ptr, mpz_srcptr); + +#define mpz_out_raw __gmpz_out_raw +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpz_out_raw (FILE *, mpz_srcptr); +#endif + +#define mpz_out_str __gmpz_out_str +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpz_out_str (FILE *, int, mpz_srcptr); +#endif + +#define mpz_perfect_power_p __gmpz_perfect_power_p +__GMP_DECLSPEC int mpz_perfect_power_p (mpz_srcptr) __GMP_ATTRIBUTE_PURE; + +#define mpz_perfect_square_p __gmpz_perfect_square_p +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_perfect_square_p) +__GMP_DECLSPEC int mpz_perfect_square_p (mpz_srcptr) __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_popcount __gmpz_popcount +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_popcount) +__GMP_DECLSPEC mp_bitcnt_t mpz_popcount (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_pow_ui __gmpz_pow_ui +__GMP_DECLSPEC void mpz_pow_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_powm __gmpz_powm +__GMP_DECLSPEC void mpz_powm (mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr); + +#define mpz_powm_sec __gmpz_powm_sec +__GMP_DECLSPEC void mpz_powm_sec (mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr); + +#define mpz_powm_ui __gmpz_powm_ui +__GMP_DECLSPEC void mpz_powm_ui (mpz_ptr, mpz_srcptr, unsigned long int, mpz_srcptr); + +#define mpz_probab_prime_p __gmpz_probab_prime_p +__GMP_DECLSPEC int mpz_probab_prime_p (mpz_srcptr, int) __GMP_ATTRIBUTE_PURE; + +#define mpz_random __gmpz_random +__GMP_DECLSPEC void mpz_random (mpz_ptr, mp_size_t); + +#define mpz_random2 __gmpz_random2 +__GMP_DECLSPEC void mpz_random2 (mpz_ptr, mp_size_t); + +#define mpz_realloc2 __gmpz_realloc2 +__GMP_DECLSPEC void mpz_realloc2 (mpz_ptr, mp_bitcnt_t); + +#define mpz_remove __gmpz_remove +__GMP_DECLSPEC mp_bitcnt_t mpz_remove (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_root __gmpz_root +__GMP_DECLSPEC int mpz_root (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_rootrem __gmpz_rootrem +__GMP_DECLSPEC void mpz_rootrem (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_rrandomb __gmpz_rrandomb +__GMP_DECLSPEC void mpz_rrandomb (mpz_ptr, gmp_randstate_t, mp_bitcnt_t); + +#define mpz_scan0 __gmpz_scan0 +__GMP_DECLSPEC mp_bitcnt_t mpz_scan0 (mpz_srcptr, mp_bitcnt_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_scan1 __gmpz_scan1 +__GMP_DECLSPEC mp_bitcnt_t mpz_scan1 (mpz_srcptr, mp_bitcnt_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_set __gmpz_set +__GMP_DECLSPEC void mpz_set (mpz_ptr, mpz_srcptr); + +#define mpz_set_d __gmpz_set_d +__GMP_DECLSPEC void mpz_set_d (mpz_ptr, double); + +#define mpz_set_f __gmpz_set_f +__GMP_DECLSPEC void mpz_set_f (mpz_ptr, mpf_srcptr); + +#define mpz_set_q __gmpz_set_q +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_set_q) +__GMP_DECLSPEC void mpz_set_q (mpz_ptr, mpq_srcptr); +#endif + +#define mpz_set_si __gmpz_set_si +__GMP_DECLSPEC void mpz_set_si (mpz_ptr, signed long int); + +#define mpz_set_str __gmpz_set_str +__GMP_DECLSPEC int mpz_set_str (mpz_ptr, const char *, int); + +#define mpz_set_ui __gmpz_set_ui +__GMP_DECLSPEC void mpz_set_ui (mpz_ptr, unsigned long int); + +#define mpz_setbit __gmpz_setbit +__GMP_DECLSPEC void mpz_setbit (mpz_ptr, mp_bitcnt_t); + +#define mpz_size __gmpz_size +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_size) +__GMP_DECLSPEC size_t mpz_size (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpz_sizeinbase __gmpz_sizeinbase +__GMP_DECLSPEC size_t mpz_sizeinbase (mpz_srcptr, int) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_sqrt __gmpz_sqrt +__GMP_DECLSPEC void mpz_sqrt (mpz_ptr, mpz_srcptr); + +#define mpz_sqrtrem __gmpz_sqrtrem +__GMP_DECLSPEC void mpz_sqrtrem (mpz_ptr, mpz_ptr, mpz_srcptr); + +#define mpz_sub __gmpz_sub +__GMP_DECLSPEC void mpz_sub (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_sub_ui __gmpz_sub_ui +__GMP_DECLSPEC void mpz_sub_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_ui_sub __gmpz_ui_sub +__GMP_DECLSPEC void mpz_ui_sub (mpz_ptr, unsigned long int, mpz_srcptr); + +#define mpz_submul __gmpz_submul +__GMP_DECLSPEC void mpz_submul (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_submul_ui __gmpz_submul_ui +__GMP_DECLSPEC void mpz_submul_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_swap __gmpz_swap +__GMP_DECLSPEC void mpz_swap (mpz_ptr, mpz_ptr) __GMP_NOTHROW; + +#define mpz_tdiv_ui __gmpz_tdiv_ui +__GMP_DECLSPEC unsigned long int mpz_tdiv_ui (mpz_srcptr, unsigned long int) __GMP_ATTRIBUTE_PURE; + +#define mpz_tdiv_q __gmpz_tdiv_q +__GMP_DECLSPEC void mpz_tdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_tdiv_q_2exp __gmpz_tdiv_q_2exp +__GMP_DECLSPEC void mpz_tdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); + +#define mpz_tdiv_q_ui __gmpz_tdiv_q_ui +__GMP_DECLSPEC unsigned long int mpz_tdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_tdiv_qr __gmpz_tdiv_qr +__GMP_DECLSPEC void mpz_tdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_tdiv_qr_ui __gmpz_tdiv_qr_ui +__GMP_DECLSPEC unsigned long int mpz_tdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_tdiv_r __gmpz_tdiv_r +__GMP_DECLSPEC void mpz_tdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_tdiv_r_2exp __gmpz_tdiv_r_2exp +__GMP_DECLSPEC void mpz_tdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t); + +#define mpz_tdiv_r_ui __gmpz_tdiv_r_ui +__GMP_DECLSPEC unsigned long int mpz_tdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int); + +#define mpz_tstbit __gmpz_tstbit +__GMP_DECLSPEC int mpz_tstbit (mpz_srcptr, mp_bitcnt_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpz_ui_pow_ui __gmpz_ui_pow_ui +__GMP_DECLSPEC void mpz_ui_pow_ui (mpz_ptr, unsigned long int, unsigned long int); + +#define mpz_urandomb __gmpz_urandomb +__GMP_DECLSPEC void mpz_urandomb (mpz_ptr, gmp_randstate_t, mp_bitcnt_t); + +#define mpz_urandomm __gmpz_urandomm +__GMP_DECLSPEC void mpz_urandomm (mpz_ptr, gmp_randstate_t, mpz_srcptr); + +#define mpz_xor __gmpz_xor +#define mpz_eor __gmpz_xor +__GMP_DECLSPEC void mpz_xor (mpz_ptr, mpz_srcptr, mpz_srcptr); + +#define mpz_limbs_read __gmpz_limbs_read +__GMP_DECLSPEC mp_srcptr mpz_limbs_read (mpz_srcptr); + +#define mpz_limbs_write __gmpz_limbs_write +__GMP_DECLSPEC mp_ptr mpz_limbs_write (mpz_ptr, mp_size_t); + +#define mpz_limbs_modify __gmpz_limbs_modify +__GMP_DECLSPEC mp_ptr mpz_limbs_modify (mpz_ptr, mp_size_t); + +#define mpz_limbs_finish __gmpz_limbs_finish +__GMP_DECLSPEC void mpz_limbs_finish (mpz_ptr, mp_size_t); + +#define mpz_roinit_n __gmpz_roinit_n +__GMP_DECLSPEC mpz_srcptr mpz_roinit_n (mpz_ptr, mp_srcptr, mp_size_t); + +#define MPZ_ROINIT_N(xp, xs) {{0, (xs),(xp) }} + +/**************** Rational (i.e. Q) routines. ****************/ + +#define mpq_abs __gmpq_abs +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpq_abs) +__GMP_DECLSPEC void mpq_abs (mpq_ptr, mpq_srcptr); +#endif + +#define mpq_add __gmpq_add +__GMP_DECLSPEC void mpq_add (mpq_ptr, mpq_srcptr, mpq_srcptr); + +#define mpq_canonicalize __gmpq_canonicalize +__GMP_DECLSPEC void mpq_canonicalize (mpq_ptr); + +#define mpq_clear __gmpq_clear +__GMP_DECLSPEC void mpq_clear (mpq_ptr); + +#define mpq_clears __gmpq_clears +__GMP_DECLSPEC void mpq_clears (mpq_ptr, ...); + +#define mpq_cmp __gmpq_cmp +__GMP_DECLSPEC int mpq_cmp (mpq_srcptr, mpq_srcptr) __GMP_ATTRIBUTE_PURE; + +#define _mpq_cmp_si __gmpq_cmp_si +__GMP_DECLSPEC int _mpq_cmp_si (mpq_srcptr, long, unsigned long) __GMP_ATTRIBUTE_PURE; + +#define _mpq_cmp_ui __gmpq_cmp_ui +__GMP_DECLSPEC int _mpq_cmp_ui (mpq_srcptr, unsigned long int, unsigned long int) __GMP_ATTRIBUTE_PURE; + +#define mpq_cmp_z __gmpq_cmp_z +__GMP_DECLSPEC int mpq_cmp_z (mpq_srcptr, mpz_srcptr) __GMP_ATTRIBUTE_PURE; + +#define mpq_div __gmpq_div +__GMP_DECLSPEC void mpq_div (mpq_ptr, mpq_srcptr, mpq_srcptr); + +#define mpq_div_2exp __gmpq_div_2exp +__GMP_DECLSPEC void mpq_div_2exp (mpq_ptr, mpq_srcptr, mp_bitcnt_t); + +#define mpq_equal __gmpq_equal +__GMP_DECLSPEC int mpq_equal (mpq_srcptr, mpq_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpq_get_num __gmpq_get_num +__GMP_DECLSPEC void mpq_get_num (mpz_ptr, mpq_srcptr); + +#define mpq_get_den __gmpq_get_den +__GMP_DECLSPEC void mpq_get_den (mpz_ptr, mpq_srcptr); + +#define mpq_get_d __gmpq_get_d +__GMP_DECLSPEC double mpq_get_d (mpq_srcptr) __GMP_ATTRIBUTE_PURE; + +#define mpq_get_str __gmpq_get_str +__GMP_DECLSPEC char *mpq_get_str (char *, int, mpq_srcptr); + +#define mpq_init __gmpq_init +__GMP_DECLSPEC void mpq_init (mpq_ptr); + +#define mpq_inits __gmpq_inits +__GMP_DECLSPEC void mpq_inits (mpq_ptr, ...); + +#define mpq_inp_str __gmpq_inp_str +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpq_inp_str (mpq_ptr, FILE *, int); +#endif + +#define mpq_inv __gmpq_inv +__GMP_DECLSPEC void mpq_inv (mpq_ptr, mpq_srcptr); + +#define mpq_mul __gmpq_mul +__GMP_DECLSPEC void mpq_mul (mpq_ptr, mpq_srcptr, mpq_srcptr); + +#define mpq_mul_2exp __gmpq_mul_2exp +__GMP_DECLSPEC void mpq_mul_2exp (mpq_ptr, mpq_srcptr, mp_bitcnt_t); + +#define mpq_neg __gmpq_neg +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpq_neg) +__GMP_DECLSPEC void mpq_neg (mpq_ptr, mpq_srcptr); +#endif + +#define mpq_out_str __gmpq_out_str +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpq_out_str (FILE *, int, mpq_srcptr); +#endif + +#define mpq_set __gmpq_set +__GMP_DECLSPEC void mpq_set (mpq_ptr, mpq_srcptr); + +#define mpq_set_d __gmpq_set_d +__GMP_DECLSPEC void mpq_set_d (mpq_ptr, double); + +#define mpq_set_den __gmpq_set_den +__GMP_DECLSPEC void mpq_set_den (mpq_ptr, mpz_srcptr); + +#define mpq_set_f __gmpq_set_f +__GMP_DECLSPEC void mpq_set_f (mpq_ptr, mpf_srcptr); + +#define mpq_set_num __gmpq_set_num +__GMP_DECLSPEC void mpq_set_num (mpq_ptr, mpz_srcptr); + +#define mpq_set_si __gmpq_set_si +__GMP_DECLSPEC void mpq_set_si (mpq_ptr, signed long int, unsigned long int); + +#define mpq_set_str __gmpq_set_str +__GMP_DECLSPEC int mpq_set_str (mpq_ptr, const char *, int); + +#define mpq_set_ui __gmpq_set_ui +__GMP_DECLSPEC void mpq_set_ui (mpq_ptr, unsigned long int, unsigned long int); + +#define mpq_set_z __gmpq_set_z +__GMP_DECLSPEC void mpq_set_z (mpq_ptr, mpz_srcptr); + +#define mpq_sub __gmpq_sub +__GMP_DECLSPEC void mpq_sub (mpq_ptr, mpq_srcptr, mpq_srcptr); + +#define mpq_swap __gmpq_swap +__GMP_DECLSPEC void mpq_swap (mpq_ptr, mpq_ptr) __GMP_NOTHROW; + + +/**************** Float (i.e. F) routines. ****************/ + +#define mpf_abs __gmpf_abs +__GMP_DECLSPEC void mpf_abs (mpf_ptr, mpf_srcptr); + +#define mpf_add __gmpf_add +__GMP_DECLSPEC void mpf_add (mpf_ptr, mpf_srcptr, mpf_srcptr); + +#define mpf_add_ui __gmpf_add_ui +__GMP_DECLSPEC void mpf_add_ui (mpf_ptr, mpf_srcptr, unsigned long int); +#define mpf_ceil __gmpf_ceil +__GMP_DECLSPEC void mpf_ceil (mpf_ptr, mpf_srcptr); + +#define mpf_clear __gmpf_clear +__GMP_DECLSPEC void mpf_clear (mpf_ptr); + +#define mpf_clears __gmpf_clears +__GMP_DECLSPEC void mpf_clears (mpf_ptr, ...); + +#define mpf_cmp __gmpf_cmp +__GMP_DECLSPEC int mpf_cmp (mpf_srcptr, mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_cmp_z __gmpf_cmp_z +__GMP_DECLSPEC int mpf_cmp_z (mpf_srcptr, mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_cmp_d __gmpf_cmp_d +__GMP_DECLSPEC int mpf_cmp_d (mpf_srcptr, double) __GMP_ATTRIBUTE_PURE; + +#define mpf_cmp_si __gmpf_cmp_si +__GMP_DECLSPEC int mpf_cmp_si (mpf_srcptr, signed long int) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_cmp_ui __gmpf_cmp_ui +__GMP_DECLSPEC int mpf_cmp_ui (mpf_srcptr, unsigned long int) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_div __gmpf_div +__GMP_DECLSPEC void mpf_div (mpf_ptr, mpf_srcptr, mpf_srcptr); + +#define mpf_div_2exp __gmpf_div_2exp +__GMP_DECLSPEC void mpf_div_2exp (mpf_ptr, mpf_srcptr, mp_bitcnt_t); + +#define mpf_div_ui __gmpf_div_ui +__GMP_DECLSPEC void mpf_div_ui (mpf_ptr, mpf_srcptr, unsigned long int); + +#define mpf_dump __gmpf_dump +__GMP_DECLSPEC void mpf_dump (mpf_srcptr); + +#define mpf_eq __gmpf_eq +__GMP_DECLSPEC int mpf_eq (mpf_srcptr, mpf_srcptr, mp_bitcnt_t) __GMP_ATTRIBUTE_PURE; + +#define mpf_fits_sint_p __gmpf_fits_sint_p +__GMP_DECLSPEC int mpf_fits_sint_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_fits_slong_p __gmpf_fits_slong_p +__GMP_DECLSPEC int mpf_fits_slong_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_fits_sshort_p __gmpf_fits_sshort_p +__GMP_DECLSPEC int mpf_fits_sshort_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_fits_uint_p __gmpf_fits_uint_p +__GMP_DECLSPEC int mpf_fits_uint_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_fits_ulong_p __gmpf_fits_ulong_p +__GMP_DECLSPEC int mpf_fits_ulong_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_fits_ushort_p __gmpf_fits_ushort_p +__GMP_DECLSPEC int mpf_fits_ushort_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_floor __gmpf_floor +__GMP_DECLSPEC void mpf_floor (mpf_ptr, mpf_srcptr); + +#define mpf_get_d __gmpf_get_d +__GMP_DECLSPEC double mpf_get_d (mpf_srcptr) __GMP_ATTRIBUTE_PURE; + +#define mpf_get_d_2exp __gmpf_get_d_2exp +__GMP_DECLSPEC double mpf_get_d_2exp (signed long int *, mpf_srcptr); + +#define mpf_get_default_prec __gmpf_get_default_prec +__GMP_DECLSPEC mp_bitcnt_t mpf_get_default_prec (void) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_get_prec __gmpf_get_prec +__GMP_DECLSPEC mp_bitcnt_t mpf_get_prec (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_get_si __gmpf_get_si +__GMP_DECLSPEC long mpf_get_si (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_get_str __gmpf_get_str +__GMP_DECLSPEC char *mpf_get_str (char *, mp_exp_t *, int, size_t, mpf_srcptr); + +#define mpf_get_ui __gmpf_get_ui +__GMP_DECLSPEC unsigned long mpf_get_ui (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_init __gmpf_init +__GMP_DECLSPEC void mpf_init (mpf_ptr); + +#define mpf_init2 __gmpf_init2 +__GMP_DECLSPEC void mpf_init2 (mpf_ptr, mp_bitcnt_t); + +#define mpf_inits __gmpf_inits +__GMP_DECLSPEC void mpf_inits (mpf_ptr, ...); + +#define mpf_init_set __gmpf_init_set +__GMP_DECLSPEC void mpf_init_set (mpf_ptr, mpf_srcptr); + +#define mpf_init_set_d __gmpf_init_set_d +__GMP_DECLSPEC void mpf_init_set_d (mpf_ptr, double); + +#define mpf_init_set_si __gmpf_init_set_si +__GMP_DECLSPEC void mpf_init_set_si (mpf_ptr, signed long int); + +#define mpf_init_set_str __gmpf_init_set_str +__GMP_DECLSPEC int mpf_init_set_str (mpf_ptr, const char *, int); + +#define mpf_init_set_ui __gmpf_init_set_ui +__GMP_DECLSPEC void mpf_init_set_ui (mpf_ptr, unsigned long int); + +#define mpf_inp_str __gmpf_inp_str +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpf_inp_str (mpf_ptr, FILE *, int); +#endif + +#define mpf_integer_p __gmpf_integer_p +__GMP_DECLSPEC int mpf_integer_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_mul __gmpf_mul +__GMP_DECLSPEC void mpf_mul (mpf_ptr, mpf_srcptr, mpf_srcptr); + +#define mpf_mul_2exp __gmpf_mul_2exp +__GMP_DECLSPEC void mpf_mul_2exp (mpf_ptr, mpf_srcptr, mp_bitcnt_t); + +#define mpf_mul_ui __gmpf_mul_ui +__GMP_DECLSPEC void mpf_mul_ui (mpf_ptr, mpf_srcptr, unsigned long int); + +#define mpf_neg __gmpf_neg +__GMP_DECLSPEC void mpf_neg (mpf_ptr, mpf_srcptr); + +#define mpf_out_str __gmpf_out_str +#ifdef _GMP_H_HAVE_FILE +__GMP_DECLSPEC size_t mpf_out_str (FILE *, int, size_t, mpf_srcptr); +#endif + +#define mpf_pow_ui __gmpf_pow_ui +__GMP_DECLSPEC void mpf_pow_ui (mpf_ptr, mpf_srcptr, unsigned long int); + +#define mpf_random2 __gmpf_random2 +__GMP_DECLSPEC void mpf_random2 (mpf_ptr, mp_size_t, mp_exp_t); + +#define mpf_reldiff __gmpf_reldiff +__GMP_DECLSPEC void mpf_reldiff (mpf_ptr, mpf_srcptr, mpf_srcptr); + +#define mpf_set __gmpf_set +__GMP_DECLSPEC void mpf_set (mpf_ptr, mpf_srcptr); + +#define mpf_set_d __gmpf_set_d +__GMP_DECLSPEC void mpf_set_d (mpf_ptr, double); + +#define mpf_set_default_prec __gmpf_set_default_prec +__GMP_DECLSPEC void mpf_set_default_prec (mp_bitcnt_t) __GMP_NOTHROW; + +#define mpf_set_prec __gmpf_set_prec +__GMP_DECLSPEC void mpf_set_prec (mpf_ptr, mp_bitcnt_t); + +#define mpf_set_prec_raw __gmpf_set_prec_raw +__GMP_DECLSPEC void mpf_set_prec_raw (mpf_ptr, mp_bitcnt_t) __GMP_NOTHROW; + +#define mpf_set_q __gmpf_set_q +__GMP_DECLSPEC void mpf_set_q (mpf_ptr, mpq_srcptr); + +#define mpf_set_si __gmpf_set_si +__GMP_DECLSPEC void mpf_set_si (mpf_ptr, signed long int); + +#define mpf_set_str __gmpf_set_str +__GMP_DECLSPEC int mpf_set_str (mpf_ptr, const char *, int); + +#define mpf_set_ui __gmpf_set_ui +__GMP_DECLSPEC void mpf_set_ui (mpf_ptr, unsigned long int); + +#define mpf_set_z __gmpf_set_z +__GMP_DECLSPEC void mpf_set_z (mpf_ptr, mpz_srcptr); + +#define mpf_size __gmpf_size +__GMP_DECLSPEC size_t mpf_size (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpf_sqrt __gmpf_sqrt +__GMP_DECLSPEC void mpf_sqrt (mpf_ptr, mpf_srcptr); + +#define mpf_sqrt_ui __gmpf_sqrt_ui +__GMP_DECLSPEC void mpf_sqrt_ui (mpf_ptr, unsigned long int); + +#define mpf_sub __gmpf_sub +__GMP_DECLSPEC void mpf_sub (mpf_ptr, mpf_srcptr, mpf_srcptr); + +#define mpf_sub_ui __gmpf_sub_ui +__GMP_DECLSPEC void mpf_sub_ui (mpf_ptr, mpf_srcptr, unsigned long int); + +#define mpf_swap __gmpf_swap +__GMP_DECLSPEC void mpf_swap (mpf_ptr, mpf_ptr) __GMP_NOTHROW; + +#define mpf_trunc __gmpf_trunc +__GMP_DECLSPEC void mpf_trunc (mpf_ptr, mpf_srcptr); + +#define mpf_ui_div __gmpf_ui_div +__GMP_DECLSPEC void mpf_ui_div (mpf_ptr, unsigned long int, mpf_srcptr); + +#define mpf_ui_sub __gmpf_ui_sub +__GMP_DECLSPEC void mpf_ui_sub (mpf_ptr, unsigned long int, mpf_srcptr); + +#define mpf_urandomb __gmpf_urandomb +__GMP_DECLSPEC void mpf_urandomb (mpf_t, gmp_randstate_t, mp_bitcnt_t); + + +/************ Low level positive-integer (i.e. N) routines. ************/ + +/* This is ugly, but we need to make user calls reach the prefixed function. */ + +#define mpn_add __MPN(add) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_add) +__GMP_DECLSPEC mp_limb_t mpn_add (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); +#endif + +#define mpn_add_1 __MPN(add_1) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_add_1) +__GMP_DECLSPEC mp_limb_t mpn_add_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) __GMP_NOTHROW; +#endif + +#define mpn_add_n __MPN(add_n) +__GMP_DECLSPEC mp_limb_t mpn_add_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); + +#define mpn_addmul_1 __MPN(addmul_1) +__GMP_DECLSPEC mp_limb_t mpn_addmul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); + +#define mpn_cmp __MPN(cmp) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_cmp) +__GMP_DECLSPEC int mpn_cmp (mp_srcptr, mp_srcptr, mp_size_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpn_zero_p __MPN(zero_p) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_zero_p) +__GMP_DECLSPEC int mpn_zero_p (mp_srcptr, mp_size_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; +#endif + +#define mpn_divexact_1 __MPN(divexact_1) +__GMP_DECLSPEC void mpn_divexact_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); + +#define mpn_divexact_by3(dst,src,size) \ + mpn_divexact_by3c (dst, src, size, __GMP_CAST (mp_limb_t, 0)) + +#define mpn_divexact_by3c __MPN(divexact_by3c) +__GMP_DECLSPEC mp_limb_t mpn_divexact_by3c (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); + +#define mpn_divmod_1(qp,np,nsize,dlimb) \ + mpn_divrem_1 (qp, __GMP_CAST (mp_size_t, 0), np, nsize, dlimb) + +#define mpn_divrem __MPN(divrem) +__GMP_DECLSPEC mp_limb_t mpn_divrem (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr, mp_size_t); + +#define mpn_divrem_1 __MPN(divrem_1) +__GMP_DECLSPEC mp_limb_t mpn_divrem_1 (mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_limb_t); + +#define mpn_divrem_2 __MPN(divrem_2) +__GMP_DECLSPEC mp_limb_t mpn_divrem_2 (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr); + +#define mpn_div_qr_1 __MPN(div_qr_1) +__GMP_DECLSPEC mp_limb_t mpn_div_qr_1 (mp_ptr, mp_limb_t *, mp_srcptr, mp_size_t, mp_limb_t); + +#define mpn_div_qr_2 __MPN(div_qr_2) +__GMP_DECLSPEC mp_limb_t mpn_div_qr_2 (mp_ptr, mp_ptr, mp_srcptr, mp_size_t, mp_srcptr); + +#define mpn_gcd __MPN(gcd) +__GMP_DECLSPEC mp_size_t mpn_gcd (mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t); + +#define mpn_gcd_11 __MPN(gcd_11) +__GMP_DECLSPEC mp_limb_t mpn_gcd_11 (mp_limb_t, mp_limb_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_gcd_1 __MPN(gcd_1) +__GMP_DECLSPEC mp_limb_t mpn_gcd_1 (mp_srcptr, mp_size_t, mp_limb_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_gcdext_1 __MPN(gcdext_1) +__GMP_DECLSPEC mp_limb_t mpn_gcdext_1 (mp_limb_signed_t *, mp_limb_signed_t *, mp_limb_t, mp_limb_t); + +#define mpn_gcdext __MPN(gcdext) +__GMP_DECLSPEC mp_size_t mpn_gcdext (mp_ptr, mp_ptr, mp_size_t *, mp_ptr, mp_size_t, mp_ptr, mp_size_t); + +#define mpn_get_str __MPN(get_str) +__GMP_DECLSPEC size_t mpn_get_str (unsigned char *, int, mp_ptr, mp_size_t); + +#define mpn_hamdist __MPN(hamdist) +__GMP_DECLSPEC mp_bitcnt_t mpn_hamdist (mp_srcptr, mp_srcptr, mp_size_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpn_lshift __MPN(lshift) +__GMP_DECLSPEC mp_limb_t mpn_lshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int); + +#define mpn_mod_1 __MPN(mod_1) +__GMP_DECLSPEC mp_limb_t mpn_mod_1 (mp_srcptr, mp_size_t, mp_limb_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_mul __MPN(mul) +__GMP_DECLSPEC mp_limb_t mpn_mul (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); + +#define mpn_mul_1 __MPN(mul_1) +__GMP_DECLSPEC mp_limb_t mpn_mul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); + +#define mpn_mul_n __MPN(mul_n) +__GMP_DECLSPEC void mpn_mul_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); + +#define mpn_sqr __MPN(sqr) +__GMP_DECLSPEC void mpn_sqr (mp_ptr, mp_srcptr, mp_size_t); + +#define mpn_neg __MPN(neg) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_neg) +__GMP_DECLSPEC mp_limb_t mpn_neg (mp_ptr, mp_srcptr, mp_size_t); +#endif + +#define mpn_com __MPN(com) +__GMP_DECLSPEC void mpn_com (mp_ptr, mp_srcptr, mp_size_t); + +#define mpn_perfect_square_p __MPN(perfect_square_p) +__GMP_DECLSPEC int mpn_perfect_square_p (mp_srcptr, mp_size_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_perfect_power_p __MPN(perfect_power_p) +__GMP_DECLSPEC int mpn_perfect_power_p (mp_srcptr, mp_size_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_popcount __MPN(popcount) +__GMP_DECLSPEC mp_bitcnt_t mpn_popcount (mp_srcptr, mp_size_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; + +#define mpn_pow_1 __MPN(pow_1) +__GMP_DECLSPEC mp_size_t mpn_pow_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr); + +/* undocumented now, but retained here for upward compatibility */ +#define mpn_preinv_mod_1 __MPN(preinv_mod_1) +__GMP_DECLSPEC mp_limb_t mpn_preinv_mod_1 (mp_srcptr, mp_size_t, mp_limb_t, mp_limb_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_random __MPN(random) +__GMP_DECLSPEC void mpn_random (mp_ptr, mp_size_t); + +#define mpn_random2 __MPN(random2) +__GMP_DECLSPEC void mpn_random2 (mp_ptr, mp_size_t); + +#define mpn_rshift __MPN(rshift) +__GMP_DECLSPEC mp_limb_t mpn_rshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int); + +#define mpn_scan0 __MPN(scan0) +__GMP_DECLSPEC mp_bitcnt_t mpn_scan0 (mp_srcptr, mp_bitcnt_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_scan1 __MPN(scan1) +__GMP_DECLSPEC mp_bitcnt_t mpn_scan1 (mp_srcptr, mp_bitcnt_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_set_str __MPN(set_str) +__GMP_DECLSPEC mp_size_t mpn_set_str (mp_ptr, const unsigned char *, size_t, int); + +#define mpn_sizeinbase __MPN(sizeinbase) +__GMP_DECLSPEC size_t mpn_sizeinbase (mp_srcptr, mp_size_t, int); + +#define mpn_sqrtrem __MPN(sqrtrem) +__GMP_DECLSPEC mp_size_t mpn_sqrtrem (mp_ptr, mp_ptr, mp_srcptr, mp_size_t); + +#define mpn_sub __MPN(sub) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_sub) +__GMP_DECLSPEC mp_limb_t mpn_sub (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); +#endif + +#define mpn_sub_1 __MPN(sub_1) +#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_sub_1) +__GMP_DECLSPEC mp_limb_t mpn_sub_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) __GMP_NOTHROW; +#endif + +#define mpn_sub_n __MPN(sub_n) +__GMP_DECLSPEC mp_limb_t mpn_sub_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); + +#define mpn_submul_1 __MPN(submul_1) +__GMP_DECLSPEC mp_limb_t mpn_submul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); + +#define mpn_tdiv_qr __MPN(tdiv_qr) +__GMP_DECLSPEC void mpn_tdiv_qr (mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); + +#define mpn_and_n __MPN(and_n) +__GMP_DECLSPEC void mpn_and_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); +#define mpn_andn_n __MPN(andn_n) +__GMP_DECLSPEC void mpn_andn_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); +#define mpn_nand_n __MPN(nand_n) +__GMP_DECLSPEC void mpn_nand_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); +#define mpn_ior_n __MPN(ior_n) +__GMP_DECLSPEC void mpn_ior_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); +#define mpn_iorn_n __MPN(iorn_n) +__GMP_DECLSPEC void mpn_iorn_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); +#define mpn_nior_n __MPN(nior_n) +__GMP_DECLSPEC void mpn_nior_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); +#define mpn_xor_n __MPN(xor_n) +__GMP_DECLSPEC void mpn_xor_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); +#define mpn_xnor_n __MPN(xnor_n) +__GMP_DECLSPEC void mpn_xnor_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); + +#define mpn_copyi __MPN(copyi) +__GMP_DECLSPEC void mpn_copyi (mp_ptr, mp_srcptr, mp_size_t); +#define mpn_copyd __MPN(copyd) +__GMP_DECLSPEC void mpn_copyd (mp_ptr, mp_srcptr, mp_size_t); +#define mpn_zero __MPN(zero) +__GMP_DECLSPEC void mpn_zero (mp_ptr, mp_size_t); + +#define mpn_cnd_add_n __MPN(cnd_add_n) +__GMP_DECLSPEC mp_limb_t mpn_cnd_add_n (mp_limb_t, mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); +#define mpn_cnd_sub_n __MPN(cnd_sub_n) +__GMP_DECLSPEC mp_limb_t mpn_cnd_sub_n (mp_limb_t, mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); + +#define mpn_sec_add_1 __MPN(sec_add_1) +__GMP_DECLSPEC mp_limb_t mpn_sec_add_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr); +#define mpn_sec_add_1_itch __MPN(sec_add_1_itch) +__GMP_DECLSPEC mp_size_t mpn_sec_add_1_itch (mp_size_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_sec_sub_1 __MPN(sec_sub_1) +__GMP_DECLSPEC mp_limb_t mpn_sec_sub_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr); +#define mpn_sec_sub_1_itch __MPN(sec_sub_1_itch) +__GMP_DECLSPEC mp_size_t mpn_sec_sub_1_itch (mp_size_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_cnd_swap __MPN(cnd_swap) +__GMP_DECLSPEC void mpn_cnd_swap (mp_limb_t, volatile mp_limb_t *, volatile mp_limb_t *, mp_size_t); + +#define mpn_sec_mul __MPN(sec_mul) +__GMP_DECLSPEC void mpn_sec_mul (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t, mp_ptr); +#define mpn_sec_mul_itch __MPN(sec_mul_itch) +__GMP_DECLSPEC mp_size_t mpn_sec_mul_itch (mp_size_t, mp_size_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_sec_sqr __MPN(sec_sqr) +__GMP_DECLSPEC void mpn_sec_sqr (mp_ptr, mp_srcptr, mp_size_t, mp_ptr); +#define mpn_sec_sqr_itch __MPN(sec_sqr_itch) +__GMP_DECLSPEC mp_size_t mpn_sec_sqr_itch (mp_size_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_sec_powm __MPN(sec_powm) +__GMP_DECLSPEC void mpn_sec_powm (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_bitcnt_t, mp_srcptr, mp_size_t, mp_ptr); +#define mpn_sec_powm_itch __MPN(sec_powm_itch) +__GMP_DECLSPEC mp_size_t mpn_sec_powm_itch (mp_size_t, mp_bitcnt_t, mp_size_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_sec_tabselect __MPN(sec_tabselect) +__GMP_DECLSPEC void mpn_sec_tabselect (volatile mp_limb_t *, volatile const mp_limb_t *, mp_size_t, mp_size_t, mp_size_t); + +#define mpn_sec_div_qr __MPN(sec_div_qr) +__GMP_DECLSPEC mp_limb_t mpn_sec_div_qr (mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_ptr); +#define mpn_sec_div_qr_itch __MPN(sec_div_qr_itch) +__GMP_DECLSPEC mp_size_t mpn_sec_div_qr_itch (mp_size_t, mp_size_t) __GMP_ATTRIBUTE_PURE; +#define mpn_sec_div_r __MPN(sec_div_r) +__GMP_DECLSPEC void mpn_sec_div_r (mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_ptr); +#define mpn_sec_div_r_itch __MPN(sec_div_r_itch) +__GMP_DECLSPEC mp_size_t mpn_sec_div_r_itch (mp_size_t, mp_size_t) __GMP_ATTRIBUTE_PURE; + +#define mpn_sec_invert __MPN(sec_invert) +__GMP_DECLSPEC int mpn_sec_invert (mp_ptr, mp_ptr, mp_srcptr, mp_size_t, mp_bitcnt_t, mp_ptr); +#define mpn_sec_invert_itch __MPN(sec_invert_itch) +__GMP_DECLSPEC mp_size_t mpn_sec_invert_itch (mp_size_t) __GMP_ATTRIBUTE_PURE; + + +/**************** mpz inlines ****************/ + +/* The following are provided as inlines where possible, but always exist as + library functions too, for binary compatibility. + + Within gmp itself this inlining generally isn't relied on, since it + doesn't get done for all compilers, whereas if something is worth + inlining then it's worth arranging always. + + There are two styles of inlining here. When the same bit of code is + wanted for the inline as for the library version, then __GMP_FORCE_foo + arranges for that code to be emitted and the __GMP_EXTERN_INLINE + directive suppressed, eg. mpz_fits_uint_p. When a different bit of code + is wanted for the inline than for the library version, then + __GMP_FORCE_foo arranges the inline to be suppressed, eg. mpz_abs. */ + +#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpz_abs) +__GMP_EXTERN_INLINE void +mpz_abs (mpz_ptr __gmp_w, mpz_srcptr __gmp_u) +{ + if (__gmp_w != __gmp_u) + mpz_set (__gmp_w, __gmp_u); + __gmp_w->_mp_size = __GMP_ABS (__gmp_w->_mp_size); +} +#endif + +#if GMP_NAIL_BITS == 0 +#define __GMPZ_FITS_UTYPE_P(z,maxval) \ + mp_size_t __gmp_n = z->_mp_size; \ + mp_ptr __gmp_p = z->_mp_d; \ + return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= maxval)); +#else +#define __GMPZ_FITS_UTYPE_P(z,maxval) \ + mp_size_t __gmp_n = z->_mp_size; \ + mp_ptr __gmp_p = z->_mp_d; \ + return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= maxval) \ + || (__gmp_n == 2 && __gmp_p[1] <= ((mp_limb_t) maxval >> GMP_NUMB_BITS))); +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_uint_p) +#if ! defined (__GMP_FORCE_mpz_fits_uint_p) +__GMP_EXTERN_INLINE +#endif +int +mpz_fits_uint_p (mpz_srcptr __gmp_z) __GMP_NOTHROW +{ + __GMPZ_FITS_UTYPE_P (__gmp_z, UINT_MAX); +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_ulong_p) +#if ! defined (__GMP_FORCE_mpz_fits_ulong_p) +__GMP_EXTERN_INLINE +#endif +int +mpz_fits_ulong_p (mpz_srcptr __gmp_z) __GMP_NOTHROW +{ + __GMPZ_FITS_UTYPE_P (__gmp_z, ULONG_MAX); +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_ushort_p) +#if ! defined (__GMP_FORCE_mpz_fits_ushort_p) +__GMP_EXTERN_INLINE +#endif +int +mpz_fits_ushort_p (mpz_srcptr __gmp_z) __GMP_NOTHROW +{ + __GMPZ_FITS_UTYPE_P (__gmp_z, USHRT_MAX); +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_get_ui) +#if ! defined (__GMP_FORCE_mpz_get_ui) +__GMP_EXTERN_INLINE +#endif +unsigned long +mpz_get_ui (mpz_srcptr __gmp_z) __GMP_NOTHROW +{ + mp_ptr __gmp_p = __gmp_z->_mp_d; + mp_size_t __gmp_n = __gmp_z->_mp_size; + mp_limb_t __gmp_l = __gmp_p[0]; + /* This is a "#if" rather than a plain "if" so as to avoid gcc warnings + about "<< GMP_NUMB_BITS" exceeding the type size, and to avoid Borland + C++ 6.0 warnings about condition always true for something like + "ULONG_MAX < GMP_NUMB_MASK". */ +#if GMP_NAIL_BITS == 0 || defined (_LONG_LONG_LIMB) + /* limb==long and no nails, or limb==longlong, one limb is enough */ + return (__gmp_n != 0 ? __gmp_l : 0); +#else + /* limb==long and nails, need two limbs when available */ + __gmp_n = __GMP_ABS (__gmp_n); + if (__gmp_n <= 1) + return (__gmp_n != 0 ? __gmp_l : 0); + else + return __gmp_l + (__gmp_p[1] << GMP_NUMB_BITS); +#endif +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_getlimbn) +#if ! defined (__GMP_FORCE_mpz_getlimbn) +__GMP_EXTERN_INLINE +#endif +mp_limb_t +mpz_getlimbn (mpz_srcptr __gmp_z, mp_size_t __gmp_n) __GMP_NOTHROW +{ + mp_limb_t __gmp_result = 0; + if (__GMP_LIKELY (__gmp_n >= 0 && __gmp_n < __GMP_ABS (__gmp_z->_mp_size))) + __gmp_result = __gmp_z->_mp_d[__gmp_n]; + return __gmp_result; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpz_neg) +__GMP_EXTERN_INLINE void +mpz_neg (mpz_ptr __gmp_w, mpz_srcptr __gmp_u) +{ + if (__gmp_w != __gmp_u) + mpz_set (__gmp_w, __gmp_u); + __gmp_w->_mp_size = - __gmp_w->_mp_size; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_perfect_square_p) +#if ! defined (__GMP_FORCE_mpz_perfect_square_p) +__GMP_EXTERN_INLINE +#endif +int +mpz_perfect_square_p (mpz_srcptr __gmp_a) +{ + mp_size_t __gmp_asize; + int __gmp_result; + + __gmp_asize = __gmp_a->_mp_size; + __gmp_result = (__gmp_asize >= 0); /* zero is a square, negatives are not */ + if (__GMP_LIKELY (__gmp_asize > 0)) + __gmp_result = mpn_perfect_square_p (__gmp_a->_mp_d, __gmp_asize); + return __gmp_result; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_popcount) +#if ! defined (__GMP_FORCE_mpz_popcount) +__GMP_EXTERN_INLINE +#endif +mp_bitcnt_t +mpz_popcount (mpz_srcptr __gmp_u) __GMP_NOTHROW +{ + mp_size_t __gmp_usize; + mp_bitcnt_t __gmp_result; + + __gmp_usize = __gmp_u->_mp_size; + __gmp_result = (__gmp_usize < 0 ? ~ __GMP_CAST (mp_bitcnt_t, 0) : __GMP_CAST (mp_bitcnt_t, 0)); + if (__GMP_LIKELY (__gmp_usize > 0)) + __gmp_result = mpn_popcount (__gmp_u->_mp_d, __gmp_usize); + return __gmp_result; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_set_q) +#if ! defined (__GMP_FORCE_mpz_set_q) +__GMP_EXTERN_INLINE +#endif +void +mpz_set_q (mpz_ptr __gmp_w, mpq_srcptr __gmp_u) +{ + mpz_tdiv_q (__gmp_w, mpq_numref (__gmp_u), mpq_denref (__gmp_u)); +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_size) +#if ! defined (__GMP_FORCE_mpz_size) +__GMP_EXTERN_INLINE +#endif +size_t +mpz_size (mpz_srcptr __gmp_z) __GMP_NOTHROW +{ + return __GMP_ABS (__gmp_z->_mp_size); +} +#endif + + +/**************** mpq inlines ****************/ + +#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpq_abs) +__GMP_EXTERN_INLINE void +mpq_abs (mpq_ptr __gmp_w, mpq_srcptr __gmp_u) +{ + if (__gmp_w != __gmp_u) + mpq_set (__gmp_w, __gmp_u); + __gmp_w->_mp_num._mp_size = __GMP_ABS (__gmp_w->_mp_num._mp_size); +} +#endif + +#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpq_neg) +__GMP_EXTERN_INLINE void +mpq_neg (mpq_ptr __gmp_w, mpq_srcptr __gmp_u) +{ + if (__gmp_w != __gmp_u) + mpq_set (__gmp_w, __gmp_u); + __gmp_w->_mp_num._mp_size = - __gmp_w->_mp_num._mp_size; +} +#endif + + +/**************** mpn inlines ****************/ + +/* The comments with __GMPN_ADD_1 below apply here too. + + The test for FUNCTION returning 0 should predict well. If it's assumed + {yp,ysize} will usually have a random number of bits then the high limb + won't be full and a carry out will occur a good deal less than 50% of the + time. + + ysize==0 isn't a documented feature, but is used internally in a few + places. + + Producing cout last stops it using up a register during the main part of + the calculation, though gcc (as of 3.0) on an "if (mpn_add (...))" + doesn't seem able to move the true and false legs of the conditional up + to the two places cout is generated. */ + +#define __GMPN_AORS(cout, wp, xp, xsize, yp, ysize, FUNCTION, TEST) \ + do { \ + mp_size_t __gmp_i; \ + mp_limb_t __gmp_x; \ + \ + /* ASSERT ((ysize) >= 0); */ \ + /* ASSERT ((xsize) >= (ysize)); */ \ + /* ASSERT (MPN_SAME_OR_SEPARATE2_P (wp, xsize, xp, xsize)); */ \ + /* ASSERT (MPN_SAME_OR_SEPARATE2_P (wp, xsize, yp, ysize)); */ \ + \ + __gmp_i = (ysize); \ + if (__gmp_i != 0) \ + { \ + if (FUNCTION (wp, xp, yp, __gmp_i)) \ + { \ + do \ + { \ + if (__gmp_i >= (xsize)) \ + { \ + (cout) = 1; \ + goto __gmp_done; \ + } \ + __gmp_x = (xp)[__gmp_i]; \ + } \ + while (TEST); \ + } \ + } \ + if ((wp) != (xp)) \ + __GMPN_COPY_REST (wp, xp, xsize, __gmp_i); \ + (cout) = 0; \ + __gmp_done: \ + ; \ + } while (0) + +#define __GMPN_ADD(cout, wp, xp, xsize, yp, ysize) \ + __GMPN_AORS (cout, wp, xp, xsize, yp, ysize, mpn_add_n, \ + (((wp)[__gmp_i++] = (__gmp_x + 1) & GMP_NUMB_MASK) == 0)) +#define __GMPN_SUB(cout, wp, xp, xsize, yp, ysize) \ + __GMPN_AORS (cout, wp, xp, xsize, yp, ysize, mpn_sub_n, \ + (((wp)[__gmp_i++] = (__gmp_x - 1) & GMP_NUMB_MASK), __gmp_x == 0)) + + +/* The use of __gmp_i indexing is designed to ensure a compile time src==dst + remains nice and clear to the compiler, so that __GMPN_COPY_REST can + disappear, and the load/add/store gets a chance to become a + read-modify-write on CISC CPUs. + + Alternatives: + + Using a pair of pointers instead of indexing would be possible, but gcc + isn't able to recognise compile-time src==dst in that case, even when the + pointers are incremented more or less together. Other compilers would + very likely have similar difficulty. + + gcc could use "if (__builtin_constant_p(src==dst) && src==dst)" or + similar to detect a compile-time src==dst. This works nicely on gcc + 2.95.x, it's not good on gcc 3.0 where __builtin_constant_p(p==p) seems + to be always false, for a pointer p. But the current code form seems + good enough for src==dst anyway. + + gcc on x86 as usual doesn't give particularly good flags handling for the + carry/borrow detection. It's tempting to want some multi instruction asm + blocks to help it, and this was tried, but in truth there's only a few + instructions to save and any gain is all too easily lost by register + juggling setting up for the asm. */ + +#if GMP_NAIL_BITS == 0 +#define __GMPN_AORS_1(cout, dst, src, n, v, OP, CB) \ + do { \ + mp_size_t __gmp_i; \ + mp_limb_t __gmp_x, __gmp_r; \ + \ + /* ASSERT ((n) >= 1); */ \ + /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, n)); */ \ + \ + __gmp_x = (src)[0]; \ + __gmp_r = __gmp_x OP (v); \ + (dst)[0] = __gmp_r; \ + if (CB (__gmp_r, __gmp_x, (v))) \ + { \ + (cout) = 1; \ + for (__gmp_i = 1; __gmp_i < (n);) \ + { \ + __gmp_x = (src)[__gmp_i]; \ + __gmp_r = __gmp_x OP 1; \ + (dst)[__gmp_i] = __gmp_r; \ + ++__gmp_i; \ + if (!CB (__gmp_r, __gmp_x, 1)) \ + { \ + if ((src) != (dst)) \ + __GMPN_COPY_REST (dst, src, n, __gmp_i); \ + (cout) = 0; \ + break; \ + } \ + } \ + } \ + else \ + { \ + if ((src) != (dst)) \ + __GMPN_COPY_REST (dst, src, n, 1); \ + (cout) = 0; \ + } \ + } while (0) +#endif + +#if GMP_NAIL_BITS >= 1 +#define __GMPN_AORS_1(cout, dst, src, n, v, OP, CB) \ + do { \ + mp_size_t __gmp_i; \ + mp_limb_t __gmp_x, __gmp_r; \ + \ + /* ASSERT ((n) >= 1); */ \ + /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, n)); */ \ + \ + __gmp_x = (src)[0]; \ + __gmp_r = __gmp_x OP (v); \ + (dst)[0] = __gmp_r & GMP_NUMB_MASK; \ + if (__gmp_r >> GMP_NUMB_BITS != 0) \ + { \ + (cout) = 1; \ + for (__gmp_i = 1; __gmp_i < (n);) \ + { \ + __gmp_x = (src)[__gmp_i]; \ + __gmp_r = __gmp_x OP 1; \ + (dst)[__gmp_i] = __gmp_r & GMP_NUMB_MASK; \ + ++__gmp_i; \ + if (__gmp_r >> GMP_NUMB_BITS == 0) \ + { \ + if ((src) != (dst)) \ + __GMPN_COPY_REST (dst, src, n, __gmp_i); \ + (cout) = 0; \ + break; \ + } \ + } \ + } \ + else \ + { \ + if ((src) != (dst)) \ + __GMPN_COPY_REST (dst, src, n, 1); \ + (cout) = 0; \ + } \ + } while (0) +#endif + +#define __GMPN_ADDCB(r,x,y) ((r) < (y)) +#define __GMPN_SUBCB(r,x,y) ((x) < (y)) + +#define __GMPN_ADD_1(cout, dst, src, n, v) \ + __GMPN_AORS_1(cout, dst, src, n, v, +, __GMPN_ADDCB) +#define __GMPN_SUB_1(cout, dst, src, n, v) \ + __GMPN_AORS_1(cout, dst, src, n, v, -, __GMPN_SUBCB) + + +/* Compare {xp,size} and {yp,size}, setting "result" to positive, zero or + negative. size==0 is allowed. On random data usually only one limb will + need to be examined to get a result, so it's worth having it inline. */ +#define __GMPN_CMP(result, xp, yp, size) \ + do { \ + mp_size_t __gmp_i; \ + mp_limb_t __gmp_x, __gmp_y; \ + \ + /* ASSERT ((size) >= 0); */ \ + \ + (result) = 0; \ + __gmp_i = (size); \ + while (--__gmp_i >= 0) \ + { \ + __gmp_x = (xp)[__gmp_i]; \ + __gmp_y = (yp)[__gmp_i]; \ + if (__gmp_x != __gmp_y) \ + { \ + /* Cannot use __gmp_x - __gmp_y, may overflow an "int" */ \ + (result) = (__gmp_x > __gmp_y ? 1 : -1); \ + break; \ + } \ + } \ + } while (0) + + +#if defined (__GMPN_COPY) && ! defined (__GMPN_COPY_REST) +#define __GMPN_COPY_REST(dst, src, size, start) \ + do { \ + /* ASSERT ((start) >= 0); */ \ + /* ASSERT ((start) <= (size)); */ \ + __GMPN_COPY ((dst)+(start), (src)+(start), (size)-(start)); \ + } while (0) +#endif + +/* Copy {src,size} to {dst,size}, starting at "start". This is designed to + keep the indexing dst[j] and src[j] nice and simple for __GMPN_ADD_1, + __GMPN_ADD, etc. */ +#if ! defined (__GMPN_COPY_REST) +#define __GMPN_COPY_REST(dst, src, size, start) \ + do { \ + mp_size_t __gmp_j; \ + /* ASSERT ((size) >= 0); */ \ + /* ASSERT ((start) >= 0); */ \ + /* ASSERT ((start) <= (size)); */ \ + /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, size)); */ \ + __GMP_CRAY_Pragma ("_CRI ivdep"); \ + for (__gmp_j = (start); __gmp_j < (size); __gmp_j++) \ + (dst)[__gmp_j] = (src)[__gmp_j]; \ + } while (0) +#endif + +/* Enhancement: Use some of the smarter code from gmp-impl.h. Maybe use + mpn_copyi if there's a native version, and if we don't mind demanding + binary compatibility for it (on targets which use it). */ + +#if ! defined (__GMPN_COPY) +#define __GMPN_COPY(dst, src, size) __GMPN_COPY_REST (dst, src, size, 0) +#endif + + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_add) +#if ! defined (__GMP_FORCE_mpn_add) +__GMP_EXTERN_INLINE +#endif +mp_limb_t +mpn_add (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) +{ + mp_limb_t __gmp_c; + __GMPN_ADD (__gmp_c, __gmp_wp, __gmp_xp, __gmp_xsize, __gmp_yp, __gmp_ysize); + return __gmp_c; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_add_1) +#if ! defined (__GMP_FORCE_mpn_add_1) +__GMP_EXTERN_INLINE +#endif +mp_limb_t +mpn_add_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) __GMP_NOTHROW +{ + mp_limb_t __gmp_c; + __GMPN_ADD_1 (__gmp_c, __gmp_dst, __gmp_src, __gmp_size, __gmp_n); + return __gmp_c; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_cmp) +#if ! defined (__GMP_FORCE_mpn_cmp) +__GMP_EXTERN_INLINE +#endif +int +mpn_cmp (mp_srcptr __gmp_xp, mp_srcptr __gmp_yp, mp_size_t __gmp_size) __GMP_NOTHROW +{ + int __gmp_result; + __GMPN_CMP (__gmp_result, __gmp_xp, __gmp_yp, __gmp_size); + return __gmp_result; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_zero_p) +#if ! defined (__GMP_FORCE_mpn_zero_p) +__GMP_EXTERN_INLINE +#endif +int +mpn_zero_p (mp_srcptr __gmp_p, mp_size_t __gmp_n) __GMP_NOTHROW +{ + /* if (__GMP_LIKELY (__gmp_n > 0)) */ + do { + if (__gmp_p[--__gmp_n] != 0) + return 0; + } while (__gmp_n != 0); + return 1; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_sub) +#if ! defined (__GMP_FORCE_mpn_sub) +__GMP_EXTERN_INLINE +#endif +mp_limb_t +mpn_sub (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) +{ + mp_limb_t __gmp_c; + __GMPN_SUB (__gmp_c, __gmp_wp, __gmp_xp, __gmp_xsize, __gmp_yp, __gmp_ysize); + return __gmp_c; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_sub_1) +#if ! defined (__GMP_FORCE_mpn_sub_1) +__GMP_EXTERN_INLINE +#endif +mp_limb_t +mpn_sub_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) __GMP_NOTHROW +{ + mp_limb_t __gmp_c; + __GMPN_SUB_1 (__gmp_c, __gmp_dst, __gmp_src, __gmp_size, __gmp_n); + return __gmp_c; +} +#endif + +#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_neg) +#if ! defined (__GMP_FORCE_mpn_neg) +__GMP_EXTERN_INLINE +#endif +mp_limb_t +mpn_neg (mp_ptr __gmp_rp, mp_srcptr __gmp_up, mp_size_t __gmp_n) +{ + while (*__gmp_up == 0) /* Low zero limbs are unchanged by negation. */ + { + *__gmp_rp = 0; + if (!--__gmp_n) /* All zero */ + return 0; + ++__gmp_up; ++__gmp_rp; + } + + *__gmp_rp = (- *__gmp_up) & GMP_NUMB_MASK; + + if (--__gmp_n) /* Higher limbs get complemented. */ + mpn_com (++__gmp_rp, ++__gmp_up, __gmp_n); + + return 1; +} +#endif + +#if defined (__cplusplus) +} +#endif + + +/* Allow faster testing for negative, zero, and positive. */ +#define mpz_sgn(Z) ((Z)->_mp_size < 0 ? -1 : (Z)->_mp_size > 0) +#define mpf_sgn(F) ((F)->_mp_size < 0 ? -1 : (F)->_mp_size > 0) +#define mpq_sgn(Q) ((Q)->_mp_num._mp_size < 0 ? -1 : (Q)->_mp_num._mp_size > 0) + +/* When using GCC, optimize certain common comparisons. */ +#if defined (__GNUC__) && __GNUC__ >= 2 +#define mpz_cmp_ui(Z,UI) \ + (__builtin_constant_p (UI) && (UI) == 0 \ + ? mpz_sgn (Z) : _mpz_cmp_ui (Z,UI)) +#define mpz_cmp_si(Z,SI) \ + (__builtin_constant_p ((SI) >= 0) && (SI) >= 0 \ + ? mpz_cmp_ui (Z, __GMP_CAST (unsigned long, SI)) \ + : _mpz_cmp_si (Z,SI)) +#define mpq_cmp_ui(Q,NUI,DUI) \ + (__builtin_constant_p (NUI) && (NUI) == 0 ? mpq_sgn (Q) \ + : __builtin_constant_p ((NUI) == (DUI)) && (NUI) == (DUI) \ + ? mpz_cmp (mpq_numref (Q), mpq_denref (Q)) \ + : _mpq_cmp_ui (Q,NUI,DUI)) +#define mpq_cmp_si(q,n,d) \ + (__builtin_constant_p ((n) >= 0) && (n) >= 0 \ + ? mpq_cmp_ui (q, __GMP_CAST (unsigned long, n), d) \ + : _mpq_cmp_si (q, n, d)) +#else +#define mpz_cmp_ui(Z,UI) _mpz_cmp_ui (Z,UI) +#define mpz_cmp_si(Z,UI) _mpz_cmp_si (Z,UI) +#define mpq_cmp_ui(Q,NUI,DUI) _mpq_cmp_ui (Q,NUI,DUI) +#define mpq_cmp_si(q,n,d) _mpq_cmp_si(q,n,d) +#endif + + +/* Using "&" rather than "&&" means these can come out branch-free. Every + mpz_t has at least one limb allocated, so fetching the low limb is always + allowed. */ +#define mpz_odd_p(z) (((z)->_mp_size != 0) & __GMP_CAST (int, (z)->_mp_d[0])) +#define mpz_even_p(z) (! mpz_odd_p (z)) + + +/**************** C++ routines ****************/ + +#ifdef __cplusplus +__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpz_srcptr); +__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpq_srcptr); +__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpf_srcptr); +__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpz_ptr); +__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpq_ptr); +__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpf_ptr); +#endif + + +/* Source-level compatibility with GMP 2 and earlier. */ +#define mpn_divmod(qp,np,nsize,dp,dsize) \ + mpn_divrem (qp, __GMP_CAST (mp_size_t, 0), np, nsize, dp, dsize) + +/* Source-level compatibility with GMP 1. */ +#define mpz_mdiv mpz_fdiv_q +#define mpz_mdivmod mpz_fdiv_qr +#define mpz_mmod mpz_fdiv_r +#define mpz_mdiv_ui mpz_fdiv_q_ui +#define mpz_mdivmod_ui(q,r,n,d) \ + (((r) == 0) ? mpz_fdiv_q_ui (q,n,d) : mpz_fdiv_qr_ui (q,r,n,d)) +#define mpz_mmod_ui(r,n,d) \ + (((r) == 0) ? mpz_fdiv_ui (n,d) : mpz_fdiv_r_ui (r,n,d)) + +/* Useful synonyms, but not quite compatible with GMP 1. */ +#define mpz_div mpz_fdiv_q +#define mpz_divmod mpz_fdiv_qr +#define mpz_div_ui mpz_fdiv_q_ui +#define mpz_divmod_ui mpz_fdiv_qr_ui +#define mpz_div_2exp mpz_fdiv_q_2exp +#define mpz_mod_2exp mpz_fdiv_r_2exp + +enum +{ + GMP_ERROR_NONE = 0, + GMP_ERROR_UNSUPPORTED_ARGUMENT = 1, + GMP_ERROR_DIVISION_BY_ZERO = 2, + GMP_ERROR_SQRT_OF_NEGATIVE = 4, + GMP_ERROR_INVALID_ARGUMENT = 8 +}; + +/* Define CC and CFLAGS which were used to build this version of GMP */ +#define __GMP_CC "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" +#define __GMP_CFLAGS "-O2 -pedantic -march=armv8-a" + +/* Major version number is the value of __GNU_MP__ too, above. */ +#define __GNU_MP_VERSION 6 +#define __GNU_MP_VERSION_MINOR 2 +#define __GNU_MP_VERSION_PATCHLEVEL 1 +#define __GNU_MP_RELEASE (__GNU_MP_VERSION * 10000 + __GNU_MP_VERSION_MINOR * 100 + __GNU_MP_VERSION_PATCHLEVEL) + +#define __GMP_H__ +#endif /* __GMP_H__ */ diff --git a/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-maccatalyst/Headers/module.modulemap b/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-maccatalyst/Headers/module.modulemap new file mode 100644 index 00000000..d4a18c59 --- /dev/null +++ b/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-maccatalyst/Headers/module.modulemap @@ -0,0 +1,4 @@ +module gmp [system][extern_c] { + header "gmp.h" + export * +} diff --git a/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-maccatalyst/libgmp.a b/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-maccatalyst/libgmp.a new file mode 100644 index 00000000..cd3efccc --- /dev/null +++ b/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-maccatalyst/libgmp.a @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d433f0ed8b99495ff2087536404ac3ecf9cbacedc0f260fa28b7a39e017185f5 +size 7356776 diff --git a/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-simulator/Headers/gmp.h b/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-simulator/Headers/gmp.h index 3fd30559..db976b96 100644 --- a/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-simulator/Headers/gmp.h +++ b/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-simulator/Headers/gmp.h @@ -2323,7 +2323,7 @@ enum }; /* Define CC and CFLAGS which were used to build this version of GMP */ -#define __GMP_CC "/Applications/Xcode-14.2.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" +#define __GMP_CC "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" #define __GMP_CFLAGS "-O2 -pedantic -march=armv8-a" /* Major version number is the value of __GNU_MP__ too, above. */ diff --git a/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-simulator/libgmp.a b/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-simulator/libgmp.a index 4d808071..44ed90b1 100644 --- a/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-simulator/libgmp.a +++ b/tuist/GMPSPM/GMP.xcframework/ios-arm64_x86_64-simulator/libgmp.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5fc83bcf1e4175a531b126e4cdee0b784c3b9a98cc9bba5c554f58beff99fd65 -size 6950144 +oid sha256:fe984b4c785ca3110748bed828967c9bc40e37985b15d82c77214c91feda8e4a +size 7032400 diff --git a/tuist/GMPSPM/Package.swift b/tuist/GMPSPM/Package.swift index 394c1534..13818692 100644 --- a/tuist/GMPSPM/Package.swift +++ b/tuist/GMPSPM/Package.swift @@ -5,7 +5,8 @@ import PackageDescription let package = Package( name: "GMP", platforms: [ - .iOS(.v13) + .iOS(.v15), + .macOS(.v12), // No clear, we compile gmp with macabi 15.5 ], products: [ .library( diff --git a/tuist/ProjectDescriptionHelpers/Constants.swift b/tuist/ProjectDescriptionHelpers/Constants.swift index 56362bb0..6477cee6 100644 --- a/tuist/ProjectDescriptionHelpers/Constants.swift +++ b/tuist/ProjectDescriptionHelpers/Constants.swift @@ -1,6 +1,7 @@ import ProjectDescription public enum Constants { + static let developmentRegion = "en" static let availableRegions = [ @@ -13,21 +14,27 @@ public enum Constants { static let sampleAppBaseBundleIdentifier = baseAppBundleIdentifier + ".sample_app" - public static let iOSDeploymentTargetVersion = "13.0" + public static let iOSDeploymentTargetVersion = "15.5" - public static let iOSDeploymentDevices: DeploymentDevice = [.iphone, .ipad] + public static let iOSDeploymentDevices: DeploymentDevice = [.iphone, .ipad, .mac] - public static let deploymentTarget: DeploymentTarget = .iOS(targetVersion: Constants.iOSDeploymentTargetVersion, devices: Constants.iOSDeploymentDevices) + public static let deploymentTarget: DeploymentTarget = .iOS( + targetVersion: Constants.iOSDeploymentTargetVersion, + devices: Constants.iOSDeploymentDevices, + supportsMacDesignedForIOS: false) static let developmentTeam = "" - static let marketingVersion = "0.12.9" + static let marketingVersion = "1.3.1" static var buildNumber: String { get throws { - return "661" + return "719" } } + + public static let nsHumanReadableCopyrightValue = "Copyright © 2019-2023 Olvid SAS" + static let fileHeader = """ /* diff --git a/tuist/ProjectDescriptionHelpers/Project+Templates.swift b/tuist/ProjectDescriptionHelpers/Project+Templates.swift index 7e612c03..95dc5e14 100644 --- a/tuist/ProjectDescriptionHelpers/Project+Templates.swift +++ b/tuist/ProjectDescriptionHelpers/Project+Templates.swift @@ -1,12 +1,14 @@ import ProjectDescription public extension Project { + static func createProject( name: String, packages: [Package], targets: [Target], shouldEnableDefaultResourceSynthesizers: Bool = false ) -> Self { + return .init( name: name, organizationName: "Olvid", @@ -18,8 +20,10 @@ public extension Project { fileHeaderTemplate: .string(Constants.fileHeader), resourceSynthesizers: Self.defaultResourceSynthesizers(shouldEnableDefaultResourceSynthesizers: shouldEnableDefaultResourceSynthesizers) ) + } + private static func defaultOptions() -> Project.Options { return .options(automaticSchemesOptions: .disabled, defaultKnownRegions: Constants.availableRegions, @@ -47,19 +51,19 @@ public extension Project { case .app: let runActionOptions = RunActionOptions.options() - let runEnvironment: [String: String] = [ - "SQLITE_ENABLE_THREAD_ASSERTIONS": "1", - "SQLITE_ENABLE_FILE_ASSERTIONS": "1" + let environmentVariables: [String: EnvironmentVariable] = [ + "SQLITE_ENABLE_THREAD_ASSERTIONS": .init(stringLiteral: "1"), + "SQLITE_ENABLE_FILE_ASSERTIONS": .init(stringLiteral: "1"), ] let launchArguments: [LaunchArgument] = [ .init(name: "-com.apple.CoreData.MigrationDebug 1", isEnabled: true), .init(name: "-com.apple.CoreData.SQLDebug 1", isEnabled: false), - .init(name: "-com.apple.CoreData.ConcurrencyDebug 1", isEnabled: true) + .init(name: "-com.apple.CoreData.ConcurrencyDebug 1", isEnabled: true), + .init(name: "-NSShowNonLocalizedStrings YES", isEnabled: true), ] - let arguments = Arguments(environment: runEnvironment, - launchArguments: launchArguments) + let arguments = Arguments.init(environmentVariables: environmentVariables, launchArguments: launchArguments) let appStoreScheme = Scheme(name: $0.name, shared: true, @@ -89,16 +93,21 @@ public extension Project { .staticFramework, .staticLibrary, .stickerPackExtension, + .systemExtension, .tvTopShelfExtension, .uiTests, .unitTests, + .macro, .watch2App, .watch2Extension, .xpc: return [] + + case .extensionKitExtension: + fatalError("please handle me, case: \($0.product)") @unknown default: - return [] + fatalError("please handle me, case: \($0.product)") } } } diff --git a/tuist/ProjectDescriptionHelpers/Settings+Templates.swift b/tuist/ProjectDescriptionHelpers/Settings+Templates.swift index 99b7fe07..04118c50 100644 --- a/tuist/ProjectDescriptionHelpers/Settings+Templates.swift +++ b/tuist/ProjectDescriptionHelpers/Settings+Templates.swift @@ -2,6 +2,7 @@ import ProjectDescription import Foundation internal extension SettingsDictionary { + func applicationExtensionAPIOnly(_ value: Bool) -> Self { if value { return merging(["APPLICATION_EXTENSION_API_ONLY": .init(booleanLiteral: value)]) @@ -9,6 +10,7 @@ internal extension SettingsDictionary { return self } } + func enableModuleDefinition(moduleName: String) -> Self { return merging([ @@ -25,8 +27,8 @@ internal extension SettingsDictionary { return merging(["GENERATE_INFOPLIST_FILE": false]) } - func disableSwiftLocalizableStringsExtraction() -> Self { - return merging(["SWIFT_EMIT_LOC_STRINGS": false]) + func setSwiftLocalizableStringsExtraction(to bool: Bool) -> Self { + return merging(["SWIFT_EMIT_LOC_STRINGS": .init(booleanLiteral: bool)]) } func assetCompilerAppIcon(name: String) -> Self { @@ -91,7 +93,7 @@ private extension Settings { ] private static let _keysToExcludeForUITargetsFromRecommendedDefaultSettings: Set = [ - "ASSETCATALOG_COMPILER_APPICON_NAME" + "ASSETCATALOG_COMPILER_APPICON_NAME", ] static let defaultSettingsForProjects: DefaultSettings = { @@ -109,14 +111,18 @@ private extension Settings { } public extension Settings { + + static func defaultProjectSettings() -> Self { return defaultProjectSettings(appending: [:]) } + static func defaultProjectSettings( appending base: SettingsDictionary, iOSDeploymentTargetVersion: String = Constants.iOSDeploymentTargetVersion ) -> Self { + let baseSettings: SettingsDictionary = base .injectBaseValues() .automaticCodeSigning(devTeam: Constants.developmentTeam) @@ -124,7 +130,7 @@ public extension Settings { .currentProjectVersion(try! Constants.buildNumber) .iOSDeploymentTargetVersion(iOSDeploymentTargetVersion) .disableInfoPlistGeneration() - .disableSwiftLocalizableStringsExtraction() + .setSwiftLocalizableStringsExtraction(to: true) .swiftActiveCompilationConditions("$(inherited)", "$(OLVID_MODE_SWIFT_ACTIVE_COMPILATION_CONDITIONS)", "$(OLVID_SERVER_SWIFT_ACTIVE_COMPILATION_CONDITIONS)") .excludedFileNames("$(inherited)", "$(OLVID_MODE_EXCLUDED_SOURCE_FILE_NAMES)", "$(OLVID_SERVER_EXCLUDED_SOURCE_FILE_NAMES)") .disableAppleGenericVersioning() @@ -133,6 +139,7 @@ public extension Settings { configurations: defaultConfigurations, defaultSettings: defaultSettingsForProjects) } + static func defaultSPMProjectSettings() -> Self { return .settings(base: [:], @@ -161,27 +168,16 @@ public extension Settings { } private extension Configuration { + private static func modeBaseSettings(activeCompilationConditions: String..., includedSourceFileNames: String..., - excludedSourceFileNames: String..., - enableBonjourInfoPlistAdditions: Bool, - enableRevealInfoPlistAdditions: Bool) -> SettingsDictionary { - if enableRevealInfoPlistAdditions && !enableBonjourInfoPlistAdditions { - preconditionFailure("enableBonjourInfoPlistAdditions should be enable if enabling enableRevealInfoPlistAdditions") - } + excludedSourceFileNames: String...) -> SettingsDictionary { - let excludeRevealSourceFilenames: [String] - - if enableRevealInfoPlistAdditions { - excludeRevealSourceFilenames = [] - } else { - excludeRevealSourceFilenames = ["Reveal*"] - } - - return ["OLVID_MODE_SWIFT_ACTIVE_COMPILATION_CONDITIONS": .array(["$(inherited)"] + activeCompilationConditions), - "OLVID_MODE_INCLUDED_SOURCE_FILE_NAMES": .array(["$(inherited)"] + includedSourceFileNames), - "OLVID_MODE_EXCLUDED_SOURCE_FILE_NAMES": .array(["$(inherited)"] + excludedSourceFileNames + excludeRevealSourceFilenames), - "OLVID_ENABLE_INFO_PLIST_BONJOUR_ADDITIONS": .init(booleanLiteral: enableBonjourInfoPlistAdditions)] + return [ + "OLVID_MODE_SWIFT_ACTIVE_COMPILATION_CONDITIONS": .array(["$(inherited)"] + activeCompilationConditions), + "OLVID_MODE_INCLUDED_SOURCE_FILE_NAMES": .array(["$(inherited)"] + includedSourceFileNames), + "OLVID_MODE_EXCLUDED_SOURCE_FILE_NAMES": .array(["$(inherited)"] + excludedSourceFileNames), + ] } private static func serverBaseSettings(bundleIdentifierSuffix: String, @@ -190,7 +186,6 @@ private extension Configuration { notificationServiceExtensionBundleIdentifier: String, intentsExtensionBundleIdentifier: String, activeCompilationConditions: String..., - harcodedAPIKey: String, serverURL: String, includedSourceFileNames: String..., excludedSourceFileNames: String..., @@ -200,22 +195,23 @@ private extension Configuration { invitationsHost: String, configurationsHost: String, openIDRedirectHost: String) -> SettingsDictionary { - return ["OLVID_PRODUCT_BUNDLE_IDENTIFIER_SERVER_SUFFIX": .string(bundleIdentifierSuffix), - "OLVID_PRODUCT_BUNDLE_DISPLAY_NAME_SERVER_SUFFIX": .string(displayNameSuffix), - "OBV_PRODUCT_BUNDLE_IDENTIFIER_FOR_SHARE_EXTENSION": .string(shareExtensionBundleIdentifier), - "OBV_PRODUCT_BUNDLE_IDENTIFIER_FOR_NOTIFICATION_SERVICE_EXTENSION": .string(notificationServiceExtensionBundleIdentifier), - "OBV_PRODUCT_BUNDLE_IDENTIFIER_FOR_INTENTS_EXTENSION": .string(intentsExtensionBundleIdentifier), - "OLVID_SERVER_SWIFT_ACTIVE_COMPILATION_CONDITIONS": .array(["$(inherited)"] + activeCompilationConditions), - "HARDCODED_API_KEY": .string(harcodedAPIKey), - "OBV_SERVER_URL": .string(serverURL), - "OLVID_SERVER_INCLUDED_SOURCE_FILE_NAMES": .array(["$(inherited)"] + includedSourceFileNames), - "OLVID_SERVER_EXCLUDED_SOURCE_FILE_NAMES": .array(["$(inherited)"] + excludedSourceFileNames), - "OLVID_ASSETCATALOG_COMPILER_APPICON_NAME_SUFFIX": .string(assetCatalogAppIconNameSuffix), - "OBV_DEVELOPMENT_MODE": .init(booleanLiteral: isDevelopmentServerMode), - "OBV_APP_GROUP_IDENTIFIER": .string(appGroupIdentifier), - "OBV_HOST_FOR_INVITATIONS": .string(invitationsHost), - "OBV_HOST_FOR_CONFIGURATIONS": .string(configurationsHost), - "OBV_HOST_FOR_OPENID_REDIRECT": .string(openIDRedirectHost)] + return [ + "OLVID_PRODUCT_BUNDLE_IDENTIFIER_SERVER_SUFFIX": .string(bundleIdentifierSuffix), + "OLVID_PRODUCT_BUNDLE_DISPLAY_NAME_SERVER_SUFFIX": .string(displayNameSuffix), + "OBV_PRODUCT_BUNDLE_IDENTIFIER_FOR_SHARE_EXTENSION": .string(shareExtensionBundleIdentifier), + "OBV_PRODUCT_BUNDLE_IDENTIFIER_FOR_NOTIFICATION_SERVICE_EXTENSION": .string(notificationServiceExtensionBundleIdentifier), + "OBV_PRODUCT_BUNDLE_IDENTIFIER_FOR_INTENTS_EXTENSION": .string(intentsExtensionBundleIdentifier), + "OLVID_SERVER_SWIFT_ACTIVE_COMPILATION_CONDITIONS": .array(["$(inherited)"] + activeCompilationConditions), + "OBV_SERVER_URL": .string(serverURL), + "OLVID_SERVER_INCLUDED_SOURCE_FILE_NAMES": .array(["$(inherited)"] + includedSourceFileNames), + "OLVID_SERVER_EXCLUDED_SOURCE_FILE_NAMES": .array(["$(inherited)"] + excludedSourceFileNames), + "OLVID_ASSETCATALOG_COMPILER_APPICON_NAME_SUFFIX": .string(assetCatalogAppIconNameSuffix), + "OBV_DEVELOPMENT_MODE": .init(booleanLiteral: isDevelopmentServerMode), + "OBV_APP_GROUP_IDENTIFIER": .string(appGroupIdentifier), + "OBV_HOST_FOR_INVITATIONS": .string(invitationsHost), + "OBV_HOST_FOR_CONFIGURATIONS": .string(configurationsHost), + "OBV_HOST_FOR_OPENID_REDIRECT": .string(openIDRedirectHost), + ] } private static let productionServerBase: SettingsDictionary = { @@ -225,7 +221,6 @@ private extension Configuration { notificationServiceExtensionBundleIdentifier: "io.olvid.messenger.extension-notification-service", intentsExtensionBundleIdentifier: "io.olvid.messenger.ObvMessengerIntentsExtension", activeCompilationConditions: "OLVID_SERVER_PRODUCTION", - harcodedAPIKey: "5288afb8-bfe0-2ab9-cb24-7b93a54be5d5", serverURL: "https://server.olvid.io", assetCatalogAppIconNameSuffix: "", isDevelopmentServerMode: false, @@ -234,29 +229,21 @@ private extension Configuration { configurationsHost: "configuration.olvid.io", openIDRedirectHost: "openid-redirect.olvid.io") }() + + static let appStoreDebug: Self = .debug( + name: .appStoreDebug, + settings: modeBaseSettings(activeCompilationConditions: "DEBUG").merging(productionServerBase), + xcconfig: nil) + + static let appStoreRelease: Self = .release( + name: .appStoreRelease, + settings: modeBaseSettings(activeCompilationConditions: "RELEASE").merging(productionServerBase), + xcconfig: nil) - static let appStoreDebug: Self = .debug(name: .appStoreDebug, - settings: modeBaseSettings(activeCompilationConditions: "DEBUG", - excludedSourceFileNames: "RevealServer.xcframework", - enableBonjourInfoPlistAdditions: false, - enableRevealInfoPlistAdditions: false) - .merging(productionServerBase), - xcconfig: nil) - - static let appStoreRelease: Self = .release(name: .appStoreRelease, - settings: modeBaseSettings(activeCompilationConditions: "RELEASE", - excludedSourceFileNames: "RevealServer.xcframework", - enableBonjourInfoPlistAdditions: false, - enableRevealInfoPlistAdditions: false) - .merging(productionServerBase), - xcconfig: nil) } internal extension ConfigurationName { - /// AppStore~Debug static let appStoreDebug: Self = "AppStore~Debug" - - /// AppStore~Release static let appStoreRelease: Self = "AppStore~Release" } diff --git a/tuist/ProjectDescriptionHelpers/Target+Templates.swift b/tuist/ProjectDescriptionHelpers/Target+Templates.swift index 348e588f..6b2bb7b4 100644 --- a/tuist/ProjectDescriptionHelpers/Target+Templates.swift +++ b/tuist/ProjectDescriptionHelpers/Target+Templates.swift @@ -20,16 +20,16 @@ extension Target { resources: ProjectDescription.ResourceFileElements? = nil, copyFiles: [ProjectDescription.CopyFilesAction]? = nil, headers: ProjectDescription.Headers? = nil, - entitlements: ProjectDescription.Path? = nil, + entitlements: ProjectDescription.Entitlements? = nil, scripts: [ProjectDescription.TargetScript] = [], dependencies: [ProjectDescription.TargetDependency] = [], settings: ProjectDescription.Settings? = nil, coreDataModels: [ProjectDescription.CoreDataModel] = [], - environment: [String : String] = [:], + environmentVariables: [String : ProjectDescription.EnvironmentVariable] = [:], launchArguments: [ProjectDescription.LaunchArgument] = [], additionalFiles: [ProjectDescription.FileElement] = [] ) -> Self { - return self.init( + return Self.init( name: name, platform: .iOS, product: product, @@ -46,10 +46,9 @@ extension Target { dependencies: dependencies, settings: settings, coreDataModels: coreDataModels, - environment: environment, + environmentVariables: environmentVariables, launchArguments: launchArguments, - additionalFiles: additionalFiles - ) + additionalFiles: additionalFiles) } public static func mainApp( @@ -58,7 +57,7 @@ extension Target { infoPlist: InfoPlist, sources: SourceFilesList, resources: ResourceFileElements, - entitlements: Path, + entitlements: ProjectDescription.Entitlements, scripts: [ProjectDescription.TargetScript] = [], dependencies: [TargetDependency], settings: ProjectDescription.Settings, @@ -114,7 +113,7 @@ extension Target { infoPlist: InfoPlist, sources: SourceFilesList, resources: ResourceFileElements, - entitlements: Path?, + entitlements: ProjectDescription.Entitlements?, dependencies: [TargetDependency], settings: Settings, coreDataModels: [ProjectDescription.CoreDataModel] diff --git a/tuist/ProjectDescriptionHelpers/TargetDependency+Carthage+Templates.swift b/tuist/ProjectDescriptionHelpers/TargetDependency+Carthage+Templates.swift index 0616750d..23fb6d65 100644 --- a/tuist/ProjectDescriptionHelpers/TargetDependency+Carthage+Templates.swift +++ b/tuist/ProjectDescriptionHelpers/TargetDependency+Carthage+Templates.swift @@ -1,38 +1,60 @@ import ProjectDescription import Foundation + public extension TargetDependency { + enum CarthageDependency: CaseIterable { + /// https://gitlab.com/Olvid/appauthiosmodifiedforolvid/-/tree/modified-for-olvid - case appAuth + //case appAuth + + //case joseSwift public var dependency: CarthageDependencies.Dependency { switch self { - case .appAuth: - return .github(path: "https://github.com/olvid-io/AppAuth-iOS-for-Olvid.git", requirement: .branch("targetfix")) +// case .appAuth: +// // WARNING: When changing this, we must delete the Dependencies directory manually +// return .github(path: "https://github.com/openid/AppAuth-iOS", requirement: .exact(.init(1, 6, 2))) +// //return .github(path: "https://github.com/olvid-io/AppAuth-iOS-for-Olvid.git", requirement: .branch("targetfix")) +//// case .joseSwift: +//// return .github(path: "https://github.com/olvid-io/JOSESwift-for-Olvid", requirement: .branch("targetfix")) +//// // return .github(path: "https://github.com/airsidemobile/JOSESwift.git", requirement: .exact(.init(2, 4, 0))) + } } fileprivate var _productName: String { switch self { - case .appAuth: - return "AppAuth" +// case .appAuth: +// return "AppAuth" +// case .joseSwift: +// return "JOSESwift" } } } + } + public extension TargetDependency { + init(_ carthageDependency: CarthageDependency) { self = .external(name: carthageDependency._productName) } + } + extension CarthageDependencies { + public init(_ dependencies: [TargetDependency.CarthageDependency]) { + let targetDependencies: [CarthageDependencies.Dependency] = dependencies .map(\.dependency) self.init(targetDependencies) + } + } diff --git a/tuist/ProjectDescriptionHelpers/TargetDependency+InternalModules.swift b/tuist/ProjectDescriptionHelpers/TargetDependency+InternalModules.swift index 572a1876..223a702f 100644 --- a/tuist/ProjectDescriptionHelpers/TargetDependency+InternalModules.swift +++ b/tuist/ProjectDescriptionHelpers/TargetDependency+InternalModules.swift @@ -9,6 +9,8 @@ public extension TargetDependency { public static let obvBackupManager: TargetDependency = .project(target: "ObvBackupManager", path: .relativeToRoot("Engine")) + public static let obvSyncSnapshotManager: TargetDependency = .project(target: "ObvSyncSnapshotManager", path: .relativeToRoot("Engine")) + public static let obvChannelManager: TargetDependency = .project(target: "ObvChannelManager", path: .relativeToRoot("Engine")) public static let obvCrypto: TargetDependency = .project(target: "ObvCrypto", path: .relativeToRoot("Engine")) @@ -64,25 +66,23 @@ public extension TargetDependency { } } - public static let attachmentsDropView: TargetDependency = .project(target: "Discussions_AttachmentsDropView", path: .relativeToRoot("Modules/Discussions")) - public static let scrollToBottomButton: TargetDependency = .project(target: "Discussions_ScrollToBottomButton", path: .relativeToRoot("Modules/Discussions")) } + public enum UI { - - public enum CircledInitialsView { - public static let configuration: TargetDependency = .project(target: "UI_CircledInitialsView_CircledInitialsConfiguration", path: .relativeToRoot("Modules/UI")) - } - - public static let systemIcon: TargetDependency = .project(target: "UI_SystemIcon", path: .relativeToRoot("Modules/UI")) - +// public enum CircledInitialsView { +// public static let configuration: TargetDependency = .project(target: "UI_CircledInitialsView_CircledInitialsConfiguration", path: .relativeToRoot("Modules/UI")) +// } + public static let obvCircledInitials: TargetDependency = .project(target: "UI_ObvCircledInitials", path: .relativeToRoot("Modules/UI")) + public static let obvPhotoButton: TargetDependency = .project(target: "UI_ObvPhotoButton", path: .relativeToRoot("Modules/UI")) + public static let systemIcon: TargetDependency = .project(target: "UI_SystemIcon", path: .relativeToRoot("Modules/UI")) public static let systemIconSwiftUI: TargetDependency = .project(target: "UI_SystemIcon_SwiftUI", path: .relativeToRoot("Modules/UI")) - public static let systemIconUIKit: TargetDependency = .project(target: "UI_SystemIcon_UIKit", path: .relativeToRoot("Modules/UI")) - + public static let obvImageEditor: TargetDependency = .project(target: "UI_ObvImageEditor", path: .relativeToRoot("Modules/UI")) } + public enum Platform { public static let base: TargetDependency = .project(target: "Platform_Base", path: .relativeToRoot("Modules/Platform")) @@ -102,5 +102,10 @@ public extension TargetDependency { public static let obvUICoreData: TargetDependency = .project(target: "ObvUICoreData", path: .relativeToRoot("Modules")) public static let olvidUtils: TargetDependency = .project(target: "OlvidUtils", path: .relativeToRoot("Modules")) + + public static let obvDesignSystem: TargetDependency = .project(target: "ObvDesignSystem", path: .relativeToRoot("Modules")) + + public static let obvSettings: TargetDependency = .project(target: "ObvSettings", path: .relativeToRoot("Modules")) + } } diff --git a/tuist/ProjectDescriptionHelpers/TargetDependency+SPM+Templates.swift b/tuist/ProjectDescriptionHelpers/TargetDependency+SPM+Templates.swift index 437bfb37..608d2562 100644 --- a/tuist/ProjectDescriptionHelpers/TargetDependency+SPM+Templates.swift +++ b/tuist/ProjectDescriptionHelpers/TargetDependency+SPM+Templates.swift @@ -2,44 +2,31 @@ import ProjectDescription import Foundation public extension TargetDependency { + enum SPMDependency: CaseIterable { - /// https://github.com/airsidemobile/JOSESwift - case joseSwift - + /// local implementation of GMP case gmp - /// https://github.com/apple/swift-collections - case orderedCollections - public var package: Package { switch self { - case .joseSwift: - return .remote(url: "https://github.com/airsidemobile/JOSESwift.git", requirement: .exact("2.4.0")) case .gmp: - return .local(path: .relativeToRoot("tuist/GMPSPM")) - - case .orderedCollections: - return .remote(url: "https://github.com/apple/swift-collections.git", requirement: .exact("1.0.4")) + return .local(path: .relativeToRoot("Tuist/GMPSPM")) } } fileprivate var _productName: String { switch self { - case .joseSwift: - return "JOSESwift" case .gmp: return "GMP" - case .orderedCollections: - return "OrderedCollections" - } } } + } public extension TargetDependency { @@ -58,6 +45,9 @@ extension SwiftPackageManagerDependencies { } } + /// Although this init is deprecated, we continue to use until Tuist documentation is updated + /// See https://docs.tuist.io/guides/third-party-dependencies + /// As of 2023-11-29, the document appears to be wrong. self.init(uniquedPackages, baseSettings: .defaultSPMProjectSettings()) } diff --git a/tuist/ProjectDescriptionHelpers/TargetDependency+XCFrameworks.swift b/tuist/ProjectDescriptionHelpers/TargetDependency+XCFrameworks.swift index 4ff47df3..48bb9b0c 100644 --- a/tuist/ProjectDescriptionHelpers/TargetDependency+XCFrameworks.swift +++ b/tuist/ProjectDescriptionHelpers/TargetDependency+XCFrameworks.swift @@ -13,7 +13,7 @@ public extension TargetDependency { } fileprivate var path: Path { - return .relativeToRoot("tuist/xcframeworks/".appending(xcFrameworkName)) + return .relativeToRoot("Tuist/xcframeworks/".appending(xcFrameworkName)) } } } diff --git a/tuist/xcframeworks/WebRTC.xcframework/Info.plist b/tuist/xcframeworks/WebRTC.xcframework/Info.plist index 5ac9ef5c..825e5e73 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/Info.plist +++ b/tuist/xcframeworks/WebRTC.xcframework/Info.plist @@ -5,23 +5,24 @@ AvailableLibraries + BinaryPath + WebRTC.framework/WebRTC DebugSymbolsPath dSYMs LibraryIdentifier - ios-arm64_x86_64-simulator + ios-arm64 LibraryPath WebRTC.framework SupportedArchitectures arm64 - x86_64 SupportedPlatform ios - SupportedPlatformVariant - simulator + BinaryPath + WebRTC.framework/Versions/A/WebRTC DebugSymbolsPath dSYMs LibraryIdentifier @@ -39,18 +40,23 @@ maccatalyst + BinaryPath + WebRTC.framework/WebRTC DebugSymbolsPath dSYMs LibraryIdentifier - ios-arm64 + ios-arm64_x86_64-simulator LibraryPath WebRTC.framework SupportedArchitectures arm64 + x86_64 SupportedPlatform ios + SupportedPlatformVariant + simulator CFBundlePackageType diff --git a/tuist/xcframeworks/WebRTC.xcframework/LICENSE.md b/tuist/xcframeworks/WebRTC.xcframework/LICENSE.md index 6d484233..c964e561 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/LICENSE.md +++ b/tuist/xcframeworks/WebRTC.xcframework/LICENSE.md @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7a619c92159c23e88f6539fe1d29534dcf3206d2d28db80896a8ac19b02db48d -size 84091 +oid sha256:ae2bd4acd34781701c68902064ed50a48c49053c63cf25450bc3db9ab01cb783 +size 84103 diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCAudioSession.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCAudioSession.h index 0ca137d2..d7f66c65 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCAudioSession.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCAudioSession.h @@ -225,10 +225,14 @@ RTC_OBJC_EXPORT // AVAudioSession. `lockForConfiguration` must be called before using them // otherwise they will fail with kRTCAudioSessionErrorLockRequired. -- (BOOL)setCategory:(NSString *)category +- (BOOL)setCategory:(AVAudioSessionCategory)category + mode:(AVAudioSessionMode)mode + options:(AVAudioSessionCategoryOptions)options + error:(NSError **)outError; +- (BOOL)setCategory:(AVAudioSessionCategory)category withOptions:(AVAudioSessionCategoryOptions)options error:(NSError **)outError; -- (BOOL)setMode:(NSString *)mode error:(NSError **)outError; +- (BOOL)setMode:(AVAudioSessionMode)mode error:(NSError **)outError; - (BOOL)setInputGain:(float)gain error:(NSError **)outError; - (BOOL)setPreferredSampleRate:(double)sampleRate error:(NSError **)outError; - (BOOL)setPreferredIOBufferDuration:(NSTimeInterval)duration error:(NSError **)outError; diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h index be799203..59fcb758 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h @@ -17,9 +17,7 @@ NS_ASSUME_NONNULL_BEGIN RTC_EXTERN const int kRTCAudioSessionPreferredNumberOfChannels; RTC_EXTERN const double kRTCAudioSessionHighPerformanceSampleRate; -RTC_EXTERN const double kRTCAudioSessionLowComplexitySampleRate; RTC_EXTERN const double kRTCAudioSessionHighPerformanceIOBufferDuration; -RTC_EXTERN const double kRTCAudioSessionLowComplexityIOBufferDuration; // Struct to hold configuration values. RTC_OBJC_EXPORT diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCCallbackLogger.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCCallbackLogger.h index 8def162e..815ea25c 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCCallbackLogger.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCCallbackLogger.h @@ -32,7 +32,7 @@ RTC_OBJC_EXPORT // to implement dispatching to some other queue. - (void)start:(nullable RTCCallbackLoggerMessageHandler)handler; - (void)startWithMessageAndSeverityHandler: - (nullable RTCCallbackLoggerMessageAndSeverityHandler)handler; + (nullable RTCCallbackLoggerMessageAndSeverityHandler)handler; - (void)stop; diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCFieldTrials.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCFieldTrials.h index 4b76da8f..8a7de727 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCFieldTrials.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCFieldTrials.h @@ -14,14 +14,14 @@ /** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */ RTC_EXTERN NSString *const kRTCFieldTrialAudioForceABWENoTWCCKey; -RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03AdvertisedKey; -RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03Key; -RTC_EXTERN NSString * const kRTCFieldTrialH264HighProfileKey; -RTC_EXTERN NSString * const kRTCFieldTrialMinimizeResamplingOnMobileKey; +RTC_EXTERN NSString *const kRTCFieldTrialFlexFec03AdvertisedKey; +RTC_EXTERN NSString *const kRTCFieldTrialFlexFec03Key; +RTC_EXTERN NSString *const kRTCFieldTrialH264HighProfileKey; +RTC_EXTERN NSString *const kRTCFieldTrialMinimizeResamplingOnMobileKey; RTC_EXTERN NSString *const kRTCFieldTrialUseNWPathMonitor; /** The valid value for field trials above. */ -RTC_EXTERN NSString * const kRTCFieldTrialEnabledValue; +RTC_EXTERN NSString *const kRTCFieldTrialEnabledValue; /** Initialize field trials using a dictionary mapping field trial keys to their * values. See above for valid keys and values. Must be called before any other diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCLogging.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCLogging.h index 36f53d83..e8610da0 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCLogging.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCLogging.h @@ -34,9 +34,12 @@ RTC_EXTERN NSString* RTCFileName(const char* filePath); // Some convenience macros. -#define RTCLogString(format, ...) \ - [NSString stringWithFormat:@"(%@:%d %s): " format, RTCFileName(__FILE__), \ - __LINE__, __FUNCTION__, ##__VA_ARGS__] +#define RTCLogString(format, ...) \ + [NSString stringWithFormat:@"(%@:%d %s): " format, \ + RTCFileName(__FILE__), \ + __LINE__, \ + __FUNCTION__, \ + ##__VA_ARGS__] #define RTCLogFormat(severity, format, ...) \ do { \ @@ -44,17 +47,13 @@ RTC_EXTERN NSString* RTCFileName(const char* filePath); RTCLogEx(severity, log_string); \ } while (false) -#define RTCLogVerbose(format, ...) \ - RTCLogFormat(RTCLoggingSeverityVerbose, format, ##__VA_ARGS__) +#define RTCLogVerbose(format, ...) RTCLogFormat(RTCLoggingSeverityVerbose, format, ##__VA_ARGS__) -#define RTCLogInfo(format, ...) \ - RTCLogFormat(RTCLoggingSeverityInfo, format, ##__VA_ARGS__) +#define RTCLogInfo(format, ...) RTCLogFormat(RTCLoggingSeverityInfo, format, ##__VA_ARGS__) -#define RTCLogWarning(format, ...) \ - RTCLogFormat(RTCLoggingSeverityWarning, format, ##__VA_ARGS__) +#define RTCLogWarning(format, ...) RTCLogFormat(RTCLoggingSeverityWarning, format, ##__VA_ARGS__) -#define RTCLogError(format, ...) \ - RTCLogFormat(RTCLoggingSeverityError, format, ##__VA_ARGS__) +#define RTCLogError(format, ...) RTCLogFormat(RTCLoggingSeverityError, format, ##__VA_ARGS__) #if !defined(NDEBUG) #define RTCLogDebug(format, ...) RTCLogInfo(format, ##__VA_ARGS__) diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCMacros.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCMacros.h index 469e3c93..114ced0e 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCMacros.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCMacros.h @@ -36,9 +36,10 @@ // WebRTC.framework with their own prefix in case symbol clashing is a // problem. // -// This macro must only be defined here and not on via compiler flag to -// ensure it has a unique value. +// This macro must be defined uniformily across all the translation units. +#ifndef RTC_OBJC_TYPE_PREFIX #define RTC_OBJC_TYPE_PREFIX +#endif // RCT_OBJC_TYPE // diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCPeerConnection.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCPeerConnection.h index 5b06df82..400069c4 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCPeerConnection.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCPeerConnection.h @@ -82,9 +82,8 @@ typedef NS_ENUM(NSInteger, RTCStatsOutputLevel) { RTCStatsOutputLevelDebug, }; -typedef void (^RTCCreateSessionDescriptionCompletionHandler)(RTC_OBJC_TYPE(RTCSessionDescription) * - _Nullable sdp, - NSError *_Nullable error); +typedef void (^RTCCreateSessionDescriptionCompletionHandler)( + RTC_OBJC_TYPE(RTCSessionDescription) *_Nullable sdp, NSError *_Nullable error); typedef void (^RTCSetSessionDescriptionCompletionHandler)(NSError *_Nullable error); diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCRtpSender.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCRtpSender.h index edea5d83..b0f0e747 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCRtpSender.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCRtpSender.h @@ -21,8 +21,8 @@ RTC_OBJC_EXPORT @protocol RTC_OBJC_TYPE (RTCRtpSender) -/** A unique identifier for this sender. */ -@property(nonatomic, readonly) NSString *senderId; + /** A unique identifier for this sender. */ + @property(nonatomic, readonly) NSString *senderId; /** The currently active RTCRtpParameters, as defined in * https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters. diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoDecoder.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoDecoder.h index 9ffde998..32d79a08 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoDecoder.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoDecoder.h @@ -29,6 +29,7 @@ RTC_OBJC_EXPORT - (void)setCallback : (RTCVideoDecoderCallback)callback; - (NSInteger)startDecodeWithNumberOfCores:(int)numberOfCores; - (NSInteger)releaseDecoder; +// TODO(bugs.webrtc.org/15444): Remove obsolete missingFrames param. - (NSInteger)decode:(RTC_OBJC_TYPE(RTCEncodedImage) *)encodedImage missingFrames:(BOOL)missingFrames codecSpecificInfo:(nullable id)info diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoEncoder.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoEncoder.h index 2e921540..0a3a875d 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoEncoder.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoEncoder.h @@ -28,7 +28,7 @@ RTC_OBJC_EXPORT @protocol RTC_OBJC_TYPE (RTCVideoEncoder) -- (void)setCallback:(nullable RTCVideoEncoderCallback)callback; + - (void)setCallback : (nullable RTCVideoEncoderCallback)callback; - (NSInteger)startEncodeWithSettings:(RTC_OBJC_TYPE(RTCVideoEncoderSettings) *)settings numberOfCores:(int)numberOfCores; - (NSInteger)releaseEncoder; diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoFrame.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoFrame.h index 01294f57..a4ef6001 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoFrame.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/RTCVideoFrame.h @@ -45,7 +45,7 @@ RTC_OBJC_EXPORT @property(nonatomic, readonly) id buffer; - (instancetype)init NS_UNAVAILABLE; -- (instancetype) new NS_UNAVAILABLE; +- (instancetype)new NS_UNAVAILABLE; /** Initialize an RTCVideoFrame from a pixel buffer, rotation, and timestamp. * Deprecated - initialize with a RTCCVPixelBuffer instead diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/UIDevice+RTCDevice.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/UIDevice+RTCDevice.h index ab477e2a..4d04f38f 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/UIDevice+RTCDevice.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Headers/UIDevice+RTCDevice.h @@ -10,102 +10,8 @@ #import -typedef NS_ENUM(NSInteger, RTCDeviceType) { - RTCDeviceTypeUnknown, - RTCDeviceTypeIPhone1G, - RTCDeviceTypeIPhone3G, - RTCDeviceTypeIPhone3GS, - RTCDeviceTypeIPhone4, - RTCDeviceTypeIPhone4Verizon, - RTCDeviceTypeIPhone4S, - RTCDeviceTypeIPhone5GSM, - RTCDeviceTypeIPhone5GSM_CDMA, - RTCDeviceTypeIPhone5CGSM, - RTCDeviceTypeIPhone5CGSM_CDMA, - RTCDeviceTypeIPhone5SGSM, - RTCDeviceTypeIPhone5SGSM_CDMA, - RTCDeviceTypeIPhone6Plus, - RTCDeviceTypeIPhone6, - RTCDeviceTypeIPhone6S, - RTCDeviceTypeIPhone6SPlus, - RTCDeviceTypeIPhone7, - RTCDeviceTypeIPhone7Plus, - RTCDeviceTypeIPhoneSE, - RTCDeviceTypeIPhone8, - RTCDeviceTypeIPhone8Plus, - RTCDeviceTypeIPhoneX, - RTCDeviceTypeIPhoneXS, - RTCDeviceTypeIPhoneXSMax, - RTCDeviceTypeIPhoneXR, - RTCDeviceTypeIPhone11, - RTCDeviceTypeIPhone11Pro, - RTCDeviceTypeIPhone11ProMax, - RTCDeviceTypeIPhone12Mini, - RTCDeviceTypeIPhone12, - RTCDeviceTypeIPhone12Pro, - RTCDeviceTypeIPhone12ProMax, - RTCDeviceTypeIPhoneSE2Gen, - RTCDeviceTypeIPhone13, - RTCDeviceTypeIPhone13Mini, - RTCDeviceTypeIPhone13Pro, - RTCDeviceTypeIPhone13ProMax, - - RTCDeviceTypeIPodTouch1G, - RTCDeviceTypeIPodTouch2G, - RTCDeviceTypeIPodTouch3G, - RTCDeviceTypeIPodTouch4G, - RTCDeviceTypeIPodTouch5G, - RTCDeviceTypeIPodTouch6G, - RTCDeviceTypeIPodTouch7G, - RTCDeviceTypeIPad, - RTCDeviceTypeIPad2Wifi, - RTCDeviceTypeIPad2GSM, - RTCDeviceTypeIPad2CDMA, - RTCDeviceTypeIPad2Wifi2, - RTCDeviceTypeIPadMiniWifi, - RTCDeviceTypeIPadMiniGSM, - RTCDeviceTypeIPadMiniGSM_CDMA, - RTCDeviceTypeIPad3Wifi, - RTCDeviceTypeIPad3GSM_CDMA, - RTCDeviceTypeIPad3GSM, - RTCDeviceTypeIPad4Wifi, - RTCDeviceTypeIPad4GSM, - RTCDeviceTypeIPad4GSM_CDMA, - RTCDeviceTypeIPad5, - RTCDeviceTypeIPad6, - RTCDeviceTypeIPadAirWifi, - RTCDeviceTypeIPadAirCellular, - RTCDeviceTypeIPadAirWifiCellular, - RTCDeviceTypeIPadAir2, - RTCDeviceTypeIPadMini2GWifi, - RTCDeviceTypeIPadMini2GCellular, - RTCDeviceTypeIPadMini2GWifiCellular, - RTCDeviceTypeIPadMini3, - RTCDeviceTypeIPadMini4, - RTCDeviceTypeIPadPro9Inch, - RTCDeviceTypeIPadPro12Inch, - RTCDeviceTypeIPadPro12Inch2, - RTCDeviceTypeIPadPro10Inch, - RTCDeviceTypeIPad7Gen10Inch, - RTCDeviceTypeIPadPro3Gen11Inch, - RTCDeviceTypeIPadPro3Gen12Inch, - RTCDeviceTypeIPadPro4Gen11Inch, - RTCDeviceTypeIPadPro4Gen12Inch, - RTCDeviceTypeIPadMini5Gen, - RTCDeviceTypeIPadAir3Gen, - RTCDeviceTypeIPad8, - RTCDeviceTypeIPad9, - RTCDeviceTypeIPadMini6, - RTCDeviceTypeIPadAir4Gen, - RTCDeviceTypeIPadPro5Gen11Inch, - RTCDeviceTypeIPadPro5Gen12Inch, - RTCDeviceTypeSimulatori386, - RTCDeviceTypeSimulatorx86_64, -}; - @interface UIDevice (RTCDevice) -+ (RTCDeviceType)deviceType; -+ (BOOL)isIOS11OrLater; ++ (NSString *)machineName; @end diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Info.plist b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/Info.plist index d3daaf9d80ee13302abf4e3c144375c0a2d03403..c91a1eae509d0ed6a56170118611c1f093c2ebe5 100644 GIT binary patch delta 110 zcmeyy`jd6TJw|m?1H+iif{gsU)cj&Yb3KDFBSS}HBeS5?yih|u0}$WX(b&XfGBZ;q z7f9OB)X~(yd~zw1jp|p%AB_K)See+E_?bkQB$%X_l$q3-e3$~6QkgQCvY2w13YjV< KUt^MItOWqeXB+GQ delta 107 zcmey#`i*tNJw{a%BZHXCf{gsU)cj&YGd-hFBLinsqoCBhP(wWfJ%dmqBWE+y$*fG7 zoFGX<6K6w<$rVgCs$UqtGyY{_W@2IDWfEc%W0GJ}WKw1FV)AE7W=dnqV9H|3XDXe1 JlS!Vj3IKVN8#Mp` diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/WebRTC b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/WebRTC index 05f069b4..cd915fb1 100755 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/WebRTC +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64/WebRTC.framework/WebRTC @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7f617fee8fb1935d3f684c8af8ab4ab387e764c3268d76d8ba5892419780aa02 -size 7558952 +oid sha256:55caec5ec9d1a6d1444006292c369e60772e1c6b3e980f9e8c5f14ae28f844f2 +size 9647688 diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCAudioSession.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCAudioSession.h index 0ca137d2..d7f66c65 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCAudioSession.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCAudioSession.h @@ -225,10 +225,14 @@ RTC_OBJC_EXPORT // AVAudioSession. `lockForConfiguration` must be called before using them // otherwise they will fail with kRTCAudioSessionErrorLockRequired. -- (BOOL)setCategory:(NSString *)category +- (BOOL)setCategory:(AVAudioSessionCategory)category + mode:(AVAudioSessionMode)mode + options:(AVAudioSessionCategoryOptions)options + error:(NSError **)outError; +- (BOOL)setCategory:(AVAudioSessionCategory)category withOptions:(AVAudioSessionCategoryOptions)options error:(NSError **)outError; -- (BOOL)setMode:(NSString *)mode error:(NSError **)outError; +- (BOOL)setMode:(AVAudioSessionMode)mode error:(NSError **)outError; - (BOOL)setInputGain:(float)gain error:(NSError **)outError; - (BOOL)setPreferredSampleRate:(double)sampleRate error:(NSError **)outError; - (BOOL)setPreferredIOBufferDuration:(NSTimeInterval)duration error:(NSError **)outError; diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCAudioSessionConfiguration.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCAudioSessionConfiguration.h index be799203..59fcb758 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCAudioSessionConfiguration.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCAudioSessionConfiguration.h @@ -17,9 +17,7 @@ NS_ASSUME_NONNULL_BEGIN RTC_EXTERN const int kRTCAudioSessionPreferredNumberOfChannels; RTC_EXTERN const double kRTCAudioSessionHighPerformanceSampleRate; -RTC_EXTERN const double kRTCAudioSessionLowComplexitySampleRate; RTC_EXTERN const double kRTCAudioSessionHighPerformanceIOBufferDuration; -RTC_EXTERN const double kRTCAudioSessionLowComplexityIOBufferDuration; // Struct to hold configuration values. RTC_OBJC_EXPORT diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCCallbackLogger.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCCallbackLogger.h index 8def162e..815ea25c 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCCallbackLogger.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCCallbackLogger.h @@ -32,7 +32,7 @@ RTC_OBJC_EXPORT // to implement dispatching to some other queue. - (void)start:(nullable RTCCallbackLoggerMessageHandler)handler; - (void)startWithMessageAndSeverityHandler: - (nullable RTCCallbackLoggerMessageAndSeverityHandler)handler; + (nullable RTCCallbackLoggerMessageAndSeverityHandler)handler; - (void)stop; diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCFieldTrials.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCFieldTrials.h index 4b76da8f..8a7de727 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCFieldTrials.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCFieldTrials.h @@ -14,14 +14,14 @@ /** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */ RTC_EXTERN NSString *const kRTCFieldTrialAudioForceABWENoTWCCKey; -RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03AdvertisedKey; -RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03Key; -RTC_EXTERN NSString * const kRTCFieldTrialH264HighProfileKey; -RTC_EXTERN NSString * const kRTCFieldTrialMinimizeResamplingOnMobileKey; +RTC_EXTERN NSString *const kRTCFieldTrialFlexFec03AdvertisedKey; +RTC_EXTERN NSString *const kRTCFieldTrialFlexFec03Key; +RTC_EXTERN NSString *const kRTCFieldTrialH264HighProfileKey; +RTC_EXTERN NSString *const kRTCFieldTrialMinimizeResamplingOnMobileKey; RTC_EXTERN NSString *const kRTCFieldTrialUseNWPathMonitor; /** The valid value for field trials above. */ -RTC_EXTERN NSString * const kRTCFieldTrialEnabledValue; +RTC_EXTERN NSString *const kRTCFieldTrialEnabledValue; /** Initialize field trials using a dictionary mapping field trial keys to their * values. See above for valid keys and values. Must be called before any other diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCLogging.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCLogging.h index 36f53d83..e8610da0 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCLogging.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCLogging.h @@ -34,9 +34,12 @@ RTC_EXTERN NSString* RTCFileName(const char* filePath); // Some convenience macros. -#define RTCLogString(format, ...) \ - [NSString stringWithFormat:@"(%@:%d %s): " format, RTCFileName(__FILE__), \ - __LINE__, __FUNCTION__, ##__VA_ARGS__] +#define RTCLogString(format, ...) \ + [NSString stringWithFormat:@"(%@:%d %s): " format, \ + RTCFileName(__FILE__), \ + __LINE__, \ + __FUNCTION__, \ + ##__VA_ARGS__] #define RTCLogFormat(severity, format, ...) \ do { \ @@ -44,17 +47,13 @@ RTC_EXTERN NSString* RTCFileName(const char* filePath); RTCLogEx(severity, log_string); \ } while (false) -#define RTCLogVerbose(format, ...) \ - RTCLogFormat(RTCLoggingSeverityVerbose, format, ##__VA_ARGS__) +#define RTCLogVerbose(format, ...) RTCLogFormat(RTCLoggingSeverityVerbose, format, ##__VA_ARGS__) -#define RTCLogInfo(format, ...) \ - RTCLogFormat(RTCLoggingSeverityInfo, format, ##__VA_ARGS__) +#define RTCLogInfo(format, ...) RTCLogFormat(RTCLoggingSeverityInfo, format, ##__VA_ARGS__) -#define RTCLogWarning(format, ...) \ - RTCLogFormat(RTCLoggingSeverityWarning, format, ##__VA_ARGS__) +#define RTCLogWarning(format, ...) RTCLogFormat(RTCLoggingSeverityWarning, format, ##__VA_ARGS__) -#define RTCLogError(format, ...) \ - RTCLogFormat(RTCLoggingSeverityError, format, ##__VA_ARGS__) +#define RTCLogError(format, ...) RTCLogFormat(RTCLoggingSeverityError, format, ##__VA_ARGS__) #if !defined(NDEBUG) #define RTCLogDebug(format, ...) RTCLogInfo(format, ##__VA_ARGS__) diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCMacros.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCMacros.h index 469e3c93..114ced0e 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCMacros.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCMacros.h @@ -36,9 +36,10 @@ // WebRTC.framework with their own prefix in case symbol clashing is a // problem. // -// This macro must only be defined here and not on via compiler flag to -// ensure it has a unique value. +// This macro must be defined uniformily across all the translation units. +#ifndef RTC_OBJC_TYPE_PREFIX #define RTC_OBJC_TYPE_PREFIX +#endif // RCT_OBJC_TYPE // diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCPeerConnection.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCPeerConnection.h index 5b06df82..400069c4 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCPeerConnection.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCPeerConnection.h @@ -82,9 +82,8 @@ typedef NS_ENUM(NSInteger, RTCStatsOutputLevel) { RTCStatsOutputLevelDebug, }; -typedef void (^RTCCreateSessionDescriptionCompletionHandler)(RTC_OBJC_TYPE(RTCSessionDescription) * - _Nullable sdp, - NSError *_Nullable error); +typedef void (^RTCCreateSessionDescriptionCompletionHandler)( + RTC_OBJC_TYPE(RTCSessionDescription) *_Nullable sdp, NSError *_Nullable error); typedef void (^RTCSetSessionDescriptionCompletionHandler)(NSError *_Nullable error); diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCRtpSender.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCRtpSender.h index edea5d83..b0f0e747 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCRtpSender.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCRtpSender.h @@ -21,8 +21,8 @@ RTC_OBJC_EXPORT @protocol RTC_OBJC_TYPE (RTCRtpSender) -/** A unique identifier for this sender. */ -@property(nonatomic, readonly) NSString *senderId; + /** A unique identifier for this sender. */ + @property(nonatomic, readonly) NSString *senderId; /** The currently active RTCRtpParameters, as defined in * https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters. diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCVideoDecoder.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCVideoDecoder.h index 9ffde998..32d79a08 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCVideoDecoder.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCVideoDecoder.h @@ -29,6 +29,7 @@ RTC_OBJC_EXPORT - (void)setCallback : (RTCVideoDecoderCallback)callback; - (NSInteger)startDecodeWithNumberOfCores:(int)numberOfCores; - (NSInteger)releaseDecoder; +// TODO(bugs.webrtc.org/15444): Remove obsolete missingFrames param. - (NSInteger)decode:(RTC_OBJC_TYPE(RTCEncodedImage) *)encodedImage missingFrames:(BOOL)missingFrames codecSpecificInfo:(nullable id)info diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCVideoEncoder.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCVideoEncoder.h index 2e921540..0a3a875d 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCVideoEncoder.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCVideoEncoder.h @@ -28,7 +28,7 @@ RTC_OBJC_EXPORT @protocol RTC_OBJC_TYPE (RTCVideoEncoder) -- (void)setCallback:(nullable RTCVideoEncoderCallback)callback; + - (void)setCallback : (nullable RTCVideoEncoderCallback)callback; - (NSInteger)startEncodeWithSettings:(RTC_OBJC_TYPE(RTCVideoEncoderSettings) *)settings numberOfCores:(int)numberOfCores; - (NSInteger)releaseEncoder; diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCVideoFrame.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCVideoFrame.h index 01294f57..a4ef6001 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCVideoFrame.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/RTCVideoFrame.h @@ -45,7 +45,7 @@ RTC_OBJC_EXPORT @property(nonatomic, readonly) id buffer; - (instancetype)init NS_UNAVAILABLE; -- (instancetype) new NS_UNAVAILABLE; +- (instancetype)new NS_UNAVAILABLE; /** Initialize an RTCVideoFrame from a pixel buffer, rotation, and timestamp. * Deprecated - initialize with a RTCCVPixelBuffer instead diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/UIDevice+RTCDevice.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/UIDevice+RTCDevice.h index ab477e2a..4d04f38f 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/UIDevice+RTCDevice.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Headers/UIDevice+RTCDevice.h @@ -10,102 +10,8 @@ #import -typedef NS_ENUM(NSInteger, RTCDeviceType) { - RTCDeviceTypeUnknown, - RTCDeviceTypeIPhone1G, - RTCDeviceTypeIPhone3G, - RTCDeviceTypeIPhone3GS, - RTCDeviceTypeIPhone4, - RTCDeviceTypeIPhone4Verizon, - RTCDeviceTypeIPhone4S, - RTCDeviceTypeIPhone5GSM, - RTCDeviceTypeIPhone5GSM_CDMA, - RTCDeviceTypeIPhone5CGSM, - RTCDeviceTypeIPhone5CGSM_CDMA, - RTCDeviceTypeIPhone5SGSM, - RTCDeviceTypeIPhone5SGSM_CDMA, - RTCDeviceTypeIPhone6Plus, - RTCDeviceTypeIPhone6, - RTCDeviceTypeIPhone6S, - RTCDeviceTypeIPhone6SPlus, - RTCDeviceTypeIPhone7, - RTCDeviceTypeIPhone7Plus, - RTCDeviceTypeIPhoneSE, - RTCDeviceTypeIPhone8, - RTCDeviceTypeIPhone8Plus, - RTCDeviceTypeIPhoneX, - RTCDeviceTypeIPhoneXS, - RTCDeviceTypeIPhoneXSMax, - RTCDeviceTypeIPhoneXR, - RTCDeviceTypeIPhone11, - RTCDeviceTypeIPhone11Pro, - RTCDeviceTypeIPhone11ProMax, - RTCDeviceTypeIPhone12Mini, - RTCDeviceTypeIPhone12, - RTCDeviceTypeIPhone12Pro, - RTCDeviceTypeIPhone12ProMax, - RTCDeviceTypeIPhoneSE2Gen, - RTCDeviceTypeIPhone13, - RTCDeviceTypeIPhone13Mini, - RTCDeviceTypeIPhone13Pro, - RTCDeviceTypeIPhone13ProMax, - - RTCDeviceTypeIPodTouch1G, - RTCDeviceTypeIPodTouch2G, - RTCDeviceTypeIPodTouch3G, - RTCDeviceTypeIPodTouch4G, - RTCDeviceTypeIPodTouch5G, - RTCDeviceTypeIPodTouch6G, - RTCDeviceTypeIPodTouch7G, - RTCDeviceTypeIPad, - RTCDeviceTypeIPad2Wifi, - RTCDeviceTypeIPad2GSM, - RTCDeviceTypeIPad2CDMA, - RTCDeviceTypeIPad2Wifi2, - RTCDeviceTypeIPadMiniWifi, - RTCDeviceTypeIPadMiniGSM, - RTCDeviceTypeIPadMiniGSM_CDMA, - RTCDeviceTypeIPad3Wifi, - RTCDeviceTypeIPad3GSM_CDMA, - RTCDeviceTypeIPad3GSM, - RTCDeviceTypeIPad4Wifi, - RTCDeviceTypeIPad4GSM, - RTCDeviceTypeIPad4GSM_CDMA, - RTCDeviceTypeIPad5, - RTCDeviceTypeIPad6, - RTCDeviceTypeIPadAirWifi, - RTCDeviceTypeIPadAirCellular, - RTCDeviceTypeIPadAirWifiCellular, - RTCDeviceTypeIPadAir2, - RTCDeviceTypeIPadMini2GWifi, - RTCDeviceTypeIPadMini2GCellular, - RTCDeviceTypeIPadMini2GWifiCellular, - RTCDeviceTypeIPadMini3, - RTCDeviceTypeIPadMini4, - RTCDeviceTypeIPadPro9Inch, - RTCDeviceTypeIPadPro12Inch, - RTCDeviceTypeIPadPro12Inch2, - RTCDeviceTypeIPadPro10Inch, - RTCDeviceTypeIPad7Gen10Inch, - RTCDeviceTypeIPadPro3Gen11Inch, - RTCDeviceTypeIPadPro3Gen12Inch, - RTCDeviceTypeIPadPro4Gen11Inch, - RTCDeviceTypeIPadPro4Gen12Inch, - RTCDeviceTypeIPadMini5Gen, - RTCDeviceTypeIPadAir3Gen, - RTCDeviceTypeIPad8, - RTCDeviceTypeIPad9, - RTCDeviceTypeIPadMini6, - RTCDeviceTypeIPadAir4Gen, - RTCDeviceTypeIPadPro5Gen11Inch, - RTCDeviceTypeIPadPro5Gen12Inch, - RTCDeviceTypeSimulatori386, - RTCDeviceTypeSimulatorx86_64, -}; - @interface UIDevice (RTCDevice) -+ (RTCDeviceType)deviceType; -+ (BOOL)isIOS11OrLater; ++ (NSString *)machineName; @end diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Resources/Info.plist b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/Resources/Info.plist index 0e5ee39aae5d860016cbb36ed9bc6994898139a4..0bd70d66d5796a1fb46fca32991996a175deb464 100644 GIT binary patch delta 136 zcmeys`i6CaF|(Ss&PKBpjH;#vhEchR$@#?OT=sd=G>dInIwiOFO} zreyXoLsLgn1M|uGOg7G+8NV_9VPa-tVd7>IU=m>xW0GZ3WO8HjW{PJ@VoG63W6EU! Q113fY&7cdVp%haQ0QC|Xi2wiq delta 140 zcmaFE`hj(VF|)Rg?nbi}jLIfP22r_*$@#?QJp0DhVpX#fBK diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/WebRTC b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/WebRTC index 1eb89eec..0d10b6b3 100755 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/WebRTC +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-maccatalyst/WebRTC.framework/Versions/A/WebRTC @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cb8fad3c7f45ac5abc749853449cc178a73212edcf456c7031d8f3367eead7cb -size 17991632 +oid sha256:8f5bc4e1c7186fdf6ee65407cbb31c64240dcee8805a3347a3895ad00cf15e8a +size 23279128 diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSession.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSession.h index 0ca137d2..d7f66c65 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSession.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSession.h @@ -225,10 +225,14 @@ RTC_OBJC_EXPORT // AVAudioSession. `lockForConfiguration` must be called before using them // otherwise they will fail with kRTCAudioSessionErrorLockRequired. -- (BOOL)setCategory:(NSString *)category +- (BOOL)setCategory:(AVAudioSessionCategory)category + mode:(AVAudioSessionMode)mode + options:(AVAudioSessionCategoryOptions)options + error:(NSError **)outError; +- (BOOL)setCategory:(AVAudioSessionCategory)category withOptions:(AVAudioSessionCategoryOptions)options error:(NSError **)outError; -- (BOOL)setMode:(NSString *)mode error:(NSError **)outError; +- (BOOL)setMode:(AVAudioSessionMode)mode error:(NSError **)outError; - (BOOL)setInputGain:(float)gain error:(NSError **)outError; - (BOOL)setPreferredSampleRate:(double)sampleRate error:(NSError **)outError; - (BOOL)setPreferredIOBufferDuration:(NSTimeInterval)duration error:(NSError **)outError; diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h index be799203..59fcb758 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCAudioSessionConfiguration.h @@ -17,9 +17,7 @@ NS_ASSUME_NONNULL_BEGIN RTC_EXTERN const int kRTCAudioSessionPreferredNumberOfChannels; RTC_EXTERN const double kRTCAudioSessionHighPerformanceSampleRate; -RTC_EXTERN const double kRTCAudioSessionLowComplexitySampleRate; RTC_EXTERN const double kRTCAudioSessionHighPerformanceIOBufferDuration; -RTC_EXTERN const double kRTCAudioSessionLowComplexityIOBufferDuration; // Struct to hold configuration values. RTC_OBJC_EXPORT diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCCallbackLogger.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCCallbackLogger.h index 8def162e..815ea25c 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCCallbackLogger.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCCallbackLogger.h @@ -32,7 +32,7 @@ RTC_OBJC_EXPORT // to implement dispatching to some other queue. - (void)start:(nullable RTCCallbackLoggerMessageHandler)handler; - (void)startWithMessageAndSeverityHandler: - (nullable RTCCallbackLoggerMessageAndSeverityHandler)handler; + (nullable RTCCallbackLoggerMessageAndSeverityHandler)handler; - (void)stop; diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCFieldTrials.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCFieldTrials.h index 4b76da8f..8a7de727 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCFieldTrials.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCFieldTrials.h @@ -14,14 +14,14 @@ /** The only valid value for the following if set is kRTCFieldTrialEnabledValue. */ RTC_EXTERN NSString *const kRTCFieldTrialAudioForceABWENoTWCCKey; -RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03AdvertisedKey; -RTC_EXTERN NSString * const kRTCFieldTrialFlexFec03Key; -RTC_EXTERN NSString * const kRTCFieldTrialH264HighProfileKey; -RTC_EXTERN NSString * const kRTCFieldTrialMinimizeResamplingOnMobileKey; +RTC_EXTERN NSString *const kRTCFieldTrialFlexFec03AdvertisedKey; +RTC_EXTERN NSString *const kRTCFieldTrialFlexFec03Key; +RTC_EXTERN NSString *const kRTCFieldTrialH264HighProfileKey; +RTC_EXTERN NSString *const kRTCFieldTrialMinimizeResamplingOnMobileKey; RTC_EXTERN NSString *const kRTCFieldTrialUseNWPathMonitor; /** The valid value for field trials above. */ -RTC_EXTERN NSString * const kRTCFieldTrialEnabledValue; +RTC_EXTERN NSString *const kRTCFieldTrialEnabledValue; /** Initialize field trials using a dictionary mapping field trial keys to their * values. See above for valid keys and values. Must be called before any other diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCLogging.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCLogging.h index 36f53d83..e8610da0 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCLogging.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCLogging.h @@ -34,9 +34,12 @@ RTC_EXTERN NSString* RTCFileName(const char* filePath); // Some convenience macros. -#define RTCLogString(format, ...) \ - [NSString stringWithFormat:@"(%@:%d %s): " format, RTCFileName(__FILE__), \ - __LINE__, __FUNCTION__, ##__VA_ARGS__] +#define RTCLogString(format, ...) \ + [NSString stringWithFormat:@"(%@:%d %s): " format, \ + RTCFileName(__FILE__), \ + __LINE__, \ + __FUNCTION__, \ + ##__VA_ARGS__] #define RTCLogFormat(severity, format, ...) \ do { \ @@ -44,17 +47,13 @@ RTC_EXTERN NSString* RTCFileName(const char* filePath); RTCLogEx(severity, log_string); \ } while (false) -#define RTCLogVerbose(format, ...) \ - RTCLogFormat(RTCLoggingSeverityVerbose, format, ##__VA_ARGS__) +#define RTCLogVerbose(format, ...) RTCLogFormat(RTCLoggingSeverityVerbose, format, ##__VA_ARGS__) -#define RTCLogInfo(format, ...) \ - RTCLogFormat(RTCLoggingSeverityInfo, format, ##__VA_ARGS__) +#define RTCLogInfo(format, ...) RTCLogFormat(RTCLoggingSeverityInfo, format, ##__VA_ARGS__) -#define RTCLogWarning(format, ...) \ - RTCLogFormat(RTCLoggingSeverityWarning, format, ##__VA_ARGS__) +#define RTCLogWarning(format, ...) RTCLogFormat(RTCLoggingSeverityWarning, format, ##__VA_ARGS__) -#define RTCLogError(format, ...) \ - RTCLogFormat(RTCLoggingSeverityError, format, ##__VA_ARGS__) +#define RTCLogError(format, ...) RTCLogFormat(RTCLoggingSeverityError, format, ##__VA_ARGS__) #if !defined(NDEBUG) #define RTCLogDebug(format, ...) RTCLogInfo(format, ##__VA_ARGS__) diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCMacros.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCMacros.h index 469e3c93..114ced0e 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCMacros.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCMacros.h @@ -36,9 +36,10 @@ // WebRTC.framework with their own prefix in case symbol clashing is a // problem. // -// This macro must only be defined here and not on via compiler flag to -// ensure it has a unique value. +// This macro must be defined uniformily across all the translation units. +#ifndef RTC_OBJC_TYPE_PREFIX #define RTC_OBJC_TYPE_PREFIX +#endif // RCT_OBJC_TYPE // diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnection.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnection.h index 5b06df82..400069c4 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnection.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCPeerConnection.h @@ -82,9 +82,8 @@ typedef NS_ENUM(NSInteger, RTCStatsOutputLevel) { RTCStatsOutputLevelDebug, }; -typedef void (^RTCCreateSessionDescriptionCompletionHandler)(RTC_OBJC_TYPE(RTCSessionDescription) * - _Nullable sdp, - NSError *_Nullable error); +typedef void (^RTCCreateSessionDescriptionCompletionHandler)( + RTC_OBJC_TYPE(RTCSessionDescription) *_Nullable sdp, NSError *_Nullable error); typedef void (^RTCSetSessionDescriptionCompletionHandler)(NSError *_Nullable error); diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCRtpSender.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCRtpSender.h index edea5d83..b0f0e747 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCRtpSender.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCRtpSender.h @@ -21,8 +21,8 @@ RTC_OBJC_EXPORT @protocol RTC_OBJC_TYPE (RTCRtpSender) -/** A unique identifier for this sender. */ -@property(nonatomic, readonly) NSString *senderId; + /** A unique identifier for this sender. */ + @property(nonatomic, readonly) NSString *senderId; /** The currently active RTCRtpParameters, as defined in * https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters. diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoder.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoder.h index 9ffde998..32d79a08 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoder.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoDecoder.h @@ -29,6 +29,7 @@ RTC_OBJC_EXPORT - (void)setCallback : (RTCVideoDecoderCallback)callback; - (NSInteger)startDecodeWithNumberOfCores:(int)numberOfCores; - (NSInteger)releaseDecoder; +// TODO(bugs.webrtc.org/15444): Remove obsolete missingFrames param. - (NSInteger)decode:(RTC_OBJC_TYPE(RTCEncodedImage) *)encodedImage missingFrames:(BOOL)missingFrames codecSpecificInfo:(nullable id)info diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoder.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoder.h index 2e921540..0a3a875d 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoder.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoEncoder.h @@ -28,7 +28,7 @@ RTC_OBJC_EXPORT @protocol RTC_OBJC_TYPE (RTCVideoEncoder) -- (void)setCallback:(nullable RTCVideoEncoderCallback)callback; + - (void)setCallback : (nullable RTCVideoEncoderCallback)callback; - (NSInteger)startEncodeWithSettings:(RTC_OBJC_TYPE(RTCVideoEncoderSettings) *)settings numberOfCores:(int)numberOfCores; - (NSInteger)releaseEncoder; diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoFrame.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoFrame.h index 01294f57..a4ef6001 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoFrame.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/RTCVideoFrame.h @@ -45,7 +45,7 @@ RTC_OBJC_EXPORT @property(nonatomic, readonly) id buffer; - (instancetype)init NS_UNAVAILABLE; -- (instancetype) new NS_UNAVAILABLE; +- (instancetype)new NS_UNAVAILABLE; /** Initialize an RTCVideoFrame from a pixel buffer, rotation, and timestamp. * Deprecated - initialize with a RTCCVPixelBuffer instead diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/UIDevice+RTCDevice.h b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/UIDevice+RTCDevice.h index ab477e2a..4d04f38f 100644 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/UIDevice+RTCDevice.h +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Headers/UIDevice+RTCDevice.h @@ -10,102 +10,8 @@ #import -typedef NS_ENUM(NSInteger, RTCDeviceType) { - RTCDeviceTypeUnknown, - RTCDeviceTypeIPhone1G, - RTCDeviceTypeIPhone3G, - RTCDeviceTypeIPhone3GS, - RTCDeviceTypeIPhone4, - RTCDeviceTypeIPhone4Verizon, - RTCDeviceTypeIPhone4S, - RTCDeviceTypeIPhone5GSM, - RTCDeviceTypeIPhone5GSM_CDMA, - RTCDeviceTypeIPhone5CGSM, - RTCDeviceTypeIPhone5CGSM_CDMA, - RTCDeviceTypeIPhone5SGSM, - RTCDeviceTypeIPhone5SGSM_CDMA, - RTCDeviceTypeIPhone6Plus, - RTCDeviceTypeIPhone6, - RTCDeviceTypeIPhone6S, - RTCDeviceTypeIPhone6SPlus, - RTCDeviceTypeIPhone7, - RTCDeviceTypeIPhone7Plus, - RTCDeviceTypeIPhoneSE, - RTCDeviceTypeIPhone8, - RTCDeviceTypeIPhone8Plus, - RTCDeviceTypeIPhoneX, - RTCDeviceTypeIPhoneXS, - RTCDeviceTypeIPhoneXSMax, - RTCDeviceTypeIPhoneXR, - RTCDeviceTypeIPhone11, - RTCDeviceTypeIPhone11Pro, - RTCDeviceTypeIPhone11ProMax, - RTCDeviceTypeIPhone12Mini, - RTCDeviceTypeIPhone12, - RTCDeviceTypeIPhone12Pro, - RTCDeviceTypeIPhone12ProMax, - RTCDeviceTypeIPhoneSE2Gen, - RTCDeviceTypeIPhone13, - RTCDeviceTypeIPhone13Mini, - RTCDeviceTypeIPhone13Pro, - RTCDeviceTypeIPhone13ProMax, - - RTCDeviceTypeIPodTouch1G, - RTCDeviceTypeIPodTouch2G, - RTCDeviceTypeIPodTouch3G, - RTCDeviceTypeIPodTouch4G, - RTCDeviceTypeIPodTouch5G, - RTCDeviceTypeIPodTouch6G, - RTCDeviceTypeIPodTouch7G, - RTCDeviceTypeIPad, - RTCDeviceTypeIPad2Wifi, - RTCDeviceTypeIPad2GSM, - RTCDeviceTypeIPad2CDMA, - RTCDeviceTypeIPad2Wifi2, - RTCDeviceTypeIPadMiniWifi, - RTCDeviceTypeIPadMiniGSM, - RTCDeviceTypeIPadMiniGSM_CDMA, - RTCDeviceTypeIPad3Wifi, - RTCDeviceTypeIPad3GSM_CDMA, - RTCDeviceTypeIPad3GSM, - RTCDeviceTypeIPad4Wifi, - RTCDeviceTypeIPad4GSM, - RTCDeviceTypeIPad4GSM_CDMA, - RTCDeviceTypeIPad5, - RTCDeviceTypeIPad6, - RTCDeviceTypeIPadAirWifi, - RTCDeviceTypeIPadAirCellular, - RTCDeviceTypeIPadAirWifiCellular, - RTCDeviceTypeIPadAir2, - RTCDeviceTypeIPadMini2GWifi, - RTCDeviceTypeIPadMini2GCellular, - RTCDeviceTypeIPadMini2GWifiCellular, - RTCDeviceTypeIPadMini3, - RTCDeviceTypeIPadMini4, - RTCDeviceTypeIPadPro9Inch, - RTCDeviceTypeIPadPro12Inch, - RTCDeviceTypeIPadPro12Inch2, - RTCDeviceTypeIPadPro10Inch, - RTCDeviceTypeIPad7Gen10Inch, - RTCDeviceTypeIPadPro3Gen11Inch, - RTCDeviceTypeIPadPro3Gen12Inch, - RTCDeviceTypeIPadPro4Gen11Inch, - RTCDeviceTypeIPadPro4Gen12Inch, - RTCDeviceTypeIPadMini5Gen, - RTCDeviceTypeIPadAir3Gen, - RTCDeviceTypeIPad8, - RTCDeviceTypeIPad9, - RTCDeviceTypeIPadMini6, - RTCDeviceTypeIPadAir4Gen, - RTCDeviceTypeIPadPro5Gen11Inch, - RTCDeviceTypeIPadPro5Gen12Inch, - RTCDeviceTypeSimulatori386, - RTCDeviceTypeSimulatorx86_64, -}; - @interface UIDevice (RTCDevice) -+ (RTCDeviceType)deviceType; -+ (BOOL)isIOS11OrLater; ++ (NSString *)machineName; @end diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Info.plist b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/Info.plist index bd4c2bd602d2793ce0cd97a916dac4dd29fcad73..f1834b4251c0ffd0fd34cda8b64a99b59479bf3f 100644 GIT binary patch delta 105 zcmbQpHid1&Jw|3z1H;J=8HJ_H^$fy{3>}S)%z{$$LJjo{Kzw6IV-u6fJWSPGAZbHW zM^gjy$rG4tRR1wCGO;u9G4V4gGO00XG3hYbF*z}%GvzQfFf}u^GPN`HFioEPkx8C$ F1^`v(7@+_F delta 128 zcmbQjHj!<^Jw|2|BZJ8g8HFXx^o&A{44h4kf>QHB4fPE43_^{JoXt!p^D$L(f+P)1 zoDD4|PiC@l{maC_#Ky$K#LFblq{5`Zq{U>z3~6 LgC3NIQcP0;MBWyZ diff --git a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/WebRTC b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/WebRTC index 73e27a0c..f08eec4e 100755 --- a/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/WebRTC +++ b/tuist/xcframeworks/WebRTC.xcframework/ios-arm64_x86_64-simulator/WebRTC.framework/WebRTC @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:df591020ae147cb7941bd8a55007093d5f9bf0ea282bcc12e6c009a0a440779b -size 18103432 +oid sha256:a30e035cfbac4f19cb04b07a788d95c2f0758837299a61743690509af1a34e52 +size 23354744

+zV9_^6_az--rG~_(d@{A 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

Y6&Cx zjki%Ujv(uDzD6?8^lj__(j?^?6sRc(+{7*Z7G@!As%z(MV7%@){jhhqJyYua z5f&2__n9jQ5;v>rqh_LJnE8upy|n)T2pwTLACeZxRSYmb>2$@!Qj#!fEyc_a(baWKq@7K~wB<)b^EI88uJT4#VxQca@ zM-*~HS_^FFq7KTJ1bxQ=i%*jwY&5y}m;AmTllDRyl-#j#7k&x9aoS!J6R>Fi0Q~Hi z9I8$c;sYa8@$vRX2lfq0(su!Larj|l6xD831^PhUjH=rhFBDy$!_>o)porbk;Mb?! z&76k_eCMVK+fT^<0HhfXOTp+iui%J1be0CHAaX3j zkVb{C{{Z9ZDkn4>-DJss<+u;9Mz%ftt?zZ^_8@}$I=>^PSl90ueR`F}k*w;UrWsp} z)$)2H)MB+%qhzYjWEkE z!^Q+5E5PN*VGd9;;qZdU;&YY6Oz=jcm*PT{Uj(kXsJr&Zgd)JvImlg1a-~ItrUM&| zT+~Uy+b&Rsb16lYbXfxkU92K@lcOcK@9$TFc-D<)qN9F0`Fsfv}k0e^EsRq#yz z0OS&82DnUFG34kK{adzETb;+TcI#39Qr5xmKhs;SZ7 zN&TLq)a%^;0C^eeQw{l*Fo469C0sHLty-&PS)LuUC8bO2xWM%aY6AzZo)5T;`T2&;sQkrKH(To}`mL3VJN+r~(a^;oFEF&9;H)cU1z&%6^x|IsK(UYto z6l6@O+Ckz}LV7Q|{PLn~@htJFBTzNU|W zi%(GDjr2@iW3@i~5e%tPvOiG21oz_XnJajQFn@J0LgH536iQ0lpNZ<>Rm?6O`ZDzi zn$;p7rs%DvZhEu(81t4vmHH;1aIGISlGwmg+RkTVH6CwS8t+cV4#~>j;=N84hS0sR z`9(D$cV~%pM4Tq3xl4w|XFPSc_YR~Qj^cNJg|x7yx65i&XY$*Xhg!t0A$9I64)|?@ z$v1#D?MnIuqMCkS8doiDVj5zeB86>c$`%BD3BV2*$cba9Odlp~2fBpa#kEew0Qazw zX@9^#wZ16Jtca^Y7lFkxl}`GfH6E{i_~v}XI!=cvg7Ujc+TtzvE{+DF){?0809{uF z!NEfv6veOyzih5?Sq7ystjm9P8m-=o{FH&SmJf!=CUQ>8dzE@i*<%B6CP}RVwDbbu zDnk%O9_6ddv~NX5%4;pEEn+rL#(2M|2>TS>y@Bd2bl?0D`zSbC(%-=vW0}`b9RpB^ zpcdt~7#)=Sz@&Qtpx5n;(}n6r~hV!5#Q?eT_}~PDA3Qg*6?Z zseCcC81YaF4&|6n5BQ2}vV&KBSsK70 z3MiB(e$bcHwyd8C!is<$qkfosaVCEu_wWZoYd*H2_D&Aw7b(oHXmR?l`ezsYo{rRF zXAd6a06VJkuKxgVP_?tQf}Bh=dl{`wNB;nrWl}*@tL#Sp=czFDU|%wSAKbTkOGpzn ze=z#?-*UF7eZ{(kRo=%ho%I$w`dH+SJ*b<4;6@bqKM}*UQ@$RzZWi& z_C6U+*dj&`uDg#^v_+nGfaMTeX%9ufvgud(oQnOn_~oP&lZfKN*XU(|dUhZ9%YsS| zOa3ve3BHZ~tXw!Brbv*^8FG__=o9(92xsQoR(0sZ4M47i(z}$h2$av8cuq-WYJ*3)5jdjVHi=4n`{R&%inU_%Tk)8@ zv)wMPWXKEjK2W@ZhpFzAMiR|F{{V4v?@8vrrZ3eh?jm8Xop_WUy^*7*Gez(F1vd1U zM95t+69OyVPyMmHT-2dJg@ub-SI@Ld{#KArk=ZV52CV*sHk9XnhuZ=rd0%5(MDjXQ zLGB6Lfl%ci{{RItxE7;*{Hky+NKD1z$G_PYTRL=Bos}zzw%399ox*aJi*S>ZaM)CKnOP}XO3r0FD^u!HQx$Ows7m;^!Cnl? z_b%mAJDKVyf|DUxvi`v@>hZL`hMuB{K4Gg;XWqQRZ*BJ1N-l2=n8F zt!Gix2-VAF@h_8!bFO9eQrJ;0rrZyRTyT{4D-Vg5>>oA#oaWy=%7HqKTn*v@T}e_J zOBt@UUvOSF*_8JTd*7bwi3hFTECEw=fQvpds}C<+8bt@B3W#big|Y}7O%#7*rcx~) z(GSvGrzwakp-lQ&{{XR%Zsy8}54r1_L>En5>JK#*dI9Z01-R#+MUY!4hq-6N1DVfk zaX(j_Gs0()y53t3u8B8Bi z{)Kl3vB63&+}RV9qHTJDRN=4I?0V9H((YZ>f;c_GK)sLBPyy= zj+G6b<*F8(Mk)B5nn8dFR-CNCfZhnMEDQBaPgSp@{^T%QLdFJ%y>`*qc1<-WXYMfu z6s3-8#N}92d%sXSKN)u&(|>|ch7%z@8vX7$CQKCKsPtqEWtQEah}j2OjvD!ehJMMm zTJT!va78OiF(Am>1n!-Pv;VX9WzTy&^Iwi3m)ck z<`XX-J!u?KEx!--pAIMyG^F%JopyOxA%o1lw?s$KU&}7zcPF_hImT zx_)%4FQB}75{PM?~zJWB}9$-{R`6I;`i%~0P2u!8ixX|1q?z)t-3rB8KbIu+*GJV)o z@W?b9f2;j4YAg06ph42uU!X+eXJ@wJ8Ne;>+Mgt&;$JWRr29RunQN7#9rk>LdJO?e zzZ8RTtJh*MDsNjb9=@XM-qfdO#4U|3;zLXY`#vSl3s0ppA*s|~j-g{H9IJi&OWusj z$7=~Il)hLV+Ws82ovQb4y)w$SZzGW@2V=VmX3UCJWAwqSr1m-)auM#P**j=kp0?Rk zP;m{G9M`5&<&mu&v|v}IdVI#pr@s3|^hB1dJ%8MeW2NyKURilxOi~wZK<>x5H$m`r z5z{QuRn42D8#iWKk#_$8&J$`m*?ccEKfxO$EUX+pL`*I%{{WB>(S3{8zfA8yatyJw zmTmsv_}yh#p*r#I1gs`ps7r>x+0h8j;k5zAyYW()mjh)m7^ftt5FhV=>{pRNagcyZ zi^lk*Q@~2NMF~tuP-URo;k$y%+o^XlL_q?GnPV0USX5Xmjqo^;b`HaEAeE3jEKiOg zk=Mfz;#i53?-{XdhR^Lwp!tbG3x@_lp{|(2s7me}B^4o8#HKFcY^rA!7A91zZIyif zdcC*IC^fYL|6el{1gxkbiouO8uZKH+K!L4A_?5>~itxKv3K$nvTEPDR4V1De3Xd|In+KUhBPdu5IgG!V zT;oQNQ;C4Q|(8;&|%&wDCdObX^PW=Ut3ak#WvZap3k zi3adJ9Zpmkc!O!DcNre2k*GAQSNvjt<9ILGG+|mvY!12A{7O6ATNRA*RzU3PRl3h- zy!5(A8{cG>dW@^Ljk%0v)HGUfW)7c75myXshq+DDp#|`@sz0cNN5}$nToKEueyA)} zF!DRbT%-pUu02x0dl;gngN|WJlagZ}v(gmbOsI>eMD(!V7l=hIV(2yT0h`{XP_H_` z4a(-WRE-I8f{hg=u)!Nc_b+yiq)A!4Uf%W(Jb=uCCiS+Ro1^p>{FLymq^hD~9bfh$ z`d+Jc+-)4FT@d*On_6&&?$CZ!z}zSqb>G}bDt@u!`HA>AV5VQ@IKs{JqY_X|j_R#~ zzzD)@1BYQl&yhg>At)K!S2&j;H2g{kezboKhpZf(uS47m{{YC09Y**VZMdG+kwgjz zeFQT%K)fh@K^h>e*$E}GRTk=p%wguKLB64{sQ&nvtBoWv06w-{v;{))OOkKEoBsf_ zUaSy6%PmxzF&-G5Xh3F(PH+^#2QU^yT`v0Dx}(1#FXMvy_lIR)^?20l#noM08@<-_FWCZ)tGBpFX|9F&;{CyMKxv94jS;dF zi5eMx$gyjDJInJHZE9paFhjRegB3Qn;jP!=D?u%~8B+fM;rSAqDx?(fECou;DG`}a z>vPvEVk6hjzYHmXtC2DXC9fL!h3AL$@cS(J4xnQN^4~DE>jvuhmJgr{N9XXzv@FTG zrwBmJ2Nm{57wC7tBrm4D`uodNfgbMcjMLKan@DQtagJzC12MMCnpWYs-E zb_KeY0u5LpZ=Y}oavJ^gIDm|Y1t-)>e^o^v2dPsL3(!2j7&erlpISNw%M_;+dz9K( zd^_pHtZ}dHxG#ZK^r3%#;XI>qCwEjJZsON_bsIWa1Yg5?whg++>AZ772n3BLIQ~60^hLWiBz7;*k29n?Sbe21|>Va3+ELUv1zh^)44 zM0TQ1@?G@HAyS#tYM%_Nfvm0x%9E<8>d54%pFBg7YZpBd{typQySO=WxSeqefePv| zF{z$CupmOCsl`W`O~MBj%)$VN!#JOab1o0}Qs(&~bGSt=Y!(#U0t0L~uOO+2&AHr8 zHZ|_*SgF*e=5JLgvIUnb=AuhKj|4s(mA(bn5b;CF16zTNzU6N-xydU?*3MXGGq`gK z60asA{M1My5QjKVj}GIm?+foxHUO=ktBqH8&N?6?vfTOlc~ z(FALCoaW`e>X&3e${Y}E5oK!@rwDWdYC0aHn&|K4MA&We_QQp?uRhFFC>CNxmem8B zwPi=!XAOWbgJv$>LNp`yAaOR%z~Sl_nwc$$6m|xR?BYrvVz;Yo(^5->a7L@tQu|jp zmF{F1d*!ob3v$@(T;>hev^J7mfaDhb(Neasq7<}iQ^CwkgP<;P)c9s4>P35Gv1J>DI_FU}q8XQ8%VF(FSa2DcwA0JMF>P6co) z+!oZDL9jLPADM%V=V6~BAJ*OTsGN7F@c^VYEyp@6CB-EHK}652SE`a)uK2yf+OYXI zZSq}V-b7xLNtczMR+i3oI}O7ts25bY*$BG*WFlm14Fm8%M72&P#toh=u$rf2%oUVQ zFoDBA-BSnO!G;fXOO(94#GJq#+90@9m@T_DP6r(5yam;zGKQAg>@|^TTstqC1Ko-u z5xCN=tWG8EntO*-&$802;^9LJ8N1%*o>X-Ma8)DC#;1TD+4|2x;hb^S{_;|*KL>F> zH~lg;A#`bray|CElaI_ALbCm*w$kF$iZ)m!xbK296(1PoGdAM5!jJyu}N*SY4%FbZ{ipTii0UG0eT)tl|rn4C7*I+ zNaAu#3F^u?u5JqqG5j1wg{Ku z+4+DT4ESGhf3EsnA0*2v-S86-(4UD*YR^&^3yw&Djes+_gwSZ{J2;w-?iPR~zbC@2 z6|32Qc6wkRXJqz-P!_8~e8<|TFs@gNzyj9l5>ldN|%H;br6+}T6!%PUA+4o%*-cDR9K zM&$~piqZJwBc>wGUWz(^PAWUS!2m91{0YKTr7taYObW)LRgAIbH`bNf4M3YX{(eOg z7zDL^Y+^f&)j=NRx+BozfmE)ITT5Zv2D2~Yh85M;x9#9#w;RV_Lo^OY!%VJOP?rW{ zDm4ffsX#&23nOTlL5GFH7sqqCZww_7Bav!w<{hpo!Wock zOQ;YYqpoE=M7TPgTq3UsY=jd?P?rV}j7Zew6uC{ql!vRqw;{wB)N&H3$wV3$k4!G^ z4U)1{Bk=*Qd|N`dwpvEx;?px@4;bgq%O9m=6MRX88wG8n3TQ-)TVohE@nT76~|p&Jv#Cabl%Joz7u&PA(wq4fnnjtMFA710lpZ zl!#SaJ;vr-Ovqc1ncR4dOkKGEDJr0l+;w%@BeEKoSd5(<0%q^88;EM9<<t;>Q+6qwwvIGdBk;aXJWC?TI?I<8|2RDXjS&FT!c@ZAPM(I1i`*x9PCIE*=JkJ(WR^~&sD z8*RFED%x4W5!bsoxm4UmKDjC-wO0J``i(eh^)ezXUfhtcQ9!(sj%DV`c_B5IG&F6Svo}P#8Q(!ZqdjEjDAO4DDrymume&jL%p))2UabY%j0{q$xwolT z7|5Dj=sC8Mud)+Ch2o(E?gibje6O|Ffcl7$(3L;^TPgzo0AY};@{{XT%dwujc z&;I~^Sz^aA-(>qo1Vt}S;c@JG_|a9u;g#PEqJxX8-}NoXlR<%sD6)6-N}#u+mn16TKY?UJrI< zcN5Zpx*uc*3+F5K7k&eyx+1IydMQk&D8TB)2@6!p$Pn8;M*+5);np(wF5SMso}~Tg z#!lb-j7o=r;`@cXqg}WRsI^pjs-@e2`@Mi(?Vbz%$}Ah0+LML-0(h4agmE6pQ#I(} z>l*rabc*~;7OL50{xMj)hpEVp`T9E0PByUmSoSGyA7nnsXQqnmKucLI3xVCgjtP(385eSAXA`k4M)RqEg``fEm&}ouMB7ezM;#me5esXF6X>uqs)KHzCrAL`y+lJYp1-88RWZk4o`-6$mF^# zq-Vao=^(Z~G%1#Of&Cjf>xe?vLR_PSh5+5Qh|e!EGW|CfGYD_P0>p*vUsiL3Bj5hX zSg?Vrf6eTWKhRJG{HOP81W1=ZvWp-ZvKnP}8XPTlr`*L4uPFXR~3dHG|lIjH0Mq4t1k!7RC1>6QLFix2EeA!)w9UcErtKn*L{M9`ZXhqS01 z*pjaAF%f+L9fK519}gZ0 z3?5YQA%$%GK=3ieL8;FVaA#F5sb$JDAQc;w*NY0Xxp?P{eIS)7oRH+Br^3#YX5SK} z7ZyWL6ouW~-u!){sR^i++_+l=!c_Q$ONe;tX;Au!Y(ANdK+Yj82rW(@Q$(gLE$V;C zY(Ax540(d{FHp7)hk=7QAb7KK6DfoZVJ-~hBLIbZNzFkeXTvF+yzxD?A8;5o2Z`^+ z-o~zL;8t zw>g6w=D6@t1)1Y+0SuCd7mTIABa_QTruuV=OD=CK z55ZALaO4l{E~srJEQ-nrF5peSs-ctqNJ{{%P@JGg6kyas)YNB(1*E5ap`T+UDlqp< zH2Q}iOFS(VZ7@b4$`*wU_%VPdw;yD6GtqmY8j#%SK4L3;0?lD0>ASX=iUT z(cSSKjiFi`xLhl<+jo_5Zz2wiH3iRcl=`{dr_QIo&T0a46Cz)-F7y_fe=)sV14D1- zFcw)TIWpaytyY&*N!>G~r?wh?<=`&E;DzFu1PyCyHF7P!Rg%n9#c-NFx!Ek`0d->b zAzymRihNBj-S=owtp*y4l2YlGD7Vc~7&ad6;zyu`GeE0NMH zMghgR-*f3}+JOz8&ZKk!*X4w)tJO}R>uSRABJeO~v|w`s#T_=YRwp4Jh)Sq*o{;Vp zZ+K-9h3x!X^bjxFW2C;e6jr}U6!OFd< z*V8VowLr*6|N%(-W;(tEiHb)XL(m z27Ap*)+6qY{{T#Pgw5~-j{$bk{{SjB*nspQm#w{L zs6WAtXVxdgK;19SWO_V~o!sgM!X&U|#t}9*EcY6@dkg;n3xdPKhNlmWm?A1TUBQL3 zZc!1ru&BVM;NlA5Ql%vo1u?b=<0zcP6%P?EW5sI4ks>5Rao2-a_b7uHpu!M*6c|Os z$dT~YID=*4PXP67tA$k0P`^@$+!6G?N%AHEC?p;edYHT@+ zDC%w9MYdA#{LSiR^9QNbN(o1)*B&gF2pFl}7xmMY!5|^2Ce0?)&XqA&h>m@;& zn#+`UJAf4o>&9F>(=Isa9mtZIM-PgdEWw8`rdukARNG>WH69`D2bd6_b1J3<_`QAK zjoH4ZsY%C*&4Y06aWW=OW#ksU++aICS==vWZyPD`U;UPa?*9OXM#TYWh+O-G`7wK_ zLJ8r8K44c+0`fN2N@`ccqhIH*(}WqjnLI>-jZn{j6mmBTTG`1mrMxpyuM9Pv|u zqFLOoKI6o*#bh|Rd90dsKM+dTx%UV#BgOo{=fNq%z?v)q1C7B&NXE0dzw%4yj>bZV zfY-QVgSEy-a|P;B?sO8AUttoaE(v3A)F?{Ji=l^_KdAN3gX*w@(O=e~I}3$Lf{!A#Ek2tmTB^!CZ`v&Eq&_9a{_>1{|^HjXKI}aC5BTzJ+5EWm;Vh zga;sPNV$3eqg}(iFTAUL%p1)18DA}h{t>w96DqpPy_|R?%u`FX z5K=P3^BD!*<6|a;?0xqOIMOnfg zA0%k!ntx#gf(?sL)NJp}ebq#m6L&A_1dsqx%{XNz5Q&^Nyo@Eb$fH#FV4_voK7EKn z2vq4RsB%I4!Sa^^Iv?pU!+ypRoqu7P_=&+WgtCqxZn%_eGn>`fNX6!9)#=53I7gFeLOW1gYMA^(7$KEKN>*B!gL%kMY5hw97X6PceK7^}k*Kry#lm7h$cn6EX+=ey1J)~s`O!3C5CMNx zs2TB_TrCxAU8q!($gTF$_%062lPLa{~dV7Ps7{GN#hx^+#l6=!{ah@kdH z;{7f4B5i3C@?0LwZNxv>GvoX;9vN4ma{D9#uDehEBs%5mrY8n9_vn+d>77~@k>{i% z&`8^XHUjKUd(k~gD%&i&`BL{}A3quH4y_6PuaZ-uOzHJKCj8mJ9-hcECoUKN01Vkp z+9nRF4pxd)(q4L>WLQN`GwgmCcT+!OPh%HQ4}()T(+#K+z8F*;6gH!SId1%{^1yUHKGO$w%Me*VcLQ9?2d2gx$H55Af!~8tlDS)0DTlyiqrU$C{t*)@6T|O z$ngcnok7Bl3)2fPN+K^Yxlba%<|xx#JRJBK_$iuTkDG?Wl5S@CnJ zsf^fj0JsXxA#$ZkZ^el96sTOJWs<4KL^FK&VQ(hYS(} zJNYFS4^pKy$A#`jbYvk!+sXGTC`nBikVv=G?hvaW&D@qy#aZ~`1AI$}RJQbi?sDgF z9qL?r@Rww~m9olaUmH^xSBgDAfw^XrU~j#${yaBc0#_Zv?gL&jv&T}s%7Bw$ zqXP}ucA*=YEq)l;4iI$Wbo{cvsX7m&q#SG2(ZU=MN0v%Po}> z;`p2<*%g(fzq{2BD031%<-9G`lip{fmRFYj);PoT%@`>O(H$1TgMH$vVxH`tGf}Qs zu*w=_0#H3s)DgoVAQgmmtCbd8P8PD75aD8-YUZhy<5re0BH{i+F?khb_?gsm_w zO(yk9`c%dqF6wVdKWLH29h+@GX#<@~Bm$_Nb{)XSsKG+2NA6oqdsn%8R*HrIi;xmF z1j61U_UI3(d6{tr0O9i%>ka)%Yjd^yL)2a|X_{bZZEQ!-=D`OkMtUw7t+JnKE+U>u z?if8E`2ySm*5yW*3?D4O4Smy$uL za2gB<8(2(Ii4V3*C~Neb<_%<<@Rljnan!4}`ftb90xu|-k z2vmJQ1#P$#W!!FRNI2A{|db=FF}P%5DEEl%NtU@s@{5MRtnld&6>gDvxm!>tW{{TRS)RrGp7im}UY$e*U1bvJP zQD0&(#T&(A)70;V*odKd6oy2?3(N7*J3H)6xp9V2y>TqujeMLk)YufX9*=1Sx+>ZP z36m05jLFpK6kgNxiOPtabgyGt4SiqC&9ql|^C(lK-t3mR;BvcyzW^qDjAghd{rI?* zrbYapBpwSB-+}2OTQ_|Z{{To&Kq5*$ZxP!i_wFsF=qGK;XuX$EZx>gI>GWbjtk*s- zk^~$V*o+v7<)`ZfPDoq@(|rc}Rn!&R4lRDYF}*M!VO94WYd3k68~uijY{&EVOSW|< zj+6fYW%`2S^$(~#t_tdO{E@9pyJOycF!{snPxQ*lQv9wYtfs`Uc6BLSW&Z%6$Eymh zpwtfzO0@DiJJsq3l|6rG5$MMFI7jJ)gnk7Izlfg-rSly|e6ox#wp5Un*)-eboscLp1w0(OV^UA9z5PP-8s?zSNV)L`!=!#bA}!pi z-;85a%j3Z01f@YJ^Vg1Ja)?6Wxh@Uy7D5btAi@R&2h;{vkuPCV;Oruz!YGk#g5_YQ z2~w^m)NV6~icTS!z%t@M%an|KE6rsY;2s773|)By(kU2U47k9AIO3+vyp+)lAY|>^ zxFf-r^^-YWbP!*-#5@k5%p$aE8v}RIQIO zyqwEA{=-mKGNr62OQ;|>JP1#d~(cv>ZRHmYa95CW99twe^OaeSgAxW~CW<8z}^*fv={FmUlRNtEr5Q;B`F2wXhPj84Et!yJk^Pxz!!{yn432oa^5KUk81Xopo zE&Hy;uqqZ?G56|Fk#daVS3*-}g}SvRwG%NE%4M{Fz?D~=YjjV{)s zfRyMf-a=U(&qG|X>&va`7P(G5f?c}A`dme@{{UYuK5y`e+m#8^Yv2SS)Tgxya6qNQ zOwrfRn;T-OxW~s~0iZ+M8b*-xm^KZe{mvU)SrHQ}iE^_-J=c=8$8g?L%jydf_DeWY z6%ts#hY^P#2gw$els*{io3nbP~_1{}WT zX`$z5CQT^%Wi-E=dLL{JKvnE)T-EpVTn;pHW%>{-@I)>~uZxC(#GwV8S+xXPRddv* zBvAVaDmb+$6+t~DOW(r5w3I_fYRu>I!2v9)J#!uf&{JJTB8~dxgyOt3$`mR}uk2-C z;C^5fVibT5kA4Ug)`K0?ztUQcwqNq<_VSk#g+FEwBS@M%V=P>2u%*!YgF<_iiLM+R zk(OoC`ao;Y$NvC~hj|n6yZp>;6&%tnB8ai#vrfk_LfTY@}T176{uq>k)|3Qx0E14t9Z&O z;-w6}<6fOH@`R__8KWX{0!d99p6%Nx_yvTqB8xgZF{)7mda8tR#%cv@>5G z0Dmy2WiUPE%yjM*ES<|3n*2_`V>zjNXTxxmR@h=0jPxmgT+emj9K=V5awo9l_U2jWvxmR(J$ zgAHNXa30}u+vW!>&wR|4DzQ)up*o#-c!X8J zyP{Vd{YJjoTzGV4c&{bK11Yi`xh@G1`OYR`I1)FWDte+PFnE`c<_%4hK;$+qzM+{t zQz~o?C4Ahr;z1jt7rqq1@SDs&=DVCtCEE|EOV_yH+~TLG^EygCEO+DFDgsI{htzr@ zTLKKoSBoer9tq0iI)@PER7e=ZBXc0LhzgrF`_O_`{Dnmg4LZNJaE{0&RHHG`EDLOX zHZc1aF*uLgAO;OU9MLPn`cYmdz)QskA|d|(LzhDD09Pm4M-_QS2po!m0c2#4ln8r~$6D z`wue1sy`$Pj;V*^Lz$Otzz{6YLtzf+9zeuuIPSS8NpkvovXF~^Ct0;3QQI(;yo$_h zSt@aIw+*kZOjYP<_iV6v7sYUgXscc_Y&mz$u6a+H_DzJ;UkfcQNWG$^B@7^xb&JPC1gH2|_i$fnPkf?iq4aHAECF^|esE99 zYtSy9iI@l6#8G#;6Xm8+6T%!#NuodzVtGLaeHS1V&#Xl0w91D-xEFuDf zpR#UH(PE&#`MceuX3=1GOk_jToccL6&NsT(#d6GCXh`gKT?;n zxwz4)R7DP84t`BXp{?w+c5p!&ZWxJ%*E3zvU0k?6-r=?DK|lrJCYZ#lQ%<5+0@F=H zLS-1(;>8dYDTj0|q1ZqDJLI9EaJ%#TIasEpRJZQc*ZBpv|l`W)8hLjUDyvT!a`}I zeg{GyA=&7WL$i2BG`Os>J^Uo+IO}|}@|0fqVe1yJ{`Y~X(bBE;3iK(~Uy5lm zLfr~(l05@Z(~6H!lA<=vze5VR=wYzp>3ge|rl>3|eB<{=sG{kDCWyvazOF=*vrisc z)cA*b=Vt=vvKX>l+V(#rLVHTl97w}c*>hhH?g+3B4}l5#pZf#yrQIIC@+gGjbpp4B z&(O{h2POKra2=O9`~zN?OHd$SJumH+WdrBd!~$8`hnAzlJRGJ*sUMM-o$WvP6A}Tu zKFI0(Tg&N=eR1^<(%KXczQpW8ElbflW;0xAJ*iknkwPpvW&BF!J!~cTzf7{K99K|0 z4-(pPX@LV|BsgTPfswev3>dx#Xg@OiT)U4kc+wZ)mJawx_+ajQqw5i65va}Fq^K28 zSST&S3~>(;Z2Rxd;BIWP zT;66fo0doKzy(U%k2fo0$u`@82v$tkT^>U>{zB`TCvY_`WCLN*3LY-yG13$S7`t;V z*l{-}7X_#sL^+w!1(o^V0lo|4Eb#kf(3rEqj{6UM@&GY^1$cML9M$!0~OeN6Rp@dn`U9s?jw$+I9$V&WXKrNF6el_<%z z&xWcs{fse%@Hbz?LD;*gJQ)mv=L%I zBVW`+W#?D+p-1{mTKi&S?WEUQcX%k_?q)f{k{j=?sGR8XAog{`{{YA~KJXYW>DH0@ zCCoDQEIjLF?;k@9zCa~ktCZjzI3UEO1jL{e00eN-3kX6VL6I%JKH|o*sq(5Vls5qQ zGHY|(7BT=T()xe`^1a%QkSeL^H&-6fvd&SzK?@f8D$6ZvPLp0TFuFwk4^jv3rzCi( zdv&Q;Aa&UgG^DzfdvF8;Jpe}%)5qOP2?ytBO@6+v5z8B9oBd!{<@4_>t=DtpLLg!V zn^aWV-sG-Jf^nD`!hndSpdIdtj`c3r2xEe-obs7GtL4-ub!hiBx+}>sDz&@wxujRu ztuPkaU)q*)rm9b2{3%iQ0uY_M(S=$quqb3SV(|RrCpd!r&tv1&q*ePcI<7WoWBFxW z+V49y=$~A;L?4J@_`lALle~YW$_UN;^I_ zVTB>fu9Z{nFnuhSC2?@G4{JdAZ{1~FW=h`79m$cMMj^v<*)vFg`!vP0st{V*Hv{drN<+*bEkyznZ019u# z$^D6X4YRc!2K!r+1C$+dsN%vZr}1`xD_1VGH9LDH_yjwN5-yT<6)s@kTk9b=^XYTDIA*f7vzGpfIM-P_XMKf*pEzj zcjK4+2p5hD^!xiI3bf|O{fV{+kC^*JW-Sgm1JK1MgDLF)0N5AL`CTNlS;W!mAQdAM zbH5JK!5oz|Tj`0ZK9MAMpSUId8B7A5hr5X-5!3Q7=|A=cE**60F}kthR&1iXgJldK z&!~%6Gtklfz$vmuZf;;52fL5M9dSTbm26V>S)##I_UrMlau1a&8DOy}LfvuTJ`!k{ z+uG(-mU)u?bzTPUUx$azRn*9gtnsk$c&w>nQXI#`Q>k%cZ;Oi+<|`5m9fj1mMlznG zC&6}9GngJDP)OZMk%o^mX{%tOvf<%x2*7R~pJ*v%LSMmU%OZ>pONMWXd#JVq0V326 z7%fGAa_w)ZQ{!dvA9vt^1ZSdgP`GstcL~KoYF7|)r2_;eOTIR4kX5AXVdC%cIkyn* z0H(@qn^T=UdYhpxUh(1LTMi>rjg-S*%-k4Cx?r%X&7&u3?6$IUal{Io!N?IWiOUCx zwL4|lON!5Q@$M3{?mx&YP&`!4_-CqsH!$%7hzuK*aQHix{m;w^@mq0tFD`8ERfcgZ zjL##*HGZeey_V4(jfql>%#?V(a^V5ZEI@c=^*NU_HU=|U>UB2eR?3Gh%O!6Tx#|Nb zWv%Qumim>acOGD05IZ}HTLFx0Cm||d1XsCz)CDl-A!YXx<~?}s1anwU40nh15bZu{ z{{T>sGIW1N02Dq9mZI)E(KuMA*l+qF&U_!}Ibx5yjOp|iweCFTU>364J%7<8JNO}A zfv*Cna+_kkgqv( z6CC^_DD9%pkxF4@2h1>d*X?Tz)K}dB^#j_fIFq55O`7gW`@(T#zD?kR)3b8YZ?D_VkBwdS_WQToU4$Cl*SH z^nb*+wQmCBetr?wLlFI%tj4GA%uw6 z_~{UP_b6Ju8+vXEqb}Q~V_&G&4mJHoHthcZ3Bf0%o=Qp%?6iV1mHzEcmFV=p2a!?Qk2YeD?f5h=#q&+kk4lC{{?a)x|;3Nw$!rp5?VU z{L5V5DdU0{6fW4j%O!`2@lv5NihJaF0LsmcS7ISdDA(sjf+|f zMUwT8e3*06wx|~|PM@qqy+`^)VD2z{@PUeMXUwsPDRS|pZ~FXB~1eU4@2 z1`*1*8Hpc-w=7sGGf+o;wH156h8skUo(REczIT_U zX!{!=38gyK*V#C*M=KdoF$(hQg!?0bVxGg8@mdcyHcLMa{2GEQ@CkYpt!g-jm8JFh za^1Q>I~^n3p+O3#aK z)%HQ4Q~9Xa#k}pn^EdGM;^{s~(Ba|BM|MKO(Y3z%^vVLFp6h~14SzO|a=XF6^sUgG z7t`x*FH+}Z^nMuWw#{kzJ<}+@HgRuz_rZ*%FB^*%LOTnK8tbALvZH;e>M6eiBU9_x zg#j@;>v;S#R^9!kS^oecr_$NJ7=A+~<)xzO?n_p9%>9W7 zlFmnyk%tIX-h1&D9!wiww7gx}!wWJ~9iFA0Gnhkqop?sMAqkrfA)-+UY6vi8lxL5S0XC_-4j@3CyLyqU*zKRJWL{3<9DR2MogHWK3X7$b2E-JPC5*v4yUo zvZ5hX9VbXJt+<2nDK5yC8w$BonO{2wYI=azqEQ>D7Y7`312yBQCPMNY;SN%utBxQM z3xLhrmTc-5DM^gGM?72-$W$2Le)`EwE^;#KDm4yBgxb#s)V`_)a4#5w&%$akdUCOCs zb{^+ah#EdRDh2z8GhpEfRotjemqf1`G7&7*FvFNbdjwK3)I2~101N^KK}`o`P!4vF z%D@D~I7zoY7Qm-uT&3v##eUeyhFm&?p#K1-V0yR!ugD-aE!X>SCUfCHL*m4Ybo0JP zi}eH|7y1xn6;aP(6pzq$j&&(h(J5+{tBJDTrN*WHhLysEv2BmQ+7zJ_IV9G(o~NM& zjUbDV`^P1{`>ppiN3wHX^6dHBwTp166%KuQl)9MN?)I-bgI zB|3<>pdzlkKFgRc!f+NA$Q`D|&zlR6*oa*^zhqFghwEiWf*|xUL`K?AQr5}|2=oIl z1S-v}Al@Cjose+(8Ml(Jh?m+eiFkcgl0Q7y_PafsL;ND&pIPe`r(x;K^P0D1UlzgZ znj_p@&BTj}jyO;C2X%tJ0$wW?=E?CY^0QYRMQG5zuH{>&Uy8`4`iI@C2RHpD1+Ek` zx}1|N{6T}i`Vp-b&8Qapf4J>SPtw8;(mv)kApZbLU2pDwzF*o5FUioc5oj93DG%67 z)~!LIa^kB2Z@cOnniLwpp`O`HC8_*N7QZGlE)7Pg>Skh|zvf|pp>@5b=!wZqPp@rDK2WSG9j;< zt$N2Hv8_EuNEQZI$J4LaxY)Xp&7J%S zL#si$Lo(JIxU;%4(+2s!K}~Q zmVZfkcdNSdl`3T*Jm-W}T7r*<7@DE?4)A}Sjt%_qb$zH2jUJ>{+;#iA*P05+z|F~S zvs18h3B)pwM6wn~*m;0!+uWxI>Sb{L0WIwQ#i)*lXJf+^pNvYo+->m7GgKdW)~4fP)W;Y+ztc~76HyhA5`$@fU|?S2q8 zWY3k;7X8sdZ?D22K`;kL)GNRXr1jxImtOXMp#uGthBR~^lIQnalY^i`hqN(q8_z;O z@3ggjRX;N2kHLbhV%-#>Aj3< z*?r#3@W#2F{$wW)?R0U^j z$QWFzxCek`LJiMSiB_;Pm^wzDrKfD~^(c*ILUK;$rxRn(x`nWZK6d43a{#GnJB0N< z2XmqUe9D|c2G5$6u;gVjiRv6n(<)OsfILc1AkGswJS3_03!`TnS2wJ-4X+ejqx&kA z%uQyGGlmtjqCLgfEy}iB*;P}RCBv3l=Wt!v)TNQH{DoO7b>a&v$GLh<^idgl9{hLA zsA~=Gq8^|@hN4pr;2uF-&9V?4q4CX1_RqCLsf?ck14;96&ZD(cZ1a{t_`2~?$B-pd534bu-3~|VmN=wVsJ`RH?nRSdj$jcPXRh-fiwwsi$2ojV z@mdYAAuf%ulZ^_6bRmJzMh%@y1=N7Zubu2ymdc;Upem4jeHss_e&sH|_ z7{3C`Wv(JTa<7ILbe=r>Xz2Rpx7sJdUgK*1dfzWeXPokU!xK80_MEO zFtGg8nqVmzg9(3d&G7V;6#UkAkhp5$0>D-K78wntdYlhxvmtJe`P9>f4_CqnC|Vp_ znW(K_f)#d?*Sp+6h&z3o2KQPeC35a^d`V*@zX5h}3Iz5b8dz`24NW2Z33eMO^$=Vq zbn>!Ykec2dIHscE z#3$8UK2@)4ffK5z1QvRhBE!Kcy&k?Js2}=eB^NsmewIZ^KuT~LHXetAK<+N~^)Y!u zF5XZqq2epC%^-?dr2sdNa6~1qeWKq1;`oChP88o}`X~If&CT~Qt zU8;zPsWf zb=%E}0I*7KJ~$oo?k@bw@bLv~pO=FKtCz1)E$JK$HWKqNZ_&))ZZ{o@^uVM|8&70O zccU4ohkxQhUlVyQ5(Du%pl3KWwY_Q@CY-`^)|dij-Y)U>M*3Rts>k9I%Hj|MJt2Aj z0CqwD057XZ+xLpFQlO`p_sSG3i}}y^VDw4|R<=J3q#MY6kWsQRv^e-q75*{bi~Vjs zkbYI%YIrV?t!O_6XYz(4%r12)sc<|pro-k`;tbWEr(oyID`G;Zfq^LT z$cF^2Ji47cZTS2{h2)3aU}XIG>5m>U?pnU%S1Pp%gS^C27lhkj^8+U9D=txUjtDA% zk>?1uWl=BaokD)0P$d=NGr>?9M!}3ydPKmUiDOX`;70hAzS}1n zZP9ESr364aptXHYLloyOgvvr^3J`%qFN?P0ldLm0h`pFs+~y{M?T)Z2daZiO{@($G zH-q=E!La=8Y(J06VXy~qOXTKNF^#=Vq5uZdYX|E5TtggLP5dQFp!s)#5B~tDFlT+Q z+uI6~E;N|p?hK)0tqqG>h4hVJFAE2xAjj1xY$0{r^(_Q!ZiWb%UT2WuII<}o-U+LT zPb8{Z_#G4?&W?LlM8P|v>tdUt-g5*2D&2D|i|McWa0)2?N*55OKj4M5JL^RyTf0K! zz+b$KBWq{o0gJG?FNDKY2f>29{y}lt*N?o0J%O)kp~XT!NLCjCzwtkr{{ZchT+yqt zZQp;P}#S_CD97tsoV z+-owT!Nq~9IM78)-?%)dA0;r2vpIGHB|nH72vQ0l z=Eop6i{Xm1buF=Y?g9LIJ{y$4Jw1z1xkf*7x9TOuXpofA0oW~w_*Z@|Y#|HTzqA0V zKZR2LF&FjE?ll&39${=@+}&IlJ3U#OWrx!_7VGX6f)u5DPKQ6aYJffUr}A02x?!;} zx8L7!ZNI@>(Ey%6VZY-K(4>#gds$Qm;keOD03U`RLnWdV#1(t+maLm~^cqn7GN#Oe zfoJ0QNG^e!nb4JO1Ngf6gw|Q@1WyJQk4#f&&$mwnKn4E*@i~B^KPk+c&wCK=0x1M1 zrY$8waJM9{n!0Eh5W=fxiiQw0?3hESUQGP9Bfz^C`%~?8CQa=3XEqxyeYyYSX2TYK|~VcvEcEOsW`A%$^&H1RH2t}d~9%!h7tIt zT3*T}!tz$Z(Uh~ii>Wl?6$OE*d&J(mhBe}TCn(&a7BJzscylK_cwl_ov*u&e)*(bL zBL%8~Det(Fw@Ab4WxW!fExGj$W%C8HUa(TU zJ`Q{w7vpA5d{)u0d+cjAhUhRw-Y@hD>${1uQ(^$Ae!2Q0Yv zc=)`g9m6FO&RNk!u$FvmV2IN>U}PmK!jvJ5Xn5*l1GlJ77$kLvaq`09EzRO-i;hE6 zAY3X`1m!9}C=h!fTLU0vRIdZ2!1<|4!t~K{iJA=UfTx|YcLv*M$L=ScaMxBqvQ^bGJxn=l{STC=WM1MoZ z<-m-&)v*vw>!Z_##G!1DQ9cuI(!+f3QNl?=S6Qai9)c;#-aT=7nkn zD)7WDVk>qVlDb7{ucM)kP9ycok3=iyNStWmWqnbe4v|*jA9a$a)0NL;&Gze?LM-CG zt4v|)jQFLSe@3amhkgMT5w!s8g1->j^tu&N>V3yQS39L1GGIRH?%ehxpx{HPz&Z<%f zkgTZrGjKK|R&UgI5*Y=uWNTurnQ)<5R)wO~s?kaR0APD1Q>D#@;so|Lk-Uj(%qQeZ zj;lL?e^foHaEx#;1vHE{QTQW&3OD}%5~3AU)8b7>N(ap@D9-*sQd9z}Hrk>3W&Z%t zLu$58aka~2txu~))%OiZ1V4|WP3d23vLkN~oFL6|j>8(q8fYpJ2_J%D6OfhpbS&r*o7@O#C}?Q*Ao^k!lw8x554fP*ZEln?vU`^%vWb zjO+pT!TW-7RC89FK3fP{pk7qkxp26M(!SA_Hh=?cbc%i_NO=6Egitvk$Nbqz&|c6~ zgvR4~BL4tC5V5M%FTpe>sSCP`pR>c9pWmnYG4eefLw~3?9+)V(cCe;5rMG>i{{S&i z-wZ;fY&n@KFq!MkLgMic-b3niYp8ecL1El(8ZB1B; zKxy#%@yrRb*_mD*A;*oKSp~?~EUu zPKlqne&%>0MYuqhF^*IjRxyj5e~RHSnixQ$rE_oyJTRBOE8;#?hWW#iS?c4&E?=j> zL2hNs4BfmFZvNRh2*FZ zsQYv-eMvnl3_$iu&8-++xo>i|gAeaigh5p7_FSQwmvVPUmjyQ0F!d4l4Q2rvcQ)d$ZIp;J6-xmvML z>{u20<F;U$?`DSM;{nigSRs5ipRIly0(-aB#T$?EGYuQj&5FesWpC@c#fpeq}## z2m_;OIf#6zJF)cu}F%85PbIq_ztp;G0G^d`KVL<=6EJ)Xb+8lkOK}dej)ZpeC$yM(5<@Uj{6T;x_%M?1wklc)#!65T6~IP z=gYZD>V79~-5BM^eGXR-O>-AKa%&IHcC1WI45`?Wg}Y-9s8>N-QkQV$*}^kk4$0JeaYrYS_bzDK&tl_->iUo_&$}aS1iP zPBy+$-d+w@RX4+I9Jt-&azjn-hkZU_Srj>(9~MQhP$Q0f`DF_oj=iJr7{S~14qyV; z3s1o=Jn$#-1a9NDh2LC{(>-`ev!+*ym9we!E5&Wk%<3IV*o9A~1mC-!NkE4C4J4D zTsiO!c-U2V7ZxFG8g3(VZdz6nfhr9@;YUO~x>t{?Ie_j{0QGD(`j1k%mX};{p)FD( z`~}XE0`&W?A#5?L?tn{6k$g)R%Ugd&gj%J#r~3^Z>gDXI9k8e)O>+5EEkzBY)mp9J z+Aw^+mphu{vl@#t7n)}?fWSV&pm}QFZ!X>d8+k)aOYX67k!f?fQzZijpq%bmK8by8 zUtKAEt;VLr)rohNZz# zcYVj&!9XxTKA|n>56o5?`Z9WV2@ykSzZsO?-S$d|IA5Y+axd>7Q0j<&m-BdCAM>tv z4B9eqkAywL`_fLD!I0Y>B`hJs;JY#M)Kgz_GYsG@uYf6I;Wz}h8qq-37b*7#GO6M- z28m=Ef?Pci3);CO$o!BW=2^F^+lgslDv_vC8n2p`eHfZ}2Z-u8Fd4EnQFU9Ht0J>n zxnu)lZnPgyQ{}7-1Fr>3fE7z$QA}};k!u6d6$KR~O%0jUkGu_%;CT*1`+$`IdZ`$_ zYxuwWg>h|7KjjR{{!CgwgsOT^%T#4cxzwL+zoZ*AZ_Hlze&rNF%DMXVpCqFNI2C8+3x&{g+EJUQd9(CXt2n~+ z)GC-_=fSxz+#JA#($Ot`AHdFMsJ;j5?a>*rn))BJM6x%(DVh$MP;p@hwN&&|E#N?$ z*u`PC7y916Oa|0C1i^zEtv+l20Jzy_%u5GI?J9q(_#{;#F&FVUxY|0N~aD7MBLEX#WUWeHO95-!T0>rh;-SZOM?tc%jsF>MN%W+=vEtKcHKgPLRDc88+SGFc`LEV&r@%S zyOkddJQ0Rl0Q@oI7&4&36Wgm z!0BcBh45_AjQ8$S2D*a_gctWA#BP`-1G3a2VsTL`VdsjJ$`)yO$dF#L;8YE^9Lk3> zx}N*U*K>~<0;LQ)j95Q1PZJr065#}8DID|@yRa7C#NNYXI z*EsMl88x|IGb&tMbs1Rf4U~9yH_B=Yh|7bdA8cm1xI_0EMHj>%Mu#b7?ruaW$Gus} z9<_eV8nBBxU3Pg`z2imR&KL3i8jrnM_Ca9rT8}h2F3u3&b+Kp@YUYsfe$?QWV)XpO zsR8xolv#g#0yA7UoG^+CZ>v(-ZJyA@K{I8;94)z|mM2-nys<&^H6Y&OZYGwC?3XIf zJgIjS#VI%_n%p*@Oi|G9-FS;8rm}Yy?&!=P4*RKelOFu7hl-&Gt_LIU;uTu`1jrpO zZb}@8c!#dm5jl4s;BA2Bh4>@?07H+sC*R)#WIDA`@!mZrerC0&&S~acBQwl&v*MBp z2(Mg83u#I4M5FXUkZafFcPU($LQi`C0G}8|cW86;K+|O<^@O4}U(E09-E)=;dJA<$ zL``ZZw$Q3*be*hsH-qU>FEYJ=#^xKSkDXsh7eR|yFVkG$qW!wV!_q*Yr}9n$EF@DA ztMCZ4OFvMBzcU~I0PFP#96R)1`iBVW@b(nl11tLz%2PSTI)NOV_~mC~jZ?GWsQa~n z{Ba7b90r759rRd1rkb@up5-kC`hz0%eBt5n{owaZ=US!nPqOIT}bQ0x2>6Mp^SRW_Pk695riuL$pj)gGS#Yj7l8);Prq?b0}m^j zwm%(**mK=4Dtr;rr`OC!FUd}1LItm}<%+C@+`pF@XoEXxMvg&VvcEdCNY{h#h)X%avF{qKt|Hy#_0iiBc# zsZg78m`iBz#uekg4MA(gJ;Ger$;{c1TqiG%$Q$Ee8It+f5~p+90rkYc#nPwd`F3%rC%LGAA2%)0nUBoh^2)n|m0m0HQrPMgz|`ZYSaEQfWOjQZO1Z<}4-UA_VG;~lxDe(8T+F>?oZZ29 z7+t_XjoAsV`0I&*3WNxXOSdXf4?v<0P&N7sh{BI3YY)`11UV><81kaOQrDjsHJpBM zDk~6Un!jOl_>Hcc{A37gyKZ4qHmm(v6rGyyS|zOjhqj{}T`RmQf7RLBEG(YAJ%%Qf zPeL6G8H42DPD&;$VR&I;!8de393hvYx7A#38oS3mbEt2N8_b1EtUZ{>^ka>xCGNCm zcDYH^{za?;SL=9)O2g{*65xM;%TA#8%85ast$R&`9Y5YoOHQw>7Ag@9wF_$~*GAmo z+Uv$5?44QT+Klv1xgHTI_cfi{GjEA`HmKbJrqG+gMF$S%>57{-+#TVs5HNR z*l}myf)>^~PW)tgkMRVj-u~fSxE%FRI=#b+dl6L8?!GDU2e4N_Sj7YPT0YUgwrli3 zUN;j&cwLy(N;j@4`%0-|q*x%(YH#2F9aZ4nX=O6Y@Euzleq}zp5Jv`NCs7S?Ja)@$rPW)xf6v4 zXpGS)D|#lsbRo@F$44i`{{YlyJ1fCNxly`^7v?k6ht(X!@OTaq*OG z;za$Q@@kmhqM~>~9UrG~WgLIurf&K`Yqf-S+MD9toJ*9#tB(bt4Z#>ps2h~Sm{KbYr@(2(5Q_#<9%w-V%Y)#A zWkiV*S=W(dbKHAGltl3A2Cz9I)WiZ`ad-w+qcsFb#AQ^xJV@a2N|XccQz|63=e)vE zaC)8dIF8m%=ErG)oXU;*@Kv+At!2*HdkUS#)%ObtaN~$(&3y=U;fT(RmO`aY^T7nJ zUr?MaONVfZjq?ab=PWD0$VHvAYI^Rb?5XkYRW%K2HU1=`b#==snN~Bu98H7q)EV5O zrcLz=rIMxbnRBuiY1Fh0Fr{rtEuxf@}+Kvsfm)WpL99qIPriev|RS`)k9UGqXR zxT)31)IAjX%iA=*p!2tXtR-IjsZ=2pdG%}_rtsC13Fw;+u~!W7foq!@OIZ%=h>EAn zvYN^JNlX5c^<*0L%Krdce$1Oh&${e}wH|hrHeSm+;w z9mKchcP^3p)!s#fH$KiINZNbNBWMU`QOg%+&ulq~e%8n?WCZzniB*1_N|9i8>X;{3 zq0sA>&$<(TPpTU)~{4o)a9*L?A zhmbu|kUp3CmE^MC8jJwr8*cKYNy^D7SUkYaHm5YagI3=y)KWmq1u#wwu7WGst1y(B zUMf@+l-djXg(5Y@KP)OSIbg@s%H02x@e~ z`B7v^buL$i0!?-k;{O2iq9dT;+xSWV59u^kqM-U^WorBi*1s?o=Fk5C4}J{RRITDL z+A8$=(JsvIwyze+XMO(w#NJ}6APPrpU@!a1s#4y${m$5v@#lq3Jizo|9pQ-)TuyXZ zI5jLjbVp=-n zN+nNGB9}XhXa11v6MT9Wpw$mM8-RhIQ1U;93TMu9j4easwe0yLjY8l$53*(*>FDbG zGa(Ttld&Bg6X~V++l#&^fi86a0E6RZUP56iJk230Q9lqTEUkgmFpT1N;;<#liGCOk z*Z44QLexg!_>2j0iXlc^Bsq)mI7{Mo%ZtfqI7Q2ZA>zCwVT44+Dts?9s5V>}B@j`O zv^7&>d~OV368tNC7+e1U0EunF4ClF)E?4SWnE|LgXA`st-Jde@U9iUBjO8vHT}ozM z&Za^aQoIyOheQa~=ct1V_fZVarC)NOnLXU5dMXzfOK6oWoVh9l8#d+qOSGt^q&SDDuiUn!G+aCkba+A} z_mRn$o~E5l@tHDQ*|ufHgc{ZF=xCZVvIpSg7Pk zE+-Q53?Y0}qB-2p2b`SM__@rih}#F^7dm`-IE^)uh7amdaLcbX)EKO(eAdTxXv<;h zYfs#$Iq8`Zz+sZQ6hT-L?)$+#fI+d##(MIoCSbLzeqIc(SmrD6yw723oQLwyRiZN6 zap<)O<`UuV9qQNk5f>I3_qKAB3(I&$C&~Opt`;YvUMwcP&07#}BNQVL`sIS~Km9~5 zwBhhP{y;buJy?Zq7WS?&l~a5XX+w8baV)S!PA>*L3gXneMIE8~u?nlX)p$`VYu6F+ ze${Y|UYE@%%9o<4yzgh3VCq-tHh!1zv_oZgIK+icw3T(IuhB2nW94!_>|ex)YWwjv zMcbT!4?QDt{{T@NWu@1qXpgE*jXcf*Uakwt2VR_8X^=8NKYqpTn9rhF#X0;KBGez+ zlCrTW-6h3u)cBWdSMK6;4YGsR_nGhN+vi9GxsOyp0NK>}OO|y)A93C3ul8;W#l3xA z2#dBI-zq)s@anuow#wgMqln2cH|5O_L;AajwUtk-NH6V|`zkf6LHJtVbW7XS&&*^( zi%dD>6K10)*aQBjKv8coL1!s6g%x}eQ(Ct{0c_U3*A4FQ5KV;T+9s7A+919ojZqYU zMe6P$5Ej0IX^9GRD@u(cQU$O{8Z${kH)83yrN+gyKBL@G0JRwk=+#T^;{$gWF4ZL# zYI zFQ`(~!lht~{{R?!4`Z5%zf(}AG@{mA{WL@CqSOlhu_$+uClD5pJX+nDzlOJ)a*3UX zpw+`7;vqPI62u%u=@~Px^o*yq`??kW6)~O%?&p z$l}`mwvbay+(0+845k<3PIm=%=za+Xuob>5{h3VX!oV%3Bh!-klz6jY&t%BkDji~3w z%KH%a4^tORT_-gQORJvtY%LNsE<70;fMI|V9l_MNyf%WUFk*uS5&r-Li5?|{ zd9w#mWymb6l@NE}yOi>-Tp4~0k03mu1o8&#W6u+`)x|Tp{DskQ49;1x;jY*~l&LyE zo$-?=5DMt2cy}u}n{uiouH)A8FBpXx0^@8{D~g@Q{83eKs1f>^TtRqA)Vb8jZ1}i~ zu<+fl9t)Qrm_a_SGRFS05|0EyFTqbxyvao5Coo^{o6T!}JvE*PLAd;8G$4SdCtApY6j%%#Gs{R{*30GHD&Sff;`h?wE=r;78ot<6)9NMK#zi68_ zp;z@88MLqLGo42C0hf*ZIHggI%IrNlZW_;pvl;=XyVyX7r`j6~fQF$G(Rr+DZT2dK zshT&L^)WDi>}JT;T+Q&XnAwcM@b-&PMyPyO%3kvN;pqq=Pqor3gHl)dxrkQ9^hy{E zC=ZBdTIlPUlm~C8V?bFy2FpgHUdy7O3c3}Hdni?AZ0=pc{@JfaA>p5K+Q$vxC{+f# z7T=5gZgMUU#0`}@wvU5y%-f6D!E3A^MMpVAx52o6q94IEz@JrSD<6h8s1#rEVwe}V zL;00D{{Wb@ftvWWHPm~(PDWRT7GSy;)YpJp@lz8DODOHM^8z?eh5>NOWQBq~ zKtmNRf9eRsay8h2NsDm``eU3FdrNgMg#ydqnvgOYmI%5a;`X&IHHxkcVU_d1SC~@% z9e4~JMx|{~75GXVBGwVl?mM|iO687fg6ryx{C!NO#_z(ecKl+H?k@WLnuKtA`+xnD znb-MH_JL!hW`LJ{iP01s0b|XnDL$G&|x1Bjm+j%eJ^l$-%P%~Su)cLjBs<$xl-}z&9WBW zS~0Fdz=m;kgun&##*&CHyocu4OAS6cHva(WEYMxNN0=0*+p(rDRqF0_^!N{%k!gKm ztB=FncT5ab16Mv7%qR$*j}ouPapAtBdsWB55SN@mOPPMcW$Hb~#q#p&c zD}2Ctg}=hOc#uH@;e6bD7z>w1L`3hwm$5=tZA7Y2HmBIaxuG4I7)XN?(Bh&ww}tc^pNSv9WZm&B_4O0rb?D&TsD*MWo> z1ZJ@vnQ&GF9F)2xY&$A?s7~J-UI^a@Uvj<97=8B&>Roje=DZ&q&a{UB-Kohc7 zLRPSr@#CmKs-~x?JANuw%9X@OClUMlj0-X-A21@K1!MrE8CfX50*MC0nw18nVKP$7 z;>b%p0cR1c$o)Mj=>d&+E{VP z_^5n}tK7fieT_hRk{?G9K;p;ywp>k$=n9}>_=AlIDg?lrb-uM+;I9cu%wA6bV6YKm8`Z6ALlKE^qLQJ2B=4Izj?%I^(Daf66^!jWLiL> zU+WBhFZ4&;&fXU;)nd@f8S?;95Lk-Uvf}B_-Y!iI4{%@CqwQ>Da5?>yHue1t@O%UB zIVD%5)=I(MZ>3^o@HgFI2iyE=FZPXNhrfqBL6@qd5l$8x7Bk17aRM@G1?E=xY;ttr&9^9{F%}X+!8T!MzZk)FNmWp)G1_FVPH6>)xfF*g9D`Z08-7i zYE?07S7#$Dbc}7{cNHt=Z2O522dm~8^|IV9yNRm-g--oFT(3f)O_2a~_?F9?T5M+8 z?m2~{b7NJ@;xdn`VZTvlMj}DaS1bmY{KNPI847k0Yqu;*rUHs=fpw3D@gYWt1c9s@vITfzT7J8G%={jZeH;K z%k@H{>&L6W#h|D%3M4nSrET#H+syi^GX)+ZJu_|V)wbJHow(qYw?gQJEDp)m@xsn~4Q|1TGUq!6UCJSTypdl6?k6f}L{_n@mt95`knk8m zbp>!hh2>mCNL&|CaFK$8;zGfLFT%@$Fof7f|cN2;wKojNzey((;SD2l|YFTrVJGZ`gXEjA{g16zG zk`tahhM9I5vZW&mgu6+6u;xDHHbSmKPZE__a)s_APR4#Y~OLH@Q=VJY)}WG zEO^@LR&C<;#3=rcxYFspbIvb44hez)f$m*OZV#w#uI<9lAD;cBbE2P|TM7|9lUEa8 zJQPixpO08{D1Rlv4S2+yr+%(8gN5T{fiLZe&}H;;hhqN#$e85>JrT)8-#{4dtM(p< zJipkH8Kd*nlU9-Ut`Gsl`t6z%So?)E+&=h#QtFLm)U!HJ)Yaod>t!+C-sODaCHRbP zqh2g(9-36~!3hMJcHN39>ud@$7Fw$N2~!uZ9#(d95r9v5-VD7EQ(c$rm1_2eTS=RtwXN{K!#Xh{q^Xvgb0Hg5;eP8cxg+hj(Na400ftWRv{##J&sjvA(o?@rx zQBrp=q*oI8Km@~23s`BqvhsNfo-L51FgpP>X-Xnnz%o-k8+dzi|Cn}DVhpxq~UEa=PN49(##6xyy`kC0Z;F%kKkzuQ` z$$?gJ3&^lOF5nme%v?nb)q#|O+9j72hPu#zO6mRT1B+dy{UIv4aztk;$#3(8)8h{O&jxejSW!VCNx(lG*M&qgD zdm!%~dH&BBU3@Rp^($V|(JJzCS3qbTrI zWr@hdP_0$D{BZape#m!wSLan9v%_(lmUPWsKwDN+x!;SZCyr`21`#Fr3G%b7W$dHQ zLg#*aTZ1nrex;MRWFW(slF3F&__$Q2g5r5)b>^i;CP?u8WUIB+v;>GaA@R1l;lPK{Ug<@r)Swt@g@g12Iy@!Q^Dc}fVH(x|+^vi~^ z#h39f+E&pi@C?Q0!Xf#APf(l?;^Ad@u4VjJ%*n}%2)&j3m6ugI$zh*tZ>9rYFK8t* znN3{eCf3JgZqqZxxe>S%EQn6{xnRops9DLE4P(gtXxi2qMiCh$lyKPWD6W1 zmrhhX>+9fxZkhCBX_M|5mu%mn2HI~s(=RoZTb$)h(ViH^^Vn(+E)vQVG40?06^mV*PXB~1GAt@SwJtqONwdbLz)nYqi4}7Jx{tS z+Qz*4&N47xa~+rQ@ShWq;r<8!evTWB?JK9ch+$HB`Pp8mN2(J7AM&zZ8p-nV!se_$ z-yquwyV=BSvK{7B{Kh1*pT=jZ4Ph!JriN&@}@5lRHR$qnZ3-l+M$dxKd-9im(D zb7f^VK6K#u$<3=r1u-s`k?51#}8@-_%?mOL<`3T)+6aGi3a|% zZeTfE7}u#|-$F3&L$UVUc{JBT{8R-!wc_=6HCjNamDUuvU+r*l^udTLdl9>iV#Tx# zAq#vY>#JZ|w!VK1b3?w=B9lJfI&N>bw5ZbSZPekvos2j08<#0^qj%1)*_3ADPiVKNdfjGPsEaixT9cP`aUyicr=)J3({i z>6oC5hD?96-(4U+J&q0fI7IrrahPtQb z%ggEW%&BuFWF>91yBL$$9yy94QOb(=8o>L4IeQaZ{^pRb-4u!1qm1!BB@c+!-Ui?$ zC%8t)uu6U7de2A{RaJH8;$a;ypK$*G0#i4|5GONXYX}qbDn3)oE6MSHnUf{!;9$y& z<8owJLKi*Pnw33x2~d=V^Aj1wxZi>t!ESOyjlq690vicsfdbibt|dw!KnNnpEa4as z@?0Yji|44v{0>)R1UUu_NVcN6!Vb%WkZdE6i-N@k=fDkgp;E6ZTi}3BP9P^!Ynp-G z?8~SH!-$6w>Ky#dDmM%Da{PBIDCmX9yqTG@o!N4eb0=?rYsI|O+{o#k7W#oc82v$^ zA@v7ZoU)0KmnyzzQ-)NsY*Qj^=3Fb@o(K&P=Vg<*tSz0&We{s6Tw`!xSli#0R0G^< zaSkpN%7Eb(s-yP;4_8q(am)x*M_@{nX7S_WnVCEAIL`7F9=n3nvJG&|U{tw(GWO<6 zXqD?HzZBdVa0zY9mA>i?^)44s3h-|Hh3unziZb5dT_hz+uNiTvSKO#Wl2gR)3>93R zLXKGM+nE8Ez75Gw6)3rR5&<3>Aq0Vw9~>M*3DFZ^altJZ5atU~-0%u26wpgK{@_T$ zdVk_DMrP;Yg8u+)@oQ%3m<}%U#5;b(0>1FX&5y{{VBPPNNgz*1$Gu zUr=3f-O>L5!4W!BnS{$TgYIUaN+7Nr!5v5C17{E;0?3q)!L|<7dG&-3DR<9i2$9g| z#V#E8Oup|hgCCnUf|VomS1Q$t{{X~^kDa^f7*SW?Uceow4hBJtkGo*TrNDup4f?t2 z^-nK52yiz(LOVcHjv%LUS*S)a_lk6VzyC{Tug?8 ztAn`~B1&g0LLLPwUeksMCnX_(1M4b|f~(wNW!nyCqcX--LX$pYiN|QQg3`2Y<~6mD zYs_Kh)rg#`hogx`1XGXjxL;Nn6^l9nQIR2h8AA7A@ELa$7E;H$_YVsFR5`dV^is6^N~kFJZs#wl(TdF}RC7jA zk_jtsw7D@34K@!=AEX3jo;sNl-an97!^6iBP<=A_Wxp!Hwvd6iEVyRuA6yUQg=Hym zo8R06XRlhl{mr4Hzle>?FMly0c8#X8)vMLlvH^GWX^-o!@{JRz^D=#Z+k(Ex_+csW zei>kh9!G&NDGSBn^uq$d)0PJ`i|gyV?*~p@Z1p;^~~iEIxC5V=uHfi5}Y?sqOH zF{#X{TPwkL<>C^&hN~_GKtdh@Q4>9qz9J+s7Zse;T!buC7R!VfczywcE-@qHe6GhD zWg;Ho;QV0Y4q*Zw3RJ%VFNJ%FHMwM>8j-;-54pn`LJ+EnP%5Pt5?TKM*vF!wT|veP z2~gzihYSsbt(2Wgt{C)0y0}J&!>;CAJxln5)k~M|6;QcM$7&qJ*zB^e!Ntv#T=p=c zHBb_93dl^~1QQ}loT(Vp30;z>yOkd1^iHP5mz5G8EcH4j#nSu-6K*|C^*X2~gf}=JN z*~}6rq-KoK_=b&vr-k3l-*qYTP%m37P>mxKh{b0zmdn|v)kfuWD;ag*!QukgV9EaA zXFSHPQ`sxeHDo^JWkPj+0IA7xz=oG7f&nfCj1}%%Ik-C(DTLMoaTz>+8Kzz_wd%f5 zWA~G2=l=i#1Wku>`V%j_Z~|MgWeKp_mYYYhh4PZC2Md?o3VjSVwDgd|bJ3parGYMQ zOE80B&?jm)5MgHsPHdlQaE9!+Y5Rv>oDY=&UpI)9*UFpL{{S;eE2oRFMg7K|s*7*h z+(OFNdQF(gzlsRMSSJ0lUsQDP)Nso}T+g67_!w)JJ~fBSEW6ca06Ok{C);paQTnoG z?cdE7_ZeepR{Y^?9eu1&B_XZi`KRSLd|VZ^Vm8!0MN zJ`AlV<^3U}YWLA;b8&|XcPhoouf#{oZSlbnu$o>q{6GaXN5cg@QO9FtMMjtBF;Xo* zUkJ9VkmNn{c| zcQ2^n@}~VnL>^$N$@RL_KQT9n+eaw`p}{XsRCsmOG`Dfz*OvBI4FDZFpxIpraHRWz zIxdh7as&#)`=G{HbL$GvOusJIF^($7d1E%7G?nNTSplY9Kq#BljHpnx0RhqV4*^c5 zvMS=^UV<{_OGUZeK?E!!W@Yg#wu@13aab#kM$|%AdIxR|y?yls4@SzjX)S@h6@Ka@ zx1JXW*+RUvV7GhAMFb~X(D|3Z80bzPmJtz-^3Vd+1PC>0V|4^mZ1i5*;T`l=zKrzD zf&pa{@eV}7)n`jIM-4_VhY0V`537O=j1w-dA1+^W^(gYm z+6z&_`@~a3w7ZAg57@$S9RQu6Yj6+|aTqf#g0Q??v<-sbDO}9XtA${=wF)NmY~he4aTx zSB4C-GhtpUV;jC;H7Yp{GBDyZB|J-5U#|mfC&aiC;VuM5bCbK37%^aTlDt%`o8xHi zY$4*R2*XdzF6Be=f|U)2h}1~HTqu<;FB1GFxbXx$o&yJ%LFAq6TQZB2Tg|xc;0VU<3&74u zLzv?Eupu9aTm~E0fPHuht|k0V5Ut5pYv8D7SsQy3K@^7cC~nlJj-L{(Jh7snjrKCT z69q%=J<3lsau{?}A<9RLIDj=ZkF8B7K;Eu$g<<6COJpBd!2$Xg^f;Wjc6SxcS|PqN zRM=QOr9w>;=#Z^I1JN$p=)9G}1#SkiMEb2p^)bzC*``H}49TfLC)*nFY=!7($)9k36=~bF_HGbTTLdD-r#;`au z^%NyF`c9dB<3Y!E5_Cf1ff}4I=cLJ}XPQ?D{d|*#R%G7Vu4u|+7NR5`;+@rK_ISX@ z{MVVego66arOwy*M|FG{HuR33k{6f%05XcCUi1Oz!dZ1!)0bu#YCXWVqh<9=yZDUx z7_*O-{ke+hDj(|uV_Ob?m~iUXR|@LvUyVmB8EgZ8xz@@J(lxQj=UDX!BA+~#r%@r-NtaV^y22Ej2bugL3o^Dnv2p2?OR~Pf4VRx8n zeGpt1j~#t|OFg;;&ixE7B`~v3{9wgawEG}tR8Bd_1iJKb$mR{1UZu)jVJ^KhVW`gS zLNUtw9f?z^D_Y`$TiF&%Q)F^#5b1WIZ~#??vXob4;YS=`R7!IUsS|X=aWAtaN(xcr zW+uy=AqH1V_QmT>7)`Y9z9X3<>Rer4DYu5TR#w-{#ytCu3UpybRcItw8CGyuMK1y( zgRg-^9ODh76iWvDZT+*YYH=|ABc*5Ty8c!n?o*SMbX0AHKZ(nrseZ_@q*C-bf@IOyQ(dqx9T`zvK#c$8xVtfT|hmY2RX>$x3C!& zy(z2)R?%}B5w)5*zakzT5f_-U3lC&K6=pMt(J4-c*)fXbAJZz$C3+%S<7X9XYQB|H z)hTPr()|jJJ1jmwn1LT~TllIMCMBp7l?#cV>QJ{eM??50*qj|`^e2h6k0OX}b-7!Pr|QCV2Z zAV(tu^HQmozBs9{ggz$lV-%NVV&91(#LGp6P6#s4<{o)MA5en^T)BQ1EK@RaB|?oRCbXlfdVTgFn(7aT}KLIWio0qH$kaGNH`ngOCZ$ z!s|`%jOEOV)7Q*s1G08TLXyaMfp`1#AVImo8*2 zHf`Js@YoDXG4WSj!pT;{iA3T6OMOAUu3AC{#PA`C zOSt?qs0XNpN<#12N!lCutIhk|PRqq#jDrL{y$0KdKooUAf@b_QGcUwZ^0fw(Q>vmb zd7+1K-hK4|*Yr_AhB2Aa;~o#o0uV`WJnqLSXSzVmi^tgQwgziTm0_@#{{Y!wQtMw* zZSfe2M%Se1Lk-$k=e1hqXU+2#mRZLZ=& zZ9?4BQ9jrxbm@wwg8JM7h=_a5HvQZVy{?)+$gP^uxA)B9QSP??0FsoTh7B2PGNG{f z8ZXZO0NKh?4;1_=1n|}S4i+_qKIq&2d07r{m%SyN`cf*83J`Ir?rqlgmUg2c)qLu07*+9fd2sOATqpc3ykl> z$BnqMx5XYW*NTK87#3S92FvkCPhKhUXSgo&$3&@q3Y9aGSGZgWoOtS2fNFiP;&EFC zVm0J08vuu3?s%l9feCz4`~i!<6x=SQ#2_F*@ESms4+Ag4%Z=1ya~>AUV;sw4%yD3_ zV8G%A3M3+gCBTGK-iSQ*@AnP~gAOO{GPs{U9;Q>o^&M(F%B+BTgt#9wVl^yk64=XB zoEULFZG`n)ET}PbnH^y@hA3=biiSt_r66Q2S@$Yt(>=qu)EkMPpAX!4nSRJ!)E%AK z2-Fq?(Kb-Ato1IKHyKQM;t+NQPGEEsh;=Sr?5RDucP*k{(j&(b*e2}Q zOV|y|Z`Mi_nBI8q2EDAv^%fNb=HlA8B@gA$}Er9a)2fGP>8W%FW(HkhccitRJaXC)Vtyk@D3wzyq=XZ;a!jdUPNz> zV?i2zd^IU*SGZ2$#1Db+!pT;pOu2jRh#M*nOSnA7p3?E+$a#fo@NkMVZeOdE+lXgAs7Im;ifX?0ZLig2-tmW0 z-3y0w(;Gn^`jx8Q<+h-_25Yyt1T>w0T;J)RbQmS?gv7q9L-Ls|OZiIY0VeeZ9V)5f%EgqY*DEb^p5S9S813l0{}l!>FC)`KYr38 zxPPM((5L0oT1RJq{Hcp2M;s+Zdf(I@+*8|7-FYt52U!bKF)izySu}1Np;aGna2g^T z_SMRz3KX+aOq46;7*$&n=;`8uUq8y`0FO>DiA2hmvp6=eZPTx~Yu=9XYYBKr@ZozS z)6*)unhFy%3yVCzi%f&81uk2~Q)8vPX)O~syFD`BAKPCfCOsdEmhD9@ho)Chmh>6@ zhH%6>VDTyGL@9798kb6^R>X!HM6#zQ$WBwJnu@=3o*AQX2gGueXBw^{Z-8Y~8QL_) zky6?MokE?G{%B?E9CroHi2HQ~gQj{(Y>NP9h$}>iOr}R<2Ob!wxJ=HZt9-*&BJx?B zhvT%0;#Pzsw=DUi1R!k>FpW>B5UcqVK7aBfqig!hGx^@Jd`tY^E1oWcm+UA#(hHY3no+y42D&cHiS;N6?!>Adwkgl; zZk#`QF%i0V;r=nQYhTdnZA9f#zT{zHtDf~Zh$rrloGL$; zf6^zG5B-1Vj=Wqe!NjQH4;ui&?l!X}#0u)+#>D>sWIyUwz?G9K6?0`i3DI8sbu!^z z8D)5QhU~nRo*ttaQnpuyr(O-0EN^@;CC;3I4>{m$ixXvJ*g(1Xm}ID2?xp@9UK;~p z5oaF}Y7me_z7-4n5E2`JgCI(Y;ad#vz%q{)FCzmG__aoFzYJo{mK*?Ki=I11{VZ27+rNHN4vh4Lf9r)UWLK2Bp zaD~0h%sL6r%jX`Ydi6k#Z9jO@@>voUvcVQM}dIKaSsM4X%4(sf+S$vCAZ>+A8_#XD!e=q zRDPvz5g{4M;2lS0TqAdpdER2bgc>-6BMIs^Qml#_h&`f*?k!;CmKT-~j*piX4v*^w z(%d*>jO`~)@tDtkXD&idp;lc!U!<&yjsDo|VeEMJHg2p2ER|=vlIF7>iuh*l(a(6= zf~B41mgBLp3P_D;k8VN!jb7_ug5e)VvHi-{V};_kV{uQ|t{`!_4{MFWfpc}XXF|*F zmcpva+)-$ew##QbwGjF){G2d3Pylog-r|=}e-NalPkX`}N!KoVi&i%>XoV-v`=Bl* zI1DiSNQ(&mr*SWI{{Xs|R0Bi4J45xqEE?!#@Fi%t8vZ4v zCw*jwwmA6bD;47s5ZSJ&oITF~7eGMwtSbcMk#Tm}mE z5lZkqaEYuBzNZ7t0UuWj;{av7v)H4pz@pwsM*({&IamVOy&E;9EV)@LZ{b+Hb@z+` zbY1qSgDtG|EwM{c!`E1mXNSvn1$ikp$f#I@&EC@QQq1H}WDE-T)e~JGHvsi}WMiV= zY!KB)n5UcqKgi#qs~9YKo$9|BE6 zudXH$O_$u|X-ejh@K8V2;gHk4xQdsevX(D~e$Ggr>S;r*7guUTbQJi!@eSOIbOSl- z4{&&qdsF`a;AQ%;PVT*smQLgEs7B@yt&O@QPe6mgLVDh)6%z?xPNJYr6^?=a*>B6U?cz1GN38}z&YmkM;tqfZ z1nd{^B|uwDErsQ}saW9RTY&S5Nq!VaxRdG}fu=j!o}Gp!iWelQ7jtda!Cel$kGCm^ zZt8DBX-fXe1n%YW#y@!g-h=eVk9fk&6Xv`Foo~69wrAqE`4Gx8gTWGuF!zkek9xC` z415xoQn z%0rfZXH#qGfI!H+WXp#nF!wimpY%^qTh4rYlw{*765&L{!%;R|*^nH7OUcS@%axLh zfZq^=I*&CiY_ba$T|gz~crBMnP;ZL8fK(QGh|KGT6|jY}h^#yV$L2fZln9XGrX~5J z7fsBIr;o%*@=GIDr=uKM21lE~B7%r^uCUgJXP+w)G85cX%yt$ zlx{!NBC$+g5FT=WmpldJ6SnKmb1q)^pF{|jrCsX+8gvqVBDTM;zDt)_Y%XRoe}v{y zVEjS{G#vURYd#T~?Hu(r!4}v?sz26jz;dKPDBNG1%w+{mKP(l?1xbF)KT*%(vRH_` zZj+g$Qa+b~8FK}Ft;8fX5B;#C1SzYMH!Y19PSi~{4)5ATAr1il08vfWtkDXK(WHH; zvY+=o#Ka#6DQV4P_Eez@1c6wOrDg{JGJ|QqNw1U%yE3cKv82w`dn=M=r7|N z&|V*6YGOCGPP+Je<+9&iF|-rX!H2j4J@P>Jzp}Ua0`EokAhd1VG5$E zqpiSAL#CGyK!}37VBTz?xTPw(m(03N`$y>$!=VBNU&!JaRTAN( z3FBybfPWc&4V=F|)5MM!1z(8b10P38ZCd?PsCH2;%z^O*d%d`@B(Au&I>srm;Ys=K zXjH)5Dmwr(4f-G-4)oERc5iV!{c$Pq76EV1!2(P*{Ab$$HEmtY1v^_`mK+h?z5Ebd z+(d8J-tMJd>qMcu8z+K1{{V7J+xnV^V^JEpN4N6>-m}U#G0pOvQ)RwbXK(7~6>2RG zPFdDqzi}(?rf;Q{o{)Y(>_8h41Z>3%-#4N z1OCdL%&dAyvrzE&8gtZt)O}EUtoWBzv%~dLl}$LlcL5k9OhkwuF? z>7m$&YoD}c(HNh!te)bjGDTV$sPM=UAubZ-WTJNhZOpmcT!RR45?_Gj@m$I#6Ns!# zpN}*`qr?tn%a=Qc9yi1APN!3ScrpyF=fOWP;D?Qu6dRt&(pN-TXVhZH#l{fS3AYJD z83=RYFqnWLcts9iLz}*-YZ0cZ_-7Au7#pW@~ji##RkNu3mA( zE$|xLA@wP#VHnrB_>{t~RHvpMHsUp;G^iy-qz<4)=E2=1FHycFX&bmod5MI$G+7;q zkekIy$d@e{j67u!VbaH+9^R+XQ|8O@_=V4K5_b%+qEic%7`G1rWk7g>PS`0g+XzbI zB~dJZ-0BTv{Pk^vsBF)f?unm(p{WHgTzfW4UhlTE~lbmiQx$hDs3dl`Ohz1S4& z8uo+$K}h(WR5tGuSEKaT5kI#QT}REZ9?KgM#-P8D!rvYoC0$DhGW~VCBGD z;VvfD{@Il{dM&RjH&in+JJuXQT4PjE^V%nPZ+9)H38c~9fT7Gh1jv4Gf`3az;`z=wV zXZ%rg8@*0b9Q|P z{t!@xwwYLhdgFtu=u51-emy=(Yv~t?2P}EEwB<#7zj>|xTMH%h)YlLK#T?M`zf&6o zHEO$l2}+OQVlj$PUptC6m(=p&#GPLD6uU6qKukml78gw@dtdn;telOF3ep~RV;hVF z5Tqg{3Tp}ODU-5vUP{*M+OL#Tn0ETKr+BMyq)1Bpe<O&XJ*-Js*KO+m0Fi~%Y?Flkh!oT}=VuoP)Tl6w ztltI8n^La4BXYOG*vyR*wpMXc%9k_4#J>igaEt>p#U#mo2O|ooEy~%mc!3A}2;3*) zVJNQ`gxEq{yO#Q!=Mop<;DHhl8IU$N0A&fdZan9hN4r&B1B|_&gD1j+}O)DpGA9qsxba;u)lK4fl-1|HW`ieY2dYf@u*SSI*Q9GQH zw~4nXmQPhK^_533HtrPyz9q2Tg0YuD48j$4^Wxg6x5o|m9G1_Smy=Ra8Thyo*{S1i zm{c6A3YBo?rSF2`rKfzyYN98BW9nOIvAdo95~{p=pJ-WtKHQ&Bt|IImmnpKIWjCi@ zDqAU+;5cEdS@n-n;QU{?RZ&Qhc;7V4;qY+^sNK17{WS$;UsV#Jf#9E?AX|`t#-+f> zca<ikJM{YI zVqvlH2oCLTW;$tQT&qjcVr^%~z}#i7f^nIWlRsufTxwcSb5Vs|A?PJR0KSO200YL< zqKVF+EyJFU{s;=4EHZ7dSd~QONStR(Xaqed64+IZ>iLyba3BM_JL{T2^(q-yQTxo5 z6OlZ-u_~Z*>h#+t>-&Kp{P*W-2cU@HOhj6xRgcwLFpRE|zOLmpFkI8j&a->ioVgUC z^C!W$bTDsf>L}vU`L7Yj(2w3|wp()DZMY#(0Q5o&2fB)xOX-jOi)jvE6X^c{lDk^7 zBnTvgB2@yvb5X3go@pibr0!y*3wL@z}1t0F#0j&c<`GPuDolCdG90{2XGG%tkh#0iT2c~t}l59C=5 z>euRvI;Q=E8jGoDDXK+t`bG=?0CA=;rXcW33l~jqx_$`YwHXB`^2M;#h;|KVmLLb= zo2VOzJ$f(z0*OaE$NvE8*;9xDR9;3L>>jc!YW)04Abl+lLGEJ~tkL74u{HERaLc6m zUsCjC(CDgqrYxl!3&2WgEo#mI`i%44AvlPAQta(g)>hl;g?3CXQf0g9{&d&!qWL*7 z>&#D2Q3BH51wmo>30=j5Oie(xE1n=aYM)U@>LOjEex+!D;m78f3fdFf`)pfmQA`1` zr5i<=4oSIX#-^{0BvlWu9T{^*FRDy(SAnP=nl~+%d^i#XD&76bzWh)0P0nur0Nwup zR~{F~ao#wK%UeB6hSX0NJIQ`~Wk29c ziGIHDqu6N@<7b;h%opH0SJargd zBJ$60x|C%zo6iR+dtMY=CnQRIa=ATvf*tG01KieLMiC{DBHT*|%UbnP<w&QJ*F8};9UIkifq_|!!4nmW{E%Q$YiS_gM?Wkst?xNuEi82Gs1&oh=8(#(BkJ-} z%G`5?;M5L}P@Bgr4eX2Ybs5E|>we=s+C>Z%7X9{+;wrR<_?Acv^4`Q3?)vmuWqR|G zvXa=Zb+H!K1D7R0))l?(!|rU@u}7NYzXA>L1%8RjI&YqcctYDfM64k~=9)a29n~-& zI7)H@>8Y~smwuPZPy&DeeR%aKDeTw0)i)F9AW#zg8xEJ+BTIrO9B*!lox3TENHl(k zgPT*>vZ0yFe!_`bXn$Oc1~-A})bvJD(EHXA75Jgs3>`2u z`DYPeGMQmf9}*_e^9$a4d6-4lDFhln0JZ~2iX%iOh>@4Px${5V4K^--Reh5eB(bC1 zI$3TF*u-dzn90I~#e3^xyb!6xVgLida3VyJ2c^ZtLw_A5M&`|9|#-o;9f!9Z} zm|G5VQ{UX9rZbdl(>W<3+r_33^xXIB=!tj3{>SSJaAGZ3TXp;)!57)@KINUZ^{>ao zRf}%Wdd0OL+{~Tx#?wR-egLpAQT#xm6DOhRg1Gn? znXE<&^aQFp(7fYy6*Y#M1CXAPuX9c#f=8S`l1y;?r(9TW999ZhD9PkQQKW6a6L_5- z?h)FWj#|lFfpV6g^`zZ~KZ<@!hcNmtQfFir$T=AMYK@;FilZVwF&&UnT&otpT(QQ% z9&CU5lp1@UgzLZP%soEe4{!>QA}#sgahIDBbWJ_^$^OV{p<1PUVoBjJQml!|MDC z#0ZxKLdbBN=L6nJ?;lveusdPT5K>-FwpRZDs1t^79x`6AM(1#r%HzfM#Fy=a-HS4aRl^_& zTg*-+M~kYd`GQ4mWnRPP*>P-JUI_6XrOSaVsMVN4(t61Cx=Y#0qgG6U++P+-xLhg~0SUeU@Dat= zfh%V)Yr=*31{Jcq$?W&($S3W;Ga zbJZn#(B5feDW@gciwS!k3gC{a;vS~X0-n8}alICaUIAeBp)BK;ARJA$RNCSBAzQgo z;Sj$=V*s_+>eSh76@d`%_D8ssL?)WfP%b&L=W%SJI8pw6Ck!j+!qNSR7~FHL~&mUVdEwZIf02 zN=5A^LgF^)fK{RKbu+kDg%0gx;AN+$#lzr*78$w+sd)g6oEdLy3I%oLYpB`Nlv;eE z)eKtBID>P5GM^l=hzpcWc}EYH1Om4wxGoB`CheRMj{6n|%r8JIi&Qh7)s^EZ>jG5U zL?RWTahomWF`8H<^+pDeTeKE2gSBIJwG5N<;NpG7@IHz;a)-guN3r)k)$QD>M!gv= z;+!BVHCQz|W`G0pH6>|Re_~yQ?%D9(pirFqUvk5M-YKxZEpF(|{{XRE8cNY)PqgJg^ZW#*tXxqMP5<#nQX|(RKmTC51tuh-U;_Wg%13|33Vnr(@0ucHTJXbC9`bJ(U#-xHq2!QdCU#`<+Y^(2}3!6@B`P7;Qfv4`w)0x3k(%crMr;i=}5G zL+~8Fm{v>Ja{eQD3#S&G5fDpZTWuHuf*|&uD{Y9at(WK}bXh(<{{WR437u)DzK%Y z&r9XAT;4Vxwkvdj&AFR~6uVN!Qax~yAqkAxGp#66L+NFkAmGd?vwmukSzPwRT;$<+{T}G~479324)D~M9OtCF9 z0P!dpGBdI9P=sPa5P=9o%J?)zJY2ntlJ+cEz^PdhGQ3+ZHVgF~xEQl`p=r*Lw2%qHt8ZdJ;HGTY`|F61E#r~%72HWInK@q9o% zaHc(@;#QlV438C=0mI-E*`%awJ#ZM15pSPhlk=&g9&BIFJB&^$APljkA=>qK(q5X;x1S665!ua4Lk(7 zRwKoujaBT)a8z}dAdb_o+K6>4Uf9A%%TxWPUKEG6lbwe9#lg1f7u$@5mC>c~JqIV; zw&1OO!A{LROH57w0L-rfPo!V_00((Wp8DQC5!y<>1l#A)uK3*#iqH}@Tq@wK1)(0Q z^Rf`oFJwHewRWhE;NW_arhreXSTO)vEAbq16@3$9M|Y-!D1&y)PmbYE00-2fY(oCt zEfUuuR~?;uT~#n-s^_q#3oIP?fOv@$TStmE&PbI3ONb6YOX%^FhWI)9nUTKTG^j0h z-reKb*i6>Wz>;cL7#5k!ITb+UWv7`|k3kTNyLgSJ3{+E{#Uq+P2dNw~<(2MgR^I{2 z{{S+xBDp6(MN?mv$sJv5ud)T9z-Yb9f)b7obE=R>E>MkO0YKS;!y5i~U|>Og2=p(x z-n8Kh>NRefUTR%0poKw@R+fDre>&H?DGD$pxfJCFFBiXSqYb$P5hxFHX3!uR4X z?7&fI_i@?L$05StqoH=9WJmPeym!ewrU}Q*{ljJ7+WbVr>NtX@N3D&dc0eEs2XF^K zD482nVp8hJSP^X(@W+1L?Rvj(c}EmgxnNS&q~hf+UA^PPAFzPsRHwuaOiJ*4l1gUp zxh4>4ZZ1{EKzk!|xQC>zfu2Iqp@03!9s8?4B74sfB*s^^CiFcBjQS4#`)wdSzdgR^|&@$g_ zVL;#l=h|P#;39KE*b0vhECmEPBkkP>Es+#aM+Y`zlmfpV+|Nnk4RgDXBzKbwmLK*L$b&zslxoLl`68eMm*JdV7*G*wT;Sa ziGGp{8=7iM?05>n0EI|S?o+)R)SZ_Z3y1*MZx;vq8sDq}u_9Hz6DzvLamj!t#>BQDj(XAT?>3Kk_;dJwavcYr|v@L_7qg z8lmPq%i;e3ks25mIF&vs;T`f#csZE}zE2klzwF(Ire~;1fjv|uWXY3I$nrq0yOi)4 zSQ4A7o3i{r5V&if8v|ieD_;Ui{<4+A;?6==dYMw8$)jaWxkOdmrio=Tt|h>LeN@?d z8y~6GK#U=578P=und`>z7R304^Zx)P7o9?`dzDg`5*`JvJBqYLxOv9%*@k9_{x)sIv$7@lmVQ&{mx4b>v|yD zlSZbeLJ@GlWdaaA1m?vuyb0a}9H{>QD{`x83HB;?;r>P3Il1h)p!u5z=uk!7}32$BSTP%4(Jz%P}mkh&zekXui^2 zwHh0tied(^ePbAaJKP@;YuyW>_+p{cG4QOZNH4dAejqg6cfldGIcSuhlQx2i_`V>N zE59tLHi*Y41J4FG011Gmr~Fk6Fw_^oN-MOeT@d!8Xs+ZKxLBGto!X&F5$s3l)9u5nAhppUg#?593iNVbo(6~A*C(^%QZP_92%c!L1?=E7rC;_#2seFE15z%i^cHz(lx4|`(Z#<)@z@H@5A6Fcs zabAX4+G^eRGMuo?p>l={Va==&Ko`BJid0ht|mcwlifIT*g?s^x+i zrZ)co#Dv|Ne^YR{0D5D^)B-x{&)XDq2>n5@5+c*8wecaRg@8xuEP0L6&D@(Pm3{)> za;8M$eAH)f@LffWt?_dF5i2=|6Ifo#scP^_op`y_rW~?}a}F+gi7I-s5}qUP9Ph7sRJcjx&ya!)w_7Dn*tSIj%%hs|OgoBEUvTH@ z6H~!;aJfX->>4Ty+&YZWCETp~_cpu)^;6{Ly{bLOJ@r<{-KiP zG)1(^iLk$@+&L}oZTqRqDvxkue&R=nVSLK?=3K?*96l;!0_Do0R1N!;3#y$NaH^LW zJlwwE+_s2bN?M&x$Xpq0z9X+bDfxovm!XM#Gr@YyxrffqOi9#9cu!XzUx{#)ZWrSa zPjhZ!vUkj;W%&YZuZxunsA5qHCnWVfL@9~!1*-Xm%A<&rdLz-l4jnBANRn37kkWacBVfJF9zR=>c^O>i(m-nLxTuE{^ zUbGCFBKU^srPpp#Ko!NZEtDLO&R=WzvVB0-nRvef6T6FMpnl^L3#bCvtVGENeGa-`{hUosC%VW(O-NYm@ret_2c`4 z<*#r~DfUa){MZx`Z$z>bd$73)eQMH(F#+wh6|uBg&zW2R+-qDF%gNM%W|#FDh^h)F zNiX5#WKWnLjT+*{Fy!nZ>LNkgi_{~w0KEuDSl^?#xr3n*S`@arf?lkBwqEK>xc9+B z-bEH0zR5uqaG$hs4F`p#hbU>vn>vPHy2>SW7w?M31DdMVMq9p@;J{5mPf2QP!Gq@= zh&b_aTa@bUC-YL*2ohUQq~Z$!FM%gyT65^K;+E?8gWRizo}i#os1Vhm{ww_@436VJ zQ1=WwA8Qyc58QuJGhsIlGxmmZtK{~-ED!9%kx%9X)y8=%LVd7nSIccs_S1Ibuk|Y@ zMLkc=!TV)eLeQ1cZdJDOavXk8HU@kbYW)ybcmuDu4CSMc8>}S{Q;P5}01zNOnzps<&`N@?);dPoq~73%yC;#JI*o(ZzN`jv0E+#nFU$QM~C zuMKz{jmGX{;Pc!iKxOMK@IcI8s)Q_fh^ROycqA!MV9S@~)V8JgUCZ(oEV#eopkP3R zT6klB;4qi%v1ci8W;_NA;TU&>)NhexJ$sei%BzLNgY)3l6cZ-Q$oAagte-yw==Uv! zZ0nf05~F*u>%cejb0xkg^U(^b`JAgV5Wl8!bIcAcjl>IY@j0xc=2Sd&D5iI8A+5@Y zTp>y&dg^k(JZ*C-ueyWcq10-GViJq+oJ&}cuTzFm(-==0 zchts<@=A(DK~NdTGUHDX_fn%P`~~=&)v!5C1u5^TpltB(FyofZgXmHEo*_gAT8nNs7l#yiKavMt57iCnaUNP!O%7z39l_|-}HNLnQ z)#@A~qqU{Ka36%W=P6=0TIa3T9B;X`UKF@&GB#shOKGZ7!NpYjJUx(!7K8|*k~xo;vky^{0J3cKvBh! zOQWZtluQEOn82Wbbqo+}?_n@RENDGWJQ4;uuxJ@uTTc7QW|EfRPp^s3M?;Z^dxx+P zfUe@4EP+~v_cpWj6!OFD?l3HG?5IZ?f7IlU^AT8$HO^Nnc)#loS{4^%X6IEFL(wRS zGE~TG81jfN74TbaKQh;LRMP*rDgtQfN<~X zGl+6+av@V}zevQzZyR!Yl=!!sJ&g-@pe19kwow|e02BuRL+oC!#2;*YYIDGF9{~+g zqU{8wcadshfu8Q7V-iy{7}42SD`Y8h$&J)7t=Gsh^TO<^t~O@EkAork4KAY)Vk=Pl zoFJYj9T>@lZoT1()V#ef=z_XE@$<|OZ}ptGRArZ6_{&79h(qxVtDMvGxrdG13P<3f z(%!a2#lfbHkl9i29vYl^;>l0$Y`L=P97e;`o&b$Ppe!mZG2#S1rB@_5 zQaNV~Z6T7Il-vi@Xiov^Jo7eJws8(Phq&Ej^(cx;-h5Hb!uC@6fNXN0n8Ep#^8hYY z$|mpgz#9S)HU`AmSsa9`tb>sFcKk18uQnEtPA72gs&Q->E!Dlpn0lW zlcq4{EH!st17!S4nY$5(!;ax~780QfgBT&ts0VDTfpBqA6oU(u3&}>Js$9*MLILCM zN?Zyzv7))L!mavHG`r5}>Q2RfN56@Kt1P z2HYiGmD|5^*G*hc{-@LQBvH&OG8aAEFWpfNx|8>~H28;W&_;tt;AG?9MK9bT(~Hf7 zCHMh~MHxgLYYUiv2YXz8rTS=EwmAatTh;?5XUcp^u?G;s zTjS^mb%w71BD(`zxkIsT)+HQT7hWZR6Qz{&QF5{8k7fP<3J+0GSVSmnZFsqFj*Ea) z;TS}DnUeh6@=lTQ9aV%H_Zy8SqZ!q{+5U zr4+|f;Vb4I0-iaP3<{@?XJx?Z>T(uK;!zKoT+g2s#HuKoN{iTW2gO0= zE<#aq-lqDEcr)fNsE;X^4{<#`#3!g(31WMOp$j{?U+k9qovK+T>Cs*9%XfNUl+4|%RDZeMr~9fz6y!BL-%YgT$keBpt{(O zd~B&&&rtG|;#NaE0WDP+kTPIH%|!LHX_V~|_<%~|jb&UeJ7v_`d^zy>Ay6_qbSj*n zmez^XtE?lCRnD6(dj5f=QSrmm%y}`%=xxozLI&t;MyNFVsgj>zT}}Nz_RKg8^>m6| zysqJUb~W%y+*Y44!D)~4nN4g%-g_1!^9r4tqYmL=a*>9J-y3nYLO)Owl}Gn^Knef{ z!97FP{d)o+$;#!_Lgw=Y-)Uf+p(Es4V#?y}P4*ut+l z=~rtn%EsWJ<~e|5TSuA9TT-na-|m&~#YAPn=eU1|GOmu|`fagu1tNeV6@62N z_CtIQlFfF!+m#ykT0E4N)zVEn2&;tEMXoqh(a+WUdbIdGjxaUiYhO6JP{1BTdliAvi zPw-u$2gy8f0Hrm&^2G{1ge32ga%wcNqkT#h_dI**Kv)S_wR(&x6I!he#Iv@6%9_Ng z$LHq36&0~}v5cv5#q{LYwf6HPtOeF27|8Fcm)r!Kbg}wQ;1huJ@y`L^B{w^Sbd|mn;xdv{4Sr=UN`Wd< z1J6?r4fwPrcp_}9Ab1iS@h)6HD}xG4K|%>5?fx8j;YxNA2tuPjFM(0;SjF-{IhPm9 z8Ml$0l{&u`_}crOc&IY2GUe@s#GPYb9Ki&clddPcsZh7?!R}u$$(bBy;^V}~SA&d# z887rk8Q?|TltdwSFC)Bo{KnE&Tso9Rg=2kBQnF+k>&5RLD53Fj=ZWrHaY%KLy{YOi z&Qzz8RmQSV$L<3@W7`UtbFkr;u;y$ICAFR%N&J~QfYe)=_X_QSHzjRDkcwZZyDr{v zC+Deo6Dn!u{vd8V%4P3t1Yy)O{{Us*?l67Ibd*ED7xyTNq6`Aa61~m4z6f8q9IzV- zs1XXH97=o^lFCX?KUWSaA5xzljK-i!g?LnEGxG>#dWFTv7C=u>2;giuxmtLlRLJO< zV&L}zKBY_b?pou-rX%Aa%fAaH5TRw%tc9dz&qRD~M*?dlAI8t~#|!P_yrvnN1@S`& zUe#U8$cul6+r+#TziH|_e@6Y=Iq)*P(@`psFHQ-(A{TuVh{29%U`fn9h3wU!$@3zS zM>suu`YJAFoQ?rFtby`U1B$qxBYYYP;i?!8xOKJn|eS{TZTD-%PALHBrfkT#50G&FiQ#p!1 zUCOx$?JV7}*7#8aEDtw{H0m0k4#Z5ITRDLW zs8=vUT8n7!;s>|lEm_aseLN%dE+P4|et+pDM`xCrf-Y!bB+l32~vpnG9);M6FQmUtCb%O_`mGy z{2PSZ=AauY8b&O8$*>^IvU-=`G8{q&f}!`|2;ZEYL&LRcId@oc<~%k)ZY@PC7E`DA8+QM2cDim*sS ztn;c$e^9fCEXjq(r{wYVEu50=+w$*GPOHVu$@MrcYz>9oLhg55+XrJR9LI7lPAec~ z!&#EE&eWoRb_Kv{aQM)Pz(zRSY6YB5=O+;xJXTB0lxKsTl`b6b_ynwpkYU7c`^*n; zNmQ_^hcM;@xH%|w;NJs8;VrmK3aXCG zcvh0X+z3SCa7#mjE@Hek!ny0*WtGf+xs|PDZnBG&ES6-a)<9O9Ddr5Sfrj@fxo3fC zaj+Dtx7tB9R6AnJSl8V7k?i`o zs`JUsBkpg>PZ7%X?_`#j4Soo2=i2(nN`TaqMK?HdS=1`ISW0gbPki8*RX5=90vRgN zP4CPPbxQh$e;=eFU%foi(JY>_0a45bRLYLIv*JBV=2rO!*Nga<2-ksgxC|#`Ds}fA z;(G9?9OOBd7iKkZ8(Ahw{{V@*PT018TPTcu39v|dma~=ZV`r_5--tCutcizf4$m2f z87OfBu|{FES#UZ7;t0mFm4?((CEWMrs4qT<`DJFB^#`I;O-1Y=U~P&%oUZ7 zR#YAK@v!=pi?fCY%YKX1HZHH=#27+URr96y>ov@DC<1{+{Ku|8v-Jw61zF6vr3O`D z0{0tfwL~OcG$9m;dS5|Yd-S7oZ$kU{mhOtF^u)@6 zQtPDV(Q%~^3+_FwhQFw1C$KMY6s;G(go9<_I5VNKYy^W(+C*Vklj8A~pn79MxMY^t?k6beiDg1RfcloRMlO<6vYxrH;Y<@fS1 z=gl@to<`W9W5w?ntRgV=+KPhtYAAk-fs(3tt8Kq9P9X;r(tXqss4D;`CRp}s%qz=t!sXWoP{kE#@3SDsF80l@?~}>>k2zXv}HpA{YMPU{G}eqX9_N>z@@L z7vY1Rc%4M>cwxi?QSiP7!s9AjeRvNHS(8~)J;Q5fsMH}};Pp4(fQ3q#0$Dk@_#uPg z@U}yVdp$~EGN)4EdoLyIDh9TAAT?W6E>~ANg=Tml%i>!+I^TxNgDv3jgm9M?*s|-z z%JFfBh9tc4l9vkcP?=JhWIXKY@QpMD+|p5D^h}oAU|NfIXE4)cSwB%?!<)r zz{yN#jgXY{IbuSZB|hUnM`SwHoepvpPAI65M9$^*~{($;An>sW&F#w zHFGR$!EqQH$Aw&eyp>S;oTm?DB~IbQsvhzqs2g0G?iaQy?-UfFAjs8S#Cx3 z%r?I`{71K}-)wf@Bt>m%i+2gNn2x=eJ0F$~W8EmWha?KH;@h<>G{t3Tfd#$U12CV$%q3{nwohC<;8 z5c!*MN10Q6Qc?|(BMv-u<70IRSqhgkz%C|0@H<(4mL@3g;VYwo%k&9yi;Glu26X|b z2z9ey=?`-C#L5JE9Z!@5A5)n05JkNJQp{Kc1q)15B(`N4T|4$_Yvr5K!!&+R>k`v) zt+y5M>Mo(6pzUlqa2)k9BvoF{2sRe2mWmhH!skePv9a%mFPo9x-p(;HH=47G<6r2}k!iA=+3P4fQ$61~f1 zo`@~uZM~2+AQAbM`^#v10+7)Tt4{v0vM=`(eL9OUM5JR2)cJXHP12kncDC z;M5t`Fh8ly(|>iL5y#1mTd=E03Vw(eECciqY?I$!XZ0WJEL5R!B0;zT^s^TCQY({x znWe^F*F)%w*B05+h%{7FpV$cM-$H-FCw5f;FX6Vbft914xVE``N#_;JYznbn&Q$?C zQan)q0N9;Z2Iicn)VcJ@?{hBED&J;5lwP0_QKF&=4SNxk>dT7mg8<|dJ((}|LD>2d z*cI0f=fqrrq1Wa@Y?eH~Bu9oYgT4qs@C>-{%<+=Aj}yFZDB0xHf2~aK&@l#+jymDMP zU}@iq$$dmU^y`hm=>hurD`E2vzre2G!IA;&SXzii8yek$0NQn<;pH)hj6 z5a*8wz`g5bH3HU`2QDhyal z_=QR|jc&u4aIZPB>$V&{Lg6UNXMdQs!Q=>hpb^@EML?F7v+6tyqWpG5B?&o(@hEV> zpKd&Q*g~$LGM0*fN7)pd7)OagqIA|lM2Dd%l$5Uu1Vtb|DS<8UOvq>Yl_((zjioTb zE3Qae5oh)WBBT35@_HCakU*v18 zq*DI?O+fAp)@?>37w%gM8is_ics20>J^7q;YHe{VA~4*lV@;SX)zAEkc$pi-d4Q6* zi{hQhakzTqhcN46S1bV^iOk7&3#qVS?pKTFX1(~NJ;RKF0V2yvgz5otU(*`332|xm z{87-QOBbM=+Ydl=mg4}Banlu$k;{vMH7mP}&HFSWo6G zOE$z2(i!328+^n8qBd8r>`7K4jOVC7ha(Pv`f(3 zKS=Fmw#a*;fN%~5QG?elC?PiUXQtEOg)jiU7jL!#x(s!)7iy_2 z#^9DGiFy>|Y z+e71va8TkEgop*P-Bnz5a?OHYWG;d>fDb@Ag^=9a3%}mS;)&$t!2bZ49)*_ywf%|s zjt<*9IwLxu*T}^zd!^zP#i9Z{aiTMTz%LV~fy=L`v0?8|>77hTpKC82KFL)cBPf(k zA*th{Jb0^(R6Mfag?PBYVt5Z6+}Tp4%BV`X5{UIXXIU9jxml3;d8psK{{Re+hnkf) z#W&>e)cnK2;HcX8sj|1tX)D2S<0C64a^OxN{lkcawvP%yD1!o^Tq%p@9vZ-u_5$0;T?kh5BL4ur3=Bh?6hGN2gOwm{Tq1P7 z!x6rs%(GzUzMrIlq4@^Pu$)xx4d$oaaH$SR24Ya;vPUpZ9Z@s?052s`w_~UB_J}L* zFE^=#IDkW_9ag^N%EAxyFo!Hi!fY;QJVNVd)Fo`Sfew6ZC(=~L5O4`z1-MO?TubZf zWD@w7S2Qa@sCef|LS|NYkR~mAiN91U&D&sEq^5-A4g# zaS1jB^R8Gpl)v=LqIC^Y%YeKkaiXn*@ty1`6c!mNvI5;CrCpN&dyI8Jw|<)E)KH%ycV`5b<(8CJL=XxU2*}U%8N8 zysl*~yS6x$_L`ULh(S@h^T{|*XYD2x(?!PRcx^@kU302d)8&@Mw3Z(%UIBUBr#uI~ zSp?OnHeEmdLD+t!gqvA!e2(e^kW!LZYa;SGqG^%^*wO@|3ym$v5DupxVcy4EqWJvd zZi<)4a?h(bAsZ>PM^B~^fv|@{<2@b?V!c%}?Fay%+V*vqemZ5K50m;{Tp*+Oj%EBK zg5LU3gY*y}dfup9&VE=nYY`ILdP#aMYq2Wz1?7M11$xWiH#WmDw6q}9rQIFF7-u;k z%^pHY_2+Oz*>!VP0uV)pdtL|(=sSS%HLl$&OtCG`H~L7X3h`^EaXtcUlyge8Gz!;GwySXs&pQu!Vkzvkb?_?b(+ zb_Z=kp@g*7UO=@~Q_4h0LeTdQ&P%E__?gLuSy}|`r`bMX_2TYUap5b)_`Ko}C3vD# zDo}rgEb4og8a!aJjCg*hQHL>QOR@y!RIYqp%H|w+=cqA-cqJY=DjwxjsdJVb#bUDW z$KqTFRBmaNqzsP|yb~Zwhup1?fg6!L9L?Fw3-Mb&9w_mW{8V3vknhhBS(2KR=F0FA zrEu4Z-0|BV0T@?`JbQ}?T^23Xt875AFlo7Lyqi17J1Zw4DTg!I_{8;ciA?B>)X3P1A=f+E1&OJ>^ zh1Q)yx|Gn=;umjlt(>AtcaYnakjZ}FuxAL3-0mA4mu#+yMi-=R{X+;6r!tlCT4O4u zGQK=?cP%RjRQHkQ1O0`>w8&lD%#D)O4JAGf9|7XYaWw$E01}pD2eg?wBAtBB1j+fP zvX6f<=08pNDByK{Er?Ch55rVSaQY3RYM;Lf;DJT<%9fTB>QUiY!~jIR#>We_)$Pxrp10CWe?5Y$*ZB)oM#c49FK zri6uXO*`Ruc2Q_LsHB<-bJ)TBw(oxB-CZqq zTtLS53N|XCkvVJR%Mdt;q_t|`S6U&)YGR^+K~TZr5Y9GKVvd(KlYnz_y9PLmF>okX zO~xE*1ETJr3S1keT>?jm?j9NFs<7%PX1eS!dI-aY{{ZqjQIlvr51C=)8DN+)y6YC= z##iCTw0ecWj&5&6uNyCd5qu)uXr#cpqc@UobRf@iv!J7e$)xK_-XJ8W!x$j(ptD<1 z?+^tmdY1_Wj%?;LWXB(YKQJ5Ddgx5Lx81(r#3HRuV&n&Z3LHw71U=S}bcB>QGn^PgneZO^cxtBV2KXbD@SIilnD2nQ_W?Z@TFFft> z8OYq~EPgU3^+Y+X&+eo274cJ(+bKkLy8wSN0MU zU~Tv=;eO&u(>4bE&6$1$<^$nSeak8XPEGaVn7Zn9C}G^IuWYZp@G7G@X7M716&M=8O2K?n)N}>P(vqoeU}K9ew3P`k@Qt~FJb+#D z3xl(3ST+ZMC6RJoLhj;9s60 zP&JW5(P53Xi`DHe3Le2Rl`jhOOs$0Us#M=Eyf6jm_7;Wuuyg7dHn&`a4}RV{@(d%E z;13t=mI4hPRcZK|!8FRBq;>1x+(Mu~7U~jmt^WY+#GBwhHsS*|p>+i*SSx$7%iST! z(p_S1Lh>S+Z4&g}oe`1w5Z~VnX&D%`?&URDRxMwiaQs5;Od3&*O7(n4+S%_Wg)y`x&z3nQ`%4RBq~4 zrqb)%4&mlI+&1A{LIU#owWsZpm~ZM7AM#dI51`cgMm*cUuCh~bpYV?f;Qg@VM++*8 z2KyhCi9j;1&>w7Tn&Zi4Gitz3Dy@zo7_JoIonT-joU1OMqGUi8dbLP@(7j2Da*yl3 z%*M@W?Hk2zNIj+-5IaTfCvXa_G5pjp^e51YHCAuYHi_K_%qcNo>yXD8=1?gtk$RzC zE!U;b)Kcz-9f?H&KPm1i6)_9Cvw(rP^b~JN2eoU@#B+mpKREXa^QyQTxBahm4a|$y zyA*7Hp^wPGDJ^Fhm2v6Xmy}(F5{-W~AuZYq9a)1C?Nm?1ZlichkBuUDsCcPR?;ex#w9~0#vMWB{H83s$h_bDjNxvESGGr8wr~# zRH$Eyi3kujRITs`Baq?b~Ki_5MsTA!Fs zynL`FT&>Agz`KFmzXHd=G{cf#P#Y>t|MK#iYAjGBJG^IqZ&x}n4TH_SC;4S<`a)tUZjkBK= z`iaFbyOmPP;#WB~=G4Ou=2JC-bw4o35}#6*WFu3iLm;^;NTrod%~*1TAd_k=YNDA? z$bR9~o(s8M6Bi#+zP?l4g)~cAIH!LRi{Fdz1a1}q76H)srz<3s7M)LMy(6w3eLcOVkA3%0J0N7M}aOH?@^bcT;2j{lz%*CJ-5rv`%wZY z4$$OfuTT88>{n0135|x9Cs9|>`nYYqMHv*CqH5ie)$&0t@GlCo%Vh(Ba4nb*lY#s( zP*Km4W&UgY318r)Ts|pfqP9mttR{G;&@zti`)xZS3+H$3jc~3VaenEZ}6g{-1q&kF1xlOvn<__VlE@>O-F_po&NypO7x<)Z1DPw3hmvufsKr{`#y6P!#3SY zyGiyX!`oNz54I}bwM!4gE?Tiaa+Pkk3u-~oP1Gj6S@?-|7_sNWF*PpXO4MF$lI?hZ zL}TL%R@gk<0gCd!%N~eUU%sPem%i0FsSmr&equ5KJtVAg@S@^XwLt7X%9>-P_>BS~ zX*j2*HmF!}K1qHiI-Hj9tuD{W2s>;s^oKDtnt(ce}%{E zm>wSsGF{yD_cCl2yfx7>9P>M2Qy}{$xQO`tSAc3BDt8G)Ik|Pl&5TT9CxRYR{8whm zn>Mms{7#@l$Ej!dgentdcpo)>NO(@WVTh~QDR%iF)j%9XD`cTX608|isnT~l*j%DK zzADWehccQoxK%#jOuut#ZNpdY4g9q?$JcB^s#ef)ME47a6#`Y9a}p1@UCPe|OUU>Q znf0)B@!t?9YYEdUsF~_83sSZNDh&|h!uy`%Da?TIGwub;Z^2bjE#@Uw##hH=sKV-0 zIERK?1wwaK3(4&rBHM7cE?z)oocPrHVF^W&`1yrf2b{U0PUWs|C2B$OADLb%=47pv zDfbSxcP?2225hy)eIf@F+r#k;LkKcg%*$o<1B{g2K+Tw&EizdYzi^cdaSW`1%zBji zs1v=&9O?fzY)te#r-01oae6*`70$g~wfY2deEB(iJM< z+Wn*kP7OVmx!>i-m z7#V=~uiFLdir@&v&VW4qu|z(zY3+onFxUJ(2=lqO;+yWse<0a%Eo#fWxDj5FE3TL7 z*Z_cVh>DizVv7iN)U*~hy^pB92iR+d7poANnOxnZd%c zQ?9sP?Zu<#)5~H0qc#P)WiX)!y%PfvS4Sb@`{P(2)|Joa0&2zBeIXRktotq; zrEi#4m7fK!xYRJ?Rq3=R4+=8s29Lc?hDOEX*9gE=EQe0w(pW@o>^D$3sa4*vej#k* zOpAu;LyqS~HaBf5D)ptc&68(%r%lWBjCp%JA-Ko+PvPGLE84f6Q*2hF?GGDUaf>M) zk%#CQ{GgO`T0>0PTT0KDf8q&uOD=Hc3}Idfxhv9H7Bu{j=VXM1Rr&+}0Fj-Hb3sd% zsPE`5RQB%a=*5+$)yc#AW4c@(p;98~C<+cJl~(e9N-Z6r-oMciO-HKZZ3A<5vVCry z=Q&$$md@U8Z3O9P{mjl-Da*`Sy{s$GVlG*d_W67MzU&1?3jiYqu*W$#Ps;%`V3j#h zv)UbgWs^`BcPf@K7~swpfrnDjmx@@NM$xp_hL`vh_-U=y|@=Ro^B%Q9Y!KX zOZUM40Q)k_BZc+r&CcQCyxA@W&+m=1$8jS%$o;~lzPvCXO7ih47b+Jj zGMU^V>|^A(aT+GV>RMDd@-n=20GE(q=C%_dkeRZf4Po5B87Y_IvR8`n-zQD zmRzH@@)vBc8CeNgEt)(_NoHcyza?2VUdN`QZ-6{(qt%rzW#-PKD~QxW?gC4%9o0{^ z!uK!317RJ>zB+|E5DVTeBc?oWfSj{}87g~cQ=b_)&PmU5wU?wXT7}=KTx1UpQ?Ca% z#9N5mrdRA>*Mj)tCs*nftg{rpb{7^^i}7DFi-ugQnJHf2@p&tmYVxgsol0kX&&2#e zOgWk4NYyKK^BIU zS4-Ez46NoHLgiSf{{Sft2VgKg2j_jP3w6Vn(J6Ga?p~um6OO)Eeku3AM0d3FV)1i5 z3)?N%YA-Bp*osHG2X6tMxSR^N90`ap*O!Tx_V6FLa>*0+c(2%w%$>v(KQ}IQSoW-tuh5)5{VrS7U>g4bsYJ_z+h`wwf_VZiSK zIs4o@eBazPV}|p|_D=Z!01THpofb=-)D~4hRdRwAkzx8u6YaBeJiDCxGW{OLUl0BO zJ9gX>>*_&QE?zs2R7o%&V`|5uarNIvzbmTK;;v8I7*>PqI1Hr^`~C@AuU$Q43h5&` z4u5gHBOZ$gaRSJ`L|)R)exk;O4%I{CYVR~5U2Q!+kIzMEii^kS$emXu=O`o+aCZ=obF~Q=n|uqFQTT^$AK+xXf$EK3)g&4~0=&QhSQ4 zVzhfAdgTrCl)mRG|r z@EFj2Aeong4!4qT{Rh(ZaKTQ6O8oS~yFFqvXJZ9!f5sCo?We>E=f4}^8NRrijHAcJ zN@ib-@!mpY$Z-aKU`>@!@FZ?q2F^ShTo`dGZ>U{=pDZHFVX&RSxWkC}*iPWt*Mbnp zGUCC7%857B2IfoglOR`v$9^l12NRD3D;Wl1HsLPeIy|6ZI_^%8{Fd(?gTjWOM#3Dl`0kB@prWeTPbsD76rwWk9MkS~_d1UhN;VujaDnkG+aml*hjN)kLK^}Qd6iPH$5YVfS9lyY?q1dcDvc%Vg7@~urCUY9 z*Gx0Jvz@{dznVVbZHT@PL>^>6cT)9LA9b!cIO3Xn+#u4#uQz%_Mu*81H|hgnb=n5G zE&gSv7Fou;M8STuod}bu5@mEjrqs_yse&1G(SEvtLBgB*_D0cMM~c;c;-zMbKl!ls zlf?}lM1}`RSAC>gMNezr7V_RY>hb0px_ch!B2(u0#Z0G{j}bKYOlIX{LArfADG(`Y z+A(UPob}Ik8nhL!wisQISlHhA%O#PO4%a3I!~8F0^WcL$4(iqq?ogcTI0kwp%Zf%!ApDmFu?Pjmv+ZiYDP2N5kp~wFK zVT|ieoGVztPQ2eW_OWe%{voIbL|y&j4x%mK33I`HZ-2IYx(|J&ZDK8CKhp)`Uu?hO zw~#(rR01DJSLJ6lL526MBg%qeg?>jdzD0i5f444^+tN%3`WV5T7EAKm5!<*$NT7E0 z2NhuNfPOA>*6^37N^7U01l~i5{{VS7{b1s!bDuX)!wq57xjtgv75@NpLx9KRlxk)p z_Q60Q)rB1Spa9dXA0fmvGf=aMOBZzyrR-p zsrQgpp{ahx5g51F%Vjq&;u50|Cd0)-SB!)Lht(odOD`#g@ zd@fM}^N6iVhiC1BOm+tSAJ|Q!6qOXkov^%=JZFXT4V*@slz~Sux`th`v%_#Qg0I)y z97ni65Mq}tC(OQC>KAY#xh@C_wKmS$@o%YCeKPiPMy)uhZc(=`!zN0X@h>OVd#>Ih z_<_FI^&TtcG!S@E>xfm6o~1#Qx`b-x`0adAMN2P7C)?^K~mHEL_%0D~OhO(8#}DGQ1qrY7*wrHf7C?%1wtPPmX6f?iVU(EG}vix%W2U z`fg~1HGg9B1#GecQSsAdlo`9R&m(GqX1umYtqG2M7g*!_VIC@P!#wH zQ8NRiQu;;?2>qoT_XmXx<2r{2Mov|bBTiIt5wg#x)Gz^XIctGDkNZfx1mp9B0NBzeWKjc~7o8IbM)P>s?1%ifaPglphHFl|!GVp8-=pO! z;uWGU`%?$h?C=@i(22QoO*KB_qlGz5t`V74>X%ZXb0&I)!gD~dxYd2}I7Gm}KRL4>2L_K}qz=X_f1}AM2URfn7jr+GX%5;W zi}(}ztVV+)G>5rt(!1S=5fhlX#9Onl$W9te=xTI9)ID*R?ZE_-jm z9|&abEIhGQ|J2V=6f1W4}qqEt8~><`9A0w$%GP+^-; zA{S67OIc0bK;gJK7DCgH0V@5FxlXW@&UqB$+yr1iZ@&nKir9bOKQx zd-8;}b2g#>0Aj)@;`im_(SwROHe?k>X09w2O z9#G)eodjnvv3W0>zKPo3d!0v4Ul`7)t+6hNLr&kx&-l6k{p=c%S_w=yw(X_6`+-}F z#=_=_R@(#f74?>O8}(7NN~hf5#O9NlXCmqNidL>%qv@{vq`QzNbINHOB%79b3rxf^vBy zeGI4^S7o}?U)n7JvcC)~tnbJz{{Za22aE554rt%bCoGigX&_4p<$!3$*>JW7We6O9 zxt2wuvkPywFx}8=J@mr9x#6N8f(&vvx@DaScODNtPoo{7!XHKw$nT=y?!hWl_X)8j z#22WsiO+@FBBZhdrGE!8yPwO1Pj$X+IMUN5=CS8A#dg(SlqJBnj2=t>0I>5cUOV-b zO67$?MZE`y>RiQL!H~=r{_DB>+zLz8fZQs(dta7r8_(2S<;JRc)vxAMtmA+B-xb8r zsx$VJdx2VLIS8)R93ak-zG0`X@P!sUE|ec}1Xu61VUs1lzS6C}?j3T^tN#Ew;aV$*RRHmcxYtG01zr#`ObT}p+!yA2LAt>3b0 zW71c~gW*DT{C67Jw$($m^v?P9K_AS)r7TDl(f-{KLF#ILQ-qWs`mazh*LZOVd+`N?qu=pj; z+KwelEb*}6fxPn?gn8m}OMxqVH(u+&ZNkUm0vB`Dyv&uB$}1RnqlorOnF}r#J;MYx zU3sNSxq}1hf5Y*x{WaK zqdZh6aQHcd%V>i^5tRv*E5%51s$=s)y*Mi~UlwW`^K3HfuDnzgv0aag8_Ab*dnEj?rbg)Xh zjpUZMdOiKc+>_S(A@`bghjH#9zK5BO$TsyY9T+?ZS{l+_uC0*C8ZUfGAVKVG9@uG1 zcFP1g#%#1R(=NP2eI*??y^l0(C@GfE_(*~m&j)z#ly??j9)szMql5)KMcbP8t8KvO z$hDJ+jqzMk)Umy3Ae_EeFsV9?!sbN*)LfR6)JQtQvY`f6SG_WQynl_xa(KaED>V&; zj^3b?LR^Vw(g4m-KC8*$xKGcF*_P}X#7A{ouId)CD1AqIiD$Lf;uYtAzJ#Eiv*h^s zLJ2B<505F#h3(DSng}Hmm(}HJpA>|+n3klhX>gD*I6b3<3 zKBCK87vLUO>KZ_Menk6W%->MQt&s{`n(3QAu*3O?1&Zh$f2gkC%Pk-B6{G#R0sDa> zn0`SEm1SK;GZY4$yk0KGs$za{W#R>I1<^n&I+ zL2mkD_*O3~_u37x)*<#rQ#yE0iBkOTY^ZoxN`Whk@Wa95+bVaF@}5p1YY9@eR4c~H z_x=?E9x6U4xKt>E4yqmJi}BP>JoVz`LcDK^o8tCdrrDkd@dt^psnoym4;_=3KrR=v zqa)&_5F-X23Y9AvwaGi@!^GX?t{GE^n=a1Fs25c$Hc?Pt8Z)09Ggmfe zFtU4`Gdm>$(JjeDI*fj$6+b=;2={W&9m9@1F9SZAu&R{QwbbVPA?j_*CPs+7LnU}1 zMi@7!lJtQ)xny2z+--Jl!1(d1N@G_9@6;w0u#4kNIgga&UU=aeet z3sR%h%i<|hDlxgWEr=|-@Eh(JiLOKHU9jd48Q@jZu#}ZQ5V^|%kalQB^x|V^+ZdM| zzlHtA3dX$rNCKgO@Jp3;57_Dx5AH5!bu{I0C zQpohpg~zZ>$1^LfXtv$u+QSN)@_ow{cPCkKwCpRWl*~RTj^+4r0^iif!nTyKn2oEt z01bt9Tk33_F)I2oi6w!eaHtaMmdd^e{N@@_)CF;N(Cz2nsIZt)iw3*QDS+UCYDgu6{ zV+ZCV`B!U$JN&rPucGV~;CLksbRhlc`>n&?K~Cn$odW5E-hX>yD6hz(sPqBV&)jUH{a5BbEyuId@dRKFT2FAZIEBAFF;~L2_K*ii zs_~U6m!jCk3eVuzQDkAuzTad#lKFwM=W(9Uxl=AL5aW*=%7tYT;R#c3!$T_J9wSp> zGGsCyDhG;(9_9E6l{=f{mo^;1$7gc$)V5om36Jk#}LW zv8#kWt%^$FgDG!-U=>RmxkOmXzDb=xEXh-I&uq#z*tt<2YIV$}4WP~1l-n!f<&awZ z#c;1b^)6occs4r)o(LYG*|OzIVa)lB!1pd=D$x0>Yc&50Vz@jaaE!mg(fuu;+ zQrci_qjm>503)_bZdOCUc=qO_R~)P+%C;oo;ejuBn_Oh(ZI7txXL7bvTtt}f#g!|T z7t7&!fYFf_CUXurgbz@Mi`cr5Bgcwn#b+$x5%mhFLt%LF;H#NLQFyW@E|lyYK#LAp zk+zThNx>gZJkd--Rd)&$adL_#TnJ$Q> zTPcO^Or0`s63vyj&16Qr3u+zs&m0i(+*s** z^8&oQl>_aN>GNmIc0*d?oP-9t_0C!L#zZE;n<+UJ>9Uz_g1WaZ;tXD#dLX2*U>)j=?+)qg=}GCl`UDf2uZ0N@kCo#qjh}3jiv>ojSTZ! zVz20hOnm-D^0Sn)9hxu9tpg*qY8mxiz399>5A%bQiDlBT@7H=b&*XpHbk)m#Z2ilj zW!wu;m(xt(>3$F&!eT?eul(}x0D6|Ll?Jfb8(H~-pjn(D*T9+}qpoSMfR>^j_eo^A zvQXiFHqJr`)_&q=O?WY~IkMt+IpE7$c)04!&V&hQ*l>McOtS26F24)_Qzbz65lHJ4 zWBo_1eYfbYu33rWkiEXhCYiagMY(vtBv)CpxlwX;9(+D-RNpjsxbr%UtMR^S0Q2Wy zKXH{Bp61Gxu!7}phUG?VB1(zlXI?50De}zdl|%*u;m55=CDy{|g~L;(4^L8@gBftyT1w^yL4lUajqb{On@8Nmj=+m+ z2wV+5VtBq_GOWPDq821fI+*xwh(fDLYuADLCc2Ey52ZdxbjpCWn2gsE8X1}d3o@VT9>{k!5>wj|2h}hsHtpltYQI zmH`hQya?i#C?MipNhiOMw^;i-nY{-syM>iXrPv~v zz$g!x3-%a7BYcmY7XAeL4TwG9Av9{gw z8L}j47$0)X*j9iQ7ZoQ(A8;c`JR@gA^BcK5tuMJv_#K5C$&A2q*d*dmkjehW;eN;Z zjzmBywC^L9TWaEnz(@jeD~SI9 z6~pgRT<3|qwYsTrm@UgRU@idtYT|pA*jXZIk0h?y&QY=r>_@^B+^k!-e#Q7=-DQ_E zDVp`zK9tV<5~jgD!ktYxLoA)gX7j}S#tO^vUYXzcfj7$^Ym=78zoE2C&Kr;4aoMNj z4Il0=v}p0_zbq+JQ8WMI4vJ;O++uwnu4a{6tV8$@rNn8RBmtPZ4ZWAHN2Aom-O9Jkg z45}DXM-O9daz;_7Ac=r3IL}HR7~NF)sZcCxH|+FAnxNAQiPsbRp^om3fdPZ@LbGdvF);3sn}g0S;a^TmIGle(%BJ z_r*k;6Fl9FH@5(4H7u8y#gJlG85@lzvBMQ&7hl|{`|rsH-_Cwx>~nJXYpPIkN;>_XTZY*ro> z3d&`CWGbZt8ea<66%26%NEs}uzX|1SJzOO$7mJj($QHR3gsp+TV(rR;lQoHaFca|# zsn-!@MdM|`xch|dE8+ov0|ahi^>7GtE>K4?s`9DSV*Cy#0L-|ec>KaJFpWN84r|3T zC5$o!PQA`9rT3L9aH!O2sYK3Ye0T|w`-JbsJ}V&tDs?+0y&&vg0r4n@nr1OSxIQ*vdaX00{@ks2jc+@{f1Un~RBc}6aVy7%f>KJ--`AWy%RDkKsGbxs*q zAOo`Pjwjz%u{~WKljZQGO-4%fI`M z83>hyKuWh$wDrFc8>WQ^C+;)H@df%42Lj@1pua<>CPL!_rPOe@68_+*Rvp4OOB*F< zc#^AS6%)PF4AKvApQa$Rb?pbXp{js;PmzS2#ftUcXQotaRI^cWe__J|6+5o_R9sT{ z*k7N14;|EHIpH_K5V#WS#S*;t0zPVA5HeJ~iQ=cJzA_vVr*kTI$H`th@%7^>5}-aZUcw$L#ml)- zfFp~z5xHdLR}{oY`7tIE0H-pxZNMNEJ|<=isnot<$GLuqY&Kaf;(jur50VUJ^9_|6 zh5MYqE@{NPhK$zSFoO<#OEV_ISEwr5+qjG4xlXX0Boymjhs{@a|i3a`D#APHrn> z1KS*D+NSsmVzFN`m@>49%%<)nEU0Du+|OjIxmhdApQu{3F8=^hpAUQTSsR%X0n0YV;#4{xhu< zDn8GNdBaCXjrRpvO^0&5)Et6V%5PHCxo-6@>M{{_dQ0a+smm4eyOs3lN=~QDY2nk6 zR~+~(Xj*U%+^_GgxB{W)C`wM2<*>$sjb==le#Th02DgE9#&}uwM*zCzgu*4Y^A(^e z5cnrK2Y1vz(R$%({zmzaGli<58GzFEG|&)tR}2<~aQcmk?8-!m*>HP+Q%V(Y%(tLB z6~h8IY=xb|vzx^UMi+mel5s$wq$l z5l7G_UjG1{)yeZ0?4sv=Tr*04)^J91gLKR8R+^Nr%QjOPzLEQApD0t&<|%0Ft&HUj zEYQ6E;1O*GtH2Pfb4RK&AK$h0!v*qU@4nCOnRHIw z)w#w%2z70b+D#IpU4@T*$5&3E{tif96e&6TClwmX)MKeL?NFkcmG$a##8WPQD@`LO zXQPw#E^(DM+o#+Y>&}CKxr(6P*4p%VMk6pd-#^sK2N2OEGX@Zfc&JUA0pr7W;!4>$f5o@x(@-h3W!$pgnX;O6{XF6PdJH{Fa4R4|Uop}uDZ zTxwB!DG?T5#!D_ntBgsP%7(GGrR~ zk6(TW^$nENFGv!GY~tQ!kRAJ#oIyB&0R6*1GtwIYY*DFNY&kMn@)G%iIW`zE*{M?U7gM+&7Y&VB--{r%IVSkIZ`65~ zq~)`hfHxQqs3v8Qil`jIrc|PFlEy83|S&vN4vh;cb~96}E{EcG^uhu4g# zY^&p`nJBLmy}*UdmcW&h=3u}}OMSr4Jb3kx)^+BaH4U4J!gk4fFn~(=<`u;Gox(d% za>7;hEzv2mHxz-8Gj@03vE$Z41lU6Qft*dL!8w(X>*8j@5ZDrmfyatxa7t#ycd_KN zF1VM7>uM?OzzKN!Szn2k;`|uv{^I>iF67Ihs@frli%5lzOHej)!69e~U+N#%>mm$j z)g|%6f?>lkJ}Q)?8WnM@%sCOi!nYsrT${XGDdWUV>Z;|=!KffN4PKqhEek+-taDi5^ogU)!z^R zXT~KT$d6BkJ!aU{P%B}9EdzD&eUP9#g&0uu%zBaQvt$HoA8GL;!UdkCYlXmeJ28eCtTpkP4yB|m>)bjVU5_+SDm{WFkY zIU&EvDnq~B@cal$EvE-Bh?@TZ<>yx8mMN%-u3Y?)n+S%!oag;2bcE-_%(7HH?yLU* zP>`s1*l+d%8&&4 z=!6MyU8-6W1gcmry6OU2g+_MV9Ez9lB?2#fF?&k;$B?cob{lJ|Pfp zam1~=fp#8mD|KyBnWmrAzkdu#Ka{{RM? zhk^tpKzzP-ab5^JD(Byh$&#k{Cvu|cG;53yh z!wbIw8Bj2y2Fkfo-!}m9$r4*Hqrp`uogPz}kS-rnYCKAmC!v8bt+T>nvAC5 zcjDk;#PD+i`#4}q2wWpaif=oYE0oFZ136LqaoA#qhs7($+QeKT=jCk(#>7dpw1H}Al>m^D>9 zf?Z4La$A~<3m{zOQSeNc1uE1yj=ar*>npe$(i32Nh~C8bg=DXYbk~j;jFqo&#Mo;N zc4;rg70qlepzOVaaP)-&eqmJ&MHmYrOyxFeMagH}&e$dM;d1^UEV$R*cuawJ@i|!W z7Izq2zOf||h$Z`&&LBYEVDShK?SRyJo~3m-thmb9F3!osc;XbppFPh|HvC$rbp+jl zVKxk{htwv(&LQeIQs8*c9i9ei!n|jWm`t5Yn@~Z_C8cqCKf2;xAhBxUp_|g%-oP9h zZtfTBm2HStiU2=CH4%br_Cx#Xa4J-Z-1gCltX9`|`GcO3t-hUrF$*ZWxC2@&z9HCv zfcsuxB%hKB^uqZ(0xmI+_KVxJRHHTs*;3J)o^{lA;}|v?w!oukJx*{l*-K(8>QXoy znyy3XBWl`7m2uarCN?a%rqFG9ySP>1sJD>Z#V4!^?(O6I}L z`HJ7U!g?{_03R-!fL`l`z27PR=~Sz+DK#D3h!u;m-eG^4bKGJ4*N_y#T~;o7L^53^ zCi^+4=^MBC{$YuNqMVR=VTi7dk;XYE8waWI^t7voua`?c77AF8%kWSLqjgPr(Ara4CtYuXFu@oDF#_k%l zU#Ji$GL3DIfDWs6zE&&ilU4hJ@c8Iz97F0+=-9;I%816jPyU%_hmmvt z0ErFT7oC*f^FEBG?A7fji`wfa z7kyMyVTPtD%Xln*GQ5b8Q`}#fJ%RX*9fH`%T4xE&LsL^Vud*cjjfT#@vg@y?&B!#N zd-jRg7m8Q*C*>{|+Ubl(Ra;4G+v$`Ds^5={uvM<^-+GUU>FD~v2qGd_nlSQ9*m>u} ze&H&mGt|j%k5b5!uN?S4z>K_wUyRvNmOma9^)LK7hC}=x@UIHoFNyUq$=qeabvdsT zF}YE>dFPl1F3V*eDTL1k&Yu+dB@?*Hk32>f2%boPh2$gR^ND)`p%M0_V~wB`uHp(3 z^o|nxypo3NV&f12jJ^2rtgdpWQ8<*ug^{$V9b8Rr_EC|QDoQHlY zU$Prs3;R5uRVykr3-z8Xfsp!yrsaBw{-ER_ejpj)s}quKOPhNSh;iTvLoI$Z%Lp$u zE{Sx6ZUhe$+ZLyS0hygUsla zE)CS_*{<#|=2YdAG647lQePDV^WY-v9O5Jy;HDLmXS`pjm!1pQ3uIt`GmSj>{ zZ>eMm_>M|vFjYAvLK3_acHq8dpn8Xm$HB~7d{LPLVKfd>f^(AbAoWn7{{TRgD_4^_ zF-4K_U_w^fb&sB9x1aHP=vnB3WaT^#fPBP#m*c^aUg9_bPp!sPb<#Bk4MhHs6+gH+aLWbw)o)(mJDfWQqOafOE*2u0bLQoC!8@oEC8O~V2c7Yi z9%mkOGF<8t-p*+7Ls+Nq4i%^V_|vb7(*FSDr~t5V6oqlZyR2IQdffGp3%i^HY_Ujw zz6=kDT(PtOwdf_$DJLUO;%S`3;G;n=+I#YL9d(IKaQM@y^g`=r?b7zXP;)(4Z~e?o%l^j2-?j8e6j49P z-{#?~o~LIU5Sd$!X;8WJz9QLkLlhFEh_cP=^Y1Mv5c=MxD0BQMCZSI;W~#+7yHkBtHtu;qwP+Tfaf z7LXQc9ZEC5WHy6hv{2N(W!rs>UsA&CKH@m1*(#~nDEJr1O)Ej%OZPtf2Qw-r_{)vM zWkLk4l@ZSrcrFz>sn_^1C214?Fu7BFdx05qp8?<^KqmyK(#o=IuN}(B zaVj2IbKvrGehq*>(;`qWY5g2A!_7L9;#GGL!T8g;5Fi-a;MrYxX(lmGl^$V@2&A% z_!JzB*iy@ug+?R>F3l!FR>!|m(S)|b1KbE-gM-4jA|&U#jVf_7NDWQ7)yL`%6J@5y zsI9^G4{;&K)YwXAs+8M%IH^R|ThgUfOaA}|;!^nH7+v~@a^O4-Ih-X$*~6QG!^Xnv zHV|BTxNm*}(7tEWz#>?0a-UT=N|o^|<^k$ceh(j*UGod3Jb5s$37<)A#xYd{rgg+l zy)Zo9&8bxhPq>UB$1yi?_i;WGDG}`bLgvv62$NJs{am7MMcI{*_8arh9?2R%OKS^Ep1D4iFf4JW5N63$GkZ&l{Tt?iG`S z>$z}Z*iO>8@DRTT$AY|C1Xq|&b}Ih>-w_oNEm}Uzc5uZ6{Nfj&8+pRxD!DFi05PKW zPAkRL{jfBA0`RBAXDRZn5Y3(Fg2;y@h+Cq>{<6a|^r|2(!`+Lf?4bn}w%(*5@TVYs z{KKSKire9@aW9}ZgmamHHAF7`%yBY2fy*pi2}fG1*%oDAT&}E_+fPxmLzT=3q;dUT z#74RqF2)b$9|h^4e4kNITUB7a*i#MxxMLktwu>QYH1Cq%nNy)h+r)pC0qI#)9|ngJ z=zS|Ll@`F?A(sxFy2mSKUp3698rMC`_#>|@x0NuXd0$+z*~!VySjdn#B_;aL-|9rB zlmYE7DP=*$Lva8aD|IoLlKGQFir)EYsW4TmZ`m-W@GOQA_0OPhQl~FETZuMRD$4mG zSY|Vk?25tx@A7=YYWJ;G(M5lV`I}eC*#KC;FV9PUVYHyWi(mSPS|uL~8P|ctx|G53 zM~3Dx&mQCHg?O@e;>++JDqY6da!1u&w>hu4Eb9LNO#Vkx2UHFJ0CIZh`!yEm3IGAX z5o1uEI|v1UUUrLrmQ(^LXwPekrEGxjhOtw_{Z<%!2=78B#O{keXZ{g6THX2)8LfOS zUr@GC{IfUcPig}WBHz2H*7tqsbVBYgV$<%jTu}3F5hr4L1^^u^_uOU{a{Hmd0Di3q z*fBw>{6Pevw)7i>E(`qO5Ew1poqb^&G`aMf4eT$o&-*%;ef7yc))SZIYySYIAWvs{ zZ`@o%QP!h>i+}*&I3FUTKOlYi+%neK^ioHF z&obY>R=V(UDiWf;JMbUjP?w%J#mt4=>&20C$>RLn-vlqk`26{)wKvCpJACX<9L`Bl z@s}zy@!`J(c-!^hCin<(Zmbtg+m&BtZt<>gYZ}JgOxo3kqfKO41WF45iaR_cHWTs0l9GBn?%G)X3@b0H9 z((OczR7PNnDHYm>9BoQ!7f+3kQ=(MrF*2Ye{J}hNaF)1w`S8j;R0_vpaa=*T+_NbN zt_X3y=ThGsO4(ASN{v(wU?IDbjM#||XZtXB#jaQG;9)aibv0qj?rt^2IoU+1Ou0%O zz%yUOAoX&MmFiq756mw&3AYJN_`RDdk5FHJ3xp@A)Hxwgd<x-+A1>a4{yv`hsF%+!PFfN;=@A$ zs)0+;7Xyd)x%eQfTS8IOTri-q&#>W{##q^Y_X{p}mk3i5s26eNQ~ zf5;OBTi82{F-If;IAmZA__wSnXrR1$j3UcfD8e7Cj#%_BBODx7siOF(NkM8CNgjhq zu`pw|t68jm#$LKBeWK`DuzqElkqb?~b zeW^6_0Q}`JAU0QjF$A|(%F}Pq;e;)r=yuED)lWqErPEhUbVJxl(*+0;zNK|4gmbhq zucM*`_0bFME(|E=rE^7a&QaY}NWTeVH%;HlZr8{%v?K|On|(NzgLXhuNVmJWM?EBN zFH|0u^HI=SL1%bI4QHy;Z3@d7^6R)_KpxSQlN%Ei3t;*|d-K`M%pgBRaz6=>jZ*Lp zq?u8Ak6GgIoRMSVsxYI#&&`e=qY4B|!)x?qAYKf%ec z^mo+~<9EM|aaOD$v4Aa}OW5J%J~&>d>Vjk&xxr^zN*}gh+vpr$wiOXqzRrFG4;TOd z_IAqYZM`>wJpe26He2XV(ZBoPd0UUf3C?ITR2|D4O(8;kG8_-U*GKYRVzgg~7;X9P znU+ue^0EHc$!tw5#{Cx!Bz%pmj$7^rndj)XxBgNf4kMKWKckMK)4)8~goDr(Z%dEF zuO`}UKk_~pD3)AHbwxBEWTK0lS=6I@Xsmj=mDi^hI3Rqy}rLjCFv#&oy z-G?ynFy>L?eAkXs!bE&i9}k^?!_P9m$IEW`f;&YomaE@8?em!*+ zsCPPqt%F^0El778yM{2UpK{0?LekJSX^ zXKckuSvV)79Gh|KqDo>u16OP>uLVGERb&XcDhB*qsqqV`yDFg`k9!_ta0Xb)8GlTu zB(ND1Pl^UAm;2gUfPipr|U!> zHm&}=Me5}u*{z+&ZXo)#{+Q2O0N2GY{iwyvW0KG^>!a!_vIL}xY3Sx{f{VeX_R0R6 z3^`c_3gM?rCWk}`Y4;O~=46 zdX$b%=TfFkxxO!aSAtgf2W8~%#YM@;O-6_e$HAkP-;|wR+onnN9dFe}r8gFbHDBW) z*BE`)Tk`i04kdjCE)bM4dAhHuxPBY1f06(Ma4-e|8Co=5;DZm#6$F%auYH74oA670 zq&-@X^&4>6M$pTKJ45(KLR0;^cw2qN^injxtMqKW%E~ybMogqXO-H*+Z(@cyL;zph z0qfc2ul_JBEpYklm1J0bQlpdGXST5WmPZ)Ch}fw5f9onUw0}@Kp1Jub3$}H8Av1-q zJ1u{AGbZSAVQ~Ia*MMXmc)vk$7YwpCC3_mA+dG1v8l879Of;X^!sg(BvE8-mU9Y`J~+4snnsA>@1Ia z6d>&G8#pr}&QKz3DxqHePPm2z*HW~E)*mr}zo=`^f~Cs2MDCUaOVX+!k5ar5-IQwC zTMi|w2n@Z*4OMpw)}_j4EG~MTgcvs)ak3OCDzgvhp7?-U-4Bb{?3X9SqmO`?yt4%|qcRpO`1V7V#|WV6&N9 zJ(UNDkgJ0eC2`=0uQwUQvKQ)JO^1MKJ57(o>y9O1;+kQfJ_Zq=MCLIb$P7*<*$!#( z?s5vqOX^%Q5Mv429Av0n#K}^hQqUWL?o`l}_!z=BcPJNAYU&R%)S!s8D5fHl1~8)j zkYFpVDfo%NYcaMHfm-YxRH1H>!2`fjzfp`yDGo>*$0{_~#B>CE;ZUfMvN(sdC?#5o z1{jO{rE(XfrY{ofz^xQG)2V*AuS|HnPmTsz>+Fx*!|0(QK(hl85;hdACz@p@04U39 z5Dg-7512s@y_Y|jDawzGHkB;Ve2lW)4+c3ZFiMtoOb1I&={tdo1?gCo2q?EG_mY60 zk06z$PWyzrnUwO44gH^}b-JN2BfZhu)Q3A_J#5<4=N444S0IP1qLk;h30uT+sAIK? zYPmn^QIDv`<{x;|%yaUHSXIKf4^=1(KfrN1GJ*c&a|Z=!w>fPzJt1=?wb0>50Sj#& z%hEWOf$%uDWKXy%Ts)PbryBTf3=+j=(WC`Pdqm9+h1=E_c zpHkq;l)3?GlD>$#Z6#@JJ}(GP@_!Zmst%=B4GR&)uF`Ma&4oeYw#5Bysgy`Xx-|{u+x*O|#{*<25WN zyRyOPkGqpT%8#f%D8B>}%?0?lFR44$;R_~Kd!WC{G4T9V19RGYJeqzW{gJ(F<C1mumMS~;zu?0|_oQro<|9V?tsrj`csjOx5~c&B#rc(mORC0gaS`mf z7o>uZmQ)T8ak{vMCJg9%k$1O1x74v0o6z=pW^`KR3|{*#efxsCrGV>?Xw9{QX#SDQ z2?|6S-L~7c0nQPc+V_J_E+*f^UkMaDT$4)UGmDieh=^!{JxNOE2M4 zrs2f16jRjsG@=&?-4M}n+iEiG{J$`}nL2?gRK79`eM;Ma@dvM73yHS^Q};PaCR`;> zJC{VPmACtfdW+|kPUTq&@!v5_WfvPf9FaJ(7xxEQ@3<$_0$C_=l+EUCkfE0X^^h15 zS$0K;=ZcBGI}srBM7M~{5tg|{&B)*PnbZ$N>Q>6bDS{<49H{h4%8uSZ&7Wk;@Kh7? z6XFNVEtfsR{Yr&PeM=~f-H>cJh2*c9yi_GIy9ho6MQUL!l+<#fAE;At3BqhUoP==a zFkR%@$ZHqimxgW2l^7lY1HgPjnDH1)SY)Ze7F;S`O&>k&Se>qx{MZy*%hd> z`<^N!+iG5WgdqVes9Xzz`IV6+cskA))xn;iY%gO~$5SxzMBydV;pVCb%oqXH+vOWP zDQ8lM3xweMgYz{7g)G>@1lsT)23ZdTJP=i{F0S9yy9WmW-$Y|jMS9L~Dt81HFVwmQ zl4AGdh^5Uo<4lS|-ByB(fh*YCc0Qt`k-f|MWo<;$N44R{63VT%oH|CvRxV~$;16@5 zkQSMB4nVPl5R;=<_Kw;6Mo}wFqmg0#Y8Y37x(6Z%9cd_W3mss4+sD~3YHv{d%?0r2 z3KH|1ZDl=>jSfD6ebh?2y3}ZW5MY=%Q02F%XZf#IC1Hsotn4wI?N;p~3ZkdVDvJzW z@0?@(qh_%JmW#iXp)ePjDQ*-MQ7;HDK`2gD0|R0P{{SJChF2Hdj9dy^wbwf2x>3C$ zVjWXQ+B$~&$noM~KWM__?{C+jhZro73~QGHM(-8x=pY?uUls6)c4J|7^hf+Pa=5i2 zSSe;Kb|-QXF4Q};vEv(XP}qveHk1DVq!$5=TfZI11L0l%{V^hJmlKZxaqxwgLwUbY z*@Icf5=Z>H95A(&2VwF@?5LcQ;iOr%&rNR*7aOTi zo1kR*U+9d(Y`#Cn$`*hqhByUC@j)_oBRZ2TEOPh34-5Mu1G8A z-(!SMDxdHtfUE`i%raMT?N-0YCzOYfa>bV&T7X$uQMx|s;La&}H2Bx}#`38XE?a2H zL#c~zcIz+wh3JYQ{oIgeN0R!UKbW3x~D|~Xw$ZO!^&G9N*b24)TxNNzwAyFwMN`$%7;Fed8p-)~e z2`!z7 zC3w=M!c?YQt|2Z|dg?c^q9df-Ts1N)K6~y|O~jVesNG6Qw-#E!*x`)Kjfxe195U3 z#g_Lf;QH_$9m}0~8hL~bflOMAd6f#d)f)>B2++Kd@J^WlQuvjbD@eG*XAlT8Al!N8*mDZFwJuZvgPecnpt%CWK(J2ub@nLiWlJ|(@O9}-Tdlsq1{Kp!(`znFFMJx~CA)^Ib=usQ&;=@hP|J ziKrR&j*K@F+2y|SNkyphFZF3U2jr;1f}>I$y-5pK{h@$(uo`7=Q_49#FdC{gg)b_d&R%*R{&fRevxadqEV%-APOErVYQMHVdOV zd16pO2!Q30ddH+c~o9K;ziTkNcM|UcXZ6pCIE7S z+`Tus{{Reth+t{Nvk?)|G)5Jdm!dH(Ym8y1K`E@JhtWrdh%b=wa)^&aF6H>Go8s_= z*M|J!zGL9KBXYhW#1g_5xP6brWQ>2lqxo%wQsIC3EhGWZYcbB#uM_#@@O|^(6`W43 zz9W6GiQW(9Ji*>Ll{-Kjy3zc(3iiQr@gJkdy7AQLkI3pN2lR!w#MT#wqCc%=@Xly_ z!-LxnnjP>qfD@W>nj`fty_x+Xn%$49;F=YL`Y-%IGTA+C8#DV&1s_lIMIaoY(R`!H zy>WG!S5>=yciTAN7r%%81#ct<$ERYL;0FY*D}^xNL2~wxjN$NL}vK~o# zzMK1pTx zIF$RDemj-^RVr*e7vvy$vHDZt%Yy9)aRUT++M>37Rw@uS8sZkPYHh@*-b2N*f#aTL zYz4fyK-f)(ZE-8q+M2v~DpFQ><+*oI3nkM5Yp?9tiP;Zd$X!Fr@f9x1tkl%^P z>IC7$&r_Ak<1DWfj0=XWy1IiS4y8hKERZXyh{~cBd}J+@O{;>39yU=D9hH6(6$)v9 z&vTfU5)o#?Z5KYE2tp}?v6fd-rA?QOhr)9%+|HwZqCwahDitw-C~_exbtshvR?XQ~ z^BzsN-1W8KN@qk2z9v)*gz6mg0&Ps3Ce(O^%4b9yf#mU-2E|Qc-FQ90Nm~o#JWste!bo!aNsaBM20b?DgC~58i8p3x` zOI3p|=6AZj(OiHdnQ=!{R^p%^sOyrwLsS;4ta+4Y6}(h6#jHj?n+@CQV7gW%b2=y} zjNZEmoy@y>BqE)u`P9XN`hvHi35I-``>iP+50WL=@UKuutNmW3?$RLIC|%B=4(6Nr zkhts_TX_W3g8K@fvgwYZrLenVKB_WG9fciVxppOSA5g14W6Wg8GLZE`DNqmvZ8$GUacElG4%j+xY{j0O%oNnR3#y zXTKr;0A&RL0)W5|6|BBut<0Zsg<7Aq)t-WP;Hf}q)7+EbrJk$LsoRpgQ9{q;F@e6n zogZuu=Y-#r`~Lvkz2+PH$e@%|)m|kPpM6@>8*6;AY4%X9ORvEet+qCVVVcMeGyecM z&U1C{GI>LN5Bj6F96c%i>Lp=u^jLNBU-reG)lY!HVE+K=2FG6Au?9Fc1;`C*?5}jsN4>YmlmBN?pK&n~~Nb2wLgrKOTU&Ggi zRAb|*XJiO}hh72thp0d$u^D>}@oemdMxc4W1bLUoo$>u);=BZ@-;U+;vu%MYUid0e zFU7!>#O`+roa{VPDrzr+=J>ksO7VLMOe@LJ;EW}BtRsF4n=8OdB{7#Vn;61TX;oWT zHqi*R*c(u))VP8CsI@R9KBZ0~^#PV}5k11$eBpb#!>tjXM@IjFMp>Ttp1xlPB2cL=GAecr`j6Y&D| z@oc(}8y>3QtYzdbH?+$6m7^$CgYhc5m#{gxPchaW26D#ffeN-IPT6k3hs>uSw<>ac z1mdOd6RMT*4M<_{ASo(xu;!t;6Xq0>?TEi}mUOI};4)M;wm0e#x*!q19ZQ%l5MaQv zTg<$;MH4Dl#NcGQxDbS3>IE4KqGjs%IQ8=f@+zars0~BAs11b~9@v!@yaSm^eO*vA$wKu^oRo2Bo zxo-s9B?NpP49eENT#QTq0PDHcHPtolJrV%nKpwyC%Y4<`7VK{S03z`ydh#fyvk?>l zUD62&bK4X9lK$O|9A(-5F>bCxA={-Wlg*4MD){L1M!hK=O+7G|7 zIR@IDssWqQ=fh*F0@<8Mg@m>duqYR|m{ilU;fv+F1`yOJMVFYv0*19*3+hnMHFrub zfBFiXGPpmv3Fb2S`VlBuLqjVEFanDzZHnmd`ZKrd(JgYaqQSTwliKGgHl-JjxBh1q zA{dCRqT964gM<4B9^itnQ1=gWBA{NuCng~Auu>KbJ#D#*7W;hmr?gGQ(>QZia8b!q z2Jy!yvZ>|va0CrSsY}>BgaI)U{{Z`E>t3dMerC=>ZC$|UT9-OwA&PqWo>G+A$eojX z3!O%6&kQ+$cA>2{{R8; zP#W>ygUy_fiQ}sO01KSLps?m`_~|8l_$A8H*evR0$|3K@_$K}M;vPxQg8bC#0V>(B z%7^~|;2u$x;POMsDp$;A#0}JUw&9_7%t&&hgo;7TLdt?+2wlsnoy@uTmpaFpyIC!U zF)-g1IqF*_XEh%eIoVkOSyJAvZv?fIvQu>{V_^$3<%u4qd+;!=gf6akEyS*6Kv)qi zsF}pesNKWnRq%5Tpb#Z7bvu~_va7-4xmI)Bp{S7<4teqJ0+1l{usNAlOj%nCO!Wg8 z1;-4vXdwt)FuE!vV42=cqF&#N;tSLaHdGh@t_)c^sNKr49u&*AAASd_mSk_jI3q!1@PctgK|}8x0GkvNuNmme2;E$; zTxlyW(uPl42-d!87*hctM!I;oWa0k+qC1SlQ=+$zif&FKrcr?%mUZ?*|BzI8l!eatVtAO;N{nb>xyI2ok4Z{~$}Qfkn|p>{R+uUOmE z46xv=+`(=Z#3367Sq&*z7fdoOBHkEP7)wQ1VydF(F9an?2HRAfBnE7*AMVqcF4uk0 zij1$l-*?0kP1vw@$4nG1vtI@eI{;^;^YqG&YdHK1^zjICu(-Du(TscAX2ZFD4;3qF z1gI02iL!{lOzF=7zDl(4LDn@KzXipca^4@3ZNtFAXu9nlB|%}#&&3zlUv{=$yxri+ zejp+0cLJsXAMzLchi&beg?``P*Z$0(+beeq{WuHu;r6g9i?{AgnxuuZ_})IuHO9L=>Wo({0N3$`aQqcSVT9-Zf3+Ud|CZvny_c&NbXPFIW)zDe^)T16I5xF={Y7b!bvmrz5u~ttPz2`-?qsFP z^%v0aPUiZR;QH~Lc=sw?sdjNM{5$Z*b>_XEDvwd}46pH7zMxBEQ!;JyG8{rY!}l&@ zE?mC{es93|e30gQgc-2$gF2ZicMg0E2Ci2yx`7WbgZwKzT&Z3I;s#3c^9+(54oY^~ zA~;NI+~sT}BLk*Wgm4e#pHRx!4CUf9AGuB3_dAEF?NA$ma_W+G0hrwCS2#f{DIOS^wWbTsqhc+lMm_;zH~5;)rJwp(x6S zUlO()%Ew@^cZqB{g!Pi8N_d;Ex5Ia5)O;is7F6z1+(HCUGkkJanttImlC5PzBh(=Y zP^o7Uvx!C(JDgMyhKrMyf@4~P%B_R0|LF%PeO~R z0|i#o^7R0=fp(tHm=tRDsH;7ZO(AOUVM8IQK_HmLCjD~xi*2h6=1XKSXwVNd#tCDeH=GyRNpvHt**0-A*{rPNy@{{UX&>7YHT z9!U1l<;3!y{{XWwZ}+SqGKBt3k9#LDLeJ8E5Bx**)_&o>Kl*1EYM<$rSAl<336|^V z*&ps(o3lTNiQV<=7z)g&T}uyMnRW-HANMHyhFN`#jTtu3L&eWvok59iDROhNJ9G5i zzTv;Z8!Q7<-$SL;`dJJf{>TT+7TwKDDh#kV1l|J{S!}b^DaqIpJTBH0b}=9n1zeDo z3!Qks730wfkn)W6o;!tv&n-ZkD~}t#LSA^jW5q^33+7y30~m8V^HQJ${Ku$HCa@+; zIH>;sf=|RN!CrWS33Fz6CU`I0uLLeuOq`OKo{tZJf#5g6{sEp9C!#a3QlLVJ?#3hx z0*_MTVN;~9k^75Z3@idYLxGnM`BJ_3Dy5c9yz#$#FJZ_>ae~V(RI7(F;r{@9X-@+K z>mcms0u``4HBLfV@YEUKirSS8s15p-uQv*TD1@W=2W7I!Tz9a4_IKcn^$wub%5RQi z&oHws%|h?$S6tMzSPZCO_%)jg9LoMgAl$M!3xz}H!sAv-sqj1>aXE|P;own%R$fM4 zaU3CRsD!NgO4HjouH)bk;v&2&;!z7yWvr%ADy7DxC*Q?e<7#NjFFMJw2yH=u$V2LM zZAT@bZxAjG%b@rLl8wpgEy|ZJCuQUa9ApHD**g5q@F~=%GE)_7c&IEP%{a{?1a%4d^?olc^QM7?@Eu(0T#VkY`yD9$wVlbnFo*-Xl z_PI#%fPI+msj#=*P!LMd)ol>_toNy82}DnCTL1$DvbwoTaBEL@O!&1)Un5;h$KwEq~9po!gjQXgi6t;(CC@ld6wi9A1EW4G%P8d*RTKtt6 zcQ1+*3xRJJAHjjjT&na!ZVuW@p3i$_Fw)A_w`&NN@clV+KE{Zs!aF!$$80RUSb2Q; zSe%mqr^SHX&S)c%{Z8chW~d{OhF5BfmOR^eeS=flXjiAkS?kbPH zIyqGf3m%(l9F~y;^|VuuRDW(iyiET805o+UMpwIhtgGL=N-RWlO%vi;2EL}|Mb;;) zf$gx5kJ=<@PG6`Y8{*VZBHD=Snzo<3Mr?sHD z{WF(Br|ZIq<1e6yvuOP)%g&E9Z7u%*P#?_%mY>&iL&E! zipgT$gypcij(znD#E3h$nmdD~!NTtov&-+{id9l2iNY|$tSgf99;MHWHE#Z34WN7@ zI&Lf4qYiwq`thCwn<@VQKY1{QvZ0jXdy@xRJT($%y@hTb+@o=5^ z9w%vD2>r@3iBhfbf00tyU9cc9;&(mFoI|exo+ z(5-<uKsGBNTdd|poDcfKXT-DFLgeu70zQ~&%2FY6FHGr|XUpFZjC+L;2 zSwtX3?xT0(Vs8-jQmK^)a9Ju;CFG}JcMJZ?WzJ)z#Mo5d! z7+tdola@ZbC_HqU(7~3=s<>a&rIO%`SX1M=m$e)SGN_bZK$XnNRVa(!1k3sHMKBPm zmqz#muHeA4n86tyeb1!7a^`Uvkgc0oPPvHD3YBrZfx9Z8#Ptigl?j^-Wx^f^@#_2@ z1xCCCuLv1WP)jM+5OEb7Z^s(P@5Ql|;6hvKeM6W+qA-eL%!bxL<3^c5_CPh3J=ek1 zNy^nEFYY2Se4<@IQ?Q|~Au1zdZp$B0r+aTV=h+*p7Eel{Vd5>V+PTH{WJWP5sL8dL zub^EB^R949>E+m9&m+J92H6scp+)`G?zpkE*expUltGrv9|@a z5LA^%3~KF5J);RDc@AiRT%~qow8w35`>-ko*YF|~8V~?beL^7H%eK}_>Q9Le;W8<^ z8_uvVri6fPv_8czikdh})yJ+{FYN<{*cB8(-zBe0nv~P@TR$D4nVJj$_>U8mY`kpZ z0x#eydakT-?Jkdn)XM>`@HOej?Wwl=k+IvW<5pAxU3Gn>4OM0u3T98K-(4bL3H{=U?^k#Hzk%+5X*{{U~Oq3--sEQ<$>h(!U~Jj~sl`k3c=)K?IEYGv;`|jpVSITDj0mTi z*TeFJE^_dUDyO-XeegnNcw>;#yV5$2@k##L49RQ$5wPJNG@3+yM^W)2K2%_%1y8nZ zoZoEPK!3WCC4hVe3}kq|mRkP+))z?^bwK-hf}mfggK^3GDELqhz@U?jAGw`DA3j?b z>Z)IXKmo8R=`13--KjtJkHkN_&;8C4^1nCzja^k=o69ezzGRO{a z2vq1L9xr3yBh5;d!^z_+9QZsE;c~pQY8M~zJ7sm?sa#EgE5Ru688`ec6&is9#&|81 z*qqHy-5d*Er?X3PHLlGRegBwQp)+sQnPkvsZi=C&08zxcM~_i9Kdc-5(Gw|UCr;s z7n0Xfy&Dc;@ifArFuI$5E^bAZ)b3tNzBsry1B`{-d1g_Q;uQ|1pz(Cfmk6SDDhA8j zA#%|h^3-nb1n-t*${A!DPSJx?d(}gOVIE}?{2A0KX@hdUU>*1zb1crAa)qC?#%VsD z2$OOZaiDktTh@>h<~*m&FC}L%mO&u+7%h{YNN{AcV3Q{1_yJm0!-;iK-l|+UoU-9n z1{TVMqrnA-QRY^_Zg(<>-N2O#d{&LhErhG8U{oSc!4C{9l=V9%GPj9Ec{f)mYUO%k z6V6=fR}kYR_*3%^m=dGMJ}h*#0b%qIg!HS4#`hHni&`+iyj^8~7N`z!6s0!R^jSlk z=p_4IKWD1>Hj-eH*QHH{$b0<9Xi3v*e9OqRAvoZ-AuUKr#}gV_;#Uy*>Z51Sl|^gV zv#&2QwzH|Y`@w;IIpc_GUYFr9{E;fyjkngGp~f0#7ykf^*2T0vz%h+_T(SpBSAAK> zZ#N%?7yw;5QB@YV979L}v;_8eKqiu*6osyGX!RG5mMb+uhJ}zjg(FN#mVLaOb#b6o z!&fp}Yu79iz&&i#AU5gPt>$?^6@H}^H9+d6)1Vj4Ea!&6a>EtV3wYVHst<>oh8)(b z=U~7bS!%_+U;MSf@J16Hmb|4sD@w%MqDlO%J<`EJ`Uwas9eZ3FFaq2s23@XN|y1=QS~0M z{{Wzl&mezKAJ9NJRPW{twaNhHMNnH)uf;?yX#UV_3WY;%zMcO7w0ht6>p8oXT(+8r zul69nEFwI=^|mta<@Wyoaih2W!~Mlx@%=(}AFHqUhdrVC1ZNlefdEZ~y%&F^qBOnu z&-n}g035M@sm8zgPyloO3$whWkE*kUr~IuHvg~pb4Br`XcKUtC_U;-}$j2ofz&+F0 z&QT3&v}G(7+dyY!mH1@_i9*k*nL@x7^sr#}qR#3tzA63E13`CYIh9b3FuS;qie3Te z_u}PwIF!Kg+Z(SHlZJOX^HG`p7cx}t_?q`#k_>~EfuOWx{-ti74MI(a!f5=OAthPF=m#5%4zmilcxb*?k19hLlb;#SJbT~(>{>q=W?C`J1bnq@(tnQ7~HdE zr>RV*C9P~Innv@$YY@3`rTg`j>AKh#oknn04a5BB~cyPqZ81NsKlM@Rs=5M~eA{LhX#$ zTI~VK;T+0osX5*mO--T?isl-%?+m1V>2PU&MW|6R_P$=E{b2KUdU^SZn5sbc!cgTaP7AFgo^8%qmhezJsgmnOT_hhoPzc!zx2eQ zYj*wqP+HMf#cD}gfzFnc#h|bY9ZHFR>O=P|thA@*;01G)U62&ZZmF~Dn)ca6F>J9_7ya%nGx7K; zZJ87Y+-joNHHoHkd{XZB;6ZZQo|?k7T9toCD+Q|RJu9`Mls5kW*nm!S!5_$IU6d7j z(U##YpU$1#r&JW1Fzx-p$GsI`_w6D=`N0mDt-|Xc6Ww_aaVq)N(fNeD@apIKw7+`y zC8W1Dn~SyZrKz)50mk}groV16CdGqlcRJd;23>im&7Uz6@5dhyV&$Ok)BzwCv~YTu z>wLa!UDZdEh zSyj}c$_rr;tlvpdCy?LNGuDIbTmECZs(-Kk5$~_W!McC{01$Ny?D!&%mz>qfO4@)*(?$uJj`WeC8AhsnChkNmWqM#+ydozP#JSbb!-c{ zP#T0`RBQ&coqAF@hk>X>QPXti+57KWlC`>Q=brEpK{d!l>%1Hteru~ zI6`AtDpXN2qW=J6#PtEGO9R1kDp4wLtbo)JJA8W?$N?OIKJKO@SXp|ytDg$$Ib;sr zxcXrir6v&|BmxI!>mqSLQQyI1MWaWPyMqCh9nZIjphH9fMQz?pabPVc9O;Loov4_d zPqHJ(pFre%tO!n;DUO#E1sxmC(JRU?RP`8ZG7zmhkBd!T&BsQ@ex9Kq`zhE&ePbSj zIsD4%kXDRLQ=0;rl1L6JRj-Zcv{^#BH#y=EAR_&oKo}OvTPq}fUX?YV-yjVV!k4qM zDSaN*A9H;uXU!7pJ<;?_^8i4BK)tJ+*9ILM$V*Wks&e=@T)I?Lg=j72Y-POEScsM$ z)bj$>O{kRc8)|bQgbIhj5zMdc6)G~C{{Rrv{{TE$1{yh6?3uuTd0HW6H!P;9P9=$J zVjhAIql+6$FE^7|yQ*=pTrH1a()vPV+X|dN4ZTw55V#dOg8pADkQPNO3@() zECXzUhX9)pI|#hUSTE7(jRmsujxXr{00LGeOur~f@{A!3luDa6qWL?Q%x>Z0p$`Er z{2fbyHMXcS@@f^z_;o@SOQG@-MDP+OV;Pn z+CNeM04GnIn4j2DcZ{b^`z6nI!|e!owLiUY_Y>6sOQ4m0SWpJe6Ui2!?p4!=(nLSW z?3!^M9wyZe$&z}m!1#SmRgUndxY%84j=thLAZvfrR`tiiJqVN;?Y~Y9u1mH%S=UI) zF{|7OotOCc{zx9eAFZ2w&iguR}(x`XC!G} z>_Ur%Q-zVJJV83kehfAQs7(S46PchOel77%O7Ifx1gUol`}l=scwhE5vX#UkRV;xy zCA3G0aJft^D2i9{6;mKJIw8!aRzSFt=QIBRWkb7=b4^lg30+c!p^L`mW&Yfqc1mgf@{^wDxUwQA zB4jqGPKxCmYN7h+?MuSYSU2233d>XR3Pmjs^&SoER$LYpN}~oCUAGRNBUDjKbb5x} z9^m4hqP5_5iqb3>sCnm^qaw-6r>F~1Ex0)=w_st205Ymma*M|{%^t;{5*lrp^RWil z)M;vI8+BStvMlVOgBUKaiFhKXi?!krcBQqn6?8ZXsNb;IHqJ=!ICt}YBhCIaN6`y2au3xi~$9~!csXc+=KQpVOTM*~#Qea=1w zTUNo@1lkli0EKnIgBKsNwj(dV?|g-}$~IlkPjI+9s#|oBpVkyRS7K z>w$p|g1|NEf)-rEpnVX?p6w3}CC8mrI%KyP25A2PXv}r^x55#@eYC2#ra(XgcQ)AJ zWr-`*Wh>!=aq#Vn`z3(zv*N`e)VrfVUEas2EO%V|Xdz=Rv5M5kXhEJYocZ~QQsr!E z{;>lU<)YX;+u{)kOI<(mSC7QMiPU?CGKti<#3A(_d@_%jlVilv4B&@87!F)g|P9mr5;XU=V24Ibq~tOX`6KP01tu#6wO!m!nIfLe1F*CkYB+YuTAxu2y(i# zZ2kxqyvgvOy!@%9{{V3{;Qs*1UmUi6DU3|IeNl_G2kt-iAWXmc6IN=$>VlbEM-$!9Jg!n3&la?J zA6FP8>^M{)R%1;QDepj&htgT@yO+C-@0hpwlH`GIHJCY&a3A{)=I7ISM1A6)SIE6b z`s4efXW~?!fZazY$?`$#09-9vL053_B7cW6r{*;`#mYaz{5}pmbs3QG%h>oIi;bMk z@IaS3B}}+gFee@>JP?P3ggKWh`~;OVeAhE?$8f(F;-_-I-`s8lArBSgf#SX;csyr- zl=!JqiC0phU_1NRy4>6)CaNW}2NLJF7*xeI975Zax>N?jqnsB|Y^TAT%YDm^cXHS@I@aOKIxivy zs!_B~F*umA<#5AEa?b&gw=ZYAFT;0I{BICt^#Q1J&O@2`@E#Zl>CC8H4~cTFUPCS< zLeH5}?mTfgC;tG^EWc8aSX?J^n+{<+go*b$j?@f+7d=D8N+8h)sb%xrtbs@0jDg9S z6T#|L&F9B21TOiwLUh7sin&w(?UqY&coLWGDLstf> z;>G>K$OB2f$1w@vVWts}v_V4Sh+j-n3RpHBTH*keLrX6Pc`Ekd-FZudIsHIqQRa{ms8>NW2uVE* zvP!OTZHAX4aj{WQQJLNL0pob$G30@@X+)ywGfshT>`v57U*nE}=BtT02MsEbM(u6@ zEH)TNOC=zuV`b}9_cT)(A3W^10<;QP8Ri@_CFLErn|Iy3M$)$``7ehhmDL7(GK+HO z+WTTvtXRlfKy9pR^}0~^d3W4gqwKt{?1P2ne3JV#x~bwCcP>!MV3AGCK z`6f-aJMgh&1Sp)&Bq(6Ss^&lwLWnm8A~j0aXa%Xq;>YD>m5UhG%$y zEP_GxKQQ(@6^P35Ev&x=Hj1NVpWRE?z$bHN?Gm3GE5}3O3)ndN@o%ZQJAvZiS1w~e zJAMY|5vn6DZO!mY}yAaU%nry$EV4sZp`Tqd8 zh3|U6j@O2De4jez2RhK=x2jq}7iBCG_Tg`|RICrWiJ}^X&Bi5g*Z)$AJF; z(j^jcXoRY!TLPbFrcz3&w9C6ezhm}9({OAWzdPo(SAtf{d;?$L!=E(| z1lfL17i2s$V{>JAKfsCSATwob2v1O#DiNH^JQ$Oz@qP>O$|d4EQ=#FPVFY+5AJJ9D_f>A;|Dfuyara-9~FuLN40#){trUmh~a zYF$fdm7h^ITCSmYP#dpPV^gN(j$Ig`OP|yoWNX8@>n-Cfpp3EMX3z2dabww69)j zd$N5KZV$uCa=~}R%9cQ3Y^G-ODw2DhGdYLcAoxgIRzg(GgsR8~x!fHkG{#yol2((8 zihGrHn+<1sIbPzzZ9=S;&_P*mh7~n|K9b6THea)5?6^wEOVi>#Y#?_EhR?(h`r>ga zWx?=HIfCI}>-j>;CplLrcGuvQxA}tT)fS8t!P$l4?|F{=x%0XoQ02P?Ol3vHf~hY> z({~UpJHH*nqq5aYjpaTgy(G)|9++TM9ap-QLuRhn)fNlm>}9UF=OaKW{ljfKEWZcb z3*8Nmp*|uXf{n7?zRA=F6@@bT6=Eus+uI6^N$@AAa+^jMLQqfN#IqL?td|W$aoT0U zic;-NIiZ{OTt`*C$P(odJMLTc2O>MqiMIi=>hd;K)eVU^P}T4V0{ezGKLrI>x|Bhp zE6@_ls#$;L?9X#HtQpMV`p(-G!L4*Dg-KQ7Z26X*0tM;jJfU3c94FP}Mw)KEQzCPg zKQ_w-+Q(W#K=wc&2u^>br$5qu>_WdRDrg7RU+P{(2O>m_2ppoH7nPK=Tk5?yi^|x+ znk|oGmX*_1;;Jlu&LE>q^P9n1AzP&~J_1x#T--puDZ64#vDw`8- z^u>nC9~!S!?vq9kZ*ZcTp<4?Fl1i4u@oK*S5~cdzC{Y@M_{ex$5t6T|zAiHP@mVy1 zDp7N&O7KU($Cy4CY%!|&{6Lrb>Urgv6YV?jT;dh5Yq4SiqNl3FSL^He54Ufyq<DIa^An{{W~MuT%UY9&x>W>QW#6d3H>n1(p8cjNu<( zAUUCj;{O2oHQD@bIAkIEq0wM}*!8ac5BN$8LHZmv;=k2k0aecO5ArAV!(-X`KzJ1? zCz4SfDo{=#+RCH*(fx<$q-AR~L!LY4RoIm*y-#9QU|!yH6RmPG-ldY--K+{yt6`!; zi}7&k64udI;APILY}@dUkIb(D{sG`TZTPPY!gZc5T&Ulkr9hhrZ9|d}xnJSy&B}%O z$#Z;GL(NLblWq{t2XgiYGT{kcDs|u)P?h03zZK`URIKpBcn!)To~tFyihukjM&%6*)W=1fq0i zK~0ozu%Gb6%axE2<_Cg6BmKEkx%kt@hP~vcRs_zQf`cbh)=tv9g%uNH#I{o_^uq?! zwB?n7Qp@)kUJ}upa0oE4j%Rs^OyBIud_oF<_Z|p4<%K;;;%Nd@$S=7^Fd0;{C#Vr1 z7DX$MD_;b%qjf8dfJ*e#Ycd)#*h(&8$1>nU?p;R02*9~fJOX^oxlo}LSz9>YXD<_N3nF=IC?DG zZzUn2uc3agz87g4S z!hvl_?&IDYeDO^}j>Q&b${tW^D^6)v2FtSD zfpxO4{z@Gwc`UX&U7y5FR$7IEagi!=j;ar$sw1!^sH!UOh)G#my0V`!Aht)eQ8>$9 zos3uQYc`i)gSPdC&*m#{+jFR&q8NaA82hQSblL)T2DGPb`?v;^@T?8hM6~gI%bmXO z-@j1s;bBPz!bfzz5JiMTqZQ>A@_aIidp{D7cs5K*bkOJzL@MA9yIz;*5=3)N;cjNh3j0C8M%2^B$y4q7u!x~t4W39C6>`s=fX&!86P#;<1r?y7+ zSMY^Jsl+&k5!iWpowF>DsMW>)01sX(Sjv=mDp57mE@apzi-D5QBq|<6%bDx^4;crz zq*l(}*YPTB_c({rGVd4}@8u+%qHX%dZkaokHx=&BmR49;adjz{2K{&aj+@iEee_6(NPKYfZyN#<|DSkzIstu{{Tc5%1ffZ_M?-l+k)I5_PhJ9>ka<^ zfA$KC-U|FhaLE4vOdCGS^)A}C;yYaS{K1!st9L4;K3HLFHtVmlC0B6p+?S?qa0AV4 z8BL(795KQ$4kG;PzI|W0qKmIj(OH3JC@J~k!yG@F+#gw)mNegi9Yj={Iu70WB|^PQ z;#t0O9u@FQe4Z??1$n95s57ZvGIi#m%nylPS$=L@s6c?^rc|f0_7G*jo~8Kj{Bl&^ za;6M?5V>9efi73rFYl>P@T>?BJRUmplROf?#mecy8@)kP)vy#0++0D<<%fmbThil6 zXHiz%ue0D58{D&rP0MOf_fx4`m`;g$T;-I(Il7A6I=QsdGirA)V{98@;XeNW6O+Yf z;#I=PyZVN60t1;&Ly1zYk3<311q`waZ>U{EtM}CR0$cCKAqF#L7vLep`-~>a_~s9X zXqBRAw-^DAOyAuEYxPpFpz!&4y5 ziIXeo@R~p?jhg=e$wuU-#}^51!{z}ip1cnq5p1$l`kYI0p)G|+E)z*?QsMOnVZ^k* z1@kLljY3{a^kkrqP{@R+{{Y!+$m0$m%=Z&^Y<6hMokVZPFlvW<-_Zf`XW;<#2zgmw z_{i`mUoXx=Ru>JZK$j!wWPACpS8W#=q=RnZIb{RN)I}DHc(#1{hp!h? zi`s{!N0b!EarQ>8#;d#BzD*mYgl?@UFHKA9YfEw*X}6bHf`nZc)}pe*PY=o&%w_Oo zBVzkD0wlNRP|G(9RSu+SDTLf1(e45@MPdW@Ge@l!pD{GDVMt^7jFuIi1%~4x>g$MR zKwHowdsFtG_(2;<{dcG4R0hip_-UET^XU|f0EX;jZ*2U5f)d|jdJI5iRi!!t4NI-o-*#?_!nD1`e~T{r)%b>$U*6dt#H+_1 z2RH1N{3!aq0wX8vsx%Kjj34T2bnXb$Snd0ZK7a7qXehTwN z-1Ne0;xzTGejq8Tmt2~kE8*f?y`bw=E&<$^=OBcr{XFDJ+WYMiHqIAu&}Z4z{{W~d z?ef^j7trbGtNVDbMxFX6NS0jH{{Zn8U0=uu1^4~Pu~esM*MDrF)DzVT%A=%vvf3$X z{{Vims9JN0ZKlqH%wmrV{J_)bexQ_`OYMAnkM#@`&1>SKyc+qWqM z>+*8D4w6>NGsW!R9^G7^o-LirgEJfW_dX*~S|v*;_i;0ejwBITT-@qyN?A;&)G-^B zb2?<%UKqgn>%#XL?kk1L*pXxPHs&j5aE72tj}z^bxK%{rTtum{;FVi0Cxyx?Tk7s? zu0G~LvH@`Cm|I=U%l`mG^$R7%^Jj96&$og(8D9{L)PA6R&f#!j%*pOsQ>YO5oIF7A zUzZ8@7EHaH5>!7|D53^)0xYR-G1Ryr3C-rmj|(NTx@F|Ah>%}b33VR|A>sO$P@?sF z44LXw0tYbuI`HcQ;tOm%aAOWn6fY2|%%f`Xn^1;xL40g{{V1`9yYkq&9yG_T9v@snSoO3CkaNL?BSf`u8M~WdSj7=sH;9! z!ST3)#;Y;17K({+Uwc~@;R^IQUm^p9VZLJ`patlBSz+lRa^8`!G4sq3C{F|1_)M=`;?-ip$~{Th61bo#unqk&(u>u zrseaNgG78@fgECl$bi1+;>5J8)z;OY$Xvy*`N4Y6?!ZSz4fxjip9eVEUu?BXkhY+Ccy1cYJu(1X4j96u*OO2ov%p&0ES43yHSH4B%(n|RT zwr&awJr{qnDmMA>Zdhjkh%k86Da{=ph7e9}Wg&%=hQI};fhF+FEHwpz#A2A=Gl26C zn`uhze2iE&85^iq9uia&!}6IuUrUNP-3WN_A;qVjGPXt(OZsJeO_ZAzcg6APc zL{-h~c79kWB~DRr6uEhYi5D`=%U&TZuqKf!LJ7q-lZ!lnM~V-Y~~!oQb&imuwQUG`G*XsDvWJ*!Dl70xu6(I%*OZrz(wQ2m zeL_7(d>+1~F@`dT3o7D5te)oyQn-}Lf>DI2Qk{VQp94N+Y;Az?FQeQOm)s!Fs6&a{ z10mGjdD+W+O5#<*y~CL1L&BC^C+1sTJyBWr0e-{uXMiu6j?TUK=f4?| zf$;~yQ!Y2)23PxlGRa4Qyi3S(z>Rnp;)vTEP7ns$t!1}g?4$>V-}W%L+V%YlkSfV`5my1DSoc+Ou!}Gda`K~9X%*b(UP!qyYPUJ4 z4DK~UdrGj3UI!Pc#7_AA{E_)+_?f_9B3!QwVcMEU>-7>>2@#MV``cf(5d@%$Y5cg62 zlol?yRQrPbJb6APSXDzqLr4J#4Md_eYiLctqIz5>?i>sIm$p;ds#3;a6hwzXm#NMDz7mS4vY4b9Cv6drG(d9l_|{=SkMoCZRW9Zf!!#&_XrB1 zC2IsA!e;iWDUX?UQb0*~&iS+ZQdBlny4FYQvIEk$_(NC?y#}B$`dJdCY<(fG>6Kd! zB6zdy^k+-JBiVlP{URa*X|{O>)LVyY>>xf?6SiOPus`$Rm@#-O-2ij$Kz?+9xRPY`?(CDoZxUyOfmF?f9bK;frkNit2t6 z@&pH)rUYXpd80;l{3N*l0Mc1D2ZCRLd>#%6R2j)T@Dlo-<3u)832^AB7$r;38{>#F zf)9eHQ>aSw**XiaN|*(7RY%EIl2HEu>jNMF0N@FZ%7;tbsyKh}YG?~{@x%L5Qa^ov z!5UtGk3yl0^1K`u$WMC?qH}gHlatC{v=&qC1l45Z=^KVOiB;<)BYqL#nF>-?BX zi{b~hZp#OA>B0u{R8F%$gDN>uJq6*Oaeq=W=~M9Mt!aMPc-sE}d=dA+f07UEJ~jKN zuY|Wykrt1yk&bFy48)=_ZOS`7eZdEK(%0;X>y(=QN@SQ}kBCo}(d_h+hB#jzOW6HX9|tn>yVAh-aI=$68vnYGWI?y<@kB)nzz=W)X7+;gk zcq(vsJ)eE0~H zmx*DMh$}L6qzHEcTDLt4*i? z;V6pVj#+U`jcr04LMxFVN5;aQNLR}TV9R3I1&Vg!6>A;{@K4Q6m3IYh5J_h&Rxu2w zpkzY%kHjvelHeir0*OrotGP}>;de_Kl_{1i)9s$+kf~hxu=7Nw{4ohz=7NdIjgqy` z6bBKh$vN-{w+=akSx-{gOagT~WyoT57oqro^c2nX8r~h%~UmCb;&4jZ7)2HO+;nw zkdR3j+rBsEA|L{kTag#AHOwupuz=R7%1!7b2|_tSzP+ZXBB)pif0)7-q~FS>tb+Jj zy)U*(qD^gu*(eSR5j1D0cZXizYtAfY5lKrce*G4-lu$Hfj^h>uf;$@4{Q4js!T%o_($&3+it|vxVdu=Z~Pooj) z4NCqv;|zcI0GWi?3nJ9~#dF6{kB!(YEtXe}$U`b088{_N8L?vH#AhV4!RF<7$xyJF zIq__{TtV@By%d#iidddVZtbIalO=)W|NL zKs2E#)chF>(SNl*RxkON2d4$bKesZTe`|m8Tu6kpsJGL3hl7Fca1WTPi_x@pJxVTf zaHLmDm{CZ{weoz+jda-;lShZt0aN}xF_~@D*VJ*=O;=ol9_@Fn@7f5N0Dd0HN(lzp z*Y=xGhl1{8D*PPH{<7L)!!O17AveQS4sJ1HJIMGvWT{7r>S-SQ4s!^3=3kpX#FYz< z%=I_LL&8dxGT<=3Q1Bd0gvsBEWkO$?XVl*X{{VpxcjBcJXHu0I&gq&Z*xh3>QnH=( zE&3v$=k^1E%(qB1-vmI2Pld4l^IkZD9NZ;XFtuUzDqee)tOgwM3-uf!bWOfsPkrp$ zg!-2ql+4Ln#HiERMCusqpiAC7aVqK*9yw;lnw1+~rQJg+cLE|-OJ@d4@W3v1jf~`( z)DMoO&Ig)OB)B^7#zET~ugog5!%ahiQ|fAQ0%pPtsnz?Hq*dl#R>ST;1p6K#JRvrpr&%7eKKm|(!CpCUu*Yc2yh5}F|kQ(*_F4G2oQ$PWw%8<`BremJ>_ zDXCK`6;X^22A(RCxt+vrSVWa5=KK|mE?gkuJnguh4?JAKMi z3BWSYgcI&n_!}5Uh7S9I14!%O2~lChI+R9S?go%Kx`BJ@1fts)F)$H-85(%%^|f*K zh$mFAmsFDpa$~w7@l15k)NkcXuymWWWX@Yc(R`?sEA%BhrSF;ckro+z^1Ae38ZDsy zuZ%XO{N39Y03xTCG9_zW=6GLB-pMhSMZQ?Nl@3@2>d#SEqP41OrTM57UHkWHhwSs- zOL!%c)~8B$D;kE!BgRU#Uv~`?(c=ru4BB^dBfb!9{ZvFN z>r-%){{Z(B;&Z6_Cv<_y%z^IL_fs;fer1HS!;;c2PBGhDL`knpQnjGE!NAl-2e;79 z`IAk3u2upPwos4#)V~JY#UW*m?)vmbB?h})WDR!MW@@-mx4u%vvd+NtMTrMYY1;C! zxlP~b^%08MuO&Ayx`Uf(jsOj7#FLsCtA`~@ch&qbwEUp5kqs+L^d)S_-tTQdL3?;r zpFk2Q&M<=4-i?X`n(J}yUZY@#v53hS;BX*4FoPx1-D=N}kK5BWWTR;Z!!Kb3oY#+R zIiHDA-x)S!2yx-_*(zJHuNMvRUTzl{LaW6g{vPFc_2a#S&m6HOGt3*qe{eh$cDF2B zn*JJ<=l&5n*pH6i{gQ>CyIR%woI?xfqlAY3CjS6XFYZN!$}9z6)(7=>z+b)Ph_lBW z8K1eha-*j}=pNt830PJA(GCvolA8Sj9ThL#Ki@K|-L|v&9Zw&BQ(nLP7=LhInWJ8x z;)n%n1eedHf2bgoIiwR8IgetCV!toq5e`o9CoC4V)7b;U(5xRZYW?gE z%I+QROJW_iH^&KSr%}kkCKv^l`dwohm(fs%5{Xi!M&fvWq7mj(e{&x%K0QE{;o$Jp z3Dg)=_cy}x3Dl@|N`l)T8SBTQCyVlV$dchM1n-D@WqCX-uLqOH%9z>U@XBR)IpPyx zH^O-`8v*f9ol1l17Yo;xJ9!AK-NP`A1@qiJ;QGkFUH(?oc9`lfEP5&ie9C|V1Zq4!N(CN9tg1HhMmfW)Z5P& zc@>B`bDV+HtDSKwrW11fSBtxYM7obmviu)+Ek})}brednV=gGDM9yHUR&zSyqr~7v zHhg?eQni~4mwq`jsBny^La2nH)IyJ`w^!8TscF{CA5-zcIZ1mmUhyt()wA(XC2JPr z#45~#?3$2=gGa(L+-RQ+N@uzA;kkhgn3I=D@mW!BtH9+|PN4{`z+x9Rye#Po$$P}M zekB(ZNpiMs!fTa&5BAE|V^M6afxZsl5MwF1O;1p$T)~acZf3j^sGABUOvyvq!csGz z@Rwg~JabaHVNr*a+u|tzKpe+1zM_-JnN9t_uq%>k!nOG?oYI$_FRiM3=gbeHbz$Vs##N$bu7H4UvBlq7*x!^;~kGjy9{kASg%_ zOL6)oSC72SugNI!b$;oRvS2~{A(a57^b(E)fAKa@#l4D*4aTs9LQ)E|2z3-z7SkR8 zOZQQ^gJ?_CAqN?NVxt3qC?&1LzS-2NY&qTk00llw8Vfi;a`AGkASid8@zv$C%aIg7}(+FJ)YMu!STgpchgTtzJ@A z%L}(0Cn*IKP?`=CE@zRId-7r^GG+;g!BN zy!Ygp>N1J$1lSWc0?w$|VMn4~CU{{ZIm6&`?jU;Qy?ijSlWDDK6)QRDW) zijn6*zqa84q}Uu0HFc%@=Q7{l$*3A1<2j8VE1H&H<%bg5!uMG7n}hzwEodIyytdYt zE0{6x{{Y<^IhOtKR4O@{#Z8ya_Ly{(U~OvV$om-Th466t;hwdWMaJ<9>8mN0Si>r= z&tzfYNY{_Yn}+zyoJE!3CuF0ES;S}8foDv)URhHiDqn&B00I)FY!(x8Y`x}fN?}Ai zWDh%&nu2&9E6F{|lpapJTqQw=jf|<1wg>oEi}>((HWQXB8sh;DTvce7p>$lqP6%}z zVwVkUDEsPQEQc`Zf(Zh&-^8ISxZTR+fI)ch^8psh47m6u5}L{IPl5~yMU1S7&%_=f zUZC`NJQfDa*j!s6XsAY9*;6f|<;NTA!l79|5FxBQa1iB=)VX3FNExL3O2PKS)bGX_ zHlTS@S-g$A0kN+Ktdtt?8Tjxnw768cQMWZ9`GwTyj$m#(26N$+;airu^o@8{vfep| zFgKlU>lQ(E%kzCe%3c_}TOzcL{Q#9z5-M9ijk3>bK~FcWBL@Y|N%XYq%Y?_$M)M+X~&0 zxEWzQk>F;*DJ;l#HXpcPp|gR1B`~h1i(kbsT}{TiZ^4%iH~xxiQ_Ll(cazkic=ODB zknM0zk8@uw9I}g;*+Q+hzeZldX(i}*Ta45jc(b?N!!&2jDOnn&Cs;loK!i{z^jr8a zxX0c;k`#dHSm1t9m4;ifjQ0z2I!YZ`s~qKosn3#3Rj+z^-%zdDHAmp!mR(j@^?1|Z9bmY*%PePZbRNA3 zqt!~ae^r+}I-Rrr5qu)nzc@ybtF`#46g1$UmI@e!oZu}t-L~U}*7h31_hLPO2g?MI z>sbE)(=dkb@{F=0-NLFtsmQKw{{W08Ont(bKAno5Bik~^70O8CQz0E#^bI6;g?oN= z9`731kam3qDn)t%R`@&DioX^@<0@3BqDr}N?&b62VdBe!GNl#7y`7oksYIr{kDA{r zE(9K>^Wap-%Oy%BUy38gLR|Wv#6?wSYwG>5s$vqWVx1Q^Hdpm3QE6_ zVU7s(hID!gdN7$$+$(r3k+{O{9xHc?tje=apDW@4UtUokuwtrV;ZxeaJP9gqjyOEN z2Yf8g6)VNc@>D#1&fv_QKqX6+QkGYiR0&Y^;-OP&Zcd}(qr^rhj-o;FWC?IQo(LRG zfd|hw2~b&HJB07Ya=iMRQP(Ft~MbU+wlg-+W4i)&I#WTza2}O@1kA!3gDk4$IU}&=)T?-6wNryF zA*3b5+c=h$f0(glT(s)Dm5_uChbCRez~}M^PEuEZXI=&ub#RnbK!+H3qG=nmA;e`2 z542!iRJ{DoVJe6&zB`1zFTrxzbi!1tDUJjxekV{eTqS8g7dGKIjcg_OwMu~0E7Wck zz<8>yoIs6wn+Q+GfzJoHxOdb9X%|*v`DJ3S?N$a+RbePjHvlIv=D@6AQ;q~kXImrK zQc6V7(cf_5N6G%e;Z{Jj?k@>)p(Q|h=!;KGa=kpUluUXE(Nu2>WzU0G7aTtLja+)0 z{{R*PYGxf3dMQBVMaa_s09(mnBS}bx3-p5;HUJ41{{SLb28tPW>A6=6JHg15Ur+#{ z3$9D3Qch*GWPL!R1s*8K1>kn#v69sQ>Z~^aA;bc=xM>eC4?Ld8p}{Dv%|pjB$hL`$ z1m!bj_@-)E4kxehGrt^<%9^w0G-#!TFRICY)kVV0urTx;KdDEI+zc*wzFa=p}^j^9mM~HZ7XojKgwOEzDqn=| zRd~N0XO7|?Ir0-BGJYp=<+HL;Mc3Ps{cw$2FT+EqeNzPPhWuwy>Nh??#uG9T8nOD> zW@O{UHp3Oo70;-HDfnAY`3w+2It39@1iB9J2np(Hm_+Y?y@ziEr#w646u~lkUQQ?T zOA5W;a2DF%gniK)(+-yaJ{eUS2lEqqe})k8!}MAxcm;jk@cTA+;L;m0XMBtgz?QDx z9@P-mq8zVd*v0SiYTQ2zNGN+r^1^o-Ny)>9qTvRp?bak?{sgd30S`F~uOo!5@+1ys zLN5qFGE{tF3yges0(9SpnR2`^CipyZcm`xHsxxXHe=+e~_%OIaRPH3Y@lU_-*ajX6 zYYAt95T3jQ*hZy8!y1(}%j8tMi={kM8i15?{{Yyncti!x;v(S^R&wkgBp_pPYL~^8 z#0rsHjg=NK3AF}MI#}~BHgn)T)FYC~7gxsNQM#XwXD|xEBg9DV6rLLD0{nWv0u4Jn zca5+KOnIUlM^dA*@9_v8qt?{ECCheF%G0flOFuU_thhJ97Jgvn7cPIPQ6+5bW#bwX z<%YwoPjExPb1}CsK>=8hN)yQZOX68tOXWHx0XvOCt(Byzzfls3np6ho5fnmgdzCVL z%9Q;;*-?l%NRp_OLRGxVc(S2&D&bC4$#uapZ9o|chZhrL@7IfnGu}gfC6>$Be}M)T z!Z4;C&r<}*H!uCcV`f&sgUvwBBgvBaiNx>7_^%r^)CXaDLUb^Nc<09uhQ{t&Rt=yf z{M)Xav%mLdrcs5aFKkpqqgs>*;l|kzDm2MOTw<)a{YtLjB57r#wTFIuVZX$T8jXs& z?_{h*v>@l!qbdj~bR00f!1_sJ zD)36U7Oo2Rtb>h5dVlnRvAe^kVo{$=tio9o3SFntJ|mZbVYJI$`xy zRH&^Frb_<+fC3<<z*&zRO5=km&$N&|Ztv-?#j`i@<$+c(BNd};pxM9S5hg~l)VcQgDp2cm4ave{S? zn0Qp_g|Cce_^3-KQ)PI&Vyxn_b>i6jkGL+pQ9JT@&jdK*{5zIsf-1oH*dbxpe~3RZ z$%G34VFZj|TvAIFVZ}WbP;D2$3&FF9{FYJ5ePwjeRRZpU*q82BW!3s6$4`Of2?n{p zb8cUUy6@XASl`bFUiJ7fPv<|>OA)J|>jtH~j(D^+d<*d%eT(;Yiqb!F!e4rR_Efoy z2j%85evW$v4;5WcT$Y%erMR`yMyLz02n& zsbAsT&+^t}t|Kcv5MUDg(<{LW^Sj{j!Xb_~DPiSYJG-crs)jjd6eR2WF;$547kHy8{NRvxMx7b?V;-vjN)NoYO8AJK#Js0hb47uefvI zd=&UNom9N4zY153ZlT<%r9$O0yJcjx&G$RvQC0Ig=UGR9cW0?wRM^EjgfcG9{CCU` zAR)xabByINgezrnIZLZ$E5&#pa6AZG7>)BNpK#z{X0v5mD>ugsctABYyM#j6fGN11|2!b z1#B_j+Sq?QF+Ay};sjLlKZf8!;34~Ie5`1ora^v)o4nv7KJ(A0HG%Cb#}Jp-I8I8v zJM=?EJQ*-;baWfYm_DyYI^czu@gG=q)9{+^T5aK6R^+k}syW=H=BjRJu>}PH%W3|~ zxW^VI%K1Yqfkz9!`zVE#W%NGd#C6S4LNw{}xVW4vo@2MLh*#hTu^Sjr6b1*7X3;&z zukb;Y4&&kSA}`oYk%{yM6g|Of7)+Zl^Kpd82u4!GwNOjU)T{kcyEWY@{{Z2!@KJ() zE<)#7uTO3CLSlSLb=@wgv*wH$!$G}}wlTILKCu-ui)HkP&wRP~m?KUJi@2g<{=ph3 zFLQc>am}lf`7XkiQlF z72syg`Z>&M6x4%LD>kM|kHgV6M@7*XmUVoP3Qjgt=a5-AOWd!bje58Eu@|aJ=!z5Px zhw~+)(0-vR?fhk41r!S1n^sZb@=PsF)YFZgGIcMGot z`M>ZVFIfPI;3fDgsgk4Oygm;BD|qoyo}kU~Q1QRx%kEd3gremTxI!5&S2KJbHZX^P z@T!vPT&hqo`t67gJA~InNmpzzQ8?69m6fq9aeq-Euf@j(!796e3t`C|VX!G!h(UO) zWy2;AwBi-HHlkd-@VXMo*Bnf^pOBmD#jQ$ui(zuRn^z1&>&ZumC!!25!mci1yhnl; zaP{JtM(Y8L%7*vg6E+6IXE0&zt$-&H_#t;H7sO!AxXLG7z`UDV3B2N3nNWTpK!tck zsmnfVxz)@OiE&sm+m99QXDq(zCKkZ-K-$=f_@d##XC&pBHsu)39|iZ^Z-Q2`(`pxz z_4P7T2~2XM_dA7qfw)x^DE=#ZCt7A#&OJF(JPJS zHR@!k!wl*WE~PTKo9Zdy#D zw8jrs=cKSGZA89OSmCyH0M3RrZv+J8kSS&6EV3#QfLPqJ8^%(mK&xn?;lx>NUga^6 zx+NxW?|dZU{60idbnm^$JYQoa$gCm`KovRl0VL?+-5KspGFsrZ4O z4;%F_C*%IZNIqP%C2<&)S8BeCfInn&v0`cm4>peOI}ux9TM>FuLrT}Z0WVW)=jG?bV6i1!AHKbXUOpZ zx}aCplY{-3ebiH)zYqn2r)+=NLZY<)0KkQve@qA|65)@CZ>_~&g6>hW_%2r~NS+zK z3H^L;kD_0ICuAUL0{jMXetDe3!!n_yIpS1iX3OVc!{Yw{$C!{G2s zjg{bsFo~TNMy18S-}cST4KO})e5IAyLH_{xP;(b$5g!r%012Wh&s9K~i4I48zgm_xzGoSRUc_~ZO4 zXHZG6f^5jjJx*ieKH~$A^0;FNSk7Wp-v{_}3MXD}cPa%!Q7DIAeL{3fm9U+}nY23) zmRVU9=S-(@sDe67xUaBaO%9Va$yi)M;Vo=wd!JhwRLWyl3aA?O0I7nOZlE=6J0{0hhK@*UX5^5zJ622JwV`KnzJutv5 zYt;QP`r2#mJqoIuEuERaUkv1VY~@N^t75JeH8xQCMTQT0px5L$EjN%zNTuv)+;F0; zU>(7B;*JNv!fQysf7GC=(ohZ)8zEF25#I!}#p^vwg9~M>ZUb`+t(UUCMLy~GglmF) zQ&*8bWM9f`YsUEpBU6dOW=`dZ?SJRyS1D1;9-zkAy26LR5Jly~oqWu!MVE`@eI=3Q zBlFzbCLvFzBxTlo>Z-V2Qinkuar6XT-Mhrppta7P<)P~AEVI@}6Yx*y5znV=K}sm; zJ3S095`!9j0%z{grhC33sBZ@NvC2){Ph|f9wlXRE^=4BV@aGhe*lGMJsW!EHPS4(a za=R`9gW4>Uf6G>np&aF~x$pk~B*|VZzH`Du!3oq~iJ3O#u+nd;^Z4_(0HQLdM{)76 z?z|CCxbxzn;PcP;_v6$U-ub8-M#`55!OS7gghE*Z0SOgoEieKOym9Dx_kvYr(k{gK zQ8J4t{*;AsBy!%^Nnsi4A#=-nQ&lgxp9=o~(F714^*}Kw*Dr*h0~Y)(@VHy@zl6C4 z-${Kz9S=?YfdZS8KI<<2&)&iEmS3{SO9|g#(;jM1`$U;`1ydeQ{zuF(s^<;)vS?B9 z3G#L_m)m@A0{xQk!oAlC5_+nU3%5wFm6^6W5%iov-yK3%j$tdvLaygu;Bx|8&jAaY zErf0mxLr!!@OWX=ey7wa@!Tfd{P-$Vs7<0i2}HSYxZD|%yj6G!P??k0p1h6DrPqvv zIh6=_rdDGG@Jilu#V~w?ND()v!Zwv$YkWbtYg&ZnFl1fqAxhYm)V>#}1D_n_L^g>^ z?KQCj)Z8UqMJ3t9Wg}}-ne!SWoDd<&4q?sIOr}|GLm03ZjCmzQBiy`&)k>5QM&T^s zi@ZT&%sKElCABU%dz9A@_bL0iWUYniE;mq!*#RWP}dh&c;h zM~@Bl1HSH8X&xn$CbPC4GIKv32#;_gnt)VvnjjeioQQ`KrhV)W%-10Klw3-O9P=+_ zLCIwdCD3HnYjK{cRgs&Ky{Ilj{>#$kOGroK%AXW5A;hYymEBA3qAdJMgUt{wrEx7G zDAsgBbcb+{EFvvD1w3S?{1v%OI*mh#!^91RO}O0k2txhJBMDjRcPW;5?O}vXhl3_m zCGy0D-?$Y3m2y;?@${Xm-Ki_yW3_ppY9)$1C+sMv+sv;8Gw02!ow&qSnczTOuRgfa1^p-lpAa_FulHJi^t$#{+meIx_P z++~kBqxT&tY#;269AUU$BM_YLyon_NeTAeY9H4t_Zh}hs#(}<}m3GDg3}`LB5GlF= zIQxaJ-IehwE<#x;oxD}C)(qQ+izfIX&x;=)PK?3>-CEhil?8ewk*^sVl)?tHxomHe zbAn-Bq4Lb7IZk5hJo;uM7|bTpuXKlT1!^j+F&`0Z2>5UwRFAO zUF$w^vc>DaQq6W0i)qcB^}g&3V=64U&;(G1wqvzuJ1)|)L0Z+P=@|b2QQLQUW^c8s zu=i3vD^?cL;rzunj5zPls8}7wQEYgv{ayA7m$Tl=If{+^{{RKQ5btsH#-MyN*TmcL z)b%S_Zyoq$9v5+pJY}%CvwZYQEt`;xWq7A0lV!%IuN5!lyw`#Rwh`3$j`TURyPrHEPJeqrP=TB3+32i=2sc`O@UI|b*-xbsk7vR4Hxwj7+2yqG2AY@_Y zq2jl}=Dd1=;g28WzATs4S}d;v0DZv{m_SrX+TbnJLK#cAD&(qEa}ceAyuggZ8ioYB zF_qxel>%UyH;SDgD-Br3RR}9*FBIPwlZaa52n^+w#Ci7;;uQm$XobLz%857BFUND7 zCTm$OO_prxz06fW@T+_YeOyeHoOr)1sYI?bZWfO^WT*;(2vBEGi7E;sHvDL*TEJ$; zvM|2MWpOB|;s>SA zaUHlB4;3r+VOzDbrQECWTOM{))N1??;UfZ!mn!>~vQ!Rc`ib!c3!LmCz9JPJh0k*; zY`5P~JV$1iD?A*---5hxktJ`b$>Oe7%?Mj5xEsW$!VIEg4t6#}Om?6_8YQ-$sM7VF z*7Ve5<4{@rI6wy=N*sDBYz?rW9-qKVmz=TJdn-%z1NX`EV!uNUCHn^Hs)-cFP7|1M z>R>DA;iuUSH>^R)pK<94OKZUEm|W$1mO77o5if`S#};SLT-{5yX%<*hWJp>o;mQ~_ z!&=z5DuXXdHX?^TcbXxeflP=+W4tcb}S<)$!T{4UmLz&ug(lA zWWFZ@C%deNtpJp82#C7)r_|YX;oR?KOJKnpRRIJMoYc{?w>>u=MVn?%|#EJbpzY?2p1HWY^v^z_yLOLqJ{qe z`r;OJXYHZ6K5Qs(l2kjEAvzD;(nO^@xp8JE!VR#o@X}0mK4Ig$JOn?=$=N;1mFL#V zX2Za9DcC}H;0S$NH`kU_+;7DYsCh0~8=C@NpWr|?EX#Z{;qt*}WZ7{JP{SPzezV*0 zGtP$}RbmW%tlae|`b1qRaOEF{3Gh2y8cIKL(X^q?EASB!qdxZWX9(>jYeX+)**;iT zjO4VxoE4YiGR(*Z$?EU5xqv0Oc3X?LUEkCZ8F%PLk&VA*;jRRLFO1+^e7D2!cO6(Ai29|O%HsagNW7BcXa9kWbpVyX5R|tjtU2Zv$BQqFiIR^5w(3``fIxkCgrW^2`iX|k*M3A5?OUF z{9I7GN>}bT?zGf}L6&+WkX~kWtIk61V#3 zuR=~+QzW=wVOJOWNB}Odu7)^P?-^q#N5)jZ$B8zS8-s@z`DbMay!khWZ zXaM7jSK?o{@I5Maz&kw(fcPQ4URYdOxG%qP*bbP^RnFiqRf}r-pIZC|_ z{{Uh&5l;lNekZ>bRVi!po4jjD!z|`S6Z^GS@2;$hCLxzaS=)y!I28qu^NABH6!|1^b@XS-^_)pXX{dt z0O_!_h9QYTees0a`P%#O-0oa(Sm+i%xIU4yUsqha6*)&=%eX8GtgS52tmr{%i zCRb10E{>{s!mw!;o)L%CGOnG_n*CtEEgbrNG3EJV2g3O_619~#$55624S25?sQG0T^hTrN6_#A4aRK+#2uA9C5Fj@#Z(wn9 znwW>Hgf8HvX;Ew8cnOdmrAyh?O8A`!i+LVm84zV;EQMSTimw3KSW`Vj*gFFv+za8H zN>z)DmgK2XA>`)RR7_ECij-`&p!F`NF=D)CWV?;rrAo*#tT}~GP#_f*IVD8QBXtwN zco|-9WxyEx?A0gY1nL`du2c0;_+f3s>QaL)c2@eAI1pClFxXrKe&f&F*j+$p61dsa zD#$X+ghmD4L4#j2gv_4crgp(Cxq8WwAh}ZUhXkwfuuWeb!>Bh0e&cn_sAWZ*#dDk4 zd~89Fitbjxmd&%cTA-avIfsK^0|;OEWVx|cOK7cx?5fh!Db~_e;-2aEIW5g*pD`4( z3_eu+!SF!F-t&p;JitFmDcSn1GWn9_hF-R~(h`MUnZ8|_3%lSDLY7w^<9ReO0_$F< zE|FLV(8Nmo1v=6y*Iu-ny3&!bIBNFgRD+y%=gkN3G*~idGO^uTu_w!y;iEE(2;ewf(}N_2{zZx3oRyxWL-lEAw!{S}su( zpe5|ElEeK+WAhBEU=S@T{s=|wx1bMHO8v@wbw2Q$#BV2F3aD+$n6Me15rLBB%g#LU zCHa8KdKbo)vBU$uDeILqV1KxM!EeaKYzP~X!dU%9&985XoT*jYavsg(I9qYi(OpcH zW2f5pFqf3O`|d1;eDC-iz=A+jY4#(?mb{M-Z4P}QHvmG@^MB-fl9B4(2$afuHPRv^ z(wGT|Ma_TbEVyEuMnWuJ&>XL#b1T^ApULH7q*8?dufZ+)&9-%YEFvl7ew2i;d$|KT zZ}eWXu;HJ0AE>DR0NQ0{Hy0H}sc@{Rv5Vx;xE2T1w{dNdO|K7zTzp@Fn`1V-)MXR# zbut$%fOr^AqI_q99xCN9V}2NV@%ivgnHsBvi|^Dx0jaVwD!VO*XS?khkd&Kh5rDiZ$VMWy962$ z_ylRCZ>B@`kd^U%qRRB#GeZ9WNoE`9G`*N&qNIPZwuyJ9Vkx$8C6`d&Nse8#MU#=0 zgkX>UJQ3#?qDJ!T&l@l8huX8&qf_egBsrJk)&;DsMpUR=Pdf{TobXMZK#!ZI z9KHkmE5^%~v#4Yt;1+SD=IfeONuZL0Ls`^ z{{V$c@k}-nrI27A zIAW~b;)~OPA&l%~eSMK2&b4cm>55*>`)Y_sH3E)n>HC7cGThiX)oC2+tG{ha>BXf~ z1>Kiuk49=j?RECl6c}(1N98o^PlPS5Au=jZ^!Eb+KsXg&%nYYC`~(4pwl(OE<&xQF zlDJio_-t+)ElCmOhOJjH8<+IpWgV(G4k~bXJTdnPM7Y~I@NOOnP-b|1Y_h6wxBD70 zTxxP$u-X#;0Lw0?eliSq##exyzw7V=c>Nh(&_Jrc<|>HndVWb2qm`I`)4JaV6TO*V{^(lm zjq2TenLl|E{>Da=k)CLrF@ywV6tpc%~$^b zAh@r4xnJojYz-^NEe@CdE*j-ERbxctq`wP0l_=P8FCfA`I-QKw^Img_zu>nrp*O}~ zkHjiwN_KDf7dE%UHsyG>{NyF|GGB&w6Uac7<6+F^A5msvo=mZ&T8k4)^Fb+UQNdY3 z4oKPn586~$*^}@IdBd4)%Bq#O(*FP>Z-vP3NO!lL1CRZY3VV$|evHii@>S|T?tbPh z`*_w*?3R`J#V!1e$FURG?6Ta8o^|+QQ(hh6^sF)ofxh+h#7O+I5X?xICP(0uXaVcL z@qtCGBrkHQW3~{K!_Lc;cm}`0l=!GH@J_$V;6|WAx5aobUOMq#;rNzUmwWNt&(x>S zseS@c;)o8;u4Je~X4Egi30@EIuka_YBn*`fC3q#ueA?ZT{{ZPq1EO5aH?=Vx#^bQJ z6<3x5%*mH*4P32f&=E)X;O62>$zcUbjmk+@N8LoS0ekDpu2=RL@TR=VRLJmwjZOrw zTNqYQ8O%{C)?7EJiX|B<=B0cR?_zThojf=Ys970D*2*pwlG@7f$qU$5jX@Fqr)V;m zxe-KEL(~p@eH@&hQ|eT!Az{Qg;#V~)-Z_KE6$(b+vQbwHvL`Ij;>oy9>K#L}2gEKL zI&X}JEZgI$MY5dPSzF;0Vz_?BD1QIs~ipW5ja=C=&A9ANJn}tqg!c#UCuZ;KL`klh| zR02{kHA}0PN}6oXu!oTC3vS`4ys;_(wS$gdubAT|HVxio+X0pzfeWair5Y?gyN;c5 z=ox2Yb2IyTPh98b0ME4&`Wr<6;;gLef^1QBclR!|1T=96O_<#t#urX%*!>?2Z-YX+ z=h+r2R`}k&;#*PYE6>-|1+}hhbN6vJ6I3#W2i;0n&u}G#G{DwBsNz(pt?+XN06VcQ zc07<)sz6@1uegOltT*h0KvYAPRdoN`&Zx4 zmoIAW?Z2o?KSZ`3osPvU-?soBk8sWWrTjjwS%_zVaK6D`wAJ7L09UA9nTH>@c3+~u zsdpENGx0dvpJFZkK{26^)Bgao39};1MhXQ7Mi9BvDUSGWd{$I01LEHmJ3M42MiTZ} zFSw;oQ|yeX!8gT9$Z;d8UDtPO5T0*G-4?Txi1Ykd#S&4#)*Q zKh#(3A$H%>CIWMQB}kV3!Hb!cb6lo+KIfls7X`8WZ~BXsmJN5SIUp+;Tp%nWB0WPf z8`66J0DMGQ#0AP})EoSUM`zPg{C74}tjZuvZ^cmyhIpsQc&dXt@lS@o%c#O*2yp;} zFUNjK-}tPoE5$QT=W?dhE5TWQDsIb!FTunHd`^g7PKnhXc4-Nafd2r9e~7TJ2lzM| zV21NXbv)cQ>zPLN)Ncl$oe(Xvn~Lh%g@$XAmTWG>24qN*_&pMemD~>zT|+8W!G|)c z7Q}mja*F0#12gJm=MW}egq_RvEbb_g(h;F47WkES3->)umswG_QQ+B<-yOv7TN{J9 zeBQ&IgPtuertRzul=_FTxzkIHoOc^iTfi!F^*v;)n=Uc9R4=KC&x<9d%0_ImqvEnN zYJd5ZL+i&8BXu@m4msvAmjb$qa7tx-%Ic?4`i8}Lt_gCrmP+0uOg1B4EV*W6viO&< zy{=hUc)ivq#NOr3S&#?sz&upObpWnle&?fQ(U3kNGbPn$fsP@wsgOCy7V{p{mK;ln zJy)JkhRweK)Hr28*mF6DZbXL?pB|wCTw@tb0{y`~cMgL@GRu)gy@*rQsO@Sd^TzPD zO79xKNHlG}EgFW7to;q#C!rO##19qjDQ&(=UhJws3n{X)E;v%4SBjObR#k%KSr_u# ztX=m%ObWrZxOG6}8*cvqExJaa@{Chka4)HJ2E!3fU677Wu^#k?Vv5BRl?2l`wf8u=z3#(h1=gdFPx%%W4U4z*=3PuV0dzejZvZ@AkS$l?i_0FEd;#h$P@J77 zYq3nIQjgU}O1C|&Ahlp?tAUi|U`ul1xy8jg7gW1Qr}q$Vh#()aHc#mw@W>#SMC^^j z>Tt#8X@`xnQHdTrY~NDwnU~_F>2V`rub&0+mpf@;RTFi25_|FQ%YF>0UanQpbVP+f zpf~C$WpZlq@RfaJ{4svmGMDsGpA`vgHJeVWHXh9!ucBKefOIEhV8gMU>+-VdkLy7< zKW5zrtCjpg9FwO=KzRy?myP}EGm(maaAK&};81V;2DOk$)AsTTi|-vllXp*}4;p)r zITRk6mO!XfuOz#jOk-X({SGk%z$sU^Z>-pRS#>&AGdR>pVY=I4XK z;UL8D9s+DUWCEvbzZWmfO_eGMs)(eJ{eNO z;#*LbFmNS1cb*Pm>Zbdtek%Aj1m+ATa85ivZe78Q^*&Ph$#8|97Qz650$$gKEU82W z3VlM@L++ww@v^1B`0xsp#g$~bWkHp3tR-;{IoWN$5}-juCd_p@xY-NH5QVI+;@=~um4qx9jfwDKV=bjUjp5haZMXU-3VvPChYwDhL7 zjU;h4+($#3ExVl92n*CRvtePz{{33M!q-my)q46A7C7egY8*Un$f~&6H z=Ijp?m*jX`FN&HsyLHE@-{79?LCEtU-}75~G~7E7$UjWzT6(g@0B@(vXseeA^%oG% z##QFO$mzerz7m?ZT|baMYu|U(8XG zvs)qPU}8+MkxM*h+7mtq#+~tXiI%cLhD$6cB|)e{yVM=1%Y^tV&Z4tVw=?}w^l$y~ zJ=Z6+FMl6Bi*0ZF8m~!O3ZSLxDu=1|E{7IdlET%vdrHpUkoOR_TcjgK;4-K0&)`VD953Zt3Ah)qE3aeuttM)<{#hSW zO$}vG$r3NSNAnKq2Pl*bqKcX+k}In>!YnRjPQmV&71s(GJ}9LJfe%PT;ZOl~OEZ0j z_Rvvl*tb3O^$u=xfl`Vm#*)(OD~?fT3LO{l8L7 z&U!=i7IAZJ6l@{`8wPi#rh zajHnozrN}BNmt|&^`<~~!WAeaT0C(6;+4^21^I35qYj(o^u2yNQffH+Qe#KQ)6?*J zOsK3lu%}0DwG6Dr91=Yw@ii^p!pV5jaOtL=yaW&HMDXK!RCwFx6S?G&?Vc{1#Asx% zFLq$tkM2>Yr;L~D=Wof69A#S<*oy9d09P|OhS*c5A9{>84k`af#w2l8Jyi1w8DDeZ zY}jO{EdbZ_9fAV`%sX@J+Li~#&!t(JD|y-ExaB!-C~B#+JwXgo0Ge$m1PT~PJ+4u+ zx(iWeQB^5TOIM{dfgv`yy)ZT2j+e-Vl&NdkR^^pm?PM??#b+xrL*p8n?=K44$@_va zDD#UPsjNzytf4Qutc{@+b?@u`O~1g{^ByFS@+&+4BfE=L=5O9JxI-1kS;^HFces zdmMKRrjj>5#3o!tjFgtjA_jT!vCrl*SCDT~W)Hy~x+-ZN%6%t5@cE+pnD%z@fb+!y zV8@u$WO=NVlH;zTSnx$(lGKZ|l<*5nf#wBPy?Ncw$AbX2iI5W<h=szSX%J<_;~Nao@nI0c+8vr7QI8Ci=Ye5k21RFDN1@ngHJx8 zjhyba<(ybV$N4e_;XV6SoJ`R0UZK_9e<#;2oL^;0DN^Be<%MFe+Sz>wB0`@o?VRWDp+}9$7 zNnvBPRauA63i5UZEz_fFU3Uyd@znoJ?fvX^ab{w7lh{~MYBQ+;`X4#wdJEnjG1sN` zd&P(FKhs=8n~y)rn*XpbZg&g-u5$~t39kKY-%ZULLQgHeE`)gvz3j8jqx+q9&v+_a z_Q5B4A0RhH9TXmrPGe}S)N+wIPo51-+1i?OpD==Q-EHA1#=kcIBa1$i)U6Ogj?R#M{P*u#tK7S(geiSA z`pV$rZ{?eIf!|b8t0zT+9C)0-s`m_KsWtjI24}S0s>J#zL=BZJ8n_-*It3G2z|qau zQ%FOSDq*v5)mFIYPGBk_H3vNc>+6||6D$;Yd!x}k^NtcCy8yG;H#YxpZL zCkh)AC8V7hz(_9yqKBvcgje!Hu3lu?O{7*R^5W%py_%xazX6ro4^&7K?W!{+4c_~@ zkmECU<#ZUnP)bN0Mo#3~=>mMAZQT4$6B)?0+OhcO(Gn`3lp|Fp4J1H>GoX(s{ubgc z=TZhq5>6bpo3tK9K{3|P72X;9t(?3V;@vouR{MU4jNj_dW`5&ABRpl(1);cU{ygx( ze`KvP!dH`pAq4sO0B;RHX07$bY3N{+zW!PFWoE_F_0D+BOi<2WI_XMTawo^D-$e9D zORMT|IYN+BE)*Q6zn~`;+T57(V$Q+niVxb9savg?FjTT}?tzDCtxF}aNtnZN7pzPo z5EQiK$g*ID;4ZiZr=OKjUap{v&o&y&7C=z-(@0?gZWbmpQglXoa~uGYTS&!pbDCQ zmhTpfF|GyyxoLz0o;K5Y=kqk4t1ANtO1gtir5Z^MWi)6bOd+Dt#pVPQ#SIS7A^X4;5M&`ME&@k}|;5hWz z_xzeQlp_1+5L}%g43H<0;s+&r0W@`9EPPj>1#KGcSxtulY0a~`^ONP ziz)q%N{dmT4R~ zKBk+E#!fcoqhuU;!xURSb>Lr0dM%qSq0r7Wvim$susyYQ_wPZuf1Y04syPWemcqU_QDd-X`VgOe-;WPPWk6= zMV&UXzEt`*aY23lA6ZUe!u@DfnwyEM;fx+>uG0nbap`{37ZssLn zz?zxZ#T&W`*Hd)1@;I6bpmUf*;vYuhh&kD5Yq5|SLVi8bYu6t#NSo*jmGQj|U>)8% zR!)d(vUo=q%7IHey!J0QL~~p#!{S*;j-`ZYYi`CA zZrtQFrem2hUL~D)WIr3zXwm$|_ggp}+9W(yN8u;j5>o?k;-iA)K~32>E!P?u3vPi2DM$=(u%{e-23YSJwFfE9tda3n{Vc4br(@%udC#u zG~bg72Q(fulFLpIAFP`FZF_UVRQ~yhC~0X23fEFIt8m5n zsi)dc#6HOdbQW!8jzqGotle&Ai66QJh^!-(w0sor= z3(r~v&o69iUewgCTa06j3+X!whc;8Y_ zOcnjk;KNL*U9IxNMtd#aXr!*f*ozbVVK{)U=YkIMfR_PD7X{ZkS(MN!;g-Ft zttC2&f~-^0c%=UyowF>mC&&k^M$V1s{6BM%?VQG^O2~Q8@fz+o4&&r0>!op9eZDqP8x*jMV-n6TblF(bx8 zC6^Lht{iMIgLX0MkC<$ z0fAV}VV+v$QPCap-2qY8fS4-r5Yxt-Md|@o`Z)bBVE+6;UA(yy=Wri94l1u$M6gG* zp+#}4&$kh1r^a{m!5Jy#uqPw2Sb!+5wJGSU%Gf-P%kX&`Pv-ZBkVt7K``0BaBg%D} zWGgnY0unG^5B^&y(>lYtx*=8ya80DT7CO$Nz;dmkPFLA>&a&n)rLmNenv)9GatDc= zoX7j|E>bOS?n!#F+>OW<8T$L6z5H4t1i=3A#zca^ie$uMgqVW-%vK~91 zuOaUq1bxEF>!UCd<{3HL-)OPaMlrvAHLt!ybxXvQc2{&00)B|%XiM9xXM2}J;iShR z;_!H)Xze!JfRElE86XWcEc@EG?)JzXnU*wNB-5ljqRokFhG(vNmvGzn!60+F>3Xby zwTMsXAyjTU*1=$>U|sPV^!`uv%58_4Q6u%vnF7zW7Q?#F2Pd~uf>H!yCsCg>dmR={ zqHL-oVO291pWri->eVw{O?)lNH>>&&u3+rz4pk(D2eHpd^&}@IH(7>H-OiwdoUDom zCW6!Ajbk(U@$Dc>BdOqq+Mi`|U&T8hn)=Ia)Wpj#TM+ylSN)~+u*G=rim4ZL5Fz+uz45}9k?`)SOG0FQrb_4XpKBy{`2b!!DPJKP3X zfV#@-g7Wevc<+9RCrNsyu)0@bwU61G!M-5#|-XX35%uy@oa zKQwS~=2l|X;^|Kj``>4y7A<$2>7$?~p-4TOM|Pp*5YLlKSHqA__kF!j9PG3wHSLqE zxBc;K(|ePaN{j)1Hk9TW^@jgz86@Yf&vl_sOJVx?^AOk`eWhYOt9pfr%z+v@iI zdUWnsbVYMwVgA(CkQLu2h9loyB?(eEo~)HNazKH;W5UL_D7_g_ZWPOm!l6hZL zs}OCDr<)s0FUUpkSI9eB2W!m7QcB@CYB!#YDnn{^o8bgqsnDv&$~%jwaEcz1D$N@# z5e5_hP=K`&sD48Q%k)kU3f|`1LZA1sKZFLrmq_K0(vL2(KPV5i95ve3;9Jd;hu$DD z9K3HD{nx;BiV3%_4(F-r+H_K%AAyrqM;70`3K4V}Nw!)Grhq{_UM5Uw?g{F0}~OhQ>wRLul>3)xkQb$`-C;=jFIP2|M74-%IJ%nn%fCu z>0TAgclxLox1C~Fie%-&Zd+nvaLx4)9*>*b40XiEn`V<`RUyJg^Y(MP*>rf%pd%xS z=_|?9bb!KEw+4zt>Q>9#h;%VY`Bkj*zA}<&eR=w6YaH``WNY=+$Zx2vMrWR%3sbaB z>^MZnRiHg}mcT;KwCWE78AEd1q+#kf)2aQ2i)XPDtVE4|L^BPoZP|kr@!#Tiv!a7%WHJ~ z22tqYm(i4ji&Bz_T8pIK^s&x%fme*b*D00d5FfsX1*3Oij}}yE$1MlBU&L}gS@?wS zD*zP>hrUZU*BhHg!u$brFKVYYPu$6ly1=qIx!)-$7y@YAj1G_v?C#ir266H`#>|en z!%oU@+lR^36t%71ti8yAu4l8zTjd;^5y)83ILD_=gqm0@{a6^sRAqHqx?`jN>@ zD5bZn)vWXZF7s~)^MJkpd90234AoLSl1M9^vhCT}SS*SF;Vc^C2JY^TaqK5D=waKu z(-td_!nn0{{{?86ETPkA#l$cW0! z|3!x>3@gLLXLneMUAq20fWxYNb@nfHF<`<{dn}0prYm=NLqLCf4I3g=@z8hC#htc| zjSpJJ=j!_CrhX*5{C<-B;c;9I{`d2->N|;^(^R}|jk4`-%WLAf5_pl4SW|r1p!zq% z-&fLzX#_e12oY!S;FgIE-`T#7kdLbOot8lEN(~APB|$r45O+ovx^{H~YnM+UfZ*I%(9 zJ%#TI-WJG&Pdl%>nKCoPEC1TV8T>rI!xx4@NQ0$e*Kxz{xsA9+$^t> za%1LyCh|mfAyRmdVK8u{kX=oOxS9YScV<%#emh;PS@7Y- z$)>LFeN_kU6eqQMwl256X>ovvM{u29uma{qD^HwM@D3ODpz_-Zr0>fbvuDf|h;vQs zE0cH09V^n>$BUt-@I{9@e=ttDdn{nSkDKyC=!Qb7^gW%`L- zU$i&SUipd|8`0iIZmga1iNDj?oLgpbfmg=wYpfIu;lBrUivMzZj0&K;QOK2bBF^fq zue(>n-*9Kaj7C?DCxTwgd$r;-ZL^-!xbl3e8q6__rq zH{`~a^m*a6%K(1okUJz+j_@`2#JCSh8Nh;FSF!uP^g|zM`{)>yL^5)2a}XyV(}!*t zRnm|kcKL>rB$64;4z>}d8u;ro!k5T=oVM@tZ}0bpc)Q0t@-E1j$m#FADDdDiUq{cg zp*Dx;><&*C@2R=W8a<1{R3+Bm+vzFFed_e#$~S|q^f+oK1_kkG$1PyJRsT#;=OA|l z$aoK7NZGHZi!PD}bcjpiDnf{|Qji^A@%74mzzR;;X`vK+ULGGQp zk-1n?UOhz}FrT$e3EAM0GqigGATtcu-2o4BZy;617HoFFI->0eU!!5=0Qz_wCn-vs z-X?|krp! z+iV_OhdQ}OR5Op#f_r*(sLm7?Jx2NFP@iW|%0Ayp0)Fi{8e!`cw51X9&xnryk&$rM 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